Claude で問題を解いてみようシリーズで前からやりたいことリストにあった RubyGems が依存している Psych を専用の YAML パーサーで処理できるようにしてみようというのを Claude にやらせたらまともに動くものができた。
https://github.com/ruby/rubygems/pull/9352
前から Gemini とか GitHub Copilot 経由で使えるやつでちまちまやってたけど、どうしても bundle install など現実に存在する gem のインストールで死ぬということが多かったのだけど、Claude Opus 4.6 を問い詰めていたらサクッと動くものができて、お前やるな、となった。基本的な進め方は
って感じでいいんじゃね?ってレベルのものができた気がする。いきなりこれに置き換えると流石にやばい気はするのでどっちをデフォルトにするかはともかく、オプションで切り替えられるようにするって感じかなあ。
しばらく積読のままだったムーンガンダムの15を読んだ。いつの間にか精神世界バトルといういかにもガンダムらしい展開になっていたけど、相変わらず前回はどこまで話が進んだんだっけ...となってしまった。
本当に同じようなことを繰り返していて良くない、というかもう漫画というメディアは読むべきではないのかなあ。
3月末には Ruby 3.2 のメンテが終わり、3.3 がセキュリティメンテモードになるということで zlib の脆弱性情報および修正コードを公開した。
https://www.ruby-lang.org/en/news/2026/03/05/buffer-overflow-zlib-cve-2026-27820/
この手のやつ、慣れたもので事象の理解とパッチがあればはいはいって感じで進めるのは余裕にはなってきた。とはいえ、これをフルタイムじゃない時にもやれるか、というと無理だとは思うけど...
各種調整とか申請フローが多々あり、AI にはできない仕事、というか何を脆弱性で何をただのバグとするかは最終的には人が決めて終わりというものなので、当面はこれをやって食べていけそうな気はする。
ずーっと前から手元の Windows マシンでせっせと作ってきた all-ruby の docker イメージだけど、気がついたら 800GB くらい WSL の仮想マシンのディスクが成長していて、なんだこれ、となったのでアンインストールすべく Claude の力を借りて GitHub Actions でもイメージビルドできるようにした。
大まかな方針としては、とにかくジョブの並列数を増やして docker hub に中間生成物を投げつつ、最後の統合処理をやるというところなんだけど、分割までは上手く行っても統合の途中で Actions の runner がログもなく動き続けて固まる、みたいなことがやたらと発生していて、おそらくは disk size かなあとあたりをつけて、職人の勘による分割作業を繰り返してなんとか最終的に動くイメージを作るところまでできた。
いやあすごいね、これを手で書いてたら発狂すると思う。この辺の方針と戦略はわかるから、後の細かいところは書いといて、というのが本当にたくさんあるのでバンバンやっていこうと思う。
とりあえず bookworm をベースイメージにするのと、安定版バージョンがリリースされたら自動でビルド、というあたりまで辿り着きたい。
Google の AI Studio、One の AI Pro だから、リミットまでは無料で使えるだろと思っていたら、クレカ入れると勝手に上限突破して課金し始めるようで、$8 消化して引き落としされていた。
これは API 呼び出しで Zed Agent から色々切り替えて試していた Gemini Pro 3.1 の利用が原因で、こんな額で済んだといえばよかったのだけどめちゃくちゃ損した気分。正解はAPIのセットアップ時にクレカを入れない、らしいのだけど Claude でも Max プランのオンボードでクレカを入れさせようとしていて、この辺の手続きの流行は本当に邪悪だと思う。
同じような記述がありつつも分離してメンテされ、誰も方針も何もしないで放置に近い状態だった bundler.io/guides を guides.rubygems.org に migrate した
大体の方針はすでにあるので基本的に Agent にぶん投げて実行してあとは微調整で終わり。この手のhtmlをいじる、みたいなやつは本当に楽になっていい話である。
migrate したのはいいけれど、重複している記述がたくさんあって微妙なのは微妙なままなのでもう少し意味のあるかたまりにして更新するのは次の作業。あとはコマンドラインリファレンスをどうするかだなあ。