My repo is here: http://github.com/cdave1
Link: Blog post
A WYSIWIG interface builder for OpenGL and OpenGLES games. No code available yet.
Link: Unavailable – git server link down
Sound System is a C++ sound library for the iPhone OS and OSX, designed primarily for games. The library provides a simple interface for loading and playing a lot of sounds concurrently, via OpenAL and AVAudioPlayer. Supported formats: .wav, .caf, .aiff, .mp3, .m4p, aac.
My long term plan with this library is to make a completely free alternative to FMOD. Very early days…
Link: http://github.com/cdave1/ftgles
FTGLES is a C++ library for rendering truetype and opentype fonts on mobile operating systems with OpenGL ES 1.1. It’s a port of FTGL.
The code includes several demo iPhone applications, and has support for iOS 4.
Link: http://github.com/cdave1/multitouchscreen
Multi Touch Screen is an Objective-c++ extension to the EAGLView. It was adapted from TouchScreen in the Oolong Engine. Its main task is to store Cocoa multi touch input in a buffer with the expectation that some other thread will repeatedly collect data from the buffer. This is mainly useful for apps that want to synchronize user input with rendering.
Link: www.cointoy.com
Coin Toy is an iPhone app that shows money being earned in real time, in the form of coins falling down the screen. There are several versions currently out on the app store.
Link: csin.c
Sine tables vs. math.h sine functions in c. Linux only.
Link: DistGameOfLife.tar.gz
Conway’s Game-of-Life, but with a play area that can distributed across a grid of computers. The program creates a set of agents on as many machines as you specify and then runs portions of the game’s “playing area” on each machine. The agents on each machine co-ordinate between themselves to ensure the playing area is updated correctly and consistently. Written on java, with an architecture that is provably free from deadlock and starvation. Tested on a network running over one hundred machines, which is probably at the limit of the program’s usefulness.
Link: algorithms.py
10 simple algorithms written in python, with an emphasis on recursion.
Link: www.starterbase.com Unavailable
Starterbase was a backend-as-a-service product. I wrote it in PHP and python, with the data aspect served by a distributed network of MySQL servers. Here’s a couple of screenshots of the app in action.
Link: qs.prolog
Just a really compact quicksort function written in Prolog.
Link: Source code
DVD/Games/CD sharing service that never really got off the ground. It uses the Amazon API. You could build up your collection and then share them with other people.
Screenshot:
Link: Source code
A web application for accessing websites remotely via a command line interface. For example, you could type search -g «query»
to search google or del -rss «tag»
to get the urls of a tag at del.icio.us as an rss feed. Allowed you to build your own commands and use other’s. Just a fun thing that took a couple of nights.
Link: www.newstoday.co.nz, www.sportnow.co.nz
A digg-like news website aimed at New Zealanders. Mainly a way to experiment with artificial intelligence stuff behind the scenes (Bayes filters and Boltzmann machines). Mostly written in python with a php front end, using Totara.
Link: www.moviehouse.co.nz
Moviehouse was a DVD retail business I started in 2003 and ran on the side for a few years. Allowed me to amass a nice DVD collection and a car. Sold 2005.
Link: DiskSim.tar.gz
A hard disk head simulator for two seeking schemas, SST and CSCAN. Written in Java, and mainly used to compare the two schemas under different conditions.
Link: Source code
A tetris clone written in C++ using directx.
Link: Source code, Executable
Modified the tetris above to use 3D blocks. Though the code is obviously quite a lot different.
Link: Source
Totara is a framework I wrote to allow me to quickly put php-based websites together. It had all the things you need to do it – user management, an ORM layer, eCommerce libraries, security and more. It went through 4 versions over the years, and I used it to power a lot of the sites listed here. It’s been superseded by other web-app frameworks that now have significant contributors in wider programmer community. I missed the boat a little bit. Lesson learned: when you have something good that you won’t be able to make money off directly, then you should open source it as soon as possible.
Link: Source code
Sokoban game (interface code was written by someone else), with a solver using various search algorithms and heuristics to solve the game without hogging all of your CPU.
Link: Source code listing
A compact naive Bayes classifier written in python with some training and testing files.
Link: Source code listing
A python program that can take classification information (in the source code, hepatitis symptoms) and then create a decision tree to predict the outcome of future scenarios.
Link: Source code listing
Nachos is a bunch of header files from the University of California that provide a blueprint for creating an operating system from scratch. I introduced concurrency control structures, multi-threading, user-level programs (in c), and a file system using the same inode structure used by unix-based operating systems. The code is in C++ and only appears to run under BSD.
Link: Source code listing
A Haskell implementation of a polymorphic queue and stack, as well as breadth first and depth first search algorithm implementations for searching through graphs. Oh yeah, both search algorithms use the stack and queue.
Not too exciting unless you’re an algorithms geek, but I guess it shows how compact Haskell code is. Haskell is awesome.
Link: Source code listing. Requires jgap
Some sample programs for generating classification programs using jgap, which uses the technique of genetic programming to generate the programs. It’s a very interesting field and something I want to really explore further at some point. My sample programs are only designed for simple regression analysis and AB classification tasks.
Link: Source code listing
A perceptron that is used for classification of a set of images of noughts and crosses. The perceptron must be initially trained to get the weightings correct before it can be used to classify unseen data – see the README in the .tar.gz for more.
Link: Source code
A python program that generates a random N puzzle and then solves it, showing the cycles, states and steps used to find the solution. Uses a number of common heuristics and search algorithms.
Link: Source code listing
A java program that mimics grep. I didn’t get far with it – it doesn’t have any of the posix bells and whistles and it can’t be used to check files. It does basic regex parsing well enough, however.
Link: Source code
Vendory was an eCommerce platform that was intended for SMEs. I had big plans for it, but I decided to abandon the project when I realised that I wasn’t really interested in selling eCommerce software (which is really quite hard in New Zealand). Written in php – the source code in the above tar file is missing some eye candy.
Link: Source code
A ridiculous get-rich-quick scheme that failed miserably. You could buy keywords on the website for $100, and once you did you would “own” that keyword forever. We attempted to piggyback on the tagging craze that was happening at the time, as well as the soccer world cup (hence the name, tagworldcup).
Link: Source code listing
For language geeks only. This is a prolog interpreter for register machine programs. It will take a register machine program listing, interpret it, and then return the result in the second register as per convention.
Link: Source code listing
A very short python program implementing the k-nearest-neighbour classification algorithm.
WebDepot was a rapid website design and development company.
Link: Source code
Online DVD Rental concept along the lines of Netflix. I couldn't get the financials to work, so I shut it down after a successful but unprofitable beta.
Link: Image
Unitutor was a tutor-student matching business a friend and I ran for two years while at university. It did okay. I don’t have the source code anymore.
Link: Website Archive
Started in my first year of varsity in 1999. Ran pretty well, but apparently I was using the name of a semi-famous magazine in the USA. Their lawyers fedexed an overnight cease-and-desist letter to me. I didn’t know any better, so I shut it down…
A payroll program I wrote in Java at uni. Included its own webserver because I didn’t have the hardware to run java server pages at the time. I couldn’t find a working version or any screenshots, but here is some surprisingly well-commented sample code and a hilarious .plan file