いけむランド

はてダからやってきました

普段は Java を書いてるけど RubyKaigi 2022 に行ってきた

伊勢に旅行した時に通過したことはあったが、降りるのは初めてだった。*1

主観がガッツリ入った感想がメインのため、きちんとした内容を知りたい場合は他の人のまとめを参考にしてください。

Day 0

ひのとり

  • 乗っている間、FANATIC◇CRISIS が脳内に流れてた。*2

www.kintetsu.co.jp

大観亭支店 津駅西口店

  • 美味しかった。

daikanteisiten.com

ドーミーイン津

  • 夜鳴きそばを食べるのを忘れてた。

www.hotespa.net

自分用セットリスト

rubykaigi.smarthr.co.jp

Day 1

SMS さんありがとう

  • 会場まで歩けないことはなさそうと思っていたが、雨が降りそうだったり、蒸し暑かったりしたため、結局シャトルバスを 3 日往復フルで使わせていただいた。

tech.bm-sms.co.jp

Ruby meets WebAssembly

  • setjmp / longjmp の話が出たところから #rubykaigi の流速が下がって「なるほど、わからん」しか流れなくなったのは本当に草だった。
  • この発表のあとに ruby.wasm が気になりすぎて、ちょこちょこ触ってた。

github.com

天むす

  • 美味しかった。

Making MaNy threads on Ruby

Building a Lightweight IR and Backend for YJIT

Tools for Providing rich user experience in debugger

  • CDP (Chrome DevTools Protocol) を実装すれば、任意の言語で使えるらしい。*3

chromedevtools.github.io

  • 各ステップの情報を全部持ってる → 時間もメモリを食う。*4

Towards Ruby 4 JIT

  • もしかして libgccjit などの既存の JIT ライブラリにつなぎこみしやすくなる?

TRICK 2022 (Returns)

  • 「これは説明が必要ですよね?」→ 全部必要なんですが...。
  • 何を食べて育ったら、こういうコードを書けるようになるのか?

github.com

居酒屋はるや

  • 酒は飲めないけど、普通に刺身が美味しかった。

www.haruya-tsu.com

Day 2

Matz Keynote

  • 言語が優れているからと言って、それを使っている人間も優秀であるとは限らない。
    • 他者を貶めないと自身の優位性を語れないやつはどうせ大したことないと普段から思ってるのでとてもしっくりきた。
  • typo 修正は取り込まれやすい。*5

Do Pure Ruby Dream of Encrypted Binary Protocol?

  • バイト列を操作するのに pack/unpack よりもうちょい使いやすいのはないのか?
  • バイト列を多重にエンコード/デコードしないようにガードするためのサブクラス化。

Make RuboCop super fast

  • Rubocop を使いたくない派の人をたまに見るんだけど、みんなで開発してたらフォーマットとかぐちゃぐちゃになるから、これで統一しないと余計にカオスにならない?って思うんだけど、実際はどうなんだろう?

松阪牛

  • 美味しかった。

スタンプラリー

Method-based JIT compilation by transpiling to Julia

How fast really is Ruby 3.x?

Hunting Production Memory Leaks with Heap Sampling

Caching With MessagePack

Ruby Committers vs The World

  • parser を shared library に切り出す案があるらしい。
  • it について committer vs committer が勃発した。

御麺 麦 一等兵

  • 津ぎょうざというクソデカ餃子が良かった。

www.ba-ku.com

www.tsugyoza.net

Day 3

EN の発表を多めにとってたけど、疲労の限界であまり頭に入れられなかったのが残念だった。

Megaruby - Running mruby/c programs on Sega Mega Drive

  • 個人的に Running Ruby On The Apple II - RubyKaigi 2019 枠だなと思ってた。
  • 海外には GENESIS という名前で売ってたと思ってたけど、北米以外は MEGA DRIVE のままだったらしい。*6
  • 発表者の GitHub リポジトリには Dreamcast とかいう不穏な文字列も見える。

github.com

Syntax Tree

Real World Applications with the Ruby Fiber Scheduler

A Faster CRuby interpreter with dynamically specialized IR

ブラックカレー

  • 美味しかった。

www.touyouken.co.jp

Automatically Find Memory Leaks in Native Gems

  • Valgrind を使って探してる。
    • Valgrind については大昔に調べてたので興味ある人はどうぞ↓

fd0.hatenablog.jp

Fast data processing with Ruby and Apache Arrow

  • 「(今日は説明しないけど) 速いんです。信じてください。」は草。
  • FlightSQL は面白そう。

arrow.apache.org

Fixing Assignment Evaluation Order

Ruby programming with types in action

Stories from developing YJIT

  • クラスが増える度にインクリメンタルに生成コードが大きくなる?
    • 到達不可が確定した場合は deoptimization も段階的にされる?

庵JUJU

  • 伊勢うどんと揚げ出し津ぎょうざが良かった。

tabelog.com

Jo's Bar

  • SmartHR の人たちが飲んでたので合流した。

tabelog.com

  • TRICK 優勝の tompng さんもいらっしゃってたので、「何を食べて育ったら、こういうコードを書けるようになるのか」を訊いた。
    • mame さんの本をとりあえず読めということになった。

Day 4

多くの人はそのまま伊勢に旅立って行きました。

家に帰るまでが RubyKaigi

ちなみに 2018 年に参加した時も同じことを言ってた。

その他

Cookpad Code Puzzle for RubyKaigi 2022

  • ぼちぼち解いてます。(これを書いている時点で func10)

ruby-puzzles-2022.cookpad.tech

  • ちなみに iPhone でもチャレンジできるけど、(処理が重いせいか端末が) 熱くなって危ないよというアドバイスをもらいました。

  • 恒例の「川」は「海」にアップグレードしていた。
  • 「川」の起源については識者のツイートを参考に。

まとめのまとめ

  • とりあえず↓を見れば、ほぼ網羅できる。

scrapbox.io