A list of 100 opinions I holdDate: 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 projectsDate: 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 privatesDate: 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 UnityDate: 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 switchesDate: 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 WindowsDate: 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 conceptDate: 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 ServicesDate: 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 autowiringDate: 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 cloneDate: 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.inDate: 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 JekyllDate: 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 frameworksDate: 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 levelDate: 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 PHPDate: 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 FormsDate: 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 stampedeDate: 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 PHPNLDate: 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.
Advanced user switchingDate: 24 Feb 2015
Tags: [ PHP ] [ security ] [ switch user ] [ symfony2 ]
A really neat trick in the Symfony Security component is the fact that you can impersonate or “switch” users. This allows you to login as another user, without supplying their password. Suppose a client of your application has a problem at a certain page which you want to investigate. Sometimes this is not possible under your own account, as you don’t have the same data as the user, so the issue might not even occur in your account. Instead of asking the password from the user itself, which is cumbersome, and not a very safe thing to begin with, you can use the switch-user feature.
Debugging Symfony componentsDate: 31 Dec 2014
Tags: [ cache ] [ symfony ] [ xdebug ]
Don’t you hate it when you are stepping through your debugger during a Symfony application debug
session, and all of a sudden it cannot find files anymore as Symfony uses code located in the
bootstrap.php.cache instead of the actual Symfony component. Symfony creates these cache-classes
in order to speed up execution, but it makes that xdebug cannot find the correct code to step