Pinned post

Hi, I'm Andreas. I work on Stripe's Reliability Tooling team, and I enjoy working with Rust, Ruby, Go, CL and many other programming languages.

I grew up using Linux but my screens are all driven by some macintosh software or another.

pump & dump version control

rugpull certificate transparency logs

all my zfs pools gone

Show thread

What if every merkle-tree related activity was by its nature a scam?

Wow, TIL google has a union now: https://alphabetworkersunion.org/ - well done, not a second too soon, etc etc.

life was easier when addresses were still backed by the RAM standard.

None of this "fiat" segmentation.

Show thread

A credit default swap that's not backed by a hard drive, mind

Show thread

And now I wonder: are virtual memory allocations credit that userspace extends to the kernel?

And eventually, the kernel defaults (invokes the OOM killer). In that case, I would like to purchase virtual memory default insurance.

Show thread

making ruby programmers unhappy 

class Foo ; def self; ObjectSpace.each_object.to_a.shuffle.first; end; end

Kubernetes: It's not just complex, it's military-industrial complex.

(cncf.io/case-study/dod/)

Wow, this instance is lighting up! Welcome, recursers!

no YOU just wrote a program to generate arbitrary unicode tag sequences stuck to arbitrary emoji, and it was you whose first instinct was to combine the 📼 emoji with the "every morning i wake up and open palm slam a vhs into the slot" copypasta

All that because I was researching how to represent the transgender flag (🏳️‍⚧️ - new in Unicode 13!) in cha(rs).

*That* flag uses ZWJ sequences, like any "reasonable" emojo should. But ... uh... that's not the only way emoji are represented in sequences, far from it!

Unicode is a fractal of weirdness, y'all.

Show thread

unicode, ukpol commentary 

So what this is, is a pirate flag with "gbsct" glued to it. They didn't even use the upper-case letters... I guess, to prevent the commonwealth from thinking of themselves as too important?

So anyway, that's the only three sequences that I could find that use tag sequences. And ... uh. What a weird-ass mess.

Show thread

How does that look like, I wondered, and so, let's look at the scottish flag!

It's the sequence 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F.

E007F is the "cancel tag" codepoint, so that's where the flag ends. What are the others? Let's see:

1F3F4: WAVING BLACK FLAG
E0067: TAG LATIN SMALL LETTER G
E0062: TAG LATIN SMALL LETTER B
E0073: TAG LATIN SMALL LETTER S
E0063: TAG LATIN SMALL LETTER C
E0074: TAG LATIN SMALL LETTER T

Show thread

But what are they used for? That goes back to my original statement: They are specified (to my knowledge) for exactly and only three characters: The flags of England, Scotland and Wales.

Show thread

So how do tag sequences work, you ask? Well, that's easy: They're characters that spell out a tag name.

Are they the same letters that spell out the flag names? No, of course not. This is unicode, of course there is room for everyone (especially latin letters)... Meet U+E0020 (TAG SPACE) through U+E007E (TAG TILDE), plus U+E007F (cancel tag).

Yeah, they duplicated ASCII in "tag" space, including the at-sign and other hilarious bits.

Show thread

So you know how flags are made up of two "regional identifier" letters that combined together spell out the country code? That's great, but those are available only to actual countries.

Well, there's a solution for you ("you", if you are a component country of the british commonwealth, that is): Unicode tag sequences.

Show thread
Show older
recurse.social

A Mastodon server for Recursers.

<svg xmlns="http://www.w3.org/2000/svg" id="hometownlogo" x="0px" y="0px" viewBox="25 40 50 20" width="100%" height="100%"><g><path d="M55.9,53.9H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,53.9,55.9,53.9z"/><path d="M55.9,58.2H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,58.2,55.9,58.2z"/><path d="M55.9,62.6H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,62.6,55.9,62.6z"/><path d="M64.8,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C66,54.4,65.4,53.9,64.8,53.9z"/><path d="M60.4,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C61.6,54.4,61.1,53.9,60.4,53.9z"/><path d="M63.7,48.3c1.3-0.7,2-2.5,2-5.6c0-3.6-0.9-7.8-3.3-7.8s-3.3,4.2-3.3,7.8c0,3.1,0.7,4.9,2,5.6v2.4c0,0.7,0.6,1.3,1.3,1.3 s1.3-0.6,1.3-1.3V48.3z M62.4,37.8c0.4,0.8,0.8,2.5,0.8,4.9c0,2.5-0.5,3.4-0.8,3.4s-0.8-0.9-0.8-3.4C61.7,40.3,62.1,38.6,62.4,37.8 z"/><path d="M57,42.7c0-0.1-0.1-0.1-0.1-0.2l-3.2-4.1c-0.2-0.3-0.6-0.5-1-0.5h-1.6v-1.9c0-0.7-0.6-1.3-1.3-1.3s-1.3,0.6-1.3,1.3V38 h-3.9h-1.1h-5.2c-0.4,0-0.7,0.2-1,0.5l-3.2,4.1c0,0.1-0.1,0.1-0.1,0.2c0,0-0.1,0.1-0.1,0.1C34,43,34,43.2,34,43.3v7.4 c0,0.7,0.6,1.3,1.3,1.3h5.2h7.4h8c0.7,0,1.3-0.6,1.3-1.3v-7.4c0-0.2,0-0.3-0.1-0.4C57,42.8,57,42.8,57,42.7z M41.7,49.5h-5.2v-4.9 h10.2v4.9H41.7z M48.5,42.1l-1.2-1.6h4.8l1.2,1.6H48.5z M44.1,40.5l1.2,1.6h-7.5l1.2-1.6H44.1z M49.2,44.6h5.5v4.9h-5.5V44.6z"/></g></svg>