RubyKaigi 2024 Day 2

1:30に寝落ちしてAM5時に起きてシャワー浴びてまた寝て起きたらキーノート開始10分前で諦めた。めちゃくちゃ睡眠不足だったし寝ても長時間眠れない日が続いてたので眠れたのは良かった。キーノートは聞きたかったけど。RubyKaigiで心残りを残したまま帰る夢を見て、そんなのは嫌だと思って心残りのないように行動しようと決意した。

まったり準備して会場に向かい、ちょっと遅刻しつつFinding Memory Leaks in the Ruby Ecosystemを聞いた。ValgrindはかなりパワフルなツールだがRubyで使うにはプログラム終了時のメモリリークが検出されるなど使いづらかったので終了時にメモリを開放するようにオプションを入れた、というところが面白かった。プログラム終了時にメモリ上に乗ってるかなんて気にしたこともなかったけどメモリリークを検出したいと思うと邪魔になることがあるのだなあと思った。彼らがメモリリークを見つけて直しているcommitを見かけていたので、こういう活動をやってくれていたのだなあと分かったのが良かった。

昼は特に決めていなかったので会社の人たちと松山から来た2人とお食事処みかどで食べた。ふーちきなー定食は麩が入っていてボリューミーで美味しかった。沖縄滞在中よくちゃんぷるーを食べた。待っている間は松山トークをしたり会社の人と初めましてみたいな話をしたりしていた。那覇の市外局番は098なんだけど松山は089だから一瞬空目するんだよねーみたいな他愛もない話をした。

午後はまずOptimizing Ruby: Building an Always-On Production Profilerを聞いた。DatadogでRubyのメソッド単位のプロファイリングが見れることも知らなかったしローカルで動かせることも知らなかった。使いこなせればかなり強いツールだろうなーと思うものの、なかなか体系的に学ぶ機会がないものでもある。Datadog完全に理解してる人の話をKaigi on Railsで聞きたいような気がした。vm wishlistにたくさん機能要望が書いてあって欲しい機能がたくさんあるのが分かり、Ruby自体がAPIを提供してないと取れないのだなあと知った。 Datadog Ruby Profiler VM Wishlist/Workarounds/Issues - Google ドキュメント

お次ははすみさんのUnlock The Universal Parsers: A New PicoRuby Compilerを聞いた。 Lramaの生成するUniversal ParserをPicoRubyで使うために依存をどんどん剥がしていったという話で、ruby-jpのlr-parserチャンネルやruby/rubyへのPRでやってたことの種明かしが分かってなるほどなー!とスッキリした。 Object::SCRIPT_LINES__ (Ruby 3.3 リファレンスマニュアル) 知らなかった。これを書いていて、 SCRIPT_LINES__ の説明に $SAFE はもう不要だなーと思って削除するPRを出した。Petit KaigiEffect~🌺 あとRubyConf Taiwanのときのはすみさんと金子さんとkoicさんがはっちゃけてる写真めちゃくちゃ笑った。あの3人はやってたなーという思い出が蘇るのと、勢いのあるkoicさんが映ってる写真がとても好き。どこかでも話したけどRubyConf Taiwanに行っててRubyKaigiにプロポーザル出す宣言してた人全員通過してるんだよね。RubyConf Taiwanに行けばRubyKaigiにプロポーザルが通る(n=6?)

次のセッションも聞きたかったので前の方で待機してたらIRB Reline Teamの3人がたまたま近くになったのでパシャリ。この写真好き

そしてkoicさんのRuboCop: LSP and Prismを聞いた。ここ数年のkoicさんのトークで一番楽しかった!情報量多くて速度1.5倍なんだけどとにかく熱が籠っていて新しいハッキングたのしー!という感じが伝わってきたのが聞いてるこちらも楽しくなっちゃうようなそんなセッションだった。RuboCop LSP自体は結構前に完成してて、それを日常で使い込むことで見えてきた課題に対してどうするみたいなところまで突っ込んだ話になっていたのが毎日OSS活動してる*1koicさんだからこその1年間の成果発表で密度濃くて最高だったなあとそんなことを思った。LSPは手元で遊ぶおもちゃとして楽しそうということも思った。Coc.nvimとかでこけててもLSPが分からないと何も手が出せないなあとか思ってしまうがLSPわかっていれば遊び相手として見られそうだ。いまparser gemのアダプタを通してPrismを使っているのもずっとそう使っているわけにはいかないねえというのも分かって、RuboCopはパーサーのユーザなのだなあというのと、使えるようになったから終わりというわけでもないのだな(冒険はまだまだ続く)と分かって面白かった。Kaigi Effect Will Shape Your Future 💎

Afternoon Breakは何してたかあまり覚えてない。おやつタイムをちらっと見て並ぶの面倒だなーと思いながらうろうろしていたら、ブルーシールアイスを配っているスタッフさんに出会えてシークワーサー味をもらった。爽やかな酸味が美味しかった。

まめさんの発表はタイトル通りみんなTypeProfの開発を手伝ってくれー!という内容だった。私もTypeProf使ってみたい。Reline解析してみたいけどキーワード引数がだめならしんどそう。STORESに転職してからささださんまめさんがSlackでいつもRubyの開発の話をしている人たちという感じになって距離感がグッと近くなったのでなんか関わってみたいという気持ちだけはある。

Martin先生のUnicodeの話。途中からいかに速く効率よくデータを扱うかという話になっていった。ワクワクするのともっとUnicodeの話を聞゛き゛た゛い゛という気持ちが入り混じっていた。疑問に思ったことは2つあって、1つは正規表現Unicodeのnameを使いたいシチュエーションはどんなときなんだろうということ。ただ、これは最終盤で「使いたいユースケースがあったら教えて」と言っていたので特別なユースケースはないのだろうと思った。もう一つはRuby正規表現Unicode Propertyを足したいなーというのを前からちょっと思っていて、それはどうやったら実現できるんだろう?というのが気になっていた。LTが終わった後にMartin先生からいろいろ聞いたところ、booleanで表現できるようなものはわりと簡単に追加できるみたい。あとはRubyが既に取得しているUnicodeのtxtのあれを使っているんだったらすぐできるし、取得してないものだったら新しくダウンロードしてきてビルドに組み込む必要がある。とか。ちょっと道筋が見えそうだったので手を動かしてみたくなった。

LT。hogelogさんのやつ本編行けそうな量だなぁと思った。クリエイティブコーディングもやりたくなった。6月のお題が出てるシーズンらしいので手を動かしたい!!Rearchitect Ripper、速すぎる面白すぎる本編喋れる密度やろこれ、という感じで最高のLTだった。Drive Your Code: Building an RC Car by Writing Only Ruby、LTで動く車のデモが始まるの面白い。

夜は会社のSTORES Cafeに行った。Day 1とは違ってコミュニケーションが取れる精神に戻ってきていたのでいくつかテーブルを回ったり立ち話で話したりした。お酒のない場は穏やかで、子供がワイワイしていてなんだか明るい雰囲気だった。あと会場が広くて、立ち話する余裕も座ってゆっくり話をする余裕もあるスペースだったのが良かった。飲み物はカウンターに取りに行く形式だったのでそのタイミングで人の入れ替えがゆるやかに発生していたのも良かった。さんぴん茶をたくさんおかわりした。さんぴん茶ジャスミンティーよりがぶがぶ飲める気がする。

二次会はRubyKaraokeに行って魔王がキーボードを救う様子を見た。

その後フラフラとIRB/Relineの波動に惹かれてこうなってIRBの話を延々としていて、

最終的にRelineの話を延々としていた。

ここで話したことをだいぶ忘れてしまっていて後日ぺんさんに聞いた。聞いたことは記憶のフックになるようにメモを取らないと揮発してしまう。。。。来年のRubyKaigiはメモを常に持ち歩くようにする。来年のトライです。

終わった後にRubyKaraokeまだやってるのかーと思ってちょっと気になったけど今から戻ったらand the worldに間に合わないと思ってホテルに戻って寝た。

Day 2の感想まとめ

*1:koicさんは毎日OSS活動でGitHubの草を生やす生活を何年も継続している。本当にすごい。 https://github.com/koic