Mastodonの開発活動について - noellabo's tech blog https://blog.noellabo.jp/entry/2020/12/26/222731
Fediverse Advent Calendar 2020(第一会場)の25日目の記事を公開しました。特に面白いことは思いつかなかったので、ざっとこんなことしてますよ、という紹介記事になってます。
ところで、もう26日の夜遅い時間ですね! 主催が盛大に遅刻してるのマズイですね! すまねぇ……
Mastodonの開発活動について - noellabo's tech blog https://blog.noellabo.jp/entry/2020/12/26/222731
Fediverse Advent Calendar 2020(第一会場)の25日目の記事を公開しました。特に面白いことは思いつかなかったので、ざっとこんなことしてますよ、という紹介記事になってます。
ところで、もう26日の夜遅い時間ですね! 主催が盛大に遅刻してるのマズイですね! すまねぇ……
(本文から消した部分ぶら下げとく)4月13日の夜にmstdn.jpからメールアドレス確認のメールを受け取っていますが、これはDB廃棄前のヤツですね。さくらのクラウドに移転された4月15日の昼過ぎに再度認証メールを受け取っているので、ここが最初かなと思います。今日はあれから、1,350日目にあたるようです。
mstdn.jpに登録できたその日に、自分でDTPテーマのサーバを立てようと目論見はじめ、4月19日にdtp-mstdn.jpドメインを取得してさくらのスタートアップスクリプトでDTP鯖を立ち上げています。この時のMastodonはv1.2でした。色々準備を行って、実際にサーバを一般公開したのは21日になってからでした。
公開した4月21日には、さっそく独自改造の道を歩み始めます。投稿した画像のICCプロファイルを削除していたのが気に入らなかったので、ICCプロファイルを保持するように改造しました。もっとも、この時点では本体コードに手を入れることはせず、呼び出されるconvertコマンド(ImageMagick)に与えられる引数を置き換えるperlスクリプトを挟んだだけでした。
本体コードに手を入れた本格的な改造サーバになったのは、翌年の2018年2月4日、theboss.techの独自機能である「ローカル TL をデフォルトタグ TL に置き換える」をいただいてマージしたところからです。BOSSによる解説と導入の為の記事があったため、見よう見まねでなんとか対応したのを覚えています。
設置から1年後の2018年4月21日、今度はbiwakodon.comから「引用BT」機能をいただいてマージします。板橋丼のげんちゃんがオリジナル制作者ですが、それをwakinさんが改良し、マージしやすい形で公表してくれたことが大きいです。ただ、BOSSのコードと衝突するところがあるので、両方のコードをマージしてちゃんと動くようにするのに苦労した覚えがあります。
2018年5月11日に、さくらのクラウドから、KAGOYA CLOUD/2に移転させています。これもたしかBOSSの真似をしたのではなかったかと思います。さくらのクラウドは一般的なVPSサーバより若干高めでオーバースペックでしたし、CentOSだったのでMastodonの本体バージョンアップのために環境を整えるのが大変だったということもあります。とはいえ、スタートアップスクリプトではなく自分で一からサーバセットアップをして、これまでのデータを移転しなければならなかったので、相応の苦労があった気がします。詳細はすっかり忘れましたがw
長くなるので以降は省略しますが、そうやって、先人の知恵を借り、見よう見まねでなんとか動かしていたのが、最初の頃の状況でした。まだこの頃は、RubyやJavaScriptの経験がほとんど無かったし、MySQLは使っていたけどPostgreSQLは全く初めてで、gitやGithubもさっぱりわからないし、よくやっていたなと思います。そんな素人が、Mastodonのソースコードにかじりつき、少しずつコードをいじりながら、RubyやRuby on Rails、ReactやReduxを学び、少しずつ意味が理解できるようになっていったワケです。
senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.