🔥

かせいすきー出身のMisskeyの機能を紹介します

2023/12/25に公開

この記事は かせいすきー Advent Calendar 2023 の 最後の記事です。

https://adventar.org/calendars/9658

まずは、謝辞を

かせいすきーアドカレを企画してくださった 黒羽散香さん、ありがとうございます!!そしてエントリーして記事を書いてくださった皆様、ありがとうございます!!!

アドベントカレンダーが最後まで途切れることなく更新され続けるのは、お互いが見知った仲であっても難しいことであり、最後まで走り切れるのは本当に凄いことなんです。ありがとうございます!!!

そもそもMisskeyってどうやって作られているの?火星人にも分かるように説明して

OSSって何?

Misskey というソフトウェアは、最初の発起人(ファウンダー?オーナー?なんて呼べばいいんだろう?)がしゅいろママであり、現在は、数多くの人が、そのソフトウェアの改良に関わっています。

OSSとよく言いますが、OSS とは Open Source SoftWare の略で、ソースコード(プログラムの設計書)が全世界に公開されており、誰でも利用できる状態になっているソフトウェアの事です。

あくまで「誰もが利用できる」だけであり、その著作権はしゅいろママや、Misskey開発チーム(?)が持っているものになります。

Githubが便利

しゅいろママでなくても、Misskey開発チームで無くても、「この機能バグってるよ!」とか「この機能が欲しい!」とか「新しい機能を作ったので入れてほしい!」と言う事が出来ます。

それらのやり取りは、この Github というサイト上で行われています。
https://github.com/misskey-dev/misskey
リンク先は Misskey のリポジトリ(リポジトリ = ソースコード倉庫だと思ってもらえればだいたいあってます)

ここでは、Misskeyの最新のソースコードが公開されているだけでなく、「こういう機能を追加したので採用してほしい」「こういうバグを直しました」という事を提案する機能があります。それがPR(Pull Request) です。

このPull Reqesut は基本的に誰でも提出することができ、かせいすきーの変更も、この機能を用いてしゅいろママを始めMisskey開発チームの方々に「こんなん作ったんですけどどうでしょう…?」という事を伝える事が出来ます。

直接面識が無くても、お話したことが無くても、技術で会話することが出来るのが良いですね。

これを受け取ったしゅいろママや開発チームの皆様は「うーんこれはMisskeyの方針に反するから没」や「このバグ治って助かる。採用」等のアクションが出来ます。

※ もちろん提出するからには、自分の提出した変更がバグってないか、Misskeyの開発ルールに反して無いかを自分で確認するのがマナーです。

かせいすきー産のMisskeyの機能

使われていない機能を削除した

fix(frontend): クライアント設定から13.7.0で削除されたチャット機能に関するサウンド設定を削除

10月4日。初めてのコミット。
色々設定画面を見ていて「チャット…チャットって何だ!?」ってなって聞いてみると、「昔あった」「今はもうない」という話を聞いて「今は無いならこの設定は何?」と尋ねると「わからない」というカスタム絵文字が付いたので、「じゃぁ消してみるか」というのが初めてです。

しかし、この「設定を消す」というのが最初は難しくて

  • どこを消したらいいのかの調査
  • 消して動作がバグらないかどうかの調査
  • どうやって動作確認したらいいかの調査

というのに、まる一日かかりました。

この時点では既に「かせいすきー」という自鯖があったのですが、それとは別に動作確認用の「dev火星」というサーバーを建てました。これもまる一日かかりました。

デザインの修正

fix(frontend): /about#federation のレイアウトが一部崩れているのを修正
Feat(frontend): コントロールパネル「通報」において、通報者にもリンクで飛べるように修正

11月2日。
ある日、管理画面を見ていると、「あれ…?なんかデザイン崩れてるくね…?おま環…?」と思って調べると、あ、かせいすきーだけじゃなくて、「Misskey.io」でも崩れてる!と思って、直しました。

バックエンドの機能を増やしたり直したりする自信は無かったのですが、ちょっとしたデザイン崩れなら多分なんとかできる!と思って、直してみたらこれがまた調査と修正に1日かかりました。(結果1行変更しただけなのに、調査に1日かかるのはよくある事)

しかし、一度やってしまえば、二回目(11月24日)はわりとあっさりで、コントロールパネルで、ユーザーのリンクが張られていない項目にリンクを貼る作業は一瞬で終わりました。

カスタム絵文字のインポートしたときにモデレーションログに残るようにした

fix(backend): カスタム絵文字のインポート時の動作を修正

11月18日。
初めてのバックエンドへのコミットです。
カスタム絵文字の管理に四苦八苦していた時、「カスタム絵文字の追加更新履歴が残ったり残らなかったりする」という事に気が付きました。

結果、「ユーザーが新しくアップロードした物はログが残るけど、インポートした物はログが残らない」という事が判明し、気合で治したのがこのPRです。

「カスタム絵文字を追加する方法によって、実装が違う!」と気が付き、じゃぁ同じにすればいいんじゃね?という方法で直しました。結果、ついでに「同名カスタム絵文字が存在するとエラーにならない」という別のバグも直りました。笑

リアクションの横幅を無制限に出来るオプションを作った

https://github.com/misskey-dev/misskey/pull/12416

11月23日。
顧客が本当に必要だったもの

動作の様子
https://kasei.ski/notes/9mebe4h6ba

元々、かせいすきーではCSSをいじってカスタム絵文字の横幅を無制限にしていたのですが、デフォルトの動作と異なる挙動であり、おそらくしゅいろママの意図した物ではないと思っていたので、本家に提出はしていませんでした。

しかし、「BackspaceKeyが独自でそういうオプションを実現している」と聞いて、じゃぁ多分実現できるんじゃね?と3日くらい頑張った結果がこちらです。

オプションを消したことはありましたが、追加したのは初めてですね。

ジョブキューのデフォルト設定を変更した

Fix(backend): inboxJobPerSecのデフォルト値を16から32に
12月12日。
かせいすきーのユーザーが増え、連合鯖とのやりとりが増えてくると「ジョブキューが詰まる…!」という未だ解決していない課題にぶち当たりました。誰かなんとかしてくれ…

が、色々試した結果、解決はしていないけど、「とりあえずデフォルトの16という数字は少なすぎる」という事は分かったので、それを押し上げるPRを用意しました。

が、対処療法的な対策でしか無く、抜本的な解決はしていないので、何か画期的な進展があれば気になる祭り……

まとめ

Misskeyは最後のインターネットの楽園だと思ってます。Twitterというタダで与えられた物を失ったあの日は、「タダで与えられていたからダメだったんだ」と気が付いた日でもあります。「SNSの民主化」という見出しで記事にされることの多い「分散型SNS」ですが、その本質は、参加者が自分の手で維持していく事にあります。

来年も、かせいすきーを運営しながら「こういう機能あると便利だな」とか「この機能バグってるから直そう」とかを見つけて、少しでも貢献していきたいですね!!!

ありがとうございました!!!

Discussion