Can an email go 500 miles in 2025?
71 comments
·July 4, 2025robin_reala
hahahacorn
Even after reading the 2025 updated version, reading the original made me absolutely giddy at the end.
I can only imagine the euphoria of reconciling the inputs of “the things I know to be true of computers and email” and “my emails won’t send further than 500 miles”. What a great story - thanks for posting the original.
vghaisas
I collected a list of fun stories of this form a while ago!
- Car allergic to vanilla ice cream: https://www.cs.cmu.edu/~wkw/humour/carproblems.txt
- Can't log in when standing up: https://www.reddit.com/r/talesfromtechsupport/comments/3v52p...
- OpenOffice won't print on Tuesdays: https://bugs.launchpad.net/ubuntu/+source/cupsys/+bug/255161...
- The Wi-Fi only works when it's raining: https://predr.ag/blog/wifi-only-works-when-its-raining/
markstos
I once had a desktop computer that had great uptime, but started to consistently crash when I got up and left the room to get a drink of water.
Turns out it was old building with loose floorboards. The vibrational force of standing up was enough to short out a failing power supply. As long as I sat my desk, it was fine.
But I had a co-worker who had a worse problem with getting up to get a drink of water. Once while she was kitchen, an eight foot steel lighting ballast came loose from the ceiling and felt right onto her chair.That what-if memory still haunts me.
anton-c
I wonder if the feeling is excitement or horror when you encounter one of these weird problems that seems like it has to be the user.
Not computer related really, but I'm reminded of when my Mom was helping set up macs in the lab at my middle school. I, a 4th grader, tagged along and hung out in the other lab across the hall. I got very incredulous looks when i claimed that there was a lizard in there. It was the Midwest over summer break! I was obviously a kid seeing things. There's no lizards here.
Then I produced the it, caught under a bin. It was a brown anole that had come back in a plant sent from Florida. I wasn't crazy that day.
vidarh
It's not quite in the same league as any of this, but when I was a child, we sent our Commodore 64 in for repairs several times because it started "writing" by itself. Gibberish would slowly appear as if someone was randomly hitting the keyboard.
Each time it took several days before they repair centre got to it, and they then contacted us to tell us there was nothing wrong with the computer at all.
After we picked it up, eventually, when it started happening again for the third or fourth time, we realised the problem:
The "large" (a whopping 26") CRT TV we'd recently started placing it under when not in use caused it... A few days away from the TV to dishcharge it, and it was fine - hence why the repair technician didn't find anything.
hinkley
“WiFi doesn’t work in the summer” is one of the first anecdotes I learned about WiFi when it was still brand new. You set up WiFi between two buildings in the winter, spring comes and the water in the leaves blocks the signal.
salviati
Monitor switches off when I sit down deserves to be on that list (even if it's hardware, not software): https://old.reddit.com/r/techsupport/comments/2rsivw/monitor...
abejfehr
This site has a collection of them: https://500mile.email/
llimos
- A Story About ‘Magic' http://www.catb.org/jargon/html/magic-story.html
ericpauley
I have a tough time deciding a favorite between this story and “the ultimate in garbage collection”: https://devblogs.microsoft.com/oldnewthing/20180228-00/?p=98...
snowwrestler
Does this system release all the memory it allocates?
Yes, it releases it at about 200 meters per second.
jeffhuys
> units
751 units, 62 prefixes
You have: 10 miles
You want: meters
* 16093.44
/ 6.2137119e-05
Huh. Never knew that was a thing!bspammer
It's one of my most used utilities, as someone who can't help but nerd-snipe myself on the regular. Example questions that I've used it for, just in the last week:
If I work 42 hours/week, how many minutes is that per year?
I've downloaded 4.91GB in the last minute, what's that in Mbps? How long will it take to download a 76GB game?
This AWS feature costs $0.045/hour, how much is that per month?
This guy I read about traveled 58,000km in 27 years, what's his average speed in m/s?
How much would a 10cm sphere of gold be worth in GBP?
If a 36 inch pipeline can deliver 25580 acre-feet of water in a year, how fast is the water flowing in m/s?
jmoggr
> How much would a 10cm sphere of gold be worth in GBP?
Is there some trick to this? Or do you have to input it like:
You have: 4/3pi(10 cm)^319320 kg/m^345000 GBP/kg
(What ChatGPT gave me)
bqmjjx0kac
I always want to reach for `units`, but I'm perennially baffled by the output! What's up with the * and /?
Arnavion
The * value is the result of converting 10 miles to meters, as requested.
The / value is the inverse of that in case you wanted that, ie 0.1 meters in miles.
It's explained in `man 1 units`
Symbiote
I usually call it non-interactively:
$ units 1500DKK USD
* 236.76653
/ 0.00422357
in which case it's always the first line I want.(The second line is telling me 1USD is 0.00422357 of 1500DKK.)
Note if you use the currency conversions,
systemctl enable units-currency-update.timer
is needed to keep them up-to-date.barnas2
the * is denoting the conversion from your first unit to your second, the / denotes the other way.
You have: 1 miles You want: feet * 5280 / 0.00018939394
In the above example, 1 mile is 5280 feet, and 1 foot is 0.00018939394 miles
If I do 2 miles to feet, the values are doubled (or halved for the reverse conversion)
You have: 2 miles You want: feet * 10560 / 9.469697e-05
jjice
Thank you for linking this - I need to save this locally because I reference this all the time. This is one of my favorite internet stories - it's just a great arc!
ableal
I got curious what Trey Harris (the original 500 mile story teller) was up to these days, but Google mostly finds me a football player born around that time (2002).
jhalstead
Presumably this is the author given their UNC and SysAdmin background: https://www.linkedin.com/in/treyharris
I found it via a "trey harris sage.org" search on Google.
dgritsko
And if you're one of today's lucky 10,000 and haven't heard of the concept of "lucky 10,000", you can read the relevant XKCD here: https://xkcd.com/1053/
SoftTalker
9,999 remaining.
lesser-shadow
First time I'm hearing about this actually, thank you.
thenobsta
Thanks for letting me be one of the lucky ones.
Obligatory xkcd 10,000 lucky people explainer: https://xkcd.com/1053/
strangescript
Reading the title and knowing exactly what this is about kind of makes me feel old to be honest.
cs02rm0
If it makes you feel better, I'm so old I read the title and 3/4 of the original story before I realised I'd read it before.
r0uv3n
I think this is enough of a classic to be widely known even among younger people. I'm 23 (doing math msc) and I think all the CS people that I know would instantly recognize the 500 miles title.
Though I do somewhat envy the possibility of having read the article close to publication and feel in some sense part of the history when it crops up again like this.
jraph
You could have discovered that story yesterday :-)
JadeNB
> Reading the title and knowing exactly what this is about kind of makes me feel old to be honest.
Let's go for experienced and ready to educate the young'uns.
welder
I thought this was about consolidation of email providers so your email never leaves a single datacenter:
"10 years ago we couldn't send an email 500 miles, but these days we can't send it 500 miles because it just routes internally."
Too bad, I think that would have been more interesting to read.
banannaise
This is the first roadblock the author runs into - lots of universities ping at <2ms, likely because everyone's on the same datacenter.
xp84
I really wouldn't have predicted the extreme amount of centralization, and arguably unnecessary centralization, that we have today for things like university email and web servers. Even 20 years ago when I was in college, the servers I interacted with including email, were all in our school's /16. They did have software packages for LMS and stuff, but those were mostly deployed on-prem.
Today the websites are hosted on third party cloud servers (my school's main website is some company that hosts your Wordpress or Drupal site so you don't have to) and the email by Microsoft or Google. Same for every school it seems. I guess the IT department that used to run all the infra is now probably just a few people in charge of ordering new laptops for faculty/staff when they break, and replacing Wi-Fi access points every 5 years.
rtkwe
Spam is another reason most places don't bother with selfhosting email now. Big providers like GMail aggressively filter unknown servers so if you attempt to host your own and don't setup everything perfectly (or even if you do and you trigger their filter ban threshold) all your email will silently fail to deliver or be blackholed to the Spam folder for the largest email providers and you might never find out or have a way to get them to reconsider.
sombrero_john
You answered your own question. IT staff is expensive, a SaaS subscription less-so.
vidarh
> The poll timeout is 3ms, as specified by the lore. I think this is nonsense, why would an invalid or incomplete sendmail configuration default to three milliseconds?
The answer is that per the original story, it was not defaulting to three milliseconds. It was defaulting to 0, and the 3ms was just how long it took the system to check for a response with a 0 timeout:
> Some experimentation established that on this particular machine with its typical load, a zero timeout would abort a connect call in slightly over three milliseconds.
This is a very different scenario, as it's not clear there should be a poll() there at all (or more likely select() given the age of the story) to match the original, but if there was, the select would have a timeout of 0, not 3ms, and would just happen to be unable to distinguish between 0 and up to 3ms.
banannaise
Yeah, the article is a good one overall, but the truthering is obnoxious, especially since it hinges on a basic misreading of the original story.
CrazyStat
The original story is also about the statistics department, not the university president. It would be nice to get such details right.
geocar
> There’s a lot to the story that’s obviously made up...
Obviously? I think I've had this phone call myself a few times, although in my experience it was never from a statistician and they didn't give me as much data, but I'm pretty sure the story is mostly accurate.
> I think this is nonsense... why would an invalid or incomplete sendmail configuration default to three milliseconds?
This is a wonderful question, and perhaps much more interesting than anything else in the page, but first, let's reproduce the timing;
My desktop, a 2017 Xeon E7-8880 (144 cores of 2.3ghz; 1tb ram) with a load of 2.26 at this moment:
$ time sleep 0.001
real 0m0.004s
user 0m0.001s
sys 0m0.003s
On my i9-10900k (3.7ghz) current load of 3,31: $ time sleep 0.001
real 0m0,002s
user 0m0,000s
sys 0m0,001s
(In case you think I'm measuring exec; time /bin/echo returns 0's on both machine)Now as to why this is? Well in order to understand that, you need to understand how connect() actually works, and how to create a timeout for connect(). Those skilled in the art know you've got a number of choices on how to do it, but they all involve multiple steps because connect() does not take a timeout as an argument. Here's one way (not too different than what sendmail does/did):
fcntl(f,F_SETFL,O_NONBLOCK);
if(-1==connect(f,...)&&errno==EWOULDBLOCK){
fd_set a;FD_ZERO(&a);FD_SET(f,&a);
if(!select(f+1,&a,&a,NULL,{.tv_sec=0,.tv_usec=0})) {
close(f);return error;
}
}
If you read this carefully, you only need to ask yourself how much time can pass between the top of connect() and the bottom of select(), and if you think it is zero like tedu does, you might probably have the same surprise: Computers are not abstract machines, but made out of matter and powered by energy and thus subject to the laws of physics, and so everything takes time.For others, the surprise might be that it's still 3msec over twenty years later, and I think that is a much more interesting subject to explore than whether the speed of light exists.
MadnessASAP
> 144 cores of 2.3ghz; 1tb ram
I can't help but feel that's somewhat excessive for a desktop. Have you considered closing a few browser tabs?
geocar
> I can't help but feel that's somewhat excessive for a desktop.
I got it on ebay for €2k. You can't not expect me to use it as a desktop.
> Have you considered closing a few browser tabs?
No? I mean actually no: I made a brotab+wofi script that allows me to search tabs, and I find it a lot more convenient than bookmarks.
Here's the relevant bits:
brotab_filter='{
split($1,A,".");
t=$2;
gsub(/&/, "\\&",t); gsub(/</, "\\<",t); gsub(/>/, "\\>",t);
print "<span size=\"xx-small\">"A[1]"."A[2]"</span><span size=\"xx-small\">."A[3]"</span> <span weight=\"bold\">Firefox</span> <span>"t"</span>"
}';
( # more stuff is in here
brotab list | awk -F" " "$brotab_filter" ) | \
wofi -m --insensitive --show dmenu --prompt='Focus a window' | sed -e 's/<[^>]*>//g' | {
read -r id name || exit 1
case "$id" in
exec) exec "$name" ;;
[0-9]*) swaymsg "[con_id=$id]" focus ;;
[a-z]\.*)
brotab activate "$id"; sleep 0.2;
swaymsg "[title=\"${name#Firefox }\"]" focus
;;
esac
}
Works fine on 19,294 tabs at the moment...lordnacho
I thought the 3ms was more or less what a low-granularity clock would give you. So, not the clock that gives you nanos, but the big standard one that is useful if you just somewhat care that some timer has run out. Perhaps you use it to count frames (120fps ~ 8.3ms) or check whether some calendar event has happened.
A 333 Hz clock seems like something you might have on computers going back to those days, even if not for the CPU.
chimeracoder
> Obviously? I think I've had this phone call myself a few times, although in my experience it was never from a statistician and they didn't give me as much data, but I'm pretty sure the story is mostly accurate.
Yeah, the original retelling even states up-front:
> The story is slightly altered in order to protect the guilty, elide over irrelevant and boring details, and generally make the whole thing more entertaining.
It's pretty common to alter minor details of stories in order to make them easier to follow, not to mention that the entire account is also written several years after it happened, when details are presumably less likely to be completely accurate. Obviously the dialogue is reconstructive for narrative ease; no reader would look at that and assume it's intended to be a verbatim transcript.
Unless the author here can cite specific things that make it truly impossible for anything of that shape to have occurred, I'm not seeing anything that justifies the conclusion "there's a lot to the story that's obviously made up".
renrutal
I clicked the story wondering if the speed of light has changed since the late 90s.
Apparently not.
SV_BubbleTime
It’s still speed of light in a medium, which is not speed of light. Electricity over copper it is 2/3 iirc.
connicpu
~200,000km/s is the speed of light in fiber optics. Electromagnetic propagation in copper is more like 99% c.
layer8
The insulating material significantly decreases the propagation speed: https://en.wikipedia.org/wiki/Velocity_factor#Typical_veloci...
ta1243
speed of packets over copper I think is actually faster than fibre
layer8
It seems to depend on the cable type: https://en.wikipedia.org/wiki/Velocity_factor#Typical_veloci...
deadbabe
HFT firms have entire infrastructure that runs very close to the speed of light, beating the competition that runs on antiquated copper.
hhmc
There's no competition that's running on copper -- even competitors without latency sensitivity with still be running over fibre because that's just the baseline infrastructure in datacentres, transatlantic etc.
Of course, yes, the HFT firms will be using also the standard tricks of microwave towers, shortwave radio, weather balloon etc, to beat the fibre route.
ta1243
We have a program which the company who developed lost the ability to rebuild the app for some reason.
It has a 500ms timeout to load some settings from a server in the UK via TLS. If it goes more than that 500ms (or something, it's unclear the exact timeout cause) the app just vapourises.
This is fine in the UK, TLS needs about* 3 times RTT to complete though, so an RTT above about 160ms and it's screwed.
Almost all our users are in the UK, europe, mid-east or east coast USA, and in that 160ms RTT range.
We ran into issues when a dozen people tried to use it in Australia, so the principal still happens with some badly written code.
smohare
[dead]
lesser-shadow
Don't get it
justusthane
It’s a test of an old probably apocryphal story about a university that couldn’t send an email more than 500 miles: https://web.mit.edu/jemorris/humor/500-miles
vidarh
Both the person who supposedly configured Sendmail, and the person who wrote the story, have defended the truthfulness of it on HN in the past.
justusthane
Good to know! I do love the story.
voidUpdate
Data can only go about 500 miles in 3ms, and in the original story, that's how long the system took to time out, and would fail to send the email
SV_BubbleTime
It’s a nerd story about short timeouts. Effectively a what is the speed of light or electricity in copper and over infrastructure. It’s a joke that doesn’t make any sense because 3ms was clearly bullshit devised for example. Don’t think about it too hard, it doesn’t suddenly snap into anything meaningful.
vidarh
Why do you think it's "clearly bullshit"?
connect() will take time. Either you then fail on reiceiving EINPROGRESS, or you attempt a select() with 0 for the timeout, which will also take time. That that time could add up to 3ms on a mid-90's system also used for other things seems entirely plausible to me.
unit149
[dead]
jancsika
Is there a library to re-introduce relevant delays into a CDN so that all users experience their own geographically-appropriate response times?
I mean, I want reliability. But I also want Europeans to be able to taste that authentic latency they'd expect from a fledgling startup running out of a garage in San Jose.
If you’re one of today’s lucky 10,000 and haven’t heard the original 500-mile email story, you can read it at https://web.mit.edu/jemorris/humor/500-miles.
(discussed previously on HN 5 years ago – https://news.ycombinator.com/item?id=23775404 – and 10 years ago – https://news.ycombinator.com/item?id=9338708)