@ledsun blog

無味の味は佳境に入らざればすなわち知れず

RubyKaigi 2026

0日目

移動トラブル

今回のRubyKaigiは、かなり印象的なスタートになりました。

もともとは羽田空港から函館空港へ飛行機で移動する予定でした。 管制機器のトラブルによって、飛行機の出発が危ぶまれる状況になったのです。 飛行機は諦めて新幹線で移動することにしました。

移動には4時間ほどかかり、函館駅に到着したのは10時過ぎでした。

ただ、このトラブルのおかげで良い体験もありました。 同じように移動トラブルに巻き込まれていた rhiroe さんが、Slackで「ご飯行く人いませんか?」と募集していたのを見かけて、それに乗っかる形で一緒にジンギスカンを食べに行きました。 Slack上ではIDを見かけていて認識はしていたのですが、実際にお会いするのは初めてでした。

ジンギスカン

移動トラブルが良い思い出になりました。

1日目

キーノート

The Journey of Box Building - RubyKaigi 2026

Tagomorisさん

1日目で一番印象に残ったのは、Tagomorisさんのキーノートでした。

3年間、Ruby::Boxを作り続けてきたのもすごいのですが、2023年のshioyama先生の発表がきっかけでRubyにコミットするモチベーションに気がついた話がエモくて良かったです。

自分の過去のことを思い出しました。 そういえば自分も2022年のkateinoigakukunさんの発表をみて、自分の「ブラウザでRubyを動かしたい」というモチベーションに思い出したのでした。

こういうRubyKaigiの発表を見ていた人が刺激を受けて次の発表者になるのが、とてもRubyKaigiで、エモいです。

PicoRuby.WASM

Funicular: A Browser App Framework Powered by PicoRuby.WASM - RubyKaigi 2026

はすみさんの PicoRuby.WASM の発表も印象に残っています。

スリープ処理を自前で実装しているのがかっこよかったです。 ruby.wasm は、WASIに依存する作戦をとったため、スリープの実装は諦めています。 必要であればアドホックにブラウザのsetTimeoutを使う方針です。 ここを諦めずに、自前でタスクスケジューラから実装しているのがかっこよかったです。

さらにブラウザでデバッガも動いていてかっこいいです。

はすみさんは継続的にアウトプットを出し続けている点もすごいです。

お昼ご飯とちょっとした雑談

1日目のお昼は、ANDPADさんが配られていたラッキーピエロのチャイニーズチキンバーガーを食べました。

杉野さんと大塚さんと一緒に食べていました。 RubyKaigiで毎年恒例になってきました。 美容院の話なんかしました。

杉野さんが血糖値の計測装置をつけていて、その話で盛り上がっていました。 ご飯を食べると本当に数値が上がるので面白かったです。

レッドブルを飲むと一気に上がって下がるという話を聞いて、へーって思いました。

はるかさんの発表

Building a Standalone Ruby Programming Environment - RubyKaigi 2026

はるかさん

はるかさんの発表は、また違った意味で印象に残っています。 内容自体も面白かったのですが、それ以上に説明をはっしょった苦労ポイントがありそうでした。 DVI出力の速度が足りないときにどうやってボトルネックを特定したのか不思議でした。

詳しいことは、やんちゃバーで話を聞くことができました。 しかし残念なことに、聞いた内容は、僕の脳みその中のアルコールで蒸留されました。

後日、Boothで販売されていたマイコンも購入しました。

ライトニングトーク

今年は銅鑼が一杯聞けて良かったです。 去年の懸田さんのプチ炎上したメッセージは伝わっていたみたいです。

LT発表者の方々

懇親会

移動は最初徒歩で進んでいたのですが、途中から市電が空いてきたため、市電に乗って駅前まで移動し、そこから歩いてホテルに向かいました。

Bashさん、高橋さん、nagachikaさんと話した記憶はあります。 翌日に発表があるので、ここで宿に帰りました。

発表資料修正

オチで悩んでいました。 そもそもこの時点で、デモの案はありましたが動いていませんでした。 代わりにひねったオチを用意してありました。 ただしRubyKaigiでコードやデモ見せないで口先だけでなんかいうのかっこ悪すぎるんですよね。

デモをつくってみました。 意外とちゃんと動いたので、オチは「乞うご期待」とシンプルに終わらせることにしました。

完成してみると、自分は思っていたよりピリピリしてたなと気がつきました。

やんちゃハウスとやんちゃバーという拠点

今回の滞在でかなり重要だったのが、やんちゃハウスの存在でした。

函館アリーナのすぐ近くにあり、徒歩ですぐに行き来できる距離にあったため、イベントの合間に戻ることができました。 これが想像以上に便利で、セッションの合間に休憩したり、お風呂に入ったり、ちょっと横になったりすることができました。

また、やんちゃバーが毎日20時頃から深夜2時頃まで開かれていて、「常に戻れる場所がある」感がありました。

2日目

2日目の朝は、近くの日帰り温泉に入りに行きました。 このあとあわせて、3日で5回入ります。

Astroの話が気になった

The AST Galaxy to the Virtual Machine Blues - RubyKaigi 2026

笹田さん

笹田さんのAstroの発表でした。

事前コンパイルすることでツリーウォークインタプリタ方式で実装を簡単にしつつ、YJIT並の実行速度を出すアイデアでした。 AIの力で2週間で新しいアイデアを試せるのすごい時代ですよね。

なんで「事前コンパイルすることでツリーウォークインタプリタ方式で実装を簡単にしつつ、YJIT並の実行速度が出る」のかはちんぷんかんぷんでした。

Matzの発表で出てきたSpinelの話とも対応してて少し面白いです。 AstroはフルのRubyをどう簡単(?)に実装するかという話で、Spinelは割り切ったRubyサブセットの高速化を狙うもので、同じようなアプローチでも目指すゴールは違いそうです。

関さん

Programming with a DJ Controller - not vibe coding - RubyKaigi 2026

関さん

見てるときは気がつかなかったけど、エディタが同時に二つ動くの異常なんだよなあ。 「エディタがRuby製でOSの機能を通さずに直接動かしているから」なんだけど、その場では気がつかなかった。 咳マニアとして不覚です。

「ログを音楽にするのは、直感に反して多分実用的なんじゃないかなあ?」と、思いました。 ログを目grepするときって文字じゃなくて、色の濃さとか波とか見ているので、慣れれば音楽からも同じことができる気がします。

発表前の準備と初めての通し練習

五島軒のお弁当をゲットして早めに食べて発表練習をしていました。 このタイミングで、初めて30分通しのリハーサルを行いました。

デモ込みでも、大体時間丁度だったので良かったです。 本番では、早めに進んで、30秒くらい時間が余りました。

nagachikaさん

Pure Intonation on Browser: Building a Sequencer with Ruby - RubyKaigi 2026

nagachikaさん

nagachikaさんの発表も、結構印象に残っています。 音楽理論の話で、純正律と平均律の違いについて説明されていました。

普段自分たちが聞いている音楽は平均律で作られていて、これはオクターブを均等に分割したものです。均等に割ると無理数になるのでプログラマー的にはちょっと気持ち悪い数値になっています。 一方で純正律は、きれいな比率で音を作るので、理屈としてとても美しいです。

デモで ruby.wasm を使って、ブラウザのAPI経由で音を鳴らしていたのも印象的でした。 実際に音を聞いてみると、単音では逆に違和感がありました。普段から平均律に慣れているので、「あれ、なんか変だな」と感じるみたいです。 和音で聞くと綺麗に聞こえました。

ruby.wasm 経由でブラウザのWeb Audio APIが使えることで、Rubyから音楽プログラミングができるようになりました。 実際に発表で使っているのを見ると、胸が熱くなります。

しかも、あのnagachika新聞のnagachikaさんが使っているのです。

発表本番

ruby.wasm also enables JavaScript to call Ruby libraries. - RubyKaigi 2026

自分の発表を行いました。

メインテーマは「JavaScriptからRubyを呼び出す方向をがんばるぞい!」です。 裏テーマは「これまでのruby.wasm総復習」です。 裏番組が両方英語だったので、ruby.wasmに初めて触れる人も迷い込んできそうと読みました。

函館アリーナのGLAY関連展示

発表後の完全オフモード

発表が終わった後は、アフタヌーンブレイク以降のセッションには参加せず、やんちゃハウスに戻りました。 お風呂に入り横になったら、そのまま寝てしまったようです。

目覚めたら、少し時間があったので函館山周辺を散歩しました。 アリーナ周辺は平らなのに、函館山周辺だけめちゃ坂でした。

函館山の坂観光

転職ドラフトの懇親会に行った

2日目の夜は、転職ドラフト主催の懇親会に参加しました。 ビールは4杯飲みました。APA、IPA、もものヴァイツェンと黒いのを飲みました。

「RubyKaigiで発表している人として見られている」感覚が新鮮でした。 過去3年RubyKaigiで発表しているので、別に不思議なことは何もないのですが。

このあと流れでタクシーで函館山に登りました。

函館山展望台からの夜景

めちゃくちゃ寒かったです。

函館山から五稜郭へ

函館山で夜景を見たあと、そのままタクシーで五稜郭の方へ移動しました。

五稜郭のあたりで、会社の人たちと合流したら、なぜかないさるろーさんとも再会しました。 前に会ったのは沖縄でのRubyKaigiのときで、公式懇親会のあとに、麦汁さんたちと急に飲みに行きました。

それ以来だったので、久しぶりに会えて嬉しかったです。 こういうふうに、「前のRubyKaigiで会った人と、また次のRubyKaigiで会う」というのが続いていくのも、RubyKaigiの面白いところです。

今は横須賀.rb方面で活動されているらしいです。 横須賀.rbに行く理由が増えました。

このあと初やんちゃバーです。 さすがに一杯飲んで寝ました。

3日目

3日目の朝は、近くの日帰り温泉に入りに行きました。 3回目です。

Ruby Committers and the World

Ruby Committers and the World - RubyKaigi 2026

Rubyコミッターのみなさん

RubyKaigiの目玉イベントですね。 After Matz体制はみんな気になりますよね。

お昼

早めに会場を抜けて昼食はラーメンを食べました。

塩ラーメン

偶然、横須賀.rbの記念撮影現場に出くわして、ないさるろーさんに代わって撮影係をやりました。

国分さん

Lightning-Fast Method Calls with Ruby 4.1 ZJIT - RubyKaigi 2026

いまやJIT第一人者ですね。 言ってることは分かったつもりなのですが、なぜJITフレームに情報を逃がすと速くなるかはよくわかりませんでした。 保持する情報量は変わっていないように思えます。

最後の「AIで誰でもZJIT書けるようになったので、みんなもJIT書きましょう」って言ってたのが面白かったです。 RJITの時も「RUBYで誰でもRJIT書けるようになったので、みんなもJIT書きましょう」と言ってたのを思い出しました。

Matzのキーノートが良かった

Matzさん

最終日のMatzのキーノートも、今回かなり印象に残っています。

正直なところ、これまでのRubyKaigiのキーノートは、どちらかというとRubyの大枠の方針の話で技術の詳細に踏み込まない「締めの儀式」みたいな感覚で聞いていることが多かったです。 もちろん毎回面白いのですが、いわゆるテックトークとは少し違うものとして聞いていました。 今回はかなり印象が違いました。

Spinelの話が出てきて、「新しいことをやっているな」と感じました。 RubyをAOTでCにトランスパイルして、コンパイルしてから実行します。 Rubyのサブセットとして割り切って設計されているのが、mrubyの経験とかが生きているのかな?と思いました。つまり「RubyというのはサブセットであってもRubyである」という経験知がありそうです。 上手く発展すると、GoやRustが主戦場にしているCLIツール系にRubyの利用領域が広がるので夢があります。

Matzから新しいプレゼントがもらえて、自分は盛り上がりました。 あとで気がついたのですが、笹田さんのAstroとも少し繋がっていますね。

それと同時に、AIの使い方の話も印象に残っています。

Emacsで直接編集するのをやめて、Claude Codeだけでmrubyを実装している、という話をしていて、「そこまで振り切るのか」と思いました。自分だと「手で直した方が早い」と思ってしまうのですが、あえてそうしないのが、“縛りプレイ”的で面白かったです。

夜の懇親会

3日目の夜はTwoGateさんの懇親会に参加しました。 懇親会の前にお風呂に入りました。 4回目ともなると慣れた物で、RTAっぽくなってきました。

会場はモデルルームみたいなとてもおしゃれな一戸建ての家で、出張シェフの方がその場で肉を焼いて提供してくれるスタイルでした。 豚肉や鹿肉をいただきながら、ワインを飲みつつ、AOTコンパイラの話などで盛り上がりました。

やんちゃバー

その後、やんちゃバーに戻り、katsuyoshiさんとSpinelのデバッグなどをしていました。

Open class definitions emit duplicate C definitions · Issue #5 · matz/spinel · GitHub

記憶にないのですが、記録によるとやんちゃバーでバグ報告までやったみたいです。 バグ報告としては最速だったみたいです。

翌日にはMatzに直してもらえました。 SpinelにIssueを出すと、Matzが(ClaudeCodeをつかって)直してくれます。まるでMatzと会話しているような感じがあって楽しいです。

4日目

最終日は、少し観光をしてから帰ることにしました。

やんちゃハウスチェックアウトまえが最後のお風呂でした。 RTA記録はおおよそドア・ツー・ドアで20分くらいです。

そのあと、丸井今井に寄ってお土産を一通り買いました。 観光も兼ねて、五稜郭タワーに上ろうかなと思っていたのですが、これがかなり混んでいて驚きました。 金曜日までとは明らかに人の多さが違っていて、「これが花見&GW初日の威力か・・・」とおののきました。 タワーに登るのは諦めて、写真を撮りました。

五稜郭タワー

周りのお店もどこも混んでいて少し困りましたが、バス乗り場の前にあるスープカレー屋さんは空いていたので、そこでお昼を食べることにしました。

スープカレー

バスで函館空港へ向かいました。 荷物が結構増えていたので預け入れをしたのですが、そのときに航空会社の方から「座席をエコノミーに変更してもらえませんか」という相談を受けました。 もともと少し良い席を取っていたのですが、特に問題もなかったので、そのままオファーを受けることにしました。 搭乗口の前で呼び出されてチケットを変更しました。 たまに見る呼び出されている人はこういう感じなのかと、実績解除できました。

帰りは無事に羽田空港に到着して、そのままスムーズに帰宅しました。

帰宅後Spinelで遊んでバグ報告しました。

Struct definition order can produce incomplete type errors for value fields · Issue #14 · matz/spinel · GitHub