Over on Linux Journal, I've got a piece about innovation, and how Microsoft's old chestnut that open source is never innovative is not just wrong, but actually the precise reverse of the true situation, which is that in most areas free software is storming ahead. Typically, the day after I posted this, an even better illustration of what I was talking about popped up. It's called Ubiquity, and I think it will prove one of the most important open source projects.
It comes from the increasingly fecund Mozilla Labs, which seems to be on a roll at the moment. Here's their description:
You’re writing an email to invite a friend to meet at a local San Francisco restaurant that neither of you has been to. You’d like to include a map. Today, this involves the disjointed tasks of message composition on a web-mail service, mapping the address on a map site, searching for reviews on the restaurant on a search engine, and finally copying all links into the message being composed. This familiar sequence is an awful lot of clicking, typing, searching, copying, and pasting in order to do a very simple task. And you haven’t even really sent a map or useful reviews—only links to them.
This kind of clunky, time-consuming interaction is common on the Web. Mashups help in some cases but they are static, require Web development skills, and are largely site-centric rather than user-centric.
Today we’re announcing the launch of Ubiquity, a Mozilla Labs experiment into connecting the Web with language in an attempt to find new user interfaces that could make it possible for everyone to do common Web tasks more quickly and easily.
That doesn't really make it clear what Ubiquity does (at least it didn't to me when I read it), but there's an excellent video on the same page linked to above that demonstrates what it means in practice. There's also a good tutorial that shows some of these in action.
The essence of Ubiquity is that it gives you a command line for your browser – something that is bound to appeal to the geek in us. If that were all it did, it would be of limited interest. But more importantly, it makes complicated stuff involving all kinds of API calls across the Internet extremely easy. Here are some examples:
map and insert maps anywhere; translate on-page; search amazon, google, wikipedia, yahoo, youtube, etc.; digg and twitter; lookup and insert yelp review; get the weather; syntax highlight any code you find; and a lot more.
Of course, Ubiquity is not limited to these; it's completely extensible:
anyone can create Ubiquity commands. Once created, these commands can be embedded in any web page. If you have Ubiquity installed and you visit a page with an embedded command, Firefox will present you with the option of subscribing to the command.
That's great – and really, really scary. Ubiquity commands are a bit like ActiveX controls: they can do more or less anything in your browser, including tricking you and stealing information. As Mozilla Labs notes:
It's important to understand the dangers of subscribing to Ubiquity commands from sites that you don't trust. Since a Ubiquity command can do anything, and it has full access to your web browser, a bad person could write a Ubiquity command to steal your personal information or do malicious things to your computer. You should not install Ubiquity commands unless you are confident that the source is trustworthy.
Aware of these problems, they're also working on a solution:
In the future, we'll be creating something called a "trust network" that Ubiquity users can use to share knowledge about which commands are trustworthy. When you visit a page with an embedded command, you'll be able to see what your friends with Ubiquity have said about this command -- whether they've given it a thumbs-up or left you a warning to let you know it could be dangerous. This system doesn't exist yet, but once it does we will modify this section of the tutorial to let you know how to use it.
Clearly, this is the most problematic aspect of what otherwise is an amazing capability. I'm already addicted to it, even though it's still a bit clunky under GNU/Linux: it simply makes things that I do all the time – emailing links, doing word counts of Web pages, mapping addresses, translating foreign language sites – trivially easy.
If you want to see the future of the Web, I suggest you download it and try it out. It's yet another reason why Firefox, already hugely enriched through myriad extensions, will take over from Internet Explorer, and yet another example of how open source is becoming a hotbed of online innovation.