Digital Semaphore: the 2D Tag


I'm a 2D tag freak. These squares of dots and rectangles seem as exotic as hieroglyphics, even though they're as mundane as yesterday's junk mail. A 2D tag (sometimes called a 2D barcode, even though there aren't any bars) uses all two glorious dimensions to encode data. This provides a much denser blob of information. A 1D barcode might incorporate just a few digits; a 2D code occupying the same space, dozens to hundreds of characters. The most common format is QR Code, although there are several others. And the most common text to be encoded is a URL. (QR Code is patented and has other protections, but creator Denso-Wave has foresworn enforcement.)

Made popular early in the oughties in Japan, where handset makers, advertisers, and telecom firms collaborated to build an end-to-end QR Code ecosystem, we're just now starting to see widespread appearances of codes in the United States and Europe. There have been plenty of pilot projects, but it's clear that casual use in media, ads, billboards, and kiosks is growing. Planet Money, the NPR podcast, mentioned a few days ago that the designer T-shirt project the show's staff is developing will be superhot because they'll put a QR Code on the front (listen at mark 18:18).

QR Codes have no particular scale, either: they are limited in interpretation by the resolution and clarity of the camera taking the picture, although you can encode with extra error correction to cope with poor cameras. 2D tags are actually more easily interpreted by phone cameras than 1D barcodes, which were designed to work with lasers. Diffraction sometimes combined with the low resolution on a fixed-focus lens makes it impossible at the necessary focal distance to measure correctly all of the gaps and lines in a 1D barcode. 2D codes are designed to work with cameras, and take diffraction into account.

I like QR Codes because they are this weird amalgam of analog and digital. They're like a universal a-to-d converter, whether the analog part is a page in a magazine, an image on a monitor, or a ginormous tag on a billboard hundreds of feet away. It's like semaphore for the digital age.

I use QR Codes when I want to arc the gap between one medium and another. For instance, I'm reading an article in a Web browser on my desktop computer, and want to continue reading it on my phone. I could copy the URL, switch to my email program, create a new message to myself, paste it in, launch my phone's mail program, retrieve email, open the message, and click. Or I could pop up a QR Code on my desktop, tap a couple times to bring up a 2D code reader on my phone, and tap to open the URL. It seems more efficient, but perhaps that's just me.

Mainstream media and advertising seems to have finally decided the time is ripe, although when you see a QR Code in print, there's typically an explanation alongside it. People might otherwise wonder, is Proctor & Gamble trying to give me a Rorschach? I see a bunny! For advertisers and media alike, QR Codes provide precise source tracking: an ad with a custom QR Code in a bus station in Pittsburgh, or a run of 10,000 copies of a magazine regionally distributed in California. QR Codes can be inkjet printed just like custom ad copy is now in some publications; you could be tracked as an individual if you have a magazine or newspaper subscription, if it were worth it to the advertiser.

The less sinister part is that software is readily available for cheap or free for stupid and smartphones alike. Google incorporated QR Codes directly into the Android Market by using and encouraging the use of 2D tags to link to apps. On the iPhone, I prefer QuickMark 4 (99 cents), which can also generate QR Codes. There are plenty of others, including eBay's RedLaser, which is designed for product comparisons, but can also read 1D barcodes and QR Codes. ScanBuy has its own code system, but also supports QR Code in its software, which is available nearly every smartphone platform and a number of Sprint feature phones.

The one problem I've had with QR Codes is generating them. On a couple of Web sites which I run or develop for, I was using a quirky perl library that hasn't been updated in years, and for which the licensing and provenance were murky. The fine folks at Kaywa offer an online QR Code maker, but the company asks it be used for noncommercial purposes, and it's a round-trip to another Web site if you're just trying to grab an URL.

A few days ago, however, my friend Lex Friedman--co-author of the Snuggie Sutra--and I were talking about creating a Safari extension, as he has a few under his belt. He found that Google's charts site (Chart API) lets you send parameters in a URL for a QR Code that Google returns in real time as an image. You can programmatically incorporate such URLs to have them generated for yourself or users. (Google doesn't limit chart API calls, but asks you contact them for quantities over 250,000 per day.)

javascript_sniplet.pngLex turned this into a nifty bookmarklet that worked across all the browsers we tested to pop up a QR Code of the current page's URL. Copy the code from the text below or snap a picture of the code at right, then create a new bookmark, pasting in the code into the location field. Stick that in your bookmark bar, and you can make codes with a click.


I don't think QR Codes are revolutionary--they're 15 years old, for cripes' sake--but they are useful at avoiding retyping material to move from one place to another. With Google's Chart API, even the tiniest Web site could add their use at no cost. We might be ready to catch up with Japan ten years ago.



  1. We’ve just completed a year-long museum project where students navigate between interactive kiosks while the system tracks their progress. This museum is unusual in that all student visitors must wear white cotton gloves, partly to reinforce the heritage experience, and partly to protect the building from a hundred-thousand inquisitive hands. The white gloves begged to be used as a background for unique 2D barcodes. Unfortunately we couldn’t get a high-enough read success rate owing to folds in the material – ended up falling back on RFID. But I still like barcodes …

    Aesthetically, the circular shot-code ( is attractive … though I professionally try to avoid closed systems.

  2. Agreed. QR Codes are awesome. One interesting use of them in Tokyo was to put them in clubs so after you had paid the full cover charge the first time you could then use your phone to scan the code inside and get on the VIP list for next time (Difficult when the whole site is in Japanese).

    I added one to some stickers I made and went around tokyo slapping up earlier this year. It’s a great way of keeping the visuals cleaner.

    As far as I can tell the following sites can all generate QR-codes for free:

    QR stuff lets you choose the colour, too.

  3. It’s not just handy for moving between media–it’s handy for just plain moving.

    I’m using QR codes right now in my apartment move. I made an Excel spreadsheet inventory for all the boxes, with columns for box #, room and contents. The label printer I have has layout software which turns the ‘contents’ data into a QR code. Now, instead of wondering what is in which box, I can use QuickMark to read the code.

    Should make unpacking easier. In theory, anyway. I’m still waiting for the movers to bring my stuff. :(

  4. It’s annoyingly difficult to read a QR code without a fancy smartphone. It seems strange to me that there are tons and tons of QR reader apps for devices with 667Mhz CPU’s, but it’s just about impossible for my Dual core 2.7 Ghz et cetera et cetera machine to do the same thing.

  5. A year or so ago I had created a Yahoo Pipes flow that generated random UUID’s and plugged them into Google’s chart API for QRCodes; It worked well until Google specifically shut off my Pipe’s access to the chart API with a message that programatically linking to the API via a third party was specifically forbidden by the terms of service. (When you make your own API calls / fetch a QRCode from Google, make sure it’s you doing it.)

    I’d been finding a way to generate database tracking labels for real-world objects, for inventory management purposes (from large corporate applications to home moves, this would be awesome).

  6. I’ve been playing with qrcodes and most recently the google charts api for making them for some time now.

    check out sleejay dot com (use chrome, its my html5 testbed and its amaaaazing lol)

  7. QR Codes SUCK. Sorry, I lived in Japan for many years and I never saw a single person scan a QR code ever even though they were everywhere.

    It takes more time to get out your phone, find the QR scanning app or the camera and put it in scanning mode, point it at the code, adjust your phone until the code fills the frame at the appropriate size, press “take” and then wait for it to figure out the code then it does to type in some code or even a normal url like

    1. QR Codes SUCK. Sorry, I lived in Japan for many years and I never saw a single person scan a QR code ever even though they were everywhere.

      It seems you had boring friends and a crap phone. All of my Jap phones handled them without issue and the QR code reader was something like 2 button presses from the home screen:

      To claim you can type a long URL on a mobile device quicker than you can scan the QR codes is nothing but pure imagination.

  8. That is an AWESOME ‘app’ (for lack of a better word, even though ‘hack’ would be more correct)!

    For the past couple of years I’ve been thinking about seamless computing, what with a desktop, a laptop/netbook and a smartphone (used to be a Palm IIIc and a phone, no laptop).
    I always thought of a dedicated “focus” button on each machine, which you would push to ‘steal’ focus of your computing actions to your current device.
    Hardware with the matching software would then transfer a short burst of data (maybe with accompanying larger datasets to sync the data, or even just a cloud-storage adress) to the device with focus and you would then be using your phone to (edit the same document/3d dataset)/(read the document or webpage from where you were)/(show the pictures you wanted to show).

    This QR hack allows me to do that, at least with webpages :) Thank you!

    /me off to the bathroom with the other BB stories I wanted to read on my smartphone, whilst thinking “never underestimate analog optical data transmission” :)

  9. I used to think it was pretty trippy that there is an enormously large but finite number of images that can be displayed by a digital screen of a given resolution.

  10. QR codes are fantastic fun. I was boing’d for a similar fascination six years ago:

    The generator’s a bit unloved, I use QuickMark’s generator now:

    I put QRCodes on my business cards. Scan with a reader and your phone is immediately populated with all my contact details: web, email, phone, etc. Convenient for the three people who use ’em, and it makes me look cool. Potentially.

    Additionally, Telstra in Australia started hyping them, but it basically went nowhere:

    And if you’re interested in an alternative for idiots, Microsoft made one:

  11. In our hackerspace in Vienna, we found a probably useful application. We create Labelz, that we put on every thingy that just is in the lab, so people know what the heck this is, who is responsible, if you can borrow it, and weather you can dump it. This actually became a problem, as there were too many people to allow shared human memory to keep track of stuff. (current creation site, might change)

    Although the original idea was that the info is redundant, QR-Code and Human Readable, 95% usage is of the latter kind. Still, you can cut the label, use either the qr or text, and label your stuff in an less pedantic way.

    However, you cannot shrink the labelz currently.

  12. *grumble grumble* visual pollution *grumble grumble*

    No really, they are the digital equivalent of spit on the ground. Ugly and unnecessary.

  13. I just started using QR codes in white papers for one of my clients. Readers can scan the tags to get additional information or related papers. It’s a time saver if the white paper is printed. In the PDF the tags are a bit redundant.

    Also, I recently saw a QR code tag on a billboard in the Denver airport. Scanning it lets you download The Call of the Wild or The Autobiography of Ben Franklin.

  14. The libqrencode package ( appears to be a nice usable open-source thing for generating the qrcodes — even comes with a unix-friendly command line app for spewing pngs. Precisely what I needed. Now I just need to figure out what the maximum number of characters I can encode in a single glyph is, and I can re-encode a book into a series of glyphs ;-).

  15. I use the Firefox addon Mobile Barcoder a lot:

    It gives you a little box to mouse over that creates a QR code of the current page, and also adds the option to create a QR code when you right click anything. Really helpful for getting around the web filter at work that blocks download sites and executable files.

  16. what I want is a plugin that will allow me to highlight an address in my browser, click something, & get a popup with a QR code I can then scan with my phone for GPS navigation. o

  17. I’ve been using these for a while – I think they’re fascinating. I had a reader on my old Palm Centro, and now i have an Android phone I use them more than ever for grabbing links to apps.

    I notice that both Microsoft and other companies have created other designs based on circles and triangles. Is the QR standard open?

    I wrote about a recent use here:

    “I’ve been wondering if there was a way to generate a QR Code where you fixed a few pixels to create an image, then let the generator use the rest to create the code. You’d have to use a larger grid resolution than would otherwise be necessary, because you’re using the extra pixels for your image.
    How cool would it be to have a working QR code that contained your face, logo, or monogram?”

    1. I’ve seen some companies do this kind of thing, notably the BBC (google BBC QRcode on images). I think it’s simply a case of turning up the error correction and then putting your image on the QRCode, and testing lather-rinse-repeat until you get an arrangement that works.

  18. Has anyone seen any non-biased analytics on how much people use these?

    I see the codes being used, but I rarely see anyone actually scanning them.

Comments are closed.