yumulog

北海道の大学教員/情報科学研究者の日記

Mastodonの連合タイムラインって何?「ローカルユーザ」と「リモートユーザ」の違い

f:id:yumu19:20170410125211j:plain

写真は、内容とは全く関係ありませんが、自宅近くの桜です。キレイですね。

さて、またMastodonネタです。「連合タイムライン」が何なのかわかりにくい、というか理解している人がまだあまりいなさそうなので、その解説です。その前に、「インスタンス」が長いので、この記事では

と呼ぶことにします。

ローカルタイムラインは、自鯖のユーザ全員のトゥートが流れるので、わかりやすいと思います。連合タイムラインはなんなんでしょう?管理者同士が連合を組むと思っている方もいるかもしれませんが、そういう機能はありません。連合タイムラインを理解するために、まずローカルユーザとリモートユーザという概念について説明します。

ローカルユーザとリモートユーザ

鯖管理者しか見ることができないのですが、ユーザ一覧画面があり、そこでは「ローカルユーザ」と「リモートユーザ」に分かれています。

f:id:yumu19:20170416232923p:plain

  • ローカルユーザ:自鯖でユーザ登録したユーザ
  • リモートユーザ:ローカルユーザの誰かがリモートフォローしたユーザ

という違いがありますが、どちらにもidがついています。例えば、 https://mastodon.yumulab.org/@yumu というユーザは、

というユーザID(URLの末尾がID)を持っています。このローカルユーザ、リモートユーザの概念がわかれば

  • ローカルタイムライン = ローカルユーザ全員のタイムライン
  • 連合タイムライン = ローカルユーザ全員 + リモートユーザ全員のタイムライン

という、非常にスッキリした形で理解できるとおもいます。

あとこれは憶測ですが、リモートフォローすると他鯖の人のトゥートが自鯖に飛んで来るようになるため、せっかくなのでこのデータを有効活用しようという思想で生まれた機能な気がします。

国交断絶

Pawooの件で話題になったように、インスタンスが連合を拒否(国交断絶)することがありますが、これはドメインブロック機能として用意されていて管理者が指定することができます。

f:id:yumu19:20170416233043p:plain

この機能の動作まで追いきれてませんが、おそらくそのドメインのユーザに対してリモートフォローできなくなり、すでにリモートユーザとして登録の場合はそのユーザが無効か削除になるのだと思います。

Mastodonインスタンス立てた時にメール設定でハマったこと

f:id:yumu19:20170416170003p:plain

Mastodonが流行ってるので、自分でインスタンス(鯖)を立ててみました。Mastodonというのは超ざっくり言うとオープンソースな分散型Twitterみたいなものです。

いまは特に制限を設けてないので、ご自由に登録してください。私のアカウントは https://mastodon.yumulab.org/@yumu です。

インスタンスを立てるのは、この記事の通り作業すればできます。私は Ubuntu 16.04 LTS on Google Compute Engine だったのですが、docker-composeが使える環境であれば基本的な手順は同じです。

構築自体はスムーズに行ったのですが、メール周りで2点ほどハマったので共有します。

Google Compute Engineがポート587を通さない

メール送信のためにSparkPostというサービスを使用していて、SMTP AUTHを利用してポート587宛に送るのですが、Google Compute Engineでは25,465,587はブロックされているのでした。

SparkPostのサポートページにも “Alternately, port 2525 can be used in environments where port 587 is blocked (such as Google Compute Engine).” ってちゃんと書いてました。

SparkPostのメール上限

立ち上げ時にはちゃんと飛んでいたメールが、ある時から突然飛ばなくなりました。原因は、SparkPostのメール送信上限値に達していたからでした。SparkPostは1日あたりメール5,000通送れるはずで、全然上限に達してないはずだけどなんでだろう?と思ったら、この上限値は、送信元メールアドレスに独自ドメインを設定した場合で、SparkPostのドメイン( sparkpostbox.com )を利用して送信した場合にはもっと少なくなるようです(アカウントで最大50通という情報も見かけましたが、何もしてないのに途中で送信できたりしたので、1日の上限値がある気がします)。SparkPostを利用する場合にはきちんと独自ドメインを設定しましょう。 それにしてもこのエラー、SparkPostのダッシュボードに何か表示してほしかった。。。

メール周りのエラーログはSidekiqで

上記のトラシューのためにコンテナの中を見てみたりしてもどこにログが吐かれているのか全然わからなくて作業が全然進まなかったのですが、メール周りのエラーはSidekiqで見ることができました。 Sideqikは非同期処理のジョブを管理してくれるRuby gemで、インスタンス管理者の人は、ブラウザの設定画面から「ユーザ設定」→「Administration」→「Sidekiq」で管理画面を見ることができます。

f:id:yumu19:20170416170905p:plain

さいごに

CIVIC TECH FORUM 2017「社会インフラとなったオープンソースコミュニティに学ぶコミュニティ運営のコツ」に登壇しました #civictechjp

f:id:yumu19:20170326185410j:plain

2017年3月25日(土)にNagatacho GRIDで開催されたCIVIC TECH FORUM 2017のパネルディスカッション「社会インフラとなったオープンソースコミュニティに学ぶコミュニティ運営のコツ」に登壇しました。登壇者は

の3名です。

セッションに関するTogetterはこちら

セッションの様子はYou Tubeアーカイブされています。(1:20:45〜2:15:45)

グラレコ(グラフィックレコード)での記録もして頂きました。

「メンバーの流動性」「運営資金」「コミュニティの成果」などのトピックについて議論しました。主に「コミュニティ参加者のモチベーション」が軸になって話が展開されていったように思います。

また、セッションでは触れませんでしたが(終わった後に思い出した)、オープンソースコミュニティやコミュニティ運営について知りたい方は、以下の2冊の本がとてもオススメです。

アート・オブ・コミュニティ ―「貢献したい気持ち」を繋げて成果を導くには (THEORY/IN/PRACTICE)

アート・オブ・コミュニティ ―「貢献したい気持ち」を繋げて成果を導くには (THEORY/IN/PRACTICE)

ニコニコ学会βのつくりかた―共創するイベントから未来のコミュニティへ

ニコニコ学会βのつくりかた―共創するイベントから未来のコミュニティへ

ここ数年、コミュニティ運営についていろいろと考えることが多く、運営についてのディスカッションをやりたいと思っていたので、今回お声がけいただいてとても嬉しかったです。1時間のセッションでしたが、このメンバーならあと2〜3時間は語っていられるようなセッションでした。

福島さん、法林さん、コーディネータのまなみん、スタッフの皆さん、来場者の皆さん、ありがとうございました!

Raspberry Pi 3をAmazon Echo化してみた

f:id:yumu19:20170129200806j:plain

週末でRaspberryPi3のAlexa(Amazon Echo)化をやってみました。こんな感じです。

Amazon Voice Service(AVS)という、Amazon Echoのソフトウェアと同等のものが使用できるサービスが公開されています。そのサンプルクライアントがオープンソースで公開されており、それをRaspberry Pi 3にインストールしました。音楽を再生できないなど実機との差異は多少ありますが、Skillのインストールもでき、概ねEchoと同様に動くようです(よくわかってない)。 インストールは、ここの手順に従って進めるだけで数時間でできます。僕は、ProductID = Webで入力したDevice Type ID というのがわかりづらくてちょっとハマり2度インストール作業を行ったので、それがなければインストール自体は1時間くらいでできたと思います。日本語の記事もいくつかあるんですが書かれた時期によって微妙に手順が異なるので、英語ですがこのページよみながら進めるのが良いと思います。

Amazon DeveloperというサイトにログインするためにAmazon.comのアカウントが必要です (Amazon.co.jpAWSアカウントではダメ)。

Raspberry Piを使うと、マイクやスピーカーの設定や、X(GUI)を上げる必要がありモニタかVNC接続が必要だったりといろいろ手間がかかるので、Macでやる方が楽です。 マイクは、USBヘッドセットを使いました。この辺の設定が必要です(たぶん)。

ちなみに、Alexaちょっと触ってみたいという方は、EchosimというWebサービスがあり、Amazon.comのアカウントでログインするだけで使えます。実機が必要なくちょっと試すだけならこれが断然楽です。Skillのインストールもできます。

ほんとはこの後に好きなコマンドを実行するところがやりたかったんですが、Lambdaがよくわからず時間切れ。続きはまた来週やろうと思います。

おわりに

日本だとまだ発売しておらずそれほど話題になっていない Amazon Echo / Alexa ですが、世界的にはもう結構広まり始まってるようです。

参考