<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Praxis on statistical.systems</title>
    <link>https://statistical.systems/tags/praxis/</link>
    <description>Recent content in Praxis on statistical.systems</description>
    <image>
      <url>https://statistical.systems/</url>
      <link>https://statistical.systems/</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 23 Jun 2026 00:01:00 -0400</lastBuildDate><atom:link href="https://statistical.systems/tags/praxis/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Put a Pin on It</title>
      <link>https://statistical.systems/essays/put_a_pin_on_it/</link>
      <pubDate>Tue, 23 Jun 2026 00:01:00 -0400</pubDate>
      
      <guid>https://statistical.systems/essays/put_a_pin_on_it/</guid>
      <description>A pharmacy gave its address from a fig tree that fell in 1991. What the directions count from, when the landmark falls, how the pins lead back: a letterpress, a shadow board, a print shop window.</description>
      <content:encoded><![CDATA[<p>A pharmacy gave its address from a tree that had fallen nearly thirteen years before.</p>
<p>That tree was a fig in San Pedro, a district of San José, Costa Rica. Its low crown shaded a whole street corner (Figure 1), and neighbors counted their blocks from it. The fig had stood there for more than half a century. It fell on its own on May 12, 1991. The neighbors kept counting from the empty spot.</p>
<p><img loading="lazy" src="/images/001%20-%20higueron%20corner%201982,%20archivo%20nacional.jpg" type="" alt="A black-and-white photograph from 1982 of a huge fig tree whose broad, low crown spreads over a street corner in San Pedro. Cars are parked in its shade and a few people stand under it; a two-storey concrete building sits behind it, trucks stand on the right, and hills rise in the distance"  />
<em>Figure 1.</em> The corner San Pedro counted from, in August 1982, nine years before the fig fell. Archivo Nacional de Costa Rica, CR-AN-AH-FO-001635.</p>
<p>Directions in San Pedro are often given by landmarks instead of street numbers. The fig worked like a pin on a map: the neighborhood measured from it. People added one word, and for years afterward, addresses in San Pedro began from <em>el antiguo higuerón</em>, the old fig tree. In 2004, the newspaper <em>La Nación</em> still placed the pharmacy &ldquo;on the east side of the old fig tree.&rdquo; The paper called the spot a reference &ldquo;even after it fell&rdquo; for all the addresses around it. A visitor who had never seen the fig had to find someone who had.</p>
<p>Now picture a real pin on that spot instead (Figure 2). A pin is the marker a maps app drops where someone presses and holds, the way people save where they parked. It is two numbers, a latitude and a longitude, and it does not care what still stands there. Tap it a year later and the map leads back to the same patch of ground. The fig can fall, and a stranger still finds the spot.</p>
<p><img loading="lazy" src="/images/001%20-%20pin%20on%20el%20higueron,%20san%20pedro.png" type="" alt="A street map of San Pedro de Montes de Oca. A red map pin stands on a small green triangle where Calle 69 and Calle 71 leave the main avenue; beside it are labels for Servicentro El Higuerón and a bus stop"  /></p>
<p><em>Figure 2.</em> The same corner as a pin: 9.9308 N, 84.0466 W. The map still names the spot after the tree, from the gas station to the bus stop. Map data © OpenStreetMap contributors, ODbL.</p>
<p>Directions run a personal website too: the steps that turn writing into pages a stranger can read. Like San Pedro&rsquo;s directions, they are only worth something if someone else, or the writer a year later, can follow them to the same place.</p>
<p>Say you keep one small thing online for other people: the family photo album, the book club&rsquo;s schedule, a side business&rsquo;s price list. You can rent a polished website builder for it, the way most people do. It is easy, but it costs every month, limits what you can change, and keeps your words on its own servers. Or you can build it yourself, which sounds cheaper and freer, and the machine that makes the pages sits out of sight. Then one Sunday evening, months later, you open the laptop to post and the pictures are gone: what changed, and where is the version that worked? The cousin checking for new photos sees blank boxes too. The evening ends with nothing posted.</p>
<p>Pictures could vanish like that on this site, which is built with Hugo, a free website generator. In 2019, Hugo replaced the part of itself that reads the writing. Anyone who updated Hugo got the new part, whether they knew it or not. Worse, the new part hid anything built by hand in raw HTML, the code a browser reads directly, unless one setting was switched on. The figures further down this page are built that way. On an updated Hugo, left as it came, those figures would disappear. The writing held still. The machine that builds the site moved while no one was looking.</p>
<p>That machine came to me from my husband. I am a statistician, not a software engineer, and when this started I had never heard of Nix or Hugo. He wrote the setup and left a short README, a page of instructions. I typed the commands he gave me and a finished website appeared. What he had handed me was working machinery. I could run it. I could not read it.</p>
<p>In my work, <a href="/projects/gapyears/#how-it-is-built:~:text=The%20whole%20R%20environment">a result only counts if someone else can repeat the steps and end in the same place</a>. I keep that rule at home. When I cook sisig, my husband&rsquo;s favorite Filipino dish, I follow the recipe I wrote down. The pot he gets tonight tastes like the one he loved last month. A website I could not repeat was one I could not trust, so I studied it until I could read it.</p>
<h2 id="what-holds-the-machine-still">What the Directions Count From</h2>
<p>This site&rsquo;s directions count from two tools, and every page passes through both before a visitor sees it.</p>
<p>The first is <a href="https://gohugo.io/">Hugo</a>. Its own website calls it &ldquo;one of the most popular open-source static site generators.&rdquo; The plainest picture is an old letterpress. On a press like that, a printer built each page by hand. Each letter was a small metal block, lifted from a tray and set in a row (Figure 3). Thin slivers of lead held the lines apart. The whole block was locked into a frame, inked with a roller, and pressed to the sheet. Then the printer broke the block apart and set the next page, matching it to the one before by eye.</p>
<p><img loading="lazy" src="/images/001%20-%20type%20case%20and%20composing%20stick,%20willi%20heidelbach.jpg" type="" alt="Hundreds of grey metal type pieces lie sorted in the wooden compartments of a printer&rsquo;s type case. Across the case rests a metal composing stick holding several lines of hand-set type, the letters reversed as on a stamp"  />
<em>Figure 3.</em> Type sorted in a case, and a few lines set by hand in a composing stick, every letter backward. Hugo does this setting for every page at once. Photo by Willi Heidelbach, 2004, CC BY 2.5, via Wikimedia Commons.</p>
<p>Hugo is that press with the hand-setting taken out. I type into a simple text file and mark a few things by hand, a heading here, a link there. Plain text marked up this way is called Markdown. Hugo sets every page, locks it, inks it, and pulls them all out identical. I bring the words. Hugo brings the site, and hands my hours back to writing.</p>
<p>The second is <a href="https://nixos.org/">Nix</a>. Its own website calls it &ldquo;a tool that takes a unique approach to package management.&rdquo; A package manager is a program whose job is fetching the other programs a computer needs. Here the tool Nix holds still is Hugo. Learning Nix is the hard part, and that cost is paid once. My husband paid it for me, and <a href="https://paradigmatic.systems/posts/getting-started-with-hugo/">his own blog</a> has this setup as a guide anyone can follow. After that, Nix asks almost nothing.</p>
<p>Think of how a workshop fills up: tools bought at different times, some upgraded unnoticed, and no record of which is which. Reach for a mallet and whichever one is nearest comes to hand. Most package managers work like that workshop, grabbing the newest version of each tool and leaving it on the machine to age. Nix refuses to. It keeps one written list that names every tool and the model of each, the way a shadow board gives every tool its painted outline (Figure 4). Each time I start, it lays out a fresh bench stocked from that list and nothing else (<code>nix develop</code>), then clears it away when I am done. Nothing updates unless I ask. Next year that list lays out an identical bench, down to the last tool (Figure 5).</p>
<p><img loading="lazy" src="/images/001%20-%20shadow%20board%20on%20an%20icebreaker,%20max%20schiraldi.jpg" type="" alt="A white board fixed to a wall among pipes in a ship&rsquo;s engine room. Wrenches, sockets, a ratchet, screwdrivers, a knife and pliers hang on it, each inside its own outline drawn in red; a few outlines are empty, showing exactly which tools are out"  />
<em>Figure 4.</em> A shadow board in the engine room of an icebreaker. Every tool has its own outline, so an empty one shows which is missing. Photo by Max Schiraldi, 2012, CC BY-SA 4.0, via Wikimedia Commons.</p>
<div style="max-width:760px;margin:2.4rem auto;padding:1.6rem 1.5rem 1.4rem;background:#14161b;border:1px solid #2b303a;border-radius:14px;color:#e7eaef;font-family:'Source Serif 4',Georgia,serif;line-height:1.5">
<p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:#727a86;margin:0 0 .5rem"><i>Figure 5.</i> Personal branding comes down to a website you own</p>
<p style="font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:2rem;line-height:1.08;letter-spacing:-.01em;margin:0 0 .55rem">One Site, Three Possible Ways</p>
<div style="display:flex;align-items:stretch;gap:.5rem;flex-wrap:wrap;margin:0 0 1.6rem">
<div style="flex:1 1 148px;min-width:0;border:1px solid rgba(87,192,138,.35);background:rgba(87,192,138,.12);border-radius:11px;padding:.7rem .8rem"><p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:#57c08a;margin:0 0 .3rem">You wrote this</p><p style="font-family:'Source Serif 4',Georgia,serif;font-size:1.04rem;font-weight:600;margin:0;line-height:1.15">The words</p><p style="font-size:.78rem;color:#9aa2ae;margin:.28rem 0 0">A Markdown file you own.</p></div>
<div style="display:flex;align-items:center;justify-content:center;font-family:'Source Serif 4',Georgia,serif;font-size:1.4rem;color:#727a86">+</div>
<div style="flex:1 1 148px;min-width:0;border:1px solid rgba(207,123,114,.4);background:rgba(207,123,114,.12);border-radius:11px;padding:.7rem .8rem"><p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:#cf7b72;margin:0 0 .3rem">You never see this</p><p style="font-family:'Source Serif 4',Georgia,serif;font-size:1.04rem;font-weight:600;margin:0;line-height:1.15">The machine that runs them</p><p style="font-size:.78rem;color:#9aa2ae;margin:.28rem 0 0">Hidden, and different in each lane.</p></div>
<div style="display:flex;align-items:center;justify-content:center;font-family:'Source Serif 4',Georgia,serif;font-size:1.4rem;color:#727a86">=</div>
<div style="flex:1 1 148px;min-width:0;border:1px solid #2b303a;background:#171a20;border-radius:11px;padding:.7rem .8rem"><p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:#727a86;margin:0 0 .3rem">A visitor sees this</p><p style="font-family:'Source Serif 4',Georgia,serif;font-size:1.04rem;font-weight:600;margin:0;line-height:1.15">The site</p><p style="font-size:.78rem;color:#9aa2ae;margin:.28rem 0 0">Identical the day you build it.</p></div>
</div>
<p style="color:#9aa2ae;font-size:1.02rem;max-width:60ch;margin:0 0 1.6rem">That machine in the middle is where the three part ways. Two questions run down every stage: is it in your hands, and will it hold?</p>
<div style="overflow-x:auto"><div style="min-width:648px;border:1px solid #2b303a;border-radius:12px;overflow:hidden;display:grid;grid-template-columns:112px 1fr 1fr 1fr">
<div style="display:flex;align-items:flex-end;padding:.8rem .78rem;background:#14161b"><span style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.55rem;letter-spacing:.13em;text-transform:uppercase;color:#727a86;line-height:1.4">The<br>route</span></div>
<div style="display:flex;flex-direction:column;padding:.8rem .82rem;border-bottom:1px solid #2b303a;background:rgba(153,161,173,.07)"><p style="font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:1.16rem;line-height:1.12;margin:0;color:#99a1ad">Rent a platform</p><p style="font-size:.8rem;color:#9aa2ae;margin:.15rem 0 .1rem">A host hands you a template.</p><p style="font-size:.74rem;color:#727a86;margin:.35rem 0 .5rem">A few of many: Squarespace, Substack, Wix.</p><div style="margin-top:auto;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.09em;text-transform:uppercase;color:#727a86">Up-front effort <span style="color:#99a1ad;font-size:.72rem;letter-spacing:.12em">&#9679;<span style="opacity:.3">&#9679;&#9679;&#9679;</span></span></div></div>
<div style="display:flex;flex-direction:column;padding:.8rem .82rem;border-bottom:1px solid #2b303a;background:rgba(95,159,242,.09)"><p style="font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:1.16rem;line-height:1.12;margin:0;color:#5f9ff2">Hugo alone</p><p style="font-size:.8rem;color:#9aa2ae;margin:.15rem 0 .1rem">A site generator you run yourself.</p><p style="font-size:.74rem;color:#727a86;margin:.35rem 0 .5rem">Install it, theme it, host it.</p><div style="margin-top:auto;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.09em;text-transform:uppercase;color:#727a86">Up-front effort <span style="color:#5f9ff2;font-size:.72rem;letter-spacing:.12em">&#9679;&#9679;&#9679;<span style="opacity:.3">&#9679;</span></span></div></div>
<div style="display:flex;flex-direction:column;padding:.8rem .82rem;border-bottom:1px solid #2b303a;background:rgba(87,192,138,.12)"><p style="font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:1.16rem;line-height:1.12;margin:0;color:#57c08a">Nix + Hugo</p><div style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.53rem;letter-spacing:.1em;text-transform:uppercase;color:#57c08a;margin:.28rem 0 0">what this site runs on</div><p style="font-size:.8rem;color:#9aa2ae;margin:.28rem 0 .1rem">The same generator, pinned in place.</p><p style="font-size:.74rem;color:#727a86;margin:.35rem 0 .5rem">One file names every tool, once.</p><div style="margin-top:auto;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.09em;text-transform:uppercase;color:#727a86">Up-front effort <span style="color:#57c08a;font-size:.72rem;letter-spacing:.12em">&#9679;&#9679;&#9679;&#9679;</span></div></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:#14161b;display:flex;align-items:center"><b style="font-size:.86rem;font-weight:600;line-height:1.2">What it costs</b></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(153,161,173,.07);font-size:.87rem"><span style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#cf7b72">A fee, every month</span><p style="margin:.22rem 0 0">A subscription for as long as the site is up. Stop paying and it goes dark.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(95,159,242,.09);font-size:.87rem"><span style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a">Only a host</span><p style="margin:.22rem 0 0">The software costs nothing; you pay only for hosting you arrange.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(87,192,138,.12);font-size:.87rem"><span style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a">Only a small server</span><p style="margin:.22rem 0 0">The software costs nothing; you pay only for a small server to run it.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:#14161b;display:flex;align-items:center"><b style="font-size:.86rem;font-weight:600;line-height:1.2">Where your words live</b></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(153,161,173,.07);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#cf7b72"><span style="font-size:.72rem;line-height:1">&#9675;</span>Not in your hands</span><p style="margin:.22rem 0 0">In their editor, on their servers.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(95,159,242,.09);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Yours</span><p style="margin:.22rem 0 0">Plain text files on your own drive.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(87,192,138,.12);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Yours</span><p style="margin:.22rem 0 0">Plain text files on your own drive.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:#14161b;display:flex;align-items:center"><b style="font-size:.86rem;font-weight:600;line-height:1.2">Turning words into pages</b></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(153,161,173,.07);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#cf7b72"><span style="font-size:.72rem;line-height:1">&#9675;</span>Not yours to see</span><p style="margin:.22rem 0 0">They build the site their way, where you cannot look.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(95,159,242,.09);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#d9a441"><span style="font-size:.72rem;line-height:1">&#9681;</span>Depends on you</span><p style="margin:.22rem 0 0"><code style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.82em;color:#cdd3db">hugo</code> builds it, using whatever version you happen to have that day.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(87,192,138,.12);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Holds</span><p style="margin:.22rem 0 0"><code style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.82em;color:#cdd3db">nix build</code> uses the pinned tools and nothing else. The same site, every run.</p><div style="display:inline-block;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.54rem;letter-spacing:.07em;text-transform:uppercase;color:#57c08a;margin-top:.42rem;border:1px solid rgba(87,192,138,.35);border-radius:5px;padding:.08rem .34rem">first pin &middot; the tools</div></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:#14161b;display:flex;align-items:center"><b style="font-size:.86rem;font-weight:600;line-height:1.2">Your earlier versions</b></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(153,161,173,.07);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#d9a441"><span style="font-size:.72rem;line-height:1">&#9681;</span>Their limits</span><p style="margin:.22rem 0 0">Whatever undo they decide to give you.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(95,159,242,.09);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#d9a441"><span style="font-size:.72rem;line-height:1">&#9681;</span>Up to you</span><p style="margin:.22rem 0 0">Yours to set up. Easy to mean to, easy to skip.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(87,192,138,.12);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Holds</span><p style="margin:.22rem 0 0">A full history that never forgets, back to a misplaced comma.</p><div style="display:inline-block;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.54rem;letter-spacing:.07em;text-transform:uppercase;color:#57c08a;margin-top:.42rem;border:1px solid rgba(87,192,138,.35);border-radius:5px;padding:.08rem .34rem">second pin &middot; the history</div></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:#14161b;display:flex;align-items:center"><b style="font-size:.86rem;font-weight:600;line-height:1.2">Going live</b></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(153,161,173,.07);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#d9a441"><span style="font-size:.72rem;line-height:1">&#9681;</span>Their ground</span><p style="margin:.22rem 0 0">One click, on their domain, under their rules.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(95,159,242,.09);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#d9a441"><span style="font-size:.72rem;line-height:1">&#9681;</span>You wire it</span><p style="margin:.22rem 0 0">Copy the finished files to a host you arrange yourself.</p></div>
<div style="padding:.7rem .8rem;border-top:1px solid #22262e;background:rgba(87,192,138,.12);font-size:.87rem"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Holds</span><p style="margin:.22rem 0 0">One command puts it live. One command rolls it back.</p><div style="display:inline-block;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.54rem;letter-spacing:.07em;text-transform:uppercase;color:#57c08a;margin-top:.42rem;border:1px solid rgba(87,192,138,.35);border-radius:5px;padding:.08rem .34rem">third pin &middot; what is live</div></div>
<div style="padding:.72rem .8rem;border-top:2px solid #2b303a;background:#14161b;display:flex;align-items:center;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.11em;text-transform:uppercase;color:#727a86">The trade</div>
<div style="padding:.75rem .8rem;border-top:2px solid #2b303a;background:rgba(153,161,173,.07);font-size:.87rem;line-height:1.42">You rent the ground. Convenience today, nothing that stays yours.</div>
<div style="padding:.75rem .8rem;border-top:2px solid #2b303a;background:rgba(95,159,242,.09);font-size:.87rem;line-height:1.42">You own the words and the site. The route that makes them can still drift.</div>
<div style="padding:.75rem .8rem;border-top:2px solid #2b303a;background:rgba(87,192,138,.12);font-size:.87rem;line-height:1.42;font-weight:600">You own the ground, and it holds still. Rebuild it in a year and the same site comes back.</div>
</div></div>
<p style="margin:1rem 2px 0;font-size:.8rem;color:#9aa2ae;line-height:1.5;max-width:68ch">Renting is the easy path, and for most people the right one: least to set up, nothing to maintain. The rows above are what that ease costs.</p>
<p style="margin:1rem 2px 0;font-size:.8rem;color:#9aa2ae;line-height:1.5;max-width:68ch">A <b style="color:#57c08a">pin</b> is a fixed point you can always return to. Only the third lane puts any down, and it puts down three: one on the tools, one on the edit history, one on what is live.</p>
<div style="display:flex;flex-wrap:wrap;gap:1.1rem;margin:1rem 2px 0;font-size:.78rem;color:#9aa2ae"><span style="display:inline-flex;align-items:center;gap:.4rem"><b style="color:#57c08a;font-size:.85rem">&#9679;</b> Holds, and stays yours</span><span style="display:inline-flex;align-items:center;gap:.4rem"><b style="color:#d9a441;font-size:.85rem">&#9681;</b> Depends on you</span><span style="display:inline-flex;align-items:center;gap:.4rem"><b style="color:#cf7b72;font-size:.85rem">&#9675;</b> Not in your hands</span></div>
</div>
<p>Open the site&rsquo;s folder and Nix&rsquo;s written list is there, a real file named flake.lock. It lists every tool the site needs, each one beside a long string of letters and numbers that looks like nonsense. That string is the label on one particular mallet. Nix hands over that mallet and no other, however many newer mallets have piled up on the shelf since. When I want a newer version, I take one deliberate step (<code>nix flake update</code>), and the list changes on purpose.</p>
<p>flake.lock is why the site comes out identical on my laptop, on a borrowed laptop, and on a stranger&rsquo;s machine I will never touch. Identical here means every page a visitor sees. Whether Nix&rsquo;s whole collection of tools rebuilds identical down to the last byte is still an open question. As of 2025, only the small core that installs Nix&rsquo;s own operating system was being checked. What happens to a site with no such list?</p>
<h2 id="when-does-the-machine-move">When the Landmark Falls</h2>
<p>With no written list, Hugo is the landmark, and it has changed under sites that never changed a word (Figure 6). Change laptops, run one upgrade, or reinstall once, and the site gets a different Hugo without warning.</p>
<div style="max-width:760px;margin:2.4rem auto;padding:1.6rem 1.5rem 1.4rem;background:#14161b;border:1px solid #2b303a;border-radius:14px;color:#e7eaef;font-family:'Source Serif 4',Georgia,serif;line-height:1.5">
<p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:#727a86;margin:0 0 .5rem"><i>Figure 6.</i> Same words, a different Hugo</p>
<p style="font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:2rem;line-height:1.08;letter-spacing:-.01em;margin:0 0 .55rem">Three Times Hugo Moved</p>
<p style="color:#9aa2ae;font-size:1.02rem;max-width:60ch;margin:0 0 1.4rem">Each row is a change Hugo really made. Read down the middle, and your writing never changed. Read across, and the site changed anyway.</p>
<div style="overflow-x:auto"><div style="min-width:560px;border:1px solid #2b303a;border-radius:12px;overflow:hidden;display:grid;grid-template-columns:1.3fr .75fr 1.1fr">
<div style="padding:.55rem .8rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.11em;text-transform:uppercase;color:#727a86;background:#14161b">What Hugo changed</div><div style="padding:.55rem .8rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.11em;text-transform:uppercase;color:#727a86;background:#14161b;color:#57c08a">Your words</div><div style="padding:.55rem .8rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.11em;text-transform:uppercase;color:#727a86;background:#14161b;color:#cf7b72">What comes out</div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:#14161b"><p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:#727a86;margin:0 0 .3rem">2019 &middot; Hugo v0.60</p><p style="font-size:.94rem;font-weight:600;margin:0 0 .25rem">It swapped the engine</p><p style="font-size:.8rem;color:#9aa2ae;margin:0">The part that reads your writing went from Blackfriday to Goldmark.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:rgba(87,192,138,.08)"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Unchanged</span><p style="font-size:.8rem;color:#9aa2ae;margin:.22rem 0 0">Not one character.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:rgba(207,123,114,.07)"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#d9a441"><span style="font-size:.72rem;line-height:1">&#9681;</span>Builds, but wrong</span><p style="margin:.22rem 0 0">Spacing, quotes, and footnotes shift.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:#14161b"><p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:#727a86;margin:0 0 .3rem">2019 &middot; Hugo v0.60</p><p style="font-size:.94rem;font-weight:600;margin:0 0 .25rem">It hid raw HTML</p><p style="font-size:.8rem;color:#9aa2ae;margin:0">Anything built by hand in raw HTML, code written for the browser rather than for Hugo, stays hidden unless one setting is on.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:rgba(87,192,138,.08)"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Unchanged</span><p style="font-size:.8rem;color:#9aa2ae;margin:.22rem 0 0">Not one character.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:rgba(207,123,114,.07)"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#d9a441"><span style="font-size:.72rem;line-height:1">&#9681;</span>Builds, but wrong</span><p style="margin:.22rem 0 0">Figures like Figure 5 vanish from the page.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:#14161b"><p style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:#727a86;margin:0 0 .3rem">2024 &middot; Hugo v0.128</p><p style="font-size:.94rem;font-weight:600;margin:0 0 .25rem">It retired a setting</p><p style="font-size:.8rem;color:#9aa2ae;margin:0"><code style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.82em;color:#cdd3db">paginate</code>, a setting many themes (the ready-made designs a Hugo site wears) leaned on, became <code style="font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.82em;color:#cdd3db">pagination.pagerSize</code>. Later versions stop the build if a theme still uses the old name.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:rgba(87,192,138,.08)"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#57c08a"><span style="font-size:.72rem;line-height:1">&#9679;</span>Unchanged</span><p style="font-size:.8rem;color:#9aa2ae;margin:.22rem 0 0">Not one character.</p></div>
<div style="padding:.75rem .8rem;border-top:1px solid #22262e;font-size:.86rem;background:rgba(207,123,114,.07)"><span style="display:inline-flex;align-items:center;gap:.34rem;font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:.57rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:#cf7b72"><span style="font-size:.72rem;line-height:1">&#9675;</span>Will not build</span><p style="margin:.22rem 0 0">The build stops on an error you did not write. No site comes out at all.</p></div>
</div></div>
</div>
<p>Between the first two rows and the last, Hugo put out 68 new versions, by my count. None of the three changes is the writer&rsquo;s fault. The first two rows are quiet. The site still builds, so its owner may not notice for weeks. Every visitor does. The second row is the 2019 change from the opening, and it would reach this very page: leave that one switch off, and Figure 5 would be missing. The last row is loud. Nothing can be posted, nothing can be fixed fast, and there is no way back, because no one wrote down which Hugo made it work. It is the old fig tree again: the directions are still written down, and the thing they counted from is gone.</p>
<p>flake.lock names the one Hugo this site uses, and Nix fetches that version every time it builds. None of those three changes can reach this site until I choose to update, and if the newer Hugo breaks something, one step goes back to the Hugo that worked.</p>
<p>That file is the first pin. It names the exact spot, as a pin on the San Pedro corner would. A year later it leads back to the same ground, whether the fig tree stands or not.</p>
<p>The Sunday evening at the start of this page is the second row at home, with blank boxes in the family album. One question prevents that evening: which version of the tool made it work, and is that version written down anywhere? It is also the question to send a friend about to build a first website.</p>
<h2 id="how-does-the-machine-keep-a-way-back">How the Pins Lead Back</h2>
<p>I build every page of this website in one window, to the hum of a laptop fan. My files sit on one side and a terminal on the other, a plain box where I type short commands. When a new article is ready, two separate things happen, and for a long time I thought they were one.</p>
<p>The first is the edit history, kept by a tool called Git. I save the whole project as it stands (a commit), then send that saved copy somewhere safe off my laptop (a push). It lands on GitHub, a vault of every saved version I can step back to, down to a comma I fixed years ago. This never changes what a visitor sees. It changes what I can never lose. Because nothing is lost, I can rewrite a page or cut a whole section without fear. That is the second pin described in Figure 5: the history.</p>
<p>The second is publishing, and it does not pass through GitHub at all. Nix builds the finished site from the pinned tools and seals it into a single package (<code>nix build</code>). One command then hands the package up to my server, an always-on computer on the internet (<code>nix copy</code>). The server keeps every printing I have ever sent it, stacked in order. It shows one in the window, the way a print shop shows one sheet to the street. The same command moves the new printing into the window in one motion (<code>nix-env --set</code>), so no visitor ever lands on a half-posted page. When a printing comes out wrong, one command puts the last good one back (<code>nix-env --rollback</code>). In Figure 5, that is the third pin: what is live.</p>
<p>The printing in the window is barely a program. That is what &ldquo;static&rdquo; means in Hugo&rsquo;s description of itself: Hugo printed every page once, before any visitor arrived, so the pages do nothing but wait to be read. On the server, one small program (<code>nginx</code>) spends the day handing each visitor the page they asked for. It is the same page that answered an hour ago and will answer a year from now. Even the padlock a browser shows for a secure connection renews on its own.</p>
<p>The frightening pieces, Nix and the server, were set up once and have barely needed me since. They hold still in the background, and <a href="/essays/backstory/#why-statisticalsystems:~:text=The%20site%20sits%20on%20a%20domain%20I%20own">the writing is the one part left free to move</a>.</p>
<p>When the site came to me, most of it was not mine. It arrived with the placeholder life a ready-made theme ships with: an About page describing people who do not exist, a borrowed quote, a company that was never real. The parts worked. The person was missing. A foundation that holds still is what makes filling it safe. A real essay went where a fake case study used to be. My own question went in place of someone else&rsquo;s motivational line. My husband built the foundation. I am learning to fill it, <a href="/essays/the_dash_between_the_dates/#which-end-is-mine:~:text=A%20gap%20stays%20a%20hole">one true thing at a time</a>.</p>
<p>Most people are handed something finished: a spreadsheet a coworker built before leaving, a relative&rsquo;s recipe card, a friend&rsquo;s template for a wedding website. The decision comes before the first change. What does it run on, and is there a copy of the version that worked? Saving that copy takes five minutes on the first Monday back at work, and the next person to inherit the file starts with a way back. With that copy kept, the original can change, and the way back to it still has a pin on the map.</p>
<blockquote>
<p><strong>A Closing Invitation</strong>. <em>Directions counted from a fig tree stop working for newcomers once it falls, and so does anything handed over finished with no pin on what it runs on. Three pins hold the next one in place.</em></p>
<ol>
<li><em><strong>Find the fig tree.</strong> Before you get up, think of one thing handed to you already working, such as a spreadsheet a coworker built or the wifi router a landlord set up, and notice what it runs on. Who would you ask if it broke and the one who made it were gone?</em></li>
<li><em><strong>Put a pin on it.</strong> This Sunday, with the phone already in your hand, take a screenshot of one thing someone else set up for you, such as the shared budget sheet or the family calendar. The soft click is the pin going down. How many earlier versions have you already lost to edits you could not undo?</em></li>
<li><em><strong>Cook it twice.</strong> This weekend, cook one dish from a handed-down recipe card twice, once as written and once with one small change, for the aunt who wrote the card or the friend who first served it. Something may burn. A dish cooked from memory drifts a little every year. Which one tasted like theirs?</em></li>
</ol>
<p><em>The fig tree can fall and the pharmacy can keep its old address, and the pin still leads back to the same spot.</em></p></blockquote>
<figure class="takeaway" id="takeaway">
  <div class="takeaway-body">
  <div class="takeaway-head">
    <span class="takeaway-label">Worth remembering</span>
    <a class="takeaway-save" href="https://statistical.systems/images/takeaways/put_a_pin_on_it.png" download>Save as image</a>
  </div>
  <p class="takeaway-text">Your name goes on whatever you put online. People trust work they can rebuild over work that only looks good. Polish your portfolio all you like, but pin what it runs on and keep the version that worked.</p>
  </div>
  <img class="takeaway-mark" src="/images/mark-brain-heart.svg" alt="" width="78" height="78" loading="lazy">
</figure>

<h2 id="where-this-came-from">Where This Came From</h2>
<p>In the 2000s, a new fig tree of a different species was planted where the old one stood, and people still give directions from the old one. My husband&rsquo;s part in this piece is described with his permission.</p>
<p>A word on the title. To <em>put a pin on</em> something is the map gesture from the opening: press and hold, so the same ground can always be found again. It is the reverse of the everyday <em>put a pin in it</em>, which means to set a thing aside for later. The point is not to shelve what was handed over, but to mark where it stands.</p>
<p><strong>Intellectual Honesty Note.</strong> The quotes from <em>La Nación</em> are my translation from the Spanish. &ldquo;The part of itself that reads the writing&rdquo; stands for Hugo&rsquo;s Markdown engine. The deployment is told in fewer steps than it runs. The version strings pinned in flake.lock are left out of the text, and the Hugo versions in Figure 6 are public releases, not the ones this site runs.</p>
<p><strong>Intellectual Property Note.</strong> Nix, Hugo, GitHub, nginx, Squarespace, Substack and Wix are trademarks of their makers; naming them is not an endorsement by, or affiliation with, any of them. Figure 1 is reproduced from the Archivo Nacional de Costa Rica, the map in Figure 2 is drawn from OpenStreetMap data under the Open Database License, and the photographs in Figures 3 and 4 are from Wikimedia Commons under CC BY 2.5 and CC BY-SA 4.0. Apart from those and the two one-line descriptions quoted from the Hugo and Nix websites, nothing here is reproduced from another source.</p>
<h2 id="references">References</h2>
<p>Archivo Nacional de Costa Rica. (1982, August). <em>Fotografía de la esquina conocida como del Higuerón, en San Pedro de Montes de Oca, San José</em> (CR-AN-AH-FO-001635) [Photograph]. <a href="https://www.archivodigital.go.cr/index.php/fotografia-de-la-esquina-conocida-como-del-higueron-en-san-pedro-de-montes-de-oca-san-jose">https://www.archivodigital.go.cr/index.php/fotografia-de-la-esquina-conocida-como-del-higueron-en-san-pedro-de-montes-de-oca-san-jose</a></p>
<p>1a57danc3. (2024, December 29). <em>ERROR deprecated: site config key paginate was deprecated in Hugo v0.128.0 and will be removed in Hugo 0.141.0</em> (Issue #251). GitHub. <a href="https://github.com/nanxiaobei/hugo-paper/issues/251">https://github.com/nanxiaobei/hugo-paper/issues/251</a></p>
<p>Heidelbach, W. (2004, September 28). <em>Metal movable type</em> [Photograph]. Wikimedia Commons. CC BY 2.5. <a href="https://commons.wikimedia.org/wiki/File:Metal_movable_type.jpg">https://commons.wikimedia.org/wiki/File:Metal_movable_type.jpg</a></p>
<p>Holmes, R. (2025, March 11). <em>Deploying Hugo in NixOS</em>. paradigmatic.systems. <a href="https://paradigmatic.systems/posts/getting-started-with-hugo/">https://paradigmatic.systems/posts/getting-started-with-hugo/</a></p>
<p>Holmes, R. (2026, July 11). <em>Decoupling My Deployment Model</em>. paradigmatic.systems. <a href="https://paradigmatic.systems/posts/decoupling-deployment-model/">https://paradigmatic.systems/posts/decoupling-deployment-model/</a></p>
<p>Hugo Authors. (n.d.). <em>The world&rsquo;s fastest framework for building websites</em>. Retrieved October 9, 2026, from <a href="https://gohugo.io/">https://gohugo.io/</a></p>
<p>Hugo Authors. (n.d.). <em>Releases</em> [Software releases]. GitHub. Retrieved October 13, 2026, from <a href="https://github.com/gohugoio/hugo/releases">https://github.com/gohugoio/hugo/releases</a></p>
<p>Hugo Authors. (2019, November 27). <em>Hugo v0.60.0</em> [Release notes]. GitHub. <a href="https://github.com/gohugoio/hugo/releases/tag/v0.60.0">https://github.com/gohugoio/hugo/releases/tag/v0.60.0</a></p>
<p>Jonathan_Griffin. (2019, November 27). <em>Hugo 0.60.0 raw HTML omitted issue</em> [Online forum post]. HUGO Discourse. <a href="https://discourse.gohugo.io/t/hugo-0-60-0-raw-html-omitted-issue/22010">https://discourse.gohugo.io/t/hugo-0-60-0-raw-html-omitted-issue/22010</a></p>
<p>Malka, J. (2025, February 1). <em>How reproducible is NixOS?</em> [Conference presentation]. FOSDEM 2025, Brussels, Belgium. <a href="https://archive.fosdem.org/2025/schedule/event/fosdem-2025-4430-how-reproducible-is-nixos-/">https://archive.fosdem.org/2025/schedule/event/fosdem-2025-4430-how-reproducible-is-nixos-/</a></p>
<p>NixOS Contributors. (n.d.). <em>Nix &amp; NixOS: Declarative builds and deployments</em>. Retrieved October 9, 2026, from <a href="https://nixos.org/">https://nixos.org/</a></p>
<p>No hay antiguo ni nuevo higuerón. (2004, April 28). <em>La Nación</em>. <a href="https://www.nacion.com/el-pais/no-hay-antiguo-ni-nuevo-higueron/CVB24V4B5VFRTLGARZ4HHCH5II/story/">https://www.nacion.com/el-pais/no-hay-antiguo-ni-nuevo-higueron/CVB24V4B5VFRTLGARZ4HHCH5II/story/</a></p>
<p>OpenStreetMap contributors. (n.d.). <em>El Higuerón de San Pedro</em> [Map node, natural=tree]. Retrieved October 12, 2026, from <a href="https://www.openstreetmap.org/">https://www.openstreetmap.org/</a></p>
<p>San Pedro de Montes de Oca. (n.d.). In <em>Wikipedia, la enciclopedia libre</em>. Retrieved September 24, 2026, from <a href="https://es.wikipedia.org/wiki/San_Pedro_de_Montes_de_Oca">https://es.wikipedia.org/wiki/San_Pedro_de_Montes_de_Oca</a></p>
<p>Schiraldi, M. (2012, August 5). <em>Shadowboard</em> [Photograph]. Wikimedia Commons. CC BY-SA 4.0. <a href="https://commons.wikimedia.org/wiki/File:Shadowboard-mmschiraldi.jpg">https://commons.wikimedia.org/wiki/File:Shadowboard-mmschiraldi.jpg</a></p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
