2026-04-02: Randomness on Apple Platforms. TL;DR “So, for simplicity, I’d suggest using CCRandomGenerateBytes on all platforms to seed random number generators which don’t have to be cryptographically secure.” #apple
2026-04-02: git bayesect is a generalisation of git bisect that uses Bayesian inference to solve this problem.
2026-04-05:
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: Handy replacement for vaf fromtreesitter-textobjects:To select a whole Python function, including one or more blank line, you can usea combination of builtin ]M (Jump forward to end of current scope) and [m(Jump backward to begin of previous scope). #vim
2026-04-05: Haskell for Data Science. #haskell
2026-04-05: SSH certificates: the better SSH experience.
2026-04-06: Trying out Helix today. It lasted a few hours until I got back to Neovim. Toomuch muscle memory, I guess, and I’m happy with my current hand-crafted config.- How I am using Helix editor- Helix as a glorious modern vim
2026-04-06:
Rivers from here and elsewhere. Bordeaux/Ivry, Apr. 2026
2026-04-07: Adding guards to all the executables I use as makeprg, compiler,formatprg, etc. in my Neovim config files (mostly in after/ftplugin) toensure portability across machines. While it is easy to detect language serverswhen they come as static binaries, some LSPs come as packages, e.g., R or Racketlanguage 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.
2026-04-07: TIL about Git maintenance (via Git Tips 2: New Stuff in Git).
2026-04-07: SPy: a vision for its impact on the Python community. #python
2026-04-13:
Enough lines drawn close together stop looking like lines and start looking> like a surface. Generative art over the years
Quoi ? C’est compliqué ? Faut faire un effort ? C’est pas joli ? C’est> élitiste ? Et tu crois qu’entretenir une crête colorée sur le sommet de son> crâne, c’est à la portée de tout le monde ? Bien sûr qu’être technopunk ça> demande un effort. Tu voudrais que tout soit facile, sans apprendre et joli> justement dans l’esthétique à la mode que t’impose un marketeux défoncé ? Mais> retourne dans les jupes de Zuckerberg ! — La complainte du technopunk ringard
2026-04-13: Apple Silicon and Virtual Machines: Beating the 2 VM Limit: “I got 9 macOS VMs running at once on my M2 Pro MacBook Pro, and still usable for testing!"
2026-04-13: Simplest hash functions. I wish every single technical blog post look so precise and so well laid out.
2026-04-13: Vim Advanced Search and Replace. I too make heavy use of the Quickfix, and I think it is one of the most underrated feature of Neovim. #vim
2026-04-14: TIL that we can use Texshop previewer with vimtex, which provides forward andinverse search facilities. No need for Skim.app. #vim
2026-04-15:
The Seine is green!
2026-04-15:
As a Lisp programmer, it’s not surprising that it’s a little slower. The> number of person-years that have gone into C compilers to optimize idiomatic C> code makes the development effort behind SBCL, the most popular open-source> Lisp compiler, look like a rounding error. — Idiomatic Lisp and the nbody benchmark
2026-04-16: Before I forget again, if you stumble upon an error with “libzmq.h” not found(installed via Homebrew) while trying to install common-lisp-jupyter, this may help. #lisp
2026-04-16: Just a few days ago I upgraded to the main branch of nvim-treesitter (because reasons), and it is now archived. See also nvim-treesitter Was Archived. Here’s What You Actually Need to Do.#vim
2026-04-16: Veil: A Neovim GUI built for efficiency, not for cool. Native macOS, Metal rendering, instant startup. #vim
2026-04-20: /me is listening to “Group Four” by Massive Attack
2026-04-20: Rust is coming to the R’s world: air, arf, ark, and jarl to name a few. #rstats
2026-04-21:
walking without stopping, except to look at the river and the surroundingcountryside
2026-04-21: I realize that my long-abandoned Now page datesback from August 2021…
2026-04-21: Live coding tricks for CHICKEN Scheme.#scheme
2026-04-24: /me is listeniong to “Angel” by Massive Attack
2026-04-24:
R is not properly tail-recursive.> True at present. May be unavoidable since the language providesaccess to the stack via things like sys.parent, but as it is rare tolook at anything other than the immediate calling environment and call(outside of a debugging context) it may be possible to change that. — R and Scheme
The choice of macro system is a very contended issue. The result of this particular controversy was that R7RS just kept syntax-rules from R5RS. In R6RS there is both syntax-rules and the more powerful syntax-case, in which syntax-rules can be written in just a few lines. — R7RS versus R6RS
The idea of “iterate over an entire collection” is a pretty common one in programming. For the sake of brevity, I’m not going to justify why I think this is important. But let’s look at a couple examples of where Scheme fails because it doesn’t have some generic way to operate over different collections. — Reflecting on Transducers
2026-04-28: TIL that there’s something like Astral uv for Chicken Scheme: Why I chose Rust for Basket. #scheme
2026-04-28: Exposing Floating Point. Allof Bartosz Ciechanowski’s blog post are enlightening!
2026-04-28: How LLMs Actually Work. FWIW.
2026-04-28: Networking changes coming in macOS 27: I guess I just need to back my (very) old Time Capsule to an SSD device. #apple
2026-04-28: mine is an integrated development environment for Coalton and Common Lisp for Windows, macOS, and Linux. #lisp