Software Projects
I’ve always had an interest in graphic software, not to mention hardware drivers for the peripherals we would buy – though I thought it was amusing that manufacturers would produce and sell computer hardware before they even had software that could satisfactorily drive them. I’ve written drivers for 9-track mag-tape units, pen plotters, monitors, and others, and have even sold code to them to package with their products as well.
Anyway, I’ve written lots of stuff for engineers to design and analyze lots of flavors of drawings and models, including civil engineering and surveying maps and terrain models for earthwork estimating, and mechanical engineering solid modeling for visualization, documentation, analysis, and manufacturing.
All the while, thinking to myself, wouldn’t it be cool to do this or that. Finally, one day I just decided to put all that practical knowledge to work and do a little impractical “this and that” of my own.
Since I was doing it for fun, I wasn’t going to constrain myself by packaged utilities – heck, why should I let others have all the fun – so I wrote everything I could on my own. Like rather than use a database or something – even a free one – I would use something portable that I could easily fiddle with; so most of my hobby projects use XML as the data structure because I can easily edit and manipulate it myself, and I can use its maturity to structure and order my data. At first I thought the I/O would be too messy to fiddle with, but latter I decided that I don’t need to worry about the huge variety of stuff I could do with the data, all I wanted to do was read and write it – so I even wrote my own drivers as well.
Also, (again) since I wasn’t constrained by boring stuff like budgets and deadlines, I took my leisurely time writing helper tools as well. Each new project I started on I would look over my last project and ask myself, “What can I springboard off of, and what should I abandon?” So, although each project was pleasing accomplishment of its own, each subsequent project was another giant leap forward. But because they were all just for fun, I’m not going to go back and rewrite anything (just for the fun of it) but rather just look back on them as learning and maturing exercises.
I think one of the tragedies of society is that we are reluctant to abandon a substantial financial and intellectual investment in order to break out of a constraining paradigm.
Ok, enough of my soap-box evangelism. My point is that I make a great effort to cast “normal” thinking aside, and try the impractical, just for the totally wacky adventure of it.
I’ve used several Software Development Environments over time. Check them out for my thoughts on their strengths and features.
My first big project was a thing I call the Car Walker, which is like a go-kart with legs. The fun thing was adding all kinds of controls besides just boring walking.
I was loving the 3-D Modeling tools in Java, and once while at a ball game watching the half-time girls pitch souvenir T-shirts into the crowd, I thought of my next wacky software project – a wind-up-and-pitch wrapped-up T-shirt Flinger. Once conceived it sort of took on a life of it’s own.
The uncanny precision and dexterity of a person juggling has always been an unreachable dream of mine. As much as I’ve studied and practiced, I’ve just never been able to master the skill of juggling, so I wrote a program to do it instead. My Juggler not only plays with the balls in the air, the rest of the program accessories was a lot of fun to lay out as well.
After while, I decided that I’d lost my focus and rather than strip the Juggler down, I created a new Juggle Boy that was more focused on the art and the articulate details of the motion.
Reaching back to one of my very old fantasies, my next project was to design a mechanical contraption that walked like a horse, but you peddled like a bike. My Bike Walker was more of a CAD-like program that a robotic simulator, as my previous projects were… cool notwithstanding…