Flux
Couleur d'accent
Quoting Rick Brewster

Quoting Rick Brewster

Direct2D has always been the biggest hurdle for Paint.NET on WINE, and it's clear that it will never be completed enough for Paint.NET's use. And I can't just "disable" the use of Direct2D. So, instead, Paint.NET now has an internal, from-scratch, clean-room reverse-engineered rewrite of Direct2D that it uses on WINE (triggered by using /wine). It lives in PaintDotNet.Windows.Direct2D1.Managed.dll. This was written by our good friend Claude, without whom this would NOT have been possible and…

Simon Willison's Weblog
Digital Sovereignty Is Written in PHP

Digital Sovereignty Is Written in PHP

Germany is spending €108 million to move its federal websites onto a PHP application. The money is the budget for the eleventh version of the Government Site Builder, the German federal administration's standard content management solution: €26.88 million for product development and support, €73.2 million for migration and relaunch, €8 million for operations, phased over four years. More than 80 federal agencies and institutions already use it, and they have built well over 250 websites with…

The PHP Foundation
Claude Fable 5.1 made me a really nice animated pelican

Claude Fable 5.1 made me a really nice animated pelican

Today is Claude Fable (and Mythos) 5.1 day. Anthropic say that Fable 5.1 "sets a new standard for coding, knowledge work, and long-running problem-solving tasks". Their announcement spends a notable amount of time on scientific research, boasting of a 52.6% score on the brand new Terminal-Bench-Science 0.1 benchmark (first announced on August 27th), up from 24.7% for Fable 5, 29.0% for Opus 5 and 22.4% for GPT-5.6 Sol. Other benchmarks show slightly improved scores, but none as impressive as…

Simon Willison's Weblog
Codex bundles LibreOffice

Codex bundles LibreOffice

I was poking around in my ~/.cache/ folder using OmniDiskSweeper when I spotted something interesting. The OpenAI Codex desktop app (since rebranded to just ChatGPT) has 1.7GB of stuff in there in a folder called codex-primary-runtime, including a full Python installation, a full Node.js installation, and native binaries for Poppler, git, and the LibreOffice open source office suite (which forked from OpenOffice.org in 2010): The…

Simon Willison's Weblog
Microsoft Teams Notifications Are Now Available in Socket

Microsoft Teams Notifications Are Now Available in Socket

Today, we’re excited to add Microsoft Teams as a notification channel in Socket. Security and engineering teams can now send organization alerts and supply chain attack campaign notifications directly to the Teams channels they already monitor, with filters that control exactly which events reach each destination. When Socket finds something that needs attention, teams shouldn’t have to keep another dashboard open to find out. Microsoft Teams notifications bring relevant security activity into…

Socket
GeoJSON Map Viewer

GeoJSON Map Viewer

Tool: GeoJSON Map Viewer I was helping Natalie gather some maps of local political boundaries (for the Granada Community Services District and the Midcoast Community Council) and found a need to display some GeoJSON files on a map and export that as a PNG. I asked GPT-5.6-Sol for suggestions of tools and it proactively built one. After some iterations using Claude Code for web and Fable 5.1 we got to this finished tool. As for the GeoJSON.. it turns out if you ask ChatGPT Work to provide…

Simon Willison's Weblog
datasette-mcp 0.2

datasette-mcp 0.2

Release: datasette-mcp 0.2 "rows" from execute_sql is now an array of objects. Previously it was an array of arrays. This should help weaker models avoid losing track of which positional array element maps to which column. #1 Now depends on mcp>=2.1.1. This is the first non-alpha release of the plugin. I'm confident it's ready as I've been using it quite a bit myself. Tags: datasette, model-context-protocol

Simon Willison's Weblog
Python 3.15.0 candidate 2 is here!

Python 3.15.0 candidate 2 is here!

Python 3.15.0 candidate 2 is here! Hugo van Kemenade (release manager for Python 3.14 and 3.15) announces the final release candidate for Python 3.15, scheduled for release in October: Entering the release candidate phase, only reviewed code changes which are clear bug fixes are allowed between this release candidate and the final release. [...] We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.15 during this phase, and publish Python 3.15 wheels…

Simon Willison's Weblog
pnpm 12’s Rust Rewrite Cuts Install Times by Up to 90%

pnpm 12’s Rust Rewrite Cuts Install Times by Up to 90%

pnpm 12 is now stable, replacing the package manager’s Node.js and TypeScript foundation with a Rust rewrite while preserving the commands, settings, and lockfile format used by pnpm 11. Early results from a large production monorepo show install times falling by as much as 90%, although a dispute over flawed and outdated package manager benchmarks has complicated broader claims about where pnpm now ranks against Bun and other rivals. Released August 26, pnpm 12 is designed to be a major…

Socket
Roman Pronskiy Leaves The PHP Foundation Board and Brent Roose Joins

Roman Pronskiy Leaves The PHP Foundation Board and Brent Roose Joins

The PHP Foundation is excited to announce the addition of Brent Roose from JetBrains to the Foundation's Board of Directors. Brent fills the JetBrains Platinum Sponsor seat and was unanimously voted to join by the existing members. Brent is a developer advocate for PHP at JetBrains, but he is also a writer, content creator, event organizer, community leader, and open source contributor. He is a well-recognized voice on PHP Annotated, maintains an active blog at stitcher.io, and is the creator…

The PHP Foundation
Introducing wrapture

Introducing wrapture

Introducing wrapture New from Graham Dumpleton (of wrapt, mod_wsgi, and New Relic's Python agent fame), who describes Wrapture as taking the monkeypatching ideas from wrapt and extending them to apply to testing and tracing at the same time. Wrapture (full documentation here) makes it easy to wrap any function or method such that all access can be traced, or can be overridden to return a different value. It acts as both an alternative to unittest.mock and a way to implement tracing against an…

Simon Willison's Weblog
6 AppSec CTOs Debate Open Source Supply Chain Security at Black Hat

6 AppSec CTOs Debate Open Source Supply Chain Security at Black Hat

Socket CTO Ahmad Nassri recently sat down with five other AppSec leaders on The Secure Disclosure podcast for an unfiltered discussion on the state of software supply chain security. Hosting six competing CTOs and security researchers in one room provided a candid look at how upstream threats are evolving, the operational limits of package registries, and why commercial threat intelligence siloing leaves engineering teams exposed. A few of the highlights: Vulnerabilities vs. Active Malicious…

Socket
Esc