ひまつぶし雑記帖

おひとり様ActivityPubサーバーにBlock実装

2023/12/27 [09:44:09] (水) 天気

おひとり様APサーバーにBlockを実装した。
ActivityでBlockが飛んできてもめっちゃレアケースなのでスルーしてたんだけど念のため。

というか、アドベントカレンダーに参加して投入したエントリ 「Fediverseの辺境で秘密基地」「SNSのソーシャルディスタンス」 がどこかでブーストされたらしくて、珍しくぷちバズった。
Followリクエストも飛んできてフォロワーさんも増えた。のと、珍しくBlockリクエストも飛んできた。記憶に間違いがなければ、これまで半年ほどやっててBlockリクエストは3度目。

届けたいところじゃないところに届いたんだなぁ…じゃなくて、ちゃんと対応を考えないといけない。ツイッターのブロックと同じ扱いで、ブロックされた該当アカウントの投稿がブーストやなんかで飛んできてもタイムラインに流さない・間違ってフォローリクエストを送ったらまずい。
てことで、ブロックされてるリストを作成して、該当アカウントを登録することにした。

おひとり様サーバーでは投稿はJSONファイルのまま、Signature検証がOKだったら、所定のフォルダに移動してるんで、その前にブロックリストを確認してそこで弾くようにした。Followリクエストも同様。
ActivityPubというプロトコル、とかいうとなんか難しそうだけど、約束事の塊とその約束事を守ることで成立している。極端な話というか乱暴な話、約束事を守る/守らないはサーバー管理者次第。
だからこそ仕様上のMUSTやSHOULDはちゃんと対応する必要がある。

image 
久しぶりに上手く巻けた、かな。
弁当用で、出汁少なめなので失敗は少ない。ウチで食べる用だと出汁を150ccぐらい入れるんでゆるゆるで難易度があがるんだよなあ。

»電子書籍制作代行についてはこちら

SNSのソーシャルディスタンス

2023/12/25 [10:55:05] (月) 天気

Twitter(X)やFacebookからFediverseに引っ越しを開始したのが7月。それからちょっとずつ移住を進めて8月にはほぼ引っ越し完了。
Fediverse生活5ヶ月弱の振り返りが今回のエントリ。

Twitter、facebookからfediverseに移住して変わったところ

1)リプライやメンションをほぼしなくなった
2)RTをほぼしなくなった
3)いいねが増えた

こうしよう、と自分の意志で決めたことじゃなくて、Fediverseの特徴というか、おひとり様サーバーのポリシー、仕様が原因。
1)
リプライは実装していない。
メンションは実装済みだけど、DM的な使い方をしたいので簡単にできるようなUIはつけてない(送りたい相手のユーザー名サーバー名をいちいち手入力する必要がある)
2)
RTが減ったのは、ActiviryPubのRTは自分の投稿としての扱いになるから。ということは、RTするためにはDBに登録する必要がある。
おひとり様サーバーではひとのデータを極力持たないという方針で、ひとの投稿をDBに取り込んだりしたくない。ので、RTとうちのおひとり様サーバーは相性が悪い。
急場しのぎで、7日間の期限付きでDBに登録。期限がきたら削除&Undoを飛ばすことにした。
3)
いいねが増えたのは、リプライ代わりでweb拍手みたいな位置づけになったからかな。リプライほど積極的じゃない、ちょっとしたリアクションを送る感じで使ってる。

瓢箪から駒とか。
このおかげでSNSでのソーシャルディスタンスが保たれることになった

ツイッターの良いところは、
ネットを通じて人と出会いがあって、人との繋がりができること。Twitterがきっかけでリアルでの繋がりにまで広がることもある。
個人でもちょっとしたメディア並みの拡散力、影響力をもつ、こともある。

その仕組として、リプライやメンションするのも手軽だし、RTも気楽にできる。
他人の投稿に対して、たとえばテレビのニュースやワイドショーを見て、テレビに向かって何かいうのと同じような気軽さじゃないかな。
リアクションしてリアクションされてるうちに、距離感を間違えてしまうことがあるような気がする。

まだ様子見かなあというお店に何回か通って
「いつも」ありがとうございます
と言われると引いてしまって足が遠のくことがあったり。

向こうから顔見知りのひとがきたので満面の笑みで手をふったら相手も手を降ってやって来た、と思ったら、おれの後ろの人に手を降って笑いかけてて、満面に笑みを貼りつけたまま通り過ぎるしかない状況だったり。

いやいや、だいたいわたしとあなたは赤の他人ですよ?

ツイッターではありがちな光景だと思う。

その点、FediverseというかActivityPubのおひとり様サーバーは、ちょっとずつ面倒くさいんで、距離感を意識することができる。

そもそもおひとり様サーバーで壁打ちと言いつつ、ActivityPubで繋がる別サーバー、リモートサーバーに投稿を投げることになっている。
ぜんぶ「よそんちのお宅」だ。まずそこで少しハードルがあがって(これでも)ちょっと「よそ行き」になっている。

もちろん、ツイッターなどで、適切な距離感を保てるなら問題ない。
なんせ億単位でひとが集まっている。情報収集や情報拡散は巨大SNSの方がメリットが大きい。

ツイッターFacebookから離れて、わたしはそちらではソーシャルディスタンスが保てないということを痛感した。いや、いい歳こいて振り回されすぎるんだよなあ。みっともない。

おひとり様サーバーは20個しか表示しないし、検索もできない。
でも、平穏は得られている。

コロナ禍と同じ。SNSでもソーシャルディスタンスは必要だよなぁ。
image
Blueskyにも登録した。AT protocol?分散型というのに興味があったから。
けどなあ、ツイッターを作って放りだした・だされたジャック・ドーシーだよ?信用できるかとなると、イーロン・マスクやマーク・ザッカーバーグと同じ穴の狢だと思う。

»電子書籍制作代行についてはこちら

ActivityPubサーバーのGETリクエストに署名

2023/12/20 [23:14:57] (水) 天気

おひとり様サーバーのGETリクエストを署名付きで投げるようにした。
今のところ、特に問題が出てるようには見えない。

前々から気になってたところ。
actor情報や投稿を取得するために、アクセスすると401や403で弾かれることがあって、それってリモートサーバーからのアクセスを拒否してるのかなあ、ぐらいに思いつつもなんかひっかかってた。
GETリクエストにひょっとするとSignatureが必要なわけ?と。
でも、POSTと違ってGETだよ?Body(content、本文)もないのに、いったい何に対してサインする?んなもんないよなあ、とも思ってた。

2023Fediverseアドベントカレンダー第3会場 19日目の黒ヰ樹さんの記事
「DenoとHonoでThreadsのContent-Type: application/activity+jsonをGETする」
当初ActivityPubのHTTP Message Signaturesはhostとdateを認証するPOSTのみで使われてきました。
ThreadsのContent-Type: application/activity+jsonをGETするにはこの署名が必須なので、Threadsをフォローできないサーバーがあったりなかったりしたんですね。

↑こちらに詳細があった(感謝)
GETでのHTTP Signatureは
(request-target)
host
date
の3つを署名対象にすればOKということらしい。
(ひょっとしてわたしが知らなかっただけで、100年前からの常識だったのかな?)
この署名付きでGETを投げて403で弾かれることがあるけど、401は今のところない。これで大丈夫っぽい。

HTTPのレスポンスは。
401 認証できない
403 認証できるけど権限がない
404 そんなファイル、ディレクトリはそもそもない

403を返すと「そんなファイル」はある、ということを自白してるのでセキュリティ的にあえて404を返してることがある。なので、403と404は同じで原因の特定ができないとしても、401が返ってくるのはこちらに何らかの問題がある、ということ。

表示が無駄に重くなるだけなので、うちのおひとり様サーバーでは、400番台が返ってくるサーバーはリストに登録してアクセスしないようにしてた。
とりあえず。この対応で401は回避、できるかな。

image
今日は3回目のゲ謎。哭倉村。
ほんと、今年No.1だなー。

[12/21 14:07:43]追記。
401でエラーを出してた某サーバーのactor情報がこの変更で取得できたので、やっぱりGETにSignatureがなかったのが問題だったのか…。

[2024/01/09 11:46:23]追記。
HTTP SignatureをつけてGETしても403で弾かれるサーバーがあった。
いろいろ試してみたところ、お相手のHTTP HeaderのkeyIdのURLについてる「#main-key」が原因っぽかった。

お相手からのポストの署名を検証するためにPublickeyを取得する必要があって、Publickeyを取得するにはこのkeyIdのURLにリクエストを投げてPersonのJSONをもらわなきゃいけない。
Mastodon系などはkeyIdのURLにそのままGETリクエストしていて問題はなかった。んだけど、なんか「#main-key」付きって微妙なURLだなあ、とか思ってたこともあって、試しにURLの「#main-key」を削除してリクエストしたら問題なく200が返ってきて、無事JSONを取得できた。

だけど、今度はそれはそれで、keyIdのURLに「#main-key」なんてつけないで欲しいよなあ。「keyId」の意味がないのでは?

»電子書籍制作代行についてはこちら

Fediverseの辺境で秘密基地

2023/12/18 [00:00:00] (月) 天気

この記事は  Fediverse Advent Calender 2023  (第三会場)18日目の記事です。

Fediverseというネットの連合空間、ActivityPubという共通の言葉を喋るサーバー群というのが面白そうで「いっちょかみ」してみました。以下は、その時々の経緯というか思ったことの垂れ流しエントリとなります。
ちなみに、還暦過ぎのポンコツで、話が無駄にだらだら長いのはご容赦ください。


■レンタルサーバーとperlでおひとり様

MastodonやMisskeyをインストールして運用管理するスキルはわたしにはないので、自分のできる範囲、最小限のActivityPubサーバーをperlで自作実装しました。

レンタルサーバーとドメイン、perlがあれば、それ以外に新しく必要なものはなくて、このブログなど今まで使ってるロリポップのライトプランの環境で十分でした。

試しながら少しずつ実装していったんですが、おひとり様サーバーは、たぶんみんな大好き「秘密基地」ごっこ。
いちいち面白くて、すっかりハマりました。空いた時間のほとんどを費やしてます。

■おひとり様サーバーとして必要なことは2つ

・Fediverseの仲間入り、アカウントとして認識されること
・ActivityPubの決まりごと通りにGETやPOSTなど、リクエストのキャッチボールができること

■Fediverseにわたしが来た!

すみません。言ってみたかっただけです。
7月12日。Fediverseからアカウントとして認識されました。

何をどうすりゃいいのかまったくわからない状態からだったので、グーグル先生に聞きまくりです。
nodeinfo(json)
host-meta(xml)
webfinger(json)
actor.json(json)
以上4つのファイルを用意すればいいという話だったのでサーバーに設置。

今回作った自分のアカウント「@t2aki@tokoroten.doncha.net」をMastodonで検索してみたら、アカウントとして認識されました。
image
ただ無言で顔を出しただけなんですが、これで念願のFediverse仲間入り!です。

■ActivityPubおひとり様サーバー最低限の実装

アカウントとして認識されたら、後はActivityPubの決まりごとをちゃんとキャッチボールできればOKです…とか言って、これもまったくわかってなくて「そこからかよ!?」の状態でした。

リクエストのキャッチボールを始めるにはHTTP Signatureが必須になります。
(このリクエストはわたしが投げたものですよ、というのを保証するサイン・署名みたいなもの、という理解で大丈夫かな)

ところが、レンタルサーバーのロリポップでは署名のために一般的に良く使われているらしい「Crypt::OpenSSL::RSA」というperlのモジュールがない。つまり、Signature、署名ができない、ので立ち往生。
しかたなく、ローカルのPCに「Crypt::OpenSSL::RSA」をインストールして、PCのコマンドラインから投稿を送信することにしました。

7月26日。右往左往しながらも、Fediverseからアカウントとして認識されて、HTTP署名付きで投稿ができるようになりました。
発信専用と割り切ればこれでひとつゴール達成ということでしょう。
この時点でこのアカウントのフォロー/フォロワーはほかのサーバーに登録した自分のアカウントだけですが。

しばらくローカルPCからの発信専用でやってたんですが、WEB上で作業が完結した方が手間もなく気楽だし、また、ほかのひとの投稿をこのサーバーで読めないのは物足りなくなりました。
…というか。送信するのはローカルPCから、ほかのひとの投稿を読むのはMastodonのクライアントを立ち上げて、というのはやっぱり面倒くさいです。

ふたたびグーグル先生にお願いしたところ、署名するために必要な、PurePerlの(perlだけで実装されている、ユーザーレベルでインストール可能な)Cryptモジュールを見つけたので、ロリポップにインストールしました。
このperlだけで署名できるモジュールの作者さんには感謝するばかりです。

8月22日。HTTP Signatureを解決することで、やっとリクエストの送受信、キャッチボールができるようになりました。最低限の構成ですが、おひとり様ActivityPubサーバーということで大丈夫でしょうか。

■おひとり様サーバーのタイムライン

【ローカルタイムライン】
サーバーに登録しているユーザーの投稿が流れるタイムライン。
おひとり様なのでわたし一人の壁打ちタイムラインです。Fediverseに投げ込むには一意のIDが必要で、投稿へのURLもそれをもとに生成します。そのためにデータベースを使うのが手っ取り早いし、以前から使ってる自分メモ用の掲示板を改築して流用しました。

【ホームタイムライン】
フォローした人たちの投稿が流れ込んでくるタイムライン。
ここは考えなきゃいけないことがいろいろありました。

その1.
まず大前提として
「ひと様のデータは持たない、抱え込みたくない」
わたしのショボいスキルと還暦過ぎたポンコツの体力だと何があるかわからないので、リスク回避が最優先です。
その2.
タイムラインというからには「投稿は流れて消えていく」
流されてしまったものは見ない、アクセスしてたまたまその時その場にあるものを見るモノだということですね。
「袖すり合うも多生の縁」です。

ということで、こちらはデータベースも使わず、保存する投稿は、上限20個、保存期間最長1日。それ以上は古いものからところてん式に押し出されて削除、遡ることができないタイムラインということにしました。
(保存するNoteは宛先がPublic指定されているもの・わたし宛Mention投稿。それ以外は破棄)

そもそもホームタイムラインを見るにはログインが必要で、おひとり様サーバーでログインできるのはわたしひとり、見ることができるのはわたしだけです。

自分の使い方として、twitterもFacebookもそうですが、スクロールして遡るのはせいぜい2〜3画面だったので、上限20個保存ぐらいでも問題はありません。

アクセスしない間も、飛んでくるリクエストをcronで処理することにしたので、わたしが知らないうちに流れてきて、知らないうちに消えていく投稿の方が圧倒的に多い状態です。
SNSとの距離感はこのぐらいでちょうどいいんじゃないかと思ってます。

■タイムラインの育成、フォロー・フォロワー

なにはなくとも、まずフォローをして繋がらないと始まりません。
最初は、すでに登録して参加している別サーバーの別アカウントでフォローしているひとたちを、このおひとり様サーバーから少しずつフォローしました。
(聞いたこともない変な野良サーバーということもあってか、403や401で弾かれてすべてはフォローできませんでしたが)
こちらでフォローをしていくことで、ほかのひとの投稿を流し込んで読めるようになりました。

おひとり様サーバーでタイムラインを作ってると、フォロー/フォロワーでいうと、いかにフォローするのが大切かというのを実感します。

タイムラインというのは、盆栽とか本棚とかと同じ「よく育ってくれましたねえ」の世界。

twitterやFacebookだとフォローを見つけるのもそんなに大変でもないんですが、連合サーバー群だとなかなか難しくて、いくつかのサーバーにアンテナを張って少しずつこちらのタイムラインに持ってくるしかなくて。地引網でどばっと攫うのと、釣り竿を垂らして一本釣りするのと。それがまた面白いんですが。

サーバーごとの特徴があって、他のサーバーのアカウントをフォローして投稿の流入経路をひとつ増やすだけで、それまでになかった投稿が流れるタイムラインになります。
せっかくなので、いろんなサーバーをフォローしたいと思ってます。
(今ではフォローしているひとのブースト経由で他サーバーの様子も垣間見えるので、フォローを探すのもほとんどこのホームタイムライン経由になっています)

twitterなんかだとフォロワー数でのマウント合戦が見られますが、タイムラインの面白さは、フォロワーの数ではなくて、どれだけフォローしてるか、でしょう。

■おひとり様サーバーという名の秘密基地

ActivityPubという共通の言葉で繋がっているので、登録するサーバーに拘る必要はありません。どのサーバーにいても他のサーバーをフォローできる、繋がって広がるのがFediverseの特徴・メリットです。
…とはいえ、いろんなサーバー、それも個性的・特徴的なサーバーがたくさんあって、どのサーバーにしていいのか悩んでしまいますよね。

それなら、おひとり様サーバーを立ち上げて、そこを起点・窓口にActivityPubを喋っていろんなサーバーのアカウントをフォローしてFediverseに参加してみよう、そんなのが自分で作れたら面白そう、というのが始まりでした。
Activityを1つ実装するたびに、これってどうして必要?これは何か理由があるよね?など、いろいろ考えて、自分で決めて自分で作る手作り秘密基地です。

目の前にある20個だけでそれ以上は遡れないし検索もできないホームタイムラインは、穏やかに過ごせるもんだなあ、と眺めてます。
自分のために自分で作った場所というのはストレスフリーで居心地が良くて入り浸り状態。すっかりログインすることがなくなったtwitterやFacebookを見ていた時以上の時間をここで過ごすようになりました。

Fediverse空間のどこかでお会いすることがありましたら、どうぞよろしくお願いします。
だいたい映画、小説、アニメなどについて垂れ流してます。
鬼太郎誕生スゲー、復讐の記憶やべえ、トム クルーズおかしいだろ、やっぱルブランのアルセーヌ・ルパンだわ、など語彙力に問題のある投稿を見かけたら、それはたぶんわたしです。

ちなみに。
『鬼太郎誕生 ゲゲゲの謎』と『復讐の記憶』はわたしが今年映画館で観た映画でベスト。
この2本とも、おひとり様サーバーに流れてきた投稿で知った・気づいた作品です。フォローしたひとたちのおかげです。ほんとウチのおひとり様サーバーのタイムラインは「よく育ってくれました」(自画自賛)

■おひとり様サーバーを作るのに参考にさせていただいたサイト。

・まさに、このひと言。
「Webhook的に ActivityPub に投稿する実装を作った」
オープンな仕様 ActivityPub の力を借りて自前実装で他の実装とつながれる体験は心躍るものがあり

・perlでActivityPubサーバーを立ち上げるならこちらにすべてがあります。
「Fediverse入門―非中央集権型SNSサーバを作ろう!」

・静的ファイルだけでActivityPubサーバー構築。こちらの具体例が参考になりました。
「NetlifyとSupabaseでほぼ静的なActivityPubサーバ」

・こちらを発端としてActivityPub実装についてのサイトを辿りました。
「田舎の昼のサイレンbotをActivityPubで実装する(マストドンにアカウントを認識してもらう編)」

・レンタルサーバーとperlのCryptモジュール
「ロリポップ!レンタルサーバー」
「Crypt-Perl-0.38」

■蛇足というか手前味噌というか

わたしのActivityPub自作実装について。
「おひとり様ActivityPubサーバー自作実装メモ」
Follow、Like、Announce、Attachment、Hashtagなどを少しずつ実装した時の具体的なメモをまとめてます(関連する各エントリは 「ActivityPub」 というタグづけしてます)
ActivityPubの共通言語として飛び交うJsonの具体的な例を残すようにしてますので、何かのお役にたてれば幸いです。

»電子書籍制作代行についてはこちら

GBLシーズン17でACE到達

2023/12/17 [09:14:36] (日) 天気

ポケモンGOの対人戦GOバトルリーグ。シーズン16「時を超えた旅」でACE到達。

あれ?シーズン通算番号がなんかズレてるけど、GOバトルリーグのシーズンとメインのシーズンだとカウントが違ってたりするのかな??

てのはともかく。
12月2日スタートしたGBL(GOバトルリーグ)で、今日レート2007となってACE到達。初期レートが出たのは12月12日で、レートは1908からのスタートだった。
前シーズンは、ランク18になった頃からポケモンGO自体ほとんどやってなくて(夏の暑さにやられた)シーズン終盤になってぼちぼち再開したら初期レートは2131と過去最高でびっくりした。
そして、今期は従来通りやってやっぱりほぼ従来通り10日ほどでレートをもらってレート戦に入ったらやっぱり前々回ぐらいの初期レート1900前後…てことは、もしかすると、早い時点でそれなりのレートをもらえるのはちゃんとやってるガチ勢、ということなんだろうか。
ボケ老人のわたしのヘボいスキルだとこのあたりでの着地が適当・妥当てことなんだろな。

涼しくなってウォーキングもはかどるし、対人戦はその時間内であれこれ考えることが多くてボケ防止にもなるし、6年も続いてる&続けてるゲームなだけはある。ほんと飽きないんだよなあ。

まずはGBLでの目標をクリアしたのでこの後はゆっくり。
称号の上を目指してのレート戦はストレスもかかるんで、ただ楽しむためのゲームとはちょっとニュアンスが違ってくる。ストレスを感じながらゲームを遊ぶのもどうかと思うので、マイペースで遊んでいこう。
image【ポケモンGo】
お気に入りのポケモン (2016/8/10)
ポケモンGoでウォーキング再開 (2016/9/19)
ポケモンGo:カビゴンが放流されている (2016/9/26)
ポケモンGo:種族のHP順 (2016/9/29)
ポケモンGo:カビゴンの英才教育 (2016/10/24)
ポケモンGo:ハロウィンイベント飴ちゃん祭りの成果 (2016/11/1)
ポケモンGo:ジムバトルに参戦 (2016/11/29)
ポケモンGo:Pokemon GO Plus (2016/12/6)
ポケモンGo:ヤドランでカイリュー退治 (2016/12/29)
ポケモンGo:レギュラーとジムトレーナー (2017/1/20)
ポケモンGo:TL33になりました (2017/2/15)
ポケモンGo:イースターイベントで図鑑埋め (2017/4/18)
ポケモンGo:ハピナス対策【ジム戦】 (2017/5/29)
ポケモンGo:大型アップデート直前 (2017/6/23)
ポケモンGo:新ジム戦がめっちゃ面白くなってた (2017/6/23)
ポケモンGO:レイドバトルで技マシンget (2017/6/28)
ポケモンGo:コイキングレイドバトル (2017/6/29)
ポケモンGo:TL36になりました (2017/7/27)
ポケモンGo:ソロレイドの準備 (2017/7/31)
ポケモンGo:レベル3ソロレイド:ゲンガー (2017/8/9)
ポケモンGo:3鳥捕獲完了 (2017/8/10)
ポケモンGo:技マシン使用履歴 (2017/8/16)
ポケモンGo:宵越しの砂は持たない (2017/8/24)
ポケモンGo:レベル3ソロレイド:カイリキー (2017/8/30)
ポケモンGo:金コイキング捕獲 (2017/9/6)
ポケモンGo:秋分の砂2倍イベント (2017/9/28)
ポケモンGo:今月のレイドバトルはライコウ (2017/10/11)
ポケモンGo:フーディンレイドに惨敗中 (2017/10/17)
ポケモンGo:エンテイ初日GET (2017/11/2)
ポケモンGo:レベル3ソロレイド:ストライク (2017/11/9)
ポケモンGo:ポケモンのMAX強化 (2017/12/6)
ポケモンGo:レベル3ソロレイド:フーディン (2017/12/14)
ポケモンGo:バトルパーティ編成 (2017/12/21)
ポケモンGo:レベル3ソロレイド:ポリゴン (2017/12/22)
ポケモンGo:EXレイド・ミュウツー捕獲 (2018/1/24)
ポケモンGo:EXレイドパスが来た! (2018/2/10)
ポケモンGo:レックウザ終了・伝説系捕獲率 (2018/3/15)
ポケモンGO:噂のミュウをゲット (2018/4/4)
ポケモンGO:カンストポケモン (2018/5/9)
ポケモンGO:力まかせのジムバトル (2018/6/13)
ポケモンGO:ルギア最強説 (2018/6/19)
ポケモンGO:水イベント終了 (2018/6/21)
ポケモンGo:レベル40になった (2018/8/14)
ポケモンGO:カンストポケモンその2 (2018/9/20)
ポケモンGO:ミュウツー事情 (2018/10/18)
ポケモンGO:ミュウツー技開放 (2019/1/2)
ポケモンGO:ブイズでジムバトル (2019/6/4)
ポケモンGO:GOバトルリーグ (2020/2/5)
GOバトルリーグ:44勝61敗 (2020/2/7)
GOバトルリーグ:初の5連勝! (2020/2/12)
GOバトルリーグ:5連敗5連敗 (2020/2/17)
ポケモンGO:GBLで負け続ける (2020/8/23)
GOバトルリーグ:シーズン8でもACE到達 (2021/6/15)
GOバトルリーグ シーズン10開始 (2021/11/30)
GBLシーズン10でACE到達 (2021/12/20)
GBLシーズン11のランク20 (2022/3/7)
GBLシーズン11でACE到達 (2022/6/17)
GBLシーズン12でACE到達 (2022/9/23)
GBLシーズン13でACE到達 (2022/12/18)
GBLシーズン14でACE到達 (2023/3/14)
GBLシーズン14で初のVETERAN到達 (2023/5/15)
GBLシーズン15でACE到達 (2023/6/14)
GBLシーズン16でACE到達 (2023/11/15)
GBLシーズン17でACE到達 (2023/12/17)

»電子書籍制作代行についてはこちら

おひとり様サーバーのおもて側

2023/12/14 [13:08:51] (木) 天気

ActivityPubを喋ってFediverseと繋がる、とか言っても、それって具体的にどう見えているのかわからないと、ナンジャソレだと思う。

ActivityPubとか裏側の面倒くさそうなのはとりあえず置いておいて。
使い方見え方、おもて側の紹介をしてみる、のが今回のエントリ。
ActivityPubを通じて、他のサーバー(インスタンス)に投稿したり投稿を閲覧したりする具体例のひとつと見てもらえれば。

【コントロールパネルっぽもの】
image
ログインするとページの最上部に
・投稿を記入するテキストエリア
・添付画像
・データベースを検索するチェックボックス
・こちらでフォローするためのアカウント名入力欄
 フォロー/フォロワー数とフォローのリスト表示のためのリンク
・他のFediverseの投稿をこちらで表示させるためのURL入力欄
などのコンパネっぽいものが並ぶ。

その下は
・フォローされたら確認と承認ボタンのエリア
・Likeされたらその表示エリア
・Mentionされたらその表示エリア
が表示される。

他サーバーの投稿をこちらで表示させるのは。
ここからブーストしたり、いいねしたりすることで、おひとり様サーバーのフォロー/フォロワーを増やす可能性に繋がるんで、けっこう重宝する機能。

※これはログインユーザーにだけ表示される。

【ホームタイムライン】
image
フォローした人の投稿が最大20個並ぶエリア。
個々の投稿には
・Announce=ブーストボタン
・Like=いいねボタン
絵文字は対応してない。

こちらでフォローしたいろんなサーバーのいろんな人の投稿が流れ込んでくる。ActivityPubを通じて他のサーバーと繋がってるからこそ閲覧できる。

例えば。Twitterにログインして投稿を読んでいて、Facebookの投稿をそこでは閲覧できない。でも、Fediverseに参加しているとTwitterだけじゃなくてFacebookの投稿も同時に閲覧できる、みたいなもの。

読んでいてほんとに面白い。
サーバーごとで特色があるし、フォローしたひとたちは当然ながらわたしの嗜好・志向とあったひとたちなので、楽しくないわけがない。
上限20個でそれ以上は遡れないタイムラインだけど、各々の投稿者さんのoutboxは取得できる=アカウントのプロフィール・過去投稿(の1ページ分)を見ることはできるので、20個は少ないようで、少なくないボリュームでもある。

MastodonやMisskeyなどのPWAやアプリだとJavascriptやAPIを駆使して、非同期で新着の投稿を取得&表示させている。んだけど、わたしはJavascriptがよくわからないので、Ctrl+Rや、画面を下に引っ張って手動での更新。
今のところ、特に不便は感じてない。

※これはログインユーザーにだけ表示される。

【ローカルタイムライン】
image
おひとり様なのでこのサーバーではわたしの壁打ちが並ぶだけ。
「edit」とかあるけど、削除も編集更新も今日時点では反映されないので要調査。
(ActivityPubのDeleteの仕様は満たしてるはずなんだけど…)

※これはログイン不要で誰でもみることができる。

ActivityPubを喋ってほかのサーバーと繋がるというのはこういうことにもあって。
image 
↑Fediverseの他のサーバーにおひとり様の壁打ちが投げ込まれて、向こう側で表示されることになる。これがあるからこそ、ActivityPubとFediverseの面白いところ。
他のサーバーの投稿が流れ込んでくるホームタイムラインと同じく、ローカルタイムラインに投げ込むだけで、ツイッターにもFacebookにも投稿される、ようなもんだ。

よく言われるように、TwitterやFacebookの代替になるかと言われるとそれは無理で無茶。
億単位のひとがひとつの場所に集まってる化け物と同じになれるわけがない。
だけど、いろんなサーバーと繋がる、分散して独立・存在するメリットはあるはず。

わたしはFacebookにはまったくアクセスしなくなったし、Twitterもほとんどアクセスしなくなった。
Twitterは呪術廻戦やゲ謎の考察、ファンアートを漁るためにたまにアクセスするんだけど、関係のないツイートがぶら下がってるんでうんざりする。どうにかならないのかなあ。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/4/21 12:33

すべて相対的な話で、マジョリティに合ってるかどうかだけのことやな

2024/4/21 12:31

1+1は2
という数学の世界も解けない命題がある

2024/4/21 12:27

正しい人はいない
教会に掲示されてたと流れてきた。
そもそも正しいなんてのはどこにもないからなー

検索
<<2024/4>>
 123456
78910111213
14151617181920
21222324252627
282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

[497 Page]« »
1 2 3 4 5 6 7 8 9 10

TOTAL:2982

2024 (5)
1 (2)
2 (2)
3 (1)
2023 (53)
1 (1)
2 (5)
3 (1)
4 (1)
5 (3)
6 (9)
7 (9)
8 (6)
9 (5)
10 (3)
11 (2)
12 (8)
2022 (16)
1 (1)
3 (2)
6 (2)
7 (1)
8 (4)
9 (2)
10 (1)
11 (2)
12 (1)
2021 (12)
1 (3)
2 (1)
6 (1)
8 (2)
9 (1)
10 (1)
11 (2)
12 (1)
2020 (18)
1 (2)
2 (6)
4 (1)
6 (1)
7 (2)
8 (2)
12 (4)
2019 (17)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
10 (1)
12 (2)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)