News for hackers. Stuff that matters.
Re:The Absolute Minimum Every Software Developer Must Know A... by gumby on Monday October 02, 2023 @09:38AM (#37737920)
This is quite a good write up. An answer to one of the author's questions:

> Why does the fi ligature even have its own code point? No idea.

On of the principles of Unicode is round trip compatibility. That is you should be able to read in a file encoded with some obsolete coding system and write it out again properly. Maybe frob it a bit with your unicode-based tools first. This is a good principle, though less useful today.

So the fi ligature was in a legacy encoding system and thus must be in Unicode. That's also why things like digits with a circle around them exist: they were in some old Japanese character set. Nowadays we might compose them with some zwj or even just leave them to some higher level formatting (my preference).

Re:The Absolute Minimum Every Software Developer Must Know A... by gwervc on Monday October 02, 2023 @11:11AM (#37739171)
The circled digits as code points are very nice to have precisely because they are available in applications that don't support them otherwise... which is actually most of the software I can think of (Notepad, Apple Notes, chat applications, most websites, etc).
Re:The Absolute Minimum Every Software Developer Must Know A... by swores on Monday October 02, 2023 @11:30AM (#37739413)
Can you write them with iOS keyboard? Or when you say Apple Notes and chat apps you just mean from desktop?

Edit ①: seems the answer is not with the default iOS keyboard, but possible to paste it and perhaps possible with a third party keyboard that I'm not keen on trying (unless I hear of a keyboard that's both genuinely useful / better than default, and that doesn't send keystrokes to the developer - though I can't remember if the latter is even a risk on iOS, better go search about that next..)

Re:The Absolute Minimum Every Software Developer Must Know A... by masklinn on Monday October 02, 2023 @11:33AM (#37739451)
You can copy/paste them from a character board, a dedicated website, or even the wiki.
Re:The Absolute Minimum Every Software Developer Must Know A... by d11z on Monday October 02, 2023 @11:48AM (#37739671)
Speaking of third party keyboards, I’m still upset about what happened to Nintype[0]. I’ve never ever been able to type faster on mobile than with it’s intuitive hybrid input style of sliding and tapping, paired with AI that was actually good. It used to be quite performant, fully customizable, and it worked beautifully as a replacement for default on jailbroken iOS.

Today, it’s buggy $5 abandonware that only makes me sad when I am reminded of it.

EDIT: Here[1] is a blog post that claims it's still the best keyboard in 2023. I actually might give it another shot... Not holding my breath though.

*EDIT: Looks like another dedicated fan has actually taken it upon themself to revive the project, under the new name Keyboard71[2].

[0] https://apps.apple.com/us/app/nintype/id796959534

[1] https://maxleiter.com/blog/nintype

[2] https://www.reddit.com/r/keyboard71/

Re:The Absolute Minimum Every Software Developer Must Know A... by swores on Monday October 02, 2023 @12:27PM (#37740446)
I wonder why they haven't open sourced their fork, over than vague worry it might get DMCA'd
Re:The Absolute Minimum Every Software Developer Must Know A... by tiltowait on Monday October 02, 2023 @01:07PM (#37741138)
Nintype was absolutely incredible. I still open it every now and then after an iOS update in the vain hope some system change made it less buggy.
Re:The Absolute Minimum Every Software Developer Must Know A... by d11z on Monday October 02, 2023 @01:31PM (#37741556)
I’m really considering repurchasing (I definitely owned it previously, no idea what happened), can you describe specifically what the main bugs are for you? I’d be happy if I could use it solely for occasionally writing long notes, not as a replacement for all text inputs.

Really not looking to burn another $5, I’d greatly appreciate any thoughts/concerns at all.

Re:The Absolute Minimum Every Software Developer Must Know A... by dotancohen on Tuesday October 03, 2023 @10:37AM (#37752563)
I just want to say thank you for introducing me to Keyboard 71. I've never heard of Nintype, but this thing is incredible!
Re:The Absolute Minimum Every Software Developer Must Know A... by P-Nuts on Monday October 02, 2023 @02:21PM (#37742302)
You can type ① with the UniChar keyboard app on iOS. It at least claims it doesn’t transmit information. As it’s only useful for special characters I don’t worry because I can’t use it for normal typing anyway.

https://unichar.app

Re:The Absolute Minimum Every Software Developer Must Know A... by astrange on Monday October 02, 2023 @05:17PM (#37744521)
No third party keyboard transmits information without you permitting it.
Re:The Absolute Minimum Every Software Developer Must Know A... by amake on Monday October 02, 2023 @07:32PM (#37745909)
The default iOS Japanese keyboard allows easily entering circled numerals and many other “exotic” characters.
Re:The Absolute Minimum Every Software Developer Must Know A... by fomine3 on Monday October 02, 2023 @08:55PM (#37746576)
Yeah many "exotic" characters were introduced to Unicode from Japanese legacy computers 〠〄
Re:The Absolute Minimum Every Software Developer Must Know A... by phantomathkg on Tuesday October 03, 2023 @01:04AM (#37748162)
If you use iOS Japanese romanji keyboard, typing "maruichi" will give you all the options.
Re:The Absolute Minimum Every Software Developer Must Know A... by gumby on Monday October 02, 2023 @01:27PM (#37741492)
My point was that, had they not been legacy characters (or were RT compatibility ignored) Unicode could still have supported them as composed characters. Though I personally still feel they are a kind of ligature or graphic, but luckily I’m not the dictator of the world :-).

We should be careful: someone on HN could write a proposal that they SHOULD be considered pre composed forms that should also have an un-composed sequence… so there will be not just 1 in a circle but 1 ZWJ circle, circle ZWJ 1 all considered the same…

Re:The Absolute Minimum Every Software Developer Must Know A... by sdrothrock on Monday October 02, 2023 @11:42AM (#37739580)
> they were in some old Japanese character set

This implies that they're obsolete, but they're not -- they're still in very common use today. You can type them in Japanese by typing まる (maru, circle) and the number, then pick it out of the IME menu. Some IMEs will bring them up if you just type the number and go to the menu, too. :)

Re:The Absolute Minimum Every Software Developer Must Know A... by gumby on Monday October 02, 2023 @02:55PM (#37742742)
Fair enough. I was thinking of them as obsolete, but shouldn't since you do see them a surprising amount in Japan.
Re:The Absolute Minimum Every Software Developer Must Know A... by ufo on Tuesday October 03, 2023 @07:39AM (#37750504)
What do the Japanese use the circled numbers for?
Re:The Absolute Minimum Every Software Developer Must Know A... by sdrothrock on Tuesday October 03, 2023 @07:43AM (#37750543)
Ordinals and references, like this:

① Draw some circles

② Draw the rest of the owl

Commentary: ① is simple but ② is masking many complex steps that are necessary to draw an owl.

Re:The Absolute Minimum Every Software Developer Must Know A... by WorldMaker on Monday October 02, 2023 @02:35PM (#37742490)
> So the fi ligature was in a legacy encoding system and thus must be in Unicode.

Most of the pre-composed latin ligatures are generally from EBCDIC codepages. People in the ancient Mainframe era wanted nice typesetting too, but computer fonts with ligature support were a much later invention.

You can see fi and several others directly in EBCDIC code page 361:

https://en.wikibooks.org/wiki/Character_Encodings/Code_Table...

Re:The Absolute Minimum Every Software Developer Must Know A... by gumby on Monday October 02, 2023 @02:54PM (#37742738)
Thanks. Some alphabets have precomposed ligatures that aren't really letters, like old German alphabets with tz, ch, ss (I only know how to type the last one, ß, because the others have died out over the last hundred years).

Actually in German (at least) ä, ö and ü really are actually ligatures for ae, oe, and ue -- the scribes started to write the E's on their sides above the base letters, and over time the superscript "E"s became dots or dashes. Often they are described the other way around: "you can type oe if you can't type ö." That's what my kid was told in school!

But Ö and ß aren't really part of the alphabet in German, while, say, in Swedish, ä and ö became actual letters of the alphabet. English got W that way too.

Re:The Absolute Minimum Every Software Developer Must Know A... by cyxxon on Monday October 02, 2023 @03:52PM (#37743551)
That's sounds a bit false to me. The Umlaute (ä,ö, ü) and the "eszett" ß are actually part of the German alphabet[1]. Also it is kinda weird to describe them as ligatures of the original letters and the diaeresis, because while this is what they started out as a long time ago, they are just their own letters now (as opposed to "real" stylistic ligatures like combining fi into one glyph). The advice your kid was told that they can be replaced with ae, oe and ue is correct - it is a replacement nowadays.

[1] https://de.wikipedia.org/wiki/Deutsches_Alphabet

Re:The Absolute Minimum Every Software Developer Must Know A... by bmicraft on Monday October 02, 2023 @07:27PM (#37745856)
They sure are letters, but they aren't generally thought of as being in the alphabet (which seems to be why they are just kinda tacked on after a space on wikipedia) and get ordered as if they where just the base letter (mostly)
Re:The Absolute Minimum Every Software Developer Must Know A... by Symbiote on Tuesday October 03, 2023 @05:35AM (#37749668)
Note that in Swedish they are considered letters, and in Danish and Norwegian Æ, Ø and Å are letters.
Re:The Absolute Minimum Every Software Developer Must Know A... by paledot on Tuesday October 03, 2023 @10:20AM (#37752358)
Letters which are sorted separately from what we'd think of as the base characters in English (they appear at the end of the alphabet, as W X Y Z Æ Ø Å, with C often omitted in Norwegian).

By contrast, my French dictionary has énorme nestled between enorgueillir and enquiérir. (Looking for an example does underscore some of the patterns in the language: page after page of ét~ with only a few et~ and one êt~ among them; pages of ex~ with no éx~ at all.)

Re:The Absolute Minimum Every Software Developer Must Know A... by kalleboo on Wednesday October 04, 2023 @05:23AM (#37762786)
Similarly in Swedish, W was not considered a letter but just a variant of V, so in phone books etc all the W names were mixed in with V names. This was changed in 2006 due to an increase in English loanwords.
Re:The Absolute Minimum Every Software Developer Must Know A... by gumby on Monday October 02, 2023 @08:43PM (#37746487)
C'mon that page is highly technical, really just listing the letters or glyphs used for forming printed text. In reality, if you walk into any first grade classroom you see pictures of the letters A-Z with pictures (Apfel, Bär, uwv) and then after the end maybe around the corner, what, Öl? I can't even remember. When the kids recite the letters they don't recite äöüß. TBH I really only remember this because when kiddo was that age the Neue Rechtscribung transition was mid-process and the parents were angrily divided so I was kinda paying attention.

Also, though it's hardly authoritative, my kids' school taught English through immersion from grade 1 too, and both German and English teachers said "same alphabet".

As bmicraft pointed out, even in that wikipedia chart those inflected letters are spaced apart from the others. Yes, they are letterforms, but not part of the "alphabet" -- they don't even have a sorting like the Swedish Ä or W do.

And you can switch in running text from using the marker for umlaut (dots or bar, not semantically dieresis) or a normal "e" without anyone blinking. There's no problem reading a Swiss book even though ß refuses to cross the border. Though I personally prefer to read Äpfel and Bär rather than Aepfel and Baer, really, they are the same.

Re:The Absolute Minimum Every Software Developer Must Know A... by FoeNyx on Tuesday October 03, 2023 @04:30PM (#37757137)
> When the kids recite the letters they don't recite äöüß.

On a somehow related side note, I read that "&", which is derived from a ligature of the Latin conjunction "Et" (meaning "and"), was named "ampersand" in English as a mondegreen for "and per se and" as it used to be placed at the end of the English alphabet recitation.

Re:The Absolute Minimum Every Software Developer Must Know A... by nerdbert on Tuesday October 03, 2023 @01:05PM (#37754631)
> old German alphabets with tz, ch, ss (I only know how to type the last one, ß, because the others have died out over the last hundred years)

They still ꜩ on some German street signs. I can't find ch in Unicode though (could just be my old eyes).

Re:The Absolute Minimum Every Software Developer Must Know A... by gumby on Wednesday October 04, 2023 @05:30PM (#37772079)
You sent me on an enjoyable wild goose chase but it appears that only ß and ff are in unicode: tz, ch, ck have to be handled completely in rendering.

I have my music teacher's German schoolbook from around 1915 and it lists them all as letters (the whole book is in Fraktur). I have various old books in Fraktur and once could read them. I imagine that if I sat down and tried to read one it would come back, but at the moment I have to thin a little to read just the titles!

Re:The Absolute Minimum Every Software Developer Must Know A... by glandium on Tuesday October 03, 2023 @06:39AM (#37750087)
> That's also why things like digits with a circle around them exist: they were in some old Japanese character set.

Replace "digits with a circle around them" with "emojis" and that's also true.