Thanks Driven Life

日々是感謝

RubyKaigi 2025 参加録

RubyKaigi 2024 Okinawa に引き続き参加。愛媛は初上陸です。

会場入口の暖簾

Day1

Ruby Taught Me About Encoding Under the Hood

rubykaigi.org

文字コードの歴史に始まり現代編では IRB で発見した不具合の解説や対応方法などが聞けた。 昨年のキーノートでも IRB/Reline だったのですが、あらためて「IRB/Reline、お前だったのか。俺たちが快適にIRBを使えているのは……」という気持ちになって感謝of感謝。

Make Parsers Compatible Using Automata Learning

rubykaigi.org

Prism と parse.y の互換性にオートマトン理論で立ち向かった話。 発表内でも述べられていた「当初は大量のデータ(ソースコード)を食わせて構文チェックに使っていた」というのは自分もそれしかないのかなぁなどと思っていたけど、 そこからオートマトン理論を用いる発想は凄い。何か自身のプロダクトでも活用してみたいな……

Deoptimization: How YJIT Speeds Up Ruby by Slowing Down

rubykaigi.org

難しかった。とりあえず Ruby は様々な破壊が可能なので Optimized なコードをそのまま使えない機会が多いから云々ってことか……?!「Don't use TracePoint in production」は熱い気持ちが込もっていた。

Automatically generating types by running tests

rubykaigi.org

rbs-inline なコメントをプログラム実行時に自動で埋め込んでくれる https://github.com/sinsoku/rbs-trace の話。便利そう〜。これから rbs-inline 導入する時はまずこれを有効にしてテスト走らせるの良さそう。

TRICK 2025: Episode I

rubykaigi.org

今回も凄かった。どういう訓練したら描けるようになるんだろう。

Day2

Performance Bugs and Low-level Ruby Observability APIs

rubykaigi.org

Datadog製 profiler gem で活用している Ruby Observability APIs の話(Ruby 標準のものと、拡張用 https://github.com/ivoanjo/lowlevel-toolkit )。パフォーマンス、よくしていきてえよなぁ……

Benchmark and profile every single change

rubykaigi.org

ベンチマークを高速に取っていくぜ!!そのためにこうしたぜ(これを作ったぜ)!!」的な話。さすがに1タイピング毎に走るのは大袈裟ではあるが、とはいえ 1 commit 、1 pr 単位でチェックできる態勢は欲しいっちゃ欲しいな。

How to make the Groovebox

rubykaigi.org

昼間から RubyMusicMixin が始まったのかと思った。

Speeding up Class#new

rubykaigi.org

馴染深い Class.new にどう手を入れていくかという話。「Ruby を使わずに Ruby を書く」で YARV をコピーするは「た、たしかにぃ!?」てなった。すごい。

Lightning Talks

rubykaigi.org

今年も面白かった。あとおまけとして LT の歴史も聞けてよかったわね。

Day3

Ruby Committers and the World

rubykaigi.org

いつものノリ。Ruby 4.0 楽しみだなあ

Running ruby.wasm on Pure Ruby Wasm Runtime

rubykaigi.org

WebAssembly 、よく話に聞くけどまだ直に触れたことはない。そろそろ触るべきか……!? って思える発表だった。

Inline RBS comments for seamless type checking with Sorbet

rubykaigi.org

RBS + Sorbet の話。個人的には Sorbet の sig 構文よりは RBS inline が好みなのでこの形はアリ。

Analyzing Ruby Code in IRB

rubykaigi.org

IRBシンタックスハイライトを決定するために、いくつかのタイミング(ブロック内に入ったり改行したり)毎にうおー!!って感じで判定しているというパワーの話。難しいよなぁ……

On-the-fly Suggestions of Rewriting Method Deprecations

rubykaigi.org

deprecate な code を warning message 出力に留めるのではなく、同時に置換してくれるような仕組みの話。 rubocop -A と同じ要領と考えるならかなり使いやすそう。

Matz Keynote

rubykaigi.org

AI時代にどう立ち向かっていくのか、というお話。「Rubyだとトークン少なくなるメリットある」とか(もちろん他にもあったけど)を聞いて、たしかに〜となりつつもさてどうなるか。 あと「型チェック(?)無しによる不具合はビジネスロジックの不具合に比べれば些細なもの」「充分に賢くなったAIがあれば型宣言無くてもよさそう」は、そうだなぁとは思いつつも 俺たちはその些細なうっかりにサービスを止めてしまう大地に立っているんだよなと思ったりもする。無いと困るというよりはあると便利みたいな。(テストちゃんと書けな?というのはそれはそう……)

その他

Drinkup / Official Party

Day1 夜は Official Party に参加しました。開始10分後ぐらいに会場に着きましたが、その時点もう食事無かった。みんなすごい……(一応キッチンカーもあったので助かりました。)

会場にはブルーシートが敷かれていたので座ってビール飲めて最高

Day2 夜は枠が空いたので飛び入りということで movさんの Drinkup へ。刺身と肉美味しい。

Day3 は特に予定が無かったので会社のメンバーと DD4D へ。ビール美味しい

食事

歩数

RubyKaigi 期間中の歩数。Day0 - 3 の合計が約68000歩

昔は1日1万歩もあるけば翌日に響いていたのですが、今回は(さすがにその日の夜はきつかったけど)翌日になれば回復していたので、圧倒的成長を感じる。

というわけで

来年の函館も行きてえ〜