晩秋いろいろ
特にネタはなく。ここ最近のメモ。
・旧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日間保持ということで対応。
[2024/01/11 02:32:48]
like一覧を実装してみた。
Likeしたものについては、タイムラインのJSONと違って投稿のURLだけで投稿内容はないので大丈夫だろうとそのまま保存してたら…上記したように、Web拍手的なノリでLikeをポチっとしてるので保存しているJSONが大量に溜まっていく。
ページングするのも面倒くさいんで、タイムライン同様、保存上限を設定して古いものは削除ということにした。保存期間は2週間。
一覧するのは日付と投稿のリンク。リンクを叩いてNoteのJSONをGETして表示。投稿を確認して手動でも削除できるようにした。
「いいね」するのもされるのも、その時その場、だなあ。
残しておきたいような投稿は、それこそひとり掲示板にメモしてるしね。
河童べこ。久しぶりにガチャガチャ回してる。
» ローカル環境で電子書籍を作る、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」に入れるのか、特に決まりごとはないっぽいけど、現状これで問題なくお相手に通知が届く。
[2024/09/04 07:41:50]追記
メンションは「to」にお相手のinbox、エンドポイント、「cc」に自分のフォロワー、というのがお約束っぽい。
ただ、twitterやfacebook、あるいはLINEのように相手にだけ直接送ってそれ以外のひとに見えなくするのは無理。ActivityPubというか分散型サーバーというか。サーバー管理者はPublic指定がないものも含めて全部見ることができる。
twitterだからLINEだから安心とは言えないんだけど、なにかあった時に、抗議する先が一箇所なのか、あちこちいろいろあるのかということ。
ネットは信用しちゃいけいない(閑話休題)
[2024/09/04 07:41:50]追記
「to」にお相手のinboxだけにしておくとActivityPubの約束事として、お相手だけしか見ることができない・第三者は見ちゃいけないことになっている。この「約束事」を守ることで成り立っているのがFediverse。
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」
おひとり様ActivityPubサーバーにブースト実装
twitter(現X)に代表されるSNSの一番の特徴はリツート(ブースト、リポスト)
これがあるおかげで?せいで?SNSへの投稿は拡散力を持つことになった。良い悪いはおいといて、ウチのおひとり様APサーバーにも実装してみた。
考えなきゃいけない一番の優先順位は。
「デマの拡散に加担してはいけない」
なので、ブーストはブースト取り消しの実装と同時。
ブーストはActivityPubだとタイプAnnounceのjson。対象となるNoteのIDをobjectに入れる。
宛先の「cc」には自分のfollowersに、対象となるNoteの投稿者も含めておく。
{"@context": ["https://www.w3.org/ns/activitystreams", {"Hashtag": "as:Hashtag"}],
"type": "Announce",
"id": "https://tokoroten.doncha.net/t2aki/announce/TIMESTAMP",
"actor": "https://tokoroten.doncha.net/t2aki",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": [DELIVER-LIST],
"object":"NoteID"}
Announceの取り消しはタイプUndoのjsonに、Announceに使ったjsonをobjectにそのまま入れる。
{"@context": ["https://www.w3.org/ns/activitystreams", {"Hashtag": "as:Hashtag"}],
"type": "Undo",
"id": "https://tokoroten.doncha.net/t2aki#UUID",
"actor": "https://tokoroten.doncha.net/t2aki",
"object":ANNOUNCE-OBJECT}
以上のjsonを自分のフォロワーさんのinboxに署名付きpostでリクエストをすれば、ブースト・ブーストの取り消しとなる。
これだけっちゃこれだけなんだけど、ブーストはスクリプトじゃないところに問題があるんだよなあ。
ブーストを実装したいと思ったのは。
いま、フォロワーさんの数が16人ほどで拡散力もなにもないんだけど、それでもイベントのお知らせや、発売の宣伝なんかは、微力ながら協力できればなあ、というのが動機。
せっかくSNSなんだし。
ブーストはヤバイなあと思うのは。
デマの拡散に加担する可能性、というのがもちろん一番で。
それ以外というか、他人の投稿を拡散することで自分が何かを語ったつもりになる、という乗っかりの承認欲求、自己顕示欲を得られるところ。
自分の頭で考えて自分の言葉で語ることをしなくなる、簡単に闇落ちする(自戒をこめて)
実装はしたけど、ブーストするのは基本的にイベントや発売告知だけにする。
また、ウチのおひとり様は、他人のデータを持たない、というのが原則。
なので、Annouceの投稿も期限つき。最長7日間にした。
イベントなんかは終わってたら残念だし、発売関連は初動に少し貢献できれば十分かなあ、と。
ひとつ何かを実装するのに、やっぱりけっこういろいろ考慮しなきゃいけないことってあるもんだなあ(今さら
自分のとこだけのことならどうでもいいんだけど、ActiviyPubで繋がるわけだから、そりゃそうかという話。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
iPhone13ProMAXに機種変更
今日はiPhone15の予約開始の日。
そして、わたしのところには整備品で買ったiPhone13ProMAXが届いた。これまで使ってたXSでそれほど問題も感じてなかったんだけど、バッテリーの持続時間が倍違う、という家人のプッシュに乗ってしまった。
アップルケア(2年保証)や、ケース、カバーもろもろで17万円ぐらい。ビンボ世帯にとっては安い買い物じゃないんだけど、正規で買うよりは安かったし、などなどモゴモゴ。
iPhoneに限らず。スマホで最優先されるべきはバッテリーの持続時間。ネットに繋がって、たまには電話できればそれで十分で、それ以外はすべてオマケ。
機種変更でハマったのが。
データ通信は問題なかったんだけど、ネットワークが繋がらない。IPアドレス取得のあたりが怪しい?と思ってキレちらかしてたら、家人がVPSをインストールしてあっさり接続、解決。
iOSとmineoの問題なのか、よくわからないんだけど、mineoのページに行って、VPSをインストールする必要があったらしい。
それ以外は問題なく、XSの環境がそのまま13に移行して、今まで通りに使える。
横に並べておいておくだけで移行できるのって、未来だよなあ、と感心するばかりだった。
これはXSで撮った13の写真。13はカメラが売りらしいんで、それっぽい対象を見つけたら撮ってみてみよう。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
iPhoneで撮った写真の向きが逆
iPhoneで撮った写真が、タテのはずがヨコになったり、ヨコのはずがタテになったり。iPhoneを縦に構えて撮ってるのに、写真では横になる。
前からちょっと気になってた。
「写真」アプリだと意図通り縦で表示されている。
WEBにアップすると横に転んでしまう。意味がわからない。なんでやねん。
検索してみるとiPhoneのジャイロセンサーで縦横が決められるという話が出てくるんだけど、なんか違う。
identify -verbose
してみたら。
Geometry: 4032x3024+0+0
Orientation: RightTop
て、思いっきり横位置で保存されていた。それをExifのOrientationで縦に起こしている。
RightTop
「Right」は横向きで保存されている上側を右側にする
「Top」は横向きで保存されている左側を上側にする
という指示。この通りに表示すれば時計回りに90度回転して縦位置となる。Exif情報を読んで表示できる環境(アプリ)であれば。
とはいえ、そもそも横位置で保存されてしまってるんで、そのままjpgファイルをpngファイルに変換したら横写真になる。
しょうがないんで、画像の回転指示(Orientation)を確認して、指示が入っていたらRotateして縦位置で保存するようにした。
Image::ExifToolというexif情報を取得できるモジュールがlolipopにはインストールされていたので実装はすんなり。
my $is_rotate;
my $exif = new Image::ExifTool;
my $pinfo = $exif->ImageInfo($ofile);
$is_rotate = $1 if( $pinfo->{'Orientation'} =~ m!Rotate *90 *(CW|CCW)! )
iPhoneで縦位置で写真を撮る=デジカメを縦に構えて写真を撮るということらしい。
ということなら、写真を横で保存するのは正しい動作。てことで回転は90度決め打ち。
だけど、Exif情報にカメラ位置補正を入れるぐらいなら、保存する時に補正してくれ。
てのはともかく、上野の科学博物館で開催の「海展」は、ほんと語彙をなくすほどの凄さだった。どの展示も目を奪われて立ち尽くす時間が長くなる。はやぶさがリュウグウから持ち帰った砂を見られるとは思わなった。ほんとスゲー。
まじオススメ!
「国立科学博物館」
「海 ―生命のみなもと―」
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」