Blog

Aug 11, 2019
Starlings and kestrels all the way down: the lambda calculus, part v
Having arrived, via the pair and phi functions, at the predecessor, we’re finally ready to subtract using lambda calculus. λa.λb.a PRED b // minus Apologies if it’s a bit anticlimactic: The MINUS function is identical to the PLUS function, except ...
Aug 11, 2019
Starlings and kestrels all the way down: the lambda calculus, part iv
So far in our journey through the lambda calculus, we’ve learned how to encode booleans – and compare and conjoin and disjoin and negate them – as well as encode numbers and well, just add them. So far. λa.λb.λf.fab // ...
Aug 1, 2019
Starlings and kestrels all the way down: the lambda calculus, part iii
In part one of this series, we met Alan Turing’s PhD adviser Alonzo Church and his lambda calculus, the purely functional, Turing-complete system he devised less than a year before his advisee-to-be published a much more influential machine-based approach to ...
Jul 24, 2019
Starlings and kestrels all the way down: the lambda calculus, part ii
In part one of this series, we introduced the lambda calculus, Alonzo Church’s Turing-complete system that beat Turing to solving the Entscheidungsproblem (sorry, there’s no algorithm to determine if a statement is true in all models of a theory) by ...
Jul 20, 2019
Starlings and kestrels all the way down: the lambda calculus, part i
In the realms of physics, math and computers, there are all sorts of strange truths I can periodically – and usually only briefly – convince myself are real. The four dimensions of spacetime are a continuum (and then there are ...
Jul 14, 2019
Floyd's tortoise and hare: how to detect a cycle in a Python linked list
I recently came across a LeetCode question that seemed perfectly straightforward: “Given a linked list, determine if it has a cycle in it.” That is, given a list like the following Courtesy of Wikimedia. the function would return false: the ...
Jul 1, 2019
Make a todo app in Go and PostgreSQL, part iv: TypeScript frontend
In the first three parts of this series, we saw how to build a very simple REST API in Go, as well as how to wire it up to a Postgres database. My plan was to leave it at that, ...
Jun 27, 2019
Make a todo app in Go and PostgreSQL, part iii
This is part three of what looks like it’s going to be a trilogy. Part one lives here, and part two lives here. If you’d just like to see the code, it’s down here. If you’ve looked at them already, ...
Jun 23, 2019
Make a todo app in Go and PostgreSQL, part ii
This is part two of a three-part series. If you skipped part one, it lives here. If you’d like to skip to part three, that lives here. If you’d like to just look at the code, it’s over there. Last ...
Jun 15, 2019
Make a todo app in Go and PostgreSQL, part i
Go is a cool language. PostgreSQL (Postgres, from here) is a cool database. I should learn them and, if you’re reading, you probably think you should too. So let’s make a Go-Postgres todo app (as in chores, tasks, appointments – ...
Jun 9, 2019
A bit of history: how JavaScript fetched before fetch
If, like myself, you began learning JavaScript in the past year or two, you might never have used anything but the Fetch API to make HTTP requests. Not that there’s anything wrong with fetch(). Ignoring justifiable complaints about its deceptively ...
Jun 2, 2019
How to fix 'This page is using the development build of React' on Heroku
A friend of mine – I can assure this post is not about my own experience – recently added the React Developer Tools Chrome extension, and almost immediately made an unpleasant discovery. When they visited their own lovingly crafted React ...
May 22, 2019
How to query Google's Geolocation API using Node/Express
Recently I wanted to query Google’s Geolocation API using Node.js – more specifically, its most popular web framework, Express. It took me longer than I would have liked, so to save some exasperated Googlers [1] some time, I thought I’d ...
May 16, 2019
Python for Twitter: getting started with Tweepy
If you’ve got a hankering to query the Twitter API using Python, by far the most popular library for the job is Tweepy. In this post I’ll show you how to install, authorize and begin to familiarize yourself with Tweepy ...
May 12, 2019
How to write nested strong parameters in Rails
Ruby on Rails provides a straightforward way to stop malicious user shenanigans from hitting your database. Strong parameters let you decide what attributes you’ll allow through and which you’ll block. To get an idea of why this is important, imagine ...
Apr 30, 2019
How to turn your Chart.js charts into embeddable HTML
Chart.js is a wonderfully useful, versatile tool, but for certain situations, its built-in methods don’t cut it. Say, for example, you’ve created a dashboard that allows your team to track sales (traffic, widgets, wins – whatever you like) using Chart.js. ...
Apr 17, 2019
Demo
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor ...
Feb 13, 2019
An Ancient Geek tragedy: Git, BitKeeper, Linux and the Uber Hacker
Until a few hours ago, I might have guessed that Git was an ancient piece of software, originating in the lower strata of tech’s geology, near SQL or regex. I was wrong. Git was created in 2005. Another point I ...
Jan 30, 2019
Linux time
I’d very much like to do this blog post on basic pen testing – a.k.a. ethical hacking – or how to spin up your own web server. Unfortunately I’m far from being able to say intelligent things about either, but ...
Jan 23, 2019
Alice, Bob and Ruby: exploring cryptography with the OpenSSL gem
Cryptography is like chemistry or electrical engineering. We’re aware that it’s dreadfully important and that it lets us enjoy technologies we’d really rather not go without. But it’s so esoteric, so sunk in formulae and alchemical jargon, that it’s easy ...