Live data from Hacker News

Engineering for Slow Internet

brr.fyi

231–240 of 406 posts

Re: Engineering for Slow Internet

#231

A lot of this resonates. I'm not in Antartica, I'm in Beijing, but still struggle with the internet. Being behind the great firewall means using creative approaches. VPNs only sometimes work, and each leaves a signature that the firewall's hueristics and ML can eventually catch onto. Even state-mandated ones are 'gently' limited at times of political sensitivity. It all ends up meaning that, even if I get a connectio…

Tbh, developers just need to test their site with existing tools or just try leaving the office. My cellular data reception in Germany in a major city sucks in a lot of spots. I experience sites not loading or breaking every single day.

developers shouldn't be given those ultra performant machines. They can have a performant build server :D

Re: Engineering for Slow Internet

#232
post #106

Earlier quoted context omitted.

I was in Berlin earlier this month and the cellular connections underground were quite good now. So maybe this is less of a problem?

It's provider-specific

Not any more? https://unternehmen.bvg.de/pressemitteilung/grossprojekt-erf...

Summary: since 2024-05-06, users of all networks also get LTE in the U-Bahn thanks to a project between BVG and Teléfonica (not surprising that Teléfonica deployed the infra because they had the best U-Bahn LTE coverage beforehand)

Re: Engineering for Slow Internet

#233
It is not just bandwidth or latency, and is not just for Antarctica. Not in all places of the world you have the best connectivity. Even with not so bad connectivity, you may have environmental interference, shared use or be just far from the wifi router. You may have a browser running in a not so powerful CPU, doing more things chewing processor, or the available memory, so heavy JS sites may suffer or not work at all there. You don't know what is in the other side, putting high requirements there may turn your solution unfit for a lot of situations.

Things should be improving (sometimes fast, sometimes slowly) in that direction, but still is not something guaranteed everywhere, or at least in every place that your application is intended or needed to run. And there may be even setbacks in that road.

Re: Engineering for Slow Internet

#234

So I've hacked a lot on networking things over the years and have spent time getting my own "slow internet" cases working. Nothing as interesting as McMurdo by far but I've chatted and watched YouTube videos on international flights, trains through the middle of nowhere, crappy rural hotels, and through tunnels. If you have access/the power (since these tend to be power hungry) to a general-purpose computing device a…

This sounds fascinating. Do you have some articles describing your setup?

Re: Engineering for Slow Internet

#235

A lot of this resonates. I'm not in Antartica, I'm in Beijing, but still struggle with the internet. Being behind the great firewall means using creative approaches. VPNs only sometimes work, and each leaves a signature that the firewall's hueristics and ML can eventually catch onto. Even state-mandated ones are 'gently' limited at times of political sensitivity. It all ends up meaning that, even if I get a connectio…

Eh, I'm a few miles from NYC and have the misfortune of being a comcast/xfinity customer and my packetloss to my webserver is sometimes so bad it takes a full minute to load pages.

I take that time to clean a little, make a coffee, you know sometimes you gotta take a break and breathe. Life has gotten too fast and too busy and we all need a few reminders to slow down and enjoy the view. Thanks xfinity!

Re: Engineering for Slow Internet

#236
So I have some experience with this because I wrote the non-Fleash Speedtest for Google Fiber. I also have experience with this by virtue of being from Australia. Let me explain.

So Google Fiber needed a pure JS Speedtest for installers to verify connections. Installers were issued with Chromebooks, which don't support Flash and the Ookla Speedtest at the time used Flash. There's actually good reasons for this.

It turns out figuring out the maximum capacity of a network link is a nontrivial problem. You can crash the browser with too much traffic (or just slow down your reported result). You can easily under-report speed by not sending enough traffic. You have to weigh packet sizes with throughput. You need to stop browsers trying to be helpful by caching things (by ignoring caching headers). There's a long list.

So I did get a pure JS Speedtest that could actually run up to about ~8.5Gbps on a 10GbE link to a Macbook (external 10GbE controller over TB3).

You learn just how super-sensitive throughput is to latency due to TCP throttling. This is a known and longstanding problem, which is why Google invested in newer congestion control schemes like BRR [1]. Anyway, adding 100ms of latency to a 1GbE connection would drop the measured throughput from ~920-930Mbps to a fraction of that. It's been a few years so I don't remember the exact numbers but even with adjustments I recall the drop off being like 50-90%.

The author here talks about satellite Internet to Antarctica that isn't always available. That is indeed a cool application but you don't need to go this extreme. You have this throughput problem even in Australia because pure distance pretty much gives you 100ms minimum latency in some parts and there's literaly nothing you can do about it.

It's actually amazing how much breaks or just plain sucks on that kind of latency. Networked applications are clearly not designed for this and have never been tested on it. This is a general problem with apps: some have never been tested in non-perfect Internet conditions. Just th eother day I was using one of the Citi-bike apps and it could hang trying to do some TCP query and you'd every now and again get "Connection timed out" pop ups to the user.

That should never happen. This is the lazy dev's way of just giving up, of catching an exception and fatalling. I wish more people would actually test their experience when there was 100ms latency or if there was just random 2% packet loss. Standard TCP congestion control simply doesn't handle packet loss in a way that's desirable or appropriate to modern network conditions.

[1]: https://cloud.google.com/blog/products/networking/tcp-bbr-co...

Re: Engineering for Slow Internet

#237

Earlier quoted context omitted.

However, getting 6.4KB of data (just tested on my blog) or 60KB of data (a git.sr.ht repository with a README.md and a PNG) is way better than getting 20MB of frameworks in the first place.

Yeah, but your blog is not a full featured chat system with integrated audio and video calling, strapped on top of a document format. There are a few architectural/policy problems in web browsers that cause this kind of expansion: 1. Browsers can update large binaries asynchronously (=instant from the user's perspective) but this feature is only very recently available to web apps via obscure caching headers and most…

> CSS is a very inefficient way to represent styling logic which is why web devs write dialects like sass that are more compact, but browsers don't adopt it.

I don't know exactly which features you are referring to, but you may have noticed that CSS has adopted native nesting, very similarly to Sass, but few sites actually use it. Functions and mixins are similar compactness/convenience topics being worked on by the CSSWG.

(Disclosure: I work on style in a browser team)

Re: Engineering for Slow Internet

#238

It is not just bandwidth or latency, and is not just for Antarctica. Not in all places of the world you have the best connectivity. Even with not so bad connectivity, you may have environmental interference, shared use or be just far from the wifi router. You may have a browser running in a not so powerful CPU, doing more things chewing processor, or the available memory, so heavy JS sites may suffer or not work at a…

I run into this daily on my phone. Where I live, its hilly, network is usually saturated, my speeds are crap usually and some sites more complicated than hn cannot even load at all without timing out sometimes.

Re: Engineering for Slow Internet

#239
post #159

Try using the internet on an "exchange only line". Technically it's broadband but its speeds are still dialup tier. I know several streets in my city that still have these connections.

And also ever since the 3G shutdown in the UK phones often fall back to GPRS and EDGE connections (2G), as 2G is not scheduled to shut down in the UK until 2033. I know several apps that are too slow to work in such conditions, as they are developed by people who use the latest 5G links in urban locations instead of testing it in rural and suburban areas with large amounts of trees.

Re: Engineering for Slow Internet

#240
post #52

Earlier quoted context omitted.

> I bet that WhatsApp is one of the rare services you use which actually deployed servers to Australia. To me, 200ms is a telltale sign of intercontinental traffic. So, I used to work at WhatsApp. And we got this kind of praise when we only had servers in Reston, Virginia (not at aws us-east1, but in the same neighborhood). Nowadays, Facebook is most likely terminating connections in Australia, but messaging most lik…

> I used to work at WhatsApp.. Do you know why there is a 4 device limit? I run into this limit quite a bit, because I have a lot more devices. And... Why is there is WhatsApp for most commonly used devices, but iPads?

I've been gone too long for accurate answers, but I can guess.

For iPad, I think it's like the sibling notes; expected use is very low, so it didm't justify the engineering cost while I was there. But I see some signs it might happen eventually [1]; WhatsApp for Android Tablets wasn't a thing when I was there either, but it is now.

For the four device limit, there's a few things going on IMHO. Synchronization is hard and the more devices are playing, the harder it is. Independent devices makes it easier in some ways because the user devices don't have to be online together to communicate (like when whatsapp web was essentially a remote control for your phone), but it does mean that all of your communications partner's devices have to work harder and the servers have to work harder, too.

Four deviced covers your phone, a desktop at home and work, and a laptop; but really most of the users only have a phone. Allowing more devices makes it more likely that you'll lose track of one or not use it for long enough that it's lost sync, etc.

WhatsApp has usually focused on product features that benefit the most users, and more than 4 devices isn't going to benefit many people, and 4 is plenty for internal use (phone, prod build, dev build, home computer). I'm sure they've got metrics of how many devices are used, and if there's a lot of 4 device users and enough requests, it's a #define somewhere.

[1] https://www.macworld.com/article/668638/how-to-get-whatsapp-...

Post reply on HN