These are a few of my projects and random experiments from over the years. I enjoy experimenting with new languages and coding up short-cuts for common tasks.
This list is presently and forever incomplete.

This was one of my first little projects in Java. The world didn’t need another `oclock`, but I made it anyway. It was a fun introduction to Java’s graphical elements.
There’s one hidden “feature”: if you pass the command line argument “test,” the hands will move quickly in order to demonstrate their functionality. I wanted to test how it was going to work without watching it for 12 hours.
If you check out the source, you may notice that I crammed everything into [a single class file](portfolio/AClock/AClock.class). I did this to make it easy to share this program without having to mess with learning how to creating a jar (one thing at a time!).

So I stumbled across a program called Baby Banger. My kids enjoyed playing with it. But it only runs on the Mac. Right now, in the midst of our transition to Texas and search for work, the Mac is packed away in storage. So what to do? It sounded like a perfect second project for my nascent Java skills.
The source is included in the jar file.

I had an interview with a small company in San Antonio. They wanted someone to help them transition their legacy DB system (including GUI) to something more standard and current: MySQL + PHP for reporting and Java for POS. Great! At that point I had never touched MySQL and hadn’t done much beyond the clock (above) in Java. So after the interview, I bought a book on MySQL, built a PHP application for a friend, and got to work on this project: DBExplorer.
DBExplorer has two screens. The first asks for a username, password and URL to a database. It also asks one to select a protocol for connecting to the DB, but the only protocol presently available is MySQL.
Then, for the second screen, the program connects to the DB, finds out everything it can about the structure of the contents of that DB, and displays a nice tree of databases, tables and fields.
The source is included in the jar file.

This is the the script I used to build this website. I took a page template produced for me by Amy Warren1 and meshed it into a ruby script. Why would I do such a crazy thing?
| Extension | Command |
|---|---|
| html | cat |
| php | php |
| rhtml | eruby |
| rb | ruby |
| pl | perl |
| txt | redcloth |
| stdin | redcloth |
Well, the ruby script expects as input filenames (or globs) of the general form `05_A_Page_Title.txt`. The number represents the order that page should be found in the menus. The title of the page will be parsed out by changing the underscores to spaces. And the extension is used to determine how to process the file.
The output of the comand chosen above will be saved to an all-lowercase name without the number and with an html extension (e.g., `apagetitle.html`). In the menus, the title (with spaces and capitals letters) will show on the web-page, pointing to the .html file that was generated. If, however, the filename points not to a file but to a directory, the directory will be untouched. The title will link to that directory which, it is assumed, is being handled seperately.
1 Design goodness credit for this website goes to Amy. Design badness credit goes to me for distorting her original design!