なおすけの落書き帳

毎日がエブリデイ。

RubyKaigi 2022のキーノートレポートを書いた

シャイニーエクササイズ*1で健康。なおすけです。

タイトルの通り、Webの記事を書きました。

gihyo.jp

RubyKaigi 2022 キーノートレポート

gihyo.jp

というわけで、最終日最後のセッションであるAlan Wu氏のキーノートレポートを執筆しました。

先日のRubyKaigi 2022参加記に書いていた

最後のキーノートについてちょっと記事を書くんですが、内容が難しくて泣いてます。

というのはこのことだったのでした。

blog.naosuke.me

ツイートにも書きましたが、言いたいことはまとめに全て書いたので、そこを読んでいただければと思います

なんでかいたの

Ruby好きな人が集うSlackワークスペースであるruby-jpに、RubyKaigiのことを話す #rubykaigi というチャンネルがあります。

ruby-jp.github.io

そこで、RubyKaigi 2022前の日くらいに松田さんが大募集と書いていて、残り1枠がなかなか埋まってなかったので「やってみたいです!」と手を挙げたのが理由です。

久しぶりのRubyKaigiだったし、なにかアウトプットしたいなーと思ったので、タイミングがグーでした。

3日目担当となった経緯

キーノートが3セッションあって、各々どれを担当するかは編集さんと直接やり取りでワイワイと決める感じでした。 前日夜にその会話が行われていたのですが、ワタクシは連絡開始が遅れた*2ため、3日目担当となりました。 当然このときにはそんな難しいセッションだとは思ってなかったですよね。

執筆の流れとか与太話

そもそもセッションが英語であり、記事に掲載する写真も必要ということで、あらかじめ講演は録画をしていました。 結果的にこの選択は大正解で、この録画がなかったらおそらくレポートは今も公開されていなかったと思います。

執筆期間としては、たまたま夏休み的な有給を取得していたのもあり、09/19〜09/23の1週間でまず初稿を書きました。 まず内容を理解するのに2-3日かかり、そこから文章を書き出すのに2-3日、みたいな感じです なお、この時点ですでに難しすぎて辛くなって、日に日に知能が下がっていく様子が観測できます。

執筆中、ずっと録画を見ながらでやっていたのですが、そもそも英語が苦手な上にホールの反響が重なって、聞き取れない部分も多くかなり辛かったです。 ちょうど執筆中に、OpenAIがWhisperという書き起こしツールが公開したため、動画から音声を抽出し、それ食わせて文字起こしをしてGot kotonaki。 Whisper、かなり正確に文字起こしをしてくれたので非常に助かりました。

この時点では、シンプルに講演の内容を書き出しただけ、という感じでした。 解説に寄せるか悩んだものの、1週間セッションについて考えまくっていたせいで完全に行き詰まってしまったため一旦提出して様子見という方向で一旦入稿。

9/26くらいに初校が上がってきたものの、脳のキャッシュがクリアされていないためしばらく寝かしてました。

1週間くらい空けて改めて読んでみると、そもそも難易度が高すぎる記事になっていたため、解説を入れたテイストにするように書き換えることにしました。 なお、週末に予定があったためこの時点で公開日の延期を依頼*3。 その後、3連休で解説を入れたり例を入れたりして出来上がり、といった感じでした。

いやー、難産だった。

参考になったページ

記事を書く上で、特に以下のページを参考にしました。もし記事を読んで、YJITとかそもそもRubyの処理系について興味を持った方がいれば参考にしてください*4

YJIT周り

Ruby処理系周り

  • YARVアーキテクチャ
    • Rubyコミッタのささださんが書いたYARVの設計メモです。インタプリタとしての挙動だったり、キーノート後半のDeoptimization関連の話でYARVのスタックポインタだったりプログラムカウンタ周りの話が出てくるので読みました
  • Optimizing Ruby with JIT - Speaker Deck
    • Rubyコミッタの國分さんが発表したJIT実装のスライドです。そもそもRubyJITの話をあまり知らなかったので読みました。JITの挙動が詳しく書かれていてわかりやすかった

その他

記事を書いてどうだったよ

これまでRubyの処理系周りは、なんとなく記事を読んでなんとなくわかったつもりになる、みたいな感じで過ごしてきました。 この記事執筆は、YARV以下の普段Rubyを使う上でほとんど意識しないところを真面目に調べたり考えたりする必要があるので、非常にいい勉強になりました。

興味が出てきたので、ちょっと古いですが↓の本を買いました。また読んでいきたいと思います。

www.ohmsha.co.jp

Acknowlegement

今回の記事執筆において、記事のレビューやYJITのディスカッションなどで友人の bakaming が協力してくれました。感謝。

*1:https://asobistore.jp/content/283gym_2022/

*2:ちょうどそのやり取りが始まった頃は新東名を爆走してました

*3:もともと10/7あたりに公開予定だった

*4:本来は記事内に書くべきなのですが…