You can also also view the full archives of micro-posts. Longer blog posts are available in the Articles section.
Editing Lisp dialect in Neovim like a pro: beside Vim’s builtin (e.g., vib
to select inside brackets), paredit.vim (e.g., [[
go to top-level form), treesitter and nvim-treesitter-textobjects lets you navigate around your code easily, and incremental selection is a breeze. I originally used vv
(init the selection), va
(aka increase or <C-a>
) and vx
(aka decrease or <C-x>
), but now I just use <tab>
that other folks often use as an alias for %
. #vim
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<tab>",
node_incremental = "<tab>",
node_decremental = "<S-tab>",
},
}
If you get such a garbage when launching Firefox (official deb package, not the crappy snap one) from the command line or as an external browser for Newsboat, try force disabling accessibility as suggested here.
» firefox
~
» [Parent 25471, Main Thread] WARNING: invalid (NULL) pointer instance: 'glib warning', file /build/firefox-LOPdVD/firefox-119.0+build2/toolkit/xre/nsSigHandlers.cpp:167
(firefox:25471): GLib-GObject-WARNING **: 11:46:47.027: invalid (NULL) pointer instance
[Parent 25471, Main Thread] WARNING: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed: 'glib warning', file /build/firefox-LOPdVD/firefox-119.0+build2/toolkit/xre/nsSigHandlers.cpp:167
(firefox:25471): GLib-GObject-CRITICAL **: 11:46:47.027: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[Parent 25471, Main Thread] WARNING: invalid (NULL) pointer instance: 'glib warning', file /build/firefox-LOPdVD/firefox-119.0+build2/toolkit/xre/nsSigHandlers.cpp:167
(firefox:25471): GLib-GObject-WARNING **: 11:46:47.027: invalid (NULL) pointer instance
[Parent 25471, Main Thread] WARNING: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed: 'glib warning', file /build/firefox-LOPdVD/firefox-119.0+build2/toolkit/xre/nsSigHandlers.cpp:167
(firefox:25471): GLib-GObject-CRITICAL **: 11:46:47.027: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
Scheme from Scratch by Peter Michaux: intro, and full list of posts. #scheme
♪ sean thornton · edith says
Solving the puzzle of the address-of operator. #clang
Other subtleties of the C language: There are two ways to index an array a
, either a[i]
or i[a]
, as illustrated below:
#include <stdio.h>
int main(void) {
int arr[5] = {1, 2, 3, 4, 5};
int i = 2;
printf("i[arr]: %d\n", i[arr]);
printf("arr[i]: %d\n", arr[i]);
}
Almost 50, I remain philosophical because I spent about the first ~45 of them living without Youtube. Did that well enough. — https://lists.ubuntu.com/mailman/listinfo/ubuntu-users
I generated a docset for Purescript with pursuit.docset. However, I’m skeptical about its added value. I’m using Dash docset in Neovim via vim-dasht, and I noticed that oftentimes the online help for simple query like filter
or partition
are pretty vague. E.g., in the case of filter
the very first hits are all about _filter :: forall r a. Lens' { ... } a
, while none of the first matches for partition
yields the same result as a simple query on Pursuit (filter :: forall a. (a -> Boolean) -> Array a -> Array a
).
This document is a sort of quine. If you select the whole page in your browser and paste it into a file, this text shows up encoded in a weird Markdown variant embedded in a string literal inside a Racket lisp script. Evaluating the file with
racket -f $FILE
evaluates the lisp, converting the weird Markdown and producing the same HTML document that your browser received. — https://cgad.ski/
Compiling Chicken Scheme scripts. #scheme