[In tribute to Bram Moolenaar, 1961 – 3 August 2023, creator of Vim. The undo tree was one of the […]
Some Designs for Modern Peer-to-peer Networking
A number of years ago, at my first job out of college, I was working for a company that found […]
How to Organize Your Racket Library
So, you’ve written a Racket library and now you’d like to make it widely available. How to go about it? […]
Journey to the Heart of Mount Meru
Note: I originally developed this as a programming exercise as part of a tutorial for the Qi programming language in […]
The Animated Guide to Symex
[This is about Symex.el, the Emacs extension for structural editing with Lisp. If you are unfamiliar with Symex, you could […]
Symex.el: Edit Lisp Code in a Vim-like Way
A quick movement out of the corner of your eye, but it’s gone as you turn to look. A rustle […]
What Should + Mean in Programming Languages?
When we say something like 5 + 3, we aren’t usually surprised to learn that we are speaking of 8. […]
Migrating Your Racket Project from Travis to GitHub Actions
As a Racket developer, if you’ve been running tests and code coverage on your GitHub repos using Travis (for instance, […]
A Vimlike Fluency: Bibliography and Next Steps
Acknowledgements The original recipient of these tips was Ariana Promessi, who also edited and contributed to the final versions on […]
Vim Tip of the Day: Aggregate Operations
Having returned from that one-dimensional land of Ex, we now know that it is another way of looking at our […]