Archiving my youthful ignorance

My teenage years were for a large part spent online, in the Ubuntu community. This website, under changing domain names, covered most of this period. I published my first blog post on 25 December 2006, when I was still 13 years old. I have always been an eager participant in whatever debate I find, and during these years I did just that. Being still a child that did not even know how to write properly in English—or in Dutch, for that matter—not all of what I wrote stands the test of time, or was even outstanding at the time of publication. Some of it merely serves to chronicle mistakes I made.

Therefore, I have been tempted to remove everything before a certain cut-off date and that would probably be very helpful in making sure that I would not be haunted by these things in the future. However, I have decided not to do so. Instead, I have moved everything to a single category with this warning on top.

Whatever I have written before is kept for archiving purposes. My statistics show that certain posts still help people looking for information. I do not want to break links. I do want to remark, though, that whatever I wrote in the past does not necessarily reflect my current opinion. I have grown and I have changed. I hope that you will keep that in mind while reading the musings of a teenager.

White People Slap: unconscious discrimination

Ever since I’ve returned from China, I have been itching to leave again and go to any of the big three countries in East-Asia, be it Korea, Japan or China. It has also made me think about the views I hold and the way I perceive the world.

You see, I come from a small village of four-thousand souls in a part of the Frisian countryside. Our province basically consists only of small villages such as that and of the occasional town. In my village I could count the number of non-white families on one hand and because part of my family originally comes from a different province forty-five minutes away, even I already stood out a little bit.

Coming from such an undiverse background—my family can be traced back to the same areas in the North of the Netherlands for centuries—and from such an undiverse village, I feel that I have to be mindful of possible prejudices I might have. Of course it would be generalising (discrimination!) to say that countryside folk are all more inclined to bias and prejudice, but I do think that we are more prone to unconscious prejudice and even racism, because we are simply not used to dealing with people outside our own ethnic grouping. Also, whenever you as a westerner have enthusiasm for a certain non-western area, the danger of orientalism creeps in.

You can only improve yourself by learning and in that spirit I would like to write this blog post about an example that illustrates the mechanisms at play very well. I only heard about it in a YouTube video, but a quick Google search did not return much, so it must be somewhat lesser-known or very original. Anyway, I am talking about the so-called ‘white people slap’.

The Slap

Basically, it consists of a white person asking a compatriot or someone like that with a non-white background too detailed questions about that non-white background. An example could be someone asking a person of Chinese descent about his or her opinion about the influence of western missionaries in laying the foundations for the Taiping rebellion. It would be ridiculous to assume that every person of Chinese descent is also a China scholar versed in all eras.

Although questions like the one above might be a demonstration of well-intended enthusiasm or be intended as such, if you do not find yourself in a discussion that in this case would concern 19th century Chinese history, you did do something wrong. There are several problems here, besides the fact that you look a bit like a show-off.

First of all, when you ask someone a question, it’s usually because you consider the addressee to be someone knowledgable enough to help you out. If the person you are talking to is just a random member of the identity group you are asking a question about, you imply by asking the question anyway, that you assume that all people of background X are all the same in the sense that they know everything related to their background X. Simply being of background X means they know everything about it.

Secondly, by asking this question and taking the above implicit assumption, you demonstrate that you equate the person with his background X. However, you don’t know where the allegiances of the persons you are talking to lie. They might be immigrants or children of immigrants who relate much stronger to their current country. Even if they aren’t, you still oversimplify their relationship with their heritage.

The ‘white people slap’ is not overt racism. However, it is a tool for subtly making the receivers of the slap feel that they do not fully belong. It is a way of marking the in-group and the out-group, with the added bonus of someone from the in-group graciously expressing interest in the out-group. In a sense you rob the addressees of their individuality and force them to be part of a collective, without knowing if they are or if they even want to be part of the collective you are assigning them. It contains parts of the mechanisms that fed the Yellow Peril and other racist ideologies that target a certain group. Even if they consider themselves fully part of the collective, of background X, they still deserve to be addressed as individuals.

Therefore, no matter how enthusiastic you are about a certain country or how much you want to know the answer to your burning question, always ask yourself if you are asking it to the right person.


I know that writing about discrimination and racism is not easy and that you easily risk being hypocritical and contradiction your own claims. I have tried to avoid this. If you don’t agree, please assume good faith on my side and please let me know why you think I am wrong.

Vernieuwde website, nieuw nut

De nieuwe voorpagina.
De nieuwe voorpagina.

Een tijdje geleden beloofde ik dat ik mijn website zou vernieuwen. Het was inderdaad hoog tijd om er iets aan te doen; mijn blog was zowel qua uiterlijk als qua inhoud steeds meer aan het achterlopen.

De code is beschikbaar onder de GPLv2-licentie op GitHub: zie voor de details.

Ik hoop dat dit nu opgelost is, met deze opfrisbeurt. Tegelijkertijd heb ik enige inhoud die op oude pagina’s stond versimpeld en probeer ik de blog geschikt te maken voor de komende zomer. Komende vrijdag vertrek ik namelijk voor zes weken naar China om aldaar Mandarijn proberen te leren in de wonderschone stad Hangzhou, vlak bij Shanghai.

Omdat je in China nog steeds geen toegang hebt tot Facebook en Twitter, zal ik ook deze website gebruiken om mijn familie en andere geïnteresseerden op de hoogte te houden. Wil je graag foto’s zien van mij in een Chinese stad, hou deze site dan in de gaten!

Updating the website

It has been over a year since I’ve written anything and a lot has changed in the meantime. First of all, as those of you who follow me on Twitter might have noticed, I am no longer studying Computing Science, but have switched to International Relations and International Organization. I am now almost finished with my first year.

I am now active in an entirely different field and after I decided not to run for a second term during the recent elections for the Ubuntu Nederland Community Council, the only ICT related thing left in my life is my front-end developer job at Vevida Hosting. This will have consequences for my website. I am currently in the proces of updating my online process to better reflect the changes in my life. I will begin by a redesign of my website. Probably no reader is left—I’m wondering who I’m writing this for ;-)—but I will try to find a role for my blog.

Currently I am in the process of setting up a proper testing environment, using Git to manage my WordPress installation. I found a nice guide by one David Winter to help me. But more on the details later!

New affiliation: job as PHP Developer

Last week I started at Vevida, a hosting company, as part-time PHP Developer. It is my responsibility to look after the website. I’m looking forward to continuously improving it and making sure it serves our customers well.

Alongside working, I’m also still reading Computer Science. So I will be a lot busier from now on! Please keep that in mind when you try to contact me.

Draaiboek verkiezingen Ubuntu Nederland

Op verzoek van de gemeenschapsraad van Ubuntu Nederland heb ik een draaiboek geschreven voor de verkiezingen van een nieuwe gemeenschapsraad. Ik heb geprobeerd om te het proces zo duidelijk mogelijk te beschrijven. Als je nog vragen of opmerkingen hebt, reageer op dit bericht, of stuur een mailtje.

Download: Draaiboek verkiezingen Ubuntu Nederland

Just For Learning: an online classroom from Ubuntu Nederland

Since it is almost that time of the year again when the Ubuntu Developer Week will start, I would like to introduce you to nice tool developed by a team in the Dutch Ubuntu community: Just For Learning. Very much like the well-known desktop application, Lernid, the goal of Just For Learning is to make giving online workshops easier. Instead of having to learn how to connect to two IRC channels, they only have to visit this easy web application.

In my local community, Ubuntu Nederland, we have a team that occupies itself with just that: educating the community. The team of Ubuntu NL Mwanzo is very active in reaching out to newcomers to our LoCo. A part of their pursuits concerns giving workshops just like the Ubuntu Developer Week I mentioned earlier. They usually employed IRC to hold these sessions, following the familiar #*-classroom/#*-classroom-chat paradigm. However, they thought it could be done better and a group of interested people got to work.

The application, available in both English and Dutch, has three IRC-based chatrooms: one for the teacher, one to ask and answer questions and one for the general chatting. The fourth pane shows a schedule and displays links mentioned in the classroom. People who want to follow the course with their IRC client can choose to do so too. Teachers are authenticated using the Ubuntu SSO Service. Students only have to give a user name.

The Dutch instance is live on As you can see, the interface is very simple and easy to use. When you hold your event, all you need to do is provide a link to the site and your audience can join in from any browser on any device with internet.

If you or your team is interested in using this, or have any questions, please look at the project’s Launchpad page or leave a comment here. You may also try the #Ubuntu-nl-mwanzo IRC channel. The code is located in the Bazaar branch lp:justforlearning. The code is still not stable!

WordPress site design for amateurs: great results with child themes

In case I changed the theme again, this is the 'new' look.

A few months ago my site received a much needed overhaul. I updated the structure and looks and went crazy on Googly Web 2.0 mark-up stuff. Considering I am not a webdesigner, I am quite pleased with the result.

There are probably many more non-designers like me, also looking to build their own personalised WordPress site, so I thought I’d share my experiences. This post is aimed at amateurs who want to give their personal site an own look without too much hassle.

Don’t start from scratch

The previous theme was written entirely from scratch, using a few pieces of code copied from the default TwentyTen theme. What I learned from that enterprise is that it is very hard to do everything yourself, if you’re not a professional. Many rough ends will make your theme look less tidy and your lack of skill results in a theme that is harder to navigate and read.

So, I decided to go with an often forgotten feature of WordPress theme development: child themes. The TwentyTen is a very solid base to build upon, the way it presents texts is very easy on the eyes. By using a good theme as a starting point for your child theme, you have all its advantages. Because you’re creating a child theme and not forking TwentyTen directly, updates to the original theme will automatically benefit your theme as well.

The simple start

The only file you really need is the CSS file. Create a new directory with the slug name of your theme in wp-content/themes/ and add an empty file to it named style.css. I added the following header:

Theme Name: seh
Theme URI: http: //
Description: Theme for, child theme of Twenty Ten
Author: Sense Hofstede
Author URI: http: //
Template: twentyten
Version: 0.1.0
Tags: blue, white, threaded-comments, translation-ready, microformats,

@import url("../twentyten/style.css");

With a stylesheet containing just these few lines of code, you’ve already got a working theme. It does look quite similar to TwentyTen though. But now you can start working on adapting the style. Make sure that you place all your own CSS after the @import rule, so you will override existing entries in the stylesheet of TwentyTen!

If you only want to make a few adjustments, just adding the stylesheet will do the trick. Maybe all you want are a different font and some changes to the default colour palette. If you want more, however, you will have to add PHP files.

WordPress processes child themes like this: it first looks for files in the child theme’s directory, then in the directory of its parent theme. When you don’t create a custom header.php, your theme will continue to use the TwentyTen header. This rule, however, does not apply to the important functions.php file. Every file with that name present in both the child and parent theme will be loaded, the child theme’s first. This behaviour gives you a very powerful to adapt important parts of the theme without having to create new template files.

Playing with functions

If you look to the top of this blog post you will see that underneath the title the date and time this post was published are shown. The function responsible for this is defined in a specific way that allows overriding.

if ( ! function_exists( 'twentyten_posted_on' ) ) :
function twentyten_posted_on() {

If you write your own twentyten_posted_on() function in your child theme’s function.php, TwentyTen will not try to define it again, but instead use yours. You can change more parts of the theme without having to create your own template files.

Template files

But if you want to do more, you will have to dive deeper in the code. I wanted to change my header a lot from what TwentyTen offers, so I created my own header.php file and used that. As soon as I placed it in the child theme’s directory, it replaced the default header. This can be done to replace all PHP files you find in the parent theme’s directory.

Interesting template files you could consider replacing, are loop.php and loop-single.php, which are used everywhere to display a post or lists of posts and searchform.php, which is used to display the search form when available.

Here another advantage of child themes becomes clear: you can create template files for the most common pages and leave the rarely used ones to the parent theme. Also, if WordPress decides to add a new page, your theme will automatically support it as soon as the update arrives.

Important to notice

There are some things to keep in mind while working on the child theme. By default you would use bloginfo(‘template_directory’); to print the base path when embedding images. But when you want to use images in the directory of the child theme, you will have to use bloginfo(‘stylesheet_directory’); instead.

I wrote this post for the TwentyTen theme, but since then TwentyEleven has been published. Although it probably works just as well for the greatest part, there might be some minor differences. Also check the new template files like content-*.php.

How to flash your Samsung Galaxy S II Android phone on Ubuntu

Have you got one of those nifty Samsung Galaxy S II phones? Thanks to its Android operating system it works great together with Ubuntu out of the box. But what if you want to root it or use a custom MOD? For Windows there is ODIN to flash firmware, but what do you use on Ubuntu?

You use Benjamin Dobell’s Heimdall. It does not only work on Linux, Mac and Windows, but it is also open source. The code is available from GitHub.


When you want to install a custom MOD like CyanogenMod or MIUI, you need to have the ClockwordMod ROM Manager to install. That requires a rooted kernel anyway, so whether you just want to root your phone or do more, the initial steps are the same.

First you need to pick a rooted kernel. The XDA Developers forum forum for the I9100 is a good place to look. I always use the CF-Root kernel. It already includes ClockwordMod, so you don’t have to install that from the Android Market. Download the kernel here and install it. There are *.debs available. If you wish, you can use the frontend, but I have found the command line interface (CLI) to be more reliable.

Unpack the previously download kernel: you will end up with a file named ‘zImage’. That is your kernel.

Shut down your phone. Now start it in download mode by holding the home, volume down and power buttons down at the same time. Press volume up to confirm and connect your phone to your PC with its USB cable. Realise that your (extended) warranty is void once you’ve flashed.

Open your terminal of choice and navigate to the directory you unpacked the kernel image in.

Execute this command:

sudo heimdall flash --kernel zImage

After it is done, your phone will automatically reboot. Congratulations, your phone is now rooted!

If you want to use a custom ROM, now place the downloaded ROM archive on the phone’s storage, shut the phone down and launch it in recovery mode by pressing volume up and the home button during boot. Choose the ‘install from sd card’ option. Make sure you delete the Dalvik cache and user data before restarting, or your phone will be stuck in an endless boot loop!


If you want to restore your phone to its original state, you need the official firmware and a backup of your data you naturally made before starting. On the XDA Developers forum, a great person maintains a thread with a collection of official firmware.

Unpack the download archive, open a terminal and navigate to the resulting directory. There execute this command:

sudo heimdall flash --kernel zImage --cache cache.img --factoryfs factoryfs.img --hidden hidden.img --modem modem.bin --param param.lfs

Make sure you delete the Dalvik cache and user data before restarting, or your phone will be stuck in an endless boot loop!

  1. 12.2011

Details uitslag tussentijdse verkiezingen Ubuntu Nederland

Zoals beloofd nu wat getallen over de tussentijdse verkiezingen van Ubuntu Nederland. Het is leuk om te lezen, maar ook belangrijk voor het uitoefenen van controle over de gang van zaken!

De uitslag was als volgt:

  1. Sense Egbert Hofstede:    34 punten, 51% van het puntentotaal
  2. wandarooze:                        23 punten, 34% van het puntentotaal
  3. femke86:                                    9 punten, 13% van het puntentotaal

Van de 46 stemgerechtigden hebben in het totaal 22 mensen hun stem uitgebracht door punten te verdelen over de drie kandidaten. Dat is een opkomst van 47,8%.

Als je alles zelf nog eens na wilt kijken, kijk dan naar de (opgeschoonde) database dump van de stemwebsite.