Implicit In-order Forests: Zooming a billion trace events at 60fps
In the course of trying to figure out how to smoothly zoom timelines of a billion trace events, I figured out a cool tree structure that I can’t find elsewhere online, which it turned out two of my friends have independently derived after not finding anything on their own searches. It’s a way of implementing an index…
Six years of professional Clojure development
Over the last couple of years me and my colleagues here at doctronic have been busy creating and maintaining more than a dozen of individual software systems for our clients.
Writing Small CLI Programs in Common Lisp
I write a lot of command-line programs. For tiny programs I usually go with the typical UNIX approach: throw together a half-assed shell script and move on. For large programs I make a full Common Lisp project, with an ASDF system definition and such. But there's a middle ground of small ish programs that don't…
Bloom Filters: More than a space-efficient hashmap
A bloom filter is one of those data structures you are probably already aware of, or have at least heard about. For those looking for a simple recap, they are a probabilistic data structure which can …
Street Fighter II, Spin when you can't
This article is part of a series about Street Fighter II and the CPS-1. It is recommended to read the previous entries before reading this one.
The macOS Sandbox File Limit
There has recently been some renewed discussion on Twitter about the limitation that the macOS sandbox places on the number of open files an app can access at once. Apps are still running into problems because of this limitation, and there is not a lot of technical detail available on it outside of Apple, so I’d like…
$ sudo rm -rf / === NPM install
🔎I authored this blog post whilst I was an employee of Gitpod for Gitpod. I no longer work at Gitpod. In what seems like a long time ago, in part because it is, I learned the catastrophic capabilities of this command the hard way, and I'm sure folks my
From Vim to Emacs in fourteen days (2015)
Yes, my friends, it is true. After more than fifteen years using Vim, teaching Vim, proselytizing about Vim, all the while scoffing in the general direction of Emacs, I’ve seen the light. The light of Lisp… Or something. If, like me, you’re curious enough to give Emacs a try, this post should help you get off the…
I made a mistake with Terraform and Azure made it worse
Craig Stuntz's personal website about programming languages, type theory, DIY synthesizers, compilers, and math.
Prescriptive software is better than descriptive software
For a while now I’ve been telling people that I want Polypane to be prescriptive, not descriptive. In this article I want to expand on that and explain what I mean when I say “prescriptive”. I usually explain it like this: there is no shortage of tooling that will tell you everything you do wrong […]
Managing Dotfiles with GNU Stow (2016)
How to organise and deploy dotfiles using GNU stow.
The Pretty JSON Revolution
Wouldn't it be nice if more JSON tools supported a truly pretty JSON format? Demand options for truly pretty JSON now! Viva la revolucion!
You don't really need a virtualenv
Frost Ming's personal blog
Rails 6 with Webpacker 6, Tailwind 2 with JIT, Postcss 8 and some default setup
It is always nice to follow a detailed guide and steps when building new rails apps. Below is a bit of guidance and step-by-step…
What's in the Box?
Here’s a sentence I find myself saying several times a week: …or we could just box it. There’s two remarkable things about this sentence. The first, is that the advice is very rarely heeded, and in...
Code Review from the Command Line
I do the bulk of my code reviews from the command line, especially when reviewing larger changes. I've built up a number of tools and config settings that help me dig into the nuances of the code I'm reviewing, so that I can understand it better than if I were just browsing online.
Explaining Ruby Fibers
Explaining Ruby Fibers - Noteflakes
NixOS and the Art of OS Configuration (2018)
You know how it is when you take a quick look at a framework for organising your dotfiles, and end up installing and configuring a new Linux operating system on an old MacBook Air? No? Just me then.
The danger of hidden functional roles
There’s a collection of friends that I have a standing videochat with every couple of weeks. We had been meeting at 8am, but several people developed conflicts at that time, including me. I h…
Avy Can Do Anything
Update (2024-09-08): Read this article in Japanese at Qiita or at Emacs-JP. You’re using Avy wrong. Too harsh? Let me rephrase: you’re barely using Avy. Still too broad? Okay, the noninflammatory version: Avy, the Emacs package to jump around the screen, lends itself to efficient composable usage that’s obscured by…