色々メモ

技術系のメモとかを書いておきます

RubyKaigiに13年ぶりに参加しました

この度RubyKaigi2024に参加してきました。

最後の現地参加したのが2011の練馬開催以来だったので、13年ぶりの参加でした。 2011年以降は子育て&遠方な事もあり、中々参加できる余裕がなく、参加されている方を見ては楽しそうだな〜と思ったりしていました。

今年は地元での開催で、子どもも一人でお留守番できる年齢にもなったという事もあり、思う存分参加することができてとても良かったです!ここ数年はオンライン視聴していたので、なんとなく雰囲気は分かっていたつもりでしたが、現地で実際に浴びる熱量は凄まじいものがありました。オンラインでは摂取できない栄養がありました。 初参加の時の「なにもわからないけど楽しい〜〜〜!」の気持ちを久しぶりに取り戻せた気がします。

印象に残ったセッション

真面目に書いたほうはこちら: tech.smarthr.jp

Writing Weird Code

スライド: rubykaigi2024_keynote_tompng.pdf - Google ドライブ
ソースコード: GitHub - tompng/selftrick2024

最高のキーノートでした。13年前に参加したRubyKaigiで買った「Rubyで作る奇妙なプログラミング言語」を読んで「Rubyってすごいな!!」と思ってドキドキした記憶があるのですが、今回も「Rubyってやっばりすごいな!!」と思ってドキドキしました。

前半の奇妙なコードたちもさっぱりわからなかったのですが、後半のSelfTRICK2024はもう怒涛の展開でした。BitmapなのにRubyスクリプトとは!?!?下の方にDecoderがあってちょっと緑色に調整している…など何をやっているのかさっぱりわからない…となりました。でもRubyの奥深さや計り知れないパワーをめちゃくちゃ感じる発表でした。これはもうWeird Code入門するしかない…!

ちなみになんとなく13年前の「Rubyで作る奇妙なプログラミング言語」の著者のyharaさんの講演を見返したら、今でも通じるRuby上達のための大事な話をしていてよかったです。
Road to the Ruby Master | RubyKaigi 2011(July 16 - 18)

Long journey of Ruby standard library

スライド: Long journey of Ruby standard library RubyKaigi 2024 - Speaker Deck

Rubyの標準ライブラリのお話でした。
Ruby1.8の時が一番多くて今(3.3)の倍近くの130個あったというのにびっくりしました。また、その経緯の「昔はダイアルアップで接続していたので、限られた時間で何度もダウンロードするより、Rubyにまとめて入っていたほうがよい」という方針も興味深かったです。
普段良く使うライブラリやGemにまつわる話ということで、結構内容がすんなりイメージできて身近に感じられる発表でした。

今後はdefault gemsをbundled gemsにしていく方針のようでした。(サプライチェーンアタックやgem/Rubyのメンテナンスなどの理由とのこと。) bundled gemsに移行するgemは警告がでるとのことなので、気をつけて警告をチェックしておいたほうがよさそうです。

Namespace, What and Why

スライド: Namespace, What and Why - Speaker Deck

絶賛開発中らしいNamespaceのお話でした。Namespaceがあると、ライブラリごとのバージョンの依存関係で衝突が起こってしまうことが解決したり、2つのアプリを同時に動かす(モジュラーモノリス的な話?)ことが可能になるようです。

BGデプロイも簡単にできるようになるかも?という話も小耳に挟んだので、まさに夢の機能という感じでした。楽しみです。

An adventure of Happy Eyeballs

スライド: An adventure of Happy Eyeballs - Speaker Deck

しおいさんの説明がとてもわかりやすくて、現状のSocketライブラリの課題から、それを解決するためのHappy Eyballsの仕組みまで理解できた気がします。 現状だとIPv4IPv6の接続が可能な状況の時に、IPv6を試す→ダメだったらIPv4で接続しようとするけども、IPv6の接続の応答がない時にタイムアウトを待つ必要があり、時間がかかってしまう課題があるとのこと。そこで、並列に接続を試みて、先に接続成功した結果を返せるようにする、という仕組みのようでした。 その仕組をRubyのコードにするところまでわかりやすく説明してくださっていて、なるほどな〜となりました。実装後実行時間が増えてしまった部分もあるようですが、最悪のケースを解消するために、一定パフォーマンスが落ちるのはしかたがないとの判断のようです。 今後Ruby3.4で有効になるとのことハッピーエンド!と思いきや、TCPSocketの方はこれから対応予定とのことで、俺達の戦いはこれからエンドでした。

Leveraging Falcon and Rails for Real-Time Interactivity

Falconというサーバー&live gemとRailsでゲームを作るお話でした。
リアルタイムな通信の歴史の紹介も興味深かったです。
asyncまわりの説明もわかりやすくて、英語力5でリスニング全然ダメダメなのですが、それでもなんとなく理解できました(多分…!)

Does Ruby Parser dream of highly expressive grammer?

スライド: Does Ruby Parser dream of highly expressive grammar? - Speaker Deck

LramaというLALRパーサージェネレータの開発のお話でした。
とりあえずparse.yはとんでもない魔境らしいという印象しかなかったのですが、かなり見通しがよくなっているらしい…ということがわかりました。 パーサーまわり、まったく分かっていないのですが、parameterizing ruleよさそう(というか、これまでそれができなかったのは確かにつらそう…)という感じでした。 文法拡張でもっと整備しやすいparse.yに生まれ変わる日も近そうなのかも?と思いました。

Squeezing Unicode Names into Ruby Regular Expressions

Ruby正規表現unicode文字プロパティを指定できるようにするかつ、長いnameの場合のメモリ節約のお話でした。
英語力がなくて理解があやしいのですが、近いnameをまとめることでメモリ節約するようにしている感じでした。Xの感想で、決まり字だとおっしゃっている方がいたので、なるほど〜となりました。

Lightning Talks: Enjoy Creative Coding with Ruby

スライド: Enjoy Creative Coding with Ruby (RubyKaigi2024) - Speaker Deck

「自分が楽しむためのプログラミング」というのが最高〜〜〜!と思いました。 もちろん業務で、良い設計とは…可読性保守性のあるコードを…と考えながら書くのも楽しいではあるのですが、たまにも思うままに書いてみて、偶然なんかいいのが生まれた〜〜!!みたいなことも楽しそうです。 トークの最後に実際にクリエイティブコーディングで生成された画像にアクセスできたのですが、XのTLがいろいろな海の画像で埋め尽くされていたのも凄く良かったです。

私の手元で開いた画像

(以下力尽きたので一旦箇条書きの下書きのみで…近日中に清書します…)

Ruby Committers and the World

  • frozon string literalが要らなくなるかも
  • async/awaitの話。Rubyでいる?なんか動かないからasyncつけるのあるある
  • RBSを同じファイルに書くかどうかを会場でアンケートを取っていた

Matz Keynote

  • performance重要(大事なことなので4回…)
  • Ruby遅い言語じゃない(大事)
  • Rubyのコミュニティのちからすごいな
  • Ruby2の構想があったんだな〜
  • Namespace楽しみすぎる

セッション以外の感想

関連イベント

Okinawa.rbのMeetUP

day0にOkinawa.rbのMeetUPに参加しました。

okinawarb.doorkeeper.jp

GraphQL(grpahql-ruby)がテーマの会でした。GraphQLは少し業務で触った程度の知識しかなかったのですが、実際の活用例やセキュリティの設定例(アンチパターン例)、resolverをconcurrent-rubyで並行に動かす話などが聞けてとても面白かったです! neko+@B4Aさんの「気づいたらN+1が発生していて、は?になる」という気持ち、めっちゃわかる…となりました。ログがカオスとかも、あるあるなんだな〜と思って聞いていました。

こちらはさくらインターネットさんからいただいためちゃかわちんすこうです。

さくらインターネットさんからいただいたちんすこう

会社関係

初めて会社のブースに参加しました! 緊張しましたが、会社の業務に興味があり、いつか提携してみたいという方とお話できたり、 昔一緒のプロジェクトで働いていた方が会いに来てくださったりと、 色々な方と交流できて良かったです!

tech.smarthr.jp

day2の夜は会社のDrinkUpのイベントにスタッフとして参加しました。 ちょっと前半席に混ざり損ねて、参加者の方と交流できずだったのですが、 後半はちょこっとお話できてよかったです。

その他

開催前日の大雨が嘘のように晴れてよい天気でした。

本当はもっと会場付近の写真とか、晴れている沖縄っぽい写真を撮っておけばよかったのですが、地元なので何も珍しくなく写真を撮る考えに至らず……。とりあえず入口だけは撮っていました。

なはーと入口の写真

来年に向けて

  • 松山!行きたい!
  • 英語頑張りたい…(毎年言っている気がする)