Simon Willison’s Weblog

Subscribe

Monday, 21st August 2023

TIL Updating stable docs in ReadTheDocs without pushing a release — I use [ReadTheDocs](https://readthedocs.org/) for several of my projects. It's fantastic: among other things, it makes it easy to publish the documentation for my latest `main` branch at `/latest/` and the documentation for my latest release at `/stable/` (as well as maintain archived tag URLs for every prior release).
Release llm 0.8 — Access large language models from the command-line
Release llm-openrouter 0.1 — LLM plugin for models hosted by OpenRouter
TIL Calculating the size of a SQLite database file using SQL — I learned this trick today while [browsing the code](https://github.com/tersesystems/blacklite/blob/main/blacklite-core/src/main/resources/com/tersesystems/blacklite/resources.properties) of [Blacklite](https://tersesystems.com/blog/2020/11/26/queryable-logging-with-blacklite/), a neat Java library for writing diagnostic logs to a SQLite database.

Queryable Logging with Blacklite (via) Will Sargent describes how he built Blacklite, a Java library for diagnostic logging that writes log events (as zstd compressed JSON objects) to a SQLite database and maintains 5,000 entries in a “live” database while entries beyond that range are cycled out to an archive.db file, which is cycled to archive.timestamp.db when it reaches 500,000 items.

Lots of interesting notes here on using SQLite for high performance logging.

“SQLite databases are also better log files in general. Queries are faster than parsing through flat files, with all the power of SQL. A vacuumed SQLite database is only barely larger than flat file logs. They are as easy to store and transport as flat file logs, but work much better when merging out of order or interleaved data between two logs.”

# 6:13 pm / java, logging, sqlite, zstd

Release datasette-publish-fly 1.3.1 — Datasette plugin for publishing data using Fly

If you visit (often NSFW, beware!) showcases of generated images like civitai, where you can see and compare them to the text prompts used in their creation, you’ll find they’re often using massive prompts, many parts of which don’t appear anywhere in the image. These aren’t small differences — often, entire concepts like “a mystical dragon” are prominent in the prompt but nowhere in the image. These users are playing a gacha game, a picture-making slot machine. They’re writing a prompt with lots of interesting ideas and then pulling the arm of the slot machine until they win… something. A compelling image, but not really the image they were asking for.

Sam Bleckley

# 7:38 pm / ai, stable-diffusion, generative-ai

When many business people talk about “AI” today, they treat it as a continuum with past capabilities of the CNN/RNN/GAN world. In reality it is a step function in new capabilities and products enabled, and marks the dawn of a new era of tech.

It is almost like cars existed, and someone invented an airplane and said “an airplane is just another kind of car - but with wings” - instead of mentioning all the new use cases and impact to travel, logistics, defense, and other areas. The era of aviation would have kicked off, not the “era of even faster cars”.

Elad Gil

# 8:32 pm / ai, generative-ai, llms

Release datasette-ripgrep 0.8.1 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-auth-tokens 0.4a1 — Datasette plugin for authenticating access using API tokens
Sunday, 20th August 2023
Tuesday, 22nd August 2023