It’s been a relatively awful month here, to tell the truth, but we’re still hanging on so far. Hopefully things will improve soon. In the meantime, I’m having as much fun as I can get away with without spending any real money. Mining old patents for interesting gadgets and ideas, for example…did you know that Google has a US Patent search? And unlike the USPTO, you can actually get a PDF of old patents, not just try to view them as “TIFF” images in a plugin that you may or may not have for your browser and may or may not even work if you do…However, my quest for old designs for industrial brewing equipment and ozone generators is not the subject of this particular post.
One thing I find I like to do for fun with my computer is sort of the opposite of what most people seem to do for fun with their computers. Most people seem to treat their computers as grossly overpriced video-game devices, whose main purpose is to connect people to fake worlds to interact with. “Computer games”. Bah. Humbug. The computer is the game, boys and girls. I like to instead find ways to connect my computer to the real world. I suppose that’s where I get my interest in neogeography, and Asterisk, and home automation (which I’ve only dabbled with but still fascinates me), and so forth.
My latest discovery of a cheap real-world/computer interface is barcodes.
More specifically, I’ve discovered that there’s finally a working project that lets me read and write Data Matrix barcodes. I ran into the project when it was mentioned in the
“New Projects” section of the March 2009 “Linux Journal” (you won’t be able to actually read the article at the link unless you’re either a subscriber, or you wait until they finally open it to the public, though you might also find a copy of the magazine at the bookstore). The actual project in question is libdmtx, and they provide some basic software for generating and, more importantly, decoding these barcodes, which means I can finally actually play with them myself.
There’s an irritating “functional fixedness” issue with these barcodes. There’s an implicit assumption that they are only for one of two things – either they are for inventory tracking (i.e. they encode serial numbers or some proprietary equivalent), which renders them essentially meaningless for anyone but the entity doing the tracking, or they may be used like the QRCode barcodes popular in Japan, which are usually assumed to be used specifically to encode a company’s website URL for “consumers” to decode with their cellphone cameras. Again: Humbug! “Consumers” can go conjugate themselves. “Consumers” are the screwups who made it possible to destroy the world economy, pollute the planet, and make vampire crap a popular “mainstream” genre. No, it’s time we paid a little less attention to catering to “consumers” and gave some love to “participants” instead.
See, both Data Matrix and QRCode barcodes can encode up to a kilobyte or so worth of any kind of data, which might then be stuck in just about any kind of place where someone might see it and take a picture of it (either for immediate decoding or for later).
If this sounds familiar to you, it may be that you remember hearing about a “Hobo Code“, which wandering homeless folks might use to encode visual messages for others with small pictograms. The catch is that since in that context you have to be able to keep the entire “dictionary” of what each symbol means in your head, you’re kind of limited to a small number of specific messages. On the other hand, one ought to be able to hypothetically cram a couple of SMS/”Twitter”-sized messages into a pattern of dots not much bigger than a postage stamp…or conversely stomped out on a giant scale in a wheat field like an especially nerdy “crop circle” just in time for Google Maps’ latest satellite imagery update.
I happened to be at an office-supply store today and was kind of surprised at the variety of things are now available to be shoved through a laser printer. Not only greeting cards and mailing labels, but a variety of self-adhesive and even refrigerator-magnet sheets. I saw they even had blank bumper stickers. Never mind serial numbers and “consumers” websites – you could stick all kinds of messages in all kinds of places with this.
A tip or warning for future diners at a restaurant (“Ask for ‘Chef Special #3’, it’s not on the menu but it’s great!” or “be nice to the waitress or the chef will spit in your food” for example) might be encoded on a small sticker or card and hidden underneath the table. You might encode your personal website URL or just a friendly greeting to be stuck to the inside cover of a Bookscrossing book along with it’s ID number. You might encode a time and place for a meeting as a geostring on printed on little magnetic squares to for members of the Secret Society (or Linux Users’ Group?) that you belong to, or to be included as an “album art” image in the metadata of a geolocated sound or video recording. You might compose original short poems or haiku and leave them in random business-card racks for the bemusement of technically-inclined strangers…
I think the stress must be getting to me, because it’s usually about this point in my thought processes that in a corner of my brain a voice pipes up, saying “What the hell’s wrong with you? This doesn’t sound like you at all! You’re starting to sound like one of those artsy-fartsy techno neo-hippies that gather at things like Burning Man or guest-post at BoingBoing, babbling about nerdy art projects and ‘culture’!”. Then another corner pipes up with “Hey, it might be kind of fun to go to Burning Man one of these years”, and then another pops up with “I like pie!” and everything erupts in chaos. Next thing I know, some indeterminate amount of time has gone by without me noticing and I suddenly realize I’m dangling from a rope over a highway wearing nothing but a pair of SpiderMan™ underpants and a thick coating of cocoa butter, still clutching a handful of LED “Throwies” and looking down at the nice folks offering me a nice warm jacket with extra-long wraparound sleeves…
But I feel MUCH better now…
Am I insane, or can any of you think of other uses for this? Or is that not an “or” question?…
Mad Science does not require insanity per se, but it is encouraged.
I think the secret society meeting details being distributed in such a manner is a brilliant application.
“Big Scientists Mtg. #7; Apr. 19 2009; City Museum, STL, MO; Caves.”
I prefer to think of myself as “differently sane”, or better still, “uniquely sane”. They said I was “mad”. Then they laughed at me. But I’ll show them. I’ll show them all! Then I shall be the one laughing!…
But until that day comes, I’ll content myself with projects like this. Personally, self-proclaimed computer-map dabbler that I am, I’d provide the time and location in a nice machine-parseable geostring, so my robotic minions will be able to easily determine where and when to meet me to assist with my coup in a timely manner.
Something like: “Big SciMtg#7 geostr:38.633467,-90.200479:20090419:geostr Caves”
Or, if you prefer:
I love the secret meetings idea! Combine this with some public key encryption and you instantly have a safe and secure method for one-way anonymous communication.
Imagine a small group of citizens living under an oppressive regime, each with an iPhone that can scan a barcode hidden beneath a park bench, decrypt the scrambled message (while also verifying the message’s origin), to discover the location of their next meeting.
To me it’s a cool idea, but no doubt there are people in the world for whom it could be so much more important.
“[…]under an oppressive regime, each with an iPhone[…]”
Isn’t that redundant?…
(Sorry, couldn’t resist…) Seriously though – hmmm…how much space does, say, a PGP signature take up? No more than a few hundred bytes? Seems do-able. It’d be a little more difficult to encrypt a message like this unless everyone shared the same private key (somewhat defeating the purpose of PKI) but for leaving a message for a specific recipient it could work.
Heck – just using it to encode one’s public key might be a handy use, come to think of it. I may have to try that this evening…
Oh, and thanks for all the work so far on libdtmx! Somewhere on my todo list is putting together a script that’ll grab an image from my EeePC’s embedded webcam and feed it to dtmxread for automatic decoding.
“Isn’t that redundant?…”
🙂 You crack me up. I think I’ll explore The Big Room a bit deeper to see what I’ve been missing.
[…]hmmm…how much space does, say, a PGP signature take up? No more than a few hundred bytes? Seems do-able.[…]
You might be interested in what these guys are doing:
http://guptaoption.com/cheapid/
[…]Somewhere on my todo list is putting together a script that’ll grab an image from my EeePC’s embedded webcam and feed it to dtmxread for automatic decoding.[…]
Since your post a couple new efforts have appeared that might save you some effort:
http://sourceforge.net/projects/pydmscanner/
http://git.tal.org/gitweb.cgi?p=gst-dmtx.git;a=summary
There. That should be good for a couple days’ worth of distractions.
Hey, welcome back and thanks for the update! I’ll have to check those projects out.
I had also gone out and picked up some sheets of “business card” stock to feed through my printer, though I haven’t yet managed to get around to coming up with something to put on them (in secret DataMatrix code, of course).
I’ve also considered trying to embed a geostring or other general information as a datamatrix “watermark” on photos that I take, though I haven’t yet come up with a good way to do that – getting a barcode into the photo in such a way that it’s obvious enough for people to see that it’s there (and therefore know they should scan the photo to get the secret message) but not so large or obscuring as to get in the way of the actual photo subject doesn’t seem to be a trivial task.
Hmmm…I wonder how hard it would be to turn libdmtx into a firefox plugin (right-click on image->”Scan for Datamatrix barcode”)?