]> git.cworth.org Git - cworth.org/blobdiff - src/christmas_code.mdwn
Add blog post describing all of the history of the Christmas code.
[cworth.org] / src / christmas_code.mdwn
diff --git a/src/christmas_code.mdwn b/src/christmas_code.mdwn
new file mode 100644 (file)
index 0000000..7c3f6f1
--- /dev/null
@@ -0,0 +1,193 @@
+[[!meta title="Carl's Christmas Puzzle Hunt"]]
+
+[[!tag puzzles]]
+
+I've slipped into an accidental tradition of composing a puzzle hunt
+for my sons every year at Christmas time. We call it "The Code" and
+it's now one of the most anticipated events every December.
+
+If you'd like to see some examples of what the puzzles are like, you
+can look at them here (or even try solving them yourself):
+
+  * <a href="/2014">2014 Christmas Puzzle Hunt</a>
+  * <a href="/2013">2013 Christmas Puzzle Hunt</a>
+  * <a href="/2012">2012 Christmas Puzzle</a>
+
+As one might hope, I believe my puzzle-designing skills are improving
+with practice. So hopefully the more recent puzzle above show some of
+my better work.
+
+This tradition has become sufficiently involved that the history of
+The Code really deserves to be captured. Here's the story of how it
+all started, and how it's changed over the years.
+
+## On Keeping Christmas a Surprise: The Invention of The Code
+
+One year, my wife and I were lamenting to some friends that Christmas
+gifts were losing their mystery at our house. Our boys were getting
+good enough at poking, prodding, and predicting their presents that
+there weren't a lot of surprises left for Christmas morning. Our
+friends had had similar problems with their children, and we ended up
+comparing notes on things we had done to keep gifts secret.
+
+One obvious tactic is to disguise a gift while wrapping it. This
+technique has already been developed to an artform by our boys. They
+love giving each other a large, wrapped gift which, when opened
+reveals a smaller, wrapped gift inside. Then, like a set of matryoshka
+dolls, that gift reveals a smaller, and smaller gift. In our family,
+as soon as this unwrapping process is started, everyone knows what the
+end result will be. The final few layers are so tiny that there's no
+room for boxes anymore, just many, many layers of different colored
+gift wrap and excessive amounts of tape. These last layers take a
+tremendous amount of effort to get through. And the reward for all of
+this hard work of unwrapping? Inevitably, it's a single penny. We
+don't recall who wrapped the first penny, but it's now a standing
+tradition where the boys try to outdo each other each year by
+disguising a penny in the most elaborate way possible.
+
+Clearly, we're not willing to go to such heroic efforts to disguise
+every gift we wrap. We had experimented with waiting to put the
+Christmas gifts out under the tree until just before Christmas, but
+that wasn't much fun. It robbed the boys of a lot of the fun
+anticipation of seeing the gifts under the tree throughout December.
+
+Our friends shared an idea that had worked well in their family. What
+they did was not write names on any of the gifts, but instead wrote a
+single number on each gift indicating the recipient. And the method
+for choosing the numbers was selected in a new and unpredictable way
+each year. For example, one year my friend (who happens to be a
+dentist) wrote the number of teeth that each child had lost on their
+gifts.
+
+We thought this was a great idea, and we decided to give it a try. And
+none of our Christmas gifts have had any of the boys' names on them
+sense, (though they've had just about everything else possible). Read
+on for a rundown of what we have done for the code for each year.
+
+## The Early Years: Locking the Code up Tight
+
+For the first year, we adopted a very simple strategy. We wrapped each
+boys gifts in a unique color of wrapping paper. We didn't explain
+anything, and when the boys asked why none of the gifts had names on
+them, we were evasive. Then, on Christmas morning, we told them which
+color of gift wrap corresponded to each boy.
+
+The second year, the boys correctly predicted that we wouldn't use the
+same technique, and they immediately set about trying to crack "the
+code" for the Christmas presents. They started convening secret
+meetings to discuss theories. We discovered some of the notes from one
+of the meetings and found that they had constructed an entire table
+mapping out the following variables for each gift under the tree:
+Wrapping paper color, Number of bows, Colors of bows, Picture on the
+tag, Names on the tag. You see, this year, I did put tags on the
+presents, but instead of their names I wrote the names of characters
+from nonsense poetry: "To: The cat; From: The fiddle", "To: The cow;
+From: The moon", "To: The dish; From: The spoon", etc.
+
+Their table was fairly effective. They were able to eliminate many
+variables that couldn't work. If there were more colors of wrapping
+paper tan children, they assumed that could ignore that. If there were
+only one or two bows per present, they assumed that couldn't identify
+one of the four boys. Fortunately for me, they didn't crack the code
+that year, but only because their table hadn't accounted for the color
+of ribbon on each present.
+
+By the third year, I realized that I had to put more thought into
+designing the code. Here was an active group of intelligent agents
+determined to find the information I was trying to hide. I was careful
+this time to imagine every variable they could track, and ensure that
+each variable appeared with four different values, evenly distributed
+among the presents. I also ensured there was no correlation between
+any of the variables. Grouping the presents by wrapping-paper color,
+bows, ribbons, or anything else would always yield four entirely
+different sets of presents. (So yes, this meant that now my wife and I
+needed to consult our own table before we could know how to correctly
+wrap each gift).
+
+Then, for the actual information, I chose two variables I thought they
+would never track. We carefully folded the flaps on each gift either
+in the same direction on each side or in opposite directions on each
+side. Then we either folded all cut edges away to leave clean creases,
+or left the raw edges exposed. This gave us four sets of presents:
+Matching flaps creased, Matching flaps raw, Opposite flaps creased,
+and Opposite flaps raw.
+
+Of course, the boys never even looked at the flaps, and all of their
+attempts to find logical groups were foiled. When I revealed the
+answer on Christmas morning, I was smug, thinking I had "won" by
+creating a code they couldn't crack. Of course, the boys called me out
+saying that what I had done was totally unfair. (How could it have
+been unfair I thought? This was a game that I had invented myself?)
+But the boys were totally right. My problem was thinking that this was
+a game, when in fact, this should have been a puzzle.
+
+Years later, I read the book "Puzzle Craft" by Mike Selinker and
+Thomas Snyder. In the introduction, Mike Selinker describes the lesson
+that my boys were teaching me. He says that a game is a contest with
+two equal sides and the outcome is in doubt, (either side has a
+roughly equal chance to win). In contrast, a puzzle is a contest with
+two wildly-unequal sides where the outcome is never in doubt, (the
+weaker side will always win). When I treated The Code as a game, it
+wasn't fun for any of us. The odds were stacked too much in my
+favor---I could always create an impossible-to-solve puzzle, but who
+has fun with a puzzle that's impossible to solve? That just leads to
+frustration and giving up. A good puzzle, in contrast, has plenty of
+frustration, but enough fun and reward that the solvers stick it
+through to the end. So I needed to learn to create a puzzle.
+
+## The Code Today: The Code as a Puzzle
+
+My boys taught me that the code needed to be fair. That is, they
+needed to be given enough information to be able to solve the
+code. There could still be lots of deception and trickery, but they
+needed to know that with perseverance, patience, and creativity they
+could actually find the answer. They also gave me a second ground
+rule: The solution to the code must be relevant and interesting. A
+final answer of "you get the presents with the matching flaps with the
+raw edges" doesn't cut it. Instead, the solution to the code should
+actually point to the boys themselves. Basically, they were telling me
+"Design us a puzzle", and "Make it a good puzzle", and it just took me
+some time to figure that out.
+
+<a href="/2012">Christmas 2012</a> was the first year I approached The
+Code as a puzzle. For that year, I labeled each present with nothing
+more than a small QR code. Scanning the QR code linked to a web page
+with a silly animated GIF, a solid-color background, some nonsense
+poetry in the title, etc. Somewhere in all of that was a hidden
+indication of who the intended recipient of each present was. So this
+was simply one puzzle, and a lot of obfuscation. I thought this puzzle
+would have been easier than it was, (a common problem for early puzzle
+designers from what I understand). But the boys had a lot of fun with
+it, and with some hints at the end, they figured things out by
+Christmas.
+
+<a href="/2013">Christmas 2013</a> was the first year I stepped up and
+instead of designing just one puzzle, I designed an entire puzzle
+hunt. A puzzle hunt is a connected series of several puzzles. Many
+puzzle hunts also included "meta-puzzles" where the solutions to
+several puzzle combine to form a new puzzle. This was my first puzzle
+hunt to design and it included 24 puzzles, 5 metapuzzles, and 1 final
+metametapuzzle, (where the solutions to 4 previous metapuzzles had to
+be combined in another puzzle) That was probably over-ambitious for my
+first puzzle hunt, but it worked fairly well. There were a couple of
+bugs in the puzzles that I should have caught with better testing in
+advance.
+
+One thing I was really pleased with was that I intentionally
+included every element from the previous puzzle, (animated GIFs,
+random background colors, nonsense poetry, etc.). But where in 2012
+many of these elements were meaningless red herrings, in this year's
+hunt, every element was used in at least one puzzle. I was also happy
+that I included a mechanism for providing additional hints along the
+way. (And I did this in a way that I could revise those hints before
+the boys encountered them, so I could fine-tune the hints based on
+where they were getting stuck.) That was very useful, and I used that
+to my advantage again in 2014.
+
+<a href="/2014">Christmas 2014</a> was my second puzzle hunt, so it's
+clearly now a new tradition that we won't give up for some
+time. (We'll just need to adapt things when some of the boys move out
+of the house, etc.). I do feel like I'm getting better at puzzle
+design, and the boys are still having a lot of fun solving this. I
+wrote up a <a href="/christmas_code/2014">blog post</a> giving some of
+my feedback on how the solving experience went this year.