Who are you, and what do you do?
Today I like to think of myself as doing "heavy lifting" and as a technically competent creative. I try to aspire to be playful, artistic and innovative. I'm committed to open source for good work. My own site at http://hook.org I hope reflects an integrity and commitment that side-steps banal concerns of say making dollars and the like. My small group of maker peers at http://blog.makerlab.org also aspire to the same aesthetic. The fundamental quest and interest is new work, new ideas and innovation.
In my day job I am CTO at Meedan. We are a non-profit funded by Rockerfeller, MacArthur and IBM and our business is doing real time English-Arabic translation to bridge cultural barriers and to help burgeoning social networks straddle language boundaries.
Personally I grew up programming and spent most of my career developing video games such as Dragon's Lair. Making video games is a young man's sport. It is intense, long hours, highly multi-disciplinary, in environments where failing to ship on time would bankrupt the company. This has given me strong technical skills. In some senses I stand in a place that is the future and I look back at the ongoing web 2.0 phenomena. I see how the web is moving towards the place where I and other game developers already were years ago. Practices like "many participant", "agile development", "customer driven design" were internalized a long time ago in the (unfortunately hermetic) video game developer community.
What hardware do you use?
There are three loves I have:
1) The most important hardware to me are my servers. I have several machines at home in Canada, and two machines at Hurricane Electric in California and with Meedan, my employer, we have a rack up here in Portland. We're using all these machines for a variety of purposes; to aggregate content, to analyze content and to present a number of user facing applications. We also have some hardware in the cloud at EC2 for our FoodGenome project. I'm extremely pleased with all these machines and they haven't let me down yet.
2) Second to that is my MacBook Pro. I have nothing but love for this machine.
3) Third is my iPhone - again a spectacular device that has literally changed my life.
And what software?
This is a long one.
I have a soft spot for OpenBSD in part due to the strong philosophical stance and resultant code quality and integrity that my friends there enforce. I was influenced heavily here by Theo Deraadt who runs the project and who lived in Calgary as well as me at the time. In particular tools like PF and OpenSSH make me very happy. Of course everybody knows about these but SSH deserves special recognition because it's the backbone of the Internet.
For my desktop I've switched to Apple OS X (grudgingly at the prodding of my girlfriend) but have had a completely superior experience and it has changed the way I work. Everything "just works" from having a good UNIX shell to having MacPorts to having somewhat esoteric tools like Merb, OpenCV and MapServer install from source first try seamlessly.
In hands-on-work I reach for Ruby. I find it a succinct and expressive grammar. What surprises me is that I didn't expect it to become my language of choice. Like many developers I've used just about everything - Python, Lua, C++, PHP, Java, C# - but now naturally find myself reaching for and preferring Ruby best.
In terms of development frameworks I feel Merb is best because it consolidates the model in one place and allows different database handlers.
Of course there are a smattering of applications we all use every day. Most people have about 7 different apps that they care to deal with. For me these are Twitter (which is largely replacing flickr, delicious and the like) and Gmail, and Firefox, Colloquy, Skitch, Processing and Xcode. I've tended to start using Xcode for editing source code in general although historically I've just used vi.
What would be your dream setup?
At one point I did want an interactive stand up gestural display data-wall similar to "Minority Report".
But today I value my mobility more than power. What I want is an Augmented Reality Display that lets me both see the data in the world and annotate it and manipulate it. For example one can imagine something like the following link.
Despite my passion for software I've been very interested in being outdoors and blending better my physical presence with the real world. If I could I'd prefer to just spend all my time outdoors; doing work such as annotating the real world with appropriate meta-data.
As far as actual development of new software - the tools are getting much better - I can't really complain; but there's definitely a gap between my childhood expectation of how I would express work and how I do so now. I imagined that by the time I grew up we'd be able to have Lego languages where anybody could plug things together and have a kind of intuitive understanding of the expression of work. I did think that everybody would know how to program and that programming would be easy - since programming IS easy it just isn't very readable and the grammars are still unusually pedantic. But I did feel services like Yahoo Pipes are starting to move closer to where I imagine the ultimate interfaces would be.