<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Thylacine</title>
    <subtitle>Notes on an operating system.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://aip.treeso.net/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://aip.treeso.net"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-08-17T00:00:00+00:00</updated>
    <id>https://aip.treeso.net/atom.xml</id>
    <entry xml:lang="en">
        <title>Type specimen</title>
        <published>2026-08-17T00:00:00+00:00</published>
        <updated>2026-08-17T00:00:00+00:00</updated>
        
        <author>
          <name>Michal Frdlik</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://aip.treeso.net/articles/specimen/"/>
        <id>https://aip.treeso.net/articles/specimen/</id>
        
        <content type="html" xml:base="https://aip.treeso.net/articles/specimen/">&lt;p&gt;This page exists to be looked at, not read. It exercises every element the
templates render, so a change to &lt;code&gt;sass/style.scss&lt;/code&gt; can be checked against one
page instead of against a memory of what the site used to look like.&lt;/p&gt;
&lt;p&gt;The palette is &lt;strong&gt;Bonfire&lt;/strong&gt;, committed in the Thylacine tree at
&lt;code&gt;docs/UTOPIA-VISUAL.md&lt;/code&gt; §1. Its background is &lt;code&gt;#0e0c0c&lt;/code&gt; – not red, not warm
grey, but near-black with a barely perceptible red cast, the way darkness looks
when a fire a few hundred metres away cannot illuminate anything and only
shifts the colour temperature of the air.&lt;/p&gt;
&lt;h2 id=&quot;prose&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#prose&quot; aria-label=&quot;Anchor link for: prose&quot;&gt;Prose&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Body text is &lt;code&gt;fg&lt;/code&gt;, &lt;code&gt;#e4ddd8&lt;/code&gt;. &lt;em&gt;Emphasis&lt;/em&gt; and &lt;strong&gt;strong&lt;/strong&gt; carry the usual weight.
Inline code such as &lt;code&gt;burrow_attach&lt;/code&gt; sits on the lifted &lt;code&gt;surface&lt;/code&gt; tone. Links
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.getzola.org/&quot;&gt;look like this&lt;/a&gt; and underline on hover.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A blockquote takes the ember rule on its left edge. The shell yields commands
to the kernel; every invocation is a derivation, which is what the mark means.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Footnotes work and land at the bottom of the article.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;1&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;/sup&gt;
&lt;p&gt;Like so. The return arrow is generated by the markdown renderer.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&quot;a-third-level-heading&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#a-third-level-heading&quot; aria-label=&quot;Anchor link for: a-third-level-heading&quot;&gt;A third-level heading&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Every heading gets an anchor link, so a paragraph deep in a long article stays
addressable. Hover a heading to see it.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ordered lists number themselves.&lt;/li&gt;
&lt;li&gt;And nest:
&lt;ul&gt;
&lt;li&gt;like this,&lt;/li&gt;
&lt;li&gt;and this.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;code&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#code&quot; aria-label=&quot;Anchor link for: code&quot;&gt;Code&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Highlighting comes from a Bonfire theme in &lt;code&gt;extra/bonfire.json&lt;/code&gt;, rendered as CSS
classes rather than inline styles. The colours are the committed palette, so a
code block here and the same code in &lt;code&gt;nora&lt;/code&gt; are the same colours – not an
approximation of them.&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;rust&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-2 z-i&quot;&gt;/// The client half of the graphics protocol.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;pub struct&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; Surface&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    weave&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; Fd&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    slots&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; usize&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    generation&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; u32&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;impl&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; Surface&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;    pub fn&lt;/span&gt;&lt;span class=&quot;z-7&quot;&gt; present&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&amp;amp;&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt;mut self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;,&lt;/span&gt;&lt;span&gt; rect&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; Rect&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;) -&amp;gt;&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; Result&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;&amp;lt;(),&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt; TapError&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;&amp;gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;        let&lt;/span&gt;&lt;span&gt; tag&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt; self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;ring&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;z-7&quot;&gt;submit&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt;Op&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;z-4&quot;&gt;Present&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; {&lt;/span&gt;&lt;span&gt; rect&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;,&lt;/span&gt;&lt;span&gt; slot&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt; self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;slot &lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;})?;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;        loop&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;            match self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;ring&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;z-7&quot;&gt;reap&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;()? {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-4&quot;&gt;                Some&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span&gt;cqe&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt; if&lt;/span&gt;&lt;span&gt; cqe&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;tag &lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;==&lt;/span&gt;&lt;span&gt; tag&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; =&amp;gt;&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt; break&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-4&quot;&gt;                Some&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span&gt;cqe&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;) =&amp;gt;&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt; self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;pending&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;z-7&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span&gt;cqe&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-4&quot;&gt;                None&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; =&amp;gt;&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt; continue&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;            }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;        self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;slot &lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;= (&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;slot &lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;z-8&quot;&gt; 1&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;) %&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt; self&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;.&lt;/span&gt;&lt;span&gt;slots&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-4&quot;&gt;        Ok&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(())&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;c&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-2 z-i&quot;&gt;/* Extinction Level Event -- the thematic name for a kernel panic. */&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;void&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;extinction&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;z-3&quot;&gt;const char&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; *&lt;/span&gt;&lt;span&gt;msg&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;    int&lt;/span&gt;&lt;span&gt; cpu &lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-7&quot;&gt; cpu_id&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-3&quot;&gt;    if&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; (&lt;/span&gt;&lt;span&gt;g_extinction_depth&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;[&lt;/span&gt;&lt;span&gt;cpu&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;]++ &amp;gt;&lt;/span&gt;&lt;span class=&quot;z-8&quot;&gt; 0&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;        _hang&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;    uart_puts&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;z-6&quot;&gt;&amp;quot;\nEXTINCTION: &amp;quot;&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;    uart_puts&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span&gt;msg&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;    uart_puts&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;z-6&quot;&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;    halls_dump&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;    _hang&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-5&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;z-11 z-b&quot;&gt;markdown&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span class=&quot;z-11 z-b&quot;&gt;highlighting&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;style&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;z-6&quot;&gt; &amp;quot;class&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;theme&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;z-6&quot;&gt; &amp;quot;bonfire&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;extra_themes&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt; = [&lt;/span&gt;&lt;span class=&quot;z-6&quot;&gt;&amp;quot;extra/bonfire.json&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-2 z-i&quot;&gt;# The SMP soundness gate. Single boots lie.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-7&quot;&gt;tools/ci-smp-gate.sh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;SMP_GATE_CONFIGS&lt;/span&gt;&lt;span class=&quot;z-5&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;z-6&quot;&gt;&amp;quot;default-smp4 ubsan-smp4&amp;quot;&lt;/span&gt;&lt;span class=&quot;z-7&quot;&gt; tools/ci-smp-gate.sh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A block with no language declared falls back to plain text:&lt;/p&gt;
&lt;pre class=&quot;giallo z-code&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Thylacine v0.1-dev booting...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  arch: arm64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  cpus: 4&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Thylacine boot OK&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;tables&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#tables&quot; aria-label=&quot;Anchor link for: tables&quot;&gt;Tables&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Role&lt;/th&gt;&lt;th&gt;Hex&lt;/th&gt;&lt;th&gt;Use&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;bg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#0e0c0c&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Warm near-black&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;fg&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#e4ddd8&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Primary text&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;ember&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#e07840&lt;/code&gt;&lt;/td&gt;&lt;td&gt;The prompt glyph, the cursor, the fire&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;slate&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#8a9ac8&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Keywords, control flow&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;dusk&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#a898c8&lt;/code&gt;&lt;/td&gt;&lt;td&gt;String literals&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;smoke&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#7a8a7a&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Comments&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Wide tables scroll inside their own container rather than pushing the page
sideways.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;A horizontal rule above. Below it, the end of the specimen.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Colophon</title>
        <published>2026-08-16T00:00:00+00:00</published>
        <updated>2026-08-16T00:00:00+00:00</updated>
        
        <author>
          <name>Michal Frdlik</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://aip.treeso.net/articles/colophon/"/>
        <id>https://aip.treeso.net/articles/colophon/</id>
        
        <content type="html" xml:base="https://aip.treeso.net/articles/colophon/">&lt;p&gt;This site is &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://www.getzola.org/&quot;&gt;Zola&lt;/a&gt; — a static site generator that is
a single Rust binary with no runtime, no plugin ecosystem and no dependency
tree. There is nothing to install, nothing to keep patched, and a checkout in
five years still builds. For a site whose entire job is to serve a few articles
about an operating system, that is the correct amount of machinery.&lt;/p&gt;
&lt;p&gt;It is served from Cloudflare, built from a pinned Zola binary that the build
script downloads itself rather than one the platform provides.&lt;/p&gt;
&lt;h2 id=&quot;the-palette-is-not-a-stylistic-choice&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-palette-is-not-a-stylistic-choice&quot; aria-label=&quot;Anchor link for: the-palette-is-not-a-stylistic-choice&quot;&gt;The palette is not a stylistic choice&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The colours are &lt;strong&gt;Bonfire&lt;/strong&gt;, and they are not chosen to suit a website. They
are transcribed from &lt;code&gt;docs/UTOPIA-VISUAL.md&lt;/code&gt; in the Thylacine tree, where they
are committed scripture governing the shell, the editor and the terminal
configuration the system ships.&lt;/p&gt;
&lt;p&gt;The background is &lt;code&gt;#0e0c0c&lt;/code&gt;: near-black with a barely perceptible red cast — the
way darkness looks when a fire a few hundred metres away cannot illuminate
anything and only shifts the colour temperature of the air. The prompt glyph
&lt;code&gt;⊢&lt;/code&gt; in &lt;code&gt;#e07840&lt;/code&gt; belongs to that air rather than contrasting against it.&lt;/p&gt;
&lt;p&gt;The syntax highlighting matters more than it looks. Zola 0.22 replaced its
highlighter with &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https://github.com/getzola/giallo&quot;&gt;giallo&lt;/a&gt;, which consumes
VSCode-format themes, so the seven Bonfire syntax hues are a theme file rather
than an approximation in CSS:&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Role&lt;/th&gt;&lt;th&gt;Hex&lt;/th&gt;&lt;th&gt;Used for&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;slate&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#8a9ac8&lt;/code&gt;&lt;/td&gt;&lt;td&gt;keywords, control flow, storage&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;sage&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#8ab8a8&lt;/code&gt;&lt;/td&gt;&lt;td&gt;types, structs, imports&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;sand&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#c8a882&lt;/code&gt;&lt;/td&gt;&lt;td&gt;members, attributes, fields&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;moss&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#b8d098&lt;/code&gt;&lt;/td&gt;&lt;td&gt;constants, macros, enum variants&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;ash&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#b07060&lt;/code&gt;&lt;/td&gt;&lt;td&gt;function names, identifiers&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;dusk&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#a898c8&lt;/code&gt;&lt;/td&gt;&lt;td&gt;string literals&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;smoke&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;#7a8a7a&lt;/code&gt;&lt;/td&gt;&lt;td&gt;comments&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;A code block on this page is therefore rendered in the same values as the same
code in the system’s own editor. Not similar values — the same ones, checked at
build time out of one file.&lt;/p&gt;
&lt;h2 id=&quot;what-is-deliberately-absent&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-is-deliberately-absent&quot; aria-label=&quot;Anchor link for: what-is-deliberately-absent&quot;&gt;What is deliberately absent&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;No webfonts, no analytics, no third-party requests of any kind. The recommended
Utopia typeface is PragmataPro, which is commercial and not bundled, so the
stylesheet asks for it and falls through to a system monospace for everyone who
does not own it. Nothing here phones home, and the page works with JavaScript
disabled because there is none.&lt;/p&gt;
</content>
        
    </entry>
</feed>
