Jekyll2024-02-03T21:54:56+00:00https://fortenf.org/e//e/feed.xmlFort & Forge2023 Paired Book/Movie Recommendations2024-02-03T16:12:47+00:002024-02-03T16:12:47+00:00https://fortenf.org/e//e/2024/02/03/paired-book-movie-recs<p>I wanted to write down some thoughts on the best books I read and movies I watched in 2023, but to make the exercise a little more interesting I decided to pair each book with a movie and talk a little bit about the connections between them.</p>
<!--more-->
<p>Full disclosure—not all of these came out in 2023, but I did read/watch each one in the past year.</p>
<h1 id="oppenheimer--the-making-of-the-atomic-bomb"><em>Oppenheimer</em> / <em>The Making of the Atomic Bomb</em></h1>
<div id="comparison">
<figure id="movie_img">
<div id="book_img"></div>
</figure>
</div>
<style>
div#comparison {
width: 20vw;
height: 30vw;
max-width: 300px;
max-height: 450px;
overflow: hidden;
position: fixed;
left: 30px;
bottom: 30px;
}
div#comparison figure {
background-size: cover;
position: relative;
font-size: 0;
width: 100%;
height: 100%;
margin: 0;
}
div#comparison figure>img {
position: relative;
width: 100%;
}
div#comparison figure div {
background-size: cover;
position: absolute;
width: 50%;
box-shadow: 0 5px 10px -2px rgba(0, 0, 0, 0.3);
overflow: hidden;
bottom: 0;
height: 100%;
}
</style>
<script>
var divisor = document.getElementById("book_img");
function getScrollPercent() {
var h = document.documentElement,
b = document.body,
st = 'scrollTop',
sh = 'scrollHeight';
return (h[st]||b[st]) / ((h[sh]||b[sh]) - h.clientHeight) * 100;
}
addEventListener("scroll", moveDivisor);
function moveDivisor(e) {
let pct = getScrollPercent();
console.log(pct);
if (6 <= pct && pct < 30) {
document.getElementById("book_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/the_making_of_the_atomic_bomb.jpg)";
document.getElementById("movie_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/oppenheimer.jpeg)";
divisor.style.width = (pct - 6.0)/24.0 * 100.0 + "%";
} else if (30 <= pct && pct < 67) {
document.getElementById("book_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/how_i_won_a_nobel_prize.jpg)";
document.getElementById("movie_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/tar.jpeg)";
divisor.style.width = (pct - 30.0)/37.0 * 100.0 + "%";
} else if (67 <= pct && pct < 90) {
document.getElementById("book_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/battle_royale.jpg)";
document.getElementById("movie_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/godzilla_minus_one.jpeg)";
divisor.style.width = (pct - 67.0)/23.0 * 100.0 + "%";
} else if (pct >= 90) {
document.getElementById("book_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/less.png)";
document.getElementById("movie_img").style.backgroundImage = "url(/e/assets/book_movie_pairs_2024/american_fiction.png)";
divisor.style.width = (pct - 90.0)/10.0 * 100.0 + "%";
} else {
document.getElementById("book_img").style.backgroundImage = "";
document.getElementById("movie_img").style.backgroundImage = "";
}
}
</script>
<p>I read Richard Rhodes’ <em>The Making of the Atomic Bomb</em> in preparation for <em>Oppenheimer</em>’s release, and it is perhaps the best work of non-fiction I’ve ever read. Part scientific explainer, part historical / biographical narrative, the book charts the progress of physics from the turn of the 20th century all the way to the culmination of the Manhattan project. At the time of its release it was universally celebrated—it won the National Book Award and the Pulitzer Prize for nonfiction; the inside cover contains testimonials from five different Nobel laureates. At no point does Rhodes elect to simplify or hand-wave through the science; it’s the most technically-demanding book intended for public consumption I’ve ever encountered.</p>
<p>The first third of the text is about nascent discoveries in a new field of science—nuclear physics. Rhodes outlines the key experiments: Ernest Rutherford’s discovery of beta radiation, his gold foil experiment disproving the plum-pudding model of the atom, J.J. Thompson’s discovery of the electron, James Chadwick’s discovery of the neutron, and Enrico Fermi’s neutron bombardment experiments leading to the discovery of new elements. All the while, conflict is brewing on the European continent. Germany’s increasing militarism triggers a mass exodus of scientists to Britain and the US.</p>
<p>Fermi emigrates to Chicago to flee Fascist Italy; the British send a fighter bomber to evacuate Niels Bohr when the Nazis invade Copenhagen. European scientists who were previously part of a unified community suddenly found themselves cleaved in two. Prior to the schism, science had progressed far enough to suggest a frightening possibility: trapped within the nucleus of an atom was enough energy to change the course of the war.</p>
<p>The rest of the text is about the Manhattan project—convincing Roosevelt to launch the initiative, early fission experiments at the University of Chicago, the launching of the project, and the test at Trinity.</p>
<p>Going into <em>Oppenheimer</em>, I was excited to see all this depicted on-screen. I wanted to watch Meitner and Frisch ski while conceiving fission, I want to witness Fermi and Szilard build Chicago Pile-1, I want to see Lawrence build his calutrons, Seaborg synthesize plutonium, Von Neumann model the explosive lenses.</p>
<p>But Christopher Nolan was right not to indulge us: the genius of Rhodes’ book was in its demanding technical sophistication; it’s a poor fit for a 3-hour blockbuster aimed at a general public that barely knows what a neutron is.</p>
<p>Instead what we got was an almost straightforward biopic of Oppenheimer, a film more concerned with politics, philosophy, morality. It’s the best thing Nolan has ever made—which is an absolutely bonkers thing to say given his filmography, but it’s true.</p>
<p>More than anything, the screenplay nails the paradoxical nature of Oppenheimer: a brilliant theoretician who pulled off a triumph of experimentalism/engineering, someone intrigued by, but never wholly committed to left-wing politics, someone equally interested in quantum mechanics and Hindu classical texts.</p>
<p>Most importantly: someone who unflinchingly championed the development of the atomic bomb but immediately pivoted to “arms control” and moral quandary once he was no longer in charge. In Von Neumann’s words: “sometimes someone confesses a sin in order to take credit for it”. Indeed, history I think has proven Teller and Strauss right—the H-bomb—whose development Oppenheimer loudly opposed in public—was feasible and needed to be pursued to keep pace with the Soviet Union.</p>
<p>Further recommendations:</p>
<ul>
<li>If you want to learn more about the science behind the bomb, check out <a href="https://www.youtube.com/watch?v=y-FuqptTZow&list=PLiaHhY2iBX9gPWroqwWRdLiWlWRZ1TE0L">Welch Lab’s videos</a></li>
<li>If you enjoyed the black-and-white sections of <em>Oppenheimer</em> I suspect you’ll love anything by Aaron Sorkin. In particular I recommend <em>The Trial of the Chicago 7</em></li>
<li>Rhodes also wrote a follow-up book, <em>Dark Sun</em>, about the making of the hydrogen bomb.</li>
</ul>
<h1 id="tár--how-i-won-a-nobel-prize"><em>Tár</em> / <em>How I Won a Nobel Prize</em></h1>
<p>It’s taken a surprisingly long time for the literary world and Hollywood to grapple with and respond to phenomena like the Me-Too movement and cancel culture—but in recent years artists finally seem brave enough to produce work that tackles these subjects (beyond of course, purely narrative works like <a href="https://en.wikipedia.org/wiki/She_Said_(film)"><em>She Said</em></a>).</p>
<p>Chief amongst these is <em>Tár</em>, a remarkable film by director Todd Field about Lydia Tár, the conductor of a prestigious Berlin orchestra facing allegations of workplace misconduct. We watch Tár—brilliantly played by Cate Blanchett—argue with woke students at Juilliard, bully the classmate of her adopted daughter, fake a violent attack to cover up a fall, steal a pen off the desk of a colleague, and finally be chased out of the country to Asia, where she conducts the score for the <em>Monster Hunter</em> video game in front of an audience of cosplayers—demoted to a position she would have held in contempt just a year earlier, but still conducting, and still in love with music.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/uLVCs4G31jk?si=SsqtfrDgvNBaB7HN" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
<p><em>Tár</em> is endlessly thought-provoking: why did Field make his sexual harasser a woman? (why did he make her a lesbian?) What does Lydia Tár <em>deserve</em>? Can we separate the <a href="https://letterboxd.com/grifflightning/film/tar-2022/">Tár from the Tártist</a>?</p>
<p>It is galling that Tár won nothing in last year’s Academy Awards—losing in all of its most deserving categories to <em>Everything Everywhere All at Once</em>—a film whose most profound insight seems to be “yes, the multiverse renders life meaningless, but the existence of love and kindness still makes life worth living.” Unlike <em>EEAAO</em>, <em>Tár</em> doesn’t pretend to have all the answers—it wants to start a conversation, an argument, between its viewers; in contrast <em>EEAAO</em> is content with tiding us over with sophomoric humor and nihilism 101.</p>
<p><em>How I Won a Nobel Prize</em>—the debut novel of Julius Taranto—is also a meditation on cancel culture. The premise is this: a wealthy billionaire establishes The Rubin Institute on an island off the coast of Connecticut. The Institute is explicitly a haven for the cancelled—any sufficiently renowned academic fired for saying the n-word in class or sleeping with a graduate student is invited to the Institute to conduct their work undisturbed by the reprobations of society.</p>
<p>Helen, our novel’s protagonist, is a brilliant graduate student studying high-temperature superconductivity. When her advisor is pushed out of his current post and elects to join the Institute, Helen decides to follow him—bringing her reluctant partner Hew in tow. The endless arguments between Helen and Hew about the morality of the Institute and its surrounding culture wars form the heart of the novel. They’re a chance for Taranto to argue with himself—and to invite the reader to ponder their own stance. Is it worth tolerating intolerance if it gives you the opportunity to make practical superconductivity (and make practical all the things that come with that—limitless clean energy, levitating trains, ultra fast computing speeds)? What are the appropriate consequences for violating a societal norm—total expulsion, social shunning?</p>
<p>Through Helen and Hew’s eyes we get to see the Institute at work—its cafeteria serves “ostentatiously problematic meat” (“foie gras, roast suckling pig, octopus, horse”), undergraduates are educated in the Canon—whose syllabus includes only dead, white writers, and the Institute’s only building is a phallus-shaped tower positioned so that its upper residents can look down at Yale (the top floor contains a telescope meant for exactly this purpose).</p>
<p>While the ending of the novel—which I will not spoil—pales in comparison to <em>Tár</em>’s sublime ending, on the whole it is a worthy read. Taranto—who has no scientific background whatsoever—nails the technical jargon around the superconductivity discussions (at least it was good enough to not stick out to me). Like Tár, the novel doesn’t pretend to have all the answers to the thorny questions it provokes, but you’ll come out of it with a better appreciation for the perspectives of each side.</p>
<p>Further recommendations:</p>
<ul>
<li>I loved <a href="https://www.nybooks.com/articles/2023/01/19/the-instrumentalist-tar-todd-field-zadie-smith/">this review</a> of Tár by Zadie Smith that appeared in the <em>New York Review of Books</em> (paywalled, but you can create a free account just to read this one piece.)</li>
<li>Listen to <a href="https://open.spotify.com/album/2mxjaerL9JdNbLnGdCfh8Q?si=0LtkF9C_TgGt9pyU8eFPqQ">the rest</a> of Mahler 5, the piece that Lydia Tár is working on throughout the film</li>
<li>Read <a href="https://www.nytimes.com/2023/08/03/science/lk-99-superconductor-ambient.html">an explainer</a> about LK-99 (the “superconductor of the summer”) and superconductivity in the New York Times</li>
</ul>
<h1 id="godzilla-minus-one--battle-royale"><em>Godzilla Minus One</em> / <em>Battle Royale</em></h1>
<p>The thing that everyone seems to say about <em>Godzilla Minus One</em>—Japan’s newest Godzilla movie—is how good it looks despite having a budget of only $15 million. This is certainly true—the film rivals anything that Hollywood has produced in the past few years in terms of visual effects and was just nominated for a VFX Oscar, but that’s not the most interesting thing about it.</p>
<p>The thing that <em>Godzilla Minus One</em> gets that the American <em>Godzilla</em> films do not is that it needs to be about more than just kaiju attacks. The original <em>Godzilla</em> was a metaphor for nuclear weapons; in <em>Minus One</em> Godzilla is a more general symbol of the devastation following WWII, and in particular the defeated Japanese government’s utter inability to help its citizens deal with that devastation.</p>
<p>We follow a <a href="https://www.youtube.com/watch?v=4SSOTm0hEDQ&t=90s">failed kamikaze pilot</a> participate in a citizen-organized effort to bring down Godzilla, while watching him piece together the wreckage of his personal life (his parents were killed in the fire bombing of Tokyo, and a woman and her adopted baby have moved in with him in his home). Then Godzilla arrives and rampages through Ginza, a district of Tokyo. With both the American military unable to help due to tensions with the Soviets, and the Japanese government unwilling to lift a finger, the citizens of Tokyo band together to deal with the monster themselves.</p>
<p><em>Battle Royale</em>—the 1999 Japanese dystopian novel about a group of high school students forced to fight to the death on an island in an alternative-history totalitarian Japan is now probably most famous in the US as the book that Suzanne Collins ripped off when writing <em>The Hunger Games</em>. But just like <em>Godzilla Minus One</em> is a superior work than any American <em>Godzilla</em> movie, <em>Battle Royale</em> is better than its US-counterpart. It’s gorier, more violent, maybe equally thrilling—but most importantly it has a better handle on the workings of its totalitarian government. In <em>The Hunger Games</em>, the games exist as entertainment for the wealthier districts; in <em>Battle Royale</em> the games are suggested to persist due to dystopian, bureaucratic inertia:</p>
<blockquote>
<p>Look, the government is run by nothing but idiots. Not only that, but you can’t get into government unless you’re an idiot in the first place. I think whenever this lovely little game was concocted—probably by some lunatic military theorist—nobody said a word against it. Butting in on the business of the experts only brings trouble. And in this country, it’s terribly difficult to discontinue something once it’s been established. Stick your nose into something that doesn’t concern you, and you’ll be out on your ass. Or maybe you’ll be sent to a labor camp on charges of deviant ideological tendencies. Even if nearly everyone is against it, nobody says anything. And so nothing changes. There are a lot of screwed up things in our country, but they’re all structurally the same. It’s textbook fascism.</p>
</blockquote>
<p>I had a little trouble keeping through of the names of all 40 classmates (perhaps Japanese names are harder for me to remember than American ones), but other than that I thought the translation was surprisingly readable.</p>
<p>Further recommendations:</p>
<ul>
<li>If you’re not going to watch <em>Godzilla Minus One</em>, at least listen to <a href="https://open.spotify.com/track/5f9XWGwkfNHVd8c8Li8C5A?si=7a08249feb1240d2">its booming score</a>.</li>
<li>I quite enjoyed <em>Monarch: Legacy of Monsters</em>, an Apple TV+ show set in Legendary’s <a href="https://en.wikipedia.org/wiki/MonsterVerse">MonsterVerse</a>. Watch it for the kaijus, but stay for the surprisingly good story.</li>
<li>Obviously you should check out <a href="https://www.imdb.com/title/tt0266308/">the film adaptation</a> of <em>Battle Royale</em>.</li>
</ul>
<h1 id="american-fiction--less"><em>American Fiction</em> / <em>Less</em></h1>
<p>It’s striking how similar the plots of <em>American Fiction</em> and <em>Less</em> are—in both works, the protagonist is a struggling writer who enjoyed moderate success earlier in his career, but whose current novels are not selling. Their writing problems parallel their personal problems: unlucky in love, adrift in middle age. The protagonists embark on a journey of self-discovery to bring them closure in both their professional and personal lives.</p>
<p>This is mostly a testament to the subjects writers tend to write about (themselves—<em>American Fiction</em> was based on <a href="https://en.wikipedia.org/wiki/Erasure_(novel)">a novel</a>). In truth, the two works are dissimilar beyond their framing. <em>American Fiction</em> is—like <em>Tár</em>—concerned with the relationship between art and the artist. See—Monk (the novelist protagonist) is black, but he doesn’t think he writes <em>black</em> books. (In a very funny scene he visits a bookstore and hauls his books from the African-American section to Historical Fiction). To prove a (admittedly muddled) point, he pens a stereotypical “black” book titled <em>My Pafology</em> and submits it to his editor. Of course, it succeeds wildly and is immediately bought by a publisher with Hollywood interested in a movie adaption. While Monk navigates his newfound literary success he also must deal with the death of a close sister, an aging mother with dementia, and an estranged brother.</p>
<p>The underlying tension about whether it’s good or not to lean into stereotype to please white audiences is never fully resolved over the course of the film, indeed the ending falls a little flat. However the humor more than makes up for this—my theater was having a rollicking time.</p>
<p><em>Less</em> deals a little with authorial identity (at one point its protago-novelist ponders whether he is a “bad gay” because his books are insufficiently committed to the homosexual agenda), but it’s mostly a book about coming to grips with middle age. The premise is this: to escape the looming wedding of an ex-boyfriend, Arthur Less accepts a series of invitations that take him on a year-long journey encircling the globe—to New York City, to interview fictional sci-fi author H.H.H. Mandern, then to Mexico to attend a conference on his literary mentor; to Turin to attend an award ceremony, to Berlin to teach a creative writing seminar, to Morocco where he intends to celebrate his 50th birthday, to India to finish up his current book, and finally to Japan to write an article for a travel magazine about Kaiseki cuisine.</p>
<p><em>Less</em> is one of the most distinct Pulitzer-Prize winning novels you’ll read—unlike its fellow awardees it’s light, satirical, and (like <em>American Fiction</em>) laugh-out-loud funny. Greer has a gift for simile—the traffic-jammed highways of Mexico City are like “the rivers of red taillights conjur[ing] lava flows that destroyed ancient villages”; the coffee-maker in a hotel room is “a hungry little mollusk, snapping open its jaws to devour pods.”</p>
<p>Greer succeeds at giving his protagonist an enduring humanity; as a New York Times review puts it: “By the time Arthur reaches Japan, the reader isn’t just rooting for him but wants to give the poor guy a hug.”</p>
<p>Further recommendations:</p>
<ul>
<li><a href="https://www.harpercollins.com/products/yellowface-r-f-kuang"><em>Yellowface</em></a> by R.F. Kuang is also about racial diversity in the publishing industry</li>
<li>Greer wrote a sequel to <em>Less</em> called <a href="https://www.hachettebookgroup.com/titles/andrew-sean-greer/less-is-lost/9780316301398/?lens=little-brown"><em>Less is Lost</em></a></li>
</ul>I wanted to write down some thoughts on the best books I read and movies I watched in 2023, but to make the exercise a little more interesting I decided to pair each book with a movie and talk a little bit about the connections between them.Mystery Hunt 20232023-01-18T16:12:47+00:002023-01-18T16:12:47+00:00https://fortenf.org/e//e/2023/01/18/mystery-hunt-2023<p><em>This post is about the 2023 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at <a href="https://puzzlefactory.place">puzzlefactory.place</a>.</em></p>
<p>This past Monday was the third Monday in January which means that another Mystery Hunt has come and gone. For the first time since the COVID-19 pandemic started, hunt was held in-person on MIT’s campus this year. As you’ll see, I was absolutely delighted to be back.</p>
<!--more-->
<h1 id="theme">Theme</h1>
<p>In the opening skit, we announced that the theme of the hunt was the “Museum of Interesting Things.” We also announced that all puzzles in this year’s hunt had been written by an artificial intelligence named MATE that we had built, and that MATE was so good at writing puzzles that future Mystery Hunts would be written by MATE instead of the winning teams.</p>
<p>As teams explored the Museum, they eventually broke out into the Puzzle Factory—a place where all the puzzles in the hunt were produced and the true theme of this year’s hunt. Teams eventually reactivated four additional AI’s, solved their rounds of puzzles, and made their way back to the factory—located in teammate’s hunt HQ in the Bush Room, and produced a new puzzle of their own—the 2023 coin.</p>
<h1 id="a-cog-in-the-machine-in-the-puzzle-factory">A cog in the machine (in the puzzle factory)</h1>
<p>My team, teammate, won last year’s hunt which meant that we were tasked with writing and running this year’s. I knew when we won that I wouldn’t be able to take on a major role, but even still I overestimated how much time I could devote to hunt.</p>
<p>For one thing, I was so busy with my new job (creating <a href="https://www.codeium.com/">a real AI that writes code</a>) that I didn’t have much time to work on our puzzlehunt (involving a fake AI that writes puzzles). In retrospect, I also was a little burned out from puzzle-writing; for the life of me I could not come up with new ideas of puzzles I wanted to write, and the whole cycle of choosing a theme, writing metapuzzles, writing puzzles, testsolving, revising, post-prodding and fact-checking them just felt a little less novel this go-around.</p>
<p>It was an interesting experience going from someone in a leadership position in the 2021 hunt to being just a cog in the machine. I recall telling Brian (one of our directors) that weekly newsletters were a great way to keep less active members of the team engaged with hunt, only to find myself getting all of my information about hunt from these newsletters.</p>
<p>As much as I tried to pay attention to what was going on, it was only when I arrived in Boston this past week to help out in person that I fully understood the structure of what we’d built.</p>
<h1 id="running-the-hunt">Running the hunt</h1>
<p>Running the 2021 Mystery Hunt mostly consisted of sitting at my desk and typing furiously at my computer. Running the 2023 hunt was much different. The in-person nature of it added mind-boggling amounts of additional work and bureaucracy. Unburdened from having any qualifications that made me an important person who needed to stay in HQ and focus on teams’ progress, I helped out however I could (move 10 boxes from room 2-150 to room 10-105, run <a href="https://puzzlefactory.place/basement/think-fast">Think Fast</a> for Setec in-person then run it for Palindrome virtually, do a last-minute factcheck the <a href="https://puzzlefactory.place/factory-floor/mates-team">clickaround</a> to account for last-minute changes to the website, postprod a fix for an erratum for <a href="https://interestingthings.museum/puzzles/conglomerate">Conglomerate</a>, answer hint after hint after hint after hint). It was all honestly really, really fun.</p>
<p>It was a joy to just be back, roaming the halls of MIT that I knew like the back of my hand, seeing what changed and what stayed the same. One of the first things I did when I got to campus was testsolve <a href="https://puzzlefactory.place/basement/subterranean-secrets">Subterranean Secrets</a> a runaround in the tunnels of MIT that was so well-written it made me almost emotional.</p>
<h1 id="coin-to-be-found-later">Coin to be found later</h1>
<p>OK, let’s get to the topic on everyone’s mind: why was hunt so long? By Friday evening, it was already apparent to us that teams were falling behind our solve-time targets that we had laid out. From that point forwards, hunt-comm in HQ was laser-focused on doing whatever they could to nerf the back-half of the hunt easier so that hunt could end on time.</p>
<p>Previous hunts recommended team sizes of 75 people for the optimal hunt experience. This year we lowered that to 60. Why? Well, as we stated at wrap-up, we genuinely thought at one point that we were writing a smaller hunt. We eventually determined that this was not the case (I think after running some simulations?), but by that point we had already made the size recommendation.</p>
<p>Why did we think we were writing a smaller hunt? Well primarily because we were writing fewer puzzles. The 2022 hunt had 196 puzzles; we had around 120. And yes, I know, I know what you’re saying: puzzle count is not a good metric for determining hunt difficulty, and it’s true: hunts run long not because there are too many puzzles to solve, but because teams get stuck; stuck on hard puzzles and more importantly, stuck on hard metas. If our metas were straightforward and our puzzles on average easy, then yes I think 120 puzzles might have played a little fast, but they were not and they were not.</p>
<p>You see, teammate loves unconventional puzzles (internally we call them “illegal” puzzles). The gimmick of embedding a puzzle in the loading animation just too good for us to pass up, even if it did make some teams confused and think our site was broken. Indeed, part of the premise behind the four AIs teams released in the third act of the story was that each AI was rejected by “teammate” for writing illegal puzzles, puzzles whose answer is in <a href="https://puzzlefactory.place/ascent">a foreign language</a>, metas arranged in a sequence that <a href="https://puzzlefactory.place/wyrmhole">loops back on itself</a>, puzzles with answers that include <a href="https://puzzlefactory.place/abcde">new lines and punctuation</a>, puzzles only accessible by <a href="https://puzzlefactory.place/conjuris-quest">playing a video game</a>.</p>
<p>Dan Katz hasn’t released part 2 of his <a href="https://puzzlvaria.wordpress.com/2023/01/17/2023-mystery-hunt-part-1-less-is-more/">recap</a> post yet, but its easy to predict that the thesis will be that we should have just cut Act 3 out entirely. I’m here to say that we simply could never have done that; when we won hunt we wanted to use the opportunity to write rounds with bold and interesting ideas—ideas that came to life in Act 3.</p>
<p>This is not to say that we didn’t mess up, but just to say that the fix was not excising rounds, but instead making everything easier. Act 1 (the museum) should have been entirely fish puzzles (which would have also made the hunt friendlier to smaller, less experienced teams), Act 2 (the factory) had way too many puzzles with unnecessarily difficult extractions after the meat of the puzzle was over (<a href="https://puzzlefactory.place/basement/think-fast">Think Fast</a>, <a href="https://puzzlefactory.place/basement/subterranean-secrets">Subterranean Secrets</a>, and <a href="https://puzzlefactory.place/basement/quilting-squares">Quilting Squares</a> come to mind), and Act 3 (the rogue AIs) should have had easier metas and fewer puzzles.</p>
<p>Of course, by the time we realized all this, it was too late to do any of that, so we did what we could. We lowered the threshold to open up Act 3 from four metas to three; we started releasing free answers (“answerbergs”) like candy, and we tried to make every single meta that hadn’t yet been unlocked significantly easier.</p>
<p>Did it work? Well kind of. We had to make one final set of nerfs around 2am on Monday to the remaining two unsolved metas (<a href="https://puzzlefactory.place/factory-floor/conjuris-request">Conjuri’s Request</a> and <a href="https://puzzlefactory.place/factory-floor/the-tower-of-eye">The Tower of Eye</a>), but with that The Team Formerly Known as the Team Formerly Known as the Team Formerly Known as the Team Formerly Known as the Team Formerly Known as the Team to Be Named Later was finally able to finish (with Death & Mayhem not far behind).</p>
<p>Since campus was closed between 1am-6am, they could not come back and do the runaround for several hours, but we still wanted to send out the email announcing that there was a winner, without naming who they were. We settled on this language, which I think is very funny:</p>
<p><img src="/e/assets/mysteryhunt2023/ctbfl.png" alt="lmao" /></p>
<h1 id="closing-thoughts">Closing thoughts</h1>
<p>There will inevitably be a lot of criticism directed our way for messing up the length. Much of it (maybe even most) will be deserved. Some criticism is probably even healthy for hunt itself; teammate is a young team, but we’re old enough to have a few members who were around in 2013; the backlash to that hunt informed our response to this one: we acted earlier and more decisively than we would have otherwise, and I’m sure future writing teams will learn things from the experiences shared about this hunt.</p>
<p>But to any teammates reading this post let me say this: hunters have every right to complain about how this hunt went, but you also have the right not to feel too badly. The single most important thing a person can do to keep this tradition we all love alive is to help write and run it. Together we made sure that</p>
<ul>
<li>hunt happened</li>
<li>there were puzzles</li>
<li>the torch was passed to a new team</li>
</ul>
<p></p>
<p>As long as we all keep making sure that this happens, hunt will be fine.</p>
<p>See you all next year 🙂.</p>
<p><em>FWIW, I planned what I wanted to say in the above section on the flight back in order to head off what I envisioned as a major backlash, but overall people have been quite kind in their comments about hunt. We received some very supportive messages from hunters on Palindrome, Left Out, Rage, and others, and teammate’s spirits are high. We know everything didn’t go exactly as planned, but we’re proud of what we put out nonetheless.</em></p>This post is about the 2023 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at puzzlefactory.place.Google CTF 2022: Enigma (373 pts)2022-07-16T08:12:44+00:002022-07-16T08:12:44+00:00https://fortenf.org/e//e/ctfs/crypto/2022/07/16/google-ctf-2022-enigma<p><strong>Enigma</strong> was a cryptography challenge in the 2022 Google CTF in which the goal was to decrypt a message encrypted with the <a href="https://en.wikipedia.org/wiki/Enigma_machine">Enigma machine</a>.</p>
<p>The cracking of the Enigma machine by Allied codebreakers during World War II burst into popular culture with the 2014 film <a href="https://www.imdb.com/title/tt2084970/"><em>The Imitation Game</em></a> (a fine film, but rife with historical inaccuracies). I myself first learned about it much earlier when I read Simon Singh’s fantastic <a href="https://www.amazon.com/Code-Book-Science-Secrecy-Cryptography/dp/0385495323"><em>The Code Book</em></a> which describes the history of cryptography from the Caesar cipher to RSA, and devotes a chapter to the cracking of the Enigma.</p>
<p>As the README of this challenge explains, Alan Turing and his fellow codebreakers at Bletchley Park never did manage to completely break the Enigma. Instead they developed what in modern cryptography we’d call a known-plaintext attack, in which they made assumptions about particular words and phrases (they called them “cribs”) that appeared early in the plaintext and leveraged those guesses to discover the key. In practice this was good enough to decrypt a substantial number of German messages, but what this challenge asks us to accomplish is what Turing did not: decrypt a German message without any knowledge about its plaintext.</p>
<!--more-->
<h2 id="how-enigma-works">How Enigma works</h2>
<p>I won’t spend too much time explaining how the Enigma machine works as there are countless explainers online that can do a better job than I can, but will highlight some of the main points. At its heart, the Enigma machine is simply an enormously complicated circuit that wires each keyboard letter to a corresponding lighted letter, such that when you press the key A, the G light might turn on; this means that A encrypts to G. Basically, it’s just a substitution cipher. What makes it tricky though, is that every time you press a key, a rotor advances which switches up the circuit and changes the substitution key (making it a <em>polyalphabetic</em> substitution cipher)</p>
<p><img src="https://user-images.githubusercontent.com/7545794/179327410-8f6b6d5f-ce38-419e-8fdb-1a6ad153eefa.png" alt="image" class="center-image" /></p>
<p>There are three rotors each of which act as an individual permutation of the letters A-Z, and each of which leads into the next one. Each rotor has 26 different positions, each of which yields a different permutation. Every time a letter is pressed, the rightmost rotor advances by 1 position.</p>
<p>In addition, each rotor has one or more ‘notches’ that can cause the rotor to its left to advance by one position. For example, if the notch for the rightmost rotor was positioned at the letter ‘C’, and the rightmost rotor stepped from C → D, then the middle rotor would also advance by one step. In practice this means that the middle rotor advances every 26 letters, and the leftmost rotor advances every \(26^2\) letters. In particular, this means that the period of the machine is \(26^3 = 17576\). This means that it would take 17567 letters before a substitution key is repeated.</p>
<p>Enigma machines came with a set of up to 8 pre-configured rotor wheels, of which 3 were chosen in a certain order for that day’s messages. The rotor wheels were numbered using roman numerals, from I to VIII. In addition to the choice of the which wheels to use, each rotor had 2 additional choices: its starting position as well as the position of the notch relative to the rotor’s internal wiring (the so-called “ring setting”).</p>
<p>If the Enigma machine solely consisted of the rotors it wouldn’t actually be all that secure; there are few enough choices for the rotors and their initial positions that its pretty straightforward to bruteforce all possible combinations until you find one that produces the plaintext.</p>
<p>To counter this, the Enigma designers added the <em>plugboard</em> which allowed you to swap pairs of letters before and after they entered the rotor system. For example if there was a plugboard wire connecting R and P, then when you pressed the letter P it would first get turned into an R before entering the rotor system. Although up to 13 different plugboard wires could be used at a time, in practice only at most 10 were used.</p>
<p><img src="https://user-images.githubusercontent.com/7545794/179327503-0e739344-45b6-40c9-87a8-6e992fdc9c86.png" alt="image" class="center-image" /></p>
<p>The plugboard enhanced security of the machine by dramatically increasing the number of key settings. For 10 plugboard wires, the number of possibilities is:</p>
<p>\[\frac{26!}{6! \cdot 2^{10} \cdot 10!} = 150,738,274,937,250\]</p>
<p>well outside the possibility of bruteforce, even by modern standards.</p>
<p>A typical Engima key setting looks like this:</p>
<p><code class="language-plaintext highlighter-rouge">VI III II NRS AO BH CU DL FM GW JZ KY PX QV XKR</code></p>
<p>The first three terms indicate which rotor wheels were chosen and in which order; here they’ve chosen wheels VI, III, and II. The next term indicates the ring settings for each of the wheels; the first wheel is set to N, the second to R and the third to S. The next 10 terms represent the 10 plugboard switches. For example, A is swapped with O, B with H and so on. Finally the last term indicates the initial position of each rotor wheel (X, K and R respectively).</p>
<h2 id="attempting-the-challenge">Attempting the challenge</h2>
<p>I had the good fortune to have watched <a href="https://www.youtube.com/watch?v=RzWB5jL5RX0">this Computerphile video</a> several weeks before the competition in which Dr. Mike Pound explains exactly the problem we’re interested in: how to break an Enigma machine without known plaintext, but with access to fast computers. Even better: Mike provided <a href="https://github.com/mikepound/enigma">his code</a> for doing so!</p>
<p>Here’s how his approach works: the key observation is that if you get some of the settings of the machine correct, even if your other settings are wrong, your output will still be closer to valid English (or in our case, German). So, if we had a way of measuring how close a string of text was to German, we could bruteforce some of the settings until we found the best candidate, and then bruteforce the remaining settings.</p>
<p>Mike’s code comes with a handful of different metrics for ranking candidate decipherments. One of them is the <em>index of coincidence</em>, a remarkable measure invented by celebrated American cryptographer William Friedman. It’s simply the probability that two randomly chosen letters from the text happen to be the same. For totally random text, you’d expect a probability of:</p>
<p>\[1/26 = 0.03846\]</p>
<p>but since English (and German) text has some letters with much higher probability of appearing than others, their index of coincidence is substantially higher (0.067 for English, 0.078 for German). What makes the IoC a particularly useful metric for cryptanalysis is that it’s invariant under letter substitution. It’s easy to see that if you applied a substitution cipher to a text (replacing all A’s with D’s, B’s with X’s, and so on), the index of coincidence would not change.</p>
<p>This makes the metric suitable for use in cracking the Enigma. Specifically, if we’re trying out different rotor settings and happen to hit upon the correct one, the resulting decrypted plaintext should have a higher index of coincidence than purely random <em>even if we have none of the plugboard settings correct</em> because the plugboard mostly amounts to substituting between pairs of letters.</p>
<p>So, the approach at a high level is as follows:</p>
<ul>
<li>Bruteforce all possibilities for the rotor settings assuming an empty plugboard, and for each, measure the resulting index of coincidence</li>
<li>Pick the setting that yields the greatest IoC and use an iterative hill-climbing approach to find plugboard settings (trying all possibilities for an additional plug and choosing that which yields the greatest IoC improvement)</li>
</ul>
<h2 id="optimizations">Optimizations</h2>
<p>The number of rotor settings to bruteforce is naively:</p>
<p>\[8 \cdot 7 \cdot 6 \cdot 26^3 \cdot 26^3 = 103,795,700,736\]</p>
<p>(\(8 \cdot 7 \cdot 6\) choices for the particular rotors to use, \(26^3\) choices for the rotors’ initial positions, and \(26^3\) choices for the ring settings for each rotor).</p>
<p>This is far too high, so we need some way to cut this down to a manageable number. The first observation we can make is about the ring settings, which as you’ll recall allows the operator to rotate the internal wiring of the rotors relative to the alphabet ring on the edge of the rotor. For example, suppose the ring setting was at 2. This means that an input of A would first get rotated to an input of say, C before entering the wiring for C and coming out as, say a Q.</p>
<p>Note that this is basically equivalent to having a ring setting of A=0 but setting the rotors initial position to 2; the outcome for an input of A would be equivalent. What, then is the difference between the ring settings and the rotor settings? Why does the Enigma specify both? The difference comes down to that pesky notch we mentioned earlier. If a rotor has a notch at the letter C, advancing the initial position of the rotor by 2 advances the notch as well, bringing it two steps closer to turning over the adjacent rotor, but advancing the ring setting by 2 leaves the notch in the same place.</p>
<p>What this means is that aside from the complication introduced by the notch, the ring settings are unimportant and can mostly be ignored / handled by the initial ring position. For example, if the correct ring settings were ABC and the correct initial rotor positions were DEF, then a ring setting of AAA and initial rotor positions of A + D, B + E, C + F = DFH would produce nearly the same plaintext, albeit scrambled a little bit whenever the notch caused a middle or left rotor turnover at not quite the right time.</p>
<p>This allows us to cut down the number of settings by a factor of \(26^3\). Not bad, but we can do even better: if we carefully read the README, we’ll notice that it mentions that they constrained which rotors were chosen in a particular way:</p>
<blockquote>
<p>Germany generated its codebooks by rolling dice. However, it enforced rules meant to ensure there was “enough variation” between days. If those rules were violated, dice would be rerolled. Those rules are:</p>
<ul>
<li>Every day must include at least one “naval rotor” (rotors VI-VIII).</li>
<li>The same naval rotor cannot be used in the same position on two consecutive days.</li>
</ul>
<p>These constraints apply in this challenge.</p>
</blockquote>
<p>The challenge simulated a week’s worth of messages, 1 per day from May 9th 2022 to May 15th 2022. The flag was sent in the message on May 12th. May 11th’s key settings were:</p>
<p><code class="language-plaintext highlighter-rouge">III V VIII PLM UX YC TV RB AP QL ID GH ZK JF WEB</code></p>
<p>and May 13th’s key settings were:</p>
<p><code class="language-plaintext highlighter-rouge">V VI II ZFK EM YQ JT VN DH BP ZO XU RG LC RTN</code></p>
<p>From this we know that we can excluding any settings that include 0 naval rotors (\(5 \cdot 4 \cdot 3\) choices), any settings that include rotor VIII in the last position (\(7 \cdot 6\) choices), and any settings that include rotor VI in the middle position (\(7 \cdot 6\) choices). This leaves us with 198 choices for the rotor wheels, down from 336.</p>
<p>We’re left with:</p>
<p>\[198 \cdot 26^3 = 3,480,048\]</p>
<p>settings to bruteforce—certainly manageable on modern hardware.</p>
<h2 id="launching-the-attack">Launching the attack</h2>
<p>The first thing I did was verify that Mike Pound’s code could correctly decrypt the May 9th and 10th messages when provided with the correct settings. I further verified that the index of coincidence did indeed slightly rise when the rotor settings were correct but the plugboard settings were wrong. The difference is quite subtle—an index of 0.040 vs 0.038 for example—but it does exist and is enough to exploit.</p>
<p>I then modified Mike’s code to bruteforce all possible rotor choices and initial rotor positions, leaving the ring settings as AAA and the plugboard as empty, and for each one measured the IoC for the decrypted ciphertext, and saved the top 300 candidates. I knew this would take several hours to complete, so I let it run while I worked on other challenges.</p>
<p>The results didn’t look particularly promising—there wasn’t any particular setting that seemed much better than the rest, but I figured I might as well continue. For each of the top 300 candidates I bruteforced all possible ring settings (\(26^3\)), chose the best one and then ran the hill-climbing attack to find the best plugboard settings. Remarkably, exactly one candidate produced a plaintext with a very high index of coincidence after this, and when I looked at the plaintext, it was clear that it was very close to correct:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>KHEBEWETTBEWERBERYDIEFLAGAIZEGINNTMITEINEMGROSSENJCWLSINEMGROSSENJTJUNDJFJXDADXFFFOLGTEINEOFFENEGESC
HWIEESNEKLAMMERXDERLETZTEBUCHNUCBEISTEINEGESCHLOSSENEGENKAWIFFENEKLAMMERXZWISCHENNQGSENKLAMMERNSTEHE
NEINIGEARKEREBUCHSTABENXDERERSTEBTVRSTABEZWISCHENDENKLAMMERXNXTJDJXDERZWEITEBUCHSTABELQTSCHENDENKLAM
MERNISTJUJXYLPDRITTEBUCHSTABEZWISCHENEPGKLAMMERNISTJHJXDERVIERTRBKCHSTABEZWISCHENDENKLAMMMLQISTJAJXD
ERFUENFTEBUCHSTWCUZWISCHENDENKLAMMERNISTJNJLDARAUFFOLGTJTGEJXDANACHNNBMSTTOMYUQLPTWWUCTPDSAWGGPZLQMF
BUTTAJNZBVUTFOQWFDMAUNMCYQYTOGFJZOTIDQPLGDVRFIHXPZAETKQOFUQTYNSBWNRQGOLKJSKYSCDFSJGDOALMECOLWRKYSEON
FXXLHOPEIDFOIAJGXIOQWJAPYCISTEINEGROSSEERRUNGENSCVXITXDUKANNSTSTOLZAUFDICHSZEVXWIRHOFFENDUHASTGANZVI
ETDDASSBEIDEMGOOGLECTFINDIEWBGJAHRUNDWIRFREUENUNSDASSOOOITDABEIBISTXCAPTURETHEFHFLWETTBEWERBESINDWET
TBEWECLEWOABSICHTLICHVERWUNDBARPDOOGRAMMEVONSPIELERNFUERPNQCTEGEHACKEDWERDENXMEISTEKZMABENDIESEWETTB
EWERBEVERMUNIEDENEKATEGORIENUNDEINDVHWMISCHESPUNKTESYSTEMXESWGRLINDERREGELZWISCHENZWEIVZPQCHIEDENENA
RTENUNTERSCHIUZXNXXDERSOGENNANTEJEOPARDDWWILYWODIETEAMSUNDDIESPIEMWDVERSUCHENEINEZENTRALECHPDJENGEZU
HACKENUNDDEMATTACPQHFELBOZQWLUTRTMQTRFTONZCWAREBAPKAGGLNSRHGPIAZCNLEAGDWOAKDPVNYULLOZWQJXZAPPPGEYAMZ
XCMNXSSYLNRQJGOXSTDKMUSJRAFVGNOVTEYLDASMMCCNYGOMMEVRUEIISHVCQVOCSHPXNCFQOTRXOHENPREISGELDERNXDIESEWE
BBBEWERBEEIGNENSICHBESONDKIZGUTUMINDIEITSICHERHEITSKRFNCHEEINZUSTEIGENUNDSCHNCSINEUEFERTIGKEITENZULE
RNEDYKIEVERSCHIEDENENKATEGORIBUENFOKUSSIERENAUFVERSCHIEWSTEGEBIETEDERITSICHERHEITTSBZUMBEISPIELKRYPT
OGRAPHIDZGEBSICHERHEITYBINARYEXPLQOGATIONUNDREVERSEENGINEERNVRXDIEMEISTENCTFWETTBEWERBBWAUERNSOUMDIE
VIERUNDZWANTQFBISACHTUNDVIERZIGSTUNDEVLTVERSCHIEDENENSPIELERNINBXCSCHIEDENENZEITZONENDIETCXJNAHMEZUM
ERMOEGLICHENXDEHYHSTDIESESTEXTESISTNICHTWERXTIGUNDISTEINZIGUNDALLEIDDDYKATZWQYELEXNUSEFSGRJBPAURNYMT
JEJGIPLEXGPUAIVTGGHXOSNUHLRFGAPERNNBGDAFHBVBWLKTKTCXAEYQFLOUIFMBWMMJBTFGYSGSLHKVXBIFBERBYCBEPJUUKJTS
OVDZBJRYMCSATTVIDSBPRNRBJHHALTZULESENXDASISTEINEELQQSTARKELEISTUNGXHOFFENTLOJGKANNSICHDEINTEAMFUERDA
SHAPALEQUALIFIZIERENXWIRWUEHQFNUNSFREUENDICHDORTZUSEHUYFALSOBISBALDUNDNOCHMALHEIXQICHENGLUECKWUNSCHX
WIESCQRXVORHINERWAEHNTISTDERRESPCHWICHTIGXDUKANNSTNUNWIRKUGHHAUFHOERENZULESENXHIERGUSPESNICHTSMEHRZU
SEHENXALSEHHRKLICHYWARUMLIESTDUIMMEPHKCHDIESENTEXTYSOLLTESTDULHSHTANDEREAUFGABENLOESENXJRCGLAUBEDUKA
NNSTDEINEZEITREFSERNUTZENINDEMDUANDERESRBVENMACHSTXVIELLEICHTWAERCJWNEPAUSEAUCHGANZSINNVOLLOKASOLLTE
STAUCHNICHTVERGESEZKGQCEBRORLPJDYLOXHLRPKAHDEPVUQVZQINDWRWERTZMXKDKUPPFTTWQCTXELUJCVKSLNQHPEPIKXOSUM
AFSLNWQAFIFALNDRDSILVUYGJJKPOAYHYKEVVXOCHQHIZCEHTGRSYLZSSVVGHZJMGCRYZOTIYBBOIERUNWICHTIGISTXHIERGIBP
HNNICHTSNEUESMEHRZULESENXHAATEHOERAUFNUNX
</code></pre></div></div>
<p>Note that you can see clearly valid strings like <code class="language-plaintext highlighter-rouge">REVERSEENGINEER</code> and <code class="language-plaintext highlighter-rouge">BINARYEXPLQOGATION</code> and <code class="language-plaintext highlighter-rouge">GOOGLECTF</code> inside. However, it wasn’t quite right. I didn’t have exactly the right settings.</p>
<p>I obtained this partial plaintext at around 4 in the morning on Sunday and was fairly tired; perhaps had I been thinking more clearly I could have pinpointed the problem: the garbled bits were a result of incorrect notch turnover points. I needed to go back and adjust the ring settings and initial rotor positions simultaneously to correct the errors. However, I was too fatigued to realize this and instead thought that one of the plugboard switches that I had found was wrong. I spent the next couple hours fruitlessly debugging the plugboard before giving up.</p>
<p>Luckily, my teammates came to the rescue with a different approach.</p>
<h2 id="reading-garbled-german-with-no-spaces-or-punctuation">Reading garbled German with no spaces or punctuation</h2>
<p>If we had gotten exactly the right settings, the organizers had provided a way to derive an AES key from the settings and decrypt a properly formatted, punctuated version of the plaintext which we could just read to get the flag. We didn’t have exactly the right settings though, so instead we decided to try to read the garbled German plaintext. How hard could it be?</p>
<p>As it turns out, it was very hard, but not impossible. With some massaging and heavy use of Google Translate’s suggestions we eventually got to something like this:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>KHE BE WETTBEWERB ERY DIE FLAG AIZE GINNTMIT EIN EM GROSSEN JCW LSINEM GROSSEN JTJ UND JFJ X DAD X FFFOLGT EINE OFFENEGE SCHWIEES NE KLAMMER X DER LETZ TEBUCHNUCBEIST EINE GESCHLOSSEN
EGENKAWIFFENEKLAMMERXZWISCHENNQGS
EN KLAMMERN
STEHENEINIGEARKEREBUCHSTABENXDERERSTEBTVRSTABEZWISCHENDENKLAMMER X N X TJDJ
X DER ZWEI TEBUCH STABEL QTSCHEND EN KLAMMERN IST JUJ
XYLP DRITTE
BUCHSTABE ZWISCHEN EPG KLAMMERN IST JHJ X
DER VIER TR BKCHSTABE
ZWISCHEND ENKLAMMMLQ IST JAJ X
DER FUENFTE BUCHSTWCU ZWISCHEND ENKLAMMERN IST JNJ L DARAUF FOLGT JTGEJ
X
DANACH NNBMT JTANJ X
WEITERHIN
KOMMT
NMLUY
WAS J WOR AUF JTURINGJ FOLGTL
DIE LETZTEN
BUCHSTABEN
SINDOSSY
JIJ YJCHTKONNTEJX
DU HAST
BGVENIGMAGE KNACKTOHNEZUGRITITUF EINEN KLARTEXT ZUHABEN YRGGQSTEINE GROSSEERRUNGEN SCVXITX DU KANNST STOLZ AUF DICHS ZEV
X
WIR HOFFEN DU HAST GANZVIETD DASSBEIDEM GOOGLECTF IN DIE
WBGJAHRUNDWIRFREUENUNSDASSOOOITDABEIBIST X CAPTURETHEFHFL WETTBEWERB
ESINDWETTBEWECLEWOABSICHTLICHVERWUNDBARPDOOGRAMME VON SPIELER NFUERPNQCTEGEHACKEDWERDENXMEISTEKZMABENDIESEWETTBEWERBEVERMUNIEDENEKATEGORIENUNDEINDVHWMISCHESPUNKTESYSTEMXESWGRLINDERREGEL ZWISCHEN
</code></pre></div></div>
<p>Which translates as:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>KHE BE COMPETITION ERY THE FLAG AIZE STARTS WITH A LARGE JCW LSINEM LARGE JTJ AND JFJ X DAD X FFOLLOWS AN OPEN BREAK NE CLAMP X THE LAST BOOK NUCBE A CLOSED
EGENKAWIFFENKLAMMERXBETERNNQGS
EN BRACKETS
ARE SOMEARKERLETTERSXTHEFIRSTBTVRBARBETWEENBRACKET X N X TJDJ
X THE SECOND BOOK STABEL QTSCHEND EN BRACKETS IS JUJ
XYLP THIRD
LETTER BETWEEN EPG BRACKETS IS YHJ X
THE FOUR TR BKLETTER
BETWEEN ENCLAMMLQ IS JAJ X
THE FIFTH BOOKSTWCU BETWEEN PARENTHESES IS JNJ L FOLLOWED BY JTGEJ
X
THEN NNBMT JTANJ X
FARTHER
COMES
NMLUY
WHAT J WOR FOLLOWS JTURINGJ
THE LAST
LETTERS
SINDOSSY
JIJ YJCHTKONNTEJX
YOU HAVE
BGVENIGMAGE KNACKTOHNEHRITITUF HAVING A CLEAR TEXT YRGGQSTEINE GREAT ACHIEVEMENTS SCVXITX YOU CAN BE PROUD OF YOURSELF ZEV
X
WE HOPE YOU HAVE GOOGLECTF IN THE
WBG YEAR AND WE ARE SOOOOO PLEASED TO BE PART OF X CAPTURETHEFHFL COMPETITION
ESARECOMPETIONSWHEREINTENTIONALLYVULNERABLEPDOOGRAM BY PLAYERS NFORPNQCTEHACKEDXMOSTEKZMATHIS COMPETITIONSMUNIEDENCATEGORIESANDEINDVHWMIXPOINTSSYSTEMXESWGRLINDERRULE BETWEEN
</code></pre></div></div>
<p>The README notes that J’s are used to represent quotation marks, so this plaintext starts by telling us that the flag starts with a ‘large’ (or uppercase) “C”, “T”, and “F” followed by an open bracket {. So far so good.</p>
<p>Some more observations:</p>
<ul>
<li>The first letter between the brackets is a JDJ = “D”</li>
<li>The second letter between the brackets is “U”</li>
<li>The third letter between the brackets is “H”</li>
<li>The fourth letter between the brackets is “A”</li>
<li>The fifth letter between the brackets is “N” followed by “TGE”</li>
<li>Then “TAN”</li>
<li>Farther comes …unintelligible</li>
<li>What follows is “TURING”</li>
<li>The last letters …sindossy??? something something “I” then “CHTKONNTE”</li>
</ul>
<p>Right… so it looks like we have something like <code class="language-plaintext highlighter-rouge">CTF{DUHANTGETAN???TURING???ICHTKONNTE}</code></p>
<p>Putting this into Google Translate:</p>
<p><img width="1293" alt="image" src="https://user-images.githubusercontent.com/7545794/179326943-5ad5e3f2-3bbd-4378-bf48-8a7f968ffa83.png" /></p>
<p>OK, this is looking good! Something about how we’ve done what Turing couldn’t. Let’s error correct to <code class="language-plaintext highlighter-rouge">CTF{DU HAST GETAN TURING NICHT KONNTE}</code>. Google tells us that this translates to “you did turing could not”; seems like it’s missing a word there. Let’s try inputting “You did what Turing couldn’t” going from English → German:</p>
<p><img width="1292" alt="image" src="https://user-images.githubusercontent.com/7545794/179327061-839b0e91-df5e-4584-87f5-1ef13cc8cd07.png" /></p>
<p>Seems worth a try! We submitted <code class="language-plaintext highlighter-rouge">CTF{DU HAST GETAN, WAS TURING NICHT KONNTE}</code> and it was correct 🎉!</p>Enigma was a cryptography challenge in the 2022 Google CTF in which the goal was to decrypt a message encrypted with the Enigma machine.Mystery Hunt 20222022-01-22T16:12:47+00:002022-01-22T16:12:47+00:00https://fortenf.org/e//e/2022/01/22/mystery-hunt-2022<p><em>This post is about the 2022 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at <a href="https://puzzles.mit.edu/2022/pen-station/">bookspace.world</a>.</em></p>
<p>After over ten years of participating, my team finally won the MIT Mystery Hunt for the first time last week! In this post I’ll talk about my hunt experience.</p>
<!--more-->
<h2 id="a-brief-history-of-my-involvement-with-puzzlehunts">A brief history of my involvement with puzzlehunts</h2>
<p>…but first, indulge me for a moment as I detail my involvement with puzzlehunts over the course of the past decade.</p>
<p>I was first introduced to puzzlehunts in March of 2010, when a friend forwarded me an email inviting me to join his team for the Bay Area Puzzlehunt which took place on Stanford’s campus, and which I now realize was run by none other than <a href="https://en.wikipedia.org/wiki/Sam_Bankman-Fried">Sam Bankman-Fried</a>. Our team didn’t do particularly well, but we had a ton of fun and I was hooked. In May of that year I participated in the <a href="https://www.mezzacotta.net/puzzle/cisra/2010/rules.html">CiSRA puzzle competition</a> with a few friends; I’ll never forget assembling the 3D sculpture described by the puzzle <a href="https://www.mezzacotta.net/puzzle/cisra/2010/3A-Simple-Instructions.pdf">Simple Instructions</a> in my middle school’s library.</p>
<p>In the summer of 2011 I attended the <a href="https://mathcamp.org/">Canada/USA Mathcamp</a>. They hold a day-long <a href="https://mathcamp.org/2011/hunt/">puzzlehunt</a> in week 4 that basically the entire camp participates in (this is also where SBF got interested in puzzlehunts, I suspect). Mathcamp had a semi-associated Mystery Hunt team called the Manic Sages, so I participated in the 2012 MIT Mystery Hunt remotely with them. I didn’t contribute much—I still had school on Friday, and was pretty out of my depth anyways, but I did provide the key insight that led to our solve of the <a href="https://puzzles.mit.edu/2012/puzzles/okla_holmes_a/">Okla-Holmes-A! meta</a>.</p>
<p>Incidentally, we actually won that year, so I “helped” write the <a href="https://puzzles.mit.edu/2013/coinheist.com/">2013 hunt</a>. I’m credited on two puzzles; the <a href="https://puzzles.mit.edu/2013/coinheist.com/feynman/lol/index.html">first one</a> is halfway-decent, though nothing I’m super proud of. The <a href="https://puzzles.mit.edu/2013/coinheist.com/sneakers/linked_pairs/">second</a> is one of many puzzles in the 2013 hunt that is actually nigh-unsolvable and in retrospect probably should never have made it into the hunt.</p>
<p>In 2014, the Sages disbanded, and I hunted with One Fish Two Fish Random Fish Blue Fish (their current name is Hunches in Bunches). I do remember participating, but I also remember checking out of the hunt fairly early on because I felt like I wasn’t adding anything meaningful. They <em>also</em> ended up winning that year, but this time I didn’t stick around to help write the 2015 hunt.</p>
<p>In Spring of 2014 I was accepted into MIT and visited it in April during Campus Preview Weekend (CPW). One of the dorms (Simmons Hall) held a small puzzlehunt, which I took part in along with some friends and friends of friends. This was the birth of teammate, the puzzlehunt team. Most of us chose to attend MIT (and some of those who didn’t ended up at a certain school not far down the river…), and we continued participating in puzzlehunts in the fall of our freshman year (Palantir, SUMS, and BAPHL 11).</p>
<p>We were all excited for the upcoming 2015 Mystery Hunt, and we decided to join ✈✈✈ Galactic Trendsetters ✈✈✈ since we had a number of friends on the team. This was my first in-person Mystery Hunt, and it may forever be my favorite hunt of all time. (Some moments that stand out: the do-it-again step of the <a href="https://puzzles.mit.edu/2015/puzzle/coral_reef_meta/">Coral Reef Meta</a>, our initial breakthrough for the <a href="https://puzzles.mit.edu/2015/puzzle/colorful_tower_meta/">Colorful Tower Meta</a>, and the key insight of the <a href="https://puzzles.mit.edu/2015/puzzle/atlantis_meta_meta/">Atlantis Meta Meta</a> about <span class="spoiler">the four seahorsemen of the apocalypse</span>).</p>
<p>Teammate continued to do puzzlehunts and continued to steadily improve. (When we first participated in the Palantir puzzlehunt, I don’t think we even finished, but by our senior year we were consistently in first or second). In 2016 and 2017 we again hunted with the Trendsetters for Mystery Hunt. The 2017 hunt famously finished early, so some of us on the team used the extra time on Sunday to start writing our own hunt, which eventually turned into the first <a href="https://2017.galacticpuzzlehunt.com/">Galactic Puzzle Hunt</a>.</p>
<p>In 2018—in part because of how fast we finished in 2017—teammate decided to split off from ✈✈✈ Galactic Trendsetters ✈✈✈ and form our own team. We were joined by a number of friends from CMU and Berkeley who had also been hunting with the Trendsetters in prior years. We continued hunting separately in 2019 and 2020, and all the while, I continued helping write subsequent Galactic Puzzle Hunts.</p>
<p>When ✈✈✈ Galactic Trendsetters ✈✈✈ won Mystery Hunt in 2020, I and a few others decided to help them write the <a href="http://puzzles.mit.edu/2021/">2021 Mystery Hunt</a>. I talked a lot about my experience constructing hunt in <a href="/e/2021/01/28/mystery-hunt-2021-part-1.html">this</a> blogpost. I’m credited on 22 puzzles, of which I’m probably most proud of <a href="https://puzzles.mit.edu/2021/puzzle/nutraumatic/">Nutraumatic</a>, <a href="https://puzzles.mit.edu/2021/puzzle/%e2%8a%a5IW.nano/">⊥IW.nano</a>, and <a href="https://puzzles.mit.edu/2021/puzzle/macgregor-house/">MacGregor House</a>.</p>
<p>In the meantime, the rest of teammate wanted to try their hand at writing a hunt of their own and produced the <a href="https://2020.teammatehunt.com/">2020 Teammate Hunt</a> (followed by the universally-acclaimed <a href="https://2021.teammatehunt.com/">2021 Teammate Hunt</a>). Teammate eventually participated in the 2021 Mystery Hunt (without me) and did quite well.</p>
<p>I rejoined teammate this year, and WE WON! All of this is to say: even though I technically was on a team that won in 2012 and 2014, and I’ve technically written for hunt twice already, in my mind <em>this</em> is the one that counts.</p>
<h2 id="hunt-weekend">Hunt Weekend</h2>
<p>In 2021, teammate (like all other teams) hunted almost entirely remotely. Everyone was in their own isolated spaces, and all communication took place on Google Sheets and Discord. This year with vaccines available we decided to organize some hubs where people could gather and hunt together, even though hunt was still remote. We organized 3 such hubs: one in Boston, one in the Bay Area, and one in Seattle.</p>
<p>I flew out to join the Boston hub. We booked a 3-story Airbnb in Allston and had about 20 people in attendance over the course of the weekend. Honestly, it was the best hunting setup I’ve ever experienced: easy access to beds, showers, a kitchen, a coffee-maker; lots of nice desks and tables perfect for hunting; being surrounded by friends, some of whom I haven’t seen in person in 2 years. It was so good that we’re seriously considering doing doing a similar thing in future years even if hunt stops being remote. The downside is that it’s difficult to get such a nice place within walking distance of MIT’s campus. This wasn’t a problem this year, but it’s something we’ll have to think about in the future.</p>
<p>It was, of course, a risky time to host such a large gathering. During the weekend of hunt Boston was probably <a href="https://www.mwra.com/biobot/biobotdata.htm">just past</a> the peak of the Omicron surge. We went in clear-eyed about the risks and did take lots of measures to mitigate them as best as possible. We required proof of vaccination for everyone and negative COVID tests taken no earlier than the day before hunt. We also administered rapid tests to about 1/3 of the hub on Saturday and Sunday to detect spread; none of the tests were positive, so it seems like we managed to escape unscathed.</p>
<p>I arrived in Boston on Thursday afternoon and took a Lyft to the Airbnb, turning in early in order to get a final good night’s sleep. The start of hunt felt like a series of never-ending countdown timers, but eventually kickoff did begin in earnest and we were introduced to this year’s theme: books!</p>
<p>This was, in my opinion, a shrewd choice. Running teams have been moving away from specific pop culture franchises towards more general concepts in order to ensure widespread appealability and to encapsulate rounds of varying content. This year’s theme allowed for rounds about <a href="https://www.bookspace.world/round/lake-eerie/">horror</a>, <a href="https://www.bookspace.world/round/heartford/">romance</a>, and <a href="https://www.bookspace.world/round/recipeoria/">food</a>, that each felt distinct but thematically linked. I also greatly appreciated the connection to MIT via the integration of the five ministers, each of whom represented one of the MIT campus libraries.</p>
<p>Structurally, the hunt took the form of ever-increasing rounds of puzzles, the culmination of each of which made for a good finishing point for teams of increasing sizes/skill levels. First there was the <a href="https://www.starrats.org/">Star Rats</a> prologue, released a couple of weeks prior to Martin Luther King Jr. weekend, a first for Mystery Hunt. Then there was <a href="https://www.starrats.org/round/the-investigation/">The Investigation</a>, a 10 puzzle round with a charmingly-simple meta, followed by <a href="https://www.bookspace.world/round/the-ministry/">The Ministry</a>, a 25 puzzle round with 5 submetas, a meta-matching gimmick, a metameta, and a fruitaround. All of this was a precursor to the main event, <a href="https://www.bookspace.world/pen-station/">Pen Station</a>: 10 substantial rounds each themed around a different literary genre.</p>
<p>I can’t speak for smaller teams, but I appreciated the effort Palindrome took to build out these smaller milestones while still generating enough content (~196 puzzles!) to satisfy teams like mine.</p>
<h2 id="the-ministry-spoilers">The Ministry (spoilers!)</h2>
<p>Teammate made quick work of The Investigation and the meta-matching portion of The Ministry, so we quickly found ourselves working on <a href="https://www.bookspace.world/puzzle/the-ministry/">The Ministry Meta Meta</a>. Early on when we were solving this, someone asked if there was a mural outside Hayden library, since the flavortext seemed to be strongly clueing such a thing. I replied that there wasn’t, to my knowledge. I later re-read the flavortext and realized that it was clueing a mural—this one outside of building 14.</p>
<p><img src="/e/assets/mysteryhunt2022/mural.png" alt="Engineers looking at an elephant" class="center-image" /></p>
<p>This gave us an ordering on the 5 ministers which allowed us to solve the puzzle. In my defense, I think Palindrome was a little bit confused about the distinction between Hayden Library and building 14. Hayden library is located within building 14, and this mural is located just outside building 14, but it’s really not accurate to say that this mural is outside Hayden Library. (Incidentally, the Lewis Music library is also located in building 14, so as someone pointed out, if all of building 14 disappeared into the plot hole, Minister Lewis should probably be freaking out as well!).</p>
<p>Regardless, I thought that this was a great puzzle. Every time I passed this mural, I always had this thought in the back of my mind that it was useful puzzle fodder. I’m glad to see that someone from Palindrome thought similarly! I also loved how the answers to the 5 minister metas were both semantically meaningful, and could be re-applied to the 25 puzzle answers.</p>
<p>The answer to this meta was A VORACIOUS BOOKWYRM RUN AMOK. I was very proud of myself for correctly surmising that this was referring to <em>The Very Hungry Caterpillar</em> (one of my favorite books growing up), but apparently just about every team guessed this. Palindrome said at wrap-up that something like 60% of teams submitted A VERY HUNGRY CATERPILLAR to the subsequent fruitaround puzzle.</p>
<p><img src="/e/assets/mysteryhunt2022/caterpillar.png" alt="Caterpillar" class="center-image" /></p>
<p>My team really found it weird when we finished this puzzle and had 0 puzzles open. We were blocked from moving forwards by an interaction, but Palindrome seemed to be really overwhelmed at this particular point, and we had to contact them twice in order to schedule it. Looking at the stats, it seems like lots of teams were probably finishing around this time, so this was pretty understandable.</p>
<h2 id="pen-station">Pen Station</h2>
<p>We eventually did unlock and solve the <a href="https://www.bookspace.world/puzzle/fruit-around/">Fruitaround</a>, and found our way to Pen Station.</p>
<p><img src="/e/assets/mysteryhunt2022/penstation.png" alt="Pen Station" class="center-image" /></p>
<p>Now’s a good time to talk about the art this year, which I adored. There’s a certain type of nerd who loves public transit and libraries, and I suspect they were gaga about the homepage for this hunt, shown above. Initially there were only two “lines” open on the Information Kiosk; the rest were “under construction.” This did a good job of unifying the subsequent rounds, while previewing the awesome scope of it all. The art for each of the individual rounds was also wonderful; every time we unlocked a new one, it was a joy to check it out.</p>
<p>From this moment on, we never really got seriously stuck at any point (unlike in 2020). Some of this is probably that teammate has gotten better at meta-solving, but I think it has more to do with the particular metapuzzles that Palindrome wrote. There were only a few instances where we knew what we had to do to solve the meta, but simply needed more puzzle answers in order to do so. Furthermore in all of those puzzles (<a href="https://www.bookspace.world/puzzle/the-masquerade-ball/">Masquerade Ball</a>, <a href="https://www.bookspace.world/puzzle/how-to-find-a-component/">How to Find a Component</a>, and <a href="https://www.bookspace.world/puzzle/introspection/">Introspection</a>), the reason we needed more answers was purely for the mechanical reason that we unlocked new information every time we solved a puzzle rather than needing the answers in and of themselves, which generally meant that Palindrome had written the puzzle in such a way where they could guarantee it was solvable with some reasonable proportion of puzzles solved.</p>
<p>There also weren’t any metas that asked us to do something truly insane like <a href="https://puzzles.mit.edu/2018/full/puzzle/starship_enterprise.html">simulate an electronic circuit</a> out of the puzzle answers or <a href="https://puzzles.mit.edu/2019/problem/arbor_day_bloomsday.html">crack a chaocipher</a> with only part of the key, which meant that once we had solved enough puzzles and made the initial breakthrough about how the meta worked, we’d usually have the answer within 40 minutes or so.</p>
<p>As such, the rest of the hunt was kind of a blur. I grabbed about 5 hours of sleep on Friday night, and pulled an all-nighter on Saturday night. Mystery Hunt is unique among puzzlehunts in not giving you any feedback on your relative ranking while you’re doing it, so we were constantly speculating on how we were doing all weekend. There were a number of clues:</p>
<ul>
<li>Every time we unlocked a puzzle with a YouTube video we’d analyze the number of views. They were often around 30-50.</li>
<li>We once opened a puzzle with an erratum issued 30 minutes earlier. This confirmed that we weren’t in the lead</li>
<li>The <a href="https://twitter.com/crowfacts3000">twitter account</a> referenced in <a href="https://www.bookspace.world/puzzle/crow-facts-3000/">Crow Facts 3000</a> had exactly 1 follower at the time we found it. That follower was someone on Death & Mayhem.</li>
</ul>
<p></p>
<p>All this suggested we were near the top of the pack, but maybe not in 1st (this ended up being <a href="https://www.bookspace.world/stats/">basically correct</a>), so it wasn’t obvious to us when we finished Tollbooth and had our final interaction with Palindrome that we had won.</p>
<p>This, combined with our collective sleep deprivation and the limits of a virtual experience, did lend a bit of anticlimax to the finale. Although I wish my reaction was closer to one of pure joy, it was similar to <a href="https://www.alexirpan.com/">Alex’s</a>:</p>
<blockquote>
<p>“oh, we won, wooooo, I’m going to sleep.”</p>
</blockquote>
<h2 id="looking-forwards">Looking forwards</h2>
<p>In the summer of 2021, when Palindrome announced that MH22 would be remote, I was disappointed by the decision and thought it was wrong-headed. Obviously, I was wrong. With omicron surging across the country there was no way that hunt could have taken place in person. I continue to remain optimistic about the course of the pandemic, and my most fervent desire with respect to MH23 is that we can hold it on campus. Realistically though the seasonal nature of COVID-19 does not interact well with the schedule of hunt.</p>
<p>Regardless, I can promise that teammate will work hard to deliver the best hunt we can. This is the first chance many of have had to write for Mystery Hunt and we’re all excited by the opportunity. Thanks again to Palindrome for a fantastic hunt, and see you all next year!</p>This post is about the 2022 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at bookspace.world.Mystery Hunt 2021 [Part 2/2]2021-02-20T16:12:47+00:002021-02-20T16:12:47+00:00https://fortenf.org/e//e/2021/02/20/mystery-hunt-2021-part-2<p><em>This post is the second of two entries about the 2021 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at <a href="https://puzzles.mit.edu/2021/">puzzles.mit.edu/2021</a>. You can find my first post <a href="/e/2021/01/28/mystery-hunt-2021-part-1.html">here</a>.</em></p>
<p>Here, I’ll talk about some puzzles I have thoughts on. These are necessarily puzzles that I contributed to (you can find a list of those <a href="/e/puzzlehunts">here</a>). There will be heavy spoilers throughout!</p>
<!--more-->
<h2 id="yew-labs">Yew Labs</h2>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/%E2%9C%8F/">✏️✉️➡️3️⃣5️⃣1️⃣➖6️⃣6️⃣6️⃣➖6️⃣6️⃣5️⃣5️⃣</a></strong>: This is a great puzzle to show folks who don’t have much experience with puzzlehunts. We’ve put up a replacement to the texting interface, so you can still do it from the site itself! Lots of teams got mad at us because the answer was literally EMOJI, and they felt like they could have just guessed this from the start and skipped the whole puzzle. I found this reaction kinda strange given that no team actually managed to do this (as far as I know). Also, this is only vaguely related to this puzzle, but if you haven’t seen it before check out the <a href="https://www.quora.com/How-do-you-find-the-positive-integer-solutions-to-frac-x-y%2Bz-%2B-frac-y-z%2Bx-%2B-frac-z-x%2By-4/answer/Alon-Amit?ch=10&share=239be901&srid=u13p">greatest fruit math problem of all time</a>.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/hey-can-you-give-me-a-hand-with-this-puzzle/">Hey, Can You Give Me A Hand With This Puzzle</a></strong>: This is one of my favorite puzzles in the hunt; the extraction step is nothing short of brilliant. During the hunt we realized that Google Sheets couldn’t handle the load of so many people viewing the spreadsheet at once (even though it was in view-only mode), and we had to make extra copies on-the-fly.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/just-index/">Just Index</a></strong>: One of two puzzles in this hunt that pokes fun at the concept of indexing in puzzlehunts.</p>
<h2 id="students">Students</h2>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/%E2%98%85/">★</a></strong>: As CJ notes in his <a href="https://mitadmissions.org/blogs/entry/two-hundred-puzzles-2/">post of galactic proportions</a>, no testsolvers actually solved the Miracle Sudoku since an earlier version of this puzzle made it too easy to solve using Nutrimatic. Thanks to Anderson who suggested using the red symbols to add an ordering step to the puzzle to prevent this.</p>
<p>I highly recommend <a href="https://www.npr.org/sections/money/2019/04/10/711918772/episode-905-the-chicago-boys-part-i">this</a> <em>Planet Money</em> episode about the Chicago Boys and the Miracle of Chile. Also if you haven’t seen Nolan’s film <em><a href="https://www.imdb.com/title/tt5013056/">Dunkirk</a></em> (about the Miracle of Dunkirk) or <em><a href="https://www.imdb.com/title/tt3263904/?ref_=nv_sr_srsg_0">Sully</a></em> (about the Miracle on the Hudson), those are both great as well. (I’ve never seen <em><a href="https://www.imdb.com/title/tt0349825/?ref_=fn_al_tt_1">Miracle</a></em> (about the Miracle on Ice).)</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/alternate-controls/">Alternate Controls</a></strong>: One lesson I learned from this hunt is that if you must have a cyclic extraction step involving a short answer or cluephrase, it’s super useful to provide an enumeration to solvers to help with the added ambiguity about where the starting letter is or which direction the cycle goes. We did that here to good effect I think.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/circles/">Circles</a></strong>: Like Lewis, I have a fascination with Mystery Hunt round structures, so this was one of my favorite puzzles in the hunt. The jigsaw pieces were originally just dots which made the aha a lot harder.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/unraveling-the-mystery/">Unraveling the Mystery</a></strong>: What a cute idea for a puzzle! I liked it so much that I let the fact that we now had two different Student puzzles about past Mystery Hunts slide. We were (very mildly) worried that Randall Munroe would publish a comic on January 14th 2021 which might break this puzzle.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/baker-house/">Baker House</a></strong>: This meta proved to be super hard during testsolving and despite our best efforts I think it still ended up being the hardest Dorm Row meta by a fair bit. For whatever reason people had a lot of trouble interpreting the yellow arrow pointing down. (It also didn’t help that many people are unaware that the fifth solfege note is SOL and not SO.)</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/macgregor-house/">MacGregor House</a></strong>: Someone asked me why this meta required three authors. My response:</p>
<blockquote>
<p>One person said we need to write a giraffe puzzle meta, one suggested we need to make that meta MacGregor since it “kinda looks like a giraffe” and one person picked the actual answers so that it worked for Dorm Row.</p>
</blockquote>
<p>(I’m person #3).</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/simmons-hall/">Simmons Hall</a></strong>: This is one of the coolest metas in this hunt IMO. It was noticed by someone that two different Student metas are each resemblant of a Derek Kisman puzzle. (Simmons Hall to <a href="http://web.mit.edu/puzzle/www/2013/coinheist.com/get_smart/in_the_details/index.html">In the Details</a> and <a href="https://puzzles.mit.edu/2021/puzzle/random-hall/">Random Hall</a> to <a href="http://web.mit.edu/puzzle/www/2013/coinheist.com/indiana/50_50/index.html">50/50</a>).</p>
<h2 id="green-building">Green Building</h2>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/voltage-controlled/">Voltage-Controlled</a></strong>: What a great puzzle. One of the moments that stands out the most to me when testsolving it was when I recognized that one of the melodies was <em><a href="https://www.youtube.com/watch?v=k85mRPqvMbE">Axel F</a></em> but didn’t know the name and had to repeatedly hum it in our Discord voice chat until someone joined who could identify it. I still think the last step of this puzzle is a tad too hard, and wish more teams could have solved it.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/green-building/">Green Building</a></strong>: As Nathan notes in the Authors’ Notes, this was the first puzzle written for this hunt. Many teams (especially those with MIT students/alumni) were able to solve this without even needing the intermediate cluephrase. We were aware that this was possible and decided that it was fine (and maybe even desirable) to give teams with MIT students an advantage.</p>
<h2 id="infinite-corridor">Infinite Corridor</h2>
<p>The idea to make this meta have an infinite number of puzzles was present long before we had any idea of how to actually write such a puzzle. I’m really happy with the resulting puzzle Jon came up with, and I’m sad I didn’t get to experience solving this round in an actual Mystery Hunt.</p>
<h2 id="athletics">Athletics</h2>
<p>As I noted in the <a href="https://www.youtube.com/watch?v=DFFyI0GiHn0">wrap-up</a>, The Athletics round was the last one that we finalized. In particular, we were starting to be worried that our hunt was too long, so we intentionally waited on assigning answers for this round until we were sure that (1) we had the manpower to write an additional 25 puzzles and (2) we were sufficiently sure that teams could handle an additional 25 puzzles.</p>
<p>Holding off on assigning answers also allowed us to repurpose subrounds to address various issues with our hunt. For example, we had long wanted to have a bunch of puzzles in our hunt that used the MMO, but because the MMO was still in the process of being developed, these puzzles were largely blocked. It was useful to be able to make the entire Football round a bunch of what were essentially MMO mini-games that weren’t even required to have a particular answer. These field goals were received pretty well; huge thanks to Herman who spearheaded the effort to make them.</p>
<p>Similarly, it was nice to have a round of puzzles that time-unlocked—as Baseball did—because it allowed us to ensure that the <a href="https://puzzles.mit.edu/2021/puzzle/mit-%E2%8A%A5iw-experimental-evidence/">scavenger hunt</a>, <a href="https://puzzles.mit.edu/2021/puzzle/in-a-park/">runaround</a>, and <a href="https://puzzles.mit.edu/2021/puzzle/bake-off/">baking puzzle</a> all unlocked during the day instead of the middle of the night. It also let us announce when the <a href="https://puzzles.mit.edu/2021/puzzle/squee-squee/">piggy bank puzzle</a> would unlock so that its owner could make sure they were free at that time.</p>
<p>Time-unlocking the Basketball round (which had our teamwork-time puzzles) ended up being a poor decision. Our reasoning was that since these puzzles were some of the most dynamic and fun ones, we wanted all teams to see them on Saturday, regardless of their progress through the hunt. In practice every time we unlocked a new Basketball puzzle, the load kind of overwhelmed the server hosting them, rendering all of them unplayable. Lesson learned.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/squee-squee/">Squee Squee</a></strong>: This puzzle was inspired by this comment I made all the way back in January 2020 in our #bad-ideas Discord channel:</p>
<p><img src="/e/assets/mysteryhunt2021/comment.png" alt="haha" class="center-image" /></p>
<p>Huge thanks to Chris for actually writing it and making it happen. Many, many teams were unwilling to smash their porcine friend, and instead attempted to remove the paper inside or backsolve the puzzle. I fielded a phone call from one team who informed me that their five-year-old was particularly attached to the piggy and really, really didn’t want to break it. (I encouraged them to break it anyways, but apparently they had already extracted the paper by other means and this was totally unnecessary. I’m so sorry!).</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/so-you-think-you-can-count/">So You Think You Can Count</a></strong>: Testsolving this puzzle was maybe the single greatest hour I spent on hunt all year. By the way, did you know that there’s an easter egg when you get to 420:</p>
<p><img src="/e/assets/mysteryhunt2021/egg.jpg" alt="blaze it" class="center-image" /></p>
<h2 id="iwnano">⊥IW.nano</h2>
<p>Clearly we overshot the difficulty of this round by quite a bit. Only ten teams managed to make it past ⊥IW.giga before Palindrome found the coin and we auto-unlocked the whole round, and this was even after a significant nerf we made to <a href="https://puzzles.mit.edu/2021/puzzle/rule-of-three/">Rule of Three</a>. I think there were a number of causes. The first is that it was difficult to get an accurate sense of how this round would play out during testsolving. When we testsolved the meta individually, we had to explicitly designate the puzzle <a href="https://puzzles.mit.edu/2021/puzzle/twins/">Twins</a> as being special:</p>
<blockquote>
<p>if you try to open this puzzle, you get something that is too small to see</p>
</blockquote>
<p>Obviously, reading this text is a very different experience from actually seeing a super small image as a puzzle. We did get one shot at a realistic hunt condition during one of our big hunt testsolves, but unfortunately, that testsolving group actually failed even earlier and didn’t even understand that Rule of Three was a metapuzzle; we had to intervene and give them a hint, which kind of ruined our one chance at getting a clean testsolve. In response, we made it visually very clear on the round page and all puzzles page that Rule of Three was the meta, but we never got another chance at re-testsolving the round.</p>
<p>In retrospect, I think we should have given up on being cute, and signposted what to do a little better. Maybe we could have included some flavortext on Twins that says “Hmm, this puzzle seems too small to solve…”</p>
<p>I think another cause of our issues is that Galactic is naturally more guess-happy as a team. We certainly didn’t envision that some teams would have a <a href="https://puzzlvaria.wordpress.com/2021/01/20/2021-mit-mystery-hunt-part-1-whoosh-big-picture-pros-and-cons-nyeeeow/#comment-4727">no backsolving</a> rule in place, and I think we generally hoped that even if teams weren’t sure what to do to make progress, they’d attempt to backsolve Twins anyways, because what else could they do?</p>
<p>Another issue was that the puzzle <a href="https://puzzles.mit.edu/2021/puzzle/a-routine-matter/">A Routine Matter</a> was too hard. We recognized early on that this answer was critical to understanding how to forward-solve Rule of Three (it’s involved in every syzygy that Twins is not involved in), and we made a note in <a href="https://github.com/galacticpuzzlehunt/puzzlord">Puzzlord</a> to “make this puzzle relatively easy.” The final version of the puzzle was at least a lot easier than the initial version was, but we clearly didn’t go far enough. I think any puzzle that involves carefully reading through a <a href="https://www.gymnastics.sport/publicdir/rules/files/en_MAG%20CoP%202017%20-%202020.pdf">162-page PDF</a> was going to end up too hard for this answer, and I wish I’d intervened a little earlier.</p>
<p>Finally, this is unrelated to this round but I didn’t know where else to put this: did you know that we specifically modified the perpendicular symbol glyph in the <a href="https://puzzles.mit.edu/2021/static/stylesheets/metropolis-font.css">Metropolis typeface</a> so that it looked like an upside down T? That’s why it looks so good on our site and so bad on this blogpost.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/math-1001003/">100000…0000001000000000000116</a></strong>: Some puzzle authors like Derek Kisman have a unique style that makes any puzzle they write recognizably one of theirs. I think Lewis’ puzzles also have this property. In many ways they remind me of Australian-style puzzles which tend to front-load a big aha that is difficult to stumble across, but feels <em>exactly right</em> once you do reach it. This puzzle—which we took to calling “one bajillion one gazillion one hundred and sixteen” verbally—is a great example. There’s not much you can do without the initial aha, but it’s very fair and carefully hinted at by the flavortext. I got a chance to pre-testsolve this puzzle, and it ended up being one of my favorites.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/twins/">Twins</a></strong>: Did you know there was an Earth-Jupiter-Saturn syzygy <a href="https://www.nasa.gov/feature/the-great-conjunction-of-jupiter-and-saturn/">about a month</a> before Mystery Hunt? It extracts to O in case you were curious 😛. Incidentally, someone remarked that technically we should call Rule of Three, Twins, and Level One <a href="https://www.gwiznlp.com/wp-content/uploads/2014/08/Whats-the-opposite-of-meta.pdf"><em>mesapuzzles</em></a> instead of metapuzzles because of how they work. I thought this was too cute not to share.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/circular-reasoning/">Circular Reasoning</a></strong>: This puzzle is as astonishing construction. If you know someone who likes cryptics you should absolutely show them this.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/water-bottle/">Water Bottle</a></strong>: Puzzles involving taste identification are really something you can only do in a large event like Mystery Hunt, so I’m glad we got a chance to develop this puzzle. I bought a bunch of hint waters to help decide which five flavors we’d use, and I learned that there’s a good deal of variation in how strong the flavor profiles are. From what I recall:</p>
<ul>
<li>Lemon certainly <em>smells</em> like how you’d think lemon would smell, but it doesn’t really taste like it.</li>
<li>Blackberry and raspberry taste kinda similar, which makes sense, but if you try really hard to distinguish them you probably can.</li>
<li>Pineapple is all but impossible to identify.</li>
</ul>
<p><br />
<strong><a href="https://puzzles.mit.edu/2021/puzzle/how-to-run-a-puzzlehunt/">How to Run a Puzzlehunt</a></strong>: This puzzle sorta serves as our advertisement for <a href="https://github.com/galacticpuzzlehunt/gph-site">gph-site</a>, an open-source repository for running puzzlehunts that we published based on the code we use to run the <a href="https://galacticpuzzlehunt.com/">Galactic Puzzle Hunt</a>. I encourage you to check it out if you’re considering running a puzzlehunt of your own! If you don’t think you’re technically savvy enough to build your own website, you can explore some other options in the “Hosting” section of <a href="https://github.com/fortenforge/suggestions-for-running-a-puzzlehunt#hosting">Suggestions for Running a Puzzlehunt</a>. I updated this guide in response to some things we learned from running Mystery Hunt.</p>
<p>The other big community contribution we made is <a href="https://github.com/galacticpuzzlehunt/puzzlord">Puzzlord</a>, a web application for managing the puzzle-writing process that served as our replacement to Puzzletron. I wrote a little bit about Puzzlord in the guide and you can read much more about it in <a href="https://blog.vero.site/post/2021-hunt">Brian’s blogpost</a>.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/telephone/">Telephone</a></strong>: The intention with this puzzle was to make solvers think that they were getting real Slack / Discord / whatever notifications while solving it. This seems to have worked from what I heard.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/nutraumatic/">Nutraumatic</a></strong>: Jakob and I started this just knowing that we wanted to write something that emulated Nutrimatic’s interface but was actually a puzzle. Extending the uppercase operators beyond A, C, and V was my idea and we worked together to come up with the particular operators and the IXPOWHXQELZTBUMXDS string, but all of the implementation work was done by Jakob. The goal was to showcase what kinds of things you could do using Nutrimatic’s engine, and in that sense I think we succeeded. We cheated on some of the operators though. For example, X works just by combining the results of the 26 queries where you assume each X is a different lowercase letter.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/%E2%8A%A5IW.nano/">⊥IW.nano</a></strong>: I’m pretty happy with how this puzzle turned out. The final answer, the subject matter and the solve path are all super thematic with the round as a whole and I think it made for a very compelling solve. My hope is that as solvers were zooming in to the spot where the missing alum should be they would say to themselves “this is crazy, there’s no way this will work,” and then they’d spot Feynman and go 🤯.</p>
<h2 id="stata-center">Stata Center</h2>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/pcluers/">PClueRS</a></strong>: I think this is the hunt’s best word puzzle. It’s a super impressive construction and a lively solving experience. I had a great time testsolving this puzzle.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/stata/">Stata Center</a></strong>: We must have testsolved and revised this meta at least seven times. I think the end result is pretty great. The folding aha is clued just enough to remain fair but still be a fun realization when solvers think of it. Also, I stayed up until 3am one night in order to get the interactive folding CSS in the solution working properly so do make sure you look at that.</p>
<h2 id="clusters">Clusters</h2>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/dont-get-eaten/">Don’t Get Eaten!</a></strong>: The reason I’m listed in the Art <a href="https://puzzles.mit.edu/2021/credits">credits</a> is that I actually created the image of ⊥IW’s Alchemist Sphinx. During one of our virtual writing retreats, Lennart gave a talk about how to use <a href="https://inkscape.org/">Inkscape</a> to create vector graphics for puzzles, so that was the tool I used. I first put together an Alchemist-like texture by writing out a bunch of mathematical symbols in Times New Roman and rotating and attaching them to each other. Then I took an image of an existing Sphinx and masked it against the math symbol texture. FInally, I applied shading based on the coloration of the original sphinx image to bring out the features and voila:</p>
<style>
.black {
background-color: black;
}
</style>
<p><img src="/e/assets/mysteryhunt2021/sphinxv2.png" alt="sphinx" class="center-image black" /></p>
<p>I’m positive there were many people on the team who could have done a better job than this, but our artists were very busy with the actually important buildings on ⊥IW, so my version was what we went with.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/enclosures/">Enclosures</a></strong>: Very cool puzzle; I’m sad I didn’t get a chance to testsolve it. I did factcheck it however, and I learned so much about calendars while doing so.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/clusters/">Clusters</a></strong>: This subject matter is such perfect puzzle fodder, I’m surprised I’ve never seen it used before. We thought this would be one of our easier metas but it ended up being fairly tricky. An earlier version used the final cluephrase BEYOND / TONGUE instead of ULTRA / GLOSSA, which meant that the Greek puzzle title’s starting letters were A, B, G, D, E, Z instead of just A, B, G, D, E. The lack of the Z made the ordering significantly harder I think. Also, there was an unintentional red herring with the round art (the building map is gridded) that may have led a few teams astray.</p>
<h2 id="tunnels">Tunnels</h2>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/bingo/">Bingo</a></strong>: This was another puzzle that was difficult to testsolve under real hunt conditions. We tried our best during one of our full hunt testsolves, but since it was unclear to us whether our testsolvers had more or less knowledge about our puzzles compared to a team which had just done the hunt, it was hard to draw firm conclusions. I think the one thing we overlooked is that this puzzle is much harder if you got it unlocked via time-unlocks instead of by legitimately solving enough puzzles to unlock the Tunnels round (because, presumably you’ve solved way fewer puzzles in the former case, and can thus make fewer inferences).</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/disorder/">Disorder</a></strong>: I was part of a group that successfully testsolved this puzzle and part of a team that successfully solved <a href="https://teammatehunt.com/puzzles/the-seven-empires">The Seven Empires</a> from Teammate Hunt, but I still only have the vaguest idea of how the board game in question works. Let me suggest that if the Diplomacy community wants to see even more Diplomacy puzzles, they really need to standardize on a set of territory codes to use.</p>
<p><strong><a href="https://puzzles.mit.edu/2021/puzzle/ignorance/">Ignorance</a></strong>: What a monumental achievement of a puzzle. My brain broke multiple times when I testsolved it. The authors introduce a genre of puzzle—epistemic riddles—and then proceed to stretch this genre to its utter limits. At the end of this puzzle you’ll genuinely feel like you have learned a new area of mathematics. Suggested soundtrack: <em><a href="https://www.youtube.com/watch?v=7lRldr2BH2M">I Know (A Song in Ten Words)</a></em>.</p>
<h2 id="endgame">Endgame</h2>
<p>We didn’t really start writing the final runaround until the middle of December. This was partly because we were super busy with other stuff beforehand, partly because we still didn’t have a good sense of how long our hunt was (and how short our endgame should be to compensate), and partly because we still weren’t completely sure what level of access we’d have to MIT’s campus. Given that it was all done at kind of the last minute, I’m very pleased with how it ended up.</p>
<p>The idea that since the universes are perpendicular you need to use the Pythagorean theorem before you can perform triangulation was both super thematic and super clever. If teams could have actually been on campus it would have been cool if they were able to walk directly to the results of their triangulation themselves, but hopefully they enjoyed watching our “UROPs” do so on their behalf. (Huge thanks to Mark, Yannick, and CJ who braved cold temperatures, rough winds, and snow in order to livestream the endgame so many times).</p>
<p>We had the idea that the coin would be a regular quarter that Professor Yew had left in a vending machine in ⊥IW pretty early on, and we ended up choosing the <a href="https://fortenf.org/mh-coin-map/">final coin location</a> because it was a central area on campus with access to a bunch of different vending machines.</p>This post is the second of two entries about the 2021 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at puzzles.mit.edu/2021. You can find my first post here.Mystery Hunt 2021 [Part 1/2]2021-01-28T16:12:47+00:002021-01-28T16:12:47+00:00https://fortenf.org/e//e/2021/01/28/mystery-hunt-2021-part-1<p><em>This post is about the 2021 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at <a href="https://puzzles.mit.edu/2021/">puzzles.mit.edu/2021</a>.</em></p>
<p>Two weeks ago, the 41st annual <a href="https://www.mit.edu/~puzzle/">MIT Mystery Hunt</a>—a project that I’d been working on for the past year—came to a thrilling close. Huge congratulations to Palindrome for being the first team to find the coin. I intend to write two posts about my experience on the writing team. The first (this one) will focus on some of the major events leading up to hunt itself, from theme selection, to dealing with the COVID-19 pandemic, to last-minute fire-fighting. In the second, I’ll talk about specific puzzles and rounds that I have things to say about.</p>
<p>I’m sure most people who end up reading this are familiar with the details of how our hunt worked, but I figure it can’t hurt to start out with some context:</p>
<!--more-->
<h2 id="overview">Overview</h2>
<p>The theme of the hunt was about the discovery of an alternate universe which contained the Perpendicular Institute of the World (⊥IW), a university that was remarkably similar to MIT. Teams needed to fix problems with the buildings on campus (The Green Building was covered with plants! The Infinite Corridor became actually infinitely long!) and rescue Professor Yew, the researcher who opened the original portal between the two universes and was now stuck in ⊥IW.</p>
<p><img src="/e/assets/mysteryhunt2021/green-building.png" alt="The Green Building in PerpIW" class="center-image" /></p>
<p>Teams could explore ⊥IW via a <em>projection device</em>, basically an <a href="https://en.wikipedia.org/wiki/Massively_multiplayer_online_game">MMO</a> that we built that replicated <strike>MIT's</strike> ⊥IW’s campus in a video-game world. All puzzles needed to first be found in the projection device before teams could actually work on them. Usually this meant that teams had to solve some fun navigation puzzle in the MMO in order to find the <a href="https://en.wikipedia.org/wiki/Non-player_character">NPC</a> that would give them the puzzle. Most puzzles themselves didn’t use the MMO, but some did in creative ways; more on these puzzles in the next post.</p>
<h2 id="theme-selection">Theme Selection</h2>
<p>One of the weird things about writing a Mystery Hunt is that rather than getting a chance to relax and settle in with your teammates you first need to make a big decision with huge consequences that will affect just about every other thing you work on for the next year. Namely, you have to choose the theme of your hunt. I’m not sure there exists a way to make the theme selection process feel like a friendly, low-stakes affair, but I know that it was a rather fraught experience for us.</p>
<p>The MMO theme, which we eventually picked, was clearly the leading proposal throughout the process, but as Nathan mentions in <a href="https://www.npinsker.me/puzzles/retrospective">his retrospective</a>, it didn’t have universal support:</p>
<blockquote>
<p>The MMO theme won the vote. Though I’m not sure it would have won if only experienced writers voted. I haven’t seen specific votes, so I can’t say this for sure, but from our discussions it seemed that most of the people who were strongly against the theme were puzzle veterans, and many people who were the most excited about the theme were people who had never contributed to GPH.</p>
</blockquote>
<p>I was one of the voices in opposition to the MMO theme. My main concerns were:</p>
<ol>
<li>The MMO itself was a huge risk from a technical perspective, and I didn’t believe that we could deliver the complete, bug-free experience the theme proposal was promising.</li>
<li>The MMO would be off-putting to hunters who don’t have as much experience with video games.</li>
<li>Implementing the MMO would require an absurd number of person-hours that could instead be used for actually writing puzzles.</li>
</ol>
<p>It’s interesting to look back on these concerns now that hunt has actually happened. Even though we did manage to deliver both a largely glitch-free MMO and a complete set of compelling puzzles and metas, I think I stand by all my concerns, and would still recommend future writing teams to not take the risks we did. It worked out for us, but it was not clear to me that it would work up until the very night before hunt (more about this below).</p>
<p>It also helped that the MMO proposal team added additional detail to their theme document that addressed my and others issues. In particular, the final proposal included the following statements:</p>
<p><strong>Metapuzzles would not use the MMO in any way.</strong> This was super important to me, because it meant that if the MMO was never finished or crashed in the middle of hunt we’d still have essentially a “normal” Mystery Hunt that teams could enjoy.</p>
<p><strong>Player capability would be limited to just moving around and emotes.</strong> I’m very glad we stuck with this, and I think it went <a href="https://puzzlvaria.wordpress.com/2021/01/20/2021-mit-mystery-hunt-part-1-whoosh-big-picture-pros-and-cons-nyeeeow/#comment-4733">a long way</a> towards making the MMO friendly even to non-gamers.</p>
<p><strong>Puzzles that use the MMO will be clearly marked as such.</strong> We did end up doing this, and I think this was useful in helping us avoid red herrings in the MMO itself. (There may still have been a few though. For example, some teams told us that they spent a lot of time exploring ⊥IW.giga to determine if they needed to do something in the MMO to make progress in the round, and I do wonder if the round might have gone a little smoother without the MMO (although to be clear, I think the vast majority of the issue stemmed from the puzzle presentation itself)).</p>
<h2 id="metapuzzle-writing">Metapuzzle Writing</h2>
<p>Once the MMO theme was officially selected we held elections for a few exec roles, and Jon and I jointly ran for and won the Editor-in-Chief position. The first major piece of business was then vetting and help flesh out proposals for each of the rounds. I’ll save commentary on some of the individual metas and round structures for a later post, but the one thing I’ll say is that we had a lot of people on our team who wanted to try their hand at writing a metapuzzle and as such we had a lot of round proposals. It was difficult enough whittling these down to the eight we ended up choosing, and cutting them down to six—as <a href="https://puzzlvaria.wordpress.com/2021/01/20/2021-mit-mystery-hunt-part-1-whoosh-big-picture-pros-and-cons-nyeeeow/#comment-4739">some</a> seem to have wanted us to do—would have meant saying no to a lot of great ideas, which we just weren’t willing to do.</p>
<h2 id="covid-19">COVID-19</h2>
<p>Around late March, about ten days after we all started locking down and social distancing and bending the curve or whatever, Lewis wrote what would be a very prescient document that speculated on how the ongoing pandemic would affect our hunt. It essentially laid out the two options that we as a team would need to choose between: hold the first ever remote Mystery Hunt or postpone Mystery Hunt for the first time.</p>
<p>Given the uncertainty, we basically avoided thinking about the future up until MIT clarified their plans. When MIT announced that they were essentially canceling IAP 2021, we started gearing ourselves up to make the decision. We sent out a survey to past participants to get a sense of what they valued about Mystery Hunt and what they thought we should do, we formed a committee to flesh out the two basic options (remote hunt or delayed hunt), and we held a binding vote.</p>
<p>I was on the COVID committee, and I think the work we did was some of the most valuable contributions I made to this hunt. In particular, I think that we helped the team get a realistic sense of what the two options would look like in practice, and that in turned allowed members to cast an informed vote.</p>
<p>I lobbied fairly strongly for the remote option throughout the process and I was relieved when it ended up winning.</p>
<h2 id="puzzle-writing">Puzzle Writing</h2>
<p>Again, I’ll save comments on specific puzzles for a later post, but I did not want to gloss over what I spent the vast majority of my time on, namely writing, editing, testsolving, revising, post-prodding, fact-checking, copy-editing, and ordering so many puzzles.</p>
<p><img src="/e/assets/mysteryhunt2021/puzzlord-graph.png" alt="Invest in PZZL" class="center-image" /></p>
<p>As you can see from the graph, a lot of the work happened in the last month or even the last week before hunt. I think this is somewhat inevitable, but I do regret the franticness at the end.</p>
<p>Speaking of a last-minute crunch, let’s talk about:</p>
<h2 id="the-night-before-hunt">The Night Before Hunt</h2>
<p>Aside from the three big testsolving events we held, the primary way we tested the MMO was via “MMO Races” which would function like full hunt testsolves, except we’d set the answer to every puzzle to ANSWER to allow people to focus on testing the MMO itself. These were very chaotic and we’d end up with a long list of bugs after each one. I think these were great at surfacing obvious issues like NPCs giving the wrong puzzles or movement being broken entirely in the Tunnels, but I was worried that we were missing more subtle errors related to puzzles unlocking in sync with the MMO.</p>
<p>So, the night before hunt a group of us did a much more careful run-through of the entire hunt from end to end. It was kind of a grueling experience, but it was super valuable. For one, it convinced me that we’d actually be able to pull this whole thing off: I went into it thinking we were going to find way more issues than we could possibly have time to debug and fix, but we ended up identifying only a handful of critical bugs, all of which we were pretty sure we fixed by the morning.</p>
<p>One of these was related to the <a href="https://puzzles.mit.edu/2021/round/infinite/solution/">Infinite Corridor navigation puzzle</a>. Unlike the other nav puzzles, which were for the most part either entirely locked or unlocked based on a team’s current JUICE value, the Infinite Corridor navigation puzzle is this complicated system in which the NPC’s in each room, the portals in each room, the mapping function for each portal, the NPC at the start of the corridor, and the portal leading to the metapuzzle all need to show up and mutate at the appropriate times in response to both progress in the round and whenever any person on the team finds the current target room.</p>
<p>When doing the run-through we discovered an issue involving the portal to the round’s metapuzzle showing up at the wrong time. I don’t remember the exact bug, although I do remember needing to repeatedly feed Jon the solution to the final Infinite nav puzzle over and over again as we repeatedly tested the round. In parallel we were also trying to finish an instance of <a href="https://puzzles.mit.edu/2021/puzzle/cafe-five/solution/">Cafe Five</a> to verify that completing it would correctly give us a token that we could spend to get an answer. I distinctly remember racing Anderson to see if I could look up the solution to some of the logic puzzles faster then he could solve them legitimately.</p>
<p><img src="/e/assets/mysteryhunt2021/infinite.png" alt="The Infinite Corridor" class="center-image" /></p>
<p>We found a couple of other issues related to the <a href="https://puzzles.mit.edu/2021/puzzle/violet-coins-in-space/">Violet Coins In Space</a> field goal and the unlock times for the <a href="https://puzzles.mit.edu/2021/round/yew-labs/">Yew Labs</a> round, but like I said, for the most part things were working correctly. We started the run-through at around 10pm and let up at 3:30am—five and half hours before kickoff. Huge thanks to everyone who stayed up with us including Steven, Herman, and Ben who did most of the actual debugging and fixing.</p>
<h2 id="the-bugs-we-lived-with">The Bugs We Lived With</h2>
<p>Of course, during hunt itself we learned of a number of bugs that we missed during the run-through, but luckily none of these ended up being terribly severe. Specifically:</p>
<ul>
<li>There was a rare edge case we missed in which a team solved an <a href="https://puzzles.mit.edu/2021/puzzle/infinite-corridor-simulator/solution/">Infinite Corridor Simulator</a> puzzle prior to even finding the metapuzzle, which would prevent the metapuzzle portal from ever showing up.</li>
<li>We discovered an annoying bug with <a href="https://puzzles.mit.edu/2021/puzzle/cafe-five/solution/">Cafe Five</a> token spending in which teams could exploit a race condition and spend one Cafe Five token on two different puzzle instances. We tried in vain to fix this during hunt, but ended up bringing down the puzzle repeatedly as we fought with Django atomic transactions. Eventually, we declared defeat and just asked teams to be extra careful when spending a token.</li>
<li>The <a href="https://puzzles.mit.edu/2021/puzzle/button-press/">Button Press</a> field goal was supposed to unlock as soon as the puzzle <a href="https://puzzles.mit.edu/2021/puzzle/twins/">Twins</a> (which unlocks <a href="https://puzzles.mit.edu/2021/round/giga/?special=2">⊥IW.kilo</a>) was solved. Instead, it unlocked as soon as Twins was <em>found</em>. This meant that several teams unlocked the puzzle but were unable to start working on it. It also somewhat spoiled the existence of ⊥IW.kilo to teams still stuck on ⊥IW.giga, but given how much trouble teams had with giga, we decided this was for the best.</li>
<li>We had wanted the four dorm metas (<a href="https://puzzles.mit.edu/2021/puzzle/random-hall/">Random Hall</a>, <a href="https://puzzles.mit.edu/2021/puzzle/simmons-hall/">Simmons Hall</a>, <a href="https://puzzles.mit.edu/2021/puzzle/east-campus/">EAsT camPUS</a>, and <a href="https://puzzles.mit.edu/2021/puzzle/dorm-row">Dorm Row</a>) to unlock both after some proportion of their feeder puzzles were solved and after every student puzzle was unlocked. We forgot to add the latter condition which meant that Random Hall—which had its feeders unlock disproportionally early in the ordering—often unlocked for skilled teams far earlier than we wanted it to. A lot of these teams solved <a href="https://puzzles.mit.edu/2021/puzzle/random-hall/">Random Hall</a> without even unlocking <a href="https://puzzles.mit.edu/2021/puzzle/blind-calculation/">Blind Calculation</a>, and some of them then tried to backsolve by submitting PRODUCT TEST or PRODUCT TESTING to every new student puzzle they unlocked.</li>
<li>The Random Hall bug had another effect. We had wanted to unlock the MMO in three phases. The first phase, which was available as soon as the projection device opened, was all of east campus including the Green Building, Building 14, and the Sailing Pavilion. The second phase included the main group, Killian Court, and the Stata Center, and the third phase included everything west of <strike>Massachusetts</strike> Perpendicular Avenue. Each phase would unlock for a team as soon as any asset located in that phase was needed by the team. Since Random Hall was in phase three, that meant that this phase unlocked earlier than we would have liked for many teams.</li>
<li>All the teamwork-time puzzles in the <a href="https://puzzles.mit.edu/2021/round/athletics/">Basketball</a> round experienced bugs related to both load and concurrency issues, which made them a more frustrating experience than they were intended to be. I think these five puzzles are some of the best ones in our hunt, so I do encourage you to check them out if you didn’t get a chance to do so during hunt itself.</li>
</ul>
<h2 id="closing-thoughts">Closing Thoughts</h2>
<p>It was good to have an activity I could plow time into that could be done entirely remotely. Yes, there were some plans for in-person writing and testsolving retreats that we had to scrap, but hunt-writing was always going to take place mostly over the Internet, and this ended up being a good year to spend a lot of time with people on the other side of the country who I normally couldn’t hang out with face-to-face anyways.</p>
<p>I joined the writing team because a lot of friends I’d made via the <a href="https://galacticpuzzlehunt.com/">Galactic Puzzle Hunt</a> were on it, and I thought it would be a fun experience. It absolutely was. I know a lot of team members were at times stressed or sad or angry about various things, and I don’t want to minimize the angst caused by the decision to switch to a remote hunt, but I had a fantastic time helping build this beautiful thing we created and I don’t regret a second of it.</p>
<p>I’m excited to participate in Palindrome’s 2022 Mystery Hunt, and here’s hoping that it can take place in person at MIT once again!</p>This post is about the 2021 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at puzzles.mit.edu/2021.My Votes on the 2020 CA Propositions2020-10-10T22:12:47+00:002020-10-10T22:12:47+00:00https://fortenf.org/e//e/2020/10/10/california-propositions<p>For over a hundred years, the state of California has allowed its voters to enact legislation via a direct yes or no vote through its proposition system. This has made a lot of people very angry and been widely regarded as a bad move.</p>
<!--more-->
<p>In this post, I’ve laid out my votes and justifications for the twelve statewide propositions on this year’s ballot. Before you dive in, there are some things you should keep in mind about the proposition system as a whole:</p>
<ul>
<li>
<p><strong>There are two ways for propositions to get on the ballot.</strong> Either the state legislature can hold a vote to put something on the ballot, or a private citizen must gather over 600,000 signatures from registered voters. In practice, the only way to do the latter is to pay people a lot of money to stand on street sidewalks and harangue people passing by, so any proposition on the ballot that was not placed by the state legislature was put there by a group that paid a lot of money to put it in front of your eyes.</p>
</li>
<li>
<p><strong>Propositions can’t be overturned by the legislature.</strong> This is where the California proposition system goes from quixotic to downright harmful. If a proposition is enacted but causes problems down the line, it can be very hard to address those issues in a timely manner. The only way of doing so is to make changes via another proposition, which is a risky and cumbersome process. Many of the ills afflicting the state can be traced back to propositions that were passed decades ago and are all but impossible to repeal.</p>
</li>
<li>
<p><strong>The proposition numbering system is very confusing.</strong> Originally, the propositions on the ballot each year would be numbered 1 to N. Because of the above bullet point, many propositions submitted every year are simply changes to prior propositions, so it became confusing to have discussions about them. (“Wait do you mean 1978’s Prop 13 about <a href="https://ballotpedia.org/California_Proposition_13,_Tax_Limitations_Initiative_(1978)">property taxes</a> or 2010’s Prop 13 about <a href="https://ballotpedia.org/California_Proposition_13,_Seismic_Retrofitting_(June_2010)">seismic retrofitting</a>”). Starting in 1982, proposition numbers were no longer reused and continued to increment election after election. By 1998, we started to have triple digit propositions, which everyone agreed was also bad, so now we reset the count to 1 every ten years. It’s a mess.</p>
</li>
</ul>
<p><span id="prop-list"></span></p>
<p>Got it? OK, without further ado, here are my votes:</p>
<ul>
<li><a href="#proposition-14-stem-cell-research-">Prop 14: Stem Cell Research ❌</a></li>
<li><a href="#proposition-15-property-tax-changes-">Prop 15: Property Tax Changes ✅</a></li>
<li><a href="#proposition-16-affirmative-action-">Prop 16: Affirmative Action ❌</a></li>
<li><a href="#proposition-17-parolee-enfranchisement-">Prop 17: Parolee Enfranchisement ✅</a></li>
<li><a href="#proposition-18-minor-enfranchisement-">Prop 18: Minor Enfranchisement ✅</a></li>
<li><a href="#proposition-19-more-property-tax-changes-">Prop 19: More Property Tax Changes ✅</a></li>
<li><a href="#proposition-20-criminal-justice-">Prop 20: Criminal Justice ❌</a></li>
<li><a href="#proposition-21-local-rent-control-">Prop 21: Local Rent Control ❌</a></li>
<li><a href="#proposition-22-gig-worker-labor-classification-">Prop 22: Gig Worker Labor Classification ✅</a></li>
<li><a href="#proposition-23-dialysis-clinic-regulation-">Prop 23: Dialysis Clinic Regulation ❌</a></li>
<li><a href="#proposition-24-consumer-data-privacy-">Prop 24: Consumer Data Privacy ❌</a></li>
<li><a href="#proposition-25-ending-cash-bail-">Prop 25: Ending Cash Bail ✅</a></li>
</ul>
<h2 id="proposition-14-stem-cell-research-">Proposition 14: Stem Cell Research ❌</h2>
<p>Whatever happened to stem cells? It was one of the defining political and social controversies of the early aughts, and then it just… went away?</p>
<p>In 2001, President Bush prohibited federal funding of most human embryonic stem cell research. In response, California voters passed <a href="https://ballotpedia.org/California_Proposition_71,_Stem_Cell_Research_Initiative_(2004)">Proposition 71</a> in 2004, which legalized stem cell research as a constitutional right and directed $3 billion dollars to the newly formed California Institute for Regenerative Medicine (CIRM), which in turn funded stem cell studies at universities across the state.</p>
<p>The $3 billion was doled out over the course of the last 16 years and is now mostly gone. Prop 14 renews the fund to the tune of $5.5 billion in general authorization bonds.</p>
<p>In 2004, Prop 71 was a bold culture-war stance, a real <a href="https://www.youtube.com/watch?v=EzWNBmjyv7Y">“fine, I’ll do it myself”</a> moment. In 2020, Prop 14 is much less salient. In the intervening years, researchers discovered how to generate pluripotent stem cells from adult cells without destroying an embryo (they won a <a href="https://www.nobelprize.org/prizes/medicine/2012/press-release/">Nobel Prize</a> for this work!), and in 2009 President Obama removed the restrictions that President Bush had imposed.</p>
<p>The argument against Prop 14 is that it costs too much money, and argument for it is that spending money on basic research is beneficial. The fundamental question is whether a marginal dollar in the state’s budget does more good when put to this kind of research instead of wherever else it would have gone. It’s a hard question to answer, so I’ve defaulted to voting no. <a href="#prop-list">↩</a></p>
<h2 id="proposition-15-property-tax-changes-">Proposition 15: Property Tax Changes ✅</h2>
<p>The original sin of California housing politics is <a href="https://en.wikipedia.org/wiki/1978_California_Proposition_13">Proposition 13</a>. Passed in 1978, it limited how much property taxes could increase over time.</p>
<p>In any sane world, property taxes would be proportional to how valuable the real estate is, and if your home doubled in value from one year to the next, your taxes should double as well. Prop 13 threw that out of the window, and instead capped property tax rises to 2% a year and only allowed a reassessment of value upon sale of the property.</p>
<p>This created warped incentives surrounding home sales: let’s say you’ve lived in San Francisco for decades and you now want to move out of the city into a smaller home because your kids have moved out. Even though you’re living in some of the most valuable real estate in the country, your new, cheaper home may have <em>higher</em> property taxes than your current one, because you purchased it in the sixties. This essentially functions as an implicit tax on moving or selling your property.</p>
<p>As discussed in the introduction, the only way to modify Prop 13 is via more propositions, and as a result, for the last 40 years California voters have been asked to vote on dozens of propositions all trying to fix the various problems Prop 13 caused.</p>
<p>Progressives and YIMBYs dream of repealing the law wholesale, but it’s intensely popular (understandably so!). Prop 15 is the best shot we have: it repeals Prop 13 for commercial properties (any building that’s not a home or a farm).</p>
<p>There are some minor concerns about incentivizing office construction relative to residential housing, but we shouldn’t lose sight of the forest for the trees—anything that takes us closer to repealing Prop 13 is good, and Prop 15 does exactly that. <a href="#prop-list">↩</a></p>
<h2 id="proposition-16-affirmative-action-">Proposition 16: Affirmative Action ❌</h2>
<p>In 1996, California progressives enshrined the following words in our state’s constitution via Proposition 209:</p>
<blockquote>
<p>The state shall not discriminate against, or grant preferential treatment to, any individual or group on the basis of race, sex, color, ethnicity, or national origin in the operation of public employment, public education, or public contracting.</p>
</blockquote>
<p>Now, 24 years later, conservatives are fighting to pass Prop 16 to re-legalize state-sponsored discrimination.</p>
<p>Wait. No. I’ve got that backwards. Apparently it’s <em>conservatives</em> who pushed for Prop 209 and it’s so-called progressives who want to pass Prop 16. Weird 🤷.</p>
<p>Of course, it’s all really about the ability to enact affirmative action policies in higher education (and frankly it’s <em>really</em> about a brawl over the admissions policies of UC Berkeley and UCLA). California public universities are currently allowed to consider socioeconomic status, but not race or gender. Prop 16 would change that. <a href="#prop-list">↩</a></p>
<h2 id="proposition-17-parolee-enfranchisement-">Proposition 17: Parolee Enfranchisement ✅</h2>
<p>The state constitution currently prevents people on parole from being able to vote. Prop 17 repeals that provision. There are only around 50,000 people on parole at any given time, and even if this proposition passes only a fraction of them will end up registering, so the impact here is pretty small—but who cares? We should be letting as many people participate in democracy as possible. Voting restrictions are un-American. Vote yes. <a href="#prop-list">↩</a></p>
<h2 id="proposition-18-minor-enfranchisement-">Proposition 18: Minor Enfranchisement ✅</h2>
<p>This proposition allows 17-year-olds who would be 18 at the time of a general election to vote in the primaries and special elections (which typically take place several months earlier). Again, this probably has negligible impact, but it’s a no-brainer.</p>
<p>Honestly, I think there’s a compelling case to just remove age-restrictions on voting entirely. If a 7-year-old can fill out a ballot independently, I see no reason why it shouldn’t be counted. I’m perfectly serious about this. The arguments that people make to disenfranchise minors—that they’re not educated on the issues, that their parents will sway their votes—are nearly identical to the arguments made against blacks’ and women’s voting rights in the 19th and 20th centuries. <a href="#prop-list">↩</a></p>
<h2 id="proposition-19-more-property-tax-changes-">Proposition 19: More Property Tax Changes ✅</h2>
<p>Remember the warped incentives created by Prop 13 I mentioned above? Well in 1986, voters passed Proposition 60, which was designed to realign those incentives somewhat. It allowed homeowners over the age of 55 to move once in their life to a new house of equal or lesser value within the same county and keep the same assessed value of their old home when paying taxes on their new home. The idea was that this would remove the disincentive for downsizing introduced by Prop 13.</p>
<p>In the 2018 election, California realtors put Proposition 5 on the ballot, which would have expanded the provisions of Prop 60 in a number of ways. Specifically: homeowners could exercise the provision an unlimited number of times, they would no longer be restricted to move within the same county, and their new home could be more expensive than their old home.</p>
<p>Prop 5 was seen (correctly IMO) as a massive giveaway to wealthy taxpayers and a huge drain on local government budgets and it was soundly defeated. Prop 19 is the realtors’ second attempt, but it includes a big concession.</p>
<p>Currently (and egregiously) Prop 13 applies even if you inherited a property from your parents. This allows a house to pass down from one generation to the next while still keeping the property tax value assessment based on the price paid when the house was first purchased. Prop 19 would kill this, and in doing so would actually raise enough money to offset the costs imposed by the moving provision.</p>
<p>YIMBY and progressive groups lined up squarely against Prop 5 two years ago, but both groups are salivating at the chance to repeal the Prop 13 inheritance loophole, so most have come out in favor of Prop 19. <a href="#prop-list">↩</a></p>
<h2 id="proposition-20-criminal-justice-">Proposition 20: Criminal Justice ❌</h2>
<p>Prop 20 is a relic of the “War on Crime” era of California and national politics that the public has rightly rejected and begun undoing in the past decade or so. It would allow certain crimes that are currently treated as misdemeanors to sometimes be treated as felonies, make it harder for convicted criminals to get parole, and require DNA collection for people convicted of certain misdemeanors.</p>
<p>Crime is down across the state, our prisons are still over capacity, and our criminal justice system still is not being applied equally across racial lines. There’s no good reason to vote for Prop 20. <a href="#prop-list">↩</a></p>
<h2 id="proposition-21-local-rent-control-">Proposition 21: Local Rent Control ❌</h2>
<p>I recently finished reading Conor Dougherty’s book <a href="https://www.nytimes.com/2020/02/13/business/economy/housing-crisis-conor-dougherty-golden-gates.html"><em>Golden Gates: Fighting for Housing in America</em></a> which covers California’s housing crisis and the rise and early fights of the YIMBY movement. (I highly recommend the book—it’s pretty short!). One of the topics it covers was the 2018 fight over Proposition 10 about rent control.</p>
<p>There’s almost no issue that engenders more controversy in YIMBY circles than rent control. Critics (and among them include economists of all stripes) will argue that rent control distorts the market, favors current residents over immigrants, and papers over the real problem afflicting communities across our state: a shortage of housing stock. Supporters argue that while rent control won’t solve the housing crisis, it is a necessary step to help struggling families, especially in the midst of the pandemic.</p>
<p>For the last 30 years, rent control has been mostly disallowed in California at the state level—a consequence of the famed <a href="https://la.curbed.com/2018/1/12/16883276/rent-control-california-costa-hawkins-explained">“Costa-Hawkins” Act</a>, which forbade city governments from enacting rent control on apartment housing built after 1995. Another provision of Costa-Hawkins was that it prohibited <em>vacancy control</em>. Normally when a renter moves out of a rent-controlled apartment, the landlord is free to raise the rent for a new tenant back to the market-rate. Vacancy controls prohibit landlords from doing this and would result in further distortions to the housing market.</p>
<p>In 2018, Prop 10 tried to repeal Costa-Hawkins; progressives uniformly supported the proposition, Republicans were uniformly opposed, and YIMBY groups were deeply split. In the end, the proposition failed to pass.</p>
<p>As of January 1st 2020 though, California does actually have statewide rent control, thanks to David Chiu’s <a href="https://bungalow.com/articles/californias-rent-control-law-explained">AB 1482</a>. For apartment complexes built more than 15 years ago and not already exempt from Costa-Hawkins, AB 1482 caps rent increases at 5% plus inflation per year.</p>
<p>To get AB 1482 passed, Chiu had to make several compromises with YIMBY legislators and landlord groups. The end result was a pretty sensible law, in line with a similar <a href="https://www.npr.org/2019/02/27/698509957/oregon-set-to-pass-the-first-statewide-rent-control-bill">statewide law</a> passed in Oregon. Some people (Chiu included) think it doesn’t go far enough, and they got enough signatures to put Proposition 10 back on the 2020 ballot as Prop 21.</p>
<p>Prop 21 tramples over the provisions of AB 1482 and essentially allows cities to go wild with rent control ordinances on any apartment complexes built more than 15 years ago. Critically, Prop 21 also repeals the vacancy control ban from Costa-Hawkins, meaning that cities could prevent landlords from charging market rate prices to new tenants.</p>
<p>Some amount of rent control is OK, but giving cities carte blanche control would allow local governments to privilege existing residents over immigrants and further distort California’s broken housing market. We should at least give a chance for AB 1482 to do its work before throwing out Costa-Hawkins entirely. <a href="#prop-list">↩</a></p>
<h2 id="proposition-22-gig-worker-labor-classification-">Proposition 22: Gig Worker Labor Classification ✅</h2>
<p>Ah, finally we arrive at Prop 22: the big showdown between app-based services like Uber, Lyft, and DoorDash and the progressive movement. This is probably the most discussed proposition on the ballot this year, and if you’re a Californian, you’ve almost certainly been inundated with ads and mailers asking you to vote yes.</p>
<p>Let’s start with some context: In 2019 Lorena Gonzalez introduced <a href="https://en.wikipedia.org/wiki/California_Assembly_Bill_5_(2019)">AB 5</a>, and it was quickly signed into law by Governor Newsom. AB 5 lays out the conditions for when a worker can be classified as an employee versus an independent contractor for a company.</p>
<p>All things being equal, companies would like to classify their workers as independent contractors. Independent contractors don’t have to receive a minimum wage, they don’t have to receive workers’ comp, and their employer doesn’t have to pay payroll taxes, social security taxes, or unemployment insurance taxes on their behalf. However, being an employee is not strictly better: independent contractors retain the freedom to set their own hours and can pursue their work as a side hustle.</p>
<p>From the moment AB 5 was introduced, industries (and their workers!) began lobbying state legislators to carve out exceptions for them. At the time of passage, the law exempted real estate agents, insurance agents, doctors, dentists, lawyers, accountants, and hairstylists. A <a href="https://www.sfchronicle.com/business/article/AB5-clean-up-bill-allows-gig-work-for-musicians-15528850.php">“cleanup bill”</a> was later passed that exempted freelance journalists, musicians, interpreters, translators, photographers, and newspaper cartoonists. (Neither of these lists is exhaustive. See <a href="https://www.nfib.com/content/legal-compliance/labor/understanding-ab-5-californias-new-independent-contracting-rules/">here</a> for a full list.)</p>
<p>As the list of exceptions grows (and indeed it’s not out of the question that the California legislature may exempt more professions), at some point you have to ask if AB 5 was passed as a matter of principle, or if it was targeted specifically at the app-based rideshare and delivery companies that make up the new “gig economy”.</p>
<p>While the legislature won’t be exempting Uber anytime soon, the company isn’t taking this fight lying down. They partnered with Lyft and DoorDash to get enough signatures to put Prop 22 on the ballot, which carves out their own AB 5 exemption for app-based services.</p>
<p>The “Yes on 22” committee claims that app-based drivers overwhelmingly prefer to be classified as independent contractors. The truth is a little more complicated. Some drivers (about half) treat their work for Uber or Lyft as a full-time job, and these individuals are ones who suffer from not being treated as full employees, but other drivers do treat ridesharing as a side-hustle and put a high price on the flexibility offered by the contractor status. If you step into an Uber in the days before the election, I encourage you to talk to your driver about Prop 22! I think you’ll find that there’s a diversity of opinions on this issue.</p>
<p>We should also talk about the much-derided “7/8ths” provision of Prop 22. As I mentioned above, by default, propositions can’t be overturned or modified by the state legislature. This is, in some ways, the whole point of propositions. Some proposition writers—knowing that they can’t anticipate everything the future holds—do allow the legislature to make changes, but usually with some kind of super-majority vote. 2/3rds is common, and is used by Prop 17 and Prop 21 this year. Prop 22 uses 7/8ths.</p>
<p>Even in California, where Democrats have supermajorities in both legislative chambers, it’s virtually impossible to get 7/8ths of lawmakers to agree on anything. Functionally, you should treat Prop 22 the same way you treat Props 15, 16, and 19: something that can’t be overturned except via another proposition down the line.</p>
<p>Here’s how I think about Prop 22: do you think a world with Uber, Lyft, and other app-based services is better or worse than a world without them? There’s no middle ground here. The companies have made it abundantly clear that they can’t operate in an environment where AB 5 is the law of the land. Uber and Lyft have already both threatened to <a href="https://marketscale.com/industries/transportation/why-uber-lyft-threatened-to-leave-california-for-good/">leave California</a> before <a href="https://www.nytimes.com/2020/08/20/technology/uber-lyft-california-shutdown.html">backing down</a> after an appeals court allowed them to continue classifying drivers as contractors until a trial proceeds.</p>
<p>Ultimately, I think a world with Uber is better than one without. I’m voting yes on Prop 22. <a href="#prop-list">↩</a></p>
<h2 id="proposition-23-dialysis-clinic-regulation-">Proposition 23: Dialysis Clinic Regulation ❌</h2>
<p>The background here is a massive fight between dialysis companies and the Service Employees International Union United Healthcare Workers West (SEIU UHW West (what a mouthful)). For reasons passing understanding, the SEIU UHW West has decided that the best way to achieve their objectives is via a ballot proposition that imposes new regulations on dialysis clinics.</p>
<p>They already tried once in 2018 with Prop 8; this is their second attempt. Although dialysis companies are <a href="https://www.youtube.com/watch?v=yw_nqzVfxFQ&list=ULBgyqAD5Z6_A&index=203">no saints</a>, as far as I can tell this proposition is bad on the merits. It would increase costs for patients, while not really providing any needed protections. <a href="#prop-list">↩</a></p>
<h2 id="proposition-24-consumer-data-privacy-">Proposition 24: Consumer Data Privacy ❌</h2>
<p>In 2018, the California legislature passed the California Consumer Privacy Act (CCPA), which copied over a number of provisions from Europe’s General Data Protection Regulation (GDPR). The CCPA regulates how companies can use the private data they collect from their customers.</p>
<p>My general view on the CCPA and GDPR is that they’re both well-intentioned, and maybe even beneficial for consumers, but probably have the counter-productive effect of entrenching big tech companies’ dominance at the expense of smaller startups. (Google and Facebook have the cash to throw at engineers and lawyers to make sure that they stay in compliance. Startups (even venture-funded ones) don’t.)</p>
<p>Prop 24 modifies the CCPA but not in any straightforward way. Nobody really seems to know what to make of it (the California Democratic Party <a href="https://cademorg-media.s3.amazonaws.com/wp-content/uploads/2020/09/28204844/CDP-PropEnsorsements__Interactive.pdf">declined</a> to endorse Prop 24 one way or the other).</p>
<p>If the legislature wants to make these changes to the CCPA, they’re free to do so. There’s no need to do it via proposition. <a href="#prop-list">↩</a></p>
<h2 id="proposition-25-ending-cash-bail-">Proposition 25: Ending Cash Bail ✅</h2>
<p>When cops arrest someone on suspicion of committing a crime, they send them to jail (<a href="https://www.merriam-webster.com/words-at-play/jail-vs-prison-difference">not prison!</a>) to await trial. We don’t want to needlessly detain people, but we also want to ensure that suspects aren’t able to flee the country before being tried. Enter cash bail: a judge sets an amount of money that must be paid by the subject to get out of jail. After the trial, the defendant gets the money back.</p>
<p>It’s an elegant idea in theory, but in practice it’s <a href="https://www.youtube.com/watch?v=IS5mwymTIJU">rife with problems</a>. In particular, the poor—who are disproportionally likely to be arrested in the first place—don’t have the money to post bail but also can’t afford to miss out on their job while they’re behind bars. This forces them to either visit bail bonds companies, which charge exorbitant interest rates, or plead guilty to avoid trial altogether. It’s a horribly unequal system.</p>
<p>Prop 25 would end the practice altogether and replace it instead with an “algorithm” that determines if someone is a flight-risk. While Democrats should be excited by the prospects of ending cash bail, several progressive groups (including the California NAACP) are wary of replacing it with a potentially-biased algorithm.</p>
<p>Unfortunately, there really isn’t a viable alternative here. Leaving it purely up to the discretion of judges leaves room for even more bias, and the existing system is unjustifiably bad. Risk-assessing algorithms have been tried in other states, and results are <a href="https://whyy.org/articles/n-j-officials-have-finally-released-data-on-bail-reform-their-conclusion-its-working/">fairly positive</a>. <a href="#prop-list">↩</a></p>
<h2 id="additional-resources">Additional Resources</h2>
<p>To reiterate: it’s borderline insane that California expects its voters to learn and make informed decisions about these complicated legislative issues. If you’re feeling overwhelmed, just remember that you’re always free to leave any selection blank. If you do want to learn more or read another perspective on the propositions, here are some links:</p>
<ul>
<li><a href="https://www.techworkers.vote/elections/2020-november/">Tech Worker Voter Guide</a></li>
<li><a href="https://calmatters.org/politics/california-election-2020/2020/10/california-props-minute-video-playlist-2020/">Cal Matters’ 1 Minute Proposition Videos</a></li>
<li><a href="https://yimbyaction.org/endorsements/santa-clara-county/">YIMBY Action Endorsements</a></li>
<li><a href="http://www.peterates.com/props-1120.shtml">Pete Rates the Propositions</a></li>
<li><a href="https://www.mercurynews.com/2020/08/30/our-election-endorsements-for-the-nov-3-races-and-ballot-measures/">San Jose Mercury News Endorsements</a></li>
<li><a href="https://voterguide.sos.ca.gov/propositions/index.htm">California Official Voter Information Guide</a></li>
</ul>
<p><em>Thanks to Ray, Kim, and Varun for reading drafts of this.</em></p>For over a hundred years, the state of California has allowed its voters to enact legislation via a direct yes or no vote through its proposition system. This has made a lot of people very angry and been widely regarded as a bad move.No, you couldn’t have made more money than the Twitter hacker2020-07-15T23:12:47+00:002020-07-15T23:12:47+00:00https://fortenf.org/e//e/security/2020/07/15/twitter-hack<style>
.center {
margin-left: auto;
margin-right: auto;
}
</style>
<p>Picture this: you’ve stumbled across the vulnerability of the year. You figured out how to gain access to any verified Twitter user’s account: Joe Biden, Kim Kardashian, Kanye West, XXXTentacion, Apple, you name it. That was step 1 of your evil plan. What should step 2 be?</p>
<p>Maybe you log into the president’s account and post a fake tweet about launching missiles to North Korea. I’m not convinced that you can start a world war just by sending out a few fake tweets, but for the sake of argument let’s say that you can. But you’re not interested in watching the world burn anyway; no, your goal is to <strong>make as much money as possible</strong>. What should you do?</p>
<p>The people who carried out today’s Twitter hack had one answer: post variants of the message “send 1 BTC to this address and I’ll send 2 BTC back” on famous accounts, and then (here’s the kicker) <em>don’t actually send 2 BTC back</em>.</p>
<p><img src="https://video-images.vice.com/test-uploads/_uncategorized/1594848885006-image.png" alt="image" class="center-image" /></p>
<p>They managed to run off with a little over <a href="https://www.blockchain.com/btc/address/bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh?page=2">$100,000</a> before Twitter got the situation under control. Several people (on Twitter, on Hacker News, everywhere really) scoffed at this and claimed that they would have done something much more interesting with this kind of power. Let’s explore some of their ideas to see if we really can do better.</p>
<!--more-->
<h2 id="stock-market-manipulation">Stock Market Manipulation</h2>
<p>This is the first thing that comes to most people’s minds. It sounds easy: buy a bunch of Tesla stock, log into Elon Musk’s account, tweet “Taking $TSLA private at $2000,” and sell in the time between the rise in price and when Musk/Twitter/the whole world realizes the hack.</p>
<p>This requires a fair amount of capital to buy the underlying stock, which the hacker may not have had, but there are other options: maybe you short the stock and then tweet (fake) damaging information about Tesla’s new line of cars. Maybe you just short Twitter’s own stock, which will surely take a huge hit in the market tomorrow (the hack was executed after trading hours).</p>
<blockquote class="twitter-tweet tw-align-center"><p lang="en" dir="ltr">oh lol i'd buy HTZ, that's the trade. "i've decided that Tesla will buy Hertz out of bankruptcy at $69 per share and make its fleet entirely self-driving," i'd be a billionaire and Money Stuff would end on the highest possible note</p>— Matt Levine (@matt_levine) <a href="https://twitter.com/matt_levine/status/1283503080978489344?ref_src=twsrc%5Etfw">July 15, 2020</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>The big issue with all of these is that it’s very difficult to participate in the stock market anonymously. The SEC has all sorts of monitoring in place to catch more common forms of insider trading and fraud and you can guarantee that they would conduct a long, thorough investigation into a hypothetical hack-based market fraud. Unlike Bitcoin transactions, wire transfers and stock purchases can be reversed after the fact, and the exposure and risk go way up when you’re actually working with US dollars.</p>
<h2 id="blackmail">Blackmail</h2>
<p>The hackers got <em>full access</em> to all Twitter-verified accounts, meaning that they should have had access to their direct messages. Surely this is much more valuable than just posting a fake tweet? Think about the incalculable damage caused by the <a href="https://www.vanityfair.com/news/2019/10/the-untold-story-of-the-sony-hack">Sony leaks</a> or watch this hypothetical-but-still-terrifying <a href="https://www.youtube.com/watch?v=y4GB_NDU43Q">Tom Scott video</a> about a world in which Gmail password-checking was turned off for a day.</p>
<p>It’s definitely true that there are gobs of interesting material lurking in verified users’s DMs that they wouldn’t want seeing the light of day, but it’s a little tricky to make money from this. The most obvious method is blackmail. Exfiltrate the messages from the most popular users and threaten that you’ll release them in full if they don’t send X BTC to Y address.</p>
<p>This would definitely make some amount of money, but I’m not convinced it’s worth the effort. Firstly, it’s hard to judge ahead of time which accounts have the juicy DMs. Large, high-profile accounts like Joe Biden’s are run by a whole social media team and probably don’t exchange sensitive information via Twitter. Smaller accounts probably do have more interesting gossip, but might be less willing or able to pay as a result.</p>
<p>Then there’s the problem of actually exfiltrating and storing all the data, sending individual messages to each of the users you hack, tracking who has and hasn’t paid, and actually releasing the leaked material publicly. It’s a lot of operational overhead that may, in the end, net you less money than the dumb Bitcoin scam.</p>
<h2 id="sell-it-on-the-dark-web">Sell it on the dark web</h2>
<p>Leave aside the challenge of actually finding a buyer (you can’t just make a post on a forum, the Feds read the dark web too). How much should a buyer be willing to pay you for this bug? Either the buyer is planning to monetize the exploit for more than $100k (the whole point of this post is to prove that that’s really hard!), or the buyer wants to use the exploit for other purposes, like surveillance or intelligence gathering.</p>
<p>This isn’t out of the question. Countries spy on each other all the time, and I’m sure that China would love to be able to read the DMs of journalists or Hong Kong activists. The issue is that this particular exploit wasn’t terribly suited to the business of long-term surveillance. Logging into the account required actually the email associated with it and triggering a password reset (that somehow also bypassed 2FA). The password reset triggered a notification email to the original address on file, which basically announced the account takeover. The hacker had a matter of hours before the whole world knew about the vulnerability.</p>
<p>Intelligence agencies want <em>persistent</em> access, and they want to surveil without their targets learning that they were surveilled. This exploit wouldn’t have accomplished that.</p>
<h2 id="bug-bounty">Bug Bounty</h2>
<p>Now we’re getting somewhere… Large companies <a href="https://www.forbes.com/sites/johnkoetsier/2020/05/31/hacker-finds-huge-apple-security-hole-apple-pays-100000-bug-bounty/#576388b36894">routinely</a> pay out vast sums of money to white hat hackers reporting flaws that are less damaging than this one. Even if Twitter wouldn’t pay out 100% as much money as was made via the Bitcoin scam, bug bounty programs have the added benefit of being 100% legal, which should change the risk calculus significantly. So why didn’t our hacker take this route?</p>
<p>One theory is that if the hacker was already a known criminal, it’s tricky to collect the bug bounty payout without revealing their identity to Twitter, which might still end them up in some trouble. I’m not sure I buy this (can’t they just use a third party?).</p>
<p>More plausibly, perhaps Twitter wouldn’t actually have paid out $100k?</p>
<blockquote class="twitter-tweet tw-align-center"><p lang="und" dir="ltr">🤔 <a href="https://t.co/I902KoaZwe">pic.twitter.com/I902KoaZwe</a></p>— LiveOverflow 🔴 (@LiveOverflow) <a href="https://twitter.com/LiveOverflow/status/1283511782380908545?ref_src=twsrc%5Etfw">July 15, 2020</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>This tweet suggests that OAuth takeovers were valued at $7.7k (and after taxes you’re left with chump change). If so, this a big issue with Twitter’s bug bounty program! You need to ensure that the incentives make reporting more worth it than exploiting.</p>
<p><em>Update: more reporting about how the account takeovers were executed <a href="https://www.vice.com/en_us/article/jgxd3d/twitter-insider-access-panel-account-hacks-biden-uber-bezos">has emerged</a>, and it suggests that there wasn’t any technical vulnerability that was ever exploited. Social engineering and insider risk (which can obviously be quite damaging) tend not to be eligible for bounties on most programs.</em></p>
<h2 id="phishing">Phishing</h2>
<p>OK how about this: log into Coinbase’s twitter account, craft a tweet announcing some snazzy new feature and include a bit.ly link that actually goes to a phishing website. Execute a <a href="https://fortenf.org/e/2018/05/29/coinbase-phishing.html">relay phishing attack</a> that gives you access to their Coinbase account while bypassing 2FA, and then send all their Bitcoin and Ethereum and Dogecoin to your own account.</p>
<p>There are a few flaws, but most are surmountable with some effort. First, Twitter would probably take down the tweet pretty fast, so you’d probably want to target several different accounts of famous cryptocurrency enthusiasts (not just Coinbase). Second, bit.ly would probably disable that specific URL and Google would definitely add the phishing site to their <a href="https://safebrowsing.google.com/">Safe Browsing</a> list (which is shared by all major browsers). This would result in big scary red warning banners appearing before users could access your site. Also, whatever registrar you purchased your domain from would probably revoke it.</p>
<p>OK, so instead of having one phishing site and one domain and one URL you’d want to set up several of these in advance and hop from one to the other as each gets taken down by various actors in turn. This would probably work! Would it net you more than $100k? Maybe?! It’s hard to say and probably depends a lot on luck and timing. The people with the most cryptocurrency in their Coinbase accounts are probably the least likely to fall for this kind of thing in the first place, so it’s unclear how much more money you’d make than the dumb 2-for-1 scam, but still, it might be worth it in case you manage to compromise an account with huge reserves.</p>
<p>Still, all this requires some legitimately difficult software engineering work and the whole point of this was to make easy money! I understand that today’s attack was almost painfully lame in its execution, but it really may have been the smartest choice tactically.</p>
<p>This is not to say that they did everything right: I still can’t explain why they seem to have used only 1 BTC address throughout the process (Coinbase and other exchanges quickly blocked transactions to this address), and the wording on some of their tweets was stilted and awkward (surely they could have paid for a Grammarly subscription). But in the end, I think there’s no evidence that the twitter posts were just a “cover” for the real attack or that this hack had anything to do with a foreign government. I think this tweet sums it up well:</p>
<blockquote class="twitter-tweet tw-align-center"><p lang="en" dir="ltr">High impact bugs can sometimes be found and exploited by anyone, even dogs who have no idea what to do with the car they caught. There really doesn't have to be more to it than that.</p>— Brad Hill (@hillbrad) <a href="https://twitter.com/hillbrad/status/1283597241685438464?ref_src=twsrc%5Etfw">July 16, 2020</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p><em>Thanks to Akshay, Kim, and Varun for reading drafts of this.</em></p>Mystery Hunt Team Name Origins2020-02-04T16:12:47+00:002020-02-04T16:12:47+00:00https://fortenf.org/e//e/mystery_hunt/puzzlehunts/2020/02/04/mystery-hunt-team-name-origins<p><em>This is a post about the 2020 MIT Mystery Hunt. You can see the hunt website with all the puzzles and solutions <a href="https://web.mit.edu/puzzle/www/2020/">here</a>.</em></p>
<p>I’m still working on a blogpost about some of my favorite puzzles from the 2020 hunt, but in the meantime I thought I’d throw together a quick post about the origins of the team names of various Mystery Hunt teams. Most of this data is collected from <a href="https://www.reddit.com/r/mysteryhunt/comments/7qqgri/tell_me_about_your_mit_mystery_hunt_team_2018/">these</a> <a href="https://www.reddit.com/r/mysteryhunt/comments/aidab9/2019_mit_mystery_hunt_recap/">two</a> reddit threads. If I got anything wrong do let me know and I’ll be sure to correct it. Teams after <strong>Left Out</strong> are sorted by their ranking in this year’s hunt.</p>
<p><strong>Left Out</strong>: The name comes from the fact that <strong>Left Out</strong> has an abnormally large contingent that hunts from the west coast (and so are generally “left out” of hunting on site).</p>
<!--more-->
<p><strong>✈✈✈ Galactic Trendsetters ✈✈✈</strong>: The name comes from a powerful card in the game <a href="https://boardgamegeek.com/boardgame/28143/race-galaxy">Race for the Galaxy</a>. (The airplanes were added because people thought they looked cool). The tradition of actually pronouncing the airplanes (Whoooosh and Nyeoooow respectively) started in 2015, I believe.</p>
<p><strong>Palindrome</strong>: Their team name is a different palindrome every year (my personal favorite: TOO LONG, NO LOOT, a reference to the fact that they haven’t won hunt in a while).</p>
<p><strong>teammate</strong>: The conceit here is that the word TEAM has a lot of valid anagrams, several of which are related to puzzlehunts (TEAM, MATE, META) and several which aren’t really (MEAT, TAME).</p>
<p><strong>The Team Formerly Known as the Team Formerly Known as the Team to Be Named Later</strong>: Presumably in 2018 they couldn’t decide on a name and decided to call themselves <strong>Team to Be Named Later</strong>, and in 2019 they thought it would be funny to call themselves <strong>The Team Formerly Known as the Team to Be Named Later</strong>, and I assume their team name will get five words longer every year in the future.</p>
<p><strong>Death and Mayhem</strong>: A team with the name <strong><a href="https://en.wikipedia.org/wiki/Death_from_Above_(band)">Death from Above</a></strong> merged with a team called <strong>Project Electric Mayhem</strong> (which itself is a portmanteau-ish reference to Project Mayhem (from the movie <a href="https://en.wikipedia.org/wiki/Fight_Club">Fight Club</a>) and Electric Mayhem (from <a href="https://en.wikipedia.org/wiki/Dr._Teeth_and_The_Electric_Mayhem">The Muppets</a>)).</p>
<p><strong>Test Solution Bees Ignore</strong>: A reddit mystery hunt team called <strong>Test Solution Please Ignore</strong> (a reference to <a href="https://www.reddit.com/r/pics/comments/92dd8/test_post_please_ignore/">this legendary reddit post</a>) merged with a team called <strong>Aviation Laws</strong> (a reference to <em><a href="https://knowyourmeme.com/memes/subcultures/bee-movie">The Bee Movie</a></em> (“According to all known laws of aviation…”))</p>
<p><strong>Setec Astronomy</strong>: A reference to the movie <em><a href="https://en.wikipedia.org/wiki/Sneakers_(1992_film)">Sneakers</a></em>, in which a secret corporation called Setec Astronomy is found to <a href="https://www.youtube.com/watch?v=GutJf9umD9c">anagram</a> to Too Many Secrets.</p>
<p><strong>Codex Argenteus</strong>: This team names themselves after a different <a href="https://en.wikipedia.org/wiki/Codex">codex</a> every year. (My personal favorite was when they split into two teams in 2018, <strong>Codex Ogg</strong> and <strong>Codex Vorbis</strong>)</p>
<p><strong>This Rage Intentionally Left Blank</strong>: This one is complicated. This team split off from the <strong>Manic Sages</strong>, whose team was a combination of people from the <a href="http://esg.mit.edu/">ESG program</a> and <a href="https://www.mathcamp.org/">MAthcamp</a>. So that’s where the AGE part comes from. Their original name was the Metropolitan Rage Warehouse, because from a certain angle the lettering on the <a href="https://capitalprojects.mit.edu/projects/metropolitan-warehouse">Metropolitan Storage Warehouse</a> on campus looks like the <a href="https://www.flickr.com/photos/cdevers/4456480256">Metropolian Rage Warehouse</a>. And so every year they have the word Rage in a different part of their name.</p>
<p><strong>United States Census</strong>: This team is super annoying since they change their name to something completely different every year. Dan Katz referred to them as <a href="https://puzzlvaria.wordpress.com/2020/01/20/2020-mit-mystery-hunt-part-1-coping-with-anticlimax/">ATTORNEY</a> (a team that obstinately replaces names every year) which I think is cute. Their most famous name was the one they chose in 2013, namely the full text of the novel <em>Atlas Shrugged</em>.</p>
<p><strong>Super Team Awesome</strong>: STA is affiliated with the <a href="http://ats.mit.edu/">MIT Association of Taiwanese Students</a> (ATS). In their words: “We called ourselves Super Team Awesome because a few of us had participated (and actually won) a Simmons Hall orientation mystery hunt under the name “team awesome”, and because it fit well that a team from ATS would be called STA.”</p>
<p><strong>Hunches in Bunches</strong>: Oh boy another complicated one. So there’s a dorm at MIT called <a href="http://web.mit.edu/random-hall/www/about.shtml">Random Hall</a> (some of our dorms have funny names, like Next House, New House). Random Hall has a bunch of people interested in puzzles, so they field at least three different Mystery Hunt teams every year because everytime they win hunt they split into a winning team and a writing team, and they’ve won hunt twice. One of those teams, from the first split, is <strong>Metaphysical Plant</strong> (see below). The other team, from the second split, used to set a team name that parodied the current hunt writing team’s name. In 2014, the writing team’s name was the full text of Atlas Shrugged (see above), so this team decided to name themselves the full text of <em>One Fish Two Fish Red Fish Blue Fish</em>, except they never actually did this, and instead set their name to <strong>One Fish Two Fish Random Fish Blue Fish</strong>. Then, fittingly enough, they won the hunt in 2014 and wrote the 2015 “exploration of the ocean” hunt. In years after that their name has always been a different Dr. Seuss book.</p>
<p><strong>Up Late</strong>: This name is refreshingly simple: it’s funny to pick up the phone for an answer callback at 3:00am and say “Hi, we’re <strong>Up Late</strong>”.</p>
<p><strong>The Providence Transplantations</strong>: <a href="https://en.wikipedia.org/wiki/Providence_Plantations">Providence Plantation</a> was the first permanent European American settlement in Rhode Island. Fittingly enough, the Providence Transplantations are hunters from Brown University.</p>
<p><strong>Metaphysical Plant</strong>: <a href="http://news.mit.edu/1998/plant-0930">A long time ago</a>, MIT’s Department of Facilities was called the Department of Physical Plant. The original Random Hall team thought it would be funny to call their team <strong>Physical Plant</strong> so that if they won, the running team would have to announce “<strong>Physical Plant</strong> found the coin” as if a custodian just stumbled across it. In later years they changed their name to <strong>Metaphysical Plant</strong>.</p>
<p><strong>Central Services</strong>: This is apparently a reference to the movie <a href="https://en.wikipedia.org/wiki/Brazil_(1985_film)">Brazil</a>. I haven’t watched this movie, so I can’t provide much further commentary.</p>
<p><strong>Wafflehaüs</strong>: This team is composed of alumni from <a href="http://simmons-hall.mit.edu/">Simmons Hall</a>, an MIT dorm that quite famously looks like a <a href="http://simmons-hall.mit.edu/img/image1.jpg">giant waffle</a>. Wafflehouse –> Wafflehaus, you get it.</p>This is a post about the 2020 MIT Mystery Hunt. You can see the hunt website with all the puzzles and solutions here.Mystery Hunt 20202020-01-25T16:12:47+00:002020-01-25T16:12:47+00:00https://fortenf.org/e//e/mystery_hunt/puzzlehunts/2020/01/25/mystery-hunt-2020-part-1<p><em>This post is about the 2020 MIT Mystery Hunt. You can see the hunt website with all the puzzles and solutions <a href="https://web.mit.edu/puzzle/www/2020/">here</a>.</em></p>
<p>I spent the past weekend in Cambridge, MA participating in the <a href="http://web.mit.edu/puzzle/www/">MIT Mystery Hunt</a> for the sixth time. I was the captain of <strong>teammate</strong>, a rather new team that split from ✈️✈️✈️Galactic Trendsetters✈️✈️✈️ (the eventual winners of this year’s hunt) in 2018, and whose increasingly strong performance has taken many by surprise.</p>
<!--more-->
<p>teammate spent much of the hunt running neck-and-neck with other teams and actually leading the pack for most of Saturday. Eventually however, Galactic pulled ahead and beat us to the final meta solve by around three hours. (After that, both of us got stuck on the final “capstone” puzzle for far too long, but maybe I’ll talk more about that in a later post.) You can see a graph of puzzles solved over time below. teammate’s line is the green one at the top.</p>
<p><a href="/e/assets/puzzles2020/progress.png"><img src="/e/assets/puzzles2020/progress.png" alt="progress chart" class="center-image" /></a></p>
<p>Even better than this line plot though, is this visualization created by Wei-Hwa Huang on Left Out (the writing team):</p>
<div class="flourish-embed flourish-bar-chart-race" data-src="visualisation/1267425"></div>
<script src="https://public.flourish.studio/resources/embed.js"></script>
<p>As I described in <a href="https://fortenf.org/e/mystery_hunt/puzzlehunts/2019/01/22/mystery-hunt-2019-part-1.html">last year’s post</a>, teammate is more or less a fusion of multiple puzzlehunting groups from MIT, CMU, and Berkeley. Some of us—including myself—write for the <a href="https://galacticpuzzlehunt.com/">Galactic Puzzle Hunt</a>, and will be joining the trendsetters to help them write the 2020 hunt. Others, inspired by how well we did this year, intend to participate in Mystery Hunt again and hopefully win outright someday.</p>
<p>Here’s how my hunt experience went down: on Wednesday evening I took a red-eye flight to Boston from SFO and landed early Thursday morning. Last year I took a red-eye leaving on Thursday and ended up starting hunt on Friday already sleep-deprived, which I discovered was a really bad idea. This year I was much better rested.</p>
<p>As is now tradition, a large fraction of teammate met at Flour on the morning of hunt on Friday and had a quick brunch before walking over to Kresge for kickoff. This year’s kickoff will forever be remembered as the one that included <a href="https://www.youtube.com/watch?v=mOKqITBPo2w"><em>a literal wedding</em></a> between two long-time hunt participants. The wedding itself was not really part of the hunt theme, but Left Out tied it in by explaining that for the newlywed’s honeymoon, teams would get a chance to explore <em>Penny Park</em>, a fictional amusement park that had fallen on some tough times—the real theme of the 2020 Mystery Hunt.</p>
<p>My first impression of the theme was some skepticism over whether a theme park was sufficiently exciting to make for an interesting hunt, but Left Out proved me wrong. <em>Penny Park</em> included ten different lands (rounds of puzzles) that each fit right at home in a theme park, but also felt thematically distinct and a rich source for novel round structures. For example, one of the lands was a water park called <a href="https://web.mit.edu/puzzle/www/2020/land/cascade/">Cascade Bay</a>, which included three “levels”, each of which had a meta that used all the answers from puzzles in the current AND prior levels (meant to evoke the idea of water cascading down through the park).</p>
<p>So yeah, the theming really impressed me this year and I think all-told this hunt makes it into my top 3 favorites (perhaps behind 2015 and 2018). Anyways, back to my hunt experience: immediately after kickoff ended, some teammates scanned through the hunt rules and realized that this year’s hunt would feature automated answer checking (what a novelty!). In past mystery hunts, you could submit your guesses through the hunt website, but someone from the running team would call you back to tell you if your answer was correct; this year you’d know immediately.</p>
<p>A few of us quickly realized that an implication of this change was that we could submit large numbers of guesses and backsolve attempts without the organizers getting mad at us, and during the minutes before the hunt started I encouraged everyone to submit a guess as long as they were >10% sure that it could be the right answer. (By the way, it turns out that 10% was an optimal choice given the <a href="https://puzzlvaria.wordpress.com/2020/01/20/2020-mit-mystery-hunt-part-1-coping-with-anticlimax/#comment-831">precise details</a> of the rate-limiter, but we didn’t know that at the time).</p>
<p>I realize that this aggressive guessing strategy seems horrifying to some teams, but for better or worse (and in this hunt I think definitely for better), it’s how teammate approaches puzzlehunts. It’s a practice that we inherited at least partially from Galactic, and it may have played a small part in our success this year. Below is a graph of the number of guesses vs. the number of solves for all the teams:</p>
<p><a href="/e/assets/puzzles2020/guess_stats.png"><img src="/e/assets/puzzles2020/guess_stats.png" alt="guess stats" class="center-image" /></a></p>
<p>teammate’s dot is the one in the top right just to the left of the dot labeled trendsetters. We were all amused to discover that both teammate and Galactic made exactly 872 guesses (over 200 more guesses than the next largest team):</p>
<p><img src="/e/assets/puzzles2020/ten_percent.png" alt="thonk" class="center-image" /></p>
<p>Hunt started at 1:30pm on Friday without a hitch, and teammate started racking up solves. Like most competitive teams, teammate collaboratively solves puzzles on spreadsheets and uses a master spreadsheet to keep track of all the unlocked puzzles and answers. We also have a script that scrapes the website for new puzzles, creates new spreadsheets and rows on the master sheet, and sends alerts to our Discord server. This is what our master sheet looked like at the end of this year’s hunt (I’ve cleared the answer column to avoid spoilers):</p>
<p><a href="/e/assets/puzzles2020/master.png"><img src="/e/assets/puzzles2020/master.png" alt="to me this is beautiful" class="center-image" /></a></p>
<p>It’s incredibly satisfying to watch the sheet get longer and longer and to watch the green line of solved puzzles in column C slowly but surely march downwards.</p>
<p>Most of hunt was pretty uneventful. Of course, we solved a ton of really cool puzzles (I’ll talk about some of my favorites in an upcoming post), but our intuitions about how the hunt would unfold proved true for the most part. The first truly exciting development happened around 4am on Sunday when we got a call from Left Out warning us that we were in contention to win and wanting verbal confirmation that if we did win we were ready and willing to write next year’s hunt.</p>
<p>Most of teammate has very little puzzle-writing experience, and I’ll confess that the prospect of leading a teammate writing team rather terrified me. At the same time, it <em>really</em> didn’t seem like I could ask my amped-up team to slow down on puzzle solving just because I was scared, so I confirmed with Left Out that we were prepared to write if it came to that. Luckily, we did have an agreement among the Galactic Puzzle Hunt authors that most of us would be willing to join and help out teammate or Galactic if either team won hunt, so I think we’d have managed.</p>
<p>Every time we solved a round-meta in the hunt, we were asked to send someone to the “Workshop” to pick-up one or more custom-pressed pennies. Whoever was sent actually got to press the pennies themselves (with Left Out’s assistance) and I found the process pretty cool—Left Out even had some vinegar and water to polish the pennies before they were pressed. We’d been mostly ignoring the pressed pennies, assuming that they corresponded to a final “post-meta” that we hadn’t unlocked yet. At 8:45 AM we solved what we thought was our final meta, and as expected, we unlocked the post-meta once we collected the final two pennies.</p>
<p><a href="/e/assets/puzzles2020/penny.jpg"><img src="/e/assets/puzzles2020/penny.jpg" alt="smh these pennies" class="center-image" /></a></p>
<p>In our excitement, we decided that we should move our entire team from our the dorm we were hunting out of to MIT’s main campus where we could quickly solve the post-meta and then go on the runaround. We all gathered on the fourth floor of Lobby 7 and started staring at the pennies. We made some good progress in the first hour, but after that we got completely stuck. Most of us had pulled an all-nighter the prior night and ended up tired and frustrated that we couldn’t solve the one thing in between us and the coin.</p>
<p>We eventually returned the pennies and ourselves to our dorm, and at this point I decided that since I wasn’t contributing anything useful to the puzzle, I decided to go back to sleep, asking to be roused if any major developments occurred. Around three hours later I got a frantic phone call from a teammate: “GALACTIC FOUND THE COIN AND LEFT OUT CALLED US AND LET US SKIP THE PENNIES PUZZLE AND WE’RE GOING ON THE RUNAROUND RIGHT NOW WHERE ARE YOU!?”. (At least that’s what it sounded like to my very tired brain).</p>
<p>So then of course I got up and joined my teammates for the runaround (which ended up being ten runarounds in parallel, but more on that later I guess) and the endgame, which was quite nice. After that, I grabbed a quick dinner, had a meeting with Galactic regarding what to do about Galactic Puzzle Hunt 2020 (we’ll have an announcement soon…), and then slept for 11 hours nearly missing <a href="https://www.youtube.com/watch?v=WjM0mSgoqPI">wrap-up</a>. By the time I arrived, the room had already reached capacity, but luckily some had teammates saved me a seat and I knew an alternate entrance to get past the folks turning people away.</p>
<p>After wrap-up, I spent the rest of my time in Cambridge frantically walking and ubering from a lunch in Harvard Square to an escape room in Central Square to a meeting with Galactic and Left Out at MIT and finally to the airport. All in all, it was a wonderful—if slightly more hectic than planned—weekend, and I can’t wait to be back to help <em>run</em> hunt for the first time next year!</p>This post is about the 2020 MIT Mystery Hunt. You can see the hunt website with all the puzzles and solutions here.