Why I am learning category theory
Category theory is a domain of mathematics that exerts a strange influence over programmers. One thing that can be said for sure about category theory is tha...
Category theory is a domain of mathematics that exerts a strange influence over programmers. One thing that can be said for sure about category theory is tha...
Posted by Nick Johnson | Filed under python , tech , coding , damn-cool-algorithms
In this edition of Napkin Math, we’ll invoke the spirit of the Napkin Math series to establish a mental model for how a neural network works by building one from scratch. In a future issue we will do napkin math on performance, as establishing the first-principle understanding is plenty of ground to cover for today!
The transition to Apple Silicon brought about many exciting things, but one of the capabilities left behind was access to the world of Intel-based virtual machines. X86_64 just isn't a trivial architecture to emulate, and it may never be feasible to do so on Apple Silicon at a useful speed as the operating systems you…
I think the average person knows that programming isn’t quite the same as it is in the movies. But, sometimes, it is.
I've been thinking about supplementing another language to Python for some time – mainly to cope with areas Python struggles with, or is a pain to use (which I'll go over in a minute). I had used C/C++ some years ago, but don't want to go back to them. C
Steve Huffman talks about Reddit’s approach to data storage in a High Scalability post from 2010. I was surprised to learn that they only have two tables in their database.
Do you ever get really mad at your computer?
Building distributed databases is very difficult. There are lots of clever ideas you can put into a distributed database, but making the ideas work well together in a real system can be very challenging because different decompositions of the same problem can massively affect how difficult it is to solve, and bugs are…
CRDTs are a family of data structures that are designed to be replicated across multiple computers without needing to worry about conflicts when people write data to the same place.
TL;DR: OpenAI has a new code generating model that’s improved in a number of ways and can handle nearly two times as much text (4,000 tokens.) I built several small games and applications without t…
Some days ago I noticed that on a Mac, doing snprintf calls from multiple threads shows curious lack of scaling ( see tweet ). Replacing snprintf with {fmt} library can speed up the OBJ exporter in Blender 3.2 by 3-4 times . This could have been the end of the story, filed under a “eh, sprintf is bad!” drawer, but I…
Looking at Taylor series as streams of real numbers, solving differential equations becomes as easy as writing them.
Several months ago I had a go at producing a high resolution 256-color driver for Windows 3.1. The effort was successful but is not yet complete. Along the way I re-learned many things I had forgotten, and learned several new ones. This blog entry is based on notes I made during development.
A technical write-up about using the template HTML element
Hey all, I’ve been enjoying wordle, the puzzle game recently but also wondered how a program might do at it.
The biggest lesson I learned from the "Let it fail" philosophy, is to distinguish expected errors and unexpected errors. So we can safely ignore the unexpected, and only handle the expected errors in our business logic.
Short version: the full text of my Introduction to the Theory of Programming Languages book (second printing, 1991) is now available. This page has more details including the table of chapters, and a link to the PDF (3.3MB, 448 + xvi pages). The book is a survey of methods for language description, particularly…
A post about all the things I find good about Julia.
Dmitri's blog about programming, Clojure, and software development
Back in 2016, I started a side project to reverse engineer the game Duke Nukem II and build an open source reimplementation of its engine from scratch – called Rigel Engine (Check it out on GitHub)…
For the last few years I’ve been trying to center my work around creating what I consider to be the Perfect Commit. This is a single commit that contains all …
You’ve probably heard that the Rust type checker can be a great “co-pilot”, helping you to avoid subtle bugs that would have been a royal pain in the !@#!$! to debug. This is truly awesome! But what you may not realize is how it feels in the moment when this happens. The answer typically is: really, really…