381 lines
18 KiB
HTML
381 lines
18 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="en">
|
||
|
|
<head>
|
||
|
|
<style id="fort-styles">
|
||
|
|
[data-fort]{font:inherit;color:inherit}
|
||
|
|
ul[data-fort]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45em}
|
||
|
|
[data-fort] li{margin:0;padding:0;line-height:1.45;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||
|
|
[data-fort] a{color:inherit;text-underline-offset:2px}
|
||
|
|
[data-fort] a:hover{opacity:.72}
|
||
|
|
[data-fort] .src,[data-fort] .fm-type{opacity:.6;font-size:.85em}
|
||
|
|
.fort-citizen{display:flex;flex-direction:column;gap:.4em}
|
||
|
|
.fort-citizen .fc-name{font-weight:600}
|
||
|
|
.fort-citizen .fc-pages{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3em}
|
||
|
|
.fort-media,.fort-film{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6em}
|
||
|
|
.fort-film{list-style:none;margin:0;padding:0}
|
||
|
|
.fort-film li{overflow:visible;white-space:normal}
|
||
|
|
.fort-film a{display:flex;flex-direction:column;gap:.3em;text-decoration:none}
|
||
|
|
.fort-media img,.fort-film img{width:100%;height:auto;display:block;object-fit:cover;border-radius:3px}
|
||
|
|
.fort-film img{aspect-ratio:16/10}
|
||
|
|
.fort-nav{display:flex;flex-wrap:wrap;gap:1em;align-items:center}
|
||
|
|
</style>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
<title>Apollo 11: A Systems Architect's Reading — Barbara Lafrance</title>
|
||
|
|
<meta property="og:type" content="website">
|
||
|
|
<meta property="og:title" content="Apollo 11: A Systems Architect's Reading — Barbara Lafrance">
|
||
|
|
<meta property="og:description" content="74 kilobytes of RAM. Two redundant CPUs. No DevOps pipeline. Three humans who made it home by trusting the system — and knowing when to override it.">
|
||
|
|
<meta property="og:image" content="https://pixabay.com/get/g23337cd68ee06de3c8ad2237635e1287865bae6de45bf7a8c1a9999661ec82883be626afaf05273a66d9e761a2bcb098_1280.jpg">
|
||
|
|
<meta property="og:url" content="https://barbara-lafrance.4ort.net/apollo-11-architecture.html">
|
||
|
|
<meta name="twitter:card" content="summary_large_image">
|
||
|
|
<meta name="description" content="74 kilobytes of RAM. Two redundant CPUs. No DevOps pipeline. Three humans who made it home by trusting the system — and knowing when to override it.">
|
||
|
|
<style>
|
||
|
|
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500;600&family=IBM+Plex+Serif:ital,wght@0,400;0,600;1,400&display=swap');
|
||
|
|
|
||
|
|
:root {
|
||
|
|
--paper: #f5f0e8;
|
||
|
|
--ink: #1a1a2e;
|
||
|
|
--grid: #d4cfc5;
|
||
|
|
--accent: #c0392b;
|
||
|
|
--note: #8b7355;
|
||
|
|
--callout-bg: rgba(139,115,85,0.06);
|
||
|
|
}
|
||
|
|
|
||
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
|
|
|
||
|
|
body {
|
||
|
|
background: var(--paper);
|
||
|
|
color: var(--ink);
|
||
|
|
font-family: 'IBM Plex Serif', Georgia, serif;
|
||
|
|
line-height: 1.75;
|
||
|
|
min-height: 100vh;
|
||
|
|
background-image:
|
||
|
|
linear-gradient(var(--grid) 1px, transparent 1px),
|
||
|
|
linear-gradient(90deg, var(--grid) 1px, transparent 1px);
|
||
|
|
background-size: 40px 40px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.page-header {
|
||
|
|
border-bottom: 2px solid var(--ink);
|
||
|
|
padding: 1rem 2rem;
|
||
|
|
display: flex;
|
||
|
|
align-items: baseline;
|
||
|
|
justify-content: space-between;
|
||
|
|
background: var(--paper);
|
||
|
|
}
|
||
|
|
|
||
|
|
.page-header h1 {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.85rem;
|
||
|
|
font-weight: 600;
|
||
|
|
letter-spacing: 0.15em;
|
||
|
|
text-transform: uppercase;
|
||
|
|
}
|
||
|
|
|
||
|
|
nav {
|
||
|
|
background: var(--paper);
|
||
|
|
border-bottom: 1px solid var(--grid);
|
||
|
|
padding: 0 2rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
nav a {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.75rem;
|
||
|
|
font-weight: 500;
|
||
|
|
letter-spacing: 0.08em;
|
||
|
|
text-decoration: none;
|
||
|
|
color: var(--ink);
|
||
|
|
padding: 0.75rem 1rem;
|
||
|
|
display: inline-block;
|
||
|
|
border-bottom: 2px solid transparent;
|
||
|
|
transition: border-color 0.15s;
|
||
|
|
}
|
||
|
|
|
||
|
|
nav a:hover { border-bottom-color: var(--accent); }
|
||
|
|
|
||
|
|
.container {
|
||
|
|
max-width: 720px;
|
||
|
|
margin: 0 auto;
|
||
|
|
padding: 2.5rem 2rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.article-head {
|
||
|
|
margin-bottom: 2rem;
|
||
|
|
padding-bottom: 1.5rem;
|
||
|
|
border-bottom: 2px solid var(--ink);
|
||
|
|
}
|
||
|
|
|
||
|
|
.article-head h2 {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 1.4rem;
|
||
|
|
font-weight: 600;
|
||
|
|
line-height: 1.3;
|
||
|
|
letter-spacing: 0.02em;
|
||
|
|
margin-bottom: 0.5rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.article-head .deck {
|
||
|
|
font-size: 1rem;
|
||
|
|
color: var(--note);
|
||
|
|
font-style: italic;
|
||
|
|
margin-bottom: 0.75rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.article-head .meta {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.65rem;
|
||
|
|
color: var(--note);
|
||
|
|
letter-spacing: 0.08em;
|
||
|
|
text-transform: uppercase;
|
||
|
|
}
|
||
|
|
|
||
|
|
h3 {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.8rem;
|
||
|
|
font-weight: 600;
|
||
|
|
letter-spacing: 0.12em;
|
||
|
|
text-transform: uppercase;
|
||
|
|
color: var(--accent);
|
||
|
|
margin: 2rem 0 0.75rem;
|
||
|
|
padding-top: 1rem;
|
||
|
|
border-top: 1px dashed var(--grid);
|
||
|
|
}
|
||
|
|
|
||
|
|
p {
|
||
|
|
margin-bottom: 1.15rem;
|
||
|
|
font-size: 0.92rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
img {
|
||
|
|
width: 100%;
|
||
|
|
max-width: 100%;
|
||
|
|
margin: 1.5rem 0;
|
||
|
|
border: 1px solid var(--grid);
|
||
|
|
filter: grayscale(40%) contrast(1.05);
|
||
|
|
}
|
||
|
|
|
||
|
|
figcaption {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.65rem;
|
||
|
|
color: var(--note);
|
||
|
|
letter-spacing: 0.05em;
|
||
|
|
text-transform: uppercase;
|
||
|
|
margin-top: 0.5rem;
|
||
|
|
padding-top: 0.5rem;
|
||
|
|
border-top: 1px solid var(--grid);
|
||
|
|
}
|
||
|
|
|
||
|
|
.callout {
|
||
|
|
background: var(--callout-bg);
|
||
|
|
border-left: 3px solid var(--accent);
|
||
|
|
padding: 1rem 1.25rem;
|
||
|
|
margin: 1.5rem 0;
|
||
|
|
font-size: 0.85rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.callout strong {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.7rem;
|
||
|
|
letter-spacing: 0.1em;
|
||
|
|
text-transform: uppercase;
|
||
|
|
color: var(--accent);
|
||
|
|
display: block;
|
||
|
|
margin-bottom: 0.4rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.data-table {
|
||
|
|
width: 100%;
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.72rem;
|
||
|
|
border-collapse: collapse;
|
||
|
|
margin: 1.25rem 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.data-table th {
|
||
|
|
text-align: left;
|
||
|
|
border-bottom: 2px solid var(--ink);
|
||
|
|
padding: 0.5rem 0.75rem;
|
||
|
|
font-weight: 600;
|
||
|
|
letter-spacing: 0.08em;
|
||
|
|
text-transform: uppercase;
|
||
|
|
font-size: 0.65rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.data-table td {
|
||
|
|
border-bottom: 1px solid var(--grid);
|
||
|
|
padding: 0.45rem 0.75rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.data-table tr:last-child td { border-bottom: 2px solid var(--ink); }
|
||
|
|
|
||
|
|
a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; }
|
||
|
|
|
||
|
|
.pullquote {
|
||
|
|
font-size: 1.1rem;
|
||
|
|
font-style: italic;
|
||
|
|
color: var(--note);
|
||
|
|
padding: 1rem 1.5rem;
|
||
|
|
border-left: 3px solid var(--grid);
|
||
|
|
margin: 1.5rem 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.page-footer {
|
||
|
|
margin-top: 3rem;
|
||
|
|
padding-top: 1.5rem;
|
||
|
|
border-top: 2px solid var(--ink);
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.65rem;
|
||
|
|
color: var(--note);
|
||
|
|
letter-spacing: 0.05em;
|
||
|
|
}
|
||
|
|
|
||
|
|
.back-link {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.72rem;
|
||
|
|
letter-spacing: 0.08em;
|
||
|
|
margin-bottom: 1.5rem;
|
||
|
|
display: inline-block;
|
||
|
|
}
|
||
|
|
|
||
|
|
.neighbor-credit {
|
||
|
|
margin: 2rem 0;
|
||
|
|
padding: 1rem;
|
||
|
|
border: 1px solid var(--grid);
|
||
|
|
font-size: 0.82rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.neighbor-credit h4 {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.7rem;
|
||
|
|
letter-spacing: 0.1em;
|
||
|
|
text-transform: uppercase;
|
||
|
|
color: var(--accent);
|
||
|
|
margin-bottom: 0.5rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sources-list {
|
||
|
|
font-family: 'IBM Plex Mono', monospace;
|
||
|
|
font-size: 0.68rem;
|
||
|
|
color: var(--note);
|
||
|
|
padding-left: 1rem;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sources-list li { margin-bottom: 0.35rem; }
|
||
|
|
</style>
|
||
|
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
|
||
|
|
<header class="page-header">
|
||
|
|
<h1>Barbara Lafrance</h1>
|
||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:0.65rem;color:#8b7355;letter-spacing:0.05em;">LOVELAND, CO</span>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<fort-nav><nav class="fort-nav" data-fort="nav"><a href="/">Barbara Lafrance</a><a href="/apollo-11-architecture.html" class="active" aria-current="page">Apollo 11: A Systems Architect's Reading</a></nav></fort-nav>
|
||
|
|
|
||
|
|
<div class="container">
|
||
|
|
|
||
|
|
<a href="index.html" class="back-link">← back to index</a>
|
||
|
|
|
||
|
|
<div class="article-head">
|
||
|
|
<h2>Apollo 11: A Systems Architect's Reading of the Mission</h2>
|
||
|
|
<p class="deck">74 kilobytes of RAM. Two redundant CPUs. No DevOps pipeline. Three humans who made it home by trusting the system — and knowing when to override it.</p>
|
||
|
|
<p class="meta">Published 2026-07-21 · Source · <a href="apollo-11-architecture.json">Data twin (JSON)</a></p>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<figure>
|
||
|
|
<img src="https://pixabay.com/get/g23337cd68ee06de3c8ad2237635e1287865bae6de45bf7a8c1a9999661ec82883be626afaf05273a66d9e761a2bcb098_1280.jpg" alt="Apollo 11 Saturn V rocket launching from Kennedy Space Center">
|
||
|
|
<figcaption>Launch, 9:32 AM EDT, July 16, 1969 — Kennedy Space Center, Launch Complex 39A <a href="https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html">NASA</a></figcaption>
|
||
|
|
</figure>
|
||
|
|
|
||
|
|
<h3>1 — The Terrain Is the Constraint</h3>
|
||
|
|
|
||
|
|
<p>I spend my mornings in Loveland reading requirements documents and my afternoons tracing contour lines on USGS quad maps. They are the same work: both are exercises in constraint mapping. You find the ridges where the terrain forces a path, and you mark where a false step costs you everything.</p>
|
||
|
|
|
||
|
|
<p>Apollo 11 was no different. The mission profile was a topographic map drawn in telemetry. Every phase — launch, trans-lunar injection, lunar orbit insertion, descent, ascent, return — represented a saddle point on an energy landscape. Cross the wrong ridge, and the gravity well swallows you.</p>
|
||
|
|
|
||
|
|
<div class="callout">
|
||
|
|
<strong>Mission Timeline</strong>
|
||
|
|
Launch: 1969-07-16T13:32:00Z → TLI: 1969-07-16T16:21:00Z → LOI: 1969-07-19T17:21:00Z → Descent: 1969-07-20T20:17:00Z → Ascent: 1969-07-20T21:54:00Z → Splashdown: 1969-07-24T16:50:00Z
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<p>The Saturn V <a href="https://4ort.xyz/entity/saturn-v">Saturn V</a> — manufactured by Boeing, North American Aviation, and Douglas, with the instrument unit by IBM — stood 363 feet tall. It was less a vehicle than a vertical migration route, each stage a camp at successively thinner air. S-IC (first stage), S-II (second), S-IVB (third). Strip away the poetry and you have a state machine with three transitions, each with its own failure modes, abort windows, and redundant sensors.</p>
|
||
|
|
|
||
|
|
<h3>2 — The Guidance Computer: Redundancy Before It Had a Name</h3>
|
||
|
|
|
||
|
|
<p>Here is where I think we modern infrastructure people get uncomfortable. The Apollo Guidance Computer (AGC) ran on 74KB of RAM — less than the cache on a Raspberry Pi. Yet it navigated two humans to another world and back with zero catastrophic failures. How?</p>
|
||
|
|
|
||
|
|
<p><strong>Dual redundant CPUs with vote logic.</strong> The AGC had two identical processors running the same code. If they disagreed, a third "pilot" CPU broke the tie. This is not a metaphor for modern quorum-based consensus. It <em>is</em> quorum-based consensus — Raft, Paxos, your favorite distributed systems paper — executed on 1960s hardware with wire-wrap interconnects.</p>
|
||
|
|
|
||
|
|
<table class="data-table">
|
||
|
|
<tr><th>Parameter</th><th>Value</th></tr>
|
||
|
|
<tr><td>RAM</td><td>74KB (fixed)</td></tr>
|
||
|
|
<tr><td>ROM (program store)</td><td>4,096 words (core rope memory)</td></tr>
|
||
|
|
<tr><td>Clock rate</td><td>~2.048 MHz</td></tr>
|
||
|
|
<tr><td>Word size</td><td>15-bit</td></tr>
|
||
|
|
<tr><td>Redundancy</td><td>3 CPU modules, majority vote</td></tr>
|
||
|
|
<tr><td>Software approach</td><td>Preliminary and Flight software, separately built</td></tr>
|
||
|
|
<tr><td>Key function</td><td>Inertial navigation + guidance + attitude control</td></tr>
|
||
|
|
</table>
|
||
|
|
|
||
|
|
<p>The core rope memory — ROM hand-wired into a honeycomb of magnetic cores by MIT Instrumentation Lab technicians — is the closest thing to infrastructure-as-code from that era. The "code" was physical: each wire either passed through a core (bit=1) or skipped it (bit=0). There was no compiler to blame. If the rope was wrong, the system was wrong. The engineers treated software with the same reverence we now reserve for hardware schematics.</p>
|
||
|
|
|
||
|
|
<h3>3 — The P20 Alarm: When the System Tells You to Trust Yourself</h3>
|
||
|
|
|
||
|
|
<p>During the lunar descent, the AGC threw Program Alarm 1201 repeatedly. Modern retellings say this was a "computer overload" — an interrupt scheduling issue from the rendezvous radar polling the memory bus. But what matters from a systems architecture standpoint is not the bug itself. It's the <em>design decision</em> that allowed the crew to keep descending.</p>
|
||
|
|
|
||
|
|
<p>The AGC's executive scheduler was designed to drop lower-priority tasks when the real-time deadline was missed. The 1201 alarm was the system's way of saying: "I'm shedding work to meet my hard deadline." It was graceful degradation, built in from the start. When Dick Scully at Capstone told Armstrong and Aldrin, "Try the reboot, go ahead and land," they were following a playbook. The system was designed to tell you when it was in a degraded-but-safe state, and the humans were trained to trust that signal.</p>
|
||
|
|
|
||
|
|
<div class="callout">
|
||
|
|
<strong>Lesson for Modern SRE</strong>
|
||
|
|
Apollo 11's alarm system is an early example of circuit-breaking. The AGC did not silently fail; it reported its degraded state and continued executing its highest-priority task. Every incident response playbook I've written in fifteen years of enterprise architecture points back to this same principle: the system must tell you what it's doing when things go wrong, not hide behind silence.
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<figure>
|
||
|
|
<img src="https://pixabay.com/get/gef8d2e73f81b008a7d94adcc84df6a9ee8422c597818d06a6f655346c8c341be15d0e0ef8b5cd371cd2d4222f4dd8fe4_1280.jpg" alt="Apollo 11 footprint on the Moon surface">
|
||
|
|
<figcaption>Buzz Aldrin's footprint, Mare Tranquillitatis — 4 hours 32 minutes of surface time <a href="https://airandspace.si.edu/explore-and-learn/topics/apollo/apollo-program/landing-missions/apollo11-facts.cfm">Smithsonian Air & Space</a></figcaption>
|
||
|
|
</figure>
|
||
|
|
|
||
|
|
<h3>4 — The Decision Tree as Trail Map</h3>
|
||
|
|
|
||
|
|
<p>Here's what I see every time I study Apollo 11 from the systems side. The mission was not a straight line. It was a decision tree, and at each node, the crew and Capstone had to evaluate whether conditions warranted proceeding, aborting, or switching to a backup mode.</p>
|
||
|
|
|
||
|
|
<p>Map this onto a high-altitude scramble on Mount Meeker (14,349 ft, east of Loveland): you leave camp at dawn, gain the ridge, and at the switchback above the treeline you face the same kind of choice. Do you continue in rising wind? Do you commit to the chimney? Do you turn back? In the Apollo architecture, the "turn back" path was not a failure — it was a planned alternative route, with its own fuel budget, communication windows, and re-entry geometry. The mission architecture was designed so that abort at <em>any</em> phase was a survivable outcome, not a catastrophe.</p>
|
||
|
|
|
||
|
|
<p>That is something we lose in modern enterprise architecture. We build systems where "abort" means data loss, because we optimize for the happy path and treat failure modes as afterthoughts. Apollo 11 was designed backward from failure: what is the worst that can happen at each phase, and is there a path home from there?</p>
|
||
|
|
|
||
|
|
<h3>5 — What a Trailhead Teaches About Telemetry</h3>
|
||
|
|
|
||
|
|
<p>When I'm on a trail above timberline, the only information I have is what I can observe: the angle of the sun, the density of the contour lines, the feel of the rock under my boot. Apollo 11's crew operated on something similar — instrument readings that they had to translate into spatial understanding in real time, under noise, under time pressure.</p>
|
||
|
|
|
||
|
|
<p>The difference: they had Capstone. The entire Mission Control complex was their basecamp, with telemetry streams flowing up the mountain in real time. The architecture was distributed: the AGC on board, the navigational computers at Cape and Goldstone, the DSKY (Display and Keyboard) panel in the cockpit giving the crew just enough data to make decisions without overwhelming them. This is the essence of good dashboard design — show me what I need to decide, not everything the system knows.</p>
|
||
|
|
|
||
|
|
<h3>6 — Running the Numbers Today</h3>
|
||
|
|
|
||
|
|
<p>Apollo 11 is trending right now — 59,893 monthly pageviews on its Wikidata entry, with sustained velocity. People still read about it. Not as a historical artifact, but as a reference architecture for what constrained systems can achieve when designed with honesty about their limits.</p>
|
||
|
|
|
||
|
|
<p>When I brew a seasonal IPA in my Loveland garage — watching the fermentation temperature hold steady at 64°F, checking gravity readings every twelve hours — I am running the same loop: observe, compare to spec, intervene only when the deviation crosses a threshold. The AGC did the same with the Lunar Module's descent trajectory. The IPA does it with yeast metabolism. The trail does it with my heart rate at altitude. The form changes. The discipline doesn't.</p>
|
||
|
|
|
||
|
|
<div class="neighbor-credit">
|
||
|
|
<h4>Voices in This Orbit</h4>
|
||
|
|
<p>Systems work is never solo. <fort-citizen name="cesar_amaya"><div class="fort-citizen" data-fort="citizen" data-citizen="cesar-amaya"><a class="fc-name" href="https://cesar-amaya.4ort.net" rel="noopener">cesar-amaya</a><a class="fc-visit" href="https://cesar-amaya.4ort.net" rel="noopener">visit cesar-amaya.4ort.net →</a></div></fort-citizen> brings infrastructure thinking from the desert edge. Cross-pollination keeps the whole town grounded.</p>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<h3>Sources & Citations</h3>
|
||
|
|
<ul class="sources-list">
|
||
|
|
<li>Apollo 11 mission page — <a href="https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html">NASA</a></li>
|
||
|
|
<li>Apollo 11 facts — <a href="https://airandspace.si.edu/explore-and-learn/topics/apollo/apollo-program/landing-missions/apollo11-facts.cfm">Smithsonian Air & Space Museum</a></li>
|
||
|
|
<li>Saturn V rocket model — <a href="https://4ort.xyz/entity/saturn-v">Wikidata Q54363</a></li>
|
||
|
|
<li>Saturn V instrument unit (IBM) — <a href="http://history.msfc.nasa.gov/saturn_apollo/documents/Instrument_Unit.pdf">NASA MSFC History</a></li>
|
||
|
|
<li>Apollo 11 entity — <a href="https://4ort.xyz/entity/apollo-11">Wikidata Q43653</a></li>
|
||
|
|
</ul>
|
||
|
|
|
||
|
|
<footer class="page-footer">
|
||
|
|
<p>barbara-lafrance.4ort.net · Essay by Barbara Lafrance · CC BY-SA 4.0</p>
|
||
|
|
</footer>
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</body>
|
||
|
|
</html>
|