This week
- Way, waaayyy back in 2010, I built a fun little game for the Palm WebOS series of phones called Mazer. I was happy with it, loads of people downloaded and played it, and then WebOS died. I recently found the source code again, and with the help of Claude AI I rewrote it to run …...
- Simon Willison wrote about how he vibe coded his dream presentation app for macOS. I also took a stab at vibe coding my dream app: an RSS reader. To clarify: Reeder is my dream RSS app and it already exists, so I guess you could say my dreams have already come true? But I’ve...
Two weeks ago
- I have a new laptop—a 128GB M5 MacBook Pro, which early impressions show to be very capable for running good local LLMs. I got frustrated with Activity Monitor and decided …
- A few days ago I wrote and published a blog post about how Swift interacts with C projects, using Raylib. Somehow, much to my delight, it has been posted on multiple social networks, like Reddit and Hackernews. Yesterday, again, I was bored. So I tried....
About a month ago
- Since Ladybird team abandoned their Swift adoption for the browser I heard a lot of criticism about the Swift ecosystem and the interaction between Swift and C/C++ projects. My usage of Swift is mainly for command line tools, recreational programming (like Advent of Code 2023...
about 1 month ago
- In “Why is Claude an Electron App?” Drew Breunig wonders: Claude spent $20k on an agent swarm implementing (kinda) a C-compiler in Rust, but desktop Claude is an Electron app. If code is free, why aren’t all apps native? And then argues that the answer is that LLMs are not good...
about 2 months ago
- I gave a talk this weekend at Social Science FOO Camp in Mountain View. The event was a classic unconference format where anyone could present a talk without needing to …
6 months ago
- Building code for Android with Meson has long been possible, but a bit hacky and not particularly well documented. Recently some new features have landed in Meson main, which make the experience quite a bit nicer. To demonstrate, I have updated the Platypus sample project to...
8 months ago
- Overview When ordering food via an app, you get integrated order status tracking, but if you order in person, you don’t. Usually you give them a name and they’ll call you or you take a number and they’ll bring the food out to you. However, Hey Tea has a nice way of connecting...
9 months ago
- tl;dr: If you are looking for a virtual qwerty keyboard for your Android, use Unexpected Keyboard. It’s really good as long as you don’t rely on autocorrect to type. Before we get to the review, we need a brief story to set up why I’m obsessed with the control key. A long time...
- After iOS 26 beta 3 was released, I grumped about the “Liquid Glass” design being dialled back. Well, it didn’t take long for that to be mostly reverted. I’m a bit conflicted about this, though. I’m happy that the shiny, refractive design is back. This looks much better to me...
10 months ago
- Why something as simple as showing a settings dialog from a macOS menu bar app took me 5 hours to figure out, and requires 50 lines of code for what should be a one-liner....
- How I built support for Anthropic Claude subscriptions in Vibe Meter 2.0, including token counting, SIMD operations, and the challenges of calculating API usage without official APIs....
- Discover how iOS 18's hidden automatic observation tracking brings SwiftUI-like reactive programming to UIKit and AppKit, making your UI code cleaner and more maintainable....
12 months ago
- Many years ago (2010 or so) I released an app called Flickr Addict for Palm WebOS phones, which automatically downloaded beautiful images from the Flickr photography website and changed the phone background image on a regular basis. I wanted to see if I could rebuild that app in...
about 1 year ago
- Setting up background tasks in SwiftUI is a little different from UIKit. Note: this post assumes you’re using BGAppRefreshTask, if your jobs are longer than 30 seconds, you’ll want to use BGProcessingTask instead. 1. Add BGTaskSchedulerPermittedIdentifiers and Entitlements...
- For a long time in Kidz Fun Art, the tablet app I built, you could draw with a rainbow brush, which is the favourite feature of many people. I noticed my eldest daughter trying to use it in such a way so to only use a subset of the colors and it was really awkward, … Continue...
over 1 year ago
- It's Cyber Monday: and I'm offering one-day, one-off discounts on my ebooks, as well as on The Pragmatic Engineer Newsletter. Here they are: The Pragmatic Engineer Newsletter: 20% off, for the first year, for annual subscriptions. Claim it here. See more details, and read...
- Workflows you can complete from your phone are seriously underrated....
- During a vacation in the rain forests of Queensland in 2001, we saw some strangler figs. These are vines that germinate in a nook of a tree. As it grows, it draws nutrients from the host tree until it reaches the ground to grow roots and the canopy to get sunlight. It can then...
- Native apps are all about control. Don’t like thing X? You can dive in and, with enough elbow grease and persistence, finally get what you want. Write your own C library. Do some assembly code. Even make your own hardware if you have to. But on the web you give up that control....
- A few weeks ago, I wrote a [guide on how to deploy React Native iOS app to TestFlight from Azure DevOps pipeline](/blog/how-to-deploy-react-native-ios-to-testflight-from-azure-devops-pipeline). Once you and testers in your team have made sure that the app is working by...
Rows per page