2026-05-30 (Sat) [長年日記]
_ 関ケ原Ruby会議01に参戦した
DAY0
今回は会場までの道のりが大変だった。
夕方ごろに出雲空港に着くと機材到着遅れというアナウンスが出ていたが、この時はまだ鴨せいろを食べながら悠長に構えていた。
機材は15分遅れくらいで到着したが、点検で整備が必要になったためさらに遅れるとアナウンスがあり、整備完了の見込みが立たない場合は欠航しますとのことだった。このあたりからいやな予感がして、車で行くルートや所要時間を調べはじめた。
結局1時間後に欠航のアナウンスがあり、手続きをするので並んでほしいとのことだったが、時間がかかりそうだったので列を抜けて、スタッフの人にネットで払いもどし手続きをする旨を伝えて、車での移動を開始した。
山陰道が一部通行止めだったり、長距離の運転は久しぶりで疲れたが、何とか25:30ごろに岐阜駅前のホテルにたどり着いた。
DAY1
オープニング
両軍の武将が動画に合わせて登場する演出があったが、西軍先鋒の森塚三矢大坂守が自前の赤い兜と羽織で登場して早くも不穏な空気が漂っていた(公式には東軍が赤で、西軍が青という設定)。
東軍先鋒源村田信濃掾構幾寿郎一真「Sorbetの型がRailsのMVC全てを貫通するまで」
クライアントサイドでもruby.wasmでvalidationを行って、型定義を含むコードをサーバサイドと共有するという話が面白かった。ruby.wasmはだいぶサイズが大きいのでproductionで使うのは躊躇しそうだけど、validation処理はpure Rubyということだったのでpicoruby.wasmでも行けたりしないだろうか。
西軍先鋒大江森塚三矢大坂守小輔次郎真年「拙者、『型は欲しいが型は書きたくない』者たちとの和睦を結び、るびぃにおける型の領地安堵を実現せんと欲す者也」
自分も型にあまり気持ちがない方なので反省した。
LLMのトークン効率のために.rbにドキュメント・型を書かずに.rbsの方に書くという案が出ていたけど、別ファイルだと.rbに追従できなくなりがちなので、型を書きたい人たちはrbs-inlineを使ったり、RubyKaigiでStan Loが話してたようにコメントのRDoc(Markdown)に型シグネチャを書くようにしたいんじゃないかという気もする。
最近のまつもとさんはコメントの地なら領地安堵してもよいと思っていそう。
東軍次鋒橘小芝内匠頭緒美三幸「気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで」
課題に対する先生の講評に凹んだけど一旦忘れて自分が作りたいものを作った、というお話がよかった。某も笹田武蔵守の誹りに揺るがず初志を貫徹すべし。
うちの家紋は本当は丸に橘なので、紹介されていた家紋生成器でそれっぽく作ってみたけど、パラメータをいじると色んな家紋を作ることができて面白かった。
西軍次鋒平毛利石見守八郎秀穎「Termfront: Ruby標準ライブラリだけで作るFPS」
端末でFPSってどんな感じになるんだろうと思っていたけど、けっこうちゃんと疑似3DのFPSっぽくなっていてすごかった。あれを端末で作ろうと思うのがすごい。デモプレイの操作も上手く、小気味よいタイプ音が流れていた。
小芝内匠頭のトークもだけど、デモが華やかでうらやましい。
ちなみにテトリスは最近のTextbringerでもM-x tetrisで遊べるようになって、Emacs互換性が向上しています。
ランチ
奉行衆から前日にランチタイムに笹田武蔵守と対談をしてほしいという話があり、急遽芝生で座って話をしたけど、ピクニックみたいで楽しかった。
たぶん、大将がいる意味があまりないんじゃないかということに奉行衆も前日に気付いたんだと思う。
RubyKaja
総勢20名のRubyKajaが紹介されて、特別賞5名の表彰とスピーチがあったが、色んな人にRubyコミュニティが支えられていることを知る機会になってよかった。
我らが佐田出雲守も表彰されていた。
東軍中堅源牧雅楽頭ミュージ郎俊男「Play Music on Ruby ── PicoRubyで作るMIDIオーケストレーションツール」
関ケ原に合わせてなのか和楽器音源が使われてたけど、MIDIで三味線の音も出せるんだ。
実用性があるのかはよくわからないけどペンタトニックスケールから外れた音を丸めてしまうというアイデアが面白かった。
きっかけはKeebKaigiでPRK Firmwareを拡張して〜という話があったけど、まさかこれが次のトークの伏線になっていたとはこの時は知る由もなかった。
西軍中堅藤原桒原備中守歩通鍵仁雄「New "Type" system on PicoRuby」
タイトルにすっかり騙されていたけど、型システムの話ではなく、MIDIキーボードで文字を「タイプするシステム」の話だった。スケジュールを見た時は牧さんのトークとぜんぜん違うテーマだなと思っていたけど、並べられている理由がよくわかった。
宴の時に誰かと話したけど、和音を使って漢字直接入力できるようにしたらT-Codeとかと違ってワンストロークで漢字1文字を入力できて面白そう。
東西軍副将紅玉宿禰木下赤羽守ppyd翔央「Job戦国時代」
自己紹介の口上を聞いていて何か様子がおかしいと思ったらまさかの西軍への寝返り宣言で驚いた。
SidekiqとSolidQueueの比較は興味があったんだけど、裏切りの動揺や抜刀してスライドを指すアクションなどもあり、ところどころ話が入って来なかった。
結論としては、SidekiqとSolidQueueで大きな性能差はないが、IO-boundなジョブの場合はActiveJobを経由しないSidekiqが飛び抜けて性能がよいということだったと思う。
理由はまだわからないそうなので続報を待ちたい。
西軍副将橘羽角前下総守情操指南匠均之助「PicoRubyに於けるRefinementsの再解釈」
Refinementsの活用法として面白かったが、よく考えるとTaskごとに処理を差し替えたいというのは、レキシカル(っぽい)スコープのRefinementsよりも他の方法(Box?)の方が向いてたりしないだろうか。
遠回しにRefinementsの限界を示す羽角前下総守の策だったのかもしれない。というか、ファイルスコープは直接的にdisられていたな。
Proc#usingの紹介があったけど、現時点でいいねが2件しか増えていない。
大将戦もJobとTaskの話ということで繋がりがあって、全体的によくできたタイムテーブルだった。
合戦
奉行衆が「もう決着なんてつけなくてもいいんじゃないか」と言い出して笹田武蔵守と某が棒読みで突っ込むという茶番を演じた後で、用意されていた決戦方法はまさかの玉入れだった(我々も一般参加者と同じタイミングで知らされた)。
一の陣で投げたけど、右肩のリハビリ中で耳くらいの高さまでしか手が上がらないので、左手で投げて何とか4〜5個ほど入れることができた。
途中「がんばれー」といった応援の声に混じって、東軍から「このままではRefinementsが入ってしまう!」とか西軍から「Refinementsを入れるぞ!」みたいな声が聞こえてきたが、Refinementsは13年前からRubyに入っています。
最終的には合計得点で西軍が勝利することができた。
事前アンケートでは西軍の方がやや人数が少なかったように思うが、木下赤羽守のおかげで他にも寝返ってくれた人がいたのかもしれない。
宴
海老の揚げ物や咖哩などの南蛮料理が美味であった。
mod_rubyについて話しかけてくださった方がいてうれしかった。
笹田武蔵守が「敗軍の将」と呼ばれていて可哀想だった。
DAY2
公式イベントは時間が合わなかったが、せっかくなので羽角前下総守と関ケ原古戦場記念館を観に行った。
小早川秀秋が教如(真宗大谷派第12代門主)に送った書状に二日酔いのことが書いてあったりして面白かった。
最後は羽角前下総守にひつまぶしをご馳走になって、「かたじけない」とか言いながら関ケ原を後にした。
何をやるのか直前までぜんぜん知らなかったので、一般参加のみなさんと同じように楽しめた。
奉行衆をはじめ、みなさんありがとうございました。
次は松江Ruby会議12でお会いしましょう。
2026-05-28 (Thu) [長年日記]
_ Cloudflare R2へのバックアップ時の501
MastodonのデータをrcloneでCloudflare R2にバックアップするようにしていたが、以下のようなエラーが出ていた。
2026/05/28 04:50:29 ERROR : db_20260528.sql.gz: Failed to copy: NotImplemented: Not Implemented
status code: 501, request id: , host id:
2026/05/28 04:50:29 ERROR : Attempt 1/3 failed with 1 errors and: NotImplemented: Not Implemented
status code: 501, request id: , host id:
2026/05/28 04:50:29 ERROR : Attempt 2/3 succeeded
rclone copy /home/mastodon/backup r2:mastodon-db --dump headers -vv でリクエスト・レスポンスヘッダをダンプしてみると、R2側にまだ存在しないファイルに対するHEADリクエストへのレスポンスで401ではなく501が返って来ていた。
--s3-no-head オプションを付けたら501が出なくなったので、バックアップスクリプトを以下のように書き換えて様子を見ることにした。
#!/bin/bash
set -euo pipefail
# Configurable variables
INSTANCE_DIR="/home/mastodon/live"
SYSTEM_DIR="/home/mastodon/live/public/system"
BACKUP_DIR="/home/mastodon/backup"
BACKUP_LIFETIME_DAYS=7
DATE_FORMAT="%Y%m%d"
DB_USER="mastodon"
DB_NAME="mastodon_production"
RCLONE_DB_DEST="r2:mastodon-db"
RCLONE_MEDIA_DEST="r2:mastodon-media"
# Error handling
trap 'echo "An error occurred. Exiting." && exit 1' ERR
backup_date="$(date +$DATE_FORMAT)"
# Database backup
echo -n "Backup DB... "
DB_BACKUP_FILE="$BACKUP_DIR/db_$backup_date.sql.gz"
pg_dump -Fc -U $DB_USER $DB_NAME | gzip -c >"$DB_BACKUP_FILE"
ls -1 $BACKUP_DIR/db_*.gz | sort | head -n -7 | xargs rm -f
echo "Success!"
# Sync backup
echo -n "Backup to R2... "
rclone copy "$BACKUP_DIR" $RCLONE_DB_DEST
rclone copy --exclude="/cache/**" "$SYSTEM_DIR" $RCLONE_MEDIA_DEST --s3-no-head
echo "Success!"
2026-05-22 (Fri) [長年日記]
_ デジタル名刺カードを作った
RubyKaigiで何人かNFCタグ付きのデジタル名刺カードを持っている人に会って、便利そうだなと思ったので自分も作ってみた。
シールをプリントして無地のNFCタグカードに貼る方法もあるようだけど、きれいに貼れなかったり余白ができるのが嫌だなと思って、FUN-CREATEというサービスで作成することにした。
Web上でデザインできるのだけど、細かい調整が難しそうだったので、InkscapeでSVGデータを作成して、350DPIでPNGにエクスポートしたデータをWeb上のデザインツールに貼り付けて入稿した。
メール便だと時間がかかるかなと思って宅急便にしたけど、翌日には発送されていたのでメール便でよかったかも。
NFCタグに書き込むURLは、プロフィールページを新しく作ってそのURLにしてみた。
2026-05-17 (Sun) [長年日記]
_ オイル・ブレーキフルード・クーラント交換
Side-Bでオイル・ブレーキフルード・クーラントの交換をしてもらった。
ネットでエンジンオイルの値上がりの話が色々出てるみたいだけど、NUTECで2,400円/Lだったのでとくに値上げはしてなさそう(供給の話を聞こうと思ったけど忘れていた)。
走行距離: 21,180km
2026-04-25 (Sat) [長年日記]
_ RubyKaigi 2026に参加した
DAY 0
前日に地震があったのでその日の移動じゃなくてよかったと思っていたら、管制システムのトラブルで羽田からの乗り継ぎ便が欠航になってしまって、急遽新幹線で函館まで向かうはめになった。
モノレールの中で慌ててえきねっとの会員登録してeチケットを取ったけど、こういう時にみどりの窓口に並ばなくてよくなったのは便利だねえ。
DAY 1
もりすさんのキーノートいい話だった。最近あまりRubyに入れたい機能ないんだけど何か降って来ないかなあ。
高田さんや金子さんの発表を聞くとparse.yがデフォルトに戻らないかなあと思うけど、PrismもよくできててTextbringerでも便利に使ってるし悩ましい。
ペんさんの発表に出てきたbit-burst algorithmの名前がかっこよかった。こういう車輪の再発明ができるのすごい。
DAY 2
咳さんのトークでTextbringerのデモをしてもらってて、後半のデモ見たらあれ必要だったかなと思ったけど、時間が余っていたのでそういう意味では必要だった。
Stan LoのRDocの話は長年の懸案が解決しつつあって素晴らしい。
コード懇親会ではCRubyのグループのお世話をさせてもらったけど、Macの人が多かったのもありフォローが不十分で申し訳なかった。おおむね楽しんでいただけたようなのはよかった。
DAY 3
高尾くんの発表はスモウルビーを開発しているモチベーションの話がよかったし、原くんの話もわかりやすくて面白かった。ミラーボールの話が伏線だったとは。
まつもとさんのキーノートはvaporwareだと思ってたSpinelが動いてて驚いたけど、まつもとさんはAIが生成したコードをあまり見てないと言っていて、これからの世の中でそういう使い方が主流になるなら別にRubyじゃなくてもいいよなとか複雑な思いで聞いていた。
DAY 4
帰りの便は午後だったので、午前中に少し観光することができた。
北方民族資料館に児玉コレクションのストゥが展示されてて、「ちょっとこわいですね」みたいなコメント(うろ覚え)が付いてたけど、このコレクションの主の児玉作左衛門はアイヌの墓地を掘り起こして人骨や副葬品を収集していたらしいので和人の方がこわい。
ひさしぶりにRX0M2を持って行っていたので結構写真を撮ったけど、きれいな街だった。
今回も楽しかったです。みなさんありがとうございました。















