05 October 2015

Finding Counterexamples from Parsing Conflicts

How the CUP parser generator explains conflicts.

19 September 2015


A system for implementing and verifying distributed algorithms.

12 September 2015

Push/Pull for Transactions

A unified model for understanding many transactional systems.

29 July 2015

Coverability for Vector Addition Systems

Vector addition systems are a model of computation. For this model, coverability is one of the easiest decision problems. This post presents an old (1978) upper bound, with accompanying code.

27 April 2015

Tree Buffers

Circular buffers are one of the most fundamental and pervasive data structures. They are an efficient implementation for buffering linear sequences. Tree buffers are a more general data structure.

03 April 2015

RIP Herman Conjecture (2005-2015)

In 1990, Herman proposed a sweet self-stabilizing protocol. In 2005, McIver and Morgan conjectured that its running time is $\frac{4}{27} N^2$. Well … they were right.

26 December 2014

Why I use MOOCs

I saw a Google Plus post saying ‘I hope to hear less about MOOCs in 2015’. Well, I hope to hear more. Here's why.