My Programming Interests

restore from wayback machine: March16/09
added the teaching board: Aug30/11

Demo board for teaching

I am scheduled to teach a programming course at Carleton this fall, and I am designing a MTS2 CPU board to give to each student. Comments are welcome. This board is an Open Source Hardware project. There are also some notes on the orginal version of this project: MTS

Python

Currently, my favourite language; get more done in less time. Here's a couple of utilities.

Mat
A little python script which reads a directory (default=the current dir) and sorts the contents by extension, then prints a summary to stdout. Try it; there's all kinds of uses. Seperates code from backup files, images from html, pngs from bmps.
Pretty Align
Another python app to modify source code to align small clusters of statements. It affects member declarations, member initializers and short assignment statements. It makes a backup of all files before it touches them. Works on Java, C/C++ and Python source, although it's blind to comments and strings, so it may clobber those if they fit the parser rules. Note: Ver 1.1 handles files that have mixed space/tab indents.
Both of these are GNU. To install, drop them into an PATH directory (like /usr/local/bin) and "chmod a+x filename". Help for both is "filename --help"

Linux

Graphics Programming

Here's a little write-up on Bezier curves in 2D

Integer ratio programming

Here's a web page to help you calculate integer ratios, used to create frations without using floating point. Also used in the design of digital phase locked loops.

Pilot --- old old old

Compression

JTAG

STL

Flash