The Old New Thing

Do you have a Starbucks name?

Annabelle Gurwitch has found what may be one of the few remaining places where you can be anybody you want: Starbucks. Check out the part towards the end where people on the street are asked to share their Starbucks names. I'm reminded of a time many years ago when Schultzy's Sausage had expanded to a second location in Redmond. (They ...

What are these spurious nop instructions doing in my C# code?

Prerequisites: Basic understanding of assembly language. When you debug through some managed code at the assembly level, you may find that there are an awful lot of instructions scattered throughout your method. What are they doing there; isn't the JIT smart enough to remove them? Isn't this going to slow down execution of my program? It is...

The Radioactive Boy Scout is back in the news

The Radioactive Boy Scout appears to be back to his old tricks.¹ Nitpicker's Corner ¹Although this statement is written as if it were a fact, it is actually my interpretation of a newspaper article and is not an official position of Microsoft Corporation...

What are these strange cmp [ecx], ecx instructions doing in my C# code?

When you debug through some managed code at the assembly level, you'll find a whole lot of seemingly pointless instructions that perform a comparison but ignore the result. What's the point of comparing two values if you don't care what the result is? In C++, invoking an instance method on a pointer results in undefined behavior. In other ...

For $15, you can purchase incorrect information, and to prevent people from getting it, you have to renew every three months

Given what I know about Naveen Jain, I basically view everything he does with enormous skepticism.¹ I mean, I trust lawyers more than I trust that guy, that's how bad it is. After being booted from InfoSpace, Jain moved across the street and founded Intelius, a company that does basically the same thing: Selling directory information.&...

C# static constructors are called on demand, not at startup

One of the differences between C++ and C# is when static constructors run. In C++, static constructors are the first thing run in a module, even before the function runs.¹ In C#, however, static constructors don't run until you use the class for the first time. If your static constructor has side effects, you may find yourself ...

SIFF 2007 wrap-up: Grandhotel, The Boss of It All, Vacation

Sorry, SIFF fans, but this article got stuck in the queue. But now it's unstuck. (image) (image) (image) (image) (image) (image) (image) (image) (image) (image) Grandhotel : A sweet story about a shy, innocent, weather-obsessed hotel employee and the even stranger people who surround him. I wasn't quite sure what to expect, but I was quite ...

What is the order of evaluation in C#?

The C and C++ languages leave the order of evaluation generally unspecified aside from specific locations called sequence points. Side effects of operations performed prior to the sequence point are guaranteed visible to operations performed after it.¹ For example, the C comma operator introduces a sequence point. When you write f(), g...