frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Alice is impatient

https://brooker.co.za/blog/2026/06/19/waiting.html
49•birdculture•4h ago

Comments

trb•2h ago
Considering other metrics then p99 for user impact is unwise. All users will at some point experience a <1% request, it's not like half of all users will only send requests what will be under your median latency, some of their requests will hit your worst-case.

By focusing on the tail and optimizing worst cases you help users more than by improving your median latency.

rustybolt•2h ago
This article contains very little substance. Show me the math!
AgentOrange1234•2h ago
Yes I found this very hard to follow. I appreciate expressing ideas in math like E_a[X] as much as the next guy, but there is no definition or even description of what the heck E or E_a or Var(x) even mean, so how is anyone supposed to understand the reasoning here? All I get from this is a claim that experienced latency is different than the mean, which sounds important, but I still have no intuition as to why this is. Which is sad, because Booker's blog is often deeply amazing.
NightMKoder•2h ago
This is standard statistics terminology - E(X) is https://en.wikipedia.org/wiki/Expected_value . E_a is presumably Alice's perceived expected value. Var(X) is https://en.wikipedia.org/wiki/Variance . The law of large numbers says the arithmetic average of observations becomes E(X) with enough samples.

I'm pretty sure what the author is saying is:

E(X) =:= \sum_t(t * P(X = t)) is the definition

another important note is P(X^2 = t^2) = P(X = t) - because it's the same distribution.

E_a(X) is a bit sloppy, but consider X_a aka Alice's latency "experience" distribution. The argument is:

P(X_a = t) = t * P(X = t) / \sum_u(u * P(X = u)) - i.e. scale the probability up by t but make it sum to 1.

Then

E(X_a) = \sum_t(t * P(X_a = t)) = \sum_t(t * t * P(X = t) / \sum_u(u * P(X = u))

aka

E(X^2) / E(X)

Then (from wikipedia)

Var(X) = E(X^2) - (E(X))^2

And we get

E(X_a) = (Var(X) + (E(X))^2) / E(X) = E(X) + Var(X) / E(X)

zaik•2h ago
Is the formula for E_a[X] trivial? I don't see it immediately...
kgwgk•1h ago
E[X^2] weights each time with the time, giving the square, and the E[X] in the denominator is the normalisation factor (also required to fix the dimensions).

Say that there are to different waiting times 1s and 3s, and they happen with probability 50% each. The average waiting time (1/2 1+1/2 3) is 2s. However, 75% of the time we are waiting on a 3s event and only 25% on a 1s event. The weighted average is 2.5s. E[X^2]=1/2 1+1/2 9=5(s^2) is not the right answer, it still has to be divided by E[X]=2(s) to get the correct answer.

perching_aix•2h ago
I've grown to dislike the typical tail measurements completely. What I usually look at these days is what share of unique users experience an "unacceptable experience" over a measurement period instead.

I find it much more inquisitive and visceral, to the extent that p99 now boggles my mind. 2N would be dreadful as an availability figure, yet for UX it's treated very different. So much so that my measurements corroborate exactly that; good UX requires the same many-nines reliability as e.g. DCs, not one or two.

I wonder if it's p90 and p99 to blame for the shoddy services we have, in a way. It's pretty hard to argue for fixing something when it's presented as only going wrong 0.5% or less of the time after all. Even if at scale that means most of your users are experiencing it weekly.

AkshatM•27m ago
How does one measure unique users here in a way different from classic p99? I usually associate p99 with an SLO of some kind, and each request as a "unique user" for the service, so at first it seems like the same thing - measuring p99 with a SLO would say 1% of users are allowed to experience a time longer than our acceptable minimum T, and you're measuring the percentage of requests ("users") experiencing T and trying to keep it below 1% (e.g.).

Is the difference more about measuring a request "across services"? That is, the total cumulative p99 across services must be small i.e. linking all requests to a user and then measuring that? Or is the difference elsewhere?

If the former: are you taking traces and graphing that? What's your methodology?

ggm•35m ago
Interesting you work at Amazon and show how end user experience weights to their pessimal experience.

So.. apply that to Amazon design heuristics like author name search on books, and how Amazon return "in the style of" and "not a book but this guy called Charles Dickens makes jigsaws" as high order matches and consider how the end user experience weights to the pessimal yet Amazon can show on average they make more money doing this..

(Understood that engineers and AWS don't influence UX in the storefront or search)

cowthulhu•18m ago
Comments like these seem likely to discourage authors from making more interesting posts about niche topics they specialize in, without actually moving the needle on stuff the commenter is pestering about.

Renting a sewing machine from the library

https://www.bbc.com/future/article/20260618-the-weird-and-wonderful-libraries-of-finland
78•sohkamyung•2h ago•33 comments

Epoll vs. io_uring in Linux

https://sibexi.co/posts/epoll-vs-io_uring/
41•Sibexico•2h ago•9 comments

Show HN: TownSquare, a tiny presence layer for websites

https://townsquare.cauenapier.com/
45•cauenapier•13h ago•17 comments

Project Fetch: Phase Two

https://www.anthropic.com/research/project-fetch-phase-two
21•stopachka•1h ago•1 comments

Loupe – A iOS app that raises awareness about what native apps can see

https://github.com/mysk-research/loupe
42•Cider9986•13h ago•7 comments

Slow breathing modulates brain function and risk behavior

https://www.cell.com/neuron/fulltext/S0896-6273(26)00339-9
36•croes•2h ago•2 comments

SMPTE Makes Its Standards Freely Accessible

https://www.smpte.org/blog/smpte-makes-its-standards-freely-accessible-openingstandards-library-t...
226•zdw•8h ago•61 comments

Alice is impatient

https://brooker.co.za/blog/2026/06/19/waiting.html
49•birdculture•4h ago•10 comments

Unauthorized alert sent to cell phones across Brazil

https://www.cnn.com/2026/06/20/americas/brazil-hackers-unauthorized-alert-latam
81•zdw•5h ago•57 comments

UHF X11: X11 Built for VisionOS and Apple Vision Pro

https://www.lispm.net/apps/uhf-x11/
157•zdw•8h ago•26 comments

15-minute at-home Lyme disease tick test

https://www.bostonglobe.com/2026/06/17/business/lyme-disease-tick-test/
16•bookofjoe•2d ago•4 comments

DOS Game "F-15 Strike Eagle II" reversing project needs DOS test pilots

https://neuviemeporte.github.io/f15-se2/2026/06/20/needyou.html
197•LowLevelMahn•10h ago•57 comments

Semiconductor Lifeline Keeps Fighter Jets in the Air

https://spectrum.ieee.org/phoenix-semiconductors-legacychips-oems
33•rbanffy•4d ago•6 comments

CSSQuake

https://cssquake.com/
455•msalsas•14h ago•98 comments

PostgresBench: A Reproducible Benchmark for Postgres Services

https://clickhouse.com/blog/postgresbench
75•saisrirampur•6h ago•20 comments

Inference cost at scale with napkin math

https://injuly.in/blog/napkin-inference-cost/index.html
58•gmays•4d ago•14 comments

Pre-2022 Books

https://notes.lorenzogravina.com/musings/pre-2022-books
153•trms•2h ago•86 comments

Show HN: Make PDFs look scanned (CLI or in the browser via WASM)

https://github.com/overflowy/make-look-scanned
85•overflowy•6h ago•41 comments

Show HN: StartupWiki – A Free Alternative to Crunchbase

https://startupwiki.tech/
151•shpran•9h ago•48 comments

Whole cross-sectional human ultrasound tomography

https://www.nature.com/articles/s41551-026-01660-4
13•lnyan•2d ago•2 comments

The Wholesale Plagiarism of Obscure Sorrows

https://waxy.org/2026/06/the-wholesale-plagiarism-of-obscure-sorrows/
318•ridesisapis•7h ago•134 comments

The rise of South Korea’s weapons business

https://www.politico.com/news/magazine/2026/06/20/south-korea-weapons-dealer-trump-00959559
108•JumpCrisscross•13h ago•40 comments

Linux eliminates the strncpy API after six years of work, 360 patches

https://www.phoronix.com/news/Linux-7.2-Drops-strncpy
80•simonpure•4h ago•49 comments

Temporary Cloudflare accounts for AI agents

https://blog.cloudflare.com/temporary-accounts/
163•farhadhf•13h ago•94 comments

'We had to get out of the way': The backlash over delivery robots

https://www.bbc.com/news/articles/c0rygp005wjo
4•higginsniggins•1h ago•0 comments

Bun has an open PR adding shared-memory threads to JavaScriptCore

https://github.com/oven-sh/WebKit/pull/249
113•gr4vityWall•8h ago•207 comments

Supermarket giant Tesco sues VMware for breach of contract

https://www.theregister.com/software/2025/09/03/supermarket-giant-tesco-sues-vmware-for-breach-of...
81•wglb•4h ago•20 comments

Show HN: We post-trained a model that pen tests instead of refusing

https://www.argusred.com/cli
72•dk189•11h ago•32 comments

Why has the pointe shoe been so resistant to change?

https://dancemagazine.com/pointe-shoe-innovation/
48•onemind•23h ago•49 comments

Show HN: My Windows XP portfolio with working Game Boy and iPod

https://mitchivin.com/
50•mitchivin•5h ago•26 comments