(わざわざそれ用の標準があるのに新しく生やしたら互換性周りが面倒になるだけだし) 考えてたのを投下してようかな

AmaseCocoa
@cocoa@hackers.pub · 11 following · 11 followers
日本語多め
Pythonista/Author of apkit. An Modularized ActivityPub Toolkit.
main (Iceshrimp)
- @AmaseCocoa@i.amase.cc
YarukiNotFound
- amase.cc
Zenn
- @amasecocoa
@hongminhee洪 民憙 (Hong Minhee)
@cocoaAmaseCocoa I've seen them go by before but don't have links handy
@thisismissemEmelia 👸🏻
@hongminhee洪 民憙 (Hong Minhee)
@cocoaAmaseCocoa
FEP-844e: Capability discovery https://codeberg.org/fediverse/fep/src/branch/main/fep/844e/fep-844e.md
See also, FEP-0151 section on capability detection: https://codeberg.org/fediverse/fep/src/branch/main/fep/0151/fep-0151.md#capability-detection
Signed, a guy with links 🙂
そして844eっていうのがあるらしいことを知った
あーロードバランサーを想定してなかった
feature-info?
まぁこれはnodeinfoのmeta使ってある程度決まったjsonを埋め込むようにすれば良さそうだけども。
こんな感じにするとか?
[
"fep:8b32",
"rfc:9421",
"protocol:activitypub"
]
@cocoaAmaseCocoa
@hongminhee洪 民憙 (Hong Minhee) sorry to reply in English, but yes, there's a few FEPs along these lines, but technically you don't need nodeinfo for AP, so you wouldn't passively discover this information, unlike detecting certain properties in json-ld objects over activitypub. Feature discovery can be hard too because what features you think they have (cached) might not be the features they actually have at present, or if you're upgrading from version 1 to version 2, and you have multiple backend servers with a load balancer, you might get unpredictable results from nodeinfo as the update rolls out (e.g., node 1 gives new feature, node 2 & 3 gives old feature, you'll only get new feature 1/3 of the time and your old nodes won't be able to immediately handle new feature until you roll out the update to all nodes, which would cause unpredictable behaviour)
大量のアカウントが吹き飛んだ
このスマホ壊れた??
Bitwarden開けない
普通に困る
このスマホ壊れた??
Bitwarden開けない
なんか色々変
実装間でのFEDERATION.mdみたいなのがほしいかもしれない🤔
feature-info?
まぁこれはnodeinfoのmeta使ってある程度決まったjsonを埋め込むようにすれば良さそうだけども。
こんな感じにするとか?
[
"fep:8b32",
"rfc:9421",
"protocol:activitypub"
]
実装間でのFEDERATION.mdみたいなのがほしいかもしれない🤔
なんか鍵がそもそも検出できてなさそう
だとすると謎なのがなんで8b32では検証が通ったのか
RFCの実装が原因でActorの鍵が存在しないって言われることあるのかな?
なんか鍵がそもそも検出できてなさそう
なんかGemini使ってたらapsigでencode_multibaseの時に秘密鍵じゃなくて公開鍵をmultibaseエンコードするようになってたことが判明した
RFCの実装が原因でActorの鍵が存在しないって言われることあるのかな?
日本で一部の地域に津波警報が出ていてなぜか軽量なクライアントを書きたくなったから書いた
https://simple-client-for-mastodon.pages.dev/ (Mastodon) https://misskey-simple-client.pages.dev/ (Misskey)
https://github.com/AmaseCocoa/simple-client-for-mastodon https://github.com/AmaseCocoa/misskey-simple-client
1日1翻訳くらいしたさがある
codebergのプレビューがtofuになってる...
codebergのプレビューがtofuになってる...
シンプルになった
もしかしたらRFC実装のテストサーバーのベースに使ってたFEPのテストサーバーが壊れてた説が
Gemini CLIを使ってみた
fedify lookup
ではed25519-keyを認識してるのにfedify inbox
で検証しようとすると鍵がないって言われるのが謎
今日の進捗
ここからはひたすらFedifyの実装を読み解きながら動作が違う部分を探して直すだけのお仕事 (苦行)
謎にうまく取得してくれない
結構apsigの9421の実装ってFedifyのコードが参考になってる
細かい動作とかはコード見たほうがわかるので
今日の進捗
うーん?
Draftとして署名してないから当たり前のように弾かれたんだけどもしかして考えてたのと検証の動作が違う?
Signature-Input
かな
うーん?
Draftとして署名してないから当たり前のように弾かれたんだけどもしかして考えてたのと検証の動作が違う?
@signature-params
が原因なのは分かったもののそれをどうやって扱うかがわかってない
うーん
やっぱり検証が進められないので無理かも (fedifyはウェブフレームワーク側のエラーはあっても表示してくれないかも)
どうしてこうなるのかの箇所は特定できたので続行
うーん
やっぱり検証が進められないので無理かも (fedifyはウェブフレームワーク側のエラーはあっても表示してくれないかも)
一瞬Fedifyが400返しつつ何もエラーも表示せず見た感じリクエストとしても処理しなくなったと思ったら再起動したらそのあとからConnectionResetErrorが発生するようになった
400帰ってきてるのにどちらも何のエラーも吐き出さないから原因がわからない
一瞬Fedifyが400返しつつ何もエラーも表示せず見た感じリクエストとしても処理しなくなったと思ったら再起動したらそのあとからConnectionResetErrorが発生するようになった
RFC9421の実装を簡易的にしたのでテストしようとしたらMissing actor.
で詰まった🫠
Createのactorの部分にURLを入れたのが悪い?🤔
8b32用のテストサーバー流用してたせいでヘッダーをbodyとして送信してるせいだった
???
開発用に作った8b32タイプのテストサーバー流用して書いたから残ってる??
いやactor取得しようとしてないから意味不明
RFC9421の実装を簡易的にしたのでテストしようとしたらMissing actor.
で詰まった🫠
Createのactorの部分にURLを入れたのが悪い?🤔
???
開発用に作った8b32タイプのテストサーバー流用して書いたから残ってる??
RFC9421の実装を簡易的にしたのでテストしようとしたらMissing actor.
で詰まった🫠
Createのactorの部分にURLを入れたのが悪い?🤔
うーーーーーーーーーーん
bitwardenが悪さしてるのかFedify Inboxでトンネル付きだと立ち上がってくれない
gRPCとかみたいなもので言語に依存しないActivityPub実装のテスト用のツールを書きたい
@cocoaAmaseCocoa apmodelは現在内部的にJSON-LDプロセッサを使用していないようですが、今後JSON-LDプロセッサを組み込む予定はありますか?それとも、パフォーマンス上の理由で意図的にJSON-LDプロセッサを避けているのでしょうか?
@hongminhee洪 民憙 (Hong Minhee) そのあたりは過去に検証したのか忘れたんですけど、単純にpyldがアクティブにメンテナンスされてなかったのと(現状は1年近くmasterにコミットがない、rdflibもJSON-LDは処理できるもののそちらは試していない)、エラーを吐き出して正常に処理できないみたいな理由だった気がします🤔 (後者に関しては実際そうだったかは覚えてないので後で試してみます)
パフォーマンスは多分関係ないと思いますけど、試しに組み込んでみて許容できないレベルまで低下するようなら今後も避けるかもしれないです
記事にするほどではないんだけど何となく書きたかったからGistsに置いておくことにしたやつ
なぜapkitやapsig、apmodelを作成したのか
https://gist.github.com/AmaseCocoa/f5f256eb28c5da88191231dd4fe55030
それはそうとさくらのメールボックス、容量20Gくらいしかないけど結構安くていい感じ
1年で2千円もいかなかった気がする (うろ覚え)
メールサーバーのホスト、1年分しか払ってないからもし来年払い損ねたらそれに紐づいているアカウント (hackers.pubとか)は全て失うことになる😇
ドメインは確か2027まであったのでサーバー借り直せば良いとはいえ
暇なのでLitestarのASGIの部分を無理やりRSGIで動くようにしてみてる
issueの通りASGIへの依存が深すぎて無理でした
暇なのでLitestarのASGIの部分を無理やりRSGIで動くようにしてみてる
How to install Sharkey/Misskey (with fixes for FreeBSD) for Fedora 42

AmaseCocoa @cocoa@hackers.pub
When installing patched versions of Misskey and Sharkey on Fedora 42, compilation errors related to `uint8_t` and `state` may arise due to the default GCC version. This guide provides a workaround by compiling and using a newer version of GCC/G++. The process involves installing necessary dependencies, downloading and extracting the GCC source code, configuring the build with specific flags, and compiling GCC using the `make` command. After installation, the guide details how to modify the `pnpm install` command for Misskey and Sharkey to use the newly compiled GCC, ensuring a successful installation. By following these steps, users can resolve the compilation errors and properly install Misskey and Sharkey on Fedora 42.
Read more →