Posts

Featured Posts

Welcome and Introduction

Introduction Embracing New Projects As the nights draw in and the cooler weather sets in, it’s a perfect time to embark on a new project. Is it still worth setting up a test lab in an era where predefined automations and scripted setups dominate? While automation tools can streamline many tasks, they often rely on pre configured solutions that may not address every unique scenario. The Role of Cloud Computing While cloud computing remains a crucial component of many IT infrastructures, it’s not always the best choice for every scenario, particularly when it comes to hands-on learning and developing a deep understanding of systems. For this lab project, I’ve chosen to focus on self-hosting instead of using cloud services. By building and managing everything locally, I gain more control over each aspect of the setup, which allows for a deeper, more detailed learning experience that cloud environments sometimes abstract away. This approach ensures a thorough understanding of the under...

MUSIC AND MINECRAFT ...STOP PRESS: The "Zero-Day" Double Take & API End-of-Life??

🚨 MUSIC AND MINECRAFT ...STOP PRESS: The "Zero-Day" Double Take & API End-of-Life (2026-10-21) Incident Report: At ~17:48 UTC, all BBC dynamic audio streams on the Gigabyte Brix abruptly dropped, triggering the Sniper Daemon and routing audio straight to local holding tracks. The Investigation & Red Herrings: The PHP Zero-Day Panic: Coincidentally, October 21 saw the emergency public disclosure of critical PHP Remote Code Execution flaws (CVE-2026-109618 / "PHP2Shell"). Given the sudden loss of connectivity, the system was temporarily brought down for maintenance to rule out IP bans, rate-limiting, or local server compromise. The Real Culprit: Post-maintenance diagnostics revealed zero local compromise or network bans. Instead, the BBC officially decommissioned their legacy programmesAPI ( /programmes/.../playlist.json ) site-wide on 2026-10-21, causing yt-dlp calls to return HTML error pages instead of JSON (tracked in yt-dlp Issue #17887). https://g...

Music & Minecraft Part 4: The Sniper Daemon, Streams Watchdog, and Self-Healing Telemetry

Music & Minecraft Part 4: The Sniper Daemon, Streams Watchdog, and Self-Healing Telemetry To move beyond my old PowerShell scripts and solve the nightmare of transient stream death specifically the endless rotation of expired authentication tokens, dropped sockets, and dead YouTube live containers I designed a fully autonomous, data-driven Python fleet running natively alongside mpd on the Gigabyte Brix. As a DBA, I built the system around three core architectural principles: separation of concerns , state persistence , and aggressive self-healing telemetry . 1. Decoupled Data Architecture (Master vs. Slave) The system strictly separates content definition from stream execution: Master Files (Source of Truth): High-level, human-readable configuration manifests containing station lineups, metadata, and routing directives. These files remain completely isolated from the active player. Slave Playlists (Execution Output): Compiled .m3u playlists generated automatically by the Pytho...

Music & Minecraft Part 3: From PowerShell Scripts to the Master Array Relay Index

Music & Minecraft Part 3: From PowerShell Scripts to the Master Array Relay Index Once I had mpd humming away on the Brix and ncmpcpp running inside a remote tmux session on my phone, I had a rock-solid terminal audio engine. But feeding it live audio streams was initially a manual process. In the beginning, my workflow was simple but effective: I’d hunt down stream URLs, test them in the terminal, and pass them through custom PowerShell scripts on my workstation to output usable playlist files for mpd . For basic listening, this worked reasonably well. Passing raw URLs through PowerShell gave me direct control over what was playing without opening a single browser tab or bloated media player. However, it was still a manual, reactive process. If a stream dropped, if a token expired, or if a YouTube-backed live stream shifted its container parameters, the audio would simply die. Silence would fill the room, and I’d have to jump back into a terminal to manually run a script, re-fe...

Music & Minecraft Part 2: From Xanadu to the Kitchen... or Building a Cyberdeck-Adjacent Self-Managed Network Audio Player

Part 2: The Return Home and the Break from Consumer Tech ​By December 2025, that setup in our kitchen had grown into the absolute backbone of our home entertainment. On paper, it was brilliant: a £60 mini PC effortlessly serving up local media, handling background audio streams, and hosting a family Minecraft server without missing a beat. ​It was doing everything I originally set out to achieve. But if I’m honest, I was getting restless. ​Work had been overwhelmingly busy since the new year, so my structured training lab had to be shelved for critical tasks. My spare-time tinkering hadn't stopped completely. I’d actually been working on a totally unrelated GPS master clock project after a time-syncing issue at work inspired me, but that one is taking a while to complete. Meanwhile, the kitchen setup felt too reliant on fragile apps and external wrappers. I was desperate for a proper reset and a fresh, hands-on audio project I could actually get my teeth into and finish. ​That ...

Palate Cleanser:Star Wars Codex

Palate cleanser: THE STAR WARS CODEX  Preface While the lab project is on hold. During that downtime, I found myself watching Andor and thought: what if I approached Star Wars like a scholar would approach a holy book? Not just for me well a bit but mainly as a way to curate and share the parts of the story worth consuming with my sons. This Codex is organised into two volumes: Before the Battle of Yavin (BBY) and After (ABY), grouped by theme and media type. It includes official eras, legends, and even some of the lesser-known, unofficial stories. And yes I'm saying the sequels are apocryphal VOLUME I: BEFORE THE BATTLE OF YAVIN (BBY) Genesis (Law) Origins of the Force, early galactic history, and the foundations of Jedi and Sith philosophy. Tales of the Jedi ( Comic ) Dawn of the Jedi ( Comic , Novel ) Shadows (History) Conflicts of the ancient galaxy: Mandalorians, Sith, and the Jedi's long wars. Knights of the Old Republic ( Game , Comic ) KOTOR II: The Sith ...

Palate Cleanser Music and Minecraft

Palate Cleanser: Turning a Brix Mini PC into a Minecraft Server & Music Player Work has been really busy since the new year, so my allocated training time has had to give way to more critical tasks. The test lab project has been on hold for now, however, I’ve still been doing some tinkering in my spare time. I took a short break from the lab and decided to work on a personal project. I picked up a Gigabyte Brix off eBay for about £60, a small form-factor PC, and decided to repurpose it. Instead of running Windows 10, I installed Ubuntu Server, which matched the default OS of my Raspberry Pis and NAS, keeping everything consistent across my setup. Here’s a quick rundown of what I did. Setting Up the Minecraft Server Installed Ubuntu Server – replacing the preinstalled Windows 10. Installed Docker & Portainer – to manage containers easily. Set up a Minecraft Docker container – now the whole family can join and play together. With the Minecraft server running, I had a comp...