A spellchecker used to be a major feat of software engineering (2008)
51–60 of 210 posts
Re: A spellchecker used to be a major feat of software engineering (2008)
#52Earlier quoted context omitted.
Wouldn't typoglycemia be lack of typos in your blood? Don't you mean the opposite?
"Hypo", meaning low; "glyc-", meaning sugar; and "emia", meaning of the blood. "Low sugar of the blood". (With apologies to chubbyemu.) Since "typo" comes from "typography", it roughly means "symbolic". So "typoglycemia" should mean "symbolic sugar of the blood". Low typos in your blood would be "hypotypemia". I have no idea why "typoglycemia" refers to a human ability to autocorrect, but it brings me joy, so I'm not…
Re: A spellchecker used to be a major feat of software engineering (2008)
#53Is there a reason why Apple's iPhone spellcheck is often really poor, significantly worse than both LLMs and just...human eyes? I often find myself butchering the spelling of a word in a way where the correct answer is obvious to human eyes (probably because of "typoglycemia" [1]) and an AI LLM immediately understands what I meant to say, but Apple's spellcheck has "No Guesses Found." Does anyone else have this exper…
Yes but it’s much broader. Just in general the lack of Steve Jobs noticing these glaring issues and coming down hard to solve them is pretty clear. I remember when macbooks briefly came out with a ridiculously bright standby led that required Black electrical tape over if you wanted to sleep with it in the house. Shortly after no more status leds on any MacBook (thank you!). Nowadays i find non stop little annoyances…
Re: A spellchecker used to be a major feat of software engineering (2008)
#54It still is? Few engineers could build a good spell checker without external libraries, giving a database of valid words.
Writing a spell checker that quickly identifies if a word is in a list of valid words (the problem described in the article) is a trivial problem for anyone who has basic algorithms and data structure knowledge. It's the classic example for using a trie: https://en.wikipedia.org/wiki/Trie
The problem described in the article is doing it within very limited storage space. How do you store your list of 200K words on a system with only 256K of memory? This is the challenging part.
Re: A spellchecker used to be a major feat of software engineering (2008)
#55Can confirm. The first time I saw an automatic spellchecker was probably with WordStar around 1989, and it blew me away. How can the computer know all the words? That's insane! Sounds lame, but it's true. It was a different world.
Since you're old enough, here's a question for you. Do you remember if at the time the first spellcheckers were invented, people were negative on spellcheckers, because that would mean that soon people would stop learning how to spell and just general dumbing down? It seems that anything that helps people gets this reaction these days. On the one hand, the argument 100% resonates with me. On the other hand, spelling…
Re: A spellchecker used to be a major feat of software engineering (2008)
#56Can confirm. The first time I saw an automatic spellchecker was probably with WordStar around 1989, and it blew me away. How can the computer know all the words? That's insane! Sounds lame, but it's true. It was a different world.
Since you're old enough, here's a question for you. Do you remember if at the time the first spellcheckers were invented, people were negative on spellcheckers, because that would mean that soon people would stop learning how to spell and just general dumbing down? It seems that anything that helps people gets this reaction these days. On the one hand, the argument 100% resonates with me. On the other hand, spelling…
I'd argue that negative people where correct. People can't spell anymore, not even with a spellchecker. Maybe they never could? I'm not against spellcheckers, I think they are amazing, but they haven't helped much.
Re: A spellchecker used to be a major feat of software engineering (2008)
#57I'd have liked more explanation of the actual solutions that programmers used at the time.
For the basic word list, possibly tries ( https://en.wikipedia.org/wiki/Trie ), DAGs ( https://en.wikipedia.org/wiki/Directed_acyclic_graph#Data_co... ), or Bloom filter ( https://en.wikipedia.org/wiki/Bloom_filter )
When you need to store your dictionary in under 1 byte per word, a trie won't cut it.
Re: A spellchecker used to be a major feat of software engineering (2008)
#58It still is? Few engineers could build a good spell checker without external libraries, giving a database of valid words.
I was actually asked to build a spell checker in an interview. I immediately thought of Peter Norvig's article on spell corrector ( https://norvig.com/spell-correct.html ) and proceeded to explain. It turned out that the interviewer really wanted a spell checker not spell corrector : the program will only point out words not in the set of known words. I failed that interview by overengineering.
Almost. You needed to clarify what the interviewer was asking and discover requirements. As much as HN likes to hate on coding interviews requiring specific algorithm knowledge, determining requirements is very much part of the job, and engineers have a tendency to build what they want to build, not what the customer wants.
Re: A spellchecker used to be a major feat of software engineering (2008)
#59Re: A spellchecker used to be a major feat of software engineering (2008)
#60Checking if a word is spelled correctly is easy. It is providing high-quality suggestions that is hard.
As a copyeditor/proofreader, the number of times over the years I've had to fix the low-quality (i.e, wrong) suggestions is quite large. ("he had a small plague on his desk" remains a favorite.)
I have a spelling checker
It came with my PC
It highlights for my review
Mistakes I cannot sea.
I ran this poem thru it
I'm sure your pleased to no
Its letter perfect in it's weigh
My checker told me sew.
https://www.thoughtco.com/spell-checker-poem-by-mark-eckman-...