All Memos

Read Me First

Date
Tags meta
Target Audience Everyone

Machines

Date
Tags howto, possessions, tech
Target Audience Not you.

A GOV.UK Incident

Date
Tags gov.uk, tech
Target Audience Everyone

Personal Finance

Date
Tags finance, hledger, howto
Target Audience Mostly me, & possibly personal finance nerds.
Epistemic Status Documents my way of doing things, doesn't attempt to speak more generally than that.
Attention Conservation Notice You may get something out of this if you're rethinking how you manage your finances.

List of Granfalloons

Date
Tags bokononism, life
Target Audience Not you.

SMS and Email Alerting for Hardware Failure

Date
Tags aws, programming
Target Audience Programmers & hobby sysadmins.
Attention Conservation Notice This is a fairly straightforward application of Amazon SNS.

Currency Conversion

Date
Tags finance, haskell, programming
Target Audience The intersection of Haskell programmers, personal finance nerds, and graph nerds.

A New Kind of Imageboard

Date
Tags culture, tech
Target Audience Imageboard dwellers & cyber-anthropologists.
Epistemic Status Totally unsubstantiated opinions, but I've been immersed in this culture for a while.
Attention Conservation Notice This is part feature list / part response to Clay Shirky's "A Group Is Its Own Worst Enemy" essay. Will I ever implement this and test these ideas out? Who knows!

Boardgames

Date
Tags possessions
Target Audience People who know me and like boardgames.

Why I dislike mocking

Date
Tags programming
Target Audience Programmers.
Epistemic Status A rant.

Interesting Research

Date
Tags research
Target Audience Computer science people.

Simplifying Execution Traces

Date
Tags concurrency, dejafu, haskell, programming, research
Target Audience People interested in the dejafu internals.
Epistemic Status This is describing the current state of a wip branch, which may yet be changed.

Using Hedgehog to Test Déjà Fu

Date
Tags concurrency, dejafu, haskell, hedgehog, programming, property-based testing
Target Audience People interested in dejafu or in property-based testing.
Attention Conservation Notice There is a fairly long preamble before I get to the Hedgehog stuff, which you can jump to directly if you don't really care about how the Déjà Fu side of this works.

I Need A Budget

Date
Tags finance, hledger, howto
Target Audience Personal finance nerds.
Epistemic Status Reflection on how I've done things for the past year, with planning for the future.
Attention Conservation Notice You may get something out of this if you're rethinking how you manage your finances.

Do Developers Update Their Library Dependencies?

Date
Tags esec, fse, paper summary, research
Target Audience Computer science people.

The Academic Mindset and Me

Date
Tags life, research
Target Audience Computer science postgrads who are a little fed up.
Epistemic Status A rant.
Attention Conservation Notice I was coming out of a bad place when I wrote this.

Why Do Developers Use Trivial Packages?

Date
Tags esec, fse, paper summary, research
Target Audience Computer science people.

How to Break an API

Date
Tags esec, fse, paper summary, research
Target Audience Computer science people.

100 Prisoners

Date
Tags concurrency, dejafu, haskell, programming
Target Audience Mostly me.
Attention Conservation Notice There's a more polished version of this in my thesis, go read that instead.

Writing a Concurrency Testing Library (Part 2): Exceptions

Date
Tags concurrency, dejafu, haskell, minifu, programming
Target Audience Haskell programmers.
Epistemic Status This is building up to a simplified form of dejafu, which is based on published research.
Attention Conservation Notice Still no fancy testing.

Writing a Concurrency Testing Library (Part 1)

Date
Tags concurrency, dejafu, haskell, minifu, programming
Target Audience Haskell programmers.
Epistemic Status This is building up to a simplified form of dejafu, which is based on published research.
Attention Conservation Notice This is setting up the basic types and functions we'll need, no fancy testing in this post.

A Multithreaded Runtime for Deja Fu

Date
Tags concurrency, dejafu, haskell, programming, research
Target Audience People interested in the dejafu internals.
Epistemic Status This isn't actually the implementation dejafu uses now, but it's close enough (and simple enough) to help understanding.

irc-client-1.0.0.0

Date
Tags haskell, irc-client, programming, release notes
Target Audience Haskell programmers.
Attention Conservation Notice irc-client is a Haskell library for writing, you guessed it, IRC clients.

Magic Mechanics

Date
Tags worldbuilding
Target Audience Not you.

Improving Performance by Discarding Traces

Date
Tags dejafu, haskell, programming, release notes
Target Audience Haskell programmers.

Notes for Summer 2017

Date
Tags life
Target Audience Not you.

Property-testing Side Effects

Date
Tags coco, dejafu, haskell, programming
Target Audience Haskell programmers.
Attention Conservation Notice dejafu-0.7.0.0 can check if a concurrent program is equivalent to or a refinement of another, using observational equivalence of side-effects.

\texttt{foo} vs \verb#foo#

Date
Tags latex, writing
Target Audience Not you.
Epistemic Status Totally unsubstantiated opinions.

Visualise your finances with hledger, InfluxDB, and Grafana

Date
Tags finance, hledger, howto
Target Audience The intersection of Haskell programmers, personal finance nerds, and graph nerds.

Haskell Style Guide

Date
Tags haskell, programming
Target Audience Haskell programmers.
Epistemic Status Totally unsubstantiated opinions.

Implementing Polymorphism

Date
Tags coco, haskell, programming, research, type checking
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

Blub Crisis

Date
Tags programming
Target Audience Not you

Shoan and the Garden Path

Date
Tags koan
Target Audience Not you.

Mixing and Matching Variables

Date
Tags coco, haskell, programming, research
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

M4 is Good

Date
Tags m4, programing
Target Audience Not you.
Epistemic Status Totally unsubstantiated opinions.

Generating Typed Expressions

Date
Tags coco, code generation, haskell, programming, research
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

Representation & Evaluation of Typed Expressions

Date
Tags coco, programming, research
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

NixOS, GHCi, and Mueval

Date
Tags haskell, howto, nixos, programming, tech
Target Audience The intersection of NixOS and Haskell users.
Epistemic Status Was accurate and true at one point, but NixOS does like to change how things are done...

Symlinks are Bad

Date
Tags tech
Target Audience Not you.
Epistemic Status Totally unsubstantiated opinions.

Imageboards

Date
Tags culture, tech
Target Audience Imageboard dwellers & cyber-anthropologists.
Epistemic Status Totally unsubstantiated opinions, but I've been immersed in this culture for a while.

Running a YUSU Society

Date
Tags howto, university
Target Audience University of York people.
Epistemic Status These are all my opinions about running a society based on doing it for several years. YUSU likes to change things, so any (or all) of this may no longer be valid.

The Way

Date
Tags life
Target Audience Not you.
Epistemic Status Totally unsubstantiated opinions.

C is not Turing-complete

Date
Tags c, programming, semantics
Target Audience C programmers & language lawyers.
Epistemic Status Based on my interpretation of the C11 spec.
Attention Conservation Notice Because of how pointers are defined in the C standard, an isolated C program is equivalent in computational power to a pushdown automata.

Three Months of Go (from a Haskeller's perspective)

Date
Tags haskell, go, programming
Target Audience Haskell programmers & Go programmers.
Attention Conservation Notice This is mostly just an opinionated rant.

Systematic Concurrency Testing and Daemon Threads

Date
Tags concurrency, programming, research
Target Audience Mostly me, & possibly concurrency testing nerds.
Epistemic Status I guess it's possible I've misunderstood every paper on concurrency testing I've read and they actually do address this topic.
Attention Conservation Notice There's a subtlety in partial-order techniques when daemon threads are involved which has caught me out a couple of times.

Strict-by-default vs Lazy-by-default

Date
Tags haskell, programming
Target Audience Haskell programmers.
Attention Conservation Notice In every discussion of Haskell, the issue of strict vs lazy evaluation comes up. I think laziness is the better default.

Concurrency and Typeclass Laws

Date
Tags dejafu, haskell, programming, semantics
Target Audience Haskell programmers.
Attention Conservation Notice By calling dejafu from within a property test, we can check laws of classes which do concurrency.

dejafu-0.1.0.0

Date
Tags dejafu, haskell, programming, release notes
Target Audience Haskell programmers.
Attention Conservation Notice dejafu is a Haskell library for testing concurrent programs.

Reducing Combinatorial Explosion

Date
Tags concurrency, programming, research
Target Audience Mostly me, & possibly concurrency testing nerds.
Epistemic Status Summarises existing research.

hledger

Date
Tags finance, hledger, howto
Deprecated By personal-finance
Target Audience Mostly me, & possibly personal finance nerds.
Epistemic Status Documents how I used to do things, doesn't attempt to speak more generally than that.
Attention Conservation Notice You may get something out of this if you're rethinking how you manage your finances.

Memos vs. Blog Posts

Date
Tags meta, writing
Deprecated By read-me-first
Target Audience Everyone