cron.weekly issue #36: ed, TCP in the kernel, moreutils, Nagios, Tmux, BSD vs Linux & more!July 10, 2016 - Mattias Geniar
Welcome to cron.weekly issue #36 for Sunday, July 10th, 2016.
This week we have discussions about the TCP stack in the Linux kernel, lots of Bash guides, a look at one of the oldest text editors on your Linux machines and many more links.
Enjoy your Sunday reading experience!
2 weeks ago the Monitorama conference held place in Portland, US. All the videos from the conference are available online, ranging from topics like “Scaling Pinterest’s monitoring system” to “Tackling Alert Fatigue” and much in between.
Some good thoughts on why TCP in the kernel may be slow and how it’s easier to innovate in userspace than waiting for new kernels to be widely adopted.
Cloudflare’s response to the above post, defending their choice of (partially) using the TCP stack provided by the kernel. They do some interesting tricks with layer3 DDoS prevention being offloaded to both hardware NIC’s and custom userspace TCP stacks.
From now on, all software written for the Buglarian government needs to be open-source and should be developed as such in a public repository. Is this the first government to have such a law?
A clever redirect vulnerability in wget, allowing you to set a .bash_profile file to whoever downloads a file, which can contain all sorts of bash commands for the next user login.
Tools & Projects
“Next level PGP”: Felony is an open-source pgp keychain built on the modern web with Electron, React, and Redux. Felony is the first PGP app that’s easy for anyone to use, without a tutorial. There are native binaries for Mac OSX, Windows & Linux.
wallabag is a self hostable application for saving web pages. Similar to Pocket, but self-hosted and open source.
This is a collection of useful unix tools that nobody bothered to write before. Lost of interesting little commands in that repository.
Papertrail also uses Papertrail. Here’s a few specific design decisions which make life easier for Papertrail’s team. In case you missed it in previous episodes, Papertrail is a new log management solution focussed on simplicity and ease of use. (Sponsored)
bpkg is a bash package manager: with bpkg you can easily install and manage Bash packages. It takes care of installing/uninstalling, execution permissions and everything.
ShellCheck is both an online tool as well as a CLI command to find bugs in your shell scripts: it’ll parse your Bash code and point out places in your code where things can go wrong.
This web-based tool can “explain” a command to you. For instance, copy/paste a long rsync or tar command, and it’ll carefully describe each parameter of the command.
Sorcery: this tool translates SQL queries into Bash scripts! It takes a SQL query and transforms it into a series of Bash commands that do the same thing, using tools like xargs, tail, sed, cut, sort, head, … Very nicely done.
Guides & Tutorials
A nice presentation on useful things you can do on top of Nagios, that aren’t immediately clear. Lots of practical tips on implementing better visibility on planned maintenances, debugging & validating Nagios, adding additional (relevant) data to alerts, …
A good history of tmux and how it compares to screen. They’re both multiplexers, allowing you to open multiple session to a remote SSH host inside a single window.
Some excellent Dockercon videos have been made public: this post focusses on developers aiming to implement and use Docker. If you’ve wanted to create your next application in Docker, check out these videos.
Some pretty good basic settings for securing your SSH server configurations.
Another week, another package manager. This post explains how the Guix package manager works and how it compares to the recent Snappy & Flatpak formats.
A very nice overview of where BSD differs from Linux. Written by a BSD user with a lot of Linux experience it seems, this write-up is spot-on.
This post explains how for loops work in Bash and how you can use them to automate mundane tasks. Some examples in the post too to quickly see the benefits.
This post highlights the areas that may be important to an enterprise when considering developing a Docker infrastructure: registries, image building & scanning, integrity checks, third party images, …
A very good list of 5 open source tools used to help debug applications on Linux, each accompanied with a link to learn more.
A very detailed list of all the Bash primitives you can use and how you should use them: commands and arguments, parameters, patterns, input & output, …
The classic ed editor is a really good example of a sparse, minimal, standard Unix tool that does one thing, and does it well. But chances are you’re using nano or vim and have never used ed. This post explains how it works and when you can use it.