はじめての RubyKaigi
2026年5月12日
日本Ruby会議2011
私がRubyKaigiにはじめて参加したのは2011年、まだ日本Ruby会議という名前だった。当時のスケジュールを振り返ってみたらちょうどRuby 1.8と1.9の境だったり、松田さんがRails開発のはなしをしていたりしておもしろい。バックアップから当時の写真がでてきた。
そのあとPHPをメインで使っている会社にインフラエンジニアとして入社することになるのだが、当時、私は「Railsエンジニア」という肩書きで入社するはずで、入社式でインフラチーム配属と発表され私が「えっ」ってなってて、norioさんが「そんなの聞いてない」って言ってておもしろかった。そのnorioさんは日本Ruby会議にデザイナーとして携わっていたりする。

RubyKaigi 2025
はじめてRubyKaigiの壇上にたったのは昨年のRubyKaigiのライトニングトーク。わたしはふだんRubyを開発しているわけではないし、例年のRubyKaigiではいつも壇上のプレゼンテーションを眺めているだけだった。
そんなとき、プレゼンはできなくても「プレゼンする」ということはLTのネタになるのでは、と思いついた。Rubyでの組み込み開発ネタは毎年あり、とくにゲーム枠は定番のひとつだと思う。またRabbitはRubyKaigiでよく使われているRuby製のプレゼンテーションツールだ。Raspberry Pi PicoはPicoRubyの標準的なターゲット環境であり、Raspberry Pi PicoをつかってDVI出力をするプロジェクト PicoDVI は知っていたので、つまりmrubyからDVI出力をうまく制御できれば、mrubyで画面出力が可能になる。あとはRabbitをつくればプレゼンができる。ここまでは自然な発想である。
こういうことは迂闊にツイートすることで逃げ場をなくすことができる。sorahに後押ししてもらったので、あとはプロポーザルを書くだけだ。
mrubyで画面出力をしたい、という発想はRubyWorld Conference 2024より前には思いついていて、hasumikinさんに相談したところ「Pico 2だったらできるのでは」ということだったので、Raspberry Pi Pico 2を使って取り組みはじめた。ちょうどいいことに、RP2350にはHSTXというDVI出力のためにあるような機能があってこれがかなりたすかった。
とはいえいろいろ忙しかったので、プロポーザル時点でできあがっていたのは青い画面に "Hello, World!" できたところまでだった。RubyKaigiの前週はアメリカ出張だったので、2週間ちょっとしかなかったがCursorのおかげでなんとかなった。LLMはこういうプロトタイプにはとても良い。
最終的にできあがったのはDay 1のお昼ぐらい、夕方ぐらいにYuji YokooさんがRubyKaigi 2024の発表でDinosaur Gameを実装していたのを思い出して、最後にこれを追加してコミットしてとりあえず完成とした。
このときの画面出力はかなり不安定で、最終的に解像度を640x240にして縦を2倍スケーリングすることでどうにかダブルバッファリングして映ってるかんじだった。当時は pico-examples のコードをほとんどそのまま使っていたが、mrubyを動かすと画面の中央はグリッチしていて、実はそこを避けて文字を配置したりしている。縦解像度を半分にするアイデアは土壇場で思いついたが、LTが終わった後にまつもとさんとYokooさんと話していたところ、昔のNECにも縦の解像度を半分にする200ラインモードというのがあったというのを教えてもらった。
このときは他にもできていないことはかなりあって、evalするのは諦めたし、発表練習する時間もなく、うまくいけば奇跡というかんじだったので、2分くらいずっと壇上でゲームしつづけることになったが、とにかくうまく動いてよかった。
RubyKaigi 2025 Follow up
ということで、RubyKaigi 2025ではじめて壇上に立つことになったわけだが、さきほど書いたように、この時点でできていないことがたくさんあった。というのは私が松江でhasumikinさんに相談していたことは「PicoRubyを使って画面出力とキーボードをつくれれば、Rubyだけでコンピューターができないか」ということだったからである。ということで、そのアイデアをRubyKaigi 2025 Follow upではなした。このときのスライドにはDVI出力の安定化のためにやろうとしていたアイデアがだいたい書いてある。
Proposal をだす
松山にいたとき、RubyKaigi 2026のCFPに応募するというのは決めていた。というのはRubyKaigi 2026とNext '26のスケジュールが被ってしまっており、登壇でもしないと函館に行く理由がなくなってしまうからだ。そんなことを深夜、道後温泉からの帰り道に金子さんに話した。
PicoRabbitの後継にはHakodate Projectと名付け、まずはCでDVI出力の安定化にチャレンジしはじめた。このHakodate Project、うまくいったかというとそんなことはまったくなかった。
RubyKaigi 2026のCFPに応募したあとも、娘の受験がありプライベートも仕事も相変わらず忙しく、あまり進捗が出ない状態だった。ここから先の進捗はPicoPicoRubyのDiscordの #times-harukasan チャンネルを遡るとわかる。2月17日の時点でC実装に立ち戻って画面をアニメーションできただけであるが、昨年が2週間しかなかったなかで基板まで発注していたので、まあ2ヶ月あればどうにかなるのではないかと思っていた。
このころにはClaude Codeがかなり賢くなっていて、ARMのアセンブリを直接書けたり、mrubyのバイトコードをデバッグできるようになっていたのでかなりたすかった。
Harucom
プロトタイピングがすすみ、DVI出力、キーボード入力、オーディオなどCで実装できてきた。あとはこれらをmrbgemにしてmrubyに組み込めばできるわけである。もともとやろうとしていたR2P2D2の目標はだいたいクリアすることになる。
ここでもとに立ち返って、Rubyでコンピューターができないか、と考えていた理由を思い出した。そもそも、Rubyでコンピューターをつくる理由は、自由に書き換えて壊したいというのがある。
ほとんどのコードをCで書いてmrbgemにしてしまえばそれが安定するのは当然であるが、そうするとRubyで書ける部分がすくなくなってしまう。そこで、Cで書く部分は最低限にして、Rubyのコードはすべて実行時にオンザフライでコンパイルすることを目指すことにする。
なるべくRubyで動くコンピューターを目指す。このプロジェクトがHarucomである。
Harucomにはいくつかの目標がある。ひとつめはmrubyで十分にうごくコンピューターを作り上げること、ふたつめはR2P2D2の実現にむけて十分な知見をためること、そして3つめはRubyKaigi 2026での発表を成功させることである。
Harucomの名前の由来はいくつかあり、桃井はるこさんの名前の由来にもなっているといわれているHAL 9000からとっているが、単純にHarukasan's Computerの略でもある。harukasanというハンドルの由来は桃井はるこさんとは関係ないけれど桃井さんに「はるかさんとはるこさんじゃん」って言ってもらえたのはうれしい。
さて、実際にHarucomのルートファイルシステムはスクリプトを書き換えて再起動すれば破壊することができるようになっている。mrubyなんだからコンパイルしてmrbファイルだけおけばいいのに毎回コンパイルしていて富豪的だが、こうすることで誰でも簡単に壊すことができる。
これを実現するためにはかなり多くのメモリが必要になることは明白である。RP2350について調べていくうちにPSRAMのサポートが加わっていることを知っていたので、PSRAMを搭載した基板をつくることでこれを解決する。ここまでの考えはRubyKaigi 2026のCFPに応募した時点では固まりきっていなかったので、提出したProposalではプロジェクト名がR2P2D2のままになっている。
試作がうまくいっていたので、RubyKaigiではボードを頒布することにした。これで多くの人に試してもらえれば、たくさん問題がみつかるはずである。ここまでの試作はうまくいっていたので、50枚発注したのが4月3日。JLCPCBは発注からだいたい一週間ぐらいでできるので、よゆうがあるなとおもっていたが、製造工程の問題で途中で部品が足りなくなり、到着予定日が4月21日になってしまった。この日は函館に移動する予定日だったのでまずい。サポートチャットに連絡して発送をDHLに切り替え、無事前週の木曜日には受け取れた。

土日は学校の保護者会があったり、髪を切ったりしたら時間がなくなり、ここにきて今まで発現しなかった問題をひきあててしまって時間がなくなっていった。最終的に徹夜作業して全品検査して箱詰めがおわったのは函館に出発する日のお昼くらいである。なんでこの日私は有休をとっていなかったのだろうか。普通にミーティングしてて地獄になってしまった。もうしわけない。
Day 0: 函館に着陸
月曜日を移動日としていたことで交通のトラブルには巻き込まれず、無事に函館につくことができた。今回のおもしろいところとして、すでにソフトウェアはボードに組み込んでいるので、前日に追い込み作業ができないことがある。去年とはえらいちがいだ。
火曜日は五稜郭の桜をみたり、おいしいお寿司をいただいたりゆっくりすごすことができた。前回五稜郭にきたときは一面の雪景色でそれもとても美しかったが、桜が満開の五稜郭はまたちがった美しさがあった。




夜はスカラシップで参加いただいた学生との懇親会があった。そのあと炬燵さんがきりもりするyancya barでビールをいただいた。

Day 1: 登壇
Day 1はKeynoteから聞くことができた。午前中にHarucomを本屋さんに納品にいったのだけど、お昼過ぎには完売してしまっていた。まだBOOTHでは売っているのでよかったら買ってほしい。

そんなこんなで発表だったのだけど、発表前に部屋に荷物をとりにもどったところ暗証番号を忘れてiPhoneを部屋の中においたまま出てしまい締め出しをくらってしまった。偶然廊下にhamachangさんがいらっしゃってyancyaさんを呼んでもらったところ、偶然ちかくにいたyancyaさんがすぐに来てくれてたすかった。
発表前はどきどきしながら、廊下のスペースで練習していたが、急に動かなくなってめちゃくちゃ焦った。これは使っていたUSBケーブルのせいだとわかって、同僚に急遽USBケーブルを貸してもらってたすかった。
そんなこんなでいろんな人にたすけてもらって無事発表を終わらせることができた。Harucomにはたくさんのこだわりがつまっているが、この日記があまりにも長くなっているし、5月25日にあるピクシブのアフターイベントで話すので、ぜひこれを聞きに来てください。とにかく無事に発表がおわってよかった。
Day 2: PicoPicoRuby
Day 2はコード懇親会と共催されたPicoPicoRuby#12@コード懇親会に参加した。事前にDiscordでリレーの使い方の相談を受けており、そのリレーは秋月電子通商で買ってきたのだが、はんだづけしてもっていく必要があって、一旦部屋にもどってはんだづけしたりしていた。 コード懇親会にはテスターとか安定化電源とかを持っていったのだけど役立っていたようでよかった。主催してくださったANDPADの皆さんと須藤さん、ありがとうございました。
Day 3: RubyIlluminations
Day 3の夜は恒例になりつつあるピクシブ主催のイベントがあった。今年も無事に開催できてほんとうによかった。くわしいことはpixiv insideにでもまた書こうとおもうけど、会場にもめぐまれてすばらしいイベントになったとおもう。思いのほかはやく片付けがおわってしまって、この日もyancya barのラストに間に合ってしまった。
Day 4: 市電LT

Day 4は朝からSmartHRさんの函館市電LTに参加した。京都でも叡電LTに乗ったんだけどすごくおもしろくてまた参加したかったので発表枠で申しこんだ。電車内ではスクリーンが使えないので出力をどうするかという問題があり、HDMIモニターも函館に持っていたが、これはつかわずにディスプレイモジュールをつかうことにした。
Harucomは基板に0.96インチのOLEDディスプレイモジュールを搭載できるようにしてある。これをつかってゲームをつくって、ゲームであそんでもらっている間に発表するスタイルにした。函館といえばイカ、イカといえばゲーム、というのは自然な発想であるが、その商標をつかうことはLLMによって阻止され、函館イカ釣りゲームという名前になった。イカ釣りゲームけっこうよくできたとおもうので遊んでみてほしい。自動起動周りをちゃんとデバッグしてないけどいまはこのPRにあります。
その後は歩いて函館を観光した。私は箱館山の南、立待岬からスタートしたんだけど、ちょうど反対側にある函館どつくから歩いてきた金子さんたちと中間にあるロープウェイ近辺で再会しておもしろかった。




夜になり急に寒くなったのでWhite seedに立ち寄ってお礼を伝えて一杯いただいた。夕食のことはなにもかんがえていなかったが隣にいた地元の方にジンギスカンのお店をおしえてもらい、hasumikinさんといただいた。一見するとふつうの居酒屋だったので教えてもらわないとたどりつかなかったとおもう。

はじめてのRubyKaigi
こういったかたちでRubyKaigiは毎年新しい発見があるし、全国をまわるし、もちろん毎回「はじめてのRubyKaigi」がある。今回はSpeakerとしてはじめての参加だったし、壇上に上がったのも去年のLTがはじめてだった。
RubyKaigi 2025の "Ruby Committers and the World" でまつもとさんが「壇上と参加者の距離はそんなに遠くないと思っている」と言ったのを覚えている。もちろんこれはRuby CommittersとRubyistsの距離のことを言っているのだけれども、自分があがるとも思っていなかったRubyKaigiの壇上にあがることになったのはなんだか感慨深かった。そのあと松田さんには「はるかさんはこっち側の人間だと思ってましたよ」って言われたのも覚えているけれど、どこでそう思われたのかはよくわかっていない。
毎年いろんなことが起こるんだけど、ずっと参加しているといろんなところでいろんなことがつながるのでおもしろい。思い返すと日本Ruby会議2011の壇上でWindowsサポートについてキレている人がいて嫌なかんじだなあと思っていたusaさんとは後に同僚となり、私がはじめたプロダクトを支えてもらっている。念のため書いておくとプロレスみたいなものとのことで本人は非常にいい人である。
そんなこんなでいろんな人にたすけられながら日々を生きている。それで思い出したけど、今回はやんちゃハウスが隣にあって本当にたすかった。大量の荷物を持ち歩かないといけなかったので、となりじゃなかったら無理だったとおもう。その恩もあり毎日yancya barに通い詰めたのだけど、RubyKaigiビールをのむならyancya barが最高だった。私としてはHakodate Ruby on Aleのほうが好みだったかな。提供されるプラカップがどんどんでかくなってサイズ選び放題になったのがおもしろかった。

これから
HarucomはBOOTHでも頒布しているけどありがたいことに結構注文をいただいているので、今週はその発送作業をしないといけない。いくつかすでに不具合が見つかっていてPicoRubyをなおさないといけないのもあるので、どうにか時間をみつけてなおしていきたい。GWがおわって会社のカレンダーが大変なことになっているのもある。
こんなに長く書いたのに観たセッションのことはひとことも書けていない。来週からはまたSmartHRさんの事後勉強会に参加する予定で、再来週の月曜日はさっき言ったとおりピクシブのRubyKaigiアフターイベントでまた登壇するのでみんなきてほしい。そうこうしていたらもう関ケ原Ruby会議ですね。