I sometimes write thoughts about what I’ve been thinking or working on, and then I post them here. There’s also an assortment of other writings around the web on a handful of other blogs that I’ve contributed to.
Solving Killer Sudoku as a Mixed Integer Program January 18, 2023
Formulating and solving Killer Sudoku as a Mixed Integer Linear Program.
Bypassing Bad Certificate Pinning using mitmproxy September 13, 2022
How I managed to get around badly implemented certificate pinning for one particular app.
Transparent mitmproxy for iPhone using Tailscale in a VM September 12, 2022
Using Tailscale in a VM to transparently mitmproxy connections from an iPhone
Recitations on Simulation in Python January 28, 2022
A set of Python notebooks to work from random number generation to systems simulation and variance reduction
Quick tip: Syncing a task list using Fastmail January 26, 2022
Quick note on how to set up a task list and sync it through Fastmail
Serving your Columbia site over HTTPS December 9, 2021
How to make sure your Columbia content is accessible on modern browsers
Modeling NYC Taxi Profitability using a Leontief-style Model May 20, 2021
Exploring NYC open data to build a Leontief-style model for taxicab profitability.
A crude gRPC benchmark April 20, 2021
How fast is gRPC in Python from one machine to another in the same datacenter over a secure connection?
Postgres Text Search: Full Text vs Trigram Search February 24, 2021
A brief introduction to text search in Postgres.
Workshop on Agent-Based Modeling January 22, 2021
Workshop on Agent-Based Modeling run for Columbia Undergraduate Mathematical Modelling Workshop
Generate vector tilesets from OpenStreetMap data on Ubuntu 20.04 using OpenMapTiles January 6, 2021
Generating vector tilesets from OpenStreetMap data
Rendering a basic OpenStreetMap image on Ubuntu 20.04 October 24, 2020
Rendering a basic OpenStreetMap image
A private ngrok with WireGuard and Nginx September 17, 2020
Using WireGuard with nginx to reverse proxy TCP connections into private networks through a secure connection
Safe Blues: A Method for Estimation and Control in the Fight Against COVID-19 September 2, 2020
Battling COVID-19. Think outside the box. Think beyond contact tracing.
Installing CUDA 10.1, cuDNN, TensorFlow 2.3.0, and Python 3.8 on Ubuntu 20.04 August 14, 2020
This is annoyingly painful and I keep on rediscovering it, so here's a quick reference.
JSON to gRPC transcoding with Envoy August 1, 2020
Setting up JSON to gRPC transcoding on Envoy proxy
gRPC-Web through Envoy with nginx July 3, 2020
Setting up gRPC-Web proxied through nginx and Envoy proxy
Quick tip: Getting around IP-based geo-blocking using SSH tunnelling June 29, 2020
How to circumvent simple IP-address based geo-blocking by renting a server for a few minutes and using SSH tunnelling.
Information through the lens of topology June 5, 2020
Some thoughts on information retrieval through the lens of point-set topology.
Why don't protocol buffers have fixed length arrays? July 12, 2019
One of the most primitive types you'd expect from a low-level data serialisation format are fixed length arrays, so I was surprised to find out protocol buffers don't have one.
Masters Thesis May 20, 2019
The Blockchain Propagation Process: a Machine Learning and Matrix Analytic Approach
A crash course into digital audio representation December 8, 2018
We all know what sound is and how it works, but how do you digitally store and represent it?
Quick tip: Search any website instantly with Firefox keywords December 7, 2018
Learn how to quickly search your favourite website from the address bar in Firefox.
The absolute genius of TicketMaster November 17, 2018
TicketMaster, or how to get away with price gouging.
NIST weighs in on the blockchain October 30, 2018
What does the National Institute of Standards and Technology think about blockchain?
GitHub Status Generator October 23, 2018
GitHub went down with funny status messages and I was bored.
Quick tip: Enabling IPv6 on an AWS VPC October 21, 2018
Gotta get those sweet, sweet 128-bit addresses.
Using YubiKeys with X.509 certificates on macOS September 1, 2018
This tutorial will show you how to manage X.509 certificates with a YubiKey to privision your own Public Key Infrastructure with a root certificate authority, intermediate certificate authority, and end entity certificate signing.
Mathematical truths and meaning August 11, 2018
We can define a world where 1/0 = 0, but is this useful, or what I call, the "correct" thing to do? I don't think so.
Developer Hegemony: The Future of Labor July 22, 2018
A review of Erik Dietrich's book titled Developer Hegemony: The Future of Labor.
Demystifying the blockchain July 3, 2018
Interested in blockchain but never really had time to sift through the buzzwords? Here I'll introduce the basic concepts in the area through a fairly technical point of view.
CloudFlare to the rescue December 15, 2017
I never thought DNS queries could be so slow. Here's how I made them orders of magnitude faster with CloudFlare.
Rational numbers have repeating decimal expansions March 6, 2017
A real number is rational if and only if its decimal expansion is repeating or terminating. Here's how to prove it.
Apartment hunting with Google Sheets and the Google Maps Distance Matrix API March 3, 2017
Hunting for an apartment in Melbourne during peak season with a limited budget is no trivial task! Here's how I used some online APIs to help me compare different apartments.