This is a project that I've had sitting on my hard drive for almost a year now, and I just haven't gotten around to
finishing it.  I may come back to it again later, but in case I don't, here is the source code in case anyone wants to
play with it.
