Raymond Chen

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

Post by this author

Nobody said it was a democracy

It's proxy season, which means I've been reading through proxy statement after proxy statement. The proxy voting rules for Allstate aren't very democratic. Scroll down to "How votes are counted and discretionary voting authority": The thirteen nominees who receive the most votes will be elected to the open directorships even if they...

In order to demonstrate our superior intellect, we will now ask you a question you cannot answer.

During the development of Windows 95, a placeholder dialog was added with the title, "In order to demonstrate our superior intellect, we will now ask you a question you cannot answer." The dialog itself asked a technical question that you need a brain the size of a planet in order to answer. (Okay, your brain didn't need to be ...

Musings on formal and informal address

My entry about Good-Bye, Lenin! appears to have turned into a discussion of formal and informal terms of address in various languages and cultures. Sweden effectively abolished the "du"/"ni" distinction in the 1970's during the so-called "du-reform", getting rid of the formal "ni" and having everybody address each other as "du" - even...

How to retrieve text under the cursor (mouse pointer)

Microsoft Active Accessibilty is the technology that exposes information about objects on the screen to accessibility aids such as screen readers. But that doesn't mean that only screen readers can use it. Here's a program that illustrates the use of Active Accessibility at the most rudimentary level: Reading text. There's much more to ...

News flash: People are fooled by the Onion

Fact-checking? What's fact-checking? I found it on the Internet! Wired News has a story on various people and news agencies being fooled by Onion articles. This used to be news, but now it's so common it may end up relegated to just a counter. "Number of people fooled by Onion articles: n+1...

Cleaner, more elegant, and wrong

Just because you can't see the error path doesn't mean it doesn't exist. Here's a snippet from a book on C# programming, taken from the chapter on how great exceptions are. Notice how much cleaner and more elegant [this] solution is. Cleaner, more elegant, and wrong. Suppose an exception is thrown during CreateIndexes(). The ...

NFL cracks down on grandstanding

The National (US) Football League adopted a 15-yard penalty for pre-planned celebrations, such as last year's "phone call from the end zone" or 2002's "autographed football". Apparently, the existing monetary fines weren't having much of an effect on players with multi-million-dollar contracts. (Surprised?) So now the league is ...

Why the compiler can’t autoconvert foreach to for

People have discovered that the "natural" C# loop construct is fractionally slower than the corresponding manual loop: The first thing that needs to be said here is that The performance difference is almost certainly insignificant. Don't go running around changing all your foreach loops into corresponding for loops thinking that your ...

Good-Bye, Lenin!

This weekend I saw Good-Bye, Lenin!, a German movie about a young man who must pretend that East Germany still exists, for the sake of his mother who was in a coma during the fall of the Berlin Wall and therefore remains unaware of the earth-shattering changes the took place while she was unconscious. There is, of course, the comedy of...

Why can't the system hibernate just one process?

Windows lets you hibernate the entire machine, but why can't it hibernate just one process? Record the state of the process and then resume it later. Because there is state in the system that is not part of the process. For example, suppose your program has taken a mutex, and then it gets process-hibernated. Oops, now that mutex is ...