RubyKaigi 2024 in 沖縄🌺🏝️
はじめに
今回で自身2回目となる、Rubykaigiに参戦してきました!
前回は初めての参加で、知らない方だらけの環境に飛び込む感じでしたが、今回は会社の方々と参戦したので目的を持って参加することができました。
ちなみに弊社、ツクリンクはRubyKaigiのSilver Sponsorとして参加しております!
ノベルティのシールは弊社のデザイナーが作成したものなのですが、おかげさまで大好評で直ぐにノベルティエリアから無くなっていました🙌
(写真無くてごめんなさい)
参加した中で、心に残っているセッションをいくつか紹介します。
日程
2024/05/15-17
場所:那覇文化芸術劇場なはーと
オープニング
「ハイサイ」の一言から始まったので、沖縄に来たな〜と言う感覚がより強く感じるオープニングでした。
Writing Weird Code
スピーカー:@tompng tomoya ishida さん
IRBのメンテナーで "irb --type-completor" を開発
TRICK 2022で金賞受賞
Qiitaの記事を発見したので私も試してみました
今まで補完の設定を切っていたのですが、ちょっと有効化してしばらく試してみます。
普段Ruby on Railsを使用してWebアプリやJobの開発をすることが常ですが、Rubyを使ってアニメーションを作ったり、BMP画像にRubyのコードを埋め込んだりとかなり予想外なことをされていたのでかなり刺激を受けました。
なんとびっくり、以下のURLで表示される画像をRubyのコードとして実行できると言う!!
https://raw.githubusercontent.com/tompng/selftrick2024/main/floral/lily.rb.bmp
このセッションで学んだこと
「遊び心も大切である」
Let's use LLMs from Ruby 〜 Refine RBS types using LLM 〜
スピーカー:@kokuyouwind Shunsuke Mori (kokuyou)さん
RBSの型定義をLLMにやってもらうツールを作ったお話。
昨年からのLLMの進化
コーディング能力の向上
値下げ
扱える文章長の拡大
つい先日、ChatGPT-4oが発表されてLLMの進化(特に高速化)を体験したばかりでしたので、ホットな話題でした。
RBS Goose
https://github.com/kokuyouwind/rbs_goose
RuboCop: LSP and Prism
スピーカー:@koic Koichi ITOさん
Rails8にLSPが入る可能性があるというお話。
Rubocop VSCode拡張機能でも --lsp オプションを入れることで使えるっぽい
→LSP使うと早くなるらしい!!
VSCodeでコード保存時に実行する時もストレスなくformat実行できるっぽいので、ちょっと入れてみます。
Turning CDN edge into a Rack web server with ruby.wasm
スピーカー:@remore Kay Sawadaさん
gem burnの紹介
WASI(WebAssembly System Interface)
What is CDN Edge?
→Fastly Networkを使用している
rubygemsもFastlyにホスティングされている(地味に知らなかった)
Demo
burnを使用してFastlyのCompute@Edgeで実際にRubyを動かす
sinatraを使用してWeb画面を表示
ロブスターのアスキーアート
簡易ブログサービス
Railsはbuild errorになるっぽい
今後の挑戦
100MBのLimitがあるらしいので、それより大きなpackage sizeは今は使えない
パフォーマンスの問題
Using Ruby in the browser is wonderful.
スピーカー:@ledsun Shigeru Nakajimaさん
Rubyをブラウザで動かすと気持ちが良い!
What is ruby.wasm
CRubyのバーチャルマシンをブラウザで動かす
CRubyとJavaScriptの架け橋になる
Rubyをブラウザで動かしただけではできないことがある
ファイル操作
Timer, SleepなどのOS操作
そこを埋めるための架け橋になる
JS.global
JSを触るためのやつ
JS.eval
JSを実行するやつ
JS::Object
JSのオブジェクトをラップするRubyのクラス
どんなPRを送ったか?
Rubyのように使えるようにnewメソッドを定義した
JS.gloval[:URLSearchParams].new("?q=ruby.wasm") を実行するとJSのオブジェクトができる
後半パート
JSのフレームワークはたくさんある
たくさんある = 作るのが楽しい
(この発想好き)
Railsを参考に作ってみた
リポジトリ
まとめ
今回人生2回目のRubyKaigiでした!
前回は初めての環境でほぼ顔見知りもいない状況でセッションを見たりちょっとだけブースにお邪魔するくらいでしたが、今回はブログを拝見している企業のブースに行って質問したり、別のカンファレンスなどで知り合った方に挨拶しに行ったりと前より交流をメインに参加することができました!
セッションはとても勉強になりますが、リアルなカンファレンスだからこその交流も引き続き積極的に行うように心掛けます。
みなさんまたお会いしましょう!