RSSAmplifier

Blog

Surgical Diversions

My time out of the operating room

thefragens.comRSS feed ↗167 posts

Latest posts

Git Updater Lite v3

Git Updater Lite is a Composer-distributed client library that lets plugin and theme developers receive automatic updates from a Git Updater server without exposing access tokens. Updates use HMAC-SHA256 signed URLs with a two-step download process for secure token-free delivery.

Git Updater and OAuth

Git Updater delegates OAuth flows to an external connector service, keeping client secrets off the WordPress site while providing seamless token-based authentication for GitHub, GitLab, Bitbucket, and Gitea.

PressConf 2026 in Pictures

A collection of photos from PressConf 2026, showcasing the event's highlights, speakers, and attendees.

Astro & Claude

After seventeen years on WordPress, I rebuilt my blog as a static site using Astro and Claude — and I had no idea what either of them were a week ago.

WCUS 2025 in Pictures

A photo gallery from WordCamp US 2025, shot almost entirely in monochrome on a rangefinder camera, with generous crops on some images.

The Hiatus is Over

The author announces a return to the WordPress ecosystem after a hiatus, focusing on the FAIR Package Manager project -- a decentralized and federated plugin and theme distribution system built on the ATProto protocol that reached MVP and launched at the Alt Ctrl Org Conference during WCEU 2025 in Basel.

PressConf 2025 in Pictures

A photo gallery from PressConf 2025, the reincarnation of Pressnomics, shot mostly in black and white on a fixed 35mm lens with a rangefinder camera and lightly processed in Photomator.

Update API Server

This post clarifies that Git Updater functions as an Update API Server rather than a direct update server since actual plugin and theme files are served from the git host, and describes virtual integration via the Additions tab along with a cache-flush REST endpoint for use with GitHub webhooks.

Git Updater Lite

Git Updater Lite is a lightweight composer library that lets WordPress plugin and theme developers distribute updates outside of wp.org by pairing with a Git Updater-based Update API Server, offloading data-gathering to the server and keeping the embedded updater minimal.

WordPress on Hiatus

A long-time WordPress Core contributor explains pausing his contributions after Matt Mullenweg added a politically charged login checkbox to WordPress.org that he cannot in good conscience check, while reflecting on nearly a decade of Core contributions and expressing hope the community can heal.

Contributing to WordPress, a Letter to Matt

An open letter to Matt Mullenweg arguing the WP Engine controversy has harmed the community and proposing cost-sharing for WordPress.org infrastructure, placing the site under the WordPress Foundation, and broadening what counts as a contribution under Five for the Future.

WCUS 2024 in Pictures

A photo gallery of images taken at WordCamp US 2024 in Portland, displayed in a three-column grid.

Setting up WordPress local docker environment for Apple Silicon

A step-by-step checklist for standing up the official wordpress-develop Docker environment on Apple Silicon, covering Homebrew, git, Docker, nvm, npm, docker-compose overrides, and shortcut commands for initializing, cleaning up, running PHPUnit tests, and applying Trac patches.

Git Remote Updater, the Personal Remote Management System

Git Remote Updater is a WordPress plugin that serves as a personal remote management system, letting developers push Git Updater-managed plugin and theme updates to multiple sites with a single click via REST API webhooks, organized either by repository or by site.

WP Core Development with Local Lightning

Step-by-step instructions for setting up a WordPress core development environment using Local Lightning on macOS, covering both the core.git and develop.git repositories, PHPUnit, patch application, npm build tooling, and Apple Silicon-specific notes for nvm and Node.

Bringing WordPress Core to PHP 5.6 and Beyond

An overview of the Servehappy / Site Health project and the safeguards added in WordPress 5.1 and 5.2 to protect sites during the transition away from end-of-life PHP versions, covering the dashboard PHP callout, plugin install and update blocking, activation protection, and WSOD recovery mode.

Translations Updater and Easy Digital Downloads

The Translations Updater Composer library integrates with Easy Digital Downloads Software Licensing to provide decoupled language pack updates for EDD-licensed plugins and themes by adding just two extra entries to the existing EDD SL configuration array.

Translations Updater

Translations Updater is a Composer library that brings decoupled language pack updating to plugins and themes hosted outside of WordPress.org, letting developers maintain a separate public translations repository and distribute only the locale files a site actually needs.

Install a Zipfile with GitHub Updater

GitHub Updater gained the ability to install plugins and themes directly from a local zipfile path or remote URI, treating the zipfile as just another git host type in the Remote Install workflow to solve build-process dependency issues.

WordPress Debugging

The WP Debugging plugin automatically enables WordPress debug constants in wp-config.php on activation and removes them on deactivation, bundling optional tools like Query Monitor, Debug Bar, and a log viewer to make PHP error identification accessible without manual file editing.

Installing Gitea on a Raspberry Pi

A guide to installing the self-hosted Gitea git server on a Raspberry Pi 3B+ to maintain a long-term test environment for GitHub Updater integration, linking to a detailed gist with step-by-step instructions verified through multiple installs including notes on updating Go and Gitea afterward.

GitHub Updater and Gitea

GitHub Updater gained support for Gitea, a lightweight self-hosted Go-based git server, through a collaborative pull request with community contributor Marco Berchart, with the integration being the simplest to add yet thanks to the Gitea API closely mirroring the GitHub API.

Gallery Test

A test of the gallery layout and component.

GitHub Updater - the Path to 8

Version 8 of GitHub Updater raises the minimum PHP requirement to 5.6, introduces a more modular architecture with new hooks, adds automatic plugin renaming on activation, and improves the Settings UI with icons, tooltips, and WP-CLI and webhook support.

GitHub Updater and Background Updates

GitHub Updater now offloads its remote API calls to WP-Cron so update data is fetched in the background, dramatically reducing dashboard wait times while providing status indicators so users know processing is still in progress.

Local by Flywheel (Pressmatic) and Symlinks

A walkthrough of using symlinks with Local by Flywheel to mirror a local git repository into the wp-content plugins or themes folder, with a bash script to automate recreating the symlinks after the Volumes addon sets up shared folders so IDE editing and version control work together seamlessly.

Medical Staff – Hospital Alignment

The growing misalignment between hospital medical staffs and administration is examined, with a hybrid solution proposed involving employed physicians and service line co-management agreements to improve engagement and quality metrics.

WordCamp Orange County 2016

Slides from the WordCamp OC 2016 talk on contributing to open source are embedded via the Embed PDF Viewer plugin and also linked from SpeakerDeck, with a WordPress TV video to be added once published.

Happy Birthday Sophie!!

A short birthday greeting of love to Sophie.

WordCamp LAX 2015

Slides and a WordPress TV recording from the WordCamp LAX 2015 talk on plugin development are shared here.

GitHub Updater & GitLab

Version 4.5.0 adds support for GitLab, GitLab CE, GitLab Enterprise, and GitHub Enterprise via new plugin headers, alongside a refactored abstract API class and a dedicated Messages class.

Smash API Rate Limit & More

Version 4.3.0 adds a personal GitHub Access Token setting to raise the API rate limit to 5000 calls per hour, along with plugin branch switching and a View details link on the plugins page.

GitHub Updater and Error Messages

HTTP error codes from the GitHub and Bitbucket APIs are now surfaced as WordPress admin notices, with a 401 indicating an authorization failure and a 403 indicating a surpassed rate limit along with the reset time.

GitHub Updater Logo

A hand-drawn concept sketch submitted to LogoMajestic resulted in a professional logo for GitHub Updater that matched the original vision on the very first pass.

Looking for a Logo

A WordCamp sponsorship request prompted the search for an official logo for GitHub Updater, leading to a hand-drawn concept sketch and the start of work with a professional logo designer.

GitHub Updater 4.1.0

The v4.1.0 release delivers community bug fixes and a new remote install feature that eliminates the manual download-rename-upload workflow for GitHub and Bitbucket plugins and themes.

GitHub Updater and Remote Installation

The v4.0.0 release introduces namespacing and PSR-4 autoloading, and the upcoming v4.1.0 adds one-click remote installation of plugins and themes from public and private GitHub and Bitbucket repositories using the WordPress upgrader classes.

Refactoring and Autoloaders

Refactoring work on GitHub Updater and The Events Calendar Category Colors adopts PHP 5.3 namespacing and PSR-4 autoloading via spl_autoload_register, with class aliasing used to maintain backward compatibility across plugin versions.

Private Bitbucket Repositories

An update to GitHub Updater reorganizes the Settings page so clients enter their own Bitbucket credentials, improving security by letting developers add clients as read-only users without exposing the developer password.

Automatic Plugin & Theme Updating From GitHub – Part 3

Recent improvements to GitHub Updater include privileged-user-only execution, spl_autoload_register for class loading, Parsedown for changelog rendering, a new Settings Page for storing credentials outside the repository, and a fix for a long-standing bug preventing Bitbucket private repository updates.

Automatic Plugin & Theme Updating From GitHub – Part 2

A technical deep-dive into how GitHub Updater scans plugin and theme headers, queries the GitHub and Bitbucket APIs with transient caching to avoid rate limits, and hooks into WordPress core update mechanisms with minimal overhead for both developers and end users.

WCLAX

A short announcement about attending WordCamp LAX, with plans to bring a daughter along and hopes she enjoys it as much as her brother did.

Automatic Plugin & Theme Updating From GitHub – Part 1

The origin story of GitHub Updater traces the plugin from its roots as a frustration with manually FTP-ing updates across multiple sites, through a series of forks and collaborations with Gary Jones, Seth Carstens, and Paul Clark, to a combined plugin-and-theme updater.

The Events Calendar Outlook Import Fix

A WordPress plugin was created to remove the X-WR-CALNAME header from The Events Calendar iCalendar output, fixing the Outlook behavior of creating a new calendar instead of adding the event to the default one.

Gaming during Vacation

A photo post capturing a moment of gaming while on vacation.

Sporting a New Look

Tom McFarlin released his Mayer theme for WordPress.org sites, making it the first purchased theme for this blog, chosen for its embrace of the decisions-over-options philosophy that results in leaner, more efficient code.

Transferring IMAP Messages

The final phase of migrating to Dreamhost involved using imapsync with a caching and sync command to transfer all IMAP mail, completing successfully for all users after a minor hiccup with moving mail accounts between domains.

Add Custom Header Images

A refactored WordPress plugin submitted to the plugin repository automatically registers all images uploaded to a page called The Headers as selectable or randomized header images, replacing any defaults.

Dreamhost, WordPress and WebDAV

Setting up nested password-protected WebDAV directories on Dreamhost required only a small .htaccess tweak to coexist with WordPress, after which a hierarchy of directories with per-user access was configured successfully through the Dreamhost panel.

Transferring WordPress

A step-by-step walkthrough of successfully migrating a multisite WordPress installation to Dreamhost using WP Migrate DB Pro for the database and SFTP for plugins and themes, tested on a spare domain before going live.