松本で開催されたRubyKaigi2023に参加しました。 現地でお世話になったみなさま、ありがとうございました!!! 自分もせっかくブログがあるからという理由で備忘録を書きます。 隙間時間で書いてたら遅筆もあって1週間以上経ってました。光陰矢の如し。
Day0 夕方着・宿泊
松本には前乗りしましたが、猫様の様子をギリギリまでみたかった、荷造りをギリギリまで引き伸ばした(ズボラ)などの都合により夕方の到着となりました。松本駅にRubyKaigi歓迎の幕がかかっていてとても感動したとともに、松本に集まりつつあるRubyistたちを炙り出すためのリトマス紙になっていて面白かったです。一般の方は特に気にも留めずに歩き去る傍ら、足をとめて写真を撮ったり「おっ、すごい」と思わず声を漏らしてしまう人はRubyistだな〜と思っていました。そんな自分ももちろん写真を撮らざるを得なかったのでした。
宿泊先として今回はエモリハウスにお世話になりました! 初日から最終日まで、エモリハウスのメンバーのみなさまのおかげで楽しく・快適に過ごすことができました。感謝…🙏
自分はコロナ禍以降、習慣的にラジオ体操をしているのですが、一緒にしてもらったりしました! 📻 ありがとうございました!
家主とメンバーで一緒にラジオ体操しました #エモリハウス #rubykaigi Day 1 pic.twitter.com/VZ8OwC7V8s
— emorima (@emorima) 2023年5月10日
エモリハウスTシャツ、かわいい〜
メンバーT干し pic.twitter.com/8uOPVtxN0x
— べーた (@beta_chelsea) 2023年5月10日
参加方針を決めておいた
過去の京都(2016)、オンライン(2020,2021) を体験して思ったこととして、「全部知りた〜い!」と思っていると個人的にかなり大変な気持ちになってしまうという気付きがありました。そのため、今回は「全部聞けなくてもいいや!」精神でのぞみました。また、平日木/金はどーーーしてもtodoが発生しがちなので、心がもやもやしてるよりもサッと済ませてスッキリした気持ちでセッションを聴くことにしました。個人的な精神衛生上、この作戦はかなりよかったです。同様の問題として、全部記録したい vs レポート的なものを書くのが苦手なのでしんどい、ということがあったのですが、記録感想をさっぱりとした箇条書きにするということで解決ということにしました。まぁ具体の内容については、こんな辺鄙なチラ裏ブログよりも、公式が例年用意してくださっているアーカイブビデオ( 感謝…! )がこれから公開されたり、英語とRubyの理解度が深い方がまとめてくださったりしているので、そちらをご覧いただくとよいのではないかと思います。あらかじめよろしくお願いいたします。
Day1
会場は松本駅から15分程度のところにある「まつもと市民芸術館」でした。旗とか階段とかがRuby一色に装飾されていて、改めて感動しました。
Matz Keynote
- Rubyの歩みを世界的事件をおりまぜながら振り返っていくお話だった
- joy というキーワードがたくさん出てきたように感じて印象的、Rubyはたのしい〜
- 型を書かない話を聞くことができて「あ〜RubyKaigiに来た〜!」と思いました。I'm flat earth believer.
ハックスペース (by Helpfeelさま)
参加直後からTODOが発生してしまい、早くも1日目から 4F ハックスペースのお世話になりました。 畳と机と座布団と電源、そして目の前に芝生と遠くに見える山々。最高の作業環境でした。Helpfeelさま、ありがとうございました〜! 恥ずかしながら Scrapbox の運営会社さまということを今回初めて知りました、お世話になっております 🙏 ※このあと Day2, 3 も電源難民になりお世話になりました。感謝。
UTF-8 is coming to mruby/c
- UTF-8 が先頭bitで全体のbyteを示す、などの仕様を初めて知りました
- sizeとかのメソッドが思った通りに動くのは、こういう着眼点でcommitを重ねていってくれている方々のおかげなんだなぁとしみじみ思いました
- unicode code points、grapheme cluster、なるほど 📝
DIY Your Touchpad Experience: Building Your Own Gestures
- Environment Improvement Geek #=> "環境改善オタク"
- 30分前に新しいプラグインを2つリリース(!?) → thumbsense, remapper
- 自分で使うツールを自分の手で作ってさらに楽しい! ってサイコーですね!
Lightning Talks
- Building Ruby Native Extention using Ruby|RubyでCompiler作る、サポートする/しないを割り切って作るというのは動かす時にとても大事だなと。Nice Demo!
- RBS meets LLMs - Type inference using LLM|Matzと被ったというツイートをお見かけしておりました…! でも新しい手段としてめっちゃ面白いですね。鍛え甲斐がありそう。
- Customize your Vim/Neovim directly with Ruby|自分もVimめっちゃ好きなのですがこんなことができるんですか!なるほど https://github.com/okuramasafumi/rspec-current.vim
- mruby VM|まさかのMatzによる優しい CRuby と MRuby の話、Matzトークおかわりできるのは単純に素晴らしい。
- Natsukantou the XML translator|ゼリーの例など、やわらかい感じの図が理解のために助かりました。これか https://gitlab.com/lulalala/natsukantou
- BINGO! | 社長の重要な仕事(くじ引き)をするためのWebビンゴカードをRubyで作った、そのためにもwasmやstack問題の対応など学びが色々あったとのこと、良いな〜。
- Adding custom rule for Rubocop in the 2 month of employment | やりたいことを周りに言うと叶う、というのがとても素晴らしかったです…!
- Unexplored Region - parse.y - | 「世はまさにparser時代」面白すぎました。parse.yについてチョットワカリました(すみません嘘ですムズカシイです)
- Ultra-fast test-driven development| rspec-daemon チョーハヤイ、サイコー!! 使ってみたいと思います。速いは正義。
- Optimizing Ruby’s Memory Layout: Variable Width Allocation|メモリのスピードアップ、一利用者としてありがたいの一言です。頭の良い人に助けてもらって生活している…。
- Dividing and Managing: The Cops Squad of RuboCop RSpec Dept | gemへ切り出されているのすごく助かります。後方互換性など考えていてもらい感謝!! - Serverless IdP for small team | RubyKaigiで活用されているものがOSSとして公開されてるの素晴らしい〜。会場Wi-Fiとても助かりました! 本当にありがとう!!
Official Party
ホテルの宴会場に大量にいるRubyistたちが圧巻でした。
自分はFjordBootCamp( https://bootcamp.fjord.jp/ )のメンター業をさせていただいているのですが、普段オンライン上でやりとりさせていただいている他のメンターのみなさん、受講生のみなさんと始めてオフラインでお会いできてなんだか感動しました。( あっ…これってある意味オフ会というやつか…!? ) 特に受講生の方からは自分のコメントが励みになったと言ってくださる方もいて、とても嬉しかったです。引き続きがんばっていきたいと思います!
他にも久しぶりに会う知り合い・お世話になった方が元気そうにしている姿を見ることができて、コロナ禍を経てということもあり、なんだか in-person の大切さをひときわ実感した時間でした。
最近VlogやPodcastの視聴にハマっている身としては、生やんちゃさん( やんちゃクラブ - YouTube ) や 生じゅーんさん (
Apple Podcast内のキマグレエフエム、そしてお久しぶりでした、お元気そうでなにより〜!) とお会いできて嬉しかったです。
Day2
How resolve Gem dependencies in your code?
- specification の複雑さによるバグのお話でした(という理解)
- specification の派生クラスがたくさんあってワァ…ァ…ッてなっちゃったな…。
--conservative
オプション 知見! 勉強になりました
The Resurrection of the Fast Parallel Test Runner
- 「まず金を手にいれる」 くっ…確かに…! 本質はもっと別のところにありますね
- Rails6〜7、テストの数が50超えるとパラレルでやってくれる、というのは知りませんでした
- 遅いテストはモデルの責務が大きすぎるかも、見直しのきっかけになるかもしれない、なるほど
Reading and improving Pattern Matching in Ruby
- つじもとさんが素晴らしい
- そこにチャンスがあれば、機能をちょっとだけ良くできる
- 何気なく使っているパターンマッチングの裏側について、図を拝見しつつ聞けたので勉強になりました!
Tips and Tricks for working in the MRI Codebase
- bug解決の例をとって、CRubyの深掘り方を丁寧に教えてもらえました
- たぶんちゃんと順を追って手を動かすと実際に試してみれそうなレベル感、とてもありがたい
- 便利TIPS:
https://gem.wtf/gem_name
にアクセスするとそのgemのリポジトリにリダイレクトされる
Optimizing YJIT’s Performance, from Inception to Production
- YJIT Project として目標だけではなく捨てることも明示されていて、地に足をついてやってくれていることがめちゃわかる、すごい
- 関わるメンバーの紹介からも、Shopifyさんの本気度が伺えた、すごい
- ( 頭文字Dがお好きなのかしら… 🤔 )
夜ご飯
WNB.rb ( https://www.wnb-rb.dev/ ) の方と、エモリハウスメンバーでの夜ご飯が発生してたので参加! しかし、英語に自信がなく、上手くコミュニケーションを取っていけなかったので、反省のある一夜でした。 せっかくその日に聞いたセッションの発表者がお二人も参加されていたのに、テンパってしまって全くもって感想をお伝えできなかったのが心残りです。英語勉強しようと強く思いました。 コミュニケーション面で諸々助けてくれたMishに感謝します! ありがとう!! ❤
We found friends @rubykaigi 💞 Our members attending a dinner with members of https://t.co/QtaphMez59, an organization for female RubyKaigi participants. 👩💻👩💻 pic.twitter.com/2T4DBkwBjJ
— WNB.rb (@wnb_rb) 2023年5月12日
これはいつの間にか撮られていた食い意地がはっている瞬間の自分これは誰も撮っていないだろうし、撮った本人も覚えていない、(本人曰く)残り物を胃に片付けている #rubyfriends @beta_chelsea さんです #rubykaigi pic.twitter.com/f7rwOlKHaR
— ぷぽ (@pupupopo88) 2023年5月17日
Day3
Ruby Committers and The World
正直なところ英語のリスニングがてんでダメなので、字幕とTwitterの翻訳ツイートに大変助けられました。感謝…! 話題はこんな感じでした → YJIT, Garbage Collection, Parsing, (topic)継続についてのcommunity design, Types, Threading, Miscellaneous, Other Ruby Implementations(TruffleRuby,etc), Regex Optimizations(ReDoS), 型注釈コメントについて(discussion)
Build Your Own SQLite3
- 読み方問題(自分は "エスキューライト" 派です)
- SQLiteがマイコン上で動くのはいろんな世界が広がりそうですね
- 応用のkeymap、HJKL( vim でよく使うcursor key )が主要地を占めてしまった とのこと…なるほどな〜
Ruby vs Kickboxer - the state of MRuby, JRuby and CRuby
- 絶対面白いでしょと思って拝見しましたが実際面白かったです
- 「拍手してください」「デモを見たい人はいますか?」(機械音声) が事前に用意されていた
- チャレンジの中でできたこと、できなかったことがまとめられていてよかった! 遠近法デモ最高でした!
Ruby JIT Hacking Guide
- JITってRuby versionごとに別物なのか…(理解がそこからですみませんmm)
- (後から調べた) Ruby2.6でMJIT、Ruby3.2でYJIT、RJITはk0kubunさん作成のRubyで書かれたJITでありYJITの実験場のような役割のもの
- 機械語をめちゃめちゃ丁寧に講座してもらった、感謝
Rethinking Strings
- TruffleRuby 10th anniversary! 🎉
- TruffleRuby での String の拡張を "Rope" と呼ぶ、という認識 (理解不足かも)
String.new #=> ASCII-8BIT
、「''」は UTF-8
、ゆえにString.new != ''
ということらしい、なるほど〜
Parsing RBS
- 普段意識してなかったけど、木構造とかに知らず知らずに助けられているんだなぁ (あんまり普段、仕事では使わないので…)
- ひとつひとつの壁を解決して今があるんだな〜。ありがたい!
- 最後に出てきた過去との差分がすごい、進化だ
After Party (Sponsored by STORES, Inc.)
最後のセッションを見る直前にチェックした時は補欠だったので、まぁ無理かな〜と思っていたところ、宿泊所に帰ってチェックしたら超ギリギリで繰り上がっていたので慌てて飛び込み参加させていただきました。ビル1階のフロア全体が飲み屋さんになってるところが貸し切られていて、Rubyistがたくさんひしめきあってるのが圧巻でした。京都の時にお世話になった台湾の方とも思いがけず再会でき、ご挨拶できて良かったです。お互いに人間としての顔は実はあんまり覚えてなかったのですが、名札のアカウント名で気付けたので、名札効果のすごさを実感しました。
RubyMusicMixin 2023 (Sponsored by pixiv Inc.)
自分はこれまでの人生で「クラブイベント」なるものに行った覚えがなかったのでちょっとソワソワしながら入場。DJうなすけ氏に事前にHowToを求めておいたところ「楽しめばオッケー」なる回答をいただいたので、とりあえず勢いじゃ、と思ってDJブースから2〜3列目のあたりで揺れてみました。元々音楽は好きなので、すごく楽しかったです! うなすけくんDJ → オブレゴニアさんDJ を通して揺れてたら、完全に体力を使い果たしました。踊ってる人たち、すごい。After Partyでそこそこ食べたと思うのですが、食べた分のカロリーを使い果たした気がします。kickboxing の発表のお二人もいたので、発表すごく良かったですと叫んでみましたが、マスク越しだったし音楽もあったのでたぶん聞こえなかっただろうな…😅
昨日は「フロアが沸く」という言葉の意味を実体験できて有意義な夜だった…。
— べーた (@beta_chelsea) 2023年5月13日
Events
スポンサーブースのスタンプラリー
スポンサーブースを回るスタンプラリーがありました。順番に回るというより、セッションの合間や部屋に入り損ねたタイミングでランダムにウロウロして、ノベルティやスタンプを貰いました。
ノベルティ多すぎでは??? (ありがとうございます!)
スタンプを全部集めると、特製ピンバッジが貰えました。デザインがまさかの5種類あり、かなり悩みましたが、林檎ロゴのものが大変カワイかったので持ち帰らせていただきました。
Rubyist Book Authors Stamp Rally
技術本の著者にハンコをもらう #authorsrb のイベントもありました。なかなか広い会場でAuthorのみなさんにお会いするのが難しく、ハンコはコンプリートできませんでしたが、4つのノルマは達成して素敵なユウちゃんの付箋をもらうことができました。また、いくつか購入書籍にサインを入れてもらいました✍️ 本当は「研鑽Rubyプログラミング」も現地販売されていたので購入を狙っていたのですが、一手及ばず完売となっておりました。改めて物理本を買ったので、完全読了した上で、またどこかの機会でサインいただきに突撃できるようにしたいと思います!
はじめてつくるWebアプリケーション 〜Ruby on Railsでプログラミングへの第一歩を踏み出そう
宿泊先のエモリハウスの家主・江森さんと、やださん、こばちえさんの新刊! ちょっとフライングして、早めにサインをいただいてしまいました✨
やった〜! 1✌️#rubykaigi Day1 「はじめてつくるWebアプリケーション」著者のみなさんにサインいただきました!ありがとうございます!!🙌 pic.twitter.com/NEVWABzzVz
— べーた (@beta_chelsea) 2023年5月10日
ブラウザのスクショがたくさん掲載されていて、初学者の方にとって「ちゃんと自分が進めているかどうか」がとても分かりやすい構成になっていて素敵です。自分がFBCでアドバイスする時の参考にさせていただきます! インストールのところも Windows と macOS それぞれの説明が載っていてとても丁寧…助かる…!
はじめてつくるWebアプリケーション 〜Ruby on Railsでプログラミングへの第一歩を踏み出そう | 江森 真由美, やだ けいこ, 小林 智恵 |本 | 通販 | Amazon
ユウと魔法のプログラミング・ノート
「ルビィのぼうけん」シリーズの訳者である鳥井さんが今回刊行された「ユウと魔法のプログラミングノート」、先行販売本をゲット&サインもいただきました! ユウちゃんの日常がプログラミングによって少しずつ進化していく様子が素敵でした。また、ゼロ英語かつ、プログラミングに必要な概念(変数、入力/出力、真偽、配列etc…盛りだくさんだ)が自然と織り交ぜられていて、ここを出発点にどの言語に向かっても通用するお話になっていると感じました。会社にちょうど適齢(小学校高学年)のお子さんがいるメンバーも多いので、おすすめしていきたいです。 あとこれは物理本でしか味わえない感動なのですが、なんとカバー下が…! うわ〜〜〜素敵〜〜〜!!! 📖
ユウと魔法のプログラミング・ノート (O’REILLY KIDS) | 鳥井 雪, 鶴谷 香央理, 打浪 文子 |本 | 通販 | Amazon
RubyとRailsの学習ガイド2023
いがいがさんからもサインいただきました! こちらの学習ガイドは「旅のガイドブック」ということで、RubyやRailsに収まらず、関連書籍/DB/HTTP(S)/Gitなど、一通りの知識が網羅されています。しかも2023年版ということで、発売されたばかりの上記2冊の名前もすでに掲載されていました。あ、圧倒的速さッ…!!! 「ゼロからわかる Ruby 超入門」のキャラクターも描かれているべこさんの素敵な表紙・旅マップが、内容のガチさとのうまい中和剤(?)になっているため"カワイイ"寄りの印象が強い冊子ですが、内容は網羅性・説明内容ともにスゴいです。流石いがいが先生〜! ありがたい〜! 残念ながら一般流通してないと思うのでRuby超入門のリンクを載せます。Ruby超入門は初学者の方に説明する上でたくさん引用させていただいたりしていて、とても重宝しております! いつもありがとうございます!
ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) | 五十嵐 邦明, 松岡 浩平 |本 | 通販 | Amazon
ご飯・観光の話(後日別記事)
松本のグルメをもちろん堪能してきたのですが、すでにここまでで文字を書くパワーが欠け気味なので、後日あらためて旅の備忘録をつけたいと思います。美味しかったな…!
kaigieffect
今回の参加の課題として、(いや毎回思うことでもあるのですが、) 英語力がマジでピンチだなと痛感しました。RubyMusicMixinで大倉さんから英語に関するアドバイスを伺って、まず第一歩と思ってDuolingoを続けてみています。9日目で「そろそろログインするか〜(※ズボラが災いして未ログイン状態で続けていた)」と考えてアカウント登録したところ、N年前に作った過去アカウントが復旧扱いになったために連続学習記録がリセットされてしまいました。うぉぉ…つら…でもめげないッ…! 今日からまたやります。あとラジオ英会話も聴こうと思います。あれはラジオ体操(NHK第1・6:30〜6:40)の後に開始する(NHK第2・6:45〜7:00)ので、ラジオ体操とセットでやっていけばなんとか習慣化できませんかね…まぁちょっとやってみて考えよう…。
また、来年の沖縄開催、そしてその前に秋に島根でRubyWorld Conference がありますね。20代の頃はお家にこもってるのが大好きだったので、あんまりどこにもいかなかったのですが、30代を迎えて思うところとしては、元気があって身の回りの社会が平和なうちに、まぁ人生何が起こるかわからないという意味も含め、行けるチャンスは行っとくべきかな…と考え始めたところです。島根、Rubyの聖地だけど、まだ巡礼してないしな。しときたいな。予定と予算の調整できるかな…!?
さらにその前に Kaigi on Rails もありますね!自分は Rails にとてもお仕事でお世話になっているのもあり、楽しみです〜。
おっと、そうだ、ハンダゴテやらハンダやらの注文をせねばならなかった。いただいたコレを組み立てなければなので。
学生の時に実際基盤を見つめすぎて手元がおろそかになり、人差し指と親指に水玉模様の水ぶくれをこさえたことがある身としては、今度は誤らぬように細心の注意を払っていきたいと思います。
や〜〜〜 RubyKaigi 2023、楽しかったです!ありがとうございました〜〜〜!!! 👏👏👏