đŸ’Ÿ Archived View for gemini.circumlunar.space â€ș users â€ș adiabatic â€ș scrawlspace â€ș 2024 captured on 2024-08-31 at 12:15:09. Gemini links have been rewritten to link to archived content

View Raw

More Information

âŹ…ïž Previous capture (2024-08-24)

🚧 View Differences

-=-=-=-=-=-=-

Scrawlspace

This is scrawlspace. I scrawl in this space. Do not expect coherence or permanence here.

2024-08-30: The wallpaper post (very meandering, should replace and break up)

I’ve ended up pretty picky about what I want in wallpaper.

A while back, I switched some of my primary machine’s wallpapers away from helicoper-taken shots of rugged California coastline and regretted it almost instantly because it made the whole room feel claustrophobic.

For reasons that I’ll probably get into later, I like having my different operating systems feel and look distinct from each other. Part of it is that I don’t want to get mixed up with my keyboard shortcuts, and doing whatever I can to make them all look different from each other is probably a good idea, on net. While I’ve used Apple(-style) wallpaper on Windows as a joke before, I’m kind of out of that mindset now.

So.

Recently — or at least I still think of the switchover as recent — I switched my Windows machine to Debian with GNOME on it.

So.

What should I use as the wallpaper?

GNOME-on-Debian comes with wallpaper.

Many of the wallpapers are good.

GNOME probably gets sneered at for having windows that can shrink down to something that will fit nicely on a phone screen, but it’s fantastically nice to have a wallpaper-picker window that shrinks down to an eighth of the screen so you can find out what your prospective wallpaper will feel like without a whole lot of stuff covering it all up.

Many of the wallpapers are paired — you get one wallpaper in light mode, and one wallpaper in dark mode.

I tried replicating this myself for some of my own wallpaper, and it doesn’t seem to work right for wallpaper you want to tile. Phooey.

Eventually I saw — and settled on — this:

./hibiscus-flowers-maybe.jpeg

There’s a lot to like about it:

It is not, however, a good dark-mode wallpaper.

A good dark-mode wallpaper should not be the brightest thing in view.

It shouldn’t have any part of it that’s the brightest thing in view, either.

These white flowers are the opposite of “not the brightest thing in view” once the sun goes down.

And so we are faced with an oddity: a light thing with a dark stripe makes for a fine light-mode thing (like the “Light+” theme for Visual Studio Code), but a dark thing with a light stripe is an AWFUL dark-mode thing.

I’ve switched away from my usual wallpaper some late nights because I want something darker that won’t mess up my night vision, or outright blind me.

I’m still looking for a good Linux wallpaper that does that. I could probably do that with one or more tiled wallpapers, but the people who run GNOME seem to have forgotten what the use-case is for tiled wallpaper.

2024-08-29: Deciding capsule image policy

I’ve got rsync access to my capsule. Thanks, solderpunk!

One thing that can be done with rsync that can’t easily be done with ftp(1) is re-uploading large files
because rsync can easily compare hashes of both local and remote files and figure out “nothing has changed on either end here, so there’s no point in re-uploading”.

Sure, I could have an entirely separate assets directory that all the files get stuck into, and only re-upload there when something changes, but I hate having a separate assets directory. I want a page and all its resources self-contained.

Now, we have something to decide.

What will my images policies be?

I’ll probably end up sticking to GIF, JPEG, and PNG. Maybe WebP if it’s already in WebP.

The other newfangled formats, I’m not sure what can open them and what can’t. If a file downloads in four fifths of the time but takes 10,000% longer to open because you have to hunt for a fancy viewer program, you haven’t saved any time.

2024-08-28: I guess JSON-LD won over microformats and microdata?

Prior reading:

Cal Paterson, “Being on The Semantic Web is easy, and, frankly, well worth the bother”

When JSON-LD came out, my reaction was something along the lines of “oh, yuck — Google wants me to drop what I’m doing with markup that’s actually in the document and stick a giant separate wad of JSON in my <head> instead? They all can go take a long walk on the Golden Gate Bridge — in the east/west direction”.

Microdata was a lot cooler. You’d just
mark up stuff in your document, and that would give whatever enough context to figure out what’s what instead of having this wad somewhere else on the page, and possibly having to work to put multiple wads in the same <head>.

But if I listen to this guy, then JSON-LD won enough that I shouldn’t bother with anything else. He’s not saying anything about how Mastodon will automatically make a rich preview from your microformatted microdata. I have a personal policy of sorts of not doing Google-only anything, but if Mastodon and other things support JSON-LD, then that might tip the scales.

References:

Wikipedia, “Microdata”

2024-08-27: Hey look, some ASCII art (actually Unicode box-drawing characters)

 V O T E
S A X O N
 ┌─────┐
 │ â•Č ╱ │
 │  ╳  │
 │ ╱ â•Č │
 └─────┘

2024-08-25: Metric, a bit past basics

Anyone can convert measurements from metric and tell them to you. I promise to FEEL the measurements AT you.

— the character of Stephen Colbert, in an alternate universe

Prior reading:

idiomdrottning.org, “Metric basics”

The easiest way to get an exact conversion into your preferred system of measurement is to ask your phone — rendering a lot of memorized conversions unnecessary unless you’re a math whiz.

Of course, if you want feet-and-inches, or stones-and-pounds, you’re going to have to get familiar with a more specialized tool that does modulo and integer truncation.

A better way to get familiar with metric is to actually use it.

Here are a couple of ways to internalize metric units:

For single meters, probably the best way I can think of on short notice is to buy a meterstick and hang it up on the wall in your house and just look at it as you pass by. Then, when you’re asked to describe something in meters, or get an idea of something measured in meters, you won’t be caught flat-footed.

Of course, this won’t help you much if you’re trying to figure out how tall an internet buddy of yours is when he says he’s 172cm tall. You’ll want to break out the accurate converter for that.

My go-to representation of small amounts of meters are the 1m and 3m diving boards at my high-school gym. I was there a bunch over the course of four years, so I still maintain a decent idea of how tall they are even though I haven’t been there in ages.

5m and 10m diving platforms for me would be a bit harder; I don’t have a good reason to drive all the way to pools with those looming overhead, and watching Dive!! doesn’t help with that at all.

Pools are kind of a treasure trove of metric measurements. You can also get 50m chunks from them even if the short distance is 25 yards.

If you want to understand kilometers, I’d find the closest 5k loop and walk (or run) that. Repeatedly. Not all on the same day. We don’t hate cardio here at Halfway to Mars. Do it twice and that’s 10k.

As for weight/mass, a Pound Plus (500g) bar of chocolate weighs
500g. Two of them weigh a kilogram. “A kilogram is two pounds, but round up” isn’t the worst approximation of (1 kg ≈ 2.54 lb).

A 500ml full plastic water bottle also weighs
500g. I used to carry around two in college. Nowadays I use (much thicker) plastic water bottles only for short periods of water-storing time and any kind of extended water carry is done in quite weighty glass bottles, but you could do worse to play around with freely-offered 500ml water bottles just to get a feel for how much half a kilo weighs.

Because Coke and similar have CO₂ dissolved in them, I’m hesitant to say “pick a 2-liter bottle off the shelf — that’s two kilos” because that’s probably fake news.

For single grams, I’d recommend getting a gram-accurate and also a milligram-accurate scale and using those in the kitchen. Depending on what you cook/bake, you’ll get an idea of how much 20g weighs if you’re dumping 20g of turmeric onto a scale every couple of weeks.

On the other end, a standard-issue 45-pound bar weights 20 kg. You do barbell work, right? Of course you do.

A bit further out, “100 kilos is 220 pounds” may or may not be useful depending on how much you weigh, or what your target weight is.

For temperature, you probably have to memorize 10°C, 20°C, and 30°C. Maybe 40°C if it gets crazy hot where you live. If you’re a sauna enthusiast you might also want to get a feel for 80°C and 100°C. If you live in cold weather you might want to memorize −10°C and lower, but you get 40 below for free just like you get 0°C=32°F for free.

If you want to spend more brainpower on all this, you’d probably do well to also add 15°C, 25°C, and 35°C to your list of memorized temperatures.

As for area, I barely know area. I don’t know how much an acre is, so any kind of conversion from hectares to acres is going to do diddly squat for me.

One thing that helps: memorize the square footage of your house (or moral equivalent). That gives you at least some kind of baseline comparison.

References:

Dive!! on MyAnimeList

2024-08-25: Library science is hard, and even more so when it’s multiplayer

From time to time I look at Pinboard’s list of popularly-bookmarked pages.

pinboard.in/popular

I’m still low-grade worried about microplastics in everything, so the following entry caught my eye:

Microplastics are infiltrating brain tissue, studies show: ‘There’s nowhere left untouched’ | Pollution | The Guardian 6
brain health plastics pollution anthropocene

The first line is the title, along with the count of how many people bookmarked this (6).

The second line is a space-separated list of tags that people have been using for this particular URL.

Here’s a link to the detail page for that particular popular link:

individual entries for the Guardian article on microplastics

I haven’t even gotten around to reading the article yet, but one thought occurred to me:

. o O (who in blazes thinks “anthropocene” is a useful tag for this?)

Is there someone out there who thinks “Oh, I want that article about microplastics
I’ll click on the ‘anthropocene’ tag, because that’s where it probably is”?

2024-08-23, but like a couple minutes later: A thought on Apple’s 15–30% cut

Whenever I hear Apple nerds talking about Apple’s App Store fees — generally to complain about how they’re too high and apply to too many things — I think of what the world must look like from Apple’s perspective, and then think of this voice line:

The Dota 2 Venomancer saying “I deserve this”

References (well, reference):

Dota 2 Venomancer responses

2024-08-23: By neither Blammo nor Napier

2024-08-18: Puce

In elementary school, I read a story that mentioned, and described, the color puce. I forget which story it was.

I settled on some kind of dirty pink color, but I never was really sure what it was like.

⁂

In the intervening years, Wikipedia was invented.

Occasionally there’ll be small details from my childhood that I’ve wondered about that are trivial to answer now that Wikipedia is a thing, and has been for a long time. “What color is puce, really?” is a great thing to look up on Wikipedia, so I did.

Wikipedia, “Puce”


well, I was kind of right.

A couple of these puces match “dirty pink”.

Not all of them.

The Pantone version of puce looks halfway between the pourpre.com puce and the color of goose shit (mentioned on the Wikipedia page), but I’m not sure since it’s been a long time since I’ve seen goose shit.

Oh, and if you click on the eyeglasses icon at the top of the Wikipedia page, the popup will give you an option to select automatic dark mode.

2024-08-08: I guess this page technically isn’t all in American English anymore

I’ve been paying attention to Information Architects for a while. I have happy memories writing in Writer (although I’ve since moved on to other tools) and their Presenter was a soft pass since I hadn’t needed to run PowerPoint at all and didn’t expect to in the near future.

I also remember them as at least partially Spanish. Maybe all of them were at the time. Maybe most of them, with one Swiss or something.

Their latest product is a notebook. I chose to retire a little later than I otherwise would and ordered two. They came in a few days ago.

⁂

With an Apple product, it’s easy to know when the packaging stops and the product begins. Packaging is paper and cardboard; the product is some kind of metal-and-glass-and-plastic gizmo. With the iA notebooks, the definitions are kind of blurred, since it’s basically paper all the way down and some of the packaging looks awfully useful for long-term storage.

⁂

Here’s how the thing was, from outer packaging to the innards of the product:

The first thing was a plastic bag with the shipping label in it. Usually I don’t see taped-on bags with printouts inside anymore. The shipment came from Japan. I guess iA have fully moved over to Japan. Makes sense, as there’s a lot to like about Japanese design as long as you’re deliberately ignoring locally-produced webpages.

Next was the cardboard box that contained everything. This box was unremarkable.

Inside the box was wadded-up kinda-stiff paper that cushioned the notebooks inside. Somewhat. At least it took up some space inside the shipping box.

Cushioned by the paper were two items. I’ll call each item a “notebook assembly”, if only because I’m focusing on each piece as I dig through one of them.

On the bottom of both notebook assemblies is a sticker. The sticker has three things on it:

☞

At this point, you may be wondering:

How did this author get â€œăƒŽăƒŒăƒˆăƒ–ăƒƒă‚Żâ€ onto this page?

I took a picture of the sticker I just mentioned. On my phone. iOS has an image-to-text recognizer that works on pictures, so I was able to select the text that was in the picture and copy and paste it (via Universal Clipboard, one of the handiest things about being all in the Apple ecosystem) into this document that I was writing on a real computer.

However, when I was unboxing these things again with an eye toward telling all of you about it, I wrote down the name in Japanese, along with all the other notes I was making at the time. While I don’t expect to need to know any Japanese anytime soon, I did want to write it down properly, so that meant looking up something that would tell me the stroke order. I then went to a browser and typed in

hiragana stroke order chart

and picked one that seemed promising from a list:

tofugu.com, “27 hiragana charts: stroke order, practice, mnemonics, and more”

I couldn’t find anything that looked like a ノ.

After a few more seconds, I realized — oh, of course, “notebook” would be in KATAKANA. D’oh.

so after going back a bit and searching for

katakana stroke order chart

I got to what I needed.

iA uses gothic (Japanese typography for “sans-serif”) fonts everywhere on this thing, so I crossed my fingers and hoped that I wouldn’t flub the character recognition.

I found almost everything I needed. I know that everyone in that part of the world draws horizontal lines left to right, so I didn’t bother looking up ăƒŒ. I couldn’t find ブ, though; I could only find フ. Judging by how ッ is written (the two dots go toward the top left), my “just write a double quote” guess was probably wrong.

☜

The next part of each notebook assembly is a white cover. It covers four sides (of six); the uncovered sides are on opposite sides, on the spine and pages ends. Both white covers got smashed up a bit in transit, so sliding its contents out from one of the sides generally forces you into sliding it out the side with the less-smashed-in corners.

This white cover has the following embossed onto one side of it:

iA ăƒŽăƒŒăƒˆăƒ–ăƒƒă‚Ż
The Notebook for Writers

The back is even more verbose, and starts about halfway down from the top. According to my phone (for the Japanese, at least), it reads:

é€ă‹ă—ă‚’äœżăŁăŸç”»ç·šăŻă€èš€ăèŸŒă‚€ăšăă«ăŻă‚Źă‚€ăƒ‰ăšăȘり、
èȘ­ă‚€ăšăă«ăŻă‚ăȘăŸăźæ–‡ć­—ă‚’éš›ç«‹ăŸă›ă‚‹ă‚ˆă†èƒŒæ™Żă«ăȘă˜ăżăŸă™ă€‚
iAăƒŽăƒŒăƒˆăƒ–ăƒƒă‚ŻăŻăƒ©ăƒłă‚żăƒŒăźăŸă‚ă«ćˆ¶ă‚’ă•ă‚ŒăŸă—ăŸă€‚
Watermark lines guide your pen. As your words
come into focus, the lines fade into the background.
iA Notebook. Crafted for writers.
iAăƒŽăƒŒăƒˆăƒ–ăƒƒă‚Ż | 110mmćƒ•ć›œ A5ゔむă‚ș 144æ¶Č
Handcrafted in Japan


hey wait. On the actual page, the character after “144” looks like “woman” with a tree radical off to the left. And the characters after “110mm” definitely don’t have “country” at the end and the one on the left definitely doesn’t look like the ’50s conception of a Pacific-islander chieftain with an impressive stick. The bottom of the main bit looks OK, but the top of the main bit is wrong and the radical is, again, the one that I’m pretty sure is for “tree”.

The Englishish bits didn’t come through unscathed, either. I transcribed the English paragraph the old-fashioned way, but I had to prepend an “i” to “iA” in both Japanese-dominated lines. The recognizer just
didn’t recognize them as being text.

Computers, amirite?

I can only hope the Japanese in the paragraph came through OK. I did a couple of spot checks to make sure I got the line breaks right by comparing to the character that comes just before the punctuation, but I’m not going to proof the whole thing.

I had to take some darn good pictures in good lighting to get my phone to recognize this text as text, too. On one of the photos I took, “ăȘăŸăźæ–‡â€ wasn’t recognized as text at all, and I had to go figure out how to get a better-lit photo with the light hitting the thing just right.

Considering how hard the embossed text is to read, I’m medium-grade surprised any of it came through at all.

Anyhow.

That was the cover.

Inside this cover is
a wooden box. It’s book-shaped.

It’s light. Both in color and weight. My guess is that it’s made of balsa, like model wooden airplanes.

You take one half of the box off and inside is the notebook. On the inside of one of the box halves is “iA ăƒŽăƒŒăƒˆăƒ–ăƒƒă‚Żâ€, printed in black ink.

Lying inside the box is the notebook, wrapped up in the left-to-right dimension with some kind of fancy paper. Feels kind of like wax paper, but much, much less waxy.

Take the paper off and set it aside, and you’ve finally got to the notebook itself. It has an obi-style cover:

Wikipedia, “Obi (publishing)”

Drat, the Wikipedia image doesn’t really show this sort of thing. I had no idea how to describe this kind of partial jacket cover, so I went looking online for the last book I bought with this kind of cover:

fangamer.com, “Legends of Localization, Book 3: Undertale”

The page has the following super-helpful (at least to me, for my purposes here) bullet point:

‱ 'Obi'-style jacket

So yeah, a jacket that’s about as much of a dust-and-ding cover as a cummerbund.

Anyhow, the front cover says it’s an iA notebook, and the back cover has the paragraph of Japanese with the English translation (I’d figure) underneath.

Oddly enough, there’s nothing on the inside of the obi. Perfection something something nothing to take away, I guess.

Underneath the obi is the notebook itself. The bottom of the back has the bit about it’s 10mm in some direction (not sure which; the pages, all together, are 1.9cm thick), A5 size, and 144 female druids.

Maybe that’s “144 pages”. The pages are blank, and life’s too short for me to count them. 144 pages seems about right.

Of course, all this is embossed, too.

Finally
we get to the actual pages. The webpage for the thing—

ia.net/notebook

says the embossed lines fade away as you write, but the only way you’re going to see the lines at all is if you have a shockingly bright desk lamp a short distance away. Imagine, like, a 100W incandescent bulb maybe 1Âœâ€Č–2â€Č away (half a meter, give or take), or some mega-bright halogen desk lamp that will do its darndest to make sure you can see everything crystal clearly — and also make sure that you won’t be able to get to bed anytime soon.

I actually wonder if I’m going to notice the lines enough to keep level and not curve up or down as I make my way rightward while I write.

At any rate, I have — easily — too many notebooks that I want to fill up first. I also can’t think of anything I’d want to start in these in parallel to my others, so into easy-access storage they go. You all — yes, you reading this — get a lot of my writing output, and a lot of my personal notes go into electronic formats, so I’m probably not going to be cracking these things open to write in them anytime soon.

Even if I do fill one up, I’m doubtful that anyone else would want it; it’s not like one day someone’ll say “I want to flip through one of my dad’s diaries”, much less “I want to see what Grandpa was thinking; he’s seen a lot and probably has an interesting perspective on things”.

2024-07-29: Less-uh-thin (actually none)

A while back, I saw that Jeremy’s had a sale on their chocolate:

Jeremy’s Chocolate

In fact, they were outright giving it away — the only thing that they were charging for is shipping. Previously, I’d looked at their chocolate and the price tag for it and thought “not for me” — generally, my chocolate needs are handled by Trader Joe’s Pound Plus (500g) bars in milk, (rarely) semisweet, or dark (72%) chocolate. I think they go for $6 per 500g bar.

So I ordered three pairs of nutless (She/Her) and with-almonds (He/Him) chocolate in their micro-aggression size.

They came in today. I had a few of each after lunch.

The best-by dates for them vary. Checking just now, I saw two different dates — 9/18 and 8/29, and today is 7/29. I didn’t check all six bags; I thought that checking just two would be enough.

As you might guess, it doesn’t taste as great as it might. The obvious thing you can see — and taste — is the chocolate bloom.

Wikipedia, “Chocolate bloom”

If you’re wondering why they’re giving the things away, this is almost certainly why (at least most proximally).

⁂

There are two things that make these products interesting, though.

One is that the squares are super-thin. They’re probably only about a couple of millimeters thick each, not counting the protruding almond bits in the He/Him variant. (I already brushed my teeth, so I’m not going to open up another one and stick it next to a ruler for another twelve hours or so.)

This thinness makes them interesting as a dessert add-on; you can break them into triangular fins and use them as an artsy ice-cream topping, for example. The with-almonds variant also keeps the thinness; it looks like one side is made of teeny cobblestone. Both sides of the chocolate bar are unbranded, interestingly enough.

The other interesting thing about them is their pair of ingredients lists:

Notice anything?

There’s no lecithin in either one, soy or otherwise.

Basically EVERYTHING has lecithins in it. Usually soy, sometimes sunflower.

Now, you might be wondering — what other kind of chocolate doesn’t have lecithins in it?

Hu Kitchen

We’re Hu, as in Human, delivering simply indulgent Organic and Fairtrade chocolate with No Weird Ingredients. Ever.

Expensive hippie stuff. Delicious expensive hippie stuff.

Previously I chalked up the eyebrow-raising price of Jeremy’s Chocolate to a company that’s still ironing out the kinks in its production pipeline and, as a result, can’t (yet) deliver the goods at a reasonable price yet.

Now I’m starting to think that they’ve got an expensive custom pipeline because they’re trying to not put the usual crud in their products, and that explains at least some of their prices. Of course, not everyone’s willing to pay their previous sticker price for it, and so now they’ve got old inventory that they need to offload at fire-sale prices.

2024-07-19: If you’re staying off the Web only because you’re worried about Google indexing what you write, I have good news

This made the rounds over the past few days:

Vincent Schmalbach, “Google Now Defaults to Not Indexing Your Content”

Really, it’s all there in the title. You should still read the rest of the article, though.

If you’ve been writing in Geminispace because you don’t want Google to index your stuff (and you don’t want to use robots.txt or similar to tell it to go away), then this revelation gives you one fewer reason to make that fancypants HTML-based site with beautiful tables that you’ve been dreaming of making.

Of course, there are search engines other than Google, plus some unknown number of LLM (large language model, like for ChatGPT) model trainers scouring the Web. On the other hand, whatever Google’s doing is probably going to be what all the other LLM trainers will be doing soon enough. Scouring random websites is a risk. While Reddit is frequently a good source of information, it has all sorts of nonsense posted for humor value that gets loads of upvotes.

Of course, if you do get superfamous, then world+dog will index your content and feed it into LLMs. You may or may not have a stronger opinion on this than I do.

2024-07-17: I chose video

Many years ago, when I got my first computer, it had a 17″ 1024×768 monitor and two tweeters that I placed on either side of the monitor.

Years later, I upgraded to a much larger 1600×1200 flat panel.

Now I have two monitors — a 27″ 5K main display and a 27″ 4K secondary display.

With the two of them combined, there’s no good place for me to put a pair of speakers. I could move them right under my main monitor, but that’s a good place to put more important things. I can’t put them directly to the left and right of me. I can’t put them on the wall, either, because reasons.

So now my primary speakers are the ones built into my monitor. They’re shockingly good for monitor speakers, but I’m still kind of miffed that if I want good audio, I need to put in — or on — a pair of headphones.

2024-07-15: The “Plus” means “Fans”

I was out and about doing errands and saw a Lamps Plus. I hadn’t been in one for about three decades, so I decided to drop in and have a look around.


it wasn’t as warm inside as I remember. I guess LEDs finally came into their own and aren’t just for red/amber/green lights like the last time I came in.

Hooray for technological progress.

One could categorize the things they had for sale as follows:

I wouldn’t put a loopy noodly chandelier above my dining-room table or on top of a coffee table in my house, but I appreciated seeing Howard Roark’s philosophy on display.

Ayn Rand’s _The Fountainhead_, Howard Roark on the Parthenon

I didn’t really need anything new, so I didn’t buy anything.

A couple days later, I came back for some replacement bulbs for the final three not-too-special incandescent bulbs I have. The new LEDs use six watts instead of 50 and they dim as well as the incandescents did. They seem to be about 500K cooler than the old bulbs, but I’m not sure if the dust on the old bulbs subtracted 500–1000K from the color temperature or not.

The new LEDs also have a start-up delay of like half a second. I guess the new things STILL aren’t better than the old things in every way. Phooey.

2024-06-27: Accurate magazine title, really

I had an eye-doctor appointment today.

They still have magazines in the waiting room.

Everyone in the waiting room — and I was the second-youngest guy there — was on a phone. I don’t blame any of them; phones are portals to all kinds of interesting things.

I decided to retvrn to reading magazines. It’s not like I’d subscribe to any of these myself, and it’s nice to peek outside my bubble when the opportunity presents itself.

I choose an issue of People, with Hugh Jackman on the cover. I check the date. It’s from this year, at least. Maybe a month or two old.

The cover feature is of Ryan Reynolds interviewing Hugh Jackman. Jackman says he’s surrounded by publicists. Reynolds says something to the effect of “they all have tasers pointed at me”.

One of the men says something that it’s important to let your children see you sweat, especially if you’re going to be on edge; saying “daddy has an important phone call coming up, so if he’s acting funny, that’s why” helps. I nodded knowingly.

Morgan Spurlock died. The blurb mentions that he developed a drinking habit while getting fat on putatively only McDonald’s in Supersize Me. I did not know this.

The last page I remember reading was devoted to the “They named me one of the top five Hitlers of all time. REAL HITLER WASN’T EVEN ON THE LIST!” guy from, I think, The Unbreakable Kimmy Schmidt.

All in all, not a bad read. Sure, I have better on my phone, but People counts as exotic in my world now.

2024-06-19: You need another dimension to free your mind in

~inquiry writes a post:

~inquiry, “in the direction of ascii freedom methinks”

ASCII freedom is only in one dimension. If you want more — and you want more — you’ll want to have a branching tree structure like one sees in Ferengi writing.

Memory Alpha Wiki, “Ferengi language”

2024-06-15: So we had a WWDC

Tim’s forearms still look good. I’ve caught up a bit to him since WWDC 2023, but I suspect his have less fat on them than mine do.

Every year I go into WWDC hoping for another Snow Leopard (that is, a release with mostly bugfixes and no new user-facing features.) Every year since has been a disappointment, but at least this year I mostly had a smile on my face after seeing all the announcements that weren’t part of the “Apple Intelligence” stuff at the end.

Let’s talk about the not-“AI” stuff first.

Being able to put Springboard icons anywhere? FINALLY.

I don’t care about the tinting.

I’m
surprisingly indifferent about the dark-mode icons. I might come to like them if I get a good set and it keeps the screen mega-dim at night when I want to keep the light blasting to a minimum.

The Control Center improvements look handy. I have a couple of Shortcuts I might want to keep right there handy, and the new Control Center looks like it might be able to handle all that.

I don’t know why the lock-an-app functionality is being described with a set-up of “say you want to hand your phone to a friend to take a picture”. I was thinking of something like Guided Access, where the gizmo is locked to one app only and you need to do something fancy to break out of it. This is the reverse — you lock one app at a time, like a diary app.

The lockdown of Bluetooth and LAN apps is nice.

On to Messages


Arbitrary-emoji tapbacks? Nice.

Delayed-send messages? Nice.

Bold/italics/underlining/strikethrough? Meh.

The animated stuff? Double meh.

Messages via satellite? Possibly handy. I wonder if there’ll be a charge. They’re already saying you get two years free of satellite SOS, but I don’t know if they’re just gonna give it to you in perpetuity or what the pricing model will be.

Now for email


I already have my email sorted nicely on the server with a bunch of different rules, so this is a feature for other people.

Now for other things


⁂

Now for the Apple Intelligence stuff


⁂

And now to see if there’s anything comment-worthy on the Platforms State of the Union


The best apps are built with native SDKs

Preach it, Josh.

⁂

Not the worst WWDC. They’re adding a bunch of things I’ll probably find useful. I wonder how thinly they’re all being stretched, though. I can only assume they’re still being stretched too thinly and they’re not doing anything that would improve their velocity, like making it so their developers can interact directly with bug reports’ authors.

2024-05-24: I’m a paranoid schizophrenic with surround-sound speakers

This has been making the rounds:

ProPublica, “How 3M Executives Convinced a Scientist the Forever Chemicals She Found in Human Blood Were Safe”

I hear lots of things about PFAs. None of them good, and, as far as I can tell, they’re everywhere. I wish 3M the best of luck trying to phase them out of their products, unless they manage to screw up and replace them with things that are worse. I hear at least some BPA replacements are like that.

I’m trying to imagine what life would be like if things that had PFAs in them weren’t in use, at least for our food chain and things we touch regularly. (I can’t say I’d care if PFAs were used in plastic tubing in a water-cooled computer of mine.)

Man, I hope I’m being overly paranoid, because some of these things are things I’ll miss.

I sure hope 3M finds a replacement for these things, because getting them out of our pretty much everything is going to make pretty much everything more annoying and more vulnerable to mid-supply-chain tampering.

Explanation of this post’s title on Track 1

2024-05-19: Now do Head Start

Maciej Ceglowski has a new post on his blog:

The Lunacy of Artemis

In my feed reader, the whole piece starts out with the following, in italics:

In August 2020, the New York Times asked me to write an op-ed for a special feature on authoritarianism and democracy. They declined to publish my submission, which I am sharing here instead.

This preamble is absent from the published version. I wonder if the author got a wire crossed or two.

⁂

One aspect of being well-calibrated is keeping track of things and adjusting your perception of them as time goes by. I liked NASA when I was a kid. However, it appears they’ve managed to sink to modern levels of government-bureaucracy competence.

Sad, really.

As they used to say back when “the blogosphere” was a coherent entity, read the whole thing.

2024-05-16: Slick

I am a fan of two body washes:

Trader Joe’s Tea Tree Tingle Body Wash

Neutrogena Rainbath Shower and Bath Gel

The first is my go-to. While the tingle may be either pleasurable (generally in the summer months) or an annoyance (generally in the winter months), it’s a reliable body wash with a pleasant scent.

The Neutrogena, by contrast, is something of a power tool. It’s closer to weatherstripping for body oils and will get your hair clean and de-oil everything everywhere. The snag is that I can’t slack on the rinsing — otherwise I’ll get irritated skin and have to smear slime on it for a week+ to get it to calm down again.

⁂

Enter Jeremy’s. You may remember my review of their first-generation razor blades back on 5/13/2023. They’ve also got a line of shampoos and body washes:

Jeremy’s hair-products collection

As I’m writing this, they have both a shampoo BOGO (buy one, get one free) and a body-wash BOGO bundle. I ended up getting a pair of shampoo bottles and a pair of body-wash bottles. I only have so much space in my shower, so I only brought out a bottle of body wash and put it out where it’d be handy.

Now, I usually use a bleachable white washcloth. It scrubs better than a bare hand and generally cleans better than a bare hand does. I ended up spurting an eight-count of Jeremy’s onto my washcloth, and—

Weird. It’s basically black goop.

I checked the bottle to reexamine the ingredients, and I guess that’s what the charcoal is doing.

Eight squirts wasn’t enough to get my washcloth nice and soapy, so I kept going until a 12- or 15-count.

One can place all pleasant body-wash scents on a spectrum:

I’d place both the Tea-Tree Tingle and the Rainbath in the “not bad for men” neutral camp. This stuff, by contrast, seems to be in the bottom category, and if my mother were to use it, she’d smell nice, but probably a little odd somehow.

I’ve never been a Duke Cannon “Smells Like Naval Supremacy” enjoyer since I prefer body washes, so the sheer exoticness of the smell was fun.

So now I’ve got this black gunk in my washcloth. I lather it up, and while it’s not nearly as dark as it was, the washcloth is still darkened. It’s like I got a bloody nose in the shower, continued soaping myself up while dripping blood, and then washed the blood away
mostly. Except I haven’t quite gotten the last remnants of blood out quite yet. Oh, and there’s the color difference, as well.

Like I said, pleasant smell.

It seems to clean well.

Now to take it off.

One thing that I’ve come to appreciate in a body wash — or any soap — is how easily the thing comes off. After I finish showering, the last thing I want to be doing is giving myself a comically thorough rub-down for ten or fifteen minutes while my fingers wrinkle and the hot water dwindles to nothing.

Jeremy’s takes longer to get off my shoulder’s than my usual favorites.

This isn’t a good sign. I’ve gotten spoiled by not-aggressively-softened water over the years, and it seems like I’m having to spend an extra 50% rubbing my shoulders to get to a proper squeaky-clean state.

Same seems to go with all my other body parts, really.

The washcloth is still darkened, too. I’m going to have to rinse this thing out super-well before letting it dry and sticking it in the laundry queue.

The kicker is when I was finishing up and noticing the bathtub was noticeably more slippery than it usually is after a soap-down. It stayed that way after swishing my foot around, too. I thought about my options, and decided to squirt a few pumps of Rainbath onto the tub and swish/scrub it around with my feet to restore the normal amount of grip that I enjoy. That did the trick, although I’m not exactly pleased that I needed to use body wash to clean up body wash.

The washcloth, after a bit more rinsing, gets back to white, or at least white enough for me to put into the wash without me worrying it’ll darken the other washcloths and the towels to boot.

An hour later, Jeremy’s still feels good on the skin, but I’m trying to figure out how I can use the stuff safely without having to clean it out with another pump bottle of goop or purchasing a shower stool to sit in and using it religiously. I never thought trying out new personal-care products would be an adventure like this.

Update, a few days later, on 2024-05-19: I now have a dark ring-shaped stain on my bleachable-white washcloths. Happily, if I don’t use 15 pumps and dial it back to 12 pumps, the tub floor doesn’t become dangerously slick without aggressively washing off the body wash. The charcoal-and-pomegranate smell is still divine.

2024-05-13 (like ten minutes later): Blog posts need titles kinda sorta like e-mail messages need subject lines

They’re a fantastic convenience, but not a requirement.

Dan Q., “Does a blog have to be HTML?”

I’d like to point out that JSON Feed does not require entries to have titles because one of its creators, Manton Reece, wanted a feed format that would properly support microblogging.

JSON Feed

2024-05-13: Copy/pasting URLs is a pain in the ass

~inquiry notices a thing:

~inquiry, “Perhaps pure text is the best walled garden of all?”

Dan Q., “Does a blog have to be HTML?”

And asks:

Why not just paste URLs? Is copy/paste *really* difficult?

Selecting the URL is the annoying part, really.

It’s OK enough if I’m using a computer with a proper mouse.

It’s a little more annoying if the computer I’m at only has a touchpad.

It’s pretty annoying if I’m on an iOS device.

It’s giga-annoying if I’m using Voice Control. I’d have to use “show grid” and say probably four or five different numbers, then say “start drag” or something along those lines, and then say four or five different numbers to say where the drag ends.

I wouldn’t even know where to begin if I were using VoiceOver and pretending to be blind.

2024-05-09: Get ready to pour one out for geminispace.info

I drop by geminispace.info regularly to see what new capsules are out there.

A day or two ago, I saw this at the top of a couple of pages there:

geminispace.info search engine will shut down on 1st June 2024.

While I haven’t seen its new-capsules list feature anywhere else, there are other search engines that you can use:

Totally Legit Gemini Search

Kennedy

There’s also DiscoGem if you’re looking for piecemeal automatic discovery:

DiscoGem

If you operate a Geminispace crawler, thank you — you help people form connections without having to go through one of a tiny handful of aggregator services.

2024-05-03: The fight against fake news is neverending and on all fronts

I needed to take an oddly-timed midnight constitutional. I didn’t feel like retvrning to the 80s by taking in an L. L. Bean catalog, so I took my phone with me like I pretty much always do.

I’m not much of a social-media guy, so I find things to do that don’t involve reading others’ posts. My current task is to go into my journal app and make corrections. Previously, on a real computer, I had corrected a bunch of wrongly-geotagged entries. I ended up needing to do this because if you commit an entry before you get a good GPS lock innawoods, you run the risk of committing a location that’s miles away from where you are.

Now, I’m just corralling all my work at the gym to one location: the gym’s proper name. Most of these locations are merely nearby. Of course, I don’t exercise only at the gym. Hikes and neighborhood walks get put in the jock journal, too, so I’m scrolling by hikes and walks and Ring Fit Adventure sessions as I update locations.

And then I get to an entry. It reads:

Exercise bike
3:46 PM · cardio:bike · Home

I don’t HAVE an exercise bike at home. Did I do exercise-bike work at the gym, come home, and only then remember to input a journal entry for it?

2024-05-02: As you might guess, JSON Feed is a little more compact than the equivalent Atom feed

There’s all sorts of interest in Geminispace in lower-weight protocols. One of them is JSON Feed:

JSON Feed

It’s functionally similar to Atom (although each format’s individual entry isn’t a perfect match for the other format’s), but instead of being in XML which is overly complicated for this purpose (probably), it’s in JSON.

Now, suppose you consume feeds, and want to support JSON Feed instead of (just) Atom feeds. For all this work, how much can you expect to save?

I don’t use full-text feeds, and I haven’t yet deleted anything out of my feeds, so this is what you can expect:

> eza -l --no-user --no-time --no-permissions --no-git --sort size --reverse --bytes atom.* feed.*
80,366 atom.xml
78,915 feed.json
74,876 atom.minified.json
68,445 feed.minified.json
67,492 feed.yaml

I’m kind of surprised the YAML source takes less space than the minified JSON. I guess those extra quote marks and commas and braces add up.

Still, the savings aren’t earth-shattering. Here’s what it would take to download the whole thing on a 33.6 kilobit/sec modem, which would routinely download at 2 KB/s at top speed back in the late 90s:

> numbat

  █▄░█ █░█ █▀▄▀█ █▄▄ ▄▀█ ▀█▀    Numbat 1.11.0
  █░▀█ █▄█ █░▀░█ █▄█ █▀█ ░█░    https://numbat.dev/

>>> 67 kilobytes / (2 kilobytes/sec)

  67 kilobyte / (2 kilobyte / second)

    = 33.5 s    [Time]

>>> 80 kilobytes / (2 kilobytes/sec)

  80 kilobyte / (2 kilobyte / second)

    = 40 s    [Time]

This is
not what I’d call an interactive speed. It’s something you’d want to run in the background periodically, and switching to a lighter-weight format isn’t materially helping. I’d check to see what these would be under both gzip and brotli compression, but it’s not as if Gemini supports transfer encodings.

Of course, “should I minify my Atom feed before publishing it?” and “Should I update my feed parser to support both Atom and JSON Feed?” are questions for pretty much entirely different audiences. Only a tiny handful of people maintain feed aggregators like Antenna and CAPCOM (although I think all of them also provide Atom feeds for their capsules).

Me, I’m a fan of view-source sensibility, so I’m not about to start minifying my feeds as part of the feed-build step. YMMV.

2024-05-01 (a couple hours later, tops): GIF decoding speed used to be an issue

Background:

captain of ctrl-c.club, “‘Best viewed with Netscape’: How many pieces of flair did your website have?”

I didn’t have a website of my own back in the day, but I went to the Internet Button Archive


Internet Button Archive


and saw lots of buttons.

This page would have made my machine absolutely CRAWL back in the late 90s. There’s no way it’d have been able to maintain a buttery-smooth 60 frames per second.

2024-05-01: Takeoff failure

I was going to learn enough Zig in one low-energy afternoon to have a quick curl-style Gemini client, but Zig isn’t as batteries-included as Deno is.

My main hangup, as far as I can tell, is in `std.crypto.tls.Client.init()`:

If you’re looking for some quick whuffie on the Web, you could do worse than to write a quick Gemini client in 100ish lines of Zig and put it where your favorite/least favorite/third favorite search engine can see it.

2024-04-29: Sometimes you have to make a lot of notes to do a thing

A guy made TypeScript better:

Effective TypeScript, “The Making of a TypeScript Feature: Inferring Type Predicates”

If you’re the sort of person to read TypeScript release notes, you’ll probably be interested in most of the post.

This bit jumped out at me:

By the time my PR was merged, my Notion doc ran to 70+ pages of notes.

Let’s back up a bit to the whole paragraph:

While learning my way around the codebase, I found it incredibly helpful to take notes. Which function did what? What questions did I have? What was I struggling with? What did I have left to do? This helped to keep me oriented and also gave me a sense of progress. In particular, it was satisfying to read questions I'd had weeks earlier that I now knew the answer to. Clearly I was learning! By the time my PR was merged, my Notion doc ran to 70+ pages of notes.

So if you’re trying to get your bearings in a large codebase and wondering “Am I taking too many notes?”, the answer is “probably not”.

2024-04-28: gzipped etagged Atom feeds are fine

Michael Nordmeyer has a post up:

Michael Nordmeyer, “The Problem With Full-Content Web Feeds Today”

He likes full-text feeds for all the usual reasons, but he worries a bit about bloat for people who download the feed over and over again, as 130 KB over the wire seems a bit much for him.

One thing he does to keep the bloat down is
delete old blog posts. Not always in publication order, probably: his oldest one that’s still up on the site is dated 1/6/2008.

Two thoughts that came to mind:

“The madman. The absolute madman.”

“Based.”

Still, I was wondering if he was overstating the amount of bytes transferred. I had a look at his site with HTTPie, and—

> http https://michaelnordmeyer.com/feed.xml
HTTP/1.1 403 Forbidden
Alt-Svc: h3=":443"; ma=86400
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 29 Apr 2024 03:35:56 GMT
Keep-Alive: timeout=5
Server: nginx
Strict-Transport-Security: max-age=63072000; includeSubdomains
Transfer-Encoding: chunked
Vary: Accept-Encoding

<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>


Well, hmm. He seems to think that HTTPie is naughty, or something.

Let’s pretend to be me on my usual browser of choice:

> http --headers https://michaelnordmeyer.com/feed.xml "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15"
HTTP/1.1 200 OK
Accept-Ranges: bytes
Alt-Svc: h3=":443"; ma=86400
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 136473
Content-Type: application/xml; charset=utf-8
Date: Mon, 29 Apr 2024 03:39:06 GMT
ETag: "662eb0da-21519"
Keep-Alive: timeout=5
Last-Modified: Sun, 28 Apr 2024 20:26:02 GMT
Link: </feed.xml>; rel="canonical"
Permissions-Policy: interest-cohort=(), browsing-topics=()
Referrer-Policy: strict-origin-when-cross-origin
Server: nginx
Strict-Transport-Security: max-age=63072000; includeSubdomains
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Robots-Tag: noindex
X-XSS-Protection: 1; mode=block

It’s got an ETag. That’s good:

MDN, “ETag”

A reasonably clueful feed reader (like NetNewsWire) or feed aggregator (like Feedbin) can just send a HEAD request to /feed.xml instead of a GET request to see if anything changed (probably not, if it’s checking once a day or more often than that).

Of course, reasonably clueful feed aggregators will check your feed only once on behalf of all its subscribers, and tell you how many people have subscribed to your feed in the headers somehow (probably the User-Agent string; I forget).

His nginx installation is also sending a gzip-compressed feed rather than uncompressed XML. The uncompressed XML is about half a megabyte, which is about 140 KB over the wire.

He could shave some more bytes off the transfer size if he were to minify the HTML and XML he’s sending out, but most lines in his feed are left-aligned and this won’t save a whole lot of data.

I like how he has an XSL stylesheet to explain feeds to people who aren’t yet into feeds. I like Substack as much as the next guy, but I’d rather read things in Unread than Mail.

2024-04-27, but finished up a day later: At least software-development innovation has straight-up upsides instead of just getting weirder

I saw a tweet recently. Rather than subject you to a depression-inducing screenshot of a post on X that’s been subject to five too many lossy-to-lossy conversions, I’ll reproduce it for you here:

[extraordinarily blurry picture of Kermit the Frog in a collared shirt, red tie, gray sweater, gray jacket, and gray broad-brimmed hat]
expatanon
@expatanon
Last two decades of software “innovation”
- pay forever and own nothing
- put it on our hard drive instead of yours
- redo legacy businesses with temporary VC $$ subsidies
- databases but shittier
- ape pics???
- retarded hallucinating chatbots
- 1000 twitters
[6:38 PM · 7/6/23 · 42.2K Views]

The hallmark of a good satirist is when he can get you to chuckle or even outright laugh even as he’s skewering things you like. Jon Stewart is in this category, if you ask me. Much of the above list is defensible, but that’s a post — maybe — for another time.

Instead, I’d like to focus on some unrelated innovations in software
development, at least:

In Ye Olden Days, each text editor ships with its own solution for understanding the files a user will edit with it. For example, here’s BBEdit’s longstanding solution to this problem — both “codeless” (specified in an XML plist) and code-based (you have to write Objective-C or something to get it to work):

Bare Bones’ BBEdit Language Module Library

Of course, nothing else uses this. On the other hand, a handful of text editors and similar are able to consume Sublime’s syntax files:

Sublime Text, “Syntax Definitions”

sharkdp/bat’s README, “Adding new syntaxes / language definitions”

Microsoft, however, is built different. Since at least the 90s, it seems like they’ve been caring — by multiple orders of magnitude — more about making things nice for developers and people who program whose IQs are in the 100–120 range and already have their heads full of the problem domain and are likely to forget basic programming things, like what methods an instance of a string class has.

So, one of the things they developed for Visual Studio Code was the Language Server Protocol.

Language Server Protocol

Eventually, they figured out that, to get a good in-editor experience, you’d want nothing less than the compiler of a language to be able to tell you which identifier you’re halfway done typing out. So you have the language provide an LSP, you have your text editor support LSPs, and then only one LSP needs to be written per language instead of each editor shipping its own custom bespoke 70% solution.

Of course, things aren’t all wine and roses. I remember reading in a BBEdit release notes that the LSP spec differs from how VS Code does things, and everyone targets the 800-pound gorilla in the room than however the spec says things should happen. So wine may help, assuming you’re not into beer, cider, or hard liquor.

Still, this is way better than the old way.

gofmt probably wasn’t the first thing to do this, but it seems to have made the whole thing popular.

People used to — and still do — argue about:

Some of these have obvious, but difficult-to-implement answers, like “tabs for indentation, but spaces for alignment”.

gofmt doesn’t produce the nicest code, but you can type whatever crap you want and gofmt will make it look pretty good, even if it expands

if err != nil { return nil, err }

onto three lines instead of the mere one it deserves.

Prettier handles a lot of Web-adjacent languages that you might want to be formatted:

Prettier

and if you like — or at least use — Python, there’s black:

black

If you really trust your formatter, like I do `go fmt`, you might want to enable format-on-save in your editor. If you don’t quite trust it in all cases, like I do for Prettier, you might want to have a mere format-this-file keyboard shortcut in your editor of choice.

⁂

Notably absent from the LSP/formatter revolution are lisps, probably because they’ve had that in Emacs for 30 or 40 years. If you’d like to do a lot of work to try and get people to try to write in languages where “))))))))))” is not an occasion for protracted screaming, you could do a lot worse than to write — or finish up — a pleasantly standalone formatter for Hy or Janet. Sure, all the cool kids use paredit, but “install, try, use, and like Emacs” is a bridge too far for many, including yours truly.

2024-04-25: And now, a Gemini client in Deno

I made a basic Gemini client in TypeScript-on-Deno:

// main.ts
import { readAll } from "jsr:@std/io/read-all";

async function gimme(url: URL) {
  let port = Number.parseInt(url.port, 10);
  if (Number.isNaN(port)) {
    port = 1965;
  }

  const conn = await Deno.connectTls({
    port,
    hostname: url.hostname,
  });

  const reqString = `${url}\r\n`;
  const req = new TextEncoder().encode(reqString);

  conn.write(req);

  const resp = await readAll(conn);
  const s = new TextDecoder().decode(resp);
  return s;
}

if (import.meta.main) {
  for (const url of Deno.args) {
    console.log(await gimme(new URL(url)));
  }
}

Paired with it is a deno.json:

{
  "tasks": {
    "dev": "deno run --allow-net --unsafely-ignore-certificate-errors --watch main.ts gemini://gemini.circumlunar.space/users/adiabatic/",
    "atom": "deno run --allow-net --unsafely-ignore-certificate-errors --watch main.ts gemini://gemini.circumlunar.space/users/adiabatic/atom.xml",
    "json": "deno run --allow-net --unsafely-ignore-certificate-errors --watch main.ts gemini://gemini.circumlunar.space/users/adiabatic/feed.json",
    "news": "deno run --allow-net --unsafely-ignore-certificate-errors --watch main.ts gemini://geminiprotocol.net/news/atom.xml"
  }
}

It’s as dumb as a box of rocks, but you can run commands like

deno task dev

and see real life Gemini output, complete with the initial header line. As a complete surprise, it helped me figure out why Lagrange wasn’t figuring out that my Atom feed was an Atom feed.

The folder it’s in is called “gurl”. There’s probably a halfway-decent “curlz for the girlz” joke in there somewhere, but polishing that into something chuckle-worthy is beyond my abilities today.

curl, a command line tool and library for transferring data with URLs

In case anyone else wants to play with it and gets twitchy about licenses even for code put out there by pseudonymous Internet randos, I’ve released the thing as CC0, which is a fancy public-domain dedication
although really, the WTFPL is likely a better fit, thematically.

CC0

2024-04-24: To what extent are personal computers “fundamentally liberatory”, and what sorts of usage patterns maximize personal liberation?

I keep coming back to a thing:

solderpunk, “A smol.earth update on Earth day”

Computers aren't fundamentally evil by any means, we are not out to vilify them, but the view taken by our technohippy predecessors (whose "Whole Earth" moniker has obviously inspired us), that they are fundamentally empowering and liberatory devices, "personal freedom machines", is a hard pill to swallow in 202x.

I’m not much of a smol.earth guy myself, although we do have points of agreement. This post is something of an exploration on how the smol.earth crowd is at least onto something, even though (it seems) I’m diving in deep into one aspect of a ten- or twenty-point desiderata list and ignoring all the rest.

Anyhow.

“Fundamentally liberatory”. Hmm.

Let’s think about personal computing first, and then, maybe in a later post, think about mainframes/cloud computing run by and for other people. Polya says to solve a simpler problem first, right?

Previously, I’ve discussed Steve Jobs’ “bicycle for the mind” meme. (Use your client’s find-in-page functionality for “bicycle” in the pages for this year (2024), last year (2023), and the year before (2022)). But what else could computers be?

A conduit for the Khala, I suppose.

Sever yourself from the Khala

One simple way to keep your personal computer use liberatory is to use your computer and computing devices in ways that haven’t changed much since the mid-80s, or, at the latest, the mid-90s.

Sure, you might prefer using voice recognition (which will happily gobble up as much computing power as you can throw at it to improve accuracy), but sticking to using a computer as a largely-solitary thinking-and-writing-and-organizing-and-mathing device preserves, I think, personal computing as something liberatory, provided you’re not letting yourself get sucked into playing Solitaire for hours on end.

2024-04-23: There are people already at your endpoint; have you considered joining them? If not, why not?

A while back, I listened to a thing:

Manifold 1, “David Skrbina on Ted Kaczynski, Technological Slavery, and the Future of Our Species – Episode #7”

In short, Skrbina thinks that Uncle Ted is really onto something. I recommend listening to the whole thing.

I forget if Hsu asks, near the end, whether any group following Uncle Ted’s values (sticking to a sociotechnological level found in Renaissance Italy) is necessarily going to need to become a protectorate of some other much higher-tech power with modern weapons, while Skrbina stammers out a non-answer response. It’s been a while.

Anyway. Today, I read a thing:

solderpunk, “A smol.earth update on Earth day”

There’s a lot in there, and many interesting parts are entangled with other interesting parts. I have thoughts on them, and I’ll probably end up writing stuff about them. I like Earth, and think it’s a fine base of operations to start interplanetary and interstellar exploration and colonization from. See my “‘We need to get bagels on Mars’” quip from back in 2022.

But, back to the smol.earth update:

If you don't feel the points that follow in your bones yet, the smol.earth is probably not yet for you:
[
]
We believe computing is unsustainable in the long term and that it needs to ultimately disappear from the world, but we are condemned to live *our* lifetimes surrounded by computers which we feel compelled to use.

Funny, I know of a guy who’s kind of doing that.

Here’s his website:

Morlock Publishing — uplifted dogs, AI, anti-gravity, libertarian rebels, and big guns

And here’s his X account:

@morlockp

His pinned post shills his book:

amazon.com: Travis J. I. Corcoran, _Escape the City_

The Amazon page also links to the second book in the series. I’m not sure how many are planned.

Of course, there are entire groups of people, at least in North America, who have something resembling the smol.earth attitude toward technology:

Wikipedia, “Amish”

This appears to be the logical endpoint of the smol.earth philosophy, and if you’re serious about it, you might want to try becoming one of the few converts to, uh, Amishness and save yourself the awkwardness of being only halfway in the modern world.

2024-04-19: Compose yourself

As discussed below on 4/14/2024 in “Beating the rush”, I’ve set up a Debian machine.

One thing I use a lot on macOS is option-key shortcuts for characters that aren’t on my keyboard, like curly quotes and em dashes.

X11 has
the Compose key. It is supplemented by ibus’s ⌃⇧u dead key.

x.org, “Xlib Compose Keys for en_US.UTF-8”

GitHub, “Unable to unset Unicode code point shortcut (ctrl+shift+u) with GtkIMContextWayland”

Compose (⎄) is not unpleasant given what it tries to do. You tap a key you’ve bound to Compose, then you type a sequence of keys to get what you want. For example, to get a proper curly apostrophe, type ⎄>', or ⎄'> (oftentimes it’s not picky about order).

Oddly enough, you cannot type the Compose glyph with the Compose key. You can, however, type it by pressing ⌃⇧u, releasing all that, and then typing 2384, and finally a space to let ibus know you’re all done with the key.

You will be unsurprised to learn that ⎄ is U+2384.

I was able to type this entire entry on Debian, but I don’t have a good way to generate the entry for this update in the capsule feed source. I guess I’ll have to commit this edit, then push it up, then pull it down to a Mac, add the entry, and then push and publish and announce.

Phooey.

2024-04-15: This is MY startup sound! It was made for ME!

I listened to a couple of episodes of Twenty Thousand Hertz (hereafter 20KHz). They’re kind of a pair:

20KHz, “Ta-da! It’s Windows!”

20KHz, “Windows_Logon.wav”

Most podcasts don’t really need all that great audio to be able to listen to them well. 20KHz is an exception: I try to be in a position to listen to it, at least, with my AirPods Pro with noise cancellation on. This means “not while driving”, if nothing else.

I’ll wait here for a bit while you queue them up in your favorite podcast player and get around to listening to them. Both should take less than an hour combined (make sure to disable your podcast client’s speed acceleration if you use a thing like that).

[smooth-jazz elevator music plays]

While the first episode doesn’t go into the complete history of Windows audio, it does play TADA.WAV for you, which was what you would have heard as a startup sound on Windows 3.0.

Oddly enough, startup sounds seemed to be mostly for the cool factor starting in Windows 95. The host of the podcast says that startup sounds are an indication that your computer is ready to go after maybe a minute or two of a boot-up process, but I generally have memories of Windows only being partially ready to go by the time the logon sound plays — generally, a bunch of other backgroundy things that live in your notification area (“system tray”) still need time to get started before the system really has all its startup tasks out of the way.

Now, we here in Geminispace tend to like older technology for all sorts of reasons. I’m here to tell you that the Windows NT 4.0 startup sound was VERY cool back in the mid-90s.

If you want to ease into mid-90s cool, you would be well served to listen to this episode beforehand, which goes into the peak of early-80s cool:

20KHz, “It’s not TV. It’s HBO.”

Of course, podcasts aren’t great for video. You can see the intro sequence here:

YouTube, “HBO Intro 1983”

2024-04-14: Beating the rush

I have what I’ve been calling a “Windows machine”. It’s from 2012 or somesuch and has been serving me reliably for years.

Of course, it’s old enough to not support Windows 11, and October 14, 2025, is
well, years away.

I spent some time thinking, and eventually decided to rip the band-aid off early and switch to an operating system that would be supported for longer than a year and a half.

I chose Debian Stable, because I’m boring and barely use the machine anyway and don’t need much that’s particularly new.

I had a look at Mint, but there’s something surprisingly off-putting about trying to copy Windows XP while (rightly) ditching the Fischer-Price color scheme that we all hated in the mid-2000s. Modern GNOME at least kind of tries to do its own thing, to mixed success.

Of course, Stable doesn’t come with everything I want. Sure, Visual Studio Code can get installed and get on the autoupdate train, but I have a bunch of other things that I like to use that are either older in Stable or just plain not there.

Many of these programs I managed to install into ~/.local/bin, like eza and helix. Others I just did without.

Eventually I was told by the NPM website to either install NPM via a tarball or to use Homebrew.

Which I already use on my Macs.

“But I already have a package manager”, I thought.

“But I don’t like having to manually poll websites for updated versions of software”, I also thought.


having two package managers still feels weird, but it’s nice to have my usual toys available and updating in the usual manner. I’m keeping my fingers crossed that the two collections of things don’t bonk heads somehow.

2024-04-05: Yeah, yeah, but WHICH index.gmi? No, I don’t care that it’s the only one open! That’s not enough!

A new Visual Studio Code update came out today. They added custom labels for open editors:

Visual Studio Code updates, March 2024 (version 1.88): Apply custom editor labels

If your capsule is laid out like mine, you have a LOT of index.gmi files. If you have more than one open, Visual Studio Code will also include (in smaller, dimmer text) the parent directory of the file to clue you in to which is which, but if you have only one open, you’re stuck guessing or trying to lean on your memory.

Enter custom editor labels.

My .vscode/settings.json now looks like this:

{
  "[gemini]": {
    "editor.quickSuggestions": {
      "other": "off"
    }
  },
  "workbench.editor.customLabels.patterns": {
    "**/index.gmi": "${dirname(0)}/"
  }
}

This makes it so scrawlspace/2024/index.gmi (the file I’m editing now) shows up as ”2024/” in the tabs at the top of the editor. If I have multiple index.gmi files in folders with the same name, I get smaller, dimmer text as a disambiguator still.

In case you’re wondering, the other option in there disables VS Code from popping up text suggestions in normal prose. I don’t need autocomplete for words like ”and”.

2024-03-10: Trying to make “this is going on your permanent record, young man” for everything into a selling point

There is a description of orthogonal persistence out there. You should read the whole thing. However, we are more interested in the coda at the end:

“Orthogonal Persistence, the Model”: “Coda: Friendly vs Unfriendly Persistence”

You may recognize its author, François-RenĂ© Rideau, as “the Houyhnhnm Computing guy”. You may also recognize him as “the guy who takes Urbit seriously, but takes issue with its persistence model”. You may also recognize his X handle of @ngnghm.

Back to the coda. He writes:

In today’s world (2024), all your data persists
 on your enemies’ servers. The big corporations and bureaucracies that try to manipulate you know everything about you, and run AIs to analyze your behavior to manipulate you even more into buying their stuff and obeying their orders. They use Manual Persistence, but they can afford thousands of database experts and system administrators to make it work at scale, so as to spy on hundreds of millions of human cattle.

I like the cut of his jib, but he hasn’t sold me on it yet. At least now, I can predict what will get persisted to disk depending on what I do. While text editors that do not preemptively save anything to The Cloudℱ these days are rare, one can open up vi in a window and type to his heart’s content knowing that nothing will be committed anywhere until he types :w and then a filename.

Meanwhile, Rideau somehow does not see a system where every interaction with it is permanent and indelible as a liability. Being unable to write so much as “fuck fuck fuck fuck fuck fuck” without it persisting forever on disk makes me want to get a large notepad and a cross-cutting shredder — and notepads are much less effective bicycles for the mind than computers are.

Maybe the solution is as simple as having all document-based applications (text editors, spreadsheets, calculators) have Private Mode like browsers do now, but I’m not sold yet.

2024-03-03: In case anyone’s asking me: [ˈɑːˌfəl.fɚ.sɑtʃ]

Background reading:

Solderpunk, “Announcing OFFLFIRSOCH 2024”

I’m not about to write a program in a month, but I have collected a bunch of programs that, by and large, work offline:

Programs

I think there’s at least three math things in there already, and I haven’t gotten to the bottom of the page yet.

My go-to for unit-aware math is Soulver, though:

Soulver, the notepad calculator

If you have programming chops, you may want to consider improving an existing program before making one of your own.

2024-02-25: Way to sell it, bucko

I stumbled over a thing recently:

jamesg.blog, “100 things you can do on your personal website”

Some of these things look like fun things, or at least interesting things. On the other hand, many of them seem like nothing less than chores:

* Add an RSS feed so people can subscribe to your blog.
* Add a print stylesheet.
* Style code snippets in posts on your blog with a syntax highlighter (i.e. Prism.js).

An RSS feed is actually useful to some fraction of your audience, but writing print-specific styles seems like a thankless chore.

Yes, I’m tired. I used to have the energy and interest to do stuff like this, but not anymore.

I will, however, add one item to the list:

Nothing quite communicates “this thing used to be here, and now it’s not” like a custom 410 Gone page. A 404 Not Found page doesn’t convey intentionality like 410 Gone does.

(The Gemini equivalent for 410 Gone is 52, in case you were wondering.)

2024-02-02: Yeah, that. Also, the EU hasn’t managed to screw it up yet.

Prior reading:

JeanG3nie, “When a walled garden becomes a preserve”

Money graf:

At this point, Apple's refusal to allow another browser engine on it's platforms might be the only thing keeping Chrome from being able to fully dictate the direction of the web.

I certainly say this, but I prefer Apple things to Google things. I’m not a neutral third-party.

John Gruber has a look into what changes under the Digital Markets Act over in the EU:

John Gruber, “Apple’s Plans for the DMA in the European Union”

The relevant bit:

One point of confusion is that some aspects of Apple’s proposed DMA compliance apply to the App Store across all platforms (iPhone, iPad, Mac, TV, Watch, and soon, Vision), but other aspects are specific to the iOS platform — which is to say, only the iPhone.

And then there’s Apple’s relevant page:

Apple, “Using alternative browser engines in the European Union”

iOS 17.4 introduces new capabilities that let iOS apps use alternative browser engines — browser engines other than WebKit — for dedicated browser apps and apps providing in-app browsing experiences in the EU.

Two things of note:

iOS

(as opposed to iOS and iPadOS)

in the EU

So unless you’re ignoring iPhone users outside the EU, you, as a website developer, can’t just tell your iPhone-using visitors to download Chrome-with-Blink-in-it and come back. Even if you’ll happily do the work, people up the chain of command who are more business-minded won’t have a net financial incentive to say “let the Apple people download Chrome and then they can visit our site”. You’ll have to put in the time to make the site work right in Safari.

This state of affairs largely preserves Apple’s ability to defend its ecosystem and users from Google’s snooping. After all, if you have to use Google’s browser to do almost anything on the web other than browsing a handful of indie sites, that’s a clear-cut monopoly and makes real consumer choice all but impossible. Anti-consumer-choice monopolies, of course, are the kind of thing governments say they’re against, at least when they’re in the private sector.

2024-01-21 (later): Tracking use of the phrase “Let him/it/them cook”

I first encountered the phrase “let him cook” on a Twitch stream where the streamer speedruns The Legend of Zelda: Breath of the Wild. Generally, when one cooks food in this game during a speedrun, it’s to make up large batches of food, and you can’t un-make an omelet, so there’ll be a chorus of LETHIMCOOK in chat to get other people to, at least temporarily, not try to get the streamer’s attention for a bit.

My second encounter with the phrase, or something like it, was close, but a bit less literal.

Linkus7 on YouTube — Can you beat every dungeon without the paraglider in Tears of the Kingdom?

If you avoided getting the paraglider, then there more than a few places where your options to continue on are basically one of these two:

The second of these options is way less entertaining, so a guy whose day job is “entertainer” who does so by playing games naturally tries for the first option.

It’s in this context that he says “let me cook” — but here, he’s not asking Twitch chat to not try and get his attention. He’s asking them to hold their horses while he tries to work out a solution to falling down a 2,000-meter hole without dying from the sudden stop at the end.

⁂


and then I saw “let X cook” on X, coming from the HTMX account:

@htmx_org on stored procedures driving UI

i don't like the idea of stored procedures driving UI mainly due to the mechanics of updating them (version control, etc) but i'm willing to let them cook because eliminating the app server/db hop is one of the last big, obvious perf wins in most web apps...

(This is in the context of a hypothetical “React Database Components”. If you don’t want to click through, imagine a stored procedure in your database that returns a snippet of JSX, and inside that is a list of todo items all wrapped in li elements, and the bundle is wrapped in a ul element.)

Still, there’s the phrase

let them cook

If you find yourself looking for a way to reserve judgement on an idea until implementations of the idea get better fleshed out and/or better-spaded so the upsides and downsides are better understood, you could do worse than to haul out this turn of phrase.

Background information:

Wikipedia, “The Bartle taxonomy of player types” (specifically: “Explorers”, also known more colloquially as “spades”)

2024-01-21 (earlier): Sometimes, the parts of the game requiring the most concentration are not what one would imagine is part of the core gameplay loop

I played Diablo 3 for a bit.

One of the things that I noticed was that once I got to endgame content, I could mostly shut my brain off while I was killing demons. However, I had to pause podcasts and give my full attention to what I was doing when I was selling all the loot that I had accumulated, because “do I keep this or do I sell this” was something that took all of my decisionmaking faculties and wasn’t something I could just outsource to my brain stem.

I thought about this for a bit when pondering the process of cooking in The Legend of Zelda: Breath of the Wild and Tears of the Kingdom. If you want a particular effect, or a particular level of an effect, you can’t just shut your brain off — oftentimes you have to look up specific ingredients and their potencies and maybe use an online calculator to find out if you can make something that will give you a level-3 buff for as long as you think you’ll need it for.

2024-01-16: Niklaus Wirth, proto-Suckless advocate

Niklaus Wirth passed recently, and so his “A Plea for Lean Software” has been making the rounds:

Niklaus Wirth — A Plea for Lean Software (February 1995)

I actually read it in full. It’s not long. A bunch of people have posted excerpts they agree with. He ends with a list of lessons learned from Oberon. These are mostly sensible, although #5 is a bit suspect. My takes:

⁂

However


Wirth is writing this at the beginning of 1995. Windows 95 was to come out that summer, and Windows 3.1 is already out there for normal people, and Windows NT 3.5 has been out for a few months already. Oberon, his pride and joy, was written between 1986 and 1989, back when Riker was clean-shaven and Windows hadn’t hit 3.0 yet. Windows didn’t get popular until Windows 3.0.

Back to Wirth. The speed of development of Oberon is impressive:

Designed and implemented—from scratch—by two people within three years, Oberon has been since been ported to several commercially available workstations and has found many enthusiastic users, particularly since it is freely available.

Oberon, to its (minor) credit, appears to have both color and graphics, although it’s not obvious from the screenshot that any kind of graphical paint program is possible in it. Presumably the giant squiggly can be generated with text, like SVG or POV-Ray. This will be relevant shortly.

Where Wirth seems to go off the rails is near the beginning of his article. There, he lays out his idea of what are — in 1995 — mere nice-to-haves:

Uncontrolled software growth has also been accepted because customers have trouble distinguishing between essential features and those that are just “nice to have”. Examples of the latter class: those arbitrarily overlapping windows suggested by the uncritically but widely adopted desktop metaphor; and fancy icons decorating the screen display, such as antique mailboxes and garbage cans that are further enhanced by the visible movement of selected items toward their ultimate destination. These details are cute but not essential, and they have hidden cost.

In modern terms:

Later, he continues:

increased complexity results in large part from our recent penchant for friendly user interaction. I’ve already mentioned windows and icons; color, gray-scales, shadows, pop-ups, pictures, and all kinds of gadgets can easily be added.

Modernizing:

⁂

Personally, I’d like to have seen a debate between Niklaus Wirth and, say, Jakob Nielsen of the Nielsen Norman Group. Both men have an anti-frippery bent, but the usability proponent is going to have a much broader idea of what work needs to be done to make systems usable for normal people who aren’t computer experts and also people who have one or more computing-relevant body parts that don’t work right, like eyes or arms.

While text-to-speech systems seem to be mostly a solved problem on even wrist-worn consumer hardware, speech-to-text seems to be a problem that will happily consume whatever computing resources you can throw at it — up to and including machine-learning models that will take up like half your RAM on a 32-GB machine with an M3 Apple Silicon processor in it.

References:

Project Oberon

suckless.org: Philosophy

Archives

If you want to read older entries, here’s the page for the previous year:

../2023/

Updates

If you want to stay abreast of updates, have a look at this capsule’s page describing its feeds:

../../feeds/

Additionally, the following URL will always redirect to the current year, assuming I haven’t forgotten to update the redirect after making the first post of the year:


/scrawlspace/latest/

⏚

Home

Hi! I’m a one-pixel invisible tracking image! View me to let my webmaster know you’ve scrolled through the entire page!