Experiment registry: Can I simply enjoy everything I do?

N.B.: If I link you to this personally, it is to explain why I usually seem to be in a great mood. It’s an experiment. I’m normally in merely a good mood, and I am pushing myself to be great. This is an unusual entry for a Today I Learned site, even by my standards. But I think it’s something I would prefer to pre-register ahead of time. I’ve always been predisposed to mirth. I laugh easily; I rarely get depressed; I’m just about always in a content mood these days, in no small part because I have actually succeeded on the meager goals I set for myself as a teenager (soulmate: check, child: check, sujuvuus vieraalla kielellä: yhä työn alla mutta kyllä se siitä, give me maybe five more years). Yet for some reason I have always felt it is, I don’t know, low status to be so effortlessly joyful and opulent. Like people will take you less seriously or something. So I’ve been reluctant to push my naturally good mood into the realm of actively loving life as my default state. ...

July 7, 2025

Switching Vim colorschemes based on which keyboard layout I have active

Did you know Vim has a client-server model baked in? Of course it does. If you run 1 vim --servername LOVE , then in another terminal something like 1 vim --servername LOVE --remote-send "<Cmd>colorscheme peachpuff<CR>" , you’ll find your Vim terminal switch to the creamy default theme all true gangsters love - without you actually having to do anything. I frequently flip between a US- and Finnish-based keyboard while doing my language studies. I already had a tiny shell script in place which plays a seventh major chord every time they switch, courtesy of Sway WM: ...

July 6, 2025

Using LLMs to generate small semantic perturbations for language learning writing practice

Still images of this GIF are at the bottom. Learning to read a language is mostly a game of getting massive quantities of comprehensible input. Learning to write that same language is a whole ’nother ballgame. But, using the 4-quadrant Anki card setup from my earlier post, I think I’m finding more and more ways to make this as amenable to spaced repetition as possible. One thing I’ve been experimenting with with surprising success is the idea of using LLMs to generate “semantic perturbations” on sentences I already “know” how to write, where “know” = “have in active review in Anki”, for our purposes. ...

July 4, 2025

The language learning "Delta" Anki card pattern

1 2 3 4 5 +--------------------------+------------------------------------------+ | L2, fixable | L1, intention | +--------------------------+------------------------------------------+ | L2, fixed | L1, (fixable -> fixed) explanation | +--------------------------+------------------------------------------+ The above 2x2 layout for Anki cards, which I call a “comprehensible delta”, is one of the best things I’ve happened upon in a while for learning another language. Let’s say you are learning Finnish, and you want to say ...

June 28, 2025

Save your disk, write files directly into RAM with /dev/shm

Given my interest in extending the life of my SD cards and hard drives as much as possible, I’m surprised I haven’t come across /dev/shm before. In a word it’s a world-accessible RAM scratchpad, which seems baked right into POSIX, so that virtually every Unix EDIT: Linux system already has it mounted as a tmpfs by default: 1 2 ❯ mount | grep '/dev/shm' tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64) Today’s lucky 10,000, indeed. It gets mentioned often in Hacker News comments, but surprisingly I couldn’t find any actual articles talking about it. The existence of /dev/shm is a boon for me mostly because it means I never have to worry about whether /tmp is really RAM-based again. ...

June 26, 2025

LLM, JavaScript, GitHub Pages, localStorage: A recipe for free apps anyone can use

Earlier today on Hacker News Scrappy made the rounds, with the explicit tagline “make little apps for you and your friends”. I always like to see new projects in this vein. That’s why I’d like to outline my alternative approach, which Works cross-platform and on mobile devices by default, Doesn’t require any app store tomfoolery, Has great uptime built in, Gives you just enough data persistence to not get in your way, and Is owned by you, forever. This is the stack I used to build my diet checklist, which I keep as a little icon on my phone’s home page. Here it is: ...

June 18, 2025

Create multi-stage Anki card answers with HTML's <details> tag

This works as of, at least, Anki 24.06.3. According to the Mozilla Developer Network, The <details> HTML element creates a disclosure widget in which information is visible only when the widget is toggled into an open state. In standard web browsers, absent any CSS to the contrary, a <details> tag starts closed until further notice. Since Anki is basically a local web browser on top of a timer, this also works there. ...

June 7, 2025

LLM tutored writing practice for secondary language acquisition

Language learning for the contemporary adult learner can be broken down roughly into four highly correlated, but distinct, skillsets. Passive understanding Active production The written word Reading Writing The spoken word Listening Speaking You may know from my FOSS software that I have been learning Finnish for the past 4 years or so. For the first few years I pretty much focused exclusively on reading comprehension, as I consider that to be the easiest quadrant to skill up in first. This focus put me in the interesting position for some time of being able to read most YA fiction and tax documents while being unable to order a pizza for myself on the phone. ...

June 1, 2025

Consider the cronslave

As a nerdy, working-class kid who grew up in the 1990s, knowing what time it actually was was a luxury I rarely had access to before I was 12 or so and my parents finally got an Internet connection with its attendant link to the Network Time Protocol. If you had told me I could have not just a watch but an entire machine that Never lost the time, Did what I wanted, how I wanted it, and Could be programmed to do what I want, how I want it on a schedule, I would have had to substantially revise my Christmas wishlist. ...

May 30, 2025

LLMs make Perl great again

Perl 5 went through a long nadir of unpopularity due in large part to its deserved “Write Once, Read Never” reputation. So I was surprised to find out not only is it installed by default on Debian, it’s installed nearly everywhere by default. It’s even the non-shell scripting language of choice on OpenBSD! Perhaps the only thing more impressive than Perl’s utter ubiquity is its longevity. The latest major version of Perl was first released in 1994. It came into existence on this planet less than a year after I did. It’s even arguably more portable than the median shell script - different Unices might use Bash, Zsh, Ksh, or even something newfangled like Fish, but for the most part a Perl 5 program is a Perl 5 program is a Perl 5 program. ...

May 24, 2025