Happenings

Design: Cash Machines

I’m off to see a few bands later and figured that, yes, it may actually require money to both get there and get into the venue. Where could one, at 6 in the evening, find a source of money? Surely my local branch would be shut! Then I remembered that cash machines were invented nearly 40 years ago.

Putting my card into the macine I was given a fairly smart UI prompt that I’d never seen before: “This machine is currently unable to vend 10 notes. If you still wish to continue, input your PIN”. Letting the user make an informed choice before they have to piss around with the rest of the options is a good idea. Very nice.

One PIN later and I picked the “Withdraw Cash” option. I was somewhat dismayed with what I saw on the next screen. The options included:

  • £10
  • £30
  • £50

And how are you going to allow those options? Hmm? You’ve no tenners.

UI design hint 3: Don’t offer options to the user that you can’t provide, particularly when you’ve already explicitly told the user that. What a waste of an earlier smart prompt.

Order, Part 6: Music

Music: we all like it. MP3s: we’ve all got them. A problem: how should these files be structured on your computer.

First of all, the operations I want to be able to perform:

  • Selecting all music by an artist.
  • Selecting a specific release by an artist.
  • Being able to pick individual tracks with relative ease.
  • Creating a snapshot and being able to see what files have changed or been added since that snapshot (for the purposes of backing up efficiently).

Originally, I had them all in a single folder called “Music”, with individual track titles in the form “Artist – Song.mp3”. This worked well for a while, but started falling on its arse when the song count got over a few thousand. Thanks to some of internal handling, Windows does not like folders with thousands of items in them. So I’ve been trying to structure them in another way and have a few problems that I want to try and work out with the help of you, the kind reader.

The most obvious thing to do is to create a folder for each artist and then a sub-folder for each release. So now we have “Artist/Album/Artist – Song.mp3”. Now, you may think that, given this structure, the “Artist” in the filename is redundant. Well, it is but I’m keeping it because I know that if files need copied or moved around it’ll be easier to have this present in the name. Also, I want the filename part to be unique (for this kind of moving around) and I want to minimise redundancy. This configuration throws up a bunch of edge cases that I’m not completely sure of the best way to resolve:

  • Singles – There are two problems with singles. The first is that if the main track is identical to the album version of the track then the uniqueness of filenames might be lost and data may be replicated. So, do you keep the version of the file with the album, single or both? If the title track is a different mix (a radio edit, say), it’s easy enough to keep both and put “(Radio Edit)” in the filename. The second problem is that of multi-format singles. CD, DVD, vinyl: do you create a subfolder for each release or one for the singles as a whole? If the former, which subfolder gets the A-side if it is the same across all formats?
  • Split Singles – The system, as it stands, assumes that one release means one artist. In the case of either a split single or a compilation this does not hold true. How do you deal with this? If you put it into one of the artists folders, then you lose the connection to the other. If you create a new split artist folder (“artist1 and artist2”), then you disassociate from both artists.
  • Compilations – An extension of the above problem: how do you deal with multi-artist compilations? A “Various/Album/Artist – Track.mp3” folder set up? How, then, do you connect an individual artist to their contribution?
  • Featuring – A weaker edge case. When a particular track features another artist (“Nofx – Go Your Own Way (ft. Greg Graffin)”), how do you tie that in? After the track title (as in the example, or as part of the artist? How do you connect the song to all artists? In the example, I’m more interested in the featured artist, but it could plainly be the other way.
  • Rarities – There are always songs which exist without official release or outside of any real collection. I tend to call these rarities (whether they are actually hard to find or not). How do they fit? At the moment, I go with the “Artist/Artist Rarities” structure. Better ideas?

Suggestions and ideas for some or all of these most definitely welcome (that being the point of this post and all).

[For anyone wondering why this is Order part 6, and not part 5, I accidentally created two parts 4 and it’s too much hassle to fix now.]

Design: Hotmail Editing

Upon checking my Hotmail account earlier, I was accosted by a feature alert as I logged in. Apparently they’ve got rich text editing these days. Despite the fact that I would never use such a feature (I’m not a fan of comic sans text, or yellow writing on a white background), MSN deemed it worthy of interrupting my browsing to let me know.

UI design hint 1: There is a huge discrepancy between what you want to tell the user and what the user wants to know. Get rid of your fucking ego. If the user does not absolutely need to know something, then don’t force them to find out anyway. Hint at it, make sure that the information is accessible, but do not shove it in the middle of the interaction; especially in a focused operation like checking email.

After your wade through the initial marketing garbage (again, not helping), you get the instructions. It was the message afterwards that really bothered me though: “To keep these instructions open in another window, click here.”

UI design hint 2: If you think that a feature that will be enabled mid-task has instructions so complex as to warrant being written down elsewhere, you’ve already blown it. Instead of wasting your time creating a separate web page that gives diagrams and repeated instructions, fix the real problem: your UI is unintuitive.

A more general rule to finish off: you can’t fix bad UI with good documentation. Remember that.

Order, Part 4: Evolution

The order in which things happen.

Those who say evolution is just a theory simply do not understand the meaning of the word “theory”. Evolution is fact. It just doesn’t explain everything (yet). Investigate further, rather than assuming that intelligent design is therefore right by default (a bizarre and illogical conclusion).

Order, Part 4: Site Maps

Google, in an interesting move, have released the Sitemaps protocol. Each sitemap contains information about what URLs have changed, how often they are likely to change, when the last change took place and how important that URL is relative to the rest of your site. The purpose? To increase crawler coverage and freshness by having web masters do the leg work of notifying them of new pages.

There are currently limits on how big a Sitemap can be (50000 entries or 10Mb), and how many sitemaps one site is allowed (1000), but they are far larger than most people will need at the moment. I’d imagine the 10Mb file size is going to be the real limit of the two.

I was going to rant about how this is Atom/RSS with some added importance functionality (stripped of content). In fact it seems silly to create a new format when either of those formats would have done and kept the file sizes down, with only recently updated items having to appear. However, it seems that Google are allowing, in addition to their own format, text files of URLs (one per line), RSS 2.0, Atom 0.3, and another standard that is apparently used by libraries. Good work.

The smart money says that search engine optimisation companies will be gaming this within the month (depending on how much Google actually end up using the system), Atom 1.0 support will be included once the spec gets finished, someone will suggest adding the value information into the core Atom spec or it will appear as an extension soon after, and WordPress et. al. will be adding support fairly soon.