Add 200ms of network delay under Linux:
sudo tc qdisc add dev eth0 root netem delay 200
Run "mm-delay 100" to enter a container that's connected to the outside world via a TUN device with 100 ms of delay on egress, and 100 ms of delay on ingress. Any program run inside the container sees an extra 200 ms of RTT to the outside world.
We also have a tool for random packet loss (mm-loss), intermittent connectivity (mm-onoff), and a pretty sophisticated emulator for bottleneck links (mm-link) that supports various queue disciplines (e.g. CoDel), variable link rates (as in a cellular link), and nice 60 fps animations of link capacity and utilization and queueing delay in both directions.
These tools can be nested arbitrarily (e.g. run mm-delay 100 mm-loss uplink 0.1 firefox). They've been used in a bunch of networking research studies. They are mostly intended for emulating cellular/challenged networks, and the CPU overhead is not great, so I wouldn't trust them if you care about emulating networks with speeds more than about 1 Gbps.
I've got a gigabit fibre connection but am way down South in New Zealand, and interact with a Perforce server that's in California for my day job. When one does an operation in Perforce, like the equivalent of a 'git pull', there seems to be at least a couple round-trips between the client and the server, for each file. There are some tasks take a few seconds for folks in the California office, where for me those are easily several minutes to several dozen minutes. It's convenient when the weather is nice or the fire needs feeding :).
It could've been a decent Show HN discussion, but as it stands this is nothing more than an ad for a commercial software.
More explicit rules or code (like limiting the frequency of submissions from a given member to the same domain name, etc) may not be necessary, as the voting system generally seems to work quite well. Or perhaps such code is already in place? which would help explain the high quality content on HN.
As ever, thank you Dan (and Scott) for maintaining this wonderful resource.
Most people respond to that explanation pretty well and HN has even gained a few excellent submitters that way. So we've learned to treat this class of users with a lighter touch than outright spammers, who mostly leave quite different fingerprints.
(p.s. thanks for the kind words!)
All tools are absolutely free and created in hope to help developers in their everyday work.
Why do you say that we promote our commercial software?
The issue isn't submitting your own stuff, it's only using HN to do that. That comes across as promotional, and HN readers don't like it because you aren't really participating in the community. Much better would be to join as a reader and general submitter, and use the site for gratifying intellectual curiosity—your own and others'. That's the primary purpose of HN: https://news.ycombinator.com/newsguidelines.html.
The other thing you can do, when submitting your own stuff, is add text explaining how you came to work on this and what's different about it. If you say things that interest others, you'll be more likely to get a conversation. Sharing what personally interests you (not the same thing as what's in your personal interest!) is often a way to get others interested too.
I have go code (open source, but not written by me), I suspect to have timeouts in certain situations and I would like change the code to be failure tolerant.
Anyone has a tip?
F12 > click 'Responsive Design Mode' > then click 'Throttling', the options are 2G, 3G, 4G, DSL, Wi-fi.
I guess if you need throttling for something other than a web page, you need something other than a web browser.
Yes, you can use built-in dev tool for your browser.
But if you are creating your own application (C++, .NET, JAVA) then you need an external tool like this.
What does "portability" mean?
It says "FREE portable download" but it's a .exe. So windows only?
Portable is different than cross platform.
Source: At some point I was part of a team that used a setup like this for testing.
This way you can simulate the complexity of different devices, geo-locations, and network connectivity levels in your tests.
Disclaimer, I'm one of the founders of Loadmill.