Blog

Raspberry Pi OS 64-bit

Back up your user files (only). Don't bother configuring the installer beyond choosing "Other Raspbian" and "64-bit base", it ignores your settings, you'll have to configure the device after booting stock. But it writes the micro-SD card correctly; I didn't have to reformat it myself like last time. So I run thru my 400 setup routine again, and with minor changes it's still current.

Everything seems to work. I can run my Scheme scripts in Gauche like it was just a minute ago. Since it's 64-bit now, I should be able to install Chez Scheme from Debian! But ambitious plans later. Python is 3.9.2, which meh, fine; I've mostly updated my desktop to 3.10, but old ports require 3.9 still.

I had a weird crash with Twitch, but I've had that before; on reboot I was able to watch Twitch with no problems, but I'll keep an eye on that.

Uh, when adding things to the Main Menu, make sure they're marked executable (chmod 755 whatever).

And reminder, MagPi magazine is good content, you just have to persistently demand "free PDF", nobody wants dead trees! It does tend towards the very noob, classic WIRED magazine color/font assault on your senses, and they think IDEs are a good idea on a tiny computer. Don't do that. Just use Vim in a terminal.

Very importantly, keep your files as much as possible on a USB drive, not the internal SD card, you don't want to thrash the OS card any more than you have to.

Now the next step will be to reuse my old micro-SD card for an alternate OS, so I'm not running Linux. But if you do run Linux, Raspbian's acceptable since it only has one hardware profile to support.

What I'm Watching: Matrix 3 Revolutions

Finally rewatching Matrix Revolutions, and boy is my suspension of disbelief in this bullshit tired. I would watch Resurrections again now, but it's no longer on HBOmax, so I guess it's time to kill my subscription again. These short play windows suck.

It's weird there's still pay phones in 2005. Best I can figure they went from 2M in 1997 to <100K in 2009.

I get that Sati is a tiny child/program, so "Trainman" is a fine name for her to use, but the word adults would use is "Engineer" or "Driver".

"I've never heard a program speak of love", dude, you can make a program speak anything. You do it all the time! LOVE by David H. Ahl But they really missed an opportunity here; the program that thinks it's a person's name is "Rama Kandra", which is so close… if he was only an actuarial program named RAM who believed in The Users.

But, speaking of love, there's 5 relationships? Neo & Trinity, of course, who don't really get much time in this film, they're very moved-in-girl/boyfriend, so it's less 24/7 humping than the second film. Sati's parents, who are just NPC programs. There's Zee & Link, which is somewhat ruined by the very mechanical Nona Gaye replacing the late Aaliyah as Zee so she has no actual on-screen interactions with anyone; Link seems more into the idea of her than the actual girl. Allegedly Niobe & Locke, but they have zero chemistry, Locke clearly only gets off on losing and being whipped by the council. And the Merovingian and Persephone are back together, which is surprising and she doesn't even hint at her earlier treachery; I guess even programs forgive all for a nice rack.

I think about this stuff to kill time here. Plot resolution of first 24 minutes: Neo waits for a train and his girlfriend has to pick him up.

Every scene drags on too long. Oracle could be resolved in a couple minutes. Cruising home "nobody can fly a mechanical tunnel!" but the tunnel's plenty wide enough, it's like a street. Dock fight is an hour of flashing lights.

Why don't the gun exoskeletons have armor? Like, even a stupid half-barrel welded around them with a faceplate would make them invulnerable to the dumb squids.

How is it Neo takes so long to understand that the only "person" who ever calls him "Mr Anderson" is the "person" he's facing? If he was The One, he should be like, "YOU!", and leap to attack.

Most of us when we're gut-wounded and impaled in multiple places, go "holy shit this hurts", they don't have a quiet 10-minute monologue about feelings. More Reservoir Dogs, less Lifetime Special Movie.

I prefer mud wrestling with bikinis, even if it's Keanu & Hugo.

At least things get accomplished in this two-hour-long drag of a film. A competent editor would've taken 15-30 minutes of 2, 40-60 minutes of 3, and made a single good, short movie.

There's nothing new in this movie, not even stealing from newer movies or tech, it's just iterating out the scenario of the first movie and almost completely ignoring the second, but it's mostly competent. It only suffers from nobody being able to tell the Warchowski Siblings "no" in the editing room.

★★★½☆ I think this is the second-best of the series.

Clicky Keys

Since a soup-related accident with my Magic keyboard a couple weeks ago, I've been using a cheap, terrible backup keyboard (I tried using my big, old clicky keyboard, but it's very big and old, key switches are flaky), and looking for a good replacement.

I got my new Keychron K2 w/Gateron Red switches, and it's sweet. Kind of overly tall, I got a cheap foamy wristpad (they sell a ridiculous hard wood rest, ha ha no). Playing with the backlights, I have pulsing waves of green for now, looks very TRON in the dark (same as site aesthetics). Hooked up the nice wrapped wire cable, so I can quit using BT; I'm probably in no espionage danger out here, but I distrust BT anyway.

Good size for it, it's not full-size but not as teeny as some I've used; I might prefer one about 10% bigger. Not as sharp a click as the Northgate I imprinted on long ago, seems like much less key travel, but it's still deeper than the Magic keyboard, so gotta get used to fingers going down, up, not just over, keep tapping my fingernails on the next row.

So far I keep missing [ ] but I'll get used to them. Will take some time to get used to the cursor controls (PgUp/Dn, Home, End) on the far right, but I normally use the Mac's emacs-like keys so I don't care that much. There's a funny box icon next to Del, turns out it's Sh-Cmd-4, region screen capture!

Used Karabiner Elements as they suggest to remap keys, currently just Caps Lock->L.Ctrl, L.Ctrl->Fn, since they put Fn over on the right (great for media control, bad for anything else). They sent some replacement keycaps and a cap puller, but just for Windows equivalents. I need to order proper Ctrl, Fn keycaps.

Update 2022-01-22: I made Home/End send Sh-Cmd-[ and Sh-Cmd-] so I can easily shift window tabs. Download home-end-tabs.json and do what the README says.

What I have not got is the Das Keyboard 5QS. It literally runs a keylogger & Internet spyware to "display information" on the keyboard; I can't think of a dumber, less secure idea.

Green and Blue Bubbles Again

Some disreputable right-wing rag is pushing the Google-paid-ad conspiracy theory that Apple promotes bullying to get kids to prefer blue bubbles and iMessage to green bubbles in Android trash. Whenever this comes up, the mainstream rags never mention the real difference: Security vs. insecurity, encryption vs. everyone in the world able to read your messages.

Preferring blue bubbles is good behavior, whether kids know it or not. It has end-to-end encryption, it never even touches Apple's servers in plaintext. Anything you send, you know only the person you sent it to can ever read it. (note: You should not use iCloud backups, because those WILL store logs in plaintext)

A green bubble means it's insecure SMS; it can be read by cops, the phone company, anyone with a "Stingray" radio packet decoder in the area, and anyone who's SIM-cloned your device, which can be as simple as a single phone call to the carrier. Google is criminally negligent still shipping SMS as their "IM" in 2022.

Use iMessage if you can, Signal, Telegram, LINE if not.

Don't use WhatsApp, it's owned by Facebook and just as bad spyware as anything owned by Google.

Formatting Strings in Scheme

Most of the time I use primitive display, or print functions:

;; displays a series of args to stdout
(define (print . args) (for-each display args) (flush-output-port) )

;; displays a series of args to stdout, then newline
(define (println . args) (for-each display args) (newline) (flush-output-port) )

;; displays a series of args to given port
(define (fprint port . args) (for-each (λ (x) (display x port)) args) (flush-output-port port) )

;; displays a series of args to given port, then newline
(define (fprintln port . args) (for-each (λ (x) (display x port)) args) (newline port) (flush-output-port port) )

;; displays a series of args to stderr, then newline
(define (errprintln . args)  (let [ (port (current-error-port)) ]
    (for-each (λ (x) (display x port)) args) (newline port) (flush-output-port port)
))

but sometimes I actually need to format things:

(import (prefix (srfi s19 time) tm: ))

(format #f "~8a ~10:d ~20a" name score
    (tm:date->string (tm:current-date) "~Y-~m-~d ~H:~M:~S") )

Common Lisp format works as described in Chez Scheme, using /#f for destination, and some other Schemes as well; but most Schemes only have the nearly-useless SRFI 28. I'm aware of cat/fox/etc combinatorial formatters, but they're very verbose.

Chez also has date/time functions, but no formatter, so using SRFI 19 - nicely, SRFI 19 mostly does sane things, it's not like C's strftime.

Gambit hits a mark

(see, the X-Men Gambit has perfect aim and a stupid accent, which still makes him more interesting than Hawkeye; and of course I'm Mark and so is Marc)

With much appreciated help from Marc Feeley, got maintest running.

A couple of lessons: I very much think include paths should include the path of the main source doing the including. Chibi's default is correct, Gambit's default is wrong and requires fixing in every user program. It's "more secure", but if you're running source code from a directory, you can probably trust whatever else is in that dir.

main was frustrating: Gambit manual 2.6 (highlighting mine)

After the script is loaded the procedure main is called with the command line arguments. The way this is done depends on the language specifying token. For scheme-r4rs, scheme-r5rs, scheme-ieee-1178-1990, and scheme-srfi-0, the main procedure is called with the equivalent of (main (cdr (command-line))) and main is expected to return a process exit status code in the range 0 to 255. This conforms to the “Running Scheme Scripts on Unix SRFI” (SRFI 22). For gsi-script and six-script the main procedure is called with the equivalent of (apply main (cdr (command-line))) and the process exit status code is 0 (main’s result is ignored). The Gambit system has a predefined main procedure which accepts any number of arguments and returns 0, so it is perfectly valid for a script to not define main and to do all its processing with top-level expressions (examples are given in the next section).

So your code that looks fine with 1 arg will break with 2, depending on the version. (main . argv) works. I'm in the process of making sure every one of my maintests parses args consistently, and every Scheme disagrees.

Gambit's compiler worked very simply once I got the library on the command line; it doesn't seek out & include them the way Chez does, even though it takes what looks like a search path.

The upside of all this is at least now there's one maintained, fast, R7-compatible Scheme compiler. I'm sticking with Chez (R6) for my code, but it's nice having something 100x faster (gut feeling, not benchmarked) than Chibi to test R7 code on.

Gambit is a risky scheme

(puns about "scheme" names are mandatory)

Neat: New version 4.9.4 of Gambit Scheme is out and they have a web site again after like 3 years.

OK: So I start adapting my little module/how do you run example: here

Bad: Not only does the R7 library system not work, their version of this hello example
will load code from fucking github at runtime! NPM viruses & sabotage are baked into the system. See Modules in Gambit at 30

SIGH.

2022 TODO

No looking back. Burn our 2021 ships behind us. Forward is death or glory.

  • Ship Haunted Dungeon. Work on other games which are not CRPG/roguelike for a while.
  • Write more Scheme, maybe publish some of it. If Scheme's so efficient, why am I such a bum who can't ship?
  • Playtest & ship my new tabletop RPG.
  • Boardgames? I've been thinking about condensing some of my ideas into a more concrete, boardgame model. Print or software, I dunno yet.
  • Read more, watch less garbage/browse the web less. I didn't do too badly on reading in 2021:
    • Fujino Omori: Is It Wrong To Try To Pick Up Girls In The Dungeon light novel. I loved the anime, and played the mobile game for like 2 years, it's being adapted too slowly for my taste, so I read the books some. It's amusing easy-reader trash about JRPG fantasyland, and I don't care.
    • Tim Pratt: The Wrong Stars. Started on the sequel and it sucked, DNF.
    • Michael Warren Lucas: Drinking Heavy Water, Butterfly Stomp Waltz
    • Alastair Reynolds: Shadow Captain, Bone Silence, The Prefect, Elysium Fire, Beyond the Aquila Rift (had read several in earlier mags/collections, but many were "new"), Revelation Space, Redemption Ark. Look. I'm aware that's too many. But I want to read the new one, so I have to catch up and I'd forgotten everything in the RS setting.
    • Rudy Rucker: Million Mile Road Trip (been sitting on tsundoku for too long)
    • Neal Stephenson: Cryptonomicon (reread after 22 years). Dude, Neal used to be able to write a doorstop I liked reading.
    • Andy Weir: Project Hail Mary
    • Martha Wells: Fugitive Telemetry
    • random old pulps from the '40s-80s off archive.org. Complete Manly Wade Wellman in Weird Tales has been a nice trip, lot of Fritz Leiber and Roger Zelazny.
  • Top of my tsundoku:
    • Hannu Rajaniemi: The Quantum Thief
    • Alastair Reynolds: Absolution Gap, Chasm City, Inhibitor Phase and then I will be free! I might go a year or more without another Reynolds book oh sweet mother of fuck yes.
    • Rudy Rucker: Juicy Ghosts, have read the short story
    • Martin Gardner: The Last Recreations
    • Isaac Bonewits: Real Magic an Introduction (research for better game design!)
    • Black Magic Omnibus vol.1 & vol.2
    • Andrzej Sapkowski: Time of Contempt. I read up thru Blood of Elves a couple years ago (prompted by the TV show, yes), and keep picking up the next one and stopping. I dunno why, they're pretty similar to my D&D-type fantasy campaigns.
  • Do some more software & project maintenance. A lot of my stuff that I have in various places is either unmaintained, broken, or just unadvertised in any way. Might set aside one work day a week to this.
  • Actual contract work. I'm never going back to an office in my life. I should be #1 online earner, but I really can't be arsed to talk to recruiters, clients, get the job, and do it, a lot of the time. Probably should be slightly more than zero productive citizen.

What I'm Watching: Matrix 2 Reloaded

I rewatched the first one not that long ago, so I'm just picking up here.

Starts again with not-actually-Trinity doing more action than the entirety of Matrix 4. But then slows to a dead crawl of politics, religion, and hobos in steam tunnels. Little bit of Carrie-Anne's titties. Racial representation of Earth is so much better than 4, which is a sterilized honkie city mostly. I don't think we even ever see a crowd in the "real world" in 4, just a long CGI matte shot.

Oracle's uncharacteristically literal. Then assigns a mission to find the Keymaker, Gozer, whatever. Everyone in Zion except Morpheus' antagonist just sits around waiting for Neo to save them. Everyone/thing outside Zion is an obstacle for no good reasons.

The replicating Smith makes for a good fight, but it's cartoony. But the rest of the fights and car chases make up for that; this is an actual good action flick. Dumb as hell, but the action's fine.

The Architect's pompous, fake-intellectual, repetitive, zero-content phrasing, and the white-haired cult leader look, is exactly like Dr Breen in Half-Life 2; the first appearance of Breen predates M2, but the full version was a year later, coincidence or parody which way? Bob Culp's better at it than "Helmut".

I appreciate that it ends on a down note, their attempt at Empire Strikes Back, but the entire film was pointless, put them back exactly where they were at the end of the first movie.

★★½☆☆

Staring at the Matrix rain which is much less overproduced here than in 4, I think my Matriculated Rain for Atari is now dialed in as close as I can get without making a custom charset for ANTIC mode 4. Pondering doing that anyway.

Dear Santa

Hey, Big Red.

I'm… look, good and bad are relative terms at the best of times, but this whole year I ain't killed anyone nor committed insurrection against my country, so you're grading on a curve, right?

Great. All I want is… it's a little harder than just some Star Wars figures…

  • JWST launch to go correctly. I really need this one. Less than a day to go.
  • Not to die in a nuclear apocalypse over any of the multiple pending wars. Bad part of the '70s/'80s/'90s lifestyle.
  • Continue not finding lumps in places that oughtn't'a have lumps.
  • Internet to continue working long enough for me to download survival manuals for the post-apocalypse lifestyle to come.
  • A bottle of Scotch, Laphroaig Quarter Cask, or you know, whatever hooch your elves make is fine.
  • Can I have one sequel, remake, or side story flick in a series I like that isn't an absolute dumpster fire? Like, TRON: Legacy was OK. How about The Last Starfighter II and it's not terrible? That's probably too much to ask. Peace on Earth, Goodwill to Humanity is more plausible.

Thanks in advance. It's been a rough one.