Things I've learned, collected in simonw/til. You may also enjoy my blog.
Browse by topic: ab 1 · amplitude 1 · asgi 1 · auth0 2 · aws 8 · awslambda 1 · azure 1 · bash 11 · caddy 1 · chrome 1 · clickhouse 2 · cloudflare 3 · cloudrun 8 · cocktails 3 · cookiecutter 2 · cooking 1 · cosmopolitan 1 · css 2 · datasette 18 · deno 3 · digitalocean 1 · discord 1 · django 17 · docker 9 · duckdb 3 · electron 6 · exif 1 · firefox 1 · fly 10 · gis 4 · git 6 · github 15 · github-actions 27 · go 1 · google 2 · google-sheets 1 · googlecloud 6 · gpt3 11 · graphql 3 · hacker-news 1 · heroku 3 · homebrew 6 · html 4 · http 1 · httpx 1 · ics 1 · imagemagick 2 · javascript 16 · jinja 3 · jq 8 · json 3 · jupyter 1 · kubernetes 2 · linux 4 · llms 14 · machinelearning 1 · macos 23 · markdown 3 · mastodon 4 · mediawiki 1 · midjourney 1 · misc 2 · networking 2 · nginx 1 · node 1 · npm 4 · observable 1 · observable-plot 2 · overture-maps 1 · pixelmator 1 · playwright 1 · pluggy 1 · postgresql 6 · presenting 1 · purpleair 1 · pyodide 1 · pypi 2 · pytest 19 · python 59 · quarto 1 · readthedocs 7 · reddit 1 · selenium 2 · service-workers 1 · shot-scraper 5 · spatialite 4 · sphinx 4 · sql 5 · sqlite 52 · svg 1 · tailscale 1 · tesseract 1 · twitter 3 · typescript 1 · valtown 1 · vega 1 · vim 1 · vscode 2 · web-components 1 · webassembly 2 · webauthn 1 · wikipedia 1 · yaml 1 · zeit-now 2 · zsh 2
I was putting together some notes for a talk I gave, and I wanted an efficient way to create screenshots of specific moments in a video of that talk. …
I wanted the ability to paste the image on my clipboard into a command in the macOS terminal. …
Today I learned how to install tools from GitHub that are written in Go, using github.com/icholy/semgrepx as an example: …
In the README for monolith (a new Rust CLI tool for archiving HTML pages along with their images and assets) I spotted this tip for using Chrome in headless mode to execute JavaScript and output the resulting DOM: …
There's a story going around at the moment that people have found code from their private GitHub repositories in the AI training data known as The Stack, using this search tool: https://huggingface.co/spaces/bigcode/in-the-stack …
I want to try using QuickJS compiled to WebAssembly in a browser as a way of executing untrusted user-provided JavaScript in a sandbox. …
I found myself wanting to compare the version numbers 0.63.1
, 1.0
and the 1.0a13
in Python code, in order to mark a pytest
test as skipped if the installed version of Datasette was pre-1.0. …
I had to run this site on til.simonwillison.org
for 24 hours due to a domain registration mistake I made. …
Today I learned about this: …
I wanted to send out a small batch of follow-up emails for workshop attendees today, and I realized that since I have their emails in a database table I might be able to semi-automate the process. …
JSR is a brand new package repository for "modern JavaScript and TypeScript", launched on March 1st by the Deno team as a new alternative to npm …
I continue to collect ways of tracking the history of a table of data stored in SQLite - see sqlite-history for previous experiments. …
Val Town is a neat service for hosting short server-side JavaScript programs online - reminiscent of a combination of Glitch and Observable Notebooks. …
This issue by Parand Darugar pointed out that Datasette doesn't currently run on Linux systems with FIPS enabled, due to the way it uses MD5 hashes. …
I recently noticed that the router in our garage was providing around 900 Mbps if I plugged my laptop directly into it via an Ethernet cable, but that speed fell to around 80Mbps (less than 1/10th that speed) elsewhere in our house. …
Here's a trick I've used a couple of times in the past few days. …
Newly created GitHub repositories come with a default set of labels. I have several labels I like to add on top of these. The most important is research, which I use for issues that are tracking my notes on a research topic relevant to the repository. …
I've been trying to get my head around ColBERT. …
My LLM tool has a feature where you can set a LLM_OPENAI_SHOW_RESPONSES
environment variable to see full debug level details of any HTTP requests it makes to the OpenAI APIs. …
I published a package to PyPI today using their Trusted Publishers mechanism for the first time. …
While parsing a CSV file using csv.DictReader
today I noticed the following surprising result: …
In the Playwright tests for datasette-cluster-map I wanted to assert that two markers had been displayed on a Leaflet map. …
I wanted to include some example Python tests in the Datasette documentation - but since they were tests, I also wanted to execute them as part of my test suite to make sure they worked correctly. …
I really like Playwright for writing automated tests for web applications using a headless browser. It's pretty easy to install and run, and it works well in GitHub Actions. …
To my surprise, if you setup a Cloudflare caching proxy in front of a website it won't cache HTML pages by default, even if they are served with cache-control:
headers. …
The goal: run Varnish in a Fly container as a caching proxy in front of another Fly application. …
I'm trying a new thing: a private daily planner, where each day I note down my goals for the day and make notes on my progress towards them as the day progresses. …
Steampipe build software that lets you query different APIs directly from SQL databases. …
My iPhone has a weird bug: I can no longer re-arrange the app icons on the home screen (or in the dock) by dragging them around on my phone. It lets me get into edit mode (where the icons wiggle) and drag them around, but when I release they go back to where they came from. …
I grabbed a quote from a transcript of a snippet of a YouTube video today for my blog. …