A very funny comic thanks to XKCD Thanks to XKCD for the comic.

Software

With Keegan Smith, I've developed Mubar, an intelligent web-based feed reader in Python (we eventually decided there were more exciting things in the world than writing feed-reader UIs) and a volumetric (ray-casting) renderer in C++.

I've hacked up a Firefox-friendly face to the UCT exam timetables website at http://people.cs.uct.ac.za/~rbkmax001/ttable.html in PHP, and a python script which translates URLs into a form which redirects them through UCT Libraries' EZProxy (for reading subscription-only online journals, etc).

I enjoy designing typefaces in my spare time, and I wrote FfHg to make that easier. It adds version-control commands to FontForge, using Mercurial as the backend (though it should be easy to switch to another backend).

If you've got an interesting project, give me a shout. I like developing with other people.

Mathematics

I like maths. My third-year maths project is on the P vs. NP problem; I proved that a certain class of ambiguous crosswords is NP-complete (and that a slightly restricted version is in P). The TeX source is also available.

Blog

I have a blog. I'm not quite sure what it's about. So far I've written about the Turing-completeness of the language used in the 2007 ICFP, about doing the SA Computer Olympiad in Haskell, a brief tutorial on IO in Haskell, and the optimal play in the word game ‘Superghost’ (as far as I can tell, I'm the first person to do this; with the Ubuntu British English wordlist, the first player wins).

Games

If are not yet seeing falling tetrominoes when you close your eyes, download the sources for the curses/unix tetrinet client. The command line is tetrinet -fancy <your_nick> dreamcoat.che.uct.ac.za. It is now installed in TSL.

The contents of this page shall not in any way be taken to condone or encourage the playing of tetrinet.

I also sometimes enjoy Teeworlds.

Languages

Gayle guessed that I speak twenty languages. I don't think so, but let's count.

  1. English
  2. Afrikaans
  3. Esperanto
That's it in natural languages. Programming languages?
  1. Python
  2. Haskell
  3. C++
  4. Java
  5. C
  6. (Visual|Quick|Spectrum) Basic
  7. Common Lisp
Only ten. But I can say hello (world) in...
  1. Xhosa
  2. Hebrew
  3. Korean
  4. Italian
  5. French
  6. German
  7. Latin
  8. x86 assembler
  9. MIPS assembler
  10. Brainfuck
  11. HQ9+ (but it's trivial)

I also love writing systems (both systems of writing and the writing of systems): I can read Roman (obviously), Greek, Hangeul (used to write Korean); I can just about read (pointed) Hebrew; I can stumble my way through Cyrillic; and I know a few hanzi/kanji/hanja characters.

RomanAbracadabra
GreekΑβρακαδαβρα
Hangeul압으라카다브라
Hebrewאָבְּרֳדַדָבְּרַ
CyrillicАбракадабра

Geek

I might as well just come out with it... I'm a geek:

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/M d- s+: a--- C++ UL++ P- L++ E W++ N+ o- K- w--
O- M V- PS++ PE- Y+ PGP- t 5 X R tv+ b++ DI+ D
G e h! r++ y+
------END GEEK CODE BLOCK------