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

Raymond 1, Sidewalk 1

I successfully avoided the stealth sidewalk the other day. This evens the score. (Today is Starbucks Bike to Work Day...

Redirecting output can result in altered program behavior

Consider a program whose output to the console goes like this. (I've prefixed each line with the output stream.) You want to capture both the normal and error streams, so you run the program and append "" to capture both streams into a single file. But when you look at the resulting output file, you get this: What happened? Most ...

Making up new Winter Olympic events

My approach to inventing new Winter Olympic events is to create new opportunities for head-to-head competition, opening the door to new dramatic possibilities. For example, in Ski Jump Biathlon, one team jumps while the other team tries to shoot them (with paint pellets, of course) as they sail through the air. In Figure Curling, one team ...

The redirection operator can occur in the middle of the command line

Although the redirection operator traditionally appears at the end of a command line, there is no requirement that it do so. All of these commands are equivalent: All of them echo "A B" to the file "C". You can use this trick to avoid the redirection problem we discussed last time. We saw that writing inadvertently interprets the "2...

Don't mention the war. I mentioned it once, but I think I got away with it all right

The Germans is probably the most well-known episode of Fawlty Towers. Who better than John Cleese, therefore, to release the song Don't Mention the War, just in time for the World Cup. The purpose is to mend fences between Britain and Germany, but it might just make things worse, who knows...

Beware of digits before the redirection operator

If you want to put the string "Meet at 2" into the file "schedule", you might be tempted to use If you try this, however, you'll see the string "Meet at" on the screen and the "schedule" file will be blank. [Typo fixed, 10am] What happened? A digit immediately before a redirection operator modifies which stream the redirection operator...

The real scoop on the the x64 calling convention on 64-bit Windows

Official (though preliminary) documentation on the x64 calling convention is available on MSDN, for those who want more than my quack overview. (Oops, I meant "quick overview". Little Freudian slip there...

Command line redirection is performed by the command line interpreter

The magic characters like <, >, and | in command lines like are interpreted by the command interpreter ; they aren't built into the function. (This is obvious if you think about it. That command line created two processes; which one should return a handle to?) If you pass a command line like this to , it will merely run the ...

The first word on the command line is the program name only by convention

The format of the command line returned by is "", but this is only a convention. If you pass for the to the function, then the function will treat the first word of the as the program name. However, if you pass a value for , then that string determines the program that is run, and the string passed as the is not used for that purpose. ...

On languages and spelling

When I brought up the topic of spelling bees earlier this year, it triggered several comments on how various languages deal with the issue of spelling. Here are some thoughts on the topics that were brought up: German spelling is only partly phonetic. Given the spelling of a word, one can, after applying a rather large set of rules, ...