やなぎにっき

学んだことの記録

RubyKaigi 2023 in 松本 に行ってきました

RubyKaigi 2023 in 松本 に行ってきました

2023年5月11日から13日に長野県松本市で行われた RubyKaigi 2023 に行ってきました。

当日中はメインコンテンツであるセッションを聴きつつ、休憩の合間にRubyistたちと立ち話をし、本の著者に話しかけて本を買いサインをしてもらい、スポンサーブースを周り、松本のごはんを食べ、松本の山を見ながら川沿いや街並みを歩き、Twitterで盛り上がっている #rubykaigi タグを見て周り、夜には懇親会があり……と起きたことをその場でツイートする暇もないくらい、忙しく刺激のある充実した3日間でした。

RubyKaigiには去年の2022年がオフライン初参加でしたが、去年と比較しても参加者が800人ほどから1200人ほどに増え、公式が主催するパーティーもあったりと、新型コロナウィルス前のRubyKaigiを知らない自分でも、オープニングトークで松田さんがおっしゃっていたように「Kaigi is back!」だということを肌で感じる盛り上がりでした。

セッションを聞いて

スピーカーの熱量にやる気を貰った

RubyKaigi のセッションはどれも技術的なレベルが高く、始終理解できた発表はほとんどなかったのが正直なところです。ただ、どのセッションのスピーカーにも共通して言えることは、誰もが熱意とプライドを持って、毎日のように手を動かし、沢山の時間を使って何かしらの成果物・作ったものがある人たちです。どの発表を聞いても、自分もこの人たちのように日々研鑽していこうという気持ちになりました。

どの発表も構成が綺麗に組み立てられており、一見順調に進んだ結果のように見えてしまうのですが、発表を聞いているだけの自分には計り知れないほどその裏の試行錯誤や苦労があると想像しています。

あるスピーカーの方と話した時に(発言の内容があやふやなのでお名前は控えますが)「スムーズに行なっているように見えるけど、時間や構成の都合で簡略しているだけで、実際は泥沼のようにやっていますよ」と話されていたのが印象的でした。自分も改めて日進月歩で日々研鑽していかないな、と改めて思わされました。

セッションの「分からない」が面白くなってきた

去年と比べてセッションの内容がより分かるようになった、という手応えはなくこの分からなさに落ち込むこともあったのですが、この点は事前に StoresのCTOである藤村さんがPodcastで話されていた内容に助けられました。

すげー面白いんですけど、正直僕も半分以上よくわからないんですよね。半分ぐらいはわかるかな、でも結構わからない話が多いですね。

「うーん、わからん。こうなっているってことはなんとなくわかったし、こういう仕組みなんだろうってことはなんとなく理解できるけどわからん!てかこんなのあったんだ」「こんな世界があったんだ!」みたいなのが無限に降ってくるのがRubyKaigiで、それがすげえ面白いって感じですね。

RubyKaigiは刺激を受ける場。CTOが語るRubyKaigiの好きなところ【ep.21 #論より動くもの .fm】 - STORES Product Blog

ある会社のCTOでさえ全部理解できる話ではなく、この「分からない」を楽しんでいいんだ!と知れたおかげで、セッションを聞く間はこの分からなさを心置きなく楽しむことができました。

「parser.y はどうやら曲者らしいぞ」「この人たちがRubyを早くしてくれているんだ!」「この人は本当にキーボードが好きなんだな」とか。

内部の仕組みについてそこまで理解できていなくても、こうした人たちがどのようにRuby本体やGemなどの周辺にまつわる環境をより良いものにしてくれているのかを知ることは、知らないことに比べてずっと大きな差があると思います。今回のRubyKaigiのセッションを聞く(もはや浴びる)ことで、Rubyと自分の距離が縮まった気がしています。

分からなさを楽しんでも良いと知ったとしても、話を聞くからには分かることが増えた方より楽しめることは確かです。来年のRubyKaigiではさらに分かることが一つでも増えるよう、少しずつRubyの知識を深めていきたいとも思います。いろんな人からRuby技術者認定試験Gold取得のための勉強がRubyの仕組みを知るのに役立ったと聞いているので気になっています。

セッションの各感想

技術的なしっかりした感想は言えないけど自分がその時思ったことは書いておきたいので簡素でも感想を書きます。もっと書きたいので随時追加していきたい。

  • UTF-8 is coming to mruby/c

    「mruby/cにUTF-8対応しませんかと言われ、この時代にUTF-8対応を0からやる機会を逃すには行かない!と思い始めた」とおっしゃっていて、普段からima1zumiさんが文字列を追求していたからこそ声が掛かったのだろうし、それに応える気概と実装できる技術力があるのがかっこよすぎる。

  • RBS meets LLMs - Type inference using LLM

    Rubyの型定義をChatGPTが推測できるのか試してみた発表。「Act as Ruby type inferrer」という書き出しを見て、今までChatGPTにプロンプトを書く時に振る舞って欲しい職業や立場を指定していたけど、振る舞って欲しい内容は人の属性じゃなくてもいいのかという気づきがあった。

  • Adding custom rule for Rubocop in the 2 month of employment

    RubocopにカスタムCopを実装する話。以前に会社の上司が業務用のCopを実装してくれて、私も作ってみたいと思ったことを思い出した。Copを実装する際にParserにも触れることができそう。冒頭の去年のRubyKaigiのイベントであるRubyMusicMixinのおかげで転職先が決まった話がこの1日目に聞けたのもよかった。

  • Implementing "++" operator, stepping into parse.y

    Rubyには(意外と)実装されていないincrement演算子を実装するという試み。実装してみる→実装できた→次の問題が見つかる→次のプランで試してみる を3,4パターンほど繰り返していて、構成として見ていて面白かったし、理想の実装のために(しかも至る所で難所だと噂を聞いたparser.yを読んで)突き詰めていくところが本当にすごい。

  • Fix SQL N+1 queries with RuboCop

    ISUCONを自分はやったことがないけど、想像していたものは「当日の限られた時間と参加者の知識」を活かしていく競技だと思っていたので、この発表を聞いて当日のために1年ほどの時間を使ってcopという道具を仕込む手もあることを知った。ISUCONという総合格闘技のために淡々と刀を研いでいる。かっこいい

  • Build Your Own SQLite3

    キーボードでSQLiteを動かす話。OSが載ってないマイコンにPicoRubyでSQLiteを動かすというもの。低レイヤーから高レイヤーまでRubyで実装できてしまうんだな。普段アプリケーション開発をしているとあまり低レイヤーに触れる機会がないのだけど、こういうマイコンだとコンパクトな分、低レイヤーの理解がしやすかったりするのかな?と気になった。キーボードでSQLiteが動くようになったので、キーボードの入力履歴を記録してよく入力しているキーからキーマップを作っていた(もちろん解析するのもPicoRuby)のが面白かった。

Rubyistとの交流

今年のRubyKaigiでは、去年のRubyKaigiぶりに会う人、オンライン上では以前から知っていたけどやっと対面で話せた人、知り合いの知り合いで初めて顔を知った人、などなどいろんな形で社外のRubyistと交流することができました!

会社の同僚と歩いていたら私のフィヨルドブートキャンプの知り合いの人とすれ違い、その同僚と知り合いが仲良くなったり、かたや私も同僚に RailsGirls で繋った知り合いを紹介してもらったりしました。そうした輪の広がりはオフラインだからこそ生まれやすい広がりだと実感しました。

休憩中すれ違った人とその場で話していたら、思いのほか深い話ができて30分以上経っていた……ということも楽しい思い出の一つです。

私は2021年にフィヨルドブートキャンプというプログラミングスクールを卒業したのですが、今年は特にフィヨルドブートキャンプの関係者たちと会うことができました。去年もかなり人が多いと思っていましたが、今回はさらに各所にフィヨルドブートキャンプの関係者がおり、自然にオフ会的なものが発生していて面白かったです。

3日間を通して「社外の人と沢山話せたな!」と思えたのは、フィヨルドブートキャンプのつながりがあったからこそです。(「別のコミュニティの私の知り合いの人」もフィヨルドブートキャンプの知り合い」)

これからはもっと会社やフィヨルドブートキャンプではないRubyKaigiの人たちとも交流できていけるようなムーブをしていきたい気持ちもあります!

著者から本を購入した

  • 研鑽Rubyプログラミングの著者であるJeremy Evansさんと翻訳者の角谷さん
  • RubyRailsの学習ガイドのigaigaさん
  • ユウと魔法のプログラミング・ノートの著者である鳥居雪さん

から本を直接購入し、その場でサインを頂きました!即売会的に技術書が著者から本が買えるの嬉しすぎる。 RubyKaigiから帰ってきてから研鑽Rubyプログラミングを毎日少しずつ読んでいます。

開催地である松本が好きになった

私は今まで松本に行ったことがなく、今回のRubyKaigiで初めて訪れました。

松本は山に囲まれており、川と綺麗な水、蕎麦や地酒、松本城や美術館、素敵な喫茶店や飲食店など、私が感じるたくさんの豊かさがある街だと知りました。RubyKaigi2023を過ごした土地であることも含め、今では松本という街が大好きになりました。(松本で食べたものや観光の話はそれだけで書きたいことが山ほどあるので別エントリーで書きたい)

1日目のアフターパーティーでチーフオーガナイザーである松田さんから、(意訳)「毎年別の土地・会場でやるということはオペレーションや会場の配置を1から考えないといけないので大変。それでも毎年別の場所でその土地を含めてRubyKaigiを楽しんでもらいたい」という旨の話をお聞きしました。

毎年開催地が変わることによる運営側の大変さが私には少しも想像できていなかったので、より改めてオーガナイザーやヘルパーの方たちのおかげでこのRubyKaigiを楽しむことができているのだとより実感しました。運営の皆さんには本当に感謝しています。

私は去年開催地である三重の津でも初めて訪れた津が好きになり、今回も松本が好きになったので、そのことを松田さんに会話の流れで直接伝えられてよかったです。

最後に

改めてこのような場を作っていただいたオーガナイザーやスタッフ、そして出張費用を出していただいた上に業務扱いとして行かせてくれた会社には感謝の気持ちでいっぱいです。

この3日間、RubyKaigiでたくさんのよい経験や刺激を受け取るばかりで、自分はどうしたらRubyRubyコミュニティに還元できるかを考えるようになりました。まずは自ら手を動かしてコードを書くこと・アウトプットしていくこと、そして自分以外の手を動かしている人たちに対して反応していくこと(いいねやstarをつけるなど)を地道にしていきたいと思います。

具体的な直近のやりたいこと・目標です。KaigiEffectにしていくぞ〜

  • RubyやGemの好きなコードをデバッグしながら追ってみる
  • 研鑽Rubyプログラミングを少しずつ読む
  • Kaigi on RailsのCFPを送る
  • 地域コミュニティ(特にin personなもの)に顔を出してみる
  • 松本にまた行く