Sign up

Simon Willison's Weblog

Not verified No WebSub updates Supports Webmention Not yet validated

Author
Simon Willison
Public lists
davewiner/hackerNewsStars Featured
Fetched

Simon Willison's Weblog Supports Webmention

datasette-agent 0.1a4

Release: datasette-agent 0.1a4

Taking advantage of the new makeJumpSections() JavaScript plugin hook added in Datasette 1.0a30, datasette-agent now presents this "Start a new agent chat" interface as part of the Jump to menu, any time you hit /:

Animated demo - this time the demo starts on agent.datasette.io and when the menu opens it has a new Start chat box below the search box - entering 'count entries' and hitting the button causes it to start an agent conversation that counts the number of entries and returns 3300.

You can try this out by signing into agent.datasette.io using your GitHub account.

Tags: datasette, datasette-agent

Simon Willison's Weblog Supports Webmention

datasette-fixtures 0.1a0

Release: datasette-fixtures 0.1a0 One of the smaller features in Datasette 1.0a30 is this: New documented datasette.fixtures.populate_fixture_database(conn) helper for creating the fixture database tables used by Datasette's own tests, intended for plugin test suite...

Simon Willison's Weblog Supports Webmention

Mad House — Usborne Creepy Computer Games

Tool: Mad House — Usborne Creepy Computer Games

Via Hacker News I learned that UK publisher Usborne published free PDFs of their 1980s Computer Books, some of which I remember working through on my Commodore 64 as a child.

These were so great! Beautifully illustrated books with fun projects made up of code you could type into your own machine.

I remember playing "Mad House" typed in from the 1983 book "Creepy Computer Games", so I fed that PDF into Claude and had it build an interactive version of that game in JavaScript and HTML:

Build a vanilla JS artifact that exactly recreates the game Mad House from this book, make sure it's mobile friendly and has a suitable retro aesthetic

Credit the book title and link to https://usborne.com/us/books/computer-and-coding-books

Screenshot of a retro green-on-black terminal-style game interface titled "MAD HOUSE — A REAL NIGHTMARE —" with a REC indicator, FOOTSTEPS 240, DOORS counter, three rows of ASCII corridors made of asterisks with ">" and "<" door markers, "PRESS START TO BEGIN" text, NEAR DOOR controls (X and C) and FAR DOOR controls (N and M), and a "▶ START / RESTART" button at the bottom.

Tags: computer-history, games, tools

Simon Willison's Weblog Supports Webmention

Quoting Armin Ronacher

The most frustrating failure mode right now is that people submit issues that are not in their own voice. They contain an observed problem somewhere, but it has been thrown into a clanker and the clanker reworded it and made a huge mess of it. Typically, it was prompted so ...

Simon Willison's Weblog Supports Webmention

On the <dl>

On the <dl>

I learned a few new-to-me things about the <dl> element from this article by Ben Meyer:
  1. A <dt> can be followed by multiple <dd>
  2. You can optionally group the <dt> and <dd> elements in a <div> for styling - but only a <div>.
  3. You can label them using ARIA.
  4. They've been called "description lists", not "definition lists", since an HTML5 draft in 2008.

So this is valid:

<h2 id="credits">Credits</h2>
<dl aria-labelledby="credits">
  <div>
    <dt>Author</dt>
    <dd>Jeffrey Zeldman</dd>
    <dd>Ethan Marcotte</dd>
  </div>
</dl>

Here's a useful note from Adrian Roselli on screen reader support for description lists.

Via Hacker News

Tags: css, html, screen-readers, web-standards

Simon Willison's Weblog Supports Webmention

The memory shortage is causing a repricing of consumer electronics

The memory shortage is causing a repricing of consumer electronics David Oks provides the clearest explanation I've seen yet of why consumer products that use memory are likely to get significantly more expensive over the next few years. The short version is that memory manu...

Simon Willison's Weblog Supports Webmention

pydantic-monty investigation

Research: pydantic-monty investigation

It's been a few months since I last poked at Monty, the sandboxed subset of Python implemented in Rust. I had Claude Code look at the most recent release.

Importantly the max_duration_secs, max_memory, max_allocations, and max_recursion_depth settings all appear to work as advertised.

Tags: python, sandboxing, pydantic

Simon Willison's Weblog Supports Webmention

FTC to Require Cox Media Group, Two Other Firms to Pay Nearly $1 Million to Settle Charges They Deceived Customers About “Active Listening” AI-Powered Marketing Service

FTC to Require Cox Media Group, Two Other Firms to Pay Nearly $1 Million to Settle Charges They Deceived Customers About “Active Listening” AI-Powered Marketing Service Back in 2024 Cox Media Group were caught trying to sell advertisers packages based on "active listening", ...

Simon Willison's Weblog Supports Webmention

Datasette Agent

We just announced the first release of Datasette Agent, a new extensible AI assistant for Datasette. I've been working on my LLM Python library for just over three years now, and Datasette Agent represents the moment that LLM and Datasette finally come together. I'm really e...

Simon Willison's Weblog Supports Webmention

datasette-agent-sprites 0.1a0

Release: datasette-agent-sprites 0.1a0

A Datasette Agent plugin for running commands in a Fly Sprites sandbox.

Tags: sandboxing, datasette, fly, datasette-agent

Simon Willison's Weblog Supports Webmention

datasette-agent-charts 0.1a2

Release: datasette-agent-charts 0.1a2

  • "View SQL query" buttons below rendered charts.

Tags: datasette, datasette-agent

Simon Willison's Weblog Supports Webmention

datasette-agent 0.1a3

Release: datasette-agent 0.1a3

  • "View SQL query" buttons for both visible tables and collapsed SQL result tool calls.
  • Don't display empty reasoning chunks
  • Improved handling of truncated responses - table still displays to the user even if the SQL results were truncated when showing the agent.

See Datasette Agent, an extensible AI assistant for Datasette.

Tags: datasette, datasette-agent

Simon Willison's Weblog Supports Webmention

datasette-agent-charts 0.1a1

Release: datasette-agent-charts 0.1a1

  • More color! Bar and waffle charts without a color column are shaded by magnitude with a sequential color scheme; color columns holding text values use the observable10 categorical scheme. #2
  • Now checks execute-sql permission before running the query to find the column names.
  • Charts now display interactive tooltips.
  • Fixed a bug where waffleY charts were not described to the agent.

Tags: datasette, datasette-agent

Simon Willison's Weblog Supports Webmention

Quoting SpaceX S-1

We have the ability to use compute resources to support our proprietary AI applications (such as Grok 5, which is currently being trained at COLOSSUS II), while also providing access to select compute capacity to third-party customers. For example, in May 2026, we entered into Cloud Services Agreements with Anthropic PBC (“Anthropic”), an AI research and development public benefit corporation, with respect to access to compute capacity across COLOSSUS and COLOSSUS II. Pursuant to these agreements, the customer has agreed to pay us $1.25 billion per month through May 2029, with capacity ramping in May and June 2026 at a reduced fee. The agreements may be terminated by either party upon 90 days’ notice.

SpaceX S-1, highlights mine

Tags: anthropic, grok, generative-ai, ai, llms

Simon Willison's Weblog Supports Webmention

How fast is 10 tokens per second really?

How fast is 10 tokens per second really?

Neat little HTML app by Mike Veerman (source code here) which simulates LLM token output speeds from 5/second to 800/second.

Useful if you see a model advertised as "30 tokens/second" and want to get a feel for what that actually looks like.

Via Hacker News

Tags: ai, generative-ai, llms

Simon Willison's Weblog Supports Webmention

Google I/O, Gemini Spark, Antigravity

It's hard to find much to write about Google I/O this year because I have a policy of not writing about anything that I can't try out myself, and a lot of the big announcements are "coming soon". I actually prefer to write about things that are in general availability, becau...

Simon Willison's Weblog Supports Webmention

llm-gemini 0.32

Release: llm-gemini 0.32

See also my notes on Gemini 3.5 Flash, and the pelican I drew using this upgrade to the plugin.

Tags: gemini, llm

Simon Willison's Weblog Supports Webmention

datasette-llm-accountant 0.1a4

Release: datasette-llm-accountant 0.1a4

Tags: llm, datasette

Simon Willison's Weblog Supports Webmention

llm-gemini 0.32a0

Release: llm-gemini 0.32a0

  • Compatible with llm>=0.32a0 alpha - adds the ability to stream reasoning tokens.

Tags: gemini, llm

Simon Willison's Weblog Supports Webmention

datasette-llm 0.1a8

Release: datasette-llm 0.1a8

  • Fix for bug where llm_prompt_context() hook did not fully collect chains of responses. #7

Simon Willison's Weblog Supports Webmention

Gemini 3.5 Flash: more expensive, but Google plan to use it for everything

Today at Google I/O, Google released Gemini 3.5 Flash. This one skipped the -preview modifier and went straight to general availability, and Google appear to be using it for a whole lot of their key products: 3.5 Flash is available today to billions of people globally: For...

Simon Willison's Weblog Supports Webmention

The last six months in LLMs in five minutes

I put together these annotated slides from my five minute lightning talk at PyCon US 2026, using the latest iteration of my annotated presentation tool. # I presented this lightning talk at PyCon US 2026, attempting to summarize the last six months of developments ...

Simon Willison's Weblog Supports Webmention

Glaucous-winged Gull, Brown Pelican, Snowy Egret, Canada Goose

Glaucous-winged Gull, Brown Pelican, Snowy Egret, Canada Goose, in Los Angeles River, CA, US I'm heading home from PyCon US today so I went on a last morning walk to try and spot a pelican. I saw one! Didn't get a great photo of that, but I did see some goslings down by the swan boat lake.

Simon Willison's Weblog Supports Webmention

GDS weighs in on the NHS's decision to retreat from Open Source

GDS weighs in on the NHS's decision to retreat from Open Source Terence Eden continues his coverage of the NHS' poorly considered decision to close down access to their open source repositories in response to vulnerabilities reported to them as part of Project Glasswing. Now...

Simon Willison's Weblog Supports Webmention

Warelay -> OpenClaw

In preparation for a lightning talk I'm giving at PyCon US this afternoon I decided to figure out how many names OpenClaw has actually had since that first commit back in November. Thanks to this first_line_history.py tool (code here) the answer, according to the Git history...

Simon Willison's Weblog Supports Webmention

Quoting Julia Evans

[...] in the last 10 years I’ve learned to really love and respect CSS as a technology.

So I decided years ago that I wanted to react to “CSS is hard” by getting better at CSS and taking it seriously as a technology, instead of devaluing it. Doing that changed everything for me: I learned that so many of my frustrations (“centering is impossible”) had been addressed in CSS a long time ago, and that also what “centering” means is not always straightforward and it makes sense that there are many ways to do it. CSS is hard because it’s solving a hard problem!

Julia Evans, Moving away from Tailwind, and learning to structure my CSS

Tags: css, julia-evans

Simon Willison's Weblog Supports Webmention

Western Gull, Rock Pigeon

Western Gull, Rock Pigeon, in Los Angeles Area (custom), CA, US I went for a bird walk in the morning before PyCon, and we spotted a local seagull enjoying a Starbucks.

Simon Willison's Weblog Supports Webmention

inaturalist-clumper 0.1

Release: inaturalist-clumper 0.1

Part of the infrastructure I use for publishing my iNaturalist sightings on my blog. I've been running this in production for a few weeks now, inspiring some iterations on how it works, so I decided to ship a 0.1 release.

You can see an example of the output in this JSON file.

Tags: projects, inaturalist

Simon Willison's Weblog Supports Webmention

datasette-llm-limits 0.1a0

Release: datasette-llm-limits 0.1a0

This plugin works in conjunction with datasette-llm and datasette-llm-accountant to let you configure a per-user (or global) spending limit for LLM usage inside of Datasette. Configuration looks something like this:

plugins:
  datasette-llm-limits:
    limits:
      per-user-daily:
        scope: actor
        window: rolling-24h
        amount_usd: 1.00

Tags: llm, datasette

Simon Willison's Weblog Supports Webmention

QR code generator

Tool: QR code generator

Claude helped me build this tool for creating QR codes, for both text/URLs and for connecting to WiFi networks.

Screenshot of a QR code generator web form. Heading "QR code generator" with subtitle "Create a scannable code for a URL, text, or WiFi network." A segmented toggle shows "URL / text" and "WiFi" with WiFi selected. Below are fields: "Network name (SSID)" with placeholder "My WiFi"; "Password" with placeholder "Password" and a blue "Show" link; "Security" dropdown set to "WPA / WPA2 / WPA3 (most common)"; an unchecked "Hidden" checkbox; helper text "Not sure? Leave it on WPA / WPA2 / WPA3 — that covers almost every home WiFi network." Below that: "Style" dropdown set to "Square", an unchecked "Border" checkbox, "Size" dropdown set to "Medium", and a "Color" swatch showing black. At the bottom is a blue "Generate QR code" button.

Tags: vibe-coding, tools, generative-ai, ai, llms