Latest Tech News

Stay updated with the latest in technology, AI, cybersecurity, and more

Filtered by: completion Clear Filter

A beginner's guide to extending Emacs

With that prelude out of the way, let's begin. Inside of emacs you can call up a list of potential completions by using the keyboard shortcut M-. (that’s "hit the meta key along with period", where "meta" is the Alt key for me). This applies in a wide variety of scenarios, like when completing class names or variables. If we want to ask emacs to hand us a list of potential references, then the system we want to hook into is this completions system. (This is the only time I'll assume we know wh

A Beginner's Guide to Extending Emacs

With that prelude out of the way, let's begin. Inside of emacs you can call up a list of potential completions by using the keyboard shortcut M-. (that’s "hit the meta key along with period", where "meta" is the Alt key for me). This applies in a wide variety of scenarios, like when completing class names or variables. If we want to ask emacs to hand us a list of potential references, then the system we want to hook into is this completions system. (This is the only time I'll assume we know wh

Writing simple tab-completions for Bash and Zsh

The last quality of life feature we will add is the ability to show completion descriptions when tabbing on a complete word: $ foo apple<TAB> For example, the Mill build tool does this so if you’re not sure what a flag or command does, you can press <TAB> on it to see more details: Tab-completion is a common way to explore unfamiliar APIs, and just because someone finished writing a flat or command doesn’t mean they aren’t curious about what it does! But while Zsh tab-completion displays desc

Writing Your Own Simple Tab-Completions for Bash and Zsh

The last quality of life feature we will add is the ability to show completion descriptions when tabbing on a complete word: $ foo apple<TAB> For example, the Mill build tool does this so if you’re not sure what a flag or command does, you can press <TAB> on it to see more details: Tab-completion is a common way to explore unfamiliar APIs, and just because someone finished writing a flat or command doesn’t mean they aren’t curious about what it does! But while Zsh tab-completion displays desc

Async I/O on Linux in databases

I've been working on a complex multi-model database for a few weeks now, and recently I took time to simplify and test out an idea I had on a simple key-value database. I started with the basics: A hash table in memory, a simple append-only log for persistence and durability, and the classic fsync() call after every write to the log for durability. It worked, but wasn't as fast as it could be. In Kevo, that's the approach I use, but in Klay (not public yet, but will be open sourced when ready)