self-hosted mastodon に入れたパッチを振り返る

この記事は Fediverse Advent Calendar 2024 の4日目の記事です。

私の self-hosted mastodon ( social.genya0407.link ) に入れたパッチを振り返っていこうと思います。

全差分

upstream との差分は以下の通りです。

Comparing mastodon:v4.3.1...genya0407:v4.3.1-genya0407-4 · mastodon/mastodon · GitHub

40ファイル程度、900行にも満たない程度の差分ですし、その中の500行ぐらいはテストなので、実質的には400行程度のパッチということになります。

パッチ

docker image をビルドするための workflow

upstream にも docker image をビルドするための workflow がありますが、そちらは arm64 用のイメージのビルドが遅いです*1

この問題を解決するために、

という感じで image をビルドするようにしています。

これにより、ビルドの所要時間が 1h45m から 8m まで短縮されました。

絵文字リアクション

fedibird や misskey や kmyblue から飛んでくる絵文字リアクションを認識するために以下のパッチを当てています

かなり富豪的な実装であり、たまにうまく動かないこともあるんですが、リロードすると大体見えるのでヨシとしています。

全文検索

mastodon全文検索は elasticsearch を利用する都合上、多くのマシンリソースを消費することが予想されたので、代替となる検索機能を実装しています。

詳しくは以下を参照のこと

www.docswell.com

スパムブロック

鳩の方から頂いた例のパッチを当てています。 コードは略。

その他細かいやつ

  • デバッグ用のログ出力処理の追加
  • Open Telemetry 関連 gem のアップデート
  • Open Telemetry のトレースの追加
  • youtu.be のリンクが OGP 展開されるようにするやつ
  • 投稿の引用をうまいこと表示できるようにするやつ

まとめ

social.genya0407.link に入っているパッチを振り返りました。 みなさんのサーバーに入っているパッチも教えてください!

*1:github hosted runner には x86 のマシンしかなく、arm64 用のビルドは qemu で行われるため

2024年11月を振り返る

アドベントカレンダーの季節に備えて早めの投稿です。

阿蘇旅行

阿蘇はいいぞ。また行きたい。

dawn.hateblo.jp

「地面師たち」を見た

www.netflix.com

「地面師たち」ネタがわかるようになりました。

「文化はいかに情動をつくるのか――人と人のあいだの心理学」を読んだ

発達心理学じゃない方の「心理学」の本でありつつ、グループダイナミクスっぽい題材の本だった。 内容も面白かったんだけど、ちょいちょいパワーのある下りがあって好きでした。

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

「デス・ストランディング」をやっている

夜な夜なデス・ストランディングをプレイしている。

www.playstation.com

そろそろ終盤という感じです。クリアしたらブログを書きたい。

漫画版ナウシカを読んだ

映画版と全然違う話じゃん...と思いながら読んでいた。

ヒドラの造形が怖すぎて怖かったです。

サイクリング

近場でサクッと乗るというのをやっているが割と良い。 代々木公園や昭和記念公園に行くなどしました。

多摩時代の感覚が抜けておらず、昭和記念公園はサクッと行って帰れる距離だと思っていたが、実は代々木公園よりも遠くてびっくりした。

紅葉の昭和記念公園

Mastodon にこのブログ記事を投稿すると genya0407 のアカウントが表示されるようにした

こんな感じです。

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

この辺を参考にさせていただきました。

今月のまとめ

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

阿蘇旅行に行った

熊本は阿蘇に旅行に行った。

移動

まずは阿蘇くまもと空港まで飛行機で移動した。

阿蘇くまもと空港 オフィシャルサイト

そこから JR 豊肥本線阿蘇駅へ向かった。

僕が乗った区間ディーゼル動力?で運行していたようだった。

平地からカルデラ内に入る際に標高を稼ぐためのスイッチバックが行われ、若干の感動があった。

温泉

宿にチェックインした後、近くにあるこの温泉施設を利用した。

阿蘇坊中温泉 夢の湯 (ぼうちゅうおんせん ゆめのゆ)

  • 安い(バスタオルを借りても600円)
  • 空いてる
  • 露天・サウナあり
  • 源泉掛け流し

ということで非常に良かった。

主に地元の方が利用するものなのかなという気もしたが、同じ宿に泊まっている外国人観光客と思しき人々もちらほら見受けられた。

宿に湯船がなかったということもあり、この温泉施設には毎日通うことになる。

パノラマサイクル

二日目に以下のレンタサイクルサービスを利用した。

パノラマサイクル - CLAMP クランプ

レンタルした電動自転車

このサービスのすごいところは、阿蘇山の中腹まで自動車で連れて行ってくれるということだ。

つまり、坂道を登る労力を払うことなく、山道を自転車で駆け下りることができる。

道沿いの草原に放牧されている牛におもむろにエンカウントしたりする

阿蘇山を降り切ったあとはこういう田舎道を1時間ぐらい走って返却場所に行く必要があるがそれも楽しい

非常に体験が良かったので、阿蘇に行かれる方にはご利用をオススメしたい。

ただし、自動車と同じ道路を走ることになるため、ある程度ロードバイク等での街乗りに慣れている方でないとちょっと大変な思いをするかもしれない。

草千里ヶ浜

草千里ヶ浜 | 観光スポット | 【公式】熊本県観光サイト もっと、もーっと!くまもっと。

平地に水溜まりがある。夕方に行くと馬が放牧されていたりするらしい。

日中の馬は放牧されておらず、柵の中にいたり縄で繋がれていたり乗馬体験に駆り出されていたりする

謎のオブジェクト。馬の水飲み場だったりするんですかね?

だだっ広くて気持ちが良かった。

阿蘇火山博物館

阿蘇火山博物館は、草千里ヶ浜のすぐ横にある。

阿蘇火山博物館 | 観光スポット | 【公式】熊本県観光サイト もっと、もーっと!くまもっと。

それほど豪華な博物館というわけではなかったが、展示の内容が面白くて見入ってしまった。 学会のポスター発表みたいなのが展示されているようなイメージに近いかもしれない。 地学を勉強したくなった。

写真撮影が禁止だったので写真はないです。

阿蘇神社

阿蘇山を降り切ったあと、レンタサイクルの返却場所に向かう道すがら阿蘇神社に行った。

阿蘇神社 - 全国に約500社ある「阿蘇神社」の総本社です

レンタサイクルの返却時刻が迫っていたためサラッと見ることしかできなかったが、参道?に土産物屋や食事処がたくさんあり、活気があって良かった。

すごい勢いで出てくる手水

参道の脇道にいたくまモン

宿近辺の散歩

三日目の朝は予定よりも早く起床してしまったので、近所にある「年の神水源」まで散歩した。

https://maps.app.goo.gl/GqxmfqJN8hWh1Jvz7

道中は見渡す限り田んぼの田舎道という感じで、朝ということもあり空気が澄んでいて非常に気持ちよかった。

用水路的なところから湯気が出ていたが、温泉だろうか?

目的地である水源はこんな感じでした。

ニ辺塚城跡

レンタカーを借りたあと、ニ辺塚城跡に向かった。

https://maps.app.goo.gl/thh4d9Vx5JR2xa2g8

有名な観光地でもなんでもないが、近くにあったので時間潰しがてら登ってみようと思ったのだった。 しかし、想定していた以上に大変な道のりだった。

これを登る

まずはこのような田舎道を歩いて麓まで到達する必要がある

登り切るとこのような景色があります。

阿蘇カルデラ内には広大な田んぼが広がっているということが分かるのではないでしょうか。

パラグライダーの体験をしている一団もいました。

乗馬

人生初となる乗馬を体験しました。

阿蘇ハイランド乗馬クラブ【公式】 | Aso Highland Riding Club

感想

  • 馬の迫力は結構すごい(デカい)
  • 馬を操縦するのはゲーム内で乗り物を操る感覚に近く、楽しい
    • 個体の性格、機嫌、乗り主との駆け引きみたいなものあった(道草を食おうとする馬を制する等)
  • インストラクターのお姉さんの喋りがよく、楽しめた

デス・ストランディングに馬が出たら楽しかろう、みたいな謎のことを考えていました。

乗った馬の近影です

ドライブ

乗馬をしたあとは、山道をレンタカーでドライブした。

このような道を走り抜けるわけです。

基本的に景色はずっといい。

途中、大観峰に立ち寄った。

大観峰 | 観光スポット | 【公式】熊本県観光サイト もっと、もーっと!くまもっと。

こちらにもパラグライダーをしている人はいたが、当然ながらニ辺塚城跡で遭遇したそれとはスケールが全く違っていた。

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

白川水源

ドライブの目的地は白川水源としていた。

白川水源|スポット情報|みなみあそ info

写真ではわからないと思うが、水が湧いている様子が見えて楽しいです

近くにある喫茶店でコーヒーとアイスをいただきました。

お冷が白川水源の水ということだった

帰宅

はい

お土産を買いすぎたが、このくまモン袋のおかげでどうにかなった。

雑感

ひたすら移動をしている旅だったという感じはある。移動は楽しい。

大満足の旅行だったが、ほとんど阿蘇山の北側しか回れてないので、今度行く時は南阿蘇に行ってみようと思います。

その他雑多なこと、写真など

宿の近くにあったラーメン屋の豚骨ラーメンが美味しかった。

https://maps.app.goo.gl/pNrPgL75SZMdpJ6VA

阿蘇火山博物館の入り口にあったやつ。 トイレ維持のための寄付金を募るものだが、単なる募金箱ではなく、硬貨を入れると回転しながら落ちていくようになっており楽しい。

宿で出た朝食ボックス的なやつ。美味しいんだけど量が多すぎて苦しかった。

阿蘇駅前のロータリーにあるウソップ像。 日中はいつ見ても観光客が列をなして写真を撮っていたので、ワンピースの凄さを感じた。

何回乗っても飛行機は楽しい。

羽田空港

2024年10月を振り返る

旅行に行っていた関係で遅れています。

デス・ストランディングをプレイ

www.playstation.com

むかし途中までやって投げてしまっていたのだけど再開した。思った以上に楽しんでいる。 まだクリアしてないです。

Kaigi on Rails 2024 に参加

dawn.hateblo.jp

Aiの遺電子を読んだ

面白かった。

AI・ロボット・ヒューマノイドを全て別のものとして登場させることで、よくありのロボットものともちょっと違う物語になっているのが仕掛けとして良いと思った。 その中でも特に「ヒューマノイド」は、ブラックボックスだけど介入度合いが人間よりも高いという設定になっており、そこに絡めていろんなネタをやれるのがすごい。

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

読んだ後に思ったんだけど、小学生の時に星新一を貪るように読んでいたというのもあり、自分は短編SF結構好きなのかもと思った。 (星新一はSFではないが)

短編 SF でいくと「アフター 0」も結構好きで、オススメです。

mastodon を v4.3.0 に追従した

コンフリクトしすぎて血の涙を流した。

Cherry-pick all custom features into v4.3.0 by genya0407 · Pull Request #39 · genya0407/mastodon · GitHub

feather for Mastodon

Mastodon のクライアントアプリとして feather for Mastodon を使い始めた。課金してます。

デザインも割と好きな感じだし欲しい機能全部あるので良い。

mastodon の docker image をビルドする用に self-hosted runner を建てた

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

とにかくビルドが速くなった。

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

↑本当でした

あと QEMU 使わなくて良いのでビルド用の workflow がめっちゃシンプルになって良い。

Quine 完全に理解した

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

こちらのブログがオススメです。

クワインの書き方【自分自身を表示するプログラム】 - TechFULの中の人

今月のまとめ

Post by @genya0407@social.genya0407.link
View on Mastodon
social.genya0407.link

Kaigi on Rails 2024 に参加した

kaigionrails.org

端的に行きます

心に響いた講演集

Rails way

今年の Kaigi on Rails には "Rails way" に関する講演が多かったように思う。

僕が聴講した以下の三つの講演は、僕の受け取り方としてはどれも "Rails way" に関するものだった。

数年前に僕が Rails を始めた頃は、如何に Rails にサービス層を導入するか、ユースケース層を導入するか、みたいな議論が盛んだった(と思う)のを考えると隔世の感がある。

技術の螺旋みたいな話で、その風潮に対する揺り戻しなのかもしれない。

スポンサーブース

昨年の Kaigi on Rails では、準備不足によりスポンサーブースにあんまり出し物っぽいものを置けなかった。 その反省を受け、今年はちゃんと準備して行って、予想以上に盛り上がったので非常に嬉しかった。

雑感

なんにせよカンファレンスというものは様々な刺激を受けることができる場であるので、参加して良かったと思う。 一方で、社内にコミュニケーションが閉じてしまったきらいはあり、ちょっともったいなかった。 ある面でそれは狙ったことではあったが、次のカンファレンス参加ではその辺りのバランスをもっといい感じにしたいなと思いました。