Here's hoping this affects your day job.

Rails 2.0 is out. And apparently this is a tumblog now.

I'm famous! Again!

Now Jessica Hagy is in on the action. But... "work"? Animals don't work. And we are most certainly just less-furry-than-we-may-have-been-once animals. Previously.


If you haven't seen the TED videos yet, I recommend watching as many as you have time for.

Jane Goodall - Uplifting
Burt Rutan - Inspiring
Malcolm Gladwell - He sure has lots of hair.
Ze Frank - He has less hair than Malcolm Gladwell.

I'm famous!

"Sometimes I think my main motivation in life, after survival, is curiosity. Yesterday I was wondering about imagination. Specifically, I was wondering how many people could IMAGINE being wrong about a major perception.


If I could add one required class to every school, it would be a class on imagination. The students would learn the tools of critical thinking to curb excess imagination, and they would learn to recognize and suppress their own biases so they can imagine things outside their social box.

It won’t happen, but imagining it makes me happy."

(Emphasis mine.)

OhmygodOhmygodOhmygod! Scott Adams inadvertently referenced the title of my blog with my a one-liner which essentially frames my entire shallow belief system! I'm a hero!

Joshua Bell plays a DC metro station.

Bell didn't say it, but Bach's "Chaconne" is also considered one of the most difficult violin pieces to master. Many try; few succeed. It's exhaustingly long -- 14 minutes -- and consists entirely of a single, succinct musical progression repeated in dozens of variations to create a dauntingly complex architecture of sound. Composed around 1720, on the eve of the European Enlightenment, it is said to be a celebration of the breadth of human possibility.

If Bell's encomium to "Chaconne" seems overly effusive, consider this from the 19th-century composer Johannes Brahms, in a letter to Clara Schumann: "On one stave, for a small instrument, the man writes a whole world of the deepest thoughts and most powerful feelings. If I imagined that I could have created, even conceived the piece, I am quite certain that the excess of excitement and earth-shattering experience would have driven me out of my mind."

So, that's the piece Bell started with.

Pearls Before Breakfast

Here, try one of these instead.

"I don’t understand this continuing obsession with buying things that you need to break before they do what you want. It’s not just the iPhone; people did the exact same thing with the AppleTV too. Primarily to add support for other video codecs, like DivX and XviD. Why? .... I thought the big draw for Apple hardware was that “It Just Works.” By breaking it, you must know you’re giving up the “Just Works” factor, so what’s left? Rounded corners?"

Yes! Oh my word, yes, Mark. I own a Mac. I own it for rounded corners and my other baseline design requirements (say, symmetry or... colour). I own an iPod for the same reasons. I mean, honestly. This isn't hard, folks. I'm a sweaty developer nerd with Dorito-stained hands and no social skills. Even I could design a better laptop than this monstrosity I'm typing on. Let's start with the keyboard:

Who wants to guess what's wrong with this picture? We've taken away all the other distractions so you can focus.

Think. Look and think. What aspects of this small plastic token make you want to barf?

If any of these came to mind...
  • Font
  • Character formatting
  • Character positioning
  • Key shape
  • Key colour
  • Key surface texture
...give yourself a hug and treat yourself to a chocolate croissant! Dell needs to hire you! Mark, TightPinkProduct Inc. has a laptop for you. All the rounded corners and industrial design basics your heart desires, it works, and you'll drip nerdy saliva all over yourself when you see how much Linux if freakin' involves. It's like... loads. Loads of Linux. Or whatever. A phone might be harder -- only Apple has embedded software so cute. So far. Please hold.

Tangentially, now. For those who've asked, The TightPinkProduct is an intentional misnomer. Let me peel away the layers of mystery to reveal what it isn't: It isn't a product. It isn't pink. And it is only tight in one sense of the word.

It's little more than a concept. A simple idea I wish someone would use to make a small fortune. It's not revolutionary. It's not even interesting. But it will work.

I'll buy The TightPinkProduct. Heck, I'll even overpay by $200 to get it before anyone else.

Old Ladys Dont Take Shit

Geoff: is it wrong to take a shit and smoke?
Geoff: i am not currently shitting
steven: Thank Christ.
steven: And YES.
steven: There is an elegance to smoking that is completely obliterated by doing so while you shit.
Geoff: old people do it
steven: No, they don't.
steven: At least... not old women.
steven: And the women are the ones you want to emulate.
Geoff: i dont know about that
steven: Do not google for "smoking and shitting".

Further investigation did not reveal the cartoonish image I was groping for. But Google's robots displayed another interesting slice governing the Cube's perception of the English language.

What would "making a shit" consist of? Eating or digesting? Wait, I have an idea. Why don't I do something productive for a change? Bye. podcast podcast

Despite the reprehensibly trendy domain name, I read regularly. I have never, however, felt like spending the energy it would take to download the music they post. Even though their wealthy, hipster lifestyles afford them the time to find the quality music I desire, the process has always been too manual.

...until now. Hook yourself up with Banshee. Or iTunes, I guess... if you still haven't bought a product.

Thanks, random internet guy! Nerds, check out that glob of his. He's got some fun stuff.


Pat derides South Indian "spicy" food.

In case you don't read Pat's blog (you should) or don't believe him (you rarely should), he speaks the truth. The two spiciest meals I've eaten in the past year, inclusive of 3 months in Maharashtra, were North Indian Kati Rolls in Manhattan and curry from ever-delicious Spice Hut in Calgary. Andree, if you're reading this, I recommend you check it out. And if you review it, disregard the "East Indian Food" signage. Manzar, the purveyor, is Pakistani.

South Indian food is rarely hot-spicy, frequently flavour-spicy. But it's always delicious. Vegetarian food in the US is just as bland as I remember it, leaving me anxious to get back to Pune and chow down on a bucket of methi daal at Aangan. Yum.

Waitaminute. I've played this game before.

A Carrom board.

If you visit our ThoughtWorks Pune office, you'll commonly see team members unwind over at a small table in the corner, shooting small wooden pucks at one another. The game is Carrom, and for lack of energy and adjectives, I'll describe it as billiards you play with your fingers and coin-sized discs; a larger, ceramic disc serves as the cue "ball". I played Carrom last year when I came to our Bangalore office for Away Day, surprised to find a game so similar to the default Canadian Christmas game of my childhood: Crokinole.

A Crokinole board.

Where Carrom resembles billiards, Crokinole resembles curling (of course!). Shoot for the middle of the play area and try to get as many discs as you can inside the opponent's inner-most disc. The very centre of a Crokinole board is recessed, which provides one's cousins with ample opportunity for extremely violent shots involving discs projected off the edge. Carrom, by contrast, is a relatively calm game.

Apparently these two games have been combined (or Crokinole has an intermediate ancestor) in American Carrom, which has the central pegs of Crokinole but the corner holes and square shape of Carrom. It certainly sounds more engaging, but since it's American it will surely lead to your children drinking 3 Starbucks a day and invading foreign countries on weekends. Avoid at all costs.

An antique Carrom-Crokinole board, also known as "American Carrom".

Tightpinkproduct inches ever closer.

I promise I'll write about something fun soon. Maybe tomorrow.

The Gap.

One of the roadblocks to the Tightpinkproduct is The Gap. My friend installs Ubuntu and complains about the difficulty of installing Flash or forcing WMV files to play inside of Firefox. He shouldn't have any reason to complain. All these things work. More often than not, they will work with packages living inside repositories. I, too, would complain but I've become too used to the routine of installing such packages on top of a default Linux installation (much in the same way I've become accustomed to fixing a default Windows installation or patching up OS X).

The Gap is the virtual distance between the open source desktop you receive today and the open source desktop lazy dopes (like me) desire. EasyUbuntu is a step in the right direction, but for some reason they've decided to give me, the user, choices. Such choice only messes things up. Do I need the video codecs? The plug-ins? The Rar extractor?

Just give me everything. MP3 playback, RARs, SVG-for-GIMP plug-ins, Flash, DVD playback, binary drivers... I want it all. The naughty things Linux (or BSD or Solaris or whatever) doesn't like but can package and redistribute should come by default. The naughtier things which lawyers only want on the internet (not on a DVD) should come at a touch of a button: "Make Linux great." Some argue this button should read "Make Linux tolerable."[1] I'm cool with that.

The Principle of Lease Surprise is a good idea for cute, Japanese languages. It's a great idea for these infernal machines we've decided are so fundamental to business and recipe-sharing.

The Tightpinkproduct could reasonably come with all these things by default. Assumption 1: distribution licensing is available for Naughty Thing X. Assumption 2: Selling laptops is still a profitable business.


[1] Obviously we need a machine which reads the happiness of users as the years pass and things improve. Let's turn the microphone on and listen for swearing! But what if someone follows Freeciv's example and builds FreeCounterStrike? Crap. We'll need some switches in there, I guess. In any case, we can feed all this data back to the super master megacomputer at and tally happiness to arrive at an appropriate i18n value for that little button. If ever there were a more perfect plan, I'm... unaware of it.


Anyone I've ever discussed ThoughtWorks with knows I work here because of the people. I enjoy the company of almost every ThoughtWorker I've ever met (and I've met hundreds). But I'm in awe of a select few.

Heroes? Indeed.


If I ever get married, I want this guy to print my invitations.

The clip reminds me of the type of things one would see on the CBC. Self-referential irony: As I shirk outdated technology (read: television), it becomes nostalgic. Perhaps when I'm old and bearded I'll watch an old tele just to show the youngin's how it's done.

On water droplets and wobbling windows.

Sometime in the past (it may have been four months, but it was probably more... my sense of time degrades in direct proportion to the length of time I've existed since a given event) I coincidentally found myself on a plane with Jason. We discussed many things, not excluding our shared obsessive compulsions, the fact that we both hate take-off, and operating system GUI toolkits. Jason is a Mac guy -- complete with beard, hipster glasses, and supercool Asian girlfriend. He should have his own action figure. I'm a Linux guy -- complete with psoriasis, caffeine addiction, and a compulsion to steeple when I discuss politics or Spiderman.

I like talking to Jason a lot, because it's sort of like living Jason Said interactively. Plus there's usually beer. When it comes to GUI toolkits, we have similar opinions. Practicality and beauty both rank high on our lists, much as they apparently do for DHH -- as heard in this recent interview with Sexy MF and some guy who probably writes Visual Basic for a living. Mr. Heignarmeigher-Hansen complains that the water droplet effect in Mac OS X doesn't add to usability; "it's just eye candy for nerds like me," he says. Or something to that effect. My memory is as faulty as my sense of time. Jason had the same point of view when it came to wobbly windows: they're neither pretty nor do they serve a practical purpose.

Until you use them.

It frustrates me to move windows in Windows and OS X these days. I expect to be immersed. I want to live those windows. But I can't. And other words in italics. They are just bricks with which I build my castle. I so quickly get bored of building castles as I would as a child of constructing "real" things from Lego. I prefer to construct kitchen appliances which reverse time or glasses which give me flight. I make haste, and run back to the soft, squishy world of unstable-but-organic OpenGL-accelerated window managers. Ahhh, they're like my Mother's arms. I'm at home here.

I'll bet you my left nipple Leopard will have wobbly windows. Mr. Steve will do a great job of recreating them in his image. And they won't ever crash or miss-click. Will Jason be convinced? Only time will tell.

Fidget weights.

In case you hadn't noticed, I'm running through all my old draft posts and cleaning house. So here goes with entry number five (or something): Fidget Weights.

I saw Thoughtless Acts a while back and it immediately reminded me of an idea Drew and I came up with years ago. It came to the attention of people who frequented my basement office that if one became engaged in conversation, he or she would inevitably stand on top of some octagonal free weights I had lying around:

Perching oneself on these long enough would lead to fidgeting. The participant would roll them over and gradually get more aggressive by lifting and rotating the weights in various directions. This was almost entirely absent-minded, but I know I was always at least semi-conscious of crushing my foot while performing such acts.

The idea Drew and I had consisted of duplicating this structure, with flat ends rather than pudgy octagons and a thick, soft rubber coating. Different shapes (hollow triangles, cylinders, etc.) would provide for a variety of fidgeting. Owners would leave such items lying around the house for visitors to enjoy.

XTech 2007 - numéro deux

I should have posted this ages ago. I didn't.

Liz Turner gave me a brief preview of ICONAUT, a cute tool for visualizing data, on the balcony of some fancy building the XTech folks rented out for socializing and eating French hors d'ouvres. Rain cut the demo short, but it's now online for the world to see. I don't think it dynamically pulls in new data from Harper's, as the newest articles seem to be from 2005. A shame, but it is still beta after all.

Check it out. How could you use this concept in your next reporting application? Could you do it without Flash?

Plane crash simulator?

I've flown more in the past 9 months than I have in the previous 25 years of my life. I still consider myself an amature passenger; my familiarity with turbulence, in particular, is lacking.

Every time my plane runs into bumpier weather than I've experienced before, the question crosses my mind, "Is this it?" The plane slides and twists. The wings wobble. The moving parts chatter and clank.

So far I always come out the other end alive and well. But it begs the question: What does a commuter plane crash feel like? Surely we have enough black box data and physics simulators to reconstruct this with reasonable accuracy. That way, I'd be aware of an imminent plane crash a few minutes before spiraling toward the dirt... providing me more time to repent.

Lazyweb, if someone has built this, please point me in the right direction.


My Dad recently sent me an album of the yearly Deobald family camping trip. Unable to attend, due to my 12-month departure to the subcontinent, I had only those photos coupled with last year's memories to pacify me.

Memories... jogged by images of Kubb. Soaring higher on the desire-o-meter than even hot dogs, three bean salad, or cold beer in the Saskatchewan summer heat, Kubb was easily the best part of last year's trip. It's a back-and-forth yard game played with a series of wooden blocks. The rules are simple, making the game a relaxing past-time for everyone in a large family or group of any age. Though you can apparently buy the blocks online for a tidy fifty bucks, ours are hand-made (thanks Dad) and look much like this:

Pretty darn cool.

The tightpinkproduct has a shape.

Rectangles are nothing special. But it would appear they're special enough to prevent an entire industry from using them.

Vote for MPP.

Ontarionian? Vote for a Mixed Member Proportional system on October 10th.

Generic Canadian? Donate $10.00 online and pledge your support.

If we can catch up to Germany in the political scene, perhaps one day our graphics demo specialists and techno DJs will surpass them as well.

better mutual shoes or the reed leprosy

I discovered this bug a couple weeks back, but I keep running up against it: Try running a modern Java IDE (NetBeans or IntelliJ, specifically) on a fancy new Linux installation, such as Ubuntu 7.04. If you have Beryl or Compiz running, you'll see nothing but an empty window. Turn off eye candy and everything works -- but anything requiring your fancy 3D window manager has to go to sleep while you slice and dice code.

I suppose it's better than nothing, but I'm starting to demand quite a bit from Linux. Here's hoping someone starts selling a Tightpinkproduct soon.

Masaki Katakai proposes some possible solutions. Try them out. Let me know how things go. If nothing else, the start of that post worth a read when translated into English. That's the sort of thing that would drive me to learn Japanese if I had any ambition.

I bought a cycle.

Google is my new Microsoft.

Mike (seen here fondling beef) had a blog post about accidentally formatting the wrong partition and losing all his data. Then he went crazy and formatted his entire blog on purpose. What a guy.

In response to his non-existent post, I will engage in a tirade describing where computing has taken me.

First, there was my PC. My first real computer of my very own. At the time I was a poor teenager in secondary school and my options were limited. Gateway 2000 (still charging extra for Holstein-style cardboard boxes) and Dell were not the most affordable girls on 8th street. No, with only a lifeguard's salary and some babysitting money I was forced to be frugal. I needed Helga... on the darkest corner... with sweat pants on. Preferably those sweat pants would be two or three sizes too small and I could knock a few more dollars off. Do you know how little a lifeguard is paid?

And so, I invested in a little computer company with an ugly web page, terrible service and cheap parts. My computer was addressed with "SK" (for Saskatchewan), but without "Canada", and made a fun journey to Slovakia during the long months between my order placement and the eventual arrival.

But it did come. And when it finally came, I enjoyed a long and glorious marriage to Windows 95. That was not to last, however. As I grew older and bought more computers I had to keep buying software. Software I really didn't find that valuable. "Why does Microsoft Office cost $400?" I'd wonder. Word is basically Notepad stocked with fonts and tables. I'm sure I don't use Excel for anything VisiCalc couldn't handle. PowerPoint? I'd rather just draw on a whiteboard.

And so, as the years passed and my purchases turned to theft, I decided there must be a better way. Linux and OpenOffice was a short-lived affair. I still use Linux and it's pleasant, but I'm not going to pretend the open source world often provides me with software that makes me giddy.

Then, one day, Google quietly released Gmail. I say quietly, because most normal people (not you, likely, if you're reading this blog) still don't even know Google has an email service. Google doesn't advertise -- and it shows. However, Gmail quickly became the golden hammer that replaced every other application I was using. Search, it turns out, is really important; Google has a pretty good handle on that, I guess.

As more years passed I stopped using desktop applications. Full stop. I use Google Documents instead of Word. I use Google Spreadsheets instead of Excel. I use Google Mail for email. I use Picasa Web Albums to organize my photos. I use to bookmark webpages. I use Google Reader for the news. I use Google Calendar to organize my time. I use Strongspace to store my files. If someone forces me to create slides (barf), I'll use HTML; the browser is my operating system now.

It wasn't until after I'd made this change that I started traveling semi-regularly. I'd get on a plane and my laptop would be nothing but a husk, a corpse. Without the internet -- without my applications and data -- it was nothing but a $2000 Solitaire machine.

Recently Google released Gears as open source. Mozilla has Offline Events planned for Firefox 3. Things are looking up. With software this good, I'll never have a reason to get away from Google and that frightens me. Here's hoping The Wikimedia Foundation overtakes them soon.

Pair Painting

An idea which I've been meaning to try: Take pair programming. Remove programming. Add painting. Stir. Chill. Serve in 8 - 12 hours.

All the new co-workers I meet lately have this idea forced upon them. "How would it work?" "Who controls what?" "What does the navigator do?" "How does the team decide on direction?" This barrage of questions usually flusters and irritates those unlucky enough to engage in conversation with me.


Chris Hagan, one of our ThoughtWorks University attendees, didn't just answer my questions -- he blew them out of the water. Apparently he's pair painted before (under a different name, of course) and it works beautifully. As he described it, painting is iterative. One starts with a chalked outline, going over it in broad strokes and refining as the image comes to life. He had a bunch of other great points, but my mind dropped them so you'll have to discuss it with him yourself.

This is why I don't read. People have always thought of my ideas before I have a chance to tell the world how great they are.

6:00 AM

I breed cows!

Mikey sent me a link to The Hot Map recently. What was a world-renowned Internet superstar such as myself to do but plug in my name?

Apparently, I'm involved in Junior Hereford semen donation and a 4-H curling club. I wonder if I drive a Chevy or a Ford.

Chris's 18 Months in India

My friend Chris, who's moving back to India soon, has just posted a video of his previous stay.

Changing Domino Servers

Running Lotus Notes on Linux thanks to Ketan's fabulous HOWTOs? Great!

Did your sysadmin decide it was time for you to use a new mail server? Drat.

For some reason, the Notes client is smart enough to switch mail servers over automatically on OSX and Windows. If you can't connect to your old server anymore, reconfigure your client here:

File -> Lotus Notes Preferences -> Client Reconfiguration Wizard

Tada! All fixed.

Invert the Monkeysphere.

Pat sent me this article today. It made me smile on the outside and feel softwarmfuzzy on the inside.

Due to particular mental tendencies which cause me to think only about material I've recently consumed or produced, I'm temporarily convinced that I feel crappy some days because I've made my Monkeysphere too small. Lacking a sufficient Monkeysphere, I occasionally feel guilty and responsible for all the wrongs I see in the world.

Solution? Welcome to my Monkeymetainvertosphere. Excessive concern has been replaced by soothing apathy and a complete lack of preference for your personal well-being. I feel better already.


[ Disclaimer: If the age-old text of Everyone Poops makes you uncomfortable, skip this post. ]

Despite their best efforts, there are a few things my fantastic coworkers cannot make comfortable. Illness, however tame, is one of those things. I almost made it a full week when my first bout of discomfort hit. My first weekend in Pune was spent in the office reading blogs through squinted eyes and maintaining a safe running distance from the washroom.

Such afflictions tend to have a humbling effect. In essence, my behaviour while sick resembled that of a toddler: I thought about food a lot. When I wasn't thinking about food, I was thinking about poop. If not thinking about food or poop, I was probably probably pooping or sleeping. Or both.

Segue to my definition-of-sick diatribe: At its height, I was stuck in the office until 3:00 AM on Sunday night thanks to aforementioned illness. Why? Because I was sick. A number of people that night (on the other side of the Earth) asked me why I didn't go home if all I had was diarrhea. In short: Diarrhea alone does not a sick man make; I expect to have plenty of diarrhea while I'm in India. As a Canadian, that's pretty much all you know about India before you get here.

"Expect diarrhea!" they all said. "Ha!" was my brash response. I'm tough. I can handle the trots. I'm a man. "Expect to get sick!" warned a knowing few. "Sick?" I asked. "What is sick, exactly?" The answer came that weekend:

sick = incontinence
(or worse)

It sounds a lot worse than it is... compared to my 2006 trip this was a joyride. But that's probably more than you wanted to know already.


Visiting Bengaluru:

The water pressure here in Bangalore is terrible. This Paitava (mouth-rinse hose) barely even gets the toothpaste off my tongue. It's time for me to suck it up and use a glass, I guess.


It's come to my attention that I'm a 10-minute walk from some sort of crazy sex cult. Apparently it's well-known to Pune locals... and foreigners in the loop.

My hotel is the innocent and pious blue circle on the right. Osho International Meditation Resort is the red circle on the left. I've had various colleagues here describe the Osho resort as "a cult," but I didn't piece everything together until I was dropped off at my hotel the other night. On the last leg of the drive, my companion blurted out "Holy crap! You live right by Osho!"

"Yeah?" I responded. "It's just some cult or whatever, right?"

"Osho's usually the only thing foreigners know about Pune. People come from all over the world to have orgies there."

Ooooookaaaaay. I guess that explains why I keep getting dirty looks as I walk around the south side of the river. And it would also explain all the white people I see at German Bakery. (German Bakery is on the west end of North Main Road.) And it explains why, upon examining one of said tourists, he's dressed in robes with an I'm-so-enlightened-now-that-I've-come-to-India-and-found-myself look on his face; he's just spent the last three weeks of his annual vacation eating sushi and banging some random British girl(s). Good for Employee #37816. He deserves it.

Here's hoping he runs out of money soon. Or contracts syphilis. Though I'm sure when he's back in the States many weeks of autumn shall be consumed telling everyone on the 37th floor that there is more to life than Excel macros -- thus causing the next influx of tourists.

Watch the ad for Osho International Meditation Resort. Check out the resort's webpage. Visit Read Osho's thoughts on sex and AIDS. Now tell me you don't want to visit. I plan on checking it out next week. I mean... they do have a kick-ass pool.

A walk.

I went for a long walk in the rain. Gosh was it muddy.

I saw a little girl whipping herself and begging for change. A sick, touristy part of me wanted to take a picture of her. An even sicker part of me wanted to borrow the whip to see if the sound it produced was representative of the pain it inflicted. She tugged at my arm as I walked by; I shrugged her off as politely as I could and continued.

I saw a donkey bouncing around the road on three legs. The fourth was obviously injured badly enough to prevent him from putting weight on it. For some reason, this scene filled me with sadness. A few years ago, I probably would have laughed.

I saw an unhealthy old woman sitting in the mud, begging for change with a dish outstretched. I ignored her.

I saw a child receiving a beating from her father. I wondered how often such things went on behind closed doors in Canada.

I saw a bloated dog sleeping in the middle of the road. I wondered if it was sick, dying, or just gassy.

I saw a crazy man. Standing-in-the-street-half-naked-with-hands-full-of-mud-screaming-obscenities kind of crazy. It dawned on me that I saw a great many more crazy people in the streets of Toronto and New York, even within my first day of visiting those cities, than I have in the two weeks I've lived in Pune. I wondered what the implications of that fact might be.

I saw some shacks:

I wondered what it felt like to live there. I work in a building near the complex in the background.

I pondered these sights while walking the remainder with no additional incident. Why did it sadden me to see a donkey with an injured leg? Why did a starving child have little impact on my conscience? Did I temper my emotional responses in anticipation of the latter? Or am I simply used to seeing poverty in the West? I've certainly never seen an injured animal in Canada. Maybe a bird or a squirrel, at worst.

Remembering that this neighborhood is quiet and wealthy, my curiosity has been piqued: What emotions do the other, poorer neighborhoods evoke? The rural communities? The sprawling shanty towns?

A better question might be: Could I even handle seeing such things? I might implode. My greatest curse was winning the lottery of life with an incurable God complex. I have enough money saved for my return to Canada to feed an impoverished child for years. I have the resources and capacity to save an injured canine or donkey. Will I do these things? Probably not. Self-preservation trumps such behavior and may very well prevent our species from progressing beyond the hive-dwelling hairless monkeys we are today.

If I've really flown halfway around the world to write software (a depressing thought, really, when presented so succinctly), what might I do with the rest of my time? Mojo (Avishek) continues to bring up the Lord of the Rings quote "All you have to decide is what to do with the time that is given to you." An all-encompassing high-level scoping statement for life? Sure. But it does make one thing abundantly clear: Not deciding what to do with one's time is considered failure under this constraint.

So. What shall I do with the rest of the afternoon? Perhaps I'll go for another walk.

As the years pass, cartography will become a global popularity contest.

Future foreigners in Pune (ThoughtWorkers, in particular), observe! Click the image of the map to view my custom Google Map of Pune:

I will continue adding to this as I find other useful things. So far the map provides the reader with directions from the Hotel Lotus to the ThoughtWorks office and the nearest ATM.

Ketan also pointed out a link to Pune on Wikimapia. (Look for Hotel Lotus in the centre.) It's a great deal more useful than the corresponding map of Calgary.

Tightpinkproduct: The Mouse.

The mouse for a tightpinkproduct need not look particularly cool. The ovular characteristics of the Mighty Mouse are visually appealing, but an ergonomic nightmare. I own one. I use it. I'm still undecided.

Frankly, a $15 Microsoft IntelliMouse is still the most comfortable mouse I've ever owned, even if it's ugly as sin.

But we are not talking about shapes today, my friend. No, not in the slightest. We're talking about cable! Yes, cable. Specifically, why don't wireless mouses have cables? Because they are wireless, you say? Ah, yes. But wireless devices need electricity, and that electricity comes from batteries and those batteries run out. What then? You switch batteries or...
This! Notice that little hole in the front? That's a mini-USB port. Although this mouse (RadTech BT600) is -- in all other respects -- probably the worst mouse ever built*, that one little feature earns it a place in my heart. Why the Hell don't all bluetooth mice have a mini-USB port on the front? I've been asking this question for years -- long before the BT600 ever graced my sight. It angers me to no end that mouse manufacturers haven't figured this one out yet.

Mark my words: The mouse you buy with a tightpinkproduct will have a hole.


* By "worst mouse ever built," I actually mean it doesn't function as a mouse. When held, it feels as though you are gripping a turd. This uncomfortable sensation makes it difficult to focus while you're using it.

Oh, and it doesn't click. That might be an issue for some people.


Oh me, oh my. A new country? No! A new continent.

I've bumbled my way to Pune, India. I'm arriving 7 months late, thanks to my previous project in New York and a brief stopover in London.

Folks, so far the experience has been nothing like my previous trip to India. No less special, but I've spent more time working and less time partying. The lack of severe illness is also a marked difference. The office is large and beautiful -- easily the most attractive ThoughtWorks office I've worked in yet. And that beautiful office is filled with beautiful people; the ThoughtWorkers here have gone out of their way to make my visit a comfortable one -- taking me out for dinner, getting me settled, showing me around, advising me on food, and providing health and wellness tips. I can't thank them enough.

Despite their best efforts, there are a few things my coworkers cannot make comfortable. Illness, however tame, is one of those things. I almost made it a full week when my first bout of discomfort hit. My first weekend in Pune was spent in the office reading blogs through squinted eyes and maintaining a safe running distance from the washroom.

I'm the picture of health once again, however, so never fear! A 2-day battle with some small bug was a cinch after last year's nightmare which lasted nearly 2 months.

I took some pictures of my last "Beer and Pizza Monday" in Calgary and the ThoughtWorks Pune office. Check them out! I'll update once I buy a motorcycle. Or when I take more pictures, whichever comes first.


PS: If you need an obligatory cow picture or a description of auto rickshaws, go read Sarnacke's blog. I would never write about anything so passé.

Lotus Notes 7 on Linux

While I was struggling to install Lotus Notes on Ubuntu Feisty today, Ketan pointed me to his fantastic HOWTO. I've made some additional notes at the bottom in the comments.

Thanks Ketan!

pi eye em pi

The idea is funnier when presented internet style. Unless, of course, you don't spent every waking moment glued to the internet. In which case, it's funnier if you realize that Eric is less likely to act in internet pornography as that mustache might lead you to believe.

Making it Look Easy

Making it Look Easy

Do you remember the last time you were in the physical presence of an expert? Do you remember how it felt to watch her perform her art? Perhaps hands dancing through the strings of a guitar or over a keyboard. Perhaps instinctual movements producing new material at needlepoint or temporal painting through dance. Perhaps the gentle swing of a chain-saw sliding through the groves of an unfinished ice sculpture. Perhaps it was nothing more than a delicate, natural conversation with your mentor over coffee.

The further I get away from my childhood fascinations with those whose talents shine through obvious mastery, the closer I come to mastery of my own endeavors. This journey would be long, painful and futile were it not for the company of masters, mentors, peers, and students of my own. When I began such a journey in software development, I expected it to be just so. Such a place seems an unlikely home for experienced craftsmen patient enough to deal with novices like myself.

However, like so many beliefs I've held in the past, this understanding of the universe was obliterated by new wisdom and experience; there are experienced software engineers with the talent to appear as magicians and the stoicism to teach me their tricks.

Each companion on this particular journey wields a set of skills as burgeoning and varied as the unexplored landscape itself. The heterogeneous nature of the crowd is seed to my greatest educational pleasures. Some have even shocked me through an experience so humbling I am unable to verbalize the emotional reaction it provoked. Avishek is one of these companions.

Avishek and I paired for a few weeks last fall. Something amazing took place during these pairing sessions, something powerful which was nearly precluded by my puerile purview, something akin to premonitions.

The two of us were tasked with arduously wading into a swamp of legacy code in search of an outlet -- an integration point where we would write the bulk of our code. Once found, Avishek and I had a new objective: find the peg corresponding to this little hole. For you see, yet more legacy code awaited us in the form of libraries we were expected to utilize. We would dig a bit, searching and thinking and discussing as we exchanged positions as driver and navigator throughout the afternoon. And as that afternoon went on, the peculiar structures and strange idioms started to wear on my patience. To throw salt in the wound, Avishek really seemed to understand his way around the codebase. We'd jump into a new subsystem and he'd navigate it with pleasure and authority. He had worked in this office for months now, so it was no shock he could see the next passageway with greater clarity than I. The item of interest was not large and so, as Avishek merrily danced through new bits of code I could barely read, my patience with these seemingly endless passageways expired.

"Why on Earth don't we just do BloogFizzle?!" I finally asked in exasperation.

"Uhm. I'm looking for BloogFizzle, Steve. I've never seen this code before." came Avishek's calm reply.

And with that, a light bulb came on. Avishek didn't know this code base any better than I did. He wasn't familiar with these new idioms, patterns, or layers of indirection and abstraction. He was simply reading, learning and understanding the code quickly enough to pass it on to me in real time. He was master of a skill I wasn't even aware humans possessed.

Most of us know when we are in the presence of a mastered dancer or pianist. Few of us know when we are in the presence of a master cobbler or computer programmer. Fewer still will see such expertise as I saw that day. Had I not seen it since, my belief in its existence likely would have faltered.

I fly to London tonight. When I get there, I will have the privilege of working with Avishek again (both in the UK and India). To say I'm looking forward to countless new surprises would be a gross understatement, but anything else I would say would only cry testament to the limits of the English language. So I will simply say this: I'm excited.

[Mono-list] Hai Can u plz help me

[Mono-list] Hai Can u plz help me

I saw this today and half-expected I'd open up the email to discover something glorious, like a LOLCODE compiler for the CLR.

Alas, the author actually just types this way in real life and my nerdy fantasies continue to go unfulfilled.

The Right Way.

Lately I find myself fighting the battle people often associated with Eastern/Western religions or philosophical ideologies: finding The Right Way. Easy as it is to suck oneself into the theory and philosophy of the varied belief structures surrounding The Right Way, that's not what I'm talking about here.

No, for me The Right Way creeps into everyday life. Over and over and over. Every day, in fact. (This is where I wink at you.) It becomes a bit of a concern, as one hopes to gain insight into a discipline and shower that insight over fellow craftspeople once The Right Way reveals itself. The problem with this scenario is the inevitable failure of our ability to assess when The Right Way has truly made itself known.

We are smart, though. We know! We can feel it. Can't we? What is this feeling I get when test-driving my code first feels right? How could I ever disregard the advice of senior developers I respect and admire? I must continue this way. It is the only way that has ever felt true and good.

Until there is another way, of course. And then, in an instant that same feeling of overwhelming joy washes over me as I discover something new or something I previously thought impossible. It's there! It's real! And now I know... THIS must be it. Whatever it was before was good. But this is better. TDD? No, BDD! But what's that, up ahead? It's glowing orange and it's beautiful and mysterious and intriguing. I must touch it.

And, just like that, a new door is opened. And although the doors I've walked through still seem attractive, I suddenly have a new path that cannot possibly be wrong. One true gospel. One true leader on the other side of the door. NDD will always guide me; I shall not waver.

Do I mock? Do I stub? State? Behavior? Filesystem? Database? Network? UI? How many layers? How thick? How complicated? Which dependencies? How hard is too hard? When have I found God? Do I test more or less vigorously as I grow older and more experienced? How do I test in Haskel? How do I test in C? Do I really need these tests? If I'm writing the tests because my code is fallible and my code is fallible because I am fallible, are my tests not fallible? Who am I?

Testivus has the answers you seek.

Next week it will be something else. Worry not, gentle friend. Nothing is static here. Every year you shall look back onto the last and wonder how you could have been so naive, so sloppy. You are God's perfect robot, a learning machine. You will always grow and always find something new. Unless. Unless! Unless the only thing static is change! Yes, that must be it. Whew. Let us thank our new God, for we are saved.

Tightpinkproduct inches ever closer.

We have the software.
We have commercial support.
We have a hardware vendor.

We don't have the designers yet. But they're coming.

XTech 2007 - numéro un

Are you a nerd? Do you make websites? Do you use the internet? Are you peckish? Do you think you're not?

If you answered 'yes' to any of the above questions, take 5 minutes and read Simon Willison's Implications of OpenID. He delivers bite-sized answers to mouth-watering questions about your seemingly flavorless online identity. Like a chocolate croissant from Patisserie Claude, Simon will satiate your original hunger while simultaneously instilling new cravings for information about digital ID. Now imagine him presenting it, Simon Style, to a tiny room full of hot, sweaty geeks.

You're already looking around you for something to eat, aren't you? Go read the slides first.

Please welcome: CruiseControl Enterprise

Do you run CruiseControl,, or CruiseControl.rb? Do you want commercial support for your open source continuous integration solution? Of course you do.

Here you go.

Email from home.

How many things can go wrong at one event?

So, perhaps, if Judaism didn't have a concept of Hell, it does now.

- Dad

This makes me happy.

First brought to my attention during a RubyConf lightning talk, Andre Lewis' hotspotr is simply a fountain of joy. Tell a friend.

Ah, coworkers.

Jason said today. Easily the best blog on the internet.


Elizabeth writes about the need for typing speed while pairing, providing some good hints. I'd add:
  • If you practice on IM or MUDs, type properly. "do u no hwen the doors oprn tonight?" is doing little for your typing skill, even if you type it quickly without looking down.
  • Use different keyboards. Work on an ergonomic keyboard. Work on a klunky old IBM keyboard. Work on a Mac. Work on a PC. Work on a laptop. Work on a desktop. You'll have to sooner or later, so you might as well get comfortable in every context you can.
  • If you write Python, Ruby, or any other smushy soft comfy language, consider Dvorak. Two weeks of home row happiness and right-hand pinkie underscores, and you'll love me forever. *
  • My brother always recommends 3D Pong for mouse coordination.
  • As handy as mice are, keyboard shortcuts are handier. Pairing with Eric Liu will make you a believer.
The tightpinkproduct will not have labels on keys.

* If most of the code you produce contains squiggles and half-wink-smilies, stick with QWERTY. (Or learn QWERTY if you're already one of the few C-style Dvorakists.) Carpel Tunnel loves a caffeinated Dvorak.

It's here.

Gabe introduces Juxtapojam'd.

ThoughtWorks Studios introduces Mingle.

We're getting closer to the tightpinkproduct.

Do you care about Linux? Of course not. But here are some videos anyway.


It's coming.

That which is similar only intrigues me because I assumed it would be different.

Chalk one up for the Russian Bear and ThoughtWorks Open Source.

CruiseControl.rb is here.

PS: CruiseControl and CruiseControl.NET haven't gone anywhere. We're just giving you more flavours. With that in mind, expect even more exciting stuff by the end of the week.


I moved out of my apartment last month and ran into the inescapable trouble of debootstrapping (no). The last step to moving out is cleaning, but to clean requires supplies and time. Time spent anywhere requires facilities. Facilities require supplies. Using facilities makes room, causing one to require food. Making room and eating food both create filth when all you're trying to do is clean! Argh!

Because of all this trouble, I've come up with this handy list:
  • 2 boxes - one for cleaning supplies, one for the inevitable leftover items
  • 6 rolls of paper towel. Trust me.
  • many garbage bags
  • vacuum
  • Windex
  • Mr. Clean
  • CLR
  • Toilet Duck
  • 2 rolls of toilet paper
  • bottled water
  • carry-along food (pitas work well)
  • small stereo
This is all you need. Clean the toilet and sinks first, even though you'll dirty them while cleaning. They deserve to be cleaned twice anyway.

Global Musings.

I'm concerned about my career.

Three years ago I would have told you that I could never see myself employed in one place for more than a couple of years. Last year I would have told you I'd leave IT before I turned 26.

These days I'm not too sure about either. ThoughtWorks has employed me for the last 14 months and each step of the way I try hard to imagine working somewhere else. I can't. The people I've met, the work I've done, and the things I've experienced compare to no other company I've worked for or started -- and there's a few. But just when I'm in the mood to tally the company's shortcomings, emails like this find their way to my inbox:

Trevor is our CEO. "Global Musings" encompass his window into the company over the past few weeks. In larger companies I've worked for, email from the top is the kind of trivia that pushes me to drink. Instead, the emails I get from Trevor or Roy always put a smile on my face. If you'd like to know why, drop me a note. Include your CV, if you like.

Let's see how the next 14 months go. I might be here a very long time.

Republihacker 2007

It's perfectly understandable that a kernel hacker could be republican. Unlikely, given the general political climate of the open source community -- but understandable.

Except in 2007. I read an article Love linked to and it caused my remaining teeth to grind. If the choice was of which Sowell article to redirect his readers' attentions to, he chose wisely; reading Sowell is an obstacle-free method of reminding oneself that a significant portion of our educated media is still produced by extremist nutjobs. Or it's an easy doorway to an exciting new antidepressant addiction. Or both.

But if the choice was to discuss Obama's run for the presidency or the future economic landscape of the U.S.A.... this is truly a confusing choice for his small army of loyal nerd fans. Honestly, if the last eight years have not taught every American a valuable lesson in basic macro economics, nothing will.

I've been working in New York for a few months now and every day I find myself in political discussion of varying scale. With cab drivers on the way to the airport. With client designers, developers, QA, and project managers during lunch. With coworkers over beer. And with friends back home after I recount these previous experiences. My emotions have swung back and forth between intense pity and remorse on one hand (for the inevitable but deserved international backlash the US is increasingly unprepared to deal with) to disdain and anxiousness for resolution on the other. The pendulum comes to rest at a comfortable numbness that effectively blocks my innate desire to care about the future of a country whose citizens believe CNN is a reliable source of news. "Innate" is the wrong adjective there. But I do wish to care. I just can't.

I read Love's blog because [a] I have an unhealthy mancrush on the company he works for and [b] I think the work he does is awesome. With that in mind, I'm going to assume his political HREFs are typed in chokingly dry jest. This way, my complete lack of humour will permit such text to fade into the ether, leaving only gadgetry and sexy kernel patch action to attract my attention.

Remember when we were kids and a political discussion meant that it was time to play outside? Do you miss that as much as I do?

Fuck yeah! Medical software!

I give this video 14 awesome points because it's just so bloody bizarre. By the end I was definitely feeling like I wanted to buy some open source medical software... or punch some hospitals... or smash brick walls with a sledge hammer. Maybe all of the above? Enjoy.

Where is my iPhone?

This is by far the best video of usable touch-screen displays I've seen yet -- ironically prefixed with an ad for a Microsoft Mobile device:

If you haven't seen it yet, this is the original video that got nerds the world over excited about the near future of usability:

And, oddly enough, the most practical example of this technology to date is still the Warcraft III demo:

On Beauty and Simplicity.

How can you know which people are fun if you don't love all the people?

Ken Thompson:

We have persistent objects, they're called files.

/// Here is the class that is the particle emitter. I am listening to rap.
There is no such thing as a pubic hair emergency. (2006)