The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Running old programs in a virtual machine doesn’t necessarily create a good user experience
Oct 5, 2005
Post comments count 0
Post likes count 0

Running old programs in a virtual machine doesn’t necessarily create a good user experience

Raymond Chen
Raymond Chen

Many people suggest solving the backwards compatibility problem by merely running old programs in a virtual machine. This only solves part of the problem. Sure, you can take a recalcitrant program and run it in a virtual machine, with its own display, its own hard drive, its own keyboard, etc. But there are very few types of programs (games being a notable example) where running them in that manner yields a satisfying experience. Because most programs expect to interact with other programs. Since the virtual machine is running its own operating system, you can't easily share information across the virtual ma...

My history of time is briefer than yours
Oct 5, 2005
Post comments count 0
Post likes count 0

My history of time is briefer than yours

Raymond Chen
Raymond Chen

In 1999, Eric Schulman published A Briefer History of Time, based upon his previous effort to capture the history of the universe in 200 words. The book takes the initial 200-word summary and expands upon each phrase, surreptitiously teaching you some science among the jokes. (You can even watch a video.) And then this Hawking guy shows up and gives his book the exact same title. What a rip-off. (I'm told this Hawking guy has a lot of fans. Those who live in the Seattle area might be interested to know that he'll be in town in mid-November.)

Katamari Damacy: The most screwed-up video game ever
Oct 4, 2005
Post comments count 0
Post likes count 0

Katamari Damacy: The most screwed-up video game ever

Raymond Chen
Raymond Chen

As I already noted, I went down to Los Angeles a few days before the PDC to spend time with friends and relatives. I stayed with a cousin who works for a major video game manufacturer, and his boss gave him a homework assignment: He was told to go home and play a specific video game. (Unfortunately, it wasn't a particularly good video game, but his boss didn't want him to admire the gameplay. He wanted him to pay attention to the visual design.) Tell this to a teenager and they will think my cousin has a dream job. "He plays video games and gets paid for it!" But of course, we all know that there's a differenc...

Consequences of the scheduling algorithm: Sleeping doesn’t always help
Oct 4, 2005
Post comments count 0
Post likes count 0

Consequences of the scheduling algorithm: Sleeping doesn’t always help

Raymond Chen
Raymond Chen

More often I see the reverse of the "Low priority threads can run even when higher priority threads are running" problem. Namely, people who think that is a clean way to yield CPU. For example, they might have run out of things to do and merely wish to wait for another thread to produce some work. Recall that the scheduler looks for the highest priority runnable thread, and if there is a tie, all the candidates share CPU roughly equally. A thread can call to relinquish its quantum, thereby reducing its share of the CPU. Note, however, that this does not guarantee that other threads will run. If there is a...

Perhaps I like the phrase “withered hand” a bit too much
Oct 3, 2005
Post comments count 0
Post likes count 0

Perhaps I like the phrase “withered hand” a bit too much

Raymond Chen
Raymond Chen

Sure, I like saying "withered hand", but Google took this a bit too far and made me the top hit for the phrase , making me more popular than Jesus with respect to that phrase, at least for now. I apologize to all the people looking for the Miracle of the Withered Hand. Fortunately, MSN Search and Yahoo were not fooled.

Consequences of the scheduling algorithm: Low priority threads can run even when higher priority threads are running
Oct 3, 2005
Post comments count 0
Post likes count 0

Consequences of the scheduling algorithm: Low priority threads can run even when higher priority threads are running

Raymond Chen
Raymond Chen

Just because you have a thread running at a higher priority level doesn't mean that no threads of lower priority will ever run. Occasionally, I see people write multi-threaded code and put one thread's priority higher than the other, assuming that this will prevent the lower-priority thread from interfering with the operation of the higher-priority thread so that they don't need to do any explicit synchronization. BOOL g_fReady; int g_iResult; // high priority thread SetResult(int iResult) { g_fReady = TRUE; g_iResult = iResult; } // low priority thread if (g_fReady) { UseResult(g_iResult); } Let's ign...

The reverse-engineering of PDC 2005 pass colors
Sep 30, 2005
Post comments count 0
Post likes count 0

The reverse-engineering of PDC 2005 pass colors

Raymond Chen
Raymond Chen

Last night, the MVP Global Summit broke up by product groups for dinner. I was at the Windows Client product group dinner. The problem for me was figuring out who were the MVPs and who were just Microsoft employees looking for MVPs to chat with. Unfortunately, the people who made up the badges didn't think of making it easy to tell who is who. I saw badges of different colors, but they appeared to be coded by product group rather than by attendee status. More than once, I sat down next to someone and introduced myself, only to find that they were another Microsoft employee. (Hey, but I made Robert Flaming do a ...

But I have Visual Basic Professional
Sep 30, 2005
Post comments count 0
Post likes count 1

But I have Visual Basic Professional

Raymond Chen
Raymond Chen

Back in 1995, I was participating in a chat room on MSN on the subject of device driver development. One of the people in the chat room asked, "Can I write a device driver in Visual Basic?" I replied, "Windows 95 device drivers are typically written in low-level languages such as C or even assembly language." Undaunted, the person clarified: "But I have Visual Basic Professional."

English Cut: Bringing bespoke tailoring into the general consciousness
Sep 30, 2005
Post comments count 0
Post likes count 0

English Cut: Bringing bespoke tailoring into the general consciousness

Raymond Chen
Raymond Chen

Thomas Mahon's English Cut is a glimpse into the world of bespoke tailoring, a world I was completely unaware of prior to his web site. I was particularly fascinated by his description of how to recognise the work of Anderson & Sheppard by inspecting the pockets. It is this attention to detail that really makes the difference between good and great. I like to think that every now and then one of my own essays, say on the fine details of scroll bars or on supporting double-clicked radio buttons, also helped someone raise the quality of their software from good to great. Mr. Mahon's partner in crime i...