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

Functors, Applicatives, and Monads in Plain English

This is a no-bullshit zone

Russ Bishop
April 18, 2016

Let's learn what Monads, Applicatives, and Functors are, only instead of relying on obscure functional vocabulary or category theory we'll just, you know, use plain english instead.


Functors are containers you can call map on. That's it. Seriously.

A million words of category theory and Haskell examples to say Functors . . .

Read More

Type Erasure

It's parameters all the way down

Russ Bishop
April 11, 2016

Update: You can read even more about type erasure with lots of example code

A friend of mine @purpleyay gave a talk at try! Swift in Japan about type erasure this week last month. For those of us who didn't attend, what's the deal with type erasure anyway?

More specifically, what is type erasure in the context of Swift and Protocols . . .

Read More

  Subscribe by Email and Never Miss a Post