Blog Archive


Top 10 Apache Top Level Projects

Date: 22 May 2011
Tags: [ Apache

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.


How cool is my job?

Date: 25 Apr 2011
Tags: [ cool stuff

How cool is my job? A description of a normal days work…


The GNU Build tools, part 1

Date: 24 Apr 2011
Tags: [ autotools ]  [ gnu ]  [ make

So there you are, you want to install some tool or application that didn’t come in a package, or you want to use the latest version. You download the tarball (*.tar.gz file), untar it, do a ./configure && make &&  make install and all is well.. But what exactly is it that you are doing? Why must unix users compile everything by themselves? Wouldn’t life be much easier if we all could download a binary and run it, just like on close source OS’es? Are binaries that evil that we must compile everything ourselves manually so we know what we are installing. Well, yes and no…


Pragmatic Investment Plan - may 2011-2012

Date: 21 Apr 2011
Tags: [ pip

During some reading up on Dean Wilson’s blog, I stumbled upon his Pragmatic Investment Plans. Even though we have something similar in our company (called a POP “Persoonlijk Ontwikkel Plan”, which is more or less the same thing), I want to separate a “business” and “personal” 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.


Varnish in non-compiler environments

Date: 18 Apr 2011
Tags: [ compiler ]  [ varnish

Last weekend I’ve visited the Loadays conference where I sat in the presentation of Thijs Feryn’s “Varnish in action”. 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’ve just found the answer..


binomial coefficients

Date: 10 Apr 2011
Tags: [ coefficients ]  [ math ]  [ pascals triangle

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.

Now I do enjoy math. I’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…x267x270, which is a VERY large number) but I knew something was not right. Turns out: it wasn’t right. The problem was mixing up combinations and permutations, which I knew there was a big difference, but I didn’t knew the math involved anymore..


Back to basics: virtual memory

Date: 09 Apr 2011
Tags: [ b2b ]  [ memory ]  [ virtual

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 “more memory” does not always equals better performance. A small introduction and history in memory usage.


Dwarf fortress: crossing vi with the Matrix

Date: 24 Mar 2011
Tags: [ dwarffortress ]  [ game

What do you get when you cross the vi editor with Keanu Reeve’s “The Matrix”? A cool game called dwarf fortress. A game that is awesome in many MANY ways. I’m not much of a gamer. As a matter of fact, lot of programmers aren’t and are more interested in actually creating games than playing them. However, dwarf fortress is an exception to that rule but beware: it’s not your average game. Everything but…


Speaking at Loadays and PhpBenelux Meetup

Date: 17 Mar 2011
Tags: [ conferences ]  [ speaking ]  [ Talks

It’s going to be a few busy weeks for me concerning speaking at conferences and meetups. Not only will I be speaking at the March edition of the phpBenelux meetup, hosted at our Enrise office, but also at the Linux Open Administrator days in Antwerp, Belgium. Here I will be hosting 2 different talks:


Speaking on the 4developers conference in Poland

Date: 08 Mar 2011
Tags: [ Android ]  [ conference ]  [ java ]  [ joindin

More good news: I’ve been invited to speak at the 4developers conference on april 4th in warschau, Poland. This time, my talk will be about the joind.in android application I’ve written, the connectivity to 3rd party API’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.


Public key encryption on php|architect

Date: 01 Mar 2011
Tags: [ magazine ]  [ php|a

Yesterday the February edition of php|architect came out. I always look forward upon the new release every month, but even more so this month since it features an article about “Public Key Encryption” I’ve written for php|a. It’s more or less a written version of my public key authentication 101 talk 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’s are welcome.


Back to basics: TCP

Date: 20 Feb 2011
Tags: [ b2b ]  [ tcp

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’s another edition of the back-to-basics series.


Having fun with Arduino

Date: 09 Feb 2011
Tags: [ arduino ]  [ C ]  [ electronics

So yesterday I’ve finally received my Arduino Mega. If you know me, you know I’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’ve made - and programmed -  a very simple lcd-counter consisting of 3 times a  4-digit 7-segment lcd’s.


memcache internals

Date: 06 Feb 2011
Tags: [ memcache

Memcache is a pretty well-known system inside the web-community and for a good reason. It’s fast, flexible, lightweight and it looks like installing memcache on your servers automatically increases your website speed tenfold or more. Ok, so that’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’re out of luck. This post isn’t about starting with memcache. We are going to pop the trunk and see what’s under the hood.. What exactly makes memcache so magical??


Password hashing and salting

Date: 02 Feb 2011
Tags: [ hash ]  [ md5 ]  [ nacl ]  [ salt ]  [ sha ]  [ sodiumchloride

The thing everybody (should) know is that when you want to secure passwords in - let’s say - a database, you have to hash to them. It’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 “it’s because it makes the password longer and more secure”. Even though it is true in effect that using a salt increases the overall security of your hashes BUT it’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….


Make me a sandwich. Ok!

Date: 01 Feb 2011
Tags: [ root ]  [ sandwich ]  [ sudo

I have to admit it: grew up with unix “the wrong way”. 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’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… 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..


Talking at the PHP Benelux 2011

Date: 23 Jan 2011
Tags: [ conference ]  [ PHP ]  [ talk

As you might know, the PHPBenelux Conference 2011 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 Sed & Awk. Not necessarily a talk you would expect on a PHP congress, but on the other hand, maybe it’s just precisely a talk you might expect. Not only will I talk about WHAT you can do with sed & awk, but also why and when you should - or shouldn’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.

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… 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’re there, ready to do all your complex stuff developers always like to automate…


Using syslog for your php applications

Date: 12 Jan 2011
Tags: [ logging ]  [ PHP ]  [ syslog

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?


PHP 5.4: RegexIterator::getRegex()

Date: 06 Jan 2011
Tags: [ core ]  [ patch ]  [ PHP ]  [ regexiterator ]  [ spl

Recently, my colleague Jeroen van Dijk needed to extend (or better yet: override) the accept()* method for the RegexIterator. Turns out this wasn’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 regexiterator::getregex() method.


12 tips for securing your linux systems

Date: 05 Jan 2011
Tags: [ linux ]  [ security

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’ve seen systems that have been setup ranging from “somebody with sufficient knowledge” to “this-was-setup-by-the-janitor” and everything in between. So, if you are a “programmer who knows a bit about Linux because you’re using Ubuntu”, but you have no real idea on how to SECURELY setup a system, here are some tips.