Skip to main content

Dealing with 0xdead10cc's in SwiftData

· 10 min read

I'm writing today about another tricky crash I recently solved in my Roku remote app. Unlike the the other crash I wrote about recently, this one was actually caught by the iOS crash reporter. What made this bug particularly tricky was the fact that the standard XCode crash viewer obfuscated the underlying reason for the crash. In this post, I'm going to walk through how I identified the true cause of the crash and solved the underlying problem. At the end of the writeup, I'll share some best practices I learned about managing background execution on iOS.

Troubleshooting a silent SIGPIPE crash on iOS

· 7 min read

console header picture

Over the past few months I have been working on diagnosing and fixing many of the crashes in my Roku remote app (Roam).

The app has been mostly stable for about a year now, so the majority of core logic crashes have already been fixed, leaving only unpredictable and obfuscated bugs.

I want to take some time to write about some particularly interesting crashes I've addressed that might be relevant to others troubleshooting iOS or macOS apps.

I'm starting with this SIGPIPE crash, but I'm going to write up several of these issues in a series of blog posts over the next several posts. Checkout /blog for updates.

My Discord-Based In-App Messaging System

· 16 min read

Today I'm writing about how I implemented a Discord-based in-app messaging system in my iOS/macOS application Roam for Roku. This feature allows users to ask questions and provide feedback directly within the app instead of emailing me or leaving a negative review with their feedback. I got the idea for this feature from a wonderful blog post (https://papereditor.app/dev) from the developer of the Paper application. So today I am going to describe how I implemented the same feature in my open-source app with a Discord backend.

Building Roam (A Roku Remote)

· 39 min read

Last year I bought a simple Hisence Roku TV for my living room. The TV comes with a physical remote control and Roku distributes an iOS app that can control it over the local network. But Roku does not offer a MacOS version of this app. I often sit on my couch working on my computer and want to control the TV (for example to mute an ad break) without having to find my phone or a physical remote. I first tried installing a few 3rd party apps "Designed for iPad, not verified for macOS" on my computer, but every one I tried either lacked features or wanted me to pay an absurd $25 yearly subscription to use the remote.

Announcing Roam, the best Roku Remote

· 3 min read

Roam is a Roku TV remote that works for every single iOS device, but really shines on macOS.

With Roam, I have tried to integrate deeply into the apple ecosystem, with support for keyboard shortcuts on macOS, hardware volume buttons on iOS, widgets, shortcuts and siri integration for quick access. I'm even hoping to get an app clip working soon!

Roam app icon

Roam app icon

Double Pendulum Chaos Visualization

· 13 min read

Introduction

What is chaos? Chaos is seen a crowded room, a shattered glass and a uncontrollable dog. At its deepest level, chaos is disorder and unpredictability.

In mathematics and physics, chaos means something very specific

  • sensitive to starting conditions
  • non-repeating

These two ideas mean that chaotic problems are impossible to solve exactly and difficult to solve approximately. But they're very important problems to work on because chaos theory is the reason that things like the weather, the stock market and fluid flow is so hard to predict. If we can get better at predicting hurricanes or stock market crashes, we can do a better job preparing for them.