In memory of the man who put red and green squiggles under words
119 points by abareplace
119 points by abareplace
That's a fun legacy. Glad the squiggles were well received!
Also, this is a pretty epic footnote:
Probably not as widely documented is that he accomplished [porting Chip's Challenge] without the source code: He reverse-engineered the MS-DOS version and then reimplemented it for Windows.
The Penn and Teller / Weird Al nods would have been incredible feelings too, for sure.
Fun legacy indeed! Thanks Tony.
EDIT: Just looked him up. He worked at Microsoft until the very end; started in 1989. Just over 37 years if my math is right.
Word did introduce an Auto Spell Check feature to run spell check when the user was idle, so that when you hit the Spell Check button, the results were ready to go. However, the Auto Spell Check was still a blocking operation. As a result, a lot of users turned it off because it always seemed to decide “Now would be a good time to spell-check the document” just as you wanted to do something, forcing you to wait for the spell check pass to complete before you could, say, save and exit.
My first reaction was, "Wow, it seems so easy to do this without blocking or taking several seconds."
But then I remember this would have been early 90s, so you're probably working with 4-8 MB of RAM, so you can't just keep the whole English word list in memory. Plus, I'm not sure what multi threaded processing was like in C++ in the early 90s, but I know it was unpleasant in the late 00s, so this was probably a pretty tricky problem.
Word ’95 was running under Windows 95/NT, so it already used preemptive multitasking and Win32; multithreading should have been easier and more reliable than in Windows 3.x. I guess it's the main reason why the UI with red squiggles became possible.
Regarding the dictionary size, one of the first spellcheckers managed to fit English dictionary into 64 KB of RAM in the late 1970s (see Programming pearls by Jon Bentley). Using DAWGs, I compressed a medium-size English dictionary (100'000 words) into 400 KB, with fast search for spelling suggestions: https://www.strchr.com/ternary_dags
I was looking at your ternary dags article with interest. Is there an error on the first DAG? I think the side branches are shifted down one node too many.
Thank you so much. Nope, the side branches are okay; they are slightly counter-intuitive in this data structure.
So we disregard the last letter before the blank node?
On each level, we choose one of the nodes containing letters (including the side nodes). For example, when comparing the third letter, you choose between A in read and D in red. The letters on each level form a binary tree (with left and right pointers). The middle pointer (directed downwards on the charts) advances to the next letter in the word.
It's a good feature, but I cringe everytime the squiggles end up in print or on slides, because people use screenshots there?...
I think it's most often seen either from Google Docs or Apple Notes, you can tell by their default styling.