CLOVER🍀

That was when it all began.

Caddy 2を試す

これは、なにをしたくて書いたもの? 以前、Caddyについてエントリを書いたことがあります。 Go製Webサーバー、Caddyで遊ぶ - CLOVER この時は0.10の頃だったのですが、今となっては2を越えているので。ちょっと確認しなおしておこうかな、と思いまして。 Ca…

Jacksonで、JSONをコンテナ型(ListやMapなど)のような型引数を持ったクラスにデシリアライズする

これは、なにをしたくて書いたもの? Jacksonを使ってJSONをデシリアライズする時に、ObjectMapper#readValueをよく使うわけですが。そういえば、自分で 書いている時にListやMapといったジェネリックな型にデシリアライズしたことがないな、と思い。 工夫が…

systemdのユニット定義ファイルは、どこに置けばいい?

これは、なにをしたくて書いたもの? systemdのユニット定義ファイルですが、どこに置くものだったかよく忘れるので。 ちょっと調べて、メモしておこうかなと。 manを見る まずは、systemdのマニュアルを見てみます。 systemd(1) - Linux manual page DIRECT…

TerratestでTerraformのテストを書いてみる

これは、なにをしたくて書いたもの? Terraformに対するテストコードを書くのに、Terratestというものが使えるというようなので。 こちらを試してみようかな、と。 Terratest Terratestとは、インフラストラクチャーをテストするためのパターン、ヘルパー関…

ブログを書き始めてから、10年経ちました

なんと このブログですが、書き始めてから10年経っていたようです。 最初に書いたのは2011年5月14日で、「今日から開設。」とまったくやる気がなさそうな1本目から始まっているのですが。 続けて10年経ったということに、今年になって「どれくらい続けてるの…

Spring Frameworkで、REQUIREDな伝播レベルのトランザクションがネストした時の例外の扱いを確認する

これは、なにをしたくて書いたもの? Spring Frameworkを使っていると、トランザクション管理を@Transactionalアノテーションを使って宣言的に書いていることが 多いと思います。 @Transactionalを使った場合、例外(デフォルトではRuntimeExceptionのサブク…

Jacksonで、入力として型変換できない値を渡したら?

これは、なにをしたくて書いたもの? JSONの読み書きにはJacksonをよく使いますが、マッピング先のクラスのプロパティに、そのまま設定できない値を指定した場合 (たとえば数字ではない文字列をintのフィールドに設定しようとする)、どうなるんだっけ?と…

Linuxで、ランダム(/dev/random、/dev/urandom)に関する情報を見る

これは、なにをしたくて書いたもの? Linuxでの乱数生成では、/dev/randomもしくは/dev/urandomという疑似デバイスファイル(キャラクタデバイスファイル)が 使用されます。 ここで、エントロピープールがどうの、という話をよく見るわけですが、このあたり…

pipをオフラインで使いたい

これは、なにをしたくて書いたもの? Pythonのモジュールインストールにはpipを使うことが多いと思いますが、pipをオフライン環境で使う方法はないかな?と。 要するに、どこかでダウンロードしたパッケージを、オフラインの別の環境で使いたい、みたいな話…

CentOS 8の代替として、AlmaLinux 8をVagrantで試してみる

これは、なにをしたくて書いたもの? CentOS 8が2021年末にEOLになるということで、話題になりましたね。 個人的にはUbuntu Linuxをメインに使っているので、情報としては見つつも、どうなるのかなーと思っていたのですが。 CloudLinuxが、CentOSの代替とな…

Spring Boot × Bean Validationで、自作Validator+メッセージファイルを組み込む

これは、なにをしたくて書いたもの? Spring Boot(Spring Framework)を使って、Bean Validationのメッセージを変更したりするのをどうやるのかをよく覚えて いなかったので、確認してみることに。 結局、Bean Validationの復習的な感じになりましたけど。 …

インストールされているPythonのコンパイルオプションを知りたい(ついでにインストールもしてみる)

これは、なにをしたくて書いたもの? Pythonは、Linux OSであれば最初からインストールされていたり、比較的新しいバージョンもインストールできたりは するのですが。 最新かというとそうでもないことが多く、それでも新しいバージョンを使いたい場合はDock…

自身のグローバルIPアドレスをコマンドラインで確認する

コマンドラインで、自身のグローバルIPアドレスを調べる方法をメモしておきたいな、と。 こちらで。 $ curl https://ifconfig.me aaa.bbb.ccc.ddd 余談ですが、HTTPでも見れます。 $ curl ifconfig.me ブラウザでアクセスすると、より詳細な情報が見れたり。…

Spring Boot/Spring Frameworkで、プロパティファイルを読み込む(JavaConfig)

これは、なにをしたくて書いたもの? Spring Frameworkで、プロパティファイルをJavaConfigにマッピングする場合、あとProfileも含めて…という時は どうするんだっけ?というのをよく忘れるので。 メモしておこうかなと。 Spring Frameworkで、プロパティフ…

MySQL 8.0のCharset utf8mb4での日本語環境で使うCollationで文字比較をしてみる

これは、なにをしたくて書いたもの? MySQL 8.0のCharset utf8mb4で使えるCollationについて、ちょっと見ておこうかなと思いまして。 具体的には、「MySQL徹底入門 第4版」の「11.2 Collation」に書かれている文字比較およびソートについて自分で 確認してみ…

Jackson Text Dataformats Moduleを使って、CSVファイルの読み書きをしてみる

これは、なにをしたくて書いたもの? これまでCSVを読み書きするのに、OpenCSV、Super CSVなどを使ってきたのですが、JacksonでもCSVファイルの読み書きが できることはなんとなく知っていたものの使ったことがありませんでした。 ちょっと試してみようかな…

DomaのロガーをSLF4Jにする

これは、なにをしたくて書いたもの? DomaのログをSLF4Jに変更できるということを知らなかったので、1度確認しておこうかなと。 Doma SLF4Jサポート doma-slf4jというものを使うとSlf4jJdbcLoggerが使えるようになり、UtilLoggingJdbcLoggerの代わりにJdbcLo…

Spring Boot Actuatorで、Micrometerで収集したメトリクスをログに出力する

これは、なにをしたくて書いたもの? Spring Bootには、Spring Boot ActuatorおよびMicrometerを使うことでメトリクスをモニタリングシステムで収集することが できます。 ここで、収集先のモニタリングシステムがない場合にログ出力でもできないかな?と思…

Spring Frameworkの@Transactinalのロールバックに関する設定を確認する

これは、なにをしたくて書いたもの? Spring Frameworkで@Transactionalアノテーションを使った時の、ロールバックに関する設定を確認しておきたいな、と 思いまして。 @Transactionalアノテーションを使ったトランザクション管理 Spring Frameworkのドキュ…

MySQL Server 8.0の設定を、set persist(またはset persist_only)で変更する

これは、なにをしたくて書いたもの? MySQLでは、(可能なものについては)設定をsetで動的に変更することができます。 MySQL :: MySQL 8.0 リファレンスマニュアル :: 5.1.9 システム変数の使用 MySQL :: MySQL 8.0 リファレンスマニュアル :: 5.1.4 サーバ…

システムコンポーネント(CPU、メモリ、ディスク、ネットワーク等)のレイテンシとタイムスケールなどなど

これは、なにをしたくて書いたもの? CPUサイクルに対してメモリアクセスのレイテンシ比とか、メモリアクセスとディスクアクセスのレイテンシ比がどこかに まとまっていたな、と時々思いながら、どこにあるか忘れて探すことになるので。 各リソースアクセス…

Dockerfile内で複数行の文字列を作りたい

これは、なにをしたくて書いたもの? 時々、Dockerfile内で複数行の文字列を作りたくなる時があるのですが、どうやったらいいのかすぐに忘れるのでメモして おこうかな、と。 環境 今回の環境は、こちらです。 $ docker version Client: Docker Engine - Com…

Linuxで、現在使っているシェルが知りたい

これは、なにをしたくて書いたもの? Linuxで、現在使っているシェルを知りたい、ということで。 環境 確認環境は、こちらです。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.2 LTS Release: 20.04 C…

ThreadPoolExecutorの設定項目を確認する

これは、なにをしたくて書いたもの? 今までConcurrency Utilitiesで提供されるスレッドプールを使ってきたことはあったのですが、その設定内容をちゃんと 見てきていなかったので今回見てみようかなと。 具体的には、ThreadPoolExecutorを見ていこうと思い…

Spring FrameworkのJDBC接続とスレッド(TaskExecutor利用)の関係を確認してみる

これは、なにをしたくて書いたもの? Spring FrameworkのJDBC接続(Connection)は、スレッドに紐付けられて管理されていたはずなので。 ここで、タスク実行の仕組みを使い、別スレッド内でデータベースアクセスを行った場合はConnectionが別になるのかなと…

Spring FrameworkのTask Executionを試す

これは、なにをしたくて書いたもの? Spring Frameworkには、タスク実行とスケジューリングの機能があります。 Task Execution and Scheduling 今回は、タスク実行にフォーカスして見ていきたいと思います。 具体的には、TaskExecutorとThreadPoolTaskExecut…

MySQL 8.0で、InnoDBのテーブルサイズを見たい

これは、なにをしたくて書いたもの? MySQLで、InnoDBのテーブルサイズを見たい、と思いまして。 その方法を調べてみようかなと。いくつかあるようです。 環境 今回の環境は、こちら。 mysql> select version(); +-----------+ | version() | +-----------+ …

MySQLのサンプルデータとして、Employees Sample Databaseを使う

これは、なにをしたくて書いたもの? MySQLに入れる、ほどほどのデータがないかなぁと思って調べてみたら、MySQL自身にあるじゃないですか。 Employees Sample Database、だそうです。 MySQL :: Employees Sample Database GitHub - datacharmer/test_db: A …

MySQL 8.0に、LOAD DATA、Parallel Table Import Utility(MySQL Shell)、JDBCでCSVロードしてみる

これは、なにをしたくて書いたもの? MySQLにCSVロードをしようとした時に、LOAD DATAを使ったり、ふつうにINSERT文を使ったりといくつか方法が あると思うのですが、どれくらい違うものだろう?ということで試してみることにしました。 お題 CSVファイルを…

Stack Overflowのデータをダウンロードする

Stack Overflowのデータは、以下のサイトからダウンロードすることができます。 Stack Exchange Data Dump : Stack Exchange, Inc. : Free Download, Borrow, and Streaming : Internet Archive 形式は、7zip圧縮されたXMLファイルで、以下が含まれています…