Fediverseで参加してるサーバー紹介

ActivityPubという共通の言葉でつながるFediverseサーバー群が面白くてperlでおひとり様サーバーを自作実装した、というエントリをオンラインイベントに投入した。
「Fediverse Advent Calendar 2023」
https://adventar.org/calendars/8730
※わたしのエントリの公開は2023/12/18
イベントなので、「デスマス調」でがんばって、長くなっても面白くないだろうし、サーバーを立ち上げるところまでで絞って書いてみた。
…てことで、書いたけど削ったところをこちらで追記。
おひとり様サーバーのタイムラインを作るためには、ほかのサーバーに参加していて、そっちでフォローするひとを見つけてくる必要がある、よね。
いまわたしが参加しているFediverseのサーバー(インスタンス)
https://bookwor.ms/
登録日:2017年8月2日
「本好きのためのMastodonサーバー」で、6年ほど前、毎年毎年電子書籍元年だった頃に参加。たまたま電子書籍関係のひとたちの飲み会で管理者の@skoji@bookwor.msさんと同席して猫の話をした記憶。
当時はMastodon?なにそれ状態で、社会人のサークル活動というか本好きのひとが集まるmixiみたいな?という捉え方しかできてなかった。
こちらのローカルタイムラインは本好きのひとたちの本や映画、美術館、博物館なんかの情報が静かにながれてきていて居心地がとても良い。参考になったり気づかされることが多い。とか言いつつ、ツイッターにどっぷりだったのでしばらく幽霊部員だった(て、大学のサークル感覚)
イーロン・マスクの登場でツイッターが終了して、個人的には6月に27歳のみけさんがいなくなったことが大きくて、自分の環境を変えるタイミングってあるんだなあ、ということでご無沙汰してたこちらを眺めて、改めて使ってみて、MastodonとはなんぞやActivityPub?みたいな調べ物を始めることとなった。
※残念ながら、今日時点、新規登録は受け付けてない。
以下は、登録日を見てもらえばわかるかと思うけど、ActivityPubで飛び交うJSONの具体例が欲しくて登録参加させてもらった。
https://mstdn.jp/
登録日:2023年7月16日
Mastodonの日本サーバーといえばとりあえずここだということで登録してみた。ローカルタイムラインはカオス。正直なところ、なにがなにやらよくわからないまま。
参加者が多いからしょうがないと思うけど、見通しの悪いツイッターという印象。たぶんそれって、個人設定とかちゃんといじれば大丈夫、かな。
FollowやAnnounceなどなど、JSONの実物をこのアカウントとやり取りして採取していた・している(感心できない使い方、参加者ですみません)
https://himagine.club/
登録日:2023年7月21
MastodonだけじゃなくてMisskeyもどんなJSONが飛んでるのか具体例を知りたくて最大手と言われてるMisskey.ioを見たところ、盛大な絵文字の奔流ついていけず。老眼だし無理。
Misskey系はだいたい表示が重たい。画面内の情報量が多すぎてついていけない。
…と思ってたところ、見かけたのがこちら。firefishというサーバーでMisskey系ということだし、参加者さんもわたしの観測範囲では静かな印象で、落ち着けそうだったので登録。
緩やかに日常風景が流れてくるローカルタイムラインで違和感疎外感も覚えなくて、アクセスする頻度こそ低めだけど、まったり眺めて過ごせる。
https://fedibird.com/
登録日:2023年7月26日
こちらはローカルタイムラインがないMastodon。ということでなにが違うんだろかと、具体的なJSONを見てみたくて登録(招待制だけど、管理者の@noellabo@fedibird.comさんが時々招待コードを流してくれる)
わたしの見た、めちゃくちゃ小さい範囲だけで言っちゃうと、ここが一番ツイッターに近い。登録して居座った。
タグや検索で共通の興味をもつひとを捕捉できるのがありがたくて、言葉はアレだけど、こちらから「芋づる式」におひとり様サーバーでフォローするひとを引っ張ってくることが多い。
↓fedibirdの招待コード
https://fedibird.com/invite/NGBid2CH
もし興味をお持ちでしたらこちらからどうぞ。
ActivityPub確認検証のために参加したサーバーだけど、mstdn.jp以外はどれもオススメできる(mstdn.jpはすみません。ほとんど見てない)面白いサーバーで、サーバー管理者の顔が見えるところも安心できる要因のひとつ。
どのサーバーもFediverseに繋がるので、あまり深く考えずに「とりあえず」どこかに登録参加することをおすすめします。
(わたしは絵文字文化が苦手なので、Misskey系よりMastodon系の方が好き、かな)
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
網脈絡膜萎縮

11月10日の検診。相変わらずで、特に緊急なことはなく。
とはいえ、もう歳だし、この人間ドックもいつまで受けられるかわからない。毎回ひっかかってた目が今年もやっぱりひっかかったので、今回は眼医者に行くことにした。
2008年。最初にひっかかった時に地元の有名眼科にいって診てもらったんだけど、拍子抜けするぐらいあっさり、ナニカアッタラマタキテネー(カタカナ)
大したことはないんだなあ、ということでずっと放置。
https://t2aki.doncha.net/?id=1214705446
今回は地元の別の眼科で診てもらった。
家人が診てもらってるところで、ここの先生は腕が良くて、慈恵医大の眼科部長とも繋がってるらしい。眼科と小児科というレアな?お医者さんだ。
眼底検査を始め、あれこれ3時間弱ほど検査。
網脈絡膜萎縮というやつ。
ほんらいもう少し厚みがあるはずの膜なのに、薄くなってるところがある、ということらしい。
原因はほとんど眼底出血。なんだけど、わたしにその経歴はない。
先生によると、生まれつきの可能性。
萎縮が広がると視力に影響するので経過観察。定期的に検査しましょうということだった。
還暦、60歳過ぎて、まさか生まれつきの何かが見つかるのって、新鮮な驚きだった。
まじかー。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
GBLシーズン16でACE到達

ポケモンGOの対人戦GOバトルリーグ。シーズン16「冒険の日々」シーズンでACE到達。
今期は9月1日スタート。で、今日は11月15日、今までで一番遅い日にちでのACE達成だった。
初期レートは過去最高の2131でちょっと嬉しかった。タイミングなんだろなあ。その後1セットやってACE到達。なんせ5戦全敗してもレートは2000超が確定の初期レートなので、安心。
にしても。今期はまったくモチベーションが上がらなくて、それでも9月10日すぎぐらいまではそれなりにGBLに参戦してたんだけど、ぱったりやらなくなった。GBLではなく、そもそものポケモンGO自体、立ち上げない日々が続いていた。
最大の原因は暑さ。
わたしはがっつりメタボ、生活習慣病で毎月医者通いするポンコツ。ウォーキングを1万歩目安でやってたんだけど、この夏の暑さでは無理。そんなところにもってきてナイアンティックは何を考えてるんだか、ユーザーの作ったルートを辿るタスクなんかも導入して、うんざりしてしまった。ひらたくいうと「このくそ暑い時に、やってられっか」だった。
ということを思いかえすに。わたしにとってポケモンGOはIngressからの流れのお散歩アプリ、ゲームとしての位置が大きかったんだなあ、と。
Ingress、ポケモンGOのウォーキングのおかげで、メタボの数値が先生も感心するぐらいには好転したのも事実。
で、ポケモンGOを立ち上げないと、GBL(GOバトルリーグ)へのモチベーションもがっつりなくなった。
GBLは集中力という名の体力が必要なので、やっぱりこのくそ暑さで消耗してる時にやれるもんじゃなかった。
もちろん、それだけじゃなくて、ほかもろもろ時間を使わなきゃいけないことがあったことはあったけど、時間てのは作るものだし、時間の取り合いでポケモンGOの優先順位ががくっと下がったということ。
今期はまだ今月25日までやってる。時間が取れれば参戦するかぁ、ぐらいでやっていこう。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
晩秋いろいろ

特にネタはなく。ここ最近のメモ。
・旧twitterとFacebookはスマホのアプリを削除したら見なくなった。
唯一、呪術廻戦の考察、ネタを検索するためにtwitterはたまに覗いてたんだけど、検索対象とはなんの関係もないツイートの混入率が高くてうんざり。検索される=注目の集まるツイートに金目当てのツイートを混ぜる。イーロン・マスクによる仕様変更、インプレッションで金になる、あきらかにその弊害。
残念ながら、ネットは「悪貨は良貨を駆逐」してしまう。
牧歌的な性善説でなりたっていたのはネットに参入するハードルがそれなりにあった頃の話、だ。
てことで、twitterも見なくなった。
facebookというかザッカーバーグのMetaもパレスチナ絡みで投稿の表示をいじってることがBBCのニュースになってたし、論外。
https://www.bbc.com/news/technology-67169228
どっちもそのうちアカウント削除する。
マストドン系のSNSに切り替えて正解だった。
唯一、instagramだけは(今のところ)残すしかない。
みけさんの写真館になっちゃってるからなあ。写真をサルベージできたら削除する。
・おひとり様ActivityPubサーバー。
ホームタイムラインの表示が重い、遅いのでキャッシュすることにしたら劇的に早くなった。
投稿ひとつごとに、アイコンと表示用の名前を取得するためだけにactor情報をリクエストしてたので、それをキャッシュに変更。
ネットについていろいろあるけど「速度は正義」だ。これだけは100年前から絶対の真理。
極端だけど、表示速度が0.5秒違うだけで別ものになる。
ゴソゴソいじったところは
「おひとり様ActivityPubサーバー自作実装メモ」
↑ここにメモ追加。
5分以上前のことなんて絶対忘れるから、5分後の自分用に、5分前の自分からメモをしておく。
・インボイス
免税事業者、インボイスには対応しないということで、ずっと続いてた仕事の依頼がひとつ切れてしまった。
電子書籍制作で・在宅仕事で、というのは、わたしとしては理想的で一番ありがたい仕事だったので、めちゃくちゃ痛い。
それっぽいのをまた探さないといけない。
てことでリクナビNEXTを10年ぶりぐらいに覗いたら、若い世代向け、だよなあ。
還暦過ぎたシニアはない。安く使い捨てにできる世代、人材なので、マッチング次第だと思う。雇用する側にしてみりゃ使い得、じゃないのかな。
インボイスってなんのために始めるんだ?くそだ。
・柏のキネマ旬報シアター
「オオカミの家」というチリの人形アニメを観るために行ったんだけど。
ここがスゲー変な映画館(褒め言葉)で面白かった。
https://www.kinenote.com/main/kinejun_theater/special/
キネマ旬報シアターは、1日中楽しめる映画館を目指しています。
1階にある売店では、豊富な種類のドリンクや、フードをご用意。また2階には『キネマ旬報』のバックナンバーや、映画書を取りそろえた当劇場ならではの【KINEJUN図書館】がございます。広いエントランスで気持ち良く上映までのお時間、鑑賞後のひとときをお過ごしください。
売店フロアのソファでいかにも近所のおとうさんがビール飲んでドーナッツ食べて、うたた寝してるし。
ほかでは見かけたことがなかった、キリンのクラフトビールがあったし。
柏も駅前再開発とやらでキネマ旬報シアターのはいってる高島屋もどうなるかわからないので、あるうちにまた行きたい。
・弁当
以前、コロナに罹患したのは逆算すると八重洲の地下街か京橋での昼飯、飲食店が原因。
それ以来弁当だったんだけど、今年の夏の異常な暑さで傷むのが心配で、弁当は中止。コンビニでサンドイッチばかり。で、お茶や野菜ジュースなんかもろもろ買うと計1000円前後。こんなエサみたいなもんに1000円?とか思うとそれだけでげんなりしてた。弁当なら栄養面的にも考えて作るし満足感がちゃんとある。
もともと、エロ出版社時代も後半は弁当を自作持参してた。
料理するのは好きなので、弁当は楽しみのひとつでもあった。
で、弁当復活にあたり、無印良品でアルミの弁当箱を買ってみた。
https://www.muji.com/jp/ja/store/cmdty/detail/4547315254620
1890円也。サイズもちょうどいいし、買って正解だった。
とはいえ、いつの時代の蟹工船、というか、シフト仕事では休憩も取れずメシも食えず9時間、なんてことがあって、弁当が無駄になってしまうことになる…労働基準法とかどこの世界だ。
還暦を過ぎると「晩秋」というか「初冬」というか…
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
おひとり様ActivityPubサーバーにLike実装

おひとり様APサーバーにもLikeを実装してみた。
自分の投稿に対するLikeはどうでもよくて、Likeされる方じゃなくて、する方の実装。
せっかくSNSだし、WEB拍手的なノリ(あれ?もしかして「Web拍手」って死語?)でポチっとできればなあ、と。
リプライ(返信する)のはちょっと厚かましい?馴れ馴れしい?恥ずかしい?空気読んで遠慮した方がいい?的なところに「WEB拍手」という控えめなリアクションは(主語を大きくすると)日本人向きの仕組みだなあ、と思う。
Likeに使うjson
{"@context": [
"https://www.w3.org/ns/activitystreams",
{"Hashtag": "as:Hashtag"}],
"type": "Like",
"id": "https://tokoroten.doncha.net/t2aki#a69b50a5-636b-11ee-83a8-d34678f16ad4",
"actor": "https://tokoroten.doncha.net/t2aki",
"object":"https://example.com/users/status/123456"}
typeがLikeのjsonで、actorは自分、objectに対象となる投稿のURLというお約束。
このjsonをお相手のエンドポイントにPOSTするだけ。他になにかが必要ということもなかった。
ブーストと違って運用的に考えなきゃいけないこともないんでサクっと実装できた。
とはいえ。
Like、イイネも承認欲求の対象、ハマると危険なので、自分の投稿に対するLikeは取得しない。
この危険はブースト(リツイート、リポスト)と同じだ。
これらに引きずられて言わなくてもいいことを言ってしまったり、デマ拡散に加担してしまったり。ロクなことはない。
SNSのもっともダメなところだ…SNSのせいにしちゃいけない。か。ひとの弱いところをつかれてしまう、ということだな。
[10/17 05:23:58]
とか言いつつ、前言撤回。
自分に対するLikeも取得するようにした。
Likeするひとにしてみたら、Likeしたのになんの反応もないんじゃ無視されてるように見えるなあ、と。とりあえずLikeについては3日間保持ということで対応。
河童べこ。久しぶりにガチャガチャ回してる。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
おひとり様ActivityPubサーバーのjsonの実例

今さらだけど改めて。
おひとり様ActivityPubサーバーで投稿する・しゃべる時に必要になりそうなもの。
・投稿本体(Note)
・画像添付
・メンション(リプライやDM)
・ハッシュタグ(検索する/される時のキーワード設定)
投稿本体は当たり前として。
画像添付やMention、Hashtagも実装してあるので、忘れないうちにメモ…というか、ActivityPubで使うJsonの実例、exampleをメモ。ソースを見ればいいだけの話なんだけど、覚えてないことの方が多いので具体例をちゃっちゃと見られるように。
以下のJSONがウチで使ってる、上記を実装した投稿のフルセット。
投稿はCreateの中のobjectにあるNoteが本体で、その中の本文(content)はともかく、それ以外について。
{"@context":
["https://www.w3.org/ns/activitystreams",
{"Hashtag": "as:Hashtag"}
],
"type": "Create",
"id": "https://tokoroten.doncha.net/t2aki/activity/00341-20231003",
"url": "https://tokoroten.doncha.net/t2aki/activity/00341-20231003",
"published": "2023-10-03T00:01:31Z",
"actor": "https://tokoroten.doncha.net/t2aki",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://tokoroten.doncha.net/t2aki/followers"],
"object": {
"type": "Note",
"id": "https://tokoroten.doncha.net/t2aki/items/00341-20231003",
"url": "https://tokoroten.doncha.net/t2aki/items/00341-20231003",
"published": "2023-10-03T00:01:31Z",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://tokoroten.doncha.net/t2aki/followers",
"https://mstdn.jp/users/donbe2023"],
"attributedTo": "https://tokoroten.doncha.net/t2aki",
"content": "\u003ca href=\"https://mstdn.jp/users/donbe2023\"\u003e@donbe2023@mstdn.jp\u003c/a\u003e うちでも花を飾ることになって、駅前の花屋さんを見てると、けっこうな人が花を買っていてビックリ。ほんと、今さらだけど、世間のひとたちはカジュアルに花を買っていくんだなー。\u003ca href=\"https://tokoroten.doncha.net/tameike.pl?tag=%23%E3%81%B2%E3%81%BE%E3%82%8F%E3%82%8A\"\u003e#ひまわり\u003c/a\u003e",
"attachment"[
{"type":"Document",
"mediaType":"image/png",
"url":"https://tokoroten.doncha.net/20231003.png",
"name":null,
"blurhash":null,
"width":271,
"height":320}
],
"tag": [
{"name":"@donbe2023@mstdn.jp",
"type":"Mention",
"href":"https://mstdn.jp/users/donbe2023"
},
{"name":"#ひまわり",
"href":"https://tokoroten.doncha.net/tameike.pl?tag=%23%E3%81%B2%E3%81%BE%E3%82%8F%E3%82%8A",
"type":"Hashtag"
}
]
}
}
・画像添付
Noteのアタッチメントという配列に入る。
"attachment"[
{"type":"Document",
"mediaType":"image/png",
"url":"https://tokoroten.doncha.net/20231003.png",
"name":null,
"blurhash":null,
"width":271,
"height":320}
]
配列の中、typeがDocumentのブロックひとつが1枚の画像の情報。ウチは1枚限定なので、ブロックはひとつだけ。複数入れる場合はここに追加。
画像情報として。
・画像のURL
・画像の種類(mediaType)
・名前(たぶんAltで使われる)
・blurhash
↑ぼや〜っとしたプレビュー用のハッシュ文字列。よくわからないんで未対応。
・画像の縦横サイズ
・メンション(リプライやDM)
Noteの中の宛先「cc」にお相手のinbox、エンドポイントを追加。
"cc": ["https://tokoroten.doncha.net/t2aki/followers",
"https://mstdn.jp/users/donbe2023"]
「to」に入れるのか「cc」に入れるのか、特に決まりごとはないっぽいけど、現状これで問題なくお相手に通知が届く。
ただ、twitterやfacebook、あるいはLINEのように相手にだけ直接送ってそれ以外のひとに見えなくするのは無理。ActivityPubというか分散型サーバーというか。サーバー管理者はPublic指定がないものも含めて全部見ることができる。
twitterだからLINEだから安心とは言えないんだけど、なにかあった時に、抗議する先が一箇所なのか、あちこちいろいろあるのかということ。
ネットは信用しちゃいけいない(閑話休題)
Noteの中の「tag」の配列にMentionのブロックを追加。
"tag": [
{"name":"@donbe2023@mstdn.jp",
"type":"Mention",
"href":"https://mstdn.jp/users/donbe2023"
},
Mentionブロックは
・お相手の名前
・お相手の届け先(エンドポイント)
・ハッシュタグ(検索する/される時のキーワード設定)
@context": [
"https://www.w3.org/ns/activitystreams",
{"Hashtag": "as:Hashtag"}
]
ハッシュタグはActivityPubで決められたものじゃないということで「@context」に定義する必要があるらしい。
定義したら、Mentionと同じくNoteの中の「tag」の配列にHashtagのブロックを追加。
"tag": [
{"name":"#ひまわり",
"href":"https://tokoroten.doncha.net/tameike.pl?tag=%23%E3%81%B2%E3%81%BE%E3%82%8F%E3%82%8A",
"type":"Hashtag"
}
Hashtagブロックは
・タグの名前
・タグのURL
ハッシュタグは、おひとり様ActivityPubサーバーで使う意味があるか疑問。
そもそもハッシュタグは複数人で共有するもの。それをひとりしかいないサーバーで使う意味は、たぶんない。ただまあ、データベースに検索かける時にリンク一発叩けばいいだけになるので、便利っちゃ便利なので実装してみた。
仕様・規格からちゃんと読めと言われたら謝るしかできないんだけど、何をするにしても、素人なので実例、exampleが欲しいんだよなあ。
にしても、駅近くの花屋さんの盛況っぷりに驚いた。ウチに花を飾る、なんてことを自発的にやったことがなかったんで、なおさら。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」