Archive of posts from 2022

Acknowledgement part 3

Here is a progress report on the Acknowledgement feature, which is coming along nicely.

Acknowledgement part 4

I’m currently making adjustments to the acknowledgement feature based on beta feedback.

How to Win Games and Influence Teammates

In his seminal book, “How to Win Friends and Influence People,” there’s one particular anecdote that Dale Carnegie uses which I felt was particularly apropos to MOBA gaming behavior.

Acknowledgement part 5

Acknowledgement is taking a lot longer than I initially had hoped, but I continue to make progress.

Comments Enabled

I’ve enabled comments on the blog.

Acknowledgement Part 6

Speakerphone mode is now working for the Acknowledgement feature!

How I Backup my Server for Less than a Penny per Year

Backup is one of those administrative tasks that you have to take care of if you run your own server. There’s a lot of options, ranging from just copying all your files to another server yourself, to setting up a backup package, to installing a backup service from your hosting provider.

Markus Buffett on Improving on Chess

This blog post by Marcus Buffet on Thoughts on Improving on Chess made some interesting points about self-improvement in general and how to properly use self-improvement tools, and I thought there was much there that could also apply to improving at esports. I recommend reading it; it’s not too long. Then you can return here for my thoughts.

How to Record a .wav File with AVAudioEngine (Acknowledgement part 7)

Integrating the AVAudioEngine API into the rest of my app meant retooling some basic functionality, like saving .wav files.

Google Site Issues

I recently discovered that this site has more problems than I knew about.

Reiterate 1.4.0 Release

Reiterate 1.4.0, with the new Acknowledgement feature, is now available on the App Store!

Million Perfect Letters

I recently finished Million Perfect Letters by 4am. Here is my review of the game.

Dispatch Queues on Modern Swift Concurrency

As part of the Acknowldgement update to Reiterate, I also took advantage of the rewrite to move the app’s core audio code to the new Swift async/await concurrency model.

Helping Your Team Help You

One of the most often repeated pieces of advice I see for League of Legends players is: be greedy. Always play for yourself, and assume your teammates are incapable of making the correct plays. I think this is a mistake.

Using Clip Titles for Acknowledgement

Here’s a quick tip on how you can use your clip titles effectively with the Acknowledgement feature.

Weightlifting Advice from Someone Who Is No Longer Strong, Fit, Healthy, or Particularly Big

This article about weightlifting contains useful advice about working out in general, and includes one tip in particular that applies to esports play as well.

Email Obfuscation with Stimulus

Keeping email addresses away from harvester bots is an old problem. I decided to apply some new technology to it.

Mute All is Like Locked Camera

One piece of advice I’ve seen given frequently is “You should mute all your teammates at the start of every game.” Here’s why I think you should reconsider that.

Reiterate Website Updated

The Reiterate website has a fresh new look!

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.

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.

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.

Reiterate 1.4.3

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

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?

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.

Using Tags to Note Infrequent Reminders

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

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.

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.

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.

2022 Recap

That’s a wrap for year two of my blog. It’s been mostly more of the same. I look back at encouraging trend lines from Google, and forward on what’s to come.