Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson) header
Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson) profile picture

Hypoactive human. Grumpy. Software developer, designer and IT person. Slowly losing grip of my sanity. | Search for @savehansson on other platforms.

Helsingborg, Sweden
Joined May 2011
Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)Photo by Håkan Save Hansson 🇸🇪 🇺🇦 (@savehansson)
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
A supermajority of Jewish Americans believe that the Israeli government and its lobby AIPAC fuel antisemitism by equating antisemitism with legitimate criticism of Israeli repression of Palestinians. That's 100% correct. I have been saying that for years. teapawt.org/dylanotes/status/21184…
NEW poll: A supermajority of Jewish Americans believe Israeli & AIPAC actions increase antisemitism. 80% say Israel’s actions in Gaza & the West Bank increase antisemitism in the US. 66% say AIPAC’s campaign spending against candidates critical of Israel increases antisemitism.
20
213
11
408
7,864
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
THIS IS AN ACTUAL F*CKING GOLDMINE Anthropic just shared one of the best tricks for Claude Code. The idea: run Opus 5.5 and three Sonnet 5.5 subagents, each one keeping its own memory for the job it's best at. Less repeated explaining, because every task lands on an agent that can reuse what it learned about your repo. You just launch Claude Code like this: claude --model opus here's my split: → Opus 5.5 runs the session, plans the work and applies the final fixes → Sonnet 5.5 handles implementation, debugging and diff reviews in separate contexts → memory: project gives each subagent persistent notes that survive between sessions → you stop burning Opus 5.5 context on explaining the same repo conventions again Opus 5.5 only steps in for the big calls at three moments: → before a plan locks → when the same error shows up twice → before calling it done Sonnet 5.5 builds. Memory carries forward. Opus 5.5 reviews. persistent memory takes the same idea one layer down: the findings you keep rediscovering (which module, which test, which fix actually worked) go into each agent's memory, and its next run starts with its saved memory index the full tree > Opus 5.5 runs the main session and coordinates the work > builder implements features on Sonnet 5.5 and remembers repo conventions > debugger fixes failures on Sonnet 5.5 and remembers verified root causes > reviewer checks the diff on Sonnet 5.5 and remembers recurring review patterns > Opus 5.5 reviews the synthesized diff before sign-off > each worker keeps project-scoped memory and checks old notes against current code paste the tree and this prompt into Claude Code ↓ "Reconfigure my Claude Code setup around this tree: 1. Run the main session on Opus 5.5. Verify both model aliases resolve to 5.5 on my provider. 2. Create three Sonnet 5.5 subagents in .claude/agents: builder (implements features), debugger (fixes failures), reviewer (checks the diff). Flag a restart if this agents directory is new. 3. Set memory: project on all three. Check that auto memory is enabled; ask before changing that setting. 4. Add one rule to CLAUDE.md: delegate implementation, debugging and diff reviews to these subagents to keep the main context small. Sequence dependent work. 5. Tell each agent to consult its memory before working and save only verified, reusable findings afterward. Keep MEMORY.md concise, link detailed notes, and recheck stale assumptions against the code. Show me every change as a diff first. No edits until I say go." ↳ code.claude.com/docs/en/sub-… save it, it'll come in handy.
Stop letting unfinished Opus 5.5 runs eat your budget Set up the harness before your next long task Save progress, verify results, reuse the workflow The full 7-layer setup below ↓
18
26
216
31,893
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
When you ask a coding agent to make a change in a production repo, it spends roughly 75% of its token budget just trying to figure out how the codebase is wired before writing a single line of code. It enters a grep-read-grep-read loop: scanning a file, following a method call, checking a dependency, and repeating. Because the agent reads code as plain text, it burns thousands of tokens reconstructing things the compiler already knows (which symbols resolve to what, which services call which endpoints, and how database tables connect). Worse, if 10 developers on your team use coding agents, your company pays for that exact same discovery loop 10 separate times. The DevOps fix is moving codebase discovery into a deterministic CI job that runs on merge to main at zero LLM token cost: 1. Run a static analysis pass over the compiler's Lossless Semantic Tree (using tools like OpenRewrite / Moderne Prethink) whenever code merges. 2. Export resolved repository knowledge directly into versioned CSV and Markdown tables inside the repo: service-endpoints.csv, database-connections.csv, dependencies.csv, test coverage gaps, and a JSON architecture graph. 3. Point a delimited section of your CLAUDE.md or AGENTS.md to those precomputed tables so the agent reads resolved architecture before it ever opens a source file.
21
7
186
17,449
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
We will all be learning in coming weeks & months, that most human-made software: ▫️ Was really slow ▫️ Had many security vulnerabilities ▫️ Was under-specified and incorrect AI will rewrite it all. Many times. It will make it fast, cost-efficient, and secure. It will think about failure modes we couldn't wrap our heads around. It will prove, formally verify, load test, harden. It will turn memory-unsafe foundations into robust, optimized ones. If you ask, it'll thoroughly document it, teach you about it, make diagrams, animations, and slide decks. In many ways, we are witnessing the true birth of software engineering.
532
686
245
7,208
306,759
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
With the recent wave of vulnerability disclosures, it’s a good time to take a closer look at your own code. Turn your coding agent into a team of security auditors with the open-source skill that seeded Cloudflare’s vulnerability discovery harness. The 6 phase approach: 1. Map the codebase 2. Hunt for vulnerabilities 3. Challenge each candidate 4. Record the findings 5. Verify the findings 6. Report what’s confirmed, rejected, or still needs validation Start your hunt here: github.com/cloudflare/securi…
201
1,299
227
14,238
1,580,368
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
‼️ Mozilla says AI will soon be able to find every security bug in Firefox. It shipped over 7 times as many security fixes as a year earlier, with early access to Anthropic and OpenAI models. But it found a free Chinese model, GLM 5.3, can already exploit some of those fixes.
42
79
10
1,021
35,598
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
We need to reconsider our priors on code readability. Humans, compared to agents, are pretty slow at understanding large quantities of text. So in the old days, readability was important so the human could efficiently grok what was going on. So readability now comes down to: 1. Can a human, if needed, jump in and understand the code 2. Does the code use the same domain language as the human describing the code? 1 helps with observability and the occasional spot checks you need to do on important PR's. 2 helps the agent translate the words you use into code changes. In other words, readability is now a nicety, not a necessity. The way agents 'read' code is different - good agents are all about gathering data about how the code works. They'll prod around with it, execute parts of it. So 'readability' to agents really means 'verifiability'. How easy it is to mess about with that code to see it working. Let's take this scenario: - You have a huge module in your codebase that uses all sorts of complex performance tricks - It has 100% test coverage A talented human would need an hour or two to get comfortable working in that module. An agent needs zero time. They verify it with the tests, poke about a bit, and they're good to go. The takeaways: - When judging a module (or a codebase), don't think about how easy the code is to read - Instead, think about how easy it is to verify - Design your codebase so modules can be tested and verified independently - Feel free to sacrifice a bit of readability for performance - Cyclomatic complexity and function size don't matter to agents
300
141
65
2,527
295,169
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
Security release pre-alert: We will release new versions of Node.js 22, 24, and 26 release lines on or shortly, after 2026-11-11 in order to address security vulnerabilities. The highest severity issue fixed in this release is HIGH. nodejs.org/en/blog/vulnerabi…
181
1,151
402
6,328
1,027,697
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
••• EU:s demokratiska underskott blir synligt när det gäller beslut som rör internet. Chat Control, åldersgränser och DSA är några exempel. ••• Man skall kanske inte tillskriva sådant ont uppsåt som kan förklaras med dumhet. Men det finns en särskild sorts tunnelseende som drabbar politiker. Vi kan konstatera att politiska beslutsfattare inte alltid tycks förstå omfattningen och konsekvenserna av sina beslut. Speciellt när det gäller internet-relaterade frågor. Man identifierar ett verkligt eller påstått samhällsproblem. Politikerna får frågan och ser det som sin uppgift att »göra något« åt saken. Det sätter ljuset på frågan om politikernas incitament. Politiker belönas för att visa handlingskraft. Inte för att förstå komplexitet, förutse bieffekter eller avstå från att ingripa. Politiker kan även förstå invändningarna men prioritera andra mål, kompromissa bort principer eller acceptera negativa konsekvenser för att uppnå ett politiskt resultat eller en utopisk vision. Saken är att inget existerar i ett vakuum. I dynamiska system kan ett beslut i en del av systemet få oväntade och oönskade konsekvenser på andra områden. Det är som att klämma på en vattenfylld ballong. Om man inte har grundläggande kunskap om hur de områden man vill reglera fungerar, då ökar risken för att det blir fel. Den risken ökar ju mer EU:s institutioner petar i och ändrar förslagen. Ju mer komplicerat ett system är, desto större anledning till försiktighet. Men politiken fungerar tvärtom. Det politiska systemet premierar ofta själva beslutet framför konsekvensen av beslutet. Och eftersom vi har med politik och byråkrati att göra kan det ta lång tid att rätta till vad man ställt till med. I den mån det alls sker. Dessutom är internet gränsöverskridande. EU:s regler kan få effekter långt utanför unionen, särskilt när globala tjänster väljer att anpassa sina system efter europeiska krav. Problemet blir värre på grund av att vi vet väldigt lite om vad som sker bakom kulisserna i politiken i allmänhet och i EU-politiken i synnerhet. Alltför ofta ställs vi inför fullbordat faktum. När allt redan är färdigförhandlat och färdigvoterat är det näst intill omöjligt att ändra på något. Det gäller att komma in tidigare i processen, innan positionerna låsts. Och eftersom våra medier hellre ägnar sig åt det storpolitiska spelet än åt att bevaka sakfrågor är det svårt att upptäcka vad som är på gång. Vi har således ett politiskt system som premierar »handlingskraft«, ett medielandskap som prioriterar politiskt spel och en beslutsprocess där medborgarna ofta får insyn först när möjligheten att påverka har passerat. Problemet är alltså inte bara att politiker ibland fattar beslut utan att förstå deras konsekvenser. Problemet är att det politiska systemet gör det svårt att upptäcka och förhindra sådana misstag innan det är för sent. Därför behöver vi mer öppenhet och insyn i beslutsprocessen. Vi behöver medier som granskar förslagens sakinnehåll medan det fortfarande går att påverka dem. Och vi behöver politiker som inser att det ibland är bättre att inte göra något alls än att göra något som förvärrar situationen eller skapar helt nya problem. Framför allt måste den som vill begränsa människors frihet kunna visa att ingreppet verkligen är nödvändigt, proportionerligt och effektivt. Att ett problem existerar innebär inte automatiskt att den föreslagna lösningen är bra. Eller ens att politiken är rätt verktyg för att lösa det.
4
21
2
83
1,889
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
Vibe Coding in your 20s: - Build all night. - Break things in production. - Launch 5 side projects. - Sleep 4 hours. - Worry about nothing. Vibe Coding in your 40s: 👇
104
8
1
164
66,411
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
UN Commissioner Chris Sidoti: "Children were deliberately targeted by the Israeli military. Intentionally killed. Not accidentally killed. Not consequentially killed. Not collatorally killed. But intentionally killed."
The Genocide in Gaza and Israel’s Deliberate Targeting of Children One of the most difficult events @SOAS that I have organised in the last 2 years: Powerful interventions by Commissioner Chris Sidoti, Nick Mynard @maynard_nick & Michelle Staggs youtube.com/watch?v=RLNraZFh…
76
2,182
113
3,805
97,229
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
1. The bottom line: SARS-CoV-2 only emerged in late 2019. No-one can know the long-term effects of repeated infections, but with anosmia and cognitive dysfunction as common symptoms, the assumption I make is that there is a tsunami of early-onset neurocognitive diseases coming.
32
650
34
2,358
190,396
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
Jag har varit förbaskad på otydlig och tendentiös kommunikation från Folkhälsomyndigheten, "advokatyr" har jag kallat det, visste inte att det faktiskt finns en rapport om denna otydlighet som ett underlag till Coronakommissionen! regeringen.se/globalassets/r…
2
6
25
547
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
"Those writing editorials for the Wall Street Journal should steer away from outrageous threats against the Court and its judges. In fact this is not an editorial. It is an intimidation campaign masquerading as journalism. No one, no one can put the International Court of Justice on notice. The World Court is neither in peril nor on trial. No one gets to threaten its judges or dictate the outcome of their deliberations. We reject attempts to taunt judges or taint their decisions. We have witnessed private efforts to pressure judges before, but never such a public attempt to influence the ICJ’s deliberations. It is an unacceptable attack on its independence and integrity. The International Court of Justice is at the heart of the UN and the multilateral system. "
30
155
8
394
17,968
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
Reddit's CEO just admitted something $GOOGL would rather you didn't hear!! "Google is crawling us as hard as ever. AI Mode does not drive traffic. Not for us, and not to anybody." The way the internet ran on for 25 years is you let Google read your site, and Google sends you visitors/traffic. That deal is over now and it’s all because of AI. Google now reads Reddit, writes the answer itself and the user never leaves the search page. Reddit does the work and Google keeps the reader…and that’s how money is being made. For $RDDT, its biggest front door is closing which is why the stock is down -25% this morning. Huffman's plan is that people will just come to Reddit directly. Maybe. But US user growth is already down to 6%, and "we'll change everyone's habits" is a hope that’s never gonna come. For Google, the issue is the same. The damage is slower but it goes deeper. Its AI is only as smart as the open web it learns from. Stop sending sites traffic, and they'll lock their content up, sell it to rival labs or block Google outright. Google is eating the thing it feeds on. AI killed the click and both of these companies were built on it. It's a fight over who survives the next version of the internet… $GOOGL looks interesting if they cannot win the search
402
480
138
4,364
876,204
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
PHP2Shell, a Brotli decoder vulnerability, and the eMudhra certificate authority key issue each require attention. Microsoft is updating the services it operates and releasing fixes for affected products. Customers should review the issue-by-issue guidance for updates and actions in environments they manage: msft.it/6012aFIEO
10
43
4
193
76,802
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
Patch now: PHP2Shell, Brotli, and eMudhra guidance for customers msft.it/6010aFLKw
PHP2Shell, a Brotli decoder vulnerability, and the eMudhra certificate authority key issue each require attention. Microsoft is updating the services it operates and releasing fixes for affected products. Customers should review the issue-by-issue guidance for updates and actions in environments they manage: msft.it/6012aFIEO
11
123
6
795
67,036
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
There’s a lot of misinformation circulating about Claude Code 2.1.313 following inaccurate initial reports from other sources that have since been wholesale rewritten. Those reports named Open VSX, npm and Microsoft’s marketplace. Our registry checks found no evidence of publication there. Cursor confirmed distribution through its own marketplace. Here’s a breakdown of what we verified about distribution and potential exposure: socket.dev/blog/claude-code-…
2
9
1
31
4,090
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
‼️ Anthropic's official Claude Code extension was distributed with an SSH backdoor via Cursor's marketplace. A trojanized update (v2.1.313) targeted up to 5,000 users, according to Cursor. How attackers pushed it under the legitimate extension's identity remains unclear. Read: thehackernews.com/2026/10/of…
72
223
57
1,046
236,349
Håkan Save Hansson 🇸🇪 🇺🇦 retweeted
Ska vi kalla det Tegnelleffekten? "Lärare och rektorer över hela Uppsala larmar: De ser en markant ökning av yngre elever med beteendestörningar."
3
9
2
34
1,987