The best thing about fish

The best thing about fish is probably the lateral line, which sort of like ears for underwater that enable fish to sense and locate predators even in dark or murky conditions.

The best thing about the fish command-line shell, on the other hand, has to be its “fuzzy” completions. In most other shells (like Microsoft PowerShell, which I use every day at work), you can tab-complete a filename like blog_post_idea.md by typing blog (the first part of the filename) and pressing Tab. If there are multiple matches, you use the arrow keys to scroll through them until you get the one you want.

This works fine if you put the most-unique part of your filenames at the beginning. But I like to begin my filenames with ISO dates, so to tab-complete 2024-03-06_blog_post_idea.md in PowerShell, I have to type 2024 and then jab the arrow key a bunch of times, which is like using a phone book that is sorted by phone number. In fish, I can just type blogpost (even without the underscore) and it will autocomplete to 2024-03-06_blog_post_idea.md.

Similar completions work for the options of most command-line programs, and it’s (relatively) easy to extend the built-in completions with your own configuration files (but I’ve never needed to).

Why I put ISO dates in filenames

I am one of those obnoxious people who begins his filenames with an ISO date, like 2024-03-06_blog_post_idea.md. I know that file metadata already tracks creation and revision dates, but I don’t like those: The creation date is misleading when you duplicate a file to reuse its format or content, and the revision date is all but meaningless because modern software modifies files on disk in all kinds of spurious ways. I put an ISO date in my filenames to assign them a canonical date. The canonical date means something like “the last date at which this file underwent a significant change,” and I alone (not software) can determine what that means.

Read more →

New old device

On a recent visit home, I dug this 2007 Sansa Clip out of a box.

An image of an Obama-era Sansa clip (released in late 2007, probably manufactured later) running the Rockbox custom firmware

It’s battery life is shot, but everything works, and I unearthed some critical throwback jams from the built-in 4GB of flash memory (among other things, the first four Brad Paisley albums in .wma format). As the picture shows, I also installed a bit of custom firmware called Rockbox.

Read more →

Recent reading

Mostly novels this time:

  • 조남주, «82년생 김지영», a 2016 novel about (I have struggled to phrase this in a way that isn’t too dead-on) why it is so hard to be a woman in contemporary Korean society.

    The movie version from 2019 is better known, perhaps thanks to the sanitized resolution in which the title character learns to channel her resentment into creative energy—and writes the novel that the movie is based on. In the novel, however, the final chapter reveals the narrator as 지영’s therapist, and he comes within inches of a feminist awakening as he weighs different diagnoses for her, then reverses course. Witholding spoilers, I suspect that much of the hand-wringing around the book turns on its withering, cynical last sentence.

  • 장강명, «한국이 싫어서», a novel about a woman’s decision to migrate from Korea to Australia, and for reasons that are no surprise if you’ve read the book above. This one has a happy ending.

  • Mishele Maron, “Anger Management” (paywall), a memoir by a psychologist whose job was to “goad men with a history of violence into wanting to punch me” and create the opportunity for them to examine their feelings in group counseling.

  • Greg Egan, Permutation City.

  • Philip K. Dick, The Man in the High Castle.

I am looking for Korean bookstores that deliver within the US. So far 반디북US has proven reliable, but I’d like to have a backup option in case their rickety website finally gives way. Write if you know of any others.

Housekeeping

Completed some overdue site maintenance over the past few weeks:

  • RSS feed styling: With help from a template found on GitHub, I created a stylesheet for the RSS feed so that it looks nice when viewed in the browser. Ctrl+F “via RSS” on this page to find the link, or just scroll all the way to the bottom, or maybe try this link.

    I am not a big consumer of RSS feeds myself; I prefer to just bookmark blog URLs and read posts in their original context. But RSS is an important bit of plumbing for the indie web, and probably covers accessibility use cases that I haven’t anticipated.

    (Technically, I am serving an Atom feed rather than RSS, but people use the terms interchangeably.)

  • Upgraded to Jekyll 4: Jekyll is a tool for building a static HTML site out of Markdown files. The built-in GitHub functionality for hosting a Jekyll blog uses an old version of Jekyll which has some end-of-life dependencies, and they are stuck searching for an upgrade path that doesn’t break existing sites.

    I followed this wonderful guide to switch my publication workflow to a GitHub Action that lets me manually manage my Ruby and Jekyll versions. It’s a great tutorial that also helped clear up several misunderstandings about Ruby, Gems, and rbenv.

  • Removed embedded YouTube videos: I replaced embedded YouTube videos with simple links to improve page load times and user privacy.