Trending Articles, Demos and tech notes
From Local Builds to Production DevOps: Automating Joomla Extension Release Management
In 2026, automated release pipelines are no longer a luxury reserved for large engineering teams — they are the baseline expectation for any serious software project. Yet a surprising number of Joomla extension developers are still shipping releases by hand, copying files over SSH, and hoping nothing was missed. This article documents how we migrated our own Joomla extension build process from manual local builds to a fully automated, Git-based release pipeline — and why, in today's environment, that shift is more important than ever.
TL:DR – Moving from a manual, error-prone release process to a robust automated pipeline takes real effort upfront, but the payoff is immediate: faster releases, fewer mistakes, and a professional workflow that scales as your extension portfolio grows.
- Details
- Written by: Angus Fox
Read more: From Local Builds to Production DevOps: Automating Joomla Extension Release Management
Joomla Server emails via Google Workspace in 2026
Why Joomla Email Delivery Still Matters in 2026
Email remains the backbone of transactional functionality for Joomla websites. Registration confirmations, password resets, payment receipts, and account notifications are not optional features — they are expected, immediate, and in many jurisdictions legally significant. A single misconfigured mail server can halt workflows, frustrate users, and erode trust faster than almost any other technical failure.
Getting email right inside Joomla has never been straightforward, and in 2026 it is harder than ever. Authentication requirements have tightened across the board, Google has closed off legacy access methods entirely, and spam filtering has grown sophisticated enough to silently discard messages that would have sailed through just a few years ago. The days of pointing Joomla at a mail server with a username and password and calling it done are over.
This guide focuses specifically on the Google Workspace path — still the most common setup for small to mid-sized Joomla deployments — and covers what actually works today, what has changed recently, and how to build a setup that will not quietly break on you.
TL:DR – If you use Google Workspace, App Passwords remain a practical and supported route for Joomla's server email, provided two-factor authentication is enabled and you monitor the credential carefully. SMTP relay is the cleaner option if your server has a fixed IP. OAuth 2.0 is Google's preferred direction but Joomla core does not yet support it.
- Details
- Written by: Angus Fox
Read more: Joomla Server emails via Google Workspace in 2026
Five alternatives to the Google Pixel 10a, but its still the no1 choice mid range android
The Google Pixel 10a, launched in April 2026 as the latest entry in Google's celebrated mid-range line, has already generated serious buzz — and for good reason. With a brighter display, faster charging, tougher glass, and the same Tensor G4 chip as its flagship sibling, it raises the bar for what a sub-£500 Android phone can do. But the mid-range market in 2026 is more competitive than ever, so before you hit buy, it's worth knowing what else is out there.
TL:DR – The Pixel 10a is the standout choice if you're shopping for a mid-range Android right now in mid-2026. Launched on 25 April 2026, it brings a 6.3-inch P-OLED display hitting up to 2169 nits peak brightness, Gorilla Glass 7i front and back, a 5100mAh battery, and 30W wired / 10W wireless charging — all powered by the Tensor G4 chip with full Gemini AI support. At £499 it sits well below the Pixel 10 (£799) and Pixel 10 Pro (£999), and Google's enhanced trade-in promotion runs until the end of June 2026, so if you've got an old Pixel or iPhone gathering dust, now is the time to cash it in.
- Details
- Written by: Angus Fox
Read more: Five alternatives to the Google Pixel 10a, but its still the no1 choice mid range android
Tips for Recovery Success Using GNU ddrescue on Ubuntu Linux
Data loss remains one of the most stressful experiences a computer user can face, whether caused by hardware failure, accidental deletion, or something more sinister like ransomware. In 2026, GNU ddrescue remains the gold standard for low-level data recovery on Linux — a battle-tested tool that has been actively maintained for over two decades. This guide walks you through the full recovery workflow on Ubuntu Linux: diagnosing your drive with smartctl, visualising your disk layout with GParted, and performing the actual rescue with GNU ddrescue. Where relevant, we also cover DDRescue-GUI, a paid graphical front-end that makes the process considerably more approachable.
TL;DR — GNU ddrescue provides the most reliable way to copy as complete an image as possible from a failing drive, minimising the risk of catastrophic data loss. Before you reach for it, though, check your drive with GParted and smartctl from smartmontools. If the drive is actually healthy, you may be able to simply mount it and copy your files the normal way — no imaging required.
- Details
- Written by: Angus Fox
Read more: Tips for Recovery Success Using GNU ddrescue on Ubuntu Linux
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
Working headless RDP with GNOME Remote Desktop on Ubuntu 25.10
Setting up GNOME Remote Desktop for headless multi-user RDP access on Ubuntu 25.10 (Questing Quokka) is tricky. This guide shows a working approach if the out of the box clean install doesn't work using only the software included with Ubuntu Desktop and uses openssl to generate TLS certificates. It explains common errors you may see and how to resolve them.
TL:DR – I never really got this working on Ubuntu 25.04 So I spent a few hours trying to get to the bottom of it and finally it works!
- Details
- Written by: Angus Fox
Read more: Working headless RDP with GNOME Remote Desktop on Ubuntu 25.10
- iPhone 5s 2026 iOS 12.5.8 surprise software update
- Running Gitea with Let’s Encrypt on macOS via Homebrew
- Running Homebrew Apache with Let's Encrypt SSL on macOS Tahoe
- Use an Apple Magic Mouse on Windows 11 PC
- Warning: AI guardrails are not in place.
- Improving product management productivity with AI
- Beyond the glimmer of Liquid Glass is a sparkle concealing a revolution
- New Cassette recorders in 2025
- Refactoring a Node.js app with Gemini CLI
- UK MacBook pick of the week = July 2025
- Grab some useful apps with Amazon Coins before they expire!
- Is Teams Essentials Worth It?