@ledsun blog

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

RubyKaigi 2023 に参加した

僕のRubyKaigiを終わらせるために、参加者としての日記を書きます。

一日目

新宿駅からあずさで松本へ向かいました。 研鑽Rubyを読んだり、車窓を楽しんだりしました。

松本駅に着いたらお蕎麦を食べて腹ごしらえをしました。

会場に向かってMatzのキーノートを聞きます。

2001年のデンマークのJAOOで、当時インターンPHPプログラマーをやっていたDHHと出会っていたエピソードが印象的でした。

Ruby 30th Tシャツを着てたら後ろの席に座ってた井上さんに声をかけられてびっくりしました。

お蕎麦を食べたばかりだったのでお昼はスキップして松本城を見に行きました。

このときは気がつかなかったのですが、発表が最終日だと、スライドに現地の写真を入れられるアドバンテージがあります。天気がよくて良かったです。

The future vision of Ruby Parser

午後は金子さんのパーサーの発表を見ました。 larmaやばかったですね。parse.yがヤバいとは、過去のRubyKaigiでも度々聞いていました。まさかBisonの方を自前のプロダクトに置き換えて、parse.yの複雑さを減らすなんて方法があるとは、思いもよりませんでした。

Understanding the Ruby Global VM Lock by observing it

並行とか並列とか好きなのでGVLへの理解を深めたくて聞きました。

gvl-tracingというgemを作っている人で、Ruby 3.2で増えたAPIを使っているらしい。datadogの中の人だそうです。

Rubyのスレッドの切り替えが100ms固定なので、バックグラウンドでスレッドが動いていると、スレッド切り替えの度に100msずつ遅れていってレイテンシが悪くなる話が面白かったです。

これをRactorつかうと回避できるってアイデアは新鮮でした。

今、考えるとそんなに長時間走るスレッドを同一プロセスで走らせたら、そらレイテンシは悪くなるか…Sidkiqだって別プロセスで動かしますし*1

珈琲美学アベ

珈琲美学アベでバウチャーチケットとコーヒーを堪能しました。お昼食べてないので、サンドイッチでエネルギー補給しました。

LT

銅鑼、いいですよね。久ぶりです。 2018年は僕もあそこで須藤さんに銅鑼鳴らしてもらったんですよ。

前田修吾さんとネタがかぶってビックリしました。冷静に考えたら前田修吾さんのissueを参考にしたので、当たり前です。発表ではさも当然のごとく、僕の場合はここが違うと説明して切り抜けました。

オフィシャルパーティー

会社のブースで集合写真を撮って ホテルにチェックインして オフィシャルパーティー会場へ。

めちゃくちゃ人がいっぱいいてびっくりしました。人類はこんなに生き延びていたんですね。NaCLテーブルにお邪魔したり、 杉野さんとか大塚さんとか久ぶりに会ったり、懇親会って感じでした。

途中からスペインバルに移動してバウチャーチケットを消費し、さらに会社の会に移動してました。食べるところが多いとバウチャーチケット一瞬で消費しますね。

バウチャーチケット制度っていいですよね。旅先で現地のおいしいご飯を味わえて、RubyKaigiに参加するとRubyに詳しくなるだけじゃなく、旅の楽しみ方も学べます。

5月の松本の夜は冷えますね、ホテルに帰るまで道はガタガタ震えながら歩いてました。

ホテルは松本ツーリストホテルでした。

二日目

一日目の夜が遅かったので限界までホテルで寝ました。 行きがけに会場横の神社を発見し、発表の先勝祈願をしました。

Learn Ractor

わかるー、と思って聴いていました。 Ractor速いしかっこいいけど、一回動かしたコードをRactor化するの大変なんですよね。 Rubyでループ書くと平気でブロック外の変数を参照するので、ふつうに書くとRactorフレンドリーじゃなくなっちゃうんですよね。

RactorのAPIはイケてないとかディスるのかな?ってハラハラしてたけど、ふつうにほめてて安心しました。よかったー。

Implementing “++” operator, stepping into parse.y

絶対あんなに簡単じゃないはずなのに、すごく楽しそうにしゃべってて良かったです。どんだけ練習したら、あんな風に時間いっぱい盛り上げ倒して、しゃべれるもんなんですかね???

Yet Another Ruby Parser

yarpの話です。 めっちゃ進捗でてるっぽくて、フルタイムでやっているとは言え、すごいなーって思いました。

将来的には、金子さんのパーサーとどちらかが選ばれると思うと、胃がきゅっとします。

The Resurrection of the Fast Parallel Test Runner

伊藤浩一さんの発表を見ました。 今回はテストを並列実行して速くする話です。 test-queue gemのメンテナを引き継いでメンテナンスしているそうです。 テスティングフレーム用のアダプターがRailsのActiveJobアダプターみたいにgem内で持っててメンテナンス大変だそうです。

テスティングフレームのRack仕様があったら良さそうですよね。という話を伊藤浩一さんともしました。もしやるなら、実装というか政治交渉が大変そうです。RackみたいなきれいなAPIになればいいですが、そうは行かないですよね。

やるとしたらどんな名前がいいんですかね?Rackにちなんだテストっぽい名前。そんなのありますか?

Multiverse Ruby

ESモジュールのimportみたいに、名前をつけてgemを読み込める話。夢があります。

zeitwerkをフォークしてimというgemを作っているそうです。

結局クラスローダーを自作してなんとかする感じのようです。S2みたいでなつかしですね。だとしたらAOPみたいなことができるのでしょうか?Rubyならロード時にする必要がないので微妙ですね。ソースコードにはないびっくり挙動をさせるローダーをつくってLTでヒトネタとかはありかもしれません…。

このあと

このあとFitting Rust YJIT into CRubyとOptimizing YJIT’s Performance, from Inception to Productionを聞きました。が、英語なのもあって寝落ちしました。これはもう体力の限界だなと思って、懇親会はキャンセルしました。

ブレイクではブースをまわってスタンプラリーをしました。ruby.wasmアプリケーションの展示を発見したので、Showcaseに載せてもらいました。

ジャズ喫茶で素敵な音楽を聞きながらご飯食べ、早々にホテルに帰りました。ホテルでは発表練習、大浴場、発表練習のコンボを決めました。大浴場のあるホテルは気分転換しやすくて、いいですね。このとき、松本の写真を発表資料に入れればいいことに気がついて、ペタペタ貼ってました。

ホテルは松本ツーリストホテルでした。

三日目

ホテルで朝ご飯をたべました。 野菜がおいしいかったです。 5月の松本は、どこで食べても野菜がおいしくておいしいですね。

早めにでて駅によって特急券を発券しました。 松本からでなく途中駅から乗る予定だったので、先に発券することにしました。

Ruby Committers and The World

これぞRubyKaigiという感じですよね。 とても良かったです。

お昼ご飯

午後から雨予報だったので早めに屋上に上がって発表練習です。 ここで28分で安定しました。

通訳の方との打ち合わせやお昼ご飯をすませ、主戦場のOpenStudioへ。一個前のセッションがなくなったので、早めに機器の接続チェックをしました。

Ruby vs Kickboxer - the state of MRuby, JRuby and CRuby

OpenStudioで、待ってたら中継が始まったのでそのまま見てました。タイトルもよくわからないのですが、発表もツッコミどころ満載の面白いやつでした。

自分の発表前にオモシロ系の発表がみれたのは、至れり尽くせりでした。

自身の発表を終えて、パスタケさんと澤井さんとruby.wasmについて話し込んでいました。国分さんの発表を見逃したものの、それを上回る楽しさがありました。発表冥利です!

ここで、僕のRubyKaigiはおわりです。

夜ご飯

長野の旧友と合流してお土産買いにツルヤに行ったり、夕飯に鰻を食べに行ったりしました。 やなのうなぎ 観光荘 岡谷本店。長野の中でも人気のお店みたいです。

岡谷の鰻はタレが甘いんですって。山椒でなくてワサビでたべます。 写真だとわかりにくいのですが、身がでかいです。三枚だと多過ぎました。

上諏訪駅まで送ってもらい、足湯につかりながらあずさを待ちました。最終あずさはちょいちょいRubyistを見かけました。

伊藤浩一さんに「あずさでノートパソコンは酔う」と、聞いていました。 そうはいっても発表資料のアップロードぐらいできるだろと思ってノートパソコンを開いたら、マジで酔いました。あずさ、すごい。

*1:なんか最近のSidkiqってプロセスをわけない埋め込みモードがあるらしいですね