Fedibird Advent Calendarの5日目の記事、空席だったのですが、 @nippon さんが今年のマストドン関連の振り返り記事(過去記事コレクション)をあげてくれました。今年も色々ありましたね。 #fedibird #fedibird_advent_calendar
QT: [https://fedibird.com/@nippon/103251620190074583]
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。
Fedibird Advent Calendarの5日目の記事、空席だったのですが、 @nippon さんが今年のマストドン関連の振り返り記事(過去記事コレクション)をあげてくれました。今年も色々ありましたね。 #fedibird #fedibird_advent_calendar
QT: [https://fedibird.com/@nippon/103251620190074583]
masterに、私が提案していた、Mastodonでグループアクターを扱う際の基本サポートが追加されました。
ActivityPub(で用いるActivityStream Actor Types)では、ユーザーのアカウント、ボット、サーバーなどのアプリケーションサービスをそれぞれPerson、Service、ApplicationといったActorで表します。
ActorにはPersonやServiceの他に、Groupもあります。文字通りActorのグループを扱うものです。
今回のmasterの変更内容は、Mastodonでこのグループを扱う際の基本的な対応を行うもので、
・グループアカウントにバッジを表示する
・フォローしているグループからブーストされた場合(単なる配送なので)通知を表示しない
・グループにメンションした場合、グループの参加者も対象に含める
という処理が行われます。
ここではグループをフォローしている人を参加者として扱います。
先のプルリクは、グループ機能そのものを実現するものではありませんが、基本的ながら、重要な機能追加となります。
ActivityPubをベースにしたMastodonの投稿の公開範囲は、誰を宛先にしているかを基準に判断されています。
公開投稿はhttps://www.w3.org/ns/activitystreams#PublicをToに指定したもの
未収載はhttps://www.w3.org/ns/activitystreams#PublicをCcに指定したもの
フォロワーオンリーはhttps://fedibird.com/users/noellabo/followersなど自分のフォロワーをCcに指定したもの
となっていて、宛先になっている相手だけが見られます。
グループの場合、グループアクターだけを宛先に指定するとグループの参加者が対象に含まれないため、そのままでは参加者だけを対象としたグループは実現できません。
そこで、グループアクターが参加者を対象にブーストすることで配送して見られるようにする必要があります。
また、グループのフォロワーを宛先に含めてあれば、ブーストではなく転送するだけで全てが実現可能です。
前者へのケアが今回の『通知の抑制』で、後者のケアが宛先の追加機能です。
ブーストは負荷が高いので、できるだけ後者で運用されるように移行していくといいですね。
なお『グループのフォロワーをグループ参加者とみなす』というのはActivityPubなどの仕様に存在しない、私が勝手にそう決めて提案したものです。
フォロワーとは別にmembersなど専用のコレクションを持たせる実装なども考えられますが、オプショナル仕様となって誰も実装しないことが想像でき、良くて最新版でしか使えないものになるため、普及させるのが難しいのではないかと思います。
いろいろ考え、これまでの議論や既存実装との互換性などを踏まえ、フォロワー方式にて提案しました。Mastodonでは*ひとまず*受け入れられました。
他の実装で広く受け入れられるものになるかはわかりませんが、より優れた方法が提案されなければこれを推していきたいと思います。
----
How to work with groups? #328 - ActivityPub
https://github.com/w3c/activitypub/issues/328
Support groups #139 - Mastodon
https://github.com/tootsuite/mastodon/issues/139
This account is not set to public on notestock.
This account is not set to public on notestock.
ちょっと朝からCloudflareのArgo切ってるんでレスポンス遅くなってるんだけど、体感どう? わからないぐらい? > #fedibird 利用の人
おっと、Argoを切ったのは昨晩だった……。23:30頃。
Argoっていうのは、スマートルーティング、階層型キャッシュ、トンネルの3つのサービスが使えるようになるもので、Cloudflareの世界中のデータセンターでキャッシュしてユーザーに一番近いところで応答したり、一番早いルートを使ってオリジンサーバにアクセスさせたり、オリジンと一番近いデータセンターに暗号化されたルートを開いたりするサービス。
ウチはトンネルは使ってなかったんだけど、他はかなり効果があったんじゃないかな。グラフを見れば一目瞭然だね。
ただこれ使用量に応じた課金が必要で、 #fedibird クラスの流量になるとサーバ代より高くなっちゃうんだよね……。ちょっと費用掛かりすぎなので、あきらめようかなーという次第。
数字も出しておきましょう。
9/2〜10/1 284 GB $28.40
10/2〜11/1 1,373 GB $137.30
11/2~12/1 2,776 GB $277.60
いやー、このまま推移したらヤバイですね。軽く死ねる。 #fedibird
ちなみにDTP鯖のArgoの費用は$2ぐらいしかかかってません。凄い差ですね。
This account is not set to public on notestock.
まあ #fedibird は今のところ私費なので、オーバースペックなサーバとか周辺サービスを試しても誰にも遠慮が要らないのが楽しいですね。運営費どこかから出てたら無駄遣いできないですし。
This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
Nelson Coffee Roasterさんで、新入荷豆『カフェ・イアーラ』を注文しました。
https://store.shopping.yahoo.co.jp/nelsoncoffeeroaster/st-191202.html
ペルシード終売になっちゃったからね。さて、どんな豆かなー。楽しみだ。 #ncr
This account is not set to public on notestock.
@RTA noisemaker.tokyoのgithubリポジトリは用意してある? ソースコード変更したものを公開する場所として便利っていうのと、こちらからプルリクエストを送る場所として使えるので、あるとありがたい。
This account is not set to public on notestock.
@RTA 鯖をいじっていくつもりなら、手元の開発環境に本家のコードをcloneしてきて、originをyknkrta/noisemaker.tokyoに、upstreamをtootsuite/mastodonにして、いま空っぽのoriginにmasterブランチをpush。新しくnoisemaker.tokyoのブランチを作って、それもpush。
サーバ側もoriginをyknkrta/noisemaker.tokyoにして、fetchして、noisemake.tokyoブランチにcheckoutして、以降このブランチをpullして鯖をアップデートする
githubの方では、デフォルトブランチをnoisemaker.tokyoに変更しておく。
たぶん意味不明だと思うけど、全体の流れとしてはこんな感じかな。
@RTA わかってれば10分もあればできるけど、順番に理解しながらやっていくと時間かかるね。
できるところまででもやってみる? 途中でやめても問題ないし。
@RTA ソースコード置くディレクトリを手元のマシンに用意して、本家のコードをcloneしてきて。
mkdir -p ~/src/yknkrta
cd ~/src/yknkrta
git clone https://github.com/tootsuite/mastodon.git noisemaker.tokyo
って感じ。
@RTA とりあえずコマンドラインで全部説明するので、上のurlのコピペ(右端にコピーボタンあり)。
https: //github.com/tootsuite/mastodon.git
って文字列がコピーできる。
@kunimi53chi @RTA 国見さん巻き込んでいこうw
たぶんgitコマンドが入ってないので、gitのインストールが要る。
@RTA @kunimi53chi そしたらcloneしよう。
git clone https://github.com/tootsuite/mastodon.git noisemaker.tokyo
@RTA @kunimi53chi cloneしてきたディレクトリが出来ているはずなので、それを確認しましょう。bashなら ls -l でいいかな。
@RTA @kunimi53chi cloneエラーになってるね。
リポジトリ名にドット入れるのやめた方がよさそうだなー。
……これはちょっと仕切り直すか。
やっぱり本家のフォークボタン押してフォークしてきましょう。yknkrta/mastodon というリポジトリができます。そっちを使う方向で。
https://github.com/tootsuite/mastodon
右上のForkボタンを。
This account is not set to public on notestock.
@RTA @kunimi53chi github上での作業はこれでOKです。これを手元にcloneします。さっきの続きです。
git clone https://github.com/yknkrta/mastodon.git
cd mastodon
@RTA @kunimi53chi よし、順調!
そしたら、upstreamという名前で、本家のリポジトリをリモートに追加します。
git remote add upstream https://github.com/tootsuite/mastodon.git
これで、本家のソースコードが更新されたときに、それを簡単に持ってくることができるようになります。
@RTA @kunimi53chi 本家に限らず、たとえばfedibirdのリポジトリをリモートに追加して、機能をもらってくることもできます。(そのへんはまだ使わないです)
@RTA @kunimi53chi 手元は基本的にこれで準備OKです。
新しいMastodonが出たときにマージしたり、開発したりするときに、このディレクトリで作業します。
@RTA @kunimi53chi コンソールから操作できないこともないですが、ちょっと不自由ですよね。そこは解決しておきたいところです。まぁあとでいいですけどw
サーバ側は、いまoriginが本家になっていて、ブランチもmasterを使うようになっています。これを、自分のリポジトリに変更して、ブランチをさっき作ったnoisemaker.tokyoに切り替えます。
んで、何か機能追加したりアプデしたりするときに、自分のリポジトリ経由で反映するようにします。
まぁ、あとでいいか。今日はこのへんまでかな。
あとで、私がリポジトリの方に、LTLを無くす変更のプルリクエストしますので、それをマージして反映する練習でもしましょう。
@RTA @kunimi53chi サーバ側の手順、メモ残しておきます。
sudo -i mastodon
cd ~/live
git remote rename origin upstream
git remote add origin https://github.com/yknkrta/mastodon.git
git fetch origin
git checkout noisemaker.tokyo
あとでsshできるようになったらやってみてください。(コンソールでやってもいいです)