icon

Fedibird Advent Calendarの5日目の記事、空席だったのですが、 @nippon さんが今年のマストドン関連の振り返り記事(過去記事コレクション)をあげてくれました。今年も色々ありましたね。
QT: [fedibird.com/@nippon/103251620]

icon

masterに、私が提案していた、Mastodonでグループアクターを扱う際の基本サポートが追加されました。

ActivityPub(で用いるActivityStream Actor Types)では、ユーザーのアカウント、ボット、サーバーなどのアプリケーションサービスをそれぞれPerson、Service、ApplicationといったActorで表します。

ActorにはPersonやServiceの他に、Groupもあります。文字通りActorのグループを扱うものです。

今回のmasterの変更内容は、Mastodonでこのグループを扱う際の基本的な対応を行うもので、

・グループアカウントにバッジを表示する

・フォローしているグループからブーストされた場合(単なる配送なので)通知を表示しない

・グループにメンションした場合、グループの参加者も対象に含める

という処理が行われます。

ここではグループをフォローしている人を参加者として扱います。

Groupを扱うActivityPubサービスが登場した際の対応準備です。

Attach image
icon

先のプルリクは、グループ機能そのものを実現するものではありませんが、基本的ながら、重要な機能追加となります。

ActivityPubをベースにしたMastodonの投稿の公開範囲は、誰を宛先にしているかを基準に判断されています。

公開投稿はw3.org/ns/activitystreams#Publ

未収載はw3.org/ns/activitystreams#Publ

フォロワーオンリーはfedibird.com/users/noellabo/fo

となっていて、宛先になっている相手だけが見られます。

グループの場合、グループアクターだけを宛先に指定するとグループの参加者が対象に含まれないため、そのままでは参加者だけを対象としたグループは実現できません。

そこで、グループアクターが参加者を対象にブーストすることで配送して見られるようにする必要があります。

また、グループのフォロワーを宛先に含めてあれば、ブーストではなく転送するだけで全てが実現可能です。

前者へのケアが今回の『通知の抑制』で、後者のケアが宛先の追加機能です。

ブーストは負荷が高いので、できるだけ後者で運用されるように移行していくといいですね。

icon

@nacika そゆことです

icon

なお『グループのフォロワーをグループ参加者とみなす』というのはActivityPubなどの仕様に存在しない、私が勝手にそう決めて提案したものです。

フォロワーとは別にmembersなど専用のコレクションを持たせる実装なども考えられますが、オプショナル仕様となって誰も実装しないことが想像でき、良くて最新版でしか使えないものになるため、普及させるのが難しいのではないかと思います。

いろいろ考え、これまでの議論や既存実装との互換性などを踏まえ、フォロワー方式にて提案しました。Mastodonでは*ひとまず*受け入れられました。

他の実装で広く受け入れられるものになるかはわかりませんが、より優れた方法が提案されなければこれを推していきたいと思います。

----

How to work with groups? #328 - ActivityPub
github.com/w3c/activitypub/iss

Support groups #139 - Mastodon
github.com/tootsuite/mastodon/

Web site image
How to work with groups? · Issue #328 · w3c/activitypub
2019-12-05 08:49:37 11番の投稿 magnesite@pawoo.net
icon

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

icon

自分のプルリクでマージミスったというクソな修正でコミット数が増えるの、ノーカウントにしてくれ……というのはある(仕方ない)

2019-12-05 06:24:52 ぽむ🕯の投稿 nippon@fedibird.com
icon

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

icon

ちょっと朝からCloudflareのArgo切ってるんでレスポンス遅くなってるんだけど、体感どう? わからないぐらい? > 利用の人

icon

おっと、Argoを切ったのは昨晩だった……。23:30頃。

Argoっていうのは、スマートルーティング、階層型キャッシュ、トンネルの3つのサービスが使えるようになるもので、Cloudflareの世界中のデータセンターでキャッシュしてユーザーに一番近いところで応答したり、一番早いルートを使ってオリジンサーバにアクセスさせたり、オリジンと一番近いデータセンターに暗号化されたルートを開いたりするサービス。

ウチはトンネルは使ってなかったんだけど、他はかなり効果があったんじゃないかな。グラフを見れば一目瞭然だね。

ただこれ使用量に応じた課金が必要で、 クラスの流量になるとサーバ代より高くなっちゃうんだよね……。ちょっと費用掛かりすぎなので、あきらめようかなーという次第。

Attach image
icon

数字も出しておきましょう。

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

いやー、このまま推移したらヤバイですね。軽く死ねる。

ちなみにDTP鯖のArgoの費用は$2ぐらいしかかかってません。凄い差ですね。

icon

@popn_ja なので、DTP鯖は今後もArgo便利に使いますw

icon

@nippon まぁ、こりゃ止めようってなりますよねw

icon

フォローすべきユーザー、ウチだと @info ですね。登録すれば最初からフォローされてるけどw

2019-12-05 14:40:42 kiroha@Fedibirdの投稿 kiroha@fedibird.com
icon

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

icon

@Telmina いやいや、これはArgoというアクセラレーターの費用なので、使わなければ負担はないのです(ヤバイので切りましたw)。S3の費用じゃないから大丈夫。

icon

@kiroha よしよし、大丈夫そうだね。

icon

まあ は今のところ私費なので、オーバースペックなサーバとか周辺サービスを試しても誰にも遠慮が要らないのが楽しいですね。運営費どこかから出てたら無駄遣いできないですし。

icon

@estpls そのまま通るでしょうねー

icon

@squid999:nikukyu:

icon

フライングガーデンのことも思い出してください……

icon

フライングガーデンの目の前にココスがあるんですけどね。こっちもハンバーグ推しが強い。

icon

うん、お腹が空きましたね。

Attach image
2019-12-05 18:24:29 しにがみ :shinigami:の投稿 Reaper@yakumo.foundation
icon

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

2019-12-05 18:23:39 ナンさんの投稿 nann_New@mstdn.maud.io
icon

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

2019-12-05 18:30:39 しにがみ :shinigami:の投稿 Reaper@yakumo.foundation
icon

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

icon

ましまろです

icon

Nelson Coffee Roasterさんで、新入荷豆『カフェ・イアーラ』を注文しました。
store.shopping.yahoo.co.jp/nel

ペルシード終売になっちゃったからね。さて、どんな豆かなー。楽しみだ。

Nelson Coffee Roaster - 通販 - Yahoo!ショッピング
2019-12-05 19:10:20 Achi@銀河丼の投稿 Achi@gingadon.com
icon

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

icon

@kunimi53chi 便利だよ。ウチなんて、ユーザー見えるのそこぐらいだし。

icon

@RTA ほほう、やるかね。

icon

@RTA noisemaker.tokyoのgithubリポジトリは用意してある? ソースコード変更したものを公開する場所として便利っていうのと、こちらからプルリクエストを送る場所として使えるので、あるとありがたい。

2019-12-05 20:39:14 としこの投稿 1045shookit@gingadon.com
icon

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

icon

@RTA 本家のフォークボタン押した方がいいかなと思うけど、これでも別にOK〜。

icon

@mimikun Keybase側から連携操作を行うと表示されるようになるんじゃないかな。 @info とか、連携してないアカウントだとメニューにでてこないし、たぶん。

っていうか、連携してたけど切れちゃったんでしたっけ?

icon

ひょっとしてMastodon側にKeybaseへの導線まったくない?

icon

@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に変更しておく。

たぶん意味不明だと思うけど、全体の流れとしてはこんな感じかな。

icon

@RTA わかってれば10分もあればできるけど、順番に理解しながらやっていくと時間かかるね。

できるところまででもやってみる? 途中でやめても問題ないし。

icon

@RTA ソースコード置くディレクトリを手元のマシンに用意して、本家のコードをcloneしてきて。

mkdir -p ~/src/yknkrta
cd ~/src/yknkrta
git clone github.com/tootsuite/mastodon. noisemaker.tokyo

って感じ。

Web site image
GitHub - mastodon/mastodon: Your self-hosted, globally interconnected microblogging community
Attach image
icon

@RTA とりあえずコマンドラインで全部説明するので、上のurlのコピペ(右端にコピーボタンあり)。

https: //github.com/tootsuite/mastodon.git

って文字列がコピーできる。

icon

@RTA 手元のソースコードおくディレクトリを作る。

mkdir -p ~/src/yknkrta
cd ~/src/yknkrta

たとえばこう。どこでもいいよ。

icon

@RTA OK!

icon

@RTA そうそう、httpのあとの空白は要らないからね。投稿でリンクにならないようにしただけだから。

icon

@RTA 手元のコマンドプロンプトとかターミナルで実際に実行してね。windowsかな?

icon

何か書くか……

icon

@RTA ファイルを作るとかじゃないよ。コマンドプロンプトに打ち込んでいく。

icon

@RTA です。mkdirはディレクトリ作成です。-p は深い階層を一気にやるやつ。

icon

@RTA windowsのmkdir、-pなかったっけ……

cd ~
mkdir src
cd src
mkdir yknkrta
cd yknkrta

って順番にやったらできるかな?

icon

@kunimi53chi @RTA そこからしてダメだったかw

まぁ場所はとりあえずあとで移動すればいいや。OK。

icon

@kunimi53chi @RTA 国見さん巻き込んでいこうw

たぶんgitコマンドが入ってないので、gitのインストールが要る。

icon

@RTA @kunimi53chi そしたらcloneしよう。

git clone github.com/tootsuite/mastodon. noisemaker.tokyo

Web site image
GitHub - mastodon/mastodon: Your self-hosted, globally interconnected microblogging community
icon

普段使いがMacだと、Windowsの環境構築が浦島太郎になるな……。

icon

@RTA @kunimi53chi いけたら、cdで中に移動。

cd noisemaker.tokyo

icon

Chocolatey、そういうのもあるのか……

icon

@RTA @kunimi53chi cloneしてきたディレクトリが出来ているはずなので、それを確認しましょう。bashなら ls -l でいいかな。

icon

@RTA @kunimi53chi lsコマンドのオプションで、Lの小文字です。目で見ると見分けにくいよね。

icon

@RTA @kunimi53chi cloneエラーになってるね。

リポジトリ名にドット入れるのやめた方がよさそうだなー。

……これはちょっと仕切り直すか。

やっぱり本家のフォークボタン押してフォークしてきましょう。yknkrta/mastodon というリポジトリができます。そっちを使う方向で。

github.com/tootsuite/mastodon
右上のForkボタンを。

Web site image
GitHub - mastodon/mastodon: Your self-hosted, globally interconnected microblogging community
Attach image
icon

また地震か……

2019-12-05 22:41:20 ておりあ👐の投稿 theoria@wug.fun
icon

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

icon

@RTA @kunimi53chi さっきからやろうとしていたことの半分ぐらいはこれで完了ですw

このままgithubでちょっと作業しましょうか。

ここから、新しいブランチを作ります。

Attach image
icon

@RTA @kunimi53chi OK。branchesに移動して、change default branch。noize〜をデフォルトに選んで下さい。

Attach image
Attach image
Attach image
icon

@RTA @kunimi53chi github上での作業はこれでOKです。これを手元にcloneします。さっきの続きです。

git clone github.com/yknkrta/mastodon.gi

cd mastodon

icon

@RTA @kunimi53chi よし、順調!

そしたら、upstreamという名前で、本家のリポジトリをリモートに追加します。

git remote add upstream github.com/tootsuite/mastodon.

これで、本家のソースコードが更新されたときに、それを簡単に持ってくることができるようになります。

Web site image
GitHub - mastodon/mastodon: Your self-hosted, globally interconnected microblogging community
icon

@RTA @kunimi53chi 本家に限らず、たとえばfedibirdのリポジトリをリモートに追加して、機能をもらってくることもできます。(そのへんはまだ使わないです)

icon

@RTA @kunimi53chi 手元は基本的にこれで準備OKです。

新しいMastodonが出たときにマージしたり、開発したりするときに、このディレクトリで作業します。

icon

@RTA @kunimi53chi んで、あとはサーバの方です。sshまだできてないんでしたっけ?

icon

@RTA @kunimi53chi コンソールから操作できないこともないですが、ちょっと不自由ですよね。そこは解決しておきたいところです。まぁあとでいいですけどw

サーバ側は、いまoriginが本家になっていて、ブランチもmasterを使うようになっています。これを、自分のリポジトリに変更して、ブランチをさっき作ったnoisemaker.tokyoに切り替えます。

んで、何か機能追加したりアプデしたりするときに、自分のリポジトリ経由で反映するようにします。

まぁ、あとでいいか。今日はこのへんまでかな。

あとで、私がリポジトリの方に、LTLを無くす変更のプルリクエストしますので、それをマージして反映する練習でもしましょう。

icon

@sublimer まとめて通知、便利そうですね。

icon

@RTA @kunimi53chi サーバ側の手順、メモ残しておきます。

sudo -i mastodon
cd ~/live
git remote rename origin upstream
git remote add origin github.com/yknkrta/mastodon.gi
git fetch origin
git checkout noisemaker.tokyo

あとでsshできるようになったらやってみてください。(コンソールでやってもいいです)