Web Development 200が返るから、気づけなかった|孤立したAVIFが古い画像を返し続けていた話 自作プラグインで、削除した画像が返り続ける不具合を見つけました。原因は.htaccessの振り替え条件が、変換後のファイルの存在しか見ていなかったこと。404にならないので気づきにくい。切り分けの手順と、1行の修正をまとめました。 2026.10.06 Web Development
Web Development ライセンスの一覧が空になった夜|JSON ファイル1つのサーバーで起きた競合と、4つの資料からの復旧 自作プラグインのライセンスサーバーで、データの JSON ファイルが 947 バイトの空に書き換わりました。原因は同時リクエストの競合。300 並列の再現実験で3回とも全件消えたこと、CSV・古いコピー・Stripe・Xserver の自動バックアップを組み合わせて戻した流れ、flock と一時ファイルの差し替えによる対策をまとめています。 2026.10.02 Web Development
Web Development 横一列12マスで物語を作る|URLアニメーションで動く107秒の設計 アドレスバーの `#` から先を12マスの画面として使い、107秒の無声映画を作りました。レイヤー合成、固定地図、幕という単位、1秒で1日を過ごす時間表現まで、1次元しかない画面での設計を書いています。 2026.09.25 Web Development
Web Development EF%B8%8F の正体と、URLに書ける絵文字207字の話|URLアニメーション URLアニメーションを作りました。URLやファイル名に混ざる の正体は U+FE0F。Unicode 16.0 のデータから、これを必要とする絵文字207字と区画ごとの偏り、目で選ぶと外す差し替え候補を実測しました。 2026.09.22 Web Development
Web Development 8割をAIと書いたコードを、1年後の自分が読めなくなった話|「動いた」は完成じゃない 8割を AI と書いた WordPress テーマを1年後に開いたら、自分のコードなのに読めませんでした。重複した関数、散らばったヘルパー、放置されたデッドコード。読めなくなった原因と、次に同じ轍を踏まないため自分へ課した6つのルールを、実体験でまとめました。 2026.06.26 Web Development
Web Development Qiita には画像アップロードの API が無かった|予約投稿プラグインで詰まって、URL 埋め込みに切り替えた話 WordPress から Qiita へ予約投稿するプラグインを自作中、画像を Qiita へ送ろうとして API が見つからず詰まりました。公開 API に画像アップロードの口はありません。WordPress メディアや Cloudflare R2 の URL を本文へ埋め込む方式へ切り替えた検証メモです。 2026.06.19 Web Development
Web Development 日本語フォームの半角カナ・全角英数をinputとblurで使い分けて自動変換する話 日本語フォームの半角カナ・全角英数を JavaScript で自動変換する実装メモ。input イベントは IME 経由では動かずコピペ対策専用、IME 入力は blur で最終チェックする役割分担を、ATOK + Chrome の実測ログでまとめました。 2026.05.10 Web Development
Web Development 姓名フォームのフリガナ自動入力をcompositionイベントで自前実装した話 姓名フォームのフリガナ自動入力をcompositionイベントで自前実装した検証メモ。ATOK 35 + Chrome 148の実測ログを交え、変換途中のフォーカス移動、推測変換、Cmd+Tabで発火順序が逆転する挙動などをまとめました。 2026.05.10 Web Development
Web Development Contact Form 7でzipaddr-jpが動かなかった話|郵便番号→住所自動入力で踏んだid命名規則の罠 Contact Form 7 + zipaddr-jp で郵便番号→住所自動入力を実装したとき、id 命名規則の area / addr の使い分けを見落として動かなかった実体験。原因究明の流れと、area が分かれている設計理由を実装メモで残します。 2026.05.09 Web Development
Web Development 日本語入力のEnterでフォームが誤送信される問題を直した話|Safari・React・Vue対応 日本語入力中のEnterでフォームやチャットが誤送信される問題を検証。isComposingだけで防げなかったSafariの挙動と、compositionendの時刻を使った二段ガード対策を、React・Vue・モバイル対応まで実例付きでまとめました。 2026.05.08 Web Development