== UI details that you don't expect to can matter a lot Today I got a sharp and pointed lesson in the importance of UI details that you don't really think about due to a simple event: [[my Twitter client http://choqok.gnufolks.org/]] stopped working (because it hadn't been updated to the v1.1 Twitter API, and Twitter just turned off the older API). When I got on Twitter [[a year and a half or so ago ../OnTwitter]] I didn't spend much time or effort on picking out a client; instead I settled on the first client I found that supported multiple accounts. I knew that I wanted a client but I didn't expect client features to matter all that much for my Twitter experience. I was wrong about that. One small client feature made all the difference for how I interacted with Twitter: [[choqok http://choqok.gnufolks.org/]] has the idea of unread versus read messages. Being able to easily tell what I did and didn't need to pay attention to quietly became crucial for keeping up with Twitter. (It also gave me a very Usenet-like experience, complete with periodic 'mark all as read' catch-ups.) I didn't realize this while I was using [[choqok]], of course, because at that point I was a fish swimming around in water. Then it abruptly stopped working, I started looking at alternatives, and as I tried them out I started realizing how important and even crucial this little feature had become to me. If I can't find a replacement client with an equivalent feature, I have no idea how I'll wind up using Twitter but it's clear that my usage would have to change drastically. (I'm aware that by many standards this obsession with reading Twitter means that I'm doing Twitter wrong. A full discussion of this doesn't fit within the margins of this entry.) One moral I draw from this is that I don't necessarily have any idea what's a crucial feature for people using anything I've built. Things that look trivial and unimportant to me may turn out to be a core part of someone's interaction with my software. This reinforces the old idea that nothing beats actually watching real people use your stuff. === Sidebar: what I think I need in a Twitter client Obviously the minimum requirement is supporting the current Twitter API. Right now this excludes most of the Linux clients ([[ttytter http://www.floodgap.com/software/ttytter/]] is the only one I know that has updated). Otherwise: * graphical, partly because I follow too many people who use various Unicode characters that just aren't displayed in _xterm_ in my font. * supports multiple accounts, either directly or by running multiple instances. * has a distinction between read vs unread messages and can be configured to not mark everything as read when I close the client down, iconify it, etc. At the same time it needs a 'mark all read' option. * can be set to keep a decent number of messages available, in the several hundred range. * shows a quiet marker when minimized if there are unread Twitter messages. * tells me about mentions, direct messages, and so on, because otherwise I will never become aware of them. Ideally: * spellchecks and length-checks Tweets that I write. * can be configured to pass URLs to a specific command to display them. (One of these days I will fight the Linux battles necessary to get URLs handled right by all of the software that just does generic things, whatever those generic things are. The last time I looked it involved MIME type information, but Linux desktops keep changing things around so I have no idea how it works today.)