<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>The Only Blog Ever</title>
  <subtitle>A technical blog.</subtitle>
  <link href="https://theonlyblogever.com/feed.xml" rel="self" />
  <link href="https://theonlyblogever.com/" />
  <updated>2026-09-20T21:30:00Z</updated>
  <id>https://theonlyblogever.com/</id>
  <author>
    <name>Brendan</name>
  </author>
  <entry>
    <title>Angry, Anxious and Done</title>
    <link href="https://theonlyblogever.com/blog/2026/angrypartII.html" />
    <updated>2026-09-20T21:30:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/angrypartII.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/wZ0GxWSjOX-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/wZ0GxWSjOX-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/wZ0GxWSjOX-1400.jpeg&quot; alt=&quot;Building in Alaska, transformed with imagemagick&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Source: Self, from somewhere in Seattle&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The AI industry, driven by unfathomable new&lt;br&gt;
levels of greed, gobbled up all the memory chips, prices for&lt;br&gt;
SSDs and DRAM exploded.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Lucie Hartmann, MNT Reform Next - Operators Handbook - 1st Edition (September 2026)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It&#39;s time to start being angry. Angry about rising costs, rising temperatures, and rising social disparity. As wealth inequality grows, social movements and well-meaning manifestations have been nothing more than corporately co-opted marketing monuments. They&#39;ve printed it on a t-shirt, payed Meta and Google for some ad placement, glued-up some billboards, and padded themselves on the back for a job well-done.&lt;/p&gt;
&lt;p&gt;We are bombarded with advertisements, non-stop notifications, and now, cyclically reasoning models who cannot know anything new. They are not a new life-form. They are a recycled facsimile of our past, a life-less husk scraping our windows, trying to force us to pay attention by regurgitating what we already likely know.&lt;/p&gt;
&lt;p&gt;I keep having this experience, I search (ex., for a concept, software project, computer hardware, musician, or topic) for something I would have found, before 2022, referenced on a forum, on a personal blog, in a news article, or on a wiki. Now, and the results returned are a simulacrum of the previous Internet. It&#39;s always the same dark colours; same terminal inspired fonts; the same spacing; the forgettable name and logo.&lt;/p&gt;
&lt;p&gt;The content &lt;em&gt;is&lt;/em&gt; likely the result of processing from a large language model, taking a collection of contextually similar writings and combining them into a website that seems like documentation or a personal blog.&lt;/p&gt;
&lt;p&gt;There will come a time when we will not be able to tell the difference between the artificial and the organic.&lt;/p&gt;
&lt;p&gt;-- Brendan (September 2026)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Cleaning Up the Homelab and a Disk Transplant: A Weekend Sensation</title>
    <link href="https://theonlyblogever.com/blog/2026/fakesysadmin.html" />
    <updated>2026-09-12T21:30:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/fakesysadmin.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kPxD-z-482-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kPxD-z-482-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/kPxD-z-482-1400.jpeg&quot; alt=&quot;BAXIAL, a homelab server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;BAXIAL&lt;/code&gt; has gotten some system and physical maintenance today. I&#39;ve decommissioned the &lt;a href=&quot;https://theonlyblogever.com/blog/2025/l2arc_zfs.html&quot;&gt;L2ARC cache&lt;/a&gt; drive. It wasn&#39;t doing much anyway. I needed extra space on my system drive to store Docker container data (ex., Jellyfin metadata) and the Syncthing database. To alleviate that space issue, I&#39;ve copied my system from the &lt;code&gt;256 GB Patriot Scorch NVMe&lt;/code&gt; SSD to the &lt;code&gt;1 TB Samsung 860 QVC&lt;/code&gt; SSD. I&#39;ll use the old nvme for future system.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-jRJDHFTuJ-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-jRJDHFTuJ-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/-jRJDHFTuJ-1400.jpeg&quot; alt=&quot;BAXIAL the server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;In the past, I would have used &lt;a href=&quot;https://clonezilla.org/downloads.php&quot;&gt;Clonezilla&lt;/a&gt;, on a bootable USB, to transfer the data and then gparted to extend the new partition to fill the avaiable space. This works well and avoids the cache file corruption issues that I had below. Clonezilla works by writing an ISO live image to a USB drive, so your system is not writing to the drive while you image it to a new disk drive. If I was to do this again, I would use the time-tested offline Clonezilla method.&lt;/p&gt;
&lt;div class=&quot;ai-warn&quot;&gt;&lt;p&gt;&lt;u&gt;AI Warning&lt;/u&gt; I used ChatGPT to help find commands to do this data transfer. I&#39;m disgusted with myself. As always, this post was not written or edited with AI or LLM tools. The commands below are for reference--mostly for me to remember what I did.&lt;/p&gt;
&lt;p&gt;If you&#39;re going to do this understand what each command does before you hit &lt;em&gt;Enter&lt;/em&gt;. These commands are also specific to my systems drive naming and specific use-case.&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;disk-transplant&quot;&gt;Disk Transplant&lt;/h2&gt;
&lt;p&gt;Transplanting the system files was a matter of the following steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Check disk information.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;lsblk -o NAME,SIZE,MODEL,FSTYPE,FSVER,MOUNTPOINTS
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Format the disk.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo lsblk -f /dev/sdd
sudo wipefs -n /dev/sdd
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Create new GPT, EFI and root partitions on the new disk. Ensure that it is the correct disk.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo parted /dev/sdd --script &#92;
  mklabel gpt &#92;
  mkpart ESP fat32 1MiB 1GiB &#92;
  set 1 esp on &#92;
  mkpart root ext4 1GiB 100%
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo mkfs.fat -F32 /dev/sdd1
sudo mkfs.ext4 -L BAXIAL-ROOT /dev/sdd2
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;Check the currently formatted filesystem.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;df -h /
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;Create a mountpoint for the new disk&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /mnt/newroot
sudo mount /dev/sdd2 /mnt/newroot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and, check that it was created.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;df -h /mnt/newroot
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;6&quot;&gt;
&lt;li&gt;Copy the running filesystem data to the new SSD.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo rsync -aAXHv --info=progress2 &#92;
  --exclude=&#39;/dev/*&#39; &#92;
  --exclude=&#39;/proc/*&#39; &#92;
  --exclude=&#39;/sys/*&#39; &#92;
  --exclude=&#39;/run/*&#39; &#92;
  --exclude=&#39;/tmp/*&#39; &#92;
  --exclude=&#39;/mnt/*&#39; &#92;
  --exclude=&#39;/media/*&#39; &#92;
  --exclude=&#39;/lost+found&#39; &#92;
  / /mnt/newroot/
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;7&quot;&gt;
&lt;li&gt;Mount and copy the EFI partition files.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /mnt/newroot/boot/efi
sudo mount /dev/sdd1 /mnt/newroot/boot/efi
sudo rsync -aAX /boot/efi/ /mnt/newroot/boot/efi/
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;8&quot;&gt;
&lt;li&gt;Get the &lt;code&gt;UUID&lt;/code&gt; values for the new system disk to update &lt;code&gt;fstab&lt;/code&gt; replacing the values and check the file.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo blkid /dev/sdd1 /dev/sdd2

sudo nano /mnt/newroot/etc/fstab

cat /mnt/newroot/etc/fstab
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;9&quot;&gt;
&lt;li&gt;Prepare a &lt;code&gt;chroot&lt;/code&gt; and &lt;code&gt;mount&lt;/code&gt; the required directories.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo mount --bind /dev /mnt/newroot/dev
sudo mount --bind /dev/pts /mnt/newroot/dev/pts
sudo mount -t proc /proc /mnt/newroot/proc
sudo mount -t sysfs /sys /mnt/newroot/sys
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo chroot /mnt/newroot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, you are inside the chroot on the new disk. The next steps need to happen on the new disk.&lt;/p&gt;
&lt;ol start=&quot;10&quot;&gt;
&lt;li&gt;Install and update &lt;code&gt;GRUB&lt;/code&gt; bootloader onto the new disk.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;grub-install &#92;
  --target=x86_64-efi &#92;
  --efi-directory=/boot/efi &#92;
  --bootloader-id=ubuntu &#92;
  --recheck
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It should respond,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Installation finished. No error reported.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, upgrade grub.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;update-grub
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;11&quot;&gt;
&lt;li&gt;Check that our files are all present for the bootloader.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;ls -l /boot/efi/EFI/ubuntu/
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;efibootmgr -v
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;12&quot;&gt;
&lt;li&gt;Exit the &lt;code&gt;chroot&lt;/code&gt; and shut down all docker containers.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo docker stop

sudo docker ps -q

sudo docker ps
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;13&quot;&gt;
&lt;li&gt;
&lt;p&gt;Do a final copy including any recent changes running &lt;code&gt;rsync&lt;/code&gt; as before with an additional &lt;code&gt;--delete&lt;/code&gt; flag to remove files that have been removed from the source disk.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unmount the disk.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sudo umount -R /mnt/newroot
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;14&quot;&gt;
&lt;li&gt;Reboot to ensure the system is booting from the new SSD.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In my case, I had to hit &lt;code&gt;F12&lt;/code&gt; and change the boot device. I had to check my &lt;code&gt;/etc/fstab&lt;/code&gt; again for the proper drive UUID before the system would boot from &lt;code&gt;/dev/sdd&lt;/code&gt; and not &lt;code&gt;/dev/nvme0n1&lt;/code&gt;.&lt;/p&gt;
&lt;ol start=&quot;15&quot;&gt;
&lt;li&gt;Bring the containers back up and ensure everything works as expected. A few containers, in this case, had corrupted cache files that needed clearing before the container was reporting as &lt;code&gt;healthy&lt;/code&gt; again.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;monitoring-and-alerting&quot;&gt;Monitoring and Alerting&lt;/h2&gt;
&lt;p&gt;I&#39;ve wanted proper monitoring and alerting for my systems. I&#39;ve installed &lt;a href=&quot;https://github.com/henrygd/beszel&quot;&gt;Beszel&lt;/a&gt; for hardware and container monitoring. Once it was all running, I wanted to find how I could monitor BAXIAL to ensure it was discoverable on the network. Beszel can &lt;a href=&quot;https://beszel.dev/guide/heartbeat&quot;&gt;provide alerts&lt;/a&gt;. I installed &lt;a href=&quot;https://github.com/louislam/uptime-kuma&quot;&gt;Uptime Kuma&lt;/a&gt; because Beszel can provide data directly.&lt;/p&gt;
&lt;p&gt;I added my RPi 3b to Beszel using this &lt;a href=&quot;https://github.com/Obamium69/hassio-beszel_agent&quot;&gt;repository&lt;/a&gt; to add the agent. I added &lt;code&gt;HTTP POST&lt;/code&gt; and &lt;code&gt;ping&lt;/code&gt; monitors inside &lt;a href=&quot;https://theonlyblogever.com/blog/2026/fakesysadmin.html&quot;&gt;Uptime Kuma&lt;/a&gt; to check availability. Of course, this doesn&#39;t help if &lt;code&gt;BAXIAL&lt;/code&gt; is down. I would need another machine for that. I&#39;ve set up a Telegram chat bot for notifications on iOS.&lt;/p&gt;
&lt;p&gt;Eventually, I&#39;ll want a separate computer system to monitor the systems. As they are now, if BAXIAL goes down all the monitoring and alerting goes down as well.&lt;/p&gt;
&lt;h2 id=&quot;baxial2-the-next-generation&quot;&gt;BAXIAL2: The Next Generation&lt;/h2&gt;
&lt;p&gt;I have lots of upcoming goals for my homelab. I want to repurpose the drives in &lt;code&gt;DELTAFLYER&lt;/code&gt; to have a new system that will be a local online duplicate of &lt;code&gt;BAXIAL&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Dr2E7X82oc-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Dr2E7X82oc-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Dr2E7X82oc-1400.jpeg&quot; alt=&quot;BAXIAL the server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This new &lt;code&gt;BAXIAL2&lt;/code&gt; will be built on an AM4 platform, with an AMD Ryzen 5 3200G, 16 GB DDR4 RAM and a 256 GB NVMe SSD. It won&#39;t be very powerful as it&#39;s a similar system meant for redundancy.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELTAFLYER&lt;/code&gt; will then become a living room small-form-factor gaming machine. Replacing the current 4U machine with a 2U height case will leave room for future expansion, like having a bigger rack-mount UPS.&lt;/p&gt;
&lt;h3 id=&quot;to-do&quot;&gt;TO DO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Acquire parts for BAXIAL2:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2U chassis&lt;/li&gt;
&lt;li&gt;16 GB DDR4 RAM&lt;/li&gt;
&lt;li&gt;500W-600W modular PSU&lt;/li&gt;
&lt;li&gt;AM4 mATX motherboard (ex., B450 or B550)&lt;/li&gt;
&lt;li&gt;Slim SATA cabling&lt;/li&gt;
&lt;li&gt;4x 80mm Noctua fans&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Acquire parts for DELTAFLYER:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Small media center case (mATX)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Future hardware:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1000W+ UPS with &lt;a href=&quot;https://networkupstools.org/&quot;&gt;NUT server&lt;/a&gt; for management or two 500W 1U UPSes (I just low-balled on eBay and won, eventually I&#39;ll have two of them, one for each machine.)&lt;/li&gt;
&lt;li&gt;NanoKVM for remote management&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;more-glamour-shots-of-baxial&quot;&gt;More Glamour Shots of BAXIAL&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/dJwfg35Nlq-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/dJwfg35Nlq-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/dJwfg35Nlq-1400.jpeg&quot; alt=&quot;BAXIAL the server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/3IVvJkWUq6-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/3IVvJkWUq6-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/3IVvJkWUq6-1400.jpeg&quot; alt=&quot;BAXIAL the server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/tc-DBzS_2Z-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/tc-DBzS_2Z-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/tc-DBzS_2Z-1400.jpeg&quot; alt=&quot;BAXIAL the server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ftZg46dlMq-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ftZg46dlMq-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/ftZg46dlMq-1400.jpeg&quot; alt=&quot;BAXIAL the server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-USTkgZY5m-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-USTkgZY5m-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/-USTkgZY5m-1400.jpeg&quot; alt=&quot;BAXIAL the server&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Happenings Around the Lab: Summer 2026</title>
    <link href="https://theonlyblogever.com/blog/2026/happns.html" />
    <updated>2026-09-10T21:30:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/happns.html</id>
    <content type="html">&lt;h2 id=&quot;ui-gripes&quot;&gt;UI Gripes&lt;/h2&gt;
&lt;p&gt;I hate Liquid Glass. It’s odd and ugly. It doesn’t look like a clean pane of glass with a slight reflection. It looks like a dirty, hastily cut piece of glass with odd lighting covered in smudges. Just terrible as a user interface.&lt;/p&gt;
&lt;p&gt;It’s part of a larger issue. On a macro level, User interfaces on commercial operating systems are being designed to be simpler and less technical, think design for the lowest common denominator and you get form over function and inefficient design choices with marketing led (focus grouped) icons and visual effects instead of having a setting to allow users to change to a previous interface or to theme to something different.&lt;/p&gt;
&lt;p&gt;On Linux, sure, you have to choice of desktop environment (DE), themes and UI extensions. It&#39;s extensible to a point. Different DE’s have different levels of customization and flexibility. This leads to many options.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;around-the-lab&quot;&gt;Around the Lab&lt;/h2&gt;
&lt;h3 id=&quot;home-assistant-redux&quot;&gt;Home Assistant Redux&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Fbu0RNdGOE-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Fbu0RNdGOE-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Fbu0RNdGOE-1400.jpeg&quot; alt=&quot;RPI 3b&quot; width=&quot;1400&quot; height=&quot;909&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I had been running Home Assistant on a Raspberry Pi 3b for a few years on the DietPi distribution. I didn’t realize it had stopped getting updates in 2025 and was unsupported by Home Assistant. To update, I installed HAOS, a full Home Assistant image. I was only using the Pi for Home Assistant, and the new install might help with some capability issues I was having. I started from scratch again as my existing configuration wasn’t very complicated. I use home assistant as a convenient on/off switch for most of our smart lights and plugs.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/N8eJy4_Jj6-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/N8eJy4_Jj6-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/N8eJy4_Jj6-1400.jpeg&quot; alt=&quot;Another opened Pi&quot; width=&quot;1400&quot; height=&quot;1050&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/tA-3aUFfSZ-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/tA-3aUFfSZ-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/tA-3aUFfSZ-1400.jpeg&quot; alt=&quot;HAOS booting.&quot; width=&quot;1400&quot; height=&quot;1050&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;light-strip-redux&quot;&gt;Light Strip Redux&lt;/h3&gt;
&lt;p&gt;Yesterday, I spent a few hours getting a string of led lights extended as accent lightning behind the shelves in my office. I put them into an aluminum diffusion channel and plugged them into the GLEDOPTO ESP8266 controller.&lt;/p&gt;
&lt;p&gt;It was a janky and frustrating experience as usual. I would get everything plugged in and setup and then after testing, after a few hours, the WLED controller would stop responding on the network. Sometimes it would flash different colours or dim itself seemingly at random. Moving the cables in the controller seemed to affect it. Maybe the wires are too thin for the connectors on the controller.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/2AH6MFF9kI-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/2AH6MFF9kI-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/2AH6MFF9kI-1400.jpeg&quot; alt=&quot;Stupid controller with coloured wires&quot; width=&quot;1400&quot; height=&quot;1079&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;All this, after I had tinned and resoldered all the connections. Next, because I was fed up with the existing WLED controller, I ordered a few different versions on Amazon for testing. One with Ethernet and one without. More frustrating, I have another LED light strip, using the same controller, working fine. I also have another strip on a bare ESP32 glued to my ceiling that is older than the other two with no issues. Maybe those fly-by-night ESP dealers have no quality control? Who knew!?&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EFM16u9pVM-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EFM16u9pVM-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/EFM16u9pVM-1400.jpeg&quot; alt=&quot;Close-up of LED strips in aluminium channels&quot; width=&quot;1400&quot; height=&quot;1041&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I soldered new wires, adding heat-shrink and electrical tape underneath the wires. Then installed them into the aluminum channels and used hot glue to secure the wires and the solder joints. They seem to be more durable.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/OF0qxjfzwp-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/OF0qxjfzwp-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/OF0qxjfzwp-1400.jpeg&quot; alt=&quot;Wiring to LED strips&quot; width=&quot;1400&quot; height=&quot;1050&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;When the new controllers show up, I’ll try and use them instead to see if the original controller was the issue or is there a crossed wire or a bad solder connection. The annoying part is having to move a heavy shelf every time I want to diagnose an issue or add a section of LEDs.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/YDA7oKL5Da-1044.avif 1044w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/YDA7oKL5Da-1044.webp 1044w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/YDA7oKL5Da-1044.jpeg&quot; alt=&quot;Tuvok of ST:VOY Standing&quot; width=&quot;1044&quot; height=&quot;795&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-YmwaQLJAl-1125.avif 1125w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-YmwaQLJAl-1125.webp 1125w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/-YmwaQLJAl-1125.jpeg&quot; alt=&quot;Tuvok of ST:VOY Stumbling&quot; width=&quot;1125&quot; height=&quot;844&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;The new controller did work immediately and hasn&#39;t fallen off the network since the replacement. It has the option of using wireless or wired networking. I&#39;ll get around to adding network cabling soon.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nnutVTNT2w-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nnutVTNT2w-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/nnutVTNT2w-1400.jpeg&quot; alt=&quot;&quot; width=&quot;1400&quot; height=&quot;1050&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;positive-computing&quot;&gt;Positive Computing&lt;/h3&gt;
&lt;p&gt;I need to do a clean and an inventory of my computer systems. BAXIAL is running well, but it needs a 512GB NVMe SSD to allow the Synthing and Jellyfin databases to fit on the system disk. The Docker containers I have are &lt;em&gt;mostly&lt;/em&gt; running well. I have TideWatch running as an update manager and I have Glances for checking system resources. I never did finish ZFS email reporting. It would be nice to have an iOS app that would notify me about any issues. Hardware-wise, I need a good UPS and a KVM to allow management and save myself from hydro blips.&lt;/p&gt;
&lt;p&gt;When services and containers are stable and work as expected, I don’t notice them anymore. When I have small issues, like Tailscale de-authorizing, where I cannot access my music over the VPN until I am in front of the server, it gets frustrating. You’re tempted to go back to the convenient cloud service you’d left for the self hosted option.&lt;/p&gt;
&lt;p&gt;I eBay’d a Ryzen 5 2400G which may end up becoming a tv computer. I’ve also been debating building a 1U slim server for a baxial backup with 3 or 4 hot swap bays and moving my windows gaming machine to the living room. It’s a constant debate as of late. It would be nice to have a gaming/media PC attached to the TV, but with the rising costs of parts it’s not the most economically feasible right now.&lt;/p&gt;
&lt;p&gt;DELTAFLYER has about 7 hard drives in a Windows Storage Spaces Space. Don’t use Storage Spaces on Windows, they obfuscate the functioning and it can be difficult to manage a pool. I didn’t know any better 7 years ago when I set it up, but it’s persisted though adding drives. It’s a sunk cost fallacy and tech debt in a blender.&lt;/p&gt;
&lt;p&gt;I’ve transitioned all my daily computing to BAXIAL and COCHRANE. I can do almost anything between those two Linux machines. The drives on DELTAFLYER should be repurposed into to a ZFS pool running Linux and backing up BAXIAL or being a read-only endpoint for Syncthing.&lt;/p&gt;
&lt;p&gt;I am reticent at the thought of not having a windows machine accessible. How else would I run Adobe software and the odd steam game? The reality, of my current use case, is that I turn the system on and start Syncthing to sync BAXIALs files. There’s no reason I couldn’t do it directly from BAXIAL with rsync.&lt;/p&gt;
&lt;p&gt;Bye for now.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Another Summer Book Review Extravaganza</title>
    <link href="https://theonlyblogever.com/blog/2026/bookreport2.html" />
    <updated>2026-08-27T23:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/bookreport2.html</id>
    <content type="html">&lt;h2 id=&quot;quantum-radio-by-a-g-riddle&quot;&gt;Quantum Radio by A.G. Riddle&lt;/h2&gt;
&lt;p&gt;I’ll be biased here. It was the first book I read through (in about 7 hours over a day) after returning from our holiday in Japan. It was meditative and restorative, as a buffer from our long travels.&lt;/p&gt;
&lt;p&gt;The book is split into multiple parts. The first half introduces us to a cast of characters and to a scientist at CERN discovering particles that contain encoded messages. The next half is an alternate history of those same characters after following the directions in the encoded messages. Ty, Nora, Kato and Maria are thrown into a mirror Earth dimension where the axis powers held Europe and Asia following the Second World War. They try to bring about peace in these fantastical alternate timelines. I’m a sucker for happy endings.&lt;/p&gt;
&lt;p&gt;Rating: ⭐️⭐️⭐️⭐️&lt;/p&gt;
&lt;h2 id=&quot;busy-doing-nothing-51-days-from-japan-to-canada-by-100rabbits-collective&quot;&gt;Busy Doing Nothing: 51 days from Japan to Canada by 100rabbits collective&lt;/h2&gt;
&lt;p&gt;This is a log of the sailing trip undertaken by, the 100rabbits duo, Devine and Rekka with, their sailboat, Pino, in 2020. What an adventure! It’s an enthralling story with lots of practical advice and a humbling account of their voyage. As an inspired reader of the &lt;a href=&quot;http://100r.co&quot;&gt;100r.co&lt;/a&gt; website and of their other works, it was another chance to dive into their world.&lt;/p&gt;
&lt;p&gt;I appreciated their inclusion of recipes, especially considering I’ve also recently arrived home from Japan. I’m excited to try some of them very soon.&lt;/p&gt;
&lt;p&gt;Rating: ⭐️⭐️⭐️⭐️⭐️&lt;/p&gt;
&lt;h2 id=&quot;ascension-by-nicholas-binge&quot;&gt;Ascension by Nicholas Binge&lt;/h2&gt;
&lt;p&gt;It’s a surreal mountain adventure told as a series of letters from a long-lost uncle to his niece.&lt;/p&gt;
&lt;p&gt;As the group of scientists, climbers and soldiers traverse a mysterious mountain, more of the protagonist’s personal history is uncovered while discovering more about the mountain mass that has appeared, in their dimension, on Earth.&lt;/p&gt;
&lt;p&gt;There’s an interplay of belief in God and of loss of belief in God throughout the story. of the dichotomy of scientific fact and religiosity. It reminded of the movie For Harold, the climb is a journey of internationalization of religious belief and of forgiveness of self. I’m enjoyed the suspenseful style and the presentation of the story.&lt;/p&gt;
&lt;p&gt;Rating: ⭐️⭐️⭐️&lt;/p&gt;
&lt;h2 id=&quot;titanium-noir-by-nick-harkaway&quot;&gt;Titanium Noir by Nick Harkaway&lt;/h2&gt;
&lt;p&gt;it’s a straightforward detective paperback with a modern twist. In this European cityscape, the ultra-rich can opt for injections transforming them, by de-aging and then re-aging, back to their physical young adult form after six months recovery. The process adds height and weight after each subsequent procedure. The resulting giants stand out, literally, against the unadulterated.&lt;/p&gt;
&lt;p&gt;In the end, Cal, our protagonist contract PI uncovers the murder mystery. The twists and turns kept me reading, but it felt like a drawn out story.&lt;/p&gt;
&lt;p&gt;Rating: ⭐️⭐️&lt;/p&gt;
&lt;h2 id=&quot;the-wizards-butler-by-nathan-lowell&quot;&gt;The Wizard&#39;s Butler by Nathan Lowell&lt;/h2&gt;
&lt;p&gt;Immediately endearing in its straightforward style. The story of an American veteran of the Afghanistan occupations becoming a butler for an older recluse in his mansion.&lt;/p&gt;
&lt;p&gt;A group of magical associates works to ensure that the Shakleford House continues its legacy as a historic landmark.&lt;/p&gt;
&lt;p&gt;Rating: ⭐️⭐️⭐️⭐️&lt;/p&gt;
&lt;h2 id=&quot;the-ministry-of-the-future-by-kim-stanley-robinson&quot;&gt;The Ministry of the Future by Kim Stanley Robinson&lt;/h2&gt;
&lt;p&gt;I knew from reading a few of their books that I was in for a novel of a time. Stories of multiple characters, including, NGO workers, scientists, politicians and slaves in a near future 2030s global warming, full of facts and speculative reality.&lt;/p&gt;
&lt;p&gt;Rating: ⭐️⭐️⭐️&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>My Personal Computing History</title>
    <link href="https://theonlyblogever.com/blog/2026/pchistory.html" />
    <updated>2026-08-22T23:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/pchistory.html</id>
    <content type="html">&lt;p&gt;Here&#39;s a list, from memory, of the computers I&#39;ve used. I&#39;ve included computers used at home on a regular basis. Previous &lt;a href=&quot;https://theonlyblogever.com/blog/2025/work-frame-review.html&quot;&gt;post&lt;/a&gt; about some of these machines.&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;This post was inspired by &lt;a href=&quot;https://lilysthings.org/blog/childhood-computing/&quot;&gt;Lily&#39;s post: Childhood Computing&lt;/a&gt; on The Cool Blog. Computing as a hobby is cool!&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;1997&quot;&gt;1997&lt;/h2&gt;
&lt;p&gt;Compaq Armada E500 (or similar)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows 95 Plus&lt;/li&gt;
&lt;li&gt;Intel Celeron (or Pentium II)&lt;/li&gt;
&lt;li&gt;12.1&amp;quot; or 14.1&amp;quot; display&lt;/li&gt;
&lt;li&gt;128 MB RAM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was my Dad&#39;s work laptop. We didn&#39;t have a desktop computer at home and he would let me draw and surf the net on weekends for a few hours. Around 2004, I got the old laptop and managed to put a stripped-down version of Windows XP onto it.&lt;/p&gt;
&lt;p&gt;I remember often hitting a key combination which forced the system into a full-screen MS-DOS session. I didn&#39;t know any commands (like &lt;code&gt;exit&lt;/code&gt; or &lt;code&gt;quit&lt;/code&gt;), as a 6 year old, and I would force reboot the machine. It has a BIOS password which mesmerized me. Space Cadet Pinball ftw.&lt;/p&gt;
&lt;h2 id=&quot;1999&quot;&gt;1999&lt;/h2&gt;
&lt;p&gt;Packard Bell Legend 3550 (or similar)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows 95&lt;/li&gt;
&lt;li&gt;Pentium I (or Pentium II)&lt;/li&gt;
&lt;li&gt;128 MB RAM&lt;/li&gt;
&lt;li&gt;1.0 GB HDD&lt;/li&gt;
&lt;li&gt;56 kbps modem&lt;/li&gt;
&lt;li&gt;15&amp;quot; monitor with speakers attached on the sides&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The case style was similar to this &lt;a href=&quot;https://www.ebay.com/p/1334335191?iid=257588675450&quot;&gt;listing&lt;/a&gt;. I thought it had a Pentium II, but it could have had a Pentium 100.&lt;/p&gt;
&lt;p&gt;This was our main family desktop PC for several years. I played Test Drive 4 and Jazz Jackrabbit on this machine, I read a lot of Encarta &#39;98, downloaded MP3&#39;s, and surfed the Internet. Around 2001, we went from 33.2 kbps dial-up to high-speed cable Internet. We installed a &lt;em&gt;Network Card&lt;/em&gt; (a NIC) into the computer to get the Internet working.&lt;/p&gt;
&lt;h2 id=&quot;2002&quot;&gt;2002&lt;/h2&gt;
&lt;p&gt;Dell &lt;a href=&quot;https://en.wikipedia.org/wiki/Dell_OptiPlex&quot;&gt;Optiplex&lt;/a&gt; GX115 (or GX200)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pentium III&lt;/li&gt;
&lt;li&gt;10/100 NIC&lt;/li&gt;
&lt;li&gt;17&amp;quot; monitor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was our replacement family computer that we traded-in our Packard Bell at a local used computer store. We upgraded it to run Windows 2000. I would use this computer until 2005, when I built my first custom computer. We got a used monitor from a family member at some point. I would reinstall Windows often on this machine because I would constantly break it.&lt;/p&gt;
&lt;h2 id=&quot;2005&quot;&gt;2005&lt;/h2&gt;
&lt;p&gt;AMD Sempron Custom PC&lt;/p&gt;
&lt;p&gt;I don&#39;t remember &lt;a href=&quot;https://en.wikipedia.org/wiki/Sempron&quot;&gt;much&lt;/a&gt; about this computer. It ran Windows XP SP1 then, of course, SP2. I made my own Windows XP ISO&#39;s using nlite so that I could slipstream drivers into the installation. It was my first time I chose components for myself. I had agency and a part-time job!&lt;/p&gt;
&lt;p&gt;I had a Sound Blaster black sound card. I had a PowerColor ATI Radeon (maybe 9550SE) 128 MB card. Unfortunately, I could never get it to run reliably. I could get a driver installed, but the system would blue-screen and shutdown often without warning. The card was defective, but past the return window. After spending a lot of time troubleshooting, I used the on-board VIA graphics. I never did get a replacement GPU.&lt;/p&gt;
&lt;p&gt;Once I got my iBook, this machine was relegated to being a media server. I would transfer files back and forth using a shared drive. One day the machine wouldn&#39;t boot anymore. After some troubleshooting, I must have removed the hard drives and thrown it away around 2012. I remember thinking it must have been a capacitor on the motherboard that went bad. I didn&#39;t know enough to try and fix it.&lt;/p&gt;
&lt;h2 id=&quot;2005-2&quot;&gt;2005&lt;/h2&gt;
&lt;p&gt;Apple iBook G4 12.1&amp;quot;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1.33 Mhz PowerPC CPU&lt;/li&gt;
&lt;li&gt;Mac OS X 10.4 Tiger&lt;/li&gt;
&lt;li&gt;512 MB RAM (later upgraded to 1.5 GB)&lt;/li&gt;
&lt;li&gt;12&amp;quot; display&lt;/li&gt;
&lt;li&gt;AirPort Wifi Card&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was the &lt;a href=&quot;https://theonlyblogever.com/blog/2026/ibookg4.html&quot;&gt;first laptop&lt;/a&gt; I owned that was personal to me. Laptops, to me, are personal devices that extend my abilities. This was the first device that had built-in wifi. In my self-sheltered adolescence, it was magical to go anywhere and have wireless access. The wall-wart died when I plugged it into an ungrounded outlet and it sparked.&lt;/p&gt;
&lt;p&gt;Having a Mac, back then, felt like you were part of a special club. Finding software from indie developers and reading Mac blogs was part of being a user.&lt;/p&gt;
&lt;h2 id=&quot;2009&quot;&gt;2009&lt;/h2&gt;
&lt;p&gt;HP Pavilion DM4-1273ca&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows 7&lt;/li&gt;
&lt;li&gt;Switchable graphics (Intel GPU + Radeon)&lt;/li&gt;
&lt;li&gt;Intel Core i5-460M&lt;/li&gt;
&lt;li&gt;4 GB DDR3 RAM&lt;/li&gt;
&lt;li&gt;14&amp;quot; display&lt;/li&gt;
&lt;li&gt;4.3 lbs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was my first computer that could play high-definition video. It was a big performance jump from my iBook G4. It always felt big and heavy, I used it as a desktop with multiple external hard drives and peripherals always connected. The switchable graphics drivers were difficult to find and did not work reliably.&lt;/p&gt;
&lt;p&gt;From 2014 to 2018, this laptop would be a Plex and printer server. Around 2018, it started having issues streaming 1080p video over the network. I gave up on it shortly afterwards. I hated this computer.&lt;/p&gt;
&lt;h2 id=&quot;2012&quot;&gt;2012&lt;/h2&gt;
&lt;p&gt;iBook G3 12.1&amp;quot;&lt;/p&gt;
&lt;p&gt;I bought an iBook G3 to use as a note-taking machine. It lasted about a year before it succumbed to a &lt;a href=&quot;https://www.applefritter.com/node/21337&quot;&gt;BGA failure&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;2013&quot;&gt;2013&lt;/h2&gt;
&lt;p&gt;Apple MacBook Pro, &lt;code&gt;MacBook11,7&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Shortly before the Pro, I had a white unibody Macbook for a few months. The last in the era of pre-retina, somewhat repairable, Macbooks. I bought this laptop used on eBay in July of 2013 during recovery from surgery. It was my primary, and largely only, computer from mid-2013 through late-2018, when I got a pair of old ThinkPads.&lt;/p&gt;
&lt;p&gt;I&#39;ve forgotten the password and the FileVault Recovery Key. I cannot log into this machine. It does have two hard drives and I don&#39;t think the secondary drive is encrypted. Worse case, I can physically remove the drive and get the data that way. But, I&#39;d like to see and use the system as I remembered.&lt;/p&gt;
&lt;h2 id=&quot;2018&quot;&gt;2018&lt;/h2&gt;
&lt;p&gt;Lenovo ThinkPad x200 and x220&lt;/p&gt;
&lt;p&gt;I had two of these around the same time off eBay. They ran Linux Mint with XFCE and then Manjaro XFCE. They were old and slow even back then, but they ran Linux well. I even &lt;a href=&quot;https://www.tindie.com/stores/mikepdiy/&quot;&gt;modded&lt;/a&gt; the x220 with &lt;a href=&quot;https://mikepdiy.com/products-and-devices/&quot;&gt;this USB-C power port&lt;/a&gt;. It still works. However, power efficiency and heat were issues when compared to modern laptops. It was a ten year-old laptop after all.&lt;/p&gt;
&lt;h2 id=&quot;2019&quot;&gt;2019&lt;/h2&gt;
&lt;p&gt;Custom AMD Ryzen 5 build&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16 GB DDR4 RAM&lt;/li&gt;
&lt;li&gt;512 GB NVMe SSD&lt;/li&gt;
&lt;li&gt;4 TB HDD&lt;/li&gt;
&lt;li&gt;Became DELTAFLYER after transposition into a 4U chassis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was the first time, in ten years, I could afford to prioritize new technology. It was the first time, as an adult, that I could budget for new hardware. Good choice.&lt;/p&gt;
&lt;h2 id=&quot;2022&quot;&gt;2022&lt;/h2&gt;
&lt;p&gt;Framework 13 (12th Generation) named COCHRANE&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel i5-1240P&lt;/li&gt;
&lt;li&gt;32 GB RAM&lt;/li&gt;
&lt;li&gt;2 TB NVMe SSD&lt;/li&gt;
&lt;li&gt;13&amp;quot; display&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#39;ve said &lt;a href=&quot;https://theonlyblogever.com/blog/2026/workingontheframe.html&quot;&gt;enough&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;2023&quot;&gt;2023&lt;/h2&gt;
&lt;p&gt;Custom AMD Ryzen 3 build&lt;/p&gt;
&lt;p&gt;BAXIAL, as &lt;a href=&quot;https://theonlyblogever.com/blog/2024/infra.html&quot;&gt;described&lt;/a&gt; below, is a server. I realized that I had collected enough parts to build another desktop and decided it would run Linux, replacing all the services I was running on DELTAFLYER at the time.&lt;/p&gt;
&lt;h2 id=&quot;future&quot;&gt;Future&lt;/h2&gt;
&lt;p&gt;I&#39;m unsure what my future in computing will hold. Having a modern, power efficient, and portable laptop has been very useful. Most of my daily computing is done on my Framework 13 running Fedora. As I&#39;ve written, the &lt;code&gt;Intel Core Ultra 3&lt;/code&gt; main-boards are &lt;a href=&quot;https://old.reddit.com/r/framework/comments/1vvipm2/13_pro_really_does_sip_power/&quot;&gt;encouraging&lt;/a&gt;, but with the cost (and scarcity) of LPCAMM2 RAM modules they are not viable currently.&lt;/p&gt;
&lt;p&gt;I have two desktops, DELTAFLYER with Windows 11 and BAXIAL with Ubuntu 24.04 LTS. BAXIAL runs the infrastructure (ex., docker containers, services, zfs pools, media storage, networking hardware controller, etc). While, DELTAFLYER is used for gaming and media editing. It also holds a complete backup of BAXIAL&#39;s data.&lt;/p&gt;
&lt;p&gt;Recently, I&#39;ve been surprised how I&#39;ve been using my laptop on-the-go and docked at my desk for most tasks. It&#39;s very convenient to plonk down my laptop and continue working. I&#39;m glad to be a Linux nerd. Weeks pass and I forget my Windows machine exists.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Off-Duty in the Hallway #6: Double B.L.T Alert!</title>
    <link href="https://theonlyblogever.com/blog/2026/comic06.html" />
    <updated>2026-08-19T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/comic06.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/LMjYU-O6Ip-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/LMjYU-O6Ip-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/LMjYU-O6Ip-1400.png&quot; alt=&quot;Webcomic of the Chief Engineer eating a sandwich on the Starship Voyager&quot; width=&quot;1400&quot; height=&quot;1045&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Off-Duty in the Hallway #6: Double B.L.T Alert!&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;em&gt;Notice:&lt;/em&gt; Any similarities to persons living and/or dead is definitely intentional. The above comic panel is fan art. It is considered fair dealing for the purpose of parody under the Canadian Copyright Act (&lt;em&gt;R.S.C., 1985, c. C-42&lt;/em&gt;).&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Boxy Pixel: MKII iPod Classic (MIN) Kit</title>
    <link href="https://theonlyblogever.com/blog/2026/boxypod.html" />
    <updated>2026-08-15T23:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/boxypod.html</id>
    <content type="html">&lt;p&gt;I pre-ordered the &lt;a href=&quot;https://www.boxypixel.com/collections/mkii-ipod-classic-5th-gen-7th-gen-mkiikits&quot;&gt;MKII iPod Mod Kit - MIN verson&lt;/a&gt; after seeing it last year and missing the last few rounds of ordering for the 1st generation or &lt;a href=&quot;https://youtu.be/Lp9pRhn2Bz4&quot;&gt;MKI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This mod kit includes parts that allow you to modernize your iPod Video (or Classic) 5th gen and up! It adds bluetooth audio support, USB-C charging, an aluminium and glass case, support for a larger battery, among other improvements.&lt;/p&gt;
&lt;p&gt;I&#39;ve been modding iPod&#39;s since about 2016 when the &lt;a href=&quot;https://www.iflash.xyz/&quot;&gt;iFlash&lt;/a&gt; was released. I have three modded iPod&#39;s from 3g to 5.5g. I&#39;ve been running &lt;a href=&quot;https://www.rockbox.org/&quot;&gt;Rockbox&lt;/a&gt; for over ten years. It&#39;s an &lt;a href=&quot;https://www.rockbox.org/wiki/&quot;&gt;alternative&lt;/a&gt; firmware featuring gapless playback, theming, &lt;code&gt;.flac&lt;/code&gt; support, and &lt;code&gt;.scrobbler.log&lt;/code&gt; file creation.&lt;/p&gt;
&lt;p&gt;I have my original 5th generation iPod Video from 2006. I thought it would make a good candidate for the modifications and case transplant. The 30 pin plastic cover had long been cracked, but it was in good shape otherwise. I was excited to see my trusty old audio companion in a fancy new shell.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/oT_KAp1lsY-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/oT_KAp1lsY-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/oT_KAp1lsY-1400.jpeg&quot; alt=&quot;Insert image of iPod Video 5g&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Y1z1zx6bjU-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Y1z1zx6bjU-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Y1z1zx6bjU-1400.jpeg&quot; alt=&quot;Insert image of iPod Video 5g&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-battery&quot;&gt;The Battery&lt;/h2&gt;
&lt;p&gt;Being an international customer, I knew there wouldn&#39;t be a battery included in the kit and that I would need to source my own. Based on the specs listed on the website, I needed a battery that was &lt;code&gt; less than 3 mm thick x 50 mm x 68 mm&lt;/code&gt; &lt;code&gt;3.7v&lt;/code&gt; and lithium polymer (or LiPo) chemistry.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.mouser.ca/&quot;&gt;Mouser Canada&lt;/a&gt; has a &lt;a href=&quot;https://www.mouser.ca/c/power/batteries/battery-packs/?battery%20chemistry=Lithium%20Ion%20Polymer%20%28LiPo%29&quot;&gt;battery search tool&lt;/a&gt; on their website, except not the type I needed. Boxy Pixel recommends searching for &lt;code&gt;304860 LiPo&lt;/code&gt; or &lt;code&gt; 304050 LiPo&lt;/code&gt;. I ended up on aliexpress and found an &lt;a href=&quot;https://www.aliexpress.com/item/1005009864561167.html?aem_p4p_detail=202603040940322172044735129780000063901&amp;amp;pdp_ext_f=%7B%22order%22%3A%22-1%22%2C%22eval%22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&amp;amp;search_p4p_id=202603040940322172044735129780000063901_1&quot;&gt;800 mAh 304050 LiPo&lt;/a&gt; that met the physical dimensions I needed. I also ordered a &lt;a href=&quot;https://www.aliexpress.com/item/32825048007.html&quot;&gt;600 mAh battery&lt;/a&gt; from a different seller just to ensure I would have options.&lt;/p&gt;
&lt;p&gt;The batteries arrived a few weeks later. I had only ordered two, but ended up with four. All four had the same &lt;code&gt;304050&lt;/code&gt; number. One set said &lt;code&gt;600mAh&lt;/code&gt; and the other &lt;code&gt;800mAh&lt;/code&gt;. They measured &lt;code&gt;48mm x 38mm x 2.5mm&lt;/code&gt; with a red and black wire each. They would work for the kit.&lt;/p&gt;
&lt;p&gt;After I had received the clone batteries, Boxy Pixel sent an email reminding of the international shipping restrictions for lithium batteries and included a link to a &lt;a href=&quot;https://www.alibaba.com/product-detail/Custom-305068-1250mah-3-7v-Lithium_1601710002298.html&quot;&gt;alibaba seller&lt;/a&gt; offering a larger battery (same as OEM). After negotiating shipping, I had a perfectly sized battery on the way with other options as needed.&lt;/p&gt;
&lt;p&gt;Once I had the parts on order, I waited for everything to arrive. The kit was expensive, but my hope was that it would be the portable media player I had been imagining.&lt;/p&gt;
&lt;h2 id=&quot;tools&quot;&gt;Tools&lt;/h2&gt;
&lt;p&gt;The modding guide does not include a list of tools. Although this is not a installation guide, here are the tools I found useful.&lt;/p&gt;
&lt;p&gt;The internal screws for the hold-down frame and the daughter board  are #1 Philips.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;#1 Phillips screwdriver (for internal screws),&lt;/li&gt;
&lt;li&gt;1/16&amp;quot; Allen key (for external screws),&lt;/li&gt;
&lt;li&gt;Tweezers (for applying Kapton tape),&lt;/li&gt;
&lt;li&gt;Small craft knife,&lt;/li&gt;
&lt;li&gt;Scissors,&lt;/li&gt;
&lt;li&gt;Thin guitar pick,&lt;/li&gt;
&lt;li&gt;Lens cleaning cloth,&lt;/li&gt;
&lt;li&gt;Kapton tape, and,&lt;/li&gt;
&lt;li&gt;Headlamp.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-kit&quot;&gt;The Kit&lt;/h2&gt;
&lt;p&gt;Boxy Pixel was great about email updates throughout the manufacturing process for the MKII that I had ordered.&lt;/p&gt;
&lt;p&gt;It was expensive, with the kit at $ 310 CAD (w/ shipping) and the battery at $ 30 CAD, it&#39;s definitely for collectors and super-nerds. I had &lt;em&gt;hemmed and hawed&lt;/em&gt; about similar kits for a few years. So, I decided it was &lt;em&gt;finally&lt;/em&gt; refined enough, and supported enough modern features, to make sense for me.&lt;/p&gt;
&lt;p&gt;I ordered to all black version, black buttons, black screws, black chassis, black buttons and glass front and back. Once the FW 13 Pro black chassis is available they will be &lt;em&gt;quite&lt;/em&gt; the pair.&lt;/p&gt;
&lt;h3 id=&quot;waiting&quot;&gt;Waiting&lt;/h3&gt;
&lt;p&gt;Considering the Boxy Pixel was assembled, packaged and shipped about 40 minutes, by car, from my home shipping took a while. Between the shipping notification and delivery, it was about 18 days total.&lt;/p&gt;
&lt;h3 id=&quot;modding&quot;&gt;Modding&lt;/h3&gt;
&lt;p&gt;I had all my parts together and was ready to start &lt;a href=&quot;https://www.boxypixel.com/pages/ipod-classic-mkii-assembly-guide-boxy-pixel&quot;&gt;putting&lt;/a&gt; the kit together.&lt;/p&gt;
&lt;p&gt;My donor iPod is a 5.5th generation &lt;a href=&quot;https://everymac.com/systems/apple/ipod/specs/ipod-5th-generation-enhanced-specs.html&quot;&gt;iPod Video&lt;/a&gt; &lt;code&gt;A1136&lt;/code&gt; that I&#39;ve had since christmas of 2006. Modded in 2018 with an iflash quad (4 micro-sd card), I &lt;a href=&quot;https://www.boxypixel.com/pages/mkii-min-battery-compatibility-specifications&quot;&gt;needed&lt;/a&gt; this specific iflash to fit in the boxy pixel MKII casing.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ey699yuRRz-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ey699yuRRz-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/ey699yuRRz-1400.jpeg&quot; alt=&quot;iPod Video Halves&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/DTl2-2d2jO-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/DTl2-2d2jO-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/DTl2-2d2jO-1400.jpeg&quot; alt=&quot;Parts layed out&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;With everything unpacked on my desk, I felt overwhelmed. &amp;quot;Alright,&amp;quot; I told myself. &amp;quot;Follow the guide one step at a time.&amp;quot; and, &amp;quot;You can do this!&amp;quot; Encouraging myself to dive in.&lt;/p&gt;
&lt;p&gt;I had a black anodized aluminum version, not the brass version of the kit, but I applied thin Kapton tape with tweezers and a craft knife as a precaution.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/UkdFAuANkU-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/UkdFAuANkU-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/UkdFAuANkU-1400.jpeg&quot; alt=&quot;Parts covered in Kapton tape&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Using the &lt;a href=&quot;https://www.ifixit.com/Device/iPod_5th_Generation_%28Video%29&quot;&gt;ifixit guides&lt;/a&gt; I disassembled my iPod to separate the logic board and display from the original metal frame. Because my iFlash Quad had been previously used in my iPod Video 5G, I needed to remove the foam spacer pads from the top of the Quad&#39;s board.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/lj24Hopmwq-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/lj24Hopmwq-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/lj24Hopmwq-1400.jpeg&quot; alt=&quot;Disassembled Logic Board iPod 5G&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Im-pVnGrM1-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Im-pVnGrM1-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Im-pVnGrM1-1400.jpeg&quot; alt=&quot;Disassembled Logic Board iPod 5G&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;After connecting a few flex cables and the battery, the MKII board and the iPod powered on as normal. Of course, it displayed a disk error because the iFlash was not installed.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/oKH6TYKZjI-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/oKH6TYKZjI-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/oKH6TYKZjI-1400.jpeg&quot; alt=&quot;iPod first boot&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I struggled to put the bluetooth and hold buttons into the boxy pixel front panel aligned properly with the new daughter board. After using a headlamp, I noticed that I had the buttons upside down, a quick flip and they seated properly.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/WrCo14BWbo-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/WrCo14BWbo-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/WrCo14BWbo-1400.jpeg&quot; alt=&quot;iPod Boxy Pixel daughter board&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6LX9K5SAJz-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6LX9K5SAJz-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/6LX9K5SAJz-1400.jpeg&quot; alt=&quot;iPod Boxy Pixel internals&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;testing&quot;&gt;Testing&lt;/h2&gt;
&lt;p&gt;I tested the bluetooth board and all the functions of the iPod and everything worked properly!&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zAbXzOZBKA-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zAbXzOZBKA-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/zAbXzOZBKA-1400.jpeg&quot; alt=&quot;iPod Boxy Pixel booted&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;My Nothing ear (3a) earbuds worked after using the pairing function of the Boxy Pixel board and then the headphones immediately following. My Sony WH-1000XM3 headphones also worked after a few seconds, including volume controls. Play/Pause controls do not work, because the Rockbox/iPod firmware do not know how to connect to the bluetooth board for playback control.&lt;/p&gt;
&lt;p&gt;All of the other regular functions of the iPod work properly. Before adding the front and rear glass panels (with pre-applied adhesive), I gave the battery a full charge waiting for the indicator light to go from orange to green. Once the black glass panels are on the device, the indicator lights will be visible from the small holes on the top of the device.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/00BYlMSAO4-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/00BYlMSAO4-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/00BYlMSAO4-1400.jpeg&quot; alt=&quot;Boxy Pixel iPod Rear&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Once the glass panels were inlaid, I wrapped the device in foam and put a stack of magazines to weigh the device to ensure adhesion.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/o7k4TUWuzf-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/o7k4TUWuzf-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/o7k4TUWuzf-1400.jpeg&quot; alt=&quot;Magazine pile&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/S6Hv-7PGpQ-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/S6Hv-7PGpQ-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/S6Hv-7PGpQ-900.jpeg&quot; alt=&quot;Image of iPod running default firmware&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/SE09MQGkR0-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/SE09MQGkR0-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/SE09MQGkR0-900.jpeg&quot; alt=&quot;Image of iPod running default firmware&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;alternative-firmware-rockbox&quot;&gt;Alternative Firmware: Rockbox&lt;/h2&gt;
&lt;p&gt;Once the iPod was up and running I dove into Rockbox. I added some new themes, transferred and updated some files, and tried editing the WPS (now playing) screen. I hadn&#39;t updated much since 2018 jumping from version &lt;code&gt;3.14&lt;/code&gt; to &lt;code&gt;4.0&lt;/code&gt;!&lt;/p&gt;
&lt;p&gt;Here are a few examples of themes.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/aZhTK9k2r7-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/aZhTK9k2r7-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/aZhTK9k2r7-900.jpeg&quot; alt=&quot;Image of iPod running Rockbox theme&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;&lt;a href=&quot;https://themes.rockbox.org/index.php?themeid=3565&amp;amp;target=ipod6g&quot;&gt;win95_wide_edition&lt;/a&gt; Rockbox theme&lt;/em&gt;&lt;br&gt;
&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/eLJwRYl3jB-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/eLJwRYl3jB-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/eLJwRYl3jB-900.jpeg&quot; alt=&quot;Image of iPod running Rockbox theme&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;&lt;a href=&quot;https://themes.rockbox.org/index.php?themeid=3981&amp;amp;target=ipod6g&quot;&gt;Snartymono&lt;/a&gt; Rockbox theme&lt;/em&gt;&lt;br&gt;
&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Zo7nlLNjDa-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Zo7nlLNjDa-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Zo7nlLNjDa-900.jpeg&quot; alt=&quot;Image of iPod running Rockbox theme&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;&lt;a href=&quot;https://themes.rockbox.org/index.php?themeid=4069&amp;amp;target=ipod6g&quot;&gt;Jive_Mono (v2) mod&lt;/a&gt; Rockbox theme&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;database-indexing&quot;&gt;Database Indexing&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.rockbox.org/&quot;&gt;Rockbox&lt;/a&gt; was having issues with the database re-indexing. Even when plugged-in, the iPod never seemed to finish the indexing process. As a result, the database would only have a few entries. Rockbox needs to scan your music files in order to have populated menus for Artist, Album, Year, Genre, etc. On stock iPod firmware, this database building happens in iTunes and is transferred as part of the syncing process. On Rockbox, since we transfer files directly, this usually happens on-device, but the iPod has limited memory and can error-out quickly on larger music collections.&lt;/p&gt;
&lt;p&gt;To get my new files properly indexed, I ran the Rockbox UI Simulator (on Windows) and followed &lt;a href=&quot;https://old.reddit.com/r/rockbox/comments/10e9cnn/problem_with_rockbox_database_on_ipod_classic/&quot;&gt;this process&lt;/a&gt; to create the database on the simulator and then transfer it to my iPod&#39;s file-system. It also allowed me to check if there was a file causing the database initialization to fail (ex., with a non-standard filename).&lt;/p&gt;
&lt;p&gt;Using the &lt;a href=&quot;https://www.rockbox.org/wiki/UiSimulator&quot;&gt;Rockbox UI Simulator&lt;/a&gt;, I first copied my &lt;code&gt;/music&lt;/code&gt; folder to the &lt;code&gt;simdrive&lt;/code&gt; folder inside the UI Simulator folder. Then, indexed the database. Renaming any files that caused errors, names that were too long or with invalid characters (ex., periods and ampersands), the database was updated. Once I had the &lt;code&gt;database.tcd&lt;/code&gt; files (1 through 12), I copied them from the &lt;code&gt;simdrive&lt;/code&gt; folder into my &lt;code&gt;/.rockbox&lt;/code&gt; folder. Ejecting the device showed a populated database. I left the simulator &lt;a href=&quot;https://marcrosoft.dk/rockbox/simulators/&quot;&gt;software folder&lt;/a&gt; on the iPod to allow for quick future updating.&lt;/p&gt;
&lt;h3 id=&quot;rockbox-theme-inthedark&quot;&gt;Rockbox Theme: InTheDark&lt;/h3&gt;
&lt;p&gt;After getting everything working, I wanted a new theme to go with my new dark metal iPod Video. After trying to incorporate the &lt;a href=&quot;https://themes.rockbox.org/index.php?themeid=4069&amp;amp;target=ipodvideo&quot;&gt;jive_mono&lt;/a&gt; and &lt;a href=&quot;https://themes.rockbox.org/index.php?themeid=3924&amp;amp;target=ipodvideo&quot;&gt;Nether&lt;/a&gt; themes, I landed on adapting &lt;a href=&quot;https://themes.rockbox.org/index.php?themeid=3989&amp;amp;target=ipodvideo&quot;&gt;dst_dark&lt;/a&gt;. It’s a clean, modern theme with proportional sizing for the iPod Video display. Credit to the creator of &lt;a href=&quot;https://themes.rockbox.org/index.php?themeid=3989&amp;amp;target=ipodvideo&quot;&gt;dst_dark&lt;/a&gt;, D Juarez.&lt;/p&gt;
&lt;p&gt;The basic changes include,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removal of Cover Art on menu screens,&lt;/li&gt;
&lt;li&gt;Reduction of Album Art to 100px square,&lt;/li&gt;
&lt;li&gt;Alignment of Album Art to top of Title,&lt;/li&gt;
&lt;li&gt;Vertical spacing changes to metadata information on WPS (ex., making spacing uniform between Artist and Album lines),&lt;/li&gt;
&lt;li&gt;Addition of Year field to WPS, and,&lt;/li&gt;
&lt;li&gt;Larger bolded song title.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/iyYLQjNMYD-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/iyYLQjNMYD-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/iyYLQjNMYD-900.jpeg&quot; alt=&quot;Image of Rockbox theme: InTheDark&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Cw7sBxJF1i-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Cw7sBxJF1i-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Cw7sBxJF1i-900.jpeg&quot; alt=&quot;Image of Rockbox theme: InTheDark&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;After using the Boxy Pixel shell and Bluetooth controller with my iPod Video this past week, it’s a good sized device, it feels premium with the glass and metal case design, the theme compliments the design, it slides easily into a pocket, and the mod instructions were helpful.&lt;/p&gt;
&lt;p&gt;If you’re an &lt;em&gt;iPod Classic collector&lt;/em&gt;, it’s worth exploring if these mods could help make the device more useful for you.&lt;/p&gt;
&lt;p&gt;Some downsides, the mods take time to do properly, the Bluetooth redemption has sometimes caused slight disconnection or garbled audio issues. I did get the external antenna as another mod that I could add, but I’m not sure a longer antenna stuffed into the same case would actually help with reception.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ABNMy_dBkY-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ABNMy_dBkY-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/ABNMy_dBkY-900.jpeg&quot; alt=&quot;Image of modded iPod Video 5.5g&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/oA12p33z75-900.avif 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/oA12p33z75-900.webp 900w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/oA12p33z75-900.jpeg&quot; alt=&quot;Image of modded iPod Video 5.5g&quot; width=&quot;900&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Trip Log: Day 17</title>
    <link href="https://theonlyblogever.com/blog/2026/alwaysbuy.html" />
    <updated>2026-07-23T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/alwaysbuy.html</id>
    <content type="html">&lt;p&gt;I do not know exactly how to summarize the last few weeks.&lt;/p&gt;
&lt;h2 id=&quot;connecting-home&quot;&gt;Connecting Home&lt;/h2&gt;
&lt;p&gt;We started a family vacation and the tech I had prepared worked well enough. I had &lt;code&gt;BAXIAL&lt;/code&gt; running at home and was able to access my audio library through &lt;a href=&quot;https://theonlyblogever.com/blog/2026/blog/2026/localmusic.html&quot;&gt;Navidrome&lt;/a&gt; and my podcasts through audiobookshelf everyday. I had downloaded multiple local copies of media as a backup as well.&lt;/p&gt;
&lt;p&gt;The cruise ship&#39;s wifi worked fine for streaming &lt;code&gt;192kbps&lt;/code&gt; &lt;code&gt;opus&lt;/code&gt; audio (trancoded by Navidrome). If I had wanted lossless I would have needed to pay for faster speeds (over Starlink). it also limited the connections to 1 device per guest. Because the ship was close to land, I had cellular data access often and used that connection to download media for consumption throughout the day. On my phone this worked well enough.&lt;/p&gt;
&lt;p&gt;When the power went out during a thunderstorm, I asked a friend to restart the server and log into the machine manually. In the future a &lt;a href=&quot;https://www.eaton.com/ca/en-gb/catalog/backup-power-ups-surge-it-power-distribution/tripp-lite-by-eaton-smartpro-ups.html#models&quot;&gt;working UPS&lt;/a&gt; and a &lt;a href=&quot;https://github.com/sipeed/NanoKVM&quot;&gt;proper KVM&lt;/a&gt; could help mitigate downtime as a result of power outages. In many ways, it&#39;s a reflection of the work I&#39;ve poured into home-labbing in the last few years, choosing the best solutions for &lt;a href=&quot;https://www.youtube.com/watch?v=MQRpIUu3dMw&quot;&gt;my own idiosyncrasies&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course, you should &lt;em&gt;never&lt;/em&gt; connect to random unsecured and untrusted wifi connections.&lt;/p&gt;
&lt;h2 id=&quot;second-vacation&quot;&gt;Second Vacation&lt;/h2&gt;
&lt;p&gt;After visiting some towns along Alaska&#39;s &lt;em&gt;southern&lt;/em&gt; inside passage, I&#39;m now sitting in a capsule hotel in Tokyo, Japan preparing for my day at 3:40 am.&lt;/p&gt;
&lt;p&gt;I feel fortunate to be here experiencing a new country and culture. My late-night &lt;em&gt;onigiri&lt;/em&gt; was excellent. Once 5:30 am hits, I&#39;ll be in line again at Lawson&#39;s convenience store, known as &lt;em&gt;combini&lt;/em&gt;, for my breakfast snack.&lt;/p&gt;
&lt;h3 id=&quot;capsule-hotel-review&quot;&gt;Capsule Hotel Review&lt;/h3&gt;
&lt;p&gt;I did not think through the logistics of staying at a capsule hotel. My capsule is rectangular at floor to ceiling height, but it&#39;s small. I slept surrounded by my belongings. The hotel runs 7 pm to 7 am and it&#39;s meant for travellers resting between flights. The standard rooms are the width of a single bed with a small counter for belongings. It has a portion that acts as a narrow lockbox with a key lock, but it&#39;s so narrow it won&#39;t fit much.&lt;/p&gt;
&lt;p&gt;My specific hotel has a luggage room, laundry, a lounge for eating with vending machines, a shower-spa, and private toilet facilities. Men and women are separated by sections. I wasn&#39;t sure of the etiquette for the shower room. I noticed others dressed and carrying their toiletries. You wear the provided slippers in all areas and remove them for entering the toilet and shower areas.&lt;/p&gt;
&lt;p&gt;I slept fine, but the fabric roll-down door doesn&#39;t roll down to the floor and the hallway lights are kept on 24/7. For someone, like me, who appreciates darkness during sleep, I wedged the comforter at the foot of the bed. The lack of a solid door means you hear every noise. I was awoken with the sounds of arrival from other guests. A sleep mask and earplugs could help. It&#39;s silent in the sleeping area and there are many rules to follow.&lt;/p&gt;
&lt;p&gt;I do wish that North America could adapt this style of hotel. It would be more efficient and make it easier to travel. Safety being more of a concern, lockers could make it work.&lt;/p&gt;
&lt;h2 id=&quot;postscript&quot;&gt;Postscript&lt;/h2&gt;
&lt;p&gt;These are my notes. I haven&#39;t been in much of a mood to write. I&#39;m off to enjoy more vacation in the current tropical climate of Japan.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Your Hardware Is Not Yours</title>
    <link href="https://theonlyblogever.com/blog/2026/tlday0point5.html" />
    <updated>2026-07-01T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/tlday0point5.html</id>
    <content type="html">&lt;p&gt;To prepare for our upcoming vacation, we bought some Apple AirTag™ 2&#39;s. These are the &lt;em&gt;updated&lt;/em&gt; location tracking devices that work in the Apple™ ecosystem. We&#39;ve had success with them in the past for tracking luggage.&lt;/p&gt;
&lt;p&gt;Unfortunately, the new AirTag™ 2&#39;s require that iOS devices are running &lt;a href=&quot;https://support.apple.com/en-us/123075&quot;&gt;iOS 26.2.1 or later&lt;/a&gt;. I could not add the new AirTags to my Apple account through the FindMy application. It forced me to update my iPhone 12 mini, an old iOS device, to iOS &lt;em&gt;Liquid Glass™&lt;/em&gt; 26.5.2. I could not even add the devices before updating.&lt;/p&gt;
&lt;p&gt;Yet another reminder that &lt;span class=&quot;standout-box&quot;&gt;the hardware we purchase is not truly ours&lt;/span&gt;. On iPhone, I cannot skin or theme the device. I cannot change the fundamental ways that I interact with the device. I cannot modify the device in an meaningful (internal) way. I cannot change it&#39;s basic functions. I cannot remove or forcefully disable functions that I do not want or need.&lt;/p&gt;
&lt;h1 id=&quot;the-smartphone&quot;&gt;The Smartphone&lt;/h1&gt;
&lt;p&gt;For better or for worse, Smartphones have become integral to modern life. We need them for access to mapping and navigation data, ticketing systems, secure payments and digital communications.&lt;/p&gt;
&lt;p&gt;Cellular phones have been locked-down for their entire existence. In the mid-2000s, the resistance to smartphones by the carriers was major. In Canada, it took years before the large &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_mobile_network_operators_in_Canada&quot;&gt;cellphone carriers&lt;/a&gt; (ex., ROBELUS) would allow certain features on smartphones (ex., Wifi-based calling and carrier unlock). The original iPhone was released in 2007 and it &lt;a href=&quot;https://web.archive.org/web/20080501092726/http://www.thestar.com/Business/article/419503&quot;&gt;wasn&#39;t available&lt;/a&gt; in Canada until the &lt;a href=&quot;https://old.reddit.com/r/Rogers/comments/1buzol0/found_an_old_rogers_iphone_3g_pamphlet/&quot;&gt;iPhone 3G&lt;/a&gt; release a &lt;a href=&quot;https://www.apple.com/ca/newsroom/2008/06/09Rogers-and-Apple-to-Bring-iPhone-3G-to-Canada-on-July-11/&quot;&gt;year later&lt;/a&gt; with a &lt;a href=&quot;https://appleinsider.com/articles/08/07/08/spat_with_rogers_leaves_canadian_apple_stores_without_iphones.html&quot;&gt;three-year contract&lt;/a&gt;. There was even an &lt;a href=&quot;https://www.ruinediphone.com/&quot;&gt;online petition&lt;/a&gt; which forced Rogers to offer a less expensive data plan.&lt;/p&gt;
&lt;p&gt;In 2017, I moved from Bell Mobility to Public Mobile. At the time, I had been long frustrated with traditional &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_mobile_network_operators_of_the_Americas&quot;&gt;mobile network operators (MNOs)&lt;/a&gt; like Bell. Mobile data pricing was very high before 2020 and the postpaid mobile plans added roaming fees, monthly overage fees, long-term contracts and credit checks. Back then, cellphones were often locked to a carrier and sold on payment plans with your monthly bill. You didn&#39;t buy cellphones directly from the companies that sold them. They were tertiary to the plan. The carriers wanted to keep customers on contract. That is the business model: keep consumers locked to a carrier and to a contract.&lt;/p&gt;
&lt;h2 id=&quot;mvnos&quot;&gt;MVNOs&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Public_Mobile&quot;&gt;Public Mobile&lt;/a&gt; is an MVNO or mobile virtual network operator that operates &lt;em&gt;over top&lt;/em&gt; of the traditional carrier networks. In Public Mobile&#39;s case, they use the Telus network. I&#39;m reticent to recommend any &lt;a href=&quot;https://redflagdeals.planhub.ca/&quot;&gt;particular operator&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Virtual carriers were created in response to a &lt;a href=&quot;https://www.michaelgeist.ca/2015/05/crtc-falls-short-on-true-wireless-competition/&quot;&gt;CRTC decision in the mid-2010s&lt;/a&gt;. It took years for MVNOs to become competitive. The traditional carriers have slowly acquired the start-up MVNOs. Once they are under the control of a big-three carrier, they remove discounts, raise base-rates and remove features. Eventually, the Canadian cellular landscape will revert to a 2010s state. Highly priced contracts will prevail.&lt;/p&gt;
&lt;p&gt;In the interim, we have MVNOs like Fizz (owned by Vidéotron) and Public Mobile (owned by Telus). Each carrier now has it&#39;s low-cost, &lt;em&gt;bring your own device&lt;/em&gt;, no-contract, &lt;em&gt;pick-your-plan&lt;/em&gt; offspring. They claim lower cost and freedom from the chains of outdated contracts pulling you down (charging you each month). Of course, over-time, these companies are purchased by a bigger company and stripped of the things that made them &lt;em&gt;special&lt;/em&gt;. Gone is the proper technical support, the points program, the easy-to-navigate website, and the discounts that drew you to those carriers in the first place.&lt;/p&gt;
&lt;p&gt;If you need a smartphone buy a refurbished or used cell phone. Pickup a prepaid carrier SIM card and sign-up for the cheapest plan you can.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Trip Log: Day 0</title>
    <link href="https://theonlyblogever.com/blog/2026/tlday0.html" />
    <updated>2026-06-30T14:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/tlday0.html</id>
    <content type="html">&lt;p&gt;After 18 months of preparation and planning. It&#39;s almost time for our family to leave on our &lt;em&gt;Summer Vacation Bonanza 2026&lt;/em&gt;. We&#39;re headed to Seattle and parts of Alaska and northern Canada. Then, we&#39;re crossing the Pacific to Japan, ending up back in mid-Ontario towards the end.&lt;/p&gt;
&lt;p&gt;&lt;s&gt;I&#39;m committed to blogging throughout the trip to share images and experiences. My hope is 250 words a day as a Trip Log. You&#39;ll see a new section in the navigation called &lt;a href=&quot;https://theonlyblogever.com/travel&quot;&gt;/travel&lt;/a&gt; listing all of the travel posts.&lt;/s&gt; This didn&#39;t happen. Instead, I&#39;ll be posting as usual.&lt;/p&gt;
&lt;p&gt;I wanted to be well-organized on this trip. Keeping a record of everything that I had packed, down to the last SD card, was apart of that strategy. Plus, it&#39;ll help me recognize the things I used versus the items I didn&#39;t actually need on the trip.&lt;/p&gt;
&lt;h1 id=&quot;brendans-packing-list&quot;&gt;Brendan&#39;s Packing List&lt;/h1&gt;
&lt;h2 id=&quot;alaska-only-clothing&quot;&gt;Alaska Only Clothing&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Levis Fleece Hooded Sweater (Green)&lt;/li&gt;
&lt;li&gt;2x Gap Black Jeans&lt;/li&gt;
&lt;li&gt;Tuque&lt;/li&gt;
&lt;li&gt;Gloves&lt;/li&gt;
&lt;li&gt;4x Long Wool Sock pairs&lt;/li&gt;
&lt;li&gt;2x Long Sleeve Cotton Shirt&lt;/li&gt;
&lt;li&gt;2x Long PJ Pant&lt;/li&gt;
&lt;li&gt;1x cotton hoodie, black&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;japan-only-clothing&quot;&gt;Japan Only Clothing&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;2x Jack and Jones Vacation shirts&lt;/li&gt;
&lt;li&gt;1x blue generic tank top&lt;/li&gt;
&lt;li&gt;1x topo designs black sun hat&lt;/li&gt;
&lt;li&gt;Birkenstock vegan sandals grey&lt;/li&gt;
&lt;li&gt;1x HH shorts (1 camo)&lt;/li&gt;
&lt;li&gt;1x Old Navy Stretch Short (1 synthetic)&lt;/li&gt;
&lt;li&gt;1x PJ short bottom&lt;/li&gt;
&lt;li&gt;2x Hollister casual short&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;common-clothing&quot;&gt;Common Clothing&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Brown belt&lt;/li&gt;
&lt;li&gt;1x Green River Poly T-Shirts Green&lt;/li&gt;
&lt;li&gt;1x Green River Poly T-Shirts Burgundy&lt;/li&gt;
&lt;li&gt;1x Gap XL cotton t-shirt grey&lt;/li&gt;
&lt;li&gt;1x Hollister xl curved hem t-shirt&lt;/li&gt;
&lt;li&gt;New Balance 574 blue shoes (wear)&lt;/li&gt;
&lt;li&gt;5x pairs puma ankle socks black (1ex wear)&lt;/li&gt;
&lt;li&gt;1x Bathing suit bottoms&lt;/li&gt;
&lt;li&gt;4x SAXX grey boxer brief (1ex wear)&lt;/li&gt;
&lt;li&gt;2x SAXX Black boxer brief&lt;/li&gt;
&lt;li&gt;1x Light Gap sport pull-over gray&lt;/li&gt;
&lt;li&gt;1x Green Rain Coat&lt;/li&gt;
&lt;li&gt;1x Green River Wear Hat&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;toiletries&quot;&gt;Toiletries&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;In Checked Baggage&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;Sunscreen&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Aloe Bottle&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;Large toothpaste tube&lt;/li&gt;
&lt;li&gt;Razor Blades for Safety Razor&lt;/li&gt;
&lt;li&gt;Topo Designs 3L Dopp Kit Green
&lt;ul&gt;
&lt;li&gt;Toothbrush, soft bristle&lt;/li&gt;
&lt;li&gt;Colgate Sensitive toothpaste, small&lt;/li&gt;
&lt;li&gt;Soap bar&lt;/li&gt;
&lt;li&gt;Safety Razor Handle&lt;/li&gt;
&lt;li&gt;10x salt nasal rinse packets&lt;/li&gt;
&lt;li&gt;1x salt rinse bottle&lt;/li&gt;
&lt;li&gt;Dental Floss&lt;/li&gt;
&lt;li&gt;Retainers&lt;/li&gt;
&lt;li&gt;5x retainer cleaning packets&lt;/li&gt;
&lt;li&gt;Wooden Beard Comb&lt;/li&gt;
&lt;li&gt;Nail Kit&lt;/li&gt;
&lt;li&gt;1x Ear wax cleaning kit&lt;/li&gt;
&lt;li&gt;1x peroxide ear solution&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;carry-on-backpack&quot;&gt;Carry-On Backpack&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Framework 13&amp;quot; (12th Gen)&lt;/li&gt;
&lt;li&gt;Kindle eReader (USB-C)&lt;/li&gt;
&lt;li&gt;Anker PowerCore III Elite 26K 60W powerbank&lt;/li&gt;
&lt;li&gt;710ml Yeti waterbottle&lt;/li&gt;
&lt;li&gt;3L generic black travel sling
&lt;ul&gt;
&lt;li&gt;Sony a6700 Camera Body&lt;/li&gt;
&lt;li&gt;Pancake Kit Lens&lt;/li&gt;
&lt;li&gt;Sony 35mm lens (on camera)&lt;/li&gt;
&lt;li&gt;1x CPL Filter and light cap&lt;/li&gt;
&lt;li&gt;2 third-party batteries&lt;/li&gt;
&lt;li&gt;Peak Design wrist strap&lt;/li&gt;
&lt;li&gt;Lens covers&lt;/li&gt;
&lt;li&gt;Cleaning cloth&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Topo Designs Accessory Pouch (9.5&amp;quot; x 7.5&amp;quot;) Forest Green (Tech)
&lt;ul&gt;
&lt;li&gt;1 UGreen Nexode GaN Charger (2x USB-C, 1x USB-A)&lt;/li&gt;
&lt;li&gt;1 USB-C cable (1 meter)&lt;/li&gt;
&lt;li&gt;1 USB-C to Lightning cable (1 meter)&lt;/li&gt;
&lt;li&gt;1 Generic USB-A SD card reader&lt;/li&gt;
&lt;li&gt;2 pens&lt;/li&gt;
&lt;li&gt;1 small notebook&lt;/li&gt;
&lt;li&gt;2 sharpie markers (1 fine-point black, 1 regular red)&lt;/li&gt;
&lt;li&gt;1 blue heroclip&lt;/li&gt;
&lt;li&gt;1 niteize red clip light&lt;/li&gt;
&lt;li&gt;1 small Olight flashlight (AAA battery powered)&#39;&lt;/li&gt;
&lt;li&gt;3x CR 2032 coin-cell batteries&lt;/li&gt;
&lt;li&gt;Topo Designs Accessory Pouch Blue (4.75&amp;quot; x 3.25&amp;quot;)
&lt;ul&gt;
&lt;li&gt;1 USB-A female to USB-C male adapter&lt;/li&gt;
&lt;li&gt;1 USB-C female to micro-usb male adapter&lt;/li&gt;
&lt;li&gt;1 micro-USB female to lightning male&lt;/li&gt;
&lt;li&gt;1 USB-A male to lightning male adapter&lt;/li&gt;
&lt;li&gt;1 SIM card removal tool&lt;/li&gt;
&lt;li&gt;1 generic SD card reader (USB-A)&lt;/li&gt;
&lt;li&gt;2x 64GB SD Cards&lt;/li&gt;
&lt;li&gt;2x generic USB thumb drives (USB-A and USB-C)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Sony HW1000-XM3 Over-ear headphones
&lt;ul&gt;
&lt;li&gt;3.5mm to 3.5mm cable&lt;/li&gt;
&lt;li&gt;Airplane audio adapter&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;3x FlightGuard Pressure Relief earplugs&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Topo Designs Accessory Pouch Rust (9.5&amp;quot; x 7.5&amp;quot;) (Aid)&lt;/s&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;Foam earplugs&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Small first-aid kit&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;emergency toiletries&lt;/s&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Nothing Ear 3(a) earbuds&lt;/li&gt;
&lt;li&gt;Sunglasses&lt;/li&gt;
&lt;li&gt;Rain cover for backpack&lt;/li&gt;
&lt;li&gt;1x pair Underwear, shirt and socks&lt;/li&gt;
&lt;li&gt;1x long-sleeve summer zip-up&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>I Don&#39;t Know How to Feel About Tech Right Now</title>
    <link href="https://theonlyblogever.com/blog/2026/sensitivetech.html" />
    <updated>2026-06-25T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/sensitivetech.html</id>
    <content type="html">&lt;p&gt;With consumer tech rising in price (with industry supply and demand) it feels like everything is stagnant. It doesn&#39;t make much sense to build a custom computer or buy new parts to refresh an existing system.&lt;/p&gt;
&lt;p&gt;Additionally, we have large language models being given increasing autonomy. They are allowed more permissions and being integrated into production systems. Depending on the setup, they can manipulate files, push changes and delete things without human intervention. We also see this AI influence in coding. Developers and project maintainers are dealing with an onslaught of artificial contributions. In some cases, the human (ostensibly &lt;em&gt;in the loop&lt;/em&gt;) did not understand the code that was submitted.&lt;/p&gt;
&lt;p&gt;I&#39;m in a hold. With the cost of everything, it doesn&#39;t make sense for me to upgrade. My Framework 13 (12th gen Intel i5) does everything I need and more. It can actually run small &lt;em&gt;limited&lt;/em&gt; models. I won&#39;t be giving a language model access to my file system anytime soon.&lt;/p&gt;
&lt;p&gt;This post has no links and no proof just thoughts and feelings.&lt;/p&gt;
&lt;p&gt;This is the time of year where I usually have more time for hobbies. This year, I can&#39;t afford to upgrade hardware. I&#39;m sticking with the consumer tech that I own currently. If it breaks, I&#39;ll find used replacements. If the pricing crashes back to reasonable levels, maybe I&#39;ll upgrade some components.&lt;/p&gt;
&lt;p&gt;The healthiest thing for me will be to enjoy using my current hardware.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Off-Duty in the Hallway #5: Transporter Misfire</title>
    <link href="https://theonlyblogever.com/blog/2026/comic05.html" />
    <updated>2026-06-20T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/comic05.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ybvIsBSVqZ-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ybvIsBSVqZ-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/ybvIsBSVqZ-1400.png&quot; alt=&quot;Webcomic of Ensign Brendan on the Starship Voyager&quot; width=&quot;1400&quot; height=&quot;1045&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Off-Duty in the Hallway #5: Transporter Misfire&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;em&gt;Notice:&lt;/em&gt; Any similarities to persons living and/or dead is definitely intentional. The above comic panel is fan art. It is considered fair dealing for the purpose of parody under the Canadian Copyright Act (&lt;em&gt;R.S.C., 1985, c. C-42&lt;/em&gt;).&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Making Fonts Based on My Handwriting</title>
    <link href="https://theonlyblogever.com/blog/2026/fontmaker.html" />
    <updated>2026-06-19T23:09:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/fontmaker.html</id>
    <content type="html">&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;I got this idea from Chris Smith&#39;s post, &lt;a href=&quot;https://chameth.com/making-a-font-of-my-handwriting/&quot;&gt;Making a Font of My Handwriting&lt;/a&gt;. The post serves as an excellent guide and introduction to &lt;a href=&quot;https://www.calligraphr.com&quot;&gt;Calligraphr&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;I&#39;ve wanted to create fonts on my own handwriting for years. I know that I&#39;ve tried this at numerous times past and quickly abandoned the pursuit. I have an old wacom tablet, but it&#39;s small and not precise for handwriting.&lt;/p&gt;
&lt;p&gt;I&#39;ve made a handwritten &lt;a href=&quot;https://theonlyblogever.com/blog/2025/tangara-beet.html&quot;&gt;post before&lt;/a&gt;. I started that process trying to write and draw directly into a app like &lt;a href=&quot;https://maoschanz.github.io/drawing/&quot;&gt;Drawing&lt;/a&gt; or Inkscape. With my old pen tablet (or mouse) it was very difficult and time consuming. Instead, I hand-wrote and drew the post on paper and then scanned the pages into GIMP, cleaned-up the scans, removed the backgrounds, and turned the text white before exporting the paragraphs to &lt;code&gt;.png&lt;/code&gt; files and drafting the post.&lt;/p&gt;
&lt;p&gt;It&#39;s worth noting that calligraphr is a closed-source, paid, web app. I paid $12 CAD for a month of usage. It uses printed template pages. You choose your character-set and then print and fillout the pages. I had success using a flatbed scanner to scan my pages in clearly. Then, uploading the resulting &lt;code&gt;.pdf&lt;/code&gt; to the site, I edited the individual letters to line them up.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/qz7T04e_pt-1150.avif 1150w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/qz7T04e_pt-1150.webp 1150w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/qz7T04e_pt-1150.png&quot; alt=&quot;screenshot from calligraphr&quot; width=&quot;1150&quot; height=&quot;1148&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: calligraphr interface&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/8HSpQAydWn-1270.avif 1270w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/8HSpQAydWn-1270.webp 1270w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/8HSpQAydWn-1270.png&quot; alt=&quot;screenshot from calligraphr&quot; width=&quot;1270&quot; height=&quot;828&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: calligraphr interface&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/fyJGMQlu6E-1160.avif 1160w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/fyJGMQlu6E-1160.webp 1160w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/fyJGMQlu6E-1160.png&quot; alt=&quot;&quot; width=&quot;1160&quot; height=&quot;566&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Brendan Hand font in OpenOffice Writer&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I had fun making this font. I&#39;m looking forward to continuing to experiment with different styles and pen strokes. You can also &lt;em&gt;randomize&lt;/em&gt; a font, by adding additional versions of the same character. This gives the font a more life-like organic feel.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/myghLp8Lib-1214.avif 1214w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/myghLp8Lib-1214.webp 1214w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/myghLp8Lib-1214.png&quot; alt=&quot;screenshot from calligraphr&quot; width=&quot;1214&quot; height=&quot;918&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: calligraphr interface&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I struggled to write this. It&#39;s been feeling lately like life is passing sluggishly, but also rushing past at the same time.&lt;/p&gt;
&lt;p&gt;Take care of each other.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Windows Retrospective: Making a Linux User</title>
    <link href="https://theonlyblogever.com/blog/2026/winblows.html" />
    <updated>2026-06-08T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/winblows.html</id>
    <content type="html">&lt;p&gt;I&#39;m playing into the meme, &lt;em&gt;Micro$hit Window$&lt;/em&gt; is terrible.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/fP2YQJHZfT-1070.avif 1070w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/fP2YQJHZfT-1070.webp 1070w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/fP2YQJHZfT-1070.png&quot; alt=&quot;Screenshot from Microshaft Winblows 98 (1998)&quot; width=&quot;1070&quot; height=&quot;825&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Microshaft Winblows 98 (1998)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&#39;ve been solely running Linux distributions on my personal laptop for more than seven years now. In 2024, I repurposed an old desktop with Ubuntu, for use as a server and secondary desktop. I&#39;m realizing that I rarely use my Windows 11 desktop machine. I enjoy using Linux. Here&#39;s a rundown of my experiences with Windows as of late.&lt;/p&gt;
&lt;h2 id=&quot;the-windows-experience&quot;&gt;The Windows Experience&lt;/h2&gt;
&lt;p&gt;Booting into Windows 11 and it forces an update. I&#39;m stuck waiting for the installation and reboot cycle to finish. I can&#39;t actually use my computer until it&#39;s completed. Opening programs, I&#39;m prompted to update each individual application (ex., Firefox, KeePassXC, Steam, Chrome, FileBot). Again, I&#39;d simply like to use the computer. &lt;em&gt;Nope.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;On Windows 11, there isn&#39;t a universal update mechanism because of the &lt;a href=&quot;https://old.reddit.com/r/linuxmasterrace/comments/4p1chi/why_would_windows_not_use_a_package_manager/&quot;&gt;system design&lt;/a&gt;. Conversely, on Linux we just run a quick &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt;, or &lt;code&gt;sudo dnf update&lt;/code&gt;, or &lt;code&gt;flatpak update&lt;/code&gt; in the terminal and all of the repositories, containing all of the newly updated software, get updated at once (including the kernel, drivers, and operating system).&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FKGF1vqF_C-2432.avif 2432w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FKGF1vqF_C-2432.webp 2432w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/FKGF1vqF_C-2432.png&quot; alt=&quot;Windows Me Millennium Edition Screenshot&quot; width=&quot;2432&quot; height=&quot;1858&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Windows Me Millennium Edition (1999)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The Windows ecosystem is fractured. Updating the operating systems (and sometimes drivers) happens through Windows Update, but updating programs happens manually and requires navigating to the website and downloading an installer.&lt;/p&gt;
&lt;p&gt;In addition, Lots of software (ex., adobe, chrome, steam, firefox, ms office, iTunes...) has taskbar background &lt;em&gt;helper&lt;/em&gt; agents (or applets) that will prompt for an update from the user or automatically update the program in the background. Sure, these can be convenient but they steal cpu cycles and can bog down machines. Those applets can be difficult to stop or remove often requiring a trip to &lt;code&gt;regedit.exe&lt;/code&gt; or &lt;code&gt;services.msc&lt;/code&gt; with help from &lt;a href=&quot;https://learn.microsoft.com/en-us/sysinternals/&quot;&gt;SysInternals autoruns&lt;/a&gt;. At least Microsoft on-boarded the developer of those wonderful utilities. The fact that you need them to make a base install manageable is telling.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TX8YJ6fwsh-2508.avif 2508w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TX8YJ6fwsh-2508.webp 2508w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/TX8YJ6fwsh-2508.png&quot; alt=&quot;Windows 10 screenshot&quot; width=&quot;2508&quot; height=&quot;2074&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Windows 10 running OpenShell&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;My current Windows installation has existed since an early version of Windows 10 from around 2017 and Windows 11 is just an upgrade. I&#39;ve borked the installation trying to strip away functionality to make the system more efficient. I always install &lt;a href=&quot;https://open-shell.github.io/Open-Shell-Menu/&quot;&gt;OpenShell&lt;/a&gt; for that classic Windows taskbar experience. I&#39;ve used various tools to remove &lt;em&gt;crapware&lt;/em&gt;. No, I don&#39;t want the Windows App Store, or advertisements for Candy Crush, Xbox Game Pass or MSN News in the taskbar or in menus. I don&#39;t want app tiles, or a co-pilot icon, or a giant search bar, or a web search integrated into a system file search. I want my operating system to stay out of my way. I want my operating system to show me useful information as I use the system.&lt;/p&gt;
&lt;h2 id=&quot;operating-systems-a-history&quot;&gt;Operating Systems: A History&lt;/h2&gt;
&lt;p&gt;I&#39;ve been a Windows user since I was 7 years old. I used Windows 95 for the first time on my Dad&#39;s laptop and I was hooked. I used Windows 98 then Windows 2000 extensively as a young person.&lt;/p&gt;
&lt;p&gt;I transitioned to Windows XP around the time I got my own computer in 2004. Then, to Windows 7, in 2011, after a stint with Mac OS X 10.4 and 10.5. In 2012, I transitioned back to Mac OS X with 10.7 through 10.9. I skipped Windows 8, jumping straight to Windows 10 after building a new desktop in late 2018.&lt;/p&gt;
&lt;p&gt;Here&#39;s a rough list of all the operating systems I&#39;ve used daily (since I was aware enough to recognize branding). This list was compiled from memory and the details could be slightly off.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align:left&quot;&gt;Operating System&lt;/th&gt;
&lt;th style=&quot;text-align:left&quot;&gt;Architecture&lt;/th&gt;
&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;
&lt;th style=&quot;text-align:left&quot;&gt;CPU&lt;/th&gt;
&lt;th style=&quot;text-align:left&quot;&gt;Start Date&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows 95&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win 9X&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Packard Bell&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Pentium II&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;late 1998&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows 98 SE&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win 9X&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Packard Bell&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Pentium II&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;~ 2001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows 2000&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win NT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Dell Optiplex&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Pentium III&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;~ 2003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows XP&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win NT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Dell Optiplex&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Pentium III&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;late 2004&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows XP&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win NT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Custom PC&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;AMD Sempron&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;~ 2005&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;OS X 10.4&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Unix/BSD&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;iBook G4&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;PowerPC G4&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;late 2006&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;OS X 10.5&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Unix/BSD&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;iBook G4&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;PowerPC G4&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;~ 2007&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows 7&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win NT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;HP Pavilion DM4&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Intel i5-460M&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;late 2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;OS X 10.6&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Unix/BSD&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;MacBook (2006)&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Intel Core Duo&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;summer 2013&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;OS X 10.9 to 10.11&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Unix/BSD&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;MacBook Pro (mid-2009)&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Intel Core 2 Duo&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;summer 2014&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Linux Mint&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Linux&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;ThinkPad x201&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Intel i5-540M&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;late 2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows 10&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win NT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Custom PC (DELTAFLYER)&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;AMD Ryzen 5&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;late 2018&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Manjaro XFCE&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Linux&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;ThinkPad x220&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Intel i5-2520M&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;~ 2019&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Fedora Workstation 34 to 44&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Linux&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Framework 13&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Intel i5-1240P&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;early 2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Windows 11&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Win NT&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Custom PC (DELTAFLYER)&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;AMD Ryzen 5&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;mid 2024&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Ubuntu 24.04 LTS&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Linux&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;Custom PC (BAXIAL)&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;AMD Ryzen 3&lt;/td&gt;
&lt;td style=&quot;text-align:left&quot;&gt;late 2024&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I didn&#39;t start choosing my operating system for myself until 2004. Prior to 2018, I would experiment with Linux, dual-boot temporarily or run a live-CD, and then go back to Windows or OS X at the first sign of trouble.&lt;/p&gt;
&lt;p&gt;The amount of annoyances (ex., notifications and update dialogue boxes) that pile-up when using Windows are infuriating. It&#39;s part of the reason that I shove it &lt;a href=&quot;https://archive.org/details/tiny-10-NTDEV&quot;&gt;into a VM&lt;/a&gt; for the few programs I need. There isn&#39;t much general computing that I couldn&#39;t accomplish on Windows 7 today. A modern Linux desktop operating system has most programs running well.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/QrrdnxQZCs-1070.avif 1070w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/QrrdnxQZCs-1070.webp 1070w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/QrrdnxQZCs-1070.png&quot; alt=&quot;Screenshot from Microshaft Winblows desktop&quot; width=&quot;1070&quot; height=&quot;825&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Microshaft Winblows (1998) desktop&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&#39;ll keep using Linux.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Off-Duty in the Hallway #4: Avoidance</title>
    <link href="https://theonlyblogever.com/blog/2026/comic04.html" />
    <updated>2026-06-05T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/comic04.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kRZ1iYjtnz-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kRZ1iYjtnz-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/kRZ1iYjtnz-1400.png&quot; alt=&quot;Webcomic of Ensign Brendan on the Starship Voyager&quot; width=&quot;1400&quot; height=&quot;1045&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Off-Duty in the Hallway #4: Avoidance&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;em&gt;Notice:&lt;/em&gt; Any similarities to persons living and/or dead is definitely intentional. The above comic panel is fan art. It is considered fair dealing for the purpose of parody under the Canadian Copyright Act (&lt;em&gt;R.S.C., 1985, c. C-42&lt;/em&gt;).&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Off-Duty in the Hallway #3: Talaxian Anxiety</title>
    <link href="https://theonlyblogever.com/blog/2026/comic03.html" />
    <updated>2026-06-04T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/comic03.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kXizUWn_zh-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kXizUWn_zh-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/kXizUWn_zh-1400.png&quot; alt=&quot;Comic of Ensign Brendan on the Starship Voyager&quot; width=&quot;1400&quot; height=&quot;1045&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Webcomic 3: The Talaxian in &amp;quot;Off-Duty in the Hallway&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;em&gt;Notice:&lt;/em&gt; Any similarities to persons living and/or dead is definitely intentional. The above comic panel is fan art. It is considered fair dealing for the purpose of parody under the Canadian Copyright Act (&lt;em&gt;R.S.C., 1985, c. C-42&lt;/em&gt;).&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Presenting: Off-Duty in the Hallway (a Webcomic)</title>
    <link href="https://theonlyblogever.com/blog/2026/comic02.html" />
    <updated>2026-06-03T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/comic02.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/VQkmhP3VJT-3860.avif 3860w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/VQkmhP3VJT-3860.webp 3860w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/VQkmhP3VJT-3860.png&quot; alt=&quot;Off-Duty in the Hallway Logo&quot; width=&quot;3860&quot; height=&quot;2378&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This will be a limited webcomic series from &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;The Only Blog Ever&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;comic-2-another-run-in-with-8472&quot;&gt;Comic 2: Another Run-In with 8472&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zAlN6Y4xXs-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zAlN6Y4xXs-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/zAlN6Y4xXs-1400.png&quot; alt=&quot;Comic of Ensign Brendan on the Starship Voyager&quot; width=&quot;1400&quot; height=&quot;1045&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Webcomic 2: Ensign Brendan in &amp;quot;Off-Duty in the Hallway&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;synopsis&quot;&gt;Synopsis&lt;/h2&gt;
&lt;p&gt;Set somewhere in the Delta Quadrant, Off-Duty in the Hallway is an exploration of the daily (mostly mundane) interactions between humans and their guests (or invaders) traveling through space.&lt;/p&gt;
&lt;p&gt;It follows the trials and tribulations of a rotating cast of characters. The characters and story lines will be loosely based on parodied versions of the fictional characters from the television show &lt;a href=&quot;https://en.wikipedia.org/wiki/Star_Trek%3A_Voyager&quot;&gt;Star Trek: Voyager (1995)&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;em&gt;Notice:&lt;/em&gt; Any similarities to persons living and/or dead is definitely intentional. The above comic panel is fan art. It is considered fair dealing for the purpose of parody under the Canadian Copyright Act (&lt;em&gt;R.S.C., 1985, c. C-42&lt;/em&gt;).&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Making a Comic with Open Tools</title>
    <link href="https://theonlyblogever.com/blog/2026/comic01.html" />
    <updated>2026-06-02T22:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/comic01.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Z5TElT2dwD-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Z5TElT2dwD-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Z5TElT2dwD-1400.png&quot; alt=&quot;Comic of Ensign Brendan on the Starship Voyager&quot; width=&quot;1400&quot; height=&quot;1045&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Webcomic 1: Ensign Brendan in &amp;quot;Off-Duty in the Hallway&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;I do not want to offend the open source community or the developers who make these tools. If you have a program or workflow that works for you, please, &lt;a href=&quot;https://theonlyblogever.com/contact&quot;&gt;let me know&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;Last sick-day, I tried making a vector trace image in Inkscape. The UI tool icons were hard to see against the dark window theme (I corrected this below). The tools are unintuitive and you can’t do (some of) the same tasks you can accomplish in Adobe Illustrator or in Affinity Designer (ex., blending vector shapes). In the end, I did use Inkscape to make the above comic panel.&lt;/p&gt;
&lt;h2 id=&quot;hobby-designer&quot;&gt;Hobby Designer&lt;/h2&gt;
&lt;p&gt;The GNU Image Manipulation Program (unfortunately known as GIMP) is a similar story. It’s not intuitive or user friendly. I’ve been a Photoshop user for over twenty years and I’ve tried using open source alternatives. For years now, I’ve been forcing myself to use GIMP then I’ll polish the project in Photoshop, whenever I only have Linux available.&lt;/p&gt;
&lt;p&gt;Photoshop CS2, released in 2005, inside of a Windows XP (32 bit) VM or through &lt;a href=&quot;https://appdb.winehq.org/objectManager.php?sClass=version&amp;amp;iId=2631&quot;&gt;Wine&lt;/a&gt; is more capable and has better UX than GIMP. I’ve done that exact thing multiple times. Even with the string and bubblegum solution of installing wine mods and pasting random commands trying to get the right plugin or DLL. It’s still easier than using a program like GIMP.&lt;/p&gt;
&lt;p&gt;I know there are web-based alternatives, but I want something running locally. The closed-sourced options aren’t much better: I do not want a monthly subscription. I do not want a yearly recurring software fee. I do not want software that will track my usage habits relentlessly. &lt;span class=&quot;emphasis-box&quot;&gt;I just want a program that has simple vector and pixel manipulation tools with an open file format&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Photoshop CS6, from 2012, is the last version of Photoshop sold with a perpetual licence. Every version since is only available as part of the Creative Cloud software subscription.&lt;/p&gt;
&lt;h2 id=&quot;app-showdown&quot;&gt;App Showdown&lt;/h2&gt;
&lt;h3 id=&quot;vector-editing&quot;&gt;Vector Editing&lt;/h3&gt;
&lt;h4 id=&quot;inkscape&quot;&gt;Inkscape&lt;/h4&gt;
&lt;p&gt;We have &lt;a href=&quot;https://en.wikibooks.org/wiki/A_Guide_to_Inkscape/Interface&quot;&gt;Inkscape&lt;/a&gt; for vector art. Once you transpose the keyboard shortcuts for the different tools, it works well enough.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://en.wikibooks.org/wiki/A_Guide_to_Inkscape/Interface&quot;&gt;Inkscape&lt;/a&gt;, go into &lt;em&gt;Edit &amp;gt;&amp;gt; Preferences &amp;gt;&amp;gt; Interface &amp;gt; Toolbars&lt;/em&gt; choose the &lt;em&gt;Miniwaita&lt;/em&gt; theme with &lt;em&gt;Tango&lt;/em&gt; as my icon theme. And, in toolbars, I increase the icon size to &lt;em&gt;125%&lt;/em&gt;. This makes the interface easier to use on a higher DPI screen with fractional scaling enabled.&lt;/p&gt;
&lt;h4 id=&quot;graphite&quot;&gt;Graphite&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/GraphiteEditor/Graphite&quot;&gt;Graphite&lt;/a&gt; is a node-based &lt;a href=&quot;https://digitalproduction.com/2025/07/14/graphite-open%E2%80%91source-vector-design-tool-with-a-twist/&quot;&gt;vector tool&lt;/a&gt;, still in the alpha stage, but it &lt;a href=&quot;https://youtu.be/U3E-sWo2H_M?si=pF-eoBthte6kXmnY&quot;&gt;looks promising&lt;/a&gt; and is being actively developed.&lt;/p&gt;
&lt;p&gt;I used the &lt;a href=&quot;https://github.com/GraphiteEditor/Graphite&quot;&gt;discord invite&lt;/a&gt; to download the &lt;code&gt;1.0.0 RC5&lt;/code&gt; flatpak for testing. The first thing I felt was the responsiveness of the interface. It&#39;s fast!&lt;/p&gt;
&lt;h3 id=&quot;raster-editing&quot;&gt;Raster Editing&lt;/h3&gt;
&lt;h4 id=&quot;gimp&quot;&gt;GIMP&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gimp.org/downloads/&quot;&gt;GIMP&lt;/a&gt; is for raster photo editing. It&#39;s existed since the dawn of time and users have always been frustrated with the feature non-parity.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Diolinux/PhotoGIMP&quot;&gt;PhotoGIMP&lt;/a&gt; was an effort to skin GIMP to look like Photoshop with theming and shortcut support. Year after release, it’s difficult to install and get working properly. Maybe, if users need patches and a skin to use your software, with any intuitiveness, the software needs to change. Even &lt;a href=&quot;https://itsfoss.com/photogimp/&quot;&gt;this article&lt;/a&gt;, says that no active development or fixes are happening. Don’t use this.&lt;/p&gt;
&lt;h4 id=&quot;affinity-designer&quot;&gt;Affinity Designer&lt;/h4&gt;
&lt;p&gt;Affinity is a closed-source graphic design package that &lt;em&gt;sort of&lt;/em&gt; &lt;a href=&quot;https://github.com/mrshmllow/affinity-everywhere&quot;&gt;runs on Linux&lt;/a&gt;. If you download an unsupported app image and go through multiple wine install scripts that install on your system in a mystery folder. It is now owned by the company that makes Canva.&lt;/p&gt;
&lt;h3 id=&quot;raw-processing&quot;&gt;RAW Processing&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://rawtherapee.com/&quot;&gt;RawTherapee&lt;/a&gt; and &lt;a href=&quot;https://github.com/darktable-org/darktable&quot;&gt;Darktable&lt;/a&gt; are for RAW photo processing. I’ve used both and they do work well enough.&lt;/p&gt;
&lt;h3 id=&quot;web-based-apps&quot;&gt;Web Based Apps&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.photopea.com/&quot;&gt;Photopea&lt;/a&gt; is probably the best web-based software for working with .psd or .ai files.&lt;/p&gt;
&lt;p&gt;Maybe, I just go back to &lt;a href=&quot;https://archive.org/details/X04-91056&quot;&gt;Microsoft Publisher 2000&lt;/a&gt; or &lt;a href=&quot;https://archive.org/details/compaq-ij-700-inkjet-driver-print-artist-3-1998&quot;&gt;Sierra Home Print Artist Classic 3.0&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;em&gt;Notice:&lt;/em&gt; Any similarities to persons living and/or dead is definitely intentional. The above comic panel is fan art. It is considered fair dealing for the purpose of parody under the Canadian Copyright Act (&lt;em&gt;R.S.C., 1985, c. C-42&lt;/em&gt;).&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Maintaining a Btrfs Filesystem</title>
    <link href="https://theonlyblogever.com/blog/2026/btrfscommands.html" />
    <updated>2026-05-28T22:25:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/btrfscommands.html</id>
    <content type="html">&lt;p&gt;On my Framework laptop, I use the &lt;a href=&quot;https://btrfs.readthedocs.io/en/latest/Introduction.html&quot;&gt;btrfs&lt;/a&gt;, pronounced butter-FS, filesystem. On &lt;a href=&quot;https://fedoramagazine.org/btrfs-snapshots-backup-incremental/&quot;&gt;Fedora&lt;/a&gt;, It has been offered as the default filesystem since Fedora 33. It supports quick snapshotting for the file system. For instance, you can get a file back that you had previously changed or deleted, if you kept an earlier btrfs snapshot.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;This is a reference for my workflow. I&#39;ll need this in a few months when I forget these commands. It might be missing certain details. If you find it useful, or have a different solution, &lt;a href=&quot;https://theonlyblogever.com/contact&quot;&gt;let me know&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;Once we have our system installed and running, we can see information with the following commands in the terminal (run as &lt;code&gt;sudo&lt;/code&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;btrfs filesystem show /
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;btrfs device usage /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The next command gives us more detailed information about the drive. In my case, my btrfs drive is my 2 TB nvme ssd. Both commands do the exact same thing, the first command is a truncated version of the second.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo btrfs fi us -T /
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo btrfs filesystem usage -T /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To make a snapshot, I used the &lt;a href=&quot;https://fedoramagazine.org/btrfs-snapshots-backup-incremental/&quot;&gt;following commands&lt;/a&gt;. They are aliases as &lt;code&gt;btrhomesnap&lt;/code&gt; and &lt;code&gt;btrrootsnap&lt;/code&gt; to make creation of snapshots easier.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo btrfs subvolume snapshot -r /home /.snapshots/home-$(date +%Y%m%d)&#39;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo btrfs subvolume snapshot -r / /.snapshots/root-$(date +%Y%m%d)&#39;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once we have a collection of snapshots we need to maintain them. If we don&#39;t remove the older snapshots, we can fill our system drive with redundant copies (and metadata) that is unnecessary. This is dependant on how often you use your computer. If you make lots of file changes often, you&#39;ll have more space taken up by snapshots. The snapshot contains a &lt;em&gt;version&lt;/em&gt; of the files you had on disk at the time of creation. As the running system&#39;s data diverges from the snapshot, it &lt;em&gt;stretches the size&lt;/em&gt; of the snapshot to keep the snapshotted data valid.&lt;/p&gt;
&lt;p&gt;To maintain, we delete subvolume snapshots. In my usage, I have root &lt;code&gt;/&lt;/code&gt; snapshots and &lt;code&gt;/home&lt;/code&gt; snapshots. First we navigate into the &lt;code&gt;.snapshots&lt;/code&gt; directory and then we list the folders inside.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /.snapshots/ &amp;amp;&amp;amp; ls -a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It returns a list of folders. I only have two previous snapshots.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.  ..  home-20260415  root-20260415
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I can choose one or both of those folders to remove. To delete older snapshot subvolumes and free-up drive space.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo btrfs subvolume delete .snapshots/home-[date of snapshot]
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo btrfs subvolume delete .snapshots/root-[date of snapshot]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The other useful maintenance is a &lt;code&gt;btrfs balance&lt;/code&gt;. It keeps the data blocks organized, similar to disk de-fragmenting in the spinning hard drive era. This &lt;a href=&quot;https://wiki.tnonline.net/w/Btrfs/Balance&quot;&gt;guide&lt;/a&gt; explains more &lt;a href=&quot;https://wiki.tnonline.net/w/Category:Btrfs&quot;&gt;in-depth&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo btrfs balance start -dusage=5 /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When we do a balancing we set a filter like, &lt;code&gt;-dusage=5 /&lt;/code&gt; to allow the balancing to happen faster and more efficiently.&lt;/p&gt;
&lt;p&gt;I do these filesystem checks about once every three months. They help keep my system usable and space available.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Designing My Own Keyboard Layout: Le clavier Franco-ontarien (FR-ON)</title>
    <link href="https://theonlyblogever.com/blog/2026/clavierfron.html" />
    <updated>2026-05-24T22:25:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/clavierfron.html</id>
    <content type="html">&lt;p&gt;I&#39;m not much of a keyboard aficionado. Last year, I tried buying a regular height mechanical keyboard and sold it instantly. I like low-profile mechanical keyboards with red switches (like my main logitech). I can type much faster on a low-profile keyboard than on a standard height chonker.&lt;/p&gt;
&lt;p&gt;As a bilingual writer, I&#39;m often switching between &lt;a href=&quot;https://alterscapes.com/en/blog/selecting-a-keyboard-layout-as-a-bilingual-canadian&quot;&gt;keyboard layouts&lt;/a&gt; in software. When writing in English, I use the standard &lt;code&gt;English (US)&lt;/code&gt; or &lt;code&gt;EN-US&lt;/code&gt; layout. When writing in French, I use &lt;code&gt;French (Canada)&lt;/code&gt; or &lt;code&gt;FR-CA&lt;/code&gt;. There is no official &lt;a href=&quot;https://www.minus40.info/ice/canadiankeyboard.html&quot;&gt;Canadian English&lt;/a&gt; standard keyboard layout (we often default to &lt;code&gt;EN-US&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Switching between the two often leads to needing a special character that might be easier to find on one layout or another. In that case, I&#39;ll switch between layouts and click &lt;a href=&quot;https://en.wikipedia.org/wiki/AltGr_key&quot;&gt;modifier keys&lt;/a&gt; until my muscle memory finds the right combination for the symbol I need.&lt;/p&gt;
&lt;p&gt;When I was a young student, we had &lt;a href=&quot;https://www.mcgill.ca/amlf/sites/amlf//files/keyboardlayout.pdf&quot;&gt;posters&lt;/a&gt; &lt;a href=&quot;https://www.uqtr.ca/biblio/pdf/aide/ClavierQwerty.pdf&quot;&gt;showing us&lt;/a&gt; the right &lt;a href=&quot;https://www.roblocher.com/technotes/specialchars.html&quot;&gt;key combinations&lt;/a&gt; for accentuated characters or symbols in our typing or computer classes. Usually, it would lead to &lt;a href=&quot;https://old.reddit.com/r/learnfrench/comments/r455rn/typing_guillemets_on_the_french_canadian_keyboard/&quot;&gt;frustration&lt;/a&gt; and lines of oddly accented letters as you peck out the right combo.&lt;/p&gt;
&lt;p&gt;Later, I used &lt;a href=&quot;https://github.com/ergosteur/cf-keylayout&quot;&gt;canadien français&lt;/a&gt; &lt;a href=&quot;https://matthieu.yiptong.ca/2009/09/09/canadian-french-keyboard-layout-for-mac-os-x/&quot;&gt;for OS X&lt;/a&gt;, While the originator of this layout is unknown. I remember this layout being the closest layout to the keyboards we had at my high school. The existing layouts on OS X, in the mid 2000s--CMS and French, just weren&#39;t familiar to me.&lt;/p&gt;
&lt;p&gt;Physically, the keys are &lt;a href=&quot;https://www.logitech.com/en-us/discover/a/ansi-vs-iso-keyboards&quot;&gt;mostly&lt;/a&gt; in the same spaces. French Canadian layouts often have a shortened Enter key and a shortened left Shift key to allow for an extra accent character key and a quotation mark key. The keyboards with those extra keys have an &lt;a href=&quot;https://en.wikipedia.org/wiki/ISO/IEC_9995&quot;&gt;ISO layout&lt;/a&gt;. While, US keyboards have &lt;a href=&quot;https://en.wikipedia.org/wiki/Keyboard_layout&quot;&gt;ANSI layouts&lt;/a&gt;. ISO and ANSI are the two main widely available standards.&lt;/p&gt;
&lt;p&gt;Some French Canadian keyboards use the ANSI layout common for the English (US) layout and omit a key (or two). Dell does this on their business lines, others use the ISO layout. The ISO layout has those horizontally smaller enter and left shift key to allow for a few extra keys.&lt;/p&gt;
&lt;h2 id=&quot;who-doesnt-love-a-good-standards-document&quot;&gt;Who doesn&#39;t love a good standards document?&lt;/h2&gt;
&lt;p&gt;There are two official bilingual Canadian layouts. The most common modern layout is &lt;a href=&quot;https://kbdlayout.info/kbdca&quot;&gt;French (Canada)&lt;/a&gt; or &lt;a href=&quot;https://theonlyblogever.com/blog/2026/en.wikipedia.org/wiki/List_of_QWERTY_keyboard_language_variants&quot;&gt;CFR&lt;/a&gt;. The second is &lt;a href=&quot;https://kbdlayout.info/kbdcan&quot;&gt;Canadian Multilingual Standard&lt;/a&gt; or CMS. It was based on an earlier layout, &lt;a href=&quot;https://en.wikipedia.org/wiki/CSA_keyboard&quot;&gt;CSA keyboard&lt;/a&gt; called &lt;code&gt;CAN/CSA Z243.200-92&lt;/code&gt;. It includes a lot of symbols and ligatures for languages other than English or French. It is/was apparently used by federal government agencies.&lt;/p&gt;
&lt;p&gt;Additionally, there is a &lt;a href=&quot;https://www.tresor.gouv.qc.ca/fileadmin/PDF/ressources_informationnelles/standard_clavier_quebecois/sgqri001.pdf&quot;&gt;Quebec standard&lt;/a&gt;, first published in 2006, named, &lt;code&gt;SGQRI-001&lt;/code&gt; that adds &lt;a href=&quot;https://www.tresor.gouv.qc.ca/fileadmin/PDF/ressources_informationnelles/clavier_quebecois/Clavier_quebecois.html&quot;&gt;certain characters&lt;/a&gt;. This followed a previous layout, today referred to as &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_QWERTY_keyboard_language_variants&quot;&gt;Canadian French (Legacy)&lt;/a&gt; or Quebec CSA.&lt;/p&gt;
&lt;h2 id=&quot;keyboard-layouts&quot;&gt;Keyboard Layouts&lt;/h2&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;em&gt;Notes:&lt;/em&gt; These layouts are based on the Framework laptop &lt;a href=&quot;https://static.frame.work/l4vg1glqxebowtk667knjozuys28&quot;&gt;ANSI&lt;/a&gt; and &lt;a href=&quot;https://static.frame.work/4sa0xebtgva77ppyyu6p88vhij97&quot;&gt;ISO&lt;/a&gt; layouts, because they have high-quality images on their site and because it’s what I use most often.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1f8K4PcGHe-1200.avif 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1f8K4PcGHe-1200.webp 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/1f8K4PcGHe-1200.png&quot; alt=&quot;Framework 13 laptop ANSI English-US Keyboard Layout&quot; width=&quot;1200&quot; height=&quot;518&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Framework 13 laptop ANSI English-US Keyboard Layout&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/xAlg0oH4qI-1200.avif 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/xAlg0oH4qI-1200.webp 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/xAlg0oH4qI-1200.png&quot; alt=&quot;Framework 13 laptop ANSI English-International Keyboard Layout&quot; width=&quot;1200&quot; height=&quot;518&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Framework 13 laptop ANSI English-International Keyboard Layout&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Learning that international English keyboards have an &lt;code&gt;AltGr&lt;/code&gt; key, with an extra layer of common symbols and punctuation available, makes the standard &lt;code&gt;EN-US&lt;/code&gt; key set feel hostile to multilingual users.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/t8g7l9ee5a-1200.avif 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/t8g7l9ee5a-1200.webp 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/t8g7l9ee5a-1200.png&quot; alt=&quot;Framework 13 laptop ISO FR-CA Keyboard Layout&quot; width=&quot;1200&quot; height=&quot;518&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Framework 13 laptop ISO French Canada (FR-CA) Keyboard Layout&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In the surrounding layouts, any green coloured key denotes a change in function (ex., symbol) of the key. Any purple coloured key does the same function as &lt;code&gt;EN-US&lt;/code&gt; or &lt;code&gt;EN-INT&lt;/code&gt;. And, any brown key has the same main function, but a different alternate (&lt;code&gt;AltGr&lt;/code&gt;) function.&lt;/p&gt;
&lt;p&gt;On all keyboard layouts, I had to &lt;a href=&quot;https://www.ergopedia.ca/ergonomic_concepts/List_of_Characters_French_Canadian_Keyboard.html&quot;&gt;lookup the usages&lt;/a&gt; of &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_typographical_symbols_and_punctuation_marks&quot;&gt;certain symbols&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&quot;introducing-the-franco-ontarien-fr-on-layout&quot;&gt;Introducing the Franco-ontarien (FR-ON) layout&lt;/h1&gt;
&lt;p&gt;This is my prototype layout. I&#39;m calling it &lt;em&gt;clavier Franco-ontarien keyboard&lt;/em&gt; or &lt;code&gt;FR-ON&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ve removed some of the rarely used symbols (ex., the square lozenge &lt;code&gt;⌑&lt;/code&gt;, the caret (or circumflex) &lt;code&gt;^&lt;/code&gt;, the plus-minus sign &lt;code&gt;±&lt;/code&gt;, and the British Pound sign &lt;code&gt;£&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/7MXcqHB0kK-2400.avif 2400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/7MXcqHB0kK-2400.webp 2400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/7MXcqHB0kK-2400.png&quot; alt=&quot;Framework 13 laptop ISO FR-ON Keyboard Layout&quot; width=&quot;2400&quot; height=&quot;1036&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Framework 13 laptop ISO Franco-ontarien (FR-ON) Keyboard Layout&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The orange-coloured keys in the layout have symbols which have been relocated. The &lt;code&gt;F9&lt;/code&gt; function key is a clipboard icon (instead of display switcher). The above colour code still applies.&lt;/p&gt;
&lt;p&gt;Reflecting, the layout is more of an &lt;code&gt;EN-FR-CA Multilingual inclusive layout&lt;/code&gt;. But, I’m keeping &lt;code&gt;FR-ON&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;more-keyboard-notes&quot;&gt;More Keyboard Notes&lt;/h2&gt;
&lt;p&gt;I am trying to create a layout that won’t force me to switch layouts. This would allow for a smoother typing experience with less friction.&lt;/p&gt;
&lt;p&gt;Of course, this is a proof of concept only. Having an actual keyboard with this layout would mean creating a map in software and making the keys mirror this physical design. Doing &lt;a href=&quot;https://github-wiki-see.page/m/junaruga/framework-laptop-config/wiki/Customizing-keyboard-layout&quot;&gt;this&lt;/a&gt; would be very cool indeed.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Distrust Yourself: Content vs. Design</title>
    <link href="https://theonlyblogever.com/blog/2026/distrust.html" />
    <updated>2026-05-18T22:25:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/distrust.html</id>
    <content type="html">&lt;p&gt;Once again, a reminder, to myself, that this is a personal blog. This weekend, was our first weekend above 25 °C in southwestern (a marketing department term) Ontario. It was also a holiday long-weekend, meaning that my family had more time to spend together and to get our household organized as we like.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KgmMlPekvh-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KgmMlPekvh-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/KgmMlPekvh-1400.jpeg&quot; alt=&quot;An ethernet network jack&quot; width=&quot;1400&quot; height=&quot;1090&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;A pair of ethernet network jacks I installed.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I had a few hours to spare. As of late, I focused on this site, tweaking little things along the way. As I&#39;ve alluded to, in recent posts, I&#39;ve been using ai chatbot&#39;s to do some prototyping. Often resulting in a complete waste of time.&lt;/p&gt;
&lt;p&gt;The chatbot will spit out circular logic with no criticism, analysis or organic discussion. I&#39;ll evidently end up giving up and removing all recommended code changes. It&#39;s wasted time. Of course, the goal of the chatbot is to keep you chatting for as long as possible. They want a subscription out of you. They want you using the service (or at least paying for it). Remember, those companies producing ai need users in the first-world to continue existing. Or, they at least need the government and corporate contracts.&lt;/p&gt;
&lt;p&gt;This morning, I told myself, &amp;quot;no claude or chatgpt.&amp;quot; I was contemplating a redesign (again) and feeling stuck in this decision paralysis. &amp;quot;Oh, my blog should be more brutalist and decisive in its design, like &lt;a href=&quot;https://kevquirk.com&quot;&gt;Kev Quirk&lt;/a&gt;... No, I need to be whimsical and colourful like &lt;a href=&quot;https://frills.dev&quot;&gt;frills&lt;/a&gt;... Wait, I should be aggregating data. The blog should be my personal source of truth like &lt;a href=&quot;https://coryd.dev&quot;&gt;Cory Dransfeldt&lt;/a&gt;... My website should be deeply reflective of my personal beliefs like &lt;a href=&quot;https://brennan.day&quot;&gt;Brennan&lt;/a&gt;... Also, I should have more creativity injected into the site like &lt;a href=&quot;https://daverupert.com/&quot;&gt;Dave Rupert&lt;/a&gt;.&amp;quot; I&#39;ve always felt it important to cite your sources and thank those who provide inspiration.&lt;/p&gt;
&lt;p&gt;Now, I could just dump these ideas into a chat dialogue box and have it create a mock-up. But, there would be no originality and I wouldn&#39;t learn anything. I need to use my brain to practice the craft of web design. I desperately want to learn. This means I need to go back to web design books and search engines that don&#39;t have an ai assist. As I did before January 2026. In a few months, I&#39;ve become dependant. I don&#39;t search anymore... I just ask the chatbot.&lt;/p&gt;
&lt;p&gt;Then again, I think, &amp;quot;I should be focused on content not design... I should be more prolific and write everyday like &lt;a href=&quot;https://pluralistic.com/&quot;&gt;Cory Doctorow&lt;/a&gt;... Content should reign supreme, design is secondary... I really need to do more in-depth research like &lt;a href=&quot;https://fabiensanglard.net/&quot;&gt;Fabien Sanglard&lt;/a&gt;.&amp;quot;&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;This post was partially inspired by Dave Rupert&#39;s post, &lt;a href=&quot;https://daverupert.com/2026/05/small-language-models-in-the-browser/&quot;&gt;The duality of language models in the browser&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then, I read Brennan&#39;s post, &lt;a href=&quot;https://brennan.day/r-slopcorecirclejerk-and-the-men-who-are-pro-ai/&quot;&gt;/r/SlopcoreCirclejerk and the Men who are pro-AI&lt;/a&gt;. It&#39;s on the same wavelength as this post.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;I wonder if I can escape the ai/chatbot takeover. In my working life, we now have employer authorized Gemini and Copilot as &lt;em&gt;approved ai tools&lt;/em&gt; (on local-ish instances). The technical details of their implementations are sparse. There are claims of the user inputted chat data &amp;quot;... not being used to train ai models,&amp;quot; but the metadata and the logs still flow freely.&lt;/p&gt;
&lt;p&gt;In a field where originality, empathy, mastery and learning are at the core of the value system. It fosters straight-up laziness. When do we, as the human behind the prompt box, stop taking accountability all together? &amp;quot;I didn&#39;t write it, the ai did!&amp;quot; One more item on the checklist, &amp;quot;Did you run it through ai first?&amp;quot; It&#39;s disgusting that we&#39;re deciding to blindly trust an ai chatbot over human skill and fallibility.&lt;/p&gt;
&lt;p&gt;The irony is that when I&#39;m engaged with the content I do not care about the design. If I&#39;m using a feed reader, I&#39;m choosing to disregard implemented design all together.&lt;/p&gt;
&lt;p&gt;The lesson, in all this, is that I really enjoy reading others blogs. I also enjoy blogging myself. I&#39;ll keep writing, editing my graphics, adding and removing features, and iterating to my heart&#39;s content. And, if I ripoff a design element, please consider it a compliment.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>About Password Management</title>
    <link href="https://theonlyblogever.com/blog/2026/passwordmgnt.html" />
    <updated>2026-05-17T22:25:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/passwordmgnt.html</id>
    <content type="html">&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;This was originally a comment to Kev Quirk’s post, &lt;a href=&quot;https://kevquirk.com/is-bitwarden-preparing-for-a-sale&quot;&gt;Is Bitwarden preparing for a sale?&lt;/a&gt; posted yesterday. I’ve expanded on my thoughts here.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nTMTL_VNU6-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nTMTL_VNU6-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/nTMTL_VNU6-1400.jpeg&quot; alt=&quot;Old door lock at youth centre&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;A door keeping us secure.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&#39;ve side-stepped and ignored the web-based password manager revolution for years. In 2016, I spent a weekend exporting all my passwords and autofill information from multiple Google account profiles (using Google Takeout), from my local firefox installation and from Apple&#39;s Keychain (in &lt;code&gt;.csv&lt;/code&gt; files).&lt;/p&gt;
&lt;p&gt;Before combining all of these data sources into one, I had very poor password hygiene. I would reuse passwords. I would choose simple (dictionary word) passwords. I would reset passwords constantly when I wanted access on different devices. And, I had islands of groups of passwords in different places.&lt;/p&gt;
&lt;p&gt;Back in 2015, this was a password hell of my own making. At work, I had a Google Account profile full of personal and professional credentials mixed. At home, I had some credentials in Apple Keychain in OS X on my MacBook and others on my iPhone 5s. I don’t remember if there was a mechanism I used to sync the two at the time. Was it iTunes syncing or iCloud or MobileMe? iOS didn&#39;t support storing files and folders outside of specific app storage back then.&lt;/p&gt;
&lt;p&gt;Aggregating all of those credentials, spread across my digital world, and bringing them into &lt;a href=&quot;https://keepassxc.org/&quot;&gt;KeePassXC&lt;/a&gt; on OSX was liberating. It had support for modern browsers and could help autofill password fields. It would be my source of truth and I could finally use complex passwords. Remember, in 2015, two-factor, time-of-use tokens and passkeys were still in the realm of government contracting and spy movies. Being able to just autofill login fields felt magical.&lt;/p&gt;
&lt;p&gt;Once I figured out how to install the browser extensions, it was working. Except, that I only had access to my keypass database on my personal computer. I’d need a password available elsewhere. So, I would save it in plaintext in the Notes app on my phone. Later, I would diligently copy it into my fancy new password database. Of course, this solution wasn’t very convenient or secure.&lt;/p&gt;
&lt;p&gt;Eventually, I found the iOS app KeePassium and started using Syncthing to keep my password databases on all my daily-use machines. I&#39;ve been tempted, over the years, to use a web-based solution.&lt;/p&gt;
&lt;h2 id=&quot;a-classic-pros-and-cons-list&quot;&gt;A Classic Pros &amp;amp; Cons List&lt;/h2&gt;
&lt;p&gt;Check this list to see if KeepassXC could be a solution to your password woes.&lt;/p&gt;
&lt;p&gt;Upsides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Local-only password database,&lt;/li&gt;
&lt;li&gt;Apps for all devices and systems,&lt;/li&gt;
&lt;li&gt;Supports 2FA tokens and passkeys,&lt;/li&gt;
&lt;li&gt;Protected by a password (and a key-file),&lt;/li&gt;
&lt;li&gt;Encrypted database with a master password,&lt;/li&gt;
&lt;li&gt;Built in password generator,&lt;/li&gt;
&lt;li&gt;Built in HIBP (Have I Been Pwned) verification,&lt;/li&gt;
&lt;li&gt;Open source with good &lt;a href=&quot;https://keepassxc.org/docs/KeePassXC_UserGuide&quot;&gt;documentation&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;No costs associated.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Downsides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can&#39;t easily share credentials (&lt;a href=&quot;https://keepassxc.org/docs/KeePassXC_UserGuide#_enable_sharing&quot;&gt;you can&lt;/a&gt;, it&#39;s just technical),&lt;/li&gt;
&lt;li&gt;Not accessible through the Internet,&lt;/li&gt;
&lt;li&gt;Doesn&#39;t integrate easily on host system (ex., &lt;a href=&quot;https://isamert.net/2018/05/04/automatize-your-logins-with-gnome-keyring-and-optionally-with-keepassxc-.html&quot;&gt;gnome integration&lt;/a&gt; on Linux),&lt;/li&gt;
&lt;li&gt;Syncing requires a third-party service (ex., Syncthing or Dropbox).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was a fun walk down a portion of my personal computing history. Thank you to &lt;a href=&quot;https://kevquirk.com/about&quot;&gt;Kev Quirk&lt;/a&gt; for inspiring my reminiscing.&lt;/p&gt;
&lt;h2 id=&quot;secret-service-integration&quot;&gt;Secret Service Integration&lt;/h2&gt;
&lt;p&gt;Having been a Linux user for years, I&#39;ve seen this &lt;a href=&quot;https://keepassxc.org/docs/KeePassXC_UserGuide#_secret_service_integration&quot;&gt;secret service&lt;/a&gt; be mentioned, in the context of password managers. I&#39;ve always pictured men in dark suits shuttling dignitaries into unmarked dark vans--for some reason.&lt;/p&gt;
&lt;p&gt;Reading through the documentation tonight, I notice that I do have this option in &lt;em&gt;KeePassXC &amp;gt;&amp;gt; Tools &amp;gt; Settings &amp;gt; Secret Service&lt;/em&gt;. It tells me that I have &lt;em&gt;gnome-keyring-daemon&lt;/em&gt; that needs to be stopped before enabling the KeePassXC feature. Basically, we want to &lt;a href=&quot;https://discussion.fedoraproject.org/t/replacing-gnome-keyring-with-keepassxc/104539&quot;&gt;replace&lt;/a&gt; the default gnome app, &lt;a href=&quot;https://help.gnome.org/seahorse/&quot;&gt;Passwords and Keys&lt;/a&gt;, with KeePassXC.&lt;/p&gt;
&lt;p&gt;Following the docs, I ran the commands listed in the documentation. After logging-out, I could check the option to enable the integration. Then, I &lt;em&gt;exposed the database&lt;/em&gt; to the system. Now, programs that use passwords and credentials can request and save new entries to my keepass database.&lt;/p&gt;
&lt;p&gt;Immediately, my email client kept asking for my password anytime I wanted to send an email message even after approving it four times. This is not broken. It is actually the default behaviour. We needed to uncheck, &amp;quot;Confirm when passwords are retrieved by clients&amp;quot; in order for KeePassXC to allow programs to remember previously accessed passwords. I also switched my installation of &lt;a href=&quot;https://help.gnome.org/evolution/&quot;&gt;Evolution&lt;/a&gt; from &lt;code&gt;flatpak&lt;/code&gt; to &lt;code&gt;rpm&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ll report back.&lt;/p&gt;
&lt;h3 id=&quot;usage-update&quot;&gt;Usage Update&lt;/h3&gt;
&lt;p&gt;I did use KeePassXC as my default password manager for about a week. I much prefer opening KeePassXC myself rather than being forced to open it whenever a local app needs a credential. I&#39;ve switched back the the gnome default Passwords &amp;amp; Keys for those programs running locally like Evolution and Ungoogled Chronium.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A Dying Sun: Getting to the Gas Station</title>
    <link href="https://theonlyblogever.com/blog/2026/dyingsun.html" />
    <updated>2026-05-15T23:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/dyingsun.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/8vRqUUhUS8-1200.avif 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/8vRqUUhUS8-1200.webp 1200w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/8vRqUUhUS8-1200.jpeg&quot; alt=&quot;Google Streetview of a gas station with the AOL mail logo superimposed&quot; width=&quot;1200&quot; height=&quot;675&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;source: Google Streetview of a gas station with the AOL mail logo superimposed, edited by author.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;act-1-life&quot;&gt;Act 1: Life&lt;/h2&gt;
&lt;p&gt;Last night, I started deleting YouTube channel subscriptions en masse from my profile. It has became less of a curated list and more a mass of pulverized chicken protein slurped out onto a conveyor belt for reshaping through an industrial extruder. I&#39;m not sure if it&#39;s a change in the algorithm or a rise in low-quality content, but my feed is getting less watchable by the day.&lt;/p&gt;
&lt;p&gt;There are some narrative threads that permeate the monotony of regular life. Has my YouTube feed actually changed? Or, am I just detached and disinterested?&lt;/p&gt;
&lt;h2 id=&quot;act-2-death&quot;&gt;Act 2: Death&lt;/h2&gt;
&lt;p&gt;With the current state of storage pricing, I’m worried about a drive failing in a laptop or desktop and about not being able to afford a replacement. So, I keep thinking that I&#39;d better prune my personal data collections. Have a better organized system, monitoring, alerting, reporting and maybe some fault tolerance or a file recuperation plan.  Yes, it’s important to have copies of your data. I have many, but I don&#39;t regularly test them. I should.&lt;/p&gt;
&lt;h2 id=&quot;act-3-contact&quot;&gt;Act 3: Contact&lt;/h2&gt;
&lt;p&gt;I&#39;ve added a &lt;a href=&quot;https://theonlyblogever.com/contact&quot;&gt;/contact&lt;/a&gt; page with an email address. If you&#39;ve found the blog and want to share &lt;a href=&quot;https://kevquirk.com/hey-you-start-communicating&quot;&gt;your thoughts&lt;/a&gt; I&#39;ll try and respond in a timely fashion.&lt;/p&gt;
&lt;p&gt;As listed on my &lt;a href=&quot;https://theonlyblogever.com/disclaimers&quot;&gt;/disclaimers&lt;/a&gt; page, I don&#39;t have any tracking on the site (that is visible to me). According to Porkbun&#39;s &lt;a href=&quot;https://porkbun.com/legal/agreement/privacy_policy&quot;&gt;privacy policy&lt;/a&gt; (web host) they do log and track using a variety of methods. They certainly do keep customer information. Again, as the author and publisher, I do not have any logging or tracking. If, in the future, I decide to add that ability I will update all relevant pages.&lt;/p&gt;
&lt;p&gt;I&#39;ve followed &lt;a href=&quot;https://spencermortensen.com/articles/email-obfuscation/#text-display&quot;&gt;Spencer Mortensen&#39;s post about obfuscation&lt;/a&gt; to add an email address to the site. The &lt;a href=&quot;https://news.ycombinator.com/item?id=47609694&quot;&gt;accompanying HN discussion&lt;/a&gt; is interesting.&lt;/p&gt;
&lt;p&gt;Because I have no statistics available for the site, I don’t know if anyone is seeing what I’m writing. If something you read here resonates with you, please send me an email message.&lt;/p&gt;
&lt;p&gt;&lt;svg style=&quot;width:1em;height:1em;vertical-align:-0.15em;fill:currentColor;&quot; id=&quot;envelope-solid&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;polygon points=&quot;21 4 21 5 20 5 20 6 19 6 19 7 18 7 18 8 17 8 17 9 16 9 16 10 15 10 15 11 14 11 14 12 13 12 13 13 11 13 11 12 10 12 10 11 9 11 9 10 8 10 8 9 7 9 7 8 6 8 6 7 5 7 5 6 4 6 4 5 3 5 3 4 21 4&quot;&gt;&lt;/polygon&gt;&lt;polygon points=&quot;23 5 23 19 22 19 22 20 2 20 2 19 1 19 1 5 3 5 3 6 4 6 4 7 5 7 5 8 6 8 6 9 7 9 7 10 8 10 8 11 9 11 9 12 10 12 10 13 11 13 11 14 13 14 13 13 14 13 14 12 15 12 15 11 16 11 16 10 17 10 17 9 18 9 18 8 19 8 19 7 20 7 20 6 21 6 21 5 23 5&quot;&gt;&lt;/polygon&gt;&lt;/svg&gt; Send an email: &lt;span class=&quot;bmail&quot;&gt;bre&lt;span&gt;ndan@&lt;/span&gt;theonlyblogever.&lt;span&gt;com&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Troubleshooting a Laptop Computer</title>
    <link href="https://theonlyblogever.com/blog/2026/imamac.html" />
    <updated>2026-05-11T23:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/imamac.html</id>
    <content type="html">&lt;p&gt;Last night, my father-in-law’s, &lt;a href=&quot;https://everymac.com/systems/apple/macbook_pro/specs/macbook-pro-core-i9-2.3-eight-core-16-2019-scissor-specs.html&quot;&gt;MacBook Pro (2019)&lt;/a&gt; appeared very much broken.&lt;/p&gt;
&lt;p&gt;It&#39;s a 2019 MacBook Pro 16&amp;quot;, identified as &lt;code&gt;MacbookPro16,1&lt;/code&gt;, model &lt;code&gt;A2141&lt;/code&gt; driven by a 2.4 GHz Intel i9, 32 GB of DDR4 RAM and 2 TB of Apple SSD on-board storage.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/8ZmDZh_AkQ-828.avif 828w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/8ZmDZh_AkQ-828.webp 828w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/8ZmDZh_AkQ-828.png&quot; alt=&quot;&quot; width=&quot;828&quot; height=&quot;661&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The iPhone camera artificially brightened the above picture considerably. In real-life, the display backlight was not visible at all. It was super dark. The stomach sinking feeling of dread at a computer that won&#39;t respond added with the stress of the cost for repairs followed.&lt;/p&gt;
&lt;h2 id=&quot;issues&quot;&gt;Issues&lt;/h2&gt;
&lt;p&gt;The laptop screen was very dark and was seemingly frozen at the login prompt.&lt;/p&gt;
&lt;p&gt;There was a slight sliver of light at the top of the display. The rest of the display was very dim. With the ceiling lights off, I could see a login screen with a user photo, name and a password entry box. The password box was filled.&lt;/p&gt;
&lt;p&gt;When moving the mouse it would be invisible on the screen. The small glitchy horizontal strand at the top would change colour with the mouse movement. When connecting an external display, it would stay black, but the mouse movement was visible on the external display.&lt;/p&gt;
&lt;p&gt;Something is wrong with the video drivers, the backlight controller, the &lt;a href=&quot;https://www.ifixit.com/News/16943/macbook-pro-flexgate-repair-program&quot;&gt;display flex cable&lt;/a&gt;, and/or the shared memory between the Intel GPU and the AMD GPU. Considering that the external display was connecting through the computer with the AMD Radeon Pro 5500M, I hypothesize that it was the Intel UHD Graphics 630 that was partly to blame.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Iio5DjCPfa-1532.avif 1532w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Iio5DjCPfa-1532.webp 1532w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Iio5DjCPfa-1532.png&quot; alt=&quot;&quot; width=&quot;1532&quot; height=&quot;901&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/rpMci6SxoH-738.avif 738w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/rpMci6SxoH-738.webp 738w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/rpMci6SxoH-738.png&quot; alt=&quot;&quot; width=&quot;738&quot; height=&quot;192&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Another hypothesis was that the battery was swelling (&lt;a href=&quot;https://old.reddit.com/r/spicypillows/&quot;&gt;#SpicyPillows&lt;/a&gt;). The build tolerances are so minuscule that even the slightest swelling of the battery can put pressure on soldered components on the mainboard, causing them to flex and have connection issues.&lt;/p&gt;
&lt;h2 id=&quot;troubleshooting&quot;&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;Opening and closing the lid of the device didn’t make any difference. It stayed dark with the un-backlit login screen.&lt;/p&gt;
&lt;p&gt;We force shutdown the MacBook by holding the power button until the fan was silent. When holding the power button, the fan would briefly give a whoosh as the system was fully powering down.&lt;/p&gt;
&lt;p&gt;I rebooted the MacBook, holding &lt;code&gt;Option + Command + P + R&lt;/code&gt; for &lt;a href=&quot;https://support.apple.com/en-mide/102603&quot;&gt;nvram and pram&lt;/a&gt; clearing. It eventually did reboot, but had the same issue—no change.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/5R2ABr21vL-912.avif 912w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/5R2ABr21vL-912.webp 912w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/5R2ABr21vL-912.png&quot; alt=&quot;&quot; width=&quot;912&quot; height=&quot;197&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Now, magically, opening the laptop up, we had a backlight. Except, there was banding on the top of the laptop, the screen was frozen and the laptop was not responding to input.&lt;/p&gt;
&lt;p&gt;We then re-booted into recovery mode, hitting the power button twice, and closing the laptop. Keeping the laptop closed, I opened the top-case enough to get my index finger wedged far enough to hold the power button. With an external keyboard, mouse and display attached the recovery mode came up on the screen.&lt;/p&gt;
&lt;p&gt;With an external display, the computer was able to function without freezing. We restarted the machine with the Apple menu (without opening the lid) and were able to login as usual and complete a &lt;a href=&quot;https://en.wikipedia.org/wiki/Time_Machine_(macOS)&quot;&gt;Time Machine&lt;/a&gt; backup.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/9KT1ZsSDkJ-890.avif 890w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/9KT1ZsSDkJ-890.webp 890w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/9KT1ZsSDkJ-890.png&quot; alt=&quot;&quot; width=&quot;890&quot; height=&quot;849&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;It was running very hot and processing it&#39;s Time Machine update very slowly. It took about 3 hours to process 4 GB of additional data from the previous backup a few days earlier.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Y6sUC4zb_X-1344.avif 1344w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Y6sUC4zb_X-1344.webp 1344w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Y6sUC4zb_X-1344.png&quot; alt=&quot;&quot; width=&quot;1344&quot; height=&quot;790&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;solutions&quot;&gt;Solutions&lt;/h2&gt;
&lt;p&gt;iFixit does have a &lt;a href=&quot;https://www.ifixit.com/Device/MacBook_Pro_16%22_2019&quot;&gt;guide&lt;/a&gt; to replace the &lt;a href=&quot;https://www.ifixit.com/Guide/MacBook+Pro+16-Inch+2019+Screen+Replacement/135189&quot;&gt;display&lt;/a&gt; including the &amp;quot;integrated ribbon cables&amp;quot;. Apparently, if the display flex (or ribbon cables) are stressed with regular use they can cause backlight and display issues. A similar spec&#39;d M5 MacBook Pro would cost over $4800 CAD today. With the &lt;em&gt;rampocalyse&lt;/em&gt; in full swing, it&#39;s just not tenable.&lt;/p&gt;
&lt;p&gt;With Apple&#39;s current offerings, and a trip to the Apple Genius Bar, where they saw the same issue. They were able to plug it into an external display and run some diagnostics. The store was unable to to analyze it any further. And so, another appointment was made with a $850 CAD estimate for a new mainboard.&lt;/p&gt;
&lt;p&gt;Because of Apple&#39;s &lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_T2&quot;&gt;T2 security chip&lt;/a&gt; a DIY repair could be impossible. iFixit gives the &lt;code&gt;A2141&lt;/code&gt; a 1/10 on their &lt;em&gt;repairability scale&lt;/em&gt; and replacement displays are $800 CAD.&lt;/p&gt;
&lt;h2 id=&quot;rescue&quot;&gt;Rescue&lt;/h2&gt;
&lt;p&gt;In the meantime, one stop-gap measure was to get a second external drive and use &lt;a href=&quot;https://shirt-pocket.com/SuperDuper/SuperDuperDescription.html&quot;&gt;SuperDuper!&lt;/a&gt; to make a &lt;a href=&quot;https://support.apple.com/en-us/111336&quot;&gt;bootable&lt;/a&gt; clone of the drive. With two external backups, we now have less risk of any data loss and we could use that to boot from another Mac.&lt;/p&gt;
&lt;p&gt;I haven’t run a Mac regularly since 2017 on &lt;a href=&quot;https://en.wikipedia.org/wiki/OS_X_El_Capitan&quot;&gt;OS X 10.11&lt;/a&gt;, when I went though a ThinkPad phase with an x201 and a x220. Because the laptop runs &lt;a href=&quot;https://en.wikipedia.org/wiki/MacOS_Sequoia&quot;&gt;macOS Sequoia&lt;/a&gt;, I had to format an external drive to &lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_File_System&quot;&gt;APFS&lt;/a&gt; using &lt;em&gt;Disk Utility &amp;gt;&amp;gt; [Select Disk] &amp;gt;&amp;gt; Format &amp;gt;&amp;gt; GUID Partition Table&lt;/em&gt; in order to get the APFS option in the drop-down. I was then able to select the newly formatted APFS HDD in SuperDuper!. It even accepted my license from 2017. That’s excellent software support.&lt;/p&gt;
&lt;h2 id=&quot;update&quot;&gt;Update&lt;/h2&gt;
&lt;p&gt;We had an older &lt;a href=&quot;https://everymac.com/systems/apple/macbook_pro/specs/macbook-pro-core-i7-2.6-15-iris-only-late-2013-retina-display-specs.html&quot;&gt;MacBook Pro 15&amp;quot; Retina 2013&lt;/a&gt;, &lt;code&gt;MacBookPro11,2 A1398&lt;/code&gt;, that we managed to upgrade to macOS Big Sur to run 3D printing software. It supports APFS, so we can access the backup drives as needed. I remember when the retina MacBook Pro&#39;s were introduced new MacBooks users said they were &lt;a href=&quot;https://twit.tv/shows/know-how/episodes/10&quot;&gt;unrepairable&lt;/a&gt;, with their &lt;a href=&quot;https://www.ifixit.com/products/macbook-pro-15-retina-late-2013-mid-2014-battery#compatibility&quot;&gt;glued batteries&lt;/a&gt; and &lt;a href=&quot;https://discussions.apple.com/thread/255544279?sortBy=rank&quot;&gt;soldered RAM&lt;/a&gt; were &lt;em&gt;locked-down&lt;/em&gt; and &lt;em&gt;planned obsolescenced&lt;/em&gt; compared to their unibody &lt;a href=&quot;https://en.wikipedia.org/wiki/MacBook_Pro_(Intel-based)&quot;&gt;predecessors&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For this MacBook Pro, a battery replacement was needed and the trackpad was hard to press down and register a click. A replacement battery from iFixit is under $200 Canadian (tools included).&lt;/p&gt;
&lt;p&gt;We&#39;re still waiting to see what the Genius Bar will have to say about fixing the 2019 model.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Linkdump 2: April &amp; May 2026</title>
    <link href="https://theonlyblogever.com/blog/2026/linkdump02.html" />
    <updated>2026-05-08T16:40:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/linkdump02.html</id>
    <content type="html">&lt;p&gt;Grounding Internet links in their time and their context. In large part, this is the reasoning behind these &lt;em&gt;linkdumps&lt;/em&gt;. See &lt;a href=&quot;https://theonlyblogever.com/blog/2026/linkdump1.html&quot;&gt;January here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FulQL6Dd8o-929.avif 929w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FulQL6Dd8o-929.webp 929w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/FulQL6Dd8o-929.png&quot; alt=&quot;&quot; width=&quot;929&quot; height=&quot;700&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Source: Internet - A first discovery book, 2000 (pub. Scholatic)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;posts&quot;&gt;Posts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=UGUOqOSu6nY&quot;&gt;Everything&#39;s Getting Worse by FUTO&lt;/a&gt; [video]&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.coryd.dev/posts/2026/building-the-future&quot;&gt;Building the future&lt;/a&gt; post by Cory Dransfeldt. A reflection on the current state of the tech industry.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://brennan.day/et-maintenant-quelque-chose-de-completement-different/&quot;&gt;Et maintenant, quelque chose de complètement différent&lt;/a&gt; blog post, in french, from Brennan Kenneth Brown. It inspired my &lt;a href=&quot;https://theonlyblogever.com/blog/2026/monchoix.html&quot;&gt;own post&lt;/a&gt; and let to a &lt;a href=&quot;https://theonlyblogever.com/blog/2026/blogue3.html&quot;&gt;second post&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;webapps&quot;&gt;Webapps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://channelsurfer.tv/&quot;&gt;Channel Surfer YouTube viewer&lt;/a&gt;. A novel and different way to watch YT.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;gadgets&quot;&gt;Gadgets&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://retrofighters.com/our-collection/defender-pro-wireless-gamepad/&quot;&gt;RetroHunter Defender Pro PS Controller&lt;/a&gt; A forthcoming controller for the PS1-2-3 supporting Bluetooth, 2.4GHz and a wired connection on consoles and PCs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;self-hosting-projects&quot;&gt;Self-Hosting Projects&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;As covered on &lt;a href=&quot;https://www.jupiterbroadcasting.com/show/linux-unplugged/660/&quot;&gt;#660 of Linux Unplugged&lt;/a&gt;: &lt;a href=&quot;https://github.com/chrisbenincasa/tunarr&quot;&gt;Tunarr&lt;/a&gt;. I was using &lt;a href=&quot;https://github.com/ErsatzTV/ErsatzTV/issues/2839&quot;&gt;ErsatzTV&lt;/a&gt; for connected to Jellyfin for some retro-TV style local streaming. Now, I&#39;ve &lt;a href=&quot;https://theonlyblogever.com/blog/2025/local-voyager-tv.html&quot;&gt;switched to Tunarr&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F&quot;&gt;Getting Started with Git&lt;/a&gt; guide.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trying to learn git and how it works. I know that some SSG users will use git to version control their sites and allow updates through git. As a non-developer, I plan to use a local repo first and then transition to a self-hosted option.&lt;/p&gt;
&lt;h1 id=&quot;updates&quot;&gt;Updates&lt;/h1&gt;
&lt;p&gt;I haven&#39;t had much reason to write lately, I have three or four posts ready to go that need some more information before they will be finished. I&#39;m waiting for my boxy pixel &lt;a href=&quot;https://www.boxypixel.com/products/mkii-ipod-base-kit-for-ipod-5-7-gen-mkii-min&quot;&gt;iPod mod kit&lt;/a&gt; to ship and waiting for the &lt;a href=&quot;https://frame.work/ca/en/products/framework-laptop-13-pro-chassis-kit-graphite?v=FRANKK00A1&quot;&gt;FW 13 Pro chassis&lt;/a&gt; pre-order to open.&lt;/p&gt;
&lt;p&gt;That&#39;s it for now.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Hey! C&#39;est moi, Brendan.</title>
    <link href="https://theonlyblogever.com/blog/2026/blogue3.html" />
    <updated>2026-05-02T09:10:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/blogue3.html</id>
    <content type="html">&lt;p&gt;En toute humilité, voyant l&#39;article de blogue de &lt;a href=&quot;https://brennan.day&quot;&gt;brennan.day&lt;/a&gt; intitulé « &lt;a href=&quot;https://brennan.day/brenjour-c-est-moi-sur-l-identite/&quot;&gt;Brenjour! C&#39;est moi! Sur L&#39;identité&lt;/a&gt;, » j&#39;ai dit, à haute voix, à mon épouse, &amp;quot;What? A blogger I admire quoted me on his blog?!&amp;quot; -- « Comment ça? Un auteur que j&#39;admire m&#39;a cité sur son blogue? » [traduction libre]. Je me permets de voler son titre.&lt;/p&gt;
&lt;p&gt;C&#39;est donc ma place de pouvoir réfléchir, de nouveau, par écrit. Bien que &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;theonlyblogever&lt;/a&gt; se lit comme une crise d&#39;angoisse constante envers l&#39;industrie de la technologie, c&#39;est aussi un blogue personnel et unique.&lt;/p&gt;
&lt;p&gt;Si, pour Brennan, sa deuxième langue « est un mur » pour moi, c&#39;est une boîte que nous avons longtemps remplie. Cette boîte en carton a ensuite été placée sur une étagère en métal dans un garage sombre et froid.&lt;/p&gt;
&lt;p&gt;Bien que je ressens une fierté, qui me rattache à mes ancêtres maternelles, je devrais toutefois réfléchir sur ses questions. Ex., Pourquoi ne me sens-je pas à l&#39;aise d&#39;écrire tout simplement? Pourquoi est-ce qu&#39;écrire en français doit être un évènement que j&#39;annonce à chaque étape?&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;Si vous ne vous êtes pas abonnées déjà à &lt;a href=&quot;https://brennan.day/&quot;&gt;brennan.day&lt;/a&gt; ajouter son &lt;a href=&quot;https://brennan.day/feed.xml&quot;&gt;fil RSS&lt;/a&gt; à votre logiciel de lecture RSS/ATOM.&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;historique-franco-locale&quot;&gt;Historique franco-locale&lt;/h2&gt;
&lt;p&gt;Vraie, ma langue est presque entièrement rattachée à ma profession. Au travail, je vis en français. Ma vie personnelle se passe en anglais. Je passe entre ses deux réalités avec aisance. Mais, de l&#39;autre côté, mon identité culturelle francophone est abaissée par ma culture dominante de souche anglo-canadienne.&lt;/p&gt;
&lt;p&gt;Les francophones étaient mises à part dans la société anglocentrique. L&#39;anglais avait sa place comme la langue de la société au sens large: des médias populaires; de l&#39;éducation postsecondaire; et, la langue des affaires. Impossible, dans le &lt;em&gt;sud du sud-ouest de l&#39;Ontario&lt;/em&gt;, de ne pas pouvoir parler en anglais. Donc, dans nos familles francophones (immigrants), l&#39;anglais &lt;a href=&quot;https://onfr.tfo.org/reglement-17-xvii-110-ans-apres/&quot;&gt;était forcé sur eux&lt;/a&gt; veut veut pas.&lt;/p&gt;
&lt;p&gt;Sans faire une &lt;a href=&quot;https://cliquezjustice.ca/sites/default/files/pdf/M3_Eleve_Reglement17epingles.pdf&quot;&gt;leçon d&#39;histoire&lt;/a&gt; du &lt;a href=&quot;https://cliquezjustice.ca/sites/default/files/pdf/M2_%C3%89l%C3%A8ve_Reglement17Epingles.pdf&quot;&gt;Règlement 17&lt;/a&gt; et de &lt;a href=&quot;https://echo.franco.ca/guerredesepingles/&quot;&gt;la guerre des épingles&lt;/a&gt;. L&#39;éducation &lt;a href=&quot;https://ontario400.ca/400jours/adhemar-victoire-papineau/&quot;&gt;en français&lt;/a&gt; s&#39;avère &lt;a href=&quot;https://www.axl.cefan.ulaval.ca/amnord/ontario_reglement17.htm&quot;&gt;problématique&lt;/a&gt; pour les francophones qui faisaient &lt;a href=&quot;https://edusourceontario.com/res/REDO-Videos-Lot05-01&quot;&gt;éduquer&lt;/a&gt; leurs enfants en cachette. Le français à donc prit ça &lt;a href=&quot;https://acfoweck.ca/francotour/how-to-attract-the-right-people-to-join-your-business/&quot;&gt;deuxième place&lt;/a&gt; sur l&#39;échelle d&#39;importance sociale, et ce &lt;a href=&quot;https://ontario400.ca/histoire-de-lontario-francais/&quot;&gt;pendant longtemps&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;fiction-speculative&quot;&gt;Fiction spéculative&lt;/h2&gt;
&lt;p&gt;Je m’efforce d’écrire donc dans ma langue. Nous retournerons à notre programmation normale.&lt;/p&gt;
&lt;p&gt;Le monde informatique est en feu. « L’IA » et &lt;a href=&quot;https://fr.wikipedia.org/wiki/Merdification&quot;&gt;l’emmerdification&lt;/a&gt; des plateformes numériques, des appareils et surtout des services web (ex., &lt;a href=&quot;https://mitchellh.com/writing/ghostty-leaving-github&quot;&gt;github&lt;/a&gt;, &lt;a href=&quot;https://xn--gckvb8fzb.com/i-do-not-recommend-bitwarden/&quot;&gt;bitwarden&lt;/a&gt;--&lt;em&gt;lien externe en anglais&lt;/em&gt;) donnent peu de confiance. &lt;span class=&quot;standout-box&quot;&gt;Nous devenons de consommateurs&lt;/span&gt;, simple et pur. Notre importance, pour ceux en coulisses de pouvoir, est de s’isoler, d’acheter, et de consommer. Jusqu’à ce que ça nous tue.&lt;/p&gt;
&lt;p&gt;Il nous faut une vraie &lt;span class=&quot;standout-box&quot;&gt;résistance&lt;/span&gt;. Nous savons tous que notre monde, nos sociétés et nos valeurs sont en érosion par les élites de la classe dominante. Ils ne considèrent pas que nous sommes humaines, nous sommes que des contenants biologiques prêts à exploiter. Notre silence devrait nous donné honte. Les générations futures souffriront et c’est nous qui porterons tout blâme. Et ce, quoique nous n’avions jamais porté le pouvoir d’effectuer les changements nécessaires.&lt;/p&gt;
&lt;p&gt;Nous sommes entrain de voir éroder notre futur. Notre utilisation des plateformes d&#39;applis, qui sont transmises à nos téléphones et à nos télés intelligentes, sont en train de créer des &lt;span class=&quot;standout-box&quot;&gt;espaces physiques dépourvues d&#39;humanités&lt;/span&gt;. Les restaurants ne sont plus des lieux de rencontre et de socialisation. Ils ne que sont que des entrepôts pour les applis de livraisons. Les écoles existent seulement pour &lt;a href=&quot;https://www.cbc.ca/news/education-teachers-ai-training-1.7597806&quot;&gt;habituer les enfants aux IA&lt;/a&gt; sur tablettes et Chromebook. Avec leurs plateformes de grandes entreprises afin qu’ils puissent &lt;span class=&quot;standout-box&quot;&gt;développer une dépendance&lt;/span&gt; durant leur stade de développement le plus marquant.&lt;/p&gt;
&lt;h3 id=&quot;que-faire&quot;&gt;Que faire?&lt;/h3&gt;
&lt;p&gt;L’aspect humain meurt et ceux qui dominent s’enrichissent et &lt;a href=&quot;https://thereader.mitpress.mit.edu/the-whistleblower-who-uncovered-the-nsas-big-brother-machine/&quot;&gt;nous contrôlent&lt;/a&gt;. Que faire? Comment se protéger de l&#39;assaut des plates-formes qui exigent notre temps et notre attention? Utiliser des plates-formes, des logiciels et des systèmes d&#39;exploitations ouvertes.&lt;/p&gt;
&lt;p&gt;En voici &lt;a href=&quot;https://github.com/thatshubham/no-ai&quot;&gt;quelques&lt;/a&gt; &lt;a href=&quot;https://codeberg.org/brib/slopfree-software-index&quot;&gt;exemples&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Systèmes d&#39;exploitations&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fedoraproject.org/workstation/download/&quot;&gt;Fedora 44 Workstation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://linuxmint.com/&quot;&gt;Linux Mint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Logiciels&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.waterfox.com/download/&quot;&gt;Waterfox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.strawberrymusicplayer.org/&quot;&gt;Strawberry Media Player&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://localsend.org/&quot;&gt;LocalSend&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Plateformes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://joinmastodon.org/&quot;&gt;Mastodon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://listenbrainz.org&quot;&gt;ListenBrainz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Auto-hébergement&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://immich.app/&quot;&gt;Immich&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.navidrome.org/&quot;&gt;Navidrome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jellyfin.org/&quot;&gt;Jellyfin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.audiobookshelf.org/&quot;&gt;Audiobookshelf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ce ne sont que des suggestions je trouve utiles. Loin d&#39;être exhaustive, cette liste n&#39;est qu&#39;un point de départ pour ceux qui s&#39;intéressent à leurs choix de logiciels et de plateformes comme utilisateur informatique.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>An Abundance of Screenshots Showing Idle Power Usage on Different Distributions</title>
    <link href="https://theonlyblogever.com/blog/2026/screenshts.html" />
    <updated>2026-05-01T19:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/screenshts.html</id>
    <content type="html">&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;More on my quest to reduce idle power usage and increase battery life on Linux.&lt;br&gt;
Read &lt;a href=&quot;https://theonlyblogever.com/blog/2026/workingontheframe.html&quot;&gt;Part 1&lt;/a&gt; and &lt;a href=&quot;https://theonlyblogever.com/blog/2026/stateofcpu.html&quot;&gt;Part 2&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;The title says it all. Following another &lt;a href=&quot;https://community.frame.work/t/introducing-framework-laptop-13-pro/81951/183&quot;&gt;comment&lt;/a&gt; on the Framework community forums, I wanted to get a solid baseline for the idle power usage on different linux distros. I downloaded a bunch of &lt;code&gt;.iso&lt;/code&gt; files and tested power statistics of their live environments using PowerTOP. Below are the results.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/tSBwhj_yQh-1045.avif 1045w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/tSBwhj_yQh-1045.webp 1045w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/tSBwhj_yQh-1045.png&quot; alt=&quot;comment from framework community forums&quot; width=&quot;1045&quot; height=&quot;225&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6JQgcPRkQi-1045.avif 1045w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6JQgcPRkQi-1045.webp 1045w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/6JQgcPRkQi-1045.png&quot; alt=&quot;comment from framework community forums&quot; width=&quot;1045&quot; height=&quot;250&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I tested a bunch of live Linux distributions and a live BSD. My un-scientific methodology: I turned off bluetooth radios, closed any applications, turned display refresh rate to 48.00 Hz and turned down screen brightness to under 10%.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/NYgde4Ew0I-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/NYgde4Ew0I-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/NYgde4Ew0I-2256.png&quot; alt=&quot;screenshot: Fedora Workstation 43 running powertop&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Fedora Workstation 43 under ~6W at idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/rkcOFQLF3K-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/rkcOFQLF3K-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/rkcOFQLF3K-2256.png&quot; alt=&quot;screenshot: Fedora Workstation 44 running powertop&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Fedora Workstation 44 at ~6W idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bZIuiBrsel-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bZIuiBrsel-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/bZIuiBrsel-2256.png&quot; alt=&quot;screenshot: NixOS 25.11 running powertop&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: NixOS 25.11 higher wattage because of disk usage&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/16ANswExQT-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/16ANswExQT-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/16ANswExQT-2256.png&quot; alt=&quot;screenshot: Ubuntu 26.04 LTS running powertop&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Ubuntu 26.04 LTS closer to ~7W idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/sQ4eSONe_8-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/sQ4eSONe_8-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/sQ4eSONe_8-2256.png&quot; alt=&quot;screenshot: Pop_OS! 24.04 LTS running powertop&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Pop_OS! 24.04 LTS under ~7W at idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/qqg7rCmd_U-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/qqg7rCmd_U-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/qqg7rCmd_U-2256.png&quot; alt=&quot;screenshot: Rocky Linux 10.1 Workstation running powertop&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Rocky Linux 10.1 Workstation ~6W at idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/SYzVQm8RcF-1805.avif 1805w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/SYzVQm8RcF-1805.webp 1805w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/SYzVQm8RcF-1805.png&quot; alt=&quot;screenshot: Debian Live 13.4.0 XFCE running powertop&quot; width=&quot;1805&quot; height=&quot;1203&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Debian Live 13.4.0 XFCE ~6W at idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/15mQw_8xiP-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/15mQw_8xiP-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/15mQw_8xiP-2256.png&quot; alt=&quot;screenshot: cachyos running powertop&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: CachyOS at ~8W (it went below 6W)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/4ufYEAAYcA-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/4ufYEAAYcA-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/4ufYEAAYcA-2256.png&quot; alt=&quot;&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Linux Mint XFCE&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TSBYSQ5t_u-1504.avif 1504w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TSBYSQ5t_u-1504.webp 1504w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/TSBYSQ5t_u-1504.png&quot; alt=&quot;screenshot: Manjaro XFCE running powertop&quot; width=&quot;1504&quot; height=&quot;1003&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Manjaro XFCE ~6W at idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/PbqbTTLoG9-1504.avif 1504w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/PbqbTTLoG9-1504.webp 1504w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/PbqbTTLoG9-1504.png&quot; alt=&quot;screenshot: Void Linux XFCE running powertop&quot; width=&quot;1504&quot; height=&quot;1003&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: Void Linux XFCE live at ~6W idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/jxhxmDwekm-2256.avif 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/jxhxmDwekm-2256.webp 2256w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/jxhxmDwekm-2256.png&quot; alt=&quot;Nomad BSB running acpiconf&quot; width=&quot;2256&quot; height=&quot;1504&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: NomadBSD 7388 mW or ~7W at idle&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;These tests all showed similar idle power draw, usually ~6W, with ~9W to ~14W with a browser and terminal open with a few tabs each. These readings are consistent with what I was achieving with my usual Fedora installation. This confirms that linux will, on average, pull ~6W at idle and ~9W to ~14W during light usage. I&#39;ve got a solid baseline to compare other mainboards and other OSes against Linux (and BSD).&lt;/p&gt;
&lt;p&gt;It was interesting to try all these different distros. I remember spending hours in the early 2000s trying different distributions. I would read about them on &lt;a href=&quot;https://distrowatch.com/&quot;&gt;distrowatch&lt;/a&gt; and would try and get them installed or running. It used to mean a lot of time configuring things and getting them to boot at all. Now, it&#39;s a matter of flashing the image and restarting the machine. On a Framework laptop we boot to the USB drive by pressing &lt;code&gt;F12&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;After all this focus on OS efficiency, I want to get back to some hardware modding.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Power Efficiency Spaghetti on Linux for Alder Lake</title>
    <link href="https://theonlyblogever.com/blog/2026/stateofcpu.html" />
    <updated>2026-04-28T23:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/stateofcpu.html</id>
    <content type="html">&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;This post was written in fits and starts. It&#39;s a spiritual successor to my previous post.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;Last night, while checking &lt;code&gt;PowerTOP&lt;/code&gt; (again). I was noticing my FW 13 (12th gen) reaching various C-States. &lt;a href=&quot;https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/001/package-c-states-and-display-resolutions/&quot;&gt;C-States&lt;/a&gt; or &lt;a href=&quot;https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/001/package-c-states/&quot;&gt;CPU Power States&lt;/a&gt; are power management levels that a computer processor can use to lower power consumption when the computer is idle.&lt;/p&gt;
&lt;p&gt;Generally, the &lt;a href=&quot;https://www.thomas-krenn.com/en/wiki/Processor_P-states_and_C-states&quot;&gt;higher the number&lt;/a&gt; the more power savings and the less energy (lower wattage) will be consumed by the computer. You&#39;ll get longer battery life with a deeper C-state.&lt;/p&gt;
&lt;p&gt;My Intel processor, the &lt;code&gt;i5 1240P&lt;/code&gt;, supports C0, C1, C2, C3, C6, C8 and C10 C-states.&lt;/p&gt;
&lt;h2 id=&quot;preamble&quot;&gt;Preamble&lt;/h2&gt;
&lt;p&gt;I always love a good preamble explainer. I want to see how I can reduce the power usage of my laptop to increase battery life as much as possible.&lt;/p&gt;
&lt;p&gt;Framework has &lt;a href=&quot;https://community.frame.work/t/tracking-linux-battery-life-tuning/6665/613&quot;&gt;forums&lt;/a&gt; with battery &lt;a href=&quot;https://community.frame.work/t/responded-reasons-for-better-battery-life-on-ubuntu-compared-to-fedora/44378&quot;&gt;tips&lt;/a&gt; and &lt;a href=&quot;https://community.frame.work/t/custom-fedora-oci-images-for-framework-laptops/34253&quot;&gt;discussion&lt;/a&gt; and even an &lt;a href=&quot;https://knowledgebase.frame.work/en_us/optimizing-fedora-battery-life-r1baXZh&quot;&gt;official article&lt;/a&gt; for optimizing on Fedora Linux.&lt;/p&gt;
&lt;p&gt;Laptop wisdom says to do the following to help energy efficiency, end unused processes and to stop apps from auto-launching themselves on start. Don&#39;t keep unused apps running in your system tray--looking at you Discord, those pesky Nvidia apps, and Microsoft Office Click-to-Run. They steal CPU cycles and hurt energy efficiency.&lt;/p&gt;
&lt;p&gt;Yes, I used to be one of those people who would religiously run &lt;a href=&quot;https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns&quot;&gt;autoruns&lt;/a&gt; and &lt;a href=&quot;https://github.com/Klocman/Bulk-Crap-Uninstaller&quot;&gt;bcuninstaller&lt;/a&gt; to remove the junk from Windows systems.&lt;/p&gt;
&lt;p&gt;On a laptop (or a phone), keep screen brightness low, run in energy saving or power saving modes, turn off Bluetooth (when not in use), keep your volume lowered, and close apps when you&#39;re finished with them. Check task manager or system monitor to see your running processes.&lt;/p&gt;
&lt;p&gt;Even with the new, god-tier efficient (TBD), &lt;a href=&quot;https://www.intel.com/content/www/us/en/products/sku/245720/intel-core-ultra-5-processor-325-12m-cache-up-to-4-50-ghz/specifications.html&quot;&gt;Intel® Core™ Ultra 5 Processor 325&lt;/a&gt; those power saving tips will still be valid. The goal here is to explore different options on Linux and get average power consumption down.&lt;/p&gt;
&lt;p&gt;Even a year ago, I was &lt;a href=&quot;https://theonlyblogever.com/blog/2026/blog/2026/workingontheframe.html&quot;&gt;dreaming&lt;/a&gt; about it.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/JJPp748DIH-1124.avif 1124w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/JJPp748DIH-1124.webp 1124w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/JJPp748DIH-1124.png&quot; alt=&quot;Comment screenshot&quot; width=&quot;1124&quot; height=&quot;165&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;start&quot;&gt;Start&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-OB9DmT3Dj-1053.avif 1053w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-OB9DmT3Dj-1053.webp 1053w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/-OB9DmT3Dj-1053.png&quot; alt=&quot;Comment from the Framework Forums&quot; width=&quot;1053&quot; height=&quot;314&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Following &lt;a href=&quot;https://community.frame.work/t/introducing-framework-laptop-13-pro/81951/141&quot;&gt;helpful suggestions&lt;/a&gt; on the Framework Community Forums, I removed my expansion cards, kept brightness low, and ran PowerTOP. I was still seeing between ~9W and ~13W (ex., with a browser open writing this post). &lt;code&gt;PowerTOP&lt;/code&gt; was reporting a mix of &lt;code&gt;C0 active&lt;/code&gt;, &lt;code&gt;C1E&lt;/code&gt;, &lt;code&gt;C6&lt;/code&gt;, &lt;code&gt;C8&lt;/code&gt; and &lt;code&gt;C10&lt;/code&gt; for each &lt;a href=&quot;https://www.intel.com/content/www/us/en/products/sku/132221/intel-core-i51240p-processor-12m-cache-up-to-4-40-ghz/specifications.html&quot;&gt;processor core&lt;/a&gt;. I wanted to see if I could switch a BIOS setting or change power management to get even lower power usage. From other users experience on the forum, it seemed like ~4W to ~7W was achievable.&lt;/p&gt;
&lt;p&gt;I tried reducing the number of performance cores (P-cores) to 1, and the number of efficiency cores (E-cores) to 2. I didn&#39;t see much of a difference. It&#39;s just a &lt;a href=&quot;https://www.michaelstinkerings.org/the-curse-of-intel-12th-gen-c-states/&quot;&gt;high idle issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/9RU_zYPtwi-1942.avif 1942w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/9RU_zYPtwi-1942.webp 1942w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/9RU_zYPtwi-1942.png&quot; alt=&quot;Screenshot of PowerTOP on Linux&quot; width=&quot;1942&quot; height=&quot;1202&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I felt like I was &lt;a href=&quot;https://community.frame.work/t/tracking-linux-battery-life-tuning/6665/589&quot;&gt;grasping at straws&lt;/a&gt;, or at least hitting a limit of ~9W at idle for my current configuration and mainboard. The NVMe SSD, WD SN850, is known to be less power efficient then the SK Hynix P40 or P41, but changing SSDs is &lt;a href=&quot;https://theonlyblogever.com/blog/2026/hobbycompt.html&quot;&gt;cost prohibitive&lt;/a&gt;. I could also try a single stick of RAM (or less RAM).&lt;/p&gt;
&lt;p&gt;The other option is to wait six months to a year and see if the the newly announced &lt;a href=&quot;https://frame.work/ca/en/products/laptop13pro-mainboard-intel-ultra-3?v=FRANJZ0005&quot;&gt;Intel® Core™ Ultra 3 series mainboards&lt;/a&gt; will be as power efficient as promised. If the 20 hour battery-life claims are to be believed, we could see ~2W to ~4W idle statistics.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; I wouldn&#39;t use any of the following commands blindly. They are suggestions. They were used to try and get a more efficient power usage. They are specific to my system. You could really mess up your setup. Your mileage may vary.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;Checking PowerTOP again, and the Framework Forum.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FdbNmemji_-2426.avif 2426w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FdbNmemji_-2426.webp 2426w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/FdbNmemji_-2426.png&quot; alt=&quot;Screenshot of PowerTOP on Linux&quot; width=&quot;2426&quot; height=&quot;1914&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I got this commenter responding,&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KE86HA2wHf-1062.avif 1062w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KE86HA2wHf-1062.webp 1062w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/KE86HA2wHf-1062.png&quot; alt=&quot;Screenshot from Framework Forums&quot; width=&quot;1062&quot; height=&quot;734&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;If the 9W was astronomically high, then something was wrong with my laptop&#39;s power management.&lt;/p&gt;
&lt;div class=&quot;ai-warn&quot;&gt;&lt;p&gt;&lt;em&gt;AI Note:&lt;/em&gt; I used chat-bot LLMs conversationally to help search for some of these commands. Do not trust them. They could screw up your system!&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;cpu&quot;&gt;CPU&lt;/h2&gt;
&lt;p&gt;A quick &lt;a href=&quot;https://discussion.fedoraproject.org/t/why-is-tick-nohz-handler-showing-up-as-waking-up-the-cpu-hundreds-of-times-per-second-in-powertop/150603&quot;&gt;search&lt;/a&gt; led me to the following commands, to help with processor power management. Turns &lt;a href=&quot;https://github.com/basecamp/omarchy/discussions/1504&quot;&gt;out&lt;/a&gt;, the &lt;code&gt;tick_nohz_handler&lt;/code&gt; process was paging the CPU &lt;a href=&quot;https://www.kernel.org/doc/html/latest/timers/no_hz.html&quot;&gt;far too much&lt;/a&gt;. It&#39;s &lt;a href=&quot;https://github.com/torvalds/linux/blob/f66b0acf394b8558f79c03336b579a47876a6940/kernel/time/tick-sched.c#L281&quot;&gt;part of the Linux kernel&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo grubby --args=&amp;quot;nohz=on nohz_full=all&amp;quot; --update-kernel=ALL
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo grubby --args=&amp;quot;nohz=on nohz_full=all nvme.noacpi=1&amp;quot; --update-kernel=ALL
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;backlight&quot;&gt;Backlight&lt;/h2&gt;
&lt;p&gt;Then, I ran the following to disable dynamic keyboard backlight control script.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pkill -f kblightd.sh
systemctl --user disable --now kblightd 2&amp;gt;/dev/null
systemctl disable --now kblightd 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It was a bash script called kblightd, &lt;a href=&quot;https://github.com/radeeyate/kblight&quot;&gt;found on GitHub&lt;/a&gt; to control the keyboard backlight for the FW laptop. I must have installed it at a certain point. Turns out it was polling constantly and using energy.&lt;/p&gt;
&lt;p&gt;I removed it entirely.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pkill -f kblightd.sh
sudo systemctl disable --now kblightd 2&amp;gt;/dev/null
sudo rm /usr/local/bin/kblightd.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With brightness low at 20%, I achieved under ~6W at idle.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zmgXHqIUeq-2268.avif 2268w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zmgXHqIUeq-2268.webp 2268w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/zmgXHqIUeq-2268.png&quot; alt=&quot;Screenshot of PowerTOP on Linux&quot; width=&quot;2268&quot; height=&quot;1710&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;processes&quot;&gt;Processes&lt;/h2&gt;
&lt;p&gt;I killed gnome software&#39;s background update service.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pkill gnome-software
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also had &lt;a href=&quot;https://github.com/FrameworkComputer/framework-system&quot;&gt;framework_tool&lt;/a&gt; and &lt;a href=&quot;https://ozturkkl.github.io/framework-control/&quot;&gt;framework-control&lt;/a&gt; installed. They aren&#39;t needed anymore because of kernel and other software improvements. Besides, they have daemons that take up energy.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// kill the processes

pkill -f framework_tool
pkill -f framework_control

// find where they are installed

which framework_tool
which framework_control

// remove framework-tool and control

sudo rm /usr/local/sbin/framework-control
sudo rm /usr/local/sbin/framework_tool

// verify that it&#39;s removed

ls /etc/systemd/system | grep framework
ls ~/.config | grep framework
ls /usr/local/bin | grep framework

// remove any traces of these files

sudo rm /etc/systemd/system/framework* 2&amp;gt;/dev/null
rm -rf ~/.config/framework* 2&amp;gt;/dev/null

// reload systemctl to verify

sudo systemctl daemon-reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I ran powerTop with report output. I had no idea PowerTOP had a reporting function.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo powertop --html=report.html
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/RVXEYTcU8W-3384.avif 3384w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/RVXEYTcU8W-3384.webp 3384w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/RVXEYTcU8W-3384.png&quot; alt=&quot;Screenshot of PowerTOP Report&quot; width=&quot;3384&quot; height=&quot;2192&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;gnome-search&quot;&gt;Gnome Search&lt;/h3&gt;
&lt;p&gt;On Fedora, Gnome&#39;s local search indexer &lt;a href=&quot;https://gnome.pages.gitlab.gnome.org/localsearch/overview.html&quot;&gt;localsearch-3&lt;/a&gt; was &lt;a href=&quot;https://old.reddit.com/r/gnome/comments/12azzh3/why_searching_on_gnome_sucks_and_what_can_be_done/&quot;&gt;reeking havoc&lt;/a&gt; on my system. It was &lt;a href=&quot;https://forum.manjaro.org/t/how-to-fix-high-cpu-usage-of-localsearch-3/171737&quot;&gt;constantly indexing and failing&lt;/a&gt; on certain files. It was restarting and failing on the same files &lt;a href=&quot;https://forum.endeavouros.com/t/how-to-stop-localsearch-cinnamon-gnome-wasting-cpu-wifi-bandwidth/72917&quot;&gt;over&lt;/a&gt; and &lt;a href=&quot;https://discussion.fedoraproject.org/t/localsearch-3-and-localsearch-extractor-3-processes-taking-cpu-and-refuse-to-be-killed/179794&quot;&gt;over&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// kill gnome localsearch

killall localsearch-3
killall localsearch-extractor-3

// stop and mask the service

systemctl --user stop localsearch-3.service
systemctl --user mask localsearch-3.service

// verify it worked

ps aux | grep localsearch
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I used to have similar issues with Spotlight on OS X. Again, I would disable it to make the system feel snappier. Gnome&#39;s &lt;a href=&quot;https://gitlab.gnome.org/GNOME/localsearch&quot;&gt;localsearch&lt;/a&gt; would &lt;a href=&quot;https://discourse.gnome.org/t/a-more-comprehensive-localsearch-index-for-gnome-50/32030&quot;&gt;benefit&lt;/a&gt; from having a progress bar GUI or even a tray icon like Spotlight used to have to show indexing progress and errors.&lt;/p&gt;
&lt;p&gt;This also kills the searching ability in Nautilius, the gnome file manager. As a stop-gap, I&#39;ve installed the &lt;a href=&quot;https://discussion.fedoraproject.org/t/localsearch-3-and-localsearch-extractor-3-processes-taking-cpu-and-refuse-to-be-killed/179794&quot;&gt;fsearch&lt;/a&gt; flatpak.&lt;/p&gt;
&lt;h2 id=&quot;wifi&quot;&gt;Wifi&lt;/h2&gt;
&lt;p&gt;But, my &lt;code&gt;Intel AX210&lt;/code&gt; wifi card was reporting almost ~10W of energy usage.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bsl7GWQQZD-2268.avif 2268w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bsl7GWQQZD-2268.webp 2268w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/bsl7GWQQZD-2268.png&quot; alt=&quot;Screenshot of PowerTOP on Linux&quot; width=&quot;2268&quot; height=&quot;1710&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The network interface was less than half it&#39;s current reported wattage earlier. It goes anywhere from ~400 mW to ~10 W during use. Maybe, it&#39;s just inefficient.&lt;/p&gt;
&lt;h2 id=&quot;bluetooth&quot;&gt;Bluetooth&lt;/h2&gt;
&lt;p&gt;The Bluetooth radio was always enabled on logon. I would need to go into gnome tray and disable it manually each time.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// edit the conf file

sudo nano /etc/bluetooth/main.conf

// find #AutoEnable:true, remove the #

Set AutoEnable:False
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;s&gt;This keeps the radio available, but stops it from turning on during login. Except, this doesn&#39;t actually disable the &lt;code&gt;btusb&lt;/code&gt; kernel module. It was still drawing 1W.&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;The commands below forced &lt;code&gt;bluez&lt;/code&gt; to block any bluetooth pairing connections. Instead, just do the above to keep bluetooth off at start-up without effecting any other functionality.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Kill the kernel module

sudo rfkill block bluetooth

// add a udev rule to disable the radio at boot

echo &#39;ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;bluetooth&amp;quot;, RUN+=&amp;quot;/usr/sbin/rfkill block bluetooth&amp;quot;&#39; | sudo tee /etc/udev/rules.d/50-bluetooth.rules
sudo udevadm control --reload-rules
sudo rfkill block bluetooth
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I reverted these commands to regain bluetooth functionality.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Remove the udev rule
sudo rm /etc/udev/rules.d/50-bluetooth.rules
sudo udevadm control --reload-rules

// Unblock bluetooth
sudo rfkill unblock bluetooth

// Reload udev triggers
sudo udevadm trigger
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;ai-warn&quot;&gt;&lt;p&gt;&lt;em&gt;AI Note:&lt;/em&gt; Do not trust AI blindly. Do not copy commands straight from an LLM without understanding what they are doing to your system. Do not give an LLM file system access, it should stay contained inside of a browser.&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;gpu&quot;&gt;GPU&lt;/h2&gt;
&lt;p&gt;I also disabled gnome animations. To revert, switch the &lt;code&gt;false&lt;/code&gt; back to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gsettings set org.gnome.desktop.interface enable-animations false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I don&#39;t care about animations usually. I used to do this using Onyx on OSX 10.4 and Windows 7 too! I find that disabling the eye-candy usually makes the system feel more responsive.&lt;/p&gt;
&lt;p&gt;I&#39;ve learned that there is an &lt;a href=&quot;https://wiki.archlinux.org/title/Intel_graphics&quot;&gt;experimental driver&lt;/a&gt; for &lt;code&gt;Intel 12th gen Alder Lake&lt;/code&gt; processors called &lt;code&gt;xe&lt;/code&gt;. It replaces the older &lt;code&gt;i915&lt;/code&gt; graphics driver and &lt;a href=&quot;https://wiki.archlinux.org/title/Intel_graphics#Testing_the_new_experimental_Xe_driver&quot;&gt;can&lt;/a&gt; yield &lt;a href=&quot;https://www.phoronix.com/review/intel-i915-xe-linux-2025&quot;&gt;battery savings&lt;/a&gt;. Although, it isn&#39;t fully tested. I&#39;ll keep &lt;code&gt;i915&lt;/code&gt; for now.&lt;/p&gt;
&lt;p&gt;After another reboot, C10 all day!&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/j395z6hloe-2058.avif 2058w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/j395z6hloe-2058.webp 2058w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/j395z6hloe-2058.png&quot; alt=&quot;Screenshot of PowerTOP&quot; width=&quot;2058&quot; height=&quot;1818&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;nvme-ssd&quot;&gt;NVMe SSD&lt;/h2&gt;
&lt;p&gt;My &lt;code&gt;SN850&lt;/code&gt; SSD is less power efficient then other options. The holy grail are the SK Hynix manufactured drives, but they are insanely expensive right now.&lt;/p&gt;
&lt;p&gt;It was &lt;a href=&quot;https://community.frame.work/t/framework-13-battery-efficiency-tracking-club/82312&quot;&gt;suggested&lt;/a&gt; to verify and enable DIPM (for SATA drives) known as APST (Autonomous Power State Transition) for NVMe drives. On Linux, you may need to force this behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// install nvme-cli
brendan@bsys:~$sudo dnf install nvme-cli

// check APST status
brendan@bsys:~$sudo nvme get-feature /dev/nvme0 -f 0x0c -H

// check APST link
brendan@bsys:~$sudo cat /sys/bus/pci/devices/0000:01:00.0/link/l1_aspm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In my case, it was already active returning &lt;code&gt;enabled&lt;/code&gt; and &lt;code&gt;1&lt;/code&gt;. You can get deeper into power management of your drives, but TLP and default Fedora configurations already do most of this.&lt;/p&gt;
&lt;h2 id=&quot;conclusions&quot;&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;Our largest power consumers are the display (and its backlight) and the &lt;code&gt;Intel AX210&lt;/code&gt; wifi card. I like learning about the different systems that make up the modern computer system.&lt;/p&gt;
&lt;p&gt;This post is meandering. Anecdotally, I may have reduced power usage on my laptop by a few watts. Whether it will actually have any significant effects in real-world usage is to be seen.&lt;/p&gt;
&lt;p&gt;At a certain point, it&#39;s a battle of diminishing returns. If my only consideration was battery life and power efficiency, and not environmental or financial, I could just wait for the new mainboard and pay the premium for the parts. I want to keep my current hardware and have it work as efficiently as possible.&lt;/p&gt;
&lt;p&gt;I could have just fresh-installed Fedora or Ubuntu or &lt;a href=&quot;https://wiki.archlinux.org/title/Framework_Laptop_13&quot;&gt;Arch&lt;/a&gt; and followed the Framework battery efficiency guide. But, what&#39;s the fun in that?&lt;/p&gt;
&lt;p&gt;I&#39;m tired. I want this to be over for now.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>1259 Days with the Framework Laptop</title>
    <link href="https://theonlyblogever.com/blog/2026/workingontheframe.html" />
    <updated>2026-04-21T22:30:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/workingontheframe.html</id>
    <content type="html">&lt;p&gt;A follow-up to &lt;a href=&quot;https://theonlyblogever.com/blog/2025/work-frame-review.html&quot;&gt;my previous post&lt;/a&gt; about my experiences with the framework. Given that Framework is hosting a &lt;a href=&quot;https://www.youtube.com/watch?v=uqFDIR00Mwo&quot;&gt;Next Gen&lt;/a&gt; livestream this afternoon and I&#39;m a &lt;em&gt;consumerist-shill&lt;/em&gt;, here are my thoughts.&lt;/p&gt;
&lt;p&gt;Overall, I&#39;ve had a decent experience with my framework laptop. It&#39;s a  &lt;code&gt;Framework 13&amp;quot;&lt;/code&gt; with an &lt;code&gt;Intel 12th gen i5-1240P&lt;/code&gt;, &lt;code&gt;64GB DDR4&lt;/code&gt; RAM, and a &lt;code&gt;2TB NVMe SSD&lt;/code&gt;. I&#39;ve written about my experiences &lt;a href=&quot;https://theonlyblogever.com/blog/2024/infra.html&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;https://theonlyblogever.com/blog/2025/speculative_analysis.html&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;https://theonlyblogever.com/blog/2025/q2_update01.html&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;https://theonlyblogever.com/blog/2025/portable_notebook.html&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;https://theonlyblogever.com/blog/2025/fwpriorities.html&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;https://theonlyblogever.com/blog/2025/work-frame-review.html&quot;&gt;here&lt;/a&gt;, and &lt;a href=&quot;https://theonlyblogever.com/blog/2025/fw-screamer.html&quot;&gt;here&lt;/a&gt;. I also &lt;em&gt;spec&#39;ed out&lt;/em&gt; my &lt;a href=&quot;https://theonlyblogever.com/blog/2025/laptop_dreams.html&quot;&gt;dream notebook&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In early 2025, I &lt;a href=&quot;https://theonlyblogever.com/uses&quot;&gt;wrote&lt;/a&gt;,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I would like a 12&amp;quot; (non-touchscreen) model that supported the same mainboard with an aluminum case. If they engineered a 12.1&amp;quot; case complete with low-profile mechanical keyboard and space for a larger battery, I wouldn&#39;t hesitate to purchase.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;source: self&lt;/p&gt;
&lt;p&gt;About a year ago, I &lt;a href=&quot;https://theonlyblogever.com/blog/2025/portable_notebook.html&quot;&gt;wrote&lt;/a&gt;,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I&#39;ve increased the ram, added a new bezel, and a fresh battery.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[...] I would like to replace the mainboard with a more efficient version. It heats-up more often then I&#39;d like to admit [...]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Anecdotal tests show [newer motherboards] would show substantial efficiency and battery-life improvements. But, I don&#39;t think it&#39;s worth the ~600 to ~700 CAD price tag for the upgrade.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;source: self&lt;/p&gt;
&lt;p&gt;Last summer, I &lt;a href=&quot;https://theonlyblogever.com/blog/2025/gadget_overlords.html&quot;&gt;wrote&lt;/a&gt;,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;...it feels too big for quick tasks and it’s not properly energy efficient...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;source: self&lt;/p&gt;
&lt;h2 id=&quot;battery&quot;&gt;Battery&lt;/h2&gt;
&lt;p&gt;Obviously, I like small laptops. My pain points with my framework are centered around battery life and thermal efficiency. I&#39;m constantly running for my charging cable and hoping that the laptop doesn&#39;t shut down before I can plug it into the wall.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/770jpdZHMQ-1766.avif 1766w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/770jpdZHMQ-1766.webp 1766w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/770jpdZHMQ-1766.png&quot; alt=&quot;&quot; width=&quot;1766&quot; height=&quot;1624&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Even after upgrading to the &lt;code&gt;61 Wh&lt;/code&gt; battery, I only get ~3h to ~4h of usable charge time. The last 10% isn&#39;t always accurate. If I could be assured I would get closer to 8 hours, I would buy a new motherboard and battery instantly.&lt;/p&gt;
&lt;p&gt;I&#39;ve tried changing BIOS settings, limiting &lt;a href=&quot;https://community.frame.work/t/tracking-linux-battery-life-tuning/6665&quot;&gt;power usage&lt;/a&gt;, and configuring TLP, but those didn&#39;t have much of an effect.&lt;/p&gt;
&lt;p&gt;Yes, I could just buy a macbook or a more integrated PC laptop and be done with my battery issues. But, I want to support repairable hardware. I want to have &lt;a href=&quot;https://wiki.gentoo.org/wiki/Framework_Laptop_13&quot;&gt;options&lt;/a&gt;. I&#39;m willing to live with some level of &lt;a href=&quot;https://wiki.archlinux.org/title/Framework_Laptop_13&quot;&gt;configuring&lt;/a&gt; to get the laptop I want.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1hge66N6Xo-2158.avif 2158w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1hge66N6Xo-2158.webp 2158w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/1hge66N6Xo-2158.png&quot; alt=&quot;&quot; width=&quot;2158&quot; height=&quot;1906&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;screenshot: using PowerTOP to try and find energy offenders&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;offenders&quot;&gt;Offenders&lt;/h2&gt;
&lt;p&gt;In trying to improve my laptop power efficiency, I&#39;m using &lt;code&gt;PowerTOP&lt;/code&gt; to analyze processes.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Launching PowerTOP
sudo powertop

// Stopping Syncthing
sudo systemctl stop syncthing@$USER

// Stopping Tailscale
sudo systemctl stop tailscaled

// Stopping framework control and kb daemon
sudo systemctl stop kblightd.service
sudo systemctl stop framework-control.service
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;// Testing Framework i2c Touchpad bug
echo &amp;quot;options i2c_designware_pci disable_runtime_pm=1&amp;quot; | sudo tee /etc/modprobe.d/i2c-designware.conf
sudo dracut --force
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I was running &lt;code&gt;tuned&lt;/code&gt; and &lt;code&gt;tlp&lt;/code&gt; which can conflict and cause power management issues. For my specific hardware combo, using both actually added power savings.&lt;/p&gt;
&lt;p&gt;In addition, I limited frequencies on the integrated Intel GPU on battery power. Checking available frequency ranges with,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo tlp-stat -g
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FeIrNAlkoT-1904.avif 1904w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FeIrNAlkoT-1904.webp 1904w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/FeIrNAlkoT-1904.png&quot; alt=&quot;&quot; width=&quot;1904&quot; height=&quot;1532&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;After all of the above changes, I went from ~14W at idle to ~9W. Anecdotally, I&#39;m seeing a few watts less with this &lt;a href=&quot;https://github.com/halfmexican/battery-usage-wattmeter-extension&quot;&gt;gnome extension&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;display&quot;&gt;Display&lt;/h2&gt;
&lt;p&gt;I have had similar issues with a transient backlight vertical band down the left side of the screen. The solution was removing the input cover and verifying that the display cable and LVDS connected was undamaged and seated correctly. I am hoping that the new FW 13 Pro (Graphite) chassis and display upgrade will coincidentally solve this backlight connector flakiness.&lt;/p&gt;
&lt;figure&gt;
&lt;video controls=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot; style=&quot;width:100%;height:auto;&quot;&gt;
  &lt;source src=&quot;https://theonlyblogever.com/vid/fw-display.webm&quot; type=&quot;video/webm&quot;&gt;
 &lt;/video&gt;
  &lt;figcaption&gt;My Framework 13 (12th gen) with display backlight issues&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;wish-list&quot;&gt;Wish List&lt;/h2&gt;
&lt;p&gt;Before the new announcements, I can dream.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;I&#39;ve updated the lists to &lt;s&gt;crossout&lt;/s&gt; anything that FW has not delivered and kept anything that has been introduced or announced. I added some notes in &lt;em&gt;italics&lt;/em&gt; and added my &lt;a href=&quot;https://theonlyblogever.com/blog/2025/work-frame-review.html&quot;&gt;previous wish list items&lt;/a&gt; for reference.&lt;/p&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Framework case with a rigid display top-cover, and thicker bottom cover.
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;larger, hot-swappable battery with charge indicator,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;low-profile mechanical keyboard,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;plastic and magnesium transparent case option.&lt;/s&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;haptic trackpad,&lt;/li&gt;
&lt;li&gt;&lt;s&gt;miniLED&lt;/s&gt; lower power display,&lt;/li&gt;
&lt;li&gt;&lt;s&gt;dual NVMe 2280 SSD slots,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;low-power, reduced-performance, &lt;s&gt;cost-sensitive&lt;/s&gt; arm processor mainboard, &lt;em&gt;we do have this with 3rd party mainboard options for RISK-V and ARM,&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;first-party linux &lt;s&gt;power management (with GUI app)&lt;/s&gt;&lt;em&gt;we have better linux support now&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;less than 6W at idle. &lt;em&gt;we don&#39;t have final idle power stats for the FW 13 Pro with Intel Ultra 3&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;A more robust case with no noticeable screen wobble even with some added weight&lt;/li&gt;
&lt;li&gt;Stronger, thicker hinge mechanism&lt;/li&gt;
&lt;li&gt;A thicker input cover with room for a more clicky keyboard&lt;/li&gt;
&lt;li&gt;Squared case corner&lt;/li&gt;
&lt;li&gt;Different case colours and materials (i.e., magnesium, steel...)&lt;/li&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;A flush ethernet card&lt;/s&gt; &lt;em&gt;this is a physical impossibility with RJ45&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;s&gt;advanced BIOS power management features,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Battery charge indicator lights even when the machine is off (like the old iBook batteries)&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Indicator lights for wifi, bluetooth, network (like the thinkpads)&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;RGB backlit keyboard (for the 13)&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;A price-reduction on the matte screens&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;First-party 5g cellular modem&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Metal display bezel&lt;/s&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-xnkMm2GNH-1876.avif 1876w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-xnkMm2GNH-1876.webp 1876w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/-xnkMm2GNH-1876.png&quot; alt=&quot;&quot; width=&quot;1876&quot; height=&quot;1546&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I&#39;ve had this mainboard in my cart for about four months now. The price has gone down, I&#39;m wondering if it will be further reduced after the new product announcements. If this board went below 400$ CAD, it would be worth the efficiency boost.&lt;/p&gt;
&lt;h2 id=&quot;the-fw-event-april-2026&quot;&gt;The FW Event (April 2026)&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/X3q04KEHZ0-1380.avif 1380w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/X3q04KEHZ0-1380.webp 1380w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/X3q04KEHZ0-1380.png&quot; alt=&quot;&quot; width=&quot;1380&quot; height=&quot;849&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Waiting for the event with my battery at 10%. Unfortunately, I can&#39;t live blog through my site infrastructure. I would be neat to try in the future.&lt;/p&gt;
&lt;p&gt;Well, fuck. FW has announced a &lt;code&gt;Framework 13&amp;quot; Pro&lt;/code&gt; with over 20 hours of battery life and a fully CNC chassis, and it&#39;s black.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/CmvuvWI0Zl-1026.avif 1026w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/CmvuvWI0Zl-1026.webp 1026w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/CmvuvWI0Zl-1026.png&quot; alt=&quot;&quot; width=&quot;1026&quot; height=&quot;416&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;source: &lt;a href=&quot;https://mastodon.social/@br_en_d_an/116444002544364617&quot;&gt;https://mastodon.social/@br_en_d_an/116444002544364617&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Until I can access the marketplace, with a spec sheet, we don&#39;t know what is actually compatible.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6hx9PhQZe1-1349.avif 1349w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6hx9PhQZe1-1349.webp 1349w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/6hx9PhQZe1-1349.png&quot; alt=&quot;&quot; width=&quot;1349&quot; height=&quot;1044&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;According to the &lt;a href=&quot;https://frame.work/ca/en/products/framework-laptop-13-pro-chassis-kit-graphite?v=FRANKK00A1&quot;&gt;spec sheets&lt;/a&gt;, all of the new FW 13 Pro chassis parts are compatible with the original FW 13 laptops!&lt;/p&gt;
&lt;p&gt;They are selling a full kit, to &lt;a href=&quot;https://www.youtube.com/watch?v=JSxgCEpkiKM&quot;&gt;transform any&lt;/a&gt; (non-chromebook) FW 13 into the new FW Pro. Considering that that was 3 of the main things on my list above, I will be &lt;a href=&quot;https://www.pcmag.com/news/i-want-it-hands-on-with-the-framework-laptop-13-pro-a-new-premium-player&quot;&gt;joining the pre-order&lt;/a&gt; as soon as its available.&lt;/p&gt;
&lt;p&gt;The new FW 13 Pro, configured like my current FW 13, would cost an eye-watering $3,245.00 CAD (+ tax). Yes, it would get me a new mainboard with (&lt;a href=&quot;https://www.pcworld.com/article/3120596/hands-on-with-the-framework-laptop-13-pro-a-killer-upgrade.html&quot;&gt;reportedly&lt;/a&gt;) high battery life, but it would also force me to switch to &lt;a href=&quot;https://assets.micron.com/adobe/assets/urn:aaid:aem:4e076108-df95-4c2d-8785-06c30049afb5/original/as/lpddr5x-camm2-technical-brief.pdf&quot;&gt;LPCAMM2&lt;/a&gt; memory. At time of writing, 32GB of &lt;a href=&quot;https://www.tomshardware.com/pc-components/motherboards/what-is-camm2&quot;&gt;LPCAMM2&lt;/a&gt; LPDDR5X is ~400$ CAD used and ~600$ CAD new.&lt;/p&gt;
&lt;p&gt;Over &lt;a href=&quot;https://liliputing.com/framework-laptop-13-pro-is-a-modular-laptop-with-longer-battery-life-better-screen-and-up-to-intel-core-ultra-x7-panther-lake/&quot;&gt;half of the cost&lt;/a&gt; is the &lt;a href=&quot;https://www.ifixit.com/News/95078/lpcamm2-memory-is-finally-here&quot;&gt;LPCAMM2 RAM&lt;/a&gt; and the NVMe SSD. Based on my window-shopping math, the &lt;a href=&quot;https://frame.work/laptop13pro?tab=upgrade-to-pro&quot;&gt;pro upgrade kit&lt;/a&gt; for the older models will cost around $1,000.00 CAD with the new display, speakers, chassis, battery and keyboard.&lt;/p&gt;
&lt;p&gt;In hindsight, a lot of what I wanted we&#39;ve gotten with the new FW 13 Pro. These improvements are exiting. Framework has kept the promise of compatibility and modularity. I&#39;m excited to see what the community will build with these new updated parts.&lt;/p&gt;
&lt;p&gt;I&#39;m still holding out for a slot loading battery that would let me retrofit my existing used FW batteries into a sort of cartridge that would side-load into the laptop and latch at the bottom and side of the device.&lt;/p&gt;
&lt;p&gt;I guess my wish list wasn&#39;t that off the mark.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The Computer is Wrong. Thus, The User is Wrong.</title>
    <link href="https://theonlyblogever.com/blog/2026/onlyhuman.html" />
    <updated>2026-04-20T23:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/onlyhuman.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KWhst-Dfsx-1920.avif 1920w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KWhst-Dfsx-1920.webp 1920w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/KWhst-Dfsx-1920.png&quot; alt=&quot;A VHS-styled menu screen&quot; width=&quot;1920&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The promise of AI is the promise of a greater tomorrow? If so, what is this tomorrow? Is it full of LLMs doing the menial labour of humans who weren’t actually that efficient at completing? Is it full of drones doing automated surveillance and airstrikes? Besides, who else will they get to run those oversized ordering tablets at every fast-food chain location?&lt;/p&gt;
&lt;p&gt;Lately, as written here, I’ve been having a few of these “AI” conversation bot services provide ideas for site design, or help write a python script to parse some data, or check a &lt;code&gt;compose.yml&lt;/code&gt; or provide suggestions for hardware upgrades.&lt;/p&gt;
&lt;p&gt;It’s fine (yes, just fine) for small and very specific tasks. It can often get caught up in cyclical answering. Offering a solution in error and then later offering the same. Limiting myself to the free tiers seems to be the best choice. Ask a few questions only and then come back the next day.&lt;/p&gt;
&lt;p&gt;It&#39;s for fun and for testing. Not for genuine learning and work.&lt;/p&gt;
&lt;p&gt;Yes, we can get things vomited-out faster. And, we can attempt technical things we may not have done without the aid of the chat-bot. But, it can feel overwhelming to get fed more information that your brain can parse. You aren’t actually learning anything new. I wonder what constant use of chat-bots (without critical mental reflection) will do for brain plasticity over time.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;For more discussion on the topic, check-out this &lt;a href=&quot;https://aphyr.com/posts/420-the-future-of-everything-is-lies-i-guess-where-do-we-go-from-here&quot;&gt;blog post from aphyr&lt;/a&gt;, and from &lt;a href=&quot;https://100r.co/site/permacomputing_101.html&quot;&gt;Devine at 100rabbits&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;I think, it&#39;s important to be critical of these &amp;quot;technological marvels&amp;quot;. I can&#39;t lie and say that I have not been drawn to the allure of AI LLMs. They are like elastic prototyping machines. Taking in human language and translating them to the computer layer; further distancing the human from the machine. &lt;code&gt;Sonnet 4.6&lt;/code&gt; has seemed to be the best option for &lt;code&gt;.css&lt;/code&gt; classes and front-end design suggestions.&lt;/p&gt;
&lt;p&gt;I can&#39;t hate myself for being curious and for trying the different options. I&#39;ve made stupid songs and even dumber images. I&#39;ve tried prototyping different site designs. The goal of the different LLM interface providers seems to be the ongoing subscription costs for more access. It&#39;s the same business strategy as magazines, fitness gyms, cable television, streaming services and auto clubs. They are hoping you won&#39;t notice the charge on your credit card for a few months.&lt;/p&gt;
&lt;p&gt;These services can also take the information fed to them to spit it back to the next customer. Security concerns aside, their ability to synthesize information (real or not) should be concerning. At this point, I&#39;m stuck between feeling we should disregard this current wave of artificiality and that we learn to integrate it into our professional lives in order to guide others with some level of competency.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;Wendell at Level1Techs has a counter commentary &lt;a href=&quot;https://youtu.be/do-EyIFvQ1E?si=E1LCuX8SSxiBF94U&quot;&gt;video about the current state of AI&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;The models that we type things into are toddlers you’re trying to convince to eat their dinner. They often need specific and repeated instructions. Even with an example they can instead throw the spoon and use their hands with the spaghetti or they throw the entire plate and start screaming.&lt;/p&gt;
&lt;p&gt;It won’t always be this delicate, corporations are using these same products behind-the-scenes and the consumer doesn’t always know. They’re already being used at a rate that the end-user can’t know if it’s just being regurgitated, or if a human was actually involved in the creation. At what point did the original work become processed too many times to be recognizable? When the language model and the human output become indistinguishable, will we even recognize the problem?&lt;/p&gt;
&lt;h2 id=&quot;the-human-to-do&quot;&gt;The Human To-Do&lt;/h2&gt;
&lt;p&gt;Here&#39;s my list of anti-AI (or, AI-critical) goals.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Learn python scripting myself,&lt;/li&gt;
&lt;li&gt;Write a bash script without the help of AI,&lt;/li&gt;
&lt;li&gt;Finish my electronic album in GarageBand v2, on &lt;code&gt;Mac OS X 10.4.11&lt;/code&gt; and publish the album online,&lt;/li&gt;
&lt;li&gt;Edit a photo in Photoshop CS2,&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Write a blog post in French without the use of an LLM as a proofreader&lt;/s&gt;,&lt;/li&gt;
&lt;li&gt;Re-write my css stylesheet without LLM input--remove any extraneous cruft.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Just Trying to Make an Online Purchase</title>
    <link href="https://theonlyblogever.com/blog/2026/happyboxes.html" />
    <updated>2026-04-14T21:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/happyboxes.html</id>
    <content type="html">&lt;p&gt;I have this pull, same as always, to categorize, sort, and box everything up into, over-engineered, boxes, cartons, and cases. Build a bunker&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;, label everything, put it all on a shelf, with laminated content lists and then I&#39;ll die happy.&lt;/p&gt;
&lt;figure&gt;
&lt;video controls=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot; style=&quot;width:100%;height:auto;&quot;&gt;
  &lt;source src=&quot;https://theonlyblogever.com/vid/arthur_computer.webm&quot; type=&quot;video/webm&quot;&gt;
 &lt;/video&gt;
  &lt;figcaption&gt;Arthur (1996) - S01E14 &quot;Arthur the Wrecker&quot;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Much of the data organization and retention projects, about which I write, are meant to make data curation simpler. It&#39;s likely part of the reason I like using containers. Everything stays contained inside of the docker container at the expense of added space and processing duplication&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;In the same way, I want life to be simpler. For example, I generally rotate my wardrobe around multiples of the same. I&#39;ve basically created uniforms for myself. This way, I don&#39;t need to think about what to wear. I always have a &lt;em&gt;default mode&lt;/em&gt;. It gives me a base and adds efficiency when preparing for the day.&lt;/p&gt;
&lt;p&gt;This morning, I tried ordering some new clothes from a national Canadian retailer&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ve double-checked the return policy and I&#39;ve got four stores (within 50km) for returning items locally. I put about 10 items into my cart and boom. The big yellow checkout button does nothing. The buttons for the checkout page flash and then do nothing. There is no pop-up, no tool-tip, no notification, and no error message.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/jVSi2Y6nWv-1370.avif 1370w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/jVSi2Y6nWv-1370.webp 1370w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/jVSi2Y6nWv-1370.png&quot; alt=&quot;screenshot for Mark&#39;s&quot; width=&quot;1370&quot; height=&quot;548&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I turn off all of my extensions that could be causing issues, including Privacy Badger, uBlock and Decentraleyes. Nothing. I try signing into my store account, expecting that it might refresh the page or at least let me save the cart.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/uGnRq6X66D-981.avif 981w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/uGnRq6X66D-981.webp 981w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/uGnRq6X66D-981.png&quot; alt=&quot;screenshot for Mark&#39;s&quot; width=&quot;981&quot; height=&quot;129&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;An hour later, still nothing. Now, there are multiple red and yellow error rectangles saying to &amp;quot;try again later&amp;quot;. I wait another half-hour. This time the checkout button starts a page refresh and a spinning logo. Then offers a sign-in page for my account. After entering the emailed verification code, it asks me if I want to create a passkey. Great, more friction. After another emailed verification code check, I can continue with the checkout process.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/q7DVLg6U58-1501.avif 1501w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/q7DVLg6U58-1501.webp 1501w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/q7DVLg6U58-1501.png&quot; alt=&quot;screenshot for Mark&#39;s&quot; width=&quot;1501&quot; height=&quot;546&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Confirming my name and address, then I get to the credit card form. It&#39;s a blank grey rectangle. Clicking out of the form does nothing.&lt;/p&gt;
&lt;p&gt;They offer Apple Pay, so I try that option. It shows a fancy qr code and prompts to complete on my phone. It fails multiple times. I try starting the checkout process over again using Apple Pay. A yellow box quickly displays, under a greyed-out overlay, saying &amp;quot;...payment has NOT been processed&amp;quot; and then a red box, &amp;quot;Error on our end...&amp;quot;. Choosing a different payment method, I get multiple error boxes appearing and disappearing.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zvtShIbePe-1584.avif 1584w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/zvtShIbePe-1584.webp 1584w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/zvtShIbePe-1584.png&quot; alt=&quot;screenshot for Mark&#39;s&quot; width=&quot;1584&quot; height=&quot;237&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;There&#39;s a customer service number at the top of the page. Calling the number, and pressing 2 for website support, they suggest using Edge or Google Chrome as they haven&#39;t &amp;quot;...received any internal reports of website issues&amp;quot;. They also suggest using Incognito Mode and trying to place an order again.&lt;/p&gt;
&lt;p&gt;I play dumb. Off to Chromium I go. It works? No. More sign-in issues and errors. As a last resort, I try using Safari on iOS 18. It throws more error messages. Clearly, this website is having data processing and back-end database issues. My browser isn&#39;t the issue.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/RGH09G4h5D-1609.avif 1609w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/RGH09G4h5D-1609.webp 1609w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/RGH09G4h5D-1609.png&quot; alt=&quot;screenshot for Mark&#39;s&quot; width=&quot;1609&quot; height=&quot;793&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;After another half-hour, I tested the checkout page again. The grey credit card square was now displaying properly. Apple Pay worked just fine in Firefox and my payment was successful.&lt;/p&gt;
&lt;p&gt;We are supposed to be in the post-&lt;a href=&quot;https://en.wikipedia.org/wiki/Brick_and_mortar&quot;&gt;brick and mortar&lt;/a&gt;, cordcutting, terminally online era. Yet, this Canadian retail behemoth with over &lt;a href=&quot;https://corp.canadiantire.ca/&quot;&gt;$20 billion in annual sales&lt;/a&gt; and an &lt;a href=&quot;https://s201.q4cdn.com/326551073/files/doc_financials/2025/q4/Q4-2025-IR-Fact-Sheet.pdf&quot;&gt;estimated 37%&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; of the &lt;a href=&quot;https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=1710000501&quot;&gt;adult population&lt;/a&gt; of Canada in their rewards program, cannot avoid back-end issues during a sale?&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/GH0N0j5FEM-1113.avif 1113w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/GH0N0j5FEM-1113.webp 1113w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/GH0N0j5FEM-1113.png&quot; alt=&quot;Issues on Mark&#39;s website&quot; width=&quot;1113&quot; height=&quot;201&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I shouldn&#39;t be surprised, they&#39;ve been &lt;a href=&quot;https://corp.canadiantire.ca/English/Cyber-Incident/default.aspx&quot;&gt;breached before&lt;/a&gt;. I probably shouldn&#39;t trust them with any personal information.&lt;/p&gt;
&lt;p&gt;That brings me to what you can do to practice &lt;a href=&quot;https://www.explainxkcd.com/wiki/index.php/936:_Password_Strength&quot;&gt;better Internet safety&lt;/a&gt;: use &lt;em&gt;unique&lt;/em&gt; passwords or &lt;a href=&quot;https://www.cyber.gc.ca/en/guidance/best-practices-passphrases-and-passwords-itsap30032&quot;&gt;passphrases&lt;/a&gt; for each service; use a password manager (ex., &lt;a href=&quot;https://keepassxc.org/docs/KeePassXC_GettingStarted&quot;&gt;KeePassXC&lt;/a&gt;) with a password generator; use &lt;a href=&quot;https://xkcd.com/2522/&quot;&gt;multi-factor&lt;/a&gt; (MFA) also referred to as two-factor (2FA) authentication with a &lt;a href=&quot;https://www.explainxkcd.com/wiki/index.php/2543:_Never_Told_Anyone&quot;&gt;time-based one-time password&lt;/a&gt; (TOTP) that isn&#39;t tied to a cell phone number&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Never give those codes to anyone! Only put them into the service (ex., website) when you are logging-on. If you&#39;re ever sketched-out, change your password. Nothing is ever truly safe and secure. No digital (or physical) system is uncrackable or indestructible. The above steps will lesson the chances of bad things happening, but they won&#39;t &lt;a href=&quot;https://web.archive.org/web/20150316003756/http://www.wired.com/2012/11/ff-mat-honan-password-hacker/&quot;&gt;negate all&lt;/a&gt; risks.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;m exaggerating here, I do not want an actual bunker and I think that the Doomsday Preppers show is hilarious. &lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;m just excited about &lt;code&gt;mardown-it-footnotes&lt;/code&gt; here. I know that docker is over-engineered for certain projects, but I&#39;m learning. &lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;This retailer has a name that rhymes with &lt;em&gt;Dark&#39;s Lurk Bear Mouse&lt;/em&gt;. Its parent company rhymes with &lt;em&gt;Tasmanian&lt;/em&gt; &lt;em&gt;fire&lt;/em&gt;. Besides, it&#39;s in the screenshots. &lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I extrapolated the population numbers from Statistics Canada as of July 1, 2025 and the rewards card number from the Canadian Tire &amp;quot;Q4 2025 Fact Sheet&amp;quot;. &lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Yes, I know there are other methods. These basic rules are just a start. &lt;a href=&quot;https://theonlyblogever.com/blog/2026/happyboxes.html#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry>
    <title>iBook G4: Modding &amp; Prodding</title>
    <link href="https://theonlyblogever.com/blog/2026/ibookg4two.html" />
    <updated>2026-04-09T16:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/ibookg4two.html</id>
    <content type="html">&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;This post is part 2 of my journey restoring an Apple iBook G4 from 2005. Find &lt;a href=&quot;https://theonlyblogever.com/blog/2026/ibookg4.html&quot;&gt;Part 1 here&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;Last week, I got my 2005 iBook G4 running OS X 10.4.11. It works fine. It&#39;s a little slow, it runs hot, the battery doesn&#39;t work and the software needs updating.&lt;/p&gt;
&lt;p&gt;Having a mac computer back then, felt like being in a special &lt;a href=&quot;https://en.wikipedia.org/wiki/MacHeist&quot;&gt;club&lt;/a&gt;. A lot of OS X apps felt indie and niche. They had aqua styling with glossy progress bars and detailed icons. You could go to the &lt;a href=&quot;https://www.macstories.net/stories/clear-an-interview-with-impendings-phill-ryu/&quot;&gt;developers&lt;/a&gt; website and read their technical blog and mac focused &lt;a href=&quot;https://daringfireball.net/2006/12/iniquities_of_the_selfish&quot;&gt;journalists&lt;/a&gt; would write about the systems and appear on podcasts. For a kid interested in consumer technologies, it was great.&lt;/p&gt;
&lt;h3 id=&quot;battery&quot;&gt;Battery&lt;/h3&gt;
&lt;p&gt;During charging I had felt the battery heating up the entire laptop and smelt a slight burning plastic smell. I decided to take apart the battery to remove the cells and have a dummy battery cartridge to fill the space left by the removable battery pack.&lt;/p&gt;
&lt;p&gt;The battery was warm enough that the top place peeled itself off. The rest of the battery is plastic welded with clips along a middle seem. I used a slim utility knife to cut the seem to give enough space to insert a metal pry tool to disengage the clips.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Ug_TMOpO0M-4032.avif 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Ug_TMOpO0M-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Ug_TMOpO0M-4032.jpeg&quot; alt=&quot;iBook battery Pack 2&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;If you attempt to disassemble any battery pack enclosure use caution! The cells can short, spark, release vapour or catch fire. In my case, the cells were mostly dead, I placed the battery cells into a ceramic container filled with baking soda.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/p9MVh5nKaS-4032.avif 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/p9MVh5nKaS-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/p9MVh5nKaS-4032.jpeg&quot; alt=&quot;iBook Battery Pack 1&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The cells in iBook G4 (and PowerBook G4) laptops are six &lt;code&gt;3.7V 18650&lt;/code&gt; cylindrical batteries.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1hO2NDxuzF-4032.avif 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1hO2NDxuzF-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/1hO2NDxuzF-4032.jpeg&quot; alt=&quot;iBook Battery pack 3&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Once it was apart, I separated the cells and placed them back into the baking soda bucket to await disposal at the recycling centre. The resulting plastic case, could now be filled with 3D printed plastic filler for a little extra weight.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/7V7ljoGt6c-4032.avif 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/7V7ljoGt6c-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/7V7ljoGt6c-4032.jpeg&quot; alt=&quot;iBook Battery pack 3&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I found a 3D printable &lt;a href=&quot;https://cults3d.com/en/3d-model/various/18650-dummy-cell&quot;&gt;18650 dummy&lt;/a&gt; and printed those to fill the case and add a little weight.&lt;/p&gt;
&lt;p&gt;I thought about designing a new battery insert or &lt;a href=&quot;https://web.archive.org/web/20230723214047/www.neufeld.newton.ks.us/electronics/?p=149&quot;&gt;replacing the cells&lt;/a&gt;, but decided to instead recycle the existing case. A new battery is $200 CAD. Considering, I won&#39;t use it outside my office, it wasn&#39;t worth &lt;a href=&quot;https://davidigreen.com/blog/ibook-battery-rebuild&quot;&gt;replacing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After adjusting the Z axis height of my Ender3, the fake &lt;code&gt;iBattery iPack&lt;/code&gt; is ready to be fitted to the iBook. I did need to print multiple versions to get the sizing correct. Some hot glue and fit-testing later, I had a dummy battery pack.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/inHiHFXkRg-4032.avif 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/inHiHFXkRg-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/inHiHFXkRg-4032.jpeg&quot; alt=&quot;iBook Battery Pack 4&quot; width=&quot;4032&quot; height=&quot;3024&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;In the next installment, I try and replace the hard drive with an mSATA solid-state drive.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Computers as a Hobby is on Hold</title>
    <link href="https://theonlyblogever.com/blog/2026/hobbycompt.html" />
    <updated>2026-04-08T22:00:30Z</updated>
    <id>https://theonlyblogever.com/blog/2026/hobbycompt.html</id>
    <content type="html">&lt;p&gt;Computer hardware pricing is untenable for home users. Corporate computing contracts are killing homelabbers, hobbiests, indie nerds and basement geeks.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ss69ZvmY61-1800.avif 1800w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ss69ZvmY61-1800.webp 1800w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/ss69ZvmY61-1800.jpeg&quot; alt=&quot;DRAM and NAND Chips Floating over a Starburst&quot; width=&quot;1800&quot; height=&quot;1400&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Products containing DRAM (ex., RAM sticks) have sky-rocketed in price over the past 6 months. Products containing NAND (ex., SSD&#39;s) have followed the trend. This bubble is affecting all consumer-facing tech products.&lt;/p&gt;
&lt;h2 id=&quot;crisis&quot;&gt;Crisis&lt;/h2&gt;
&lt;p&gt;All prices below are listed in canadian currency (CAD) and without added taxes or shipping costs. The pricing was sourced from Amazon (CA) using the keepa extension for historic pricing.&lt;/p&gt;
&lt;p&gt;In July 2022, I purchased a 2 TB Western Digital Black SN850 NVMe SSD for 239.99$ CAD (+ tax). In April 2026, this model has been discontinued, the successor (PCIe Gen 5) SN850X is now 599.99$ CAD (+ tax) up from ~205$ CAD in October 2025. Between October 2025 and March 2026 (5 months) the price increased 150%.&lt;/p&gt;
&lt;p&gt;In November 2023, I got a 1 TB Samsung T7 external SSD for 111.57$ CAD (used). In April 2026, this model is 374.99$ CAD. Between November 2025 and March 2026, the price increased 236%.&lt;/p&gt;
&lt;p&gt;In December 2025, I purchased two Lexar 64GB UHS-II SD cards for 71.95$ CAD. In April 2026, these SD cards are now 136.70$ CAD. Between December 2025 and April 2026, the price has increased 90%.&lt;/p&gt;
&lt;p&gt;In February 2025, I bought Crucial 64GB (2x32GB) DDR4 desktop RAM for 128.24$ CAD (used). In April 2026, this RAM is now 698$ CAD. Between July 2025 and April 2026, the price has increased 444%.&lt;/p&gt;
&lt;p&gt;In February 2025, I added 64GB (2x32GB) DDR4 laptop RAM for 145.41$ CAD. In April 2026, this same RAM, when available, is now 1030.19$ CAD. It&#39;s successor, Crucial DDR5 RAM, is 1,176.15$ CAD. Between September 2025 and April 2026, the price has increased 608%.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Micron Technology, owners of the Crucial brand, &lt;a href=&quot;https://investors.micron.com/news-releases/news-release-details/micron-announces-exit-crucial-consumer-business&quot;&gt;announced in December 2025&lt;/a&gt; that they are no-longer selling end-user RAM memory, or NVMe SSD&#39;s to consumers.&lt;/p&gt;
&lt;p&gt;These business decisions signal an industry shift. They are prioritizing the lucrative server farms over individual users or even deals with consumer purchasing giants. There just doesn’t seem to be enough storage capacity to go around: Western Digital &lt;a href=&quot;https://www.techspot.com/news/111346-western-digital-hdd-production-capacity-2026-already-sold.html&quot;&gt;claims to be out of stock&lt;/a&gt; for at least the rest of 2026; and, Sony &lt;a href=&quot;https://www.digitalcameraworld.com/cameras/memory-cards/sony-suspends-memory-cards-due-to-the-global-shortage-of-semiconductors-memory-and-other-factors-in-japan-is-it-a-sign-the-memory-crisis-is-worsening&quot;&gt;freezes SD card production&lt;/a&gt; in parts of Asia. These manufacturing shortages are &lt;a href=&quot;https://www.computerweekly.com/news/366635013/Chip-makers-warn-of-a-looming-shortage-in-DRAM-and-SSD&quot;&gt;expected to continue&lt;/a&gt;. Hopefully, this AI bubble will burst. Cutting edge technological advances for thee, not for me.&lt;/p&gt;
&lt;p&gt;I am deeply self-centered. I can barely see a perspective more than two steps ahead of my in any direction. Clearly, I’m more concerned about my next purchase than actually doing anything useful. I usually champion technology, in all forms, but this, Artificial Intelligence hype train doesn’t feel like a new groundbreaking technological revolution. It doesn’t seem like it might be interesting long-term. It’s a fad. Maybe, If you’re using it, in a very limited and narrow scope, maybe it will be useful for small tasks. Ultimately, in this early stage it’s &lt;em&gt;positive feedback looping us&lt;/em&gt; into a worse state.&lt;/p&gt;
&lt;p&gt;Once the investors retract, realizing that their money hasn’t make any meaningful returns or a magically more productive society, the companies pushing these vibe lifestyles will die. The promise of better living though chat bots will wither away.&lt;/p&gt;
&lt;h2 id=&quot;losing-our-minds&quot;&gt;Losing Our Minds&lt;/h2&gt;
&lt;p&gt;If I wanted to recreate my &lt;a href=&quot;https://theonlyblogever.com/blog/2026/blog/2025/zfs-pool-trends.html&quot;&gt;ZFS pool&lt;/a&gt; today, with used enterprise 12TB drives, like I did in February 2025, instead of costing ~400$ CAD for 3 12TB drives on eBay, I would be paying a minimum of 250$ CAD per drive (probably closer to 300$ CAD each). That&#39;s ~750$ CAD for 3 drives--an increase of 87.5%.&lt;/p&gt;
&lt;p&gt;These prices are &lt;a href=&quot;https://en.wikipedia.org/wiki/2024%E2%80%93present_global_memory_supply_shortage&quot;&gt;untenable&lt;/a&gt; for home users. If hardware I own fails, I cannot easily afford to replace it with the same part. With &lt;a href=&quot;https://nand-research.com/memory-flash-crisisc-update-march-2026/&quot;&gt;DRAM&lt;/a&gt; memory chip and &lt;a href=&quot;https://www.tomshardware.com/pc-components/storage/phison-ceo-thinks-nand-shortages-could-shut-down-entire-consumer-electronics-companies-in-2026-claims-at-least-one-foundry-demands-three-year-cash-payment-upfront&quot;&gt;NAND&lt;/a&gt; SSD flash chip &lt;a href=&quot;https://www.tomshardware.com/pc-components/ssds/phison-ceo-says-that-nand-prices-hiked-by-around-50-percent-overnight-highlighting-severe-shortage-in-the-industry-warns-our-current-concern-is-that-both-money-and-inventory-are-insufficient&quot;&gt;shortages&lt;/a&gt; &lt;a href=&quot;https://www.pcworld.com/article/3028843/dram-ssd-shortages-could-last-months-to-years-vendors-say.html&quot;&gt;ongoing&lt;/a&gt;, with little light for &lt;a href=&quot;https://www.cbc.ca/news/business/ram-shortage-consumer-electronics-9.7102991&quot;&gt;end consumers&lt;/a&gt;, we need to use the hardware we have as conservatively as possible.&lt;/p&gt;
&lt;p&gt;Save your hardware!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Personal Confuser: USB File Transfers</title>
    <link href="https://theonlyblogever.com/blog/2026/usbconfuser.html" />
    <updated>2026-04-06T14:00:30Z</updated>
    <id>https://theonlyblogever.com/blog/2026/usbconfuser.html</id>
    <content type="html">&lt;p&gt;I don&#39;t trust myself with USB flash drives. They are small, easy to misplace and (used to be) inexpensive enough to be semi-disposable. I can load data onto a USB key and hand it off without a second thought. USB flash drives could be the modern floppy disk, but recently &lt;a href=&quot;https://pcpartpicker.com/trends/&quot;&gt;sky-rocketing&lt;/a&gt; in price, like most flash-based devices, they are no longer an inexpensive option.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/JYNCCltywW-1600.avif 1600w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/JYNCCltywW-1600.webp 1600w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/JYNCCltywW-1600.jpeg&quot; alt=&quot;USB Drives with overlay&quot; width=&quot;1600&quot; height=&quot;1200&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;In 2026, we cannot hand someone an optical disk, tape or floppy and expect them to know what to do with it. Our choices are USB flash drive or &lt;a href=&quot;https://sschueller.github.io/posts/the-free-market-lie/&quot;&gt;network&lt;/a&gt; file transfer.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://fabiensanglard.net/usbcheat/index.html&quot;&gt;Fabien Sanglard&#39;s USB Cheat Sheet&lt;/a&gt; is much more comprehensive than my exploratory post.&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;universal-serial-bozos&quot;&gt;Universal Serial Bozos&lt;/h2&gt;
&lt;p&gt;For &lt;a href=&quot;https://www.tomshardware.com/news/usb-3-2-explained&quot;&gt;reference&lt;/a&gt; and comparison, here are the &lt;a href=&quot;https://en.wikipedia.org/wiki/USB&quot;&gt;advertised speeds&lt;/a&gt; of different &lt;a href=&quot;https://www.usb.org/&quot;&gt;USB standards&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;USB Standard&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Speed&lt;/th&gt;
&lt;th&gt;Unit Converted&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;USB 1.0&lt;/td&gt;
&lt;td&gt;1996&lt;/td&gt;
&lt;td&gt;1.5 Mbit/s&lt;/td&gt;
&lt;td&gt;0.1875 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB 1.1&lt;/td&gt;
&lt;td&gt;1998&lt;/td&gt;
&lt;td&gt;12 Mbit/s&lt;/td&gt;
&lt;td&gt;1.5 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB 2.0&lt;/td&gt;
&lt;td&gt;2000&lt;/td&gt;
&lt;td&gt;480 Mbit/s&lt;/td&gt;
&lt;td&gt;60 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB 3.0 (USB 3.2 [or 3.1] Gen 1)&lt;/td&gt;
&lt;td&gt;2008&lt;/td&gt;
&lt;td&gt;5 Gbit/s&lt;/td&gt;
&lt;td&gt;625 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB 3.1 (USB 3.2 [or 3.1] Gen 2x1)&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;td&gt;10 Gbit/s&lt;/td&gt;
&lt;td&gt;1,250 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB 3.2 (USB 3.2 Gen 2x2)&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;20 Gbit/s&lt;/td&gt;
&lt;td&gt;2,500 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB4 Gen 3x2&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;td&gt;40 Gbit/s&lt;/td&gt;
&lt;td&gt;5,000 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB4 Gen 4&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;td&gt;80 Gbit/s&lt;/td&gt;
&lt;td&gt;10,000 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB4 Gen 4 Asymmetric&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;td&gt;120 Gbit/s&lt;/td&gt;
&lt;td&gt;15,000 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;Note 1:&lt;/em&gt; There is machine data transfer overhead on these &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_interface_bit_rates#Peripheral&quot;&gt;advertised speeds&lt;/a&gt;. Introduced in 2017, USB 3.2 replaced USB 3.1 (in name and marketing) and, by extension, USB 3.0 (in name and marketing). In this post, I use the terms USB 3.0 and USB 3.2 Gen 1x1 interchangeably. Depending on the age of a client or host device it would have been marketed as having USB 3.0 or USB 3.1 and/or SuperSpeed, etc.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note 2:&lt;/em&gt; USB4 is only available via physical &lt;a href=&quot;https://en.wikipedia.org/wiki/USB-C&quot;&gt;USB-C connectors&lt;/a&gt;. Also, USB4 is &lt;a href=&quot;https://en.wikipedia.org/wiki/USB4&quot;&gt;deliberately written&lt;/a&gt; without a space between the &lt;em&gt;B&lt;/em&gt; and the &lt;em&gt;4&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note 3:&lt;/em&gt; I did not include &lt;a href=&quot;https://en.wikipedia.org/wiki/Thunderbolt_(interface)&quot;&gt;Thunderbolt specifications&lt;/a&gt; because it is beyond the scope of this post. For our understanding here, USB4 is &lt;em&gt;mostly&lt;/em&gt; cross-compatible with Thunderbolt versions 3, 4 and 5.&lt;/p&gt;
&lt;h2 id=&quot;progress-bars-are-dumb&quot;&gt;Progress Bars Are Dumb&lt;/h2&gt;
&lt;p&gt;Last night, I wanted to accomplish something &lt;em&gt;simple&lt;/em&gt;. A family member asked for a few seasons of a television show on a USB thumb drive so that they could watch, on their laptop, during an upcoming international flight.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Easy fix!&lt;/em&gt; I already have those Linux ISO&#39;s (the show&#39;s files) on &lt;code&gt;BAXIAL&lt;/code&gt;. I&#39;ll just plug the USB key into a USB 3.0 port on the KVM switch, copy the folders through Nautilus (Ubuntu&#39;s default file manager) and wait 5 minutes.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Nope.&lt;/em&gt; The files would start to transfer and the transfer speed would show 350 Mb/s for about 1 minute and then they would slowly reduce from 150 Mb/s down to 6 MB/s and the time estimate would creep from 2 minutes up to 14 minutes.&lt;/p&gt;
&lt;p&gt;GUI file transfers in Nautilus on linux are broken. I&#39;ve had constant issues with local file transfers onto USB drives freezing, stuttering, failing or refusing to unmount. Similar issues have occurred across Manjaro, Ubuntu and Fedora. The Files app seems to cache (or front-load) data and then claim to have completed the file transfer in the GUI. Then, when you try to unmount the drive, the system sends a notification saying &lt;em&gt;not&lt;/em&gt; to unplug the drive. The transfer window disappears and minutes crawl before it&#39;s safe to eject the drive.&lt;/p&gt;
&lt;p&gt;You know what always works? &lt;a href=&quot;https://rsync.samba.org/&quot;&gt;Rsync&lt;/a&gt;! To transfer files locally run the following in a terminal.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rsync -avPh /source/ /destination/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I should have followed my first instinct and used my Win11 machine &lt;code&gt;DELTAFLYER&lt;/code&gt;. I could have booted it up and transferred the files quicker. The &amp;quot;Year of the Linux Desktop&amp;quot; it is not.&lt;/p&gt;
&lt;h2 id=&quot;benchmark-methodology&quot;&gt;Benchmark Methodology&lt;/h2&gt;
&lt;p&gt;For future reference, I want to figure out which &lt;a href=&quot;https://arstechnica.com/gadgets/2020/02/how-fast-are-your-disks-find-out-the-open-source-way-with-fio/&quot;&gt;file transfer&lt;/a&gt; methods are most efficient.&lt;/p&gt;
&lt;p&gt;On Linux, I&#39;ll use &lt;a href=&quot;https://github.com/JonMagon/KDiskMark&quot;&gt;KDiskMark 3.2.0&lt;/a&gt;. On Windows, I&#39;ll use &lt;a href=&quot;https://sourceforce.net/projects/crystaldiskmark/&quot;&gt;CrystalDiskMark 9.0.2&lt;/a&gt;. For options, I chose defaults (ex., random test data). Under &lt;em&gt;Profile &amp;gt; Real World Performance [+Mix]&lt;/em&gt;, I ran &lt;em&gt;6 Test Counts&lt;/em&gt; and a &lt;em&gt;2 GiB Test Size&lt;/em&gt; with &lt;em&gt;R60%/W40%&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ll test a handful of different USB pendrives, SD cards, and an external SSD. All the different USB specs will be listed in the tables below. Yes, USB specifications are confusing. The data reported in the tables are the &lt;em&gt;Sequential 1 MiB or SEQ1M&lt;/em&gt; results. Except for the front USB port test, all drives were inserted into USB 3.0 ports or better.&lt;/p&gt;
&lt;p&gt;Before starting the tests, I deleted any existing partitions on the USB flash drives and created a single &lt;code&gt;exFAT&lt;/code&gt; partition in Windows. The SD cards were in a UGreen USB 3.0 (Type A) UHS-I adapter. I do have some UHS-II SDXC cards, but I don&#39;t have a reader capable of supporting those top speeds.&lt;/p&gt;
&lt;h2 id=&quot;oops&quot;&gt;Oops!&lt;/h2&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;&lt;strong&gt;Side Quest:&lt;/strong&gt; Be extremely careful when using &lt;em&gt;Computer Management &amp;gt; Disk Management&lt;/em&gt; or &lt;em&gt;Storage &amp;gt; Disks &amp;gt; Disks &amp;amp; volumes&lt;/em&gt; on Windows. Scroll-balling too quickly, not looking at the correct drive when I went to format my USB flash drive, I clicked &lt;em&gt;Properties &amp;gt;&amp;gt; Delete&lt;/em&gt; on the &lt;a href=&quot;https://learn.microsoft.com/en-us/windows-server/storage/storage-spaces/storage-spaces-states&quot;&gt;Storage Spaces&lt;/a&gt; pool. It was now reporting to the system as &lt;em&gt;unallocated&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The data, including the actual storage pool was &lt;a href=&quot;https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/troubleshoot-disk-management&quot;&gt;still there&lt;/a&gt;, it was the partition table, assigned to drive &lt;code&gt;D:&#92;&lt;/code&gt;, that was no longer visible. I used &lt;a href=&quot;https://www.cgsecurity.org/wiki/TestDisk&quot;&gt;TestDisk&lt;/a&gt; to write the &lt;code&gt;EFI GPT&lt;/code&gt; partition table and rebooted. The pool was then visible to Windows again.&lt;/p&gt;
&lt;p&gt;Check and re-check your screen before hitting scary buttons!&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;&lt;span class=&quot;emphasis-box&quot;&gt;I used the incident as a reminder to update all of my backups.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;results&quot;&gt;Results&lt;/h2&gt;
&lt;h3 id=&quot;deltaflyer-win11&quot;&gt;DELTAFLYER (Win11)&lt;/h3&gt;
&lt;p&gt;On &lt;code&gt;DELTAFLYER&lt;/code&gt; I used two rear red USB ports labeled USB SuperSpeed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Model Name&lt;/th&gt;
&lt;th&gt;Client Interface&lt;/th&gt;
&lt;th&gt;Host Interface&lt;/th&gt;
&lt;th&gt;Read&lt;/th&gt;
&lt;th&gt;Write&lt;/th&gt;
&lt;th&gt;Mix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kingston&lt;/td&gt;
&lt;td&gt;DT KYSON DTKN/64GB&lt;/td&gt;
&lt;td&gt;USB 3.2 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type A&lt;/td&gt;
&lt;td&gt;234.25 MB/s&lt;/td&gt;
&lt;td&gt;104.86 MB/s&lt;/td&gt;
&lt;td&gt;5.24 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kingston&lt;/td&gt;
&lt;td&gt;DTSE9 16GB&lt;/td&gt;
&lt;td&gt;USB 2.0 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type A&lt;/td&gt;
&lt;td&gt;33.55 MB/s&lt;/td&gt;
&lt;td&gt;12.79 MB/s&lt;/td&gt;
&lt;td&gt;7.34 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbatim&lt;/td&gt;
&lt;td&gt;PinStripe Store-N-Go 16GB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 1 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type A&lt;/td&gt;
&lt;td&gt;29.15 MB/s&lt;/td&gt;
&lt;td&gt;14.68 MB/s&lt;/td&gt;
&lt;td&gt;17.20 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MUF-64DA/APC 64GB&lt;/td&gt;
&lt;td&gt;USB 3.1 - Type C&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type C&lt;/td&gt;
&lt;td&gt;305.79 MB/s&lt;/td&gt;
&lt;td&gt;36.91 MB/s&lt;/td&gt;
&lt;td&gt;70.04 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MU-PC1T0H 1TB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 2 - Type C&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type C&lt;/td&gt;
&lt;td&gt;685.52 MB/s&lt;/td&gt;
&lt;td&gt;916.73 MB/s&lt;/td&gt;
&lt;td&gt;697.70 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SanDisk&lt;/td&gt;
&lt;td&gt;Ultra 32GB SDHC UHS-I&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type A&lt;/td&gt;
&lt;td&gt;97.52 MB/s&lt;/td&gt;
&lt;td&gt;27.68 MB/s&lt;/td&gt;
&lt;td&gt;45.09 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SanDisk&lt;/td&gt;
&lt;td&gt;Extreme 64GB SDXC UHS-I U3&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type A&lt;/td&gt;
&lt;td&gt;97.54 MB/s&lt;/td&gt;
&lt;td&gt;90.39 MB/s&lt;/td&gt;
&lt;td&gt;81.78 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Western Digital&lt;/td&gt;
&lt;td&gt;HDD DC HC550 18TB&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. dock)&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2 - Type A&lt;/td&gt;
&lt;td&gt;251.86 MB/s&lt;/td&gt;
&lt;td&gt;251.24 MB/s&lt;/td&gt;
&lt;td&gt;119.33 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;cochrane-fedora-43-fw&quot;&gt;COCHRANE (Fedora 43 FW)&lt;/h3&gt;
&lt;p&gt;For more details on the specifications of the &lt;a href=&quot;https://hackerboards.com/board/framework-laptop-13-mainboard-12th-gen&quot;&gt;Framework 12th gen mainboard&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Model Name&lt;/th&gt;
&lt;th&gt;Client Interface&lt;/th&gt;
&lt;th&gt;Host Interface&lt;/th&gt;
&lt;th&gt;Read&lt;/th&gt;
&lt;th&gt;Write&lt;/th&gt;
&lt;th&gt;Mix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kingston&lt;/td&gt;
&lt;td&gt;DT KYSON DTKN/64GB&lt;/td&gt;
&lt;td&gt;USB 3.2 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type A&lt;/td&gt;
&lt;td&gt;213.84 MB/s&lt;/td&gt;
&lt;td&gt;51.38 MB/s&lt;/td&gt;
&lt;td&gt;7.54 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kingston&lt;/td&gt;
&lt;td&gt;DTSE9 16GB&lt;/td&gt;
&lt;td&gt;USB 2.0 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type A&lt;/td&gt;
&lt;td&gt;32.45 MB/s&lt;/td&gt;
&lt;td&gt;9.29 MB/s&lt;/td&gt;
&lt;td&gt;3.31 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbatim&lt;/td&gt;
&lt;td&gt;PinStripe Store-N-Go 16GB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 1 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type A&lt;/td&gt;
&lt;td&gt;26.95 MB/s&lt;/td&gt;
&lt;td&gt;16.11 MB/s&lt;/td&gt;
&lt;td&gt;11.71 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MUF-64DA/APC 64GB&lt;/td&gt;
&lt;td&gt;USB 3.1 - Type C&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type C&lt;/td&gt;
&lt;td&gt;280.26 MB/s&lt;/td&gt;
&lt;td&gt;35.71 MB/s&lt;/td&gt;
&lt;td&gt;34.38 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MU-PC1T0T 1TB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 2 - Type C&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type C&lt;/td&gt;
&lt;td&gt;677.37 MB/s&lt;/td&gt;
&lt;td&gt;568.64 MB/s&lt;/td&gt;
&lt;td&gt;321.05 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SanDisk&lt;/td&gt;
&lt;td&gt;Ultra 32GB SDHC UHS-I&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type A&lt;/td&gt;
&lt;td&gt;92.14 MB/s&lt;/td&gt;
&lt;td&gt;27.36 MB/s&lt;/td&gt;
&lt;td&gt;25.90 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SanDisk&lt;/td&gt;
&lt;td&gt;Extreme 64GB SDXC UHS-I U3&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type A&lt;/td&gt;
&lt;td&gt;92.10 MB/s&lt;/td&gt;
&lt;td&gt;84.24 MB/s&lt;/td&gt;
&lt;td&gt;45.45 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lexar&lt;/td&gt;
&lt;td&gt;1667x 64GB SDXC UHS-II U3&lt;/td&gt;
&lt;td&gt;USB 3.2 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen2x1 - Type A&lt;/td&gt;
&lt;td&gt;89.00 MB/s&lt;/td&gt;
&lt;td&gt;79.54 MB/s&lt;/td&gt;
&lt;td&gt;43.45 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lexar&lt;/td&gt;
&lt;td&gt;1667x 64GB SDXC UHS-II U3&lt;/td&gt;
&lt;td&gt;USB 3.1 - Type C (UHS-II &lt;a href=&quot;https://shop.progradedigital.com/collections/workflow-readers/products/sdxc-microsdxc-uhs-ii-dual-slot-mobile-card-reader-usb-c-3-2&quot;&gt;ext. read.&lt;/a&gt;)&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen1 - Type C&lt;/td&gt;
&lt;td&gt;243.82 MB/s&lt;/td&gt;
&lt;td&gt;119.54 MB/s&lt;/td&gt;
&lt;td&gt;81.38 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;baxial-ubuntu-24-0-4-lts&quot;&gt;BAXIAL (Ubuntu 24.0.4 LTS)&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;BAXIAL&lt;/code&gt; doesn&#39;t have any USB-C ports. The motherboard has &lt;em&gt;only&lt;/em&gt; USB 3.1 type A ports. For the Samsung T7 SSD, I used a USB-C to USB-A cable. I couldn&#39;t test the Samsung MUF-64DA/APC.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Model Name&lt;/th&gt;
&lt;th&gt;Client Interface&lt;/th&gt;
&lt;th&gt;Host Interface&lt;/th&gt;
&lt;th&gt;Read&lt;/th&gt;
&lt;th&gt;Write&lt;/th&gt;
&lt;th&gt;Mix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kingston&lt;/td&gt;
&lt;td&gt;DT KYSON DTKN/64GB&lt;/td&gt;
&lt;td&gt;USB 3.2 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;223.71 MB/s&lt;/td&gt;
&lt;td&gt;50.06 MB/s&lt;/td&gt;
&lt;td&gt;7.70 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kingston&lt;/td&gt;
&lt;td&gt;DTSE9 16GB&lt;/td&gt;
&lt;td&gt;USB 2.0 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;34.93 MB/s&lt;/td&gt;
&lt;td&gt;10.31 MB/s&lt;/td&gt;
&lt;td&gt;3.25 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbatim&lt;/td&gt;
&lt;td&gt;PinStripe Store-N-Go 16GB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 1 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;28.19 MB/s&lt;/td&gt;
&lt;td&gt;15.50 MB/s&lt;/td&gt;
&lt;td&gt;13.00 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MUF-64DA/APC 64GB&lt;/td&gt;
&lt;td&gt;USB 3.1 - Type C&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;n/d&lt;/td&gt;
&lt;td&gt;n/d&lt;/td&gt;
&lt;td&gt;n/d&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MU-PC1T0H 1TB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 2 - Type C&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;340.17 MB/s&lt;/td&gt;
&lt;td&gt;303.39 MB/s&lt;/td&gt;
&lt;td&gt;167.26 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SanDisk&lt;/td&gt;
&lt;td&gt;Ultra 32GB SDHC UHS-I&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;93.46 MB/s&lt;/td&gt;
&lt;td&gt;27.16 MB/s&lt;/td&gt;
&lt;td&gt;25.71 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SanDisk&lt;/td&gt;
&lt;td&gt;Extreme 64GB SDXC UHS-I U3&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;41.56 MB/s&lt;/td&gt;
&lt;td&gt;33.24 MB/s&lt;/td&gt;
&lt;td&gt;21.26 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;front-usb-2-0-ports&quot;&gt;Front USB 2.0 Ports&lt;/h3&gt;
&lt;p&gt;Testing the same storage on the front USB ports resulted in sad results, as expected.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Host&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Model Name&lt;/th&gt;
&lt;th&gt;Client Interface&lt;/th&gt;
&lt;th&gt;Host Interface&lt;/th&gt;
&lt;th&gt;Read&lt;/th&gt;
&lt;th&gt;Write&lt;/th&gt;
&lt;th&gt;Mix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BAXIAL&lt;/td&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MU-PC1T0T 1TB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 2 - Type C&lt;/td&gt;
&lt;td&gt;USB 2.0 - Type A&lt;/td&gt;
&lt;td&gt;41.74 MB/s&lt;/td&gt;
&lt;td&gt;38.11 MB/s&lt;/td&gt;
&lt;td&gt;22.87 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DELTAFLYER&lt;/td&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MU-PC1T0T 1TB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 2 - Type C&lt;/td&gt;
&lt;td&gt;USB 2.0 - Type A&lt;/td&gt;
&lt;td&gt;43.62 MB/s&lt;/td&gt;
&lt;td&gt;40.06 MB/s&lt;/td&gt;
&lt;td&gt;42.15 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DELTAFLYER&lt;/td&gt;
&lt;td&gt;SanDisk&lt;/td&gt;
&lt;td&gt;Ultra 32GB SDHC UHS-I&lt;/td&gt;
&lt;td&gt;USB 3.0 - Type A (ext. read.)&lt;/td&gt;
&lt;td&gt;USB 2.0 - Type A&lt;/td&gt;
&lt;td&gt;41.73 MB/s&lt;/td&gt;
&lt;td&gt;27.26 MB/s&lt;/td&gt;
&lt;td&gt;33.14 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;through-usb-hubs&quot;&gt;Through USB Hubs&lt;/h3&gt;
&lt;p&gt;Testing through hubs (like my cheap KVM switch or the UGreen USB 3.2 hub).&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Host&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Model Name&lt;/th&gt;
&lt;th&gt;Client Interface&lt;/th&gt;
&lt;th&gt;Host Interface&lt;/th&gt;
&lt;th&gt;Read&lt;/th&gt;
&lt;th&gt;Write&lt;/th&gt;
&lt;th&gt;Mix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BAXIAL&lt;/td&gt;
&lt;td&gt;Kingston&lt;/td&gt;
&lt;td&gt;DT KYSON DTKN/64GB&lt;/td&gt;
&lt;td&gt;USB 3.2 - Type A&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;223.80 MB/s&lt;/td&gt;
&lt;td&gt;34.47 MB/s&lt;/td&gt;
&lt;td&gt;6.81 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DELTAFLYER&lt;/td&gt;
&lt;td&gt;Samsung&lt;/td&gt;
&lt;td&gt;MU-PC1T0T 1TB&lt;/td&gt;
&lt;td&gt;USB 3.2 Gen 2 - Type C&lt;/td&gt;
&lt;td&gt;USB 3.1 Gen1 - Type A&lt;/td&gt;
&lt;td&gt;340.51 MB/s&lt;/td&gt;
&lt;td&gt;307.02 MB/s&lt;/td&gt;
&lt;td&gt;166.63 MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;conclusions&quot;&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;Any digital storage device is only transferring files as fast as its receiving interface.&lt;/p&gt;
&lt;p&gt;The mix of USB generations, marketing terms, changing naming conventions and standards is confusing for general consumers. If you want to transfer files at high speeds, you need a particular type of cable or adapter and a host device (ex., computer) that will support the interface of the client device (ex., external HDD).&lt;/p&gt;
&lt;p&gt;In the testing tables, we can see that the speed of the benchmark test was limited by the USB bus speed of the port on which the device was connected. Even if a drive (ex., Samsung T7 SSD) has a USB 3.2 Gen2 device connection interface, the transfer speeds will be limited by the receiving devices hardware (ex., BAXIAL with USB 3.1 Gen1 ports, was slower than the speed of computers with USB 3.2 or USB4 ports).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; The benchmarks did test sequential read/write performance of the client devices (with their host devices), but didn&#39;t test sustained data transfer speeds. The longer (or more sustained) a data transfer the more heat and wear is generated. Real world performance is probably lower and more varied.&lt;/p&gt;
&lt;p&gt;To add to the gripes, in the case of SD cards, there aren&#39;t many UHS-II compatible SD card readers on the market. Similarly, there aren&#39;t many genuine USB4 devices. Unfortunately, you&#39;re required to look closely at advertised specifications and numbering schemes before buying a digital storage device or a reader.&lt;/p&gt;
&lt;p&gt;Anecdotally, we see that read and write speeds are similar across USB specifications and client devices. There are a few outliers, but transfer speeds stayed mostly stable even when connected to a hub device.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Self-hosting: Navidrome Music Server</title>
    <link href="https://theonlyblogever.com/blog/2026/localmusic.html" />
    <updated>2026-04-03T22:30:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/localmusic.html</id>
    <content type="html">&lt;p&gt;I&#39;ve heard about &lt;a href=&quot;https://www.navidrome.org/docs/getting-started/&quot;&gt;Navidrome&lt;/a&gt; for a long time, now. On a lark, I decided to spin up a docker container on &lt;code&gt;BAXIAL&lt;/code&gt; and try it out.&lt;/p&gt;
&lt;p&gt;I currently use YouTube Music while in the car to stream music. Locally, I sync my music folder on my laptop and desktop using &lt;a href=&quot;https://syncthing.net/&quot;&gt;Syncthing&lt;/a&gt; and listen with &lt;a href=&quot;https://www.strawberrymusicplayer.org/&quot;&gt;Strawberry&lt;/a&gt;. You could say I&#39;m replacing Spotify here, but I haven&#39;t used Spotify since 2020.&lt;/p&gt;
&lt;p&gt;Navidrome should allow music streaming anywhere (using Tailscale), keeping my listening self-hosted, while also giving me the modern comforts (like hands-free CarPlay support).&lt;/p&gt;
&lt;h2 id=&quot;install&quot;&gt;Install&lt;/h2&gt;
&lt;p&gt;Checking the &lt;a href=&quot;https://www.navidrome.org/docs/installation/docker/&quot;&gt;navidrome instructions&lt;/a&gt; for Docker here is my compose file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Create the docker-compose.yml file
nano docker-compose.yml

// Paste and edit the example compose

services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000 # should be owner of volumes
    ports:
      - &amp;quot;4533:4533&amp;quot;
    restart: unless-stopped
    volumes:
      - &amp;quot;/home/brendan/appdata/navidrome/data:/data&amp;quot;
      - &amp;quot;/media/BAXIAL/Music/bmusic:/music:ro&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I had to check ownership of the &lt;code&gt;/data&lt;/code&gt; folder.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Check ownership
ls -ld ~/appdata/navidrome/data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The folder was owned by &lt;code&gt;root&lt;/code&gt; and not my current user, &lt;code&gt;brendan&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Change ownership
sudo chown -R brendan:brendan ~/appdata/navidrome/data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I used &lt;code&gt;docker ps&lt;/code&gt; to ensure the container was running and checked the logs with &lt;code&gt;docker logs navidrome-navidrome-1&lt;/code&gt;. It was running and cataloguing my music. Having your music files well tagged and organized allows navidrome to scan your library more efficiently. Navidrome doesn&#39;t write to files. It cannot tag or modify your audio files because it had read-only access. I appreciate organizing my own music folder and files, so this was a perfect option for my existing collection.&lt;/p&gt;
&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;
&lt;p&gt;By default, Navidrome runs at port &lt;code&gt;4533&lt;/code&gt;. On my local network, I navigate to that port in a browser.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/mr0WCA76_N-1342.avif 1342w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/mr0WCA76_N-1342.webp 1342w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/mr0WCA76_N-1342.png&quot; alt=&quot;Navidrome interface screenshot&quot; width=&quot;1342&quot; height=&quot;852&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Navidrome admin user creation dialogue&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Create an admin user and you&#39;re dropped into the interface.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/hOHT84uTmJ-1366.avif 1366w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/hOHT84uTmJ-1366.webp 1366w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/hOHT84uTmJ-1366.png&quot; alt=&quot;Navidrome interface screenshot&quot; width=&quot;1366&quot; height=&quot;1245&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Navidrome default interface&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I added a regular user (for daily use) with less rights. I noticed that Navidrome was reporting the library folder as &lt;code&gt;377.19 GB&lt;/code&gt; with &lt;code&gt;37005 songs&lt;/code&gt; while &lt;a href=&quot;https://apps.gnome.org/Baobab/&quot;&gt;Disk Usage Analyser&lt;/a&gt; was reporting &lt;code&gt;460.7 GB&lt;/code&gt;. Then, &lt;a href=&quot;https://github.com/shundhammer/qdirstat&quot;&gt;QDirStat&lt;/a&gt; reported &lt;code&gt;429.1 GB&lt;/code&gt; and &lt;code&gt;426.8 GB&lt;/code&gt; in the statistics window, with the same number of songs. As a sanity check, this confirmed that I had all the songs in my &lt;code&gt;/bmusic&lt;/code&gt; folder scanned into Navidrome.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ElQ-XP0W2D-1173.avif 1173w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ElQ-XP0W2D-1173.webp 1173w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/ElQ-XP0W2D-1173.png&quot; alt=&quot;QDirStat File Type Statistics window&quot; width=&quot;1173&quot; height=&quot;529&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;QDirStat File Type Statistics window&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;configure&quot;&gt;Configure&lt;/h2&gt;
&lt;p&gt;Now, I could &lt;a href=&quot;https://www.navidrome.org/docs/usage/configuration/options/&quot;&gt;configure Navidrome&lt;/a&gt;. I needed to create a &lt;code&gt;navidrome.toml&lt;/code&gt; file to dig into advanced options. In the web interface, browsing to Settings &amp;gt;&amp;gt; Personal &amp;gt; Scrobble to ListenBrainz and pasted my API key. I did the same for the user account. I chose a theme and played some music!&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/4dsas7u-8G-1636.avif 1636w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/4dsas7u-8G-1636.webp 1636w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/4dsas7u-8G-1636.png&quot; alt=&quot;Navidrome web interface&quot; width=&quot;1636&quot; height=&quot;1301&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;external-access&quot;&gt;External Access&lt;/h2&gt;
&lt;p&gt;Local access to my media was great, but I already had local apps for playing my music. If navidrome was going to be useful, I needed to have access to my music library anywhere. That meant having an app on my smartphone to stream my music even when I&#39;m not at home.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lars-christian.com/notes/2025-12-08-trying-out-tailscale/&quot;&gt;Searching&lt;/a&gt; for a Tailscale solution, I discovered &lt;a href=&quot;https://github.com/tailscale-dev/ScaleTail/tree/main&quot;&gt;ScaleTail&lt;/a&gt;. A newer repo with configurations for running different container services through Tailscale. The spirit of the project is to only allow external access to, in this case, Navidrome, keeping the connection and traffic private and secure.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://github.com/tailscale-dev/ScaleTail/tree/main/services/navidrome&quot;&gt;config files&lt;/a&gt; were overwhelming at first glance. Alex at Tailscale made &lt;a href=&quot;https://www.youtube.com/watch?v=ZoEZ7oHA7Gg&quot;&gt;a video about ScaleTail&lt;/a&gt;. I followed the instructions in the video to configure the variables. It gets technical quickly, do not get discouraged. The only change I needed to make was to create an new directory for Tailscale with an &lt;code&gt;.env&lt;/code&gt; file for keys specific to my tailnet and the navidrome configuration.&lt;/p&gt;
&lt;p&gt;Truth time, I couldn&#39;t get it working. After trying to analyse the cryptic logs by running, &lt;code&gt;docker logs tailscale-navidrome&lt;/code&gt; and getting no connection to the container, either locally or through my tailnet, a frustration break was needed.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Navidrome is working locally on iOS with &lt;a href=&quot;https://nautiline.app/&quot;&gt;Nautiline&lt;/a&gt;. &lt;a href=&quot;https://apps.apple.com/ca/app/nautiline-opensubsonic-client/id6755918140&quot;&gt;Nautiline&lt;/a&gt; connects to the navidrome server and streams your music.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/CV-V77J6kK-370.avif 370w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/CV-V77J6kK-370.webp 370w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/CV-V77J6kK-370.jpeg&quot; alt=&quot;Screenshot of Natiline on iOS&quot; width=&quot;370&quot; height=&quot;800&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;To get Navidrome access using Tailscale, when not on my local network, I had two options. I could use sidecar (with the ScaleTail config) to expose only the navidrome service. Or, I could use &lt;a href=&quot;https://tailscale.com/docs/reference/tailscale-cli/serve&quot;&gt;tailscale serve&lt;/a&gt; to allow navidrome access through my tailnet.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Start tailscale serve
sudo tailscale serve --bg http://127.0.0.1:4533
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tailscale answered:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Available within your tailnet:

https://baxial.canine-lizard.ts.net/
|-- proxy http://127.0.0.1:4533

Serve started and running in the background.
To disable the proxy, run: tailscale serve --https=443 off
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Disbelieving that it could be this simple and user friendly, I connected to mobile data to test. Surprisingly, it just worked. Tailscale was proxying navidrome through my tailnet.&lt;/p&gt;
&lt;h2 id=&quot;friction&quot;&gt;Friction&lt;/h2&gt;
&lt;p&gt;It&#39;s not as simple as using a commercial solution. Self-hosting is about the tinkering and learning, but when you want a service to be plug-and-play reliable it can, sometimes, feel like a spit and duct tape experience. If I want to move seamlessly from home to the car, I&#39;ll need to use the setup for a few weeks.&lt;/p&gt;
&lt;p&gt;Daily use could be frustrating. Imagine needing to connect to Tailscale then to the proper navidrome server. Manually opening each app to switch network addresses every time I moved from my LAN to mobile. Creating an iOS shortcut to connect to Tailscale, open Nautiline and toggle play was my solution.&lt;/p&gt;
&lt;p&gt;Nautiline has a feature built-in allowing for network switching based on location and network SSID. I would still need to connect to Tailscale when away, but it should switch over to the correct URL automatically. It wasn&#39;t working at first. It was also freezing at times, becoming non-responsive for a few seconds, forcing me to quit and re-open the app. So, I posted to the subreddit. The developer replied that an update was in the works for the freezing issue for large libraries and that the network switching could be manually triggered by forcing the app to refresh by swiping down.&lt;/p&gt;
&lt;p&gt;Navidrome doesn&#39;t have an easy way to differentiate tracks or albums based on file format (ex., &lt;code&gt;MP3&lt;/code&gt; or &lt;code&gt;FLAC&lt;/code&gt;) or quality (ex., lossy or lossless). As a partial solution, the documentation suggests having separate libraries for lossy and lossless content. In the web interface, I can infer the format based on album file size and the albums separated by folder structure. However, in Nautiline I need to play the file to view detailed information. Nautiline lists the tracks together as one album, causing tracks to play as duplicates (the same track twice in a row). I would need two libraries.&lt;/p&gt;
&lt;p&gt;Nautiline is being well-developed with a &lt;a href=&quot;https://nautiline.app/changelog/&quot;&gt;changelog&lt;/a&gt; and an &lt;a href=&quot;https://old.reddit.com/r/NautilineApp/&quot;&gt;active subreddit&lt;/a&gt; where the developer is receptive.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;&lt;strong&gt;Apr 19, 2026:&lt;/strong&gt; I&#39;ve been using Nautline (iOS) and my Navidrome server daily through my tailnet. It&#39;s been working flawlessly, except when the database needs a few seconds to update on app launch.&lt;/p&gt;
&lt;p&gt;The experience has largely been a re-discovery of music. The same way it used to feel when hitting the &lt;code&gt;Shuffle Tracks&lt;/code&gt; button in the iPod 5.5g player. Since having my genres properly tagged, I usually pick a genre on shuffle and drive. It scrobbles straight to ListenBrainz (after listening to at least 50% of the track).&lt;/p&gt;
&lt;p&gt;I&#39;m hearing music in my head and singing myself the chorus lines throughout my days! I&#39;m truly getting excited about discovering new music and revisiting old favourites.&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Site Design is Fun</title>
    <link href="https://theonlyblogever.com/blog/2026/designthis.html" />
    <updated>2026-04-03T08:50:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/designthis.html</id>
    <content type="html">&lt;p&gt;After 6 hours of sleep, I awoke thinking about changing the site design and flow of information. I could not force myself back to a state of slumber until I had put these ideas down for a potential site refresh.&lt;/p&gt;
&lt;p&gt;Last week, I added a &lt;code&gt;hero&lt;/code&gt; image on the &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;&lt;code&gt;index.html&lt;/code&gt;&lt;/a&gt;. It&#39;s a picture I traced and coloured as vector art. The transparent gradient overlay and resizing title and tagline are all done in &lt;code&gt;CSS&lt;/code&gt;. The navigation &lt;code&gt;nav-title&lt;/code&gt; and &lt;code&gt;nav-links&lt;/code&gt; are now spanning the full width of the &lt;a href=&quot;https://css-tricks.com/fun-viewport-units/&quot;&gt;&lt;code&gt;viewport&lt;/code&gt;&lt;/a&gt; (or users browser window).&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FnO8Uj1cfh-1546.avif 1546w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/FnO8Uj1cfh-1546.webp 1546w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/FnO8Uj1cfh-1546.png&quot; alt=&quot;Image of last weeks site&quot; width=&quot;1546&quot; height=&quot;1112&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;theonlyblogever - March 2026&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It&#39;s based after that 2010&#39;s era full-width wordpress blog style. Something to trial and see how it looks: more visual, less minimal. I enjoy hacking and changing the site to see how it all looks. I read about and &lt;a href=&quot;https://www.geeksforgeeks.org/css/css-padding-vs-margin/&quot;&gt;consider&lt;/a&gt; the placement of different elements: colours, graphics, links and sections. I try and keep the site efficient and the code easy to understand and modify. As &lt;a href=&quot;https://daverupert.com/2026/01/my-2026-redesign/&quot;&gt;Dave Rupert&lt;/a&gt; says, &amp;quot;...exposes some insecurity I have, but I couldn&#39;t shake the idea...&amp;quot;. This recent design change lasted all of 3 days.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/sbV4yPkK9Z-1004.avif 1004w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/sbV4yPkK9Z-1004.webp 1004w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/sbV4yPkK9Z-1004.png&quot; alt=&quot;My current site April 2026&quot; width=&quot;1004&quot; height=&quot;830&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;theonlyblogever - April 2026&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Of course, I like these design concepts. We&#39;ve turned the site into a slightly classic, brutalist, newspaper-like design. The &lt;code&gt;.css&lt;/code&gt; has been &lt;a href=&quot;https://www.codestudy.net/blog/what-s-the-difference-between-all-unset-and-all-revert/&quot;&gt;refreshed&lt;/a&gt;. Fonts have been kerned and weighted. A new &lt;code&gt;CSS&lt;/code&gt; box layout is being tested with redesigned headers and footers. Also, &lt;em&gt;almost&lt;/em&gt; everything is left aligned for simplicity.&lt;/p&gt;
&lt;p&gt;We&#39;ve kept my love for black backgrounds and white text with green accents, that aesthetic has been around since 2003, when I made my first tripod site. Behold,&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/5mgzKcfbyW-1366.avif 1366w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/5mgzKcfbyW-1366.webp 1366w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/5mgzKcfbyW-1366.png&quot; alt=&quot;Image of Someones Cool Site&quot; width=&quot;1366&quot; height=&quot;1220&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;brendanscoolwebsite - September 2004&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Lost to time are other blogger sites over the years.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/JzKf6U3IIm-1141.avif 1141w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/JzKf6U3IIm-1141.webp 1141w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/JzKf6U3IIm-1141.png&quot; alt=&quot;Blogger.com homepage&quot; width=&quot;1141&quot; height=&quot;893&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;&lt;a href=&quot;http://Blogger.com&quot;&gt;Blogger.com&lt;/a&gt; homepage - February 2005&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I was always in awe of people who do front-end web design professionally. I always struggled to find reasons to write and produce content. I lacked confidence in my own ability. Now, I&#39;m enjoying the process often. And, I am going to continue writing and designing. Authoring text and rendering the text in a browser is still magical to me.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nyIzmwLI8a-1161.avif 1161w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nyIzmwLI8a-1161.webp 1161w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/nyIzmwLI8a-1161.png&quot; alt=&quot;theonlyblogever - Jan 2025&quot; width=&quot;1161&quot; height=&quot;1044&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Brendan&#39;s Technical Blog - January 2025&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/3rzVHLz_D4-1161.avif 1161w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/3rzVHLz_D4-1161.webp 1161w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/3rzVHLz_D4-1161.png&quot; alt=&quot;theonlyblogever - March 2025&quot; width=&quot;1161&quot; height=&quot;1193&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;theonlyblogever - March 2025&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The screenshots here are only a portion of the changes I’ve tested and tried. Having my entire live site available on my local machine means that changes can be viewed instantly.&lt;/p&gt;
&lt;p&gt;I’ve really enjoyed updating my skills by trying different stylistic elements. This site will continue to evolve as I grow and change. I hope to continue writing posts that I would want to read.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Tagging Music with MusicBrainz and beets</title>
    <link href="https://theonlyblogever.com/blog/2026/beettags.html" />
    <updated>2026-04-01T23:28:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/beettags.html</id>
    <content type="html">&lt;p&gt;I enjoy tagging and organizing my music collection. Transferring music to a portable player, a new device, a USB drive or a compact disk, I want the &lt;a href=&quot;https://en.wikipedia.org/wiki/ID3&quot;&gt;ID3 tags&lt;/a&gt; to be &lt;a href=&quot;https://id3.org/&quot;&gt;consistent&lt;/a&gt; and to properly identify the files. As for audio formats, most modern devices play .&lt;code&gt;mp3&lt;/code&gt; and &lt;code&gt;.flac&lt;/code&gt; which covers most use cases.&lt;/p&gt;
&lt;p&gt;I used to search for the proper album titles and artists manually. In the early 2000&#39;s, I used Apple&#39;s iTunes to manage and play music. I remember wanting my iPod 4G to display artist and album names properly and to have correct genre tags and original release years. Later, I would also want to have correct and higher resolution cover art to display on colour screens, including the iPod Video and, later, car infotainment displays. After many different software solutions and organizational shifts, here is my current workflow.&lt;/p&gt;
&lt;h2 id=&quot;musicbrainz&quot;&gt;MusicBrainz&lt;/h2&gt;
&lt;p&gt;These days, I use &lt;a href=&quot;https://picard-docs.musicbrainz.org/v2.13/en/about_picard/introduction.html&quot;&gt;MusicBrainz Picard&lt;/a&gt; to tag all music that I rip onto my computer and to have it organized and tagged correctly based on the release and format.&lt;/p&gt;
&lt;p&gt;I use the following &lt;a href=&quot;https://picard-docs.musicbrainz.org/v2.13/en/config/options_filerenaming_editor.html&quot;&gt;naming script&lt;/a&gt; to sort and tag my collected albums.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/mv04njbBZy-1612.avif 1612w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/mv04njbBZy-1612.webp 1612w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/mv04njbBZy-1612.png&quot; alt=&quot;Screenshot of MusicBrainz Settings&quot; width=&quot;1612&quot; height=&quot;1438&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$if2(%albumartist%,%artist%)/$if2(%albumartist%,%artist%) - %originalyear% - $if(%albumartist%,%album%) [%_extension%]/
$if($gt(%totaldiscs%,1),$if($gt(%totaldiscs%,9),$num(%discnumber%,2),%discnumber%)-,)$if($and(%albumartist%,%tracknumber%),$num(%tracknumber%,2) ,)$if(%_multiartist%,%artist% - ,)%title%
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This script creates a resulting folder structure:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Artist (or Various) /
Artist - Original Year - Album - [Audio Format] /
Track Number - Song Title
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The original release year (in the folder name) before the album title keeps the folder listings organised in the file manager. It&#39;s also an easier identifier for transferring files. It&#39;s a reminder of the albums based on their release dates (section of an artist&#39;s career) making it easy to select the folder for transfer to a portable device.&lt;/p&gt;
&lt;p&gt;Having the format of the audio file in the folder name separates &lt;code&gt;flac&lt;/code&gt; from &lt;code&gt;mp3&lt;/code&gt; and &lt;code&gt;aac&lt;/code&gt;. It allows for transferring files to other devices based on format for space saving.&lt;/p&gt;
&lt;p&gt;I also move any image or text files by adding these file extensions to the &lt;em&gt;Move additional files&lt;/em&gt; box. This includes,&lt;code&gt;*.jpg&lt;/code&gt; &lt;code&gt;*.png&lt;/code&gt; &lt;code&gt;*.m3u&lt;/code&gt; &lt;code&gt;*.bin&lt;/code&gt; &lt;code&gt;*.cue&lt;/code&gt; &lt;code&gt;*.txt&lt;/code&gt; &lt;code&gt;*.webm&lt;/code&gt; &lt;code&gt;*.pdf&lt;/code&gt; &lt;code&gt;*.nfo&lt;/code&gt; &lt;code&gt;*.jpeg&lt;/code&gt;, and &lt;code&gt;*.png&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;beets&quot;&gt;Beets&lt;/h2&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;Beets is a &lt;a href=&quot;https://beets.readthedocs.io/en/stable/reference/cli.html&quot;&gt;CLI, command-line program&lt;/a&gt;. It has a lot of &lt;a href=&quot;https://beets.readthedocs.io/en/stable/reference/config.html&quot;&gt;configuration options&lt;/a&gt;. If you do not configure the program it will mess-up your files. Test &lt;code&gt;beets&lt;/code&gt; on a copied subset of your audio files before letting it edit original files.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;I use &lt;a href=&quot;https://beets.readthedocs.io/&quot;&gt;beets&lt;/a&gt; to apply genre tags using the &lt;a href=&quot;https://beets.readthedocs.io/en/stable/plugins/lastgenre.html&quot;&gt;lastgenre&lt;/a&gt; plugin. MusicBrainz will often apply obscure tags, making music difficult to select by genre. Instead, &lt;code&gt;beets&lt;/code&gt; uses data from &lt;a href=&quot;http://last.fm&quot;&gt;last.fm&lt;/a&gt;, as &lt;a href=&quot;https://theonlyblogever.com/blog/2026/scrobbling-hell.html&quot;&gt;discussed before&lt;/a&gt; and chooses the most popular genre tag to replace the files current (or non-existant) genre tag. This harmonizes genre tags in my library when looking to sort and play music based on genre.&lt;/p&gt;
&lt;p&gt;My current config is below,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;beets config
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;// Location: /home/brendan/.config/beets/config.yaml

directory: ~/Music/bmusic
library: ~/Music/beets/data/musiclibrary.db
import:
    copy: no
    write: no
plugins: lastgenre
lastgenre:
    auto: yes
    write: yes
    force: yes
    count: 1
    prefer_specific: yes
    source: album
    min_weight: 8
    keep_existing: yes
    canonical: no
    whitelist: no
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When I want to import and use &lt;a href=&quot;https://beets.readthedocs.io/en/stable/plugins/lastgenre.html&quot;&gt;lastgenre&lt;/a&gt; on new additions to my music library, I use the following commands.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Importing new music files into beets database
beet import --noautotag ~/Music/bmusic

// Find and add genre tags in database
beet lastgenre ~/Music/bmusic/

// Write genre tags to files
beet write ~/Music/bmusic/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;lastgenre&lt;/code&gt; plugin then goes through each album (or each folder) and adds and updates genre tags. Looking at my config above, I&#39;ve noted that I want only &lt;code&gt;1&lt;/code&gt; genre applied to each album with a weight of &lt;code&gt;8&lt;/code&gt;. As &lt;code&gt;lastgenre&lt;/code&gt; is working, it will list each album and the genres changed.&lt;/p&gt;
&lt;p&gt;Once we tell &lt;code&gt;beet&lt;/code&gt; to &lt;code&gt;write&lt;/code&gt;, the genre tags get overwritten with the newly found genres.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1H6UjM8dIJ-1064.avif 1064w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/1H6UjM8dIJ-1064.webp 1064w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/1H6UjM8dIJ-1064.png&quot; alt=&quot;Beets lastgenre screenshot in terminal window&quot; width=&quot;1064&quot; height=&quot;676&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Running &lt;code&gt;beets stats&lt;/code&gt; on my imported library I see, the current statistics of the files imported into beets.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Tracks: 36959
Total time: 12.5 weeks

Approximate total size: 424.7 GiB
Artists: 2488
Albums: 3058
Album artists: 1062
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As we&#39;re only using &lt;code&gt;lastgenre&lt;/code&gt;, we&#39;ve barely explored what &lt;code&gt;beets&lt;/code&gt; can achieve. In my case, I have lots of complication albums (ex., EP&#39;s, splits) where each track is a different genre. I run &lt;code&gt;beets&lt;/code&gt; only on the &lt;code&gt;Various Artists&lt;/code&gt; folder, changing my configuration to &lt;code&gt;source: track&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Reading through the documentation you can find lots of options to tryout.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Ma voix, mon choix</title>
    <link href="https://theonlyblogever.com/blog/2026/monchoix.html" />
    <updated>2026-03-30T09:45:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/monchoix.html</id>
    <content type="html">&lt;p&gt;Voici un commentaire récent que j&#39;ai affiché sur le site de &lt;a href=&quot;https://brennan.day/&quot;&gt;brennan.day&lt;/a&gt; en réponse à ma lecture de son &lt;a href=&quot;https://brennan.day/et-maintenant-quelque-chose-de-completement-different/&quot;&gt;article de blogue&lt;/a&gt; qu&#39;il a rédigé en français.&lt;/p&gt;
&lt;p&gt;Le commentaire ci-dessous est dans son format original. C&#39;est un lien extratextuel (à un &lt;a href=&quot;https://brennan.day/et-maintenant-quelque-chose-de-completement-different/&quot;&gt;œuvre externe&lt;/a&gt;).&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;Moi, j&#39;ai appris le français aussi de ma grand-mère et à l&#39;école primaire. Je suis Franco-ontarien. Je suis anglophone d&#39;origine. Une partie de ma famille était francophone, mais une fois immigrée au Canada, en milieu anglophone, ils ont perdu leur langue.&lt;/p&gt;
&lt;p&gt;J&#39;écris presque uniquement en anglais pour mon blogue. Je me dis souvent que je devrais aussi écrire en français. Je trouve qu&#39;en écrivant et en lisant en français, que j&#39;active une autre partie de mon cerveau et que je pense différemment. Mais bon, qui sait.&lt;/p&gt;
&lt;p&gt;L&#39;insécurité linguistique surtout vivant en milieu anglophone (au Canada) n&#39;est pas hors commun. C&#39;est ce sentiment qui fait que nous nous cachons. Même si notre français parlé (ou écrit) n&#39;est pas d&#39;une qualité incroyable, ou que nous avons des lacunes, ou un accent différent, nous avons le droit de nous afficher avec fierté. J&#39;espère que vous allez continuer de vous exercer à écrire en français. Nous pourrions bénéficier d&#39;une communauté de blogueurs franco-canadiens en milieu minoritaire!&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;mes-episodes&quot;&gt;Mes épisodes&lt;/h2&gt;
&lt;p&gt;J&#39;aimerais faire quelques ajouts à mon commentaire ci-dessus.&lt;/p&gt;
&lt;p&gt;Une fois pour tous &lt;span class=&quot;emphasis-box&quot;&gt;je m&#39;affiche en français, je suis entièrement geek, mordu d&#39;informatique, futuriste et technophile&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;D&#39;un côté, je n&#39;affiche pas mon identité franco-canadienne en ligne. En gros, c&#39;est parce que ma deuxième langue est rattachée à mes capacités professionnelles. J&#39;ai toujours été fier de pouvoir parler et écrire dans mes deux langues. Mais, j&#39;ai toujours ressenti une insécurité linguistique en français. En parlant (et en écrivant), si je cherche mes mots ou si je ne suis par certains de la tournure de phrase juste, je me tue.&lt;/p&gt;
&lt;p&gt;De l&#39;autre, ce site reflète surtout ma vie technologique personnelle. Mes intérêts en informatique : systèmes d&#39;exploitation, codage web, design, blogues et matériel informatique se passent en anglais. Ce sont des domaines anglos pour moi.&lt;/p&gt;
&lt;h2 id=&quot;un-defi&quot;&gt;Un défi&lt;/h2&gt;
&lt;p&gt;Ceci est mon blogue. C&#39;est un catalogue de mes intérêts dans le temps. En utilisant ce forum, je partagerai mes pensées et mes nouvelles dans le format et dans la langue de mon choix.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/F6CUU_i8uq-1308.avif 1308w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/F6CUU_i8uq-1308.webp 1308w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/F6CUU_i8uq-1308.png&quot; alt=&quot;Drapeau glitch franco-ontarien&quot; width=&quot;1308&quot; height=&quot;785&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>20 Year Anniversary: iBook G4</title>
    <link href="https://theonlyblogever.com/blog/2026/ibookg4.html" />
    <updated>2026-03-26T11:59:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/ibookg4.html</id>
    <content type="html">&lt;p&gt;An ordinary day becomes a retro day. According to the &lt;a href=&quot;https://www.applefritter.com/&quot;&gt;applefritter&lt;/a&gt; forums and Jeff Geerling, it&#39;s &lt;a href=&quot;https://marchintosh.com/&quot;&gt;Marchintosh&lt;/a&gt;. Might as well restore my 20 year-old &lt;a href=&quot;https://everymac.com/systems/apple/ibook/specs/ibook_g4_1.33_12.html&quot;&gt;Apple iBook G4&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KnlfW9FCbN-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KnlfW9FCbN-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/KnlfW9FCbN-1616.jpeg&quot; alt=&quot;Image of my stickerbombed iBook G4&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Caption: My stickerbombed iBook G4 (1.33 GHz, 2005)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I received this iBook notebook on Christmas of 2005. I was a young teenager. I already had an iPod 4G (30 GB) and had seen the iBook featured on TechTV: the stars of &lt;a href=&quot;https://archive.org/details/screensavers2004&quot;&gt;The Screen Savers&lt;/a&gt; used this machine. Besides, years earlier, I had witnessed a radio producer run the audio out of an iBook G3 into a mixer during a live broadcast. I had never before recognized that computers could be used in media production.&lt;/p&gt;
&lt;p&gt;Bloggers of the era would review the laptop as being portable, great for multimedia, and a good choice for students. I would imagine myself traveling the world with my trusty companion by my side. Maybe, I&#39;d be a technology journalist in a big city darting in and out of boardrooms to get my next big scoop. Needless to say, I was hooked by the marketing.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/UXUN1zZn0W-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/UXUN1zZn0W-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/UXUN1zZn0W-1616.jpeg&quot; alt=&quot;Image of iBook G4&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;historical-context&quot;&gt;Historical Context&lt;/h2&gt;
&lt;p&gt;In the early 2000&#39;s, laptops were still mostly for business people. Heavy black bricks bought under service contracts and dolled-out to salespeople, executives, or technicians, to force them to continue working after-hours or while travelling.&lt;/p&gt;
&lt;p&gt;Normal users didn&#39;t have personal laptops. Geeks might have had an off-lease Dell, HP or ThinkPad, using it with the knowledge that it would never replace their prized desktop computers under their desks at home.&lt;/p&gt;
&lt;p&gt;Laptop performance would (of course) never match what a desktop could accomplish: the processors were too &lt;a href=&quot;https://512pixels.net/2024/12/2005-the-end-of-the-macs-powerpc-era/&quot;&gt;hot&lt;/a&gt;, used too much energy, and were slower; the amount of memory (RAM) would never be useful for more demanding workloads; the displays were dimmer and useless outdoors; and, the battery life was a few hours at best. Plus, wireless Internet was in its infancy and reliable mobile data was still a pipe dream. Carrying a long power cord and staying tethered with Ethernet were the best options for staying connected.&lt;/p&gt;
&lt;p&gt;The iBook G4 (12&amp;quot;, 1.33 GHz, 2005) was one of the last of the PowerPC manufactured laptops before Apple&#39;s switch to Intel processors. The announcement of &lt;a href=&quot;https://old.reddit.com/r/mac/comments/1bamwv6/what_was_the_switch_from_powerpc_to_intel_like/&quot;&gt;the switch&lt;/a&gt;, from PowerPC to Intel, had already been made the previous spring. I figured I would wait for the &lt;a href=&quot;https://en.wikipedia.org/wiki/PowerPC_G4&quot;&gt;PPC hardware&lt;/a&gt; to be discounted.&lt;/p&gt;
&lt;p&gt;Steve&#39;s &lt;a href=&quot;https://www.folklore.org/Reality_Distortion_Field.html&quot;&gt;reality distortion field&lt;/a&gt; was &lt;a href=&quot;https://gavinlucas22.medium.com/steve-jobs-reality-distortion-field-explained-5ac3c8e5f992&quot;&gt;brainwashing&lt;/a&gt; us into &lt;a href=&quot;https://www.playforthoughts.com/blog/steve-jobs-reality-distortion-field&quot;&gt;believing&lt;/a&gt; that the PowerPC platform was &lt;a href=&quot;https://forums.macrumors.com/threads/powerpc-g4-performance-against-rivals.1550534/&quot;&gt;just as capable&lt;/a&gt; as Intel. Some Apple fans, same as always, championed that &amp;quot;Apple hardware ran  on Apple&#39;s software&amp;quot;. Meaning, the development teams could create integrated platforms more efficient and user friendly than the x86 WinPC vendors. Once Mac OS X on Intel was released, this was proven to be false. x86 machines were faster and ran more efficiently.&lt;/p&gt;
&lt;h2 id=&quot;restoring-os-x&quot;&gt;Restoring OS X&lt;/h2&gt;
&lt;p&gt;My iBook shipped with OS X 10.4 Tiger (the precursor to macOS) from 2005. I would upgrade to OS X 10.5 Leopard after its release. It was the final version supported by Apple. For this retrospective, I wanted to get the laptop back to it&#39;s original state.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/xjmAW_ZdhP-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/xjmAW_ZdhP-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/xjmAW_ZdhP-1616.jpeg&quot; alt=&quot;Drive launch screen of iBook G4&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;step-1&quot;&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Holding down the &lt;em&gt;option (alt)&lt;/em&gt; key led me to boot from an install DVD or run the Apple Hardware Test. The fan in the machine was making a crunky sound and disk drive made lots of noise, I decided to run the test.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/XnC4-pdVnK-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/XnC4-pdVnK-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/XnC4-pdVnK-1616.jpeg&quot; alt=&quot;Image of iBook G4 running Apple Hardware Test&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/dOZ9Ik3na4-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/dOZ9Ik3na4-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/dOZ9Ik3na4-1616.jpeg&quot; alt=&quot;Loading screen for Apple Hardware Test&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/pwfee7M2jE-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/pwfee7M2jE-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/pwfee7M2jE-1616.jpeg&quot; alt=&quot;Apple Hardware Test Screen Success&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;step-2&quot;&gt;Step 2&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EKmTArbQVp-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EKmTArbQVp-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/EKmTArbQVp-1616.jpeg&quot; alt=&quot;Welcome to Mac OS X Installer&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The &#39;37.7 GB&#39; IDE hard disk drive was formatted for &#39;ext4&#39; for Linux. I must have installed Lubuntu at some point. I inserted the OS X install disk again and booted the machine. Once into the installer environment, I could open Disk Utility by going up to the menubar and selecting Utilities &amp;gt; Disk Utility.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/LG6vEHNiSz-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/LG6vEHNiSz-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/LG6vEHNiSz-1616.jpeg&quot; alt=&quot;Image of iBook formatting the HDD&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I erased and formatted the disk to Mac OS X Journalled and then began the installation process.&lt;/p&gt;
&lt;h3 id=&quot;step-3&quot;&gt;Step 3&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/sfycBxjNij-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/sfycBxjNij-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/sfycBxjNij-1616.jpeg&quot; alt=&quot;Image of iBook OSX Installation&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The installation began by asking me to select the install media and then checking the installation DVD. This took at least 20 minutes.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/u0_-jbCscL-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/u0_-jbCscL-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/u0_-jbCscL-1616.jpeg&quot; alt=&quot;Image of iBook checking install DVD&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;step-4&quot;&gt;Step 4&lt;/h3&gt;
&lt;p&gt;Installing the OS X 10.4 operating system was fairly painless albeit slow. The 40 GB hard drive was chugging along as the ComboDrive™ was making seek sounds as it spun. It took a long time to install all the language packages (lots of archive extraction).&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/f48ylaesBO-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/f48ylaesBO-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/f48ylaesBO-1616.jpeg&quot; alt=&quot;Installing Mac OS X 10.4&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I should &lt;a href=&quot;https://old.reddit.com/r/VintageApple/comments/1614fsd/upgraded_my_pb_g4_12_with_a_msata_ssd_msata_to/&quot;&gt;replace&lt;/a&gt; the &lt;a href=&quot;https://old.reddit.com/r/VintageApple/comments/lgn4jt/update_ibook_g4_ssd_upgrade_and_os_installation/&quot;&gt;PATA/IDE hard drive&lt;/a&gt; with &lt;a href=&quot;https://www.hckrnws.com/stories/39890494&quot;&gt;an SSD&lt;/a&gt;. The &lt;a href=&quot;https://www.ifixit.com/Guide/iBook+G4+12-Inch+1.33+GHz+Hard+Drive+Replacement/703&quot;&gt;ifixit guide&lt;/a&gt; makes it look easy!&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;Tip: Pressing &lt;code&gt;Command ⌘ L&lt;/code&gt; during installation opens an Installer Log window with detailed progress information.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/J1z3MEbcIw-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/J1z3MEbcIw-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/J1z3MEbcIw-1616.jpeg&quot; alt=&quot;iBook with Installer Log Application&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;According to the log, the install duration was &lt;code&gt;1673.828042 seconds to successfully install &amp;quot;Max OS X&amp;quot; (49 pkg(s))&lt;/code&gt;. That&#39;s almost 28 minutes. It took over an hour.&lt;/p&gt;
&lt;h3 id=&quot;step-5&quot;&gt;Step 5&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/uCeCB1pV2N-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/uCeCB1pV2N-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/uCeCB1pV2N-1616.jpeg&quot; alt=&quot;Restart screen Install Mac OS X&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;As every geek knows, a restart was required to continue installation. Once restarted, the installer asked for Disk 2. It&#39;s the iLife &#39;05 (iMovie, iPhoto, iDVD and GarageBand) and iWork (Keynote and Pages) software packages. The installer failed a few times and automatically restarted the install process. It seemed to have an issue reading the disk. After cleaning and reinserting the disk, the install proceeded. I wonder if the mechanical parts inside the ComboDrive™ are failing.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/j4ySWXXbkK-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/j4ySWXXbkK-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/j4ySWXXbkK-1616.jpeg&quot; alt=&quot;iBook installing Disk 2 of OSX 10.4&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;step-6&quot;&gt;Step 6&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/BXb0oODzvt-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/BXb0oODzvt-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/BXb0oODzvt-1616.jpeg&quot; alt=&quot;OS X Tiger Welcome screen&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;On first boot, I was greeted with the OS X welcome video complete with music. I selected my country and keyboard layout, configured the Internet connection and created a user account.&lt;/p&gt;
&lt;p&gt;To take screenshots on OS X 10.4 hit &lt;code&gt;Command ⌘ + Shift + 3&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Yay screenshots!&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/cQHQbJ5i6W-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/cQHQbJ5i6W-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/cQHQbJ5i6W-1024.png&quot; alt=&quot;Screenshot of OS X 10.4 Desktop&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/fC-GAyzRIF-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/fC-GAyzRIF-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/fC-GAyzRIF-1024.png&quot; alt=&quot;Screenshot About This Mac&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;step-7&quot;&gt;Step 7&lt;/h3&gt;
&lt;p&gt;That&#39;s better, graphite theme!&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/K-18unJH5P-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/K-18unJH5P-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/K-18unJH5P-1024.png&quot; alt=&quot;Screenshot of OS X Tiger Graphite theme&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;step-8&quot;&gt;Step 8&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/wJkToGV-bn-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/wJkToGV-bn-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/wJkToGV-bn-1024.png&quot; alt=&quot;OS X Dashboard with Widgets&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Dashboard and Spotlight were battery killers on iBooks. I wanted to disable them to speed-up the machine. A &lt;a href=&quot;https://osxdaily.com/2007/03/22/how-to-completely-disable-spotlight/&quot;&gt;quick search&lt;/a&gt; reminded me of these &lt;a href=&quot;https://www.macworld.com/article/176530/disabledashboard.html&quot;&gt;incantations&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;disable-and-remove-spotlight&quot;&gt;Disable and remove Spotlight&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Launch the terminal
sudo nano /etc/hostconfig

// change the value
SPOTLIGHT=-YES- to SPOTLIGHT=-NO-

// disable Spotlight indexing
sudo mdutil -i off /

// Erase the current index file
sudo mdutil -E /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EHZmLc_-oq-526.avif 526w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EHZmLc_-oq-526.webp 526w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/EHZmLc_-oq-526.png&quot; alt=&quot;Screenshot of Terminal OSX&quot; width=&quot;526&quot; height=&quot;394&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h4 id=&quot;disable-dashboard&quot;&gt;Disable Dashboard&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Launch the terminal
defaults write com.apple.dashboard mcx-disabled -boolean YES

//restart the Dock application
killall Dock
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;step-9&quot;&gt;Step 9&lt;/h3&gt;
&lt;p&gt;I wanted to update the OS X 10.4.2 software to 10.4.11. It was the last version of OS X 10.4 Tiger.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Nrtk-qRSdx-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Nrtk-qRSdx-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Nrtk-qRSdx-1024.png&quot; alt=&quot;OSX Network Diagnostics&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I couldn&#39;t get a network connection working. Apple&#39;s &lt;a href=&quot;https://support.apple.com/en-us/106535&quot;&gt;support site&lt;/a&gt; still has the 10.4.11 combo updater available for download. I transferred it to a USB 2.0 thumb drive along with the &lt;a href=&quot;https://blackbirdlc.github.io/aquafox/Homepage.html&quot;&gt;Aquafox browser&lt;/a&gt; for modern web support.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/t9VAiRsSlJ-645.avif 645w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/t9VAiRsSlJ-645.webp 645w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/t9VAiRsSlJ-645.png&quot; alt=&quot;Screenshot of OS X 10.4.11 Combo PPC Update&quot; width=&quot;645&quot; height=&quot;469&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/HhEcsugYmL-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/HhEcsugYmL-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/HhEcsugYmL-1024.png&quot; alt=&quot;Aquafox browser for 10.4.9 OS X&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;issues&quot;&gt;Issues&lt;/h2&gt;
&lt;p&gt;This machine is noticeably slow. The mouse cursor jumps around, the visual effects stutter, and when typing, letters are less than instantaneous to appear on screen.&lt;/p&gt;
&lt;p&gt;The iBook runs hot to the touch. It will benefit from a repaste and a cleaning at some point. It has a few stripped screws and some cracks from use. There&#39;s a slight burn-in (or backlight) issue at the bottom of the display. Considering its age, not terrible issues.&lt;/p&gt;
&lt;h2 id=&quot;more-aqua-themed-screenshots&quot;&gt;More Aqua Themed Screenshots&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/o-u3DcVRsY-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/o-u3DcVRsY-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/o-u3DcVRsY-1024.png&quot; alt=&quot;Screenshot of Mac OS X 10.4 Tiger&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/__s6jfIL23-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/__s6jfIL23-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/__s6jfIL23-1024.png&quot; alt=&quot;Screenshot of Mac OS X 10.4 Tiger&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EExyuY4aHJ-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/EExyuY4aHJ-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/EExyuY4aHJ-1024.png&quot; alt=&quot;Screenshot of Mac OS X 10.4 Tiger&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6gA14nzhXE-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6gA14nzhXE-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/6gA14nzhXE-1024.png&quot; alt=&quot;Screenshot of Mac OS X 10.4 Tiger&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/XCZymvHUy_-1024.avif 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/XCZymvHUy_-1024.webp 1024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/XCZymvHUy_-1024.png&quot; alt=&quot;Screenshot of Mac OS X 10.4 Tiger&quot; width=&quot;1024&quot; height=&quot;768&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;&lt;u&gt;PSA:&lt;/u&gt; the battery was very hot after the laptop was plugged into an outlet for a few hours. There was a faint burnt plastic smell. Please be careful with old electronics that have lithium battery cells. If it gets hot to the touch or smells odd, remove it from the machine (if possible) and dispose of it properly.&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>It is not &quot;harder to achieve&quot; though!</title>
    <link href="https://theonlyblogever.com/blog/2026/dumpai.html" />
    <updated>2026-03-19T23:45:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/dumpai.html</id>
    <content type="html">&lt;p&gt;Just hearing about the &lt;a href=&quot;https://podcastindex.org/podcast/7005619&quot;&gt;layoffs and shutdown&lt;/a&gt; surrounding &lt;a href=&quot;https://www.engadget.com/social-media/digg-shuts-down-for-a-hard-reset-because-it-was-flooded-with-bots-153848094.html&quot;&gt;Digg&lt;/a&gt;. Here&#39;s the thing though. You want to make a quality news aggregator for geeks? Digg v1.0 already did that. It had a &lt;a href=&quot;https://www.theguardian.com/technology/2008/jun/12/interviews.internet&quot;&gt;community&lt;/a&gt; that made it wonderful. Twenty years ago, it was a main page full of links from around the Internet. Yes, it had issues with &lt;a href=&quot;https://www.nbcnews.com/id/wbna17033548&quot;&gt;content moderation&lt;/a&gt;. Yes, it had critics and design issues. Yes, nefarious users and bots influenced links (stories). But, it was about sharing interesting links.&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;I am not sure I like this article. It was spit out in a late-night, last-minute flurry of noticing the video title of the podcast on yt.&lt;br&gt;
Take it with buckets of salt.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;In 2004, I had heard about digg from a comment Kevin Rose made on TechTV. Of course, as a fan of TechTV, and a reader of &lt;a href=&quot;https://tech.slashdot.org/story/26/03/13/1953248/digg-relaunch-fails#comments&quot;&gt;slashdot&lt;/a&gt;, I started using digg. Billed as a social news aggregator: a way to find all the best stories. A community-filtered news site containing listings of articles: It was pre-reddit and pre-hackernews. For a young teenage nerd, it was a way to feel connected to a larger Internet and to interests my meat-space friends didn&#39;t hold.&lt;/p&gt;
&lt;p&gt;Before logging onto digg, I had been a reader of slashdot. It was the only place I knew of, at the time, to discuss tech.&lt;/p&gt;
&lt;p&gt;According to the wayback machine, I joined digg on July 4, 2005. My user name was &lt;code&gt;steal_apps01&lt;/code&gt;. Clearly, I had my priorities well aligned. It must have been around the launch of digg v2. By March of 2008, I had dugg 4,477 stories, made 635 comments (lost to time) and submitted 6 links. I don&#39;t have records of any of this activity. I do remember, around this time, I began using reddit exclusively.&lt;/p&gt;
&lt;p&gt;Earlier in 2025, they tried to soft-relaunch the project. Using vibe-coding, AI agents, and AI driven filtering, they tried to recreate the structure and feel of the site from a lost era. Claiming that AI coding and AI agents would help create a new type of social news service. Clearly, it did not work. It was not organic. It was, admittedly, a sloppy, rushed attempt to capture a user-base and sell their memories of using Web 2.0™ back to them.&lt;/p&gt;
&lt;p&gt;&amp;quot;Just vibe code it and sell ads on top!&amp;quot; It&#39;s just a playground: &amp;quot;Let&#39;s play!&amp;quot; Now, the ai disclaimers melt away. If I want to use an &lt;a href=&quot;https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/&quot;&gt;operating system&lt;/a&gt; or a &lt;a href=&quot;https://blog.mozilla.org/en/firefox/ai-controls/&quot;&gt;browser&lt;/a&gt;. I need to check their &lt;a href=&quot;https://www.theregister.com/2025/10/23/fedora_agrees_policy_allowing_ai_assisted_code_contribs/&quot;&gt;stance&lt;/a&gt; on the technology. We do not know where the human ends and the artificial begins. &lt;span class=&quot;emphasis-box&quot;&gt;The parasite is eating its host.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/jUWwBxSfYF-889.avif 889w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/jUWwBxSfYF-889.webp 889w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/jUWwBxSfYF-889.png&quot; alt=&quot;Screenshot of Firefox AI toggle settings page&quot; width=&quot;889&quot; height=&quot;475&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Geeks, nerds, and everyone else can already aggregate their own content &lt;em&gt;(rss readers, ftw)&lt;/em&gt; or use one of the many alternatives (ex., &lt;a href=&quot;https://lobste.rs/&quot;&gt;lobste.rs&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;hn&lt;/a&gt;, &lt;a href=&quot;https://lemmy.world/&quot;&gt;lemmy.world&lt;/a&gt;. Unfortunately, subreddits are still around with users posting links and text-posts.&lt;/p&gt;
&lt;h2 id=&quot;dont-do-it&quot;&gt;Don&#39;t do it&lt;/h2&gt;
&lt;p&gt;This did not work. I have to admit, at first, I was excited to see &lt;a href=&quot;https://podcastindex.org/podcast/7005619&quot;&gt;Diggnation&lt;/a&gt; re-emerge as a podcast. Two of my favourite early IPTV personalities, Alex and Kevin, discussing tech in their laid-back fashion. But, I&#39;ve changed. I&#39;m older now. Besides, the re-launched site was bug-laden and the sign-in process was friction-filled. I wasn&#39;t interested.&lt;/p&gt;
&lt;p&gt;I&#39;m so used to using &lt;a href=&quot;https://newsboat.org/&quot;&gt;newsboat&lt;/a&gt; and surfing personal blogs. Maybe, it&#39;s time to update my &lt;a href=&quot;https://theonlyblogever.com/blogroll&quot;&gt;/blogroll&lt;/a&gt; to help others discover the creative people I admire and enjoy reading online. One way to stop the stream of slop is to curate your own collection. Bloom your own digital garden. Keep the sites that contain interesting, thought-provoking and heartfelt content. Ditch the rest of the sludge. Make your own future.&lt;/p&gt;
&lt;p&gt;Maybe, that&#39;s the lesson in all of this: I&#39;m changing too.&lt;/p&gt;
&lt;p&gt;In the first-world, it can feel as if we have anxiety inducing amounts of options. The bright lights of late-stage capitalism are ushering in a new future.&lt;/p&gt;
&lt;p&gt;A new gadget for every era of retro-tech nostalgia. For example, creators and influencers pushing products to stream the Internet into every space. It could a laptop, IoT devices or satellite Internet dishes. Anything to keep the constant stream of the new web. Until, you&#39;re too addicted to shut off the noise.&lt;/p&gt;
&lt;h1 id=&quot;sm0lw3b&quot;&gt;sm0lw3b&lt;/h1&gt;
&lt;p&gt;The small web has already solved these problems. Empowering people using the Internet to discover their own micro-cultures and niches. We&#39;ve has the ability to &lt;em&gt;surf the net&lt;/em&gt; and hyperlink each other for decades. It allows connections. Basic connections that will continue to work. As long as net neutrality continues to be respected.&lt;/p&gt;
&lt;p&gt;The same static content that could be served over 30 years ago is still valid today. The raw &lt;code&gt;HTML&lt;/code&gt; code on &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;this&lt;/a&gt; website, for instance, can be viewed without most of its &lt;code&gt;CSS&lt;/code&gt; styles applied using a browser like &lt;a href=&quot;https://dillo-browser.org/&quot;&gt;dillo&lt;/a&gt;. No cross-site-scripting, no AI-generated text (unless clearly marked), no javascript and no tracking on this site.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TT6aD6ARBM-1000.avif 1000w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TT6aD6ARBM-1000.webp 1000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/TT6aD6ARBM-1000.png&quot; alt=&quot;Recreated Logo of Trackanon from Man Seeking Woman&quot; width=&quot;1000&quot; height=&quot;1000&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Figure: Recreated Logo of Trackanon from Man Seeking Woman S01E10&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Xbox (OG) Softmodding &amp; Gaming in 2026</title>
    <link href="https://theonlyblogever.com/blog/2026/ogxbox.html" />
    <updated>2026-03-17T23:45:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/ogxbox.html</id>
    <content type="html">&lt;p&gt;The original &lt;a href=&quot;https://en.wikipedia.org/wiki/Xbox&quot;&gt;M$ xbox&lt;/a&gt;, released in 2001, was the first console I purchased for myself. I bought my original xbox in 2005, at Best Buy (in Canada), after the Xbox 360 had already been announced.&lt;/p&gt;
&lt;p&gt;Back then, it was a few hundred dollars less than the Xbox 360 and it included multiple controllers and games. Game were plentiful and cheap because of the mature development cycle.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kv-dlBcLpY-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/kv-dlBcLpY-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/kv-dlBcLpY-1616.jpeg&quot; alt=&quot;OG Xbox Console&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Twenty years later, I still have that original console, 14 year-old me would be amazed that &lt;a href=&quot;https://www.se7ensins.com/forums/threads/how-to-softmod-the-original-xbox-rocky5-2022.1771412/&quot;&gt;everything&lt;/a&gt; I had dreamed about doing with the console would be possible:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://old.reddit.com/r/originalxbox/comments/8bilp3/solidstate_drive_to_futureproof_your_xbox/&quot;&gt;solid-state storage&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ebay.ca/sch/i.html?_nkw=original+xbox+hd+cable&amp;amp;_dcat=171814&quot;&gt;720P resolution&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;loading games from hard-disk,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://consolemods.org/wiki/Xbox:XBMC-Emustation&quot;&gt;emulators&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://retrofighters.com/our-collection/hunter-next-gen-original-xbox-wireless-controller/&quot;&gt;wireless controllers&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=hkbpbY8-yAA&amp;amp;t=11s&quot;&gt;quiet fan mods&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://consolemods.org/wiki/Xbox:Dashboards_Overview&quot;&gt;custom launchers&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;playing &lt;a href=&quot;https://consolemods.org/wiki/Xbox:DVDROM&quot;&gt;back-up disks&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;and restart/shutdown of the console from software.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The original xbox used single-layer DVD disks for game data. At a maximum size of &lt;code&gt;4.7GB&lt;/code&gt;, most games had data totalling over &lt;code&gt;3GB&lt;/code&gt; making it difficult for most users to store ripped disk images or burn game copies. DVD-RW drives were expensive and rare, they wouldn&#39;t become commonplace until the &lt;a href=&quot;https://books.google.ca/books?id=o9VxCBx7ta4C&amp;amp;q=dvd#v=snippet&amp;amp;q=dvd&amp;amp;f=false&quot;&gt;late 2000&#39;s&lt;/a&gt; and they quickly got usurped by streaming. CD-ROM based consoles (like the PS1) were easier, cheaper and faster to copy.&lt;/p&gt;
&lt;p&gt;To have some of those features above, you needed to have a appropriate &lt;a href=&quot;https://consolemods.org/wiki/Xbox:Versions&quot;&gt;revision of xbox&lt;/a&gt;, a supported &lt;a href=&quot;https://consolemods.org/wiki/Xbox:OpenXenium&quot;&gt;modchip&lt;/a&gt;, the ability to solder and modify your expensive console, and a desktop computer with enough &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC8430386/&quot;&gt;disk storage&lt;/a&gt; and a &lt;a href=&quot;https://cs.uwaterloo.ca/~dtompkin/musings/dvd.pdf&quot;&gt;DVD rewritable&lt;/a&gt; drive. In 2005, for example, &lt;a href=&quot;https://web.archive.org/web/20110227231940/https://www.pcworld.com/article/127105/timeline_50_years_of_hard_drives.html&quot;&gt;40GB to 120GB drives&lt;/a&gt; &lt;a href=&quot;https://commons.wikimedia.org/wiki/Gallery:Hard_disk_drives_over_time&quot;&gt;were common&lt;/a&gt;, leaving &lt;a href=&quot;https://web.archive.org/web/20140914165233/http://ns1758.ca/winch/winchest.html&quot;&gt;little space&lt;/a&gt; for ISO images.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/dfMUOKK2gK-1194.avif 1194w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/dfMUOKK2gK-1194.webp 1194w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/dfMUOKK2gK-1194.jpeg&quot; alt=&quot;Screencapture from The Broken Ep. 3&quot; width=&quot;1194&quot; height=&quot;600&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Capture from The Broken Ep. 3 (Revision3)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It just wasn&#39;t practical, for me, to &lt;a href=&quot;https://archive.org/details/thebroken_h264/thebroken--0003--ep3--large.h264.mov&quot;&gt;hardware mod&lt;/a&gt; an xbox back then. It was cost and hardware prohibitive.&lt;/p&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;The Xbox development and release &lt;a href=&quot;https://www.tomsguide.com/news/power-on-xbox-documentary&quot;&gt;story&lt;/a&gt; is interesting in its own right. There&#39;s a documentary called &lt;a href=&quot;https://www.youtube.com/watch?v=AJYsA1jXf60&quot;&gt;Power On (2021)&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;the-shops&quot;&gt;The Shops&lt;/h2&gt;
&lt;p&gt;Before softmodding was common, &lt;a href=&quot;https://www.ogxbox.com/forums/index.php?/forum/32-hardware-mods/&quot;&gt;hardware modding&lt;/a&gt; was rampant. There were many stores in my area that would openly offer to install &lt;em&gt;mod-chips&lt;/em&gt; or &lt;em&gt;mod-kits&lt;/em&gt;. They proliferated with the same vigour as grey-market cannabis (or shroom) stores today.&lt;/p&gt;
&lt;p&gt;Housed in low-ceilinged, unassuming, red-bricked buildings that had once housed convenience stores, bakeries or flower shops. Some of those same stores even had been selling &lt;a href=&quot;https://forums.redflagdeals.com/direct-tv-dish-canada-2150800/&quot;&gt;American satellite dishes&lt;/a&gt; and &lt;a href=&quot;https://hardware.slashdot.org/story/01/01/25/1343218/directvs-secret-war-on-hackers&quot;&gt;hacked smart cards&lt;/a&gt;. With names like &lt;em&gt;GameCycle&lt;/em&gt; or &lt;em&gt;Mod4U&lt;/em&gt; they would have flashy signs offering chips like the &lt;a href=&quot;https://connortumbleson.com/2021/06/21/original-xbox-mod-chips/&quot;&gt;Xecutor X2 Pro or the Aladdin XT+&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I would read about those grey-market brands and see photos of others progress on forums. Jealously knowing I wouldn&#39;t dare bend the rules. I wasn&#39;t going to convince my parents to use their credit card on the Internet to send a PayPal transfer to some oddly-named diseased website. I remember one used-game store, under new management, having poster board starbursts all over saying, &amp;quot;NO MOD-CHIPS!&amp;quot;&lt;/p&gt;
&lt;h2 id=&quot;mods&quot;&gt;Mods&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/swED_RE6xY-1814.avif 1814w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/swED_RE6xY-1814.webp 1814w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/swED_RE6xY-1814.jpeg&quot; alt=&quot;Softmod Home screen Rocky5&quot; width=&quot;1814&quot; height=&quot;1361&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Finally, in 2019, I used the &lt;a href=&quot;https://github.com/grimdoomer/TonyHawksProStrcpy&quot;&gt;Tony Hawk 4&lt;/a&gt; game disk to &lt;a href=&quot;https://www.se7ensins.com/forums/threads/how-to-softmod-the-xbox.7399/&quot;&gt;softmod&lt;/a&gt; the xbox. I had used &lt;a href=&quot;https://consolemods.org/wiki/Xbox:Game_Save_Exploit&quot;&gt;ConsoleMods.org&lt;/a&gt; as a guide with &lt;a href=&quot;https://github.com/Rocky5/Xbox-Softmodding-Tool&quot;&gt;Rocky5&#39;s toolkit repo&lt;/a&gt;. It used to mean digging through forums and downloading sketchy &lt;code&gt;.zip&lt;/code&gt; files to find which exact versions (of files) you needed for your specific console revision. Today, you can just follow the ConsoleMods guides.&lt;/p&gt;
&lt;p&gt;Once the &lt;a href=&quot;https://xboxdevwiki.net/Exploits&quot;&gt;softmod&lt;/a&gt; finished, I could unlock the disk drive, backup my save game files to my PC, connect through ftp to load game disk files, change the hard-drive and more. I used a &lt;a href=&quot;https://www.ebay.ca/sch/i.html?_nkw=xbox+to+usb+adapter&amp;amp;_dcat=171814&quot;&gt;controller-port to receptacle USB cable&lt;/a&gt; to plug in a USB thumb drive with the save-game exploit files.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bPnR0pmPL1-1616.avif 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bPnR0pmPL1-1616.webp 1616w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/bPnR0pmPL1-1616.jpeg&quot; alt=&quot;Cable with xbox&quot; width=&quot;1616&quot; height=&quot;1080&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I did replace the thermal paste, the stock fan and the hard drive with an &lt;a href=&quot;https://www.startech.com/en-us/hdd/ide2sat2&quot;&gt;IDE to SATA converter&lt;/a&gt; and an &lt;a href=&quot;https://www.ebay.ca/sch/i.html?_nkw=80+wire+ide&amp;amp;_sacat=0&amp;amp;_from=R40&amp;amp;_trksid=p4624852.m570.l1313&quot;&gt;80-wire IDE cable&lt;/a&gt;. Loading up a game straight from an SSD is faster and the xbox stays quieter. The game-play experience is great, even with only the soft-mod.&lt;/p&gt;
&lt;h2 id=&quot;now&quot;&gt;Now&lt;/h2&gt;
&lt;p&gt;Today, it&#39;s documented on &lt;a href=&quot;https://github.com/Rocky5/Xbox-Softmodding-Tool&quot;&gt;github&lt;/a&gt; and in &lt;a href=&quot;https://consolemods.org/wiki/Xbox:Original_Xbox_Mods_Wiki&quot;&gt;wikis&lt;/a&gt;. There are even &lt;a href=&quot;https://hackaday.com/2024/06/30/an-open-xbox-modchip-enters-the-scene/&quot;&gt;open-hardware solutions&lt;/a&gt; with YouTube channels &lt;a href=&quot;https://www.youtube.com/watch?v=UztpHh_xsAg&amp;amp;t=315s&quot;&gt;dedicated&lt;/a&gt; to &lt;a href=&quot;https://www.youtube.com/watch?v=UztpHh_xsAg&amp;amp;list=PLuDsAo0GifdqKEV6kaZ_umb3qqY5PHG6P&quot;&gt;retro-modding&lt;/a&gt; and web-community &lt;a href=&quot;https://github.com/insignia-live&quot;&gt;xbox live revivals&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The retro gaming and modding scene is very much alive for xbox and other consoles of the era. &lt;a href=&quot;https://www.xbox-scene.info/articles/announcing-xbmc-40-for-the-original-xbox-r64/&quot;&gt;XBMC&lt;/a&gt; (Xbox Media Center) is still being &lt;a href=&quot;https://github.com/antonic901/xbmc4xbox-redux&quot;&gt;actively developed&lt;/a&gt;. The functionality continues to get better.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/QS6utu7Pex-1814.avif 1814w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/QS6utu7Pex-1814.webp 1814w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/QS6utu7Pex-1814.jpeg&quot; alt=&quot;Softmod screen Rocky5&quot; width=&quot;1814&quot; height=&quot;1361&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;emphasis-box&quot;&gt;Looking to mod an original xbox in 2026?&lt;/span&gt;&lt;br&gt;
Start with the &lt;a href=&quot;https://consolemods.org/wiki/Xbox:Original_Xbox_Mods_Wiki&quot;&gt;ConsoleMods OG Xbox Wiki&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=UztpHh_xsAg&amp;amp;list=PLuDsAo0GifdqKEV6kaZ_umb3qqY5PHG6P&quot;&gt;Macho Nacho&#39;s 20th anniversary mod video&lt;/a&gt;, and &lt;a href=&quot;https://retrorepairsandrefurbs.com/2024/04/06/2003-microsoft-xbox-original-addendum-openxenium-2td-ssd-128mb-ram-and-xboxhd/&quot;&gt;Adam&#39;s Vintage Computer Restoration&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;update&quot;&gt;Update&lt;/h2&gt;
&lt;p&gt;This past weekend, I took some time to backup my gamesave data and games collection over FTP to my PC. Disclaimer: I own these game disks legally.&lt;/p&gt;
&lt;p&gt;The easiest way I&#39;ve found to convert and preserve games, with a softmodded OG Xbox, is to rip the game disk to your Xbox hard drive and then transfer that folder to your computer.&lt;/p&gt;
&lt;p&gt;Then, using a tool like &lt;a href=&quot;https://consolemods.org/wiki/Xbox:ISO_Extraction_%26_Repacking&quot;&gt;Extract-XISO&lt;/a&gt; you can create an XISO &lt;code&gt;.iso&lt;/code&gt; file to play the game on your computer using an emulator like &lt;a href=&quot;https://xemu.app/&quot;&gt;xemu&lt;/a&gt;. This also creates a copy of your original game disk allowing you to burn that file to a DVD if you needed a replacement in the future.&lt;/p&gt;
&lt;p&gt;I installed &lt;a href=&quot;https://consolemods.org/wiki/Xbox:XBMC4Gamers&quot;&gt;XBMC4Gamers&lt;/a&gt; so that I could get the &lt;em&gt;fancy&lt;/em&gt; cover art menus to browse my collection. It&#39;s &lt;a href=&quot;https://github.com/Rocky5&quot;&gt;amazing&lt;/a&gt; what the retro homebrew/modding community is able to accomplish. XBMC4Gamers has themes, mods, homebrew, savefiles, emulators, apps, and all sorts of goodies. It was fun to go through all of the menus and see all of the options.&lt;/p&gt;
&lt;p&gt;Of course, I locked myself out of settings with &lt;a href=&quot;https://old.reddit.com/r/originalxbox/comments/198g68h/i_cant_leave_kiosk_mode_after_accidentally/&quot;&gt;kiosk mode&lt;/a&gt; and managed to bork the root screen to show me only a black screen. I used the file manager to boot back into UnleashX on &lt;code&gt;C:/&lt;/code&gt; and then deleted the xbmc4gamers dash, to start the process over again.&lt;/p&gt;
&lt;p&gt;Better luck, next time.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>This Isn&#39;t For That</title>
    <link href="https://theonlyblogever.com/blog/2026/isforwhat.html" />
    <updated>2026-03-16T18:25:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/isforwhat.html</id>
    <content type="html">&lt;p&gt;This blog is my blog. I enjoy writing, practising my writing, sharing projects, reviewing gear, cataloguing my life, dissecting how I spend my time, and changing or adding features to the site.&lt;/p&gt;
&lt;p&gt;There are many parts of my life that I do not share. Roles that I hold outside of the spheres of technology and the occasional opine. This is for writing and sharing what I want, when and how I want.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bEsIyfNQS8-1650.avif 1650w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/bEsIyfNQS8-1650.webp 1650w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/bEsIyfNQS8-1650.png&quot; alt=&quot;Still from opening sequence of The Outer Limits (1995)&quot; width=&quot;1650&quot; height=&quot;858&quot;&gt;&lt;/picture&gt;&lt;br&gt;
&lt;em&gt;Still from opening sequence of The Outer Limits (1995)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;antiblog&quot;&gt;Antiblog&lt;/h2&gt;
&lt;p&gt;What isn&#39;t this blog about? &lt;span class=&quot;emphasis-box&quot;&gt;It&#39;s not about my professional life.&lt;/span&gt; Legally, politically and substantively, I&#39;m not allowed to speak about my employer. I cannot speak publicly about its policy directives or culture, I cannot share internal documents, I cannot divulge any  identifiable information and I cannot speak on the decisions of the provincial government. Even, if those decisions have an impact on my employment.&lt;/p&gt;
&lt;p&gt;There are mechanisms for grievances or complaints. My ability to make systemic changes, I believe, will be supported by my ongoing professionalism. In that sense, I choose to keep my personal and professional lives separate. I will continue making conscious efforts, in my daily life, to comport myself in a manor which is conducive to my continued employment.&lt;/p&gt;
&lt;p&gt;No, they don&#39;t have me trapped in a boardroom forcing me to write these words as a &lt;em&gt;mea-culpa&lt;/em&gt;. I just want to explore the lines I have drawn. Without a retirement package and money for a good lawyer firmly in my grasp, I will not share those details here. I take that responsibility seriously.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;emphasis-box&quot;&gt;This blog isn&#39;t about volunteerism nor is it about my local community.&lt;/span&gt; Politics might &amp;quot;always be local&amp;quot;, but this blog is not. I may, one day, have the fortitude and bravery to fully identify myself in the space and time in which I inhabit this earth. It will happen, eventually.&lt;/p&gt;
&lt;p&gt;For now, those identities have different platforms and are distinct. Anyone, with some OSINT knowledge and 30 seconds, could find all the identifying information and tie it together. This space is about experimentation, fun and self-expression.&lt;/p&gt;
&lt;h2 id=&quot;yikes-buddy&quot;&gt;Yikes, buddy!&lt;/h2&gt;
&lt;p&gt;With the ethical grandstanding out of the way, what else do we want to discuss? Except, this is not a discussion. It&#39;s just me writing. If only there were some sort of commentator type system of allowing comments to be sent to the author of this post.&lt;/p&gt;
&lt;p&gt;I don&#39;t have a comment system. I do infrequently share posts on &lt;a href=&quot;https://mastodon.social/@br_en_d_an&quot;&gt;Mastodon&lt;/a&gt; and I do get feedback! If I could figure out ActivityPub or WebSubHub or cross-posting blog posts into mastodon or &lt;em&gt;git-translation-warp-layering-cyber-frequency-modulating&lt;/em&gt; then it might be a path to a more dynamic Internet presence.&lt;/p&gt;
&lt;p&gt;Needless to say, I&#39;ve been in a very negative feeling mindset these past few days.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Power Consumption of My Homelab</title>
    <link href="https://theonlyblogever.com/blog/2026/watts.html" />
    <updated>2026-03-12T23:05:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/watts.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Azq-yxeZui-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Azq-yxeZui-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Azq-yxeZui-1400.jpeg&quot; alt=&quot;Glitch image of UPS in server rack&quot; width=&quot;1400&quot; height=&quot;1005&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;For the past few weeks, I&#39;ve been having power issues. My homelab has a &lt;a href=&quot;https://www.amazon.ca/APC-Back-UPS-Battery-Protector-BE550G/dp/B0019804U8?crid=MULRV6TD4XUD&amp;amp;sprefix=es+550%2Caps%2C207&amp;amp;sr=8-10&quot;&gt;APC ES 550VA UPS&lt;/a&gt;. It acts as a battery backup and serge protector for the computers and devices that power my office and smart-home stack.&lt;/p&gt;
&lt;p&gt;It&#39;s a ubiquitous black box that gets stuffed under a desk or behind a trashcan and neglected for years. The tangle of power cables and power bricks sit undisturbed for years... until it starts beeping and it doesn&#39;t stop!&lt;/p&gt;
&lt;p&gt;The beeping started a few weeks ago, when my laser printer (on the same circuit) was causing the UPS to shutoff and beep. Laser printers use &lt;a href=&quot;https://news.ycombinator.com/item?id=36395229&quot;&gt;a lot&lt;/a&gt; of electricity to heat up their rollers on start-up. These rollers called &lt;em&gt;fusers&lt;/em&gt; are what puts the ink onto the paper inside the printer.&lt;/p&gt;
&lt;p&gt;The battery in my UPS must be completely dead. It used to just beep once and switch to battery power for the few seconds the printer would heat-up. Now, it won&#39;t last a split second power blip, which does not allow the computers to shutdown properly.&lt;/p&gt;
&lt;p&gt;I could just replace it&#39;s battery, but the fact is my UPS is undersized for my power requirements.&lt;/p&gt;
&lt;p&gt;Here&#39;s a list of devices served by the UPS with their power requirements at the wall, as measured by a power measuring device.&lt;/p&gt;
&lt;h1 id=&quot;power-usage&quot;&gt;Power Usage&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Device&lt;/th&gt;
&lt;th&gt;Model #&lt;/th&gt;
&lt;th&gt;Cumul. Wattage&lt;/th&gt;
&lt;th&gt;Indiv. Wattage&lt;/th&gt;
&lt;th&gt;Note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nothing plugged-in&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;1.2W&lt;/td&gt;
&lt;td&gt;1.2W&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;APC UPS&lt;/td&gt;
&lt;td&gt;ES-550VA&lt;/td&gt;
&lt;td&gt;2.4W&lt;/td&gt;
&lt;td&gt;1.2W&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PYLE Power Bar&lt;/td&gt;
&lt;td&gt;PDBC70&lt;/td&gt;
&lt;td&gt;2.4W&lt;/td&gt;
&lt;td&gt;0 W&lt;/td&gt;
&lt;td&gt;no load&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ESP8266 WLED Controller&lt;/td&gt;
&lt;td&gt;GL-C008ML&lt;/td&gt;
&lt;td&gt;6.6W&lt;/td&gt;
&lt;td&gt;4.2W&lt;/td&gt;
&lt;td&gt;w/ leds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LG Monitor&lt;/td&gt;
&lt;td&gt;34WN780-B&lt;/td&gt;
&lt;td&gt;34.6W&lt;/td&gt;
&lt;td&gt;28W&lt;/td&gt;
&lt;td&gt;blank w/out signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TP-Link 10 Port Switch&lt;/td&gt;
&lt;td&gt;TL-SG1016DE&lt;/td&gt;
&lt;td&gt;38.2W&lt;/td&gt;
&lt;td&gt;3.6W&lt;/td&gt;
&lt;td&gt;w/out connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RaspberryPi SBC&lt;/td&gt;
&lt;td&gt;3B+&lt;/td&gt;
&lt;td&gt;40.9W&lt;/td&gt;
&lt;td&gt;2.7W&lt;/td&gt;
&lt;td&gt;dietpi os&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KVM Switch&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.amazon.ca/AILVLVNG-Computers-Switches-Keyboard-Controller/dp/B0GK6HSJVJ?crid=F9VORKS6O872&amp;amp;sprefix=ailvlvng%2B%2Caps%2C159&amp;amp;sr=8-6&amp;amp;th=1&quot;&gt;AILVLVNG&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;42.1W&lt;/td&gt;
&lt;td&gt;1.1W&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BAXIAL (Ryzen 3)&lt;/td&gt;
&lt;td&gt;Ubuntu 24.10 LTS&lt;/td&gt;
&lt;td&gt;~156.7W&lt;/td&gt;
&lt;td&gt;~114.6W&lt;/td&gt;
&lt;td&gt;at desktop w/ containers and import*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB-C Anker Charger&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;~207.9W&lt;/td&gt;
&lt;td&gt;51.2W&lt;/td&gt;
&lt;td&gt;100W capable on 60W device (pulling ~42W)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DELTAFLYER (Ryzen 5)&lt;/td&gt;
&lt;td&gt;Win11&lt;/td&gt;
&lt;td&gt;~342W&lt;/td&gt;
&lt;td&gt;~134.1W&lt;/td&gt;
&lt;td&gt;w/ apps open*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PreSonus Interface&lt;/td&gt;
&lt;td&gt;AudioBox 1818VSL&lt;/td&gt;
&lt;td&gt;~357W&lt;/td&gt;
&lt;td&gt;15W&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quantum LTO5 Drive&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;~377W&lt;/td&gt;
&lt;td&gt;21W&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DELTAFLYER (Ryzen 5)&lt;/td&gt;
&lt;td&gt;Win11&lt;/td&gt;
&lt;td&gt;~517W&lt;/td&gt;
&lt;td&gt;~273.1W&lt;/td&gt;
&lt;td&gt;w/game and apps open*&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&quot;update-box&quot;&gt;&lt;p&gt;&lt;u&gt;Note:&lt;/u&gt; The above measurements were taken while &lt;a href=&quot;https://theonlyblogever.com/blog/blog/2024/infra&quot;&gt;BAXIAL&lt;/a&gt; was importing over 85 000 images into an immich instance (docker container).&lt;/p&gt;
&lt;p&gt;It was quite taxing on both the CPU and RAM and added ~150W of load onto the system.&lt;/p&gt;
&lt;p&gt;I will be updating the measurements with a new table with both systems running more average loads.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;Rule-of-Internet-thumb for a UPS device is to get a UPS that will be loaded up to &lt;a href=&quot;https://www.youtube.com/watch?v=JL71IH5HShI&amp;amp;t=1137s&quot;&gt;80% of its capacity&lt;/a&gt;. Though, others suggest double the highest possible wattage requirements of all the devices you&#39;ll be plugging into the UPS.&lt;/p&gt;
&lt;p&gt;Computer power supplies are designed for dynamic loads. This is because power needs are changing based on what is being commanded of the computer. Ex., gaming, running a benchmark, or watching 4K video on CPU only. For instance, BAXIAL can use anywhere from ~80W to ~250W. DELTAFLYER can use roughly between ~120W to ~350W.&lt;/p&gt;
&lt;p&gt;My daily setup, including BAXIAL, a network switch and the RPi is between ~95W to ~122W. A fairly efficient load, I don&#39;t keep everything powered up when I&#39;m not at the desk.&lt;/p&gt;
&lt;p&gt;When running more demanding tasks the entire rack uses over 500W easily. I would need a UPS that supported over 700W for 80% capacity or 1100W for double the current capacity.&lt;/p&gt;
&lt;h2 id=&quot;solution&quot;&gt;Solution?&lt;/h2&gt;
&lt;p&gt;I&#39;ve been researching &lt;a href=&quot;https://www.youtube.com/watch?v=1q4dUt1yK0g&quot;&gt;different options&lt;/a&gt;. The usual suspects have a collection of desktop-style offline or line-interactive UPS&#39;s. It&#39;s difficult to judge the quality of these units.&lt;/p&gt;
&lt;p&gt;Simply, &lt;a href=&quot;https://www.fs.com/blog/comparison-of-ups-topologies-line-interactive-vs-online-vs-offline-3538.html&quot;&gt;the differences&lt;/a&gt; in the power delivery and charging circuitry (of differing styles) mean faster transfer times (from power-line AC to battery) and more stable electricity provided to the connected devices.&lt;/p&gt;
&lt;p&gt;The most expensive type is called online or double-conversion. They are usually meant for business environments with large servers running 24/7. I managed to find a refurbished some refurbished models, but they are large, and the replacement batteries can be expensive. Li-ion packs are much more expensive than sealed led acid type batteries.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>At Peace? At least, not that one day last week.</title>
    <link href="https://theonlyblogever.com/blog/2026/sleepy.html" />
    <updated>2026-03-11T16:00:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/sleepy.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6407RK05sb-1400.avif 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/6407RK05sb-1400.webp 1400w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/6407RK05sb-1400.jpeg&quot; alt=&quot;A photo of the Gordie Howe International Bridge under construction&quot; width=&quot;1400&quot; height=&quot;933&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;When was the last time you felt true comfort? When you felt deeply comforted and at peace before you feel asleep. Excited at the prospect of resting, in preparation for the next day of your life.&lt;/p&gt;
&lt;p&gt;For me, it was before I started my career. Before I had graduated university, when I had a simple single bed, the same sheets I had had for fifteen years, and a warm feeling that everything would be okay. Because I had no responsibility! I’m romanticizing this time period. In reality, it was likely no better or worse than any other period in my life. The vicissitudes are constant.&lt;/p&gt;
&lt;p&gt;Now, fall asleep with different feeling sheets and pillows, dreading any day where .there doesn’t seem to be enough time, energy, light, money, power or patience.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;God of Avarice,&lt;br&gt;
greed and gluttony,&lt;br&gt;
your darkest impulses.&lt;br&gt;
The spite.&lt;br&gt;
God of Avarice,&lt;br&gt;
[...]&lt;br&gt;
the fires all consuming.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://propagandhi.com/music/at-peace&quot;&gt;God of Avarice&lt;/a&gt; by Propagandhi [song]&lt;/p&gt;
&lt;p&gt;I don’t know if other people feel this way, but I definitely do. When you wake up from a shallow sleep in the early morning, do you an overwhelming sense of anxiety? I do. Especially, when I’m feeling anxious or stressed about something.&lt;/p&gt;
&lt;p&gt;I often get this feeling of despair after not being able to sleep soundly for several hours. Sometimes, I give up trying to sleep and get out of bed and read or watch a comfortingly familiar television program.&lt;/p&gt;
&lt;p&gt;As the morning stretches on, I generally feel worse until day-break. Lingering, is the sense that my day is ruined because of my tired eyes and brain.&lt;/p&gt;
&lt;p&gt;Usually, I&#39;ll begrudgingly start my day earlier than usual. I carry those awkward feelings with me throughout the day. Unable to shake those thoughts from the previous nights dreams.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Weekend Site Redesign: The Inspiration Station</title>
    <link href="https://theonlyblogever.com/blog/2026/web-redesign.html" />
    <updated>2026-03-08T19:02:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/web-redesign.html</id>
    <content type="html">&lt;p&gt;This weekend, I spent too much time redesigning the website. Which website? &lt;a href=&quot;https://theonlyblogever.com&quot;&gt;This website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I now have this cool ASCII lightning bolt in the &lt;code&gt;.css&lt;/code&gt; file!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;         *
        **
       ***
      ****
     *******
       ****
       ***
       **
       *
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It all started when I wanted to move the CSS from being inline (in the &lt;code&gt;.html&lt;/code&gt; files with each page) to being externally references from it&#39;s own &lt;code&gt;.css&lt;/code&gt; file. Once that was done, I just kept making changes. Here&#39;s a brief rundown of the updates and a to-do list.&lt;/p&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;&lt;u&gt;Note:&lt;/u&gt; parts of &lt;a href=&quot;https://theonlyblogever.com/css/index.css&quot;&gt;this stylesheet&lt;/a&gt; were adapted from the indiepaper theme by Brennan at &lt;a href=&quot;https://brennan.day&quot;&gt;brennan.day&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;More inspiration came from the designs of &lt;a href=&quot;https://kevquirk.com/&quot;&gt;keyquirk.com&lt;/a&gt;, &lt;a href=&quot;https://daverupert.com/&quot;&gt;daverupert.com&lt;/a&gt;, and &lt;a href=&quot;https://xn--gckvb8fzb.com/&quot;&gt;xn--gckvb8fzb.com&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div class=&quot;ai-warn&quot;&gt;&lt;p&gt;&lt;u&gt;AI Note:&lt;/u&gt; I used &lt;i&gt;Sonnet 4.6&lt;/i&gt; from &lt;a href=&quot;http://Claude.ai&quot;&gt;Claude.ai&lt;/a&gt; to help with the nunjucks and the html/css for the site redesign.&lt;/p&gt;
&lt;/div&gt;&lt;h2 id=&quot;design-changes&quot;&gt;Design Changes&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/I_jon33rGT-1000.avif 1000w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/I_jon33rGT-1000.webp 1000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/I_jon33rGT-1000.jpeg&quot; alt=&quot;Image of Severance S01E01 speakerphone box on a table&quot; width=&quot;1000&quot; height=&quot;511&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I discovered &lt;a href=&quot;https://brennan.day/&quot;&gt;brennan.day&lt;/a&gt; and his collection of &lt;a href=&quot;https://github.com/brennanbrown?tab=repositories&quot;&gt;static-site themes&lt;/a&gt; in his git repo. You should definitely check out his website, it&#39;s art! Although, I really liked the &lt;a href=&quot;https://github.com/brennanbrown/hyperpop&quot;&gt;hyperpop&lt;/a&gt; theme, but I decided to keep my minimal aesthetic.&lt;/p&gt;
&lt;p&gt;Globally, I spaced everything out, increasing the default font sizing from &lt;code&gt;11pt&lt;/code&gt; to &lt;code&gt;0.95rem&lt;/code&gt;. I spaced out the header to &lt;code&gt;50em&lt;/code&gt;and added a full width horizontal rule. The link style has changed to an off-white colour &lt;code&gt;#EEF0F2&lt;/code&gt; with a green &lt;code&gt;#00CC88&lt;/code&gt; colour. I added some padding in certain areas to help with content flow and readability. For instance, navigation links were spaced further apart and header sizes were reduced.&lt;/p&gt;
&lt;p&gt;Tags have been stylized using the &lt;code&gt;monospace&lt;/code&gt; font. Post metadata (ex., date and description) and the footer information has a muted &lt;code&gt;#333333&lt;/code&gt; colour. This helps draw your eyes to the post titles and the tags below.&lt;/p&gt;
&lt;p&gt;On the &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;home page&lt;/a&gt;, I wanted the blog posts to be featured as main content. I struggled previously to fit the titles, descriptions, and tags into a visually pleasing format. The new home page scraps the welcome message (don&#39;t worry, it&#39;s in &lt;a href=&quot;https://theonlyblogever.com/about&quot;&gt;/about&lt;/a&gt;) and adds posts with their frontmatter on right on the home page. You can now browse all posts and tags right from the &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;index&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In individual blog posts, you may notice the new &lt;code&gt;.post-prefooter&lt;/code&gt;. It&#39;s a new post section below each post. It shows the QR code for the post (for easy sharing to read on a mobile device or to copy the link). It also has some statistics about the site (styled like &lt;a href=&quot;https://brennan.day/&quot;&gt;brennan.day&#39;s side bar&lt;/a&gt;). It even has font awesome icons!&lt;/p&gt;
&lt;p&gt;On the backend, I have a bash script that I will be running when I finish an article and want to generate a qr code using &lt;a href=&quot;https://github.com/fukuchi/libqrencode&quot;&gt;qrencode&lt;/a&gt;. All of my posts now have QR codes in the footer area. I won&#39;t be doing it manually anymore, meaning that I cannot forget.&lt;/p&gt;
&lt;p&gt;Lastly, the &lt;a href=&quot;https://theonlyblogever.com/pages&quot;&gt;/pages&lt;/a&gt; page now has nice card-style boxes for each additional page. Again, inspired by &lt;a href=&quot;https://brennan.day/pages&quot;&gt;brennan.day/pages&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;to-do-list&quot;&gt;To Do List&lt;/h2&gt;
&lt;p&gt;Here&#39;s a list of future work and considerations I&#39;d like to explore for the &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;site&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;Review CSS for code efficiencies,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Review &lt;code&gt;npm&lt;/code&gt; modules for un-used modules (for removal),&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;Write &lt;code&gt;README.md&lt;/code&gt; documentation for site,&lt;/li&gt;
&lt;li&gt;Comment code including &lt;code&gt;.njk&lt;/code&gt; and &lt;code&gt;.css&lt;/code&gt; files for human understanding,&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Split &lt;code&gt;.css&lt;/code&gt; files for groups of classes belonging to specific pages,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Make a &lt;code&gt;humans.txt&lt;/code&gt; meta information file,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Check paths for simplicity,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Consider revising &lt;code&gt;robots.txt&lt;/code&gt; to allow indexing,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Harmonize site colours.&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Create a graphic with the sites main colours listed in the &lt;a href=&quot;https://theonlyblogever.com/colophon&quot;&gt;/colophon&lt;/a&gt;,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Explore CSS image filter overlays,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;Tryout full-width images in posts,&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Harmonize the &lt;em&gt;blockquote&lt;/em&gt; style boxes (ex., ai, inspiration, and alert),&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;&lt;em&gt;Variablize&lt;/em&gt; everything! Use CSS variables wherever possible,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Integrate the qr code creation bash script into your site generation script,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Make a site generation bash script,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Check out &lt;a href=&quot;https://github.com/TotallyNotChase/glitch-this&quot;&gt;glitch-this!&lt;/a&gt; for CLI cyberpunk image creation.&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Change the name of the &lt;code&gt;/page&lt;/code&gt; folder to &lt;code&gt;/pagination/&lt;/code&gt; for the &lt;a href=&quot;https://theonlyblogever.com/&quot;&gt;index&lt;/a&gt;,&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;Verify why links surrounded by &amp;lt; or &amp;gt; aren&#39;t rendering as links.&lt;/s&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Tracking YouTube Watch History</title>
    <link href="https://theonlyblogever.com/blog/2026/ythistory.html" />
    <updated>2026-03-03T23:35:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/ythistory.html</id>
    <content type="html">&lt;p&gt;I watch a lot of YouTube. It&#39;s my main form of entertainment. It&#39;s on all of my devices. I follow over 900 channels and watch creators regularly. I wanted a way to track my changing tastes and watch time through my YouTube addiction. Similar to how I track music using ListenBrainz. My watch history encompasses time between December 2018 and January 2026.&lt;/p&gt;
&lt;p&gt;Note: While I did watch YouTube before December of 2018, it was mostly &lt;a href=&quot;https://mightycarmods.com/&quot;&gt;MightyCarMods&lt;/a&gt; and music videos that I would search manually. I didn&#39;t stay signed into a main account. I didn&#39;t use the app and I didn&#39;t track browsing history.&lt;/p&gt;
&lt;p&gt;YouTube does not give you a historical dashboard. You have nothing to track watch history and your time spent on the site. While waiting for scrobbling style tracking, I&#39;ve used AI to make the scripts explained below.&lt;/p&gt;
&lt;div class=&quot;ai-warn&quot;&gt;
&lt;p&gt;
&lt;u&gt;AI Note:&lt;/u&gt; All of the python scripts referenced below were generated using LLM AI tooling. The tables and graphs were created with the output of those scripts.
&lt;br&gt;
If you hate it, please, skip to a different post.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nJowZEHtlo-4770.avif 4770w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/nJowZEHtlo-4770.webp 4770w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/nJowZEHtlo-4770.png&quot; alt=&quot;Graph&quot; width=&quot;4770&quot; height=&quot;1765&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;source-data&quot;&gt;Source Data&lt;/h2&gt;
&lt;p&gt;I&#39;ve been examining and working with Google Takeout YouTube Watch history, specifically, two files &lt;code&gt;watch-history.html&lt;/code&gt; a 63 MB file containing a record of every YouTube video watched and &lt;code&gt;MyActivity.html&lt;/code&gt; a record of any interactions.&lt;/p&gt;
&lt;p&gt;There is a JSON option in Google Takeout, for watch history and for account activity, but it always exports truncated and incomplete) files. &lt;span class=&quot;emphasis-box&quot;&gt;Do not use JSON if you want complete YouTube data!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;These files, from Google Takeout, have a record of every YouTube interaction (ex., post read, video clicked or short scrolled). It doesn&#39;t tell you how long you watched the video. To get the watch time, YouTube calls this &amp;quot;engagement time&amp;quot;, there is an API can call using the &lt;a href=&quot;https://console.cloud.google.com/marketplace/product/google/youtube.googleapis.com?q=search&amp;amp;referrer=search&amp;amp;organizationId=0&amp;amp;project=jellyfin-youtube-personal&quot;&gt;YouTube Data v3&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You go into Google Takeout and request the data you get a zip archive with &lt;code&gt;/Takeout/My Activity/YouTube/MyActivity.html&lt;/code&gt; and &lt;code&gt;/Takeout/YouTube and YouTube Music/history/watch-history.html&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;collating&quot;&gt;Collating&lt;/h2&gt;
&lt;p&gt;I&#39;ve been doing some auditing and modelling of this data using python for YouTube Music with &lt;em&gt;catskippity&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;http://god.ai&quot;&gt;god.ai&lt;/a&gt;&lt;/em&gt;, but now I&#39;d like to do something similar for the YouTube videos I&#39;ve watched over the years: watch data, number of videos watched, subscribed channels, most watched-time per channel, most-watched videos, searches, most-watched videos by watch duration and more.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/PST-7cJ1O--4355.avif 4355w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/PST-7cJ1O--4355.webp 4355w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/PST-7cJ1O--4355.png&quot; alt=&quot;Graph&quot; width=&quot;4355&quot; height=&quot;1765&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Eventually, I&#39;d like to have a way to share this data, and/or be able to continually pull from an API to get automatically updating data, but for now, just the auditing and looking at trends in the archived documents.&lt;/p&gt;
&lt;p&gt;The heat graph was the easiest to interpret, my heaviest watch times are between 8:00 pm and 11:00 pm daily, at least in terms of the number of videos watched. Broadly, my least popular watch times are between 12:00 am and 7:00 am. Which tracks with my sleep habits.&lt;/p&gt;
&lt;p&gt;We can see my cumulative watch time below.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/xYClxREinr-4770.avif 4770w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/xYClxREinr-4770.webp 4770w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/xYClxREinr-4770.png&quot; alt=&quot;Graph&quot; width=&quot;4770&quot; height=&quot;1766&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Line go up.&lt;/em&gt; Every watched minute adds to this graph.&lt;/p&gt;
&lt;p&gt;And, watch time graphed for each hour.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/9dnLd_keIb-4170.avif 4170w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/9dnLd_keIb-4170.webp 4170w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/9dnLd_keIb-4170.png&quot; alt=&quot;Graph&quot; width=&quot;4170&quot; height=&quot;1765&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The weekday watch data is likely skewed because of the pandemic. I was isolating at home for much of the time and had a sporadic work schedule. Meaning, that I watched YouTube during the day. If I isolated those early months in 2020, I would probably find different results.&lt;/p&gt;
&lt;p&gt;I&#39;ve seen other projects where they use a Google API v3 to get YouTube watch data and get information for the length of time the videos are watched and integrate that into reporting and such, examples here, &lt;a href=&quot;https://github.com/juliuswms/YoutubeWatchAnalytics&quot;&gt;juliuswms/YoutubeWatchAnalytics&lt;/a&gt;,&lt;br&gt;
&lt;a href=&quot;https://thorstenmahieu.github.io/projects/youtube-watch-history-analysis/&quot;&gt;youtube-watch-history-analysis&lt;/a&gt;,&lt;br&gt;
&lt;a href=&quot;https://github.com/positron48/youtube-history-analyzer&quot;&gt;positron48/youtube-history-analyzer&lt;/a&gt;,&lt;br&gt;
&lt;a href=&quot;https://github.com/arv-anshul/yt-watch-history&quot;&gt;arv-anshul/yt-watch-history&lt;/a&gt;,&lt;br&gt;
and &lt;a href=&quot;https://github.com/ronething/yt-history&quot;&gt;ronething/yt-history&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ve got some results, filtering the YouTube Music tracks gave better data output with only video content.&lt;/p&gt;
&lt;h2 id=&quot;reports&quot;&gt;Reports&lt;/h2&gt;
&lt;p&gt;I made reports with my top channels and videos. I removed any I haven&#39;t watched in over three years (since late 2023). I removed any that were rain sounds, holiday fireplaces, instrumental meditations, and, live-streams or podcasts that I only watched once.&lt;/p&gt;
&lt;p&gt;Here are some examples of reports you can generate:&lt;/p&gt;
&lt;h2 id=&quot;youtube-watch-report&quot;&gt;YouTube Watch Report&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;Total Watch Time: 12,349.22 hrs
Total Videos Logged: 37,868
Unique Channels: 6,795
Unique Videos: 29,946
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;brendans-top-20-channels&quot;&gt;Brendan&#39;s Top 20 Channels&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;*as of Jan 2026&lt;/em&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Channel&lt;/th&gt;
&lt;th&gt;Watch Time&lt;/th&gt;
&lt;th&gt;Watch Count&lt;/th&gt;
&lt;th&gt;First Watch&lt;/th&gt;
&lt;th&gt;Last Watch&lt;/th&gt;
&lt;th&gt;Trend&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Linus Tech Tips&lt;/td&gt;
&lt;td&gt;1,184.04 hrs&lt;/td&gt;
&lt;td&gt;2065&lt;/td&gt;
&lt;td&gt;2018-12-19&lt;/td&gt;
&lt;td&gt;2026-01-31&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cathode Ray Dude - CRD&lt;/td&gt;
&lt;td&gt;928.73 hrs&lt;/td&gt;
&lt;td&gt;924&lt;/td&gt;
&lt;td&gt;2020-11-29&lt;/td&gt;
&lt;td&gt;2026-02-21&lt;/td&gt;
&lt;td&gt;↑ Rising&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The 8-Bit Guy&lt;/td&gt;
&lt;td&gt;417.06 hrs&lt;/td&gt;
&lt;td&gt;1254&lt;/td&gt;
&lt;td&gt;2018-12-17&lt;/td&gt;
&lt;td&gt;2026-02-08&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LGR&lt;/td&gt;
&lt;td&gt;255.49 hrs&lt;/td&gt;
&lt;td&gt;582&lt;/td&gt;
&lt;td&gt;2018-12-22&lt;/td&gt;
&lt;td&gt;2026-02-08&lt;/td&gt;
&lt;td&gt;→ Stable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Technology Connections&lt;/td&gt;
&lt;td&gt;170.56 hrs&lt;/td&gt;
&lt;td&gt;409&lt;/td&gt;
&lt;td&gt;2018-12-18&lt;/td&gt;
&lt;td&gt;2026-01-30&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeviantOllam&lt;/td&gt;
&lt;td&gt;130.62 hrs&lt;/td&gt;
&lt;td&gt;217&lt;/td&gt;
&lt;td&gt;2019-02-03&lt;/td&gt;
&lt;td&gt;2026-01-06&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;clabretro&lt;/td&gt;
&lt;td&gt;130.60 hrs&lt;/td&gt;
&lt;td&gt;240&lt;/td&gt;
&lt;td&gt;2023-02-13&lt;/td&gt;
&lt;td&gt;2026-02-10&lt;/td&gt;
&lt;td&gt;→ Stable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wendigoon&lt;/td&gt;
&lt;td&gt;120.94 hrs&lt;/td&gt;
&lt;td&gt;65&lt;/td&gt;
&lt;td&gt;2024-12-08&lt;/td&gt;
&lt;td&gt;2026-02-04&lt;/td&gt;
&lt;td&gt;↑ Rising&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cameron Gray&lt;/td&gt;
&lt;td&gt;117.45 hrs&lt;/td&gt;
&lt;td&gt;157&lt;/td&gt;
&lt;td&gt;2018-12-17&lt;/td&gt;
&lt;td&gt;2026-02-21&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;This Does Not Compute&lt;/td&gt;
&lt;td&gt;106.42 hrs&lt;/td&gt;
&lt;td&gt;283&lt;/td&gt;
&lt;td&gt;2019-08-14&lt;/td&gt;
&lt;td&gt;2026-02-19&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internet Comment Etiquette with Erik&lt;/td&gt;
&lt;td&gt;102.76 hrs&lt;/td&gt;
&lt;td&gt;365&lt;/td&gt;
&lt;td&gt;2018-12-24&lt;/td&gt;
&lt;td&gt;2026-01-30&lt;/td&gt;
&lt;td&gt;↑ Rising&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Craft Computing&lt;/td&gt;
&lt;td&gt;86.66 hrs&lt;/td&gt;
&lt;td&gt;154&lt;/td&gt;
&lt;td&gt;2020-05-26&lt;/td&gt;
&lt;td&gt;2026-01-28&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nomad Brad&lt;/td&gt;
&lt;td&gt;85.96 hrs&lt;/td&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;2024-04-16&lt;/td&gt;
&lt;td&gt;2026-02-15&lt;/td&gt;
&lt;td&gt;↑ Rising&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J.J. McCullough&lt;/td&gt;
&lt;td&gt;83.04 hrs&lt;/td&gt;
&lt;td&gt;274&lt;/td&gt;
&lt;td&gt;2021-08-27&lt;/td&gt;
&lt;td&gt;2026-02-15&lt;/td&gt;
&lt;td&gt;→ Stable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Snazzy Labs&lt;/td&gt;
&lt;td&gt;81.13 hrs&lt;/td&gt;
&lt;td&gt;245&lt;/td&gt;
&lt;td&gt;2019-02-16&lt;/td&gt;
&lt;td&gt;2025-12-31&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Barnacules Nerdgasm&lt;/td&gt;
&lt;td&gt;81.05 hrs&lt;/td&gt;
&lt;td&gt;141&lt;/td&gt;
&lt;td&gt;2019-07-13&lt;/td&gt;
&lt;td&gt;2025-04-19&lt;/td&gt;
&lt;td&gt;→ Stable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jeff Geerling&lt;/td&gt;
&lt;td&gt;80.76 hrs&lt;/td&gt;
&lt;td&gt;316&lt;/td&gt;
&lt;td&gt;2021-11-21&lt;/td&gt;
&lt;td&gt;2026-02-05&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mighty Car Mods&lt;/td&gt;
&lt;td&gt;77.00 hrs&lt;/td&gt;
&lt;td&gt;176&lt;/td&gt;
&lt;td&gt;2018-12-25&lt;/td&gt;
&lt;td&gt;2026-02-04&lt;/td&gt;
&lt;td&gt;→ Stable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tech Tangents&lt;/td&gt;
&lt;td&gt;68.31 hrs&lt;/td&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;2019-08-15&lt;/td&gt;
&lt;td&gt;2026-01-18&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wendover Productions&lt;/td&gt;
&lt;td&gt;67.89 hrs&lt;/td&gt;
&lt;td&gt;236&lt;/td&gt;
&lt;td&gt;2019-02-11&lt;/td&gt;
&lt;td&gt;2025-04-22&lt;/td&gt;
&lt;td&gt;↓ Declining&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;All listings above are meaningful data-points in my watch history.&lt;/p&gt;
&lt;p&gt;Of my top watched videos 9 out of 10 are &lt;a href=&quot;https://www.youtube.com/@CathodeRayDude&quot;&gt;Cathode Ray Dude&lt;/a&gt; videos. Not a very interesting variety of data. I watch their channel often to fall asleep.&lt;/p&gt;
&lt;p&gt;I&#39;m a nerd, after all.&lt;/p&gt;
&lt;p class=&quot;update-box&quot;&gt;See my &lt;a href=&quot;https://theonlyblogever.com/tuberoll&quot;&gt;/tuberoll&lt;/a&gt; slash page for more channel recommendations.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Now for Something Completely Different: Vector Art</title>
    <link href="https://theonlyblogever.com/blog/2026/vectorface.html" />
    <updated>2026-02-24T17:45:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/vectorface.html</id>
    <content type="html">&lt;p&gt;Last night, I traced an image of myself using Affinity Designer. Working with vector tools has proven to be a meditative experience.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TIl8TS_tl1-1000.avif 1000w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TIl8TS_tl1-1000.webp 1000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/TIl8TS_tl1-1000.png&quot; alt=&quot;&quot; width=&quot;1000&quot; height=&quot;944&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;It&#39;s all lines!&lt;br&gt;
I couldn&#39;t help myself.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Scrobbling Hell: Part III - Artificial Boogaloo</title>
    <link href="https://theonlyblogever.com/blog/2026/scrobblin3.html" />
    <updated>2026-02-19T23:35:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/scrobblin3.html</id>
    <content type="html">&lt;p&gt;I broke down. I&#39;ve lost. I&#39;ve become one with the machine. Therefore, I am its holy servant. Speak softly now, for am I weak-willed and powerless. Besides, my last post was getting lengthy.&lt;/p&gt;
&lt;p class=&quot;update-box&quot;&gt;
This post is an update of my scrobbling adventures. &lt;br&gt;
&lt;a href=&quot;https://theonlyblogever.com/blog/2025/scrobbling-libre.html&quot;&gt;Part 1 (Scrobbling Hell)&lt;/a&gt; &lt;br&gt;
&lt;a href=&quot;https://theonlyblogever.com/blog/2026/scrobblin2.html&quot;&gt;Part 2 (Scrobbling Hell II)&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;ai-warn&quot;&gt;
&lt;p&gt;
&lt;u&gt;AI Note:&lt;/u&gt; All of the python scripts referenced below, in the linked github, were generated using LLM AI tooling. Sections of the descriptions in the README were also AI generated.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/rMAmnBhCdh-2012.avif 2012w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/rMAmnBhCdh-2012.webp 2012w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/rMAmnBhCdh-2012.png&quot; alt=&quot;Screenshot of terminal window with lots of python scripts listed&quot; width=&quot;2012&quot; height=&quot;2220&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;So this happened... So many python scripts, trying to sanitize data. Must be clean! I want to be pure!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TvAsqvpk5H-2120.avif 2120w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/TvAsqvpk5H-2120.webp 2120w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/TvAsqvpk5H-2120.png&quot; alt=&quot;Screenshot of Frank Reynolds covered in hand sanitizer&quot; width=&quot;2120&quot; height=&quot;1321&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;what&quot;&gt;What&lt;/h2&gt;
&lt;p&gt;I&#39;ve used an artificial tool that rhymes with &lt;em&gt;catskippity&lt;/em&gt; to create python scripts that would allow me to parse, organize and verify my scrobbling datasets before I submitted them to ListenBrainz and their final resting place.&lt;/p&gt;
&lt;p&gt;I&#39;m not a coder. I barely passed my &lt;em&gt;CS 101: Intro to C&lt;/em&gt; class in university. I ended up taking another language class just to cover up my shame. Of course, now, that I&#39;ve used an AI tool to help me do something useful, I feel even more shameful. At a &lt;a href=&quot;https://news.un.org/en/story/2026/01/1166800&quot;&gt;huge&lt;/a&gt; &lt;a href=&quot;https://www.eesi.org/articles/view/data-centers-and-water-consumption&quot;&gt;environmental&lt;/a&gt; &lt;a href=&quot;https://www.bbc.com/news/articles/ce85wx9jjndo&quot;&gt;cost&lt;/a&gt;, I&#39;ve bent my own morals for a shot at getting working python scripts shot-out &lt;em&gt;(see ejaculated)&lt;/em&gt; towards me.&lt;/p&gt;
&lt;p class=&quot;update-box&quot;&gt;
Here are some skeptics links to keep the revolution alive in your heart.&lt;br&gt;
&lt;a href=&quot;https://www.techwontsave.us/episode/304_data_centers_are_a_climate_enemy_w_ketan_joshi&quot;&gt;Tech Won&#39;t Save Us - Ep. 304 Data Centers are a Climate Enemy&lt;/a&gt; [podcast]&lt;br&gt;
&lt;a href=&quot;https://pluralistic.net/2025/09/27/econopocalypse/&quot;&gt;Cory Doctorow&#39;s Pluralistic - The Real AI apocalypse is nigh&lt;/a&gt; [post]&lt;br&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=NuIMZBseAOM&quot;&gt;Ordinary Things - Will A.I. Slop Kill the Internet?&lt;/a&gt; [video]&lt;br&gt;
&lt;/p&gt;
&lt;h2 id=&quot;why&quot;&gt;Why&lt;/h2&gt;
&lt;p&gt;As explained in the &lt;a href=&quot;https://theonlyblogever.com/blog/2026/scrobblin2.html&quot;&gt;previous post&lt;/a&gt;, I&#39;ve been trying to get clean scrobbling history with different data sources (a.k.a., apps I used to use to listen to music).&lt;/p&gt;
&lt;p&gt;These sources include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; (2007 to 2020),&lt;/li&gt;
&lt;li&gt;Spotify (2018 to 2020),&lt;/li&gt;
&lt;li&gt;YouTube Music (2019 to present) and,&lt;/li&gt;
&lt;li&gt;Rockbox (2015 to 2020).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After having issues, with duplicates, on account of YouTube Music keeping records of every single song you&#39;ve ever skipped! I decided to start fresh and create a test account.&lt;/p&gt;
&lt;p&gt;Once that account was created, I took the different export files and had that artificial tool create &lt;a href=&quot;https://github.com/brend-an/prune-scrobbles/&quot;&gt;python scripts&lt;/a&gt; that would remove tracks played for less than 30 seconds. I chose 30 seconds because, after trying intervals of 5 in 5 second increments, it seemed to be giving descendent results.&lt;/p&gt;
&lt;p&gt;After much testing, I ended up choosing 60 seconds because it was a good balance between removing skipped tracks and keeping my listening history valid and aligned with larger trends in my scrobbling history.&lt;/p&gt;
&lt;h2 id=&quot;how&quot;&gt;How&lt;/h2&gt;
&lt;p&gt;Get your audio streaming service&#39;s data exports in JSON or HTML formats. This is explained in the &lt;a href=&quot;https://theonlyblogever.com/blog/2026/scrobblin2.html&quot;&gt;previous post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Go to the &lt;a href=&quot;https://github.com/brend-an/prune-scrobbles/&quot;&gt;GitHub repo&lt;/a&gt; and get the python script files that you need, depending on your streaming service of choice. ListenBrainz, can connect with some services (ex., Spotify and &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt;) directly.&lt;/p&gt;
&lt;p&gt;I&#39;m using the scripts because I wanted to verify my listening data against the imported data. I wanted to be sure that all the listening data being submitted was as reflective as possible to my musical tastes.&lt;/p&gt;
&lt;h3 id=&quot;pruning-spotify-listens&quot;&gt;Pruning Spotify Listens&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;spotify-filter.py&lt;/code&gt; will take the JSON files from the &amp;quot;Spotify Extended Streaming History&amp;quot; &lt;a href=&quot;https://support.spotify.com/us/article/understanding-your-data/&quot;&gt;export&lt;/a&gt; and remove any skipped tracks. Skipped tracks are songs played for less than 30 seconds.&lt;/li&gt;
&lt;li&gt;With the resulting JSON files you can submit the cleaned-up listens to ListenBrainz with their default tool to by going to &lt;a href=&quot;https://listenbrainz.org/settings/import/&quot;&gt;Import listens&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Gj_pNn3OF2-1042.avif 1042w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/Gj_pNn3OF2-1042.webp 1042w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/Gj_pNn3OF2-1042.png&quot; alt=&quot;Image of AI Code window&quot; width=&quot;1042&quot; height=&quot;827&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;pruning-youtube-music-listens&quot;&gt;Pruning YouTube Music Listens&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ytm-filter-music-and-topic.py&lt;/code&gt; will take your &lt;a href=&quot;https://takeout.google.com/&quot;&gt;Google Takeout&lt;/a&gt; YouTube Watch History (watch-history.html) export file and remove any video watch listings and only keep YouTube Music listens and videos with a music topic.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ytm_remove_30s_skips.py&lt;/code&gt; will take the resulting listens, from step 1, and remove any tracks that were played for less then 30 seconds.&lt;/li&gt;
&lt;li&gt;Once you have the resulting HTML file you can submit the cleaned-up listens to ListenBrainz with &lt;a href=&quot;https://github.com/defvs/ytm-extractor&quot;&gt;ytm-extractor&lt;/a&gt;. You&#39;ll need your ListenBrainz API Key - &lt;a href=&quot;https://listenbrainz.org/settings/&quot;&gt;User Token&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/eUySjENFBn-1042.avif 1042w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/eUySjENFBn-1042.webp 1042w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/eUySjENFBn-1042.png&quot; alt=&quot;Image of AI Code window&quot; width=&quot;1042&quot; height=&quot;827&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;when&quot;&gt;When&lt;/h2&gt;
&lt;p&gt;Once you do the import, wait at least 48 hours for the newly imported (or re-imported) listens to be reflected on your stats page on ListenBrainz.&lt;/p&gt;
&lt;p&gt;With the four sources added into ListenBrainz, I had about 55 000 listens. A far cry from the 78 000 I had in my current profile. Once the stats are updated, in the next 48 hours, I&#39;ll compare the results to see which dataset is more representative of my music listening history.&lt;/p&gt;
&lt;p&gt;Once I had de-duped the data and checked the data from the original account with the account I had about 67 000 scrobbles. Most were original listens. A few hundred were duplicates, but that were too far from the scripts 3600 second limit, or had some other inconsistency. The data set is valid (according to the audit scripts) and reflects my changing listening habits from 2007 to the present.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ZWJoODYz_4-600.avif 600w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/ZWJoODYz_4-600.webp 600w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/ZWJoODYz_4-600.png&quot; alt=&quot;The Audit Toy Story Meme&quot; width=&quot;600&quot; height=&quot;327&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-final-audit&quot;&gt;The Final Audit&lt;/h2&gt;
&lt;p&gt;Running the audit script we get the following information. If you want these scripts to export and audit your own ListenBrainz listens, &lt;a href=&quot;https://github.com/brend-an/prune-scrobbles/&quot;&gt;go here&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;python listenbrainz_audit_v2.py br3nd4n_full.json 
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;==============================
LISTENBRAINZ FORENSIC AUDIT v2
==============================

==== STRUCTURAL INTEGRITY ====
Total listens: 67529
Exact duplicates: 0
Timestamp collision groups: 337
Largest collision: 19

==== METADATA HEALTH ====
Recording MBID coverage: 927/67529
Duration metadata coverage: 6697/67529

==== DIVERSITY ANALYSIS ====
Unique artists: 2471
Global entropy: 7.527


==== FINAL INTEGRITY SCORE ====
Integrity Score: 90 / 100
Risk Level: LOW

===== AUDIT COMPLETE =====
&lt;/code&gt;&lt;/pre&gt;
&lt;p class=&quot;update-box&quot;&gt;
Follow my new clean ListenBrainz profile: &lt;a href=&quot;https://listenbrainz.org/user/br3nd4n/&quot;&gt;br3nd4n&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;I need to accept that I will never have a complete listening history. I can&#39;t track cassette, compact disk, vinyl, USB drives plugged into my car, old mp3 players or an audio program that didn&#39;t scrobble. I did what I could to ensure data integrity. I will try and ensure my future listening data is valid.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KSX4_JwA7C-500.avif 500w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/KSX4_JwA7C-500.webp 500w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/KSX4_JwA7C-500.png&quot; alt=&quot;CD Player attached to car head unit cassette deck&quot; width=&quot;500&quot; height=&quot;500&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;While not completely clean of skipped sessions or duplicated scrobbles, my listening history is reflective of my evolving tastes. That, is worth celebrating.&lt;/p&gt;
&lt;p class=&quot;update-box&quot;&gt;
As always, this post was not written nor edited using AI.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Scrobbling Hell: Part II</title>
    <link href="https://theonlyblogever.com/blog/2026/scrobblin2.html" />
    <updated>2026-02-16T19:05:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/scrobblin2.html</id>
    <content type="html">&lt;p&gt;I&#39;m an avid music collector. In 2025, I exported a lot of my listening data from &lt;a href=&quot;https://www.last.fm/&quot;&gt;last.fm&lt;/a&gt; into &lt;a href=&quot;https://listenbrainz.org/&quot;&gt;ListenBrainz&lt;/a&gt;. I had most of my scrobbles, but not all of them. Here is an update to the &lt;a href=&quot;https://theonlyblogever.com/blog/2025/scrobbling-libre.html&quot;&gt;original post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note: &lt;em&gt;Scrobbles or listens&lt;/em&gt; are individual songs you&#39;ve listened to and submitted to a music tracking service like &lt;a href=&quot;http://last.fm&quot;&gt;last.fm&lt;/a&gt;, &lt;a href=&quot;http://libre.fm&quot;&gt;libre.fm&lt;/a&gt; or (my favourite) ListenBrainz. &lt;strong&gt;I use the terms interchangeably in this post.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Interesting side story, ListenBrainz was originally coded by the creator of &lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; when they were sold to CBS Interactive and the future of the product was uncertain. They wanted to ensure interoperability and the security of listening (scrobbling) data. Neat!&lt;/p&gt;
&lt;h2 id=&quot;adding-more-scrobbles&quot;&gt;Adding More Scrobbles&lt;/h2&gt;
&lt;p&gt;I was able to get my &lt;a href=&quot;http://last.fm&quot;&gt;last.fm&lt;/a&gt; scrobbles and my spotify listening data into ListenBrainz through their &lt;a href=&quot;https://listenbrainz.org/settings/import/&quot;&gt;Import your Listening History&lt;/a&gt; dashboard in my ListenBrainz account by going to &lt;em&gt;Settings &amp;gt; Import Listens &amp;gt;&amp;gt; Select Service&lt;/em&gt; and uploading the required file. You can manually download your Spotify listening data by logging into Spotify on your PC, clicking &lt;em&gt;Profile &amp;gt; Account &amp;gt;&amp;gt; Account Privacy &amp;gt;&amp;gt; Download your data &amp;gt;&amp;gt; Request Data&lt;/em&gt;. I imported 6000 more listens!&lt;/p&gt;
&lt;p&gt;They&#39;ve recently added support for &lt;a href=&quot;https://github.com/metabrainz/listenbrainz-server/pull/3452&quot;&gt;Audioscrobbler/Rockbox .scrobbler.log files&lt;/a&gt;. This makes importing that listen history so much simpler than using a python script or a java applet that does not work anymore and throws errors. It also avoids having to &lt;a href=&quot;https://github.com/Jeselnik/rb-scrobbler&quot;&gt;import to last.fm&lt;/a&gt; just to re-import into ListenBrainz. I imported 1519 listens with the native import tool.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-guWtYhDu8-914.avif 914w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/-guWtYhDu8-914.webp 914w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/-guWtYhDu8-914.png&quot; alt=&quot;Screenshot of ListenBrainz Rockbox import&quot; width=&quot;914&quot; height=&quot;501&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I also re-imported my Spotify extended listening history to ensure all listens were imported. Another 6000 listens were added.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/MixUP3eXgA-908.avif 908w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/MixUP3eXgA-908.webp 908w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/MixUP3eXgA-908.png&quot; alt=&quot;Screenshot of ListenBrainz Spotify import&quot; width=&quot;908&quot; height=&quot;486&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I imported &lt;a href=&quot;https://libre.fm/&quot;&gt;libre.fm&lt;/a&gt; scrobbles as well, but they were all previous &lt;a href=&quot;http://last.fm&quot;&gt;last.fm&lt;/a&gt; duplicates.&lt;/p&gt;
&lt;p&gt;There is also work being done to &lt;a href=&quot;https://github.com/metabrainz/listenbrainz-server/pull/3498&quot;&gt;support YouTube histories&lt;/a&gt; in the same import page on ListenBrainz.&lt;/p&gt;
&lt;p&gt;As a completest, I want my entire listening history on ListenBrainz. I often listen to music on YouTube (ex., watch music or concert videos). &lt;a href=&quot;https://theonlyblogever.com/blog/2025/scrobbling-libre.html&quot;&gt;Last time&lt;/a&gt;, I was able to import listens, but only as of February 2025 from the YouTube Music iOS app. If I had listened to a song on my TV, through the YouTube app, YouTube Music app, or computer from &lt;a href=&quot;http://youtube.com&quot;&gt;youtube.com&lt;/a&gt;, it would not catalogue those past listens. This left thousands of songs out of my &lt;a href=&quot;https://listenbrainz.org/user/iPodSmypod/stats/?range=all_time&quot;&gt;Listening Activity page&lt;/a&gt; on ListenBrainz. It was an incomplete picture of my changing tastes and listening habits.&lt;/p&gt;
&lt;p&gt;Up to this point, the ListenBrainz import tools are safe to use and should avoid duplicates. If you choose to continue with the process describes below be forewarned. &lt;strong&gt;You will end up with duplicate tracks and skipped tracks in your listen history data.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;importing-youtube-listens&quot;&gt;Importing YouTube Listens&lt;/h2&gt;
&lt;p&gt;Searching and reading GitHub repos to try and get this working. I&#39;ve been trying to import my YouTube watch history into ListenBrainz. It isn&#39;t officially supported on their site &lt;a href=&quot;https://github.com/metabrainz/listenbrainz-server/pull/3498&quot;&gt;yet&lt;/a&gt;. But, there are &lt;a href=&quot;https://community.metabrainz.org/search?q=youtube%20%23listenbrainz&quot;&gt;some third-party ways&lt;/a&gt; to get the data into ListenBrainz.&lt;/p&gt;
&lt;p&gt;First, we need a copy of our YouTube watch history. Using Google Takeout, we log into our account, then we go to, &lt;em&gt;Create a new export &amp;gt;&amp;gt; Deselect all &amp;gt;&amp;gt;&lt;/em&gt; scroll down to &lt;em&gt;YouTube and YouTube Music &amp;gt;&amp;gt; All YouTube data included &amp;gt;&amp;gt; Deselect all &amp;gt;&amp;gt;&lt;/em&gt; select &lt;em&gt;history &amp;gt;&amp;gt; OK&lt;/em&gt; click on &lt;em&gt;Multiple formats&lt;/em&gt; scroll down to &lt;em&gt;history&lt;/em&gt; click the drop-down with &lt;em&gt;HTML &amp;gt;&amp;gt; JSON &amp;gt;&amp;gt; OK &amp;gt;&amp;gt; Next Step &amp;gt;&amp;gt; Create export&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Second, check your Gmail inbox for the export to be available for download. Once the download is available, download the zip archive and extract the folder. There should be a file called &lt;code&gt;watch-history.json&lt;/code&gt;. Now, we use a script to parse that watch history. We do not want it to include regular YouTube videos we&#39;ve watched. We only want music by recognized artists. &lt;em&gt;We use the script and we&#39;re done! Right?! Wrong.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;issues-with-google-takeout&quot;&gt;Issues with Google Takeout&lt;/h3&gt;
&lt;p&gt;For some reason, when I choose &lt;code&gt;HTML&lt;/code&gt; as my format for the YouTube data, it gives me a &lt;code&gt;62 MB&lt;/code&gt; file with all of my historical watch data since June 2017. This is around the time I started using YouTube Premium and watching YouTube signed-into my account. But, when I select &lt;code&gt;JSON&lt;/code&gt; it only exports data from between 12 and 18 months old. I tried to export four times and received &lt;code&gt;watch-history.json&lt;/code&gt; files of differing lengths and file sizes. The smallest was &lt;code&gt;928 KB&lt;/code&gt; the largest was &lt;code&gt;6 MB&lt;/code&gt;. Obviously, those &lt;code&gt;JSON&lt;/code&gt; files are missing historical watch data.&lt;/p&gt;
&lt;p&gt;Why does this matter? Well, most of the GitHub projects that allow &lt;a href=&quot;https://community.metabrainz.org/t/ytm-extractor-import-youtube-music-listens-to-listenbrainz/707619&quot;&gt;import of YouTube data into ListenBrainz&lt;/a&gt; require the &lt;code&gt;watch-history.json&lt;/code&gt; formatted file. It&#39;s easier to parse and a cleaner data source. I&#39;m assuming this is the same format that ListenBrainz will want for their &lt;a href=&quot;https://github.com/metabrainz/listenbrainz-server/pull/3498&quot;&gt;official import tool&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;ytm-extractor-script&quot;&gt;YTM-Extractor Script&lt;/h3&gt;
&lt;p class=&quot;update-box&quot;&gt;
If you use this script, it will submit everything to ListenBrainz. Including tracks you&#39;ve purposely skipped. You will end up with duplicate or erroneous listings. &lt;br&gt;
&lt;br&gt;
I suggest submitting time periods (ex., 3 months at a time) before dumping everything into ListenBrainz. Otherwise, you will have to do manual deletions for your listening activity to be accurate. Again, this process is only for gluttons for punishment.
&lt;/p&gt;
&lt;p&gt;Luckily for us, &lt;a href=&quot;https://github.com/defvs/ytm-extractor/releases/tag/1.0&quot;&gt;ytm-extractor&lt;/a&gt; does allow you to use your &lt;code&gt;watch-history.html&lt;/code&gt; file as a source to &lt;a href=&quot;https://community.metabrainz.org/t/ytm-extractor-import-youtube-music-listens-to-listenbrainz/707619&quot;&gt;import listens&lt;/a&gt; to ListenBrainz.&lt;/p&gt;
&lt;p&gt;Following the &lt;a href=&quot;https://github.com/defvs/ytm-extractor/blob/master/README.md&quot;&gt;GitHub ReadMe&lt;/a&gt;, I placed the &lt;code&gt;watch-history.html&lt;/code&gt; into my &lt;code&gt;~/Downloads&lt;/code&gt; folder and downloaded the &lt;code&gt;ytm-extractor-1.0-all.jar&lt;/code&gt; file into the same folder. I opened a terminal and ran the program.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;java -jar ytm-extractor-1.0-all.jar  -t &amp;quot;watch-history.html&amp;quot; -i &amp;quot;[ListenBrainz user key here]&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Trying to run it on windows, I was unsuccessful. Turning to my laptop running Fedora, I got a &lt;code&gt;connection error&lt;/code&gt; the first run. On the second try, I &lt;a href=&quot;https://community.metabrainz.org/t/ytm-extractor-import-youtube-music-listens-to-listenbrainz/707619/2&quot;&gt;started getting a response&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Chunk 0: response={&amp;quot;status&amp;quot;:&amp;quot;ok&amp;quot;}

from 1768863748 to 1770944627
Chunk 1: response={&amp;quot;status&amp;quot;:&amp;quot;ok&amp;quot;}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When you submit new data to ListenBrainz, it takes a while to show up in your profile&#39;s Dashboard. It can take up to 24 hours. The ListenBrainz service &lt;a href=&quot;https://listenbrainz.readthedocs.io/en/latest/general/data-update-intervals.html#user-statistics&quot;&gt;only recompiles your listen history&lt;/a&gt; once every 24 hours to conserve server resources. Finally, after trying many scripts, it was sending data!&lt;/p&gt;
&lt;h2 id=&quot;current-data&quot;&gt;Current Data&lt;/h2&gt;
&lt;p&gt;My listening activity number jumped from around 76 000 to over 92 000, but a lot of this data was erroneous. Plus, I would need to manually link any &lt;a href=&quot;https://listenbrainz.org/settings/link-listens/?page=1&quot;&gt;unlinked tracks&lt;/a&gt; to fix any unidentified tracks. I don&#39;t suggest dumping all your historical listen data directly.&lt;/p&gt;
&lt;p&gt;The next morning, my newly imported listens were reported on the stats page.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/elVpNSln7k-958.avif 958w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/elVpNSln7k-958.webp 958w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/elVpNSln7k-958.png&quot; alt=&quot;Graph from ListenBrainz before&quot; width=&quot;958&quot; height=&quot;805&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/inhJjHR6_k-928.avif 928w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/inhJjHR6_k-928.webp 928w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/inhJjHR6_k-928.png&quot; alt=&quot;Graph from ListenBrainz after&quot; width=&quot;928&quot; height=&quot;753&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;You can see the most significant rises in &lt;em&gt;listens&lt;/em&gt; from 2019 to 2026, which is consistent with being the time in which I&#39;ve used YouTube with my account to watch music videos and listen to songs though the app, while signed-in, on my television.&lt;/p&gt;
&lt;h2 id=&quot;app-and-extension-choices&quot;&gt;App and Extension Choices&lt;/h2&gt;
&lt;p&gt;I use these apps to listen to music and scrobble those listens to &lt;a href=&quot;https://sineadaharold.com/2023/12/24/to3-retiring-last-fm/&quot;&gt;ListenBrainz&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.strawberrymusicplayer.org/&quot;&gt;Strawberry Music Player&lt;/a&gt; for playing music from my computers,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/web-scrobbler/web-scrobbler&quot;&gt;Web Scrobbler&lt;/a&gt; for scrobbling listens from Firefox and Chrome,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://foxxmd.github.io/multi-scrobbler/&quot;&gt;Multi-Scrobbler&lt;/a&gt; a docker containerized app for scrobbling from YouTube Music.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://picard.musicbrainz.org/&quot;&gt;MusicBrainz Picard&lt;/a&gt; for tagging and organizing music files in my library.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.rockbox.org/&quot;&gt;Rockbox&lt;/a&gt; an alternative firmware for iPod&#39;s that tracks listens with a &lt;code&gt;.scrobble.log&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#39;m glad that I was finally able to import all of the music listening data into ListenBrainz. It gives me a great base of data moving forward. I still don&#39;t have a solution to automatically scrobble vinyl or cassette listens.&lt;/p&gt;
&lt;h2 id=&quot;psa&quot;&gt;PSA&lt;/h2&gt;
&lt;p&gt;I ended up with thousands of duplicates and skipped track scrobbles (from my YouTube history) in my listen history. A lot of the listings had the same listen times. It didn&#39;t help that I had re-submitted my scrobbles.&lt;/p&gt;
&lt;p&gt;The extra listens aren&#39;t the fault of the script. Your YouTube Watch History contains records for each and every song with the time and date. The issue being, that if you skip a track (only listen for a few seconds), it appears to be a complete listen in your YouTube history and is imported by ytm-exporter the same way. It can&#39;t differentiate between a few seconds and listening to an entire song.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/lnYHr5Hfcn-396.avif 396w&quot; sizes=&quot;100vw&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://theonlyblogever.com/blog/2026/lnYHr5Hfcn-396.webp 396w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://theonlyblogever.com/blog/2026/lnYHr5Hfcn-396.png&quot; alt=&quot;Screenshot from YouTube listening history from Google Takeout&quot; width=&quot;396&quot; height=&quot;601&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://Last.fm&quot;&gt;Last.fm&lt;/a&gt; only scrobbled once you had listened to a song halfway through. Skipped tracks were skipped in the scrobbling process. &lt;em&gt;This should be the expected behaviour for all scrobbling software.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;postscript&quot;&gt;Postscript&lt;/h2&gt;
&lt;p&gt;I had made a backup of my ListenBrainz data in November 2025 that was clean of any erroneous scrobbles. My solution was to delete all of the listening data in my ListenBrainz profile. I cleaned up my listen history from February 2026 to November 2025 and exported the data and added those &lt;code&gt;.jsonl&lt;/code&gt; files to my previous backup. Creating a &lt;em&gt;ytm-extractor free&lt;/em&gt; archive in the process.&lt;/p&gt;
&lt;p&gt;Once I had a clean profile with no listens, I then used the ListenBrainz import tool to re-import my clean listen data. Importing my previous ListenBrainz data, my spotify extended history and my Rockbox log, &lt;strong&gt;I ended up with 76 993 listens.&lt;/strong&gt; Close to what I had previously.&lt;/p&gt;
&lt;p&gt;If you&#39;re unsure about importing your YouTube watch history into ListenBrainz using ytm-exporter, I would recommend setting up a new ListenBrainz account and testing the data imported before doing the same in your usual account. Afterwards, you can delete the test account to help save server resources.&lt;/p&gt;
&lt;p&gt;There is a CLI tool called &lt;a href=&quot;https://github.com/kellnerd/elbisaur&quot;&gt;elbisaur&lt;/a&gt; that can help &lt;a href=&quot;https://wiki.musicbrainz.org/listenbrainz/elbisaur&quot;&gt;process and view&lt;/a&gt; that &lt;a href=&quot;https://github.com/purarue/google_takeout_parser&quot;&gt;data&lt;/a&gt; before importing.&lt;/p&gt;
&lt;p&gt;I chose to create a test account and start scrobbling there, but that&#39;s a story for another time...&lt;/p&gt;
&lt;p&gt;Happy listening!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Digital Sovereignty is Important</title>
    <link href="https://theonlyblogever.com/blog/2026/digitallife.html" />
    <updated>2026-02-08T11:59:00Z</updated>
    <id>https://theonlyblogever.com/blog/2026/digitallife.html</id>
    <content type="html">&lt;p&gt;On an individual level, digital sovereignty means &lt;a href=&quot;https://www.coryd.dev/posts/2026/owning-your-data&quot;&gt;storing my own digital data&lt;/a&gt; on my personal computers that I control. This means that I have sole physical and digital access to the information.&lt;/p&gt;
&lt;p&gt;This security is important to me. Knowing where my tax records, photos, notes, music and bank statements are located helps me sleep soundly. It’s part of the reason I’ve been such a strong advocate for self-hosting on this blog. I’m not all-the-way self-hosting in my own home data centre, but I’m working towards that goal.&lt;/p&gt;
&lt;p&gt;At a larger level, digital sovereignty means keeping data within the data&#39;s own geographic boundaries be they municipal, county, provincial or federal boundaries. For example, information about my quarterly property tax should be held on computer servers located in the town containing the property. Information about my drivers license should be stored on servers located within the province (or territory) where the licence is registered. Information about my Canadian passport should be stored on servers physically inside of Canada.&lt;/p&gt;
&lt;p&gt;This secure data, containing personal information, should have access controls, query logging, and scheduled audits to ensure that it is kept on premises and secured from ex-filtration. Additionally, it should be physically secured in sealed government or corporate facilities. This is especially true for educational institutions, healthcare providers, financial institutions, and insurance providers.&lt;/p&gt;
&lt;p&gt;Of course, I would be naive to believe that all of this data is properly stored and securely held within the physical boundaries listed above. I know that there must be personally identifying information on servers owned and controlled by Amazon (AWS), Microsoft (Azure), Apple (iCloud) and Google (Workspace). Some of this data, I have no choice but to accept its storage in corporate data centres. For instance, there is no alternative checkbox on my health insurance providers web portal asking: &lt;span class=&quot;emphasis-box&quot;&gt;To ensure your personal health information stays sovereign, Click Here Now! Elbows Up… You maple-guzzling loon-loving canuckster!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Glorious and Free&lt;/em&gt; our data is not.&lt;/p&gt;
&lt;h2 id=&quot;resigned-to-failure&quot;&gt;Resigned to failure.&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Or, how I learned to stop worrying and love the offshore corporatization of our domestic institutional infrastructure.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Something real solid or still,&lt;br&gt;
To ground me with instinct,&lt;br&gt;
To feel before I think and think before I know,&lt;br&gt;
To know, know before I act, act before I grow,&lt;br&gt;
In control, with fear I&#39;ll hold,&lt;br&gt;
Cutting me loose from old rules.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Source: Old Rules by Hot Water Music (2001)&lt;/p&gt;
&lt;p&gt;On-site infrastructure like servers, data cabling and racking is still commonplace in some industries, but the allure of the cloud is too well marketed to ignore.&lt;/p&gt;
&lt;p&gt;Data ex-filtration and security breaches are now &lt;a href=&quot;https://haveibeenpwned.com/&quot;&gt;commonplace&lt;/a&gt;. Your identifying information (email address, login name, password, full name, phone number, SIN, credit card number and postal address) has most certainly been exposed. &lt;span class=&quot;emphasis-box&quot;&gt;Don’t worry, this isn’t an #ad for deleteme or nordvpn.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This is a reminder that security posture matters. Check your &lt;a href=&quot;https://haveibeenpwned.com/Passwords&quot;&gt;passwords&lt;/a&gt;, encrypt your drives, use 2 factor authentication (2FA), including TOTP wherever possible, and use a &lt;a href=&quot;https://keepassxc.org/&quot;&gt;password manager&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Better yet, try and delete accounts for services you aren’t using anymore. Will it actually be truly deleted? You’ll never know. At least, if you can’t log into the service following your deletion request, there’s a good chance curious web users cannot either.&lt;/p&gt;
&lt;h2 id=&quot;end-notes&quot;&gt;End Notes&lt;/h2&gt;
&lt;div class=&quot;inspiration-box&quot;&gt;&lt;p&gt;This post was inspired by the post &lt;a href=&quot;https://techwontsave.us/&quot;&gt;Tech Won&#39;t Save Us&lt;/a&gt; podcast episode titled &lt;a href=&quot;https://podcastindex.org/podcast/669959&quot;&gt;Why Countries Must fight for digital Sovereignty w/ Cecilia Rikap&lt;/a&gt; from August 21, 2025.&lt;/p&gt;
&lt;/div&gt;</content>
  </entry>
</feed>