The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Because programmers were trusted to do the right thing, part 2
Some time ago, I discussed briefly the philosophy of API design that prevailed in the early days. One of the places this manifested itself was in the area of power management. As originally designed, power management was a cooperative affair (as was nearly everything in Windows in the early days). When the user attempted to put the computer into a low power state, the system sent a message to each program, allowing it to prepare for the suspend operation, say, closing network resources or flushing caches, or even reject the suspend attempt outright. Programmers were trusted to do the right thing. Rejecting th...
Recycling old PCs and cell phones
PC World reports that eBay has set up a recycling initiative called rethink. The web site includes organizations that will accept donations or recycle your old equipment. In the Seattle area, the Take It Back Network will accept your old equipment for reuse or recycling. On the other hand, I have equipment so old nobody would take it.
The "symmetric" in symmetric multiprocessing really means "symmetric"
The Windows NT family of operating systems supports symmetric multiprocessing. And symmetric really means symmetric. All the processors have to be the same speed, the same stepping, the same manufacturer. They must be identical in every way. If you break any of these rules, you will get strange results. Strange results from will be the least of your problems. Code that checks for processor capabilities will get the results from whichever processor happens to be running. If you have one processor that supports SSE and one that doesn't, a program may detect SSE (if the detection code runs on the processor t...
Studs from Microsoft
Chris Sells reminded me of the Studs from Microsoft sketch (direct link to video), a parody of the dating game show Studs, as performed by the now-defunct local sketch comedy program Almost Live! And yes, in that sketch is Bill Nye at the midpoint of his rise to stardom. Between his careers as Boeing mechanical engineer and nationally-recognized "Science Guy", he was on Almost Live!, performing both comedy and science demonstrations. The program had quite an enthusiastic following in its day. If you were new to the area, sooner or later one of your friends would sit you down and force you to watch a half hou...
Other things people do with beta versions of the operating system
Somewhat belatedly riffing on Larry and his discussion of time bombs in beta products, I'm reminded of one instance of a major PC manufacturer who apparently couldn't wait for Windows 95 to RTM. Tired of waiting, they shipped several thousands of machines with a late beta version of Windows 95 instead. That worked out really great. For six months. And then all the computers expired. Boy did they have a lot of 'splainin' to do.
That's just super (and a note on baking)
Microspeak has its own lexicon. (Even larger dictionary here. I take issue with some of the definitions, but they are generally accurate.) In addition to the rather extensive use of the word "so" as an introductory particle, another peculiarity of Microspeak is the unusually frequent use of the word "super" as an intensifier, particular when used in the phrase "super excited". Today's contribution to the lexicon: Bake - (of a code change) to build confidence by observing its behavior over a period of time. "The fix seems to be working in our branch but I want to let it bake another few weeks before we RI." ...
The dangers of sleeping on a UI thread
If you have a thread that owns a window, you should not be using the function, because that causes your thread to stop responding to messages for the duration of the sleep. This is true even for sleeps of short duration, such as sleeping for a few seconds and waking up in order to poll the state of something in the system. As we noted earlier, polling is bad for system performance, impairing the system's ability to conserve energy in low power scenarios and suffering from the magnifying effects of Terminal Server. If you're idle, stay idle. If you're busy, do your work and then go idle. Unfortunately, I occa...
Shifting from program management to programming also affects your social life
My colleague who switched from program management to programming has this to say about unintended consequences: My take on this is that I developed through the needs of my job as a lead program manager the ability to talk to anyone at any time to get a particular issue dealt with, but that I didn't necessarily want to do this or enjoy the process. After work or on the weekends, my wife was hard pressed to get me to see other people. Now, there is no such issue. The reduction in forced human interaction is such that I am no longer overstretching my ability to interact with people, thus rendering me able to un...
Comparing writing specifications to writing code
My colleague who manages to pack his entire office into a single box recently made the switch from program management to programming. I teased him, "So what's it like using an editor without a 'boldface' button?" His response was actually rather insightful. "Writing specifications is like writing a novel. Writing code is like writing poetry." When you're writing a specification, you need to start by setting the scene so people understand the problem you're trying to solve. You then explore the world you've created, elaborating on the details necessary to convey your intent, considering all the possibilities an...