キャッシュされた画像がカウントされない理由
ウェブサイトの統計に関する混乱のよくある原因として、一般にブラウザキャッシュと呼ばれるローカルファイルストレージの概念が挙げられます。ウェブブラウザは、効率と速度を最大限に高めるように設計されています。…
電話の画面上のカウンター
最新のモバイルデバイスの物理的な制約により、ウェブレイアウトの動作や要素同士の相互作用の仕方が根本的に変わります。幅の広いデスクトップモニターでは完全にバランスが取れているように見えるレイアウト要素でも、スマートフォンの画面の狭い範囲に押し込まれると、深刻な構造上の問題を引き起こす可能性があります。…
レイアウトをずらさずにカウンターを設置する
ページにスペースが確保されていないと、テキストより後に読み込まれたカウンターが周囲の内容を動かすことがあります。設置時には生成された寸法を保ち、コンテナーに収め、意図せず測定を遅らせないことが必要です。これらは個別に確認します。レイアウトが安定していても、すべてのページ閲覧が計測された証拠にはなりません。 生成された寸法 確保されたスペース 安定したレイアウト…
tmpfs に置いた 870 MB のファイルと、そのあとの再起動
八月二十八日の 19:35、二日分をひと息に読むために、一日分の記録簿を /tmp へ展開した。19:44、機械は再起動した。 確かめられなかった性質 この機械の /tmp は tmpfs である。つまり記憶である。df は 1.9 GB 空いていると告げ、その場所がどこから来ているかについては一言も言わない。そして機械の全体は 3,794 MB だ。 こうして 870 MB…
lib/ を丸ごと読み込むと実際いくらかかるのか
このサービスの唯一の入口ファイル、46 行目。 foreach (glob(__DIR__ . '/lib/*.php') as $f) { require_once $f; } 65 ファイル、1.5 メガバイト。要求のたびに読み込まれる。カウンター画像でも、統計ページでも、404 でも同じだ。昨日はそれが 20,734 回起きた。 効いてくるのは小さいほうの数字…
キャッシュが逆向きに育つとき
このサービスのキャッシュ用フォルダに、小さなファイルが四つある。いちばん大きいもので 35 バイト。合わせてカウンター番号を三つ持っていて、カウンターへの要求があるたびに読まれる。…
インデックスを足すと遅くなるとき
日ごとの数字が入った表の鍵はひとつ、カウンターと日付の組である。コードの五か所は、この表に別の問いを立てる — 「このカウンターの時間変化」ではなく「これらの日の全カウンター」だ。トップページの一覧、ランキング、サイトマップ、90 日ぶんのグラフ、そして状態の数字。日付の列にインデックスがなければ、そのどれもが 114,113 行すべてを読む。…
AI を自分のサーバーで動かさない理由
このサイトを配信している機械では、言語モデルは動いていません。要約は二台目の装置で計算されます。その装置が依頼を取りに来て、作業をして、文を持ち帰ります。 理由は算数です。3B のモデルは一ギガバイト超のメモリを占め、一回の答えに数秒かかります。このアプリケーション全体で最も重いデータベース問い合わせは 581 ミリ秒です。両方を同じ基板に載せるということは、379,000…
カウンター画像をメモリに置く
このサービスが描くカウンター画像のうち、五分の一近くはもう何も変えません。前の世代のマウス追跡スクリプトが動くたびに画像を読み直し、そしてそれらのリクエストが何も増やさなくなって以来、続けて二回で同じ画像がバイト単位で同じように出てきます。 キャッシュの明らかな候補です。面白かったのは、どこに置くか、そして鍵を何に基づかせるかという二つの判断でした。 ディスクには置かない…
2015 年の script が今もカウンターを読み直す
このサービスの前の世代には、マウス追跡のスクリプトが付いていました。カウンター画像をまず普通に一度読み込み、そのあとマウスが動くたびにもう一度読み込むのです — 座標をクエリ文字列に入れ、rerun=1 という印を付けて。名前は正直です。これは同じ訪問のもう一度であって、新しい訪問ではありません。 そのデータを誰も読んだことがありませんでした。rerun…
非力なハードウェアでパスワードにかかる値段
ここでは統計ページにパスワードをかけられます。そのパスワードのハッシュを計算する処理は、このサービスで唯一、遅くあるべき処理です — 盗まれたハッシュの解読を高くつかせているのが、まさにそれだからです。問題は、このハードウェアでどれくらい遅いか。 このサイトを動かしている機械で実測、PHP 8: PASSWORD_DEFAULT 560 ms (cost 12 になる)…
同じファイルを毎回圧縮する
Apache はレスポンスをその場で圧縮します。毎回中身が違うページなら、それしか手がありません。月に一度しか変わらないスタイルシートにとっては、サーバーが訪問者ごとに同じ作業をやり直し、何週間も続け、そのたびに結果を捨てるということです。そのためのキャッシュはありません。 2026 年 8 月 19 日、確立済みの接続の上で、このサイト自身の style.css(124…