@weep Giant Dev、巨デブ……
まぁ、普通にGroup Developです。本番サーバじゃないけど、しばらく動かすことになりそう。
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。
@weep Giant Dev、巨デブ……
まぁ、普通にGroup Developです。本番サーバじゃないけど、しばらく動かすことになりそう。
グループの話(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を送り合う
・フォロワーなどのコレクションを保持している
グループの話(2/5)
Actor同士が直接やりとりする投稿は、当事者以外、他の人には見えません。
そこで、Activityの宛先として、Publicコレクションという特殊な宛先を指定することができるようになっており、各サーバプログラムでは、これを誰にでも見えるようにしたり、連合タイムラインやローカルタイムラインに流して表示しています。
フォロワー限定やダイレクトが基本形で、公開や未収載が特殊な公開範囲だということです。
また、連合タイムラインやローカルタイムラインはユーザーを探すための場所ですよ、と説明されるのは、こういった事情があるためです。
公開投稿をどのように扱うか(見せ方を工夫するか)は、サーバ次第です。
なお、Activityの宛先には、メールと同様にToとCcがあります。一般に、PublicをToに指定したものが公開投稿、PublicをCcに指定したものが未収載として扱われています。
ここまで、なんとなくつかめましたでしょうか?
グループの話(3/5)
グループは、ActivityPubによるユーザーの集合の表現で、コミュニティやチャンネルを実現することができる仕組みとして利用できます。
Actorの種類としてGroupが定義されているので、これを用います。
Group Actorを宛先とすることで、Groupに参加しているActorへ間接的にActivityを送ることができます。
(ただし、第三者となるActorがActivityを転送するにはJSON-LD署名が必要で、現実的には投稿と削除ぐらいしか対応していない状況です)
Groupのメンバーを表現する方法はいろいろ考えられますが、Mastodonなどの既存実装との互換性を考えると、Groupのフォロワーをメンバーと見做す実装が現実的であるため、私はそれを採用しています。
グループの話(4/5)
投稿するActorがGroupへメンションすると、Group Actorがそれを、メンバー(自身のフォロワー)へAnnouce Activityで転送します。これが基本形です。私はこれを、アクティブ方式と呼んでいます。
もう一つ、Group Actorからフォローバックして、ハッシュタグなど特定の条件が揃った場合にブーストする方式も可能で、私はこれをパッシブ方式と呼んでいます。
パッシブ方式は、無意味に多くの投稿をGroupに配送してしまう弱点がありますが、メンションせずにグループに投稿を流せるので、利便性はなかなかのものです。
これらは、既存のMastodonなどのサーバでも十分に機能しますが、サポートする機能を実装することで、より効率良く、使いやすくすることが可能です。
このあたりは、色々とアイデアがあって進めているところです。
グループの話(5/5)
グループは、連合する、サーバをまたぐコミュニティの構築に活用することができます。
ローカルタイムラインがコミュニティとして利用されてきていますが、その弱点を補うことができます。
Group Actorをホストしているサーバにメンバー管理と配送を依存していますが、投稿は参加者のサーバから発信され、参加者のサーバに配送されて保存されていくので、容易には失われません。
また、引っ越し機能でフォロワーを移し替えることで、コミュニティホストを引っ越すことすら可能です。
チャンネルに用いることもできます。これは、自身の投稿のうち、特定の内容だけをフォローしたいユーザーニーズに応え、投稿する側も配送先を使い分けることができるようになります。
複数アカウントの使い分けと比べ、リプライやお気に入り・ブーストが単一のアカウントにフィードバックされたり、メインアカウントのフォロワーに対して全てをまとめて配送できたりするメリットがあります。マルチポストが防げます。
こちらのらりおさんの記事をぜひ。これを実現可能なものです。
https://blog.cardina1.red/2018/02/25/strongest-dist-sns-i-think/
@playground グループに対して選択的にブーストすることは現状できないので、引用でまわします(未対応ならリンクになるハズ)。
グループの、ちょっとツッコんだ説明を書いておきました。何言っているか解らないかもしれませんがw、参考まで。
QT: https://fedibird.com/@noellabo/104524338485519154
@nacika 去年の10月に、Mastodon本家に仕込んでおいたのであるよ。
https://github.com/tootsuite/mastodon/pull/12071
This account is not set to public on notestock.
This account is not set to public on notestock.
@playground グループ宛の投稿はGroup Actorによってブーストされるんですが、単純に配送のために行うAnnounce Activityであるため、通知する意味がありません。というか鬱陶しい。
そこで、Mastodonでは、自分がフォローしている(参加している)グループにブーストされた時は『ブーストされたよ!』という通知を行わないようになっています。
なっていますというか、半年前ぐらいに、そういう仕様になるようMastodonの本家にコードを仕込んであります。
適用されているのは、Mastodon v3.1.0以降かな。
グループは、連合するコミュニティ機能だと思って下さい。
ローカルタイムラインが、サーバに固定されるコミュニティだとすれば、
グループは、どこのサーバからでも参加出来るコミュニティです。
@playground というアカウントがあるので、これをフォローしてみてください。
@playground に参加しているユーザーの投稿が、ホームにブーストされてくるようになります。
@playground にメンションを送ると、参加しているユーザーに届きます。
Mastodonでは、 @playground だけを追加したリストを作っておくと、とても扱いやすくなります。
Fedibirdにはグループタイムラインがあるので、リストを作らなくても @playground をクリックするだけで大丈夫です。
This account is not set to public on notestock.
現在、グループ機能を開発しており、おとといあたりから実験場を動かし始めました。
グループは、Mastodon、Pleroma、Misskeyなど、どのFediverseのサーバのアカウントからも自由に参加できる、連合するコミュニティです。
分散したサーバの各アカウントで、グループのアカウントをフォローし、メンションすることで、参加したい時にだけ参加できる仕組みです。
公開はもちろん、未収載で投稿しても参加できるので、ローカルタイムラインの邪魔をせずに、別の任意のコミュニティに参加できるというメリットがあります。
現在、テスト用のグループアカウントを一つ動かしています。 @playground をフォローし、メンションしてみて下さい。
ホームタイムラインにグループからの投稿が(ブーストで)届くようになります。
まだ機能開発中のため、任意に新しいグループを作成する機能は公開していません。もう少しだけお待ちください。
なお、先行する実装として gup.pe というサービスがあり、任意のグループをもの凄く簡単に作って試せますので、興味のある方はみてみるといいですよ。
#fedibird は、最初のステップとしてローカルタイムラインを無くして、強制参加となるローカルコミュニティに縛られない場をつくりました。
次のステップとして、いつでも自由に好きなコミュニティを選んで参加できる、というところを目指してきました。その一つが、グループ機能となります。
QT: https://fedibird.com/@noellabo/104526094692277097
This account is not set to public on notestock.
This account is not set to public on notestock.
@Nadja_tirol 小規模なテーマサーバとか仲間内のサーバを立てなくても、グループで足りちゃうというのもあります。そして、個人サーバの意義が高まります。
コミュニティとアカウントを置くサーバの分離です。
@playground 国見さんは、昨年12月から既にグループ機能を使ったタイムラインを使ってるんですよ。
グループのアカウントはこれです。 @Explore_Fediverse
#mastodonから始めるfediverse探訪
https://fedibird.com/@noellabo/103349597393090717
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.
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.
@ayano @playground そういや、リストダイアログ出す処理しとらんな……。できないじゃん!w
……直しておきますー。
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.
This account is not set to public on notestock.
This account is not set to public on notestock.
@highemerly @mayaeh @mysterytrick いや、実は一度、一行におさめる戦いをやってますw
https://github.com/tootsuite/mastodon/issues/12699
This account is not set to public on notestock.
This account is not set to public on notestock.
現在、グループ機能を開発しており、おとといあたりから実験場を動かし始めました。
グループは、Mastodon、Pleroma、Misskeyなど、どのFediverseのサーバのアカウントからも自由に参加できる、連合するコミュニティです。
分散したサーバの各アカウントで、グループのアカウントをフォローし、メンションすることで、参加したい時にだけ参加できる仕組みです。
公開はもちろん、未収載で投稿しても参加できるので、ローカルタイムラインの邪魔をせずに、別の任意のコミュニティに参加できるというメリットがあります。
現在、テスト用のグループアカウントを一つ動かしています。 @playground をフォローし、メンションしてみて下さい。
ホームタイムラインにグループからの投稿が(ブーストで)届くようになります。
まだ機能開発中のため、任意に新しいグループを作成する機能は公開していません。もう少しだけお待ちください。
なお、先行する実装として gup.pe というサービスがあり、任意のグループをもの凄く簡単に作って試せますので、興味のある方はみてみるといいですよ。
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.
This account is not set to public on notestock.
@playground Fedibirdの人は、フォローをホームに流さない設定があるのですが、グループでそれを設定できるよう拡張するの忘れてたので、少々お待ちください。
@playground ちなみに、このグループはMastodonにグループサーバ機能を乗っけたものを使っているんですが、やっぱりちょっと処理遅いですね。
私の管理下のリレーなどはCrystal製で、専用に作ってあるだけあって、レスポンス速いです。
はやく専用サーバを書かねば……。
We are not always ready when we are given the opportunity to do so. In Japan, we have had several opportunities to bring attention to Mastodon, but we haven't been able to make the most of them was. All we can do is stay prepared to get results for our next opportunity. Now, let's get on with our day.
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.
あまり知られていないMastodonのリプライ転送機能について
MastodonなどActivityPubのサーバは、ユーザーが投稿すると、メンションした相手とフォロワーにCreate Activityを配送します。
Mastodonではこれに加え、ローカルユーザーの投稿へのリプライについて、リプライ先の投稿の投稿者のフォロワーへ、受け取ったリプライを転送しています。
例えば、mastodon.socialのEugenさんの投稿に、mstdn.jpの誰かがリプライを送ると、mastodon.socialが、Eugenさんのリモートフォロワーにそのリプライを転送します。
これにより、Eugenさんをフォローしているサーバでは、Eugenさんの投稿についたリプライを一覧することができます。
リプライは、相手に通知がいくだけではないのです。
リプライを通じて、いろんなユーザーを発見できますよ。
なお、この仕組みは第三者が転送を行うので、Create ActivityがJSON-LD署名されている必要があります。Pleromaからリプライしたものは、署名がないので転送されません。
This account is not set to public on notestock.
This account is not set to public on notestock.
@engled ユーザーとしては、書き換え可能なディスクで、ソフトの価格が安くて店頭で書き換えできたことと、FM音源が追加されていてBGMがパワーアップしたことぐらいですかねー。
私は、新しいゲームを遊ぶのと同じ感覚で、ファミリーベーシックはもう自分の中で、買ってゲームを作って遊ぶ、ということになっていて、ファミコンを買ってもらって早々に、追加で買ってもらいました。自分で作れるっていう、どこから来たのかわからない謎の自信があった……w
This account is not set to public on notestock.
@Yohei_Zuho 会社の近所のノラの子で、親について回ってるよ。もう一匹いる。性別はわからないけど、三毛だしメスだろうねぇ。