2023-11-02: 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
).
2023-11-06:
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
» 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
2023-11-07: Scheme from Scratch by Peter Michaux: intro, and full list of posts. #scheme
2023-11-08:
2023-11-08: 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>",
},
}
2023-11-08: Learning (Some) Haskell by Building Tetris. #haskell
2023-11-09: Bit Twiddling Hacks.
2023-11-09: Profiling in Haskell for a 10x Speedup: Great read. #haskell
2023-11-10: ♪ Marianne Faithfull · Broken English (12" Remix)
2023-11-13:
During the Internet’s adolescence, words (and thus blogs) were easier to come by, because for the most part, almost all of the interaction we had online was using devices designed for interaction via text. With the shift to phones as a more popular interaction device, the ease of pouring thoughts into a textual medium has decreased. — Blogging Shift
Recursive data suggest recursive solutions. This is the key insight you need for understanding recursion. Not only does it make sense once you think about it, it also demonstrates why most other approaches to teaching recursion are essentially incorrect. — How Not to Teach Recursion
pytest supports running Python unittest-based tests out of the box. — How to use unittest-based tests with pytest
This is great since it allows me to use the same compiler (pytest) in Neovim, independent of the testing framework.
2023-11-13: Still decent timing…
aliquote master*
» make deploy
[+] Building public files in /home/chl/Sites/aliquote/public
hugo --gc --minify
Start building sites …
hugo v0.92.2+extended linux/amd64 BuildDate=2023-01-31T11:11:57Z VendorInfo=ubuntu:0.92.2-1ubuntu0.1
| EN
-------------------+-------
Pages | 4705
Paginator pages | 381
Non-page files | 1
Static files | 1318
Processed images | 0
Aliases | 1
Sitemaps | 1
Cleaned | 0
Total in 10170 ms
2023-11-13: A Data-Centric Introduction to Computing
2023-11-15:
Human optimism leads us to believe that we can easily know where a program spends most of its time. — Four Kinds of Optimisation
2023-11-15: ♪ Millie Turner · January
2023-11-16:
A computer game taking the shape of instant messaging software. The inherently paradoxical goal of the game requires no small amount of strategy, wit and cunning: The main objective is gaining as large a following of people as possible while simultaneously getting as many people as possible banned from the game. — Explaining the Internet in 2020
There are a lot of small websites on the Internet: Interesting websites, beautiful websites, unique websites. Unfortunately they are incredibly hard to find. You cannot find them on Google or Reddit, and while you can stumble onto them with my search engine, it is not in a very directed fashion. — The Small Website Discoverability Crisis
2023-11-16: Environment variables for Wayland hackers.Note to myself:
$MOZ_ENABLE_WAYLAND
Enables Wayland for Mozilla products (notably Firefox) if set to 1. Firefox uses GTK so setting GTK_BACKEND=wayland will force it to run on Wayland regardless of if MOZ_ENABLE_WAYLAND. However, it will default to X on GDK_BACKEND=wayland,x11 unless MOZ_ENABLE_WAYLAND=1 is set.
2023-11-21: TIL that Spotify originally relied on Fisher-Yates algorithm to shuffle their playlists.
2023-11-21: The qeML package: “Quick and easy” wrappers for machine learning. Norm Matloff also published a new book. #rstats
2023-11-21: ♪ New Order · Sub-Culture
2023-11-22:
My general advice for maximizing the battery is only use your battery as much as you need, i.e. charge it as often as possible, and as little as possible. If you need a rule of thumb, stay within 30%-80%. Wouldn’t charging a lithium battery to 80% only defeat the purpose of putting the battery into longer use in the first place?
2023-11-22: Poor man “fd(find)” command:
#!/bin/sh
find . -iname "*$1*" 2>/dev/null
2023-11-22: A Very Subtle Bug, or how to re-enable SIGPIPE in the subprocess child. #python