Packaging a Python CLI tool for Homebrew
2024-05-24
I finally figured out how to package [Datasette](https://github.com/simonw/datasette) for installation with Homebrew. My package was accepted into ...
722 words
|
4 minutes
Running Datasette on Replit
2024-05-22
I figured out how to run Datasette on https://replit.com/
147 words
|
1 minute
Rewriting a Git repo to remove secrets from the history
2024-05-22
I decided to make a GitHub repository public today that had previously been private. Unfortunately the revision history of that repository included...
590 words
|
3 minutes
Using the Fly Docker registry
2024-05-21
[Fly.io](https://fly.io/) lets you deploy Docker containers that will be compiled as a Firecracker VM and run in locations around the world.
408 words
|
2 minutes
Extracting objects recursively with jq
2024-05-21
The Algolia-powered Hacker News API returns nested comment threads that look like this: https://hn.algolia.com/api/v1/items/27941108
261 words
|
1 minute
Effective Podman Resource Management and Cleanup Strategies
2024-05-20
A comprehensive guide to efficiently managing and cleaning up Podman resources including containers, images, and volumes to maintain system performance and reclaim disk space.
1124 words
|
6 minutes
Pretty-printing all read-only JSON in the Django admin
2024-05-19
I have a bunch of models with JSON fields that are marked as read-only in the Django admin - usually because they're recording the raw JSON that wa...
172 words
|
1 minute
Enabling a gin index for faster LIKE queries
2024-05-18
I tried using a gin index to speed up `LIKE '%term%'` queries against a column.
216 words
|
1 minute
Scroll to text fragments
2024-05-17
I ran a Google search this morning for `s3-credentials simon willison` and when I clicked on the top result it jumped me to a highlighted snippet o...
384 words
|
2 minutes
Clone, edit and push files that live in a Gist
2024-05-15
GitHub [Gists](https://gist.github.com/) are full Git repositories, and can be cloned and pushed to.
128 words
|
1 minute
Ignoring errors in a section of a Bash script
2024-05-15
For [simonw/museums#32](https://github.com/simonw/museums/issues/32) I wanted to have certain lines in my Bash script ignore any errors: lines that...
171 words
|
1 minute
Deploying OpenSearch with Podman and Quadlet for Containerized Search at Scale
2024-05-15
A step-by-step guide to deploying OpenSearch using Podman and Quadlet for a lightweight, secure, and systemd-integrated search solution without Docker or Kubernetes.
1306 words
|
7 minutes
Programatically accessing Heroku PostgreSQL from GitHub Actions
2024-05-13
My [db-to-sqlite](https://github.com/simonw/db-to-sqlite) tool can connect to a PostgreSQL database, export all of the content and write it to a SQ...
243 words
|
1 minute
A simple two column CSS grid
2024-05-13
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...
833 words
|
4 minutes
Rendering Markdown with the GitHub Markdown API
2024-05-13
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...
317 words
|
2 minutes
Attaching a generated file to a GitHub release using Actions
2024-05-13
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...
215 words
|
1 minute
Turning on Jinja autoescaping when using Template() directly
2024-05-12
Jinja autoescaping is turned off by default. Coming from Django this frequently catches me out.
105 words
|
1 minute
Transferring a GitHub issue from a private to a public repository
2024-05-11
I have my own private `notes` repository where I sometimes create research threads. Occasionally I want to transfer these to a public repository to...
175 words
|
1 minute
How to run MediaWiki with SQLite on a macOS laptop
2024-05-11
Today I [got curious](https://twitter.com/simonw/status/1368414296888070146) about how MediaWiki records page history, so I started digging around ...
422 words
|
2 minutes
Local wildcard DNS on macOS with dnsmasq
2024-05-10
I wanted to get wildcard DNS running on my Mac laptop, for development purposes. I wanted `http://anything.mysite.lan/` to point to my localhost IP...
812 words
|
4 minutes
Getting Mastodon running on a custom domain
2024-05-10
This TIL is mainly a rehash of these two articles by Jacob and Andrew:
582 words
|
3 minutes
Running OpenSearch in Rootless Podman Containers - A Complete Guide
2024-05-10
A comprehensive guide to setting up and running OpenSearch in rootless Podman containers with proper security configuration and systemd integration.
489 words
|
2 minutes
HTML datalist
2024-05-10
A [Datasette feature suggestion](https://github.com/simonw/datasette/issues/1890) concerning autocomplete against a list of known values inspired m...
336 words
|
2 minutes
Building a Secure Service Mesh Without Kubernetes Using SPIFFE, SPIRE, and Cilium
2024-05-08
A comprehensive guide to implementing a zero-trust service mesh on Linux VMs without Kubernetes, using SPIFFE/SPIRE for identity management, Cilium for networking, and private DNS for service discovery.
1801 words
|
9 minutes