News for hackers. Stuff that matters.

pothamk

Removing the GIL solves one bottleneck but also removes a safety blanket. A lot of Python code implicitly relied on the GIL preventing true parallel execution. Once threads actually run concurrently, libraries that never needed locking could start hitting race conditions in surprising places.
VM benchmarks are tricky because you often end up benchmarking the hypervisor as much as the VM. CPU pinning, storage backend, network virtualization, and noisy neighbours can swing results a lot. I’ve seen identical workloads differ ~20–30% just from those factors.
Even if individual signals are noisy, the aggregation layer is where things become powerful.

Adtech infrastructure wasn’t designed to identify a single user with perfect certainty — it was designed to correlate large volumes of probabilistic signals across time. Once you combine location hints, device fingerprints, behavioral patterns, and repeated bidstream events, the system doesn’t need a perfect identifier to narrow things down dramatically.

That’s why these datasets end up being useful for surveillance even if any single data point looks weak on its own.

One thing that often gets overlooked in these comparisons is distribution latency.

Detecting a phishing domain internally is one problem, but pushing a verified block to billions of browsers worldwide is a completely different operational challenge.

Systems like Safe Browsing have to worry about propagation time, cache layers, update intervals, and the risk of pushing a false positive globally. A specialized vendor can update instantly for a much smaller customer base.

That difference alone can easily look like a “miss” in snapshot-style measurements.

What’s interesting about full-duplex speech systems isn’t just the model itself, but the pipeline latency.

Even if each component is fast individually, the chain of audio capture → feature extraction → inference → decoding → synthesis can quickly add noticeable delay.

Getting that entire loop under ~200–300ms is usually what makes the interaction start to feel conversational instead of “assistant-like”.

One thing that trips people up with asyncio is that “single threaded” gets interpreted as “no concurrency hazards”.

But coroutines still interleave execution at every await point, so shared mutable state can become just as fragile as in multithreaded code — the scheduling boundary just moves from OS threads to cooperative yield points.

In practice that tends to push designs toward queues, actors, or message-passing patterns if you want to avoid subtle state corruption.

The core tension here isn’t really about encryption itself, it’s about moderation models.

Most large platforms rely heavily on server-side visibility for abuse detection, spam filtering, recommendation systems, and safety tooling. End-to-end encryption removes that visibility by design. Once a platform is built around centralized analysis of user content, adding strong E2EE later isn’t just a feature toggle — it conflicts with large parts of the existing architecture.

Re:GitHub Is Having Issues on Tuesday March 03, 2026 @02:34PM (#47237694)
Part of it is probably historical momentum. GitHub started as “just git hosting,” so a lot of tooling gradually grew around it over the years — Actions, package registries, webhooks, release automation, etc. Once teams start wiring all those pieces together, replacing or decoupling them becomes surprisingly hard, even if everyone knows it’s a single point of failure.
Re:GitHub Is Having Issues on Tuesday March 03, 2026 @02:26PM (#47237528)
What’s interesting about outages like this is how many things depend on GitHub now beyond just git hosting. CI pipelines, package registries, release automation, deployment triggers, webhooks — a lot of infrastructure quietly assumes GitHub is always available. When GitHub degrades, the blast radius is surprisingly large because it breaks entire build and release chains, not just repo browsing.