Chris Martin

Mastodon · Twitter · GitHub · Stack Overflow · Facebook · Email


Loc, Span, and Area

A Haskell library for calculations on text file positions.

Null as a sort of bottom

When bottoms are tagged, we may view bottom more inclusively. This could reasonably include null.

What is a leak?

“Leak” is one of those technical words we often forget to explain.

Some Applicative Functors

Everybody’s favorite applicatives, and their semigroups.

Introduction to Nix (for users of Stack)

What Nix is for, and how it can help you as a Haskell developer.

Water Monoids

Solving that water-puddles problem, using as many monoids as possible.

Submitting a pull request to GHC

Contributing to Haskell isn’t scary - How to submit a PR to GHC using Phabricator.

NixOS on DigitalOcean

How to start a new NixOS droplet on Digital Ocean using nixos-infect.

Installing the Nix package manager

A minimal guide to getting started with the Nix package manager on any Linux or OSX machine.

Installing NixOS

I just installed NixOS on my laptop. This is a summary of my experience.

Intro Scala pitfalls

There are a handful of mistakes that most people (who aren’t coming from a Haskell background) tend to fall into.

"Dynamic typing"

"Dynamic typing" The belief that you can’t explain to a computer why your code works, but you can keep track of it all in your head.

Gradle Scala REPL

I recently switched a Scala project’s build from SBT to Gradle and was disappointed to find that Gradle has no support for launching the Scala REPL. My workaround: …


The most terse operator in any language is adjacency, or in other words, no operator at all.

Unwanted Haskell triangle

Sometimes I see a Java question, write myself a Haskell solution, then sadly read over the thread of people who will never know about it.

such commit—wow
alias such=git
alias very=git
alias wow='git status'

Georgia Tech course history

2005 — 2013

Where do the little libraries belong?

Why are we at the mercy of languages’ core libraries?

// Let’s talk about programs.
type P

Pencil effects

Side effects are great, but …

Bunny vine

This project for CS 6491 (computer graphics) uses Scala with JOGL to generate a tree over approximately half of the faces of a triangle manifold using a laced ring construction, and then render an animation resembling a vine that grows upward along paths defined by the tree.

Javac bug report

I have been cursing at Java a lot lately. Over this past week, it’s because I’ve been experiencing inexplicable compilation failures.

Randomization pipeline

Random selection from a stream in constant space.

A Mathematician’s Lament

The big question everyone had in middle-to-high school mathematics classes was "When am I ever going to use this?"

Last-minute math

As I was leaving for AVS this morning, I happened upon a take-home test for Graph Theory which I should have done this weekend …

Kernel, vectors, graphs

It occurred to me that this OS Design course has put me past a certain point of no return in life.

Smalltalk, go away

I like what I wrote for my 2340 survey comment. So I’m sharing it.

Fun with find

find is one of many simple yet powerful command-line tools, and I haven’t until recently had a chance to learn how to use it. Oh, the things you can do.

The Great Macropod Exodus

The agéd Prophet hunched begrudgingly over his walking pole, peering out at distant Tasman Sea. …