Although most of the programming work I've done is owned by the companies I've worked for. There are some personal projects that I've released.
I am a firm believer in Larry Wall's three programming virtues:
In the interest of laziness, I spend a lot of time writing little tools to make my life easier. Here's a list of the various software projects that I've written and placed on the web. Hopefully some of them will solve a problem you have or help on one of your projects.
- The ThinAir pseudo-random number generator class library is a large collection of PRNGs coded as classes with a common interface. This code does not use all of the state-of-the-art C++ features. Mostly because no compiler I had supported those features at the time the code was written.
- Web Site Description Library
- The Web Site Description Language (WSDL) was the subject of my master's thesis in computer science. Unfortunately, about the time I submitted my thesis to be published, a group of companies released a new standard. The Web Services Description Language (WSDL) serves a completely different purpose and has nothing to do with this code.
- This is an automatic regression test system designed for use in testing any system that uses the HTTP request/response protocol.
- This script helps automate signing up for work positions for events hosted by voluteer organizations.
- This Perl script started as a simple exercise to learn the LWP module. It has grown into a relatively powerful tool for testing and interacting with web servers.
- The Win32 Synchronization Classes
- This is a set of C++ classes I wrote to wrap the Win32 synchronization primitives. The code includes both thin wrappers and higher level tools built using the primitives.
- PilotFORTH Code
- This is a large collection of random library code I wrote for the PilotFORTH development system.
- QuickDecision is a small PalmOS application that uses the built in pseudo-random number generator to help you make decisions. The program was built partly as a joke and partly as an excuse to learn to program for the PalmOS.
Scalable Vector Graphics (SVG) is an XML-based vector image format. It has been incorporated into HTML 5, and is supported by all modern browsers.
3D Printing Designs
In 2011, I got my first 3D printer. Although I spent quite a bit of time printing other people's designs, I soon began making my own. My tool of choice has been OpenSCAD.
- Thingiverse Designs
- Designs on github
- Calligraphy Ink Stirrer My wife is a calligrapher among her many skills. For some of her commissions, she mixes her own ink. She had been stirring the ink in small containers with a toothpick. We talked about a design with little wings that would do a better job. This was the result.