Simon Willison’s Weblog

Subscribe
Atom feed

Elsewhere

Filters: Sorted by date

TIL nullglob in bash — I ran into a tricky problem while working [on this issue](https://github.com/simonw/datasette-publish-fly/issues/17): the following line was behaving in an unexpected way for me:
None
Release datasette-publish-fly 1.1.1 — Datasette plugin for publishing data using Fly
Release datasette-tiddlywiki 0.2 — Run TiddlyWiki in Datasette and save Tiddlers to a SQLite database
TIL Enabling a user to execute a specific command as root without a password — I wanted a script running as a non-root user to be able to restart a systemd service on my Ubuntu machine without needing a password.
None
Release strip-hidden-form-values 0.2.1 — CLI tool for stripping hidden form values from an HTML document
Release strip-hidden-form-values 0.2 — CLI tool for stripping hidden form values from an HTML document
Release strip-hidden-form-values 0.1 — CLI tool for stripping hidden form values from an HTML document
TIL Annotated package.json for idb-keyval — Jake Archibald [pointed to](https://twitter.com/jaffathecake/status/1491771402294370306) his `package.json` for `idb-keyval` as a "modernish example" of NPM packaging on Twitter this morning.
None
Release datasette-publish-fly 1.1 — Datasette plugin for publishing data using Fly
Release datasette-auth-passwords 1.0 — Datasette plugin for authentication using passwords
Release datasette 0.60.2 — An open source multi-tool for exploring and publishing data
TIL Ordered group_concat() in SQLite — I was trying to use `group_concat()` to glue together some column values into a stiched together Markdown document. My first attempt looked like this:
None
Release sqlite-utils 3.23 — Python CLI utility and library for manipulating SQLite databases
Release datasette-leaflet-freedraw 0.3.1 — Draw polygons on maps in Datasette
TIL Testing against Python 3.11 preview using GitHub Actions — I decided to run my CI tests against the Python 3.11 preview, to avoid the problem I had when Python 3.10 came out with [a bug that affected Datasette](https://simonwillison.net/2021/Oct/9/finding-and-reporting-a-bug/).
None
TIL get-graphql-schema — The GraphQL schema language is a concise way to represent the available schema provided by a GraphQL endpoint. It looks something like this:
None
TIL Opt-in integration tests with pytest --integration — For both [s3-credentials](https://github.com/simonw/s3-credentials) and [datasette-publish-fly](https://github.com/simonw/datasette-publish-fly) I have a need for real-world integration tests that actually interact with the underlying APIs (AWS or Fly) to create and destroy resources on those platforms.
None
Release sqlite-utils 3.22.1 — Python CLI utility and library for manipulating SQLite databases
Release s3-credentials 0.10 — A tool for creating credentials for accessing S3 buckets
TIL Using the undocumented Fly GraphQL API — [Fly](https://fly.io/) has a GraphQL API which is used by some of their own tools - I found it while [browsing around their code](https://github.com/superfly/flyctl/blob/603b0adccf5416188eabaa7dc73f9c0ec88fa6ca/api/resource_volumes.go#L5-L40) on GitHub.
None
Release datasette 0.60.1 — An open source multi-tool for exploring and publishing data
TIL Linking from /latest/ to /stable/ on Read The Docs — [Read The Docs](https://readthedocs.org/) has a handy feature where documentation for older versions will automatically link to the latest release, for example [on this page](https://docs.datasette.io/en/0.56/spatialite.html):
None
TIL Promoting the stable version of the documentation using rel=canonical — I was thinking about documentation SEO today. Like many projects, Datasette offers multiple versions of the documentation:
None
TIL Pixel editing a favicon with Pixelmator — I wanted to [add a favicon](https://github.com/simonw/datasette/issues/1603) to Datasette, using a PNG image served from `/favicon.ico` as suggested in [this article by Adam Johnson](https://adamj.eu/tech/2022/01/18/how-to-add-a-favicon-to-your-django-site/).
None
TIL Helper function for pagination using AWS boto3 — I noticed that a lot of my boto3 code in [s3-credentials](https://github.com/simonw/s3-credentials) looked like this:
None
TIL json_extract() path syntax in SQLite — Several of the [SQLite JSON functions](), such as `json_extract()` and `json_array_length()`, take a path argument. This uses custom syntax along the lines of `$.a[2].b`, as described [in the documentation here](https://sqlite.org/json1.html#path_arguments).
None
Release s3-credentials 0.9 — A tool for creating credentials for accessing S3 buckets
TIL Streaming indented output of a JSON array — I wanted to produce the following output from a command-line tool:
None
TIL JavaScript date objects — A few notes on JavaScript `Date` object, based on trying to do some basic things with them in Observable notebooks.
None
TIL Configuring Dependabot for a Python project — GitHub's Dependabot can automatically file PRs with bumps to dependencies when new versions of them are available.
None