<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: Beats</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/atom/beats/" rel="self"/><id>http://simonwillison.net/</id><updated>2026-10-18T23:43:09+00:00</updated><author><name>Simon Willison</name></author><entry><title>llm-tools-datasette 0.1.1</title><link href="https://github.com/simonw/llm-tools-datasette/releases/tag/0.1.1" rel="alternate"/><published>2026-10-18T23:43:09+00:00</published><updated>2026-10-18T23:43:09+00:00</updated><id>https://github.com/simonw/llm-tools-datasette/releases/tag/0.1.1</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/llm-tools-datasette/releases/tag/0.1.1"&gt;llm-tools-datasette 0.1.1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Expose Datasette instances to LLM as a tool&lt;/p&gt;</summary><category term="datasette"/><category term="llm"/></entry><entry><title>llm-echo 0.5</title><link href="https://github.com/simonw/llm-echo/releases/tag/0.5" rel="alternate"/><published>2026-10-18T23:16:16+00:00</published><updated>2026-10-18T23:16:16+00:00</updated><id>https://github.com/simonw/llm-echo/releases/tag/0.5</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/llm-echo/releases/tag/0.5"&gt;llm-echo 0.5&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Debug plugin for LLM providing an echo model&lt;/p&gt;</summary><category term="llm"/></entry><entry><title>House Sparrow, Eastern Gray Squirrel</title><link href="https://simonwillison.net/2026/Oct/17/sighting-409093726/" rel="alternate"/><published>2026-10-17T18:07:27+00:00</published><updated>2026-10-17T18:07:27+00:00</updated><id>https://simonwillison.net/2026/Oct/17/sighting-409093726/</id><summary type="html">&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/752117776/large.jpg" alt="House Sparrow"&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/752117545/large.jpg" alt="Eastern Gray Squirrel"&gt;&lt;/p&gt;&lt;p&gt;House Sparrow, Eastern Gray Squirrel, in Philadelphia Center City, PA, US&lt;/p&gt;</summary></entry><entry><title>web-edit 0.1a2</title><link href="https://github.com/simonw/web-edit/releases/tag/0.1a2" rel="alternate"/><published>2026-10-17T13:16:49+00:00</published><updated>2026-10-17T13:16:49+00:00</updated><id>https://github.com/simonw/web-edit/releases/tag/0.1a2</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/web-edit/releases/tag/0.1a2"&gt;web-edit 0.1a2&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Web app for editing files in a folder&lt;/p&gt;</summary><category term="projects"/><category term="pelican-riding-a-bicycle"/><category term="deepseek"/></entry><entry><title>Chirp Pong</title><link href="https://tools.simonwillison.net/chirp-pong" rel="alternate"/><published>2026-10-15T19:47:52+00:00</published><updated>2026-10-15T19:47:52+00:00</updated><id>https://tools.simonwillison.net/chirp-pong</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/chirp-pong"&gt;Chirp Pong&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Chirp Pong is a two-player paddle game where two phones pair and exchange the ball over sound, using each device's speaker and microphone instead of Wi-Fi or Bluetooth. The page offers a duel mode that pairs two phones through a chirp handshake and a practice mode against a CPU opponent, with selectable match lengths of 7, 11, or 15 points.&lt;/p&gt;</summary><category term="game-design"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="claude-code"/></entry><entry><title>LaTeX renderer</title><link href="https://tools.simonwillison.net/latex" rel="alternate"/><published>2026-10-15T02:07:28+00:00</published><updated>2026-10-15T02:07:28+00:00</updated><id>https://tools.simonwillison.net/latex</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/latex"&gt;LaTeX renderer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;LaTeX renderer turns LaTeX source into a rendered view, either a single display equation typeset by MathJax or a full document or prose fragment typeset by faster-latex, with a live preview beside the editor and a toolbar switch between Edit and Rendered views. Source can be typed, loaded from a URL or GitHub Gist, or picked from built-in examples, and the page keeps the LaTeX in the URL fragment so it can be shared as a readable or compressed link.&lt;/p&gt;</summary><category term="latex"/><category term="paul-ford"/><category term="tools"/><category term="urls"/><category term="ai"/><category term="generative-ai"/><category term="llms"/></entry><entry><title>Tree Appreciator</title><link href="https://tools.simonwillison.net/tree-appreciator" rel="alternate"/><published>2026-10-14T21:23:01+00:00</published><updated>2026-10-14T21:23:01+00:00</updated><id>https://tools.simonwillison.net/tree-appreciator</id><summary type="html">&lt;p&gt;&lt;a href="https://tools.simonwillison.net/tree-appreciator"&gt;Tree Appreciator&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Tree Appreciator is a slow spot-the-difference game in which each round grows two 3D trees from one seed and asks the player to find a handful of small differences between them, such as a missing bough, a visiting bird, or an early-turning branch. Players tap a difference in either tree to notice it, can use limited hints and drag or zoom to view the trees from different angles, and earn appreciation points, leaves and herbarium entries for each pair completed.&lt;/p&gt;</summary><category term="game-design"/><category term="javascript"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="claude"/><category term="vibe-coding"/><category term="three-js"/></entry><entry><title>llm-gemini 0.35</title><link href="https://github.com/simonw/llm-gemini/releases/tag/0.35" rel="alternate"/><published>2026-10-13T22:28:54+00:00</published><updated>2026-10-13T22:28:54+00:00</updated><id>https://github.com/simonw/llm-gemini/releases/tag/0.35</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/llm-gemini/releases/tag/0.35"&gt;llm-gemini 0.35&lt;/a&gt;&lt;/p&gt;&lt;p&gt;LLM plugin to access Google's Gemini family of models&lt;/p&gt;</summary><category term="google"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="llm"/><category term="gemini"/><category term="llm-pricing"/><category term="pelican-riding-a-bicycle"/><category term="llm-release"/></entry><entry><title>web-edit 0.1a1</title><link href="https://github.com/simonw/web-edit/releases/tag/0.1a1" rel="alternate"/><published>2026-10-13T01:40:05+00:00</published><updated>2026-10-13T01:40:05+00:00</updated><id>https://github.com/simonw/web-edit/releases/tag/0.1a1</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/web-edit/releases/tag/0.1a1"&gt;web-edit 0.1a1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Web app for editing files in a folder&lt;/p&gt;</summary><category term="profiling"/><category term="projects"/></entry><entry><title>llm-meta-ai 0.2</title><link href="https://github.com/simonw/llm-meta-ai/releases/tag/0.2" rel="alternate"/><published>2026-10-12T23:58:46+00:00</published><updated>2026-10-12T23:58:46+00:00</updated><id>https://github.com/simonw/llm-meta-ai/releases/tag/0.2</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/llm-meta-ai/releases/tag/0.2"&gt;llm-meta-ai 0.2&lt;/a&gt;&lt;/p&gt;&lt;p&gt;LLM plugin for the Meta AI API&lt;/p&gt;</summary><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="meta"/><category term="pelican-riding-a-bicycle"/><category term="llm-release"/></entry><entry><title>Brewer's Blackbird, California Brown Pelican, Heermann's Gull</title><link href="https://simonwillison.net/2026/Oct/12/sighting-407944575/" rel="alternate"/><published>2026-10-12T21:41:25+00:00</published><updated>2026-10-12T21:41:25+00:00</updated><id>https://simonwillison.net/2026/Oct/12/sighting-407944575/</id><summary type="html">&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/749775729/large.jpg" alt="Brewer&amp;#x27;s Blackbird"&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/749775534/large.jpg" alt="California Brown Pelican"&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/749775312/large.jpg" alt="Heermann&amp;#x27;s Gull"&gt;&lt;/p&gt;&lt;p&gt;Brewer&amp;#x27;s Blackbird, California Brown Pelican, Heermann&amp;#x27;s Gull, in Pescadero State Beach, CA, US&lt;/p&gt;</summary></entry><entry><title>Profiling web-edit with Python 3.15: flame graphs and source heatmaps</title><link href="https://github.com/simonw/research/tree/main/python-3-15-web-edit-profiling#readme" rel="alternate"/><published>2026-10-12T16:58:00+00:00</published><updated>2026-10-12T16:58:00+00:00</updated><id>https://github.com/simonw/research/tree/main/python-3-15-web-edit-profiling#readme</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/research/tree/main/python-3-15-web-edit-profiling#readme"&gt;Profiling web-edit with Python 3.15: flame graphs and source heatmaps&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Profiling the unmodified web-edit app with Python 3.15’s built-in `profiling.sampling` revealed that mixed line-ending preservation dominated a busy editing workload: `preserve_endings` appeared in 64.8% of 15,296 recorded CPU stacks, with `SequenceMatcher.find_longest_match` contributing 38.3% of leaf samples. Sampling all threads was essential, since 95.1% of stacks came from AnyIO’s worker thread and would have been missed by a main-thread-only profile.&lt;/p&gt;</summary><category term="profiling"/><category term="python"/><category term="codex"/></entry><entry><title>web-edit 0.1a0</title><link href="https://github.com/simonw/web-edit/releases/tag/0.1a0" rel="alternate"/><published>2026-10-12T15:54:36+00:00</published><updated>2026-10-12T15:54:36+00:00</updated><id>https://github.com/simonw/web-edit/releases/tag/0.1a0</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/simonw/web-edit/releases/tag/0.1a0"&gt;web-edit 0.1a0&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Web app for editing files in a folder&lt;/p&gt;</summary><category term="projects"/><category term="python"/><category term="ai"/><category term="tailscale"/><category term="generative-ai"/><category term="llms"/><category term="codex"/></entry><entry><title>datasette-ports 0.4</title><link href="https://github.com/datasette/datasette-ports/releases/tag/0.4" rel="alternate"/><published>2026-10-12T04:57:07+00:00</published><updated>2026-10-12T04:57:07+00:00</updated><id>https://github.com/datasette/datasette-ports/releases/tag/0.4</id><summary type="html">&lt;p&gt;&lt;a href="https://github.com/datasette/datasette-ports/releases/tag/0.4"&gt;datasette-ports 0.4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Find all currently running Datasette instances and list their ports&lt;/p&gt;</summary><category term="datasette"/></entry><entry><title>California Brown Pelican</title><link href="https://simonwillison.net/2026/Oct/11/sighting-407613216/" rel="alternate"/><published>2026-10-11T19:52:55+00:00</published><updated>2026-10-11T19:52:55+00:00</updated><id>https://simonwillison.net/2026/Oct/11/sighting-407613216/</id><summary type="html">&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/749092142/large.jpg" alt="California Brown Pelican"&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/749092207/large.jpg" alt="California Brown Pelican"&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="https://static.inaturalist.org/photos/749092265/large.jpg" alt="California Brown Pelican"&gt;&lt;/p&gt;&lt;p&gt;California Brown Pelican, in Pillar Point Harbor, CA, US&lt;/p&gt;</summary></entry></feed>