How Many Ways Can You Exit an App?

Different people use applications in different ways. Sounds simple and obvious, but how often do you look at the real implications of it? Just to take a simple example, let’s suppose you’re using Windows (pretty much any recent version), and you want to perform a simple task: Exit the active application. How many different ways might a user do that?

  1. Alt, F, X (that is, “tap the Alt key and release it, then hit F, then X”)
  2. Alt+F, X (i.e., “hold Alt while pressing F, then release both and press X”)
  3. Alt+F4
  4. Alt+F, up-arrow, Enter
  5. mouse-click on “File”, move down and mouse-click on “Exit”
  6. mouse-click the top-right corner “x” button
  7. in some apps: Ctrl+Q (this is particularly likely if the user has just migrated over from the Mac world, or often has to switch back and forth)

Seven different ways of doing this simple action. I could come up with similar lists for “save the active document”, “copy and paste some text”, and other common actions. Note that Save, Cut, Copy, and Paste are often found on toolbars, unlike Exit, so that makes another way-of-doing-it that’s not on the previous list.

If you want your application to be perceived as “intuitive” or “user-friendly” by all of your users, rather than just a narrow range, make sure that the first thing the user tries works just like they expected.

Alert: SpamAssassin’s Year 2010 Bug

If you haven’t been getting as much email as usual this past week, the culprit may be SpamAssassin. It turns out that SpamAssassin 3.2.5 (the current version, released in June of 2008) has a Year 2010 Bug.

The problem lies in the core configuration file 72_active.cf, which contains a wide variety of “currently active” rules. On line 543, it says:

header FH_DATE_PAST_20XX Date =~ /20[1-9][0-9]/ [if-unset: 2006]

For those who don’t read regular expressions, this rule will match any Date: header that contains a string like 201x, 202x, 203x, etc., where “x” could be replaced by any digit. So, back in 2008, this rule would catch email that claimed to hail from the year 2010 or later. (Well, up to 2099.)

Starting on the morning of last Friday, this rule started triggering on pretty much all mail that hadn’t been delayed, thus adding 3.384 points to every piece of incoming email. Naturally, this could easily push mail over the threshold from “not spam” into “spam” when it doesn’t belong there.

If you’ve been expecting some mail that hasn’t arrived, and your mail host uses SpamAssassin, you might want to check your spam folder.

According to a note on the SpamAssassin project’s main page, you can easily correct this problem in either of two ways:

  1. If your system is configured to use sa-update, run it now.
  2. Remove the FH_DATE_PAST_20XX rule altogether by putting “score FH_DATE_PAST_20XX 0” at the end of your local.cf file.

Alternatively, if you’re the mail administrator, and you don’t mind setting up a Year 2020 Bug for yourself, you could always change the part that says Date =~ /20[1-9][0-9]/ so that it says Date =~ /20[2-9][0-9]/ instead. After all, stuff that claims to be from years in the future (or past) is likely to be something you don’t feel like reading. But if you do this, I strongly urge you to find some way to send yourself an alert around December of 2019, warning yourself that you need to fix that problem. (And that may be easier said than done.)

A “Blog” Is a Whole Bunch of Posts

This is rapidly becoming one of my pet peeves, right up there with misuse of the word “literally”:

This thing I’m writing right now? This single entry in my blog? This isn’t “a blog”. It’s “an entry” or “a post”.

Sort of like that piece of paper in a book is a page, not a book.

“Writing a blog” is like writing a book, or a novel. Don’t tell me “I wrote a blog yesterday”; you wrote in your blog. Jeff Atwood writes a popular coding blog. A few days ago, he wrote an entry about…

I’m fighting a losing battle, aren’t I? But I really dislike the ambiguity of having “blog” mean “a single thing” or “a collection of that thing”. I have no problem with language growing and changing (after all, the word “blog” didn’t even exist 15 years ago), but I’m firmly against making language messier and more awkward to use and understand. I don’t think the people saying “I wrote a blog yesterday” are adding anything; I think they’re just being sloppy.

How Many Ways Is Your Imitation Scrollbar Broken?

If you’re going to reinvent the wheel, you should at least make sure your new version is somehow better than the previous kind. Reimplementing standard UI and OS widgets is one of the most common ways developers reinvent the wheel these days — it started with Flash developers building their own controls, and has now spread to Adobe AIR and Silverlight.

It might be a welcome trend, if the replacement widgets people were building had more functionality than the OS-native ones that are available for free in any other context. But usually, the widgets I see in these frameworks have less than half the functionality of the things they try to replace. I’m going to pick on scroll bars for now, because I’ve seen them horribly mangled too many times.

To start with one aspect of scroll bars that we often take for granted: Can you guess which of these text boxes contains more text?




Read More »

Does Wanting Privacy Make You Evil?

According to Google CEO Eric Schmidt: “If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place.” This is the same stupid excuse we always hear from people who want to invade everyone’s privacy, and I’m sick of it.

Incidentally, we need a good term for the privacy invaders. Folks like the EFF, EPIC’s Marc Rotenberg, Philip Zimmermann and so on get rightly called “privacy activists”. What should we call the people who make the bogus claim that privacy is a sign of guilt, and is something you should give up to prove your purity?

Funny how those folks never seem to want to give up their own privacy, isn’t it? The “If you’re innocent, then you have nothing to hide” brigade never seem to want their own private lives examined. If only someone could have looked into J. Edgar Hoover’s private life… And Eric Schmidt? When c|net published some public information about his salary, neighborhood, hobbies and political donations — all of which it obtained through Google searches — Schmidt was so incensed, he ordered his entire company to stop speaking to c|net for a year. Read More »

The Evolution of WordPress

For backward-compatibility testing, I’ve just installed a few versions of WordPress ranging back to version 2.0. It’s kind of fascinating to see a sort of fast-rewind retrospective of the software. Even just looking at the installation experience, it’s like watching HAL 9000 descend into childish incoherence as Dave Bowman yanks his memory chips.

By the time you get back to WordPress 2.0 and try hitting the blog installation directory in your web browser, all you get is a plain, unstyled page that says:

It doesn’t look like you’ve installed WP yet. Try running install.php.

The funny thing is, that page works just fine. You click the link, it takes you to install.php, and… that’s really just a splash page, which talks about what you’re going to do, and requires that you click on a big link that says “First Step” in order to proceed. So, while it does “work”, it does so at the expense of making the user click the mouse twice, unnecessarily.

In the past 4 years, the WordPress team has made the install process look sleeker and more styled. But I think the real improvement in user experience isn’t the visuals — it’s the removal of those two unnecesary, time-wasting mouse clicks.

OpenOffice Writer UX Warts

The more I play with OpenOffice.org’s Writer, the more confused I am by some of the odd UI/UX warts in it. Here are the ones that are on my mind this morning:

  • When I press F11 to bring up the Style Picker list, why does typing letters not navigate me through that list? Why do I have to use the down-arrow to navigate to “Heading 1”, rather than just typing “he” and then Enter?
  • Once I do hit Enter to apply the style I’ve chosen, why does the picker window remain open even though my cursor focus has returned to the document? This is the worst of both worlds: part of the document I’m working with is obscured by the picker window, and now I have to hit F11 twice in order to apply another style. If the window went away, I could just hit F11 once to bring it up the next time I wanted to apply a style. Read More »

Testing Backward-Incompatible Changes

Let’s say one day you decide to add a feature to your software or service. For example, you need a new flag on user accounts, so that different types of users get different features. (These don’t even have to be tiered account levels; maybe accounts of type “music lover” get a widget in the sidebar with suggestions for bands they might like while “sports fan” accounts get a sports scores widget instead.)

So, following good software development processes, you first write a couple of tests:

Read More »

Solutions For Palm Prē “Signed Out of Palm Profile” Endless Loop

Yesterday, a wonderful person who goes by the handle of pzil on the Palm Prē forums gave me a solution to my “You are signed out, there is no escape” woes. You can read pzil’s solution as posted on the Palm forum, but just in case, I’m also reproducing the meat of it here, in case it helps anyone else.

Again, I take absolutely no credit for this one; all credit goes to pzil.

Read More »

A Chat With Palm Tech Support

We’ll see if anything useful comes of this… I wasn’t too happy with the rep’s cluefulness at 2:55, I must admit.

2:50 PM Connecting to Rescue Gateway: control.app51.logmeinrescue.com…
2:50 PM Connected to Rescue Gateway. A support representative will be with you shortly.
2:51 PM Support session established with Kade.

2:51 PM Kade: Hello.
2:51 PM Kagan MacTane: Hi.
2:51 PM Kade: I understand that you are getting signed out and erase all data screen.
2:51 PM Kade: Am I correct ?
2:51 PM Kagan MacTane: Yes.
2:51 PM Kagan MacTane: And when I press “Just Restart”, the phone restarts and then shows that same “Signed Out” screen again.
Read More »