すがブロ

sugamasaoのhatenablogだよ

知識の探求と喜び #RubyKaigi 2024

(タイトルはAIに考えてもらいました。確かにそうだな!?と思ったので採用しました)

rubykaigi.org

沖縄開催

元来出不精でとにかく家に居たいパーソンなのですが、なんとか一念発起して沖縄に行くことにしました

そして、せっかく行くのであればある程度観光も、ということで妻と一緒に前乗りして5/11-5/13は家族旅行、5/14-5/18(day0からday3の翌日まで)はRubyKaigiというスケジュールにしました

RubyKaigi - はじまりはじまり

ここ数年は会社のお金で参加させていただいており、今年はドリンクアップスポンサー

SmartHR Drink Up at RubyKaigi 2024 Day2 (5/16) - connpass

をやったり貢献できる幅が増えてきているのは嬉しいです

これは単なる社内事情ですが、DevRelの立ち上げを起点として社内でのスポンサー時の体制がしっかりしたものになってきて、社内でのモチベーションや熱量がうまく企画に昇華させられたことにより事前勉強会・事後勉強会・ドリンクアップの実施などいい感じに企画・運営ができていて組織力の高まりを感じます

day0 - すでに疲労

前乗りの旅行ですでに疲弊していたので、day2に行われるドリンクアップの下見で少し飲んで終了

沖縄の台所ぱいかじ|国際通り店

ちなみに、「ぱいかじ」とは「南風」を沖縄の方言で読む言葉だそうです。勉強になりますね

day1 - 初手からわからん

Writing Weird Code

PEN sanのキーノートは本当に「わけわからない(褒め言葉です)」を無限に浴びせてくるのですがその中で他のセッションを紹介していく流れが美しすぎて本当に練度の高いトークでした。TRICKとか全くできる気はしないものの、だんだん興味が湧いてきました……

The grand strategy of Ruby Parser

実質parserのキーノートだなと思いました。parser.yについては過去のRubyKaigiなどを通じてなんとなく知っているものの、取り巻く環境などはまったくわかっていなかったので、関連技術要素がマッピングされて説明されてFF3の飛空艇を手に入れてからのような感覚*1*2を得ました

それはそれとして話しているkaneko sanがとても楽しそうだったのが印象的です

Namespace, What and Why

Namespace、ぜんぜん実現できるイメージが湧いてなかったのですが本当に動いてる……!!という感動がありました

Namespaceで解決する話ではないような気もするけどRubyでは require したタイミングでrequire先の定数などがグローバルに展開されてしまうのは制御できるオプションがあると嬉しいなあというのはずっと思っています

Ruby 3.1から load の第二引数にモジュールを渡せるようになったやつがrequire でもできたり事前にモジュールを定義するのではなく何らかのシンタックスシュガーでシュッとかけると嬉しいと言いますか……

update: ↑で書いた内容はMatzの話していたpackageに相当するとのことです

夜の部

夜はRubyKaigi 2024 Official Partyへ行き、BBQを楽しみながら本当にさまざまなお久しぶりの人と話せてよかった。お互いの近況であるとか、若者にドリームキャストってなんですか?と聞かれるなど時間を感じる一日でしたね😌

day2 - 話を聞くと興奮してくる

Leveraging Falcon and Rails for Real-Time Interactivity

リアルタイム通信(というのか?)の歴史とFalconでFlappy Birdを作るデモ

サーバーサイドで計算して、その結果を描画しているんだと思うけどあんなに滑らかに動かせるものなんだなあ、というのとああいうインタラクティブな操作とかは昔にFlashでやっていたのを思い起こされる

Embedding it into Ruby code

soutaro sanのRBSをコメントに埋め込めるようにする話。現在のIDEやGitHubなどの状況だとやはりrbsファイルが別にある状態でのメンテナンスが難しいのはそうなので、コメントに埋め込むというのは良さそう〜〜〜〜と思いました

Reducing Implicit Allocations During Method Calling

メソッド呼び出し時に余計なオブジェクトを生成しないようにしていく話。メモリのアロケート状況を見ながらチューニングしていく流れは参考(何のだろう)になりました

このセッションを見ていなかった同僚に話たところ、研鑽Rubyに書いてある内容が近いっぽいですね。研鑽Rubyを積読しているのがバレてしまった……

Good first issues of TypeProf

毎年、TypeProfのトークは楽しみにしているのですが、今年はコントリビュートしやすくするためのチュートリアル的な話でした

TypeProfは毎年「期待しています!」という気持ちを持っているのですが、今回のトークで「1人で開発してるの大変ス」という話を聞いて自分も何らかのお手伝いができれば、、という気持ちになっています(なっているだけじゃダメなの手を動かしましょう)

夜の部

day 2は会社のドリンクアップ準備のためLTの途中で抜けて事前準備へ

ドリンクアップでは入口の案内パーソンとして階段を上がったところでお出迎えする役をやりました。来場していただいたみなさん本当にありがとうございます

ドリンクアップ後は適当なお店で会社の人と飲みつつ、@kwappa san / @tagomoris san / @tompng san / @gachacomplete san へ近況やトークの感想などお伝えできてよかったです。ガチャピン先生はmalloc動画のころからのファンだったのでちゃんとお話できたのがめちゃくちゃ嬉しかったです😌

沖縄の締めはステーキ、と聞いていたので一日の最後にステーキを食べに行ったのも良い経験でした。さすがに40歳過ぎ & 24時過ぎにステーキを食べるのはためらいがあったのですが、赤身のステーキだと意外とシュッと行けて新しい概念を獲得してしまいました……

day3 - 来年のRubyKaigiも楽しみすぎる

前日、IVRy社さんからもらった酒豪伝説を飲んでいたおかげか、わりと元気に起床。酒豪伝説しゅごい……

Ruby Committers and the World

例年、英語でのフリートークになると20%くらいしか理解できなくて「楽しいけどわからね〜〜」という感じになりがちだったのですが、今年はトークテーマなどをいい感じに整理してもらえたおかげかだいぶ理解できた気がします。コミッター陣の中でも意見が分かれたりしていたのは側から聞いていて面白かったです

soutaro sanがコメントに記載するRBSの記法について来場者に聞いていて、自分が手を挙げたほうがめちゃ少数派だったりして「うおお」となったりしました

これはコメントに記載する云々という話ではないと思うんですが、型によるサポートが強くなればなるほど、class(あるいはDataなど)でのオブジェクトの定義が重要になってくるかなあと思ったりしています。例えば Integer であるだけではなく、「1〜10までのIntegerである」などが表現できて型情報で事前条件(と表現するのが正しいかわからないけど)が明示できるようになると嬉しい……。というかこれは単にunionで型を定義したいという話な気がしてきました。忘れてください……(?)

Speeding up Instance Variables with Red-Black Trees

ちょっと事情があってトークに遅れてしまったのですが、赤黒木の説明をしつつそれをRubyで活用している実例に展開する流れはめちゃくちゃ面白かったです。Object Shapes、毎年話を聞いていてちょっとずつわかり具合が高くなっている気がします

ERB, ancient and future

関さんファンなので今年も聴きました。ERBの話を聞いていて「これはCGI!!」と興奮していたら「CGIだよ」という展開になって楽しかったです

自分が本当に文字通り駆け出しエンジニアだった頃は print であらゆるものを出力していたものですが、その時代にERBのアーキテクチャを検討できたのって本当にすごいなあ。今見ると「それはそう」となるかもしれないですが……

Matz Keynote

Ruby2(2.0ではない)の構想と現在実現されている機能の話や、Namespaceが入ってRuby2時代の構想が一通り実装できたらRuby 4にしようかなという内容

Namespaceの仕様などはこれからより詰めていく段階だと思いますが、めちゃくちゃ夢のある話でよかった。毎年、RubyKaigiでMatzの話を聞くと未来に対してワクワクさせられてすごいなあと思います(小並感)

夜の部

RubyKaigiの最後はmov社さんのAfter Partyへ

@kamipo sanと人生について話したり、@masaya_dev san と久しぶりにお話したり、LeSS について話したりといろいろな話をできて満足です。会場の導線などオペレーションがしっかりしていてとても過ごしやすい空間でした

day4 - また来年

飛行機の搭乗時間まで時間があったので、うわさの千日でぜんざいを食べたり、波の上ビーチで海を感じたりして解散

もはや方々で言われているので言語化されつつある話ではありますが、RubyKaigiって「明日使える便利テクニックを得ました!」とかではなく「なるほどわからん」を積み重ねて各トークの関連やRubyという言語のアレコレ*3を知っていくことで繋がりが生まれてくる快感や高揚がすごいんですよね((自分の性格として"物事を知る"ということが好きっぽい))。そしてまたわからないことが増えていく。無限か?

さらにさらに、それを作っている・トークしていた人が目の前にいる、なんなら隣で酒を飲んでる的なことが普通に発生する。

この"良さ"を未経験の人に伝えるのは難しいのですが、私は今年もRubyKaigiを十二分に楽しめました!RubyKaigiのSpeakerのみなさん、RubyKaigiスタッフのみなさん、スポンサーブースの皆さん、お久しぶりに/はじめましてでお話できたみなさん、あらゆる人のお陰で今年も素晴らしい体験をすることができました!

また来年、松山で会いましょう〜〜〜☺️

*1:例えが古い

*2:今なら暗黒大陸と言ったほうが良いですか???

*3:パーサーの概念とかメモリの考え方を押さえておいて他の言語を触るとより特色が理解しやすくなってとてもお得なんですよね。それを日本語で聞けちゃうの便利すぎるね