I was talking with a friend of mine after a little Selenium introduction session and we came to the topic of QR codes and how they use it in his company.
Basically an encoded image is created, which allows you to download something.
My friend pointed his HTC mobile with the “Barcoo” app to my screen and it recognised the QR code and downloaded the image immediately to his phone.
The curious guy inside me was hopping up and down (who said “tester” right now?).
I was intrigued as how an (QR code) image could transfer this information.
And I was already thinking ahead as how this could be misused.
So we went online and looked for an QR generator (its incredible, but you nearly always can find a “generator” for anything..). Sure enough we found one.
First session: Skimming what this generator is about and what it can do.
One can encode a lot of different information and channels, there are SMS, URL or business cards (vCard).
Second session: Is it working?
We tried the obvious (to us) choice; we inserted “www.google.com” into the URL code.
First observation: As soon as the first character is inserted, the QR image is created. While entering more characters, the QR image changes.
HINT: The usage text says “..keep below 300 char for less complex QR code..”. Nice try.
So it should be possible to post as many characters as I like into it?
We used the QR image for google on my friends mobile and *tata* it opened the browser and showed the google site.
We didn’t get into it to try out to embed a full query in the URL (for example: open google result list for “ET tester” http://www.google.de/search?q=et+tester&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a ).
While I was messing around with the “Text” field and just randomly (really? mh) entering text, i thought i saw some pattern, which i wasn’t aware of before.
Some of my synapses were working overtime and “Pop! goes the weasel” a mental lightbulb blinded me!
(BTW. I like “pop goes the weasel” and always wanted to use it. It is just as lovely as “anyhoodles” (thx to RaspberryX for hooking me up on that term).
Both have no real meaning for Germans, which makes it even more cute to use.. you have to love the English every now and then 😉
Anyhoodles.. where was I? Ach ja, pop goes the weasel: BLINK heuristic!
Thats what my synapses were leading me to, when i saw some pattern in the QR image.
I heard and saw the BLINK heuristic in Michael Boltons RST session in Berlin, 2010.
Here is the article about it for further reading.
Third session: Applying the BLINK heuristic consciously
I hacked in some characters into the text field, c&ped them (sidenote: I thought I made *that* one up, but sure enough .. I googled it and it had like 11000 hits) and begin to insert more and more and see how the pattern evolves.
Observations: It always has a kind of “black” square in three corners. Second, depending on the amount of characters inserted, a kind of “white” square showed up in the remaining corner. After many more characters more white squares showed up.
The size of the squares seem fix: 6×6 for the black and 3×3 for the white square.
Amount of characters in “SMS Text” field:
0 = no QR image (needs at least one char and the area code)
1-7 = no white square at bottom right corner
8-118 = white square(s) are beginning to show up, starting with one in bottom right corner
119+ = full white square pattern show up.
– Area code entry is also required, otherwise no image is created; so the QR code has / can have mandatory fields.
– The finer the black/white filling of image, the more clearer the squares can be seen.
Last session: Reflecting what we had learned.
– Without researching the functionality of QR codes and this specific generator we gained insight and knowledge.
– We found some boundaries, as in mandatory fields, which are required to create an image.
– Unknown, if this boundaries are artifical by the developers or by the QR technology.
– We saw some visible behaviour and pattern.
– Unknown is, if the white pattern already there from the first entered character and could be visible when certain data is entered? I used like 1234567890.. maybe if I use abcde… etc. the white square would be visible?
All in all, what began as a chat about a certain technology turned out to an impromptu learning session.