Markus Kuhn, a Cambridge computer security researcher, keeps reference pages on UTF-8, Unicode fonts, quotation marks, paper sizes and TV eavesdropping.
HN commenters cite his pages as go-to references on UTF-8, X11 fonts, quote marks and ISO paper sizes, and one recommends his OTPW one-time password tool.
I remember encountering this wonderful page/website about ten years ago, and I was struck by two things:
1. How effective it was (and is). Both the demonstrations here (of Boyer-Moore algorithm, and of Knuth-Morris-Pratt) illustrate the algorithms very clearly (the same for the linear-time majority vote algorithm); the interactive (web) medium really helps (just hyperlinks and maybe the back button); and the technology is nothing more than a hand-coded HTML file (with abundant "<BR>"s), already over a decade old when I saw it. (The DOCTYPE line in the source mentioning "HTML 3.2" lets us date this to 1997 I guess, as HTML 3.2 was released in January 1997 and HTML 4 in December 1997.)
2. The page one level up from this (https://www.cs.utexas.edu/users/moore/best-ideas/index.html), titled ``My'' Best Ideas, which opens [Incidentally, this usage of `` and '' reflects ancient fonts—you can see the same usage in Emacs, TeX, etc—explained well by Markus Kuhn here: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html] with:
> Here are the technical achievements of which I am most proud. I think such a list gives more insight into my research than, say, the traditional ``Honors and Awards'' section of a resume.
And it lists eight ideas. Firstly, what a great idea to make such a list. And secondly, an impressive research career, and it's a successful life, to end with a portfolio of 8 ideas of which one can be proud. One doesn't need much more, and to have a handful of good ideas is…
The wikipedia page on UTF-8 -- http://en.wikipedia.org/wiki/UTF-8 -- is excellent, and includes a link to this wonderful anecdote from Rob Pike - http://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt
UTF-8 was designed, in front of my eyes, on a
placemat in a New Jersey diner one night in September or so 1992.
What happened was this. We had used the original UTF from ISO 10646
to make Plan 9 support 16-bit characters, but we hated it. We were
close to shipping the system when, late one afternoon, I received a
call from some folks, I think at IBM - I remember them being in Austin
- who were in an X/Open committee meeting. They wanted Ken and me to
vet their FSS/UTF design. We understood why they were introducing a
new design, and Ken and I suddenly realized there was an opportunity
to use our experience to design a really good standard and get the
X/Open guys to push it out. We suggested this and the deal was, if we
could do it fast, OK. So we went to dinner, Ken figured out the
bit-packing, and when we came back to the lab after dinner we called
the X/Open guys and explained our scheme. We mailed them an outline
of our spec, and they replied saying that it was better than theirs (I
don't believe I ever actually saw their proposal; I know I don't
remember it) and how fast could we implement it? I think this was a
Wednesday night and we promised a complete running system by Monday,
which I think was when their big vote was.
> The UTF-8 encoding was invented in 1992 and standardized by January 1993. UTF-8 was adopted by the unix world over the following years due to its backwards-compatibility
I'd like to add some historical background the UTF-8 problem mentioned there. UTF-8 was standardized in 1992. But the first Linux using UTF-8 as the default encoding was RedHat in 2002 [1]. 10 years later!
On the other hand, Windows started using Unicode before it was standardized, and back then there was no UTF-8. Or as Raymond Chen put it, "Windows adopted Unicode before the C language did" [2].
[1] https://www.cl.cam.ac.uk/~mgk25/unicode.html#linux
[2] https://devblogs.microsoft.com/oldnewthing/20190830-00/?p=102823
Markus Kuhn’s International Standard Paper Sizes¹ is a great document on ISO-216 paper sizes, if you want a little more depth than HelloNurse’s succinct description. It also covers US-style sizes toward the bottom.
Kuhn also has an excellent ISO-8601 document², which makes you wish he would dive through more of the common standards that ISO stand guard over.
¹ https://www.cl.cam.ac.uk/~mgk25/iso-paper.html
² https://www.cl.cam.ac.uk/~mgk25/iso-time.html - Sadly only covers timestamps, not durations/intervals/etc
> It sacrifices the ability to encode more than 21 bits, which I believe was done for compatibility with UTF-16: UTF-16’s awful “surrogate” mechanism can only express code units up to 2^21-1z
Yes, it is 'truncated' to the "UTF-16 accessible range":
* https://datatracker.ietf.org/doc/html/rfc3629#section-3
* https://en.wikipedia.org/wiki/UTF-8#History
Thompson's original design could handle up to six octets for each letter/symbol, with 31 bits of space:
* https://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt
The quote marks on that page are a real mess. Best practice is to use double curly quotes or single curly quotes—not backtick and apostrophe.
See https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
("Summary: Please do not use the ASCII grave accent (0x60) as a left quotation mark together with the ASCII apostrophe (0x27) as the corresponding right quotation mark (as in `quote').")
Also, Founder's Caslon is commercially available, at least, it is now.
https://www.myfonts.com/collections/founders-caslon-font-itc