一般ユーザーがインスタンス名称と説明文を変更できるマストドンインスタンスを作った (ついでに登録ユーザー数偽装も)

md.distsn.org という異常なマストドンインスタンスがあり、これまでユーザー数偽装メールアドレス不要なユーザー登録ゲストアカウントをやってきた。今回はインスタンスの名称と説明文を一般ユーザーが変更できるようにする。

まず、設定画面の「サイト設定」画面を「管理」から「設定」に移動する。これは /config/navigation.rb をいじればよい。この状態で一般ユーザーが「サイト設定」画面を開くとトップページに飛ばされるので、さらに /app/controllers/admin/settings_controller.rb を変更する。SettingsController クラスは BaseController クラスから派生しており、BaseController クラスには

before_action :require_admin!

という余計なコードが含まれているので、SettingsController クラスを BaseController クラスではなく ApplicationController クラスから派生するようにする。あと、念のため SettingsController クラスに

layout admin

を追記する。これで一般ユーザーが「サイト設定」画面を開くことができるようになった。

ついでに、登録ユーザー数偽装を一般ユーザーに開放してしまおう。カスタム利用規約は使う予定がないので、こいつを潰してユーザー数の設定に転用する。具体的には /app/presenters/instance_presenter.rb を変更するだけだ。

これが何の役に立つのかはまったく不明だが、そもそもマストドンが何かの役に立ったことがあるだろうか?

広告

ゲストアカウントで匿名トゥートできるマストドンインスタンスを作った

md.distsn.org というマストドンインスタンスを運営している。ソースコードからビルドしているので、新機能を作って導入することができる。これまで、ユーザー数偽装メールアドレス不要でユーザー登録をやってきた。今度はゲストアカウントをやっていこう。

ゲストアカウントを運用するには以下が必要である。

  • メールアドレスを変更できない。
  • パスワードを変更できない。
  • アカウントを削除できない。
  • 2段階認証を有効にできない。
  • IPアドレスを取得できない。

まず app/model/account.rb に guest? メソッドを生やす。あとは各所の haml で機能を殺せばよい。メールアドレスとパスワードの変更を殺すアカウントの削除を殺す2段階認証を殺すIPアドレスの表示を殺す。完成。

本当はクライアントサイドではなくサーバーサイドで機能を止める必要がある。まあ手を抜くところは抜いてやっていこう。

guest? メソッドの定義は username == guest || username.include?(__) なので、ユーザー名が guest か、またはアンダーバー2個を含むならば、ゲストアカウントとして動作する。そのため、クソリプ専用ゲストアカウントのようなゲストアカウントを無限に生やすことができる。

メールアドレス不要のマストドンインスタンスを作った

マストドンはメールアドレスを収集するのをやめろという話もありつつ、それを目指したイシューはクローズされてしまい、とりあえずメールアドレス不要でユーザー登録できるインスタンスを作ることにした。

マストドンのログインの機構は Device という異常な名前のライブラリに丸投げされているらしく、Device の内部は絶対にいじりたくないという気持ちがある。なので、データベースをSQLでダイレクトに叩くという野蛮な手法でやっていく。

具体的には

UPDATE users SET confirmed_at = CURRENT_TIMESTAMP WHERE confirmed_at IS NULL;

というSQLを1分間隔くらいで叩き続ける。すると、マストドンはメールアドレスの到達性確認が済んでいるものと誤解して、架空のメールアドレスでもログインできるようになる。これをシェルスクリプトにしたものがあるので、postgres ユーザーの crontab に1分間隔で登録する。-d mastodon_production という部分は環境依存なので、マストドンのために使っているデータベースの名前に書き換える必要がある。

架空の (到達性のない) メールアドレスでも登録できるものの、メールアドレスのバリデーションを通過する必要があるので、メールアドレスのように見える文字列 (alice@example.com など) を使う必要がある。ちなみに、アットマークが入っていればメールアドレスのバリデーションを通るので、idolm@ster あたりの文字列でもアカウントを作ることができる。

世界最大のマストドンインスタンスを作った

世界最大のマストドンインスタンスは Pawoo でも JP でもmastodon.social でもない。分散SNSフォーラム直営インスタンス だ。ユーザー数は500,000。2位のPawoo (284,027)、3位のJP (148,758) を大きく引き離している。

これは何をしているかというと、ソースコードを改造して、API で報告するユーザー数を500,000に固定しているというわけだ。変更は1行だけ。すぐにできる。

どちらかというとインストールバトルが厳しい。公式ドキュメントさくらのVPSで自分のMastodonサーバを最速でつくる方法 を読めばなんとかなる。あと、インストールを始める前に Mailgun に登録 (メールサーバーを用意できるのであれば Mailgun でなくてもよい)  を済ませたほうがよい。

せっかく好きにいじれるインスタンスを手に入れたので、いろいろと変な機能を実装したい。とはいえ、技術書典3 の本を書くので、当分はお預けだ。

登録ユーザー数が多いにもかかわらず荒廃したインスタンスの実例

登録ユーザー数をインスタンスの評価に使うのはもうやめよう から記事を分離しました

マスタベ丼

ドメイン名は masutabedon.com。現在はアクセスできないのでリンクにしない。

最盛期には5,000人を超える登録ユーザー数を誇ったが、業者によるボットがAVの宣伝を流すだけのインスタンスになり、ユーザーによるトゥートはほとんど途絶えた。2017年6月に予告なしに閉鎖された。

マストドン史上最悪のインスタンスとして呼び声高い。

堀江丼

堀江貴文の名前を借りて3,567人のユーザーを集めたものの、記事執筆時点 (2017年7月21日22:17) の流速は 1.5 トゥート/時で 32 位。これは末代メンヘラなどの小規模インスタンスを下回っている。しかも、その流速の大半をボットが占めている。

カブトドン

登録ユーザー数は2,335人を誇るものの、記事執筆時点 (同上) の流速は 0.9 トゥート/時の46位、しかもその大半がボットである。

マストドンを始めたら誰をフォローすべきか?

マストドンでユーザー登録を行うと、誰もフォローしていない状態で始まる。この状態から、フォローすべきユーザーをどのように見つけていけばいいだろうか? マストドン初心者がホントに知りたいのは「Mastodonが楽しめるフォローの方法」 を読むか、分散SNSフォーラムのマストドン推奨ユーザーリスト を参考にするとよい。

マストドンでユーザー登録を行うと、誰もフォローしていない状態で始まる。ローカルタイムラインと連合タイムラインは流れていくが、ホームタイムラインには何も流れてこない。

Twitterではどうか? Twitterにユーザー登録すると、まず大量の推奨ユーザーが表示され、フォローするかどうかを選択させられる。ここで表示される推奨ユーザーはタレントやニュースサイトなどで、率直に言ってあまり興味をそそられるものではない。

ユーザー登録を終えてTwitterを使い始めると「おすすめユーザー」が表示される。これはソーシャルグラフ (フォロー/被フォロー関係) をもとに推薦されるので、これに従ってユーザーをフォローしていくと、「クラスター」というフォロー/被フォロー関係のかたまりができることになる。

マストドンにはTwitterの「おすすめユーザー」に相当する機能は存在しない。Pawoo には独自の「おすすめユーザー」機能があるが、対象となるのはPawooのユーザーのみである。

では、マストドンを新たに始める人は誰をフォローすべきだろうか? この課題に一応の回答を示したのが、マストドン (Mastodon) ユーザなら必ずフォローしたい! アカウント一覧 – 運営・有名人・メディアほか と マストドン初心者がホントに知りたいのは「Mastodonが楽しめるフォローの方法」 である。これらは同じ著者による記事なのだが、前者は後者によって「有名アカウントだからと言ってトゥートが面白いとは限りませんし、アカウントが生きてるかどうかも不明です」と自己批判されている。

マストドンの推奨ユーザーリストを作ろうとする試みは、他にもいくつか存在する。User Localによるもの は、並び順としてフォロワー数を用いている。推奨ユーザーリストとして使われていることを意図しているかどうかは不明だが、MASTODONヤベーやつリスト というリストも作成されたことがある。

私は、マストドンの脱中央集権はユーザーにもあてはまると思っていて、有名人がマストドンではたいして評価されない文化が続いてほしいし、アルファマストドナーもできれば出現してほしくない。そう考えると、有名人のアカウントのリストフォロワー数順のリスト は、推奨ユーザーリストとしては使ってほしくないという気持ちがある。

分散SNSフォーラムの推奨ユーザーリスト は、流速と主観評価をもとに計算した得点でユーザーを評価している。流速も主観評価もそれぞれ固有の弱点がある指標であるが、それらを組み合わせることで、より確実な評価を目指している。

有名人のリストというのは、過去の名声のリストに他ならない。フォロワー数も、過去に大量にフォロワーを獲得するだけの魅力があったとしても、現在それが維持されているとは限らない。単にフォロワーたちがフォローの解除 (リムーブ) を怠っているだけかもしれない。

流速は、過去の蓄積に影響されない、現在の状態のみを評価する指標である。また、過去の名声や知名度にかかわらず、誰でも努力次第で獲得できる指標でもある。もちろん、流速はトゥートの質を担保しないどころか、一般的に量と質は反比例の関係にあるという、固有の弱点がある。分散SNSフォーラムの推奨ユーザーリスト は、主観評価でトゥートの質を評価することで、その弱点を補っている。ただし、主観評価が未評価であるユーザーについては、純粋に流速のみで評価される。

マストドンのインスタンスのリストが乱立しているのに対して、マストドンのユーザーのリストというアイディアは、あまり普及していない。これからマストドンを始める人や、使い始めたけれど誰をフォローしたらいいか分からないという人は、分散SNSフォーラムの推奨ユーザーリスト をはじめ、さまざまな可能性を検討したうえで、快適なホームタイムラインを構築してほしい。

k52.org はインスタンス一覧を 20 ユーザー以上に限定するのをやめろ

k52.org は日本語圏のマストドンのインスタンスの一覧としてはデファクトスタンダードになっている。遅くとも2017年4月19日には存在し、マストドンブームの初期に開設されたことと、豪華なUIから、デファクトスタンダードになったことにはそれ相応の理由があると言える。しかしながら、ユーザー登録数をデフォルトの並び順にしていることはクソである。

さらに、k52.org はインスタンスの登録に「20人以上のユーザがいる」という条件を課している。これは新興インスタンスにとっては圧倒的に不利な条件である。2017年4月の状況であれば、個性的な名目を掲げればそれなりにユーザーを集めることが可能であった。しかしながら、ブームが去った今 (記事執筆は2017年7月) となっては、新興インスタンスがユーザーを集めることは容易ではない。ましてや、k52.org がインスタンス一覧のデファクトスタンダードとなった今では、新興インスタンスが20人のユーザーを集めるまでは、広報の手段が著しく不利になるという悪循環がある。

ようやくユーザーが20人に達し、k52.org への登録を果たしたときには、すでにユーザーのトゥートが停止していた例も少なくない。

  • mstdn.hanabi-life.net は7月19日にユーザー数 20 で登録されたものの、5月27日に事実上トゥートが途絶えている。
  • xmstdn.com は7月19日にユーザー数 20 で登録されたものの、6月12日にトゥートが途絶えている。
  • mstdn.web4u.jp は7月19日にユーザー数 23 で登録されたものの、4月20日にトゥートが途絶えている。
  • mastodon.maromaro.co.jp は7月18日にユーザー数 25 で登録されたものの、6月30日にトゥートが途絶えている。
  • animefun.jp は7月11日にユーザー数 42 で登録されたものの、5月26日に事実上トゥートが途絶えている。

これとは別に、k52.org に登録されることを目的にユーザー数を水増ししているインスタンスも出現している。「君の名は。」非公式 マストドン は7月21日にユーザー数 22 で k52.org に登録された。しかし、「「君の名は。」Twitter連携」、「「君の名は。」動画リンク」「映画「君の名は。」公式情報収集」、「「君の名は。」トリビア集」、「「君の名は。」考察・研究・解説」、「「君の名は。」インタビュー記事」などといった細分化された多数のボットを作成することで、ユーザー数を多く見せかけている。ボットを細分化することは情報収集の利便性のために有益であることもあるが、このインスタンスの場合には、k52.org への登録にあわせてボットを作成した疑いが強い。

2017年4月のマストドンブームにおいては、k52.org のリストはマストドンの普及のために大いに貢献した。しかしながら、ブームが去った今、新興インスタンスは20人のユーザーを集めることができずに次々と枯死している。

マストドン (あるいは他の分散SNS) の理念の一つに「脱中央集権」がある。しかしながら、k52.org のリストは以下の4点において中央集権への逆走である。

  1. ユーザーを20人集めるという過酷な条件を新興インスタンスに課したことで、新興インスタンスの成長の芽を摘んだ。
  2. 2017年4月のマストドンブームに乗ってユーザーを集めたインスタンスがリストに載り続け、その後の新興インスタンスにとっては不利な条件であるために、前者のようなインスタンスにとっての既得権が生じた。
  3. 登録ユーザー数をインスタンスの評価に用いたことで、もともとユーザー数の多いインスタンスがさらにユーザーを獲得しがちである。
  4. 最後に、私たちが k52.org というデファクトスタンダードに頼りすぎ、他のリストに目を向けてこなかった。

k52.org は役割を終えた。分散SNSフォーラムの流速順インスタンスリストを使え。