Example dashboard

Various statistics from my blog.

Owned by simonw, visibility: Public

Entries

2864

SQL query
select 'Entries' as label, count(*) as big_number from blog_entry

Blogmarks

6222

SQL query
select 'Blogmarks' as label, count(*) as big_number from blog_blogmark

Quotations

639

SQL query
select 'Quotations' as label, count(*) as big_number from blog_quotation

Chart of number of entries per month over time

SQL query
select '<h2>Chart of number of entries per month over time</h2>' as html
SQL query
select to_char(date_trunc('month', created), 'YYYY-MM') as bar_label,
count(*) as bar_quantity from blog_entry group by bar_label order by count(*) desc

Ten most recent blogmarks (of 6222 total)

SQL query
select '## Ten most recent blogmarks (of ' || count(*) || ' total)' as markdown from blog_blogmark
SQL query
select link_title, link_url, commentary, created from blog_blogmark order by created desc limit 10

10 rows

link_title link_url commentary created
s3-credentials 0.8 https://github.com/simonw/s3-credentials/releases/tag/0.8 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. 2021-12-07 07:04:35+00:00
Google Public DNS Flush Cache https://developers.google.com/speed/public-dns/cache Google Public DNS (8.8.8.8) have a flush cache page too. 2021-12-06 23:17:08+00:00
1.1.1.1/purge-cache https://1.1.1.1/purge-cache/ Cloudflare's 1.1.1.1 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. 2021-12-06 23:15:08+00:00
Centrifuge: a reliable system for delivering billions of events per day https://segment.com/blog/introducing-centrifuge/ 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. 2021-12-06 01:41:54+00:00
jc https://github.com/kellyjonbrazil/jc 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. 2021-12-05 23:05:11+00:00
100 years of whatever this will be https://apenwarr.ca/log/20211201 This piece by apenwarr defies summarization but I enjoyed reading it a lot. 2021-12-02 20:37:00+00:00
PHP 8.1 release notes https://www.php.net/releases/8.1/en.php 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. 2021-11-25 19:53:30+00:00
Introduction to heredocs in Dockerfiles https://www.docker.com/blog/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. 2021-11-22 17:01:18+00:00
Hurl https://github.com/Orange-OpenSource/hurl 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. 2021-11-22 03:32:33+00:00
Cookiecutter Data Science https://drivendata.github.io/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. 2021-11-18 15:21:59+00:00
Copy and export data

Duration: 8.17ms