Sign up

Jeff Geerling
Text • Jeff Geerling

DRAM pricing is killing the hobbyist SBC market

Today Raspberry Pi announced more price increases for all Pis with LPDDR4 RAM, alongside a 'right-sized' 3GB RAM Pi 4 for $83.75.

The price increases bring the 16GB Pi 5 up to $299.99.

Despite today's date, this is not a joke.

I published a video going over the state of the hobbyist 'high end SBC' market (4/8/16 GB models in the current generation), which I'll embed below:

But if you'd like the tl;dr:

Computer Things Supports Webmention
Text

April Cools Post: New York vs Chicago Pizza

Anil Dash Valid
Text

On the Vergecast, On Video

I finally got the chance to drop by one of my favorite podcasts, The Vergecast, where David Pierce had me on to talk about the recent conversation about Apple's moves around video podcasts, as well as the much broader big-picture considerations around keeping podcasts open. ...

Terrible Software
Text • Matheus Lima

Say the Thing You Want

If you want something at work, say it out loud. Your silence isn't saving you.

Xe Iaso's blog Valid
Text

Claude Code won April Fools Day this year

They gave people a heckin tamagochi, what's not to like?

Pluralistic: Daily links from Cory Doctorow
Audio • Cory Doctorow

Pluralistic: Trumpismo vs minilateralism (01 Apr 2026)

Today's links Trumpismo vs minilateralism: The enemy gets a vote. Hey look at this: Delights to delectate. Object permanence: My new sigfile is unstoppable; TBL on the future of the web (2006); Wonder Woman sweater pattern; Unpatchable drug cabinets; 50-building mural; DRM v ...

The Digital Antiquarian
Text • Jimmy Maher

The Mystery of Rennes-le-Château, Part 3: A Secret History

This series of articles chronicles the history, both real and pseudo, behind Gabriel Knight 3: Blood of the Sacred, Blood of the Damned. Henry Lincoln promised at the end of “The Priest, the Painter, and the Devil” that he would continue to investigate the case of François-Bérenger Saunière and Rennes-le-Château. He proved as good as […]

Simon Willison's Weblog Supports Webmention
Text

datasette-extract 0.3a0

Release: datasette-extract 0.3a0

  • This plugin now uses datasette-llm to configure and manage models. This means it's possible to specify which models should be made available for enrichments, using the new enrichments purpose.

Tags: llm, datasette

Simon Willison's Weblog Supports Webmention
Text

datasette-enrichments-llm 0.2a0

Release: datasette-enrichments-llm 0.2a0

  • This plugin now uses datasette-llm to configure and manage models. This means it's possible to specify which models should be made available for enrichments, using the new enrichments purpose.

Tags: llm, datasette

Simon Willison's Weblog Supports Webmention
Text

datasette-llm-usage 0.2a0

Release: datasette-llm-usage 0.2a0

  • Removed features relating to allowances and estimated pricing. These are now the domain of datasette-llm-accountant.
  • Now depends on datasette-llm for model configuration. #3
  • Full prompts and responses and tool calls can now be logged to thellm_usage_prompt_log table in the internal database if you set the new datasette-llm-usage.log_prompts plugin configuration setting.
  • Redesigned the /-/llm-usage-simple-prompt page, which now requires the llm-usage-simple-prompt permission.

Tags: llm, datasette

Simon Willison's Weblog Supports Webmention
Text

datasette-llm 0.1a5

Release: datasette-llm 0.1a5

  • The llm_prompt_context() plugin hook wrapper mechanism now tracks prompts executed within a chain as well as one-off prompts, which means it can be used to track tool call loops. #5

Tags: llm, datasette

Simon Willison's Weblog Supports Webmention
Text

Quoting Soohoon Choi

I want to argue that AI models will write good code because of economic incentives. Good code is cheaper to generate and maintain. Competition is high between the AI models right now, and the ones that win will help developers ship reliable features fastest, which requires simple, maintainable code. Good code will prevail, not only because we want it to (though we do!), but because economic forces demand it. Markets will not reward slop in coding, in the long-term.

Soohoon Choi, Slop Is Not Necessarily The Future

Tags: slop, ai-assisted-programming, generative-ai, agentic-engineering, ai, llms

Old Vintage Computing Research
Text ClassicHasClass

Mini-review: David Pogue's Apple: The First 50 Years

I almost never buy e-books, but I decided to spring for an electronic copy of David Pogue's Apple: The First 50 Years to see if I even wanted to bother with the hardcover. Previously the essential tome on Apple (and especially Mac) history was Owen Linzmeyer's Apple Confid...

Simon Willison's Weblog Supports Webmention
Text

Supply Chain Attack on Axios Pulls Malicious Dependency from npm

Supply Chain Attack on Axios Pulls Malicious Dependency from npm

Useful writeup of today's supply chain attack against Axios, the HTTP client NPM package with 101 million weekly downloads. Versions 1.14.1 and 0.30.4 both included a new dependency called plain-crypto-js which was freshly published malware, stealing credentials and installing a remote access trojan (RAT).

It looks like the attack came from a leaked long-lived npm token. Axios have an open issue to adopt trusted publishing, which would ensure that only their GitHub Actions workflows are able to publish to npm. The malware packages were published without an accompanying GitHub release, which strikes me as a useful heuristic for spotting potentially malicious releases - the same pattern was present for LiteLLM last week as well.

Via lobste.rs

Tags: javascript, security, npm, supply-chain

Simon Willison's Weblog Supports Webmention
Text

datasette-llm 0.1a4

Release: datasette-llm 0.1a4

I released llm-echo 0.3 to provide an API key testing utility I needed for the tests for this new feature.

Tags: llm, datasette

Simon Willison's Weblog Supports Webmention
Text

llm-all-models-async 0.1

Release: llm-all-models-async 0.1

LLM plugins can define new models in both sync and async varieties. The async variants are most common for API-backed models - sync variants tend to be things that run the model directly within the plugin.

My llm-mrchatterbox plugin is sync only. I wanted to try it out with various Datasette LLM features (specifically datasette-enrichments-llm) but Datasette can only use async models.

So... I had Claude spin up this plugin that turns sync models into async models using a thread pool. This ended up needing an extra plugin hook mechanism in LLM itself, which I shipped just now in LLM 0.30.

Tags: llm, async, python

Simon Willison's Weblog Supports Webmention
Text

llm 0.30

Release: llm 0.30

  • The register_models() plugin hook now takes an optional model_aliases parameter listing all of the models, async models and aliases that have been registered so far by other plugins. A plugin with @hookimpl(trylast=True) can use this to take previously registered models into account. #1389
  • Added docstrings to public classes and methods and included those directly in the documentation.

Tags: llm

Simon Willison's Weblog Supports Webmention
Text

llm-echo 0.4

Release: llm-echo 0.4

  • Prompts now have the input_tokens and output_tokens fields populated on the response.

Tags: llm

Simon Willison's Weblog Supports Webmention
Text

llm-echo 0.3

Release: llm-echo 0.3

Tags: llm

Anil Dash Valid
Text

Defending Privacy, Daily

Yesterday, I had the chance to witness someone who's one of the most dedicated, competent advocates for privacy and digital rights bring that message to a whole new platform. It turns out, it's pretty delightful, especially in a moment when our civil liberties and rights onl...