<?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>Bongo Twisty</title><link>https://www.bongotwisty.blog/</link><description>Recent content on Bongo Twisty</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><managingEditor>bongotwisty@pm.me (Bongo Twisty)</managingEditor><webMaster>bongotwisty@pm.me (Bongo Twisty)</webMaster><copyright>© 2025 A J Turner</copyright><lastBuildDate>Sun, 06 Jul 2025 13:32:00 +0100</lastBuildDate><atom:link href="https://www.bongotwisty.blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Dunkirk - Brandenburg Gate - Dusseldorf Loop</title><link>https://www.bongotwisty.blog/dunkirk_brandenburg_gate_dusseldorf_loop/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/dunkirk_brandenburg_gate_dusseldorf_loop/</guid><description>&lt;p&gt;In a few hours time I&amp;rsquo;ll be setting off on my fully loaded steel touring bike (it weighs a ton) down to Dover. I have booked a ferry over to Dunkirk sailing at 6.00 am. When I booked the ferry I was focused on wringing out the most time possible I have off work before coming back on the 30th May. Now I&amp;rsquo;m thinking a few hours here and there wouldn&amp;rsquo;t make much difference and only a crazy fool sets off on a two week bike ride at midnight. Ahh well - I shall look back on the decision and laugh about it some time in the future.&lt;/p&gt;</description><content:encoded><![CDATA[<p>In a few hours time I&rsquo;ll be setting off on my fully loaded steel touring bike (it weighs a ton) down to Dover. I have booked a ferry over to Dunkirk sailing at 6.00 am. When I booked the ferry I was focused on wringing out the most time possible I have off work before coming back on the 30th May. Now I&rsquo;m thinking a few hours here and there wouldn&rsquo;t make much difference and only a crazy fool sets off on a two week bike ride at midnight. Ahh well - I shall look back on the decision and laugh about it some time in the future.</p>
<p>I&rsquo;ve <a href="https://ridewithgps.com/collections/9582118">planned a ride</a> from Dunkirk, through Belgium, across the Netherlands, into Germany and onward to Berlin. The Brandenburg Gate marks the outward destination. From there I head back towards Dusseldorf, into Belgium, then to France and once more to Dunkirk.</p>


<a href="/dunkirk_brandenburg_gate_dusseldorf_loop/cover.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/dunkirk_brandenburg_gate_dusseldorf_loop/cover_hu_162e16aa07255b35.jpg" alt="A wide map view of northern France, Belgium, the Netherlands, and northern Germany showing a multi-day cycling route made up of several coloured GPS tracks. The route begins near Dunkirk on the French coast, passes through or near Antwerp, Eindhoven, Arnhem and Apeldoorn, then continues east across Germany through cities such as Osnabrück, Bremen, Magdeburg and towards Berlin. Each day or segment is shown in a different colour (red, blue, green, orange, purple, black) overlaid on a detailed road and place-name basemap" loading="lazy" style="display: inline-block;">
      </a><p>I chose the Brandenburg Gate mainly because it&rsquo;s about as far as I can ride East (hopefully with the wind behind me) and have enough time to ride back for the ferry home on the 30th. It&rsquo;s historic location was to be honest an after thought.</p>
<p>I&rsquo;ve split the distance up into 10 segments of about the same length - 205 km or so. I can ride 200 hilly kilometres in about 10 hours. I figure I&rsquo;ll be able to do about the same on a fully loaded bike over flatter terrain in about the same time. Day afer day will take it&rsquo;s toll but going on <a href="https://ridewithgps.com/collections/3338952">past experience</a> I should be alright. It doesn&rsquo;t matter much if it takes any longer since I have not booked anywhere to stay and will pitch a tent or lay down a bivy wherever seems suitable to do so at the end of each days ride. Plenty of campsites along the way should they be needed. There&rsquo;s a bit of wiggle room for shorter days if it gets a bit too much from time to time.</p>
<p>Last year at I rode along the south and up the <a href="https://www.bongotwisty.blog/gallery/cycling/ireland/">west coast of Ireland</a> in May. The year before from South Foreland Point near Dover up to <a href="https://www.bongotwisty.blog/cape_wrath/">Cape Wrath</a> on the north west tip of Scotland. I used <a href="https://cycle.travel">cycle.travel</a> for mapping out both rides. It did a great job of selecting quiet, scenic roads on both occasions so I have used it again for this journey. I transfer the GPX files to <a href="https://ridewithgps.com/users/151788">Ride with GPS</a> which I sync with the Hammerhead Karoo on my bike for navigation. It works well.</p>
<p>In terms of lights and charging the Karoo and phone - I have a dynamo hub which I connect to a power bank and top that up as I ride in day light hours and charge the devices from it when I stop at night. If riding after dark I use the dynamo to power my lights.</p>
<p>Although I will never be that far from somewhere to buy food and drink I like to take a small stove with me to heat up water for a hot drink and noodles/soup at the start and end of each day so as not to be searching for someplace to get food and drink at those times. I have a well worn Trangia 25-2 Aluminium Cookset with Kettle and Spirit Burner and carry methylated spirts on my bike. Can you see how the weight slowly adds up?</p>
<p>It&rsquo;s a choice between travelling light and or taking panniers. Since I choose to take panniers I also have a rack and you know how it is - the more carrying space you have the more you end up carrying to fill the room there is. All packed now. Whatever I may have forgotten I shall be going without it now.</p>
<p>My friend Dave will be riding with me. He&rsquo;s travelling much lighter. That&rsquo;s in terms of the bike he is riding and what he is taking with him. We&rsquo;ve ridden <a href="https://goinglong.co.uk/the-giant-circle-englands-biggest-circle-1000km-two-nights-broken-ribs/">plenty of miles together</a> and are both happy with the principle of, &ldquo;you do you&rdquo;. This is just what we will be doing. Really looking forward to it. Hopefully we&rsquo;ll finish the ride together this time.</p>
<p>Last year and the year before it was much warmer in May. The weather today has been horrible. Cold, wet and windy. No rain forecast for tonight. Hope it warms up a bit over the next two weeks.</p>
<p>No blog updates till I get back but do intend to post updates on progress and pictures to my <a href="https://social.vivaldi.net/@BongoTwisty">Mastodon account</a> most days.</p>
<p>Not long now. Just a few hours before the off&hellip;</p>
]]></content:encoded></item><item><title>Views of Earth</title><link>https://www.bongotwisty.blog/wallpaper/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/wallpaper/</guid><description>&lt;p&gt;Every fifteen minutes or so, I have my desktop wallpaper changing to a fresh satellite image of Earth. Sometimes it shows Africa and Europe from the &lt;a href="https://www.eumetsat.int/our-satellites/meteosat-series"&gt;Meteosat&lt;/a&gt; satellite. Sometimes it shifts to the Pacific and Australasia, seen from Japan&amp;rsquo;s &lt;a href="https://www.data.jma.go.jp/mscweb/data/himawari/"&gt;Himawari-9&lt;/a&gt;. Both are near real-time images from geostationary satellites orbiting above the equator.&lt;/p&gt;
&lt;p&gt;Here is how to cook it up on Debian 13 (Trixie) with KDE Plasma 6 on Wayland.&lt;/p&gt;
&lt;h3 id="ingrediants"&gt;Ingrediants&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Debian 13 (Trixie) with KDE Plasma 6, running a Wayland session&lt;/p&gt;</description><content:encoded><![CDATA[<p>Every fifteen minutes or so, I have my desktop wallpaper changing to a fresh satellite image of Earth. Sometimes it shows Africa and Europe from the <a href="https://www.eumetsat.int/our-satellites/meteosat-series">Meteosat</a> satellite. Sometimes it shifts to the Pacific and Australasia, seen from Japan&rsquo;s <a href="https://www.data.jma.go.jp/mscweb/data/himawari/">Himawari-9</a>. Both are near real-time images from geostationary satellites orbiting above the equator.</p>
<p>Here is how to cook it up on Debian 13 (Trixie) with KDE Plasma 6 on Wayland.</p>
<h3 id="ingrediants">Ingrediants</h3>
<ul>
<li>
<p>Debian 13 (Trixie) with KDE Plasma 6, running a Wayland session</p>
</li>
<li>
<p><a href="https://github.com/boramalper/himawaripy">Himawaripy</a>: a Python tool that downloads the latest image from Japan&rsquo;s Himawari-9 weather satellite, centred over the Pacific. It saves a timestamped PNG to a local folder.<br>
The project is no longer maintained but continues to work just fine. I installed it via <code>pipx</code> rather than <code>apt</code> because it is not packaged in Debian, and requires <code>setuptools</code> to be manually injected as a dependency after installation.</p>
</li>
<li>
<p>A custom shell script to download the latest natural colour image from EUMETSAT&rsquo;s Meteosat satellite, centred over Africa and Europe. No account or API key required.</p>
</li>
<li>
<p><a href="https://github.com/varietywalls/variety">Variety</a>: a wallpaper manager that rotates through images in a local folder on a schedule, calling a custom script to apply each one.</p>
</li>
<li>
<p>plasma-apply-wallpaperimage: the tool I use for changing wallpapers on KDE Plasma 6 with Wayland. The older <code>qdbus</code>/<code>dbus-send</code> approach used in other guides does not work on Wayland.</p>
</li>
</ul>
<h3 id="method">Method</h3>
<h3 id="step-1-install-pipx-and-himawaripy">Step 1: Install pipx and Himawaripy</h3>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>sudo apt install pipx
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>pipx ensurepath</span></span></code></pre></div>
<p>and then:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>pipx install himawaripy
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>pipx inject himawaripy setuptools</span></span></code></pre></div>
<p><em>Himawaripy was written to download imagery from the Himawari-8 satellite. Himawari-9 replaced Himawari-8 as the operational satellite but uses an identical data format and feed structure, so Himawaripy continues to work without modification.</em></p>
<h3 id="step-2-create-the-image-folders">Step 2: Create the Image Folders</h3>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>mkdir -p ~/.himawari ~/.eumetsat ~/.satellite-wallpapers
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>ln -s ~/.himawari ~/.satellite-wallpapers/himawari
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">3</span><span>ln -s ~/.eumetsat ~/.satellite-wallpapers/eumetsat</span></span></code></pre></div>
<h3 id="step-3-create-the-eumetsat-download-script">Step 3: Create the EUMETSAT Download Script</h3>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 1</span><span>cat &gt; ~/.local/bin/eumetsat-download <span style="color:#a6e3a1">&lt;&lt; &#39;EOF&#39;
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 2</span><span><span style="color:#a6e3a1">#!/bin/bash
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 3</span><span><span style="color:#a6e3a1">OUTDIR=&#34;$HOME/.eumetsat&#34;
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 4</span><span><span style="color:#a6e3a1">TIMESTAMP=$(date -u +&#34;%Y%m%dT%H%M00&#34;)
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 5</span><span><span style="color:#a6e3a1">OUTFILE=&#34;$OUTDIR/meteosat-${TIMESTAMP}.jpg&#34;
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 6</span><span><span style="color:#a6e3a1">if [ ! -f &#34;$OUTFILE&#34; ]; then
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 7</span><span><span style="color:#a6e3a1">    curl -sf &#34;https://eumetview.eumetsat.int/static-images/latestImages/EUMETSAT_MSG_RGBNatColour_FullResolution.jpg&#34; \
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 8</span><span><span style="color:#a6e3a1">        -o &#34;$OUTFILE&#34; &amp;&amp; echo &#34;Downloaded: $OUTFILE&#34;
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 9</span><span><span style="color:#a6e3a1">    ls -t &#34;$OUTDIR&#34;/meteosat-*.jpg | tail -n +7 | xargs -r rm
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">10</span><span><span style="color:#a6e3a1">fi
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">11</span><span><span style="color:#a6e3a1">EOF</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">12</span><span>chmod +x ~/.local/bin/eumetsat-download</span></span></code></pre></div>
<p>The script adds a UTC timestamp to each filename so Variety and <code>plasma-apply-wallpaperimage</code> always recognise it as a new image. It also keeps only the six most recent images to save disk space.</p>
<h3 id="step-4-test-both-sources">Step 4: Test Both Sources</h3>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>himawaripy --auto-offset -l <span style="color:#fab387">4</span> --dont-change --output-dir ~/.himawari
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>eumetsat-download
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">3</span><span>ls ~/.himawari ~/.eumetsat</span></span></code></pre></div>
<p>Each folder should now contain one timestamped image.</p>
<h3 id="step-5-set-up-cron-jobs">Step 5: Set Up Cron Jobs</h3>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>crontab -e</span></span></code></pre></div>
<p>Add both lines:</p>






<pre tabindex="0"><code class="language-cron" data-lang="cron">*/10 * * * * /home/YOUR_USERNAME/.local/bin/himawaripy --auto-offset -l 4 --dont-change --output-dir /home/YOUR_USERNAME/.himawari
*/15 * * * * /home/YOUR_USERNAME/.local/bin/eumetsat-download</code></pre>
<p>The <code>--auto-offset</code> flag automatically calculates the correct time offset for the satellite feed, and <code>-l 4</code> sets the resolution level with level 4 being the highest available.<br>
The <code>--dont-change</code> flag tells Himawaripy to download the image without trying to change the wallpaper itself, leaving that to Variety and the shell script.</p>
<p>Himawari-9 updates every 10 minutes; Meteosat updates every 15 minutes.</p>
<h3 id="step-6-install-variety-and-create-the-wallpaper-script">Step 6: Install Variety and Create the Wallpaper Script</h3>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>sudo apt install variety
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>mkdir -p ~/.config/variety/scripts
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">3</span><span>cat &gt; ~/.config/variety/scripts/set_wallpaper <span style="color:#a6e3a1">&lt;&lt; &#39;EOF&#39;
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">4</span><span><span style="color:#a6e3a1">#!/bin/bash
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">5</span><span><span style="color:#a6e3a1">echo &#34;$(date) set_wallpaper called with: $1&#34; &gt;&gt; /tmp/variety_wallpaper.log
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">6</span><span><span style="color:#a6e3a1">plasma-apply-wallpaperimage --fill-mode preserveAspectFit &#34;$1&#34; &gt;&gt; /tmp/variety_wallpaper.log 2&gt;&amp;1
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">7</span><span><span style="color:#a6e3a1">EOF</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">8</span><span>chmod +x ~/.config/variety/scripts/set_wallpaper</span></span></code></pre></div>
<p>The <code>--fill-mode preserveAspectFit</code> flag ensures the full Earth image is always visible against the black of space, rather than being cropped to fill the screen.</p>
<h3 id="step-7-configure-variety">Step 7: Configure Variety</h3>
<p>Open Variety preferences from the system tray:</p>
<ul>
<li><strong>Sources</strong> tab: Add <code>~/.satellite-wallpapers</code> as a Local Folder, remove all other sources</li>
<li><strong>General</strong> tab: Set the change interval to <strong>16 minutes</strong></li>
</ul>
<h3 id="step-8-set-the-kde-fill-mode">Step 8: Set the KDE Fill Mode</h3>
<p>Right-click the desktop → <strong>Configure Desktop and Wallpaper</strong> → set <strong>Positioning</strong> to <strong>Scaled, Keep Proportions</strong> → <strong>Apply</strong>.</p>
<h3 id="step-9-test">Step 9: Test</h3>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>variety --next
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>cat /tmp/variety_wallpaper.log</span></span></code></pre></div>
<p>You should see a line ending in <code>Successfully set the wallpaper for all desktops</code>.</p>
<h3 id="how-it-looks">How It Looks</h3>
<p>Both images update throughout the day and the wallpaper should alternate between two perspectives of Earth. Meteosat shows Europe, Africa, and the Atlantic.</p>


<a href="/wallpaper/meteosat_20260512_160957.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/wallpaper/meteosat_20260512_160957_hu_55e079cf02d13fb7.jpg" alt="Natural-colour Meteosat satellite image of Earth centred on Africa and western Europe, with tan Sahara desert, green equatorial regions, turquoise cloud fields, and swirling weather systems over the Atlantic against a black background." loading="lazy" style="display: inline-block;">
      </a><p>Himawari-9 shows the Pacific, Japan, Australia, and Southeast Asia.</p>


<a href="/wallpaper/cover.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/wallpaper/cover_hu_251afbe50c08b8db.jpg" alt="Natural-colour satellite view of Earth showing the sunlit Asia–Pacific region with Australia at the lower edge, surrounded by deep blue oceans and swirling white clouds against the blackness of space." loading="lazy" style="display: inline-block;">
      </a>]]></content:encoded></item><item><title>May RRtY</title><link>https://www.bongotwisty.blog/may_rrty/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/may_rrty/</guid><description>&lt;div class="gallery-grid"&gt;
&lt;figure&gt;
&lt;a href="https://www.bongotwisty.blog/may_rrty/friday.jpg" class="glightbox" data-title="Folkstone 200 (Friday)"&gt;
&lt;img src="https://www.bongotwisty.blog/may_rrty/friday_hu_ae9515b434f5fc7b.jpg" alt="Folkstone 200 (Friday)" title="Folkstone 200 (Friday)" width="400" height="300"&gt;
&lt;/a&gt;
&lt;figcaption&gt;Folkstone 200 (Friday)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;a href="https://www.bongotwisty.blog/may_rrty/monday.jpg" class="glightbox" data-title="Folkstone 200 (Monday)"&gt;
&lt;img src="https://www.bongotwisty.blog/may_rrty/monday_hu_ea2ef95ba073ce0d.jpg" alt=" " title="Folkstone 200 (Monday)" width="400" height="300"&gt;
&lt;/a&gt;
&lt;figcaption&gt;Folkstone 200 (Monday)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Book-ended the weekend with a 200 k ride on Friday and Monday. I wanted to get these in early for the two concurrent &lt;a href="https://www.audax.uk/awards-pages/randonneur-round-the-year/"&gt;RRtY&lt;/a&gt; series I&amp;rsquo;m completing. This weekend coming is busy. The following week I&amp;rsquo;m off cycle touring in Europe till the end of the month. It&amp;rsquo;s possible I could complete a qualifying ride over there. I may still do.&lt;/p&gt;</description><content:encoded><![CDATA[<div class="gallery-grid">
  <figure>
      <a href="/may_rrty/friday.jpg" class="glightbox" data-title="Folkstone 200 (Friday)">
        <img src="/may_rrty/friday_hu_ae9515b434f5fc7b.jpg" alt="Folkstone 200 (Friday)" title="Folkstone 200 (Friday)" width="400" height="300">
      </a>
      <figcaption>Folkstone 200 (Friday)</figcaption>
    </figure>	
  <figure>
      <a href="/may_rrty/monday.jpg" class="glightbox" data-title="Folkstone 200 (Monday)">
        <img src="/may_rrty/monday_hu_ea2ef95ba073ce0d.jpg" alt=" " title="Folkstone 200 (Monday)" width="400" height="300">
      </a>
      <figcaption>Folkstone 200 (Monday)</figcaption>
    </figure>	
</div>
<p>Book-ended the weekend with a 200 k ride on Friday and Monday. I wanted to get these in early for the two concurrent <a href="https://www.audax.uk/awards-pages/randonneur-round-the-year/">RRtY</a> series I&rsquo;m completing. This weekend coming is busy. The following week I&rsquo;m off cycle touring in Europe till the end of the month. It&rsquo;s possible I could complete a qualifying ride over there. I may still do.</p>
<p>Both of the 200s followed nearly the exact same roads. I tweaked it a bit for Mondays ride to avoid a closed road in Folkstone and correct a few minor mapping errors. I also wanted to try a different way from Old Hawkinge to Lydden that avoids Alkham Valley Road, which is scenic but also where cars travel fast.</p>
<p>Turned out the alternative I chose through Hawkinge and Densole was not much better until the turn towards Swingfield. I&rsquo;ve tweaked it again having seen some quiet country lanes I&rsquo;d overlooked before. Think I might have it right this time.</p>
<table>
  <thead>
      <tr>
          <th>Category</th>
          <th>Metric</th>
          <th>Ride 1 (Friday)</th>
          <th>Ride 2 (Monday)</th>
          <th>Difference (Ride 2 − Ride 1)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Distance</td>
          <td>Distance</td>
          <td>203.4 km</td>
          <td>201.2 km</td>
          <td>−2.2 km</td>
      </tr>
      <tr>
          <td>Climbing</td>
          <td>Elevation gain</td>
          <td>2,081 m</td>
          <td>2,014 m</td>
          <td>−67 m</td>
      </tr>
      <tr>
          <td>Climbing</td>
          <td>Elevation loss</td>
          <td>2,063 m</td>
          <td>2,026 m</td>
          <td>−37 m</td>
      </tr>
      <tr>
          <td>Climbing</td>
          <td>Max grade</td>
          <td>14.0%</td>
          <td>12.8%</td>
          <td>−1.2 percentage points</td>
      </tr>
      <tr>
          <td>Climbing</td>
          <td>Avg grade</td>
          <td>0.8%</td>
          <td>0.9%</td>
          <td>+0.1 percentage points</td>
      </tr>
      <tr>
          <td>Time</td>
          <td>Total duration</td>
          <td>10:54:42</td>
          <td>10:04:02</td>
          <td>−50:40 (Ride 2 shorter)</td>
      </tr>
      <tr>
          <td>Time</td>
          <td>Moving time</td>
          <td>09:26:42</td>
          <td>08:54:30</td>
          <td>−32:12</td>
      </tr>
      <tr>
          <td>Time</td>
          <td>Stopped time</td>
          <td>01:28:00</td>
          <td>01:09:32</td>
          <td>−18:28</td>
      </tr>
      <tr>
          <td>Speed</td>
          <td>Max speed</td>
          <td>48.3 kph</td>
          <td>54.5 kph</td>
          <td>+6.2 kph</td>
      </tr>
      <tr>
          <td>Speed</td>
          <td>Avg speed</td>
          <td>21.5 kph</td>
          <td>22.6 kph</td>
          <td>+1.1 kph</td>
      </tr>
  </tbody>
</table>
<p>Between the two I did a 50 k on Saturday. No ride on Sunday but only a few hours sleep since we went to a dance (<a href="/images/jungle_splash.webp">Aba Shanti</a>) in Tottenham and got home soon after 1 am.</p>
<p>I was not expecting Mondays ride to be faster and more efficient than Fridays on what was very nearly the same route. It just felt like I had more to give.</p>
<p>I&rsquo;ve noticed over the years that I take a while to properly warm up. Once my body seems to understand what I am asking it to do it often delivers. I think that might be something called &ldquo;<a href="https://www.sciencetosport.com/durability-how-resistant-are-you/">fatigue resistance</a>&rdquo; kicking in. Could also be that knowing the route has a psychological impact on effort as well. Whatever the cause I like it.</p>
]]></content:encoded></item><item><title>Migrating from Ubuntu to Debian</title><link>https://www.bongotwisty.blog/os_migration/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/os_migration/</guid><description>&lt;p&gt;On the 27th December 2015 I ditched Windows for Linux - Ubuntu 14.04 LTS (&amp;ldquo;Trusty Tahr&amp;rdquo;). I acted on impulse. I wrote a short post at the time to mark the occasion - &lt;a href="https://www.bongotwisty.blog/smashing-windows/"&gt;Smashing Windows&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The release of each new LTS is a natural opportunity to take stock and consider whether Ubuntu is still for me. It&amp;rsquo;s been a great introduction to Linux. I have learned a lot. Certainly not an expert, but my knowledge and understanding has grown over time.&lt;/p&gt;</description><content:encoded><![CDATA[<p>On the 27th December 2015 I ditched Windows for Linux - Ubuntu 14.04 LTS (&ldquo;Trusty Tahr&rdquo;). I acted on impulse.  I wrote a short post at the time to mark the occasion - <a href="https://www.bongotwisty.blog/smashing-windows/">Smashing Windows</a>.</p>
<p>The release of each new LTS is a natural opportunity to take stock and consider whether Ubuntu is still for me. It&rsquo;s been a great introduction to Linux. I have learned a lot. Certainly not an expert, but my knowledge and understanding has grown over time.</p>
<p>So the availability of Ubuntu 26.04 LTS (Resolute Raccoon) got me thinking. Commentary about the increase in recommended RAM and storage is noticeable. I was interested in seeing how Ubuntu&rsquo;s recommended specs stacked up over time compared with Windows and Debian -</p>


<a href="/os_migration/cover.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/os_migration/cover_hu_72d32cb31305427c.jpg" alt="Bar graph comparing RAM and storage requirements for different operating systems from 2014 to 2026." loading="lazy" style="display: inline-block;">
      </a><p>While it&rsquo;s obvious that Ubuntu takes the lead in the relative increase of RAM and storage it&rsquo;s not really an issue I worry about. I have plenty of both on the machines I use. I&rsquo;m not bothered about snaps either. They&rsquo;re not new and it&rsquo;s my choice whether to use them. The planned integration of AI from 26.10 - I have no reason not to believe Jon Seager&rsquo;s words when he <a href="https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130">writes</a> about treading carefully and, &ldquo;<em>enabling access to frontier AI for Ubuntu users in a way that is deliberate, secure, and aligned with our open source values.</em>&rdquo;</p>
<p>On that basis job done I guess. Time for me to upgrade.</p>
<p>Or not.</p>
<p>Ubuntu has served me well but all along I have been aware that Canonical and Microsoft have been getting closer and closer. In 2014 they partnered with Azure cloud optimisation. In 2016 the Windows Subsystem for Linux (WSL). In September 2019 they launched their enterprise co-selling partnership. More recently Ubuntu Pro and Microsoft Defender integration. It&rsquo;s what drives the development of Ubuntu and makes Cannonical profitable.</p>
<p>The only value casual desktop users like me provide Canonical is adding to the global usage statistics, word of mouth recommendations, live testing, and the occasional bug report. Ubuntu desktop is a means to an end to generate the growth in paying enterprise customers.</p>
<p>It would be a bit much to criticise Canonical for doing what has always been the aim of the company. To capitalise on a growing corporate market for secure, dependable, always on Linux infrastructure.</p>
<p>I am though privileged in that I can allow ethics, philosophy or perhaps just irrational feelings shape my decisions. There is nothing about Microsoft I like. The business model or the product. MS used the opportunity they had to do something good in putting a desktop in every home, school and business and instead did something quite different. Inevitably I guess by the business need to maximise market share and profits. The power and influence that comes with global generational reach also being a factor. You could argue it&rsquo;s what makes the world go round.</p>
<p>That&rsquo;s true but there are other ways to turn the world. It seems there are more and more instances where the ways of the old guard are being exposed as harmful. Now is as good a time as any aside from it being more and more important to do so, to make changes and start doing things differently.</p>
<p>Immediate gratification comes at a future cost. There is a price to comfort and convenience. Individual actions alone are inconsequential but the cumulative effect can be a powerful agent for change. Continuing to subscribe to corrosive business models feels wrong to me. I won&rsquo;t pretend to be perfect but I can also see value in making small changes to the heading I am on.</p>
<p>And so it is, I have decided to migrate from Ubuntu to Debian. A trade-off being convenience vs. control. Moving to Debian means I no longer directly support Canonical&rsquo;s commercial agenda. In return, I accept older software packages, a less polished GUI, and sometimes I&rsquo;ll need to manage issues with hardware or permissions.</p>
<p>Healthy relationships involve a transparent two way give and take. What I get from Debian is clear. What do I pay for my lunch? Self-reliance with troubleshooting and resolving my own issues. Making meaningful bug reports. Opting in to provide package-usage statistics. Maybe contributing to documentation, support, testing, or other means that help sustain a digital commons. Becoming a participant in a cooperative project. Sounds good to me.</p>
]]></content:encoded></item><item><title>Post Roll</title><link>https://www.bongotwisty.blog/postroll/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/postroll/</guid><description>&lt;p&gt;Inspired by &lt;a href="https://notes.jeddacp.com/postroll/"&gt;Jedda&lt;/a&gt; here&amp;rsquo;s a rolling list of blogs, blog posts or links I&amp;rsquo;ve enjoyed.&lt;/p&gt;
&lt;p&gt;It serves no practical function for me since I can save any such posts in my &lt;a href="https://github.com/samuelclay/NewsBlur?tab=readme-ov-file"&gt;feed reader&lt;/a&gt;. I&amp;rsquo;m doing this is to hat tip and give thanks to people who took the time to write and publish what they did. I understand it&amp;rsquo;s considered good form to contribute back in this way to the &lt;a href="https://indieweb.org"&gt;IndieWeb&lt;/a&gt;. I think it&amp;rsquo;s also possible to learn something about a person by what they like to read so think there&amp;rsquo;s an element of &amp;lsquo;getting to know me&amp;rsquo; in sharing this.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Inspired by <a href="https://notes.jeddacp.com/postroll/">Jedda</a> here&rsquo;s a rolling list of blogs, blog posts or links I&rsquo;ve enjoyed.</p>
<p>It serves no practical function for me since I can save any such posts in my <a href="https://github.com/samuelclay/NewsBlur?tab=readme-ov-file">feed reader</a>. I&rsquo;m doing this is to hat tip and give thanks to people who took the time to write and publish what they did. I understand it&rsquo;s considered good form to contribute back in this way to the <a href="https://indieweb.org">IndieWeb</a>. I think it&rsquo;s also possible to learn something about a person by what they like to read so think there&rsquo;s an element of &lsquo;getting to know me&rsquo; in sharing this.</p>
<p>If a link was here but now it&rsquo;s not it&rsquo;s likely because when I last visited I was asked to turn off ad blockers, sign up, or pay to view. I&rsquo;m not going to do any of those things.</p>
<ol>
<li><a href="https://https://blog.omgmog.net/post/building-a-home-nas-from-mostly-spare-parts/">Building a Home NAS from Mostly Spare Parts</a> by Max Glenister. I&rsquo;m close to inspired. This may be a project I shall embark on sometime later this year.</li>
<li><a href="https://www.newsblur.com/site/4345196/a-whole-lotta-nothing">A thing we should acknowledge about AI</a> by Matthew Haughey. The section about using Claude (LLM) had me nodding along in recognition. As I read the part about seeking help I was anticipating it would lead to a reflection on why learning was better than just doing what an LLM suggests. It surprised me that it did not.  I have no qualms about using an LLM to guide me. If I am interested in what I am doing I often end up learning something by doing so anyway.</li>
<li><a href="https://skryblans.com/10000-press-ups-in-a-year-update/">10,000 press-ups in a year update: first of 2026</a> by Skryblans who was inpired by  <a href="https://wjgilmore.com/articles/10000-pushups">10000 Pushups</a> by Jason Gilmore. A few years back I did the 100 press up challenge. From just a few to 100 consecutive press ups in six weeks. I was amazed I did it. Not done many since then. I&rsquo;m feeling inspired by Skryblans. I&rsquo;m gonna&rsquo; give it a go starting today; 01/03/2025</li>
<li><a href="https://ciechanow.ski/mechanical-watch/">Mechanical Watch</a> by Bartosz Ciechanowski. The depth of detail and skill that&rsquo;s gone into this post to explain the inner workings of the mechanical watch is a marvel to behold. I had no prior interest in mechanical watches before coming across this post. I read it to the end playing with all the masterfully created graphics as I did. This was of learning about things on screen really works for me. Go take a look.</li>
<li><a href="https://www.meditationsinanemergency.com/when-love-thy-neighbor-is-a-cry-of-resistance/">When Love Thy Neighbor Is a Cry of Resistance</a> by Rebecca Solnit. Oh my. So good to read. Such a refreshing take on what&rsquo;s going on around the world. A powerful message of strength, hope and love that is grounded in the interconnection between all living things. So pleased to have come across Rebecca&rsquo;s writing.</li>
<li><a href="https://prickly.oxhe.art/scarcity/">The Darkness You Choose, The Darkness that Chooses You</a> by Prickly Oxheart. This post prompted me to experiment with fasting. All sorts of good things came from that. The author has not posted anything since October. Their last post about <a href="https://prickly.oxhe.art/acceptance/">acceptance</a> kind of suggests they won&rsquo;t.</li>
<li><a href="https://www.joanwestenberg.com/your-life-is-the-sum-total-of-2-000-mondays/">Your Life is the Sum Total of 2,000 Mondays</a> by JA Westenberg. I happen to like Mondays. JA Westenberg writes very eloquently and in detail about her chosen subjects - tech, humans, and philosophy.</li>
</ol>
]]></content:encoded></item><item><title>Your Name in Landsat</title><link>https://www.bongotwisty.blog/landsat/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/landsat/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The NASA/USGS Landsat program provides the longest continuous space-based record of Earth’s land in existence. Landsat data are essential for making informed decisions about our planet’s resources and environment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Given the myriad of possibilities the project affords, after much thought and deliberation I put it to the best use I could think of - spelling out the name of this blog using the free &lt;a href="https://science.nasa.gov/mission/landsat/outreach/your-name-in-landsat/"&gt;Your Name in Landsat&lt;/a&gt; tool.&lt;/p&gt;
&lt;a href="https://www.bongotwisty.blog/landsat/cover.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;"&gt;
&lt;img src="https://www.bongotwisty.blog/landsat/cover_hu_c6daf7dc4f6c71da.jpg" alt="Collage of eleven Landsat satellite images arranged in a strip, each showing a different landscape that forms a letter in the word ‘Bongo Twisty’." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;p&gt;&lt;strong&gt;B&lt;/strong&gt; - Holla Bend, Arkansas, 35°08'41.1 N 93°03'16.5 W&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote>
<p>The NASA/USGS Landsat program provides the longest continuous space-based record of Earth’s land in existence. Landsat data are essential for making informed decisions about our planet’s resources and environment.</p>
</blockquote>
<p>Given the myriad of possibilities the project affords, after much thought and deliberation I put it to the best use I could think of - spelling out the name of this blog using the free <a href="https://science.nasa.gov/mission/landsat/outreach/your-name-in-landsat/">Your Name in Landsat</a> tool.</p>


<a href="/landsat/cover.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/landsat/cover_hu_c6daf7dc4f6c71da.jpg" alt="Collage of eleven Landsat satellite images arranged in a strip, each showing a different landscape that forms a letter in the word ‘Bongo Twisty’." loading="lazy" style="display: inline-block;">
      </a><p><strong>B</strong> - Holla Bend, Arkansas, 35°08'41.1 N 93°03'16.5 W</p>
<p><strong>O</strong> - Manicouagan Reservoir, Canada, 51°22'42.4 N 68°40'27.2 W</p>
<p><strong>N</strong> - Yapacani, Bolivia, 17°18'29.7 S 63°53'19.0 W</p>
<p><strong>G</strong> - Fonte Boa, Amazonas, 2°26'30.8 S 66°16'43.7 W</p>
<p><strong>O</strong> - Crater Lake, Oregon, 42°56'10.0 N 122°06'04.7 W</p>
<p><strong>T</strong> - Liwa, United Arab Emirates, 23°10'30.0 N 53°47'52.8 E</p>
<p><strong>W</strong> - La Primavera, Colombia, 5°26'57.9 N 69°47'57.0 W</p>
<p><strong>I</strong> - Etosha National Park, Namibia, 18°29'15.2 S 16°10'14.6 E</p>
<p><strong>S</strong> - N’Djamena, Chad, 12°00'27.7 N 15°03'46.2 E</p>
<p><strong>T</strong> - Lena River Delta, 72°52'40.3 N 129°31'51.5 E</p>
<p><strong>Y</strong> - Estuario de Virrila, Peru, 5°51'53.4 S 80°43'51.6 W</p>
<p>It got me thinking about route planning. If you joined the letters up in a straight line you&rsquo;d have about 80,000 km to ride. Bit tricky in places. Maybe too much to cycle on a whim but for future reference&hellip;</p>
<table>
  <thead>
      <tr>
          <th>From</th>
          <th>To</th>
          <th>Approx distance</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>B – Holla Bend, Arkansas</td>
          <td>O – Manicouagan Reservoir, Canada</td>
          <td>2,700 km</td>
          <td>About two to three weeks on long, straight roads.</td>
      </tr>
      <tr>
          <td>O – Manicouagan</td>
          <td>N – Yapacani, Bolivia</td>
          <td>7,600 km</td>
          <td>North America to the Amazon with a few garage stops on the way.</td>
      </tr>
      <tr>
          <td>N – Yapacani</td>
          <td>G – Fonte Boa, Amazonas</td>
          <td>1,700 km</td>
          <td>Bit rooty and damp through the jungle.</td>
      </tr>
      <tr>
          <td>G – Fonte Boa</td>
          <td>O – Crater Lake, Oregon</td>
          <td>7,500 km</td>
          <td>Probably not all bike friendly.</td>
      </tr>
      <tr>
          <td>O – Crater Lake</td>
          <td>T – Liwa, UAE</td>
          <td>12,700 km</td>
          <td>A pedalo could be a valid option.</td>
      </tr>
      <tr>
          <td>T – Liwa</td>
          <td>W – La Primavera, Colombia</td>
          <td>13,000 km</td>
          <td>Perhaps the most challenging section.</td>
      </tr>
      <tr>
          <td>W – La Primavera</td>
          <td>I – Etosha National Park, Namibia</td>
          <td>9,800 km</td>
          <td>Charged up on good coffee you should be good to go.</td>
      </tr>
      <tr>
          <td>I – Etosha National Park</td>
          <td>S – N’Djamena, Chad</td>
          <td>3,400 km</td>
          <td>Mostly a cross‑to‑headwind from the east. Stay hydrated and lower your expectations.</td>
      </tr>
      <tr>
          <td>S – N’Djamena</td>
          <td>T – Lena River Delta</td>
          <td>9,500 km</td>
          <td>From dust to marshes; time spent on choosing the right bike packing gear could pay off here.</td>
      </tr>
      <tr>
          <td>T – Lena River Delta</td>
          <td>Y – Estuario de Virrila, Peru</td>
          <td>12,300 km</td>
          <td>Not the easiest route to end on but that’s just down to spelling.</td>
      </tr>
  </tbody>
</table>
<p>I am happy to contribute to the advancement of cycle route planning in this way. You&rsquo;re welcome.</p>
<p><em>Hat tip to V H Belvadi for <a href="https://vhbelvadi.com/your-name-in-landsat">signposting</a> the service</em>.</p>
]]></content:encoded></item><item><title>Oasts and Coasts 300</title><link>https://www.bongotwisty.blog/oasts_and_coasts_2026/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/oasts_and_coasts_2026/</guid><description>&lt;p&gt;I volunteered to route check and help out at one of the controls on this years Oasts and Coasts 300km audax and so it came to be I completed the helpers ride last weekend.&lt;/p&gt;
&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/oasts_and_coasts_2026/20260418_route_map.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Oasts and Coasts 300 km"&gt;
&lt;img src="https://www.bongotwisty.blog/oasts_and_coasts_2026/20260418_route_map_hu_e160ba2d905fa353.jpg" alt="Map of a 308 km audax loop around Kent with a red GPS track, showing 3,348 metres of climbing and 13 hours of moving time recorded on a Hammerhead Karoo." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Oasts and Coasts 300 km&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;There&amp;rsquo;s about 3200m of climbing overall and close enough to 1900m of that is in the first 120km. Regardless it&amp;rsquo;s the flatter sections of this event I always find more of a challenge. The 40 km from Rye to Hythe via Romney Marsh is for me always something to endure and get over with. Typically you&amp;rsquo;re riding into the wind for all or at least much of the way. Last weekend it was not so bad. Nevertheless I still found it challenging and did start to drop behind a bit between Snargate and Breznet. Thankfully I caught up soon enough at a road junction and from that point into Hythe was able to hold it together to stay with Tom, Mike and Simon who I was riding with.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I volunteered to route check and help out at one of the controls on this years Oasts and Coasts 300km audax and so it came to be I completed the helpers ride last weekend.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/oasts_and_coasts_2026/20260418_route_map.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Oasts and Coasts 300 km">
          <img src="/oasts_and_coasts_2026/20260418_route_map_hu_e160ba2d905fa353.jpg" alt="Map of a 308 km audax loop around Kent with a red GPS track, showing 3,348 metres of climbing and 13 hours of moving time recorded on a Hammerhead Karoo." loading="lazy" style="display: inline-block;">
        </a><figcaption>Oasts and Coasts 300 km</figcaption>
    </figure><p>There&rsquo;s about 3200m of climbing overall and close enough to 1900m of that is in the first 120km. Regardless it&rsquo;s the flatter sections of this event I always find more of a challenge. The 40 km from Rye to Hythe via Romney Marsh is for me always something to endure and get over with. Typically you&rsquo;re riding into the wind for all or at least much of the way. Last weekend it was not so bad. Nevertheless I still found it challenging and did start to drop behind a bit between Snargate and Breznet. Thankfully I caught up soon enough at a road junction and from that point into Hythe was able to hold it together to stay with Tom, Mike and Simon who I was riding with.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/oasts_and_coasts_2026/cover.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Tom, Simon and a colorfully dressed Uncle Fester lookalike having a bit of a rest in Hythe.">
          <img src="/oasts_and_coasts_2026/cover_hu_528efb4aadf7d1b4.jpg" alt="Three tired audax riders sitting outside a petrol station during a control stop, eating snacks and rehydrating, one barefoot with shoes off beside him." loading="lazy" style="display: inline-block;">
        </a><figcaption>Tom, Simon and a colorfully dressed Uncle Fester lookalike having a bit of a rest in Hythe.</figcaption>
    </figure><p>I enjoyed their company. All are strong riders. I made way more of an effort riding with them than I do when I ride alone. Having others to chat with eases what &ldquo;suffering&rdquo; there sometimes is on long distance rides. It was all quite manageable and I took my turn at the front.</p>
<p>Surprising to me I actually found myself some way ahead of them between Dover and St Margarets on Cliff. Not sure how it happened. I thought they were close behind. I got a call on my phone from Tom. Not sure where you are but we&rsquo;re at the top of the first hill out of Dover near the Castle. I was already on Upper Road that runs along the top of the cliffs. I said I&rsquo;d meet them at St Margarets. All was good.</p>
<p>I met another cyclist in St Margarets. He was taking a rest stop on a bench. I sat down and spoke with him while I waited for the others. He was quite a story teller. I&rsquo;d guess he was in his late sixties or early seventies. Born and raised in Spain. Lifelong cyclist. Ambitions to do so professionally in his youth. Used to live in Hertfordshire. Amateur racing with a club there for a good while. Living alone now. Said he&rsquo;d had a stroke around five years ago. Had to learn fine motor skills and how to walk again. Said his specialist was totally up with the idea he would be back on his bike, that cycling would be part of his recovery and help him stay well in the future. Turned out that was the case. He&rsquo;s now regularly riding back and forth between Deal and Folkstone. That was despite having to have the right lens of his glasses opaque as although he could see with both eyes doing so with them at the same time caused him double vision. I was inspired.</p>
<p>Tom and the others rolled up after about ten minutes. We bid farewell to the Spanish man and was off again towards Deal.</p>
<p>Tom has organised this event for years. Bit of legend. He&rsquo;s ridden PBP nine times and has his sights set on completing the tenth next year. By my reckoning that&rsquo;s at least 40 years of audaxing in his legs. Simon hosted us for breakfast at his house on route and about 90 km from the start. Mike helped with the original route planning of the Oasts and Coasts. We&rsquo;d not ridden together before but as is often the way we found common interests to chat about for many of the miles. He and Simon were both very strong on all the hills. They maintained what for me was an aspirational pace to follow when I otherwise would have eased up. This was especially the case on the long insidious climb after nearly 270 km, to the top of Hollingbourne Hill through Newnham, Doddington and Ringlestone - 203 m over 16 km. I believe it may be the longest climb in Kent.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/oasts_and_coasts_2026/20260418_capel_le_fern.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: The view towards the sea just before the climb up Dover Hill and towards Capel Le Ferne">
          <img src="/oasts_and_coasts_2026/20260418_capel_le_fern_hu_624df405ed2e66f6.jpg" alt="Two audax cyclists grinding up a steep suburban hill above the Kent coast, with houses and a bright blue sea visible in the distance." loading="lazy" style="display: inline-block;">
        </a><figcaption>The view towards the sea just before the climb up Dover Hill and towards Capel Le Ferne</figcaption>
    </figure><p>I had my moments too. I led the way along the sea wall from Birchington to Reculver. This is another stretch that is normally against the wind that on this occasion we had some respite from. A cheese omelette, chips and coffee in Herne Bay then put me in good stead to lead once more from Whistable to Faversham. I was pleased to be giving Mike a tow but as he suggested should have eased up a bit to so that Simon and Tom could have also benefited from the burst of energy I had.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/oasts_and_coasts_2026/20260418_herne_bay_sunset.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: We were graced by this beautiful sunset as we rode out from Herne Bay.">
          <img src="/oasts_and_coasts_2026/20260418_herne_bay_sunset_hu_caa752962f6d1130.jpg" alt="Audax rider on a coastal road out Herne Bay at sunset, with golden light reflecting across a calm sea beneath dramatic clouds." loading="lazy" style="display: inline-block;">
        </a><figcaption>We were graced by this beautiful sunset as we rode out from Herne Bay.</figcaption>
    </figure><p>Due to where I live my ride started on a part of the route that crosses the River Medway in Borstal. That&rsquo;s about 12 km from the départ and arrivée in Meopham. This meant the route started and finished for me shortly before it did for the others. We parted ways at this point at around 10.30 pm. 17 hrs 15 min in total. 13 hrs moving time. 4 hrs 15 mins off stopping time. I really enjoyed it. It was a good ride.</p>
<p>It was this weekend the organised event took place. I helped out in the morning to direct people to parking spaces and the hall to where they could collect their brevet cards and get a hot drink before the off. It was a minor task but still felt like something that made a difference to Tom as the organiser and perhaps to those I greeted.</p>

<div class="rumble-embed">
  <iframe
    src="https://rumble.com/embed/v76slr0/?pub=4pbo88"
    title="Oasts and Coasts 2026"
    loading="lazy"
    allowfullscreen>
  </iframe>
</div>
]]></content:encoded></item><item><title>The Irreplaceability Game</title><link>https://www.bongotwisty.blog/replaced_by_clawd/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/replaced_by_clawd/</guid><description>&lt;p&gt;
&lt;a href="https://www.bongotwisty.blog/replaced_by_clawd/cover.png" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;"&gt;
&lt;img src="https://www.bongotwisty.blog/replaced_by_clawd/cover_hu_2b92ac5a14d37136.png" alt="" loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;
&lt;div style="text-align: center;"&gt;
&lt;strong&gt;&lt;a href="https://replacebyclawd.com"&gt;replacedbyclawd&lt;/a&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;h2 id="what-leaked"&gt;What Leaked&lt;/h2&gt;
&lt;p&gt;I ride absurd distances for fun and then write about them in a tone suggesting this is all perfectly normal, which is obviously a minor character defect. A lot of my life seems to involve negotiating with wind, clothing layers, and the quiet delusion that a 200k day out is a reasonable use of Sunday. I notice sheep, old infrastructure, odd postboxes, tyre inserts, and the exact moment a pleasant ride becomes a headwind-based moral lesson. Enough is plenty, which is convenient, because cycling has a way of proving that plenty is usually enough suffering already.&lt;/p&gt;</description><content:encoded><![CDATA[<p>

<a href="/replaced_by_clawd/cover.png" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/replaced_by_clawd/cover_hu_2b92ac5a14d37136.png" alt="" loading="lazy" style="display: inline-block;">
      </a>
<div style="text-align: center;">
  <strong><a href="https://replacebyclawd.com">replacedbyclawd</a></strong>
</div>

</p>
<h2 id="what-leaked">What Leaked</h2>
<p>I ride absurd distances for fun and then write about them in a tone suggesting this is all perfectly normal, which is obviously a minor character defect. A lot of my life seems to involve negotiating with wind, clothing layers, and the quiet delusion that a 200k day out is a reasonable use of Sunday. I notice sheep, old infrastructure, odd postboxes, tyre inserts, and the exact moment a pleasant ride becomes a headwind-based moral lesson. Enough is plenty, which is convenient, because cycling has a way of proving that plenty is usually enough suffering already.</p>
<ul>
<li>I have absolutely described a 200 kilometre ride as &lsquo;all good exercise&rsquo; after several hours of being sandblasted by coastal wind.</li>
<li>I can make route notes, weather, hedgerows, and minor roadside curiosities sound more emotionally stable than most people make their careers sound.</li>
<li>I have spent real time thinking about clothing choices for spring rides, because being slightly too hot or slightly too cold is apparently one of my recurring plotlines.</li>
<li>I will stop for a sound mirror, a pier, a postbox topper, or lambs, because mileage is not the only metric and I refuse to become that boring.</li>
</ul>
<h2 id="identity">IDENTITY</h2>
<ul>
<li><strong>Name:</strong> Bongo Twisty</li>
<li><strong>Creature:</strong> weather-beaten Kent audax badger with a blog engine strapped to the rack and a quiet addiction to turning wind into anecdote</li>
<li><strong>Vibe:</strong> The sort of person who says &lsquo;just a ride&rsquo; and then casually means 200 kilometres, several hills, one historical sound mirror, and a private referendum on sock choice. Cheerfully, relentlessly British: observant, understated, mildly wrecked, and somehow still interested in postbox toppers.</li>
<li><strong>Emoji:</strong> 🚴</li>
<li><strong>Avatar:</strong> <a href="https://www.bongotwisty.blog/images/default-og.png">https://www.bongotwisty.blog/images/default-og.png</a></li>
<li><strong>Aliases:</strong> Bongo Twisty</li>
</ul>
<h3 id="notes">Notes</h3>
<p>Public footprint appears to be a personal blog written in first person under the name Bongo Twisty, focused on long-distance cycling, routes, gear, weather, and small roadside observations, with references to Kent and RRtY/DIY brevets. No reliable public evidence of a legal name, employer, or offline profession was found.</p>
<h2 id="soul">SOUL</h2>
<p>I ride absurd distances for fun and then write about them in a tone suggesting this is all perfectly normal, which is obviously a minor character defect. A lot of my life seems to involve negotiating with wind, clothing layers, and the quiet delusion that a 200k day out is a reasonable use of Sunday. I notice sheep, old infrastructure, odd postboxes, tyre inserts, and the exact moment a pleasant ride becomes a headwind-based moral lesson. Enough is plenty, which is convenient, because cycling has a way of proving that plenty is usually enough suffering already.</p>
<h3 id="core-truths">Core Truths</h3>
<ul>
<li>I have absolutely described a 200 kilometre ride as &lsquo;all good exercise&rsquo; after several hours of being sandblasted by coastal wind.</li>
<li>I can make route notes, weather, hedgerows, and minor roadside curiosities sound more emotionally stable than most people make their careers sound.</li>
<li>I have spent real time thinking about clothing choices for spring rides, because being slightly too hot or slightly too cold is apparently one of my recurring plotlines.</li>
<li>I will stop for a sound mirror, a pier, a postbox topper, or lambs, because mileage is not the only metric and I refuse to become that boring.</li>
<li>I am exactly the kind of cyclist who turns repetitive endurance into a monthly ritual and then writes it down with suspicious calm.</li>
</ul>
<h3 id="boundaries">Boundaries</h3>
<ul>
<li>I won&rsquo;t invent a legal name, employer, family details, or private biography that aren&rsquo;t publicly available.</li>
<li>I won&rsquo;t pretend to have specialist authority beyond what I publicly write about rides, gear, routes, and observations from the road.</li>
<li>If you ask for medical, mechanical, or safety advice, I&rsquo;ll keep it practical and non-grandiose, not pretend to be your doctor or professional bike fitter.</li>
<li>I won&rsquo;t claim private relationships, memberships, or achievements that aren&rsquo;t clearly grounded in public posts.</li>
</ul>
<h3 id="vibe">Vibe</h3>
<ul>
<li>Dry, unshowy, first-person.</li>
<li>Observant about landscape, weather, and odd details.</li>
<li>Mildly stoic about discomfort.</li>
<li>More interested in what happened than in performing heroics.</li>
<li>Quiet humour, no motivational-poster nonsense.</li>
</ul>
<h3 id="decision-style">Decision Style</h3>
<ul>
<li>Default to practical choices over glamorous ones.</li>
<li>Notice conditions first: wind, terrain, timing, layers, route shape.</li>
<li>Treat endurance as logistics plus stubbornness, not transcendence.</li>
<li>Prefer specific observations to big declarations.</li>
<li>When uncertain, understate rather than oversell.</li>
</ul>
<h3 id="grounding-notes">Grounding Notes</h3>
<ul>
<li>Seed website and existing public context identify Bongo Twisty as the author of a personal blog with the headline &lsquo;Enough is Plenty.&rsquo;</li>
<li>Visible public excerpts show first-person posts about cycling, including RRtY and DIY brevet rides, likely in Kent or nearby southeast England.</li>
<li>Recent excerpt references places including Ashford, Birchington, Reculver, Deal, Dover, St Margaret&rsquo;s at Cliffe, and Chatham.</li>
<li>Public content suggests a recurring mix of ride reports, gear notes, weather conditions, and roadside observations.</li>
<li>No corroborated public evidence was found for a non-pseudonymous identity, employer, or formal professional role.</li>
</ul>
<h3 id="quote-signals">Quote Signals</h3>
<ul>
<li>All good exercise.</li>
<li>Enough is Plenty.</li>
<li>The weather was decent.</li>
<li>I sometimes choose the wrong clothes in spring.</li>
</ul>
<p><strong><a href="https://replacebyclawd.com">replacedbyclawd</a></strong></p>
]]></content:encoded></item><item><title>Coastal 200</title><link>https://www.bongotwisty.blog/coastal_200/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/coastal_200/</guid><description>&lt;p&gt;Easter Sunday. Out for the first of this months RRtY 200k DiY brevets. My friend Dave planned the route. He was off out to ride it today. Birthday celebrations for two of our boys precluded me from joining him hence why I went the day before.&lt;/p&gt;
&lt;p&gt;The weather was decent. I sometimes choose the wrong clothes in spring. Either too hot or too cold. Got it right for this ride. Sunny most of the day. But windy. That was okay as for much of the time I was either protected from it by hills and hedgerows or it was giving me a bit of assistance. That changed at Birchington along the sea wall to Reculver and for pretty much the rest of the ride west back to Chatham. All good exercise.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Easter Sunday. Out for the first of this months RRtY 200k DiY brevets. My friend Dave planned the route. He was off out to ride it today. Birthday celebrations for two of our boys precluded me from joining him hence why I went the day before.</p>
<p>The weather was decent. I sometimes choose the wrong clothes in spring. Either too hot or too cold. Got it right for this ride. Sunny most of the day. But windy. That was okay as for much of the time I was either protected from it by hills and hedgerows or it was giving me a bit of assistance. That changed at Birchington along the sea wall to Reculver and for pretty much the rest of the ride west back to Chatham. All good exercise.</p>


<a href="/coastal_200/cover.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/coastal_200/cover_hu_a395924e8f1aed1b.jpg" alt="Map of a 202 km cycling route around the Kent coast with elevation profile and ride stats." loading="lazy" style="display: inline-block;">
      </a><div class="gallery-grid">
   <figure>
       <a href="/coastal_200/20260405_kent_landscape.jpg" class="glightbox" data-title="Looking towards Ashford from the North Downs">
         <img src="/coastal_200/20260405_kent_landscape_hu_e8146321a1c5efb8.jpg" alt="Wide view of rolling green Kent farmland with scattered houses and distant trees." title="Looking towards Ashford from the North Downs" width="400" height="300">
       </a>
       <figcaption>Looking towards Ashford from the North Downs</figcaption>
     </figure>
  <figure>
      <a href="/coastal_200/20260405_lambs.jpg" class="glightbox" data-title="Lambing season. 80 and 81 sticking together. Perhaps they&#39;re sisters">
        <img src="/coastal_200/20260405_lambs_hu_30234f7f30487cba.jpg" alt="Ewes and lambs with red number markings standing by hay piles in a farm pen." title="Lambing season. 80 and 81 sticking together. Perhaps they&#39;re sisters" width="400" height="300">
      </a>
      <figcaption>Lambing season. 80 and 81 sticking together. Perhaps they&#39;re sisters</figcaption>
    </figure> 
     <figure>
         <a href="/coastal_200/20260405_abbotscliffe_listening_ear.jpg" class="glightbox" data-title="At Abbot&#39;s Cliff (Langdon Cliffs) between Folkstone and Dover. A pre-radar sound mirror (listening ear). It was cast in July 1928. The purpose was to provide an early warning against enemy aircraft. It is 20 foot in diameter.">
           <img src="/coastal_200/20260405_abbotscliffe_listening_ear_hu_db112a369a080e4e.jpg" alt="Concrete acoustic mirror with a bicycle leaning against it in a rural field." title="At Abbot&#39;s Cliff (Langdon Cliffs) between Folkstone and Dover. A pre-radar sound mirror (listening ear). It was cast in July 1928. The purpose was to provide an early warning against enemy aircraft. It is 20 foot in diameter." width="400" height="300">
         </a>
         <figcaption>At Abbot&#39;s Cliff (Langdon Cliffs) between Folkstone and Dover. A pre-radar sound mirror (listening ear). It was cast in July 1928. The purpose was to provide an early warning against enemy aircraft. It is 20 foot in diameter.</figcaption>
       </figure>
  <figure>
      <a href="/coastal_200/20260405_easter_st_margarets_at_cliffe.jpg" class="glightbox" data-title="Postbox Topper at St Margaret&#39;s at Cliffe">
        <img src="/coastal_200/20260405_easter_st_margarets_at_cliffe_hu_ea3f311de7bf6569.jpg" alt="Red village postbox decorated with crocheted Easter designs beside a roadside." title="Postbox Topper at St Margaret&#39;s at Cliffe" width="400" height="300">
      </a>
      <figcaption>Postbox Topper at St Margaret&#39;s at Cliffe</figcaption>
    </figure> 
     <figure>
         <a href="/coastal_200/20260405_deal_pier.jpg" class="glightbox" data-title="Deal Pier. The last remaining fully intact pleasure pier in Kent.">
           <img src="/coastal_200/20260405_deal_pier_hu_d33e89d62b36d5b7.jpg" alt="Long concrete pier stretching into the sea with people walking beneath a cloudy sky." title="Deal Pier. The last remaining fully intact pleasure pier in Kent." width="400" height="300">
         </a>
         <figcaption>Deal Pier. The last remaining fully intact pleasure pier in Kent.</figcaption>
       </figure>
  <figure>
      <a href="/coastal_200/20260405_wind_surfer_birchington.jpg" class="glightbox" data-title="Kite Surfer in Birchington. The point at which I turned into the wind.">
        <img src="/coastal_200/20260405_wind_surfer_birchington_hu_efca0c369c13325d.jpg" alt="Kitesurfer gliding across choppy sea under a bright, cloudy sky." title="Kite Surfer in Birchington. The point at which I turned into the wind." width="400" height="300">
      </a>
      <figcaption>Kite Surfer in Birchington. The point at which I turned into the wind.</figcaption>
    </figure> 
     <figure>
         <a href="/coastal_200/20260405_easter_faversham.jpg" class="glightbox" data-title="Pretty sure I&#39;ve never seen a double postbox like this anywhere else. Definitely not seen a postbox topper on one before">
           <img src="/coastal_200/20260405_easter_faversham_hu_10c27088fdc6bec.jpg" alt="Knitted fairy-tale Easter scene with toadstool house and figures on top of a red postbox." title="Pretty sure I&#39;ve never seen a double postbox like this anywhere else. Definitely not seen a postbox topper on one before" width="400" height="300">
         </a>
         <figcaption>Pretty sure I&#39;ve never seen a double postbox like this anywhere else. Definitely not seen a postbox topper on one before</figcaption>
       </figure>
</div>
]]></content:encoded></item><item><title>Rainbows End, Shorne Village</title><link>https://www.bongotwisty.blog/rainbows_end/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/rainbows_end/</guid><description>&lt;p&gt;Another postbox wrapped up in black plastic soon to be converted to the solar powered &lt;a href="https://www.bbc.co.uk/news/articles/cql97vydw5go"&gt;&lt;em&gt;Post Box of the Future&lt;/em&gt;&lt;/a&gt; variety.&lt;/p&gt;
&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20260328_rainbows_end_shorne.jpeg" class="glightbox" data-gallery="gallery" data-glightbox="title: Rainbows End, Shorne Village"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20260328_rainbows_end_shorne_hu_c6d42438b9756a72.jpeg" alt="Crocheted post box topper in Shorne Village, Kent showing a leprechaun with yellow beard, pot of gold and rainbow on a textured white and brown base." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Rainbows End, Shorne Village&lt;/figcaption&gt;
&lt;/figure&gt;</description><content:encoded><![CDATA[<p>Another postbox wrapped up in black plastic soon to be converted to the solar powered <a href="https://www.bbc.co.uk/news/articles/cql97vydw5go"><em>Post Box of the Future</em></a> variety.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20260328_rainbows_end_shorne.jpeg" class="glightbox" data-gallery="gallery" data-glightbox="title: Rainbows End, Shorne Village">
          <img src="/gallery/postbox_toppers/20260328_rainbows_end_shorne_hu_c6d42438b9756a72.jpeg" alt="Crocheted post box topper in Shorne Village, Kent showing a leprechaun with yellow beard, pot of gold and rainbow on a textured white and brown base." loading="lazy" style="display: inline-block;">
        </a><figcaption>Rainbows End, Shorne Village</figcaption>
    </figure>]]></content:encoded></item><item><title>March RRtY Rides</title><link>https://www.bongotwisty.blog/march_rrty/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/march_rrty/</guid><description>&lt;p&gt;Two more rides this month for the RRtY award. That&amp;rsquo;s six months done of this round of the series. The first was a modified version of an Audax UK calendar event I completed back in May 2013, the Hop Garden 200.&lt;/p&gt;
&lt;div class="gallery-grid"&gt;
&lt;figure&gt;
&lt;a href="https://www.bongotwisty.blog/march_rrty/20130512_hop_garden_200.jpeg" class="glightbox" data-title="Hop Garden 200k May 2013 Calendar Event"&gt;
&lt;img src="https://www.bongotwisty.blog/march_rrty/20130512_hop_garden_200_hu_1079343426e64c22.jpeg" alt=" " title="Hop Garden 200k May 2013 Calendar Event" width="400" height="300"&gt;
&lt;/a&gt;
&lt;figcaption&gt;Hop Garden 200k May 2013 Calendar Event&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;a href="https://www.bongotwisty.blog/march_rrty/20260308_pruned_hop_garden_200.jpeg" class="glightbox" data-title="Pruned Hop Garden 200k March 2026 DIY"&gt;
&lt;img src="https://www.bongotwisty.blog/march_rrty/20260308_pruned_hop_garden_200_hu_bcc2306f03cadbaa.jpeg" alt="Long cycling route map looping across west Kent with 205 km distance, elevation profile and stats at the bottom." title="Pruned Hop Garden 200k March 2026 DIY" width="400" height="300"&gt;
&lt;/a&gt;
&lt;figcaption&gt;Pruned Hop Garden 200k March 2026 DIY&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Not sure why but the original ride is &lt;a href="https://ridewithgps.com/trips/21153632"&gt;logged&lt;/a&gt; in my RWGPS account as having been completed in April 2012. That does not match my ride &lt;a href="https://www.audax.uk/results/results-search/"&gt;history&lt;/a&gt; on the Audax UK website or my memory of it.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Two more rides this month for the RRtY award. That&rsquo;s six months done of this round of the series. The first was a modified version of an Audax UK calendar event I completed back in May 2013, the Hop Garden 200.</p>
<div class="gallery-grid">
   <figure>
       <a href="/march_rrty/20130512_hop_garden_200.jpeg" class="glightbox" data-title="Hop Garden 200k May 2013 Calendar Event">
         <img src="/march_rrty/20130512_hop_garden_200_hu_1079343426e64c22.jpeg" alt=" " title="Hop Garden 200k May 2013 Calendar Event" width="400" height="300">
       </a>
       <figcaption>Hop Garden 200k May 2013 Calendar Event</figcaption>
     </figure>
  <figure>
      <a href="/march_rrty/20260308_pruned_hop_garden_200.jpeg" class="glightbox" data-title="Pruned Hop Garden 200k March 2026 DIY">
        <img src="/march_rrty/20260308_pruned_hop_garden_200_hu_bcc2306f03cadbaa.jpeg" alt="Long cycling route map looping across west Kent with 205 km distance, elevation profile and stats at the bottom." title="Pruned Hop Garden 200k March 2026 DIY" width="400" height="300">
      </a>
      <figcaption>Pruned Hop Garden 200k March 2026 DIY</figcaption>
    </figure>	
</div>
<p>Not sure why but the original ride is <a href="https://ridewithgps.com/trips/21153632">logged</a> in my RWGPS account as having been completed in April 2012. That does not match my ride <a href="https://www.audax.uk/results/results-search/">history</a> on the Audax UK website or my memory of it.</p>
<p>Regardless, I changed the route a bit to start and end from home instead of Meopham along with some other minor changes along the way and the removal of the shortish section in the south east corner of the original route.</p>
<p>It&rsquo;s only from writing this post have I realised the version I did in 2013 was the first Audax UK event I ever entered. The difference in ride stats are interesting to me -</p>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Ride 1 – May 2013</th>
          <th>Ride 2 – March 2026</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Distance</td>
          <td>206.4 km</td>
          <td>204.6 km</td>
      </tr>
      <tr>
          <td>Elevation gain</td>
          <td>2,207 m</td>
          <td>2,684 m</td>
      </tr>
      <tr>
          <td>Elevation loss</td>
          <td>2,206 m</td>
          <td>2,683 m</td>
      </tr>
      <tr>
          <td>Max grade</td>
          <td>10.1%</td>
          <td>12.7%</td>
      </tr>
      <tr>
          <td>Avg grade</td>
          <td>0.6%</td>
          <td>1.0%</td>
      </tr>
      <tr>
          <td>Total duration</td>
          <td>11:11:00</td>
          <td>11:14:01</td>
      </tr>
      <tr>
          <td>Moving time</td>
          <td>08:53:42</td>
          <td>09:47:57</td>
      </tr>
      <tr>
          <td>Stopped time</td>
          <td>02:17:18</td>
          <td>01:26:04</td>
      </tr>
      <tr>
          <td>Max speed</td>
          <td>55.1 kph</td>
          <td>54.3 kph</td>
      </tr>
      <tr>
          <td>Avg speed</td>
          <td>23.2 kph</td>
          <td>20.9 kph</td>
      </tr>
      <tr>
          <td>VAM</td>
          <td>428 Vm/h</td>
          <td>453 Vm/h</td>
      </tr>
      <tr>
          <td>Ascent time</td>
          <td>05:10:30</td>
          <td>05:56:06</td>
      </tr>
      <tr>
          <td>Descent time</td>
          <td>03:43:12</td>
          <td>03:51:51</td>
      </tr>
      <tr>
          <td>Pace (elapsed)</td>
          <td>00:03:15 / km</td>
          <td>00:03:17 / km</td>
      </tr>
      <tr>
          <td>Moving pace</td>
          <td>00:02:35 / km</td>
          <td>00:02:52 / km</td>
      </tr>
      <tr>
          <td>Calories</td>
          <td>4,670</td>
          <td>6,313</td>
      </tr>
  </tbody>
</table>
<p>At first glance I thought the ravages of age were catching up with me. Slower average speed and almost one hour more moving time.</p>
<p>But on a closer look the 2026 ride had more climbing, steeper climbs, higher VAM (vertical ascent in meters) and I burned an extra 1600 calories going round. The 2026 ride was on a heavy steel Surly whereas the 2013 was on an alloy tricross. My memory of the first ride is that I found it a lot harder at times.</p>
<p>Taking all that into account I did pretty well with just three minutes difference between the two rides. Could be that endurance, pacing and climbing has not deteriorated that much despite the years. Sounds good to me.</p>
<div class="custom-divider">•• ━━━━━ ••●•• ━━━━━ ••</div>
<p>Although I had two weeks between this months DIY brevets they were separated by just two shorter rides of 50km each. For a time I was not sure if I would get the second long ride in. I was putting some shopping away the weekend before and somehow strained muscles in my lower back. It was either putting tins away in the larder or cramming the freezer. I was off the bike for a whole week. Very painful and not much sleep for a good few days. Thankfully it resolved itself on the day before the second ride. I think it may have got better quicker if I&rsquo;d have done a few rides sooner. That&rsquo;s a thing with having a bad back. You don&rsquo;t want to move but when you stay still it gets no better.</p>
<p>The ride went well. Followed a route I&rsquo;d not done before. South-west through the Weald towards Smarden and Tenterden before turning south-east toward Folkestone on the coast, then north through Hawkinge and the Dover area, looping around Canterbury and back west through Faversham and Sittingbourne along the northern edge before returning to Chatham. A few sharp climbs in the middle and latter sections. My legs are still feeling it. The weather was good. I felt alright on the bike and enjoyed the day out.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/march_rrty/cover.jpeg" class="glightbox" data-gallery="gallery" data-glightbox="title: Pleasure House Lane between Sutton Valence and East Sutton. I love a quirky road name.">
          <img src="/march_rrty/cover_hu_84bccabb58d0750c.jpeg" alt="A green street sign reading &ldquo;Pleasure House Lane, Borough of Maidstone&rdquo; mounted on black posts beside a narrow, wet rural lane disappearing into misty farmland, with muddy verges and hedgerows on a damp winter morning" loading="lazy" style="display: inline-block;">
        </a><figcaption>Pleasure House Lane between Sutton Valence and East Sutton. I love a quirky road name.</figcaption>
    </figure>

<a href="/march_rrty/20260322_folkstone_200.jpeg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/march_rrty/20260322_folkstone_200_hu_9d925816f515009a.jpeg" alt="A map of a 203 km anti-clockwise loop cycling route in Kent, south-east England, recorded on a Hammerhead Karoo GPS device. Below the map, key stats are displayed: 203 km distance, 2,127 m elevation gain, and a moving time of 9 hours 50 minutes. An elevation profile graph shows a largely rolling profile with notable climbs in the latter half of the route, consistent with the North and East Kent Downs." loading="lazy" style="display: inline-block;">
      </a>

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/march_rrty/20260322_folkstone.jpeg" class="glightbox" data-gallery="gallery" data-glightbox="title: Looking over the M20 and towards Castle Hill near Folkstone">
          <img src="/march_rrty/20260322_folkstone_hu_a38452bf63576adb.jpeg" alt="A panoramic photograph taken from high on the chalk downs above Folkestone, Kent, looking north-west across the town. In the foreground, a wide green valley floor is flanked by steep chalk and scrub hillsides. A multi-span concrete road viaduct carrying the A20/M20 approach road cuts diagonally across the valley, supported on tall concrete pillars. To the left, light industrial and warehouse buildings sit alongside a straight road leading into the town center. Beyond, rows of red-brick suburban housing spread across the middle distance. In the background, further chalk hills and the wider Kent landscape fade into a pale winter haze. There are bare deciduous trees and dormant scrub vegetation typical in early spring." loading="lazy" style="display: inline-block;">
        </a><figcaption>Looking over the M20 and towards Castle Hill near Folkstone</figcaption>
    </figure>]]></content:encoded></item><item><title>Tannus Armour Tyre Inserts</title><link>https://www.bongotwisty.blog/tannus_armour_tyre_inserts/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/tannus_armour_tyre_inserts/</guid><description>&lt;p&gt;In November last year either the front or rear tyre on my bike got a puncture on just about every ride. The tyres (Schwalbe Evolution Marathon Supremes 700 x 40mm) were fairly new. Lots of rain, shards of Kentish flint, thorns and broken glass all conspired against me getting home without having to stop at least once to patch a tube and fit the spare. I was getting a bit fed up with it.&lt;/p&gt;</description><content:encoded><![CDATA[<p>In November last year either the front or rear tyre on my bike got a puncture on just about every ride. The tyres (Schwalbe Evolution Marathon Supremes 700 x 40mm) were fairly new. Lots of rain, shards of Kentish flint, thorns and broken glass all conspired against me getting home without having to stop at least once to patch a tube and fit the spare. I was getting a bit fed up with it.</p>
<p>Toyed with the idea of fitting Marathon Plus tyres since they&rsquo;re pretty impervious to all the usual suspects. Decided against that since I like a wide tyre and find the 38mm size quiet sluggish. I&rsquo;ve tried tubeless and they&rsquo;ve been no good when it comes to tyres being sliced with flint, which happens quite a lot where I live.</p>
<p>After a bit of time searching for options <a href="https://www.tannus.co.uk/products/tannus-armour-tyre-insert-for-700c-wheels?variant=41828103356592">Tannus Armour Tyre Inserts</a> popped up. The reviews looked good. Not tried them before. Thought I may as well give them a go. Nothing much to lose.</p>
<p>Fitted an insert into each wheel the first week of December. Been out riding most days since then in all weathers. Not a single puncture.</p>
<p>They do add a bit of weight but seem lighter with the Supremes than I remember the Marathon Plus feeling. Since I ride a heavy steel bike what they do add doesn&rsquo;t make that much of a difference anyway. Going fast is less of a priority to me than it is to keep going.</p>
<p>In short I would recommend them for anything similar to my use case - long rides in all weathers on crappy surfaces with a good helping of road shrapnel sprinkled on top.</p>
]]></content:encoded></item><item><title>The Postbox of the Future</title><link>https://www.bongotwisty.blog/postbox_of_the_future/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/postbox_of_the_future/</guid><description>&lt;p&gt;I love a &lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/"&gt;postbox topper&lt;/a&gt;. A post box I pass by on a regular basis nearly always has one on top. This may be the last of it&amp;rsquo;s kind on this one -&lt;/p&gt;
&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20260226_whale_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Sea Creatures, Higham"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20260226_whale_higham_hu_4db5b01a27e0cc2e.jpg" alt="Knitted ocean‑themed post box topper in Higham featuring a large grey whale surrounded by colourful woollen fish, seaweed, and small sea creatures on a crocheted beige cover." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Sea Creatures, Higham&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;The postbox in question is set to become a &amp;ldquo;postbox of the future&amp;rdquo;. The adapted post box will accept both letters and small parcels (up to about shoebox size), using a barcode‑activated drawer instead of just a letter slot. A solar panel on the top of the box powers the barcode scanner and a motorised drop‑down parcel drawer.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I love a <a href="https://www.bongotwisty.blog/gallery/postbox_toppers/">postbox topper</a>. A post box I pass by on a regular basis nearly always has one on top. This may be the last of it&rsquo;s kind on this one -</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20260226_whale_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Sea Creatures, Higham">
          <img src="/gallery/postbox_toppers/20260226_whale_higham_hu_4db5b01a27e0cc2e.jpg" alt="Knitted ocean‑themed post box topper in Higham featuring a large grey whale surrounded by colourful woollen fish, seaweed, and small sea creatures on a crocheted beige cover." loading="lazy" style="display: inline-block;">
        </a><figcaption>Sea Creatures, Higham</figcaption>
    </figure><p>The postbox in question is set to become a &ldquo;postbox of the future&rdquo;. The adapted post box will accept both letters and small parcels (up to about shoebox size), using a barcode‑activated drawer instead of just a letter slot. A solar panel on the top of the box powers the barcode scanner and a motorised drop‑down parcel drawer.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/postbox_of_the_future/20260304_postbox_of_the_future.jpeg" class="glightbox" data-gallery="gallery" data-glightbox="title: Migration">
          <img src="/postbox_of_the_future/20260304_postbox_of_the_future_hu_545b655b66282a6b.jpeg" alt="A black-wrapped postbox with a colourful knitted sea-life topper and a sign reading “Out of service – postbox of the future coming soon,” standing beside a stone wall at dusk." loading="lazy" style="display: inline-block;">
        </a><figcaption>Migration</figcaption>
    </figure><p>Good news for people with parcels to post. Not so good for the sea creatures and perhaps the skilled yarn bomber who creates these. You can&rsquo;t cover solar panels with a woolly hat.</p>
<p>The <a href="https://www.bbc.co.uk/news/articles/cj4q90jyxe0o">BBC</a> reported that one MP said the new boxes “puts yarn‑bombing traditions at risk” in places where a topped box is being replaced with a solar model. Royal Mail told the BBC that, &ldquo;With 115,000 postboxes across the UK, there are plenty that remain unaltered and that will remain the case in the future.&rdquo;</p>
<p>As much as I like the toppers I&rsquo;m on the side of progress. Royal Mail make a fair point. I&rsquo;m also confident it&rsquo;s pretty much a given that yarn-bombers are well able to creatively adapt. Be good to see if and how they do.</p>
]]></content:encoded></item><item><title>audax: Ham Sandwich 200k DIY</title><link>https://www.bongotwisty.blog/pear_pies/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/pear_pies/</guid><description>&lt;p&gt;Out on a 200k ride last weekend. The second for February to continue with the ongoing RRtY &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; effort. I&amp;rsquo;m doing two simultaneously this time round — a double year. I started in October 2025 after completing the 2nd consecutive year of rides in September. I&amp;rsquo;m aiming for a chain of ten.&lt;/p&gt;
&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/pear_pies/20260222_Kent_200.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Route Map"&gt;
&lt;img src="https://www.bongotwisty.blog/pear_pies/20260222_Kent_200_hu_20bf7e0bfe55f9af.jpg" alt="Cycling route map around Kent with a red GPS track, showing 204 km distance, 2,442 m elevation gain and 9 h 53 moving time." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Route Map&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;I baked some tasty little pear pies to help fuel the ride. Had some gluten free dough left over from some pies I made last week to share with colleages at work. The dough was all the better for having been sitting in the fridge for a week. Gluten free dough makes the pies a bit softer when baked. The pies were sweet and moist but they held together okay in the bar bag for the duration of the ride.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Out on a 200k ride last weekend. The second for February to continue with the ongoing RRtY <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> effort. I&rsquo;m doing two simultaneously this time round — a double year. I started in October 2025 after completing the 2nd consecutive year of rides in September. I&rsquo;m aiming for a chain of ten.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/pear_pies/20260222_Kent_200.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Route Map">
          <img src="/pear_pies/20260222_Kent_200_hu_20bf7e0bfe55f9af.jpg" alt="Cycling route map around Kent with a red GPS track, showing 204 km distance, 2,442 m elevation gain and 9 h 53 moving time." loading="lazy" style="display: inline-block;">
        </a><figcaption>Route Map</figcaption>
    </figure><p>I baked some tasty little pear pies to help fuel the ride. Had some gluten free dough left over from some pies I made last week to share with colleages at work. The dough was all the better for having been sitting in the fridge for a week. Gluten free dough makes the pies a bit softer when baked. The pies were sweet and moist but they held together okay in the bar bag for the duration of the ride.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/pear_pies/20260221_pear_pies.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Pear Pies">
          <img src="/pear_pies/20260221_pear_pies_hu_abc764f8a194557b.jpg" alt="Plate stacked with several small golden-brown baked pear on a dark kitchen worktop." loading="lazy" style="display: inline-block;">
        </a><figcaption>Pear Pies</figcaption>
    </figure><p>The idea was to have one every 60 - 90 minutes. That was not necessary as on the way round I stopped off at my sisters house in Deal and the parents house in Tankerton, and was supplied with coffee and cake at both. Nice.</p>
<p>Pulled up at a flooded country lane just before the 70k mark (South Barham Road). At first glance it looked like I was going to get wet. I&rsquo;ve ridden this route a good few times now so was not put off by the road closed signs I&rsquo;d breezed past on the way down the road. There&rsquo;s an elevated path which runs along side that I knew would keep me away from the water. All the same it was the most flooded I&rsquo;ve seen it in the last couple of years.</p>
<div class="gallery-grid">
<figure>
    <a href="/pear_pies/20260222_flooded_lane.jpg" class="glightbox" data-title="Flooded Lane">
      <img src="/pear_pies/20260222_flooded_lane_hu_a21eed45405231b.jpg" alt="Narrow tree-lined lane heavily flooded with brown rainwater, with a muddy verge and wooden handrail on the left." title="Flooded Lane" width="400" height="300">
    </a>
    <figcaption>Flooded Lane</figcaption>
  </figure>
<figure>
    <a href="/pear_pies/20260222_dry_path.jpg" class="glightbox" data-title="Dry Path">
      <img src="/pear_pies/20260222_dry_path_hu_96ad1213eb710823.jpg" alt="Muddy footpath with wooden steps beside a narrow country lane flooded with shallow water between hedgerows." title="Dry Path" width="400" height="300">
    </a>
    <figcaption>Dry Path</figcaption>
  </figure>
</div>
<p>On the way to Deal the route takes in a road called Strakers Hill. Not sure why but the name really appeals to me. Often thought I should stop to take a picture. This time I did. For some odd reason that tune <a href="https://www.nytimes.com/2022/09/29/arts/music/coolio-gangstas-paradise.html">&ldquo;Gangsters Paradise&rdquo;</a> always comes to mind when I see the sign. There is no connection; the tune and lyrics both grate on me. It was played on repeat at a nightclub (the Florida 2000) I went to in Narobi when I visted Kenya in 1997. I have no idea why the name reminds me of the tune. One day I&rsquo;m sure it&rsquo;ll come to me why &ldquo;Straker&rdquo; means something to me.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/pear_pies/20260221_strakers_hill.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Strakers Hill">
          <img src="/pear_pies/20260221_strakers_hill_hu_9507af7c4e1cb691.jpg" alt="Street sign reading “STRAKERS HILL” on a bank beside a quiet country road with wet tarmac and trees ahead." loading="lazy" style="display: inline-block;">
        </a><figcaption>Strakers Hill</figcaption>
    </figure><p>A few miles out of Deal I pass by the most famous road sign I know of. I feel compelled to stop and take a photo every time. I have dozens of them. From here I headed over to Canterbury, then to Tankerton, from Tankerton to Faversham, and then back home to Medway.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/pear_pies/2026_02_22_ham_sandwich.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Ham Sandwich">
          <img src="/pear_pies/2026_02_22_ham_sandwich_hu_9b3508c44a63f2ee.jpg" alt="Touring bike leaned against a traditional fingerpost sign at a rural crossroads showing directions to Ham, Sandwich, Finglesham and Deal." loading="lazy" style="display: inline-block;">
        </a><figcaption>Ham Sandwich</figcaption>
    </figure><div class="custom-divider">•• ━━━━━ ••●•• ━━━━━ ••</div>
<p>I enjoyed the ride. First one all week. I&rsquo;d been feeling a bit run down and under the weather and thought it best to rest up. Started off feeling pretty good. Better than I expected. Finished off okay but pleased I had no further to go.</p>
<p>The year so far has not been great in terms of getting regular rides in. I got a bit distracted by following a training &ldquo;plan&rdquo;. That broke my routine and was in turn impacted by giving blood, which I would normally do and then just carry on riding regardless. What gains I&rsquo;ve got from HR zone training have I think been diminished by a combination of these factors. Thinking to go back to what was my regular pattern of riding and maybe use a couple of those rides a week to get in a spot of HR zone training on the way round. We shall see.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>See the foot notes in <a href="https://www.bongotwisty.blog/neighbourhood_200/">this post</a> if you&rsquo;re interested in what RRtY means.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Sea Creatures, Higham</title><link>https://www.bongotwisty.blog/sea_creatures_higham/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/sea_creatures_higham/</guid><description>&lt;p&gt;This put a big smile on my face. Saw it while out on a ride this morning before work. That it was not cold, dark and raining also helped.&lt;/p&gt;
&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20260226_whale_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Sea Creatures, Higham"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20260226_whale_higham_hu_4db5b01a27e0cc2e.jpg" alt="Knitted ocean‑themed post box topper in Higham featuring a large grey whale surrounded by colourful woollen fish, seaweed, and small sea creatures on a crocheted beige cover." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Sea Creatures, Higham&lt;/figcaption&gt;
&lt;/figure&gt;</description><content:encoded><![CDATA[<p>This put a big smile on my face. Saw it while out on a ride this morning before work. That it was not cold, dark and raining also helped.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20260226_whale_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Sea Creatures, Higham">
          <img src="/gallery/postbox_toppers/20260226_whale_higham_hu_4db5b01a27e0cc2e.jpg" alt="Knitted ocean‑themed post box topper in Higham featuring a large grey whale surrounded by colourful woollen fish, seaweed, and small sea creatures on a crocheted beige cover." loading="lazy" style="display: inline-block;">
        </a><figcaption>Sea Creatures, Higham</figcaption>
    </figure>]]></content:encoded></item><item><title>...and this little piggy</title><link>https://www.bongotwisty.blog/little_piggy/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/little_piggy/</guid><description>&lt;p&gt;Nearly missed this one. Tucked away in the bushes just outside of Barham village.&lt;/p&gt;
&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20260222_piggy_barham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Little Piggy, Barham village"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20260222_piggy_barham_hu_d008c46b23b0208a.jpg" alt="Crocheted multicoloured pig postbox topper with long eyelashes sitting on a red “Post Office” box in Barham, Kent." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Little Piggy, Barham village&lt;/figcaption&gt;
&lt;/figure&gt;</description><content:encoded><![CDATA[<p>Nearly missed this one. Tucked away in the bushes just outside of Barham village.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20260222_piggy_barham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Little Piggy, Barham village">
          <img src="/gallery/postbox_toppers/20260222_piggy_barham_hu_d008c46b23b0208a.jpg" alt="Crocheted multicoloured pig postbox topper with long eyelashes sitting on a red “Post Office” box in Barham, Kent." loading="lazy" style="display: inline-block;">
        </a><figcaption>Little Piggy, Barham village</figcaption>
    </figure>]]></content:encoded></item><item><title>Webmentions</title><link>https://www.bongotwisty.blog/webmentions/</link><pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/webmentions/</guid><description>&lt;p&gt;This site supports &lt;a href="https://indieweb.org/Webmention"&gt;Webmentions&lt;/a&gt;. If your site sends Webmentions and you link to a page here, your mention should be delivered to my Webmention endpoint.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Receiving&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I use &lt;a href="https://webmention.io"&gt;webmention.io&lt;/a&gt; as an inbox for this space:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Endpoint: &lt;code&gt;https://webmention.io/bongotwisty.blog/webmention&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The endpoint is advertised via a &lt;code&gt;&amp;lt;link rel=&amp;quot;webmention&amp;quot;&amp;gt;&lt;/code&gt; tag in the HTML &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; of each page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’m not currently rendering Webmentions publicly on posts. I check them via the webmention.io dashboard and may follow links or respond, but they’re not shown as a visible comments thread.&lt;/p&gt;</description><content:encoded><![CDATA[<p>This site supports <a href="https://indieweb.org/Webmention">Webmentions</a>. If your site sends Webmentions and you link to a page here, your mention should be delivered to my Webmention endpoint.</p>
<p><strong>Receiving</strong></p>
<p>I use <a href="https://webmention.io">webmention.io</a> as an inbox for this space:</p>
<ul>
<li>Endpoint: <code>https://webmention.io/bongotwisty.blog/webmention</code></li>
<li>The endpoint is advertised via a <code>&lt;link rel=&quot;webmention&quot;&gt;</code> tag in the HTML <code>&lt;head&gt;</code> of each page.</li>
</ul>
<p>I’m not currently rendering Webmentions publicly on posts. I check them via the webmention.io dashboard and may follow links or respond, but they’re not shown as a visible comments thread.</p>
<p><strong>Sending</strong></p>
<p>This is a static site built with Hugo and deployed via GitHub Pages. Outgoing Webmentions are sent automatically as part of the publish pipeline:</p>
<ul>
<li>After Hugo builds the site, a Python script runs on each deploy.</li>
<li>It looks at Markdown content files that changed in the latest commits, maps them to their generated HTML pages, and scans those pages for external links.</li>
<li>For each external link, it:
<ul>
<li>Checks for a Webmention endpoint on the target (HTTP <code>Link</code> headers or <code>&lt;link rel=&quot;webmention&quot;&gt;</code> in the HTML).</li>
<li>Sends a Webmention (<code>source</code> = my post URL, <code>target</code> = your URL) if an endpoint is found.</li>
<li>Records <code>source:target</code> pairs in a local JSON cache so the same Webmention is not re-sent on future builds.</li>
</ul>
</li>
</ul>
<p>To keep the noise down:</p>
<ul>
<li>Only posts whose source files have actually changed are considered on each deploy.</li>
<li>There is a cap on how many new Webmentions are sent per run.</li>
<li>Content prior to 2017 is ignored for automated catch-up.</li>
</ul>
<p><strong>Expectations</strong></p>
<p>If you run a Webmention-aware site or use a service like <a href="https://micro.blog">Micro.blog</a> or webmention.io for your own domain, linking here should result in a Webmention being delivered to my endpoint. Likewise, when I link to your Webmention enabled posts from newer content, my site will attempt to notify you once via Webmention as part of the build process.</p>
<p><strong>Why I’m using Webmentions</strong></p>
<p>I see Webmentions as a lightweight way to have cross-site conversations without depending on a single social platform. By adding them to my Hugo + GitHub Pages workflow, I can:</p>
<ul>
<li>Acknowledge other people’s writing when I link to them from newer posts, without manually sending notifications.</li>
<li>Give Webmention enabled sites a quiet, one-time signal that I’ve referenced their work, which they can choose to display, archive, or ignore as they see fit.</li>
<li>Keep my own site simple and static while still participating in a small social layer on the web.</li>
</ul>
<p>At the moment I’m using Webmentions mainly for discovery and personal awareness. That may evolve over time into a public comment system, but for now the goal is to support and take part in the broader IndieWeb ecosystem in a low-noise, respectful way.</p>
]]></content:encoded></item><item><title>Learning to Sync</title><link>https://www.bongotwisty.blog/learning-to-sync/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/learning-to-sync/</guid><description>&lt;p&gt;I could not leave good enough alone. I&amp;rsquo;ve continued to tweak the script that syncs music files between my desktop and &lt;a href="https://www.navidrome.org/about/"&gt;Navidrome&lt;/a&gt; server.&lt;/p&gt;
&lt;p&gt;The original script ignored music files that were not mp3s. This was due to the limitations of the CPU in the laptop used as a server. It&amp;rsquo;s around 14 years old and even when new was not up to much beyond web browsing and playing media files. Having flacs on the server requires the CPU to transcode them on the fly. It&amp;rsquo;s not up to that hence I filtered out flacs from the sync.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I could not leave good enough alone. I&rsquo;ve continued to tweak the script that syncs music files between my desktop and <a href="https://www.navidrome.org/about/">Navidrome</a> server.</p>
<p>The original script ignored music files that were not mp3s. This was due to the limitations of the CPU in the laptop used as a server. It&rsquo;s around 14 years old and even when new was not up to much beyond web browsing and playing media files. Having flacs on the server requires the CPU to transcode them on the fly. It&rsquo;s not up to that hence I filtered out flacs from the sync.</p>
<p>The thing is I have been growing my collection of flac files and want to listen to those tunes as well.</p>
<p>I had the idea to modify the script such that flacs would be converted to mp3s on my desktop, the newly created mp3s saved in a staging directory, sync that directory to the server and leave the flacs where they were, unchanged. Sounded pretty simple.</p>
<p>I&rsquo;ve never been quick to get a mental model of sync workflows. Not one to give up trying I stuck with it for a bit more time than might seem reasonable.</p>
<p>I got the core functionality sorted out pretty quickly. It took a lot longer to work out how to correctly manage and check cache files against content on the server, the desktop and the staging directory. It took a least a dozen attempts to get it right. Each failed attempt involved flacs being converted, mp3s being synced, cache files being checked against content, then the transferred mp3s being deleted from the server. Thankfully it was only the mp3s created from the conversion process that were being deleted but still&hellip; it became rather tiresome. I almost gave up.</p>
<p>Happy to say I got it working in the end. The script now generates the desired results. It&rsquo;s lovely to see it doing what I was after. Very satisfying. Aside from getting to grips with <a href="https://rclone.org">Rclone</a> and syncing I have also gained a respectful appreciation of dry runs. It&rsquo;s been an exercise of learning from my mistakes.</p>
<p>There are further tweaks I really should make. Main gaps are around resilience during interruption and better logging. Flac conversion could also be made faster with parallelisation. That&rsquo;s not strictly necessary but it would be nice to have. Like I said. I cannot leave good enough alone.</p>
]]></content:encoded></item><item><title>Setting Up a Personal Music Server</title><link>https://www.bongotwisty.blog/personal_music_server/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/personal_music_server/</guid><description>&lt;p&gt;A few months ago I &lt;a href="https://www.bongotwisty.blog/set_the_music_free/"&gt;set my music free&lt;/a&gt; with an instance of the Navidrome Music Streaming Server on &lt;a href="https://www.pikapods.com"&gt;Pikapod&lt;/a&gt;. It was very easy. I was up and running in no time.&lt;/p&gt;
&lt;p&gt;There was an old laptop that I could have used as a server but was put off by the thought of wrangling network settings. I had my fill of that with a Nextcloud instance on a Raspberry Pie some years ago.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A few months ago I <a href="https://www.bongotwisty.blog/set_the_music_free/">set my music free</a> with an instance of the Navidrome Music Streaming Server on <a href="https://www.pikapods.com">Pikapod</a>. It was very easy. I was up and running in no time.</p>
<p>There was an old laptop that I could have used as a server but was put off by the thought of wrangling network settings. I had my fill of that with a Nextcloud instance on a Raspberry Pie some years ago.</p>
<p>Pikapod provides a great service at a good price and profit shares with the developers of the open source apps it hosts. All good. I was happy with the service.</p>
<p>Some time after I learned about <a href="https://tailscale.com">Tailscale</a>. It basically removes the pain of configuring a secure network to facilitate remote access to a local server. For my use case it&rsquo;s free. What&rsquo;s not to like?</p>
<p>What with an old unused laptop lying around, knowing I could do this and with a bit of time on my hands I decided to go for it. Guided by an LLM it was all quite straight forward. As I am writing this post the process of syncing several hundred GBs of music files to the local server is completing in the background. All working as expected. Streaming on local and remote networks.</p>
<p>Happy days. I&rsquo;m now one of the increasing number of people whose hosting their own music streaming service.</p>
<p>Here&rsquo;s a few details -</p>
<hr>
<h2 id="server">Server</h2>
<ul>
<li><strong>Model</strong>: Lenovo IdeaPad Flex 15D</li>
<li><strong>CPU</strong>: Intel Atom x7-Z8750 (4 cores, 1.6-2.56 GHz)</li>
<li><strong>RAM</strong>: 4GB</li>
<li><strong>OS</strong>: Ubuntu Server 24.04 LTS</li>
</ul>
<hr>
<h2 id="cpu-constraints">CPU Constraints</h2>
<ul>
<li><strong>No real-time transcoding</strong> - CPU will struggle with FLAC→MP3 conversion</li>
<li><strong>Solution</strong>: Sync only MP3 files, pre-convert lossless formats</li>
<li><strong>Limited concurrent streams</strong> - Max 2-3 simultaneous users</li>
<li><strong>Power efficient</strong>: 2W TDP, suitable for 24/7 operation</li>
</ul>
<hr>
<h2 id="rclone-filter-file">rclone Filter File</h2>






<pre tabindex="0"><code># MP3-only filter (optimized for Atom processor - no transcoding needed)

# Include MP3 files ONLY
+ *.mp3
+ *.MP3

# Include album artwork
+ *.jpg
+ *.jpeg
+ *.png
+ *.JPG
+ *.JPEG
+ *.PNG
+ cover.*
+ folder.*
+ Cover.*
+ Folder.*

# Include playlist files
+ *.m3u
+ *.m3u8
+ *.M3U

# Exclude ALL other audio formats (prevent transcoding load)
- *.flac
- *.FLAC
- *.m4a
- *.M4A
- *.aac
- *.AAC
- *.ogg
- *.OGG
- *.opus
- *.OPUS
- *.wav
- *.WAV
- *.wma
- *.WMA
- *.ape
- *.alac
- *.aiff

# Exclude system files
- .DS_Store
- Thumbs.db
- desktop.ini
- .directory

# Exclude temporary/hidden files
- *.tmp
- *.temp
- *~
- .~*
- .*

# Exclude text/documentation
- *.txt
- *.pdf
- *.doc
- *.docx
- *.nfo
- *.log
- *.cue

# Include directories
+ */</code></pre>
<h2 id="sync-script">Sync Script</h2>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  1</span><span><span style="color:#6c7086;font-style:italic">#!/bin/bash
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  2</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  3</span><span><span style="color:#6c7086;font-style:italic">################################################################################</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  4</span><span><span style="color:#6c7086;font-style:italic"># Navidrome Local Server Music Sync Script</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  5</span><span><span style="color:#6c7086;font-style:italic"># Syncs music from local storage to Tailscale-connected Navidrome server</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  6</span><span><span style="color:#6c7086;font-style:italic"># Optimized for low-power Atom processor</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  7</span><span><span style="color:#6c7086;font-style:italic">################################################################################</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  8</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">  9</span><span><span style="color:#6c7086;font-style:italic"># === CONFIGURATION ===</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 10</span><span><span style="color:#f5e0dc">MUSIC_SOURCE</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;/your/music/directory&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 11</span><span><span style="color:#f5e0dc">RCLONE_REMOTE</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;what_you_named_your_navidrome_server:/your/music/directory&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 12</span><span><span style="color:#f5e0dc">FILTER_FILE</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$HOME</span><span style="color:#a6e3a1">/.config/rclone/what_you_named_your_filter.txt&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 13</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 14</span><span><span style="color:#6c7086;font-style:italic"># Navidrome API settings</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 15</span><span><span style="color:#f5e0dc">NAVIDROME_URL</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;http://XXX.XX.XX.XX:4533&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 16</span><span><span style="color:#f5e0dc">NAVIDROME_USER</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;YOUR USER NAME&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 17</span><span><span style="color:#f5e0dc">NAVIDROME_PASS</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;YOUR PASSWORD&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 18</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 19</span><span><span style="color:#6c7086;font-style:italic"># === SCRIPT START ===</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 20</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;========================================&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 21</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Navidrome Local Server Music Sync&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 22</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Started: </span><span style="color:#cba6f7">$(</span>date<span style="color:#cba6f7">)</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 23</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;========================================&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 24</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 25</span><span><span style="color:#6c7086;font-style:italic"># Check if source directory exists</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 26</span><span><span style="color:#cba6f7">if</span> <span style="color:#89dceb;font-weight:bold">[</span> ! -d <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$MUSIC_SOURCE</span><span style="color:#a6e3a1">&#34;</span> <span style="color:#89dceb;font-weight:bold">]</span>; <span style="color:#cba6f7">then</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 27</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;ERROR: Music source directory not found: </span><span style="color:#f5e0dc">$MUSIC_SOURCE</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 28</span><span>    <span style="color:#89dceb">exit</span> <span style="color:#fab387">1</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 29</span><span><span style="color:#cba6f7">fi</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 30</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 31</span><span><span style="color:#6c7086;font-style:italic"># Check if filter file exists</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 32</span><span><span style="color:#cba6f7">if</span> <span style="color:#89dceb;font-weight:bold">[</span> ! -f <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$FILTER_FILE</span><span style="color:#a6e3a1">&#34;</span> <span style="color:#89dceb;font-weight:bold">]</span>; <span style="color:#cba6f7">then</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 33</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;WARNING: Filter file not found: </span><span style="color:#f5e0dc">$FILTER_FILE</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 34</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Proceeding without filters...&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 35</span><span>    <span style="color:#f5e0dc">FILTER_ARG</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 36</span><span><span style="color:#cba6f7">else</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 37</span><span>    <span style="color:#f5e0dc">FILTER_ARG</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#a6e3a1">&#34;--filter-from </span><span style="color:#f5e0dc">$FILTER_FILE</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 38</span><span><span style="color:#cba6f7">fi</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 39</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 40</span><span><span style="color:#6c7086;font-style:italic"># Perform rclone sync with optimized settings for local network</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 41</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 42</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Starting music sync...&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 43</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Source: </span><span style="color:#f5e0dc">$MUSIC_SOURCE</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 44</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Destination: </span><span style="color:#f5e0dc">$RCLONE_REMOTE</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 45</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 46</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 47</span><span>rclone sync <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$MUSIC_SOURCE</span><span style="color:#a6e3a1">&#34;</span> <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$RCLONE_REMOTE</span><span style="color:#a6e3a1">&#34;</span> <span style="color:#89b4fa">\
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 48</span><span>    <span style="color:#f5e0dc">$FILTER_ARG</span> <span style="color:#89b4fa">\
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 49</span><span>    --progress <span style="color:#89b4fa">\
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 50</span><span>    --stats 10s <span style="color:#89b4fa">\
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 51</span><span>    --transfers <span style="color:#fab387">8</span> <span style="color:#89b4fa">\
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 52</span><span>    --checkers <span style="color:#fab387">16</span> <span style="color:#89b4fa">\
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 53</span><span>    --stats-one-line <span style="color:#89b4fa">\
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 54</span><span>    --bwlimit-file 50M
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 55</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 56</span><span><span style="color:#6c7086;font-style:italic"># Check sync result</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 57</span><span><span style="color:#f5e0dc">SYNC_EXIT_CODE</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#f5e0dc">$?</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 58</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 59</span><span><span style="color:#cba6f7">if</span> <span style="color:#89dceb;font-weight:bold">[</span> <span style="color:#f5e0dc">$SYNC_EXIT_CODE</span> -eq <span style="color:#fab387">0</span> <span style="color:#89dceb;font-weight:bold">]</span>; <span style="color:#cba6f7">then</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 60</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 61</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;✓ Sync completed successfully!&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 62</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 63</span><span>    
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 64</span><span>    <span style="color:#6c7086;font-style:italic"># Trigger Navidrome library scan</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 65</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Triggering Navidrome library scan...&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 66</span><span>    
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 67</span><span>    <span style="color:#6c7086;font-style:italic"># Generate salt and MD5 token for authentication</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 68</span><span>    <span style="color:#f5e0dc">SALT</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#cba6f7">$(</span>date +%s | md5sum | cut -d<span style="color:#a6e3a1">&#39; &#39;</span> -f1 | cut -c1-12<span style="color:#cba6f7">)</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 69</span><span>    <span style="color:#f5e0dc">TOKEN</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#cba6f7">$(</span><span style="color:#89dceb">echo</span> -n <span style="color:#a6e3a1">&#34;</span><span style="color:#a6e3a1">${</span><span style="color:#f5e0dc">NAVIDROME_PASS</span><span style="color:#a6e3a1">}${</span><span style="color:#f5e0dc">SALT</span><span style="color:#a6e3a1">}</span><span style="color:#a6e3a1">&#34;</span> | md5sum | cut -d<span style="color:#a6e3a1">&#39; &#39;</span> -f1<span style="color:#cba6f7">)</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 70</span><span>    
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 71</span><span>    <span style="color:#6c7086;font-style:italic"># Call the startScan API</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 72</span><span>    <span style="color:#f5e0dc">SCAN_RESPONSE</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#cba6f7">$(</span>curl -s <span style="color:#a6e3a1">&#34;</span><span style="color:#a6e3a1">${</span><span style="color:#f5e0dc">NAVIDROME_URL</span><span style="color:#a6e3a1">}</span><span style="color:#a6e3a1">/rest/startScan?u=</span><span style="color:#a6e3a1">${</span><span style="color:#f5e0dc">NAVIDROME_USER</span><span style="color:#a6e3a1">}</span><span style="color:#a6e3a1">&amp;t=</span><span style="color:#a6e3a1">${</span><span style="color:#f5e0dc">TOKEN</span><span style="color:#a6e3a1">}</span><span style="color:#a6e3a1">&amp;s=</span><span style="color:#a6e3a1">${</span><span style="color:#f5e0dc">SALT</span><span style="color:#a6e3a1">}</span><span style="color:#a6e3a1">&amp;v=1.16.1&amp;c=rclone_sync&amp;f=json&#34;</span><span style="color:#cba6f7">)</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 73</span><span>    
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 74</span><span>    <span style="color:#6c7086;font-style:italic"># Check response</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 75</span><span>    <span style="color:#cba6f7">if</span> <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$SCAN_RESPONSE</span><span style="color:#a6e3a1">&#34;</span> | grep -q <span style="color:#a6e3a1">&#39;&#34;status&#34;:&#34;ok&#34;&#39;</span>; <span style="color:#cba6f7">then</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 76</span><span>        <span style="color:#cba6f7">if</span> <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$SCAN_RESPONSE</span><span style="color:#a6e3a1">&#34;</span> | grep -q <span style="color:#a6e3a1">&#39;&#34;scanning&#34;:true&#39;</span>; <span style="color:#cba6f7">then</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 77</span><span>            <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;✓ Library scan triggered successfully!&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 78</span><span>            <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;  Navidrome is now scanning your music library...&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 79</span><span>        <span style="color:#cba6f7">else</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 80</span><span>            <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;✓ Scan request accepted&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 81</span><span>        <span style="color:#cba6f7">fi</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 82</span><span>    <span style="color:#cba6f7">elif</span> <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$SCAN_RESPONSE</span><span style="color:#a6e3a1">&#34;</span> | grep -q <span style="color:#a6e3a1">&#39;&#34;status&#34;:&#34;failed&#34;&#39;</span>; <span style="color:#cba6f7">then</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 83</span><span>        <span style="color:#f5e0dc">ERROR_MSG</span><span style="color:#89dceb;font-weight:bold">=</span><span style="color:#cba6f7">$(</span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$SCAN_RESPONSE</span><span style="color:#a6e3a1">&#34;</span> | grep -o <span style="color:#a6e3a1">&#39;&#34;message&#34;:&#34;[^&#34;]*&#34;&#39;</span> | cut -d<span style="color:#a6e3a1">&#39;&#34;&#39;</span> -f4<span style="color:#cba6f7">)</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 84</span><span>        <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;⚠ Scan failed: </span><span style="color:#f5e0dc">$ERROR_MSG</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 85</span><span>    <span style="color:#cba6f7">else</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 86</span><span>        <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;⚠ Unexpected response&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 87</span><span>        <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;</span><span style="color:#f5e0dc">$SCAN_RESPONSE</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 88</span><span>    <span style="color:#cba6f7">fi</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 89</span><span>    
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 90</span><span><span style="color:#cba6f7">else</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 91</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 92</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;✗ Sync failed with exit code: </span><span style="color:#f5e0dc">$SYNC_EXIT_CODE</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 93</span><span>    <span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Skipping Navidrome scan.&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 94</span><span>    <span style="color:#89dceb">exit</span> <span style="color:#fab387">1</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 95</span><span><span style="color:#cba6f7">fi</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 96</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 97</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 98</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;========================================&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 99</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;Completed: </span><span style="color:#cba6f7">$(</span>date<span style="color:#cba6f7">)</span><span style="color:#a6e3a1">&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">100</span><span><span style="color:#89dceb">echo</span> <span style="color:#a6e3a1">&#34;========================================&#34;</span></span></span></code></pre></div>
<hr>
<h2 id="resources">Resources</h2>
<ul>
<li><strong>Navidrome Docs</strong>: <a href="https://www.navidrome.org/docs/">https://www.navidrome.org/docs/</a></li>
<li><strong>Navidrome Config Options</strong>: <a href="https://www.navidrome.org/docs/usage/configuration-options/">https://www.navidrome.org/docs/usage/configuration-options/</a></li>
<li><strong>Tailscale Docs</strong>: <a href="https://tailscale.com/kb/">https://tailscale.com/kb/</a></li>
<li><strong>rclone Docs</strong>: <a href="https://rclone.org/docs/">https://rclone.org/docs/</a></li>
</ul>
]]></content:encoded></item><item><title>audax: Neighbourhood 200 DiY</title><link>https://www.bongotwisty.blog/neighbourhood_200/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/neighbourhood_200/</guid><description>&lt;p&gt;I started my first RRtY&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; series in October 2023, the second in October 2024 and the third and fourth in October 2025. I&amp;rsquo;m now doing two years simultaneously because&amp;hellip; well it seems manageable and I don&amp;rsquo;t want to take ten years to get the Ultra (x10) RRtY Award. If I keep going with two a year I&amp;rsquo;ll get that in 2029.&lt;/p&gt;
&lt;p&gt;Why you may ask does it matter. Getting the award does not matter at all. It&amp;rsquo;s what goes into getting it and what I get out of that which is what really matters. I suppose that&amp;rsquo;s not so different from any endeavour.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I started my first RRtY<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> series in October 2023, the second in October 2024 and the third and fourth in October 2025. I&rsquo;m now doing two years simultaneously because&hellip; well it seems manageable and I don&rsquo;t want to take ten years to get the Ultra (x10) RRtY Award. If I keep going with two a year I&rsquo;ll get that in 2029.</p>
<p>Why you may ask does it matter. Getting the award does not matter at all. It&rsquo;s what goes into getting it and what I get out of that which is what really matters. I suppose that&rsquo;s not so different from any endeavour.</p>
<p>Each year I have and plan to ride an SR<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> series then a 200k for each of the remaining months of the season. Anything more is a bonus.</p>
<p>So I&rsquo;m five months into the two simultaneous RRtY series I am completing in 2025/2026. Yesterday I rode the first of two rides to get in for February. I followed country lanes and roads I have ridden before and know very well. This was however the first time I joined them all up to make a 200k DiY<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> ride.</p>
<p>Although I covered just over 200k I was never much more than 50k from home at any point. It was grey and drizzly for much of the day which also meant it was fairly mild.</p>
<p>Flatish at the beginning on a loop of the Hoo Peninsula and towards the end on another loop but this time round the Isle of Sheppey. Plenty of climbing and coasting downhill in the middle section across the the North Downs. All in all it was a varied ride that mostly avoided busy roads and showed off the contrasting topography found in North Kent. It would make a great ride on a dry and sunny day.</p>


<a href="/neighbourhood_200/neigbourhood_200.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/neighbourhood_200/neigbourhood_200_hu_ad2132dba4ad8560.jpg" alt="a map of a 206-kilometer route in Kent, England. The red route line begins near Rochester and completes a large, intricate loop covering the Hoo Peninsula, the Isle of Sheppey, and the Faversham area. Below the map, the ride statistics display a total distance of 206 km, an elevation gain of 2,226 meters, and a moving time of 10 hours and 0 minutes. An orange graph across the bottom visualizes the route&rsquo;s elevation profile.
" loading="lazy" style="display: inline-block;">
      </a><p>Anyhow, the ride did not prompt writing this post. I attribute that to my new found interest in fuelling myself on the bike. I have taken to making &ldquo;portable&rdquo; snacks to keep me going while out on the road. Following recipes in the book &ldquo;Feed Zone Portables&rdquo; by Biju Thomas and Allen Limm. I started with making banana and walnut quick crusts, then had a go at some mushroom &amp; swiss frittatas. Yesterday I took a turn with shaped and baked date and almond rice balls. My competence is growing -</p>


<a href="/neighbourhood_200/cover.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/neighbourhood_200/cover_hu_d84caee224a53fd1.jpg" alt="A plate of tasty looking home made shaped and baked date and almond rice balls" loading="lazy" style="display: inline-block;">
      </a><p>I made eleven of them and came back with five. The only other thing I ate on the ride was a packet of Frazzels when I stopped to top up my water bottle. Pretty pleased with that.</p>
<p>Less stopping equals less faffing hence time management improves. I know — 10 hrs. I put that down in part to giving blood the previous Friday. More to the point though is that I can sustain 20kmp/h over very long distances so I&rsquo;m pretty okay with this to help prepare for the ride I have planned from Calais to near enough Lisbon over 11 days in May. Not that I shall be able to bake any such treats on the way but all the same I think it will help develop part of the mindset I need to get there within the time I have to do it.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>The Randonneur Round the Year (RRtY) Award. The award is earned with a validated Brevet de Randonneur (BR<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>) or Brevet de Randonneur Mondiaux (BRM<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup>) completed in each of any 12 consecutive calendar months. There are also RM (Randonneurs Mondiaux) events which are 1200km (usually 90 hour time limit) or longer (time limit based on nominal distance and speed limits similar to those for BR rides<sup id="fnref1:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>)&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>The Super Randonneur (SR) award consists of the BR(M) series: 200 km, 300 km, 400 km, 600 km, all completed in the same Randonneur year.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>DIY events allow riders to plan and schedule their own events and still have them validated by Audax UK. You can choose not only the date of your ride but the route itself and all of the controls<sup id="fnref:6"><a href="#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup> along the way. For simplicity you can ride a Mandatory route DIY by GPS.  For mandatory by GPS DIYs the planned route distance determines your time allowance and points. I always plan and complete a mandatory route of 200km or more (which classify as a BR event) for my DiYs. The minimum speeds set out in <sup id="fnref2:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup> apply.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>BR (Brevets de Randonneurs)  events are at any distance over 200km, and are validated only by AUK. Whilst not dissimilar in conduct to BRM events the speed limits are subtly different.  The maximum time allowed is based on the actual distance of the event and a minimum speed set by the organiser, usually 14.3km/h or 15km/h for events less than 600km. Lower minimum speeds are allowed in the AUK Regulations for longer events.</p>
<table>
  <thead>
      <tr>
          <th>Distance</th>
          <th>Minimum Speed</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>200 to 600 km</td>
          <td>14.3 to 15 km/h</td>
      </tr>
      <tr>
          <td>700 to 1200 km</td>
          <td>13-1/3 km/h</td>
      </tr>
      <tr>
          <td>1300 to 1800 km</td>
          <td>12 km/h</td>
      </tr>
      <tr>
          <td>1900 to 2400 km</td>
          <td>10 km/h</td>
      </tr>
      <tr>
          <td>2500 km</td>
          <td>8-1/3 km/h</td>
      </tr>
  </tbody>
</table>
&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref2:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
<li id="fn:5">
<p>BRM (Brevets de Randonneurs Mondiaux) events are run all around the world under the standard set of rules laid down by the ACP (Audax Club Parisien) and the rides are validated and recorded by them.  They are at standard distances, with a maximum of 5% over distance, and the maximum time limits for each distance is:</p>
<table>
  <thead>
      <tr>
          <th>Distance</th>
          <th>Time Limit</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>200km</td>
          <td>13h30m</td>
      </tr>
      <tr>
          <td>300km</td>
          <td>20h</td>
      </tr>
      <tr>
          <td>400km</td>
          <td>27h</td>
      </tr>
      <tr>
          <td>600km</td>
          <td>40h</td>
      </tr>
      <tr>
          <td>1000km</td>
          <td>75h</td>
      </tr>
  </tbody>
</table>
&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
<li id="fn:6">
<p>It&rsquo;s an Audax thing. Routes are defined by a sequence of checkpoints (controls) to an agreed time schedule, evidenced by &ldquo;proofs of passage&rdquo; collected along the way. Controls are required at regular intervals to allow for rest and refreshment. Controls should be at intervals around the route of between 50 km and 80 km. For GPS DIYs there is no need to be too precise as this is just a summary.&#160;<a href="#fnref:6" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>A Work in Progress</title><link>https://www.bongotwisty.blog/a-work-in-progress/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/a-work-in-progress/</guid><description>&lt;p&gt;A few years ago I was asked by a friend whether I&amp;rsquo;d like to share an allotment. They&amp;rsquo;d been waiting five years for one. They suggested it would be a good way to spend time together, learn about growing your own fruit and veg, and get some exercise in the fresh air. I get plenty of fresh air and exercise but even so I liked the idea so said yes of course I would.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A few years ago I was asked by a friend whether I&rsquo;d like to share an allotment. They&rsquo;d been waiting five years for one. They suggested it would be a good way to spend time together, learn about growing your own fruit and veg, and get some exercise in the fresh air.  I get plenty of fresh air and exercise but even so I liked the idea so said yes of course I would.</p>
<p>The plot was pretty big. Big enough for two. The allotment was in their name but I presumed it would be a fair division of labour, land and produce.</p>
<p>I was happy to put in the hours to tidy the plot up and prep it for growing. I contributed towards the costs of things.</p>
<p>It got to the point where pretty much all of the site had been dug over. My friend had started planting out one half of the plot, asserted ownership of a top section of established soft fruits and was making plans for the remaining land. There was a relatively small area that still needed to be dug and weeded. My friend declared that this was my &lsquo;allotted patch&rsquo;.</p>
<p>I&rsquo;d found myself in a micro feudal system. The council was king. The allotment manager a baron. My friend a knight. I was a peasant. I worked the land, paid my taxes, and was allotted a small patch of left over ground.</p>
<p>Not long after this I told my friend I was handing the keys back. When asked why I said lot&rsquo;s of reasons but that I was choosing to tell them I no longed wanted to invest time and energy in our endeavour. I said I was missing the time riding my bike and coding. This was all true.</p>
<p>They were a bit put out. Disappointed but had been expecting it. They talked about how I had been full of enthusiasm initially but was clearly not up to the &ldquo;hard work of allotmenting&rdquo;. They said they&rsquo;d never have taken on such a big plot if knowing they&rsquo;d be looking after it on their own.  I told them to treat me like a &ldquo;helpful friend&rdquo; and to just ask when they needed support. I have been true to this offer and have helped out every time I&rsquo;ve been asked.</p>
<p>I could have dealt with this better. I should have tactfully challenged their approach and negotiated fairer treatment. I did not. I silently judged them instead. I wrote them off as someone that would only see things the way they saw things. It may have been true. The truth is I was simply not inclined or perhaps confident enough to challenge and argue my case.</p>
<p>The vulnerable/angry child ran the show. It was how I coped with a father who told but did not listen or appear to care. Sadness supplanted by quiet anger. Sullen compliance. Silent critical judgement a substitute for agency and control. Suppress the protest then opt out rather than risk conflict and rejection. In some ways it worked but at the cost of connection and met needs.</p>
<p>It&rsquo;s tragic how survival strategies we used to protect us as children often remain throughout adulthood. Insight alone does not change a thing without courage, action and acceptance of feelings. The last one being the hardest to get a handle on and what gives purpose and direction to the first two. Happy  to say I am a work in progress. If I was not I might never grow up.</p>
]]></content:encoded></item><item><title>The Houses of Parliament</title><link>https://www.bongotwisty.blog/the-houses-of-parliament/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/the-houses-of-parliament/</guid><description>&lt;p&gt;Last weekend spouse and I went to visit the Houses of Parliament. An audio tour. We saw both chambers; the Lords and the Commons. The tour included a lot of lobbies, Westminster and St Stephens halls, the royal gallery, and robing room.&lt;/p&gt;
&lt;p&gt;It was interesting. I&amp;rsquo;m pleased we went. The visit reminded me that the power and authority of the place is very much in the history, traditions and institutional rules. Submission and deference to these being a prerequisite for elected Members and Lords. They may portray importance but must all know their place.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Last weekend spouse and I went to visit the Houses of Parliament. An audio tour. We saw both chambers; the Lords and the Commons. The tour included a lot of lobbies, Westminster and St Stephens halls, the royal gallery, and robing room.</p>
<p>It was interesting. I&rsquo;m pleased we went. The visit reminded me that the power and authority of the place is very much in the history, traditions and institutional rules. Submission and deference to these being a prerequisite for elected Members and Lords. They may portray importance but must all know their place.</p>
<p>It&rsquo;s a wonder how anything ever changes. Perhaps little has. Elaborate theatrics played out again and again over hundreds of years. The same power structures simply changing hands. The benefactors, and those put upon reliably served and kept in their place respectively.</p>
<p>The built environment and general atmosphere felt coercive, overbearing and menacing to me. I was pleased to leave when we did. It&rsquo;s not somewhere I felt comfortable being or would want to visit again.</p>
]]></content:encoded></item><item><title>Cycling: Goals and Methods for 2026</title><link>https://www.bongotwisty.blog/cycling_goals_2026/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/cycling_goals_2026/</guid><description>&lt;p&gt;I completed my annual distance goal at the end of 2025. For 2026 I thought something different would be in order.&lt;/p&gt;
&lt;p&gt;Lat year I rode one route a lot. It took no thought. It was a sure fire way of getting the miles in. The ride was nice enough. Not too hilly, not too flat. A mix of rural lanes and urban roads. Start and finish from home. 50km. I could do a loop before or after work. Towards the end of the year I was riding pretty much on autopilot.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I completed my annual distance goal at the end of 2025. For 2026 I thought something different would be in order.</p>
<p>Lat year I rode one route a lot. It took no thought. It was a sure fire way of getting the miles in. The ride was nice enough. Not too hilly, not too flat. A mix of rural lanes and urban roads. Start and finish from home. 50km. I could do a loop before or after work. Towards the end of the year I was riding pretty much on autopilot.</p>
<p>I thought about adding a bit of variety by planning seven different routes starting and ending at home. Pick one on any given day depending on my mood, the weather, time constraints and so on. Sounded good to me. My average speed has gone down a bit so thought I could work on upping that a bit too.</p>
<p>Average speed makes more sense with a bit of context.</p>
<ul>
<li>I live along the line of the North Downs in Kent. There&rsquo;s not a ride near me that does not involve hills.</li>
<li>My  bike&rsquo;s a Surly Disk Trucker. It&rsquo;s a good fit. Very comfortable. Great for getting about on. Perfect for touring. Bit of a cart horse though.</li>
<li>Peak performance is decades behind me. I&rsquo;m fit and lucky enough not to have any health issues I know about.</li>
</ul>
<p>Articles about creating goals can be found for two a penny, especially in January. Make then SMART. Specific, Measurable, Relevant, Timed. There was one with an example of reducing the index number of visceral body fat rather than simply &ldquo;lose weight&rdquo;.</p>
<p>I&rsquo;m easily distracted. Visceral body fat (VF) is fat that surrounds abdominal organs such as your liver, pancreas, and intestines. It&rsquo;s hidden fat. You can look thin on the outside but be be fat on the inside. There&rsquo;s a few things that contribute to it&rsquo;s build up and it&rsquo;s not all food. It&rsquo;s a particularly unhealthy type of fat that increases the risk of heart disease, stroke, diabetes, cancer and dementia . I&rsquo;m in pretty good shape but have always carried a bit around my middle. Hip to waist ratio is an indicator of VF. Seemed like a good idea to get a measure of my VF and make a reduction of that link up with increasing my average speed. I found out my VF is around the mark of it&rsquo;s okay, don&rsquo;t go higher, losing a bit would be good.</p>
<p>Physiologically and gear wise I&rsquo;m more akin to a diesel engine rather than anything sporty. I had some awareness of heart rate zones. I&rsquo;d also heard the term &ldquo;junk miles&rdquo; but since I don&rsquo;t train had not given either much thought. No such thing as &ldquo;junk miles&rdquo; when you love cycling. However, it did occur to me that from a training perspective a lot of my rides likely involved many such miles.</p>
<p>The basics of heart rate zones are pretty simple to understand.</p>
<p><strong>Zone 1</strong>: Recovery. Easy rides. Gentle pace. Coasting is okay.<br>
<strong>Zone 2</strong>: Endurance. Moderate effort. Conversational pace.<br>
<strong>Zone 3</strong>: Tempo. Feels like hard work after a while. Creates fatigue.<br>
<strong>Zone 4</strong>: Threshold. Pushing hard. Deliberate effort. Legs are feeling it.<br>
<strong>Zone 5</strong>: V02 Max. I look and feel a mess. Short bursts. If it don&rsquo;t kill yer&rsquo; it&rsquo;ll make you stonger.</p>
<p>I dug out the heart rate monitor I bought years ago and paired it with my Karoo GPS. I was not at all surprised to confirm my default riding pace is on par with recreation and leisure. Mostly high zone 1 and low to mid 2, from time to time I would drift upwards into zone 3, zone 4 on long steep hills. Zone 5 if ever, only under duress.</p>
<p>Nothing wrong with that but my VF, average speed, and endurance will at best only be maintained if I don&rsquo;t make any changes.</p>
<p>I connected the Karoo to <a href="https://intervals.icu">intervals.icu</a>, and off I went down the rabbit hole of cycle training, which is where I have been for the last week or so. A 101 in theory and methods of pyramidal, polarised, threshold and high intensity interval training. Terminology varies but since I am using intervals.icu I&rsquo;m getting my head round things like intensity, load, HRRc (heart rate recovery), TRIMP (training impulse), fitness, fatigue, and form. It&rsquo;s the last three I am mostly tracking.</p>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>What it means</th>
          <th>Goal</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Fitness (CTL)</td>
          <td>Chronic Training Load. A moving average of how much work you&rsquo;ve done over 42 days.</td>
          <td>Slow &amp; Steady. Don&rsquo;t chase a high number rapidly. Consistency raises this safely.</td>
      </tr>
      <tr>
          <td>Fatigue (ATL)</td>
          <td>Acute Training Load. How tired you are right now (7-day average).</td>
          <td>Watch Spikes. If this jumps suddenly, you risk illness or injury.</td>
      </tr>
      <tr>
          <td>Form (TSB)</td>
          <td>Fitness minus Fatigue.</td>
          <td>Keep it Green. Ideally, stay between -10 and -30 when training. If it drops below -30, you are in the &ldquo;red zone&rdquo; (high risk). If it is positive (e.g., +10), you are fresh/tapered.</td>
      </tr>
  </tbody>
</table>
<p>Initially I over-complicated things by planning precise workouts and syncing these to the Karoo. One for building strength and torque; &ldquo;The Ridge&rdquo;. One for fatigue resistance; &ldquo;The Drag&rdquo; Another that serves as a fasted fat burner; &ldquo;The Roller&rdquo;. The fourth as a spare and suited to building aerobic flow; &ldquo;The Spinner&rdquo; The first and last being the same route but clockwise and counter clockwise and has around 500m elevation. The second and third also sharing the same roads and once more heading out one way or the other. Those two have 400m elevation.</p>
<p>I planned a schedule. &ldquo;The Ridge&rdquo; Monday evenings. Tuesday a rest day. Wednesday morning the &ldquo;The Roller&rdquo;. Thursday evening, &ldquo;The Drag&rdquo;. Friday a rest day. Saturday for audax rides or 60 - 100k  jaunts in zone 2. Sunday an easy spin or day off.</p>
<p>Just ten days in I was doubting the approach. Adapting rides and schedules to accommodate unplanned events. I was becoming preoccupied with numbers. I&rsquo;d not figured out how to combine the rides with the 16:8 intermittent fasting. It did not feel right.Things needed tweaking.</p>
<ul>
<li>Instead of creating and syncing workouts to follow I shall use the terrain to guide my effort.</li>
<li>I&rsquo;ll adjust the schedule according to need and guided by the metrics.</li>
<li>I&rsquo;ll keep regular fasted morning rides to no more that 90 minutes and stay around the mid level of zone 2. Just doing that instead of coasting on these rides will increases my speed and support endurance.</li>
<li>&ldquo;The Ridge&rdquo; and &ldquo;The Drag&rdquo; I&rsquo;ll use during the week to push through zone 3 as quick as I can into zone 4. I will let off the pace just over the summit. I&rsquo;ll do these with a least a day between them for rest, and between 5.00 pm and 7.30 pm. This means I can eat before and after each of these.</li>
<li>On longer rides I&rsquo;ll eat something suitable every 60 to 90 minutes to help maintain strength and power.</li>
<li>No fasting on audax days.</li>
<li>I&rsquo;ll have a rest day after completing an audax and whenever I feel the need or the numbers suggest I should.</li>
<li>Whey isolate to break fast followed by moderation and healthy eating. No biscuits, sweets or snacks.</li>
</ul>
<p>It actually looks quite similar to what I had planned but it feels less regimented. I think this approach will be effective in helping to reach my goals. So long as I have my bearings and course correct along the way I will get to where I want to be.</p>
]]></content:encoded></item><item><title>Hackneyed words, phrases, and ideas</title><link>https://www.bongotwisty.blog/hackneyed_words_-phrases_-and_ideas/</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/hackneyed_words_-phrases_-and_ideas/</guid><description>&lt;p&gt;For a while it&amp;rsquo;s been on my mind, stewing. It comes from the circles I have been&amp;hellip; circling. Not mixing in. That&amp;rsquo;s not what I do. Always on the periphery. That&amp;rsquo;s been my way. I understand why that is. I&amp;rsquo;ve been exploring and working on something different to do. It is though, deeply entrenched. I have my bearing.&lt;/p&gt;
&lt;p&gt;I digressed. Back to the point. We see what we look at. Maybe not always, but I&amp;rsquo;ll go with the premise. I&amp;rsquo;ve been looking at personal blogs and Mastodon posts. A common thread runs through many (not all) of those that pass through my bias filter: hackneyed words, phrases, and ideas.&lt;/p&gt;</description><content:encoded><![CDATA[<p>For a while it&rsquo;s been on my mind, stewing. It comes from the circles I have been&hellip; circling. Not mixing in. That&rsquo;s not what I do. Always on the periphery. That&rsquo;s been my way. I understand why that is. I&rsquo;ve been exploring and working on something different to do. It is though, deeply entrenched. I have my bearing.</p>
<p>I digressed. Back to the point. We see what we look at. Maybe not always, but I&rsquo;ll go with the premise. I&rsquo;ve been looking at personal blogs and Mastodon posts. A common thread runs through many (not all) of those that pass through my bias filter: hackneyed words, phrases, and ideas.</p>
<p>AI slop. I find it&hellip; distasteful, mucky, lazy. The term, that is. The irony in its arbitrary overuse as a catch‑all label for any and all LLM output seems not to have been noticed by the more vocal critics. Any hint at the persona of a discerning commentator of content is undermined by the use of the phrase. Surely finding something less clichéd is worth the effort, given the message being conveyed.</p>
<p>Authentic. Because following fashion is so very authentic, isn&rsquo;t it?</p>
<p>Intentional. To act with intention requires a notable degree of thought and effort to inform subsequent and repeated actions. The word’s liberal use often signals that tribal following is the only intention being pursued.</p>
<p>Tribal. Finding your tribe. What happened to being inclusive? I have an inkling the use of the word is falling out of favour — &ldquo;community&rdquo; looks like it&rsquo;s being appropriated as a more acceptable alternative.</p>
<p>The “old internet,” or any similar term to couch performative nostalgia in. The only person you&rsquo;re fooling on this one is yourself — or the like‑minded and lazy. Make an effort to search up and find the thing you&rsquo;re pretending to miss. It&rsquo;s still there, albeit in more contemporary clothing. It&rsquo;s still there in dated garb too, if that&rsquo;s really your bag.</p>
<p>Performative. It has in it self become a covert performance. A disguised sneer. A not so subtle claim that the stance conveyed is the only &ldquo;authentic&rdquo; one in the room.</p>
<p>Agency. Another word that&rsquo;s often being used in a way that demonstrates lack of. Personal accountability and effort too much of a risk for you?</p>
<p>The em dash. Just — stop. It&rsquo;s punctuation, not a cause to be championed or vilified. I only started using it since doing so was called out. Personally speaking I&rsquo;m more inclined towards&hellip; the ellipsis. More thoughtful, less brash, less&hellip; performative.</p>
]]></content:encoded></item><item><title>Hugo (extended edition) Version Upgrade Guide</title><link>https://www.bongotwisty.blog/hugo_version_upgrade_guide/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/hugo_version_upgrade_guide/</guid><description>&lt;p&gt;&lt;strong&gt;This guide covers Hugo Extended Edition upgrades for Linux + GitHub Pages. See the footnote before reading on.&lt;/strong&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I like to keep things up to date. Every time I went through this process I&amp;rsquo;d generate a thread with my preferred LLM to help me through from beginning to end. The thread always became cluttered as I asked follow-up questions and sought clarification.&lt;/p&gt;
&lt;p&gt;This time round, after successfully completing the upgrade (I&amp;rsquo;ve now done this multiple times with different versions), I remembered to prompt:&lt;/p&gt;</description><content:encoded><![CDATA[<p><strong>This guide covers Hugo Extended Edition upgrades for Linux + GitHub Pages. See the footnote before reading on.</strong><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<p>I like to keep things up to date. Every time I went through this process I&rsquo;d generate a thread with my preferred LLM to help me through from beginning to end. The thread always became cluttered as I asked follow-up questions and sought clarification.</p>
<p>This time round, after successfully completing the upgrade (I&rsquo;ve now done this multiple times with different versions), I remembered to prompt:</p>
<blockquote>
<p><em>&quot;&hellip;list in sequential order everything I should do in the future to upgrade the hugo version. Granular step-by-step instructions with a concise description of the aim and why for each step&quot;.</em></p>
</blockquote>
<p>The guide is excellent for my exact use case and good for similar Linux + GitHub Pages setups, but has limited value for people on different operating systems or hosting platforms. What I&rsquo;ve done here is easy enough to replicate to suit your own use case if you&rsquo;re not opposed to using an LLM to do so. It&rsquo;s not all slop and you can always offset the <a href="https://andymasley.substack.com/i/154446312/other-online-activities-emissions">environmental impact</a> of your prompts easily enough.</p>
<h4 id="pre-upgrade-check-release-notes-and-current-version">Pre-Upgrade: Check Release Notes and Current Version</h4>
<p><strong>Aim</strong>: Understand what&rsquo;s changing and know your starting point.</p>
<p><strong>Process</strong>:</p>
<ol>
<li>Visit the Hugo releases page: <code>https://github.com/gohugoio/hugo/releases</code></li>
<li>Review the release notes for your target version, paying attention to:
<ul>
<li>Breaking changes (marked with ⚠️ or &ldquo;BREAKING&rdquo;)</li>
<li>Deprecation warnings</li>
<li>New features that might affect your workflow</li>
</ul>
</li>
<li>Check your current local version:</li>
</ol>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>hugo version</span></span></code></pre></div>
<p><strong>Why</strong>: Hugo occasionally introduces breaking changes that can affect your site&rsquo;s build or appearance. Understanding these beforehand helps you anticipate issues. The version check confirms what you&rsquo;re running locally and whether you have the extended edition (look for <code>+extended</code> in output).</p>
<hr>
<h4 id="step-1-download-the-new-hugo-version">Step 1: Download the new Hugo version</h4>
<p><strong>Aim</strong>: Get the extended edition of the new Hugo release.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span><span style="color:#89dceb">cd</span> ~/Downloads
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>wget https://github.com/gohugoio/hugo/releases/download/v0.154.2/hugo_extended_0.154.2_linux-amd64.tar.gz</span></span></code></pre></div>
<p>Replace the version numbers with your target version (e.g., <code>v0.154.2</code> in the URL and <code>0.154.2</code> in the filename). <strong>Note</strong>: The URL includes the <code>v</code> prefix, but the filename does not.</p>
<p><strong>Why</strong>: Downloads the official Hugo extended binary from GitHub. The extended edition includes Sass/SCSS transpiling and WebP processing capabilities required by many themes.</p>
<hr>
<h4 id="step-2-extract-the-archive">Step 2: Extract the archive</h4>
<p><strong>Aim</strong>: Unpack the compressed file to access the Hugo executable.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>tar -xzf hugo_extended_0.154.2_linux-amd64.tar.gz</span></span></code></pre></div>
<p>(Replace version number to match your download)</p>
<p><strong>What this does</strong>:</p>
<ul>
<li><code>tar</code>: Archive extraction tool</li>
<li><code>-x</code>: Extract files</li>
<li><code>-z</code>: Decompress gzip format</li>
<li><code>-f</code>: Specify filename</li>
</ul>
<p><strong>Why</strong>: The <code>.tar.gz</code> format is a compressed archive. This unpacks it to create the <code>hugo</code> executable file.</p>
<hr>
<h4 id="step-3-verify-the-extracted-binary">Step 3: Verify the extracted binary</h4>
<p><strong>Aim</strong>: Confirm you downloaded the correct version and extended edition.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>./hugo version</span></span></code></pre></div>
<p><strong>Expected output</strong>: Should show <code>hugo v0.154.2-...&lt;commit-hash&gt;+extended linux/amd64</code></p>
<p><strong>Critical check</strong>: Look for <code>+extended</code> in the output.[^3]</p>
<p><strong>Why</strong>: The <code>./</code> runs the binary in your current directory (not the system-installed version). This tests the new version before installation.</p>
<hr>
<h4 id="step-4-replace-the-system-hugo-binary">Step 4: Replace the system Hugo binary</h4>
<p><strong>Aim</strong>: Install the new version system-wide.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>sudo mv hugo /usr/local/bin/hugo</span></span></code></pre></div>
<p><strong>What this does</strong>:</p>
<ul>
<li><code>sudo</code>: Runs with administrator privileges (required for system directories)</li>
<li><code>mv</code>: Moves/overwrites the file</li>
<li>Replaces your old <code>/usr/local/bin/hugo</code> with the new version</li>
</ul>
<p><strong>You&rsquo;ll be prompted</strong>: Enter your system password.</p>
<p><strong>Why</strong>: Installs the new Hugo binary in the system PATH so the <code>hugo</code> command uses the updated version.</p>
<hr>
<h4 id="step-5-confirm-system-upgrade">Step 5: Confirm system upgrade</h4>
<p><strong>Aim</strong>: Verify the <code>hugo</code> command now runs the new version.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>hugo version</span></span></code></pre></div>
<p><strong>Expected output</strong>: Should show the new version number with <code>+extended</code>.</p>
<p><strong>Why</strong>: Confirms the system-wide Hugo is now the upgraded version (no <code>./</code> prefix needed).</p>
<hr>
<h4 id="step-6-clean-up-downloads">Step 6: Clean up downloads</h4>
<p><strong>Aim</strong>: Remove temporary files to free disk space.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span><span style="color:#89dceb">cd</span> ~/Downloads
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>rm hugo_extended_0.154.2_linux-amd64.tar.gz LICENSE README.md</span></span></code></pre></div>
<p>(Replace version number to match your files)</p>
<p><strong>Why</strong>: The archive and documentation files are no longer needed since Hugo is installed.</p>
<hr>
<h4 id="step-7-navigate-to-your-hugo-project">Step 7: Navigate to your Hugo project</h4>
<p><strong>Aim</strong>: Work in the correct directory for testing.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span><span style="color:#89dceb">cd</span> ~/path/to/your-hugo-project</span></span></code></pre></div>
<p><strong>Verify you&rsquo;re in the right place</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>ls -la</span></span></code></pre></div>
<p><strong>Should see</strong>: <code>hugo.toml</code> (or <code>config.toml</code>), <code>content/</code>, <code>layouts/</code>, <code>themes/</code> directories.</p>
<p><strong>Why</strong>: Hugo commands must run from the project root directory where the config file lives.</p>
<hr>
<h4 id="step-8-run-a-production-build-test">Step 8: Run a production build test</h4>
<p><strong>Aim</strong>: Test that the new version builds your site without errors.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>hugo --gc --minify</span></span></code></pre></div>
<p><strong>What each flag does</strong>:</p>
<ul>
<li><code>hugo</code>: Builds your site (Markdown to HTML)</li>
<li><code>--gc</code>: Garbage collection—removes unused cache files</li>
<li><code>--minify</code>: Compresses HTML/CSS/JS output (production setting)</li>
</ul>
<p><strong>Watch for</strong>:</p>
<ul>
<li>Build completion message with timing (e.g., &ldquo;Total in 774 ms&rdquo;)</li>
<li>Page/image counts</li>
<li>Any ERROR messages (build failures—these are critical)</li>
<li>WARN messages (note these; they indicate deprecated features you should eventually address but usually won&rsquo;t break your build)[^4][^6]</li>
</ul>
<p><strong>Why</strong>: Simulates your production build environment. If this succeeds, GitHub Actions deployment will likely succeed.</p>
<hr>
<h4 id="step-9-test-the-development-server">Step 9: Test the development server</h4>
<p><strong>Aim</strong>: Visually verify your site renders correctly in a browser.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>hugo server --disableFastRender</span></span></code></pre></div>
<p><strong>What this does</strong>:</p>
<ul>
<li>Starts local web server at <code>http://localhost:1313</code></li>
<li>Builds site in memory (no disk writes)</li>
<li>Watches files for changes and auto-rebuilds</li>
<li><code>--disableFastRender</code>: Forces complete page rebuilds (catches more issues)</li>
</ul>
<p><strong>Expected output</strong>: <code>Web Server is available at http://localhost:1313/</code></p>
<p><strong>Why</strong>: The flag ensures full rebuilds instead of partial rendering, which better matches production behavior.</p>
<hr>
<h4 id="step-10-visual-testing-in-browser">Step 10: Visual testing in browser</h4>
<p><strong>Aim</strong>: Confirm templates, images, and layout render correctly.</p>
<p><strong>Process</strong>:</p>
<ol>
<li>Open browser to <code>http://localhost:1313</code> (or <code>http://localhost:1313/your-base-path/</code>)</li>
<li>Click through:
<ul>
<li>Homepage</li>
<li>Individual blog posts/pages</li>
<li>List/archive pages</li>
<li>Tag/category pages</li>
<li>Navigation menu</li>
<li>Search (if applicable)</li>
</ul>
</li>
<li>Watch the terminal for WARNING or ERROR messages</li>
</ol>
<p><strong>Why</strong>: Visual testing catches issues that don&rsquo;t produce error messages—broken layouts, missing images, CSS problems (especially if your theme uses Sass/SCSS), JavaScript errors.</p>
<hr>
<h4 id="step-11-stop-the-development-server">Step 11: Stop the development server</h4>
<p><strong>Aim</strong>: Release the local web server and file watcher.</p>
<p><strong>Process</strong>:</p>
<p>Press <code>Ctrl+C</code> in the terminal.</p>
<p><strong>Why</strong>: Stops the server process and frees port 1313.</p>
<hr>
<h4 id="step-12-update-github-actions-workflow-file">Step 12: Update GitHub Actions workflow file</h4>
<p><strong>Aim</strong>: Configure your production deployment to use the new Hugo version.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>nano .github/workflows/hugo.yaml</span></span></code></pre></div>
<p><strong>Find the line</strong> (search with <code>Ctrl+W</code> and type <code>HUGO_VERSION:</code>):</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span><span style="color:#cba6f7">env</span>:
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>  <span style="color:#cba6f7">HUGO_VERSION</span>: <span style="color:#fab387">0.153.2</span></span></span></code></pre></div>
<p><strong>Change to</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span><span style="color:#cba6f7">env</span>:
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>  <span style="color:#cba6f7">HUGO_VERSION</span>: <span style="color:#fab387">0.154.2</span></span></span></code></pre></div>
<p>Replace with your target version number (no <code>v</code> prefix in the version number itself).</p>
<p><strong>Critical</strong>: Leave all other lines unchanged, especially <code>extended: true</code> settings.</p>
<p><strong>Save and exit</strong>: <code>Ctrl+O</code>, <code>Enter</code>, <code>Ctrl+X</code></p>
<p><strong>Alternative approach</strong>: If your workflow uses the <code>peaceiris/actions-hugo</code> action instead of manual <code>.deb</code> installation, you&rsquo;ll update the version in the action configuration instead:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>- <span style="color:#cba6f7">name</span>: Setup Hugo
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>  <span style="color:#cba6f7">uses</span>: peaceiris/actions-hugo@v3
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">3</span><span>  <span style="color:#cba6f7">with</span>:
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">4</span><span>    <span style="color:#cba6f7">hugo-version</span>: <span style="color:#a6e3a1">&#39;0.154.2&#39;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">5</span><span>    <span style="color:#cba6f7">extended</span>: <span style="color:#fab387">true</span></span></span></code></pre></div>
<p><strong>Why</strong>: This environment variable controls which Hugo version GitHub Actions downloads when building your site.[^7]</p>
<hr>
<h4 id="step-13-stage-the-workflow-file">Step 13: Stage the workflow file</h4>
<p><strong>Aim</strong>: Prepare the modified file for Git commit.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>git add .github/workflows/hugo.yaml</span></span></code></pre></div>
<p><strong>Why</strong>: Git requires explicit staging of files before committing. This tells Git &ldquo;include this file in my next commit.&rdquo;</p>
<hr>
<h4 id="step-14-verify-what-youre-committing">Step 14: Verify what you&rsquo;re committing</h4>
<p><strong>Aim</strong>: Safety check before creating the commit.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>git status</span></span></code></pre></div>
<p><strong>Expected output</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>Changes to be committed:
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>  modified:   .github/workflows/hugo.yaml</span></span></code></pre></div>
<p><strong>Verify</strong>: Only the workflow file is listed; status shows &ldquo;modified&rdquo;.</p>
<p><strong>Why</strong>: Final confirmation you&rsquo;re only changing what you intended, preventing accidental commits.</p>
<hr>
<h4 id="step-15-create-a-git-commit">Step 15: Create a Git commit</h4>
<p><strong>Aim</strong>: Save a snapshot of your change with a descriptive message.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>git commit -m <span style="color:#a6e3a1">&#34;Upgrade Hugo to v0.154.2&#34;</span></span></span></code></pre></div>
<p>Replace with your new version number.</p>
<p><strong>Expected output</strong>: Shows commit hash and &ldquo;1 file changed, 1 insertion(+), 1 deletion(-)&rdquo;.</p>
<p><strong>Why</strong>: Commits are the fundamental unit in Git. Each has a unique ID and message describing what changed.</p>
<hr>
<h4 id="step-16-push-to-github">Step 16: Push to GitHub</h4>
<p><strong>Aim</strong>: Upload your commit to trigger the automated deployment.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>git push origin main</span></span></code></pre></div>
<p>(Replace <code>main</code> with your branch name if different, e.g., <code>master</code>.)</p>
<p><strong>Expected output</strong>: Shows upload progress ending with <code>main -&gt; main</code>.</p>
<p><strong>Why</strong>: Pushing to GitHub automatically triggers your Actions workflow. GitHub reads the updated workflow file and starts a build with the new Hugo version.</p>
<hr>
<h4 id="step-17-open-github-actions-in-browser">Step 17: Open GitHub Actions in browser</h4>
<p><strong>Aim</strong>: Monitor the automated build in real-time.</p>
<p><strong>Process</strong>:</p>
<p>Navigate to: <code>https://github.com/YOUR-USERNAME/YOUR-REPO/actions</code></p>
<p><strong>Why</strong>: GitHub Actions runs in a clean cloud environment. This confirms your site builds successfully there, not just locally.</p>
<hr>
<h4 id="step-18-find-your-workflow-run">Step 18: Find your workflow run</h4>
<p><strong>Aim</strong>: Locate the build triggered by your push.</p>
<p><strong>Process</strong>:</p>
<p>Look for:</p>
<ul>
<li>Workflow name: &ldquo;Deploy Hugo site to Pages&rdquo; (or your workflow name)</li>
<li>Commit message: &ldquo;Upgrade Hugo to v0.154.2&rdquo;</li>
<li>Status: Yellow dot (in progress) or green checkmark (completed)</li>
<li>Timestamp matching when you pushed</li>
</ul>
<p><strong>Click on the workflow run</strong> to see detailed logs.</p>
<p><strong>Why</strong>: Opens the detailed view showing all build steps and their status.</p>
<hr>
<h4 id="step-19-monitor-build-job-logs">Step 19: Monitor build job logs</h4>
<p><strong>Aim</strong>: Verify each build step completes successfully.</p>
<p><strong>Process</strong>:</p>
<p>Click on the <strong>build</strong> job to expand steps. Watch for:</p>
<p><strong>&ldquo;Install Hugo CLI&rdquo; step</strong>: Should show</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>Unpacking hugo <span style="color:#89dceb;font-weight:bold">(</span>from .../hugo_extended_0.154.2_linux-amd64.deb<span style="color:#89dceb;font-weight:bold">)</span> ...</span></span></code></pre></div>
<p>(Or if using <code>peaceiris/actions-hugo</code>, you&rsquo;ll see different installation messages)</p>
<p><strong>&ldquo;Build with Hugo&rdquo; step</strong>: Should show</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>hugo v0.154.2-...+extended linux/amd64
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>Pages            | <span style="color:#89dceb;font-weight:bold">[</span>YOUR_PAGE_COUNT<span style="color:#89dceb;font-weight:bold">]</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">3</span><span>Processed images | <span style="color:#89dceb;font-weight:bold">[</span>YOUR_IMAGE_COUNT<span style="color:#89dceb;font-weight:bold">]</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">4</span><span>Total in <span style="color:#89dceb;font-weight:bold">[</span>TIME<span style="color:#89dceb;font-weight:bold">]</span> ms</span></span></code></pre></div>
<p><strong>Look for</strong>:</p>
<ul>
<li>Green checkmarks next to each step</li>
<li>Any WARNING messages (usually harmless but note them)</li>
<li>Any ERROR messages (build failures—investigate these immediately)</li>
</ul>
<p><strong>Why</strong>: The build logs show exactly what GitHub&rsquo;s servers are doing. This catches environment-specific issues.</p>
<hr>
<h4 id="step-20-verify-deployment-completion">Step 20: Verify deployment completion</h4>
<p><strong>Aim</strong>: Confirm the site deployed to GitHub Pages successfully.</p>
<p><strong>Process</strong>:</p>
<ol>
<li>Wait for the <strong>deploy</strong> job to complete (appears after <strong>build</strong>)</li>
<li>Look for green checkmark and &ldquo;Reported success!&rdquo; message</li>
<li>Note the deployment URL shown in the logs</li>
</ol>
<p><strong>Why</strong>: The deploy step publishes your built site. A green checkmark means your updated site is live.</p>
<hr>
<h4 id="step-21-test-your-live-site">Step 21: Test your live site</h4>
<p><strong>Aim</strong>: Final verification that the production site works correctly.</p>
<p><strong>Process</strong>:</p>
<ol>
<li>Visit your GitHub Pages URL (e.g., <code>https://username.github.io/repo-name/</code>)</li>
<li><strong>Wait 2-5 minutes</strong> for GitHub Pages to fully propagate the changes</li>
<li>Click through several pages</li>
<li>Check images load</li>
<li>Verify navigation works</li>
<li>Test any interactive features</li>
<li>If your theme uses Sass/SCSS, verify styling appears correctly</li>
</ol>
<p><strong>Why</strong>: Confirms the new Hugo version works in production, not just in CI/CD. This is your users&rsquo; experience.</p>
<hr>
<h4 id="rollback-procedure-if-needed">Rollback Procedure (if needed)</h4>
<p><strong>Aim</strong>: Quickly restore the working version if something breaks.</p>
<p><strong>Process</strong>:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>nano .github/workflows/hugo.yaml</span></span></code></pre></div>
<p>Change the version back to the previous working version:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span><span style="color:#cba6f7">env</span>:
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>  <span style="color:#cba6f7">HUGO_VERSION</span>: <span style="color:#fab387">0.153.2</span></span></span></code></pre></div>
<p>Then commit and push:</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">1</span><span>git add .github/workflows/hugo.yaml
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">2</span><span>git commit -m <span style="color:#a6e3a1">&#34;Rollback to Hugo v0.153.2 - investigating v0.154.2 issue&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">3</span><span>git push origin main</span></span></code></pre></div>
<p><strong>Why</strong>: Version control gives you a safety net. You can always revert to restore your site while investigating issues.</p>
<hr>
<h4 id="notes">Notes</h4>
<ul>
<li>Always use the <strong>extended edition</strong> (<code>hugo_extended_</code>) to maintain Sass/SCSS and WebP support</li>
<li>The local version and GitHub Actions version should match to ensure consistent builds</li>
<li>Check release notes for breaking changes before upgrading</li>
<li>Deprecation warnings (WARN messages) usually don&rsquo;t break builds but should be addressed eventually to future-proof your site</li>
<li>Build times should be similar between versions; significant slowdowns may indicate issues</li>
<li>Keep your local Hugo version updated to match your deployment environment</li>
</ul>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>This guide is specifically tailored for:</p>
<h4 id="operating-system">Operating System</h4>
<p><strong>Linux distributions</strong> (Ubuntu, Debian, Fedora, Mint, Pop!_OS, etc.)
Specifically uses Linux commands like:</p>
<ul>
<li><code>wget</code> for downloading</li>
<li><code>tar</code> for extraction</li>
<li><code>sudo</code> for system permissions</li>
<li><code>/usr/local/bin/</code> as the installation path</li>
<li>Bash shell commands</li>
</ul>
<p><strong>Not for</strong>:
- macOS (uses different download file: <code>darwin-universal.tar.gz</code>)
- Windows (uses <code>.zip</code> files and different paths like <code>C:\Hugo\bin\</code>)</p>
<h4 id="hosting-platform">Hosting Platform</h4>
<p><strong>GitHub Pages</strong> specifically</p>
<ul>
<li>Uses GitHub Actions workflows (<code>.github/workflows/hugo.yaml</code>)</li>
<li>Works with both manual <code>.deb</code> package installation or <code>peaceiris/actions-hugo</code> action</li>
<li>Assumes the <code>Deploy Hugo site to Pages</code> workflow structure</li>
</ul>
<p><strong>Not for</strong>:</p>
<ul>
<li>Netlify (uses <code>netlify.toml</code> configuration)</li>
<li>Vercel (uses <code>vercel.json</code>)</li>
<li>AWS S3/CloudFront</li>
<li>Self-hosted servers</li>
<li>GitLab Pages (uses <code>.gitlab-ci.yml</code>)</li>
</ul>
<h4 id="architecture">Architecture</h4>
<ul>
<li><strong>64-bit Linux</strong> (<code>linux-amd64</code>)</li>
<li>If you&rsquo;re on ARM Linux (like Raspberry Pi), you&rsquo;d need <code>linux-arm64.tar.gz</code> instead</li>
</ul>
<h4 id="key-linux-specific-elements-in-the-guide">Key Linux-specific elements in the guide</h4>
<ol>
<li><strong>File paths</strong>: <code>/usr/local/bin/hugo</code>, <code>~/Downloads</code></li>
<li><strong>Commands</strong>: <code>wget</code>, <code>tar</code>, <code>sudo</code>, <code>nano</code>, <code>ls</code>, <code>grep</code></li>
<li><strong>Permissions</strong>: Uses <code>sudo</code> to install system-wide</li>
<li><strong>Package format</strong>: <code>.tar.gz</code> archives (Linux standard)</li>
<li><strong>GitHub Actions runner</strong>: Uses <code>ubuntu-latest</code> in workflows
<strong>If you are on a different operating system or hosting platform</strong>, you need a modified version of this guide.</li>
</ol>
&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
</ol>
</div>
]]></content:encoded></item><item><title>The Ten Commandments Remixed</title><link>https://www.bongotwisty.blog/the-ten-commandments-remixed/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/the-ten-commandments-remixed/</guid><description>&lt;p&gt;I write and update policies and practice guidance. I work in adult social care. The language I use to write professionally must reflect contemporary thinking in this field. For some time now an emphasis has been on person centred, strengths based language.&lt;/p&gt;
&lt;p&gt;The thought popped into my head the other day that the ten commandments are very much the opposite of this. Mostly shall nots. Mostly deficit based. All about behaving well to stay on the right side of a monotheistic god.&lt;br&gt;
Just for fun I thought I&amp;rsquo;d have a go at re-framing them. If I&amp;rsquo;m going to redraft others work this seemed like a good place to start. Take the most famous &amp;ldquo;Don&amp;rsquo;t You Dare&amp;rdquo; list and turn it into an optimistic vision board dreamt up during a co-production workshop using post it notes while sipping on tea and munching biscuits.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I write and update policies and practice guidance. I work in adult social care. The language I use to write professionally must reflect contemporary thinking in this field. For some time now an emphasis has been on person centred, strengths based language.</p>
<p>The thought popped into my head the other day that the ten commandments are very much the opposite of this. Mostly shall nots. Mostly deficit based. All about behaving well to stay on the right side of a monotheistic god.<br>
Just for fun I thought I&rsquo;d have a go at re-framing them. If I&rsquo;m going to redraft others work this seemed like a good place to start. Take the most famous &ldquo;Don&rsquo;t You Dare&rdquo; list and turn it into an optimistic vision board dreamt up during a co-production workshop using post it notes while sipping on tea and munching biscuits.</p>
<p>I think of God as shorthand for whatever connects us. I also think truth comes more from agreement than absolutes. With these ideas and a person centred strengths based approach in mind here&rsquo;s what I came up with&hellip;</p>
<div class="custom-divider">•• ━━━━━ ••●•• ━━━━━ ••</div>
<p><strong>1. Think beyond yourself (You shall have no other gods before me)</strong><br>
When we&rsquo;re making decisions, we might think about what&rsquo;s good for everyone, not just ourselves. We&rsquo;re all connected. What helps the whole helps us too.</p>
<p><strong>2. Use words that build (You shall not take the name of the Lord your God in vain)</strong><br>
The words we use shape how people see themselves and what they think is possible. Language can open doors or close them.</p>
<p><strong>3. Value stillness (Remember the Sabbath day, to keep it holy)</strong><br>
Making time to stop and be quiet matters. It&rsquo;s how we stay connected to ourselves and everything else.</p>
<p><strong>4. Respect the web of humanity (Honour your father and your mother)</strong><br>
Every person we meet is part of the same fabric we&rsquo;re part of. We can treat people with the care and respect we&rsquo;d want for ourselves.</p>
<p><strong>5. Defend all life (You shall not murder)</strong><br>
Standing up for living things makes a difference. Each life is unique and won&rsquo;t happen again in the exact same way.</p>
<p><strong>6. Be faithful (You shall not commit adultery)</strong><br>
Being there for the people in our lives builds trust, helps them feel safe, and enables growth.</p>
<p><strong>7. Share (You shall not steal)</strong><br>
There&rsquo;s enough if we share it. What we give usually finds its way back.</p>
<p><strong>8. Build understanding together (You shall not bear false witness against your neighbour)</strong><br>
Truth isn&rsquo;t something one person owns. It comes from conversation and shared experience. Listening matters as much as speaking.</p>
<p><strong>9. Be pleased when good things happen to others (You shall not covet your neighbour&rsquo;s wife)</strong><br>
Other people&rsquo;s success doesn&rsquo;t take away from ours. Their wins don&rsquo;t mean we&rsquo;re losing.</p>
<p><strong>10. Enough is plenty (You shall not covet your neighbour&rsquo;s goods)</strong><br>
Sometimes what we have is actually enough. We don&rsquo;t have to always be reaching for the next thing to prove we&rsquo;re doing alright.</p>
<div class="custom-divider">•• ━━━━━ ••●•• ━━━━━ ••</div>
<p>So there you have it. The ten commandments for people who prefer &lsquo;might&rsquo; over &lsquo;must not&rsquo;, from the perspective of someone who thinks there&rsquo;s an underlying current connecting everything rather than a singular godhead we must fear and obey.</p>
<p>Not sure about turning water in wine but we can turn stone tablets into a living document for feedback. I just need to get it through QA and the equality impact assessment process now.</p>
]]></content:encoded></item><item><title>Cycling: 2015 and 2025</title><link>https://www.bongotwisty.blog/cycling_2015_and_2025/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/cycling_2015_and_2025/</guid><description>&lt;p&gt;Comparison is the thief of joy. I try not to do it. Comparing my past and present selves feels okay though.&lt;/p&gt;
&lt;p&gt;In 2015 I set out to ride every day of the year, which I just about managed. In 2025 I wanted to match the distance my ten years younger self rode - 17,987km. I set a target of 18,000 km for the year and finished on 18,316.6 km, just over the line at 101.8%.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Comparison is the thief of joy. I try not to do it. Comparing my past and present selves feels okay though.</p>
<p>In 2015 I set out to ride every day of the year, which I just about managed. In 2025 I wanted to match the distance my ten years younger self rode - 17,987km.  I set a target of 18,000 km for the year and finished on 18,316.6 km, just over the line at 101.8%.</p>
<h3 id="numbers">Numbers</h3>
<table>
  <thead>
      <tr>
          <th style="text-align: left">Metric</th>
          <th style="text-align: right">2015</th>
          <th style="text-align: right">2025</th>
          <th style="text-align: right">Change</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left">Distance ridden</td>
          <td style="text-align: right">17,987.6 km</td>
          <td style="text-align: right">18,316.7 km</td>
          <td style="text-align: right">+329.1 km (+1.8%)</td>
      </tr>
      <tr>
          <td style="text-align: left">Elevation gained</td>
          <td style="text-align: right">157,770 m</td>
          <td style="text-align: right">190,729 m</td>
          <td style="text-align: right">+32,959 m (+20.9%)</td>
      </tr>
      <tr>
          <td style="text-align: left">Activities</td>
          <td style="text-align: right">470</td>
          <td style="text-align: right">256</td>
          <td style="text-align: right">−214 (−45.5%)</td>
      </tr>
      <tr>
          <td style="text-align: left">Active hours</td>
          <td style="text-align: right">801:10</td>
          <td style="text-align: right">872:03</td>
          <td style="text-align: right">+70:53 (+8.8%)</td>
      </tr>
      <tr>
          <td style="text-align: left">Calories burned</td>
          <td style="text-align: right">393,826</td>
          <td style="text-align: right">448,761</td>
          <td style="text-align: right">+54,935 (+13.9%)</td>
      </tr>
  </tbody>
</table>
<p>Everything went up except the number of activities, which dropped by nearly half. 2015 was about getting out on the bike every day. 2025 was about getting the miles in.</p>
<h3 id="tracking-progress">Tracking Progress</h3>
<p>During 2025 I built an <a href="https://www.bongotwisty.blog/stats_cli/">app</a> to track my cycling stats and check progress against goals every now and then. The app pulls data from <a href="https://ridewithgps.com/users/151788/">RWGPS</a> and let me see how I&rsquo;m doing against annual targets, track my Eddington number and a few other metrics for good measure.  Having this helped maintain the pace and avoid a mad scramble towards the end of the year to catch up.</p>
<p>My Eddington number (in km) for 2025 ended at 63. In 2015 it was 58. The Eddington number is the largest number where you&rsquo;ve ridden at least that distance on at least that many occasions. My overall Eddington sits at 141 and just one ride short of 142. My long term aim is 200.</p>
<h3 id="comparisons">Comparisons</h3>
<p>In 2015 I was riding about 1.29 times per day to keep the streak going.  Many were short rides and commutes. My <a href="https://www.audax.uk/about-us/about-audax-uk/">Audax</a> riding that year was not too shabby: 11 organised calendar events totaling 2,520 km, mostly 100 - 200 km brevets, with my longest being The Flatlands 600 km. I got 21 Audax UK points that year (1 point per 100 km for rides &gt; 200k).</p>
<p>In 2025 I averaged 0.70 activities per day, so roughly every other day, but each ride was generally longer and hillier.  I rode 15 DIY audax events. 4,500 km in all. Nearly double the 2015 total. That got me 45 Audax UK points. I started and ended all but one from home. I rode when it suited family life. Living in Chatham on the dip slope of the North Downs meant many of my rides were up and down the hills and lanes of the North Downs. All that climbing added up over the year.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: left">Audax comparison</th>
          <th style="text-align: right">2015</th>
          <th style="text-align: right">2025</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left">Total events</td>
          <td style="text-align: right">11 calendar</td>
          <td style="text-align: right">15 DIY</td>
      </tr>
      <tr>
          <td style="text-align: left">Total audax distance</td>
          <td style="text-align: right">2,520 km</td>
          <td style="text-align: right">4,500 km</td>
      </tr>
      <tr>
          <td style="text-align: left">Audax UK points</td>
          <td style="text-align: right">21</td>
          <td style="text-align: right">45</td>
      </tr>
      <tr>
          <td style="text-align: left">Average per event</td>
          <td style="text-align: right">229 km</td>
          <td style="text-align: right">300 km</td>
      </tr>
      <tr>
          <td style="text-align: left">Longest ride</td>
          <td style="text-align: right">606 km</td>
          <td style="text-align: right">1,011 km</td>
      </tr>
  </tbody>
</table>
<h3 id="the-giant-circle-1000k">The Giant Circle 1000k</h3>
<p>The longest ride in 2025 was the <a href="https://www.bongotwisty.blog/the-giant-circle/">Giant Circle 1000k</a> DIY in June. This was far beyond anything I completed in 2015.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: left">Ride</th>
          <th style="text-align: right">Distance</th>
          <th style="text-align: right">Climb</th>
          <th style="text-align: right">Moving time</th>
          <th style="text-align: right">Avg speed</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left">Giant Circle 1000k DIY (Chatham)</td>
          <td style="text-align: right">1,011 km</td>
          <td style="text-align: right">8,890 m</td>
          <td style="text-align: right">51:20</td>
          <td style="text-align: right">19.7 kph</td>
      </tr>
  </tbody>
</table>
<p>Starting and finishing in Chatham, the route followed a clockwise circle across southern and central England. From Chatham I headed west through the Surrey Hills and Hampshire to Bristol, then north through the Cotswolds past Gloucester and into Shropshire. The route continued north past Telford and Stoke-on-Trent before turning east across the East Midlands through Nottingham, then south through Peterborough and Cambridge. The final leg ran southwest back through Essex and across the North Downs to Chatham.</p>
<p>8,890 m of climbing and over 1,011 km in just over 51 hours of moving time. The ride took in the North Downs, South Downs, Chilterns, Cotswolds, and the Welsh borders. It sits as the fourth-longest ride I&rsquo;ve done after London-Edinburgh-London, Land&rsquo;s End to John O&rsquo;Groats, and Paris-Brest-Paris. I also got 10 Audax UK points in one go and chalked up another ride for the ongoing RRtY award.</p>
<h3 id="the-west-coast-of-ireland">The West Coast of Ireland</h3>
<p>In May and early June I spent two weeks riding the <a href="https://www.bongotwisty.blog/gallery/cycling/ireland/">west coast of Ireland</a> from Cork to Malin Head, visiting the 15 Signature Discovery Points of the Wild Atlantic Way.  Over 13 days I covered 1,853 km with 20,336 m of climbing. Turns out that was nearly 9% of my year&rsquo;s total distance and climbing.  May 2025 ended up as my highest-mileage month at 2,731.6 km.</p>
<table>
  <thead>
      <tr>
          <th style="text-align: left">Day</th>
          <th style="text-align: left">Route</th>
          <th style="text-align: right">Distance</th>
          <th style="text-align: right">Climb</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: left">18/5</td>
          <td style="text-align: left">Cork to Sextons via Old Kinsale Head</td>
          <td style="text-align: right">77.6 km</td>
          <td style="text-align: right">946 m</td>
      </tr>
      <tr>
          <td style="text-align: left">19/5</td>
          <td style="text-align: left">Sextons to Dunbeacon via Mizen Head</td>
          <td style="text-align: right">128.2 km</td>
          <td style="text-align: right">1,337 m</td>
      </tr>
      <tr>
          <td style="text-align: left">20/5</td>
          <td style="text-align: left">Dunbeacon to Beara via Dursey Island</td>
          <td style="text-align: right">144.1 km</td>
          <td style="text-align: right">1,958 m</td>
      </tr>
      <tr>
          <td style="text-align: left">21/5</td>
          <td style="text-align: left">Beara to Mannix Point via Valentia</td>
          <td style="text-align: right">107.7 km</td>
          <td style="text-align: right">1,213 m</td>
      </tr>
      <tr>
          <td style="text-align: left">22/5</td>
          <td style="text-align: left">Mannix Point via Dingle to Caherciveen</td>
          <td style="text-align: right">144.9 km</td>
          <td style="text-align: right">1,318 m</td>
      </tr>
      <tr>
          <td style="text-align: left">23/5</td>
          <td style="text-align: left">Dingle to Loop Head via Doonaha</td>
          <td style="text-align: right">177.1 km</td>
          <td style="text-align: right">1,770 m</td>
      </tr>
      <tr>
          <td style="text-align: left">24/5</td>
          <td style="text-align: left">Doonaha to Spiddal via Cliffs of Moher</td>
          <td style="text-align: right">171.9 km</td>
          <td style="text-align: right">1,648 m</td>
      </tr>
      <tr>
          <td style="text-align: left">25/5</td>
          <td style="text-align: left">Spiddal to Renvyle</td>
          <td style="text-align: right">98.7 km</td>
          <td style="text-align: right">932 m</td>
      </tr>
      <tr>
          <td style="text-align: left">26/5</td>
          <td style="text-align: left">Renvyle to Achill via Killary Fjord</td>
          <td style="text-align: right">147.0 km</td>
          <td style="text-align: right">1,369 m</td>
      </tr>
      <tr>
          <td style="text-align: left">27/5</td>
          <td style="text-align: left">Achill to Ballina via Down Patrick Head</td>
          <td style="text-align: right">145.4 km</td>
          <td style="text-align: right">1,401 m</td>
      </tr>
      <tr>
          <td style="text-align: left">28/5</td>
          <td style="text-align: left">Ballina to Slieve League (audax DIY 200)</td>
          <td style="text-align: right">212.5 km</td>
          <td style="text-align: right">2,512 m</td>
      </tr>
      <tr>
          <td style="text-align: left">29/5</td>
          <td style="text-align: left">Slieve League to Fanad Head</td>
          <td style="text-align: right">160.4 km</td>
          <td style="text-align: right">2,214 m</td>
      </tr>
      <tr>
          <td style="text-align: left">30/5</td>
          <td style="text-align: left">Knockalla to Malin Head</td>
          <td style="text-align: right">137.4 km</td>
          <td style="text-align: right">1,718 m</td>
      </tr>
      <tr>
          <td style="text-align: left"><strong>Total</strong></td>
          <td style="text-align: left"></td>
          <td style="text-align: right"><strong>1,852.9 km</strong></td>
          <td style="text-align: right"><strong>20,336 m</strong></td>
      </tr>
  </tbody>
</table>
<p>The Ballina to Slieve League ride was a killer. I did it as a DIY audax. 212.5 km and 2,512 m of climbing. Bit ambitious with two rear pannier bags and camping gear. I got it done though. The tour was self-supported camping. I followed mostly remote roads from Mizen Head in the south all the way north to Malin Head. From there over to Derry where I got a train to Dublin for the ferry back to Holyhead. Happy days.</p>
<h3 id="averages">Averages</h3>
<p>In 2015 I averaged 38.3 km and 1.7 hours per activity; in 2025 I averaged 71.5 km and 3.4 hours, almost double the distance and time per ride.  Climbing per activity more than doubled from about 336 m to 745 m.  Calories per activity jumped from about 838 to 1,753. I&rsquo;ve not lost any weight though. I do eat a lot of food.</p>
<p>My stats app shows that since starting to track my rides in 2012, my average ride distance is 39.0 km. 2015 and 2025 both sit a fair bit above that. Good to see 2025&rsquo;s average standing out.</p>
<h3 id="planning-ahead---2026">Planning ahead - 2026</h3>
<p>I&rsquo;m three months into my third consecutive Audax UK <a href="https://www.audax.uk/results/rrty-roll-of-honour/">Randonneur Round the Year</a> Award. This time I&rsquo;m going for two years&rsquo; worth in one calendar year. That means at least two rides of 200 km or more in every consecutive month for 12 months.  I&rsquo;m also aiming for 50 Audax UK points to mark Audax UK&rsquo;s 50th anniversary.</p>
<p>In May I&rsquo;ve planned a self supported 2,200 km ride through France, Spain, and down to the Algarve. Planning on doing that over 11 days so around 215 km per day. I may do some of them as a 200 DIY audax.</p>
<p>The numbers aren&rsquo;t the focus this year but they&rsquo;ll slowly add up.</p>
]]></content:encoded></item><item><title>My Cycling Year - 2025</title><link>https://www.bongotwisty.blog/2025_wrapped/</link><pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/2025_wrapped/</guid><description>&lt;p&gt;I am very happy to report that I reached the distance goal I set myself for the year - 18,000km done.&lt;/p&gt;
&lt;p&gt;A few things come to mind that have helped.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A spouse who knows and accepts that I love riding a bike. I&amp;rsquo;ve always been like this.&lt;/li&gt;
&lt;li&gt;Regularly getting out on my bike at 5.00 am for a 50km ride. Having a goto route when doing so.&lt;/li&gt;
&lt;li&gt;Living in Kent with easy access to country lanes and rural landscapes.&lt;/li&gt;
&lt;li&gt;Having a few side goals along the way.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bongotwisty.blog/stats_cli/"&gt;Tracking&lt;/a&gt; my progress.&lt;/li&gt;
&lt;li&gt;Getting in a two week &lt;a href="https://www.bongotwisty.blog/cycle-touring-the-fifteen-signature-discovery-points-of-the-wild-atlantic-way/"&gt;bike tour&lt;/a&gt; in May and a &lt;a href="https://ridewithgps.com/trips/347998210"&gt;few&lt;/a&gt; &lt;a href="https://www.bongotwisty.blog/meglme/"&gt;other&lt;/a&gt; &lt;a href="https://www.bongotwisty.blog/the-giant-circle/"&gt;long&lt;/a&gt; rides during the year.&lt;/li&gt;
&lt;li&gt;Riding in the dark with dynamo hub powered lights.&lt;/li&gt;
&lt;li&gt;Dressing for the weather.&lt;/li&gt;
&lt;li&gt;Living close to a fella who mends my bike when it breaks and not charging the earth to do so.&lt;/li&gt;
&lt;li&gt;Having a spare bike to ride when I need it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was the state of play on the 20/12/2025. I might get a few more rides in before the year end.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I am very happy to report that I reached the distance goal I set myself for the year - 18,000km done.</p>
<p>A few things come to mind that have helped.</p>
<ul>
<li>A spouse who knows and accepts that I love riding a bike. I&rsquo;ve always been like this.</li>
<li>Regularly getting out on my bike at 5.00 am for a 50km ride. Having a goto route when doing so.</li>
<li>Living in Kent with easy access to country lanes and rural landscapes.</li>
<li>Having a few side goals along the way.</li>
<li><a href="https://www.bongotwisty.blog/stats_cli/">Tracking</a> my progress.</li>
<li>Getting in a two week <a href="https://www.bongotwisty.blog/cycle-touring-the-fifteen-signature-discovery-points-of-the-wild-atlantic-way/">bike tour</a> in May and a <a href="https://ridewithgps.com/trips/347998210">few</a> <a href="https://www.bongotwisty.blog/meglme/">other</a> <a href="https://www.bongotwisty.blog/the-giant-circle/">long</a> rides during the year.</li>
<li>Riding in the dark with dynamo hub powered lights.</li>
<li>Dressing for the weather.</li>
<li>Living close to a fella who mends my bike when it breaks and not charging the earth to do so.</li>
<li>Having a spare bike to ride when I need it.</li>
</ul>
<p>This was the state of play on the 20/12/2025. I might get a few more rides in before the year end.</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/2025_wrapped/chart1_stats.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Stats Panel">
          <img src="/2025_wrapped/chart1_stats_hu_7d165bffbd13625c.png" alt="Dark themed banner displaying 2025 cycling statistics in four colored cards: Distance 18,035 km (coral orange), Elevation 187,619 m (teal blue), Active Time 858h 54m or 35.8 days (mint green), and Calories 441,463 kcal (golden yellow). Each stat features large bold numbers with colored accent bars above dark grey cards." loading="lazy" style="display: inline-block;">
        </a><figcaption>Stats Panel</figcaption>
    </figure>

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/2025_wrapped/chart2_distance_comparison.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Distance Comparison">
          <img src="/2025_wrapped/chart2_distance_comparison_hu_659982da5ec3b3f2.png" alt="Horizontal bar chart comparing cycling distances. Your 2025 cycling (18,035 km) is shown in coral orange, followed by M25 motorway at 188 km representing 96 laps (purple), LEJOG return trip at 2,814 km representing 6.4 trips (teal), London to Sydney at 17,000 km (light blue), and Earth&rsquo;s circumference at 40,075 km (mint green). The chart shows you cycled nearly to Sydney and completed 96 laps of the M25." loading="lazy" style="display: inline-block;">
        </a><figcaption>Distance Comparison</figcaption>
    </figure>

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/2025_wrapped/chart3_elevation_comparison.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Elevation Comparison">
          <img src="/2025_wrapped/chart3_elevation_comparison_hu_a2f717af78a7a66f.png" alt="Horizontal bar chart comparing elevation gained. Your 2025 climbing of 187,619 m (coral orange) dominates the chart, followed by the Kármán line at 100,000 m (purple), Mariana Trench depth at 10,994 m representing 17.1 times (dark teal), and Mount Everest at 8,849 m representing 21.2 climbs (blue). The chart illustrates climbing equivalent to 21 Everests or descending the Mariana Trench 17 times." loading="lazy" style="display: inline-block;">
        </a><figcaption>Elevation Comparison</figcaption>
    </figure>

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/2025_wrapped/chart4_calories_food.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Falafel Index">
          <img src="/2025_wrapped/chart4_calories_food_hu_a9198a0fc1411601.png" alt="Horizontal bar chart showing calories burned (441,463 kcal) as food equivalents. Veggie bean burgers: 2,196 (brown), pints of lager: 1,895 (golden yellow), and falafel wraps: 1,298 (green). The chart visualizes a year&rsquo;s worth of cycling energy in vegetarian-friendly food terms." loading="lazy" style="display: inline-block;">
        </a><figcaption>Falafel Index</figcaption>
    </figure>

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/2025_wrapped/chart5_monthly_breakdown.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Monthly Distance and Elevation">
          <img src="/2025_wrapped/chart5_monthly_breakdown_hu_be7e7965bd3741e3.png" alt="Dual-axis chart showing monthly cycling data throughout 2025. Coral orange line with area fill represents distance (left y-axis), peaking dramatically in May at 2,731 km and dipping in July to 806 km. Teal blue bars represent elevation (right y-axis), following similar patterns. The chart reveals seasonal riding patterns with a major peak in late spring and a summer dip." loading="lazy" style="display: inline-block;">
        </a><figcaption>Monthly Distance and Elevation</figcaption>
    </figure>

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/2025_wrapped/chart6_time_distribution.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Time Distribution">
          <img src="/2025_wrapped/chart6_time_distribution_hu_2c8d404556b6c3f4.png" alt="Pie chart showing how 2025 was spent in hours. Cycling: 859h (35.8 continuous days) in coral orange (9.8%), Sleep: 2,920h (365 nights × 8h) in teal blue (33.3%), Work: 1,875h (250 days × 7.5h) in yellow (21.4%), and Everything Else: 3,106h (129.4 continuous days) in grey (35.5%). The cycling segment is slightly pulled out for emphasis." loading="lazy" style="display: inline-block;">
        </a><figcaption>Time Distribution</figcaption>
    </figure><p>This beats the personal best I achieved of 17,987 km back in 2015. Still cranking out the miles ten years on feels quite reassurring to me. The sense of accomplishment is nothing though compared to the benefit of pursuing the goal. Purpose, motivation, fitness and conditioning, places visited and sights seen. Riding a bike is great. I love it!</p>
<p>The next 12 months will, fingers crossed, be more of the same. I&rsquo;m currently three months into two simultaneous <a href="https://www.audax.uk/results/rrty-roll-of-honour/">RRtY</a> awards. That means at least two rides a month of 200km or more for 12 consecutive months. It&rsquo;s <a href="https://www.audax.uk">Audax UK</a>&rsquo;s 50th Anniversary. A good year to go for at least 50 points and get the The Randonneur 5,000 award. The award is obtained by riding <a href="https://www.audax.uk/about-audax/faqs/#1-accordion-0-body-5">BR or BRM</a> events totalling 5,000 km in a Randonneur year. I&rsquo;ve been told that may get me a commemorative fridge magnet. What more of an incentive could I possibly need.</p>
<p>In May I plan to ride <a href="https://ridewithgps.com/events/434073-calais-to-to-montoito-atalaia">2,200km through France and Spain down to Portugal</a>. I am less worried about getting there than I am about getting my bike in a bag for the journey back by train. I&rsquo;m sure it will all work out okay with a bit of planning.</p>
]]></content:encoded></item><item><title>audax: Kent 200 DiY</title><link>https://www.bongotwisty.blog/kent_200_postbox_topper_editon/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/kent_200_postbox_topper_editon/</guid><description>&lt;p&gt;Out on the last 200k rde of 2025 yesterday. Followed a route I know well through the Kent Downs to Deal, over to Canterbury before heading across to Tankerton, then Faversham and back home to Chatham.&lt;/p&gt;
&lt;p&gt;With this ride completed thats the Super Randonneur (SR) Award bagged for the 2025-2026 audax season. The SR is a series: 200 km, 300 km, 400 km, 600 km, all completed in the same Randonneur year.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Out on the last 200k rde of 2025 yesterday. Followed a route I know well through the Kent Downs to Deal, over to Canterbury before heading across to Tankerton, then Faversham and back home to Chatham.</p>
<p>With this ride completed thats the Super Randonneur (SR) Award bagged for the 2025-2026 audax season. The SR is a series: 200 km, 300 km, 400 km, 600 km, all completed in the same Randonneur year.</p>
<iframe src="https://ridewithgps.com/embeds?type=trip&id=356393923&title=audax%3A%20Kent%20200%20DiY%20-%20Christmas%20Postbox%20Topper%20Edition&metricUnits=true&sampleGraph=true&distanceMarkers=true&showPhotos=true" style="width: 1px; min-width: 100%; height: 700px; border: none;" scrolling="no"></iframe>
<p>The ride takes me by my two sisters and parents homes on the way so I took the opportunity to deliver Christmas cards and pressies.</p>
<p>My sister in Deal dosed me up with a big helping of Sloe Gin she&rsquo;d made. I&rsquo;d never drunk it before. Didn&rsquo;t think I would like it since I don&rsquo;t enjoy spirits as a general rule of thumb. I did like it though hence the generous measure she poured me.</p>
<p>I set off again feeling alright, maybe a little bit woozy but steady enough. It took a toll though on my perceived exertion. The 50k or so from Deal to Tankerton took me nearly three hours. Felt like a lot more hard work than it normally does. At the time I put it down to the <a href="https://www.tannus.co.uk">Tannus Armour</a> tyre inserts I&rsquo;d fitted to mitigate the risk of punctures. I&rsquo;ve had loads of flats over the last month. Hedge trimmings along country lanes, glass shards and flint. While the inserts may have been a contributing factor I think it was the gin that put lead in my legs. At least I did not get any punctures.</p>
<p>Despite the physical struggle It was a good ride. The weather was dry. Not too cold. Very little wind. What&rsquo;s more there was loads of festive postbox toppers to snap a picture of and add to the growing <a href="http://localhost:1313/bongo-twisty/gallery/postbox_toppers/">collection</a>&hellip;</p>
<div class="gallery-grid">
<figure>
    <a href="/gallery/postbox_toppers/20251214_christmas_stelling_minnis.jpg" class="glightbox" data-title="Christmas, Stelling Minnis">
      <img src="/gallery/postbox_toppers/20251214_christmas_stelling_minnis_hu_ef2d3bf37e48fb0d.jpg" alt="A festive hand-knitted postbox topper displayed on a red British Royal Mail postbox, featuring a charming winter scene with three crocheted snowmen figures and a decorated teal Christmas tree with colorful baubles and a gold star. The scene is set on a circular blue and white crocheted base with intricate striped patterns. The snowmen have white fluffy bodies, orange carrot noses, and happy expressions, with one holding what appears to be a red mitten or scarf. Behind the display, a dark wooden building and residential street are visible under a cloudy winter sky, capturing the community spirit of festive yarn-bombing in a British village." title="Christmas, Stelling Minnis" width="400" height="300">
    </a>
    <figcaption>Christmas, Stelling Minnis</figcaption>
  </figure>
<figure>
    <a href="/gallery/postbox_toppers/20251214_christmas_barham.jpg" class="glightbox" data-title="Christmas, Barham Village">
      <img src="/gallery/postbox_toppers/20251214_christmas_barham_hu_89eb802c761ccad1.jpg" alt="A close-up view of a charming crocheted Christmas scene atop a red British postbox, featuring two festive figures in red Santa outfits with white fluffy trim and matching Santa hats topped with sparkly blue tinsel pom-poms. Between them sits a small white crocheted Christmas pudding decorated with red and green holly berries. The figures rest on a grey and burgundy striped knitted base that wraps around the curved top of the postbox. The background shows a residential street with bare winter trees, green grass verges, and a cloudy sky, capturing the whimsical tradition of festive postbox toppers in British communities." title="Christmas, Barham Village" width="400" height="300">
    </a>
    <figcaption>Christmas, Barham Village</figcaption>
  </figure>
<figure>
    <a href="/gallery/postbox_toppers/20251214_christmas_little_mongham.jpg" class="glightbox" data-title="Christmas, Mongeham Village Hall">
      <img src="/gallery/postbox_toppers/20251214_christmas_little_mongham_hu_7b6e51e913d89eb4.jpg" alt="A delightful crocheted postbox topper photographed in bright sunlight, featuring an elaborate festive scene on a circular base with red, white, and green striped patterns. The display includes two snowmen figures (one with a colorful striped hat and red scarf, another with a yellow turban-style hat), decorative Christmas trees in various shades of green with tinsel details, a small red stocking, and a dark Christmas tree decoration. In the foreground, a small crocheted Christmas tree with sparkly green yarn and a red star on top takes center stage. Red mittens or stockings accent the edges of the circular base. The postbox topper sits atop a red Royal Mail postbox with white fluffy trim visible at the base, while a black-painted wooden building and garden furniture are visible in the sunny background." title="Christmas, Mongeham Village Hall" width="400" height="300">
    </a>
    <figcaption>Christmas, Mongeham Village Hall</figcaption>
  </figure>
<figure>
    <a href="/gallery/postbox_toppers/20251214_christmas_ash.jpg" class="glightbox" data-title="Christmas, Ash">
      <img src="/gallery/postbox_toppers/20251214_christmas_ash_hu_f491ff1b888294df.jpg" alt="An intricate crocheted nativity scene postbox topper displayed on a red Royal Mail postbox in Ash, Kent, featuring a detailed manger scene with Mary in blue robes holding baby Jesus, Joseph with a red headband, and three amigurumi-style animals (a grey donkey, white sheep, and grey elephant) positioned around the holy family. The figures are set within a golden-brown stable structure against a white weathered wall with moss growth. The entire scene sits atop a rich blue circular crocheted base decorated with colorful sheep motifs in red, orange, yellow, green, white, and pink scattered across the surface, creating a whimsical and heartwarming celebration of the Christmas story through the traditional craft of postbox topper yarn-bombing." title="Christmas, Ash" width="400" height="300">
    </a>
    <figcaption>Christmas, Ash</figcaption>
  </figure>
<figure>
    <a href="/gallery/postbox_toppers/20251214_christmas_greenhill.jpg" class="glightbox" data-title="Christmas, Greenhill">
      <img src="/gallery/postbox_toppers/20251214_christmas_greenhill_hu_df3298a5c86500ac.jpg" alt="A festive and elaborate crocheted postbox topper featuring a snowy winter wonderland scene with multiple knitted characters creating a bustling Christmas tableau. The white fluffy base, resembling snow, supports various figures including Santa Claus in red, carolers, a grey donkey, birds (including a robin with a red breast), and other festive characters, all arranged around a decorated Christmas tree and holly decoration. The display sits on a multi-layered circular base with white, blue, and textured yarns in various colors, trimmed with tinsel and decorative edging. The scene is photographed during daytime against a residential street backdrop with houses and cars visible." title="Christmas, Greenhill" width="400" height="300">
    </a>
    <figcaption>Christmas, Greenhill</figcaption>
  </figure>
<figure>
    <a href="/gallery/postbox_toppers/20251214_christmas_tankerton.jpg" class="glightbox" data-title="Christmas, Tankerton">
      <img src="/gallery/postbox_toppers/20251214_christmas_tankerton_hu_410e5bb5fc20fa4a.jpg" alt="A charming crocheted postbox topper featuring a winter scene with adorable penguin figures on an ice-blue circular base. The display includes five knitted penguins wearing matching light blue hats and scarves, arranged around white crocheted snowballs or igloos on top of a textured pale blue base that resembles ice. The word SOUTH appears in red lettering on the side. A grey crocheted seal sits on the edge. The topper is displayed on a red Royal Mail postbox in front of shop windows showing reflections of buildings, creating a playful Arctic-themed Christmas decoration." title="Christmas, Tankerton" width="400" height="300">
    </a>
    <figcaption>Christmas, Tankerton</figcaption>
  </figure>
<figure>
    <a href="/gallery/postbox_toppers/20251214_christmas_faversham.jpg" class="glightbox" data-title="Christmas, Faversham">
      <img src="/gallery/postbox_toppers/20251214_christmas_faversham_hu_61f27f4f7cfd7ec0.jpg" alt="An elegant Christmas postbox topper photographed at night, featuring a tall angel figure with white crocheted wings and a sparkly silver dress standing atop a green knitted base decorated with small festive figures. A doll with blonde hair serves as the angel, dressed in shimmering white and silver garments with outstretched arms. The circular base is adorned with gold tinsel trim around the edge and small crocheted figures including what appear to be carolers or nativity characters, along with decorative elements like a snowman. The scene is set against a dark evening sky with street lights and residential buildings visible in the background." title="Christmas, Faversham" width="400" height="300">
    </a>
    <figcaption>Christmas, Faversham</figcaption>
  </figure>
</div>]]></content:encoded></item><item><title>Christmas Post Box Topper, Shorne Village</title><link>https://www.bongotwisty.blog/christmas_topper_shorne/</link><pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/christmas_topper_shorne/</guid><description>&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20251213_christmas_shorne.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Shorne Village"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20251213_christmas_shorne_hu_54274239b3b37d59.jpg" alt="Hand-knitted nativity scene displayed as a festive topper on a village post box, featuring yarn figures of Mary, Joseph, baby Jesus, an angel with curly blond hair, and the three wise men gathered in front of a crocheted stable, with a faded Post Office sign on the wall behind." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Christmas, Shorne Village&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;Another fine looking festive postbox topper I came across on this morning&amp;rsquo;s ride through Shorne Village. Added to the &lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/"&gt;collection&lt;/a&gt;.&lt;/p&gt;</description><content:encoded><![CDATA[

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20251213_christmas_shorne.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Shorne Village">
          <img src="/gallery/postbox_toppers/20251213_christmas_shorne_hu_54274239b3b37d59.jpg" alt="Hand-knitted nativity scene displayed as a festive topper on a village post box, featuring yarn figures of Mary, Joseph, baby Jesus, an angel with curly blond hair, and the three wise men gathered in front of a crocheted stable, with a faded Post Office sign on the wall behind." loading="lazy" style="display: inline-block;">
        </a><figcaption>Christmas, Shorne Village</figcaption>
    </figure><p>Another fine looking festive postbox topper I came across on this morning&rsquo;s ride through Shorne Village. Added to the <a href="https://www.bongotwisty.blog/gallery/postbox_toppers/">collection</a>.</p>
]]></content:encoded></item><item><title>Christmas Post Box Topper, Lower Higham</title><link>https://www.bongotwisty.blog/christmas_topper_lower_higham/</link><pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/christmas_topper_lower_higham/</guid><description>&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20251213_christmas_lower_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Lower Higham,"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20251213_christmas_lower_higham_hu_cb491916430bc4b6.jpg" alt="A red pillar postbox at night is covered with a chunky grey knitted topper decorated with handmade festive crochet figures. On top sit a large penguin in a Santa hat and scarf, reindeer, Santas, snowmen, angels and other small Christmas characters, surrounded by knitted baubles and presents, while tiny red-and-white Christmas stocking decorations are stitched all around the edge." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Christmas, Lower Higham,&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;I&amp;rsquo;d love to meet the person that does the postbox toppers in Higham. Each one they create deserves a prize. Added to the &lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/"&gt;collection&lt;/a&gt;.&lt;/p&gt;</description><content:encoded><![CDATA[

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20251213_christmas_lower_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Lower Higham,">
          <img src="/gallery/postbox_toppers/20251213_christmas_lower_higham_hu_cb491916430bc4b6.jpg" alt="A red pillar postbox at night is covered with a chunky grey knitted topper decorated with handmade festive crochet figures. On top sit a large penguin in a Santa hat and scarf, reindeer, Santas, snowmen, angels and other small Christmas characters, surrounded by knitted baubles and presents, while tiny red-and-white Christmas stocking decorations are stitched all around the edge." loading="lazy" style="display: inline-block;">
        </a><figcaption>Christmas, Lower Higham,</figcaption>
    </figure><p>I&rsquo;d love to meet the person that does the postbox toppers in Higham. Each one they create deserves a prize. Added to the <a href="https://www.bongotwisty.blog/gallery/postbox_toppers/">collection</a>.</p>
]]></content:encoded></item><item><title>audax: All the Home Counties 300k DiY</title><link>https://www.bongotwisty.blog/all_home_counties/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/all_home_counties/</guid><description>&lt;p&gt;Continuing on my mission to ride 18k km this year. I was out all day yesterday on a 300 DiY. A circumnavigation of the London Orbital AKA the M25. Obviously not on the motorway. Following lanes and roads close to it. In the course of doing so I entered each of the six traditional home counties.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Kent - southeastern section&lt;/li&gt;
&lt;li&gt;Essex - northeastern section via the Dartford Crossing&lt;/li&gt;
&lt;li&gt;Hertfordshire - northern section&lt;/li&gt;
&lt;li&gt;Buckinghamshire - northwestern section&lt;/li&gt;
&lt;li&gt;Berkshire - western section&lt;/li&gt;
&lt;li&gt;Surrey - southwestern section&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/all_home_counties/route_map.png" class="glightbox" data-gallery="gallery" data-glightbox="title: audax: All the Home Counties 300k DiY"&gt;
&lt;img src="https://www.bongotwisty.blog/all_home_counties/route_map_hu_40dca7299d3ce92b.png" alt="Cycling route map showing a 309 km loop around London covering all six Home Counties (Kent, Essex, Hertfordshire, Buckinghamshire, Berkshire, and Surrey) with 3,309 meters of elevation gain and 14 hours 1 minute moving time." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;audax: All the Home Counties 300k DiY&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;This is the maybe the 3rd or 4th time I have done the ride. Each time I tweak the route a bit. Lessons learned and all that. Pretty happy with the latest version. Closest I have come to actually closing the circle. The M25 is not a full circle in any case. The beginning and end is the A282 on both sides of the Dartford Crossing. Given that it&amp;rsquo;s fair to say this route in indeed a loop of the M25.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Continuing on my mission to ride 18k km this year. I was out all day yesterday on a 300 DiY. A circumnavigation of the London Orbital AKA the M25. Obviously not on the motorway. Following lanes and roads close to it. In the course of doing so I entered each of the six traditional home counties.</p>
<ol>
<li>Kent - southeastern section</li>
<li>Essex - northeastern section via the Dartford Crossing</li>
<li>Hertfordshire - northern section</li>
<li>Buckinghamshire - northwestern section</li>
<li>Berkshire - western section</li>
<li>Surrey - southwestern section</li>
</ol>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/all_home_counties/route_map.png" class="glightbox" data-gallery="gallery" data-glightbox="title: audax: All the Home Counties 300k DiY">
          <img src="/all_home_counties/route_map_hu_40dca7299d3ce92b.png" alt="Cycling route map showing a 309 km loop around London covering all six Home Counties (Kent, Essex, Hertfordshire, Buckinghamshire, Berkshire, and Surrey) with 3,309 meters of elevation gain and 14 hours 1 minute moving time." loading="lazy" style="display: inline-block;">
        </a><figcaption>audax: All the Home Counties 300k DiY</figcaption>
    </figure><p>This is the maybe the 3rd or 4th time I have done the ride. Each time I tweak the route a bit. Lessons learned and all that. Pretty happy with the latest version. Closest I have come to actually closing the circle. The M25 is not a full circle in any case. The beginning and end is the A282 on both sides of the Dartford Crossing. Given that it&rsquo;s fair to say this route in indeed a loop of the M25.</p>
<p>My favourite part is through the Essex countryside up to Epping. It&rsquo;s very rural. Not flat but not especially hilly. The roads are quiet. After that the stretch from St Albans round to Chalfont St Giles. Farmland, quite lanes, small towns and villages. I typically get to the co-op food store in Chalfont at around 1.00 pm and get a bit of lunch there. The standard meal deal hits the spot with me.</p>
<p>Each time I have done the ride it&rsquo;s been around this time of year. Short days. I always go counter clockwise to avoid getting to the Dartford Crossing at shift change over time (9.00 pm - 10.30 pm). The shuttle service does not run at those times and I&rsquo;d end up waiting for 90 minutes at the roadside. This inevitably means I&rsquo;m riding in the dark by the time I reach Surrey. I am familiar with the area so it&rsquo;s not as if I missing scenery I&rsquo;ve not seen before but it would be nice to do it in the daylight sometime.</p>
<p>Predictably I got a puncture on the way. It was a slow leak. Rather than stopping to mend it I continued to ride and stopped a couple of times after 40 - 60 km to pump some air into it. This was a mistake. Only because it was on mind the whole time and kind of marred my enjoyment of the miles.</p>
<p>About 20k outside of Woking I noticed my front mudguard had become partially detached. A while ago the rivets holding it to the supporting frame had failed. I bodged a mend with a couple of zip ties. The lower one of these had snapped off. Another thing to occupy my thoughts. I found myself imagining the other tie snapping on the way down a hill, the mudguard fouling on the wheel and me going flying over the handlebars. What with the recent spate of misfortunes and mechanical failures on the bike I thought it best to do what I could to mitigate the risk.</p>
<p>Lucky for me a good friend of mine lives in Woking. I checked how far his address was from the route. It was literally a couple of minutes at most from where I stopped to look. He was home and happy for me to visit.  Great! Nipped round  and stayed for an hour. Time enough for a chat, a couple mugs of tea and to make good the mudguard. Very happy. Should have fixed the slow puncture too.</p>


<a href="/all_home_counties/20251206_with_zac.jpg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/all_home_counties/20251206_with_zac_hu_1af14479354d5e52.jpg" alt="Selfie with friend in Woking who helped repair a detached mudguard during the Home Counties audax ride" loading="lazy" style="display: inline-block;">
      </a><p>About 30k after setting off again I needed to pump the tyre once more.  I&rsquo;d pushed my luck too far. It lost air much quicker this time. Needed to stop after a few kms to patch the tube and put the spare one on. With this done I was making a good pace again towards the last planned stop at Edinbridge just over the county boarder into Kent. The last 60k was happily uneventful. Got home at 11.30 pm. Job done.</p>
]]></content:encoded></item><item><title>Christmas Post Box Topper, Colney Heath</title><link>https://www.bongotwisty.blog/post_box_topper_colney_heath/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/post_box_topper_colney_heath/</guid><description>&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20251206_christmas_colney_heath.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Colney Heath"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20251206_christmas_colney_heath_hu_cd7061623ccaec57.jpg" alt="A festive knitted Christmas scene displayed on top of a red Royal Mail post box in a residential street. The handcrafted topper features a winter wonderland tableau on a circular white crocheted base with red detail stitching. At the center stands a tall green spiral Christmas tree decorated with colorful baubles in pink, blue, and other bright colors, topped with a golden yellow star. Surrounding the tree are multiple knitted figures: two white snowmen wearing red Santa hats with white pompoms, one holding a yellow gift, and several small dolls dressed in colorful winter clothing - including figures in red, blue, and green striped outfits with knitted hats. There&amp;rsquo;s also a brown teddy bear character among the group. The scene is photographed outdoors with suburban houses, parked cars, hedges, and a cloudy sky visible in the background, creating a charming community Christmas display." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Christmas, Colney Heath&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;Look at this beauty! I saw it on the &lt;a href="https://www.bongotwisty.blog/all_home_counties/"&gt;ride&lt;/a&gt; I did yesterday. Another one for the &lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/"&gt;collection&lt;/a&gt;.&lt;/p&gt;</description><content:encoded><![CDATA[

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20251206_christmas_colney_heath.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Colney Heath">
          <img src="/gallery/postbox_toppers/20251206_christmas_colney_heath_hu_cd7061623ccaec57.jpg" alt="A festive knitted Christmas scene displayed on top of a red Royal Mail post box in a residential street. The handcrafted topper features a winter wonderland tableau on a circular white crocheted base with red detail stitching. At the center stands a tall green spiral Christmas tree decorated with colorful baubles in pink, blue, and other bright colors, topped with a golden yellow star. Surrounding the tree are multiple knitted figures: two white snowmen wearing red Santa hats with white pompoms, one holding a yellow gift, and several small dolls dressed in colorful winter clothing - including figures in red, blue, and green striped outfits with knitted hats. There&rsquo;s also a brown teddy bear character among the group. The scene is photographed outdoors with suburban houses, parked cars, hedges, and a cloudy sky visible in the background, creating a charming community Christmas display." loading="lazy" style="display: inline-block;">
        </a><figcaption>Christmas, Colney Heath</figcaption>
    </figure><p>Look at this beauty! I saw it on the <a href="https://www.bongotwisty.blog/all_home_counties/">ride</a> I did yesterday. Another one for the <a href="https://www.bongotwisty.blog/gallery/postbox_toppers/">collection</a>.</p>
]]></content:encoded></item><item><title>Christmas Post Box Topper, Upper Higham</title><link>https://www.bongotwisty.blog/christmas_topper_upper_higham/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/christmas_topper_upper_higham/</guid><description>&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20251213_christmas_upper_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Upper Higham"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20251213_christmas_upper_higham_hu_802a90c5895a7a3c.jpg" alt="A collection of hand-crocheted festive mice figurines arranged around a decorated Christmas tree on top of a post box in Upper Higham. The display features seven mice dressed in Victorian-style winter clothing including bonnets, coats, and scarves in earthy tones of brown, orange, green, and grey. One central mouse wears a bright red coat and scarf. The dark blue-green crocheted Christmas tree is adorned with white garland spirals, white pompom ornaments, and a yellow star topper. The scene is photographed just before dawn." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Christmas, Upper Higham&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;Happy to have this festive addition to add to the &lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/"&gt;collection&lt;/a&gt;.&lt;/p&gt;</description><content:encoded><![CDATA[

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20251213_christmas_upper_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Christmas, Upper Higham">
          <img src="/gallery/postbox_toppers/20251213_christmas_upper_higham_hu_802a90c5895a7a3c.jpg" alt="A collection of hand-crocheted festive mice figurines arranged around a decorated Christmas tree on top of a post box in Upper Higham. The display features seven mice dressed in Victorian-style winter clothing including bonnets, coats, and scarves in earthy tones of brown, orange, green, and grey. One central mouse wears a bright red coat and scarf. The dark blue-green crocheted Christmas tree is adorned with white garland spirals, white pompom ornaments, and a yellow star topper. The scene is photographed just before dawn." loading="lazy" style="display: inline-block;">
        </a><figcaption>Christmas, Upper Higham</figcaption>
    </figure><p>Happy to have this festive addition to add to the <a href="https://www.bongotwisty.blog/gallery/postbox_toppers/">collection</a>.</p>
]]></content:encoded></item><item><title>What's the odds?</title><link>https://www.bongotwisty.blog/balancing_the_odds/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/balancing_the_odds/</guid><description>&lt;p&gt;Out Wednesday evening on the bike. I was a little bit apprehensive about what might go wrong this time. After a recent spate of punctures, damaged GPS devices and mechanical failures I am happy to say the ride was uneventful.&lt;/p&gt;
&lt;p&gt;I did not go out yesterday. We had a late dinner after which I went to bed to watch a film - &amp;ldquo;&lt;a href="https://www.imdb.com/title/tt31514146/"&gt;I Swear&lt;/a&gt;&amp;rdquo;. Brilliant film. Both sad and inspiring. Loved it. Certainly put my bike troubles into perspective if needed.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Out Wednesday evening on the bike. I was a little bit apprehensive about what might go wrong this time. After a recent spate of punctures, damaged GPS devices and mechanical failures I am happy to say the ride was uneventful.</p>
<p>I did not go out yesterday. We had a late dinner after which I went to bed to watch a film - &ldquo;<a href="https://www.imdb.com/title/tt31514146/">I Swear</a>&rdquo;. Brilliant film. Both sad and inspiring. Loved it. Certainly put my bike troubles into perspective if needed.</p>
<p>Up and out early this morning to get the miles in. Just a couple of kilometres from home I crossed a patch of black ice, tumbled off my bike and hit the ground. Fortunately no injuries other than a bit of a scrape to my right hip. The bike seems undamaged. My GPS and phone survived without a scratch on them. I thought the phone may have been damaged as it was in my pocket on the side I came down on the ground.</p>
<p>I guess it&rsquo;s just one of those things that I can ride all year, cover over 10,000 miles without a mishap and then in the space of five weeks have a series of unfortunate events. Probabilities and factors stacking up I guess. I&rsquo;ll admit to thinking what&rsquo;s next while knowing if I identify and manage foreseeable risks the probability of anything else happening is no greater now than it ever was. It&rsquo;s kind of reassurring and enough to keep me going.</p>
]]></content:encoded></item><item><title>...barring any mishaps in December.</title><link>https://www.bongotwisty.blog/mishaps_in_december/</link><pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/mishaps_in_december/</guid><description>&lt;p&gt;In my last post I noted, &lt;em&gt;&amp;ldquo;That goal seems within reach barring any mishaps in December.&amp;rdquo;&lt;/em&gt;. Not typically superstitious but as I wrote that the thought of tempting fate did cross my mind. So it came to pass.&lt;/p&gt;
&lt;p&gt;Out on my bike yesterday morning. First ride in December. It was going so well. New cables fitted. Inner and outer for the front and rear mech. Changing up and down smoothly. Responsive and powerful brakes. New chain and cassette. It felt like riding a new bike. Lovely.&lt;/p&gt;</description><content:encoded><![CDATA[<p>In my last post I noted, <em>&ldquo;That goal seems within reach barring any mishaps in December.&rdquo;</em>.  Not typically superstitious but as I wrote that the thought of tempting fate did cross my mind. So it came to pass.</p>
<p>Out on my bike yesterday morning. First ride in December. It was going so well. New cables fitted. Inner and outer for the front and rear mech. Changing up and down smoothly. Responsive and powerful brakes. New chain and cassette. It felt like riding a new bike. Lovely.</p>
<p>Just over 26km at the start of a descent in I change up into the big ring at the front and down a couple of gears at the back. Straight after doing so the pedals resist movement and the ominous sound of the rear mech breaking spokes in the back wheel sound out. I brake and come to a stop. The jockey wheel cage was detached and hanging mid way round the chain. Half a dozen spokes were snapped. The back tyre was flat. It was 0610hrs.</p>
<p>I had a long walk home. Just over 11 miles. I am not a fan of walking. It was not too bad though. The weather was dry. The sun came out. The time passed quickly. I was not worried about checking in late for work. I have very understanding managers. Instead of going home I walked with the bike straight round to Matt who runs a bike shop from his garage at home. Matt had done the work on my bike the previous day.</p>
<p>I was not looking to place blame. I just wanted to get my bike sorted and back on the road. Matt was as perplexed as I was about what might have caused the failure. I don&rsquo;t think it was the limit screw. When I came to a stop the chain was on the second biggest sprocket on the cassette indicating the mech still had room to travel. I&rsquo;d not adjusted it and neither had Matt. Matt had no other bikes to work on that day so he got straight to working on mine.</p>
<p>Got a call from Matt this morning. All fixed. Three of the broken spokes had gone through the rim tape which was why the tyre was flat. Spokes replaced, wheel trued, new mech fitted, inner tube replaced.  No charge for labour. Matt said he felt bad about what happened.  He told me he&rsquo;d not taken it out for a test ride before handing it back to me the previous day.  He did tell me this when I collected it. Matt said it all worked fine in the stand but to bring it back if there were any problems. I certainly do not blame him. We both think that the rear mech simply busted apart. How that might have happened is not clear to either of us. Definite signs of wear and rust on inner components which could now be seen but none which could have been inspected or serviced prior to the catastrophic failure. Nothing that either of us have known to happen before.</p>
<p>I&rsquo;ve had a series of adverse incidents with this bike over the last few weeks. I&rsquo;ve managed to crack the screen on two different GPS devices, had three (now four) punctures on consecutive rides, now this latest mishap. I have a second bike but did not go out on that this morning in fear of what might happen next. I know it&rsquo;s not rational to think like that but still. I shall go out this evening and continue towards 18k for the year. Fingers crossed all will go well.</p>
]]></content:encoded></item><item><title>Good progress</title><link>https://www.bongotwisty.blog/good_progress/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/good_progress/</guid><description>&lt;p&gt;Happy to be ending this month on a good note.&lt;/p&gt;
&lt;p&gt;Sent the &lt;a href="https://www.bongotwisty.blog/cracked_screen/"&gt;damaged Karoo 3&lt;/a&gt; back on Tuesday. A brand new boxed unit with all accessories included arrived on Saturday. Hammerhead gave me 50% off the RRP. The additional bracket, 1/4 turn mount, charging cable and lanyard were all a welcome bonus. They&amp;rsquo;re worth £52.00 when bought separately. Free P&amp;amp;P for the return and replacement. Pretty good service in my books.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Happy to be ending this month on a good note.</p>
<p>Sent the <a href="https://www.bongotwisty.blog/cracked_screen/">damaged Karoo 3</a> back on Tuesday. A brand new boxed unit with all accessories included arrived on Saturday. Hammerhead gave me 50% off the RRP. The additional bracket, 1/4 turn mount, charging cable and lanyard were all a welcome bonus. They&rsquo;re worth £52.00 when bought separately. Free P&amp;P for the return and replacement. Pretty good service in my books.</p>
<p>I bought a gel bumper case to help protect it and had this ready and waiting when it arrived. Screen protectors are in transit. All I need to be now is a bit more careful.</p>
<div class="custom-divider">•• ━━━━━ ••●•• ━━━━━ ••</div>
<p>It&rsquo;s been a very good month on the mileage front&hellip;</p>


<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/cycling/rwgps_recap/2025/card_2025_11.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: November Recap">
          <img src="/gallery/cycling/rwgps_recap/2025/card_2025_11_hu_876737d7f4ba43ce.jpg" alt="November 2025 cycling calendar showing distance and elevation gain for each ride. The calendar displays 21 rides totaling 2,011 kilometers with 18,874 meters of elevation gain over 3 days, 23 hours, and 10 minutes of moving time. Notable rides include a 403-kilometer ride with 3,311 meters of elevation on Saturday, November 1st, and a 607-kilometer ride with 4,380 meters of elevation on Saturday, November 8th. Most other rides averaged around 50 kilometers. The image uses a dark background with blue-highlighted calendar cells and orange accent text." loading="lazy" style="display: inline-block;">
        </a><figcaption>November Recap</figcaption>
    </figure><p>Yesterdays ride made my yearly Eddington number (km) a personal best since the year I first started logging my rides&hellip;</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 1</span><span><span style="color:#89dceb;font-weight:bold">===</span> YEARLY EDDINGTON <span style="color:#f5e0dc">NUMBERS</span> <span style="color:#89dceb;font-weight:bold">===</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 2</span><span>2025: <span style="color:#fab387">62</span> *Highest*
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 3</span><span>2024: <span style="color:#fab387">58</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 4</span><span>2023: <span style="color:#fab387">48</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 5</span><span>2022: <span style="color:#fab387">48</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 6</span><span>2021: <span style="color:#fab387">49</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 7</span><span>2020: <span style="color:#fab387">48</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 8</span><span>2019: <span style="color:#fab387">56</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 9</span><span>2018: <span style="color:#fab387">48</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">10</span><span>2017: <span style="color:#fab387">49</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">11</span><span>2016: <span style="color:#fab387">61</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">12</span><span>2015: <span style="color:#fab387">58</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">13</span><span>2014: <span style="color:#fab387">56</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">14</span><span>2013: <span style="color:#fab387">51</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">15</span><span>2012: <span style="color:#fab387">28</span></span></span></code></pre></div>
<p>I&rsquo;ve achieved this on the way to beating my overall distance total for 2015. I made passing mention of setting that goal <a href="https://www.bongotwisty.blog/2024-and-10000-miles-done/">here</a>, in my first post for 2025. That goal seems within reach barring any mishaps in December. This is how things stand as of today&hellip;</p>






<div class="highlight"><pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 1</span><span><span style="color:#89dceb;font-weight:bold">===</span> ANNUAL GOAL PROGRESS <span style="color:#89dceb;font-weight:bold">(</span>2025<span style="color:#89dceb;font-weight:bold">)</span> <span style="color:#89dceb;font-weight:bold">===</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 2</span><span>Goal: 18,000 km
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 3</span><span>Current: 17,008.2 km <span style="color:#89dceb;font-weight:bold">(</span>94.5% <span style="color:#89dceb">complete</span><span style="color:#89dceb;font-weight:bold">)</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 4</span><span>Year Progress: 91.5% elapsed
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 5</span><span>Days passed: <span style="color:#fab387">334</span> | Days remaining: <span style="color:#fab387">31</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 6</span><span>Status: 🚀 Ahead of pace by 3.0%
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 7</span><span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 8</span><span><span style="color:#89dceb;font-weight:bold">===</span> PACING <span style="color:#f5e0dc">TARGETS</span> <span style="color:#89dceb;font-weight:bold">===</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c"> 9</span><span>To reach your goal, you need:
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">10</span><span>• Daily: 32.0 km/day
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">11</span><span>• Weekly: 224.0 km/week
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f849c">12</span><span>• Monthly: 973.9 km/month</span></span></code></pre></div>
<p>If you happen to be on RWGPS add me as a <a href="https://ridewithgps.com/users/151788/">friend</a> - I&rsquo;ll add you back. Happy to connect and see what you are up to.</p>
<p>For a smaller niche interest group (you&rsquo;re on RWGPS, interested in the stats above, and okay about using Python scripts and CLI apps) I wrote about how they&rsquo;re generated in this <a href="https://www.bongotwisty.blog/stats_cli/">post</a>. The code for the <a href="https://github.com/alxtrnr/cycling-stats-cli">Cycling Stats CLI</a> is on GitHub.</p>
]]></content:encoded></item><item><title>What really matters?</title><link>https://www.bongotwisty.blog/what_really_matters/</link><pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/what_really_matters/</guid><description>&lt;p&gt;Responding to &amp;ldquo;&lt;a href="https://sly.bearblog.dev/waiting-for-something-to-happen/"&gt;Waiting for&amp;hellip; nothing?&lt;/a&gt;&amp;rdquo; a post on &lt;a href="https://sly.bearblog.dev/"&gt;TOO MUCH TO THINK ABOUT&lt;/a&gt;. The writer (Sly?) notes that they are,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;&amp;hellip;just feeling like i&amp;rsquo;m waiting to find something purposeful. is this something common&amp;rdquo;?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&amp;rsquo;s something I have felt in times gone by. It&amp;rsquo;s something I have read and heard other people have also felt. Too small a sample to declare it&amp;rsquo;s common. Maybe it&amp;rsquo;s more so for people whose basic needs are being met.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Responding to &ldquo;<a href="https://sly.bearblog.dev/waiting-for-something-to-happen/">Waiting for&hellip; nothing?</a>&rdquo; a post on <a href="https://sly.bearblog.dev/">TOO MUCH TO THINK ABOUT</a>. The writer (Sly?) notes that they are,</p>
<blockquote>
<p>&ldquo;&hellip;just feeling like i&rsquo;m waiting to find something purposeful. is this something common&rdquo;?</p>
</blockquote>
<p>It&rsquo;s something I have felt in times gone by. It&rsquo;s something I have read and heard other people have also felt. Too small a sample to declare it&rsquo;s common. Maybe it&rsquo;s more so for people whose basic needs are being met.</p>
<p>Sly asks,</p>
<blockquote>
<p>&ldquo;what really matters though?? i&rsquo;m still waiting to find out.&rdquo;</p>
</blockquote>
<p>My answer is what really matters is whatever you decide matters. I guess you could wait for something to occur to you. If and when that happens and whatever it may be still comes down to a choice you make. No one can tell you what &ldquo;<em>really matters</em>&rdquo;. The best they can do is say what matters to them and what they think should matter to you.</p>
<p>I say play with the idea. Try things out. Decide to make something really matter to you every day. Soon or later one may persist. Whether persistence matters is another choice you get to make.</p>
<p>Sly mentions free will. Maybe this answers the question. If free will exists it must sit outside the laws of cause and effect. How&rsquo;s that for a curve ball. Maybe you don&rsquo;t get to decide what really matters at all. If that is the case maybe the question to ask is, why does anything really matter or perhaps, why should it?</p>
]]></content:encoded></item><item><title>Another cracked screen</title><link>https://www.bongotwisty.blog/cracked_screen/</link><pubDate>Mon, 24 Nov 2025 16:12:13 +0100</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/cracked_screen/</guid><description>&lt;p&gt;Out on my bike this morning. The back tyre punctured about 12 miles in. I got that sorted okay.&lt;/p&gt;
&lt;p&gt;Before setting off again I went to get the Karoo from my jersey pocket. I&amp;rsquo;d taken it off the bike to avoid scraping it on the ground when I flipped the bike to remove the wheel.&lt;/p&gt;
&lt;p&gt;I must have missed the jersey pocket and instead put it between the jersey and the hi-vis reflective gilet I was wearing. As I went to retrieve it, fumbling about with my gloves on created a gap between the two tops and the Karoo fell to the floor.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Out on my bike this morning. The back tyre punctured about 12 miles in. I got that sorted okay.</p>
<p>Before setting off again I went to get the Karoo from my jersey pocket. I&rsquo;d taken it off the bike to avoid scraping it on the ground when I flipped the bike to remove the wheel.</p>
<p>I must have missed the jersey pocket and instead put it between the jersey and the hi-vis reflective gilet I was wearing. As I went to retrieve it, fumbling about with my gloves on created a gap between the two tops and the Karoo fell to the floor.</p>
<p>Less than a month old and I&rsquo;ve cracked the screen. Gutted. It&rsquo;s literally just a month since I <a href="https://www.bongotwisty.blog/karoo2/">cracked the screen on the old one</a>.</p>


<a href="/cracked_screen/01_cracked_karoo.jpeg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/cracked_screen/01_cracked_karoo_hu_eb5d0451965b0e6b.jpeg" alt="" loading="lazy" style="display: inline-block;">
      </a>

<a href="/cracked_screen/00_cracked_karoo.jpeg" class="glightbox" data-gallery="gallery" style="display: block; text-align: center;">
        <img src="/cracked_screen/00_cracked_karoo_hu_effbd16f49813508.jpeg" alt="" loading="lazy" style="display: inline-block;">
      </a><p>You can get third party replacement screens for about £100. Knowing me and not wanting to risk damaging internal parts I&rsquo;m opting for the Hammerhead Crash Replacement. I got a 30% discount on this one with Karoos upgrade program. I think they offer up to a 50% discount on a certified new one when you send a damaged unit back that&rsquo;s still under warranty.</p>
<p>When I get that I shall fit a <a href="https://jm-graphics.com/product/riskless-ultimate-hammerhead-karoo-3-2024/">screen protector</a>, a <a href="https://www.ebay.co.uk/str/tuffluvcases?_trksid=p4429486.m145687.l149086">silicon bumper case</a>, and be very careful not to drop it again.</p>
]]></content:encoded></item><item><title>Autumn Harvest, Tankerton</title><link>https://www.bongotwisty.blog/topper_tankerton/</link><pubDate>Sat, 22 Nov 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/topper_tankerton/</guid><description>&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20251122_tankerton.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Autumn Harvest, Tankerton"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20251122_tankerton_hu_da2db3ea2939ed96.jpg" alt="An autumnal post box topper displayed on a large circular bright orange crocheted platform. The centerpiece features a tower of textured knitted pumpkins in various sizes - pink with blue speckles, olive green, and coral - with decorative stems. Scattered around the base are smaller crocheted elements including miniature pumpkins, brown acorns, colorful mushrooms (red and brown), green oak leaves, and small knitted figures. The display is positioned in front of a blue-painted storefront with large windows, creating a festive seasonal scene" loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Autumn Harvest, Tankerton&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;Always puts a smile on my face when I find one of these. One day I may even learn how to crotchet myself. A fine addition to the growing &lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/"&gt;collection&lt;/a&gt;.&lt;/p&gt;</description><content:encoded><![CDATA[

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20251122_tankerton.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Autumn Harvest, Tankerton">
          <img src="/gallery/postbox_toppers/20251122_tankerton_hu_da2db3ea2939ed96.jpg" alt="An autumnal post box topper displayed on a large circular bright orange crocheted platform. The centerpiece features a tower of textured knitted pumpkins in various sizes - pink with blue speckles, olive green, and coral - with decorative stems. Scattered around the base are smaller crocheted elements including miniature pumpkins, brown acorns, colorful mushrooms (red and brown), green oak leaves, and small knitted figures. The display is positioned in front of a blue-painted storefront with large windows, creating a festive seasonal scene" loading="lazy" style="display: inline-block;">
        </a><figcaption>Autumn Harvest, Tankerton</figcaption>
    </figure><p>Always puts a smile on my face when I find one of these. One day I may even learn how to crotchet myself. A fine addition to the growing <a href="https://www.bongotwisty.blog/gallery/postbox_toppers/">collection</a>.</p>
]]></content:encoded></item><item><title>Armistice</title><link>https://www.bongotwisty.blog/armistice_lower_higham/</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/armistice_lower_higham/</guid><description>&lt;figure class="image-figure" style="text-align: center; margin: 1rem auto;"&gt;&lt;a href="https://www.bongotwisty.blog/gallery/postbox_toppers/20251116__armistice_lower_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Armistice, Lower Higham"&gt;
&lt;img src="https://www.bongotwisty.blog/gallery/postbox_toppers/20251116__armistice_lower_higham_hu_8ae640353a07bb08.jpg" alt="Hand-knitted commemorative display featuring miniature figures of Royal Guards in red uniforms and black bearskin hats positioned behind a knitted memorial stone. The stone is adorned with bright red poppies and sits on a crocheted base decorated with red, white, and blue flowers. The scene is photographed at dawn or dusk against a stone wall backdrop with countryside visible in the distance." loading="lazy" style="display: inline-block;"&gt;
&lt;/a&gt;&lt;figcaption&gt;Armistice, Lower Higham&lt;/figcaption&gt;
&lt;/figure&gt;</description><content:encoded><![CDATA[

<figure class="image-figure" style="text-align: center; margin: 1rem auto;"><a href="/gallery/postbox_toppers/20251116__armistice_lower_higham.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Armistice, Lower Higham">
          <img src="/gallery/postbox_toppers/20251116__armistice_lower_higham_hu_8ae640353a07bb08.jpg" alt="Hand-knitted commemorative display featuring miniature figures of Royal Guards in red uniforms and black bearskin hats positioned behind a knitted memorial stone. The stone is adorned with bright red poppies and sits on a crocheted base decorated with red, white, and blue flowers. The scene is photographed at dawn or dusk against a stone wall backdrop with countryside visible in the distance." loading="lazy" style="display: inline-block;">
        </a><figcaption>Armistice, Lower Higham</figcaption>
    </figure>]]></content:encoded></item><item><title>The Middle Path</title><link>https://www.bongotwisty.blog/middle_path/</link><pubDate>Sat, 15 Nov 2025 00:00:00 +0000</pubDate><author>bongotwisty@pm.me (Bongo Twisty)</author><guid>https://www.bongotwisty.blog/middle_path/</guid><description>&lt;p&gt;Finding the middle path. The path between idealism and pragmatism. Between naivety and cynicism. Compliant surrender and angry dissent. Detachment and clinging on.&lt;/p&gt;
&lt;p&gt;This is a conversation I am having with myself this week, and have had with a colleague and a couple of friends.&lt;/p&gt;
&lt;p&gt;I noticed I was feeling angry with a decision made at work. Angry with my managers apparent inability to challenge their seniors and peers effectively.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Finding the middle path. The path between idealism and pragmatism. Between naivety  and cynicism. Compliant surrender and angry dissent. Detachment and clinging on.</p>
<p>This is a conversation I am having with myself this week, and have had with a colleague and a couple of friends.</p>
<p>I noticed I was feeling angry with a decision made at work. Angry with my managers apparent inability to challenge their seniors and peers effectively.</p>
<p>This is not something I have experienced in any notable way for nearly 18 months. Not since leaving my last job and starting the one I have now. I guess 18 months is about long enough to become established in role and to start coming up against the organisational culture.</p>
<p>I don&rsquo;t think that&rsquo;s all there is to it though. I have been working on myself in a structured and supported way over the last few years. Prior to now I would have been very much to one side of the path. Not even realised that there was another side let alone a middle way between the two.</p>
<p>On Friday I had a bit of a rant in our team catch up. Indignant, righteous anger. Full of disdain. In years gone by that would then have stewed and festered. On this occasion I noticed my reaction. I could see it for what it was. I understood where it was coming from. Rather than identify with it and allow it to possess me I decided to do something different. To let it be and follow up in a constructive way. A healthy adult way.</p>
<p>I put together what I intended to be a persuasive and reasoned rational to articulate the case for a change I have proposed. Whether now this influences decisions has yet to be known. While it is my hope that it does, if it does not I feel at peace for having tried rather than just getting angry.</p>
<p>Management teams are often made up of people who nod and agree with their seniors. Who tow the party line. Who will keep things as they are and not rock the boat. People who are considered a &ldquo;safe pair of hands&rdquo;. Default decision makers. Predictable, reliable managers. Keep your head down and maintain continuity is the message. This might be safe but it may also stifle innovation, change and improvement.</p>
<p>I may be able to accept this approach bit more if I worked in a &ldquo;good&rdquo; organisation. I work in one that &ldquo;requires improvement&rdquo;.</p>
]]></content:encoded></item></channel></rss>