h a l f b a k e r y
Faster than a stationary bullet.
add, search, annotate, link, view, overview, recent, by name, random
news, help, about, links, report a problem
or get an account
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
correction information? And maybe some metadata (e.g.
this line is contact details)? E.g. maybe the error
information could be the 'ruled lines" below the
What this allows, is for transparent barcodes. So you no
longer wonder if that barcodes is going to give you
Pros: Transparency. Archivability. More compact than
Cons: Increase processing power needed. Not much font
flexibility (Ugly tiny bitmap font). Not as compact as QR
Could be useful for archiving text in microfilms, in such a
way that it can be printed small, but have error
A very tiny, monospace, bitmap font 23 Jan 2010
[mofosyne, Oct 29 2014]
Maybe we encode this under each character [mofosyne, Oct 29 2014]
Malicious QR codes
[mofosyne, Oct 29 2014]
font for microfilm. Just missing hamming error correction. [mofosyne, Oct 29 2014]
||Somehow I thought a human-readable bar code was the Board of
||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.
||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.
||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.
||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