tinypoker
I'm a big fan of Texas Hold'em poker. I find the game to be very interesting because it involves so much psychology and math. It combines luck and skill. Anyway, back when I was in university I came upon the website for the University of Alberta's Computer Poker Research Group. At the time, I was trying to find ways to get more people interested and active in the Bishop's University Computer Science Club. I figured that since many of the CS students played poker and could program, we could hold a poker bot programming competition. One summer when I wasn't working, I coded the server to be used for the competition. Its source code is below. I've also included some dev kits I made that contain protocol information and network code in multiple languages.
Download
Source Code Repository
php syslog viewer
I had to implement a central log server where I work and I wanted a few more features than existed in php-syslog-ng. I also needed something that could handle large volumes of log messages. It took me a few re-writes to get something that I was happy with, but php syslog viewer is really nice. It can deal with many log messages very well. I've made a full blown project out of it. Check out the project page here.
Download
Source Code Repository
miniblog
Back in the day, I was a wordpress user. One day I got a little plugin-happy and tried almost every wordpress plugin that I could find. I eventually tried miniblog and I liked it. Unfortunately, the original author stopped maintaining it. I picked up the project where he left off in July 2005 and started making some changes. I made some releases and people used the plugin. After switching away from wordpress I abandoned the project. Around March 2006, Joe took over maintainership. The last version I released is available below.
Download
Source Code Repository
cupsmon
cupsmon is an ncurses front-end for the Common UNIX Printing System's lpq command. cupsmon was written by me for the Computer Science Club at Bishop's University to continually display the status of the print queue on a monitor attached to the print server in the Software Engineering Lab. A screen shot is available here.
Download
Source Code Repository
ioccc
An obfuscated C program I wrote as part of The International Obfuscated C Code Contest.
Download
Source Code Repository
qcache
As a Gentoo developer I was interested in finding packages that had certain properties (stable on one arch while unstable on another, keywords dropped for certain arches, etc). The only thing available at the time to do this, that I was aware of, was a python script called imlate. It was very slow, was a memory hog, and had a limited feature set. I decided to rewrite it in C. My final product was at least 6 times faster and used much less memory. In fact, the memory usage of my C version of imlate stayed fairly constant no matter how many ebuilds there were. I was asked if I would be willing to add it to portage-utils, so I did. I've added many features to it since that first release. Since my latest work hasn't been released yet I made a snapshot of the current state of the portage-utils CVS for you do download. See qcache.c for my work, the rest of portage-utils is done by some very talented programmers.
Download
libproccpuinfo
One thing that annoys me about the Linux kernel is that the format of /proc/cpuinfo varies from architecture to architecture and sometimes between kernel versions. Many programmers don't know this and only write for x86/amd64 users. After writing a number of patches to correct cpu detection on alpha systems I decided to write a library that would correctly read cpuinfo files.
Download
bagelview
In the computer vision course I took at Bishop's University we had to write programs to manipulate pXm (ppm, pbm, pgm, ...) files. I wanted a light image viewer that I could use to quickly look at pXm files, so I wrote one using glut.
Download
Source Code Repository
des
des is a program that I implemented as part of an extra credit assignment for a cryptography course I took at Bishop's University. It implements the Data Encryption Standard (DES). I presented DES and the program to the class. A copy of the slides I made can be found here. Note, DES is a very weak form of encryption. With a specialized computer system, which can be designed and produced for under $250,000 US, the key space can be exhausted in under 3 days. Since the encryption scheme is so weak, this program should not be used to encrypt anything. It is only posted here for historical and educational purposes.
