stickybytes



The digital world distinguishes itself by its plentiful inner links, pointers, references, pipes, vertices, etc, linking almost instantaneously a node to another. Its ability to encode the material world into bits and to process data makes it a primary resource for anyone craving for information.

The material world and the digital one are deeply entangled, and the interfaces bridging them are essentially computers, terminals, and phones. This connection is reinforced through systems mapping material items to some virtual alter egos. This is for such a purpose that has been designed stickybits, a system based on barcodes (numbers) which can be pointed to pretty much anything in the digital world. It exemplifies how objects from the daily environment get immersed into the virtual world, yielding gently to an enriched, augmented reality.

In this context, stickybytes will be (translation: will with an infinitesimal probability become) an ImageMagick wrapper to play with stickybits downlodable barcodes. For instance, suppose you get a brand new barcode and you'd like to duplicate it in order to print, say, 60 copies on a single self-adhesive A4 sheet. A suitable PDF mosaic could be easily produced with something like:

#!/bin/sh

# stickybytes - stickybits utilities
# pre-preversion 0.201005
# warning: this "code" is terrible and may cause myocardial infarction

# Little Neo, 2010
# http://submoon.freeshell.org/en/code/stickybytes.html

[[ x$1 == x ]] && {
echo "Usage: stickybytes -m xxx.png"; 
echo "generates xxx_mosaic.pdf, a mosaic of the xxx blank barcode;";
echo "the image is ready to be printed on a self-adhesive A4 sheet.";
exit;
}

[[ "x$1" == "x-m" && -f "$2" ]] && {

whereis montage | grep -q -c "/" || { echo "montage: not found, exiting..."; exit; };
whereis convert | grep -q -c "/" || { echo "convert: not found, exiting..."; exit; };

bn="`basename $2 .png`"

montage $(for i in $(seq 1 60); do echo -n "$2 "; done)\
 -stroke "#ff0000" -frame 3x3 -gravity North -mode concatenate -tile 5x12\
 -bordercolor white -border 6x18  -draw 'text 0,60 "Scan me!"' -page A4\
 "${bn}_mosaic.png"

mogrify -draw "gravity North text 40,0 \"$bn\"" "${bn}_mosaic.png"

convert "${bn}_mosaic.png" "${bn}_mosaic.pdf"
rm -f "${bn}_mosaic.png"

}

Of course, a lot of tasks can be envisioned and automated: detecting the type of the input file (e.g. identify "$2" | grep -q -c "150x36" looks for stripped barcodes), extracting the barcode from a bigger image (-crop), adding the corresponding number below the barcode, uploading the barcode to some website, printing a big one on a t-shirt, etc.

Barcodes and QRcodes epitomize the coronation of markers and tags in life, from digital identity to RFID chips. It is a fact that barcodes are mushrooming in the world; a phenomenon, to finish on a more aesthetic note, which has led to think about how to integrate them into pleasant designs. The good news is that it could also be done with stickybytes e.g. with the use of composite and some imagination. After all, a barcode can be a work of art on its own.


Little Neo, May 2010


Code

Home