{raw}
⤺ /text/books

old-new-thing.txt

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.

tcp.rip