Blog Archive


I'm still fed up and a browser is coming along fine

Date: 16 Dec 2023
Tags: [ rust, programming, browsers

Three months ago, I wrote a small story about being fed up with things and trying to do something about it. Three months in, we’ve got a small community sharing the same goal: let’s try writing a browser.


I'm fed up with it, so I'm writing a browser

Date: 22 Sep 2023
Tags: [ rust, programming, browsers

This blogpost starts with me switching of my car radio, and ends with me writing a browser. There is some stuff in between as well.


A list of 100 opinions I hold

Date: 05 Sep 2022
Tags: [ opinion

“That’s just like, your opinion, man” - the dude

Here’s a list of 100 opinions I hold. These are opinions, not hard facts or truths. There will be many people disagreeing with some of them, maybe even most of them, and there will be very few that will agree with all of them.


A comprehensive list of failed projects

Date: 27 Dec 2021
Tags: [ projects

I’m full of ideas. Most of them are stupid, though. But sometimes, some of these ideas get stuck in my head like an itch I must scratch, and voila: a new side-project is born.

I don’t start projects with a direct goal. Sometimes it’s just to figure out: “how hard could it be” (hint: always), or sometimes: I could get rich with this (hint: never).

Even though I’m making a good amount of money as a freelance consultant, I would love to have a project that I love to work on, which generates money even when I’m not working on it directly. As a freelancer, I can only bill for the hours I make, and typing twice as fast doesn’t reflect in getting paid twice as much.

Because I make good money, I also have the opportunity to take a few months off in a year and focus full time on my side projects. For me, this is also a perfect way to wind down after hectic months of working against deadlines, so it helps me destress, feeds my curiosity, allows me to use new untapped technologies, and maybe make a bit of money.

If we talk about the first few reasons: all my projects succeed, whether I finish them, get bored with them, or find they are not feasible to keep alive. However, making money is much harder to achieve, yet
it is becoming the main reason I want to start a new project.


Let's talk about your privates

Date: 07 Nov 2021
Tags: [ php

In the software development world, there are a lot of debates going on: tabs vs. spaces, vim vs. emacs, Linux vs. mac, and so on. In most, if not all, these debates, there is no clear winner: both sides are equally right (or wrong), and most likely, there is no majority on one side. I, however, am part of a debate on the “losing” side in such that I’m part of the minority. And even though strong opinions are weakly held, after I guess since the launch of PHP 5, my opinion still holds, and I’m talking about your privates…


My first attempts with Unity

Date: 01 Sep 2021
Tags: [ games ]  [ unity ]  [ csharp

For a while now, I’m thinking about doing something with Unity to see how it works. And what a better way to figure things out is to try and develop a game with it.


Go maps vs switches

Date: 04 Mar 2021
Tags: [ go ]  [ benchmarking

Sometimes, things aren’t faster because you think it is,.. but because you benchmarked them. One of Go’s nice things is that it makes it easy to benchmark things to see if your hunches are correct quickly. And sometimes, they turn out not.


From Mac to Windows

Date: 12 Aug 2020
Tags: [ mac ]  [ win

I’ve moved from a Macbook Pro to a Dell PS running Windows 10. I decided against MacBook after their annoucement to move to ARM. Even though the macbook 16” was the only system i actually was thinking of buying, i’ve decided against it and give windows a new try. I’ve heared more and more good stories about windows, and more and more bad stored about mac over the last few years. Let’s switch!


Introducting BitMaelum - A new mail concept

Date: 12 Jun 2020
Tags: [ crypto ]  [ email ]  [ bitmaelum

What if you can design an email system with a clean sheet. You don’t need to care about existing email clients or servers or anything at all. Even the concept of an email address can be touched. What would such a system look like? This is my attempt,..


Amazon Web Services

Date: 20 May 2020
Tags: [ aws ]  [ amazon

More often than not, I’m using Amazon Web Services (AWS) as my “cloud”. Not only for my own projects, but almost all customers I’m working for use Amazon for hosting their applications. So over time you build up a lot of experience on AWS service: you know how to (correctly) setup VPC’s, know when to you ECS, EC2 or lambda to host code and even services like S3, SNS and SQS pose no challenges anymore.

But there are a lot of AWS services available. And I do mean: a LOT. Currently, there are 163 (!) different services that are available from the Amazon Dashboard, each with their own way of working, difficulties, catches and best practises.


Symfony's autowiring

Date: 19 Sep 2017
Tags: [ symfony ]  [ autowire ]  [ magic

When asking people if they use Symfony’s autowiring functionality, an often heard excuse why people don’t use it is because of all the magic that is happening during autowiring. But just like most impressive magic tricks, once explained, it all boils down to a few simple principles and Symfony’s autowiring is nothing different in that perspective. In this blogpost I will explain the new autowiring and autoconfiguration features, and why you should love them.


Write your own GitHub clone

Date: 28 Feb 2016
Tags: [ github ]  [ git

Shower thought: What would it take to write your own GitHub clone? Answer: not that much! I’ve spend a few hours on tinkering with some of the basic concepts, and it turns out it’s actually quite easy to set something up from scratch. And before you all go and write comments that it not feature-complete: yes, I know. But most of them are fairly trivial to implement though, and my goal was to actually see if we can get the foundations up and running. Implementing things like an issue-tracker and webhooks isn’t part of that.


My guide to commenting on joind.in

Date: 17 Dec 2015
Tags: [ joindin

If you are visiting pretty much any (random) PHP conference these days, you will hear a lot of talk about “rating talks on joind.in”. For those not familiar with this site: it’s a site where you can find additional information about the talk (like slides), and where you can leave a rating and/or comment about the talks and conferences that you have attended.

It’s a great way to prepare for an upcoming conference: check out the talks you want to see, and see if the presenter has already given the presentation at another conference and view the rating / comments. This way, you have a good picture (although never the complete picture), of the presentation you are about to see. Also, often presenters will add their slidedeck to talks, so you can actually see what the presentation will look like.


Moving to Jekyll

Date: 11 Dec 2015
Tags: [ Wordpress ]  [ Jekyll

As you might notice, i’ve switched my blogging engine from Wordpress to Jekyll. There are actually a few reasons for this:


Benford's law in frameworks

Date: 09 Dec 2015
Tags: [ Benford ]  [ PHP ]  [ Statistics

In a new talk I’m currently presenting at conferences and meetups, I talk - amongst other things - about Benford’s law. This law states that in natural occurring numbers, the first digit of those numbers will most often start with a 1 (around 30% of the time), and logarithmically drops down to the number 9, which occurs only 5% of the time. This might sound strange: why would a number that starts with 1, (like 1, 16, 152 or even 152533), be more common than 2,25, 266, or even the lesser common 6, 63, 6474 etc? And although there are some explanations, a definitive one still isn’t there.


Symfony, XDebug and the maximum nesting level

Date: 15 Nov 2015
Tags: [ Forms ]  [ XDebug ]  [ PHP ]  [ Twig ]  [ Symfony2

Here you are, developing your code based on the Symfony2 framework. Creating a form here, add a Twig template there, until suddenly, boom! Your site doesn’t work anymore, and all the info you can find in your PHP logs is:

PHP Fatal error:  Maximum function nesting level of '100' reached, aborting! in Unknown on line 0

What just happened? Did I create some kind of recursive function I wasn’t aware of, did somebody commit code that I accidentally pulled? Did Jupiter align with Mars and somehow this is causing issues in my code. Who knows? Fortunately for us developers, there is a quick way to deal with this: google it..


Incrementing values in PHP

Date: 13 Oct 2015
Tags: [ Bytecode ]  [ Internals ]  [ PHP

Take a variable, increment it with 1. That sounds like a simple enough job right? Well.. from a PHP developer point of view that might seem the case, but is it really? There are bound to be some catches to it (otherwise we wouldn’t write a blogpost about it). So, there are a few different ways to increment a value, and they MIGHT seem similar, they work and behave differently under the hood of PHP, which can lead to - let’s say - interesting results.


Understanding Symfony2 Forms

Date: 11 Sep 2015
Tags: [ forms ]  [ framework ]  [ PHP ]  [ rainbow ]  [ symfony2

To actually use Symfony2 forms, all you need to do is read some documentation, a few blog posts and you’ll be up and running in a couple of minutes. Understanding Symfony2 forms however, is a whole different ballgame. In order to understand a seemingly simple process of “adding fields to a form”, we must understand a lot of the basic foundation of the Symfony2 Form component. In these blog posts, I’ll try and give some more insights on this foundation.


The PHP Elephant stampede

Date: 03 Jun 2015
Tags: [ php ]  [ elephpants

Do you have a toy PHP elephant? A blue one, or an exotic other color, maybe even a jumbo version? Maybe even more than one? Good, put it or them down on the floor, step away from it for a about 5 meters or so, and look back.

You bought this with your hard owned money. You’ve earned it. It’s yours. But think about this for a while: what if  the literally thousands of dollars we as a community spent on stuffed animals, what if we would spend that same amount of money on PHP itself?


The secret success of PHPNL

Date: 17 Apr 2015
Tags: [ slack ]  [ php

Jelrik and I wanted to share something (I forgot what it was) during the PHPBenelux conference. Probably too lazy to send it through email (tarring, getting it into the email client, sending.. blergh.. tired already) and most likely because the dislike of Skype, we turned to Slack, where both of us were already in (too) many teams already. Strangely enough, we didn’t had a common team where we both were member of.