qr-backup bounties

I am offering two bounties to improve qr-backup. I think both are worth doing regardless.

My rewards are time-in-trade. You can use 5 or 10 hours of my time however you like. I usually charge over $100/hr, so this is a good deal.

If the github bugs are open, the bounties are unclaimed. I will try to update this post when they are claimed, too.

Bounty 1: Improve QR code scanning on Linux

Chances are, there is exactly one command-line program your distro has available to scan QR codes: zbar

Even on digitally-generated images, which are perfectly correct, pixel-aligned, and generally perfect, it still fails to read the codes sometimes. At least one-third of the bugs in the issue tracker are about this problem.

The bounty is to fix this issue in zbar, getting it to read QR codes with a 0% failure rate. The current failure rate is at least 0.1%.

A reproduction case and some debugging tips are in the bounty details.

The reward is 10 hours of my time.

Bounty 2: Code a one-page short C program to restore qr-backup backups

qr-backup is designed to save to paper, and restore from the command-line.

but, it's possible that someday we might lose all the nice infrastructure we have today.

  • you want to restore your backup, but you're poor and don't have an internet connection
  • no one runs "unix" any more. we just have neural meshes
  • it's been 50 years and you can't figure out how to install all these programs no one has heard of like "zbar" and "qr-backup"
  • your country has become a totalitarian state, and you can't be seen downloading "archiving" programs.
  • you are a lizard-person who has recovered piles of paper from a previous civilization. what secrets could they hold?

who knows! wouldn't it be great if you could still restore?

this feature request is to add a printable, 1-page short C program which you can type in by hand, compile, and use to restore backups from an image.


This is a very difficult technical challenge in minimization. You should provide a 1-page (2KB) short version of qr-backup's restore process, written in C. Library use is not allowed. Arguments will be accepted for other short programs if 2KB is impossible.

Details are in the bounty description.

A short version of the steps:

  • Read QR codes
  • Sort them, remove duplicates
  • Base64 decode each code
  • Erasure coding
  • Append and truncate
  • Decrypt
  • Decompress
  • Print SHA256 checksum

qr-backup actually prints a bash one-liner to do the restore, if you prefer to reference that.

Each of the steps is done by qr-backup in the most standard way possible. Decompression calls zcat, for example. You should be able to re-use existing code easily, the challenge is just to shrink it.

The reward is 5 hours of my time and everlasting fame.

Tagged . Bookmark the permalink.