on being a bit of an idiot

Danny O’Brien, quoting Bugzilla’s code review process:

Bugzilla reviewers may seem to be harsh, accidentally. They aren’t trying to be harsh or overly critical, they’re just pointing out what needs to be changed, which usually means they’re pointing out what’s wrong with the current code, instead of pointing out what’s right with it. Usually they don’t have lots of extra time in their life for reviews, so they just quickly write what needs to be fixed, without spending too much time thinking about the nicest way to say it. Sometimes they also don’t go into long explanations.

You’re not a terrible programmer or a bad person. All we’re doing is telling you what’s preventing us from checking the code into Bugzilla’s main codebase.

Aurora: Web’s Possibilities

Aurora from Adaptive Path — an intriguing look into the possibilities of the web, if we look beyond and explore.

James on Software: Wearing Out My Delete Key

James on Software: Wearing Out My Delete Key. Absolutely Brilliant.

Apple Domination

Chris Seibold wrote an interesting article about where Apple might take the iPhone brand moving forward. He closed with an interesting comment:

One thing seems certain: the only company that will ever make a viable iPhone killer will be Apple.

Since the return of Steve Jobs, Apple has consistently rolled out products that blow away the competition. The iPhone absolutely shattered the playing field, and no competitor has come close since.1

It’s going to stay that way, for now.

Who can overtake the iPhone?

No other company has been able to pull off an interface as usable and consistent as Apple has. Microsoft’s devices are complex, and their software platform isn’t anything to write home about. I’m an advocate of open source projects, but the iPhone’s closest competitor, Google’s Android, has problems of its own. Android’s UI and API aren’t as polished or consistent.2

It takes a tremendous amount of collaboration to make a product like the iPhone. Hardware makes the job even tougher, but we haven’t even seen a piece of software that could match the iPhone, let alone hardware.

The same goes for OS X / Cocoa’s programming interface; Cocoa’s MVC-oriented architecture has given applications model-view separation by default, enabling developers to present data in different ways without re-architecting the application. OS X’s systemwide integration and excellent APIs have encouraged developers to create usable, well-designed applications.

The iPhone wouldn’t be here today if Apple hadn’t laid a stable foundation with OS X.

No other operating system comes close. We won’t see an iPhone-killer until we see an operating system that can give developers the ability to build rich applications with a system-wide consistent UI. It’s all about the user experience.

The iPhone isn’t perfect.

Granted, the iPhone has plenty of room to improve. It still lacks certain features like cut-and-paste, stereo bluetooth, etc. Apple prefers simplicity whenever possible, but just like with OS X on the desktop, they’ve laid the foundation upon which they can improve the iPhone incrementally. Good luck finding a company that can provide a similar experience today.

We won’t see an iPhone killer any time soon. I predict that any true iPhone-killer will need to innovate and bring something new to the table; simply copying the iPhone now won’t suffice. Clones aren’t killers.

My Predictions

I think a true iPhone-killer will integrate itself with many facets of our lives: calendars, to-dos, home automation, phone, e-mail, IM, and more, but in a much more active way than the iPhone. GPS targeting will provide a boost for location-based services, which can bring a lot of innovation.

The future lies in always-on connectivity to the internet. It’s not really the device that matters at all — the real innovation will come with the ability for us to be connected to the cloud — always, and everywhere.

Ubiquitous connectivity will define the next generation of devices.

More on that to be discussed another time.


  1. It doesn’t matter whether or not you like the iPhone; the fact remains that the iPhone’s technological power and user experience are tremendously better than any phone on the market. Period. 

  2. I haven’t actually played with an Android device, but from the information I’ve seen, it doesn’t compare to the iPhone’s usability and consistency. 

Beyond REST: Building Data Services with XMPP?

XMPP and REST are two of my favorite tech areas, so I was glad to find this slideshow via Hacker News:

While the “Beyond REST” moniker seems propaganda-ish (REST is a great architectural paradigm), I found the XMPP information to be a good clarifying review of how one could integrate XMPP into their architecture.

I have been looking into XMPP in the past few days as a messaging solution for one of my current projects, and this slideshow couldn’t have come at a better time. I understand XMPP and have read the protocol documents several times, but for some reason this slideshow was the first time I really grokked the “integration process.”

XMPP and REST will both continue to be important protocols/architectures as the web evolves. They each have their place. I’m glad to see XMPP beginning to take hold in areas other than Jabber; hopefully they can continue to refine XMPP to heal some of its warts.1 I foresee XMPP becoming the de-facto standard for the “push” web as time passes, much as HTTP forms the foundation of the “pull” web.


  1. I won’t detail here, but people have raised concerns about its overuse of XML namespaces, the plethora of extension documents (in comparison to actual implementations thereof), verbosity of presence stanzas, etc. 

Total Control

The tight integration of hardware and software makes for a more manageable, predictable system. A closed system limits choice, but it is more stable and reliable. An open system is far more fragile and unreliable—this is the price of freedom.

— Leander Kahney (via Inside Steve’s Brain)