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 · ham-radio 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 24 · 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 scraped a pass on my Ham radio general exam today, on the second attempt (you can retake on the same day for an extra $15, thankfully). …
I asked on Twitter for tips about running Whisper transcriptions in the CLI on my Mac. Werner Robitza pointed me to Homebrew's whisper-cpp formula, and when I complained that it didn't have quite enough documentation for me to know how to use it Werner got a PR accepted adding the missing details. …
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. …