Song Control: An Alfred Workflow for iTunes

I've been trying to go through my entire iTunes library and clean up the ratings/ playlists of each song. For the past few months I've been using a set of Keyboard Maestro actions to manage all of this, but that solution has been fragile and far from ideal. I decided to take it up a notch with a custom Alfred Workflow.

Song Control.alfredworkflow allows you to manage playlist membership (list) and rating (rate) of the current song, as well as do some common iTunes actions like play, pause, next, previous, and random. You can also get the current song's information by typing sinfo.

All of the details are available on the project's Github page. Enjoy!

Getting Picked

Wonderful piece by Seth Godin:

If your plan requires getting picked and you're not getting picked, you need a new plan. I'm betting it will turn out far better in the end, but yes, indeed, I understand that it's harder than being anointed. Your talent deserves the shift in strategy that will let you do your best work.

It's the classic "that's fine for Merlin" party line, but it's something we should all be taking seriously. Stop making excuses, get off your ass, and do something; if what you're doing isn't working, then do something else. Don't blame the world.

My TEDx Talk: Habits of Highly Boring People

I'm happy to (finally) share my very first TEDx talk, "The Habits of Highly Boring People", which was given in March at Carleton University. I'm extremely happy with how the talk turned out — I think I managed to communicate a lot of the most fundamentally important aspects of what I've experienced over the past few years. However, I desperately needed a shave. Oh well!

New Project Page

I've been neglecting my blog lately, but not without reason. I've been working on a number of AppleScript projects, finishing up my fourth year of university, applying for jobs, and preparing my first TEDx talk (which will be posted soon).

Those AppleScript projects grew up so quickly that I decided they needed their own page and dedicated Github repos. You can see the new Projects page here; it includes descriptions and links to all of my scripts, including those for OmniFocus templates, Evernote exports, and a new script that adds quick access to a support folder in OmniFocus. You can keep up-to-date with the source code of any of these scripts by following me on Github.

On another note, I'll be working on posting more regular and thoughtful pieces here. I'm also working on a custom Python-based CMS to revamp this blog, so that will hopefully go live over the next little bit. Thanks for following along!

Fixed Headers and Vertical Media Queries

I think that vertical media queries are a relatively under-explored avenue in responsive web design. There's a distinct focus on the width of the viewport as being the key driver in layout and design changes, but certain design choices are better served by focusing on the vertical space available.

Sites with fixed headers should take particular note of this. Below, I've included a few examples of attractive sites with fixed headers.

However, when we shrink the height of these sites (while keeping the width constant), the usable area decreases drastically. At the extreme, there is little space available to work width and actually reading the site, which should be the primary design consideration, becomes a decidedly unpleasant affair.

Among those sites that responded to a particular viewport size by changing the header form position: fixed to position: static, all of them did so in response to changes in viewport width, not height. This seems at odds with dimension that actually causes usability problems and, I think, effectively treats device width as a proxy for device/ viewport size. That's dangerous thinking — with an increasingly diverse array of device aspect ratios and resolutions, width is not a sufficient indicator of screen size. We need every vector of differentiation we can muster — not just viewport width and height, but bandwidth, capabilities, and more — to create truly responsive designs.