Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I thought off by one always had to go at the end.


A thought, reasonable but that how you is fail concurrency. at


I think it’s like those tired old UDP multicast jokes which some people don’t get.


Well they sure beat the TCP joke, don't they?

"Hi, I’d like to hear a TCP joke."

"Hello, would you like to hear a TCP joke?"

"Yes, I’d like to hear a TCP joke."

"OK, I’ll tell you a TCP joke."

"Ok, I will hear a TCP joke."

"Are you ready to hear a TCP joke?"

"Yes, I am ready to hear a TCP joke."

"Ok, I am about to send the TCP joke. It will last 10 seconds, it has two characters, it does not have a setting, it ends with a punchline."

"Ok, I am ready to get your TCP joke that will last 10 seconds, has two characters, does not have an explicit setting, and ends with a punchline."

"I’m sorry, your connection has timed out. Hello, would you like to hear a TCP joke?"

https://www.reddit.com/r/Jokes/comments/2ezdl1/i_told_my_fri...


TCP has only 2 round trips, so more like

> C: I would like to tell a joke

> S: You may tell a joke

> C: We are now exchanging the joke

> C: "Knock knock ..."


The nature of UDP


What joke?


Joke: "I would tell you a UDP joke but you might not get it."

Of course, I might be spoiling the point someone else is making by not posting the joke.


I've heard it:

"I've got a UDP joke for you. You might not get it... but I don't care.".


The joke is that UDP doesn't guarantee packet delivery (or order of arrival).

> What joke?


This is a UDP joke.

I don't care if you get it.


I still didn't get it.


You use UDP (as opposed to TCP) when you want to send data but don't need to wait for any response. A good example is streaming metrics when you can afford to miss some by the metrics aggregator or sending out player location data in a multiplayer game - if you miss the player location update in packet N, you'll just get the update in the N+1 packet or later and update their position at that time. This is totally different than TCP where you want the other server to acknowledge they got the packet else you send it again.

So the joke is a play on words. "You may not get it, the udp packet" (because that is how UDP works by design) and "you may not get it, the joke" (due to being unfamiliar with UDP).


I think that’s the joke - that concurrency errors is in the wrong place.


It’s that the “errors” from “off by one errros” comes after concurrency (the hard things being: cache invalidation, off by one errors, naming, and concurrency—not concurrency errors)


can’t tell if meta or whoosh




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: