Live data from Hacker News

Is it just me or is networking really hard?

gafferongames.com

121–130 of 188 posts

Re: Is it just me or is networking really hard?

#121
post #74
post #44

>You have whole industries (gaming, video streaming, VoIP) that will laugh at you if you send time critical data over TCP and rightly so Skype uses TCP, no? Laugh, indeed.

This might finally explain why the video quality is so bad then. If you tried any commercial video call software it's quite hard to look back to skype.

Google Hangouts isn't much better. I would assume it's more about the constraints of free services than anything else.

If you're talking about systems like Cisco Telepresence, then those are obviously not comparable because of (lots of) dedicated hardware, better connections etc.

Re: Is it just me or is networking really hard?

#122

"You can’t even imagine a way that reliability could be implemented on top of UDP that beats TCP? What total bullshit" This. This "TCP already does it best in every situation" is a common trope usually spouted by people who know nothing about what TCP does and why. The easiest way to get over this misconception is to ask yourself, can you think of a protocol that not only works well over all sorts of networks, all th…

UDP is used when it's designed by network engineers. That's why we have VOIP and video streaming - all are served UDP.

dont get me started on the lack of multicast out there. imagine game servers running multicast. one day.

Re: Is it just me or is networking really hard?

#123
post #122

"You can’t even imagine a way that reliability could be implemented on top of UDP that beats TCP? What total bullshit" This. This "TCP already does it best in every situation" is a common trope usually spouted by people who know nothing about what TCP does and why. The easiest way to get over this misconception is to ask yourself, can you think of a protocol that not only works well over all sorts of networks, all th…

UDP is used when it's designed by network engineers. That's why we have VOIP and video streaming - all are served UDP. dont get me started on the lack of multicast out there. imagine game servers running multicast. one day.

Well... those are examples of designing custom protocols on top of UDP. These network engineers, who I assume are specially trained in some secret govt. facility for network commando training, actually have to understand the problem at hand and design something specifically for the problem. Calling these protocols just "UDP" is like saying something like "I use wheels to commute from home to office everyday"

Re: Is it just me or is networking really hard?

#124
post #55

Earlier quoted context omitted.

this. I'll chime in as someone with a skill set that is completely not special (linux application development, and hardware / firmware / software integration), but in certain circles, is unique since it doesn't involve JavaScript (yet). I think the question is too vague, but I've asked a similar question: To kernel hackers (not application developers) - Tell me what you know about the Linux boot process To anyone wit…

I'd argue that the cases where a hash table's performance characteristics come into play are few and far between for most developers, and when they do, it's way more relevant that the person have a general idea how to profile perf in their code and say "yup, this is the spot that I need to worry about optimizing first". By marking down people who don't know how to implement a hash table, you're cutting out a large ch…

I did an interview once where they asked me questions around the implementation of a hashmap. At the time I'd been working about a year out of university, and had not in that job come across any situation where I'd needed to know anything about how hashmaps worked under the hood (if anyone had a first job where you did, I'm happy for you, yours was a lot more interesting than mine). Any remnant of an explanation I'd got from my CS degree, most likely in first year, was way back in the mists of time. In the pressured situation, I simply admitted I didn't know.

At this point the interviewer's face soured, and he basically wrapped up the interview straight away - it had been running about 5 minutes at that point, with only one question before that, so it was pretty obviously being cut short.

Immediately after the interview I went to Wikipedia to look up hashmaps, instantly understood the basic mechanics, and 5 minutes later could have given a stellar answer to that question.

If that interviewer was looking for someone with an encyclopaedic knowledge of data structures, with flawless recall under pressure, then his question served him well in filtering me out. I sincerely doubt that's what he was looking for, though.

Since that experience I've been very careful, doing interviews myself, never to ask straight-up knowledge questions like this - or at least if I veer into a question like that, allow the candidate to explore the idea (even tell them the answer, and just talk about it to see if they get it) if they initially don't know. That will get you a lot closer to what you're actually trying to assess them for.

It's very easy to fall into a trap of interviewing with a 'mirror' approach, where you assume that the candidate must know what you know, or else be bad. Kind of a paint by numbers, where the finished product looks a lot like you. But everyone learns on a different path. You need to remember that there was a time where each concept you use take for granted every day in your job was once new and alien to you, too. You picked it up just fine, and so can they. In fact, this is by far the most core skill you are looking for - that ability to actually pick up new things and use them.

Re: Is it just me or is networking really hard?

#125
post #118

As a network engineer, this was great. No body never bothers to learn networking. The article is annoying tho, basically says use UDP idiots. I mean, why do we think VOIP uses UDP? Same concept. If only more devs would implement multicast...

Isn't the problem with multicast is most networks filtering it out or not supporting it? Thus it only stays useful for the LAN network scope? So I cannot just multicast to 5000 random IPs on the internet.

Re: Is it just me or is networking really hard?

#126
post #55

Earlier quoted context omitted.

I'd argue that the cases where a hash table's performance characteristics come into play are few and far between for most developers, and when they do, it's way more relevant that the person have a general idea how to profile perf in their code and say "yup, this is the spot that I need to worry about optimizing first". By marking down people who don't know how to implement a hash table, you're cutting out a large ch…

I did an interview once where they asked me questions around the implementation of a hashmap. At the time I'd been working about a year out of university, and had not in that job come across any situation where I'd needed to know anything about how hashmaps worked under the hood (if anyone had a first job where you did, I'm happy for you, yours was a lot more interesting than mine). Any remnant of an explanation I'd…

Well said.

Re: Is it just me or is networking really hard?

#127

"You can’t even imagine a way that reliability could be implemented on top of UDP that beats TCP? What total bullshit" This. This "TCP already does it best in every situation" is a common trope usually spouted by people who know nothing about what TCP does and why. The easiest way to get over this misconception is to ask yourself, can you think of a protocol that not only works well over all sorts of networks, all th…

Indeed, TCP appears to be the universal network hammer...

Re: Is it just me or is networking really hard?

#128
post #23

I've written a series of articles about this topic: http://gabrielgambetta.com/fast_paced_multiplayer.html It's usually well received, perhaps because it builds the ideas from the ground up and does not include the words "What the fuck is wrong with you?" .

To be fair, Gaffer's original articles are well written, thoughtful and informative too. This is him ranting about the unfounded, negative and incorrect feedback he's been receiving about them from people who are willfully ignorant about networking. He could or should have replied with less attitude and more facts, though. I understood what and why he's saying what he is, but I didn't enjoy the negativity either.

> He could or should have replied with less attitude and more facts, though.

I can see his frustration: ignorance frequently has the loudest voice - especially on The Internet.

* "TCP is good enough for Minecraft, it's good enough for you." Blissfully ignores the numerous networking-related bugs that have been present in Minecraft for years.

* "Premature optimization is the root of all evil." Blissfully ignores the remainder of Knuth's quote.

* "UDP is too complex, you won't get it right." Blissfully ignores any and all challenges, never improving their ability.

* "Internet is fast enough." No, it isn't.[1]

* Learns any or all of the above from someone else and believes it because it requires less effort.

Here's someone who has been putting out top-notch content on how to solve the hard problems out of nothing else but for the common good: educating people on how to make games. What do people do? Challenge those facts with superstition and unbelievable ignorance. He's got all reasons to be frustrated, I didn't even write those beautiful articles and I'm frustrated.

He's been putting in so much effort and when people blissfully ignore it, yeah, it's going to be frustrating.

Let him have his rant - at least he's not throwing the towel in. Everyone has their bad days.

[1]: http://www.statista.com/statistics/381388/asia-average-inter...

Re: Is it just me or is networking really hard?

#129
post #23

Earlier quoted context omitted.

To be fair, Gaffer's original articles are well written, thoughtful and informative too. This is him ranting about the unfounded, negative and incorrect feedback he's been receiving about them from people who are willfully ignorant about networking. He could or should have replied with less attitude and more facts, though. I understood what and why he's saying what he is, but I didn't enjoy the negativity either.

His articles are excellent , and I've learned a lot from them myself. But I cannot sympathise with lowering the level of a technical discussion to personal insults.

On the other hand, I really love those personal insults. They get the point across. Maybe there's something wrong with me?

Re: Is it just me or is networking really hard?

#130
post #112

I know the article is language agnostic but I don't think anyone would develop their networking modules (in the context of videogames or finance) in anything but C++ (or Erlang/Elixir?). So could the local experts give their opinion on C++ networking libraries? I know there are a few [1] but how do they compare? I've only used Qt networking and POSIX sockets (although for C), but the application didn't have much of l…

Boost ASIO for me. The ability to single threaded high-speed servers and then to extend to multithreaded with a things like thread pools and atomic stores is invaluable.
Post reply on HN