The Grumpy Troll

Ramblings of a grumpy troll.

Small Mailserver Best Current Practices

(This post was originally written as a reply on the mailop mailing-list, but a friend asked me to turn it into a blog post. I've edited it, mostly adding more links to elsewhere, but there are some additions here.) Context: someone with a mail-server hosted in a German facility with a poor reputation for handling abuse reports was asking for help on sending email to their Gmail-using friends; they had SPF and didn't see the point of DKIM; they had TLS setup for their mail-server, using a certificate from CACert.


Shell Locality

When a shell function declares a variable to be local and then unsets it, does the name return to being global in scope or is it still “known” to be local, even though unset (via some kind of tombstone mechanism, perhaps)? Let's test it. Spoiler: the results vary. Note that POSIX does not provide local, this is a shell extension. The Test Here is our test as a pasteable one-liner:


Slack Tax

Chambers of commerce should be urgently talking with the FTC to try to stave off an imminent forced tax on their members, by Slack. NB: I have no vested interest in any company mentioned here, unless my retirement index-tracker fund has done so, in which case I'm probably hurting myself by writing this. Slack as a company makes Slack, the product. It’s for team communications and basic use is free but there are paid tiers which bill per active user.


Git Aliases & Shell

Today I took a look at one particular git repository's configuration and saw something slightly off in the configuration for a credential helper, dating from an old experiment with AWS CodeCommit. I decided to dig deeper to figure out what the actual rules are for shell commands inside git configuration files. This side-diversion took a bit longer than expected. It's a Sunday. Ah well. I've seen too much cargo-culted incorrect information online, so it was time to figure out an accurate answer.


Alpine Linux on ARM (Turris Router)

My home router is a Turris Omnia, which provides the option for running LXC containers; I use this for SSH jumphosts and other such things as belong “on the router itself”. Last night I decided that it was time to install an Alpine Linux container, to complement the Debian container which has been predominantly used to date. This presented a few issues, but all was done. In this post: networking from no-network, CIDR (classless) routes accepted over DHCP, and other quirks.