Blog Archive

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

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

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

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

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

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][1]. 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

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][1]: 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..

Android: PuzzleChess game

Date: 29 Dec 2011

I like to play with unfamiliar stuff. Not that I’ve never written an Android or java application, but this one is a bit different. It’s a simple game I’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 :)

Facter: ZendServer

Date: 28 Dec 2011

When you are dealing with Zend Server on a puppetized machine you can run into trouble: Zend Server uses it’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!

php 5.4 + htrouter: Your personal Apache 2.2 compatible server

Date: 22 Dec 2011
Tags: [ htrouter ]  [ php5.4 ]  [ webserver

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’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’t be misused as a production server? Well, we really can’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 “The Enabler”. 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’ve created a (simple) tool that will create the new Dr Jeckyl web-server into a Mr Hyde… What could possibly go wrong? :-)

New company website is online

Date: 13 Dec 2011

Ok, so it’s not he most beautiful website you will ever see. Nor will it be the one with the most content. But it’s my company website, and I’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’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.

Book review: Confessions of a public speaker

Date: 12 Dec 2011

I’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’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 & tricks for me as a (wannabe) speaker.

SPL: Using the iteratorAggregate interface

Date: 04 Dec 2011
Tags: [ iterators ]  [ PHP ]  [ spl

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’s just too hard? In this post I will try to explain a bit more about the “iteratorAggregate” interface. Together with its more famous brother Iterator, they are currently the two only implementations of the Traversable interface, which is needed for objects so they can be used within a standard foreach() loop. But why and when should we use the iteratorAggregate?

Compatible code: starting with symfony2

Date: 01 Dec 2011

Because learning new stuff is just one of those things I need to do on regular basis, I’ve decided to dive into another framework than the ones I’m used to. Having dealt with mostly Zend Framework 1 on a daily basis, and CodeIgniter which is the one I deal with a lot inside the Joind.In project I’d like to contribute to, I’ve decided to give another framework a chance. A framework that is on the shortlist for a long time now: Symfony 2. The tl;dr: winning!

Goodbye Enrise, Hello world

Date: 07 Nov 2011

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’ve made in the past. The Enrise door is about to be closed and I’m ready on opening another door. Excited and sad times truly run in parallel.

Don't make your database a slave to your ORM

Date: 29 Oct 2011
Tags: [ databases ]  [ orm

ORM’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!?

Netiquette gone wild: how not to use social media and email

Date: 28 Oct 2011
Tags: [ netiquette

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 “not following netiquette”  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’t we go back to those basics again? Pinkies up!