Have you noticed how much easier it is to remember directions in your own city? Think about the last time your printer ran out of ink and you had to jot directions to a restaurant on a post-it. Compare that to writing out directions from a hotel to a restaurant in an unfamiliar city.
It's a lot easier on familiar turf. Why? Near home, the directions are anchored by points of familiarity in your mind. You already know how to get to someplace nearby, so you can use that as a ready point of reference. Closer to home, you get to use all kinds of reference points: your work, familiar street names, the park you go to, etc. Because that's the way your brain works. In your brain, everything is a relative reference.
This is equally true if you are communicating directions to someone, rather than just writing them down for yourself. The better you know the person, the easier it is: "go like you're headed to work, but turn left just before that Thai restaurant you like." Not only are the directions concise, they are simple enough that you probably don't need to write them down. Communicating is a lot easier when there are shared experiences, reference points, and a sense of "knowing what the other person knows."
There are lessons in here somewhere for those of us who create software. After all, we spend a lot of time with our computer trying to find things, either on the computer (photos, spreadsheets) or with the computer (a book on Amazon, that page you Delicious'd -- or did you mark it in Google Reader?). I often think of this when I'm using Delicious. I know I bookmarked something, but wading through the tag cloud to find it again takes too long. I usually end up finding it with a few Google searches. When the first search fails, there's usually something in those first results which triggers my memory on the keywords that will retrieve it.
Can software infer what is familiar terrain for us, and provide navigation relative to that? Can Google or Delicious know what my mental "anchors" are, and help me find stuff from there?
An OS-level example: I have a dozen or so Ruby on Rails projects in /Users/andre/projects/rails/, and I spend a lot of time in the immediate subdirectories. If there were a heat map of the places I spend time in, this directory would be hot. Would that be useful as a navigational device? Possibly. If a place got hot enough, the OS could ask me to label it in a way that's meaningful to me. I might use that as a jumping-off point as long as spend a lot of time on Rails projects.
Obviously there are pitfalls when trying to get a computer to guess what you're trying to do, or what's important to you (R.I.P Clippy). Still, there are bound to be payoffs for trying to get the computer to present navigation the way you think, rather than how it computes. A good start is to think about how our brains tend to remember things clustered relative to familiar points of reference.
So I set up a tumblelog over at Andre Lewis' tumblelog. Original name huh?
I like tumblr because it is very convenient to post to. Adding the tumblelog may be too many publishing venues for me though. Here's the breakdown:
I don't use twitter, except to pipe my Facebook status updates. If I did, it would be for things even more ephemeral than Facebook status updates.
At some point, all this is going to have to come together and be much easier than it is today.
This is an odd list of things that tripped me up at one point or another during Rails app deployment. They've been living on the whiteboard next to my desk for a while; now it's time to set them free.
App URL in Apache vhosts config is missing the .com. The requests to this url go to the next available application configured in vhosts. Symptom: accessing your newly launched app actually gives you some other app you have hosted on the same machine.
Apache listener is configured on the same port as another Rails app. Symptom: don't remember exactly, but I think Apache fails to start.
gem names case-sensitive in deployment environment (Linux), not in development environment (Windows -- this is from the dark days when I was developing on Windows). Symptoms: 1) can't install the gems you need; 2) free-floating mac envy.
reverse slash in 'require' works in development but causes error in production -- another Windows/Linux gotcha.
Rake gotcha: one missing include breaks all other tasks and everything fails silently.
Failure to clear out existing sessions after major rework and deployment. Symptoms: things failing with no reasonable explanation; pointed pangs of stupidity when you realize that you refactored stuff you store in session. rake db:sessions:clear.
rake not defaulting to production environment on production systems. This was a while ago, but it tripped me up a few times.
gems you installed in dev, but forgot to install in production.
There, now I can reclaim that space on my whiteboard . . .