2026/10/15(木)adiary置き換え計画 進捗その1

adiary置き換え計画始動でadiaryを置き換えるCMSの開発に着手し、現在たたき台を作っているためその進捗状況。

結論から言うと既に記事を書くだけなら既に一応できる。ただ作りこんでいないので不自由が多く、セキュリティを含めたレビューもしていないため本番公開はまだしない。ある程度できたら出していきたいところだ。勢い的に恐らく今月中にはベータ版的なものを出せると思っている。

現状できているもの

網羅的に書き出すと大変なのでざっくり目。

トップページ

前回の記事でもあげたとおりだが、新着コメント一覧も出るようにしている。スクショでは長すぎて見切れている。

レスポンシブデザインを前提にしているためPC/SPによるサーバーサイドの分岐はない。adiaryではUAを見てサーバーサイドから返すHTMLを分岐している。

テンプレートエンジン化しているため、レイアウトはテンプレートをいじれば変えることができる。adiaryやWordPressにあるようなデザイナは未実装。

ページングもできる。

検索

ファセット検索機能により、検索ワード・タグ・年月ベースでの絞り込み検索を実現している。

ページングもできる。

管理画面

各種管理ができる画面。

スクショにある通りのものが管理できる。

記事一覧

記事の一覧。

タグ管理

タグの管理。リネームや親の付け替え、ソートなどが出来る。UIが微妙。

記事の新規作成・編集

最低限投稿できる状態にしている。メディアブラウザはまだない。

adiary互換のMarkdownパーサーは入れており、現時点で使っているSatsuki記法にも対応している。

これはadiaryのplain-textデータとHTMLデータを突き合わせてLLMにリバエンさせて作らせたものだ。Satsuki記法については網羅的に対応できておらず、追加もできない。

複数タブで開いたときに更新が衝突しない機能も実装されているらしいが確かめていない。

ゴミ箱や履歴機能も作っているがスクショ時点では未成のため写っていない。

コメント管理

コメントの確認や削除ができる。

コメント投稿設定

これはadiaryにはない機能で、連投規制や投稿制限などを設定できる。

現状スパム対策はadiaryそのものにスパムIPからの接続を拒否するようにハードコーディングするかnginxで接続拒否するくらいしかないのでこれで楽になる。

記事投稿の設定

記事を投稿する際の設定ができる。

RSS

本文はadiaryのCDATA方式ではなくなり、categoryもカンマ区切りでなく、複数持ちに変わっている。

他にもdocsの値など、細部が微妙に変わっている。LLMが言うには最新のRSS 2.0の仕様準拠でValidに作ってくれているらしい。

まだ作っていないもの

あったらいいな~の山。やるやらはともかくとして、夢は大きく!

  • 画像以外のアップロード
    • 現状テキストやHTMLとかはアップロードできない気がするため
  • メディアブラウザ
    • 添付ファイルの管理をするのに必要
  • マルチセッション
    • adiaryはセッションを一つしか持てず複数端末でアクセスするとログインが排他になり面倒なので、マルチセッション化したい
    • 記事更新時の衝突対策さえできれば問題ない
    • セキュリティが落ちるがログイン時にフィンガープリントを見るなどで変なのがきたらメール通知とかすれば不正ログインには対処できそう
    • セッション一覧画面から既存セッションを殺す機能や、PW変更時に全滅させるなどの対応も必要になる
  • テーマ機能
    • 作るかどうかからして未定
  • デザイナ
    • テンプレートの手編集がだるいので作りたいが優先度は低い
  • マイグレーション機能
    • adiaryからファイルと記事を一体的にマイグレーションできるようにしたい
    • 記事自体は現状でも移行できるがファイルの移行ができていない
    • 添付ファイルについてはパス構造が変わっているため整合を取る必要がある
      • 記事やページのパス構造は維持しているため、内部リンクや外部からの被リンクはそのままでよくしてある
    • adiaryのすべてを取り込むようなことはせず、いったんは自分が使ってる範囲だけ変換できるようにするつもり
    • WordPressやMovableTypeなど、adiary以外からのCMSへの取り込みは想定してない
      • 動作確認や保守がだるすぎるため
      • 気が向けば作るかもしれないが未定
  • まともな見た目・快適な操作性
    • 叩き台なので全く作りこんでいない
    • 特にタグの管理機能は使いづらいので何とかしたい
  • サイトマップ
    • SEO用のXML
  • 処理時間計測
    • Pukiwikiなど、昔のCGIにはよくついてたやつ。adiaryにもある
  • 画像エディタ
    • 回転やトリムが出来ると便利だしあわよくばモザイクが掛けられればさらに便利
    • ペイント機能まであれば最強
    • 優先度は低い
  • 記事のフラグ機能
    • 任意のフラグを設定して記事の表示時に何かをする機能、例えばNSFWフラグを立ててブラーや検索エンジン向けのメタ通知をするなど
  • ログイン時の管理者メニュー
    • adiaryもWordPressもログイン中にページトップに来ると管理者メニューが出るが、まだ作っていない
    • これがないと主に記事の編集が不便
      • 記事を開いたときに編集メニューが欲しいため
  • インストーラー
    • なくてもいいが、あるとより良い
    • 公開型のインストーラーはユーザーフレンドリーだが、セキュリティリスクがあるのでどうするか
      • とはいえ大抵のCGIのインストーラーは公開型である。adiaryもWordPressもMatomoも、基本的に大概はそうだ。ttrssはCLIから入れた気がする。
  • パスワード変更機能
    • 新規設定は出来るが、変更はまだできない。出来ないと困る
  • プラグイン機能
    • そのうち作りたい気はしている
  • ページのソート機能
    • 並び変え出来たほうが良い
  • OGP周り
    • SNSで共有したときに欲しいよね
    • OGP未設定の時ははてなダイアリーやZennのような奴を出したいと考えている
      • タイトルを画像に変換したやつ
  • Satsuki記法の管理
    • adiaryでは任意構文を追加できるが、新CMSではまだできない
  • Ping
    • 飛ばせない
  • アカウント管理
    • 今のところ作る予定がないが、そのうち欲しい
    • 複数人での編集は想定しておらず、記事の限定公開辺りに使うことを想定している
      • 例えばStripeと連携して、有料記事が作れたりすると面白いかもしれない
      • やるかどうかは未定
  • API機能
    • ユーザーを限定してMCPとかを走らせるのに使う想定
    • 公開APIは作らない。連打されると困るので
    • 記事に対してJSONリクエストしたときにJSON出すくらいはやっていいかもしれないが未定(MastodonやMisskeyにはある
  • ActivityPub
    • 対応したいとは思っているが、無駄に拡散されても困るので悩みどころ
    • 1万フォローとかされると非同期ジョブがないと大変そうなので、そこらへんも難しそうだ
    • WordPressは対応してるんだっけ?
  • VOICEBOX対応
    • 動画配信が流行ってるしあると面白いかなと思っているが、地の文を読ませても微妙なのと少なからずトラフィックを食うのでやるかどうかは未定
    • 個人的には冥鳴ひまりが好き
  • あいまい検索
    • あった方がいいケースもあるかもしれないため
    • とはいえelasticsearch乗せるか…?みたいなのは思う
    • CGIには大げさなので、やるとしてもプラグインかな

作らないもの

これは要らないなと考えているモノたち。

  • マルチサイト管理
    • マルチサイト管理は面倒なのでやらない
    • WordPressでやると運用が軽く地獄になる奴
    • 現状のadiaryでもバグっており、なんか機能していない記憶がある
    • この機能自体不要だと思う
    • その代わり複数のブログを外側からラップして統括管理するものは別建てで欲しいかもしれない
  • WebPush
    • adiaryにはついてるようだが、私はWebサイトに通知は不要だと考えているため付けない(Webアプリにはあってよいと思う)
  • 印刷画面
    • ユースケースが思いつかない
    • アクセス解析を眺めているとBOTがここに吸いこまれる傾向が非常にある
  • Markdown以外のパーサー
    • adiaryはreStructuredTextやTeXに対応しているが、これは取り込まない
    • Markdownについても私が使っている構文しかサポートしない
      • 仕様上はかなり理不尽なレベルで存在すが、対応していると大変すぎるため基本的にPrettier v3が補正して出てくるやつで私が過去に使ったことがあるものをベースにパーサーを作ることにしている
  • トラックバック
    • adiaryには機能そのものがない
    • かつてのスパムの温床であり、今時実装するようなものでもない
  • Webmention
    • トラックバック同様の理由で対応しない
    • そもそも他人の抱く感想に興味がない
      • SNSで空リプが増えたのも相手の気分を害さないことが大きいだろう
      • 文脈を共有していない意見と言うのは概して害悪であることが少なくないと思う
  • 非公開コメント
    • ブログのコメント欄をメールボックスにしたくないため

切り捨てるもの

過去との決別。

設計上の理念

設計にあたり重視したコンセプト。

依存関係の最小化

依存関係地獄を防ぎたい。pnpm iもcomposer installもbundle installもpip install -r requirements.txtもしたくない。打つのが面倒だしフックの脆弱性対応とかそういうの要らない。

よくあるCGIのように置いたら動く、というシンプルさが欲しい。流石にPerl本体だけでは厳しいがpure Perlで動けばいいと思っている。なので標準にないCPANモジュールも使わない。

動的生成

回線環境が劣悪な場所で使うことが多いため、レスポンスデータは小さくあってほしい。

静的生成だとどうしても初回リクエストのデータが肥大化しがちだ。登山中やトンネル、人口密集地など電波の悪い場所で検索用などの巨大なJSONが送られてくると困る。

ランタイム保守コストの最小化

ライフサイクルが早く後方互換性を切り捨てまくるPHPは保守が面倒だし、Node.jsもメモリリークの問題があるので避けたい。Pythonはvenvの概念がだるすぎる。Ruby?そんな奴は知らん!

という訳でPerlを採用。Perlは枯れており、構文が腐り果てている関係で相当古代のものが今でも動くし、テストランナーも内蔵されていて便利だ。大概のものが本体にバンドルされている上に、後方互換性も破壊的変更も私の用途ではほとんど気にしなくてよい。とはいえ、Perl 5.32.0を要求バージョンの下限として定めている。

5.40.0でパフォーマンスが上がっているのと、JSON::PPやCPAN::Meta::YAMがアップデートされているらしいので、これを採用したい思いもあるが、5.40.0なんてUbuntu 26じゃないと動かないし、ちょっと早すぎる。とはいえ2024年のリリースなので2年前のバージョンではあるが…。まぁPerlなんてそんなもんだ、古くてなんぼ!

ビルドなし

手元でサッと書き換えれば動くこと。手間なのでコンパイルやビルドはしたくない。TypeScriptやRubyもスクリプトの分際でビルドがあるし、GoやRust、C#.NETは言わずもがなだ。

Perlであれば書き換えれば即座に動く。とても便利だ。

高度なレガシー検索

膨大な記事を抱える本ブログでは絞り込み検索は必須である。ワーディングで記事が見つかれば苦労しないし、あいまい検索で関係ない記事がヒットするのにうんざりするのはごめんだ。

シンプルであること

adiaryはとてもシンプルなので、そのシンプルさは保ちたい。2ペインのMarkdownプレビューやパーマリンクの変更と言った凝った機能は載せない。

adiaryやPukiwikiのようなシンプルなシステムをリスペクトしたい。CGIであることもその一つだしDockerもk8sもMySQKもPostgreSQLもRedisも、変な依存ライブラリも要らない。

あとがき

ClaudeのProプランでも全然余裕で作れるのでOpus 5.5には非常に助けられている。このCMSの開発だけに使っている限りはトークンが尽きる気配はない。何なら開発に入る前に無駄な雑談で週次トークンの25%ほど削っていたが、それでも今の目測ではギリギリ足りる算段である。

他人が使うことをどれほど想定するかも決めていないが、ひとまずは最低限自分が使える程度のものには仕上げていきたい。配布物とする場合CGIなので最低限さくらのレンサバはサポートしたい考えで、現時点でも非機能要件にさくらのレンサバで動くことを設定している。

ある程度出来てきたら、このシステムを核としてWikiやタスク管理などのシステムにも派生させていき、エコシステムを形成していきたいと思っている。

全く関係ないが、気が付いたら記事IDが800を超えていた。記事数は764件らしい。

2026/10/14(水)adiary置き換え計画始動

前々からadiaryを置き換えるCMSと言うかブログシステムを作ろう作ろうと思っていたが、遂に新製に乗り出した。

今はまだそこまで作りこめていないが、取り敢えず記事の表示ができる程度のたたき台を作っている。

なんとadiary最大の持ち味である絞り込み検索も実装できている。一般的にはファセット検索と呼ばれる機能らしいが、これがまともにできるブログ向けCMSを私はadiary以外に知らない。WordPressの頃にこれを組み込もうとしたが、碌なプラグインがなくて諦めた記憶がある。

まだ実装途中だが、既にそこそこいい出来だと思う。

実装コードについても完全に新規で起こしている。これはadiaryの実装からOpus 5.5に仕様表を作らせ、別セッションでゼロから実装しているためだ。つまり実装用のエージェントは元のコードを知らないため完全新規という訳である。これによってadiaryに潜在していたバグも持ち越さない予定だ。

また従来であれば手の入れようがなかったテンプレートエンジンやキャッシュシステムも新製するため、レスポンシブ対応など、今時の機能も追加で盛り込んでいく予定である。他にも現在利用しているExtends版で組み込んでいる簡易なアクセシビリティ対策、主に画像のaltの話だが、これもまともにしていき、全体的にモダンにしていくつもりだ。

過去幾度もCMSを乗り換えてそのたびに資産を失ったり、URLの変更で検索エンジンのインデックスが吹き飛んだりしたが、データはすべて引き継ぎ、URLのフォーマットも極力同じにすることで、こういった問題が起きないようにする予定である。少なくとも現時点での設計はそうなっている。

経緯

2024-02-01にCMSをWordPressからadiaryに乗り換えたが、adiaryには不満も多くあり、過去の記事でも改修ネタをいくつか出していた。

しかしadiaryは結構作りが古いこともあり、手を入れるのが大変という問題があった。そこで私は前々からCMSの新製を考えていたのだが、これが中々腰が重かった。

adiaryの機能一覧を作ろうとして途中で飽きたり、Markdownパーサーを自作しようとして飽きたり、そんなのばかりだった。

しかしそんな日々にも転機が訪れた。それはClaude Opus 5.5の登場とBANされたAnthropicのアカウントを力業で復活させたことである。私は従来のコーディングエージェントには満足しておらず、ぶっちゃけバイブコーディングとかクソゲーのガチャだと思っていた。しかしOpus 5.5はこれまでと明らかに違った。上手く扱えばハルシネーションは少なく、エンタープライズシステムでもそこそこの品質でやってくれる。

実はGPT-5.6 Solもそれなりに出来が良く、ある程度のことはできたのだが、Opus 5.5は次元が違った。かなり自律的に開発してくれて、正直私より出来がいいんじゃないかと思うほどだ。認めざるを得ない、敗北を、みたいな感じである。

エージェンティックコーディングの進化は目覚ましいもので、これまではしょっぱいツールやパッチレベルのものを作るのに活用していたが、これからはまさになくてはならない存在だと、そう感じるほどの進化を遂げている。同時に私の存在意義と職も怪しくなった。

あとがき

弘前日記は書けてないし、他にも書こうと思っている記事があったり、他にもしないといけない事やしたいことがある気がするのだが、ひとまず鉄は熱いうちに打てと言うことで何とか完遂させたいところだ。

現実問題としては並行でいろいろやって、ズルズルだらだら行く可能性もあるが、それはまぁそれと言うことで…。

とりあえず今日やっていて分かったこととして、私は基本的にMarkdownを書くときにPrettierで整形しているため大半の記事は上手いこと正規化されており、微妙な書き方の違いによる崩れなどがあまりなさそうだったというのは幸いだなと思った。これはOpus 5.5が書いた検知ツールをベースに確認している。

それでも壊れているのがあったので直したし、マイグレーションの歴史的経緯によって単純に壊れているものが新たに何個か見つかったので、そこらへんも潰しておいた。

LLMは嘘をつくことがあるが、ツールは嘘をつかないので安心と言う話である。

2026/10/10(土)adiaryを爆発的に改造した

adiaryを導入してからこれまで、ちまちま改修をしていたが根幹的な部分に手を入れるのが億劫で放置していた。

そこで今回その大半を一気にガッと直すことにした。理由は単純でOpus 5.5を使っていて十分な性能があり、ほぼハルシネーションを気にしなくていい次元に達したと感じたからだ。

Codexも使えるのでCodexでもいいっちゃいいのだが、Opus 5.5はGPT-5.6 Solより賢い気がしているのでこちらを使っている。GPT-6 Sol?あれはポンコツだと思う。

バグ修正

YoutubeのIDにハイフンがあると正しく出ない問題の修正

https://github.com/Lycolia/adiary-extends/commit/429e54b47a530f4354e45c050f8ad6f0da2fe5e3

以下の問題のパターンが表示できなかったためこれを出来るようにした。

問題ないパターン 問題のパターン
[&https://www.youtube.com/watch?v=xikYPB3QO_0&t=2145s] [&https://www.youtube.com/watch?v=n_D__CT5-H0&t=4279s]

数字リストが2桁になるとコードフェンスのネストが機能しなくなる問題を修正

https://github.com/Lycolia/adiary-extends/commit/5b90f22bb557871f44cbad33ca6b3429e368463c

インデントの処理を直した。元の処理は桁数が増えたことによるインデント幅の増分が取れなかったので、取れるようにして解決した。

修正前 修正後

リストにネストされたテーブルが表示されるようにした

https://github.com/Lycolia/adiary-extends/pull/75/changes/a476eab24cedf3520bdab61b0cf8ee7d76fbe5a6

次のような構文でテーブルが出るようにした。

- hoge
  |col1|col2|
  |----|----|
  |row1|row2|

`` foo ` bar ``が正しくコードスパンにならない問題の修正

https://github.com/Lycolia/adiary-extends/commit/6c95f8edea6e65f93b1a1a4d3917c7ed4bbd2d27

遭遇するたびに<code>で書いてた記憶があるが、しなくてよくなった。

修正前 修正後

チェックボックスリスト周りの抜本的な修正

https://github.com/Lycolia/adiary-extends/pull/75/changes/6dc02a3ffd6e835189d05eaffbc4dcf0a1fb9e16

チェックボックスに構文の文字がそのまま出る不具合や、リストマーカーが出る問題などがあったため、全体的に直している。そもそも使った記憶がなく、本家も使うことをろくに想定していないと思うため、対応する必要性は謎であるが、まぁ取り敢えずほら、構文としてあるし?みたいな?

修正前 修正後

リストで深い入れ子から浅い段へ戻るケースの一部が処理できていなかったのを修正

https://github.com/Lycolia/adiary-extends/commit/4ac398ed30adcd0a10304dc815985ec7af035da3

一部のケースで入れ子が深くならず、浅い段に復帰するときの深さで固定されているケースがあったため、それを直した。

具体的にはこれの最後の奴らが3段目のインデントに全て収束し、4段目のインデントが起きない問題があった。これはどうもケツに3段目がいるせいで、そこに引っ張られていたらしい?

- `-protocol_whitelist "tcp, udp, ..."`
  - カンマ区切りでプロトコルを指定することで、プロトコルを利用できるようになる
  - https://ffmpeg.org/ffmpeg-protocols.html#Protocol-Options
  - SDPファイルを用いてRTPストリームを受ける場合には `"file,udp,rtp"` を指定する
    - file
      - ローカルファイルへのアクセスプロトコル
      - <https://ffmpeg.org/ffmpeg-protocols.html#file>
    - udp
      - UDP
      - <https://ffmpeg.org/ffmpeg-protocols.html#udp>
    - rtp
      - RTP
      - <https://ffmpeg.org/ffmpeg-protocols.html#rtp>
    - なんでfileがいるのかは正直良くわかってない

機能改善

邪魔なヘルプの削除

https://github.com/Lycolia/adiary-extends/commit/196b8d75ecfc4001a192b7b83893f8987bb60f29

adiaryのヘルプはマウスオーバーで出るのだが、出たはいいもののどこかをクリックしないと消えないことがあり、しかも他のUIの手前に出てくるのもあり記事を書いててめちゃくちゃ邪魔だったので消した。

タグ入力をインクリメンタルサーチできるように修正

https://github.com/Lycolia/adiary-extends/commit/07516010985f18506b3b6fafb419fe3fd1d7ab4b

今回の目玉コンテンツその1!!!

タグを探すのが面倒だったので楽にできるようにした。うちは地獄のようにタグがあるので面倒で面倒でもうやってられなかった。そもそも何のタグがあって何のタグがないかもわからないし、限界だった。

変更前 変更後


多重拡張子のアップロードを許容するように変更

https://github.com/Lycolia/adiary-extends/commit/5e4b49f7f9f0a27f9531856aeed3048460da085b

今回の目玉コンテンツその2!!!

photo.edited.jpgのような名前を持つファイルがアップロードできるように対応した。多重拡張子になっているファイルをアップロードしようとしてエラーになった回数は計り知れない。

これまでは恐らくセキュリティ対策で規制がかかっておりhoge.php.jpgと言ったものがアップロードされたとき、Apacheの設定によっては不正にphpが実行される恐れがあった。で、そこを過度に恐れるあまりhoge.edited.jpgみたいなのも弾かれる状態になっていた。

今回はその対策として拡張子以外のピリオドをアンダースコアに改名してアップロードすることで対処している。hoge.edited.jpgならhoge_edited.jpgでアップロードされるみたいな。

記事中の画像からサムネイルを選べるようにした

https://github.com/Lycolia/adiary-extends/commit/1246e9b7fdd115e9cdb9f381a5d0c8bef1be07d5

今回の目玉コンテンツその3!!!

実はadiaryにはOGPを任意設定する機能がない。記事中を文字列検索してパターンにマッチしたものが自動でOGPに設定されるのが仕様だ。

そこで過去にv0.2.0で任意の画像をサムネイル(OGP)に設定可能にしたが、元々あったロジックを流用して実装した関係で、色々煩雑だった。これは特定のフォーマットで入力する必要があるのと、入力ミスで存在しないURLが埋め込まれることがあったためだ。

なので私は手打ちしたときは毎回OGPを手動確認してちゃんと出るか見ていた。しかしこれが面倒だった。なので今回は任意のOGPを選べつつ、入力ミスも起きないスーパーウルトラハッピー仕様にしたわけだ。

この機能の追加に当たり記事中の画像のみを選択対象にしたため、それ以外も設定できる脱出ハッチとして従前の手設定も一応残しているが、個人的に利用した実績がないため、使うことはない気もしている。

記事外の画像を入れる場合は、これまで通りの方法で指定して解決する。

記事に膨大な画像があると膨大に出るが、まぁ別にいいかと言うので放置することにした。

記事から画像が消えるとどうなるかについては試していないが、従前のままなら選択肢からは消えるものの、手設定欄に残っているはずである。動作確認はしていない。

記事のごみ箱と更新履歴機能を追加

https://github.com/Lycolia/adiary-extends/commit/3f5f203624e564015195dd18e2dabacf6955108d

今回の目玉コンテンツその4!!!

記事を誤って消したが戻したいとか、間違えて別の記事で上書きするなどのミスをしばしばしていたので、この対策として復旧できる機能を追加した。

特に過去記事からコピペして別の記事に移植する作業中に移植先と移植元を間違えるなどで頻発していたので、その対策。

履歴はPukiwikiを参考に既定では原則最終更新から3h経過で積むことにしている。ゴミ箱についても、消したけど戻したいということが年に一回くらい起きていたため、機能追加した。

通常の画像構文で<figure>にラップされるのをされないようにした

https://github.com/Lycolia/adiary-extends/pull/75/changes/61d287986ed812126f3b72b0482e2fb9a476ac90

基本的にはセマンティクス違反の解消。但し根絶はしておらず、条件次第で許容している。

今までは<img>の描画時に<figure>でラップしていたため、画像の多い記事は若干軽くなっているはず。

イメージとしてはこんな感じ。

- <figure>
    <a href="..."><img src="..."></a>
- </figure>

その他

その他Markdown周りとして、リポジトリの変更履歴などには書けていないが、恐らく細かい部分が色々改善したはず。正直実装面はClaude Opus 5.5に投げたため、どこまで変わったのかよく分かってない。

取り敢えず使っていない構文の切り捨てを指示したが、差分を見た感じ切り捨てられているかは謎である。まぁ別に使ってない構文だしどうでもいいのだが…。軽く見た感じのデグレはなさそうなのでヨシくらいで見ている。

Markdown処理に関するドキュメントとテストコードの追加もしたが中身は流し見程度しかレビューしていない。

あとがき

更新が多いためマイナーバージョンを12も上げている。そのうち10は一気に上げた。0.30.0->0.40.0->0.41.0->0.42.0みたいな。

Claudeの契約はProだが、今回の対応ではClaude Codeの週制限の25%しか使わなかった。やった規模感のわりに、全然余裕だなぁという感じ。作業時間としては動作確認とレビュー込みで5時間くらい。

この改造版はGitHubで公開しているものの、私以外が使うことは特段考慮していないため、使いやすいかどうかは謎である。少なくともテーマは完全に今表示しているものにロックインしており、他のテーマで使えるような作りにはしていない。

また今回の対応に当たり、古い記事を中心に構文の揺らぎがあったため以下の記事に対して構文の正規化を掛けている。このため、内容に本質的な変化はないがタイムスタンプの更新が入っている。

今回は数が多いのでこのように書いているが、普段から巡回で構文が壊れている記事を見かけたらひっそり直しているので、まぁよくあることではある。

現存している記事でadiary移行前からあるものは、モノによってはWordPress→Qiita→はてなブログ→WordPress→adiaryという過酷な移行をたどっているため構文が壊れていることはざらにある。何なら今回の対応ではてなフォトライフの参照構文を一つ見つけ消したくらいだ。

しかしまぁ先日BANされたAnthropicのアカウントを力業で復活させたのが、さっそく効果を発揮してくれて頑張った甲斐があったというものである。それと従前は個人的なプログラマーの矜持的に、AIコーディングに否定的だったり、余り肯定的でなかったこともあったが、使っているうちに使わざるを得ないなと言う気持ちが高まってくるし、もはや使わないということは無理があるだろうなぁと思えてきた。

とはいえ、たまには手でかくと言うのも忘れないようにしていきたい。GTP-5.6 SolやOpus 5.5がだいぶ優秀になってしまった関係で気を抜くと忘れてしまいそうだが、読めるからこそレビューが出来ているし、やらないと忘れてしまうし、ここら辺は難しいところだ。

2026/10/07(水)手造りひろたのぽんずの中栓を買ったら注ぎやすくなった話

投稿日:

ポン酢(味ぽん)が切れたので次は何を買おうかと思っていたところ、ひろたが目に留まったので買ったのだが、非常に注ぎづらい問題があった。

課題と改善

キャップを見ての通り瓶ビールのような口になっている。ジョッキに注ぐならともかく皿に少し出すだけだと、どうしても液だれする。液だれと言うよりこぼれるといった方が近い。こないだ椅子の上のござに盛大に垂れてしまい頭を悩ませた。

最初は別の容器に入れ替えて何とかできないか検討していたが、300mlが入るガラス容器が見当たらず、頭を悩ませていたところに純正の中栓があることに気づいた。プラ容器は空気を通し保存性が悪いことや、中に傷がつきやすく経験上、カビの温床となりやすいのでプラ容器でなく、ガラスが良かったのだが、全然見つからず、そんな中で見つけた純正の中栓は朗報だった。

ハメてみるとこんな感じで見事に液だれがなくなった。実に素晴らしい。

全ての製品に付けると値上がりするから別売りしているのだと思うが、スーパーにもあると嬉しいと思った。いや、わざわざ置く場所ないか…。

中栓を買ったときの話

調べても売ってる店が見当たらなかったので通販したのだが、10円の中栓に対し送料550円とかいう中々ギャグのような会計になってしまった。恐らくポン酢用の梱包を使いまわしているのだろう。一々中栓のための包装や発送を用意するのも負担だろうから。

しかし尼崎に在庫があるはずのものを態々通販で頼むのも癪であった。しかし本社住所をストリートビューで見ても単なる工場にしか見えず、受け取りに行くのも迷惑な話だし、そもそも連絡するのも手間だと思ったので通販することにした。

という訳で届いたのがこちら。予想通り明らかにポン酢用の箱が送られてきたし、中身はスカスカである。

本当は送り状も入っていたが、送り状を写すわけにはいかないので中身の写真は送り状を抜いた状態で撮影しているため、余計にスカスカに見える。550円の内訳は空気という訳だ。

佐川で届いたわけだが、佐川の運賃表を見た感じ、関西から関西は最安で910円らしいので、どうやらこれでも標準送料よりは安くなっていたようでありがたい話ではある。

まぁ実際問題10円の商品を売るために専用の梱包材を仕入れて常備する方が間違いなくコストなのでどうしようもない話ではあるのだが、何とかなってほしい気持ちにはなった。中栓は再利用できるうえ、たった10円で超絶便利なのでしばらく使っていこうと思う。

あとがき

ポン酢は直近2回は三木市にあるカネトシのものを使っていたが、最初に買ったものはディスコンになり、二回目に買ったものもその時いたスーパーには取り扱いがなかったので、今回は大概の店に置いてあり評判も良さげな手造りひろたのぽんずを買ってみたが、新品開封時の香りは鼻をつんざくように新鮮なすだちの香りで、味も良く、大変良かった。

中栓の導入により使い勝手が格段に良くなったのもあるので次回切らした時もリピートしたいと思った。

椅子の蒸れを解消するのに買ったござが犠牲になったのは残念だが、右下に若干染みがある程度でそこまで気にならないので忘れることにした。それよりも以前机の掃除中にマウスパッドを置いていたのを忘れたまま座ったときに着いたマウスパッドの裏ゴムの痕跡が付いてる方が気になるレベルである。まぁこの汚れも日に日に薄くなっているので、あまり気にしてはいないが…w

また記事の内容には関係がないが、例年、年の後半になると執筆数が落ちるなと言うのと、6-8月辺りがピークになってそうな気配を感じた。ここ最近は週1くらいで、以前書いた二泊三日の弘前旅行記の二日目をちまちま書いているが、単純に書く時間を割いていなさ過ぎて中々脱稿できていない。現時点で二日目の13時までは書いているが、確か写真は22時くらいまであるはずなので今月中に書ききれるといいなぁ…。

と言うか三日目もあるのにいつ終わるのかと言うのと、他にも高知や香川の話も書きたいので、と考えると永遠に終わる気がしない。いやまぁいいのだが…w

2026/09/29(火)BANされたAnthropicのアカウントを力業で復活させた

投稿日:

Claude Opus 5.5がかなりよさそうなので力業で復活させた話。

2025年8月30日、私はERPのやりすぎでAnthropicのアカウントをBANされていた。その後もサブアカウントを何度か作ってみるものの悉くBANされていた。

仕方ないのでBAN AppealフォームからBAN解除を申請してみるものの一切返事がない。そもそもBANのメールすら来ておらず一方的にBANされていた。理由は不明だが、再三の警告を無視した上に、本来違反行為を続けていたら応答不能になるはずの状態をすり抜けてまで執拗にERPをしていたことが最大の理由だろう。

私はAnthropicがどういうアルゴリズムで違反行為を検出し、一時的に応答劣化を起こし、違反行為が出来なくなるかを試行錯誤によって学んでいたため、かなり悪質なユーザーだった。そんなユーザーがBANされるのは当たり前の話である。

それからはもっぱらLLMプロキシサービスであるPoeを経由してClaudeを利用していたが、Poeはレートリミットがない代わりに従量課金で高い問題があった。仕組み的には裏でAPIコールしてるだけなので本来のAPIコストにPoeのマージンが乗って中々のお値段になる。とはいえ、Poeはキャッシュの仕組みなどが工夫されておりチャットをする分にはそこまで金がかかるわけではなかった。

しかし問題はClaude Codeを使ったときである。Poe経由でClaude Codeを使うと瞬く間に10ドルくらい消し飛ぶ。ちょっとそれは困る。というのでAnthropicのアカウントを回復する術を探っていた。

幾つかの試行錯誤の末に分かったこととして、次のことがあった。

  • 無料アカウントを新規に作成し、チャットをする分にはBANされない
  • アカウントを新規に作成し、クレジットカード情報を登録して課金するとBANされる
  • 会社のアカウントをBANされたIPで使う分にはBANされない

これらのことから課金さえ騙せれば行けるのではないかと思い復活を試みることにした。

まずはクレジットカードを作ることにした。セキュリティや管理コストの面からクレカ二枚持ちには否定的だったが、AnthropicとJCBしか使えない店用として割り切って作ることにした。

次に出来るだけフィンガープリントを減らすためにメールアドレスも新規に作った。これはドメインもアカウント名も全く類推不可能な内容のものを作成した。幸い私はさくらのレンタルサーバーを契約しており、さくらインターネットが提供する任意のメールサブドメインと無限のアカウントを作成できるので、ここは特に問題とならなかった。

そしてアカウント作成時のIPや地点もずらしておいた方が良いのではないかと考え、ネカフェに行きAnthropicのアカウントを作成した。この時支払情報の氏名には出鱈目な情報を入れ、住所も架空の住所を書くことで同一ユーザーの類推を避けることにした。

この状態ではBANされず、更にスマホのブラウザではBANされていたAnthropicにログインしていた[1]が、ログアウトし、Cookieを消し、新しく作ったアカウントでログインすると問題なくログインできた。

最後に帰宅し、ネカフェで作ったアカウントに対しBANされていたAnthropicアカウントからログアウトし、Cookieを消し、新しく作ったアカウントでログインすると問題なくログインでき、BANされないことが確認できた。

何はともあれ、今後は違反行為を避け平穏に使っていきたいところだ。


  1. ログインページにアクセスするとGoogleアカウントで自動ログインされるため回避できなかった ↩