cron.weekly issue #115: Nginx, Kernel, IPv6, Unicode, vim, falco & 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, December 22, 2019

Follow me on Twitter as @mattiasgeniar

Hi everyone!

This is the last issue for 2019, I’ll be taking a 2-week break to enjoy the Christmas holidays with my family and code some more on Oh Dear. I’ll be back on Sunday, January 12th, 2020.

As a special for this issue, I added a huge section at the bottom for a very scientific vote for the most impactful open source project of 2019. There were so many answers I just had to include them all.

I learned of a lot of new projects this way, I hope you do too! 🥳

News & general

Rambler will drop NGINX criminal case

Last week there was a lot of commotion about the lead developers of Nginx being arrested over a copyright claim by their former employer. The good thing about a weekly newsletter is that I get to wait a bit and just share the conclusions: it seems the criminal case is being dropped.

Amazon, Apple, Google, and the Zigbee Alliance to develop connectivity standard

If you’ve ever tried to make a “smart home” yourself, you’ll have noticed there are a lot of protocols available to do so. I was pleased to read that several major companies are making a true open source standard for allowing home devices to communicate with each other.

The history of MatterMost, the open source Slack alternative

A nice write-up of where Mattermost started, how it evolved and what the business model looks like for an open source communication & collaboration tool.

We are giving every IPv6 address a name

This is a cool project built KnotDNS to create a subdomain for each available IPv6 record, allowing you to issue HTTPS certificates for “IPv6 addresses” in your browser (or to easily share a link).

Hacking GitHub with Unicode’s dotless ‘i’.

From combining emoji marks and astral planes, Unicode is under appreciated and poorly understood. The importance of understanding Unicode extends beyond localization and diversity. Failing to understand Unicode may lead to vulnerabilities in your code.

The text adventure game of exiting a telnet session

We’ve all been there, right? You debug something, you try telnet to see if a port is open, and now you’re stuck in a telnet session.

“The database was on a 500TB DropBox instance”

I had fun reading this, up to the point where I don’t even care if it’s real or not, it was entertaining. 😄

Managing the Linux kernel at AWS: dealing with fallout from Spectre, Meltdown

This is an interview with the director of kernel and operating systems at AWS about how they handle the Spectre & Meltdown vulnerabilities at their scale.

Tools & Projects

PeculiarLog

Mac only: PeculiarLog is a lightweight log filtering tool supporting regular expressions and instant (as-you-type) results. It is designed to work with huge multi-gigabyte text files utilizing the power of Intel Hyperscan engine running on multiple CPU cores.

BitBar

Mac only: The BitBar app lets you put the output from any script or program right in your Mac OS X menu bar.

run

Do you find yourself using tools like make to manage non build-related scripts? Build tools are great, but they are not optimized for general script management. Run aims to be better at managing small scripts and wrappers, while incorporating a familiar make-like syntax with a Runfile.

rustysd

A minimal drop-in for (a subset of) the systemd init system in rust.

falco - an Open Source WebPageTest runner

Falco helps you monitor, analyze, and optimize your websites. You can automatically run audits multiple times a day in many conditions and see the evolution of key performance metrics to easily spot regressions.

zulip

Zulip combines the immediacy of real-time chat with an email threading model. With Zulip, you can catch up on important conversations while ignoring irrelevant ones.

huginn

Huginn is a system for building agents that perform automated tasks for you online. They can read the web, watch for events, and take actions on your behalf.

vim 8.2

Some cool new features landed in this release: pop-up windows and text properties. Both will help make vim an even better IDE. There’s also a vim game called killersheep to showcase the new features!

Guides & Tutorials

Linux 3.8 introduced unprivileged user namespaces (pdf)

This is a cool presentation given a few months ago that details how to use user namespaces in Linux, introduces the concepts of “capabilities” and how to use the different kinds of isolations.

An opinionated approach to writing (GNU) Makefiles

Your Makefiles are full of tabs and errors. This post offers an opinionated approach to writing (GNU) Makefiles and contains a lot of best practices and good tips on keeping your Makefiles maintainable.

Cracking LUKS/dm-crypt passphrases

This guide provides a lot of useful commands and tools on working with dm-crypt. The goal is to brute-force the passwords, but it’s a good primer on using dm-crypt in the first place and the tools that come with it.

“What’s been the one open source project this year that has completely changed the way you work?”

I asked this question on Twitter and got a ton of feedback. As this is the last issue of 2019, I want to include every project mentioned in that thread here.

It’s a long list, sorted by most commented to least mentioned. It go a higher-than-usual developer response, so many of these projects are definitely dev-focussed.

Anyhow, if you like these projects, go follow the people that mentioned them on Twitter. You probably have a lot in common!

(And if I had known how long I would spend gathering all the replies, I might have skipped it 😅)

tailwind css

Tailwind CSS is a highly customizable, low-level CSS framework. I use it myself on all my projects, including my blog, Oh Dear! and DNS Spy. It’s allowed a sysadmin like to me create decent looking websites (which is a true Christmas miracle)!

(Mentioned by @tomhermans, @robindirksen1, @WilfredLepelaar, @markvaneijk, @driesvints, @maxxscho, @Dbilovd, @DeBelserArne, @SimonDepelchin, @rasmuscnielsen, @orkhanahmadov, swapnilsarwe, @michaeldyrynda, ClaudioDekker, @peterbrinck, @jassehomar99)

Inertja.js

Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.

(Mentioned by @cdruc, @FreekMurze, @stefanbauerme, @markvaneijk, @SlyFireFox, @maxxscho, @orkhanahmadov, @scottzirkel, @matken75, @neilkeena, @DeanLJ)

nuxt.js

Nuxt is a progressive framework based on Vue. js to create modern web applications. It is based on Vue. The goal is to make web development powerful and performant with a great developer experience in mind.

(Mentioned by @joachimVT, @imsanjayahlawat, @dstewart1017)

Kubernetes

Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.

(Mentioned by @raqqun, @PeterJaap,_ @wim_vds)

gatsby

Build blazing fast, modern apps and websites with React.

(Mentioned by @rswebdesigner,_ @jody_lecompte_, @PeterJaap)

aws-cdk

The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code.

(Mentioned by @codeandskate, @stefanfreitag)

Laravel

A popular framework built on top of PHP with an with expressive, elegant syntax.

(Mentioned by @m1guelpf, @imsanjayahlawat)

docker

A standard in container land nowadays, Docker remains one of the most popular projects out there.

(Mentioned by @BlackIkeEagle, @Ruslyyusof)

Laravel Livewire

Livewire is a full-stack framework for Laravel that makes building dynamic front-ends as simple as writing vanilla PHP (literally).

(Mentioned by @WilfredLepelaar, @scholz_felix)

nextjs

Next.js is the React framework for server-rendered applications, static websites, and more.

(Mentioned by @wouterds, @jenssegers)

helm

Helm is a package manager for Kubernetes. Helm helps you manage Kubernetes applications - Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.

(Mentioned by @hassanajan)

Firefox

Firefox is a- oh come one, you know what this is. 😉

(Mentioned by @hanslombard)

emacs

A text editor for when vim isn’t complex enough.

(Mentioned by @TVN595_)

LitElement

LitElement makes it easy to define Web Components - ideal for sharing elements across your organization or building a UI design system.

(Mentioned by @jtteag)

operator-sdk

SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.

(Mentioned by @jeremyeder)

ko

ko is a tool for building and deploying Golang applications to Kubernetes.

(Mentioned by @AntoineCotten)

grafana

Grafana is an open source analytics & monitoring solution for every database.

(Mentioned by @cegonzalezspace)

Gitlab

Gitlab is a repository manager (like Github), a CI/CD runner, a secret store, … it’s a lot.

(Mentioned by @dnsmichi)

Linux

What was this Linux thing again?

(Mentioned by @tomassrnka)

MuseScore

MuseScore is an open source and free music notation software.

(Mentioned by @BrnVrn)

Munki

Munki is a set of tools that, used together with a webserver-based repository of packages and package metadata, can be used by macOS administrators to manage software installs on macOS client machines.

(Mentioned by @macvfx)

ngrok

ngrok is a reverse proxy that creates a secure tunnel from a public endpoint to a locally running web service.

(Mentioned by @whereismyjetpac)

direnv

direnv is an extension for your shell that allows you to load and unload environment variables depending on the current directory.

(Mentioned by @whereismyjetpac)

dokku

A docker-powered PaaS that helps you build and manage the lifecycle of applications.

(Mentioned by @hmhrex)

infection

Infection is a PHP Mutation Testing Framework.

(Mentioned by @DragonBe)

preactjs

A fast 3kB alternative to React with the same modern API.

(Mentioned by @davehurricane)

concourse ci

Concourse is an open-source continuous thing-doer.

(Mentioned by @analytically)

kubernetes kind

Kubernetes IN Docker - local clusters for testing Kubernetes.

(Mentioned by @mgeb)

asdf

asdf-vm is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one.

(Mentioned by @1stvamp)

spinaker

Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

(Mentioned by @jvanderhaeghe)

Github desktop

Focus on what matters instead of fighting with Git. Whether you’re new to Git or a seasoned user, GitHub Desktop simplifies your development workflow.

(Mentioned by @samushr)

vue.js

Vue is a progressive JavaScript framework for building user interfaces (and complements Laravel really well).

(Mentioned by @ale_codes)

snipe-it

Snipe-IT is a free, open source IT asset management system written in PHP.

(Mentioned by @louisdj_15)

nagios

Nagios provides enterprise-class Open Source IT monitoring, network monitoring, server and applications monitoring.

(Mentioned by @ASeemueller)

visual studio code

A powerful & extensible code editor. I’ve been using this for the last year as well and am very happy with it.

(Mentioned by @_dries_v)

fzf

fzf is a general-purpose command-line fuzzy finder.

(Mentioned by @CoeyerSteven)

psalm

Psalm is a static analysis tool that’s designed to improve large PHP codebases by identifying both obvious and hard-to-spot bugs.

(Mentioned by @nicolopigna)

roassal

Roassal is a visualization engine largely used within the Pharo community. Roassal is used to visualize any set of data. In particular, it is often used to visualize large software source code base to assess their internal quality.

(Mentioned by @alexbergel)

renovate

Automated dependency updates. You can run this as a scheduled Docker container on Gitlab.

(Mentioned by @JesseDobbelaere)

flutter

Google’s UI toolkit to build apps for mobile, web, & desktop from a single codebase.

(Mentioned by @SatzThi, @devinsays)

wpgraphql

Open Source WordPress plugin that brings the power of GraphQL to your WordPress site.

(Mentioned by @jasonbahl)

React Native

Create native apps for Android and iOS using React: React Native combines the best parts of native development with React, a best-in-class JavaScript library for building user interfaces.

(Mentioned by @martykokes)

captainhook

Easy to use and very flexible git hook manager for php developers.

(Mentioned by @shochdoerfer)

traccar

Traccar is the leading GPS tracking software. Vehicle and personal tracking. Self hosted and open source.

(Mentioned by @ssstofff)

TypeScript

TypeScript is a language for application-scale JavaScript development. It’s a typed superset of JavaScript that compiles to plain JavaScript.

(Mentioned by @KClarkADSTech)

patternlab

Pattern Lab helps you and your team build thoughtful, pattern-driven user interfaces using atomic design principles. Available for Node and PHP.

(Mentioned by @maedmaex)

opentelemetry

OpenTelemetry provides a single set of APIs, libraries, agents, and collector services to capture distributed traces and metrics from your application. You can analyze them using Prometheus, Jaeger, and other observability tools.

(Mentioned by @MichaelIngold)

OpenNebula

OpenNebula is a simple yet powerful and flexible turnkey open-source solution to build Private Clouds and manage Data Center virtualization based on KVM, LXD and VMware.

(Mentioned by @dakira)

Ansible

Config management, App deployment, orchestration, … all from one system. Ansible is simple, agentless automation that anyone can use.

(Mentioned by @dakira)

DroneCI

Drone is a self-service Continuous Delivery platform for busy development teams.

(Mentioned by @dakira)

Fedora Linux

Fedora Linux is a Linux distribution developed by the community-supported Fedora Project which is sponsored primarily by Red Hat. (Mentioned by @netsensei)



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.