Blog Archive

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

Date: 11 Feb 2010
Tags: [ cybos ]  [ operatingsystem ]  [ tutorial

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.

CybOS - A tutorial OS

Date: 10 Feb 2010
Tags: [ cybos ]  [ operatingsystem ]  [ tutorial

Somewhere in 1998 or even earlier, I started my own little project in creating a - functional - Operating System from scratch. Not a linux clone and not a MS-DOS wannabe. Just  a simple OS that is functional in such that some tools, games etc could actually work, not caring about Posix compliance, fancy graphics or all hardware support you can think  of..

So, today, 12 years later, where are we?

Cardinality & Selectivity

Date: 07 Feb 2010
Tags: [ MySQL

Cardinality and selectivity are two keywords that are very important when dealing with optimization in MySQL queries and indexes. This article will go a bit in depth on both terms and tries to let you understand their usefulness…

Handling binary data in PHP with pack() and unpack()

Date: 14 Jan 2010
Tags: [ PHP ]  [ pack ]  [ unpack

Nowadays most lowlevel functionality like reading or writing graphics are taken care of 3rd party libraries and that’s ok. It’s way to complicated to do things right and you probably want to focus on outputting or sending a PNG instead of construction one from scratch. While reading and writing these kind of binary data was normally done in languages like C or even assembler, most higher level languages still have these capabilities and yes, even PHP… Meet pack() and unpack().

Your email address is invalid. Please enter a valid address.

Date: 28 Dec 2009
Tags: [ email ]  [ validation

Error: Your email address is invalid.

Every time I see those or similar words when I fill out a registration form I start to cry a little. It’s not my email address that is invalid, it’s the websites email validation functionality and it’s a great and effective way to loose visitors and/or customers quickly.

TinyMCE Keyword plugin

Date: 27 Dec 2009
Tags: [ keyword ]  [ opensource ]  [ plugin ]  [ TinyMCE

TinyMCE is truly a remarkable editor. It’s the one I’m typing in now.. it’s the one we use for letting our e-commerce customers use for editing pages and it’s the one we use in our SiteManager5 CMS. You receive a fully down-gradable wysiwyg javascript editor which for non-technical users is very intuitive and thus easy to use and the best part: it’s completely customizable through their plugin-system.

Covering indices

Date: 22 Dec 2009
Tags: [ covering ]  [ index ]  [ MySQL

It’s almost to easy to use a SELECT * FROM query in your code. First of all, you instantly get all the fields from your database so you don’t have to worry about changing your queries when you decide to use other fields (in case you don’t use a DAL). However, there are some drawbacks on a SELECT * method,.. the most famous one: it takes more time to retrieve all fields instead of the fields you actually use.. but that’s NOT the most important reason why you should not SELECT * FROM queries..

The main reason? Covering indices…


Date: 21 Dec 2009

A lot of people are telling me to write some posts because I apparently have interesting stuff to say once in a while. This is the place I have picked out to do so. Since I don’t have a single area of expertise (or one could say, I’m an expert in ALL area’s :)), this will probably be a place of a lot of stuff you will find interesting, and a lot of things you don’t. Don’t worry, you are not alone :)

Big O notation

Date: 21 Dec 2009
Tags: [ Big-O ]  [ PHP

Normally you would develop against a test-database. It probably contains about 10 people so you can do your programming and testing.. Once it’s done and QA’d, it will go live and people start to visit the site. After a year or so,.. the site is too slow. Adding more db servers is of no use, your system administrator is spending his holiday inside the my.cnf’s and after dumping a gazzilion GB’s of extra memory to the systems doesn’t help at all…  Sounds like it’s the code that’s falling behind.. it cannot cope sorting or handling user lists of 40.000 people, or arrays with more than a million items and even simple validation functions are way to slow.. why? what just happened?