“Heap, Heap, Array!”
Articles about the soon-to-be-lost art of computer programming.


Living the Pipe Dream
Access your Docker Compose services via easy-to-remember names
Did you know you can make your Docker web app containers available via simple names instead of hard-to-remember port numbers?

Living the Pipe Dream
Setting up a new Laravel project with Sail – without installing PHP
It’s surprisingly hard to figure out how you can create and run a new Laravel app via Docker without installing PHP first.

Living the Pipe Dream
Frameworks for developing browser extensions
You probably wouldn’t build a modern web application without a framework, so why use vanilla JavaScript for your browser extension?

Living the Pipe Dream
Add autolink references to GitHub pull request titles
Alright is a browser extension that automatically turns JIRA (and other) references in GitHub pull request titles into hyperlinks.

Living the Pipe Dream
Facilitating ROS communication between two different networks
For my first robotics project, I needed to find a way for students in Germany to control a robotic arm in the Netherlands using ROS.

Living the Pipe Dream
What to do if you accidentally committed secrets to a repository
Have you ever accidentally committed a secret to a Git repository? It’s a simple mistake that can be hard to fix, but it’s also easy to prevent.

Living the Pipe Dream
Five things in Python that I only learned this year
Many people learn Python as their first or second programming language, but only few people bother to master it.

Living the Pipe Dream
PHP developers hate him! Find out these weird tricks they don’t want you to know!
Three “fun” ways to throw off fellow PHP developers (and the “fractal of bad design” article isn’t one of them).

Living the Pipe Dream
Level up your Dockerfiles with these tips and tricks
It’s easy to write Dockerfiles that work, but also to write Dockerfiles that suck. Here are some tips and tricks for writing better Dockerfiles.

Living the Pipe Dream
New PHP 8 language features that you may have missed
PHP has gained a lot of new language features over the years. Some of them are frankly a bit insane – but in a good way.

Living the Pipe Dream
Improving search results using query expansion
Make your custom-built search engine return more relevant results by automatically adding similar or related words to search queries.

Living the Pipe Dream
Let’s build a simple journey planner using SQL (part 3, that you can run yourself)
What’s better than a crappy train travel planner that runs on my machine? A crappy train travel planner that runs on YOUR machine!

Living the Pipe Dream
Let’s build a simple journey planner using SQL (part 2 of probably more than 2)
Yet another blog post where I create an unmaintainable mess using our favourite yet very inadequate programming language, SQL.

Living the Pipe Dream
Let’s build a simple journey planner using SQL (part 1 of definitely more than 1)
When all you have is a relational database, everything looks like a table. And you know what? It works! Sort of.

Living the Pipe Dream
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.

Living the Pipe Dream
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.

Living the Pipe Dream
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!

Living the Pipe Dream
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
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.

Living the Pipe Dream
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?

Living the Pipe Dream
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.

Living the Pipe Dream
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
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 do you number SELECT query results using SQL?
Want to let number or rank your query results? Let your database do the hard work for you.