<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>A Day In The Life Of...</title><link>https://adayinthelifeof.nl/</link><description>Recent content on A Day In The Life Of...</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 06 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://adayinthelifeof.nl/index.xml" rel="self" type="application/rss+xml"/><item><title>CipherSmith: a browser-based crypto toolkit</title><link>https://adayinthelifeof.nl/2026/05/06/ciphersmith/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2026/05/06/ciphersmith/</guid><description>&lt;p>For years I had a small private page on my machine with a bunch of hacky tools for day-to-day crypto work. Hashing a string, base64 encoding something, generating a random key. Nothing fancy. Just stuff I got tired of copy-pasting terminal commands for every single time.&lt;/p>
&lt;p>The problem with most online tools is that they want you to paste sensitive data into some random form on some random server. Which is a terrible idea when the thing you&amp;rsquo;re pasting is a private key or an API token. And tools like CyberChef are great, but it&amp;rsquo;s a lot of UI to navigate when you just want to quickly hash a string.&lt;/p>
&lt;p>So a few weeks ago I cleaned things up and turned my private page into something actually usable: &lt;a href="https://ciphersmith.io">ciphersmith.io&lt;/a>.&lt;/p></description></item><item><title>Verifying your age in a privacy preserving manner</title><link>https://adayinthelifeof.nl/2026/04/27/sd-jwt/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2026/04/27/sd-jwt/</guid><description>&lt;p>There is a lot going on in the world regarding age verification. Why does every website or operating system (and possibly later: smart appliances like your fridge??) need to know your age?&lt;/p>
&lt;p>While I don&amp;rsquo;t agree with a generic &amp;ldquo;think of the children&amp;rdquo; excuse, I do understand that there are certain sites you want to restrict for younger ages, like adult and gambling sites. But are we really willing to scan our ID cards and post them to those sites? Or, possibly worse, have a provider with a centralized database containing all these ID cards? Privacy AND security hell.&lt;/p></description></item><item><title>Posting on the internet freightens me</title><link>https://adayinthelifeof.nl/2026/04/16/posting-on-the-internet/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2026/04/16/posting-on-the-internet/</guid><description>&lt;p>First of all, please understand that I’m someone who has a clear way of visualizing my thoughts, but struggles to communicate them verbally or through written text like posts. Being Dutch already brings a certain directness or bluntness into the mix, so when I try to be concise, it can sometimes come across as me being an a-hole. Sometimes that’s probably true, but most of the time, it’s not meant that way. It’s something I’ve been struggling with for about 48 trips around the sun. So I’m not trying to paint people in a bad light in this post.&lt;/p></description></item><item><title>Endless - A dive into a C64 game</title><link>https://adayinthelifeof.nl/2025/03/07/endless/</link><pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2025/03/07/endless/</guid><description>&lt;p>Almost 40 years ago, in 1985, a game was released for the Commodore 64 called &amp;ldquo;Eindeloos&amp;rdquo; (&amp;ldquo;Endless&amp;rdquo;, in dutch). In this game
you needed to find your way around a labyrinth while avoiding all kind of enemies and obstacles. The map was so huge, that
it was almost impossible to finish the game. It truly was endless for most players.&lt;/p></description></item><item><title>I'm still fed up and a browser is coming along fine</title><link>https://adayinthelifeof.nl/2023/12/16/more-browsers/</link><pubDate>Sat, 16 Dec 2023 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2023/12/16/more-browsers/</guid><description>&lt;p>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&amp;rsquo;ve got a small community sharing the same goal: let&amp;rsquo;s try writing a browser.&lt;/p></description></item><item><title>I'm fed up with it, so I'm writing a browser</title><link>https://adayinthelifeof.nl/2023/09/22/browsers/</link><pubDate>Fri, 22 Sep 2023 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2023/09/22/browsers/</guid><description>&lt;p>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.&lt;/p></description></item><item><title>A list of 100 opinions I hold</title><link>https://adayinthelifeof.nl/2022/09/05/100-opinions/</link><pubDate>Mon, 05 Sep 2022 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2022/09/05/100-opinions/</guid><description>&lt;p>&amp;ldquo;That&amp;rsquo;s just like, your opinion, man&amp;rdquo; - the dude&lt;/p>
&lt;p>Here&amp;rsquo;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.&lt;/p></description></item><item><title>A comprehensive list of failed projects</title><link>https://adayinthelifeof.nl/2021/12/27/a-comprehensive-list-of-failed-projects/</link><pubDate>Mon, 27 Dec 2021 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2021/12/27/a-comprehensive-list-of-failed-projects/</guid><description>&lt;p>I&amp;rsquo;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.&lt;/p>
&lt;p>I don&amp;rsquo;t start projects with a direct goal. Sometimes it&amp;rsquo;s just to figure out: &amp;ldquo;how hard could it be&amp;rdquo; (hint: always),
or sometimes: I could get rich with this (hint: never).&lt;/p>
&lt;p>Even though I&amp;rsquo;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&amp;rsquo;m not working on it directly. As a freelancer, I can only bill for the hours I
make, and typing twice as fast doesn&amp;rsquo;t reflect in getting paid twice as much.&lt;/p>
&lt;p>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.&lt;/p>
&lt;p>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&lt;br>
it is becoming the main reason I want to start a new project.&lt;/p></description></item><item><title>Let's talk about your privates</title><link>https://adayinthelifeof.nl/2021/11/07/lets-talk-about-your-privates/</link><pubDate>Sun, 07 Nov 2021 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2021/11/07/lets-talk-about-your-privates/</guid><description>&lt;p>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 &amp;ldquo;losing&amp;rdquo; side in such that I&amp;rsquo;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&amp;rsquo;m talking about your privates&amp;hellip;&lt;/p></description></item><item><title>My first attempts with Unity</title><link>https://adayinthelifeof.nl/2021/09/01/first-game-with-unity/</link><pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2021/09/01/first-game-with-unity/</guid><description>&lt;p>For a while now, I&amp;rsquo;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.&lt;/p></description></item><item><title>Go maps vs switches</title><link>https://adayinthelifeof.nl/2021/03/04/go-map-vs-switch/</link><pubDate>Thu, 04 Mar 2021 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2021/03/04/go-map-vs-switch/</guid><description>&lt;p>Sometimes, things aren&amp;rsquo;t faster because you think it is,.. but because you benchmarked them. One of Go&amp;rsquo;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.&lt;/p></description></item><item><title>From Mac to Windows</title><link>https://adayinthelifeof.nl/2020/08/12/mac2win/</link><pubDate>Wed, 12 Aug 2020 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2020/08/12/mac2win/</guid><description>&lt;p>I&amp;rsquo;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&amp;quot; was the only system i actually was thinking of buying, i&amp;rsquo;ve decided against it
and give windows a new try. I&amp;rsquo;ve heared more and more good stories about windows, and more and more bad stored about mac
over the last few years. Let&amp;rsquo;s switch!&lt;/p></description></item><item><title>Introducting BitMaelum - A new mail concept</title><link>https://adayinthelifeof.nl/2020/06/12/bitmaelum/</link><pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2020/06/12/bitmaelum/</guid><description>&lt;p>What if you can design an email system with a clean sheet. You don&amp;rsquo;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,..&lt;/p></description></item><item><title>Amazon Web Services</title><link>https://adayinthelifeof.nl/2020/05/20/aws/</link><pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2020/05/20/aws/</guid><description>&lt;p>More often than not, I&amp;rsquo;m using Amazon Web Services (AWS) as my &amp;ldquo;cloud&amp;rdquo;. Not only for my own projects, but almost all customers I&amp;rsquo;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&amp;rsquo;s, know when to you ECS, EC2 or lambda to host code and even services like S3, SNS and SQS pose no challenges anymore.&lt;/p>
&lt;p>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.&lt;/p></description></item><item><title>Symfony's autowiring</title><link>https://adayinthelifeof.nl/2017/09/19/symfony-autowire/</link><pubDate>Tue, 19 Sep 2017 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2017/09/19/symfony-autowire/</guid><description>&lt;p>When asking people if they use Symfony&amp;rsquo;s autowiring functionality, an often heard excuse why people don&amp;rsquo;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&amp;rsquo;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.&lt;/p></description></item><item><title>Write your own GitHub clone</title><link>https://adayinthelifeof.nl/2016/02/28/write-your-own-github-clone/</link><pubDate>Sun, 28 Feb 2016 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2016/02/28/write-your-own-github-clone/</guid><description>&lt;p>Shower thought: What would it take to write your own GitHub clone? Answer: not that much! I&amp;rsquo;ve spend a few hours on
tinkering with some of the basic concepts, and it turns out it&amp;rsquo;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&amp;rsquo;t part of that.&lt;/p></description></item><item><title>My guide to commenting on joind.in</title><link>https://adayinthelifeof.nl/2015/12/17/commenting-on-joindin/</link><pubDate>Thu, 17 Dec 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/12/17/commenting-on-joindin/</guid><description>&lt;p>If you are visiting pretty much any (random) PHP conference these days, you will hear a lot of talk about &amp;ldquo;rating talks
on &lt;a href="http://joind.in">joind.in&lt;/a>&amp;rdquo;. For those not familiar with this site: it&amp;rsquo;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.&lt;/p>
&lt;p>It&amp;rsquo;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.&lt;/p></description></item><item><title>Moving to Jekyll</title><link>https://adayinthelifeof.nl/2015/12/11/moving-to-jekyll/</link><pubDate>Fri, 11 Dec 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/12/11/moving-to-jekyll/</guid><description>&lt;p>As you might notice, i&amp;rsquo;ve switched my blogging engine from Wordpress to Jekyll. There are actually a few reasons for
this:&lt;/p></description></item><item><title>Benford's law in frameworks</title><link>https://adayinthelifeof.nl/2015/12/09/benfords-law-in-frameworks/</link><pubDate>Wed, 09 Dec 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/12/09/benfords-law-in-frameworks/</guid><description>&lt;p>In a &lt;a href="https://speakerdeck.com/jaytaph/paradoxes-and-theorems-every-developer-should-know">new talk I&amp;rsquo;m currently
presenting&lt;/a> at conferences and meetups, I talk - amongst other things - about Benford&amp;rsquo;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&amp;rsquo;t there.&lt;/p></description></item><item><title>Symfony, XDebug and the maximum nesting level</title><link>https://adayinthelifeof.nl/2015/11/17/symfony-xdebug-and-maximum-nesting-level-issues/</link><pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/11/17/symfony-xdebug-and-maximum-nesting-level-issues/</guid><description>&lt;p>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&amp;rsquo;t work anymore, and all the info you can find in your PHP logs is:&lt;/p>
&lt;pre>&lt;code>PHP Fatal error: Maximum function nesting level of '100' reached, aborting! in Unknown on line 0
&lt;/code>&lt;/pre>
&lt;p>What just happened? Did I create some kind of recursive function I wasn&amp;rsquo;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..&lt;/p></description></item><item><title>Incrementing values in PHP</title><link>https://adayinthelifeof.nl/2015/10/13/incrementing-values-in-php/</link><pubDate>Tue, 13 Oct 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/10/13/incrementing-values-in-php/</guid><description>&lt;p>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&amp;rsquo;t write a
blogpost about it). So, there are a few different ways to increment a value, and they &lt;strong>MIGHT&lt;/strong> seem
similar, they work and behave differently under the hood of PHP, which can lead to - let&amp;rsquo;s say - interesting results.&lt;/p></description></item><item><title>Understanding Symfony2 Forms</title><link>https://adayinthelifeof.nl/2015/09/11/understanding-symfony2-forms/</link><pubDate>Fri, 11 Sep 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/09/11/understanding-symfony2-forms/</guid><description>&lt;p>To actually use Symfony2 forms, all you need to do is read some documentation, a few blog posts and you&amp;rsquo;ll be up and
running in a couple of minutes. &lt;strong>Understanding&lt;/strong> Symfony2 forms however, is a whole different ballgame. In order to
understand a seemingly simple process of &amp;ldquo;adding fields to a form&amp;rdquo;, we must understand a lot of the basic foundation of
the Symfony2 Form component. In these blog posts, I&amp;rsquo;ll try and give some more insights on this foundation.&lt;/p></description></item><item><title>The PHP Elephant stampede</title><link>https://adayinthelifeof.nl/2015/06/03/the-php-elephant-stampede/</link><pubDate>Wed, 03 Jun 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/06/03/the-php-elephant-stampede/</guid><description>&lt;p>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.&lt;/p>
&lt;p>You bought this with your hard owned money. You&amp;rsquo;ve earned it. It&amp;rsquo;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?&lt;/p></description></item><item><title>The secret success of PHPNL</title><link>https://adayinthelifeof.nl/2015/04/17/the-secret-success-of-phpnl/</link><pubDate>Fri, 17 Apr 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/04/17/the-secret-success-of-phpnl/</guid><description>&lt;p>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&amp;rsquo;t had a common team where
we both were member of.&lt;/p></description></item><item><title>Advanced user switching</title><link>https://adayinthelifeof.nl/2015/02/24/advanced-user-switching/</link><pubDate>Tue, 24 Feb 2015 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2015/02/24/advanced-user-switching/</guid><description>&lt;p>A really neat trick in the Symfony Security component is the fact that you can impersonate or &amp;ldquo;switch&amp;rdquo; 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&amp;rsquo;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.&lt;/p></description></item><item><title>Debugging Symfony components</title><link>https://adayinthelifeof.nl/2014/12/31/debugging-symfony-components/</link><pubDate>Wed, 31 Dec 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/12/31/debugging-symfony-components/</guid><description>&lt;p>Don&amp;rsquo;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
&lt;code>bootstrap.php.cache&lt;/code> 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
through anymore.&lt;/p></description></item><item><title>vagrant-share issues</title><link>https://adayinthelifeof.nl/2014/12/10/vagrant-share-issues/</link><pubDate>Wed, 10 Dec 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/12/10/vagrant-share-issues/</guid><description>&lt;p>As a reminder (mostly for myself, but any googlers out there):&lt;/p>
&lt;p>After updating Leopard to OSX Mavericks (yes, I know it&amp;rsquo;s 2014!), i had to reinstall vagrant again. Using the latest
version (1.7.0) gave me the following error while running:&lt;/p>
&lt;p>&lt;code>/opt/vagrant/embedded/gems/gems/vagrant-share-1.1.2/lib/vagrant-share/activate.rb:8:in 'rescue in &amp;lt;encoded&amp;gt;': vagrant-share can't be installed without vagrant-login (RuntimeError)&lt;/code>&lt;/p></description></item><item><title>Deepdive into the symfony2 security component: part 1</title><link>https://adayinthelifeof.nl/2014/10/19/deepdive-into-the-symfony2-security-component-part-1/</link><pubDate>Sun, 19 Oct 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/10/19/deepdive-into-the-symfony2-security-component-part-1/</guid><description>&lt;p>Once in a while I like diving into code and see how things work under the hood. And as the symfony2 framework consists
of many different components, bundles and bridges, there is a lot to discover. But ultimately, the code itself mostly
isn&amp;rsquo;t really as complex as it might seem from the outside world: just like a good magic trick, once unraveled, it all
seems very simple and makes sense.&lt;/p>
&lt;p>However, this is not true for one of those components: the security component. This black box full of dark magic doesn&amp;rsquo;t
like to give up its secrets, and after some (miserably) failed attempts, I am trying to unravel it once more in a few
blog posts. Either we achieve complete victory, or fail yet again.. At this point, I will give both fair odds.&lt;/p>
&lt;p>Note that this blogpost are in the first place written for me personally. There may (and probably will) other blogposts
be out there detailing the component, but I&amp;rsquo;d rather discover and share the experiences myself. Assumptions I make, may
or may not be valid and might not even make sense, but then again, these posts should be considered as a learning
process, not a hard truth (which I will never pretend I will have on anything).&lt;/p></description></item><item><title>Symfony2: logging out</title><link>https://adayinthelifeof.nl/2014/10/06/symfony2-logging-out/</link><pubDate>Mon, 06 Oct 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/10/06/symfony2-logging-out/</guid><description>&lt;p>One of the &amp;ldquo;golden rules&amp;rdquo; of symfony2 is to never hardcode urls or paths inside your code or templates. And letting
symfony deal with the generation of your urls and paths makes your life a lot easier as a developer. But one of the
things I see regularly is that people are still hardcoding their logout urls like using &amp;ldquo;/logout&amp;rdquo;. But logging out is
actually a bit more complex than it might seem, and using a simple /logout might work for most cases, but there are
better ways to deal with this.&lt;/p></description></item><item><title>Conditional app permissions</title><link>https://adayinthelifeof.nl/2014/08/06/conditional-app-permissions/</link><pubDate>Wed, 06 Aug 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/08/06/conditional-app-permissions/</guid><description>&lt;p>I know: free software comes with a price. Most likely this price is your privacy. I&amp;rsquo;m not talking
about 3-letter agencies snooping in on each and every call or email, but the &amp;ldquo;normal&amp;rdquo; companies,
setting up user profiles based on your addres sbook, phone calls, emails and whatnot. And nobody
seems to care: we don&amp;rsquo;t mind selling ourselves if it means we can enjoy the next 5 minutes on flappy
bird, sending 2-letter messages to others, or by sending poor-quality pictures to each
other. &lt;/p></description></item><item><title>Internal PHP function usage: revisited</title><link>https://adayinthelifeof.nl/2014/08/05/internal-php-function-usage-revisited/</link><pubDate>Tue, 05 Aug 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/08/05/internal-php-function-usage-revisited/</guid><description>&lt;p>A small update on the blogpost about PHP&amp;rsquo;s internal function usages:
&lt;a href="https://www.adayinthelifeof.nl/2014/07/25/internal-php-function-usage/">https://www.adayinthelifeof.nl/2014/07/25/internal-php-function-usage/&lt;/a>&lt;/p></description></item><item><title>Shuffling elements in Gatling</title><link>https://adayinthelifeof.nl/2014/07/31/shuffling-elements-in-gatling/</link><pubDate>Thu, 31 Jul 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/07/31/shuffling-elements-in-gatling/</guid><description>&lt;p>On a project where I worked alongside &lt;a href="https://twitter.com/basdenooijer">@basdenooijer&lt;/a>, we needed to do a quick performance-test on a server. Since
our shared hatred against (too) complex gui&amp;rsquo;s, Bas found an awesome cli-tool called &lt;a href="http://gatling-tool.org/">gatling&lt;/a>. Basically, like
ApacheBench but smarter, and like jMeter, only less complex. With the help of simple scala scripts (yes, that&amp;rsquo;s a
first), you can easily program your tests which in our case is a bit more complex than just clicking links on a
page.&lt;/p></description></item><item><title>Internal PHP function usage</title><link>https://adayinthelifeof.nl/2014/07/25/internal-php-function-usage/</link><pubDate>Fri, 25 Jul 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/07/25/internal-php-function-usage/</guid><description>&lt;p>How many internal PHP functions (things like &lt;a href="http://php.net/manual/en/function.count.php"
target="_blank">count()&lt;/a>, &lt;a href="http://php.net/manual/en/function.strpos.php" target="_blank">strpos()&lt;/a>, &lt;a
href="http://php.net/manual/en/function.array-merge.php" target="_blank">array_merge()&lt;/a> etc), does PHP have?
Depending on which version you use, and how many extensions you have loaded, somewhere between 1000 and 2000 would be a
good guess. But how many of these internal functions are you REALLY using? I don&amp;rsquo;t hear many people talking about &lt;a
href="http://php.net/manual/en/function.iconv-strlen.php" target="_blank">iconv_strlen()&lt;/a>, &lt;a
href="http://php.net/manual/en/function.is-soap-fault.php" target="_blank">is_soap_fault()&lt;/a> or &lt;a
href="http://php.net/manual/en/function.mb-http-output.php" target="_blank">mb_http_output()&lt;/a>, yet these functions do
exists. And how many times are people actually calling these functions?&lt;/p></description></item><item><title>A toolbox for less than $100 / month</title><link>https://adayinthelifeof.nl/2014/07/01/a-toolbox-for-less-than-100-month/</link><pubDate>Tue, 01 Jul 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/07/01/a-toolbox-for-less-than-100-month/</guid><description>&lt;p>There are a lot of tools out there which can help you as a developer / self-employed contractor. And
even though most of these tools are free (as in beer), I don&amp;rsquo;t mind spending a certain amount of
money on tools that help me do my business. So with all the tools out there, all the paid plans, the
freemiums and the trial periods, what can a crispy 100 dollar bill every month buy?&lt;/p></description></item><item><title>The first few milliseconds of HTTPS</title><link>https://adayinthelifeof.nl/2014/06/12/the-first-few-milliseconds-of-https-2/</link><pubDate>Thu, 12 Jun 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/06/12/the-first-few-milliseconds-of-https-2/</guid><description>&lt;p>&lt;a href="http://phpmagazin.de/" target="_parent">PHPMagazin.de&lt;/a> has published my presentation
about the first few milliseconds of HTTPS. This presentation has been presented by me at the
International PHP Conference in Berlin last month.&lt;/p></description></item><item><title>Throttle your API calls: RateLimitBundle</title><link>https://adayinthelifeof.nl/2014/05/28/throttle-your-api-calls-ratelimitbundle/</link><pubDate>Wed, 28 May 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/05/28/throttle-your-api-calls-ratelimitbundle/</guid><description>&lt;p>A web application is not complete without an API nowadays. APIs allow third parties - or just end users - to use the
data from the platform for whatever they want. But by allowing applications to make automated calls to your API can
result quickly in our systems overloading. Too many times third party applications will be polling your API when they
don&amp;rsquo;t really need too, and maybe you can lighten the load a bit with some &lt;a href="https://varnish-cache.org"
target="_blank">heavy-duty caching&lt;/a>, but in essence you want that every API call made matters.&lt;/p></description></item><item><title>Dynamic form modification in Symfony2</title><link>https://adayinthelifeof.nl/2014/03/19/dynamic-form-modification-in-symfony2/</link><pubDate>Wed, 19 Mar 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/03/19/dynamic-form-modification-in-symfony2/</guid><description>&lt;p>Sometimes (or actually, a lot of the time), handling forms will go beyond the basics. And even though Symfony2 gives you
out-of-the-box a really clean way of creating forms, it sometimes just isn&amp;rsquo;t enough.&lt;/p>
&lt;p>Fortunately, you are not alone in writing forms, and many posts exists with information on how to handle complex forms.
In this post, I will try and demonstrate how to create a dynamic form where you can select a city based on the chosen
province. &lt;/p></description></item><item><title>Bitwise mask emulation with Solr</title><link>https://adayinthelifeof.nl/2014/02/28/bitwise-mask-emulation-with-solr/</link><pubDate>Fri, 28 Feb 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/02/28/bitwise-mask-emulation-with-solr/</guid><description>&lt;p>Solr is great for searching through a massive data collection in lots of different ways. But one thing Solr lacks is the
possibility to search bitwise. And this by itself makes sense: Solr uses inverted indexing and doing bitwise operations
on it&amp;rsquo;s indexes might result in a loss of performance. There are, however, some plugins that will allow you to use
bitwise operations, but there might even be a more native way:&lt;/p></description></item><item><title>SPL Deepdive: RegexIterator</title><link>https://adayinthelifeof.nl/2014/02/12/spl-deepdive-regexiterator/</link><pubDate>Wed, 12 Feb 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/02/12/spl-deepdive-regexiterator/</guid><description>&lt;p>If everything goes according to plan (which never is the case), I&amp;rsquo;ll try and highlight some of the fascinating stuff
that can be found inside the SPL. I do a lot of presentations about the SPL, and one of the things I like to tell people
is that even though the SPL, - iterators particularly - is a magnificent piece of code that is often underused and
misunderstood, it does come with some quirks and glitches that aren&amp;rsquo;t documented properly.&lt;/p></description></item><item><title>Email Subaddressing</title><link>https://adayinthelifeof.nl/2014/02/04/email-subaddressing/</link><pubDate>Tue, 04 Feb 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/02/04/email-subaddressing/</guid><description>&lt;p>Sometimes you are looking so hard for a solution, that you won&amp;rsquo;t even see them even if they punched
you in the face. Email Subaddressing is one of those issues I couldn&amp;rsquo;t get fixed.&lt;/p></description></item><item><title>Realtime PHPUnit</title><link>https://adayinthelifeof.nl/2014/02/02/realtime-phpunit/</link><pubDate>Sun, 02 Feb 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/02/02/realtime-phpunit/</guid><description>&lt;p>Not all IDEs (actually, i haven&amp;rsquo;t seen even one IDE that does this), can run your unit-tests as soon
as something changes.&lt;/p></description></item><item><title>Symfony2 app/console bash completion</title><link>https://adayinthelifeof.nl/2014/02/02/symfony2-appconsole-bash-completion/</link><pubDate>Sun, 02 Feb 2014 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2014/02/02/symfony2-appconsole-bash-completion/</guid><description>&lt;p>If you do command line work under Linux, you probably are aware that when pressing &lt;code>&amp;lt;TAB&amp;gt;&lt;/code> automatically completes your
command, or give you options for it that are currently available. For instance, when entering &lt;code>cd l&lt;/code> en pressing &lt;code>&amp;lt;TAB&amp;gt;&lt;/code>,
bash gives you a list of all directories starting with an &lt;code>l&lt;/code>, which you can select instead of type. If there is only
one available directory that starts with an &lt;code>l&lt;/code>, it will automatically fill this in for you.&lt;/p>
&lt;p>A great way to speed up your CLI development work, and an even better way to get acquainted with all options that are
available to you for certain applications.&lt;/p></description></item><item><title>Decoding TLS with PHP.</title><link>https://adayinthelifeof.nl/2013/12/30/decoding-tls-with-php/</link><pubDate>Mon, 30 Dec 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/12/30/decoding-tls-with-php/</guid><description>&lt;p>As a proof of concept I wanted to see in how far I could decode some TLS data on the client side. Obviously, this is
very complex matter, and even though TLS looks deceptively simple, it isn&amp;rsquo;t. To make matters worse, PHP isn&amp;rsquo;t quite
helping us making things easy neither. &lt;/p></description></item><item><title>External code coverage with travis / scrutinizer</title><link>https://adayinthelifeof.nl/2013/11/20/external-code-coverage-with-travis-scrutinizer/</link><pubDate>Wed, 20 Nov 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/11/20/external-code-coverage-with-travis-scrutinizer/</guid><description>&lt;p>I really love the &lt;a href="https://travis-ci.org">travis-ci&lt;/a> and &lt;a href="https://scrutinizer-ci.com/">scrutinizer-ci&lt;/a> combo. Between them there are not many things missing like you
would find in more complex systems like Jenkins for instance. Both travis and scrutinizer are really easy to setup (just
click on which github repository you want to test), setup your yaml config files and off you go: instant CI.&lt;/p></description></item><item><title>TeleHash: an encrypted p2p network for your apps</title><link>https://adayinthelifeof.nl/2013/11/12/telehash-an-encrypted-p2p-network-for-your-apps/</link><pubDate>Tue, 12 Nov 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/11/12/telehash-an-encrypted-p2p-network-for-your-apps/</guid><description>&lt;p>In the current day and age, using a plain HTTPS connection might not be the most secure way to communicate anymore.
Sure, for your purposes and goals we can assume that this communication is safe enough, but cracks are appearing in the
security, and we might need to move to better, more secure ways in maybe a shorter period than anyone expected. But how
do we do this? We are not crypto-experts, and you probably have no idea how HTTPS works to begin with. Should we find
ourselves a secure way to encrypt our data? Should we &amp;ldquo;invent&amp;rdquo; new methods that look safe, just because it&amp;rsquo;s too complex
to explain what&amp;rsquo;s going on?&lt;/p></description></item><item><title>Yearly mail routine</title><link>https://adayinthelifeof.nl/2013/10/22/yearly-mail-routine/</link><pubDate>Tue, 22 Oct 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/10/22/yearly-mail-routine/</guid><description>&lt;p>**January 1, **&lt;/p>
&lt;p>This year will be different. I will sort all my mail directly into different mailboxes. I will make sure my inbox will
be 0 at all times. Yes! This is going to be an awesome worry-free mail year!&lt;/p></description></item><item><title>FullSpectrumLaser aka: why you should think twice on buying from them</title><link>https://adayinthelifeof.nl/2013/07/21/fullspectrumlaser-aka-why-you-should-think-twice-on-buying-from-them/</link><pubDate>Sun, 21 Jul 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/07/21/fullspectrumlaser-aka-why-you-should-think-twice-on-buying-from-them/</guid><description>&lt;p>After buying a secondhand generic Rabbit laser cutter, I immediately fell in love with laser cutting and engraving. It
really rocks, you can make really neat things and we even use it for promotion for my company. Awesome stuff, but our
laser cutter wasn&amp;rsquo;t good enough: it&amp;rsquo;s a pretty cheap chinese manufacturing, with buggy software that only can
communicate through a LPT port (remember those, me neither). So we decided to take a look around to see if we could find
a better cutter, and we came out at &lt;strong>Full Spectrum Laser&lt;/strong>. We decided to buy a laser cutter from them:  &lt;strong>- worst -
decision - ever&lt;/strong>..&lt;/p></description></item><item><title>PHP's Resources and garbage collection</title><link>https://adayinthelifeof.nl/2013/07/10/phps-resources-and-garbage-collection/</link><pubDate>Wed, 10 Jul 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/07/10/phps-resources-and-garbage-collection/</guid><description>&lt;p>Today, I&amp;rsquo;ve found a nice bug/feature/whatsmathing in PHP. I was playing around with writing a daemon and if you have any
experience writing daemons (in any language), there are a few rules you have to live by. For instance, setting your
effective uid and gid to a non-privileged user (in case you needed to do some privileged initialization, like opening a
socket on a tcp port &amp;lt; 1024), setting the process as a group leader with posix_setsid(), and redirecting stdio file
descriptions. And here something went wrong which took a while to find and fix..&lt;/p></description></item><item><title>Twitter Customer Support: the best thing that happened for customers and companies</title><link>https://adayinthelifeof.nl/2013/07/07/twitter-customer-support-the-best-thing-that-happened-for-customers-and-companies/</link><pubDate>Sun, 07 Jul 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/07/07/twitter-customer-support-the-best-thing-that-happened-for-customers-and-companies/</guid><description>&lt;p>I&amp;rsquo;m not a social media 2.0 hipster kinda guy. I use Twitter a lot on personal account, I do not have Facebook. But i do
some LinkedIn. There&amp;rsquo;s lots of power in (ab)using social media, I understand this, and I understand I do not use their
full potential (nor I want to do so). However, there is one case I like to use social media with Twitter in particular:
complaining to companies. Why? It works.. and almost at a 100% satisfaction rate.&lt;/p></description></item><item><title>Saffire update may 2013: coalesce</title><link>https://adayinthelifeof.nl/2013/04/22/saffire-update-may-2013-coalesce/</link><pubDate>Mon, 22 Apr 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/04/22/saffire-update-may-2013-coalesce/</guid><description>&lt;p>One of the things that happens over and over again is that you need to check a value, and if it&amp;rsquo;s not set, it should set
a default value. Normally, these variables could be initially set by properties, but sometimes you don&amp;rsquo;t have any
control on initialization. For instance, when these values come from users.&lt;/p></description></item><item><title>Scrum issues: being agile isn't easy..</title><link>https://adayinthelifeof.nl/2013/04/01/scrum-issues-being-agile-isnt-easy/</link><pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/04/01/scrum-issues-being-agile-isnt-easy/</guid><description>&lt;p>I do a lot of consulting work and because of this I see lots of different development processes at many companies. Some
of them are good, but most of them are not. And this problem isn&amp;rsquo;t caused by lack of trying, but of lack of expertise.
Most - if not all - software development departments I visit try to be &amp;ldquo;agile&amp;rdquo; by implementing scrum. But unlike what
many people think, implementing scrum in an efficient way isn&amp;rsquo;t that easy. It takes time and effort on ALL levels of a
company. If your clients, or IT department aren&amp;rsquo;t ready to do scrum, then you won&amp;rsquo;t succeed either. You could of course,
implement some of the facets of scrum, but scrum - it is not.&lt;/p></description></item><item><title>How Saffire doesn't do things different</title><link>https://adayinthelifeof.nl/2013/02/21/how-saffire-doesnt-do-things-different/</link><pubDate>Thu, 21 Feb 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/02/21/how-saffire-doesnt-do-things-different/</guid><description>&lt;p>The question I get asked a lot, is what makes Saffire different? The most honest answer: nothing. There is absolutely
nothing that makes Saffire different from other language, because Saffire doesn&amp;rsquo;t do things different. And there is a
good reason for this: after many decades  of developing languages by many and much smarter people than yours truly, I do
not pretend to have found the correct way on how to do things different - and better.&lt;/p></description></item><item><title>PHP5.5: Try/Catch/Finally</title><link>https://adayinthelifeof.nl/2013/02/12/php5-5-trycatchfinally/</link><pubDate>Tue, 12 Feb 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/02/12/php5-5-trycatchfinally/</guid><description>&lt;p>Exception handling is available in PHP since version 5.  It allows you to have a more fine-grained control over code
when things go wrong ie, when exceptions occur. But since PHP 5.5, exception handling has finally evolved into what it
should have been from the beginning: the &lt;code>finally&lt;/code> part has been implemented.&lt;/p></description></item><item><title>Custom symfony2 config loader</title><link>https://adayinthelifeof.nl/2013/01/30/custom-symfony2-config-loader/</link><pubDate>Wed, 30 Jan 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/01/30/custom-symfony2-config-loader/</guid><description>&lt;p>It happens more and more: large projects where your symfony2 site is just a small part in the big picture. Lots of
additional components might even play a bigger part, especially when you are dealing with asynchronous components  which
are connected through message queues for instance. So the question is: we want to make sure that all your components are
using the same settings, be it your symfony2 project, your bash-scripts, 3rd python application and whatnot. How do we
keep this all in sync?&lt;/p></description></item><item><title>Saffire january 2013 update</title><link>https://adayinthelifeof.nl/2013/01/26/saffire-january-2013-update/</link><pubDate>Sat, 26 Jan 2013 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2013/01/26/saffire-january-2013-update/</guid><description>&lt;p>Most development languages will have some kind of &lt;code>printf()&lt;/code> functionality. It takes a string, and can have optional
arguments, depending on the placeholders you have set inside your string.&lt;/p></description></item><item><title>Debugging remote CLI with phpstorm</title><link>https://adayinthelifeof.nl/2012/12/20/debugging-remote-cli-with-phpstorm/</link><pubDate>Thu, 20 Dec 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/12/20/debugging-remote-cli-with-phpstorm/</guid><description>&lt;p>Even in these days, with full-featured PHP IDEs around,  I still see PHP developers using &lt;code>var_dump()&lt;/code> and &lt;code>die()&lt;/code> to debug
their code. Not only is this a very bad way of &amp;ldquo;debugging&amp;rdquo;, it has other dangers as well, like side-effects on calling
(non-idempotent) methods multiple times, not removing debug statements and possible even committing this to the VCS
repository, which gets send onto your production environment. We&amp;rsquo;ve probably all been there,.. But we don&amp;rsquo;t have to.
Debugging your code properly through an IDE is quite easy, but one of the major problems is debugging CLI code. Since
many frameworks like Zend, Symfony and micro-frameworks like Cilex can be used to create command-line apps, cronjobs
and even daemons, so how do we easily debug this kind of code?&lt;/p></description></item><item><title>Saffire - Programming the web since 2013</title><link>https://adayinthelifeof.nl/2012/12/20/saffire-programming-the-web-since-2013/</link><pubDate>Thu, 20 Dec 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/12/20/saffire-programming-the-web-since-2013/</guid><description>&lt;p>So, Saffire started as a way to &amp;ldquo;learn&amp;rdquo; a bit about flex/bison. I&amp;rsquo;ve dealt with these systems before
a long time ago (pre-2K), and i forgot lots about them. So it was about time for a refreshal.
Unfortunally, looking on the internet for tutorials, almost all of them are about how to write a
calculator (bison&amp;rsquo;s version of &amp;ldquo;hello world&amp;rdquo;, most probably). Very soon, I decided to try and parse
my own language, with some idea&amp;rsquo;s I collected over time on how *my* favorite language should look
like. Two hours later: Saffire was born.&lt;/p></description></item><item><title>Introducing the REST cookbook</title><link>https://adayinthelifeof.nl/2012/12/12/introducing-the-rest-cookbook/</link><pubDate>Wed, 12 Dec 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/12/12/introducing-the-rest-cookbook/</guid><description>&lt;p>One of the many things I do, on pretty much a weekly basis, is answering questions about &lt;code>REST&lt;/code> and &lt;code>HTTP&lt;/code>. Is this status
code correct for X, should I use POST or PUT, is this hateoas enough, how do i handle logins in a RESTful API etc,
etc&amp;hellip;  This is why I decided to setup a simple website, that pretty much tries to answer any question about REST.  It&amp;rsquo;s
not completed yet.. Actually, it hasn&amp;rsquo;t got many posts to begin with :), but a start has been made and we will fill it
with questions and answers about REST and HTTP issues.&lt;/p></description></item><item><title>Saffire: december 2012 update</title><link>https://adayinthelifeof.nl/2012/12/10/saffire-december-2012-update/</link><pubDate>Mon, 10 Dec 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/12/10/saffire-december-2012-update/</guid><description>&lt;p>A few months ago I started with a new programming language called Saffire, and it&amp;rsquo;s time for an update. Since then, we
have merged over 100 pull requests, and the number of contributors is steadily increasing. This post is explains of the
functionality we already implemented (or want to implement).&lt;/p></description></item><item><title>Installing composer: russian roulette.</title><link>https://adayinthelifeof.nl/2012/10/15/installing-composer-russian-roulette/</link><pubDate>Mon, 15 Oct 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/10/15/installing-composer-russian-roulette/</guid><description>&lt;p>I love working with composer. I think it&amp;rsquo;s a really neat way of dealing with dependencies in (PHP) projects and it&amp;rsquo;s not
for nothing that big frameworks like symfony2 are using composer as their primary way of handling bundles and other
components. But this blogpost is not about problems with composer (well, not really anyway). It&amp;rsquo;s about &lt;strong>installing&lt;/strong>
composer. It is fundamentally wrong, and it sets a very, very bad precedent for both experienced and inexperienced (php)
developers.&lt;/p></description></item><item><title>Writing a language</title><link>https://adayinthelifeof.nl/2012/08/17/writing-a-language/</link><pubDate>Fri, 17 Aug 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/08/17/writing-a-language/</guid><description>&lt;p>In the last blogpost I was talking about a new language in the making. Unfortunately, writing a complete new language -
from scratch - isn&amp;rsquo;t as easy and takes a fair bit of time. During this development process, I will try and blog a bit on
the things we are developing, the problems we are facing and the solutions we are implementing. The current Saffire
status: we are able to generate AST tree&amp;rsquo;s from   Saffire source programs. If you have no clue what I&amp;rsquo;m talking about,
no worries: this blogpost will try and explain it all.&lt;/p></description></item><item><title>MultiParamConverter for Symfony2</title><link>https://adayinthelifeof.nl/2012/08/04/multiparamconverter-for-symfony2/</link><pubDate>Sat, 04 Aug 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/08/04/multiparamconverter-for-symfony2/</guid><description>&lt;p>If you know Symfony2, you probably are using (or at least, have heard of) the &lt;a href="http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html">@paramConverter annotation&lt;/a> from the
SensioFrameworkExtraBundle. This is a really simple way to convert slugs into entities. But lots of times I find myself
having multiple slugs inside my routes, and this is something the @paramConverter annotation cannot do. So that&amp;rsquo;s why
I&amp;rsquo;ve created the multiParamConverter.&lt;/p></description></item><item><title>Saffire: A dive into a new language</title><link>https://adayinthelifeof.nl/2012/08/04/saffire-a-dive-into-a-new-language/</link><pubDate>Sat, 04 Aug 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/08/04/saffire-a-dive-into-a-new-language/</guid><description>&lt;p>Confused by Perl? Bored by Python? Ruby too 2011? What&amp;rsquo;s the alternative? PHP? Come on!  Well, seek no further since
here is the next language for at least the coming decade: Saffire!&lt;/p></description></item><item><title>Using varnish to offload (and cache) your OAuth requests</title><link>https://adayinthelifeof.nl/2012/07/06/using-varnish-to-offload-and-cache-your-oauth-requests/</link><pubDate>Fri, 06 Jul 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/07/06/using-varnish-to-offload-and-cache-your-oauth-requests/</guid><description>&lt;p>For a current project both me and a &lt;a href="http://www.raspberry.nl/">colleague&lt;/a> are working on a big API system that authenticates through an OAuth
system. Normally, such an API does all the necessary OAuth checking, handling of tokens etc, but we wanted to have a
system that actually offloads our authentication just the same way one could offload HTTPS traffic for keeping the API
simple, extendible and even performant.&lt;/p></description></item><item><title>Symfony2: Implementing ACL rules in your Data Fixtures</title><link>https://adayinthelifeof.nl/2012/07/04/symfony2-implementing-acl-rules-in-your-data-fixtures/</link><pubDate>Wed, 04 Jul 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/07/04/symfony2-implementing-acl-rules-in-your-data-fixtures/</guid><description>&lt;p>Doctrine&amp;rsquo;s DataFixtures are a great way to add test data to your application. It&amp;rsquo;s fairly easy to get this going: Create
a fixureLoader that extends Doctrine\Common\DataFixtures\AbstractFixture, had a load() method and off you go. However,
sometimes you want your data also to be protected by Symfony 2&amp;rsquo;s ACL layer. Since there isn&amp;rsquo;t a common way to do this,
here is one way on how I implemented this&lt;/p></description></item><item><title>Using vagrant and puppet to setup your symfony2 environment</title><link>https://adayinthelifeof.nl/2012/06/29/using-vagrant-and-puppet-to-setup-your-symfony2-environment/</link><pubDate>Fri, 29 Jun 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/06/29/using-vagrant-and-puppet-to-setup-your-symfony2-environment/</guid><description>&lt;p>As you may now by now, I&amp;rsquo;m a big fan of using Puppet for configuration management. Since the rise of virtualization,
these applications are becoming one of the more dominant tools in a developers tool chain. Together with other tools,
setting up a complete development environment with just a single command is not only reality, but it&amp;rsquo;s becoming for a
lot of developers a daily practice. But even for open source projects like &amp;lt;joind.in&amp;gt; and &amp;lt;protalk.me&amp;gt; are seeing the
benefits of  having &amp;ldquo;development environment on the fly&amp;rdquo;. New contributors don&amp;rsquo;t have to spend a lot of time setting up
their environment, but it&amp;rsquo;s automatically generated: the code setup, the database server together with a filled set of
data, any additional components like varnish, memcache, reddis etc. This blog post gives an overview on how to setup a
symfony2 project with the help of vagrant and puppet.&lt;/p></description></item><item><title>DPC speaker's dummy guide into arduino</title><link>https://adayinthelifeof.nl/2012/06/23/dpc-speakers-dummy-guide-into-arduino/</link><pubDate>Sat, 23 Jun 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/06/23/dpc-speakers-dummy-guide-into-arduino/</guid><description>&lt;p>This year the DPC (and DMC) bought all speakers one of the coolest gifts I&amp;rsquo;ve ever got (or seen) for speakers: an
Arduino. During the speaker dinner, a lot of people were a bit confused on how it was and works. So this post is for all
of those, plus everybody else who wants to get involved in Arduino, programming and some electronics. It really is fun!&lt;/p></description></item><item><title>Using augeas (in PHP)</title><link>https://adayinthelifeof.nl/2012/06/04/using-augeas-in-php/</link><pubDate>Mon, 04 Jun 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/06/04/using-augeas-in-php/</guid><description>&lt;p>Even though I really like using sed and awk, sometimes its hard to change or add parameters in configuration files. Big
sed statements that may or may not work, double checking if everything has been done correctly etc. Augeas is a really
cool tool that lets you view / add / modify and delete all kind of data from configuration files. If you are using
Puppet, you are probably aware of this tool, but I notice that a lot of PHP developers have never heard of it.. Let&amp;rsquo;s
explore..&lt;/p></description></item><item><title>301 vs 303</title><link>https://adayinthelifeof.nl/2012/05/02/301-vs-303/</link><pubDate>Wed, 02 May 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/05/02/301-vs-303/</guid><description>&lt;p>During a &lt;a href="http://speakerdeck.com/u/jaytaph/p/rest-in-practice-phpbenelux-meetup-may-2012">presentation&lt;/a> I gave yesterday about REST, there was a discussion about redirection (more detailed, a
redirection from a queue to the actual resource during &lt;a href="https://adayinthelifeof.nl/2011/06/02/asynchronous-operations-in-rest/">asynchronous operations)&lt;/a>. During this presentation (and
blog-post), I&amp;rsquo;m using a &lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">303 HTTP status code&lt;/a> to indicate that the operation has been completed and that the created
resource can be found at another URI. So in essence, it makes sense to use a 303. At least to me, and quite possibly the
rest of the world too.. But this triggered a side-discussion on which HTTP status code to use, and the more I think
about it, the more complex it believe this problem actually is.&lt;/p></description></item><item><title>Conference retrospect</title><link>https://adayinthelifeof.nl/2012/04/25/conference-retrospect/</link><pubDate>Wed, 25 Apr 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/04/25/conference-retrospect/</guid><description>&lt;p>So even in the middle of conference season, I&amp;rsquo;d like to update you with some of the awesome things I&amp;rsquo;ve seen and
experienced over the last few weeks.&lt;/p></description></item><item><title>Bloom filters</title><link>https://adayinthelifeof.nl/2012/04/09/bloom-filters/</link><pubDate>Mon, 09 Apr 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/04/09/bloom-filters/</guid><description>&lt;p>In a span of two months or so, I&amp;rsquo;ve noticed a peak in implementation of bloom filters. Maybe the &amp;ldquo;if you got a hammer,
everything looks like a nail&amp;rdquo; applies here, but statistically I&amp;rsquo;m doing a larger number of bloom filter implementation
as usual.  Yet, most of my co-workers never really heard of bloom filters, and I&amp;rsquo;m continuously need to explain what
they are, what their purpose is and why it&amp;rsquo;s a better solution than other ones. So let&amp;rsquo;s do an introduction on bloom
filters.&lt;/p></description></item><item><title>PHPShout : a shoutcast streamer in PHP: Part 1</title><link>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-1/</link><pubDate>Sat, 24 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-1/</guid><description>&lt;p>To continue our journey in pointless, but nevertheless fun things to create, I&amp;rsquo;ve created a simple PHP extension that
allows you stream music data to an IceCast server in pure PHP. For this I&amp;rsquo;m using the libshout3 library which can stream
both MP3 or OGG/Vorbis data to multiple stream servers (including IceCast, ShoutCast etc). In this blog-post I will try
to explain how I&amp;rsquo;ve created this extension, and off course, how you can use it.&lt;/p></description></item><item><title>PHPShout : a shoutcast streamer in PHP: Part 2</title><link>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-2/</link><pubDate>Sat, 24 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-2/</guid><description>&lt;p>In the [last post][1], we created a template extension for our shout class. Next up, we need to do the actual
implementation.&lt;/p></description></item><item><title>PHPShout : a shoutcast streamer in PHP: Part 3</title><link>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-3/</link><pubDate>Sat, 24 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-3/</guid><description>&lt;p>In the &lt;a href="https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-2/">last post&lt;/a>, we started with the implementation of the constructor and one method. Next up, let&amp;rsquo;s do a bunch
more.&lt;/p></description></item><item><title>PHPShout : a shoutcast streamer in PHP: Part 4</title><link>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-4/</link><pubDate>Sat, 24 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-4/</guid><description>&lt;p>In the &lt;a href="https://adayinthelifeof.nl/2012/03/24/phpshout-a-shoutcast-streamer-in-php-part-3/">last post&lt;/a>, we created a template extension for our shout class. Next up, we need to do the actual
implementation.&lt;img src="https://adayinthelifeof.nl/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" title="More...">&lt;/p></description></item><item><title>PHP has moved to git!</title><link>https://adayinthelifeof.nl/2012/03/19/php-has-moved-to-git/</link><pubDate>Mon, 19 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/19/php-has-moved-to-git/</guid><description>&lt;p>Good news everybody! PHP has (finally) moved their version control from subversion to git and placed their repository on
github. Meaning it just got easier to maintain PHP  but also it makes it easier for external contributors (without any
write-access) to create patches and for contributors to merge them. Hopefully this will mean the end of waiting weeks or
months before somebody gets around looking at your patch.&lt;/p></description></item><item><title>Ideas of march</title><link>https://adayinthelifeof.nl/2012/03/15/ideas-of-march/</link><pubDate>Thu, 15 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/15/ideas-of-march/</guid><description>&lt;p>Yes, I&amp;rsquo;m a lemming. If a see a group of people jumping off a cliff, I will follow blindly. If somebody calls for more
blogposts in the world, I happily write a blogpost for it. But, being the subordinate lemming I like to pretend I am, I
don&amp;rsquo;t completely see myself in the situation that &lt;a href="http://shiflett.org/blog/2011/mar/ideas-of-march"
target="_blank">Chris&lt;/a> is in. Basically what he says is that due to the many social media outlets available to us,
blogging is taking a backseat when it comes to spreading information. And even though this might be the case for many
out there, I don&amp;rsquo;t think I&amp;rsquo;m falling in this category.&lt;/p></description></item><item><title>Why putting SSH on another port than 22 is bad idea</title><link>https://adayinthelifeof.nl/2012/03/12/why-putting-ssh-on-another-port-than-22-is-bad-idea/</link><pubDate>Mon, 12 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/12/why-putting-ssh-on-another-port-than-22-is-bad-idea/</guid><description>&lt;div class="alert-box radius">
 Hi there! This is probably one of the most visited pages of my blog, most likely because this post is very 
 controversial. It's also an old post, and got much feedback on the post (both negative and positive, both 
 constructive and not-so-much). I've decided to rewrite some of the post but left most of the arguments in tact. 
 However, please note that on some of these arguments i've been convinced by others that they are not good arguments, 
 and on some I am still not. Please read with care, but don't consider it as an absolute truth.
 &lt;br>
 The basic argument I've tried to make: don't do security-through-obscurity. You may use it, but don't solely use it. 
 Use other - better - defences to increase your security (like pubkey authentication for instance).
&lt;/div>
&lt;p>I see a lot of companies and users moving their SSH port to a non-privileged port like 2222 or even 36797. People like
to move this port away in order to lower the number of attacks on the SSH port.&lt;/p></description></item><item><title>Freelancing: episode 1</title><link>https://adayinthelifeof.nl/2012/03/04/freelancing-episode-1/</link><pubDate>Sun, 04 Mar 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/03/04/freelancing-episode-1/</guid><description>&lt;p>A few months ago, I decided to quit my current job and start with freelancing. Or actually, only the &amp;ldquo;quit my job&amp;rdquo; part
I knew for sure, on the freelancing part I was still wondering if I should make that step. However, a few month later, I
decided to share with Google^WInternet on how I&amp;rsquo;m currently doing, what things you might face and how I do things.
Hopefully, I can convince one or two readers that are still not sure to go for the freelancing gig as well :)&lt;/p></description></item><item><title>Setting up a development environment</title><link>https://adayinthelifeof.nl/2012/02/04/setting-up-a-development-environment/</link><pubDate>Sat, 04 Feb 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/02/04/setting-up-a-development-environment/</guid><description>&lt;p>Doing development on multiple projects can be a burden from time to time. One project would be running on PHP 5.3, while
another still needs 5.1. Sometimes you need a MySQL server, while on other occasions, you need a NoSQL solution like
couchDB or MongoDB together with all kind of gearman functionality. This article shows you how I&amp;rsquo;ve setup such a
development platform that allows you to quickly create new projects, and still maintain flexibility when you need
it.&lt;/p></description></item><item><title>Pragmatic investment plan 2011-2012 : The update</title><link>https://adayinthelifeof.nl/2012/02/02/pragmatic-investment-plan-2011-2012-the-update/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/02/02/pragmatic-investment-plan-2011-2012-the-update/</guid><description>&lt;p>A little bit less than one year ago (actually, 9 months ago), I&amp;rsquo;ve created a &lt;a
href="https://adayinthelifeof.nl/2011/04/21/pragmatic-investment-plan-may-2011-2012/" target="_blank">blogpost&lt;/a> about creating a Pragmatic
Investment Plan. Even though the year is not finished for me yet, I still like to share my experiences with such a plan
and what actually has come from it.&lt;/p></description></item><item><title>LaTeX: also useful for writing your documentation</title><link>https://adayinthelifeof.nl/2012/01/22/latex-also-useful-for-writing-your-documentation/</link><pubDate>Sun, 22 Jan 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/01/22/latex-also-useful-for-writing-your-documentation/</guid><description>&lt;p>Sometimes you hear about programs but you never really know how awesome they are until you actually use them.
Unfortunately, at this point in life I wished I&amp;rsquo;ve discovered LaTeX around 15 years ago, when I first heard of it. That
would have made the way I would have written documentation the last years massively different. So hopefully I will get
you hooked on LaTeX  with this post.&lt;/p></description></item><item><title>Apache's fallbackresource: your new .htaccess command</title><link>https://adayinthelifeof.nl/2012/01/21/apaches-fallbackresource-your-new-htaccess-command/</link><pubDate>Sat, 21 Jan 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/01/21/apaches-fallbackresource-your-new-htaccess-command/</guid><description>&lt;p>So probably you are aware I&amp;rsquo;m currently exploring the deeps on the &lt;a href="https://adayinthelifeof.nl/2011/12/22/php-5-4-htrouter-your-personal-apache-2-2-compatible-server/">Apache source internals&lt;/a>. One of the discoveries
I&amp;rsquo;ve made was a (for me unknown) command in mod_dir that will make your life a little bit easier: fallbackresource. &lt;/p></description></item><item><title>Why I don't accept PayPal anymore for payments</title><link>https://adayinthelifeof.nl/2012/01/05/why-i-dont-accept-paypal-anymore-for-payments/</link><pubDate>Thu, 05 Jan 2012 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2012/01/05/why-i-dont-accept-paypal-anymore-for-payments/</guid><description>&lt;p>I think everyone has heard at least 5 five horror-stories when it comes to PayPal. And every time people will be upset,
will tweet about it but then go on with their lives. I get it, I do the same thing. But just a few days ago I came acros
the gazillionth message about PayPal. &lt;a href="http://www.torontosun.com/2012/01/04/paypal-ordered-canadian-to-smash-antique-violin-woman-alleges">Short story&lt;/a>: guy sells violin for 2500$, buyer says it&amp;rsquo;s fake, PayPal orders
buyer to destroy the violin in order to get money back. In the end: seller looses violin AND 2500$, without ever being
able to defend his claim. As LeoMcGarry could have said: The last straw has just been placed on the camel&amp;rsquo;s back.. and
then PayPal drove over it with a tank..&lt;/p></description></item><item><title>Android: PuzzleChess game</title><link>https://adayinthelifeof.nl/2011/12/29/android-puzzlechess-game/</link><pubDate>Thu, 29 Dec 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/12/29/android-puzzlechess-game/</guid><description>&lt;p>I like to play with unfamiliar stuff. Not that I&amp;rsquo;ve never written an Android or java application, but this one is a bit
different. It&amp;rsquo;s a simple game I&amp;rsquo;ve made while I was looking at (real life) puzzle game where you have to switch knights
from a chess-game from one position to another. Not really hard, but not very simple either. I knew there are plenty of
puzzle games like this out there, so I decided to create a simple game-engine that allows to create those games easily.
The result: a 90% finished game called PuzzleChess. This blog-post is trying to find the last 10% of the game :)&lt;/p></description></item><item><title>Facter: ZendServer</title><link>https://adayinthelifeof.nl/2011/12/28/facter-zendserver/</link><pubDate>Wed, 28 Dec 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/12/28/facter-zendserver/</guid><description>&lt;p>When you are dealing with Zend Server on a puppetized machine you can run into trouble: Zend Server
uses it&amp;rsquo;s own packages for maintaining things like PHP etc so when you are installing PHP, you might
end up with the PHP version of your distribution instead of the ZendServer. We actually run into
trouble once where we have 3(!) different PHP versions installed on the same server. What could
possible go wrong!&lt;/p></description></item><item><title>php 5.4 + htrouter: Your personal Apache 2.2 compatible server</title><link>https://adayinthelifeof.nl/2011/12/22/php-5-4-htrouter-your-personal-apache-2-2-compatible-server/</link><pubDate>Thu, 22 Dec 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/12/22/php-5-4-htrouter-your-personal-apache-2-2-compatible-server/</guid><description>&lt;p>Version 5.4 is soon to be launched as the next new stable release of PHP. Granted, there will not be major changes like
we saw in version 5.3, but it will still have some nifty new features. Two of the most important ones: traits and the
internal web server. This post is about the latter one. The new web-server makes it possible to run your PHP code
through your browser even when you don&amp;rsquo;t have your own web-server like Apache or nginx installed. It has got some
advantages, but this of course has raised some serious discussions: should PHP even be distributed with a web-server and
if so, how can we make sure that it won&amp;rsquo;t be misused as a production server? Well, we really can&amp;rsquo;t forbid people to
(mis)use this, but we hope most of us will use common sense.. The project in this blog-post however, can be considered
as &amp;ldquo;The Enabler&amp;rdquo;. It can be a powerful tool for developers, but makes it easier for people to misuse the web-server.
Time of course, will tell if this will be the case, but I think I&amp;rsquo;ve created a (simple) tool that will create the new Dr
Jeckyl web-server into a Mr Hyde&amp;hellip; What could possibly go wrong? :-)&lt;/p></description></item><item><title>New company website is online</title><link>https://adayinthelifeof.nl/2011/12/13/new-company-website-is-online/</link><pubDate>Tue, 13 Dec 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/12/13/new-company-website-is-online/</guid><description>&lt;p>Ok, so it&amp;rsquo;s not he most beautiful website you will ever see. Nor will it be the one with the most
content. But it&amp;rsquo;s my company website, and I&amp;rsquo;m proud of it. Even if it was only a matter of
installing WordPress, finding a theme, do a little bit of tweaking and adding some content. However,
I&amp;rsquo;m happy to say that at least I have a point where (future) customers can find information about me
and the things I can do for them on a freelance base.&lt;/p></description></item><item><title>Book review: Confessions of a public speaker</title><link>https://adayinthelifeof.nl/2011/12/12/book-review-confessions-of-a-public-speaker/</link><pubDate>Mon, 12 Dec 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/12/12/book-review-confessions-of-a-public-speaker/</guid><description>&lt;p>I&amp;rsquo;m not exactly sure where I got the link to this book. It was probably a tweet or IRC-posting from somebody, but it
actually was because of Amazon&amp;rsquo;s take-a-look-inside that made me buy the book. The few parts of the chapters I read
where not only funny, but had lots of interesting tips &amp;amp; tricks for me as a (wannabe) speaker.&lt;/p></description></item><item><title>SPL: Using the iteratorAggregate interface</title><link>https://adayinthelifeof.nl/2011/12/04/spl-using-the-iteratoraggregate-interface/</link><pubDate>Sun, 04 Dec 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/12/04/spl-using-the-iteratoraggregate-interface/</guid><description>&lt;p>The SPL is one of hardest things to grasp for most PHP developers. But why is this? The lack of documentation inside the
manual, the fact that there are not many real-life examples, or maybe it&amp;rsquo;s just too hard? In this post I will try to
explain a bit more about the &amp;ldquo;&lt;a href="http://www.php.net/iteratorAggregate" target="_blank">iteratorAggregate&lt;/a>&amp;rdquo;
interface. Together with its more famous brother &lt;code>Iterator&lt;/code>, they are currently the two only implementations of the
&lt;code>Traversable&lt;/code> interface, which is needed for objects so they can be used within a standard &lt;code>foreach()&lt;/code> loop. But why and
when should we use the &lt;code>iteratorAggregate&lt;/code>?&lt;/p></description></item><item><title>Compatible code: starting with symfony2</title><link>https://adayinthelifeof.nl/2011/12/01/compatible-code-starting-with-symfony2/</link><pubDate>Thu, 01 Dec 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/12/01/compatible-code-starting-with-symfony2/</guid><description>&lt;p>Because learning new stuff is just one of those things I need to do on regular basis, I&amp;rsquo;ve decided to dive into another
framework than the ones I&amp;rsquo;m used to. Having dealt with mostly &lt;a href="http://framework.zend.com/" target="_blank">Zend
Framework 1&lt;/a> on a daily basis, and CodeIgniter which is the one I deal with a lot inside the &lt;a
href="https://github.com/joindin/joind.in" target="_blank">Joind.In&lt;/a> project I&amp;rsquo;d like to contribute to, I&amp;rsquo;ve decided
to give another framework a chance. A framework that is on the shortlist for a long time now: &lt;a href="symfony.com"
target="_blank">Symfony 2&lt;/a>. The tl;dr: winning!&lt;/p></description></item><item><title>Goodbye Enrise, Hello world</title><link>https://adayinthelifeof.nl/2011/11/07/goodbye-enrise-hello-world/</link><pubDate>Mon, 07 Nov 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/11/07/goodbye-enrise-hello-world/</guid><description>&lt;p>You close one door, you open another. And though it makes me sad to part with a company, the people and all the stuff
they do, I never have regretted a single career-move I&amp;rsquo;ve made in the past. The Enrise door is about to be closed and
I&amp;rsquo;m ready on opening another door. Excited and sad times truly run in parallel.&lt;/p></description></item><item><title>Don't make your database a slave to your ORM</title><link>https://adayinthelifeof.nl/2011/10/29/dont-make-your-database-a-slave-to-your-orm/</link><pubDate>Sat, 29 Oct 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/10/29/dont-make-your-database-a-slave-to-your-orm/</guid><description>&lt;p>ORM&amp;rsquo;s, or object-relational mappers, are a great way to convert (mostly) relational databases to classes in a object
oriented language. It takes care of SO many things you do over and over again: fetch records from a table, populate an
object, implement getters and setters, update or add records when needed etc. A lot of this work can be abstracted away
by using patterns like ActiveRecord, table gateways and/or data mappers. An ORM will even abstract away this further as
a whole and let you only deal with the resulting (domain) models. There is no immediate need to interact with any data
storage of any kind. Who would not want this!?&lt;/p></description></item><item><title>Netiquette gone wild: how not to use social media and email</title><link>https://adayinthelifeof.nl/2011/10/28/netiquette-gone-wild-how-not-to-use-social-media-and-email/</link><pubDate>Fri, 28 Oct 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/10/28/netiquette-gone-wild-how-not-to-use-social-media-and-email/</guid><description>&lt;p>Oh man.. The amount of stuff you can see and that cannot be unseen on twitter and email is just massive.  And even
though it looks like total anarchy out there, some (social) rules should be taken into account. After all: you are
dealing with others who do or do not share your point of view. Netiquette was something that was considered a good thing
back in the days. The amount of emails I currently see that responded to somebody &amp;ldquo;not following netiquette&amp;rdquo;  these days
are pretty much decreased to zero, while years ago, people not obeying were reprimanded.  Especially now with all the
media outlets we have at the tip of our fingers: shouldn&amp;rsquo;t we go back to those basics again? Pinkies up!&lt;/p></description></item><item><title>LAMP-stack? Forget it! It's a LAMPGMVNMCSTRAH-stack now...</title><link>https://adayinthelifeof.nl/2011/10/26/lamp-stack-forget-it-its-a-lampgmvnmcstrah-stack-now/</link><pubDate>Wed, 26 Oct 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/10/26/lamp-stack-forget-it-its-a-lampgmvnmcstrah-stack-now/</guid><description>&lt;p>Back in the good old days - and in internet-time, this actually means just a few years ago - people were quite happy
with their LAMP stack: Linux, Apache, MySQL and PHP. With this quartet, or a variation on it like PostgreSQL instead of
MySQL, we could do everything: create a blog-site, setup an e-commerce web shop, making a guestbook, you name it and it
was there..&lt;/p>
&lt;p>But times have changed&amp;hellip; radically. More and more information is available and must be processed quicker and in more
difficult manners than before. Do you accept a web shop where you cannot even do faceting search? Not really. But those
systems can be more complex than they appear and lot of components must be used in order to get things working and
working fast. In fact, there are so many components that we cannot speak of a LAMP stack anymore. A better name would
probably be a LAMPGMVNMCSTRAH stack..&lt;/p></description></item><item><title>ZendCon 2011 retrospective</title><link>https://adayinthelifeof.nl/2011/10/26/zendcon-2011-retrospective/</link><pubDate>Wed, 26 Oct 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/10/26/zendcon-2011-retrospective/</guid><description>&lt;p>If there is a top-3 of conferences, ZendCon will be present in that list. It&amp;rsquo;s probably *THE* conference to be when it
comes to PHP development, so how awesome is it when not only you can visit ZendCon, but are invited to speak about one
of your favorite subjects? Answer:  VERY awesome :)&lt;/p></description></item><item><title>Creating partitioned virtual disk images</title><link>https://adayinthelifeof.nl/2011/10/11/creating-partitioned-virtual-disk-images/</link><pubDate>Tue, 11 Oct 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/10/11/creating-partitioned-virtual-disk-images/</guid><description>&lt;p>Using a disk image is very easy: download the file, mount it through a so-called &amp;ldquo;loopback&amp;rdquo; device and your OS will see
the image as it was an real harddisk, CDR or DVD. When I needed to test the IDE-drivers, the partitioning-functionality,
the ext2 drivers etc, I wanted to use just such an image so I can quickly make modifications and check how the actual
structure looked like, just by reading the disk image file. This is a great help when it comes to debugging.&lt;/p></description></item><item><title>Creating MCollective clients in PHP - The hard way</title><link>https://adayinthelifeof.nl/2011/10/01/creating-mcollective-agents-in-php-the-hard-way/</link><pubDate>Sat, 01 Oct 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/10/01/creating-mcollective-agents-in-php-the-hard-way/</guid><description>&lt;p>If you haven&amp;rsquo;t heard of MCollective, think of.. The Borg.. Except without the laser-eye, or the spaceship-cube, or the
scary voices. Come to think of it,.. it doesn&amp;rsquo;t really have anything to do with the Borg, except they are both a
collective, and you are in charge.. just like the Borg-queen. And everything else is futile..&lt;/p></description></item><item><title>Book review: Pro Puppet</title><link>https://adayinthelifeof.nl/2011/09/22/book-review-pro-puppet/</link><pubDate>Thu, 22 Sep 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/09/22/book-review-pro-puppet/</guid><description>&lt;p>If you have read the book &amp;ldquo;Pulling strings with puppet&amp;rdquo;, a lot of this book might sound familiar to you already. Not
really a strange thing since it&amp;rsquo;s from the same author. But because the book was written in 2007, a new update was in
order and the new Pro Puppet book they&amp;rsquo;ve release so much more than an update: it&amp;rsquo;s a complete reference for beginning
to the most expert puppeteers.&lt;/p></description></item><item><title>Book review: The geek atlas</title><link>https://adayinthelifeof.nl/2011/08/29/book-review-the-geek-atlas/</link><pubDate>Mon, 29 Aug 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/08/29/book-review-the-geek-atlas/</guid><description>&lt;p>I got this book as a present from last year&amp;rsquo;s PFZ workshop day (thanks again guys), and is filled with 128 (get it?)
places around the world interesting for geeks. I have to admit that even though a lot of places were unfamiliar for me,
so it gave some nice new items for my todo list.&lt;/p></description></item><item><title>Book review: Simly Einstein: Relativity demystified</title><link>https://adayinthelifeof.nl/2011/08/27/book-review-simly-einstein-relativity-demystified/</link><pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/08/27/book-review-simly-einstein-relativity-demystified/</guid><description>&lt;p>If repetition is the key to learning, you will learn a lot from this book. It keeps on repeating the most important
aspects which in a way is good, since you will not forget them. The book itself gives a global view on Einstein&amp;rsquo;s
special and general relativity theorems in a very simple and comprehensible way. There is little math involved, except
for the last appendix of the book and still that is high school math that makes sense to everybody. So can a book about
relativity do without math?&lt;/p></description></item><item><title>Book review: VMWare vSphere 4.1: HA and DRS technical deepdive</title><link>https://adayinthelifeof.nl/2011/08/27/book-review-vmware-vsphere-4-1-ha-and-drs-technical-deepdive/</link><pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/08/27/book-review-vmware-vsphere-4-1-ha-and-drs-technical-deepdive/</guid><description>&lt;p>I bought this book even before I&amp;rsquo;ve ever installed vSphere, and still it&amp;rsquo;s comprehensible. Let&amp;rsquo;s pretend it&amp;rsquo;s because of
the book, which is very easy to read and not only tell you how to setup certain parts of vSphere, but also WHY.&lt;/p></description></item><item><title>These are busy times...</title><link>https://adayinthelifeof.nl/2011/07/15/these-are-busy-times/</link><pubDate>Fri, 15 Jul 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/07/15/these-are-busy-times/</guid><description>&lt;p>Not a lot of updates lately, but by no means I&amp;rsquo;m sitting still. The last few weeks lot of stuff has
happened, and even more is to come. First of all, my second article has reached the PHP|Architect
magazine. This time about the deflate-algorithm. Not an article that comes in handy in your daily
work probably, but definately worth reading to find out how things work from the inside.. It&amp;rsquo;s kind
of a how-stuff-works for computer-geeks.&lt;/p></description></item><item><title>Asynchronous operations in REST</title><link>https://adayinthelifeof.nl/2011/06/02/asynchronous-operations-in-rest/</link><pubDate>Thu, 02 Jun 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/06/02/asynchronous-operations-in-rest/</guid><description>&lt;p>REST is hot! But doing REST right is more difficult than most people think. Idempotent methods, hateoas, RMM levels&amp;hellip;
All terms that a REST developer should know and master. But from a learning (as I do too, by the way) developer
perspective, it looks pretty simple: use HTTP methods like get, post, put and delete, map them onto resources, call the
underlying database models and you&amp;rsquo;re done: a fully RESTful API in just 5 minutes. But off course, when you actually
have created a RESTful API, you find out very quickly that nothing could be more difficult. One of the more common
problems when dealing with REST might be asynchronous operations. Let&amp;rsquo;s find out how to deal with those&amp;hellip;&lt;/p></description></item><item><title>Top 10 Apache Top Level Projects</title><link>https://adayinthelifeof.nl/2011/05/22/top-10-apache-top-level-projects/</link><pubDate>Sun, 22 May 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/05/22/top-10-apache-top-level-projects/</guid><description>&lt;p>When saying Apache, most developers immediately think of a web server. And this of course is true, Apache httpd web
server is the most used web server today and the number of users keep on growing every day. What not everybody knows, is
that Apache is a foundation that hosts many other open source (web) projects. A short introduction on a (my) top 10 of
interesting projects for the (PHP) programmer.&lt;/p></description></item><item><title>How cool is my job?</title><link>https://adayinthelifeof.nl/2011/04/25/how-cool-is-my-job/</link><pubDate>Mon, 25 Apr 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/04/25/how-cool-is-my-job/</guid><description>&lt;p>How cool is my job? A description of a normal days work&amp;hellip;&lt;/p></description></item><item><title>The GNU Build tools, part 1</title><link>https://adayinthelifeof.nl/2011/04/24/the-gnu-build-tools-part-1/</link><pubDate>Sun, 24 Apr 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/04/24/the-gnu-build-tools-part-1/</guid><description>&lt;p>So there you are, you want to install some tool or application that didn&amp;rsquo;t come in a package, or you want to use the
latest version. You download the tarball (&lt;code>*.tar.gz&lt;/code> file), untar it, do a &lt;code>./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp;  make install&lt;/code> and all
is well.. But what exactly is it that you are doing? Why must unix users compile everything by themselves? Wouldn&amp;rsquo;t
life be much easier if we all could download a binary and run it, just like on close source OS&amp;rsquo;es? Are binaries that
evil that we must compile everything ourselves manually so we know what we are installing. Well, yes and
no&amp;hellip;&lt;/p></description></item><item><title>Pragmatic Investment Plan - may 2011-2012</title><link>https://adayinthelifeof.nl/2011/04/21/pragmatic-investment-plan-may-2011-2012/</link><pubDate>Thu, 21 Apr 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/04/21/pragmatic-investment-plan-may-2011-2012/</guid><description>&lt;p>During some reading up on &lt;a href="http://www.unixdaemon.net" target="_blank">Dean Wilson&amp;rsquo;s blog&lt;/a>, I stumbled upon
his &lt;a href="http://blog.brianmavity.com/pragmatic-investment-plan-an-example" target="_blank">Pragmatic Investment
Plans&lt;/a>. Even though we have something similar in our company (called a POP &amp;ldquo;Persoonlijk Ontwikkel Plan&amp;rdquo;, which is
more or less the same thing), I want to separate a &amp;ldquo;business&amp;rdquo; and &amp;ldquo;personal&amp;rdquo; plan. My personal plan is not only about my
development in my daily work, but as a all-round developer and system administrator in general. But this post is not
only about my plan, but also about the things that have happened last year to me personally.&lt;/p></description></item><item><title>Varnish in non-compiler environments</title><link>https://adayinthelifeof.nl/2011/04/18/varnish-in-non-compiler-environments/</link><pubDate>Mon, 18 Apr 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/04/18/varnish-in-non-compiler-environments/</guid><description>&lt;p>Last weekend I&amp;rsquo;ve visited the Loadays conference where I sat in the presentation of Thijs Feryn&amp;rsquo;s &amp;ldquo;Varnish in action&amp;rdquo;.
Even though most of the talk was pretty familiar for me personally, a real interesting question was raised from the
audience: is it possible to run varnish in an environment where there is no compiler available. It looks that I&amp;rsquo;ve just
found the answer..&lt;/p></description></item><item><title>binomial coefficients</title><link>https://adayinthelifeof.nl/2011/04/10/binomial-coefficients/</link><pubDate>Sun, 10 Apr 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/04/10/binomial-coefficients/</guid><description>&lt;p>Question: how can a simple question asked by a colleague turn into a blog post? Answer: when he asked: how many
different queries can I build when I have 270 fields? The answer to solve this problem: binomial coefficients.&lt;/p>
&lt;p>Now I do enjoy math. I&amp;rsquo;m definitely no guru in math but I (hopefully) know a thing or two. Just like with programming
and everything computer related: if you know something vaguely, at least you know enough to look up the actual
application for it. Our first instinct on the answer to my colleague was 270! (factorial of 270, which is
1x2x3x4x&amp;hellip;x267x270, which is a VERY large number) but I knew something was not right. Turns out: it wasn&amp;rsquo;t right. The
problem was mixing up combinations and permutations, which I knew there was a big difference, but I didn&amp;rsquo;t knew the math
involved anymore..&lt;/p></description></item><item><title>Back to basics: virtual memory</title><link>https://adayinthelifeof.nl/2011/04/09/back-to-basics-virtual-memory/</link><pubDate>Sat, 09 Apr 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/04/09/back-to-basics-virtual-memory/</guid><description>&lt;p>Memory is something (almost) no computer can do without. In todays world the saying goes: the more memory the better.
But the way computers uses memory is very different than they did only a few decades ago and &amp;ldquo;more memory&amp;rdquo; does not
always equals better performance. A small introduction and history in memory usage.&lt;/p></description></item><item><title>Dwarf fortress: crossing vi with the Matrix</title><link>https://adayinthelifeof.nl/2011/03/24/dwarf-fortress-crossing-vi-with-the-matrix/</link><pubDate>Thu, 24 Mar 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/03/24/dwarf-fortress-crossing-vi-with-the-matrix/</guid><description>&lt;p>What do you get when you cross the vi editor with Keanu Reeve&amp;rsquo;s &amp;ldquo;The Matrix&amp;rdquo;? A cool game called dwarf fortress. A game
that is awesome in many MANY ways. I&amp;rsquo;m not much of a gamer. As a matter of fact, lot of programmers aren&amp;rsquo;t and are more
interested in actually creating games than playing them. However, dwarf fortress is an exception to that rule but
beware: it&amp;rsquo;s not your average game. Everything but&amp;hellip;&lt;/p></description></item><item><title>Speaking at Loadays and PhpBenelux Meetup</title><link>https://adayinthelifeof.nl/2011/03/17/speaker-tour/</link><pubDate>Thu, 17 Mar 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/03/17/speaker-tour/</guid><description>&lt;p>It&amp;rsquo;s going to be a few busy weeks for me concerning speaking at conferences and meetups. Not only will I be speaking at
the &lt;a href="http://www.phpbenelux.eu/en/meeting_march_2011" target="_blank">March edition&lt;/a> of the phpBenelux meetup,
hosted at our &lt;a href="http://www.enrise.com/2011/03/phpbenelux-meeting-maart-2011/" target="_blank">Enrise office&lt;/a>,
but also at the &lt;a href="http://www.loadays.org/content/first-talks-announced" target="_blank">Linux Open Administrator
days in Antwerp, Belgium&lt;/a>. Here I will be hosting 2 different talks:&lt;/p></description></item><item><title>Speaking on the 4developers conference in Poland</title><link>https://adayinthelifeof.nl/2011/03/08/speaking-on-the-4developers-conference-in-poland/</link><pubDate>Tue, 08 Mar 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/03/08/speaking-on-the-4developers-conference-in-poland/</guid><description>&lt;p>More good news: I&amp;rsquo;ve been invited to speak at the 4developers conference on april 4th in warschau,
Poland. This time, my talk will be about the &lt;a href="http://joind.in" target="_blank">joind.in
&lt;/a>&lt;a href="https://adayinthelifeof.nl/2010/04/11/joind-in-android-mobile-app/" target="_blank">android application&lt;/a> I&amp;rsquo;ve
written, the connectivity to 3rd party API&amp;rsquo;s and creating android applications in general. A lot of
stuff to cover in a short period of time but it will be an exciting talk so if you are around, come
and join the android fun.&lt;/p></description></item><item><title>Public key encryption on php|architect</title><link>https://adayinthelifeof.nl/2011/03/01/public-key-encryption-on-phparchitect/</link><pubDate>Tue, 01 Mar 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/03/01/public-key-encryption-on-phparchitect/</guid><description>&lt;p>Yesterday the &lt;a href="http://www.phparch.com/magazine/2011-2/february/" target="_blank">February
edition of php|architect&lt;/a> came out. I always look forward upon the new release every month, but
even more so this month since it features an article about &amp;ldquo;Public Key Encryption&amp;rdquo; I&amp;rsquo;ve written for
php|a. It&amp;rsquo;s more or less a written version of my &lt;a href="https://adayinthelifeof.nl/2010/12/05/public-key-cryptography-101/"
target="_blank">public key authentication 101 talk&lt;/a> and consists of not only the theory behind
it, but also some php examples on using public key authentication in your own projects. As always,
comments on either my blog or php|architect&amp;rsquo;s are welcome.&lt;/p></description></item><item><title>Back to basics: TCP</title><link>https://adayinthelifeof.nl/2011/02/20/back-to-basics-tcp/</link><pubDate>Sun, 20 Feb 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/02/20/back-to-basics-tcp/</guid><description>&lt;p>TCP is one of the core protocols for the TCP/IP suite. It provides a reliable data connection without you needing to
worry about errors, congestion and other communication problems that haunt the internet. But how does TCP work? It&amp;rsquo;s
another edition of the back-to-basics series.&lt;/p></description></item><item><title>Having fun with Arduino</title><link>https://adayinthelifeof.nl/2011/02/09/having-fun-with-arduino/</link><pubDate>Wed, 09 Feb 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/02/09/having-fun-with-arduino/</guid><description>&lt;p>So yesterday I&amp;rsquo;ve finally received my Arduino Mega. If you know me, you know I&amp;rsquo;m not even capable (or allowed) to handle
a screwdriver, let alone something even more complicated things like transistors, resistors etc..  However, with the
help of some friends over on the #pfz channel on freenode to create the schematics, I&amp;rsquo;ve made - and programmed -  a very
simple lcd-counter consisting of 3 times a  4-digit 7-segment lcd&amp;rsquo;s.&lt;/p></description></item><item><title>memcache internals</title><link>https://adayinthelifeof.nl/2011/02/06/memcache-internals/</link><pubDate>Sun, 06 Feb 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/02/06/memcache-internals/</guid><description>&lt;p>Memcache is a pretty well-known system inside the web-community and for a good reason. It&amp;rsquo;s fast, flexible, lightweight
and it looks like installing memcache on your servers automatically increases your website speed tenfold or more. Ok, so
that&amp;rsquo;s a bit over the top, but still: having a good caching-strategy in place can help your website/application. If you
want to know how to implement memcache in your website you&amp;rsquo;re out of luck. This post isn&amp;rsquo;t about starting with memcache.
We are going to pop the trunk and see what&amp;rsquo;s under the hood.. What exactly makes memcache so magical??&lt;/p></description></item><item><title>Password hashing and salting</title><link>https://adayinthelifeof.nl/2011/02/02/password-hashing-and-salting/</link><pubDate>Wed, 02 Feb 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/02/02/password-hashing-and-salting/</guid><description>&lt;p>The thing everybody (should) know is that when you want to secure passwords in - let&amp;rsquo;s say - a database, you have to
hash to them. It&amp;rsquo;s kind of a golden rule but is it safe enough? Ask a more experienced user and they probably tell you
to add some salt. Ask the reason why and they will probably say &amp;ldquo;it&amp;rsquo;s because it makes the password longer and more
secure&amp;rdquo;. Even though it is true in effect that using a salt increases the overall security of your hashes BUT it&amp;rsquo;s not
only because your passwords are longer. There is a another (maybe even more important) factor that comes into play,
namely the fact they are more secure against rainbow table attacks, but that depends on HOW you season your hashes.
Season it incorrectly, and you gain nothing in security even though you think you did&amp;hellip;.&lt;/p></description></item><item><title>Make me a sandwich. Ok!</title><link>https://adayinthelifeof.nl/2011/02/01/make-me-a-sandwich-ok/</link><pubDate>Tue, 01 Feb 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/02/01/make-me-a-sandwich-ok/</guid><description>&lt;p>I have to admit it: grew up with unix &amp;ldquo;the wrong way&amp;rdquo;. Instead of having decent user-accounts for every employee, all
our work was done under the root-account. The main reason for this is that our software deployment system didn&amp;rsquo;t really
worked the way it should and I guess nobody really cared. It worked.. login as root on our (private) systems and call
the compile+install script&amp;hellip; Furthermore, there were about 14 different unix-flavours available, and only 2 or 3
persons with access to them. Again, all internal systems just for compiling and testing. A good thing.. yes and no.. It
feels like I started learning to ride a bike on a ATB instead of a tricycle I guess..&lt;/p></description></item><item><title>Talking at the PHP Benelux 2011</title><link>https://adayinthelifeof.nl/2011/01/23/talking-at-the-php-benelux-2011/</link><pubDate>Sun, 23 Jan 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/01/23/talking-at-the-php-benelux-2011/</guid><description>&lt;p>&lt;a href="https://adayinthelifeof.nl/images/uploads/2011/01/PHP-BENELUX-Logo.thumbnail.png">&lt;img style="margin: 5px;" title="PHP-BENELUX-Logo.thumbnail" src="https://adayinthelifeof.nl/images/uploads/2011/01/PHP-BENELUX-Logo.thumbnail.png" alt="" width="150" height="58" />&lt;/a>As you might know, the &lt;a href="http://www.phpbenelux.eu/" target="_blank">PHPBenelux Conference 2011&lt;/a> is right around the corner. Happy to inform you that not only will I attend, but also will be speaking at this event. My talk will be about the awesome things you can do with &lt;a href="http://joind.in/talk/view/2489" target="_blank">Sed &amp;amp; Awk&lt;/a>. Not necessarily a talk you would expect on a PHP congress, but on the other hand, maybe it&amp;rsquo;s just precisely a talk you might expect. Not only will I talk about WHAT you can do with sed &amp;amp; awk, but also why and when you should - or shouldn&amp;rsquo;t - use it. It will be a fast-paced, information-loaded, things-you-probably-never-knew talk so make sure you keep your seat-belts on and remain seated until the vehicle has come to a complete stop.&lt;/p>
&lt;p>Conferences like these are an awesome way to gain knowledge about everything related to PHP, web
development and above. Even though my personal interests lies with web-development in general, I
really like to show other developers the broader perspective in which you are just a small part: 
your application runs on a database which needs to be setup and maintained, you run on an
infrastructure that needs to be setup and maintained, you might talk with 3rd party applications and
so on&amp;hellip; I hope to see you around during my session and try to discover some sweet tools that, even
if you not going to use them on daily basis, at least you know they&amp;rsquo;re there, ready to do all your
complex stuff developers always like to automate&amp;hellip;&lt;/p></description></item><item><title>Using syslog for your php applications</title><link>https://adayinthelifeof.nl/2011/01/12/using-syslog-for-your-php-applications/</link><pubDate>Wed, 12 Jan 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/01/12/using-syslog-for-your-php-applications/</guid><description>&lt;p>Linux, and other unices have an excellent system to centralize log events. This is done through syslog. This system
removes the need for every application to maintain their own log files and let the syslog server handle all the events.
Depending on the type of event that is logged, it can take additional action like alerting you through email or even
text-messaging if a critical event occurs. No system administrator can live without syslog and is normally the first
place to look for signs of trouble on a system. So instead of writing our own log system for your application, why not
use an existing one?&lt;/p></description></item><item><title>PHP 5.4: RegexIterator::getRegex()</title><link>https://adayinthelifeof.nl/2011/01/06/php-5-4-regexiteratorgetregex/</link><pubDate>Thu, 06 Jan 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/01/06/php-5-4-regexiteratorgetregex/</guid><description>&lt;p>Recently, my &lt;a href="http://twitter.com/neorey" target="_blank">colleague&lt;/a> &lt;a
href="http://conference.phpbenelux.eu/2011/talks/#dijkvarnish" target="_blank">Jeroen&lt;/a> van &lt;a
href="http://www.enrise.com/author/jvandijk/" target="_blank">Dijk&lt;/a> needed to extend (or better yet: override) the
accept()* method for the RegexIterator. Turns out this wasn&amp;rsquo;t as easy as it might sound in practice. So after extending
and overriding multiple methods he found an acceptable solution. But there is room for improvement. And starting from
PHP 5.4, this improvement is available through &lt;code>regexiterator::getregex()&lt;/code> method.&lt;/p></description></item><item><title>12 tips for securing your linux systems</title><link>https://adayinthelifeof.nl/2011/01/05/12-tips-for-securing-your-linux-systems/</link><pubDate>Wed, 05 Jan 2011 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2011/01/05/12-tips-for-securing-your-linux-systems/</guid><description>&lt;p>From time to time I get amazed how people can setup their production servers. At the smallish development companies
there is no real system administrator available to setup the systems and to keep them up to date. Now I&amp;rsquo;ve seen systems
that have been setup ranging from &amp;ldquo;somebody with sufficient knowledge&amp;rdquo; to &amp;ldquo;this-was-setup-by-the-janitor&amp;rdquo; and everything
in between. So, if you are a &amp;ldquo;programmer who knows a bit about Linux because you&amp;rsquo;re using Ubuntu&amp;rdquo;, but you have no real
idea on how to SECURELY setup a system, here are some tips.&lt;/p></description></item><item><title>Enrise: Appending the appenditerator</title><link>https://adayinthelifeof.nl/2010/12/26/enrise-appending-the-appenditerator/</link><pubDate>Sun, 26 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/26/enrise-appending-the-appenditerator/</guid><description>&lt;p>I&amp;rsquo;ve posted a blog at the @enrise techblog about enhancing SPL&amp;rsquo;s appenditerator. This lovely
iterator can be useful from time to time but it does not always do what you need. Here&amp;rsquo;s how you can
easily create your own iterator:&lt;/p></description></item><item><title>Github gists: revisioned code snippets for free</title><link>https://adayinthelifeof.nl/2010/12/26/github-gists-revisioned-code-snippets-for-free/</link><pubDate>Sun, 26 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/26/github-gists-revisioned-code-snippets-for-free/</guid><description>&lt;p>If you maintain a tecnhnical programmers blog, you occasionaly need to post code snippets. I use a syntax highlighter
plugin on my blog to make those snippets look nice and highlighted. It works and it&amp;rsquo;s easy enough to implement and
maintain. But Github might come with a even better solution: gists&amp;hellip;&lt;/p></description></item><item><title>InnoDB isolation levels</title><link>https://adayinthelifeof.nl/2010/12/20/innodb-isolation-levels/</link><pubDate>Mon, 20 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/20/innodb-isolation-levels/</guid><description>&lt;p>When asking what THE advantage of InnoDB over other MySQL engines like MyISAM is, then 9 out of 10 times the answer will
be that InnoDB supports transactions. And it&amp;rsquo;s true. But there is more about transactions than meets the eye. Let&amp;rsquo;s
explore one of the most difficult area&amp;rsquo;s: isolation levels.&lt;/p></description></item><item><title>The first few milliseconds of https</title><link>https://adayinthelifeof.nl/2010/12/19/the-first-few-milliseconds-of-https/</link><pubDate>Sun, 19 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/19/the-first-few-milliseconds-of-https/</guid><description>&lt;p>I was on the verge of creating a post about the TSL/SSL handshaking, when I discovered a blogpost
about the very same subject. Since I don&amp;rsquo;t think it&amp;rsquo;s of much use to blog about exactly the same
thing, and I can really recommend Jeff Moser&amp;rsquo;s page so please &lt;em>read and understand&lt;/em> it.&lt;/p></description></item><item><title>Tutorial: how to manage developers</title><link>https://adayinthelifeof.nl/2010/12/18/tutorial-how-to-manage-developers/</link><pubDate>Sat, 18 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/18/tutorial-how-to-manage-developers/</guid><description>&lt;p>This post is not so much for developers as it is for the managers and bosses from those developers. As you probably know
by now, managing software engineers (or programmers) is not an easy task. They just don&amp;rsquo;t like to play by the rules you
always took for granted. Why is that? Why are those pesky programmers too hard to handle? Why is it so hard to sit down,
write code and shut up??&lt;/p></description></item><item><title>Composite key autoincrements</title><link>https://adayinthelifeof.nl/2010/12/17/composite-key-autoincrements/</link><pubDate>Fri, 17 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/17/composite-key-autoincrements/</guid><description>&lt;p>Autoincrement is sometimes called a &amp;ldquo;poor-man-sequence&amp;rdquo;. Sequences in other DB systems are counters that can be used for
automatically number fields when inserting data, just like autoincrement in MySQL does, but they can be much more
complex. However, in MySQL you do not always you want or need increments of 1. Sometimes you need something a little
more complex than that and MySQL leaves you pretty much in the cold.  There is a neat little trick that can solve some
&amp;ldquo;autoincrement&amp;rdquo; problems&amp;hellip;&lt;/p></description></item><item><title>OAuth timestamps and nonces</title><link>https://adayinthelifeof.nl/2010/12/16/oauth-timestamps-and-nonces/</link><pubDate>Thu, 16 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/16/oauth-timestamps-and-nonces/</guid><description>&lt;p>Oauth is a very popular authentication mechanism used for a lot of web applications. And not without good reasons. It is
relatively easy to implement, has different flavours (2-legged, 3-legged system) so you can use almost anywhere that
requires authentication and authorization. This post is not about how to implement oauth. That can be found in much
greater detail than I can explain here, but about two tiny details that can make or break your oauth security: the oauth
nonce and timestamp.&lt;/p></description></item><item><title>What kind of day has it been</title><link>https://adayinthelifeof.nl/2010/12/14/what-kind-of-day-has-it-been/</link><pubDate>Tue, 14 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/14/what-kind-of-day-has-it-been/</guid><description>&lt;p>For the readers who get the Aaron Sorkin reference in the title, do not be alarmed: this will NOT be my final blog post,
just the last of the season. One year ago I&amp;rsquo;ve decided to do some (active) blogging about all tech related things I
encounter in both my professional as my private life which I find interesting enough to share with the world (or at
least with google). So, after blogging one year, was it worth it?&lt;/p></description></item><item><title>PHP srand problems with suhosin</title><link>https://adayinthelifeof.nl/2010/12/13/php-srand-problems-with-suhosin/</link><pubDate>Mon, 13 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/13/php-srand-problems-with-suhosin/</guid><description>&lt;p>Today I stumbled across an odd problem which took me about an hour to figure out what was going on. It had to do with
mt_srand(), where it looked like it didn&amp;rsquo;t work properly. I needed a repeatable sequence of random numbers (which is
EXACTLY what the Mersenne Twister produces) so I used mt_srand() with a fixed number (for testing purposes) and tried to
see if the same sequence of random values were generated by mt_rand()..  It didn&amp;rsquo;t&amp;hellip;&lt;/p></description></item><item><title>SSL and Virtualhosting</title><link>https://adayinthelifeof.nl/2010/12/12/ssl-and-virtualhosting/</link><pubDate>Sun, 12 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/12/ssl-and-virtualhosting/</guid><description>&lt;p>SSL and virtualhosting on 1 IP address? I can&amp;rsquo;t be done! Well, this might have been the case a few years ago but times has
changed. Let&amp;rsquo;s explore the possibilites to have multiple hosts running on the same IP address AND all of them have their
own separate SSL domain and certificates. It&amp;rsquo;s possible, but with a few catches..&lt;/p></description></item><item><title>Sed &amp;#038; awk examples</title><link>https://adayinthelifeof.nl/2010/12/11/sed-awk-examples/</link><pubDate>Sat, 11 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/11/sed-awk-examples/</guid><description>&lt;p>Did you know you can write a webserver in awk or that sed supports conditional jumps? Probably not&amp;hellip; These tool
(languages, actually) are much more powerful than most people know. The sed &amp;amp; awk combination gives you massive power IF
used correctly. Although most people use it for simple tasks like search/replacing or displaying certain columns of a
file, the potential is much higher. I will discuss a few real-life examples I use from time to time&amp;hellip;&lt;/p></description></item><item><title>Encryption operating modes: ECB vs CBC</title><link>https://adayinthelifeof.nl/2010/12/08/encryption-operating-modes-ecb-vs-cbc/</link><pubDate>Wed, 08 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/08/encryption-operating-modes-ecb-vs-cbc/</guid><description>&lt;p>Today I overheard &lt;a href="http://twitter.com/#!/trafex" target="_blank">two&lt;/a> &lt;a href="http://twitter.com/#!/neorey"
target="_blank">colleagues&lt;/a> discussing one of my favorite subjects: encryption. The discussion was about that
encrypting data (with a normal block cipher) was working perfectly in ECB mode, but not in CBC mode. So, this all leads
up to the question: what is ECB and CBC? And when should you use them? Although this post has some PHP code in it, it is
applicable for every other language.&lt;/p></description></item><item><title>Sed: simple pattern address usage</title><link>https://adayinthelifeof.nl/2010/12/06/sed-simple-pattern-address-usage/</link><pubDate>Mon, 06 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/06/sed-simple-pattern-address-usage/</guid><description>&lt;p>Most people I know use sed for simple and fast translation of some keyword in files. For instance, changing ports and
tags inside configuration files during deployment to production servers. This results in sometimes clumsy scripts to
make sure that sed changes a keword on line 4, but not on line 40. Most people I know have no idea that the way you can
actually limit the range in which sed has to operate. Let&amp;rsquo;s explore&amp;hellip;&lt;/p></description></item><item><title>Public key cryptography 101</title><link>https://adayinthelifeof.nl/2010/12/05/public-key-cryptography-101/</link><pubDate>Sun, 05 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/05/public-key-cryptography-101/</guid><description>&lt;p>I&amp;rsquo;ve just uploaded the new slides for my Public Key Cryptography 101 presentation. It consists of 84 (!) slides about
the basics of encryption, public key cryptography and implementations. How does it work, what are it&amp;rsquo;s advantages,
disadvantages and practical uses. Off course, this presentation should be accompanied with the talk itself and I&amp;rsquo;ve
submitted it to a few (php) conferences in 2011. Let&amp;rsquo;s hope organizers out there are willing to give &amp;ldquo;the more advanced&amp;rdquo;
topics a chance instead of sticking with the safe and common topics (the so-called Pinkpop effect) and see you somewhere
in 2011!&lt;/p></description></item><item><title>About using UTF-8 fields in MySQL</title><link>https://adayinthelifeof.nl/2010/12/04/about-using-utf-8-fields-in-mysql/</link><pubDate>Sat, 04 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/04/about-using-utf-8-fields-in-mysql/</guid><description>&lt;p>I sometimes hear: &amp;ldquo;make everything utf-8 in your database, and all will be fine&amp;rdquo;. This so-called advice could not be
further from the truth. Indeed, it will take care of internationalization and code-page problems when you use UTF-8, but
it comes with a price, which may be too high for you to pay, especially if you have never realized it&amp;rsquo;s there..&lt;/p></description></item><item><title>Top-5 certifications for every PHP programmer</title><link>https://adayinthelifeof.nl/2010/12/03/top-5-certifications-for-every-php-programmer/</link><pubDate>Fri, 03 Dec 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/12/03/top-5-certifications-for-every-php-programmer/</guid><description>&lt;p>Today I&amp;rsquo;ve passed the Zend Framework Certification exam and with that I can finally close my new years resolution for
2010: doing 12 (tech related) exams in 2010. So I&amp;rsquo;ve seen a lot of exams, good ones and bad ones and I want to share
with you my experience by creating a top-5 of must-have certifications for PHP programmers&amp;hellip;&lt;/p></description></item><item><title>Back to basics: two's complement</title><link>https://adayinthelifeof.nl/2010/11/26/back-to-basics-twos-complement/</link><pubDate>Fri, 26 Nov 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/11/26/back-to-basics-twos-complement/</guid><description>&lt;p>I occasionally get into discussions where I find that other lack some basic understanding of the elementary systems
which he or she has to work with everyday. Today was such a day: we went into a discussion about that it would be so
much nicer to have unsigned tinyint (in mysql) range from -127..128 instead of -128..127. Although it COULD be changed,
it would go against almost all rudimentary principles of numeric systems used inside computers, but this not always
known to PHP-programmers.&lt;/p>
&lt;p>So today I introduce the &amp;ldquo;back-to-basics&amp;rdquo; posts, which talks about all kind of rudimentary principles in computer
technology. These principles found the basics of that what you use each and every day, and even though you probably not
aware of them, they still are there..&lt;/p>
&lt;p>The first b2b post is about the two&amp;rsquo;s complement signing system&amp;hellip; let&amp;rsquo;s take a look:&lt;/p></description></item><item><title>10 advanced linux command line tools</title><link>https://adayinthelifeof.nl/2010/11/24/10-advanced-linux-command-line-tools/</link><pubDate>Wed, 24 Nov 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/11/24/10-advanced-linux-command-line-tools/</guid><description>&lt;p>Most developers who are working at the command line on a Linux system know the &amp;ldquo;basic&amp;rdquo; commands: ls, cd, cat, tail,
head, sort, grep, find and others. More &amp;ldquo;advanced&amp;rdquo; users will know how to deal with the &amp;lsquo;sed&amp;rsquo; and &amp;lsquo;awk&amp;rsquo; beasts, or even
prefer perl-oneliners. Have the knowledge of bash (scripting) and you find yourself inside a Valhalla where only your
imagination is the limit. Well, not really, but at least you get my point, hopefully.&lt;/p>
&lt;p>But like everything you do in life, you don&amp;rsquo;t know about the things that lies after the horizon until you actually
explore them. This &amp;ldquo;yet another top ten list&amp;rdquo; will dive into some interesting (standard) tools that can make your life
much easier when dealing with Linux systems from a programmers perspective.&lt;/p></description></item><item><title>Centralising your tools in a custom repository - Part 1</title><link>https://adayinthelifeof.nl/2010/11/22/centralising-your-tools-in-a-custom-repository/</link><pubDate>Mon, 22 Nov 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/11/22/centralising-your-tools-in-a-custom-repository/</guid><description>&lt;p>At almost every software company I&amp;rsquo;ve been involved in, used custom-made tools for various tasks. These tools range from
simple shell-scripts for search&amp;amp;replacing data to large deployment-script or even programs that take care of
administrative tasks like monitoring, log aggregation and so on. At the good companies, these tools are maintained
inside a software repository system SVN or GIT. But tools like these need to be deployed to a lot of different server
and development environments, both in internal and external networks. Creating SVN checkouts is a possibility, but what
about things like dependencies or easy up- or downgrades. And do you want external systems give access to your source
code repository? And how do you make sure everybody uses the latest release with the newest features and bug fixes?&lt;/p>
&lt;p>One of the best answers is something almost every Linux user is already familiar with: package managers. They are easy
to use, it&amp;rsquo;s fast and can do so much more work for you than simple repository checkouts ever can do. Using Linux
packages managers as the preferred way of deployment for software is not yet discovered by the php-community. Strange
actually, since package managers are capable of handling issues that most deployment-tools are struggling with like
dependencies, upgrades, downgrades and multi-environment setups.&lt;/p>
&lt;p>Since this subject is pretty large to handle in a single blog post, it is setup in 3 different chapters. First, we begin
by creating a package from scratch. In the next chapter, we show how to collect and maintain these packages inside your
customer repository and in the last chapter we will talk about connecting your software repository to your package
manager and how to deal with multiple repository-formats.&lt;/p></description></item><item><title>Centralising your tools in a custom repository – Part 2</title><link>https://adayinthelifeof.nl/2010/11/22/centralising-your-tools-in-a-custom-repository-%e2%80%93-part-2/</link><pubDate>Mon, 22 Nov 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/11/22/centralising-your-tools-in-a-custom-repository-%e2%80%93-part-2/</guid><description>&lt;p>During this blog post I will talk about creating your own custom package repository. However, before you can setup a
repository, you need packages. &lt;a href="https://adayinthelifeof.nl/2010/11/22/centralising-your-tools-in-a-custom-repository/"
target="_blank">This previous post&lt;/a> talks about setting up your custom packages.&lt;/p></description></item><item><title>Joind.in Android App v1.6</title><link>https://adayinthelifeof.nl/2010/10/09/joind-in-android-app-v1-6/</link><pubDate>Sat, 09 Oct 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/10/09/joind-in-android-app-v1-6/</guid><description>&lt;p>Today I have pushed the v1.6 release of the Joind.in Android app to the market. A lot of things has changed, so it
probably would have been more suited to rename it to v2.0. Here is a list of changes, plus a simple manual on
usage.&lt;/p></description></item><item><title>Testing encoders for PHP</title><link>https://adayinthelifeof.nl/2010/08/14/testing-encoders-for-php/</link><pubDate>Sat, 14 Aug 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/08/14/testing-encoders-for-php/</guid><description>&lt;p>A friend of mine posted a tweet about problems with Zend Guard just the other day. My friendly advise was: try using another encoder. Which he
kindly ignored :) Which on my turn again made me wonder: how many encoders are out there, and more important how easy
are they to work with?&lt;/p></description></item><item><title>Creating a traceroute program in PHP</title><link>https://adayinthelifeof.nl/2010/07/30/creating-a-traceroute-program-in-php/</link><pubDate>Fri, 30 Jul 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/07/30/creating-a-traceroute-program-in-php/</guid><description>&lt;p>Today i was reading upon &lt;a
href="http://blog.ksplice.com/2010/07/learning-by-doing-writing-your-own-traceroute-in-8-easy-steps/"
target="_blank">this wonderful article&lt;/a> about writing a trace-route program in Python in 40 lines. Even though
trace-route is one of the many tools i use on day to day basis, i never really got into writing a version myself
(something I like to do just to gain knowledge how things works). So when I was reading this post, i thought, Python is
nice, but is it possible to do it in PHP as well? The answer to that: yes and no..&lt;/p></description></item><item><title>Minimizing cache stampedes</title><link>https://adayinthelifeof.nl/2010/07/29/minimizing-cache-stampedes/</link><pubDate>Thu, 29 Jul 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/07/29/minimizing-cache-stampedes/</guid><description>&lt;p>Caching is THE magic solution when it comes to optimizing your web applications. There are a lot of caching strategies
and applications outthere. Some prefer MySQL query caching, others use memcache to cache either queries, objects, html
or other data. However, one of the biggest problems that a lot of people tend to ignore with memcache or other caching
daemons is dealing with stampedes. This phenomenon occurs when for instance the caching server is unavailable (because
the instance is down, or due to network issues) or, most of the time, when the time to live of an object expires.When
that occurs, all your processes will ask the cache for data, find that it&amp;rsquo;s not present and will try to generate it for
you.&lt;/p></description></item><item><title>Moving from windows to mac</title><link>https://adayinthelifeof.nl/2010/07/24/moving-from-windows-to-mac/</link><pubDate>Sat, 24 Jul 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/07/24/moving-from-windows-to-mac/</guid><description>&lt;p>Even though most of my work is done on Linux systems, my laptop and home-systems are installed with
Microsoft&amp;rsquo;s Windows. Even though I don&amp;rsquo;t want that OS anywhere even remotely near my servers, I think it
still is the best system for day to day use. All the software I need is on there, I&amp;rsquo;m used to the interface
and when maintained properly (ie: remove all unneeded services and programs, clean it up etc on a weekly
basis), it&amp;rsquo;s stable enough to say I can leave my systems running for weeks without any problems. Suffice to
say, i&amp;rsquo;m happy enough.. at least, I though i was.. until 2 weeks ago&amp;hellip;&lt;/p></description></item><item><title>Passing the LPI-1 and LPI-2 exams</title><link>https://adayinthelifeof.nl/2010/06/30/passing-the-lpi-1-and-lpi-2-exams/</link><pubDate>Wed, 30 Jun 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/06/30/passing-the-lpi-1-and-lpi-2-exams/</guid><description>&lt;p>I&amp;rsquo;ve just finished my LPI-201 and LPI-202 exams, which you both need in order to receive your LPIC-2
certification. Even though I&amp;rsquo;ve used Linux professionally since before 1998, I still wasn&amp;rsquo;t as easy I though
it would be (but then again, you shouldn&amp;rsquo;t take them right after each other). I was kinda hoping that my
experience would roll me through the program, and guess what, with some help of some test exams, it did
:)&lt;/p></description></item><item><title>Bit manipulation in PHP</title><link>https://adayinthelifeof.nl/2010/06/02/bit-manipulation-in-php/</link><pubDate>Wed, 02 Jun 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/06/02/bit-manipulation-in-php/</guid><description>&lt;p>Although you probably never need it as much as a C-programmer would, it&amp;rsquo;s not a bad idea to know how bit manipulation works. This post will tell you a bit about what bit manipulation is, why you could use it and how you are using it already (with or without knowing)&lt;/p></description></item><item><title>Deflating the universe</title><link>https://adayinthelifeof.nl/2010/06/02/deflating-the-universe/</link><pubDate>Wed, 02 Jun 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/06/02/deflating-the-universe/</guid><description>&lt;p>Compression is used all around us every single day. You (or your girlfriend/wife most likely) folds your
clothes nicely so they all fit in your closet. When recycling, you flatten the cardboard milkboxes so they
take up less space and you probably even text your friends with messages like: &amp;ldquo;hi, how r u? w r u? cya,
xxx&amp;rdquo;. Stuff like that.&lt;/p>
&lt;p>In the computer world, compression probably plays even a more important factor. When compressing data, it
take less space and thus less time to send it over to somebody else through internet. Years ago, you bought a
100MB harddrive and use special software to increase the capacity to (up to) 200MB (doublespace, stackspace
for those who can remember). It all uses compression one way or the other.&lt;/p>
&lt;p>Some compression methods can compress and decompress in such a way that the decoded output is exactly the
same as the original. For instance, gzip and deflate. It&amp;rsquo;s called lossless compression since no data is lost
during the compression/decompression. Other compression methods don&amp;rsquo;t. For instance, JPEG or MP3 compression
creates smaller copies of the original but they can never be decompressed back to the original format. Colors
that are very similar (but not quite the same) are converted into 1 single color during JPEG compression. Or
inaudible sounds are removed from an audio file when compressing to an MP3. With JPEG or MP3&amp;rsquo;s, for most
people this is not an issue. The images are perfect enough for normal usage, and the audio quality of mp3&amp;rsquo;s
are also good enough for the average use (although I know a few persons who want to kill me for saying this
:)).&lt;/p>
&lt;p>In this article I will talk a bit about the deflate compression method. A compression method used throughout
the whole internet and probably the most used compression algorithm today.&lt;/p></description></item><item><title>Suits v. Techies.. the neverending battle..</title><link>https://adayinthelifeof.nl/2010/04/19/suits-v-techies-the-neverending-battle/</link><pubDate>Mon, 19 Apr 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/04/19/suits-v-techies-the-neverending-battle/</guid><description>&lt;p>Developers are proud of their work. The best way to get unhappy developers is to force them to create and
deploy some crappy software. Sales however, does not care about crap software.. it just needs to work, it
needs to be created quickly and cheap so they can sell even more&amp;hellip;&lt;/p>
&lt;p>Both departments have conflicting interests that 9 out of 10 times the developer will loose.. After all: at
the end of the month, it&amp;rsquo;s the customer who pays the developer salary (and sales&amp;rsquo; big bonuses). So, 2
departments, 2 different interests. Normally, the project manager is the person that sits between sales (or
management) and development. It&amp;rsquo;s his job to make sure projects are constructed according the specs of the
client, on time and on budget. Not an easy task when the two sides you are working with are in constant state
of war.&lt;/p>
&lt;p>As said, the sales department never really looses a battle since they generate money, while development
generates code. How well written this code is, is never really an issue for a customer. But what if it
actually is?&lt;/p></description></item><item><title>Joind.in Android Mobile App</title><link>https://adayinthelifeof.nl/2010/04/11/joind-in-android-mobile-app/</link><pubDate>Sun, 11 Apr 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/04/11/joind-in-android-mobile-app/</guid><description>&lt;p>When you visit PHP conferences nowadays, you&amp;rsquo;ll notice a lot of talk about the Joind.in website
(&lt;a href="http://joind.in">http://joind.in&lt;/a>). It&amp;rsquo;s basically a site where you can register a conference, all the lectures and as a
visitor of those conferences, let the speakers know about what you think off the lecture. It&amp;rsquo;s a very good
way for speakers to learn and perfect their presentations. It&amp;rsquo;s also a pretty awesome site (who&amp;rsquo;s code is
available on &lt;a href="http://github.com/enygma/joind.in" target="_blank">github&lt;/a>!) and new features are
added around the clock.&lt;/p></description></item><item><title>CybOS - Part 1 : In the beginning, there was 0x7C00</title><link>https://adayinthelifeof.nl/2010/02/11/cybos-part-1-in-the-beginning-there-was-0x7c0/</link><pubDate>Thu, 11 Feb 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/02/11/cybos-part-1-in-the-beginning-there-was-0x7c0/</guid><description>&lt;p>Welcome to the first part of CybOS. We talk a bit about the bootsector. From part 2 on, everything is &amp;ldquo;kernel
based&amp;rdquo;, which means we have setup the system and jumped to our main kernel. From there, things get really
interesting so I jump a bit fast to the boot code. However, in the end of this post, the source code for the
bootsector (and second stage loader) can be found so you can see what&amp;rsquo;s going on.&lt;/p></description></item><item><title>CybOS - A tutorial OS</title><link>https://adayinthelifeof.nl/2010/02/10/cybos-a-tutorial-os/</link><pubDate>Wed, 10 Feb 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/02/10/cybos-a-tutorial-os/</guid><description>&lt;p>Somewhere in 1998 or even earlier, I started my own little project in creating a - functional - Operating System from
scratch. Not a linux clone and not a MS-DOS wannabe. Just  a simple OS that is functional in such that some tools, games
etc could actually work, not caring about Posix compliance, fancy graphics or all hardware support you can think  of..&lt;/p>
&lt;p>So, today, 12 years later, where are we?&lt;/p></description></item><item><title>Cardinality &amp; Selectivity</title><link>https://adayinthelifeof.nl/2010/02/07/cardinality-selectivity/</link><pubDate>Sun, 07 Feb 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/02/07/cardinality-selectivity/</guid><description>&lt;p>Cardinality and selectivity are two keywords that are very important when dealing with optimization in MySQL queries and
indexes. This article will go a bit in depth on both terms and tries to let you understand their
usefulness&amp;hellip;&lt;/p></description></item><item><title>Handling binary data in PHP with pack() and unpack()</title><link>https://adayinthelifeof.nl/2010/01/14/handling-binary-data-in-php-with-pack-and-unpack/</link><pubDate>Thu, 14 Jan 2010 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2010/01/14/handling-binary-data-in-php-with-pack-and-unpack/</guid><description>&lt;p>Nowadays most lowlevel functionality like reading or writing graphics are taken care of 3rd party libraries
and that&amp;rsquo;s ok. It&amp;rsquo;s way to complicated to do things right and you probably want to focus on outputting or
sending a PNG instead of construction one from scratch. While reading and writing these kind of binary data
was normally done in languages like C or even assembler, most higher level languages still have these
capabilities and yes, even PHP&amp;hellip; Meet &lt;code>pack()&lt;/code> and &lt;code>unpack()&lt;/code>.&lt;/p></description></item><item><title>Your email address is invalid. Please enter a valid address.</title><link>https://adayinthelifeof.nl/2009/12/28/your-email-address-is-invalid-please-enter-a-valid-address/</link><pubDate>Mon, 28 Dec 2009 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2009/12/28/your-email-address-is-invalid-please-enter-a-valid-address/</guid><description>&lt;p>&lt;em>&lt;strong>Error: Your email address is invalid.&lt;/strong>&lt;/em>&lt;/p>
&lt;p>Every time I see those or similar words when I fill out a registration form I start to cry a little. It&amp;rsquo;s not
my email address that is invalid, it&amp;rsquo;s the websites email validation functionality and it&amp;rsquo;s a great and
effective way to loose visitors and/or customers quickly.&lt;/p></description></item><item><title>TinyMCE Keyword plugin</title><link>https://adayinthelifeof.nl/2009/12/27/tinymce-keyword-plugin/</link><pubDate>Sun, 27 Dec 2009 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2009/12/27/tinymce-keyword-plugin/</guid><description>&lt;p>&lt;a title="TinyMCE Homepage" href="http://tinymce.moxiecode.com/" target="_blank">TinyMCE&lt;/a> is truly a
remarkable editor. It&amp;rsquo;s the one I&amp;rsquo;m typing in now.. it&amp;rsquo;s the one we use for letting our e-commerce customers
use for editing pages and it&amp;rsquo;s the one we use in our SiteManager5 CMS. You receive a fully down-gradable
wysiwyg javascript editor which for non-technical users is very intuitive and thus easy to use and the best
part: it&amp;rsquo;s completely customizable through their plugin-system.&lt;/p></description></item><item><title>Covering indices</title><link>https://adayinthelifeof.nl/2009/12/22/covering-indices/</link><pubDate>Tue, 22 Dec 2009 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2009/12/22/covering-indices/</guid><description>&lt;p>It&amp;rsquo;s almost to easy to use a &lt;code>SELECT * FROM&lt;/code> query in your code. First of all, you instantly get all the
fields from your database so you don&amp;rsquo;t have to worry about changing your queries when you decide to use other
fields (in case you don&amp;rsquo;t use a DAL). However, there are some drawbacks on a &lt;code>SELECT *&lt;/code> method,.. the most
famous one: it takes more time to retrieve all fields instead of the fields you actually use.. but that&amp;rsquo;s NOT
the most important reason why you should not &lt;code>SELECT * FROM&lt;/code> queries..&lt;/p>
&lt;p>The main reason? Covering indices&amp;hellip;&lt;/p></description></item><item><title>Big O notation</title><link>https://adayinthelifeof.nl/2009/12/21/big-o-notation/</link><pubDate>Mon, 21 Dec 2009 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2009/12/21/big-o-notation/</guid><description>&lt;p>Normally you would develop against a test-database. It probably contains about 10 people so you can
do your programming and testing.. Once it&amp;rsquo;s done and QA&amp;rsquo;d, it will go live and people start to visit
the site. After a year or so,.. the site is too slow. Adding more db servers is of no use, your
system administrator is spending his holiday inside the my.cnf&amp;rsquo;s and after dumping a gazzilion GB&amp;rsquo;s
of extra memory to the systems doesn&amp;rsquo;t help at all&amp;hellip;  Sounds like it&amp;rsquo;s the code that&amp;rsquo;s falling
behind.. it cannot cope sorting or handling user lists of 40.000 people, or arrays with more than a
million items and even simple validation functions are way to slow.. why? what just
happened?&lt;/p></description></item><item><title>Welcome</title><link>https://adayinthelifeof.nl/2009/12/21/welcome/</link><pubDate>Mon, 21 Dec 2009 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/2009/12/21/welcome/</guid><description>&lt;p>A lot of people are telling me to write some posts because I apparently have interesting stuff to say once in
a while. This is the place I have picked out to do so. Since I don&amp;rsquo;t have a single area of expertise (or one
could say, I&amp;rsquo;m an expert in ALL area&amp;rsquo;s :)), this will probably be a place of a lot of stuff you will find
interesting, and a lot of things you don&amp;rsquo;t. Don&amp;rsquo;t worry, you are not alone :)&lt;/p></description></item><item><title>404 - Not found</title><link>https://adayinthelifeof.nl/404.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/404.html</guid><description>&amp;ldquo;The requested resource could not be found but may be available again in the future. Subsequent requests by the client are permissible.&amp;rdquo; - wikipedia
&amp;ldquo;The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.</description></item><item><title>About Me</title><link>https://adayinthelifeof.nl/about-me/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/about-me/</guid><description>Joshua Thijssen Software Engineer &amp;amp; Consultant
Freelance developer, consultant and trainer with over 25 years of experience building complex internet systems. Based in the Netherlands, working worldwide. What I do Development Building high-performance backends, compilers, cryptographic tooling, and systems software in Go, Rust, PHP and C.
Consultancy Advising teams on architecture, scalability, security and code quality. Helping organisations raise their engineering standards.
Training Teaching advanced PHP, security, and systems topics.</description></item><item><title>Blog History</title><link>https://adayinthelifeof.nl/archive/date/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/archive/date/</guid><description/></item><item><title>Books</title><link>https://adayinthelifeof.nl/books/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/books/</guid><description>I&amp;rsquo;ve written some books, published either by third parties or self-published. There are available as ebooks (PDF, EPUB, MOBI), and most of them are also available as a paperback edition on Amazon.
Mastering the SPL library PHP|Architect (Paperback, Ebook) Amazon.com (Paperback) Amazon.co.uk (Paperback) Amazon.de (Paperback) The Standard PHP Library is already a few years old, but recently the library has gained a lot of popularity among PHP developers. With more complex applications and more data to process, the library&amp;rsquo;s many functionalities can make development more efficient and easy.</description></item><item><title>Contact</title><link>https://adayinthelifeof.nl/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/contact/</guid><description>If you like to contact me, please drop me an email at jthijssen [at] noxlogic.nl. It&amp;rsquo;s that simple..</description></item><item><title>GPG Key</title><link>https://adayinthelifeof.nl/gpg-key/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/gpg-key/</guid><description>If you like to send private / secure email to me, you can use the following key to encrypt your message.
Click here to download the raw ascii key
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: SKS 1.1.0 mQINBE7ecwoBEADIsf3BjqGBjfr3zA3wSs6bA+ztUEOEGARZjP97SsDBjL3mnlEB2gw/Qkmt ENclSApCZQivKF7Js6QSnPyt5wMbACO6iZBkj4ZRY3xb9gtaNFa/KeYANEHrajxYXkHzCyil lWWE0fK/Nqe9EI5wfEQ37QtTCmejCBUqkzMTVh6lJTHQZpQGqc4OkIkhT8qXwofrlqTOWBJ9 /AaWmadiawNCO13l7cOtv6FQgkX5GtAKaLaTxPdkjWPYjCzLxPmeCn+rnXrAMwsGOzyz94Wp BVmw29k8zizz6RSzj/UlmJX1CBW8GFNg6xiwRGAX3BOye+sw4B17M+9KHGwhEM0tIboe3rNV QvLdpMFc+FWdpe1yi2Yp/L2FKSamTRbW9kQi24qhwtX5gA3WkSgeDnoygcEeftDegcmLTLGJ nLS/38bEouQRHrerhITycq8QhHKAaBZUWnFXGbq4iEKEsTXdQvkwDEWryrPEwG4tO8uuvwhA qUCUGTvHKEuEe3b8esuJjg7clW+SpCgVgZLEwQjhimaB/XWcXL0O9vRutdGee9fzUvW/qhYP lQe/PJNB/iaPnx/toMEQRgv+0goX/qysbWnFGS299GmvTKMtg1134SlmpRUBb7NY5EPNNTYJ inhav2aKifi+2hmXQ7GeJwQnPTkRh5UJbprLaaRYkWIb9DTzvQARAQABtCdKb3NodWEgVGhp anNzZW4gPGp0aGlqc3NlbkBub3hsb2dpYy5ubD6JAjwEEwECACYFAk7ecwoCGwMFCQlmAYAG CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDyu5az+rpCasr9D/9Bfj2fRwWBOvS+gjuH8QuC rKwiUn/ggfZh5mAgETLf8hr9veT3yvIL5v83X9YTGXV6BovxyP+SflRq/ylj/gPIVf6WJJmU HoC7GOMaA3zGabgTmbuCGlSDI0NsfsmlA7a3qff+jngYvxrUvzaD6bP62+p9luMYTEBkvqNI sfEq5tUDq3yUI73eB7ppVQdA+fSK+Y7mfwSEdiceO7A+LOyyu+TrkNBmc0XyxEgQzmUB7TPY pA9A/vEc4j92owy6qv/arqbSXb+Jc3iT5nwJFuGrUTlDqtfXSA8213r0yKq4sdmErQ5JTLMN 0/8IFfQSFwuP2s7R42UuyfPOGOHMZ8w/LL/4Zbbu+723W4mJatZvLQz0K21W3nE6GRafPV2b 5HyUW+vUlV7bnYNCbZCr7CzhfQnjmAMAB9SyRehysp0YJ9NKDlPBNOc19v/UC6oJ9R0M/QPW NXMRhdA4FguVEfJiIly1jQkGdsWejKrjnrBLqToSfRISXcnKKT/ruBb9QQNvyYFl/P5HPS0n Q0oTxqYu0/4CPePNxZK5OUSx5fNRycSQPmlkafvJmTyII6vI2PNS1MdOwF6VUepCJLk5Cmpp k70gJdD9SUVyc2R2d+/QqGMnMqyoNELsL+Rqj3nJJ/3hkzrj4Cn4OsvVMT38HVrp4qACrlaM pgykwiu+aIjfGYkCPwQTAQIAKQIbAwUJCWYBgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheABQJR su+GAhkBAAoJEPK7lrP6ukJqQG4P/R3NCmZahqemed8vvIXIMQASBIBThVp23d+LMap59qY3 t9FZ9PX0mw8SqVZAxYpHISJO2+JQ+daAabv4FQBImaltAVnJqicXE/qLTgJPiBcXUWb0W0so H0GrIb42rxQrRtR1885Df2cIXTfKiHXUSMCCx6/Qug5tThCkNsOEz5l+9ScWaP/gQqb/vrnN ZWmFWIthO9geBDMuCPCgIuTIdJsL5UwRIyNBQBWo+Sh7z0uqVzPCklFZLopVFZleq2VeTNGV Dv9ab2Bi2caS7v+IXZqQKEUBYItwtkve7WKW6mnrCkXsYrsb0/jpBeuO9FAackAyE/AxnJ27 n4zjBCdOKXnOHOfbj98Sk7A/q4efYYKyMVZHeNNMN1+PlqFDXiUQafmJrrulpx5byGWaGr93 bWOVC8XX85T0f1Rmw+agMzbvBpUQB89YEdJvx4FqSq9Uy6VakQM8eBHp0wOSWVcdDFIIC7Ev GHzV9qeFUm0ItGaNuGLK+HcW6EHAuFixKdWc4mZPZOY2eQOjj3FZU3Jh7uaofABbJx4v23qi z/bL3zkGS/t/rJxZVtrD0Tz/apypxsy6yvpigUIr0Ai/ZUc+9bKRyDFRmOt/pbwFKnE3crtK IBhAwmitXxqAmsT/PNEs77A4ZF5dokHkXE5GXRr1UzxqFlqfK/fcLl8xB2M+cpS3tC9Kb3No dWEgVGhpanNzZW4gPGp0aGlqc3NlbkBkdXRjaHdlYmFsbGlhbmNlLm5sPokCPAQTAQIAJgUC UkWFLQIbAwUJCWYBgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEPK7lrP6ukJqqZ0P/3wj xitXzm8T0WXfV6L7PQJtO7O3lm2Tvi+2TPhJIa3RtP94M7Er753T+N2I1EN0ScKmzPBWxOXY McruO4czhFQiH5431NoTSBbnxDR96RLP2bq+oXtEkiys4neYaf/YsoWJZTJpQ5iMpOLQUte8 PQYxyWjYjoUoksA3i1C+LiUxxJz0OJu19QPHQrfFW7dOKW+4LBnjjBGBD1G50DZq7B6n1yJI w758oXNQFqe+uzvlcOUU1aTgBeUUtDspLHrAjN/DJ4/bNpXjh9wTcQadErVn53kZLw7Og82X tBPx/Qr966pCfaoi0tkDVeoahoTEGGN4twzHw1YS2wopPtjThDDTcfxjh6GUlnW2djM/QZgw KNkk7KCJ8LbS6KgTIfhGTla/jGegnc8v2SbHwAGU51hEfXEQO/0y6WwcH2AI8/a7QBCvQWIH 9aFKxp/SBwq4VmZ9J50vKnRpLhK3ZIVD0XsFoFN7yfNHTzIgBIaSOdU9AQPBJZd0cd9wxJ53 bE9m7zsfCGwICz/9EyVWPBsxMnJwcoQo1QgwY5cgoaWyrQHDT+WVhbRu9jAegiSovyi/5Lms mmgb3NPeQdipAkrJu4jTcU2N4Q01KYThn7BhHDeLNeYBHvRLg6yj/TdcMSO6mzgaFZc0I3UZ g7FHzTiQYEzl4v/NnI1eGDbq6rIu+/FAtD1Kb3NodWEgVGhpanNzZW4gKFBhY2thZ2Ugc2ln bmluZyBrZXkpIDxwYWNrYWdpbmdAbm94bG9naWMubmw+iQI8BBMBAgAmAhsDBQkJZgGABgsJ CAcDAgQVAggDBBYCAwECHgECF4AFAlGy74MACgkQ8ruWs/q6QmpJYA/+JQ4FcxMAlZHOx5+C yzepa5ZQnbrmzTr3bY+XPK/EjEfeToWIN/Y991r1fVxKtEklbsG/WAMLZYAtq+rkVRmEee1v icyHXGE6qr5hX+RRMVuISo0Ye+a/FqRlTrQwcqEzWdxJw2XZqqq3k62zVtb/XjVfU/Jqtzi7 mmWYYhremaTWeVkNbH1+LyDxuzhjjxiefmrx9/eLJ5Q+UWBpUM3McCZmnLHB/mRLvSxcZHQx aqQARS3SET8Pu1Lrw0tpEMBVe29WySKC+ChtwFJ1WarhZHqSxzdnghu/p6KVI4C5elvxo9YI 2rEhqcsouE9gihT5tRnGPmsOBpNvL0eXirCy70c0qh/iEM03yqKse7rGU2/eQGQOvDaoui8s 0ITNWqKMRFV0ZcGyUr1eyhdSM5Nr/JuwzOC0v0NChbnY0/c1/QFgwKD+Iz4cLOs0QekQCnQk nNoISTn+oi5p6OHB2mdEJb+vrNuVP8wFIW6qyC/6AWLeVt0G7lmFoJ29GLFMydOVx91wpqCd kfrmUW2PTlJ+BvNaNwMIHdh/eV5R8mAgTyK6CWYQOd3eayi5gNsR2kueNHZ4bHuFIBb66Zio 8VjSq19xPwGKFpo/EErVzgjBAohRAaFXxvL47oM+6ubbASlLi//4O/HcgFKpKR7prz5rG3KE FE7GQDeR1KCiHM2Tbt+5Ag0ETt51UwEQAMc8Kj4C5+9OSZGM0fKIHDgQ5/fL0HtoZ8gkhbDG YiJroQXZCLrKydL1rVAD4JRQiew7BU8eOF/NcEmZwj4okxMsDhIXQlMWRGnD8CzAt2Fit0yo irD8l4k3H5QshpISyefzuShdTmlWJp9tCmcr2TPacbe5SlF4LccNGDZ+7ENir1M/+iFtv8SF 03j3xchKbunyQrLm4lgJ+VvKpCpQOe92BB3PbTCnF8cf/D/xMbVHg/FNhNyKhwds52csD1RZ CryzfdHGbyT6TdS7ZPkwWcv5SR9PvlKARwDcJ5ekK66Bi4O1ljjOZadfLG4sxkxJ5D/HGcmS JvLJ9ayeKlFacIFfFw9yiNa+h7xw5SKbLoswLbhkl2hBcQcL04sk1Pcot42ef+e4/ry+9hQe TOy/k2kPM+o4tMVvXZ589bpdv23Uk/ngH5Abk80zqeETDERk7EiLf/cMUVysCUw25d/hbmb+ neaHNWDW4AsxqpUwGTWe3qtmbkPnmo0/3B6cBUDUcoz9JK0c8jI5UVZ3H0xRLCAb4m6csha6 2tUj+K9GPIjjWxarqvLndHh4YTsVqEm/1oqsINZ7O4UKdR8vgz8zkc/DAzKmNqpCcdBxPYWT UeyZul9YjOYCXTVsghIEWxfnjT+r1dhbZM2J/PrgCp8S83U7TWIt4SLeISNuml0q42JPABEB AAGJAiUEGAECAA8FAk7edVMCGwwFCQlmAYAACgkQ8ruWs/q6QmoaTg//R/taghcYz4fcpp3R ZLl05hVKZWDzVzBUjmbXKSVGPipcDhL6cwFygRVISTJ9rfJ6EwvcemGNS5rcmBWvrdVn+SfD GpI4w+CG/G2qNyF+IKXM8zuv+Gfm+DUJZR+ta0N2XY9JjMlumm2vyXo3T5kLqP9DFlubJ4bD IOtvdOB/lCwbb7ciFeRnBfId33oBakkcyGxnUs33/nQgMOr+HOwOwljjS5HqU7UUz0r/aw6G FfyYwOoWazWtK48uP0hUZncyeBUd8jPj7wnCEXaMznYqBRVeipGzxtd6V5rd2GpzXfHyO8F+ Jp1vqZRtzyC30nsKXDyinR0srIImHGXtSbsk1OyqVDYMkcR7Cg6AvHaNv2Bf5F/xvpgAR6MH BGRZxcmus0UbGv/gNzQD5MR1H91oHdKczI6OjS68ROtLod6Ajw5ek7o8sGVVLE9ZC3kUKt4y xolt2xAB0RJKn+2ltwm+5Jlg3cA1gSW2Te+jiqiRut+85dH3IpdVDp5JsaRXO0XYNCrUYtzQ tzu8uqD3XuGQb5UJcHmhT6bgy/083zOb2hjCID1mVbKWv0S9uXpIrO1RqQ/GFwWIMrhqwDv4 EgWY23/j1VNtaymejBU4Mb92GPwuZSoJANThglhR9y/UkLhd1l00bWxaYw4Fbimxd0u5nhfG NArB2Bd6ghti+1FLAQw= =1ZLB -----END PGP PUBLIC KEY BLOCK-----</description></item><item><title>Syndication Policy</title><link>https://adayinthelifeof.nl/syndication-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/syndication-policy/</guid><description>(with permission syndicated from Derick Rethans blog)
All content on this website is copyrighted. The blog entries are allowed to be syndicated provided that:
The content is not modified. This includes, but is not restricted to, the adding of links with or without JavaScript. The content is properly attributed. Attribution needs to include the name of the author (preferably with a link to my home page https://www.adayinthelifeof.nl) as well as a link to the original entry (preferably with the title of the article as link text).</description></item><item><title>Talk overview</title><link>https://adayinthelifeof.nl/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://adayinthelifeof.nl/overview/</guid><description>This is an overview of all talks, presentations and workshops recently presented or are scheduled. If you like me to present at your conference, meetup or company, drop me an email.
Presentation slides and comments on many of these talks can be found on my Joind.in page.
2018 Date Event Place Country Type Title 7-8 june Dutch PHP Conference Amsterdam Netherlands Talk Out of memory, or plenty to spare? 13 march AmersfoortPHP Amersfoort Netherlands Talk Kubernetes for non-believers 8 march 010PHP Rotterdam Netherlands Talk Kubernetes for non-believers 30 january DomCode Utrecht Netherlands Talk Kubernetes for non-believers 23 january PHPFRL Heerenveen Netherlands Talk Kubernetes for non-believers 2017 Date Event Place Country Type Title 14 december PHP Tilburg Tilburg Netherlands Talk Kubernetes for non-believers 30 november VechtdalDev Harderberg Netherlands Talk Kubernetes for non-believers 28 november Ode to Code Apeldoorn Netherlands Talk Kubernetes for non-believers 2 november DeventerPHP Deventer Netherlands Talk Kubernetes for non-believers 26-27 october ForumPHP Paris France Talk Theorems and paradoxes every developer should know 13 july 010PHP Rotterdam Netherlands Talk Theorems and paradoxes every developer should know 29 june - 1 july Dutch PHP Conference Amsterdam Netherlands Talk Theorems and paradoxes every developer should know 29 june - 1 july Dutch PHP Conference Amsterdam Netherlands Talk Keeping it in sync: achieving consensus in a distributed environment with Raft 30 march PHPBreda Breda Netherlands Talk Theorems and paradoxes every developer should know 15 febrary NijmegenPHP Nijmegen Netherlands Talk Theorems and paradoxes every developer should know 27 january PHPBenelux Antwerp Belgium Talk Python for PHP developers 2016 Date Event Place Country Type Title 29 november PHPBreda Breda Netherlands Talk TBD 14-18 november PHPWorld Washington D.</description></item></channel></rss>