Monthly Archives: March 2012

Every now and again you should go out of your comfort zone to get a new perspective on things. Or so they say. I love my comfort zone, it took me 43 years to build the damned thing after all, so please leave me be, will you?

But things break and in this particular case the screen of my trusty old Samsung Galaxy S2 went dark, literally. I brought the phone in for repairs and grabbed the only test-device left at work as a temporary replacement. It was a Samsung Omnia 7 with Windows Phone 7. Now look at this little droid-boy getting pushed out of his comfort zone!

I’ve been using it for 5 days now, so why not make a small list of what sucks and what’s great? Here goes:

No Internet connection sharing (not over USB, not over Bluetooth, not over WiFi)

The fact that the phone doesn’t present itself as a USB storage device when I connect it over USB with my Ubuntu netbook

The lack of an SD card slot

I can’t login with my Live ID (my ancient Hotmail address) on my phone (but it does work in Zune), which means I can’t install applications from the Marketplace (I’m asked to call support! Seriously?)

The fact that after installing Zune on my work PC and then waiting until I got home because Zune doesn’t do proxies, I still wasn’t able to upgrade to Windows Phone 7.5 (which does have Internet connection sharing and a more decent browser)

There’s no way to reliably fetch information from the Exchange servers at work. Every once in a while mail gets downloaded, but in general there’s error code 8501001D ruining my Exchange experience

What’s great? Just one bullet point actually;

The UI!

Really, despite my grievances about how poorly the device integrates with the outside world, my general feeling about Windows Phone is positive, and that is because Metro really is that great! The screens are sober, with lots of space and a prominent place for content (text & typography). Applications scroll horizontally to display different views and it’s the typography that makes this pretty discoverable. The graphics effects and sound add to the great responsive “feel” of the UI. And tiles are a radical break form the icon-based approach that is typical of iOS (and Android, classic Mac OS, Windows 3.11 and …), you could compare them to widgets (as seen on Android), but without the anarchy and clutter.

So yeah, really, I ♥ Metro! I hope Google (Android), Mozilla (b2g) and Ubuntu (Unity) take clues from what is, in my view, a pretty radical break in graphical user interface design, because I would love the computing environments in my comfort zone to be more about content and less about chrome as well!

You can do great things in JavaScript; accessing the DOM and adding, changing or removing nodes as you please. It is exactly that technology that WP YouTube Lyte is based upon; the PHP-part writes out an almost empty div’s with className “lyte” and with as id the YouTube ID, which the JS-part finds after the main document has loaded to render the “LYTE player”. Great for performance, so I was pretty surprised when DerTux, one of WP YouTube Lyte users wrote;

Although 52ms for a page with 3 “LYTE players” is minimal when compared to loading the same page with the full embedded YouTube player, the above statement bugged me enough to search the web for information about reflows and how to prevent them. Some of the more interesting articles:

Based on these pointers I started reworking lyte.js while testing on Google’s Page Speed Online (as far as I can tell the only tool that can detect reflows and then only as an experimental feature) to minimize reflows. I ended up:

adding the pL div, which contains the LYTE player UI (play-button, controls & YouTube thumbnail), only after all styles have been applied

adding the tC div, which contains the title, only after the tT div (with the title as received in the YouTUbe jsonp-call) has been added to it

some widths and heights did not have a unit specified in the dynamically generated CSS and this sloppy coding apparently also (indirectly) caused reflow

WP YouTube Lyte 1.1.1 will get pushed out in a couple of days (Thursday, probably) and will ship with these performance optimizations (and a fix for a regression which causes some styles not to be applied any more).