Barcode Challenge

barcode_challenge

This morning we logged into Google to find a Barcode instead of the normal logo (how strange that Google would change their graphic!). Apparently today is the anniversary of the Barcode. This method of easily labeling items for computer scanning is used for every type of commodity in our society. But do you know how to get the cryptic information back out of the Barcode?

Here’s the challenge:  The image at the top of the post was created by the devious writers here at Hack a Day. Leave us a comment that tells us what the message says and explains how you deciphered it. There are programs that will do this for you and some smartphones can do this from a picture of the code, but we’re looking for the most creative solutions.

The winner will be decided in a totally unfair and biased way and gets their name plastered all over Hack a Day (and possibly slandered a bit).  So get out there and start decoding that machine-readable image.

Update: We’ve announced a winner for this challenge.

184 thoughts on “Barcode Challenge

  1. I loaded the image into Photoshop, isolated one row of pixels, scaled it up 600% using the nearest neighbor, then made two layers, each filled with 6×6 tiles of ones and zeros. I used the white space of the barcode layer as a mask for the 0’s and added 6 pixels of padding around the sides. Then I ran the resultant binary through OCR and hucked the results through a binary-to-text converter. The results are already well-documented here, but, for completeness, “hackaday.com – hacking since 2004H”

    For reference, the binary is:

    11010010000100110000101001011000010000101100110000100101001011000010000100110100101100001101101111010011001110100001011001000111010111101110101101100110010011011100110110011001001100001010010110000100001011001100001001010000110100110000101001001101000011110011001011110010010000110100110000101001000010110010110010000110110011001100111001010011101100100111011001100100111011000101001100011101011

  2. hackaday.com – hacking since 2004

    Uhh, that was to easy….

    M-x readbarcode
    or if you add the following function to your .emacs
    (global-set-key “\C-c \C-b \C-r” ‘readbarcode)

    C-c C-b C-r will do it on the fly

    might not work for you I use a CVS emacs and a lot of .emacs hacks
    …and NO there is not such an mode for VIM

    Did I win ?

  3. hackaday.com – hacking since 2004

    I was sitting besides my film processor unit (Jobo) and read Hackaday on my vintage “If in doubt beat them with it to death!” Itronix IX250 GoBook while waiting for the negatives.

    (Yes some people still prefer analog photography for some reasons and applications and once or two times a term I give some lectures about it and train some interested students the traditional darkroom work)

    So I saved the picture on disk, opening it with gimp, rescaling it, sending it for printing on paper via wifi to the office and calling an intern to bring it to me,
    Cutting a cardboard for masking, doing some sandwich long-time exposure trough the paper onto technical film (used in former times for reproduction and scaling of technical drawings from microfiches) – needed some because I did not knew the necessary time for this stunt – developing them with another load of films.
    Fixing, “watering” and drying it the “quick” style the former press people did (with lots of rubbing alcohol), taking the sheets to the light table, finding a good one, thinking that counting the lines with a magnifier is stupid,
    going to the engineering department – asking for where the microfiches readers are….getting a very strange look from the staff for this.
    deciding to not let them get one out of the storage – with my luck the lamp would be broken or something like this – calling the library about these readers…with not so much luck…going back…checking the processor cutting it to size, framing it, projecting it with a 6×9 slide-projector to a whiteboard, using a marker to write the 0 and 1 down.
    Trying some binary coding – BSD, Aiken, Gray…this leads to nothing resonable. Calling at the library again – asking them to get some books about barcodes from the shelfs
    Going to the libary…looking through the books about barcodes, taking 3 books about it to the library counter – handing over my library card…watching the girl scanning the barcode on my card…resisting barely to beat my head onto the desk several times…
    Taking the books anyway.
    Going back to the lab…stoping the final watering of the first load of negatives…going through the carts type 128 looked good, decoded it with the numbers I wrote down earlier.

    Conclusion – a nice day at the old photolab of he university (downstairs, no windows), doing something for my eccentric professor image (I am just a doc) – walking over the campus area several times, one time still with the lab coat on, earning some strange looks from the freshman students who just arrived this week – standing besides and looking at them while they where doing some beer games and what ever the fraternities do for and with the new students…doing vintage stuff I have not done for at least a decade using old things ;)

  4. “hackaday.com – hacking since 2004”

    Went to my local groceries store and bribed the checkout girl to scan it on their barcode reader. Suffice to say, the barcode did not match anything in their inventory :( hehe

  5. I read through the first ~20 comments, and then started looking at the solutions others used so I could learn something myself. I’m not looking to solve this – plenty of others have before me. What I *am* looking to do is broaden my horizons with the information that others have shared.

    Mission accomplished…

    wait – is anyone really going to read all these???

  6. long time reader, second drunken response,

    yeah got drunk and motivated, rummaged thru my boxes of crap found the barcode scanner that I bought on craigslist almost a year ago, (listed as 75 and haggled down to 50) scanned into Paint. Then on an hp laser jet 4m, that i found in the dumpster, took home fixed then printed off said barcode, scanned with said scanner and smoked a congratulatory bowl, posted this post almost comatose from swine flu from diggin thru dumpsters all day.

  7. what no edit on this crazy thing! BAHH oK what i got was….

    hackaday.com – hacking since 2004

    …so why no nerdy geeky joke? that we could laugh at? why no crude reference to some old lunatic movie? really a Crummy commercial? really i had more faith in you to do something that would blow my mind or enlighten me further…..yeah i like to rant…come on hack-a-day i hold you to a higher standard..

    i’ll still keep comming back but really??

  8. With my friend`s iPhone,an application called “red laser” if I remember correctly.
    It sais-
    code 128
    hackaday.com – hacking since 2004H
    (35,183) (35,5) (403,5) (483,183)

  9. hackaday.com – hacking since 2004
    Good ol’ brute forcing.
    I made a program that creates barcodes using the various techniques available through google, and then used my own software to compare the segments of the image to check for a correct symbol. Repeat until message is found…

  10. white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white, black, white.

  11. recently started playing around with python, so I figured this would be a good opportunity to write some code. I ended up with something like this. Also I left out the dictionary lookup table, which i got from wikipedia.

    import Image

    im_file = Image.open(“barcode_challenge.jpg”)
    im = im_file.getdata()

    width = im.size[0]
    height = im.size[1] / 2

    cropped = im.crop((0,height,width,height+1))

    code = “”
    for pixel in cropped:
    if(pixel[0] == 255):
    code += “0”
    else:
    code += “1”

    code_buff = code.lstrip(“0”).rstrip(“0”)

    buff = “”
    chars = []

    while(len(code_buff)>0):
    if(code_buff[0] == “1”):
    if(code_buff.startswith(“1111”)):
    buff += str(4)
    code_buff = code_buff.lstrip(“1111”)
    elif(code_buff.startswith(“111”)):
    buff += str(3)
    code_buff = code_buff.lstrip(“111”)
    elif(code_buff.startswith(“11”)):
    buff += str(2)
    code_buff = code_buff.lstrip(“11”)
    elif(code_buff.startswith(“1”)):
    buff += str(1)
    code_buff = code_buff.lstrip(“1”)
    else:
    if(code_buff.startswith(“0000”)):
    buff += str(4)
    code_buff = code_buff.lstrip(“0000”)
    elif(code_buff.startswith(“000”)):
    buff += str(3)
    code_buff = code_buff.lstrip(“000”)
    elif(code_buff.startswith(“00”)):
    buff += str(2)
    code_buff = code_buff.lstrip(“00”)
    elif(code_buff.startswith(“0”)):
    buff += str(1)
    code_buff = code_buff.lstrip(“0”)
    if(len(buff) == 6):
    chars.append(buff)
    buff = “”
    chars[len(chars)-1] += buff
    final = “”
    for val in chars:
    final += keys_128b[val]
    print final

    CODE 128B hackaday.com – hacking since 2004H STOP

  12. I just scanned the code with the CCD scangun at my workstation.

    LCD display = no refresh scan to worry about
    scanned 30deg out of perpendicular for no reflection

    Did have to hold it back further, though.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.