Showing results for January 2009 - Page 3 of 4 - The Old New Thing

Jan 12, 2009
0
0

xkcd breaks the news on the new Windows 7 user interface

Raymond Chen
Raymond Chen

Last week, Web comic xkcd covered the new Windows 7 user interface. Unfortunately, they got the wrong operating system. It was Windows XP that had a picture of Hitler (according to a few of our beta testers).

Other
Jan 12, 2009
0
0

How does PostQuitMessage know which thread to post the quit message to?

Raymond Chen
Raymond Chen

Commenter bav016 asks how functions like and know which thread the messages should go to. Unlike some functions such as which have a window handle parameter that lets you say which window you want to operate on, and don't say which thread the or message should go to. How do they decide? The messages go to the current thread; that is, they...

Code
Jan 9, 2009
0
0

It’s surprising how suddenly those new skins started pouring in

Raymond Chen
Raymond Chen

A friend of mine told me a story of a project from over ten years ago. Part of the product design was that it would include a bunch of skins (visual styles). The development team had written up the skinning infrastructure, but the company which was hired to create the actual skins hadn't delivered anything. My friend's assignment was to test the sk...

History
Jan 8, 2009
0
0

The programmers don’t design skins; they just make skins possible

Raymond Chen
Raymond Chen

Not all skill sets are interchangeable. That's why we have concepts like division of labor and specialization. But it appears that not everybody understands this. I was reminded of this topic when I read the reactions to the Microsoft Exchange Team announcing that they had added Xbox and Zune themes to OWA. Many people were shocked, such as Lo...

Other
Jan 7, 2009
0
0

Raymond misreads flyers: A Taste of WWL

Raymond Chen
Raymond Chen

There were flyers in our building inviting people to attend a food event called A Taste of WWL. The letters WWL stand for Windows and Windows Live, but the font they chose for the sign was confusing to me. The capital L looked like a capital I, and I misread the poster as an invitation to attend A Taste of WWI. And then I thought, "Who the hec...

Non-Computer
Jan 7, 2009
0
0

When debugging a stack overflow, you want to focus on the repeating recursive part

Raymond Chen
Raymond Chen

When your program breaks into the debugger with a stack overflow, you will get a ridiculously huge stack trace because your program has gone into some sort of recursive death. (This is not a statement of metaphysical certitude, but it is true with very high probability.) But the place where the program crashed is usually not interesting at all. He...

Code
Jan 6, 2009
0
0

Microspeak: Learnings

Raymond Chen
Raymond Chen

If things you teach are teachings, then things you learn must be learnings, right? Good Microspeak citations for this word are hard to find since the word is rarely used in a sentence; it's just a heading in a slide presentation. I found dozens of presentations that had a slide titled Learnings from XYZ, or, for those who want to sound really fancy...

Non-ComputerMicrospeak
Jan 5, 2009
0
0

Not my finest hour: Misreading a product label

Raymond Chen
Raymond Chen

I had finished some store-bought soup and thought to myself, "That was a pretty good soup. What brand was it? I'll buy it again." I went to my recycle bin to fish out the aseptic box that the soup came in, and looked for the brand name. And I found it: dnos. I thought to myself, "That's a strange name for a soup company."

Non-Computer
Jan 5, 2009
0
0

Even if you have code to handle a message, you’re allowed to call DefWindowProc, because you were doing that anyway after all

Raymond Chen
Raymond Chen

Just because you write case WM_SOMETHING: doesn't mean that you have to handle all possible parameters for the WM_SOMETHING message. You're still allowed to call the DefWindowProc function. After all, that's what you did when you didn't have a case WM_SOMETHING: statement in the first place. switch (uMsg) { case WM_CHAR: OnChar(...); ret...

Code