Any Minute Now: Windows Store Preview Debuts
As this blog is posted, Microsoft is making last-minute improvements to its hotly anticipated Windows 8 Consumer Preview build, whose late-February launch will coordinate with the preview launch of Windows Store. Windows 8 and the store will both use Microsoft's Metro UX – first introduced on Zune and Windows Phone – that earned several IDEA2011 awards from the Industrial Designers Association of America in September of last year.
If you haven't played with Metro yet, you should. Start by visiting the redesigned Windows Dev Center (http://msdn.microsoft.com/en-us/windows/br229518), download Windows 8 Developer Preview and Microsoft's preliminary toolkit, and install them on a free partition. You'll immediately see what folks are raving about: Metro is a radical departure from conventional Windowed UIs, employing sliding-pane, floating control/widget, and other interface tropes derived from contrary but related innovations. On the one hand, Metro clearly embraces UX best-practice from small mobile devices, digital appliances and tablets – use-cases where ease, clarity, minimalism, and hyper-effective balanced use of limited screen real-estate are critical. Seeing Metro on a big multiscreen desktop PC, though, shows that the new UX also works well in less-limited circumstances, and makes me think about the potential for putting Metro on epic-scale touchscreens, like the Samsung SUR40 running Microsoft Surface 2.0 (http://www.samsunglfd.com/solution/sur40.do).
So, what does this Metro and Windows Store jazz have to do with HTML5? A lot. Part of the purpose of Windows Store is to create an agile marketplace where developers can sell Metro-style applications (see http://msdn.microsoft.com/library/windows/apps/br230836). And while many Metro-style apps will be written in C++, or in C# or VB on .NET, the fastest-growing sector of the Metro marketplace is likely to be apps written in JavaScript, using HTML5 and CSS. What's more, these apps will run ripping well off the Windows 8 Metro desktop (or on devices), functioning entirely as what Microsoft calls first-class applications – though they'll be able to access live content from the web, too, via simple iframe inclusions and other methods, or run under Internet Explorer 10. For more info on how to get started building Metro apps with JavaScript and HTML5, check out http://msdn.microsoft.com/en-us/library/windows/apps/br211385.
Cut the Rope and Prototype Inheritance Candy
As a coder, I'm usually the person heads-down, cranking bits and photons, while everybody else is mastering Angry Birds or falling in love with Laura Shigihara's song stylings in Plants vs. Zombies. So, while I remained oblivious, ZeptoLab's Cut the Rope quietly grew to 65+ million downloads on various platforms over the past year. I was among the first, however, to play the all-HTML5-and-javascript version of Cut the Rope for Internet Explorer – a real tour-de-force of UI and JavaScript-driven graphic goodness. Executive summary: it's as much fun and perhaps even more addictive than Angry Birds, with an extraordinary physics engine managing pendulum dynamics, elasticity, and buoyancy and all sorts of other heady stuff – all focused on feeding candy to a little green monster named Om Nom. If you have the day off, visit http://www.cuttherope.ie to play. If you prefer hearing ZeptoLab's alpha coders talk about simulating Objective C structs in JavaScript while limiting object allocations to preserve performance, and unreel compiled-code recursions to guard limited stack space in Chakra, you can view the 'Developer Candy' video at http://www.cuttherope.ie/dev/. Among the interesting learnings are that the ZeptoLabs team used a very simple, 25-line mini-framework by jQuery's John Resig (found here: http://ejohn.org/blog/simple-javascript-inheritance/) to simulate prototype inheritance. Resig's explanation of the code, which employs a very elegant trick to enable super. calls to overridden methods in appropriate context, is a good example of his usual high clarity of thought and expression.

A Lap Around HTML5: HTML5 Graphics