šŸ’¾ Archived View for gemini.circumlunar.space ā€ŗ users ā€ŗ adiabatic ā€ŗ scrawlspace captured on 2022-06-03 at 22:52:33. Gemini links have been rewritten to link to archived content

View Raw

More Information

ā¬…ļø Previous capture (2022-04-28)

āž”ļø Next capture (2022-06-11)

šŸš§ View Differences

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

Scrawlspace

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

2022-05-17: If you want more deep, meaningful conversations, you should go out and get some yourself

Thereā€™s been some chatter in Geminispace on the lack of deep, meaningful conversations. Oddly enough, the first-person plural pronoun is used a lot. Iā€™m not sure if this is supposed to be a substitution of the first-person singular to make the sentiment more socially acceptable, or if itā€™s supposed to be a substitution of the second-person plural, or maybe the third-person plural.

Iā€™m in favor of having deep, meaningful conversations, if you can get them.

In general, if you want people to have more of a thing, you should get more of that thing and tell other people how great it is to have more of that thing and the things you did to get more of that thing. Iā€™d be quite happy if, in a month or two, some of the lamenters reported back to mention what changes they made to their lives to get better conversations and what worked and what didnā€™t.

Some scattered relevant thoughts. But first, a disclaimer:

ā˜ž You should not assume that any of this is actually good advice. In fact, you should assume that this is actually worse advice than advice specifically crafted to sound like a good idea but is actually, on net, a bad idea for you. ā˜œ

2022-05-09: New thing useless for old thing, news at 11

Background reading:

Release notes for Visual Studio Code 1.67.0 (April 2022) (actually released in early May)

Visual Studio Code just released a feature for collapsing files under other files.

However, it doesnā€™t seem to be able to collapse, say, files named index.gmi under their parent directory. At least, when I tried to have a parent of ā€œ*ā€ and a child of ā€œindex.gmiā€, every file in my capsuleā€™s root, like, feed.yaml, got index.gmi nested underneath it.

Also, when I tried a parent of ā€œfeed.yamlā€ with children of ā€œfeed.jsonā€ and ā€œatom.xmlā€, all three files were declared children of some other unpublished file.

Pity.

2022-05-03

With great brevity comes great responsibility.

2022-04-30: Item typing

I wanted to do only a little bit of thinking, so I started redesigning the guts of a game again.

Iā€™ve been meaning to make a loving homage to Kingdom of Loathing for quite a while. Life always gets in the way before I actually ship something, and by the time Iā€™m ready to come back to it, the best-available software stack that Iā€™d use to make it in is obsolete.

Iā€™m surprisingly OK with this. Maybe itā€™s because I never get very far and Iā€™m not faced with the prospect of writing user-authentication code for the umpteenth time.

Also, the last time I tried this, I tried to make it RESTful initially, but eventually came to the conclusion that the best way to do a lot of things, especially combat actions, was to basically have RPC with nice-looking URLs (often claimed to be RESTful, but isnā€™t at all).

As I write this, the new hotnesses are GraphQL and TypeScript (currently 4.6). Ideally, Iā€™ll be able to model game stuff well as TypeScript types and GraphQL types.

Anyhow. Let me spec out the lay of the land, so to speak.

There are players in this game. Players do things by expending turns. Most actions cost 1 turn. Fights may cost 1 turn, but are further subdivided into (combat) rounds.

Players have all sorts of properties like hit points, experience points, the number of turns they have remaining, how muscular they are, whether theyā€™re poisoned, how long the poison will last (in combat rounds or even turns, or maybe forever), and whether theyā€™ve got stuff equipped that will let them regain, say, 3ā€“5 HP per turn (or even round!).

After quite a bit of thinking, I eventually figured out that I probably needed three different types, probably with better names:

The first type I thought up was StatusEffect. After a little bit, I realized that the additive HP modifier (as opposed to the additive maximum-HP modifier) didnā€™t make sense as a status effect, so I spun that out into its own type.

Then I realized that an actual status effect can be generated from something that has a range to it, so I split off parts of StatusEffect into the very poorly named StatusWhatCouldHappen. Another candidate name for this was ā€œStatusWhatItSaysOnTheTinā€, or something like that. However, this would be a bad name if I ever wanted to be less than 100% forthcoming with my itemsā€™ statuses.

(Everyone laughs at the third item in ā€œthe three hardest problems in computer science are naming things, cache invalidation, and off-by-one errorsā€, and the second item is obviously hard, but the first item deserves it place in the list even though itā€™s, by far, the most unassuming problem of the three. Iā€™m convinced one of the reasons why Bootstrap is way more popular than BEM-based solutions is because developers donā€™t need to think of reasonable, unique names for things all the darn time.)

Also on my mind: how do I handle poison? Iā€™m thinking of poison as a status effect that

Letā€™s say I have a status effect called ā€œA Teeny Bit Poisonedā€. It subtracts 1ā€“5 HP per turn. You might get bitten by a weak asp and have this last for 3ā€“5 turns, or you might get bitten by a long asp and have this last for āˆž turns. How do you model all this? āˆ’1 is a bad sentinel value because one might have some kind of poison-duration reduction buff. INT32_MAX isnā€™t a good option because a lot of this will be in JavaScript, and its maximum non-big integer is Number.MAX_SAFE_INTEGER, or 2āµĀ³āˆ’1.

Then again, treating all numbers equal to or greater than 2āµĀ³āˆ’1 as +āˆž isnā€™t the stupidest option. However, the Int type for GraphQL only handles up to 2Ā³Ā²āˆ’1 for obvious reasons, and I like the type safety of not supporting nonintegral values. On the other other hand, 4.3 billion Meat seems utterly attainable, so sticking to double-precision floats everywhere might be the winning play if BigInts arenā€™t available.

2022-04-25: A pint of cream is a lot for one person

Cream is useful. Trouble is, I seem to have some difficulty finishing it off.

Here, heavy whipping cream:

However, there are 1,550 calories in the entire pint. If I were to finish it all off in a week, Iā€™d be eating 221 calories/day of cream.

Luckily, the cream I have seems to be OK after a week and a half. Iā€™m not quite sure how Iā€™ll polish it off before weekā€™s end, though.

2022-04-16: 10,000 years in real life and in popular culture

Fiction became slightly more interesting once I internalized that the paleolithic-to-neolithic transition happened 10,000 years ago.

A while back, I heard of Cochran and Harpendingā€™s _The 10,000 Year Explosion_ and, while I never got around to reading it myself, the big round number stuck in my head as the end of the paleolithic.

Of course, 10,000 years can pass in fiction, too.

ā‚

During the opening sequence of Mighty Morphinā€™ Power Rangers, the main antagonist, Rita Repulsa, declares ā€œafter 10,000 years, Iā€™m free!ā€.

Humanity, however, most emphatically did not have giant robots back then; how did she get locked in back then?

ā‚

In The Legend of Zelda: Breath of the Wild, all the Guardians and similar capital-A Ancient tech is from 10,000 years ago. Granted, Hyrule has a nasty tendency to get squished flat every so many generations, but I canā€™t help but wonder if ancient Hylians had lactase persistence 10,000 years ago. Maybe one day Nintendo will release a Zelda game set during that time and weā€™ll find out if milk is an option.

Then again, supposedly Skyward Sword is the first (released so far) iteration of the Link-kills-Ganon-or-similar saga, and there doesnā€™t seem to be any adults consuming milk in it.

ā‚

Genie, in Disneyā€™s Aladdin, famously declares that 10,000 years will give you _such_ a crick in the _neck_, but I donā€™t think they had much metallurgy back then, so itā€™s not obvious where his containing lamp came from if heā€™s not messing up the time and this is a consistent universe.

On the other hand, cā€™mon, this is Disney flick weā€™re talking about.

ā‚

Thereā€™s also the Avatar: The Last Airbender universe, where stuff happened 10,000 years ago. On the other hand, they kind of lean into the Chinese meme of using ā€œ10,000ā€ where we use ā€œgazillionā€, with similar levels of non-specificity. So we canā€™t really set our calendars to it like we can with Hylian archaeologists.

2022-04-15: Technically true, but of questionable utility as a proverb

If a stopped clock gives the right time twice a day, then it stands to reason that a clock that goes in reverse gives the right time even more times a day.

2022-04-11: In the bathroom at work

My watch pesters me to stand at the 50-minute mark every hour if I hadnā€™t stood up during that hour. This means I need to plan ahead if I want to sleep in extra on the weekends, but thatā€™s a story for another day.

Usually, when it says ā€œhey, you should stand up for a minuteā€ all I need to do is go to the bathroom, and I get a second notification about halfway through congratulating me. I wouldā€™ve figured that getting praise for going tinkle in the potty was long behind me, but here we are.

Today, I got the usual notification while I was already seated in the bathroom. I wasnā€™t too surprised I got this, since it doesnā€™t take me a whole minute to walk there.

I was surprised, however, when the you-stood-for-a-minute notification came through and I hadnā€™t finished my afternoon constitutional yet. I had no idea bidet use, to a watch, feels more like standing than sitting.

2022-04-04: I can see our house from here

Palladium Magazine says nice things about Gemini

(Note the publication date.)

2022-03-22: Tastes like chicken

Today, I cooked three pounds of tandoori chicken thighs in a Dutch oven, in batches.

Two thoughts:

2022-03-08: ā€œModularā€

Well, _that_ was certainly unexpected.

Background:

Apple Event: March 8, 2022

ā€œModularā€, in Apple parlance, means ā€œthe monitor is separate from the computerā€.

They announced:

Nothing I need now. I briefly considered getting a new iPad, but the one I have is still OK, has four speakers (not two), a proper home button (instead of a horizontal bar at the bottom taking up some of the real estate), has a Smart Cover instead of a Smart Folio, and wonā€™t cost me $800 or so after Iā€™ve added on the things I want to the base model.

Theoretically I could buy a 5K display and add it to my current setup, but I donā€™t need the real estate that badly. I like having a 27ā€³ 4K monitor as my side monitor because the extra-big pixels are what I need for something that far away, even if 1080 points is not very wide at all. I mean, itā€™s only a bit bigger than 1024 (of 1024Ɨ768 fame) and smaller than 1280 (of 1280Ɨ1024 fame).

I figure my next Mac will be a Mac Studio of some kind. One thing that worries me is how dusty my desktop gets, given that its intake holes are on its bottom. Almost makes me want to buy a banana hammock or something when the time comes so I can suspend it 4ā€³ above my desk to keep the dust from coming in at rates faster than my current iMac gets.

As for yesterdayā€™s predictions:

ā€¦although what they did announce were near-equivalents of both.

2022-03-07: Obligatory pre-event Apple blogging

Appleā€™s got an event tomorrow. Theyā€™re calling it ā€œPeek performanceā€.

Predictions:

Probably nothing thatā€™ll make me say ā€œshut up and take my moneyā€. My Intel stuff is still fast enough, and not having to think about juggling multiple architectures for work projects is still very nice.

2022-03-01: Being OK with missing responses

Background:

bacardi55 on gemlog replies

The relevant (to me) bit. Linebreaks added:

The Gemini community is globally very nice and I've really been enjoying the different interaction I had with fellow geminauts over station, tinylogs, gemlog entries or via email (keep emails coming!).
I really like those interactions, but I feel like interacting with each other over gemlog entries remains difficult. At least to ensure the author see all the responses to their posts.
It's very common to see a gemlog entry being a response to another author entry, but we don't have yet a simple way to notify each other.
The problem is, of course, how to contact the author of a given post to tell them we wrote a response? A "simple" solution would be going to the capsule, find the contact of the author and send an emailā€¦ But not every capsule has a contact page and the process is very manual, requiring to use another tool and protocol to communicate.

One of the tradeoffs of a system where youā€™re going to see all replies to your posts isā€¦you see all replies to your posts. Even replies you might not want to have seen.

Of course, people can and do put e-mail addresses or other contact information on their capsules. This is a good idea. I donā€™t, mainly because I weighed the pros and cons and figured that Iā€™d rather not get a response to something Iā€™ve written than risk the small chance of getting mail in my inbox that Iā€™d rather not have gotten. Sure, Geminispace is mostly Calmā„¢ now, but I like keeping my mellow un-harshed and Iā€™m not much of a gambling man.

Of course, this dampens the likelihood of someone else writing a response to what Iā€™ve written here. Without any surefire way to contact me, a potential respondent might wonder ā€œsure, I could write something, but what if heā€™s not checking Antenna that week? He might miss my superlatively enlightening reply! It might be entire months before he checks the relevant backlinks page on geminispace.info!ā€ and decide to not bother after all.

I take that sort of risk of failure-to-connect as part of communicating on the Internet itself, as opposed to a communication service hosted on top of the Internet, like Twitter or Tumblr.

And, of course, if I want either Twitter or Tumblrā€¦I know where to find them.

2022-02-28: Do you care about how branded your capsuleā€™s pages are?

Normal HTML pages have lots of branding and stuff on them, so if someone decides to download an HTML page from your site and save it on a hard drive somewhere, anyone who views that page will be able to figure out where on the Web it came from.

Ditto printed-out Web pages; they usually have some kind of URL of the page theyā€™re of printed in the margins somewhere.

One of the nice things about gemtext is that you probably donā€™t need to brand every single page on your capsule. Any decent client will have Up functionality itself, leaving you to have a first-level heading thatā€™s just the page title, without a sitewide header on every single page.

However, if you donā€™t, people might download one of your super-cool pages, and, three years later, have no idea where your capsule is, or at least was.

Hereā€™s an example of a superlatively well-branded page:

ā€œWhatā€™s the Deal with Leap Seconds? A Brief Overview of Timescalesā€ by Solderpunk

It has a preformatted-text pseudo-header, plus a real header for the actual document. The preformatted-text header will help anybody who sees the document figure out ā€œoh, this is from Circumlunar Transmissions, whatever that isā€ and the ā€œCircumlunar Transmissions - Issue 1ā€ link down at the bottom will give a further clue as to what the page is from.

But other capsule pages donā€™t. Most of my own capsuleā€™s pages donā€™t really say where theyā€™re from. This saved me quite a bit of work for the Halfway to Mars rebranding, but if, for some reason, someone hits Ctrl-S and saves a page of mine, well, then, good luck figuring out where it came from 18 months later.

At any rate, do you think this is a problem for your capsule? Or, like me, do you not really care?

2022-02-07: Always be closing

As mentioned previously, I am the owner of an Apple Watch.

There are three rings:

Given the initial movement target for the red Move ring, there are only a few ways I could fail to close it:

ā€œclose your Move ringā€ seems like a subtle way to merely get people to wear the watch all day instead of leaving it off. Sure, I could crank it up materially, but Iā€™m not convinced thatā€™s a better idea than making sure I get decent levels of proper exercise per day.

The middle green Exercise ring closes automatically when you get your activity level ā€œabove a brisk walkā€, or if you manually start a logged exercise from the watch.

This is the interesting ring to close. Cutoff times are right at midnight, so thereā€™s no fancy logic for people who have a nonstandard sleep cycle. One evening, I started a 45-minute yoga session (with the three-months-free Apple Fitness+) at 11 PM. Still made the midnight cutoff, but if Iā€™d started 35 minutes later I wouldnā€™t have closed that particular ring that day.

I should probably try HIIT workouts on Fitness+ if Iā€™m feeling too lazy to prep for a gym run or even strap on the Ring Fit Adventure Joy-Con thigh garter, but yoga seems to about as useful for calorie burning as a walk around the neighborhood.

The inner teal Stand ring closes when you stand at least once per hour for at least one minute.

I turned the initial stand count down to 10 hours, mainly because I donā€™t have the thing on my wrist all the time and I donā€™t want to get penalized for not wearing the watch. I may turn it up back to 12 or whatever, but I donā€™t really have a strong incentive to do so.

One of the insights that I had the other day was ā€œif I close all my rings, I wonā€™t have any incentive to keep the watch on, and Iā€™ll be able to take it off and just leave it on my desk until itā€™s time to go to bedā€. This does not sound like the start of a happy, productive relationship with an electronic gizmo.

While I could stand to lose more than a few inches (ask any but one of my pairs of pants), the oblique ā€œkeep me on your wristā€ clinginess via incentive structure is vaguely unsettling, even if it is useful. The exhortations to close oneā€™s rings at the end of yoga sessions still manage to seem vaguely creepy.

2022-01-20: A man with one calorie tracker knows how much energy heā€™s burned; a man with two is never sure

I got an Apple Watch recently. Itā€™s utterly incapable of telling the difference between me sleeping in bed and me lying in bed awake, making it useless for the main reason I bought it, but thatā€™s a story for another day.

One of the ways I keep from morphing into a blob of fat is by doing Ring Fit Adventure for the Nintendo Switch. As you might guess, you can tell it your height and weight and, as part of all its tracking, will tell you how many calories youā€™ve burned during a play session.

Todayā€™s play session lasted one hour and 40 minutes of wall-clock time. This translated into 48 minutes of exercise time (as opposed to resting-pose time, or navigating-through-menus time).

Ring Fit Adventure says that I burned 328.75 calories.

My Apple Watch, set to track calories as I perform ā€œFitness Gamingā€, says I burned 891 ā€œactive caloriesā€, and had a total calorie-burn count of 1,083 calories. This was counted during a duration of 1 hour and 37 minutes (I counted RFAā€™s cooldown separately).

The Apple Watch says at the outset of the exercise session that anytime it canā€™t track your calorie expenditure, itā€™ll fill in the estimate with however many calories are burned by a brisk walk, but I donā€™t have any idea how much workout time it had to use this fallback for.

For reference, 328 calories is, roughly, biking on a recumbent bicycle trainer at a leisurely pace for an hour or so, according to the bicycle trainers Iā€™ve been on. Meanwhile, walking uphill at a 13% incline for an hour at 3 MPH (4.8 kph) burns about 800 calories, according to all the treadmills Iā€™ve been on.

ā‚

Iā€™d like to have some kind of wrap-up or broader lesson that I drew from all this, but I donā€™t have one. Iā€™m still stumped. Calling Unsolved Mysteries at (800) 876-5353 wouldnā€™t do anything, but Iā€™m not sure what would.

2022-01-14: Size matters

Background information:

Overcast, an iOS and iPadOS podcast client

Concourse, a font by Matthew Butterick

Overcast got an update yesterday. From its release notes:

- Now exclusively uses the system font for practicality, modern design priorities, and broader world-language support. I bid a very fond farewell to the excellent Concourse font that served us well for many years.

While I can totally understand why Arment dropped Concourse in favor of SF Pro, the visual change had two pronounced effects on what the UI looked like:

A net negative for my uses, but I really didnā€™t expect the weak positive on my iPad.

Archives

I told you people to not expect permanence. Hereā€™s where I moved older scrawls to:

2021/

2020/

Updates

If you want to stay abreast of updates, have a look at this capsuleā€™s colophon. It has JSON Feed and Atom feeds on it.

../colophon/

āš

Home

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