The Pieces

From time to time I upload something, generally because I think it’s useful. I’ll try keep track of a couple of them here.

SA ID Number Generator

By far my most popular bit of code running around (~1000 weekly users), the SA ID Number Generator Chrome extension generates valid South African ID numbers, given the required birthdate, gender and resident / non-resident status. The associated article is here, and you can find it on the Chrome store here.

likeToSee – broken

This is broken because Ster Kinekor changed their site. It’s easy enough to fix, I just need to get to it. It’ll probably be a Telegram bot instead though.


This is the page of mine that I use the most, although likeToSee is really only of interest to South African visitors. Sorry other people – there are games below?

In any case, likeToSee was created because I wanted a computer minion. I mean, I was annoyed at missing out on getting tickets for Ster-Kinekor movies because of not knowing when they went on sale, so I put together an application that would monitor when a movie goes on sale, then immediately email you. Thanks to it, I’ve been the first person to grab tickets for every movie since, for whichever screening I’d like.

It’s free-to-use, so if you’d like to catch your movie, check it out here.



So named because it had a tendency to spam us in its early days, SpamBot is a Telegram bot currently (although built to support other bot frameworks, I haven’t had the time to integrate Facebook yet). SpamBot supports the following:

  • Take / repeat / delete notes, per conversation. For example,
  • Get the current (South African) lottery values.
  • Play Russian Roulette
  • Shake a magic 8-ball
  • Search for movies (using the likeToSee interface from above)

It’s primarily functionality I found useful – you can play with it by messaging @zaFoolBot on Twitter.

The Status Generation

The Status Generation generates new Facebook statuses for you, using a language model trained on your previous statuses. It can then optionally post them to Facebook for you, saving you the time of making something up yourself.

Status Generation is off-line at the moment, pending me deploying it with the proper credentials instead of my test credentials. Oops.

Asteroids Clone


We had an… unofficial HTML5 canvas competition a couple of years back, where we tried to made a new version of Asteroids. No names mentioned, but Ken got stuck on physics issues and Jeremy became obsessed with cutting exactly through the Asteroids with his ship’s laser, so mine was the only one that got anywhere near completion. You can play it for a couple of seconds here.

It’s a straight, raw canvas engine, with support for defining animated polygons then drawing them out on the screen. It’s not particularly efficient, and was written a long time ago, but it’s good enough for something like this. Trivia, this same engine ended up powering Entelect’s first R100k Challenge play-off software.

Tenso meme generator, aka the ZoomBox

ZoomboxWe had a need to make a Tenso meme (as it’s apparently called), and nothing else, so the ZoomBox was created. Upload and image, then click and drag several times on the part you’d like to zoom in on. Finally, you can convert it to an image. It’s incredibly basic, because it’s all we needed. Try it out here.



After trying out a couple of those typing games, and being relatively unimpressed with their difficulty level, I threw together TypedBug using the engine I had lying around from the Asteroids clone.

Although the engine was good enough for Asteroids, it starts to lag quite badly when enough broken bugs are flying around on the screen. It could be optimized by drawing each frame just one, saving it then drawing out the complete image, but I’ve just never gotten around to it. It’s on my todo list though. Waaaay down.

 Lunar Rander

Full write up is here, but have you ever dreamed of flying a lunar lander along the ZAR/USD exchange rate? Now you can!

awesome screenshot of stars and stuff