More of those CLI Utilities

I’ve found some more CLI utilities (via this thread) that look like they’re worth further investigation.

  • Zola, a static site generator
  • fd (a/k/a fd-find), an “80% replacement” for find; see also fselect
  • xsv, a tool for working with CSV files
  • broot, another disk analysis/tree replacement
  • sd, a sed replacement
  • cw, a wc replacement
  • hors, a combination of lynx and the technical web (which I couldn’t build on my Linux system because it’s running gcc instead of clang). (Ditto ‘bat’ btw.)
  • lolcate, a locate/updatedb replacement

I’m intrigued by topgrade but a little terrified of actually using it.

And I found the indispensable utility called genact.

Rust Command-Line Utilities

I’ve been learning (or maybe beginning to learn) the Rust programming language. (It was a toss-up between that and Go, and I probably picked wrong, but I won’t know until I know a lot more than I do now.)

  • Tokei (for counting source code lines) and
  • diffr as an alternative to colordiff
  • ripgrep as an alternative to ack (etc.)
  • just as a command runner (think “make”)
  • lsd and exa as replacements for ls
  • pastel for working with colors on the command line
  • skim (not to be confused with the excellent Skim) as a fuzzy finder
  • dust, dutree, and dua-cli as replacements for du
  • bat (“better cat”) and mdcat (cat for markdown)
  • starship (prompt)

I’m only beginning to play with these. But I was surprised to see so much activity developing command line utilities. There is some misunderstanding of the Unix philosophy, but it’s understandable (cat isn’t for viewing files, but of course that’s how most of us use it). Yay open source!

Duplicate Files

I’ve been hoarding data for more than 20 years. For backups, I used to burn a CD periodically, but I long since ran over those limits. Today, my backups are hard drives. One reason is that I’ve moved between computers several times during that period, and when I do, I find stuff I don’t know what to do with. So I copy all that data into a new folder, typically called something like temp/backup/that-system-name/tmp/old/save/keep/t.files/save.d.

After 20 years, that starts to add up. So I’ve been looking at programs to help me find and get rid of duplicates. (I’ve been using rsync -n, and occasionally diff -qr, to compare folders. But the problem is deciding what folders, at what places in the directory structure, to compare.)

So I’ve been looking to see what kind of tools are available to help. At this point, I looked at duff, jdupes, and dupd.

So far, I’ve focused on dupd. It does what I was thinking needed to be done: crawl the entire hierarchy and save the result as a database.

MacPorts revisited

I’m setting up my new (old) iMac and I thought I’d give MacPorts another try. I used it since the late 2000s. (I forget why I moved from Fink to MacPorts.) For the last five (?) years or so I’ve used Homebrew, but I’ve always been uneasy about making /usr/local writable, and never convinced by the blandishments on the Homebrew site. I heard about Nix, but before I tried something really different, I thought I’d give MacPorts another look.

So far, so good. I prefer to need sudo to install software. The only real problem I’ve encountered is that the MacPorts version of Pandoc is so old it can’t read docx files. (#sad!) But Pandoc has its own installer, so I’m trying that out too.

What I did after installing Linux

I had a hard drive fail on my laptop, so I put the best parts of several broken machines together into a sum-greater-than-the-whole new machine. Right now, I’m installing Ubuntu Linux 19.04. And, since it’s been a long time since I blogged what I do afterward, here is the mid-2019 edition.

References: the usual “what to do” blog posts, e.g., this, this, and this.

Start by installing updates:

$ sudo apt update && sudo apt dist-upgrade

Then gnome tweaks, to make your GUI act less lobotomized:

$ sudo apt install gnome-tweaks

The specific tweaks I want are left-side buttons, static workspaces, desktop icons for home but not trash, the size of the monospace font, and (since this is a 13″ laptop) the scaling factor. I also add a percentage to the battery indicator and weekday to the clock. While I’m monkeying around with my settings, I set up night mode. And then I make sure that Alt-Tab behaves correctly. (See here.)

Then I install the usual assortment of web browsers:

$ sudo apt install chromium-browser

(I also install Google Chrome from a .deb I download from their website.)

Then a whole bunch of things I need:

$ sudo apt install caffeine
$ sudo apt install vim

Then, before I forget, I install libreadline for other things to use:

$ sudo apt install libreadline-dev

Next, I finish installing the usual software subjects:

$ sudo apt install imagemagick colordiff jhead wv pandoc abiword antiword eyed3

Stuff from other systems

Then I’m ready to start pulling things from other machines. The easiest way to do that is to go over there and rsync them to me. So:

$ sudo apt install openssh-server
$ ssh-keygen  # hitting ENTER at each prompt
$ ssh-copy-id {whatever the other machines are}

Then I pop over to those machines and send the appropriate contents back here.

Ruby

Then I install ruby so I can use all the ruby tools I’ve developed over the years:

$ sudo apt install libssl-dev zlib1g-dev
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ cd ~/.rbenv/plugins/ruby-build
$ hash -r  # might not be necessary
$ rbenv install ( --list | some-version )
$ gem install coderay csv fileutils kramdown mini_magick optimist pericope pry tty-color tty-command tty-screen tty-table zxcvbn-ruby

More Software

Also Telegram, if this machine will be used for your private messaging.

And Dropbox.

Replacing a 27″ iMac Hard Drive

I picked up a gorgeous 27″ iMac at the last UAA Surplus sale. But the fans run. A lot. I think someone put a new hard drive in it without considering how Apple makes everything as hard as it can possibly be.

Here’s some details on the problem. Apple has its own way of sensing the temperature on the hard drive. Because of course they do. And unless you get an Apple branded hard drive, or want to short the pins on Apple’s HD cable, you have to get a thermal sensor cable from OWC. It only costs $40, plus another $10 to ship to Alaska. (Or you could check first, like I should have, and find out it’s cheaper on Amazon, and you get free Prime shipping too. Sigh.)

Sigh. But! If get it working properly again … I’m telling you, this machine is gorgeous:

The dim monitor on the left is a perfectly adequate HD display from Dell.

Linux on Old Macs

I was recently given a second 20″ iMac 2007 to go along with the first. They’re beautiful machines, but Apple doesn’t want me to keep using it, so they’re making all their software not work on it anymore. So I’ve been wondering how they’d do as Linux machines.

Apparently, it isn’t very easy to get an old iMac to boot a Linux system. I don’t think I have a Firewire cable, much less a HDD enclosure with a Firewire interface.