cron.weekly issue #141: Zettlr, Redis, gg, pipes, sysctl & more


cron.weekly is a newsletter about Linux, open source & webdevelopment. Want to get it in your inbox every Sunday? Subscribe below!

I respect your privacy and you won't get spam. Ever. Just a weekly-ish newsletter about Linux and open source.

Want to help support this blog? Try out Oh Dear, the best all-in-one monitoring tool for your entire website, co-founded by me (the guy that wrote this blogpost). Start with a 10-day trial, no strings attached.

We offer uptime monitoring, SSL checks, broken links checking, performance & cronjob monitoring, branded status pages & so much more. Try us out today!

Image of Mattias Geniar

Mattias Geniar, July 05, 2020

Follow me on Twitter as @mattiasgeniar

Hi everyone! 👋

Welcome to cron.weekly issue #141.

Lots of variety in this issue again, these are the most fun ones to write. 😁

Oh, and there’s a job section at the bottom for those on the lookout for something new.

Grab a ☕️ & enjoy!

News & general 🗞

Btrfs at Facebook

Facebook is one of the world’s biggest Btrfs users. Lots of interesting details in this write-up of a conference talk, covering some of the history of Btrfs adoption, lessons learned & more.

I’ve mentioned Apache Guacamole a few times in this newsletter already, so there’s a non-zero chance some of you are running this in production. You’ll be interested to learn there are several critical vulnerabilities you’ll want to go and patch!

Why optimizing for MTTR over MTBF is better for business

Embrace the fact you’ll have downtime and focus on recovering from that, instead of trying to avoid the unavoidable.

MySQL Terminology Updates

MySQL will change its master/slave terminology used in database replication in future releases. You’ll want to be aware of the potential impact on configuration directives and monitoring. “master” becomes “source” and “slave” becomes “replica”. Soon, it’ll be source/replica replication instead of master/slave replication.

Blacklist and whitelist are also being renamed to blocklist and allowlist.

‘It’s really hard to find maintainers’

Linux’s creator Linus Torvalds spoke about the challenge of finding future maintainers for the kernel. Anyone up for a challenge?

Salvatore Sanfilippo steps down from Redis maintenance

The original creator of the Redis project is taking a step back to focus on other things, leaving the project in the good hands of the community. Some interesting bits from his post that stuck out to me are these.

Redis was an accident, a byproduct of solving a problem:

I never wanted to be a software maintainer

Because of the growth of Redis, and the responsibilities that came with it, Salvatore notes:

Redis was the most stressful thing I did in my career, and probably also the most important.

I can understand that!

A look at the Gemini protocol: a brutally simple alternative to the web

The Gemini protocol is a Markdown-based, simplified version of the web. No image support or scripting, only a basic client/server model for serving pages. I doubt it’ll get mainstream traction other than some select groups, but it’s interesting to read about alternatives to the WWW.

Tools & Projects 🛠

secretive

(For Mac OS) Secretive is an app for storing and managing SSH keys in the Secure Enclave.

Ploi.io - Server Management Tool

Server management at its finest, Ploi makes deploying your application to your own server a piece of cake. Server monitoring, Cloudflare DNS management, database backups, API, we’ve got your back when it comes to managing your server.

Easy 1-click installers for WordPress, OctoberCMS & Nextcloud. Sponsored

vgrep

vgrep is a command-line tool to search textual patterns in directories. It serves as a front-end to grep and git-grep and allows to open the indexed matching lines in a user-specified editor.

bach

Bach is a Bash testing framework, it can be used to test scripts that contain dangerous commands like rm -rf /. No surprises, no pain.

gg

The gg command can run the compilation of code or binaries through serverless functions, speeding up the process significantly! If your laptop has limited CPUs, why not use cloud capacity to help you compile?

PHP Insights

Analysis of PHP code quality and coding style. A beautiful overview of code architecture and its complexity. Designed to work out-of-the-box with Laravel, Symfony, Yii, WordPress, Magento2, and more.

zettlr

Zettlr is a Markdown Editor for the 21st century.

Guides & Tutorials 🎓

How to list all the targets on a Makefile

This is a pretty neat trick to letting the make tool show the help-output by default, and letting it autogenerate that from the source itself!

Scaling “Hey” on AWS and Kubernetes

Hey is a new email app that’s been getting quite a bit of attention lately. This post covers how they run their operations on AWS and Kubernetes.

Mastering JQ: Part 1

The jq tool is a powerful command to handle JSON data at the command line. This guide covers selecting particular pieces of a JSON file, pretty-printing output and filtering data.

Deploying a static website with Ansible

A practical guide on deploying a static site with Ansible. I’ve been trying to learn more about Ansible lately, and guides like these help make it “click” for me.

Using FIDO2 USB authenticators with SSH

Step-by-step instructions on using a hardware key to authenticate your SSH connections, cool stuff!

5 modern alternatives to essential Linux command-line tools

A good list of new tools to replace some of our older ones: ncdu over du, htop over top and fd to replace find.

Use Unix Pipes to Improve Chromecast Playback

This is an interesting use of process substitution in Bash, to stream the download of a file (using ffmpeg) directly to a Chromecast, without waiting for the entire thing to download first.

Types of Indexes in PostgreSQL

A good overview of the available index types in Postgres (think: B-Tree, Hash, Gist, BRIN etc).

SSH Emergency Access

This is a clever, albeit cumbersome, way of adding an emergency backdoor for SSH access. By creating an SSH Certificate Authority, you can generate on-demand private/public keys the host trusts, and you can limit their lifetime to a few minutes, an hour or a year - giving you more control over who has access to what server, for how long.

Scaling Linux Services: Before accepting connections

A very cool deep-dive in how Linux accepts connections: how it queues SYN connections while sending a SYN-ACK, how connections finally get accepted and how to tune these aspects using sysctl.

Jobs 📇

Here’s a new job section, just in case you’re on the lookout for something new. Maybe you’re looking for something closer to home, to reduce your commute? Or want to work with exciting new technology?

Product Manager at Sym

We make compliance less painful for engineering teams. Help us create primitives engineers will use to build the perfect security and privacy workflows for their teams. We’re looking for a technical PM who appreciates a great developer experience and would love to help us create one.

Location: San Francisco, Boston, Remote

Systems Engineer at devhouse Spindle

This is your chance to work on the backend of one of the biggest VoIP platforms in Europe! Bonus: we don’t have managers, we are a holacratic company. The tech stack includes Kubernetes / Rancher, Linux, Django, Python, Golang, SaltStack, Asterisk, OpenSIPS & Prometheus / Grafana.

Location: Groningen, the Netherlands

Senior Security Engineer at Aha!

You are a Security Engineer who is passionate about finding and fixing security vulnerabilities in sophisticated SaaS platforms. You have experience with Ruby on Rails and Javascript applications and have performed application security reviews.

Location: Remote in North America



Want to subscribe to the cron.weekly newsletter?

I write a weekly-ish newsletter on Linux, open source & webdevelopment called cron.weekly.

It features the latest news, guides & tutorials and new open source projects. You can sign up via email below.

No spam. Just some good, practical Linux & open source content.