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.

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


phoenix sessions 001

One of the advantages of being a bedroom DJ is only releasing sets when I am truly happy with them. Phoenix Sessions, my latest series, is an attempt to redefine some of the sounds I am using and mixing styles. Of course, you’ll still find some booty shakin’, head noddin’ tracks in here, but the first half in particular explores some downtempo and progressive breaks.

  1. Sleepless Nights – 120 Days
  2. Best Mamgu Ever – Underworld
  3. No More, Anymore (Elusive Mix) – Matthew Adams
  4. Human – James Zabiela
  5. The White Flash (Ft. Thom Yorke) – Modeselektor
  6. Gridlock (Digweed & Muirs Stripped Down Mix) – John Digweed
  7. Smoke (Dark Globes Angel Of The North Remix) – Trafik
  8. Moods Feat. Lemon (Valentino Kanzyani Remix) – Shlomi Aber
  9. Whatever This May Be (Ogi Gee Cash & Synchronized Remix) – Luke Star, Yves Eaux & Leron
  10. Beta Receptor (M.I.K.E.`s Undergroove Remix) – The Delta Rock Duo
  11. Royal Gregory – Holy Fuck
  12. Lumberjack – Kris Menace & Alan Braxe
  13. Sunset Boulevard – Paul Keeley


Leopard Tidbits

On the weekend, I did something semi-unusual: I installed a major new operating system on the day of it’s release. This is only semi-unusual because my hesitation only applies to Microsoft operating systems. On Linux, I’d install the latest and greatest of everything, and then potentially spend a few hours cleaning up the mess I’d made (remember, the purpose was to play, not get any work done).

In any case, Leopard Day arrived and I happily set about installing it on my Macbook Pro after making a full system backup on my new Seagate FreeAgent Go external drive. I’d be interested to see a correlation between external hard drive sales and the release of Leopard, as I’m fairly certain you’d see a fairly hefty spike. As an aside, the FreeAgent is a nice little drive that satisfies my major requirements: lightweight, and bus powered (meaning it doesn’t need an external power supply). It’s not overwhelmingly fast (it took about 3 hours for SuperDuper! to archive my 70gigs of data), but once Time Machine gets running I don’t notice it at all.

It’s taken a few days to get fully comfortable with Leopard. I have run across a few annoyances (and bugs) but the good definitely outweighs the bad.

Without further padding the content of this post, here’s a collection of thoughts and tweaks related to Leopard that you might find interesting:

  • The Address Book no longer has support for Bluetooth devices. This is disappointing, but Blue Phone Elite looks like a good replacement for that functionality, as well as what Proximity provides.
  • On a related note, Proximity seems to work just fine, as does everything else in my Calendar Synchronization post (excepting, of course, the Address Book SMS stuff).
  • Quicksilver was picking up the backup copies of my applications from the Time Machine drive. To disable this, in Quicksilver select Catalog / Applications and de-select “Find All Applications”
  • Spotlight was finding stuff on my Time Machine drive as well. I’m not sure if this happens to everyone, as the drive wasn’t empty when I initially plugged it in, and various posts in the Apple discussion groups seem to indicate it’s not a common problem. Solved by adding the Time Machine backup directory to Spotlight’s Privacy page.
  • Spaces is great, but I wish it were a little more configurable. I run a multi-monitor setup most of the time (laptop sits open to one side of an external monitor). What I would really like is to have separate “spaces” for each monitor. Unfortunately, Spaces sees the two monitors as one large workspace, and switching to a new space swaps both. I would prefer to have Mail, iCal and iTunes open on the laptop monitor at all times, but setting those apps to “All Spaces” makes a big mess when I disconnect the laptop and run as a single screen.
  • Spaces seems to have several bugs related to switching applications. In truth, I don’t know if these are bugs in the apps or in Spaces, but certain apps don’t behave themselves very well. For example, Cmd-Tabbing to Firefox will send me back to the correct Space but not activate Firefox. Adium doesn’t seem to respect the “All Spaces” command very well. And Photoshop CS3 has trouble with it’s fading UI elements when you activate it from another Space. None of these are show-stoppers, but hopefully they will get resolved fairly soon.
  • The FreeAgent Go comes with a double-headed USB connector – one for data, and one for power. Turns out, you only need the data plug connected on the Macbook Pro. This is nice, as the MBP only has 2 USB ports and they are on opposite sides of the machine. The additional power connector is, allegedly, only required for certain laptops that don’t provide enough power over a single port. Fair enough, but the MBP does so you can forgo plugging them both in.
  • I’ve had a few power-related issues since the update. Once, the system crashed when waking from sleep. On another occasion, the system refused to power down. Finder stopped, but the OS hung showing nothing but desktop. I have a suspicion this is related to Bluetooth devices (doh!). I’ve also had a few occasions where, when reconnecting the external monitor, I log in and the system immediately goes to sleep. I can wake it and log in immediately with no harm, but it’s still odd. I’m considering resetting the system manager to see if that clears things up.

It’s Fun to Play With Stuff (or Why I’m Glad I Switched to the Mac)

On the day after Apple announced a record quarter, John Gruber runs down a list of possible reasons why people are switching to the Mac. I’m not going to argue with any of his statements — for the most part, I think he’s dead on. But I’d like to add one of my own, based on my personal experience of switching from the PC to the Mac.

I’ve always been a PC user, at least since our first 386SX-16 that my Dad bought for us when I was in high school. Before that, I used Apple IIs at school and spend many a day playing Pools of Radiance and coding text adventures on my Commodore 64. I had certainly played with Macs, but they always seemed foreign and inaccessible to me. I can vividly remember commenting to a friend (in the days of Windows 3.1) that using a Mac made me feel like I was trapped in Windows and couldn’t get out of it. Keep in mind, I also had about 4 different versions of my autoexec.bat and config.sys files that could be swapped in depending on the memory requirements of the program (or, more likely) game I wanted to run.

In any case, I pretty much lived and breathed PCs from DOS 4.2 through to Windows XP, and made my living developing web and Flash applications on a variety of PC hardware. In the meantime, I also ran Red Hat Linux on an old Pentium 100 (complete with F00F bug) that served as my router in the pre-LinkSys NAT box days, and even dabbled with a Debian (unstable) KDE desktop for about 9 months — although frequent reboots to Windows (or sluggish sessions in VMWare) to use Photoshop made it impossible to give up on Windows completely. All the while, I followed the progress of OS X from a distance, happily digesting Ars Technica’s in-depth reviews of the OS on every release from pre-beta through to Tiger. I’m a curious fellow that way.

For me, using a computer has only partially been about the tools that it provides. It’s also about playing. I love to install things, mess around with servers and settings, just to see if I can get it to work. It’s the same reason I bought a PSP — because it was hackable. I could make it do fun and interesting things. I could play with it, not just on it.

Right now, it’s the Mac that embodies this sense of play the best for me in the computer world. Linux was fun for a while, but it lacked the professional tools I needed to do my job. And it lacks the completeness that Apple provides, each service integrated with the other in a way that makes you want to connect the widgets to the doodads, and watch them play together.

This sense of play extends beyond the OS services and bundled applications. A system like Quicksilver could never exist on Windows or Linux, as much because of the APIs exposed through AppleScript as because of the giddy sense of discoverability built into the application by someone that clearly cares dearly for the Apple ecosystem. (It’s funny to write that about Quicksilver, an app I once described to a fellow Unix-head as “like a pipe for GUIs”).

The Mac opened up a whole new world for me to play in, and the rabbit hole runs pretty deep. For me, Vista was the final straw — not only did it not provide anything new and fun to play with, it made everything my PC used to do seems horrifically slow. It lasted a few months, and then I switched.

Because if it’s not play, it’s just work.

Calendar Synchronization, continued.

A few days ago I posted about using Spanning Sync and Proximity to synchronize iCal, Google Calendar and my cell phone (a k790, although any phone supported by iSync should work).

It turns out there is a free alternative to Spanning Sync called GCALDaemon, which is a bit more work to get running but a decent alternative if you don’t want to pay for Spanning Sync.

Continue reading

The Perfect Storm of Calendar Synchronization: iCal, Google Calendar and Cell Phone

There was a time when I could keep my entire schedule in my head. Years of university test times and due dates were dutifully tracked by my brain. In the intervening years, however, I seem to have killed most of my long and short term memory with booze — or maybe I’m just a whole lot busier.

In any case, I’ve been facing an increased sense of panic every time I try to book an appointment. What if I have a conflict? Krista keeps her entire life in the pages of a daily calendar, so I’ve attempted to follow suit, digital style.

This isn’t the first time I’ve tried, but every previous attempt failed for one reason or another:

  • Google Calendar: I love having my schedule available from pretty much any machine with an internet connection, but launching it seems horribly slow and the whole experience is oddly divorced from everything else on my Mac. I could write a whole other post (and maybe I will) about my migration from Windows native apps to Web Applications, and back to native Mac apps. I think it says a lot about how good OS X’s integrated tools are, though, that I’ve taken that path.
  • iCal: really, a beautiful calendar, but I missed the “everywhere-ness” of Google Calendar. I can do a one-way sync from Google to iCal using iCal’s Subscriptions, but anything I add to my local calendar won’t get reflected back. This is critical, as I’d like to be able to check the calendar from any other machine, including my cell.
  • Sony Ericsson k790’s built-in Calendar application: a surprisingly full-featured little calendar tool. For my process to work, I need to be able to quickly add events on the go. iSync takes care of synchronizing iCal and the k790, but I’m too forgetful (and lazy) to sync it myself whenever changes are made.
Continue reading


I suspect that for most fans of electronic music, there was a trigger song, band or album. It’s not like you hear this stuff on the radio — certainly not where I grew up in Calgary. College radio played hard-core techno on Friday nights, but to me it was (and remains) totally inaccessible.

My song was Orbital’s “Halcyon + On + On” from the Hackers soundtrack (at least, that’s where I heard it). I’d listened to a bit of other stuff, but that track blew my mind. I promptly went out and bought In Sides, and never looked back. Over the years, I collected every other Orbital album as well. Long before I dreamt of being a DJ, I imagined building new sounds out of “I Wish I Had a Duck”, from Snivilization. Layer upon layer of electro-squish and samples, Orbital created an imaginary world in the confines of that song.

Years later, I found myself searching for an opening track to complement Layo & Bushwacka!’s brilliant “Saudade”, and I reached for “I Wish I Had a Duck”. Orbital’s best work still resonates, and in a way this mix brings me full circle.

Sidenote: if you’re an Orbital fan, be sure to check out Paul Hartnoll’s solo album, “Ideal Condition”. Justifiably moving away from the core Orbital sound, he manages to find some brilliance in cinematic work and pop collaborations.


  1. I Wish I Had A Duck – Orbital
  2. Saudade (Remix) – Layo & Bushwacka!
  3. Rej (A Hundred Birds Remix) – Ame
  4. When I Listen 2 This Sound, feat. ZM (Alex Celler Mix) – Nikola Gala
  5. Builder (Kris Menace Re-Edit) – Eva
  6. Anime (Sequential Remix) – Hernan Cattaneo, John Tonks
  7. North American Scum (Kris Menace Remix) – LCD Soundsystem
  8. Affectation (Dousk Dub Electro) – Chris Nemmo & Andree Eskay
  9. One & Only – Jimmy van M & Nick Warren
  10. Tornado – Habersham
  11. Discopolis (A Hundred Birds Remix) – Lifelike & Kris Menace
  12. Tease – James Harcourt
  13. One Day (Spiritchaser Terrace Mix) – The Craftsmen


Why The File Manager is Still the Best Media Manager

After I first installed Windows Vista, I attempted to use the default application (whenever possible) for activities which I usually installed some kind of helper app. For example, I initially toyed with Media Player instead of installing Winamp, and use the included photo manager instead of grabbing Photoshop Album.

In the process of installing my iPod software, I also decided to give iTunes a whirl. I have never actually used iTunes — it’s always been completely at odd with my expectations from music management software. The few times I played with it, it was baffling. I didn’t quite understand it’s legendary status as the most usable media player available. It was also huge. Continue reading

In Completion

It seems silly that it’s been so long since my last release, a problem that’s rectified by In Completion. My first set with the new Mixmeister Fusion software, it’s a lot closer to my live sound than the studio sound of previous mixes. The tone is mellow overall, but you’ll find a few barn burners stuffed in there as well. Enjoy.


  1. Tripswitch – Indigo
  2. Ormatie – Glossow (Funk Harmony Park Remix)
  3. Jody Wisternoff – Nostalgia (Remix)
  4. Funk Harmony Park – Crystal Sky (Hernan Cattaneo & John Tonks Remix)
  5. Jaytech – Starbright (Jaytech Touch Your DJ Mix)
  6. Above & Beyond – Good For Me (King Roc Dub Mix)
  7. Dominic Plaza – Korny (D-Nox & Beckers Remix)
  8. Jaunt – Travelling
  9. Benz & MD – Signals
  10. Achillea – The Seeress Prophecy (Micah’s Premonitions Remix)
  11. Jaytech – Manipulator (Parallel Sounds Remix)
  12. Tsewer Beta – Marl 1 (You’ll Never Guess Remix)