Josse-posten

The US–Iran war enters a third night as the Strait of Hormuz is blockaded and oil surges; in Paris, nine nations launch a missile shield and Ukrainian drones reach beyond the Urals.

US–Iran War: Third Night of Strikes, Hormuz Blockaded, Tankers Ablaze

A vessel in the Strait of Hormuz, seen from Musandam, Oman, 13 July 2026. Photo: Reuters

The US launched a third consecutive night of air strikes on Iran as President Trump reimposed a naval blockade on Iranian ports and slapped a 20% transit fee on all cargo moving through the Strait of Hormuz. Iran retaliated against US facilities in Bahrain and Jordan — and fired cruise missiles at two commercial oil tankers in the strait, killing one Indian crew member and wounding eight. Brent crude jumped more than 7% toward $85 a barrel on fears of prolonged disruption to the waterway that carries roughly a fifth of the world’s oil. The ceasefire agreed last month has effectively collapsed; Trump demanded Gulf states pay for US protection while insisting a deal was still “possible.” The war is already drawing in neighbours: Yemen’s Houthis struck Saudi Arabia’s Abha airport in retaliation for a Saudi raid on Sanaa, and the UAE is drawing up plans for new Gulf of Oman ports to route oil around a possible Hormuz closure.

Paris Summit: Nine Nations Launch the FREYJA Missile Shield

The Coalition of the Willing summit in Paris, 13 July 2026. Photo: Defense News

Zelensky travelled to Paris for the launch of a nine-nation Anti-Ballistic Coalition, committing to field FREYJA — a European Patriot-class alternative — within a year, with leaders describing ballistic missiles as “Putin’s final bet.” Macron announced France will license Ukraine to produce French missiles domestically and confirmed Rafale deliveries for 2028–29. The Coalition of the Willing expanded to 40 countries as Moldova and North Macedonia joined; Starmer said more than 25 members are ready to deploy troops within days of a ceasefire, and the next meeting will be held on Ukrainian soil. Trump, meanwhile, signalled he is ready to back the late Senator Graham’s bipartisan Russia sanctions bill. (More in Ukraine.)

Indicator Value Change
S&P 500 (f) 7,559.25 −0.05%
Dow 30 (f) 52,622 −0.27%
Nasdaq (f) 29,585.5 +0.37%
Russell 2000 (f) 2,965.5 −0.16%
VIX 17.29 +0.76%
Gold 4,029.1 +0.58%
BTC $63,560.94 −0.82%
EUR/USD 1.1396 +0.12%
USD/NOK 9.7537 −0.28%
  • Gold +0.58% — safe-haven bid as the US–Iran war enters a third night and the Hormuz blockade is reimposed (see World).
  • Oil is off today’s feed, but the World report has Brent jumping ~7% toward $85/bbl after Iran’s tanker strikes in the strait.

World

ICE Agent’s Second Fatal Shooting in a Week; Mexico Files Criminal Complaints

An ICE agent fatally shot a 26-year-old Colombian man in Biddeford, Maine — the ninth death linked to Trump’s immigration-enforcement campaign and the second fatal ICE shooting in under a week. Mexican President Claudia Sheinbaum announced she will formally ask US prosecutors to file criminal charges over the deaths of more than a dozen Mexican nationals killed in detention or enforcement operations, saying Mexicans are “outraged.”

Rubio Moves to Formally Dismantle the International Criminal Court

Secretary of State Marco Rubio announced a campaign to dismantle the International Criminal Court, claiming it unlawfully interferes with American military and law-enforcement operations. The move fits the administration’s broader withdrawal from multilateral bodies and comes as the ICC continues to pursue cases involving US allies.

Former Iranian President Ahmadinejad Reportedly Arrested for Israeli Contacts

Former Iranian President Mahmoud Ahmadinejad has been placed under house arrest by the IRGC’s intelligence wing after authorities reportedly uncovered evidence of his contacts with Israel, according to four senior Iranian officials cited by the New York Times. Mossad officials and Ahmadinejad’s spokesman declined to comment. If confirmed, the arrest would signal severe internal fractures within Iran’s political establishment in the midst of an active war with the United States.

Trump Threatens Iran’s Fortified Underground “Pickaxe Mountain” Nuclear Site

Trump threatened to destroy “Pickaxe Mountain,” a heavily fortified underground nuclear facility in Iran — a statement that came as US strikes entered their third night. The threat marks a qualitative escalation beyond current air operations, raising the prospect of direct strikes on Iran’s nuclear infrastructure for the first time.

Sinwar’s 2022 Notes: He Expected Israel Might Go Nuclear — and Proceeded Anyway

Handwritten Hamas documents from August 2022, disclosed by Israeli Military Intelligence, show that Yahya Sinwar explicitly acknowledged Israel might respond to an invasion with nuclear weapons — and pressed ahead with planning. Sinwar wrote that “the enemy may even use a nuclear bomb,” framing the prospect as acceptable within what he called a “battle of life or death.” The documents also reveal that Hamas planned an assault force of up to 10,000 fighters targeting more than 200 locations.

Courts Rein In Trump: $81bn in Tariff Refunds, Voided IRS Deal, Retreat on Trans Care

The reversals are stacking up. The US has already paid back at least $81 billion in tariff revenue after the Supreme Court ruled the Trump-era tariffs illegal — one of the largest financial reversals in US trade-policy history. A federal judge separately struck down the $1.8 billion settlement that had shielded Trump from certain IRS audits, ruling the suit was brought for “improper purposes” and referring a Trump attorney for possible discipline. And HHS quietly dropped its most aggressive attempt to end gender-affirming care for minors — a plan to withhold Medicare and Medicaid funding — without public announcement.

Volkswagen to Cut Up to 100,000 Jobs Globally

Volkswagen Group — parent of Audi and Porsche — plans to shed up to 100,000 jobs worldwide as it grapples with falling profits and intensifying competition from Chinese EV makers. The cuts would rank among the largest restructurings in automotive history and reflect a deepening crisis across the European car industry.

BBC · Reddit

Hungary Votes to Remove Its Orbán-Appointed President

Hungary’s parliament passed a constitutional amendment ousting President Tamás Sulyok, a loyalist of former PM Viktor Orbán, who lost power in April after 16 years. The move signals the new government’s intent to dismantle the institutional infrastructure built during the Orbán era — including the presidency itself.

BBC · Al Jazeera · AP

Howard Lutnick’s Epstein Ties Surface in Released Files

A British whistleblower, Simon Andriesz, uncovered links between US Commerce Secretary Howard Lutnick and Jeffrey Epstein in the publicly released Epstein files. The discovery, reported by the BBC, adds a sitting cabinet secretary to the roster of senior officials whose connections to Epstein’s network have emerged from the document releases.

BBC

Also today

Justice
German court convicts an Iraqi ISIS couple of enslaving Yazidi girls; one gets life — BBC · DW
Sudan court sentences RSF chief Hemeti to death in absentia for war crimes, with 15 other commanders — BBC
Europe & US
Russia detains anti-war politician Boris Nadezhdin, once barred from challenging Putin — BBC
Lindsey Graham’s younger sister Darline named to fill his Senate seat, backed by Trump — BBC · Al Jazeera
Economy
200+ economists and AI researchers urge leaders to prepare now for AI-driven disruption, calling safety nets inadequate — Al Jazeera
Indonesia jails Gojek co-founder Nadiem Makarim over a Google procurement contract, rattling investors — Al Jazeera
Disasters
Bangkok bar-fire toll reaches 30 as police probe locked emergency exits — the city’s deadliest since 2009 — The Guardian · BBC
Spain wildfire: British couple Pete and Fran Gillam confirmed among 13 dead in Almería — The Guardian · BBC
France suspects arson in the Fontainebleau fire near Paris; two arrested, ~900 homes evacuated — BBC · The Guardian
Aid groups warn a record-strength El Niño threatens floods from East Africa to Pakistan — Al Jazeera
Obituary
Sam Neill, Jurassic Park’s Dr Alan Grant, dies “suddenly and unexpectedly” at 78 — BBC

Ukraine

Deep Strikes Reach Beyond the Urals; Russian Refining Hits a 21-Year Low

Smoke rising from the Gazprom Neftekhim Salavat refinery in Bashkortostan after a drone strike. Photo: Ukrainska Pravda

Ukraine struck the Gazprom Neftekhim Salavat refinery in Bashkortostan — roughly 1,400 km from the front, behind the Urals — overnight July 13–14, adding to the Afipsky refinery near Krasnodar hit the same night. Russian oil refining has now fallen to its lowest level in 21 years, with fuel shortages threatening up to 30% of the harvest and disrupting logistics to occupied territories; Russia is deploying mobile air-defence teams as far as 3,700 km from the border. Separately, Ukraine conducted the world’s first unmanned amphibious assault on the Kinburn Spit — a sea drone delivered a ground drone that then attacked Russian positions ashore — and confirmed it now fields a full squadron of reusable Horynych bomber drones for hardened targets. The maritime siege continues: 105 shadow-fleet vessels struck in the Sea of Azov over eight days cut the active ship count from 132 to 43, forcing Russia to suspend Azov shipping.

Oleksandrivka Breakthrough Claim; Crimea Siege Tightens Further

A Ukrainian regiment in the Oleksandrivka direction announced the liberation of six settlements — Ternove, Zaporizke, Novoheorhiivka, Vorone, Sichneve and Maliivka — claiming 120 sq km retaken and a 25 km advance, though the unit later quietly deleted its post without a formal retraction, and ISW cannot confirm it; secondary Ukrainian outlets have kept the reports live. The operation reportedly inflicted critical losses on Russia’s 120th Naval Infantry Division. Meanwhile overnight strikes on July 12–13 hit four Crimean power substations, an S-400 launcher near Kerch, a Pantsir-S1, a Nebo-U radar and a large logistics hub near Armyansk.

Russian Strikes Destroy Odesa Grain Exports; Geran-2 Drone Lands in Moldova

Russian strikes on Chornomorsk port (July 10–12) damaged Kernel Holding’s export terminals, destroying 45,000 tons of wheat and 9,000 tons of sunflower oil and halting exports; a separate strike on a Togo-flagged civilian vessel in Odesa killed three and injured ten. A Russian Geran-2 drone also struck Copanca, Moldova — about 25 km from the border and at least the 20th such incursion since 2022. ISW warns the pattern reflects Putin’s acceptance of cross-border collateral impacts, and urges EU/NATO states to consider air-defence agreements with Ukraine as a matter of self-defence.

Also today

  • Trump signals he is ready to back the late Senator Graham’s Russia sanctions bill; the EU sanctions nine Russians for cyberattacks, 15 over the torture of Ukrainian POWs, and readies its largest-ever 250-person package — Ukrainska Pravda: Trump · Ukrainska Pravda: cyber · United24: 250 sanctions
  • Japan concedes it has become a major Russian espionage hub after an NYT investigation, pledging to counter foreign intelligence “with even greater rigour” — The Guardian
  • Russia holds a live-fire exercise on Lake Peipus, on NATO member Estonia’s border, without the required advance notice — ERR News

Norge

Norges VM-sommer: en nasjon i euforisk bakrus

Norsk Reddit flommer over av VM-følelser etter at det historiske kvartfinale-eventyret endte i et knepent og omstridt tap mot England. Bellinghams mål er hett omdiskutert — mange nordmenn mener det burde vært annullert — og frustrasjonen over FIFAs korrupsjon kanaliseres nå inn i alvorlig politisk debatt: flere partier på Stortinget åpner for et nordisk VM, og noen tar til orde for et europeisk brudd med FIFA. Hjemkomstparaden på Karl Johan samlet anslagsvis 100 000–150 000 mennesker, F-35-fly fra Luftforsvaret eskorterte laget hjem, og flere tråder fanger en sjelden følelse av nasjonalt samhold — av noen sammenlignet med samholdet etter 22. juli. Den rådende stemningen er stolthet blandet med sorg over at det er over: en «julemorgenen-er-forbi»-melankoli.

AI-briller er «en enorm trussel mot demokratiet»

Metas AI-solbriller, markedsført av Kylie Jenner. Foto: Meta / Schibsted

En kommentar i tek.no som sirkulerer på r/norge, argumenterer for at Metas AI-briller (frontet av Kylie Jenner, også solgt av Google og Snap) må forbys som en demokratisk trussel på linje med den uregulerte utrullingen av sosiale medier. Kommentaren peker på at Meta tester en «super sensing»-modus som filmer kontinuerlig uten opptakslyset; at kenyanske underleverandører har gjennomgått intime videoer — folk som kler av seg, har sex — tatt opp uten samtykke gjennom brillene; en dokumentert nedkjølingseffekt på ytringsfriheten; og rapporter om at kvinner trakasseres av menn som bruker enheten. SV vil ha et norsk forbud, Forbrukerrådet mener saken bør utredes, og KI-forsker Inga Strümke kaller teknologien «skikkelig dritt». Digitaliseringsminister Karianne Tung avfeier bekymringen og mener eksisterende personvernregler holder — en holdning kommentaren kaller «farlig underdrivelse».

Koronaforskere ut mot FHI: «Vi har forsøkt å advare»

Forskerne Arne Søraas og Gunhild Nyborg ved Koronastudien på Oslo universitetssykehus anklager FHI for å ha ignorert flere års internasjonale advarsler om at covid-19 gir varig hjerte- og karskade. De viser til en 50 år lang nedadgående trend i hjerte- og kardødsfall som brått stanset i 2021, og en kraftig økning i unge voksne på hjertemedisin — mønstre som Den europeiske kardiologiforeningen (ESC) mener stemmer med at covid er en langsiktig hjerterisikofaktor for 2–5 % av de smittede. FHIs smitteverndirektør Kristian Tonby avviser: justerte dødelighetstrender støtter ikke en årsakssammenheng, og enkeltstudier må vurderes nøye. Forskerne mener FHI tidlig og ideologisk avfeide long covid-forskning: «De ser ut til å ha bestemt seg tidlig for at senfølger stort sett var psykosomatiske», sier Nyborg. Søraas ber om en uavhengig gransking.

Tech

From Coder to Curator: Own the Design, Let the AI Write the Code

Two of the day’s most-shared essays land on the same thesis from different directions. Redis creator Salvatore Sanfilippo (antirez) argues that as AI generates most code, the developer’s job shifts from line-by-line review to controlling high-level design — his proposed primary artifact is a DESIGN.md documenting data structures and architectural rationale, not the generated lines themselves. André Staltz, a former skeptic turned “full curator,” reports he “no longer has to fix the AI pull request” in most cases and draws a historical parallel to typing: once a profession, now absorbed. Both frame this as restructuring rather than elimination — architectural understanding stays essential — and both are uneasy about early-career developers who still need hands-on coding to build mental models.

A CS Professor’s Three-Month Claude Code Audit

Amy Ko (UW, 24 years’ experience) offers the sharp counterpoint: ~90% of tasks worked reasonably well, but the remaining 10% hid serious problems — performance bugs, wrong assumptions, tests that masked rather than revealed defects; in extreme cases the tool deleted uncommitted work unrecoverably. She describes an addictive speed that colonised her non-work hours, fragmented creative flow into constant permission interrupts, and left her reviewing unfamiliar code rather than writing her own. API costs were ultimately what imposed discipline. Her defensive practices: fully articulate design rationale before handoff, explicitly interrogate model assumptions, and reserve AI for late-stage implementation only.

Claude Code’s 24% PR Boost: Microsoft’s Rollout Study

A study of tens of thousands of Microsoft engineers in early 2026 found Claude Code and GitHub Copilot CLI users merged roughly 24% more pull requests than they otherwise would have — an effect that persisted across the entire four-month window. Adoption spread through social networks rather than top-down mandates, and retention correlated with coding activity rather than demographics. The authors caution that merged PRs are a proxy that doesn’t capture value delivered, but the scale and persistence of the finding are notable for anyone thinking about deployment.

arXiv · HN

Git’s New history Command: Fixup, Reword, Split

Git 2.54/2.55 shipped an experimental git history subcommand with three operations: fixup (stage corrections to an older commit and rebase all descendants automatically), reword (update messages without touching the working directory), and split (decompose a commit into two via interactive hunk selection). All three refuse operations that would produce conflicts, keeping the repo in a clean state. The author argues this closes much of the gap that drives developers toward Jujutsu — stack management and commit surgery without learning a new VCS.

crates.io: Source Viewer, RustSec Banners, Auth Decoupling

Six months of crates.io improvements: a source-code viewer now lets you browse the exact published bytes cargo downloads (including the normalised Cargo.toml); RustSec integration adds banners for unmaintained crates and stdlib replacements (lazy_static now points to std::sync::LazyLock); GitHub auth is being decoupled with native crates.io usernames; and the Ember→Svelte frontend rewrite finished in May. Search ranking now caps at the top 1,000 results by download count, cutting query times significantly. Plus an eye-tracking Ferris on the error pages.

Cache-Friendly Parsers: Indices Beat Pointers

A breakdown of Yuku, a JS/TS parser in Zig running 3–10× faster than npm alternatives — with the speedup coming almost entirely from memory layout. Instead of heap-allocating each AST node and chasing pointer chains, Yuku stores all nodes in flat arrays with 32-bit integer indices: half the size of pointers, position-independent, freed in a single arena deallocation. Children use offset-length pairs into a shared array; strings are zero-copy spans into the source buffer. The lesson: for cache-sensitive code, data layout is higher-leverage than algorithmic sophistication.

Estimating New Yorkers’ Heights from Subway Scuff Marks

Scaling scuff-mark luminance to estimate the height distribution of NYC subway commuters. Photo: blog.jse.li

A developer noticed the band of scuff marks on the walls of Smith–9th Street station encodes a human height distribution, and set out to recover it. Using photogrammetry, luminance analysis, and calibration against reference dimensions, they extracted a distribution matching NYC demographic data. A delightful example of inferring population statistics from unexpected physical evidence — good probabilistic thinking made concrete.

Also today

  • Over 60 Emacs developers pledge a preemptive fork of GNU Emacs if the project accepts LLM-generated contributions — a values stance, infrastructure already in place — human-emacs.org · Lobsters
  • DoorDash’s food-metadata platform uses an “LLM jury” (consensus across models, ~20% more accurate than human annotators) plus self-tuning context-optimization agents — DoorDash Eng · HN
  • lobste.rs migrates from MySQL to SQLite in production — CPU and memory down, Monday’s traffic spike handled fine — Lobsters
  • MorphoHDL: an experimental HDL where circuits grow through recursive graph rewriting, L-system style — MorphoHDL · HN
  • Chips and Cheese analyses ACE, a new x86 matrix-multiply ISA — fixed 64B×16 tiles, FP8, flexible low-bit quantization vs Intel AMX — Chips and Cheese · HN
  • A practical guide to implementing Go-style goroutines, channels, and select in C using mutexes, condition variables, and epoll — antonz.org · Lobsters

Linux & Infrastructure

Nix 2.35.0: 2× Faster Tarballs, HTTP/3 Cache Fetches, mimalloc by Default

Nix 2.35.0 ships several meaningful performance wins: sources are now copied lazily, making tarball fetching roughly 2× faster; the binary links mimalloc by default for a 5–12% wall-clock improvement on evaluation; and HTTP/3 (QUIC) support for binary-cache fetches is available behind a config flag with automatic fallback. Other additions include FreeBSD libjail sandboxing, SCP-style URL recognition in the git fetcher, and exponential backoff on file-transfer retries. It also fixes a recursive-nix security issue and a hash-collision vulnerability between self-referential store paths. A 2.35.1 patch followed to address regressions.

mikrotik.nix: Declaratively Manage Your MikroTik Router from Nix

A new early-stage project lets you manage RouterOS configuration declaratively via Nix, converting /export compact output into version-controllable Nix config you can rebuild. The author has deployed it on their own home router and is seeking adventurous testers — it’s still rough. Commenters also pointed to terraform-routeros + terranix as a stateful alternative.

Containix: Run Nix Flakes as Kubernetes Pods Without Building Images

Containix (v0.1.0) is a containerd runtime shim that runs a Nix flake reference as a Kubernetes pod — no Dockerfile, no registry push/pull. The shim reads the flake ref from pod annotations, fetches the closure from a binary cache (Cachix, Attic, etc.), bind-mounts store paths as the container filesystem, and hands off to runc. Pods sharing libraries mount identical store paths, so deduplication is automatic. The API is unstable at v0.1.0 — experiment territory — but the architecture is sound and test coverage is solid.

Tokyo Night Hyprland Dotfiles: NixOS-Native, WallRizz, GPU Passthrough

A polished full-NixOS Hyprland dotfile set worth noting for its NixOS-specific touches: WallRizz integration means changing your wallpaper live-resyncs the whole colour scheme (Hyprland borders, kitty colours); Waybar has a NixOS control panel baked in (rebuild, update, garbage-collect) plus a VPN management TUI; liquid-gradient animated borders; full GPU passthrough for a Windows VM that auto-detaches on start/stop; and custom nixpkgs packages for tools not upstream. A VM config is included for a one-command trial. Standard tools are swapped: grep→rg, find→fd, du→dust, top→btop, rm→rip.

PSA: UPnP Enabled by Default on UGREEN NAS Exposed Homelab Services

A self-hoster discovered their UGREEN NAS shipped with UPnP enabled by default, which automatically punched holes in their router and exposed homelab services to the internet without their knowledge. Worth an audit: if you run any NAS, router, or smart device you didn’t configure from scratch, check what UPnP is doing. On MikroTik/OpenWrt/pfSense it should be explicitly opted into — if it’s on and you didn’t set it, check what’s forwarded.

portwho: One ncurses TUI for Sockets, Connections, and Live Throughput

portwho showing listening sockets, connections, and per-connection throughput in one screen. Source: portwho

portwho replaces the juggle between ss, lsof, and nethogs: a single ncurses screen showing listening sockets and active connections (TCP/UDP, IPv4/IPv6) with process attribution via /proc/<pid>/fd/, plus live per-connection throughput sparklines via tcp_info. No root needed for your own sockets; sudo unlocks all users. No dependencies beyond ncursesw, hardened builds, and a man page. Fresh out in July 2026.

Also today

Self-hosting
Pocket ID reaches OpenID Connect Certified™ status (v2.10.0) and adds OAuth 2.0 API support — a solid passkey-based SSO option with a NixOS module — Pocket ID · r/selfhosted
Xilo: a new self-hostable Nix binary cache — admin UI, single 10 MB binary, zero external dependencies (no S3 needed) — r/NixOS
NixOS
An on-demand AI stack (Ollama + Open-WebUI + SearXNG) as a systemd target group, toggled with ai-start/ai-stop — frees the GPU when stopped — r/NixOS
NixOS modular-services working group (meeting #4) nears merging the process.environment and reloading PRs, aiming for service modules that work across NixBSD, Linux, and maybe Darwin/Windows — NixOS Discourse
Hyprland
Hyprland 0.55 swapped hyprland.conf for a Lua API with no official migration guide — a community member built a hyprland-lua-migration agent skill by diffing the 0.54/0.55 source and wiki — Reddit
ChillPill-Shell v0.1.0 — a Quickshell pill/dynamic-island bar for integrated-GPU machines with control center, cliphist, OSDs, and DBus notifications (drop swaync/dunst); ~0–3% idle CPU — GitHub · r/hyprland
Tip: instant light/dark theme switching without a Plasma session — script kwriteconfig6 (Dolphin) + gsettings (GTK) and bind it to a key — r/hyprland
Networking
RIPE Labs explains delivering IPv4 on IPv6-only infrastructure — 464XLAT, NAT64, DNS64 — useful as IPv4 space grows scarcer — RIPE Labs · Lobsters
cd ~/repos/josse-posten && claude --resume 09c695ba-8245-4c88-8bdf-80bc9cb1a8f8