This is an update to my previous rant, The World's Worst Web Analytics. I've been slowly and fitfully improving the visitlog service that records visits to this site to the point where is it almost feature complete - at least for the features I actually need.
You can see the results here at the visitor statistics page.
One thing I have discovered is that C++ is really crying out for a good reflection system. My page with a possible solution is by far the most popular thing I have ever written.
I've also finally pushed the code to github and written some initial documentation. This is mainly for my own satistfaction, I don't really expect anyone else to use visitlog in anger. However, someone might find the code useful.
Visitlog also runs the statistics for the quizzes on this site, but that part isn't documented yet.
Update - 8 Hours Later
Rule one of writing servers: as soon as you put it on the Internet people will try to dick with it.
I'm not looking at anyone but somebody tried to mess with me this afternoon.
I hate to be smug but I had already thought of such a possibility. Any analytics system that accepts input from clients you don't control will quickly become a database full of junk unless you take some precautions. In this case, visitlog will not log "hits" from pages that do not exist.
Just one of the many mitigations that are needed for publicly facing servers.