Posts by this author

Sep 7, 2005
Post comments count0
Post likes count0

Why aren’t low-level hooks injected?

When I described what the HINSTANCE parameter to the function is for, I neglected to mention why the low-level hooks are not injected. But then again, it should be obvious. The low-level hooks let you see input as it arrives at the window manager. At this low level of processing, the window manager hasn't yet decided what window will receive...

Code
Sep 6, 2005
Post comments count0
Post likes count0

Windows Server 2003 can take you back in time

If you are running Windows Server 2003, you owe it to yourself to enable the Volume Shadow Copy service. What this service does is periodically (according to a schedule you set) capture a snapshot of the files you specify so they can be recovered later. The copies are lazy: If a file doesn't change between snapshots, a new copy isn't made. Up to 6...

Tips/Support
Sep 5, 2005
Post comments count0
Post likes count0

Spider Solitaire unseats the reigning champion

A few months ago, the usability research team summarized some statistics they had been collecting on the subject of what people spend most of their time doing on the computer at home. Not surprisingly, surfing the Internet was number one. Number two was playing games, and in particular, I found it notable that the number one game is no longer Klond...

Other
Sep 2, 2005
Post comments count0
Post likes count1

Precision is not the same as accuracy

Accuracy is how close you are to the correct answer; precision is how much resolution you have for that answer. Suppose you ask me, "What time is it?" I look up at the sun, consider for a moment, and reply, "It is 10:35am and 22.131 seconds." I gave you a very precise answer, but not a very accurate one. Meanwhile, you look at your watch...

Other
Sep 1, 2005
Post comments count0
Post likes count0

More undocumented behavior and the people who rely on it: Output buffers

For functions that return data, the contents of the output buffer if the function fails are typically left unspecified. If the function fails, callers should assume nothing about the contents. But that doesn't stop them from assuming it anyway. I was reminded of this topic after reading Michael Kaplan's story of one customer who wanted the ou...

Code
Aug 31, 2005
Post comments count0
Post likes count0

Hoping the worst-case scenario doesn’t come to pass

A few years ago, NPR and American RadioWorks ran a story on the consequences to New Orleans of a Category 5 hurricane [NPR part 1] [NPR part 2]. I had been hoping that the city would escape the worst-case scenario of the water topping the levees and submerging the city in twenty feet of water, but yesterday's levee breaches appear to ...

Non-Computer
Aug 31, 2005
Post comments count0
Post likes count0

Understanding hash codes

On more than one occasion, I've seen someone ask a question like this: I have some procedure that generates strings dynamically, and I want a formula that takes a string and produces a small unique identifer for that string (a hash code), such that two identical strings have the same identifier, and that if two strings are different, then they wi...

Code
Aug 30, 2005
Post comments count0
Post likes count0

On the adult appeal of dodgeball

NPR's Only a Game recently covered the rise of adult dodgeball. At MSN's tenth birthday party last week, there was a wide variety of entertainment options, the highlight of which appeared to be an organized dodgeball tournament. It was very well attended and didn't have the ego-damaging overtones you got from elementary school. A good time was ...

Other
Aug 30, 2005
Post comments count0
Post likes count0

Program names in file type handlers need to be fully-qualified

Most people probably haven't noticed this, but there was a change to the requirements for file type handlers that arrived with Windows XP SP 2: Paths to programs now must be fully-qualified if they reside in a directory outside of the Windows directory and the System directory. The reason for this is security with a touch of predictabil...

Code