Archive for September, 2008

Will Chrome Kill Innovation?

Monday, September 29th, 2008

A reporter recently asked me the following questions: “Many people think that Google Chrome could kill the innovation into the browser field. Does it mean game over? How is the internet user experience is going to change? Will there will be another browser war?”

As I get asked questions like this frequently, here’s my answer:

Mozilla’s mission—to ensue that the Internet is a global public resource that remains open and accessible—is enhanced by the release of Google Chrome. The more smart people are thinking about how to improve the open Web, the more innovation we’ll see. Expect the speed at which the web is improved to accelerate dramatically, not die away.

Competition is a cross-pollinator for ideas. In 2007, Mozilla Labs launched Prism, which lets users split web applications out of their browser and run them directly on their desktop. This feature made it’s way to Chrome and is slated for Safari 4. Chrome made significant advances in Javascript performance with V8, which will be leaped frogged in Firefox 3.1 by Tracemonkey. Competition is fundamentally good for the Web and for its users.

The next couple years will be a fruitful time for cross-the-board improvements. A couple things that the community has got brewing in Labs:

Weave

For the Touch Generation that’s never lived without the internet, having a continuity across all devices is key. You should be able to look at restaurant reviews on your computer, head out the door while continuing to make a reservation on your phone, and have your car automatically have that entered in your GPS. That’s the kind of experience that the Lab’s project Weave enables. Expect to see some exciting news on this front for Fennec 1.0 (i.e., Firefox Mobile).

Ubiquity

As the browser becomes smarter, it will be able to connect the Web with language. Ubiquity is an experiment in finding new user interfaces that could make it possible for everyone to do common Web tasks more quickly and easily. The web will move to empower users to being controlled naturally: With search, users type what they want to find. With Ubiquity, they type what they want to do.

When the browser understands who your friends are, and what your preferences are (all, of course, without having to tell your browser explicitly), all of the tedious parts of getting to information go away. What’s left is the core of the activity. You’ll be able to say things like “get me a flight on Thursday to Toronto, returning next Tuesday and email the itinerary to the Toronto office” and the browser will be able to present you with options, sorted by personalized metrics based on previous trips.

Ubiquity is an early prototype, but already people understand where it’s going and why connected the web with language is so powerful. We’ve had over a thousand commands written in a few short days — commands that fundamentally enhance the browser and the browsing experience. Imagine what’s possible when it becomes possible for millions of people to innovate on the browser level.

That level of innovation in community is unique to Mozilla.

Fixing IE by porting Canvas to Flash

Tuesday, September 9th, 2008

This is a guest blog from Grant Jones.

In the Algorithm Ink blog post, I mentioned that I’d be interested to see if a Flash implementation of ContextFree.js would be faster than the pure Javascript, and if so, how much faster. Would an implementation of the Canvas API done in Flash make a better solution for Canvas in IE than Google’s excanvas? Within days, Grant had jumped in, wrote some slick code, and answered those questions!

My hat is off to Grant for the awesome work he’s done, as well as for writing this post.

Intro to Internet Explorer Canvas-Emulation

Before we go into the current state of Internet Explorer canvas-emulation, here’s a brief look back at the history – or the history as far as I could tell from blog posts:

  1. Manish Jethani mentions something about the canvas tag being used for a 3D game, John Dowdell from adobe responds in Nov. 2005
  2. Manish Jethani suggests a way to do a SWF-based Canvas on Dec 1st, 2005
  3. iecanvas from Emil A Eklund released December, 2005 (uses VML)
  4. excanvas from Google released March, 2006 (uses VML)
  5. AFLAX (uses ExternalInterface) adds canvas emulation in March 2006

Overall, interest in this area seems to die off after that. Only recently with things like Processing.js and ContextFree.js has there been a renewed interested in backwards compatibility for the canvas tag.

What is FlashCanvas?

FlashCanvas is a canvas tag to flash bridge for browsers which do not support the canvas tag like Internet Explorer. FlashCanvas is an experiment to see if any performance improvement could be realized by using flash technology. The javascript code is a fork of the ExplorerCanvas project:

Firefox, Safari and Opera 9 support the canvas tag to allow 2D command-based drawing. ExplorerCanvas brings the same functionality to Internet Explorer. To use, web developers only need to include a single script tag in their existing web pages.


Back in July I was using the canvas element to create simple ‘platformer’ style games. The original idea was to create one basic game every Monday, Wednesday, and Friday. The first few were Flash-based but the rest were done in javascript and HTML. The problem is that Internet Explorer still has a major percentage of the market share and couldn’t play my games. I tried excanvas from Google, found it was too slow, and in the grand tradition of rolling-my-own created FlashCanvas. (more…)

Firefox & Google Chrome New Tabs

Monday, September 1st, 2008

A number of folks have pointed me to Scott McCloud’s comic debut of Google Chrome today. Scott is one of my personal sources for inspiration: I often peruse his books, looking for insights into creating awesome user experiences. I’m chuffed (and a bit jealous) that the Chrome team got to work with him.

There was a particular part of the comic that people kept referring me to: page 21, which talks about the experience for opening a new tab.

It’s interesting to see that the Chrome team has been exploring the same thoughts we’re talking about last month here in Mozilla Labs, with Contextual New-Tab Actions, Ambient News, and Auto Dial.

Here’s our video and Alex Faaborg’s mockup:

And here’s the comic page in question for Chrome:

It’s encouraging that there is such a confluence of design—although I felt an odd jolt of déjà vu the first time I read that panel. Let’s hear it for zero-configuration interfaces!

Ubiquity: Thank You

Monday, September 1st, 2008

Last Tuesday, the community working on Ubiquity was five people. Half of us had never met face-to-face, we spanned three continents, and had written a couple dozen commands. Today, our community is thousands strong with contributes in every time zone. Innovation is pouring in from all directions—we’ve had thousands of commands written for Ubiquity; commands that fundamentally enhance the functionality of the browser. In under a week, we have a roughly comparable number of Ubiquity commands as there are Firefox extensions. That’s an amazing achievement. It highlights the power of enabling innovation edges and empowering such a generative community.

Wow. Simply wow. And thank you, everyone in the community. We all deserve a giant glass of champagne.

Mozilla Labs is a shared space for exploring future user experiences of the open Web. We don’t just have community—we are the community. A number of folks have said that the Ubiquity-style interaction heralds the beginning of Web 3.0. While that’s a bit too buzz-wordy for our tastes, with over a hundred thousand users, we do have a critical mass; one that that begins to shift the web from being site-centric to being task-centric.

Update

This weekend, the community was able to push out Ubiquity 0.1.1. You’ll be updated automatically if you’ve already installed Ubiquity; otherwise, you can get the latest version here.

Expect some major upgrades to the the Herd—Ubiquity’s command finder and dashboard service soon.

Some Links To Awesomeness

There has been too much awesomeness created by everyone in the community to highlight it all. I’ll call out just a spattering:

There is Lani Anglin-Rosales’s Top 35 Ubiquity Commands; Leslie Orchard’s walkthrough for creating a Delicious Ubiquity command; and Waleed Zuberi’s super-useful Ping.fm command. There’s Vladimir Prelovac’s open command, which shows how Ubiquity can be used to interact with the page’s current context; and, Robert Chen’s Xkcd command. Because, who doesn’t want the instant ability to insert obligatory Xkcd references. (Now, if it only let me insert the actually comic image instead of a link to one.)

Yatrik Solanki has done some wonderful design work and has turned us onto enabling skinning support for Ubiquity.

Abi Raja’s has made the excellent Keyscape which shows how Ubiquity can be used to write full-featured Firefox extensions. He’s also put out an amazing hack to enable command chaining. (Abi is one of the five original virtual team members.)

Finally, Skumleren.net has made some scientific ubiquity commands. I have a soft-spot in my heart for beautifully typeset equations. It’s my math and physics background, I’m sure. But it makes me knees weak. I’m looking forward to being able to plot from inside Ubiquity.

If others have contributions they’d like to call out, put them in the comments section or blog about them.