Configuring Useful CLI Utilities

This is a sort of directory to help me remember what I want to install on new machines (or new operating systems)

★★★ Cowboy’s dotfiles (like the init.d files but for a regular user)

Hackernoon’s Favorite CLI Utilities

BKuhlmann’s Mac OS configuration

Nate Landau’s bash_profile (described here)

fzy fuzzy finder

colout – a sort of g/re/p tool but colorizing the matches

xsv – csv manipulation

Crystal – I have to try porting some of my slower Ruby utilities to it.

renameutils – would you believe “utilities for renaming things?”

DIY init-style status messages

Heinlein’s Juveniles — Silly Book Challenge, #2

The second book in this very occasional series is … well, any of Heinlein’s juveniles. The cover is from the final book in the series, Have Space Suit, Will Travel (1958). It features bug-eyed monsters, space pirates, and a plucky hero who saves the earth from alien invaders over Labor Day weekend and still makes it back in time to get a free-ride scholarship at M.I.T. and throw a milkshake at the antagonist. Plus, we are taught a handy mnemonic for the order of the nine planets (see below) and a parable about frogs that isn’t the one about boiling them slowly. (Sorry for all the spoilers, but you’ve had 62 years.)

For this posting of my #2 fiction book, I could have picked any one of the series. They’re all great (except, I guess, Rocket Ship Galileo, the first). I mean, they were great when I first read them, starting in junior high school, when the science was only a little bit dated. (Venus had turned out not to have swamps, for example, and Mars never had canals. Jupiter’s EM environment would probably make Ganymede a poor place to farm.) Starting in 1953, after a few books set in our solar system, Heinlein got wise and set his stories somewhere more romantic.

But despite that, the juveniles are still great. Honestly, they’re better than most of Heinlein’s non-YA fiction. Practically all of it. Especially if you see Starship Troopers as the YA fiction that it ought to have been.

What are you waiting for? Get started! For a complete list, see the wikipedia article (search “heinlein juvenile”). But you’ll need to get them new. We never put the old ones back into circulation.

Enlightenment As Epicureanism

But the key point at issue is the great gulf separating [the gods] from us, together with the apparent randomness of the world and the non-intervention of outside divine forces. Much of the claim to be new, ‘modern’, and indeed ‘scientific’, at the time and ever since, has thus been simply the attempted justification of a much older worldview by appeal to new scientific discoveries and technological achievements. We glimpse all this, to repeat, after the event, seeing how things in fact turned out and the way in which this idea of a ‘modern age’ has subsequently taken hold on the Western imagination. I do not envisage a conspiracy in which people were saying, ‘Now, how can we re-launch Epicureanism without saying that’s what we’re doing?’ My case is more about long-term effects than explicit intentions, though the intentions, not least in their social, political, and ethical dimensions, were often at least implicit. What matters is the way in which the newness of certain scientific discoveries was used rhetorically to press the claim to the newness of the worldview. At the time [the 18th century], many leaders of the movement knew perfectly well that they were rekindling ancient fires. Those who today invoke ‘the modern world’ either ignore this or choose to forget it.

N.T. Wright, History and Eschatology, 21-22.

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.