CLOVER🍀

That was when it all began.

2023-01-01から1年間の記事一覧

Node.jsでPromise版setTimeout/setInterval(Timers Promises API)ってスリープや一定時間での繰り返し呼び出しを行う

これは、なにをしたくて書いたもの? Node.js v15からPromise版のsetTimeout、setIntervalが導入されているのですが、どこのモジュールなのかよく忘れるのでメモ。 Timers Promises API Promise版のsetTimeout、setInterval(とsetImmediate)は、timersモジ…

RabbitMQのJavaScriptチュートリアルの「Hello World!」をTypeScriptで試す

これは、なにをしたくて書いたもの? この前、Ubuntu Linux 22.04 LTSにRabbitMQをインストールしてみました。 Ubuntu Linux 22.04 LTSにRabbitMQをインストールする - CLOVER RabbitMQを見直すのとTypeScriptの学習も兼ねて、JavaScriptクライアントを使っ…

AWS SDK for Java 2.xでAPI呼び出しの結果がエラーの場合、例外がスローされるのか?(SdkHttpResponseのisSuccessfulは?)

これは、なにをしたくて書いたもの? AWS SDK for Java 2.xを使うと、APIの各種レスポンスからSdkHttpResponseというインターフェースのインスタンスを取得することが できます。 こちらですね。 SdkHttpResponse (AWS SDK for Java - 2.20.17) このクラスに…

Ubuntu Linux 22.04 LTSにRabbitMQをインストールする

これは、なにをしたくて書いたもの? 久しぶりに、RabbitMQを使ってみたくなりまして。まずはインストールするところから見直してみたいと思います。 RabbitMQ RabbitMQのWebサイトはこちら。 Messaging that just works — RabbitMQ 機能はOSS版、商用版それ…

Java 15で導入されたJEP 378 Text Blocksを試す

これは、なにをしたくて書いたもの? Java 15で、JEP 378 Text Blocksが導入されました。 JEP 378: Text Blocks すでに時々使っているのですが、改行や空白の扱いなどを雰囲気で使っているので、1度ちゃんと見ておこうかなと思いまして。 JEP 378: Text Bloc…

Ubuntu Linux 22.04 LTSで、"python"コマンドがないと言われたら

これは、なにをしたくて書いたもの? Ubuntu Linux 20.04 LTSからUbuntu Linux 22.04 LTSへ環境を移していて、pythonコマンドの扱いにちょっと困ったのでメモ。 環境 今回の環境はこちら。Ubuntu Linux 22.04 LTSです。 $ lsb_release -a No LSB modules are…

Docker Composeの構成ファイル内で環境変数を参照する

これは、なにをしたくて書いたもの? Docker Composeの構成ファイル内で(環境)変数を参照できるのはなんとなく知っていましたが、ちゃんと試したことがなかったので 自分でも確認しておきたいなということで。 環境 今回の環境は、こちら。 $ docker versi…

Docker Composeで、コンテナの起動時に初期処理をしたい

これは、なにをしたくて書いたもの? Docker Composeを使って起動するコンテナの初期処理をするには、どうしたらいいのかな?ということで。 ちょっと考えてみました。 環境 今回の環境は、こちら。 $ docker version Client: Docker Engine - Community Ver…

AWS SDK for Java v2に対応したAmazon SQS Java Temporary Queue ClientとLocalStackを使って、一時キュー+RPCを試してみる

これは、なにをしたくて書いたもの? 以前、Amazon SQS Java Temporary Queue ClientとElasticMQを使って、一時キューとRPCを使ったエントリーを書いたことがあります。 Amazon SQS互換のElasticMQを使って、Temoporary Queue+RPCを試してみる - CLOVER こ…

Infinispan 14.0で実験的にサポートされた、io_uringを有効にしてみる

これは、なにをしたくて書いたもの? 前に、NettyのincubatorプロジェクトであるNetty io_uringを試してみるエントリーを書きました。 TCP Echo Server/Clientを書いて、Netty io_uringを試してみる - CLOVER Infinispanでも14.0.0.Finalから、Netty io_uri…

OpenAPI Generatorを使って生成するSpring Web MVCのソースコードに、独自にバリデーションを追加したい

これは、なにをしたくて書いたもの? OpenAPIを使ってREST APIを定義した時に、requiredや文字列長、範囲についての記述をしておくと、OpenAPI Generatorを使って 自動生成した時にある程度バリデーションの定義も生成してくれます。 OpenAPI Specification …

Docker Composeで、構成ファイルを複数使って定義内容を上書きする

これは、なにをしたくて書いたもの? Docker Composeで、構成ファイルを複数使って上書きができることはなんとなく知っていたのですが、ちゃんと情報を追ったことが なかったので、ちょっと見てみることにしました。 Docker Composeでの構成の上書き ドキュ…

LocalStackとMinIOで、バケットにアップロードしたファイルをHTTPで参照する

これは、なにをしたくて書いたもの? LocalStackやMinIOをAmazon S3互換のオブジェクトストレージとしてAWS SDKやAWS CLIからアクセスすることはよくあるのですが、 バケットにアップロードしたファイルをHTTPで参照したことってないな、とふと思いまして。 …

Docker Composeを使った時に、コンテナ間で名前解決したい

これは、なにをしたくて書いたもの? ふだんDocker Composeをそんなに使っていないのですが、たまに使うとコンテナ間で名前解決するのにどうすればいいのかよくわからなく なるので、ちゃんと見ておくことにしました。 参照ページ 主に、以下のページを見て…

Ubuntu Linux 21.04以降でaptにも適用されているPhased Updates

これは、なにをしたくて書いたもの? Ubuntu Linux 22.04 LTSにしてから、パッケージを更新しようとした時に $ sudo apt upgrade 以下のようにパッケージの更新が保留されることが増えました。 以下のパッケージは保留されます: update-notifier update-noti…

TCP Echo Server/Clientを書いて、Netty io_uringを試してみる

これは、なにをしたくて書いたもの? Nettyのio_uringを少し見てみたいな、ということで。 io_uring まずは、io_uring自体について。 io_uringは、非同期IO用のAPIです。カーネル5.1から導入されたそうです。 https://kernel.dk/io_uring.pdf io_uringについ…

DateTimeFormatterでパースとフォーマット時の桁数や空白について調べる

これは、なにをしたくて書いたもの? DateTimeFormatterで文字列として表現された日時をパースする時に桁数や空白の扱いについてあまり意識していなかったので、 ちょっと見てみることにしました。 DateTimeFormatter (Java SE 17 & JDK 17) 環境 今回の環境…

Jacksonで、オブジェクトをシリアライズする際にnullのプロパティを出力しないようにする

これは、なにをしたくて書いたもの? Jacksonを使ってオブジェクトをJSONにシリアライズする際に、nullのプロパティの出力は抑制したくなることがあります。 JSONにした時に、以下のような状態を { "property1": "value1", "property2": null } こうする、と…

複数の宛先に対する簡単なTCPプロキシサーバーをsocat+Pythonで書く

これは、なにをしたくて書いたもの? 時々、TCPでの通信をローカルポートから別の宛先に転送したくなることがあります。いわゆるプロキシです。 個人的に、こういう時にはsocatをよく使っているのですが。 socatでTCPプロキシサーバーを立てる - CLOVER 転送…

IntelliJ IDEAを使ってコマンドラインでファイルをフォーマットする

こちらのエントリーを書いていて、IntelliJ IDEAを使ってコマンドラインでファイルをフォーマットできることがわかったので、 軽くメモしておきます。 Formatter Maven Pluginで、ソースコードのフォーマットを行う - CLOVER ドキュメントはこちら。 Format …

Formatter Maven Pluginで、ソースコードのフォーマットを行う

これは、なにをしたくて書いたもの? Javaでプログラムを書いていて、ソースコードを一括でフォーマットしたり、フォーマットするのを忘れないようにしたいとかいう 話があると思います。 こういうのを調べてみると、たいていEclipseのフォーマッターをCLIで…

Infinispan 14.0の新しいHot Rod Client APIのMutiny版を試す

これは、なにをしたくて書いたもの? 前にこういうエントリーを書きました。 Infinispan 14.0の新しいHot Rod Client APIを試して諦めたという話 - CLOVER Infinispan 14.0.0.Finalから新しいHot Rod Clientが含まれており、同期、非同期、Mutinyの3つの利用…

SSHでログインしていることを判定するには、SSH_CONNECTION環境変数を見ればよいという話

これは、なにをしたくて書いたもの? 現在のシェルがSSHでリモートログインして起動したものかどうか、判定する方法はないのかな?と思って調べてみたのですが。 SSH_CONNECTIONという環境変数が設定されているかを見ればよいみたいです。 SSH_CONNECTION環…

AWS SDK v3 Client mockでAWS SDK for JavaScript v3をモックする

これは、なにをしたくて書いたもの? AWS SDK for JavaScript v2の時には、モックライブラリとしてaws-sdk-mockがありました。 そういえば、AWS SDK for JavaScript v3の場合はどうなのかというと、AWS SDK v3 Client mockというものが存在しているようです…

lsp-modeのlsp-keymap-prefixのデフォルト値がよくわからないという話

lsp-modeのドキュメントにKeybindingsというページがあり、主な機能に対するショートカットが定義されています。 Keybindings - LSP Mode - LSP support for Emacs こちらを使う時に入力するlsp-keymap-prefixで指定されたデフォルトのprefixがs-lとなってい…

systemdのターゲット(SystemVのランレベル相当)を変更する

これは、なにをしたくて書いたもの? そういえば、systemdになってからSystemVのランレベルに相当するものを変更したことがないなと思いまして。 multi-user.targetなどの言葉には見覚えがあるのですが、これを切り替えたことがない、という話です。 systemd…

Node.js+TypeScriptでSQLite 3を使う

これは、なにをしたくて書いたもの? 以前に、SQLite 3をPythonから使ってみました。 SQLiteをPythonから使う - CLOVER 今度はNode.js(とTypeScript)から使ってみようと思います。 SQLite 3 SQLiteとはなんだかった?というところから。 SQLite Home Page …

REST AssuredをSpring Boot 3.0で使う

これは、なにをしたくて書いたもの? REST Assuredが5.1.0でSpring Boot 3.0に対応したようなので、REST AssuredとSpring Frameworkの組み合わせの確認を含めて 試してみることにしました。 https://github.com/rest-assured/rest-assured/blob/rest-assured…

Database RiderをSpring Framework(Spring Boot)と合わせて使う

これは、なにをしたくて書いたもの? 前に、Database Riderに関するエントリーを書いたことがあります。 Database Riderを試してみる - CLOVER Database RiderにはSpring Framework(Spring Boot)と組み合わせて使う機能があるようなので、試してみました。…