Simon Willison’s Weblog

Subscribe

March 2022

69 posts: 9 entries, 10 links, 2 quotes, 48 beats

March 14, 2022

Instantly create a GitHub repository to take screenshots of a web page

Visit Instantly create a GitHub repository to take screenshots of a web page

I just released shot-scraper-template, a GitHub repository template that helps you start taking automated screenshots of a web page by filling out a form.

[... 1,177 words]

March 15, 2022

Contributing to Complex Projects (via) Mitchell Hashimoto describes in detail his process for understanding and eventually contributing to a complex new codebase. I picked up a whole bunch of useful tips from this.

# 6:09 am / open-source, software-engineering, mitchell-hashimoto

Bugs in Hello World. If a Unix program attempts to send its standard output to /dev/full it should return an error code. Many classic “hello world” programs fail to correctly handle this case.

# 6:14 am / unix

typesplainer (via) A Python module that produces human-readable English descriptions of Python type definitions—also available as a web interface.

# 6:18 am / python, mypy

TIL Concatenating strings and newlines in Google Sheets — I was asked if there was a way to run [shot-scraper](https://github.com/simonw/shot-scraper) against a list of URLs in a Google Sheet.
Release datasette-hashed-urls 0.1a0 — Optimize Datasette performance behind a caching proxy
Release datasette-publish-vercel 0.12.1 — Datasette plugin for publishing data using Vercel

March 16, 2022

Release datasette-hashed-urls 0.2 — Optimize Datasette performance behind a caching proxy

March 17, 2022

Deno by example (via) Interesting approach to documentation: a big list of annotated examples illustrating the Deno way of solving a bunch of common problems.

# 1:02 am / documentation, deno

March 19, 2022

Weeknotes: Tildes not dashes, and the big refactor

After last week’s shot-scraper distractions with Playwright, this week I finally managed to make some concrete progress on the path towards Datasette 1.0.

[... 1,292 words]

TIL Async fixtures with pytest-asyncio — I wanted to use a fixture with `pytest-asyncio` that was itsef as `async def` function, so that it could execute `await` statements.

March 20, 2022

Release datasette 0.61a0 — An open source multi-tool for exploring and publishing data
Release datasette-publish-vercel 0.13 — Datasette plugin for publishing data using Vercel

March 21, 2022

TIL The simplest recursive CTE — I found this really simple recursive CTE useful for ensuring I understood how to write recursive CTEs.
TIL Counting SQLite virtual machine operations — When SQLite executes a query, it does so by executing a sequence of virtual machine operations.

March 22, 2022

TIL Using the GitHub Actions cache with npx and no package.json — Some of my repositories have GitHub Actions workflows that execute commands using `npx`, for example my [graphql-scraper](https://github.com/simonw/graphql-scraper) repo using `npx` to [install and run](https://github.com/simonw/help-scraper/blob/54ef9b1fa579dc2d3f68055ffdac9996fd6dae9c/.github/workflows/scrape.yml#L76-L80) the `get-graphql-schema` tool:
TIL Rewriting a repo to contain the history of just specific files — I wanted to start [a new git repository](https://github.com/simonw/graphql-scraper/tree/828a1efc4307cca6cd378c394c2d33eac2eceb52) containing just the history of two specific files from my [help-scraper repository](https://github.com/simonw/help-scraper).

March 23, 2022

Release datasette 0.61 — An open source multi-tool for exploring and publishing data
Release datasette 0.61.1 — An open source multi-tool for exploring and publishing data
Release datasette-hashed-urls 0.3 — Optimize Datasette performance behind a caching proxy
TIL Exporting and editing a Twitter Spaces recording — I hosted [a Twitter Spaces conversation](https://twitter.com/simonw/status/1504604448202518529) the other day. The recording is only available for 30 days afterwards, and I wanted to publish it elsewhere.

SQLite Happy Hour—a Twitter Spaces conversation about three interesting projects building on SQLite

Yesterday I hosted SQLite Happy Hour. my first conversation using Twitter Spaces. The idea was to dig into three different projects that were doing interesting things on top of SQLite. I think it worked pretty well, and I’m curious to explore this format more in the future.

[... 1,998 words]

March 24, 2022

Datasette 0.61: The annotated release notes

I released Datasette 0.61 this morning—closely followed by 0.61.1 to fix a minor bug. Here are the annotated release notes.

[... 1,465 words]

Release datasette-hashed-urls 0.3.1 — Optimize Datasette performance behind a caching proxy

DAOs are, I think, one of the best illustrations of the problem with a lot of these Web3 projects: They are trying to find technological solutions that will somehow codify very complex social structures. A lot of them also seem to operate under the assumption that everyone is acting in good faith, and that project members’ interests will generally align—a baffling assumption given the amount of bad actors in the crypto space.

Molly White

# 11:07 am / web3, molly-white

geoBoundaries. This looks useful: “The world’s largest open, free and research-ready database of political administrative boundaries.” Founded by the geoLab at William & Mary university, and released under a Creative Commons Attribution license that includes a requirement for a citation. File formats offered include shapefiles, GeoJSON and TopoJSON.

# 2:03 pm / gis, shapefiles, geojson

TIL Extracting web page content using Readability.js and shot-scraper — [Readability.js](https://github.com/mozilla/readability) is "A standalone version of the readability library used for Firefox Reader View".
Release datasette-hashed-urls 0.4 — Optimize Datasette performance behind a caching proxy

March 25, 2022

Release datasette-packages 0.1 — Show a list of currently installed Python packages
Release datasette-packages 0.1.1 — Show a list of currently installed Python packages

2022 » March

MTWTFSS
 123456
78910111213
14151617181920
21222324252627
28293031