<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Writing — Richard Polzin</title>
    <link>https://www.richardpolzin.com/blog/</link>
    <atom:link href="https://www.richardpolzin.com/blog/feed.xml" rel="self" type="application/rss+xml"/>
    <description>Notes on machine learning in medicine, research computing, and the parts of the work that don’t fit in a paper.</description>
    <language>en</language>
    <managingEditor>richard.polzin@posteo.de (Richard Polzin)</managingEditor>
    <lastBuildDate>Sat, 05 Sep 2026 09:00:00 +0000</lastBuildDate>
    <item>
      <title>A sample post, for checking the layout</title>
      <link>https://www.richardpolzin.com/blog/sample-post/</link>
      <guid isPermaLink="true">https://www.richardpolzin.com/blog/sample-post/</guid>
      <pubDate>Sat, 05 Sep 2026 09:00:00 +0000</pubDate>
      <description>Not a real post — a stand-in with enough headings, code, tables and quotations in it to see whether the blog reads well before there is anything worth reading.</description>
      <category>sample</category>
      <category>delete me</category>
      <content:encoded><![CDATA[<p>This post exists so there is something on the page. Delete <code>posts/2026-09-05-sample-post.md</code>
once you have looked at it and the archive goes quiet again.</p>
<p>Everything below is here to occupy the layout the way real writing would: a few
paragraphs of ordinary prose, long enough to see the measure and the line height
doing their job, broken up by the things a technical post tends to need.</p>
<h2 id="a-heading-and-the-prose-under-it">A heading, and the prose under it<a class="headerlink" href="#a-heading-and-the-prose-under-it" title="Link to this section">#</a></h2>
<p>The column is set to 68 characters, which is a little wider than the homepage&rsquo;s
card copy and about right for sustained reading. Hover a heading and an anchor
appears to its left, so a paragraph can be linked to directly rather than
gestured at.</p>
<p>Inline things behave: <strong>bold</strong>, <em>italic</em>, <code>inline code</code>, and
<a href="https://www.richardpolzin.com/">a link</a> that underlines by default and drops the
underline on hover, which is the opposite of the usual convention and reads
better against warm paper.</p>
<h3 id="a-sub-heading">A sub-heading<a class="headerlink" href="#a-sub-heading" title="Link to this section">#</a></h3>
<p>Lists sit close under their introduction:</p>
<ul>
<li>Something observed</li>
<li>Something measured</li>
<li>Something that turned out to be a logging bug<ul>
<li>as these things often do</li>
</ul>
</li>
</ul>
<p>Numbered, when order matters:</p>
<ol>
<li>Fit on the development cohort</li>
<li>Freeze everything</li>
<li>Only then look at the held-out site</li>
</ol>
<blockquote>
<p>Withholding the test set is easy. Withholding it from yourself, over eighteen
months, while a reviewer asks why the numbers are not better — that is the part
nobody writes a method section about.</p>
</blockquote>
<h2 id="code">Code<a class="headerlink" href="#code" title="Link to this section">#</a></h2>
<p>A labelled block gets syntax colours tuned to this palette rather than a stock
theme, so it reads as part of the page:</p>
<div class="codehilite"><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">windows</span><span class="p">(</span><span class="n">series</span><span class="p">,</span> <span class="n">hours</span><span class="o">=</span><span class="mi">72</span><span class="p">,</span> <span class="n">stride</span><span class="o">=</span><span class="mi">6</span><span class="p">):</span>
<span class="w">    </span><span class="sd">"""Slice a record into the windows the model forecasts from."""</span>
    <span class="k">for</span> <span class="n">start</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">series</span><span class="p">)</span> <span class="o">-</span> <span class="n">hours</span><span class="p">,</span> <span class="n">stride</span><span class="p">):</span>
        <span class="k">yield</span> <span class="n">series</span><span class="p">[</span><span class="n">start</span><span class="p">:</span><span class="n">start</span> <span class="o">+</span> <span class="n">hours</span><span class="p">]</span>
</code></pre></div>

<div class="codehilite"><pre><span></span><code><span class="ch">#!/usr/bin/env bash</span>
<span class="c1">#SBATCH --job-name=sample</span>
<span class="c1">#SBATCH --time=00:30:00</span>

srun<span class="w"> </span>python<span class="w"> </span>train.py<span class="w"> </span>--seed<span class="w"> </span><span class="s2">"</span><span class="nv">$SLURM_ARRAY_TASK_ID</span><span class="s2">"</span>
</code></pre></div>

<p>Leave the language off and the block stays plain, which is what you want for a
log or a terminal transcript:</p>
<div class="codehilite"><pre><span></span><code>2026-09-05 10:14:02  fold 3/5  auroc 0.871  auprc 0.412
2026-09-05 10:19:47  fold 4/5  auroc 0.864  auprc 0.398
</code></pre></div>

<h2 id="a-table">A table<a class="headerlink" href="#a-table" title="Link to this section">#</a></h2>
<p>Wide tables scroll inside their own container rather than pushing the page
sideways on a phone.</p>
<div class="table-wrap"><table>
<thead>
<tr>
<th>Cohort</th>
<th>Patients</th>
<th>AUROC</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>Development</td>
<td>4,182</td>
<td>0.871</td>
<td>Single centre, five-fold CV</td>
</tr>
<tr>
<td>Internal held-out</td>
<td>1,044</td>
<td>0.858</td>
<td>Same centre, later admissions</td>
</tr>
<tr>
<td>External site A</td>
<td>913</td>
<td>0.792</td>
<td>Different ventilator protocol</td>
</tr>
<tr>
<td>External site B</td>
<td>671</td>
<td>0.744</td>
<td>Sparser labs, more imputation<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup></td>
</tr>
</tbody>
</table></div>
<hr />
<p>A horizontal rule marks a break in thought without needing a heading. After it,
one more paragraph, so the article footer is not sitting immediately under a
line, and the whole thing ends the way a real post would — with something a
little quieter than it started.</p>
<div class="footnote">
<hr />
<ol>
<li id="fn:1">
<p>Footnotes collect at the foot of the post with a link back to where you were reading.&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
</li>
</ol>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>
