SILICON Digitally Disadvantaged Languages Fellowship Program: Call for Proposals.
SILICON invites applications from keyboard designers, app designers, type designers, Large Language Model designers, language ethnographers, OCR/ML experts, and digital typographic experts for inaugural SILICON Fellowship Program. Awards of up to $7,000 to be granted.
I just stumbled onto something horrifying, neo-Nazi symbolism seemingly hidden away in #Unicode. The first Unicode #Hebrew codepoint, corresponding to א, is u05D0. The integer corresponding to the hex? 1488. You can't convince me that was a mere coincidence.
It should be possible to check the archive of WG4 minutes and papers to look for corroborating evidence for whether there is a conspiracy or a coincidence. Members of the Unicode standards body hang out on Mastodon and may be interested in investigating further.
everybody's hyped for the new 1FAE9 FACE WITH BAGS UNDER EYES, which I mean, :big_mood:, but for you appreciators of text-presentation glyphs, might I draw your attention to the new range "Symbols for Legacy Computing Supplement" (1CC00–1CEBF) that includes several gaming sprites from retrocomputer codesets including Pac-Man, a full set of Space Invaders, 1CC96 FLAPPING BIRD and so on—as well as a full set of box characters for #teletext emulators?
By and large, the English language doesn't use diacritical marks. Even our loanwords are stripped of them; we drink in a cafe rather than the more pretentious café. This has a consequence for HTML and, by extension, eBooks. As a quick primer, modern computing gives us two main ways of displaying a letter with an […]
By and large, the English language doesn't use diacritical marks. Even our loanwords are stripped of them; we drink in a cafe rather than the more pretentious café. This has a consequence for HTML and, by extension, eBooks.
As a quick primer, modern computing gives us two main ways of displaying a letter with an accent. The first is simple - encode every single accented letter as a separate "pre-composed" character. So è (U+00E8), é (U+00E0), ê (U+00EA, and ë (U+00EB) are all stored as different codepoints.
But this seems a little inefficient and can make it hard to search through text for an exact lexical match.
So there is a second way to add accents. You take the base character - e (U+0065) - and then apply a separate "combining" accent character to it. For example the combining accent ◌́ (U+0301). That means you can add an accent to áńý ĺét́t́éŕ!́
Note, the accent ◌́ (U+0301) is separate from the character ´ (U+00B4). In fact, most accents have a pre-composed, combining, and separate form. This, understandably, causes much confusion!
Here's a good example. I was reading the excellent Fallen Idols, when I noticed this typesetting bug.
It's always hard to transliterate languages. The Victory Arch in Iraq is known as قوس النصر, and usually written in English as the "Swords of Qādisīyah".
Examining the HTML code in the eBook, it was obvious that the publishers had used a macron ¯ (U+00AF) rather than the combining version ◌̄ (U+0304).
I've reported it to the publisher. I've no idea if they'll fix it in a subsequent re-issue.
I finally did it and moved to a more appropriate "home realm" for a #FreeBSD enthusiast. Thanks @stefano for offering this!
Moving followers worked flawlessly, restoring all my settings was pretty quick, but of course all my old toots are left on https://techhub.social/@zirias 🙈
So I guess I'll introduce myself here by writing a little thread, adding a few of my works that someone might find interesting. But first a bit of "who am I":
I'm a "professional" software architect/developer (mostly #dotnet platform in the day job), FreeBSD hobby-admin and ports committer, #C64 fan (and occassionally coder and even musician), and apart from computers also interested in music (playing a few instruments myself), traveling, cooking, sometimes sports, sometimes politics ... but probably won't toot about any non-technical stuff (or, very very rarely).
Also quite recent: #dos2ansi. This is a very versatile converter for #MSDOS#ansiart (and other "text") files to a format using #Unicode and only standard #ANSI#SGR escape sequences, so, suitable for today's terminals like #xterm. It includes an ansiart viewer which is "just" a shellscript, leveraging dos2ansi, xterm, less and some nice original #IBM fonts to do its job. So, maybe something for the #retrocomputing fans.
Sign text will now finally be shown on the sign. Over 60,000 glyphs are supported. A new pole sign can stand on the ground, hang from the ceiling or a wall.
There's also a spyglass item, and moon phases have been added.
This brings several improvements, mainly in the build system, but the major change is support for localization, with translated Emoji names imported from #Unicode#CLDR. I added a German translation, see screenshot. Once again, I'd appreciate more translations, the process to translate is documented here: https://github.com/Zirias/qxmoji/blob/master/TRANSLATE.md
my recent interest in #mahjong has collided with my on-going interest in #Unicode as I remember that the block U+1F000 through U+1F02B are allocated for encoding tiles
🀀🀁🀂🀃🀄🀅🀆🀇🀈🀉🀊🀋🀌🀍🀎🀏🀐🀑🀒🀓🀔🀕🀖🀗🀘🀙🀚🀛🀜🀝🀞🀟🀠🀡🀢🀣🀤🀥🀦🀧🀨🀩🀪🀫
this information has no practical use to me, but it's nice that the UCS represents them
Turns out rendering #Arabic is hard. No, you can't just implement the #Unicode#Bidirectional Algorithm and call it a day. It turns out the Arabic letters/symbols/? have different forms depending on where they are in the word and probably there are other non-trivial features. Yeah, I guess I just postpone this.
So my 1000 IQ workaround for now is to just render all arabic characters as U+FFFD REPLACEMENT CHARACTER for now.
The Court of Appeal of Brussels has made an interesting ruling. A customer complained that their bank was spelling the customer's name incorrectly. The bank didn't have support for diacritical marks. Things like á, è, ô, ü, ç etc. Those accents are common in many languages. So it was a little surprising that the bank didn't support them.
The bank refused to spell their customer's name correctly, so the customer raised a GDPR complaint under Article 16.
The data subject shall have the right to obtain from the controller without undue delay the rectification of inaccurate personal data concerning him or her.
Cue much legal back and forth. The bank argued that they simply couldn't support diacritics due to their technology stack. Here's their argument (in Dutch - my translation follows)
Bank X also explained that the current customer data management application was launched in 1995 and is still running on a US manufactured mainframe system.
This system only supported EBCDIC ("extended binary-coded decimal interchange code"). This is an 8-bit standard for storing letters and punctuation marks, developed in 1963-1964 by IBM for their mainframes and AS/400 computers. The code comes from of the use of punch cards and only contains the following characters…
(Emphasis added.)
EBCDIC is an ancient (and much hated) "standard" which should have been fired into the sun a long time ago. It baffles me that it was still being used in 1995 - let alone today.
Look, I'm not a lawyer (sorry mum!) so I've no idea whether this sort of ruling has any impact outside of this specific case. But, a decade after the seminal Falsehoods Programmers Believe About Names essay - we shouldn't tolerate these sorts of flaws.
Unicode - encoded as UTF-8 - just works. Yes, I'm sure there are some edge-cases. But if you can't properly store human names in their native language, you're opening yourself up to a lawsuit.
Hâte de mettre en justice tous les sites et autres compagnies qui ont décidé que le fait que j'ai un accent dans mon nom de famille soit source de bug (avec évidemment un message d'erreur qui n'a rien à voir. Histoire de bien pas comprendre pourquoi ça marche pas) https://t.co/ReIodsI1dh
La France va sortir de l'UE juste pour que leur état-civil et autres administrations puissent continuer à ruiner la vie de quelqu'un parce qu'il a un tilde dans son nom https://t.co/i8FisgEEjD
Does this mean that Z̷̡̧̢̰͓̪͖̭͙̰̣̱̬̹̙̜̪̣̏̿̏̋͑́̒͑́̒̿̇̈̍̇̌͝͝a̵̡̧͍̘̮̤̙̹͙̦̙͙͖͓̥̟̦͔͒̇̊̊̔̓́͒́̌̈́̑͋̏̏̏̚͘͝͠͝l̶͉̯̱͇̭̭̉̉̈́̿͐̽̒̎̽͌̚͜ģ̸̧̛͙̩̹̰̤̱̖̘̻̪̻̮̫̟̙̲͍̰̻͕̗̫̿̆̃́͗̽̊̽̌̔̂͂̈͊̐̈́̈̈́̈̓̆͌̑́̕͜ǫ̶̢̹̥̮̟͍̔̑̔̽ can finally open a bank account? https://t.co/06cTjHxdgx
Hello Fediverse! At long last I finally made it here, too.
This account is here to talk all things #Unicode, scripts, encodings and languages, and as shortcut for you, if you want to give feedback on https://codepoints.net.
That website is there to help you make sense of the Unicode standard, so if you have feature ideas, just drop me a toot!
Apart from that I love to learn strange and niche news about everything related to written (and sometimes even spoken) language.
🆕 blog! “Where you can (and can't) use Emoji in PHP”
I was noodling around in PHP the other day and discovered that this works: <?php $🍞 = "bread"; echo "Some delicious " . $🍞; I mean, there's no reason why it shouldn't work. An emoji is just a Unicode character (OK, not just a character - but we'll get on to that), so it should […]
I was noodling around in PHP the other day and discovered that this works:
<?php$🍞 = "bread";echo "Some delicious " . $🍞;
I mean, there's no reason why it shouldn't work. An emoji is just a Unicode character (OK, not just a character - but we'll get on to that), so it should be fine to use anywhere.
Emoji work perfectly well as function names:
function 😺🐶() { echo "catdog!";}😺🐶();
Definitions:
define( "❓", "huh?" );echo ❓;
And, well, pretty much everywhere:
class 🦜{ public int $🐦; public ?string $🦃; public function __construct(int $🐦, ?string $🦃) { $this->🐦 = $🐦; $this->🦃 = $🦃; }}$🐓 = new 🦜(1234, "birb");echo $🐓->🐦;
How about namespaces? Yup!
namespace 😜;class 😉 { public function 😘() { echo "Wink!"; }}use 😜😉;$😊 = new 😉();$😊->😘();
Even moderately complex Unicode sequences work:
echo <<<🏳️🌈Unicode is magic!🏳️🌈;
I've written before about the Quirks and Limitations of Emoji Flags. The humble 🏳️🌈 is actually the sequence U+1F3F3 (white flag), U+FE0F (Variation Selector 16), U+200D (Zero Width Joiner), U+1F308 (Rainbow).
Probable the most complex emoji has 10 different codepoints! It looks like this - 🧑🏾❤️💋🧑🏻
And it works!
$🧑🏾❤️💋🧑🏻 = "Kiss Kiss. Bang Bang!";echo $🧑🏾❤️💋🧑🏻[-1];
There are some emoji which don't work;
$5️⃣ = "five";
The 5️⃣ emoji is U+0035 (Digit Five), U+FE0F (Variation Selector 16), U+20E3 (Combining Enclosing Keycap). PHP doesn't allow variables to start with digits, so it craps out with PHP Parse error: syntax error, unexpected integer "5", expecting variable or "{" or "$" in php shell code on line 1
You also can't use "punctuation" emoji as though they were normal characters:
echo 5 ❗= 6;
And, while not strictly emoji, you can't use mathematical symbols:
echo 5 ≤ 6;
So, there you have it. Is this useful? Well, probably. It is easy to get lost in a sea of text - so little pictograms can make it easier to see what you're doing. If the basic ASCII characters aren't part of your native language, perhaps it is useful to make use of the full range of Unicode.
Does your favourite programming language support Emoji?