Tech
Software engineering, web development, cool new tech, and anything else that tends to get developers excited.

Living the Pipe Dream
Execute commands and long-running scripts in the background using screen
There’s an easy way to keep scripts and commands “alive” when you disconnect from a server.

“Heap, Heap, Array!”
Handling model inheritance in Laravel’s Eloquent ORM without third-party libraries (is a bad idea)
It’s technically possible to make Eloquent models inherit from each other, but I probably wouldn’t recommend it.

One More Thing I (Don’t) Want to Buy
A long-term review of the M1 MacBook Pro
The 2021 MacBook Pro may not be perfect, but I have (nearly) zero regrets about choosing this machine, which doesn’t happen very often.

“Heap, Heap, Array!”
How to write good code comments
In this latest instalment of “Things That People Don’t Want To Bother With” I discuss best practices for writing comments in source code.

“Heap, Heap, Array!”
How many unit tests should you write?
How many unit tests are enough? As always the answer is “It depends”, but fortunately there is a handy rule of thumb that you can use!

“Heap, Heap, Array!”
The Chicago and London schools of TDD
Tests can be written Chicago-style or London-style. Neither is strictly better than the other; which style should you use?

Living the Pipe Dream
How to find previously used terminal commands in Linux and macOS
Unix shells remember which commands you have issued through them. Here are a few ways to make use of that command history.

Living the Pipe Dream
What software development teams should document in their Confluence space
Everyone always talks about technical documentation, but there are other types of documentation that are just as useful.

“Heap, Heap, Array!”
Structure your tests using the Arrange-Act-Assert pattern
Arrange-Act-Assert is a standardised approach to writing tests that makes them easier to read and helps you avoid some bad practices.

The Toilet Paper
How many spaces should you indent your code?
None, because tabs are better than spaces! Joking aside, it appears that the exact number doesn’t matter that much.

The Toilet Paper
Everything that management needs to know about technical debt
Developers often complain about technical debt, but how much does it really hurt the business? According to this study it’s a lot.

Living the Pipe Dream
How to manually refresh web page previews in Twitter cards
A tutorial that explains how you can force refresh the metadata of a web page in a tweet.

The Toilet Paper
How developers perceive and deal with architecture erosion
Let’s talk about architecture erosion, its causes and consequences, and how developers can identify and control it.

The Toilet Paper
Why snake_case is better than camelCase
There aren’t many reasons why you should choose snake_case over camelCase, but the ones that are there are pretty convincing.

The Toilet Paper
Why camelCase is better than snake_case
Does it matter whether you use camelCase or snake_case for identifiers? Yes it does! Probably. Maybe.

The Toilet Paper
A checklist for controlled program comprehension experiments
If you want to study the effect of something on the understability of code, you need a controlled experiment. What are things to do or avoid?

The Toilet Paper
What is the best programming language for beginners?
This study attempts to provide a more nuanced answer than “JavaScript”, from an educator’s perspective.

“Heap, Heap, Array!”
Storing trees in a database table
Relational databases are very good at storing tabular data, but what if you need to store arbitrarily-sized trees?

“Heap, Heap, Array!”
How to deal with Dutch compound words when processing text
The Dutch have a lot of long words that aren’t in dictionaries. But that doesn’t necessarily mean they’re hard to read for Dutch people.

“Heap, Heap, Array!”
Blursed async PHP: Dumb, but also kind of fun
There are decent, battle-tested ways to write asynchronous PHP, but that’s not what this article is about.

Living the Pipe Dream
Translate Dutch to English like it’s 1999
I spent three years building a web app that translates Dutch to bad English and the results are even worse than I expected.

Drinking the Kubernetes Kool-Aid
How (not) to install WordPress on Kubernetes
Today we’re dragging LAMP into the 21st century in the worst possible way.

“Heap, Heap, Array!”
When and how to JOIN a table with itself
Relational databases make it very easy to join data from different tables, but did you know you can also JOIN data within the same table?

Living the Pipe Dream
How I separate my private and professional online browsing
My work-life balance is practically non-existent, but at least my browsing is completely separated…