On "Will this solve my problem?" thinking

Here's something one hears quite often: Use database technology X because it is perfectly suited to your problem. A variant of this is, avoid technology Y because it is *ill- suited* to your problem. read more →

Rethinking Google Wave

Ok this will be my last post about Wave and all things related. I've wanted to get this off my chest for awhile, so here goes. Hopefully, reading it is as interesting to you as writing it was cathartic for me. read more →

On Ending Fluent

OK by now you probably know that Fluent.io, the email startup that I founded along with @themaninblue and jochen has announced it's closing down. There will no doubt be a lot of speculation about this. Most of what I've read is of the **Oh, that's di... read more →

The Secret of 'Instant Search'

So we have this feature in my startup Fluent called Instant Search. The idea is that as you are typing a query, the results arrive instantaneously for each partially formed progression of your final query term. So for example, if you typed "deep", be... read more →

'Not Invented Here' Syndrome

No doubt you've come across the "Not Invented Here" (NIH) issue at some point. (It even has a Wikipedia entry.) You start a new job, or a new project with a different team, and the first thing you see is a whole bunch of proprietary code. What web fr... read more →

Source code is dead: Long live source code

I used to work at Google, a company that's entirely dependent on the source code its engineers produce for its lifeblood. And yet, Google has a rather strange attitude toward source code, giving it away like there's no tomorrow. read more →

RIP, Google Wave

Today, Google Wave is scheduled to be taken down. After weeks of being read-only, it will finally close its doors and vanish from the domains of Google to the nether-realm of the dead pool. read more →

Programming Languages & Type Systems

In the late part of the 19th century, there was a furore. Well there were many furors really, Otto Von Bismarck was making threatening movements in Europe, India was on the verge of rebellion, Japan was descending into deep imperialist sentiment, the... read more →

Testing Parsers & Concurrent Code

Testing is an interesting subject. Everyone pays lip service to it, but I suspect that secretly no one wants to do it. I'm specifically talking about writing automated tests. Much of the available literature focuses on testing frameworks (xUnit, Quic... read more →

Exploring the mythical weekend project

Recently, I decided to give up one of my weekends and see if I could build an entire working product from scratch. If you're like me, you have a lot of ideas rattling around in your head and far too little time to realize any of them. Some seem like... read more →

More than a Boswell

To say that I am a fan of Sherlock Holmes is like saying the Pope has a passing interest in Christianity. I have a deep fondness for the Victorian detective stories, and read all 4 novels and 56 short stories multiple times before I was 13. I watched... read more →

Languages, Verbosity and Java

I learned Java in a short summer course right after graduating from high school. Since then, I have programmed with Java off and on for nearly 12 years, most recently at Google (which I represented on several Java expert groups) and a short consultin... read more →

The Mythical Man-Month

I vividly recall my first week at Google. It was in Google's old office in Sydney, high up on the 18th floor of a triangular skyscraper. The views from virtually everywhere in the office were breathtaking. And inside, the walls beamed the warm glow o... read more →

Like it or Not

There's no shortage of punditry around the future and fate of Google+, a massive social networking effort from Google. Much of it centers around competition with facebook and whether or not it will succeed in unseating the latter as the dominant soci... read more →


I'm sure you've run into that annoying clod of a programmer, perhaps a colleague, an intern, or someone you meet at drinks after a usergroup meeting. This person won't shut up about how fantastic the Haskell programming language is. About how every o... read more →

Crosstalk: A Chat App

Not long ago there was a crazy rush of startups building group chat applications. Names like Beluga, Convore, Banter.ly, Group.me, Brizzly and others spring to mind. Other, more mature products like 37signals' Campfire and web-based IRC clients are a... read more →

Waving Goodbye

In the past month or two, fully 8 of my colleagues from the Google Wave project have resigned from the company. This is no strange coincidence given that annual bonuses for 2010 were paid out at the end of Q1 2011. However, it does give one pause to... read more →

Unit Testing: A False Idol

There is a fervor among agile enthusiasts and programmers about unit testing that borders on religion. This fever has even infected the ranks of everyday programmers, even those who do not practice Test-driven or eXtreme Programming. So much so that... read more →

Comets and Meteors

I am exploring writing an app with Comet (reverse Ajax) aka 'hanging gets'. I thought I knew how this worked in detail, but after days of research I found my knowledge sorely lacking. There isn't much good information on the web either, so I thought... read more →