2025年6月28日(土)に京都の先斗町歌舞練場で開催された関西Ruby会議08に参加してきました。
regional.rubykaigi.org
前夜祭にも参加したかったので金曜日に京都に入り、前後を観光にして三日間京都を堪能してきたつもりなので記憶が新しいうちに書いておきます。
前夜祭 RejectKaigi
株式会社はてなさんの京都オフィスでの開催でした。
関西Ruby会議08 前夜祭 RejectKaigi - connpass
Rubyでやりたい駆動開発 by Miyuki Koshiba さん
「Rubyでやりたい」という衝動にかられて紆余曲折しながら作りきる個人開発事例×2なお話でした。
Rubyでやりたい駆動開発 / Ruby driven development - Speaker Deck
個人開発だからこそ許される「その技術要素が好きだから」から始まって、いろいろ壁にぶつかろうが全部学びに変えて突き進んでいく様は聞いてて圧巻だったしめちゃくちゃ面白かったです。電子工作でPicoRuby動かして気づいたらCを書いてて「Rubyで書きたいだけなのになぜCを書いているのか」はツボってしまった。"Rubyでやりたい"の力は偉大。
RubyGem開発で鍛えるソフトウェア設計力 by joker1007 さん
設計とは何か?またその設計力をrubygem開発で鍛えようというお話。
rubygem開発で鍛える設計力 - Speaker Deck
所属組織の教育観点でまとめた話ということで、確かにこれは自分が所属する組織のメンバーにも見てもらいたいなと感じる内容でした。gemを作ってリリースして運用することで得られる設計力ってたくさんあると思う。あと「人間、酒飲むと真面目な話をしがち」は首がもげるほど同意しながら爆笑してしまいました。OSS活動にも繋がる話でとても良かったです。
ruby.wasmで多人数リアルタイム通信ゲームを作ろう by lni_T / ルニ さん
ruby.wasm でリアルタイム通信を使った事例のお話。
ruby.wasmで多人数リアルタイム通信ゲームを作ろう - Speaker Deck
実際に作った多人数リアルタイム通信ゲームのデモをその場でやられたが、iOSだとMaximum call stack size exceededが出て動かず。「iOS、マジでwasm動かねぇ」とのことで既知の事象とのこと。
Safari WebAssembly: Maximum call stack size exceeded · Issue #532 · ruby/ruby.wasm · GitHub
でも Canvas + Web Audio API + 色々を使ってブラウザ上でデモが動くとやはりテンション上がりますね。みんなゲームに夢中になってその直後の発表聞いてない状態になってそれはそれでツボってしまいました。Rubyで作れるものが増えていくのは楽しさしかありません。自分もwasm触って何かやってみよう!って思える内容でした。
DJ on Ruby Ver.0.1 by クドウマサヤ さん
CFP駆動開発でDJソフトウェアを作ったお話。
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」 - Speaker Deck
LLMの助けを借りながら Ruby + Rust で Mac の GUI アプリを作ってデモをされていました。音声ファイルの取り扱いや、DJというユースケースでは音が途切れてしまうことは絶対避けたい、ゆえに厳格なスループットを求めてGCのあるRubyではなくRustを技術選択した話などはなるほどなぁとなりました。自分の作りたいソフトウェアを作って学びに変えていくというスタンスが本当にかっこいいなって思いながら話を聞いていました。
本編 関西Ruby会議08
ここからは印象に残っているセッションに絞って書きます。
Schedule - 関西Ruby会議08
Witchcraft for Memory by pocke さん
Ruby / RBS コミッターでもある pocke さんの基調講演。
Witchcraft for Memory - Speaker Deck
自分も最近 RBS を書き始めて gem_rbs_collection にコントリビューションすることにも取り組んでいるのでとても楽しみにしていたセッション。RBSのメモリ削減がテーマで、Majoというmemory profilerを作った話とSteepにおけるRefork featureに関するお話でした。
Majoは生存期間が長いオブジェクトにフォーカスしたmemory profilerで、steep checkコマンドのピークのメモリ使用量が知りたいというモチベーションで作成された。自分のユースケースを満たすためにmemory profilerを自作して実際にメモリ使用量削減まで達成しているというのが本当に素晴らしいお話でした。
Refork featureは従来のforkする仕組みだとCopy on Write (CoW) の恩恵がうまく受けられず、それを解決するためにworkerプロセスからさらにworkerプロセスをforkする方式に変えたということ。親プロセス-子プロセス-孫プロセスと3層になったことでプロセス間通信の実装が難しくなったがUNIXSocket.pairを利用してうまく解決できたと。これについては他のやり方もあったが検討した結果採用せず、なぜそのやり方を採用しなかったのかという説明も丁寧にされていてめちゃくちゃ勉強になる内容でした。
テックイシューと丁寧に向き合われているなという印象を勝手に持たせてもらっており、それをとても分かりやすく説明されているので本当に参考になる内容でした。普段使っているSteepがこうやって改善されていったのかということを知ることができました。
「1ヶ月でWebサービスを作る会」で出会った rails new、そして今に至る rails new by 桐生あんず さん
所属組織の同僚です。あんずさんの登壇を応援しに行ったのが今回の参加目的の一つでした。
「1ヶ月でWebサービスを作る会」で出会った rails new, そして今に至る rails new - Speaker Deck
webサービスを自分の手で作り切ってリリースすることで語れる話があると思っていて、まさにそれをやり切ったあんずさんでしかお話できない内容になっていたなと思います。個人開発事例の話は本当に好きなテーマだし、そこから得た学びもめちゃくちゃ共感できる内容になっていて最高に最高でした。
Regional.rb and the Kyoto City
関西圏の地域Ruby勉強会オーガナイザーが一堂に会してのパネルディスカッション。自分自身も「柏.rb」を運営している立場として、関西圏ではどういったコミュニティがどんな活動しているのかなと興味深く話を聞かせてもらいました。
だいたい飲んでるって話ばかりで「飲みの話しかしとらんやんけ!」ってツッコミが入ってホッコリしました。柏.rbも周辺の飲み屋を開拓することを裏ミッションにしていたりします。会場からの質問コーナーで「運営を続けるために工夫してることは?」という問いかけは自分も気にしているところでした。柏.rbはこの6月でちょうど立ち上げから1年、長く続けていくことは目標の一つにしています。「頑張りすぎないこと」「1人で背負い込まないこと」というのは本当にそうだなぁと共感でした。いろいろなお話を聞いて「柏.rbも次の1年やっていくぞ!」という気持ちがしっかりと持てました。
会全体で感じたこと
歌舞練場という普通の技術カンファレンスではやらないような特別感のある会場がめちゃくちゃ良かったです。またその会場ならではな感じで参加者を楽しませようとさまざまな演出をやられていたなぁと今このブログ記事を書きながら思いおこしています。運営メンバーの方々みんながとても楽しそうに会を進行されていたようにも感じています。
そしてやはりクロージングの ydah さんの話がとても印象的でした。その熱い思いは事前に公開されたブログを読んでもらえれば伝わるでしょう。
関西Ruby会議の再開に寄せて|関西Ruby会議
僕自身もこれまで技術コミュニティからたくさん刺激をもらってここまで頑張れてこれたし、同じような経験をこれからコミュニティに入ってくるであろう人たちにもしてもらいたいなと思っています。それを再認識することができたという意味で、とても、とても良い関西Ruby会議で参加して本当に良かったなと感じています。コミュニティとそれに関わる全てのRubyistに感謝していきたいですね。
あと今回「参加してきていいし、せっかくだから京都観光も楽しんできなよ」と気持ちよく送り出してくれた妻にも感謝したいと思います。
ありがとうございました!