By John R Joyce, Ph.D
http://www.scientificcomputing.comThe Quick Response Code was created by Denso-Wave Incorporated,1 a subsidiary of Toyota, in 1994 and is a two-dimensional bar code. I mention it because it has rapidly become one of the most commonly publicly used matrix codes, though you might be more familiar with it under the Denso-Wave trademark of QR Code. If you were in attendance at Pittcon 2012, despite a tweet from someone saying that they hadn’t seen a QR code anywhere, you will no doubt have noticed that they were everywhere! You could find them on everything; including business cards, programs, part of exhibit booths, and even printed on T-shirts.This growing popularity is a result of their flexibility, data capacity and the explosion in the number of smart phones available. While the use of QR codes in the United States has grown rapidly, we are well behind their use in Japan, where it is found everywhere, with places such as the Netherlands and South Korea only a little behind.
QR codes come in a variety of versions with different data capacities, but always appear in a square pattern containing a number of fixed data elements. These are illustrated in th embedded Wikipedia graphic in Figure 1.2Because of the encoding used, the capacity for a given version varies with the specific data to be stored in it. For example, Version 1 consists of a 21 by 21 matrix and can hold between 10 and 25 characters. Version 4 consists of a 33 by 33 matrix and can hold between 67 and 114 characters. By the time you reach Version 40, with a 177 by 177 matrix, the code can contain between 1852 to 4296 characters. If you are only encoding numbers, instead of alpha-numeric characters, the maximum number of digits that can be encoded rises to 7,089. This gives you the ability to encode a great deal of information, but the numbers above only tell part of the story.
|Figure 2: Customized QR Code from 360i|
Using Reed–Solomon error correction, damaged codes still can be read. How much damage can be absorbed depends on the level of error correction used. For example, Level L error correction allows seven percent of the code words to be restored, while Level H error correction allows 30 percent of the code words to be restored.
However, this code restoration capability does come at a price. For code restoration to work, redundant data must be included in the code, meaning that fewer data characters can be encoded. The bottom line is that how much you can actually store in this code, as with so many things in life, is a trade-off. The full description of version 2 of this code can be found in standard ISO/IEC 18004:2006.3Because this code is a general-purpose code, you will find it used for many purposes. One of the simplest is just embedding a URL, allowing you to retrieve the bar code with a scanning application and go directly to a Web site. Alternately, they might simply display a message to the user or provide a block of formatted data, such as a vCard. The latter option, originally proposed as the Versitcard by the Versit Consortium in 1995,4 allows you to exchange virtual business cards, though these codes can contain much more information than your typical business card. The original standard, adopted as RFC2425.5,6 has gone through several versions, with the XML representation sometimes being referred to as an xCard.7 Most electronic address book programs, among others, allow you to easily import and export contact information as vCards.
While the mere fact that you don’t have to manually enter the information contained in a vCard into your device gives them a beauty of their own, since they have been adopted so widely as a marketing tool, public relations and advertising agencies have seen no reason to stop there. By taking advantage of the error correction features of this symbology, you are frequently seeing organizations deliberately ‘defacing’ their QR Code by incorporating their logo and other graphic elements into the code, such as one from 360i shown in Figure 2.8
|Figure 3: vCard for Suzanne Tracy|
While it is possible to calculate which areas in a code are least likely to cause issues, it appears that most designers simply follow a process of trial and error. This is not to say that there are no rules for customizing a QR Code9 or enhancing its attractiveness,10 just that it’s sometimes easier and more cost-effective to just try it. However, the general recommendation is to always try reading your modified code back with the reader for which it’s intended to make sure it still works!For those who would like to experiment with creating your own QR Codes, there are multiple Web sites that will allow you to create one for free. QRStuff11 hosts one of the more flexible creation pages that I’ve encountered. It allows you to specify the data type to be contained in the code, ranging from Web site URLs through Facebook links, Plain Text and vCalendar entries, to Paypal Buy Now Links. The codes it creates will appear similar to this one, containing contact information for Scientific Computing’s Editor-in-Chief.
If you don’t have a smart phone with appropriate software to check the quality of your work, there are a number of free decoding Web pages on line as well, such as the one from the Open Source ZXing (“Zebra Crossing”) project,12 For that matter, not all smart phones come bundled with QR decoders. However, between your smart phone vendor, the Android Store and the Web in general, you will find more than enough choices. Two Android apps with which I’ve had good luck and found very flexible are the ZXing Bar Code Scanner13 and Uber Coders’ UberScanner.14
ORG;CHARSET=utf-8:Advantage Business Media
ADR;WORK;CHARSET=utf-8:;;100 Enterprise Drive, Suite 600;Rockaway;NJ;07866-0192;USA
|Results returned from sample QR Code by the ZXing Decoder Online Web page|
A caveat to keep in mind though, before you start snapping every QR Code in sight, is that you can embed links to anything in a QR Code. This means that, while a code may well take you to a marvelously useful site, it could just as easily take you to a malware site as well. The Bad Guys are, well, bad, not necessarily stupid. They can take advantage of nifty technology as well as anyone else, so when you snap a code, take a second to check to what it decodes before you take an unexpected ride in cyberspace!References
1. About 2D Code | QR Code.com. www.denso-wave.com/qrcode/aboutqr-e.html
2. QR code – Wikipedia. Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/QR_Code
3. ISO/IEC 18004:2006 – Information technology — Automatic identification and data capture techniques — QR Code 2005 bar code symbology specification. ISO – International Organization for Standardization (2012).www.iso.org/iso/catalogue_detail?csnumber=43655
4. vCard – Wikipedia. Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/VCard
5. Howes, T. & Smith, M. RFC 2425 – A MIME Content-Type for Directory Information. Internet Engineering Task Force (IETF) (1998). http://tools.ietf.org/html/rfc2425
6. Perreault, S. RFC 6350 – vCard Format Specification. Internet Engineering Task Force (IETF) (2011).http://tools.ietf.org/html/rfc6350
7. Perreault, S. RFC 6351 – xCard: vCard XML Representation. Internet Engineering Task Force (IETF) (2011).http://tools.ietf.org/html/rfc6351
8. Sharaby, O. Form Meets Function: Extreme Makeover QR Code Edition « « Digital Connections – 360i Blog, Digital Marketing Agency Digital Connections – 360i Blog, Digital Marketing Agency. 360 Digital Connections (2010).http://blog.360i.com/emerging-media/creative-qr-codes
9. Top Five Tips When Customizing Your QR Code Design. CustomQRCodes www.customqrcodes.com/story/11/Top-Five-Tips-When-Customizing-Your-QR-Code-Design–
10. Chan, H. HOW TO: Make Your QR Codes More Beautiful. Mashable Tech (2011). http://mashable.com/2011/04/18/qr-code-design-tips
11. QR Code Generator: QR Stuff Free Online QR Code Creator And Encoder For T-Shirts, Business Cards & Stickers. QRStuff.com /www.qrstuff.com/index.html
12. ZXing Decoder Online. http://zxing.org/w/decode.jspx
13. zxing – Multi-format 1D/2D barcode image processing library with clients for Android, Java – Google Project Hosting. zxing http://code.google.com/p/zxing
14. UberScanner – Android Apps on Google Play. Google Play https://play.google.com/store/apps/details?id=org.ubercoders.uberscanner&hl=en
John Joyce is a laboratory informatics specialist based in Richmond, VA. He may be reached at editor@ScientificComputing.com.