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.
What is Rust and why is it so popular?
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
.