Objective: Do something amazing
A standard résumé is available on request, but the work I share below better demonstrates my capabilities. The following are projects in various stages of completion that I have worked on independently for fun and out of curiosity.
Compass and straightedge geometry
The blog entry below is a lengthy treatise on using classical Greek geometry to build regular pentagons in a variety of ways. At the bottom of the page hides the single work I am most proud of: an engine to animate compass and straightedge constructions, complete with a driver language (create a circle with point a as the center and point b as the radius, find the points where this circle and line intersect, etc.). I feel that this could be turned into a valuable classroom tool, and I am hopeful that I will eventually persuade the Khan Academy project to take an interest in it.
While trying to get Khan's attention with my geometry tool, I set about learning their "Exercises" framework. I turned a template meant to be used with setting points on a number line into a working soroban, with randomly generated questions that you solve by moving beads. Interestingly, the Khan framework did not adopt HTML5 canvases, instead sticking with SVG, presumably to keep compatible with users confined to Internet Explorer kiosks at the local library. Even though I am quite the fan of HTML5, ultimately I think this was a good choice.
Basic addition demo
Prime number machine
An HTML5 demonstration of finding prime numbers and prime factors, not through math, but as the side-effect of a mechanical process.
An iPhone web-app I wrote for my stepdaughter. At the time I completed it, it seemed to be the only spirograph application to draw and animate the actual gears as you draw.
An iPhone web-app I wrote for my wife. This one was for tracking calcium and protein in her diet when she was pregnant with our daughter Adelaide. Despite its functionality, it is mainly a quick hack due to timeline problems - my wife was currently pregnant, and needed something immediately that wasn't on the market. It contains a hand-rolled calendar, uses JSON and localStorage to store data in lieu of a SQLite database (a concept I hadn't tackled yet), and a few other hurried design decisions. I always intended to go back and clean the app up a little, but Adelaide was born and, well, there you have it.
Another iPhone web-app for my wife. This was a replacement for the built-in Notes app, which broke after a particularly bad sync with iTunes. (This one does use SQLite, which I figured out shortly after writing Lentil.)
A java applet that solves Sudoku boards. The user fills in the board as shown in the book or newspaper it comes from, clicks solve, and the applet attempts to fill in the remaining cells.
My wife found a shockwave applet that contained images of dresses she wanted to make, but couldn't find an easy way to export the images. I downloaded the raw applet and looked at the binary in a hex editor, and saw that it had embedded jpeg data. So I wrote a program that takes an arbitrary binary blob and looks for image content in it, allowing the user to zoom and export each individual image.
Creating an Archimedean spiral app
This was an experiment with creating a tutorial on using Netbeans to create a simple Java Swing application, with a little backstory on why I wanted to create a nested spiral image for my wife. TLDR: Because it would make a cool tattoo.
An overview of the simplicity of bezier curves, and how Java uses them to draw circles
The math behind converting color images to greyscale, and a proposed improvement to the built-in Java greyscale math using the modern "709" standard. TLDR version: The method for turning each pixel's color into a brightness variable can be traced all the way back to Newton. The sample image is of my stepdaughter Scout in a bamboo play enclosure at the Columbus Zoo.
This is a text editor I wrote in 2001 that uses the main body of an HTML document as the editor and captures various keyboard and mouse events instead of using a standard input field like a textarea. It only worked in Internet Explorer, and has long since been deprecated due to the availability of better, free tools.
In July of 2012, NPR's "Science Friday" posted an image similar to the one above and asked Facebook users to vote on how many squares (of any size) they could find in it. A friend of mine challenged me to write a program to solve it. What I ended up with doesn't parse raw image data, but has a template to declare where lines are on a grid, and then iterates through the line intersections looking for squares.
A quick HTML5 page I wrote for my stepdaughter Scout when she was on vacation in San Diego with her natural father. It's a secret code using pairs of dice to stand for individual letters and numbers. I used it to generate a message (basically "hey, how's vacation? We miss you!") that I printed out and mailed to her.
This pair of blog entries is the result of some independent research I did on RSA encryption and Elgamal key exchange. I use encryption every day at work, but felt like I was hindered by not being familiar with the underlying math.
The next pair are works in progress with only screenshots, with no
longwinded descriptive blog entries or links to source code.
An attempt at a barcode parser. I have the key concepts down, but parsing blurry images turns out to be a bit of a bear. I abandoned this and don't have any real plans to return to it; I was just curious how barcodes worked.
An early build of something I DO intend to return to. This will allow my wife, knitting enthusiast, to quickly design and modify knitting patterns. Fleshed out, this could fill a niche in the market, as the popular knitting applications all seem difficult to use and expensive.
An early build of an 80s-style RPG. This uses the Ultima IV icon set, which is apparently royalty-free now. I have most of the battle system working, but the hard part of creating a good storyline and adding all the NPCs and dialog has yet to be started.
The next few items are general programming expositions.
A tutorial I wrote during my first year at AEP to help my fellow developers, perl-averse all, to get a better handle on some basic structures and expressiveness of the language. I still refer back to it occasionally for concepts I don't use often (to treat an anonymous function as an array, do you wrap it in parentheses or brackets? how does that flip-flop range operator work again?)
Functions in shell scripts, scope creep
Three table SQL Joins
The remaining links below are philosophical, not technical.Volunteer work:
Teaching Excel to elementary school students
Mentoring a teenaged boy
What a good vacation looks like (plus why I love Vermont)
A good day coaching my daughter's soccer team
Games, video or otherwise