TL;DR: The private podcast account is set up but not yet recorded; I’m looking to do that sooner rather than later. I’m looking to possibly abandon exclusive Overcast support which I’ll briefly talk about. This article walks through the process of defining the conditions for unit testing and how I’ve decided to go about writing the first set of unit tests.
Continue readingCategory: Projects (Page 2 of 32)
Posts introducing, updating, and covering various projects to which I’ve contributed or that I maintain.
TL;DR: In this post, I cover PHPUnit, PHP, phpunit.xml
, unit testing, and macOS and how to get them all to work together despite what ships with macOS.
In the initial draft of this post, I wrote about how I was going to start writing unit tests for small pieces of functionality as well as show exactly what functionality I was writing (and the why behind it).
But this took a weird turn that that led me on a long digression into three things:
- PHPUnit 9,
- the version of PHP that ships with macOS,
- And how to get them to work together nicely.
So rather than try to cover all of that in a single post, I thought it better to talk about PHPUnit, PHP, phpunit.xml
, and macOS in a single post, then get back to to the practical work of building the project.
TL;DR: After thinking through what it might be like to build something like this over the next few-however-long-it-takes, publishing a podcast on something like this seems like a fun and logical thing to do especially since this whole project is about podcasts.
But this won’t be in the traditional sense of podcasts. Instead, I’m particularly interested in what Castos is doing with private podcasts.
Continue readingTL;DR: I listen to quite a few podcasts and want to make sure that I’m backing them up for posterity. There are apps for this, yes, but I’m a fan of reading how other developers work on their projects. I’ve never written about building something from the ground up. It’s personally edifying and it helps others who are also building things, as well.
This is the first post in a series in which I will talk about building a small application (that will eventually be a WordPress plugin) for backing up podcasts as provided by an XML export from Overcast.
This may be a painful read for some who are experienced developers (so maybe don’t read it). Or maybe it won’t be. But one of the things I recently heard, in a podcast no less, sums up both the point of this project and the project I’m working on:
[the podcaster] simply created a type of show he wanted to hear and hope others shared his taste and a similar desire.
I, like many of you, am a fan of listening to podcasts and do so for a significant amount of time during my week. My favorite podcast application is Overcast which provides an XML export of all of the podcasts to which I’m subscribed and to the episodes of each podcast.
For a long time (as in over a year which, given last year, has felt like a long time), I’ve wanted to work on an application for backing up my podcasts with the ultimate goal of turning it into a WordPress plugin.
But then I had the idea that maybe I’d start from scratch. And I don’t mean “software developer scratch.” I mean starting from nothing.
- No web server,
- No database,
- No libraries,
- Just an IDE and PHP,
- And then I’ll go from there.
Like anyone, the time to work on stuff like this is limited, but this is something I want to build for myself. And given that I like to read other people’s experience with doing this kind of stuff, I’m going to share the process from beginning to end.
I hope to document all of the little problems, frustrations, idiosyncrasies, good ideas, bad ideas, and random thing that go throughout the process of putting this thing together.
So if that sounds like something interesting, then feel free to continue reading.
Continue readingA couple of weeks ago, I shared a small plugin I was working on, Remove Empty Shortcodes, that will – as the name implies – remove empty shortcodes from posts and pages where shortcodes are no longer present.

Today, I’ve tagged another release of the plugin and its available for download on GitHub.
Continue reading