いよいよゴールデンウィークを経て、 RubyKaigi 2024 がやってきます! Rubyist の皆さんの胸の高なり以上に、アンドパッドも高鳴っております!
そしてそれ以上に高鳴っているのが、アンドパッドから RubyKaigi 2024 で Speaker となった hsbt と ydah です! そんな二人に Speaker になるまでに準備してきたこと、大規模カンファレンスや海外カンファレンスに登壇するコツ、 RubyKaigi 2024 の見どころなどをテーマに対談してもらいました!
RubyKaigi 2024 に参加する Rubyist の皆さんに喜んでもらえるお話なので、ぜひご覧ください!
hsbt 柴田 博志 @hsbt 発表タイトル: 「 Long journey of Ruby standard library 」(1 日目 14:10 ~ 14:40)
フルタイム Ruby コミッタとしてアンドパッドに入社。 Ruby, RubyGems, Bundler, Rake, ruby-build, psych など多くの OSS のメンテナ、 ruby-lang.org の管理人として、 Ruby の開発を支えるインフラを整備している。株式会社アンドパッドで採用広報を担当しながら、プログラミング言語 Ruby のフルタイム OSS 開発者としても活動中。「全ての人がプログラミングを通して楽しく成長できる社会を作る」ために自分ができることに毎日少しずつ取り組んでいる。 ydah 髙田 雄大 @ydah 発表タイトル: 「 Does Ruby Parser dream of highly expressive grammar? 」(2 日目 11:30 ~ 12:00)
大学卒業後、入社したソフトウェアの受託開発会社を経て、アンドパッドに入社。現在はリアーキテクティングチームに所属しており、大規模 Rails アプリケーションのリアーキテクチャや横断的な技術的課題に取り組んでいる。 生まれも育ちも大阪で Kyobashi.rb を主催し、 Ruby 関西のメンバーとして関西の Ruby コミュニティ活動にも積極的に参加している。 また、OSS プログラマーであり、 RuboCop RSpec Team メンバー。最近はパーサーに関心があり、 Lrama の開発にも参加している。 RubyKaigi でプロポーザルが採択されるには? hsbt : 意外にも ydah さんは Wantedly の記事には初めての登場なので、軽く自己紹介からスタートしましょうか。
ydah : 最初のキャリアは大阪の受託開発会社で主に組み込み、制御系のソフトウェアを C 言語や C++ を使って開発していました。そして、縁あってアンドパッドに転職しました。 実は入社するまで業務では Ruby 未経験だったのでアンドパッドに入社してから Ruby を業務で使うようになりました。 入社当初は ANDPAD検査というプロダクトのバックエンド(Rails)を担当し、現在はリアーキテクティングチームに所属しています。
hsbt : 業務での Ruby 未経験でアンドパッド入社とは珍しいですね。 ydah さんの場合、アンドパッドの仕事に加えて、 Ruby コミュニティでの活動も聞きたいですね。
ydah : 生まれも育ちも大阪で、今も大阪に住んでいるので、普段は関西圏の Ruby コミュニティに参加することが多いです。 Ruby 関西は新卒の頃から、関西 Ruby 会議や Ruby 勉強会などのイベントに参加していました。また昨年開催した大阪 Ruby 会議03 のスタッフとして参加したことから、メンバーとしても関わらせてもらっています。また、最近 Kyobashi.rb という大阪の京橋を中心とした地域 Ruby コミュニティを立ち上げました。
あとは自分が使っている道具をもっと使いやすくすることが好きで、 RuboCop をはじめとした gem へパッチを送ったり、現在はパーサーに関心があるので、 Lrama にパッチを送っています。
hsbt : Lrama の話はプロポーザルの内容にも関わるので、このあと詳しく聞きましょう。 私も自己紹介をすると、 Ruby のフルタイムコミッタとしてアンドパッドに入社して、 Ruby と RubyGems の開発に携わる一方で、アンドパッドでは RubyKaigi 2024 での登壇や記事執筆・編集、カメラマンといった技術広報実務・広報戦略もやっています。
ydah : 前回の RubyKaigi 2023 で LT したときにも素敵な写真を hsbt さんに撮ってもらいましたね。
hsbt : 気に入ってもらえてよかったです。 RubyKaigi 2023 の話が出たので、ぼちぼちと RubyKaigi 2024 の話をしていきましょう。 今日は Speaker になるまでの過程がテーマなので、順を追ってプロポーザルの話題から話をしますか。
ydah : よく hsbt さんが社内のプロポーザルネタ出し会で「 プロポーザルの採択基準はカンファレンスごと、もしくは主催者ごとに変わる」とおっしゃっていたことがなるほどなと思っていました。
hsbt : RubyKaigi を例にすると、チーフオーガナイザーの松田 ( @amatsuda ) さんがこういう人に登壇して欲しいと、ちゃんとメッセージしているのですよね。
ydah : RubyKaigi は、いわゆる勉強会ではなく、普段からコードを書いている人が自慢する場所、というものですね。
hsbt : RubyKaigi と同様に、他のカンファレンスでも採択基準の傾向があるので、 CFP をよく読み、過去に採択されている発表を見て、求められているテーマを推測することがまず必要ですね。 「おれがかんがえた、さいきょうのプロポーザル」を考える前にやることがある訳です。
ydah : あとは社内でプロポーザル会のチャンネルができるたびに紹介される hsbt さんの「プロポーザルを書く前にこれを読め」は定番ですね。 私はこれに加えて採択されたプロポーザルをブログ記事にしている方もいるので、それを読んだりしています。
hsbt : いいですね。 プロポーザル会でいうと、 "忙しくてプロポーザルを出せなかった" 防止のための話もよくしてるかな。
ydah : 私もその話を聞いて、プロポーザルを出すときには、タイトルと概要をちょこっと書いて、まずは提出するようにしてます。 提出していれば最後まで書き切ろうとなるので、出せなかったということがなくなるので便利です。 もちろんカンファレンスが採用している管理システムによっても変わりますが。
hsbt : そうそう、まずはプロポーザルを出したいカンファレンスが、どんなプロポーザル管理システムを採用しているかは調べますね。 提出ボタンを押してからでも修正できるかどうか。 修正できるなら提出ボタンを押してから仕上げる、というやり方ができます。 逆に Google Form などなら提出してから修正ができないことが多いので、注意が必要です。
Ruby 3.3 リリパが効いたプロポーザルのリファイン hsbt : RubyKaigi のプロポーザルに求められていることがわかったところで、 ydah さんが RubyKaigi 2024 のプロポーザルを出すにあたってやったことを聞いてもよいですか?
ydah : 昨年の RubyKaigi 2023 での金子さん ( @yui-knk ) の発表の「 The future vision of Ruby Parser 」 で興味を持ったことがキッカケです。
それに加えて、 RubyKaigi 2023 の Day4 で松田さんからプロポーザルへのフィードバックをいただいて、その時に「まだ他の人でも出来ることしかやっていないから、もっと髙田さんにしかできないことをやってみては?」、「例えば、 RuboCop にパッチを送っているなら Lrama や parse.y は親和性があるかも」という言葉をもらってからパッチを送り始めたのが Lrama へのコントリビュートのきっかけでした。
ydah : RubyKaigi 2024 ではこの Lrama による Ruby パーサーの文法の改善について話したいと思っていたので、昨年末の Ruby 3.3 リリパ で、 金子さんや こばじゅん ( @junk0612 ) さんと今年のプロポーザルのことをお話ししていたところ、そこで金子さんから「レビューやアドバイスしますよ」とお声がけいただいてレビューをしていただいたことで、とても大きな影響を受けました。
hsbt : リリパが Ruby の発展の場に繋がっていて、とてもいい話ですね。 具体的にはどんな Kaigi エフェクトがあったのですか?
ydah : レビューのなかで、 Title と Abstract は自分の発表を聞きたいと思わせるための情報だという観点をもらったことが大きかったです。 それを元に整理して、大きく以下の 2 つのグループを聴衆の想定としました。
Ruby の parse.y を開発・メンテナンスしている人 Ruby の文法やパーサー、構文解析について興味を持っている多くの人 また具体的にある人を思い浮かべてその人が「もし、 parse.y がこうなっていれば私でもわかるわ!」となるようなプロポーザルを意識していました。
hsbt : しっかり RubyKaigi のプロポーザルの準備をされたのですね。 発表が楽しみになってきました。
ydah : hsbt さんはどんなことをされたのですか?
hsbt : 端的には、コードを書く・開発する、を続けたことですね。 開発をしないことには RubyKaigi のプロポーザルのネタにならないですからね。
大規模カンファレンス・海外カンファレンスで登壇するには Speaker ならではの悩み hsbt : そもそも ydah さんはどうして RubyKaigi で Speaker になろうと思ったのでしょうか?
ydah : 松田さんがよく仰ってますが、 RubyKaigi って今の Ruby コミュニティの技術の粋を持ち寄った最高のカンファレンスなので、そこで自分のコードの話をしたいと感じたからです。
(出典: A RubyKaigi Talk - Speaker Deck スライド32 より)
ydah : あとはこれは一般的なカンファレンスでの登壇のことですが、私は自分からの積極的なコミュニケーションが得意な方ではないので、カンファレンスで発表すると、声をかけてもらえるので嬉しいです。
hsbt : 話しかけられてから「お仕事は何をされてますか?」と聞くような、普段の自己紹介 → 会話とは逆の手順を取れるのは便利ですものね。 Speaker になるメリットでもあります。
ydah : また他のメリットを挙げると、プロポーザルの提出フォームには文字数制限があるので、開発していることや自分の考えを整理できることもメリットですね。
hsbt : 思いつく限り Speaker になることはメリットしかないのですが、あえてデメリットを挙げるとすると何でしょうね?
ydah : 発表をすると、自分の発表の裏番組が聞けないことですかね。 あとは、私はお酒が大好きなのですが、登壇前日はそわそわしてしまうので、お酒を楽しく・沢山飲めないのがデメリットですね。
hsbt : 確かに。 僕も登壇するまでは他の Speaker の発表が頭に入りづらいですね。 発表の順番の希望は人によっても分かれるところで、発表はあとにしてスライドに詰め込みたい人もいれば、発表を早めに終えてカンファレンスを楽しみたい人もいます。 僕は後者の人なので、備考欄があれば初日の一番早い時間に登壇できるようにリクエストしています。
ydah : それが考慮されて RubyKaigi 2024 でも 1 日目の早い時間になったのでしょうか。
hsbt : そうかもしれませんね。Speaker ごとに色んな事情はあると思うので、主催者とコミュニケーションは取っておいた方がお得と思います。
日本の Rubyist は海外のカンファレンスで歓迎される ydah : hsbt さんは RubyKaigi だけでなく、海外で開催されているカンファレンスでも登壇されていますよね。 大規模なカンファレンスや海外で開催されているカンファレンスで Speaker になるにはどうすればよいのでしょうか?
hsbt : まずは大規模カンファレンスで登壇するには、発表のスケールを大きくすることが重要です。 ニッチな発表は、ニッチな人に刺さるのですが、万人受けするという訳ではありません。 ニッチな発表自体はとても価値のあることですし、重要なことです。 一方で、大規模カンファレンスで登壇するなら、参加者の多くに自分ごとと思ってもらえる抽象度があるテーマや課題・問題を選ぶことがポイントです。 RubyKaigi の場合は、その課題・問題発見からさらに解決するコードを書くことが求められます。
ydah : それはそうですね。 テーマや課題、問題に抽象度がないと難しいというのは分かります。続いて、海外カンファレンスはどうでしょうか?
hsbt : ydah さんは海外カンファレンスに行きたいのですね。
ydah : 行きたいですね。
hsbt : ちなみに、なぜ海外カンファレンスに行きたいのでしょうか?
ydah : 純粋に行ってみたいという好奇心もありますが、日本国内での発表だと中々、日本に来て発表を聞こうという人にしか話を聞いてもらえる機会がないなと思っています。なので、海外に私が行って話したら、もっと様々な人に自分の話を聞いてもらえることができるのではないかと思ったのがきっかけです。
hsbt : 1 の労力で、 10 にも 100 にも 1000 にもスケールさせるのがソフトウェアエンジニアの醍醐味なので、いいマインドですね!
ydah : ちなみに、 hsbt さんが海外カンファレンスで Speaker になろうと思われたのはなぜなのでしょうか?
hsbt : 素朴に海外が好き、ということもありますが、世界各地を見ると、日本とは比べ物にならないぐらい街や建物をスクラップ・ビルドしているところもあり、刺激を受けますし、異なる文化に触れることで知識がアップデートされます。 それは海外に行かないとわからないことですからね。
では、一方的に僕が話すことになってしまいますが、海外カンファレンスに登壇するコツを聞いてもらいましょう。
1. まず地域を考える 2. 常道のカンファレンスの特色を知る CFP ではテックトーク中心と書かれていても、実際にはソフトトーク(e.g. "シニアエンジニアになるには" のようなトーク)が半分を占めているカンファレンスもある 1.で挙げたような地域差があるので、例えば Ruby であれば RubyKaigi のような Ruby 内部の話よりは、 Rails の話が採択されやすいといったカンファレンスもある 3. あとは日本と同じで、プロポーザルを出さないと Speaker になれない ydah : なるほど、地域差は考えていなかったのでとても参考になります。 あとは英語という点ではいかがでしょうか?
hsbt : 僕も英語は得意ではないですし、下手ですよ。 それでも Speaker になったからには何とかする、頑張るしかない、が本質です。 それはそれとして、スライドには簡単な英文を書いて、ライブコーディングでデモをするというのは一つの Tips です。
また Ruby は日本発なので、日本の Rubyist が海外カンファレンスで Speaker になると、テッキーなやつが日本からくるよ、と思われやすく歓迎されることが多いですね。 超お得です。
ydah : いいですね。 今年は海外カンファレンスでも Speaker になれるよう挑戦します!
RubyKaigi 2024 に向けて hsbt (1 日目 14:30 開始 ) / ydah (2 日目 11:30 開始) の発表の見どころ hsbt : そして、いよいよ、国際的なカンファレンスでもある RubyKaigi 2024 が開催されます。 ここからは 2 人の発表の見どころを聞くコーナーですが、 ydah さんは今、話してもいいものですか? もしくは当日のお楽しみにします?
ydah : いえ、大丈夫ですよ(笑)。 hsbt さんは見どころを話しますか?
hsbt : 話しましょう! 僕は昨年やったことの自慢会をするつもりです。 僕のやっていることは細かいのですよね。 先ほどデッカイ話をしようと言ったばかりですが(笑)。 僕がやっていることが require や bundler なので、今現在では僕を含めても世界で 3 人ぐらいしか困ってないことをやっているのですよね。 ただ 2 ~ 3 年後には 1 万人とか、 Ruby を使っている人全員が困ってしまう規模の問題です。 そういう発表をする予定です。
ydah : hsbt さんたちが先を見越して問題を解決してくださっているので、将来困ることなく Rubyist が幸せに Ruby を書き続けられます。 本当に尊いお話ですね。
hsbt : ありがとうございます! がんばっていこう! では、 ydah さん、お願いします!
ydah : これまでは Ruby のパーサーの文法ファイルは GNU Bison が課す制約によって、多くの複雑なハックがされてきていました。もし、もっとリッチな DSL を Bison がサポートしていたら、より読みやすい文法ファイルを作ることができるのではないかと、 parse.y をいじったことがある人なら一度は思うと思います。
私のトークでは、 Lrama に文法を拡張することによって、 Bison による制約があることによって文法ファイルが複雑化している問題を、パーサーを生成するための文法ファイルの BNF の記法をよりリッチにするというアプローチで、パーサーの文法ファイルのメンテナンス性を向上させるという話をします。
Bison による制約があった時の文法ファイルの限界をどう超えていくのかというトピックは、 Ruby の文法やパーサー、構文解析について興味を持っている多くの人にとって興味深い話になると思います。
hsbt : いいですね。 Ruby の文法や式を触って遊びたい、という方には良さそうです。 気になったのですが、先ほど話に挙がった金子さんやこばじゅんさんも Speaker なので、内容は重ならないのですか?
ydah : 内容的に被る部分はほとんどありません。なので、 こばじゅんさんも書かれていました が、 3 つそれぞれに聞く価値があります。なので、 Lrama にまつわるトークにご興味がある方は 3 つすべて聞いていただくことをお勧めします。私も、お 2 人の発表は絶対に聞きに行くつもりでいます。
hsbt : なるほど、3 人の発表を連なりで聞くと、 Lrama の全体がわかるストーリーになっていそうですね。
RubyKaigi 2024 で hsbt と ydah が注目している発表 hsbt : 話の流れもよいので、ここからは僕と ydah さんで RubyKaigi 2024 の Schedule をみて気になっている発表を 1 日ごとに 1 つ挙げてきましょう。
まずは 1 日目から。
ydah : 1 つですか(笑)。 となると、1日目は金子さんの「 The grand strategy of Ruby Parser 」(13:30 ~ 14:00) ですね。 このトークは Ruby のパーサーやパーサージェネレーターや構文解析そのものに興味がある方は必聴だと思っています。
hsbt : 1 日目の Keynote で ぺんさん( @tompng )が「何これ、こんなの通るの !? 」という Ruby のコードを大量に出すと思うので、 金子さんの発表と何かありそうですね(笑)。
僕の場合は同じ RubyGems のメンバーであり、 rubygems.org (RubyGems の配布サイト ) を作っている Samuel の「 Remembering (ok, not really Sarah) Marshal 」(13:30 ~ 14:00) ですね。 RubyGems の各種フォーマットは Marshal でテキストファイルからバイナリファイルにされているのですね。 その Marshal の過程で入り込む脆弱性や攻撃の話、パフォーマンスの話をしてくれるのではないでしょうか。 なので、 RubyGems がどう配信されているのか、あとはセキュリティ関連の話でこんなことできるのか、ということが気になる方は聞きに行くと良さそうです。
ydah : では、続いて、 2 日目ですね。
hsbt : いやー、選択に迷う日ですね。 katei さんの「 RubyGems on ruby.wasm 」(13:30 ~ 14:00) ですかね。 RubyGems は zlib と OpenSSL がキーパーツになっているのですが、その 2 つを Wasm でどう動かすのかが大変なところなのです。 そのあたりの解決の話などがでてくるのかなと予想しています。
ydah : 私も 2 日目は迷いますね。 ユニバーサルパーサーの話はとても気になっているので、はすみさん( @hasumikin ) の「 Unlock The Universal Parsers: A New PicoRuby Compiler 」(14:10 〜 14:40)と、最近、型を書くようになってきたので、遠藤さん ( @mame ) の「 The development roadmap and "good first issues" of TypeProf 」(16:00 ~ 16:30) は気になりますね。
hsbt : 型のテーマだと soutaro さんの「 Embedding it into Ruby code 」(13:30 ~ 14:00) もありますね。 RBS の型定義を Ruby の本文の中に書く方法を話してくれそうです。
ydah : なるほど、型定義が別ファイルにあることによる書きづらさは時折感じるので、そちらのトークも気になりますね。
では、続いて 3 日目です。
hsbt : 3 日目も迷うところですが ... 僕は kokubun さんの「 YJIT Makes Rails 1.7x Faster 」(11:30 ~ 12:00) ですね。 kokubun さんの話は毎回面白いですし、 YJIT を有効化して Rails アプリケーションを速くするテクニックを沢山紹介してくれるはずです。
ydah: とても興味深いですね。 私は ... やはり Lrama の開発に参加しているので、こばじゅんさんの「 From LALR to IELR: A Lrama's next step 」(14:10 ~ 14:40) ですね。 IELR について全くキャッチアップできていないので、非常に気になっています。
RubyKaigi 2024 で僕と握手! hsbt : 盛り上がってきたところで、最後は RubyKaigi 2024 に参加する Rubyist へのメッセージです。 では、 ydah さんから!
ydah : hsbt さんのメッセージを参考にしたかったのですが、 私の発表は 2 日目の 11:30 というランチ前という時間帯なので、前日飲みすぎないように必ず起きていただいて!(笑)、ぜひ来てください!
hsbt : ydah さんと握手ですね! では、続いて僕から。
RubyKaigi のいいところは、 Ruby と Ruby のライブラリを使って開発している人ならインターネットなどで何度も見かけるような人たちが、向こうからわざわざ日本に来てくれて話してくれるという、他の言語にはない非常に便利な機会であることです。 僕と握手でもいいですが、久々に RubyKaigi で発表する Aaron をはじめ Rails を開発している人たち、 YJIT を開発している人たち、 RBS を開発していた人たちなど、沢山来ています。 そういう人たちに「発表、面白かったよ!」と伝えるだけでも励みになりますし、「こういうことを考えているんだけど、どう?」と "廊下会議" で盛り上がると、とてもいい刺激になると思います。
では、皆さん、沖縄で会いましょう!
ydah の写真はすべて hsbt が撮影
RubyKaigi 2024 で登壇する 2 人のアンドパッドの Speaker が準備してきたこと、楽しみにしていることをお伝えしました! 読者の皆様には hsbt 、 ydah の発表も楽しみにしていただきながら、アンドパッドが主催・共催するイベント、出展ブースにも大注目です!
5/14 の開催前夜に「 RubyKaigi 2024 前夜祭 Asakusa.rb Welcome Drinkup 」を開催するほか、さくらインターネットさんとの共催で RubyKaigi 2019 ぶりとなる「 コード懇親会 RubyKaigi 2024 2 日目 」を開催します! どちらも #rubyfriends ができ、そして RubyKaigi 2024 をもっと楽しめるようになるイベントなので、ぜひ皆さんのお越しをお待ちしております!
そして ... ブースでは毎度好評をいただいているアンドパッドおみくじのノベルティに大吉級の新作が登場するほか、なんと連絡先を交換した方には、アンドパッド社内の "アンドパッドの大規模 Rails アプリケーションに効いた秘蔵の esa" を Zine 形式で毎日配布します! ぜひブースにもお越しください!
では、 RubyKaigi を心から愛する Rubyist の皆さま、沖縄でお会いしましょう!