That tripped me up too. The Unicode Core spec is quite good at explaining things and introduces some terminology you don't really hear outside the document. Chapter 2, General Structure, is worth reading in its entirety. I've linked some bits that might help:
> *2.2.3 Characters, Not Glyphs*
> The Unicode Standard draws a distinction between characters and glyphs. Characters are the abstract representations of the smallest components of written language that have semantic value. They represent primarily, but not exclusively, the letters, punctuation, and other signs that constitute natural language text and technical notation. [...] Letters in different scripts, even when they correspond either semantically or graphically, are represented in Unicode by distinct characters.
> Characters are represented by code points that reside only in a memory representation, as strings in memory, on disk, or in data transmission. The Unicode Standard deals only with character codes.
> *2.4 Code Points and Characters*
> The range of integers used to code the abstract characters is called the codespace. A particular integer in this set is called a code point. When an abstract character is mapped or assigned to a particular code point in the codespace, it is then referred to as an encoded character.
> *2.5 Encoding Forms*
This deals with UTF-{8,16,32}, which is a tricky bit and tripped me up for a long time. If the document is too dense here, there's a lot of supplementary material online explaining the different forms, I'll link a Tom Scott video explaining UTF-8.
---
The long and short of it is: the atomic unit of Unicode is the character, or encoded character, which is a value that has been associated with a code point, which is an integer usually represented in hex for as U+XXXX. Unicode doesn't deal with glyphs or graphical representations, just characters and their properties (eg. what is the character name? what should this character do when uppercased?). As you probably know, many characters can combine with others to form grapheme clusters, which may look like a single (abstract) character, but underneath consist of multiple (encoded) characters. Every character is associated with an integer index (a codepoint), and those integers can be represented in three formats (this sort of happened by accident): UTF-32 (just represent the integer directly), UTF-16 (was originally supposed to represent the integer directly, but there were too many and it got extended), and UTF-8 (which has different byte lengths to encode different characters efficiently).
> In an attempt to regain control, Wojcicki made an initial bid in February 2024 to take 23andMe private, offering $2.53 per share in a joint bid, but it did not proceed.[39] In July 2024, Wojcicki offered 40 cents each for all outstanding shares not already owned by her directly or through affiliates.[40] The proposal was rejected by a committee set up to evaluate options for the company's future,[41] and in September the seven independent members of the board of directors all resigned.[42] The company subsequently filed with the SEC indicating that it was no longer open to third-party acquisition offers.[40] Users were concerned about the security of their genetic data, and were trying to delete it from the company's archives only to find out that it holds onto the data for three years before deleting to comply with "legal obligations".[43]
> In January 2025, 23andMe declared that it would need additional liquidity to fund operations, and was actively exploring strategic alternatives including a potential sale of the company.[45] Wojcicki made a third offer of 41 cents per share in March 2025.[39]
-------------
I don't know a lot about her, but she co-founded 23andme and has been tied to it ever since. Maybe it's her baby?
I really do appreciate the transparency and ownership that comes with these. We all fuck up, but a lot of companies would rather hide their mistakes than own up to them. Cloudflare's approach makes me trust them more.
I gotta say, it's kinda nice when that happens... work just kinda pauses for everyone, from providers to customers. It kinda feels like a national holiday, and everyone downstream from the affected cloud can just kinda sit back and relax cuz there's nothing they can do anyway except wait.
When it's your own outage, it's all-hands-on-deck panic mode. When it's half the internet down, it's no longer your problem, lol
I guess it depends on what your company's acceptable level of downtime is. If you're like Cloudflare (who handled this well), you take this as a sign to build fault tolerance around your 3rd party providers.
If your application is mission-critical, downtime is anything but a holiday.
I don't understand your argument? Wasn't GCP's own status page calling them outages? Some of our upstream providers (who use GCP) were definitely affected and down.
As a former SRE there, is "widespread outage" a specific, special kind of classification that's not obvious to the public just by looking at the status page...? Or what do you mean?
That sounds terrible. They're already hard enough to see/read over other UI elements, how are they going to be visible at all over random things in your field of vision?
Side note: It's much nicer if you have a small battery to act as a reservoir. The solar panel charges the battery and the battery charges everything else. That way you don't have to leave your phone out in the sun, and a moment's clouds won't cause your devices to stop charging.
Just do the math (between your daily estimated solar panel output and your device consumption)... try not to let the battery drain to under 20% or charge to over 80%.
Can we please stop with the chat to dev spam posts? They were posted under a different username in the past. It's always some clickbaity topic that tries to redirect people to that other site.
I stand by what I said... and a lot of them were posted under username cannibalXxx, which has even more spam. They just look like low-effort SEO bait. The self-promotion has gone a bit too far, IMO, but you do you...
reply