You've probably seen them: black and white checkerboard-patterned matrices printed on labels and other real-world objects that you can optically scan with a cameraphone or other handheld device to extract an encoded message. But although 2-D barcodes (as they are known) are getting more common, working with them is still a bumpy road for the Linux and free software crowd. Fortunately, several options exist for reading and generating them with open source software.
Unfortunately, there are dozens of 2-D barcode formats in the wild. From a technical standpoint, they fall into two general groups: stacked linear and matrix. Stacked linear codes are like traditional 1-D barcodes (a la UPC codes on retail box packaging), but with multiple lines of information.