• The Old New Thing

    It's always a good idea to check your sources


    For a while, our cafeteria was trying to sell three-packs of bottled water. A sign proudly announced:

    Drink more water: What you should know about H2O

    Drink plenty of water throughout the day. Make it easy. Carry a bottle of water when you commute to work or run errands.

    This is what I should know about H2O?

    "Drink more water": Notice that they didn't specify a target amount. Just drink more.

    "Carry a bottle of water when you commute": I should drive with one hand on the wheel and the other hand clutching a bottle of water? Isn't that dangerous?

    And who is providing this "helpful" information?

    Source: International Bottled Water Association

    Hardly an impartial organization.

  • The Old New Thing

    Using floppy disks as semaphore tokens


    In the very early days of Windows 95, the distribution servers were not particularly powerful. The load of having the entire team installing the most recent build when it came out put undue strain on the server. The solution (until better hardware could be obtained) was to have a stack of floppy disks in the office of the "build shepherd". (The job of "Build Shepherd" was to perform the initial diagnosis of problems with the build itself or with verification testing and make sure the right developer is called in to address the problem.)

    If you wanted to install the latest build, you had to go to the Build Shepherd's office and take one of the specially-marked floppy disks. When you finished installing, you returned the disk.

    In other words, the floppy disk acted as a real-world semaphore token.

  • The Old New Thing

    Derren Brown's tips on being a psychic


    Magician and mentalist Derren Brown teaches us how we can all exercise our psychic powers, or at least use psychology to make people think we're psychic. The Video Clips page collects all the examples into one place for your viewing pleasure.

  • The Old New Thing

    Psychic debugging: Why your CPU usage is hovering at 50%


    Sometimes psychic debugging consists merely of seeing the bigger picture.

    On one of our internal bug-reporting mailing lists, someone asked, "How come when I do XYZ, my CPU usage goes to 50%?"

    My psychic answer: "Because you have two processors."

    The response was genuine surprise and amazement. How did I know they had two processors? Simple: If they had only one processor, the CPU usage would be 100%. This seems unhelpful on its face, but it actually does help diagnose the problem, because now they can search the bug database for bugs in the XYZ feature tagged "100% CPU" to see if any of those apply to their situation. (And in this case, it turns out that one did.)

  • The Old New Thing

    What one Windows XP feature am I most proud of?


    Of all the things I did for Windows XP, if I had to choose the one feature that I'm most proud of, it's fixing Pinball so it doesn't consume 100% CPU.

    The program was originally written for Windows 95 and had a render loop that simply painted frames as fast as possible. In the checked build, you could tell the program to display the number of frames per second. They reserved room for two digits of FPS.

    When I got to looking at Pinball's CPU usage, I built the checked version and took a peek at the frame rate. Imagine my surprise when I saw that Pinball's frame rate on contemporary hardware was over one million frames per second.

    I added a limiter that capped the frame rate to 120 frames per second. This was enough to drop the CPU usage from 100% to 1%. Now you can play Pinball while waiting for your document to print without noticeably impacting printing speed.

  • The Old New Thing

    The Airline Screening Playset


    Here I am sitting in the airport waiting for my flight to begin boarding. What better time to break out the Airline Screening Playset. I love the fact that the gun fits into the suitcase.

  • The Old New Thing

    Sometimes the fault is not in our stars but in ourselves


    An earlier name for Windows Server 2003 was Microsoft Windows .NET Server, and in the final weeks leading up the the product's release, we received the following bug from a beta tester:

    When I call the GetVersionEx function on build 3773, the OS name is still reported as "Microsoft Windows .NET Enterprise Server". I have attached a sample program illustrating the bug.

    I found this kind of confusing, because the GetVersionEx function doesn't return a human-readable product name. Intriguged, I took a look at the sample program and it wasn't too hard to see where the bug was. The program contained the lines

    if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
       lstrcpyn(szOS, L"Microsoft Windows .NET", MAX_PATH);

    In other words, the program had the incorrect string hard-coded into it.

    I reported my findings back to the person who submitted the bug, and the response was "Oops, sorry about that."

  • The Old New Thing

    The craft of UI design: flow|state


    You can tell right away that Jan Miksovsky's flow|state is about user interface design. I've had the pleasure of working with Jan when he was at Microsoft. Whereas I focus on the mechanics of making a user interface happen, Jan looks at the bigger problems of design and interface architecture. For example, in this entry he considers the issue of asking the user unnecessary questions and highlights some ways you can avoid hassling the user with a barrage of questions while still giving the user the ability to answer the question if they choose to. Good stuff.

  • The Old New Thing

    Taxes: Geopolitics


    One frequently-overlooked software "tax" is geopolitics. We've alread seen that the time zone and regional settings dialogs created international unrest. It appears that Google Maps failed to recognize the extremely sensitive issue of naming the body of water that lies between Korea and Japan, as well as stirring up international tensions with the way it labelled the island of Taiwan. Like many issues regarding naming, these subjects are tied up in history with strong feelings on both sides. (And Google's efforts to placate the Taiwanese government only served to anger the Chinese government. Welcome to the big time.) As we saw in the time zone example, deferring to United Nations-approved boundaries or terminology is not always sufficient to calm the parties involved in a dispute.

    This is why you tend to see the word "region" used in Microsoft products instead of "country". There are still many parts of the world where sovereignty is a highly contentious issue. If you call something a "country", you have effectively "taken sides" in a dispute you probably would be better off staying out of.

    Geopolitics wasn't so much of an issue in the past, where you could control where in the world your program was running by virtue of controlling where your distributors are. But with the Internet, everything you post instantly becomes available to an international audience.

    Unfortunately, I don't have any good advice on this particular tax. My personal rule is "Stay far, far away from maps."

  • The Old New Thing

    Where does an IT guy from a major hotel chain stay at the PDC?


    I believe it was Marc Miller who related this story to me at the PDC. He was chatting with someone whose name badge identified him as an employee from a major high-end hotel chain. Marc joked, "Well, I think it's obvious which hotel you're staying at."

    "Oh no," the gentleman replied. "They won't let me stay there. Too expensive."

    [Raymond is currently away; this message was pre-recorded.]

Page 361 of 460 (4,594 items) «359360361362363»