Choosing a C runtime library

Yesterday a developer in my group came by asking about a failure he saw when running the application verifier on his component.  The app verifier was reporting that he was using a HEAP_NO_SERIALIZE heap from a thread other than the one that created the heap. I looked a bit deeper and realized that he was…

23

What if Microsoft behaved like the Coalition Provisional Authority?

 So I’m listening to NPR this morning and I ran into this short article on Morning Edition: The Coalition Provisional Authority in Iraq provides information on electricity production and reconstruction projects, but not on security. The coalition Web site declares, “For security reasons, there are no security reports.” The actual web page can be found…

12

Another Exchange blog posted

KC just posted another of my Exchange blog entries.  This one’s on the Exchange 2000 access rights and how Exchange 5.5 access rights were represented in Exchange 2000. Enjoy!  


When global destructors bite

In my work, I use a lot of ATL.  And in general, I’m pretty impressed with it.  I recently ran into a cool bug that I figured would be worth posting about. First, what’s wrong with the following code?   main.cpp: #include <stdafx.h>  CComPtr<IUnknown> g_pUnknown;    void __cdecl main(int argc, char *argv[])  {     HRESULT…

8

Larry’s rules of software engineering #2: Measuring testers by test metrics doesn’t.

This one’s likely to get a bit controversial J. There is an unfortunate tendency among test leads to measure the performance of their testers by the number of bugs they report. As best as I’ve been able to figure out, the logic works like this: Test Manager 1: “Hey, we want to have concrete metrics…

28

It’s only temporary

NT has a whole lot of really cool features that aren’t always obvious without REALLY looking closely at the documentation. One of my favorite is what I call “temporary” temporary files. A “temporary” temporary file is one whose storage is never written to disk (in the absence of memory pressure).  It behaves just like a…

8

I get all my news on /.

Slashdot has a post on the front page indicating that Microsoft’s made the VC 2K3 compiler available for free download here. I gotta say, I’m impressed at the VC team for releasing it, it’s pretty amazing IMHO that they’d let this out free of charge.

1

Larry’s rules of software engineering, part 1: Every software engineer should know roughly what assembly language their code generates.

The first in an ongoing series (in other words, as soon as I figure out what more rules are, I’ll write more articles in the series). This post was inspired by a comment in Raymond’s blog where a person asked “You mean you think I’m expected to know assembly language to do my job?  Yech”. My…

20

One in a million is next Tuesday

Back when I was a wee young lad, fresh from college, I thought I knew everything there was to know.   I’ve since been disabused of that notion, rather painfully. One of the best happened very early on, back when I was working on DOS 4.  We ran into some kind of problem (I’ll be…

6

So you need a worker thread pool…

And, for whatever reason, the NT’s built-in thread pool API doesn’t work for you. Most people would write something like the following (error checking removed to reduce typing (and increase clarity)): class WorkItem {     LIST_ENTRY m_listEntry;         :         : }; class WorkerThreadPool {     HANDLE m_heventThreadPool;     CRITICAL_SECTION m_critsThreadPool;     LIST_ENTRY m_workItemQueue;    …

14