# Blog

February 9, 2015

I've created a wiki listing those philosophy PhD programmes where one can do research in the philosophy of mathematics, and would like to invite anyone with the relevant knowledge and a few spare minutes to help edit it.
→

May 22, 2012

In a recent talk I argued that computational reverse mathematics fails to preserve the justificatory structure of foundational programmes, and consquently cannot provide the kind of foundational analysis we would like from reverse mathematics. Here I look at a parallel problem which the traditional Friedman/Simpson variety of reverse mathematics has in respect to constructive mathematics.
→

March 5, 2012

The Munich Center for Mathematical Philosophy is publishing resources on their website for students interested in learning mathematical philosophy, including my handout on the compactness and Löwenheim–Skolem theorems.
→

March 2, 2012

Reverse mathematics is a programme in mathematical logic to calibrate the proof-theoretic strength of theorems of ordinary mathematics by demonstrating their equivalence to subsystems of second order arithmetic. This introduction briefly summarises the philosophical and mathematical motivations behind the programme and explains the basics of the formal setting.
→

April 11, 2011

The modern formulation of Gödel's system T is a typed λ-calculus which can represent the natural numbers. This article illustrates the development of arithmetic functions within T.
→

April 4, 2011

Firmin is a JavaScript animation library that uses CSS transforms and transitions to create smooth, hardware-accelerated animations. This article discusses the development of the library, and explains the underlying machinery of transforms and transitions.
→

March 16, 2011

Tutorial explaining how to compile Nginx and Passenger to serve Ruby web applications.
→

March 2, 2011

Hatt is a command-line program and Haskell library for parsing expressions in classical propositional logic and printing their truth tables.
→

August 21, 2010

Due to its dynamic nature, no single currying technique is universally efficacious in JavaScript programming. In this article, various approaches to currying in JavaScript are discussed, together with their associated advantages and disadvantages, and some conclusions are drawn.
→