先週書いた mswin(not mingw) 向けの YJIT サポートをマージした。k0kubun 君はすぐに accept してくれていて、今週の木曜までに他に accept やコメントなくてもマージするよ、と書いて週を跨いだら Alan wu が見てくれたのでマージしてしまった。ありがたい。
https://github.com/ruby/ruby/pull/19114
実はこれ以外にも mswin の経路以外では速くなるような最適化があって、mswin も取りこぼさないように経路に入れたら10%速くなった、とかがあるんだけど、yjit を有効にすると大体2倍、物によっては3から5倍以上速くなるって結果になっているのだった。すごくないか。
ちゃんと計測するために ruby-bench を使って調べたりしてるんだけど、これがまた mswin では全然動かないのでまずはここから直すというのが必要なのだった。とほほ。
今月は木曜が Matz の都合が悪い、ということで水曜に開催。
https://bugs.ruby-lang.org/issues/22394
自分は rb_long_t という Windows では long が 32bit になってしまうという問題をなんとかしたい、というのと Apple の PowerPC サポートを切る、というお題を持っていった。
前者のやつ、Windows で WSL のイメージなども含むディスク整頓をさせていて、claude はシェルコマンドで mv とかじゃなくて、ruby で file をコピって sha 一致したら origin を消すという処理をやろうとし、Ruby では 2GBを超えるファイル扱えないので pwsh にします、すみません、みたいな流れを見かけて「なんで???」と調べたのが発端だった。
とりあえず mswin では雑に 64bit にしてしまおうと思うので、4.1 からは python じゃなくて ruby を使うように、とグローバルルールに書いてももう少し使う範囲が増える、と思う。この後には Fixnum の 64bit 化とかもあるんだよなあ。完全におもちゃになってる。
今週も Matz やいつものメンバーでおしゃべり。
DHH が火にガソリンを投入していて、それに反応する人も含めてニコニコしちゃうねという話をしていた。釣り針にわざわざ釣られにいくって昔はやめなさいとたしなめるものだと思っていたのだけど、なんかそういう感じじゃなくなったね。
AI が文章を作成出来る時代なので、もっと人間が文章を書くべき環境を整備すべきだな、となったので画像のアップロードをもっと楽に出来るようにした。
今までこの日記では google photos の共有機能を使って、public になっている画像の直リンクを生成して img タグ表示というのをやっていたのだけど、google の公式手順でもなく、いつ塞がれてもおかしくない上に、ひたすらに面倒という感じなので tDiary の機能だけで自前で画像をアップロードできるようにした。
https://github.com/tdiary/tdiary-core/pull/1395
今まではフォームからアップロード、ということをやっていたけど macOS などの画像オブジェクトコピーでフォームに貼り付けたらそのままアップロードされてタグが埋め込まれる。これで大体モダンなブログが備えている画像アップロードは満たしたとおもう。
で、ずっと前に flickr の無料プランの締め付けが厳しくなって表示されなくなってしまった flickr の画像も、残っているキャッシュのメタデータを claude に分析させたら、撮影日時の秒以下まで含めた完全一致を確かめれば同じ画像がどれかがわかる、と提案してきたので、手元にあるバックアップ全部から一致する画像を抽出させてサーバーにアップロード、パスをすべて書き換えという形で表示を復元させた。
最後に google photos で直リンクしている画像もすべてサーバーから配信という形に変更してタグを書き換えて画像表示がすべていい感じになった。AI のおかげで本当に便利になったと感じる。
今月も開発者会議の時期になったのでアジェンダを眺めたり、アジェンダにはないが話した方が良いというのをフィーリングでピックアップしていた。なかなかの量で 13:30 スタートで結局19時くらいまでやっててめちゃくちゃ疲れた。
最近、話す相手は妻と slack を通した人と claude 、って感じなので実際に声を聞いて喋るというのがなかなかに新鮮な気持ちになる。
Windows には sleep(0.001) が sleep(0.015) 程度になるという仕様があり、これを最近の Windows なら使える高精度タイマーを有効にすることで sleep(0.0015) 程度にまで近似するようにした。
https://github.com/ruby/ruby/pull/19059
これでテストのなかで sleep(0.001) などとしているような箇所あちこちの積み重ねでテスト実行が遅い、ということも少しは改善するはず。
claude で Windows の開発をいじっていると、「最近の Windows はそうだったんだ」というものが多数あり、usa さんがその度に「一度やろうと思ったんだけどねえ」という談話が出てくるのが最近めちゃくちゃ面白い。
土日にかけて開催されたヒプノシスマイクの 12th ライブを1日遅れづつ、日曜に土曜のライブ、月曜に日曜のライブ、って感じで見た。
それぞれ4アングルで8アングルの配信があり、それで13000円、となかなか迫力がある値段だったけど、1配信1800円くらいなら無料みたいなものでは、と謎の納得感を出して乗り切った。
ヒプノシスマイク、ライブがあるたびにもう終わりってしまうとかないよなあと心配になるけど13thライブの発表もあり、もうしばらく大丈夫そうでよかった。
Windows で Apple Music を使って音楽をかけるということをやっているのだが、Apple Music はユーザーディレクトリの下にある Music フォルダに決めうちでライブラリデータを保存するようになっていて、これは OneDrive で統合しているときも変更できない。
楽曲保存ディレクトリは変更できるものの、ライブラリそのものは変更できないので、Apple Music がダウンロードしたアルバムジャケットやライブラリそのもののファイルが再生するたびに OneDrive にガンガンアップロードされ、ロックファイルがあるので競合中、みたいなエラーがでて最悪だったのだけど、どう調べても変更できないのでアンインストールしてブラウザ版の Apple Music を使うことに切り替えた。
最初は大丈夫かなあって感じだったけど、使ってみるとダウンロードができないというだけで特に問題はなく、常時接続なデスクトップならこれでいいや、となった。
tDiary を書くときに macOS と Windows を併用していると途中まで書いたものがブラウザにしか記録されないのが不便でしょうがなかったので、サーバーにも保存するようにしたうえでブラウザに記録してるものと差分があればいい感じに統合する、というようにした。
https://github.com/tdiary/tdiary-core/pull/1394
これで特に週末などに macOS で途中まで書いてから同じディスプレイでゲームを開始、続きは Windows で、みたいなときに便利になった。