マストドンこぼれ話

この記事は Mastodon Advent Calendar 2018 - Adventar の15日の記事です。

はじめましての人ははじめまして。ぐすくまです。今年もアドベントカレンダーを書かせてもらいます。

今年はなんだかんだで、MastodonMeetupを開催したり鯖缶工場を立ち上げたりTooterminalをv2.0にしたり、我ながらいろいろマストドンで活動してきたのかなって思ってます。

今日は、これまでアドベントカレンダーに載せられた記事の中から一部をピックアップしつつ、一年であったことをこぼれ話としてまとめてみました。

記事をピックアップするなら最後の方に枠を取っとけばよかったと思ったりしたりしなかったりしますが。忘れましょう。忘年です。年を忘れるお年頃です。(呆)

鯖缶工場について

Amemiya.workができるまで(前編) - 海ミハ車両区

正直勢いに乗って用意したDiscordサーバにこれだけ多くの人が食いついてもらえるとは思っていませんでした。

鯖缶工場ブランド(自分でこう書くのもちょっとアレですが、)の一応僕の中にある理念というか目的というかどういうふうになって欲しいかみたいなものはあって

  1. 分散SNSを構築運用する上で必要な知識・ノウハウ・トラブル対応・最新情報等の共有
  2. 分散SNSの普及を促すための新規参入を受け入れやすくする雰囲気づくり
  3. 分散SNSの構築を通した新たな技術者の育成

…が、出来たらいいなぁ(遠い目)。みたいなことを考えています。
なんかこう書くと、大げさだなぁって感じするのであまり今まで明言してませんでしたが。

僕としては特に2と3を推していきたいんです。

Twitterみたいな営利目的のサービスがユーザー数を増やしたいのは、当然収入を増やすためのものです。分散SNSは非営利目的で運用されているインスタンスが多いので、収入は(維持費を別として)それほど強く求められていません。

分散SNSが普及することでなんのメリットが有るかという点ですが、単純に連合が盛り上がればTLが賑やかになるという点も上げられます。それ以上に必要だと思っているのは、ユーザ層に厚みを増すことで、いろいろな観点からシステムに対する改善要望が上げられたり、それを修正することが出来る技術者もそれだけ増えるだろうと予測しているからです。

今の所マストドンが最大勢力だと思っているので、ここをきっかけとしていろいろな分散の世界を知ってもらえればなぁと思っています。

ユーザ数が増えれば、それだけ技術者が増えることにもなると予測していますが、眼の前にある技術に興味があってもなかなか踏み出せない人も多数いると思います。その理由として、肝心な取っ掛かりがどこにあるのかわからなかったり、途中で壁にぶつかって自力で解決できなかったりと。。。人によって様々あると思います。

インスタンスを立ち上げて運用開始するのがスタート地点だと思っているので、まずその人達はスタート地点にすらたどり着けていません。正直もったいないです。

なので、せめてものお手伝いとして、スタート地点に立たせてあげられるようにはしたいな。というところがあります。

本来であればちゃんと仕事にして技術料を取る方がいいんですが。残念なことに僕がそこまで金銭に執着していないせいで今の所有料サービスにするつもりがありません。支援者の方々には頭が上がりません。この場をもってお礼をさせていただきます。また、被支援者の方々の中には、何かしらのお礼をしたいとおっしゃられることも度々あります。僕が特に何か要求するわけではないだけで、何かしらのお礼はするべきでしょう。技術的なことで何かしらの支援を返せるようであれば(僕個人としては)それがいいと思いますし、金銭的な支援で返すのでももちろん構いません。そこは直接交渉してみてください。

MastodonMeetupについて

Mastodon Meetup at Tokyo スガオ振り返りノートNo.0 - HKsugao’s blog

これもなんとなく勢いで開催したような気がしなくもないですが、無事に滞りなくイベントを実施し、既にフォローしているユーザや新しいつながりも出来て、結果的に良いイベントが実施できたんじゃないかと思っています。

終わった後なので言ってしまうと、運営メンバーの多くは「開催するけど何を目的とするのかはっきりイメージできない」という雰囲気でした。

僕の中には、前項で挙げた3つの理念というか目的というかどういうふうになって欲しいかみたいなものが常に頭の中に存在するのでそれをイメージしていました。ただこれはあくまで僕個人の思想なので、できれば他のメンバーの意見を汲み取りたかったので、できるだけ押し付けないように控えていました。開催時期が近づいてきたので少し押しを強くはしました。いまこうやって振り返ってみると、押し付けない押し付けをしていたかもしれないと思うところもあるので、次回があったらもうちょっとやり方を工夫してみようと思います。

次回開催は未定ですが、全くの白紙ではないと思っています。とはいえ何も決まってないです。ちょうど明日、今回の運営メンバーで打ち上げを兼ねた忘年会を行う予定なので、もしかしたら動きはあるかもですね。今回のイベントに興味をもった方がいたら気軽に声をかけてください。手伝ってくれる人が多ければこちらとしても動きやすいです。お待ちしています。

エンジニアとして見たマストドン

インフラ視点

おひとりさまインスタンスにおけるMastodonの環境整備 - Komittee Express
[Mastodon][AdventCalender] Mastodonは「きっかけ」 | WWW.BLUECORE.NET

今の職場で引き受けている案件は開発ですが、一応インフラエンジニアの案件を引き受ける会社に属しているので僕の考え方としてはインフラ寄りです。設計書はパラメータシートをすべて埋めないと気がすまないですし、NW構成図も物理論理分けて少しでも違ったら原因理由を問い合わせたくなるタイプの人間です。なのでこういう構成図を見るとかなり安心します。

研修期間に先輩エンジニアに対し「技術を身につけるためにどういうことをしていますか」と質問をしたことがあります。「自分でサービスを運用して、他の人に使ってもらうこと」と返答が来ました。それに倣って何かサービスを立ち上げたいとは思っていたけれど、なかなか自分が欲しいと思うサービスが見つからず、なあなあにしたまま数年経ちました。

マストドンを始めてからしばらく後、これも勢いでAbyss.fun を立ち上げたのが、他人に使ってもらって自分で運用する初めてのサービスとなりました。(既に初級エンジニアから抜け出して人並みの仕事はできるように要求される歳になってしまったので今更感はあります) 今まで請け負った業務のノウハウを、どのように組み合わせて安定したサービスを運用するか、考えるのはやはり楽しいですね。僕もマストドンはきっかけだったと思います。

アプリケーション視点

イワテドンの近況、およびマストドンクライアント開発のすすめ - aquarlaのブログ

マストドンがTwitterを強く意識しているおかげもあり、似た感じのAPIが充実しているのがいい感じですね。
自由にクライアント作れるのはいいんですが、やはり利益になりにくい現状では開発に対するモチベーションもなかなか上がらないですよね。アップデートが滞っている物も多いです。

アプリケーション開発がなかなか浸透しない理由はいくつかあると思っていますが、簡潔にまとめると「ゼロからクライアント開発をするのはとても大変」だからだと思います。

OAuth2認証を必要としたちょっとしたWebサービスを開発するだけなら簡単にできます。利用するAPIは限られていてブラウザに表示したい内容もサービスに沿った機能分だけ用意すればいいからです。クライアント開発になるとそれはとても難しくなります。投稿画面、TL表示くらいなら簡単にできるでしょう。それでは使いものにならないので他の一通りの機能をすべて盛り込まなければなりません。fab/boost、リプライ機能(誰にメンションを投げるか判定するのが難しい)、画像アップロード、CWやNSFW、Webクライアントの場合は絵文字ピッカーも追加できるとかなり使いやすくなるでしょう。プロフィールページやfollowing/follower/mute/blockなどのアカウントリストも表示する必要があると思います。普段何気なく使ってるクライアントですが、皆さんが想像する以上に面倒な部分が多いです。

僕としてもクライアント開発者は増えてほしいと思っていますが、これだけの機能を全て盛り込めるような人材はかなり限られてしまいます。よっぽどアプリ開発自体に興味をがある人か、自分の作品に強いアイデンティティを見出して大事にすることができる人くらいでないと難しいと思います。ちなみに、インフラエンジニアしか使えないだろうみたいなWebクライアント Tooterminal を日曜プログラミングしてる僕は後者の人間です。

じゃあクライアント開発者はこのまま増えないのかと問われれば、僕の意見としては、増えるかどうかは半々の確率だと思ってます。そして現状ではいつまで経っても開発者は増えず、増やそうとするには開発に対する考え方を改めさせることが必要です。

先程も書いたように、すべての機能を実装するにはとても長い開発期間が必要になります。僕が以前Tooterminal2(仮)をゼロベースで作り直そうとした際は3-4ヶ月くらいかけて、ギリギリリリースできるかな、の一歩手前ぐらいまでできました(結局致命的な不具合が解消されず見送ることになりました…顛末はこちらから)

すべてを作ろうとするのではなく、一部を改造できるクライアント開発者が増えてください。分散SNSサービスを導入するのにマストドンを選択し、改造するのと同じです。すべてを作ろうと思うから敷居が高くなるのであって、改造するだけでも立派なクライアント開発者です。たまにTLでクライアント開発者が増えてほしいみたいなことを目にすることはありますが、それらの意見はすべて「ゼロベースから作って欲しい」と無茶を押し付けているようにも見えてあまり好ましくないと思っています。

この流れが続くのであれば開発者は増えないでしょう。それよりも、既存のプロジェクトをフォークして、自分なりの改造をしてみる流れを作ることをおすすめします。いくつかのクライアントアプリはソースコードが公開されていますので、それを育てる方向に進んでいくといいのではないでしょうか。 (とはいえモバイルアプリは何故かソースコードを公開していない物が多いです。それに関しては墓場先生もたいへんご立腹の様子です)

全体を通してのまとめ

去年のアドベントカレンダーが、考察して発信することを重視していました。文章や脈絡がおかしな部分が多かったので、今回はもうちょっと保守的に、自分なりにわかりやすく書くよう心がけました。少しは読みやすくなってるといいなぁ。

来年は来年で、多分何かあるかもしれないし何もないかもしれない。その時はその時で楽しいマストドンができるといいですね。それでは皆さん良いお年を。

明日はS.H.さんの記事です。