<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mordecai Kipng’etich</title>
    <link>https://neobrutalist.insidemordecai.com/</link>
    <description>Personal website and blog about tech, media, books, music, homelabs, and life in Kenya.</description>
    <language>en</language>
    <lastBuildDate>Thu, 22 Oct 2026 12:36:31 GMT</lastBuildDate>
    <copyright>CC BY-NC-SA 4.0 — Mordecai Kipng’etich</copyright>
    <atom:link href="https://neobrutalist.insidemordecai.com/index.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>How to Set Up Cleanuparr</title>
      <link>https://neobrutalist.insidemordecai.com/cleanuparr-setup/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/cleanuparr-setup/</guid>
      <pubDate>Thu, 22 Oct 2026 12:36:31 GMT</pubDate>
      <description>Automating download cleanup in my homelab setup.</description>
      <content:encoded><![CDATA[<p>For quite some time, I&#39;ve had to manually clean up downloads in my download client. 
I experience this with mostly unaired episodes on Sonarr. 
What happens is that there often are torrents named after unaired episodes containing malware and all sorts of unwanted files. 
These files get downloaded but are not imported by Radarr/Sonarr because they don&#39;t contain the expected files. 
Typically this is malware for Windows computers so it doesn&#39;t affect my Linux setup but it prevents Sonarr from downloading the wanted files when the episode finally airs. 
Additionally, it fills up my storage necessitating frequent manual intervention. </p>
<h2 id="prerequisite">Prerequisite</h2>
<h3 id="harden-radarr-sonarr-and-qbittorrent">Harden Radarr/Sonarr and qBittorrent</h3>
<p>Most users recommend hardening your arr applications and download client, which is what I did. 
Even though it didn&#39;t help before I settled on Cleanuparr, I still highly recommend to tackle this issue at multiple points. </p>
<ul>
<li>Go to <strong>Settings → Indexers</strong> and click on &#39;Show Advanced&#39; at the top. </li>
<li>Click on each indexer and edit the &#39;Fail Downloads&#39; option by enabling both &#39;Executables&#39; and &#39;Potentially Dangerous&#39;</li>
<li>Go to qBittorrent&#39;s settings and under <em>Downloads</em>, tick the &#39;Exclude file names&#39; box and add some filenames to exclude such as <code>*.exe</code>. You can search the web for a list of filenames to exclude (or skip to the blocklist section below) but it is important to note that if you use your download client for other downloads then it is easier to curate the list yourself.</li>
</ul>
<h3 id="prevent-unwanted-redownloads">Prevent Unwanted Redownloads</h3>
<p>There is a high likelihood that even on successfully configuring Cleanuparr, Radarr/Sonarr might still send previously blocked releases to your download client. 
To prevent that, configure this in Prowlarr: </p>
<ul>
<li>Go to <strong>Settings → Apps</strong> and click on &#39;Show Advanced&#39; at the top. </li>
<li>Edit each configured application and enable &#39;Sync Reject Blocklisted Torrent Hashes While Grabbing&#39;</li>
</ul>
<p>If you are not managing your indexers with Prowlarr, then configure this individually at the application level. </p>
<h2 id="installation">Installation</h2>
<p>My preference is always Docker Compose due to how easy and replicable it is.
Create a <code>docker-compose.yml</code> file based on the <a href="https://cleanuparr.github.io/docs/installation/quick_start" target="_blank" rel="noopener noreferrer">official quick start template</a>. </p>
<pre><code class="language-yml">services: 
 cleanuparr:
    image: ghcr.io/cleanuparr/cleanuparr:latest
    container_name: cleanuparr
    restart: unless-stopped
    ports:
      - &quot;11011:11011&quot;
    volumes:
      - ./appdata/cleanuparr:/config
      - ${DATA_VOLUME}/data:/data
    environment:
      - PORT=11011
      - BASE_PATH=
      - PUID=1000
      - PGID=1000
      - UMASK=022
      - TZ=${TZ}
    networks:
      - stacknet
</code></pre>
<p>You can read the full <a href="https://cleanuparr.github.io/docs/installation/detailed" target="_blank" rel="noopener noreferrer">detailed installation guide</a> to understand the available option. </p>
<p>In my case, <code>${DATA_VOLUME}</code> is my storage location while <code>${TZ}</code> points to my timezone , both configured in a <code>.env</code> file. 
Additionally, <code>stacknet</code> is my custom shared network across different Docker stacks.</p>
<h2 id="post-installation">Post-Installation</h2>
<ol>
<li>Access the web interface (<code>http://localhost:11011</code>), create an admin account and setup 2FA. </li>
<li>Log into the newly created account.</li>
<li>Configure the desired <code>*arr</code> applications.<ul>
<li>Click on the application on the sidebar and add an instance.</li>
<li>Name your instance and fill in the required data. </li>
<li>My personal preference is to use a container name as the hostname and as such for radarr, the host would be <code>http://radarr:7878</code>.</li>
<li>The API Key will be in <strong>Settings → General</strong> of the respective <code>*arr</code> application.</li>
</ul>
</li>
<li>Configure your download client.<ul>
<li>Click on &#39;Download Clients&#39; on the sidebar and add a client. </li>
<li>Name your instance and fill in the required data.</li>
</ul>
</li>
</ol>
<p>That&#39;s all the necessary tweaks to make, the next steps are my personal preference to solve my initial problem while keeping the setup simple.</p>
<h2 id="extra-configurations">Extra Configurations.</h2>
<div style="border:2px solid #101314;border-left:8px solid #009bad;background:#e2f5f5;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Tip</p><p>Cleanuparr Blocklists
The Cleanuparr team graciously provide these blocklists that work with Radarr and Sonarr:</p>
<ul>
<li><code>https://cleanuparr.pages.dev/static/blacklist</code></li>
<li><code>https://cleanuparr.pages.dev/static/blacklist_permissive</code></li>
<li><code>https://cleanuparr.pages.dev/static/whitelist</code></li>
<li><code>https://cleanuparr.pages.dev/static/whitelist_with_subtitles</code></li>
</ul>
</div>
<h3 id="general">General</h3>
<ul>
<li>I prefer to <em>disable the support banner</em>. </li>
<li>Enable <em>Internet Connectivity Check</em> and add a couple robust public domains for Cleanuparr to test your internet connection with. </li>
<li>If you don&#39;t have the application exposed to the internet then <em>disable authentication for local addresses</em>.</li>
</ul>
<h3 id="queue-cleaner">Queue Cleaner</h3>
<p>This monitors your queues and automatically removes downloads based on your configuration.</p>
<ul>
<li>Enable queue cleaner. </li>
<li>Enable <em>process downloads with no content ID</em>.  This is only useful if you manually download stuff. </li>
<li>Adjust your cleaning schedule. </li>
<li>Configure some extra cleanup rules such as stall rules (I have mine set to take action after 10 strikes if the download is under 50%)</li>
</ul>
<p>I haven&#39;t had to set up anything else under this setting. </p>
<h3 id="malware-blocker">Malware Blocker</h3>
<p>It&#39;s in the name, it simply protects against malicious files in downloads based on a blocklist. 
This works in tandem with your download client&#39;s exluded file names configuration. </p>
<ul>
<li>Enable malware blocker. </li>
<li>If you use private trackers, then it would be nice to <em>ignore private torrents</em>. </li>
<li>Enable <em>process downloads with no content ID</em>.  This is only useful if you manually download stuff. </li>
<li>Under the &#39;Arr Blocklist&#39; section, enable the <code>*arr</code> application you want to configure, fill the blocklist path with the desired blocklist from above and choose the correct blocklist type.</li>
</ul>
<h3 id="download-cleaner">Download Cleaner</h3>
<p>Simply enable this and you&#39;re done. </p>
<p>I already handle the rest in qBittorrent so there&#39;s no need to configure the available rules.
If you don&#39;t already do that, then Cleanuparr is more granular with amazing options. </p>
<h3 id="blacklist-sync">Blacklist Sync</h3>
<p>This syncs blacklist entries from your configured blacklist path to qBittorrent. </p>
<ul>
<li>Enable blacklist sync. Ensure you still have the &quot;Excluded File Name&quot; setting we configure earlier enabled in qBittorrent as Cleanuparr won&#39;t enable it for you, it will simply sync the list.</li>
<li>Fill the &#39;Blacklist File Path&#39; witch your preferred blacklist.</li>
</ul>
<hr>
<p>And that&#39;s pretty much it. </p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://cleanuparr.github.io/" target="_blank" rel="noopener noreferrer">Cleanuparr Documentation</a></li>
<li><a href="https://0y.lol/2026/09/01/build-a-hardened-arr-stack/" target="_blank" rel="noopener noreferrer">Build a Hardened Arr Stack with Docker Compose: Gluetun, Hardlinks, and Health Checks</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20How%20to%20Set%20Up%20Cleanuparr" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Homelab</category>
      <category>Self-Hosting</category>
      <category>Cleanuparr</category>
    </item>
    <item>
      <title>September 2026 Dispatch</title>
      <link>https://neobrutalist.insidemordecai.com/september-2026-dispatch/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/september-2026-dispatch/</guid>
      <pubDate>Wed, 30 Sep 2026 19:58:19 GMT</pubDate>
      <description>A quick collection of what I watched, listened to, and read this month.</description>
      <content:encoded><![CDATA[<p>Welcome back to <strong>Dispatch</strong>, a personal roundup of videos, records, and anything that I found interesting this month. 
Think of <strong>Dispatch</strong> as my monthly mixtape from the internet with no real theme except “this was neat.” 
This time we cover September but also some items from August when I didn&#39;t dispatch 🥁 my roundup.</p>
<h2 id="videos">Videos</h2>
<ul>
<li>Quincy Sandbank published a video essay that on first glance seems to be about a classic 1991 Mercedes but that couldn’t be further from the truth. <a href="https://youtu.be/C_0xBbEFjLk" target="_blank" rel="noopener noreferrer">He talks about durability and repairability in the age of subscriptions and enshitification</a>. </li>
<li>Liam Thompson is one of the few creators I&#39;ve continued to follow despite a sharp pivot in his videos. I find both his old and new stuff entertaining for different reasons. His newer videos are less quirky and more cinematic including the latest one where <a href="https://youtu.be/v3az0jXy1Yw" target="_blank" rel="noopener noreferrer">Liam Thompson visits Greece and follows his grandma&#39;s footsteps from 65 years ago</a>. It also helps that the music choice sets the mood rather nicely.</li>
<li><a href="https://youtu.be/5xdAfzCPGps" target="_blank" rel="noopener noreferrer">Why does China keep building stadiums around the world?</a> If you&#39;ve asked yourself that question before or are generally curious, then Sam Ellis has the answers for you. Turns out there might be some geo-political strings attached but it&#39;s more complex than that.</li>
</ul>
<h2 id="music">Music</h2>
<p>I don&#39;t have a specific new album to recommend but these were some of my most played songs: </p>
<ol>
<li>Durand Bernarr - My Life (<a href="https://youtu.be/i4l5U2X0_ic" target="_blank" rel="noopener noreferrer">Live perfomance</a>) - for the yearners ala 2000s R&amp;B.</li>
<li>Maya Amolo - Sweetest Time  (feat Ywaya Tajiri).</li>
<li>Fleetwood Mac - The Chain.</li>
<li>Luther Vandross - If Only for One Night.</li>
<li><a href="https://youtu.be/X2zcG3bcuMI" target="_blank" rel="noopener noreferrer">Nothing But Thieves - Amsterdam</a> - I always crank the volume up and sing out loud when this band comes on. </li>
<li>Zowie Kengocha - project (<a href="https://youtu.be/tJqaSgPuev0" target="_blank" rel="noopener noreferrer">A COLORS SHOW</a>).</li>
<li>Charisma &amp; Zaituni - Jaribu.</li>
</ol>
<h2 id="films-shows">Films &amp; Shows</h2>
<p>With August being a school holiday month in Kenya, most of the media I watched were either animated or part of the Marvel Universe (specifically SpiderMan films).</p>
<p>Films: </p>
<ul>
<li><a href="https://www.themoviedb.org/movie/1327819-hoppers" target="_blank" rel="noopener noreferrer">Hoppers (2026)</a> - this is one of the best recent Pixar movies. It is funny and heartwarming. It also made me think back to the various cases of different sonic weapons being used to deter individuals (including children) from certain areas based on our listening range (20 - 20,000 Hz).</li>
<li><a href="https://www.themoviedb.org/movie/1301421-the-sheep-detectives" target="_blank" rel="noopener noreferrer">The Sheep Detectives (2026)</a> - I enjoyed this more than I expected. It&#39;s quirky, clever and funny with an interesting story line. </li>
<li><a href="https://www.themoviedb.org/collection/573436-spider-man-spider-verse-collection" target="_blank" rel="noopener noreferrer">Spider-Man: Spider-Verse Collection</a> - I&#39;m not into the MCU but I ended up watching nearly all the Spider-Man films and my favourite were the two films in the Spider-Verse collection without a doubt. The animation style was amazing and not to forget the stellar soundtrack. I can&#39;t wait for the next film.</li>
</ul>
<p>Shows:</p>
<ul>
<li><a href="https://www.themoviedb.org/tv/270476-widow-s-bay" target="_blank" rel="noopener noreferrer">Widows Bay (2026)</a> - what can I say that hasn&#39;t been said? This is one of the best shows of the year based in a little quaint island town with an equally odd history and fears. Mayor Tom doesn&#39;t believe in all the supernatural stories he&#39;s heard and tries his best to revive the town. The film is soft-core horror with a touch of comedy and drama. </li>
<li><a href="https://www.themoviedb.org/tv/125988-silo" target="_blank" rel="noopener noreferrer">Silo (2023) Season 3</a> - Apple TV strike once again.  The season finale was amazing and the same goes for the entire season. The parallels of the present and the origins of the silo were amazing. Just watch the trailer and give the show a try.</li>
<li><a href="https://www.themoviedb.org/tv/329471-the-grand-tour" target="_blank" rel="noopener noreferrer">The Grand Tour (2026)</a> - following up on Jeremy Clarkson, Richard Hammond and James May is never easy but the new trio managed to create something true to them while honouring the roots of the show. I was skeptical of Francis Bourgeois before the show aired but he quickly became my favourite even though I was used to James and Thomas from the Throttle House. They simply did an amazing job. </li>
<li><a href="https://www.themoviedb.org/tv/260458-adults" target="_blank" rel="noopener noreferrer">Adults (2025) Season 2</a> - &quot;The show is very modern and queer, if you like shows about a group of friends experiencing random hijinks, give it a chance.&quot; That&#39;s someone&#39;s review on TMBD and they nailed it. The second season continues with the comedic vibe. The show had me cackling quite a lot. It also helps that the episodes are short (about 20 minutes each) making it easy to watch when you have a short break.</li>
<li><a href="https://www.themoviedb.org/tv/225171-pluribus" target="_blank" rel="noopener noreferrer">Pluribus (2025)</a> - The most miserable person on Earth must save the world from happiness. This will probably not work for everyone but if you like &quot;last man on earth&quot; shows then this is akin to that but more dystopian while trying to humanise a hive mind.</li>
</ul>
<p>I&#39;m just now realising that three of the shows are Apple TV originals and it makes sense. 
They are looking more and more like HBO with how they prioritise quality over quantity. 
And if you already pay for iCloud+ then it is a good time to watch the shows linked above now that <a href="https://www.icloud.com/en-sg/info/icloud-plus-tv-arcade" target="_blank" rel="noopener noreferrer">Apple TV is being bundled into iCloud+</a> at no extra cost in some countries including Kenya. </p>
<h2 id="podcasts">Podcasts</h2>
<ul>
<li>Jack Rhysider is an amazing storyteller and this time he&#39;s created <a href="https://thisislow.com/" target="_blank" rel="noopener noreferrer">LOW</a>. It&#39;s a five-part limited series following a young boy thrown into the deep end and the transformation he has to make in his survival journey.</li>
</ul>
<h2 id="others">Others</h2>
<ul>
<li><a href="https://delphi.tools/" target="_blank" rel="noopener noreferrer">delphitools</a> - a collection of small tools  running on your browser without needing an account. I quite like this a lot plus it also has a mobile app. I&#39;ve also seen a similar website in the form of <a href="https://candidtools.com/" target="_blank" rel="noopener noreferrer">Candid Tools</a>.</li>
<li><a href="https://neubrutalism.com/#" target="_blank" rel="noopener noreferrer">Neobrutalism</a> - super helpful guide to neobrutalism.</li>
<li><a href="https://neat-annotations.syabro.com/" target="_blank" rel="noopener noreferrer">neat-annotations</a> - simple little utility to add neat hand-drawn annotations (arrows and handwritten labels) to any page using purely CSS.</li>
</ul>
<hr>
<p>That’s all for this <strong>Dispatch</strong>. 
See you in October 🤞.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20September%202026%20Dispatch" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Links</category>
    </item>
    <item>
      <title>How to Set Up Trailarr</title>
      <link>https://neobrutalist.insidemordecai.com/trailarr-setup/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/trailarr-setup/</guid>
      <pubDate>Mon, 21 Sep 2026 11:22:52 GMT</pubDate>
      <description>Automating trailer downloads and management for my media library.</description>
      <content:encoded><![CDATA[<p>After <a href="https://neobrutalist.insidemordecai.com/audiobookshelf-setup/">setting up Audiobookshelf</a>, my media stack was pretty much complete. 
That was until I tried <a href="https://moonfin.io/" target="_blank" rel="noopener noreferrer">Moonfin</a> and realised trailers would be a nice addon. 
In another post, I might write on why Moonfin is my current favourite Jellyfin client for TV and how to set it up, but what it revealed to me is that I need high quality trailers on my server instead of the default low quality YouTube options it defaulted to.
Cue in Trailarr. </p>
<p>Having Radarr/Sonarr is a pre-requisite and if you have set them up, then this is going to be a piece of cake. </p>
<p>The first step is to create a <code>docker-compose.yml</code> file based on the <a href="https://nandyalu.github.io/trailarr/getting-started/02-installation/docker-compose/" target="_blank" rel="noopener noreferrer">official Docker Compose template</a> and adjusting it to match your setup. 
Read through the linked page to fully understand the available options. 
My current setup is this: </p>
<pre><code class="language-yml">services:
  trailarr:
    image: nandyalu/trailarr:latest
    container_name: trailarr
    environment:
      - TZ=${TZ}
    volumes:
      - ./appdata/trailarr:/config # For Trailarr&#39;s database and logs
      - ${DATA_VOLUME}/data:/data # Radarr &amp; Sonarr map
    ports:
      - &quot;7889:7889&quot; # Or choose a different host port if 7889 is taken, leave the right side as is
    networks:
      - stacknet
    restart: unless-stopped
</code></pre>
<p>In line with my previous posts,  <code>${DATA_VOLUME}</code> is the location in which my <code>/data</code> directory is located while <code>${TZ}</code> points to my timezone , both configured in a <code>.env</code> file. 
Additionally, <code>stacknet</code> is my custom shared network across different Docker stacks. </p>
<p>Beyond that the next steps, are as follows: </p>
<ul>
<li>Log into Trailarr (use the port set up in the Docker Compose file - 7889)  with <code>admin</code>  as the default username and <code>trailarr</code> as the default password. </li>
<li>Change the credentials. Need I not mention how important this is? You can do that under <strong>Settings → About</strong> then click on &#39;Update Login&#39; button.</li>
<li>Change preference to 4K trailers <strong>(Optional)</strong>. Trailarr comes with pre-configured profiles for both movies and TV series, and you can definitely use it as-is but I personally tweak it to prefer 4K trailers over 1080P . The benefit is it will fall back to 1440P or 1080P if 4K is unavailable. You can do this by going to <strong>Settings → Profiles</strong> and clicking into the two available profiles, scroll down to <em>Video</em> and pick 2160P under <em>Video Resolution</em>.</li>
<li>The final step is to connect it to Radarr and Sonarr. Head over to <strong>Settings → Connection</strong>, click on &#39;Add New&#39; and fill in the details in line with your setup then map your media paths. <ul>
<li>You can name it however you want and add as many different connections as you want for one specific service.</li>
<li>The API Key will be in <strong>Settings → General</strong> of the either Radarr or Sonarr</li>
<li>For my setup, the Radarr map is as such: <code>/data/media/movies</code> maps to <code>/data/media/movies</code> Trailarr path.</li>
</ul>
</li>
</ul>
<p>Trailarr should immediately start downloading missing trailers, just be patient depending on the size of your media library. </p>
<p>Et voilà!
You&#39;re trailer download automation is done. </p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://nandyalu.github.io/trailarr/" target="_blank" rel="noopener noreferrer">Trailarr Docs</a></li>
<li><a href="https://youtu.be/Hz31zWEtY5k" target="_blank" rel="noopener noreferrer">Missing Trailers? Set Up Trailarr on Unraid to Fix That!</a> - despite being on Unraid, this video helped a lot to visualise the setup.</li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20How%20to%20Set%20Up%20Trailarr" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Homelab</category>
      <category>Self-Hosting</category>
      <category>Trailarr</category>
    </item>
    <item>
      <title>Self-Hosting Audiobooks with Audiobookshelf and Docker</title>
      <link>https://neobrutalist.insidemordecai.com/audiobookshelf-setup/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/audiobookshelf-setup/</guid>
      <pubDate>Sun, 30 Aug 2026 19:26:48 GMT</pubDate>
      <description>Adding audiobooks to my homelab setup.</description>
      <content:encoded><![CDATA[<p>Like many people with the homelab itch, you&#39;ll inevitably want to self-host more and more applications. 
The challenge lies in striking a balance between self-hosting and using other solutions. 
One can easily spiral into hosting everything in their closet and struggling to maintain it when other great options are available.
That said, I occasionally get that itch.</p>
<p>My <a href="https://neobrutalist.insidemordecai.com/self-hosted-media-with-docker/">existing Docker media stack</a> already handled movies, TV shows, requests, subtitles, and playback through the <em>arr</em> applications and Jellyfin.
The only major thing missing was a way to self-host my Audiobooks. 
I had previously liberated my Audiobooks from Audible using <a href="https://getlibation.com/" target="_blank" rel="noopener noreferrer">Libation</a> years ago and so this was the next logical step. 
The first part was simply settling on the same folder structure as my films and TV shows where everything lives under <code>/data</code> on the host:</p>
<pre><code>data
├── torrents
│   ├── completed
│   └── incomplete
└── media
    ├── audiobooks
    ├── movies
    └── tv
</code></pre>
<p>I followed that by copying Audiobookshelf&#39;s <a href="https://audiobookshelf.org/docs/documentation/install/docker#docker-compose" target="_blank" rel="noopener noreferrer">docker-compose.yml template</a>,  tweaking it to match my setup (directory structure and network) and naming the container.</p>
<pre><code class="language-yml">services:
  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    ports:
      - 13378:80
    volumes:
      - ./appdata/audiobookshelf:/config
      - ./appdata/audiobookshelf/metadata:/metadata
      - ${DATA_VOLUME}/data:/data
    environment:
      - TZ=${TZ}
    networks: 
      - stacknet
    restart: unless-stopped
</code></pre>
<p>It is safe to simply use the same as a starter and change the variables I&#39;ve used.
In this instance, <code>${DATA_VOLUME}</code> is the location in which my <code>/data</code> directory is located while <code>${TZ}</code> points to my timezone, both configured in a <code>.env</code> file. </p>
<p>To safely expose my applications to the internet, I rely on Cloudflare&#39;s <code>cloudflared</code> tunnelling service. 
This lives in a separate Docker stack and as such I set up a custom shared network (named <code>stacknet</code>) to allow containers in different stacks to easily communicate with each other. 
I acknowledge a better solution might exist but this was the easiest for me to get going but I&#39;m open to suggestions. </p>
<p>Beyond this, the process is pretty straightforward in comparison to setting up Radarr or Sonarr. 
Simply fire up the container, set up your user account, and point to where your audiobooks (or podcasts) are. </p>
<p>When it comes to mobile applications, I haven&#39;t tried any on the Android side but I&#39;m sure a lot of options exist on there. 
On iOS, I currently use <a href="https://apps.apple.com/us/app/id6753017503?platform=iphone" target="_blank" rel="noopener noreferrer">AudioBooth</a> and I love it a lot. 
The app allows offline downloads, it&#39;s super customisable, and the UI is clean and at home on iOS. </p>
<p>And that is my Audiobooks setup with Audiobookshelf and Docker. </p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://audiobookshelf.org/docs/documentation/introduction" target="_blank" rel="noopener noreferrer">Audiobookshelf Official Documentation</a></li>
<li><a href="https://quannguyen.ca/setting-up-audiobookshelf/" target="_blank" rel="noopener noreferrer">Setting up a home instance of AudioBookShelf</a> by Rambles of Q</li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Self-Hosting%20Audiobooks%20with%20Audiobookshelf%20and%20Docker" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Audiobooks</category>
      <category>Audiobookshelf</category>
      <category>Docker</category>
      <category>Homelab</category>
      <category>Self-Hosting</category>
    </item>
    <item>
      <title>The Good Ol&apos; Days of 80-in-1 Discs</title>
      <link>https://neobrutalist.insidemordecai.com/good-ol-days-of-cds/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/good-ol-days-of-cds/</guid>
      <pubDate>Wed, 26 Aug 2026 17:24:12 GMT</pubDate>
      <description>A nostalgic reflection on CDs, and the media we lost and still remember.</description>
      <content:encoded><![CDATA[<p>In light of <a href="https://www.theverge.com/games/960212/sony-playstation-killing-discs-digital-preservation" target="_blank" rel="noopener noreferrer">Sony killing game discs</a>, I couldn&#39;t help but reminisce about the days when CDs were the dominant physical format for all forms of media.</p>
<p>One of my greatest regrets apart from <a href="https://neobrutalist.insidemordecai.com/save-the-cringe/">purging some of my old posts</a> is getting rid of a bunch of CDs in my possession.
I miss the music mostly, but some old films come to mind once in a while. 
I&#39;ve tried to recreate some playlists from memory, but I fear I was too young then to fully trust my memory.
A large chunk of it is lost to time, but I&#39;ve relived some in their digital format.</p>
<p><a href="https://www.themoviedb.org/movie/8920-garfield" target="_blank" rel="noopener noreferrer">Garfield (2004)</a> remains one of my favourite movies, and not because it&#39;s amazing but mostly because it was one of the first CDs I owned and watched over and over again.
I even think of the length of movies in terms of how many discs they used up.
<a href="https://www.themoviedb.org/movie/15121-the-sound-of-music" target="_blank" rel="noopener noreferrer">The Sound of Music (1965)</a> will forever be a three-disc movie, even if I watch it digitally.</p>
<p>Like many Kenyan households, I used to have a collection of discs of pirated media.
You&#39;d visit your favourite cyber cafe and have a killer playlist ripped onto a disc or grab the latest trending movie.
Heck, you&#39;d struggle to pick what to buy out of the many 80-in-1 CDs of glorious 360p movies squeezed onto them.
We didn&#39;t know any better, but enjoyed it nonetheless.
If you were privileged enough to have a home computer, you&#39;d toy around with burning CDs yourself.
I mean even our parents knew how to do that.
It&#39;s an indulgence that&#39;s altogether disappeared, for valid reasons, and a future &#39;story time&#39; moment of the good ol&#39; days (picture the &#39;old man yells at cloud&#39; meme).</p>
<p>Who knows, maybe one day I&#39;ll write about flash drives.
That&#39;s totally within the realm of possibility; I mean an eight-year-old kid recently asked me what they were when they found some of mine.
So yes, a future piece on the good ol’ days of flash drives is totally possible.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20The%20Good%20Ol'%20Days%20of%2080-in-1%20Discs" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Compact Discs</category>
    </item>
    <item>
      <title>July 2026 Dispatch</title>
      <link>https://neobrutalist.insidemordecai.com/july-2026-dispatch/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/july-2026-dispatch/</guid>
      <pubDate>Fri, 31 Jul 2026 12:30:20 GMT</pubDate>
      <description>A quick collection of what I watched, listened to, and read this month.</description>
      <content:encoded><![CDATA[<p>Welcome back to <strong>Dispatch</strong>, a personal roundup of videos, records, and anything that I found interesting this month. Think of <strong>Dispatch</strong> as my monthly mixtape from the internet with no real theme except “this was neat.”</p>
<h2 id="videos">Videos</h2>
<ul>
<li>I read Ghost In The Wire by Kevin Mitnick a long long time ago but that is easily the most borrowed book in my &quot;home library &quot; among my techie friends. Kevin is famous for phreaking in the 80s with fern describes him in this video as <a href="https://youtu.be/dNGUiWKn6Qs" target="_blank" rel="noopener noreferrer">the kid who hacked America</a>. </li>
<li>Christopher Nolan&#39;s <em>The Odyssey</em> has rightfully taken the internet by a storm and this is a great look into how a <a href="https://youtu.be/tN05nzk9oT8" target="_blank" rel="noopener noreferrer">projectionist handles 70mm film</a>. The process is quite intricate and very analog. Come to think of it, Nolan is singlehandedly ensuring such a profession remains active.</li>
<li><a href="https://www.youtube.com/@SpeeedCo" target="_blank" rel="noopener noreferrer">Speeed</a> has been described a a video version of a men&#39;s magazine and it&#39;s 100% true. In this video, James Pumphrey <a href="https://youtu.be/AdJkqGo_9Qk" target="_blank" rel="noopener noreferrer">breaks down wristwatches</a>: the vocabulary, how they work, the history, what to look out for. The video is quite interesting even for non-beginners.</li>
<li>Did you know that at some point most countries tried to agree on a road signs standard? If you&#39;re like me and aren&#39;t aware of that, then this video looks into <a href="https://youtu.be/MesMQ6t9ODM" target="_blank" rel="noopener noreferrer">why the world rejected the UN&#39;s road signs</a> and how they came to settle with what is currently in place. </li>
<li>Many people woefully underestimate <a href="https://youtu.be/xgj_lMeclNw" target="_blank" rel="noopener noreferrer">how much it takes financially to get into Formula 1</a>. It recently became clear that there is a Kenyan F4 racer seeking support from sponsors but a lot of online users (and friends) simply brushed it off because the kid is from one of the wealthiest families in the country. This video might shed a light for those new to the world of F1. </li>
<li>I often try to avoid videos that are even slightly political but <a href="https://www.youtube.com/@maxfisher" target="_blank" rel="noopener noreferrer">Max Fisher</a> has a great coverage of the fuel situation owing to the ongoing war in the Middle East. In this video, he shows how <a href="https://youtu.be/BkA0bkb6ZO0" target="_blank" rel="noopener noreferrer">China silently saved the world last month</a> staving off the projected fuel crisis.</li>
</ul>
<h2 id="films-shows">Films &amp; Shows</h2>
<ul>
<li><a href="https://www.themoviedb.org/movie/693134-dune-part-two" target="_blank" rel="noopener noreferrer">Dune: Part Two</a> - the holy war begins!!! After procrastinating the last couple of weeks, I finally watched this and enjoyed it very much, even more than the first film. I can&#39;t wait for Part Three to come out. It&#39;s also quite impressive that the entire trilogy is coming to an end soon considering most recent film franchises and especially shows take an eternity</li>
<li><a href="https://www.themoviedb.org/movie/286217-the-martian" target="_blank" rel="noopener noreferrer">The Martian</a> - The Odyssey joins this as yet another movie where Matt Damon tries to get back home.</li>
</ul>
<h2 id="articles">Articles</h2>
<ul>
<li><a href="https://danq.me/2026/07/02/you-dont-have-to-blog-like-me/" target="_blank" rel="noopener noreferrer">You don’t have to blog like me </a></li>
<li><a href="https://aniekemeumoren.substack.com/p/the-imposter-among-us" target="_blank" rel="noopener noreferrer">The Imposter Among US</a> - the author analogises imposter syndrome to the game <em>Among Us</em>.</li>
<li><a href="https://doserver.top/blog/i-want-my-friends-to-have-blogs-too/" target="_blank" rel="noopener noreferrer">I want my friends to have blogs too</a></li>
</ul>
<hr>
<p>That’s all for this <strong>Dispatch</strong>. 
See you in August 🤞.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20July%202026%20Dispatch" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Links</category>
    </item>
    <item>
      <title>My Spotify 20</title>
      <link>https://neobrutalist.insidemordecai.com/my-spotify-20/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/my-spotify-20/</guid>
      <pubDate>Thu, 30 Jul 2026 09:57:39 GMT</pubDate>
      <description>A quick look at my Spotify 20 stats</description>
      <content:encoded><![CDATA[<p>As many frequent readers of this site might know, I <a href="https://neobrutalist.insidemordecai.com/spotify-to-apple-music/">jumped ship to Apple Music from Spotify</a>.
Even so, I often keep up with changes to the app and even fire it up from time to time. </p>
<p>A few weeks back, I noticed Spotify was celebrating its <a href="https://newsroom.spotify.com/2026-05-12/spotify-20-personal-music-retrospective/" target="_blank" rel="noopener noreferrer">20th anniversary</a> with a version of Wrapped available. 
That piqued my curiosity enough that I wanted to write about my data but never got around to it. 
I simply downloaded the infographic and let it collect dust in my gallery... until today. </p>
<p>Consider this a dump of said graphic with a little extra context. </p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/my-spotify-20/img/spotify-20.webp" alt="A" loading="lazy" decoding="async"><figcaption>My Spotify 20 Infrographic</figcaption></figure>
<p>For those who&#39;ve come to know me, it&#39;s no surprise that Adele is my most-streamed artist. 
<em><a href="https://en.wikipedia.org/wiki/25_(Adele_album)" target="_blank" rel="noopener noreferrer">25</a></em> is the first album I ever listened to in its entirety in one sitting. 
Before that, I was a playlist kind of guy, listening mostly to singles, hits and recommendations. 
Beyond that, her music holds a dear place in my heart, so this data point wasn&#39;t new to me. </p>
<p>What surprised me was my first day using the service. 
For the life of me, I always thought it was around 2015 based on the early connections I made, but December 2017 makes more sense, coming just after I finished high school. </p>
<p>With no context from other people&#39;s data, the number of songs I&#39;ve listened to seems average to me.
The only explanation I have is that the app wasn&#39;t my primary way of listening to music until February 2021. 
That was when Spotify officially entered the Kenyan market, along with several other African countries. 
Fiddling with VPNs before that was fine, but too much of a hassle, so pirating was still the better option. </p>
<p>When it come to my first song, I have periods in my life when I jump back into Avicii&#39;s discography—today is one of them. 
The music video for <a href="https://youtu.be/6Lh7Zg8WXwU" target="_blank" rel="noopener noreferrer"><em>I Could Be The One</em></a> is crazy and fun, and I think that&#39;s all I can say. </p>
<p>And that&#39;s it.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20My%20Spotify%2020" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Spotify</category>
    </item>
    <item>
      <title>June 2026 Dispatch</title>
      <link>https://neobrutalist.insidemordecai.com/june-2026-dispatch/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/june-2026-dispatch/</guid>
      <pubDate>Tue, 30 Jun 2026 19:37:24 GMT</pubDate>
      <description>A quick collection of what I watched, listened to, and read this month.</description>
      <content:encoded><![CDATA[<p>Welcome back to <strong>Dispatch</strong>, a personal roundup of videos, records, and anything that I found interesting this month. Think of <strong>Dispatch</strong> as my monthly mixtape from the internet with no real theme except “this was neat.”</p>
<p>Last month I nearly didn&#39;t post my now monthly links roundup and this month was a struggle too, but for different reasons. 
I consumed (I hate the word but bare with me) a lot of interesting content to the point of finding it hard to whittle them down.
In the end I think I found a decent balance/compromise. </p>
<h2 id="videos">Videos</h2>
<ul>
<li>There are some channels that remind me of old Top Gear such as <a href="https://www.youtube.com/@CandyShowroom" target="_blank" rel="noopener noreferrer">Candy Showroom</a> and  this <a href="https://youtu.be/gZxqvJvfmoI" target="_blank" rel="noopener noreferrer">500 mile night race between a Bentley and a train</a> by ThatGuyGray easily scratches that itch. The host even seamlessly weaves in some history with great humour to cap it off. </li>
<li>Emily from Rabbit Hole describes this video as <a href="https://youtu.be/kL1PDqzqhM4" target="_blank" rel="noopener noreferrer">accidentally becoming the world expert on placeholder text Lorem Ipsum</a>. Her enthusiasm overflows and even the lovely guest and legend, Richard McClintock, appreciates it.</li>
<li>A group of scientists and enthusiasts <a href="https://youtu.be/-qPyBxLKMhg" target="_blank" rel="noopener noreferrer">tracked a meteorite and found it almost immediately</a>. It&#39;s also quite impressive how accurate their projection was especially in what seemingly is the middle of nowhere. </li>
<li>Australia is very strict when it comes to bio-security and this video probably plays a part. Some <a href="https://youtu.be/oYE9OwUzzeI" target="_blank" rel="noopener noreferrer">individuals planted an invasive species that became wild</a> laying stage for a battle between it and the country. It also helps that the video is amazingly produced akin to some of the greatest cinematic hits from your favourite directors while taking not so subtle jabs at Kevin O&#39;Leary (and other billionaires by extension) for his data centre obsession.</li>
</ul>
<h2 id="music">Music</h2>
<ul>
<li>I don&#39;t know how I never knew of the <a href="https://www.youtube.com/@DeviceOrchestra" target="_blank" rel="noopener noreferrer">Device Orchestra</a> YouTube channel earlier but this version of<a href="https://youtu.be/6jSGqVtudgI?si=9dW5Tj8oCLSMjEgY" target="_blank" rel="noopener noreferrer"> Toxic by Britney Spears </a>played by an epilator, 2 toothbrushes, 3 credit card machines, and 2 typewriters completely left me in awe and down the rabbit hole I went.</li>
<li><a href="https://youtu.be/t2FoxBZD3tI" target="_blank" rel="noopener noreferrer">Jacob Collier strikes again</a>.  He teams up with VSO School of Music Orchestra and like the mad scientist he is, he arranges an iconic song on the spot. The guy is just way too cool and talented.</li>
</ul>
<p>I also enjoyed these new-to-me albums: </p>
<ol>
<li>The Internet - Ego Death</li>
<li>Sade - Love Deluxe</li>
</ol>
<h2 id="films-shows">Films &amp; Shows</h2>
<ul>
<li><a href="https://www.themoviedb.org/tv/117648-clarkson-s-farm" target="_blank" rel="noopener noreferrer">Clarkson&#39;s Farm</a> - Jeremy continues to draw us into farming and this season was no different. The humour was amazing and the sense of community was heartwarming especially in the wake of sad news broken in the show. In the end I was even angry on behalf of Jeremy in regards to the handling of tuberculosis tests. Needless to say, this season ranks highly alongside the rest. </li>
<li><a href="https://www.themoviedb.org/movie/465914-if-beale-street-could-talk" target="_blank" rel="noopener noreferrer">If Beale Street Could Talk (2018)</a> - James Baldwin is one of my favourite authors and I enjoyed the source material last year. It details racism and the justice system. This is an impressive adaptation with some great acting especially from <a href="https://en.wikipedia.org/wiki/Regina_King" target="_blank" rel="noopener noreferrer">Regina King</a>.</li>
</ul>
<h2 id="books">Books</h2>
<p>A few posts back, I described my <a href="https://neobrutalist.insidemordecai.com/blind-faith-on-librarians/">experience buying a book blindly</a> from <a href="https://wineandspine.co.ke/" target="_blank" rel="noopener noreferrer">Wine &amp; Spine</a> and that totally paid off.
My colleague also bought a different book with no context and I gave that a go too. 
Those are the two books I read this month and they were both amazing.</p>
<ul>
<li><em>By the Sea</em> by Abdulrazak Gurnah (4 out of 5 stars) - this is the story of two men in a foreign land that stumble upon each other and discover they have a shared history. Latif Mahmud seeks clarity and explanations from Omar who was previously an acquaintance of his father back in Zanzibar. Their family history is heavy with different supposed acts of betrayal. I enjoyed the writing. It is beautifully descriptive with endless stories and anecdotes that seem to lead to nowhere but eventually matter.</li>
<li><em>Cursed Daughters</em> by Oyinkan Braithwaite (4.5 out of 5 stars) - I just finished this book and as such I haven&#39;t fully formed a coherent thought  but what I know for certain is I thoroughly enjoyed it. We follow a family that believe to have inherited a curse from one of their ancestors. They are destined to struggle in love and this supposed curse occasionally rears it&#39;s ugly head but is it really a curse or are they just in their head? Are they just not accepting fault and laying it squarely on a &quot;curse&quot;? As some to beat this &quot;curse&quot;, will they manage?</li>
</ul>
<h2 id="articles">Articles</h2>
<ul>
<li><a href="https://janerationx.me/posts/the-human-touch" target="_blank" rel="noopener noreferrer">The Human Touch</a> - &quot;When I blog, it’s because I want to rant, or share some thoughts, or talk about something that means a lot to me. I don’t get clicks or make money from ads. I don’t get hearts or shares. I write because I enjoy it. The way it was meant to be. Personal.&quot;</li>
<li><a href="https://norvilis.com/stop-making-ugly-apps-simple-tailwind-tricks-for-backend-developers/" target="_blank" rel="noopener noreferrer">Stop Making Ugly Apps: Simple Tailwind Tricks for Backend Developers</a> </li>
<li><a href="https://albertsikkema.com/ai/development/opinion/2026/06/15/why-diy-software-is-great-until-it-is-not.html?ref=labnotes.org" target="_blank" rel="noopener noreferrer">Why DIY Software Is Great Until It Is Not</a> - Albert beautifully analogises vibe coding with the DIY scene and dives deeper.</li>
</ul>
<hr>
<p>That’s all for this <strong>Dispatch</strong>. 
See you in July 🤞.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20June%202026%20Dispatch" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Links</category>
    </item>
    <item>
      <title>Can I Watch House of the Dragon Before Game of Thrones?</title>
      <link>https://neobrutalist.insidemordecai.com/start-with-house-of-the-dragon/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/start-with-house-of-the-dragon/</guid>
      <pubDate>Wed, 24 Jun 2026 11:44:31 GMT</pubDate>
      <description>A personal case for beginning with House of the Dragon.</description>
      <content:encoded><![CDATA[<div>
  <div style="border:2px solid #101314;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em">TL;DR</p><p>This is my backstory on the <em>Game of Thrones</em> franchise but more like a nudge and a validation that one can get into the franchise through <em>House of The Dragon</em> without prior knowledge and simply get hooked.</p>
</div>
</div>
<p>By the end of this, I will answer the title question and shed light on whether one should do so or not. </p>
<p>For a long time I was a huge <em>Game of Thrones</em> snob. 
My experience of the show was filled with myths and failed attempts at watching it. </p>
<p>The medieval look was not my vibe. 
Whispers were told that each episode was over an hour long with each season having 20+ episodes. 
Unlike others, I don’t crave for shows with a huge backlog. 
A perfect balance is what I desire. 
On top of that, the first episode didn’t resonate with me back then. </p>
<p>With time, the inaccurate information and the myths were debunked.
The first season of <em>House of the Dragon</em> dropped. 
My favourite Formula 1 driver, Lewis Hamilton, even raved about the show during some of the boring races of 2022.
I still didn&#39;t care for series, however, at least I knew the show preceded GOT and a part of me liked that. </p>
<p>The HOTD season two marketing coupled with a friend&#39;s incessant nudges worked wonders.
My mind was changed. 
I made a deal with myself that I would consider watching the main series if I liked the new show. 
With that, I ventured into the prequel.</p>
<p>I would be lying if I said I liked or loved the show. 
That would be a gross understatement of my situation. 
I thoroughly enjoyed my foray into the franchise. 
The eight weeks that followed as season two aired were some of my personal best moments in modern entertainment.
I woke up every Monday morning quite expectant for what this new world would present.</p>
<p>Anyway, despite the season being more of a chess game laying pieces for what we are witnessing now as season three airs, my hunger for more needed to be quenched. 
And that’s how I managed to binge the entirety of <em>Game of Thrones</em> in about a week.
I loved it flaws and all.
My obsession went to the extent of watching a million and one reaction videos, basing my online identity around the franchise for a hot minute, reading <em>A Knight of the Seven Kingdom</em> before the show and getting the <em>Fire &amp; Blood</em> audiobook.</p>
<p>Did I miss anything by starting with <em>House of the Dragon</em>?
Definitely. 
I probably didn&#39;t have the strongest reaction to the names of certain families nor their significance. 
The Song of Ice and Fire prophecy didn&#39;t hit right.
And perhaps a few more things.
Nonetheless, I would still start with the prequel.
I think of it as two stories years apart taking place in the same world, one focuses on a single family and dragons while the other ventures beyond that.</p>
<p>So... while <em>House of the Dragon</em> and <em>Game of Thrones</em> can both be watched on their own, I would recommend starting with <em>Game of Thrones</em> if you have no hang-ups about it.
But if the main series has never appealed to you, <em>House of the Dragon</em> is a solid place to begin and might be the door into Westeros you needed.
Either way, pick one and get lost in the world of Westeros.
At the end of the day, this is entertainment.
Just choose what pulls you in first.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Can%20I%20Watch%20House%20of%20the%20Dragon%20Before%20Game%20of%20Thrones%3F" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Game of Thrones</category>
      <category>House of the Dragon</category>
    </item>
    <item>
      <title>On  the Semantics of Terms in the Queer Community</title>
      <link>https://neobrutalist.insidemordecai.com/homosexual-queer-semantics/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/homosexual-queer-semantics/</guid>
      <pubDate>Wed, 17 Jun 2026 18:46:18 GMT</pubDate>
      <description>A reflection on language, identity, and the weight certain words carry.</description>
      <content:encoded><![CDATA[<p>With it being Pride month in certain parts of the world, I&#39;ve found myself, at times, discussing the LGBTQ+ community with some friends.</p>
<p>Earlier today, my mind couldn&#39;t help but wander. 
I pondered the semantics of the word &quot;homosexual&quot;.
I barely use that word but I&#39;ve never bothered to question myself until today. 
To me, the term feels quite derogatory. </p>
<p>In Kenya, public debate around LGBTQ+ issues remains heavily charged. 
I mostly encounter the word in news coverage when tied to hateful rhetoric, criminalisation, and conflict.
In my opinion, that in itself might be the reason the word has a negative connotation.
Additionally, it sounds way too formal and clinical, with it&#39;s major use case being legal documents and medical contexts. </p>
<p>On the other hand, the term &quot;queer&quot; is used less locally. 
Perhaps that is why I find myself gravitating to it. 
It feels safer to lean on and use it. 
It has an element of community tied to it.
It has been reclaimed by many LGBTQ+ people from it&#39;s rocky past. 
Despite that, there are certain circles that are still uncomfortable with it but surely it&#39;s better than the H-word.</p>
<p>&quot;Queer&quot; is more inclusive as an umbrella term. 
It wholly embraces the fluidity of gender and sexuality. </p>
<p>Certain camps still dislike this term and as such the safest option would be using gay, lesbian, bisexual, trans or LGBTQ+ when those are more precise.
In this case, specificity is more respectful if you know how someone identifies. </p>
<p>Anyway, with this idea taking a huge part of my morning, I did a little research.
I wanted to see if anyone else was quite pedantic about the semantics of those two terms. 
My research confirmed my suspicion, but I&#39;m not here to gloat.
Quite the contrary, I wanted to share my train of thought. 
Crucially, though, I found some interesting articles that would help someone explore this further.</p>
<ul>
<li><a href="https://www.dictionary.com/articles/lgbtq-terms" target="_blank" rel="noopener noreferrer">A Language of Pride: The Terms Around LGBTQ+ Identity</a> - this is very detailed and if you wanted to read only one resource, this would be it.</li>
<li><a href="https://glaad.org/reference/terms#&amp;_intcmp=fnc_media_article_main-content_article-body_6_2" target="_blank" rel="noopener noreferrer">Glossary of Terms: LGBTQ </a> by GLAAD.</li>
<li><a href="https://www.apa.org/pi/lgbt/resources/language" target="_blank" rel="noopener noreferrer">Avoiding Heterosexual Bias in Language</a> by the American Psychological Association.</li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20On%20%20the%20Semantics%20of%20Terms%20in%20the%20Queer%20Community" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>LGBTQ+</category>
    </item>
    <item>
      <title>When Is Corporate Greed Too Much? Microsoft Breaks Office for Mac</title>
      <link>https://neobrutalist.insidemordecai.com/microsoft-breaks-office-mac/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/microsoft-breaks-office-mac/</guid>
      <pubDate>Wed, 10 Jun 2026 10:33:33 GMT</pubDate>
      <description>Microsoft is killing a perpetual product and that is worrying.</description>
      <content:encoded><![CDATA[<p>In the past few days, Microsoft announced that it would <a href="https://support.microsoft.com/en-us/office/end-of-support-for-office-2019-for-mac-f2cbba0a-0773-4b2c-b417-b20b5bb2c757" target="_blank" rel="noopener noreferrer">end the support of Office for Mac</a>. 
That seems all fine and dandy but there is a huge problem if you look deeper into this. 
Beyond 13th July 2026, folks who bought Office 2019 for Mac will have the entire suite of applications enter reduced functionality mode limiting their capability to only viewing documents.</p>
<p>At what point is corporate greed too much? </p>
<p>Microsoft are effectively killing Office 2019 for Mac (and older versions of Office 2021) despite users making one-time payments for it. 
With such a purchase, I expect the office suite to continue getting updates during its period of support, but crucially, remain functional beyond that time frame. 
Look at Windows 10, despite it being end-of-life (EOL), it continues working like a normal operating system. 
But here&#39;s the same company nuking a product and nudging the same people towards another perpetual licence — Office 2024 — that might suffer the same fate.
They&#39;re also steering customers towards a subscription in the form of Microsoft 365. 
That&#39;s the epitome of greed. </p>
<p>I&#39;ve worked in Sales before and I know companies depend on Monthly Recurring Revenue (MRR), however, at the scale of Microsoft you&#39;d imagine this isn&#39;t a huge problem. 
The literally print cash in other sectors, but no, they had to go after something people bought expecting to work forever.</p>
<p>What&#39;s worse is they&#39;re blaming certificates on their decision but there lies the fix. 
They simply need to renew them. 
Also, can&#39;t the office suite work without it? 
Can&#39;t they update it to not be dependent on a certificate for license validation?
I mean I&#39;ve witnessed  old airtight computers that had to use Office 2007 and 2013, and their setup worked flawlessly without phoning home. 
Unless I&#39;m missing something here, in which case someone smarter should reach out and shed light on this matter. </p>
<p>Anyway, the news has sparked some discussion online and I&#39;ve seen my fair share of differing views. 
There are some folks saying the affected users should simply switch to Google Docs, Apple iWork, <a href="https://www.libreoffice.org/" target="_blank" rel="noopener noreferrer">LibreOffice</a>, <a href="https://www.onlyoffice.com/" target="_blank" rel="noopener noreferrer">OnlyOffice</a> and other options but that&#39;s besides the point. </p>
<p><strong>If you buy a perpetual license, it should work <em>in perpetuity</em></strong>.
Microsoft nerfing the product is basically stealing what the customer bought. 
It&#39;s borderline fraudulent and sets a dangerous precedent that other companies might emulate. </p>
<p>They are pushing their customers so hard while actively tarnishing their already fragile reputation.
It&#39;s reached a point where it makes sense to sail the high seas, consider alternatives and even boycott the company altogether. 
I sure hope someone takes legal action on this, or that somehow Microsoft reneges on their decision.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://youtu.be/2zpCOYkdvTQ" target="_blank" rel="noopener noreferrer">Dr. Adrian Mallard (John Malkovich) &quot;Fuck Microsoft&quot; Scene on Space Force (Netflix)</a> - well this scene continues being relevant.</li>
<li><a href="https://youtu.be/KRnno9VIZx0" target="_blank" rel="noopener noreferrer">Microsoft revokes Office 2019 perpetual licenses, then edits their website to gaslight customers</a> - Louis Rossman goes over this announcement and how Microsoft quietly made changes to their initial end of support statement from October last year.</li>
<li><a href="https://consumerrights.wiki/w/Microsoft_Office_2019_and_2021_for_Mac_view-only_conversion_(2026)" target="_blank" rel="noopener noreferrer">Microsoft Office 2019 and 2021 for Mac view-only conversion (2026)</a> on the Consumer Rights Wiki.</li>
<li><a href="https://learn.microsoft.com/en-us/microsoft-365-apps/mac/certificate-update-mac-ios" target="_blank" rel="noopener noreferrer">Certificate update for Microsoft 365 apps on managed macOS and iOS devices</a> - in case you need extra information on the certificates issue.</li>
<li><a href="https://jimmytechsf.com/blog/office-2019-mac-disabled-july-2026" target="_blank" rel="noopener noreferrer">Microsoft is disabling Office 2019 for Mac on July 13, 2026</a> by JimmyTech.</li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20When%20Is%20Corporate%20Greed%20Too%20Much%3F%20Microsoft%20Breaks%20Office%20for%20Mac" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Microsoft</category>
      <category>Microsoft Office</category>
    </item>
    <item>
      <title>May 2026 Dispatch</title>
      <link>https://neobrutalist.insidemordecai.com/may-2026-dispatch/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/may-2026-dispatch/</guid>
      <pubDate>Sun, 31 May 2026 18:18:48 GMT</pubDate>
      <description>A quick collection of what I watched, listened to, and read this month.</description>
      <content:encoded><![CDATA[<p>Welcome back to <strong>Dispatch</strong>, a personal roundup of videos, records, and anything that I found interesting this month.
Think of <strong>Dispatch</strong> as my monthly mixtape from the internet with no real theme except “this was neat.”</p>
<p>For a moment I considered skipping this Dispatch.
I had only saved most of these links but not described them which seemed like a tedious task. 
This meant I had to quickly skim some of the older links to jog my memory and avoid inaccurate descriptions. 
For one, I&#39;ve learnt that I need to write a quick note for every single recommendation at the point of saving.</p>
<h2 id="videos">Videos</h2>
<p><a href="https://youtu.be/AZPq1m4Ikg4" target="_blank" rel="noopener noreferrer">The BLUETOOTH CONNECTED Voice Actors</a> - almost each one of us has heard of the classic &quot;zee bluetooth device is connected successfully&quot; and I really thought this video was about that voice actor but I was still equally impressed and left wondering if I can get in on the voice acting act. </p>
<p><a href="https://youtu.be/zK1CEXl1x-w" target="_blank" rel="noopener noreferrer">Why You Can&#39;t (Quite) Take a Train Across Africa</a> - a bit of South African history primarily about Cecil Rhodes and why I think he deserves even more hate but predominantly about the difficulty of traversing the vast continent from Cape Town to Cairo. </p>
<p><a href="https://youtu.be/b4vPF2wiqpI" target="_blank" rel="noopener noreferrer">Why Do the BEST Singers Always End Up Being British?</a> - this is something I&#39;ve noticed before but never thought to look into it. I think someone should make a video about British actors too. </p>
<p><a href="https://youtu.be/i_qy52fplBE" target="_blank" rel="noopener noreferrer">How Bicycle Helmets Are Engineered to Protect Your Brain</a> - this is one of those topics I didn&#39;t know I was curious about but ended up being fully engrossed about the video especially with the direct and practical presentation style of the presenter.</p>
<h2 id="music">Music</h2>
<p><a href="https://youtu.be/GSKF-4jBJ-w" target="_blank" rel="noopener noreferrer">&#39;Human Nature&#39; - Jan&#39;s Collective Live (feat. Josh Babu) </a>- Michael Jackson and I might be the only people who haven&#39;t watched his movie but my YouTube feed has been full of MJ related content. This orchestral arrangement of <em>Human Nature</em> is particularly impressive and beautifully done.</p>
<p>In other news, I&#39;ve discovered <a href="https://www.genesisowusu.com/" target="_blank" rel="noopener noreferrer">Genesis Owusu</a> through <a href="https://www.abc.net.au/triplej" target="_blank" rel="noopener noreferrer">triple j</a> from his <a href="https://youtu.be/wcswg-Y9aEo" target="_blank" rel="noopener noreferrer">&#39;Paint It, Black&#39; cover</a>.  And so far I&#39;m loving his discography including the few songs I&#39;ve heard from his new album such as <em>STAMPEDE</em> and <em>RUNNIN OUTTA TIME</em>.</p>
<h2 id="books">Books</h2>
<p>I haven&#39;t finished a single book this month but I realised I didn&#39;t mention my favourite book from April. <em>Swimming in the Dark</em> by Tomasz Jedrowski was a beautiful read and I don&#39;t I can describe it any better than how I did on my Goodreads review: &quot;A quiet, aching book about forbidden love in Communist Poland, where the personal and political are impossible to untangle. The central moral dilemma hangs over every page. To betray your lover or country. The story is told in the past tense and addressed to Janusz meaning we get the sense of loss and feel the darkness from the first page. The prose is beautiful and vivid despite the bleakness of the world it describes. This is deeply moving and hard to put down.&quot;</p>
<h2 id="articles">Articles</h2>
<p><a href="https://robertbirming.com/how-kill-blog/" target="_blank" rel="noopener noreferrer">How to kill a blog</a> - for all the bloggers out there and those who want to join the want, please don&#39;t go niche. </p>
<p><a href="https://robertbirming.com/dont-reject-yourself/" target="_blank" rel="noopener noreferrer">Don&#39;t reject yourself</a> - in a similar fashion to the article above, just hit the publish button for the draft you have. Some of us as perfectionists but it gets to a point where you just have to release something </p>
<p><a href="https://robotpaper.ai/software-engineering-practices-are-also-useful-for-token-reduction" target="_blank" rel="noopener noreferrer">Software Engineering Practices (are also) Useful for Token Reduction</a> - this is a clear reiteration on the importance of minimisation and maintaining good software engineering practices even more so with agents.</p>
<p><a href="https://www.chrbutler.com/signals-002-frame-vs-framer" target="_blank" rel="noopener noreferrer">Signals #002: The Frame vs. The Framer</a> - i consider this a hopeful food for thought for anyone who dreads an AI apocalypse. Christopher explores how AI benchmarks and automation operate inside human-defined constraints, so the deeper human role remains intact.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20May%202026%20Dispatch" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Links</category>
    </item>
    <item>
      <title>Blind Faith on Librarians</title>
      <link>https://neobrutalist.insidemordecai.com/blind-faith-on-librarians/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/blind-faith-on-librarians/</guid>
      <pubDate>Tue, 19 May 2026 15:29:17 GMT</pubDate>
      <description>A bookshop, a reading slump, and a unfamiliar recommendation.</description>
      <content:encoded><![CDATA[<p>For most of this year, I&#39;ve travelled every Thursday to and fro Nanyuki for work. 
That is exciting on it&#39;s own. 
But... on our first trip there, we had about an hour to spare before the business of the day and so we stopped by a mall for a quick snack and chill. 
That was the best idea cause we soon spotted that the mall has a bookshop and the readers among us had their interest piqued. </p>
<p>The place was called <a href="https://wineandspine.co.ke/" target="_blank" rel="noopener noreferrer">Wine &amp; Spine</a>. 
First of all what a name!
Full props to the guy or girl that came up with that name, I wish I had so.
However, the shop was a bit pricey. 
Actually not even that pricey, it&#39;s just that some of us are used to thrifted books and even ebooks (aargh).
I can&#39;t fault the vibes though, it was immaculate.</p>
<p>I got myself a copy of <em>Kafka on the Shore</em> by Haruki Murakami and I totally blame that book for my recent reading slump. 
I have a thing where I find it difficult to pick up a book upon completing something amazing. 
That was the case with my first foray into Haruki Murakami&#39;s work. </p>
<p>I tried <em>East of Eden</em> by John Steinbeck and other classics, resumed a book I had abandoned but nothing scratched my reading itch. 
The only thing that came close was <em>The Girl with the Louding Voice</em> by Abi Daré which I have been slowly reading.
The reason I say &#39;it comes close&#39; is I find the broken English writing style a bit jarring despite that being the point of the writing, but the story is interesting so far. </p>
<p>And so... I was a bit excited when my weekly trips to Nanyuki returned cause Lord knows I needed a recommendation. </p>
<p>The lovely lady at Wines &amp; Spine was welcoming as always. 
She could tell I was undecided as usual. 
I wanted every single book on there. 
I thought of getting <em>Another Country</em> by James Baldwin who&#39;s one of my favourite authors. 
However, she shed a light on the fact that classics might not be the best cure to my reading slump.
I hadn&#39;t thought of but it makes sense seeing I had tried a bunch of classics but only Abi Daré&#39;s book, not a classic, could tickle my fancy. 
My criteria before was looking for shorter reads forgetting that the same type of book in a shorter format was still the type of book I didn&#39;t need. 
Truly a lapse of judgement on my part. </p>
<p>Anyway, once again I walked away with a book in hand, this time from an author I didn&#39;t know and a book I had no idea of. 
Total blind faith on this lady. 
I was torn between <em>Theft</em> by Abdulrazak Gurnah and my eventual pick by the same author. 
Her other recommendations were <em>Augustown</em> by Kei Miller and <em>Dance of The Jacaranda</em> by Peter Kimani but perhaps they were not the right medicine for my problem according to the doctor.
Eventually, I settled on <em>By the sea</em> by Abdulrazak Gurnah mostly based on the blurb at the back but also it being cheaper than <em>Theft</em> 😂.</p>
<p>I write this a few days after purchasing that book and I gotta say I love it so far. 
I don&#39;t want to make this a book review but I enjoy the subject matter and the writing style. 
Abdulrazak&#39;s words make me want to savour the book slowly with no rush whatsoever. </p>
<p>So what&#39;s the point of writing all this? 
I don&#39;t exactly know but perhaps a need to urge you all, readers and wannabe readers, to place your faith on a librarian or an avid reader for your next read. 
Pop into a bookshop or library near you, mention your interests, lay bare your current situation and await a recommendation. 
Perhaps, you might get a banger like I did.
If not, then at least their future recommendation will be more precise and better.</p>
<p>This could also apply to other forms of media, so get out there for more human recommendations.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Blind%20Faith%20on%20Librarians" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Books</category>
      <category>Reading</category>
    </item>
    <item>
      <title>April 2026 Dispatch</title>
      <link>https://neobrutalist.insidemordecai.com/april-2026-dispatch/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/april-2026-dispatch/</guid>
      <pubDate>Thu, 30 Apr 2026 20:01:56 GMT</pubDate>
      <description>A quick collection of what I watched, listened to, and read this month.</description>
      <content:encoded><![CDATA[<p>Welcome back to <strong>Dispatch</strong>, a personal roundup of videos, records, and anything that I found interesting this month. 
Think of <strong>Dispatch</strong> as my <em>hopefully</em> monthly mixtape from the internet with no real theme except “this was neat.”</p>
<h2 id="videos">Videos</h2>
<p><a href="https://youtu.be/hKTdEYRXbPQ" target="_blank" rel="noopener noreferrer">This School Is Now our Family Home… Come Inside!</a> - Renovation videos scratch my home design itch and this does that very well. The house has a charm that most modern houses lack and the owner made some amazing design choices while actively honouring the house&#39;s past as a school. </p>
<p><a href="https://youtu.be/8E53NelYsqw" target="_blank" rel="noopener noreferrer">What do you do when life gives you a million lemons?</a> - South of France is undoubtedly beautiful but add a lemon (yes, the citrus fruit) festival to it with a Luke O&#39;Sullivan twist and that makes for an interesting video. </p>
<p><a href="https://youtu.be/rjxAYdUe8uU" target="_blank" rel="noopener noreferrer">Something very weird is happening on Tinder</a> - Christophe investigates why more and more dating profiles look normal up until you hit the last photo. The rabbit holes leads down to potential scams. </p>
<p><a href="https://youtu.be/LOL2c2UIjv4" target="_blank" rel="noopener noreferrer">CHINA - Why did I not know China was like this?</a> - who doesn&#39;t love a hidden gem? This easily makes China climb up my travel wish list. </p>
<h2 id="music">Music</h2>
<p><a href="https://youtu.be/niuxr0QqMSg" target="_blank" rel="noopener noreferrer">2500 Montréalers sing L. Cohen’s “Hallelujah” in perfect harmony at Place Des Arts</a> - It’s quite amazing what a bunch of people can do in a choral setup with minimal practice. </p>
<p>The only new full length album I listened to and really liked was WOR$T GIRL IN AMERICA by Slayyyter. 
A friend of mine put me on <a href="https://youtu.be/TZCE6PfaUWA" target="_blank" rel="noopener noreferrer">CRANK</a> and thank heavens they did cause the entire album is funky, ravey and stank-faceable. 
CRANK IT (UH).</p>
<h2 id="films-shows">Films &amp; Shows</h2>
<p>I absolutely loved these shows that had their season finales air in April:</p>
<ol>
<li><a href="https://www.themoviedb.org/tv/136311-shrinking" target="_blank" rel="noopener noreferrer">Shrinking</a> - tender is the word.</li>
<li><a href="https://www.themoviedb.org/tv/95557-invincible" target="_blank" rel="noopener noreferrer">Invincible</a> - they still need to improve the animation style but what a story.</li>
<li><a href="https://www.themoviedb.org/tv/125935-abbott-elementary" target="_blank" rel="noopener noreferrer">Abbott Elementary</a> - thank the Lord for mockumentary shows. </li>
<li><a href="https://www.themoviedb.org/tv/224372-a-knight-of-the-seven-kingdoms" target="_blank" rel="noopener noreferrer">A Knight of the Seven Kingdoms</a> - this is the only one I didn&#39;t watch this month but since Dispatch didn&#39;t even exist when it aired, I&#39;ll make the exception. The show is a great relaxed prequel to Game of Thrones following Dunk &amp; Egg (think Pod &amp; Tyrion) while closely resembling the books. It remains my favourite show of the year... so far at least.</li>
</ol>
<p>While I also enjoyed these movies: </p>
<ul>
<li><a href="https://www.themoviedb.org/movie/337404-cruella" target="_blank" rel="noopener noreferrer">Cruella (2021)</a></li>
<li><a href="https://www.themoviedb.org/movie/438631-dune" target="_blank" rel="noopener noreferrer">Dune (2021)</a> - I finally gave in and fell head over heels . My initial thought was I&#39;d watch in bits just due to the sheer length of the film and my time back then but I ended up watching it in one seating. I&#39;ll definitely get to the second part soon  in anticipation of the third.</li>
</ul>
<h2 id="podcast">Podcast</h2>
<p><a href="https://www.pushkin.fm/podcasts/big-lives/george-michael-beyond-the-scandal-behind-the-icon" target="_blank" rel="noopener noreferrer">George Michael: Beyond the Scandal, Behind the Icon</a> -  The hosts cover star behind &quot;Careless Whisper&quot; beyond the headlines and scandals. They describe is as &quot;a moving reexamination of fame, queerness, and survival in a decade that preferred not to look too closely&quot; and I couldn&#39;t agree more. This podcast is quickly becoming one of my favourites, and some other amazing episodes for me are that of <a href="https://www.pushkin.fm/podcasts/big-lives/amy-winehouse-the-price-of-being-honest" target="_blank" rel="noopener noreferrer">Amy Winehouse</a> and <a href="https://www.pushkin.fm/podcasts/big-lives/sir-david-attenborough-the-voice-of-the-natural-world-turns-100-from-big-lives" target="_blank" rel="noopener noreferrer">Sir David Attenborough</a>. </p>
<h2 id="articles">Articles</h2>
<p><a href="https://kevquirk.com/how-i-discover-new-blogs" target="_blank" rel="noopener noreferrer">How I Discover New Blogs</a> - I&#39;ve been asked this question more than once before and Kev very nicely answers it. I love it when bloggers link to other posts/blogs in their post and that&#39;s my primary method of discovery. </p>
<hr>
<p>That’s all for this month’s <strong>Dispatch</strong>. 
See you in May 🤞.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20April%202026%20Dispatch" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Links</category>
    </item>
    <item>
      <title>How I Migrated from Google Photos to iCloud Photos</title>
      <link>https://neobrutalist.insidemordecai.com/google-photos-to-icloud/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/google-photos-to-icloud/</guid>
      <pubDate>Tue, 21 Apr 2026 18:31:41 GMT</pubDate>
      <description>Surprisingly, getting my photos and their metadata out of Google and into iCloud is not simple.</description>
      <content:encoded><![CDATA[<div>
  <div style="border:2px solid #101314;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em">TLDR</p><p>First of all, check out if you have the <a href="https://support.apple.com/en-us/120924" target="_blank" rel="noopener noreferrer">official Google Photos to iCloud Photos</a> option available in <a href="https://takeout.google.com/" target="_blank" rel="noopener noreferrer">Google Takeout</a>.
If not, then try out <a href="https://github.com/garzj/google-photos-migrate" target="_blank" rel="noopener noreferrer">google-photos-migrate</a> for a simple way to merge your Takeout metadata files and the images.</p>
</div>
</div>
<p>After years and years of Apple bugging me to upgrade to iCloud+, I finally jumped ship. 
The logical next step was to migrate from Google Photos to iCloud Photos. 
But let me tell you Maina, the process was not easy. </p>
<p>I knew I would likely need to get my data from <a href="https://takeout.google.com/" target="_blank" rel="noopener noreferrer">Google Takeout</a> and so I did. 
The process was straightforward despite Google seemingly never updating that page. 
In all honesty, the UX could be improved, and finding that page in the first place is its own challenge.
It honestly feels buried on purpose.</p>
<p>Anyway, I downloaded my photos and that&#39;s when I discovered every image file had a separate JSON file associated with it. 
Turns out the images didn&#39;t have any metadata embedded in them and if I were to upload them as-is, all the images would show as being from the day of the download.
The actual metadata was being stored in the JSON file. 
What a pain in the a- </p>
<p>However, I discovered there is an <a href="https://support.apple.com/en-us/120924" target="_blank" rel="noopener noreferrer">official migration</a> option but lo and behold, Google didn&#39;t offer it to me. 
I had to figure out how to somehow merge my photos and the metadata files. 
So it was back to the drawing board. </p>
<p><a href="https://exiftool.org/" target="_blank" rel="noopener noreferrer">ExifTool</a> emerged as the best option through my quick research with this <a href="https://legault.me/post/correctly-migrate-away-from-google-photos-to-icloud" target="_blank" rel="noopener noreferrer">article</a> from Mathieu Legault (and others) shedding light on it. 
I didn&#39;t end up using the guide because once again, Google did what they do best. 
They changed the metadata naming scheme with no backward compatibility, and somehow introduced filename inconsistencies too. </p>
<p>I wasn&#39;t the only one in this boat, so it was only a short time before I stumbled upon <a href="https://blog.rpanachi.com/how-to-takeout-from-google-photos-and-fix-metadata-exif-info" target="_blank" rel="noopener noreferrer">an elegant solution</a> by Rodrigo Panachi. 
He had a simple Ruby script to fix the filenames before using ExifTool.
That gave me the idea that perhaps there may be newer scripts out there that did everything. </p>
<p>That&#39;s when I found what I was looking for, a tool called <a href="https://github.com/garzj/google-photos-migrate" target="_blank" rel="noopener noreferrer">google-photos-migrate</a>.
It could do exactly what I wanted. 
It resolves the filename issue, finds duplicates, moves errored images to a separate folder, and of course corrects the photo metadata.
The hassle afterwards is that if you already had some images on iCloud Photos, it would take some time for duplicates to surface and even longer to accurately recognise faces or even recognise them at all. </p>
<p>But at least all your photos AND their metadata finally made it to your new home. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20How%20I%20Migrated%20from%20Google%20Photos%20to%20iCloud%20Photos" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Updates</category>
      <category>Google Photos</category>
      <category>iCloud Photos</category>
    </item>
    <item>
      <title>March 2026 Dispatch</title>
      <link>https://neobrutalist.insidemordecai.com/march-2026-dispatch/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/march-2026-dispatch/</guid>
      <pubDate>Tue, 31 Mar 2026 12:23:45 GMT</pubDate>
      <description>A quick collection of what I watched, listened to, and read this month.</description>
      <content:encoded><![CDATA[<p>A lot of individuals on the &quot;indie web&quot; have a periodic dump of links and I always find them cool, so why shouldn&#39;t I give it a try? 
Hopefully this series won&#39;t be the only thing I post on this website. </p>
<p>So... welcome to <strong>Dispatch</strong>, a personal roundup of videos, records, and anything that I found interesting this month.
Think of <strong>Dispatch</strong> as my <em>hopefully</em> monthly mixtape from the internet with no real theme except “this was neat.”</p>
<h2 id="videos">Videos</h2>
<p><a href="https://youtu.be/If-XGaHZSts" target="_blank" rel="noopener noreferrer">I made a SPACE MOVIE 🚀 without leaving my apartment</a> - That is not clickbait, Caroline Klidonas did just that. This is a quirky video that will have you smiling.</p>
<p><a href="https://youtu.be/0f3RMYTCvMU" target="_blank" rel="noopener noreferrer">Why the internet hates my surname</a> - Luke O&#39;Sullivan goes into an issue he faces with his second name on the internet and boy do I relate. It&#39;s annoying that some modern systems still have issues or arbitrary restrictions when it comes to special characters. </p>
<p><a href="https://youtu.be/xOjOiIXO1P4" target="_blank" rel="noopener noreferrer">The Novel Technologies Of Singapore&#39;s Library System</a> - Whoever titled this clearly had a blast and they deserve an award for enthusiasm. This is an interesting behind the scenes of a highly effective system from auto-sorting and cataloguing to book returns. You don&#39;t have to love libraries to like this video.</p>
<p><a href="https://youtu.be/UecKUN9AUaM" target="_blank" rel="noopener noreferrer">Can MKBHD&#39;s Team Make ANY Phone Look Cinematic??</a> - I watched this expecting a video akin to a tutorial but got something much better.  It felt more like a short film festival from an insanely creative team. And it’s hilarious too.</p>
<p><a href="https://youtu.be/kKt46Lch2bo" target="_blank" rel="noopener noreferrer">Why do office chairs have 5 legs?</a> - If you&#39;ve ever wondered (or not) why four legs might work for tables but not office chairs, this one&#39;s for you.</p>
<p><a href="https://youtu.be/oIR8vd-bi8I" target="_blank" rel="noopener noreferrer">If This Dam Fails, It Pollutes Half of Europe.</a> - What On Earth Is This covers the back story of a toxic dam in Romania, how it came to be and the bleak future of it.</p>
<h2 id="music">Music</h2>
<p>Here are some albums I listened to this month for the first time and enjoyed: </p>
<ol>
<li>J. Cole - The Fall-Off. </li>
<li>Àsgeir - Julia. </li>
<li>James Blake - Trying Times. </li>
<li>Björk - Homogenic</li>
</ol>
<h2 id="books">Books</h2>
<p>I read only one book this month and I would totally recommend it. 
<em>Kafka on the Shore</em> by Haruki Murakami is a beautiful read. 
However, I&#39;d be lying if I said I fully understood everything but the journey was worthwhile. 
It&#39;s like an acid trip (not that I have indulged) on steroids with wild things happening. </p>
<h2 id="articles">Articles</h2>
<p><a href="https://www.escapistmagazine.com/tetris-anniversary-interview/" target="_blank" rel="noopener noreferrer">Tetris at 40: A chat with creator Alexey Pajitnov – “I never imagined anything like what we see today”</a> by The Escapist - if you&#39;re like me and you love Tetris or are mildly interested in the game, then this is a lovely interview of the game creator. Additionally, you can watch Tetris the movie to quench that thirst. </p>
<p><a href="https://blog.absurdpirate.com/performative-men-problem/" target="_blank" rel="noopener noreferrer">The Performative Male “Problem”</a> - some of us are not &quot;performing&quot; and simply love reading, wired headphones, records by female artists and whatever next thing that will be branded as performative. </p>
<p><a href="https://gkeenan.co/avgb/fellas-is-it-gay-to-like-pop-music/" target="_blank" rel="noopener noreferrer">Fellas, is it gay to like pop music? (or: “Toxic”)</a> - not the first time linking to this article online but first time in this space. Plus the post is highly relatable for a bunch of fellas including myself.</p>
<hr>
<p>That’s all for this month’s <strong>Dispatch</strong>.
See you in April 🤞.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20March%202026%20Dispatch" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Links</category>
    </item>
    <item>
      <title>Re: FINE! I’ll Try Linux ONE MORE TIME...</title>
      <link>https://neobrutalist.insidemordecai.com/linux-one-more-time/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/linux-one-more-time/</guid>
      <pubDate>Fri, 20 Mar 2026 13:46:28 GMT</pubDate>
      <description>A quick take on LTT’s Linux challenge and the common mistakes people make.</description>
      <content:encoded><![CDATA[<p>Watching Linus Tech Tips&#39; latest <a href="https://youtu.be/kluoZ9RhmVo" target="_blank" rel="noopener noreferrer">Linux challenge video</a>, especially Linus&#39; sections, is a genuinely painful experience. </p>
<p>I might not be a Linux pro, but I sure am seasoned enough to know my way around.
And a few things immediately stood out. 
So here&#39;s a quick rundown of do&#39;s and don&#39;ts when picking a Linux distro:</p>
<ul>
<li><strong>Don&#39;t bother with niche distros.</strong> What I mean is don&#39;t get caught up looking for a &quot;gaming distro&quot; or something overly specialised. Most of these are just mainstream distributions with a few extras pre-installed or minor tweaks. You can replicate all of that yourself, so it shouldn&#39;t be your deciding factor.</li>
<li><strong>Pick you preferred desktop environment first</strong>. Start with the UI flavour you actually want to use (your desktop environment), then choose a popular distro that supports it well. For most people, that matters more than the distro itself.</li>
<li><strong>Avoid distros in transition</strong>. I get why Pop OS was given another shot, especially after the feedback from the last challenge. But a bit of research goes a long way. COSMIC may be at version 1.0, but it&#39;s still not fully stable, especially for the niche hardware or edge use cases like the one Linus tends to have.</li>
<li><strong>Don&#39;t rely on AI to pick your distro</strong>. It&#39;s often outdated, lacks nuance, and sometimes confidently wrong. That being said, AI can be genuinely useful for troubleshooting. It&#39;s surprisingly effective for straightforward issues as long as you keep the usual LLM caveats in mind.</li>
</ul>
<p>I think most of the frustration came from the distro choice and doing the installation at a LAN event. 
A more relaxed environment, without the pressure, would have helped a lot.</p>
<p>Linux isn&#39;t hard, everyone just needs to stop overthinking the entry point. 
Most of the time I&#39;ve broken my system, it was me, not the distro. 
So... just pick a popular mainstream distribution and play around.
With time, you&#39;ll naturally get to the distrohopping phase.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Re%3A%20FINE!%20I%E2%80%99ll%20Try%20Linux%20ONE%20MORE%20TIME..." style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Opinion</category>
      <category>Linux</category>
      <category>Reaction</category>
    </item>
    <item>
      <title>Cloudflare Tunnel for Homelab Services</title>
      <link>https://neobrutalist.insidemordecai.com/homelab-cloudflare-tunnel/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/homelab-cloudflare-tunnel/</guid>
      <pubDate>Mon, 09 Mar 2026 17:05:15 GMT</pubDate>
      <description>Using Cloudflare Tunnel to securely expose my homelab services.</description>
      <content:encoded><![CDATA[<p>After getting my media stack stable as shown in my <a href="https://neobrutalist.insidemordecai.com/self-hosted-media-with-docker/">previous post</a>, the next question was remote
access.</p>
<p>As a side note, since I&#39;ll be changing my homelab setup, I&#39;m thinking of adding <a href="https://tailscale.com/" target="_blank" rel="noopener noreferrer">Tailscale</a> as a VPN to securely connect to certain services.</p>
<p>Anyway, I already manage my domains on Cloudflare, so using Cloudflare Tunnel would always the cleanest option.
I had used it before in Fedora and tried a containerized version on Arch. 
So it was only natural for me to side-step to a Docker Compose setup. </p>
<p>This is how I set mine up.</p>
<h2 id="why-cloudflare-tunnel">Why Cloudflare Tunnel</h2>
<ul>
<li>No port forwarding</li>
<li>No exposing my public IP</li>
<li>Encrypted traffic by default</li>
<li>Works well if you already use Cloudflare for DNS</li>
</ul>
<p>It&#39;s simple. 
It&#39;s predictable. 
And it removes a lot of the usual home network headache.</p>
<p>That being said, exposing internal services always carries risk. 
Try to understand what you&#39;re doing before making anything public.</p>
<h2 id="setup-process">Setup Process</h2>
<p>Create a tunnel from the Cloudflare dashboard: <strong>Zero Trust → Network → Connectors</strong>.</p>
<p>After creating it, Cloudflare gives you a command to run the connector.
For Docker, it looks like this:</p>
<pre><code class="language-shell">docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token randomTextHereAsTokenlSP1kY34p8^jKaX28XGo5xR5uVXftLHP0Y3+pBmT$jg
</code></pre>
<p>Copy the token that appears after <code>--token</code> and add it to your <code>.env</code> file:</p>
<pre><code>TOKEN=randomTextHereAsTokenlSP1kY34p8^jKaX28XGo5xR5uVXftLHP0Y3+pBmT$jg
</code></pre>
<p>Deploy the container using your compose setup.
If you look at my setup in the previous post, I create a shared network. 
This is simply to make it easy for the containers to communicate with each other since I have Cloudflared and the Arr Apps running in different stacks.</p>
<h2 id="application-routes">Application Routes</h2>
<p>Back in the Cloudflare dashboard, configure application routes for the tunnel.</p>
<p>Each route maps:</p>
<ul>
<li>A public hostname (for example <code>seerr.yourdomain.com</code>)</li>
<li>To a local service (for example <code>http://seerr:5055</code>)</li>
</ul>
<p>You can point different subdomains to different containers inside your Docker network.
Once saved, traffic flows through Cloudflare to your connector, and then into your local container.
No open ports required.</p>
<h2 id="a-note-on-security">A Note on Security</h2>
<p>Just because you can expose something doesn&#39;t mean you should.</p>
<p>Make sure:</p>
<ul>
<li>Strong authentication is enabled (check out Explore Further section below for guide on Access Control)</li>
<li>Default credentials are changed</li>
<li>Services are updated</li>
<li>You actually need remote access</li>
</ul>
<p>Cloudflare Tunnel makes exposure safer, not magically safe.</p>
<p>If you&#39;re unsure, keep everything local.</p>
<h2 id="thats-it">That&#39;s It</h2>
<p>Once the tunnel is running, it&#39;s mostly invisible. 
It just works in the background.</p>
<p>For me, this paired perfectly with my Docker media stack. 
Clean internal networking, and controlled external access when needed.</p>
<p>You can find compose files here:
<a href="https://github.com/insidemordecai/homelab/tree/blog-media-stack-2026" target="_blank" rel="noopener noreferrer">github.com/insidemordecai/homelab/tree/blog-media-stack-2026</a></p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/" target="_blank" rel="noopener noreferrer">Cloudflare Tunnel Official Docs</a></li>
<li>How to <a href="https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/get-started/create-remote-tunnel/" target="_blank" rel="noopener noreferrer">create a tunnel (dashboard)</a> - step‑by‑step guide to creating and connecting your first tunnel directly from the Cloudflare dashboard.</li>
<li><a href="https://benjamintseng.com/2025/07/cloudflare-tunnels-for-your-home-server/" target="_blank" rel="noopener noreferrer">Cloudflare Tunnels for Your Home Server</a> - <a href="https://benjamintseng.com/" target="_blank" rel="noopener noreferrer">Benjamin Tseng </a>has a solid section on authentication and access control that you can adapt for your media stack.</li>
<li><a href="https://www.reddit.com/r/selfhosted/comments/1bf9si9/guide_how_to_securely_gain_access_to_your_locally/" target="_blank" rel="noopener noreferrer">How to SECURELY gain access to your locally self-hosted services from outside</a> - a Reddit guide on <a href="https://www.reddit.com/r/selfhosted/" target="_blank" rel="noopener noreferrer">r/selfhosted</a>.</li>
<li><a href="https://blog.cloudflare.com/securing-cloudflare-with-cloudflare-zero-trust/" target="_blank" rel="noopener noreferrer">Securing Cloudflare with Cloudflare: a Zero Trust journey</a> - a deeper dive into how Cloudflare applies Zero Trust principles to its own stack.</li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Cloudflare%20Tunnel%20for%20Homelab%20Services" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Homelab</category>
      <category>Cloudflare Tunnel</category>
    </item>
    <item>
      <title>Self Hosted Media With Docker</title>
      <link>https://neobrutalist.insidemordecai.com/self-hosted-media-with-docker/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/self-hosted-media-with-docker/</guid>
      <pubDate>Sat, 28 Feb 2026 09:00:00 GMT</pubDate>
      <description>My homelab setup using a media stack on Docker with Jellyfin and the Arr apps</description>
      <content:encoded><![CDATA[<p>I originally built this media stack as a complete beginner to homelabbing. 
It started as a way to learn Docker while automating my setup and slowly turned into something I rely on daily. 
Over time I refined it to the point where it runs quietly and flawlessly in the background.</p>
<p>I&#39;m planning to migrate everything to Proxmox soon, so I&#39;m posting my internal documentation before I tear it down. 
This isn&#39;t the only way to do it.
It&#39;s simply how I did mine.</p>
<h2 id="hardware">Hardware</h2>
<p>This runs on my old laptop with an Intel Core i5-7200U with 8 gigs of DDR4 RAM and no dedicated GPU on bare metal Linux. 
The distro doesn&#39;t really matter since everything runs inside Docker but if you really need to know, I&#39;ve used this setup with Arch Linux, Omarchy (which is basically pre-configured Arch) and CachyOS. 
Nothing fancy. 
No enterprise gear. 
Just hardware I had lying around.</p>
<h2 id="why-this-stack">Why This Stack</h2>
<ul>
<li><strong>Jellyfin</strong> because it&#39;s open source. No paid tiers. No &quot;upgrade to unlock this feature&quot;. No authentication that needs to phone home. I want my media server to be mine.</li>
<li><strong>qBittorrent</strong> because it&#39;s reliable and I&#39;m used to it.</li>
<li><strong>Prowlarr</strong> because managing indexers in one place is significantly cleaner.</li>
<li><strong>Radarr / Sonarr / Bazarr</strong> because automation is the whole point.</li>
<li><strong>Docker</strong> because I can tear this down and spin it back up anywhere.</li>
</ul>
<h2 id="folder-mapping">Folder Mapping</h2>
<p>At a high level, all the files live under <code>/data</code> on the host.
This is my current structure:</p>
<pre><code>data
├── torrents
│   ├── completed
│   └── incomplete
└── media
    ├── movies
    └── tv
</code></pre>
<p>Create your directories before proceeding.
Here&#39;s an easy command to run in your <code>/data</code> directory if you want a
similar scheme:</p>
<pre><code class="language-shell">mkdir -p torrents/{completed,incomplete} &amp;&amp; mkdir -p media/{movies,tv}
</code></pre>
<h2 id="setup-process">Setup Process</h2>
<p>The full <code>docker-compose.yml</code> files and <code>.env.example</code> templates live in
my homelab repository: <a href="https://github.com/insidemordecai/homelab/tree/blog-media-stack-2026" target="_blank" rel="noopener noreferrer">github.com/insidemordecai/homelab/tree/blog-media-stack-2026</a>.</p>
<p>Clone it or download a zip of it.</p>
<h3 id="step-0">Step 0</h3>
<ul>
<li>In the root directory, copy all <code>.env.example</code> templates as <code>.env</code> in
each subdirectory:</li>
</ul>
<pre><code class="language-shell">find . -name &#39;.env.example&#39; -execdir cp .env.example .env \;
</code></pre>
<ul>
<li>Navigate to the directory with the <code>docker-compose.yml</code> file.</li>
<li>Add your user to the <code>docker</code> group so you don&#39;t need <code>sudo</code> for every
command:</li>
</ul>
<pre><code class="language-shell">sudo usermod -aG docker $USER
newgrp docker
</code></pre>
<ul>
<li>Change ownership of the data volume specified in the <code>.env</code> file so all
services can access it:</li>
</ul>
<pre><code class="language-shell">chown -R 1000:1000 /data/volume/in/.env/file
</code></pre>
<ul>
<li>Create a shared Docker network: (I prefer this approach with Cloudflare Tunnels)</li>
</ul>
<pre><code class="language-shell">docker network create stacknet
</code></pre>
<ul>
<li>Lastly, use the appropriate commands with the containers:</li>
</ul>
<pre><code class="language-shell">docker compose up -d # to deploy containers
docker compose stop # to stop containers
docker compose rm # to remove containers (stop them first)
</code></pre>
<ul>
<li>Now configure each application.</li>
</ul>
<div style="border:2px solid #101314;border-left:8px solid #d1502f;background:#ffe3d9;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Caution</p><p><code>.env</code> files in my repository are ignored by Git. 
Do not commit or push tokens or credentials.</p>
</div>
<h2 id="qbittorrent">qBittorrent</h2>
<p>Launch qBittorrent and log in.
The username is <code>admin</code> while the password is randomly generated on first launch.
To find the password:</p>
<pre><code class="language-shell">docker logs qbittorrent
</code></pre>
<p>Change the credentials under <strong>Web UI → Authentication</strong>.</p>
<p>Configure qBittorrent to your liking.
My preferences are:</p>
<ul>
<li>Web UI → Authentication<ul>
<li>Bypass authentication for clients on localhost</li>
<li>Set &quot;Ban client after consecutive failures&quot; to 0 (be careful if
exposing qBittorrent)</li>
</ul>
</li>
<li>Downloads → Saving Management<ul>
<li>Default save path: <code>/data/torrents/completed</code></li>
<li>Keep incomplete torrents in: <code>/data/torrents/incomplete</code></li>
<li>Enable Automatic torrent management</li>
</ul>
</li>
<li>Connections → Listening Port<ul>
<li>Match whatever you forwarded on your router</li>
</ul>
</li>
<li>BitTorrent<ul>
<li>Configure queueing and seeding limits to your liking</li>
</ul>
</li>
</ul>
<h2 id="arr-apps">Arr Apps</h2>
<h3 id="prowlarr">Prowlarr</h3>
<p>Go to <strong>Settings → Download Clients</strong> and add qBittorrent.</p>
<p>Match the Web UI port (default 8080) and enter credentials.
Host can be <code>qbittorrent</code>, test and save.</p>
<p>Add your indexers, test and save.</p>
<h3 id="flaresolverr">Flaresolverr</h3>
<p>No configuration required in the container itself.</p>
<p>In Prowlarr:</p>
<ul>
<li>Settings → Indexers</li>
<li>Add Flaresolverr</li>
<li>Host: <code>http://flaresolverr:8191/</code></li>
<li>Tag: <code>flaresolverr</code></li>
</ul>
<p>Attach the tag to any problematic indexer that needs to bypass Cloudflare Captcha.</p>
<h3 id="radarr">Radarr</h3>
<p>Under <strong>Settings → Media Management</strong>, add Root Folder: <code>/data/media/movies</code> (match your <code>docker-compose.yml</code>)</p>
<p>Under <strong>Settings → Download Clients</strong>, add qBittorrent (similar process to Prowlarr above) and test.</p>
<p>Configure <strong>Remote Path Mapping</strong>:</p>
<ul>
<li>Host: <code>localhost</code></li>
<li>Remote path: <code>/WHERE_YOUR_DATA_VOLUME_IS/data/torrents/completed</code></li>
<li>Local path: <code>/data/torrents/completed</code></li>
</ul>
<p>Copy the API key from <strong>Settings → General</strong>.</p>
<p>In Prowlarr:</p>
<ul>
<li>Settings → Apps</li>
<li>Add Radarr</li>
<li>Use <code>http://container-name:port</code> format in the Prowlarr/Radarr server field</li>
<li>Paste the API key</li>
</ul>
<p>My tweaks:</p>
<ul>
<li>Media Management<ul>
<li>Check &quot;Unmonitor Delete Movies&quot;</li>
<li>Set &quot;Proper and Repacks&quot; to &quot;Do Not Prefer&quot;</li>
<li>Adjust Movie Folder Format (I include IMDb ID inline with <a href="https://jellyfin.org/docs/general/server/media/movies" target="_blank" rel="noopener noreferrer">Jellyfin&#39;s naming scheme</a>)</li>
</ul>
</li>
<li>Custom Formats<ul>
<li>Medium File Size  - set your minimum and max file size for media downloaded and check &#39;Required&#39;. You can create another for Small and Large file sizes if desired.</li>
<li>x264 - use preset under <em>Release Title</em> and check <em>Required</em> to find files encoded with H.264.</li>
<li>x265 - use preset under <em>Release Title</em> and check <em>Required</em> to find files encoded with H.265.</li>
<li>Repack/Proper from <a href="https://trash-guides.info/Radarr/Radarr-collection-of-custom-formats/#repackproper" target="_blank" rel="noopener noreferrer">TRaSH Guide&#39;s Collection</a> to allow Radarr to still pick repacks/proper files.</li>
</ul>
</li>
<li>Profiles<ul>
<li>Disable Remux, they tend to be large files.</li>
<li>Score the custom formats according to preference e.g 1000 for Medium File Size, 100 for Repack/Proper and another score x264 and x265.</li>
</ul>
</li>
</ul>
<h3 id="sonarr">Sonarr</h3>
<p>Same process as Radarr, but Root Folder: <code>/data/media/tv</code>.</p>
<p>Configure Download Client and Remote Path Mapping the same way.
Link Sonarr to Prowlarr the same way using the API key.</p>
<p>In Media Management:</p>
<ul>
<li>Follow <a href="https://jellyfin.org/docs/general/server/media/shows" target="_blank" rel="noopener noreferrer">Jellyfin TV naming scheme</a> to Include IMDb ID in <em>Series Folder Format</em>.</li>
<li>Check <em>Rename Episodes</em></li>
</ul>
<h3 id="bazarr">Bazarr</h3>
<p>Under <strong>Settings → Sonarr</strong>, enable and configure connection.
Set the minimum score in <strong>Options</strong> to <code>90</code> (TRaSH-Guide recommendation).</p>
<p>Under <strong>Settings → Radarr</strong>, enable and configure the connection.
Minimum score: <code>80</code></p>
<p>Under <strong>Settings → Languages</strong>, pick your desired language under <em>Languages Filter</em>.
Create a Language Profile under <em>Languages Profile</em> and assign it as default for Series and
Movies under <em>Default Language Profiles For Newly Added Shows</em>.</p>
<p>Add subtitle providers under <strong>Settings → Providers</strong>.
Create an account with a provider such as <a href="https://opensubtitles.com" target="_blank" rel="noopener noreferrer">opensubtitles.com</a> first.</p>
<p>Under <strong>Settings → Subtitles</strong>:</p>
<ul>
<li>Enable &#39;Ignore Embedded PGS Subtitles&#39; and &#39;Ignore Embedded ASS Subtitles&#39; under <em>Embedded Subtitles Handling</em>. This is important if your media player has issues with these type of subtitles e.g Jellyfin for Samsung TV (check out <a href="https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer" target="_blank" rel="noopener noreferrer">Jellyfin 2 Samsung</a> and <a href="https://github.com/Georift/install-jellyfin-tizen" target="_blank" rel="noopener noreferrer">Install Jellyfin Tizen</a> for how to sideload the app)</li>
<li>Enable &#39;Automatic Subtitles Audio Synchronization&#39; under <em>Audio Synchronization / Alignment</em>.</li>
<li>Score Threshold:<ul>
<li>Series: <code>96</code></li>
<li>Movies: <code>86</code></li>
</ul>
</li>
</ul>
<h2 id="jellyfin">Jellyfin</h2>
<p>Complete initial setup in browser and map your libraries:</p>
<ul>
<li>Movies: <code>/data/media/movies</code></li>
<li>TV: <code>/data/media/tv</code></li>
</ul>
<p>That&#39;s it.
Tweak the settings to your liking.</p>
<h2 id="jellyseerr">Jellyseerr</h2>
<div style="border:2px solid #101314;border-left:8px solid #009bad;background:#e2f5f5;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Note</p><p>And wouldn’t you know it, just after posting this article I learned that the Seerr team <a href="https://docs.seerr.dev/blog/seerr-release" target="_blank" rel="noopener noreferrer">announced</a> they’ll be merging Overseerr and Jellyseerr. 
You can find the <a href="https://docs.seerr.dev/migration-guide" target="_blank" rel="noopener noreferrer">migration guide here</a>.
Also, you can find my Seerr implementation on my <a href="https://github.com/insidemordecai/homelab" target="_blank" rel="noopener noreferrer">GitHub repo</a>.</p>
</div>
<p>Follow the on-screen guide.</p>
<ul>
<li>Jellyfin hostname: <code>jellyfin</code></li>
<li>Leave the port as is unless you had changed this</li>
<li>Test and save, the API keys will auto-configure</li>
<li>Add Radarr and Sonarr</li>
</ul>
<h2 id="firewall">Firewall</h2>
<p>You may need to allow certain ports, but only if necessary.</p>
<p>For example, if using <code>ufw</code>:</p>
<pre><code class="language-shell">sudo ufw allow 6881/tcp #default qBittorrent listening port
sudo ufw allow 6881/udp
</code></pre>
<p>Be deliberate. 
Don&#39;t open ports blindly.</p>
<h2 id="a-note-on-exposing-services">A Note on Exposing Services</h2>
<p>If you decide to expose any of these services outside your local network, understand the risks first.</p>
<p>Do not just forward ports and hope for the best. 
Use proper authentication, reverse proxies, or secure tunnels. 
Know what you&#39;re exposing and why.</p>
<p>This stack runs perfectly fine entirely within a local network.
The next post will show <a href="https://neobrutalist.insidemordecai.com/homelab-cloudflare-tunnel/">how to use Cloudflare Tunnels to securely expose some services</a>.</p>
<hr>
<p>The full compose files and configuration templates are available here:
<a href="https://github.com/insidemordecai/homelab/tree/blog-media-stack-2026" target="_blank" rel="noopener noreferrer">github.com/insidemordecai/homelab/tree/blog-media-stack-2026</a></p>
<p>This setup has been stable for me for a long time.
If I ever need to rebuild it on another machine, it&#39;s just a matter of cloning the repo and running <code>docker compose up -d</code>.</p>
<p>Next step: rebuilding this properly under Proxmox.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://wiki.servarr.com/" target="_blank" rel="noopener noreferrer">Servarr Wiki</a></li>
<li><a href="https://trash-guides.info/" target="_blank" rel="noopener noreferrer">TRaSH Guides</a></li>
<li><a href="https://github.com/TechHutTV/homelab/" target="_blank" rel="noopener noreferrer">TechHut&#39;s Setup</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Self%20Hosted%20Media%20With%20Docker" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Homelab</category>
      <category>Docker</category>
      <category>Self-Hosting</category>
    </item>
    <item>
      <title>Migrating a Hugo Site from Cloudflare Pages to Workers</title>
      <link>https://neobrutalist.insidemordecai.com/hugo-migration-cloudflare-pages-workers/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/hugo-migration-cloudflare-pages-workers/</guid>
      <pubDate>Sat, 21 Feb 2026 18:47:59 GMT</pubDate>
      <description>How I moved my site to Workers, including cleaning up a Pages project with many deployments.</description>
      <content:encoded><![CDATA[<p>Cloudflare has been gently (and not so gently) nudging folks away from Pages for a while now. 
Their new option, Workers, promised to be bigger and better but I didn&#39;t need it since I run a simple static site. 
Nonetheless, I tried deleting my Pages project to switch over, but it turns out you can&#39;t do that with a single click if you have a lot of deployments. 
Their guide didn&#39;t seem as straightforward as I&#39;d hoped, but looking back, it&#39;s actually pretty easy.</p>
<p>So... I recently ran into an unrelated issue with my site, and my attempts to fix it pushed me try out different deployment environments. 
In the process, I gave in and moved everything over to Workers.</p>
<p>I won&#39;t bore you with the why, the differences, or other minutiae.
Here&#39;s what I&#39;ll cover and how I did it:</p>
<ol>
<li>How to clean up old Cloudflare Pages project.</li>
<li>Configuring your Hugo site for the switch </li>
<li>Migrating to Workers.</li>
</ol>
<h2 id="cleaning-up-the-old-pages-project">Cleaning up the Old Pages Project</h2>
<p>The first obstacle, as mentioned, was simply <strong>getting rid of</strong> the old Pages project.</p>
<p>Cloudflare’s UI will happily let you click “Delete project” and then complain if you have a long deployment history. 
At least that&#39;s the limitation at the time of writing.
In my case I had hundreds of previous deployments since <a href="https://neobrutalist.insidemordecai.com/switched-to-cloudflare-pages/">switching to Cloudflare Pages</a> back in 2023.
The workaround is a small Node tool they document that iterates through deployments and deletes them via the API.</p>
<p>Here is there guide on the <a href="https://developers.cloudflare.com/pages/platform/known-issues/#delete-a-project-with-a-high-number-of-deployments" target="_blank" rel="noopener noreferrer">Known Issues page</a>.</p>
<p>I struggled with finding the correct Account ID, but even more with configuring the API token. 
Here&#39;s what to note / rough steps:</p>
<ol>
<li>If you&#39;re like me and only have a single account, simply click the menu button next to your account name in the Cloudflare dashboard and select <strong>Copy Account ID</strong>. If that isn&#39;t clear or you have multiple accounts, then follow the official guide: <a href="https://developers.cloudflare.com/fundamentals/account/find-account-and-zone-ids/" target="_blank" rel="noopener noreferrer">Find account and zone IDs</a>.</li>
<li>For the API token, simply head into your <a href="https://dash.cloudflare.com/" target="_blank" rel="noopener noreferrer">Cloudflare dashboard</a> and go to <strong>My Profile</strong> &gt; <strong>API Tokens</strong>.</li>
<li>Click on <strong>Create Token</strong> and pick the <strong>Create Custom Token</strong> option.</li>
<li>Give your token a name and these permissions:<ul>
<li>Scope: <strong>account‑level</strong>, not zone or user-level.</li>
<li>Permission: <code>Cloudflare Pages: Edit</code></li>
<li>You can define how long the token will stay active under the TTL section or simply delete it after using it.</li>
</ul>
</li>
<li>Run the script to purge deployments until only the active deployment remains. </li>
<li>Remove any custom domains in the Cloudflare Pages project setting and now delete the project.</li>
</ol>
<p>It&#39;s actually pretty straighforward. 
Now we can think about migrating to Workers, but we first need to configure a few things.</p>
<h2 id="how-to-deploy-a-hugo-site-on-cloudflare-workers">How to Deploy a Hugo Site on Cloudflare Workers</h2>
<p>While Cloudflare hasn’t killed off Pages yet, it&#39;s no secret that it isn’t getting the attention it used to. 
They even recommend <a href="https://blog.cloudflare.com/full-stack-development-on-cloudflare-workers/#start-with-workers" target="_blank" rel="noopener noreferrer">starting with Workers</a>. </p>
<blockquote>
<p>Cloudflare Pages will continue to be supported, but, going forward, all of our investment, optimizations, and feature work will be dedicated to improving Workers.</p>
</blockquote>
<h3 id="add-a-wrangler-config">Add a Wrangler Config</h3>
<p>Start by adding a <code>wrangler.jsonc</code> file to the root of your site. 
Workers use this file to understand how your Hugo site should be built and deployed.</p>
<pre><code class="language-json">{
  &quot;name&quot;: &quot;insidemordecai&quot;,
  &quot;compatibility_date&quot;: &quot;2026-02-21&quot;,
  &quot;assets&quot;: {
    &quot;directory&quot;: &quot;./public&quot;,
    &quot;html_handling&quot;: &quot;auto-trailing-slash&quot;,
    &quot;not_found_handling&quot;: &quot;404-page&quot;,
    &quot;run_worker_first&quot;: false
  },
  &quot;build&quot;: {
    &quot;command&quot;: &quot;hugo --gc --minify&quot;,
  },
    &quot;workers_dev&quot;: true,
  &quot;preview_urls&quot;: true
}
</code></pre>
<p>Replace the <code>name</code> field to match your domain or project name. 
You can adjust the compatibility date to the day you’re generating the config.
The remaining defaults should work as-is.</p>
<h3 id="pin-workers-to-a-specific-hugo-version">Pin Workers to a Specific Hugo Version</h3>
<div style="border:2px solid #101314;border-left:8px solid #009bad;background:#e2f5f5;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Note</p><p>This section is totally <strong>optional</strong>. If you don&#39;t need it, skip right ahead to the next section.</p>
</div>
<p>While attempting to fix my previously mentioned unrelated issue, I tried to force Workers to use a specific Hugo version. 
I wasted a lot of time trying this, but Workers kept using a different version.
After scouring the build logs, it turns out you don&#39;t declare this in the <code>wrangler.jsonc</code> file since that only makes it a runtime variable.</p>
<p>You have two options if you want Workers to use a specific Hugo version: </p>
<ol>
<li>Create a <code>build.sh</code> script and update the subsequent build line in the <code>wranger.jsonc</code> file. It worked, though in the end I didn’t need it for my issue. I’d like to think someone out there might find it helpful though.</li>
</ol>
<pre><code class="language-bash">#!/bin/bash
set -e

# Pin to a specific Hugo version (update when needed)
HUGO_VERSION=&quot;0.155.3&quot;
HUGO_URL=&quot;https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz&quot;

curl -sL &quot;$HUGO_URL&quot; | tar xz hugo
chmod +x hugo
HUGO_ENV=production ./hugo --gc --minify
</code></pre>
<pre><code class="language-json">  &quot;build&quot;: {
    &quot;command&quot;: &quot;chmod a+x build.sh &amp;&amp; ./build.sh&quot;,
  },
</code></pre>
<ol start="2">
<li>Configure it in your Workers project setting under the <em>Variables and secrets</em> option of the <strong>Build</strong> sub-section. <ul>
<li>Variable name: <code>HUGO_VERSION</code></li>
<li>Value: <code>155.3</code> (enter the version you want)</li>
</ul>
</li>
</ol>
<p>I didn’t realise the second option existed at first, so you’re welcome for the script.
Otherwise, I recommend the second option. 
It’s what I used back in Cloudflare Pages, and it’s just neater.</p>
<h3 id="create-the-workers-project">Create the Workers Project</h3>
<p>With everything in place, configure your Worker for deployment: </p>
<ol>
<li>Open the <a href="https://dash.cloudflare.com/" target="_blank" rel="noopener noreferrer">Cloudflare Dashboard</a>, press the <strong>Add</strong> button in the upper right corner, and select “Workers” from the drop down menu.</li>
<li>Click on <strong>Continue with GitHub</strong> (or your preferred option) and choose the project repository.</li>
<li>Name your Workers project.</li>
<li>Leave the rest at their defaults.</li>
<li>Click <strong>Deploy</strong>.</li>
</ol>
<p>With everything configured, Workers will build the site and deploy it.
It should be live within a minute.</p>
<h3 id="configure-custom-domain">Configure Custom Domain</h3>
<p>Now it&#39;s time to reconfigure the custom domains you used with your Pages project and be done with it, unless you want to stick with the default  <code>*.workers.dev</code> URL.</p>
<ol>
<li>Open your Workers project and navigate to the Settings tab.</li>
<li>Under the <strong>Domains &amp; Routes</strong> sub-section, click <strong>Add</strong>.</li>
<li>Pick <strong>Custom Domain</strong> and enter your domain name. </li>
<li>Click <strong>Add domain</strong> at the bottom and that&#39;s it.</li>
</ol>
<p>Cloudflare will handle DNS configuration automatically. </p>
<p>That&#39;s it, your Hugo site should be available on your domain in a couple of minutes.</p>
<p>If you deploy often and plan to keep scaling, Workers feels like the right long-term home. 
Pages still works, but it’s clear where Cloudflare’s focus is.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://gohugo.io/host-and-deploy/host-on-cloudflare/" target="_blank" rel="noopener noreferrer">Host on Cloudflare</a></li>
<li><a href="https://blog.cloudflare.com/full-stack-development-on-cloudflare-workers/" target="_blank" rel="noopener noreferrer">Your frontend, backend, and database — now in one Cloudflare Worker</a></li>
<li>Workers <a href="https://developers.cloudflare.com/workers/configuration/compatibility-dates/" target="_blank" rel="noopener noreferrer">Compatibility dates</a></li>
<li><a href="https://kahwee.com/2025/migrating-from-cloudflare-pages-to-workers/" target="_blank" rel="noopener noreferrer">Migrating from Cloudflare Pages to Workers - Do You Even Need To?</a> - a different method to migrate.</li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Migrating%20a%20Hugo%20Site%20from%20Cloudflare%20Pages%20to%20Workers" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Updates</category>
      <category>Cloudflare Pages</category>
      <category>Cloudflare Workers</category>
      <category>Hugo</category>
    </item>
    <item>
      <title>2025 in Books</title>
      <link>https://neobrutalist.insidemordecai.com/2025-in-books/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/2025-in-books/</guid>
      <pubDate>Tue, 06 Jan 2026 10:00:00 GMT</pubDate>
      <description>A look back at my 2025 reading year and the books I’d recommend.</description>
      <content:encoded><![CDATA[<p>Like every previous year, Goodreads prompted me to set how many books I wanted to read as the year began. 
<a href="https://neobrutalist.insidemordecai.com/2024-in-books/">I had read 28 books in 2024</a> and you&#39;d think this would have been the bare minimum for 2025, but no, I went a different route. 
20 books seemed like a more reasonable target, with a twist: reading thiccc books.</p>
<p>So... I typed out my reading goals in my notes app: </p>
<ul>
<li><input checked="" disabled="" type="checkbox"> Read 20 books</li>
<li><input disabled="" type="checkbox"> Read at least one chunky book (~500 pages or more) </li>
<li><input disabled="" type="checkbox"> Read more African literature <ul>
<li><input disabled="" type="checkbox"> at least one Kenyan author </li>
<li><input checked="" disabled="" type="checkbox"> at least one Chimamanda Ngozi Adichie book</li>
</ul>
</li>
<li><input disabled="" type="checkbox"> Start on the GOT/ASOIAF series, continue the Red Rising series</li>
<li><input checked="" disabled="" type="checkbox"> Read at least one (auto)biography or memoir</li>
</ul>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2025-in-books/img/2025-books-overview.webp" alt="Image showing I read 20 books in 2025 totalling 4,397 pages. My shortest book was Fyodor Dostoyesky&#39;s Bobok with 22 pages and the longest book being Chimamanda Ngozi Adichie&#39;s Half of a Yellow Sun with 435 pages." loading="lazy" decoding="async"><figcaption>Overview of books I read in 2025</figcaption></figure>
<p>So, how did this all pan out? 
I achieved my target, but not in terms of book size.
The upside is that my average page count was 219 pages, up from 192 pages in 2024.
Regarding <em>A Song of Ice and Fire</em> (the book series that <em>Game of Thrones</em> is based on), I never got to turn those pages but my priority was on the Dunk &amp; Egg novellas due to the upcoming HBO series. 
I read <em>A Knight of the Seven Kingdoms</em> and loved it. 
George R.R. Martin has a way with words and world-building that has you deeply fixated on the book.
I didn&#39;t resume the Red Rising series and I really wish I had, though.
Perhaps I wouldn&#39;t have had a major reading slump.
That said, it wasn&#39;t a total loss. </p>
<p>With that out of the way, here are all the books I read in 2025 and some details of my favourite picks.</p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2025-in-books/img/2025-reads.webp" alt="A collage of the book covers of all the books I read in 2025" loading="lazy" decoding="async"><figcaption>Books I read in 2025</figcaption></figure>
<p>Out of everything I read, a few stood out from the rest.
My top recommendations in no particular order have to be: </p>
<ol>
<li><em>James</em> by Percival Everett</li>
<li><em>I Who Have Never Known Men</em> by Jacqueline Harpman</li>
<li><em>Martyr!</em> by Kaveh Akbar</li>
<li><em>Half of a Yellow Sun</em> by Chimamanda Ngozi Adichie </li>
<li><em>Misery</em> by Stephen King</li>
</ol>
<p><em>James</em> is the first book (303 pages) I can remember ever reading in 24 hours. 
It&#39;s a reimagining of <em>Adventures of Huckleberry Finn</em> told from Jim&#39;s point of view. 
He goes on a dangerous journey as a runaway slave until he can figure out how to rescue his family.
Percival Everett manages to weave in a bit of humour but even then, I can&#39;t provide a description that will do this book justice. 
Just simply read it. 
If I was forced to pick my favourite book of the year, then this would be it. </p>
<p>While <em>James</em> was gripping in its momentum, the next book stayed with me for entirely different reasons.
<em>I Who Have Never Known Men</em> is the only non-5 star read on this list but it started life as a 3 star read before its upgrade to 4 stars.
Simply because, the story stuck with me. 
It felt like a new take on an old tired idea of being the last man standing on earth. 
We follow the young main character alongside 39 other women in a dystopian and desolate world as the last people alive. 
Along the way, we get glimpses of hope but it&#39;s quickly dashed every single time right till the final traumatising sentence. 
I have a positive spin on the outcome but I fear spoiling the book, so... there&#39;s a reply link at the bottom.</p>
<p>Still thinking about meaning and survival, we move on to my next pick – <em>Martyr!</em>.
Kaveh Akbar shifts between different points of view with lyrical writing and a unique structure to cover martyrdom. 
The main character is an Iranian boy living in America exploring the idea of making your death matter. 
Alongside this, the author covers themes of sobriety, grief, and identity with a sprinkle of humour to lighten the subject.
Again, if I had a gun to my head, then I&#39;d pick this as my second favourite book of the year.</p>
<p>One of my goals this year was to read more African literature, which is how I ended up with <em>Half of a Yellow Sun</em>. 
I&#39;m always left in awe after watching a Chimamanda interview.
I get the need to protest or take an action. 
I&#39;d joke with myself that when I grow up, I want to be as eloquent as her.
However, it felt sacrilegious to have never read a book from her so I started off with this.
It&#39;s a popular book and many Kenyans have at least heard of the title.
I was not surprised by the writing and the detail in the book. 
What I wasn’t prepared for, though, were the events themselves.
I was shocked by the accounts of the characters. 
The book is largely based on the Nigeria-Biafra war so this was a learning moment for me. 
It showcases how tribalism can lead to widespread bloodshed and degradation of humanity. 
Reading this in the present day made it feel uncomfortably relevant.
We aren&#39;t taught about this war in school but it totally should especially with some local leaders spewing tribal rhetoric at the time of reading.
This book is a stark reminder that such division remains close to the surface, bubbling slowly as it waits for a moment of eruption.
It&#39;s very reminiscent of other tragedies across Africa with many rooted in, perhaps unsurprisingly, colonial era divide-and-conquer tactics.</p>
<p>After all that emotional weight, my next pick is something completely different, a little more unsettling – <em>Misery</em>.
This was my first foray into Stephen King&#39;s massive catalogue and I was not disappointed.
I mean what a writer!
The book is basically a chilling tale on how obsession can turn hellish and how far a &quot;fan&quot; can go.
It&#39;s beautifully descriptive yet bleak in the best way and soul-crushing, especially because the horror feels so real and within the realms of possibility. 
This is such a gut-wrenching, gripping and unforgettable story.</p>
<p>So yeah, that was my reading year and those are my picks.</p>
<p>Which one do you like the sound of? 
How many books did you read? 
What was your best read of the year? 
Any other recommendations? 
I&#39;d love to hear from you all. </p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2025-in-books/img/2025-reads-by-genre.webp" alt="Image showing my most read genres in 2025" loading="lazy" decoding="async"><figcaption>My most read genres in 2025</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2025-in-books/img/2025-reads-by-month.webp" alt="Image showing the books I finished in each month of 2025" loading="lazy" decoding="async"><figcaption>Monthly overview of books I read in 2025</figcaption></figure>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%202025%20in%20Books" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Books</category>
      <category>My Reading Year In Review</category>
    </item>
    <item>
      <title>The Fragmentation Problem of Watch Lists</title>
      <link>https://neobrutalist.insidemordecai.com/watch-lists-federation/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/watch-lists-federation/</guid>
      <pubDate>Wed, 24 Dec 2025 09:12:28 GMT</pubDate>
      <description>A case for federated watch lists</description>
      <content:encoded><![CDATA[<blockquote>
<p>All I want for Christmas is to find that darn movie I’ve been meaning to watch. What was it called again? I could have sworn I bookmarked it somewhere…</p>
<p>— Janko Roettgers on <a href="https://www.lowpass.cc/p/streaming-wish-lists-bookmarks-federation-netflix-plex" target="_blank" rel="noopener noreferrer">Streaming wish lists are broken. Federation could fix them.</a></p>
</blockquote>
<p>Like many of you, I have a list that endlessly grows and that is a list of shows and films I want to watch.
The process is always the same.
I find something I like from YouTube, or a friend, or an article and I simply append it to my master list. </p>
<p>For a long time I tracked this on paper, but I made the switch to using <a href="https://www.tvtime.com/" target="_blank" rel="noopener noreferrer">TV Time</a> very early on.
The process remained the same but my list was now more &quot;mobile&quot;. 
With this switch to digital, my media tracking did not end up simpler, but much more segregated. 
I had a long list on Netflix, another on Plex (when I liked it back then), with some on Showmax while others were somehow on Google as well.
Quitting Netflix made it quite a tedious process to migrate my watch list, but I soldiered on.
I doubled down on having everything on TV Time and my setup was everything I could wish for. 
I could track what I wanted, get a heads up when my shows aired and plan around film releases. </p>
<p>All was rosy until the frustrations crept in. 
The app didn&#39;t seem to improve, updates reduced, bugs here and there but that was just the tip of the iceberg.
My biggest drawback with the app was (and still is) how laggy it became over the years.
I would open the app and be faced with a spinning wheel for what seemed like an eternity. 
Sometimes I&#39;d simply go back to where I got my recommendation and screenshot the film/show name or write it down to add to TV Time later. </p>
<p>The issues made it seem like I was moving back to the days when I had a single list on paper. </p>
<p>So in 2024, I spent some time on many subreddits searching for a different solution. 
Nothing could match my criteria and the perfect TV Time alternative eluded me. 
The simplicity of my setup with how I could track both my films and shows in one place was what I liked most. 
I didn&#39;t want to opt for platforms that handle only one type of media. </p>
<p>With no success in my search, I caved in and finally signed up to <a href="https://letterboxd.com/" target="_blank" rel="noopener noreferrer">Letterboxd</a> and <a href="https://www.serializd.com/" target="_blank" rel="noopener noreferrer">Serializd</a>.
I initially wanted to phase out TV Time but the force of habit made me think otherwise. 
So... I juggled and still juggle three applications. 
Definitely not the ideal setup I signed up for.</p>
<p>Anyway, the process of tracking anything goes like this nowadays: I watch a trailer that I like, fish out my phone, add it to TV Time, actively try to distinguish if the trailer is of a film/show and finally opening Letterboxd/Serializd to add it there too. 
This is in stark contrast to when I would simply watch something, pull up my phone and add it to TV Time. </p>
<p>I really wish there was a simpler way to have your data. 
The huge issue in my case is having to do media tracking in multiple apps when federation seems like a logical solution. 
Janko Roettgers wishes for a future where you simply add something on Netflix and it gets federated across different applications.</p>
<blockquote>
<p>Instead of keeping all watch-list data in a silo, these services should enable consumers to opt into sharing it between services. That way, if I bookmark a movie on Netflix, the Netflix app shares that information with my Plex watch list. Once I watch it, it disappears from both lists again.</p>
<p>Ideally, I’d want to have a bunch of different ways to enter this kind of data and just as many ways to consume it. Maybe I’d keep one master list maintained by Plex, Google, or another company. But I’d also want to be able to keep smashing that bookmark button in whatever streaming app I’m in and have all my lists across all providers update in real time.</p>
<p> — Janko Roettgers on <a href="https://www.lowpass.cc/p/streaming-wish-lists-bookmarks-federation-netflix-plex" target="_blank" rel="noopener noreferrer">Streaming wish lists are broken. Federation could fix them.</a></p>
</blockquote>
<p>Federation isn&#39;t sexy but oh boy is it useful.
Its end goal shouldn&#39;t be social media lest it succumb to the same fate as the blockchain (stay with me) where ideology trumped practicality with crypto as its only major use case.
Media tracking seems more feasible and practical than social media that&#39;s proven difficult and high stakes.
There won&#39;t be a need for virality, moderation, or algorithmic manipulation. 
Just simple, low-frequency data.</p>
<p>The problem is who owns this data and not the platforms themselves.
I remember how once a movie left Netflix, that&#39;s how it also simply ceased to exist in your watch list with no remnant of what used to be.
This is a loss of history and not just inconvenience.
You end up losing proof it ever mattered to you and that&#39;s why federation makes sense.
The current solution makes the different places act like temporary custodians of this data.
I should be able to easily migrate something as personal as my taste in media between platforms.
Our bookmarks should be liberated and only then, will everyone (or at least those as nitpicky as myself) be happy.</p>
<p>I know this is just but an idea that likely won&#39;t materialise.
Different networks and platforms have an incentive to keep you locked in.
Watchlists act as an engagement tool to them. 
A way to reduce their subscription churn rate. 
What Janko Roettgers proposes benefits users, not platforms.</p>
<p>For now we can hope for one neutral, user-controlled list where apps act as clients.
We can add once, mark as watched once, export our data anytime, and switch apps without losing years of history.</p>
<p>I know no executive is reading this but I thought I&#39;d chime in with my two cents. 
A guy can only wish, and in that spirit, happy holidays. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20The%20Fragmentation%20Problem%20of%20Watch%20Lists" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Streaming</category>
    </item>
    <item>
      <title>Living With Too Many Recommendations</title>
      <link>https://neobrutalist.insidemordecai.com/living-with-too-many-recommendations/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/living-with-too-many-recommendations/</guid>
      <pubDate>Wed, 10 Dec 2025 09:08:12 GMT</pubDate>
      <description>Notes on watching with fewer scrolls and more intention</description>
      <content:encoded><![CDATA[<p><a href="https://www.youtube.com/@mkbhd" target="_blank" rel="noopener noreferrer">Marques Brownlee</a> sometimes mentions on his <a href="https://www.youtube.com/@Waveform" target="_blank" rel="noopener noreferrer">podcast</a> that TV viewership of YouTube videos is on the rise. 
I have to say I fall squarely within this camp. 
The bigger screen makes everything, especially cinematic videos, so much more enjoyable.
Using the remote also feels far more seamless than using a phone. 
A kid recently told me that&#39;s the reason they watch Shorts on TV. 
I refuse to go down that path, but I understand their logic.</p>
<p>The downside to watching on TV is that I&#39;m spending more time on the home page. 
This habit has also spilled over onto my laptop. </p>
<p>I&#39;ve long had my YouTube bookmark set to lead me straight to my subscriptions page, where I would sift what I want to watch and add it to my Watch Later playlist.
That playlist became my home for all my media needs. 
This worked flawlessly by allowing me to watch from my favourite creators while not falling into an uncontrollable crave for new videos. </p>
<p>At the moment, I still operate from my Watch Later playlist but the source of the videos has changed. 
Some still come from my subscription page, but an increasing amount is coming from our YouTube overlords. 
The TV app spits you straight onto the home page where the almighty algorithm tries its best to grab you with its hooks. 
And, well... I&#39;ve definitely been grabbed. 
That sounded wrong 😂 but you get me. 
I end up scrolling the home page as I add videos to my main playlist along the way.</p>
<p>Perhaps ironically, I came across <a href="https://youtu.be/-OjikK5APSk" target="_blank" rel="noopener noreferrer">this video</a> earlier today and it does seem to address a part of this issue (it doesn&#39;t solve landing on the YT home page – I might just have to learn to avoid/tolerate it). 
<a href="https://www.youtube.com/@lillabjornstationery" target="_blank" rel="noopener noreferrer">Lilla Björn Stationery</a> recommends having a media journal. 
She writes down all the videos she wants to watch in a list and crosses them off one by one. 
She even went above and beyond to colour-code it depending on the type of video it is. 
It feels a little extreme to keep tabs of your media this way but that is not far from what I used to do a couple years back. </p>
<p>In high school, I used to have yearly notebooks where I&#39;d jot down fun (questionable) stories, poems and other random things but there was always one constant in each notebook, a media section.
Being in a boarding school with no access to mobile phones or internet, I would always write down what I wanted to research, watch and listen to at the back of my book.
Once the school holiday began, I&#39;d start with what was on my list before trying other things and the cycle would repeat itself in the next school term. 
That&#39;s not too far from what the video suggests. </p>
<p>I&#39;d be lying if I said I&#39;d do that again but it does beg me to question my intentionality in media consumption. 
My system has worked for years, but it crumbles when I can&#39;t avoid the home page. 
Perhaps I can embrace it by choosing to only add a video to my Watch Later playlist if it appears on the first screen that pops up instead of scrolling endlessly.</p>
<p>That way I can balance recommendations from the algorithm (which sometimes are golden), from friends and newsletters, and videos from my favourite creators. 
As a personal recommendation, check out <a href="https://www.tomscott.com/" target="_blank" rel="noopener noreferrer">Tom Scott</a>&#39;s weekly <a href="https://www.tomscott.com/newsletter/" target="_blank" rel="noopener noreferrer">newsletter</a>. 
He shares about three good videos every Monday, some links to interesting articles and a few of his own stuff.</p>
<p>Moral of the story: watch your YouTube habits. 
It’s the one social platform that pretends it isn’t one.</p>
<p>Anyway, go touch some grass and try some hobby. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Living%20With%20Too%20Many%20Recommendations" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Opinion</category>
      <category>Media Consumption</category>
      <category>YouTube</category>
    </item>
    <item>
      <title>Apple Music Replay 2025 (and a bit of Wrapped)</title>
      <link>https://neobrutalist.insidemordecai.com/apple-music-replay-2025/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/apple-music-replay-2025/</guid>
      <pubDate>Wed, 03 Dec 2025 18:10:36 GMT</pubDate>
      <description>Quick overview of my 2025 music listening patterns.</description>
      <content:encoded><![CDATA[<p>Besides Mariah Carey having fully thawed, it&#39;s that time when we all realise how much we repeat the same tunes over and over while pretending we&#39;ve discovered something new.
Just kidding.
Additionally, for the second year running, I&#39;m prioritising posting my music recap on here. </p>
<p>Overall, when it comes to the big number everyone likes to share, I had 57,645 total listening minutes – pretty much in line with every year from 2023. </p>
<p>So.... let&#39;s get down to it. </p>
<p>The elephant in the room is I actually stuck with Apple Music after <a href="https://neobrutalist.insidemordecai.com/spotify-to-apple-music/">switching to it</a> back in February, so this year&#39;s recap is a little fragmented. 
I&#39;ll probably post about my time away from Spotify at some point, but I&#39;m enjoying my time off. </p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/overview-replay-2025.webp" alt="Screenshot of my 2025 Apple Music summary showing total minutes listened, top artists, top songs, and top albums." loading="lazy" decoding="async"><figcaption>My 2025 Apple Music Replay Overview</figcaption></figure>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/overview-wrapped-2025.webp" alt="Screenshot of my 2025 Spotify Wrapped showing total minutes listened, top songs, top artists, and top genre." loading="lazy" decoding="async"><figcaption>My 2025 Spotify Wrapped Overview</figcaption></figure>
<p>Anyway, if we take a short view back to the recent past, I dove into Radiohead&#39;s discography last year and &quot;saying I love them is a massive understatement&quot;. 
I was shocked/disappointed that they didn&#39;t make any of my 2024 list but my god are they all over it this year. 
Oh, they showed up.</p>
<p>I listened to Radiohead for a whopping 1,731 minutes, with <em>In Rainbows</em> leading my Top Albums list. 
<em>The Bends</em> came in third, and <em>OK Computer</em> rounded it out in ninth. 
I never used to understand why certain songs of theirs held onto me, but the last year and a bit has made it very clear: give me anything melancholic, floaty, or drenched in bewitching vocals, and I&#39;m gone. </p>
<p>Durand Bernarr was my second-most-listened artist, and once again, I&#39;m not shocked.
He released <em>BLOOM</em> which took over my May, but he&#39;s always been someone I revisit a lot. 
His <a href="https://youtu.be/klL7nY1HzaY" target="_blank" rel="noopener noreferrer">Tiny Desk Concert</a> is one of my all-time favourites, along with his many appearances on <a href="https://www.youtube.com/@terrellgrice" target="_blank" rel="noopener noreferrer">The TERRELL Show</a>. 
Now that I&#39;ve mentioned Terrell: y&#39;all need to seriously listen to <em>The Terrell One Million Show</em> or <a href="https://youtu.be/s4Y0N8qp4ZM" target="_blank" rel="noopener noreferrer">watch it</a>.
It&#39;s rather amazing. 
There are so many great covers and mashups on there. 
<em>My Testimony / Let Go</em> by Kelontae Gavin and <em>Masterpiece (Mona Lisa)</em> by Riley are my favourites.
The latter was on repeat so much that my parent now randomly sings it whenever someone mentions the name &quot;Mona Lisa&quot;.</p>
<p>Back to the recap: I&#39;ll be honest, <em>Somebody That I Used To Know</em> was the only Gotye song I knew since it went viral, until late last year when I discovered <em>State of the Art</em> in some reaction video and immediately loved it. 
That one and <em>Hearts a Mess</em> are my favourites, but do yourself a favour and listen to his entire album, <em>Making Mirrors</em>.</p>
<p>Melanie Fiona also had her moment in my year.
Her <a href="https://youtu.be/mzG_v2TGddE" target="_blank" rel="noopener noreferrer">appearance on the blue wall</a> reminded me how incredible she is, and I ended up looping <em>It Kills Me</em> and <em>4AM</em> in March and April... and apparently the entire year. 
She really had a grasp on the 2000s music scene, and it&#39;s such a shame she never got the recognition she deserved. </p>
<p>To wrap things up: Tame Impala finally released something new, but I&#39;m still stuck on <em>Currents</em>.
I&#39;ll definitely listen to it soon. 
A <a href="https://www.imdb.com/title/tt34966650/" target="_blank" rel="noopener noreferrer">Jeff Buckley documentary</a> also dropped, which I haven&#39;t watched yet – but I enjoyed revisiting his 1994 album <em>Grace</em>.
If you&#39;ve listened or watched either, let me know how they are. </p>
<p>I also enjoyed the latest rap entry by Joey Valence &amp; Brae, <em>HYPERYOUTH</em> in November.
Tyler, The Creator fans will definitely enjoy this too.
The features are great and their interview on <a href="https://youtu.be/UUJQR3Q86TY" target="_blank" rel="noopener noreferrer">turning the tables Podcast</a> is a fun watch too. </p>
<p>Finally, I surprisingly liked Spotify Wrapped this year, even though mine was based on only a few months of usage.
I guess they took the flack they got last year to heart – though with this year&#39;s controversial headline about the platform and Daniel Ek, maybe not.</p>
<p>Anyway, here are all the screenshots for you to scour through if you&#39;re inclined. 
I didn&#39;t break down everything in them, but there are definitely some gems. </p>
<p>So here&#39;s my little call to action, <a href="https://neobrutalist.insidemordecai.com/send-me-a-song/">send me a song</a> recommendation from your recap, why you like it, and maybe a thought about mine (a song/artist you also love, a question, anything).
If you want, you can send your recap screenshot too. 
My email inbox is open. </p>
<p>For now – till next year.</p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-replay-top-albums.webp" alt="" loading="lazy" decoding="async"><figcaption>My Apple Music Top Albums</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-replay-top-artists.webp" alt="" loading="lazy" decoding="async"><figcaption>My Apple Music Top Artists</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-replay-top-songs.webp" alt="" loading="lazy" decoding="async"><figcaption>My Apple Music Top Songs</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-replay-top-genres.webp" alt="" loading="lazy" decoding="async"><figcaption>My Apple Music Top Genres</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-replay-top-monthly-albums.webp" alt="" loading="lazy" decoding="async"><figcaption>My Apple Music Top Albums by Month</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-replay-top-monthly-artists.webp" alt="" loading="lazy" decoding="async"><figcaption>My Apple Music Top Artists by Month</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-replay-top-monthly-songs.webp" alt="" loading="lazy" decoding="async"><figcaption>My Apple Music Top Songs by Month</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-wrapped-top-albums.webp" alt="" loading="lazy" decoding="async"><figcaption>My Spotify Top Albums</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-wrapped-top-genres.webp" alt="" loading="lazy" decoding="async"><figcaption>My Spotify Top Genres</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/apple-music-replay-2025/img/2025-wrapped-top-songs.webp" alt="" loading="lazy" decoding="async"><figcaption>My Spotify Top Songs</figcaption></figure>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Apple%20Music%20Replay%202025%20(and%20a%20bit%20of%20Wrapped)" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Music</category>
      <category>Apple Music</category>
      <category>Spotify</category>
      <category>My Music Year In Review</category>
    </item>
    <item>
      <title>Linux Is Not a Religion</title>
      <link>https://neobrutalist.insidemordecai.com/linux-is-not-a-religion/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/linux-is-not-a-religion/</guid>
      <pubDate>Sat, 01 Nov 2025 10:48:22 GMT</pubDate>
      <description>Apparently, using `archinstall` is a crime now. Who knew?</description>
      <content:encoded><![CDATA[<p>Guess what? 
I use Arch btw 😂.
Kinda.
I got the <a href="https://omarchy.org/" target="_blank" rel="noopener noreferrer">Omarchy</a> bug recently and migrated from vanilla Arch Linux — if you can call it that.</p>
<p>For context, I&#39;ve been a serious Linux dual-booter for nearly ten years but went full-time about four years ago.
I wouldn&#39;t say I&#39;m a Linux sage or a Penguin whisperer, but neither am I a noob. 
I wouldn’t recommend Arch as a first Linux flavour for someone jumping ship from Windows 10 now that it&#39;s discontinued — that honour probably goes to Linux Mint, but it&#39;s becoming surprisingly easy to use. </p>
<p>About a year and a half ago, I got myself a MacBook, and that presented the perfect opportunity to change my setup. 
My interest in Arch had been growing, and I felt safe enough to risk stability now that my old laptop was relegated to backup duty for the shiny new kid on the block. 
I booted Fedora off the HP and fired up <code>archinstall</code>.</p>
<p>For the uninitiated, <code>archinstall</code> is a simple automated install script for Arch Linux.
It simplifies the process greatly. 
This reminded me of my first time installing Linux back in 2017 in the form of Kali Linux with its step-by-step Debian installer (I think that&#39;s what it&#39;s called?).
The installation was super straightforward and didn&#39;t take long. 
Heck, I even repeated it on an even older 2011 Dell Inspiron (the chunky kind).
Back to the story: I was greeted with a nice, minimal KDE Plasma desktop environment and everything was rosy. 
It didn&#39;t last long though — I quickly ran back to GNOME like the simpleton I am, but that wasn&#39;t due to instability. 
I had covered my bases there by opting for an LTS kernel from the get-go. 
The switch was simply down to my preference for the clean GNOME experience and perhaps years of muscle memory.</p>
<p>Then the YouTube gods performed their magic trick and made me question if they have my microphone tapped. 
Videos of <code>archinstall</code> started showing up — negative ones though. 
I found creators (also, some bloggers and Redditors) looking down on people using install scripts like <code>archinstall</code>. 
Preaching that you must take the long, convoluted route, like it&#39;s some rite of passage. 
I mean, sure, it&#39;s okay to take the scenic route if you want to learn, but that doesn&#39;t have to be the constitutional method of installation.</p>
<p>And that&#39;s where it gets funny. 
The same folks who claim Arch is about freedom and the choice to tinker are the ones deciding how &quot;real&quot; users should install it.
Isn&#39;t that preaching water while drinking wine?
If you can&#39;t accept someone&#39;s way of setting up their system, maybe the whole philosophy flew right by you. 
That&#39;s just the epitome of Linux elitism.
Not everyone needs to spend a couple of hours (exaggerated of course) partitioning drives manually just to prove a point.
If anything, tools like <code>archinstall</code> make Arch more accessible — less of a secret cult, more of an open invitation.
That should be celebrated, not mocked.</p>
<p>So for goodness&#39; sake, stop gatekeeping Arch Linux. 
At the end of the day, the install command doesn’t define the user — the way they use and tweak their system does.</p>
<p>My time with it has been amazing, and I will vehemently argue that Omarchy isn&#39;t a distro but Arch with extra flair on top. 
So in a sense, I still use Arch btw 😏.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://youtu.be/xEzy8WUNIqI" target="_blank" rel="noopener noreferrer">Arch &amp; Hyprland - The Future of Linux? by The Lunduke Journal</a></li>
<li><a href="https://antonvanassche.github.io/posts/2025/why-linux-is-both-a-religion-and-a-meme-and-thats-beautiful/" target="_blank" rel="noopener noreferrer">Why Linux Is Both a Religion and a Meme (And That&#39;s Beautiful) by Anton Van Assche</a></li>
<li><a href="https://medium.com/@devikaaaa4/arch-linux-not-just-an-os-a-philosophy-of-choice-e88df6e5b9da" target="_blank" rel="noopener noreferrer">🧠 Arch Linux: Not Just an OS — A Philosophy of Choice by Devika</a></li>
<li><a href="https://techtea.io/articles/2024/elitism-identity-open-source/" target="_blank" rel="noopener noreferrer">Elitism, Identity, and the Open Source Community by Matthew (TechTea)</a></li>
<li><a href="https://kevquirk.com/blog/this-is-whats-wrong-with-linux-community/" target="_blank" rel="noopener noreferrer">This Is What&#39;s Wrong With The Linux Community by Kev Quirk</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Linux%20Is%20Not%20a%20Religion" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Opinion</category>
      <category>Linux</category>
    </item>
    <item>
      <title>Found the Cringe</title>
      <link>https://neobrutalist.insidemordecai.com/found-the-cringe/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/found-the-cringe/</guid>
      <pubDate>Mon, 13 Oct 2025 10:28:20 GMT</pubDate>
      <description>I found the old stuff, and maybe a bit of me along with it.</description>
      <content:encoded><![CDATA[<p>Perhaps the universe willed me on after writing <a href="https://neobrutalist.insidemordecai.com/save-the-cringe/">the previous article</a>, or maybe it was just sheer luck.
After expressing my regret about deleting old pieces and media, I decided to dig through some things in storage, and what a surprise lay before me.
I found a few old novels and novellas I’d completely forgotten about, and even better, a couple of notebooks were mixed in there too.</p>
<p>All my early write-ups used to start on paper, and because of that, I now have access to some of my old poems, articles, and stories — some finished, others still in draft form.</p>
<p>I won’t lie, they’re a bit cringey as expected, but over the coming weeks and months I’ll figure out how to upload them here.
I’m not planning to actively promote them, but I’m genuinely excited to have recovered what feels like my lost archives.</p>
<p>Discovering them felt as if I’d stumbled upon a portable teleportation device.
In an instant I was pulled back: old habits, old friends, and familiar places flashing through my mind.
Each scribble, sketch up, sticky note, and all sorts of attachments in the notebooks carried a piece of who I used to be — a quiet reminder of how much of that version of me still lingers, and how much has changed.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Found%20the%20Cringe" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
    </item>
    <item>
      <title>Save the Cringe</title>
      <link>https://neobrutalist.insidemordecai.com/save-the-cringe/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/save-the-cringe/</guid>
      <pubDate>Tue, 30 Sep 2025 12:15:26 GMT</pubDate>
      <description>On why the embarrassing stuff is worth keeping.</description>
      <content:encoded><![CDATA[<p>I pride myself on having old photos backed up somewhere, and I also cheekily threaten some friends with posting their old photos but the irony never escapes me. </p>
<p>It always seems much easier to laugh at others&#39; old stuff than face your own.
So, my younger self went on an innocent purging spree of any photo I found somewhat embarrassing.
I even tore up some old writing from notebooks and deleted old blogs I had from about 2014.</p>
<p>The purging spree might also have been down to a fear of judgement or a desire to curate an image but that feels like the least of my worries now.
The notion that an old piece of work is not fit for existence seems very archaic to me now.
Archiving is crucial — it&#39;s why sites like <a href="https://web.archive.org/" target="_blank" rel="noopener noreferrer">The Wayback Machine</a> exist, to recover our lost memories by preserving scraps of what might otherwise disappear.</p>
<p>I get frustrated with my younger self when I recall some obscure memory, a project, a piece of writing, or a particular photo I can’t quite place. 
I end up questioning whether my memory is playing tricks on me. 
Did this moment even exist, or is my mind exaggerating it? </p>
<p>Luckily, I recovered some of the important photos, but most of my old write-ups are gone forever. 
The writing was probably not all that impressive and less polished than it is now (not that it is all that right now, but you get me), but that is perhaps what I crave.
There is a sense of growth in the cringe that comes with looking back.
Progress feels more real when you have tangible old pieces to measure yourself against.</p>
<p>What this experience taught me is that there&#39;s nothing wrong with &#39;over-backup&#39;.
I&#39;m not at the hoarding level where I refuse to delete anything, but I pause and think before aimlessly purging now. 
Maybe one day I&#39;ll even celebrate the cringey stuff by sharing a crazy photo or video.
The funny thing is, I feel less ashamed of sharing an old cringey piece of writing than I do a photo but that&#39;s a thought for another day.</p>
<p>We&#39;ve all had an embarrassing era: a deleted Tumblr page, old blogs, or near-ancient Facebook albums.
I think we should embrace the &quot;mess&quot; as part of the story.
I wish we all kept more of it — the raw, messy, and authentic proof of who we’ve been — because perfection was never the point.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Save%20the%20Cringe" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Opinion</category>
      <category>Archiving</category>
    </item>
    <item>
      <title>Odie</title>
      <link>https://neobrutalist.insidemordecai.com/odie/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/odie/</guid>
      <pubDate>Wed, 30 Jul 2025 17:58:21 GMT</pubDate>
      <description>A short, honest goodbye and the silence that remains.</description>
      <content:encoded><![CDATA[<p>The loss of a dear pet is one of the hardest things to bear.
I’ve lost pets before, in different ways, but nothing truly prepares you for the slow, painful anticipation of a loss you see coming.</p>
<p>It all started when my guard dog, Odie, missed his rabies shot.
If only he could talk to remind us, nudge us.
I was oblivious, until a few nights back when the signs began to show.
The vet confirmed it, and more painfully still, there’s no choice but to watch him go, slowly.</p>
<p>He’s fighting a battle he can’t win, and he seems to know it.
He isn’t wild or restless but just lies there quietly waiting for dusk to come.
His exit will be gracious (if that word even fits), full of dignity… but I still can’t bring myself to accept it.
Maybe writing this down, setting it free, will help.</p>
<p>He may just be a guard dog, not a house pet curled up on the couch, but words can’t quite hold his absence and the emptiness left behind.
I named him after the dog from my favourite childhood movie — Garfield.
The resemblance was there — he had the same look, the same naivety and even the cheerfulness.
Not to forget his little beef with my cats (little Garfields themselves).
He was the bully though 😂.</p>
<p>We expect him to guard the stars tonight but he is deeply missed.</p>
<p>Run free, little one. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Odie" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Personal</category>
    </item>
    <item>
      <title>Send Me a Song</title>
      <link>https://neobrutalist.insidemordecai.com/send-me-a-song/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/send-me-a-song/</guid>
      <pubDate>Tue, 03 Jun 2025 10:06:58 GMT</pubDate>
      <description>How music might help reconnect with old friends.</description>
      <content:encoded><![CDATA[<img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/send-me-a-song/img/graffiti.webp" alt="A wall graffiti with the text &#39;if we ever stop talking, send me a song&#39;" loading="lazy" decoding="async">
<p>Someone shared this photo recently as a status update and it had me intrigued.
I didn’t want to repost it because I thought it had an air of <em>uncoolness</em> but the statement is grounded in truth. </p>
<p>We all have a unique relationship with music. 
We scour different sources to discover new music. 
Some of us go deep, digging through obscure corners of the internet for new gems. 
Others stick to radio hits or build a collection of vinyls and high-end setups. </p>
<p>Whatever the approach, music can be more than just a personal escape. 
It can bridge the gap in our relationships. </p>
<p>We lose touch with old friends as life changes. 
Sometimes I want to reconnect with some but never quite know where to start.
There&#39;s always the fear that a simple &quot;hey&quot; might open doors I&#39;m not ready to walk through — there&#39;s always too many questions and much more explaining.</p>
<p>But maybe music can be that spark. </p>
<p>So, if you&#39;re reading this and feel like reconnecting, you can send me a song, however you want. 
It could be a tune that reminds you of yours truly, one I sang (or butchered), a new favourite, or one to express the pain I caused you or any other passionate feeling.</p>
<p>And hey, it doesn&#39;t have to be me.
If someone else comes to your mind, reach out to them. 
I&#39;m sure, just like me, they&#39;d love to hear what&#39;s playing on your end. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Send%20Me%20a%20Song" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Music</category>
    </item>
    <item>
      <title>Email Is Not Dead</title>
      <link>https://neobrutalist.insidemordecai.com/email-is-not-dead/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/email-is-not-dead/</guid>
      <pubDate>Thu, 08 May 2025 08:03:44 GMT</pubDate>
      <description>Make Email Cool Again.</description>
      <content:encoded><![CDATA[<p>Guess what? 
Email is not dead!
And this is yet another post about emails 😬</p>
<p>Of course email is not dead and might not die any time soon but it might as well be declared a relic of the past in regards to informal communication and that’s quite sad. </p>
<p>I feel like it should not be used purely for work, newsletters, scams, receiving codes when we sign up for yet another account and such. </p>
<blockquote>
<p>i have a quest for you - to make email something you cherish. 
— <a href="https://j3s.sh/" target="_blank" rel="noopener noreferrer">Jes Olson</a></p>
</blockquote>
<p>There is something interesting about communicating through a slow medium in the modern age (relative to instant messaging) that gets rid of the pressure to be constantly accessible 24/7 and encourages a more thoughtful message. </p>
<p>Also, please don’t make personal email formal with your ‘Best Regards’, ‘Sincerely’ and the many corporate alternatives out there.  Don’t bother with rules of capitalisation, play around ala Margo from John Green&#39;s <em>Paper Towns</em>.
Attach funky gif, rick-roll someone. 
Spice it up a bit, show some personality.</p>
<p>On a different note, I have recently reconnected with old friends via email.
Most of them find it odd but what’s a mere mortal got to do when someone changes their phone number for some reason or moves country and you lose touch.  Email often is the only constant in this case.</p>
<p>We should use email more to connect with each other. 
To start it off, if you have anything you want to share with me, send me one. 
Ask me about my hometown or country, my experiences, previous topics I’ve written about, tech, music, reading, anything really.
Don’t be shy, just write away. </p>
<p>If you don’t know where to get my details, hint hint, my <a href="https://neobrutalist.insidemordecai.com/contact/">contact page</a> has something 😂.</p>
<h3 id="explore-further">Explore Further</h3>
<ul>
<li><a href="https://j3s.sh/thought/there-is-beauty-in-the-minimalism-of-email.html" target="_blank" rel="noopener noreferrer">there is beauty in the minimalism of email</a></li>
<li><a href="https://www.justuseemail.com/" target="_blank" rel="noopener noreferrer">Just Use Email</a> - a site dedicated to the various ways people and small to medium-sized businesses (SMBs) should Just Use Email</li>
<li><a href="https://www.emailisnotdead.com/" target="_blank" rel="noopener noreferrer">Email is not dead. But email IS changing.</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Email%20Is%20Not%20Dead" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Email</category>
    </item>
    <item>
      <title>Bye Spotify, Hello Apple Music</title>
      <link>https://neobrutalist.insidemordecai.com/spotify-to-apple-music/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/spotify-to-apple-music/</guid>
      <pubDate>Wed, 02 Apr 2025 11:00:00 GMT</pubDate>
      <description>Going over why I’m switching from Spotify to Apple Music</description>
      <content:encoded><![CDATA[<p>After 8 years on Sweden’s finest app, 4000+ liked songs, a bunch of playlists and 100+ albums, I made the switch to Cupertino just over a month ago. </p>
<p>This wasn’t an easy decision to make.
It took a couple of months, and this time it might be for real.
I still love Spotify and it’s hard to hate on it.</p>
<h3 id="so-why-the-switch">So… Why the Switch?</h3>
<p>I know Spotify are trying to be profitable and being the everything audio app is their strategy but I like <a href="https://btxx.org/posts/one-thing/" target="_blank" rel="noopener noreferrer">my music player being just a music player</a>.</p>
<p>Objectively, the app became a bit more bloated and messy as soon as they started shoving all the podcast crap down our throats, and that was just the start.
Don’t get me wrong, I do love me some podcasts, but the experience is quite lacklustre on the green behemoth compared to dedicated podcast apps.
On a side note, do yourself a favour and use Pocket Casts or something else for podcasts, you’ll thank me later. </p>
<p>The algorithm, which I consider to be their biggest asset, started to deteriorate.
Connect bugged out on me for a couple of months.
Shuffle kept repeating the same five songs that also appeared on every playlist. 
I got the same old recommendations and nothing that explored the waters like before.
I discovered more new songs from my social circles than my music player, unlike before.
All this, just started to stain the app’s experience for me. </p>
<p>I first realised I wasn’t fully satisfied when YouTube Music officially launched in Kenya in 2023.
I gave their free trial a shot - twice actually.
The audio quality was slightly worse but the algorithm was significantly better. 
I rediscovered old favourites and new songs that I would go back and add on my Spotify playlists. 
Ultimately, I didn’t like the app but this proved once again that the streaming king didn’t have a firm grip on its throne. </p>
<p>So, my 4-year student plan came to an end and this felt like the most natural time to start over.</p>
<h3 id="why-apple-music-though">Why Apple Music, Though?</h3>
<p>I first felt the urge to switch when Apple introduced lossless audio, but back then, the experience on the other side was still amazing.
As soon as that changed, the lure of switching became greater.</p>
<p>This is not my first rodeo with Tim Cook’s app but it sure does feel like a fresh start. 
The UI is clean and more polished with less clutter like the TikTok-like feeds across the garden.
The lyrics view is amazing compared to how Spotify just regurgitates text from <a href="https://www.musixmatch.com/" target="_blank" rel="noopener noreferrer">Musixmatch</a>.
The animated cover art is amazing.
It strikes a good balance between freshening things up while maintaining the ethos of the album cover unlike Canvas that I always disabled on the other side. </p>
<p>The biggest difference though is the audio quality. 
Audiophiles will tell you that you can’t truly experience lossless audio wirelessly due to the inherent deficiencies of Bluetooth. 
That’s true, but I primarily use wired In-Ear Monitors (IEMs) and the difference is night and day. </p>
<p>Adele does background vocals on <a href="https://youtu.be/0N0RrFRPiKM" target="_blank" rel="noopener noreferrer">My Yvonne by Jack Peñate</a> and this was one of the first songs I played.
The difference in audio quality was immediately noticeable that it had me questioning if the arrangement was slightly different.</p>
<p>It feels like tracks are more dynamic with a different mix and better instrument separation.
A drum might pack more punch, the bass might be tighter, the strings might be more lifelike, the vocals might have a slightly different timbre etc.
Every song is just a bit fuller.</p>
<p>My appreciation of music has been refreshed and this makes the transition worth it.</p>
<h3 id="making-the-jump">Making The Jump</h3>
<p>The process is quite easy with the different playlist transfer tools available, but one can struggle with the paradox of choice. </p>
<p>I used a mix of the free offering by <a href="https://www.songshift.com/" target="_blank" rel="noopener noreferrer">SongShift</a> and <a href="https://playlistor.io/" target="_blank" rel="noopener noreferrer">Playlistor</a> and they were good.
They missed less than 4% of my library which isn’t all that good but not too bad. </p>
<p>Another amazing and highly recommended tool is <a href="https://www.obdura.com/playlisty/" target="_blank" rel="noopener noreferrer">Playlisty</a>. 
It worked well for my short playlists, and I would have paid to use it, but I wanted something free.<br>It remains my top recommendation though (plus its paid option is <a href="https://neobrutalist.insidemordecai.com/subscriptions/">not a subscription</a>). </p>
<p>I highly recommend you read the comparison article linked below by <a href="https://medium.com/@frida.beydon" target="_blank" rel="noopener noreferrer">Frida B</a>.</p>
<h3 id="not-gonna-lie-its-not-all-sunshine-and-rainbows">Not Gonna Lie, It’s Not All Sunshine and Rainbows</h3>
<p>I struggled with the UX in Apple Music especially when it comes to library organisation and some other small things but I’ve got a hang of it all.  </p>
<p>I’m yet to miss the social aspect but I’m well aware I’ll have to contend with sticking out like a sore thumb while using the fruit company’s jukebox.</p>
<p>The biggest thing I’m missing, though, is Spotify Connect.</p>
<p>Connect is super easy and very useful.
I switch from my phone to laptop quite a lot and the ability to open the app anywhere and simply resume playback is great. 
Frankly, Apple should blatantly copy this feature because Connect is woefully underrated. 
I hate that I have to start my music all over when switching devices.
For now, AirPlay is a decent “equivalent” but this is only available in the walled garden. </p>
<h3 id="would-i-ever-go-back">Would I Ever Go Back?</h3>
<p>Right now, I simply don’t know. </p>
<p>Spotify could fix some of the major grievances I had, finally ship HiFi at a decent price and I would switch back.
Apple could significantly change prices and I would reconsider. 
Either of them could introduce a revolutionary feature and I would follow them or to throw a spanner in the works, I could do an A/B test and discover I can&#39;t tell the difference between lossy and lossless audio and my life has been a lie.</p>
<p>There are quite a number of things both companies or their competitors could do to sway me one way or another but I’m satisfied with where I am for at least the next couple of months.</p>
<p>My ideal option would be simply owning my music with a collection of lossless audio files, an iPod Classic and a decent pair of IEMs but a guy can only dream for now.</p>
<h3 id="explore-further">Explore Further:</h3>
<ul>
<li><a href="https://medium.com/macoclock/playlist-transfer-tools-which-is-best-2c908f46d591" target="_blank" rel="noopener noreferrer">Playlist Transfer Tools: Which is best?</a></li>
<li><a href="https://youtu.be/-a7hx7Iir7I" target="_blank" rel="noopener noreferrer">Spotify VS Apple Music - Does lossless matter?</a> - explains if your platform supports true lossless.</li>
<li><a href="https://www.earlab.com.au/guide/what-are-iems" target="_blank" rel="noopener noreferrer">What are IEMs?</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Bye%20Spotify%2C%20Hello%20Apple%20Music" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Updates</category>
      <category>Spotify</category>
      <category>Apple Music</category>
    </item>
    <item>
      <title>Blog Questions Challenge</title>
      <link>https://neobrutalist.insidemordecai.com/blog-questions-challenge/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/blog-questions-challenge/</guid>
      <pubDate>Tue, 07 Jan 2025 14:47:49 GMT</pubDate>
      <description>Why I blog, my inspiration, the platform in use and other questions</description>
      <content:encoded><![CDATA[<p>I refreshed <a href="https://www.goldenhillsoftware.com/unread/" target="_blank" rel="noopener noreferrer">Unread</a> a few moments ago only to find three posts with the same title as this. 
And guess what? 
They all coincidentally reference each other. </p>
<p>I started with <a href="https://kevquirk.com/blog/blog-questions-challenge" target="_blank" rel="noopener noreferrer">Kev’s post</a>, then <a href="https://manuelmoreale.com/thoughts/blog-questions-challenge" target="_blank" rel="noopener noreferrer">Manu’s</a> and finally <a href="https://dltn.io/posts/blog-questions-challenge" target="_blank" rel="noopener noreferrer">Dalton’s</a>. 
Upon reading those, I thought why not give this a go, after all, I’ve never participated in any blogging challenge. </p>
<h2 id="why-did-you-start-blogging-in-the-first-place">Why did you start blogging in the first place?</h2>
<p>This all started around 2014 in high school with my first blog. 
Back then, I was very confident of my writing and even had the ambitions of publishing. 
I no longer share that ambition with my younger self but I still enjoy the act of writing.</p>
<p>I found writing to be an outlet to be more open and creative. 
My blog was something some schoolmates found surprising in contrast to how I was a bit more reserved to some of them. </p>
<p>At some point in my teenage years, my motivation was recognition and perhaps fame while trying to emulate my contemporaries and those I looked up to.
Ultimately, I still think the current iteration remains to be an outlet for what comes to mind. </p>
<h2 id="what-platform-are-you-using-to-manage-your-blog-and-why-did-you-choose-it">What platform are you using to manage your blog and why did you choose it?</h2>
<p>I love the idea of static site generators with how flexible and extremely lightweight they are and as such I’m currently using <a href="https://gohugo.io/" target="_blank" rel="noopener noreferrer">Hugo</a> hosted on <a href="https://pages.cloudflare.com/" target="_blank" rel="noopener noreferrer">Cloudflare Pages</a>.</p>
<p>Hugo is file based where all my posts and configurations are just Markdown files granting me full control of my site unlike other closed and often bloated offerings. 
It might not be the easiest option for those who are not tech-savvy but all it takes is a little curiosity and a can-do attitude to get started. </p>
<p>The community behind Hugo is also a big factor behind my decision, I can easily find resources online to help me set up or fix something. </p>
<h2 id="have-you-blogged-on-other-platforms-before">Have you blogged on other platforms before?</h2>
<p>Yes!
I started with Blogger when Google+ was my jam. </p>
<p>For most of my time writing online, I’ve had two concurrent blogs on different platforms sometimes due to my curiosity while constantly changing them. 
Inevitably I’ve used Tumblr, WordPress, Medium and everything in between. </p>
<h2 id="how-do-you-write-your-posts">How do you write your posts?</h2>
<p>I currently start my writing on Apple Notes with all the necessary Markdown syntax be it on my phone or laptop. 
I try to <a href="https://sive.rs/1s" target="_blank" rel="noopener noreferrer">write one sentence per line</a>.
Afterwards, it’s just a matter of quickly proofreading it, improving sentence structure if needed since I typically end up rambling on and finally correct grammar. 
Of course mistakes end up on the published piece, I correct them sometimes, I never realise sometimes and sometimes I couldn’t care less. 
It’s a part of blogging.</p>
<h2 id="when-do-you-feel-most-inspired-to-write">When do you feel most inspired to write?</h2>
<p>Most of my posts tend to be in response to something new I have discovered, read or listened to. 
This can be from my growing collections of blogs I read, podcasts, books I dive into, news stories and even music sometimes. </p>
<p>Often times, though, inspiration comes when I least expect it to. 
I might be in the shower, in public transport, running or walking. 
In such a situation I simply just note something down on Apple Notes or record a voice memo and get to it when I have the time. </p>
<h2 id="do-you-publish-immediately-after-writing-or-do-you-let-it-simmer-a-bit-as-a-draft">Do you publish immediately after writing, or do you let it simmer a bit as a draft?</h2>
<p>I would love to say that I publish immediately after my final full stop but I rarely do that.
This post is one of those few instances I’ve done that. </p>
<p>In some cases, I let it simmer for quite some time as I collect the necessary resources, information or form a coherent well articulated thought.</p>
<p>On most occasions though, I let it sit for a few hours before hitting the enter button. </p>
<h2 id="whats-your-favourite-post-on-your-blog">What&#39;s your favourite post on your blog?</h2>
<p>Hmm, this is a tough question. 
On some days it’s <a href="https://neobrutalist.insidemordecai.com/on-gamification/">I don’t like streaks</a>, on another it’s <a href="https://neobrutalist.insidemordecai.com/on-single-use-devices/">On Single-Use Devices</a> and sometimes <a href="https://neobrutalist.insidemordecai.com/joy-of-libraries/">The Joy of Libraries</a>. </p>
<p>Either way, I find Manu’s answer of “Always the next one” as the best way to look at this question.</p>
<h2 id="any-future-plans-for-your-blog">Any future plans for your blog?</h2>
<p>I find Hugo ticks all my boxes at the moment. 
I’m also satisfied with <a href="https://blowfish.page/" target="_blank" rel="noopener noreferrer">Blowfish</a> by <a href="https://n9o.xyz/" target="_blank" rel="noopener noreferrer">Nuno Coração</a>, it’s clean, well documented, constantly improving and I contribute to it at times. </p>
<p>Basically, I don’t have immediate plans but I know for a fact something will change in the far future.</p>
<hr>
<p>Those are my answers to the <a href="https://bearblog.dev/" target="_blank" rel="noopener noreferrer">Bear Blog</a> challenge, it felt very therapeutic answering them and I would urge anybody with a website to answer them.
Let&#39;s keep this rolling!</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Blog%20Questions%20Challenge" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Blogging</category>
      <category>Meta</category>
    </item>
    <item>
      <title>2024 in Books</title>
      <link>https://neobrutalist.insidemordecai.com/2024-in-books/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/2024-in-books/</guid>
      <pubDate>Fri, 03 Jan 2025 12:10:17 GMT</pubDate>
      <description>Quick overview on my 2024 in reading.</description>
      <content:encoded><![CDATA[<p>This was meant to be posted end of last year but as a result of the festivities and perhaps procrastination, here we are. </p>
<p>I wrapped up the year having read 28 books surpassing my reading goal of 20 books. 
That may sound impressive but my 2024 reads were filled with small and medium sized books with my average page count being 192 pages proving that my fear of chunky books remains present.</p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2024-in-books/img/overview.webp" alt="Image showing I read 28 books in 2024 being 5,385 pages. My shortest book was Leo Tolstoy&#39;s The Death of Ivan Ilych at 86 pages long and the longest book being Yann Martel&#39;s Life of Pi at 460 pages long." loading="lazy" decoding="async"><figcaption>Overview of books I read in 2024</figcaption></figure>
<p>The books that really stood out for me and I highly recommend were Madeline Miller’s <em>The Song of Achilles</em>, Philip Besson’s <em>Lie With Me</em>, Ray Bradbury’s <em>Fahrenheit 451</em>, Pierce Brown’s <em>Red Rising</em> (which I intend to continue with the series) and Elif Shafak’s <em>The Island of Missing Trees</em>. </p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2024-in-books/img/read-books.webp" alt="A collage of the book covers of all the books I read in 2024" loading="lazy" decoding="async"><figcaption>Books I read in 2024</figcaption></figure>
<p>A film that I find amazing and I’ve watched more than once is <em>Life of Pi</em>.
Why am I talking about a film?
Well, I was rudely surprised that it’s actually based on a book.
I read it and loved it especially the exploration of Pi’s relationship with religion which was only briefly mentioned in the film. </p>
<p>Anyway, my greatest discovery in the world of texts and characters was audiobooks as a direct result of a book slump.</p>
<p>As reading slumps go, I had one during a period of uncertainty mid-2024.
I wasn’t interested in anything whatsoever and I had no way of getting out of this vicious rut.
Out of nowhere, the least expected item came to my rescue - <em>House of The Dragon</em>. </p>
<p>I had never watched <em>Game of Thrones</em> and I wasn’t intending to.
This was down to my preconceived notions, it being eight seasons long and the joke that is the series finale (spoiler alert: I watched all eight seasons in a week) but <em>House of The Dragon</em> was still fresh and enticing… 
I dove right in and binged season one, caught up with season two as it aired and after the final episode, I was sold on the entire <em>Game of Thrones</em> franchise but more so the books as well. </p>
<p>A friend suggested I should get an Audible free trial to read George R.R. Martin’s <em>Fire &amp; Blood</em> and so I gave this a go. 
I got a wickedly nice three-month Audible Plus trial with two monthly credits. 
Since I didn&#39;t intend to keep the subscription, I hatched the quite original plan to &quot;buy&quot; all the chunky books on my to be read list. 
With that, I finally tried out some of the free books only available with my Audible Plus trial.</p>
<p>I had never seriously tried audiobooks before but what a lovely way to get off a reading slump! 
I listen to a lot of podcasts so this came naturally to me. 
I know some people don&#39;t rate audiobooks but isn’t the end goal to consume high quality books so if someone prefers it in audio form then let them be.
Nevertheless, out of the need to be more attentive, my system was to listen to the books while following along the text on my Kindle and this served me well. </p>
<p>I highly recommend audiobooks to anyone who has second-guessed them or if you want to get off a reading slump.</p>
<p>Anyhow, here are two extra screenshots to summarise my 2024 reading, you can also have a look at my <a href="https://goodreads.com/insidemordecai" target="_blank" rel="noopener noreferrer">Goodreads</a> profile for my book ratings/reviews or my <a href="https://www.goodreads.com/user/year_in_books/2024/148227803" target="_blank" rel="noopener noreferrer">2024 Year in Books</a>.
Also, tell me about your 2025 reading goals/plans and recommend some reads you find interesting. </p>
<p>Cheers ✌️</p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2024-in-books/img/most-read-genres.webp" alt="Image showing my most read genres in 2024" loading="lazy" decoding="async"><figcaption>My most read genres in 2024</figcaption></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/2024-in-books/img/months-read.webp" alt="Image showing the books I finished in each month of 2024" loading="lazy" decoding="async"><figcaption>Books I finished in 2024 and the month I finished them in</figcaption></figure>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%202024%20in%20Books" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Books</category>
      <category>My Reading Year In Review</category>
    </item>
    <item>
      <title>The Joy of Libraries</title>
      <link>https://neobrutalist.insidemordecai.com/joy-of-libraries/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/joy-of-libraries/</guid>
      <pubDate>Fri, 20 Dec 2024 14:35:00 GMT</pubDate>
      <description>Exploring the allure and vibes of libraries from my past</description>
      <content:encoded><![CDATA[<p>James from <em>James’ Coffee Blog</em> wrote <a href="https://jamesg.blog/2024/11/28/joy-of-bookshops/" target="_blank" rel="noopener noreferrer">The Joy of Bookshops</a> and just the title sparked something within me inspiring this piece.</p>
<p>I barely frequent bookshops or libraries. 
Actually, I don’t think I remember the last time I was in one despite being an avid reader but when I try to recall them, I get pleasant memories.
It’s a fact that they were becoming less popular worldwide but perhaps the only good thing out of TikTok is that BookTok has rekindled reading.</p>
<p>My experience and memories with libraries is more about the emotions and sensation than even the books themselves - which is odd.</p>
<p>When I was a kid I used to visit <em>shagz</em> (grandparent’s hometown) over the holidays.
Days would be spent reconnecting with cousins, telling stories, walking around the town and other typical activities but sometimes I went to the library.
This was the only public library in my <em>shagz</em>.
It was grand and it felt like being transported to a different world when you walk in.</p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/joy-of-libraries/img/kabarnet-library-floating-view.webp" alt="kabarnet library floating view" loading="lazy" decoding="async"></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/joy-of-libraries/img/kabarnet-library-inside.webp" alt="kabarnet library inside" loading="lazy" decoding="async"></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/joy-of-libraries/img/kabarnet-library-outside.webp" alt="kabarnet library outside" loading="lazy" decoding="async"></figure><figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/joy-of-libraries/img/kabarnet-library-side-view.webp" alt="kabarnet library side view" loading="lazy" decoding="async"></figure>
<figcaption>Photo credits: <a href="https://www.facebook.com/KNLSKenya/posts/kabarnet-library-enjoys-a-serene-environment-at-its-location-making-it-an-exitin/947815905258042/" target="_blank" rel="noopener noreferrer">The Kenya National Library Service </a></figcaption><p>The area was secluded among trees, it was calm with mostly the sounds of birds and nature and out of this serene environment sprang this stone library.
I remember the lady at the front desk was not too welcoming but that would never dampen my joy.
The building inside was massive with different sections depending on your age.
I always wanted to explore the big boys section, and I did sometimes, but the front desk lady had a keen eye.
There were books and more books towering over my younger self, you would think that was the entire knowledge base of the world but thank god I was wrong. </p>
<p>Maybe I&#39;m nostalgic with clouded memory and perhaps the library might not have the same feel to it, but the experience was glorious back then.</p>
<p>Back in primary school, one of the schools I was at was still new and expanding and as such we had this tiny library.
That’s an overstatement, it was more of a small room you borrowed from but didn’t overstay your welcome.
There were books everywhere, on the shelves and piles on the floor.
At some point we had a requirement to read a certain number of books every week and have a short synopsis of them so this was somewhere I frequented.
The place might have seemed claustrophobic but that was far from what I felt.
It’s like getting a big tight hug or having a cup of hot chocolate when it’s cold outside.</p>
<p>This experience isn’t just with physical libraries, I enjoy books based on experiences at bookshops or libraries.
Japanese books have beautiful covers and a subset within them are books with bookshops on the cover.
It’s basically a cheat code to have me read something, I mean that’s how Satoshi Yagisawa got me to read <em>Days at The Morisaki Bookshop</em>.</p>
<p>I know this might not be representative of everyone’s experience with bookshops or libraries but these places are cozy and welcoming.</p>
<p>If only they sold coffee then perhaps they might be profitable cause nothing beats reading with your favourite hot beverage by the side.
Paired up with the woody smell of old books, the moody lighting, the mosaic of textures when you run your fingers along book spines and the perfectly damped soundscape as if the books conspired to hush every sound that dared to intrude.
It’s a feeling that fully envelopes you and tingles all your senses, and boy oh boy would I want more of them in Kenya.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20The%20Joy%20of%20Libraries" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Books</category>
      <category>Libraries</category>
    </item>
    <item>
      <title>Spotify Wrapped 2024</title>
      <link>https://neobrutalist.insidemordecai.com/wrapped-2024/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/wrapped-2024/</guid>
      <pubDate>Wed, 11 Dec 2024 09:58:12 GMT</pubDate>
      <description>Quick overview of my 2024 music habits.</description>
      <content:encoded><![CDATA[<p>I thought I’d post my Spotify Wrapped on this corner of the internet this year and not just on social media.</p>
<p>It’s not Christmas, but it’s that time of the year to unwrap our music taste, discover how basic it is and have our egos crushed.
Being a Wednesday, I expected Wrapped to drop any time soon but nothing came while I jealously watched Apple Music users share their Replay.
As I drove back home, I kept wondering, who would end up on my list alongside Adele? </p>
<p>I have a list of albums to get to, be it to explore new artists or delve deeper into the discographies of some of my favourite musicians. 
Top on that was Pink Floyd’s <em>The Dark Side Of The Moon</em> and Radiohead’s <em>In Rainbows</em> and I managed to get to them.
Saying I love them is a massive understatement because I absolutely devoured those two albums, I was definitely expecting them to make an appearance. 
Lo and behold, they did not make it.</p>
<figure style="margin:16px 0"><img style="max-width:100%;height:auto;border:2px solid #101314" src="https://neobrutalist.insidemordecai.com/wrapped-2024/img/wrapped-2024-summary.webp" alt="My Spotify Wrapped 2024 summary with my top artists in this order: Beyonce, Adele, Billie Eilish, Doja Cat and James Blake. My top songs are Without You by TEEKS, Indigo Night by Tamino, Wanna Be by GloRilla with Megan Thee Stallion, BIRDS OF A FEATHER by Billie Eilish and Love In The Dark by Adele." loading="lazy" decoding="async"><figcaption>My Spotify Wrapped 2024 Summary</figcaption></figure>
<p>I got home and my top two songs came as no surprise to me. 
I have a soft spot for ballads that I can learn from while stretching my vocal pipes — no wonder Adele is my favourite artist.</p>
<p>TEEKS has mentioned before that he listens to Adele and the inspiration is clear on <em>Without You</em>.
He delivers an emotive performance with just the piano for accompaniment.
The background vocals join in and they are just so ethereal and velvety like embracing a cloud, the same could be said of Tamino’s Arabian touches.
I had never heard of Tamino before but <em>Indigo Night</em> and <em>Habibi</em> took over my life for some time. 
The writing, tender runs and other captivating vocal nuances have you in awe.</p>
<p>The simplicity in those songs make them stand out. 
I want to me close my eyes and get lost in their world as sounds envelope my ears. </p>
<p>The other top songs are: </p>
<ol start="3">
<li>GloRilla - Wanna Be (with Megan Thee Stallion)</li>
<li>Billie Eilish - BIRDS OF A FEATHER</li>
<li>Adele - Love In The Dark</li>
<li><a href="https://open.spotify.com/playlist/37i9dQZF1FoK546cZ4ZKkr" target="_blank" rel="noopener noreferrer">and here&#39;s the full list.</a></li>
</ol>
<p>I love Beyoncé and, retrospectively, it makes sense she appeared on my list but I did not expect her to top it.
I was in disbelief until I realised she dropped <em>COWBOY CARTER</em> this year and I finally gave <em>RENAISSANCE</em> another go on top of my usual Beyoncé rotations.
Clearly the data doesn’t lie, heck I was top 1% of her listeners.</p>
<p>Billie Eilish had quite an amazing year. 
<em>HIT ME HARD AND SOFT</em> was a masterpiece in my books with great production from FINNEAS. 
We get glimpses of Billie’s emotions with poignantly rich lyrics exploring different topics from love, sexuality, weight and everything in between.
This is an album where something will deeply resonate with you. </p>
<p>I don’t have much to say about Doja Cat besides she’s a talented well-rounded artist. 
<a href="https://youtu.be/mXnJqYwebF8" target="_blank" rel="noopener noreferrer"><em>Mooo!</em></a> is a satirical play on words and classic tunes while poking fun at the rap landscape of the time.
You could say the track was childish, but it was fun.
I still love it and that’s what got me onto her music back then. </p>
<p>James! James! James!
My friends will probably tell you he’s the only artist I speak so much about besides the obvious one starting with an A.
He’s my favourite male vocalist and producer of recent years with his angelic voice. 
I constantly revisit <em>Friends That Break Your Heart</em> which was my first full album from him. 
It’s the easiest entry point into his rich catalogue that stretches all the way back to his experimental electronic origins. </p>
<p>Perhaps this list wasn’t a surprise after all. </p>
<p>My top genres would probably have been Pop, Rap, R&amp;B, Rock and EDM, in that order, if Spotify had included them this year. 
That’s just one of the disappointing misses of Spotify Wrapped 2024.
Who would have guessed firing the entire office would be a detriment to them?</p>
<p>Anyway, what was on your Spotify Wrapped this year? And what would you definitively recommend I should listen to?</p>
<p><a href="https://open.spotify.com/playlist/37i9dQZF1FoK546cZ4ZKkr" target="_blank" rel="noopener noreferrer">Here&#39;s my Top Songs of 2024 playlist</a>.</p>
<h2 id="spotify-wrapped-2023-2022">Spotify Wrapped 2023 &amp; 2022</h2>
<p>I won&#39;t retroactively post articles of my previous ones but here&#39;s the data, playlists and social media posts of the time. </p>
<h3 id="2023">2023</h3>
<div style="overflow-x:auto;margin:16px 0"><table>
<thead>
<tr>
<th>Top Songs</th>
<th>Top Artists</th>
</tr>
</thead>
<tbody><tr>
<td>1. RAYE - Escapism. (with 070 Shake)</td>
<td>1. James Blake</td>
</tr>
<tr>
<td>2. James Blake - Mile High (feat. Travis Scott)</td>
<td>2. Metro Boomin</td>
</tr>
<tr>
<td>3. Metro Boomin - Creepin&#39; (with The Weeknd &amp; 21 Savage)</td>
<td>3. Doja Cat</td>
</tr>
<tr>
<td>4. Frank Ocean - Pink + White</td>
<td>4. Adele</td>
</tr>
<tr>
<td>5. Metro Boomin - Metro Spider (with Young Thug)</td>
<td>5. Rihanna</td>
</tr>
<tr>
<td><strong>Minutes Listened</strong>: 56,787</td>
<td></td>
</tr>
<tr>
<td><strong>Top Genre</strong>: Pop, Rap, Pop Dance, R&amp;B, Alternative R&amp;B</td>
<td></td>
</tr>
<tr>
<td><strong>Playlist:</strong> <a href="https://open.spotify.com/playlist/37i9dQZF1FabUsjBl7QvHA" target="_blank" rel="noopener noreferrer">Top Songs of 2023</a></td>
<td></td>
</tr>
<tr>
<td><strong>Social Media Posts:</strong> <a href="https://x.com/insidemordecai/status/1729900380262178852" target="_blank" rel="noopener noreferrer">Tweet</a>, <a href="https://www.threads.net/@insidemordecai/post/C0PKAqWiHe5" target="_blank" rel="noopener noreferrer">Thread</a>, <a href="https://bsky.app/profile/insidemordecai.com/post/3kfdoo4cemf2j" target="_blank" rel="noopener noreferrer">Skeet</a> 😂</td>
<td></td>
</tr>
</tbody></table></div>
<h3 id="2022">2022</h3>
<p>I&#39;m still shocked by the total minutes listened but I guess that&#39;s what endless hours of programming uni projects does to your stats.</p>
<div style="overflow-x:auto;margin:16px 0"><table>
<thead>
<tr>
<th>Top Songs</th>
<th>Top Artists</th>
</tr>
</thead>
<tbody><tr>
<td>1. James Blake - Life Is Not The Same</td>
<td>1. Adele</td>
</tr>
<tr>
<td>2. FKA Twigs - Two Weeks</td>
<td>2. Kendrick Lamar</td>
</tr>
<tr>
<td>3. Lil Dicky - Molly (feat. Brendon Urie of Panic at the Disco)</td>
<td>3. Kanye West</td>
</tr>
<tr>
<td>4. Elaine - You&#39;re the One</td>
<td>4. Doja Cat</td>
</tr>
<tr>
<td>5. Doja Cat - Streets</td>
<td>5. James Blake</td>
</tr>
<tr>
<td><strong>Minutes Listened</strong>: 117,052 🤯</td>
<td></td>
</tr>
<tr>
<td><strong>Top Genre</strong>: Pop, Rap, Alternative R&amp;B, EDM, Afropop</td>
<td></td>
</tr>
<tr>
<td><strong>Playlist:</strong> <a href="https://open.spotify.com/playlist/37i9dQZF1F0sijgNaJdgit" target="_blank" rel="noopener noreferrer">Top Songs of 2022</a></td>
<td></td>
</tr>
<tr>
<td><strong>Social Media Posts:</strong> <a href="https://x.com/insidemordecai/status/1597981761652547584" target="_blank" rel="noopener noreferrer">Tweet</a></td>
<td></td>
</tr>
</tbody></table></div>
<h3 id="2018-2021">2018 - 2021</h3>
<p>Sadly, I just have the playlists from between 2018 and 2021 but not any other data. 
I can only recall that Adele topped the list every year and there was an increase in minutes listened every consecutive year. </p>
<p>With that, cheers ✌️.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Spotify%20Wrapped%202024" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Spotify</category>
      <category>My Music Year In Review</category>
    </item>
    <item>
      <title>Fear of Being Cancelled</title>
      <link>https://neobrutalist.insidemordecai.com/cancelled/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/cancelled/</guid>
      <pubDate>Thu, 28 Nov 2024 09:54:53 GMT</pubDate>
      <description>Why I second-guessed my previous post.</description>
      <content:encoded><![CDATA[<p>While relaxing with a freshly brewed cup of coffee in hand, I got this wave of inspiration. 
The thought was always around but I could never find a way to put it in writing.
This time I was enthralled in a flow state, the words were floating around, spilling onto my keyboard and within no time I was done with the draft of my <a href="https://neobrutalist.insidemordecai.com/pronouns/">previous post</a>. </p>
<p>I gave it a quick read and for the first time I knew I had to ask someone else to review my work. </p>
<p>I don’t like having my creation “reviewed” or “approved” since after all, this is MY personal corner of the internet. </p>
<p>The reason for this exception is I was dealing with a contentious topic and of course I didn’t want to offend anyone. 
You have tread delicately nowadays and walk on egg shells while handling certain topics. 
Additionally, you could put out something and have it haunt your future self. 
Is that the best way to live? 
I doubt that. </p>
<p>I think the problem is we are living publicly either through social media or under the media’s watchful eye if somehow you are a celebrity reading my site. 
Previously you would stumble your way through your mistakes and come out the other end a better human without fear of some old tweet resurfacing.
Sadly, that’s no longer possible.</p>
<p>We should have more leeway since each one of us changes their ideologies and opinions throughout their life.
If you don’t then, you’re not growing or good on you for getting it right from the beginning. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Fear%20of%20Being%20Cancelled" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
    </item>
    <item>
      <title>I Struggle with Some Pronouns</title>
      <link>https://neobrutalist.insidemordecai.com/pronouns/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/pronouns/</guid>
      <pubDate>Sat, 16 Nov 2024 13:00:00 GMT</pubDate>
      <description>Navigating preferred pronouns, language, and the learning curve.</description>
      <content:encoded><![CDATA[<p>I struggle with the pronouns ‘they/them’ but let’s get things straight, I do not hate or discriminate against people who use these pronouns or the queer community at large. 
Quite contrary so please approach this with an open mind. </p>
<p>Genuine relationships are hard to come by, so you do you. 
You may not feel comfortable in your own skin or fit a certain mould, and to each their own. 
I’ll say goodbye to your old name and call you by your new one.  I’ll even make sure others respect your wishes and help you feel comfortable. </p>
<p>What I struggle with is referring to a single person as ‘they/them’. 
My challenge might stem from trying to be grammatically correct.  In that sense, I recognise ‘they’ as a third person pronoun that pairs with the verb ‘are,’ and that’s where difficulty lies. 
‘Are’ just oozes plurality making it difficult to say something like ‘they are eating’ to describe someone’s actions. 
Additionally, it can be hard to comprehend, especially if the person you’re speaking to isn’t aware you are referring to a single individual.</p>
<p>Should communication be challenging?
Definitely not. 
That’s why, in most cases, I don’t mind if someone mispronounces something or has a typo as long as the message gets across.  Regarding pronouns, I think this is one of those situations where everything is evolving right in front of us. 
All I can do is be open-minded, adapt and treat everyone like I’d want to be treated. </p>
<p>You might ask yourself, how does this affect me given my location?
I barely get to refer to someone using ‘they’ due to the rarity of finding non-binary individuals.
Despite that, in random discussions, I end up talking about some non-binary people, such as Sam Smith due to my love for music. 
Another situation is social media. 
I form connections with various people and I respect them. 
I actually refer to them using their preferred pronouns, though sometimes I might forget or slip and use a binary pronoun. 
That’s probably down to English and years of language habit. </p>
<p>I’m curious about your feedback and would genuinely like to get your take on this. 
There’s a <a href="https://neobrutalist.insidemordecai.com/reply-by-email/">reply-by-email</a> link at the bottom (please keep responses respectful). 
Share materials with me, your experience, and let’s have a genuine chat. </p>
<p>Cheers!</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20I%20Struggle%20with%20Some%20Pronouns" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
    </item>
    <item>
      <title>Iron Sky by Paolo Nutini</title>
      <link>https://neobrutalist.insidemordecai.com/iron-sky/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/iron-sky/</guid>
      <pubDate>Wed, 16 Oct 2024 13:00:00 GMT</pubDate>
      <description>My understanding of a politically charged song by this well renowned Scot.</description>
      <content:encoded><![CDATA[<p>There are some songs that just feel grand and Iron Sky is absolutely one of them. </p>
<p>The songs starts off with a slow and deep string. 
You almost get the feeling something heavy is lingering which is foreshadowing the message that Paolo will deliver.
Some piano chords join in with the drums for percussion. </p>
<p>27 seconds into the song is when Paolo soulfully comes in. 
With his raspy yet powerful voice, he enunciates his words and paints an image.
The image is that of a city that is working FOR something or someone bigger similar to slavery.
How people are turning to religion for salvation, but he questions if that is the ultimate source of power. </p>
<p>In the chorus, the painting is that of how people in authority use love and hate to politically charge us against each other. 
We are urged to overcome fear and get freedom.</p>
<p>After a couple bars of instrumentations and reflection, the painting continues. 
You get to see how governments can skew reality and truth in their favour and how the masses can quickly gobble it up. 
We blindly follow those filled with greed, bitterness and hate.</p>
<p>As we return back to the chorus, we find it slightly changed. 
Passionate as ever but now some brass instruments chime in.
Contrary to the first chorus where Paolo was making an observation and addressing us, this time he uses the pronouns ‘we’ to show he is part of us and wants us to unite - “we’ll rise.”</p>
<p>We also get the refrain where he urges us to hold on despite the all-consuming emotions used against us. </p>
<p>On top of that he brilliantly weaves in a powerful excerpt of Charlie Chaplin’s speech from The Great Dictator (1940). </p>
<blockquote>
<p>To those who can hear me, I say, do not despair.<br>The misery that is now upon us is but the passing of greed, the bitterness of men who fear the way of human progress. 
The hate of men will pass, and dictators die, and the power they took from the people will return to the people.<br>And so long as men die, liberty will never perish. 
Don&#39;t give yourselves to these unnatural men!<br>Machine men with machine minds and machine hearts!<br>You are not machines, you are not cattle, you are men! 
You, the people, have the power to make this life free and beautiful, to make this life a wonderful adventure. 
Let us use that power.<br>Let us all unite! </p>
</blockquote>
<p>I haven’t watched the film but it is a satirical comedy by Charlie Chaplin.
The situation was dire considering he was known for silent pictures.
This time he talks and voices his disapproval of the atrocities that was happening in Europe as World War II began.</p>
<p>Throughout Charlie Chaplin’s speech, the guitarist strums along as the excerpt is used to stylise the message Paolo has been painting. 
The instrumentation builds up as well as Charlie and we conclude that ultimately the power is with the people.</p>
<p>The final painting is that of a nation that is divided by the political class.</p>
<p>We come back to the chorus feeling charged with this newfound knowledge. 
We can unite and rise over the current lows of our cold society and freedom is nigh.</p>
<p>After following Paolo’s journey through the song, you get the urge to start a revolution.</p>
<p>Many find Charlie Chaplin’s speech in the film to be one of the greatest speeches and I agree with them. 
It is about the climate in the late 1930s but boy oh boy is it still relevant today.
In the end it’s about the love for humanity among all. </p>
<p>Iron Sky adds to that and is relevant in the political landscape in Kenya right now with the recent anti-government protests but also in most parts of the world.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://youtu.be/ELKbtFljucQ" target="_blank" rel="noopener noreferrer">Paolo Nutini - Iron Sky</a> - live session at Abbey Road.</li>
<li><a href="https://youtu.be/J7GY1Xg6X20" target="_blank" rel="noopener noreferrer">Charlie Chaplin’s final speech from The Great Dictator in full</a></li>
<li><a href="https://youtu.be/Sn-41BmWxJA" target="_blank" rel="noopener noreferrer">Mo Adeniran performing Iron Sky on The Voice UK</a> during his Blind Audition - this is how I discovered the song a couple of years back. Spoiler alert: he picked Jennifer Hudson and eventually won the season.</li>
<li><a href="https://youtu.be/k8bVG8XC-4I" target="_blank" rel="noopener noreferrer">The Great Dictator trailer</a> - more of a clip than a trailer but I guess it still works and it’s quite metaphorical. </li>
<li><a href="https://en.wikipedia.org/wiki/The_Great_Dictator" target="_blank" rel="noopener noreferrer">The Great Dictator’s Wikipedia page</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Iron%20Sky%20by%20Paolo%20Nutini" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Music</category>
    </item>
    <item>
      <title>Reply by Email</title>
      <link>https://neobrutalist.insidemordecai.com/reply-by-email/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/reply-by-email/</guid>
      <pubDate>Tue, 10 Sep 2024 14:00:00 GMT</pubDate>
      <description>Introducing blog comments via email.</description>
      <content:encoded><![CDATA[<p>Years ago, I left comments on people’s blogs which led to interesting discussions and even friendships.
I&#39;d like to return to that habit because it encourages interactions, and learning.</p>
<p>A few months back, I responded to a post by <a href="https://niqwithq.com/" target="_blank" rel="noopener noreferrer">Niq</a> via email and I found the interaction quite pleasant albeit short. 
He even shared with me extra details on my latest post at that point. </p>
<p>Through this interaction, I realised the benefits of this feature on a website, which led me down a rabbit hole of old posts I read before from Niq and <a href="https://kevquirk.com/" target="_blank" rel="noopener noreferrer">Kev Quick</a>. </p>
<p>That’s when I noticed many independent blogs have a &#39;Reply by Email&#39; option. 
I liked it due to its simplicity. </p>
<p>So you might ask yourself, what is &#39;Reply by Email&#39;? 
It’s simply a way to leave a comment but via email 😂</p>
<p>Email has been there for years and everyone has it so you don’t need to create an account to leave a comment. 
It also minimises spam because few will put in the effort just to send irrelevant comments.
Additionally, email encourages fleshed-out responses unlike the quick &#39;nice read&#39; comments typical on social media. </p>
<p>I could go on but I recommend you read <a href="https://niqwithq.com/posts/reply-by-email" target="_blank" rel="noopener noreferrer">Niq’s</a> and <a href="https://kevquirk.com/blog/online-conversations-website-engagement" target="_blank" rel="noopener noreferrer">Kev Quirk’s post</a> on it.</p>
<p>With all that, I got to working, developed the feature for <a href="https://blowfish.page/" target="_blank" rel="noopener noreferrer">Blowfish</a>, and it’s now live on this website - feel free to give it a try. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Reply%20by%20Email" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Web</category>
      <category>Opinion</category>
      <category>Meta</category>
    </item>
    <item>
      <title>On Single-Use Devices</title>
      <link>https://neobrutalist.insidemordecai.com/on-single-use-devices/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/on-single-use-devices/</guid>
      <pubDate>Wed, 21 Aug 2024 09:00:00 GMT</pubDate>
      <description>Thoughts on the appeal of dedicated gadgets in a smartphone era</description>
      <content:encoded><![CDATA[<p>Recently, I find myself watching and reading materials on single-use devices. My YouTube home page is filled with videos about iPods, e-readers, dumbphones, and other similar devices.</p>
<p>Why do I gravitate towards content about dedicated devices? Why are more people creating content around this topic? I’ve also noticed more content about physical media and ownership.</p>
<p>While going through my bags in my room earlier last month, I found an old digicam, a Sony Cyber-shot W710, and to my surprise, it worked perfectly. I could still post the old photos on it to social media, and no one would question the image quality. I mean, it would lose when put side by side with a Google Pixel, but it was a cheap entry-level digicam back then. Since discovering it, I get the urge to take more photos; I even went on a run with it since it’s pocketable.</p>
<p>Modern smartphones will be better than most single-use devices, but sometimes they can suffer from being a ‘Jack of all trades and master of none.’ <a href="https://www.youtube.com/@diggingthegreats" target="_blank" rel="noopener noreferrer">Digging The Greats</a> in his iPod miniseries (linked below) analogised this to a Swiss army knife. When you want to do some task, you don&#39;t instinctively go for the multi-tool but rather a dedicated more capable tool.</p>
<p>The main areas that appeal to me about single-use devices are that they excel at what they are made for and they don’t carry the baggage of distractions that come about with smartphones. I’ll use the example of an e-reader. <a href="https://neobrutalist.insidemordecai.com/wishlist-to-reality/">I own a Kindle</a>  and I can confidently say it is significantly superior to a smartphone or an iPad at reading. The screen is perfect, the battery lasts an eternity, and to tie in the other aforementioned reason, I get to have a proper reading session where I am not bombarded with notifications and other forms of distractions. </p>
<p>It’s not the manufacturer’s fault, but big tech companies want eyeballs on their apps, and this has brought forth dire consequences, but that’s a topic for another day.</p>
<p>I think the popularity of these devices will continue increasing as more and more people want to rid themselves of dependency on smartphones.</p>
<p>Truth be told, there is also a huge aspect of nostalgia that gets me (and probably a lot more people) googly eyes. Is that even a saying/phrase? I think you know what I mean though. </p>
<p>I never thought I’d be the one to enjoy this regression back to the mid-2000s, but I kinda like it. A dumbphone for calls, messages, MPESA, and basic functionality, iPods for music, e-readers for reading, a camera for photography. </p>
<p>While we’re at that, can someone make a dumbphone with decent Spotify (where&#39;s lossless audio?) and a proper digital-to-analog converter (DAC)? Please!</p>
<h2 id="digging-the-greats-ipod-miniseries">Digging The Greats&#39; iPod Miniseries</h2>
<p>From time to time, I watch videos by Digging The Greats and he just started this 4-part miniseries of his experience listening to music on just an iPod for a month. The first video is what made me want to make this post of what&#39;s been on my mind and as such I also recommend watching the miniseries.</p>
<p>He naturally goes through various stages until his eventual resolution to make technology work for him and more of a tool.</p>
<ol>
<li><a href="https://youtu.be/Ou2dW4qebbw" target="_blank" rel="noopener noreferrer">Using This iPod For 30 Days Changed My Life</a></li>
<li><a href="https://youtu.be/t9TZh0oNAHQ" target="_blank" rel="noopener noreferrer">The REAL Reason Algorithms are Bad For Culture (iPod Week 2)</a></li>
<li><a href="https://youtu.be/_L-WUrZ7tJM" target="_blank" rel="noopener noreferrer">I Dumb-i-fied my iPhone and Got My Life Back (iPod Week 3)</a> - personal favourite! </li>
<li><a href="https://youtu.be/VzKr-tMr8qQ" target="_blank" rel="noopener noreferrer">How to Use Technology WITHOUT the Addiction (iPod Week 4)</a></li>
</ol>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20On%20Single-Use%20Devices" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Dumbphone</category>
      <category>iPod</category>
      <category>eReader</category>
      <category>Camera</category>
    </item>
    <item>
      <title>Google ‘Killing’ Products Is Just a Marketing Issue</title>
      <link>https://neobrutalist.insidemordecai.com/google-killing-products-marketing-issue/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/google-killing-products-marketing-issue/</guid>
      <pubDate>Mon, 12 Aug 2024 13:05:11 GMT</pubDate>
      <description>Thoughts after Google &apos;killed&apos; Chromecast</description>
      <content:encoded><![CDATA[<p>Recently, <a href="https://arstechnica.com/gadgets/2024/08/google-kills-chromecast-replaces-it-with-apple-tv-and-roku-ultra-competitor/" target="_blank" rel="noopener noreferrer">Google ‘killed’ Chromecast</a> and launched a new product. As expected, media outlets ran with titles in the vein of ‘Yet another Google product is killed’.</p>
<p>It’s odd, but not surprising, that Google keeps ‘killing’ beloved products that are recognisable in favour of the sometimes bland ones, with added complexity and a touch of confusion for the end-customer.</p>
<p>They also have an <a href="https://www.computerworld.com/article/3482057/google-gemini-assistant.html" target="_blank" rel="noopener noreferrer">identity crisis with Gemini and Assistant</a>. Heck, Bard was a really good name and they had some sort of clear distinction back then. Look at the Google Duo, Google Meet (Original), and <a href="https://www.wired.com/story/google-meet-duo-video-chat-app-merger/" target="_blank" rel="noopener noreferrer">Google Meet mess</a>, but I digress.</p>
<p>In this case, Google didn’t really kill Chromecast but rather rebranded it into a much more capable device with a generic name. You can’t convince me Google TV Streamer was the best name they could come up with. The problem is, with time, we’ll just get used and possibly attached to this name right in time for them to ditch it. </p>
<p>They somehow always make it seem like they have killed certain products when in most cases they could easily spin it off that they’ve merged features into another product while retaining a beloved name. </p>
<p>If marketed properly, then we wouldn’t have the infamous <a href="https://killedbygoogle.com/" target="_blank" rel="noopener noreferrer">Google Graveyard</a>, or the bodies would have been significantly fewer. </p>
<p>Ultimately, I think it’s a marketing issue.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Google%20%E2%80%98Killing%E2%80%99%20Products%20Is%20Just%20a%20Marketing%20Issue" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Google</category>
    </item>
    <item>
      <title>I don&apos;t like streaks</title>
      <link>https://neobrutalist.insidemordecai.com/on-gamification/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/on-gamification/</guid>
      <pubDate>Wed, 24 Jul 2024 12:10:32 GMT</pubDate>
      <description>Critiquing gamification in apps for engagement.</description>
      <content:encoded><![CDATA[<p>Apple is working on bringing watchOS 11 in a few weeks, and one of the features that got people excited is the <a href="https://www.theverge.com/2024/6/13/24175506/apple-watch-watchos-11-rest-days-wearables" target="_blank" rel="noopener noreferrer">ability to have rest days on the Apple Watch</a>. </p>
<p>It’s amazing how that wasn’t possible before, but I’m glad it’s here. The human body needs to rest, and as such you wouldn’t expect someone to work out every day just to close their ring.</p>
<p>A lot of apps employ similar gamification strategies, which is unhealthy, and I hate it. </p>
<p>I used to be a huge Snapchat user, and its streaks feature ensured I opened the app every single day even if I wasn’t inclined to do so. That little fire emoji next to a friend’s name with the number of how many consecutive days you’ve sent pictures to each other was really valuable. </p>
<p>However, things started changing. On top of outgrowing the app, it started to feel like I’m forcing myself to keep the 1000+ streaks active. </p>
<p>It’s quite telling when it reaches a point where you’re doing the bare minimum just to keep a streak active. </p>
<p>On Snapchat, that’s usually a black photo with a lightning bolt or fire emoji. On Duolingo, that’s taking one short lesson or a practice session. </p>
<p>I mean, it’s desperate if a Bible app introduces gamification. Yes, you can spin it that it’s getting people to read a scripture every day but that’s not usually the case. Someone can simply open the app and close it swiftly after.  I began to dislike this feature in YouVersion Bible <a href="https://medium.com/sketchpad/broken-streaks-and-broken-hearts-fdc6427d8749" target="_blank" rel="noopener noreferrer">and I’m not alone</a>.</p>
<p>Those are just three examples of apps that I quit or barely use because of gamification. </p>
<p>I think we, as developers, should re-evaluate if apps really need gamification added to them. For some, the strategy is to ensure constant use of their apps but it shouldn’t be the case. </p>
<p>Of course, it will seem like turning a huge ship since in most cases some big tech is involved but generally, something needs to change as it’s clearly becoming unhealthy for most.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://youtu.be/6gRcbeFnucA?t=1957" target="_blank" rel="noopener noreferrer">Inside the global computer crash</a> - have a listen to this The Vergecast podcast (starts after the <a href="https://www.theverge.com/24201803/crowdstrike-microsoft-it-global-outage-airlines-banking" target="_blank" rel="noopener noreferrer">Crowdstrike IT outage discussion</a>) where <a href="https://en.wikipedia.org/wiki/Adrian_Hon" target="_blank" rel="noopener noreferrer">Adrian Hon</a> talks about his experience with Fitness apps and his approach to co-creating the popular fitness game <a href="https://zrx.app/" target="_blank" rel="noopener noreferrer"><em>Zombies, Run!</em></a> without including streaks and aggressive notifications but relying solely on a good storyline/motivator: </li>
<li><a href="https://medium.com/sketchpad/broken-streaks-and-broken-hearts-fdc6427d8749" target="_blank" rel="noopener noreferrer">Broken Streaks and Broken Hearts</a>.</li>
</ul>
<p>Cheers ✌️</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20I%20don't%20like%20streaks" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
    </item>
    <item>
      <title>Western Hypocrisy on Chinese EVs</title>
      <link>https://neobrutalist.insidemordecai.com/western-hypocrisy-on-chinese-evs/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/western-hypocrisy-on-chinese-evs/</guid>
      <pubDate>Sat, 15 Jun 2024 16:31:28 GMT</pubDate>
      <description>Protecting markets or stifling EV innovation?</description>
      <content:encoded><![CDATA[<p>Recently, The Verge had <a href="https://www.theverge.com/2024/6/12/24176871/eu-additional-tariffs-chinese-ev-imports" target="_blank" rel="noopener noreferrer">this headline</a> about the EU imposing more tariffs on Chinese electric vehicles (EVs). This mirrors similar actions by the US and  to me, it screams of hypocrisy. </p>
<p>On one hand, Western countries preach free trade yet these tariffs clearly contradict that. I know this might be to protect their local markets/companies but what irks me the most is this is particularly something that hinders the global effort towards tackling climate change. </p>
<p>They talk about countries switching to clean energy within a certain timeframe and sometimes in a condescending manners when to be fair most African countries rely on mainly green sources of energy - I acknowledge generalising. </p>
<p>It feels wrong when China have put their money where their mouth is and developed something that is good for the global goal of decarbonisation and all that. They are producing really good EVs from the likes of BYD at a lower price than its competitors. </p>
<p>Look at European brand, most of them manufacture their EVs in China, leveraging Chinese EV architecture that they have clearly perfected.</p>
<p>There is the argument that the Chinese government is unfairly playing its hand with the subsidies but I don’t think the end-consumer cares. </p>
<p>These tariffs and similar discussions shouldn’t be a thing when your goal is to transition from internal combustion engine (ICE) vehicles rapidly. </p>
<p>The relevant people should practice what they preach and foster actual competition that will result in better innovation around battery tech and ultimately economies of scale will work its wonders to bring EVs to the masses. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Western%20Hypocrisy%20on%20Chinese%20EVs" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Electric Vehicles</category>
    </item>
    <item>
      <title>Wishlist to Reality</title>
      <link>https://neobrutalist.insidemordecai.com/wishlist-to-reality/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/wishlist-to-reality/</guid>
      <pubDate>Sun, 24 Dec 2023 14:39:54 GMT</pubDate>
      <description>Just buy that product in your wishlist - that is what I did</description>
      <content:encoded><![CDATA[<p>We all have those items that linger in our Amazon baskets. For over a year, the Kindle Paperwhite sat patiently on my wish list, awaiting the moment when I could muster enough willpower (and perhaps some extra cash under my mattress) to check out.</p>
<p>Finally, I stumbled upon someone with a Kindle device, but it was the Basic version. Everything about it appealed to me, including the smaller size that I had previously thought would be less than ideal. This alone convinced me to finally get my own Kindle Basic.</p>
<p>Just go ahead and check out if you have a product that you&#39;ve wanted for some time.</p>
<p>I&#39;m definitely not promoting needless spending. Heck, I waited a bit longer to snag a Black Friday offer. My philosophy is that you should only do this for items that have gathered dust in your basket but you find yourself going back to frequently.</p>
<p>So, just get that Kindle.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Wishlist%20to%20Reality" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Opinion</category>
      <category>Amazon</category>
      <category>Kindle</category>
    </item>
    <item>
      <title>Less Technical, More Think Pieces</title>
      <link>https://neobrutalist.insidemordecai.com/more-think-pieces/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/more-think-pieces/</guid>
      <pubDate>Mon, 27 Nov 2023 15:03:23 GMT</pubDate>
      <description>Update on the evolution of this website</description>
      <content:encoded><![CDATA[<p>Some of you might have noticed that I&#39;m gradually shifting the tone and style of my writings on this blog. I&#39;m moving away from more technical articles to focus on personal opinion pieces. While still centred around tech, these posts will lean less on &#39;how-to&#39; and more on &#39;here&#39;s why.&#39;</p>
<p>I may include a few technical articles occasionally but not too often. Additionally, I might explore other topics of interest.</p>
<p>I don&#39;t want to box myself into a small corner, considering that my life has been anything but that. Looking at <a href="https://manuelmoreale.com" target="_blank" rel="noopener noreferrer">Manu Moreale&#39;s blog</a> and <a href="https://47nil.com" target="_blank" rel="noopener noreferrer">47nil</a> among others, I&#39;ve come to appreciate the freedom to write as little as a one-liner, a paragraph, or something longer, without feeling compelled to reach a certain length.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Less%20Technical%2C%20More%20Think%20Pieces" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Blogging</category>
      <category>Meta</category>
    </item>
    <item>
      <title>On Subscriptions</title>
      <link>https://neobrutalist.insidemordecai.com/subscriptions/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/subscriptions/</guid>
      <pubDate>Thu, 09 Nov 2023 12:05:53 GMT</pubDate>
      <description>Delving into current subscription complexities and advocating for changes</description>
      <content:encoded><![CDATA[<p>Roundabout 100 people from the streets, ask them about subscriptions, and you&#39;ll find that nearly everyone is familiar with the concept, unlike a few years ago - at least here in Kenya. Most likely, the majority among them have an active subscription.</p>
<p>Do I like subscriptions? Not really, but I don&#39;t have a strong opposition to them, especially when done right.</p>
<p>What I definitely don&#39;t like is everything becoming a subscription - seems everything has got a toll booth these days. From the controversial <a href="https://adguard.com/en/blog/subscriptions-cars-mercedes-netflix.html" target="_blank" rel="noopener noreferrer">locking certain built-in features in vehicles behind a paywall</a> to certain platforms offering subscriptions but still bombarding you with ads - it&#39;s like paying for a quiet library and getting a live concert.</p>
<p>Subscriptions used to be an ad-free and privary-respecting alternative to the free services we are used to.  </p>
<p>One bad example is the entertainment industry - not only is it getting pricier but also more fragmented. It&#39;s increasingly becoming better and easier to resort to piracy and use solutions like <a href="https://www.plex.tv/" target="_blank" rel="noopener noreferrer">Plex</a>/<a href="https://jellyfin.org/" target="_blank" rel="noopener noreferrer">Jellyfin</a> or your local media player. </p>
<p>Perhaps  we should switch to local-first solutions or self-hosting everything but not everyone is tech-savvy enough to DJ their own digital content. </p>
<p>Most of the content on the web is a labour of love and for now, I support subcriptions especially when it contributes to the creation of content I enjoy but I hope something changes, be it the profit-hungry business models or the economic system itself.</p>
<p>To conclude, have a listen to this Vergecast podcast that delves into the dilemma of self-hosting: <a href="https://youtu.be/07vW-wX_5NI?si=vIiVmA45ZottIHIt" target="_blank" rel="noopener noreferrer">An impossible journey into self-hosting | The Vergecast</a></p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20On%20Subscriptions" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Web</category>
      <category>Opinion</category>
      <category>Subscriptions</category>
    </item>
    <item>
      <title>Switched to Cloudflare Pages</title>
      <link>https://neobrutalist.insidemordecai.com/switched-to-cloudflare-pages/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/switched-to-cloudflare-pages/</guid>
      <pubDate>Fri, 18 Aug 2023 00:00:00 GMT</pubDate>
      <description>This website has migrated from GitHub Pages to Cloudflare Pages</description>
      <content:encoded><![CDATA[<p>For about a month, this website was not sending data to <a href="https://www.goatcounter.com/" target="_blank" rel="noopener noreferrer">GoatCounter</a>. I managed to resolve this but the rabbit hole led me to rediscover <a href="https://pages.cloudflare.com" target="_blank" rel="noopener noreferrer">Cloudflare Pages</a>.</p>
<p><strong>I still love and recommend GitHub Pages</strong>, with a simple GitHub Action you can deploy your project and even <a href="https://neobrutalist.insidemordecai.com/custom-domains-with-github-pages/">make use of custom domains</a>.</p>
<p>Anyway, for my use case, the top alternatives were Cloudflare Pages and <a href="https://www.netlify.com/" target="_blank" rel="noopener noreferrer">Netlify</a>. I currently manage domains on Cloudflare making it the obvious choice. </p>
<p>Some of <strong>the benefits of Cloudflare Pages</strong> include:</p>
<ul>
<li>Fast site performance on the Cloudflare network.</li>
<li>Easy to add a custom domain especially so if you use Cloudflare for domain management. </li>
<li>Free SSL certificate with any plan.</li>
<li>Ability to have preview deployments before rolling to production.</li>
</ul>
<p>The process of switching over was smooth. I connected Cloudflare Pages with my Git repository, set up build settings (just selecting Hugo as my framework) and deployed it. <strong>That easy!</strong> In my case, to setup a custom domain, Cloudflare simply added the necessary DNS records automatically.</p>
<p><strong>That&#39;s the update</strong>, for a guide on setting up Cloudflare Pages, have a look at <a href="https://developers.cloudflare.com/pages/get-started/guide/" target="_blank" rel="noopener noreferrer">Cloudflare Docs</a> or this <a href="https://youtu.be/MTc2CTYoszY" target="_blank" rel="noopener noreferrer">YouTube Video</a></p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Switched%20to%20Cloudflare%20Pages" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Cloudflare Pages</category>
      <category>Meta</category>
    </item>
    <item>
      <title>State of Social Media and My Journey Through It</title>
      <link>https://neobrutalist.insidemordecai.com/state-of-social-media/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/state-of-social-media/</guid>
      <pubDate>Mon, 14 Aug 2023 06:50:00 GMT</pubDate>
      <description>Here&apos;s my social media story and my hope for it&apos;s future.</description>
      <content:encoded><![CDATA[<p>On 7th October 2022, Elon Musk concluded his purchase of Twitter and it has been quite a journey since then. A journey Reddit took a liking to.</p>
<p>Let&#39;s take it back: the year is 2012, and behind my parent&#39;s back, I joined Facebook and revelled in this new world, all the while trying to be discreet. This did not last long, but surprisingly, I was not scolded. We had a talk of how I should use it and it was free rein from there.</p>
<p>Cue in a spree of joining every imaginable social media platform. It was love at first sight when I created my first Twitter account in 2013 but my teenage self picked up the bad habit of tweeting every minute from TV shows, and to this day, I still get tagged in those old cringe tweets. </p>
<p>Google+ came onto the scene and I have to admit that was one of the best platforms, alongside Twitter, if not the best.</p>
<p>Blogging became a huge thing and I jumped right in. However, one thing I regret is deleting my old blogs. I understand how cathartic that could have been but I have come to appreciate the importance of maintaining an archive where you can revisit your earlier work and perhaps find joy in observing your progress (or lack thereof) over time.</p>
<p>Facebook faced the Cambridge Analytica scandal and consequently I deleted most of my accounts in 2018/19 but replaced some with a clear focus on privacy.</p>
<p>Circle back to Elon&#39;s takeover of Twitter and alternative platforms like Mastodon rise but this time I&#39;m not hasty in joining them. </p>
<p>Meta capitalised on Twitter&#39;s issues by launching Threads, and technically, every Instagram user already had an account. To me, it felt like it was launched prematurely. It was great but it lacked a lot of features and Meta wasn&#39;t as aggressive as I expected in achieving feature parity with Twitter and building upon that.</p>
<p>In the same week, I got an invite into <a href="https://blueskyweb.xyz/blog/6-13-2023-what-is-bluesky" target="_blank" rel="noopener noreferrer">BlueSky</a> and it was amazing. It was everything I had hoped for albeit the userbase was minuscule. It had the same vibe as Twitter in its early days.</p>
<p><strong>Will the alternatives dethrone Twitter?</strong> Unlikely. Twitter is the juggernaut that popularised &#39;microblogging&#39; and it will take a lot to bring it down. Perhaps Elon himself will do that.</p>
<p><strong>So, what does the future hold?</strong> I don&#39;t know but juggling between Twitter, its alternatives and other platforms can be tiring. Ideally, platforms would be interoperable. </p>
<p>This will likely be a battle between protocols rather than the apps themselves. For example, Mastodon is built on top of <a href="https://www.theverge.com/2023/4/20/23689570/activitypub-protocol-standard-social-network" target="_blank" rel="noopener noreferrer">ActivityPub</a>, which enjoys support of multiple companies, while BlueSky utilises the <a href="https://atproto.com/" target="_blank" rel="noopener noreferrer">AT Protocol</a>.  If one of these protocols (or a new one) gains significant traction then the social networking landscape will change drastically. In theory, we wouldn&#39;t be tied to an organisation or a CEO which is quite exciting. Hopefully in the end we don’t all gravitate back towards a centralised platform.</p>
<p>I, for one, hope personal websites make a comeback. A place to call your home base. </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20State%20of%20Social%20Media%20and%20My%20Journey%20Through%20It" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Web</category>
      <category>Social Media</category>
      <category>Social Networking Protocol</category>
      <category>ActivityPub</category>
      <category>AT Protocol</category>
    </item>
    <item>
      <title>Enough with the Bloat</title>
      <link>https://neobrutalist.insidemordecai.com/bloatware/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/bloatware/</guid>
      <pubDate>Fri, 19 May 2023 06:00:57 GMT</pubDate>
      <description>Cut the bloat and embrace simplicity of default features.</description>
      <content:encoded><![CDATA[<p>For the love of God, please stop installing bloatware on your computer. I have noticed that people have a tendency to install every software they stumble upon, despite the fact that modern operating systems have a lot of features built-in.</p>
<p>I&#39;ll use Windows as an example, as it has the largest market share and a lot of people have this tendency. For example, if all you do with zip files is extract them, then Windows has you covered - you don&#39;t need WinRAR. Additionally, many people overlook the built-in disk cleanup utility provided by Windows. It&#39;s a powerful tool to clean up temporary files, various clutter as well as chunks left after Windows updates. Why do you need a registry cleaner, a cleanup utility or some driver pack installer? It&#39;s most likely just malware. Don&#39;t even mention those free antivirus software like McAfee - they&#39;re totally pointless. </p>
<p>Finally, if you only open PDFs but don&#39;t manipulate them, please don&#39;t install that Adobe software or Nitro PDF just for that. It&#39;s like trying to kill a bug with a car - your default browser has the capability to view PDFs.</p>
<p>I could go on and on but that&#39;s enough for now.</p>
<p>Perhaps it&#39;s a lack of understanding of newer applications and operating systems, or being stuck in the days of Windows Vista. Having a million apps will just slow down your computer, be a pain to update, or worse, be a potential cyber threat. Just don&#39;t install bloat on your computer.</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Enough%20with%20the%20Bloat" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Opinion</category>
      <category>Software</category>
      <category>Operating Systems</category>
      <category>Windows</category>
    </item>
    <item>
      <title>What Happens When You Type &apos;google.com&apos; Into Your Browser</title>
      <link>https://neobrutalist.insidemordecai.com/tracing-url-request/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/tracing-url-request/</guid>
      <pubDate>Fri, 14 Apr 2023 00:00:00 GMT</pubDate>
      <description>We trace a URL request from the browser to the server and its rendering.</description>
      <content:encoded><![CDATA[<div style="border:2px solid #101314;border-left:8px solid #009bad;background:#e2f5f5;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Note</p><p>This article was done in fulfillment of an assignment for a Software Engineering course.</p>
</div>
<p>Billions of people on earth open their browsers everyday and type their favourite website&#39;s URL - be it a social media site or some news outlet. Depending on your internet speed, this might be a matter of milliseconds but have you ever wondered what happens behind the scenes? I&#39;ll get into that, hint - it&#39;s a lot.</p>
<h2 id="dns-request">DNS Request</h2>
<p>Your browser does not know what &#39;google.com&#39; is so as soon a you hit enter, it tries to resolve this into an IP address - it does this using a DNS (Domain Name System) lookup. This is where your browser checks different locations for cached DNS data starting from its own cache, operating system, router and finally the DNS server at your Internet Service Provider (ISP). In the event the IP address of the website you want to visit can&#39;t be found, your browser does a recursive DNS lookup where it asks multiple DNS servers around the internet which in turn ask other DNS servers until it gets the DNS record. </p>
<p>At this point the DNS record is cached so that future requests for the same domain can be resolved more quickly.</p>
<h2 id="firewall">Firewall</h2>
<p>Once the browser sends a request, before it gets to the server it will pass through a firewall.</p>
<p>A firewall is a network security device that monitors incoming and outgoing network traffic and decides whether to allow or block specific traffic based on a defined set of security rules.</p>
<p>Its main function is to protect the network from threat actors so when you type <code>google.com</code>, the request passes through the firewall on its way to Google&#39;s servers where depending on the security rules access may be denied. </p>
<h2 id="browser-performs-tcp-3-way-handshake">Browser Performs TCP 3-Way Handshake</h2>
<p>Packets from the browser are sent to the server the IP address connects to using transmission control protocol (TCP). This is because TCP/IP is reliable and ensures data is sent in the correct order with no packetloss which is crucial when trying to load a website. </p>
<p>Here&#39;s what happens:</p>
<ol>
<li>The browser sends the initial packet with a SYN (SYNchronize) header bit to establish connection. (&quot;Hey, are you available next Tuesday?&quot;) </li>
<li>Upon receiving, the web server sends back a SYN-ACK (SYNchronize-ACKnowledge). (&quot;Hey, yes I am free.&quot;)</li>
<li>The browser send back ACK. (&quot;A-Okay, let&#39;s talk.&quot;)</li>
</ol>
<p>That is the 3-way handshake after which a socket is created. This is a two way communication link that facilitates transfer of data.</p>
<p>Most websites have migrated to HTTPS which encrypts the web traffic so if you had typed <code>http://www.google.com</code>, the web server will return a 301 error code for Permanent Redirect. The browser will be redirected to <code>https://www.google.com</code> but it will first send a FIN packet, the server will respond with ACK and the socket is closed afterwhich the browser will attempt to connect to the redirected link.</p>
<p>The DNS request and the 3-way handshake happen again as well as a SSL/TLS handshake. This is a negotiation between two parties on a network to establish the details of their connection. It determines what version of SSL/TLS will be used in the session, which cipher suite will encrypt communication, verifies the server (and sometimes also the client), and establishes that a secure connection is in place before transferring data.</p>
<h2 id="other-concepts-to-know">Other Concepts To Know</h2>
<h3 id="load-balancing">Load Balancing</h3>
<p>A load balancer sits in front of a server and distributes network traffic across all servers capable of fulfilling those request. It does this through various load balancing methods but its ultimate goal is to ensure no single server is overloaded by maximizing speed and capacity.</p>
<p>It is important to know that it is very likely that the first connection to <code>google.com</code> was made to a load balancer instead of actual web servers due to the large amount of traffic they receive. </p>
<p>If a server goes down, traffic is sent ot the remaining servers and if a new server is added, the load balancer starts sending requests to it.</p>
<h3 id="web-servers-vs-application-servers">Web Servers vs. Application Servers</h3>
<p>In a typical deployment, a website that provides both static and dynamically generated content runs web servers for the static content and application servers to generate content dynamically. </p>
<p>A web server is a computer program whose fundamental job is to accept and fulfill requests from clients for static content from a website (HTML pages, files, images, video, and so on).</p>
<p>An application server&#39;s fundamental job is to provide its clients with access to what is commonly called business logic, which generates dynamic content; that is, it’s code that transforms data to provide the specialized functionality offered by a business, service, or application. </p>
<p>All in all, the two concepts differ but they are usually deployed together to fulfill the request of a user for a website&#39;s content.</p>
<p>For the case of typing <code>google.com</code> into your browser, their web server will receive your request and process it, generate a response (static content) and send it back to the user&#39;s browser to render the web page. The web server will also get in touch with the application server to generate search results and in some complex cases, it may need to make a request to a database server.</p>
<h3 id="database-server">Database Server</h3>
<p>A database server runs a Database Management System (DBMS) and provides database services to clients. Its main role is to receive requests from client machines, search for the required data, and pass back the results. It consists of physical hardware as well as the software that runs the database. </p>
<p>It is a crucial component in the client-server computing environment where it provides business-critical information requested by the client systems. This information is sent back to the user and their browser will render it. </p>
<h2 id="browser-renders-the-content">Browser Renders The Content</h2>
<p>Once the browser has received the response from the servers, it inspects the response headers for information on how to render the resource.</p>
<p>In the response, there is a <code>Content-Type</code> header that tells the browser which resource it has received in the response body. For the case of a HTML file, the browser will render the structure of the page and if it gets other resources such as CSS, JavaScript or images, it will render them accordingly. </p>
<h2 id="summing-up">Summing Up</h2>
<p>This is the simplified final flow:</p>
<ol>
<li>On pressing enter, the browser finds the website&#39;s IP address with the help of a DNS server.</li>
<li>The browser then makes a connection with the web server (either directly or through a load balancer) using TCP/IP to send a copy of the website.</li>
<li>All the while, the back and forth communication passes through firewalls and if everything is approved, the servers (web, application and database server) start sending the website&#39;s content in small chunks (data packets).</li>
<li>The browser assembles the small chunks and renders the page to the user.</li>
</ol>
<p>You have successfully landed on <code>google.com</code> or any other website after multiple steps that barely takes more than a second.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://aws.amazon.com/blogs/mobile/what-happens-when-you-type-a-url-into-your-browser/" target="_blank" rel="noopener noreferrer">AWS: What happens when you type a URL into your browser?</a></li>
<li><a href="https://www.cisco.com/c/en/us/products/security/firewalls/what-is-a-firewall.html" target="_blank" rel="noopener noreferrer">Cisco: What Is a Firewall?</a></li>
<li><a href="https://www.ssl.com/article/ssl-tls-handshake-overview/" target="_blank" rel="noopener noreferrer">SSL.com: The SSL/TLS Handshake: an Overview</a></li>
<li><a href="https://moz.com/learn/seo/http-status-codes" target="_blank" rel="noopener noreferrer">Moz: HTTP Status Codes</a></li>
<li><a href="https://www.nginx.com/resources/glossary/load-balancing/" target="_blank" rel="noopener noreferrer">NGINX: What Is Load Balancing</a></li>
<li><a href="https://www.nginx.com/resources/glossary/application-server-vs-web-server/" target="_blank" rel="noopener noreferrer">NGINX: What Is an Application Server vs. a Web Server?</a></li>
<li><a href="https://phoenixnap.com/kb/what-is-a-database-server" target="_blank" rel="noopener noreferrer">phoenixNAP: What Is a Database Server &amp; What Is It Used For?</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20What%20Happens%20When%20You%20Type%20'google.com'%20Into%20Your%20Browser" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Web</category>
      <category>Networking</category>
      <category>DNS Request</category>
      <category>Firewall</category>
      <category>Load Balancing</category>
    </item>
    <item>
      <title>I&apos;m Ditching VS Code</title>
      <link>https://neobrutalist.insidemordecai.com/why-im-leaving-vs-code-for-vim/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/why-im-leaving-vs-code-for-vim/</guid>
      <pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate>
      <description>VS Code is good enough but here&apos;s why I prefer Vim.</description>
      <content:encoded><![CDATA[<p>My journey has been one where I find a text editor I like and I settle with that. I learnt programming around 2015 but nothing too serious, heck, I used Notepad on Windows. By 2016, I got more into it, discovered <a href="https://en.wikipedia.org/wiki/Atom_(text_editor)" target="_blank" rel="noopener noreferrer">Atom</a> and immediately fell in love with it.</p>
<p>It was marketed towards the kind of person who would tinker with things to suite their needs. Superficially though, I also liked the default colour scheme - One Dark.</p>
<p>Atom was my ride-or-die even though <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">VS Code</a> had gained some traction by now but that was until I joined uni in 2018. I noticed students who were more experienced than I was using VS Code, the least I could do was give it a try. I adopted it and it has been my preferred text editor. So what&#39;s changed?</p>
<h2 id="why-i-still-like-vs-code">Why I Still Like VS Code</h2>
<p>Yes, I still like VS Code. I have it configured as best as I can to how I like, it&#39;s easy to tweak so we could make a case for why I shouldn&#39;t leave it.</p>
<p>It has an integrated terminal, an entire marketplace for extensions, easily syncs my settings and has lots of themes. Also, any new technology or programming language will most likely have a guide on how to setup VS Code for it. It can act like an IDE or a simple text editor.</p>
<p>I still prefer using it for larger projects such as mobile development with Flutter because <strong>it gets the job done.</strong></p>
<p>These and many more are the reasons why year on year, VS Code leads in various surveys.</p>
<h2 id="why-vim">Why Vim?</h2>
<p>My previous encounter with Vim was the classic, enter and get stuck trying to exit. That was until I enrolled for a Software Engineering course with <a href="https://www.alxafrica.com/" target="_blank" rel="noopener noreferrer">ALX Africa</a> and we had to use Vim full time.</p>
<p>I watched a lot of tutorials on YouTube and one channel that kept popping up was <a href="https://www.youtube.com/c/theprimeagen" target="_blank" rel="noopener noreferrer">ThePrimeagen</a>. Using VS Code after watching him felt inefficient. I mean the dude was  flying through, I couldn&#39;t keep up but it inspired me. </p>
<p>Vim is <strong>minimal with great freedom</strong> on how maximal you want to make it. I mean minimalism is not the current trend but I still practice some of the learnings from it. </p>
<p>Coupled with the fact that as a Linux user, I often use the terminal, Vim was essentially shouting my name.</p>
<h2 id="the-switch">The Switch</h2>
<p>My course forced me to dive headfirst into Vim since we had to SSH into remote servers and the terminal was our only option.</p>
<p>We had a two-week period to get the gist of things so my plan was to quickly learn the basics before slowly swimming to the deep end. </p>
<p>Vimtutor came to the rescue in learning Vim movements and other basic commands, it&#39;s literally a program that runs you through a tutorial of vim.</p>
<p>I later realised we didn&#39;t need to SSH into ALx Africa&#39;s servers, that was just an easier way to facilitate those who don&#39;t use Linux or don&#39;t have easy access to computers. At this point, I could use VS Code on my PC and forget about Vim but I had the itch from my Atom days to stick and tinker around. </p>
<p>It felt amazing to use Vim, maybe I&#39;m better than everyone else 😂.</p>
<h2 id="hows-the-going">How&#39;s the going?</h2>
<p>It&#39;s been about 4 months now, and I&#39;m not ThePrimeagen level but I feel comfortable with Vim.</p>
<p>I mentioned Vim comes with great freedom on how maximal you want to make it, I started with the simple basics of adding line numbers, configuring indentation, syntax processing etc.</p>
<p>Thereafter, I discovered <a href="https://www.youtube.com/c/TJDeVries" target="_blank" rel="noopener noreferrer">TJ Devries</a> and opted to go with <a href="https://neovim.io/" target="_blank" rel="noopener noreferrer">Neovim</a> due to some good defaults it packs and the community behind it. I slowly added more to my config, setup plugins, language support and even migrated from Vimscript to Lua.</p>
<p>Currently I use it for most of my projects.</p>
<h2 id="conclusion">Conclusion</h2>
<p>So why I&#39;m I ditching VS Code? I like the minimal nature of Vim, the fact it&#39;s terminal-based, the endless configuration options and it&#39;s just fun. Perhaps ditching is overexaggerating but I will use VS Code way less than I used to. Who knows, I might switch back to it in the far future.</p>
<p>Vim is a great tool but can be very overwhelming with its steep learning curve. The trick is to add things bit by bit as well as understanding what you add to you config rather than blindly copying someone&#39;s setup. That being said, here&#39;s my dotfiles for inspiration.</p>
<p>It is also an interesting and fun rabbit hole to go down from vanilla Vim to the variety of flavours. There&#39;s always something to learn.</p>
<p>Till next time, cheers.</p>
<h2 id="explore-further">Explore Further</h2>
<ul>
<li><a href="https://opensource.com/resources/what-vim" target="_blank" rel="noopener noreferrer">What is Vim?</a></li>
</ul>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20I'm%20Ditching%20VS%20Code" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
      <category>Opinion</category>
      <category>Text Editors</category>
      <category>Vim</category>
      <category>VS Code</category>
    </item>
    <item>
      <title>Setting up Custom Domains on GitHub Pages</title>
      <link>https://neobrutalist.insidemordecai.com/custom-domains-with-github-pages/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/custom-domains-with-github-pages/</guid>
      <pubDate>Mon, 09 Jan 2023 00:00:00 GMT</pubDate>
      <description>How to switch from GitHub Pages&apos; default github.io domain.</description>
      <content:encoded><![CDATA[<p>GitHub Pages publishes your site on a domain that looks like <code>USERNAME.github.io</code>. This is all fine and good but you can make it yours by adding a custom domain and still benefit from the free hosting.</p>
<h2 id="prerequisites">Prerequisites</h2>
<p>The only prerequisites are:</p>
<ol>
<li>Own a domain or have access to one.</li>
<li>Have a site making use of GitHub Pages.</li>
</ol>
<p>Have a look at <a href="https://insidemordecai.com/how-i-created-my-site-for-free/" target="_blank" rel="noopener noreferrer">how I created this site for free with Hugo and GitHub pages</a> to get you started if you do not have a site up and running. </p>
<p>For the domain, you can buy yourself one on <a href="https://namecheap.com" target="_blank" rel="noopener noreferrer">Namecheap</a> or <a href="https://domains.google.com" target="_blank" rel="noopener noreferrer">Google Domains</a> or any other registrar. They are relatively inexpensive.</p>
<h2 id="update-your-dns-settings">Update Your DNS Settings</h2>
<p>I typically add my custom domain to GitHub Pages at the end after configuring my DNS settings.</p>
<div style="border:2px solid #101314;border-left:8px solid #009bad;background:#e2f5f5;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Note</p><p>Your DNS records should point to <code>USERNAME.github.io</code> and NOT the repository name. Once set up, GitHub will figure out which page to serve.</p>
</div>
<h3 id="configure-a-subdomain">Configure a subdomain</h3>
<p>If you own a subdomain such as<code>blog.example.com</code> then all you have to do is:</p>
<ol>
<li>Head over to where you manage your DNS configurations (typically your registrar) </li>
<li>Add a CNAME pointing to your GitHub Page. For my other blog, <a href="https://auto.insidemordecai.com" target="_blank" rel="noopener noreferrer">auto.insidemordecai.com</a>, that meant adding a CNAME record called <code>auto</code> that points to <code>insidemordecai.github.io</code></li>
</ol>
<p>I recommend leaving the TTL setting in Auto until you understand more about it then you can tweak to your liking.</p>
<h3 id="configure-an-apex-domain">Configure an apex domain</h3>
<p>For an apex domain such as <code>example.com</code> or this site, then the steps are:</p>
<ol>
<li>Head over to where you manage your DNS configurations (typically your registrar)</li>
<li>Add four A records with the name as your apex domain (in my case, <code>insidemordecai.com</code>) that each point to <a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site#configuring-an-apex-domain" target="_blank" rel="noopener noreferrer">GitHub Pages&#39; IP addresses as seen here</a> (just copy-paste).</li>
</ol>
<p>I recommend also setting up a configuration for a <code>www</code> subdomain as it is easy for someone to assume your site&#39;s address starts as so. The steps for this are the same as above, for me that meant creating a CNAME record named <code>www</code> pointing to <code>insidemordecai.github.io</code></p>
<h2 id="update-your-github-repository">Update Your GitHub Repository</h2>
<ol>
<li>Head over to your GitHub repository and navigate to the GitHub Pages settings.</li>
<li>Under &#39;Custom domain&#39;, type your custom domain and click save.</li>
</ol>
<p>GitHub will check for the DNS configuration we made and your site should be live on this new address in a few. To not spook the visitors of your site when their browser warns them of an unsecure site, you can check the <strong>Enforce HTTPS</strong> box on this page.</p>
<h2 id="fix-github-actions-removing-the-cname-file">Fix GitHub Actions Removing the CNAME File</h2>
<p>After adding your custom domain to the site&#39;s repository, GitHub commits a CNAME file but if you have a GitHub Actions workflow then this file is deleted with every new change and your site is inaccessible. </p>
<p>For Hugo sites, we can fix this by:</p>
<ol>
<li>On the root of our repository, create a directory called <code>static</code></li>
<li>Navigate into the new directory and create a file called <code>CNAME</code></li>
<li>Edit the file to have a single line that is just your custom domain, either your apex domain (<a href="https://insidemordecai.com" target="_blank" rel="noopener noreferrer"><code>insidemordecai.com</code></a>) or your subdomain (<a href="https://auto.insidemordecai.com" target="_blank" rel="noopener noreferrer"><code>auto.insidemordecai.com</code></a>)</li>
<li>Push your local changes to GitHub.</li>
</ol>
<p>You&#39;re done!</p>
<p>Till next time, feel free to reach out. Cheers!</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Setting%20up%20Custom%20Domains%20on%20GitHub%20Pages" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Static Site Generators</category>
      <category>GitHub</category>
      <category>Custom Domains</category>
      <category>Hugo</category>
    </item>
    <item>
      <title>How I Created My Site For Free with Hugo and GitHub Pages</title>
      <link>https://neobrutalist.insidemordecai.com/how-i-created-my-site-for-free/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/how-i-created-my-site-for-free/</guid>
      <pubDate>Mon, 26 Dec 2022 05:37:27 GMT</pubDate>
      <description>In this post we go over the ease of creating a site using Markdown</description>
      <content:encoded><![CDATA[<p>If you are like me, then you&#39;ve probably wanted to create a personal site but the available options were either expensive or simply not good enough. That was until I learnt of static site generators and their simplicity. This blog you are reading is made using Hugo and hosted on GitHub. </p>
<p>Here is the process:</p>
<ol>
<li>Installing Hugo </li>
<li>Creating your new hugo site</li>
<li>Building the site</li>
<li>Hosting with GitHub Pages</li>
</ol>
<h2 id="installing-hugo">Installing Hugo</h2>
<p>This part may differ based on your development setup. I&#39;d recommend Chocolatey for Windows and Homebrew for Mac but Hugo has <a href="https://gohugo.io/installation" target="_blank" rel="noopener noreferrer">documentation on the many installation methods.</a> For Linux, Hugo is most likely on your distribution&#39;s repository but you can check out the documentation.</p>
<h2 id="creating-your-new-hugo-site">Creating Your New Hugo Site</h2>
<ol>
<li>Open your console, navigate to where you want to save your site and run <code>hugo new site .</code> to create the site in the current directory. If you&#39;d like to create the site in a new directory, run <code>hugo new site SITE_NAME</code>. </li>
<li>Look for a Hugo theme and setup the site skeleton based on the theme&#39;s documentation. I personally use <a href="https://blowfish.page" target="_blank" rel="noopener noreferrer">Blowfish</a></li>
</ol>
<p>I recommend downloading themes as a <a href="https://git-scm.com/book/en/v2/Git-Tools-Submodules" target="_blank" rel="noopener noreferrer">Git Submodule</a> as this will make it easier to update them. It&#39;s also important to choose a theme with great documentation for your ease of use.</p>
<h2 id="building-the-site">Building The Site</h2>
<p>At this point we already have a skeleton of a site and we can run <code>hugo server</code> at the root of our site. This will also allow us to observe the changes we make and their effect. You can run <code>hugo server -D</code> if you want to test out with some draft posts as by default Hugo doesn&#39;t show drafts.</p>
<p>Your site is now available at <code>http://localhost:1313</code></p>
<p>Google as well as your theme&#39;s documentation will be your friend from hereon. You can check out the exampleSite and other sites that use the same theme for inspiration.</p>
<h2 id="hosting-with-github-pages">Hosting with GitHub Pages</h2>
<ol>
<li><p>Create a <strong>public</strong> GitHub repository named <code>YOUR_GITHUB_USERNAME.github.io</code> but can use any other name. (we&#39;ll get to that later)</p>
</li>
<li><p>As you might have noticed, when you run <code>hugo</code> or <code>hugo server</code>, some directories are created. These aren&#39;t required and therefore we can create a .gitignore file and add <code>/public</code> and <code>/resources</code> to it.</p>
</li>
<li><p>Push your changes to the GitHub repository we created.</p>
</li>
<li><p>Set up GitHub Actions by creating a file in <code>.github/workflows/gh-pages.yml</code>. <a href="https://gohugo.io/hosting-and-deployment/hosting-on-github/#build-hugo-with-github-action" target="_blank" rel="noopener noreferrer">Copy the content of the file from this section of the Hugo documentation.</a></p>
<p>What this does is once GitHub notices changes to your main branch,  it will perform a set of actions to publish your site to <code>gh-pages</code> branch.</p>
</li>
<li><p>Push the GitHub Actions file and you&#39;re done.</p>
</li>
</ol>
<p>Your site is now live at <code>YOUR_GITHUB_USERNAME.github.io</code>. If you chose to use a different repository name then your site is live at <code>YOUR_GITHUB_USERNAME.github.io/REPOSITORY_NAME</code></p>
<p>Some YouTube channels that I found helpful when creating my site were <a href="https://www.youtube.com/@ChrisStayte" target="_blank" rel="noopener noreferrer">Chris Stayte</a>, <a href="https://www.youtube.com/@EricMurphyxyz" target="_blank" rel="noopener noreferrer">Eric Murphy</a> and <a href="https://www.youtube.com/@LukeSmithxyz" target="_blank" rel="noopener noreferrer">Luke Smith</a>.</p>
<p>Till next time, feel free to reach out. Cheers!</p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20How%20I%20Created%20My%20Site%20For%20Free%20with%20Hugo%20and%20GitHub%20Pages" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Static Site Generators</category>
      <category>Hugo</category>
      <category>GitHub</category>
      <category>GitHub Pages</category>
    </item>
    <item>
      <title>Things To Do After Installing Fedora Workstation</title>
      <link>https://neobrutalist.insidemordecai.com/fedora-linux-setup-guide/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/fedora-linux-setup-guide/</guid>
      <pubDate>Thu, 27 Oct 2022 20:05:20 GMT</pubDate>
      <description>A beginner friendly way of how I go about setting up Fedora Linux and GNOME.</description>
      <content:encoded><![CDATA[<p>This is exactly as the title suggest - setting up <a href="https://getfedora.org" title="Fedora - Welcome to Freedom." target="_blank" rel="noopener noreferrer">Fedora Workstation</a>, feel free to follow my guide tweaking where necessary.</p>
<h2 id="dnf-configuration">DNF Configuration</h2>
<p>By default DNF is slow (maybe DNF5 might change that in the future), to fix that we shall add a DNF flag to allow more than one download at a time and set yes as the default option for future DNF commands.</p>
<pre><code class="language-sh">echo &#39;max_parallel_downloads=10&#39; | sudo tee -a /etc/dnf/dnf.conf
echo &#39;defaultyes=True&#39; | sudo tee -a /etc/dnf/dnf.conf
</code></pre>
<h2 id="system-update">System Update</h2>
<pre><code class="language-sh">sudo dnf update -y
</code></pre>
<h2 id="enable-rpm-fusion">Enable RPM Fusion</h2>
<p>This will give us access to way more apps/software that are not available on the standard Fedora repository.</p>
<pre><code class="language-sh">sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf groupupdate core
</code></pre>
<p>For more information, check out the <a href="https://rpmfusion.org/Configuration" title="RPM Fusion&#39;s Configuration Page" target="_blank" rel="noopener noreferrer">RPM Fusion</a> website</p>
<h2 id="enable-flathub">Enable Flathub</h2>
<p>Older Fedora versions ship with a filtered Flathub enabled,therefore, we need to add <a href="https://flathub.org" title="An app store and build service for Linux" target="_blank" rel="noopener noreferrer">unfiltered Flathub</a> to use their store.</p>
<pre><code class="language-sh">flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
</code></pre>
<h2 id="install-media-codecs">Install Media Codecs</h2>
<p>After setting up RPM Fusion, you can add these multimedia packages:</p>
<pre><code class="language-sh">sudo dnf groupupdate multimedia --setop=&quot;install_weak_deps=False&quot; --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
sudo dnf group upgrade --with-optional Multimedia
</code></pre>
<p>Recently, Fedora removed some hardware accelerated codecs from their default install but the guys at RPM Fusion have done their magic. Head over to the <a href="https://rpmfusion.org/Howto/Multimedia" title="RPM Fusion&#39;s Multimedia Page" target="_blank" rel="noopener noreferrer">Multimedia page of RPM Fusion</a> and under the Hardware Accelerated Codec section, pick the command(s) for your setup. For those running Intel 5th Gen (Broadwell) and above pick the <code>intel-media-driver</code> option while those running older processors can opt for <code>libva-intel-driver</code>. </p>
<p>For more information, check out the <a href="https://rpmfusion.org/Configuration" title="RPM Fusion&#39;s Configuration Page" target="_blank" rel="noopener noreferrer">RPM Fusion</a> website.</p>
<h2 id="add-extra-fonts">Add Extra Fonts</h2>
<pre><code class="language-sh">sudo dnf install fira-code-fonts &#39;mozilla-fira*&#39; &#39;google-roboto*&#39; -y
</code></pre>
<p>For compatibility, Microsoft fonts may be needed:</p>
<pre><code class="language-sh">sudo dnf install -y curl cabextract xorg-x11-font-utils fontconfig
sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
</code></pre>
<!--
And finally adding, [an alternative to proprietary fonts:][fedora-better-fonts]

```sh
sudo dnf copr enable dawid/better_fonts -y
sudo dnf install fontconfig-font-replacements -y
```
--><p>I also add these fonts to <code>~/.local/share/fonts</code> since I use them in my terminal emulator and other apps:</p>
<ul>
<li><a href="https://github.com/dtinth/comic-mono-font" title="A legible monospace font...  the very typeface you’ve been trained to recognize since childhood" target="_blank" rel="noopener noreferrer">Comic Mono</a></li>
<li><a href="https://github.com/epk/SF-Mono-Nerd-Font" title="Apple&#39;s SF Mono font patched with the Nerd Fonts patcher" target="_blank" rel="noopener noreferrer">SF Mono Nerd Font</a></li>
</ul>
<div style="border:2px solid #101314;border-left:8px solid #009bad;background:#e2f5f5;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Note</p><p>If not satisfied, there is always the option of adding fonts into the fonts directory from Windows or another Operating System</p>
</div>
<h2 id="install-gnome-tweaks">Install GNOME Tweaks</h2>
<p>This allows us to make some customization changes like adding/removing titlebar buttons (maximize/minimize), changing themes and fonts among other things. I tend to change the Monospace Text font to a Nerd Font.</p>
<pre><code class="language-sh">sudo dnf install gnome-tweaks
</code></pre>
<p>In my experience, changing these helps a lot:</p>
<ul>
<li><strong>Hinting</strong>: Slight</li>
<li><strong>Antialiasing</strong>: Subpixel (this may vary depending on your display setup).</li>
</ul>
<p>Use <a href="https://github.com/lassekongo83/adw-gtk3" title="An unofficial GTK3 port of libadwaita." target="_blank" rel="noopener noreferrer">adw-gtk3</a> as the theme for legacy apps for them to look more cohesive with other apps using <a href="https://gitlab.gnome.org/GNOME/libadwaita" title="Libadwaita on GNOME&#39;s GitLab - Building blocks for modern GNOME applications" target="_blank" rel="noopener noreferrer">libadwaita</a>.</p>
<h2 id="install-apps-and-extensions">Install Apps and Extensions</h2>
<p>Apps I use include:</p>
<ul>
<li><strong>Browsers</strong>: Firefox (flatpak version), <a href="https://brave.com/" title="Brave Browser - Browser Privately!" target="_blank" rel="noopener noreferrer">Brave Browser</a></li>
<li><strong>Coding</strong>: VS Code, <a href="https://developer.android.com/studio" title="The official Integrated Development Environment (IDE) for Android app development." target="_blank" rel="noopener noreferrer">Android Studio</a>, Neovim</li>
<li><strong>Gaming</strong>: Steam</li>
<li><strong>Multimedia</strong>: Spotify, VLC, Jellyfin</li>
<li><strong>Terminal Emulator</strong>: Alacritty (including <a href="https://github.com/Stunkymonkey/nautilus-open-any-terminal" title="Nautilus plugin to allow opening any terminal" target="_blank" rel="noopener noreferrer">nautilus-open-any-terminal</a> and <a href="https://starship.rs/" title="Command line prompt" target="_blank" rel="noopener noreferrer">starship</a>)</li>
<li><strong>Torrent Client</strong>: qBittorrent</li>
<li><strong>Utilities</strong>: htop, <a href="https://xtremedownloadmanager.com/" title="Powerfull download accelerator and video downloader." target="_blank" rel="noopener noreferrer">Xtreme Download Manager</a> (only for YouTube and large downloads)</li>
<li><strong>Others</strong>: Discord, Extension Manager, gThumb, <a href="https://protonvpn.com/support/official-linux-vpn-fedora/" title="ProtonVPN installation guide for Fedora" target="_blank" rel="noopener noreferrer">ProtonVPN</a>, <a href="https://pwr-solaar.github.io/Solaar/" title="Linux Device Manager for Logitech Unifying Receivers and Devices." target="_blank" rel="noopener noreferrer">Solaar</a> (for Logitech peripherals)</li>
</ul>
<p>Afterwards, I remove the extra apps thats I don&#39;t need, for me these include totem (GNOME Videos), GNOME Weather, Firefox (pre-installed version), GNOME Terminal etc.</p>
<p>Typically I play around with some extensions or have mixed feelings about some (<strong>*</strong>) but these are the extensions that I install from the Extensions Manager app and use:</p>
<ul>
<li>AppIndicator and KStatusNotifierItem Support</li>
<li>Blur my Shell <strong>*</strong></li>
<li>Caffeine</li>
<li>Dash to Dock</li>
<li>GSConnect</li>
<li>Pano - Clipboard Manager</li>
<li>Rounded Window Corners</li>
</ul>
<div style="border:2px solid #101314;border-left:8px solid #009bad;background:#e2f5f5;padding:12px 14px;margin:16px 0"><p style="margin:0 0 8px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#0b4f56">Note</p><p>I do not recommend installing a lot of extensions as they could slow down your system or some could be left unmaintained/lose support across GNOME updates.</p>
</div>
<h2 id="firefox-tweaks">Firefox Tweaks</h2>
<p>On Firefox, YouTube shows the scrollbars in fullscreen which makes it very easy for me to accidentally click it and suddenly move down the page. To fix this, I add this line to my <a href="https://ublockorigin.com/" title="uBlock Origin - Free, open-source ad content blocker." target="_blank" rel="noopener noreferrer">uBlock Origin</a> filter:</p>
<pre><code class="language-text">www.youtube.com##ytd-app:style(overflow: hidden !important;)
</code></pre>
<p>That line disables YouTube&#39;s scroll-to-comments &quot;feature&quot; which to me is not as important but used to be to quickly check video publish date.</p>
<p><a href="https://www.reddit.com/r/firefox/comments/lija24/comment/gph104v/?utm_source=share&amp;utm_medium=web2x&amp;context=3" title="comment on r/Firefox" target="_blank" rel="noopener noreferrer">Credit: This Reddit comment</a></p>
<p>By default, hardware acceleration is disabled but head over to <code>about:config</code> and toggle this option:</p>
<pre><code class="language-text">media.ffmpeg.vaapi.enabled
</code></pre>
<p>I&#39;ve also noticed that the flatpak version of Firefox does not have two finger swipe by default, run this command to fix that:</p>
<pre><code class="language-sh">sudo flatpak override --env=MOZ_ENABLE_WAYLAND=1
</code></pre>
<h2 id="setup-coding-environment-and-dotfiles">Setup Coding Environment and Dotfiles</h2>
<p>I usually create a directory in <code>~</code> where I set up Flutter and any other SDK in this directory. Afterwards, I create another directory in <code>~</code> to store most of my projects.</p>
<p>At this point, I clone my <a href="https://github.com/insidemordecai/.dotfiles" title="My dotfiles backup repository on GitHub" target="_blank" rel="noopener noreferrer">dotfiles backup</a> into <code>~</code> and run the script to setup my config files.</p>
<h2 id="make-it-yours">Make It Yours</h2>
<ul>
<li>Change wallpaper</li>
<li>Schedule night light</li>
<li>Add online accounts</li>
<li>Mute system sounds and mic</li>
<li>Switch to 24h clock format</li>
<li>Add, reorder and remove items from the dock</li>
</ul>
<p>Anyway, feel free to reach out.</p>
<p>Cheers ✌️</p>
<h2 id="note-to-self">Note To Self</h2>
<p>The curled scripts below are meant for my personal use. It performs most of the things listed in this article apart from: installing extensions, installing Android Studio, Firefox tweaks, changing GNOME Tweaks, setting up Flutter</p>
<pre><code class="language-sh">curl -s -o- https://raw.githubusercontent.com/insidemordecai/.dotfiles/main/quick-setup/fedora.sh | bash
curl -s -o- https://raw.githubusercontent.com/insidemordecai/.dotfiles/main/quick-setup/rpm-apps-install.sh | bash
curl -s -o- https://raw.githubusercontent.com/insidemordecai/.dotfiles/main/quick-setup/flatpaks-install.sh | bash
</code></pre>
<!-- Links - place alphabetically --><div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Things%20To%20Do%20After%20Installing%20Fedora%20Workstation" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Technical</category>
      <category>Operating Systems</category>
      <category>Linux</category>
      <category>Fedora</category>
      <category>Post Install</category>
    </item>
    <item>
      <title>Hello World</title>
      <link>https://neobrutalist.insidemordecai.com/hello-world/</link>
      <guid isPermaLink="true">https://neobrutalist.insidemordecai.com/hello-world/</guid>
      <pubDate>Thu, 27 Oct 2022 09:00:39 GMT</pubDate>
      <description>A short introduction to mention what I intend to do with this website.</description>
      <content:encoded><![CDATA[<p>Thank you for passing by. </p>
<p>This is just a short introduction piece to mention what I intend to do with this website. Very much like how printing &quot;Hello world&quot; is usually the first thing one learns when they begin programming.</p>
<p>I plan on this being more like a frankenstein of a blog and a portfolio - blogfolio, is that even a word? It will host articles on things I find interesting around tech including concept breakdowns, Linux and FOSS or how-tos just for my referral in the future and in the process benefit whoever stumbles upon this.</p>
<p>Also, as a side-effect, this website will function as a landing page to replace link aggregators like <a href="https://linktr.ee/" title="Linktree is a freemium social media reference landing page." target="_blank" rel="noopener noreferrer">Linktree</a> that I currently use.</p>
<p>As this is a static site, currently a comment section is not implemented and I am not sure if I&#39;ll do so. I am weighing up the pros and cons of having it but we&#39;ll see how this goes. </p>
<p>Anyway, feel free to reach out to me. You can have a look at my <a href="https://neobrutalist.insidemordecai.com/about/">About</a> page.</p>
<p>Cheers </p>
<div style="margin:28px 0 8px;padding:16px;border:2px solid #101314;background:#ffd447"><p style="margin:0 0 10px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em">Got thoughts?</p><a href="mailto:mk@insidemordecai.com?subject=Re%3A%20Hello%20World" style="display:inline-block;border:2px solid #101314;background:#fffdf6;padding:8px 14px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-size:13px;font-weight:700;text-decoration:none;color:#101314">Reply by email →</a></div>]]></content:encoded>
      <category>Updates</category>
    </item>
  </channel>
</rss>
