Simon Willison's Weblog
- Author
- Simon Willison
- Public lists
-
Featured
- Fetched
datasette-showboat 0.1a2
Release: datasette-showboat 0.1a2
I added an option to export a Markdown file from my app that lets Showboat incrementally publish updates to a remote server.
Quoting Richard Fontana
FWIW, IANDBL, TINLA, etc., I don’t currently see any basis for concluding that chardet 7.0.0 is required to be released under the LGPL. AFAIK no one including Mark Pilgrim has identified persistence of copyrightable expressive material from earlier versions in 7.0.0 nor has anyone articulated some viable alternate theory of license violation. [...]
— Richard Fontana, LGPLv3 co-author, weighing in on the chardet relicensing situation
Tags: open-source, ai-ethics, llms, ai, generative-ai, ai-assisted-programming
Vibe coding SwiftUI apps is a lot of fun
We Rewrote JSONata with AI in a Day, Saved $500K/Year
We Rewrote JSONata with AI in a Day, Saved $500K/Year
Bit of a hyperbolic framing but this looks like another case study of vibe-porting, this time spinning up a new custom Go implementation of the JSONata JSON expression language - similar in focus to jq, and heavily associated with the Node-RED platform.As with other vibe-porting projects the key enabling factor was JSONata's existing test suite, which helped build the first working Go version in 7 hours and $400 of token spend.
The Reco team then used a shadow deployment for a week to run the new and old versions in parallel to confirm the new implementation exactly matched the behavior of the old one.
Tags: go, json, ai, generative-ai, llms, agentic-engineering
My minute-by-minute response to the LiteLLM malware attack
Quantization from the ground up
datasette-llm 0.1a2
Release: datasette-llm 0.1a2
actoris now available to thellm_prompt_contextplugin hook. #2
datasette-files-s3 0.1a1
Release: datasette-files-s3 0.1a1
A backend for datasette-files that adds the ability to store and retrieve files using an S3 bucket. This release added a mechanism for fetching S3 configuration periodically from a URL, which means we can use time limited IAM credentials that are restricted to a prefix within a bucket.
Thoughts on slowing the fuck down
datasette-llm 0.1a1
LiteLLM Hack: Were You One of the 47,000?
LiteLLM Hack: Were You One of the 47,000?
Daniel Hnyk used the BigQuery PyPI dataset to determine how many downloads there were of the exploited LiteLLM packages during the 46 minute period they were live on PyPI.They also identified 2,337 packages that depended on LiteLLM - 88% of which did not pin versions in a way that would have avoided the exploited version.
Via @hnykda
Tags: packaging, pypi, python, security, supply-chain
Auto mode for Claude Code
Package Managers Need to Cool Down
Quoting Christopher Mims
I really think "give AI total control of my computer and therefore my entire life" is going to look so foolish in retrospect that everyone who went for this is going to look as dumb as Jimmy Fallon holding up a picture of his Bored Ape
— Christopher Mims, Technology columnist at The Wall Street Journal
Malicious litellm_init.pth in litellm 1.82.8 — credential stealer
Streaming experts
Quoting Neurotica
datasette-files 0.1a2
Release: datasette-files 0.1a2
The most interesting alpha of datasette-files yet, a new plugin which adds the ability to upload files directly into a Datasette instance. Here are the release notes in full:
- Columns are now configured using the new column_types system from Datasette 1.0a26. #8
- New
file_actionsplugin hook, plus ability to import an uploaded CSV/TSV file to a table. #10- UI for uploading multiple files at once via the new documented JSON upload API. #11
- Thumbnails are now generated for image files and stored in an internal
datasette_files_thumbnailstable. #13
Tags: annotated-release-notes, datasette
Quoting David Abram
Beats now have notes
Last month I added a feature I call beats to this blog, pulling in some of my other content from external sources and including it on the homepage, search and various archive pages on the site.
On any given day these frequently outnumber my regular posts. They were looking a little bit thin and were lacking any form of explanation beyond a link, so I've added the ability to annotate them with a "note" which now shows up as part of their display.
Here's what that looks like for the content I published yesterday:

I've also updated the /atom/everything/ Atom feed to include any beats that I've attached notes to.
Tags: atom, blogging, site-upgrades
Starlette 1.0 skill
Research: Starlette 1.0 skill
See Experimenting with Starlette 1.0 with Claude skills.
Tags: starlette
PCGamer Article Performance Audit
Research: PCGamer Article Performance Audit
Stuart Breckenridge pointed out that PC Gamer Recommends RSS Readers in a 37MB Article That Just Keeps Downloading, highlighting a truly horrifying example of web bloat that added up to 100s more MBs thanks to auto-playing video ads. I decided to have Claude Code for web use Rodney to investigate the page - prompt here.
Tags: web-performance, rodney
JavaScript Sandboxing Research
Research: JavaScript Sandboxing Research
Aaron Harper wrote about Node.js worker threads, which inspired me to run a research task to see if they might help with running JavaScript in a sandbox. Claude Code went way beyond my initial question and produced a comparison of isolated-vm, vm2, quickjs-emscripten, QuickJS-NG, ShadowRealm, and Deno Workers.
Tags: sandboxing, javascript, nodejs, claude-code
DNS Lookup
Tool: DNS Lookup
TIL that Cloudflare's 1.1.1.1 DNS service (and 1.1.1.2 and 1.1.1.3, which block malware and malware + adult content respectively) has a CORS-enabled JSON API, so I had Claude Code build me a UI for running DNS queries against all three of those resolvers.
Tags: dns, cors, cloudflare
Merge State Visualizer
Tool: Merge State Visualizer
Bram Cohen wrote about his coherent vision for the future of version control using CRDTs, illustrated by 470 lines of Python.
I fed that Python (minus comments) into Claude and asked for an explanation, then had it use Pyodide to build me an interactive UI for seeing how the algorithms work.
Tags: vcs, pyodide, bram-cohen, crdt