Using ChatGPT Browse to name a Python package
2024-11-23
I needed a name for my new Python CLI tool.
1008 words
|
5 minutes
Git Identity Management and History Rewriting: Complete Guide
2024-11-22
A comprehensive guide to managing Git identities and rewriting commit history, including changing author information, handling multiple identities, and best practices for safe history manipulation.
1259 words
|
6 minutes
Complete Guide: Installing Ansible and Java 8 on Ubuntu 20.04
2024-11-22
A comprehensive guide for installing and configuring Ansible and Java 8 on Ubuntu 20.04, including setup for managed nodes, security best practices, and testing procedures.
1340 words
|
7 minutes
axe-core and shot-scraper for accessibility audits
2024-11-19
I just watched a talk by [Pamela Fox](https://www.pamelafox.org/) at [North Bay Python](https://2023.northbaypython.org/) on Automated accessibilit...
476 words
|
2 minutes
Listing files uploaded to Cloud Build
2024-11-15
Today while running `datasette publish cloudrun ...` I noticed the following:
162 words
|
1 minute
Breakfast tacos with eggs, vegetarian sausages and avocado sauce
2024-11-14
Ingredients (serves 2)
376 words
|
2 minutes
Running Python code in a Pyodide sandbox via Deno
2024-11-14
I continue to seek a solution to the Python sandbox problem. I want to run an untrusted piece of Python code in a sandbox, with limits on memory an...
842 words
|
4 minutes
Vega-Lite bar charts in the same order as the data
2024-11-11
I've been puzzling over this one for a couple of years now, and I finally figured out the solution.
188 words
|
1 minute
Writing tests with Copilot
2024-11-08
I needed to write a relatively repetitive collection of tests, for a number of different possible error states.
399 words
|
2 minutes
Creating desktop backgrounds using Midjourney
2024-11-04
I decided to create a new desktop background for my Mac using [Midjourney](https://midjourney.com/). My laptop has a 16:10 aspect ratio and a retin...
257 words
|
1 minute
Social media cards generated with shot-scraper
2024-11-03
My [TIL website](https://til.simonwillison.net/) has social media card images to make links shared from it look slightly more interesting when shar...
933 words
|
5 minutes
Understanding Kristofer Joseph's Single File Web Component
2024-11-02
[Via Brian LeRoux](https://twitter.com/brianleroux/status/1453472609518034944) I found [single-file-web-component.html](https://gist.github.com/kri...
384 words
|
2 minutes
Storing and serving related documents with openai-to-sqlite and embeddings
2024-11-01
I decide to upgrade the related articles feature on my TILs site. Previously I calculated these [using full-text search](https://til.simonwillison....
1562 words
|
8 minutes
GitHub OAuth for a static site using Cloudflare Workers
2024-10-30
My [tools.simonwillison.net](https://tools.simonwillison.net/) site is a growing collection of small HTML and JavaScript applications hosted as sta...
2012 words
|
10 minutes
Named Entity Resolution with dslim/distilbert-NER
2024-10-29
I was exploring the original BERT model from 2018, which is mainly useful if you fine-tune a model on top of it for a specific task.
252 words
|
1 minute
Using the ChatGPT streaming API from Python
2024-10-29
I wanted to stream the results from the ChatGPT API as they were generated, rather than waiting for the entire thing to complete before displaying ...
294 words
|
1 minute
Google Chrome --headless mode
2024-10-27
In the README for [monolith](https://github.com/Y2Z/monolith) (a new Rust CLI tool for archiving HTML pages along with their images and assets) I s...
599 words
|
3 minutes
Trying out the facebook/musicgen-small sound generation model
2024-10-26
Facebook's [musicgen](https://huggingface.co/facebook/musicgen-small) is a model that generates snippets of audio from a text description - it's ef...
153 words
|
1 minute
Reading thermometer temperatures over time from a video
2024-10-24
[Natalie](https://www.instagram.com/natbat.art/) has been experimenting with using a microwave as a kiln for pottery, specifically for [Raku](https...
1147 words
|
6 minutes
Using Playwright MCP with Claude Code
2024-10-24
Inspired [by Armin](https://simonwillison.net/2025/Jun/29/agentic-coding/), I decided to figure out how to use the official [microsoft/playwright-m...
335 words
|
2 minutes
Cloudflare redirect rules with dynamic expressions
2024-10-19
I wanted to ensure `https://niche-museums.com/` would redirect to `https://www.niche-museums.com/` - including any path - using Cloudflare.
186 words
|
1 minute
Running a gpt-oss eval suite against LM Studio on a Mac
2024-10-19
OpenAI's [gpt-oss models](https://github.com/openai/gpt-oss/) come with an eval suite, which is described in their [Verifying gpt-oss implementatio...
1219 words
|
6 minutes
Using GPT-3 to figure out jq recipes
2024-10-16
I like [jq](https://stedolan.github.io/jq/), but I always have to think pretty hard about how to construct the right syntax for it.
298 words
|
1 minute
Running prompts against images, PDFs, audio and video with Google Gemini
2024-10-15
I'm still working towards adding multi-modal support to my [LLM](https://llm.datasette.io/) tool. In the meantime, here are notes on running prompt...
1385 words
|
7 minutes