Trending Articles, Demos and tech notes
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
Chrome Local Network Permission on macOS
What It Is and Why It Can Be So Hard to Diagnose
Starting with Chrome 130, Google introduced a new permission prompt that asks users whether a website should be allowed to access devices on their local network. This change aligns Chrome's behavior with the privacy goals outlined in the Private Network Access specification, a W3C proposal designed to prevent malicious websites from reaching routers, printers, smart home devices, and other hardware that sits behind a firewall.
On macOS, this permission works alongside the operating system's own network permission layer, which means users and administrators can find themselves troubleshooting problems that involve two entirely separate permission systems at once. The result is a diagnostic challenge that is easy to underestimate.
TL:DR – If you find this because Google sent you here after a few hours of staring at `ERR_NAME_NOT_RESOLVED`, `ERR_ADDRESS_UNREACHABLE`, or `net::os_error: 65` (ENETUNREACH) when Chrome can't reach a host on your own network, scroll to "The fix" at the bottom. The first 80% of this post is the diagnostic journey, because the journey is the lesson: the obvious suspects were all innocent, and the real cause was a quietly broken state in macOS itself.
- Details
- Written by: Angus Fox
Read more: Why Chrome couldn't reach my LAN web server on macOS, and why it wasn't DNS
Rebuilding 928uk® in Flutter
After three years on FlutterFlow's managed build service, we relaunched 928uk as a hand-rewritten Flutter app this month, published to both the App Store and Google Play via their respective review processes. The work spanned several weeks and the end result is: a clean codebase, a self-hosted CI/CD pipeline, and learning a stack of small App Store-review compliance items that you only learn about by tripping over them. Here is the shape of the journey.
TL:DR – Two weeks to refactor a and publsh a mobile app in Flutter with repeatable local control of automated builds.
- Details
- Written by: Angus Fox
MacBook Neo is the first indicator of the Ternus era
MacBook Neo Is the First Indicator of the Ternus Era
There is a particular kind of moment in Apple's history that only becomes legible in retrospect. The introduction of the original iMac in 1998 looked, to many observers at the time, like a colourful curiosity. The first MacBook Air, unveiled by Steve Jobs from a manila envelope in 2008, seemed to some like a compromised machine for a niche audience. It is only later, when the thread becomes visible, that you understand you were watching the opening statement of something much larger. The MacBook Neo looks to me to be one of those moments.
TL:DR – The MacBook Neo was launched before Ternus became CEO but it is a sign of what his tenure will be about
- Details
- Written by: Angus Fox
Read more: MacBook Neo is the first indicator of the Ternus era
GitHub Copilot’s Data Policy Shift: What It Means for Developers and Organisations
A recent communication from GitHub signals a notable shift in how user data may be leveraged to enhance its AI tooling, specifically GitHub Copilot. From 24 April 2026, interactions with Copilot, covering prompts, generated code, snippets, and contextual metadata, may be used to train and refine AI models unless users explicitly opt out.
At first glance, this reads as a standard product improvement notice. In reality, it introduces a set of material risks that warrant closer scrutiny, particularly for developers working within commercial, regulated, or security-sensitive environments.
TL:DR – For organisations, this is not merely a developer preference setting. It is a governance issue.
This update is not unusual. It is, however, consequential.
AI-assisted development is rapidly becoming standard practice. But convenience should not quietly erode control. The default settings of tools rarely align with the risk tolerance of serious organisations.
A small configuration choice left unchecked can have unintended consequences
Act accordingly.
- Details
- Written by: Angus Fox
Read more: GitHub Copilot’s Data Policy Shift: What It Means for Developers and Organisations
Why the New Low Cost MacBook Neo is a Game Changer
Apple redefined the entry-level laptop market with the introduction of its new low cost MacBook Neo. This model not only aims to attract budget-conscious consumers but also fills a significant gap in Apple's existing product range, which has traditionally focused on premium devices. The new models target students and first-time Mac users who require reliable technology without the high price tag typically associated with Apple products.
TL:DR – Game changing new MacBook is likely to be hugely successful with far better price performance and appeal than competitive Chromebooks and low end Windows machines for education users, general business users and budget conscious iPhone users.
- Details
- Written by: Angus Fox
Read more: 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
- Beyond the glimmer of Liquid Glass is a sparkle concealing a revolution
- Improving product management productivity with AI
- Refactoring a Node.js app with Gemini CLI
- Grab some useful apps with Amazon Coins before they expire!
- MacBook Pro pick of the month