Recent pages

Durable Writes & Consistent Reads

In this second part in the "Hands On Review of the Dynamo Paper" we take a look at only acknowledging update to user after it has been written to multiple stores, and comparing read values from multiple sources to ensure consistent reads.

Hands On Review of the Dynamo Paper

Instead of just listing off the myriad interesting ideas in the Amazon Dynamo paper, I decided it would be more interesting for both myself and readers to actually walk through implementing a distributed key-value store and incrementally evolve it using the ideas introduced in the Amazon Dynamo paper.

Recurring Events and Message Passing

This article looks at a couple of approaches for implementing systems with recurring events using message-passing based concurrency (Erlang and Clojure are used in code snippets). In particular it looks at the ping-pong, circle, coordinator and gossip approaches to distributed communication.

Scalable Scraping in Clojure

A fairly indepth tutorial which takes a look at using Clojure to extract data from webpages, using agents to process data, and a few other knickknacks.

A Couple of Clojure Agent Examples

This post contains an extremely brief discussion on how Clojure agents differ from Erlang actors, and then follows with examples o fusing Clojure agents to serialize file writes, form message relays and perform parallel HTTP fetches.

Writing Files in Clojure


Another quick Clojure blog entry, this one on writing out file contents.

Reading Files in Clojure


A brief overview to approaches to reading in files in Clojure.

Setting Up TLA+ Tools on OS X


A quick walkthrough for setting up the TLA+ tools on OS X.

Comments on "Why Engineers Should Consider Formal Methods"

A few quick comments on the excellent paper from 1997, "Why Engineers Should Consider Formal Methods".

Money or Meaning: Spending Our Wealth of Time


We don't know how long we'll live, but we do know our time is limited, and life could be thought of as our endeavor to optimize the economics of our time. Yet, much like the current financial debacle, often the attempt to optimize ends poorly.

All Rights Reserved, Will Larson 2007 - 2016.