Making sense of the world

I’ve noticed that when I’m walking about, sort of thinking idly, I find myself asking “How?” How was that building constructed? How come that sewer is there? OK, I guess that one is really a why question. So I suppose the underlying curiosity is really about the mechanism of the world.

Sure, you can’t reduce the world to a mechanism, a machine. Its full of humans, so you can’t really make any kind of useful predictions. But there are definitely systems in place and some are more influential than others. Some of those systems, while not predictable machines, do display tendencies and trends. Learning them is one of the little intellectual side-journeys I’ve been immersing myself in lately.

If you want to play along, here’s what I’m into at the moment:

  • Economics (probably macroeconomics in particular)
  • Cognitive science
  • Linguistics

For the former, I encourage you to listen to The Economist Podcast (iTunes) and read the weekly edition when you get the opportunity. They also seem to have moved away from using a pay-wall, so check out the articles on The Economist website as well.

If you’re wondering why on earth economics might be interesting, then check out Neal Stephenson’s Baroque Cycle. I never thought I’d wish I understood macroeconomics and financial instruments so that I could figure out what’s going on in a book by a cyberpunk author. But then I read the Baroque Cycle and I did. Its no coincidence the last of the cycle is titled The System of the World and here I am, seeking a system that illuminates the world.

For cognitive science and linguistics, I’m still just getting started. I read Introducing Linguistics this summer and its great. It seems its part of a series where they match a subject matter expert with a graphic designer. The result is easily read but highly informative. Its very much in the same style as Kathy Sierra.

If you’re ahead of me here and know a good bit on any of these subjects, feel free to drop some suggestions on what I should read next!

I want to look at your workspace

Briefly: I heart looking at the workspaces of others. One of the uniquely great things about going to conferences is shoulder-surfing other people to see how they work. So when I figure out how I can do that from the comfort of home, I get a little excited.

OK, I admit it. I have the tendencies of a “workflow voyeur”. And you can too!

Start with a recent discovery, Office Snapshots. Proceed to check out Garrett Murray’s new desk setup, or even his old setup. Rinse and repeat with the Unclutterer Flickr Group. In no time flat, you too can ogle and lust after the workspaces of others.

Here’s an obscenely out-of-date snap of my desktop at home:

Molly + Twitter

If you’re really awesome, you’ll snap some pics of your workspace and link to them in the comments here.

Like the sky or the horizon?

Is your knowledge as a programmer tall like they sky or broad like the horizon?

Greg Knauss says the programmer is like the sky, the manager is like the horizon. From Wide vs. Deep:

So here’s my theory: Managers must work shallow and wide, while programmers must work narrow and deep. People who are naturally tuned to one particular method of work will not only enjoy their jobs a lot more, but be better at them. I’m a deep guy, I should be doing deep work.

I didn’t say it was a particularly insightful theory.

Counter-point: your must prune your knowledge so that it is deep and broad. I spoke to this in my OSCON presentation The Holistic Programmer. From my description:

The Holistic Programmer is about how programmers should approach take a global view on the stack of abstractions in which they work and also in the spectrum of communications between people and machines.

In it I talk of my approach to problem solving. My method is largely predicated on knowing a little bit about a whole lot. Given that, I can usually frame a problem pretty quickly and get on to making the first attempt at solving it. I might get lucky and actually frame the problem correctly. Even if I don’t, at least now I’ve got an idea of what the problem really is and I can take another, more informed stab. So on this, Greg Knauss and I disagree.

My main point is that programmers need to take a holistic approach these days, knowing things above and below them in the application or system stack in which they are expert. This is the deep part that Greg mentions. Its not enough to just speak Rails, Django, Linux or Flash. You have to understand the bits that are higher level and the bits that are lower level than what you are working on. Otherwise you’re looking at an incomplete picture.

There’s a notion going around of the “specializing generalists” or some such. I think its a great way to go. Given the rapid rate of change software development sees, you have to stay nimble. The ability to quickly adapt to new technologies and approaches separates the mediocre programmers from the great programmers.

I’ll leave the penultimate word to The Dude:

The Dude encourages you to think holisticically

If you’re yearning for more, check out the above presentation for a deeper dive and some book recommendations.

Epic songs, pick a favorite

Prepare to be polled.

For the purposes of this survey, we’ll take an “epic song” as one with musically distinct beginnings and ends. Said song shall not be a grouping of songs, like on Abbey Road or Born to Run. In other words, its only one song on the track listing. Here’s some of the best epic songs that popped into my head:

  • “Bohemian Rhapsody”
  • “Hey Jude”
  • “Stairway to Heaven”
  • “November Rain”

Your mission is to choose one of the above, or write in with your own favorite. If you write in, please do try and provide a link so that we can listen in.

Now, get those opinions flowing. Here, I’ll start. “Bohemian Rhapsody” takes the cake.

The rise of the micro-app

A few weeks ago, Dan Cederholm, of Simple Bits fame, launched Foamee. Foamee lets you track who you owe beers to. The twist? You manage your beer debt via Twitter. Its a small little app. It only does one thing. Its got a fantastic entry-point. In other words, its really cool.

Erik Kastner reminded me of his app Band Named this week. It finally clicked why its cool this time. Games like Guitar Hero III and Rock Band want you to name your ethereal band. Band Named is a great place to post ideas for said names. The neat thing about Erik’s app is that you can sign in via OpenID (+1) and then fetch your avatar from Flickr or Twitter (FTW). The entry of new band names is easy. And its fun!

I hope this turns into a trend-buzz-meme thing. The world needs more apps that aim to just help you out now and then, not ones that want to become your task management, knowledge capture workflow mega-gizmo-jobby. Better yet, apps that are loosely coupled via infrastructure you’re already using (Flickr, Twitter, OpenID, etc.) taste great.

Plus, these little efforts needn’t result in all-pain, no gain. Dan probably can’t support himself on it, but I bet any money made from Foamee merch will come in handy. Likewise, there are lots of things you could do with something like Band Named, though I don’t know if Erik’s going to take it that direction.

A call to action

So, call to action: hatch up some idea. Make sure its a little crazy. If pitching it to a VC would get you laughed out of the room, you’re on the right track. If you think the commenters on TechCrunch would skewer you, you’re getting even warmer. Think Uncov would just laugh and point? You’ve probably hit the jackpot. Now: go out, build the sucker and figure out how to have fun with it.

I’ll leave you with this: its all about getting to the point where you’re making dough and having fun.

Anthropomorphized Gems

OK, I couldn’t make it to RubyConf this year. Big frownie face. But, I’m not letting that stop me from imposing my sense of humor on the world. I present to you this year’s helping of absurdity, “Anthropomorphized Gems”!

Gems Anthropomorphized from Adam Keys on Vimeo

So this is a little tribute to the gems I frequently use and enjoy. Thanks to the authors of the featured Gems and to all those who have released a Gem of any sort. Ruby has gone from a great language with a so-so library to a great language with a great library in relatively short order. Those making their Gems available deserve applause for making that happen.

h3. Administrivia

* In HD, where available! This is my first foray into uploading video in HD. It takes a while, but the results are pretty nice to look at. On the other hand, none of my G4s seem to handle HD that well.
* I’m trying Vimeo even though I can’t really make heads or tails of their TOS. If you can read TOS-ese, let me know if it allows them to sell my stuff to NBC, Fox, etc. without me getting a penny. That would be unfortunate.
* For the record, I did go eat pizza after I finished putting this together.

Your target feature

Many a moon ago I twittered:

Just had the surreal idea of a “Celebrity Fit Club” for little projects. “Your target feature for next week is tagging.”

Courtney’s affection for VH1’s celeb-sploitation isn’t without its perks. Before Celebrity Fit Club went all sensational, it had some really optimistic moments. Seeing a person, celebrity or not, start to conquer their struggles with exercise and/or eating is really inspirational.

After each person weighs in to see how much they lost in a given week, the panel of judges gives them a weight-loss goal. Usually they are pretty small numbers, fairly easily achieved. Every once in a while they stretch it and challenge the contestant. Its never an unhealthy goal.

I think every project could benefit from this sort of goal setting. In particular, the part about stringing together some small achievable goals and bridging them with larger, riskier goals sounds particularly helpful. See also what the WuFoo guys said about The Importance of Deadlines:

We’ve recently gone back to a system with long-term and short-term deadlines, and we’ve already seen improvements in both focus and productivity.

I’ve yet to intentionally practice this. But, looking back at what I’ve accomplished over the past few months, I think some of the times I felt “in the groove” were after putting together a few small releases following a much bigger one. Any pithy phrase that gets me closer to said groove is one I’m willing to take to heart.

Rejiggering meets build versus buy

You’re here! That means I’ve managed to convert my site (back) over to WordPress. In the interest of making progress, I had to cut some corners. Currently, that manifests itself as taking my old weblogs Man vs. Machine and Punchline Labs offline while I figure out how to rejigger the content into WordPress. But if I’ve broken something, please tell me!

Wait, don’t stop reading! This isn’t “Yet Another Boy-Have-I-Been-Busy But Now I Promise To Post More” post!

The decision to switch (back) to WordPress is a somewhat bittersweet one. I’d originally switched away to Typo, but that didn’t work out too well. On the one hand, Typo went a little sideways on me, requiring me to poke the database a little before I could post. On the other hand, running a big Rails app like Typo on shared hosting like TextDrive isn’t a recipe for reliability. So a change was necessary.

Continue reading “Rejiggering meets build versus buy”

Application Design with Garrett Dimon

Did you see Garrett Dimon’s slides from WebJam Session ’07? ZOMG you should!

What impresses me most is how much Garrett’s accomplished in designing his issue tracker without much use of intense graphics. He’s got a few icons here and there, but most of his design is based on color and typography. As someone who is horrible at drawing, it gives me hope that I could some day build cool UIs.