トップ 追記 RSS feed

HsbtDiary


2026/03/18 (水) [長年日記]

ruby/rubygems に simplecov を入れた

ruby/rubygems は rubygems の test-unit なテストと bundler の rspec なテストの2つが共存していて、rake test と rake spec` でそれぞれ実行するんだけど、それらを一緒に組み合わせた上でテストカバレッジってどうなってんの?というのが知りたかったので claude に作らせた

https://github.com/ruby/rubygems/pull/9394

以前に、片方だけ単純に計測するというのは作っていたものの、異なるテストフレームワーク、しかも rspec の方は並列実行するというやつで、すべての結果を merge するというのができるんだろうけど、どうやれば、というか時間がかかりそうでだるい、というやつだったので claude にあーしろ、こーしろ言って実現できたのはよかった。

ただ、プラットフォーム別の分岐がめちゃくちゃ多かったり、bundler は別プロセスを spawn して実行したりとあまり正確ではないカバレッジなので盲信はしないようにしつつ、むしろうまくカバレッジを上げるようなテストにしていくのがいいのだと思う。

地球の歩き方 山口市 を読んだ

すっかり d design travel かのように日本全国の紹介をし始めている地球の歩き方の山口を読んだ。500円セールか何かの時に買ったやつらしい。

山口、広島県の下瀬美術館ついでに YCAM あたりまで足を伸ばしていければいいなあくらいだったけど、この本を読んでみると意外と城下町というか大内や毛利の寺社文化が残っている場所があちこちにあるようで、ちょっと足を伸ばして、というか門司までフェリーで行ってから徳島か、なんなら東名を通って帰ってくる、くらいで行ってもいいかもなあってなった。

記憶ももう朧げだけど高専生の時に山口というか下関に一度行ってそれっきりなので、改めて色々見ておきたい。


https://www.amazon.co.jp/dp/B0FFLFKLLJ


2026/03/17 (火) [長年日記]

Ruby office hour

久しぶりに Matz が参加したので函館でのイベントあれこれのオファーをしたり、Ruby のシンタックスで「これ結局どっちにすんの」というのを確認したりしていた。

あとは相変わらずの AI coding の話。今日はコードのコメントが嘘だった時に AI がそのコメントに騙される、とかコメントには日付を書くようにして、古い内容ですよ、とかそういうコンテキストを読み込むのを前提にしないとダメだよね、みたいな話をしていて「なるほどねー」ってなったりしていた。

コメントは全部消してコードの振る舞いだけを解釈させる、というのが未来としてはいいのかもしれないけどどうかなあ。半年くらい Claude をガリガリ使えるので色々試そうと思う。

Ruby 開発者会議 3 月

午前は office hour でちょっとご飯を食べてからそのまま開発者会議へ。弾丸日程である。

https://bugs.ruby-lang.org/issues/21877

アジェンダ自体は書いてある通り、ってところだけど自分が最近取り組んでいる Ruby(+RubyGems) の起動を速くしたいんだよ〜という話をしていた。

https://bugs.ruby-lang.org/issues/21951

簡単に書くと今Ruby の起動が 80-100ms かかるとすると、Ruby 本体は10ms、RubyGemsは20ms、残りが did_you_mean などのエラー表示拡張の gem の時間ということがわかり、RubyGems の起動時間を 20ms から 18ms に超頑張るより、did_you_mean などを遅延ロードにした方が効果あるよ、と claude に言われてしまったのでなんとかできないか、とやってるやつ。

最初は単純に遅延ロードすりゃええやん、と思ってやってみたら DidYouMean.foo みたいなクラスメソッドを require しないで呼ぶというコードが割とあり、そういうコードが全滅しちゃうよね、とか prefork なサーバーで最初に全部読み込んでしまいたいよね、とか意外と考えないといけないことが多いなーとなったのが今ここ。

Ruby 4.0.2 がリリースされた

朝起きると k0kubun 君が作業をしていて「仕事するかな」という時間にはリリースされていた。

https://www.ruby-lang.org/en/news/2026/03/16/ruby-4-0-2-released/

ちょうど今回から all-ruby は GHA でイメージ生成するようにしたので workflow_dispatch を流す、rbenv は release スクリプトを実行、snapcraft は手でリリースの3つで終わり。だいぶ楽になってきたので最高。

とりあえず実績はできたので、all-ruby も次からは全自動イメージ作成にしようと思う。


2026/03/16 (月) [長年日記]

ossan.fm にゲスト出演した

Ossan のキマグレパーティーに行った時に「そろそろしゃべらせてください」と売り込んだところ、じゃあ3月のゲストで、と2つ返事に話が進んで 3/2 に収録、3/9, 3/16 に公開という弾丸スケジュールで公開された。

387 の方は割と普通な気はするけど、ガーデニングの方は弾丸モードで好きなことだけを話すって感じで話してる自分も、改めて podcast で聞いてもいいこと言ってるじゃん、って内容で満足だった。改めて聞くと F4 連打じゃなくて、F5だわ、とかおかしい部分もあって面白い。

ちょうどこれに合わせてイベントの時に手に入れた冊子3冊も読み終えて、耳で聞くのと読むのとでは体験がまた違うなあと感じて味わい深かった。それにしても今から Vol.1 を読むとクリスさんの地理に関するメチャクチャっぷりが面白い。

あと https://rooom.listen.style/p/ossanfm で 10分 *2 の特別エピソードも配信されているので、建築の旅と万博の話に興味がある人はこちらも合わせてどうぞ。

Google 検索で AI モードを強制する方法

Claude も Gemini もアドレスバーなどからクエリパラメータで呼び出すことができなくて本当に使い物にならないんだけど、色々調べると

https://www.google.com/search?q=%s&udm=50

というように udm を使うと Google 検索で AI モードを強制することができるようで、上の文字列をアドレスバーのカスタムサーチとして登録して検索させると大体やりたいことができるのでこれでいいや、となった。

3月 開発者会議準備会

今月の Ruby 開発者会議は変則的に火曜開催なので、月曜のうちにチケット読み込みの準備会。

https://bugs.ruby-lang.org/issues/21877

会議むけの具体的なアジェンダは置いてないけど、この辺どうすかねえ、という相談レベルのやつはいくつか用意して終わり。お疲れ様でした。