The Old New Thing by Raymond Chen https://www.goodreads.com/book/show/194791.The_Old_New_Thing # SYNOPSIS A book of "true enough" stories about the development of Microsoft Windows and the design decisions within it. The column that inspired this book is still going at https://devblogs.microsoft.com/oldnewthing/ There's a lot of stuff in this book that's very specific to Windows development and Win32 development in particular that is of no real interest to me. If it ever becomes so, I will simply re-read the book. My notes, therefore, are for things that jumped out at me or which have scope to be more interesting to programmers in general. # NOTES "..." after a menu item doesn't mean "a dialog will appear" - it means extra information has to be collected before the task can run which often DOES result in a dialog appearing, of course. In the original Windows 95 you could click on a map to choose your timezone but this feature was removed. Why? A war between Peru and Ecuador in 1995 meant that neither was happy with the border. The Indian government was also unhappy with how an area was assigned to Pakistan. Microsoft didn't want to manage multiple code bases for different geopolitical views of the world. The Windows 95 Special Edition given out at various marketing events was identical to consumer versions of Windows 95. It just had a fancier box. Having a smaller dictionary for a spell checker can be better than having a larger one in many cases, otherwise a sentence like "Therf werre eyght bokes" would be considered correct being made up of old or obsolete words. Good support agents don't ask "Are you sure it's plugged in correctly?" otherwise people will just claim it is. They ask them to unplug, "blow to get the dust out" and replug it back in, which will also catch out any users who didn't have the cable plugged in so they can fix the issue without any embarrassment. Helping customers save face is important. The HLT (halt) instruction tells the CPU to stop execution until there's a hardware interrupt. MS tried using this to make Windows more efficient on laptops but some just crashed when this was used. So they had to remove this feature. Then other third party tools came along and added the feature back causing people to accuse MS of not coding efficiently. The problem was really that they had to ensure their code worked on all common hardware as they would get blamed for any breakage and not the hardware manufacturer! MS discovered that a graphical app (the DirectX 3D tunnel demo) ran four times slower when called FUNNEL.EXE rather than TUNNEL.EXE. It turned out the graphics card vendor was cheating in their driver to make things look better when TUNNEL.EXE was run by skipping frames. The "poor man's way of identify memory leaks." If an app would usually use 16MB of data but is now using 1000MB+ then the odds are that any random data you grab from the app's memory is a leaked object so do this several times and you can identify what is leaking even without instrumentation, etc. The IE 5 team discovered that the creators of a browser extension were deliberately throwing errors in order to drive upgrades via an error message. Dr. Watson is a nickname for "Windows Error Reporting" but the term Watson has become synonymous in Windows situations to represent anonymous end-user feedback mechanisms. The original name for the diagnostics tool however was Sherlock but it had to be renamed due to the existance of another debugging tool called Sherlock. DirectX 4 never existed as such because the plan was for DX4 to be a short term release and DX5 the true big new version, but the feedback from the game community showed DX4's features to be of no interest so it wasn't ever released and instead work continued on 5 with no renaming. Text files in the CP/M days used to be padded out with CTRL+Z (ASCII 26) in order to fill up a full sector of a disk. More about this in https://en.wikipedia.org/wiki/Substitute_character Explorer ejects CDs after burning them to work around buggy hardware caches. Ejecting and reinserting a CD forces this cache to be cleared. Windows 2000 redesigned how the date/time selector worked because people were using it as a calendar to look up dates and breaking the date/time on their machines. "Because the alternative is worse" is one of the most common answers to questions in the book about why things are the way they are in Windows.