Jekyll Website Optimization for GitHub Pages - Part 1November 09, 202522 min read After running this Jekyll-based website for a couple years (since July of 2023), I’ve learned valuable lessons about optimizing Jekyll sites for GitHub Pages. This blog initially started as a consolidation of several blog websites I’d published over the years. This is Part 1 of a two-part series covering the foundational optimizations that have made the biggest difference for my homelab blog. read more Generate Git Timesheet from Commit LogsNovember 02, 202510 min read Generate Git Timesheet from Commit Logs I hate time tracking. Seriously. Most time tracking tools require you to remember to start timers, categorize work, and generally interrupt your flow to feed some system that’s probably going to be wrong anyway. But when you’re freelancing or need to report hours on projects, you’re stuck with it. So I built a Python tool that generates timesheets from git commit history - because your commits are already there, they’re timestamped, and they actually reflect when you were working on stuff. read more Enabling SMART Monitoring on Seagate USB DrivesOctober 26, 20254 min read USB drives are notorious for hiding their SMART data behind finicky USB-to-SATA bridges. If you’ve ever tried to check the health of a Seagate USB drive and gotten frustrated with “unsupported field in scsi command” errors, you’re not alone. After wrestling with several Seagate drives in my homelab, I finally figured out the magic incantations needed to get SMART data working. Here’s how to do it properly. Note: The decision to not allow this in Linux as a default was done for a good reasons. You are playing with fire as some drives behave erratically. I have not experienced this with recently purchased USB Drives, but older ones did have quirks and issues. So buyer beware. read more Dell Wyse 3040 eMMC Storage Health MonitoringOctober 19, 20255 min read I found out awhile ago that eMMC storage is a different thing entirely when it comes to health monitoring. This is especially true when you’re booting from it like on the Dell Wyse 3040s of which I have several in my homelab. The goal is to get some status information on the eMMC storage health, but the usual SMART utilities don’t work on eMMC. root@pve1:~# smartctl -H /dev/mmcblk0 -d auto smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.8.12-1-pve] (local build) Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org /dev/mmcblk0: Unable to detect device type Please specify device type with the -d option. Turns out eMMC has its own health monitoring system that’s actually pretty useful once you know how to access it. I figured I would share my experience since it took some time to figure out. Maybe this will help someone else. read more Posts 2025-11-09 Jekyll Website Optimization for GitHub Pages - Part 1 2025-11-02 Generate Git Timesheet from Commit Logs 2025-10-26 Enabling SMART Monitoring on Seagate USB Drives 2025-10-19 Dell Wyse 3040 eMMC Storage Health Monitoring
Jekyll Website Optimization for GitHub Pages - Part 1November 09, 202522 min read After running this Jekyll-based website for a couple years (since July of 2023), I’ve learned valuable lessons about optimizing Jekyll sites for GitHub Pages. This blog initially started as a consolidation of several blog websites I’d published over the years. This is Part 1 of a two-part series covering the foundational optimizations that have made the biggest difference for my homelab blog. read more
Generate Git Timesheet from Commit LogsNovember 02, 202510 min read Generate Git Timesheet from Commit Logs I hate time tracking. Seriously. Most time tracking tools require you to remember to start timers, categorize work, and generally interrupt your flow to feed some system that’s probably going to be wrong anyway. But when you’re freelancing or need to report hours on projects, you’re stuck with it. So I built a Python tool that generates timesheets from git commit history - because your commits are already there, they’re timestamped, and they actually reflect when you were working on stuff. read more
Enabling SMART Monitoring on Seagate USB DrivesOctober 26, 20254 min read USB drives are notorious for hiding their SMART data behind finicky USB-to-SATA bridges. If you’ve ever tried to check the health of a Seagate USB drive and gotten frustrated with “unsupported field in scsi command” errors, you’re not alone. After wrestling with several Seagate drives in my homelab, I finally figured out the magic incantations needed to get SMART data working. Here’s how to do it properly. Note: The decision to not allow this in Linux as a default was done for a good reasons. You are playing with fire as some drives behave erratically. I have not experienced this with recently purchased USB Drives, but older ones did have quirks and issues. So buyer beware. read more
Dell Wyse 3040 eMMC Storage Health MonitoringOctober 19, 20255 min read I found out awhile ago that eMMC storage is a different thing entirely when it comes to health monitoring. This is especially true when you’re booting from it like on the Dell Wyse 3040s of which I have several in my homelab. The goal is to get some status information on the eMMC storage health, but the usual SMART utilities don’t work on eMMC. root@pve1:~# smartctl -H /dev/mmcblk0 -d auto smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.8.12-1-pve] (local build) Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org /dev/mmcblk0: Unable to detect device type Please specify device type with the -d option. Turns out eMMC has its own health monitoring system that’s actually pretty useful once you know how to access it. I figured I would share my experience since it took some time to figure out. Maybe this will help someone else. read more