h a l f b a k e r yWith moderate power, comes moderate responsibility.
add, search, annotate, link, view, overview, recent, by name, random
news, help, about, links, report a problem
browse anonymously,
or get an account
and write.
register,
|
|
|
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.
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]
[link]
|
|
Somehow I thought a human-readable bar code was the Board of
Health regulations. |
|
|
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
view it. |
|
| |