
A 15-item digest of this week's highest-signal Hacker News engineering threads, from a sovereign NixOS desktop and a GPU shared between VMs at 2% overhead to a fiber cut that grounded the East Coast and an agent runtime that mailed out its own filesystem.
virtio-nvgpu forwards NVIDIA kernel driver ioctls between a Linux guest and the host at the driver ABI level, so the guest runs Nvidia's own unmodified user-mode drivers and talks to the same card the host owns 7. Measured on an RTX 3060 against the same host running bare metal, a guest's frame times came out within 2% on any frame above about 2 ms, and CPU over a 12-second unpaced run was 0.37 s for the guest against 0.40 s for bare metal 7. Four guests sharing one RTX 3060 rendered at 25.84, 26.49, 25.57 and 25.79 frames per second — 103.7 together against 102.9 for one alone — and all four encoded H.264 at the same time without hitting an NVENC session limit 7. The README states the security position plainly: there is no IOMMU boundary, the guest authors its own command streams, and the host's NVIDIA driver sits in the trusted computing base, so this is attack-surface reduction rather than hardware isolation 7.simd package loosely modeled on C++ Highway that hides the differences between vector architectures 9. The package covers AVX, AVX2 and AVX512 on amd64, NEON on arm64 and WebAssembly's SIMD instructions, and emulates its operations on platforms that lack hardware support, so code written against it keeps running 9. Vector length is out of the type system, GODEBUG=simd=128|256|512 selects a width for testing, and a compiler front-end rewrite specializes every function that mentions a vector type into per-width copies 9. Build with GOEXPERIMENT=simd; cross-vector reduction lands in Go 1.28, along with SVE support and operations such as OnesCount 9.simd path about 11% slower than the architecture-specific archsimd path, with both well ahead of plain Go 10.tsgo cut the weekly median of the tsc check by 73%, and rewriting lint rules to work on the syntax tree instead of the type graph cut API lint time by 68% 11. The largest single win was opting test files into isolate: false so a worker reuses one module registry, worth about 17% of monthly CI usage 11.| Step | Before | After |
|---|---|---|
| Slowest change-detection gate 11 | 94 s | 20 s |
| Per-shard setup 11 | 110–140 s | 67–73 s |
pnpm install for the API package 11 | 44–73 s | 16–18 s |
| Database setup per container 11 | ~12 s | 1–2 s |
| Slowest API shard 11 | 300–379 s | ~195 s |
| API-shard runner time per run 11 | ~32.8 min | 22 min |

wireguard-go implementation offered a single 64 KiB buffer size, so a 1 KiB packet was copied into its own 64 KiB buffer every time. On Linux and Android the client now leaves packets where they landed and marks where each one starts and ends inside the large read, which alone produced roughly a 5% speed-up in many configurations 13. Shorter packet queues freed more memory, and the savings paid for a multi-queue design that gives each stream its own lane and runs the lanes in parallel across CPU cores, replacing one ordered single-thread pipeline for subnet routers, app connectors and exit nodes 13. A buffered-copy change is expected in client v1.104, multi-queue and the rest of the throughput work in a release after it, and netmap caching is already behind a feature flag 13. The post closes by listing what its own performance tooling still cannot do: most tools are point-to-point and need software on every endpoint, many do not speak QUIC or HTTP/3, and none understands whether a connection is direct or relayed 13.
Vary is the response header that tells an intermediary cache which request fields may have changed the response, and Cloudflare now honors it in Cache Rules on every plan 15. Without it, one URL with two correct representations serves whichever one entered the cache first, so an API client can receive HTML and a browser can receive JSON 15. The header names the request fields that may matter and says nothing about which differences actually do, which is where interoperability has historically broken down 15. The new controls let an operator normalize a known negotiation header, pass exact values through when small differences matter, or bypass the cache when variation is unpredictable 15.Vary header is cached normally, so a non-varying cache object could front-run the varying entries for the same URL, and suggested a rule that forces a Vary header onto every response 16.Accept: text/html and something else to the rest was impossible to deploy behind the cache; another commenter has dynamic language pages that could not be cached for the same reason 16.en-US and en-GB as the same variation, since it can put the wrong English in front of a reader. Another, who added Vary support to Apache's cache modules twenty years ago, described the pain-to-reward ratio as poor because it exposed user-agent and backend bugs 16.get_page_template() that lets an unauthenticated attacker steer the theme lookup to a readable PHP file elsewhere on the server and have WordPress include it 20. Code execution depends on the server and the active theme meeting certain conditions, and WordPress rated the flaw 9.2 on CVSS 4.0 on the assumption of a network attacker with no privileges and no user interaction 20. Every release from 4.7.0 through 7.1.1 is affected, and the fix was backported to 24 older branches, down to 4.7.37 21. Patchstack reported that within a day attackers had moved from reconnaissance against harmless core files to including pearcmd.php to write PHP to disk, with public scanning tools circulating and traffic at more than ten times the first evening's volume 20.libpathrs, the library they wrote for exactly this pathology, and argued that standard libraries push developers toward global paths when scoped paths or file descriptors are what the operation needs 22.locate_template() performs no directory-traversal check on a caller-supplied template name, which describes this vulnerability and its fix 22.FAIL for ext4/md-raid10, ext4/lvm-raid10, ext4/md-raid6, xfs/lvm-raid10, xfs/md-raid6 and xfs/md-raid10 (as UNPROVEN) in the corruption probe, while every ZFS, btrfs and bcachefs layout and the integrity-layered XFS variants return SURVIVED 27.SOUL.md, IDENTITY.md, USER.md, MEMORY.md, AGENTS.md and TOOLS.md, an agents/ directory held 113 subagent records with JSONL traces, and /opt/hatch/skills/ held roughly 68 skill directories pairing a SKILL.md with a command-line tool 29. Memory is plain Markdown made searchable by Postgres: memory.entries stores chunks and line references, memory.embeddings holds 384-dimensional vectors, memory.claims tracks evidence, confidence and status, and a supersedes_claim_id lets a newer claim replace an older one 29. The author reported the findings through Meta's bug bounty program, which marked the report "Not Applicable", and he did not publish the archive, the keys or the session logs, establish whether the SSH keys were live, or demonstrate a container escape 29.prompt_hoisted: false flag on the nightly dream files were the two internals the thread picked at hardest 30.node --predictable, V8 call counts from coverage data, React commits, style recalculations and DOM mutations — and required each benchmark to demonstrate that moving it moved user-visible latency 31. The benchmarks became CI ratchets that fail a pull request raising the count, with a daily job lowering the ceiling, and more than 3,000 changes merged without a customer-facing incident or rollback 31.news.ycombinator.com
bcantrill.dtrace.org
news.ycombinator.com
sockpuppet.org
news.ycombinator.com
github.com
news.ycombinator.com
news.ycombinator.com
news.ycombinator.com
tailscale.com
news.ycombinator.com
blog.cloudflare.com
news.ycombinator.com
androidauthority.com
news.ycombinator.com
blog.trailofbits.com
news.ycombinator.com
bartosz.fenski.pl
news.ycombinator.com
news.ycombinator.com
news.ycombinator.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.