Blog October 28, 2020

There Is a Fundamental Flaw in How We Do Statistics in Science Suppose I tell you that only 1% of people with COVID have a body temperature…

Blog October 18, 2020

Kindling projects New programmers often need small projects to work on as they hone their skills. Exercises in courses are too small, and…

Blog October 6, 2020

What Destroyed All of the Major Bronze Age Cities? every major settlement between Pylos in Greece and Gaza in the Levant was destroyed and…

Blog September 28, 2020

People expect technology to suck because it actually sucks Good list of software sucking. I think this mostly serves to highlight lack of…

Blog September 16, 2020

Train Station Ticket Machine in Japan David Foster Wallace The Lost Years and Last Days of David Foster Wallace Shipping Out: On the (nearly…

Blog September 6, 2020

Hard to discover tips and apps for making macOS pleasant Related (and linked to from the above): (Emacs) Keyboard Shortcuts for Editing…

Blog August 29, 2020

Is software engineering culture based on traditional engineering culture? I enjoyed this so much I'm quoting the whole thing here. Alan Kay…

Blog August 18, 2020

xplain how the X window system works (with demonstrations in the browser) The author does really cool stuff: noclip.website "A digital…

Blog August 7, 2020

Roaring Bitmaps "A better compressed bitset. Roaring bitmaps are compressed bitmaps. They can be hundreds of times faster." Used by a ton of…

Blog July 28, 2020

First Cow Oily Cakes Recipe Benson Log Raft Fish ladder zoom.earth near real-time satellite images Swiss Political System: More than You…

Blog July 19, 2020

CRDTs, the Hard Parts Conflict-free Replicated Data Types (CRDTs) are an increasingly popular family of algorithms for optimistic…

Blog July 8, 2020

Is Boeing or Airbus Better (from an avionics point of view) "Launched in 1984, the A320 was a clean-sheet design that incorporated digital…

Blog June 21, 2020

VAS Dairy "Manage your herd easily and accurately with the world’s leading herd management software." Now imagine this but for a million…

Blog June 13, 2020

Stir friction welding (and SpaceX). Take a spinning metal rod, run it down the intersection between two metal plates, and stir them…

Blog December 4, 2019

A Visual Exploration of Gaussian Processes How to turn a collection of small building blocks into a versatile tool for solving regression…

Blog March 31, 2019

Finger Trees in Agda Higher categories and homotopical algebra (book) Functional pearl: weaving a web Introduces the web as an alternative…

Blog March 3, 2019

A Self-Taught Course in Automated Reasoning using Haskell mirrored Frank Pfenning getting in the smart contract game?? Resource-Aware…

Blog December 19, 2018

Partial Evaluation and Automatic Program Generation Neil D. Jones, Carsten K Gomard, Peter Sestoft Antimirov Derivatives for Regular…

Blog WIP

Radix Trees -- How IntMap Works Nice talk by Tikhon Jelvis. What FP can learn from Smalltalk by Aditya Siram The Mundanity of Excellence: An…

Blog November 20, 2018

Quotient Types for Programmers Patrick Collison questions Three especially interesting to me: Why are certain things getting so much more…

Blog November 9, 2018

Quotient Types for Programmers Patrick Collison questions Three especially interesting to me: Why are certain things getting so much more…

Blog September 30, 2018

Federal Public Land Bash Infinity Who knew you could do all this with bash? Microsoft underwater data center live cameras By 1303, the…

What's new since "The algebra (and calculus!) of algebraic data types"?

In June 2015, I published The algebra (and calculus!) of algebraic data types in Code Words . I saw it on Hacker News a few days ago and…

Blog September 5, 2018

A Coq interpreter in Coq MDX Deck Automatic generation of free theorems Output for (a -> Bool) -> [a] -> [a] : The Free Theorem for "f…

Blog August 5, 2018

Maps I've seen some great maps recently. Most Remote Spots in USA Wilderness Complexes How America Uses Its Land Very Detailed Map of the…

Blog July 31 2018

Grammars for everything data data manipulation: https://dplyr.tidyverse.org/ tables: https://github.com/spgarbet/tangram ( examples…

Blog July 30 2018

Interdisciplinary team cooks 4000-year old Babylonian stews Reviving recipes written on ancient Babylonian tablets. A good idea…

Blog July 14 2018

Augmenting Long-term Memory My somewhat pious belief was that if people focused more on remembering the basics, and worried less about the…

ICFP 2017

ICFP 2017 This year I finally made it to ICFP after years of wanting to go. Here are notes on a few of the talks I was most interested in…

next blog

Blogging with next.js For a long time I've wanted to blog more regularly, but haven't been able to update my website. Which I mean literally…

Programmer Tooling Beyond Plain Text

Programmer Tooling Beyond Plain Text This is a companion to my post on the expression problem and tables . In this post I explore ways we…

The Third Age of Computing is Dependently Typed

The Third Age of Computing is Dependently Typed I just got back from hearing r0ml speak at Recurse Center on Third Age of Computing…

The Expression Problem and Tables

The Expression Problem and Tables The Expression Problem The expression problem is a well known problem in programming language theory…

data, type, newtype, instance, class

data, type, newtype, instance, class One of the first things to confuse me about Haskell was the number of keywords related to types. The…