this post was submitted on 10 Dec 2024
19 points (100.0% liked)
unix_surrealism
2663 readers
140 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)...