this post was submitted on 10 Dec 2024
360 points (98.9% liked)
unix_surrealism
2767 readers
2 users here now
one should not chase the electric dream
This community is for sharing original content related to computers, content, surrealism and wizardry.
Now that you're a surrealist, become a Techno-Mage:
- https://openbsd.org/
- https://freebsd.org/
- https://netbsd.org/
- https://dragonflybsd.org/
- https://9front.org/
- https://100r.co/site/uxn.html
- https://distrowatch.org/
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Contrary to popular belief, this wasn't made by making a very error-resistant code and sticking an image on top, as most "Logo-QR" codes are made today. AFAIK, the code is not only error-free but also up to spec*, unlike this Bad Apple one that, while also impressive, uses non-standard padding bytes after the actual data.
* Except the XOR mask pattern is not chosen to minimize problematic patterns like solid color areas in the result, obviously – but I'm not buying a $270 standard just to see if it says "should" or "must".
https://analognowhere.com/#815956000955341196626324525376426508044011799516042661339518686677364520931952256954853578523008163894957991180853268570682643959895730628162682682661506593341503383997517938597366696669325062682725512003951964556693309309170041341332991998000490597366
The URL is very interesting. I'm trying to reverse-engineer the creation process of this code.
Here it is "unmasked":
There can be multiple data types in a QR code. This one first has a bytes section, which readers interpret as text, and then a numeric section. Blue is the text part of the URL, red-orange is the numeric part, and green is error correction.
The raw data in the QR code is:
Note that the numeric encoding uses 10 bits for each group of 3 digits. Let's call it triplet-BCD. The last two bits are only to round up the data section to a whole number of bytes, specifically these 88 bytes:
What follows in the QR code is error correction bytes, 36 of them. The numbers in the right and mid-upper section of the image must have been chosen so that the error correction bytes end up forming the left half of the face, presumably via lots of trial-and-error. However, what I find very odd is that the decimal number the numeric section encodes, which you see at the end of the URL, translates to this in hex:
This is not a floating point error, the triplet-BCD-encoded data really produces 501222037467851 × 2^788^, a very round number in binary!! I have no idea how that coincides with so many digits being used as part of the face in the weird triplet-BCD encoding.
Also, I haven't been able to replicate the error correction algorithm: I think it's the same as
reedsolo
in Python butdoes not yield the expected error correction bytes I can see in the unmasked code (green)...