Blog Archive


Symfony2: Implementing ACL rules in your Data Fixtures

Date: 04 Jul 2012
Tags: [ doctrine ]  [ PHP ]  [ proxy ]  [ symfony2

Doctrine’s DataFixtures are a great way to add test data to your application. It’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’s ACL layer. Since there isn’t a common way to do this, here is one way on how I implemented this


Using vagrant and puppet to setup your symfony2 environment

Date: 29 Jun 2012
Tags: [ puppet ]  [ symfony2 ]  [ vagrant

As you may now by now, I’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’s becoming for a lot of developers a daily practice. But even for open source projects like and are seeing the benefits of  having "development environment on the fly". New contributors don't have to spend a lot of time setting up their environment, but it'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.


DPC speaker's dummy guide into arduino

Date: 23 Jun 2012
Tags:

This year the DPC (and DMC) bought all speakers one of the coolest gifts I’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!


Using augeas (in PHP)

Date: 04 Jun 2012
Tags:

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’s explore..


301 vs 303

Date: 02 May 2012
Tags: [ http ]  [ rest ]  [ see other

During a presentation I gave yesterday about REST, there was a discussion about redirection (more detailed, a redirection from a queue to the actual resource during asynchronous operations). During this presentation (and blog-post), I’m using a 303 HTTP status code 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.


Conference retrospect

Date: 25 Apr 2012
Tags: [ conference season

So even in the middle of conference season, I’d like to update you with some of the awesome things I’ve seen and experienced over the last few weeks.


Bloom filters

Date: 09 Apr 2012
Tags:

In a span of two months or so, I’ve noticed a peak in implementation of bloom filters. Maybe the “if you got a hammer, everything looks like a nail” applies here, but statistically I’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’m continuously need to explain what they are, what their purpose is and why it’s a better solution than other ones. So let’s do an introduction on bloom filters.


PHPShout : a shoutcast streamer in PHP: Part 4

Date: 24 Mar 2012
Tags: [ C ]  [ extension ]  [ icecast ]  [ PHP ]  [ streaming

In the last post, we created a template extension for our shout class. Next up, we need to do the actual implementation.


PHPShout : a shoutcast streamer in PHP: Part 3

Date: 24 Mar 2012
Tags: [ C ]  [ extension ]  [ icecast ]  [ PHP ]  [ streaming

In the last post, we started with the implementation of the constructor and one method. Next up, let’s do a bunch more.


PHPShout : a shoutcast streamer in PHP: Part 2

Date: 24 Mar 2012
Tags: [ C ]  [ extension ]  [ icecast ]  [ PHP ]  [ streaming

In the last post, we created a template extension for our shout class. Next up, we need to do the actual implementation.


PHPShout : a shoutcast streamer in PHP: Part 1

Date: 24 Mar 2012
Tags: [ C ]  [ extension ]  [ icecast ]  [ PHP ]  [ streaming

To continue our journey in pointless, but nevertheless fun things to create, I’ve created a simple PHP extension that allows you stream music data to an IceCast server in pure PHP. For this I’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’ve created this extension, and off course, how you can use it.


PHP has moved to git!

Date: 19 Mar 2012
Tags:

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.


Ideas of march

Date: 15 Mar 2012
Tags:

Yes, I’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’t completely see myself in the situation that Chris 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’t think I’m falling in this category.


Why putting SSH on another port than 22 is bad idea

Date: 12 Mar 2012
Tags: [ ssh

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.
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).

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.


Freelancing: episode 1

Date: 04 Mar 2012
Tags: [ freelance

A few months ago, I decided to quit my current job and start with freelancing. Or actually, only the “quit my job” 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’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 :)


Setting up a development environment

Date: 04 Feb 2012
Tags:

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’ve setup such a development platform that allows you to quickly create new projects, and still maintain flexibility when you need it.


Pragmatic investment plan 2011-2012 : The update

Date: 02 Feb 2012
Tags:

A little bit less than one year ago (actually, 9 months ago), I’ve created a blogpost 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.


LaTeX: also useful for writing your documentation

Date: 22 Jan 2012
Tags:

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’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.


Apache's fallbackresource: your new .htaccess command

Date: 21 Jan 2012
Tags: [ apache ]  [ rewrite

So probably you are aware I’m currently exploring the deeps on the Apache source internals. One of the discoveries I’ve made was a (for me unknown) command in mod_dir that will make your life a little bit easier: fallbackresource. 


Why I don't accept PayPal anymore for payments

Date: 05 Jan 2012
Tags:

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. Short story: guy sells violin for 2500$, buyer says it’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’s back.. and then PayPal drove over it with a tank..