Links July 25, 2021

How will OpenAI + GitHub's Copilot affect programming? - LessWrong Everything below the function prototype was AI generated. And, this code…

Blog June 29, 2021

The Man Who Wants to Fix the Climate. Can Anyone Stop Him? Man dumps 120 tons of iron dust in the North Pacific in a bold geoengineering…

Blog June 18, 2021

How to Do R&D Right - ChinaTalk I think it was Michael Nielsen who proposed the thought experiment of could we get better research if we…

Blog June 9, 2021

Secure Secure Shell What it sounds like -- a guide to making sure your use of SSH is secure. An introduction to Japanese Syntax, Grammar…

Blog May 25, 2021

New Science Most of all, I want our scientific institutions to empower young George Churches, rather than try to ruin their lives. Peter…

Blog May 12, 2021

CSRF, CORS, and HTTP Security headers Demystified There's a Wikipedia page on Composition over inheritance Also, Inheritance was invented…

Blog April 29, 2021

r/whatisthisthing For the identification of mysterious objects A place to find out what that odd-looking thing that you stumbled across…

Blog April 18, 2021

From design patterns to category theory Taichi GitHub - taichi-dev/taichi: Productive & portable programming language for high-performance…

Blog April 9, 2021

Dillon Marsh - For What It's Worth These images combine photography and computer generated elements in an effort to visualise the output of…

Blog March 21, 2021

Interpretability vs Neuroscience rough note (colah) "Six major advantages which make artificial neural networks much easier to study than…

Blog March 15, 2021

A String Diagrammatic Axiomatisation of Finite-State Automata We develop a fully diagrammatic approach to the theory of finite-state…

Blog March 7, 2021

The Kelly criterion: How to size bets Interactive exploration of the Kelly criterion A Vim Guide for Advanced Users Ideas not mattering is a…

Blog February 26, 2021

Unifying theory - toposes as ‘bridges’ At the beginning of my Ph.D. studies, I had the intuition that Grothendieck toposes could effectively…

Blog February 16, 2021

(U.S.) Senate Bean Soup (recipe) Bean soup is on the menu in Senate restaurants every day. There are several stories about the origin of…

Blog January 21, 2021

OCaml libraries lwd: Lightweight document Lwd is a library that lets you build values that changes over time. It is a simple form of…

Blog January 18, 2021

Convivial Design Heuristics for Software Systems Illich’s notion of conviviality centres on the balance between individual freedom to act…

Blog January 7, 2021

Real-world type theory I: untyped normalisation by evaluation for λ-calculus Normalisation corresponds to a sensible notion of /computation…

Blog December 29, 2020

Blob Opera Control one of four opera voices at a time and the others will improves to sing along, recommended. Interesting Hacker News…

Blog December 17, 2020

Desktop Windtunnel - YouTube Ocaml stuff ANN dap 1.0.0 — Debug Adapter Protocol for OCaml - Community - OCaml GitHub - hackwaly/ocaml-dap…

Blog December 07, 2020

Tokyo: a wonder of the modern world fed by its konbini The Cubli: a cube that can jump up, balance, and ‘walk’ (video) A Map that Reflects…

Blog November 28, 2020

Announcing quiver: a new commutative diagram editor for the web Amazing tool, so much easier than trying to write TikZ by hand. File this…

Blog November 17, 2020

Meijer G-function From Stephen Diehl's Exotic Programming Ideas: Part 2 (Term Rewriting) . "A very general function intended to include…

Blog November 07, 2020

The Unreasonable Syntactic Expressivity of RNNs RNNs can turn their hidden states into bounded-capacity stacks so efficiently, they can…

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 30 2018

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

Blog July 31 2018

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

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…