cron.weekly issue #118: goals, PHP, Go, Awk, CoreOS & 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, January 26, 2020

Follow me on Twitter as @mattiasgeniar

Hi everyone! 👋

Welcome to cron.weekly issue #118.

I’ve had a busy week and as a result, this is a slightly smaller issue. If you’re ever working on a new open source project or tutorial, do feel free send a link my way - I love to include your links in the newsletter!

Enjoy your Sunday! ☕️

News & general 🗞

PHP in 2020

It’s no secret among web developers and programmers in general: PHP doesn’t have the best reputation. Some cool new things are coming to PHP!

Go’s Tooling is an Undervalued Technology

Regardless of your opinions of the Go programming language, the primary implementation of Go, gc, is an incredible piece of software engineering.

Rust has been Stack Overflow’s most loved language for four years in a row, indicating that many of those who have had the opportunity to use Rust have fallen in love with it. However, the roughly 97% of survey respondents who haven’t used Rust may wonder, “What’s the deal with Rust?”

Why Learn AWK?

Because of the arcane syntax? Because other languages can’t do the job? Can’t you already do everything with sed and grep? This post makes some good arguments as to why awk is valuable to learn.

[C++ coroutines] Initial implementation pushed to master

This could eventually bring Go-style coroutines (aka: concurrency within the code) to C++.

Stop using ridiculously low DNS TTLs

DNS latency is a key component to having a good online experience. And in order to minimize DNS latency, carefully picking DNS servers and anonymization relays play an important role. But the best way to minimize latency is to avoid sending useless queries to start with.

Why exposing ~/.ssh/ on your webserver is a bad idea

Who’d have thought, right?

Tools & Projects 🛠

testssl.sh 3.0

A new major release of the testssl.sh command, that allows you to test TLS/SSL encryption anywhere on any port. This release includes support for TLS 1.3 and a lot of new (small) features.

goals

Goals is a new tool called which generalizes make. It deals with the shortcomings of make to make it more powerful.

Playwright

Playwright is a Node library to automate the Chromium, WebKit and Firefox browsers. This includes support for the new Microsoft Edge browser, which is based on Chromium. Playwright is similar to Puppeteer, but has support for more browsers than just Chrome.

Terminal Phase

Terminal Phase is a space shooter game you can play in your terminal.

TLDR pages

I’ve mentioned TLDR pages before, but it’s worth repeating: a community effort to simplify the beloved man pages with practical examples.

Pi-hole 5.0 beta

I don’t usually like promoting beta releases, but since Pi-Hole is my favorite ad-blocker at home I want to give this some special attention. New features include deep CNAME inspection, per-client blocking & the move to a database instead of plain text files for the white- and blacklists.

HonSSH

HonSSH is designed to be used in conjunction with a high interaction honeypot. HonSSH sits between the attacker and the honey pot and creates two separate SSH connections.

Fedora CoreOS

Fedora CoreOS is a new Fedora Edition built specifically for running containerized workloads securely and at scale. It’s the successor to both Fedora Atomic Host and CoreOS Container Linux.

Guides & Tutorials 🎓

How to remove all history from a GitHub repository

From time to time you may need to remove all history from a GitHub repository, for instance right before releasing a package.

Scaling Uber’s Apache Hadoop Distributed File System for Growth

Three years ago, Uber Engineering adopted Hadoop as the storage (HDFS) and compute (YARN) infrastructure for our organization’s big data analysis.

Dumping specific tables in MySQL using mysqldump

Here’s a small little trick when using mysqldump: you don’t have to dump an entire database, you can dump individual tables too.

How To Corrupt An SQLite Database File

An SQLite database is highly resistant to corruption. If an application crash, or an operating-system crash, or even a power failure occurs in the middle of a transaction, the partially written transaction should be automatically rolled back the next time the database file is accessed. However, there are some ways to corrupt a SQLite database - here’s how!

Running and Deploying Elasticsearch on Kubernetes

Some good step-by-step instructions with clear explanations on running your Elasticsearch on Kubernetes. If you haven’t played with any of these technologies, I wouldn’t recommend this approach though. :-)

Bring your monorepo down to size with sparse-checkout

git recently introduced an improved and experimental sparse-checkout feature allows users to restrict their working directory to only the files they care about. This is especially useful if your git status are very slow because your repo contains millions of files.

Big list of http static server one-liners

Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at localhost:8000.

There’s more than one way to write an IP address

Most of us write our IP addresses the way we’ve been taught, a long time ago: 127.0.0.1, 10.0.2.1, … but that gets boring after a while, doesn’t it? Now you can do things like ping 127.1 or ping 0 too!

Specify a specific SSH private key for git pull/git clone

I’ve been moving some projects around lately and found myself in need of a weird thing I hadn’t considered before: specifying a specific SSH private key for running things like git clone or git pull.



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.