Computer: Algorithm
Human Readable 2D Barcode   (0)  [vote for, against]
Human Readable Font with inbuilt machine error correction.

Came across a tiny bitmap font called “Tom Thumb”.

It's only about 4x6 sized font. And got me thinking...

Would it be possible to print this tiny font, along with error correction information? And maybe some metadata (e.g. this line is contact details)? E.g. maybe the error correction information could be the 'ruled lines" below the characters.

What this allows, is for transparent barcodes. So you no longer wonder if that barcodes is going to give you computer STDs.

----

Pros: Transparency. Archivability. More compact than text+QR

Cons: Increase processing power needed. Not much font flexibility (Ugly tiny bitmap font). Not as compact as QR or DataMatrix

----

Other applications:

Could be useful for archiving text in microfilms, in such a way that it can be printed small, but have error corrections facilities.
-- mofosyne, Oct 29 2014

A very tiny, monospace, bitmap font 23 Jan 2010 http://robey.lag.ne...monospace-font.html
[mofosyne, Oct 29 2014]

Hamming code http://en.wikipedia.org/wiki/Hamming_code
Maybe we encode this under each character [mofosyne, Oct 29 2014]

Malicious QR codes http://www.bullguar...cious-qr-codes.aspx
[mofosyne, Oct 29 2014]

Forever font http://blog.kenperlin.com/?p=3099
font for microfilm. Just missing hamming error correction. [mofosyne, Oct 29 2014]

Somehow I thought a human-readable bar code was the Board of Health regulations.
-- Vernon, Oct 29 2014


A long time ago, on an operating system far away, I once came across a module called TinyText, which drew tiny 'Tom Thumb'-like writing, at I think 5 rows 3 columns (with an extra column spacing between chars)
To my eyes it had a couple of disadvantages - it only drew capital letters and numbers and probably the more common punctuation, and it was a fixed-width font.

The file was only maybe 2kb or so.
I looked at the source (or perhaps I reverse-engineered it, I forget), and realised the font was encoded at 1 byte per block. Let's say this took up 3*5*50=750 bytes.
I re-coded it to use 1 bit per block.

Then I started to obsess over it.
I changed the font so it was proportionally spaced. Overall this saves screen-space, but some chars benefit from up to 5 columns.
I added every character in the ASCII 7-bit table.
I optimised the code for size
Eventually, the characters were each encoded in 16 bits. Yes, even the wide ones. (Fortunately the 5-column chars ( 'M', 'm', 'W', 'w' and '#' are all alternating column, so can be encoded in two columns, plus flags.)
If I remember correctly, the resultant file was 440 bytes.

I don't think I ever did anything with it. And it's not particularly relevant here, but it was fun.
-- Loris, Oct 29 2014


Got a copy of the font you made? Be interested to see.

Not sure how you would do proportionally spaced fonts, that would be friendly for error corrections.

Also, had another thought. The error correction strip, should probably be generated for a string of message. Not per character as I initially thought. This is since you have to deal with situation where an entire character is messed up.
-- mofosyne, Oct 29 2014


I'm afraid I don't have a copy of it. Well I do, but I haven't turned the computer on in some years. However, there isn't all that much creativity in the fonts at these sizes. There are a few stylistic choices and size/legibility tradeoffs, but they're going to come out looking something like Tom Thumb. (I see that has true descenders in a 6-tall scheme, which is a font-wide decision.)

Regarding error correction, I think you need to be careful. If you have too much then it would be possible to say one thing human-legibly, but something else in the error-corrected version. This would re-introduce the malevolent code risk.
If you have any error correction /at all/, it would be trivially possible to give typo links.
You could have error detection but not correction, I suppose. If you had detection on rows, columns and blocks ('sudoku style') you could highlight mis-read chars for re-scan or manual interpretation.
-- Loris, Oct 29 2014


Interesting, but even if you can read the URL, there no way to know for sure if it is safe. Maybe someone hacked a site and rather than defacing it, just added a web page with malicious content. the site owner might not notice for a long time. A QR code linking to it would look legitimate.

The solution to infection through QR codes is to fix the security holes in the browser so a malicious web site can't actually hurt the machine trying to view it.
-- scad mientist, Oct 29 2014



random, halfbakery