“Next Unread Message” Script for Apple Mail

One thing that’s always bugged me about Apple’s Mail.app is the lack of a quick shortcut to your next unread message, irrespective of which mailbox it is in. Luckily, it was fairly easy to whip up a quick little script which does just that. Note that the script assumes your mail is sorted with the newest messages at the bottom — otherwise, you’ll need to edit line 7, replacing “last message” with “first message”.

Add a keyboard shortcut with your favourite tool, like FastScripts or Quicksilver.

Endless Groove, episode 2

Endless Groove Episode 2 continues in the idea of finding a nice, mellow relaxing groove and just letting it run its course. That’s not to say there aren’t moments that make you want to break out and dance, but this is music to work to. Or to drive to. This is a collection of music that I absolutely love, each track with a sprinkling of magic melody to keep things interesting. It also features one of the best tracks I’ve heard in years, the perfectly named The Magnificent by Lindstrøm. Killer.

  1. Memory Tapes – Treeship (edit)
  2. Tigerskin – Platin
  3. Fritz Kalkbrenner – Blackmail
  4. Hernan Cattaneo & Soundexile – Butterfly Effect (remix)
  5. Pryda – Reeperbahn
  6. Sebastian Davidson – Nightbird (Shur-I-Kan’s Sound of Summer Mix)
  7. Lindstrøm – The Magnificent
  8. Good Guy Mikesh & Filburt – Someone Told Me
  9. Woolfy vs. Projections – Absynth (Markus Worgull Remix)
  10. Shonen Jump – Vincenzo
  11. Antix – The Hoard (Dousk Remix)
  12. Dølle Jølle – Balearic Incarnation (Todd Terje’s Extra Doll Mix)
  13. Iridium – Lullabies In The Dark


Endless Groove, episode 1

I spend a lot of time sitting at my computer (shocking, I know). Sometimes, I just want some nice, mellow house music that sets itself into a groove and rolls. Some of my sets have had this characteristic, but I decided to create a new imprint called “Endless Groove”, just for these sorts of mixes. It’s got a bunch of tech house and a bit of progressive, and every once in a while the set kicks it up a notch and you may find you head bobbing along and your feet tapping your chair. At least, if you’re anything like me…

  1. The Black Dog – Train By The Autobahn (Part 1)
  2. Danny Howells – September
  3. Lindstrøm – Where You Go I Go Too
  4. Adele – Hometown Glory (Pocketknife’s Familiar Faces Remix)
  5. Junior Boys – Hazel (Ewan Pearson’s House Dub Mix)
  6. Felix Da Housecat & Kris Menace – Artificial
  7. The Chain – Geo
  8. Matias Aguayo - Minimal (DJ Koze Mix)
  9. Schodt – First Breath (Dankann Remix)
  10. Tore Jarlo – Raining Down On You feat. Pia (Dumb Dan Edit)
  11. Bertrand Dupart & Gwen – Lolita (Rocco Remix)
  12. Low Motion Disco – Things Are Gonna Get Easier (Windsurf Remix)
  13. Paul Keeley – Life Aquatic
  14. Danny Howells – September (re-entry)


phoenix sessions 005

So it turns out that if you wait to too long between set releases, pretty much every one of your favourite artists releases a killer new track. I guess you could refer to this set as the Epic Mix.

16 Bit Lolitas make a couple of appearances with tracks from their magnificent new LP. DJBS favourites UNKLE, Jaytech and Way Out West all contribute in one way or another — I even found room for the new version of the all-time classic Shapeshifter’s track, Lola’s Theme (which made an appearance on one of my first ever mix sets, many years ago).

This will probably be the last set released under the “phoenix sessions” moniker for a while, as I intend to explore some new spaces in the near future. Stay tuned.

  1. Black River (Gui Boratto Remix) – Bomb The Bass
  2. Reformation (Robert Babicz Remix) – Lucca
  3. Coconut Blues – Gabriel Ananda
  4. Bazook (Bazookapella) – Chris the Greek & Matheos
  5. Formula of Fear (Uberzone Dub Mix) – Hybrid
  6. Murder Weapon – 16 Bit Lolitas
  7. Azteca (KOS’s Stadium Mix) – KOS
  8. Twilight (Layo and Bushwacka! Remix) – UNKLE
  9. Lola’s Theme (2008 Re-edit) – The Shapeshifters
  10. Heart & Soul – Yvel and Tristan
  11. The Warning (Terracotta Army’s Eastern Invasion) – Way Out West
  12. Nobody Seems to Care (feat. Jennifer Horne) – 16 Bit Lolitas
  13. Candy (James Zabiela Remix) – Spooky
  14. Geko – Guy J
  15. Meaningful Story (Jaytech Remix) – Dinka
  16. Omptine D’Un Ature Ete, L’Apres Midi – Jay Haze and Yann Thiersen

Cappuccino’s FlickrDemo in 45 lines of jQuery

When I first saw 280 North’s “280 Slides” application, I have to admit I was very impressed. They built a truly native-feeling (well, if you’re on a Mac) tool on the standard web platform. Not an easy feat, and clearly some big brains operating on the problem.

But the more I read about their toolkit (Objective-J), the more unsettled I felt. It’s the same feeling I get when I see tools like Flex. These are some seriously complicated development environments, meant to abstract away to the fundamental building blocks of the web.

When 280 North released their Objective-J toolkit a few days ago, called Cappuccino, I poured through their documentation and demos to get my head around what they had built. And it’s very impressive. But as a jQuery addict, I didn’t like their dismissal of it as at tool for making small adjustments to a web page. I feel that you can build a full-fledged web application in jQuery just as simply — or simpler — by embracing HTML/CSS as a layout engine, and JavaScript as a scripting language.

So I tackled re-implementing their FlickDemo application (several hundred lines of Objective-J) using jQuery and jQuery UI. It took about 3 hours to build, and ended up being about 45 lines of code (plus the frameworks, of course), and just under 200 lines of CSS declarations.

What I didn’t do: I didn’t bother hacking the CSS to work in Internet Explorer. It’s not that it couldn’t be done — jQuery supports it just fine — I’m just lazy. So you’ll need a modern WebKit or Gecko browser to see the demo. I also didn’t implement the drop shadows that Cappuccino uses on their images.

Also, the jQuery version doesn’t take over all you keyboard shortcuts, so you can still navigate around in your browser.

Original Cappuccino version

My jQuery version

Download the source here: flickrDemo-jQuery.zip

Update: Due to popular demand, I’ve changed the behavior of the slider so the image size updates in realtime. Total change: one word.

Update 2: Alexander Simmerl was nice enough to provide an upgrade to the image loading, bulking up the code by a few lines but greatly improving the load animation. In the comments, dak contributed a 2-line CSS fix for the inline-block layout problems in FF2 and IE7, which I’ve also merged.

I think this is as far as I’ll take the demo. Ultimately, it’s not that compelling of an application (but it does make a good demo). To respond to some of the criticism I’ve read, my point was not to argue that jQuery was a drop-in replacement for Cappuccino. Clearly there’s a ton of nuances to the Cappuccino runtime that would need to be carefully reimplemented if we wanted a 100% identical demo. My point is that it’s quite simple to do web application development in jQuery, and something as heavy as Cappuccino is not the only option (and in many cases, probably not the best option). I see Cappuccino as a kind of AIR-in-reverse (native apps that run in a web browser!) and possibly an interesting technology path for coders that are already familiar with Cocoa but don’t have experience with the nuances of direct web development. One thing I’m sure of is HTML/CSS/JavaScript are not going anywhere… they may be complimented by frameworks like Cappuccino, but the core will remain.

phoenix sessions 004 (Air Canada Edition)

A large chunk of this mix came together on a flight from Calgary to Montreal, early one morning a few weeks ago. It was a really nice way to spend the flight, and the presence of power adaptors on the seats really made my day. Flying the horrors of Continental or United lately has really blinded me to the perks the rest of the civilized world enjoys.

Only one comment this time about the set: Sultan and Ned Shepard have delivered one of the most mind-blowing breakdowns in recent memory in the form of “Jeopardy”. I’ve switched things around a bit here by combining the original’s techy progressions with 16-Bit Lolitas’ funkier remix, and it gives me chills. Enjoy.

  1. Bonafied Lovin’ (Juri Hulkkonen Remix) – Chromeo
  2. Movin’ (UNKLE’s Surrender Sounds Session 9) – Skylark
  3. Mongoose (Guy J Remix) – Sasha
  4. Jeopardy feat. Kuba Oms – Sultan and Ned Shepard
  5. Jeopardy feat. Kuba Oms (16-Bit Lolitas Mix) – Sultan and Ned Shepard
  6. One Dress, Two Legs (Dub Mix) – Jaytech and Jeff Drake
  7. Fun Punch (Bag Raiders Remix) – Bag Raiders
  8. Ikaros feat. Nicky (Retroid Remix) – Clesk, Pea and Shuda
  9. Anime (Rocco Main Mix) – Hernan Cattaneo and John Tonks
  10. Shine On – Soda Inc.
  11. The Big Space (Subsky Mix) – 3kStatic
  12. Dusty Horizon (Trafik’s Sirocco Mix) – Roland Klinkenberg
  13. Pyramid – Jaytech

phoenix sessions 003

I’m not normally this prolific, but after the release of Strange Thoughts my buddy Kent and I had the following IM exchange:

Kent: Strange Thoughts was exceptional. I mean, really really terrific — I was literally transported to a new realm of musical understanding. One question though… when are you going to get back to making party music? Me: Umm… right now?

For some reason I don’t have a log of the exact conversation, but my memory of the exchange is very clear and I’m confident Kent used those exact words.

In any case, building a rocking, danceable party mix came effortlessly. There’s literally a TON of phenomenal new music out there right now, and it was a joy to build a set with it. I also wanted to get this out fast, hence the tiny turnaround after Strange Thoughts.

Session 003 hits all my favourite places — soft, epic progressive house and trance tracks like Williams’ “Love on a Real Train” and Jody Wisternoff’s incredible remix of “Miami Nice”. After the first half, things really start to take off in the form of some funky house courtesy of Ministry of Funk. Then we slide into some glitchy, dirty electro funk before polishing it off with Peter Martin’s classic “Perfect Wave”. Enjoy.

  1. Arrival – Stoneface & Terminal
  2. Love On A Real Train (Version by Studio) – Williams
  3. Yes We Can – House Music United
  4. If You Should Go feat. Susana (Inpetto & Duderstadt Dub Mix) – Armin van Buuren
  5. Titans (Elias Tzikas Mix) – Kosmas Epsilon
  6. Give It Up/Reaction (Adam K, Soha & Alex Gold Remix) – Alex Gold
  7. Miami Nice (Jody Wisternoff Mix) – Astral Tiger
  8. Surin – Quivver
  9. Love On A Real Train (Williams Odyssey Mix) – Williams
  10. Pictures – Stoneface & Terminal
  11. Funky Nation – Ministry of Funk
  12. You Control Me – Lil Devious
  13. Word – Sebastien Leger & Chris Lake
  14. In The End (Mazzali & Orlandi Mix) – Fuzzy Hair & Rock Da World
  15. Bleep – Sandy W
  16. Perfect Wave – Peter Martin

Strange Thoughts

It’s a cliche — dance music and obscure science fiction samples go together like cake and frosting. But it’s an awesome cliche, because there’s something amazing about that little snippet of speech, taken out of context. And later — sometimes years later — you’re watching an old movie on TV, totally unexpected, and that line of dialogue weaves its way back into your consciousness in its original form. This happened to me a few months back watching The Thin Red Line. I think 90% of that movie has been sampled, mostly by UNKLE. (THX-1138 is another film where every 3rd line of dialog is familiar).

With that in mind, I wanted to create my own sample-laden mixset. The tone is darker and spacier, with less emphasis on the dancefloor and more attention paid to the headphones. There’s a bunch of futuristic dub, a bit of downtempo, and some killer progressive stuff in there. Enjoy.

  1. Serene – UNKLE
  2. Masato Eternity – System 7
  3. Bleed – Shiloh
  4. Obscure Hobbies – Pako & Fredrick
  5. Your Friends Are Scary – Younger Brother
  6. A Coffee Shop In Rotterdam – Alexander Robotnick
  7. Reckoner – Umut Gokcen vs Radiohead
  8. Indigo (Androcell Remix) – Tripswitch
  9. Fast Freeze – MyMy
  10. Itajai Vibes (Claes Rosen Remix) – Sultan, Ned Shepard & Maher Daniel
  11. 8000 – Extrawelt
  12. A Case In Point – Terry Lee Brown Jr.
  13. The Queen of All Everything – Ott

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