ブログ · 6 ページ目
開発とデザイン、あとは雑記。
autocorrect 属性:自動修正にページが口を出せるように
Chrome 152 がグローバルの autocorrect 属性に対応し、Safari と Firefox は以前から対応していたため Baseline に到達した。spellcheck との違い、長年ベンダー接頭辞だった理由、切るべき場面をまとめる。
圧縮したまま変更できる:動的圧縮自己索引の論文
ゲノム、ウェブアーカイブ、バージョン管理された文書など、反復性の高い文字列データはよく圧縮できるが、一度変更すると全体を作り直す必要があった。RIKEN AIP の ESA 2026 論文は dynamic RR-index を提案し、δ-最適空間で圧縮・検索・更新を初めて両立させた。
<template for>:どの領域を置き換えるかを HTML 自身に宣言させる
Chrome 150 が template for 属性に対応した。処理命令で置換可能な領域を示し、ストリームで届く template がそこを埋める。使い方、何を解決するか、そしてなぜ今は本番に近づけるべきでないか。
ページに出すソースと curl に渡すファイルは同じ文字列でなければならない
スクリプト欄はソースを表示しつつ、同じファイルを /scripts/x.sh で配る必要がある。二つの複製は必ずずれる。import.meta.glob の ?raw でビルド時にインライン化する方法が、ビルド時のファイル読み込みや public への複製より確実な理由。
ファイルの原子的書き込み:一時ファイルに書いてから rename
上書きは停電・クラッシュ・並行読み取りの瞬間に半端なファイルを残します。一時ファイルと rename を使えば、ファイルシステムの原子性で「半端」を不可能にできます。
Base64:暗号でも圧縮でもない
Base64 は 3 バイトを 4 文字の可読文字に変換し、容量を三分の一増やします。解くのは「バイナリをテキスト経路に通す」ことで、秘匿ではありません。
