The Normalization of Deviance in AI
Explores the 'Normalization of Deviance' concept in AI safety, warning against complacency with LLM vulnerabilities like prompt injection.
SimonWillison.net is the long-running blog of Simon Willison, a software engineer, open-source creator, and co-author of the original Django framework. He writes about Python, Django, Datasette, AI tooling, prompt engineering, search, databases, APIs, data journalism, and practical software architecture. The blog includes detailed notes from experiments, conference talks, and real projects. Readers will find clear explanations of topics such as LLM workflows, SQL patterns, data publishing, scraping, deployment, caching, and modern developer tooling. Simon also publishes frequent micro-posts and TIL entries that document small discoveries and tricks from day-to-day engineering work. The tone is practical and research oriented, making the site a valuable resource for anyone interested in serious engineering and open data.
213 articles from this blog
Explores the 'Normalization of Deviance' concept in AI safety, warning against complacency with LLM vulnerabilities like prompt injection.
A developer details implementing a dark mode toggle using CSS, media queries, localStorage, and tools like Claude Code and ImageMagick.
A retrospective on Let's Encrypt's 10-year impact, highlighting its growth to become the world's largest certificate authority and its role in securing the web.
Mistral AI releases Devstral 2 and Devstral Small 2, two new open models focused on powering coding agents and software development tasks.
An interview about Canada Spends, a project using Datasette, SQLite, and LLMs to make Canadian government financial data accessible and explorable.
Major tech companies launch the Agentic AI Foundation under the Linux Foundation to promote open, collaborative standards for AI agent development.
Analysis of Mistral AI's new open-source CLI coding agent 'Vibe', including its architecture, prompts, and a practical test.
A blog post analyzing a critical bug in Claude Code where a command accidentally deleted a user's home directory.
AI is predicted to bring formal verification tools like Dafny and Verus into mainstream use, aided by LLMs making them more accessible.
Analysis of why using DeprecationWarning for API deprecations in Python libraries often fails, citing the urllib3 incident.
Cory Doctorow critiques the AI industry's growth narrative, arguing it's based on replacing human jobs to enrich companies and investors.
Bryan Cantrill discusses applying Large Language Models (LLMs) at Oxide, evaluating them against the company's core values.
Tips from David Crespo on effectively using Claude Code for understanding codebases and automating tedious coding tasks.
Using Claude AI to accelerate decompilation of N64 games by automating the conversion of assembly code into human-readable C.
A blog post discussing the importance of speed in technology and work, referencing Daniel Lemire's insights on avoiding obsolescence.
Explores the new subtests feature in pytest 9.0.0, comparing it to parametrized tests for performance and flexibility.
A thoughtful comparison of the Go, Rust, and Zig programming languages, highlighting their shared lack of class-based OOP.
A manifesto advocating for AI-powered software that is personalized, private, and user-centric, moving beyond one-size-fits-all design.
Django 6.0 is released, featuring new background workers and template partials for improved web development.
Mitchell Hashimoto announces Ghostty terminal's transition to a non-profit structure to ensure trust and public benefit.