<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://fortenf.org/e//e/feed.xml" rel="self" type="application/atom+xml" /><link href="https://fortenf.org/e//e/" rel="alternate" type="text/html" /><updated>2026-04-08T18:24:22+00:00</updated><id>https://fortenf.org/e//e/feed.xml</id><title type="html">Fort &amp;amp; Forge</title><subtitle></subtitle><entry><title type="html">Mystery Hunt 2026</title><link href="https://fortenf.org/e//e/2026/01/24/mystery-hunt-2026.html" rel="alternate" type="text/html" title="Mystery Hunt 2026" /><published>2026-01-24T16:12:47+00:00</published><updated>2026-01-24T16:12:47+00:00</updated><id>https://fortenf.org/e//e/2026/01/24/mystery-hunt-2026</id><content type="html" xml:base="https://fortenf.org/e//e/2026/01/24/mystery-hunt-2026.html"><![CDATA[<p><em>This post is about the 2026 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at <a href="https://puzzmon.world/">puzzmon.world</a>.</em></p>

<p>Thanks to Cardinality for writing an excellent hunt this year. I had to decide between participating in hunt for my 12th(!) time in person vs. attending the birthday of a very dear friend; I chose hunt in part because I was convinced that Cardinality would make it worth my while, and they did not disappoint. I experienced generally clean puzzles, novel round concepts, and a lot of fun. Below I’ll cover a few notable points.</p>

<!--more-->

<h2 id="an-inflection-point-for-ai-in-puzzlehunts">An inflection point for AI in puzzlehunts</h2>

<p>In early January 2024 I bet $30 of fake currency on <a href="https://manifold.markets/EricNeyman/will-llms-be-banned-at-the-2026-mit?r=Zm9ydGVuZm9yZ2U">this Manifold market</a>, that LLMs would NOT be banned in the 2026 MIT Mystery Hunt.</p>

<p><img src="/e/assets/mysteryhunt2026/manifold.jpg" alt="manifold" /></p>

<p>My reasoning was that</p>
<ul>
  <li>The ethos of Mystery Hunt is that you’re allowed to use whatever tools are at your disposal to solve the puzzles. LLMs were “just another tool”, no different than reverse image search, etc.</li>
  <li>LLMs would not improve enough by then to meaningfully impact the experience of solving puzzles.</li>
</ul>

<p>In fact, LLMs were NOT banned, but I think the second point above was clearly wrong. For my first time in a puzzlehunt, I found myself reaching to LLMs to a significant degree and they definitely helped our team. Interestingly, the way in which AI helped the most was in generating ideas on what a puzzle was referencing, rather than in the execution of solving a puzzle once we knew what to do. This is by no means obvious, but I do think it makes sense: many puzzles have references in their flavortext to media that any given solver may not be familiar with, but LLMs, which are trained on all human knowledge, can catch these references with ease. For example:</p>

<ul>
  <li>I used an LLM to tell me that <a href="https://puzzmon.world/puzzles/town_of_terror">Town of Terror</a> was referencing the 1987 edition of Arkham Horror, a board game I had never heard of.</li>
  <li>An LLM told me that <a href="https://puzzmon.world/rounds/atlas_of_mosaics?puzzle=the_hexagon">The Hexagon</a> was a reference to the Tour de France. (I had no clue that France was nicknamed “The Hexagon”, or that the Tour de France was held in July/August.)</li>
  <li>It was an LLM that had the bright idea on <a href="https://puzzmon.world/puzzles/chemical_x">Chemical X</a> to spell out the clue answers as chemical elements.</li>
</ul>

<p>I did use AI in a couple of instances for execution:</p>
<ul>
  <li>In <a href="https://puzzmon.world/puzzles/spilled/solution">Spilled!</a> I got it to identify a few of our missing Hamlet quotes as well as write code to solve the Hamle.</li>
  <li>In <a href="https://puzzmon.world/puzzles/drop_star_from_teams">DROP * FROM Teams</a> I got it to write code to create a joined table with all of the data.</li>
</ul>

<p>But in many cases, it was faster to hand a puzzle to a human teammate who could either crank out a program or solve a logic puzzle faster than it would take me to painfully transcribe our data and feed it to an LLM. I do think that if we had some kind of agent that was armed with tools to annotate letters and numbers on an image, that would have made a meaningful difference in getting an LLM to solve a puzzle end-to-end, but without such tooling a lot of execution was just faster and easier to do with humans.</p>

<p>I created a market for the same question <a href="https://manifold.markets/fortenforge/will-llms-be-banned-at-the-2027-mit">in next year’s hunt</a>, and I’m curious to see how things shake out.</p>

<h2 id="hunt-is-too-long">Hunt is too long</h2>
<p>It is! How many times does Dan Katz have to repeat this before we listen to him? We are way, way overdue for a hunt that finishes before Sunday morning. I also 100% agree with Dan that the era of aggressive meta hinting has given folks an unrealistic sense of how tractable modern hunts really are. If all but one of the teams is unable to finish without a meta hint, things have gone quite wrong.</p>

<h2 id="favorite-puzzles">Favorite puzzles</h2>

<ul>
  <li><a href="https://puzzmon.world/puzzles/devilish_devilries">Devilish Devilries</a> Incredibly fun and funny puzzle to solve with a group.</li>
  <li><a href="https://puzzmon.world/puzzles/spilled">Spilled!</a> Clever idea, and perfectly calibrated to make standard tooling for trigrams difficult to use.</li>
  <li><a href="https://puzzmon.world/puzzles/balancing_act">Balancing Act</a> A novel word puzzle that I really enjoyed.</li>
  <li><a href="https://puzzmon.world/rounds/atlas_of_mosaics?puzzle=the_hexagon">The Hexagon</a> I have some quibbles with the fact that solution doesn’t use the individual cities passed through, but other than that this was a brilliant round and capstone.</li>
  <li><a href="https://puzzmon.world/puzzles/hyperbolic_space">Hyperbolic Space</a> It’s a little too structurally similar to 2024’s <a href="https://puzzles.mit.edu/2024/mythstoryhunt.world/puzzles/a-rift-in-hades">A Rift in Hades</a> for my comfort, but I had a great time solving this round.</li>
  <li><a href="https://puzzmon.world/rounds/land_of_no_name">Land of No Name</a> I didn’t like the capstone very much, but the round as a whole was terrific.</li>
  <li><a href="https://puzzmon.world/puzzles/ancestry">Ancestry</a> I learned about C/M/P taxonomy from <a href="https://www.youtube.com/watch?v=6fFHWdCcQ_c&amp;t=48s">this video</a> by Epicurious about trying every type of citrus. Incredibly fun moment to open this puzzle and have my brain make the mental leap to the puzzle’s conceit.</li>
  <li>All of <a href="https://puzzmon.world/puzzles/layers">Layers</a> was a fun, easy, group solve.</li>
  <li><a href="https://puzzmon.world/puzzles/at_the_close">At the Close</a> was the puzzle we solved on the final “runaround” (not a lot of running around, which I didn’t hate). It’s an incredible puzzle that combines the gimmicks of all six dimension rounds into one cohesive, well-written puzzle.</li>
</ul>]]></content><author><name></name></author><category term="mystery_hunt" /><category term="puzzlehunts" /><summary type="html"><![CDATA[This post is about the 2026 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at puzzmon.world.]]></summary></entry><entry><title type="html">The Genetic Book of the Dead</title><link href="https://fortenf.org/e//e/2025/02/16/book-review-the-genetic-book-of-the-dead.html" rel="alternate" type="text/html" title="The Genetic Book of the Dead" /><published>2025-02-16T09:14:11+00:00</published><updated>2025-02-16T09:14:11+00:00</updated><id>https://fortenf.org/e//e/2025/02/16/book-review-the-genetic-book-of-the-dead</id><content type="html" xml:base="https://fortenf.org/e//e/2025/02/16/book-review-the-genetic-book-of-the-dead.html"><![CDATA[<p>Beautifully illustrated and well-written, Richard Dawkins’ newest work <em>The Genetic Book of the Dead</em> is a wonderful read for anyone who is interested in wildlife, anyone who enjoyed learning about genetics in high school and wants to think more deeply about that subject, and anyone who enjoys an extremely technical mind write lucidly about a topic he loves.</p>

<p>Below I’ve summarized a few of the book’s most interesting sections.</p>

<h2 id="the-astonishing-power-of-convergent-evolution">The Astonishing Power of Convergent Evolution</h2>

<p>A familiar sight to any North American wildlife enthusiast is a <a href="https://ebird.org/species/turvul">Turkey Vulture</a> soaring in the sky, riding the thermals and looking for deceased animals it can harvest for food. North America has other vultures too, including the <a href="https://ebird.org/species/blkvul">Black Vulture</a> and <a href="https://ebird.org/species/calcon">California Condor</a>. Remarkably, these “New World” vultures are not genetically related to the “Old World” vultures, despite their similar names, appearance, and behavior.</p>

<!--more-->

<p>Such is the power of convergent evolution: natural selection, applied over a long enough time frame, can result in genetically distinct species that exhibit remarkably similar traits. The Old and New World biomes (species of Eurasia and Africa vs. species of The Americas) provide many excellent examples: New World porcupines are not related to Old World porcupines, nor are American badgers closely related to European badgers:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/3/35/BadgerCollage.png" alt="badgers" /></p>

<p>Going clockwise starting from the top left is the American badger, European badger, African Honey badger, and <a href="https://en.wikipedia.org/wiki/Chinese_ferret-badger">Chinese ferret-badger</a>. The first and third are only distantly related to the second and fourth.</p>

<p>The island of Australia, populated mostly with marsupials rather than placental mammals, provides many more examples of convergence: it has a false anteater, called the <a href="https://en.wikipedia.org/wiki/Numbat">numbat</a>, a false flying squirrel called the <a href="https://en.wikipedia.org/wiki/Sugar_glider">sugar glider</a>, a <a href="https://en.wikipedia.org/wiki/Marsupial_mole">false mole</a>, <a href="https://en.wikipedia.org/wiki/Antechinus">false mouse</a>, and even a (now extinct) <a href="https://en.wikipedia.org/wiki/Thylacine">false dog</a>. The book contains a beautiful side-by-side illustration of each species and its placental counterpart.</p>

<p>Convergent evolution also can result in convergences of traits rather than entire species. For example, powered flight has independently evolved at least four times in Earth’s history: in bats, in birds, in pterosaurs, and in insects. Electric organs (such as those used by electric eels) independently evolved at least six times.<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">1</a></sup></p>

<h2 id="the-backward-genes-eye-view">The Backward Gene’s Eye View</h2>

<p>Dawkins’ central thesis of his most famous book, <em>The Selfish Gene</em>, is that of the <a href="https://en.wikipedia.org/wiki/Gene-centered_view_of_evolution">gene-centered view of evolution</a>, which names the gene as the fundamental unit of selection in evolution. Natural selection operates on genes, not individuals or species, because it is genes themselves that either are or are not passed on to offspring.</p>

<blockquote>
  <p>There is a significant difference between a ‘people tree’ and a ‘gene tree’. An individual person has two parents, four grandparents, eight great grandparents, etc. So a people tree is a vast ramification as you look backwards in time. Any attempt to draw it out completely will soon get out of hand. Not so the gene tree… …A gene has only one parent, one grandparent, one great grandparent, etc. A gene tree is therefore a simple linear array streaking back in time, whereas a people tree bifurcates its way unmanageably into the past.</p>
</blockquote>

<p>You have two copies of every gene in your body, one from each parent. The copy that came from your father came either from your paternal grandfather OR your paternal grandmother. Your mother’s copy of the gene came from your maternal grandfather OR your maternal grandmother. You can trace each copy backwards across generations and the two lines will eventually meet in a common ancestor: an actual, physical person with (at least) two children: this person gave one copy of the gene to one child (who is a direct ancestor of your father) and the other copy to another child (a direct ancestor of your mother).</p>

<p>This common ancestor is unique to each gene—different genes will converge at different points.</p>

<p><img src="/e/assets/gbotd/recombination.jpg" alt="recombination" /></p>

<p>Naively, you might expect that a given chromosome is an exact copy made up of one half from a maternal grandparent and another half from a paternal grandparent, but while this is true on the gene level, it’s not true at the chromosome level: you’ll notice that the chromosome illustrated above contains fragments from all four grandparents. This is due to <em>crossing-over</em>. During meiosis when sperm and egg cells are produced, each chromosome sometimes exchanges segments between individual chromatids (the two halves of a chromosome).</p>

<p>This occurs about 1-3 times per chromosome per meiosis, and intriguingly happens significantly more often in eggs compared to sperm.</p>

<p>Because crossing-over happens at a relatively consistent and low frequency, it can be used to measure the “age” of the most recent common ancestor (MRCA) for different genes. Basically, in a region of the genome where the mother and father segments are nearly identical, the MRCA is likely fairly recent since there hasn’t been much time for crossing-over to introduce higher diversity. Conversely, if the two segments differ substantially, that suggests that the MRCA is further into the past. This is the fundamental principle behind <a href="https://en.wikipedia.org/wiki/Coalescent_theory">coalescent theory</a>.</p>

<p>What can you do with this information? Many interesting things; Dawkins describes working with a colleague to sequence his own genome and perform this analysis. When he clustered each region of his genome by MRCA time he discovered that many of his genes date back to ~50,000 years ago, suggesting that his ancestors experienced a population bottleneck around that time.</p>

<p>Scientists have also used similar analysis to show that the LCT gene, responsible for the production of lactase evolved fairly recently—about 7,500 years ago, suggesting that it was naturally-selected as it conferred an advantage in humans around that time (the ability to consume milk from domesticated animals).</p>

<p>A good explanation of coalescent theory can be found in this video:</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/-ARehcP3eV0?si=wdR2zQPs7KDyfPJl" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<h2 id="on-cuckoos">On Cuckoos</h2>

<p>This is the chapter that spurred me to pick up the book in the first place. I’d heard Dawkins discuss this topic in <a href="https://freakonomics.com/podcast/richard-dawkins-on-god-genes-and-murderous-baby-cuckoos/">an interview</a> of Dawkins by (fr)e(ak)conomist Steven Levitt.</p>

<p>Many species of cuckoo are <em>brood parasites</em>, meaning that they lay their eggs in the nests of other birds. The eggs are then incubated and raised by the host mother, often at the expense of the the other nestlings.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">2</a></sup> As you might expect, there are evolutionary pressures for the host species to reject these parasitic eggs and pressures on the cuckoo to produce eggs that are less likely to be rejected.</p>

<p>As a result, cuckoo eggs exhibit astonishing mimicry of their host species:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/65/Cuculus_canorus_canorus_MHNT.ZOO.2010.11.150.36.jpg/640px-Cuculus_canorus_canorus_MHNT.ZOO.2010.11.150.36.jpg" alt="" /></p>

<p>On the right are two eggs of the <a href="https://ebird.org/species/marwar1">Marmora’s warbler</a> and to the left  is a cuckoo egg (cuckoos are larger than their hosts and as a result their eggs can be distinguished by being slightly larger than the host’s eggs<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">3</a></sup>).</p>

<p>Below is a similar example for the eggs of the <a href="https://ebird.org/species/moured1">Moussier’s redstart</a>:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/1/1b/Cuculus_canorus_bangsi_MHNT.ZOO.2010.11.149.13.jpg" alt="" /></p>

<p>And finally, one more example for the eggs of the <a href="https://ebird.org/species/eurrob1">European robin</a>:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/7/7b/Cuculus_canorus_canorus_MHNT.ZOO.2010.11.150.1.jpg" alt="" /></p>

<p>Mimicry in the animal kingdom is always fascinating, but what takes the story of the cuckoo to a new level is the following: the eggs of all three cuckoos in the examples above belong to the <em>same</em> species (the <a href="https://ebird.org/species/comcuc">Common cuckoo</a>).</p>

<p>How can female cuckoos of the same species tailor the eggs they lay to look exactly like the hosts they parasitize? Are there simply subspecies of the Common cuckoo each of which choose to mimic a different host?</p>

<p>Close, but not quite: while a female cuckoo will almost always parasitize the same species of the nest that she was laid in (a female cuckoo raised by a <a href="https://ebird.org/species/eurwar1">Reed warbler</a> nest will lay her own eggs in Reed Warbler nests, a female cuckoo raised by a <a href="https://ebird.org/species/comred2">Common redstart</a> will parasitize only Common redstarts), male Common cuckoos will happily interbreed with all these females, regardless of the nest they were laid in.</p>

<p>If we consider the backward gene’s eye view, this should be a difficult outcome for evolution to produce: a gene on the Common cuckoo’s genome looks backwards at ancestors that parasitized a whole mix of different species (because of those unchoosy males)—there should be no selective pressure to so closely match the appearance of any given egg.</p>

<p>But—not all the genes have this property. Birds, like humans, have sex chromosomes that are responsible for determining the sex of an individual. Human females have two sets of X chromosomes and human males have one X and one Y chromosome. The Y chromosome is copied directly from father to son. While genes on the somatic (non-sex) chromosomes look backwards at both male and female ancestors, genes on the Y chromosome look only backwards at male ancestors.</p>

<p>Birds operate similarly, although their sex chromosomes are denoted Z and W. However, in birds ZZ individuals are males while ZW individuals are females: thus, a gene on the W chromosome looks backwards only at female ancestors. This resolves the conundrum: the genes controlling egg color must be located on the W chromosome; this allows these genes to specialize to the appearance of the host. The gene of a female cuckoo laid in a European redstart nest looks back at a line of (exclusively female) ancestors all of which were raised by Redstarts and laid their own eggs in Redstart nests. Mutations in this gene that resulted in better matches to Redstart eggs would result in greater probabilities of survival and a greater chance at being passed on.</p>

<h2 id="dawkins-mathematical-mind">Dawkins’ Mathematical Mind</h2>

<p>Finally, Dawkins frequently includes some asides that hint at how his mind finds mathematics lurking in non-obvious places.</p>

<p>For example, here’s an excerpt pulled from a discussion about sea turtles vs land turtles:</p>

<blockquote>
  <p>From any point inside an equilateral triangle, the lengths of perpendiculars dropped to the three sides add up to the same value. This provides a useful technique for displaying three variables when the three are proportions that add up to a fixed number such as one, or percentages that add up to 100.</p>
</blockquote>

<p>This is a pithy explanation for the workings of a <a href="https://en.wikipedia.org/wiki/Ternary_plot">ternary plot</a>. Common examples include <a href="https://en.wikipedia.org/wiki/Flammability_diagram">flammability diagrams</a> use % methane, % nitrogen, and % oxygen:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Flammability_diagram_methane.svg/1920px-Flammability_diagram_methane.svg.png" alt="flammability chart of methane" /></p>

<p>Or <a href="https://en.wikipedia.org/wiki/Soil_texture">soil texture</a> charts which use % clay, % silt, and % sand:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/SoilTexture_USDA.svg/640px-SoilTexture_USDA.svg.png" alt="soil texture chart" /></p>

<p>Here’s another excerpt from an endnote:</p>

<blockquote>
  <p>Once, in the Kruger National Park, I came upon the urine trail that a male elephant in musth had made in the dust. It looked approximately sinusoidal, and had evidently been made by his dribbling penis swinging as a pendulum. I photographed it with a vague idea of getting a mathematician to Fourier analyse it and compute the length of his penis.</p>
</blockquote>

<p>The period of a physical pendulum is given by:</p>

<p>\[T = 2\pi\sqrt{\frac{I}{mgd}}\]</p>

<p>where:</p>

<ul>
  <li>\(I\) is the moment of inertia of the pendulum about its pivot point</li>
  <li>\(d\) is the distance from the pivot point to the center of mass</li>
  <li>\(m\) is the mass of the rod</li>
  <li>\(g\) is the acceleration due to gravity</li>
</ul>

<p>If we model the penis as a uniformly-dense rod of length \(l\) the moment of inertia is:</p>

<p>\[I = \frac{1}{3}ml^2\]</p>

<p>So the period is:</p>

<p>\[T = 2\pi\sqrt{\frac{\frac{1}{3}ml^2}{mg\frac{1}{2}l}} = 2\pi \frac{2l}{3g}\]</p>

<p>So yes, the length is derivable from the period, but from the photo alone we’d need to make some assumptions about the walking speed of the elephant in order to translate from wavelength to period.</p>

<h2 id="footnotes">Footnotes</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:3" role="doc-endnote">
      <p>Darwin used this example in <em>One the Origin of Species</em> when discussing convergent evolution: “But if the electric organs had been inherited from one ancient progenitor thus provided, we might have expected that all electric fishes would have been specially related to each other…I am inclined to believe that in nearly the same way as two men have sometimes independently hit on the very same invention, so natural selection, working for the good of each being and taking advantage of analogous variations, has sometimes modified in very nearly the same manner two parts in two organic beings” <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:1" role="doc-endnote">
      <p>This is actually the origin of the term <em>cuckold</em>. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Why doesn’t the host “learn” to reject larger eggs? The book does not provide an answer, but perhaps its because the drive to reject large eggs would also result in rejecting larger (and usually, healthier) “true” eggs. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><summary type="html"><![CDATA[Beautifully illustrated and well-written, Richard Dawkins’ newest work The Genetic Book of the Dead is a wonderful read for anyone who is interested in wildlife, anyone who enjoyed learning about genetics in high school and wants to think more deeply about that subject, and anyone who enjoys an extremely technical mind write lucidly about a topic he loves.]]></summary></entry><entry><title type="html">Mystery Hunt 2025</title><link href="https://fortenf.org/e//e/2025/01/26/mystery-hunt-2025.html" rel="alternate" type="text/html" title="Mystery Hunt 2025" /><published>2025-01-26T16:12:47+00:00</published><updated>2025-01-26T16:12:47+00:00</updated><id>https://fortenf.org/e//e/2025/01/26/mystery-hunt-2025</id><content type="html" xml:base="https://fortenf.org/e//e/2025/01/26/mystery-hunt-2025.html"><![CDATA[<p><em>This post is about the 2025 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at <a href="https://www.two-pi-noir.agency/">two-pi-noir.agency</a>.</em></p>

<p>My two favorite Mystery Hunts are the <a href="https://puzzles.mit.edu/2015/intro.html">2015 hunt</a> (20,000 puzzles under the sea) and the <a href="https://puzzles.mit.edu/2018/full/island/index.html">2018 hunt</a> (Operation: Head Hunters). Death &amp; Mayhem wrote the latter, so I was super hyped for this year’s hunt, which was also written by them. Overall, it largely met my lofty expectations, while maybe not quite ranking as my favorite hunt of all time.</p>

<!--more-->

<h2 id="what-i-look-for-in-mystery-hunts">What I look for in Mystery Hunts</h2>

<p>When reflecting on why I enjoyed 2018’s hunt so much, I’m reminded of this comment from Noah Snyder on <a href="https://puzzlvaria.wordpress.com/2017/01/20/mystery-hunt-2017-part-4team-size-and-hunt-length/#comment-67">Puzzlvaria</a> left in a discussion about the 2017 Mystery Hunt:</p>

<blockquote>
  <p>One thing I like to get out of a mystery hunt, in addition to a couple days of solving fun puzzles with friends, is the feeling that at some point our team overcame a great challenge. I don’t want that feeling constantly, but I do want it once or twice.</p>
</blockquote>

<p>More so than “hard puzzles” or “lots of puzzles” <em>this</em> is the feeling I seek from hunt: a truly difficult (but fair) task that we manage to solve as a team. This can come in the form of individual puzzles, but given the nature of Mystery Hunt where the metas are so important for progress and attention on individual puzzles is usually divided, it’s most often the metas that scratch this itch for me.</p>

<p>In last year’s hunt (which I failed to write a post about), the <a href="https://puzzles.mit.edu/2024/mythstoryhunt.world/puzzles/gaia">Gaia</a> and <a href="https://puzzles.mit.edu/2024/mythstoryhunt.world/puzzles/a-rift-in-hades">Hell</a> metas came closest to capturing this feeling, but because they were just two of 13 rounds in the overworld section, they didn’t land quite the same punch as say, the <a href="https://puzzles.mit.edu/2018/full/island/scifi.html">Sci-Fi</a> meta from 2018.</p>

<p>This year, after an appropriately straightforward introductory round, Death &amp; Mayhem presented us with 5 rounds each of which had a difficult (sometimes ridiculous) supermeta and a structural gimmick:</p>

<ul>
  <li>
    <p><a href="https://www.two-pi-noir.agency/rounds/stakeout"><strong>The Stakeout</strong></a> had 41 “fish” puzzles capped with a meta that involved finding hidden notes in MIT’s main group buildings.</p>
  </li>
  <li>
    <p><a href="https://www.two-pi-noir.agency/rounds/paper_trail"><strong>The Paper Trail</strong></a> had 8 submetas, each of which used the answers to individual puzzles as well as the answers to each others’ submetas (sometimes more than once!), and had a supermeta that involved this graph structure.</p>
  </li>
  <li>
    <p><a href="https://www.two-pi-noir.agency/rounds/background_check"><strong>The Background Check</strong></a>’s supermeta asked you to resize an image according to resolutions specified by the submeta answers to intentionally produce subtle <a href="https://en.wikipedia.org/wiki/Aliasing">aliasing</a> artifacts. This actually allowed you to backsolve a submetas once they figured out what was going on (and indeed, we backsolved one), but—in a testament to great puzzle design—this didn’t help you very much, as the nature of the revealed image required you to understand how to forward-solve the submetas anyways.</p>
  </li>
  <li>
    <p><a href="https://www.two-pi-noir.agency/rounds/illegal_search"><strong>The Illegal Search</strong></a> was structured as a virtual escape room: puzzle answers could be entered as codes to various locks in the room. I missed out on this round entirely but it looked super cool.</p>
  </li>
  <li>
    <p>Finally, <a href="https://www.two-pi-noir.agency/rounds/murder_in_mitropolis"><strong>The Murder in MITtroplis</strong></a> was an elaborate reference to <a href="https://en.wikipedia.org/wiki/Cain%27s_Jawbone">Cain’s Jawbone</a>, a murder mystery puzzle consisting of 100 pages arranged in the wrong order. Every time we solved a puzzle in this round we were presented with a page from a narrative; we had to reorder the pages in order to extract the final answer.</p>
  </li>
</ul>

<p>Solving any one of these rounds felt like a real accomplishment, and each solve contributed to the momentum building up over the course of the weekend. I didn’t love all the metas presented in these rounds (many of them failed to distinguish story flavor from puzzle content: the notes under the benches in Chinatown, the entirely superfluous “Notes” in The Paper Trail, and maybe all? of The Killer?), but I appreciated their ambition and complexity.</p>

<h2 id="what-other-people-seem-to-look-for-in-mystery-hunts">What other people seem to look for in Mystery Hunts</h2>

<p>An observation I’ve made from reading Mystery Hunt blogposts over the years is that people seem to enjoy hunts their team managed to finish—and not enjoy hunts they didn’t finish. (This applies to myself as well).</p>

<p>Given this, I’m surprised that hunters don’t take more steps to put themselves in a position to finish. This could mean switching to a more competitive team, rethinking your team’s exclusive invite policy, or simply becoming more willing to beg the hunt runners for hints. I recognize that these actions come with tradeoffs, but it really is worth it to avoid having HQ close on you while your team is X metas away from finishing.</p>

<p>By all means continue encouraging writing teams to write shorter hunts—Death &amp; Mayhem did well this year in getting Cardinality to finish on Sunday rather than Monday morning—but I encourage everyone to take some agency over their hunt experience.</p>

<h2 id="my-favorite-puzzles-spoilers">My favorite puzzles (spoilers!)</h2>

<p><a href="https://www.two-pi-noir.agency/puzzles/be_kind_rewind"><strong>Be Kind, Rewind</strong></a> - Amazing dataset choice for a puzzle. I had the privilege of being the first person on our team to take a look at the streetview and go “Wait… is that a <em>Blockbuster sign</em>!?” The solution here would really benefit from some pictures of the sign and maybe an Author’s Note explaining where they got the data on former Blockbuster locations.</p>

<p><a href="https://www.two-pi-noir.agency/puzzles/the_inspectre"><strong>Inspectre</strong></a> - I didn’t work on this puzzle, but it’s too cool to not mention. I had heard about the discovery of <a href="https://en.wikipedia.org/wiki/Einstein_problem">The Hat</a>, an aperiodic monotile that can cover the plane if you allow reflections, but I somehow missed the discovery of the Spectre, which aperiodically tiles the plane without reflections. Basically in this puzzle you’re handed a physical jigsaw where each piece is a Spectre tile and you need to assemble all the pieces into a particular border.</p>

<p><img src="/e/assets/mysteryhunt2025/inspectre.jpg" alt="inspectre" /></p>

<p><em>Then</em> you’re shown a set of lines on the shape that start and end on the vertexes of the Spectre tiles. You can use math (complex numbers help) to precisely compute the lengths of the lines, each of which evaluates to the form:</p>

<p>\[\sqrt{a + b \sqrt{3}} \]</p>

<p>Ordering the lines by absoluting length and turning the \(b\) coefficients into letters yields the answer.</p>

<p><a href="https://www.two-pi-noir.agency/puzzles/smoke_em_if_you’ve_got_em"><strong>Smoke ’Em If You’ve Got ’Em</strong></a> - I enjoyed many of the minipuzzles here—it’s always nice to take a break from the main action to take a walk around campus solving smaller puzzles. I do find it amusing that I put a bunch of effort into going to a particular location on campus, solving a minipuzzle, all just to yield a single letter of the answer. An awful lot of work for 4.7 bits of entropy!</p>

<p>The “Under Blacklight” version of this was a cool idea—but unfortunately many of the letters were too difficult to make out—even when examined from under a jacket:</p>

<p><img src="/e/assets/mysteryhunt2025/smoke-em.jpg" alt="smoke em" /></p>

<p>We ended up backsolving the puzzle because of this.</p>

<p><a href="https://www.two-pi-noir.agency/puzzles/estimation_dot_jpg"><strong>esTIMation dot jpg</strong></a> - I liked the Fermi questions but I <em>really</em> liked the “where was this fuzzy image taken” questions; I was great at those.</p>

<p><img src="/e/assets/mysteryhunt2025/estimation.jpg" alt="estimation dot jpg" /></p>

<center><em>The Stud, of course</em></center>
<p><br /></p>

<p><a href="https://www.two-pi-noir.agency/puzzles/garden_anecdotes"><strong>Garden Anecdotes</strong></a> - A puzzle that makes you feel like a WWI cryptanalyst. I appreciated the design of this puzzle—it’s “relatively” easy to write code to calculate the global permutation from plaintext to ciphertext (I mean, I doubt I could do it, but <a href="https://codeium.com/windsurf">Windsurf</a> certainly could), but this is not enough! The puzzle forces you to fully recover the shape of the irregular grid which requires some careful thought about how the grid shape influences the permutation and vice versa.</p>

<p><a href="https://www.two-pi-noir.agency/puzzles/beyond_a_shadow_of_a_doubt"><strong>Beyond a Shadow of a Doubt</strong></a> - Sometimes I worry that there are no more novel ideas left in puzzlehunts, but then, I see a puzzle like this. Another puzzle I had no hand in solving, but one that I very much intend to try myself. I’m told it’s still a beautiful solve even if the premise is spoiled for you.</p>

<p><a href="https://www.two-pi-noir.agency/puzzles/the_shell_game"><strong>The Shell Game</strong></a> - I found the Shell Corporation submetas to be frustratingly inelegant, but if they were all in service of making this meta work, they were well worth it. This was the last puzzle in the way of us finishing hunt, and so as we were making slow progress on it more and more folks started filing into the room to help and watch.</p>

<p>We initially tried using <a href="https://excalidraw.com/">Excalidraw</a> to collaboratively annotate the edges of the graph but it couldn’t handle the concurrency well enough so we switched to the blackboard. The room got louder and louder with each letter we placed, and by the time we had only a few edges left, people were shouting out guesses for the final answer behind us. It was exactly the kind of frenetic energy that only Mystery Hunt can deliver.</p>

<p><img src="/e/assets/mysteryhunt2025/shell-game.jpg" alt="shell game" /></p>]]></content><author><name></name></author><category term="mystery_hunt" /><category term="puzzlehunts" /><summary type="html"><![CDATA[This post is about the 2025 MIT Mystery Hunt. You can see the hunt website with most of the puzzles and solutions at two-pi-noir.agency.]]></summary></entry><entry><title type="html">A List of Notable Eclipses Through the Years</title><link href="https://fortenf.org/e//e/eclipse/2024/04/04/list-of-notable-eclipses.html" rel="alternate" type="text/html" title="A List of Notable Eclipses Through the Years" /><published>2024-04-04T05:00:00+00:00</published><updated>2024-04-04T05:00:00+00:00</updated><id>https://fortenf.org/e//e/eclipse/2024/04/04/list-of-notable-eclipses</id><content type="html" xml:base="https://fortenf.org/e//e/eclipse/2024/04/04/list-of-notable-eclipses.html"><![CDATA[<p><em>In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day. You can see the full list of posts <a href="/e/eclipse">here</a>.</em></p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_May_3,_1715">May 3, 1715</a></strong> - Known as <strong>Halley’s Eclipse</strong> after Edmond Halley of comet fame, who successfully predicted this eclipse for the first time in human history. London was in the path of totality.</p>

<!--more-->

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_June_16,_1806">June 16, 1806</a></strong> - Known as <strong>Tecumseh’s Eclipse</strong>. A possibly apocryphal story states that a dispute arose between future president William Henry Harrison (who was then governor of the Indiana territory) and Shawnee chief <a href="https://en.wikipedia.org/wiki/Tecumseh">Tecumseh</a>. Tecumseh’s brother, Tenskwatawa, was a prophet and Harrison, attempting to discredit the Indians, challenged him to make a prediction. In response, Tenskatawa said:</p>

<blockquote>
  <p>Fifty days from this day there will be no cloud in the sky. Yet, when the Sun has reached its highest point, at that moment will the Great Spirit take it into her hand and hide it from us. The darkness of night will thereupon cover us and the stars will shine round about us. The birds will roost and the night creatures will awaken and stir.</p>
</blockquote>

<p>…and apparently he was right! It’s possible Tecumseh learned about the eclipse from frontier eclipse chasers in the area and relayed the information to his brother.</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_July_8,_1842">July 8, 1842</a></strong> - English astronomer Francis Baily observed this eclipse from Italy and noted beads of bright light between the moon and sun visible seconds before totality. These are now known as <a href="https://en.wikipedia.org/wiki/Baily%27s_beads">Baily’s Beads</a> and are among the easiest phenomenon to observe during any total solar eclipse.</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_July_28,_1851**">July 28, 1851</a></strong> - This was the first eclipse to ever be photographed. Julus Berkowski, a daguerreotypist, took the following photo on commission for the Royal Prussian Observatory at Königsberg.</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/3/38/1851_07_28_Berkowski.jpg" alt="first eclipse photograph" class="center-image" /></p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_August_18,_1868">August 18, 1868</a></strong> - Also known as <strong>The King of Siam’s eclipse</strong> named after <a href="https://en.wikipedia.org/wiki/Mongkut">King Mongkut</a> of Thailand, the titular king in the Rodgers and Hammerstein musical <em><a href="https://en.wikipedia.org/wiki/The_King_and_I">The King and I</a></em>.</p>

<p>Mongkut was an interesting figure: He lived the first half of his life as a Buddhist monk, but then ascended the throne at age 47. While a monk, Mongkut studied both astrology and western astronomy and he successfully predicted the location and duration of the 1868 eclipse which passed over the Wakor village in Thailand.</p>

<p>There’s also this story about him trying to send elephants to America that I’ll just <a href="https://en.wikipedia.org/wiki/Mongkut#Elephant_story">link here</a>. Read it—I promise it’s worth it.</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_May_17,_1882">May 17, 1882</a></strong> - When a group of astronomers observed this eclipse in Egypt they noticed <a href="https://en.wikipedia.org/wiki/Kreutz_sungrazer#Eclipse_Comet_of_1882">a comet</a> right next to the sun. The comet would not have been observed if not for the eclipse.</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/4/46/Solar_eclipse_1882May17-Corona-Wesley-from-Schuster.png" alt="eclipse plus comet" class="center-image" /></p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_August_19,_1887">August 19, 1887</a></strong> - Russian chemist Dmitri Mendeleev (the father of the periodic table) ascended in a hot-air balloon in order to observe this eclipse.</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_May_29,_1919">May 29, 1919</a></strong> - Sir Arthur Eddington used this eclipse to <a href="/e/eclipse/2024/04/01/eclipse-posting-eddington.html">confirm Einstein’s theory of general relativity</a>.</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_June_29,_1927">June 29, 1927</a></strong> - Virginia Woolf wrote about this eclipse. Some excerpts:</p>

<blockquote>
  <p>But now the colour was going out. The clouds were turning pale; a reddish black colour. Down in the valley it was an extraordinary scrumble of red and black; there was the one light burning; all was cloud down there, and very beautiful, so delicately tinted. Nothing could be seen through the cloud. The 24 seconds were passing. Then one looked back again at the blue; and rapidly, very very quickly, all the colours faded; it became darker and darker as at the beginning of a violent storm; the light sank and sank; we kept saying this is the shadow; and we thought now it is over — this is the shadow; when suddenly the light went out.</p>
</blockquote>

<p>After totality:</p>
<blockquote>
  <p>We had fallen. It was extinct. There was no colour. The earth was dead. That was the astonishing moment; and the next when as if a ball had rebounded the cloud took colour on itself again, only a sparky ethereal colour and so the light came back. I had very strongly the feeling as the light went out of some vast obeisance; something kneeling down and suddenly raised up when the colours came. They came back astonishingly lightly and quickly and beautifully in the valley and over the hills — at first with a miraculous glittering and ethereality, later normally almost, but with a great sense of relief. It was like recovery. We had been much worse than we had expected. We had seen the world dead. This was within the power of nature.</p>
</blockquote>

<p>She closes with the line “Then — it was over till 1999,” referring to <a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_August_11,_1999">the next time</a> an eclipse would be visible over the United Kingdom.</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_July_20,_1963">July 20, 1963</a></strong> - Probably the first eclipse to be featured <a href="https://www.gocomics.com/peanuts/1963/07/15">in a comic strip</a>. (See also, the subsequent few strips).</p>

<p>The run ends with this strip:</p>

<p><img src="/e/assets/eclipse/peanuts.png" alt="don't sue me" /></p>

<p>which unfortunately might be representative of the experience for some of us in Texas this Monday.</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_November_12,_1966">November 12, 1966</a></strong> - The first eclipse to be observed by a human from space (by the crew of the Gemini XII mission; they didn’t see totality—suckers).</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_June_30,_1973">June 30, 1973</a></strong> - A commercial cruise was chartered to travel from New York City to Dakar specifically to observe totality in the middle of the Atlantic. Attendants included Neil Armstrong, Isaac Asimov, and Neil deGrasse Tyson—who was just 15 years old at the time.</p>

<p>From an observer:</p>

<blockquote>
  <p>Never have I seen assembled in one location as many cameras and telescopes. The decks of Canberra looked like Tripod National Forest. No one knows the exact figure, but I would estimate the value of the scientific equipment brought on board to be between two and three million dollars.</p>
</blockquote>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_July_11,_1991">July 11, 1991</a></strong> - This eclipse passed through much of Central America, and anthropologists Victoria Bricker and her husband Harvey Bricker contend that the Mayans predicted it to within a day. This claim is credulously duplicated in lots of news articles online, but I’m quite <a href="https://hsm.stackexchange.com/questions/6872/did-the-mayans-really-predict-the-solar-eclipse">skeptical</a>. As I mentioned in <a href="/e/2024-04-02-el-eclipse-monterroso">this post</a> the Mayans could predict lunar eclipses, but could not predict solar eclipses (for any reasonable definition of the word “predict”).</p>

<p><strong><a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_August_21,_2017">August 21, 2017</a></strong> - The first <strong>Great American Eclipse</strong> (and the first and only total solar eclipse observed by the author).</p>]]></content><author><name></name></author><category term="eclipse" /><category term="eclipse" /><summary type="html"><![CDATA[In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day. You can see the full list of posts here.]]></summary></entry><entry><title type="html">The Moon Illusion</title><link href="https://fortenf.org/e//e/eclipse/2024/04/03/the-moon-illusion.html" rel="alternate" type="text/html" title="The Moon Illusion" /><published>2024-04-03T05:00:00+00:00</published><updated>2024-04-03T05:00:00+00:00</updated><id>https://fortenf.org/e//e/eclipse/2024/04/03/the-moon-illusion</id><content type="html" xml:base="https://fortenf.org/e//e/eclipse/2024/04/03/the-moon-illusion.html"><![CDATA[<p><em>In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day. You can see the full list of posts <a href="/e/eclipse">here</a>.</em></p>

<blockquote>
  <p>When the moon hits your eye like a big pizza pie, that’s… an optical illusion that scientists don’t fully understand.</p>
</blockquote>

<!--more-->

<p>Sometimes I’m driving back home from work and I spot the moon hanging low and yellow over the horizon, and I’ll think to myself “wow, the moon is <em>so</em> big right now.” Other times though, the moon looks smaller, and if I take out my phone and snap a picture of it, it looks <em>tiny</em>.</p>

<p>So, what’s going on? First let’s start with some wrong answers. It’s <em>not</em> because of a supermoon. A supermoon refers to a full moon that coincides with the closest approach of the moon to the earth (its perigee). The moon’s elliptical orbit is very nearly circular, with an eccentricity of only 0.0549, so the size difference is tiny—the apparent diameter of the moon during a perigee is only 14% more than at apogee:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/c/ca/Supermoon_comparison.jpg" alt="supermoon" class="center-image" /></p>

<p>It’s also not because of any purely optical effect like atmospheric refraction. Because the air nearer to the Earth’s surface is denser, the moon (and sun)’s shape can get distorted when they are near the horizon, appearing squashed or stretched.</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/3/39/Atmospheric_refraction_-_sunset_and_sunrise.png" alt="atmospheric refraction" /></p>

<p>While this effect does change the shape of the moon, it shouldn’t affect its perceived size. However, it is true that the apparent size of the moon seems largest when the moon is low on the horizon. As it turns out though, this is an entirely neurological effect known as the <em>moon illusion</em>.</p>

<p>The actual angular size of the moon does not change when it is closer to the horizon, but its perceived size does change—it looks much bigger to most humans; in some experiments the perceived size is almost double!</p>

<h2 id="explanations">Explanations</h2>

<p>If you hold an orange out in front of your face one foot away from your eyes and then extend your arm such that the orange is 2 feet away, it doesn’t suddenly look like the orange has turned into a clementine—our brain automatically adjusts its perception of the size of objects according to how far away they are from us. This effect is known as <a href="https://en.wikipedia.org/wiki/Emmert%27s_law">Emmert’s Law</a>. How do we know how far away objects are? party the answer is depth perception, but there are also a number of <a href="https://en.wikipedia.org/wiki/Depth_perception#Monocular_cues">monocular clues</a> including motion parallax and <a href="https://en.wikipedia.org/wiki/Accommodation_(vertebrate_eye)">accommodation</a> (the ciliary muscles that automatically squish your eyes’ lenses to focus on a farther object send signals to your brain which it can interpret as a depth change).</p>

<p>So, a natural question is: does the moon appear larger on the horizon because our brain thinks its physical size is larger or because our brain thinks its physical <em>distance</em> from Earth is larger (and hence our brain makes the moon seem larger because of Emmert’s Law)? This is where the scientific controversy begins; every so often some neuroscientists will do a study where they try to tease out the difference, but there’s no firm scientific consensus on this issue.</p>

<p>The <a href="https://www.pnas.org/doi/10.1073/pnas.97.1.500">most popular explanation</a>—and the one that makes the most sense to me—is the apparent distance effect: when the moon is on the horizon we often perceive it next to objects we know are far away, like mountains or skyscrapers. Our brain groups these objects together and comes to the conclusion that the moon is at approximately the same distance away, a distance which our brain thinks is larger than the moon’s distance when it’s above us in the sky.</p>

<p>Why is the perceived distance of a moon in the sky so small? Possibly it’s because our eye lacks any useful cues as to its distance beyond <a href="https://en.wikipedia.org/wiki/Vergence#Convergence">ocular convergence</a>: “it’s far enough away that I don’t need to adjust both eyes inwards at all to maintain single binocular vision, I don’t have any other cues beyond that, so let’s just pick some reasonable default distance for far away objects and use it…” and it just so happens that this default is smaller than the perceived distance of skyscrapers and mountains.</p>

<h2 id="moon-photography">Moon Photography</h2>
<p>This still doesn’t explain why when I take a photo of the moon with a phone camera it looks even smaller than it does visually (regardless of where it appears in the sky). This is due to yet another effect: the focal length of the camera lens.</p>

<p>It’s a common misconception that longer focal lengths make objects in the distance appear closer. This is not quite true. Consider the following images, all taken at the same camera position relative to the scene:</p>

<p><img src="https://s.studiobinder.com/wp-content/uploads/2019/02/understanding-focal-length-Same-Distance.jpg.webp?resolution=2560,1&amp;resolution=2560,1" alt="focal length 1" class="center-image" /></p>

<p>Note that the effect is purely magnification—the apparent distance between the blue monster and the dartboard doesn’t seem to change. Now consider the following images, all taken by physically <em>moving</em> the camera such that the blue monster occupies the same percent of the frame in each image to account for the different focal lengths:</p>

<p><img src="https://s.studiobinder.com/wp-content/uploads/2019/02/understanding-focal-length-different-distance.jpg.webp?resolution=2560,1&amp;resolution=2560,1" alt="focal length 2" class="center-image" /></p>

<p>Now you can clearly see the distant-object effect: the dartboard appears much further away for shorter focal lengths—but this isn’t directly because of the focal length! It’s because the shorter focal length forces the camera to be positioned much closer to the monster, which then causes the relative distance of the dartboard to be much greater.</p>

<p>In other words, it’s the positioning of the camera that matters—a long focal length just allows you to place your camera far away and zoom in to capture the scene you’re interested in.</p>

<p>What does this mean for capturing great photographs of the moon? Well if you just want a great, high resolution photo of the moon by itself, all that matters is your zoom level / focal length. But if you want a photo of the moon that includes the surrounding landscape, you’ll need to both use a lens with a very long focal length AND position yourself far enough away from the landscape to include it in the frame.</p>

<p>All phone cameras have focal lengths that top out at 77mm at the most, so in practice you’re just not going to be able to capture a photograph like this with your iPhone:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/5/5c/Big_Telescope%2C_Bigger_Moon_%28iotw2250a%29.jpg" alt="big moon" /></p>

<h2 id="eclipse-photography">Eclipse Photography</h2>

<p>What does any of this have to do with eclipses? Well a solar eclipse is just the moon and sun occupying the same place in the sky, so all the lessons from above apply: because of the moon illusion, the eclipse will appear largest when it’s near the horizon; since the sun is in the same position at the moon, this has to occur nearer to sunset or sunrise. Thus, you’ll have the best experience near the start or end of the path of totality. (This will also result in much less neck strain).</p>

<p>If you want to take a nice photograph of the eclipse, you’ll need a telephoto lens; if you just take out your phone and snap a pic, you’ll get something like this:</p>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Total_solar_eclipse_%2851212560535%29.jpg/640px-Total_solar_eclipse_%2851212560535%29.jpg" alt="iphone eclipse" class="center-image fifty-percent" /></p>

<p>which just doesn’t do the experience justice. If this is your first total solar eclipse, my recommendation is to leave the photography to others and just look at the moon and sun for yourself—you’ll only get around 4 minutes of totality and you don’t want to waste time fiddling with your camera.</p>]]></content><author><name></name></author><category term="eclipse" /><category term="eclipse" /><summary type="html"><![CDATA[In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day. You can see the full list of posts here.]]></summary></entry><entry><title type="html">Augusto Monterroso’s El Eclipse</title><link href="https://fortenf.org/e//e/eclipse/2024/04/02/el-eclipse-monterroso.html" rel="alternate" type="text/html" title="Augusto Monterroso’s El Eclipse" /><published>2024-04-02T05:00:00+00:00</published><updated>2024-04-02T05:00:00+00:00</updated><id>https://fortenf.org/e//e/eclipse/2024/04/02/el-eclipse-monterroso</id><content type="html" xml:base="https://fortenf.org/e//e/eclipse/2024/04/02/el-eclipse-monterroso.html"><![CDATA[<p><em>In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day.</em></p>

<p>Today, let me recommend to you Augusto Monterroso’s short story <em>El Eclipse</em>, about a total solar eclipse in Central America. You can read the original Spanish text <a href="https://www.ingenieria.unam.mx/dcsyhfi/material_didactico/Literatura_Hispanoamericana_Contemporanea/Autores_M/MONTERROSO/Eclipse.pdf">here</a> and an English translation <a href="https://www.medina502.com/classes/faith_lac/readings/Monterroso-The-Eclipse.pdf">here</a>.</p>

<!--more-->

<p>Monterroso was a master of the very short story. Indeed, his most famous work might be <em>El Dinosaurio</em> (<em>The Dinosaur</em>) which reads in its entirety:</p>

<blockquote>
  <p>Cuando despertó, el dinosaurio todavía estaba allí. <br />
(When he awoke, the dinosaur was still there.)</p>
</blockquote>

<p><em>El Eclipse</em> isn’t quite that short, but it feels complete and less gimmicky than <em>El Dinosaurio</em>. In less than 1000 words, Monterroso manages to convey the hubris of western civilization, the grim stoicism of the Mayans, the comeuppance of a trickster. I first read the story in high school, and I’m reminded of it every time I think about eclipses.</p>

<p>In reality, although the Mayans could predict lunar eclipses with a good deal of accuracy, they, like most other ancient civilizations, couldn’t really predict solar eclipses. While both solar and lunar eclipses <a href="https://en.wikipedia.org/wiki/Eclipse_cycle">recur periodically</a>, lunar eclipses are much easier to forecast since they are visible across half the globe whenever they occur. In contrast, solar eclipses are only visible along their narrow band of totality, so while we have records of ancient civilizations witnessing solar eclipses, they wouldn’t have had enough data points to figure out a pattern. The first correct prediction of a total solar eclipse ocurred in the early 1700s when Edmond Halley used Newton’s laws of gravitation to predict the <a href="https://en.wikipedia.org/wiki/Solar_eclipse_of_May_3,_1715">May 3, 1715 eclipse</a> passing right over London.</p>]]></content><author><name></name></author><category term="eclipse" /><category term="eclipse" /><summary type="html"><![CDATA[In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day.]]></summary></entry><entry><title type="html">The Math behind the Eddington Expedition</title><link href="https://fortenf.org/e//e/eclipse/2024/04/01/eclipse-posting-eddington.html" rel="alternate" type="text/html" title="The Math behind the Eddington Expedition" /><published>2024-04-01T05:00:00+00:00</published><updated>2024-04-01T05:00:00+00:00</updated><id>https://fortenf.org/e//e/eclipse/2024/04/01/eclipse-posting-eddington</id><content type="html" xml:base="https://fortenf.org/e//e/eclipse/2024/04/01/eclipse-posting-eddington.html"><![CDATA[<p><em>In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day. Today’s post is about the 1919 Eddington Expedition and the math behind the theoretical light deflections that were being measured.</em></p>

<p>In 1919, English astronomer Sir Arthur Eddington embarked on a journey to the island Príncipe off the west coast of Africa in order to witness a total solar eclipse. His goal? To test a novel theory put forth by a certain German physicist a few years earlier: general relativity.</p>

<!--more-->

<p>General relativity predicts that light passing a large mass is deflected due to the way the mass curves spacetime. If you were able to measure the relative positions of stars at night versus the day, you would expect to see differences due to the lensing of the stars’ light as it passes by the sun.</p>

<p>The problem is that you can’t see any stars during the day—the sun’s light drowns everything else out. Except of course during a total solar eclipse, when the moon blocks all light from the sun beyond its faint corona, plunging the part of the Earth in the moon’s shadow into darkness.</p>

<p>The solar eclipse taking place on May 29th, 1919 was a particularly long one, lasting almost 7 minutes at the point of maximum totality; it was visible along a narrow band passing through most of Africa and South America. Furthermore, during totality the sun would pass in front of a particularly bright star cluster—the <a href="https://en.wikipedia.org/wiki/Hyades_(star_cluster)">Hyades</a>—which would allow the expedition to measure the deflection of multiple visible stars.</p>

<p>Eddington organized two expeditions, one to Príncipe and one to the town of <a href="https://en.wikipedia.org/wiki/Sobral,_Cear%C3%A1">Sobral</a> in Brazil to maximize the chance of getting useful data from the event. The photographic plates obtained by the back-up telescope in Sobral proved the most clear, displaying a deflection corresponding to Einstein’s predictions. Below is an image of one of the Sobral plates; you can see a few of the deflected stars annotated with horizontal lines on either side:</p>

<p><img src="/e/assets/eddington/plate.jpeg" alt="plate" class="center-image" /></p>

<p>The results of the experiment were published at a joint session of the Royal Society and Royal Astronomical Society on November 6th, 1919. There was intense press fanfare surrounding the report, and this experiment is generally credited with launching Einstein—who was well-known only within the physics community at the time—into superstardom.</p>

<h2 id="newtonian-deflection">Newtonian Deflection</h2>

<p>When I first learned about the Eddington expedition I was puzzled by the mention that general relativity predicts an angular deflection of <em>twice</em> the magnitude of the deflection under classical physics. Why would light be deflected at all under Newtonian mechanics and how could you calculate the deflection?</p>

<p>I’ll explain the derivation in this section—you’ll need only knowledge of classical mechanics and a little calculus to follow.</p>

<p>Imagine a particle of light with mass \(m\) that is traveling past a much more massive body (the sun) with mass \(M\) positioned at the origin. The force that the particle experiences is:</p>

<p>\[\vec{F} = \frac{GMm}{r^2} \hat{r} = m\vec{a}\]</p>

<p>(Yes, photons are massless, but Newton didn’t know that. Regardless, you can see that \(m\) cancels in the above equation, so you can consider the limit of the above scenario as \(m\) approaches 0.) Suppose that the perpendicular component of the displacement from the particle to the sun is \(b\) and the parallel displacement is \(r_{\parallel}\). We’ll assume that \(b\) stays approximately the same throughout the path of the particle, but that \(r_{\parallel}\) varies.</p>

<svg version="1.1" width="50%" viewBox="0.0 0.0 391.9501312335958 685.6351706036745" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l391.95013 0l0 685.6352l-391.95013 0l0 -685.6352z" clip-rule="nonzero" /></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l391.95013 0l0 685.6352l-391.95013 0z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m97.50656 216.67192l62.551178 0l0 53.00786l-62.551178 0z" fill-rule="evenodd" /><path fill="#000000" d="m121.19406 228.62192l-4.609375 18.046875l-0.78125 0l4.609375 -18.046875l0.78125 0zm-4.0625 0l-4.609375 18.046875l-0.78125 0l4.609375 -18.046875l0.78125 0z" fill-rule="nonzero" /><path fill="#ffd966" d="m151.89764 371.48557l-7.9564514 2.8294983l0 -5.6589966zm-5.7762146 -13.942139l-3.6242676 7.627533l-4.001465 -4.001465zm-13.940323 -5.7743835l2.8294983 7.956421l-5.6589966 0zm-13.942154 5.7743835l7.627556 3.626068l-4.001457 4.001465zm-5.7743835 13.942139l7.956436 -2.8294983l0 5.6589966zm5.7743835 13.940308l3.6260986 -7.625702l4.001457 4.0014343zm13.942154 5.7762146l-2.8294983 -7.956421l5.6589966 0zm13.940323 -5.7762146l-7.6257324 -3.6242676l4.001465 -4.0014343zm-23.798592 -13.940308l0 0c0 -5.44458 4.4136963 -9.858276 9.858269 -9.858276c5.444565 0 9.858261 4.4136963 9.858261 9.858276c0 5.44458 -4.4136963 9.858276 -9.858261 9.858276c-5.4445724 0 -9.858269 -4.4136963 -9.858269 -9.858276z" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m151.89764 371.48557l-7.9564514 2.8294983l0 -5.6589966zm-5.7762146 -13.942139l-3.6242676 7.627533l-4.001465 -4.001465zm-13.940323 -5.7743835l2.8294983 7.956421l-5.6589966 0zm-13.942154 5.7743835l7.627556 3.626068l-4.001457 4.001465zm-5.7743835 13.942139l7.956436 -2.8294983l0 5.6589966zm5.7743835 13.940308l3.6260986 -7.625702l4.001457 4.0014343zm13.942154 5.7762146l-2.8294983 -7.956421l5.6589966 0zm13.940323 -5.7762146l-7.6257324 -3.6242676l4.001465 -4.0014343zm-23.798592 -13.940308l0 0c0 -5.44458 4.4136963 -9.858276 9.858269 -9.858276c5.444565 0 9.858261 4.4136963 9.858261 9.858276c0 5.44458 -4.4136963 9.858276 -9.858261 9.858276c-5.4445724 0 -9.858269 -4.4136963 -9.858269 -9.858276z" fill-rule="evenodd" /><path fill="#000000" d="m229.44907 126.845146l0 0c0 -3.8442535 3.1163788 -6.9606323 6.9606323 -6.9606323l0 0c1.8460693 0 3.6165314 0.73335266 4.9219055 2.0387192c1.3053741 1.3053741 2.0387268 3.0758362 2.0387268 4.921913l0 0c0 3.844246 -3.116394 6.9606247 -6.9606323 6.9606247l0 0c-3.8442535 0 -6.9606323 -3.1163788 -6.9606323 -6.9606247z" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m229.44907 126.845146l0 0c0 -3.8442535 3.1163788 -6.9606323 6.9606323 -6.9606323l0 0c1.8460693 0 3.6165314 0.73335266 4.9219055 2.0387192c1.3053741 1.3053741 2.0387268 3.0758362 2.0387268 4.921913l0 0c0 3.844246 -3.116394 6.9606247 -6.9606323 6.9606247l0 0c-3.8442535 0 -6.9606323 -3.1163788 -6.9606323 -6.9606247z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m236.4097 133.80577l0 85.79527" fill-rule="evenodd" /><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m236.4097 133.80577l0 73.79527" fill-rule="evenodd" /><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m233.10623 207.60104l3.3034668 9.076202l3.3034668 -9.076202z" fill-rule="evenodd" /><path fill="#a4c2f4" d="m112.46457 663.6588l0 0c0 -10.88916 8.827393 -19.716553 19.716537 -19.716553l0 0c5.229141 0 10.244125 2.0772705 13.941696 5.7748413c3.6975708 3.6975708 5.7748413 8.712524 5.7748413 13.941711l0 0c0 10.889099 -8.827393 19.716492 -19.716537 19.716492l0 0c-10.889145 0 -19.716537 -8.827393 -19.716537 -19.716492zm9.858269 0l0 0c0 5.44458 4.4136963 9.858276 9.858269 9.858276c5.444565 0 9.858261 -4.4136963 9.858261 -9.858276c0 -5.44458 -4.4136963 -9.858276 -9.858261 -9.858276l0 0c-5.4445724 0 -9.858269 4.4136963 -9.858269 9.858276z" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m112.46457 663.6588l0 0c0 -10.88916 8.827393 -19.716553 19.716537 -19.716553l0 0c5.229141 0 10.244125 2.0772705 13.941696 5.7748413c3.6975708 3.6975708 5.7748413 8.712524 5.7748413 13.941711l0 0c0 10.889099 -8.827393 19.716492 -19.716537 19.716492l0 0c-10.889145 0 -19.716537 -8.827393 -19.716537 -19.716492zm9.858269 0l0 0c0 5.44458 4.4136963 9.858276 9.858269 9.858276c5.444565 0 9.858261 -4.4136963 9.858261 -9.858276c0 -5.44458 -4.4136963 -9.858276 -9.858261 -9.858276l0 0c-5.4445724 0 -9.858269 4.4136963 -9.858269 9.858276z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m146.1228 649.7171l198.2362 -492.72443" fill-rule="evenodd" /><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="2.0,6.0" d="m146.1228 649.7171l198.2362 -492.72443" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m236.52231 218.4357c-2.3188934 34.009613 0.57962036 132.56036 -13.913391 204.05774c-14.492996 71.497375 -60.870514 187.43875 -73.04462 224.92648" fill-rule="evenodd" /><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="8.0,6.0" d="m236.52231 218.4357c-2.3188934 34.009613 0.57962036 132.56036 -13.913391 204.05774c-14.492996 71.497375 -60.870514 187.43875 -73.04462 224.92648" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m132.1811 351.76904l0 -225.25986" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m132.1811 351.76904l0 -221.83278" fill-rule="evenodd" /><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m132.1811 129.93628l1.1245728 1.1245728l-1.1245728 -3.0897598l-1.124588 3.0897598z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m89.50656 209.62204l26.677162 0l0 42.015762l-26.677162 0z" fill-rule="evenodd" /><path fill="#000000" d="m105.78781 229.05766q0 -1.46875 -0.75 -1.46875q-0.859375 0 -1.84375 1.703125q-0.96875 1.703125 -1.421875 3.859375l-0.703125 3.390625l-1.75 0l1.578125 -7.5q0.109375 -0.515625 0.109375 -0.828125q0 -0.890625 -1.484375 -0.890625l-0.15625 0l0.171875 -0.78125l3.296875 0l-0.390625 2.6875l0.1875 0q0.75 -1.671875 1.46875 -2.265625q0.734375 -0.609375 1.703125 -0.609375q1.53125 0 1.53125 1.28125q0 1.421875 -1.546875 1.421875z" fill-rule="nonzero" /><path fill="#000000" fill-opacity="0.0" d="m229.44907 126.845146l-97.6378 0" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m229.44907 126.845146l-97.6378 0" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m168.04724 84.8294l26.67717 0l0 42.015747l-26.67717 0z" fill-rule="evenodd" /><path fill="#000000" d="m178.98474 111.26502l-0.828125 0.53125l-0.609375 0l2.46875 -11.578125q0.171875 -0.765625 0.171875 -0.984375q0 -0.875 -1.3125 -0.875l-0.15625 0l0.171875 -0.78125l3.53125 0l-0.890625 4.1875q-0.1875 0.90625 -0.671875 2.46875l0.09375 0q1.375 -2.671875 3.40625 -2.671875q1.109375 0 1.734375 0.859375q0.640625 0.859375 0.640625 2.515625q0 2.59375 -1.609375 4.796875q-1.59375 2.203125 -3.953125 2.203125q-1.34375 0 -2.1875 -0.671875zm0.65625 -0.84375q0.5625 0.671875 1.453125 0.671875q1.625 0 2.671875 -2.0625q1.0625 -2.078125 1.0625 -4.109375q0 -2.1875 -1.171875 -2.1875q-1.03125 0 -2.0 1.421875q-0.96875 1.421875 -1.21875 2.578125l-0.796875 3.6875z" fill-rule="nonzero" /><path fill="#000000" fill-opacity="0.0" d="m132.1811 351.76904l99.30708 -220.00002" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m132.1811 351.76904l96.83856 -214.53134" fill-rule="evenodd" /><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m230.52512 137.91725l0.36161804 -4.8157806l-3.3725433 3.456665z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m176.05774 234.43832l26.67717 0l0 42.015747l-26.67717 0z" fill-rule="evenodd" /><path fill="#000000" d="m192.33899 253.87395q0 -1.46875 -0.75 -1.46875q-0.859375 0 -1.84375 1.703125q-0.96875 1.703125 -1.421875 3.8593597l-0.703125 3.390625l-1.75 0l1.578125 -7.4999847q0.109375 -0.515625 0.109375 -0.828125q0 -0.890625 -1.484375 -0.890625l-0.15625 0l0.171875 -0.78125l3.296875 0l-0.390625 2.6875l0.1875 0q0.75 -1.671875 1.46875 -2.265625q0.734375 -0.609375 1.703125 -0.609375q1.53125 0 1.53125 1.28125q0 1.421875 -1.546875 1.421875z" fill-rule="nonzero" /><path fill="#ff9900" d="m223.07014 21.91601l10.980621 -2.3579502l2.357956 -10.980632l2.357956 10.980632l10.980621 2.3579502l-10.980621 2.3579502l-2.357956 10.980633l-2.357956 -10.980633z" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m223.07014 21.91601l10.980621 -2.3579502l2.357956 -10.980632l2.357956 10.980632l10.980621 2.3579502l-10.980621 2.3579502l-2.357956 10.980633l-2.357956 -10.980633z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m236.4097 119.884514l0 -84.62992" fill-rule="evenodd" /><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="8.0,6.0" d="m236.4097 119.884514l0 -84.62992" fill-rule="evenodd" /><path fill="#b7b7b7" d="m335.12524 145.1076l10.980652 -2.3579407l2.3579407 -10.980637l2.3579407 10.980637l10.980652 2.3579407l-10.980652 2.357956l-2.3579407 10.980637l-2.3579407 -10.980637z" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m335.12524 145.1076l10.980652 -2.3579407l2.3579407 -10.980637l2.3579407 10.980637l10.980652 2.3579407l-10.980652 2.357956l-2.3579407 10.980637l-2.3579407 -10.980637z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m63.07014 21.91601l0 352.37796" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m63.070137 27.91601l0 342.58795" fill-rule="evenodd" /><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m64.72187 27.91601l-1.6517334 -4.5380974l-1.6517296 4.5380974z" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m63.070137 373.79398c-0.9085083 0 -1.6450005 -0.73651123 -1.6450005 -1.6450195c0 -0.9085083 0.73649216 -1.644989 1.6450005 -1.644989c0.9085083 0 1.6450043 0.7364807 1.6450043 1.644989c0 0.9085083 -0.736496 1.6450195 -1.6450043 1.6450195z" fill-rule="nonzero" /><path fill="#000000" fill-opacity="0.0" d="m62.93348 375.39804l0 295.9055" fill-rule="evenodd" /><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m62.93348 375.39804l0 289.90555" fill-rule="evenodd" /><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m61.28175 665.3036l1.6517296 4.538086l1.6517334 -4.538086z" fill-rule="evenodd" /><path fill="#000000" fill-opacity="0.0" d="m33.50656 184.67192l62.551178 0l0 53.007874l-62.551178 0z" fill-rule="evenodd" /><path fill="#000000" d="m51.41281 204.1088q0 1.4375 -0.25 2.609375q-0.25 1.171875 -0.765625 2.015625q-0.5 0.828125 -1.265625 1.296875q-0.75 0.453125 -1.78125 0.453125q-1.0625 0 -1.84375 -0.453125q-0.765625 -0.46875 -1.265625 -1.296875q-0.484375 -0.84375 -0.71875 -2.015625q-0.234375 -1.1875 -0.234375 -2.625q0 -1.4375 0.234375 -2.609375q0.234375 -1.171875 0.71875 -2.0q0.5 -0.828125 1.28125 -1.265625q0.78125 -0.453125 1.84375 -0.453125q1.015625 0 1.765625 0.453125q0.765625 0.4375 1.265625 1.265625q0.515625 0.828125 0.765625 2.0q0.25 1.171875 0.25 2.625zm-6.328125 0q0 1.28125 0.109375 2.296875q0.125 1.015625 0.390625 1.71875q0.265625 0.6875 0.703125 1.0625q0.4375 0.359375 1.0625 0.359375q0.640625 0 1.0625 -0.359375q0.4375 -0.375 0.703125 -1.0625q0.265625 -0.703125 0.375 -1.71875q0.125 -1.015625 0.125 -2.296875q0 -1.28125 -0.125 -2.28125q-0.109375 -1.015625 -0.375 -1.703125q-0.265625 -0.703125 -0.703125 -1.0625q-0.421875 -0.359375 -1.046875 -0.359375q-0.625 0 -1.0625 0.359375q-0.4375 0.359375 -0.71875 1.0625q-0.265625 0.6875 -0.390625 1.703125q-0.109375 1.0 -0.109375 2.28125z" fill-rule="nonzero" /><path fill="#000000" fill-opacity="0.0" d="m25.506561 177.62204l26.677166 0l0 42.015762l-26.677166 0z" fill-rule="evenodd" /><path fill="#000000" d="m41.78781 197.05766q0 -1.46875 -0.75 -1.46875q-0.859375 0 -1.84375 1.703125q-0.96875 1.703125 -1.421875 3.859375l-0.703125 3.390625l-1.75 0l1.578125 -7.5q0.109375 -0.515625 0.109375 -0.828125q0 -0.890625 -1.484375 -0.890625l-0.15625 0l0.171875 -0.78125l3.296875 0l-0.390625 2.6875l0.1875 0q0.75 -1.671875 1.46875 -2.265625q0.734375 -0.609375 1.703125 -0.609375q1.53125 0 1.53125 1.28125q0 1.421875 -1.546875 1.421875z" fill-rule="nonzero" /><path fill="#000000" fill-opacity="0.0" d="m35.695538 500.3727l62.55118 0l0 53.007843l-62.55118 0z" fill-rule="evenodd" /><path fill="#000000" d="m49.914288 524.7158l0.296875 0.640625q-1.171875 0.828125 -2.34375 0.828125q-1.890625 0 -1.890625 -2.03125q0 -0.640625 0.171875 -1.453125l1.0625 -4.984375l-1.328125 0l0.171875 -0.703125q1.6875 0 2.640625 -2.421875l0.796875 0l-0.453125 2.125l2.109375 0l-0.21875 1.0l-2.09375 0l-1.046875 4.9375q-0.21875 1.0 -0.21875 1.484375q0 0.953125 0.921875 0.953125q0.703125 0 1.421875 -0.375z" fill-rule="nonzero" /><path fill="#000000" fill-opacity="0.0" d="m27.695538 493.32285l26.677166 0l0 42.015717l-26.677166 0z" fill-rule="evenodd" /><path fill="#000000" d="m43.976788 512.7585q0 -1.4687805 -0.75 -1.4687805q-0.859375 0 -1.84375 1.7031555q-0.96875 1.703125 -1.421875 3.859375l-0.703125 3.390625l-1.75 0l1.578125 -7.5q0.109375 -0.515625 0.109375 -0.8281555q0 -0.890625 -1.484375 -0.890625l-0.15625 0l0.171875 -0.78125l3.296875 0l-0.390625 2.6875305l0.1875 0q0.75 -1.6719055 1.46875 -2.2656555q0.734375 -0.609375 1.703125 -0.609375q1.53125 0 1.53125 1.28125q0 1.4219055 -1.546875 1.4219055z" fill-rule="nonzero" /></g></svg>

<p>By the Pythagorean theorem \(r^2 = r_{\parallel}^2 + b^2\). We’ll further assume that \(dr_{\parallel} = cdt\) where \(c\) is the speed of light—in other words the particle moves at an unchanging speed \(c\) along the vector parallel to the sun. The change in speed of the particle along the perpendicular component is:</p>

<p>\[\Delta v_{\perp} = \int_{0}^{t’} \frac{GM}{b^2 + r_{\parallel}^2}dt = \int_{-r_0}^{r_{t’}} \frac{GM}{c(b^2 + r_{\parallel}^2)} dr_{\parallel}\]</p>

<p>Simplifying further:</p>

<p>\[\frac{GM}{b^2 c} \int_{–r_0}^{r_{t’}} \frac{dr_{\parallel}}{1 + (r_{\parallel}/b)^2} = \frac{GM}{b^2 c} \int_{-r_0/b}^{r_{t’}/b} \frac{bdu}{1 + u^2}\]</p>

<p>(note the \(u\)-substitution in the final step above). Now, recall that:</p>

<p>\[\int \frac{1}{1+x^2} = \tan^{-1} x\]</p>

<p>So:</p>

<p>\[\int_{-\infty}^{r_{t’}/b} \frac{dx}{1 + x^2} = \tan^{-1}(x) \Bigg|_{-r_0/b}^{r_t/b} \]</p>

<p>Since \(r_0\)—the distance from the star to the sun—and \(r_{t’}\)—the distance from the earth to the sun—are so much more massive than \(b\) (which is some small multiple of sun’s radius since we’re picking stars that are visually near the eclipsed sun), we can approximate this as:</p>

<p>\[ \tan^{-1}(x) \Bigg|_{-\infty}^{\infty} = 2 \]</p>

<p>Thus:</p>

<p>\[\Delta v_{\perp} =  \frac{2GM}{bc}\]</p>

<p>So the velocity vector goes from:</p>

<p>\[\langle 0,  c \rangle \rightarrow  \left \langle \frac{2GM}{bc}, c \right \rangle\]</p>

<p>The deflection angle relative to the starting trajectory is the arc-tangent of the ratio of the final velocity components:</p>

<p>\[\Delta \theta = \tan^{-1} \frac{2GM}{bc^2} \approx \frac{2GM}{bc^2} \]</p>

<h2 id="general-relativistic-deflection">General Relativistic Deflection</h2>

<p>Under general relativity, light travels along <em>geodesics</em>—essentially “straight lines” in spacetime. Of course, spacetime itself can be curved by massive objects. The curvature is precisely defined by <a href="https://en.wikipedia.org/wiki/Einstein_field_equations">Einstein’s field equations</a>, but exact solutions are difficult to obtain outside of simplifying assumptions.</p>

<p>One such simplification is to consider only the influence one large mass \(M\). Photons in this scenario follow the <a href="https://en.wikipedia.org/wiki/Schwarzschild_geodesics">Schwarzschild geodesics</a>.</p>

<p>You can use the Schwarzschild solution to Einstein’s field equations to calculate the deflection. I don’t pretend to understand general relativity well-enough to perform the deriviation myself, but you can watch the below video if you’re interested:</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/MxWATpSGEgY?si=0h47RNQkAUviEZRp" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>You get a deflection angle of:</p>

<p>\[\Delta \theta = \frac{4 GM}{bc^2}\]</p>

<p>In other words the deflection under general relativity is exactly twice as under classical mechanics.</p>

<p>If you <a href="https://www.wolframalpha.com/input?i=%28%284+*+G+*+%28mass+of+sun%29%29+%2F+%28%28speed+of+light%29%5E2+*+%28radius+of+sun%29%29%29+radians+to+arcseconds">carry out the calculations</a> for a star positioned right on the edge of the sun (in other words, setting \(b\) to the sun’s radius) you’ll get a deflection of 0.876 arc-seconds under Newtonian physics and a deflection of 1.75 arc-seconds under general relativity. This is a difference of about 2.5 ten thousandths of a degree—it’s still incredible to me that Eddington’s team was able to measure such a small arc, but measure it they did: the observations at Sobral resulted in a calculated deflection of 1.94 ± 0.12 arc-seconds—close enough to 1.75 to validate general relativity.</p>

<p>There were <a href="https://en.wikipedia.org/wiki/Tests_of_general_relativity">other tests</a> of the theory that were carried out (most notably, general relativity correctly explained the deviation in the precession of Mercury), but the Eddington experiment was seen as the first major confirmation—and it was all thanks to a total solar eclipse.</p>

<h2 id="further-reading">Further Reading</h2>

<ul>
  <li>Eddington’s <a href="https://zenodo.org/records/1432106">original report</a> to the Royal Society. It’s fascinating, and surprisingly easy to understand!</li>
  <li>This <a href="https://www.youtube.com/watch?v=HLxvq_M4218">Vox video</a>, from which I first learned about the experiment.</li>
  <li>This <a href="https://www.theguardian.com/science/2019/may/12/100-years-on-eclipse-1919-picture-that-changed-universe-arthur-eddington-einstein-theory-gravity">Guardian article</a>, which includes more details about the expedition itself.</li>
</ul>]]></content><author><name></name></author><category term="eclipse" /><category term="eclipse" /><category term="math" /><summary type="html"><![CDATA[In celebration of the upcoming eclipse crossing North America on April 8th, I’ll be posting one eclipse-related post per day. Today’s post is about the 1919 Eddington Expedition and the math behind the theoretical light deflections that were being measured.]]></summary></entry><entry><title type="html">2023 Paired Book/Movie Recommendations</title><link href="https://fortenf.org/e//e/2024/02/03/paired-book-movie-recs.html" rel="alternate" type="text/html" title="2023 Paired Book/Movie Recommendations" /><published>2024-02-03T16:12:47+00:00</published><updated>2024-02-03T16:12:47+00:00</updated><id>https://fortenf.org/e//e/2024/02/03/paired-book-movie-recs</id><content type="html" xml:base="https://fortenf.org/e//e/2024/02/03/paired-book-movie-recs.html"><![CDATA[<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&amp;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&amp;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>]]></content><author><name></name></author><category term="recommendations" /><summary type="html"><![CDATA[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.]]></summary></entry><entry><title type="html">Mystery Hunt 2023</title><link href="https://fortenf.org/e//e/2023/01/18/mystery-hunt-2023.html" rel="alternate" type="text/html" title="Mystery Hunt 2023" /><published>2023-01-18T16:12:47+00:00</published><updated>2023-01-18T16:12:47+00:00</updated><id>https://fortenf.org/e//e/2023/01/18/mystery-hunt-2023</id><content type="html" xml:base="https://fortenf.org/e//e/2023/01/18/mystery-hunt-2023.html"><![CDATA[<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 &amp; 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>]]></content><author><name></name></author><category term="mystery_hunt" /><category term="puzzlehunts" /><summary type="html"><![CDATA[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.]]></summary></entry><entry><title type="html">Google CTF 2022: Enigma (373 pts)</title><link href="https://fortenf.org/e//e/ctfs/crypto/2022/07/16/google-ctf-2022-enigma.html" rel="alternate" type="text/html" title="Google CTF 2022: Enigma (373 pts)" /><published>2022-07-16T08:12:44+00:00</published><updated>2022-07-16T08:12:44+00:00</updated><id>https://fortenf.org/e//e/ctfs/crypto/2022/07/16/google-ctf-2022-enigma</id><content type="html" xml:base="https://fortenf.org/e//e/ctfs/crypto/2022/07/16/google-ctf-2022-enigma.html"><![CDATA[<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>]]></content><author><name></name></author><category term="ctfs" /><category term="crypto" /><category term="ctfs" /><category term="crypto" /><summary type="html"><![CDATA[Enigma was a cryptography challenge in the 2022 Google CTF in which the goal was to decrypt a message encrypted with the Enigma machine.]]></summary></entry></feed>