The Old New Thing

Don't be helpless: You can find information, too, if you try

Here's a question that floated past my view: Anybody know if there exists a library for computing MD5 hashes from unmanaged code? MSDN has information about .NET classes, but nothing about the unmanaged side. Hm, let's see. Wow, those hits sure look promising. Perhaps a search on Windows Live or Google¹ will turn up something. ...

Simply attach a piano to the end of the trebuchet

As easy as 1-2-3. What's really scary is that they are hardly the only people to have done this. An Internet search will reveal many other people who've expressed similar musical talent. Or you can build one out of an industrial robot and hurl flaming bowling balls...

Money: The new plagiarism

It appears that the country of Burundi used a freelance photographer's image on their currency without permission. (If the article goes down, BoingBoing saved a side-by-side comparison for your inspection.) The article adds that Fajack says he's talked about his case with several lawyers, editors and people experienced in photography and ...

Why are DLLs uninitialized in the "wrong" order?

This is really just a corollary to Why are DLLs unloaded in the "wrong" order. Exactly the same logic that explains why DLLs are unloaded in the "wrong" order also explains why they are uninitialized in the "wrong" order. Once you understand the first issue, the second comes for free; just change to in your analysis. Apply the logic to ...

Million Dollar Password: At least it shares a name with the original

Password was one of the classic game shows. Its methodical pace encouraged thoughtful play, as opposed to today's game shows which appear to rely on dramatic music and ominous spotlights for their appeal. This is not a clip from the game show but rather a scene from the comedy The Odd Couple in which the two characters are contestants, and ...

Why does OpenProcess succeed even when I add three to the process ID?

A customer noticed that if you add three to a process ID and pass it to the function, it still succeeds. Why is that? Well, first of all, I need to say up front that the behavior you're seeing is an artifact of the implementation and is not part of the contract. You're passing intentionally invalid parameters, what did you expect? The ...

Portugal TechDays 2008: A report

Back in March, I agreed to make a brief appearance at Portugal TechDays 2008. My arrival was delayed due to heavy traffic: I had taken the number 15 tram, which was jam packed, and the traffic on the road didn't help either. And then when I found the building labelled Centro de Congressos, I found the doors locked. That's because the big ...