CLOVER🍀

That was when it all began.

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

Pythonアプリケーションに対して、opentelemetry-instrumentを使わずにOpenTelemetryのゼロ計装を行う

これは、なにをしたくて書いたもの? 前に、PythonのOpenTelemetry計装ライブラリーの導入方法がわからなかったので、ちょっと調べてみました。 PythonのOpenTelemetry計装ライブラリーの導入方法がよくわからなかったので、pipとuvを使ってFastAPIで試して…

Development Container(Dev Container)をCLIで使ってみる

これは、なにをしたくて書いたもの? 個人的にはあまり使ってきていないのですが、Development Container(Dev Container)について1度見ておこうと思いまして。 Development Container(Dev Container) Development ContainerのWebサイトはこちら。 Develo…

Pythonの静的型チェッカー、Pyrightを試す

これは、なにをしたくて書いたもの? 以前、Pythonでの型ヒントとMypyについて調べてみました。 Pythonで型ヒント(Type Hints)を試してみる(+Mypy) - CLOVER もうひとつ押さえておいた方がよさそうな型チェッカーとしてPyrightがあるようなので、こちら…

スクリプト向けのdocker image lsのフィルタリングとフォーマット

これは、なにをしたくて書いたもの? docker image lsの結果のフィルタリングとフォーマットを方法を少し覚えておこうかなと思いまして。 だいたい、ちゃんと覚えずにgrepやperlでやるような力技に頼っていたので。 ドキュメントで見る 参考にするのはこのあ…

Sonatype Nexus Repository 3へローカルディレクトリーのアーティファクトをデプロイ(deploy:deploy-file)するPythonスクリプトを書く

これは、なにをしたくて書いたもの? 以前、Groovyでこういうスクリプトを書きました。 Nexus 3向けにMavenのローカルリポジトリのファイルをリモートリポジトリにデプロイするスクリプトを書く - CLOVER 最近ではGroovyを使っていないので、こういうのはPyt…

Remminaの「すべてのキーボードイベントを取得する(Grab all keyboard events)」を活用する

Remminaで接続した時に、Alt+Tabのようなキー操作をクライアント側とリモート側で効くタイミングを切り替えられたらなと思って いたのですが、「すべてのキーボードイベントを取得する(Grab all keyboard events)」でできそうです。 この部分ですね。 オ…

RemminaでWindowsにRDP接続する時に、CtrlキーとCapsLockキーを入れ替える

Ubuntu Linux上で一時的にWindowsを使いたい時に、よくVagrant(libvirt Provider)を使っています。 仮想マシンへの接続にはRemminaでRDPを使っています。 この時、仮想マシン側でCapsLockの挙動がおかしくてとても困っていたのですが、解消できたのでメモ…

SnakeYAML/SnakeYAML Engineを使って、JavaでYAMLを扱う

これは、なにをしたくて書いたもの? YAMLというファイルフォーマットはよく扱っていますが、そういえばYAMLをプログラムで扱うことをあまりやってこなかったので、 1度ライブラリーを調べる意味も含めて見てみました。 今回はSnakeYAMLを扱ってみようと思い…

Ubuntu Linux 24.04 LTSにDuckDBをインストールしてみる

これは、なにをしたくて書いたもの? 前々からちょっと気になっていた、DuckDBを少し使ってみようと思いまして。 今回はUbuntu Linux 24.04 LTSにインストールしてみます。 DuckDB DuckDBのWebサイトはこちら。 DuckDB – An in-process SQL OLAP database ma…

Java 9以降の変更点のサマリーをドキュメントで見る

前に、Javaの新しいAPIについてはJavadocで確認できるようになっていることを紹介しました。 Java 11から17までのJEP、新しいAPIのまとめ - CLOVER 言語の変更点については、こちらのドキュメントを見るとまとまっていてよさそうです。 Java 11。 Java言語の…

Ubuntu Linux 24.04 LTSにOpenJDK 25をインストールする

これは、なにをしたくて書いたもの? OpenJDK 25が2025年9月16日にリリースされました。 The Arrival of Java 25 JDK 25 Documentation - Home Ubuntu Linuxにもそのうち使えるようになるだろうとは思っていましたが、現行のLTSである24.04に入るのには時間…

商用版のMinIO AIStorではなく、AGPL版のMinIOをダウンロードする

AWS

これは、なにをしたくて書いたもの? Amazon S3互換のオブジェクトストレージといえば、MinIOが有名かと思います。 このMinIOのダウンロードページを見に行った時に、AGPL版のダウンロード方法がわからなくなったのでメモしておきます。 AIStor? MinIOのダ…

Ubuntu Linux 24.04 LTSのaptパッケージでインストールしたOpenJDKをSDKMANで管理する

これは、なにをしたくて書いたもの? 自分は、Java系のツールのインストールにSDKMANを使っています。 Home | SDKMAN! the Software Development Kit Manager ただOpenJDKはUbuntu Linuxのパッケージからインストールしていて、このバージョン切り替えを自前…

cloc、scc、tokeiでソースコードの規模を計測する

これは、なにをしたくて書いたもの? 個人的にはあまりやらないのですが、ソースコードの規模を計測するツールを動かしておこうかなと思いまして。 いわゆるSLOC計測ツール ソースコードの規模を計測するツールとしては、このあたりが有名のようです。 cloc…

Batsのbats_load_library関数で、ロードするライブラリーのパスを簡潔に指定する

これは、なにをしたくて書いたもの? 前にBashのテスティングフレームワークである、Batsのチュートリアルを試しました。 Bashのテスティングフレームワーク、Batsを試す - CLOVER この時、bats-assertおよびbats-supportをロードするのにload関数で絶対パス…

Sonatype Nexus 3でコンポーネントをREST APIで削除する

これは、なにをしたくて書いたもの? Sonatype Nexus 3を使ってリポジトリーにアップロードをしていると、時々削除したくなります。 特にSonatype Nexus自体の環境を作っていたり、コンテナイメージを作成するテストをしている時などに。 Sonatype NexusのWe…

PythonでProtocol Buffersを扱う

これは、なにをしたくて書いたもの? PythonでProtocol Buffersを扱ってみようかな、ということで。 Javaでなら以前扱ったことがあります。とはいえ、久しぶりに触るので情報も見返してみましょう。 Protocol Buffers Protocol BuffersのWebサイトはこちら。…

wgetで簡易的にファイル同期したい

前に、wgetを使ってWebサイトをミラーするエントリーを書きました。 wgetでWebサイトをダウンロードする - CLOVER ところで自分はあるサーバーで以下のようにPythonで簡易HTTPサーバーを起動して、ここからファイルをダウンロードするといったことを よくや…

Sonatype Nexus 3でランダムに生成されるadminユーザーのパスワードを固定する

これは、なにをしたくて書いたもの? Sonatype Nexus 3をインストールして起動すると、adminユーザーのパスワードがランダムに生成されてsonatype-work/nexus3/admin.passwordに 保存されます。 これを固定できないかなと思いまして。 Sonatype Nexus 3でラ…

shfmtでシェルスクリプトのフォーマットを行う

これは、なにをしたくて書いたもの? shfmtを使うと、シェルスクリプトのフォーマットができるようです。今回はUbuntu Linux 24.04 LTSに導入してみます。 shfmt shfmtは、以下のGitHubリポジトリーに含まれるツールのひとつです。 GitHub - mvdan/sh: A she…

Bashのテスティングフレームワーク、Batsを試す

これは、なにをしたくて書いたもの? こちらでBashスクリプトをテストする場合の選択肢を調べてみました。 Bashスクリプトのテスティングフレームワークを調べてみる - CLOVER この中だと、まずはBatsが入門によいのかなと思ったのでチュートリアルを試して…

Emacsにlsp-mode+Bash Language Serverをインストールする

これは、なにをしたくて書いたもの? EmacsでBashを書く時に、LSPを使いたいなと思いまして。 むしろ、どうして今まで使っていなかったんでしょう 笑 EmacsでLSPを使う時には、lsp-modeを使います。 Bash Language Server lsp-modeでBashを使う時のLanguage …

Bashスクリプトのテスティングフレームワークを調べてみる

これは、なにをしたくて書いたもの? 主にBashで書かれたシェルスクリプトをテストするには、どのようなものを使うのか知らなかったのでちょっと調べてみました。 メモ書きです。 Bashスクリプトをテストする選択肢 以下の選択肢があるようです。 Bats Welco…

WildFlyのMicroProfile Telemetryサブシステムを使って、トレースとメトリクスを送信してみる

これは、なにをしたくて書いたもの? 以前、WildFlyのMicroProfile Telemetryサブシステムを使って、トレースシグナルをJaegerに送信してみました。 WildFlyのMicroProfile Telemetryサブシステムを使って、トレースを試す - CLOVER 今回はもっと範囲を広げ…

リファクタリングツールOpenRewriteを、Java 21とJakarta EE 10への移行レシピで試してみる

これは、なにをしたくて書いたもの? ソースコードをリファクタリングしてくれるツールである、OpenRewriteというものがあります。 前々から名前は知っていたのですが、1度試してみようかなということで。 OpenRewrite OpenRewriteのドキュメントはこちら。 …

PrometheusでOpenTelemetryのメトリクスシグナルを直接受け取る

これは、なにをしたくて書いたもの? Prometheusといえばpull型のメトリクス収集ソフトウェアですが、リモート書き込みの他にOpenTelemetryのメトリクスシグナルを 直接受け取ることもできるようです。 ちょっと試してみましょう。 PrometheusをOpenTelemetr…

PythonのOpenTelemetry SDKを使って、メトリクスを送信する単純なスクリプトを作成する

これは、なにをしたくて書いたもの? OpenTelemetryを使っている時に、ちょっとした動作確認みたいなことをしたい時があったりします。 この時に、アプリケーションを作って計装ライブラリーをインストールして…みたいなことをしていると手間な気がするので…

GitLabのジョブをローカルで動かせるgitlab-ci-localを試す

これは、なにをしたくて書いたもの? GitLab CI/CDを使っていると、.gitlab-ci.ymlを変更してコミットしてpushして確認…というのが面倒になってきます。 そうなるとパイプラインをローカルで動かしたいと思い、いろいろと調べてみました。 GitLab Runnerのex…

セルフホスティングしているGitLabのコンテナレジストリーを有効にして、GitLab CI/CDで使えるようにする

これは、なにをしたくて書いたもの? セルフホスティングしているGitLabのコンテナレジストリーを有効にする方法と、GitLab CI/CDで使えるようにする方法をメモしておこうかなと。 だいぶハマったので…。 GitLabのコンテナレジストリー GitLabのコンテナレジ…

GitLab CI/CDのDocker Executorで、ジョブを実行するシェルを確認する

これは、なにをしたくて書いたもの? GitLab CI/CDのRunnerとしてDocker Executorをよく使うのですが、ジョブのscriptがどのシェルで動作しているのかを知りたいと思いまして。 ドキュメントと実際の動作の2つを確認してみたいと思います。 GitLab CI/CDのDo…