Well that definitely takes the 𝕡𝕣𝕚𝕫𝕖 for most noticeable Hacker News submission.
Suggestion (if you are author): There are a lot of chars that look like another char, often used on the web, so i think that there are more advanced versions to be made. I think i read that a lot of thai signs and cyrillic look like latin chars.
Oh it can get much much worse... have a look at greek questionmark: "[...] canonically decomposes to U+003B ; semicolon making the marks identical in practice." [1]
I've always found that attempts at germanization of subjects where English is the lingua franca are incredibly amusing. Further germanization of German words, such as the conversion of "Nase" to "𝕲𝖊𝖘𝖎𝖈𝖍𝖙𝖘𝖟𝖎𝖓𝖐𝖊𝖓" also is at least worth a chuckle despite the solemn background that spawned the movement.
This is now my favorite code snippet. I didn't have one before. Love "Begrüssungsanzeigebedienmechanismus" and the hopelessly verbose way it was implemented.
I remember my German teacher struggling to get the class to remember Schwarzwälder Kirschtorte (admittedly two words). So she taught us Vierwaldstätterseedampfschiffgesellschaftskapitänsmützensternlein instead. After that Schwarzwälder Kirschtorte was easy.
Too bad the source code of that beautiful toy is nowhere to be found - I'd gladly provide a patch that teaches it about the umlauts which it unfortunately left alone in your piece of art you created here <3
It's trivial to dump the tables at least. Just enter all printable ascii characters :). The umlauts would be by first fully decomposing the string down to letters+combining characters, right?
Sad thing is, Unicode still doesn't seem to properly support titlos and (not so sad, since personally I think Unicode shouldn't really do anything with fonts unless absolutely necessary) has no separate characters for Ustav and Poluustav scripts.
If you happen to use cyrillic in your source code (for comments or even strings) and constantly switch between latin and cyrillic, then this actually happens with а "c" letter, because both latin and cyrillic "c" occupy the same button. And that's not fun, btw.
Depends on which keyboard layout you use, of course.
Russian is my first language, but English is my primary language, and I never had my chance to practice typing using the standard Russian keyboard layout, so I almost always use the "Phonetic" layout - where the latin c is the cyrillic ц. (Also, w is ш, and who the hell remembers what []\-= map to - always trial and error for me to find южэьъ.)
Russian government officials are obliged to put all their purchases on the online tender platform.
So they are using this trick (but in the opposite direction, latin `a` instead of cyrillic `а`) to avoid undesired competitors from entering those biddings and lowering the purchase prices (and not paying kickbacks, obviously).
https://navalny-en.livejournal.com/52565.html
Cyrillic, sure. But Thai? Their alphabet is credited to one พ่อขุนรามคำแหงมหาราช. I've never thought there was any resemblance between Thai symbols and Latin ones, but... judge for yourself, I guess?
Would you really mind if I said that the Greek alphabet was credited to one Κάδμος? We know that's not true, but it doesn't change the legend (and indeed, the legend of Cadmus explicitly states that the Greek alphabet was derived from the Phoenician one...).
Both Thai and Khmer are Indic abugida scripts that derive (just like Burmese, Lao, Sinhalese, Balinese, etc.) from Brahmi. Claiming any of these scripts is one person's work is displaying abject ignorance of one of the most significant families of writing in human history.
These are called Homoglyphs, right? I remember reading an article about phishing that used these characters to register almost perfect looking domain names.
> if you are on a high DPI display, chrome just looks awful
I'm fairly sure this is no longer the case. Chrome is high-DPI aware on Windows now, and it uses DirectWrite for font rendering, the same as IE. It just can't display these characters for some reason.
Nope, the UI got an update too. It renders at high-DPI on Windows. Chrome on a high-DPI machine looks exactly the same as on a low-DPI machine, except sharper. It used to be plagued with issues, but I'm fairly sure they're all gone now. DirectWrite isn't perfect. It still has weird hinting and kerning at high-DPI with some fonts, but it's better than GDI.
I find Chrome better than IE, actually. IE ignores my DPI settings and scales pages to 250%, so everything looks too large. Chrome renders correctly at 200%.
On my Fedora box with Chrome negative circled, squared and negative squared don't show up but everything else does. Firefox and Konqueror are the same so I imagine it is a font issue.
Well it does / should make people rethink allowing UTF-8 by default in user-generated content. I wonder if the stuff generated by http://www.eeemo.net/ works here:
This comment has a strange behavior in Firefox, which is not surprising but it's probably a bug:
When I scrolling to this comment there is no characters outside of the comment box but when i switch back to this page from another tab then the characters are going outside the comment box.
Hey! I was just thinking about this site, and visited it for the first time in years, after mentioning the old San Francisco ransom-font in another thread.
By randomly mixing these Unicode letter and letterlike characters, you can simulate a cut-and-paste ransom-note. For example, an acquired company could announce changes to its privacy policy:
wE ℎåve yøuR ρrIvᴀçy ⅈn a ᴡiNdøwleSs ℞oøm,
& ℙℓaℕ τø ⅆo µnSρεaKᴀble †hiℕℊs t○ ⅈt
One of my friends, moving to China for a semester to teach, was thinking of using a proper Chinese name to make it easier for students to address him. He had a good idea, even, which he shared on Facebook.
I proposed that we should name him after the lack of unicode support in our browsers, and we ended up calling him "Box Boxbox" for a couple of months.
Just a PSA for discoverability: since the replacement characters use different code points than their more standard equivalents, the default HN search (https://hn.algolia.com) at least doesn't find this submission when searching for "unicode."
Funny how it triggered a bug in Firefox. When the tab is unfocused, its title in the handle is "𝑼𝒏…", but when it gets the focus it becomes "𝑼<D835>…" (in a square box). The next codepoint is U+1D48F whose UTF-16 BE encoding is d8 35 dc 8f.
I'd say that the truncation algorithm operates on bytes and that it can't make sense of d8 35, but I'm not too sure how to fix that since graphemes can have arbitrary length (right?). Do you have to compute the width in advance?
>I'd say that the truncation algorithm operates on bytes
This seems likely, as another notable weirdness is that even with full width tabs, where there's plenty of space for at least "𝑼𝒏𝒊𝒄𝒐𝒅𝒆 𝑻𝒆𝒙𝒕..." it still only shows "𝑼𝒏𝒊𝒄𝒐...".
Interesting; the title displayed OK minutes ago, on the main page, in Firefox/OSX. But now it's showing as unsupported-glyph boxes inside the page... but still looks OK in the titlebar of the item (comments) page.
Did some automated or administrative process mutate the characters? Or is this just Firefox drifting, in choice of font?
Also, strike-through. Which is the one I find genuinely useful because I like the suggestive way to say s̶o̶m̶e̶t̶h̶i̶n̶g̶ then visibly correcting to something else.
In Javascript, many unicode characters are allowed [0], so háćḱéŕŃéẃś is a valid variable name [1].
Note: The number of іllэБіъlэVаѓіаъlэИамэѕ [2] used in your production code is inversely proportional to the number of friends you'll make in the maintenance team.
Strangely, for me on Firefox 33.1 on OS X, the title shows up fine on the main page. But when I click through to the comment, I get boxes only, and from then on, the main page also doesn't work anymore until I restart Firefox. I suspect an extension, but I'm not sure.
There's this great quote that anything that was fun when you were five is still fun when you're thirty five, and playing around with funky letters was certainly fun at the age of 5.
I just noticed that in the Chrome tabs it shows the title correctly, i guess its because it just uses Windows unicode support there. But everywhere else its not showing.
Does anyone know why there are separate Unicode code points for letters in bold, bold italic and Fraktur? Normally this sort of thing should be handled by different fonts / font variants. Is it for compatibility with some legacy encoding?
Great, now we'll have to rely on IDEs with clickable drop-down lists of variables and function names because simple text input just got a lot harder for languages where Unicode is allowed for symbols!
Presumably, we are now in a situation where it is actually more difficult to learn computer programming if you happen to have had the misfortune to be born into a 'non-western' language and, to some extent, even non-english. That is an absurd situation and means that, as a collective species, we are wasting a huge amount of resources and potential. Definitely something we should look to resolve.
Having a drop-down for variables certainly isn't a solution, granted. Hopefully, there are some more sensible compromises - e.g. being able to specify a locale-dependent subset of unicode in your personal environment, appropriate use of metadata to describe the language of a file, etc.
This surprises me, what exactly is the point of encoding what are essentially different fonts in unicode? Isn't that the job of the presentation layer?
(the Fraktur variant is awesome btw, and is apparently in the valid unicode range for Java...)
Personally I find it annoying how mathematical notation seems so intractable today. Things that are easily understood in code for me are a mystery in math notation. But I guess there will never be an overhaul with a more intuitive typography...
Keep in mind it is also true the other way around. Something can be mathematically clear to someone and totally a mystery in code form. Each one has his/her strengths and weaknesses.
Probably true, and I guess if you're a mathematician, you quickly get used the symbols. And I'm not arguing against having those symbols in the first place, its just that some of them have an 19th century feel to them, and do not seem intuitive.
The art of typography and signage really only matured in the 20th century, and I'm certain some of the symbols would look very different if they were designed today. Anything that helps with teaching math and making it appear friendlier is a plus, imho.
It's like three-letter names in assembly. It's good when you're doing it, but step away from it for a while and you can't remember what the signs mean anymore.
I'm not sure what symbols are you hinting at. First I thought it was to Fraktur kind of letters, but obviously this shouldn't be the case, as you point "teaching" as a plus of redesigning them, and Fraktur symbols are used "traditionally" in relatively high level algebra (for some reason some symbols are used more in some realms, for me Fraktur started appearing when talking about complex stuff about ideals). Once you get used to them, it's like a second language, and that's it. I remember reading Feynman used his own symbols for sin, cos and other basic functions (turning them to one-stroke symbols) but he had to give up once he had to talk with other people.
Math symbols are more or less a universal language. Once you know how the symbol appeared, or get used to "reading it right" they are totally natural. I don't see ∂ as a "weird d," I read this as "partial." It wasn't natural at first, but I got used to it, just like I got used to English.
For some concepts that can be expressed in both code and math, I prefer the code notation because I can run it, and also make small tweaks and see what happens. For example, I got a better understanding of Löb's theorem [1] by translating the proof into Haskell [2].
If it can be coded, I prefer having both, or implementing the code. It helps in understanding the algorithm behind. But maths is much larger than what can be coded, or is useful in code, so the only thing left is playing with toy examples ("coding" when working with really weird stuff.)
I'd love to see more of APL (and a "larger" set of APL functions, actually) in use. The idea of a notation we could run directly is/was awesome.
The book Structure and Interpretation of Classical Mechanics redefines some of the trickier parts of the standard mathematical notation, and does all of the actual computation in Scheme. They extended the standard Scheme interpreter/compiler to support algebraic manipulation of Scheme programs, which lets them do all of the higher-order computations in Scheme as well (things like transforming between coordinate systems, finding the derivative of a function, computing the Lagrange equations from partial derivatives, etc). Usually the proofs/derivations are shown in the modified standard notation, and then the resulting implementation is shown in Scheme.
I haven't finished the book (turns out I know less calculus than I thought), but the result is pretty effective. You're much less likely to get confused about which things are numbers and which are functions, and which of those functions operate on numbers and which ones operate on other functions, once you see the Scheme implementation of something.
In some cases, you might be reading poor-quality mathematical writing.
According to my generalization of some advice from Knuth:[1] in a good math text, definitions of terms are presented as they go along, and they are explicit about what means what. Furthermore, one of the factors that determines the quality of mathematical writing is
- Did you use words, especially for logical connectives, whenever you could have used words (instead of symbols) to express something?
and
> Try to state things twice, in complementary ways, especially when giving a definition. This reinforces the reader’s understanding. [...] All variables must be defined, at least informally, when they are first introduced.
This is repeated:
> Be careful to define symbols before you use them (or at least to define them very near where you use them).
There are some cases where "the general mathematical community is expected to know what you mean," like when publishing papers in some specialized field, but if you're writing a book, these rules hold quite true. Books certainly should explain their notation, especially since the general consensus for certain notations is expected to change over the decades ...
For an enlightening read, buy a copy of the Unicode standard. An amazing book, containing what I think is the single greatest achievement in anthropology. And read about the history and the imperfect process that has produced a system with duplicates, inconsistencies, but a system nonetheless.
239 comments
[ 3.0 ms ] story [ 230 ms ] threadSuggestion (if you are author): There are a lot of chars that look like another char, often used on the web, so i think that there are more advanced versions to be made. I think i read that a lot of thai signs and cyrillic look like latin chars.
[1] http://en.wikipedia.org/wiki/Question_mark#Greek_question_ma...
Which is bullshit and just a parody on linguistic purism.
I could write more, but i have to configure the Zuwachssicherung of my Klapprechner over DFÜ.
𝕭𝖊𝖌𝖗𝖚̈𝖘𝖘𝖚𝖓𝖌𝖘𝖆𝖓𝖟𝖊𝖎𝖌𝖊𝖇𝖊𝖉𝖎𝖊𝖓𝖒𝖊𝖈𝖍𝖆𝖓𝖎𝖘𝖒𝖚𝖘
Right :). Though it's not quite centred for me.
http://mar.cx/unicate/ or https://github.com/afiler/unicate
𝔇𝔞𝔰 𝔠𝔬𝔪𝔭𝔲𝔱𝔢𝔯𝔪𝔞𝔠𝔥𝔦𝔫𝔢 𝔦𝔰𝔱 𝔫𝔦𝔠𝔥𝔱 𝔣𝔲𝔢𝔯 𝔤𝔢𝔣𝔦𝔫𝔤𝔢𝔯𝔭𝔬𝔨𝔢𝔫 𝔲𝔫𝔡 𝔪𝔦𝔱𝔱𝔢𝔫𝔤𝔯𝔞𝔟𝔟𝔢𝔫. ℑ𝔰𝔱 𝔢𝔞𝔰𝔶 𝔰𝔠𝔥𝔫𝔞𝔭𝔭𝔢𝔫 𝔡𝔢𝔯 𝔰𝔭𝔯𝔦𝔫𝔤𝔢𝔫𝔴𝔢𝔯𝔨, 𝔟𝔩𝔬𝔴𝔢𝔫𝔣𝔲𝔰𝔢𝔫 𝔲𝔫𝔡 𝔭𝔬𝔭𝔭𝔢𝔫𝔠𝔬𝔯𝔨𝔢𝔫 𝔪𝔦𝔱 𝔰𝔭𝔦𝔱𝔽𝔢𝔫𝔰𝔭𝔞𝔯𝔨𝔢𝔫. ℑ𝔰𝔱 𝔫𝔦𝔠𝔥𝔱 𝔣𝔲𝔢𝔯 𝔤𝔢𝔴𝔢𝔯𝔨𝔢𝔫 𝔟𝔢𝔦 𝔡𝔞𝔰 𝔡𝔲𝔪𝔭𝔨𝔬𝔭𝔣𝔢𝔫. 𝔇𝔞𝔰 𝔯𝔲𝔟𝔟𝔢𝔯𝔫𝔢𝔠𝔨𝔢𝔫 𝔰𝔦𝔠𝔥𝔱𝔰𝔢𝔢𝔯𝔢𝔫 𝔨𝔢𝔢𝔭𝔢𝔫 𝔡𝔞𝔰 𝔠𝔬𝔱𝔱𝔢𝔫-𝔭𝔦𝔠𝔨𝔢𝔫𝔢𝔫 𝔥𝔞𝔫𝔰 𝔦𝔫 𝔡𝔞𝔰 𝔭𝔬𝔠𝔨𝔢𝔱𝔰 𝔪𝔲𝔰𝔰; 𝔯𝔢𝔩𝔞𝔵𝔢𝔫 𝔲𝔫𝔡 𝔴𝔞𝔱𝔠𝔥𝔢𝔫 𝔡𝔞𝔰 𝔟𝔩𝔦𝔫𝔨𝔢𝔫𝔩𝔦𝔠𝔥𝔱𝔢𝔫.
This somehow reminded me of this one, in pseudo-Old Church Slavonic: http://lurkmore.so/images/d/d6/Pravoslavnii_koding.jpg
Sad thing is, Unicode still doesn't seem to properly support titlos and (not so sad, since personally I think Unicode shouldn't really do anything with fonts unless absolutely necessary) has no separate characters for Ustav and Poluustav scripts.
Russian is my first language, but English is my primary language, and I never had my chance to practice typing using the standard Russian keyboard layout, so I almost always use the "Phonetic" layout - where the latin c is the cyrillic ц. (Also, w is ш, and who the hell remembers what []\-= map to - always trial and error for me to find южэьъ.)
[1] PEP 0263: https://www.python.org/dev/peps/pep-0263/
So they are using this trick (but in the opposite direction, latin `a` instead of cyrillic `а`) to avoid undesired competitors from entering those biddings and lowering the purchase prices (and not paying kickbacks, obviously). https://navalny-en.livejournal.com/52565.html
http://en.wikipedia.org/wiki/Thai_alphabet
http://en.wikipedia.org/wiki/Homoglyph
On my windows box with chrome all i see are empty boxes.
I'm fairly sure this is no longer the case. Chrome is high-DPI aware on Windows now, and it uses DirectWrite for font rendering, the same as IE. It just can't display these characters for some reason.
Anyway, DirectWrite was horrible at high DPI, if I remember correctly.
I find Chrome better than IE, actually. IE ignores my DPI settings and scales pages to 250%, so everything looks too large. Chrome renders correctly at 200%.
𝒃𝒆𝒔𝒕 𝒗𝒊𝒆𝒘𝒆𝒅 𝒊𝒏 𝒊𝒏𝒕𝒆𝒓𝒏𝒆𝒕 𝒆𝒙𝒑𝒍𝒐𝒓𝒆𝒓 11
This reminds me of the 1990s. haha
Fortunately I'd seen this story on my Ubuntu box before leaving home, so I wasn't totally out of the loop.
Works fine on chrome for mac, doesn't work on chrome for windows.
http://gschoppe.com/fixing-unicode-support-in-google-chrome/
Z̡̖̥̙̱͓A̶͚̬̺L̷͖͓Ģ͕O̳̮!̗
https://twitter.com/glitchr_
𝑼𝒏𝒊𝒄𝒐𝒅𝒆 𝑻𝒆𝒙𝒕 𝑪𝒐𝒏𝒗𝒆𝒓𝒕𝒆𝒓
comes in a fancy bold italic font in my HN list. I love this hack.
I still don't know what the sequence is though, any Unicode expert to explain? Apparently is d835 "invalid"?
http://www.charbase.com/d835-unicode-invalid-character
Edit: I see now emillon explains:
"U+1D48F whose UTF-16 BE encoding is d8 35 dc 8f."
That's:
http://codepoints.net/U+1D48F
"MATHEMATICAL BOLD ITALIC SMALL N"
By randomly mixing these Unicode letter and letterlike characters, you can simulate a cut-and-paste ransom-note. For example, an acquired company could announce changes to its privacy policy:
I proposed that we should name him after the lack of unicode support in our browsers, and we ended up calling him "Box Boxbox" for a couple of months.
I'd say that the truncation algorithm operates on bytes and that it can't make sense of d8 35, but I'm not too sure how to fix that since graphemes can have arbitrary length (right?). Do you have to compute the width in advance?
There are libraries for doing it in Javascript: https://www.npmjs.org/package/grapheme-breaker (is that part of the Firefox UI done in Javascript? I've no idea)
This seems likely, as another notable weirdness is that even with full width tabs, where there's plenty of space for at least "𝑼𝒏𝒊𝒄𝒐𝒅𝒆 𝑻𝒆𝒙𝒕..." it still only shows "𝑼𝒏𝒊𝒄𝒐...".
Did some automated or administrative process mutate the characters? Or is this just Firefox drifting, in choice of font?
http://adamvarga.com/strike/
Note: The number of іllэБіъlэVаѓіаъlэИамэѕ [2] used in your production code is inversely proportional to the number of friends you'll make in the maintenance team.
[0] https://mathiasbynens.be/notes/javascript-identifiers
[1] https://mothereff.in/js-variables#h%C3%A1%C4%87%E1%B8%B1%C3%...
[2] http://www.panix.com/~eli/unicode/convert.cgi?text=illegible...
http://antglove.com/erger
There's this great quote that anything that was fun when you were five is still fun when you're thirty five, and playing around with funky letters was certainly fun at the age of 5.
(And I had fun too!)
http://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbo...
http://play.golang.org/p/2zYfCx_J-O
Having a drop-down for variables certainly isn't a solution, granted. Hopefully, there are some more sensible compromises - e.g. being able to specify a locale-dependent subset of unicode in your personal environment, appropriate use of metadata to describe the language of a file, etc.
(the Fraktur variant is awesome btw, and is apparently in the valid unicode range for Java...)
For the page, that's fairly obvious when you look at the pseudoalphabet converters.
Personally I find it annoying how mathematical notation seems so intractable today. Things that are easily understood in code for me are a mystery in math notation. But I guess there will never be an overhaul with a more intuitive typography...
The art of typography and signage really only matured in the 20th century, and I'm certain some of the symbols would look very different if they were designed today. Anything that helps with teaching math and making it appear friendlier is a plus, imho.
Math symbols are more or less a universal language. Once you know how the symbol appeared, or get used to "reading it right" they are totally natural. I don't see ∂ as a "weird d," I read this as "partial." It wasn't natural at first, but I got used to it, just like I got used to English.
[1] http://en.wikipedia.org/wiki/L%C3%B6b's_theorem#Modal_Proof_...
[2] http://lesswrong.com/lw/l0d/a_proof_of_l%C3%B6bs_theorem_in_...
I'd love to see more of APL (and a "larger" set of APL functions, actually) in use. The idea of a notation we could run directly is/was awesome.
I haven't finished the book (turns out I know less calculus than I thought), but the result is pretty effective. You're much less likely to get confused about which things are numbers and which are functions, and which of those functions operate on numbers and which ones operate on other functions, once you see the Scheme implementation of something.
http://mitpress.mit.edu/sites/default/files/titles/content/s...
According to my generalization of some advice from Knuth:[1] in a good math text, definitions of terms are presented as they go along, and they are explicit about what means what. Furthermore, one of the factors that determines the quality of mathematical writing is
- Did you use words, especially for logical connectives, whenever you could have used words (instead of symbols) to express something?
and
> Try to state things twice, in complementary ways, especially when giving a definition. This reinforces the reader’s understanding. [...] All variables must be defined, at least informally, when they are first introduced.
This is repeated:
> Be careful to define symbols before you use them (or at least to define them very near where you use them).
There are some cases where "the general mathematical community is expected to know what you mean," like when publishing papers in some specialized field, but if you're writing a book, these rules hold quite true. Books certainly should explain their notation, especially since the general consensus for certain notations is expected to change over the decades ...
[1] http://jmlr.csail.mit.edu/reviewing-papers/knuth_mathematica...