虚無庵

徒然なるままに

RubyKaigi 2025 に行ってきた

rubykaigi.org

通算 8 回目の参加になります。

気持ちは高まっているもののこの調子だと重い腰をあげそうにないので酒の勢いのまま殴り書く。

本編

聞いたセッションは以下の通り。

  • Day 1
    • Ruby Taught Me About Encoding Under the Hood
    • Make Parsers Compatible Using Automata Learning
    • The Evolution of the CRuby Build System
    • Goodbye fat gem 2025
    • Ruby's Line Breaks
    • State of Namespace
    • TRICK 2025: Episode I
  • Day 2
    • Performance Bugs and Low-level Ruby Observability APIs
    • Dissecting and Reconstructing Ruby Syntactic Structures
    • Writing Ruby Scripts with TypeProf
    • RuboCop: Modularity and AST Insights
    • The Implementations of Advanced LR Parser Algorithm
    • Lightning Talks
  • Day 3
    • Ruby Committers and the World
    • Running ruby.wasm on Pure Ruby Wasm Runtime
    • A taxonomy of Ruby calls
    • Analyzing Ruby Code in IRB
    • Modular Garbage Collectors in Ruby
    • Matz Keynote

アルコールが回っている状態で思い出せるセッションについて。

Ruby Taught Me About Encoding Under the Hood

product.st.inc

実はしおいさんの影響というか、しおいさんを応援している人の影響を勝手に受けてたんですよね。しおいさんを応援する会がその年のNishitetsu.rbで行われていて、2人ぐらいが「しおいさん、RubyKaigiのプロポーザルを出しなよ」って1時間くらいずっと言っている会があって、それを聞いてたんですけどね。

それを聞いていて、プロポーザルってちょっといいなと思って、背中を押してもらうこともあったので、その時に自作文字コードを作ってRubyに入れてみるっていうのをプロポーザルで出して通ったので、それをやったりしてました。

少なからずいまいずみさんの背中を押すことに一助しており、Keynote になったと知った時は爆笑もしたし感慨深くもあった。

speakerdeck.com

動画はいつか公開されると思うが、自称かけだしエンジニアの人たちこそ是非見てほしい。

Make Parsers Compatible Using Automata Learning

オートマトンについてはかねこにっきを参照してもらうとして、Prism と parse.y に差分はないのかと気にはなっていた。その差分を埋め合わせる方法の提唱とそれを実現できる実装力はやっぱりパねぇなと思いました。

The Evolution of the CRuby Build System

3 月になぜかひょっこり福岡にやってきたかていさんを連れ回したのだが、その時にトークのネタの触りを聞いていた。英語のトークだと分かっていたものの「かていさんだから聞きに行こう」と思って聞きに行った。何を言っているのかさっぱり分からなかった(英語的にもトーク内容的にも)。

Goodbye fat gem 2025

RubyKaigi takeout 2020 の時はあまり理解していなかったが、今回は自分的にも解像度も上がっている事が実感できた。

初めて RubyKaigi に参加した時はちんぷんかんぷんでも回を重ねるごとに少しは成長しているのかなと実感できた。

Ruby's Line Breaks

ドラゴンブック勉強会でこばじゅんさんとわちゃわちゃしている姿を見ていたし、X でもずっとパーサーの事を考えている姿も見ている。そんなずっと考え続けている人の改行への理念が知れてよかった。

State of Namespace

名前先に取られてて頭抱えることがなくなりそう、と思ったけど gem は別の名前にすべきだよな、といま思った。

TRICK 2025: Episode I

今年はダメでしたので、ここで供養します。

alias BEGIN for unless
def class
  super true or return
  defined? next
  while nil do
    begin
      break
    rescue then
      retry
    else
      undef module
    ensure
      case if yield __LINE__
             self and redo
           elsif not __FILE__
             alias END in
           end
      when __ENCODING__
      end
    end until false
  end
end

これは kinaba さんが TRCIK 2018 で出した宿題の自分なりの回答です。元ネタaliasundef を 2 回、end を 4 回使っている。このうちのいずれか一文字を削れないか試行錯誤したが、undef を削った分 end が一つ増えた上に、一行 6 キーワードという制約も守れなくなった。やればやるほど元ネタの異常性とエグさが分かった。

(こっから先を書く(≒思い出す)のがしんどくなってきたので後日アップデートする)

ドリンクアップ

Day 0 は Tokyu.rb の飲み会に参加した。こうのさんとは福岡 Rubyist会議 04 で少しお話をしたくらいで、他のメンバーはほぼしゃべった事がなかったので単身乗り込んでみた。美味しかったし楽しかった。カツオの塩たたきをまた食べたい。

Day 1 は Official Party に少し遅れて参加したらビュッフェの食べ物がサラダとみかんだけだったし、寒くてキッチンカーに並ぶ気力がなかったのでかていさんをとサシ飲みしてきた。ホテルの清掃のおばちゃんにおすすめされた店に行った。日本酒の出汁割りが飲みやすすぎてやばかったし、あったかいおでんがめちゃめちゃ体に滲みた。

Day 2 は自社ドリンクアップに参加した。あらかじめしるふさんに聞いていた地酒店で日本酒を買っていたので持ち込んだ。なんかショボい飲み放題の店を選ばれそうだったので、ゴネたらめっちゃいい店になった。参加してくれた方も喜んでくれたみたいでよかったです。ただ、心残りはコミッターに就任されたばかりのおのさんに全然絡めなかったこと。

Day 3 はコード懇親会に参加した。ぺんさんの TRICK/irb/Reline 班に入っていたことをいいことに、IRB 宝探しゲームをずっとやっていた。一緒に参加していたにしゃーまさんも一緒に宝探しやってた。さすがにもうネタバレしてもいいかと自己判断して書くが、th-search コマンドを 2,3 回実行しても同じメッセージしか出てこなかったので途方に暮れていた。のだが、そんなヒントコマンドを一切使わずに 11 個も見つけてたにしゃーまさんを見て「変態だな、この人」と思った。同僚だからあまり意識していなかったが、この人もコミッターだしあっち側の人間だって事を忘れていた。

廊下

去年の BBQ で仲良くなったあらんに and the World で取り上げられた static barrier について質問した。なんか分かったような分からないような状態で某川でにしゃーまさんに同じ質問をした。その時は腑に落ちたけど、今また「どんな話だったっけ?」という状態になっている。

また某川でなるせさんに「いまには何が入っているのか?」という話をした。同席していた若手エンジニアたちも聞き入っていた。無駄に「コミッターになれるチャンスだから壺に挑戦してみたら?」と煽っておいた。

まとめ

スピーカーの面子がまた様変わりし良い変化だと思った。ただスピーカーたちを見ていると「自分もコンテンツになりたいな」という気持ちが湧いてきた。テーマ探しから始めなければならないので、壺に何が入っているのか知りたい所存。

松山城もいい城だった。