大阪Ruby会議04に登壇した

大阪Ruby会議04に『Minify Ruby Code』というタイトルで登壇した。当日のスライドは以下。

カンファレンスまで

チーフオーガナイザー ydah さんとキーノートの顔ぶれを考えると「パーサー」の話をするとカンファレンスのキーに合うだろうかと思いつつ、ではどんな話だと面白いだろうかというのは、結構悩んだテーマ設定だった。ひとつは ruby.wasm の話をテーマにも考えてみたけれど、そこまでパンチのあるネタを持っているわけではないので悩んでいたところ、ふと require_relative でファイルを取ってこようとしたときのネットワーク転送は?とか、CDN エッジサーバーに Rails アプリを配布するような未来が来たら?とか妄想した時に、「Ruby では聞かない minify を作ってみたらどうなるんだろうか」が話の取っ掛かり。

そんな流れで、現世の益になるかどうかではなく、単に興味本位先行で実装した Gem が以下。

github.com

ファーストコミットが6月3日ということで、プロポーザルを書く前にざっくり作ってみてどんな話にできそうか手を動かして試していた。

最後まで悩んでいたのは Gem の名前。Day 0 で良い名前が出れば別の名前にしたいところだったけれど、そこで浮かぶことはなかったので、そのまま Minify Ruby からの minifyrb という名前とした。

名付けとしては、かつての Standard Ruby からの standardrb と同じような形式。まあ、ふつうですね。コマンド名は良いものがあれば、あとでエイリアスを作るかもしれません。

Day 0

クラフトビールに造詣が深い ydah さんが、Rubyist で貸切にしてくれたお店ということで喜んで参加していました。ここでは inao さんには先日のインタビュー記事を褒めてもらえた流れで、松田さんと一緒に当時の軽いふりかえりトークとかしたりした。あと onk とあれだけ一緒に飲んだのはコロナ禍以降はじめてかもしれないし、makicamel ときちんと話せたのは初めてかもしれなくて dRuby の話をできてよかったです。

このお店では6種類くらいは飲んでいたのかな。奈良醸造のローカルビールとか久しぶりに飲めてよかったです。ありがとうございました。

本編 (午前)

5月の RubyKaigi 2024 で学んだはずの、カンファレンス初日 (というか前日) から全力を出したら体力が大変ということを忘れてしまっていたようで、Day 0 の飲みすぎで開始に遅刻してしまった。ともあれ到着して、受付で ogomori さんに暖かく迎えていただいた。

kaneko さんの発表はタイトル的に自分は聞かないとダメだろうとはあったのですが、ホールに入ったところでは if のパターンを話しているあたりから聞いていました。

ここで軽いふりかえりをすると、kaneko さんには去年の松本での RubyKaigi 2023 の開場受付待ちの間に「RuboCop としてパーサーに求めるもの」という質問をもらっていて、「パーサーが持つべきものかは別としてオートコレクトのための機能が Parser gem にあって、そのあたりがあると嬉しい」ということを話していました。それが今回「最高の構文木」の設計に盛り込んでくれていて、個人的には2年前の話のひとつのアンサートークとして聞くことができて面白かったです。

その後の午前トークは、kinoppyd さんは RubyKaigi の Schedule アプリの裏話、makicamel さんの dRuby 話と続いて聞いていました。makicamel さんの話は、Rabbit を dRuby でいじるとか何の役に立つかわからない感じが、今回のクロージングキーノートと繋がる形にもなっていて面白かったです (褒めていますよ!)。

ランチ

(地域)Ruby会議といえばローカルな土地でのランチというのがありますが、不慣れなオフィス街でのランチとなると、なかなかお店がわからないというのは度々遭遇する問題があります。そのあたり今回は ANDPAD さんからリリースされていた記事 に、ydah さんおすすめのランチ情報があったのが体験になりました。hasumikin さんとランチに行こうとなった時に ydah さんのおすすめランチということになり、お店からは「高田さんの関係者」ということで ydah さん本当に大阪の人だった!となって、Rubyist のその土地での日常を体験できるランチは体験でした。

行った先は「キッチンルミエール」さんで、おかげさまで美味しいランチをいただくことができました (どれだけ卵が好きなんだみたいな発注にしてしまった) 。ごちそうさまでした。

ちなみにお店の調理の待ち時間でオトナ気なく MBP を取り出して、minifyrb のファーストリリースをしていました。

rubygems.org

いや、もういっそ Gem 名もリリース場所から拝借して lumiere にしようかとも一瞬思ったのですが、調べたらフランス語で「光」や「輝き」を意味するらしく、Uglify の闇を持つ Minify と対極の名前だったため断念しました (それはそれで面白いかもしれないけれど) 。

本編 (午後)

ぺんさんの話は Reline の裏側の話で、完全に頭のいい人の設計の考え方の話で、聞いていると自分が頭が良くなったと錯覚できそうだけど、何も理解できているわけではないので、そう思わせるトークがすごい感じだった。あと出だしに表示された線香花火の動画 (にしかみえない!) がコードというのが、特に中身の説明なく名刺代わりに出てきた感じが相変わらずのぺんさんでよかったです。

joker さんのトークはご自身のマシンがプレゼン対応できずに、急遽 inao さんの PC で行うことになったとは思えないクオリティでさすがでした (こういったトラブルに遭いつつも、なんとかするあたりも joker さんらしい) 。特に YJIT の Rust 化以降、Ruby と Rust のつながりに関する動きは度々見ているものの、その情報に関しては散見されるレベルでまとまった感じのものはあまり見覚えがないので、話の最後にされていた「まとまった情報源」というのができるのは、ひとつの価値になりそうと思ったりしました。このトークもまた隙間産業という形で hasumikin さんのキーノートに繋がる話でした。

haruguchi さんのトークは、弊社ホープの一角からのという感じだった。自分は競技プログラマーではないので、自分の知らない世界をコミュニティ経由で同僚から聞くという体験だった。本編とは異なるものの、こういった地域Ruby会議に地元に近いエリアから登壇者を出せるようになったのは、全国採用に踏み切ってよかったなあと思ったのだった。

自分のトークは、3部構成といいつつ隠しトラック的に、最後に「minify したコードを RuboCop でオートコレクトする」というのを入れた構成にしました。 メタラーでもある ydah さんがチーフオーガナイザーということで、イメージとしては筋肉少女帯のコンセプトアルバムである『レティクル座妄想』のラストトラックに向けたカタルシスを表現してみたもの。スライドのテイストもそれまでは白で、最終章は黒という感じでギャップ作りを狙った。プロポーザルが15分枠で通ったらデモなし。30分で通ったらデモありの構成で考えていたので、結果としてデモありで登壇できたおかげで、今回の構成をまとめることができた気します。

レティクル座妄想

レティクル座妄想

Amazon

ちなみに角谷さんが発見したパターンである『Drop Your Last 2 Slides』を今回も適用していますが、まさか最後のスライドテキストが hasumikin さんのキーノートに合わせることができる内容になっていたとは流石に想定していませんでした。結果として、きちんとキーノートにあわせることができていたのでよかった。

関係ないけれど自分でカットしたものの、このスライドの mame さんの表情はとてもいいなあと思っています。ひとまず、joker さん、pocke さん、coe さんという錚々たる顔ぶれに褒めてもらえた発表にできたので良かったです。

発表後の休憩時間すぐにぺんさんが minifyrb を試してくれての問題点をフィードバックしれくれて、このスピード感が TRICK プログラマーか、、、という体験をしました。この minifyrb gem そのものについては、話が長くなるのでこちらの別記事にて。

koic.hatenablog.com

世界の shugomaeda さんの発表は往年の Ruby コミッターらしい視点での話だったし、willnet さんの話は Rails アプリケーションレイヤーの技術顧問らしい発表で、カンファレンスの幅が出る形でまたよかった。そしてこのあたりの話になると今日のこのイベントはもう終わってしまうなあと、ちょっと寂しい気持ちが出てきたりしていた。RubyKaigi の初日の期待感と 3 日目のブースを片付ける頃の寂しさが1日に詰まった感じで、感情的の幅的にも濃度高い感じでした。

hasumikin さんのキーノートは特にクロージングを意識されていただろうキーノートとして完璧だったと思います。

プレゼンは人生の表現でもあるところ、今回目指されていたという「角谷さんのダラっといい話」感は、後半になればなるほど出てきたし、世界の shugomaeda さんの着眼点の素晴らしさを隙間産業への例に挙げたり、kaneko さんからの台湾での感想が出てきたりと、個人的には hasumikin さんが見てきている Ruby コミュニティというというか、hasumikin さんの人生の縮図が表現されていたのを興味深く聞くことができました。あと PicoRuby という名前は良いなあと、名付けの難しさと大切さを改めて考える機会になるトークにもなりました。

休憩時間

ダラっと参加者同士で話していたり、出展していたブースあたりで、junk0612 のスポンサートークふりかえりをしたりしてした。アフターパーティーでの LT への登壇を迷っていた ginkouno さんがいたので、代わりにタイトルと名前を書いておいたのは良い仕事をしたのかな。テイストとしては「芸能界デビューのきっかけが、友達が勝手に応募していて」のアレ (今回もちろん本人のいるところで一緒にやっていましたよ) 。

アフターパーティー

shugomaeda さんの会社の社員が Textbringer の紹介 LT をしているのが良かったというか、その LT を聞いている shugomaeda さんの表情を見れたのが良かった。これはオンラインでは得られない、その場に行かないと体験できないこと。表情つながりでいうと、ima1zumi さんの歴代 RubyKaigi スピーカーのデータまとめ話で、角谷さんが大興奮していたのを見ることができたのも良かった。ginkouno さんは、休憩時間のサインアップから短時間に LT の話をまとめていてさすがだった (直接言えませんでしたが、メンションありがとうございました) 。そして個人的には、すぎうりさんが会場 Wi-Fi を用意するまでの話をしていて、こういった裏方の舞台裏の仕事を伝えてくれる場になったのは、スタッフがどういったことをしてくれた人かを知ることができて構成が良かったなあと思いました。

2次会では ydah さんが「一緒に写真を取れば #rubyfriends で、終 (つい) まで酒を酌み交わせば Ruby ファミリー」という迷言を話していたのが印象的なフレーズ。今回の大阪Ruby会議04はチーフオーガナイザーの特色がきちんと出つつも、関西のRubyコミュニティとして ydah さんをバックアップしつつ盛り上げていこうという空気感というか、全体感が出ていた温かみを感じました。

Ruby コミュニティでの体験が圧縮された G.O.A.T. (Greatest of All Time) でした。とても楽しかったです。スタッフのみなさん、関係者のみなさん、ありがとうございました!