More Random Shuffle Thoughts and “Playlists as Moods”

  • Die-hard ipod fans will attribute it with a hint of clairvoyance. I’m listening to Tech Nation with Apple journo Leander Keahney. It was recorded before the Shuffle was out, but he was commenting how the IPod on shuffle mode can sometimes seem to find just the right song for the moment. Since humans are naturally inclined to anthropomorphise technology, and since the concept of probability is also not a strong point (casinos exist), it’s only natural to assume that shuffle-mania will lead to some people deciding that The Ipod Knows.

  • Goodonya Apple for innovating. I was a bit harsh in my previous entry because, quite frankly, I wouldn’t contemplate using a flash player without a screen when there is so much better around – iriver, creative, etc. However, I like that Apple are willing to take such a novel idea mainstream.

  • Pity about podcast creation. I wouldn’t expect a new audio player at this stage to embrace podcasting. But there is a general trend towards people creating their own text/audio/video content. It would have been nice to see a built-in microphone like many of the other devices. But hopefully a smart company will come along and produce a high-quality one. And hopefully the OS doesn’t cripple like the way the ipod recording is capped at only 8khz, despite the hardware offering 96khz. Even speech suffers greatly at 8khz. At 96khz recording, it could make an okay portable recorder. Hardly brilliant without a screen, but usable.

  • Pity about podcast listening. Whether in shuffle mode or not, it wouldn’t be much listening to podcasts in the absence of a screen to choose podcasts. You can’t just skip through podcasts to hear which one to listen to, because many of them won’t identify themselves immediately if at all (such as those on

Okay, here’s what I really want on my ipod and it would actually fit well with the Shuffle: treat playlists as “Moods”. I want to switch from “I feel like listening to hyper music” when I start going for a run, to “I feel like listening to chilled music” when I’m in the middle of the run, to “I feel like listening to speech” when I’m getting bored of the run to “I feel like listening to hyper music” when I feel like I can no longer run. You can almost do this now by switching between playlists, but there are two key enhancements I’m looking for:

  • Pick up the Mood where I left it. Naturally, I don’t want to start at the first track in the playlist. Since I keep switching between Moods, I’ve recently heard it. Moreover, I want to keep going with the same track, at the point where I left it. This is critical for speech. It’s not enough to save position for AAC files. That’s an artificial barrier. Just because I wanted to listen to music for ten minutes doesn’t mean I should have to spend 30-60 seconds finding where I was. Even if IPods had a bookmark feature, I’d prefer not to bookmark it permanently because the need is too transient.

  • Rapidly switch between Moods. I’m looking for a hardware button to rotate mood. The above example is not the only driver. When commuting, I switch frequently between reading and listening to speech. When I’m walking, I prefer to listen to podcasts. When I’m on a bus, I prefer to listen to music while reading. When I’m crushed in a tube carriage, I prefer to listen to podcasts.

BTW, Mood is not the most accurate term. Clearly, I’m not suggesting people swing from depression to elation by embarking on a train! I just think “Mood” just happens to be a more evocative term than “current context and needs of the situation such as they have arisen”.

This all fits in with the “young people multitask” cliche anyway. Now if the shuffle was to hold several playlists, it would be a much more attractive device (to anyone who is not convinced that it can read their mind and pick the right song at any time anyway). Do people listen to different types of music? I’d have thought so … that’s one of the selling points of HD-based players. So how will they feel when they leave home and have to choose between optimising for gym versus optimising for work or commuting? The problem doesn’t need to be there: let people hold several playlists and switch between them as their moods shift throughout the day.

Shuffle Along Now

Apple’s going for all the superlatives: bestseller, most coveted, and now … most questionable of them all, the IPod Shuffle.

There are clearly some design concerns here – like who forgot the screen? And a microphone, though slightly niche, would bring it up to par with IRiver and other competitors.

But, after all, it’s a shiny white ipod … it will sell out by the weekend even if it doesn’t actually emit any sound. More concerning to Apple’s bottom line should be the effect on its traditional customers, who have always paid a pretty premium. As Russell Beattie points out, the Shuttle strategy is likely flawed because people choose products based on how it makes them feel about themselves. Walking around with a white cord emerging from your innards won’t be half as cool when the masses buy in. Forget about IPods on the catwalk, sexy bodies on posters, and magazine features asking celebrities what’s on their pod. Madonna and Bono, make way for Homer and Marge!

The premium people pay for Apple is not just the price of looking and feeling cool. Apple also have a good reputation as a solid manufacturer and worthy provider of support. Personally, I’ve had a couple of incidents with my IPod and they’ve been extremely professional. So much so that it’s a big factor for choosing my next laptop. I doubt Apple would tell me they’re not honouring the warranty because it’s my fault that a key fell off the keyboard. Toshiba did so (they told me it indicates irregular use … like typing instead of using the mouse???). Dell has done far worse in the past. So, in my case, my experience with IPod support has encouraged me to buy an Apple laptop next time round. Handling support for a mass market is a very different thing for Apple. There are logistics issues and a likely increased proportion of claims … if they can’t take care of it, they will attract a bad name and risk getting their traditional customers offsite. Will you buy an Apple if you have to keep returning faulty Shuffle models? Or, in a more extreme case, what happens to the design firm contract when the CEO’s son gets stonewalled by an Indian call centre who refuse to fix his faulty Shuffle? I just hope Apple can deal with all those support issues.

And presumably Jobs’ underlying strategy is to deal with these issues admirably. Get everyone hooked on the “Apple Way”, so the mass market will end up buying Apple PCs, and, in the not-to-distant future, Apple phones with all the premium services you can imagine. If this dodgily-designed player is the piece of kit that takes them there, then their 200+ percent stock rise is looking pretty conservative.

Why’s Ruby: Bizarro Ruby Text

Why’s (Poignant) Guide to Ruby (polite applause Bruce Eckel)

Looking forward to reading this online book. A little bit because Ruby is such a nice language, but mostly because the book looks so damn bizarre and contains abundant cartoons, all the while being really well presented.

Is it possible not to appreciate a textbook that eases readers into this powerful dynamic programming language with the following opener:

Pretend that you’ve opened this book (although you probably have opened this book), just to find a huge onion right in the middle crease of the book. (The manufacturer of the book has included the onion at my request.) So you’re like, “Wow, this book comes with an onion!” (Even if you don’t particularly like onions, I’m sure you can appreciate the logistics of shipping any sort of produce discreetly inside of an alleged programming manual.)

As luck would have it, there is Ruby content to be found at some later point.

Added Category Feeds, Refactored Categories

For a while, I’ve been meaning to check out how WordPress handles category-specific feeds. Having such feeds available would free me to write boring posts like this without fearing people will spill their cornflakes as they browse the morning Software Development feed. Thus, this post is under “General”, which I will use for a confusing combination of administrivia and anything that’s not really tech. Basically non-core stuff that most people wouldn’t bother subscribing to. And if that doesn’t put you off the General entry, then please, be my guest and read on.

HumansAndTech I’m using for “high-level” software and tech stuff, like usability, podcasting, blogging, business, etc.

SoftwareDev is all the relatively low-level stuff. The two assembly programmers reading this blog will no doubt be disgusted by my use of “low-level” to refer to concepts as high-level as software methodology. Relativity.

Podcast simply indicates there’s a podcast in there, so you could use that feed for ipodder or other podcast clients. Or it’s fine to use the “All Feeds” category; the bandwidth difference will be trivial compared to the size of the MP3s. Theoretically, “Podcast” is orthogonal, as I could rabbit on about any one of “General”, “SoftwareDev”, or “HumansAndTech”. In practice, I’m keeping my podcasts on the topic of software development, so most will be SoftwareDev. (Anything on usability will be HumansAndTech.)

Hopefully, the change hasn’t caused any problems with aggregators – I refactored the categories of some old entries, but didn’t update their timestamp.

I can’t help being meta about this and pointing out that refactoring the domain model has been a win-win: users (admittedly not many of them) benefit from a structure which is coarser-grained but nonetheless satisfies most usage profiles; I gain by having to think less each time I post something.

Triple J is On the Pod!

Triple J, a fine Aussie youth radio station, has started podcasting (thanks Splatt). Right now, it’s just a trial by one show – Hack. Still, this is a milestone for Aussie radio. First. Podcast. Ever. I’m feeling out of touch as I haven’t heard it before, but this “Hack” show seems to be more about politics than porting Linux to your refrigerator.

Triple J is part of the ABC, an organisation similar to the BBC, so the station is something like UK’s Radio 1, but with more talk content. Its always had excellent formats and presenters, and I can’t wait for them to jump on the podwagon.

Agile Software Riffcast 3 of 4: Extreme Programming

Click to download the podcast mp3 On Internet Explorer, Click the left mouse button to listen, or click the right mouse buttton and “Save As…” to download. You can subscribe for updates straight into your PC or ipod – it’s easy and free. Refer to the podcasting FAQ at

Here’s the third of four podcasts on agile software development. The first – an overview on agile – is available here and the second – a survey of methodologies – is here. This 37-minute podcast focuses on the best known – and most controversial – of the methodologies: Extreme Programming.

Show Notes:

  • About embracing change, a rapid departure from plan-and-build.

  • So don’t just tweak traditional processes … reinvent them.

  • Four core values:

    • Feedback
    • Communication
    • Simplicity
    • Courage
  • Twelve practices:

    • The Planning Process. Elicitation by negotiation and ongoing discussion; specification by index cards rather than exhaustive documents.
    • Small Releases. 1-4 week iterations.
    • Simple Design. Minimalist approach. Simple, not stupid. Once and once only. "You Ain’t Gonna Need It".
    • Metaphor. Cohesive design.
    • Testing. JUnit.
    • Refactoring. "Refactor mercilessly."
    • Pair Programming. Constant review improves design and testing, enables collective ownership.
    • Collective Ownership. Keeps tacit knowledge spread across team, supports refactoring and ongoing design improvement, acts as contingency against staff departure.
    • Continuous Integration. Ensures code can change quickly, keeps developers’ attention on adding business value rather than micro-managing infrastructure.
    • On-Site Customer. Allows tacit requirements.
    • Coding Standard. Supports collective ownership.
    • **40-hour Week. ** "Sustainable Pace"
  • Origins:

    • C3 project
    • Smalltalk and unit testing
    • Design patterns
  • Stayed tuned for the next podcast, the final in this Agile Software Riffcast series: The Dark Side of Agile.

Thanks again to My Morning Jacket for the sample used in the lead-in track.

Optimising the Out-Of-The-Box Experience

I’ve recently noticed several systems that go out of their way to optimise the out-of-the-box experience:

  • A FreeView TV box . When I turned it on for the first time, it came up with a menu asking me a few basic questions, like what area I’m in. So the main preferences were done, and I didn’t have to spend half-an-hour diving into the menu system and poring through the manual. The rest of the preferences could be filled in at my leisure, or never.

  • Tried out Copernic today. It provided a wizard-type interface to get st up quickly. And when I tried searching for something soon after, it explained that it’s not finished indexing yet. I’m not 100% sure, but it certainly sounded like a message optimised for first-time usage.

As people are drowning in choice, it’s critical for product designers to optimise the out-of-the-box experience – put an explicit check in to see if this is the first usage (and let the user reset it somehow). Especially for software downloads, where it’s so easy to give up and try one of the hundred alternatives. A few patterns are suggested (“virgin usability patterns”?) here:

  • Virgin Wizard: Provide a really quick wizard to focus the user’s attentions on the most important settings. Just taking the time to tune a few key settings can have a big impact on the subsequent experience.

  • Still Moving In: If there are exceptional circumstances – e.g. empty lists or high delays – occurring during first-time usage, make that explicit to the user.

Usability One Step at a Time

Martin Fowler is talking about incrementally improving specialised requirements such as usability or security or internationalisation one step at a time, in much the same way as agile projects should enhance functionality one step at a time.

On usability, it can be done. Indeed, one of the nice things about agile projects is you can get more rapid feedback from users, and iterative development is the holy grail of usability. We touched in this in our Extreme Usability workshop last November.

However, there is a big downside: user training. Many users are too busy to learn new interfaces. So sometimes, you can come refactor your system into something more parsimonious — less “if…then” logic, less complicated domain objects, so it’s easier for developers. This might be necessary to help you cope with an upcoming requirement.

That should be great news for users too as it simplifies their mental model, but what if they’re already familiar with the old model? Unlike developers, they’re not thinking about the system design all day long; they’re focusing on getting the job done, and they’ve probably internalised many aspects of the system. If you go and observe users dealing with a complicated system, you’d be amazed at how creative they can be in finding workarounds!

Thus, a challenge for agile development remains: how to incrementally develop system concepts while providing minimal interruption to users. I’m not familiar with any HCI research on this topic, perhaps it is a good research opportunity in a world becoming more agile.

On internationalisation (I18N), this paper describes some of the processes. It’s definitely a multi-stage process, with localisation-enabling taking place before localisation itself. Here, there is a very obvious way to develop incrementally: develop the English (or whatever market) product first, and ONLY THEN enable it. Doesn’t work for all cases, but it’s amazing how many projects have done a big I18N framework upfront, only to release in one language. With unit tests and modern IDEs, it shouldn’t be difficult to extract messages out later on.

And ahora for meme chose completely different

My previous blog entry discussed fun with technology, and I alluded to the Firefox language extension. Well, that’s quite a simple idea just takes one random term on the page and provides a translation. Still, it’s a nice idea and perhaps there is more being planned. There are some other nice browsing tools too, like rikai, which can provide translations in tooltips.

Well, here’s something I’ve been wanting for a really long time …

Have you read A Clockwork Orange? Anthony Burgess’s characters use slang called Nadsat … here’s a description:

The use of a completely new syntax is utterly magnificent – a stroke of genius. And it proves once again Anthony Burgess’s remarkable ability and facility with languages of all kinds and with words in general. At a first glance the vocabulary of anti-hero Alex sounds incomprehensible: “You could peet it with vellocet or synthemesc or drencrom or one or two other veshches.”

Or: “So I read all about the scourging and the crowning with thorns and then the cross veshch and all that cal, and I viddied better that there was something in it. While the stereo played bits of lovely Bach I closed my glazzies and viddied myself helping in and even taking charge of the tolchocking and the nailing in, being dressed in a like toga that was the heighth of Roman fashion.”

Then the reader, even if he knows no Russian, get to grips with it, and it’s a very expressive and colourful read. Some of the meaning becomes clear from the context: “We gave this devotchka a tolchock on the litso and the krovvy came out of her mouth”, which approximately translated means, we gave this girl a blow on the face and blood came out of her mouth.

See? Nadsat is gradually blended in, and based on the context, you pick up the meaning. Just as children learn to speak, and expats learn the language of their new homes. Let’s see … firefox,, Nadsat … are you thinking what I’m thinking?

Yes. It’s simple. Write a browser plugin – or HTTP proxy – that renders the page almost as is, but with words occasionally swapped with foreign terms. I realise there is a downside: it would probably be crude, wouldn’t necessarily handle verb conjugation, etc. But the upside in a world where people spend many hours surfing – huge!

And don’t get me started on splicing podcasts to achieve like effect :-D.