Openness wins

January 14, 2011 | 3 comments

Android and iPhoneDan Lyons, writing in Newsweek, doesn’t think the introduction of the iPhone on Verizon will stop Android’s momentum:

Apple’s phone would have snuffed out the Android a year ago, but now Google’s device has become an unstoppable juggernaut.

[…] “Android is a global phenomenon,” [Fred Wilson] says. “The big deal is, Android is free software, and handsets that can run it are getting super-cheap. So we are going to see a massive shift from ‘dumb phones’ to ‘smart phones’ around the world this year, and iPhone will not be the big beneficiary of that trend.”

This is exactly the mistake Apple made over twenty years ago, when it let IBM walk all over the personal computer market with its open specification. Sure, the Apple Mac popularized the idea of easy-to-use home computing, but over 90% of the machines actually sitting on peoples’ desks were IBM PC compatible. Worldwide, Mac market share is less than 5%.

I’ve complained about Android in the past, but version 2.2 changed my mind; more recently, Android-only features have been saving my bacon. It’s a great system, and its open structure allows for more innovation both in hardware and software than its competitors. To build an iPhone app, I’d need to pay to join the developer program and buy a Mac. To build an Android app, I can download the SDK and get going – no matter what kind of computer I use. That’s a real difference in attitude, and one that will ultimately see Apple’s phone devices share the fate of their desktop cousins.

Illustration: Android and iPhone by Quinn Dombrowski, released under a Creative Commons license.

Write real-time web applications with XMPP, PHP, and JavaScript

June 25, 2010 | 3 comments

I’ve written a tutorial for writing XMPP-based web applications over at IBM DeveloperWorks:

Real-time web applications are networked applications, with web-based user interfaces, that display Internet information as soon as it’s published. Examples include social news aggregators and monitoring tools that continually update themselves with data from an external source. In this tutorial, you will create Pingstream, a small notification tool that uses PHP and JavaScript to communicate over the Extensible Messaging and Presence Protocol (XMPP), a set of XML technologies designed to support presence and real-time-communications functionality.

You can read the whole tutorial here. IBM have made it a featured article, commenting, “bet you have it up and running before lunch.” I hope you find it useful. (And don’t forget to check out my introduction to Activity Streams, also written for IBM.)

Photo: IBM by antonfortunato, released under a Creative Commons license.

An introduction to Activity Streams

June 22, 2010 | Leave a comment

I’ve written an introduction to the Activity Streams standard for IBM DeveloperWorks:

Enter Activity Streams, an evolving standard that extends Atom for expressing social objects. Although it is a young standard, Activity Streams is fast becoming the de facto method for syndicating activity between web applications. For example, MySpace, Facebook, and TypePad all now produce Activity Streams XML feeds. But this technology isn’t just for the consumer web environment. As corporate intranets and internal software become more social, solid business reasons support implementing Activity Streams as a feature. This article describes Activity Streams in detail, considers its potential uses in enterprise environments, and provides some examples for interpreting Activity Streams feeds using PHP.

The full article is over here.