A Pattern for Unit Testing Completion Blocks in Objective-C

Asynchronous APIs turn out to be a very useful way of programming, especially in event-based frameworks like Apple’s iOS and OS X. The prevalent idiom for implementing asynchronous APIs is using blocks. Blocks are an implementation, by Apple, to their C, C++ and Objective-C compilers that implement closures. Having functions being first-class citizens via blocks gives the three aforementioned languages a whole new flexibility, while retaining the language’s previous advantages.

Read the full article

Exposing a HTTP endpoint for Docker

Recent versions of Docker (>= 1.3.0) no longer expose a HTTP endpoint, opting instead the more secure HTTPS protocol. Unfortunately it may not be possible in some environments or with some tools to use HTTPS. The following is a quick workaround to use the socat utility to proxy access to the Docker socket.

Read the full article

Installing Extra Packages on Boot2docker

Like a lot of other Mac users, I run boot2docker to run Docker on my laptop. Boot2docker is a tiny Linux VM that is usually run headless under Oracle’s VirtualBox. Boot2docker runs a relatively unknown Linux distribution called Tiny Core Linux. Tiny Core is pretty neat, but it’s not obvious how to install extra packages like you might easily do on other Linux distributions. Here’s how to install extra packages on your boot2docker instances.

Read the full article