I’ve recently done the work of changing my social media feeds on apps like Instagram and TikTok away from politics to things that make me happier. For me, those are animals, musician friends, and Formula 1. I think this is a good choice for my ongoing mental health. Formula 1 is interesting because I’ve never [ ]
Toward the end of last summer I started interviewing to become an engineering manager for a company located in Hobart, Tasmania. After going through the visa process, packing my things, and traveling for roughly thirty hours, I arrived on the other side of the world. It’s been about two months now and aside from being [ ]
Yesterday I decided to stop waiting and install macOS 26 Tahoe. It s a mixed bag. Everything they added for apps other than the design updates, I like. I’m a big fan of the Journal app. Having it on macOS is awesome. I ve never been able to stick with Day One, but for some reason Journal [ ]
For most, LLMs are useful for two things. As a search engine, or to work out your own ideas. Other than those, they can be actively harmful — using them for medical advice or therapy. Everyone seems to hate half-baked AI features infecting everything they use. Who likes it are executives. These ghouls hope that [ ]
Part of Mark Twain s semi-autobiographical book Roughing It talks about his visit to Salt Lake City in the 1860s. His review of the Book of Mormon is absolutely worth reading, because it s hilarious. He talks about the overall style is was written in and pulls out many specific sections which he entirely pulls apart. The [ ]
For the last couple of weeks, since my post about Playdate Season 2, I ve become obsessed with learning the Playdate SDK and learning to make games. The project I ve been working on as a learning experiment is a Breakout clone that uses the Playdate s crank for movement, which I ve titled Crankout. I posted the source [ ]
Something I’ve been told a lot is that I tend to pick things up faster than most. I don’t know if that’s true — maybe everyone does exactly what I do. Maybe there’s a better way. Regardless, I have a pretty good idea of how I learn things, so here’s what that is. The way most tutorials, guides and lessons work is by breaking things down at a high level into easily digestible chunks. I hate this. I…
Looking at my schedule, I’m going to have at least a couple months of availability for freelance iOS/macOS/Ruby work starting immediately. I’m a former Apple engineer (2018-2021); experienced with all of the current app frameworks and technologies. Capable of working on any size project, new or existing. If you re working on getting your iOS/macOS 26 [ ]
If like me, you bought a Playdate when it came out, played some or all of the games in Playdate Season One , and then put it in a drawer, I strongly recommend checking out Season Two . My issues with season one was that most of the games I played were pretty shallow, and didn’t really hook me ( Pick Pack Pup being an exception) after playing them a couple of times. Mostly, they felt like tech…
A situation I ve found myself in twice now is wanting to hide a folder in Finder without making it a dotfile, which would also hide it when using ls. Turns out there is a flag for this. To hide a file from the command line, use chflags hidden. To show it again, chflags nohidden. I [ ]
If you ever desired a premium title casing experience (tongue in cheek), you can now sign up for an account on title.love and save your titles. The next feature I m going to add is being able to set your title casing style preference (AP, Chicago, Daring Fireball), and then probably tagging and search. This is [ ]
I put up a small title casing website called title.love built with Ruby on Rails. Right now it is just a single page app with a text field, so it doesn’t really need a back end at all. It was a good chance to try out Kamal however, which, so far, I’m loving. It wasn’t [ ]
Unlike some of my friends, I’m not the biggest fan of the kind of AI code completion that tries to write blocks of code for you as you type, but I was still kind of excited to see what Apple’s version of that in Xcode would look like and wanted to give it a try. [ ]
After seeing John Gruber s post where he asked this question of ChatGPT, I decided to give it a shot. Here s what I got. You’re a sharp, self-directed person with a strong bullshit detector. You value clarity, precision, and efficiency—especially in communication. You’re technical, with deep experience in software development (notably in Swift, Ruby, and Apple [ ]
At this point, I am primarily working in SwiftUI. At work right now, we are doing macOS and iOS, and we’re not using AppKit or UIKit at all. Where I’m at right now in my thinking is that while I do like SwiftUI, I kind of miss the old way of doing things. UIKit and [ ]
Here s a simple function I wrote for the fish shell to show the current git branch name in the titlebar, along with an asterisk if there are any local changes.
Listen — it’s not that I don’t want to use Vim keybindings. I’ve done it before. They’re fun. It’s kind of like giving your text editor a manual transmission. The reason I’m not using them now is because I don’t want one way of working with text on my computer which works with my editor, [ ]
I wrote myself this small template as a starting place for when I m writing shell scripts. I just wanted something basic with enough structure to remind me how I like to do things. I thought maybe it would be helpful for other people who don t write shell scripts too often but want to them to [ ]
Every new editor makes it harder to write extensions for than the last. TextMate used any shell script that could handle stdin/out. BBEdit can also do a lot with shell scripts and has great AppleScript support if you want more integration. Visual Studio Code wants me to create an entire project in TypeScript. Nova is [ ]
I know it s not safe and goes against the whole ethos of Swift, but after having worked a lot in Ruby, being able to generate methods at runtime is a killer feature, and I miss it dearly. Swift is all about safety and static analysis, and those are totally valid goals for a language to [ ]