A brief look into 2FA, one-time passwords, and why I think they're often misunderstood.
Some thoughts on effective altruism, utilitarianism and optimization.
I recently found out about a nifty security attack called SSL strip.
A quick deep dive into Feistel networks, to see if I can motivate them to myself and make them feel less arbitrary.
I recently discovered that I had only scratched the surface when it came to git tooling within vim. Here's my attempt at crafting a more polished experience.
Most modern browsers implement WebGL, a javascript API modeled after the OpenGL API that allows your javascript code to directly access your GPU for rendering graphics to a canvas element. Let's have a first look at how to use WebGL to create graphics in the browser.
An exploration into creating graphics with Quil, and getting better at Clojure along the way.
Modern browsers ship a web API called IntersectionObserver that largely obviates the need for inefficient scroll event listeners. Let's use it to create an infinitely scrolling page using React hooks.
ES6 finally brought iterators and generators to javascript. Recently, I found out how you can nest generators to implement lazy recursion.
I started a fresh .vimrc from scratch, and decided it was a good idea to document the process for my future self, and anyone else who might benefit from it.
A deep dive into one of my favorite pieces by Sergei Rachmaninoff.
A quick look at how I set up this blog using eleventy.js.