A fast and stable session implementation for the Pyramid Web Framework, using Redis for storage.


A simple MailChimp API wrapper with 100% test coverage and simple exception handling.

Chromatic Leaves

The hakyll code to generate this blog is completely open source.


A Haskell utility to help you learn the Dominic System, written mostly as example code for anyone learning to write Haskell command-line utilities or Haskell programs in general.

Learn Snap

A website built using the Snap web framework, containing interactive form examples and highlighted code snippets demonstrating how they work.



I am a big advocate of the Pyramid Web Framework, and in November 2011 I gave an introduction to Pyramid presentation for the Linux User’s Group of Linux. The slides are sparse and very open, and we ended up having the most fun hacking on a site interactively at the end of the talk.

Feel free to use these as the basis for other presentations, but they will need some touching up:


In May 2013 I gave a presentation on static site generators for the Linux User’s Group of Davis, with a focus on my favorite static site generator, Hakyll.

Note that if you want to browse the html slides, you have to watch the navigation arrows for a down arrow so you don’t miss the nested slides. You’re welcome to use these as a basis for your own Hakyll presentations.


Slides from my January 19, 2015 talk on Nix and NixOS for the Linux User’s Group of Davis. I have these slides available in pandoc markdown somewhere so if you want to base a talk on them, please get in touch.


And a special mention for Jerry P. King’s Mathematics in 10 Lessons: The Grand Tour. It was the first book I read that explained what it meant to do math, and it did so in a way that was engaging and accessible. I feel I could replace my entire high school and undergraduate college math education with this book and still come out ahead in terms of conceptual understanding and the hunger for learning more.

Online classes I liked

Recent posts

  • Nix in Two Days - January 29, 2015
  • White paper: Compile Time TDD Coverage with Idris - May 3, 2014
  • Adventures in Hoogling - March 31, 2014
  • The Fool's Choice: A Tale of Two Types - February 28, 2014
  • Arbitrary Fun: Generating User Profiles with QuickCheck - January 31, 2014
  • Haskell Development with Cabal Sandboxes - January 10, 2014
  • Compiled Heist: The Walkthrough - December 4, 2013
  • The Great Template Heist - November 27, 2013
  • Striving for Correctness: A Case Study - September 25, 2013
  • Thoughts on Functional Javascript - September 9, 2013
  • Making Code Reasonable - August 28, 2013
  • Playing Catch: Handling IO Exceptions with ErrorT - July 20, 2013
  • Integrating MailChimp with Pyramid - July 11, 2013
  • PostMonkey Overview and Updated Docs - July 3, 2013
  • Deform Retail Form Rendering - May 28, 2013
  • InverseFizzbuzz :: Pen -> Paper -> Haskell - May 1, 2013
  • Software as a Process - April 12, 2013
  • Blogging with Hakyll - April 11, 2013