The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Dec 15, 2009
Post comments count 0
Post likes count 0

You are listening to Radio Free Bob, a pirate radio station broadcasting on the Microsoft corporate network

Raymond Chen

Saturating the network with broadcast packets.

Dec 14, 2009
Post comments count 0
Post likes count 1

Why did the word Start disappear from the Start button?

Raymond Chen

Commenter Mike Dunn would like to know why the word Start disappeared from the Start button in Windows Vista. After all, adding the word Start helped new users figure out what they should click first. I don't know but I can guess. To emphasize that these are guesses, I went back in after I wrote them and added all sorts of weasel words. It sort of saps the punch from the statements, but it's one of those things I've learned that I have to do to avoid the more egregious forms of willful misunderstanding. First of all, it might have been a leftover from one of the older designs for the Vista taskbar, one whic...

Dec 11, 2009
Post comments count 0
Post likes count 0

Lamebook: The best of Facebook

Raymond Chen

Craig's List has a Best of Craig's List, but Facebook doesn't. Well now it does: LameBook (warning: often NSFW). My favorite: Lameonella.

Dec 11, 2009
Post comments count 0
Post likes count 1

The format of bitmap resources

Raymond Chen

Another in a sporadic series on the format of Win32 resources. Here's a question from a customer: I'm noticing some strange behavior: When I call then on an embedded bitmap, the data being returned by is not a properly formatted bitmap. The data is missing the , but the rest of the file is there. also states that the bitmap resource is 14 bytes smaller than it actually is. 14 bytes happens to be equal to . However, if I load the bitmap directly using , everything works fine. If I look at the resource using Visual Studio, the Bitmap displays correctly and the binary data correctly includes the . Anyone h...

Dec 10, 2009
Post comments count 0
Post likes count 1

Those houses are too small for anyone to live in

Raymond Chen

Not Always Right is a collection of brief stories told by people in customer service. One of my favorites is from somebody who lives on Catalina Island and had to answer the question, "What time does the island close?" Runners-up: (I've left off the punch lines so as not to spoil the surprise.) The stories have been collected into a book, The Customer Is Not Always Right: Hilarious and Horrific Tales of Customers Gone Wrong. It's almost certainly a funnier and more enjoyable read than my own book. What's more, they have a Facebook group and I don't. Maybe I should start one?

Dec 10, 2009
Post comments count 0
Post likes count 1

Only an idiot would have parameter validation, and only an idiot would not have it

Raymond Chen

The great thing about parameter validation is that there are people who say that only idiots would have it, and other people who say that only idiots wouldn't. Back in the old days, Windows didn't do parameter validation. If you called a function with an invalid window handle, your application crashed. If you called a function with an invalid pointer, your application crashed. If you called a function with an invalid bitmap handle, your application crashed. There was a lot of crashing going on. These crashes manifested themselves in the infamous Unrecoverable Application Error dialog, commonly known as the UAE...

Dec 9, 2009
Post comments count 0
Post likes count 1

What are those little overlay icons: Windows 7 edition

Raymond Chen

Some time ago, I summarized the overlay icons that come with Windows. There have been some changes in Windows 7, so I figured it'd be worth coming up with a new list. A private item is an item where the only user account with access is you.¹ You create one of these, for example, by going to the sharing wizard and saying Share with: Nobody. To avoid clutter, the overlay is shown only when there is a transition from non-private to private. (Otherwise you'd have a lock overlay on everything in your Documents folder, for example.) No longer present as an overlay is the sharing hand. Why was the sharing...

Dec 8, 2009
Post comments count 0
Post likes count 1

How do I determine the processor's cache line size?

Raymond Chen

When doing high-performance computing, you need to worry about the CPU cache line size in order to avoid issues like false sharing. But how can you determine the processor's cache size? The function will give you characteristics of the logical processors in use by the system. You can walk the returned by the function looking for entries of type . Each such entry contains a which tells you which processor(s) the entry applies to, and in the , it tells you what type of cache is being described and how big the cache line is for that cache. Windows 7 adds the function which does the filtering for you.

Dec 8, 2009
Post comments count 0
Post likes count 1

Things I've written that have amused other people: Episode 6

Raymond Chen

On an internal discussion group, somebody decided to quote one of my blog entries. Jim Medding was amused by my response: Bloggers are just idiots with a Web site. (My blog was dug up in order to refute a claim, even though the blog entry applied to a situation different from the one under discussion.)