<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="https://tlohde.com/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>tlohde</title>
    <link>https://tlohde.com/</link>
    <atom:link href="https://tlohde.com/feed.xml" rel="self" type="application/rss+xml" />
    <description>thoughts thought and posts posted</description>
    <language>en</language>
    <item>
      <title>3 × 4⅓</title>
      <link>https://tlohde.com/blog/2026/04/3-4/</link>
      <description>&lt;h2 id=&quot;outside&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#outside&quot;&gt;outside&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I went up a hill, two hills in fact, for the first time in a &lt;em&gt;long&lt;/em&gt; time. &lt;a href=&quot;https://tlohde.com/mapping/munros/index.html?lat=56.85704&amp;amp;lng=-3.23616&amp;amp;zoom=13&quot;&gt;Driesh and Mayar&lt;/a&gt;, a pair of Munros in Glen Clova. Near whiteout conditions were enjoyed on both summits along with some haribo tangfastics.&lt;/p&gt;
&lt;figure class=&quot;fig&quot; id=&quot;fig0&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-200w.webp 200w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-300w.webp 300w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-640w.webp 640w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-828w.webp 828w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-1080w.webp 1080w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-1200w.webp 1200w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-2048w.webp 2048w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-3840w.webp 3840w&quot; sizes=&quot;auto&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-200w.gif&quot; alt=&quot;a Scottish mountain landscape with snow in the foreground and sunlit snow-free rocky slopes on a hillside at the left of frame. The sky is patchy with clouds&quot; width=&quot;3840&quot; height=&quot;2161&quot; srcset=&quot;https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-200w.gif 200w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-300w.gif 300w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-640w.gif 640w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-828w.gif 828w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-1080w.gif 1080w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-1200w.gif 1200w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-2048w.gif 2048w, https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-3840w.gif 3840w&quot; sizes=&quot;auto&quot;&gt;&lt;/picture&gt;
    
    &lt;figcaption&gt;
    &lt;a href=&quot;https://tlohde.com/blog/2026/04/3-4/above_corrie_fee-1200w.webp&quot; target=&quot;_blank&quot;&gt;⛶↗&lt;/a&gt;&amp;nbsp
    &lt;a href=&quot;https://tlohde.com/blog/2026/04/3-4/#fig0&quot;&gt;Fig 0:&lt;/a&gt; above Corrie Fee, looking back at where I&#39;d come from.
    &lt;/figcaption&gt;
    &lt;/figure&gt;
&lt;h2 id=&quot;made-of-meat&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#made-of-meat&quot;&gt;made of meat&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When emptying the recycling I plunged my hand into a bag unaware that it contained broken glass. This yielded a reasonably deep cut on my thumb,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/04/3-4/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; just above the crease, which bled an unreasonable amount. When cleaning and dressing it, I was made uncomfortably aware that I am in fact, made of meat.&lt;/p&gt;
&lt;p&gt;I didn&#39;t climb for a fortnight. Thankfully it seems to have healed up ok-enough. Although, I have my suspicions that there might still be some glass in there.&lt;/p&gt;
&lt;h2 id=&quot;woof&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#woof&quot;&gt;woof&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The dog had another seizure. And then last weekend managed, somehow, to badly damage a few of her nails, exposing the quick. The vet removed three nails and instructed us to bathe her feet in warm salty water after each walk, so they don&#39;t get infected.&lt;/p&gt;
&lt;hr style=&quot;margin: 1lh 0; color:var(--bg);&quot;&gt;
&lt;aside id=&quot;note&quot;&gt;&lt;h4&gt;note&lt;/h4&gt;&lt;p&gt;i&#39;ve been slightly more miserable than usual recently (I wasn&#39;t sure where to put this note. here will do.)&lt;/p&gt;
&lt;/aside&gt;
&lt;hr style=&quot;margin: 1lh 0; color:var(--bg);&quot;&gt;
&lt;h2 id=&quot;projects&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#projects&quot;&gt;projects&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;tuis&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#tuis&quot;&gt;tuis&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I made modest progress on my &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/&quot;&gt;running / cycling / hiking activity viewer&lt;/a&gt;, adding &lt;a href=&quot;https://en.wikipedia.org/wiki/Arthur_Eddington#Eddington_number_for_cycling&quot;&gt;Eddington Numbers&lt;/a&gt;, and some code for calculating fastest &lt;em&gt;x&lt;/em&gt; km, both within a given activity, and across all activities&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/04/3-4/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;I made considerable progress on a different tui...one for my partner&#39;s business. Another interface to a duckdb database, only for managing clients, sessions and some payments. Nothing &lt;em&gt;too&lt;/em&gt; fancy. And, remarkably, it mostly works. And I now feel a great deal more comfortable working with &lt;code&gt;textual&lt;/code&gt;&#39;s framework, and my &lt;code&gt;sql&lt;/code&gt; skills are improving.&lt;/p&gt;
&lt;p&gt;Repetition is a useful thing.&lt;/p&gt;
&lt;h3 id=&quot;bathymetry&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#bathymetry&quot;&gt;bathymetry&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Very tentaively &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/&quot;&gt;started an overwhelmingly large project&lt;/a&gt;. Since posting that I have digitized Loch Clunie, and &lt;em&gt;slightly&lt;/em&gt; improved my code for making the gridded output.&lt;/p&gt;
&lt;p&gt;I have been meaning to get more comfortable just using &lt;code&gt;gdal&lt;/code&gt;, because I get the sense that it can &lt;em&gt;do everything&lt;/em&gt;. But I always default to &lt;code&gt;geopandas&lt;/code&gt; and (&lt;code&gt;rio&lt;/code&gt;)&lt;code&gt;xarray&lt;/code&gt;. Is this a problem? Not really. I suppose.&lt;/p&gt;
&lt;h2 id=&quot;equinox&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#equinox&quot;&gt;equinox&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align:left&quot;&gt;&lt;/th&gt;
&lt;th style=&quot;text-align:left&quot;&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;We&#39;re now the right side of the equinox&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;I failed to mark the occassion&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;bad&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/04/3-4/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;what do you call the inside of the knuckle? &lt;a href=&quot;https://tlohde.com/blog/2026/04/3-4/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;three cheers for &lt;a href=&quot;https://numpy.org/doc/stable/reference/generated/numpy.searchsorted.html&quot;&gt;&lt;code&gt;numpy.searchsorted&lt;/code&gt;&lt;/a&gt; &lt;a href=&quot;https://tlohde.com/blog/2026/04/3-4/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Sat, 04 Apr 2026 11:17:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2026/04/3-4/</guid>
    </item>
    <item>
      <title>deep thoughts</title>
      <link>https://tlohde.com/blog/2026/03/deep-thoughts/</link>
      <description>&lt;p&gt;I was thinking about something else&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; when the small matter of the volume of water in a lake came&lt;br&gt;
to mind. I looked at a map and waded into some murky waters. Of unknown depth.&lt;/p&gt;
&lt;aside id=&quot;note&quot;&gt;&lt;h4&gt;note&lt;/h4&gt;&lt;p&gt;this post was better in my head. sorry&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;os&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#os&quot;&gt;os&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;What can you see in &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig0&quot;&gt;Fig 0&lt;/a&gt;?&lt;/p&gt;
&lt;figure class=&quot;fig&quot; id=&quot;fig0&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-200w.webp 200w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-300w.webp 300w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-640w.webp 640w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-828w.webp 828w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-1080w.webp 1080w&quot; sizes=&quot;auto&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-200w.gif&quot; alt=&quot;An excerpt of an Ordnance Survey Landranger Map (Sheet 42). The maps shows the topography and inclues Loch Ossian and the southern end of Loch Treig. Loch Ossian features bathymetric contours, Loch Treig does not...&quot; width=&quot;1080&quot; height=&quot;776&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-200w.gif 200w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-300w.gif 300w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-640w.gif 640w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-828w.gif 828w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-1080w.gif 1080w&quot; sizes=&quot;auto&quot;&gt;&lt;/picture&gt;
    
    &lt;figcaption&gt;
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_ossian-1200w.webp&quot; target=&quot;_blank&quot;&gt;⛶↗&lt;/a&gt;&amp;nbsp
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig0&quot;&gt;Fig 0:&lt;/a&gt; Loch Treig and Loch Ossian from OS Landranger 42&lt;br&gt;OS Crown copyright 2016.
    &lt;/figcaption&gt;
    &lt;/figure&gt;
&lt;p&gt;Aside from the handful of &lt;a href=&quot;https://tlohde.com/mapping/munros/index.html?lat=56.789&amp;amp;lng=-4.6969&amp;amp;zoom=11&quot;&gt;Munros&lt;/a&gt;, the &lt;a href=&quot;https://en.wikipedia.org/wiki/West_Highland_Railway&quot;&gt;West Highland Railway&lt;/a&gt; and the &lt;a href=&quot;https://www.hostellingscotland.org.uk/hostels/loch-ossian/&quot;&gt;Youth Hostel&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Well, there&#39;s the beautiful, glacially carved, Loch Treig (&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig1&quot;&gt;Fig 1&lt;/a&gt;) and its sibling Loch Ossian.&lt;/p&gt;
&lt;figure class=&quot;fig&quot; id=&quot;fig1&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-200w.webp 200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-300w.webp 300w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-640w.webp 640w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-828w.webp 828w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-1080w.webp 1080w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-1200w.webp 1200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-2048w.webp 2048w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-3840w.webp 3840w&quot; sizes=&quot;auto&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-200w.gif&quot; alt=&quot;a dramatic view over a long narrow loch. The hill in the foreground is in shade, the far side of loch is a steep sunlight brown hillside.&quot; width=&quot;3840&quot; height=&quot;2161&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-200w.gif 200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-300w.gif 300w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-640w.gif 640w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-828w.gif 828w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-1080w.gif 1080w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-1200w.gif 1200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-2048w.gif 2048w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-3840w.gif 3840w&quot; sizes=&quot;auto&quot;&gt;&lt;/picture&gt;
    
    &lt;figcaption&gt;
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig-1200w.webp&quot; target=&quot;_blank&quot;&gt;⛶↗&lt;/a&gt;&amp;nbsp
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig1&quot;&gt;Fig 1:&lt;/a&gt; South West (ish) over Loch Treig from Stob Coire Sgriodain (979 m) on 6th April 2025.
    &lt;/figcaption&gt;
    &lt;/figure&gt;
&lt;p&gt;But why does Loch Ossian get the all bathymetric contours and the bigger, deeper, Loch Treig gets none?&lt;/p&gt;
&lt;h2 id=&quot;dam&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#dam&quot;&gt;dam&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Loch Treig was dammed in 1929 (dam not shown in &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig0&quot;&gt;Fig 0&lt;/a&gt;). After a quick glance at a few other OS map sheets I think I can say with some confidence&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; that the Ordnance Survey have chosen &lt;em&gt;not&lt;/em&gt; to put bathymetric contours on bodies of water that have a dam.&lt;/p&gt;
&lt;h2 id=&quot;this-makes-sense&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#this-makes-sense&quot;&gt;this makes sense&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Water levels in dammed lakes—reservoirs—are liable to fluctuate.&lt;/p&gt;
&lt;p style=&quot;margin-left:3em;&quot;&gt;The depth changes.&lt;/p&gt;
&lt;p style=&quot;margin-left:6em;&quot;&gt;On a whim.&lt;/p&gt;
&lt;p style=&quot;margin-left:9em;&quot;&gt;End. Of.&lt;/p&gt;
&lt;h2 id=&quot;but&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#but&quot;&gt;but&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A given point on the lake bed has an elevation above&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; sea level.&lt;/p&gt;
&lt;p&gt;Yes, there is probably some &lt;a href=&quot;https://en.wikipedia.org/wiki/Lake#Disappearance&quot;&gt;infilling&lt;/a&gt; go on, but, the bathymetry isn&#39;t changing &lt;em&gt;that&lt;/em&gt; quickly.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The lake shore was plotted at the elevation it was surveyed at.&lt;/p&gt;
&lt;p&gt;Bathymetric contours are just offsets.&lt;/p&gt;
&lt;p&gt;If the lake surface elevation at the time the depths were measured is known, the elevation (above sea level) of the sublacustrine&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; terrain is also known.&lt;/p&gt;
&lt;p&gt;Therefore, the bathymetric contours, or offsets, can be readily plotted whatever the lake level.&lt;/p&gt;
&lt;p&gt;So. Why aren&#39;t they?&lt;/p&gt;
&lt;p&gt;I don&#39;t know.&lt;/p&gt;
&lt;p&gt;And I would like to know.&lt;/p&gt;
&lt;h2 id=&quot;working-hypotheses&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#working-hypotheses&quot;&gt;working hypotheses&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;No wrong answers, no silly suggestions, just some ideas as to why...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cartographic clarity?
&lt;ul&gt;
&lt;li&gt;ditch the contours on reservoirs to minimise visual clutter&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;To discourage recreation?
&lt;ul&gt;
&lt;li&gt;don&#39;t want any fishin&#39;-swimmin&#39;-sailin&#39;-paddlin&#39;-divin&#39; in case a hydro-engineer spontaneously opens the dam&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Rates of infill are HUGE?
&lt;ul&gt;
&lt;li&gt;any depth measurement will be out of date before you can say &lt;em&gt;sublacustrine sedimentation&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Because reservoirs aren&#39;t &lt;em&gt;natural&lt;/em&gt;?
&lt;ul&gt;
&lt;li&gt;and only natural things are deserving of contours&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;OS Style guide?
&lt;ul&gt;
&lt;li&gt;a style guide written in 19-something says &amp;quot;we don&#39;t do that&amp;quot; and nobody remembers &lt;em&gt;the why&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;em&gt;YOU&lt;/em&gt; know, please, &lt;a href=&quot;https://tlohde.com/contact&quot;&gt;let me know&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;data&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#data&quot;&gt;data&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the process of trying to understand this mystery I went hunting for some data.&lt;/p&gt;
&lt;h3 id=&quot;oh%2C-ess&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#oh%2C-ess&quot;&gt;oh, ess&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I can&#39;t seem to find any reference to bathymetry in the documentation of OS Terrain 5, OS Terrain 50, or OS Water Features.&lt;/p&gt;
&lt;p&gt;The closest I could get to the bathymetry shown on the &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig0&quot;&gt;above map&lt;/a&gt; is on the &lt;a href=&quot;https://docs.os.uk/os-downloads/products/maps-and-imagery-portfolio/1-50-000-scale-colour-raster/1-50-000-scale-colour-raster-downloads#id-1-50-000-scale-colour-raster-map-symbols-legend&quot;&gt;legend&lt;/a&gt; where bathymetric contours are described...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Contour values in lakes are in metres&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;...They aren&#39;t deserving enough of being displayed visually.&lt;/p&gt;
&lt;h3 id=&quot;the-lakes-portal&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#the-lakes-portal&quot;&gt;the lakes portal&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://uklakes.ceh.ac.uk&quot;&gt;UK Lakes Portal&lt;/a&gt; don&#39;t include any detailed bathymetric data, but &lt;em&gt;do include&lt;/em&gt; a few summary statistics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Surface area&lt;/li&gt;
&lt;li&gt;Mean depth&lt;/li&gt;
&lt;li&gt;Maximum depth&lt;/li&gt;
&lt;li&gt;Catchment area&lt;/li&gt;
&lt;li&gt;Elevation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now we are getting somewhere.&lt;/p&gt;
&lt;aside id=&quot;note&quot;&gt;&lt;h4&gt;note&lt;/h4&gt;&lt;p&gt;I am mostly concerned with Scottish Lochs&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;In many cases the source cited for mean and maximum depth is &amp;quot;&lt;em&gt;Murray and Pullar&lt;/em&gt;&amp;quot;. Furthermore, they include a link, such as &lt;a href=&quot;https://maps.nls.uk/bathymetric/chart/2136&quot;&gt;this one&lt;/a&gt;, that take you a scan of Murray &amp;amp; Pullar&#39;s map of the lake. And what beautiful things they are (&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig2&quot;&gt;Fig 2&lt;/a&gt;).&lt;/p&gt;
&lt;figure class=&quot;fig&quot; id=&quot;fig2&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-200w.webp 200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-300w.webp 300w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-640w.webp 640w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-828w.webp 828w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-1080w.webp 1080w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-1200w.webp 1200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-2048w.webp 2048w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-3840w.webp 3840w&quot; sizes=&quot;auto&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-200w.gif&quot; alt=&quot;A (low-res) excerpt of a topo-bathy map. The terrain is shown in earth brown-ish tones. The water is shown in calm blues&quot; width=&quot;3840&quot; height=&quot;2557&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-200w.gif 200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-300w.gif 300w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-640w.gif 640w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-828w.gif 828w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-1080w.gif 1080w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-1200w.gif 1200w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-2048w.gif 2048w, https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-3840w.gif 3840w&quot; sizes=&quot;auto&quot;&gt;&lt;/picture&gt;
    
    &lt;figcaption&gt;
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/LochTreig_MurrayPullar-1200w.webp&quot; target=&quot;_blank&quot;&gt;⛶↗&lt;/a&gt;&amp;nbsp
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig2&quot;&gt;Fig 2:&lt;/a&gt; Look at those blues and browns. Note Stob Coire Sgriodain (where &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig1&quot;&gt;Fig 1&lt;/a&gt; was taken from) towards the bottom right of frame. North is to the right. Apologies for the low quality. This has been exported from the above link as a .pdf then converted to .jpg. High-resolution exports come at a price.&lt;br&gt;Reproduced with the permission of the National Library of Scotland (CC-BY).
    &lt;/figcaption&gt;
    &lt;/figure&gt;
&lt;p&gt;The &lt;em&gt;Bathymetrical Survey of Fresh-Water Lochs&lt;/em&gt; (1897-1909) is searchable via the National Library of Scotland&#39;s &lt;a href=&quot;https://maps.nls.uk&quot;&gt;map page&lt;/a&gt;. And whilst they have all been scanned and are viewable online, only 33 have been georeferenced and are visible on their interactive &lt;a href=&quot;https://maps.nls.uk/geo/explore/#zoom=9.0&amp;amp;lat=56.39194&amp;amp;lon=-5.21419&amp;amp;layers=15&quot;&gt;Georeferenced Maps&lt;/a&gt; page.&lt;/p&gt;
&lt;p&gt;Murray and Pullar, and their team, surveyed 562.&lt;/p&gt;
&lt;p&gt;I did, however, find &lt;a href=&quot;https://contours.org.uk&quot;&gt;this website&lt;/a&gt;. Which has just for four lochs.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&quot;conclusion%3F&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#conclusion%3F&quot;&gt;conclusion?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Does the lake bathymetry shown on OS maps come from &lt;em&gt;the&lt;/em&gt; Bathymetrical Survey of Fresh-Water Lochs (1897-1909)?&lt;/p&gt;
&lt;p&gt;I don&#39;t know. Maybe?&lt;/p&gt;
&lt;p&gt;Is the underlying data available?&lt;/p&gt;
&lt;p&gt;Assuming &amp;quot;&lt;em&gt;yes&lt;/em&gt;&amp;quot; is the answer to the previous question, then, sort of.&lt;/p&gt;
&lt;p&gt;The Bathymetrical Survey of Fresh-Water Lochs (1897-1909) is available, but the &lt;em&gt;data&lt;/em&gt; are trapped in a raster.&lt;/p&gt;
&lt;p&gt;What does that mean?&lt;/p&gt;
&lt;p&gt;It means I&#39;m &lt;em&gt;very&lt;/em&gt; tempted to start a large digitisation project.&lt;/p&gt;
&lt;style&gt;
    .contourHRDark,
    .contourHRLight {
        display: block;
        position: relative;
        left: 50%;
        transform: translateX(-50%);
        width: 100vw;
        max-width: none;
        height: auto;
        margin: 0;
    }
    
    [data-theme=&#39;light&#39;] .contourHRDark,
    [data-theme=&#39;dark&#39;] .contourHRLight {
        display: none;
    }
&lt;/style&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/img/contours_clip_dark_alt-2048w.webp 2048w&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/img/contours_clip_dark_alt-2048w.gif&quot; alt=&quot;contours&quot; width=&quot;2048&quot; class=&quot;contourHRDark&quot; height=&quot;99&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/img/contours_clip_light-2048w.webp 2048w&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/img/contours_clip_light-2048w.gif&quot; alt=&quot;contours&quot; width=&quot;2048&quot; class=&quot;contourHRLight&quot; height=&quot;99&quot;&gt;&lt;/picture&gt;
&lt;h2 id=&quot;objective&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#objective&quot;&gt;objective&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Liberate the data contained within the &lt;em&gt;Bathymetrical Survey of Fresh-Water Lochs (1897-1909)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;What data?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The shoreline
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;LineString&lt;/code&gt; with the associated &amp;quot;&lt;em&gt;Height of Surface of Water above Sea Level (feet)&lt;/em&gt;&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The individual soundings (~60,000 of them).
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Point&lt;/code&gt; with a depth measurement (in feet)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The contours&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;LineString&lt;/code&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn9&quot; id=&quot;fnref9&quot;&gt;[9]&lt;/a&gt;&lt;/sup&gt; with depth (in feet)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;method&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#method&quot;&gt;method&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id=&quot;digitize&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#digitize&quot;&gt;digitize&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Handily, for the 33 georeferenced sheets the NLS have made a publicly accessible &lt;code&gt;xyz tile&lt;/code&gt; available. This was added to QGIS.&lt;/p&gt;
&lt;p&gt;Once in QGIS a new point layer with a single attribute field: &lt;code&gt;depth_ft&lt;/code&gt; was created and points were added at each depth sounding and the associated reading input. A new polygon layer, again with a &lt;code&gt;depth_ft&lt;/code&gt; attribute, was similarly created and the shoreline (depth: 0 ft) digitized, followed by each of the contours.&lt;/p&gt;
&lt;p&gt;The soundings point layer was supplemented with points taken every ~150 m&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn10&quot; id=&quot;fnref10&quot;&gt;[10]&lt;/a&gt;&lt;/sup&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn11&quot; id=&quot;fnref11&quot;&gt;[11]&lt;/a&gt;&lt;/sup&gt; from the shoreline, and &lt;em&gt;optionally&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn12&quot; id=&quot;fnref12&quot;&gt;[12]&lt;/a&gt;&lt;/sup&gt; points from the contour lines.&lt;/p&gt;
&lt;h4 id=&quot;grid&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#grid&quot;&gt;grid&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;A 5 m (25 or 50 m would have been sufficient) grid was created covering the area of the lake. &lt;em&gt;All&lt;/em&gt; of the points were first passed into &lt;code&gt;matplotlib&lt;/code&gt;&#39;s &lt;code&gt;mtri.Triangulation&lt;/code&gt; to create a &lt;a href=&quot;https://en.wikipedia.org/wiki/Delaunay_triangulation&quot;&gt;Delaunay triangulation&lt;/a&gt;. This triangulatuion was then used to interpolate the depths across the grid with the &lt;code&gt;mtri.LinearTriInterpolator&lt;/code&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn13&quot; id=&quot;fnref13&quot;&gt;[13]&lt;/a&gt;&lt;/sup&gt;. The output of this is then masked with the shoreline, as some triangles and grid points fall outside of the lake.&lt;/p&gt;
&lt;p&gt;Bingo. Gridded depths.&lt;/p&gt;
&lt;h4 id=&quot;subtract&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#subtract&quot;&gt;subtract&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Elevations for the surrounding terrain were taken from the Copernicus DEM (GLO-30), because it&#39;s easy to access. The gridded bathymetry values were converted from feet to metres, reprojected onto the same grid as the DEM, and then subtracted from the DEM. Because they&#39;re just offsets.&lt;/p&gt;
&lt;p&gt;Bingo. ✨Topography &lt;em&gt;&amp;amp;&lt;/em&gt; bathymetry✨&lt;/p&gt;
&lt;h3 id=&quot;result&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#result&quot;&gt;result&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Here is Loch Treig. Poorly rendered&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn14&quot; id=&quot;fnref14&quot;&gt;[14]&lt;/a&gt;&lt;/sup&gt; in Blender&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fn15&quot; id=&quot;fnref15&quot;&gt;[15]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;figure class=&quot;fig&quot; id=&quot;fig3&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-200w.webp 200w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-300w.webp 300w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-640w.webp 640w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-828w.webp 828w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-1080w.webp 1080w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-1200w.webp 1200w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-1920w.webp 1920w&quot; sizes=&quot;auto&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-200w.gif&quot; alt=&quot;3d view of a topographic map&quot; width=&quot;1920&quot; height=&quot;1080&quot; srcset=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-200w.gif 200w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-300w.gif 300w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-640w.gif 640w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-828w.gif 828w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-1080w.gif 1080w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-1200w.gif 1200w, https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-1920w.gif 1920w&quot; sizes=&quot;auto&quot;&gt;&lt;/picture&gt;
    
    &lt;figcaption&gt;
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/treig_3d_view-1200w.webp&quot; target=&quot;_blank&quot;&gt;⛶↗&lt;/a&gt;&amp;nbsp
    &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig3&quot;&gt;Fig 3:&lt;/a&gt; Loch Treig from Murray &amp; Pullar&#39;s Bathymetrical Survey of Fresh-Water Lochs (1897-1909) draped over the topo-bathy surface created from their soundings, and surface topography from Copernicus Global DEM. View is looking north-west ish towards where &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig1&quot;&gt;Fig 1&lt;/a&gt; was taken from. Apologies for it being so dark.&lt;br&gt;Reproduced with the permission of the National Library of Scotland (CC-BY) &amp; Produced using Copernicus WorldDEM-30, ESA.
    &lt;/figcaption&gt;
    &lt;/figure&gt;
&lt;h3 id=&quot;discussion-grumble&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#discussion-grumble&quot;&gt;&lt;s&gt;discussion&lt;/s&gt; grumble&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The contour lines &lt;em&gt;aren&#39;t straight&lt;/em&gt;. Why?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;they were hand drawn&lt;/li&gt;
&lt;li&gt;the gridded bathymetry (and the copernicus DEM) would put them somewhere else&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This discrepency means wiggly contours.&lt;/p&gt;
&lt;p&gt;This is the reason why the soundings were supplemented with artificial soundings along the contour lines, in the hope that this would pin the lines to the &amp;quot;&lt;em&gt;correct&lt;/em&gt;&amp;quot; elevation in the generated grid.&lt;/p&gt;
&lt;p&gt;It helped, but not enough.&lt;/p&gt;
&lt;h3 id=&quot;next&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#next&quot;&gt;next&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;My &amp;quot;&lt;em&gt;workflow&lt;/em&gt;&amp;quot; is semi-optimized, and I should really just start clicking away and digitize the remaining georeferenced maps. I&#39;ve already done the two sheets covering Loch Ericht.&lt;/p&gt;
&lt;p&gt;Get more comfortable in blender. &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fig3&quot;&gt;Fig 3&lt;/a&gt; was generated using &lt;em&gt;Viewport Render Image&lt;/em&gt;, because I could not translate, scale, rotate, zoom, focus or otherwise manipulate and coerce the camera into position.&lt;/p&gt;
&lt;p&gt;Nor could I make the sunrise.&lt;/p&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;can&#39;t remember what &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;there&#39;s my trademark lack of confidence &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;or below, looking at you &lt;a href=&quot;https://en.wikipedia.org/wiki/Loch_Morar&quot;&gt;Loch Morar&lt;/a&gt; &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;right? &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;couldn&#39;t not squeeze that word in here &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;not sorry &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;and after starting my own &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#digitize&quot;&gt;digitizing&lt;/a&gt; efforts I found &lt;a href=&quot;https://www.youtube.com/watch?v=-q021mocJdI&quot;&gt;this conference talk by Phil Taylor&lt;/a&gt; which details his (&amp;amp; his students&#39;) methodology &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;granted is technically a &lt;em&gt;derived&lt;/em&gt; quantity, since these are based on the the shoreline and the individual soundings &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn9&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;or &lt;code&gt;Polygon&lt;/code&gt; if &lt;em&gt;filled contours&lt;/em&gt; are your thing &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref9&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn10&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;this seemed like a sensible-ish value &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref10&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn11&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;the quality—the general &amp;quot;yeah, that seems about right&amp;quot;-ness—of the output is quite sensitive to this value, for example, at Loch Ericht, the spacing of some of the original transects means that during triangulation some triangles are formed from two adjacent points on the shore, and a third point across the loch on the far shore. This manifests itself as a non-existant land-bridge in the final gridded output &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref11&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn12&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;for reasons that I &lt;em&gt;might&lt;/em&gt; explain later &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref12&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn13&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;code&gt;mtri.CubicTriInterpolator&lt;/code&gt; is also an option &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref13&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn14&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;because I struggle to use Blender &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref14&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn15&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;because my laptop kept crashing when using QGIS&#39; 3d view &lt;a href=&quot;https://tlohde.com/blog/2026/03/deep-thoughts/#fnref15&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Mon, 30 Mar 2026 20:09:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2026/03/deep-thoughts/</guid>
    </item>
    <item>
      <title>2 × 4⅓</title>
      <link>https://tlohde.com/blog/2026/02/2-4/</link>
      <description>&lt;p&gt;Not a lot. I think. I am still hopelessly in love with this &lt;a href=&quot;https://www.whitemausu.com/products/peanut-rayu&quot;&gt;peanut rayu&lt;/a&gt;, and I&#39;m currently enjoying reading (very slowly) A Thousand Blues by&lt;br&gt;
Cheon Seon-ran.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&quot;ill&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#ill&quot;&gt;ill&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I was snotty for a week and a bit. That halted the running &amp;amp; cycling &amp;amp; climbing discipline of &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#exercise&quot;&gt;last month&lt;/a&gt;. I have just come back from my first climb in a fortnight, and I was going &lt;em&gt;ok&lt;/em&gt; ish.&lt;/p&gt;
&lt;h2 id=&quot;jury-service&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#jury-service&quot;&gt;jury service&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I didn&#39;t have to go to court. I just had to phone a number every evening for four days to see if I had to go to court.&lt;/p&gt;
&lt;h2 id=&quot;map-festival&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#map-festival&quot;&gt;map festival&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Not having to attend court meant I could go to the Map Festival at the National Library of Scotland. I didn&#39;t get tickets to any of the talks, because (a) I didn&#39;t realise I needed to. I browsed the free section for an hour or so. Had a chat with someone from the &lt;a href=&quot;https://www.ncap.org&quot;&gt;National Collection of Aerial Photography&lt;/a&gt;. They are digitising ~30 million images. And the film canisters are huge. ~30 cm negatives. Incredible things. I had questions about how accessible and discoverable their collection is. I didn&#39;t get an answer as to whether or not they are using STAC. And unfortunately the imagery isn&#39;t free.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; But that&#39;s not surprising, the cost of scanning and georeferencing that many images must be huge. They also had some stereo pairs to look at.&lt;/p&gt;
&lt;p&gt;There were also some &lt;a href=&quot;https://www.nationalgalleries.org/art-and-artists/63244&quot;&gt;panoramas&lt;/a&gt; of Edinburgh from the late 17-, early 18-somethings by father-son duo &lt;a href=&quot;https://en.wikipedia.org/wiki/Robert_Barker_(painter)&quot;&gt;Robert Barker&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://en.wikipedia.org/wiki/Henry_Aston_Barker&quot;&gt;Henry Aston Barker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One day&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; I&#39;ll use some high-res lidar data and write some terrible code that won&#39;t quite work to make a poor imitation that won&#39;t look anything like the original, and will be far less intelligible.&lt;/p&gt;
&lt;h2 id=&quot;projects&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#projects&quot;&gt;projects&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;tui&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#tui&quot;&gt;tui&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I made some &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/&quot;&gt;progress on my little CLI / TUI &lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;this-site&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#this-site&quot;&gt;this site&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;And I tinkered with the &lt;a href=&quot;https://tlohde.com/archive&quot;&gt;archive&lt;/a&gt; page of this site, which now, thanks to the &lt;a href=&quot;https://uncharted.seanlunsford.com&quot;&gt;uncharted plugin&lt;/a&gt;, has a graph entirely composed of HTML &amp;amp; CSS showing the cumulative number of posts on this site. &lt;em&gt;And&lt;/em&gt; thanks to some poorly written javascript by me, I now have a list of &lt;a href=&quot;https://tlohde.com/archive/#extreme-posts&quot;&gt;&lt;em&gt;#ExtremePosts&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;cartography&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#cartography&quot;&gt;cartography&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Resumed tinkering with a now &lt;em&gt;very&lt;/em&gt; late&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; birthday present for a friend. Still not happy with it. It &lt;em&gt;might&lt;/em&gt; involve the pen plotter, which I haven&#39;t been able to get running since the old laptop died&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; and I&#39;m now using a different old laptop running Linux Mint, instead of Ubunutu. Something to do with a driver a CH341 serial driver and tty...ugh.&lt;/p&gt;
&lt;p&gt;None of that really has anything to do with cartography.&lt;/p&gt;
&lt;h2 id=&quot;the-thing&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#the-thing&quot;&gt;the thing&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A significant thing has been happening. Which I shalln&#39;t be sharing any details about. Other than the fact that &lt;em&gt;the thing&lt;/em&gt; is giving the bucket of emotions a mighty stir.&lt;/p&gt;
&lt;h2 id=&quot;the-dog&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#the-dog&quot;&gt;the dog&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The dog had two seizures this month. Bringing her total to four. We&#39;re off the vet next week for her annual check-up. Maybe she&#39;ll get some meds for it.&lt;/p&gt;
&lt;p&gt;I&#39;d like her not to have any more. They suck. The episodes tend to happen ~an hour before normal waking up time and start with her throwing up, then ~a minute later going into a seizure that lasts ~2 minutes. During which she goes blind, loses control of her bladder and bowels, in addition to the convulsions. After that she is, understandably, disoriented. Her balance is off, and she&#39;s can be a bit aggressive&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; whilst working out what just happened. I stay a few metres away and just talk calmly and quietly. I &lt;em&gt;think&lt;/em&gt; I can tell when her vision returns: the pupils start responding a bit more normally; and she moves her head more predictably. The &amp;quot;coming-out-of-it&amp;quot; phase is ~5-10 minutes, and I&#39;ll then take her out for a toilet break and my partner starts mopping. Once back, it&#39;s time to give her wash&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; because she is invariably covered in her own urine and faeces. Once all the windows in the flat are open, it&#39;s time to put some coffee on, write the date on the piece of paper titled: &amp;quot;dog seizures&amp;quot;, and start the day.&lt;/p&gt;
&lt;h2 id=&quot;the-car&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#the-car&quot;&gt;the car&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Needed jump starting, because I rarely use it.&lt;/p&gt;
&lt;h2 id=&quot;time&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#time&quot;&gt;time&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The days are getting longer, and milder, and for that I am grateful.&lt;/p&gt;
&lt;h2 id=&quot;elsewhere&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#elsewhere&quot;&gt;elsewhere&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;a href=&quot;https://timetowaste.ru/en_infidex&quot;&gt;infidex 176 V open source panoramic camera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Max Halford&#39;s &lt;a href=&quot;https://maxhalford.github.io/blog/text-classification-zstd/&quot;&gt;text classification with python 3.14&#39;s zstd module&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;as a long time user/owner of an eTrex, this &lt;a href=&quot;https://danblog.planbperformance.net/new-etrex-followup.html&quot;&gt;review of the new eTrex&lt;/a&gt; was disappointing to read&lt;/li&gt;
&lt;li&gt;an interesting &amp;amp; well-written description of &lt;a href=&quot;https://simonwillison.net/2020/Oct/9/git-scraping/&quot;&gt;git scraping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;excellent post about recreating a &lt;a href=&quot;https://yarnspinner.dev/blog/hint-line-93/&quot;&gt;90&#39;s Game hint Line&lt;/a&gt; as a museum exhibit&lt;/li&gt;
&lt;li&gt;Lene Saile&#39;s &lt;a href=&quot;https://www.lenesaile.com/en/blog/internationalization-with-eleventy-20-and-netlify/&quot;&gt;Internationalization with Eleventy&lt;/a&gt; (they also have a cool light/dark toggle button)&lt;/li&gt;
&lt;li&gt;this &lt;a href=&quot;https://do-me.github.io/geoparquet-visualizer/&quot;&gt;GeoParquet Visualizer&lt;/a&gt; by Dominik Weckmüller. It&#39;s fast. It &lt;em&gt;should&lt;/em&gt; be possible to make it work with my track database &amp;amp; I &lt;em&gt;might&lt;/em&gt; be capable enough to make it work.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://alexharri.com/blog/ascii-rendering&quot;&gt;ASCII characters are not pixels&lt;/a&gt;. No they are not&lt;/li&gt;
&lt;li&gt;a &lt;a href=&quot;https://github.com/cxli233/FriendsDontLetFriends&quot;&gt;how not to of data-viz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chartability.fizz.studio&quot;&gt;chartability&lt;/a&gt;: a good accessible data viz guide&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://enclose.horse/edit&quot;&gt;enclose.horse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://usemodify.com&quot;&gt;Use &amp;amp; Modify&lt;/a&gt;: a collection of open source typefaces&lt;/li&gt;
&lt;li&gt;a nice post on &lt;a href=&quot;https://www.hughrundle.net/i-accidentally-became-a-foss-maintainer-and-all-i-got-was-this-lousy-new-perspective-on-librarianship/&quot;&gt;open source maintenance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;l***edIn is gross - &lt;a href=&quot;https://thelocalstack.eu/posts/linkedin-identity-verification-privacy/&quot;&gt;what happens when you verify your identity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;a nice portfolio site: &lt;a href=&quot;https://www.pathfindergeospatial.ca&quot;&gt;pathfinder geospatial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;em&gt;grazie, ciao&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/2-4/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;translated by Chi-Young Kim &lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;which makes me appreciate all the Sentinel and Landsat data &lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;probably never &lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;nearly four months &lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;need to try harder to get it running again &lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;low growling, little bit snarly, the occassional bark &lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;she gladly swims in the sea and lakes and rivers. But she does not like the bath &lt;a href=&quot;https://tlohde.com/blog/2026/02/2-4/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Fri, 27 Feb 2026 15:16:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2026/02/2-4/</guid>
    </item>
    <item>
      <title>progressing with a project</title>
      <link>https://tlohde.com/blog/2026/02/progressing-with-a-project/</link>
      <description>&lt;p&gt;Am I doing a poor imiation of what garmin and strava already do? Yes. Am I learning. Yes. Am I having fun. Mostly yes. I think. I should hope so.&lt;/p&gt;
&lt;h2 id=&quot;garth&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#garth&quot;&gt;garth&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In my &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#constraints&quot;&gt;previous post&lt;/a&gt; on the matter, I mentioned that my silly little CLI would &lt;strong&gt;not&lt;/strong&gt; have the &lt;em&gt;the ability to auto-magically sync&lt;/em&gt;. And I was wrong.&lt;/p&gt;
&lt;p&gt;Having dug into what &lt;a href=&quot;https://github.com/tcgoetz/GarminDB&quot;&gt;garmindb&lt;/a&gt; does, I discovered &lt;a href=&quot;https://garth.readthedocs.io/en/latest/&quot;&gt;garth&lt;/a&gt;. garth makes it &lt;em&gt;super easy&lt;/em&gt; to grab and download data from garmin connect. Like ~one line easy: &lt;code&gt;garth.Activity.list()&lt;/code&gt;. That&#39;s the bulk of it. Followed by some magic  with &lt;code&gt;zipfile.ZipFile()&lt;/code&gt; and &lt;code&gt;io.BytesIO()&lt;/code&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;So, I can now download &lt;em&gt;new&lt;/em&gt; activities &lt;em&gt;from&lt;/em&gt; garmin &lt;em&gt;to&lt;/em&gt; my ✨database✨.&lt;/p&gt;
&lt;p&gt;magic.&lt;/p&gt;
&lt;h2 id=&quot;duckdb&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#duckdb&quot;&gt;duckdb&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I am getting more comforable with &lt;code&gt;SQL&lt;/code&gt; and &lt;a href=&quot;https://duckdb.org/docs/stable/&quot;&gt;&lt;code&gt;duckdb&lt;/code&gt;&lt;/a&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Bulk-importing all my old &lt;code&gt;.gpx&lt;/code&gt; files was reasonably straightforward; ditto the &lt;code&gt;.fit&lt;/code&gt; files I downloaded from garmin. Having one &lt;code&gt;.db&lt;/code&gt; file to backup feels a lot cleaner than the ~2.5k that I&#39;ve been struggling and failing to organise for a few years. With the added bonus of the &lt;code&gt;.db&lt;/code&gt; being &lt;em&gt;much&lt;/em&gt; smaller, and it can be made &lt;em&gt;even&lt;/em&gt; smaller if I dump the tables&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; out to &lt;code&gt;.parquet&lt;/code&gt; files.&lt;/p&gt;
&lt;p&gt;I don&#39;t think I&#39;m dealing with enough data to really benefit from &lt;code&gt;duckdb&lt;/code&gt; over &lt;code&gt;pandas&lt;/code&gt;. I could have skipped the database step altogether:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;read in a &lt;code&gt;.gpx&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;do some light wrangling&lt;/li&gt;
&lt;li&gt;concatenate it to an exisiting &lt;code&gt;.parquet&lt;/code&gt; file&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I suppose I would then lose the security that maybe comes with a database, and the ability to enforce keys exist in other tables...&lt;/p&gt;
&lt;p&gt;As for &lt;em&gt;speeed&lt;/em&gt;, again, I don&#39;t think I&#39;m dealing with enough data. My &lt;code&gt;points&lt;/code&gt; table with all the individual track points has 4.39 million rows, so maybe...&lt;/p&gt;
&lt;p&gt;Once I&#39;ve finished, I &lt;em&gt;might&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; run a few speed comparisons. Since apparently that&#39;s a trendy thing to do.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;And&lt;/em&gt; most of the &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#functionality&quot;&gt;things I want this tool to be able to do&lt;/a&gt; sit under the &amp;quot;&lt;em&gt;query&lt;/em&gt;&amp;quot; umbrella...&lt;/p&gt;
&lt;h2 id=&quot;typer&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#typer&quot;&gt;typer&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I&#39;m happy with my choice of CLI-maker-tool. This coupled with &lt;code&gt;poetry&lt;/code&gt; have been mercifully straightforward to use.&lt;/p&gt;
&lt;p&gt;And I now have a handful of &lt;code&gt;commands&lt;/code&gt; that do things. These are invoked like so: &lt;code&gt;trak import-bulk&lt;/code&gt; or &lt;code&gt;trak cumulative-distance&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ve been diligently adding docstrings (not the best, but not nothing) to everything, which means I am also able to append &lt;code&gt;--help&lt;/code&gt; and I get something that looks like:&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;code&gt;$ trak filterd-date --help&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;: &lt;code&gt;trak filter-date [OPTIONS] START STOP&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;filtering tracks by date. returns track_ids NOTE: if input is yyyy defaults to start of year. to get full year (i.e. all tracks in 2025) input: &lt;code&gt;date-filter 2025 2026&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arguments&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align:left&quot;&gt;&lt;/th&gt;
&lt;th style=&quot;text-align:center&quot;&gt;&lt;/th&gt;
&lt;th style=&quot;text-align:left&quot;&gt;&lt;/th&gt;
&lt;th style=&quot;text-align:right&quot;&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;start&lt;/td&gt;
&lt;td style=&quot;text-align:center&quot;&gt;TEXT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;date string for start of time period: yyyy; mm-yyyy; dd-mm-yyyy. seperators can be any of the following: /,.:&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;stop&lt;/td&gt;
&lt;td style=&quot;text-align:center&quot;&gt;TEXT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;date string for end of time period: yyyy; mm-yyyy; dd-mm-yyyy. seperators can be any of the following: /,.:&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;required&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id=&quot;importers&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#importers&quot;&gt;importers&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;For bringing data into the database. This is where the wrangling happens.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;download-fit-files&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;import-bulk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;import-track&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;summaries&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#summaries&quot;&gt;summaries&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;For creating tables of summary statistics &amp;amp; showing distance travelled by activity type for each year, along with a some graphs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;summary-by-year&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cumulative-distance&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many more of these to write...&lt;/p&gt;
&lt;h3 id=&quot;filters&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#filters&quot;&gt;filters&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;For searching the database, by time or location.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;filter-date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filter-location&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;filter-location&lt;/code&gt; is a bit messy, but it works either by supplying a (lat, lon) and a radius, or a bounding box.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; I think&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; filtering by location is where &lt;code&gt;duckdb&lt;/code&gt; will outperform &lt;code&gt;geopandas&lt;/code&gt;. Maybe. But again, I&#39;m not dealing with HUGE data.&lt;/p&gt;
&lt;h2 id=&quot;plotting&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#plotting&quot;&gt;plotting&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/olavolav/uniplot&quot;&gt;uniplot&lt;/a&gt; is cool. I wish subplots were a thing. And I suppose they could be, by writing to a file, then sort of interleaving them...&lt;/p&gt;
&lt;h2 id=&quot;misc&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#misc&quot;&gt;misc&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Some of my old &lt;code&gt;.gpx&lt;/code&gt; files have some pretty funky characteristcs. There&#39;s a few&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt; with negative time steps in them.&lt;/p&gt;
&lt;p&gt;There are many instances of a single &lt;code&gt;.gpx&lt;/code&gt; file holding two short rides, separated by a week or more, that end up greatly exaggerating the duration.&lt;/p&gt;
&lt;p&gt;I&#39;m manually dealing with these issues, as that is likely the quicker thing to do.&lt;/p&gt;
&lt;h3 id=&quot;stop-detection&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#stop-detection&quot;&gt;Stop detection&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;It is a tricky beast. I&#39;m using &lt;code&gt;movingpandas&lt;/code&gt; and my current definition of stopped is: spending two minutes within a 50 m radius. Typing that there, it &lt;em&gt;feels&lt;/em&gt; wrong. But it&#39;s close enough. Ish. There are some instances, where it doesn&#39;t clock a stop that &lt;em&gt;is&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn9&quot; id=&quot;fnref9&quot;&gt;[9]&lt;/a&gt;&lt;/sup&gt; &amp;amp; some where it registers a stop that isn&#39;t.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fn10&quot; id=&quot;fnref10&quot;&gt;[10]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Who cares? I&#39;m having fun.&lt;/p&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;thank you stackoverflow (probably) &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;both the duckdb CLI and the python API &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;currently just two &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;probably won&#39;t &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;there are &lt;em&gt;many&lt;/em&gt; posts dedicated to this, and many of them are a bit sloppy, if you catch my drift &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I was trying to see if I could use &lt;a href=&quot;https://github.com/rastapasta/mapscii&quot;&gt;&lt;code&gt;mapscii&lt;/code&gt;&lt;/a&gt; and then pipe in the bounding box from that... &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;based on little more than a weak hunch &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;19 &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn9&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;like turning off the recording device whilst having a picnic, turning it back on, and moving &amp;gt; 50 m before signal is reacquired &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref9&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn10&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;pushing a heavy bike up a hill &lt;a href=&quot;https://tlohde.com/blog/2026/02/progressing-with-a-project/#fnref10&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Sat, 14 Feb 2026 23:17:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2026/02/progressing-with-a-project/</guid>
    </item>
    <item>
      <title>winter olympics</title>
      <link>https://tlohde.com/blog/2026/02/winter-olympics/</link>
      <description>&lt;p&gt;Some thoughts having watched a bit of the coverage.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&quot;ice-hockey&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#ice-hockey&quot;&gt;ice hockey&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;What a bonkers sport. I love it. I wonder how far the puck travels over the course of a single game? I like that they can go behind the goal. The goal appears to be very small. Quite how the players (and camera operators) can track the puck during a goal-proximate scrap is beyond me.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&quot;big-air&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#big-air&quot;&gt;big air&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It&#39;s all got a bit too &lt;a href=&quot;https://en.wikipedia.org/wiki/Cool_Boarders&quot;&gt;&lt;em&gt;Cool Boarders&lt;/em&gt;&lt;/a&gt;. So much so that it&#39;s lost its appeal. Mighty impressive nonetheless.&lt;/p&gt;
&lt;h2 id=&quot;figure-skating&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#figure-skating&quot;&gt;figure skating&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I&#39;d like to know&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; more about the scoring system. I struggle with the apparent precision&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; that comes from what is surely a subjective assessment. I like how not gurning or visibly straining whilst holding your heel behind your head and spinning on the spot&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; seems to a skill in itself.&lt;/p&gt;
&lt;h2 id=&quot;downhill-skiing&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#downhill-skiing&quot;&gt;downhill skiing&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So. Fast. Thighs of steel. Casually jumping 40+ m at 110+ km/h. Whoa. And the margins⸺mere fractions a second, often less,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; between competitors over a ~90 second course⸺are tight. And that these differences manifest when skiers are going one-at-a-time. The following drone shots are sometimes great, but having to hear the drone whining in many other shots is slightly annoying. L. Vonn from the USA just crashed and ouch.&lt;/p&gt;
&lt;h2 id=&quot;speed-skating&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#speed-skating&quot;&gt;speed skating&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The slippery velodrome. So cool. Hand nicely tucked behind the back, sometimes held in place with a little bit of rope. I like to think that in another life I could have been a distinctly mediocre speed skater.&lt;/p&gt;
&lt;h2 id=&quot;coverage&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#coverage&quot;&gt;coverage&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It&#39;s an impressive feat. Well done to all the tech folk making it happen. BBC iPlayer just works.&lt;/p&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;yes, it&#39;s only day 2 &lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;perhaps they can&#39;t? &lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;but not enough to actively go and look it up &lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;2 d.p. &lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;a graphic with the rpm would be nice &lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;just saw a german athlete finish 0.04 seconds behind first place - missed the name because I was writing this &lt;a href=&quot;https://tlohde.com/blog/2026/02/winter-olympics/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Sun, 08 Feb 2026 10:41:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2026/02/winter-olympics/</guid>
    </item>
    <item>
      <title>trackly</title>
      <link>https://tlohde.com/blog/2026/02/trackly/</link>
      <description>&lt;p&gt;A while ago I listed some of my &lt;a href=&quot;https://tlohde.com/blog/2025/10/other-whips/#paused&quot;&gt;works in progress&lt;/a&gt;. Last week I unpaused one of them (&lt;em&gt;again&lt;/em&gt;). Namely, making a database and interface for interacting with all of my running, cycling and hiking &lt;code&gt;.gpx&lt;/code&gt; and &lt;code&gt;.fit&lt;/code&gt; files. It feels like quite a &lt;em&gt;big job&lt;/em&gt;. So I am going to endeavour to break it into small(ish), manageable(ish) chunks.&lt;/p&gt;
&lt;h2 id=&quot;constraints&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/trackly/#constraints&quot;&gt;constraints&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;it won&#39;t be on the internet&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;
&lt;ul&gt;
&lt;li&gt;Local is fine&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;it wont&#39;t have the ability to auto-magically sync&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;
&lt;ul&gt;
&lt;li&gt;Manual &lt;s&gt;will have to do&lt;/s&gt; is fine&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;it won&#39;t neccessarily handle &lt;em&gt;all&lt;/em&gt; of the data that my gps device captures
&lt;ul&gt;
&lt;li&gt;I&#39;m ok not knowing what my heart rate was at 19:33:10 (BST) on the 22nd August 2019&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;functionality&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/trackly/#functionality&quot;&gt;functionality&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ingest my archive of several thousand &lt;code&gt;.gpx&lt;/code&gt; &amp;amp; &lt;code&gt;.fit&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;add new files as and when&lt;/li&gt;
&lt;li&gt;display an overview of a given ride&lt;/li&gt;
&lt;li&gt;search for tracks by date/time &lt;em&gt;&amp;amp;&lt;/em&gt; by location&lt;/li&gt;
&lt;li&gt;display a heatmap sort of thing&lt;/li&gt;
&lt;li&gt;generate summary statistics and visualizations&lt;/li&gt;
&lt;li&gt;easily queryable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;interface&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/trackly/#interface&quot;&gt;interface&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A graphical interface is, I think, beyond my skillset. Instead I&#39;m opting for a &lt;a href=&quot;https://en.wikipedia.org/wiki/Command-line_interface&quot;&gt;command-line interface (CLI)&lt;/a&gt;. A &lt;a href=&quot;https://en.wikipedia.org/wiki/Text-based_user_interface&quot;&gt;text-based user interface (TUI)&lt;/a&gt; would be nice, but that too might be a stretch.&lt;/p&gt;
&lt;p&gt;Aim low.&lt;/p&gt;
&lt;h2 id=&quot;tools&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/trackly/#tools&quot;&gt;tools&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python&lt;/code&gt; because I know how to use it
&lt;ul&gt;
&lt;li&gt;with help from &lt;a href=&quot;https://geopandas.org/en/stable/index.html&quot;&gt;&lt;code&gt;geopandas&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://shapely.readthedocs.io/en/stable/&quot;&gt;&lt;code&gt;shapely&lt;/code&gt;&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://movingpandas.readthedocs.io/en/main/&quot;&gt;&lt;code&gt;movingpandas&lt;/code&gt;&lt;/a&gt; (maybe)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://duckdb.org/docs/stable/clients/python/dbapi&quot;&gt;&lt;code&gt;duckdb&lt;/code&gt;&lt;/a&gt; because I want to learn how to use it
&lt;ul&gt;
&lt;li&gt;with it&#39;s &lt;a href=&quot;https://duckdb.org/docs/stable/core_extensions/spatial/overview&quot;&gt;&lt;code&gt;SPATIAL&lt;/code&gt;&lt;/a&gt; extension&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/olavolav/uniplot&quot;&gt;&lt;code&gt;uniplot&lt;/code&gt;&lt;/a&gt; because it looks like a good candidate for making nice plots in the terminal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The above will (&amp;amp; and some others, no doubt, at some point) will hande the &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#functionality&quot;&gt;functionality&lt;/a&gt;. And the below will help with the &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#interface&quot;&gt;interface&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://typer.tiangolo.com&quot;&gt;&lt;code&gt;typer&lt;/code&gt;&lt;/a&gt; because it &lt;em&gt;seems&lt;/em&gt; like a good option for making a CLI; it handily makes &lt;code&gt;--help&lt;/code&gt; documentation, and allows for fancy things like auto-complete&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://python-poetry.org&quot;&gt;&lt;code&gt;poetry&lt;/code&gt;&lt;/a&gt; for bundling it all up into a package, whilst also managing dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many of these things are new to me.&lt;/p&gt;
&lt;h2 id=&quot;current-status&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/trackly/#current-status&quot;&gt;current status&lt;/a&gt;&lt;/h2&gt;
&lt;figure class=&quot;fig&quot; id=&quot;fig0&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://tlohde.com/blog/2026/02/trackly/trakcli_demo-200w.webp 200w, https://tlohde.com/blog/2026/02/trackly/trakcli_demo-300w.webp 300w, https://tlohde.com/blog/2026/02/trackly/trakcli_demo-640w.webp 640w&quot; sizes=&quot;auto&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://tlohde.com/blog/2026/02/trackly/trakcli_demo-200w.gif&quot; alt=&quot;a .gif of a terminal session. Initially typing `trak` comes up with a brief description of the tool (CLI for interacting with a database of GPX files) followed by a list of commands (bulk-import, import-track, show-summary-table, quick-plot, config). The command `trak quick-plot` is then entered which produces a unicode plot of a map showing a route. The map is titled with the date (2021/6/8) and the distance (7.2 km)&quot; width=&quot;640&quot; height=&quot;546&quot; srcset=&quot;https://tlohde.com/blog/2026/02/trackly/trakcli_demo-200w.gif 200w, https://tlohde.com/blog/2026/02/trackly/trakcli_demo-300w.gif 300w, https://tlohde.com/blog/2026/02/trackly/trakcli_demo-640w.gif 640w&quot; sizes=&quot;auto&quot;&gt;&lt;/picture&gt;
    
    &lt;figcaption&gt;
    &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/trakcli_demo-1200w.webp&quot; target=&quot;_blank&quot;&gt;⛶↗&lt;/a&gt;&amp;nbsp
    &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fig0&quot;&gt;Fig 0:&lt;/a&gt; trackly so far. much still to do.
    &lt;/figcaption&gt;
    &lt;/figure&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/02/trackly/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;although the free tier of &lt;a href=&quot;https://motherduck.com&quot;&gt;MotherDuck&lt;/a&gt; looks like it could work... &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;but if I pay close attention to what &lt;a href=&quot;https://github.com/tcgoetz/GarminDB&quot;&gt;garmindb&lt;/a&gt; does, &amp;amp; &lt;em&gt;how&lt;/em&gt; it does it, maybe sync is possible &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;will have to do &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;178 bpm, thanks for asking &lt;a href=&quot;https://tlohde.com/blog/2026/02/trackly/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Sat, 07 Feb 2026 14:13:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2026/02/trackly/</guid>
    </item>
    <item>
      <title>1 × 4⅓</title>
      <link>https://tlohde.com/blog/2026/01/1-4/</link>
      <description>&lt;p&gt;What happened&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; over the last four and a bit weeks?&lt;/p&gt;
&lt;p&gt;I started doing a bit more &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#exercise&quot;&gt;exercise&lt;/a&gt; after a &lt;em&gt;too long&lt;/em&gt; hiatus.&lt;/p&gt;
&lt;p&gt;A friend came to stay and made some ramen and it is my new favourite thing to eat. I had it for lunch, and will be having some leftovers shortly. Actually, that&#39;s not true, my new favourite thing to eat is this &lt;a href=&quot;https://www.whitemausu.com/products/peanut-rayu&quot;&gt;peanut rayu&lt;/a&gt;,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; which I&#39;m greedily adding to the ramen.&lt;/p&gt;
&lt;p&gt;The dog got spooked by some other dogs and bolted home⸺including several busy-ish road crossings⸺and her behaviour has been a bit &lt;em&gt;off&lt;/em&gt; ever since. We&#39;re working on it.&lt;/p&gt;
&lt;p&gt;I &lt;a href=&quot;https://tlohde.com/consumption/&quot;&gt;read&lt;/a&gt; a bit more than usual; &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#climbing&quot;&gt;climbed&lt;/a&gt; about as much as usual; and ate &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#losing&quot;&gt;a fair bit less&lt;/a&gt; than usual.&lt;/p&gt;
&lt;aside id=&quot;note&quot;&gt;&lt;h4&gt;note&lt;/h4&gt;&lt;p&gt;some of this &lt;em&gt;might&lt;/em&gt; look like i&#39;ve &#39;committed&#39; to a load of new year&#39;s resolutions. And maybe it kind of is. But, whatever.&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;exercise&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#exercise&quot;&gt;exercise&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;cycling&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#cycling&quot;&gt;cycling&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;My partner, somewhat impulsively and extremely generously, gifted me a turbo-trainer.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; It came with a two-month free subscription to the fancy online cycling &lt;em&gt;world&lt;/em&gt;, which I have opinions about. It&#39;s a bit silly, and grossly over-priced. That&#39;s the main thrust of my opinion. There&#39;s more, but I shalln&#39;t go on.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; I&#39;ve done ten &amp;quot;rides&amp;quot; on it so far. An FTP test&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;; a few endurance sessions; and a sweet-spot session. Never more than a hour. When winter gives way to spring and I do venture outside, I will, hopefully, not feel too slow and rusty.&lt;/p&gt;
&lt;p&gt;Cycling is good.&lt;/p&gt;
&lt;h3 id=&quot;running&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#running&quot;&gt;running&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Nine runs. Tight calves after each of them.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; Nowhere exciting, just back and forth along the slightly boring&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; strech of coastline. Some of the runs have been with the dog. She makes it look easy. Most of these were &amp;lt; 4 km; all were &amp;lt; 9 km. Some longer(ish) ~threshold(ish) intervals on one of them; and shorter snappier intervals on another.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Running is good.&lt;/p&gt;
&lt;h3 id=&quot;climbing&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#climbing&quot;&gt;climbing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I am grateful for the bouldering wall that&#39;s a ~10 minute walk away. I&#39;ve been a regular since it opened nearly two years ago and I am beginning to get to know a few other regulars. Additionally, a friend from my PhD programme also climbs there, so we tend to climb together once per week. Friends are nice.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn9&quot; id=&quot;fnref9&quot;&gt;[9]&lt;/a&gt;&lt;/sup&gt; The gym doesn&#39;t &lt;em&gt;do&lt;/em&gt; grades,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn10&quot; id=&quot;fnref10&quot;&gt;[10]&lt;/a&gt;&lt;/sup&gt; just colours. For a good while my level was &lt;em&gt;most-pinks-and-maybe-a-red-on-a-good-day&lt;/em&gt;, recently however, I&#39;ve stepped up a bit and am now more of a &lt;em&gt;more-reds-than-not-and-a-white-if-it-suits-me&lt;/em&gt;. I&#39;m still not sure what my &lt;em&gt;style&lt;/em&gt; is. I also got some new shoes&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn11&quot; id=&quot;fnref11&quot;&gt;[11]&lt;/a&gt;&lt;/sup&gt;, and I am a little bit annoyed at how much difference they make. I want climbing to be free from the &lt;em&gt;tech &amp;amp; gear&lt;/em&gt; that sometimes makes cycling&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn12&quot; id=&quot;fnref12&quot;&gt;[12]&lt;/a&gt;&lt;/sup&gt; annoying. Anyway, progress is nice. I haven&#39;t been on the end of a rope for a while, but I&#39;m scheduled to do so tomorrow.&lt;/p&gt;
&lt;p&gt;Climbing is good.&lt;/p&gt;
&lt;h3 id=&quot;losing&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#losing&quot;&gt;losing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A, not wholly unintended, consequence of picking up running and cycling again is that I have lost some weight. Over the last two years&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn13&quot; id=&quot;fnref13&quot;&gt;[13]&lt;/a&gt;&lt;/sup&gt; my weight increased by ~15%. And I felt it. In four and a bit weeks I&#39;ve dropped half of what I&#39;d gained, and I feel a better for it. My &amp;quot;&lt;em&gt;strategy&lt;/em&gt;&amp;quot; has been to stop inhaling biscuits by the packet;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn14&quot; id=&quot;fnref14&quot;&gt;[14]&lt;/a&gt;&lt;/sup&gt; cutting out sweet things entirely(ish); and not snacking between meals. This reduction in inputs, coupled with the above exercise, seems to be working.&lt;/p&gt;
&lt;h2 id=&quot;elsewhere&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#elsewhere&quot;&gt;elsewhere&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://tlohde.com/elsewhere/&quot;&gt;elsewhere&lt;/a&gt; page doesn&#39;t get populated as often as I mean to, so here&#39;s a big ol&#39; link dump.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn15&quot; id=&quot;fnref15&quot;&gt;[15]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bobmonsour.com/blog/minify-that-css-bundle-maybe-not/&quot;&gt;minifying those css &amp;amp; js bundles?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://scour.ing/docs/start&quot;&gt;scour&lt;/a&gt;, for scouring the web for interesting things&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.patreon.com/posts/fault-dear-is-in-149216941&quot;&gt;how to draw mountains&lt;/a&gt; by Surprised Eel Maps. See also: &lt;a href=&quot;https://www.patreon.com/posts/peaking-my-on-136102435&quot;&gt;mountains on academic maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tomstafford.substack.com/p/model-collapse&quot;&gt;model collapse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rss.social&quot;&gt;RSS.social&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;a podcast episode: &lt;a href=&quot;https://www.kqed.org/news/12070531/your-digital-footprint-reveals-more-than-you-think&quot;&gt;Your Digital Footprint Reveals More Than You Think&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;a &lt;a href=&quot;https://multiline.co/mment/2025/12/a-few-things-i-enjoyed-this-year/&quot;&gt;year in review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;some cheerful climate news: &lt;a href=&quot;https://www.nature.com/articles/s41558-025-02513-9&quot;&gt;peak glacier extinction&lt;/a&gt;. &amp;quot;...with up to ~4000 glaciers vanishing annually.&amp;quot; Fuck.,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://projecteuler.net/about&quot;&gt;project euler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://amateurphotographer.com/technique/macro_photography/focus-stacking-how-to-achieve-pin-sharp-macro-shots/&quot;&gt;focus stacking&lt;/a&gt; for macro photography nerds&lt;/li&gt;
&lt;li&gt;an &lt;a href=&quot;https://github.com/do-me/geospatial-atlas&quot;&gt;in-browser GIS&lt;/a&gt; that can handle &lt;em&gt;big&lt;/em&gt; point datasets&lt;/li&gt;
&lt;li&gt;a thing by &lt;a href=&quot;https://mastodon.social/@ruthpozuelo&quot;&gt;Ruth Pozuelo&lt;/a&gt; on all the data a garmin watch gathers, but that I can&#39;t find a link to anymore&lt;/li&gt;
&lt;li&gt;running jupyter &lt;a href=&quot;https://anitagraser.com/2026/01/10/notebooks-in-qgis/&quot;&gt;notebooks in QGIS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;on the &lt;a href=&quot;https://ploum.net/2026-01-05-unteaching_github.html&quot;&gt;probelms with github&#39;s monopoly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eirikso.com/2011/01/04/one-year-in-one-image/&quot;&gt;one year in one image&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;a nice &lt;a href=&quot;https://ohhelloana.blog/website/&quot;&gt;made-with-11ty-blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pattern.kayserifserif.place&quot;&gt;an experiment in natural language parsing and play&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arxiv.org/abs/1904.12320&quot;&gt;fit any dataset with a single parameter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;the stunning entries to the &lt;a href=&quot;https://www.beerchaircompetition.co.nz&quot;&gt;Competition in a Can&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;good &lt;a href=&quot;https://joshcollinsworth.com/blog/baby-review&quot;&gt;review of a Nüborn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;so it wasn&#39;t just me who &lt;a href=&quot;https://www.nature.com/articles/d41586-025-04150-w&quot;&gt;didn&#39;t get to do fieldword&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ploum.net/2026-01-19-exam-with-chatbots.html&quot;&gt;exams in the age of AI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://entropicthoughts.com/kitchen-slide-rule&quot;&gt;kitchen slide rule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;a &lt;a href=&quot;https://codemacabre.com/notes/backlinks-in-eleventy/&quot;&gt;how-to backlinks in 11ty&lt;/a&gt; that i think i can follow&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.terrygodier.com/phantom-obligation&quot;&gt;phantom obligation&lt;/a&gt; and why &lt;a href=&quot;https://fraidyc.at&quot;&gt;fraidycat&lt;/a&gt; is a good rss reader&lt;/li&gt;
&lt;li&gt;some overpass resources: &lt;a href=&quot;https://github.com/ldodds/overpass-doc&quot;&gt;overpass-doc&lt;/a&gt;; &lt;a href=&quot;https://osmlab.github.io/learnoverpass//en/&quot;&gt;learn overpass&lt;/a&gt;; &lt;a href=&quot;https://wiki.openstreetmap.org/wiki/Postpass&quot;&gt;postpass&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-post&#39;s-postscript&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#the-post&#39;s-postscript&quot;&gt;the post&#39;s postscript&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;last-year&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#last-year&quot;&gt;last year&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Last year sucked. For the most part.&lt;/p&gt;
&lt;p&gt;Granted, there were some good things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;re-learning how to develop and print my own B&amp;amp;W images &lt;a href=&quot;https://tlohde.com/blog/2025/01/through-the-lens/&quot;&gt;🡕&lt;/a&gt;, &lt;a href=&quot;https://tlohde.com/blog/2025/03/insert-pun-on-the-word-negative/&quot;&gt;🡕&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://tlohde.com/blog/2025/05/new-old-pen/&quot;&gt;🡕&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;topping &lt;a href=&quot;https://tlohde.com/blog/2025/08/get-over-it/&quot;&gt;Cima Presanella&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;doing a &lt;em&gt;tiny&lt;/em&gt; bit of climbing outside&lt;/li&gt;
&lt;li&gt;a three-day hike from Corrour around Loch Treig and the surrounding &lt;a href=&quot;https://tlohde.com/mapping/munros/&quot;&gt;Munros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;participating in the #30DayMapChallenge again (see &lt;a href=&quot;https://tlohde.com/mapping/#maps&quot;&gt;the gallery&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hopefully twenty-twenty-six will be less sucky.&lt;/p&gt;
&lt;h3 id=&quot;thirteen-what%3F-thirteen-thirds.&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#thirteen-what%3F-thirteen-thirds.&quot;&gt;thirteen what? thirteen thirds.&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The cadence of Weeknotes™ is &lt;em&gt;too&lt;/em&gt; onerous,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fn16&quot; id=&quot;fnref16&quot;&gt;[16]&lt;/a&gt;&lt;/sup&gt; so, allow me to introduce the rational (that&#39;s a joke) modification to this: thirteen thirds, or 4⅓, or 13/3.&lt;/p&gt;
&lt;p&gt;I will endeavour to (i might) write a little what-i&#39;ve-been-doing every &lt;s&gt;four and a third weeks&lt;/s&gt; month. These posts will serve as (a) a memory aide for future me; (b) something that might keep me accountable to something or something like that.&lt;/p&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2026/01/1-4/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;a non-exhaustive, prone to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Spotlight_effect&quot;&gt;spotlight effect&lt;/a&gt;, biased sample &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;which, according to the website, is &amp;quot;inspired by the Japanese condiment Taberu Rayu (食べるラー油)&amp;quot; &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;i&#39;m still not really cycling outside, other than for getting places, on the rare occassion i gotta get places &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;when the subscription runs out, I will move over to the &lt;em&gt;much&lt;/em&gt; more affordable &lt;a href=&quot;https://ictrainer.de/gb/&quot;&gt;icTrainer&lt;/a&gt; &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;219 W, thanks for asking &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;a function of being a forefoot striker &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;it&#39;s nice, but, I&#39;m bored of it, because it&#39;s flat &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;i am currently capable of holding my 5 km PB pace for ~300 m. there&#39;s work to do, and i feel reasonably motivated to do it &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn9&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;i find socialising pretty hard, and don&#39;t tend to miss it when i&#39;m not doing it. but, i am reasonably confident that i do benefit from social interaction (even if it pains me to admit it) &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref9&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn10&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;for which i am grateful &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref10&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn11&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;much stiffer than the old pair, with a more defined inside-edge, and a less baggy heel &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref11&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn12&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;cyclists, more like &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref12&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn13&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;...of general inactivity and at times deep depression &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref13&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn14&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;something I am &lt;s&gt;very good at&lt;/s&gt; guilty of &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref14&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn15&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;some of these i&#39;ve opened, and will close having never read them. that&#39;s okay &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref15&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn16&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;i tried last year, with the intention of posting them with a year&#39;s delay. i made it to week 11 before giving up for &lt;em&gt;reasons&lt;/em&gt;, and having just skimmed a few, I shalln&#39;t be posting them &lt;a href=&quot;https://tlohde.com/blog/2026/01/1-4/#fnref16&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Sat, 31 Jan 2026 22:51:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2026/01/1-4/</guid>
    </item>
    <item>
      <title>process</title>
      <link>https://tlohde.com/blog/2025/11/process/</link>
      <description>&lt;p&gt;For the third year I am participating in the &lt;a href=&quot;https://30daymapchallenge.com/&quot;&gt;#30DayMapChallenge&lt;/a&gt;. Creating a map per day for the whole of November is challenging. The challenge is in finding the sweet spot between &lt;em&gt;doable&lt;/em&gt;,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; and &lt;em&gt;worth doing&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Worth&lt;/em&gt; is a moving target. If I learn something new—a technique, a new-to-me &lt;code&gt;matplotlib&lt;/code&gt; feature, &lt;a href=&quot;https://tlohde.com/mapping/gallery/to-hungary&quot;&gt;&lt;em&gt;anything&lt;/em&gt; in Inkscape&lt;/a&gt;, or that &lt;a href=&quot;https://tlohde.com/mapping/gallery/barnes-ice-cap/&quot;&gt;Barnes Ice Cap&lt;/a&gt; flows quite slowly—it is &lt;em&gt;worth it&lt;/em&gt;. If the output looks a little bit better than ok-ish,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; it is &lt;em&gt;worth it&lt;/em&gt;. If a few strangers on the internet appreciate it&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; and enjoy it, it is &lt;em&gt;worth it&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Anyway, I&#39;ve already made a few&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; this year, and the prompt for day 23 (today) is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Process&lt;/strong&gt; - Show how you make a map. This could be a tutorial, a step-by-step graphic, a blog post, a video, or a screenshot of your work environment. Combine it with a map from another day!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;process&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2025/11/process/#process&quot;&gt;process&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It&#39;s a delightfully simple process. Refined over time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tlohde.com/js/mermaid/process.svg&quot; class=&quot;link&quot;&gt;have a look&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;unsurprisingly&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2025/11/process/#unsurprisingly&quot;&gt;unsurprisingly&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The way &lt;em&gt;the process&lt;/em&gt; took shape today involved several abandonned ideas. And making that flowchart involved an involuntary and slightly tedious trip down a rabbit hole.&lt;/p&gt;
&lt;p&gt;I nearly ended up in the &lt;code&gt;quit&lt;/code&gt; box a few times today.&lt;/p&gt;
&lt;p&gt;I&#39;ll spare you the details. But just know, there are &lt;em&gt;reasons&lt;/em&gt; why the diagram isn&#39;t nicely displayed on this page in a little interactive window that you can pan and zoom around. Ugh.&lt;/p&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2025/11/process/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;within the time constraints &lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;also a moving target &lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;ahh, good ol&#39; external validation &lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;22 but who&#39;s counting? &lt;a href=&quot;https://tlohde.com/blog/2025/11/process/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Sun, 23 Nov 2025 20:09:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2025/11/process/</guid>
    </item>
    <item>
      <title>metaphor</title>
      <link>https://tlohde.com/blog/2025/11/metaphor/</link>
      <description>&lt;p&gt;I have spent a chunk of time in therapy.&lt;/p&gt;
&lt;p&gt;Often, when trying to explain my thought processes, I &lt;em&gt;gravitate&lt;/em&gt; towards metaphors that have their roots in a domain in which I am more comfortable: physics &amp;amp; maths &amp;amp; earth science. This means I have found myself explaining the &lt;a href=&quot;https://en.wikipedia.org/wiki/Inverse-square_law&quot;&gt;inverse-square law&lt;/a&gt;, or the geologic principle of &lt;a href=&quot;https://en.wikipedia.org/wiki/Law_of_superposition&quot;&gt;superposition&lt;/a&gt;, to the person in the chair opposite in order to help them understand me.&lt;/p&gt;
&lt;p&gt;I doubt I&#39;m the only one. And this makes me curious as to what other science-y metaphors, however tenuous, might have been / could be used.&lt;/p&gt;
&lt;p&gt;Additionally, I wonder there is any value in cataloguing these&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;?&lt;/p&gt;
&lt;h2 id=&quot;for-example&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2025/11/metaphor/#for-example&quot;&gt;for example&lt;/a&gt;&lt;/h2&gt;
&lt;aside id=&quot;note&quot;&gt;&lt;h4&gt;NOTE&lt;/h4&gt;&lt;p&gt;the below are intended to be illustrative (and a bit silly)&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Maybe you behave like an ice-marginal lake, filling up until you &lt;a href=&quot;https://en.wikipedia.org/wiki/Glacial_lake_outburst_flood&quot;&gt;drain catastrophically&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Instead getting angier at a linear rate, a &lt;a href=&quot;https://en.wikipedia.org/wiki/Logistic_regression&quot;&gt;logistic model&lt;/a&gt; might be more appropriate at representing the path between &lt;em&gt;not angry&lt;/em&gt; and &lt;em&gt;angry&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Sometimes you might wish your springs (strategies for coping) were joined in &lt;a href=&quot;https://en.wikipedia.org/wiki/Series_and_parallel_springs&quot;&gt;parallel rather than series&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Perhaps you woke up feeling like a &lt;a href=&quot;https://en.wikipedia.org/wiki/Double_pendulum&quot;&gt;double compound pendulum&lt;/a&gt;, which means, for some reason, that if you do erupt today it&#39;ll be more &lt;a href=&quot;https://en.wikipedia.org/wiki/Effusive_eruption&quot;&gt;effusive&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Or &lt;a href=&quot;https://en.wikipedia.org/wiki/Regelation&quot;&gt;regelation&lt;/a&gt; might aptly describe &lt;em&gt;your&lt;/em&gt; response to pressure.&lt;/p&gt;
&lt;p&gt;Do you &lt;em&gt;only&lt;/em&gt; make &lt;a href=&quot;https://en.wikipedia.org/wiki/Covalent_bond&quot;&gt;covalent bonds&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;When navigating life&#39;s difficulties do you keep forgetting to account for &lt;a href=&quot;https://en.wikipedia.org/wiki/Magnetic_declination&quot;&gt;magnetic declination&lt;/a&gt;?&lt;/p&gt;
&lt;h2 id=&quot;a-cursory-search&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2025/11/metaphor/#a-cursory-search&quot;&gt;a cursory search&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A quick search&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; for &lt;code&gt;therapy metaphors&lt;/code&gt; throws up some research on the efficacy of metaphors; the difference between &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC9235099/&quot;&gt;patient-led and therapist-led metaphors&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;; and a few .pdfs containing some common and clichéd metaphors&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;. However, I could not find, unsurprisingly, a library of nerdy metaphors. I want something that would &lt;em&gt;only&lt;/em&gt; make sense to a computational chemist, or a string theorist, or a biophysicist. I want to hear about how it was &lt;em&gt;genuinely useful&lt;/em&gt; to think about your relationships by looking at them through the lens of lenses: diffraction and refraction.&lt;/p&gt;
&lt;h2 id=&quot;please-share&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2025/11/metaphor/#please-share&quot;&gt;please share&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I would like to low-key curate a collection of these. If you feel comfortable sharing some examples, I would love to hear them - so do &lt;a href=&quot;https://tlohde.com/contact&quot;&gt;get in touch&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;footnotes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://tlohde.com/blog/2025/11/metaphor/#footnotes&quot;&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;and delivering them to therapy practitioners &lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;that is limited by no longer having institutional access - ugh &lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;on skim-reading that, my dissatisfcation with CBT made a bit more sense: &amp;quot;CBT-therapists seemed more focused on therapist-generated metaphors&amp;quot; &lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;a life raft; a train going through a tunnel etc... &lt;a href=&quot;https://tlohde.com/blog/2025/11/metaphor/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</description>
      <pubDate>Thu, 06 Nov 2025 13:18:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2025/11/metaphor/</guid>
    </item>
    <item>
      <title>speed climbing</title>
      <link>https://tlohde.com/blog/2025/10/speed-climbing/</link>
      <description>&lt;p&gt;Whilst I can appreciate the strength and technique, I don&#39;t find speed climbing particularly captivating to watch. In fact, I think it&#39;s quite dull. The route never changes and each race is over in five seconds. To me, it feels more like a muscle memory competition.&lt;/p&gt;
&lt;p&gt;Having just watched the first three rounds of the the &lt;a href=&quot;https://www.youtube.com/watch?v=tkLbgyCDVJc&quot;&gt;Rockmaster 2025 | Lead Duel&lt;/a&gt;, I am convinced that &lt;em&gt;this&lt;/em&gt; is what speed climbing &lt;em&gt;should be&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Climbing fast. On lead.&lt;/p&gt;
</description>
      <pubDate>Mon, 27 Oct 2025 18:36:00 GMT</pubDate>
      <dc:creator>tlohde</dc:creator>
      <guid>https://tlohde.com/blog/2025/10/speed-climbing/</guid>
    </item>
  </channel>
</rss>