海辺にて

備忘録

No.25, No.24, No.23, No.22, No.20, No.19, No.187件]

マイクロブログとしてはすっかりFediverseをメインで使うようになったものの、フォロワーの大半はXにいるのでしばらくはXにも投稿はしている。AkkomaとXに同時投稿するやり方にたどり着くのに時間はかかったが、やってみると思いのほか手軽にできた。ただし対応状況は「PCからの投稿:〇、iOSからの投稿:△、Androidからの投稿:×」で、1番よく使っているAndroidからはいまだに良い方法が思いつかないのだが…。以下、やり方のメモ。

PCからAkkoma(Mastodon)とXに投稿する
Misskey用のスクリプトがあったので見てみたらMastodon APIにも適用できそうな感じだったのでやってみた。
TwitterとMisskey、同時投稿したくない?
やってることは簡単で、Twitter本来のツイートボタンにonclickリスナーをつけ、押されたらMisskeyに対してHTTPリクエストを送ってるだけです

ただし以下のような注意点もあるため、使用は完全自己責任。
https://github.com/ZOI-dayo/Twiskey
Misskeyのトークンを文字列として保存しているため、流出に気をつけてください。

手順通りにTempermonkeyを入れ、文章投稿が出来ればいいやと思って修正したのは以下のみ。

console.log(misskey_api_key)
GM_xmlhttpRequest({
method: "POST",
url: `https://${misskey_server}/api/notes/create`,
headers: {
"Content-Type": "application/json"
},
data: JSON.stringify({
"i": misskey_api_key,
"text": text,
"fileIds": media_ids.length > 0 ? media_ids : undefined,
}),
onload: function(response) {
console.log(response.responseText);
}
});


console.log(misskey_api_key)
GM_xmlhttpRequest({
method: "POST",
url: `https://${misskey_server}/api/v1/statuses`,
headers: {
"Authorization": `Bearer ${misskey_api_key}`,
"Content-Type": "application/json"
},
data: JSON.stringify({
"i": misskey_api_key,
"status": text,
"visibility": `private`, //公開範囲をフォロワー限定にしたいため追加。デフォルトだとグローバル公開になる
"fileIds": media_ids.length > 0 ? media_ids : undefined,
}),
onload: function(response) {
console.log(response.responseText);
}
});


${misskey_api_key}や${misskey_server}は変数なのでそのまま残していても支障はない。これでXの投稿画面にMisskeyボタン(画像ソースを修正していないため)が表示されるようになり、Xへの投稿と同時にMastodonにも投稿されるようになった。

iOSからMastodonとXに投稿する
iOS13(!)から搭載されたショートカット機能だが全然使っていなかった。名前で誤解していたがRPAに近い機能のよう。
ショートカット ユーザガイド

こちらもMisskey用にショートカットを作成・配布している方がいてありがたく使わせてもらった。投稿サーバーや公開範囲は決まっているので、直接入力してなるべく選択肢は消去していく。
作成したショートカットとか

基本的な修正個所は上記と一緒だが、認証が上手くいかない部分があったのでMastodonAPI用の修正はこちらの記事を参考にした。
Mastodon API を使って iOS ショートカットからトゥートできるようにしてみる
MastodonAPIの仕様は公式ドキュメントを確認。
statuses API methods

ショートカットを呼び出すと「テキスト入力→Mastodonに投稿→テキストが入力されたXアプリの投稿フォームに飛ぶ」という流れ。Twiskeyのように完全な同時投稿ではないが、使ってみるとアプリを立ち上げていないときでも投稿画面を呼び出せるのでかなり便利。

X騒動のおかげで変に技術への理解は上がった気はするが、早くThreadsがActivityPub対応になり公式アカウントも人(ファン)も移動してくれれば、と思うばかりである。
ActivityPubとBluesky(AT protocol)を繋ぐBridgy Fed が試験的に使えるようになったみたいなので現時点(2024/5/5)でのメモ。現在はベータ版であることに注意!
24/6/15時点の状況を追記

公式ドキュメント(英語): https://fed.brid.gy/docs も確認してね。
自分はActivityPubを使いたいけど公式系アカウントやXのフォロワーはBlueskyに流れそう…面倒だからActivityPubアカウントからフォローさせてくれないかな~~と思っているので、Bridgy Fedは以前から気になっていたプロジェクトだった。ブリッジされる投稿は完全に公開されているもののみで、Mastodonでいうところの未収載/フォロワー限定/ダイレクトといった公開範囲にしている投稿はBlueskyには流れない。逆にBlueskyは現段階では投稿範囲そのものがないので「ログアウトしたユーザーに自分のアカウントを非公開にする」設定にしていなければ、すべての投稿がActivityPubに流れる。

BlueskyからActivityPubアカウントをフォローする=ActivityPubアカウントの投稿をBlueskyに流す
やり方は以下の2ステップ。
1. ActivityPubアカウントから @bsky.brid.gy@bsky.brid.gy をフォローする
フォローするとBluesky側に[ユーザー名].[所属サーバーのドメイン].ap.brid.gyというブリッジアカウントが作成される。
のだが、一部ActivityPubサービスでは @bsky.brid.gy@bsky.brid.gy アカウントがフォローできない。自サーバー(Akkoma)もフォローできないので、この件はしばらくウォッチしようと思う。
Many fediverse servers can't discover @bsky.brid.gy@bsky.brid.gy #995

24/6/15追記 この件は修正され、Akkomaからも @bsky.brid.gy@bsky.brid.gy アカウントがフォローできた…ように見えたが、ずっとフォローが処理中になっている。Blueskyにブリッジアカウントが作成されたものの、@bsky.brid.gy@bsky.brid.gy アカウント のフォローが完了しないので投稿してもBlueskyには何も反映されない。Akkoma側でIssueが上がっていたが、原因解明までは至っていないようだ。
500 internal server error when federating Like activity from Bridgy Fed #438
あとアカウントを登録しているとあるMisskeyサーバーも @bsky.brid.gy@bsky.brid.gy アカウントのフォローが完了しない。こちらはAkkomaと違い、Blueskyにもブリッジアカウントが作成されていない。当然ながらそのサーバーの事情は分からないが、CloudflareでBot Fight Modeをオンにしている場合にフォローできないケースがあるようだ。たぶん。
Can't follow @bsky.brid.gy@bsky.brid.gy from my misskey instance #1093
===>追記終わり
2.Blueskyアカウントから1.で作成したブリッジアカウント([ユーザー名].[所属サーバーのドメイン].ap.brid.gy)をフォローする
現在はBlueskyの誰かからフォローされない限り配送が開始されないが、この仕様はそのうち変更されそう。
AP => Bluesky: don't wait for follow before sending posts #999
Blueskyから見るとすぐフォローができたように見えるが、ActivityPub側にフォロー通知が飛ぶまで配送は開始されないようだ。今はこのフォロー通知が届くまでが結構時間がかかる。自分が承認制アカウントでしか試していないだけで、フォローフリーのアカウントはすぐにフォローされるかもしれないが。

最初の配送=フォロー承認までは時間がかかるけど、以降はそこまで遅延がなくBlueskyに投稿が流れている。今のところは。Blueskyにはブリッジ前の投稿は配送されない。
以下、個人的に気になって試したこと。
・元サーバー(ActivityPub)で削除した投稿はBlueskyでも削除されるか
削除される。
・Blueskyアカウントからのアクション(リポスト、いいね、メンション)は受け取れるか
リポストやいいねの通知はActivityPubアカウントで受け取ることができるが、Bluesky→ActivityPubの配送は遅延しているためラグがある。BlueskyからのメンションはActivityPubではテキストとして扱われてしまい、通知は届かない。ただこれはブリッジ済みのBlueskyアカウントから試したので、ブリッジしてないBlueskyアカウントからのアクションがどうなるかは確認できていない。Blueskyにはアカウントをあんまり作っていないので…。
24/6/15追記 現在は遅延は解消されており、ほぼリアルタイムに通知が届く。通知が来るのはActivityPubにブリッジ済みのBlueskyアカウントからのみで、ブリッジしていない(@ap.brid.gyをフォローしていない)アカウントからのリアクションは通知されない。ブリッジ済みのBlueskyアカウントからのメンションは届くようになった。
===>追記終わり

・CWの投稿はBlueskyではどう表示されるか
警告文の一文は表示されるが、隠している部分は配送されない。
24/6/15追記 警告文も本文もどちらも配送される。つまりBlueskyでは丸見えになる。
===>追記終わり
・ハッシュタグやリンクアドレスはBlueskyではどう表示されるか
テキストとして扱われてしまうため機能しない。
24/6/15追記 これはハッシュタグとして完全の機能するようになった。と思う。
===>追記終わり

・画像は配送されるか
配送される。4枚以上の画像は表示されないようだ。
・ブリッジを止めるにはどうすればいいか
@bsky.brid.gy@bsky.brid.gy のフォローを外してもBlueskyへの配送が止まるわけではない。止めるには bsky.brid.gy をドメインブロックしなければならない。今のところはドメインブロックしてもBluesky上にはブリッジ用の [ユーザー名].[所属サーバーのドメイン].ap.brid.gy アカウントが残るのは気になる。Blueskyに配送された投稿もそのまま残る。
24/6/15追記 @bsky.brid.gy@bsky.brid.gy アカウントをブロックすることでブリッジは解除され、Blueskyにあるブリッジアカウントは消える。ただしブリッジアカウントをフォローしていたBlueskyアカウント側から見ると、フォローリストからは消えているがフォロー数は変わっていない。また、対応中ではあるが現在はブリッジ解除後に再度ブリッジをすることはできないようだ(未検証)。
How do I opt out and remove my site or account?
===>追記終わり
24/6/15追記
・300字を超える投稿はどう表示されるか
Mastodonブリッジでは「…」で本文が切られた後に、オリジナルポストへのリンクが貼られるようになった。Firefishブリッジではオリジナルポストへのリンクは貼られない。おそらくMisskeyも同じだと思う。あと長めの投稿だと文頭のほんの数文字以降は「…」で省略されてしまう。
・リンクは機能するか
Mastodonブリッジではきちんとリンクとして機能するのだが、Firefishブリッジではリンクアドレスの前後に「<」「>」が挿入されてしまい、機能しない(これもMisskeyは一緒ではないかと思う)。

CWは気になるが、Mastodonブリッジはおおむね問題なく動いているように思う。Misskey系ブリッジはまだ課題は多そう。
===>追記終わり

ActivityPubからBlueskyアカウントをフォローする=Blueskyアカウントの投稿をActivityPubに流す
こちらもやり方は大体一緒なのだが、いかんせん1時間2時間の遅延が発生するためなかなか動作確認ができていないでいる。
24/6/15追記仕様変更により、現在はほぼリアルタイムで投稿が配送されるようになった。===>追記終わり

1. Blueskyアカウントから@ap.brid.gy をフォローする
こちらもフォローすると同様にActivityPub側に@[ユーザー名]@bsky.brid.gyというブリッジアカウントが作成される。
ActivityPubアカウントから1. の @[ユーザー名]@bsky.brid.gy をフォローすればBlueskyアカウントの投稿が流れてくる。ActivityPubアカウントのブリッジとの違いは、Blueskyはブリッジする前の投稿も流れてくる。配送のたびに最新の投稿とあわせて過去の投稿が5件くらいずつ流れてくる。もしかして全部の投稿を配送するまで終わらないのか…?
24/6/15追記ActivityPubにブリッジしてから毎日ちびちびとBlueskyの過去の投稿が流れてきていたのだが、現在ではそれもなくなったのでおそらくブリッジ開始時のこの挙動も修正されたと思う。===>追記終わり
今は@ap.brid.gyアカウントをフォローしないとブリッジできないが、この仕様も今後変更がありそう。正直、このアカウントフォロー方式では公式系アカウントのブリッジは期待薄いかな…と思っていたので、自動でブリッジされるようになるとかなり嬉しい。

こちらも気になっていることを確認した。
・Blueskyで削除した投稿は配送先のActivityPubでも削除されるか
現段階では削除されない。対応が進められているようだ。
Bluesky: bridge deletes (blocked on switching from notifs to firehose) #987

24/6/15追記BlueSkyで削除した投稿はActivityPubのブリッジアカウントでもすぐに削除されるようになった。この点は「Blueskyにだけアカウントを持っているブリッジ済みの人」は確認しようがないので、削除が正常に動作するまではなかなかBlueskyユーザーにブリッジを勧めにくかったので実装されてよかった。===>追記終わり

・ActivityPubアカウントからのアクション(リポスト、いいね、絵文字リアクション、メンション)は受け取れるか
Blueskyにブリッジ済みのActivityPubアカウントからの各種アクションは通知が来る。絵文字リアクションは「いいね」に変換されて通知される。BlueskyにブリッジしていないActivityPubアカウントからのアクションはBlueskyには届かない。ActivityPubでBT/RN/RPされたBlueskyのブリッジ投稿はどのActivityPubアカウントでも見たり各種アクションをしたりはできるが、BlueskyにブリッジしていないアカウントがBlueskyのブリッジアカウント( @[ユーザー名]@bsky.brid.gy)をフォローしても投稿は配送されない。フォローして投稿を見たいならあなたもBlueskyにブリッジしてくださいね、という仕様。
・ActivityPubでブリッジ済みのBlueskyアカウントを探したい
「@bsky.brid.gy」でユーザー検索をすれば出てくる。またはBlueskyの@ap.brid.gyアカウントのフォロワー欄から探す。@ap.brid.gyアカウントをフォローしているアカウントは基本的にはブリッジされているはず。
・画像は配送されるか
私が試した限りActivityPubには本文のみ配送されて画像は表示されないが機能的には実装されているようだ(バグか何かで表示されていない?)。
ATProto -> ActivityPub images are not transmitted. #1000

24/6/15追記ALTあり/なしどちらの画像もActivityPubに配送されるようになった。===>追記終わり

・ハッシュタグやリンクアドレスはBlueskyではどう表示されるか
自分では試せていないが、Mastodonではすべてテキスト扱いになり機能しないが、Misskey系ではハッシュタグやリンクとして機能するようだ。
24/6/15追記MastodonでもMisskey系でもハッシュタグやリンクとして機能する。===>追記終わり

・ブリッジを止めるにはどうすればいいか
これも自分では試していないがドキュメントの記載を読む限り、こちらも@ap.brid.gyアカウントのフォローを外すだけでは止められず「ログアウトしたユーザーに自分のアカウントを非公開にする」設定にしないと投稿の配送を止められないようだ。ActivityPubへのブリッジは止めたいけど、ログアウトユーザーにはアカウントを表示させたい人には不便そう(そんなユーザーいるのか?)。
24/6/15追記動作未確認だが、ActivityPubと同様に@ap.brid.gyアカウントをブロックすることでブリッジを中止し、ActivityPubのブリッジアカウントも削除されるようだ。ただしブリッジを解除後に再度ブリッジをすることはできない。ActivityPubの仕様上、アカウントの再利用はできないので、一度削除したものをどう戻すのは大変そうな気がする。
How do I opt out and remove my site or account?
===>追記終わり

全体的にActivityPub→Blueskyは、BlueskyアカウントからのフォローがActivityPubに届けば、遅延なく基本的な動作はするようなのである程度の完成度にはある印象。反対にBluesky→ActivityPubはまだまだ発展途上で実用まではいかないなあという印象。
24/6/15追記MastodonやらMisskeyやらAkkomaやら対応するソフトウェアが多いActivityPubに比べて、配送する分には機能が少ないBlueskyの方が今のところ上手く動いていると思う。===>追記終わり
Blueskyは今後鍵アカ機能の実装予定はあるらしいが、現段階ではかなりオープン志向なプラットフォームであることを念頭に置いて使わないといけないなあと思う。

#BridgyFed
20240309183411-mizuiro.jpg
M-1スペシャルツアーin青森 1回目に行ってきた。最大収容人数2000人くらいの会場だけれども2階席には余裕があり、私は前の方の席だったので分からなかったけど階下の席も結構空いていたのかも。

トップバッターは意外にもシシガシラ。シシガシラを見る場合のS席は2階席。なんたって脇田が""よく見える""からね!浜中のいじわるの嫌らしさってちょうどいい。ちょっとニヤニヤするいじわるが似合う。

高校時代、野球部の秋季東北大会で聖愛相手に延長戦でスリーバント失敗で戦犯になったとき以来に青森にきたエバース佐々木。佐々木の「スリーバントのサインを出したときの監督の顔…」という話に「スリーバントのサインなんかねぇだろ」という町田のツッコミが冴えていた。佐々木の屁理屈にいつも町田は劣勢で面白い。

ドーナツ・ピーナツはうんこもらしとボブ・サップのコンビ。

エバースの正統派しゃべくり漫才、ドーナツ・ピーナツの漫才コントときれいな漫才を見たあとにフースーヤは全てを破壊する。敗者復活を見て「生でフースーヤを見たら楽しすぎるかも!」と思ったのだけど、生のフースーヤはやっぱり楽しすぎた。お笑いドラッグ。センターマイク前の最前列2席くらいが空いていていたけど、きっとでっかいうんこをしている!ということになった。

タイムオーバー音の使い方がいつかのインポッシブルくらい合いすぎていた去年の敗者復活のニッポンの社長。知らなかったのだがM-1ツアーの舞台スタッフはM-1本戦のスタッフ陣らしい。「同じスタッフだから、あの音(爆発音)出せるんちゃうか?」と敗者復活のネタの最後のくだりをやったら音どころか照明も切り替える有能スタッフ。ケツに変わって辻もやってみたり、タイミング変えてやってみたりなどニッポンの社長のコントにありそうだと思った。客席からの参加もあったがステージに昇れる階段が見当たらず、辻とケツが参加女性に壇上から手を差し伸べる。選ばれたのは辻でした。

オズワルドに会場から今日一番の拍手。腎臓がんの手術を終え、退院したばかりの畠中に客席から「おかえりー!」という野太く温かい声。初期とはいえ腎臓を1つ摘出したらしい。畠中「皆さんも1つ取りましょう!」じゃないんだよ。摘出した腎臓の写真をスマホの画面に写して見せてくれた。前の方の席だったので見えました。赤かったです。「腎臓を見たい人!」で手を上げたのが小学生の男の子でお母さんの承認を得て壇上に上がり、畠中の腎臓の写真を見た。初めて見る腎臓の感想は「グロい」。

ロングコートダディのネタの中で堂前が兎にビンタする場面があったが、突然のことに兎が痛みに耐えられない時間があった。

ダンビラムーチョ・フニャオが再び一人にされ、くらげ渡辺のアロハシャツがスベっていた。名曲は20字を台本でなく、その場で考えていることを示すために客席からリクエストを募る大原。レミオロメンの「3月9日」をリクエストする観客のセンスが良い。2曲連続でサビ20字に成功するも最後の「天城越え」で失敗したのが面白として完璧だった。そのあとのネタで今日一番笑った。

たまたま数日前にくらげゲスト回のニューヨークジャックを見ていたため、既婚子持ちの杉が「分かんねぇから」のネタを守るために結婚を隠していたことを知ってから見るネタは別の面白さがあった。

大トリはカベポスター!昨年のR-1ファイナリストでもある永見。この時期のM-1ツアーでは毎回R-1の宣伝をしており、まさに決勝当日の今日も宣伝するつもりだったのに青森にはフジ系列のテレビ局がないためR-1の放送がないことに気付いてしまう。永見がR-1でやったネタちょっとやります!と言ったら、さっとイスが準備されBGMが流れる。M-1ツアースタッフはR-1の永見のピンネタにも対応できる。TVerで見てくださいね〜!と宣伝してたのでR-1は永見にもR-1(飲料)を送ってあげてください。
カベポスターのネタが終わったらアナウンスもなく緞帳が降りてきてちょっとびっくりした。隙間から浜田が手を振ってくれていい人だな〜と思った。私は単純なので。 

出演芸人が全組吉本のためM-1というよりは吉本スペシャルライブという感じもしなくはないけど(そこだけ若干残念)、全組面白くていろんな面白さがあって良かったな〜〜〜!

#お笑い
2/25にサーバーをイメージから書き換えた後に、ものすごくサーバー負荷が上がりTLが読み込めない・アクセスできないなどのエラーが発生していた。
その原因と修正方法についてメモ。

[症状]
https://minazukey.uk/notes/9q74lznca9m24...
>②①と直接の関連があるか不明だがその上でフォロー関係の有無に関わらず更に一部pleroma/akkoma系サーバーから大量のリクエストが飛んできてお互いの鯖の負荷が地獄になる
症状は夜坂さんのこの投稿にまとまっている。皆尽村が一時HTTP通信状態になったときの投稿が自サーバーにいくつか配送されており、そのときにデータベースに新しくリモートユーザーが作成された。こちらのデーターベース上は1つのアカウントに対して
①ID.アカウント名@ドメイン(HTTP通信以前に作成されていたユーザー) ②アカウント名@ドメイン(HTTP通信時に作成されたユーザー)」のデータが存在する状態になった。①のデータは2/18までの投稿が確認できたが、②のデータはHTTP通信時と思われる2/12分しかなかったことから「①ID.アカウント名@ドメイン」が正しいアカウントだと思う。

[原因]
症状発生時のPostgresqlのエラーは以下。
ERROR:  duplicate key value violates unique constraint "users_nickname_index"
DETAIL:  Key (nickname)=(***@domain.com) already exists.
ERROR:  current transaction is aborted, commands ignored until end of transaction block

ChatGPT先生に聞いたところ、ユーザーのニックネーム(***@domain.com)が重複しているためトランザクション内でエラーが発生し、ロールバックを行ったとのこと。このエラーが1秒間にエグイ数発生しており、相手先(皆尽村)にDDoS攻撃をしているようなものである…本当に申し訳ない。この重複したニックネームのアカウントがデータベース上に2つのユーザーデータがあったアカウントだったので、原因が「分裂したアカウントと自サーバーが何らかの通信を行うとき」ということが分かった。一時的な処置としてこのエラーを止めるにはAkkomaを止めて接続を遮断するしかなさそう。

重複ユーザーはAdmin-FEから目視で探した(もっといい方法があるかもしれないが…)。「①ID.アカウント名@ドメイン」というNameがあれば重複ユーザーだ。私のサーバーでは3人いた。
20240228132130-mizuiro.png
内部のデータベースを見たら以下のような構造になっていた。
20240228135723-mizuiro.png
①ID.アカウント名@ドメイン:名前の更新(updated_at)はされないがステータスの更新(last_status_at)はされる
②アカウント名@ドメイン:名前の更新(updated_at)はされるがステータスの更新(last_status_at)はされない
1つの投稿を取得するたびに2つのユーザーデータが更新されるのがエラーの原因のようだ。②のユーザーデータを消去しただけでは①のnicknameが書き換えられるものか分からないので、以下の手順で直接データを修正することを試みた。
(1)②のユーザーデータを消す
(2) ①のnicknameを元の「アカウント名@ドメイン」に書き換える

[修正]
3/2 追記
ユーザー削除だけだと不十分とのご指摘をいただきました。②アカウント名@ドメインに紐づいていたap_id(http://〜)のデータがactivitiesなどに残ってしまうため、そのあたりまで手を入れないと危なそうなようです。
https://pl.kpherox.dev/notice/AfR8ZLix9U...
https://pl.kpherox.dev/notice/AfR8gA1J48...

試してないのですが、こちらで書かれているnickname入れ替えの方がリスクが少なく、かつ手間もかからなくて良さそうです。
https://pl.kpherox.dev/notice/AfRA8InO8E...

!!データベースを操作するので必ずバックアップを取ってから行ってください!!
(1)Akkomaを止める
sudo service akkoma stop
(2)Postgresqlにログインし、正規ユーザーの内部IDを調べる
sudo -Hu postgres psql -d データベース名
select * from users where nickname='ID.アカウント名@ドメイン';
usersテーブル内のID.アカウント名@ドメインに紐づくデータを取得
idは「001,002...」のようなものではなくもっと複雑で長いです
※アカウント名@ドメインのidを調べるにはもっと良さげな条件式とかありそう
(3)userテーブルから重複ユーザー(アカウント名@ドメイン)を削除する
delete from users where nickname='アカウント名@ドメイン';
(4)正規ユーザーのnicknameを書き換える
update users set nickname='アカウント名@ドメイン' where id='(2)で取得したID';
usersテーブルのidが「(2)で取得したID」のデータのnicknameを「アカウント名@ドメイン」に更新します の意。(2)~(4)を重複したユーザー分行う。
(5)一応Postgresqlを再起動する
sudo systemctl restart postgresql.service
(6)Akkomaを起動する
sudo systemctl start akkoma.service
Admin-FEで該当ユーザーの②アカウント名@ドメインのデータが消えている、①ID.アカウント名@ドメインのNameがアカウント名@ドメインに変わっていればOK。この後、該当ユーザーの投稿の照会や投稿の配送がきちんとされ、自サーバーも皆尽村にもエラーが発生していないことを確認した。
このエラーに対していろいろとご対応していただいた夜坂さん、本当にありがとうございました!

ログを調べたら2/25のイメージ書き換え以前にもデータベースエラーによる大量アクセスが発生していたのだが、自サーバーでの動作には全く影響が出ていなかったので気づいていなかった。今回、いろいろなログの見方や調べ方が分かったのでこれからはこまめにチェックしようと思いました(初心者感)

参考:
データを更新する(UPDATE)
データを削除する(DELETE)
#akkoma
Bluesky、Mastodon、Nostrに同時投稿するiOSアプリ「nootti」を使ってみた。
https://nootti.com

アカウント追加
  • Blueskyアカウントの前にMastodon アカウントを追加するとBlueskyの認証が通らない。Bluesky→Mastodonの順番で追加すること(Nostrも多分同じ)
  • Blueskyのアカウント名は「bsky.social」まで入れること(Mastodonはサーバーのドメインは不要)
  • AkkomaはMastodonとして認証が通ったがfirefishはエラーになってアカウントを追加できなかった →MastodonAPIに完全対応しているIceShrimpならもしかして通るかも?(未検証。来月、アカウントを登録しているサーバーがIceShrimpに移行予定なので試してみる予定)
  • Mastodonはデフォルトの公開範囲を設定できる

投稿
  • Mastodonは投稿時に公開範囲を変更できる
  • Blueskyへはたまに空白で投稿される

希望
  • Androidアプリも欲しい(メインで使ってる端末のため)
  • Misskeyも登録できるようになってほしい(期待薄)→しばしばAPIやらなんやら変わるようなので大変そう…

自分のActivityPubアカウントの中でBlueskyに投げたい内容をつぶやいているのがFirefishアカウントだったので、その目的を果たせなかったのは残念。Firefish要因かnootti要因かは素人には分からないので、noottiがアップデートされたらまた試す。Mastodonの投稿範囲を指定できるのはありがたかったので、とりあえず全体公開できそうな投稿をFedibirdからnootti経由で投げている。

どうしてBlueskyとMastodonに同時投稿するのかというと「Blueskyの方が人が多く同好の人の目に投稿が止まる可能性が高いかもしれないが、自分が文章を書き残すSNSとしてはMastodon系の方がいい」という微妙な気持ちのため。単純に今のところBlueskyに欲しい機能が実装されていないというのもあるし、根本的にオープン思考の設計が自分には合わなかった。鍵アカにはできないし(実装予定はあるよ勢と技術的に難しいので無理勢がいて実際のところは分からん)、やろうと思えば他人のブロックリストすら見ることができる。全てをオープンにすることで健全なSNSを目指しているのだと思うし、そういう考えもあるのは理解する。Webで全世界に発信してるのだから責任を持ての精神も分かるのだが、末期Twitterでは話題になっていること(特に炎上案件)について呟くだけで手斧は飛んでくるし、インプレッションも跳ね上がりすぎて怖かった(今は鍵アカ以外削除している)。自分には少し窮屈で、静かにひっそり暮らしたい勢にはTwitterは広く開けすぎていた。Blueskyも私にとっては広く開けすぎている。

Mastodonの投稿毎に公開範囲を指定できるところやCW機能は「この投稿は表に出してもいいけど、この話題にはあまり表立って触れないようにしよう」というのに本当に助かる。自分の考えを文字に乗せてインターネットの海に流す上で心理的な安全性が保たれる。「書き残す」という意味ではTwilog的なnotestockがあるのも助かる。現在進行形で続いているスパム荒らしについても表立ってはあまり投稿をしていない。荒らしなんて反応があるほど喜ぶものだから粛々と処すのが1番いい。
振り返るとSNSを使うのはコミュニケーションツールではなく、マイクロブログとしての用途が強いと気付く。私の場合、SNSに求めるものは「誰かの投稿を見たい」よりも「自分の思ったことを書きたい」方が比重が大きいので「人が多くて投稿の多いBluesky」よりも「書き残すために欲しい機能があるMastodon」の方がメリットを大きく感じるのかなと思う。

自分の関心のある話題に関してはFedibirdのキーワード購読や注目のハッシュタグで拾うようにしているが、Blueskyが登録開放してからはBlueskyフィードの方が投稿が見つかるようになった。自分は現在進行形で放送大学の学生なので、勉強モチベーションを保つために同窓アカウントを探しているのだが、放送大学生がMastodon/MisskeyではなくBlueskyに集まるのは何となく納得するところはある。なんか、すごくそれっぽい。クロスポストしたかったFirefishアカウントは勉強記録用アカウントなのだけど、しばらくは青い空を眺めながらFediverseの片隅で勉強を頑張ろうと思う。

(FirefishアカウントのRSSからBlueskyに投稿するのが一番簡単そうだが(リアルタイムで投稿しなくてもいい内容だし)、私の技術力では結構な勉強が必要そう)
土曜日にPixelの交換手続きを完了し、火曜日に交換品のPixel 7proが届いた。届くまで1週間くらいかかるかなあと思っていたので助かる。交換品を受け取ってから壊れたPixelを送ることになっていたのたが、なぜか交換品を受け取ると同時に壊れたPixelの返却が完了していた。
20240131195014-mizuiro.png
Googleストアのページを確認すると下取りの進捗状況は「交換キャンセル」、クレジットカードの保留情報の12万円も0円になっている。「いいんか…?」と思いつつも後から12万円の請求が来たら怖いので、いそいそと壊れたPixelを返送した。問い合わせも面倒なので、これで何かあったらまた問い合わせよう(こういうところがだめ)。
返送は交換品が入れられてきた段ボールに壊れたPixelと指定の書類を印刷して入れて梱包し、ファミリーマートに持ち込んで終わり。FamiポートでQRコードを読み込み、発行されたレシートをレジに持って行くだけで後の送り状の発行から発送までをファミマでやってくれるので、便利すぎてちょっと感動した。その後、荷物が相手方に届いたことを確認してとりあえずは一安心。Googleストアの下取り進捗ページを確認したら「交換完了」にステータスが変わっていた。このまま何も請求が来ませんように!


20240131194539-mizuiro.jpeg
右からPixel 7pro、Pixel 5a、iPhone8

Pixel 7proとPixel 5aを並べてみたら思ったより大きくないように感じたけど、持ってみると幅が広くて私の手には少し大きい。背面も5aのマット加工から強化ガラスのつるつる素材に変わったのもあり、落としそうで怖い。これについては早急にケースを注文した。あと指紋認証が背面タッチから画面認証に変わった。私は画面を見られたくないのでスマホには毎回覗き見防止フィルムを貼っているのだけれど、モノによっては画面の指紋認証が通らないらしく、認証部分に穴が空いたフィルムなども売っていた。各フィルムのレビューを読んで指紋認証が通りそうなものを探して注文した。
Google Pixel 7 Pro 向けの 【180度 曲面対応】 覗き見防止 フィルム ブルーライトカット アンチグレア 日本製(楽天市場)
 
正直メーカーもよく分からないものだったので不安ではあったけれど、慣れたら3回に1回くらいは指紋認証が通るので許容範囲内。覗き見防止効果は左右から見た場合のみしか効果はないけどないよりは安心できる、指紋認証が全く通らないよりはいいということで妥協することにした。フィルムを貼るのに失敗してホコリが入り気泡が出来てしまったのが許容範囲内の中で一番許容できないかも。Pixel 7proになって良かったところ…はカメラの性能が上がったところだとは思うけど、まだカメラを使うような機会がないので未知。

1つ1つアプリをインストールするの面倒だな…と思っていたらGoogle OneにPixel 5aが死ぬ直前のバックアップが残っていたので助かった。復元したら入れていたアプリを全部自動でインストールしてくれた。今回、電子機器は急に死ぬことがあるということがとても、大変、よく分かったのでこれからは写真データもきちんとバックアップを取ろうと思う。なんとなくGoogleフォトでのバックアップをキャンセルしていたのがこういうことになるとは…。あと幸いにも私はあまりLINEを使ってないので会話履歴が消えても特に問題はなかったけれど、こちらもバックアップ機能があるのでこれからは使っていきたい。

#Pixel
Pixel 5aをメイン端末としてしばらく使っていたのだけど、昨日の夜にYouTubeで動画を見ていたら突然画面が真っ黒になってしまった。
電源ボタンを長押しして再起動を試みようとしても、PCに接続してデバイスとして認識させようとしても全く動かない。通常PCと端末をUSB接続する際は「〇〇(端末名)を接続しました」と通知が出るのだけど、このときは端末名とは全く違う名前が表示された。再度USBケーブルを挿し直して接続したら「前回接続したときに認識できなかったデバイスです」というようなエラー通知が出て、それ以降はPixel側もPCも全く反応しなくなってしまった。
とりあえずヘルプで出てきたやれそうなことは一通りやったけど全く効果なし。Pixelはウンともスンとも言わない。
充電されない、または電源が入らない Pixel スマートフォンを修正する

調べているうちに、どうやらPixel 5aでは突然画面がブラックアウトする症状が多発しているらしいことを知った。
Google Pixel 5a (5G) のクチコミ掲示板(価格コム)
Google Pixel 5a (5G) の 1 年間延長修理プログラムについて

22年の春先にGoogleストアで購入したので、延長修理プログラムの対象になっているはず…。ただ「1年間延長修理プログラム」とは銘打っているものの日本では修理ができず交換対応のみらしいので、中身のデータの復元は絶望的。使っていたアプリのほとんどは何らかのWebサービスでアカウント登録しているのでデータはサービス側で保存されているのだけど、Pixel内でしか保存していないデータも一部あり…。GoogleフォトにはPixelで撮った12月上旬までの写真しか上がっていなかった。12月末にイベント遠征していたので、そのとき撮った写真がもうほとんど復元できそうにもないのは悲しい。SNSにちょっとだけそのときの写真を上げていて、まだ残っているのには多少救われた。

昔使っていたiPhoneがあるので最低限のインターネット生活は保てそうだけど、いかんせん古い機種(iPhone8!)なのでさすがに動作がもっさりしている。とにかくできるだけ早く次の端末を用意したいのでヘルプセンターに問い合わせることにした。
Google Pixelヘルプ
※チャットや電話対応の営業時間は9:00-21:00

問い合わせ前に状況確認に必要そうな情報はあらかじめまとめておいた。
  • 購入日
  • 端末のシリアル番号
  • 症状発生時の状況
  • 症状が発生した日時
  • 過去の故障履歴(落としたり水没させてませんアピール)
  • 症状発生後にやったこと

対象のPixelが保証対象かを確認するのにIMEI 番号が必要で「スマートフォンの箱…!?どこやったっけ?あとで探さなきゃ」と思っていたのだけど、よく読んだらPixel本体のSIM カードトレイにも記載があった。小さくて見にくいので、問い合わせの前にあらかじめメモっていたほうがいい。
IMEI などの Google Pixel の ID 番号を確認する

営業時間になるのを待ってチャットで問合せ。申し込んで1分くらいでサポート担当者の方とのチャットが開始された。
確認された内容はいつ頃症状が発生したか、電源ボタンやUSBの挿し口に汚れや異物がないか、電源ボタンの長押し操作や充電器との接続確認など。20分ほどやりとりをしながら確認してみたけどやっぱりダメで、IMEI番号で保障対象であることを確認してもらい、端末の交換対応をしてくれることになった。

交換対応として、先に交換品を受け取ってから故障品を送付する「事前交換」と故障品を先に送付してから交換品を受け取る「標準交換」の2つを提示された。古いiPhoneでは心もとなく、早めに代わりの端末が使いたいので「事前交換」を選択。「事前交換」の方は「交換品を注文する」という形になり、信用照会のため支払い用のクレジットカードに照会保留が発生する。この照会保留は故障品が返品されない限り削除されない。交換品を注文した際に、無償交換とはいえ端末の値段が12万超だったので「何らかの事故で返品が完了しなかった場合はこの代金を支払うのか…?」とちょっと震えた。その後、こちらの住所や電話番号などを伝えて終了。大体1時間くらいで終わった。
Pixel 5aの交換なのに何で交換品の値段が12万もするんだ…と思ったら、なんとPixel 7 Proにアップグレードしてくれたらしい。多少お金を払ってでもPixel7aと交換してくれないかな…と邪な気持ちもあったのでうれしい誤算だった。ただ、Pixel 5aを購入した理由が当時のSIMフリー端末の中でも比較的小さめの6.34インチだったことなので、7 proの6.7インチはデカすぎィ!!だけれども…。まあ無償交換はありがたいね。

こういうケースは滅多にないだろう(と思いたい)けど、iPhone8はiOS16でサポートを終了してしまったのでもうちょっと新しい機種が欲しいな、とちょっと思ってしまった。とはいえiPhoneはサブで使うには高額なので、買うとすればPixelがサブになるかなあ。

#Pixel