<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/feed/pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>James Leighton</title>
  <subtitle>James, a techie who likes taking photos, birdwatching, reading, contributing to OpenBenches, and playing video games (with varying success).</subtitle>
  <link href="https://www.jamesleighton.com/atom.xml" rel="self" />
  <link href="https://www.jamesleighton.com/" />
  <updated>2026-10-26T19:00:00Z</updated>
  <id>https://www.jamesleighton.com/</id>
  <author>
    <name>James Leighton</name>
  </author>
  <entry>
    <title>Week Notes - 2026-43</title>
    <link href="https://www.jamesleighton.com/week-notes/2026/43/" />
    <updated>2026-10-26T19:00:00Z</updated>
    <id>https://www.jamesleighton.com/week-notes/2026/43/</id>
    <content type="html">&lt;p&gt;This week felt a bit flat. I’m not sure why except to say winter is coming. The evenings are getting darker earlier and the weather turned entirely wet and wild by the weekend. I miss summer already! This meant I ended up gaming more than I have in a while though so I suppose it wasn’t all bad.&lt;/p&gt;
&lt;p&gt;The best part of this week was going to see The Snowman on the weekend!&lt;/p&gt;
&lt;p&gt;My weirdness of the week was receiving an email from a startup explaining that a link on a 2013 post about Crunchbang Linux was out of date. They then said “We would love it if you would add our linux operating system NAME REDACTED as a replacement:” No! I won&#39;t be doing that!! It did prompt me to add a warning on posts older than 3 years though to let readers know things may be a bit outdated.&lt;/p&gt;
&lt;h2 id=&quot;reading&quot;&gt;Reading&lt;/h2&gt;
&lt;p&gt;My reading streak is now at 86 days!&lt;/p&gt;
&lt;p&gt;This week I continued reading &amp;quot;A Parade of Horribles&amp;quot;. It&#39;s great. More of the same which is not a bad thing! I am kicking myself for waiting so long to start it. It&#39;s classic Dungeon Crawler Carl where the current big bad thing is clearly about to be massively eclipsed by the next big bad thing. I couldn&#39;t put it down some evenings.&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/KB-ecdZPzG-255.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/KB-ecdZPzG-255.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/KB-ecdZPzG-255.png&quot; alt=&quot;A Parade of Horribles by Matt Dinniman&quot; title=&quot;A Parade of Horribles by Matt Dinniman&quot; width=&quot;255&quot; height=&quot;385&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;A Parade of Horribles by Matt Dinniman&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;gaming&quot;&gt;Gaming&lt;/h2&gt;
&lt;p&gt;More time with Geralt this week, and I think this week marks the longest I&#39;ve spent gaming in a while. I just got to Skellige, and now I&#39;m going around mopping up all the fun side quests. This is definitely a game for the ages, and I&#39;m hoping to finish it up this week or next.&lt;/p&gt;
&lt;p&gt;Aside from that, I played another handful of puzzles in Piczle Cross and booted up SnowRunner one time. I am really trying hard to stick to my goal of finishing a game before starting another one. Dragon Quest VII&#39;s siren song is calling me...&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.png&quot; alt=&quot;The Witcher 3: Wild Hunt — Remastered&quot; title=&quot;The Witcher 3: Wild Hunt — Remastered&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;The Witcher 3: Wild Hunt — Remastered&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.jpeg&quot; alt=&quot;Piczle Cross: Story of Seasons&quot; title=&quot;Piczle Cross: Story of Seasons&quot; width=&quot;300&quot; height=&quot;450&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Piczle Cross: Story of Seasons&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/o5IXl4qRJ_-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/o5IXl4qRJ_-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/o5IXl4qRJ_-1024.jpeg&quot; alt=&quot;SnowRunner&quot; title=&quot;SnowRunner&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;SnowRunner&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;steps-goal&quot;&gt;Steps Goal&lt;/h2&gt;
&lt;p&gt;I broke my streak this week. At the start of the week I was feeling &#39;meh&#39;, and by the end of the week the weather was also meh. Oh well. I don&#39;t need to be that harsh on myself considering I&#39;ve met the goal for the last seven consecutive weeks.&lt;/p&gt;
&lt;h2 id=&quot;recent-posts&quot;&gt;Recent Posts&lt;/h2&gt;
&lt;p&gt;This week I felt inspired to convert some of my notes into fully fledged posts. I hope someone finds them useful!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/2026/10/how-to-download-nebula-videos/&quot;&gt;How to Download Nebula Videos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/2026/10/setting-up-a-remote-birdnet-microphone-raspberry-pi/&quot;&gt;Setting Up a Remote BirdNET Microphone on a Raspberry Pi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/2026/10/how-to-build-a-sunrise-alarm-light-in-home-assistant/&quot;&gt;How to Build a Sunrise Alarm Light in Home Assistant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;things-to-watch-and-listen-to&quot;&gt;Things to Watch (and Listen to)&lt;/h2&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/unjw-_8ZD0U&quot; title=&quot;Nintendo&#39;s OBSESSION with Picross on the 3DS&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/GAv1EwoRnec&quot; title=&quot;Windows XP 25 Years Later! An LGR Retrospective&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/33VUwzeRuwU&quot; title=&quot;The Video I Could NEVER Release... (We Went Too Far)&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&quot;time-tracking-summary&quot;&gt;Time Tracking Summary&lt;/h2&gt;
&lt;p&gt;Last week I spent...&lt;br&gt;
🎮 8h55m video gaming (+3h16m)&lt;br&gt;
📖 3h36m reading (-41m)&lt;br&gt;
🚗 4h18m driving (-1h0m)&lt;br&gt;
💤 52h9m sleeping (-2h17m)&lt;br&gt;
🚶‍♂️ 1h39m being active (-1h52m)&lt;/p&gt;
&lt;p&gt;I listened to 217 songs, my most listened to artist was ME &amp;amp; The Robots.&lt;/p&gt;
&lt;p&gt;I walked 30752 steps this week (-7016).&lt;/p&gt;
&lt;p&gt;Time Tracking Summary:&lt;/p&gt;
&lt;p&gt;🎮 The Witcher 3: Wild Hunt — Remastered (Switch 2) - 8h15m&lt;br&gt;
📖 A Parade of Horribles by Matt Dinniman - 3h36m&lt;br&gt;
🎮 Piczle Cross: Story of Seasons (Switch 2) - 0h30m&lt;br&gt;
🎮 SnowRunner (Switch 2) - 0h10m&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>How to Download Nebula Videos</title>
    <link href="https://www.jamesleighton.com/2026/10/how-to-download-nebula-videos/" />
    <updated>2026-10-22T09:00:00Z</updated>
    <id>https://www.jamesleighton.com/2026/10/how-to-download-nebula-videos/</id>
    <content type="html">&lt;p&gt;Nebula&#39;s app lets you download videos for offline viewing, which is fine on a phone or tablet. I wanted to watch some offline on my laptop though&lt;/p&gt;
&lt;p&gt;&lt;code&gt;yt-dlp&lt;/code&gt; can do this for you.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;yt-dlp --cookies-from-browser firefox &lt;span class=&quot;token string&quot;&gt;&quot;https://nebula.tv/videos/SLUG&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;--cookies-from-browser firefox&lt;/code&gt; reads Firefox&#39;s &lt;code&gt;cookies.sqlite&lt;/code&gt; directly. As long as you&#39;re logged into Nebula in Firefox, yt-dlp authenticates as you. That works for any site that needs a login, not just Nebula.&lt;/p&gt;
&lt;h2 id=&quot;find-your-profile-location&quot;&gt;Find your profile location&lt;/h2&gt;
&lt;p&gt;Auto-detection only checks the standard locations. If your Firefox profile lives somewhere else, you have to name the profile directory yourself:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;yt-dlp --cookies-from-browser &lt;span class=&quot;token string&quot;&gt;&quot;firefox:/path/to/profile&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;URL&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Give it the &lt;strong&gt;folder&lt;/strong&gt; containing &lt;code&gt;cookies.sqlite&lt;/code&gt;, not the file. yt-dlp adds &lt;code&gt;cookies.sqlite&lt;/code&gt; on its own.&lt;/p&gt;
&lt;p&gt;To find the file you can use the find command:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token environment constant&quot;&gt;$HOME&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-name&lt;/span&gt; cookies.sqlite &lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token file-descriptor important&quot;&gt;2&lt;/span&gt;&gt;&lt;/span&gt;/dev/null&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Take everything before &lt;code&gt;/cookies.sqlite&lt;/code&gt; and use that after &lt;code&gt;firefox:&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can also open &lt;code&gt;about:profiles&lt;/code&gt; in Firefox, find the profile marked &amp;quot;This is the profile in use&amp;quot;, and copy its &lt;strong&gt;Root Directory&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A Flatpak version of yt-dlp may be sandboxed away from Firefox&#39;s files. A native install (pipx or pip) avoids that. The fallback is to export your cookies to a file with a browser extension and use &lt;code&gt;--cookies cookies.txt&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;my-working-command&quot;&gt;My working command&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;yt-dlp --cookies-from-browser &lt;span class=&quot;token string&quot;&gt;&quot;firefox:/path/to/profile&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token string&quot;&gt;&quot;https://nebula.tv/videos/jetlag-s19e1&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;choosing-a-lower-quality&quot;&gt;Choosing a lower quality&lt;/h2&gt;
&lt;p&gt;Full quality files are big, so I capped the height with &lt;code&gt;-f&lt;/code&gt; to save bandwidth on the hotel wifi I was using at the time:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;yt-dlp &lt;span class=&quot;token parameter variable&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;bestvideo[height&amp;lt;=480]+bestaudio/best[height&amp;lt;=480]&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  --cookies-from-browser &lt;span class=&quot;token string&quot;&gt;&quot;firefox:/path/to/profile&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token string&quot;&gt;&quot;https://nebula.tv/videos/jetlag-s19e1&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Swap &lt;code&gt;480&lt;/code&gt; for &lt;code&gt;720&lt;/code&gt;, &lt;code&gt;360&lt;/code&gt; or whatever suits. The &lt;code&gt;/best[height&amp;lt;=480]&lt;/code&gt; part is a fallback for when video and audio aren&#39;t offered as separate streams.&lt;/p&gt;
&lt;p&gt;If you&#39;d rather see what&#39;s on offer and pick by hand:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;yt-dlp &lt;span class=&quot;token parameter variable&quot;&gt;-F&lt;/span&gt; --cookies-from-browser &lt;span class=&quot;token string&quot;&gt;&quot;firefox:/path/to/profile&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;URL&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The capital &lt;code&gt;-F&lt;/code&gt; lists every format with its ID, resolution and file size. Then pass the ID you want, for example &lt;code&gt;-f 234&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;a-few-things-worth-knowing&quot;&gt;A few things worth knowing&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Nebula&#39;s extractor breaks fairly regularly. If authentication works but extraction fails, update yt-dlp first with &lt;code&gt;yt-dlp -U&lt;/code&gt;, or &lt;code&gt;pipx upgrade yt-dlp&lt;/code&gt; or &lt;code&gt;pip install -U yt-dlp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The streams are usually HLS, so you need &lt;code&gt;ffmpeg&lt;/code&gt; installed for the merge. You probably already have it.&lt;/li&gt;
&lt;li&gt;If you&#39;re grabbing several episodes at the same quality, put the options in &lt;code&gt;~/.config/yt-dlp/config&lt;/code&gt; so you don&#39;t retype them every time:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;-f bestvideo[height&amp;lt;=480]+bestaudio/best[height&amp;lt;=480]
--cookies-from-browser firefox:/path/to/profile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then it&#39;s just &lt;code&gt;yt-dlp &amp;quot;URL&amp;quot;&lt;/code&gt; and you&#39;re done. Anyway, that&#39;s one less thing to faff with next time.&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>Setting Up a Remote BirdNET Microphone on a Raspberry Pi</title>
    <link href="https://www.jamesleighton.com/2026/10/setting-up-a-remote-birdnet-microphone-raspberry-pi/" />
    <updated>2026-10-21T07:00:00Z</updated>
    <id>https://www.jamesleighton.com/2026/10/setting-up-a-remote-birdnet-microphone-raspberry-pi/</id>
    <content type="html">&lt;p&gt;Setting up a remote BirdNET microphone on a Raspberry Pi is a great way to pick up bird calls from the other end of the garden, but it&#39;s no use if you have to SSH in and start the stream by hand every time it reboots. Here&#39;s how I got the whole thing coming up on its own at boot.&lt;/p&gt;
&lt;h3 id=&quot;what-you-need&quot;&gt;What you need&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A Pi with Raspberry Pi OS installed&lt;/li&gt;
&lt;li&gt;A working USB sound card and microphone (I&#39;m using a &lt;a href=&quot;https://uk.creative.com/p/sound-blaster/sound-blaster-play-3&quot;&gt;Soundblaster Play! 3&lt;/a&gt; and a &lt;a href=&quot;https://micbooster.com/product/clippy-em272-microphone&quot;&gt;Clippy EM272 Mono Microphone&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mediamtx.org/docs/kickoff/install&quot;&gt;mediamtx&lt;/a&gt; already downloaded on the Pi. I used the standalone binary version.&lt;/li&gt;
&lt;li&gt;If you don&#39;t want anyone on your local network listening to your microphone, you can host the stream via Tailscale and lock it down that way. See the end of this post for how to use the firewall to achieve this.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/gooz9qGXSf-1134.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/gooz9qGXSf-1134.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/gooz9qGXSf-1134.jpeg&quot; alt=&quot;A Clippy EM272 mono omnidirectional microphone, used as a remote BirdNET microphone&quot; width=&quot;1134&quot; height=&quot;901&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;the-plan&quot;&gt;The Plan&lt;/h3&gt;
&lt;p&gt;To achieve our goal, we will implement two services.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mediamtx.service&lt;/code&gt; runs the actual mediamtx streaming server&lt;/li&gt;
&lt;li&gt;&lt;code&gt;audio-stream.service&lt;/code&gt; runs ffmpeg, capturing from ALSA and pushing the audio to mediamtx over RTSP. This is what BirdNET will connect to.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The audio one depends on the mediamtx one, so it won&#39;t try to start before mediamtx is up, and it stops if mediamtx stops.&lt;/p&gt;
&lt;h3 id=&quot;the-mediamtx-service&quot;&gt;The mediamtx service&lt;/h3&gt;
&lt;p&gt;My binary lives at &lt;code&gt;/home/pi/mediamtx&lt;/code&gt;, and this assumes &lt;code&gt;mediamtx.yml&lt;/code&gt; sits alongside it in the same folder (mediamtx&#39;s default behaviour). Have a quick &lt;code&gt;ls /home/pi/mediamtx&lt;/code&gt; to confirm, and adjust &lt;code&gt;ExecStart&lt;/code&gt; if your config lives somewhere else or has a different name.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/systemd/system/mediamtx.service
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=MediaMTX streaming server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=/home/pi/mediamtx
ExecStart=/home/pi/mediamtx/mediamtx
Restart=on-failure
RestartSec=5
User=pi
Group=pi

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you need to pass the config file explicitly, use this &lt;code&gt;ExecStart&lt;/code&gt; instead:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ExecStart=/home/pi/mediamtx/mediamtx /home/pi/mediamtx/mediamtx.yml
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;the-audio-stream-service&quot;&gt;The audio-stream service&lt;/h3&gt;
&lt;p&gt;This captures from the ALSA device &lt;code&gt;plughw:S3&lt;/code&gt;, encodes to Opus, and streams to mediamtx via RTSP. Run &lt;code&gt;arecord -l&lt;/code&gt; to see the current hardware ID.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/systemd/system/audio-stream.service
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=ALSA to RTSP audio stream (ffmpeg -&amp;gt; mediamtx)
After=network-online.target mediamtx.service sound.target
Wants=network-online.target
Requires=mediamtx.service

[Service]
Type=simple
ExecStart=/usr/bin/ffmpeg -f alsa -channels 1 -sample_rate 48000 -i plughw:S3 -acodec libopus -b:a 64k -f rtsp rtsp://localhost:8554/audio_stream
Restart=on-failure
RestartSec=5
User=pi
Group=audio

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check where ffmpeg actually lives with &lt;code&gt;which ffmpeg&lt;/code&gt; and change &lt;code&gt;ExecStart&lt;/code&gt; if it isn&#39;t &lt;code&gt;/usr/bin/ffmpeg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You&#39;ll also want the &lt;code&gt;pi&lt;/code&gt; user in the &lt;code&gt;audio&lt;/code&gt; group so it can get at the ALSA device:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo usermod -aG audio pi
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;enable-and-start-both&quot;&gt;Enable and start both&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl enable mediamtx.service audio-stream.service
sudo systemctl start mediamtx.service
sudo systemctl start audio-stream.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;check-it-worked&quot;&gt;Check it worked&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl status mediamtx.service audio-stream.service
journalctl -u mediamtx.service -u audio-stream.service -f
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;add-the-stream-to-birdnet&quot;&gt;Add the Stream to BirdNET&lt;/h3&gt;
&lt;p&gt;In your settings, head to Audio Steams and add your Raspberry Pi&#39;s address. It will be using RTSP. You may need to mess around to see which channel (left or right) your setup it using, but it should be fairly simple to figure out. There&#39;s a test button in the Add Stream section that plays the stream if it can connect.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/sbNM0fNl2P-1339.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/sbNM0fNl2P-1339.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/sbNM0fNl2P-1339.png&quot; alt=&quot;BirdNET stream settings&quot; width=&quot;1339&quot; height=&quot;616&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;locking-things-down-with-tailscale&quot;&gt;Locking things down with Tailscale&lt;/h3&gt;
&lt;p&gt;You can use ufw to only allow connections via Tailscale to connect to port 8554:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; ufw allow &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; on tailscale0 to any port &lt;span class=&quot;token number&quot;&gt;8554&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; ufw allow &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; on lo
&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; ufw default deny incoming&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Don&#39;t forget to allow SSH from your LAN or Tailscale before enabling it, or you&#39;ll lock yourself out: &lt;code&gt;sudo ufw allow in on tailscale0 to any port 22&lt;/code&gt;, then &lt;code&gt;sudo ufw enable&lt;/code&gt;. If you do lock yourself out, I guess you&#39;ll need to hook your Pi up to a keyboard and monitor and physically log in.&lt;/p&gt;
&lt;h2 id=&quot;outcome&quot;&gt;Outcome&lt;/h2&gt;
&lt;p&gt;When your Pi boots, it will simply get on with its job of streaming bird calls to your server for analysis.&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>How to Build a Sunrise Alarm Light in Home Assistant</title>
    <link href="https://www.jamesleighton.com/2026/10/how-to-build-a-sunrise-alarm-light-in-home-assistant/" />
    <updated>2026-10-20T07:00:00Z</updated>
    <id>https://www.jamesleighton.com/2026/10/how-to-build-a-sunrise-alarm-light-in-home-assistant/</id>
    <content type="html">&lt;p&gt;I wanted a sunrise alarm: the light slowly ramps up before I need to be awake. I also wanted to control it from a Home Assistant dashboard without opening any menus. One tap to arm it, and a time picker that only shows up when it&#39;s armed.&lt;/p&gt;
&lt;p&gt;Here&#39;s how I built it, starting with the dashboard and then the automation that does the work. It&#39;s another smart-light automation to add alongside my post on &lt;a href=&quot;https://www.jamesleighton.com/2026/04/how-to-control-govee-scenes-in-home-assistant/&quot;&gt;controlling Govee Scenes in Home Assistant&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here&#39;s how it looks on a dashboard, armed for 05:55:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/grUYNqYxQU-478.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/grUYNqYxQU-478.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/grUYNqYxQU-478.png&quot; alt=&quot;A Home Assistant dashboard showing a Mushroom toggle card reading &#39;Alarm set for 05:55, tap to disarm&#39;, with a time picker card below it set to 05:55.&quot; width=&quot;478&quot; height=&quot;286&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;what-you-need&quot;&gt;What you need&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Two helpers: an &lt;code&gt;input_boolean&lt;/code&gt; called &lt;code&gt;alarm_toggle&lt;/code&gt; and an &lt;code&gt;input_datetime&lt;/code&gt; called &lt;code&gt;alarm_time&lt;/code&gt; (time only, no date). Create these under Settings → Devices &amp;amp; Services → Helpers → Create Helper, picking &amp;quot;Toggle&amp;quot; and &amp;quot;Date and/or time&amp;quot; respectively.&lt;/li&gt;
&lt;li&gt;A dimmable light that supports transitions, which is the light that does the sunrise. I&#39;m using a Hue Play Bar&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/piitaya/lovelace-mushroom&quot;&gt;Mushroom cards&lt;/a&gt;, for the toggle card&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/GeorgeSick/lovelace-time-picker-card&quot;&gt;time-picker-card&lt;/a&gt;, for the time picker&lt;/li&gt;
&lt;li&gt;The automation itself, which is the part that does the work and is further down&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both cards are custom, so you&#39;ll need to install them through &lt;a href=&quot;https://www.hacs.xyz/docs/marketplace/&quot;&gt;HACS&lt;/a&gt; first.&lt;/p&gt;
&lt;h2 id=&quot;the-toggle-card&quot;&gt;The toggle card&lt;/h2&gt;
&lt;p&gt;This is a Mushroom template card. Tapping it flips &lt;code&gt;alarm_toggle&lt;/code&gt;, and everything else on the card follows from that state.&lt;/p&gt;
&lt;p&gt;To add it: open your dashboard, click the three-dot menu in the top right and choose Edit Dashboard, then Add Card. Scroll right to the bottom of the card list and pick Manual. That opens a YAML editor where you paste the code below in place of what&#39;s already there.&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; custom&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;mushroom&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;template&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;card
&lt;span class=&quot;token key atrule&quot;&gt;entity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_boolean.alarm_toggle
&lt;span class=&quot;token key atrule&quot;&gt;primary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &#39;Alarm set for &#39; ~ states(&#39;input_datetime.alarm_time&#39;)&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; if
  is_state(&#39;input_boolean.alarm_toggle&#39;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &#39;on&#39;) else &#39;Alarm off&#39; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;secondary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &#39;Tap to disarm&#39; if is_state(&#39;input_boolean.alarm_toggle&#39;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &#39;on&#39;) else &#39;Tap
  to arm · &#39; ~ states(&#39;input_datetime.alarm_time&#39;)&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;icon&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &#39;mdi&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;weather&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;sunset&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;up&#39; if is_state(&#39;input_boolean.alarm_toggle&#39;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &#39;on&#39;)
  else &#39;mdi&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;alarm&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;off&#39; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;icon_color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &#39;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &#39;&#39;amber&#39;&#39; if is_state(&#39;&#39;input_boolean.alarm_toggle&#39;&#39;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &#39;&#39;on&#39;&#39;) else &#39;&#39;disabled&#39;&#39; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&#39;
&lt;span class=&quot;token key atrule&quot;&gt;tap_action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; toggle
&lt;span class=&quot;token key atrule&quot;&gt;grid_options&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;columns&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; full&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When it&#39;s armed, the card shows the alarm time with an amber sunrise icon. When it&#39;s off, it shows a greyed-out alarm-off icon and tells you the time it would be set for.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;[:5]&lt;/code&gt; is a small trick worth knowing. An &lt;code&gt;input_datetime&lt;/code&gt; state comes back as &lt;code&gt;HH:MM:SS&lt;/code&gt;, and slicing the first five characters gives you a clean &lt;code&gt;HH:MM&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-time-picker&quot;&gt;The time picker&lt;/h2&gt;
&lt;p&gt;This one is a conditional card, so it only appears when the alarm is armed. When the alarm is off the dashboard stays tidy.&lt;/p&gt;
&lt;p&gt;Add it the same way as the toggle card: Add Card → Manual, then paste this in below the toggle card.&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; conditional
&lt;span class=&quot;token key atrule&quot;&gt;conditions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;entity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_boolean.alarm_toggle
    &lt;span class=&quot;token key atrule&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;on&#39;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;card&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; custom&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;time&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;picker&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;card
  &lt;span class=&quot;token key atrule&quot;&gt;entity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_datetime.alarm_time
  &lt;span class=&quot;token key atrule&quot;&gt;hour_mode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;24&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;hour_step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;minute_step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;hour_mode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; double
    &lt;span class=&quot;token key atrule&quot;&gt;align_controls&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; center
    &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; header
    &lt;span class=&quot;token key atrule&quot;&gt;embedded&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;thin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;hide&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;seconds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;icon&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;false&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;link_values&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I went with 24-hour mode, 5-minute steps and no seconds, because that&#39;s plenty of precision for an alarm. &lt;code&gt;link_values&lt;/code&gt; makes the hours roll over properly when you step the minutes past the hour.&lt;/p&gt;
&lt;h2 id=&quot;the-automation&quot;&gt;The automation&lt;/h2&gt;
&lt;p&gt;This is the part that does the work.&lt;/p&gt;
&lt;p&gt;Go to Settings → Automations &amp;amp; Scenes → Create Automation, choose to start with an empty automation, then use the three-dot menu in the top right and pick Edit in YAML. Delete the placeholder content and paste this in, then save.&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;alias&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Sunrise Alarm
&lt;span class=&quot;token key atrule&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;&#39;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;triggers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;trigger&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; time
    &lt;span class=&quot;token key atrule&quot;&gt;at&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;entity_id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_datetime.alarm_time
      &lt;span class=&quot;token key atrule&quot;&gt;offset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;-900&#39;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;conditions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;condition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; state
    &lt;span class=&quot;token key atrule&quot;&gt;entity_id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_boolean.alarm_toggle
    &lt;span class=&quot;token key atrule&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;on&#39;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;actions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; light.turn_on
    &lt;span class=&quot;token key atrule&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;brightness_pct&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;device_id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; YOUR_LIGHT_DEVICE_ID
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;hours&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;minutes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;seconds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;milliseconds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_boolean.turn_on
    &lt;span class=&quot;token key atrule&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;entity_id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_boolean.stairsmotiontoggle
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; light.turn_on
    &lt;span class=&quot;token key atrule&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;brightness&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;transition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;900&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;device_id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; YOUR_LIGHT_DEVICE_ID
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;hours&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;minutes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;seconds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;milliseconds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_boolean.turn_off
    &lt;span class=&quot;token key atrule&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;entity_id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; input_boolean.alarm_toggle
    &lt;span class=&quot;token key atrule&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; single&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here&#39;s what it does, step by step:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The trigger is set relative to &lt;code&gt;alarm_time&lt;/code&gt;, with an offset of &lt;code&gt;-900&lt;/code&gt;. That&#39;s 900 seconds, so it fires 15 minutes before the alarm time, which is when the light starts coming up from minimal brightness. The alarm time itself is when it reaches full brightness.&lt;/li&gt;
&lt;li&gt;The condition checks that &lt;code&gt;alarm_toggle&lt;/code&gt; is on. If you haven&#39;t armed the alarm, nothing happens.&lt;/li&gt;
&lt;li&gt;The light turns on at 1%, then waits five seconds. That makes sure the ramp starts from almost dark.&lt;/li&gt;
&lt;li&gt;A stairs motion helper is switched on. We have a motion sensor on the landing that controls the lights, and that automation is disabled overnight. This step turns it back on as the alarm starts. It&#39;s specific to my setup, so delete that action if you don&#39;t need it.&lt;/li&gt;
&lt;li&gt;The light ramps to full brightness (255) with a &lt;code&gt;transition&lt;/code&gt; of 900 seconds. That&#39;s the same 15 minutes as the trigger offset, so the light is at full brightness exactly at the alarm time.&lt;/li&gt;
&lt;li&gt;After a 30-minute wait, the automation turns &lt;code&gt;alarm_toggle&lt;/code&gt; off. The alarm disarms itself, so it&#39;s a one-night alarm and the toggle card goes back to &amp;quot;Tap to arm&amp;quot;. The 30 minutes is just a convenient number I picked, so change it to whatever suits you.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It&#39;s set to &lt;code&gt;mode: single&lt;/code&gt;, so it can&#39;t start a second run while the first is still going. Swap the device ID for your own light. The easiest way to get the right one: in the visual automation editor, add a &amp;quot;Light: Turn on&amp;quot; action and pick your light from the device dropdown, then switch to Edit in YAML. Home Assistant will have filled in the real &lt;code&gt;device_id&lt;/code&gt; for you, ready to copy into this automation.&lt;/p&gt;
&lt;p&gt;It&#39;s wife approved too, which in this house is the real benchmark for any smart home project.&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>Week Notes - 2026-42</title>
    <link href="https://www.jamesleighton.com/week-notes/2026/42/" />
    <updated>2026-10-19T20:00:00Z</updated>
    <id>https://www.jamesleighton.com/week-notes/2026/42/</id>
    <content type="html">&lt;p&gt;A quieter week than most, but a good one regardless. The highlight was the theatre on Saturday to see Matthew Bourne&#39;s The Car Man. It was a busy week for reading too as I finished two books and started a third.&lt;/p&gt;
&lt;p&gt;The weirdest thing that happened this week was watching a car pull out from a side road and completely miss the fact there was a small traffic island in the middle of the road. I watched them cut the corner (to beat the traffic, obviously), drive straight into the traffic island, and bounce clean over it. Crazy. I think they were quite lucky to seemingly not cause any damage!&lt;/p&gt;
&lt;h2 id=&quot;reading&quot;&gt;Reading&lt;/h2&gt;
&lt;p&gt;This week I finished Rogue Protocol, and another Boss Fight Books book this time about Animal Crossing. The Murderbot novella was excellent and just the right length for me this week. Learning about the history of Animal Crossing was great too. I was aware that the localisation process was difficult, but it was fascinating to learn about the original plan for what eventually become Animal Crossing (you wouldn&#39;t guess it!)&lt;/p&gt;
&lt;p&gt;Also finally started the latest Dungeon Crawler Carl book - Parade of Horribles, having put it off for a while for a reason I can&#39;t quite explain. This week I just didn&#39;t fancy anything else, so I got stuck in.&lt;/p&gt;
&lt;p&gt;My reading streak is now 79 days.&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/YMI8vT-tKt-314.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/YMI8vT-tKt-314.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/YMI8vT-tKt-314.jpeg&quot; alt=&quot;Rogue Protocol by Martha Wells&quot; title=&quot;Rogue Protocol by Martha Wells&quot; width=&quot;314&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Rogue Protocol by Martha Wells&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/S5_t3NVBgL-357.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/S5_t3NVBgL-357.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/S5_t3NVBgL-357.jpeg&quot; alt=&quot;Animal Crossing by Kelsey Lewin&quot; title=&quot;Animal Crossing by Kelsey Lewin&quot; width=&quot;357&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Animal Crossing by Kelsey Lewin&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/KB-ecdZPzG-255.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/KB-ecdZPzG-255.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/KB-ecdZPzG-255.png&quot; alt=&quot;A Parade of Horribles by Matt Dinniman&quot; title=&quot;A Parade of Horribles by Matt Dinniman&quot; width=&quot;255&quot; height=&quot;385&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;A Parade of Horribles by Matt Dinniman&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;gaming&quot;&gt;Gaming&lt;/h2&gt;
&lt;p&gt;This week I played more Witcher 3 (looking forward to the first patch now on Switch 2), completed another load of puzzles in Piczle Cross: Story of Seasons, and had another fun Golf With Your Friends multiplayer session.&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.png&quot; alt=&quot;The Witcher 3: Wild Hunt — Remastered&quot; title=&quot;The Witcher 3: Wild Hunt — Remastered&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;The Witcher 3: Wild Hunt — Remastered&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.jpeg&quot; alt=&quot;Piczle Cross: Story of Seasons&quot; title=&quot;Piczle Cross: Story of Seasons&quot; width=&quot;300&quot; height=&quot;450&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Piczle Cross: Story of Seasons&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/qfke2b4m88-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/qfke2b4m88-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/qfke2b4m88-1024.jpeg&quot; alt=&quot;Golf With Your Friends&quot; title=&quot;Golf With Your Friends&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Golf With Your Friends&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;steps-goal&quot;&gt;Steps Goal&lt;/h2&gt;
&lt;p&gt;Managed to exceed my steps target with a daily average of 5,395 steps this week. Once again, this was massively saved by the weekend. I really, really need to stop doing that, and actually hit the target on Monday - Wednesdays too.&lt;/p&gt;
&lt;h2 id=&quot;things-to-watch-and-listen-to&quot;&gt;Things to Watch (and Listen to)&lt;/h2&gt;
&lt;p&gt;There is a new Avalanches album out! Stop what you&#39;re doing, and listen to it right now. It&#39;s so damn good. &lt;a href=&quot;https://theavalanches.lnk.to/together&quot;&gt;Listen here&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/_pU87NqRdsk&quot; title=&quot;Getting Lost in Professor Layton’s Curious Village // DGS REVIEW&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/bhSoG5C9EXA&quot; title=&quot;The Joy and Wonder of the Game Boy Color Palettes&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/otXrFBq0HWQ&quot; title=&quot;I made an MP3 player that only plays on tape decks&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&quot;recent-posts&quot;&gt;Recent Posts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/2026/10/how-to-keep-the-familys-digital-life-running/&quot;&gt;Hit by a Bus? How to Keep Your Family&#39;s Digital Life Running&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/week-notes/2026/41/&quot;&gt;Week Notes - 2026-41&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;time-tracking-summary&quot;&gt;Time Tracking Summary&lt;/h2&gt;
&lt;p&gt;Last week I spent...&lt;br&gt;
🎮 5h39m video gaming (-3h20m)&lt;br&gt;
📖 4h17m reading (-1h3m)&lt;br&gt;
🚗 5h19m driving (-0m)&lt;br&gt;
💤 54h26m sleeping (-49m)&lt;br&gt;
🚶‍♂️ 3h29m being active (+4m)&lt;/p&gt;
&lt;p&gt;I listened to 249 songs, my most listened to artist was The Avalanches.&lt;/p&gt;
&lt;p&gt;I walked 37768 steps this week (-9750).&lt;/p&gt;
&lt;p&gt;Time Tracking Summary:&lt;/p&gt;
&lt;p&gt;🎮 The Witcher 3: Wild Hunt — Remastered (Switch 2) - 3h0m&lt;br&gt;
📖 Animal Crossing by Kelsey Lewin - 2h7m&lt;br&gt;
🎮 Piczle Cross: Story of Seasons (Switch 2) - 1h45m&lt;br&gt;
📖 Rogue Protocol by Martha Wells - 1h24m&lt;br&gt;
📖 A Parade of Horribles by Matt Dinniman - 0h45m&lt;br&gt;
🎮 Golf With Your Friends (Switch 2) - 0h45m&lt;br&gt;
🎮 Game Boy Advance – Nintendo Classics (Switch 2) - 0h5m&lt;br&gt;
🎮 Game Boy – Nintendo Classics (Switch 2) - 0h4m&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>Hit by a Bus? How to Keep Your Family&#39;s Digital Life Running</title>
    <link href="https://www.jamesleighton.com/2026/10/how-to-keep-the-familys-digital-life-running/" />
    <updated>2026-10-16T18:00:00Z</updated>
    <id>https://www.jamesleighton.com/2026/10/how-to-keep-the-familys-digital-life-running/</id>
    <content type="html">&lt;p&gt;Do you manage email for your family? Do you run Home Assistant at home? What happens if you&#39;re no longer around to manage it? Will your family be able to cope or will they resent your &amp;quot;smart home&amp;quot;? Documenting all of this makes everyone&#39;s life just that little bit easier when shit hits the fan.&lt;/p&gt;
&lt;p&gt;This topic might seem a bit morbid, but digital estate planning is something I honestly feel is worth talking about.&lt;/p&gt;
&lt;h2 id=&quot;passwords-and-two-factor-authentication&quot;&gt;Passwords and two-factor authentication&lt;/h2&gt;
&lt;p&gt;The biggest problem has to be passwords and two-factor authentication. Without these, no one can manage anything. For the big stuff they&#39;ll be able to send over documentation to take over and close accounts but that isn&#39;t possible for everything.&lt;/p&gt;
&lt;p&gt;Take a look at what options for emergency access your account has. &lt;a href=&quot;https://bitwarden.com/en-gb/help/emergency-access/&quot;&gt;Bitwarden&lt;/a&gt;, &lt;a href=&quot;https://www.lastpass.com/features/emergency-access&quot;&gt;LastPass&lt;/a&gt;, and &lt;a href=&quot;https://support.1password.com/emergency-kit/&quot;&gt;1Password&lt;/a&gt; all have solutions for this.&lt;/p&gt;
&lt;p&gt;For OTP codes, you should have secure hard copies of all your secret keys in a safe or similar. I learnt this the hard way when I broke a phone and lost access to mine for a few weeks. Don&#39;t be like me. Back up your codes and consider adding your key accounts to your spouse&#39;s or significant other&#39;s authenticator app too.&lt;/p&gt;
&lt;h2 id=&quot;email-is-next&quot;&gt;Email is next&lt;/h2&gt;
&lt;p&gt;Email is the master key. Almost every account recovery goes through it, so if it stops working, everything else follows. Make sure it keeps working and if you use something like a catch-all system how to direct email to a different account.&lt;/p&gt;
&lt;p&gt;You should document how to renew the domain, who the provider is, and how to change the billing information once you&#39;re gone. They&#39;re probably going to wonder why you pay so much for email.&lt;/p&gt;
&lt;h2 id=&quot;make-the-smart-home-dumb&quot;&gt;Make the smart home dumb&lt;/h2&gt;
&lt;p&gt;What happens to your smart home after death shouldn&#39;t be a mystery for whoever&#39;s left to figure out. Your smart home should work offline already. If you have anything that requires Home Assistant to run at all, you&#39;re doing it wrong.&lt;/p&gt;
&lt;p&gt;Write a short &amp;quot;how to make it dumb&amp;quot; guide for anything that is reliant on Home Assistant: how to put the thermostat into manual, which bulbs default to on when the power returns and what your mountain of automations do.&lt;/p&gt;
&lt;p&gt;Remember your family will just want the lights to work!&lt;/p&gt;
&lt;h2 id=&quot;document-how-everything-works&quot;&gt;Document how everything works&lt;/h2&gt;
&lt;p&gt;Think about the things you just know how to fix and write those down.&lt;/p&gt;
&lt;p&gt;You know the router needs rebooting occasionally. You know that sometimes Home Assistant stops talking to the Hue Bridge. You need to write all this down so someone else can fix things in your absence.&lt;/p&gt;
&lt;p&gt;Away from the digital side of things, you could even document physical info about your house such as where the water stop tap is, if there&#39;s anything weird about the electrical system, how to reset the boiler. Anything that someone would reasonably ask you to do should be written down.&lt;/p&gt;
&lt;h2 id=&quot;home-labs&quot;&gt;Home Labs&lt;/h2&gt;
&lt;p&gt;If you run a homelab, you should list every service. For each one, explain what it does, what relies on it, and whether it&#39;s OK to just turn it off. Some things can be switched off without anyone noticing. Others like DNS can ruin someone&#39;s day if they stop working.&lt;/p&gt;
&lt;h2 id=&quot;know-what-you-pay-for&quot;&gt;Know what you pay for&lt;/h2&gt;
&lt;p&gt;You should make a list of all key services you pay for, how much they cost, and what they actually do for you. No-one will know what you&#39;re paying Hetzner or Notion for, or what will break when the account isn&#39;t paid.&lt;/p&gt;
&lt;h2 id=&quot;photos&quot;&gt;Photos&lt;/h2&gt;
&lt;p&gt;Photos are what your family will care about most, so make sure they can get at them. If they all live in your Google Photos account, what happens when that account is closed or goes inactive? Share them with your partner, and look at options like Google&#39;s &lt;a href=&quot;https://support.google.com/accounts/answer/3036546&quot;&gt;Inactive Account Manager&lt;/a&gt;, which lets you nominate someone to receive your data. Whatever you use or however you store your photograph library double check your family can open the photos without you.&lt;/p&gt;
&lt;h2 id=&quot;where-to-store-all-this&quot;&gt;Where to store all this&lt;/h2&gt;
&lt;p&gt;Documentation is no use if nobody can find it. A sealed envelope in a safe, a copy kept with your will, or a copy held by your solicitor or close friend will all work. Tell your family where it is.&lt;/p&gt;
&lt;p&gt;Ideally, don&#39;t put any credentials in the document at all. Let the password manager&#39;s emergency access do that job and keep the document to the &amp;quot;how&amp;quot; and &amp;quot;where&amp;quot;. The exception is full-disk encryption on PCs and laptops. I don&#39;t have a great solution for those, but if you do, please let me know!&lt;/p&gt;
&lt;h2 id=&quot;get-started-now&quot;&gt;Get started now&lt;/h2&gt;
&lt;p&gt;Consider this your weekend project. Start collating this information now. You never know when it&#39;s going to be useful.&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>Week Notes - 2026-41</title>
    <link href="https://www.jamesleighton.com/week-notes/2026/41/" />
    <updated>2026-10-12T20:00:00Z</updated>
    <id>https://www.jamesleighton.com/week-notes/2026/41/</id>
    <content type="html">&lt;p&gt;We went on a short holiday this week to Hafan y Mor in North Wales. It always feels like a special place to us whenever we visit and we have a great time whatever the weather. This weekend we were super lucky and the rain stayed away for most of it (but not all!). We spent our time swimming, walking, and playing games together. All in all, it was a fanastic break from work.&lt;/p&gt;
&lt;p&gt;To top it off, on the way home we stopped at &lt;a href=&quot;https://www.visitmidwales.co.uk/things-to-do/pistyll-rhaeadr-waterfalls-p1728151&quot;&gt;Pistyll Rhaeadr&lt;/a&gt; for a mooch about to break up the drive. You may recognise this waterfall from Instagram or Tiktok! I&#39;d recommend a visit on a rainy day in October if you want to avoid the crowds.&lt;/p&gt;
&lt;p&gt;Quick note on the parking: £5 on weekdays (and £10 on weekends, I think). You can pay via an app but this charges you a 20p booking fee so pay via card at the pay and display machine instead. I did not see an option to pay using cash.&lt;/p&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/fKzagFh94t-4032.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/fKzagFh94t-4032.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/fKzagFh94t-4032.jpeg&quot; title=&quot;Looking out over the boating lake at Hafan y Mor through the trees on a wet, grey afternoon&quot; alt=&quot;Looking out over the boating lake at Hafan y Mor through the trees on a wet, grey afternoon.&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;Looking out over the boating lake at Hafan y Mor through the trees on a wet, grey afternoon&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/qOJO4k-RZ3-4032.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/qOJO4k-RZ3-4032.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/qOJO4k-RZ3-4032.jpeg&quot; title=&quot;A windswept beach walk selfie&quot; alt=&quot;A selfie on the beach with the tide out, hair blowing everywhere and the clouds rolling in.&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;A windswept beach walk selfie&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/u6NaR-slPS-3024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/u6NaR-slPS-3024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/u6NaR-slPS-3024.jpeg&quot; title=&quot;A clifftop breather at a trig point&quot; alt=&quot;Taking a breather at a coastal trig point on a bright, blustery day, with the sea stretching out behind.&quot; width=&quot;3024&quot; height=&quot;4032&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;A clifftop breather at a trig point&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/OUv_rA1vk5-2268.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/OUv_rA1vk5-2268.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/OUv_rA1vk5-2268.jpeg&quot; title=&quot;View of Pistyll Rhaeadr from the cafe&quot; alt=&quot;One of Wales&#39;s tallest waterfalls, dropping in two stages down the rock face into a misty pool below.&quot; width=&quot;2268&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;View of Pistyll Rhaeadr from the cafe&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;reading&quot;&gt;Reading&lt;/h2&gt;
&lt;p&gt;This week I finished Carpe Jugulum. It surprised me because it turned out to be a &#39;Witches&#39; Discworld story that I really enjoyed: where the others leaned on parodying a play or a fairy tale, this one was more about belief and choices. I started reading Rogue Protocol next as I wanted another short novella before I start another longer book, and I have enjoyed every Murderbot book so far!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Total 5:20:40&lt;/li&gt;
&lt;li&gt;Best day Sun 1:25:33&lt;/li&gt;
&lt;li&gt;30-minute daily goal: met on 5 of 7 days (Mon 27:50 and Sat 25:53 fell short)&lt;/li&gt;
&lt;li&gt;A reading session every day: streak 72 days&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/qR6XvP03MT-325.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/qR6XvP03MT-325.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/qR6XvP03MT-325.jpeg&quot; alt=&quot;Carpe Jugulum by Terry Pratchett&quot; title=&quot;Carpe Jugulum by Terry Pratchett&quot; width=&quot;325&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Carpe Jugulum by Terry Pratchett&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/YMI8vT-tKt-314.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/YMI8vT-tKt-314.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/YMI8vT-tKt-314.jpeg&quot; alt=&quot;Rogue Protocol by Martha Wells&quot; title=&quot;Rogue Protocol by Martha Wells&quot; width=&quot;314&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Rogue Protocol by Martha Wells&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;gaming&quot;&gt;Gaming&lt;/h2&gt;
&lt;p&gt;This was my biggest gaming week for nearly 5 months, driven primarily by The Witcher 3 Remastered. I&#39;ve been doing some sidequests but mostly just getting on with the story. Most recently I&#39;ve been looking for the bard in Novograd. I think this may actually be the furthest I&#39;ve made it in Witcher 3 over a number of playthroughs; focusing on the story has helped me from getting distracted.&lt;/p&gt;
&lt;p&gt;I also played another hour and a half of Piczle Cross: Story of Seasons this week. It&#39;s a great game to have on with the TV or a podcast in the background, and it&#39;s one of the games I&#39;ve committed to finishing before properly starting any others. The other two are Witcher 3 and Dragon Quest Monsters: The Dark Prince (which I really need to get back to next week).&lt;/p&gt;
&lt;p&gt;The wife and I played a short session of Golf With Your Friends (in anticipation of the sequel launching soon), and I unlocked a skin early in the week in Tetris 99.&lt;/p&gt;
&lt;p&gt;On the physical side of things, we played Yahtzee and Wingspan while we were away. You&#39;d never believe me, but in all our Yahtzee sessions my wife was yet to actually roll a Yahtzee. That changed this week: she opened the game with one! Going back to Wingspan was a challenge, as the rules and procedures of a turn can be tricky to remember, but we got two full sessions in and had a great time.&lt;/p&gt;
&lt;p&gt;My favourite gambit this time was a bird that laid eggs whenever I obtained food paired with one that let me repeat the activation bonus of any other bird. I laid a lot of eggs that game (but I still lost).&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.png&quot; alt=&quot;The Witcher 3: Wild Hunt — Remastered&quot; title=&quot;The Witcher 3: Wild Hunt — Remastered&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;The Witcher 3: Wild Hunt — Remastered&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.jpeg&quot; alt=&quot;Piczle Cross: Story of Seasons&quot; title=&quot;Piczle Cross: Story of Seasons&quot; width=&quot;300&quot; height=&quot;450&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Piczle Cross: Story of Seasons&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.png&quot; alt=&quot;Dragon Quest Monsters: The Dark Prince&quot; title=&quot;Dragon Quest Monsters: The Dark Prince&quot; width=&quot;512&quot; height=&quot;512&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Dragon Quest Monsters: The Dark Prince&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/qfke2b4m88-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/qfke2b4m88-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/qfke2b4m88-1024.jpeg&quot; alt=&quot;Golf With Your Friends&quot; title=&quot;Golf With Your Friends&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Golf With Your Friends&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/UAyIkG1JfZ-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/UAyIkG1JfZ-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/UAyIkG1JfZ-1024.png&quot; alt=&quot;Tetris 99&quot; title=&quot;Tetris 99&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Tetris 99&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;img src=&quot;https://www.jamesleighton.com/img/s8RE-BYrTA-764.webp&quot; alt=&quot;Yahtzee&quot; title=&quot;Yahtzee&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;764&quot; height=&quot;600&quot;&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Yahtzee&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/O5euSEdrfj-939.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/O5euSEdrfj-939.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/O5euSEdrfj-939.png&quot; alt=&quot;Wingspan Oceania&quot; title=&quot;Wingspan Oceania&quot; width=&quot;939&quot; height=&quot;674&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Wingspan Oceania&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;steps-challenge&quot;&gt;Steps Challenge&lt;/h2&gt;
&lt;p&gt;Steps average for the week came in at 6,788 per day, comfortably past my 5,000-a-day target.&lt;/p&gt;
&lt;p&gt;Monday and Tuesday back home were rough (2,946 and 2,761), Wednesday and Thursday recovered a bit (5,206 and 3,441), and then the holiday at Hafan y Mor did all the real work. Friday, Saturday and Sunday came in at 9,544, 11,435 and 12,185. I really need to actually leave the house on work-from-home days! And it&#39;s only going to get harder as the days get darker and colder.&lt;/p&gt;
&lt;h2 id=&quot;recent-posts&quot;&gt;Recent Posts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/week-notes/2026/40/&quot;&gt;Week Notes - 2026-40&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;things-to-watch&quot;&gt;Things to Watch&lt;/h2&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/mdL4y4BpZP4&quot; title=&quot;I Built a SECRET LEGO Underground...&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&quot;time-tracking-summary&quot;&gt;Time Tracking Summary&lt;/h2&gt;
&lt;p&gt;Last week I spent...&lt;br&gt;
🎮 8h59m video gaming (+1h30m)&lt;br&gt;
🎲 2h34m board gaming (+2h34m)&lt;br&gt;
📖 5h20m reading (+1h5m)&lt;br&gt;
🚗 5h19m driving (+1h44m)&lt;br&gt;
💤 55h15m sleeping (+3h27m)&lt;br&gt;
🚶‍♂️ 3h25m being active (+40m)&lt;/p&gt;
&lt;p&gt;I listened to 52 songs, my most listened to artist was Taylor Swift.&lt;br&gt;
I walked 47518 steps this week (+11547).&lt;/p&gt;
&lt;p&gt;Time Tracking Summary:&lt;/p&gt;
&lt;p&gt;🎮 The Witcher 3: Wild Hunt — Remastered (Switch 2) - 6h15m&lt;br&gt;
📖 Carpe Jugulum by Terry Pratchett - 4h50m&lt;br&gt;
🎲 Wingspan Oceania - 2h13m&lt;br&gt;
🎮 Piczle Cross: Story of Seasons (Switch 2) - 1h35m&lt;br&gt;
🎮 Golf With Your Friends (Switch 2) - 0h50m&lt;br&gt;
📖 Rogue Protocol by Martha Wells - 0h30m&lt;br&gt;
🎲 Yahtzee - 0h20m&lt;br&gt;
🎮 Tetris 99 (Switch 2) - 0h15m&lt;br&gt;
🎮 Nintendo 64 – Nintendo Classics (Switch 2) - 0h2m&lt;br&gt;
🎮 DRAGON QUEST VII Reimagined (Switch 2) - 0h2m&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>Week Notes - 2026-40</title>
    <link href="https://www.jamesleighton.com/week-notes/2026/40/" />
    <updated>2026-10-05T20:00:00Z</updated>
    <id>https://www.jamesleighton.com/week-notes/2026/40/</id>
    <content type="html">&lt;p&gt;This week saw the evenings suddenly seem much shorter! It is a sure sign that the end of the year is fast approaching.&lt;/p&gt;
&lt;h2 id=&quot;reading&quot;&gt;Reading&lt;/h2&gt;
&lt;p&gt;I finished &#39;Around the World in 80 Games&#39; which I mentioned previously. It was a fantastic run through the history of games of all kinds. It was interesting to learn about the origins of Chess, Go and more. I&#39;ve now gone back to the Disc, and I&#39;m reading Carpe Jugulum. My reading streak is now sitting at 65 days.&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/mK79e9wygG-327.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/mK79e9wygG-327.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/mK79e9wygG-327.jpeg&quot; alt=&quot;Around the World in 80 Games by Marcus du Sautoy&quot; title=&quot;Around the World in 80 Games by Marcus du Sautoy&quot; width=&quot;327&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Around the World in 80 Games by Marcus du Sautoy&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/qR6XvP03MT-325.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/qR6XvP03MT-325.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/qR6XvP03MT-325.jpeg&quot; alt=&quot;Carpe Jugulum by Terry Pratchett&quot; title=&quot;Carpe Jugulum by Terry Pratchett&quot; width=&quot;325&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Carpe Jugulum by Terry Pratchett&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;gaming&quot;&gt;Gaming&lt;/h2&gt;
&lt;p&gt;A little bit different this week! Argos had a cracking deal, so I finally have a Switch 2. This lined up perfectly with Witcher 3 Remastered&#39;s release. I&#39;ll write a post summing up what I like about the Switch 2, but I am really enjoying being back in Geralt&#39;s world. The game plays beautifully on Switch 2! I also played a few more puzzles in Piczle Cross: Story of Seasons, and booted up Lumines again too.&lt;/p&gt;
&lt;p&gt;I also played a few other games for less than twenty minutes each: SnowRunner (still annoyed that it&#39;s only a free upgrade if you bought it digitally whilst owners of the cartridge are out of luck without even a discount... I own several seasons of the DLC!), Mario Kart 8 Deluxe, Nintendo Switch Online Game Boy (Tetris!), and Nintendo Switch Online Super Nintendo (Harvest Moon, I)&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.png&quot; alt=&quot;The Witcher 3: Wild Hunt — Remastered&quot; title=&quot;The Witcher 3: Wild Hunt — Remastered&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;The Witcher 3: Wild Hunt — Remastered&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/PbGw8VIFwy-300.jpeg&quot; alt=&quot;Piczle Cross: Story of Seasons&quot; title=&quot;Piczle Cross: Story of Seasons&quot; width=&quot;300&quot; height=&quot;450&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Piczle Cross: Story of Seasons&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/B1daIQAIaQ-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/B1daIQAIaQ-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/B1daIQAIaQ-1024.png&quot; alt=&quot;Lumines Remastered&quot; title=&quot;Lumines Remastered&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Lumines Remastered&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/HkUNQrRrCZ-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/HkUNQrRrCZ-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/HkUNQrRrCZ-1024.jpeg&quot; alt=&quot;Hyrule Warriors: Definitive Edition&quot; title=&quot;Hyrule Warriors: Definitive Edition&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Hyrule Warriors: Definitive Edition&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/MAzRC4Vqfi-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/MAzRC4Vqfi-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/MAzRC4Vqfi-1024.png&quot; alt=&quot;Mario Kart 8 Deluxe&quot; title=&quot;Mario Kart 8 Deluxe&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Mario Kart 8 Deluxe&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/o5IXl4qRJ_-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/o5IXl4qRJ_-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/o5IXl4qRJ_-1024.jpeg&quot; alt=&quot;SnowRunner&quot; title=&quot;SnowRunner&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;SnowRunner&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/XNcCsybM9e-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/XNcCsybM9e-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/XNcCsybM9e-1024.png&quot; alt=&quot;Game Boy – Nintendo Classics&quot; title=&quot;Game Boy – Nintendo Classics&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Game Boy – Nintendo Classics&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/2pZTRFt09l-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/2pZTRFt09l-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/2pZTRFt09l-1024.png&quot; alt=&quot;Super Nintendo Entertainment System – Nintendo Classics&quot; title=&quot;Super Nintendo Entertainment System – Nintendo Classics&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Super Nintendo Entertainment System – Nintendo Classics&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;steps-challenge&quot;&gt;Steps Challenge&lt;/h2&gt;
&lt;p&gt;I hit my average of 5,000 steps a day over the last 7 days again. This makes it 7 out of the last 11 weeks now.&lt;/p&gt;
&lt;p&gt;The average was greatly helped by our trip on Saturday to Stratford-upon-Avon to see &#39;As You Like It&#39; which was fantastic. Stratford was nice too, and I am sure we&#39;ll head back at some point to explore more.&lt;/p&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/b3Svs5YiOF-4618.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/b3Svs5YiOF-4618.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/b3Svs5YiOF-4618.jpeg&quot; title=&quot;The Royal Shakespeare Theatre, Stratford-upon-Avon&quot; alt=&quot;A view down the River Avon towards the Royal Shakespeare Theatre, with rowing boats on the water and a willow tree framing the foreground.&quot; width=&quot;4618&quot; height=&quot;3464&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;The Royal Shakespeare Theatre, Stratford-upon-Avon&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/M0yLR0sBiM-4032.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/M0yLR0sBiM-4032.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/M0yLR0sBiM-4032.jpeg&quot; title=&quot;Shakespeare&#39;s Birthplace, Stratford-upon-Avon&quot; alt=&quot;The timber-framed Tudor house on Henley Street where William Shakespeare was born, with visitors gathered outside on a sunny afternoon.&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;Shakespeare&#39;s Birthplace, Stratford-upon-Avon&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;recent-posts&quot;&gt;Recent Posts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/2026/10/september-in-numbers/&quot;&gt;September in Numbers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/week-notes/2026/39/&quot;&gt;Week Notes - 2026-39&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;things-to-watch&quot;&gt;Things to Watch&lt;/h2&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/qJCPxyi5x5g&quot; title=&quot;The History of Picross&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/3n66GqTtNcM&quot; title=&quot;Weekend Update: Stella Lefty on Accusations of Plagiarism - SNL&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&quot;time-tracking-summary&quot;&gt;Time Tracking Summary&lt;/h2&gt;
&lt;p&gt;Last week I spent...&lt;br&gt;
🎮 7h29m video gaming (+2h2m)&lt;br&gt;
📖 4h14m reading (+40m)&lt;br&gt;
🚗 3h35m driving (+1m)&lt;br&gt;
💤 51h48m sleeping (-2h13m)&lt;br&gt;
🚶‍♂️ 2h44m being active (-21m)&lt;/p&gt;
&lt;p&gt;I listened to 161 songs, my most listened to artist was CHVRCHES.&lt;/p&gt;
&lt;p&gt;I walked 35971 steps this week (-790).&lt;/p&gt;
&lt;p&gt;Time Tracking Summary:&lt;/p&gt;
&lt;p&gt;🎮 The Witcher 3: Wild Hunt — Remastered (Switch 2) - 5h5m&lt;br&gt;
📖 Around the World in 80 Games by Marcus du Sautoy - 3h49m&lt;br&gt;
🎮 Piczle Cross: Story of Seasons (Switch 2) - 1h5m&lt;br&gt;
🎮 LUMINES REMASTERED (Switch) - 0h30m&lt;br&gt;
📖 Carpe Jugulum by Terry Pratchett - 0h25m&lt;br&gt;
🎮 Hyrule Warriors: Definitive Edition (Switch 2) - 0h25m&lt;br&gt;
🎮 Mario Kart 8 Deluxe (Switch 2) - 0h15m&lt;br&gt;
🎮 SnowRunner (Switch 2) - 0h5m&lt;br&gt;
🎮 Game Boy – Nintendo Classics (Switch 2) - 0h3m&lt;br&gt;
🎮 Super Nintendo Entertainment System – Nintendo Classics (Switch 2) - 0h1m&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>September in Numbers</title>
    <link href="https://www.jamesleighton.com/2026/10/september-in-numbers/" />
    <updated>2026-10-02T18:00:00Z</updated>
    <id>https://www.jamesleighton.com/2026/10/september-in-numbers/</id>
    <content type="html">&lt;p&gt;I had Claude crunch the numbers from my time tracking system for this one - here is September 2026 in numbers.&lt;/p&gt;
&lt;h2 id=&quot;september-at-a-glance&quot;&gt;September at a glance&lt;/h2&gt;
&lt;div class=&quot;table-scroll&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;September&lt;/th&gt;
&lt;th&gt;August&lt;/th&gt;
&lt;th&gt;Change&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reading&lt;/td&gt;
&lt;td&gt;17h 18m&lt;/td&gt;
&lt;td&gt;16h 50m&lt;/td&gt;
&lt;td&gt;+28m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gaming&lt;/td&gt;
&lt;td&gt;15h 17m&lt;/td&gt;
&lt;td&gt;10h 56m&lt;/td&gt;
&lt;td&gt;+4h 20m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Steps/day&lt;/td&gt;
&lt;td&gt;5,899&lt;/td&gt;
&lt;td&gt;5,732&lt;/td&gt;
&lt;td&gt;+167&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mood&lt;/td&gt;
&lt;td&gt;5.3&lt;/td&gt;
&lt;td&gt;6.2&lt;/td&gt;
&lt;td&gt;-0.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sleep&lt;/td&gt;
&lt;td&gt;7h 33m&lt;/td&gt;
&lt;td&gt;7h 07m&lt;/td&gt;
&lt;td&gt;+26m&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id=&quot;week-by-week&quot;&gt;Week by week&lt;/h2&gt;
&lt;div class=&quot;table-scroll&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Week&lt;/th&gt;
&lt;th&gt;Reading&lt;/th&gt;
&lt;th&gt;Gaming&lt;/th&gt;
&lt;th&gt;Driving&lt;/th&gt;
&lt;th&gt;Steps/day&lt;/th&gt;
&lt;th&gt;Mood&lt;/th&gt;
&lt;th&gt;Sleep&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1–6 Sep&lt;/td&gt;
&lt;td&gt;4h 26m&lt;/td&gt;
&lt;td&gt;2h 22m&lt;/td&gt;
&lt;td&gt;1h 55m (31.3mi)&lt;/td&gt;
&lt;td&gt;6,685&lt;/td&gt;
&lt;td&gt;5.7&lt;/td&gt;
&lt;td&gt;7h 26m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7–13 Sep&lt;/td&gt;
&lt;td&gt;4h 33m&lt;/td&gt;
&lt;td&gt;2h 23m&lt;/td&gt;
&lt;td&gt;4h 07m (69.6mi)&lt;/td&gt;
&lt;td&gt;6,132&lt;/td&gt;
&lt;td&gt;4.8&lt;/td&gt;
&lt;td&gt;7h 27m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14–20 Sep&lt;/td&gt;
&lt;td&gt;3h 21m&lt;/td&gt;
&lt;td&gt;2h 31m&lt;/td&gt;
&lt;td&gt;2h 14m (60.1mi)&lt;/td&gt;
&lt;td&gt;6,110&lt;/td&gt;
&lt;td&gt;4.6&lt;/td&gt;
&lt;td&gt;7h 31m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;21–27 Sep&lt;/td&gt;
&lt;td&gt;3h 34m&lt;/td&gt;
&lt;td&gt;5h 27m&lt;/td&gt;
&lt;td&gt;3h 34m (61.1mi)&lt;/td&gt;
&lt;td&gt;4,867&lt;/td&gt;
&lt;td&gt;5.8&lt;/td&gt;
&lt;td&gt;7h 42m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;28–30 Sep&lt;/td&gt;
&lt;td&gt;1h 24m&lt;/td&gt;
&lt;td&gt;2h 35m&lt;/td&gt;
&lt;td&gt;1h 51m (31.3mi)&lt;/td&gt;
&lt;td&gt;4,885&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;7h 34m&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id=&quot;reading&quot;&gt;Reading&lt;/h2&gt;
&lt;p&gt;I read every single day in September. All 30 of them, and the streak is now at 62 unbroken days. I logged 17h 17m of reading which was up a touch on August&#39;s 16h 50m. This works out at about 35 minutes a day.&lt;/p&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/6iofMpyNm2-326.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/6iofMpyNm2-326.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/6iofMpyNm2-326.jpeg&quot; alt=&quot;Heroes by Stephen Fry&quot; title=&quot;Heroes by Stephen Fry&quot; width=&quot;326&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Heroes by Stephen Fry&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/A5kCAZcuBl-320.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/A5kCAZcuBl-320.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/A5kCAZcuBl-320.jpeg&quot; alt=&quot;Abroad in Japan by Chris Broad&quot; title=&quot;Abroad in Japan by Chris Broad&quot; width=&quot;320&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Abroad in Japan by Chris Broad&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/MXagZq04p4-375.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/MXagZq04p4-375.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/MXagZq04p4-375.jpeg&quot; alt=&quot;Legends and Lattes by Travis Baldree&quot; title=&quot;Legends and Lattes by Travis Baldree&quot; width=&quot;375&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Legends and Lattes by Travis Baldree&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/ymLz5oSwlt-337.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/ymLz5oSwlt-337.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/ymLz5oSwlt-337.jpeg&quot; alt=&quot;Grave Peril by Jim Butcher&quot; title=&quot;Grave Peril by Jim Butcher&quot; width=&quot;337&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Grave Peril by Jim Butcher&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I completed four books in September: Heroes by Stephen Fry, Abroad in Japan by Chris Broad, Legends and Lattes by Travis Baldree and Grave Peril by Jim Butcher.&lt;/p&gt;
&lt;p&gt;Grave Peril took the most time at 5h 21m, with Abroad in Japan next on 4h 13m. I also put 2h 57m into Around the World in 80 Games which is what I am currently enjoying.&lt;/p&gt;
&lt;p&gt;Most days, I read a chapter or two before I go to sleep. However some days the book is too interesting: The longest reading day was the 12th at 1h 15m.&lt;/p&gt;
&lt;h2 id=&quot;gaming&quot;&gt;Gaming&lt;/h2&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.png&quot; alt=&quot;Dragon Quest Monsters: The Dark Prince&quot; title=&quot;Dragon Quest Monsters: The Dark Prince&quot; width=&quot;512&quot; height=&quot;512&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Dragon Quest Monsters: The Dark Prince&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/VtDnktzODi-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/VtDnktzODi-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/VtDnktzODi-1024.png&quot; alt=&quot;Two Point Hospital&quot; title=&quot;Two Point Hospital&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Two Point Hospital&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/_Z-Pn4EvEU-1024.png&quot; alt=&quot;The Witcher 3: Wild Hunt — Remastered&quot; title=&quot;The Witcher 3: Wild Hunt — Remastered&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;The Witcher 3: Wild Hunt — Remastered&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/HkUNQrRrCZ-1024.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/HkUNQrRrCZ-1024.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/HkUNQrRrCZ-1024.jpeg&quot; alt=&quot;Hyrule Warriors: Definitive Edition&quot; title=&quot;Hyrule Warriors: Definitive Edition&quot; width=&quot;1024&quot; height=&quot;1024&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Hyrule Warriors: Definitive Edition&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Gaming was up 40%, from 10h 56m in August to 15h 17m, or about 31 minutes a day. Nearly half of that was Dragon Quest Monsters: The Dark Prince at 7h 10m. After that came Two Point Hospital (2h 31m) and Microlandia (1h 42m).&lt;/p&gt;
&lt;p&gt;The 27th was the big day, with 3h 05m in one go. That is the biggest day since a 4h 46m session back on 13 June.&lt;/p&gt;
&lt;p&gt;The last few days of the month turned into a bit of a Nintendo reunion tour as I finally bought a Switch 2! I started playing The Witcher 3: Wild Hunt — Remastered, went back Lumines Remastered, and had a quick run through Hyrule Warriors: Definitive Edition to see how much better it ran (tl;dr: it runs so much better!)&lt;/p&gt;
&lt;h2 id=&quot;the-steps-challenge&quot;&gt;The steps challenge&lt;/h2&gt;
&lt;p&gt;I changed how the walking challenge works a few times this month. It was originally a rolling 30-day average of my own steps, capped at 8,000, which meant the target moved with me. Midway through the month I swapped it for a fixed average of 5,000 steps a day because I didn&#39;t like the idea that beating my average made every successive day harder.&lt;/p&gt;
&lt;p&gt;So, did it work? I set myself 150,000 steps for the month (5,000 a day for 30 days) and finished on just over 177,000. That works out at 5,899 a day, against 5,732 in August.&lt;/p&gt;
&lt;p&gt;Twenty-six of the 30 days cleared 5,000. The misses were either me feeling excessively lazy, or due to the weather. I&#39;m going to have to get over the weather as we head slowly into winter...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 21st, with 4,988. Twelve steps short....&lt;/li&gt;
&lt;li&gt;The 24th, with 2,939.&lt;/li&gt;
&lt;li&gt;The 26th, with 3,883.&lt;/li&gt;
&lt;li&gt;The 28th, with 2,175, the lowest of the month.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The best day was the 25th with 9,182 steps&lt;/p&gt;
&lt;p&gt;The weekly Monday to Sunday average has also cleared 5,000 four weeks in a row, after missing five of the seven weeks before that. This has had the desired effect of getting me to go outside and I&#39;m pretty pleased with that.&lt;/p&gt;
&lt;h2 id=&quot;everything-else&quot;&gt;Everything else&lt;/h2&gt;
&lt;div class=&quot;cover-strip&quot;&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/1G6enmLCLD-1440.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/1G6enmLCLD-1440.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/1G6enmLCLD-1440.jpeg&quot; alt=&quot;My City: Roll &amp; Build&quot; title=&quot;My City: Roll &amp; Build&quot; width=&quot;1440&quot; height=&quot;2000&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;My City: Roll &amp; Build&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/IpMZf3SKPd-780.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/IpMZf3SKPd-780.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/IpMZf3SKPd-780.jpeg&quot; alt=&quot;KPop Demon Hunters&quot; title=&quot;KPop Demon Hunters&quot; width=&quot;780&quot; height=&quot;1170&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;KPop Demon Hunters&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/BSoMW9eZwy-780.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/BSoMW9eZwy-780.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/BSoMW9eZwy-780.jpeg&quot; alt=&quot;The Fast and the Furious&quot; title=&quot;The Fast and the Furious&quot; width=&quot;780&quot; height=&quot;1170&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;The Fast and the Furious&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/HzrqE6T6zT-780.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/HzrqE6T6zT-780.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/HzrqE6T6zT-780.jpeg&quot; alt=&quot;Black Widow&quot; title=&quot;Black Widow&quot; width=&quot;780&quot; height=&quot;1170&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Black Widow&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/4Ks13D79ro-780.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/4Ks13D79ro-780.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/4Ks13D79ro-780.jpeg&quot; alt=&quot;Now You See Me: Now You Don&#39;t&quot; title=&quot;Now You See Me: Now You Don&#39;t&quot; width=&quot;780&quot; height=&quot;1170&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption class=&quot;visually-hidden&quot;&gt;Now You See Me: Now You Don&#39;t&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Board games: just 1h 11m of My City: Roll &amp;amp; Build.&lt;/li&gt;
&lt;li&gt;Films: KPop Demon Hunters, The Fast and the Furious, Black Widow and Now You See Me: Now You Don&#39;t.&lt;/li&gt;
&lt;li&gt;TV: The Grand Tour, Grand Designs, Pole to Pole, South Park and a couple of episodes of Adventure Time.&lt;/li&gt;
&lt;li&gt;Weight: down 1.2 kg on August&#39;s average.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;is-the-tracking-worth-the-hassle&quot;&gt;Is the tracking worth the hassle?&lt;/h2&gt;
&lt;p&gt;Looking at the month as a set of numbers makes the good bits and the rubbish bits easier to spot, and that makes it easier to correct going forward. September felt like a decent month. The numbers say it was a decent month with a rough patch in the middle.  However, I can admit it&#39;s not for everybody!&lt;/p&gt;
&lt;h2 id=&quot;goals-for-the-rest-of-year&quot;&gt;Goals for the rest of year&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Keep hitting 35,000 steps a week&lt;/li&gt;
&lt;li&gt;Keep reading every single day&lt;/li&gt;
&lt;li&gt;Finish at least three games (Witcher 3&#39;s Main Story, Dragon Quest Monsters, Piczle Cross Story of Seasons)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;See you in a month for the next one!&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <title>Week Notes - 2026-39</title>
    <link href="https://www.jamesleighton.com/week-notes/2026/39/" />
    <updated>2026-09-28T20:00:00Z</updated>
    <id>https://www.jamesleighton.com/week-notes/2026/39/</id>
    <content type="html">&lt;h2 id=&quot;reading&quot;&gt;Reading&lt;/h2&gt;
&lt;p&gt;I finished Grave Peril this week and I have to say I really enjoyed the ending. I&#39;ve now started Around the World in 80 Games by Marcus du Sautoy which has been on my reading pile for ages. So far we&#39;ve learnt about the origins of Backgammon, Chess and Hopscotch.&lt;/p&gt;
&lt;p&gt;My reading streak is up to 58 days!&lt;/p&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/ymLz5oSwlt-337.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/ymLz5oSwlt-337.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/ymLz5oSwlt-337.jpeg&quot; title=&quot;Grave Peril — Jim Butcher&quot; alt=&quot;Cover of Grave Peril, the third Dresden Files novel by Jim Butcher&quot; width=&quot;337&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;Grave Peril — Jim Butcher&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/mK79e9wygG-327.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/mK79e9wygG-327.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/mK79e9wygG-327.jpeg&quot; title=&quot;Around the World in 80 Games — Marcus du Sautoy&quot; alt=&quot;Cover of Around the World in 80 Games by Marcus du Sautoy&quot; width=&quot;327&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;Around the World in 80 Games — Marcus du Sautoy&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;gaming&quot;&gt;Gaming&lt;/h2&gt;
&lt;p&gt;This week was a stark contrast to last week. DRAGON QUEST MONSTERS: The Dark Prince took most of my gaming time this week at 3h 45m, and Microlandia taking the remainer of my time at a controller. Microlandia is a really interesting city building game that is about £3 on sale!&lt;/p&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/VufY7Hw0Pv-512.png&quot; title=&quot;DRAGON QUEST MONSTERS: The Dark Prince&quot; alt=&quot;Cover art for DRAGON QUEST MONSTERS: The Dark Prince on Steam&quot; width=&quot;512&quot; height=&quot;512&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;DRAGON QUEST MONSTERS: The Dark Prince&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/c4gsy55306-231.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/c4gsy55306-231.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/c4gsy55306-231.jpeg&quot; title=&quot;Microlandia&quot; alt=&quot;Cover art for the game Microlandia on Steam&quot; width=&quot;231&quot; height=&quot;87&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;Microlandia&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;movies-tv&quot;&gt;Movies / TV&lt;/h2&gt;
&lt;p&gt;We watched KPop Demon Hunters over the weekend. Mostly because our nieces won&#39;t shut up about it, so we figured we ought to really see it at some point. Not half bad!&lt;/p&gt;
&lt;p&gt;On TV, I started watching Adventure Time again (it&#39;s just quite a lot of fun, isn&#39;t it?) and we watched two more episodes of The Grand Tour (2026). I actually quite like Francis now after seeing him in some more of this.
The Kei car episode was on par with classic Top Gear in my opinion.&lt;/p&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/IpMZf3SKPd-780.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/IpMZf3SKPd-780.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/IpMZf3SKPd-780.jpeg&quot; title=&quot;KPop Demon Hunters&quot; alt=&quot;Poster for the film KPop Demon Hunters&quot; width=&quot;780&quot; height=&quot;1170&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;KPop Demon Hunters&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/aceSZgMaJp-780.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/aceSZgMaJp-780.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/aceSZgMaJp-780.jpeg&quot; title=&quot;Adventure Time&quot; alt=&quot;Poster art for the TV series Adventure Time&quot; width=&quot;780&quot; height=&quot;1170&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;Adventure Time&lt;/figcaption&gt;
	&lt;/figure&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/E1KJFaxa4H-780.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/E1KJFaxa4H-780.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/E1KJFaxa4H-780.jpeg&quot; title=&quot;The Grand Tour (2026)&quot; alt=&quot;Poster art for the 2026 season of The Grand Tour&quot; width=&quot;780&quot; height=&quot;1170&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;The Grand Tour (2026)&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;other-stuff&quot;&gt;Other stuff&lt;/h2&gt;
&lt;p&gt;We decided to try making some shelves, and it went pretty well. We followed a couple of youtube tutorials, and pivoted at the end as I&#39;d bought too much wood (so we used lumber instead of plywood for the actual shelves). I think it came out much sturdier and stronger for our modifcations! What do you think?&lt;/p&gt;
&lt;p&gt;This has given me a bit more confidence in my tentative plans to build a desk for my study. Perhaps that&#39;ll be a 2027 project.&lt;/p&gt;
&lt;div class=&quot;gallery&quot;&gt;
	&lt;figure&gt;
		&lt;button type=&quot;button&quot; class=&quot;gallery-item&quot;&gt;
			&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://www.jamesleighton.com/img/axH9i96sb2-4618.avif&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://www.jamesleighton.com/img/axH9i96sb2-4618.webp&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://www.jamesleighton.com/img/axH9i96sb2-4618.jpeg&quot; title=&quot;The shelf we built!&quot; alt=&quot;A photo of our shelf, made from framing lumber.&quot; width=&quot;4618&quot; height=&quot;3464&quot;&gt;&lt;/picture&gt;
		&lt;/button&gt;
		&lt;figcaption&gt;The shelf we built!&lt;/figcaption&gt;
	&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;I managed to hit an average of 5000 steps last week, but it was a struggle. I must go earlier in the day especially as the evenings are starting to get darker earlier. Perhaps I&#39;ll try going before my work day starts next week to bank the days early before I start feeling tired and lazy.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Day&lt;/th&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Steps&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mon&lt;/td&gt;
&lt;td&gt;21 Sep&lt;/td&gt;
&lt;td&gt;4,988&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tue&lt;/td&gt;
&lt;td&gt;22 Sep&lt;/td&gt;
&lt;td&gt;5,192&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wed&lt;/td&gt;
&lt;td&gt;23 Sep&lt;/td&gt;
&lt;td&gt;5,152&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thu&lt;/td&gt;
&lt;td&gt;24 Sep&lt;/td&gt;
&lt;td&gt;2,939&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fri&lt;/td&gt;
&lt;td&gt;25 Sep&lt;/td&gt;
&lt;td&gt;9,182&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;26 Sep&lt;/td&gt;
&lt;td&gt;3,883&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;27 Sep&lt;/td&gt;
&lt;td&gt;5,425&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5,252&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;recent-posts&quot;&gt;Recent Posts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamesleighton.com/week-notes/2026/38/&quot;&gt;Week Notes - 2026-38&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;things-to-watch&quot;&gt;Things to Watch&lt;/h2&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/pZtU48TjxXg&quot; title=&quot;When I blow this whistle, a swimming pool appears.&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/Vq7wmfZMcvY&quot; title=&quot;Driving Francis Bourgeois&#39; $70,000 Honda Jazz&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;position: relative; width: 100%; padding-top: 56.25%; margin-bottom: 1em;&quot;&gt;
	&lt;iframe src=&quot;https://www.youtube-nocookie.com/embed/qcPS9KKJ5Vg&quot; title=&quot;My Homemade Jet Boat Is Terrifying&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot; style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&quot;time-tracking-summary&quot;&gt;Time Tracking Summary&lt;/h2&gt;
&lt;p&gt;Last week I spent...&lt;br&gt;
🎮 5h26m video gaming (+2h56m)&lt;br&gt;
📖 3h34m reading (+13m)&lt;br&gt;
🚗 3h33m driving (+1h19m)&lt;br&gt;
💤 54h1m sleeping (+1h6m)&lt;br&gt;
🚶‍♂️ 3h4m being active (-1h9m)&lt;/p&gt;
&lt;p&gt;I listened to 173 songs, my most listened to artist was Taylor Swift.&lt;/p&gt;
&lt;p&gt;I walked 36761 steps this week (-7133).&lt;/p&gt;
&lt;p&gt;Time Tracking Summary:&lt;/p&gt;
&lt;p&gt;🎮 DRAGON QUEST MONSTERS: The Dark Prince (Steam) - 3h45m&lt;br&gt;
📖 Grave Peril by Jim Butcher - 2h0m&lt;br&gt;
🎮 Microlandia (Steam) - 1h41m&lt;br&gt;
📖 Around the World in 80 Games by Marcus du Sautoy - 1h33m&lt;/p&gt;


&lt;hr&gt;
&lt;p&gt;Thanks for reading this via RSS! 🧡 If you enjoyed it or found it useful, I&#39;d love to hear from you. Email &lt;a href=&quot;mailto:semaj@omg.lol&quot;&gt;semaj@omg.lol&lt;/a&gt; or say hi on &lt;a href=&quot;https://social.lol/@semaj&quot;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;a class=&quot;u-bridgy-fed&quot; href=&quot;https://fed.brid.gy/&quot; hidden=&quot;from-humans&quot;&gt;&lt;/a&gt;</content>
  </entry>
</feed>