Skip to content


Verification of salt-archive-keyring.gpg fingerprints

Because a hacked website can easily replace GPG keys, I wanted to write down for myself what the verified fingerprints of the Salt archive keyring are: Read More »

WordPress for my forest vacation home in Norg

For a decade and a half, my uncle had been maintaining the website for our vacation home in the forests of Drenthe in Dreamweaver. This worked fine, except that: Read More »

Flexible Javascript arguments, like Python’s *args

When I started working with Python, *args was very handy and I started to miss it in my Javascript projects. Only recently, I found out you can get an arguments object of the function's arguments like this: Read More »

Automatically switch node versions between projects

At my day job we work with Node 12 for our projects, but I wanted to check out NuxtJS 3, which requires version 14 or 16. Once I updated npm, I found out me old projects no longer worked properly. Reinstalling node_modules didn't solve the problem, and besided, I didn't want to saddle up my colleagues with version incompatibilities I couldn't detect myself. So, I looked into finding a solution. And found one! Read More »

Rapidly firing myself in the foot with C pointers

Now that I am dedicated to becoming a somewhat decent C programmer, I need to master pointers. Last week, I leveled up in my pointer usage by debugging a particularly nasty segfault. It took the help of gdb (the GNU Project Debugger) for me to notice that my segfault was accompanied by very weird values for some increment counters, while the pointer involved was a char* pointer, not a pointer to an int. Read More »

WW challenge 1: learning better C by working on XJot

Since the beginning of this month (October 2021), I become officially jobless, after 6 years at YTEC. That's not so much of a problem for a software developer in 2021—especially one in the Dutch IT industry, where there has been an enormous shortage of skilled developers for years. However… I don't (yet) want a new job as a software developer, because: in the programming food pyramid, I'm a mere scripter. That is, the language in which I'm most proficient are all very high-level languages: Python, PHP, XSLT, Bash, JavaScript, Ruby, C# (in order of decreasing (recency of) experience. I have never mastered a so-called systems language: C, C++, Rust. Read More »

MQTT benchmark of HiveMQ, VerneMQ, Mosquitto and FlashMQ

Watch this demoscene style benchmark of HiveMQ, VerneMQ, Mosquitto and FlashMQ: Read More »

Breaking amplifier fault current with relays and MOSFETs Read More »

FlashMQ version 0.8.0

Just released FlashMQ version 0.8.0, a multi-threaded (multi-core) lightweight MQTT server. The latest new feature is a native authentication plugin interface for easy implementation of custom authentication and authorization. Read More »

Gitlab ‘Your password expired. Please access GitLab from a web browser to update your password.’

I just fixed a very obscure error in Gitlab of 'Your password expired. Please access GitLab from a web browser to update your password.' This error would appear during SSH operations, and in various log files in /var/log/gitlab. Also XHR requests to the server got that response. Read More »