Celebrating 9 years TQdev.com

Today I am celebrating the 9 years that the TQdev.com blog exists. In this period I have written 237 blog posts on various software development related topics. Best visited post is now “LUKS with USB unlock” with more than 42 thousand visitors. Below you find the visitors of the blog per month. Visitors graph The graph below is a (copy of) a server side generated SVG document from the backend of this blog. As you can see the number of visitors has roughly doubled in the last 2 years! ...

August 31, 2025 · Maurits van der Schee

Check your NMVe drive I/O latency, disable APST

I’ve got a ADATA SX8200PNP (XPG SX8200 Pro PCIe Gen3x4 M.2 2280 2TB NMVe) and it is not as performant as I would like. I’ve found this out by running a simple I/O ping test (using the “ioping” tool). In this post I’ll explain how you can do this test to see whether or not you are affected as well and what you can do to make your SSD 5-10x more responsive. ...

August 30, 2025 · Maurits van der Schee

Installing encrypted Linux Mint on an external SSD

Linux Mint can be installed on an external SSD. Simply boot from this SSD on any other machine and it just works! You can easily buy a fast, large and durable external SSD nowadays. Unfortunately installing Linux Mint on a an external SSD is not so straightforward due to a bug in the installer. In this post I’ll explain you how to work around this bug in the installer of Linux Mint, my favorite desktop distribution. ...

August 29, 2025 · Maurits van der Schee

Script to type clipboard content in a remote console

As an IT professional, I often work on remote consoles, especially during installations or troubleshooting. Once SSH is set up, copying and pasting text is easy. However, to gain access initially, I need to enter my public key on the remote machine. Sometimes this has to be done through a VNC console, or even a Java or Spice console window. While modern ed25519 public keys are only about 50 characters (much shorter than old RSA keys) it’s still tedious to type them in by hand. ...

August 28, 2025 · Maurits van der Schee

A Monte Carlo simulation of the Monty Hall problem

The Monty Hall problem is a probability puzzle. It has no logical contradiction, but for many people the result goes against their intuition. The problem originates from the American television game show “Let’s Make a Deal”. It is named after its original host, Monty Hall. The problem is stated as: Suppose you’re on a game show, and you’re given the choice of three doors: Behind one door is a car; behind the others, nothing. You pick a door, say No. 1, and the host, who knows what’s behind the doors, opens another door, say No. 3, which has nothing. He then says to you, “Do you want to pick door No. 2?” Is it to your advantage to switch your choice? ...

August 20, 2025 · Maurits van der Schee

Fyne Authenticator needs you to succeed!

I just published Fyne Authenticator: an open source TOTP soft token implementation that is written in Go and uses Zbar for QR scanning. On desktop it lives in the system tray and it uses the keyring to store the encryption password for a seamless experience. Although the application has the potential to run on many platforms it is currently only tested under Debian (based) Linux. For a Windows, Android and/or iOS release I may need your help. ...

May 23, 2025 · Maurits van der Schee

MintyPHP Forms: a flexible PHP form builder

Forms play an important role in business software. Business software typically loads data from a relational database into a form, allows users to change the data and then saves the data from the form back into the database. If you make a lot of business software you have to create and design a lot of forms. To allow you to create nice looking forms (using Bulma for instance) without having to type a lot of boilerplate code I created MintyPHP Forms. ...

May 18, 2025 · Maurits van der Schee

Install Apache 2.4 and PHP 8 on Debian 12

Ubuntu 20.04 is EOL at the end of next month, so it’s time to reinstall all your old web servers with Debian 12. Today I’ll share a post with all the configuration that I apply on my web servers. While you could apply these with Chef, Ansible or SaltStack (like a real pro), you can also type them in, like I often do. I’m using Debian 12 netinst and configure “SSH server” and “standard system utilities” as a default packages. ...

April 13, 2025 · Maurits van der Schee

Creating 103mail.com - Update 2

A while ago I told you about the free email service I’m building that respects privacy and prevents profiling on 103mail.com. The reason? Microsoft and Google operate most of the world’s email services and because email messages often contain all previous content, they can profile all people in the world (even people that do not use their services). When using 103mail.com the email (content) will never leave the server. The outgoing email will be replaced with a notification with a link to the web mail viewer. Thus the outgoing mail content can only be viewed over the web and people or servers reading the mail will be logged. ...

March 30, 2025 · Maurits van der Schee

A laptop I can learn to love: HP 17-cp3076nd

I don’t like laptops. They are slow, have small screens and horrible keyboards and track pads. When I have to work on them for a longer period of time my back starts to ache. Next to that they often can’t be upgraded or repaired, because the storage and memory are soldered or glued onto the motherboard. And when you want to run Linux you are often disappointed by the (unsupported) exotic hardware. Nevertheless every now and then a loved one asks me to buy a laptop for them and they expect me to know which one is the best. ...

February 19, 2025 · Maurits van der Schee