The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

No good deed goes unpunished, part 2, redux
May 18, 2010
Post comments count 0
Post likes count 0

No good deed goes unpunished, part 2, redux

Raymond Chen
Raymond Chen

I noted some time ago that I have taken to "blaming" Exchange when someone assumes that my reply to a thread on a distribution list implies that I have taken responsibility for resolving their problem. One of my colleagues in another group is in a similar situation with respect to a different product, and he has taken to using the same basic formulation when sending issues back to the distribution list. One variation he used a while back gave me a chuckle: We need a new Exchange server. This one keeps stripping the mailing list.

An insight into the balance between forgiveness and permission
May 18, 2010
Post comments count 0
Post likes count 0

An insight into the balance between forgiveness and permission

Raymond Chen
Raymond Chen

One of my colleagues shared this valuable insight into the balance between forgiveness and permission, which he in turn learned from a high-level manager in his organization: The statement that it is better to ask for forgiveness than to obtain permission is true 90% of the time. The key to success is knowing where the other 10% is.

If Windows 3.11 required a 32-bit processor, why was it called a 16-bit operating system?
May 17, 2010
Post comments count 0
Post likes count 2

If Windows 3.11 required a 32-bit processor, why was it called a 16-bit operating system?

Raymond Chen
Raymond Chen

Because it mostly ran 16-bit applications.

Maxing out the upsell-o-meter
May 14, 2010
Post comments count 0
Post likes count 0

Maxing out the upsell-o-meter

Raymond Chen
Raymond Chen

Many grocery stores in the United States have a printer next to the cash register which prints out coupons customized to your purchases. If you buy the house brand of spaghetti, it might print out a coupon for a slightly more expensive brand of spaghetti. The goal with these coupons is to get you to try a fancier (and therefore more profitable) version of the product in the hopes that you will like it and switch. For reasons not important to the story, one of my colleagues needed to buy baby formula for his newborn son. He and his wife carefully researched the options and decided that the best brand to get was X...

How do I prevent users from dragging and dropping files in Explorer?
May 14, 2010
Post comments count 0
Post likes count 0

How do I prevent users from dragging and dropping files in Explorer?

Raymond Chen
Raymond Chen

More than once, I've had a customer ask, "How do I prevent users from dragging and dropping files in Explorer?" Actually, three of them in the past year phrased it in an even more provocative way: "I want to write a program that hooks Explorer and displays a prompt before every drag/drop operation." This is one of those cases where you have to figure out what the customer really wants. They've solved half of their problem and are asking you for help with the other half. In my experience so far, when customers ask this question, their real problem is always one of the following: First, they just want to preven...

Things the locals know: How to have lunch at El Brillante
May 13, 2010
Post comments count 0
Post likes count 0

Things the locals know: How to have lunch at El Brillante

Raymond Chen
Raymond Chen

One of my colleagues moved to Granada last year, and he kindly provided me some recommendations for places to eat in Madrid. We found El Brillante easily, positioned across the street from the Atoche train station, with its back door and terrace facing the Museo Nacional Centro de Arte Reina Sofia (which mercifully goes by the nickname Museo Reina Sofia). But once you step inside to order your lunch, you enter a crowded, cacophanous world with people yelling back and forth and nothing even resembling a line. Here is how to have lunch at El Brillante: As you can see, it's a well-choreographed zoo. Oh, and t...

Why can I type a lowercase s with caron with the numeric keypad, but not a lowercase r with caron?
May 13, 2010
Post comments count 0
Post likes count 0

Why can I type a lowercase s with caron with the numeric keypad, but not a lowercase r with caron?

Raymond Chen
Raymond Chen

For concreteness, let's assume that you are using 437 as your OEM code page (which as we all know is not actually provided by the OEM) and 1252 as your ANSI code page (which as we all known is not actually the product of the American National Standards Institute). You can use Alt+0154 to type a Latin small letter s with caron because position 154 in code page 1252 is the Latin small letter s with caron. On the other hand, lowercase r with caron does not exist in code page 1252, nor does it exist in code page 437, so if you want to type that character, you're out of luck. The Alt+nnn...

The problem with setting up a story is that people focus on the set-up and miss the point of the story
May 12, 2010
Post comments count 0
Post likes count 0

The problem with setting up a story is that people focus on the set-up and miss the point of the story

Raymond Chen
Raymond Chen

In writing, one of the steps you need to perform is motivating the discussion. Now, technically, you don't have to do that, but if you just dive into the guts of a topic right off the bat, people are going to say, "What the heck is going on and why should I care?" Consider, for example, an article I wrote a while back on how to use WMI to obtain computer configuration information. To motivate the discussion, I considered a customer who wanted to collect computer manufacturer information programmatically (presumably for asset inventory purposes). But really, the reason wasn't important. It was just something for...

It rather involved being on the other side of this airtight hatchway: Consequences of enabling the kernel debugger
May 11, 2010
Post comments count 0
Post likes count 0

It rather involved being on the other side of this airtight hatchway: Consequences of enabling the kernel debugger

Raymond Chen
Raymond Chen

In the category of dubious security vulnerability, I submit for consideration the following report: A machine with the kernel debugger enabled is vulnerable to a denial of service attack from an unprivileged user. The unprivileged user need only deference a null pointer. Once this occurs, the computer becomes completely unusable to all users. Um, yeah. That's sort of the whole point of the kernel debugger, to halt system execution as soon as a problem has been detected. Enabling the kernel debugger requires administrative privileges, so it's not like unprivileged users can force a system halt on their own; the...