cron.weekly issue #95: fail2ban, React, $HOME, apt-key, Go, Kanban, Zabbix, Zsh & moreAugust 27, 2017 - Mattias Geniar
Welcome to cron.weekly issue #95 for Sunday, August 27th, 2017.
Lots of variation in this issue again, from the deep-technical guides and projects to more ‘soft’ talks about open source licensing, anniversaries & history of Linux.
Happy Sunday all!
This is a fun exercise to try and rethink the OSI layer for today’s standards, keeping security & cryptography as one of the primary motivators.
This is a fun in-browser shell simulator with a a lot of challenges to get through.
Join the Open Source Database Community 25-27 September, 2017, in Dublin for Percona Live Europe. With various talks covering core topics on MySQL, MongoDB, MariaDB, PostgreSQL, Time Series Databases, RocksDB & more. 1 day tutorials & 2 days sessions & keynotes. Buy Now. (Sponsored)
There’s been a lot of talk in the last few weeks about Facebook’s React project and their licensing model. This post tries to decipher the consequences, and the worst-case scenario isn’t all that great. Let’s hope that particular scenario doesn’t happen (or get enforced).
In this post, Facebook themselves explain why they didn’t change their license after the Apache Foundation requested it. I’m not sure what to make of this, as everyone defends their own point of view, obviously.
GoCD is a continuous delivery tool specializing in advanced workflow modeling and dependency management. New AWS ECS elastic agents plugin just released. Optimizes your utilization and reduces infrastructure cost now. (Sponsored)
This isn’t necessarily Linux related, but it was a fascinating read regardless: the author looks at why download speeds on a PS4 are slow and takes a deep technical look at TCP receive windows, congestion, round trip times, … fascination read for those of us who care about networking.
Linux turned 26 last week! In this post, the author looks back at one of the earliest Linux distributions – Softlanding Linux System (SLS), reinstalls it and compares that kernel with today’s most modern Linux kernel.
I’m actually a week late but I missed this news last week: happy birthday, Debian!
It’s all got to do with hardware. Click through if you want to know some Linux trivia about that tilde representing the $HOME directory.
The `curl | bash` method is generally frowned upon, but this post looks at what might go wrong if you go `curl | apt-key`, too.
Tools & Projects
Track & alert on the health and performance of every server, container, and app in any environment, with Datadog. Sign up for a free 14-day trial. (Sponsored)
This repo has a collection of pretty much every major Linux project, from audio editing to chat, development & productivity and everything in between. If I’m every out of ideas for new projects to highlight, I’ll have a look there. ^^
Bare metal, self-hosted, self-healing/provisioning, mesh network kubernetes cluster.
This project aggregates many OpenBSD related blogs and newsfeeds into a single view. If you’d like to keep track of OpenBSD related work, this might be something for you.
OpenFaaS is a framework for building serverless functions with Docker which has first class support for metrics. Any process can be packaged as a function enabling you to consume a range of web events without repetitive boiler-plate coding.
Auto-sync files or directories over SSH using rsync and fs.watch().
A new set of free and open icons to use.
Lots of open source & free icons to use on websites or other projects, this time by the VMware team.
Most of the engineering effort put into this release went to improvements of the runtime and tooling, which makes for a less exciting announcement, but nonetheless a great release.
Tarantool is an in-memory database and application server, a drop-in replacement for Lua with non-blocking I/O.
How to be agile as a terminal geek? In Bash, of course! This is a commandline asciii kanban board for minimalist productivity bash hackers (csv-based).
The Node project forked, yet again. Not sure on the viability of this one (seems to only be supported by a handful of people), but if it turns out to eventually surpass Node, I want to make sure I included it. ^^
Prezto is the configuration framework for Zsh; it enriches the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes.
Cuberite is a Minecraft-compatible multiplayer game server that is written in C++ and designed to be efficient with memory and CPU, as well as having a flexible Lua Plugin API. Cuberite is compatible with the vanilla Minecraft client.
Easily create a microservice for generating PDFs using headless Chrome. pdf-bot is installed on a server and will receive URLs to turn into PDFs through its API or CLI. pdf-bot will manage a queue of PDF jobs. Once a PDF job has run it will notify you using a webhook so you can fetch the API.
A big new release for the monitoring tool, featuring a new dashboard, better timing & correlation of metric retrieval (aka: get all CPU perf counters at once, instead of one at a time), many server-side improvements, notifications on alert ack’s, multi-threaded alerting, … very cool stuff all!
It took almost 6 years to get a new release for fail2ban, but it’s a good one: support for IPv6, faster lookups by searching the fail of logfiles, improved filters, … the Changelog is pretty big.
Guides & Tutorials
This post contains a lot of good details on how to make & maintain a Makefile in order to have a structured & sane build config.
An interesting approach where API calls to AWS get logged & triaged into “noise” and “important” and in turn get pushed to the engineer that made the call, to confirm he/she did that on purpose.
There’s more to Linux user permissions than user/group/other and read/write/execute. Extend file attributes gives you lots of flexibility regarding user & group permissions and are definitely worth a look if you haven’t used them.
Lots of practical Docker-related commands to help get you started & serve as a reference guide to fallback on.
A lot of good configuration tips in this post, together with a clear explanation on why to use those values/settings when setting up your Zsh shell.