2020-08-05 23:43:59 にくはら🍴の投稿 abagv@gochisou.photo
icon

このアカウントは、notestockで公開設定になっていません。

icon

Yure

2020-08-05 22:25:34 :2dx_ap7::beer_suiyoneko::thinking_squid::2dx_ap991::gc_fessup::2dx_ap6::korsk::pineame:の投稿 Mitsouko@mstdn.f72u.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

しゅいろのチャンネルの取り組みでちょっとホットになってるから、前に書いたグループの話をブーストしておくね。

2020-07-17 00:53:52 のえるの投稿 noellabo@fedibird.com
icon

グループの話(1/5)

まず、ActivityPubの概要から。

Mastodon、Pleroma、Misskeyは、それぞれまったく異なるプログラムですが、ActivityPubというプロトコルに従ってやりとりすることで、相互接続を実現しています。

ActivityPubをざっくり言うと、Actorが別のActorに対してActivityを送信し、相互作用する仕組みです。

Actorはユーザーのアカウントに相当するものです。通常のユーザーはPerson、botはServiceという種類のActorとして表現されます。

Activityは『投稿を・作った』とか『投稿を・気に入った』『Actorを・フォローする』というようなメッセージです。

Actorは、受け取ったActivity、送ったActivity、フォローしているActor、フォローされているActorなどのコレクションを保持しています。

・ActorとActorがやりとりする
・ActorにPersonやServiceなどの種類がある
・Activityを送り合う
・フォロワーなどのコレクションを保持している

2020-07-17 00:54:07 のえるの投稿 noellabo@fedibird.com
icon

グループの話(2/5)

Actor同士が直接やりとりする投稿は、当事者以外、他の人には見えません。

そこで、Activityの宛先として、Publicコレクションという特殊な宛先を指定することができるようになっており、各サーバプログラムでは、これを誰にでも見えるようにしたり、連合タイムラインやローカルタイムラインに流して表示しています。

フォロワー限定やダイレクトが基本形で、公開や未収載が特殊な公開範囲だということです。

また、連合タイムラインやローカルタイムラインはユーザーを探すための場所ですよ、と説明されるのは、こういった事情があるためです。

公開投稿をどのように扱うか(見せ方を工夫するか)は、サーバ次第です。

なお、Activityの宛先には、メールと同様にToとCcがあります。一般に、PublicをToに指定したものが公開投稿、PublicをCcに指定したものが未収載として扱われています。

ここまで、なんとなくつかめましたでしょうか?

2020-07-17 00:54:18 のえるの投稿 noellabo@fedibird.com
icon

グループの話(3/5)

グループは、ActivityPubによるユーザーの集合の表現で、コミュニティやチャンネルを実現することができる仕組みとして利用できます。

Actorの種類としてGroupが定義されているので、これを用います。

Group Actorを宛先とすることで、Groupに参加しているActorへ間接的にActivityを送ることができます。

(ただし、第三者となるActorがActivityを転送するにはJSON-LD署名が必要で、現実的には投稿と削除ぐらいしか対応していない状況です)

Groupのメンバーを表現する方法はいろいろ考えられますが、Mastodonなどの既存実装との互換性を考えると、Groupのフォロワーをメンバーと見做す実装が現実的であるため、私はそれを採用しています。

2020-07-17 00:54:30 のえるの投稿 noellabo@fedibird.com
icon

グループの話(4/5)

投稿するActorがGroupへメンションすると、Group Actorがそれを、メンバー(自身のフォロワー)へAnnouce Activityで転送します。これが基本形です。私はこれを、アクティブ方式と呼んでいます。

もう一つ、Group Actorからフォローバックして、ハッシュタグなど特定の条件が揃った場合にブーストする方式も可能で、私はこれをパッシブ方式と呼んでいます。

パッシブ方式は、無意味に多くの投稿をGroupに配送してしまう弱点がありますが、メンションせずにグループに投稿を流せるので、利便性はなかなかのものです。

これらは、既存のMastodonなどのサーバでも十分に機能しますが、サポートする機能を実装することで、より効率良く、使いやすくすることが可能です。

このあたりは、色々とアイデアがあって進めているところです。

2020-07-17 00:54:43 のえるの投稿 noellabo@fedibird.com
icon

グループの話(5/5)

グループは、連合する、サーバをまたぐコミュニティの構築に活用することができます。

ローカルタイムラインがコミュニティとして利用されてきていますが、その弱点を補うことができます。

Group Actorをホストしているサーバにメンバー管理と配送を依存していますが、投稿は参加者のサーバから発信され、参加者のサーバに配送されて保存されていくので、容易には失われません。

また、引っ越し機能でフォロワーを移し替えることで、コミュニティホストを引っ越すことすら可能です。

チャンネルに用いることもできます。これは、自身の投稿のうち、特定の内容だけをフォローしたいユーザーニーズに応え、投稿する側も配送先を使い分けることができるようになります。

複数アカウントの使い分けと比べ、リプライやお気に入り・ブーストが単一のアカウントにフィードバックされたり、メインアカウントのフォロワーに対して全てをまとめて配送できたりするメリットがあります。マルチポストが防げます。

こちらのらりおさんの記事をぜひ。これを実現可能なものです。
blog.cardina1.red/2018/02/25/s

Web site image
ぼくのかんがえたさいきょうの SNS (のメモ)
icon

そろそろ良心を戻しておくか……

icon

Fedibirdのグループは、サーバと分離したコミュニティを、いかに連合する仕組みの中に作るか、ということなので、方向性はちょっと違うとは思うんだけどね。

icon

Mastodonの基本的な構成図です。

Mastodonをシンプルに構成すると、図のような構成になります。

一番手前にNginxを置いて、バックエンド側の、WebUIとAPI(Puma)、ストリーミング(Node)、メディアファイル(Storage)へのアクセスを中継します。

データベース(PostgreSQL)へ、Puma、Node、Sidekiqがそれぞれ接続します。

もう一つのデータベース(Redis)へ、Puma、Node、Sidekiqがそれぞれ接続します。

ローカルファイルシステム(Storage)へは、Puma、Sidekiqが読み書きを行い、Nginxが読み出してユーザーのリクエストに応えます。

PumaとSidekiqは、インストールしたrubyの環境で実行されます。

Nodeは、node.js v12〜の環境で実行されます。

Pumaは、ユーザーのブラウザに初期値とJavaScriptのコード(WebUI)を渡して、それ以降はAPI経由でやりとりします。

この他、ImageMagickやFFmpegがメディアの変換に使われています。

Attach image
icon

Fedibirdの現在の構成図です。

基本的な構成と比較していきます。

マシンの台数を増やしています。同じ構成のサーバを2台置いて、負荷の分散・処理能力の増強、片方が落ちてもサービスが停止しないように構成しています。

データベース(PostgreSQLとRedis)は、2台が同じものを参照する必要があるので、別のマシンに分けて実行しています。

Storageは、ローカルファイルシステムだと両方のマシンから読み書きできないので、外部のオブジェクトストレージ(Amazon S3)に変更しています。

Sidekiqは、キュー毎にプロセスを分離しています。

PostgreSQLへ同時接続するプロセスがどんどん増えていくので、pgbouncerを経由して接続することで、PostgreSQL側の接続数を一定以内に制限し、接続を再利用することで効率化しています。

2台の手前にHAProxyを置いて、外部からは一つのサーバに見えるようにして、2台のサーバに接続を分散させます。

全文検索用にElasticsearchを追加しています。

あとは、二重化したりバックアップする機構です。

Attach image
icon

東京は夜の七時

(朝の5時です)

icon

@kamisuke おはよう、王

2020-08-05 18:48:22 のえるの投稿 noellabo@fedibird.com
icon

オフィス入居! オフィス入居!

icon

せるぶ

icon

さて、ここんとこサボりすぎてるから、今日はがんばんべ

icon

@nonbiri のんびおはよー!

2020-08-06 08:26:50 画眩の投稿 ggagen@pawoo.net
icon

このアカウントは、notestockで公開設定になっていません。

2020-08-06 08:26:55 画眩の投稿 ggagen@pawoo.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

すみれの花のような 僕の友だち

icon

確かに固定、邪魔なんだよねw
はずすか

2020-08-06 08:46:31 銀灰色の投稿 storyyakata@fedibird.com
icon

このアカウントは、notestockで公開設定になっていません。

icon

ところで、こういう構成図は何で描いたら良いんですか。

アテがないので、結局、全部Illustratorで描いちゃうよ。なんでもできるけど、効率が悪いよ。

icon

私がIllustrator使ってるのは、仕事で毎日使っているからです……

icon

Illustrarorはソースコード見られないのでMastodonほどは詳しくわかりませんが、もうかれこれ28年ぐらい付き合っているので……

2020-08-06 10:12:17 Achi@ハトの塒の投稿 achi@achi.masto.host
icon

このアカウントは、notestockで公開設定になっていません。

2020-07-02 09:51:50 くろま@(フェディバのすがた):verify:の投稿 kuloma@fedibird.com
icon

このアカウントは、notestockで公開設定になっていません。

icon

@kuloma かわいい(かわいい)

icon

スピーカー キズついた時
思い出した
深く響く 力強いメロディを

icon

「サウンド」 song by 初音ミク
nicovideo.jp/watch/sm1583280

bakerさんの2007年の曲。

Web site image
「サウンド」 song by 初音ミク
2020-08-06 11:59:26 ぽぷんじゃ(サブ垢)の投稿 popn_ja@popon.pptdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

icon

めいめい、また連合に室外機を置いて熱風を流そうとしてるな?

2020-08-06 12:04:37 めいめいの投稿 mei23@misskey.m544.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

あっついな、しかし……

2020-08-06 12:08:06 めいめいの投稿 mei23@misskey.m544.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

それはアカンwww

icon

強がりながら 他人を拒んで
見知らぬ場所 壊れた時計

icon

@syuilo Mastodonで使われてるね!

icon

Gmailになんか届いてるな……しばらく見なかったことにしよう……

Attach image
2020-08-06 12:32:10 酸性雨の投稿 acid_rain@amefur.asia
icon

このアカウントは、notestockで公開設定になっていません。

2020-08-06 12:55:09 高咲侑(CV.矢野妃菜喜)✅の投稿 earlgrey9148@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

icon

OK、ジミー。いいだろう。確かに私は以前寄付をした。今度はプラチナバッジをくれるのかい? ……でもまぁ、そういうことではないんだよ。

icon

AVERAGE COFFEE(まぁ、普通かな……)

icon

Parler、なにやら地獄みを感じるが、これは……

2020-08-06 14:06:58 るちかアーカイブの投稿 ebi@misskey.io
icon

このアカウントは、notestockで公開設定になっていません。

2020-08-06 13:41:46 金太ωまひえもんの投稿 mahiemon@pawoo.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

たぬき祈祷中……

icon

3kmぐらいだからね

icon

スコッピング用らしいよ

icon

レイバンの爆発……サングラスかな、と誤読した。ねもい。

2020-08-06 14:27:30 ぷぬゅたまの投稿 Penitus@kiritan.work
icon

このアカウントは、notestockで公開設定になっていません。

icon

マンゴーラッシーのみたい
マンゴーラッシーのみたい

icon

ヘドバン
ヘドバン

2020-08-06 14:34:06 のえるの投稿 noellabo@fedibird.com
icon

ヘドバン
ヘドバン

2020-08-06 14:43:11 Ryu-changの投稿 baptize@dtp-mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

icon

それが世界の選択である

icon

@nacika 🎉 🎉 🎉

icon

喫茶ソワレのゼリーポンチはいかがでせう?

Attach image
2020-08-06 16:34:10 ペニトゥスの投稿 Penitus@best-friends.chat
icon

このアカウントは、notestockで公開設定になっていません。

icon

ナン食ってくるいいよ!!

2020-08-06 15:57:28 ハングリーぷーざの投稿 pooza@gochisou.photo
icon

このアカウントは、notestockで公開設定になっていません。

icon

@X 究極、それ。

icon

ぼくも帰ろ お家へ帰ろ

2020-08-06 17:30:08 マロンの投稿 maronn@mstdn.mini4wd-engineer.com
icon

このアカウントは、notestockで公開設定になっていません。

2020-08-06 16:52:50 地雷を踏みまくる湯キマるの投稿 yukimalu0122@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

2020-08-06 18:06:02 あくあーら@ごちそうフォト鯖缶の投稿 aquarla@gochisou.photo
icon

吉野家の肉だく牛カレー大盛

Attach image
2020-08-06 18:12:42 くろま@(フェディバのすがた):verify:の投稿 kuloma@fedibird.com
icon

このアカウントは、notestockで公開設定になっていません。

icon

@motisn (あんまり意味ないですが、『新規』を購読で拾っている人がいるかもしれません)

2020-08-06 18:28:23 酸性雨の投稿 acid_rain@amefur.asia
icon

このアカウントは、notestockで公開設定になっていません。

icon

美味しそう

icon

ベビヨ

2020-08-06 04:24:16 のえるの投稿 noellabo@fedibird.com
icon

Mastodonの基本的な構成図です。

Mastodonをシンプルに構成すると、図のような構成になります。

一番手前にNginxを置いて、バックエンド側の、WebUIとAPI(Puma)、ストリーミング(Node)、メディアファイル(Storage)へのアクセスを中継します。

データベース(PostgreSQL)へ、Puma、Node、Sidekiqがそれぞれ接続します。

もう一つのデータベース(Redis)へ、Puma、Node、Sidekiqがそれぞれ接続します。

ローカルファイルシステム(Storage)へは、Puma、Sidekiqが読み書きを行い、Nginxが読み出してユーザーのリクエストに応えます。

PumaとSidekiqは、インストールしたrubyの環境で実行されます。

Nodeは、node.js v12〜の環境で実行されます。

Pumaは、ユーザーのブラウザに初期値とJavaScriptのコード(WebUI)を渡して、それ以降はAPI経由でやりとりします。

この他、ImageMagickやFFmpegがメディアの変換に使われています。

Attach image
2020-08-06 07:28:34 のえるの投稿 noellabo@fedibird.com
icon

せるぶ

icon

夜を食べたのだわ

icon

アキトは私が好き!

icon

@mei23 おつかれさま!

2019-12-04 09:51:49 のえるの投稿 noellabo@fedibird.com
icon

エステバリスって、こう、割り切った設計といい、それにより生まれた特性といい、夢とロマンが詰まっていていいよね。

エヴァンゲリオンや士魂号のような『生きてる!』って感じのアレはまた別の良さがあるけど、それはそれとして。

2020-05-02 00:02:07 のえるの投稿 noellabo@fedibird.com
icon

どいつもこいつも好きだが、やはりウリバタケが熱い。

2020-05-01 23:59:02 のえるの投稿 noellabo@fedibird.com
icon

ナデシコは、見ていた当時はそれほど自覚していなかったのだが、過ぎてみれば、かなり気に入っていたようだ。あとでもう一度全話見直しているし、色々と影響を受けている。

2019-12-16 14:20:25 のえるの投稿 noellabo@fedibird.com
icon

ナデシコのホウメイさんを思い出している

icon

わりとしょっちゅう、ナデシコの話をしている気がする。

icon

このへんとか聴いてる

Attach image
icon

「出会いたいのですが、滅多にPawooを使いません。」を思い出した。

icon

五臓六腑に染みわたるやつは

icon

サボれるやつはサボる方が良い

icon

なんだかとっても眠いんだ……

2020-08-06 22:09:31 しむどん三度無視の投稿 sximada@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

2020-08-01 21:21:35 のえるの投稿 noellabo@fedibird.com
icon

*「『もん』だって、そんなに使わないもん。たまたま浩平がよく聞いてるだけだよっ」

*「両方とも今、使ってるじゃないか。ふたつ合わせて『だよもん星人』と命名してやる」

icon

@moguno すごいコレクションだ

icon

一般的に外で会話すれば聞かれてしまいます

icon

条件分岐書くのめんどいのだわ

icon

Idempotency-Keyで、重複投稿の防止を

icon

レントウ・サーストン

icon

@Cutls かしこい

icon

やっぱりねむいめう……

2020-08-06 22:29:16 rinsukiの投稿 rinsuki@mstdn.rinsuki.net
icon

このアカウントは、notestockで公開設定になっていません。

icon

疲れから

だけで黒塗りの展開するの、枕詞みある

icon

現実には[元に戻す]コマンドは
無いのです

youtu.be/260VUTWCXuY

Attach YouTube