A simple two column CSS grid
For my blog entry today [Now add a walrus: Prompt engineering in DALL-E 3](https://simonwillison.net/2023/Oct/26/add-a-walrus/) I wanted to display...
791 words
|
4 minutes
Rendering Markdown with the GitHub Markdown API
I wanted to convert the Markdown used in my TILs to HTML, using the exact same configuration as GitHub does. GitHub has a whole load of custom exte...
290 words
|
1 minute
Python packages with pyproject.toml and nothing else
I've been using `setuptools` and `setup.py` for my Python packages for a long time: I like that it works without me having to think about installin...
1392 words
|
7 minutes
Very basic tsc usage
I guess I [have to learn TypeScript](https://twitter.com/simonw/status/1302517496767938561) now.
339 words
|
2 minutes
List all columns in a SQLite database
Here's a devious trick for listing ALL columns in a SQLite database, using a SQL query that generates another SQL query.
424 words
|
2 minutes
Attaching a generated file to a GitHub release using Actions
For [Datasette Desktop](https://github.com/simonw/datasette-app) I wanted to run an action which, when I created a release, would build an asset fo...
202 words
|
1 minute
Testing a Click app with streaming input
For [sqlite-utils#364](https://github.com/simonw/sqlite-utils/issues/364) I needed to write a test for a [Click](https://click.palletsprojects.com/...
257 words
|
1 minute
Turning on Jinja autoescaping when using Template() directly
Jinja autoescaping is turned off by default. Coming from Django this frequently catches me out.
94 words
|
1 minute