||The latest release of my s3-credentials CLI tool for creating S3 buckets with credentials to access them (with read-write, read-only or write-only policies) adds a new --public option for creating buckets that allow public access, such that anyone who knows a filename can download a file. The s3-credentials put-object command also now sets the appropriate Content-Type heading on the uploaded object.
|Google Public DNS Flush Cache
||Google Public DNS (184.108.40.206) have a flush cache page too.
||Cloudflare's 220.127.116.11 DNS service has a tool that anyone can use to flush a specific DNS entry from their cache - could be useful for assisting rollouts of new DNS configurations.
|Centrifuge: a reliable system for delivering billions of events per day
||From 2018, a write-up from Segment explaining how they solved the problem of delivering webhooks from thousands of different producers to hundreds of potentially unreliable endpoints. They started with Kafka and ended up on a custom system written in Go against RDS MySQL that was specifically tuned to their write-heavy requirements.
||This is such a great idea: jc is a CLI tool which knows how to convert the output of dozens of different classic Unix utilities to JSON, so you can more easily process it programmatically, pipe it through jq and suchlike. "pipx install jc" to install, then "dig example.com | jc --dig" to try it out.
|100 years of whatever this will be
||This piece by apenwarr defies summarization but I enjoyed reading it a lot.
|PHP 8.1 release notes
||PHP is gaining "Fibers" for lightweight cooperative concurrency - very similar to Python asyncio. Interestingly you don't need to use separate syntax like "await fn()" to call them - calls to non-blocking functions are visually indistinguishable from calls to blocking functions. Considering how much additional library complexity has emerged in Python world from having these two different colours of functions it's noteworthy that PHP has chosen to go in a different direction here.
|Introduction to heredocs in Dockerfiles
||This is a fantastic upgrade to Dockerfile syntax, enabled by BuildKit and a new frontend for executing the Dockerfile that can be specified with a #syntax= directive. I often like to create a standalone Dockerfile that works without needing other files from a directory, so being able to use <<EOF syntax to populate configure files from inline blocks of code is really handy.
||Hurl is "a command line tool that runs HTTP requests defined in a simple plain text format" - written in Rust on top of curl, it lets you run HTTP requests and then execute assertions against the response, defined using JSONPath or XPath for HTML. It can even assert that responses were returned within a specified duration.
|Cookiecutter Data Science
||Some really solid thinking in this documentation for the DrivenData cookiecutter template. They emphasize designing data science projects for repeatability, such that just the src/ and data/ folders can be used to recreate all of the other analysis from scratch. I like the suggestion to give each project a dedicated S3 bucket for keeping immutable copies of the original raw data that might be too large for GitHub.