In an earlier comment, Larry Osterman described why Windows 3.0 was such a runaway success. He got a little of the timeline wrong, so I'll correct it here.
Windows 2.0 did support protected mode. And it was Windows/386, which came out before Windows 3.0, which first used the new virtual-x86 mode of the 80386 processor to support pre-empti...
Sometimes you'll see somebody brag about how many words are in their spell-checking dictionary. It turns out that having too many words in a spell checker's dictionary is worse than having too few.
Suppose you had a spell checker whose dictionary contained every word in the Oxford English Dictionary. Then you hand it this sentence:
Therf ...
Luna was the code name for the Windows XP "look". The designers did a lot of research (and got off to a lot of false starts, as you might expect) before they came to the design they ultimately settled upon.
During the Luna studies, that people's reaction to Luna was often, "Wow this would be a great UI for X," where X was "my dad" or "my em...
When you're dealing with application compatibility,
you discover all sorts of things that worked only by accident.
Today, I'll talk about some of the "creative" ways people
mess up the
IUnknown::QueryInterface method.
Now, you'd think, "This interface is so critical to COM,
how could anybody possible mess it up?"
Forgetting to respond to IUnk...
David Cumps discovered that certain text files come up strange in Notepad.
The reason is that Notepad has to edit files in a variety of encodings, and when its back against the wall, sometimes it's forced to guess.
Here's the file "Hello" in various encodings:
This is the traditional ANSI encoding. This is the Unicode (little-endian) ...
As we learned in a previous entry, string resources group strings into bundles of 16, each Unicode string in the bundle prefixed by a 16-bit length. Why does the Resource Compiler complain about strings longer than 255 characters?
This is another leftover from 16-bit Windows.
Back in the Win16 days, string resources were also grouped into bu...
This protocol dates back to the days of teletypewriters.
CR stands for "carriage return" - the CR control character
returned the print head ("carriage") to column 0 without
advancing the paper. LF stands for "linefeed" - the LF
control character advanced the paper one line without
moving the print head.
So if you wanted to return the print head to ...