Dynamic Colors in SwiftUI using ShapeStyle in iOS 17

Jesse Squires recently asked on Mastodon whether SwiftUI still lacked support for dynamic colors. Ultimately he shared a solution that uses UIColor / NSColor under the hood to achieve the desired effect. There are other solutions floating around that work in a similar way, like one from John Sundell. We’ll need to keep doing that as long as we need to support iOS 16 and earlier, but with iOS 17 and aligned releases SwiftUI finally has a built-in answer for this: custom ShapeStyles. [Read More]

Brilliant, Terrible Hacks in Dual Booting an Old Netbook

CathodeRayDude (via J. B. Crawford): I wrote about Phoenix Hyperspace a few days ago. I have finally obtained one of the very, very, very few machines that shipped with it, and it turns out the way it works is even more batshit nuts than I’d read. […] Dual and Hybrid are both straightforward ideas. A hypervisor is clumsy and overkill, but not really that strange a solution. The other one is just a normal Linux with a shortcut in Windows that reboots and selects the other partition, like we had in 1997. [Read More]

How to Use UIPasteControl in iOS 16

At WWDC22, Apple announced that iOS 16 will show a modal prompt when an app tries to paste from the pasteboard without user interaction. Along with this change, Apple introduced a new UIKit control that gives apps a standard way to let users paste without showing said prompt: UIPasteControl. At the time I wrote this, the documentation was pretty sparse. Most of the flow is based on existing APIs, but you may not be aware they exist—I wasn’t! [Read More]

One Year on the App Store

About a year ago I released Ryuusei on the App Store. Ryuusei is one of the first side projects I started, certainly the side project I’ve put the most time and effort into, and the first app I’ve put on the App Store on my personal developer account. All told, it’s a Pretty Big Deal™ for me! It was a huge moment when I hit the button to release it to the world. [Read More]

Trashing macOS Server: Extra 1 - Revisiting Time Machine

I mentioned in my post about Time Machine that Samba 4.8 supports Time Machine, but that it wasn’t available on Ubuntu 16.04, so I went with Time Machine over AFP using Netatalk. After months of backing up over AFP, I started having some problems with backups becoming corrupt. This story is part of a series on migrating from macOS Server to Ubuntu Server. You can find all of the other stories in the series here. [Read More]

Trashing macOS Server: Part 4 - Server Backups

While I was using macOS Server, keeping files on the server itself backed up was easy with Time Machine. I wanted a similar solution for my Ubuntu server: frequent incremental backups that “just work”. This story is part of a series on migrating from macOS Server to Ubuntu Server. You can find all of the other stories in the series here. Finding a Tool I came across a handful of tools for taking scheduled backups on Linux. [Read More]

Giving Up the Ghost: Using Hugo for Blogging

Earlier this year, I started using Ghost for my blog. After a few months, I’ve decided to make another change in platform, this time to Hugo. Why Switch? I have a handful of reasons for migrating away from Ghost. Hiding Markdown The biggest reason I had to distance myself from Ghost was that they have started making Markdown harder to use. Typically, I write my posts in Markdown using Caret, sync them in iCloud Drive, and then paste them into the Ghost editor. [Read More]

Trashing macOS Server: Part 3 - Plex, Transmission, and Flexget

A little while back I automated my anime and manga habit using Plex, Flexget, and Transmission on my macOS server. Configuring these services on Ubuntu was plenty easy, but there were a couple of differences compared to the macOS server. This story is part of a series on migrating from macOS Server to Ubuntu Server. You can find all of the other stories in the series here. A Quick Note This post will be a bit vague in some areas. [Read More]

Trashing macOS Server: Part 2 - Time Machine

I’m a big fan of having my computers make Time Machine backups to my server—it’s more convenient than fumbling around with an external drive. Getting Time Machine to back up to a non-Apple machine requires a little bit of work, though. This story is part of a series on migrating from macOS Server to Ubuntu Server. You can find all of the other stories in the series here. A Few Notes There are quite a few guides out there for getting Time Machine to talk to a Linux machine. [Read More]

Trashing macOS Server: Part 1 - File Server

One of the most important things to have on a home server is some kind of file server. I chose to replace macOS Server’s file server with Samba on Ubuntu. This ended up being one of the more difficult things to get correct. This story is part of a series on migrating from macOS Server to Ubuntu Server. You can find all of the other stories in the series here. [Read More]