As I've said in the past , I really like technical discussion that happens across blog posts. I think it can be a really wonderful way to get deep look at a topic. And because different people are involved, you get to enjoy a variety of style and perspective. Well, wouldn't you know that I've been inspired to do just this! I was reading a recent post by John Sundell on protocols and…
A while ago, I went on a bit of a quest to better understand AI. As part of that, someone pointed me to two essays written by Dario Amodei , the CEO of Anthropic. I found them both to be incredibly thought-provoking and I'm very glad I read them. Just in case you have not read them yourself, here are some very light summaries. And I want to emphasize light, because both of these essays are…
There was a great Swift Group Lab session recently. And this follows a similar concurrency-specific session which was also wonderful. I think the format is a little challenging for the panelists, but they manage to do a great job regardless. It's so valuable to have real questions answered by the people that built the stuff. And I happen to really enjoy the live, unscripted discussion. (I was…
Recently, I was asked an interesting question. If the purpose of an actor is to protect mutable state, is a stateless actor pointless? At first, I thought it was an easy answer. Actors exist to define a little, protective bubble around state. They "isolate" data away from any unsafe accesses. An actor that has nothing to isolate seems like a strange thing. Can such an arrangement serve a purpose?…
I have never published a WWDC wishlist, or ever even really thought much about one before. But, there are some areas that I'm definitely interested in, so I thought it would be fun to share. Here's my "watchlist" of things I'll be paying special attention to. Combine Movement Of any kind really. But if I had to predict, I would expect there to be zero changes and no deprecations.…
After a bit of break, it's finally time to continue my "step-by-step" series. This one will take a look at everyone's favorite language feature: protocols. Of course by "look" I mean a novel. Actually, the last installment was also about protocols. But that was coming at it from the side of adding a conformance. Here, we'll be creating our own protocol. These two things go…
I have been a Rake user for a very long time. It has been preinstalled on macOS since forever, it is super flexible, and very powerful. It's implemented in Ruby. And Ruby's syntax is particular well-suited to quickly defining custom DSLs . Rake really runs with this idea and takes it quite far. And that's the reason I'm thinking about this today. Christian Tietze has been…
Did you know that we got a little present in the Xcode 26.4 release? As of that version, Xcode now supports package traits. I was so excited about this when I discovered it, I immediately had to give it a try to see how it works. I've only done some some basic experimenting, but I think it's great. Quick Summary SwiftPM introduced trait support in 6.1. Traits give a package a way to…
I have been working on updating the tests in a package from XCTest to Swift Testing for a while. Most of the work was very straightforward. But a handful of tests were actually quite hard to migrate. I did find a solution and I thought it could be interesting. Expectations The system I was testing involved a bunch of callback functions. The tests needed to verify that they were called, and in the…
I'm a pacer. I find it helps me think. And let me tell you, I have been doing just an enormous amount of pacing recently. I believe that many other people are in a similar situation, at least as far as the thinking part goes. I have been struggling to understand AI. And I don't mean how to choose a model or set up an agentic workflow. I mean, like, the broader implications . On the one…