TLDR: I am building a standalone version of Koko Analytics so that you can use it for non-WordPress sites. You can follow the project on GitHub here: github.com/koko-analytics/koko-analytics. The year is 2025 and I once again find myself building an open-source, self-hostable, privacy-friendly website analytics product. By now I am starting to worry if I will ever be able to leave this topic alone. I mean, it was quite the rage back in 2018 but surely there are more than enough good solutions...| Danny van Kooten
Tell me mother as you kiss your baby that no one died today, that no one was a martyr or a hero, and that all who now sleep will awake, and that the sirens that now sound will be the only death recorded, and that the drivers without cars, and the cars without drivers, will each find a partner for as long as they need, like the Palm Doves in the park. Tell me mother, that as long as you love your baby all mothers will love theirs and no mother will again mourn the foreheads without a kiss and ...| Danny van Kooten
Recently I had to migrate a production database from SQLite1 to MySQL for a Symfony application using Doctrine. I assumed this would be as easy as running a single command, but it turned out to be slightly more involved. Not hard by any means, but I did have to figure out a few things and piece together a few pieces of the puzzle. The first few searches lead me to SQLite's .dump command2, which dumps the entire database (including table structure and indices) to a text file. This approach req...| Danny van Kooten
I've been doing a lot of C and C++ programming lately. After trying a myriad of editors and related tooling, it seems I've finally settled on a satisfactory set-up that is both performant, reliable and powerful. This post is mostly me praising a set of tools but also showcasing some of their capabilities. Editor: Sublime Text The two most popular options right now are probably VSCode and CLion, yet I found neither of them performant or reliable enough for my taste. Instead, I am using good ol...| Danny van Kooten
Remember me moving this site over to sourcehut pages last week? It didn't last long. It doesn't have much to do with the service though1. It's just that I used the last few weeks to move some friends and family back on shared hosting, which turned out to be amazing value for money. You get Apache + MySQL LTS + PHP 8.2 + 64 MB of Varnish for less than $10 per month, including SSH access and hourly back-ups. With me going back to full-time employment in a few weeks, I really liked the idea of f...| Danny van Kooten
Last weekend I moved this site over to sourcehut pages. Deployment was a lot quicker than through GitHub pages and the SSL certificate was issued within seconds of me pushing the tarball to the sourcehut servers. One thing that took me a while to figure out was how to set-up a redirect from my apex domain to the www. variant. I'm sharing my approach here in the hope others can find it more easily: Ideally this would be a HTTP redirect, but this does not seem possible right now so instead we c...| Danny van Kooten
Just a few days after finishing Advent of Code 2023, I got nerd sniped1 by Gunnar Morling with his One Billion Rows Challenge. The challenge is to compute the average, min and max temperature value over 1 billion data points keyed by city name. As fast as possible, using only the Java standard library. I conveniently ignored the Java constraint and did a 1BRC implementation in C instead. It's written in standard C11 and uses POSIX threads for processing the file in parallel. Naive implementat...| Danny van Kooten
Heads up. The styling of my website changed since writing this post, so the element may look different than intended. This blog always had a pretty minimal amount of CSS, but somehow I still kicked off 2024 by throwing away all styles and starting over. The constraints I set for myself were as follows: No use of CSS classes. No colors except for shades of black and white. A monospaced (and web-safe) font. A strict separation of content and presentation. The latter one proved to be a bit of a ...| Danny van Kooten
Last week I read Climate-friendly software, don't fight the wrong battle by Thomas Broyer. It's a really good read and nicely puts into words my current understanding of striving for more sustainable software. Key takeaways: Pick servers in carbon-neutral or low-carbon datacenters first, then optimize your architecture and code. Don't be the one that will make your users change their device. Optimize for perceived performance and battery life. Since writing about CO2 emissions on the web in 2...| Danny van Kooten
TLDR: I grabbed a list of the 10.000 most popular domains on the internet, downloaded their homepage and checked for compression techniques. Surprisingly, quite a few of them (~8%) are not applying any kind of compression at all with some of them leaving terabytes of potential monthly data savings on the table ($$$ + a slower website).| Danny van Kooten