May, 2004

  • The Old New Thing

    The coolest thing you can do with a Gameboy is not "play a game on it"

    • 5 Comments

    From Public Radio International, The Next Big Thing covers The Gameboy Music Match.

    These days, a lot of electronic music is performed directly off of a laptop, which most people complain looks a lot like someone up there on stage checking their email. But Gameboy music isn't just for listening. It's also a performance. Nullsleep plays with both thumbs tapping, both feet moving, and head swaying. Okay, yeah, it looks like he's playing a video game. But a really great video game.

    Read the episode rundown or listen directly to the fourth story, Hot GameBoy Music Club. (The story was re-run a year later under the much catchier title New Old Sounds.)

  • The Old New Thing

    When do you put ... after a button or menu?

    • 34 Comments

    When do you put "..." after a button or menu? For example, some menus say "Save as..." and some buttons say "Customize...". What is the rule for dots?

    Many people believe that the rule for dots is "If it's going to display a dialog, then you need dots." This is a misapprehension.

    The rules are spelled out in the Windows User Interface Design Specifications and Guidelines (what a mouthful). Scroll down to "Ellipses".

    I could repeat what's written there, or I could just tell you to read it.

    I'm going to tell you to read it.

    Okay, maybe I'm going to repeat what's written there, but briefly:

    Use an ellipsis if the command requires additional information before it can be performed. Sometimes the dialog box is the command itself, such as "About" or "Properties". Even though they display a dialog, the dialog is the result, as opposed to commands like "Print" where the dialog is collecting additional information prior to the result.

  • The Old New Thing

    Plane-spotters to require government license

    • 3 Comments

    Plane-spotters to require government license. The article spins it as a "benefit" for ground-based aviation buffs, but this is just one of those "two steps back, one step forwards" things. Plane-spotters were outright banned from airports in the summer of 2003.

    Now they can go back, but they'll need to shell out £15 for the privilege.

    And if I, random small-time aviation buff, want to go out and look at the pretty planes as they fly overhead, I'm out of luck. The "authorized" plane admirers might even report me as a security risk.

    I hope I won't be convicted of international espionage.

  • The Old New Thing

    Who'll be where for whom?

    • 1 Comments

    Mike Pesca undertakes a textual analysis of the Friends theme song.

  • The Old New Thing

    How did those FILE_SHARE_* values come to be?

    • 0 Comments

    Larry Osterman picks up the history ball and describes how those FILE_SHARE_* values came to be.

  • The Old New Thing

    When do you disable an option and when do you remove it?

    • 18 Comments

    When you're displaying a menu item or a dialog option, and the option is not available, you can either disable it or you can remove it. What is the rule for deciding which one to do?

    Experiments have shown that if something is shown but disabled, users expect that they will be able to get it enabled if they tinker around enough.

    So leave a menu item shown but disabled if there is something the user can do to cause the operation to become available. For example, in a media playback program, the option to stop playback is disabled if the media file is not playing. But once it starts playing, the option becomes available again.

    On the other hand, if the option is not available for a reason the user has no control over, then remove it. Otherwise the user will go nuts looking for the magic way to enable it. For example, if a printer is not capable of printing color, don't show any of the color management options, since there's nothing the user can do with your program to make that printer a color printer.

    By analogy, consider a text adventure game. The player tries something clever like "Take the torch from the wall", and the computer replies, "You can't do that, yet." This is the adventure game equivalent to graying out a menu item. The user is now going to go nuts trying to figure out "Hm, maybe I need a chair, or the torch is too hot, or I'm carrying too much stuff, or I have to find another character and ask him to do it for me..."

    If it turns out that the torch is simply not removable, what you've done is send the user down fruitless paths to accomplish something that simply can't be done. For an adventure game, this frustration is part of the fun. But for a computer program, frustration is not something people tend to enjoy.

    Note that this isn't a hard-and-fast rule; it's just a guideline. Other considerations might override this principle. For example, you may believe that a consistent menu structure is more desireable because it is less confusing. (A media playback program for example might decide to leave the video-related options visible but grayed when playing a music file.)

  • The Old New Thing

    Thinking through a feature

    • 75 Comments

    The commentary after my entry on taskbar grouping drifted into people asking for still more features in taskbar grouping.

    Writing the code is the easy part.

    Designing a feature is hard.

    You have several audiences to consider. It's not just about the alpha geeks; you have to worry about the grandmothers, the office workers, the IT departments. They all have different needs. Sometimes a feature that pleases one group offends another.

    So let's look at some of the issues surrounding the proposed feature of allowing users to selectively ungroup items in the taskbar.

    One issue with selective grouping is deciding the scope of the feature. Suppose the user ungroups Internet Explorer, then closes all the IE windows, then opens two new IE windows: Do the new ones group?

    If so, then you now have an invisible setting. How do you configure grouping for programs that aren't running? (How do you configure something that you can't see?)

    Suppose you've figured that out. That's fine for the alpha geeks, but what about grandma?

    "The Internet is all disorganized."

    "What do you mean?"

    "All my Internet windows are all disorganized."

    "Can you explain a little more?"

    "My taskbar used to be nice and organized, but now the Internet parts are disorganized and spread out all over the place. It used to be nice and neat. I don't know how it happened. I hate the Internet, it's always messing up my computer."

    What is the UI for selective ungrouping? Anything that is on a context menu will be executed accidentally by tens of thousands of people due to mouse twitching. Putting the regroup onto the context menu isn't necessarily good enough because those people don't even realize it was a context menu that did it. It was just a mouse twitch.

    Mouse twitches cause all sorts of problems. Some people accidentally dock their taskbar vertically; others accidentally resize their taskbar to half the size of the screen. Do not underestimate the havoc that can be caused by mouse twitching.

    Soon people will want to do arbitrary grouping. "I want to group this command prompt, that notepad window, and this calc window together."

    What about selective ungrouping? "I have this group of 10 windows, but I want to ungroup just 2 of them, leaving the other 8 grouped together."

    Once you have selective/arbitrary grouping, how do you handle new windows? What group do they go into?

    Remember: Once you decide, "No, that's too much," there will be thousands of people cursing you for not doing enough. Where do you draw the line? And also remember that each feature you add will cost you another feature somewhere else. Manpower isn't free.

    But wait, the job has just begin. Next, you get to sit down and do the usability testing.

    Soon you'll discover that everything you assumed to be true is completely wrong, and you have to go back to the drawing board. Eventually, you might conclude that you over-designed the feature and you should go back to the simple on/off switch.

    Wait, you're still not done. Now you have to bounce this feature off corporate IT managers. They will probably tear it to shreds too. In particular, they're going to demand things like remote administration and the ability to force the setting on or off across their entire company from a central location. (And woe unto you if you chose something more complicated than an on/off switch: Now you have to be able to deploy that complex setting across tens of thousands of computers - some of which may be connected to the corporate network via slow modems!)

    Those are just some of the issues involved in designing a feature. Sometimes I think it's a miracle that features happen at all!

    (Disclaimer: I'm not saying this is how the grouping feature actually came to be. I just used it as a starting point for a rant.)

    For another perspective, you can check out KC Lemson's discussion of the feature-design process a few days ago under the topic There's no such thing as a simple feature.

  • The Old New Thing

    Norway: Pros and cons

    • 13 Comments

    For the third year in a row, the United Nations' Development Program has ranked Norway as having the best standard of living in the world. Norwegians beat out all others because of their high levels of education, pay and life expectancy.

    In a totally unrelated story: Norway world leader in casual sex.

    Of course, Norway isn't all candy canes and lollipops. You also have to worry about cow attacks and cows falling from the sky.

    Cows rampage in Norway

    In a bizarre series of incidents, two farmers in different parts of the country were hospitalized after being attacked by cows. Elsewhere, four men narrowly missed having their car crushed by a crash-landing cow.

  • The Old New Thing

    Is your web site an open relay?

    • 20 Comments

    As if there isn't enough to worry about.

    Everyone knows about the dangers of open SMTP relays. But how many people realize the dangers of an open HTTP relay?

    Many web sites do arbitrary redirection. If I were a spammer, I could create a link to myself that redirects through some well-known web sites, thereby granting my spam link false authenticity.

    http://rds.yahoo.com/*-http://weblogs.asp.net/oldnewthing/
    http://ads.msn.com/ads/adredir.asp?url=/oldnewthing/

    With some obfuscatory work, I can make my own URL disappear completely, leaving just yours.

    http://rds.yahoo.com/*-http://%77e%62l%6fg%73.%61s%70.%6ee%74/%6fl%64n%65w%74h%69n%67/
    http://ads.msn.com/ads/adredir.asp?url=http://%77e%62l%6fg%73.%61s%70.%6ee%74/%6fl%64n%65w%74h%69n%67/

    What does this mean for you, the redirector?

    • It creates additional load on your server.
    • It makes Bayesian filters think that your site is spam, since your site's name appears in spam URLs. This can cause problems if you intend to send legitimate mail to your customers.
    • It can fool people into thinking that your site is the source of the spam.

    The two examples I gave above are the big guys who are being attacked by spammers on all sides. In fact, their names are co-opted by spammers so much that some spam redirection URLs probably don't affect their Bayesian rating significantly. But if you're a small site that also has unchecked redirection, you may want to take a closer look.

  • The Old New Thing

    Varför läser jag svenska?

    • 16 Comments

    (Even if you don't read Swedish, you may enjoy the links at the end.)

    Några personer har frågat mig varför jag läser svenska.

    Historien börjar för många år sedan. Jag läste tidningen och såg att det fanns avgiftsfria norskalektioner i Ballard kyrkans källaren. (Ballard är en del av Seattle där många människor som kommer från Norden bor. Den mesta är norska.) Jag tänkte mig att det skulle vara roligt om jag gick till klassen. Jag skulle säkert vara den enda personen som inte var tvungen att läsa norska av sina föreldrar.

    Men jag gjorde inte det.

    Ett par år senare tillkom de olympiska spelen i Lillehammer, och när jag hörde det norska språket, tyckte jag att det lät skönt och att jag skulle börja läsa norska.

    Men jag gjorde inte det.

    I förra året flyttade min vän till Uppsala för att studera på universitet som utbytesstudent. Jaha, nu måsta jag lära mig svenska för att besöka honom! Men innan min första klass sa hans bror till mig, "Jag har ett arbetsmöte i Mnchen nästa vecka. Vill du komma med? Vi kan besöka Jonathan i Uppsala." Det var min nödssemester.

    Jag hade redan betalat för den svenska kursen, så jag gick till klasserna i alla fall. Sex månader senare reste jag till Sverige igen.

    Nu har jag inga bestämda planer på att resa dit en gång till, och jag kommer nog att ta en paus från att läsa svenska i utgången av sommar, så att jag kan börja att läsa kineska. (Jag tror att kineska kommer att vara svårare än svenska...)

    Om jag hade sökt på Internetet skulle jag ha funnit andra skäl. En Google-sökning avslöjar att "When you win the Nobel Prize, you can give your acceptance speech in Swedish!" Men de glömde att ange att det inte gäller om du vinner Nobelfredspriset. I så fall har du ödslat tid på det felaktiga språket! (Det upptäckte jag i förra året när jag bestämde mig för att vara Nobelfredspriset på allhelgonaafton...)

    (Ett annat skäl: Svenska finns inte på Babelfish.)

    Jag tycker att det är intressant att en Google-sökning efter "Why study Swedish?" hittar bara 12 webbsidor. Jämför "Why study French?", som finns på 700 webbsidor, ungefär den samma mängden som engelska.

    Förresten, "Why study at all?" finns på 20 webbsidor. Undrar du ännu varför inte många människor läser svenska?

Page 3 of 5 (47 items) 12345