December, 2003

  • The Old New Thing

    How to stop delivery of telephone books


    Like many of you (I suspect), I don't use the paper telephone book. If I want to look something up, I go online. Yet every year I get a dozen different telephone books. I don't like them because a telephone book sitting on my front porch screams, "Rob this house! Nobody's home!" Besides, it's a waste of paper.

    So for the past few years I've been trying to stop delivery of all the telephone books. It's harder than you think.

    The first hurdle is figuring out what the "please take me off your mailing list" number is. Because they sure don't advertise it.

    I've discovered that the best way to get through to somebody who can take you off the list is to call the "How to order more copies of this wonderful telephone directory."

    Note: WorldPages added another wrinkle to the procedure. You see, they misprinted their own telephone number. Why anybody would voluntarily pay money to be listed by a telephone directory company that can't even get their own phone number right is beyond me.

    You have to be polite but firm when dealing with these people. Qwest is particularly tricky. I had called last year to stop delivery of all three of their phone books (they have three!), but in June another one showed up. I called them and they confirmed, "Yes, I see that we have a zero on your account, I don't know what happened. Let me try again."

    Aside: Why does Qwest want my telephone number to stop delivery of my telephone book? They deliver the book to a house, not to a telephone.

    Anyway, so that seems to keep the telephone book delivery gnomes at bay, until December, when yet another Qwest telephone book arrives at my doorstep. So I call again.

    "Yes, we have you marked as 'do not deliver'."

    "So why did I get one?"

    "This wasn't one of our standard phone books. This was a promotional phone book."

    Aha, so when you say "Do not deliver" it doesn't actually mean, "Do not deliver." It just means "Don't deliver the one that I am specifically complaining about." But there's this double-secret phone book delivery list that you have to specifically ask to be removed from, and we're not going to tell you about it until you ask.

    "Please remove me from the promotional phone book delivery list as well."

    "I'm sorry, I can't do that. There is no way for us to enter that in our computers." Always blame the computers. One response to "Our computer can't do that" I haven't yet resorted to is "Well, then I guess you'll have to do it by hand.")

    "Who delivers the promotional phone books?"

    "We contract that out to a local delivery company."

    "Can I talk to them?"

    "Hang on a second."


    "Okay, I can fill out a form so you don't receive promotional phone books either." (Aha, so she is going to do it by hand.)

    "Thank you. Good-bye."

    We'll see how long this lasts. I predict May.
  • The Old New Thing

    College football commercialized? What ever gave you that idea?

    This has got to be some sort of record for "Longest official name of a sponsored college football game": The Gaylord Hotels Music City Bowl Presented by Bridgestone, which proclaims that "the Gaylord Hotels Music City Bowl Presented By Bridgestone is Nashville's Holiday Tradition".
  • The Old New Thing

    People with almanacs may be terrorists, FBI warns

    The FBI has apparently released a bulletin advising law enforcement officers to be on the alert for people with almanacs: They might be terrorists.
  • The Old New Thing

    What's the difference between CreateMenu and CreatePopupMenu?

    CreateMenu creates a horizontal menu bar, suitable for attaching to a top-level window. This is the sort of menu that says "File, Edit", and so on.

    CreatePopupMenu creates a vertical popup menu, suitable for use as a submenu of another menu (either a horizontal menu bar or another popup menu) or as the root of a context menu.

    If you get the two confused, you can get strange menu behavior. Windows on rare occasions detects that you confused the two and converts as appropriate, but I wouldn't count on Windows successfully reading your mind.

    There is no way to take a menu and ask it whether it is horizontal or vertical. You just have to know.

    Answers to other questions about menus:

    When a window is destroyed, its menu is also destroyed. When a menu is destroyed, the entire menu tree is destroyed. (All its submenus are destroyed, all the submenu's submenus, etc.) And when you destroy a menu, it had better not be the submenu of some other menu. That other menu would have an invalid menu as a submenu!

    If you remove a submenu from its parent, then you become responsible for destroying it, since it no longer gets destroyed automatically when the parent is destroyed.

    It is legal for a menu to be a submenu of multiple parent menus. Be extra careful when you do this, however, because if one of the parents is destroyed, it will destroy the submenu with it, leaving the other parent with an invalid submenu.

    And finally: The menu nesting limit is currently 25 on Windows XP. That may change in the future, of course. (As with window nesting, Windows 95 let you go ahead and nest menus all you wanted. In fact, you could go really evil and create an infinite loop of menus. You crashed pretty quickly thereafter, of course...)

  • The Old New Thing

    At least the Danes know how to count


    Even though Danish is impossible for me to pronounce, I do appreciate their stubborn resistance to decimalization. The number 71 is (I hope I get this right) "en og halvfjerdsindstyve", literally, "one and half-four-times-twenty", or more commonly, just "en og halvfjerds". (Those familiar with other Germanic languages recognize "half-four" as meaning "three and a half".)

    (I hope the Danes out there realize that my previous remarks about Danish were all in fun. I'm just fascinated with languages, especially those in the Germanic branch.)

  • The Old New Thing

    What's with those blank taskbar buttons that go away when I click on them?


    Sometimes you'll find a blank taskbar button that goes away when you click on it. What's the deal with that?

    There are some basic rules on which windows go into the taskbar. In short:

    • If the WS_EX_APPWINDOW extended style is set, then it will show (when visible).
    • If the window is a top-level unowned window, then it will show (when visible).
    • Otherwise it doesn't show.

    (Though the ITaskbarList interface muddies this up a bit.)

    When a taskbar-eligible window becomes visible, the taskbar creates a button for it. When a taskbar-eligible window becomes hidden, the taskbar removes the button.

    The blank buttons appear when a window changes between taskbar-eligible and taskbar-ineligible while it is visible. Follow:

    • Window is taskbar-eligible.
    • Window becomes visible ? taskbar button created.
    • Window goes taskbar-ineligible.
    • Window becomes hidden ? since the window is not taskbar-eligible at this point, the taskbar ignores it.

    Result: A taskbar button that hangs around with no window attached to it.

    This is why the documentation also advises, "If you want to dynamically change a window's style to one that doesn't support visible taskbar buttons, you must hide the window first (by calling ShowWindow with SW_HIDE), change the window style, and then show the window."

    Bonus question: Why doesn't the taskbar pay attention to all windows as they come and go?

    Answer: Because that would be expensive. The filtering out of windows that aren't taskbar-eligible happens inside USER32 and it then notifies the taskbar (or anybody else who has installed a WH_SHELL hook) via one of the HSHELL_* notifications only if a taskbar-eligibie window has changed state. That way, the taskbar code doesn't get paged in when there's nothing for it to to.
  • The Old New Thing

    "Beam me up" is not yet recognized


    How soon before this becomes standard equipment at Star Trek conventions?

    Vocera Communications Unveils Wearable, Instant Voice Communications Application

    "Enterprise environments are looking for applications that leverage their investment in wireless communication technologies and increase employee efficiency," ...

    Some of the basic calling features include:

    • Call by name, "Call Bob Thomas."
    • Call by function, "Call a cardiologist."
    • Call by specific location, "Locate a clerk in gardening." ...
    The Vocera Communications System

    Vocera Communications Badge is a wearable device that weighs less than two ounces and can easily be clipped to a shirt pocket or worn on a lanyard. ...

    The Vocera Communications Badge is controlled using natural spoken language. To initiate a conversation with Jim and Mary, for example, the user would simply say, "Conference Jim Anderson and Mary Guscia."

  • The Old New Thing

    Another privacy policy that isn't very private

    Today I read the privacy policy for Nuveen Investment Advisors. I like this part:

    "Except as permitted by law". How reassuring. Is it really necessary to have an official policy promising that that you won't break the law? And actually stating that they promise to follow the law on this specific issue raises the question, "So are they willing to break the law with regard to other issues?"

    This sentence basically means, "We reserve the right to disclose nonpublic personal information about you to the fullest extent permitted by law."

    In particular, later in that paragraph, it states that

    ... we may disclose the information we collect, as described above, to companies that perform administrative or marketing services on our behalf...

    In other words, "We may disclose nonpublic information about you to people who will try to sell you stuff."

    All the regulations about privacy disclosure statements hasn't actually secured anybody's privacy, since the regulations only require disclosure; they don't require that they actually do anything to protect your privacy.

  • The Old New Thing

    Danish so-called "pronunciation"


    Of course my real goal in studying German and Swedish is eventually to have all of Denmark surrounded. (After Swedish, the next most likely nearby targets are Norwegian and Dutch.)

    All I know about Denmark I learned from Swedes. Well, if you don't count one Danish co-worker, who moved back to Denmark several years ago. The Swedes tell me, "The Danes would be so much easier to understand if they would only take the hot potato out of their mouth before they started talking." (Two Swedes have told me that Danish sounds "drunk".)

    I thought this was just friendly Scandinavian pick-on-your-neighbor-ism until I actually listened to some Danish closely.

    Believe it or not, the odd collection of sounds that comes out of their mouths (1) counts as a language, and (2) is comprehensible to other Danes. Listen for yourself: Rødgrød med fløde. That "soft d" I will never, ever learn to pronounce properly. It appears to requires the use of throat muscles that most people are content to use only for swallowing.

    This site has a longer sample of Danish speech. You thought swallowing a word was just a figure of speech? Check out the pronunciation of Sverigesfærgen which sounds to me something like "Svesfæn".

    Okay, now that I've publically made fun of Danish, my punishment will probably be that I will be called upon to study it seriously at some point.

  • The Old New Thing

    How to hide privacy violations in a privacy disclosure statement

    I'm looking over my Fidelity privacy disclosure statement, titled "Our commitment to privacy". Google is amazing: It found a copy online: Our Commitment to Privacy. Scroll down to How and Why We Obtain Personal Information, fourth bullet point:
    • Information services and consumer reporting agencies (for example, to verify your identity, to assess your creditworthiness or to better understand your product and service needs)

    (Italics added.) The italicized phrase translates as "We will collect personal information in order to try to sell you stuff".

    Okay, now look at How We Protect Your Information. The second bullet point describes the people they will disclose your personal information to:

    • Unaffiliated service providers (for example, ...)

    Notice that the parenthetical says "for example" and not "restricted to". So their privacy statement that they may disclose your information to any unaffiliated service provider, which basically translates to "everybody".

    So their so-called commitment to privacy actually permits them to collect information from anywhere and give it to anybody. The people who wrote this clearly learned the same lesson I learned from the BBC series Yes, (Prime) Minister: Put the hard part in the title. If the title claims to be demonstrating your commitment to privacy, you can violate it all you want in the body.
Page 1 of 5 (45 items) 12345