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)