The emoji problem (2022)
The reasons are complicated but, many people prefer unicode normalization so that different forms of what appear to be the same word are considered the same word. People argue whether or not this is important but it can certainly be argued that it would be frustrating to get an error like
let café = 1;
café += 1; // error, unknown identifier 'café'
The error happens in non-normalizing languages because those to idenifiers are not the same unicode.But, choosing a normalization affects emoji as well. Worse, when new ones are added the normalization rules can change.
8×8 is a tight squeeze, and 16×16 works a lot better. But that would make your approach vastly more space hungry than a normalization approach using the actual Unicode code points.
Non-ASCII comments in a source code can be scary enough sometimes, unless it's for an all-Unicode system like Android or something HTML based.
Easter egg: The example is named dogcow, after a 90s Mac icon, designed by Susan Kare, which later became a small mascot: https://512pixels.net/dogcow/
Regarding .length: Effectly that is just the result of Unicode, there is no one-to-one equivalent between characters code points, the code units in an encoding and the resulting grapheme clusters. That is in effect a result of the complexity of the world's alphabets, including Emoji.
The other aspects of strings are also centered around things being of uncertain length, like how it's O(n) to take the nth character of a string, and how there are rather complicated objects involved in taking substrings. There's a lot more thought and resulting complexity than other languages' default strings. And yes a few languages use extended grapheme clusters, but I feel like emojis were the real motivation.
Unfortunately most modern languages like Rust and JS follow the XID_Start/XID_Continue recommendation (not very well-motivated imo) which excludes all emoji characters from identifiers.
[1] https://github.com/microsoft/TypeScript/blob/81c951894e93bdc...
UPD. This code is like that picture with Disney princesses. The closer you look, the scarier it gets
it could be the phrase "total number of kittens"
There is this minimalism present in math culture, while I sort of understand it, when tossing and mixing formulas it helps to have everything as small as possible. but later, when it is published it really sucks for readability, "Okay here is an item doing some heavy lifting in this formula what is it for? hell if I know some joker labeled it 'φ' "
I like to joke, If you think programmers are bad at naming thing you should see the mathematicians, they take a perverse pride in their inability to name things.
The worst are programs derived directly from a math paper, if your variable holds the correlation coefficient call it that. we have thousands of years of language and labels we can use to share our ideas with others. don't encrypt it and call it "rho".
And with the exceptions of Fraktur and script, free fonts that are already sans-serif and monospace generally do not make the glyphs visually distinct from the actual English alphabet characters similarly weighted and slanted.
Which gives the sighted people a taste of what the sight-impaired people have to suffer when people abuse these code points as ways to write in italics or boldface, because the screen readers correctly obey the important note in Unicode Technical Report 25 that these letters do not combine to make words, and read them out as mathematical formulae where "d" is multiplied by "o" and then by "g".
Instead, this happened:
https://chatgpt.com/share/682cce62-c53c-8003-be2c-2929395868...
Basically, the model confidently outputs a guess, then calculates it, determines it to be incorrect, and repeatedly tries again, even repeating the same guesses over and over. It does not recognize any symmetry and acts like a completely unstructured agent. In the end, the model vehemently asserts there to be no solutions to this puzzle. I really did not expect this and will update my beliefs accordingly if the models behave as badly with future puzzles.
I also asked Chat GPT o3 and it thought for 11.5 minutes! https://chatgpt.com/share/682d0993-db4c-8004-a66c-3908ef7203...
Is there supposed to be some easily confused bit so people argue or just be easy so everyone rushes to show off?
(I got 10, 4, 2; maybe it confused me?)
Intersecting the curve with lines the way the author does is, perhaps shockingly, a commutative group operation, known as point addition. You define this operation by saying that the three points A,B,C on a line sum to zero: that is A+B+C=0 or in other words, A+B = -C. Reflecting across the curve's line of symmetry is negation (there's an alternative definition that extends to curves without reflection symmetry). Combining the two defines an operation A+B which adds two points on the curve and gives a third one: draw the line from A to B, intersect it with the curve to find a point -A-B (using the same type of formula given in this article) and then reflect it to get A+B. This addition operation obviously commutes (meaning, the line between A and B is the same as the line between B and A), but surprisingly it also associates and you get a group operation.
(For math olympiad nerds out there: so the union of a conic and a line is also a bivariate cubic equation. You can carry out the same "addition" operation there. Again the operation clearly commutes. But it also associates! This is basically Pascal's theorem.)
The theory of elliptic curves is also the basis of elliptic curve cryptography. In that case, instead of the curve being over the reals, all the calculations are done mod some prime p, which destroys structure based on continuity and prevents the numbers from becoming too large. There are a bunch of subtleties here but the key is that you can still straightforwardly compute addition in this context, with basically the same formulas. Then from addition you can get n*A, both for small integers n (eg 5*A = A+A+A+A+A) but also for large n (e.g. 2*A = A+A; 66*A = 2*2*2*2*2*2*A + 2*A). This "scalar multiplication" operation is a one-way operation for appropriately chosen curves: it's easy to calculate n*A from (n,A), but as far as we know it is hard to calculate n from (A,n*A) ... at least if you can't build a large quantum computer.
This gives you mix of easy operations (eg, addition and scalar multiplication) plus problems believed to be hard, which is a great starting point to build cryptography. There are a lot of important technical details, though fewer than with the new lattice schemes.
(Further comment on the olympiad thing: so you can do this with conic+line too, extending from addition to multiplication and using the same formulas mod p. But it's not as good: it's not hard to find a projection that sends the line to infinity and the conic to the unit circle or similar, and then the group operation becomes equivalent to multiplying the points' coordinates as complex numbers or similar. If the group operation is equivalent to multiplication, then scalarmul becomes equivalent to exponentiation, which ends up being in Fp or Fp^2 depending on some Legendre symbol or other. Exponentiation is still potentially secure: it's basically classical Diffie-Hellman. However, more attacks are known on exponentiation in Fp or Fp^2: the attacks don't outright break it but you need p to be much bigger.)
Edit: unescaped stars make italics.
You get the level of understanding necessary to create this blog post by already having worked through several textbooks and papers on number theory, elliptic curves, etc. So you don't do it on your own, you do it with help from Poincaré and Euler and Diophantes and whoever else.
Based on your description, you absolutely have the aptitude to do this if you pursued maths further academically. And also by having great teaching and explaining skills - that part might be harder to learn.
this appears to be what sets mathematics appart from science? I mean, it's not like Euler, or Poincaré, and so on, are really there with you when "doing math"
point being, mathematics is not a team game. but everything else is??
point being, mathematics is not a team game. but everything else is??
Sorry, it’s early, and I can’t tell if you’re being sarcastic. I hope you are? Mathematics is very much a team game.
to me old.reddit.com will always be reddit.com
Some more context and related ones here: https://x.com/TheOisinMoran/status/1299124512240398336
the same happened to poe.
Something something dead internet theory.
But yeah, something something dead internet theory indeed.
154476802108746166441951315019919837485664325669565431700026634898253202035277999
36875131794129999827197811565225474825492979968971970996283137471637224634055579
4373612677928697257861252602371390152816537558161613618621437993378423467772036
https://www.quora.com/How-do-you-find-the-positive-integer-s...