Trending Articles, Demos and tech notes
Building for One, Part two: what it costs to buy one command
Part one ended with an app that ran. A calm iPad display for someone in the early stages of dementia — what day it is, what is happening now, what is next, and what is for tea. Tested, documented, and living entirely on one laptop.
TL;DR – Part two is about the two days spent turning that into this:
git push origin v0.1.0-beta1
One command. It runs the audit, builds both platforms, archives and signs iOS against a pinned certificate, signs Android with its own upload key, and delivers to TestFlight and Google Play internal testing. Both stores, from one tag.
- Details
- Written by: Angus Fox
Read more: Building for One, Part two: what it costs to buy one command
Maintaining Gitea with Let's Encrypt on macOS via Homebrew — and the push failure nobody warns you about
Gitea is a lightweight, self-hosted Git service that runs happily on a spare Mac. Installing it through Homebrew with Let’s Encrypt HTTPS takes an afternoon — and then, weeks later, a routine brew upgrade breaks every git push with a baffling “Internal Server Connection Error” while the web UI carries on as if nothing is wrong. This is the full setup, plus the one failure that cost me an evening and the one config line that fixes it for good.
TL;DR – The short version. this is a single line fix in app.ini. The rest of this article is how to get there in the first place.
- Details
- Written by: Angus Fox
Building for One, Part one: a calm iPad display for someone living with dementia
This is the first part of a build-in-public series about an app we have been thinking about for a year or more, finally started work on, and are still building. It is called Daysome, although the icon reads My Day. It shows one person, on one iPad, what day it is, what is happening now, what is coming next, and what is for tea. That is the whole thing.
We are writing this up as we go rather than after the fact, partly because the interesting decisions are the ones that get forgotten once a product looks finished, and partly because we are looking for a small number of families and care professionals to test it on real hardware. If that might be you, there is a note at the end.
Daysome - a calm iPad display for someone living with dementia


TL;DR – Part one covers the first few days: where the idea came from, why we chose the stack we did, how the requirements arrived, one small development tool that saved more time than anything else we built, and the point at which we put it under version control and pointed it at TestFlight, Apple's app testing system for the App Store.
- Details
- Written by: Angus Fox
Read more: Building for One, Part one: a calm iPad display for someone living with dementia
Really loud alert from my phone
The Loudest Text You Never Signed Up For
The UK Emergency Alert system has become one of the more consequential infrastructure deployments in British telecommunications, capable of pushing a loud, siren-like notification to compatible mobile devices simultaneously across a geographic area without collecting a single phone number or piece of location data from recipients. As of August 2026, the GOV. UK alerts portal reports two current active alerts, with the most recent dispatched at 7:01pm on Friday, 14 August 2026, underscoring that the system has moved well beyond its initial test phase into routine operational use.
TL;DR – There are some concerns about this technology which we outline below along wth instructions for opting out or switching these alrerts off, and the background to this technology is described furter in our UK Emergency Alert backgrounder
- Details
- Written by: Angus Fox
When Vendors Retrain on Your Data Without Asking Permission
The Quiet Rewrite: How Vendors Are Claiming Your Data for AI Training

Photo: Angus Fox — via admin.atlassian.com — CC BY 4.0
Across enterprise software, a structural shift is underway. Vendors that once positioned themselves as custodians of customer data are quietly rewriting the terms of that relationship, amending service agreements to permit the use of customer-generated content for AI model training. The mechanism is rarely dramatic. It arrives as a terms-of-service update, or buried in a changelog or communicated through a notification most users dismiss without reading.
TL;DR – You should demand that software agreements include an explicit AI training opt-out that is active by default, not buried in settings or dependent on a user locating a consent toggle.
- Details
- Written by: Angus Fox
Read more: When Vendors Retrain on Your Data Without Asking Permission
Linux Formally Embraces AI Code Contributions With Human Accountability Rules
Linux Kernel's Official AI Guidelines: What the Rules Actually Say
The Linux kernel project has formalized its stance on artificial intelligence in software development, adopting a policy framework that charts a deliberate middle course between outright prohibition and unregulated acceptance. Rather than banning AI tools or treating them as a free pass for unreviewed code, the new guidelines establish a system of human accountability at every stage of the contribution process.
- Details
- Written by: Angus Fox
Read more: Linux Formally Embraces AI Code Contributions With Human Accountability Rules
Xcode simulators can be very nearly impossible to delete
The Hidden Storage Hog Living Inside Your Mac
If you have been using Xcode for any meaningful stretch of time, there is a good chance your Mac is quietly running out of room — and you may have no idea why. Xcode simulators are one of the most persistent and underappreciated causes of ballooning disk usage on a developer's machine, accumulating gigabytes of data in the background without ever surfacing a single warning or prompt.
The problem compounds itself in two distinct ways. First, simulator runtimes themselves take up significant space — each iOS, watchOS, or other platform simulator you have ever downloaded leaves behind a substantial footprint. Second, Device Support files pile on top of that. These are files Xcode writes to ~/Library/Developer/Xcode/iOS DeviceSupport and equivalent directories for every device and OS version combination you connect or target. Neither category cleans itself up reliably, and neither is especially visible in day-to-day use.
To put a real number on it: I freed up 150GB of disk space after running cleanup commands on a machine with. 1TB SSD. That is not years of neglect — that is less than a year of ordinary Xcode use silently consuming the equivalent of thousands of photos or hours of video.
- Details
- Written by: Angus Fox
Read more: Xcode simulators can be very nearly impossible to delete
Disk full on a Mac? Check for old iOS backups hogging space
Why iOS Backups Are Silently Eating Your Mac's Storage
Every time you connect an iPhone or iPad to your Mac and sync it through iTunes (on older macOS versions) or Finder (on macOS Catalina and later), your Mac quietly creates a full local backup of that device. These backups are designed to be a safety net, but over the years, they have a habit of becoming a hidden storage crisis.
The problem compounds with each device upgrade. When you move from one iPhone to the next, a new backup is created for the new device, but the old backup is rarely deleted automatically. After two, three, or four device cycles, you can easily have a collection of backups sitting on your Mac that you have completely forgotten about. Each individual backup can run to tens of gigabytes depending on how much data, photos, and app content was on the device at the time it was created.
- Details
- Written by: Angus Fox
Read more: Disk full on a Mac? Check for old iOS backups hogging space
Rotating the root of trust — break-glass key rotation for a Joomla licensing system
If you sign your extension’s subscription-validation responses with an RSA key, that private key is the root of trust for every copy you’ve ever shipped. So what do you do when it might have been exfiltrated? You can’t just mint a new one and swap it in — the instant you do, every customer’s extension rejects the new signature and in our case drops to the free tier limiting functionality they paid to subscribe to.
TL:DR – This is how I rotated a possibly-compromised signing key across a live Joomla subscription system without breaking the field, plus the one design idea that made it safe.
- Details
- Written by: Angus Fox
Read more: Rotating the root of trust — break-glass key rotation for a Joomla licensing system
New rules to protect children online in the UK
The UK Government Draws a Line in the Sand on Social Media for Under-16s
On 15 June 2026, Prime Minister Keir Starmer announced that the United Kingdom will ban children under the age of 16 from using a range of social media platforms. The move follows one of the largest public consultations ever conducted by the current government.
TL:DR – The ban raises profound questions not just for parents and policymakers, but for anyone involved in building digital products.
- Details
- Written by: Angus Fox
Wiring AdMob in Flutter: Eight Hashes for Two Apps
In 2026, integrating AdMob into your Flutter applications has become a more streamlined yet nuanced process. Ongoing updates in both the Flutter ecosystem and AdMob itself, make it crritical that developers ensure test ads are served correctly and reliably on test devices. This article outlines our experience implementing AdMob banners in two Flutter applications, porjects parchment and linen, while addressing the challenges we faced along the way and how to effectively resolve them.
Our two apps are still in production: parchment (a community app) and linen (a citizen-reporting tool). Both are built with Flutter, released via TestFlight and Google Play, and utilise Firebase along with Fastlane + Gitea CI for continuous integration. Recently, we integrated google_mobile_ads banners into both applications. Our testing devices include physical Google Pixel phones, and physical iPhones, test builds are delivered via Google Play Internal Test track and TestFlight respectively. With two apps and several devices, we faced the challenge of marking each device-app pairing as a test device for AdMob to avoid serving real ads during our internal testing, which could lead to violations of AdMob's policies regarding invalid traffic.
TL:DR – Managing test devices for AdMob is much harder than it should be in 2026. It is far too easy to serve live adverts to test devices and risk a policy violation.
- Details
- Written by: Angus Fox
Read more: Wiring AdMob in Flutter: Eight Hashes for Two Apps
- Why Chrome couldn't reach my LAN web server on macOS, and why it wasn't DNS
- Rebuilding 928uk® in Flutter
- MacBook Neo is the first indicator of the Ternus era
- GitHub Copilot’s Data Policy Shift: What It Means for Developers and Organisations
- Why the New Low Cost MacBook Neo is a Game Changer
- Five alternatives to the Google Pixel 10a, but its still the no1 choice mid range android
- iPhone 5s 2026 iOS 12.5.8 surprise software update
- Joomla Server emails via Google Workspace in 2026
- Working headless RDP with GNOME Remote Desktop on Ubuntu 25.10
- From Local Builds to Production DevOps: Automating Joomla Extension Release Management
- Running Gitea with Let’s Encrypt on macOS via Homebrew
- Running Homebrew Apache with Let's Encrypt SSL on macOS Tahoe