I had a lot of fun at #causalislands this week, but I'm really thankful to be back home with my pets and plushies too. 🥰
violet cybrespace decodes the qr code on a fast food drink cup using pen and paper, long post
in my (seemingly eternal) quest to learn how to read qr codes by eye, i figured it was time to just sit down with a qr code and decode it with only a pen and paper (and the qr code specification and an ascii table because i don't have that memorized yet)
anyway, i got a drink from mcdonald's that had a relatively small version 2M code on it (which is about as small of a qr code that can still fit a reasonable amount of data in it) and i did all the work to unmask the data and extract the various blocks of modules to figure out the message itself. the message is just a bitly link that directs you to download their app from your respective app store but that's not really relevant
when copying down the original code, i chose to draw the locator features and the version information in a different color than the masked data. this made it easier in the unmasking step to not accidentally waste time trying to unmask static features of the code
only the first 5 bits of the version information encode data (the rest is error correction) and of that the main thing you need to worry about is the 3 bits for the mask pattern but once you have that it's straightforward to unmask the data. the mask patterns are defined as like modular arithmetic statements but since they all rely on "mod 2"s and "mod 3"s i like to just imagine them as a 6x6 pattern that tiles over the data sections of the code. if you look closely you can see the orange tick marks around the outside of the codes that i drew to keep track of where the mask patterns tiled
the two main conveniences that made this a lot easier are the fact that qr codes have their entire data section at the start and all of the error correction comes later and also the fact that this is a small enough code that the error correction is done in one single block. in larger qr codes, the data is split into even groups of 8-bit codewords (up to around 80 groups) and the data is interleaved between all of those groups
anyway, like i said, the eventual goal is to be able to do all of the work that filled up a whole sheet of paper in my head but i am a long way from that future and this is literally one of the first steps
So it’s up to you whether you want to give away licenses to your content. You have been led to believe that the necessary cost of using internet services is to give away a broad license. It’s not, you have options.
(1) Twitter Terms of Service: https://twitter.com/en/tos
(2) Bluesky Terms of Service: https://staging.bsky.app/support/tos
(3) Mastodon Privacy Policy (mastodon.social): https://mastodon.social/privacy-policy
"A social network is about the feature's you don't implement" - @nasser #causalislands
So the acronym #XR is just #VR, #AR, and other-R tech - the X has no meaning, it's just a placeholder. (In the OpenXR logo, the X is literally made up of an A and V shape). But, some folks call it "Extended Reality" which I have trouble aceepting: it feels like a backronym, really awkward. The beauty of XR was that it was an umbrella term over the other existing "reality" terms. But if I'm gonna lose the "X in XR has no specific meaning" debate... 😉
🔥 Hot take: XR stands for "trans reality" 🔥
a friend is nearly in tears because changing their KDE font to opendyslexic also changed the font ePubs render in in okular, meaning they can actually read their assignments.
this is why apps respecting your preferences is important, and it's why libre software (and KDE in particular) is so awesome.
unrelatedly, fuck electron.
Having convos on what the story for #WebMentions / #ActivityStream integration will look like for #DistributedPress
Hoping to iron out a cool new #p2p social layer on top of your #dweb sites later this year!
If I were designing a fediverse-with-accounts-delinked-from-instances, and if you've been watching this account long enough then you know I have, I would have at least as a fallback supported addressing an account by a hash of its signing keys or something. Does Bluesky have such a fallback? Will it? Does it have a way of detecting that the https signing key for a domain has suddenly changed? Will it?
Watching @expede do her talk on distributed compute while I mess with keybord bindings at @causalislands 🤯
Occult Enby that's making local-first software with peer to peer protocols, mesh networks, and the web.
Exploring what a local-first cyberspace might look like in my spare time.