May, 2008

  • The Old New Thing

    The cultural axes of punctuality and waiting in line


    Even ten minutes after my conference talk was scheduled to begin, people were still wandering into the hall. My host explained that in Portugal, nothing starts on time. (This Web site goes so far as to say that arriving a half hour to 45 minutes late is customary.)

    I asked whether the Portuguese form orderly lines when waiting for things. The answer: No. They just form a crowd.

    One would expect that punctuality and waiting in orderly lines would be correlated traits in a culture, since they both reflect a degree of attention to detail and order, but there are exceptions.

    In Taiwan, people form very orderly lines. For example, lanes are painted on subway platforms for people to stand in, and everybody waits their turn in line to get on. On the other hand, punctuality is not a Taiwanese trademark.

    In the United States, waiting in line is taken for granted, but that doesn't always align with punctuality. It is important to be on time for business meetings, but the rules for social gatherings are more complex.

    • If invited to meet someone at a neutral location, you are expected to be there on time, and if you are more than five or ten minutes late, you should call the other party to let them know; otherwise they may abandon waiting for you.
    • If you are invited to dinner at someone's house, then up to about ten minutes tardiness is excusable, but under no conditions should you arrive early.
    • If invited to a party, you should arrive ten to fifteen minutes after the announced start time. The term for this is fashionably late. Again, under no circumstances should you arrive early.

    Is there a correlation between punctuality and waiting in line in your country?

  • The Old New Thing

    Why always "Windows XP" and "Windows Vista" and not just "XP" and "Vista"?


    When the Internet Explorer folks announced that they were going to call their next version of Internet Explorer Internet Explorer 7 for Windows XP and Internet Explorer 7 in Windows Vista, many people responded to the awkward name by suggesting that it be shortened to Internet Explorer 7 XP and Internet Explorer 7 Vista. Why the longer names?


    Microsoft's own trademark guidelines† specify that the product names are Windows XP and Windows Vista and not just XP and Vista. The trademark is on the entire phrase, not just the last word. Furthermore, the trademark guidelines specify that products may not append just XP or Vista to their names; they have to say X for Windows XP or X for Windows Vista.

    In an earlier era, you had to be careful to say Windows NT and not just NT for the same reason. You see, the name NT is a registered trademark of Northern Telecom, and part of the agreement with "the other NT" is that the Windows product would always be used with the word Windows in front.

    If you took a close look at the Windows 2000 box, you may have seen the phrase "Built on NT Technology." I don't know how hard it was to do, but I suspect a good amount of negotiations with Northern Telecom took place to allow Microsoft to use that alternate formulation without the word Windows in front. Indeed, if you looked really closely at the box, you'd have found a trademark acknowledgement for Northern Telecom deep in the fine print.

    Lawyers by training are very cautious people. After all, a new lawsuit against Microsoft gets filed approximately once every thirty seconds.¶ They're probably also responsible for all your Office# shortcuts on the Start menu being named Microsoft Office This 2007 and Microsoft Office That 2007 instead of This 2007 and That 2007, or even (shocking!) just This and That. It's a daring move, and lawyers don't like to be daring. Nobody ever got sued for playing it safe.††

    Nitpicker's corner (guest appearance)

    *Just burning off a footnote marker because I don't like asterisks.

    †I myself violate some of these guidelines because I try to write like a human being and not a robot. Only robots say Windows-based programs.‡

    ‡That statement is not literally true. Here's a reformulation of that statement for the benefit of robots:§ "People who say Windows-based programs sound like robots."

    §That statement is also not literally true. Here's a reformulation of that statement for the benefit of people who take a robotic approach to reading: "Here's a reformulation of that statement for the benefit of people who take a robotic approach to reading:"

    ||Burning off another footnote marker because I don't like parallel lines either.

    ¶An exaggeration, not a statement of fact.

    #s/Office/Microsoft® Office™ System/**

    **I have not researched whether that's the correct way of writing it.

    ††Okay, maybe somebody somewhere has gotten sued for playing it safe. It was just a catchy sentence, not a statement of fact.

  • The Old New Thing

    Another interesting detail from the analysis of Windows Error Reporting data for Explorer


    I was in a meeting last year where I learned an interesting tidbit of information. One of the people at the meeting was looking at the error reports submitted against Explorer, and the breakdown went something like this. For the purpose of discussion, the number of reports have been normalized into "units", the precise meaning of which is left unspecified, but is meaningful for comparison purposes.†

    1XYZ.v2 Virus6 million
    2XYZ.v3 Virus5.5 million
    3XYZ.v1 Virus5 million
    4XYZ.v1 Virus4.5 million
    5XYZ.v2 Virus4.5 million
    6XYZ.v2 Virus4 million
    7Bug 27182850,000

    The XYZ virus (not its real name) and its variants together are responsible for the top six categories of Explorer crashes, and by an enormous margin. Seventh place, an actual bug, comes in at only 1/80th the rate of number six; if you group all the XYZ virus failures together, then the combined virus failures outnumber the most popular Explorer bug by a factor of nearly 600.

    I remember reading a report that half of Explorer crashes can be directly attributable to malware. Seeing the top Explorer crash swamped by a single virus really drives that point home.‡


    †I don't know what these units mean either.

    ‡The anti-malware team is very interested in this data, because when a new category of Windows crashes suddenly spikes in popularity, there's a decent chance that a new virus is on the loose.

  • The Old New Thing

    Why is the function SHStripMneumonic misspelled?


    If you wander through MSDN, you may stumble across the function SHStripMneumonic. The correct spelling is mnemonic. Why is the function name misspelled?

    "It was like that when I got here."

    The function was originally written for internal use only, and the person who wrote the function spelled the word incorrectly. Still, since it was an internal function, there was no real urgency to fix it. After all, there is no technical consequence of the spelling of a function's name, as early entrants of the IOCCC discovered. If you really wanted to, you could just call all your functions F1 through F578173.

    There the function remained, misspelled but inconsequentially so, for some time. Since it was an internal function, it didn't go through the normal scrutiny that a public interface receives. That's part of what makes it internal.

    The effort required to fix the spelling was a bit more than usual, since the function was used by multiple teams, so there would have to be some coordination among the teams so everybody fixed their spelling at the same time. The issue sat on the back burner as a very low priority item since it wasn't hurting anybody, and the effort required to fix it really didn't justify the benefit (which was zero).

    In 2001, the order came down to document all functions which met specific criteria (the details of which I will not go into, and I would appreciate it if others didn't try), and the SHStripMneumonic function was suddenly thrust onto the public stage before it had a chance to so much as comb its hair and make sure it didn't have food stuck in its teeth. The function had to be documented, warts and all, and the bad spelling was one of the warts.

    Of course, now that the function has been published, its name is locked and can't be changed, because that would break all the programs that used the original bad spelling.

    Epilogue: Some commenters are suggesting ways that the function could have combed its hair and removed food from its teeth, completely ignoring the point that the function had to be documented, warts and all. I assure you, nobody wanted to comb that function's hair more than me.

  • The Old New Thing

    The dead desktop computer: From good, bad, and ugly back to dead


    When last we left my dead desktop computer, it had returned to the world of the living with the assistance of the onboard video adapter. The screen was fuzzy because I was running my LCD monitor through the analog VGA cable. Performing an auto-adjust helped a little but it was still blurry. Still, it was within the realm of acceptability for casual low-volume use.

    Well, the computer once again died, and before it finally kicked the bucket, the onboard video card started pumping out corrupted pixels. My suspicion that my motherboard ate video cards was correct. In fact, its appetite for video cards was so voracious, it ate itself.

    Okay, so here are the options I've been able to come up with so far.

    1. Feed the computer video cards.
    2. Replace just the motherboard.
    3. Replace the entire computer.

    The first option is out because the rate of consumption appears to be one video card per month, which is a rather expensive diet.

    The second option is a possibility, but the computer was purchased pre-assembled from a name-brand manufacturer, so the odds of finding a motherboard that exactly fits into the original case are pretty slim. I'll probably have to move everything to a new case.

    The third option is the lazy way out, and is in fact the solution employed by most non-technical users.

    For now I'm going to investigate option two. I'll have to take the computer apart to get at the motherboard anyway, and then I can investigate what type of replacement I need to get. (In terms of socketry and stuff.) Though who knows how long it will be before I actually get around to fixing the computer.

    Meanwhile, my laptop which was manufactured back in 2000 continues to chug along happily.

  • The Old New Thing

    In Lisbon, walk/don't walk signs are mostly decorative


    In Lisbon, walk/don't walk signs are mostly decorative. The real rule for crossing the street is look both ways and cross when safe. There's no requirement that you use a designated crosswalk. As long as the coast is clear, you can cross the street anywhere. When my host for the conference accompanied me to the conference center, we crossed the street and my host pointed out, "You know, we're actually using the official crosswalk this time."

    I was talking with one of the faculty members of the computer science department at IST and mentioned that in Seattle, the police issue tickets for crossing the street incorrectly. The faculty member responded, "In Portugal, there is no such thing as crossing the street incorrectly."

    (For what it's worth, people in Madrid restrict themselves to crossing at crosswalks and generally observe the walk/don't walk signs, although if the light says don't walk and there are no cars anywhere nearby, they will cross anyway. This evaluation of Madrid crosswalk behavior is probably skewed by the higher concentration of tourists.)

  • The Old New Thing

    Microspeak: On-board (verb)


    Here are a few citations. On a list of activities:

    • On-board a new team member.

    Presumably they mean bring on board. What makes this particularly interesting is that they didn't convert a noun to a verb; they converted a prepositional phrase to a verb, demonstrating once again the malleability of the English language.

    Here's a snippet from a blog post which seems to use the same meaning, but dispensing with the hyphen:

    Over the past 4 weeks, we have been onboarding customers slowly.

    On the other hand, there are usages whose intended meaning I can't quite figure out. Some titles from documents I don't have access to:

    How to On-Board Tools on the Extranet
    On-Boarding Kit

    And a subsection from an old document:

    On-Board Schedule

    MilestoneTarget DateStatus
    Attend a client planning meeting Dec. 2005Complete
    Frooble analysisMeeting daily with ABC team to map out migration
    On-Board to client devFeb. 2006
    Client devTBD
    On-Board to client testTBD
    Client test completeTBD
    On-Board to DEFTBD
    DEF sign-off by GHITBD
    File migrationTBD

    ABC, DEF, and GHI were TLAs I did not understand. Frooble is a made-up word substituting for the actual word in the schedule. (And yes, "Go-Live" is a noun.)

    As a final example, there is somebody at Microsoft whose official job title is Senior Onboarding Manager.

    If you can figure out what on-board means, you're smarter than me.

    Pre-emptive clever comment: Verbing weirds language.

  • The Old New Thing

    The sad demise of whimsical teasing in Comic Chat


    Internet Explorer 3 came with the IRC client Comic Chat, a product from the research division. And it's not surprising that a program as goofy as Comic Chat would put something goofy in the default profile. If you didn't set a profile when you created your character, it defaulted to "This person is too lazy to create a profile entry."

    Of course, it wasn't long before people complained that the text was snotty. So much for trying to be funny.

  • The Old New Thing

    The Big Red Switch really was big and red


    In this article on compatibility between the .NET Framework versions 1.1 and 2.0, there is a passing mention of a setting nicknamed the "Big Red Switch".

    The power switch on the original IBM PC really was big and red. Well, orange-red. Here's a picture of the power switch on an IBM PC-AT. Decide for yourself what color it is.

    In college, the hallway that led to the basement lab where most of the computer science students did their work had a big red switch, a pushbutton, labeled "Emergency power shutoff". Nobody was sure whether it actually was hooked up to anything or was simply a joke, but nobody wanted to take the chance of finding out, either. I remember one evening some people were goofing off with a basketball, and somebody missed a pass, and the ball hit the wall dangerously close to the big red switch. They (and everybody in the lab) immediately realized what had almost happened, and the group sheepishly took their ball outside.

    Some time later, the legend of the big red switch was ultimately resolved. The morning after a particularly bad rainstorm, one of my colleagues came into the computing center and explained that he had gone down to the computer lab the previous evening and found it flooded, with water still coming in. Realizing that electricity plus water equals danger, he went over to the big red switch and pushed it. And true to its label, it shut off the power to the lab and the central file server. We were all in awe that he got to push the big red button for a legitimate reason. An opportunity like that comes only once in a lifetime.

  • The Old New Thing

    Gentle reminder: On a dialog box, do not give OK and Cancel accelerators


    I know most of you know this, but I'm going to say it for the record. When you have a dialog box with an OK and/or Cancel button, do not give the keys accelerators. In other words, simply write

        PUSHBUTTON "Cancel", IDCANCEL, ...

    The dialog manager already has those buttons covered. The hotkey for the OK button is Enter (since it is the default pushbutton), and the hotkey for the Cancel button is ESC (since its ID is IDCANCEL).

    Note of course that during the lifetime of a dialog box, the default pushbutton may change, but the principle still stands: Do not give the OK button a keyboard accelerator.

    Oh, and while you're there, don't forget that the recommended minimum size for pushbuttons is 50dlu by 14dlu.

Page 1 of 4 (39 items) 1234