QR Code Puzzle

For a few years, my family and I’ve done some birthday trolling of a kid my wife and I have watched grow up. This year, he graduated high school, and it seemed like maybe it’d be the beginning of the end of the times during which we’d do big involved birthday things for him (he’ll grow up, move away, no longer be a kid you can really troll, etc.). So I decided to do a more elaborate setup than usual. I sent him on a multi-stepped puzzle scavenger hunt for which I acquired props such as a hollowed-out book, a cipher wheel, a wooden puzzle box, and a cryptex. I came up with a few riddles and lined up the puzzles in such a way that one, once solved, pointed to the next.

The first puzzle was a sheet of paper with only this printed on it:

Huh? What the heck is that? I also had this ready to share in case he needed it:

You can begin to see that there’s a pattern. If you know that it’s a birthday thing, you can maybe begin to see that the patterns might read (in part) “Happy B-Day” if the squares with the slants pointing from bottom left to upper right are filled in. Eureka! You’ll now know that you need to shade in the equivalent squares on the other sheet. And when you do that, you’ll get something like this in place of the first image above (slightly modified, so it doesn’t point to anything real):

That’s pretty quickly recognizable as a QR code. It linked to a little web site I set up that offered a riddle that, when solved, pointed him to the next clue, and so on.

I fancy myself a bit of a nerd, but this felt like really nerdy stuff indeed. But that’s not all!

See, when I first made the QR code thing, I drew it by hand, using drawing software on my computer. First I had to make a 25×25 grid, and then I had to print out the QR code I had created for the web site and copy its filled-in squares onto the grid as diagonals. Then I had to fill in all the other diagonals going in the opposite direction. Then I had to print it out, fill in the squares by hand using a Sharpie (to test real life operating conditions), and hope I hadn’t gotten any of the 625 little diagonal marks mixed up (spoiler: I messed them up a number of times because it was a tedious, manual process). Then I’d lather, rinse, repeat until I got it right. It was tedious, but finally I had a file that worked.

And then the QR code that I created using an online generator expired. I hadn’t realized it would have an expiry. This meant I’d need to make a new QR code and repeat the tedious (and actually sort of painful, repetitive-stress-injury-inducing) process all over again.

I wrote code for many years professionally and for side projects, so at this point, the lazy programmer in me woke up. I figured it wouldn’t be too hard to write some little program that’d output the QR code for me and save me lots of frustration — and also be pretty easy to reuse later should I have another QR code expiry issue or another weird project for which this pretty narrowly-focused output would be useful.

I knew how to output image files, and I knew how to use php code to draw simple lines and shapes. The rest was just figuring out how to input the QR code data and how to make it fairly configurable, so that I could run the same code with different options set and output either diagonals or filled-in squares, saving me both drawing and testing time any time I needed to tweak the QR code.

It’s not especially elegant code, but what I came up with is here. A next update should I ever go back to it would have me figuring out how to just turn a url into a QR code and automatically outputting the image based on a url input, whereas right now, you still have to fill in a data array using ones and zeroes to sort of map out the squares in the code. But for now, it’s a fun little piece of code with a practical — if rarely practical — application. Should you ever have a need to generate such a thing, the code is yours for the taking. It really does make it very easy to map out a QR code and easily display either the shaded version or the more cryptic diagonal version.

Mostly I wanted to share it as an example of how a silly/fun idea can turn into a neat little code project that can later save time, as I spent less time and much less frustration writing the code for this than I did creating the original version manually.

Birthday Troll

Some of our close friends have a son who turned 18 this year and whom we’ve known since he was about 2 years old. As he’s gotten older and has begun to value money more than toys and such as gifts, we’ve rolled with his preferences, but not without making it a little (good-naturedly) tough on him. For example, one year, we gave him a box full of something like $47 worth of unrolled pennies. This year, we were especially late in getting a gift to him (we see our friends just a few times a year), and I felt like we needed to make the gift opening experience especially memorable to make up for our tardiness. I had been doing some wood working (if you can call my rustic efforts wood working) and decided to make him a box, pictured below.

Although I am no expert carpenter, the workmanship on this box is especially rough by design. There was a very real risk of getting a splinter or possibly even tetanus if he didn’t handle the box pretty carefully. I used some nails and some heavy-duty cabinetry screws (which I had on hand from a recent replacement of our kitchen cabinets). Inside the box I put several checks for random odd amounts and with silly memo lines like “For your 7th birthday” and “For singing lessons” (my wife’s inspiration, so that should we hear him singing badly in the future, we can ask him what he did what that money we gave him for singing lessons). I also threw some random coins into the box so that it would rattle, and this necessitated that I goop over some of the cracks left by my crude joinery with wood filler. I suppose this rigamarole seems a little mean, but that’s the relationship we have with this kid, and he loved it.

He spent something like thirty minutes trying to get into the box and finally triumphed by drilling a bunch of holes into it.


Slaw blogging

At dinner with the family the other night, I turned conversation, as one does, to Bob Loblaw, the character from the television program Arrested Development. If you don’t know the show, Loblaw is a lawyer. At some point during the show’s events, he decides to take up blogging, and his blog is called The Bob Loblaw Law Blog.

As I encouraged my son to take a portion of slaw, I thought “what if Bob Loblaw had a slaw blog?” Who wouldn’t be riveted to The Bob Loblaw Slaw Blog? Further, I thought, what if there were some sort of tort law pertaining to food preparation and there were fascinating legal codes pertaining to slaw? Would we then have the opportunity to read The Bob Loblaw Slaw Law Blog? Or, further yet, what if there were a whole industry around slaw blogging and eventually, due to fierce competition and similar other factors in the slaw blogging market, a niche that an expert like Bob Loblaw might fill for blogging about the laws applicable to this very specialized slaw blogging industry? Might we then have the opportunity to read The Bob Loblaw Slaw Blog Law Blog? And, further still, what if The Bob Loblaw Slaw Blog Law Blog really took off and demand arose for a behind-the-scenes peek at how the blog gets made? Might we then know the pleasure of reading The Bob Loblaw “Bob Loblaw Slaw Blog Law Blog” Blog?

As I outlined the thrilling possibilities my son’s slaw had opened my eyes to, the family quietly rolled their eyes and carried on with their meal, desensitized by now to these outbursts on my part, the philistines.

Kindle Teasers

Although I generally prefer paper books, I have had various and sundry Kindles over the years. I do like how I can highlight a section or do a quick word lookup as I’m reading. My latest Kindle is a Paperwhite, which comes in a couple of flavors — one with ads on the home screen and that costs a little less than the ad-free one. As long as ads aren’t popping up while I’m reading, they don’t bother me too much, though I really think that with access to a whole lot of my recent reading history, Amazon could do a better job of trying to show me books I’m likely to want to purchase. I guess they’re just showing ads for the books whose authors bought the most ad impressions. I’ve found some of them so laughable or terrible or confusing that I’ve begun to sort of like them, and when I see an unfamiliar new teaser that’s a hoot or a puzzler, I’ll read it aloud to my family and ask if I should invest in the book. So far I’ve purchased none of them. A recent sampling follows.


‘”I’d have my nose broken every morning if it meant spending the rest of the day with you,” Avriel admitted in his painfully nasal voice.’ This one has a certain sleazy charm that I’d maybe be taken in by if my legs weren’t already so tired from running through the speaker’s dreams all night. It’s hard to know if the closing words in this quote are self-parody or not.


“Their lives collided for a reason. Was it only by chance or was it destiny?” Maybe it was fate or happenstance or through some purpose. At least it wasn’t clichéd.

“A beautiful women [sic]; a black widow, meets [sic] an arms trader who wants a secrete [sic] device from an engineer that [sic-ish] needs money. A volcano creates a tidal wave.” This book’s got everything! (Accept apparentley; an edditor.)

“Did people ever wonder… Why water lily’s leaf is shape [sic] like a heart ? [sic] And you will find the magical answer right here in this unforgettable tale .” [sic] I’m not interested in poking fun at what seems very probably like English as a non-native language here, and I’m actually sort of interested in the origin story this seems to point to, which could make a neat little tale, but it’s hard not to be shocked that there are zero editorial standards applied to the ad program. If Amazon is going to let people try to peddle their books, it seems like everybody benefits if there’s just a tiny bit of editorial work as part of the ad placement process. On the other hand, I guess I’d be pretty steamed if I bought a book based on a nice grammatical ad and the book itself was written as this ad is written, so there’s something to be said for truth in advertising. I do think there’s almost a sort of cruelty at play in letting this kind of thing through, though.

“You may claim to understand me but just when you are at the climax of your sureness, you may also be disappointed. Bon Voyage. Christopher Flier.” I hate when I’m disappointed at the climax of my sureness.

Hot Dog Cheese Man

In trying to train Maisy to do things like recognize her name and please please to stop trying to tear my ears off my head with her fangs, I’ve begun giving her little bits of hot dog and cheese. When we go on a walk, I keep a few in my left hand and vainly insist “heel! heel!” every few steps to try to get her to walk beside me and to my left. When she manages to do it, I give her a treat. If she continues to walk beside me, I dribble treats to her periodically to make it a rewarding behavior. I also use hot dogs and cheese to work on things like “sit” and “down” and “stay” and “maul” with her.

Because I work from home and my family is at work and school for much of the day, I lead sort of a solitary daytime life, and so naturally I talk to the dog a lot. I decline to confirm suspicions that I carry on full conversations with her as if she were a human being, supplying both sides of the conversation. I will confirm that for the humorous benefit of the children, I will sometimes say things aloud as if from the dog’s perspective. For example, if she’s trying to tear my ears off, I might use a goofy voice to say something like “I can’t help myself because they’re just so tasty, like delectable pink little pork rinds nom nom nom.”

One day a couple of weeks ago, I was saying something in my “I am a ridiculous animal” voice and speaking from the dog’s perspective about myself. I imagined that the dog’s notion of who I am is that I am the thing that is fun to chew on and drag along by a leash and that supplies hot dogs and cheese, so I had her say something like “Hot Dog Cheese Man is going to take me outside now.” And from then on, I’ve taken on the nickname “Hot Dog Cheese Man.” I refer to myself by that name (mostly when dealing with the dog), and the kids have picked it up some too. It’s a source of great mirth within the family.

My daughter lost her last baby tooth the other night and left us a note with it (she knows we’re the Tooth Fairy) in which I make an appearance as Hot Dog Cheese Man.

In all things pertaining to naming in our household, this rates very highly for me, third perhaps to Maisy’s long silly name and the name Cheesyfarts McButterpants, which I made up for a reason I’ve since forgotten but which still comes up from time to time.

The Hoff


I took my daughter to the library this afternoon and idly wandered the shelves (our branch is small) while she made her selections. I couldn’t help noticing this little batch of books. Observe the gentleman pictured on the spine of the middle book of the Moon books (which I believe is titled Kings of the North). That’s a portrait of David Hasselhoff, right? Is there anything the man can’t do?

Potato Monster


Occasionally a potato goes rogue and falls out of the potato bin and rolls around to some hiding spot in the pantry, where it becomes the home of a potato monster. Observe this fine specimen, with green flyaway hair, arms stretched skyward as if in anger or aggression, protuberant ocular organs, radial nipple clusters (a sign of fecundity), and an extreme outie of a belly button. If his upstretched arms weren’t clue enough, you can tell that he’s angry by the purplish blush apparent on his left cheek. He is a carbuncled fellow in general (who wouldn’t be angry?), and should his legs finish forming so that he can separate himself from the spud, he’ll be a fearsome character indeed.