Thinkings

State as Types, a Design Pattern

Programming is all about state. Computer Scientists will tell you that programming languages are just one way of defining the DFA (or state machine) of an abstract Turing Machine. On the other hand, hardware engineers will tell you the CPU, the physical object that runs the program, is literally a state machine encoded with transistors. Programming is all about state. One could argue that, ignoring syntax, what differentiates one programming language from another is how it handles state.
Read more >

Building and Deploying Rust to a Hugo Site

We’re going to go through a minimal example that will let you run Rust code on the client side of a Hugo site. We are going to compile the Rust code into WebAssembly (wasm), which will give us near-native performance on the browser!

Read more >

Yet Another “I Switched to Obsidian” Post

One of the most striking elements of Silicon Valley to outsiders is productivity culture. Whereas most people in most places live in complete satisfaction doing their job as they would, Silicon Valley people won’t find peace without optimizing their every habit and system to extract that extra iota of productivity per unit time. I am one of those people, and this article is about how I revolutionized my productivity switching from Neovim org-mode to Obsidian.
Read more >

Machine Learning Fundamentals in C, Part 1

Welcome to my N-part series (N to be determined) on Machine Learning Fundamentals in C. This series will be all about fundamentals, which I feel is missing from much of the online resources related to Machine Learning and Neural Networks.

Read more >

Wizardry with Hammerspoon on macOS

If you’re a nerd, and you’ve been around Macs for a while, you might remember Applescript. It was a language developed by Apple to allow intermediate–to–advanced users to write simple scripts that could control Mac applications. It was actually created to resemble the English language, so accessing a pixel would be written as pixel 7 of row 3 of TIFF image "my bitmap" or even TIFF image "my bitmap"'s 3rd row's 7th pixel Needless to say, there’s a good reason modern programming languages don’t look like this: it doesn’t scale.
Read more >

Not-so-casual Performance Optimization in Python

My previous post (which was honestly created to test out the theme for this site), provided a few code snippets that computed $N$ terms of the sum of inverse squares. I wrote the code in my 4 favorite languages—Python, C, Rust, and Haskell—but when I ran the Python code, it was embarrassingly slow. Compared to the $\approx 950$ ms it took sequential Rust, Python took 70 seconds! So, in this post, we’re going to attempt to get Python some more reasonable numbers.
Read more >