海辺にて

備忘録

No.23, No.22, No.20, No.19, No.18, No.16, No.127件]

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
Akkomaサーバーに絵文字を追加したのでやり方メモ。
・Managing emoji packs
https://docs.akkoma.dev/stable/administr...

上記マニュアル内の「Fetch, verify and install the specified packs from the manifest into STATIC-DIR/emoji/PACK-NAME」を参照。OTPで建てたサーバーなので
sudo su akkoma -s $SHELL -lc "./bin/pleroma_ctl emoji get-packs -m https://***/manifest.json " コマンドでインストールする。
以下のメッセージが帰ってくれば成功。

Downloading neocat from https://***.zip
SHA256 of neocat source file is OK
Fetching the file list for パック名 from https://***/manifest.json
Unpacking パック名
Writing pack.json for パック名


AdminFE>Emoji>Reload emoji で絵文字の追加をサーバーに反映する。

#Akkoma
弊サーバーの独自絵文字
ActivityPubで使用する分には自由に使っていただいて構いません。作者表記は任意です。

(23/12/2 現在)
hello_world :hello_world:
igyo :igyo:
iine :iine:
totemo_iine :totemo_iine:
wakaru :wakaru:
kawaii :kawaii:
menkoi :menkoi:
mit :mit: ※岩手県のフジテレビ系列のテレビ局
tensai :tensai:
kyusai :kyusai:
netsuretsu_ouen :netsuretsu_ouen:
teni_muho :teni_muho:
wa_syoi :wa_syoi:
ultimate_arigato :ultimate_arigato: ※人力舎所属のお笑いコンビ名
ineette :ineette: ※ラジオアプリGERAで配信中の『 囲碁将棋の情熱スリーポイント 』より
yattemiroyo :yattemiroyo: ※ラジオアプリGERAで配信中の『 囲碁将棋の情熱スリーポイント 』より

#絵文字