Notes on using GNU Emacs' Tramp system in an unusual shell environment

Tramp is a famous and oftenpraised GNU Emacs system for editing remote files; lots of people willcall it one of Emacs' compelling features. I've always had a decidedlydifferent view of Tramp because Tramp has mostly not worked for me inopaque ways. I recently took another run at getting Tramp working (soI could have an informed opinion on why I'm not a fan), and in theprocess I've learned a bunch of things that I don't want to forget.

Although


Detecting (or not) the use of -l and -c together in Bourne shells

Many Bourne shells go slightly beyond the POSIX sh specification to also support a '-l' option that makes the shell act as a 'loginshell'. POSIX's omission of -l isn't only because it doesn't reallytalk about login shells at all, it's also because Unix has aspecial way of marking login shells that goes back very far in itshistory . The -l option isn't necessarilywhat login and sshd and so on use, it's something that


Your Linux distribution may no longer auto-generate new SSH host keys

All Linux distributions (and all systems) face the need to generateSSH host keys when your system gets installed. One traditional waythis was done was if the system started and discovered it had noSSH host keys, it would generate new ones. One way this was handy wasthat if you wanted to generate new SSH host keys for some reason, youcould remove the existing ones and either reboot or restart the SSHdaemon (which would usually trigger this).

As I found out the hard way the other day


Splitting up my .emacs, or "use-package doesn't solve all problems"

Over on the Fediverse, I shared a little story :

The current state of my GNU Emacs yak shaving:
; wc -l .emacs
1550 .emacs

Some of that is comments. Some of that is personal functions that Ishould move out to other files so I can have only use-package stuff inmy .emacs. And some of it is large blocks for lsp-mode and company andsome other stuff I'm probably never going to use again, which I shoulddrop.

I


Straightforward checklists don't fit every situation

We had a weekend long powershutdown this past weekend in the building with our main machineroom. As is our custom, we powered off the servers before hand (onFriday evening, with some surprises ),and then turned them back on this morning. This isn't the firsttime we've gone through such a power shutdown (although usuallythey're shorter), and over time we've written checklists andlessons learned for these things . Thistime was no exception, so I wrote checklists


Some views on Eglot and lsp-mode in GNU Emacs

Not content with blowing up my in-buffer LSP completion , I decided to follow it up by firsttrying out Eglot and then more or less switching from my relatively long standing use of lsp-mode . In the process I've woundup with some opinions on the contrast between lsp-mode and Eglot . I will give you the summary up front.

If you're just starting out with GNU Emacs and you want to have afunctional, nice LSP based development environment without goingthrough a long voyage of


How backups work depends on the goals of the people setting them up

One of the recent commotions in my corner of the tech sphere wasover an incident where a piece of software deleted a company'sproduction database and all of its backups. The software got allof the backups too because, I'll quote:

[Their SaaS provider] stores volume-level backups in the same volume— a fact buried in their own documentation that says "wiping avolume deletes all backups" — [...]

A lot of people were horrified, but I had some sympathies with


Some of our servers revived themselves unexpectedly

We have a whole building, weekendlong power shutdown in the building with our machine room that officially starts tomorrow (Saturday)morning at 5am, which is the motivation for our newly addedtemporary backup MX . Because welike to be in control of both the shutdown and the startup of ourmachines, we turn machines off in advance for scheduled outages(there's not much we can do about unscheduled ones ). For variousreasons we did the shutdown earlier this evening.

(One reason to start machines under


Learning my lesson that Python virtual environments aren't always movable

I've said before that Python virtual environments can be movedaround . Well, technically that entry said'usually', but in practice I don't remember the limitations Imentioned in that entry. And that is how a while back I renamed thetop level directory of a Django virtual environment that I'd alsoinstalled the Python LSP server into , andthen yesterday I was rather puzzled when I tried some Djangodevelopment and GNU Emacs gave me a weird error and didn't startmy LSP environment.


Switching entirely to Corfu in my GNU Emacs configuration

Somewhat recently I read this article on a modular completionframework for GNU Emacs ( via )and expressed a thought on the Fediverse :

If lsp-mode in GNU Emacs supported corfu in addition to (or insteadof) company-mode, I would probably switch from company to corfujust to have a unified completion environment. But I don't thinkas-you-type completion with LSP is supported in anything exceptcompany-mode, and I'm not moving to eglot (I looked once and rejectedit