The Moon is a Harsh Mistress — Silly Book Challenge, Part 1

I’ve been challenged by a friend on one of the walled garden social media sites to list seven (?) books so that identity thieves can get started figuring out the answers to my security questions. Maybe he’s getting a cut of the take. But I’m too loyal a friend to respond with utter fabrications. The books I list here will be 100% truthful. Trust me.

I’m not sure I understand what the rules for this game are, so (for the first seven books at least) I’ll only post works of fiction.

Number one is obvious. Like, nothing-else-comes-close obvious. To wit, Robert Heinlein’s The Moon is a Harsh Mistress.

Naturally, no sooner did Kevin challenge me to this dumb contest than he stole my thunder, or tried to. Notice, however, that my cover is from a significantly older edition than his. I have an even older one (below), but I don’t read it, to protect the spine. I also have the hardcover, and the Audible book, and Kindle. I even have a PDF of Tim Minear’s script for a movie adaptation.

paperback, harcover, Audible, and Kindle editions.

I first read The Moon is a Harsh Mistress in 9th grade. I almost didn’t. At first, I only read a couple of pages, because the protagonist narrates the book in some kind of weird more-or-less Russian. (Imagine if Lt. Chekov were to dictate all the Captain’s Log entries on Star Trek.) Reading that was work, and I’m opposed to doing that, so I nearly gave up. But my friend Daniel Henderson, who’d already read it, convinced me to make the effort, so I #persisted. And it was worth it.

In P.E., we were playing baseball, so Daniel and I would take positions way out in the outfield and talk about the book. Periodically one of the jocks in class would yell at us that a ball was headed toward the outfield and we’d have to stop and deal with the ball before going back to talking. I remember doing a book report on The Moon is a Harsh Mistress in an English class that year. I don’t remember how the teacher responded, but my grades that semester were 4 C’s and 2 D’s, so it must not have impressed my teacher.

By the time I got to college—which I did, eventually, despite a less than stellar 9th grade GPA—I had probably read it 20 times. I could hand the book to someone and ask them to open it at random and read a sentence, and I would respond with the next one. It’s that good. And I’m that much of a geek.

The technological details haven’t aged well, although they did influence my career. Long before I studied computer science, I had become skeptical of monolithic systems design; a natural alternative for me was the Unix philosophy of small sharp tools, and, later, distributed systems. But Heinlein was usually wrong about the science fiction. (To use Peter Thiel’s language, he was usually too bullish about atoms and, if not bearish then insufficiently bullish, about bits.)

What Heinlein got right was the politics. (I don’t want to spoil it, but TMIAHM is not, despite what you may have heard, or read on the cover of the hardcover edition above, the story of people who set up a libertarian paradise on the moon. Quite the contrary, they destroy one. Because it had to be done. Sigh.)

But Heinlein also raises non-political questions. I’ll mention just two. First, what is a marriage? What constitutes one, what is its purpose, and what support ought society give it? Second, what is a soul? Can an artificial intelligence be alive? If it did, would it have rights? Could it be noble?

If you don’t like this book then, sorry, we just can’t be friends. Have a nice life.

Knives Out

We saw Knives Out last night and I enjoyed it. I figured out who did it as soon as he or she made their entrance, but I did waver in my confidence briefly near the end, only to have it restored and then be vindicated by the detective. We had a debate about which of the heirs was the least likable of a bad lot. I think it was the murderer.

By the way, Rian Johnson impressed me a lot more with this than with the #8 Star Wars movie. (I can’t remember what it was called. I’ve tried not to remember anything about it.) So when RJ makes a good movie following a turd, the least hypothesis is that it was Disney management, not the director, who made SW8 so bad.

Blogging again?

Bandwhich demonstrates how little I understand networking. I don’t even know if I have to be superuser to sniff an interface. A friend wrote something not unlike Sniffglue and made a business of it, back in the olden days.

The Pew survey has a list of striking findings from 2019. Rather than striking, I’d say most of them are, “Yeah, I can believe that.”

Why isn’t this seen as a “both and” rather than an “either or?” Conservatives appreciate the importance of science even as they distrust scientists.

Although self-identifying political conservatives in the United States show high levels of distrust toward the scientific community, they are far from abandoning science as a valid epistemology and a field in which crucial cultural contests might be won. This insight—that audiences are able to partition scientific beliefs and attitudes according to cultural preferences—has been most fully appreciated in the context of conservative Protestants. Scientifically knowledgeable religious conservatives have been able to effectively partition their knowledge and attitudes in ways that maintain a broad recognition of the legitimacy of scientific endeavor while selectively rejecting the science and, more importantly the scientists, that contradict particular religious (e.g., creationist) or political (e.g., climate science) identities and worldviews; impinge on areas perceived as outside their purview, like public policy or morality; or, in the case of scientists specifically, are perceived as personally hostile toward religion.

Scott Alexander’s Adversarial Collaboration Contest included an entry by Alexander, “Is Eating Meat a Net Harm?” It was predicated on the assumption that humans are capable of eating meat, or not, with no health consequences. The evidence of the past 8,000 years, and certainly the last 100 years, argues that this is not a settled issue. For example, consider these two articles: Stangle: Impossible burgers are made of what? and Reduction in red meat consumption to ‘increase death and disease’. (The articles’ publishers have obvious conflicts of interest; however, the point of adversarial collaboration is that neither party pretends to have a neutral outlook.)

rubocop and rufo

I’ve been writing in the Ruby language since sometime in 2002, but if I was looking for a job, I don’t know enough to call myself a ruby programmer. I don’t know rails or anything of the other cool things people do with ruby. I’ve learned to use gems, but haven’t bothered to learn how to write them myself.

But I’m not opposed to learning. I just haven’t gotten around to it yet.

Or so I thought. Then I ran into rubocop, which is a sort of linter and style cop. Those can be helpful, so I thought I’d give it a try. And it’s mostly good. Except it’s opinionated, and some of their opinions are wrong. For example:

  • the indentation should be four spaces, not two as they suggest
  • parallel assignment is the bomb, despite what they say
  • I use double quotes (") pretty much everywhere I’m not forced to use single quotes ('). They want to save time for the compiler, I guess.
  • You need space inside parentheses (although I will grant the extra whitespace is less important with syntax highlighting than without it).
  • And if I’m declaring a RE that’s so complicated I’m using /x flag, then don’t tell me to use /.../ instead of %r<...>.
  • And speaking of which, go ahead and use $1 and $' when retrieving the results of an RE match. (In moderation.) Honestly, this is a tie. Go ahead and use named groups if you want to.

But you can’t fight city hall. If some younglings want to make Ruby over in the style of Python, well, that’s a crying shame. Ruby is supposed to occupy the perfect spot between Perl and Python. But these kids today! If they’re on your lawn, you might as well go along with their misguided project. And that brings us to rufo, the ruby reformatter. You can use it to do like 10% of the things that rubocop whinges about.

Spiderman Far From Home

I just saw it. It’s the best superhero movie I’ve seen in years, probably since Wonder Woman. The third act was only okay, but even so, it was significantly better than Avengers Endgame or Infinity War, Thor Ragnarok, or Guardians of the Galaxy 2. The mid credit scene detracted from this movie, at least for me, although my companion thought it was an enhancement.

Xcode and Bandwidth Caps

For a long time, I’ve been in the habit of installing Xcode on Macs, even though I wasn’t developing software. (Partly because I wasn’t sure what I needed to run Fink/MacPorts/Homebrew, and partly because I think FileMerge is pretty sweet, even if it’s the last thing on this list of features.) But lately, the typical Xcode update is like 7 GB, and I just don’t need it. 

7.6 GB worth of awesomeness. :-/

So I wanted to know how to get rid of these monstrous downloads. And I found out. First, you get rid of Xcode. But that’s only step one:

$ cc
xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist
Use sudo xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools, or use xcode-select --install to install the standalone command line developer tools.
See man xcode-select for more details.

So, next, you have to get rid of the command line tools and reinstall them:

$ rm -rf /Library/Developer/CommandLineTools

$ xcode-select --install

UPDATE: When that doesn’t work, you read further down that page and find the correct answer:

$ sudo xcode-select -s /Library/Developer/CommandLineTools

Setting Up a Mac

Fixing mouse scroll direction, key bindings, setting up Exposé spaces, etc.

Installing Keynote, Numbers, and Pages plus any software previously purchased from the App Store.

Installing replacement browsers: Chrome, Firefox, and Brave, along with Xee and iTerm2 and Skim.

Installing MacPorts, then software starting with ImageMagick. Imagemagick because it’s a good test of everything working properly.

$ sudo port install imagemagick +graphviz -x11

Then adding some of my favorite utilities

$ sudo port install antiword bat colordiff exiftool jhead lame sox tree xz

$ sudo port install ffmpeg -x11

$ sudo port install nnn ranger

Then install software development languages: go, rust, and ruby. Follow them with some CLI utilities written in those languages:

$ cargo install broot cw du-dust dutree exa fd hexyl \
just lsd pastel ripgrep sd

$ go get -u github.com/gokcehan/lf

Another Old Computer

I picked up a new old computer. This one’s a Macbook Pro: the 17in model from early 2011. It’s pretty sweet.

The first screen I saw after logging in
About this Mac after upgrading to the last supported MacOSX.

It’s a behemoth. I can see how the modern Apple could never ship monsters like this. But it’s got a good, big screen and the HD is tolerably easy to upgrade.

And don’t overlook that super-useful ExpressCard/34 port, okay?