HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
za3k
qr-backup
Python2024–2026
za3k / qr-backup

qr-backup

Paper backup of files using QR codes

3Distinct people
4Mentions
0Explicit recommenders
188GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Paper backup of files using QR codes

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month4 dated mentions

Observed mentions: 2024-02-19 15:22:00 UTC to 2026-02-18 19:44:18 UTC.

012024-02-01 00:00:00 UTC to 2024-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsFeb 20242024-03-01 00:00:00 UTC to 2024-04-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-04-01 00:00:00 UTC to 2024-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-05-01 00:00:00 UTC to 2024-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-06-01 00:00:00 UTC to 2024-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-07-01 00:00:00 UTC to 2024-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-08-01 00:00:00 UTC to 2024-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-09-01 00:00:00 UTC to 2024-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-10-01 00:00:00 UTC to 2024-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-11-01 00:00:00 UTC to 2024-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-12-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2025-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-02-01 00:00:00 UTC to 2025-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsFeb 20252025-03-01 00:00:00 UTC to 2025-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-01 00:00:00 UTC to 2025-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-05-01 00:00:00 UTC to 2025-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-01 00:00:00 UTC to 2025-07-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-07-01 00:00:00 UTC to 2025-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-01 00:00:00 UTC to 2025-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-01 00:00:00 UTC to 2025-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-10-01 00:00:00 UTC to 2025-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-01 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2026-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-01 00:00:00 UTC to 2026-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsFeb 2026

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 20242024-02-01 00:00:00 UTC2024-03-01 00:00:00 UTC101
Mar 20242024-03-01 00:00:00 UTC2024-04-01 00:00:00 UTC101
Apr 20242024-04-01 00:00:00 UTC2024-05-01 00:00:00 UTC000
May 20242024-05-01 00:00:00 UTC2024-06-01 00:00:00 UTC000
Jun 20242024-06-01 00:00:00 UTC2024-07-01 00:00:00 UTC000
Jul 20242024-07-01 00:00:00 UTC2024-08-01 00:00:00 UTC000
Aug 20242024-08-01 00:00:00 UTC2024-09-01 00:00:00 UTC000
Sep 20242024-09-01 00:00:00 UTC2024-10-01 00:00:00 UTC000
Oct 20242024-10-01 00:00:00 UTC2024-11-01 00:00:00 UTC000
Nov 20242024-11-01 00:00:00 UTC2024-12-01 00:00:00 UTC000
Dec 20242024-12-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
Jan 20252025-01-01 00:00:00 UTC2025-02-01 00:00:00 UTC000
Feb 20252025-02-01 00:00:00 UTC2025-03-01 00:00:00 UTC000
Mar 20252025-03-01 00:00:00 UTC2025-04-01 00:00:00 UTC000
Apr 20252025-04-01 00:00:00 UTC2025-05-01 00:00:00 UTC000
May 20252025-05-01 00:00:00 UTC2025-06-01 00:00:00 UTC000
Jun 20252025-06-01 00:00:00 UTC2025-07-01 00:00:00 UTC101
Jul 20252025-07-01 00:00:00 UTC2025-08-01 00:00:00 UTC000
Aug 20252025-08-01 00:00:00 UTC2025-09-01 00:00:00 UTC000
Sep 20252025-09-01 00:00:00 UTC2025-10-01 00:00:00 UTC000
Oct 20252025-10-01 00:00:00 UTC2025-11-01 00:00:00 UTC000
Nov 20252025-11-01 00:00:00 UTC2025-12-01 00:00:00 UTC000
Dec 20252025-12-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
Jan 20262026-01-01 00:00:00 UTC2026-02-01 00:00:00 UTC000
Feb 20262026-02-01 00:00:00 UTC2026-03-01 00:00:00 UTC101

What Hacker News says

4 sources
I've experimented with this using one of the commercial print-on-demand services. Not filament, a binder-jet sintering marine stainless steel type of process, IIRC. Slightly modified Noto Sans Extracondensed font with... Let me check the files... 0.1mm line width, 0.45mm lower-case "m" width, dense letter and line spacing, gets 3KB ASCII per square inch. ...Engrave, don't emboss, or the letters will come off with impact and corrosion! Filling the engraved letters with black wax makes it optically legible under a good handheld magnifying glass. Then rub with vaseline/mineral oil/wax/ACF-50, mount on a brass holder (check relative galvanic corrosion order!), store pressed against aluminium or zinc sheet sacrificial anodes Just In Case(TM), inside polyamide or ABS case. Should last basically forever. I designed it for manual reading, so the
Read the rest
holder doubles as the "reader". Basically just a spindle going through a hole in the disk, holding a margin in the edge and center of the disk. The text is a spiral, so you can spin the disk to help keep the viewed region aligned under a higher-power microscope. For home printing, probably the way to go is Formlabs wax resin (or equivalent), then either learn brass casting yourself or hire a jeweller to do it. Though you won't get as good resolution/density as the metal process I tried. And really, laser engraving'll probably be cheaper and better. Consider if good-quality paper and ink, maybe laminated, inside a Pelican case'll be more practical. I wouldn't personally trust any of the common plastic printing materials to hold up for important data under oxygen, UV, fatigue, heat cycles. Are you sure the resin's not overcured or undercured, the filament fused correctly and won't delaminate, it won't reach the glass transition temperature during summer? And bacteria is already evolving to eat plastics. Maybe SLS/MJF polyamide's okay, but in that case, I'm not sure I'd trust the sintered structure for small details (and they don't have great resolution anyway). > The assumption was that using common 3D printer measurement tools (like for bed-leveling) would provide a way to read back whatever data was encoded onto the surface. > And then, obviously, if that proof of concept exists, I'd wonder about some kind of advanced version that used specialized equipment for the reading (and possibly the writing/printing). At these small amounts of data, specialized read hardware just adds risk IMO. Plain text can be read manually or with OCR. QR codes can automate reading with a standard flatbed scanner or smartphone camera. Consider ideas for encoding: Plain text, B64, hex, Reed-Solomon codes... 1-bit depth structure turns most of 3D printing's storage density into redundancy, but anything truly 3D adds read risk. If you insist on automating reading, QR codes will get you error correction, encode/decode software, and COTS hardware for "free". Personally I think human readability is a big advantage too. Maybe OCR text, and put error codes in a QR beside the text for byte-perfect computer input? Compare: Memory of Mankind uses ceramic tablets in a desert cave. Arch Mission Foundation project uses holographic glass. Long Now Rosetta Disk engraves with electron beam on nickel, IIRC was/is also commercially available for personallized jewellery. M-Disc and Bluray (HTL?) have modern digital storage density, good stability, work with commodity hardware. ...See design considerations of prior art for digital storage in 2D, naïve 3D version is to just use these as a heightmap: - https://github.com/cyphar/paperback - https://github.com/za3k/qr-backup/ - https://github.com/colindean/optar - https://github.com/Sjlver/psst - https://github.com/schroeding/paperstorage - https://github.com/intra2net/paperbackup Also, don't sleep on the centuries of work done by archivists and historians! The top comment is right; acid-free archival paper has very good overall cost, density, stability.
In Ask HN: Are there examples of 3D printing data onto physical surfaces?
Acid-free paper has a lot to recommend it: an archival lifespan of about 1000 years, low cost, and widespread equipment for printing it en masse very cheaply. Other media are superior in one or another way, but all are far more expensive. It's probably worth mentioning https://github.com/za3k/qr-backup/ which is tested in practice rather than merely theoretical. It doesn't achieve very high density, though. The theoretical information capacity of an uncoated 600dpi laser-printed page ought to be close to 600×600 bits per square inch, 23.6×23.6 bits per square millimeter in modern units. This is 33.7 megabits per US letter page or 34.8 megabits per A4 page. The bit error rate of a laser printer is quite low, under 1%, and the margins are maybe another 5% at most. So modest ECC ought to be able to deliver most of that channel capacity
Read the rest
in practice. QR codes and OCR apparently don't come close. As an exercise, 13 years ago, I designed a proportional 1-bit-deep pixel font for printable ASCII, based on Janne Kujala's work, that averages about 3½×6 pixels. This is about 20 bits per character, so a letter-sized page should hold almost a megabyte of human-readable ASCII text. I generated the King James Bible in it at 600dpi. It comes to about four pages. Printed out in a half-assed way at double size (300dpi) on a 600dpi printer, you can read it pretty easily with a good magnifying glass. I have not yet been able to get an even partly readable printout at full resolution. If someone else tries it, I'm interested in hearing your results. http://canonical.org/~kragen/bible-columns.png (warning, 93+-megapixel image, 4866×19254) http://canonical.org/~kragen/bible-columns-320x200.png (small excerpt from the above) http://canonical.org/~kragen/sw/netbook-misc-devel/6-pixel-1... (the font as a 374×7 image) http://canonical.org/~kragen/sw/netbook-misc-devel/propfontr... (the image generation program I regret having written in Python because it won't run in current Python) http://canonical.org/~kragen/sw/netbook-misc-devel/bible-pg1... (test input text, public domain everywhere except the UK)
In How to Store Data on Paper?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.