Things I've learned, collected insimonw/til. You may also enjoymy blog.
Browse by topic:ab 1 ·amplitude 1 ·asgi 1 ·auth0 2 ·aws 9 ·awslambda 1 ·azure 1 ·bash 11 ·caddy 1 ·chrome 1 ·claude-code 1 ·clickhouse 2 ·cloudflare 8 ·cloudrun 8 ·cocktails 3 ·cookiecutter 2 ·cooking 1 ·cosmopolitan 1 ·css 3 ·datasette 18 ·deno 3 ·digitalocean 1 ·discord 1 ·django 19 ·docker 9 ·duckdb 3 ·electron 6 ·exif 1 ·firefox 1 ·fly 10 ·gis 4 ·git 8 ·github 17 ·github-actions 29 ·go 1 ·google 2 ·google-sheets 1 ·googlecloud 6 ·gpt3 11 ·graphql 3 ·hacker-news 1 ·ham-radio 1 ·heroku 3 ·homebrew 7 ·html 5 ·http 1 ·httpx 1 ·hugo 1 ·ics 1 ·imagemagick 2 ·ios 1 ·javascript 16 ·jinja 3 ·jq 8 ·json 3 ·jupyter 2 ·kubernetes 2 ·linux 4 ·llms 18 ·machinelearning 1 ·macos 26 ·markdown 3 ·mastodon 4 ·mediawiki 1 ·midjourney 1 ·misc 2 ·networking 2 ·nginx 1 ·node 1 ·npm 6 ·observable 1 ·observable-plot 2 ·overture-maps 1 ·pixelmator 1 ·playwright 2 ·pluggy 1 ·postgresql 7 ·presenting 1 ·purpleair 1 ·pyodide 1 ·pypi 2 ·pytest 23 ·python 65 ·quarto 1 ·readthedocs 7 ·reddit 1 ·selenium 2 ·service-workers 1 ·shot-scraper 5 ·spatialite 4 ·sphinx 4 ·sql 5 ·sqlite 55 ·svg 1 ·tailscale 2 ·tesseract 1 ·tiktok 1 ·twitter 4 ·typescript 1 ·valtown 1 ·vega 1 ·vim 1 ·vscode 2 ·web-components 1 ·webassembly 2 ·webauthn 1 ·wikipedia 1 ·yaml 1 ·youtube 1 ·zeit-now 2 ·zsh 2
Myblog was showing poor performance, with some pages taking several seconds to load or even failing entirely. …
Inspiredby Armin, I decided to figure out how to use the officialmicrosoft/playwright-mcp Playwright MCP server with Claude Code. …
One of our cameras takes raw photos in ORF format, which I believe stands for "Olympus Raw Format". Here's a recipe I found for converting them to JPEG on macOS: …
Microsoft recentlyreleased Edit, a new terminal text editor written in Rust. It's pretty nice - it's reminiscent ofnano
but with a retro MS DOS feel. …
I wanted to redirecthttps://global-power-plants.datasettes.com/ tohttps://datasette.io/ - I decided to spin up a Cloudflare Pages site to do the work. …
I usepytest-httpx in a bunch of my projects. Occasionally I run into test failures like this one, which can sometimes be really hard to figure out: …
I wrote a Python script,triggers.py, to help me understand what data is available to SQLite triggers for which operations. …
I figured out a minimal pattern for building a completely custom website using GitHub Actions and deploying the result to GitHub Pages. …
I've been experimenting with the HTMLdialog element recently, for example in myPrompts.js JavaScript library. …
I tried to getjupyterlab working viauv tool install
today and ran into some sharp edges. …
For an (ethical)scraping project I found that my low-volume scraper was working from my laptop but was being blocked by Cloudflare when I attempted to run it in GitHub Actions, presumably because the GitHub Actions IP range was disallowed. …
This is a three-quarters-baked experiment that I ran this morning. I'm interested in efficiently tracking which new files have been added to an S3 bucket, where that bucket could potentially hold millions of items. …
I figured out a really simple pattern for experimenting with new Python packages today: …
Whileworking on this issue I figured out a neat pattern for running the tests for my project locally against a specific Python version usinguv run: …
Rhet Turnbullshared thisshort script for looking up the named timezone for a given location from Python on macOS usingobjc
and theCoreLocation
framework. It uses theobjc
package andpyobjc-framework-CoreLocation. …
TikTok may or may not be banned in the USA within the next 24 hours or so. Here's a pattern you can use to download all of the videos from a specific account. …
I wanted to know how large thedeepseek-ai/DeepSeek-V3-Base repo on Hugging Face was without actually downloading all of the files. …
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. …
I was getting the following warning for one of my Python test suites: …
Here's what I learned about publishing a single file JavaScript package to NPM for myPrompts.js project. …
Mytools.simonwillison.net site is a growing collection of small HTML and JavaScript applications hosted as static files on GitHub Pages. …
I really likeCog (previously) as a tool for automating aspects of my Python project documentation - things like the SQL schemas shown on theLLM logging page. …
I was experimenting withwasmtime-py today and found thecurrent documentation didn't quite give me the information that I needed. …
If you ever run into instructions that tell you to do this: …
I finally figured out a process that works for me for hacking on Python CLI utilities usinguv to manage my development environment, thanks to a little bit of help from Charlie Marsh. …
I ranhttps://simonwillison.net/ throughPageSpeed Insights and it warned me that my static assets were not being served with browser caching headers: …
I'm still working towards adding multi-modal support to myLLM tool. In the meantime, here are notes on running prompts against images and PDFs and audio and video files from the command-line using theGoogle Gemini family of models. …
WithClaude's help I figured out what I think is the most basic version of a static site generated usingHugo. …
I live in El Granada, California. Wikipedia calls usa census designated place - we don't have a mayor or city council. But we do have aCommunity Services District - originally responsible for our sewers, and since 2014 also responsible for our parks. And we get to vote for the board membersin the upcoming November election! …
I managed to get my Homebrew installation back into shape today. The first problem I was having is that it complained that macOS Sequoia was unsupported: …