cron.weekly issue #123: eBPF, Licensing, CentOS, usql, CouchDB & 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.
Image of Mattias Geniar

Mattias Geniar, March 01, 2020

Follow me on Twitter as @mattiasgeniar

Hi everyone! πŸ‘‹

Welcome to cron.weekly issue #123.

There’s an interesting guide on eBPF filters in this issue, a good variety of news (not just restricted to Linux, pretty all-round) and a lot of new tools I found interesting out there.

I want to give a special shout-out to the latest sponsor, Datadog! Make sure to pay them a visit, their support helps keep the newsletter going.

Enjoy! β˜•οΈ

News & general πŸ—ž

Programmers generate every possible melody in MIDI to prevent lawsuits

How do you stop musicians getting sued for their music? One geeky solution is to algorithmically generate every single possible melody in existence and write them into MIDI files, copyright them & then release them under a Creative Commons Zero license. Brilliant!

I want off Mr. Golang’s Wild Ride

I usually don’t like rants, but this one is well-founded and very thorough. A critical look at the issues with the Go language and how they manifest in real-world projects.

Despite this, I still want to give Go a proper chance. I’ve only ever created some simple scripts for fun, but I want to re-write some of my tools in Go one day.

Suspicious CentOS 7 AMIs on AWS Marketplace

A good issue to be aware of: if you use CentOS 7 AMI’s (Amazon Machine Image), there appears to have been a collision in the image name which may have caused you to download a different image, with a cost assigned to it!

You’d think package managers and naming things would be a solved thing by now, but nope.

The Effect of Pipe Capacity on Unix Pipeline Performance

I’ve never actually given much thought about “pipeline capacities” until this article, and it was an eye-opening read for me. Most often, when you run a | b, the output of a gets piped, line by line, to b.

But what if b needs at least 2 lines of input before it can process it? How long should things be buffered? What part is blocking exactly? 🀯

Let’s Encrypt Has Issued a Billion Certificates

“We issued our billionth certificate on February 27, 2020."

Pretty mind-boggling to be honest. I can’t remember the last time I paid for an SSL certificate.

Syntax highlighting is backwards

This post makes a good point: why do we highlight the language constructs (if/then/else/while/…) instead of our own code or comments? I think I’ll give this a try with a custom theme soon, on the surface it makes sense to reverse the colour scheme.

The Facts: Mozilla’s DNS over HTTPs (DoH)

Last week I complained about Firefox’s default move to DoH using commercial providers, it seems only fair to give the team at Mozilla their side of the story too. As usual, there are nuances and it’s a trade-of between making things more secure vs. making them more centralized.

Tools & Projects πŸ› 

Modern monitoring for your infrastructure, apps, and logs sponsored

Seamlessly navigate between logs, metrics, and request traces for a clear view of all your systems with Datadog. Visualize and alert on metrics in real-time with anomaly and outlier detection so you discover issues before your customers do. Start your free Datadog trial.

centos7-ami

A shell script used to build the Bashton CentOS 7 AMIs we have made publicly available. To use, start a RHEL7 or CentOS 7 instance, attach a blank EBS volume at /dev/xvdb and the script will do the rest.

write freely

WriteFreely is free and open-source software for starting a minimalist, federated blog.

faktory

At a high level, Faktory is a work server. It is the repository for background jobs within your application. Jobs have a type and a set of arguments and are placed into queues for workers to fetch and execute.

usql

A universal command-line interface for PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, and many other databases including NoSQL and non-relational databases.

CouchDB 3.0

CouchDB has release a new major version: 3.0. Highlights include safer defaults, live shard splitting, user-defined partitioned databases, support for ARM, smarter I/O queue & many more.

Opensource.builders

A community crowded-sourced list of open-source alternatives for your favorite apps.

Heroicons

A set of free MIT-licensed high-quality SVG icons for UI development.

dispatch

Dispatch is a new open-source tool by Netflix. It can help with all of the ad-hoc things you’re doing to manage incidents today. Dispatch can create resources, assemble participants, send out notifications, track tasks, and assist with post-incident reviews.

google/gops

gops is a command to list and diagnose Go processes currently running on your system.

Veniqa

Veniqa was originally a New York based fashion retail startup. The business failed, but the tech platform that powered Veniqa is now open-sourced as a 100% customizable framework. Veniqa is a Full Stack E-Commerce Solution, built using Node.js, Express.js, Vue.js, MongoDB.

Guides & Tutorials πŸŽ“

Using BPF to Transform SSH Sessions into Structured Events

This is a very good example of what BPF, or Berkeley Packet Filter, can mean for troubleshooting. It shows the power of BPF to destructure an SSH session, showing each command executed (including obfuscated commands or executed shell-scripts).

Open source licenses: What, which, and why

I’m still confused about open-source licensing, I’m willing to bet I’m not alone. This is a long and worthwhile read of the boring parts of licensing though, giving you a good overview of the pro’s and con’s and the concepts like ‘copyleft’ vs. ‘copyright’.

In depth guide to running Elasticsearch in production

A really good guide introducing first the basics of Elasticsearch, but quickly covering the advanced topics like clusters, achieving quorum, adding/removing nodes, message routing & so much more. I wish I had a guide like this a few years ago …

Unix Toolbox

This document is a collection of Unix/Linux/BSD commands and tasks which are useful for IT work or for advanced users. This is a practical guide with concise explanations.

Host ASP.NET Core on Linux with Nginx

This guide explains setting up a production-ready ASP.NET Core environment on an Ubuntu 16.04 server

Prevent cronjobs from overlapping in Linux

It’s an unfortunate common problem on many systems: you have scheduled tasks defined in cronjobs and for some reason, they take longer to execute than anticipated. This eventually means that they start to overlap and run at the same time. This post shows some techniques you can use to prevent that overlap.

The Bash Hackers Wiki

This wiki is intended to hold documentation of any kind about GNU Bash. The main motivation was to provide human-readable documentation and information so users aren’t forced to read every bit of the Bash manpage - which can be difficult to understand.

The Art of Command Line

This repo is packed with wisdom on how to use the command line, how to get started and become a CLI ninja. Or master. You know, someone that really gets the CLI.

AWS VPC for Software Engineers

This was a nice read explaining the basic concepts of nomenclature of Virtual Private Cloud’s in AWS. It takes the basic concepts and explains them in nice & easy steps.

How to use Restricted Shell to limit user access to a Linux system

Learn how to prevent Linux users from executing certain commands and confining them to their home directory by employing rbash.



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.