{"id":459,"date":"2007-09-07T19:34:06","date_gmt":"2007-09-08T02:34:06","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/chocolate-milk-puzzle\/"},"modified":"2007-09-07T19:34:06","modified_gmt":"2007-09-08T02:34:06","slug":"chocolate-milk-puzzle","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/chocolate-milk-puzzle\/","title":{"rendered":"Chocolate Milk Puzzle"},"content":{"rendered":"<p>So I had a little carton of chocolate milk with my lunch today (longtime readers have guessed that I must still be in elementary school). On one side of the carton was a word search puzzle that challenged me to find 6 words hidden in the jumble of letters. It occurred to me that this represented an allegory for reverse engineering.<\/p>\n<p><center><br \/>\n<img decoding=\"async\" src=\"\/eggs\/images\/grain-group-word-search.gif\" alt=\"Grain group word search puzzle\" \/><br \/>\n<\/center><\/p>\n<p>I generally liken RE to an extraordinarily complex, or just tedious, puzzle. This is a more straightforward puzzle. <\/p>\n<p>Task: Find 6 strings of characters. What strings? I wasn&#8217;t sure exactly. Lesser word searches explicitly tell you which words to find. Those puzzles can be solved via a brute force algorithm that most of us figure out by the age of 5. I knew that these had to be coherent English words. Eventually, I re-read the instructions and noticed that the words were supposed to pertain to &#8220;foods made from grain&#8221;. Lesson: Gather all the intelligence you can before delving into the meat of the puzzle.<\/p>\n<p>Next, there is domain knowledge. I have done a few word search puzzles before and so I know that I am supposed to look for strings of characters running left -> right, right -> left, top -> bottom, bottom -> top, and also diagonally. And I have some clue about foods made from grain. So I am off.<\/p>\n<p>Then, I started theorizing about how the original puzzler (or whatever you call a person who develops puzzles) must have put this puzzle together. Since there are 6 words, I hypothesized that 2 would be horizontal (one for each direction), 2 would be vertical (again, one for each direction), and 2 would be diagonal. This would make good use of the parameters of a stock word search. I refined my initial search using these assumptions.<\/p>\n<p>I was correct about the 2 horizontal and 2 vertical. I also found one more horizontal word. I methodically scanned every diagonal possibility, much to the disdain of my overworked eyes. I could not find any word on that orientation. So I revised my original assumption and assumed the remaining word must also be horizontal.<\/p>\n<p>Finally, there&#8217;s the matter of validation: determining if one&#8217;s RE results are correct. Unlike binary RE, this puzzle <a href=\"http:\/\/www.smartcarton.com\/activities\/solution.shtml?a=026&#038;x=0&#038;y=0\">makes it easy<\/a>. So I check and&#8230; I don&#8217;t believe it! I only got 4 of them correct. I got another partially correct. And yeah, I didn&#8217;t think &#8216;bean&#8217; was a valid grain.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So I had a little carton of chocolate milk with my lunch today (longtime readers have guessed that I must still be in elementary school). On one side of the carton was a word search puzzle that challenged me to find 6 words hidden in the jumble of letters. It occurred to me that this [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-459","post","type-post","status-publish","format-standard","hentry","category-reverse-engineering"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=459"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/459\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}