A counter that needs no cookie banner
Most analytics need a consent banner because most analytics store something on the visitor's device: a cookie, an entry in local storage, an identifier that survives until tomorrow. That…
Three columns left over from Stats4U 2
The main counter table here has 166,436 rows and a number of columns that look like they matter. Three of them are lastdomain, firstdomain and userdomain. They hold data: lastdomainnot…
We stopped collecting screen sizes
This service used to record screen resolution. The browser script read window.screen and sent it along as res=1920x1080, and the statistics page had a panel for it. It does not any more.…
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…
How the toplist works, and opting out
stats4u.net has ranked its busiest counters since the beginning — a 2012 post already talks about improving it. The current version lives at /top, and it works differently underneath than…
A backup in the web root is a source leak
Before editing a large file, the natural move is to copy it first. cp index.php index.php.vor-aenderung, then work. If that file sits in the directory the web server publishes, you have…
New privacy policy, terms and DPA
As of 19 August 2026, stats4u.net has three legal documents where it used to have one: a rewritten privacy policy, a terms of service, and — new — a data processing agreement (DPA) under…
A language code that looked like Perl
On 19 August 2026 we added a rule to .htaccess blocking a class of file that should never be served directly to a browser: leftover source-code copies sitting in the web root after an edit…
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…
Why the exclusion list is not hashed
If you build a site, you open it twenty times a day. On a counter with forty visitors a month, half the statistics are you. So there is a setting: do not count visits from my own address.…
A page address longer than its column
On 9 August 2026, twenty counter images failed to render. Not drew wrong, not drew slowly — the visitor got nothing at all where a counter should have been. The cause was a page address…
What came off the about page, and why
The old about page had a feature list on it. Rebuilding that page meant reading the list line by line against the software, and four entries no longer matched it. One of them had not…