Evolve Bamboo One

After much agonizing and some budgeting, I bought an Evolve Bamboo One, and it came yesterday!

It was dark out when the board arrived and I was afraid of riding it for the first time near where I live (too hilly, some traffic, dark), so I only rode it down the hallway of my apartment... Ahem.

But today... Today I took it out to the nearby metro parking lot, which is quite empty and free over the weekend. It also has this great little hill for experimentation. I rode it for three hours up and down the hill before I started getting the 10% battery warning.

So fun. I love this thing. Good job, Evolve. 👍

My wife has named it "Tom", because I suggested "TOB" ("The One Board" [To Rule Them All]), and it sounded like I was saying "Tom" with a cold. Tom it is.

In case anyone is worried about me riding this thing, rest assured that I too am quite frightened of wiping out or getting hit by a car, so I'm taking every precaution. At the moment that's a helmet, a lot of practice with manual emergency stops, defensive driving, and a habit of hand signals, but I've also ordered a trigger guard for the controller and some wrist guards. I should also mention that it feels a lot safer than my normal longboard because it has brakes with which I can keep the speed down to where I feel comfortable foot-braking in case something goes wrong. There's also enough resistance from the motor that it's easier to keep my speed down without power.

Correcting for bias when estimating from evidence

Intuition patch
1. Base rate
2. Your guess
3. Est. correlation b/w evidence & outcome
4. Deviate #1 -> #2 proportional to #3.
Kahneman, TFAS

This is a tweet-packed nugget of wisdom from Thinking, Fast and Slow.

I love this book because it not only talks about what the evidence shows about our cognitive biases, but also what it says about how to correct for them, and how effective this correction can be.
What this^ bit is saying is that our guesses are largely based on substitution and intensity matching, which are great heuristics, but systematically biased to ignore regression towards the mean. That is, as he says frequently, we tend to assume that What You See Is All There Is (WYSIATI), when there's actually a lot of hidden factors that can influence the outcome other than the evidence we've seen.
So, when asked to estimate the college GPA of a child who could read by the age of 4, we first do substitution ("estimate future GPA" -> "estimate precocity"), then intensity matching ("quite precocious" -> ~3.7 GPA), and stop there.
Kahneman suggests a way to approximate the outcome of an actual statistical analysis by adding in two more things: The base rate (in this case average) GPA of any student, without any extra information about them, and our estimate of the correlation between precocity and GPA. You start by assuming the student is merely average, and then you walk in the direction of your intuitive number you got (~3.7) a distance proportional to how correlated you think GPA is to childhood precocity.

Successful Scheduling System

Most successful scheduling system to-date:
I divided each day up into four chunks:
  • Morning (10-12),
  • Early Afternoon (12-3),
  • Late Afternoon (3-6), and
  • Evening (6-9).
Then I put tasks into one of three categories:
  • Small,
  • Medium, and
  • Large,
where there are
  • several (~4-5) Small tasks to a Medium,
  • two Mediums to a Large, and
  • only one Large task fits in one of the ~3-hour time-slots.
Take a break after every significant thing.

Greedy for beauty, longing never satisfied

I'm writing this now because, as I often mention, I get reset every morning. Regardless of what went on the day before, I always wake up a new person - sometimes happy, usually neutral leaning towards cynical, and sometimes nasty. I want tomorrow to be different, because today was so good. Today I know God is real and working out a grand plan. Today it started with music.

There's an amazing song arranged by Jon Schmidt called "Love Story meets Viva la Vida" because it's Jon on the Piano and some other guy on the cello first playing Taylor Swift's Love Story and then transitioning seamlessly into Viva la Vida. It stirs my soul, and alters my mood for the better, casting a generally deep and intriguing atmosphere over all of my thoughts. The song seems to subliminally encourage me to look deeper into thoughts, feelings and events, and I actually listened to it while I got caught up in my Bible reading.

The day before I had received The Weight of Glory, by C.S. Lewis, and started reading the title essay before going to sleep. I got about a third of the way through, and a couple of concepts hit me. I was affected most deeply by the idea that longing and the apprehension of beauty are very closely related, if not the same emotion. The concept resonates with the core of me for two reasons.

First, as Lewis mentions, that fact is good evidence that there is a Heaven, and that God is there. We experience longing when we see something beautiful because we have a sort of residual understanding, unmarred by the fall, that there is a place we haven't yet been, that we have been searching for all our lives; that there is something (Someone), some source, from which all the beauty we see with our eyes comes, and to which all that beauty points. This is far better to me than any alternate explanation of our feelings of beauty and longing in response to the beautiful, which is important for my peace of mind.

Second, I am also gripped by the concept because it seems so very real. I have been consciously keeping an eye out for months for something that I could hold onto - something that would be sufficiently ubiquitous in my daily experience to hold me close to God even when I didn't directly feel his presence. The fact that beauty is longing screams to me that there is a whole other class of beauty out there somewhere, of which the earthly beauty I see everywhere is but a mere suggestion.

C.S. Lewis also elaborates on the nature of that longing. When I listen to my beautiful music, I want to just dive into it. I want to eat it, become one with it, swish my feet around in it and then slide my whole body in. When I see a beautiful sunset, or the aftermath on a berry-bush of an ice storm, or the red and yellow autumn leaves, contrary to all worldly reason I desire - so badly it hurts - to join myself to that glory. Those desires are not satisfiable in this world, so why are they there? God loves us, and created us to worship him with our whole being forever. This is the greatest satisfaction we can attain, and is far more satisfying than anything we have ever yet experienced. And now one huge piece of evidence for it is felt in my bones, and surrounds me on every side.

"Holy, holy, holy is the Lord of hosts; the whole earth is full of his glory!"

[This essay first posted while at Cornell, around 2009.]

The Bible is God's Word. Read it!

[I just found this tucked away in the old Cru Cornell blog archive, and thought I'd repost.]

This blog post and subsequent 5-Minute Senior Message Brain Dump brought to you by:


  • Petunia: A book I read in elementary school about this goose who thinks she’s wise because she found a book and carries it around under her arm.
  • Pastor John of KCCE: “If you have never read all the way through the Bible, most of what you believe is lies." I’ll elaborate on that.
  • How messed up I get when I don’t read what God wrote me for a long time. I’m a completely different person when I read (and internalize) my Bible in the morning.
  • The Bible itself, for example Psalm 1 and John 15.
  • The realization that if I don’t read my Bible, everybody and everything else in the world has a say in what I think except God. My classmates, TV shows, movies, my textbooks, magazine articles… all tell me explicitly or implicitly what’s important and worth-living for. They all lie. Only God doesn’t.
  • The fact that the Bible gets more and more interesting and exciting the more you read of it, and the more you dig it up from the swamp of Christian cliches, “holy-speak" and cultural confusion.

The Bible is God’s word - whatever that means. I don’t mean to be irreverent. I say that because I think we Christians have created a class of words and phrases that we say and sing but never use in our every day lives, so we’ve forgotten what they mean. This phrase is important, so I’m gonna just say it over and over again:

  • The Bible is God’s WORD. That is, in much the same way that Runaway Jury is John Grisham’s word, Harry Potter is J.K. Rowling’s word, Webster’s Dictionary was originally Noah Webster’s word, and Chemical Reaction Engineering is Octave Levenspiel’s word (no joke, that’s actually his name), the Bible is God’s. He has very intentionally written down what he thinks we need to know. He’s also written down a lot of things we’d really like to know, especially regarding his motives. He’s also written it down in such a way that we can find it interesting, assuming we’re not just complete bums.
  • The Bible is God’s WORD (in response to your prayers). I wish God would just thunder answers to my prayers out of the sky, or skype me or something, but that’s just not how it works. That’s never been how it’s worked for most people, by the way. I may envy the Jesus’ disciples for being able to get straight answers out of Jesus directly (har har har), or Moses for being able to ring him up whenever he wanted, but for the vast majority of Israelites and us Christians, we will have to wait until death or the return of Jesus to talk with him face to face. There has always been a mediator. This is the way it works right now: you pray to God, and God really truly speaks to you by the Holy Spirit in the Bible with what you really need to hear. Don’t take this the wrong way, but it’s like you’ve got a chunk of God inside you doing the speaking, and the words he uses are those of the Bible.
  • The Bible is GOD’s word. God is much cooler than those people I just mentioned. God (via Jesus), using whatever method, created the entire universe and everything in it. He cursed the world when Adam sinned. He did countless miracles and redeemed us from that curse, and Jesus took the throne after returning from the dead. He’s the most interesting person who has ever lived, and he wrote about it in the Bible.
  • The Bible is God’s (THE HOLY SPIRIT’S) word. Not only did God write the Bible using Holy-Spirit-indwelt people so it doesn’t err, but he gives the Holy Spirit to Christians (among other reasons) so that we can understand the thing, so we will actually apply it to our lives (instead of letting it go in one… ear and out the other), and so it can be more than just “not boring". The Holy Spirit, through the Bible, gives us understanding of who God is. There is nothing better than that. Nothing God has created is better than himself, or more satisfying to the human soul. He made it that way.

I really wanted to excite you all about reading your Bibles, but so far all I’ve done is brow-beat you with a few good reasons why you should. It has been immensely helpful to me in the past few years to get concrete examples of God’s awesomeness in the Bible, so let’s just look quickly at two situations Jesus was in that we can all relate to - someone wanting to know about salvation, and someone trying to trap us in our words: (lots of my progression here ripped off from Michael Ramsden)

First example: [From Mark 10:17] “Good teacher, what must I do to inherit eternal life?"

GOOD QUESTION. What would you say if some classmate of yours came up to you and asked what he should do to inherit eternal life? First, how would you feel? WIN. Best day ever. Of course you would say, “Why, my dear friend, in order to inherit eternal life ye must repent of thy sins and vouchsafe thy soul unto the Lord Jesus." When someone asked this question of Jesus, he said, “Why do you call me good? No one is good except God alone," and then essentially, “follow the ten commandments stupid." Then the guy says he’s kept the commandments, and Jesus pities him and throws him a bone: “You lack one thing: go, sell all that you have and give to the poor, and you will have treasure in heaven; and come, follow me."

What’s going on? Doesn’t Jesus understand the gospel? To make a long story short, yes. But he knows this guy is all mixed up. What must I DO could either be a sincere attempt to follow Jesus at all costs, or it could be a confused request for a way to earn his own salvation, and Jesus knows which it is. Jesus’ answer is therefor really cool: “Why do you call me good? No one is good but God alone." “Good teacher, what must I do…" held within it an implicit assumption that this guy could make himself good enough to inherit eternal life. But if you must be good to go to heaven and God alone is good, then who is going? No one. In other words, this guy’s application to join the Trinity has been denied. He does not meet minimum entry requirements.

My point is, Jesus answers people right where they are with exactly the answer/question they need. There’s actually another instance in the gospels where Jesus is asked almost exactly the same question and he answers completely differently. Sometimes he’s harsh, sometimes he’s gentle, but he’s always right on. His answers and counter-questions are always brilliant and I encourage you to go puzzle through them.

Second example: [from Mark 12:13-17] The Pharisees sent some people to trap Jesus in his words. (It explicitly says that, so we know what they say is to trap him…): “And they came and said to him, “Teacher, we know that you are true and do not care about anyone’s opinion. For you are not swayed by appearances, but truly teach the way of God. Is it lawful to pay taxes to Caesar, or not? Should we pay them, or should we not?" Does anyone see the trap? Does anyone understand the cultural context this comes out of?

Israel was under Roman rule. If you pay taxes to Caesar, you’re supporting the oppressors. That’s morally bad, and of course the Messiah isn’t going to morally compromise. But if you don’t pay taxes to Caesar and tell others not to, you’re definitely an insurrectionist and must be killed. Win-win for the Pharisees, or so they think. Jesus cannot answer "yes" or “no" to this yes-or-no question.

So he doesn’t. “But, knowing their hypocrisy, he said to them, ‘Why put me to the test? Bring me a denarius and let me look at it.’ And they brought one. And he said to them, 'Whose likeness and inscription is this?’ They said to him, 'Caesar’s.’ Jesus said to them, 'Render to Caesar the things that are Caesar’s, and to God the things that are God’s.’" And it says they marveled at him. Why did they do that? Because his answer was pure poetry, and in a very compact phrase, answered both “yes" and “no" where it counted. Essentially, “God owns you. Render to God what is his. And as for the tax? Yes pay it, but give God what he wants - your very selves."

Convinced? Then please start reading your Bible. Start anywhere, and read however much in a day you can stand at the stage you’re at, as long as that’s more than none. If you have a plan you just can’t seem to get into, throw it away and start a new one that you can get into. Here are ten different plans, each of which has its own features and heritage. Some are pretty normal, differing only in the particulars, and others are unusual (like the Chronological reading plan). Please do pick one and start it wherever you are in the year, if you’re not on one yet:


If you’re like me, though, and having to read a specific passage on a specific day stresses you out so much that getting behind is a death sentence to your reading for the rest of the month, I recommend something like this:


I don’t know who “Professor Grant Horner" is, and like Challies, I’m a bit wary of anything called a “Bible Reading System", but I like the theory and the bookmarks. Anyway, it’s just a set of ten bookmarks, each of which has a list of books on it. Theoretically, you read one chapter from each bookmark every day, and the bookmarks walk through the books on their list and then wrap around. You get to compare lots of Bible with lots of other Bible, and if you miss a day or two or want to read extra, there’s no penalty, not even a psychological one.

Unreliable idea handlers

It's difficult to tell, among all of the conflicting voices in the world, who is right. But some people are just agents of chaos in this endeavor: the ones who will present things they only just heard as facts, those who present as certainties those things of which they are actually uncertain, those who conflate the plausible and the probable, and those who just pick ideas off the ground and wear them unexamined.

Don't believe a word they say.

That said, I'm not actually sure what to do with them. I want to help them learn to care more about the difference between truth and rumor, but these people are often offended when I question their rigor. Let me know if you have any ideas.

The problem with believing you can figure anything out

The most important thing I learned from Cornell, something kneaded into me with every impossible assignment completed, was that nothing is actually beyond me. There's nothing too hard, too complicated, too esoteric or too impressive that I simply lack the capacity to understand. Such things don't exist.
“The secret things belong to the Lord our God, but the things that are revealed belong to us and to our children forever..."
- Deuteronomy 29:29
This realization, if worked into your bones and your knee-jerk reaction to new ideas, is a great blessing. Whole new worlds break open, and the quest for the key to the gate of each new kingdom just becomes a puzzle-hunt. There's also a bit of a curse, or perhaps just a new challenge:
Once there's nothing you feel you can't do, once the artificial barrier is removed, suddenly you have no barrier to dabbling in everything. I've started 14 books, I follow 77 blogs, there are 64 unread articles in my Instapaper inbox... It gets out of hand rather quickly.
I hypothesize that what I need is a new, better barrier, as well as a way to prune the system periodically. I'd definitely take suggestions though. Tweet @danielpcox to let me know what you think.

Tour de Shmoo: ShmooCon 2016 Puzzle/Crypto Contest

Every year at ShmooCon, one of the handful of official events is a puzzle contest. Traditionally this has been a "badge contest", where most of the clues come from the conference badges, but at the past two cons there has been a website with all of the puzzles, a leaderboard, and a much broader range of puzzle genres.

This year, the first year Decipher has gone as a group to ShmooCon, we won this contest! To celebrate, with the permission of the organizers ("Team Flowers By Irene", who had won the contest every year for the previous four cons), we present a description of our solutions to each genuine puzzle.

First, the cycling-themed ShmooCon program contained links to http://tourdeshmoo.shmoocon.org, http://twitter.com/ShmooConPuzzle, and an explanation of how the contest works. When you arrived at the site, you would see this bike path, and each node was clickable to retrieve a leg of the contest.


Of course we didn't arrive at the site the first time to discover that we were winning, but you get the idea.

Many of the legs involved just a bit of manual labor, like the one pictured above which required us to build a tower from the items in our bag. I'm going to skip those legs in this post. I'm pretty sure you could figure out how to make a tower of swag at a conference.

Here are each of the puzzles, in the order we solved (got credit for solving) them, plus any hints that were announced (and when they were announced). We were also told that the organizers had EE backgrounds, and that puzzle names and icons on the map were hints. If you don't want to know how we did it, just stay above the ####s in each case.



Snail - Solved 4:15PM Friday



######################################
######################################
######################################

We solved this one during the single-track talks on the first day. We recognized that this is a kind of barcode typically used to encode postal codes on letters. Using the chart on Wikipedia, we were able to mostly decode the numbers 20009, which was the zip code for the Washington Hilton, the venue for the conference. We figured it was just slightly corrupted and didn't bother to figure out what was wrong. It was revealed later that we could have read a bit further and used the check digit to recover the corrupted bit, but 20009 was indeed the answer.



Flip out - Solved 4:17PM on Friday

88777077773388999077776777802663022255533 88833777066666908335555550633094428099933 27770844330333444777777780899806777740927 7770777733668

@ShmooConPuzzle hints:
8:18PM Fri: Some bricks have numbers!
7:09AM Sat: When solving Flip Out do not cell yourself short. Press on and call it like you see it.
9:36AM Sat: How is Flip Out going? A lot of teams stuck there it seems. How many different digits do you see? Press 0 for assistance.

######################################
######################################
######################################

And the answer is... They're numbers from a phone keypad. This was also solved in the single-track of talks on Friday. If you translate each of the numbers into the possible letters it represents, you can work out the message:

"UR pretty smrt and clever now tell me what year the first txt msg was sent"

1992.



Codename - Solved 6:10PM Friday


@ShmooConPuzzle hints:
12:29PM Sat: Codename: The picture looks similar to one you have seen, are they DIFFerent?

######################################
######################################
######################################

This was a bit more puzzling. The image is a slightly corrupted version of the banner image at shmoocon.org this year. At the very end of this version, there is actually some ASCII data, visible by simply dumping the image into a text editor, that reads

-.. --- - -.. --- - -.. .- ... .... / -.. --- - -.. --- - -.. .- ... .... / -.. .- ... .... -.. --- - -.. --- - / -.. .- ... .... -.. --- - -.. --- - / -.. --- - -.. .- ... .... -.. --- - -.. --- - / -.. --- - -.. .- ... .... -.. --- - / -.. --- - -.. .- ... .... -.. --- - -.. --- - / -.. --- - -.. .- ... .... -.. --- - / -.. .- ... .... -.. --- - -.. --- - -.. --- - / -.. --- - -.. .- ... ....

Clearly that's Morse code, so if you translate it you get

DOTDOTDASH DOTDOTDASH DASHDOTDOT DASHDOTDOT DOTDASHDOTDOT DOTDASHDOT DOTDASHDOTDOT DOTDASHDOT DASHDOTDOTDOT DOTDASH

Ha. OK... Clearly that's Morse code, and when you translate it you get

UUDDLRLRBA

This is "Konami Code" which turned out to be the answer!



Stop - Solved 6:46PM Friday



######################################
######################################
######################################


And the answer is... resistor color codes. Use this chart as a reference to the numerical value that each resistor band color code maps to. Once you have that, it's as simple as going through each column in the Stop table and mapping that color to a resistor color code. So... It starts out "red orange blue green brown red brown red..." That is the resistor numerical equivalent to 23051212. Group the numbers into pairs and you get 23-05-12-12. Take the simple substitution cipher where 01=A, 02=B, etc and you get W-E-L-L. Keep going with that throughout the whole page and you get the message: "Well done. It looks like you passed electronics one hundred and one."


Football - Solved 11:38PM Friday



######################################
######################################
######################################

It's funny how we can sometimes look at a puzzle, think to ourselves, "that's this", and then put it aside and forget about it for half a day. Arguably, this could be the first one for which we had the correct idea.

Synchronous communications often have clock (very predictable pattern that both the sender and receiver can reproduce) and a data waveforms. The idea is that on the rising or falling clock edge, or at the center of the peak or trough, you poll the data waveform and interpret it as a digit. If you poll at the center of the peak here, you get

Binary: 0100110101001111010011110100001101011001010000110100110001000101
Hex: 4D 4F 4F 43 59 43 4C 45
ASCII: MOOCYCLE

Pretty straightforward.



Port - Solved 12:11AM Saturday

original:
What is

updated:
What is
@ShmooConPuzzle hints:
4:11PM Fri: Port Puzzle image has been updated for clarity. :)
8:19PM Fri: Port: Have you see the port icon's dot arrangement anywhere?
12:09PM Sat: Port: Good Shmoos always eat their serial!

######################################
######################################
######################################

The image is a waveform from a serial port. Googling "serial port outputs" gave us waves that looked like what we were seeing in the puzzle. From what we understood, it looked like what we were seeing could be ASCII characters transmitted along a serial port. The protocol is something along the lines of, "There's a start bit, a 7 bit encoding of an ASCII character, and then and end bit. So you divide up the wave and read off 0110001, 0101011, 0110001, which gives you "1+1". The question asks "What is...", so the answer is 2.

7-bit codes are weird because of the way that computers are built now, but apparently that's all the ASCII standard requires, and it came from a time when this sort of thing was still in question.



Polymorph - Solved 1:49AM Saturday


@ShmooConPuzzle hints:
1:34PM Sat: Polymorph: show your truecolors and remember to factor in the size of the image to resolve the hidden message.

######################################
######################################
######################################

This one was quite tedious. The original file is a bitmap, clearly corrupted in some way. The barely-legible repeated word "Good!" and slanted nature of the upper section suggested that perhaps something had been done to the dimensions in the header. We used this site to figure out where in the header the dimensions were stored, popped it open in a hex editor, and started messing with it.

The width and height start with the 19th byte. If you reverse the nibbles in the 19th byte and reload the image, here's what you see:


Then it got painful. We needed to adjust both the width and the height, but most adjustments were nowhere near legible. After an enormous amount of trial and error, we got these width+height/image combinations:

40020000 2C010000

D0020000 2C010000

00030000 2C010000


From which we pieced together

THEY ARE
NECK & NECK
BUT THE
MOOSE WINS
BY A NOSE!

Hex editors are excellent sleep aids. By now those of who hadn't already passed out went to sleep. Zzzzz...
But not for too long.



Get On Track - Solved 9:41AM Saturday

Badges

There were five unique conference badges: two different green attendee badges, red staff badges, yellow sponsor badges, and blue speaker badges. They had some dots on the top, which was the only meaningful difference between them.





@ShmooConPuzzle hints:
8:25PM Sat: Don't turn a blind eye to get on track. Feel what's in front of you and don't veer off the rails.


######################################
######################################
######################################

Obviously the dots are Braille, but when you decode them you get gibberish:


But a couple of us are familiar with some classical ciphers, and the icon looked like a rail. They hinted more strongly at the "rail" thing in a tweet. Turns out it's a rail fence cipher, of the zig-zag variety. Order and space them like so to solve:
FIRSTLEGCOMPLETELOOKWITHYOURHANDSATTHEKEYSTHENSCANTHEBITSTOADVANCEX



Zap - Solved 10:32AM Saturday



######################################
######################################
######################################



We actually figured out what this was by dragging it into Google Image Search, which returned results for "Telex punched tape", and after a bit more googling, we found the Baudot code and were able to decode it:

Welcome to Shmoocon 2016, Less Moose Than Ever%

In puzzle contests, Google is your best friend.



Phasor - Solved 12:06PM Saturday

??? [ that is, there were three question marks where there should have been a clue ]

There were also some interesting looking waves decorating our programs and on the signs outside each of the break-out rooms at the con:

From the programs:


From signs:









@ShmooConPuzzle hints:
8:43PM Fri: [Reply to "Any clue's for Phasor?"] Have you asked Google?
9:35PM Fri: We are about to sine off for the night. Please don't ASK about Phasor anymore.
3:39PM Sat: Looking for phasor hints? Look for the sines signs?

######################################
######################################
######################################


We needed the hints on this one. "ASK" was the important one, though we got stuck trying to interpret it as amplitude-shift-keying for a while. It turns out that the waves are digital signals encoded with Binary Phase-Shift Keying (BPSK):


When you decode the waves, you get two characters per wave (replacing spaces with _ so you can see it):

I_
nt
o_
de
_m
cl
_t
cy
bi
y_
ri
e!

We actually missed finding a wave there somewhere, but it doesn't really matter. We were able to assemble these into "I want to ride my bicycle!" just fine.



Toyota - Solved 7:43PM Saturday

BDB6BCA6BCB3B5538938B26CF1503617C9236C0
9D855F7C1A2831944BDB9BCAA5D243EB2323D3E
37F2A92D8606D324B3CADD892002ACEE38B61F7
D236EB5F8552C3DA384B344543EBCA6BCB3BABD

@ShmooConPuzzle hints:
2:28PM Sat: Toyota: use the hint from Get On Track literally.
2:33PM Sat: Toyota: there are two parts to this. You will know you have completed the first when it looks like you failed.
3:08PM Sat: Remember hints that are given out to a team are not Exclusive Or meant to give one team an advantage.
3:33PM Sat: Toyota step 2: x = y = sqrt(len(bin)+1)

And the solution to Get On Track (above) was meant to be a hint to this puzzle.


######################################
######################################
######################################

This was the hardest puzzle for us. The clue from Get On Track was FIRST LEG COMPLETE LOOK WITH YOUR HANDS AT THE KEYS THEN SCAN THE BITS TO ADVANCE X, and we spent ages puzzling over this, trying to come up with something reasonable. Without the hints, we would never have solved it.

Anyway, "Look with your hands at the keys" was supposed to mean look at our badges and think, "ah, the key must be 'BICYCLE'"! Sure. So you XOR (that hint from Twitter was handy here) BICYCLE with the hex characters of the puzzle. Then what you've got is a bunch more gibberish, but here's where it gets cool.

The first characters we got out of the XOR were 0xFFFFFFFFFFFFFF, so... all whited out. Their other hint: "...then scan the bits to advance" (the X at the end was just padding) plus their "Toyota step 2: x = y = sqrt(len(bin)+1)" tweet suggested that we lay the bits out on a grid and hope for a QR code. Charles to the rescue with some Ruby ( https://gist.github.com/cstrahan/bd75dcc2c72c31fea93e ). It was pretty fun because we started out using "bicycle" instead of "BICYCLE", and because ASCII lowercase and uppercase letters are just a linear translation away from one another we could kind of see the mangled QR code, and had to figure out what was wrong. When we uppercased, it jumped out at us instantly and beautifully:


Which scans to produce

http://shmoocon.org/velo

Finally.

That URL just had this on it:

Jetsetter
ICOIDZFECRT,GAOHXHVIVVVVILGYUDRXJEDWIGQY

Ah, good, a clue for Jetsetter to replace its ???s.

At this point we got dinner and went to the Saturday-night party to relax a bit, listen to some nerdy stand-up, and... keep working on the puzzles.



Jetsetter - Solved 10:14PM Saturday

???

@ShmooConPuzzle hints:
5:54PM Sat: Keep the theme in mind the theme of this puzzle when completing Jetsetter.

And of course, the ??? got filled in with the solution to Toyota above.


######################################
######################################
######################################

We couldn't get reliable Internet access in the party, so like nerds a few of us grabbed beers and went to hang out in the lobby instead. We solved this one relatively quickly. The URL was /velo, which is French for bicycle. The theme of the conference was "Tour de Shmoo" or "Tour de France" or some such thing involving moose riding bicycles and a lot of French. So we did the obvious thing, and started discussing the puzzle in French accents.

A classical cipher with a French name is the Vigenère cipher, so it made some sense to try it on the Jetsetter letters. The second key I tried was "tourdefrance", which yielded "pour avancer, changer devitesse dans sequence", which Google Translate tells me means "to advance, in sequence, speed change".

Importantly, when we submitted Jetsetter, the organizers responded with a corrected translation:

"'To move forward, shift gears in sequence' use this translation for next stage."



Lying Pasta - Solved 12:26AM Sunday

MDVQ GWT NK QDGHU RPCJ GZ A AJEW QDBSQNQ GTHJ MBCC BNE QNDD JL OPH CIKRE



######################################
######################################
######################################

Things were getting scary here, because the organizers had tweeted that rpisec (our rivals) had already solved Lying Pasta and Equality, so we were behind.

We had tried to solve Lying Pasta several times earlier using some form of substitution cipher, because there are spaces, and that just screams substitution. Turns out it's not that at all. Darth Null, the constructor of many a ShmooCon puzzle before wandered by, and made us think a lot about pasta. Finally: Lying ~= fibbing, we're supposed to "shift gears in sequence", pasta comes from Italy, like a guy named... Fibonacci. We're supposed to shift each letter by its corresponding number in the Fibonacci sequence.

1 1 2 3 5 8 13... Actually, this blows up very quickly. Time to break out the Ruby again. First, though, notice that the first few characters done manually are looking good:

M+1 = N
D+1 = E
V+2 = X
Q+3 = T

Boring bits removed:

$> s = "MDVQGWTNKQDGHURPCJGZAAJEWQDBSQNQGTHJMBCCBNEQNDDJLOPHCIKRE".split(//).map {|ch| ch.ord - 'A'.ord + 1}
=> [13, 4, 22, 17, 7, 23, 20, 14, 11, 17, 4, 7, 8, 21, 18, 16, 3, 10, 7, 26, 1, 1, 10, 5, 23, 17, 4, 2, 19, 17, 14, 17, 7, 20, 8, 10, 13, 2, 3, 3, 2, 14, 5, 17, 14, 4, 4, 10, 12, 15, 16, 8, 3, 9, 11, 18, 5]

$> alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(//)
=> ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]

2.2.1 :049 > s.each_with_index.map{|x,i| (x+fib(i+1)) % 26}.map{|x| alphabet[x-1]}
=> ["N", "E", "X", "T", "L", "E", "G", "I", "S", "T", "O", "U", "G", "H", "D", "O", "N", "T", "B", "E", "A", "F", "O", "O", "L", "P", "R", "O", "T", "E", "C", "T", "Y", "O", "U", "R", "H", "E", "A", "D", "A", "N", "D", "P", "L", "A", "Y", "B", "Y", "T", "H", "E", "R", "U", "L", "E", "S"]

2.2.1 :050 > s.each_with_index.map{|x,i| (x+fib(i+1)) % 26}.map{|x| alphabet[x-1]}.join("")
=> "NEXTLEGISTOUGHDONTBEAFOOLPROTECTYOURHEADANDPLAYBYTHERULES"



Equality - Solved 12:56AM Sunday

ZNPQHCWMFABGSUG KTSUMFKODMQUMEL DBILNQCHQBZNQFM
QMUNKSAMQQMULHE TBKOCHMLIKQMDPV DRNGFUYTRNPOBLW

Of course the previous leg's result is a hint for this one.


######################################
######################################
######################################

Still trying to catch up to rpisec, but there hadn't been anything about them winning, so we press on (which, of course, we would have done anyway, but with less moral).

The previous leg's result was NEXT LEG IS TOUGH DONT BE A FOOL PROTECT YOUR HEAD AND PLAY BY THE RULES. Play by the rules? There's one classical cipher that almost always makes an appearance in crypto contests, and it's called Playfair. But what to do for the key? We figured it was probably hinted, so what's striking in here that we haven't used yet? Protect your head. The key is "helmet".

Decrypting with those parameters yields "youplayedfairsoimustconfessthecakeisalieyoubestskipdessertthefinallegiseasyaskoaszlugsifex".



Piece of Cake - Solved 1:58AM Sunday

???

There was also this tantalizingly as-yet-unused bit of our program full of messages and people's names:

PVCOL RLNGO CNFRV BJZAS KDART HNULL SSQHA YJQOU LEGUK MZFUS
XFLOW ERSBY IRENE IONNY HTGSU HIVOS SHRVE IVWVV BRDIU VTBSV
HYHWE WTIWH ROHFA CWCMB EMCUJ VYENM AOGWN YHTGD TFGHT NYHIE
YTHEL SUVSE JHFSS YRYHX SDIFO HNEHK RAHEY GMARK RZWAI ZOHNF
LRQMO OSEHT FYHJS CLZHW OEYKK IEHPS GXBPI HWHLO SHHHB ADTAU
URBLC AWAKE NSRFX LOZUI OATOH MVFPV LTBXR THANK HEIDI QONSY
JZLSJ TWAIS FKHIM EAOVX MYGDC SAUCB PSONO HLOQX SMFIK KWLVN

######################################
######################################
######################################

The previous solution had been "you played fair so i must confess the cake is a lie you best skip dessert the final leg is easy as koaszlugsifex". What the heck is a koaszlugsifex? At least some things were clear, though: this puzzle involves pie. The cake is a lie? You best skip dessert? The final leg is easy as ______? Pie, definitely. Delicious, and also a number. But how to use it?

We spent an enormous amount of time thinking about "confess" (church? priests? confession, catholicism... Is there an especially catholic cipher...?) and portal because of "the cake is a lie" (is there a cipher really relevant to portal that would take pi as a key?).

"...you best skip dessert". At some point, one of our guys thought to try skipping through the unused text in the program by each of the digits of pi. If you start doing that you get "CONGRATS YOU..." Holy macaroni batman... better finish up quick...

"Congrats you finished the race now tell us in email the GPS address of this shmoocon xiin

CONGRATS YOU FINISHED THE RACE NOW TELL US IN EMAIL THE GPS ADDRESS OF THIS SHMOOCON XIIN

So we looked up the latitude of the Washington Hilton on Google Maps, and sent it in. So... we won? It's pretty dang early in the morning to be second-guessing ourselves, but... what the heck is a koaszlugsifex?




koaszlugsifex? - Solved 11:20AM Sunday

Don't worry, we did actually decide around 2:30AM or so to get some sleep. We went home thinking we'd lost, and came back the next morning early to keep attacking this final problem. We were encouraged to hear that rpisec hadn't solved it, but when we told them we didn't know what koaszlugsifex meant they said, "yeah, that's a fun one". More work to be done, it seemed.

Because knew we had gotten something significant out of the block of text in the program, we imagined several things that koaszlugsifex might mean, and tried to guess the cipher and key from that. The organizers had quipped the night before that the final puzzle was unusual, unlikely to be on rumkin.com (a puzzle site), so we were going through every obscure cipher we could think of looking for a decryption.

At 11:20AM in the Chill-Out room, however, they took pity on us and came over to tell us that we had won the night before with the GPS coordinate of the hotel. What was koaszlugsifex?

Consider the sentence it had come from:

"you played fair so i must confess the cake is a lie you best skip dessert the final leg is easy as..."


So we went and picked some locks to unwind and bask in our victory.
We won 3 tickets to ShmooCon 2017, and our pick of some sweet swag (I picked up Python For Kids) at closing ceremonies.

THANK YOU
  • Team Flowers By Irene, the organizers, for awesome puzzles and a sense of humor
  • rpisec for being a worthy rival, and right there with us all the way to the end
  • Decipher team for putting so much effort into this thing

See you there next year!

Evernote isn't a blog

Using Evernote public notebooks really flopped. No RSS, annoying pop-up for non-logged-in users, un-blog-like format. I did love being able to edit "posts" at-will without a lot of rigamarole, and I also loved the Evernote integration, so let's try this out for a while and see what it's like.

Postach.io apparently just watches a particular notebook for the "published" tag on a note, and then slurps it up onto the blog. Editing on the fly works, there's an atom feed, and I'm writing this from Evernote. Apparent success!