Back from Europe

Here are some things I learned in Sweden, Germany and Denmark. If you are an airplane pilot, you should avoid communicating on the emergency frequency unless you have an actual emergency. In Sweden, marmalade comes in a flexible tube that looks like a really fat sausage. Swedes can’t handle spicy-hot food. Road warning signs are…


When I dock my taskbar vertically, why does the word “Start” disappear?

Because the alternative is even worse. If the taskbar is not wide enough to display the entire word “Start”, then the word “Start” is hidden. To get it back, resize the taskbar wider until the word “Start” reappears. This behavior is by design. From a design point of view, a partial word looks very broken….


Pre-travel insomnia

I can’t sleep the night before an airplane flight. Certainly I’m not the only person with this problem, right?


How much is that gigabyte in the window?

Slashdot is in an uproar over a lawsuit charging computer manufacturers for misleading consumers over hard drive capacity. The manufacturers use the ISO definition, wherein a “gigabyte” is one billion bytes, even though most people consider a gigabyte to be 1024 megabytes. This is a tricky one. The computer industry is itself inconsistent as to…


Improving the world one bad analogy at a time

One thing I am known for at Microsoft is my frequent use of bad analogies. Everybody else at work has had to suffer; now it’s your turn. Why are there so many copies of svchost.exe running? What is svchost.exe anyway? Traditionally, each service runs in its own process. When you are developing and testing your…


Emergency vacation

Hurricane Isabel made a mess of my weekend travel plans, so I decided, “If you can’t beat ’em, join ’em.” My outbound flight was cancelled, and even with the best possible substitution – a flight out the very next day – losing a day on a weekend trip pretty much kills it. So I extended…


The end of the scrollbar series

Okay, that’s basically the end of the scrollbar series. Do people actually like the idea of a coding series? It gets very few comments, and it’s a lot of work to write, so if nobody actually cares I can just write about quick little things and not try to be coherent from day to day….


Answers to exercise from Scrollbars Part 11

Exercise: Why do we use the formula c = a + (b-a)/2 instead of the simpler c = (a+b)/2? Answer: To avoid integer overflow in the computation of a+b. Here, a and b are window coordinates, and the window can be anywhere. If the window were placed at extreme coordinates like (MAXLONG,MAXLONG), then the arithmetic…

Scrollbars part 12: Applying WM_NCCALCSIZE to our scrollbar sample

Now that we have learned about the intricacies of the WM_NCCALCSIZE message, we can use it to get rid of the flicker in our resizing code. We just take the trick we used above and apply it to the scroll program. First, we need to get rid of the bad flickery resize, so return the…


Why does Win32 fail a module load if an import could not be resolved?

Because we tried it the other way and it was much worse. In 16-bit Windows, a module that didn’t satisfy all its imports would still load. As long as you didn’t call a missing import, you were fine. If you did try to call a missing import, you crashed pretty spectacularly with the dreaded Unrecoverable…