Command Line Swift


Russ Bishop
September 21, 2016

This post is mostly a brain dump of what it takes to use Swift for command line scripting.

Update: I've added -S to env. This makes things compatible with recent versions of FreeBSD. There doesn't appear to be a portable solution for Linux because it treats the entire line after the first space as a single argument rather than . . .

Read More


I came to remind you of what you once knew

Russ Bishop
September 09, 2016

Bar Ziony was asking about using type erasure to create a property that can contain any possible adopter of a protocol, but without using generics. I posted a gist but wanted to go over it in more detail, plus answer some follow-up questions.


We'll start with a protocol and two types that adopt the protocol:

protocol  . . .

Read More

Apple File System


Russ Bishop
June 15, 2016


Ars has some updated information, including details about the snapshotUtil apfs_snapshot utility.


The Apple File System is still a slightly mysterious beast. Apple has reason to be cautious: A new file system is always a huge undertaking and the risks couldn't be higher: a serious bug can cause complete data loss.

AFPS is . . .

Read More

Xcode Extensions

A brave new world

Russ Bishop
June 14, 2016

Xcode 8 now supports an official extension API. The first extension type supported is the Source Editor extension (though probably not the last). The flip-side is that Xcode 8 adopts System Integrity Protection. That means it is no longer possible to inject code into the Xcode process. Alcatraz is closed for business.

Basics of XcodeKit . . .

Read More

Packing Bytes in Swift

It's Unsafe Pointers All The Way Down

Russ Bishop
May 12, 2016

Today I want to do a small exercise in packing some Float32s into a SQLite Binary Large Object (BLOB) column. Sure I could use JSON, protobuf, or some other encoding. Yes I could also use NSNumber, NSArray, and NSCoder or plists.

Instead I want to do this purely in Swift and mostly analogous to what you'd do in C because it's . . .

Read More

Swift: Why Associated Types?

It's rabbit holes all the way down

Russ Bishop
May 03, 2016

Associated Types Series

In my last article I gave an incorrect explanation for why Swift has associated types. It was half-correct in that specific knowledge of the types gives the compiler the ability to optimize but that's really an orthogonal issue and . . .

Read More

Swift Associated Types, cont.

Sure, let's go down this rabbit hole again

Russ Bishop
April 28, 2016

Update: I originally hit publish too soon; this is the updated article.

I don't feel like I fully covered one aspect of protocols with associated types: why can they be such a pain to work with?

Why Associated Types

This rabbit hole just keeps on going; see my third article in the Associated Types series for a better explanation for why . . .

Read More

  Subscribe by Email and Never Miss a Post