Link I am not a lawyer. I am an iOS software engineer who is a law nerd and who handles a lot of contracts. I am also biased against Apple's anticompetitive practices on the App Store for over a decade. Background: On April 30, 2025, the court involved in the Epic v. Apple lawsuit issued a ruling that Apple was blatantly and deliberately acting against their previous injunction, lying under oath,…
Link It’s nice to be excited about a computer company’s products again. Framework held an event today, showing off some new updates for existing products and a couple of new ones as well. I’ve been daily driving their Framework Laptop 16 running NixOS as my non-work laptop for the last year, and a few nits (and some WAY too loud fans) aside, it’s been a great machine. While I was hoping for some…
Large language models (LLMs) are a polarizing technology. It seems that no matter who you talk to, they are either magical tools that will bring about machine consciousness and the end of scarcity and human labor, or a worthless autocorrect that steals the work of the world’s creators while boiling the oceans to fill the internet with regurgitated content slop. In many social spaces online, there…
It’s been a while, huh. Looking at the archives, I haven’t updated this site in over four years. Quite a bit has changed in that time: an entire US presidential cycle, my three-and-a-half-year job at Microsoft Teams has come and gone, COVID-19 is still here, I had to say goodbye to our kitty, I bought a house, the entire nature of social media has radically changed, we lived through the boom and…
In case anyone is concerned, this is not a security vulnerability in SwiftNIO, TLS, or anything else. This is merely a debugging feature I wanted to make more obvious. I’ve been somewhat fascinated with SwiftNIO lately. There’s something magical about getting code to work at the wire protocol level, and SwiftNIO makes it easy to do it safely and efficiently. I’ll save talking about it in much…
Link I self-host a lot of the tools and services I use on a daily basis, meaning that rather than relying on iCloud or Dropbox or GitHub, I run a comparable (usually open-source) service on a server I control, either in the cloud or out of a server in my house. One thing that has been missing from that setup has been a tool to manage documents (receipts, tax forms, bank statements, etc). I…
Apple took WWDC online-only this year as a result of COVID-19. After 30-some years of the conference taking place between Santa Clara, San Jose, and San Francisco, there wasn’t precedent for this. While parts of WWDC (namely the sessions) had been easy to access online for several years, others like labs and live events were limited to on-site attendees only. Last week we found out that, really,…
Link This is a notice that I have created a new PGP key as of May 19, 2020. The old key was not compromised, but all future PGP usage should rely on the new key as of this date. The new key was created in a secure environment and is trustworthy in all places where the old key was trusted previously. The new key: pub rsa4096/0xC4DC30F85ABC6FA1 2020-05-19 [expires: 2021-06-01] Key fingerprint = DFED…
I’ve been hoping for a remake of Final Fantasy VII since the mid-2000s. Since they made a movie out of it with Advent Children , it seemed like a dream too good to ever come true to see its beautiful dieselpunk world revisited in video game form unencumbered by the technological limits of the PlayStation (and the Super Nintendo it was originally destined for). When they announced it in 2015, I was…
Link This project uses Swift 5’s new property wrappers to dynamically define and run GraphQL queries based on a SwiftUI view, similar to Relay on the web. The result: Instead of writing API connectors and view models and all that, you just say that you want a property to map to a GraphQL field, and the library builds a query for you.
Over the years, Apple has built up a portfolio of services and add-ons that you pay for. Starting with AppleCare extended warranties and iCloud data subscriptions, they expanded to Apple Music a few years ago, only to dramatically ramp up their offerings last year with TV+, News+, Arcade, and Card. Their services business, taken as a whole, is quickly becoming massive; Apple reported $12.7 billion…
One of my earliest memories of awe when learning how to program computers as a kid was wondering how the computer takes bits in the CPU and turns them into an image on a screen. When you don’t know how most of the system works, it’s easy to conclude that it is basically magic, and that the knowledge was arcane to the point of being inaccessible without tons of background in engineering and…
Video I’ve never been able to get into a flight simulator before, but I really want to check this one out. This is a fantastic in-depth look at it. Make sure to crank the resolution all the way up.
The party set off from Neverwinter with the supplies en route to Phandalin. They came across two dead horses in a choke point on the road. Hagnar went to briefly investigate, then returned to the cart, only to be ambushed by two goblins with one more sniping with arrows from the trees. Tarot charmed one, while Thunder cleaved the arm off another, leaving the third to run away as Hagnar sniped it…
Link I was a guest on The Icon Garden podcast today, talking about the newly announced SwiftUI, how it co-exists with other tools like React Native, and what it means for the future of native apps and cross-platform hybrid apps.
Link So Zoom runs a web server on your Mac (even after you uninstall the app), and that web server can launch Zoom calls via URLs, and those Zoom calls can default to having your camera open. Which apparently makes it very easy to embed something into a web page (or an ad) in an attempt to trick people into unwittingly opening a video chat. Remote video exploits are one of the worst case scenarios…
As of now my personal website should support WebSub on all pages, posts, and the RSS feed (basically everything linked in the sitemap ). If you have the capability to subscribe to pages via WebSub, you should be able to point it at any page on this site and get notified when that page updates. That’s maybe not the most useful on individual pages, but it is useful for the home page, or if you want…
Video With the impending release of the third expansion Shadowbringers, I’ve been rewatching this amazing documentary on Final Fantasy XIV, its very poor launch, and its reconstruction. It’s a fascinating tale, one that has probably never been attempted (and likely never will again).
In September 2018, the Verge posted a video that was designed to show people how to build a PC, which was full of errors and mistakes. Some were inconsequential or considered bad practice, like having bad cable management which might impede airflow but wouldn’t necessarily impact performance. Some would cause performance problems but not damage, like putting the GPU in the wrong PCI-e slot. And…