Web Development

Web Development

200が返るから、気づけなかった|孤立したAVIFが古い画像を返し続けていた話

自作プラグインで、削除した画像が返り続ける不具合を見つけました。原因は.htaccessの振り替え条件が、変換後のファイルの存在しか見ていなかったこと。404にならないので気づきにくい。切り分けの手順と、1行の修正をまとめました。
Web Development

ライセンスの一覧が空になった夜|JSON ファイル1つのサーバーで起きた競合と、4つの資料からの復旧

自作プラグインのライセンスサーバーで、データの JSON ファイルが 947 バイトの空に書き換わりました。原因は同時リクエストの競合。300 並列の再現実験で3回とも全件消えたこと、CSV・古いコピー・Stripe・Xserver の自動バックアップを組み合わせて戻した流れ、flock と一時ファイルの差し替えによる対策をまとめています。
Web Development

横一列12マスで物語を作る|URLアニメーションで動く107秒の設計

アドレスバーの `#` から先を12マスの画面として使い、107秒の無声映画を作りました。レイヤー合成、固定地図、幕という単位、1秒で1日を過ごす時間表現まで、1次元しかない画面での設計を書いています。
Web Development

EF%B8%8F の正体と、URLに書ける絵文字207字の話|URLアニメーション

URLアニメーションを作りました。URLやファイル名に混ざる の正体は U+FE0F。Unicode 16.0 のデータから、これを必要とする絵文字207字と区画ごとの偏り、目で選ぶと外す差し替え候補を実測しました。
Web Development

8割をAIと書いたコードを、1年後の自分が読めなくなった話|「動いた」は完成じゃない

8割を AI と書いた WordPress テーマを1年後に開いたら、自分のコードなのに読めませんでした。重複した関数、散らばったヘルパー、放置されたデッドコード。読めなくなった原因と、次に同じ轍を踏まないため自分へ課した6つのルールを、実体験でまとめました。
Web Development

Qiita には画像アップロードの API が無かった|予約投稿プラグインで詰まって、URL 埋め込みに切り替えた話

WordPress から Qiita へ予約投稿するプラグインを自作中、画像を Qiita へ送ろうとして API が見つからず詰まりました。公開 API に画像アップロードの口はありません。WordPress メディアや Cloudflare R2 の URL を本文へ埋め込む方式へ切り替えた検証メモです。
Web Development

日本語フォームの半角カナ・全角英数をinputとblurで使い分けて自動変換する話

日本語フォームの半角カナ・全角英数を JavaScript で自動変換する実装メモ。input イベントは IME 経由では動かずコピペ対策専用、IME 入力は blur で最終チェックする役割分担を、ATOK + Chrome の実測ログでまとめました。
Web Development

姓名フォームのフリガナ自動入力をcompositionイベントで自前実装した話

姓名フォームのフリガナ自動入力をcompositionイベントで自前実装した検証メモ。ATOK 35 + Chrome 148の実測ログを交え、変換途中のフォーカス移動、推測変換、Cmd+Tabで発火順序が逆転する挙動などをまとめました。
Web Development

Contact Form 7でzipaddr-jpが動かなかった話|郵便番号→住所自動入力で踏んだid命名規則の罠

Contact Form 7 + zipaddr-jp で郵便番号→住所自動入力を実装したとき、id 命名規則の area / addr の使い分けを見落として動かなかった実体験。原因究明の流れと、area が分かれている設計理由を実装メモで残します。
Web Development

日本語入力のEnterでフォームが誤送信される問題を直した話|Safari・React・Vue対応

日本語入力中のEnterでフォームやチャットが誤送信される問題を検証。isComposingだけで防げなかったSafariの挙動と、compositionendの時刻を使った二段ガード対策を、React・Vue・モバイル対応まで実例付きでまとめました。
タイトルとURLをコピーしました