トップ RSS feed

HsbtDiary


2026/08/04 (火) [長年日記]

Ruby office hour

この日は Matz は品川のイベントのために移動なのか不参加だったので、nobu, ko1 と3人でゆらっとおしゃべりしていた。

特に最近力を入れている Windows 周りでロングパス対応をする裏技を入れるかどうかについて、懸念点とか気になっていることを nobu と壁打ちしているうちに午前中が終わってしまった。たまに人と話すと時間が早いねえ。

メンテしている heroku を terraform にした

インフラテコ入れ活動の続きで、面倒見ている heroku の構成を terraform を使って IaC 化した。

これも claude に何を使うのがいいかねえと相談して terraform しかないね、という結論になったのでしょうがなく採用した。terraform とか、解決したい課題に対して人間が理解できる範囲を超えているとしか思えないけど claude に丸投げしてやらせるのならまあいいか、って判断。

いつもならここから dump した tf をレビューさせて、改善項目などを見つけて直させるのだけど今週はちょっと立て込んでいるので後で。

gem-codesearch を mitamae 化した

で、続きとして gem-codesearch という Ruby コミッタだけが使える rubygems.org に登録されているすべての gem を調べる仕組みを入れているサーバーの手入れをしていた。

まずは ssh でログインして何をしてもいいよ、と claude に明け渡してから mitamae による IaC 化をしてから、ディスクが足りなくなってきているので ebs をアタッチして拡張だとか、検索の時にゴミとして出てくる vendored コードの重複排除をどうやればいいか、とか。

あと、claude 自身に「claude が使いやすくするために検索結果はどう表示すればいい?」と相談したら

  • すでに着手しているように vendored な関係ないファイルを消してください、余計な処理が多くて token が減ります。
  • /srv/gem/… のような全く同じ情報の繰り返しを消すのも token 削除に有用です。
  • このツールの肝は foo と言う gem に method と言う文字列が含まれるのを1行で知りたい、と言うことなので、同じ gem の表示の繰り返しはやめて、存在だけ最初に出すオプションを追加する

ということだったので、じゃあ全部作って、と作らせた。json にした方が効率がいいのか、と思ったらすでに構造化された出力があるから json にして複数行にするのは無駄なだけと一蹴された。なるほどね。

最終的に 130gb くらいあった gem のファイルが 20gb 以下になってスッキリかつ、高速に検索できるようになった。あと個人的な話になるが、claude に Ruby のコードを消すという時には、gem-codesearch を使って影響調査をしろ、という skill も放り込んだので万全である。


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

1.5V の電池と 1.2V の電池

HHKB Studio のために、容量が多い電池でも追加で買っておこうと思い「imuto 充電式単三リチウム電池 1.5V 8本入りセット」という 3000mWh の単三電池を買ったのだけど、これに付属している充電器を使って従来の充電池も充電しようと思ったら赤く光ってエラーとなって充電できない。

なんだこれ、と思って条件を調べていくと、新しく買った電池は 1.5V で、今まで使っていたのは 1.2V だった。んで、新しいのはリチウムイオンの単三電池で、今までのはニッケル水素ということでそもそも別物ということだった。

電池というだけで同じ型なら充電できるだろ、と思ったら最近は明確に別物になってるっぽく、そんな状況というのを初めて知った。Type-C を直接接続して充電というのも 1.5V のタイプっぽい。こんなことになってるとは思わなかったので思わず勉強になった。


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

ruby-lang.org も dnscontrol で管理するようにした

インフラもなんでも claude にぶん投げると便利ということがわかってしまった以上、もう手作業で何もやりたくない...となったので ruby-lang.org の DNS も IaC にしてしまった。

https://github.com/ruby/ruby-infra-recipe/blob/master/dns/ruby-lang.org/dnsconfig.js

rubyci.org の方は dnsconfig.js を変更して merge すると github actions が走って dns が更新されるのに対して、こっちは流石に Ruby の根幹の部分なので手で実行するということにはした。これでも claude にやらせるには十分といえば十分。

crossruby がたまに落ちるので直させた

crossruby.rubyci.org という Ruby の cross build をチェックしている CI があるのだけど、こいつが不定期に疎通できなくなり AWS console から reboot しないと復活しないという状況があってとてもだるかったので claude に調べさせたら

  • swap がないので oom killer が頻発することがある
  • その状況下で dhcp の更新が走ると ip を失って孤立する

というところまでサクッと突き止めたので、swapfile 追加して dhcp の方も失わないようにして、と指示してなんとかさせた。

https://github.com/ruby/ruby-infra-recipe/pull/67

上のような変更をちゃちゃっと作ってから適用、サーバーには反映、という感じなので大変便利。これでしばらく様子を見る。


2026/08/02 (日) [長年日記]

今週のゲーム

この日は朝からゆっくりゲーム。鳴潮の方がストーリーだけ終わらせてマップを放置だったので新エリアを探索。その前に新キャラがまあまあ好みだったのでゲットしておいた。無料プレイ中なのでリソースを貯めておいてもしょうがない。

新キャラ用に特別なストーリーはないものの、テキストのみのサブイベントはちらほらって感じだったのでその辺を消化。

そのあとは探索のクエストを進めながらエリア解放を伴うサブクエストを進めたり、ミニゲームを色々と消化していた。探索、バイクと飛行ユニットがあれば大体いけてしまうので、何をやっても世界が狭く感じる。これの投入はゲームの寿命を縮める意味でちょっとミスったかもねえ。

新エリア特有の探索目標がどうやれば進むのかわからなくて、色々やっているとミニゲームをやればいいということがわかったので、クレーンゲームをひたすら消化していた。

来週には次のバージョンの予告番組があるっぽいけど、とりあえず期間限定の報酬は取り終えた、かな...。

ゼンゼロの追加トロフィーをコンプしていた

ゼンゼロの方は、というと真面目なストーリーとは別の期間限定のサイドストーリーへ。ここに出てくるシグリッドが完全にネタキャラ化していて、大変良い。「なんだかわからんが、よし!」じゃないよ。

ノルムーも相当に好きだけど、シグリッドも合わせるとわちゃわちゃしていて良かった。期間限定イベント、掃除機で海岸線を走り回ってアイテムを集めるのはいいけど、そのあとのアクセサリ作成が全然わからなくて、雰囲気だけでクリアしていた。

で、この後に何をするか、となって新しく追加されたトロフィーの取得条件である、新しいエンドコンテンツのステージどれか1つを3分以内にクリアする、というのをやるか、と始めたのが沼になってしまい、結局5時間くらいかかって寝る前にやっと取れた。という内容だった。

このコンテンツ、育成とか何も関係なくギミックを学んで、提供されるキャラの条件が等しい状態で3分で倒すというやつなので、とにかくプレイする側がなんとかするしかないというものなので、相当にストレスだった。こういう「プレイヤースキル」みたいのは求めてないんだよー...。

と、グダグダ言いながら、ひたすらリトライしていたら、寝る前になんとか3分を切ってトロフィーを取ることはできた。もう絶対やらない。