aliquote.org

Latest micro-posts

You can also also view the full archives of micro-posts. Longer blog posts are available in the Articles section.

2026-04-07 20:44 #

Adding guards to all the executables I use as makeprg, compiler, formatprg, etc. in my Neovim config files (mostly in after/ftplugin) to ensure portability across machines. While it is easy to detect language servers when they come as static binaries, some LSPs come as packages, e.g., R or Racket language servers. Here’s what I came with:

" after/ftplugin/r.vim
let output = system("Rscript -e '\"languageserver\" %in% installed.packages()'")
if v:shell_error == 0
lua <<EOF
vim.lsp.enable("r_language_server")
EOF
endif

" after/ftplugin/racket.vim
let output = system("raco pkg show racket-langserver | grep Checksum")
if v:shell_error == 0
lua <<EOF
vim.lsp.enable("racket-langserver")
EOF
endif

For other languages, I just use an if executable("<whatever>") test.

img

2026-04-07 08:54 #

TIL about Git maintenance (via Git Tips 2: New Stuff in Git).

2026-04-06 21:21 #

Rivers from here and elsewhere. Bordeaux/Ivry, Apr. 2026

2026-04-06 21:19 #

Trying out Helix today. It lasted a few hours until I got back to Neovim. Too much muscle memory, I guess, and I’m happy with my current hand-crafted config.

2026-04-05 21:21 #

What I’m working toward is a canonical definition of the dataframe. Petersohn et al. made the best attempt I’ve seen with their data model and algebra. Category theory adds structure on top: three migration functors for schema-changing operations, and topos structure for set-theoretic reasoning within a schema. Together, these cover the relational core. — What Category Theory Teaches Us About DataFrames

2026-04-05 21:21 #
2026-04-05 21:17 #

Handy replacement for vaf from treesitter-textobjects: To select a whole Python function, including one or more blank line, you can use a combination of builtin ]M (Jump forward to end of current scope) and [m (Jump backward to begin of previous scope). #vim

2026-04-02 12:40 #

git bayesect is a generalisation of git bisect that uses Bayesian inference to solve this problem.