Software horror: litellm PyPI supply chain attack.
Simple `pip install litellm` was enough to exfiltrate SSH keys, AWS/GCP/Azure creds, Kubernetes configs, git credentials, env vars (all your API keys), shell history, crypto wallets, SSL private keys, CI/CD secrets, database passwords.
LiteLLM itself has 97 million downloads per month which is already terrible, but much worse, the contagion spreads to any project that depends on litellm. For example, if you did `pip install dspy` (which depended on litellm>=1.64.0), you'd also be pwnd. Same for any other large project that depended on litellm.
Afaict the poisoned version was up for only less than ~1 hour. The attack had a bug which led to its discovery - Callum McMahon was using an MCP plugin inside Cursor that pulled in litellm as a transitive dependency. When litellm 1.82.8 installed, their machine ran out of RAM and crashed. So if the attacker didn't vibe code this attack it could have been undetected for many days or weeks.
Supply chain attacks like this are basically the scariest thing imaginable in modern software. Every time you install any depedency you could be pulling in a poisoned package anywhere deep inside its entire depedency tree. This is especially risky with large projects that might have lots and lots of dependencies. The credentials that do get stolen in each attack can then be used to take over more accounts and compromise more packages.
Classical software engineering would have you believe that dependencies are good (we're building pyramids from bricks), but imo this has to be re-evaluated, and it's why I've been so growingly averse to them, preferring to use LLMs to "yoink" functionality when it's simple enough and possible.
Prof. Donald Knuth opened his new paper with "Shock! Shock!"
Claude Opus 4.6 had just solved an open problem he'd been working on for weeks — a graph decomposition conjecture from The Art of Computer Programming.
He named the paper "Claude's Cycles."
31 explorations. ~1 hour. Knuth read the output, wrote the formal proof, and closed with: "It seems I'll have to revise my opinions about generative AI one of these days."
The man who wrote the bible of computer science just said that. In a paper named after an AI.
Paper: https://t.co/juSOmK9vOt
The goroutine leak profile in the upcoming Go 1.26 is a big deal.
But the synctest package, available since 1.24, can also catch leaks just fine. I don't know why no one talks about this.
Anyway, it's time to cover both of them!
https://t.co/iUrAa7ShdI
story behind "why netflix built https://t.co/YDCurkt2BM" is brilliant.
so, netflix had a massive fight with ISPs around 2014-2016. ISPs were slowing down netflix on purpose. they wanted more money from netflix
customers got bad streaming. but ISPs just blamed netflix.
netflix had to pay comcast, verizon, at&t and time warner for direct connections to their networks.
but in 2016, they launched fast dot com, clever part - It's not testing your general internet speed. It's testing your speed to netflix's servers specifically. so when someone complained about buffering, netflix could say "run fast dot com." If it's slow, the ISP is the bottleneck.
suddenly millions of people had a tool to prove their ISP was the problem
ISPs couldn't hide anymore.
netflix positioned themselves as the transparent good guys fighting for customers while ISPs looked like greedy monopolies
they solved a pr problem and a customer service problem with one simple website
I guess, that's how you win a corporate war
🥳 CSS functions have arrived!!! 🥳
And they are *AWESOME*
Now, you can do things like this:
@function --alpha(--color, --opacity) {
result: rgb(from var(--color) r g b / var(--opacity));
}
div {
background: --alpha(red, 80%);
}
(*arrived = in the latest stable Chrome)
I almost always pass objects to #Python's help() function, but help() can also accept a string that represents symbols, keywords, and even "topics".
I just published a new article on help features that are often overlooked.
https://t.co/PmWluVki3N
The spacecraft will glimpse our home world one last time as it completes the second and final gravity assist. We'll arrive at Jupiter in April 2030. More: https://t.co/S9p69Ix6Yl
10pm — I’ve got 2 hours, if I go to bed at midnight I get 8 hours of sleep opportunity.
12pm — Humans only really need 6-7 hours of sleep anyway.
2am — Humans sleep in 4 hour blocks so really it costs me nothing to stay up another couple of hours.
4am — fuck what have I done.
Last January, I noticed something peculiar in my 2yo’s bedroom that - after a year of obsessive reporting - led me to a profound cosmic revelation about what’s even possible in our universe. A 🧵.
Years of coding in python. TIL
>>> a, *b, c = range(5)
>>> a
0
>>> c
4
>>> b
[1, 2, 3]
on hindsight this feels obvious.
https://t.co/JBtJxKGR2u
https://t.co/xJxWebUFIO