Monthly Archive... January, 2008

We don’t need IE8’s “Doctype 2.0″, we need effective browser deprication

A few days ago, the web development community exploded into an uproar concerning the IE team’s plan to introduce a new method of triggering standards compliance mode in Internet Explorer 8. Web developers, with justifiable but thinly veiled vitriol, ripped into Microsoft and the Web Standards Project for going along with this scheme.

In essence, what the IE team wants is web developers to “opt-in” to new renderer features using a custom meta tag or HTTP header. Pages will then be frozen at that renderer, ensuring they remain consistently rendered from now until the end of time (or at least, until Microsoft stops supporting that rendering model or breaks it accidentally). We went down this path once before, using the Doctype declaration to differentiate between “quirks” mode and “standards” mode. IE7 is, unfortunately, also quirky in standards mode, so apparently we need a new “super-standards” mode for the next version (and so forth).

From the perspective of the IE team, this solution makes sense. They can effectively freeze HTML rendering at today’s IE7 baseline and proceed with enhanced features in later releases. Maybe I’m looking at this the wrong way, but I never considered HTML content to perfect screenshots that should remain immutable. Well designed HTML is flexible — it can be rendered by a desktop browser, or stripped to it’s barest essentials by a mobile parser. (Note that I’m drawing a clear line between web content and web applications — web apps are by their very nature a snapshot of the present). The IE team should be encouraged to fix their mistakes at the expense of breaking badly developed content, just as users should be encouraged to update their rendering engines as frequently as possible. Notice that the IE team is the only browser developer that seems to have this problem.

As a web designer and developer, apparently I’m supposed to help Microsoft maintain their dominance in the web browser market by tagging my pages for their benefit. But what do I get out of the bargain?

Let’s assume for a moment that IE8 has been released with a spectacular new rendering engine, on par with Firefox or Safari or Opera in terms of “write once, render anywhere”. Let’s also assume I have a pretty good idea of what my target audience’s browser technology will be: 50% “IE8 compatible” (meaning IE8/FF/Safari etc), 30% IE7, and 20% IE6. None of these markets are small enough to ignore or deliver reduced functionality to. I would still need to optimize for three different version of Internet Explorer. IE7 doesn’t go away, and neither does IE6. I can’t just freeze the renderer at the IE7 level — I want to use all those fancy new features in IE8 that have been available in alternate browsers for years now.

So where does this leave me, the web developer? Still coding for multiple releases of IE. In fact, the problem gets worse as Microsoft accelerates it’s release schedule — people simply don’t update quickly enough. IE6 is still estimated to have a 35% market share — over a year after IE7’s release. How do we solve the problem of supporting multiple renderers?

Simple. We deprecate IE6. We no longer support it. And we provide a clear, direct upgrade path that involves little to no effort on the part of the user. Maybe this involves just swapping out the rendering engine, leaving the browser’s UI intact (to minimize the impact on the user’s day-to-day experience interacting with their browser). I’m certain part of the resistance to upgrading to IE7 today is the horrendous overhaul to the UI that occurred between versions.

Apple doesn’t seem to have any problems keeping it’s Safari users (or iTunes users) on the latest release through an effective software update system. Firefox also has a fairly effective system, although it could be improved. But web developers don’t complain about supporting multiple, ancient versions of those browsers because the system, and the users, are proactive about updates.

We need to get over the idea of preserving out-of-date content as a snapshot of the day it was released. We need to stop worrying about breaking 5-year-old browsers and just get on with it.

Update: After further reflection, there is another (possibly better) approach Microsoft could take. They could include the IE6 and IE7 rendering engines in each new update, and provide a user-accessible toggle for enabling it on specific sites. Using the info bar, much in the same way they do when blocking popups or enabling ActiveX downloads, a message could be displayed along the lines of “This page may not be compatible with the Internet Explorer 8 display system. Would you like to switch to Internet Explorer 6 compatibility mode for this site?” IE would remember the setting and use it on subsequent visits. The compatibility message could be triggered by detecting known CSS hacks, or even based on the Last-Modified date of the document.

Car audio is sooooo analog

When I bought my 06 Jetta, I knew there was one tradeoff I had to make — a lack of auxiliary input on the stereo, or any CD changer control for me to shunt my iPod into. It’s not that VW doesn’t provide these. It’s just that they weren’t provided on my car. I saved a bundle buy buying a demo model, and the speaker system is divine, but there was just no headunit/iPod fever in my future.

I figured at the time it would be a simple matter of replacing the factory stereo with an aftermarket one that featured aux-in. Aside from some Germanic connector funkiness, the VW actually features a fairly straightforwardly-sized double-DIN headunit that can be swapped out using an adaptor plate. Compare this to some of the custom fittings used in Subarus and Mazdas I’ve seen and I was feeling pretty confident.

Now, it’s not like I needed anything super fancy. I’ve been rocking a 3rd generation iPod since 2003 using an old iRiver FM transmitter that I picked up while still driving my Echo. The iRiver actually has remarkably clear sound. It can easily overpower any station not directly claimed in my area, and has nice clear bassy sound. I’m not an auto audiophile at all — combine the traffic and wind noise and I’m happy just to have something static free. But the iRiver only used the headphone jack on the iPod, and it was always a pain to stow it and retrieve it whenever I needed to pause or change tracks. And as my iPod battery continued its inevitable march into paperweight status, I was looking for something that I could dock with directly.

The first thing that stunned be about the aftermarket car stereo market was the price. The second was the cheesy slick salesman status that seemed to permeate the showrooms. But the price was the killer.

As soon as you get into the double-DIN market, you’re looking at $1000+ DVD systems or $2000+ navigation systems. I don’t need a navigation system (I’ve lived here for over 20 years), and I can’t imagine a single situation where I would want to watch a DVD in the front seat of my car. And even if I did, I have a iPod that plays video. A simple double-din CD player with an iPod connection couldn’t be had for less than $800, and that’s not including any kind of installation. And since I’m fussy about aesthetics (I did buy a VW, after all), I was astounded by the faux-techy UI veneers that seemed like they hadn’t been updated since, oh, Railroad Tycoon was popular. Which might explain why most of them look a lot like Railroad Tycoon.

So the new headunit was out. I’d upgraded to a Touch. It was time for Plan B. I realized (after checking my bank balance) that what I was really looking for was a nicer way to mount and charge my iPod, while still providing access to its controls. FM transmission was actually working quite well for me, so I didn’t need to throw that out immediately. I’d been reading about the Harmon/Kardon Drive+Play system for several years, so I decided to investigate further. Their newest system, the Drive+Play 2, seemed nice but was overpriced ($450) for what it gave me. The original system was available for only $80, so I bit and bought one. “Bit” being the operative word here.

After much fussing with the wiring, I managed to get the system wired into my car while only setting off one airbag alarm in the process (no permanent damage!). It took only a few days to realize just how high the suck knob turns when it comes to the Drive+Play.

For starters, the FM transmitter is absolutely horrendous. Apparently I’d been treated quite nicely by my iRiver transmitter, as the Harmon/Kardon version was not only seriously underpowered (resulting in frequent bursts of interference), but almost comically overdriven. Whenever my music would hit peak volume, the audio would compress to near-inaudibility, making it sound like I was listening to dance music over a 1950’s era intercontinental phone line. And since it was connected to the dock port, I had no control over the audio levels.

That wasn’t the worst of the Drive+Play’s offenses. The most heinous was it’s propensity for completely failing to turn the FM Transmitter on at frequent but random intervals. Let me say that again: the Drive+Play would fail to engage it’s only enabled method of audio output, treating me to a delightful (and long) serenade of radio static until I managed to massage it into compliance by fussing repeatedly with the station settings and cycling the power. Awesome.

My final solution is a lot like my first solution, just updated for the Touch and providing me pretty much everything I need short of a direct connection. I’ll work on that later (hello, eBay). What I settled on was a Belkin TuneBase FM that I found on sale at my local big box electronics retailer. The TuneBase is pretty much perfect: good quality sound (very close to what I was getting with the iRiver), charging station, and the thick stand supports the Touch perfectly. Sometimes the high-tech/low-tech solution really is the best.

phoenix sessions 002

Everyone has their hangups and preferences when it comes to music. I’ve long accepted the fact that dance music is a fringe group, but one of the friendliest and internet savvy. And the flow and swings really make work, play, and driving much more interesting. So pretty much 90% of my waking day.

My hangup with dance music (or electronic music, whatever you want to call it) is Divas. I hate Divas. Really, I eschew lyrics in general, but a wailing house diva will really make my eardrums rebel. Yet every once in a while a soaring female vocal will catch me just the right way and I can’t stop listening.

This set features two of my absolute favourite female vocal performances from the past year. The first is Hybrid’s “I Know (Keenan & Anderson Remix)”, a truly breathtaking track. The second is Robyn’s “With Every Heartbeat”, a track which drifts tantalizingly close to diva cheese before punching through with an emotional chorus that is absolutely stunning. Unfortunately, it’s also a track that’s had a lot of airplay by DJs much more famous than I, so I mixed things up a bit by pulling the chunky minimalist Hugg & Pepp mix into the soaring (but mostly vocal free) Rory Phillips take.

The rest of the mix finds a solid progressive groove, with a bit more diversity and less driving dance tracks than my last few efforts. I hope you like it.

One of my all-time favourite mixsets is Sasha & Digweed’s first “Northern Exposure” double CD, an album that first truly introduced me to the art of the DJ set. Along with the brilliant track selection and song mixing, the duo included a graphic showing how each track overlapped. Maybe it was just showing off, but I was always impressed by how well they were able to layer diverse songs on top of each other, sometimes 3 at at time.

I thought it would be fun to do the same thing for this set, to illustrate graphically these sets are put together, showing loops and edits alongside mixed overlaps. I hope you like it as well.

phoenix sessions 002 infographic

Now, on with the tracklist:

  1. Magic Games Mastered - Jacuqes Renault
  2. Flicker (Cinematrik Remix) - Boom Jinx
  3. Leaving Planet Earth (Dousk Remix) - Talisman & Hudson
  4. I Know (Keenen & Anderson Remix) - Hybrid
  5. Hearts on Fire (Joakim Remix) - Cut Copy
  6. Bucovina feat. Shantel (Ian Oliver’s Clubovina Mix) - Ian Oliver
  7. Blew (Becker Remix) - Antix
  8. G Platz (Neil Quigley’s Pacemaker Dub) - Nick Muir
  9. A Field - Vector Lovers
  10. With Every Heartbeat (Hugg & Pepp Remix) - Robyn with Kleerup
  11. With Every Heartbeat (Rory Phillips Remix) - Robyn with Kleerup
  12. My Moon My Man (Boys Noize Classic) - Feist
  13. 2.20 Girl (Gutterstylz Dub Mix) - Suicide Sports Club
  14. Beautiful Life (Gui Boratto Remix) - Gui Boratto

 
icon for podpress  DJBS - phoenix sessions 002 [77:09m]: Play Now | Play in Popup | Download