We need to talk. It's not me, it's you. You're just really busy at the moment. I'm just moving too fast. You need some space.
Tabbed user interfaces are really meant for grouping collections of user-interactables into logically categorised, more manageable arrangements. More than 5 tabs and you should be thinking "This isn't great," more than 10 tabs and you should already be thinking about making changes.
Enter Firefox, where I seldom have fewer than 30 tabs open at any given time. Anyone, who has tried to use Firefox once the tab bar starts getting wider than the window, knows that this UI is a square peg in a hole that doesn't exist. Tab widths are almost always greater than tab heights, so who thought it was a good idea to have tab bars run horizontally?
Fortunately some people have realised that disaster is afoot. I like Aza's suggestion that web apps are treated more like OS X dock items than plain old tabs.
My current approach to tab management is a rudimentary grouping mechanism, based around the awesome Tree Style Tab Firefox extension: Once I have a bunch of tabs open on a particular topic, I create a blank tab, set its address to data:text/html,<title>Sci-fi</title> (or whatever the relevant category is) and dump the relevant tabs in there. A recent addition to my management
policies is "shelving" a tab group that I haven't interacted with for a
while, meaning I bookmark a tab group and close all the tabs. Being
able to reduce the number of active tabs (usually in the region of 10 to 20) really helps with
Firefox startup times. I just wish I could navigate my tabs without the
mouse (filtering, selecting, etc.)
Alexander Limi has a great post about approaching redesigning tabs. However, one sentence troubles me greatly:
The first thing people say when we indicate that we are looking into alternative approaches is usually “But I like my tabs. Please don’t take away my tabs!”
People really say this? Who are they? They can have all my confounded tabs! I want something better than tabs.
Specifically, I'm referring to Mozilla Firefox and it's incessant addon pestering, in various shapes and sizes. Ironically, the addons behaviour feels like the most bolted-on thing in Firefox.
Firstly, short of the sky falling, nothing should prevent software from getting to a usable state when the user performs the relevant action to start it (clicking a shortcut, invoking a link handler from another process.) Possibly the most annoying thing that Firefox does is pop a dialog up in your face telling you about how your addons have updates before the rest of the browser starts, bringing about (at least) two sub-annoyances:
- It prevents you from actually using the software until you make a choice as to whether you want to update your addons or not;
- If you happen to click multiple links (expecting them to all open in tabs), only the first one is handled while the rest vanish off into the ether.
I realise that, in someone's mind, this might have been a good idea because you can't update addons without restarting the browser, and that restarting the browser isn't what most people would call fast; but it really wasn't a good idea. At all. Ever.
Secondly, after having survived the first point and chosen to update your addons, you still have to watch progress bars slowly fill up and your browser restart, while you twiddle your thumbs. You are then assaulted with another addon dialog, informing you that the progress bars you just watched complete were actually addons, by the same name, being updated! If you're lucky then you are ready to start using your browser. If you're not so lucky, some of your addons (I'm looking at you, NoScript) have taken it upon themselves to provide additional annoyances, usually in the form of opening new tabs that explain very little about what you did not know and quite a lot about what you did already know.
There have been some attempts to openly discuss improving the current addon experience, although things seem rather quiet at this point in time, one can only hope that the Firefox team realises that there is a problem and maybe Firefox 4 will have teleportation, time travel and an improved addon experience.
Colin recently wrote about this and although I was probably the person who lead him to write his post, I had no intentions of writing a post myself. However, after reading his post the reality of the situation struck me, as if I were a car stranded in the middle of the tracks of the supersonic clue-train.
To fill in a bit of background, I've been a faithful Cyberdyne customer for at least seven years now, to date I have zero (count them, none) complaints about them, in fact my only comments had been positive ones. I've had fantastic service from them, generally no questions asked and only too happy to help. As far as the human component goes, I don't think anything has changed.
Recently they've made an effort to improve their website and online presence (they were very manual process-ish,) an honourable task. Unfortunately (for the general population at large) they seem to have gotten the meanings of "improve" and "destroy" switched around and I'd like to provide some constructive criticism.
The very first thing you will notice (when using Firefox, Chrome, anything not IE) is that it is impossible to focus the inputs for your login credentials, making it quite the challenge to log in. I actually lied when i said "anything not IE" because it doesn't actually work in IE8 (in standards compliance mode aka the default.)
The second thing you will notice is that your credentials no longer work, despite typing them in for a second time. The reason for this is that your previous account has actually been deleted, purged from this earth. The only clue to this mystery is a little blue information icon next to the "Register" hyperlink that, when clicked, pops up a cramped bubble explaining some nonsense before getting to the crucial information: "Your account is... gone. HAHAHAHA! Seriously, how long did that take you? That long huh?"
No news page with a post explaining what the hell is going on, no email in my inbox explaining that I will need to register again. Hell, I didn't even know the new site was launched. None of my information was migrated. My old account name wasn't even reserved, my personal details were thrown away like a broken toy and my order history banished.
Now, if you've managed to stagger your way through the crotch-high thorn bush that was logging in, you probably want to submit a quote request. From the cramped product selection widget to the 10-item paginated stock display to the lack of a search mechanism to the lack of product images... Hell, if you actually managed to find and select the item you were looking for, you should probably be receiving it free of charge as compensation for mental distress caused.
What I see here is essentially an e-cart system maybe with integration to warehouse or stock systems. There are lots and lots of examples of successful e-cart systems on the Internet, one small one you might have heard of is "Amazon". The serious disregard for usability (which ultimately equates to userbase population) is not entirely uncommon amongst South African online businesses, but this doesn't mean that it is acceptable. If it's this hard to get me to spend my money to buy something I want then you're doing something seriously wrong.
On a postive note, the order status and process feedback features are a welcome change.
Finally, to come back to Colin's main point, targetting a website at a single platform (it's really more like half a platform) is suicide. What do you do if you don't have access to IE6 or IE7 (consider the average Mac OS X user)? You go somewhere else to spend your money, that's what.
I recently got back from my first holiday in several months, it felt really good! I spent a week in Cape Town and half a week in George. I've put some photos up on my Flickr photostream. More to follow.
Communication. The only real reason humanity wasn't wiped out millennia ago by some catastrophic event (like a flock of doves flying overhead) is because we have a guardian angel. Communication. If it were not for not for someone shouting "Watch out!" our forefathers could have easily walked off a cliff and plummeted to their untimely (and wholly unnecessary) demise. Thanks to those handy road sign things, I may never have to find out what it's like to unsuspectingly drive into incoming traffic. Communication is like the hardhat of mankind. Fact Fiction Fact.
Human communication, like electronic communication, has a bandwidth, some forms have significantly more bandwidth available for use and some less so. To draw a comparison, communicating via email is rather a lot like trying to get a spade down your throat: pointless and painful. Communicating via telephone is a step up from email but is still like a midget giving birth to a dinosaur. These things are just hard to do, it's hard to communicate even a vague idea of your meaning in words. It's not that you just need to think a little bit harder or put some more effort in, no, these are hard things to do. Some people spend years getting university degrees in communication just so that they can really convey what they mean over low-bandwidth mediums; you know, things like "So what do you want changed?" "Can you make the text purple instead of black?" I mean, I'm certainly no expert on this and there are probably a thousand things wrong with those sentences. So what now? Are we doomed to never communicate at our full potential? No, there is a divine solution. Meetings.
Meetings are great, the face to face kind, they're high-bandwidth crackdens Edens. You can do all sorts of fancy high-bandwidth things that you just can't do over email or the phone, things like waving your hands or tapping your pen on the desk. These things are important because they really communicate your motives, they're like the Plaster of Paris for language. The next time you really screw up your sentence, try waving your hands a bit, raising your eyebrows or winking; suddenly, and I like to call it magic, those looks of absolute confusion will turn into looks of zen-like understanding. Meetings practically obsolete email and telephone conversations, just think: a waste of time activity probably thousands of years old is obsoleting modern day technology! Rather phenomenal stuff!
All in all, nothing says "I'm a bonehead businessman" like a meeting (almost) half a state away.
So, about 2 months ago my Logitech MX518's right mouse button died, it just stopped working one day. I'm a fairly avid FPS player and play online quite frequently, having a dead right mouse button (which is my jump button, incidentally) helps me nothing at all. What all this means is that the mouse is effectively useless to me without a working right mouse button, a mouse less than a year old, a fairly high end mouse; a bit pathetic, if you ask me.
After changing back to my MX300, as a temporary solution, I realised that going down the DPI ladder was much harder than going up it and now I've decided to give the Razer Deathadder a go. One of the hardest things about the Deathadder is actually procuring the damn thing, I've been waiting about 4 weeks now and nobody appears to have stock of the mouse. DEAR SUPPLIERS, I AM NOT A BUSINESSMAN BUT ACCORDING TO MY RESEARCH I THINK YOU WANT TO GET SOME STOCK TO SELL SO THAT YOU CAN FEED YOUR FAMILIES. LOVE JONATHAN.
Up until recent months, I'd been using FeedReader to keep track of my RSS feeds. While not completely terrible, it had enough annoyances for me to start looking at other readers. Enter Google Reader, which has so far been a relatively (searching/filter posts would be a very welcome feature) pleasant experience. Something that FeedReader used to do was a toaster pop-up with information about new or unread items, which is a reasonably useful feature as I'm not able to look at my feeds as often as I'd like to, so I wrote my own notifier.
I am aware that others exist, but they are either crap or a Firefox extension. As I don't always leave my browser open, I decided to make it a notification icon and I decided to code it in IronPython, as a little exercise and because it was the easiest. Simple enough to use, make sure you have (at least) IronPython 1.0 installed, run it with ipyw.exe grnotify.py (to avoid leaving a console window behind), set up the options and you're done. You can "install" it to your startup folder by running it with ipy.exe grnotify.py -install. The source is available in my darcs repo at http://slipgate.za.net/~korpse/darcs/grn.
Once upon a time I wrote about a piece of software of mine, a stack-oriented file renaming tool. I thought this was rather nifty as I have only ever seen the regular-expression-hell approach to renaming files where you have a regular expression that can actually cause grievous bodily harm, you use this to (hopefully) match the parts of the filename that you want to keep (or alter) and then construct your new filename from these components; all in all, a bit like drying yourself off with a vacuum cleaner.
Often you actually want to perform relatively complex tasks on some of these filename components, like "proper" casing a title or looking up a TV episode name from the season number, show name and episode number. In these situations, a stack-oriented approach gives you better flexibility because you can program the behaviour (assuming a reasonable set of basic functions) with something a little more sturdy than regular expressions
After working on my original code a bit more, I found I could leverage these strengths to do a lot of really repetitive work for me, such as renaming TV episodes and so rn was born. You can run an rn script over a given set of filenames and have it work its magic, which is obviously where you can save yourself a lot of time and effort. My pride and joy is my TV episode renaming script, it's process is as follows:
- Split a filename into it's useful parts (series name, season number, episode number) according to a set of regular expressions that match the most common naming conventions.
- Query tvrage.com's "raw data" service with the information we have.
- Rename the file according to the data we get back.
My cellphone plays an important role in my job, it allows people to wake me up at early hours of the morning and to interrupt me during work or play. Without these two crucial things I might actually be able to get more done, needless to say, this is unacceptable. So what happens when my old service provider, who thinks that microcell coverage is overrated, and my old Nokia 6230i, who thinks that battery life is overrated, team up on me? I run off into the night screaming, randomly murdering homeless people, as well as getting a new phone and a new service provider.
Enter the Nokia E65. While my old phone was just slightly thicker (and narrower) than the E65, it was enough (when combined with the other stuff in my pocket) to make everyone think I was happy to see them. The 6230i was also excruciatingly slow at doing the most common tasks. Series 60 is a reasonably impressive OS and not too chunky, although it does a good few things that I have no intention of ever using. I'm pleased by the fact that I don't have enough tasks to saturate all the special keys and shortcuts, so I can pretty much get to anything I want in fewer than 3 key presses. Visually, the E65 has a pleasantly simple appearance (mostly due to the fact that it's a slide phone) and attractive two-tone colour scheme.
I'm not usually one for gimmicks but the conference call features are rather cool. The most interesting use of this is when you are dealing with multiple calls. For example, I call Joe to find out if he wants to go kill homeless people with me and then (while I'm still busy with my call to Joe) Patrick Bateman phones me, I press the conference call button, the two calls are merged into one and we all discuss in a 3-way conversation how to get the most fun out of our evening.
I'm grateful to Nokia for leaving stupid things out, like front-facing cameras, and all in all I'm happy with it so far. Only time will tell whether I stay happy with it or not.
You again?
So, after 2 (or more?) attempts at running my own blog I'm just going to give up and use an online service. As you may (or may not) have noticed, my other blog has been down for a number of months, it died a horrible horrible death and this is how it happened. My previous blog was written in Python and used the Django web framework and requires a web server to host it, I opted for Apache and FastCGI (like the website suggests doing.) By some series of fortunate events this daisy chain of retardation actually worked! That it is to say, it worked until someone exploited FastCGI and broke everything. Needless to say, Colin and Tristan were troubled by this event and so they banished FastCGI to the fiery depths of the Netherealm, never to be heard from again.
So why use a service?
Well, I recently realised that as far as blogs go, I'm really just more interested in having one that works and I'm not prepared to run third-party blogging software (like anything involving PHP and MySQL) and set it up and so forth. While designing the thing was fun, writing the thing with Django was less so. I looked around at other blog services, and really didn't feel like I needed to spend any money to spread my lies around the Internet, so here I am.