RubyKaigi 2024が終わったのでまずはクソデカ感情の処理をさせてください

タイトルの通りです。ひでえタイトルだな!!!

RubyKaigi 2024の記事のPart 1の予定です。ここ最近Part 1詐欺をしすぎて以下の記事を積んでいることの認識があるのですが、2024年7月中旬までに片付けようと思います。

これのうち、RubyKaigi 2024のトークの日本語版記事がおそらくるびまに行く予定です。台湾のトークは英語版解説の需要もあるらしいので s01.ninja のほうに行くと思います。

(update 6/23: るびまの記事が出た。)

トークに関するリソース

speakerdeck.com

また、現時点でWiFi機能を試していただく方法についての英語のガイドを個人サイトに置いております。

"everything came full circle"

そういえば今年はRubyKaigiに出るようになって(ということは「社会人」をするようになって)10年目なんですね。期せずしてRubyMusicMixinでの選曲にDecadeという曲が入ってたんですがあとでセットリスト見返したときに震えました。ついでにその前に選曲したcrewもbeatnation Recordsの10周年記念楽曲ですね。RubyKaigi 2014の時点でもそうなのですがRubyを仕事で書いていない(少なくともメインとしては)時期が長くそれでもコミュニティが好きなのでずっと出続けていたのですが、おかげさまで独立開業後はRubyで仕事をしていたりします。また、10年前にスタッフ打ち上げ*1で松田さんに「そのうちRubyKaigiの場でしゃべれるようになりたい」みたいなことを言った記憶があります(コミッターになりたいだったっけな?そっちは今はそこまでは、という感じですが…)。自分にとって節目の回になるこの回でトークが採択されてしゃべれたことが特に光栄に感じています。

トークの内容についても、組み込みがメインの会社でずっとサーバーサイドをやっていたのが今回初めて組み込み側に挑戦することになりました。まとめの中で話した「それでもPicoに本当にTLSって必要?」という組み込み機器の暗号機能の制約に関わる部分も組み込みの会社でセキュリティ寄りのことをやっていた経験から出てきた部分で、RubyのことをやってなくてもRubyに巡り巡って戻ってきた、というように感じています。キーボードを作るようになったのもRubyKaigiの影響ですし、それでPicoRubyが気になっていたのもキーボードの影響、これもまた一周して戻ってきていますね。とにかく今回のトークの準備をしていて期せずして"everything came full circle"、すべてが一周して戻ってきた、この10年間の活動が結実した結果のトークになったのだな、と感じています。

CfPを出すに至った経緯、台湾での「RubyKaigi作戦会議」について

RubyConf Taiwan 2023はRubyKaigi 2024のCfP募集開始期間寸前だったのでRubyKaigiスピーカー常連勢の日本人参加者と飲むとそれがメインの話題になるわけですね。覚えてる限りではDay 0で集まったときからすでにその話題は出てましたし、Day 3*2のときはほとんどその話題だったように覚えています。この時点で私は「ぶっちゃけ台湾でしゃべった話題はどっちかというとKaigi向きだったかもしれん」みたいに思っており、その次に何をやるか、はまだ固まっておらず、まだ出すかについて迷いはありました。その中でもDay 1のOfficial Partyのあとにはすみさんと話していた中で出てきた「PicoRubyの暗号ライブラリの拡張はOpenSSLの経験から比較的自明にできそう、もしかしたらこれの派生でWiFiチップ使ってTLSできるかも」みたいなやつがRubyKaigi向きかなあ、というので出した次第です。この時点ではなんとなく何をすればいいかのあたりはついているもののどの機能まで足りていないかの調査は終わっておらず、なのでCfPの文面が"I gave it a shot to ..."(〜に挑戦してみたよ)みたいなめちゃくちゃひよった文面になっています。CfP投稿時点でモノができるかギャンブルだったという時点で通るかどうかの勝算は1割くらい、Kaigi on RailsやRubyConf Taiwan出たときほど勝算はないな、という感覚でした。

蓋を開けてみれば台湾の「RubyKaigi作戦会議」していたメンバーで出した人*3は全員通っていて、ということは引用した写真で飲んでいるメンバー7人*4は今回を経て全員RubyKaigiスピーカー経験者ということになります。ヤバくないですか?

個人的には勝算はかなり薄いと思っていたのですが実際にKaigiで話した方からは「通ると思ってました」「むしろ初めてだったんですか?」みたいに言われる始末。ありがとうございます…今回初めてです…ここまで10年かかりました…><

なお次回も出すつもりでこのネタで行こうというのはあるのですが、ローカルオーガナイザー業との兼ね合いもある(後述)ので、CfPの〆切時点でモノが8割できてなかったらRubyKaigiには出さずに他のところに同じネタで出そうと思っています。

RubyKaigiでしゃべることに対して感じていた壁の言語化

せっかくなのでRubyKaigiに出せるネタがない、ということについて感じていた壁について言語化しようと思います。私はRubyKaigiというのは特別な場であると理解をしており、それは他のカンファレンスと違って明確に「soft talkはいらない、最高のtech talkをくれ」という基準を出している点で特別である、という理解をしています。RubyKaigiというのはオープンソースでコードを書く人間のしゃべる場であり、Rubyのcoreに近い部分について新規性のあることをやった人間のしゃべる場である、つまりKaigi on Rails 2021の記事で書いた「ハード・アカデミズム」*5Rubyの世界において実現する人間のための場である、厳密な意味でのアカデミックな新規性ではないにせよRubyにおいて十分に新規なものをもたらさない限りは採択されることはない、と理解していました。また、先のKaigi on Rails 2021の記事でも書いたように、大学でコンピュータ科学を学んだ者として既存の知を広めるだけの発表に終始していてはならない、という考えもあって、しゃべるに値する新規な生産とは何だろう、それに値することはできているのか?と考えていました。Ruby coreではないものの、PicoRubyという利用者のそれなりにいる処理系において今までずっとmissing pieceであったWiFi機能の追加という新規な営みができてそれが評価されたことで、今まで抱えていた問題意識について一つの回答が出せたように思っています。

また、私のポリシーとして、いわゆる「CfP詐欺」が好きでなかった、というのもあります。具体的にどれだったかは覚えていませんが、今まで聞いたトークのいくつかで、トークに書かれているコンセプトはいいけれどモノをdeliverできていなかったトークがあり落胆したことを覚えています。今回のトークにあたってのモノの大部分は4月に入ってからdeliverされており、その点ではCfP詐欺になることとの戦いでした。2月〜3月はほぼ「どのレベルでのportingが必要か」「MicroPythonではどうやってやっているか」「他の処理系での実装はどうやっているか」の下調べで終わって手を動かすことを引きずって後回しにしていました。4月に入ってから怒涛のごとくPicoRuby/R2P2にコミットを積んでいく様子はruby-jp Slackの #picoruby チャンネルにて観測できると思います(笑)。結果としてCfP詐欺に終わらずモノがdeliverできたことについては安心しましたし、WiFi機能についてはmasterへのmergeまで行っていないもののmergeへの道筋についてはすみさんとKaigiの廊下で話すことができる状態でKaigiに臨めたのはとてもよかったです。

そのうえで、「白笛冒険者」でない人間がトークをすることの重要性について

(この部分には『メイドインアビス』における探窟者のランクとしての笛の色の概念が出てきますが、白笛冒険者というのは最高ランクの冒険者で、人類未踏のアビスの底に挑むことのできるランクである、というくらいのイメージを持ってもらえればよいです)

ぶっちゃけていえばRubyConf Taiwan 2023でしゃべった内容ですらRubyコミュニティ内に他にしゃべるのにもっと適任な人はいると思っています。HPKEの話はともかくOpenSSL gemの開発の話で言えばOpenSSLへのコミットアクセスを持っている人間がしゃべれば私の完全上位互換です。それでも私がしゃべる意味があるとすると、特定の分野については自分のほうが知見がある可能性があるということもありますが、「ダンジョン低層のマッピング」なんかに数少ないコミットアクセスを持つ超人のリソースを使うのはもったいない、であれば興味を持ってもらう、道筋を残す、などの入り口の部分を「少なくとも笛は持っている冒険者」である私が行うことでコミットアクセスを持つ白笛冒険者の方々にアビスの最下層を安心して攻めていただけるようにできる、ということで意味があるのでは、と思っています。いちおうここまでやってるのでそろそろ私も赤笛から蒼笛くらいにはなったのではないかと思うのでもっとアビスを攻めることをやっていきたいですね。

Rubyのparserというジャンルは完全にこれの成功した例だと思っており、「parse.yは魔境!危険近づくな!!」だった時代から白笛冒険者のkanekoさんが突破口を開拓して今ではそれに続く形で複数人の手によって魔境の最下層へ至る道の整備が行われており、その内容はParserに関する本編のトークが4つ、LTでもさらにトークがあるという形で結実しており、「ParserKaigi」「大パーサー時代」の名に恥じない盛り上がりを見せています。「Parser界の黎明卿」の異名を追加していいですか(((

今回のトークを経てPicoRubyでモノを作ってみたいという人が増えた、今までやっていた人もネットワーク機能の追加でもっとやりたいことができた、という話をいくつか聞いており、私のトークで世の中にポジティブなインパクトを残すことができて大変嬉しいです。

来年の話

感情になりすぎてALL CAPSになってしまった。mentionしているのは愛媛県にゆかりのあると知っているRubyistです。

次回のRubyKaigiの会場はみんな楽しみにしている話なので、下見段階から関わってるローカルオーガナイザー候補はいつ来るかについて知っていても黙っていることになります。今年は特に「次のRubyKaigiどこ」の話題は回避するようにしていました。それでも数名には話さないと逆に察されるかなと思って可能な限り匂わせないように話すようにしていました。ゆーけーさんに「匂わせを感じなかった」と言われたのは勝ったと思いました。

実は愛媛県に移住する前から松山でそのうち開かれてほしいなーとは思っていたのですが、実際に移住したことで本格的にRubyKaigiを誘致する活動を開始しました。オーガナイザー陣に存在を認知してもらう(訳: お土産を持って行ったり酒のパンフを持って行ったりする)活動を地味にやっていた感じですね。それと並行して地域のITコミュニティに顔を出すようにして、そのうちやりたいね、というのを地域の人にも話していました。移住したからにはやりたいと思っていたことが実現に向けて動いていて非常に感慨深いです。

あとは「四国はフォーゴトン・レルム」と日常的に言っている身からすると、以下のような感想です:

松山はいいところなんで全Rubyist来てくれ!!!!1111

今回の記事に書いてないけどもしかしたら書く話

ここまで下書きとか清書とかするのに合計10時間くらい使ってる気がするのでいい加減このあたりで切り上げて、何かいい機会が発生したら以下のことについてどっかで書くかもしれません。技術記事は強いコミットメントですがそれに比べると圧倒的に弱いコミットメントです。

  • RubyMusicMixinの選曲の想い・裏舞台パート
  • 「RubyKaigi、セッションまるでわからんけど面白い」からのnext stepについて。登壇を何度かしてるうちにその次のステップが何であるかわかってきたような気がする。あまり綺麗に言語化できてない(メモはある)。
  • 「「「真のRubyKaigi」」」概念について。でもだいたい台湾の作戦会議パートでそのエッセンスについては書いた気がする。これまた綺麗に言語化できてない。
  • 観光パート。といっても今回の旅程はベタっちゃベタなので特筆することはそんなにない気がします。

*1:初回からヘルパーで参加してた経緯については「会社がチケット代出してくれるかわからなかったのでなんとなくできそうなi18nサポートで応募した」という次第です

*2:会期は2日間なので翌日に観光したあとに合流して飲んだということです

*3:ふーがさんは大学の準備があったのでそれ以外の6人、発表順にkanekoさん、ima1zumiさん、はすみさん、koicさん、こばじゅんさん、で私の6名

*4:2枚目・3枚目のほう

*5:高山博『ハード・アカデミズムの時代』において提唱されている、既存の知を再紹介するソフト・アカデミズムに対する、知を生み出す活動を指す概念