Internet Explorer 9: Kicking Ass and Acid3 with Platform Preview 3!

"nine" spelled using the IE logo for the "e"

Back in March, when the first platform preview of Internet Explorer 9 was released at the MIX10 conference, the IE9 team promised to release new previews of the browser about every eight weeks. Eight weeks after MIX10, they kept their promise and released Platform Preview 2. It featured improved JavaScript performance and better adherence to HTML5/CSS/JavaScript standards.

A red, green and blue "Pokeball", each with the IE logo on it

Eight weeks has passed since Platform Preview 2, and it’s time for another release. I’m pleased to announce the launch of Internet Explorer 9 Platform Preview 3! Go ahead, download it, and read on to find out what’s in this new Platform Preview.

V8 engine: "Hardware acceleration"

Not so long ago, if you were using an application, chances are that it was a desktop native app running on top of your operating system. These days, the odds are that the apps you’re running are web apps, which run inside your browser, which in turn run on top of your OS. Even if you’re not factoring in network latency, that extra layer of abstraction slows things down. Hardware acceleration is one fix to this problem, and that’s a major focus of Platform Preview 3. IE9 takes advantage of your computer’s GPU to render HTML graphics and text with greater speed.

Rocket-powered 18-wheeler truck: "JavaScript Performance"

When we say “HTML5”, we’re talking about more than just HTML and the associated styling, but JavaScript as well. Luckily, we’re not only speeding up HTML rendering; we’re also cranking up the JavaScript engine, codenamed “Chakra”, which is even faster in this release.

All this work means that IE9’s performance has been improving steadily since it was first shown (but not released) to the audience at the PDC conference in November. Here are the results of the SunSpider JavaScript benchmark for a number of IE9 iterations (and a Firefox thrown in for good measure):

Graph showing the performance of various version of IE9 previews

And here’s a “wider” version of that chart, showing more of the Esteemed Competition’s browsers:

WebKit SunSpider JavaScript Benchmark results, showing IE9 Platform preview 3 placing nicely

This puts IE9’s JavaScript performance within 50 milliseconds of the fastest browsers – that’s the time it takes sound to travel less than a couple dozen paces.

As the IE9 team will tell you, while JavaScript speed is important, many sites spend cycles in a browser’s subsystems that aren’t JavaScript. They’re always benchmarking against more than just the SunSpider test, but against some of the most popular sites on the net, a real-world test of a browser’s performance, and they’re not done optimizing yet.

By the bye, IE9’s JavaScript isn’t just fast, it adheres better to the ECMAScript standard and even implements new features in the 5th edition of the spec, known colloquially as ES5. They include new array and object methods, as well as other language enhancements for working with strings and dates, and the IE Test Drive site has some demos showing them in action.

"Three Keyboard Cats" pardoy of the "Three Wolf Shirt": "Audio and Video"

Speed is just one dimension of browsing – standards is an important one, too! The support for the <audio> and <video> tags we talked about at MIX10 has been baked into Platform Preview 3.

There is one tag that was conspicuous in its absence, leaving a number of cynics, wags and conspiracy theorists to jump to the conclusion that it would never be included in IE9. Well, it’s here…

Vincent Van Gogh: "Canvas!"

That’s right, Platform Preview 3 introduces the <canvas> tag to Internet Explorer. And it’s hardware-accelerated, too!

We’ve got a number of demos on the Test Drive IE site showing off hardware-accelerated <canvas>, including “Asteroid Belt”, shown below:

Screenshot of the IE9 "Asteroid Belt" demo

So how does Platform Preview 3 fare on the Acid3 test suite, the supposed bane of Internet Explorer’s existence? Not too shabby, jumping up to 83 out of a possible 100 (if you recall, Platform Preview 2’s score was 68):

Acid3 test result screen for IE9 Platform Preview 3: 83/100

There’s a lot more in Internet Explorer 9’s Platform Preview 3, but in the spirit of “Show, don’t tell”, I’m sending you to the IE Test Drive site to download it and take it for a spin, and please let us know what you think!

Download IE9 Platform Preview 3 now!

This article also appears in Canadian Developer Connection.


Turning Up Where Least Expected

ip3 forumA conference devoted to devices that run iOS might be the last place you’d think you’d see a Microsoft developer evangelist, but here I am!

I’m at iP3 Forum, “a one-day event that will explore the changing mobile landscape and the business opportunities associated with Apple’s Touch Platform (iPhone, iPad and iPod touch), as business models adapt to a market where people are always connected.” It’s organized by Interactive Ontario, a group whose mandate is to promote the development of interactive media in Ontario.

iP3 Forum has two tracks: business and technical, with some sessions common to both; if you’re curious about its sessions, take a look at the schedule.

So what am I doing here? Learning. There’s a lot to learn from the mobile app cultures of the Esteemed Competition, and I want to take those lessons (I refuse to use the Microsoft term “learnings”) back to Windows Phone developers. At the same time, I’m also reaching out to iPhone developers to convince them to add Windows Phone 7 to their mobile OS roll, and I need to know about their world. I’m even doing a little noodling with iPhone and iPad development in order to learn more. As they say, travel broadens the mind, and that holds true even for “travel” to different operating systems.

My time at iP3 Forum has been peppered with interruptions – it’s the end of Microsoft’s fiscal year, which means meetings, meetings, meetings – but I’m taking notes for those sessions I’m able to catch and I’ll post them soon.

This article also appears in Canadian Developer Connection.


Launchlist: A Checklist for Web Developers and Designers

checklist manifesto


To put it into programmer-speak, checklists are unit tests for everyday life. Like unit tests, checklists appear to be additional make-work that take valuable time away from performing the task at hand. However, when done right, checklists save time by helping ensure you’re doing everything you need to do and can even function as a sort of specification for the task (in fact, like unit tests, checklists often end up being the “real” specification for all intents and purposes).

Checklists may seem to the be province of by-the-book, obey-all-rules-and-regulations slaves to procedure, but I think it’s one thing those Poindexters got right. I would argue that the structure and order that they provide free us to spend our energy on those less controllable, more chaotic parts of our lives, work and play. As I like to say, “preparedness enables spontaneity”.

I could go on about the power of checklists and how even a pretty random goofball such as Yours Truly has benefited from them (at least when I use them), but I’d serve you better by pointing you to Atul Gawande’s book, The Checklist Manifesto: How to Get Things Right. In it, Gawande writes about how checklists have improved the outcomes in his own surgical practice, as well as in other fields such as piloting, where bad outcomes are really bad.


01 launchlist logoIn spite of repeated threats from your client, the odds are that no one will get injured or die if something’s wrong with the web site or application that you’re working on. I hope that you still have enough pride in your work and your profession that you want to get things right. If you do – and I hope that’s why you’re reading this blog; you’re the sort of reader I’m going after – you’ll want to use tools like unit tests and checklists to ensure you’re getting things done properly.

One such tool is Launchlist, a simple-but-useful web application that acts as a checklist for web developers and designers. Built by Jay Hollywood (coincidentally my stage name should this computer fad blow over and I need to become an “exotic dancer” to pay the rent) and Lee Karolczak, it is:

…intended to help and encourage web designers and developers to check their work before exposing it to the world at large.

The product was born out of frustration. For too long we had been using archaic methods to conduct pre-launch testing and the web was an obvious choice to do it better.

Launchlist features a set of questions about the site you’re working on, based on Hollywood’s and Karolczak’s own experiences building sites. You should be able to answer “yes” to all of them before you unleash your site upon the world:

03 list

Launchlist could’ve been a simple site using checkboxes and bog-standard form elements, but in the age of modern web apps and increased appreciation of design that’s both functional and beautiful, I’m glad to see that they went the extra mile and worked some CSS magic. The “yes/no” toggle switches are beautiful, yet function quite well as checkboxes, and even the “Product Details” section, which would’ve functioned quite adequately as a bunch of ho-hum text fields, is pleasing to the eye:

02 project details

Here’s a set of items on Launchlist’s checklist that shows what “checked” and “unchecked” items look like:

04 checked and unchecked items

Launchlist’s creators came up with a set of questions that should apply to most web sites. However, if some of them don’t apply to your site, you can simply mark them as “not applicable”:

05 not applicable

You can even add a comment to an item in Launchlists’s checklist, in case a simple “yes/no” answer isn’t sufficient:

06 comment

And knowing that you might have checklist items that are unique to your projects, they gave Launchlist the ability to house up to 10 custom ones, like the one I created, shown below:

07 custom item

The status report is at the bottom of the list, which is also where you can add your own custom items to the checklist. If any of the applicable items in the checklist remain unchecked, the status report will read “Launch not advisable” and report the number of unchecked items:

08 launch not advisable

If you checked all the applicable items in the checklist, Launchlist declares that your site is ready for launch:

09 go for launch

Once you’re done checking and unchecking items, you click the “Submit report” button at the bottom, after which you’ll see this:

10 report sent

…and as the text in the “Your report has been sent” message says, you and the intended recipient of the status report are emailed. Here’s the text of the report that Launchlist sent to me:

Launchlist Submission Report for Test (

Status: Launch not advisable – 5 items are still outstanding.
We recommend you resolve these items before launching your website.


– Required fields have been tested?
– Forms send to correct recipient?
– Web Statistics package installed and operational?
– 404 page exists and informative?


– All text free from spelling errors?
– Page & Content formatting has been tested?
– Print stylesheet exists and tested?
– Meta data has been included and is appropriate?
– Page titles are descriptive and SEO friendly?
– Images have appropriate alt tags?
– Title tags are appropriate and SEO friendly?
– Favicon has been created and displays correctly?
– Footer includes copyright and link to site creator?
– HTML has passed validation?
– CSS has passed validation?
  Comment – Todd says he’ll have it fixed by Friday.

– There are no broken links?
– JavaScript is error free?
– Displays & functions correctly in ie7?
– Displays & functions correctly in ie8?
– Displays & functions correctly in Firefox (Mac & PC)?
– Displays & functions correctly in Chrome (Mac & PC)?
– Displays & functions correctly in Safari (Mac & PC)?
– Displays & functions correctly in Opera (Mac & PC)?
– Tested at 1024 x 768 resolution?
– Tested at larger resolutions?
– Forms have been tested and processed correctly?
– Picture of Sean Connery in "Zardoz" outfit on every page?


This report has been crafted and delivered via Launchlist

Follow Launchlist on twitter –

Lessons from Launchlist

Here’s a quick run-down of what I think can be learned from Launchlist. I’m sure that I’ll think of more after I’ve published this article…

  • Design matters. Launchlist could’ve been built without all the stack we like to call "HTML5” (it’s really HTML5, CSS and JavaScript working together) and the gorgeous design, but without it, you wouldn’t be compelled to use it. And the design goes beyond its good looks; there’s also a great deal of usability and user experience design in Launchlist, from its clean layout to the controls that pop up only when they’re needed.
  • You can do HTML5 in Internet Explorer. Launchlist works just fine with Internet Explorer 8 (the screenshots I took for this article were taken from a Launchlist session in IE8) – a quick “View Source” reveals that they used the HTML5 Shim for IE. And of course, there’s IE9, which the Internet Explorer team is working furiously on.
  • Do one thing, and do it very, very well. I think that this is a good app philosophy, and I believe it applies doubly to those of you planning to build apps for mobile devices, whether they’re phones or tablets.
  • “Freemium” (or: Apps can be ads). Launchlist’s creators say that the version of Launchlist at will always be free, but that they’re working on a paid subscription version with more features. I think this is a good approach – there’s no marketing like a “starter” version, especially when what you’re making is so nice.

This article also appears in Canadian Developer Connection.


Crunch Time for Windows Phone

Behind the Scenes: Windows Phone 7

windows phone testingMicrosoft Vice President Terry Myerson gets a look at a prototype Windows Phone circuit board that Qualcomm built with an all-new chip that had just started rolling off the manufacturing line.
Photo by Ina Fried.

In her article Behind the Scenes: Windows Phone 7, Ina Fried pays a visit to Microsoft headquarters in Redmond to see what the Windows Phone team is up to. With the phone due to hit the streets in time for the holiday season and the months that wireless carriers need to test out new devices before they sell them, the Windows Phone team was in crunch mode in late May, racing to finish their work on it. Ina was given a rare opportunity to hang out with the Windows Phone team, interview both executives and developers, sit in on “shiproom” meetings and generally observe the Herculean task of building a brand new phone operating system.

The article doesn’t pull any punches. Ina writes that a “reboot” like the one Microsoft is doing with its phone is going to be a challenge, and the people she interviewed are all too aware of it. “In the meetings and subsequent interviews, executives and developers who were surprisingly candid about both the mistakes Microsoft has made in the mobile market and the importance of their current work.”

Go check out the article – it’s fascinating, and it’s the first in a series of occasionally-published articles by Ina that will provide a behind-the-scenes look at the people building the phone.

Mobile Development News for All

windows phone 7 accordion

The Redmond team aren’t the only people working hard on Windows Phone 7 – Microsoft Canada’s Developer and Platform Evangelism team (of which I’m part) is doing the same, but from a different angle. We’re gearing up to talk about developing apps for Windows Phone 7: the tools, the technologies, the programming frameworks and languages, and the techniques – and we’ll be talking to more than just Microsoft developers, but developers of all stripes, even if they build apps for the Esteemed Competition’s phones, whether they’re Android, BlackBerry or iPhone.

We’ll also be talking about more than just Windows Phone development, but mobile development in general, on all sorts of topics that affect mobile development, from the importance of good design to the business of mobile apps to architecture and development techniques. We hope that no matter what mobile platform you’ll build for, you’ll check out our blogs and events because they’ll be chock-full of useful information (and we think we’ll surprise you).

Windows Phone Workshops in the Toronto and Vancouver Areas

windows phone workshops

Whether you’re a long-time Microsoft developer looking to get into mobile or an Android, BlackBerry or iPhone wondering what Windows Phone 7 is all about, and you’re in the Toronto or Vancouver areas, you might want to check out our free Windows Phone Workshops next week:

  • One in the Toronto area on Wednesday the 23rd at Microsoft Canada HQ in Mississauga
  • One in the Vancouver area on Friday the 25th at Microsoft’s Development Centre in Richmond

I’ll be there, as will my co-workers Paul Laberge and Jamie Wakeam and some special guest speakers and we’ll be talking about Windows Phone 7’s interface, architecture, developing apps in Silverlight and XNA, the Marketplace (where you sell your apps) and then we’ll have a codefest where teams can compete to build the best Windows Phone app in an afternoon.

If you’d like to know more about the workshops, see this earlier article, which covers the Windows Phone Workshops in more detail.

This article also appears in Canadian Developer Connection.


Gizmodo’s Vendetta

Techmeme screenshot featuring 4 Gizmodo stories: "Apple iPhone 4 Pre-Ordering is a Total Disaster", iPhone 4 Order Security Breach Exposes Private Information", "AT&T iPhone Pre-Orders Have Sold Out", "AT&T Now Taking iPhone Orders in Pen and Paper"

In case you were wondering if Gizmodo’s fight with Apple over that ill-gotten iPhone prototype might be affecting their reporting, consult this screenshot from Techmeme, taken at 8:45 p.m. EDT, above.


“I’m Comic Sans, Asshole!”

"I'm Comic Sans, Asshole" -- John Marston from Red Dead Redemption pointing a gun

That most hated of typefaces, Comic Sans, gets anthropomorphized and bad-assified in Mike Lacher’s piece for McSweeney’s titled, (in)appropriately enough, I’m Comic Sans, Asshole.

This article also appears in The Adventures of Accordion Guy in the 21st Century.


Best Phone Case Ever

“Truck Nutz” let you communicate to the world that you’re a bold and sassy guy in a way that words just can’t convey, but what if you don’t have a truck? For that Truck Nutz message without truck ownership, this iPhone case might fit the bill:

Woman using a phone with a case featuring dangling "testicles"

Cartoonist Chris Onstad came up with this idea back in January 2006 with this surreal and funny Achewood comic in which Ray Smuckles comes up with “ChatSacks”:

Achewood "ChatSacks" comic from January 2006

If someone will make one for a Windows Phone 7 device, I’ll buy one of those cases.