What are types? Part 1

There are these things that, depending on your definition, many or all programming languages use: 'types'. There's also a rich mathematical study of types in Type Theory which, along with related disciplines, has many connections to logic and proof. Why? Often, they take the form of explicit 'annotations' to program artefacts, big and small. For … Continue reading What are types? Part 1

Language isn’t everything

Over the past year, I've been completely changed by the knowledge of an entire untold history of things we take for granted—personal computing, object-oriented programming, the GUI. For the vast majority of my coding lifetime, I had considered the act of constructing software as being identical to describing it, using some appropriate or inappropriate language. … Continue reading Language isn’t everything

There is only one OS, and it’s been obsolete for decades

Consider the three operating system families we are forced to choose from: Windows, Apple, Other (which I shall refer to as "Linux" despite it technically being more specific). All of these are built around the same foundational concepts, those of Unix. Android sits atop the Linux kernel, with iOS (as well as Mac OS) atop … Continue reading There is only one OS, and it’s been obsolete for decades


Just over five years ago, I wrote a tutorial on programming, in machine code, on Windows. Why?? I have been wondering that myself! But seriously, the main reason was that I felt I'd had enough of exploring low-level coding, and wanted a guide that would bring me up to speed in the future, should I … Continue reading TAOMLP.pdf