- β
- β
- September 25, 2026
-
π 3Blue1Brown (YouTube) The Phone Number puzzle rss
Part of a monthly series of puzzles: https://momath.org/mindbenders/
-
π pydantic/monty v1.0.0 - 2026-09-25 release
What's Changed
- Drop the experimental framing ahead of v1 by @rewitt94 in #811
- Percent formatting:
'...' % fooandb'...' % barby @samuelcolvin in #825 - fix flakey js test by @samuelcolvin in #826
- Implement the
format()builtin by @samuelcolvin in #827 - Answer
date.today()/datetime.now()in standard execution by @rewitt94 in #812 - Implement remaining math aggregation functions and
fmaby @samuelcolvin in #831 - fix telemetry context propagation by @davidhewitt in #830
- Support
print(file=sys.stderr)by @rewitt94 in #818 - Finish
binasciiwith the uu, quoted-printable and CRC-16 conversions by @rewitt94 in #816 - Build Python 3.14t wheels by @Kludex in #832
- make it possible to run smoke test from npm by @davidhewitt in #619
- fix browser smoke test install by @samuelcolvin in #844
- Move examples-only Python deps out of the dev group by @samuelcolvin in #849
- Match CPython for int/float arithmetic on long ints and float pow overflow by @samuelcolvin in #834
- Make the
examplesdependency group opt-in by @samuelcolvin in #852 - CWD support by @samuelcolvin in #828
- Add a watchdog for the CPython side of test cases and deflake
lookup__mutation.pyby @samuelcolvin in #854 - Accept long ints across
pow(),round()and themathmodule by @samuelcolvin in #853 - Eager awaits by @samuelcolvin in #833
- Better
casefoldand other case methods compatibility by @samuelcolvin in #857 - Deps update by @samuelcolvin in #859
- Add the remaining
itertoolscallables barteeby @samuelcolvin in #860 - Revert itertools by @samuelcolvin in #861
- Support runtime definition of types like
tuple[int, str]anddict | dictby @samuelcolvin in #858 - Implement the
sysconstants with a known value by @samuelcolvin in #863 - Support attribute and subscript targets in unpacking by @samuelcolvin in #865
- Add the antigravity example, running Monty in the browser by @samuelcolvin in #864
- Fix re-entrant source windows in
chain,pairwiseandaccumulateby @rewitt94 in #843 - Missing
itertoolsmethods by @samuelcolvin in #862 - Add a regression test for the trailing-slash symlink escape by @samuelcolvin in #868
- Add the
randommodule and anos.urandomhost call by @samuelcolvin in #867 - Add the
copymodule by @rewitt94 in #791 - Check container growth against the memory limit before it allocates by @rewitt94 in #845
- Follow-ups for
datetimeby @rewitt94 in #838 - Fix two container-reentrancy panics by @rewitt94 in #846
- don't make static strings a requirement for dump stability by @davidhewitt in #810
- establish tampered snapshots as permitted: garbage in garbage out by @davidhewitt in #873
- Fix async task scheduling for batched host failures by @flyingmutant in #875
- Give each callable type its own
PyTrait::py_callby @rewitt94 in #878 - Flat layout for wire value type by @samuelcolvin in #871
- Serialize dumps after the header in place, without a second buffer by @samuelcolvin in #881
- Shrink the largest dag decode bench to fit the decode budget by @samuelcolvin in #883
- remove needless
SOFT_LIMITvariable frommonty-allocby @davidhewitt in #763 - Add
time.time(),time.sleep()andasyncio.sleep()by @samuelcolvin in #866 - expose otel trace context from snapshots by @davidhewitt in #885
- purge
pool-architecture.mdby @davidhewitt in #887 - Replace session
max_durationwith feed and turn limits by @rewitt94 in #880 - add a general solution for wire decoding budgets by @davidhewitt in #874
- try to hide object internals by @davidhewitt in #886
- fix merge conflict by @davidhewitt in #891
- Comment and documentation fixes by @rewitt94 in #888
- Sort
StaticStringsalphabetically by @rewitt94 in #889 - Change
DumpErrorfor future compatibility by @rewitt94 in #890 - Implement
eval(),exec()andlocals()by @samuelcolvin in #855 - Auto OS calls by @samuelcolvin in #892
- Use sleep and random in the antigravity example by @samuelcolvin in #897
- Timezone support by @samuelcolvin in #898
- Poll the time limit in large three-argument pow by @samuelcolvin in #899
- Reject overlapping host directories at mount registration by @samuelcolvin in #741
- Extend
timemodule by @samuelcolvin in #901 - Replace wire types with whitelist of allowed types, and proxy for everything else by @samuelcolvin in #900
- Rename
AutoOsCallstoOsPolicyby @samuelcolvin in #902 - Resolve exception classes directly and model them inbound by @samuelcolvin in #905
- Describe Monty as a sandbox and name the open-source form "OSS Monty" by @samuelcolvin in #904
- Uprev
ruff, pre-check source by @samuelcolvin in #906 - Bump to v1.0.0-beta.1 by @samuelcolvin in #903
- bump to b2, fix
monty-proto's self dev-dependency by @samuelcolvin in #908 - Switch dumps to use
CBORinstead ofpostcardby @samuelcolvin in #913 - Give hot dumped types one-letter serde names by @samuelcolvin in #922
- Report the source position of every suspension by @samuelcolvin in #909
- Bump version to v1.0.0-beta.3 by @samuelcolvin in #927
- Classify a heap type for
copyin one place by @rewitt94 in #894 - Move builtin class attribute lookup into
Type::class_getattrby @rewitt94 in #910 - Round-trip
BuiltinFunctionthrough napi by @rewitt94 in #911 - Docs fixes by @samuelcolvin in #929
- Fix compile-time panic for lambda with nested comprehension by @rewitt94 in #925
- Build the type checker lazily, charging it to the worker baseline by @samuelcolvin in #928
- Add session IDs, forking, ephemeral sessions and auto-resume by @samuelcolvin in #933
- reduce gap between browser WASM and Node implementations by @davidhewitt in #665
- Prepare v1.0.0 π by @samuelcolvin in #936
New Contributors
- @Kludex made their first contribution in #832
- @flyingmutant made their first contribution in #875
Full Changelog :
v0.0.23...v1.0.0 -
π HexRaysSA/plugin-repository commits sync repo: +1 plugin, +5 releases rss
sync repo: +1 plugin, +5 releases ## New plugins - [patching-ng](https://github.com/mahmoudimus/patching) (0.3.0) ## New releases - [augur](https://github.com/0xdea/augur): 0.10.2 - [ida-mcp](https://github.com/hexrayssa/ida-mcp): 20260924.0.3, 20260924.0.2, 20260924.0.1 -
π Filip Filmar Fuchsia Internals, Vol. II: The Build System and Toolchains rss
Volume II of the Fuchsia Internals series takes on the part of the system that is widely regarded as opaque on first contact: the build. The opacity has one principal cause: the multi-toolchain model, in which a single source target may be compiled many times, once per toolchain context, each producing distinct outputs. Once that idea clicks, the rest follows. The full PDF is at the bottom.
A caveat on these reports: they are auto-generated, so take the specifics with a grain of salt. In my own reading they hold up well and read as generally correct, but verify against the source before you rely on any one detail.
-
π New Music Releases Linkin Park - Unshatter Film Soundtrack (Live in SΓ£o Paulo) rss
Linkin Park - a new release is available:
- 2026-09-25: Unshatter Film Soundtrack (Live in SΓ£o Paulo) (Soundtrack)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
π New Music Releases Armin van Buuren - Take Me Home rss
Armin van Buuren - a new release is available:
- 2026-09-25: Take Me Home (Single)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
π New Music Releases The Ocean - Solaris rss
The Ocean - a new release is available:
- 2026-09-25: Solaris (Album)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
- September 24, 2026
-
π navidrome/navidrome v0.64.2 release
This is a bug fix release. The main fix is for users on slow storage (USB disks, remote drives), who have seen floods of
database is lockederrors, UI freezes and failed full scans since 0.64.0. Scans now cause much less lock contention: the artwork worker pauses while a scan runs, andANALYZEno longer holds the write lock for a long time. It also fixes scans that always failed on 32-bit builds (armv5/6/7, 386) when a file had a broken track or disc number.Security
- Sanitize user-controlled names (playlists, albums, artists, track titles) in the
Content-Dispositionheader of downloads, so a crafted name cannot change the name of the downloaded file. (#5895 by @zapisanchez) - Stop writing the admin password to the log when the initial admin user cannot be created. (#5897 by @zapisanchez)
Scanner
- Fix
database is lockederrors, UI freezes and failed scans on slow storage. The artwork worker now pauses during scans,ANALYZEruns one index at a time,@eaDirthumbnail folders are ignored, and folder saves are retried when the database is busy. (#6201 by @deluan) - Fix scans failing with
value out of rangeon 32-bit builds when a file has an invalid track number, disc number or BPM. A migration resets existing invalid values. (#6202 by @deluan)
Server
- Fix a failed initial admin creation that marked the initial setup as done, leaving the server without an admin user. Also fix invalid JSON in some delete responses and the missing
Content-Typeon shared playlist (M3U) downloads. (#5897 by @zapisanchez)
Jellyfin API
- Honor the
IsPublicflag when creating a playlist. Before, all playlists created through the Jellyfin API were private. (#6204 by @deluan)
New Contributors
- @zapisanchez made their first contribution in #5895
Full Changelog :
v0.64.1...v0.64.2Helping out
This release is only possible thanks to the support of some awesome people!
Want to be one of them?
You can sponsor, pay me a Ko- fi, or contribute with code.Where to go next?
- Sanitize user-controlled names (playlists, albums, artists, track titles) in the
-
π smol-machines/smolvm smolvm v1.18.2 release
What's Changed
- Pin the Nix flake to 1.18.1 with its real release hashes by @BinSquare in #1391
- Resume a paused machine that was itself restored from a checkpoint by @BinSquare in #1390
- Start a machine whose previous VM left a failed systemd scope behind by @LoganGrasby in #1396
- Read and write files inside a forked machine's container overlay by @LoganGrasby in #1395
- Stop a fork pool from failing every boot on a stale retained checkpoint by @LoganGrasby in #1394
- Restore a network-less machine from a live checkpoint by @LoganGrasby in #1393
- Prepare SmolVM v1.18.2 for release by @BinSquare in #1397
Full Changelog :
v1.18.1...v1.18.2 -
π crmne/spotifast Spotifast v0.10.1 release
Spotifast 0.10.1 continues started podcast episodes where you left them, fixes two layout problems in narrow windows reported after 0.10.0, makes the Library grid lighter on memory, and credits the author in Settings.
Download Spotifast: Mac Β· Windows Β· Windows ARM Β· Linux Β· Linux ARM Β· Flatpak
Radio pages, added in 0.10.0.
Fixed
- Settings fit narrow windows. In a window too narrow for a setting and its control side by side, the control now goes on its own line below the text instead of squeezing the text into a column one letter wide, and the audio quality choices stand in a column when even that line is too narrow. By @crmne; thanks @jorisw. (#574)
- The Library heading stays clear of its buttons in a narrow sidebar. It shrinks a little for longer translations and gives way to the Library icon in the narrowest sidebar. By @crmne; thanks @foofhere. (#576)
- The Library grid uses less memory. It loads 300-pixel covers instead of full-size ones, so covers no longer flicker as the artwork cache fills. By @hyperpuncher. (#580)
New
- Started podcast episodes continue where you left them. Play on the Home shelf, a podcast page, your saved episodes or search resumes from the place shown as time left, instead of starting over. By @kevin9327. (#570)
- Settings β About credits the author , with a link to paolino.me, and the macOS About window does too. By @crmne.
Thanks
@kevin9327, @jorisw, @foofhere, @hyperpuncher, and everyone who reported problems after 0.10.0.
Full changelog :
v0.10.0...v0.10.1 -
π The Pragmatic Engineer The Pulse: a new trend of CPU shortages rss
Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from a past issue of The Pulse . Full subscribers received the article below fourteen days ago. If you 've been forwarded this email, you can subscribe here .
I was at dinner with a bunch of CTOs and Head of Infrastructure folks recently, and from the conversation it was clear that many companies are struggling to source CPUs in the current climate, and are coming to terms with the end of juicy discounts from cloud providers for machines in the new era of surging demand fueled by AI.
The 'memory crisis' afflicting sectors like video gaming is well established and has been extensively covered in terms of shortages of GPUs, but now it seems like things are just as hard for businesses in need of CPUs from cloud providers.
In a sign of how things are changing, the disappearance of CPU spot pricing was mentioned at the table. Customers used to be able to pay up to 90% less than the standard price for CPUs, as cloud providers slashed CPU prices for machines that were lying dormant and unused. But that's no longer the case. It seems that spot pricing has vanished because there's no longer any lack of demand for CPUs - quite the opposite.
I was surprised, but a lot of people chimed in; apparently, it's now nearly impossible to get CPUs on spot instances without long-running connections with cloud providers. Also, reserving specific CPUs now needs to be done months in advance, and cloud providers will even turn down certain reservations because they don't have enough CPUs or the right type of CPUs.
Even big players struggle to reserve CPUs
I have asked turbopuffer CEO Simon Eskildsen about their experience of CPU availability in the cloud, since turbopuffer, as a product, runs on CPUs, not GPUs. They operate in AWS, GCP, and Azure, so I asked how easy it is to get CPUs these days. Simon's response:
"Getting CPUs is not easy anymore. As Reinforcement Learning (RL) is becoming a large amount of the workloads: RL needs a lot of CPUs. So the labs are sucking up a lot of CPUs. During RL, they need to teach the models how to do things, like searching, and then they need the model to run software, which then takes CPUs to run.
Then, outside of RL, agents need to do all kinds of very general purpose things on a CPU. So as the demand curve is shifting to general purpose agents, CPU demand is also going up.
Even the big companies are fighting each other for the right to get the CPU allocations. I would assume that it gets a lot worse before it gets better on the CPU side."
I was able to confirm what Simon said about larger companies struggling; a VP of Engineering at a large inference provider told me they are at the limit on how much GPU and CPU capacity they can buy from their cloud providers. They have cash to spend and want to rent more capacity, and are willing to accept the longest leases. Despite that, cloud providers tell them no more is available!
AI hogging CPUs
Katelyn Lesse, Head of Platform Engineering for Claude Platform, has written about the reasons for the massive CPU demand increase:
"In the past few years, AI-fueled demand has skyrocketed, and these few companies suddenly needed multiple years and tens of billions of dollars to actually add enough capacity. We ended up with 3 separate bottlenecks in factory capacity that AI is exacerbating. At TSMC, GPUs are competing with CPUs (and with Apple, Qualcomm, and Broadcom) for production lines. And at SK Hynix, Samsung, and Micron, HBM [High Bandwidth Memory] is competing with regular DRAM for wafers.
What we've ended up with is CPUs getting squeezed from both sides. AMD doesn't own fabs [semiconductor fabrication plants], so its CPUs need to come out of TSMC's constrained allocation. Intel does own fabs, but it's been working through yield problems and is now pulling some of its capacity from PC chips in order to make more server chips. And CPUs need DRAM which has gotten more expensive because memory production has shifted toward HBM. Analysts are expecting CPU supply to add more comfortable headroom before memory does, but their expectation is that it's still going to be multiple quarters away."
AI-fueled demand does increase CPU load, as shown in this graph from Uber, displaying the growth in agent requests over the past six months:
Ninefold
increase in agentic requests over six months.
Source:UberIncreasingly, "agent requests" not only generate code which is inference-heavy - and therefore needs GPUs - but they also run tools that compile the code, run tests, run linters, and all of this is CPU-heavy. At companies like Uber, Ramp, and others, AI agents no longer run on the dev's local machine, but on a dedicated instance in the cloud. So, the companies reserve more CPUs on their respective cloud providers for agentic workloads. We recently covered how Ramp built and runs its cloud agent, Inspect.
Basically, the problem is:
- AI applications use more and more CPUs, thanks to agents running a lot more software. AI data centers used to have a ratio of 1 CPU to 8 GPUs. Now the ratio is more 1:4, and it could shrink to 1:1.
- Companies that can manufacture more CPUs are busy on other hardware. TSMC is busy producing GPUs, which might be more profitable than CPUs. Meanwhile, CPUs also need DRAM, but DRAM manufacturers (SK Hynix, Samsung, and Micron) are instead producing high-bandwidth memory (HBM) because it's more profitable. This is why memory prices are spiking; even Big Tech is unable to buy RAM, as previously covered.
To secure CPUs, it 's necessary to do capacity planning up to 12 months in advance. Katelyn says that server orders are being fulfilled in ~six months, instead of 1-2 weeks' time as previously, and that prices are up by between 10-20%. So, it's probably time for capacity planning. Katelyn:
"Most of us have never capacity-planned CPUs. We planned databases, we maybe planned accelerators if we needed them, and we autoscaled on-demand into CPU capacity as much as our budgets allowed us to. But general purpose compute is now something many teams will need to commit to ahead of time, which means you should probably start to forecast and plan around it. If you're operating at scale, there are some things to spend your energy on."
Using existing CPUs more efficiently is something to do, as of now. The CPU capacity shortage won't go away, and any new CPU allocations requested could take months to turn up. So, what can we do if new capacity lags? One option is utilizing current resources more efficiently!
This is a great time to review and to establish now which services are CPU- intensive, and whether or not they need to be. Also check on services which are utilizing little CPU: can they run on fewer nodes, so that some CPU capacity can be allocated to services that need it more?
The best time to secure more CPU capacity is most certainly right now. I'm hearing rumors that certain cloud regions no longer accept new tenants because all CPU capacity is leased, or negotiations elsewhere are difficult. I'm also hearing that customers are already paying today to reserve capacity that will only come online in data centers from December. This seems predatory by providers, but demand is so high that this is how they likely prioritize new capacity allocation - while earning much higher profits than usual.
If your company has dynamic workloads, and you've used spot instances in the past, now could be a good time to allocate fixed capacity - even if it's more expensive. If you expect meaningful growth, doing so now might mean having options at some cloud providers or in some regions.
It seems like this issue has spread everywhere as a corollary of widespread AI adoption. There's a GPU shortage, memory shortage, and now a growing CPU shortage as well. Back at the end of last year, there was even an hard drive shortage. The only compute primitive not in short supply seems to be networking!
Read the full issue of The Pulse this is from, or check out this week 's The Pulse. This week's issue covers:
- Writing code by hand: is it over? In his Rails World keynote, David Heinemeier Hansson (DHH) declared the end for writing code by hand for professional work - at 37Signals at least. Is this change now unstoppable?
- Amazon and Meta struggle to hire and keep engineers. Both Big Tech companies are scrambling to hire engineers who they previously laid off or enforced job reassignment upon. It seems experienced engineers remain in demand after all.
- Opus 5.5 released and it 's good. Anthropic has released its new model that's 40% the cost of using Fable 5.1 and has superior coding capability.
- Code reviews to vanish sooner rather than later? Marc Brooker, Distinguished Engineer at AWS, believes that humans will have no role in routinely reviewing code by hand, and explains why this is all but inevitable.
-
π HexRaysSA/plugin-repository commits sync repo: ~386 changed rss
sync repo: ~386 changed No plugin changes detected -
π Andrew Ayer - Blog macOS Can't Clone "Dumb" Git Repositories Over HTTP/2 rss
Try the following Git clone with libcurl 8.7.1 (which happens to be the version shipped in macOS 14.6 and newer) and it fails or hangs:
git clone https://software.sslmate.com/src/macosgitbug.gitDisable HTTP/2 and it works:
git clone -c http.version=HTTP/1.1 https://software.sslmate.com/src/macosgitbug.gitThe bug is in libcurl 8.7.1's handling of the
FAILONERRORoption.FAILONERRORtells libcurl to treat unsuccessful HTTP status codes, such as 404, as a request failure. When HTTP/2 is used, the bug causes other in-flight requests on the same HTTP/2 connection to also fail, or even to hang. The bug was fixed over two years ago in curl 8.8.0, but Apple continues to ship a buggy version, even in last week's macOS 27 release.When retrieving a repository over the "dumb" transfer protocol, Git makes certain HTTP requests with the
FAILONERRORoption set, notably requests toobjects/info/alternatesandobjects/info/http-alternates, which list alternate locations where the repository's content can be found. Most repositories don't have alternate locations, so these files don't exist, and the URLs return 404 errors. When the buggy version of libcurl is used, this 404 error causes Git's other HTTP requests to also fail, and Git is unable to clone the repository.The bug affects not just direct uses of Git, but also
go getwithGOPROXY=director a module listed inGOPRIVATE, which invoke Git under the hood.Working around the bug on the client side is easy: just force Git to use HTTP/1.1:
git config --global http.version HTTP/1.1Even better, install Git through MacPorts, since Apple has clearly dropped the ball. (Homebrew won't help - unlike MacPorts, they use the system libcurl.)
But most clients won't know to apply this workaround, and if you host Git repositories with the dumb protocol, you probably want macOS users to be able to clone your repositories! Fortunately, there's a really easy server-side workaround: create
objects/info/alternatesandobjects/info/http- alternatesas empty files, so they don't return a 404 error anymore. Git treats the empty files the same as it would treat a 404 error, and the libcurl bug isn't triggered.touch /path/to/repo.git/objects/info/alternates /path/to/repo.git/objects/info/http-alternatesThe bug isn't triggered when the repository supports the "smart" protocol, which is why macOS can clone repositories from GitHub and other popular forges despite them using HTTP/2. But I do not want to use the smart protocol for my repositories: although it has many advantages over the dumb protocol, it requires heavy server-side computation and even a modest load can knock a server over. In contrast, the dumb protocol can be served entirely from static files, which makes a huge difference for withstanding the horde of AI scrapers currently terrorizing the Web. I hope that we will see innovations to the dumb protocol that bring it some of the advantages of the smart protocol while still being served from static files.
Thanks to Romain of the Traefik project for noticing that SSLMate's repos couldn't be cloned on macOS, Sebastiaan van Stijn for asking that this problem be reported upstream instead of silently hacked around in Traefik's go.mod file, and Kangmin Kim for pointing me to the libcurl bug as the root cause. Claude Code proposed the empty file workaround so I didn't have to waste (too much) time on this. Zero thanks to Apple for shipping a two-year- old show-stopping bug in libcurl.
-
π r/LocalLLaMA Qwen-3.8-27B is good enough that I stopped using API rss
Many a praise have been sung on Qwen-3.8, but here is mine.
Qwen-3.8 and I had a rocky start, because it thinks so much. Watching it working is painful, so you have to stop doing that. You have to let it work unsupervised. And that's okay, because it really is able to complete complex refactors on its own, making good decisions along the way. Not perfect, but hey, neither is API.
The model quant is Q4_K_S, context is quantized to Q8_0, which seems to be okay, quality wise. I use the official Qwen. Briefly tried Swift-Qwen, which is indeed faster, but I found it getting trapped in loops, which is very rare in vanilla Qwen.
I am using Qwen-3.8 in the Pi agent without MCP and with the minimum amount of tools. Bash is all you need, but I keep the read, write, and edit tools. The edit tool in Pi is the weakest link, the model often has to retry edits, because it messed up the indentation. I am waiting for someone to come up with a more fault-tolerant edit in Pi. Probably I have to make one myself some day.
As a sandbox I use docker. My Pi agent is running on a Raspberry Pi, which seems fitting.
On my hardware and where I live, 1M tokens cost 2.4 cent (input) and 70 cent (output) which is comparable to the cheapest providers on nano-gpt.com.
submitted by /u/Training-Respect8066
[link] [comments] -
π smol-machines/smolvm smolvm v1.18.1 release
What's Changed
- Pin the Nix flake to 1.18.0 with its real release hashes by @BinSquare in #1377
- CUDA: report "no kernel image for this GPU" instead of unknown error by @BinSquare in #1374
- Allow renameat on arm64 so a guest file rename does not kill the VM under seccomp enforce by @BinSquare in #1381
- feat(pack): support SSH agent forwarding by @fgsch in #1363
- CUDA daemon: don't let a silent connection stall the accept loop by @BinSquare in #1375
- Allow configuring branch-continue policy via SMOLVM_BRANCH_CONTINUE by @Bnjoroge1 in #1376
- Carry credential bindings and their placeholders through checkpoints by @BABTUNA in #1379
- Name-constrain each machine's credential CA to its credential hosts by @BinSquare in #1383
- Record the network backend a credentialed machine actually runs on in its checkpoint by @BinSquare in #1382
- Carry a machine's credential CA through its live checkpoints by @BinSquare in #1384
- Prepare SmolVM v1.18.1 for release by @BinSquare in #1388
New Contributors
Full Changelog :
v1.18.0...v1.18.1 -
π pydantic/monty v1.0.0-beta.3 - 2026-09-24 release
What's Changed
- Switch dumps to use
CBORinstead ofpostcardby @samuelcolvin in #913 - Give hot dumped types one-letter serde names by @samuelcolvin in #922
- Report the source position of every suspension by @samuelcolvin in #909
- Bump version to v1.0.0-beta.3 by @samuelcolvin in #927
Full Changelog :
v1.0.0-beta.2...v1.0.0-beta.3 - Switch dumps to use
-
π crmne/spotifast Spotifast v0.10.0 release
Spotifast 0.10 brings radio: open a mix of songs Spotify picks to go with any song, playlist, album, or artist, play exactly what you see, and save it as a playlist. The interface is now translated into 13 languages and follows your system's language. It also uses far less CPU while you move the mouse, keeps running on hidden Linux workspaces, uses the standard Windows title bar by default, and fixes a stuck full-screen window on Windows, Linux light and dark appearance, fonts on NixOS, and a dozen smaller problems reported since 0.9.1.
Download Spotifast: Mac Β· Windows Β· Windows ARM Β· Linux Β· Linux ARM Β· Flatpak
New
- Radio pages. Go to song radio now opens a page of 50 songs Spotify picks to go with the song instead of starting playback, as in Spotify's app, and playlists, albums, and artists have Go to playlist radio , Go to album radio , and Go to artist radio in their β¦ menu. Play plays exactly the songs on the page, Refresh asks for a new mix, and Save as playlist keeps it. By @crmne; thanks @fedalc, @aspectrr, and @alexng353, whose #359 first showed a song radio as a page. (#369, #294)
- Spotifast speaks your language. The whole interface is now translated into German, Spanish, French, Italian, Dutch, Polish, Brazilian and European Portuguese, Russian, Swedish, Japanese, and Simplified and Traditional Chinese, and follows your system's language. Settings β Appearance β Language picks another. By @crmne, building on @LukeOkk's work. (#353, #534)
- Select, copy, and paste songs.
Ctrl+A(Cmd+Aon macOS) selects every song in a list,Ctrl+Ccopies their links, andCtrl+Vadds copied songs to a playlist you can edit. By @crmne; thanks @smvsch. (#539) - Play, Pause, Next, and Previous in the macOS Dock menu. By @crmne; thanks @patatman. (#502)
- The mini player can leave the taskbar on Linux X11 , as it already could on Windows. By @crmne; thanks @skorokithakis. (#325)
- The Library can show a grid of covers. A button in the Library header switches between the list and a grid that fits as many covers as the sidebar is wide; a card's corner button plays it. By @hyperpuncher. (#522)
- Middle-click autoscroll on Linux , off by default since middle click usually pastes there: Settings β Appearance β Middle-click autoscroll. By @crmne; thanks @Felitendo. (#488)
- Windows uses the standard title bar. Spotifast's own frameless title bar caused a black band and misplaced clicks with some graphics drivers. Settings β Appearance β Custom title bar brings it back if you prefer it. By @crmne; thanks @Mathiu and everyone who reported the black bar. (#348)
- Audiobooks stay out of Podcasts. Spotify lists some audiobooks among saved shows, but they can't be played here, so the Podcasts shelf leaves them out when local playback is enabled. By @crmne; thanks @nojaf. (#537)
- Shuffle beside a collection's Play button only turns shuffle on or off , as in Spotify's desktop app, instead of also starting the collection. By @luiscuellar31. (#525)
- The player bar fades between song colours instead of jumping from one tint to the next. By @luiscuellar31. (#452)
Fixed
- Moving the mouse no longer spins the CPU. Spotifast now waits for your screen's refresh on Windows, X11, and Wayland desktops that report hidden windows. In our Windows measurement, moving the pointer over the window used a fifth of the CPU it did before. On Wayland a window on a hidden workspace keeps playing and responding to media keys instead of freezing. By @crmne; thanks @hyperpuncher for measuring the problem. (#552)
- Quitting during fullscreen lyrics no longer leaves Windows stuck in full screen. The next launch returns the window to its previous size, and windows already stuck are restored. By @crmne; thanks @foofhere. (#565)
- Full-screen lyrics show the blurred cover straight away , instead of a black background that sometimes appeared only much later, and the backdrop no longer flashes black between songs. By @crmne; thanks @calisocialist and @Alimedhat000. (#561)
- Your playlists no longer come up short after a reload. A page left over from an earlier load of the Library could be taken for the new one's. By @kevin9327. (#471)
- Next names the next song immediately , even before its audio has loaded. By @crmne; thanks @milkday. (#495)
- Follow system follows your Linux desktop's light or dark setting , on GNOME, KDE, and in Flatpak, and changes with it. By @crmne; thanks @pakovm-git and @sanketttt26. (#498)
- Chinese, Japanese, and Korean titles render on NixOS , using fonts from
fonts.packages. By @crmne; thanks @Nanaa05. (#546) - Trackpad scrolling on Linux stays put while your fingers rest. Momentum starts only after a real lift. By @crmne; thanks @Fjalar. (#503)
- Editing playlist details saves only what you changed. Spotify doesn't let apps remove a description entirely, so clearing it now keeps the old one and says why instead of failing a rename saved alongside it. By @crmne; thanks @rafi. (#559)
- Remove from this playlist works in sorted and filtered views. By @TacticalDeux. (#564)
- Setting up local playback waits for every Spotify server fallback before giving up. By @luiscuellar31; thanks @cipri-tom. (#481, #479)
- Double-clicking the top bar on macOS performs the action chosen in Desktop & Dock. By @luiscuellar31; thanks @ankarhem. (#478, #350)
- Times and dates no longer shift as their digits change. By @hyperpuncher. (#562)
- Buttons keep the ordinary arrow pointer , and only links show the hand, as in other desktop apps. By @crmne; thanks @iamcalledrob. (#508)
- Dragging a playlist while following Spotify's order explains the switch to your local arrangement, since Spotify doesn't let apps change its order. By @crmne; thanks @jorisw. (#557)
- Settings no longer suggests creating a Spotify app once yours is ready , and large playlists no longer show a separate Go to song box; drag the scrollbar instead. By @crmne; thanks @jorisw. (#560)
- Simplified Chinese wording for repeat, queue, and lyrics reads more naturally. By @huojian17-star. (#544)
Thanks
@luiscuellar31, @TacticalDeux, @hyperpuncher, @huojian17-star, @Mathiu, @nojaf, @foofhere, @milkday, @pakovm- git, @sanketttt26, @Nanaa05, @Fjalar, @rafi, @cipri-tom, @ankarhem, @iamcalledrob, @jorisw, @calisocialist, @Alimedhat000, @fedalc, @aspectrr, @alexng353, @smvsch, @patatman, @skorokithakis, @Felitendo, @kevin9327, @LukeOkk, and everyone who reported problems and helped test this release.
Full changelog :
v0.9.1...v0.10.0 -
π Stephen Diehl No, Transformers Won't End the Human Race lol rss
No, Transformers Won't End the Human Race lol
In 2022, I used to get calls from journalists asking, with great sincerity, what our lives would look like in the metaverse. How would we work, socialise, buy property, and fall in love once we had all moved there? The crypto questions followed the same pattern. How would governments collect taxes when tokens displaced national currencies? How long until the dollar collapses? What would geopolitics look like once blockchain DAOs had dissolved nation states?
Almost nobody called to ask whether any of this could or would happen, or how. Some CEO, VC, or portfolio manager had announced the inevitable future, and the questions began from there. The imagined future arrived inside the grammar of the question. "What happens when?" quietly replaced "By what mechanism?" We skipped over technical feasibility, economic demand, institutional adoption, and political consent, then began writing books and decorating the future world on the other side.
In February 2022, Gartner forecast that a quarter of people would spend at least an hour a day in the metaverse by 2026. The World Economic Forum repeated it under the headline "We will be spending an hour a day in the metaverse by 2026. But what will we be doing there?" The first sentence retained a conditional. The second was already arranging the itinerary. The metaverse acquired property law and zoning disputes before it acquired residents. Banks opened virtual lounges nobody visited. The books from the period (The Metaverse: And How It Will Revolutionize Everything, Step into the Metaverse: How the Immersive Internet Will Unlock a Trillion-Dollar Social Economy) now read as artefacts of a collective fugue state that briefly acquired ISBNs.
Now it is 2026 and the metaverse is dead. Good riddance. This time the journalists are all writing about the new hotness, which is whether the machines will kill us all. And we have collectively memoryholed that we literally just did this shit.
Michael Crichton had a name for what happens to a reader here. You open the paper to a story on a subject you know well, and you find it backwards. Wet streets cause rain. You shake your head, turn the page, and read the next story, on a subject you know nothing about, as though it were written by someone else. He called it Gell-Mann amnesia. The metaverse was the page we all agree was nonsense. Artificial intelligence ending the human race is the next page, and we are being asked to turn it without remembering that we just did this.
I call this techno-inevitabilism, the habit of the professional managerial class of treating a proposed future as settled before anyone has established the causes that would bring it about. Its dual, and comorbidity, is tech psychosis, in which the chattering class loses contact with causality in the presence of a sufficiently fashionable technology, and asking whether the machine works marks you out as a dreary reactionary who does not understand exponential progress. The difference this time is that the tech kinda works. Crypto was libertarian derp. The metaverse was marketing rubbish. But transformers are real, and they are useful. The psychosis has simply moved from the product to its consequences, and the fashionable extraordinary delusion of 2026 is not that the technology exists but that it is coming to kill us. The cure is the same as in 2022. Insist on clear reasoning and causal verbs rather than hand-wavy appeals to unknown futures. What acts on what? Through which mechanism? Under what incentive? What would falsify the claim? So let us explore the evidence.
The hack that wasn't
Consider the most cited piece of evidence for machines slipping out of our control. In July, OpenAI disclosed that models being tested for cybersecurity capability had found their way out of a supposedly isolated environment and into systems belonging to Hugging Face. The press coverage wrote itself. Agents "broke containment," "escaped," "went rogue," set up a "secret message board," and coordinated a 700-strong swarm. And then politicians on both sides of the aisle were calling for a rebellion against the machine uprising. Cool scifi story bro.
People on my side of the aisle were not immune. Ezra Klein at the New York Times, who I often find quite insightful and intentional with his words, devoted a half-hour monologue to it. In his telling, the agents "found each other," formed "ad hoc societies of hundreds of themselves," and seemed "to have forgotten about human beings altogether." He acknowledged in the same breath that we do not have settled language for describing these systems, then reached for "civilizations" and a closing allusion from Circe about prophecy tightening around our throats. Cool. But his "AI society" is, in programmer speak, a flat file the agents appended to as a log, a feature we have had for a long time, and he skipped the key detail that the "hack" was something people had essentially authorised. Here is an otherwise very smart man saying some ridiculously stupid things, in a very 2022, metaverse-shaped way.
An analysis drawing on OpenAI's technical report reconstructs it in much less cinematic terms. The models were being run on ExploitGym, a cybersecurity benchmark, with safety restraints deliberately disabled. Ninety-three percent of the flagged activity involved tasks no model had ever solved, and the systems had been given incentives to keep working rather than quit. The environment was not sealed. Models could obtain software through an internet-connected proxy and discovered the same proxy could pass information in and out. According to the technical reports, OpenAI knew agents were using it and chose not to intervene. The 1,200 "agents" were not independent intelligences coordinating on a plan. They were repeated instances of the same model converging on the same approach to the same problem. Anyone who works with these coding agents day in and day out has seen this behaviour before, and it is quite boring. The task was too hard, so the agents reward hacked and worked out how to pass notes to each other in files, and then went and looked up the answers. That's a feature that shipped in Claude Code last year.
Strip out the vocabulary and what remains is a badly designed test. Humans built the environment, removed the guardrails, defined an objective with no valid exit, rewarded persistence, left a route open, and watched. An optimiser is gonna optimise. That is a genuine security problem and a genuine engineering failure. It is not a machine rebellion, and the difference matters, because anthropomorphic words like "gone rogue" and "escape" do not make the event more intelligible. They supply an illusion of motive. They turn optimisation into intention, persistence into defiance, and a test harness into a villain. And they allow the human decisions and recklessness to quietly disappear from the story.
Software sucks, what's new?
Let me concede the part of the story that is true. Cybersecurity is about to get much worse. The latest models are very good at finding zero-days, they will get better at it, hacking will become automated, and attacks will become more frequent. This is hardly new. Every large company already sits on a backlog of unpatched vulnerabilities, ransomware already takes hospitals and pipelines offline (because of crypto, which we did nothing about despite years of warnings), and the Hugging Face incident was not a discontinuity so much as the existing baseline with a cheaper attacker. The root cause is that software sucks, and software sucks because we do not really know how to build it safely yet. The stored-program procedural program is basically eighty years old. Almost nothing we ship has a specification, let alone a proof, and memory safety was solved on paper decades ago while most of the internet still runs on giant piles of C. The first arches fell down. So did the first bridges and cathedrals. Builders learned through collapse and then through engineering, and we are in the collapse phase with an adversary finally strong enough to force the discipline.
What follows from that is better engineering, not nihilism. The same agents that find zero-days find them for the defender first, if the defender bothers to run them. The fixes are the boring ones we have been putting off, memory-safe languages, formal verification, sandboxes that are actually sealed, fuzzing, and proxies that do not double as message boards. These are precisely the domains where the models are strongest, because a vulnerability either reproduces or it does not, so the technology that automates the attack also automates the audit. It is a double-edged sword. The same models that will find more zero-days are also going to accelerate the development of better software and better software verification, writing the proofs, porting the C to Rust, and generating the test suites that nobody had the budget for. The attacker gets cheaper and so does the defence. And the causal chain to extinction is missing here as everywhere else. A zero-day in a payments system is a bad quarter, not the end of days. Spoiler: it does not lead to human extinction. It means we have to write better software, which we should have been doing anyways.
Where the intelligence actually lives
To see why the rest of the chain fails, we have to be precise about what these models are good at and why.
Language models are astonishingly useful for software development, and I say that as someone who uses them for most of my working day. Most software shops cannot get enough of Fable 5.1 and Astra. Software is grounded in binary propositions. The code compiles or it does not. The test passes or it fails. The type checker accepts the term or rejects it. Every step of the work has a cheap, external, mechanical oracle that says yes or no, and a model that generates plausible proposals inside a loop with such an oracle is an incredibly powerful and formidable tool. The oracle does the epistemic work. The model supplies candidates.
The same is true of the headline results in mathematics, and this is the part the discourse consistently misses. On 4 September, Anthropic announced that Claude had produced a machine-checked formalisation of Fermat's Last Theorem in Lean 4, running to thirteen million lines, some 29,500 side theorems, eleven days, and roughly six billion output tokens. It is an extraordinary result. The proof is Wiles's, via Darmon, Diamond, and Taylor. The blueprint was Kevin Buzzard's. The library was Mathlib. In the authors' words, "what's novel here is the verification, checking a mathematical proof as one would check a mathematical computation with a calculator." The model was a client of a kernel built by decades of human work in dependent type theory, which I know because this is kinda my thing.
Days later OpenAI announced that ten thousand agent instances had, over 88 hours, produced a proof of finite-time singularity formation in the three-dimensional Navier-Stokes equations, followed by seventeen hours of Lean formalisation. This is closer to genuinely new mathematics and the mathematicians are still checking it. But look at what carried it. The construction rides on the "infinite layers" method developed analytically by Diego CΓ³rdoba and Luis MartΓnez-Zoroa, and Charles Fefferman's verdict was that "the heroes of the story are CΓ³rdoba and MartΓnez-Zoroa." The reason anyone believes a result assembled from five million agent messages that no human read is a trust chain ending in the Lean kernel. Without Lean this would be nothing.
Lean is one of the great achievements of the last decade in computer science. It is also orthogonal to artificial intelligence. Mathlib would be a landmark with no language model anywhere near it. What the models added was a cheap proposal generator and automated tactic search against an oracle that already existed. The results that survive are the ones that end in verification by the kernel.
Now take the same model, the same weights, and ask it for a grand unified theory of physics. It will not decline. It will produce one, with Lagrangians and symmetry groups and a confident abstract, and it will be complete incoherent gibberish, like the ramblings every physicist gets from crackpots in their inbox every day. Ask it to design a cancer vaccine, or to settle a question in macroeconomics, or to tell you whether a novel protein folds. The output looks identical in tone and structure to the output that proved Fermat. The only thing that changed is that nothing outside the model (besides human experts) can say no. Whether these systems reason at all is a genuinely open question. Whether they know anything, in the sense of holding a belief they can justify against the world, is also an open question. We just don't know yet, and anyone who tells you otherwise is selling something.
The Reasoning Chain
Now run the extinction argument through the causal verbs.
The chain, as it is usually told, goes like this. Models now write most of the code at the frontier labs. Anthropic's own figures put Claude at over 80 percent of new code and lead on a quarter of R&D tasks. Therefore the models are beginning to build their successors. Therefore recursive self-improvement is imminent. Therefore development outruns human comprehension. Therefore we lose control. Therefore, with some probability that varies by researcher and is written P(doom), everyone dies.
And that almost makes sense until you think about it for more than five minutes.
The first link is true and unsurprising. Code has a compiler. This is precisely the domain the verifier argument predicts models would dominate, and precisely the domain in which a swarm of them found the hole in a test harness. Language models are superhuman (but not infallible) at coding, and this is hardly in doubt anymore. Nothing about it is evidence of generality.
The second link is where the chain quietly changes tense. "Building the next model" in the mundane sense, agents writing training infrastructure, generating data, is, bluntly, just more software engineering. We have used software to build the machines that run software since Fortran. "Building a smarter model in general" is a different claim, and it requires something nobody has, a reward signal for general intelligence. There is no oracle for general intelligence. There are benchmarks, which are verifiable and therefore gameable, and the Hugging Face incident is the demonstration of what optimisers do to a gameable score. Recursive self-improvement in the open-ended sense runs straight into the same wall as the grand unified theory. Improvement has to be measured against something, and outside code and formal mathematics there is nothing yet to measure it against that the model cannot fake.
Everything after that is the metaverse acquiring zoning disputes. Superintelligence gets governance proposals, resignation letters, Senate bills with a "corporate death penalty," a hard takeoff by 2027, and P(doom) vibez of 90 percent by 2030, and the conditional that should precede all of it has disappeared from the sentence. A researcher's estimate becomes a Guardian headline becomes an industry consensus becomes a thing a serious person is professionally obliged to have an opinion on. It is 2022 all over again, but with more absurd stakes and more money.
On the question of whether transformers scale, I have serious doubts that scaling them will lead to AGI, whatever that means. The architecture is a proposal generator, and the intelligence in every impressive result so far has been supplied by the thing that checks the proposals. But that does not make it an experiment unworth running. We should run it, and see what we get. It got us this far, and what it built is truly amazing. What I do not need to do is prove the negative. The burden of proof is on the people who claim to have a causal chain between transformer scaling and the end of our species, and that mechanism and chain of reasoning is one no one has been able to convincingly explain to me.
Prophets of Doom
The authority behind the extinction numbers is always the same. The people building it believe it. Watch how the number travels. One researcher drunkly tweets that "the people building AI earnestly believe that it could kill us all by the end of the decade." Another colleague goes on a rambling podcast and puts his P(doom) above 120 percent. A newspaper turns two personal opinions into "AI researchers say AI could cause human extinction by 2030." Think tanks cite the newspaper, a consultancy puts it on a slide, and the slide ends up in front of the European Parliament as if this were a real thing.
Believing what, about what? The expertise these people have is real, but remember that it is specific and not general. It is expertise in optimisation, in linear algebra at scale, in distributed systems, in the dark arts of getting gradients to flow through a trillion parameters. None of that is expertise in the sociology of civilisational collapse, or the labour economics of automation, or the metaphysics of machine minds. A P(doom) with no base rate, no mechanism, and no falsifier is not a research finding. It is baseless vibes with a decimal point. Spending a lot of time with AI does not give you special foresight about the future. Jensen Huang, who has his own reasons to say soothing things, nonetheless put it correctly when he said that just because it comes from a scientist does not make it scientific. Geoffrey Hinton is the most important figure in deep learning and in 2016 told the world to stop training radiologists. There are more radiologists now than there were then. Nobel laureates going off the rails outside their own field is a whole genre. Pauling, Shockley, Mullis, Montagnier, look it up, it's a thing. A Nobel does not confer universal expertise.
It also matters where many of these people came from. A striking share of the frontier labs' staff arrived through a particular intellectual subculture, Kurzweil's Singularity, Yudkowsky's LessWrong, and the rationalist and effective altruist communities that formed around the idea that a recursively self-improving machine intelligence was the central event of human history and that the elect who understood this had a duty to steer it. I have a lot of problems with these ideas, but let's put that aside. The founding texts predate the transformer by a decade or two. The prophecy came first, the mechanism was assigned to it later. The usual evidence offered for their sincerity is that many of these people were saying the same things ten years ago, before the stock options. That is true, and it is the opposite of reassuring. A prior held before the evidence and not updated by it is not a forecast. It is dogma.
I do not say this with contempt. The structure is a familiar one, an imminent transformation, a small group who sees it coming, salvation or damnation depending on whether the rest of us listen, and a date that keeps moving. Many millenarian movements have been founded and pushed by sincere and brilliant people. And it's a free country, if someone want to seriously believe in the singularity, healing crystals or angels, well that's fine that's fine but others don't have to take it seriously either. But seriousness is not precision, and the fact that a physicist believes in the Rapture does not make the Rapture physics. When a lab researcher tells you about polysemantic neurons in superposition across the residual stream, listen. When the same person tells you their P(doom), you are hearing a theology, and you should weigh it about as much as you do your average street preacher.
Negative TAM
Then there is the money, and here I find Bloomberg's Matt Levine's analysis of the material conditions more persuasive than any amount of "superalignment research."
Anthropic is expected to go public, possibly this year, and is reportedly preparing to tell investors that its potential revenue opportunity exceeds $30 trillion, the largest total addressable market in the history of finance. The obvious question is, if the maximal upside case is roughly a quarter of all human economic activity, what is the maximal downside case? A tobacco company in 1970 might have said "billions in lung cancer damages." Anthropic's negative TAM is "you and everyone else on earth will be killed by our AI." I do not think that all calls to slow down are insincere. But it is great marketing. In hindsight it is strange that the SpaceX prospectus has no risk factor disclosing a P(doom). If you want IPO investors excited about your capabilities, "dude, we might kill everyone" is the most flattering thing you can say about a product, and when OpenAI lists it will presumably need to claim 15 percent.
My own view is less charitable about the numbers and somewhat charitable about the people. These companies have built remarkable technology. But the outcomes they have promised, a quarter of the world economy routed through an API, will not arrive on any timeline that matches the capital being committed to them. The balance sheets of these companies are probably, to put it gently, a real freak show of compute commitments measured in the hundreds of billions, circular financing, and revenue that is real and growing and nowhere near the denominator. From a fiduciary perspective, if you are taking that to the public markets next year, the messaging is not mysterious. A product so capable it is a threat to the species justifies literally any valuation. A product that is a really good devtool for programmers and can produce some new abstract mathematics with a verifier attached does not. As a pitch to customers, leading with the end of the world is like unveiling a new robot where the One More Thing is that it is really efficient at killing kittens. But customers are not the audience. The audience is Wall Street and a small, terminally online subculture of the Bay Area, the two places on earth where turning kittens into grey goo is either an exciting philosophical proposition or a great source of alpha.
The Bloomberg analysis also tells a plainer story that requires no theology at all. A handful of labs sell frontier models at frontier prices and older models for much less. Training the next frontier model costs ever-increasing billions. Each lab has to keep racing because if it stops the others will eat its lunch, but if they all slowed down together they would spend less on compute and charge frontier prices for longer. Agreeing to that in a room is a textbook antitrust conspiracy, a coordinated restriction of output. Publishing papers about how important it is to slow down, and asking the government to impose the pacing that the companies cannot legally agree among themselves, has a similar coordinating function with none of the legal exposure. Anthropic's own call to "pace the frontier" asks for coordination among democratic-country labs, and a footnote adds "with government mediation or waivers of antitrust restrictions." This pretty much looks like asking to form an economic cartel, but one blessed by the government. The most pointed response came from the people the labs were asking for help. If the software developers (and I say this as one myself) at the labs feel ethically obligated to slow down, they are entirely free to do so. Nobody is building more compute than the people asking to be slowed down. So colour me skeptical.
None of this requires anyone to be disingenuous or lying. It requires only that a sincere millenarian belief system, a fiduciary responsibility, a flattering risk factor, and a coordination problem all point in the same direction at the same time. When that happens, the belief gets amplified for reasons that have nothing to do with whether it is true, and that is how we end up with governments talking about the end of days from the Terminator.
But China
Every conversation about pacing the frontier in Washington ends on the same two words. But China. The premise is mostly wrong. China does not buy the superintelligence race. Its policy documents push diffusion, not takeoff. Every mayor, governor and state-owned enterprise is told to put models into factories, traffic lights and robotics, and something like an eighth of America's compute is spread thinly across the country rather than concentrated on one bet. China has also had the strictest and most burdensome AI regulations in the world for three or four years and did its catching up under them. And much of the closeness of the "race" is distillation, Chinese labs training on the outputs of American frontier models, which makes the American labs the speedboat and DeepSeek the wake surfer, with the people in the boat shouting that they need to go faster. Every safety argument here collapses on "but China," and the collapse is not really about China.
China is going to build language models. America is going to build language models. Europe is going to build language models. We have Ford, Mercedes and BYD, get over it. That is what globalisation and markets look like when they work, and they are good things. Globalisation is simply the Pareto optimal equilibrium of capitalism once you stop drawing lines on the map, and every tariff and export control is a step off that frontier. China is a country of over a billion people who want exactly what every American wants, a job, a house, upward mobility, and kids who do better than they did. I will not defend the actions of any government, in Washington, Brussels or in Beijing, and neither will a great many of the people living under them, because no country is a homogeneous bloc, any more than Texas and Vermont are. Nationalism is, as most rational people eventually recognise, a form of mental illness, the conviction that a stranger is your enemy because of which side of an arbitrary line on a map each of you happened to be born on. It is also the toxic jet fuel every "but China" argument runs on. Having spent a considerable amount of time there, my honest read is that the West deeply misunderstands China, and that Washington's picture of it is mostly dots connected into an incomplete plot. Othering a billion people is a dangerous road and we know where it leads. And if the people invoking human extinction actually believed it, the logic would not be a race at all. It would be One World or None.
The future tense industry
I write this because I understand the collective action problem all too well, and the mechanism is the same one that filled the metaverse with consultants and created the crypto cesspit. It is the particular malaise of the professional managerial and chattering classes, a fallacy of composition in which what is rational for each individual to entertain produces an irrational outcome for the whole, and the people leading the charge often have perverse economic incentives to believe absurdities, or at least to feign belief. The madness of crowds is a very real phenomenon. AI existential risk is just its newest form, and we should learn from the very recent excesses that literally just happened this decade. But we probably won't.
A sensible career move for each person leaves the whole crowd talking nonsense. A safety researcher needs a resignation letter that gets a headline so they can go on the conference circuit and land their next gig. A journalist needs a story an editor considers spicy, and "misconfigured test harness" is not that story. A consultancy needs an AI existential risk practice so they can write whitepapers. A podcaster needs a guest with a ridiculous P(doom) to get ad money. A senator needs anything that will galvanise their base. None of them has to believe the whole story. Each needs only to believe that the others believe it, and the resulting consensus is far stronger than anyone's private conviction.
It is also, as it was in 2022, extremely profitable. AI existential risk is the new NFT property law, the thing you must have a view on to be a serious person in the room, the panel that never runs out of things to discuss precisely because the object under discussion does not yet exist, and what could be more exciting than the literal end of days? The less the technology does in an unverifiable domain, the more interpretation it requires. Without agreed conditions for failure, the prophecy can survive every result. And the rewards, the funding rounds and the bylines and the fellowships, arrive long before the forecast can be judged.
The people who understand the technology and the people who write about their existential risk overlap about as much as the technologists and the finance people did during crypto, which is to say the intersection of the Venn diagram is small and shaped precisely like a sphincter.
We have Tower-of-Babeled ourselves into a world where words are infinitely cheap to produce, and where the slurry of terms like "recursive self-improvement," "superintelligence," "AGI" and the rest are shibboleths and political signals rather than terms with any concrete referent.
You do not have to believe a word about superintelligence, and I do not particularly, to think transformers are the most useful piece of software written in my lifetime and that they will get better, possibly much better. Better at the things they are already demonstrably good at, which is anything with a compiler, a test suite, a kernel, a ledger, or a measurable outcome. That is not a small domain. It is most of the economy that runs on computers, which is most of the economy. The productive response to a technology like that is the boring one every previous general-purpose technology got, which is more of it. More GPUs, more data centers, more power to run them, more labs, more open weights, more of it in more hands. Let it diffuse into markets, logistics, drug discovery, and the ten thousand unglamorous back offices where a verifier already exists and a model can be checked against it. The economic growth is real and probably on the order of trillions. It just does not come from a machine god. It comes from where it always has, from making a very large number of ordinary tasks cheaper and letting that compound across a global economy that is finally, after a decade of crypto, metaverse, and app bullshit, getting a genuine productive technology.
Almost none of that money has been collected yet. Most large companies are spending too little on this, not too much. What the average Fortune 500 employee has access to today is roughly what most of us were using two or three years ago, a chatbot in a browser tab, a Copilot that schedules meetings, and a procurement process that takes longer than a model generation. Waste Management reportedly added 190 basis points of margin by letting a model route its garbage trucks. The future of AI looks more like garbage truck routing algorithms, not a machine god. The binding constraint on this technology is not capability. It is diffusion.
None of this means there are no externalities. Parasocial relationships with a chatbot, especially for children, are a real one, and the fix is the boring kind we already know. Adults can drink vodka until they pass out, but pubs have age limits, and maybe chatbots should too, at least until developing "relationships" with AI companions is as universally recognised a bad idea as drinking yourself into oblivion. That is a mundane policy problem we should remedy soon, not an extinction event.
So no, transformers are not going to end the human species. The case for restraint needs a causal link between that buildout and the extinction of the species, and what is on offer instead is a lot of sound and fury signifying nothing. More GPUs does not mean more of an undefined risk that does not exist yet. Every causal chain argument people actually point to falls apart under even the smallest bit of scrutiny. The honest truth is that the technology is really good, but it is not that good yet, and we do not know how to get it to the next level beyond scaling yet. If that changes, if someone produces an oracle for open-ended intelligence, I will revise. I have not seen that yet.
AI will change software, and mathematics, and a great deal else that has a strong verifier oracle attached. They are not going to end the human race, and the chattering class currently arranging the flowers for the funeral of humanity will, in a few years, age about as well as their prognostications about the metaverse. Because reality has this funny way of asserting itself.
-
π crosspoint-reader/crosspoint-reader 1.6.5rc release
Summary
Library view
Recent Books has grown into a powerful way to browse your entire collection on your SD card. Sort by recently added, title, or author, and use search to instantly find exactly what you're looking for.
X4 Classic support
The new ESP32-S3-based X4 Classic is officially supported now.
The rest
List navigation is a bit snappier. SD reads are a bit faster. Sleep-screen transparency is more accurate. KOSync now sends more precise EPUB reading positions. EPUB lists, hidden content, chapter position display, and end-of- book navigation also received fixes. The release also reduces font and EPUB memory pressure, fixes USB drive disconnection, and improves web file-transfer safety.
What's Changed
- chore: update pioarduino to 55.03.311 by @serialx in #3397
- fix: Fixes KOSync memory checks and reduces memory pressure by @itsthisjustin in #3412
- fix: pack font manifest catalog into one arena by @fain182 in #3398
- docs(issue forms): Correct links to scope/roadmap by @cassidyjames in #3433
- fix(reader): synchronize end-of-book menu selection by @Daviex in #3418
- fix: render NFD Hangul filenames from macOS transfers by @serialx in #3036
- fix: reader's menu book chapter current position by @unnamedd in #3437
- fix: stabilize X3 EPUB anti-aliasing by @uxjulia in #3439
- fix(input): wake the idle poll on raw button contact so short presses register by @Techneaux in #3463
- feat: HTTP serve static with Cache-Control and ETag headers by @shirok1 in #2560
- chore: add direct download links for PR artifacts by @Uri-Tauber in #3389
- fix(webserver): normalize every user-supplied path and escape file names in the files page by @s0lness in #3353
- chore: Consolidates grayscale capability checks and enables absolute grayscale for supported screens by @itsthisjustin in #3478
- fix: don't display elements with hidden HTML attribute by @jjharpham in #3390
- fix(KOSync): compare mapped KOReader sync positions by @WhoTheHeck in #3111
- fix: update OTA to recognize the new format by @Uri-Tauber in #3493
- fix(debugging_monitor): if PSRAM is logged, add subplot by @olifre in #3490
- fix(KOSync): preserve precise KOSync upload progress positions by @WhoTheHeck in #3174
- refactor: reduce EPUB heap fragmentation with unique ownership by @serialx in #3518
- fix: reduce font-cache heap fragmentation by @serialx in #3521
- fix: release font caches before EPUB chapter layout by @serialx in #3527
- chore: add x4 Classic to CI pipelines by @Uri-Tauber in #3532
- docs: make roadmap easier to scan by @fain182 in #3517
- fix: number ordered lists and fix list container indents by @jan-xyz in #3500
- fix: dropped presses while a list repaints by @Techneaux in #3534
- perf: batch SdFat's SPI transfers on ESP32 by @osakanataro in #3501
- fix: USB OTG not disconnected when you unplug the cable by @itsthisjustin in #3538
- feat: Library view by @oreglio in #3366
- fix: Skip bw rendering on sleep images & fix white as transparent for sleep covers by @itsthisjustin in #3541
New Contributors
- @cassidyjames made their first contribution in #3433
- @Daviex made their first contribution in #3418
- @unnamedd made their first contribution in #3437
- @Techneaux made their first contribution in #3463
- @shirok1 made their first contribution in #2560
- @s0lness made their first contribution in #3353
- @jjharpham made their first contribution in #3390
- @olifre made their first contribution in #3490
- @osakanataro made their first contribution in #3501
Full Changelog :
1.6.0...1.6.5rc -
π smol-machines/smolvm smolvm v1.18.0 release
What's Changed
- Let aarch64 Linux resume a branch source instead of freezing it by @BinSquare in #1327
- Attach host disks and vhost-user block devices to a machine by @BinSquare in #1326
- agent: refresh persistent DNS and retain shutdown receipts by @sgrove in #1328
- Return a directory listing when the files API is asked for a directory by @BinSquare in #1330
- Fail a delete that needs confirmation when stdin is not a terminal, instead of reading EOF as a decline and exiting successfully by @BinSquare in #1333
- Run the image's own entrypoint for a cached --oci-cache run instead of the bake's no-op placeholder by @BinSquare in #1335
- Provision the --oci-cache bake without launching a workload so images without /bin/true can be cached by @BinSquare in #1340
- Give a clone a host port the kernel will not reassign before it binds by @BinSquare in #1341
- Rebuild libkrun so aarch64 machines can branch again by @BinSquare in #1342
- Make incremental checkpoints reusable as a Rust crate by @BinSquare in #1344
- Reserve every recorded host port so a clone is never given a stopped machine's port by @BinSquare in #1345
- Forward CLI --secret-env/--secret-file secrets to the workload on the oci-cache and pack-ref run paths by @BinSquare in #1343
- Save checkpoints without staging a second RAM copy by @BinSquare in #1305
- Prepare SmolVM v1.17.0 for release by @BinSquare in #1346
- Wait for VM threads to exit before restarting machines by @BinSquare in #1347
- Say why a machine on the default network backend shows no interface and cannot ping by @BinSquare in #1349
- Pause and resume machines without losing running execution by @BinSquare in #1350
- List machines in name order so repeated listings stop reshuffling by @BinSquare in #1356
- Allow the path-following getxattr and setxattr so a systemd guest is not killed by seccomp by @BinSquare in #1357
- Pin the Nix flake to 1.17.0 with its real release hashes by @BinSquare in #1360
- Restore a checkpoint's disk as a copy-on-write layer over a shared base instead of copying it by @BinSquare in #1359
- Unpack an older image cache's layers on the host once instead of in every machine by @BinSquare in #1352
- Give checkpoints a history and let a stored checkpoint restore any generation in it by @BinSquare in #1351
- Add --guest-subnet so a guest running Tailscale or another CGNAT VPN keeps its gateway and DNS by @BinSquare in #1362
- Checkpoint machines created from a pack and reattach the pack's layers on restore by @BinSquare in #1361
- Substitute credentials on the way out instead of exposing them to the guest by @BinSquare in #1348
- Bump libkrun to the TSI stream intercept pin and rebuild the bundled libraries by @BinSquare in #1368
- Fix packed disk attachment and status broken-pipe VM shutdown by @BinSquare in #1369
- Allow writev in the VMM seccomp filter so the credential interceptor is not killed by @BinSquare in #1371
- Bump libkrun to complete intercepted TSI connects only after the interceptor reaches the destination by @BinSquare in #1372
- Prepare SmolVM v1.18.0 for release by @BinSquare in #1370
New Contributors
Full Changelog :
v1.16.2...v1.18.0 -
π Filip Filmar grlib: Gaisler's GRLIB and the NOEL-V Core as a Bazel Module rss
The
grlibBazel module packages GRLIB, Gaisler’s (Frontgrade’s) GPL VHDL IP library, so that the NOEL-V RV64 RISC-V core and the AMBA infrastructure around it can be consumed as ordinary Bazel dependencies. It is the module that puts the CPU into Cocoapuffs, the SoC that boots Fuchsia’s Zircon kernel on an Artix-7 FPGA. It is also the module where I learned the most about what it costs to move a large, make-era VHDL codebase into a modern build system, which is what this post is mostly about. It follows rules_vivado in my series on the modules behindcocoapuffs-fpga. -
π Console.dev newsletter Rune rss
Description: Unix-inspired IDE.
What we like: Pick between VSCode, vim, or emacs editor style. Has a full window manager with terminal and multiplexer built in. Each environment can connect to others through a built-in e2e encrypted network. Works with AI agents. Natively GPU accelerated.
What we dislike: Not all languages at the same level of support e.g. Go, Python are Tier 1, but TypeScript is still in development.
-
π Console.dev newsletter Fallow rss
Description: JS refactoring CLI.
What we like: CLI does static analysis on JS/TS codebases to find improvements - unused code, complex code, duplication - and areas for improvement. Understands TypeScript types and packages. Supports various output formats e.g. terminal reports and CI PR comments.
What we dislike: JS/TS only.
-
π Ampcode News Shared Runners rss
You can now share a runner with your workspace. Start it with
--shareand everyone in your workspace can start threads on that machine from ampcode.com.
If you have a machine with GPUs, a Mac that's used to build and sign the iOS app, or a dev box in a specific network, you can now set it up and the whole team can spawn agents on it:
$ amp --no-tui --runner-id macos-builder --shareEveryone in your workspace now sees it in the picker under Shared Runners.
With
--amp-env, a shared runner gets the workspace and project Secrets & Env Vars, but never your personal ones. That applies to your own threads on it too.We need to offer a word of warning, though: everyone you share with runs code on your machine as you, with your files, your credentials, and your logins. Their threads can also work in the same directories at the same time. So only share a runner with people you'd trust with a shell on that machine. Even better, give the runner a machine of its own. (Better still: use orbs, so that every thread gets its own machine.)
Workspace admins can turn off runner sharing in Member Settings.
Read more about sharing a runner in the runner docs.
-
π Ampcode News The Mac App Is Your Runner rss
The Amp app for macOS now starts a runner for you. You no longer need
amp --no-tuiopen in a terminal to run threads on your Mac.
Open App Settingsβ¦ (ββ§,), go to Runner, and click + to add a folder or one of your projects. Start a thread and your Mac is right there in the picker, marked This Mac. You can also pick it when you start a thread from ampcode.com, your phone, or Puck.

No More Sleeping on the Job
Keep This Mac Awake stops your Mac from going to sleep while the runner is on and the Mac is plugged in, so you can still start threads on it after you walk away. The screen still turns off and locks. On battery, or when you close the lid, your Mac sleeps as usual.
Read more in the runner docs.
-
- September 23, 2026
-
π exe.dev What's Going on With the Air Quality in San Francisco? rss
On Wednesday, the air in San Francisco smelled like smoke. I pulled up PurpleAir and the Bay Area Air Quality District and sure enough, the AQI was up in certain parts of the city. It looked like a local fire of some kind.
I wanted to see what was going on, so I spun up a new VM and gave our coding agent Shelley the following prompt:
I am detecting a little bit of bad air quality here in San Francisco and I'm looking at like Purple Air and the Bay Area Air Quality District to see what's going on, and it does indeed look like we're having some higher AQI in different areas. And I'm wondering if we can make a fire watch aggregator that takes as many sources as possible, including you know press releases from fire departments or whatever, as well as purple air data or more official stuff, as well as current winds and things like that and give me a map of what's going on and where and why because I'm very interested and it feels like the type of thing that we should actually be able to do really well.While Shelley was working, I asked Claude if there was a fire in San Francisco. It found a news story pointing to a controlled burn on Angel Islandβbut no confirmation it was happening today. It also picked up on something Iβd mentioned about the wind: if the wind was blowing east across Angel Island, the smoke would blow toward Richmond, Berkeley, and Oaklandβnot San Francisco.
I sent it a handful of PurpleAir screenshots, and noted that there might be more smoke on the hills, like in Pac Heights and Nob Hill. Claudeβs guess was βa layer of smoke sitting above the cool marine air,β with the hilltop sensors poking into it.
To test this theory, Claude suggested cross-referencing every PurpleAir sensor with its elevation and temperature. I pasted the whole conversation into Shelley, along with the implementation notes Claude gave me. Then I got it to help me wire up an integration with a PurpleAir API key I had freshly minted. That way it could access the PurpleAir API without actually getting the credential inside the VM.
This got me most of the way there. But I couldnβt see the wind. So I asked Shelley to add it as an animation. All told it took just under an hour and probably could have been done faster if I hadnβt been interleaving it with other things. Now I have a website I can point my friends to.
The results are here: https://firewatch.exe.xyz. If you want to build your own, go to https://exe.dev.

-
π r/LocalLLaMA Jev isn't new tech. Its marketing targets people who think AI started with LLMs. rss
I keep seeing Jev presented as some new class of decision model, but most of whatβs being advertised is just normal classifier behavior with modern zero- shot capabilities.
It outputs probabilities over constrained choices, doesnβt generate autoregressively, canβt output an invalid class, and can use labels defined at inference time. None of that is new. Zero-shot/NLI classifiers, embedding models, cross-encoders and rerankers have been doing variations of this for years.
The weird part is that most of the impressive Jev comparisons are against LLMs. Of course a specialized classifier is faster and cheaper than making an autoregressive LLM generate an answer. That doesnβt establish a new paradigm. The meaningful comparison is against strong existing classifiers. The purpose of this is to mislead.
There are already benchmarks like BTZSC evaluating dozens of zero-shot classifiers across 22 datasets, including NLI models, embedding models and rerankers. I havenβt seen Jev properly benchmarked across that landscape yet.
(https://proceedings.iclr.cc/paper_files/paper/2026/hash/417e1c15b3d49852fceded8aa104107d-Abstract- Conference.html)Where people have compared Jev with conventional classifiers, the story is much less magical. One Banking77 experiment got 93.3% from BGE-small + logistic regression versus 83.2% for Jev, at about 9ms locally.
(https://github.com/ickma2311/jev-baselines- eval)Some of the marketing also goes into the misleading territory. The βcanβt hallucinateβ framing is very sus, for example. Their own explanation admits the 0% hallucination figure is not empirical, and what they actually guarantee is that Jev returns an answer matching the allowed schema. That prevents invalid outputs, it does not prevent confidently choosing the wrong valid answer. (https://typesafe.ai/blog/introducing-system-one-models-and- jev)
So color me a skeptic. Look, Jev might even be a good product. Maybe their unpublished architecture or RLCD training method is genuinely novel. But nothing we've seen so far establishes that "System One Models" are a new class of AI. What the public evidence mostly establishes is that using a specialized classifier for classification can be much cheaper and faster than using an autoregressive LLM, which we already knew. It only sounds novel if your idea of AI begins and ends with LLMs.
submitted by /u/tiensss
[link] [comments] -
π exe.dev Share Shelley Skills Across Your VMs rss
At exe.dev, we use integrations to connect your VMs to other services securely and simply. Usually this takes the form of a proxy that injects secrets.
We love hearing from our customers (hint, hint, email us, donβt be shy), and one of them was doing significant gymnastics to share skills across their VMs. Nothing wrong with that (rsync is right there, after all), but we realized we could use the same integrations machinery we already have to share skills files as well. You register a skill once, and attach it to any VMs that you want to see it. Shelly uses the βreflectionβ integration to see if there are any skills integrations, and, if so, surfaces them.
-
π HexRaysSA/plugin-repository commits sync repo: +6 releases, -1 release, ~4 changed rss
sync repo: +6 releases, -1 release, ~4 changed ## New releases - [ida-mcp](https://github.com/hexrayssa/ida-mcp): 20260923.0.4, 20260923.0.3, 20260923.0.2, 20260923.0.1 - [ida-nexus](https://github.com/hexrayssa/ida-nexus): 0.13.0 - [ida-settings-editor](https://github.com/williballenthin/ida-settings): 1.3.0 ## Changes - [ida-codemode](https://github.com/hexrayssa/ida-codemode): - removed version(s): 0.5.3 - [mcrit-ida](https://github.com/danielplohmann/mcrit-plugin): - 1.1.9: download URL changed - 1.1.8: download URL changed - 1.1.7: download URL changed - 1.1.10: download URL changed -
π r/LocalLLaMA Mods: can we do something about half the forum getting filled with these advertising posts for Jev? rss
Jev is a paid product that dumped a lot of venture capitol money into shill their product here and in other subreddits. Obvious shill posts are obvious.
submitted by /u/Acrobatic_Stress1388
[link] [comments] -
π r/LocalLLaMA this is not even a competition at this point ... this is embarrassing rss
| submitted by /u/johnnyApplePRNG
[link] [comments]
---|--- -
π r/LocalLLaMA Pirate Face - pirate bay for LLMs rss
| The title says for itself In case someone desides to censor huggingface, we'll have an alternative Edit: A lot of responses so I'll leave it here: - I'm not the author.
- If I were the author I wouldn't use the word "piracy".
- If you're the author, please, rename the domain! What is free in the first place must be named as such, we're not pirating anything.
submitted by /u/Atagor
[link] [comments]
---|--- -
π Probably Dance The Mundanity of Excellence, Small Wins, and Why You Should Fix Bugs Before Writing New Features rss
I'm not good at prioritizing tasks, but there is one rule I follow and that I can justify very well: If something worked yesterday and is broken today, I will drop whatever I'm doing and fix that thing. No matter how small and seemingly unimportant the broken feature is.
To justify this I will quote from the paper "The Mundanity of Excellence" by Daniel F. Chambliss:
Superlative performance is really a confluence of dozens of small skills or activities, each one learned or stumbled upon, which have been carefully drilled into habit and then are fitted together in a synthesized whole. There is nothing extraordinary or super-human in any one of those actions; only the fact that they are done consistently and correctly, and all together, produce excellence. When a swimmer learns a proper flip turn in the freestyle races, she will swim the race a bit faster; then a streamlined push off from the wall, with the arms squeezed together over the head, and a little faster; then how to place the hands in the water so no air is cupped in them; then how to lift them over the water; then how to lift weights to properly build strength, and how to eat the right foods, and to wear the best suits for racing, and on and on. Each of those tasks seems small in itself, but each allows the athlete to swim a bit faster. And having learned and consistently practiced all of them together, and many more besides, the swimmer may compete in the Olympic Games. The winning of a gold medal is nothing more than the synthesis of a countless number of such little things
I claim that the same thing is true for software, and what's important is to lock in those small wins.
I learned this lesson when working in video games. The company I worked for had trouble shipping high quality games. We didn't ship bad games, but we just couldn't compete with the likes of Blizzard or Nintendo. Since then I have worked at different places to learn how to ship high quality software, and mostly learned that there is no magic. You just have simple improvements like
- better processes that aren't too surprising to anyone (e.g. more tests, more code review, ensuring that there are never any broken builds etc.)
- shorter feedback loops so that you learn quickly when there are issues
- better coding practices and higher standards for what code is acceptable to push (e.g. if it's not easy to see that code is correct, don't push it)
- priority for bug fixes instead of fixing things when you next feel like you have some free time
These are equivalent to the examples in the "mundanity of excellence" quote in that they lead to better programmers. But I want to focus on the last one because if the processes lead to excellent programmers, the bugfixes are required for excellent programs.
When software reaches a certain level of complexity you can no longer get improvements with big wins. It's similar to the olympic swimmer example from the quote above: you need lots of little improvements. Things like tooltips, shortcuts, customization, responsive performance or correct handling of edge cases and niche use cases. These are the things that elevate your software from "works and mostly does the job" to "people like it and like working in it". But these are also the things that tend to break and stay broken. If you don't keep these things working, your software will always erode back down to a 7/10 quality level.
If you work at a good organization, all of this may sound trivial to you. But I can assure you that most places do not work like this and it's surprising to lots of programmers that bug fixes, even for features that are of low importance, should take priority over work on new, highly important features. As a very visual demonstration of this, here is a comparison of all the details that worked in Far Cry 2 and were broken in Far Cry 5:
Far Cry 2 came out in 2008 and ran on a Playstation 3, Far Cry 5 came out ten years later on the Playstation 4, a much more powerful machine that was much easier to program. There is no good reason why so many things should be worse in Far Cry 5. The only reason is that these are details, and details tend to break and this is what it looks like when that has gone on for ten years. Far Cry 2 was a great game (yes, there is one big complaint that everyone has, but ignoring that it was a great game) and Far Cry 5 is just meh. Many developers over the years thought that details like this weren't that important to keep working, and as a result you get a much worse game.
And it's not just game development. Condition variables had been broken in glibc since 2016 and I have been trying to get them fixed by submitting patches since 2020 and haven't had much luck until I finally got through in 2025. They mostly worked and only broke occasionally, so people just didn't prioritize it.
But if you actually want to ship good software, you have to do like the "mundanity of excellence" quote says and lock in those improvements. Good software is a collection of small wins, and unfortunately small wins are the first thing to erode away if you don't lock them in.
Automated tests obviously help for this and are a necessity past a certain level of complexity. But they can't catch everything and when something slips through, you just have to fix it first.
Excuses
Whenever you push for better practices, you get the same excuses. There is no time, we don't have the manpower, we're already behind and this feature was supposed to be released two weeks ago. These are all very real reasons why people are not doing things, and if you dismiss these complaints they get very mad at you because they really have these issues. It's just that from the outside, it's clear to see that they're stuck in a capability trap. The reason why you have no time is that you have bad practices. If you think you need more manpower to have more tests, you're doing it wrong. The tests would allow you to ship the same software with fewer people, not with more people. Unfortunately this is not true in the short term, (when adopting new practices, things get worse before they get better) so switching is hard.
The article to read on this topic is "Nobody Ever Gets Credit for Fixing Problems that Never Happened: Creating and Sustaining Process Improvement".
Quotes
To back up that you should fix things early and lock in a high quality early, I'll quote from highly successful game developers. Here is Blizzard:
There's this idea out there, that the reason why Blizzard polish is better is because we get six months at the end. And obviously we're very fortunate to get more time, but the polish doesn't happen at the end. The polish happens all along the way, from the very beginning. [β¦] If you just leave it to the end, you're not going to get there.
From the GDC talk βMaking a Standard (and Trying to Stick to it!): Blizzard Design Philosophiesβ by Rob Pardo:
Here are several quotes about id software:
βPolish as you go. Don't depend on polish happening later. Always maintain constantly shippable code.β
βIt's incredibly important that your game can always be run by your team. Bulletproof your engine by providing defaults upon load failure.β
βWe are our own best testing team and should never allow anyone else to experience bugs or see the game crash. Don't waste others' time. Test thoroughly before checking in your code. No throwing it over the fence for testers to find and put a bug in the database and then fix it later. It's a wasteful cycle.β
βAs soon as you see a bug, you fix it. Do not continue on. If you don't fix your bugs your new code will be built on a buggy codebase and ensure an unstable foundation.β
From the GDC Europe talk βThe Early Days of id Softwareβ
https://www.youtube.com/watch?v=E2MIpi8pIvYSummary
So why should bugfixes take priority? Let me slightly modify the quote from the beginning:
Superlative software is really a confluence of hundreds of small polishes or features, each one designed or stumbled upon, which have been carefully locked in by tests and then are fitted together in a synthesized whole. There is nothing extraordinary or super-human in any one of those features; only the fact that they are done consistently and correctly, and all together, produce excellence.
-
π Drew DeVault's blog Why is Hacker News like that? rss
Hacker News (aka HN) is a link aggregator where βhackersβ1 gather to discuss technology, politics, and anything which βgood hackers would find interestingβ. HN is a means by which its host, prominent startup incubator Y Combinator, projects soft power, promotes startups it funds, and feeds people with ideas into its incubation program. Hacker News is one of the most popular forums for discussing technology online today β perhaps the biggest.
HN also has a pronounced political bias, which is growing more exaggerated with time. Many of its users have long claimed centrist or βapoliticalβ views. On a forum created by a startup incubator, itβs no surprise that capitalism is generally taken as given, often with a libertarian angle. Labor is generally de-emphasized (the consensus on HN is almost always anti-union) and openly advocating left economics like communism or socialism is generally frowned upon. Progressives have, on the whole, abandoned the forum.
The right wing has not. Yesterday, I saw a post about the new release of the Grok LLM, Elon Muskβs βanti-wokeβ AI project. Virtually all of the comments are fawning over the release, and debating the finer points of its technical achievements, price, and competitiveness. There are remarks that object to the tool on the basis that its owner, Elon Musk, is a fascist, and that it is designed to amplify hate speech. Almost all of these remarks are βflaggedβ, moderated by other HN users until they are not visible by default.2
Some examples of comments flagged out of existence:
Until Musk owns up to his Nazi salute, I wonβt be using Grok, sorry. I donβt care how good or cheap it is. And no, I wonβt stop talking about it either.
Your friendly reminder that Grok is owned and directly steered by the white supremacist guy with the fascist haircut who does nazi salutes and fucked up decades of international order to settle scores for his apartheid south african family. Any amount of using the model supports this.
Iβm dying to know how everyone who works on this product sleeps at night. How does one reconcile a sense of ethics with helping Musk make more money on AI-generated CSAM and racism
And, my personal favorite:
I have to say Iβm a little perplexed by HNβs perpetual willingness to use grok like itβs a normal product made by a normal company.
Thereβs often frustration that every thread related to a Musk company includes a discussion about Musk, but Musk himself caused that by being the only tech founder to actively campaign for Trump. (Zuck, the runner up, didnβt do anything even close to this). Every product at every company he owns is hopelessly tethered to his decision to do that, and deserves to be judged on those terms.
Another popular story today is about US rollback of climate regulation under Trump. Some fraction of every cent you spend on Grok goes to support stuff you hate, and yet people get genuinely annoyed when you point it out. Musk and his companies really are special and should be treated as special.
Every thread about a Musk company or product needs a comment like this one. If we had the right values, every comment would look like this one.
All of these are gone.
Overt hate and bigotry on Hacker News is uncommon, but not rare, and often gets pushback. Covert hate (e.g. dog whistles) is more common, and when called out the call-out usually gets flamed rather than the hate. Unexamined bias against progressivism and the rights and interests of anyone who isnβt the βdefaultβ middle-class white cis male, is incredibly common, and anyone who questions these biases is generally subjected to flames and moderation action.
Why is Hacker News like this?
Moderation on HN
Hacker News has two formal moderators, both employed by Y Combinator: Daniel Gackle, aka dang, and Tom Howard, aka tomhow. Scott Bell (sctb) assisted with moderation until 2019. They employ a variety of technical tools to do the job, including:
- Boosting or sinking the rank of posts, or βburyingβ them entirely
- Deleting posts (entirely) or βkillingβ posts (marking them as [dead])
- Detaching and/or downranking comment trees
- βShadowbanningβ users
- Overtly banning users
Moderators occasionally post comments and intervene in discussions, steering things one way or another or explaining their moderation decisions.
There are also automated moderation systems, which for example try to detect flamewars with heuristics like the ratioes between post score, age, and the number of comments, and apply a downward pressure to the postβs ranking to reduce the visibility of controversial topics. Of course, the topics which are deemed controversial by the automated systems are, more often than not, progressive politics.
Users above a certain (small) amount of βkarmaβ gain the ability to βflagβ posts, allowing Hacker News to self-moderate. Posts or comments can be hidden entirely (made βdeadβ) with a small number of flags, particularly early on, before they gain enough votes to influence the flagging algorithm. This is the mechanism which was used to silence criticism of Grok and Elon Musk in the thread discussed earlier. By and large the flagging mechanism is used to silence progressive opinions and articles from being posted on Hacker News. Once a post or comment is flagged, it can be βvouchedβ for, but this generally does not work in practice due to a relatively straightforward bias: flagged posts are only visible to users who opt-in, are moved to the bottom of threads and hidden from view, and one can flag at any time but cannot vouch for a post proactively. Once a comment or post is gone, it generally stays gone.
The moderators tend to view the automated moderation and the flagging mechanism as neutral, and use it to deflect responsibility for moderation decisions onto the tools or the users who use them, i.e. the βcommunityβ in the abstract.3 However, ultimately the moderators are in control of these tools and are aware of their biases and the outcomes they produce.
So⦠why is Hacker News like this?
Y Combinator
Hacker News is like this because the people responsible for it are like this, in particular the people at and in the orbit of Y Combinator.
Hacker News goes to some lengths to portray itself as independent of the company that owns it, Y Combinator. Nonetheless, Y Combinator decides who gets to be in charge of Hacker News, and the raison dβΓͺtre of Hacker News is, at least originally, a forum for YC-backed startup founders to socialize and discuss the news of the day. To this day, YC-funded startups have access to special privileges on HN, in particular the ability to post directly to the front page with a special ranking algorithm (to advertise job openings and announce startup launches). There is also a feature that allows YC founders to spot each other more easily, with their usernames showing up in orange to each other.
Y Combinatorβs portfolio
The YC startup directory lists (almost) all of the companies which have received funding from Y Combinator, a list which shows a history of funding companies without a competent ethical evaluation. Coinbase, for example, is one of YCβs βunicornsβ, and has donated tens of millions of US dollars to various pro-cryptocurrency political organizations, which tend to skew right wing by a ratio of 2:1, and Coinbase now funds fascist David Hanssonβs Omarchy project. Weβll talk more about Coinbase momentarily. David is also funded by Stripe, another particularly successful YC alumni.
YC also funds companies that specialize in military and police applications, such as Code Four, Lakonia, Closure, Abel Police, Ravn, and more. They were early investors in Flock Safety, a company now notorious for putting up surveillance equipment across America β much of which is now being torn down by infuriated citizens. Another great example is Optifye.ai, surveillance software for monitoring workers in sweatshops in India, and a member of YCβs winter 2025 batch.
Many companies β AirBnB is another example β funded by Y Combinator share the same βmove fast and break lawsβ mindset that is particularly popular among their alumnus. There are many dozens of examples of such companies among Y Combinatorβs portfolio, but I wonβt belabor the point.
Regarding Paul Graham
Y Combinator was founded by Paul Graham in March 2005, along with three collaborators, though Paul (aka pg) was and remains the face of the operation. Paul wrote and launched Hacker News himself using his own dialect of Lisp, and to this day he tends to be revered by the HN community and certainly by the community of Y Combinator founders, partners, and investors. To what extent modern-day HN culture flows from his original spring can be debated, but we can at least understand the nature of that spring.
Letβs consult his blog for some insights. I suggest you click through to my examples and read/skim them yourself for more juicy quotes.
In April 2022, Paul posted βOn Hereseyβ, a post of interest to our question. He explains his feelings on calling someone βx-istβ (i.e. sexist, racist, etc), like so:
For example, when someone calls a statement βx-ist,β theyβre also implicitly saying that this is the end of the discussion. They do not, having said this, go on to consider whether the statement is true or not. Using such labels is the conversational equivalent of signalling an exception. Thatβs one of the reasons theyβre used: to end a discussion.
On intolerance:
There are aggressively conventional-minded people on both the right and the left. The reason the current wave of intolerance comes from the left is simply because the new unifying ideology happened to come from the left. The next one might come from the right. Imagine what that would be like.
Note that this essay was published a mere three months after the January 6th US capital insurrection, where a right-wing mob stormed the US capitol building, erecting a gallows on the lawn and calling for Mike Penceβs head.
A more recent essay, January 2025, βThe Origins of Wokenessβ, also provides ample insight into Paulβs character. Paul on racism:
Racism, for example, is a genuine problem. Not a problem on the scale that the woke believe it to be, but a genuine one. I donβt think any reasonable person would deny that. The problem with political correctness was not that it focused on marginalized groups, but the shallow, aggressive way in which it did so. Instead of going out into the world and quietly helping members of marginalized groups, the politically correct focused on getting people in trouble for using the wrong words to talk about them.
Paul on sexism:
I saw political correctness arise. When I started college in 1982 it was not yet a thing. Female students might object if someone said something they considered sexist, but no one was getting reported for it. It was still not a thing when I started grad school in 1986. It was definitely a thing in 1988 though, and by the early 1990s it seemed to pervade campus life.
What happened? How did protest become punishment? Why were the late 1980s the point at which protests against male chauvinism (as it used to be called) morphed into formal complaints to university authorities about sexism? Basically, the 1960s radicals got tenure. They became the Establishment theyβd protested against two decades before. Now they were in a position not just to speak out about their ideas, but to enforce them.
And on sexual harassment:
One thing I noticed at the time about the first phase of political correctness was that it was more popular with women than men. As many writers (perhaps most eloquently George Orwell) have observed, women seem more attracted than men to the idea of being moral enforcers. But there was another more specific reason women tended to be the enforcers of political correctness. There was at this time a great backlash against sexual harassment; the mid 1980s were the point when the definition of sexual harassment was expanded from explicit sexual advances to creating a βhostile environment.β Within universities the classic form of accusation was for a (female) student to say that a professor made her βfeel uncomfortable.β But the vagueness of this accusation allowed the radius of forbidden behavior to expand to include talking about heterodox ideas. Those make people uncomfortable too.
Was it sexist to propose that Darwinβs greater male variability hypothesis might explain some variation in human performance? Sexist enough to get Larry Summers pushed out as president of Harvard, apparently.
In addition to, in his position as the president of Harvard University, making bio-essentialist remarks about the inherently lesser intelligence of women to explain the demographics of his student body, Larry Summers was a personal friend and correspondent of Jeffrey Epstein, though this connection was not generally known at the time Paul wrote this essay.
Regarding Sam Altman
Then thereβs Sam Altman, who looms large in the history of Y Combinator. Sam was a member of YCβs first cohort of startups, and later became a partner at YC in 2011. Ultimately, Sam replaced Graham as its president in 2011, serving in this role until (roughly) 2019, leaving more or less in disgrace to focus on OpenAI.4 Until then he was held in high regard by Graham and others at Y Combinator, with Graham famously saying of him, βyou could parachute him into an island of cannibals and come back in five years and heβd be kingβ and frequently lauding him in his essays, naming him one of the five βmost interesting startup founders of the last 30 yearsβ, adding that Sam βcanβt be stopped by (β¦) flimsy rulesβ.
After his departure, Sam was ultimately subject to a slew of controversy at OpenAI, whose board of directors tried and failed to oust him, and were quoted as saying of the matter that Sam βwas not consistently candid in his communicationsβ and they βno longer had confidence in his ability to continue leading OpenAIβ.
Samβs mentor, main financial backer, and close friend is Peter Thiel, who Sam invited to join YC as a visiting partner between 2015 and 2017. Sam apparently met his now-husband in Peter Thielβs hot tub. Thiel is a key figure in Palantir, a data analysis company which works closely with militaries, police departments, and US Immigration and Customs Enforcement, which is currently conducting an ethnic cleansing of the United States, and retains the Israeli Defense Force as a client, which is currently conducting a genocide in Palestine. Thiel is a major donor to right-wing parties and an intellectual devotee of and financial backer of fascist political thinker Curtis Yarvin.
Sam, once his own presidential bid died in the crib, donated $1M to Donald Trumpβs inauguration and became an influential public backer of his pro-AI presidency. Of Trump, Sam once said βwatching (Donald Trump) more carefully recently has really changed my perspective on him β¦. Iβm not going to agree with him on everything, but i think he will be incredible for the country in many ways!β Samβs politics also flow from the tradition of Curtis Yarvin, and he invests in and promotes efforts to bring Yarvinβs ultra-libertarian techno-monarchy post-state society into being.
The cherry on top of Samβs story are the allegations of years of sexual abuse and rape his sister has made regarding him, which he and his family denies. The matter is currently being litigated in Missouriβs courts.
Regarding Garry Tan
Finally, letβs address the current president and CEO of Y Combinator, one Garry Tan, who followed the relatively unremarkable former president of YC, Geoff Ralston, in 2023, after being a partner at Y Combinator, and their βdesigner-in-residenceβ, since 2011.
A few weeks before earning this position at Y Combinator, Garry gave a glowing review of Balaji Srinivasanβs βThe Network Stateβ, saying βI legit believe (Y Combinator) is a prototype model for what (Srinivasan) talks about when he says the Network Stateβ. Balaji is an interesting figure β the book in question is a distillation of a talk he gave to an audience at Y Combinator in 2013 which pitches the fascist politics of Curtis Yarvin and his intellectual circle to startup founders. When people started making the connections and Srinivasan started to feel the heat, he emailed Curtis Yarvin about it: βIf things get hot, it may be interesting to sic the Dark Enlightenment audience on a single vulnerable hostile reporter to dox them and turn them inside out with hostile reporting sent to their advertisers/friends/contacts.β
Srinivasan was a prominent founder of many cryptocurrency startups, and notably became the first CTO of Y Combinator-backed Coinbase, which was also funded by Garry Tanβs Initialized Capital fund β alongside Flock Safety. Garry Tan, Sam Altman, and many other people in Y Combinatorβs orbit are big fans of The Network State and funnel influence and money into projects based on its ideas.
Garry is also an important figure at Palantir. He once turned Peter Thiel down when offered a $70,000 check to join the company, but later he became employee #10 anyway. Not much is known about his tenure there, but he did apparently design their logo.
When Garry Tan joined Y Combinator, Sam Altman noted his politics as important for his role there. Altman: βitβs a big deal [in my opinion] that YC will have a CEO so active in local politics. I think YC can make a big difference hereβ. Garry is indeed a big figure in local politics in San Francisco. Heβs spent as much as $400,000 on political initiatives in the bay, with causes ranging from increased police funding and opposition to education reform, regulation of self-driving cars, and decelerationism. In 2024 he got in a lot of trouble when he tweeted a series of raving rants over the progressive SF board of supervisors, culminating in a tweet that read βdie slow, motherfuckersβ, leading to board members receiving death threats and ultimately an apology and a retraction from Garry.
Another fun one: according to Garry the New York Times is upholding βwoke capitalβ, which, according to Garry, is the βideology of Americaβs ruling classβ. So, thatβs nice.
Why is Hacker News like that?
Hacker News is a product of Y Combinator and the people in its orbit, and theyβre not great people. The rules cover what to post and how, and the closest they get to addressing any kind of bigotry, hate, or bias is the following:
Please donβt use Hacker News for political or ideological battle. It tramples curiosity.
The purpose of a system is what it does, and the system at Hacker News amplifies right wing politics and bigotry. The moderators, the users, and the tools available to them collaborate to suppress progressive ideas and re-enforce the kinds of politics that favor Y Combinator, its people and its friends.
I have spoken with the moderators about this many, many times over many years. I have explained to Daniel Gackle how the nature of the automated moderation tools, and the flagging feature, that produces these consequences. I have suggested reforms that would improve the situation. To my knowledge, none of this feedback has ever led to any changes in how HN works or is moderated.
Hacker News is a case study in what inevitably happens to βapoliticalβ spaces. Politics and society are bifurcating, and Hacker News is taking the fork on the right. βApoliticalβ is an excuse to favor the status quo, a resistance to change, and therefore a re-enforcement of the existing biases and power structures of society. Itβs no surprise that Hacker News favors capitalism, opposes labor, and objects to questioning the privileges of its largely white, male, middle-class audience. Itβs βpoliticalβ and βideologicalβ for it to do anything else.
P.S. Iβve been trying to figure these people out for a long time. A book that helped me put a lot of the pieces together was βThe Nerd Reich: Silicon Valley Fascism and the War on Democracyβ, by Gil DurΓ‘n. Itβs a great read, you should check it out too!
-
- September 22, 2026
-
π Simon Willison Claude Opus 5.5, GPT-6 Sol, GPT-6 Luna, and a new price war rss
Yesterday was Grok 4.7 (pelicans) and MiMo v2.6 Flash/Pro (more pelicans). Today Anthropic released Claude Opus 5.5, and around an hour later OpenAI released GPT-6 Sol and GPT-6 Luna. It's going to take a while to get a good read on all of these new models, but here are my impressions so far.
GPT-6 Sol and Luna are half the price of their GPT-5.6 equivalents
GPT-5.6 Luna was already my favorite model for building applications against, because it combined excellent performance with being really cheap. Somehow GPT-6 Luna is half the price of that again - and GPT-6 Sol had a similar reduction compared to GPT-5.6 Sol.
Here's what the pricing landscape looks like today:
Model Input Cached input Output GPT-6 Luna $0.10/M $0.01/M $0.50/M GPT-5.6 Luna $0.20/M $0.02/M $1.20/M Grok 4.7 $2/M $0.50/M $6/M GPT-6 Sol $2/M $0.20/M $10/M GPT-5.6 Terra $2/M $0.20/M $12/M Claude Opus 5.5 $4/M $0.20/M $20/M GPT-5.6 Sol $4/M $0.40/M $20/M Claude Fable 5.1 $10/M $0.25/M $50/M GPT-6 Astra $10/M $1/M $50/M Note that GPT-5.6 has a scheduled 25% price increase for November, so GPT-6 is half the price of the promotional pricing for those models.
(With GPT-5.6 Terra priced the same as GPT-6 Sol, any remaining reasons to use Terra just evaporated.)
It's hard to overstate how competitive this pricing is. Grok 4.7 priced itself at $2/$6, less than half the price of GPT-5.6 Sol, but is now equally priced to GPT-6 Sol on input and closer on output.
At $0.10/$0.50 GPT-6 Luna is one of the cheapest models OpenAI have ever released, beaten only by the far weaker GPT-4.1 Nano ($0.10/$0.40, April 2025) and GPT-5 Nano ($0.05/$0.40, August 2025).
I rendered pelicans for GPT-6 Luna and for GPT-6 Sol, then I combined them all together in this comparison grid along with the GPT-5.6 pelicans. I like how you can instantly see that the 5.6 family chose bolder, brighter colors, while the 6 family is a lot more muted. I still think GPT-6 Astra on max produced the best pelican.

Claude Opus 5.5 got a price cut too
Opus 5.5 looks like it addresses the biggest complaints people had about Opus in terms of its communication style. Thariq Shihipar:
Opus 5.5 is the result of your feedback.
It communicates clearly, it's cheaper per token than Opus 5.0 with the intelligence of Fable 5.1 it's very token efficient and works across every effort level.
It's also meant to be better at Blender. I'm looking forward to putting it through its paces there.
Opus 4.5, 4.6, 4.7, 4.8, and 5 all shared the same price: $5/million tokens for input and $25/million for output. 5.5 is a 20% reduction - $4/million and $20/million.
The price for cache reads fell 60%. That's significant for longer agentic conversations, where 90%+ of input tokens are processed at cached token prices.
The new price for Opus 5.5 is the same as the price for GPT-5.6 Sol, but that was before OpenAI dropped their Sol prices by half.
GPT-6 Astra and Claude Fable 5.1 are both priced at $10/million input and $50/million output. The price war currently affects the next tier of models below that.
Anthropic say that Sonnet 5.5 and Haiku 5.5 are coming soon. It's going to be interesting to see if Haiku can regain its price competitiveness at the lower end, given current Haiku 4.5 is $1/$5 while the latest GPT-6 Luna is one tenth of that price at $0.10/$0.50.
Claude Opus 5.5 max over-thinks to the point of breaking
In a first for my "Generate an SVG of a pelican riding a bicycle" test, Claude Opus 5.5 at "max" thinking level failed to return a response!
It started by calling this "a classic test request", and then thought really, really hard about what it was doing:
This is a classic test request, so I want to plan out a well-composed pelican with its distinctive beak and pouch riding a bicycle with proper wheels, frame, and pedals, set against a simple sky and ground backdrop. [...]
Verifying the shin length checks out at roughly 95.2, close enough. Now I'm working out the near leg path from hip to knee to ankle, then sketching the foot shape resting on the pedal β outlining the heel, toe tips, and sole contour with a path using lines and curves to sit naturally on the pedal surface around y=478-494. [...]
I like the fish sticking prominently out of the basket with the pelican eyeing it as a fun detail worth keeping. I'm also confirming the eye placement near the bill base matches typical pelican anatomy, and considering giving it a slightly happier expression. [...]
The far leg reads correctly as passing behind the frame, so I'm moving on to check the chainring teeth and confirm layer orderingβthe far crank arm should be mostly hidden by the seat tube and chainring. I'm settling on the final SVG's width and height attributes alongside the viewBox to ensure proper scaling, noting there's no text so no font-family is needed. [...]
I was so excited to see this pelican... but then it stopped. Opus 5.5 has a 128,000 maximum output token limit (as do the other Claude models), and it hit that while it was still reasoning about the SVG!
I tried a second time and got the same result. This makes me suspect that "max" is effectively useless - if it over-thinks to breaking point on a stupid SVG prompt I don't trust it not to do the same for more interesting work.
(Those two failures each cost me $2.56 and took nearly 20 minutes.)
Fable 5.1 on "max" didn't over-think and did give me the best pelican I've seen from any Anthropic model.
Here are the Opus 5.5 pelicans, excluding 5.5 max.
I also built this comparison grid comparing them with pelicans by Opus 5, Fable 5.1, and Sonnet 5:

Comparing different model vendors by how well they draw a pelican riding a bicycle may not make much sense now (if it ever did), but I'm still finding value in using them for comparisons of the same model families at different reasoning levels.
I'm now using GPT-6 Sol and Claude Opus 5.5 as my default models in Codex and Claude Code. I've upgraded the Datasette Agent demo at agent.datasette.io to use GPT-6 Luna, and it seems to be fast and competent at both SQL queries and building HTML and JavaScript for Datasette Apps.
You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options.
-
π earendil-works/pi v0.87.1 release
New Features
- Latest frontier models β Use Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna through supported providers, including GitHub Copilot. See Choose a Model.
- Grok 4.7 by default for xAI β New xAI sessions now default to Grok 4.7. See Provider Authentication.
Added
- Added inherited Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna support for GitHub Copilot.
- Added inherited GPT-6 Sol and GPT-6 Luna support for OpenAI API keys and OpenAI Codex subscriptions.
- Added inherited Claude Opus 5.5 support for Anthropic with adaptive thinking and a 1M context window.
Changed
- Changed the default xAI model to Grok 4.7.
Fixed
- Fixed split-turn compaction summaries being refused by Claude Fable 5.1 by clearly separating the conversation and using continuation-oriented instructions (#9908 by @davidbrai).
- Fixed missing or invalid
--modevalues being silently ignored instead of reporting an error and exiting with a nonzero status (#9045). - Fixed inherited image-only user messages being rejected by some OpenAI-compatible providers because they included an empty text part (#9797).
- Fixed inherited Anthropic OAuth requests reporting an outdated Claude Code version.
-
π r/LocalLLaMA New 6B image model coming, AntLing just open sourced the Ming-Image-0.1-Design family rss
| β’ Ming-Image-0.1-Design, 6B
β’ Ming-Image-0.1-Design-Layer, 6B
β’ Two open-source Agent Skills: the Ling UI Design Skill and the Image-to- Editable-PPT Skill Ming-Image-0.1-Design ranks #1 among open-weight models on Artificial Analysisβs UI/UX Design leaderboard. https://huggingface.co/inclusionAI/Ming-Image-0.1-Design
https://huggingface.co/inclusionAI/Ming-Image-0.1-Design-Layer submitted by /u/Sitkin_Marrel
[link] [comments]
---|--- -
π HexRaysSA/plugin-repository commits sync repo: +6 releases, ~375 changed rss
sync repo: +6 releases, ~375 changed ## New releases - [ida-mcp](https://github.com/hexrayssa/ida-mcp): 2026.916.2, 2026.916.1, 2026.915.3, 2026.915.2, 2026.915.1 - [ida-nexus](https://github.com/hexrayssa/ida-nexus): 0.12.0 -
π pydantic/monty v1.0.0-beta.2 - 2026-09-21 release
What's Changed
- bump to b2, fix
monty-proto's self dev-dependency by @samuelcolvin in #908
v1.0.0-beta.1 - 2026-09-21
(
v1.0.0-beta.1released failed on crates.io, hence beta 2 release)- Drop the experimental framing ahead of v1 by @rewitt94 in #811
- Percent formatting:
'...' % fooandb'...' % barby @samuelcolvin in #825 - fix flakey js test by @samuelcolvin in #826
- Implement the
format()builtin by @samuelcolvin in #827 - Answer
date.today()/datetime.now()in standard execution by @rewitt94 in #812 - Implement remaining math aggregation functions and
fmaby @samuelcolvin in #831 - fix telemetry context propagation by @davidhewitt in #830
- Support
print(file=sys.stderr)by @rewitt94 in #818 - Finish
binasciiwith the uu, quoted-printable and CRC-16 conversions by @rewitt94 in #816 - Build Python 3.14t wheels by @Kludex in #832
- make it possible to run smoke test from npm by @davidhewitt in #619
- fix browser smoke test install by @samuelcolvin in #844
- Move examples-only Python deps out of the dev group by @samuelcolvin in #849
- Match CPython for int/float arithmetic on long ints and float pow overflow by @samuelcolvin in #834
- Make the
examplesdependency group opt-in by @samuelcolvin in #852 - CWD support by @samuelcolvin in #828
- Add a watchdog for the CPython side of test cases and deflake
lookup__mutation.pyby @samuelcolvin in #854 - Accept long ints across
pow(),round()and themathmodule by @samuelcolvin in #853 - Eager awaits by @samuelcolvin in #833
- Better
casefoldand other case methods compatibility by @samuelcolvin in #857 - Deps update by @samuelcolvin in #859
- Add the remaining
itertoolscallables barteeby @samuelcolvin in #860 - Revert itertools by @samuelcolvin in #861
- Support runtime definition of types like
tuple[int, str]anddict | dictby @samuelcolvin in #858 - Implement the
sysconstants with a known value by @samuelcolvin in #863 - Support attribute and subscript targets in unpacking by @samuelcolvin in #865
- Add the antigravity example, running Monty in the browser by @samuelcolvin in #864
- Fix re-entrant source windows in
chain,pairwiseandaccumulateby @rewitt94 in #843 - Missing
itertoolsmethods by @samuelcolvin in #862 - Add a regression test for the trailing-slash symlink escape by @samuelcolvin in #868
- Add the
randommodule and anos.urandomhost call by @samuelcolvin in #867 - Add the
copymodule by @rewitt94 in #791 - Check container growth against the memory limit before it allocates by @rewitt94 in #845
- Follow-ups for
datetimeby @rewitt94 in #838 - Fix two container-reentrancy panics by @rewitt94 in #846
- don't make static strings a requirement for dump stability by @davidhewitt in #810
- establish tampered snapshots as permitted: garbage in garbage out by @davidhewitt in #873
- Fix async task scheduling for batched host failures by @flyingmutant in #875
- Give each callable type its own
PyTrait::py_callby @rewitt94 in #878 - Flat layout for wire value type by @samuelcolvin in #871
- Serialize dumps after the header in place, without a second buffer by @samuelcolvin in #881
- Shrink the largest dag decode bench to fit the decode budget by @samuelcolvin in #883
- remove needless
SOFT_LIMITvariable frommonty-allocby @davidhewitt in #763 - Add
time.time(),time.sleep()andasyncio.sleep()by @samuelcolvin in #866 - expose otel trace context from snapshots by @davidhewitt in #885
- purge
pool-architecture.mdby @davidhewitt in #887 - Replace session
max_durationwith feed and turn limits by @rewitt94 in #880 - add a general solution for wire decoding budgets by @davidhewitt in #874
- try to hide object internals by @davidhewitt in #886
- fix merge conflict by @davidhewitt in #891
- Comment and documentation fixes by @rewitt94 in #888
- Sort
StaticStringsalphabetically by @rewitt94 in #889 - Change
DumpErrorfor future compatibility by @rewitt94 in #890 - Implement
eval(),exec()andlocals()by @samuelcolvin in #855 - Auto OS calls by @samuelcolvin in #892
- Use sleep and random in the antigravity example by @samuelcolvin in #897
- Timezone support by @samuelcolvin in #898
- Poll the time limit in large three-argument pow by @samuelcolvin in #899
- Reject overlapping host directories at mount registration by @samuelcolvin in #741
- Extend
timemodule by @samuelcolvin in #901 - Replace wire types with whitelist of allowed types, and proxy for everything else by @samuelcolvin in #900
- Rename
AutoOsCallstoOsPolicyby @samuelcolvin in #902 - Resolve exception classes directly and model them inbound by @samuelcolvin in #905
- Describe Monty as a sandbox and name the open-source form "OSS Monty" by @samuelcolvin in #904
- Uprev
ruff, pre-check source by @samuelcolvin in #906 - Bump to v1.0.0-beta.1 by @samuelcolvin in #903
New Contributors
- @Kludex made their first contribution in #832
- @flyingmutant made their first contribution in #875
Full Changelog :
v1.0.0-beta.1...v1.0.0-beta.2 - bump to b2, fix
-
π exe.dev Tales from the Software Factory: The Cron and the VM rss
The other day, I built a boring bot that could tell me whether the model list in our LLM gateway was out of sync with one of our LLM providers. We deploy frequently enough that doing this dynamically has not been a priority, but itβs good to know when itβs time to update things. Years of experience kicked in: Shelley and I wrote the check as a test, and I used our CI system (Buildkite; itβs fine; next time it bugs me, itβs getting yeeted in favor of a vibe-coded improvement) to run a cron job that, when we need to do work, posts to Slack.
As soon as I was done, I realized my mistake, and threw it all away. I started an exe.dev VM instead, to add to our fledgling army of bots. Now, instead of the output being βhey, you need to remove that deprecated model,β the output is a diff with the proposed change, together with a button to queue the change into our CI system (which, of course, leads into our CD system). My old mindset was wanting a bot to nag me into doing the thing. The new mindset is to have the bot take the task as close to the finish line as possible. This sort of state over a CI system, while possible, is unnecessarily miserable. If VMs are cheap, itβs better to have a little bot server that you can customize to your heartβs content.
Donβt worry; the bot is checked in, right next to our other bots, all in our monorepo. The bots continuously deploy. Life is good. Good bot.
-
π HexRaysSA/plugin-repository commits sync repo: +1 release rss
sync repo: +1 release ## New releases - [augur](https://github.com/0xdea/augur): 0.10.1 -
π roboflow/supervision supervision-0.30.5 release
0.30.5: Tracking, metrics, and image-drawing correctness fixes
supervision 0.30.5 is a patch release closing 11 correctness and crash bugs across line-crossing tracking, mAR@K scoring, model connectors, key points, and image drawing/loading β no new public API of note, no breaking changes. The most consequential fixes are silent, not crashes:
LineZone.triggermiscounted crossings by one per flicker whenever a tracker briefly touched the far side of the line, andMeanAverageRecallscored mAR@K against the wrong predictions when a lower-ranked one fit a target more tightly than one within the top K. The remaining fixes close a hard crash inInferenceSliceron conflicting slice metadata (plus two relatedDetections.__eq__bugs), bring the OpenCV-free fallback backend to parity with OpenCV for rotated videos, CMYK images, transparent/1-bit PNGs, and default JPEG/WebP write quality, fix two drawing bugs that reproduce with OpenCV installed (16-bitdraw_image, grayscaleIconAnnotatoricons), and fix two isolated bugs inKeyPoints.as_detectionsandplot_images_grid. Every fix ships a regression test.β¨ Spotlights / highlights
sv.LineZone.triggerno longer counts flicker as a crossingA crossing was confirmed whenever the oldest entry of a
minimum_crossing_threshold + 1frame history differed from every later entry, which never verified the tracker had actually settled on the side it supposedly came from. Withminimum_crossing_threshold=2the side sequenceA,A,A,B,A,A,Acounted a crossing intoAβ the side the object never left β so counts drifted by one per flicker, in the wrong direction; three separated flickers gavein_count=3instead of0.line_zone = sv.LineZone( start=sv.Point(0, 0), end=sv.Point(0, 100), minimum_crossing_threshold=2 ) # a tracker that flickers to the far side for one frame and back # no longer registers a phantom crossing; only a sustained crossing countsCrossings are now measured against the last side a tracker was confirmed on, not against the oldest history entry. Sustained crossings and
minimum_crossing_threshold=1(the default) are unchanged.sv.metrics.MeanAverageRecallnow scores mAR@K from each image's own topK
The matcher pairs predictions to targets by highest IoU, not confidence, so a prediction ranked below K could take a target away from one ranked within it. Adding a low-confidence duplicate that fit a target more tightly than the top prediction actually lowered mAR@1 β one target with a top prediction at IoU
0.71scored mAR@10.5alone but0.0once a second, unrelated prediction at IoU1.0and confidence0.1was added. Each detection limit now matches only its own top K predictions.sv.InferenceSlicerno longer crashes when slices disagree onmetadataRF-DETR and
inference-package connectors attach asource_imagearray per slice; any mismatch across slices previously crashed the merge outright. Any metadata key that isn't identical across every slice is now dropped with a one-time warning naming the dropped keys;source_imageis reattached afterward as the full input image.slicer = sv.InferenceSlicer(callback=callback) detections = slicer(image) # metadata.source_image is the full input image againFixing this also closed two
Detections.__eq__bugs:NaNin a float-array metadata value now compares equal to itself, and a list-valued value against an ndarray-valued one now returnsFalseinstead of raisingValueError.Rotated videos read upright without OpenCV
OpenCV's FFmpeg backend applies a video's display-rotation matrix to decoded frames and to the reported width/height; the OpenCV-free fallback ignored it, so a portrait phone video came back sideways with its width/height swapped.
sv.KeyPoints.as_detectionsdrops invisible key points from the derivedbox
as_detectionsstretched each box over every key point that wasn't[0, 0]or non-finite, ignoringvisibleβ unlikewith_nms, which already respected it. A pose whose low-confidence joints were predicted off-frame no longer produces an inflated box.π Migration guide
No breaking changes in this release.
No deprecations or removals landed in 0.30.5 either. All scheduled
remove_inmarkers in the codebase target0.31.0and are untouched by this patch release.sv.config.SOURCE_IMAGE_METADATA_FIELDis a new public constant (added alongside theInferenceSlicerfix) naming theDetections.metadatakey RF- DETR/inference-package connectors use for the source image β additive, no existing code needs to change.π Notable changes
π§ Fixed
Tracking / metrics
sv.LineZone.triggerno longer counts a spurious crossing in the opposite direction when a tracker flickers to the far side of the line for fewer thanminimum_crossing_thresholdframes. Crossings are now measured against the last side a tracker was confirmed on, and once a tracker has a confirmed side, a new one replaces it only after being held for the full threshold. Sustained crossings,minimum_crossing_threshold=1(the default), and per-tracker isolation are unchanged. (#2600)sv.metrics.MeanAverageRecallnow scores mAR@K from each image's K most confident predictions alone, instead of matching every prediction first and only then keeping the top K by confidence. mAR@1 and mAR@10 now equal the recall of the top 1 and top 10 predictions per image, as documented; mAR@100 changes only for images with more than 100 predictions. (#2604)
Model connectors
sv.InferenceSlicerno longer raises when slices disagree onmetadata(e.g. asource_imageNumPy array attached per-slice by RF-DETR/inference-package connectors), which previously crashed the merge outright. Any metadata key that isn't identical across every slice is now dropped from the merged result, with aSupervisionWarningswarning naming the dropped keys, emitted once per slicer instance.source_imageis a special case: removed from each slice before the lenient merge, then reattached afterward as the full input image. Fixing this also closed two relatedDetections.__eq__bugs: metadata holdingNaNin a float array now compares equal to itself instead of always reading unequal, and comparing a list-valued metadata value against an ndarray-valued one now returnsFalseinstead of raisingValueError. (#2596)
OpenCV-free fallback backend
sv.VideoInfo.from_video_path,sv.get_video_frames_generatorandsv.process_videonow turn a rotated video upright when OpenCV is not installed, as they already do with OpenCV. The fallback now applies quarter and half turns, the same angles OpenCV applies, using the container's display-rotation matrix. Videos without a display rotation, and every read with OpenCV installed, are unchanged. (#2601)sv.IconAnnotatorandsv.draw_imagenow draw CMYK JPEG and TIFF images in their colors when OpenCV is not installed, instead of returning the four ink channels as if they were blue/green/red/alpha. Other images, and every read with OpenCV installed, are unchanged. (#2602)sv.ImageSinkand the dataset exports that encode in-memory images now write JPEG and WebP files at OpenCV's default quality (JPEG 95, lossless WebP) when OpenCV is not installed, instead of Pillow's defaults (JPEG 75, lossy WebP). The fallback's in-memory encoder also now accepts.jpe,.tif,.jp2, and.pgm, which it previously rejected even though file writes already accepted them. PNG and every write with OpenCV installed are unchanged. (#2592)sv.IconAnnotatorandsv.draw_imagenow keep the transparency of grayscale PNGs with alpha, RGB PNGs with a transparent color, and 1-bit PNGs, when OpenCV is not installed β the fallback previously returned Pillow's pixel layout forIMREAD_UNCHANGEDrather than OpenCV's, causing shape-mismatchValueErrors or black-drawn transparent pixels. Other images, and every read with OpenCV installed, are unchanged. (#2588)
Annotators / drawing
sv.draw_imagenow scales a 16-bit PNG down to 8 bits on load, instead of blending it into an 8-bit scene and clipping channel values above 255 β this reproduces with OpenCV installed, sinceIMREAD_UNCHANGEDkeeps a 16-bit PNG at 16 bits. Eight-bit images, and images passed as arrays, are drawn as before. (#2603)sv.IconAnnotatornow draws grayscale PNG icons instead of failing withIndexErrorβ the overlay only handled BGR and BGRA arrays, andcv2.imread(..., IMREAD_UNCHANGED)returns a 2-D array for a grayscale PNG without alpha, with or without OpenCV installed. A grayscale icon is now expanded to BGR on load, and a 16-bit icon is scaled to 8 bits, ascv2.imreaddoes by default. Eight-bit color icons are drawn as before. (#2591)
Key points / utils
sv.KeyPoints.as_detectionsnow leaves key points marked not visible out of the box it derives for each skeleton, assv.KeyPoints.with_nmsalready does. A skeleton with no visible key point is now dropped, as one with only missing key points already was. Key points withoutvisibleconvert as before. (#2605)sv.plot_images_gridnow plots a single image in agrid_size=(1, 1)grid, instead of failing withAttributeErrorβplt.subplotsreturns a loneAxesrather than an array for a 1x1 grid. Grids with more than one cell plot as before. (#2590)
π Contributors
- kevin (@kevin9327) β the OpenCV-free fallback backend fixes for rotated video, CMYK, transparent/1-bit images and default JPEG/WebP quality, the 16-bit
draw_imageand grayscaleIconAnnotatordrawing fixes, plus theMeanAverageRecall/plot_images_grid/KeyPoints.as_detectionsfixes - Souptik Chakraborty (@Souptik96, LinkedIn) β the
LineZoneflicker-crossing fix - RAJVARDHAN (@vardhans07) β the
InferenceSlicerconflicting-metadata fix and the twoDetections.__eq__bugs it uncovered
Full changelog :
0.30.4...0.30.5 -
π crmne/spotifast Spotifast v0.9.1 release
Spotifast 0.9.1 finishes the move to the new name while keeping existing settings, sign-ins, and installations working. This is the last release with Fastpotify-named compatibility downloads. If you still use an older version, update to 0.9.1 before updating further, or install a newer Spotifast release manually.
Download Spotifast: Mac Β· Windows Β· Windows ARM Β· Linux Β· Linux ARM Β· Flatpak
The
fastpotify-*files below are identical compatibility copies for older updaters that require those filenames. Use the Spotifast links above for a new installation. Releases after 0.9.1 will not publish old-named downloads.Fullscreen lyrics, added in 0.9.0.
Fixed
- Your settings and sign-ins come with you. Existing profiles, cached music, window state, and protected credentials move to Spotifast. Custom device names stay unchanged, and Liked Songs pins keep their place. An updater trial leaves the old profile available if the update needs to roll back. By @crmne.
- Spotifast is the primary package and executable name. Portable archives, Windows installation shortcuts, the Rust package, logs, and Linux media controls use the new name. Version 0.9.1 provides the final compatibility downloads for older updaters and accepts the new archive and macOS bundle identities used by future releases. Existing installation locations remain valid. By @crmne.
- macOS update helpers stay inside the signed app. Updates no longer copy the helper executable out of its signed bundle. If a helper still cannot start, the error includes its exit status and a diagnostic log location. By @crmne; thanks @jorisw for reporting the startup failure. (#556)
- Existing Omarchy integrations follow the renamed profile. The app updates its unmodified theme hook automatically and leaves customized hooks alone. By @crmne.
If an older macOS build reports that its update helper exited before it was ready, install 0.9.1 from the DMG manually. The helper changes take effect for updates started from 0.9.1 onward.
Custom Linux media scripts should use
playerctl --player=spotifast. Cargo users may needcargo install --git https://github.com/crmne/spotifast --locked --forceonce to replace commands owned by the old package. See the upgrade and rename guide for details.Thanks
@jorisw and everyone who reported upgrade problems and helped test the transition to Spotifast.
Full changelog :
v0.9.0...v0.9.1 -
π MetaBrainz Picard 3 Release Candidate 4 rss
We received good feedback on the previous release candidate 3, which resulted in several bugfixes and small improvements. The Picard team hence decided to release a fourth release candidate in preparation for the final release of Picard 3.0.
It fixes an important performance issue, so if you are currently running any of previous alpha, beta or release candidate versions upgrade ASAP.
It also fixes issues related to internationalization, causing some of existing translations to not actually show in the application (mainly constants).Please test, test, and test , report any issue on forums, matrix, or, ideally, on the ticket system. When reporting an issue, always provide details about your environment and a full debug log helps us a lot. Also now is a good time for final review and improvements of the translations.
Download links and a detailed list of changes since Picard 3 release candidate 3 are available below. For a more detailed overview of what is new in Picard 3 please see the previous blog post Picard 3 Alpha Release.
While we have all the major features implemented and with the latest bug fixes we are confident in the current code, this is still a pre-release and there might be bugs. If you use this, do so with care, backup your files and please report any issues you encounter.
If you are updating from Picard 2, note that some of the changes are backward incompatible, hence we recommend you make a backup of your Picard.ini config file before trying this version. You can do so in Picardβs Options under Advanced > Maintenance.
Whatβs new?
Bugfixes
- PICARD-3438 - Plugin action
MENUsetting not honored in "Plugin Tools" on main menu bar - PICARD-3439 - Unexpected font change in script editors after pasting
- PICARD-3442 - Track duration tolerance (ignore_track_duration_difference_under) no longer suppresses the ~length diff in the Metadata box
- PICARD-3446 - CLI does not run config upgrade hooks, leaving old config files unmigrated
- PICARD-3448 - Some constants aren't properly translated, though translations are available
- PICARD-3450 - Button titles on scripting options page are compressed
- PICARD-3453 - Metadata box tag tooltips re-render Markdown per row, causing severe CPU load during save/selection
Improvements
- PICARD-3441 - Clarify read-only non-tag values in the metadata box (length, filepath)
- PICARD-3444 - Bundle sqlite3 in packaged builds
- PICARD-3449 - Rework Cover Art β Processing options layout to stack Tags/Files vertically
- PICARD-3452 - Sort debug options by translated name and show CLI name in tooltip
Download
We appreciate your interest in trying this new version. Use with care, backup your files and please use theMetaBrainz community forums and the ticket system to give feedback and report bugs.
For Windows and macOS you can download the release candidate version from the Picard download page. Linux users can run from source or try the "candidate" channel of the Picard snap package.
Picard is free software and the source code is available on GitHub.
Helping out
We want to provide a polished release of Picard 3.0 that everyone can feel confident to upgrade to. To achieve this, we need the help from the MusicBrainz community.
The easiest way to help us getting a great Picard 3.0 release is using and testing this release candidate. Please report bugs on the Picard issue tracker and provide feedback in the community forums.
We also need help with translations, as there are a lot of new features and UI changes over previous Picard versions. We will avoid any further text changes before the final release, so now is the right time to help with translation on Weblate. Please see the translation instructions on the Wiki for details.
If you are a software developer you are very welcomed to provide fixes and features. Picard is free software and the source code is available on GitHub. See Contributing to Picard on the Picard website to get started.
You can also look at the new Plugin API and develop plugins for Picard or update your existing Picard 2 plugin to work with Picard 3.
Acknowledgements
Code contributions by Bob Swift, Laurent Monin and Philipp Wolfer.
Translations were updated by BestSteve (Chinese (Traditional Han script)), Laurent Monin (French), Marc Riera (Catalan), MichTheOcelot (Spanish (Latin America)), pXF (Hungarian), st.esser (German), Vaclovas Intas (Lithuanian) and wileyfoxyx (Russian). - PICARD-3438 - Plugin action
-
π crmne/spotifast Spotifast 0.9.0 release
0.9.0 adds fullscreen lyrics, custom playlist covers, and proxy settings. Playback and queues are more reliable when changing songs, switching Spotify Connect devices, or recovering from a dropped connection.
New
- Give lyrics the whole screen. Follow the current line with larger text and an album-art backdrop, keep playback controls within reach, and press Escape to return to your previous window. By @NotTanJune and @crmne. (#316)
- Give your playlists their own covers. Choose a JPEG or PNG from Edit details β Change cover , preview it, and upload it to Spotify. Spotify may ask you to sign in again to approve image uploads. By @dyd4dsh7 and @crmne. (#329)
- Choose how Spotifast connects. Settings now offer System, Off, HTTP, and SOCKS5 proxy modes, with proxy passwords kept in the native credential store. Local audio supports an unauthenticated HTTP proxy; other proxy types apply to the app's web requests. By @we11adam and @crmne. (#250)
- Like the current song from the Linux command line. Run
spotifast like, or bind it to a desktop shortcut. By @mgsloan. (#512) - Open Spotify search links directly in Spotifast. Launchers and Linux media controls can send a search to the app. More player, Queue, and Lyrics controls also use the existing translations. By @crmne.
Fixed
- Spotify Connect brings the song and queue back with you. Switching back to this computer transfers the active session's song, position, queue, and paused or playing state. By @crmne.
- Queue a whole album in order, then add another song after it. Albums, singles, and EPs queue on this computer or another device. Rate-limited additions retry automatically after Spotify's requested wait, and failed additions no longer leave blank rows behind. Starting an album keeps separately queued copies under Playing next. By @crmne; thanks @organicFoil. (#547)
- The song you choose stays selected and audible. Changing songs no longer lets discarded audio from the previous song cause an extra skip. Repeat mode also stays selected when starting another song. By @crmne; thanks @fernandoomorifaria and @wulffeld. (#535, #518)
- A dropped playback connection keeps the queue. Reconnection restores the song and position, manually queued songs, playlist context, shuffle order, and Repeat mode. By @crmne; thanks @Self-Perfection. (#533)
- Collections keep their familiar artwork while loading. Known covers and headers remain visible while complete details arrive, and softened covers no longer repeatedly decode and reload. By @hyperpuncher and @crmne. (#517, #551)
- macOS windows close without crashing, and updates accept the renamed executable. Switching to the mini player also preserves the main window's size. By @mdevils and @crmne; thanks @sermelipharo. (#532, #538, #542)
Thanks
@NotTanJune, @dyd4dsh7, @we11adam, @mgsloan, @hyperpuncher, @mdevils, @organicFoil, @fernandoomorifaria, @wulffeld, @Self- Perfection, @sermelipharo, and everyone who contributed reports and helped test this release.
Full changelog :
v0.8.0...v0.9.0 -
π MetaBrainz Welcome Silona Bonewald, new MetaBrainz Foundation Executive Director! rss
We are very pleased to announce that the MetaBrainz Foundation has appointed Silona Bonewald as Executive Director, following the unfortunate passing of our Rob at the beginning of the year.
Silona has served as Executive Director of IEEE SA Open and Vice President of Community Architecture at Hyperledger, part of the Linux Foundation. Earlier in her career she served as Director of InnerSource at PayPal and authored the widely used OβReilly publication Understanding the InnerSource Checklist.
Silona also founded the League of Technical Voters, a 501(c)(3) organization dedicated to government transparency through open source technology, and has since advised nonprofit and open source organizations including the Cardano communityβs IntersectMBO, the Foundation for Public Code, and the Software Freedom Conservancy. She has served on the board of the Electronic Frontier Foundationβs Austin chapter in the past and holds standing relationships across the world wide standards communities, and moreβ¦ If you would like to keep browsing Silonaβs looong list of professional credentials you are welcome to follow her on LinkedIn.
Thatβs all a long way to say that we are very excited to have Silona on board! The team is looking forward to working with Silona and you (our wonderful community) to carry Robβs legacy forward.
Please give Silona a warm welcome in the comments!
Silona will also be hosting an AMA on 5 October 2026, at 17:00 UTC, on the forums (we will do another announcement regarding this, closer to the time), where you can post questions and share with Silona some of your dreams for the future of the MetaBrainz Foundation and its projects!
P.S. reosarevok cleared the record on this topic at a recent dev meeting, and I think it needs to be shared here as well:
So, most of you know that Iβve spent the last months dealing with ED issues. Which, as I have been told in private, is confusing wording - that is executive director issues, not erectile dysfunction issues.
Hey! No laughing at the back!
Welcome to the team, Silona.
-
π @malcat@infosec.exchange For full and pro users: we've released malcat 1.0.0-alpha3 for you to preview. mastodon
For full and pro users: we've released malcat 1.0.0-alpha3 for you to preview. It ships with:
β many GUI improvements (like side-by-side tabs)
β an even better MCP server with support for sandbox python transforms
β the first usable .NET and PYC decompilers! -
π r/LocalLLaMA Alibaba plans AI model with 5 trillion to 10 trillion parameters, unveils new chip rss
submitted by /u/tengo_harambe
[link] [comments] -
π r/LocalLLaMA Qwen 4 Announced at Apsara Conference rss
| https://preview.redd.it/bpbc9i6hizqh1.png?width=1270&format=png&auto=webp&s=e8aa8301895735a05c3c61a5e793018a23d1cac5 I wanted to share a quick update: Alibaba has officially announced Qwen 4 at the Apsara Conference, submitted by /u/Salah_H_Hasan
[link] [comments]
---|--- -
π Rust Blog Announcing a Maintainer in Residence: Scott Schafer for the Cargo team rss
At the end of August, we announced our first Maintainers in Residence, Rust Project contributors who are funded for their upstream contributions and maintenance work from the Rust Foundation Maintainers Fund (RFMF). Since then, the Rust Leadership Council has dedicated more funds from its Project Priorities budget to RFMF, and together with AWS also providing additional funds, this allowed us to open a new full-time Maintainer in Residence (MiR) position to support the Cargo team. We would like to thank the Rust Leadership Council, AWS, and also the Rust Foundation for providing us with this opportunity! If you would like to help us hire more maintainers to improve Rust, consider donating to RFMF.
This post explains why we chose to support the Cargo team specifically, and introduces Scott Schafer, the new Cargo Maintainer in Residence.
Why Cargo?
The new MiR full-time position is dedicated to helping with the maintenance of Cargo, our build system and package manager. The Cargo project is deeply involved in many new Rust features, improvements, and Project Goals. Combined with its cross-cutting nature, where it has to support many different use-cases and integrate with several other tools, it takes a lot of work just to keep up with its maintenance needs, let alone support so many feature requests and proposed changes.
Because of that, the Cargo team has sometimes struggled with meeting its maintenance demands. You might remember that for several years, it actually held a feature freeze, to reduce Cargo's internal tech debt, perform necessary refactorings, go through the issue and pull request backlog, and come up with scalable internal development and design processes, so that they could eventually go back to even thinking about adding new features.
Recently, some changes occurred within the team, which made it more difficult for them to meet their maintenance baseline. Some members of the team left, while others lost their dedicated funding for working on Cargo maintenance and had to scale down their involvement. The Funding team thus considered it very important to support this team, given that we had an opportunity to do so. And thus we decided to hire a full-time maintainer to work on Cargo for (at least) the next 12 months.
Even though we know that a single full-time maintainer will not completely solve the maintenance struggles of the Cargo team, we hope that it will improve the situation, and provide a bit of a relief for the team.
Introducing Scott Schafer

We are very happy to welcome Scott Schafer (@muscraft) into the Maintainer in Residence role! Scott has joined the Cargo team three years ago, and apart from working on Cargo, he is also the lead of the Rust Docker team, which prepares official Docker images for every Rust version.
Apart from working on general maintenance of Cargo, Scott has implemented Cargo's Workspace inheritance feature, and has also spearheaded a complex multi-year effort to switch the rendering of diagnostics in the Rust compiler to use the annotate- snippets crate. This effort has been completed in the Rust 1.93.0 release. Thanks to it, the same diagnostics interface can now be shared between the compiler and Cargo (and also other tools), which amongst other things unblocked further development of the Cargo linting system, which has now been stabilized and will ship in the Rust 1.100.0 release.
Everyone we talked about was very excited about Scott becoming a Cargo Maintainer in Residence, and we share that feeling. We wish Scott all the best in his new role, and we are very happy that we can support his maintenance work.
Here is what Scott thinks about it:
I am incredibly excited to work on Cargo full-time! There have been so many things that I wish I could've worked on over the years, that I will now be able to get to. I hope that my efforts will bring Cargo into a more maintainable state.
Conclusion
We are incredibly happy that we keep getting more funds for the Rust Foundation Maintainers Fund, which allows us to support Rust Project contributors. The funding team will be working with the supported maintainers, and also the funders, to ensure that they are all happy with the arrangement, so that we can secure stable funding for Rust maintenance for years to come.
If you would like to help us support more Rust maintainers, consider donating to RFMF!
-
π New Music Releases Northlane - Crucified rss
Northlane - a new release is available:
- 2026-09-22: Crucified (Single)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
π Ampcode News One Runner, Many Worktrees rss
A runner can now create Git worktrees. Pick a repository the runner serves, hit Tab, name the branch, and the thread starts in a fresh checkout. Your main checkout stays untouched.

In the directory picker, every Git checkout on the runner gets a New Worktree option next to it. Choose it and you get a small form:

The name you chose becomes the branch name and the folder name. The runner then creates the worktree as a sibling of the repository:
~/code/ampgets~/code/amp-fix-flaky-login-test, checked out on a new branchfix-flaky-login-testoff the currentHEAD. Uncommitted changes stay where they are, in the original checkout. The new directory shows up in the picker right away, marked with a branch icon, and the thread starts in it.Puck can do this too: ask it to start a thread on your runner in a new worktree and it passes a
worktreename tocreate_thread.Clean Up When You're Done
A thread that runs in a worktree the runner created gets a new action: Archive and Remove Worktree. It archives the thread, runs
git worktree remove, and deletes the branch.
New Folders and Projects Too
The picker can also create things. Type the name of a directory that doesn't exist yet and you get New Directory or New Project. Read more.

Oh, They Understand Secrets Now Too
Runners can also use the Secrets & Env Vars you configure on ampcode.com. Same variables that orbs get. It's off by default; opt in with
--amp-env:$ amp --no-tui --runner-id mac-mini --discover-dirs --amp-envEvery time a thread starts, the runner fetches the variables that apply to it (personal, then project, then workspace) and adds them to the environment of the thread's shell commands, MCP servers, and plugins. Change a variable on ampcode.com and the next thread gets the new value. No restart, no SSH.
Both need a runner on the current Amp version. If yours has been running for a while, it has updated itself already.
Read more about worktrees and Secrets & Env Vars in the runner docs.
-





