You can also also view the full archives of micro-posts. Longer blog posts are available in the Articles section.
Using vi/vim properly, you don’t use it modally. You are always in normal mode, and only enter insert mode for short bursts of typing text, after which you press
to go to normal mode. Thus, the remembering-the-mode problem just doesn’t exist: you don’t answer the phone in insert mode to get back to vi and not remember where you were. If you are typing text and the phone rings, you exit insert mode and then answer the phone. Or you press when you come back. But you never think about insert mode as a mode where you stay. — Why, oh WHY, do those #?@! nutheads use vi?
GDB dashboard. #clang
Design Issues for Foreign Function Interfaces: A survey of existing native interfaces for several languages and some suggestions.
Emacs Docs: The modern documentation website Emacs deserves. #emacs
Julia 1.7 Highlights. #julia
It took little under a decade for the headline feature developer Jon Skinner added to Sublime Text’s second version to become one of the defining features of this decade’s software. — The History of Command Palettes: How Typing Commands Became The Norm Again
When I first started using Rust, I really missed monads. But here’s the thing. Having used lots of monads in Haskell, and read lots of blog posts about monads, I’ve learned that in systems contexts, it’s often best to just have a simple monad stack that just consists of Reader + IO (and Maybe’s and Option’s sprinkled about occasionally). Huge monad transformer stacks often raise more problems than they solve. But Reader + IO is essentially the “default monad stack” of Rust. — Haskell’s Children