Testing encoders for PHP

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? Read more…

Aug 14th, 2010 | Filed under Development, PHP
Tags: ,

Creating a traceroute program in PHP

Today i was reading upon this wonderful article 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..

Read more…

Jul 30th, 2010 | Filed under PHP

Minimizing cache stampedes

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’s not present and will try to generate it for you. Read more…

Jul 29th, 2010 | Filed under Development, PHP

Moving from windows to mac

Even though most of my work is done on Linux systems, my laptop and home-systems are installed with Microsoft’s Windows. Even though I don’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’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’s stable enough to say I can leave my systems running for weeks without any problems. Suffice to say, i’m happy enough.. at least, I though i was.. until 2 weeks ago…

Read more…

Jul 24th, 2010 | Filed under Misc
Tags:

Passing the LPI-1 and LPI-2 exams

I’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’ve used Linux professionally since before 1998, I still wasn’t as easy I though it would be (but then again, you shouldn’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 :) Read more…

Jun 30th, 2010 | Filed under Server & Admin

Bit manipulation in PHP

Although you probably never need it as much as a C-programmer would, it’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)

Read more…

Jun 2nd, 2010 | Filed under PHP

Deflating the universe

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: “hi, how r u? w r u? cya, xxx”.  Stuff like that.

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.

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’s called lossless compression since no data is lost during the compression/decompression. Other compression methods don’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′s, for most people this is not an issue. The images are perfect enough for normal usage, and the audio quality of mp3′s are also good enough for the average use (although I know a few persons who want to kill me for saying this :)).

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.

Read more…

Jun 2nd, 2010 | Filed under CybOS, Development

Suits v. Techies.. the neverending battle..

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…

Both departments have conflicting interests that 9 out of 10 times the developer will loose.. After all: at the end of the month, it’s the customer who pays the developer salary (and sales’ big bonuses).  So, 2 departments, 2 different interests.  Normally, the project manager is the person that sits between sales (or management) and development. It’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.

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?

Read more…

Apr 19th, 2010 | Filed under Development
Tags:

Joind.in Android Mobile App

When you visit PHP conferences nowadays, you’ll notice a lot of talk about the Joind.in website (http://joind.in). It’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’s a very good way for speakers to learn and perfect their presentations. It’s also a pretty awesome site (who’s code is available on github!) and new features are added around the clock.

A few weeks ago, somebody launched the Iphone application in which you can add comments the easy way. Since I do not own an Iphone (nor ipad, ipod, macbook, or come to think of it, anything from Apple) it’s pretty useless for me. But I do have a Android powered phone so created a android version for Joind.In.

Suffice to say, it’s been running for a few weeks now, so I cleaned up the source :), and open sourced it so it’s for everybody to download at github to keep in the spirit of the original site.

I’ve also published it onto the Android Market, so you can download it by scanning this QR code (from your mobile off course) or by just clicking this link

(download the Joind.in Android App from the Android Market)

Read more…

Apr 11th, 2010 | Filed under Android, Development

CybOS – Part 1 : In the beginning, there was 0x7C00

Welcome to the first part of CybOS. We talk a bit about the bootsector. From part 2 on, everything is “kernel based”, 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’s going on.

Read more…

Feb 11th, 2010 | Filed under CybOS, Development
Tags: