RubyKaigi 2022 に行ってきた

RubyKaigi が3年ぶりにオフラインで開催されたので行ってきた。

希望者は出張扱いで行けるので前泊後泊で4泊5日の出張だった。

勤務先がスポンサーになってる RubyKaigi は初。ブースも出してたんでときどきブース番もした。 フルリモートで家に閉じこもってて入社してから一度も会社に出社したことなかったんで、会社の人とリアルで会うのは初めてだった。

1日目

初日、津駅前からシャトルバスが出てたんだけど、ホテルから会場まで 2km くらいだったし、雨も小降りだったので歩いて行ったら途中から結構な降りになってきてた。普通にシャトルバスに乗ればよかった。

Ruby meets WebAssembly

ブラウザで Ruby が動く。すごい。 ファイルシステム、ネットワーク、DOM 操作とかは直接はできなくて、JavaScript 経由でする必要があるっぽいけど、ライブラリ等が用意されてるみたいだからある程度はできそう。 すごい。

Making *MaNy* threads on Ruby

Ruby を M:N スレッドにして大量のスレッドを作るという話。

Types teaches success, what will we do?

型(RBSファイル)を書こうという話。

Tools for Providing rich user experience in debugger

Chrome の DevTools が Ruby のデバッガになったり、VS Code で Ruby のデバッグができたり。 VS Code で Ruby オブジェクトをビジュアルに表示できるのは面白かった。 使いこなせたらとても便利そう。

TRICK 2022

特殊能力者の異次元の遊び。

その他

ホテルに帰る前に Cookpad さんのブースで Cookpad Code Puzzle for RubyKaigi 2022 の URL を入手したのでホテルで夜中までやって全問解いた。

ここで20問全部解いたのは正解だった。解けてなかったら、2日目以降会場でろくに発表聞かずにパズルをやってたと思う。

2日目

この日も歩いて会場まで行こうと思ってたんだけど時間的に間に合わなくてシャトルバスに乗った。バスだとあっという間に着いた。快適。文明の利器すごい。

Matz Keynote

ブログ書けって言ってたんでやっと書いたよ。

Do Pure Ruby Dream of Encrypted Binary Protocol?

通信プロトコルの実装は難しいけど楽しいよねー。 pack / unpack がややこしいみたいな話がされてたと思うけど、そうかな…。あんまり感じたことなかった。 プロトコル専用のライブラリとかがあれば楽なのかなぁ。 構造体だったら実は Fiddle でクラス定義するだけでもよかったり?

ブース番

Packet analysis with mruby on Wireshark - dRuby as example

Wireshark 用に mruby で dRuby プロトコルを扱える拡張を作ったという話。

Ruby Committers vs The World

いつもだったら席に座って話してたところだけど、今回はマイクスタンドのところまで出てきて立って話してたんでラップバトルみたいな構図で面白かった。

3日目

error_highlight: user-friendly error diagnostics

Ruby 3.1 で NoMethodError 時に ^^^ でエラー箇所が出るようになったけど、それの実装の話と、3.2 からエラー箇所をプログラムから取得できるようにしたという話。

ログファイルにエラーを1行で出力するときに ^^^ だと何文字目なのかわかりにくくなっちゃうので、便利そう。

RBS generation framework using Rack architecture

凄そうなんだけど口調のせいか内容があまり入ってこなかった…。

Let's collect type info during Ruby running and automaticall

rbs ファイルを rb 実行時に自動生成する試み。 すでにテストコードもある rb に対して最初に rbs を作るとっかかりとしては良さそう。

Why is building the Ruby environment hard?

いろんな環境で Ruby をビルドするツラミの話。

macOS は結構つらいんだな。そういやこの前も OS アップデートしたら Ruby がビルドできなくなったという話もあったし。

やっぱりデスクトップ Linux 使うのが一番いいな。

The Better RuboCop World to enjoy Ruby

rubocop がつらいという話。わかる。

でもつらいのは rubocop のデフォルトの Cop のルールがつらいというだけなので、自由を重視するのなら Style/* を一旦全部無効にしてみるのがいいんじゃないかと思った。

エラーレベルと参考レベルをわけるという案が提示されてたけど、それだと結局「参考レベル」のが放置されて時間がたつと破綻しそうな気がする。

String Meets Encoding

CSV パースをエンコーディングまわりで速くしたという話。よかった。

おやつ休憩

Stories from developing YJIT

Ruby の話じゃなくて CPU やアセンブラの話だったような気がする。 英語だったから何もわからんかった。 日本語だったらわかったのかというとそれも怪しいけど。

松本

おわり


しかし長距離の移動は疲れる。特急しなのの3時間が特に。酔うから車内で何もできないし。少し前まで月に何回も出張してたのになぁ。ほとんど出歩かない生活になってしまったせいか。

前の会社と違って、出張時の交通費の精算に特急券の領収書が必要というのがめんどくさい。ときどきあやうく領収書ボタンを押し忘れそうになった。あぶない。領収書必要なくなればいいのになぁ…。

最終日翌日は伊勢神宮観光でもしようと思ってたんだけど脚が痛くなってしまったので断念。日頃の運動不足が祟ったか。

津駅の改札内のコンビニで土産に「赤福餅」と「なが餅」と「松阪牛にしぐれ煮」を買って帰った。