RubyKaigi が3年ぶりにオフラインで開催されたので行ってきた。
希望者は出張扱いで行けるので前泊後泊で4泊5日の出張だった。
勤務先がスポンサーになってる RubyKaigi は初。ブースも出してたんでときどきブース番もした。 フルリモートで家に閉じこもってて入社してから一度も会社に出社したことなかったんで、会社の人とリアルで会うのは初めてだった。
1日目
初日、津駅前からシャトルバスが出てたんだけど、ホテルから会場まで 2km くらいだったし、雨も小降りだったので歩いて行ったら途中から結構な降りになってきてた。普通にシャトルバスに乗ればよかった。
ついた pic.twitter.com/GQqFaaIZVH
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
着席しています #rubykaigi pic.twitter.com/BwDfJkBX1q
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
アイコン付きマスクを装着 #rubykaigi pic.twitter.com/hdJnvofqep
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
Ruby meets WebAssembly
ブラウザで Ruby が動く。すごい。 ファイルシステム、ネットワーク、DOM 操作とかは直接はできなくて、JavaScript 経由でする必要があるっぽいけど、ライブラリ等が用意されてるみたいだからある程度はできそう。 すごい。
コールスタックってそんな自由にいじれるのか #rubykaigi
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
mruby と同等な速度ってのはすごいな #rubykaigi
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
Making *MaNy* threads on Ruby
Ruby を M:N スレッドにして大量のスレッドを作るという話。
M:N スレッドで MaNy なのか。 #rubykaigi pic.twitter.com/WngSkJJkvs
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
Types teaches success, what will we do?
型(RBSファイル)を書こうという話。
型定義が別ファイルなところがハードル高い。 #rubykaigi #rubykaigiB
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
Tools for Providing rich user experience in debugger
Chrome の DevTools が Ruby のデバッガになったり、VS Code で Ruby のデバッグができたり。 VS Code で Ruby オブジェクトをビジュアルに表示できるのは面白かった。 使いこなせたらとても便利そう。
TRICK 2022
特殊能力者の異次元の遊び。
その他
ANDPAD さんの二進数足し算タイムアタック、何使ってもいいということだったのでパソコンでやったら4秒で答えがでて、チートしてしまった気分 #rubykaigi
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
だって何使ってもいいって言うから…。
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
明日は手で解いてみます!#rubykaigi https://t.co/kjvg81t9v5
ホテルに帰る前に Cookpad さんのブースで Cookpad Code Puzzle for RubyKaigi 2022 の URL を入手したのでホテルで夜中までやって全問解いた。
Cookpad Code Puzzle for RubyKaigi 2022
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
func10 まで解けたー!
func20 まで解けたー! (もうこんな時間… https://t.co/gjMLYYivB5
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月8日
ここで20問全部解いたのは正解だった。解けてなかったら、2日目以降会場でろくに発表聞かずにパズルをやってたと思う。
2日目
この日も歩いて会場まで行こうと思ってたんだけど時間的に間に合わなくてシャトルバスに乗った。バスだとあっという間に着いた。快適。文明の利器すごい。
Matz Keynote
ブログ書けって言ってたんでやっと書いたよ。
Do Pure Ruby Dream of Encrypted Binary Protocol?
通信プロトコルの実装は難しいけど楽しいよねー。 pack / unpack がややこしいみたいな話がされてたと思うけど、そうかな…。あんまり感じたことなかった。 プロトコル専用のライブラリとかがあれば楽なのかなぁ。 構造体だったら実は Fiddle でクラス定義するだけでもよかったり?
昼
昼飯前にスタンプラリーしてました。ピンバッジげっと。 pic.twitter.com/gq79XAwR2A
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月9日
今日は洋風幕の内をいただきます pic.twitter.com/RWCz9eJNeV
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月9日
ブース番
店番をしてます #rubykaigi pic.twitter.com/dj9zEOslXW
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月9日
Packet analysis with mruby on Wireshark - dRuby as example
Wireshark 用に mruby で dRuby プロトコルを扱える拡張を作ったという話。
Ruby Committers vs The World
コミッター #rubykaigi pic.twitter.com/W59x2vDkDq
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月9日
いつもだったら席に座って話してたところだけど、今回はマイクスタンドのところまで出てきて立って話してたんでラップバトルみたいな構図で面白かった。
夜
食べてます pic.twitter.com/0emlTtMmf8
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月9日
蕎麦を食べて帰る pic.twitter.com/SjNvxFhEX9
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月9日
3日目
error_highlight: user-friendly error diagnostics
Ruby 3.1 で NoMethodError 時に ^^^
でエラー箇所が出るようになったけど、それの実装の話と、3.2 からエラー箇所をプログラムから取得できるようにしたという話。
ログファイルにエラーを1行で出力するときに ^^^
だと何文字目なのかわかりにくくなっちゃうので、便利そう。
RBS generation framework using Rack architecture
凄そうなんだけど口調のせいか内容があまり入ってこなかった…。
怪しい意識改革系セミナーを聞いてるような気分になってきた #rubykaigi #rubykaigiB
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月10日
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 使うのが一番いいな。
昼
今日も幕の内弁当をいただきました #rubykaigi pic.twitter.com/zf7efY2kIQ
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月10日
なお、シャツにプリントされてるのは、メールアドレスにマッチする Ruby の正規表現です。 #rubykaigi https://t.co/depDtwDE8p
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月10日
The Better RuboCop World to enjoy Ruby
rubocop がつらいという話。わかる。
でもつらいのは rubocop のデフォルトの Cop のルールがつらいというだけなので、自由を重視するのなら Style/*
を一旦全部無効にしてみるのがいいんじゃないかと思った。
個人的には Style/* は積極的に無効にしたい #rubykaigi #rubykaigiB
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月10日
エラーレベルと参考レベルをわけるという案が提示されてたけど、それだと結局「参考レベル」のが放置されて時間がたつと破綻しそうな気がする。
String Meets Encoding
CSV パースをエンコーディングまわりで速くしたという話。よかった。
おやつ休憩
カステラは3種類 #rubykaigi pic.twitter.com/mDBLFgXtcN
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月10日
Stories from developing YJIT
Ruby の話じゃなくて CPU やアセンブラの話だったような気がする。 英語だったから何もわからんかった。 日本語だったらわかったのかというとそれも怪しいけど。
松本
松本キター #rubykaigi pic.twitter.com/a26Hws4agt
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月10日
JR が RubyKaigi の情報を伝えてる #rubykaigi pic.twitter.com/xAHHi2vYNy
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月11日
おわり
おわり #rubykaigi pic.twitter.com/PnhDBOT4p3
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月10日
しかし長距離の移動は疲れる。特急しなのの3時間が特に。酔うから車内で何もできないし。少し前まで月に何回も出張してたのになぁ。ほとんど出歩かない生活になってしまったせいか。
前の会社と違って、出張時の交通費の精算に特急券の領収書が必要というのがめんどくさい。ときどきあやうく領収書ボタンを押し忘れそうになった。あぶない。領収書必要なくなればいいのになぁ…。
最終日翌日は伊勢神宮観光でもしようと思ってたんだけど脚が痛くなってしまったので断念。日頃の運動不足が祟ったか。
津駅の改札内のコンビニで土産に「赤福餅」と「なが餅」と「松阪牛にしぐれ煮」を買って帰った。
9/7-11 の5日間の通信量は 1.7GB だった。 pic.twitter.com/ndOi1zJmGP
— とみたまさひろ🍣🍺 (@tmtms) 2022年9月11日