đŸ 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
âŹ ïž Previous capture (2024-08-24)
-=-=-=-=-=-=-
This is scrawlspace. I scrawl in this space. Do not expect coherence or permanence here.
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:
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.
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.
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:
V O T E S A X O N âââââââ â âČ â± â â âł â â â± âČ â âââââââ
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:
From time to time I look at Pinboardâs list of popularly-bookmarked pages.
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â?
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):
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.
âŠ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.
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â
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â.
A while back, I saw that Jeremyâs had a sale on their 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?
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.
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.
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.
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.
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.
~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â
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.
This has been making the rounds:
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
Maciej Ceglowski has a new post on his blog:
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.
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.
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.
~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.
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:
Thereâs also DiscoGem if youâre looking for piecemeal automatic discovery:
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.
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?
Thereâs all sorts of interest in Geminispace in lower-weight protocols. One of them is 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.
Background:
I didnât have a website of my own back in the day, but I went to the 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.
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.
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â.
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:
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.
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.
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:
and if you like â or at least use â Python, thereâs 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.
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.
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.
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.
A while back, I listened to a thing:
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:
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:
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.
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.
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:
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.
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â.
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.
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:
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.
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.)
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.
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:
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.
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:
If you want to read older entries, hereâs the page for the previous year:
If you want to stay abreast of updates, have a look at this capsuleâs page describing its 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:
â