This is how I got my waterproof jacket to smell fresh without losing the waterproofing, after it was infused with campfire smoke on the Cape Point overnight trail. [2 minutes]
This is my solution to make Apache HTTP Server log the actual remote client IP address from behind the Amazon Elastic Load Balancer (ELB), with a little help from SetEnvIf. [2 minutes]
This is my solution for modifying the Bash prompt (PS1) to show the branch name. It works for any working directory in a Git, Mercurial, Subversion or Bazaar branch. [2 minutes]
Presenting a faster way to grow large copper sulphate crystals! The pictured 4cm crystal took me 5 days by cooling, instead of the 3-6 weeks it would take by evaporation. [4 minute read]
These are my tips for minimizing the data usage of your PC. It's handy in cases where you have to tether your mobile phone but mobile data is expensive. [3 minutes]
What follows is my review and advice on the 2010 Panasonic Lumix DMC-ZS5 "Super-Zoom" camera that I recently bought in Cape Town recently. Also known as DMC-TZ8 in Asia/Europe. [5 minutes]
Here is how to sync files from Windows to Linux with rsync. Specifically, using cwRsync server (a Cygwin + rsync package) on the Windows server, and rsnapshot on the Linux backup server. [3 minutes]
Here are my tips on learning the Colemak keyboard layout to reduce finger joint pain. From my experience I also compare it to the regular QWERTY layout. [3 minutes]
A controversial post about bad code that I observed on an unnamed Python project, in which I describe outdated idioms, Java-style code, and bad programming practices. [3 minutes]
Here I share my optimized autoexec.cfg configuration for Quake 3. Compared to the defaults it offers several clear advantages for LAN gaming. [2 minutes]