Custom MacOS Notifications

I wanted Jekyll to notify me when it had completed building my site. Getting it to work the way I wanted involved patching together a bunch of almost-solutions from different places.

How To Filter Journalctl By Unit

Journalctl is the standard way of viewing system logs on Linux. But since the logs from all processes get consolidated in one place, it can get quit spammy if one process dumps a lot of output. Here is how I filter out those bad processes.

Designing a REST API in Swift

Reiterate uses a backend server to coordinate its in-app purchases. The app and server communicate via a REST API. Here’s how I implemented that in Swift.

Using Tags to Note Infrequent Reminders

One of the ways to use Reiterate’s tag feature is to filter infrequently-used tips.

Creating Custom Bundles for On-Demand Resources

For the new in-app purchase flow, with on-demand resouorces, I needed to organize Reiterate’s products into separate bundles.

You Should Almost Always Vote Yes to Surrender

League of Legends offers players the ability to forfeit games. After a certain amount of time, any player can start a surrender vote, and if enough players vote Yes then the game ends with a loss. When is it appropriate to surrender a game?

Reiterate 1.4.3

Reiterate has been updated to version 1.4.3 and is now available on the App Store.

Transaction Verification with the App Store Server API and Rails

Apple released the new StoreKit 2 API, and I’ve been working on updating Reiterate to use it.

Eliminate Autopilot with Acknowledgement

Everyone agrees that autopiloting is a bad habit. Here’s how you can use Reiterate, and specifically its Acknowledgement feature, to eliminate autopilot from your game play.

How to Suppress Fatal Logging from Rails Middleware

This bothersome bit of intrusion bot spam has been vexing me for some time, and I’ve finally figured out how to fix it.