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.
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.
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.
Tags: [ ssh ]
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.
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 :)
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.
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.
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.
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.
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..
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 :)
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!
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? :-)
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.
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.
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
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!
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.
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!?
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!