ため池
»» [ところてんx5]
@t2aki@tokoroten.doncha.net
▲ プロフィール ▲
昭和の還暦です。小説や映画、マンガ、アニメが好きです。
いろいろポンコツですが、よろしくお願いします。
perlによる自作実装の「おひとり様ActivityPubサーバー」です。
自作実装のActivityPubサーバーについて
» 「おひとり様ActivityPubサーバーの構成」
users : 1(my private server)
website : On Golden Pond
blog : ひまつぶし雑記帖
since 2023/07/26
武蔵野市ハクビシン・アライグマ対策事業について
https://www.city.musashino.lg.jp/gomi_kankyo/nezumi_gaichu/1027269.html
ウチの近くでもハクビシンらしきものを見かけることがあって、視認でわかるのかの資料
#メモ
めちゃくちゃ今さらだけど。
perlのutfフラグでの文字コード対応でEncode::decode encodeがスクリプトのあちこちに入ってごちゃごちゃするようなケース。
unpack packの「U」で単純にバイナリとして扱うと、元の文字コードを意識することなく、すっきり書けるんだった。
#メモ
なんかめっちゃ久しぶりにinner joinだの left outer join とかSQLを書いてる。カテゴリを全部は無理でもサルベージできそうなものはなんとかしようかと。
DBをそのまま流用すると昔懐しのfacebookだのtwitterだのいらんものが絡んでたりなので、今回構成を変えたのが敗因orz
#メモ
やっぱ謎すぎる
https://docs.joinmastodon.org/spec/security/#ld
https://amasecocoa.github.io/fep/8b32/
Activityやobjectに署名をつける理屈はわかる
目的→本文の改竄検知
でも、actorの削除に対応するため、というのがよくわからない。
署名を検証するための公開鍵はactorのJSONにあるんで公開鍵もactor削除でなくなってるのでは…
それとも、actorが削除されてもそのJSONは削除しないってこと?
#メモ
500 header line too long
なんじゃこりゃ? とグーグル先輩に聞いてみたら
「MaxLineLength」を設定すれば解決した
>push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, MaxLineLength => 16 * 1024);
#メモ
もともとPOSTはこちらからアクションを起こす状況で、のべつまくなし、ということでもなく、それなりに限られた状況でのこと。
どっちかというとGETが問題で、こっちは飛んでくるリクエストの署名確認のためにひっきりなしにリクエストを飛ばしてる。んだけど、こっちはお相手の署名がわかってる状態なので、それに合わせればいいだけ。
なので、リクエストの再送が生じることは生じるんだけど、「激増」とまではいかない。
#メモ
mastodon.socialからはsignature-inputは飛んできてないけど、4.5.0のソースをgrepしたら@target-uriとか引っかかったから、きっとverifyは9421でもやってくれそうだなあ。こっちの別垢相手に手作り試行錯誤してみるか…
#メモ
今日時点、観測されたのはholloだけっぽいけど、Mastodonで採用されたので、今後広がるか。調べものから始めないと
https://tex2e.github.io/rfc-translater/html/rfc9421.html
#メモ
昨日ハマった406エラー
「サーバー駆動型コンテンツネゴシエーション」というやつらしい
https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/Content_negotiation
#メモ
ActivityPubを自作実装した時に悶絶吐血したのがHTTP Signature。
今度Mastodon4.5からこの署名がRFC9421形式(?)になった、てことで、こいつが標準になった時にまた悶絶しないように、仕様・実例を解説してくれている記事URLのメモ
https://argrath.ub32.org/slide/2025/1114/index.html#/
#メモ
連日CGI遊び::ひまつぶし雑記帖
https://t2aki.doncha.net/?id=904953600
1998年のエントリだから27年ほど前。
この頃からperlを使っていて、この頃の知識レベルのまま、2025年の今もperlを使ってる、ぞ。
…というのを引っ張りだしてみる年末、師走
#メモ
『絶滅しそうな世界の文字』
https://www.kawade.co.jp/np/isbn/9784309229751/
これは読みたい(見たい)
#メモ
/api/v1/に対するPOSTリクエストにはSignatureがない。
そもそもうちはAPIとか用意してないんでスルーだけど、outboxを要求するGETリクエストと同じ扱いにすべきか…
#メモ
1日の投稿数を調べる時のSQLiteで日付の扱い。
ほとんど秒数にしていて、それを「日付単位」って?とか、毎度過去の自分のスクリプトフォルダをgrepしてる馬鹿丸出しw
…で、なんかズレてね?とか思い出したのがlocaltimeとgmtimeの違い。これも毎回やらかしてる
date(unixtime, 'unixepoch','localtime') as cdate
#メモ
Misskeyとフォークのfirefishやiceshrimpは編集更新(Update)を反映するのに、Misskey.ioは反映しない。
Mastodonは最近のバージョンから編集更新ができるようになったという話を見たと思ったんだけど、mstdn.jpはちょっと古い?v4.1.25なのに編集更新を反映してくれる。
#メモ
just meに設定したNote。
mastdon.socialは引用不可、fedibirdとiceshrimpは引用可。
引用の表示は
fedibirdはリンク表示のみ
iceshrimpはインライン展開
#メモ
mastodon の引用制御はpublic / followers / just meの3パターンで、これは引用できるかどうかのフェーズで、表示に関してはどのパターンの引用投稿でも展開してくれるんで関係ない(念のため
てことは自己完結型引用の場合、無用にquoterequestを飛ばされないように、just me(引用可は自分だけ)設定にしておくのが迷惑もかけなくて済む
#メモ
ターミナルベースのウェブブラウザ Chawan が 0.2.0 リリース
https://biggo.jp/news/202506170114_Chawan_0.2.0_TUI_Browser_Update
>Chawan が予想外にもモバイルターミナルアプリケーションと互換性があることでした。ユーザーは人気のターミナルエミュレータである Termux を使用して Android デバイスでのブラウジング体験が成功したと報告
へええ。こんなのがあったんだ。
スマホのターミナルで立ち上がって、チョロメや狐より軽いとか
https://chawan.net/
#メモ
linux mintのWiFi接続が切れる問題。検索するといろいろヒットして、たぶんドライバの問題だと思いつつ、省電力モードを切れば解決、という記事があったんでとりあえず
default-wifi-powersave-on.conf
の
wifi.powersave を3から2にして様子見。
#メモ
ノパソ
→作業する場所を選ばない。持ち出してどこでも作業
→本体のストレージが貧弱。データ類はSDカードに展開
デスクトップ
→キーボードとディスプレイが快適
→本体のストレージに必要なソフトもインストールし放題
ノパソは作業してればそのままバックアップ取ってるようなもんだから、そこは強い。
ノパソ3台のOS問題。ChromeOSもWINDOWSもハードが古くなってOSのアプデに見捨てられてもしかたがない。
…特にChromeOSはたしかサポート保証期間、サイクルがそんなに長くなかったような
#メモ
めちゃくちゃ今さら。
diff -u0 orig new
差分の前後行を表示させないオプション「-u0」
違いのある行だけを表示させるのでぱっと見にわかりやすい、ような気がする。
まずはvimdiffとかwinmargeでやるんだけど、最終確認時点で納品件数が多いような時は、ターミナルでdiffとlessを使ってざっくり眺める方が手っ取り早い
#メモ
W3C標準化活動:RDF Dataset Canonicalization
https://www.iij.ad.jp/dev/report/iir/063/02.html
JSON-LDの正規化ってなんかめちゃくちゃ難しいじゃないか(小並感
データを定義づける?のは面白い、ということだけはわかった(超小並感
#メモ
スリムで効率的なツールアシスタント
https://douni.one/jp
へえええ。こんなサイトがあるんだ。知らなかったけど、便利そうなので後で見る
#メモ
https://framasoft.frama.io/mighty-network/mightynetwork-perl/perldoc/MightyNetwork/Doc/JSON-LD-signatures/
https://json-ld.org/playground/
https://medium.com/@johnrcallahan/linked-data-signatures-with-ruby-3fa4dbc8e1fb
ちんぷんかんぷん(死語)だけどリンクだけでも
#メモ
そういやJSON-LD署名が未解決だった…。
https://github.com/mastodon/mastodon/blob/main/app/lib/activitypub/linked_data_signature.rb
↑「to_be_verified」がどんな文字列になってるのか、だなあ。
HTTP Signatureはその実例を掲載してくれてるサイトがあるけど、こっちは見当たらない。
A.I.の時代、グーグル先生の御威光も通用しなくなってるのかな
#メモ
perlでWORDファイルを解析して、テキストに出力しつつルビや圏点、ボールドなんかを検知して反映させる、てなことやってる。
とかいうとなんか面倒くさそうだけど、.docxファイルはただのxml。今回はどうなの?てことで確認してみたら、テキスト以外に何もなかった。ワードで書式なしテキストで保存したものと同じという拍子抜け…。
とはいえ、改ページや扉の指定がないのは大丈夫か。
#メモ
Q:画像サイズの種類と用途を教えてください。
https://digital-faq.jp.omsystem.com/faq/public/app/servlet/qadoc?QID=000018
#メモ
https://www.nhk.or.jp/toppage/rss/index.html
https://news.yahoo.co.jp/rss
ウチは、新聞は取ってないし、TVもない。
さすがにニュースソースをいくつか決めて取得しようかと検索してみた。
NHKはともかくヤフーの方は「ニュース提供社」の中から選んだほうがいいような気がする(yahooのバイアスがかかってない方がいいよなあ…)
#メモ
約20種類の感染症 感染者数の推移・全国比較 最新ニュース - NHK
https://www3.nhk.or.jp/news/special/infection/dashboard/
ううう。見ていて楽しいデータじゃないけど、知っておいたほうがいいよなあ。
インフルエンザもきてるし、マスク、手洗い必須だ。
#メモ
…バグ潰し。
静的ページ生成といいつつ、本文部分、基本はナマのHTMLとCSSを手書きの直書き。スクリプト的にそこはなにもしない。フッターもせいぜい更新日時を入れるぐらい。サイドメニューもXMLを読み込んでHTMLを生成するだけ。
面倒なのがヘッダ。titleやurl、オープングラフ系などもページに合わせて文字列を作らなきゃいけない。このためだけのスクリプトだわ(改めて
ヘッダなんて訪問してきたひとには見えない部分なので、どうでもいいと思うんだけど…流石に21世紀だし、それっぽく整えておくとなると、だなあ。
#メモ
ありゃ。Mentionだと、toにPublic/ccにお相手とフォロワー、というパターンもある、のか。あとで確認しておくように。
#メモ
EPUB | CSS組版ブログ
https://blog.antenna.co.jp/CSSPage2/archives/category/epub
>MVOの議論(英数字は横倒し、では記号類は?)
古い記事だけど、epub3の初期の問題点がいろいろあげられていて面白い。
epubcheckでエラーにならない絵文字は、utf8を扱うアプリで問題なく表示される。
この記事を見ると、縦書きの時の「横倒しvs正立」のすり合わせに問題があったっぽくて、たぶんストアのリーダーが(面倒くさいから)絵文字対応してないままなのでエラーになる、のかな。
こりゃしょうがない。そのうちアプデされてエラーにならなくなるだろうし。
#メモ
EPUB3的にはvalidでエラーにはならないけど、配信する書店によってはエラーになる絵文字
UTF8 文字コード表 3byte (e2)
https://orange-factory.com/sample/utf8/code3/e2.html#Dingbats
ていうか、小説の文章に絵文字を使うんかい…orz
#メモ
古いMacにmacOS Sonomaをインストール
https://www.maclab.tokyo/document/macos-sonoma-oclp/8756/
へえええ。Macでこんなことできるんだ。
SSD換装が必須と書かれてるのは最近のmacosが重たいからかな.
#メモ
「ほんだし」などの和風だしの素の使用量の目安
https://okyakusama.ajinomoto.co.jp/qa/wafudashi/hondashi/025964.html
<だし汁>※煮物・みそ汁など
水またはお湯300ml(カップ1と1/2)に対し、小さじ2/3(2g)
<炊き込みご飯>
米1合(米カップ1)に対し、小さじ山盛り1(4g)
<炒めもの>
材料2人分に対し、小さじ山盛り1(4g)
#メモ
https://gitlab.com/bashrc2/epicyon/-/blob/main/README.md
No timeline algorithms.
No javascript.
No database. Data stored as ordinary files.
へええええ。こんなActivityPubサーバーがあるんだ。
フロントでjavascriptは使ってない、データベースを使わないでファイルで管理、ウチも似たような作りだけど、こっちはかなり高機能を実現してるっぽい
#メモ