ねこものがたり

いちにちいっぽ

RubyKaigi 2025に参加しました(その1)

rubykaigi.org

2025年もRubyKaigiに参加しました!会期中に何度か話題になったので数えたところ初参加の仙台(2018年)からTakeoutも毎年参加しているので、気づいたら今回で8回目のRubyKaigi参加っぽいです! Time flies...

スポンサー招待枠で参加した

2025年現在私は株式会社B4Aに勤めています。B4Aとして2025年初めてRubyKaigiスポンサーをやることになりました!(やったね) スポンサーになるとプランに応じて参加チケットがいただけます。個人でもチケット買ったんですが、スポンサー業を兼ねていたのでスポンサー招待枠で参加しました。 B4Aに入社して3年目ですが、その間ずっと「スポンサーできるくらいの事業フェーズになったら会社としてのコミュニティーへの関わりも増やしていきたいな」と思っていたのでめちゃくちゃ感慨深いです。

個人購入したチケットは運営チームからの連絡によると返金も可能だったようですが他の人にあげました。

ということでスポンサー業をやるために会社業務として参加したのですが、このブログは個人としての感想を書き連ねます。会社の話は会社の方で書きます。

セッションの感想

Ruby Taught Me About Encoding Under the Hood by @ima1zumi

人間と遠隔コミュニケーションの歴史がわかる、示唆に富んだお話でした。ということ以上に@ima1zumiさんの「人生」が溢れていてすごく感動しました。 去年の沖縄開催時に沖縄出身のペンさんがキーノートしたときにも感じたこととして、ご本人が「今回ここでRubyKaigiのキーノートをすること」っていう点にすごく思いがこもっているような印象で、その点がより一層「人生」を感じさせたのかもしれません。

@ima1zumiさんはセッションの中で「文字コードが好きというより興味深いと思っている」と2回くらい言っていた気がします。(いや、1回かもしれない。わからない) なんか不思議な表現だなーと思ったのだけど、「興味深い」というのは「そこから深く潜っていくことをおもしろいと思っている」ということなのだと捉えました。

私自身は技術的に「この領域がめちゃくちゃおもしろいと思っている!」というのがなくて、広く浅くどれも面白いと思ってるが全部よくわかってないっていう過ごし方をしてるんですよね。 そのような自分からすると興味深いと思えるものに出会っていること、そこから掘っていっていることを眩しく思ったり、羨ましく思ったり、その取り組み自体をありがたく思ったりしました。

自分と他人を比べるような文を書くと劣等感や嫉妬がありそうに見えるかもしれませんが、そういった卑屈な感情は不思議と全然ないです。自分もそういうものに出会えたらいいなーということと、@ima1zumiさんはほんとに文字コードが好きなんだなとかいい人だな等と思いました!

セッションの本題ではなかったですが、Ask the speakerしてね・フィードバックしてねっていう最後のくだりは、毎年のRubyKaigi(じゃなくても)で大事にしたいポイントなので、動画が出たら「まずはここだけでも!」と言って来年RubyKaigi初参加の人が周りにいたら勧めていきたい所存です。

パーサー系

@makenowjustさんの発表の詳しいことは全くついていけなかったですが、数あるRubyのパーサーが正しく動いてるのかどうかを効率よく探すためにオートマトン学習というものを使ってテストするようにしたという話。で合っていますか?と本人に後日質問させてもらって大体合ってると言ってもらったので合っているはず。

質問した時にオートマトン学習で学習させる内容は自分で愚直に用意するしかないですねというような話も聞けたことで、各パーサー自体ってどうやってテスト書いてるんだろう?と思ったので2日目のドリンクアップ前くらいにたまたま出会ったydah_さんに「テストってどうしてるんですか」と質問してみました。

prismはテストケースと期待値をひたすら列挙する形で、lrama(が生成したパーサー)はもうちょっとロジカルに(?)テストケースを用意している、ただ色々な考慮もれやコーナーケースがあって見つけ次第テストに追加していると教えてもらいました。これはその場ではなるほどーって思ったけど曖昧になってきて合ってるのかわからない。記憶違いかも。

@spikeolafさんの改行の話は「改行とか意識したことなかったな」と思いながら聞き始めて、終わり頃には「改行がそんな感じなら;ってやつはなんなん?」という疑問になったので最終日のドリンクアップ時に質問してみました!お酒を飲んでいた私の記憶と理解はかなり怪しいですが「改行はまだ式の途中かもしれないけど;が来たら終わりの合図だからより強い働きをしている」「パーサー的には全ての終わりに;がついていてほしい」「でもRuby以外の言語、例えばJSやRustなどで、;があってもなくてもヨシッとなっている流れがある」「;で動くところを改行に置き換えても動くって思ってもらっていい」って言われた気がします。合ってる???

マイコン

@hasumikinさんのトーク中に「Matzはmruby作ってるのにはんだづけが苦手とか言って組み込みやらない」って冗談混じりエピソードを紹介しておられたのですが、「私は(mruby作ってないけど)はんだづけ苦手だから組み込みやマイコンを遠めにみているのでわかる」と思いました(何がわかるんだ)。

私は組み込みの知識が全然ないし電子工作系さっぱりで、回路とかなんやねんって思ってるんですけど、人が作ったものを見るのが楽しいと感じてるので、マイコン系の発表は作品鑑賞や作品作りの工程を味わうというスタンスで聞きに行っています。

今回もそんな感じではあったんですが実は@hasumikinさんのトークの時間帯は当初他のセッションに行こうと思っていました。でもDay1(@hasumikinさんの登壇はDay2)の夜に「PicoRubyのPicoってなんですか」「軽量というけど何が軽量なんですか?機能が少ないんですか?」と、実は前からよくわかってなかったのでいつか質問したかったことをフラっと聞いてみたところ「Picoは単位。Microよりかなり小さい。それだけ軽量ということ。というのを明日話します。」「軽量というのは、メモリ消費が少ないということで、VMを立ち上げるだけで全然違う。というのを明日話します。」と言われて「超面白そう」って思ったので乗り込みました。

結果、軽量さについてちょっとわかった気がしています。何がどうわかったのかはわからないがわかった気がしてるんですわかりますか。

そんな@hasumikinさんがmrubyコミッターになったのすごくめでたい。まだコミッターではなかったんですね感がちょっとありました。

@Y_uuuさんの登壇の時間帯も実は他のセッションを聴きにいこうかと思っていたのだけど、@hasumikinさんのトークからの流れで関心が高くなっていたのでこの時間@Y_uuuさんのセッションを聞くことに決めました。@Y_uuuさんの話は全然理解できてなくて、かろうじてわかったのは最終的にマイコン上でゲームができてたことくらい。

ところで謎用語だなーと感じていた2つの単語の意味をこの発表でやっと理解しました。 ESP32というのはスライドにまとめてくださっているように、超絶省エネなのにWi-FiBluetooth接続までできるすごいマイコン。 R2P2はマイコンRaspberry Pi Pico)上で動いてる、PicoRubyが入ってるシェルのこと。

ここを覚えただけでも成果あったかも?


まだ感想を書きたいセッションの3分の1も書けていなくて、セッション以外のことも書きたいので全体的に全然まだまだ書けてないんですが、今回はいくつかに分割して公開していこうと思います。 続きはまた書きます!