I once declared that life was “about projects” after a friend posted his new successes on one involving large slabs of rock. My girlfriend at the time looked upon me with mild horror, as though I had uttered something completely alien to her understanding of the world. Life is about people, she told me, something I would later remind myself not to forget. (This is why it’s good for geeks to have girlfriends.)
Well… yes, of course it’s about people.. but once you get all that figured out, what it’s really about is projects. Or at least, it is for me, and people like me. I’m happier when making progress on a project of some kind then when simply consuming and giving all my creative time in the service of work.
“Projects” took on a substantially different meaning for me after the great recession kicked off in full swing in 2008. Recently laid off, I faced the sobering prognosis that I was not on top of my game professionally; that I was lacking in refinement in it, and that I was likely to experience better professional success and and personal satisfaction if I was *better* at what I did. My work was a chore at the time, and my hobbies often involved the restoration of old computer equipment to near-pristine running states, a hobby I was realizing was both as expensive as it was useless.
Around the same time a dear friend tried to get me hooked on World of Warcraft. He sat me down and described the game in intricate detail, but what I remember was the sense that WoW was remarkably similar in its thought process as object oriented programming. If that was the case, it stood to reason that time outside of work would be better spent honing my programming craft instead of honing my gaming skills. This would seem particularly useful during a nasty economic downturn. The trick was to make programming as rewarding, or similarly rewarding as some found gaming to be.
Programming on its own makes for boring study. One may as well be studying the intricacies of grammar. Understanding how a tool works is only interesting if one can imagine what the tool can be used to create.
An obsolete hardware hobby was combined with software. Old, decommissioned monitors, computers and laptops were hung up on my walls in the idea that LCD monitors would one day replace most if not all printed mediums. The “art project” was based on the belief that imagery is inherently more beautiful when displayed in a backlit, additive color medium (AKA the flatscreen monitor) vs. the front-lit, subtractive medium (AKA paper and ink and… light bulbs. )
The vision for the project far exceeded my capabilities at the time. I was naive about many things, and I was too focused on the end goal. Development was thus a frustrating exercise toward something I had neither the skill or time to reach. But the exercise did teach me about many crucial aspects of what I do on a day to day basis professionally, and the lessons carried into the next two projects that *did* see the light of day.
Today, the goal is to maintain a rhythm such that prototyping is merely a way of life, much like working, biking and friend grooming are. There is no true end goal in sight, insofar that prototyping work is being done, and things are learned. It is done for its own sake, much like exercise and it’s manifestation in biking.
There are two projects in active development today:
The arduino train controller project, in which model trains are controlled by wifi-enabled motor controllers that read track RFID tags to determine movement.
The current iteration can run a lego 4.5V locomotive off a 9V cellphone battery. It has stable control via telnet, stable control via track RFID tags, and stable programming of said RFID tags. There is an experimental, unstable SignalR web controller running on a windows 7 development laptop and is the current edge of development as of this entry.
What’s really being learned here is the internet of things. The internet is naturally suited to controlling and interfacing with physical things in addition to rendering images on screens. For the web developers out there, the “View” in MVC in this case is the I/O device at the end instead of a web browser. Instead of serializing form data, we’re serializing sensor data and responding accordingly.
The second project is version 2 of the original digital signage project, and is what is intended to be a “proper” implementation of the concept. The original V1 project had a number of shortcomings, but two projects and a framework advancement later, there is better experience and proper capability now available to make the concept work properly.
“Winter in New York” is something I’ve been dreading if not fearing from the descriptions of the locals, but something that’s also been said is that it is the perfect time to spend indoors with one’s projects. Some learn musical instruments, some write books, and some like me.. ultimately still play with their toys. 😀