Inklings: a tumblelog

Why vector clocks are easy

The truth, though, is that vector clocks are actually very simple, and a couple of quick rules will get you all the power you need to use them effectively.

The simple rule is: assign each of your actors an ID, then make sure you include that ID and the last vector clock you saw for a given value whenever to store a modification.

CWE - 2010 CWE/SANS Top 25 Most Dangerous Software Errors

Your Code Sucks - Girl Developer

Hell is your code, hell is my code five minutes from now, wisdom is knowing both you and I had good reasons for writing that code that way.

The League of Moveable Type

We’re done with the tired old fontstacks of yesteryear. Enough with the limitations of the web, we won’t have it. It’s time to raise our standards. Here, you’ll find only the most well-made, free & open-source, @font-face ready fonts.

Noticed this appearing in FreeBSD ports earlier today. Some of the typefaces are fantastic! Must take a more detailed look at this.

What Happened to Yahoo - Paul Graham

In technology, once you have bad programmers, you’re doomed. I can’t think of an instance where a company has sunk into technical mediocrity and recovered. Good programmers want to work with other good programmers. So once the quality of programmers at your company starts to drop, you enter a death spiral from which there is no recovery.

How very, very true.

Green Unicorn - Welcome

Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP Server for UNIX. It’s a pre-fork worker model ported from Ruby’s Unicorn project. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resources, and fairly speedy.

Using Git with a central repository

This tutorial explains how to share a Git repository among developers. It is meant for small teams who are adopting Git for the first time, and want to get started quickly with a familiar setup before exploring Git’s many new possibilities.

If you follow this route, you will end up with a single centrally-hosted repository that everyone in your group can use to publish their own work and fetch whatever others have published. People used to a centralised VCS will find this model easy to adjust to, but of course, each user’s “working copy” will itself be a fully-fledged Git repository, and many new workflows are available to users as they learn more.


Gerrit is a web based code review system, facilitating online code reviews for projects using the Git version control system.

Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.

Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer. This functionality enables a more centralized usage of Git.

How to modify a Korg Monotron

The article has yet more information, so take a read of that too.

[DS-10] Endless Stroll

Excellent live performance with a KORG DS-10 game card as the synth.

Midi to CV Gate Converter

Zawinski's saw on lazy thinking applied to economics

Jamie Zawinski once said,

Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.

But lazy thinking like this doesn’t just happen in software development. Consider economics:

Some people, when confronted with a problem, think ‘I know, Let’s let the market decide.’ Now they have two problems.

Lazy thinking is everywhere. Now, back to your regularly scheduled programming.

Scoping and use of the 'global' keyword in Python

type() vs. isinstance() in Python