Reading from processes safely in Haskell

The naive approach to invoking a process and reading it's output is not safe. Here's a snippet of code which does this safely.

Multiple JSON encodings in Haskell

Here's a nice "pattern" to work with multiple JSON encodings of the same set of types in a Haskell program.

Haskell at Work

I've recently (in blog years) started a new job at a company which uses Haskell quite extensively. Here are some things we do with it.

Drupal, Search API and Apache Solr with Homebrew on OS X

This is a short, no-frills guide to installing Apache Solr with homebrew on OS X, then using it with the Search API Drupal modules.

Puppet Camp Sydney 2014

I attended Puppet Camp Sydney 2014 last Monday. This is a quick round-up of the sessions.

Restricted SFTP-only access to a single directory using OpenSSH

This is a short guide to providing users with restricted SFTP access to a single directory using built-in OpenSSH functionality.

Inaugural Sydney Elasticsearch Meetup

The inaugural Sydney Elasticsearch Meetup had talks on monitoring Elasticsearch clusters and on the impending 1.0 release.

Sydney Continuous Delivery Meetup

The October Continuous Delivery meetup had talks about the continuous delivery practices of the Atlassian Stash team and about automated environment provisioning with CloudFormation and Puppet.

Post banner images with Hakyll

This post describes a proof-of-concept Hakyll site which associates a banner image with each post, automatically generates several versions of it, and makes them available as variables for use in templates.

Rewriting git commit authorship

This is a short note about rewriting the history of a git repository to change the commit authorship.