5/15から5/17まで那覇文化芸術劇場なはーとで開催していたRubyKaigi 2024に参加してきました。
5/14のday0の夜に前乗りして15-17はRubyKaigi 2024に参加し、18-19は妻と沖縄を少し観光しました。
RubyKaigiへの参加は初めてでした。沖縄も初めて。
今回は会社で参加に係る費用を出してくれるということで初参加が叶いました。5/1入社にも関わらず既存の社員と同様に参加させていただけて感謝です。
というわけで、参加するからには最大限に楽しみたいより多くのものを吸収したいということで、少しは準備して臨みました。
まず、実家への帰省が被っていて参加できなかった RubyKaigi 2024事前勉強会 の資料を読み漁りました。
また、下記の記事もとても参考になりました。
そして、株式会社SmartHRが提供している公式スケジュールアプリであるところの RubyKaigi Schedule.select でスケジュールと睨めっこしながらどのセッションを聴くかの予定を立てました。
このアプリはなんとOSSなんですね!
事前勉強会の資料は全てがとても参考になったのですが、特に松田さんの「初心者のためのRubyKaigi入門/RubyKaigi Introduction」が良かったです。
というのも、参加前はかなり気負っていましたが、このスライドを読み「トークはほぼ「わからない」のが当たり前。それは気にしない。Rubyistたちが集まってRubyの話をするそれ自体がお祭りで楽しい。その熱を浴びに行く」と少し肩の力が抜けた気がしたからです。
セッション感想
あとで、聴講したものの書けていないセッションの感想も追記したい。
Writing Weird Code @tompng
- スライド: rubykaigi2024_keynote_tompng.pdf - Google ドライブ
- Quineの話
- Quineとは、自分自身のソースコードをそのまま出力するプログラムのこと
- Quineのコードがどうやって自己再現性を実現しているのかまだ分かっていない
- Quineとは、自分自身のソースコードをそのまま出力するプログラムのこと
- まさに魔法を見ているようだった。ビジュアル的にはもちろんだし、セッションの流れも美しい発表だった
- 随所で他のセッションを紹介していく流れで、ここから始まるRubyKaigi 2024の期待がどんどん高まっていくの感じた。ブチ上がった
- アニメーションのレンダリングを半分の速度にするために、Time.nowをoverrideして1/2にした
- 真の逆転の発想って感じだ
Unlocking Potential of Property Based Testing with Ractor @ohbarye
- スライド: Unlocking Potential of Property Based Testing with Ractor - Speaker Deck
- Ractorでパラレルに実行できるとProperty based testの実行時間というデメリットを改善できるのではという話
- Property based testingの概念は初見だった
- 概要を詳しく解説していただいていてありがてえ
- テスト失敗時の入力データのShrinkingがミソなんだろうな(小並)
- Ractorを現実世界で使うのは難しい
Exploring Reline: Enhancing Command Line Usability @ima1zumi
- スライド: Exploring Reline: Enhancing Command Line Usability - Speaker Deck
- RelineのGNU Readlineとの機能差を埋めていっているという地道だがとても大事な話
- vi-editing-mode うぉぉぉ!
- ちゃんと設定ファイルの利用実態を調査して需要を見極めているの偉すぎる
- 実際の仕事に通ずるものがある
- .inputrcを初めて知りました。。。
- Undoって普段何気に使っているけど、確かに実装しようとすると意外と考えることが多い
- irbいつも便利に使わせてもらっていますという感謝の気持ちでいっぱいになった
An adventure of Happy Eyeballs @coe401_
- スライド: An adventure of Happy Eyeballs - Speaker Deck
- RubyのSocket.tcpに Happy Eyeballs Version 2を導入するという話
- かなり丁寧にスライドにシーケンス図を示していただいていたおかげで、Happy Eyeballs Version 2が初見でも何となく流れを掴むことができた
- ケース分けが複雑な場合、状態遷移をきっちりと抑えながらコードを書いていくのは実際のお仕事でも大事だなと思いました(小波)
- IP4とIP6のそれぞれを非同期で待って優先度をつけて解決する必要があるが、非同期で待って結果を上手く統合するのって罠の塊だよなあ
- Ruby Committers and the World @CRuby Committers
- コミッターの方々でも結構意見が分かれるトピックもあるんだな
- 「(私は)Rubyのいいところは〇〇なところだと思っているから、△△な立場」のような発言に信念を感じた
- いくつかのトピックについては会場の聴講者に質問形式でアンケートを聞いていて、RBSのコメント記法などは自分が少数派の考えに属していてなるほど感があった
- async/await構文の「あれ本当に便利になっているの?」にはw
- まだしばらくはRubyに型は導入されなさそうだと思った
The state of Ruby dev tooling @vinistock
- Rubyのツールには便利で開発が楽しくなるものがたくさん存在するという話
- が、いわゆるデファクトだとされるツールは定まっておらずfragmentationが存在している
- 今でこそそれぞれのツールは立ち位置はある程度理解しているつもりだが、確かに初学者は混乱してしまうかも
- Rustは割と定まっているらしいの知らなかった。Goもかな?
- 定まっているというかツール群がConsolidatedなのか
- ruby-lspにはめちゃくちゃ期待しています
Matz Keynote @yukihiro_matz
- かつてのRuby2(not 2.0)の構想の話
- Ruby2の構想で残っているNamespaceが導入されたらRuby 4.0とメジャーバージョンを上げようかなという発言で会場が沸いていた
- Rubyは十分に成熟していると思っているが、まだRubyの未来にワクワクさせられそうだ
- 『Rubyは死んだ』というネタを擦っていたら、海外で「希望を持って初めてカンファレンスに来た人たちをがっかりさせるからやめろ」と怒られた話面白い
交流
友人知人、初めての人、久しぶりに会った人、お世話になった人など色々な人と交流できました。
一番良かったのは、1日目のキーノートセッション後にホールから出て「ランチどうしようかな?会社の人と合流するか?」と思ってスマホを見ていたら、後ろから「しふみんさん?」と声をかけられて振り返ると僕がエンジニアに転向した時に入った会社のCTOがそこにいたことです。まさかいるとは思っていなかったのでめちゃくちゃ驚きました。元同僚たちと当時の話や近況の話をしながらご飯を食べました。そして奢ってもらった。
そしてその後に別で来ていた社長にも遭遇するという。挨拶できて良かった。
当時はSESで様々な会社の多くの人にお世話になったのですが、そのお世話になった何社かの方々も参加されておりブースなどでお話し挨拶できたのも良かったです。勝手に自分の歴史を感じていました。
また、久しくリアルでは会えていなかった関東の友人たちと沖縄でご飯を食べて近況報告できたのも良かったです。久しく会えてない人もイベントだと会うことができる。あると思います。
惜しむべくは、気づいたらOfficial Partyの参加登録期限が過ぎておりDrinkup系はAfter Partyにしか参加できなかったことです。各種Drinkupは早めに参加登録しておかないといけないという学びを得ました。次回に活かす。
/
初参加のRubyKaigiはとても楽しかったです。
Rubyのコアについて「なにもわからない」ということを実感できました。無知の知ってこういうことなんだなあ。
逆説的に、普段は即効性の高いインスタントな情報ばかりを摂取してしまっているということだと思います。僕は釣竿の振り方ばかり学んでいて釣竿自体のことは何もわかっていなかった。
RubyKaigiで見聞きした技術については「そういえばRubyKaigiで話されていたな」というインデックスを貼ることだけはできたと思います。それをフックに今後の学習に活かせたらいいな。
Webアプリケーションよりの仕様や実装についてはある程度「〇〇の理由でこっちの方がいいと思う」と言えるようにはなりましたが、Rubyコアのようないわゆるprimitiveな言語仕様については現状全く答えることができないので、そういったことに対しても自分の信念を持てるようになりたいと思います。
あとは、英語ですね。英語セッションを聴講できるようにリスニング力を上げていきたいと強く感じました(しかし、どうやって?)
例えば、英語として発話される(?)”Ruby”は聞き取れるわけで、結局は単語力が必要な気がします。あとはリエゾンへの理解が必要そう。
あるいは、スマホなどのリアルタイム翻訳のソリューションがあと1年で実用的になってくれ〜〜〜という気持ちがあります。
また、リアルならではの””熱””を感じることができたのも良かったです。
前職はフルリモートでこの5月から働き始めた会社もフルリモートなのですが、リアルで集まることの意義を感じました。そこにいる人の熱を浴びることができる。そして何かをディスカッションするにせよ情報量が多くてコミュニケーションの密度も高い。これがリアルの醍醐味だと思いました。
自分のブログなので自分語りするのですが、僕が異業種からエンジニアに転向した最も大きな理由の1つにTwitterでエンジニアが技術について楽しそうに語ったり議論しているのを見たというのがあります。
その初心を改めて思い出しました。
最後になりましたが、運営スタッフの皆様、登壇者の皆様、スポンサー企業の皆様ありがとうございました!初参加でしたがとても楽しむことができました。BIG感謝です!
次回のRubyKaigi 2025は愛媛の松山で開催。次回も参加したい!
次回も行けるようにこの1年頑張るぞo(^-^)o