Command Line Swift
#!/usr/bin/awesome
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 . . .
Inception
I came to remind you of what you once knew
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.
Prerequisites
We'll start with a protocol and two types that adopt the . . .
Apple File System
Ding
Update
Ars has some updated information, including details about the snapshotUtil apfs_snapshot utility.
Original
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 . . .
Xcode Extensions
A brave new world
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 . . .
Packing Bytes in Swift
It's Unsafe Pointers All The Way Down
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 . . .
Swift: Why Associated Types?
It's rabbit holes all the way down
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 . . .
Swift Associated Types, cont.
Sure, let's go down this rabbit hole again
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 . . .