What loading all of lib/ actually costs
Line 46 of this service's single entry file: foreach (glob(__DIR__ . '/lib/*.php') as $f) { require_once $f; } That is 65 files and 1.5 megabytes, loaded on every request. A counter image,…
When a cache scales the wrong way
Four small files sit in this service's cache folder. The largest is 35 bytes. Together they hold three counter numbers, and they are read on every single counter request. They exist so the…
When adding an index makes things slower
The table of daily figures has one key: the counter and the date together. Five places in the code ask it a different question — not "this counter over time" but "all counters on these…
Why the AI doesn't run on our server
No language model runs on the machine that serves this site. The summaries are computed on a second device that fetches jobs, does the work, and brings the sentences back. The reason is…
Caching counter images in memory
Close to a fifth of the counter images this service draws no longer change anything. A mouse-tracking script from the previous generation reloads the image on every movement, and since…
A 2015 script still reloads counters
The previous generation of this service shipped a mouse-tracking script. It loaded the counter image once, normally, and then loaded it again on every mouse movement — with coordinates in…
What a password costs on modest hardware
Statistics pages here can be protected with a password. Hashing that password is the one operation in this service that is supposed to be slow — that is what makes a stolen hash expensive…
Compressing the same file every time
Apache compresses responses on the fly. For a page that is different every time, that is the only option. For a stylesheet that changes once a month, it means the server does the same work…
Animated counters without JavaScript
A fair number of the counter designs here move. The number counts itself up, or the panel draws itself in, or something falls into place and settles. None of them use a single line of…
Stats4U 3 is here
The site you are reading this on was rebuilt this month — not restyled, rebuilt, starting at the counting path. There is a separate post about the eleven quiet years that led up to it. This…