
Crushing ISAAC
07 October 2018I recently needed a good cryptographicallysecure and seedable pseudorandom number generator for Javascript. This didn’t turn out to be as trivial a procedure as I figured it’d be: most Javascript CSPRNGs I found didn’t appear to be manually seedab...
 statistics
 cryptography
 languageengineering

Transforming to CPS
04 August 2018I recently picked up Appel’s classic Compiling with Continuations and have been refreshing my continuationfu more generally.
 haskell
 languageengineering

Embedded DSLs for Bayesian Modelling and Inference: a Retrospective
02 July 2018Why does my blog often feature its typical motley mix of probability, functional programming, and computer science anyway?
 statistics
 mathematics
 languageengineering
 haskell

Fubini and Applicatives
27 June 2018Take an iterated integral, e.g. . Fubini’s Theorem describes the conditions under which the order of...
 haskell
 mathematics
 languageengineering

Byzantine Generals and Nakamoto Consensus
22 January 2018You can recognize truth by its beauty and simplicity.
– Richard Feynman (attributed)
 consensus

Recursive Stochastic Processes
01 March 2017Last week Dan Peebles asked me on Twitter if I knew of any writing on the use of recursion schemes for expressing stochastic processes or other probability distributions. And I don’t! So I’ll write some of what I do know myself.
 statistics
 recursion
 haskell

The Applicative Structure of the Giry Monad
26 February 2017In my last two posts about the Giry monad I derived the thing from its categorical and measuretheoretic foundations. I kind of thought that those posts wouldn’t be of m...
 mathematics
 statistics
 haskell

Implementing the Giry Monad
13 February 2017In my last post I went over the categorical and measuretheoretic foundations of the Giry monad, the ‘canonical’ probability monad that operates on the level of probability measures.
 mathematics
 statistics
 haskell

Foundations of the Giry Monad
10 February 2017The Giry monad is the canonical probability monad that operates on the level of measures, which are the abstract constructs that canonically represent probability distributions. It’s sort of the baseline by which all other probability monads can be...
 mathematics
 statistics
 haskell

Rotating Squares
04 January 2017Here’s a short one.
 haskell
 recursion

Promorphisms, Pre and Post
26 November 2016To the.. uh, ‘layperson’, pre and postpromorphisms are probably well into the WTF category of recursion schemes. This is a mistake  they’re simple and useful, and I’m going to try and convince you of this in short order.
 haskell
 recursion

Comonadic Markov Chain Monte Carlo
26 October 2016Some time ago I came across a way to inprinciple perform inference on certain probabilistic programs using comonadic structures and operations.
 probabilisticprogramming
 languageengineering
 haskell

A Simple Embedded Probabilistic Programming Language
17 October 2016(This article is also published at Medium)
 probabilisticprogramming
 languageengineering
 haskell

Randomness in Haskell
01 October 2016Randomness is a constant nuisance point for Haskell beginners who may be coming from a language like Python or R. While in Python you can just get away with something like:
 haskell

On Measurability
18 July 2016.. this one is pretty dry, I’ll admit. David Williams said it best:
 mathematics

Making a Market
20 April 2016(This article is also published at Medium)
 probability
 statistics

flatmcmc Update and v1.0.0 Release
07 April 2016I’ve updated my old flatmcmc library for ensemble sampling in Haskell and have pushed out a v1.0.0 release.
 haskell
 statistics

Encoding Statistical Independence, Statically
16 February 2016(This article is also published at Medium)
 haskell
 statistics
 languageengineering

Time Traveling Recursion Schemes
09 February 2016In Practical Recursion Schemes I talked about recursion schemes, describing them as elegant and useful patterns for expressing general computation. In th...
 haskell
 recursion

Monadic Recursion Schemes
20 January 2016I have another few posts that I’d like to write before cluing up the whole recursion schemes kick I’ve been on. The first is a simple note about monadic versions ...
 haskell
 recursion

Sorting Slower with Style
19 January 2016I previously wrote about implementing merge sort using recursion schemes. By using a hylomorphism we could express the algorithm concisely and true to its highlevel descr...
 haskell
 recursion

Yo Dawg We Heard You Like Derivatives
08 January 2016I noticed this article by Tom Ellis today that provides an excellent ‘demystified’ introduction to automatic differentiation. His exposition is ...
 haskell
 languageengineering
 recursion

A Tour of Some Useful Recursive Types
09 December 2015(This article is also published at Medium)
 haskell
 recursion

Sorting with Style
02 December 2015Merge sort is a famous comparisonbased sorting algorithm that starts by first recursively dividing a collection of orderable elements into smaller subcollections, and then finishes by recursive...
 haskell
 recursion

Markov Chains à la Carte
14 October 2015(This article was originally published at Medium)
 haskell
 statistics

Practical Recursion Schemes
06 September 2015(This article was originally published at Medium)
 haskell
 recursion

Automasymbolic Differentiation
06 July 2014Automatic differentiation is one of those things that’s famous for not being as famous as it should be (uh..). It’s useful, it’s convenient, and yet fewer know about it than one would think.
 languageengineering
 haskell

Sharing in Haskell EDSLs
30 May 2014Lately I’ve been trying to do some magic by way of nonstandard interpretations of abstract syntax. One of the things that I’ve managed to grok along the way has been the problem of sharing in deeplyembedded languages.
 languageengineering
 haskell

Basic EC2 Management with Ansible
21 December 2013(UPDATE 2016/08/15: Here be monsters. This code is ancient, the style is not really idiomatic Ansible, and it’s likely that nothing works anymore.)
 infrastructure