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

The Top Gear Winter Olympics 2006

I know nothing about cars. Driving fast scares me. But I still enjoy the British car show Top Gear. The hosts clearly enjoy driving, and they don't hold back in their commentary. ("This was the first seven-seat 4×4 designed by someone who had children, not by an engineer who read about them in a book.") Last week was their Winter ...

Why can't I disable the Cancel button in a wizard?

The macro lets you manipulate many of the buttons on a wizard, but the Cancel button remains elusive. Why can't you disable the Cancel button or the "X" button? Because our users tell us they don't like it. Observation of users in our labs and interviews with them reveal that wizards that disable the Cancel button cause them stress and ...

That $9 you got from the PayPal settlement? Taxable income.

If you're like many people, you signed up for the PayPal class action lawsuit and got around $9 for filing a claim against the Statutory Damage Fund. My read of IRS publication 4345 says that this constitutes taxable income. Note: This is just my personal opinion. Consult with your tax advisor before taking action. As for me, I reported it...

Enumerating threads in a process

The tool helper library is sort of the black sheep of Win32. It grew out of the 16-bit TOOLHELP library, which provided services for system debugging tools to do things like take stack traces and enumerate all the memory in the system. The original incarnation of Win32 didn't incorporate it; it wasn't until Windows 95 that a 32-bit ...

Games give you hand-eye coordination and spatial intelligence together with map-reading skills

Australian comedy group Tripod performs a song that I'm sure describes none of my readers in any way whatsoever. (Courtesy of my good friend The Knitty Professor...

The performance cost of reading a registry key

The registry is a convenient place to record persistent cross-process data in a uniform and multi-thread-safe manner. It roams with the user if you store it in , and individual keys can be secured (even on systems that use FAT, which doesn't otherwise support security). But that doesn't mean that it's free. The cost of opening a key, ...

In pursuit of the message queue

In 16-bit Windows, every thread (or "task" as it was called then) had a message queue, end of story. In the transition to 32-bit Windows, this model broke down because Win32 introduced the concepts of "worker threads" and "console applications", neither of which had much need for messaging. Creating a queue for every thread in the system would...

In pursuit of Michael Cassini, "the king of con"

Michael Cassini used forged documents to pretend that he was a Microsoft millionaire and managed to con people out of over $4.5 million before he was finally caught. Cassini claimed a net worth of $12.3 million, an annual income of $700,000; $8 million on account at Barclays Bank, and more. It was all right there on paper. And...

How the study of languages influences one's appreciation of international competition

One of the consequences of studying another language for me is that I develop some sort of mental connection with the people who speak that language, despite having no innate cultural basis for it. When I studied German, I found myself cheering for the German athletes in the Olympic Games. And in the men's 4x10,000 cross-country relay ...

Why does my program run faster if I click and hold the caption bar?

Sometimes, people discover that a long-running task runs faster if you hold down the mouse. How can that be? This strange state of affairs typically results when a program is spending too much time updating its progress status and not enough time actually doing work. (In other words, the programmer messed up badly.) When you click and hold ...