普段はPerlとScalaを書いて暮らしていて、Rubyを書くのはcapistranoを使うとき・・・という位のWebアプリケーションエンジニア、 id:Windymelt です。株式会社はてなで、はてなブックマークを開発しています。
普段は、関数型テクニックの話をよく記事に書いています。ちょっと見てやってください。
今回、近所の言語の動向も見てみたい!! && 知人エンジニアにRubyistが多い && 今回の開催地は比較的近所 というわけで参加することにしました(三重県津市での開催でした)。
うおーうおー #rubykaigi pic.twitter.com/2XCGMN2Iiw
— Windymelt (@windymelt) 2022年9月8日
ちなみに自分は後輩を引率したりはしておらず、単独で突入してきました。アーバンライナー(大阪?から出てる特急)便利すぎる。でもさぁ、近鉄に特急料金が必要なのは知らなかったから車内で特急券買う羽目になったぜ!!!
自分の暮らしに生かせそうだなと思った知見
自分はこのスケジュールでセッションを見ました。
Brotli圧縮
Google主導で開発されているデータ圧縮フォーマットとしてBrotliというのがあるということを知りました。CloudFrontでもキャッシュポリシーによって適用可能みたい。既存の辞書を使って圧縮するというのが特徴で、特定の構文的パターンが頻出する大きなJSやHTML等でとくに効果を発揮するようです。
Concurrent / Parallel
Concurrent/Parallelまわりの機構の開発が活発な印象を受けました。軽量スレッドモデルは様々な言語にどんどん導入されており、有名所だとGoのGoroutine、Scalaだと Cats Effect といったライブラリでも導入されており、大量のコアを効率良く使って処理をこなしていくというニーズによって今後もしばらくは活発に開発されそうです。
Chrome DevTools Protocol (CDP)
Google Chromeのinspectorを使ってRubyのデバッグをする(!!)という面白い発表があり、「あれってプロトコルさえ書けば自由に使えるんだ」と驚きつつも好奇心が芽生えました。テンプレートエンジンのデバッグに使えないだろうか?と思いました。
TRICK2022
日本のRuby界隈(?)では、面白いコードゴルフ的概念であるTRICKという企画が文化になっているようです。知見ではないけど良い文化だよね。 ちなみに後続の発表でWASMを使ってTRICKで使ったQuineをブラウザで動かしたりしていて天丼感がありつつもちゃんと動いていたので驚きました(エスケープシーケンスも豪快に出力されていましたが)。
静的型検査プラグイン
Rubyには静的型チェッカのプラグイン的なのがあってよしなにやってくれるらしいことを知りました。Perlにも欲しいよ〜
エンコーディング / シリアライズまわり意外と時間取られる
文字コードまわりのRuby内部の話を拝聴して、エンコーディングやシリアライズまわりで時間を取られることって多いんだなとわかりました。我々もうまく回避したい。そして、ボトルネックをまずプロファイリングで発見してから改善して速度を上げていくという実験スタイルが、基本に忠実で良いなと思いました。
JIT Compiler
RubyKaigiってけっこう言語内部の実装の話が多いんですね。YJITというShopifyさんが開発してRubyにマージされたJITコンパイラが、最適化を駆使して高速化を達成しているらしいのですが、それがいかに行われているかというお話があって面白かったです。 例えば、コード中に出現する変数はたいていはモノモーフィックで、つまり実行中に値が変わることはあれど型も変化することはほぼないというデータを元に、一度呼び出されたタイミングで型を記憶して最適化されたコードを吐き出しておく・・・といった話が満載でした。すごい。
WASM
RubyをがんばってWASM化している人がいてすごすぎると思った。そしてWASMはWASIというインターフェイスのおかげで案外なんでもできるようになっているようだ、ということがわかってきた。
RubyKaigi良かった
- 会場が津駅からちょっと離れていたけど、スポンサー企業様がバスを出してくれた
- お弁当がおいしかった
- 肉の弁当は大人気ですぐ払底していました
- どのトークを聴くかを保存して確認できるスケジュールツールが提供されててめちゃくちゃ便利だった
- SmartHRさまありがとうございました
- こういう感じにTechで貢献できたらCOOLだよね。
- 打ち上げ的な感じでMusic Loungeが提供されてすごく良かった
- Pixivさまありがとうございました
- 生の盛り上がりってこのご時世なかなか難しいと思うのですが、みんなで対策した上で楽しめて良かったです。
- 久しぶりにワイワイ感を味わうことができた
スタッフのみなさま、お疲れ && ありがとう ございました。
津info
ちょうど宿泊したホテルの目の前にバス停があって、たいていのバスはそこに止まる感じだったので便利でした。津駅にもすぐ行けて便利でした。
ホテル津センターパレスという所に宿泊しました。小ぶりでしたが、大浴場とサウナと露天風呂があってめちゃ満足しました。脱衣所にアイス冷蔵庫が置いてあって、一人一つまでもらって良いみたい。
写真のコーナー
炬燵さん夕食に混ぜてくださりありがとうございました。そしてエモリハウスの方々、Classiの方々ありがとうございました・・・
技術以外情報
物理開催は良いぞ
インターネットでしか見たことなかったパーソンと遭遇できて良かった。こういう機会があるから物理カンファレンス開催は良いよなぁといったことを考えていました。
ホテルにRubyistがいる
みんなこの話してる気がするけれど、果たして自分が宿泊したホテルにもRubyKaigiのTシャツを着た人がうろうろしていて良かった。
カンファレンステクニクスを完全に忘れている
コロナであまりにもカンファレンスに行かなくなってしまった結果、名刺を持っていくとか、QRコードを用意していくとか自分のアイコンのグッズを身に付けておくといった、物理開催のカンファレンスで使えるテクニックを全部忘れていたのが面白かった(笑い事ではない)。次回こういう機会があったらちゃんとやっていきたい。
あと、最終日の翌日までホテル取っておいたほうが良いことがわかってきた(だいたい打ち上げがあって、遅くなるので)。当日帰るとかなり大変だし、翌日めちゃくちゃくたびれて美容室の予約をすっぽかして電話がかかってきたりするので、気をつけたい。
懺悔するのですが、昨日疲れ切って寝てたら美容院の予約すっぽかしてグウグウ寝てしまい、電話で起こされました、ホントすみません
— Windymelt (@windymelt) 2022年9月11日
悲しいなあ
お土産とかもちゃんと選びたいし、ホテルに宿泊すると地域で使えるクーポンがゲットできたりするので、スケジュールはゆったりしておいたほうがよいです。
オチ
@同僚 許せ pic.twitter.com/CxdVk7NZGM
— Windymelt (@windymelt) 2022年9月10日
どうして・・・