I'm pretty sure that I was the one that came with the idea for adding them to generic text widgets when I implemented that in KDE (originally to add spell checking in KMail, since spell checking in email clients wasn't a thing yet). At that time spell checking was only done in word processors. Pretty quickly every other environment, including Windows and macOS followed suite.
> I'm pretty sure that I was the one that came with the idea for adding them to generic text widgets when I implemented that in KDE (originally to add spell checking in KMail, since spell checking in email clients wasn't a thing yet).
When was it that you added it to KMail?
Word '95 introduced the famous red squiggly underlines in 1995.
I believe KMail introduced spell-checking in 2004.
If you continue in this industry of software creation in a corporate setting, and you put your name into the source code, eventually you will become known for products/features that you never expected to become known for. And the things you had actually worked the hardest on and hoped to become known for will be lost and forgotten to time.
The process of creating things is completely within your control but the process of becoming known for a thing is completely beyond your control.
Used to get slick ads for nightclubs and events from promoters with the red squiggles printed on them. Nice, full color, glossy, 4x6 card size ads that they'd stick on car windshields, hand out on the street, and stuff into any nook or cranny they could find. I was somewhat mystified as to what production process they used that allowed for the squiggles to remain and why what they were trying to indicate was ignored as most of the errors were indeed errors. Simply sending a document to a print device normally does not preserve the squiggles but somehow, they would end up in the adverts.
When you work in multi language environment the squiggles are often less than useful. They are just visual noise I must fight or ignore because the system tries to guess the language of the text I'm writing and it is most often wrong. And manually switching language settings between each interaction is way to inconvenient.
At least in Firefox I can select multiple dictionaries. Firefox will ignore words that are a match in any of those languages, at the cost ofc, of typos that are in one language but not another so sometimes I'll right click and uncheck a language temporarily.
I used character styles that set the proofing language with hot keys assigned, so shift-alt-1 sets to English, shift-alt-2 to German, etc. As character styles they apply both to the current insertion point when typing or any selected range (e.g. when I forgot to set it proactively and now have a line spattered with wiggles)
Or just set the proofing language for the entire text to None to banish all spelling and grammar diagnostics.
You can disable language checks under the paragraph or character tab for the text item (I forget which). A little annoying but at least makes them go away.
On most systems I use I've managed to set it up so that I get spell checking in all languages I use. So I only get a red line if it's not a valid word in any of the languages, which is pretty useful.
While your point is valid, I think you are missing the point of the article.
The point was that someone the author was fond of passed away. The author who likely might be reading these comments. And Krueger did some cool stuff that everyone use without realizing who did it.
Amusingly, Chen's article refers to the Wikipedia page as evidence that Tony Krueger did the port. The article's evidence for that in its latest version? A link back to Chen's article...!
• The Wikipedia page from before the reference to Chen's article was added: https://en.wikipedia.org/w/index.php?title=Chip%27s_Challeng... — it cites two sources for "coded by Tony Krueger" ("About box from the game") and for "written [by Krueger] in a single summer" (a forum post).
• Chen's article mentions "Tony Krueger is remembered in Wikipedia as the person who ported…", then adds a footnote: “Probably not as widely documented is that he accomplished this without the source code: He reverse-engineered the MS-DOS version and then reimplemented it for Windows.”
• The Wikipedia article then cites Chen's article for this additional information.
It's all fine and proper. I've just edited the citation to make this clear again.
FWIW, the citation to Raymond Chen's blog is specifically in relation to the claim that it was reverse engineered from the MS-DOS port due to the source code being unavailable.
Prior to the edit there was a citation to the game itself for both Tony and Ed Halley as the game's development but the guy who added in the reverse engineering anecdote from chen's blog split the sentence so that the citation for the names of the game's developers is only applied to the other guy.
Chen doesn't use Wikipedia as evidence that Krueger ported the game. He's pointing out that this is what Wikipedia mentions as most notable, and then adds another thing notable about Krueger, the squigglies. If you read the Chen's whole article, he adds more details about the port at the bottom, so he's clearly aware of it. It's fine to use the article as evidence for the port.
These kinds of circular evidence chains do sometimes happen on Wikipedia, but I don't think this is one of them.
I have left comments on HN and Reddit and then found them rolled into Google's AI search summarizer OR the knowledge box with _extreme rapidity_ such that when I went, mere moments later, to go re-check some fact I had cited, I found my own comment at the top of the results, repeated back to me, but with authority and gravitas, ensconced in the austere trappings of the knowledge box.
Are you sure about that? The page you link says that "The 100,000-word spelling checker lets you check a range of text, look up a single word, check continuously, and add words to the user dictionary", but doesn't mention underlining words. I also couldn't find a screenshot of that feature. Actually, with the AmigaOS 1.x color scheme, the squiggly lines would have probably been orange, because the standard color scheme was black/white/blue/orange (in AmigaOS 2 and above it was black/white/grey/blue to enable a 3D effect on the controls, so the highlight color would have had to be blue?!).
It does have a real time spell checker. But it doesn't seem to have the squiggly line. The screen blinks at you when you type a word it can't find.
I've just run Prowrite 2 and 3.1.1 via FS-UAE.
So my memory is wrong about that feature have a red squiggly line.
It did have realtime checking. Also Prowrite was WYSIWYG. The realtime checking is neat, but it's actually a bit annoying with the blink. The red squiggly line is a better way to show that there is an unrecognised word.
"Among the many new features was a spell checker with a 40,000 word dictionary, although lacking many American English terms,[11] a mail merge program, footnotes and semi-automated hyphenation.[12] The spell checker included the relatively rare, for the time, option to check on-the-fly. It also added document statistics display, including the number of characters, pages, etc"
Honestly I'd guess it's one of those things that possibly originated at Xerox Parc and then got added to consumer products from the 1980s onwards.
Personally, I remember it because I remember seeing Word 6 and thinking 'at last they have caught up to Prowrite'.
1st Word on the Atari ST 520+ with monochrome monitor: that
was how the far future felt like in 1986.
With the exception of the somewhat wobbly cheap keyboard, that was the best and most distraction-free setup I have ever seen for WYSIWYG word processing (sadly never tried the Xerox workstations).
Sorry, but as a former Amiga user I have to jump on the opportunity to disrespect the Atari ST: wasn't the same thing (WYSIWYG text editing or even desktop publishing on a monochrome monitor) already possible years before with the Apple Mac? I mean, it was nicknamed the "Jackintosh" for a reason. Ok, it was only one year (the Mac being famously released in 1984, and the Atari ST in 1985). And of course the Atari ST was more affordable, it had that going for it.
I can't find screenshots or descriptions of that either (but it doesn't really say much either way - I couldn't find much about the spellchecking at all). But re: colors, a lot of applications would open their own screens and set their own palette, so the Workbench palette isn't necessarily relevant.
Indeed, no relevance at all. Sorry rob74, that's a misunderstanding of how large applications most often tended to work on the Amiga. They didn't generally open a window on the Workbench screen, they opened their own screen. The keyboard shortcut <Amiga key>-<M> cycled between them. A word processor's screen could then have 16+ colours.
No problem! My recollection is a bit hazy, and I'm not active enough in retrocomputing to refresh it. I was aware that applications could use their own graphics modes, but I wasn't aware anymore just how often "productivity" software did that too. But of course, it made sense, since the Workbench screen was limited to 4 colors (in order to save memory, I guess, especially the precious "chip memory" that was accessible to the custom chips), and on their own screen they could use a whopping 16 colors :)
But instead of reverse-engineering, I would just find or write an emulator, in case I would be asked to "port" another software.
It's actually sad that for the most part, we don't know who is responsible for the good and bad features of software we use.
In movies, there is an extensive practice of showing "credits" at the end, and I enjoy reading them in detail. Software development should have the same culture (some games do, and then some "Easter eggs" do).
> In movies, there is an extensive practice of showing "credits" at the end, and I enjoy reading them in detail.
Thanks to huge protracted union fights. You’ll find the credits in an old US-produced movie—say, Gone with the Wind—are much more sparse than in one from the last decade or two. Incidentally, those fights happened too early to include CGI artists, and those often do go uncredited (undercredited?) even today.
Not that the Hollywood unions are a definite positive in all respects, or that the whole idea of fighting an oligopsony by establishing a monopoly in the shape of a cooperative doesn’t ring warning bells in my mind. But the movie industry absolutely would not credit most people if it could get away with it, and I wouldn’t expect the software industry to be any different (barring rare early pre-financialization examples[1]).
Probably not well enough for a game, no. But the Apple II[1] and even the Apollo Guidance Computer[2] used interpreted bytecode to make their programs more compact. (The AGC actually had near-seamless interworking between native code and bytecode!) Also Pascal P-code, Microsoft BASIC’s pretokenized source, almost every Forth implementation ever, etc. The performance cost was pretty significant as you’d expect, but the result was still fast enough for the task.
It was also pretty common to use more capable machines to get some headroom for development tools, either by compiling for one (DOOM on NeXT) or by cross-debugging the system under test from it (a still-in-progress Lisa when developing the Macintosh; a DEC minicomputer, IIUC, when developing MS-DOS). You still do the former when you run an x86-64 image in your Android emulator; you probably still do the latter if you are targeting a microcontroller.
I love these articles. Like. Of the million possible ways this could go, squiggles were the one, and it was from decisions of one man, on a whim. Yet, they completely change the world.
I'm not always a fan of the squiggles, but I can appreciate the UI pattern. It's definitely one of the more intuitive and recognizable visual markers for "something's wrong with this word".
I would really like to be able to entirely disable spell checking. I know it's a very niche desire, but I'm happy to live with my mistakes, and there are regularly bits of slang, technical terms, acronyms etc that I have to get it to "learn" which I'd rather not have to. I often wonder how people who write in non-standard English manage these days. Can't imagine James Joyce would have been a fan.
I've tried on MacOS and can't seem to figure out how to do it. I seem to be able to on certain apps, but there isn't a global kill switch, which is what I want.
I actually implemented that! I have a private IntelliJ plugin that feeds markdown documents through an LLM and then highlights internal contradictions with the usual yellow background used for warnings. I use it when writing specs.
Blue rather than yellow colored squiggles, but ReSharper (and I expect JetBrains IDEs in general) kind of does this.
It can point out things like unreachable code, redundant if predicates, suspicious casts and countless other things through realtime semantic analysis of code.
Of course there are infinitely more kinds of logic errors that simple static analysis like this can’t pick up, but an LLM “analysis” might.
I think it was Larry Constantine that really hated them. As he put it, when you are writing, you should always be thinking about your next words, but the squiggles draw your attention to the words you have already written. They shout at you, "Hey, listen! Do you really think you can spell? What's this 'fatouos' thing you've just written?" and will keep bothering you until you stop and go back to click on the undersquiggled word to fix it. They are basically a primitive form of Clippy.
Word having two modes, like vi, would solve this. In the writing mode, it never bothers you with anything, just lets you write. As soon as you press the button to switch to the editing mode, it is free to bombard you with squiggles and AI suggestions.
Just as a casual test... I opened up Microsoft Word (online version). There's a button on the Review ribbon labelled "Spelling & Grammar", click that and the realtime, inline suggestions and squiggles are off no matter how many errors are present... click that button again and they're there.
So there are two modes... and have been for as long as I can remember (maybe since automatic spell check was there) and it is just a button press.
Now knowing that it's there... well... how many people review feature documentation these days, especially for something that is "feature rich", like Word?
I wish there was a button on my keyboard that I could press when there's a red squiggle in the last N words, which would cause my computer to fix the underlined word to its best guess. It should wait until a few words later, to get more context. It should flash the new word as it's being inserted, so I can easily see what it's done.
Spell check used to be kind of lousy, but with AI I imagine it would have a very high rate of accuracy in context. I am greatly slowed down by having to delete a few words/chars every now and then, and if I could just smash a key and go on my way, it'd be much more efficient.
I think that might be just imagination - android autocorrect in particular got sufficiently worse that I finally turned it off (I still use it as a "typing assist" - it only displays choices that I can tap to replace, or (more often) ignore.)
What I mean is that if I entered a sentence into ChatGPT/Gemini/Grok and tell it to fix the flagged word, it will be able to get it right almost all of the time (assuming it's not a weird proper noun or inside joke slang).
Often, but not always. For my thesis, I ended up with a section related to porn. ChatGPT simply refused to spell-check that section. Also, recently I wrote a comment on HN about different subsets of English being easier to learn for native Spanish or German speakers, and the Samsung AI spellchecker refused to review it because it was considered "inappropriate content."
Most mobile keyboards will do autocorrect as you describe it, and show top-N alternatives when you go back and tap on the autocorrected word. I prefer this to it mocking my mistakes and making me pay penance by manually accepting the correction.
Yeah I'm thinking about my desktop computer. Also, I find that the autocorrect on my phone is not that good, especially when the first letter is incorrect.
macOS at least will autocorrect stuff by default... I typically turn it off within a few days of a fresh install after getting annoyed by some correction I didn't want.
Yeah that's what I do also. If it got smart enough I guess I'd leave it on, but I have not experienced anything remotely close enough to consider it. Also, it changes stuff without me realizing, and sometimes makes things worse.
The worst is when it automatically corrects, you delete the correction and type the exact same thing, then it automatically corrects to something else, repeat.
When did the squiggles disappear? I do miss the variety in text formatting. You used to be able to animate text in Word and have squiggly double underline in different colours. Everything now is sans serif, sans variety.
IIRC Scott McNealy once trolled Microsoft for this - hundred different ways to draw squiggles that can be configured. As an example of code bloat and useless features.
What a lovely, eloquent piece to honour the memory of an esteemed and highly regarded colleague.
Everyone in the comments here focusing on their own personal complaints about squiggles and the colour of squiggles and how to disable spell checking is really missing the point.
> Tony was an early fan of the magic/comedy team Penn and Teller. A friend and colleague attended a show and hung out afterward to ask the duo to sign a photo for his friend Tony. “He was on the team that did the red and green squiggles in Word.”
That’s some heavy duty corpo-brain to be introducing your friend with ”He was on the team that did X”.
If you know somebody from work, and that person built something most people on earth have seen and can identify, that seems a fine way of introducing that person.
I think everybody likes to be part of something big. I would definitely be proud of having worked on something so well-known.
This feature is from a different time, though. The people working at big tech these days clearly don't care as much about the output of the stuff they work on.
I really envy people who take pride in what they've created. I wish I could build something that becomes standardized like that too. How happy must Tony Krueger have been? Now that everyone uses the feature he built as a standard
Rest in Peace
Another thing that has been completely broken by Microsoft over the years. Spell check in Word today is absolutely godawful, it generates more false positives than true positives by a massive margin. Shit like "the" having a red squiggle. Drives me insane as every time I see it I think about how far software has fallen.
Word now switches the document language when you switch keyboard layouts... and then when you focus on a word you typed that it's memorized to be in that language, it switches the keyboard back to that layout.
As someone who uses the US layout but switches it to German to get ä, ü, ö, it's a schizophrenic experience...
What strikes me about stories like this is how many invisible decisions shape the interfaces we can't imagine living without. The squiggle wasn't a product requirement or a committee decision — it was one person's intuition about how to surface information without interrupting flow.
The analog31 comment about "yellow squiggles for logic errors" is a genuinely interesting design problem. Linters do this in IDEs, but the reason it hasn't made it into general productivity software is that spell errors have a clear ground truth (the dictionary), while logic errors require understanding intent. The difficulty scales completely differently.
When was it that you added it to KMail?
Word '95 introduced the famous red squiggly underlines in 1995.
I believe KMail introduced spell-checking in 2004.
The process of creating things is completely within your control but the process of becoming known for a thing is completely beyond your control.
Or just set the proofing language for the entire text to None to banish all spelling and grammar diagnostics.
Meine Deutsch ist so schlecht, MS Word hat gar nichts Ahnung wie das auseinanderfutzeln kann.
The point was that someone the author was fond of passed away. The author who likely might be reading these comments. And Krueger did some cool stuff that everyone use without realizing who did it.
• The Wikipedia page from before the reference to Chen's article was added: https://en.wikipedia.org/w/index.php?title=Chip%27s_Challeng... — it cites two sources for "coded by Tony Krueger" ("About box from the game") and for "written [by Krueger] in a single summer" (a forum post).
• Chen's article mentions "Tony Krueger is remembered in Wikipedia as the person who ported…", then adds a footnote: “Probably not as widely documented is that he accomplished this without the source code: He reverse-engineered the MS-DOS version and then reimplemented it for Windows.”
• The Wikipedia article then cites Chen's article for this additional information.
It's all fine and proper. I've just edited the citation to make this clear again.
Prior to the edit there was a citation to the game itself for both Tony and Ed Halley as the game's development but the guy who added in the reverse engineering anecdote from chen's blog split the sentence so that the citation for the names of the game's developers is only applied to the other guy.
https://en.wikipedia.org/w/index.php?title=Chip%27s_Challeng...
These kinds of circular evidence chains do sometimes happen on Wikipedia, but I don't think this is one of them.
https://xkcd.com/978/
Can't believe we got to see one in the wild, and with clear attribution to boot.
- https://en.wikipedia.org/wiki/Circular_reporting#On_Wikipedi...
- https://en.wikipedia.org/wiki/Wikipedia:List_of_citogenesis_...
- previous discussion: https://news.ycombinator.com/item?id=35535407
https://m.xkcd.com/978/
Possibly there were other programs that did as well prior to that.
But Prowrite did it and had a red squiggly line under incorrect words.
https://www.atarimagazines.com/compute/issue123/P215_1_REVIE...
It does have a real time spell checker. But it doesn't seem to have the squiggly line. The screen blinks at you when you type a word it can't find.
I've just run Prowrite 2 and 3.1.1 via FS-UAE.
So my memory is wrong about that feature have a red squiggly line.
It did have realtime checking. Also Prowrite was WYSIWYG. The realtime checking is neat, but it's actually a bit annoying with the blink. The red squiggly line is a better way to show that there is an unrecognised word.
Thanks for getting me to check.
I'm going to run it and have a look in a bit and get back to you.
It looks like 1st Word on the Atari ST also have a continuous spell checker.
https://en.wikipedia.org/wiki/1st_Word
From the link for 1st Word :
"Among the many new features was a spell checker with a 40,000 word dictionary, although lacking many American English terms,[11] a mail merge program, footnotes and semi-automated hyphenation.[12] The spell checker included the relatively rare, for the time, option to check on-the-fly. It also added document statistics display, including the number of characters, pages, etc"
Honestly I'd guess it's one of those things that possibly originated at Xerox Parc and then got added to consumer products from the 1980s onwards.
Personally, I remember it because I remember seeing Word 6 and thinking 'at last they have caught up to Prowrite'.
With the exception of the somewhat wobbly cheap keyboard, that was the best and most distraction-free setup I have ever seen for WYSIWYG word processing (sadly never tried the Xerox workstations).
1st Word Plus (1987) was a huge improvement and used professionally in magazine publishing.
MS Word was always bloated and poorly-designed in comparison.
In terms of getting useful work done with a minimum of effort, all of the 80s WPs, both command-line and WYSIWYG, were superior to Word.
Sure thing, who needs source code? This is HN.
But instead of reverse-engineering, I would just find or write an emulator, in case I would be asked to "port" another software.
It's actually sad that for the most part, we don't know who is responsible for the good and bad features of software we use. In movies, there is an extensive practice of showing "credits" at the end, and I enjoy reading them in detail. Software development should have the same culture (some games do, and then some "Easter eggs" do).
Thanks to huge protracted union fights. You’ll find the credits in an old US-produced movie—say, Gone with the Wind—are much more sparse than in one from the last decade or two. Incidentally, those fights happened too early to include CGI artists, and those often do go uncredited (undercredited?) even today.
Not that the Hollywood unions are a definite positive in all respects, or that the whole idea of fighting an oligopsony by establishing a monopoly in the shape of a cooperative doesn’t ring warning bells in my mind. But the movie industry absolutely would not credit most people if it could get away with it, and I wouldn’t expect the software industry to be any different (barring rare early pre-financialization examples[1]).
[1] https://www.folklore.org/Signing_Party.html
Nowadays, yes. Back then, systems could barely run the OS they came with...
It was also pretty common to use more capable machines to get some headroom for development tools, either by compiling for one (DOOM on NeXT) or by cross-debugging the system under test from it (a still-in-progress Lisa when developing the Macintosh; a DEC minicomputer, IIUC, when developing MS-DOS). You still do the former when you run an x86-64 image in your Android emulator; you probably still do the latter if you are targeting a microcontroller.
[1] https://en.wikipedia.org/wiki/SWEET16
[2] https://media.ccc.de/v/34c3-9064-the_ultimate_apollo_guidanc...
And I'm not even a native speaker, so I would certainly benefit, but like you I hate when it complains (or autocorrects!) intentional strings.
Obviously :-)
It can point out things like unreachable code, redundant if predicates, suspicious casts and countless other things through realtime semantic analysis of code.
Of course there are infinitely more kinds of logic errors that simple static analysis like this can’t pick up, but an LLM “analysis” might.
Word having two modes, like vi, would solve this. In the writing mode, it never bothers you with anything, just lets you write. As soon as you press the button to switch to the editing mode, it is free to bombard you with squiggles and AI suggestions.
So there are two modes... and have been for as long as I can remember (maybe since automatic spell check was there) and it is just a button press.
Now knowing that it's there... well... how many people review feature documentation these days, especially for something that is "feature rich", like Word?
Spell check used to be kind of lousy, but with AI I imagine it would have a very high rate of accuracy in context. I am greatly slowed down by having to delete a few words/chars every now and then, and if I could just smash a key and go on my way, it'd be much more efficient.
I think that might be just imagination - android autocorrect in particular got sufficiently worse that I finally turned it off (I still use it as a "typing assist" - it only displays choices that I can tap to replace, or (more often) ignore.)
When did the squiggles disappear? I do miss the variety in text formatting. You used to be able to animate text in Word and have squiggly double underline in different colours. Everything now is sans serif, sans variety.
RIP Tony Kreuger.
Everyone in the comments here focusing on their own personal complaints about squiggles and the colour of squiggles and how to disable spell checking is really missing the point.
That’s some heavy duty corpo-brain to be introducing your friend with ”He was on the team that did X”.
This feature is from a different time, though. The people working at big tech these days clearly don't care as much about the output of the stuff they work on.
"Tony pioneered the famous red-and-green squiggles of Microsoft Word, empowering millions of users with a spell-checking revolution."
As someone who uses the US layout but switches it to German to get ä, ü, ö, it's a schizophrenic experience...
The analog31 comment about "yellow squiggles for logic errors" is a genuinely interesting design problem. Linters do this in IDEs, but the reason it hasn't made it into general productivity software is that spell errors have a clear ground truth (the dictionary), while logic errors require understanding intent. The difficulty scales completely differently.