Software Engineering in WordPress, PHP, and Backend Development

Category: Projects (Page 2 of 32)

Posts introducing, updating, and covering various projects to which I’ve contributed or that I maintain.

Building Backcast, Part 3

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:

  1. PHPUnit 9,
  2. the version of PHP that ships with macOS,
  3. 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.

Continue reading

Building Backcast, Part 2

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 reading

Building Backcast, Part 1

TL;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 reading

Introducing Remove Empty Shortcodes

Last week, I discussed everything that went my decision on retiring site memberships. For those who were members (or even read the initial idea), you may recall that I was using Restrict Content Pro to power the site.

When retiring the memberships, I wanted to make sure I was able to maintain the integrity of all of the posts that I’d published simply without the shortcode that comes with RCP.

What started off as a simple plugin to remove the RCP shortcode turned into a plugin to remove all empty shortcodes. I’m opting to open the plugin’s repository so anyone can access it (or contribute issues, code, or create their own fork from it).

At the time of this writing, the plugin is at 0.4.0 so there’s not much to expect. But I enjoy reading the what and why other developers do in their projects, so I’m going to do so with Remove Empty Shortcodes.

Continue reading
« Older posts Newer posts »

© 2024 Tom McFarlin

Theme by Anders NorenUp ↑