Bye, Chrome: Why I'm switching to Firefox - <AUTHOR> https://www.fastcodesign.com/90174010/bye-chrome-why-im-switching-to-firefox-and-you-should-too <comment><USER2> Just to offer a sample point:

Switched to Firefox Quantum when it came out, and never looked back. Never had a problem with any website I used on any of my machines (which include the i7 16GB RAM work laptop, Core2Duo 3GB home desktop, and wife's old Thinkpad still running XP). Everything runs faster than Chrome, especially on the older machines, and I can comfortably open more tabs.

Granted, my top 4 sites are probably HN, Reddit, Facebook and Youtube, and the first two aren't very demanding of the browser - but the links from these sites go all over the place, and I simply never had to launch another browser ever since.

I find Firefox more feature-rich, and use the Reader View very often (especially at work, where visual clutter is the last thing I need on my monitors). MRU tab switching order out of the box is also great to have.

</anecdata>

<comment><USER3> > Article: Firefox doesn't always work better than Chrome

I assume the author isn't on Quantum because my experience (developer edition) matches yours. Firefox is mind bogglingly fast, which is precisely why I dumped Firefox for Chrome when Chrome first launched. My extensions seriously bloat memory usage; memory is cheap, time is priceless.

Features and privacy are great, but the performance is simply so incomprehensibly far ahead (and we don't even have Servo yet). The omnibar is also default now and is more reliable than the extension - that was one crucial Chrome holdout for me.

</comment></comment><comment><USER4> The point of Chrome is not that it can spy on you, it is a vehicle that allows Google to control the evolution of web standards. Still a good reason to use something else though, it's very important that there are competitors.

</comment><comment><USER5> Hmm, there is something contradictory to me in the funding of Firefox. If it's funded by big search engines paying to be the default for Firefox, then Firefox's revenues are coming from Google or Baidu's revenues. These search engines' revenues come from advertising and tracking, which is what Firefox is meant to be against. I'm not sure how meaningful it is, but it seems like a strange loop to me.

<comment><USER6> There's a lot of strange loops like this is free and open-source software generally. For instance much free software is partially funded by proprietary software companies who want to use it internally, or is open-core but not fully open-source. GitHub itself is a walking contradiction of license philosophies for instance.

Not quite the same thing, but there's (almost) always a weird interplay and tension whenever something actually needs to get funded or make money.

<comment><USER7> GitHub's on-prem enterprise offering is certainly a contradiction but I don't think their hosted service is. It's code they wrote running on servers they own/rent. FOSS software might come with an ethos of publishing useful things one makes but it's certainly not an obligation.

I will admit that there is issue regarding non-free client-side JS but a lot of projects tend to ignore that.

</comment></comment></comment><comment><USER8> switched to firefox a few months ago but i keep going back to chrome everytime i need to watch a video online. Firefox videoplayer just doesn't work. The video lags very frequently and the cpu is always overheating.

Only when that matter is fixed will i be able to completely ditch chrome.

<comment><USER9> Yeah, I do video production work and Firefox is useless when it comes to video. If it even can play half the things, it's going to suck up a lot of computer power to do it.

</comment></comment><comment><USER10> This article resurfaces every time a new version of Firefox gets released. I'd love for someone more technically inclined to explain how the new iteration of Firefox is better than the current build of Chromium for Linux (66.0.3359.117).

<comment><USER11> You didn't get a whole lot of responses, but honestly, I'd bet money that you would get even less, if you posed the question the other way around. Because how is Chrome/-ium better than Firefox?

To give some rough image from what I know about the browsers and what I've heard other people say:

Performance: Roughly equal, Chrome seems to still be more consistently fast, which Mozilla is still cleaning up after that big architecture change. Mozilla also has more in the pipeline, which I'm not seeing as much from Chrome.

RAM use: Firefox is still considerably lower here, even though the Quantum iteration needs more RAM. There's little motivation for Google to have users use software outside of their web browser, they can't display ads or gather data in those, so there's little motivation for them to not eat up all of the RAM.

Customizability: Clear win for Firefox. You can drag UI elements everywhere you want, color the whole UI with extensions as you like or even fuck around with CSS to alter its look.

Extensibility: Chrome still has more extensions in numbers, mainly because Mozilla does not allow telemetry in add-ons (unless the users opts in). Firefox extensions are more capable, though.

And Chrome's extension store is a dumpster fire, filled with malware. Mozilla vets extensions with actual human beings, which Google doesn't consider an option.

Security against script-kiddies: Also roughly equal. Chrome has to a minor degree still a more secure architecture (sandboxes each tab individually most of the time, whereas Firefox sandboxes them in groups of how many cores your CPU has, for performance reasons), but Chrome on the other hand has some glaring idiocies here and there.

For example Chrome's autofill fills in data in all input fields on the page at once, meaning that it will also fill input fields that you as a user can't see, so you might send off your address to a sketchy site without knowing about it. Another example is them shipping the WebUSB-API in a form that made Yubikey Neos completely exploitable, as webpages could literally just connect to the Yubikey on their own and read out the secret, bypassing the U2F API that Google had built into Chrome.

Security against Google and in extension US intelligence agencies (and in extension non-US intelligence agencies): Well, you can probably guess by yourself. Chrome Sync by default uploads your browsing history and such to Google's server in decryptable form. So, Google can access it, and because of US law, the US intelligence agencies can grab it from Google's servers, too. And because those intelligence agencies are friends with other intelligence agencies (Five Eyes etc.), those likely have your browsing history, too. Obviously depends how much you consider these a threat, but it's certainly not in your favor for these groups to have your data.

You can bypass that, by enabling end-to-end-encryption, which Google requires a second password for, so it's not necessarily an argument when you know about it, but that brings us to what the article mentions, too.

Defaults: Firefox Sync is end-to-end-encrypted by default. Only one password needed. Firefox's Private Browsing mode ships with Tracking Protection, no (potential malware) extension needed to block trackers, not that Chrome even allows extension to run in Incognito mode.

And these are just superficial examples. We're talking about millions of lines of code, tens of thousands of design decisions. In one case made by a non- profit, that always tries to protect users while trying to not piss off webpage owners too much, in the other case made by a company that always tries to satisfy its own needs in the hope that users don't notice or don't complain too much. And again, millions of lines of code. Lots of shit goes under the radar that no journalist reports about. Even in Chromium.

This is for example a project that tries to fix Chromium and it admits that it's an uphill battle: [https://github.com/Eloston/ungoogled- chromium](https://github.com/Eloston/ungoogled-chromium)

<comment><USER10> Thanks. I'm a big fan of Chromium's UI because outside of enabling flags I don't have to customize it to get it where I need it to be.

</comment></comment></comment><comment><USER12> Nice article for laymen. On HN I want something more technical, more in-depth.

<comment><USER13> I don't necessarily want something more technical, but for some reason I was anticipating that the reason given would've been more of a technical one, like "Firefox is way better with WASM" or something of that nature.

</comment></comment><comment><USER14> Firefox still haven't fixed a privacy bug of keeping a record of all your closed tabs in private mode. You can all try by opening several tabs, going to any sites of your choosing and closeing them. If you invoke, reopen last closed tabs, all of them returns.

This simply doesn't happen in Safari and Chrome. I reported this issue some time back and someone at Firfeox said this is not an issue.

So if I left my private window open, but with no tabs, someone can always retrace my steps even though I've closed all my tabs. How's that for privacy?

<comment><USER15> Chrome preserves your cookies across tabs, so it's not really "private" in the sense that you seem to want, either. I wouldn't say that Firefox is less private. I'd say that they made a design decision to allow you to re-open tabs in privacy mode in case you unintentionally close them. In both Firefox and Chrome, you need to close your private window if you really want to erase your data.

<comment><USER2> To further your point: if you log in to you Gmail account in a private window, close the tab, but keep the window open, someone can open Gmail in that window and will be still logged into your account.

This goes for both Chrome and Firefox.

</comment></comment></comment><comment><USER16> One of my email accounts is through my ISP. I can read mail with Firefox, but not read it, the error being

TypeError: this._getDoc(...).body is undefined

I reported this to the ISP some months ago, and was assured that they are working on it. Obviously, it is not Mozilla's fault that this doesn't work, but it suggests that some organizations don't think they need to accommodate it.

<comment><USER16> Edit: "but not write" it.

</comment></comment><comment><USER17> I stopped using all Google products in my personal life quite some time ago (including Gmail, Maps, etc.). I gave the latest Firefox a shot though and found it super slow on my Macbook Pro compared with Chrome and Safari, so stuck with Safari.

Would love to return to using Firefox but even without any extensions installed I experience regular lag. Anyone else?

<comment><USER18> I did for a while. Around version 58 it started performing better again. Then something in v60 caused a bunch of CPU spikes again, so I'm using Developer Edition, which is on v61 and doesn't have that issue.

I would say 99% of the time, Firefox is great for me. There are occasional sites that I open in Chrome - either because of video choppiness or JS going out of control on a page.

However, I would love it if it were less of a gamble when upgrading versions.

<comment><USER17> You likely won't come back to this, but in the event you do - thank you. V61 dev edition is working an absolute charm for me.

</comment></comment></comment><comment> felixis-1 I don't want to say this, but you'll be back. Putting all cons aside of using Chrome, Google is actually doing a very impressive job which will make everyone considering this switch to go back in no time for some reason or the other.

<comment><USER19> Can you expand on that? I switched from Chrome to Firefox a few years ago and I've been very happy with that decision.

</comment></comment><comment><USER20> My Windows 10 machine just did a huge update. Ever since, Chrome closes within a few seconds unless I let it Run As Administrator. Uh, no thanks. I tried various suggested fixes and even did a complete remove and reinstall. So, no more Chrome.

<comment><USER11> Interesting. I think, Chrome doesn't do sandboxing when you run it as administrator (because it'd be pointless security-wise), so maybe it specifically crashes when trying to spawn those sandbox processes.

Or it's a simple matter of it not having file access permission to a file that it needs and running it as administrator obviously grants it access to that file.

Not that this information is likely to help you fix that issue...

<comment><USER20> I even tried manually deleting all the files in the user-specific directory; made no difference.

There comes a point when the time investment has to be viewed as a sunk cost, and move on.

</comment></comment></comment><comment><USER21> I agree with the sentiment of the article. It's been this way for a while though. Chrome is perceived as the more powerful browser by the masses. I love Firefox for sure, unfortunately it has been hard to convince normal internet users to make the switch.

<comment><USER2> Show them the Reader View feature, which is there out of the box.

Way too many websites (including CNN) turn a humble article into something barely appropriate by plastering ads, animated ads, video ads, and other irrelevant, bright, colorful mess around the text. Reader View takes one back to text.

Also appreciated by someone who doesn't want to signal "I'M READING A TABLOID" with their screen by simply opening a CNN link.</comment></comment>


For Decades, Our Coverage Was Racist - <AUTHOR> https://www.nationalgeographic.com/magazine/2018/04/from-the-editor-race-racism-history/ <comment><USER2> > Race is not a biological construct, as writer Elizabeth Kolbert explains in > this issue, but a social one that can have devastating effects.

This is inane, as it conflates the connotation of "race" and the very useful concept of a "population". We should all be aware enough to know the terrible history of the idea of race. But there are well known distributions of certain features among different populations, melanin being one of them, physical prowess another, but also body height and weight.

Everyone can see folks from East Africa excell at long distance running, and athletes of Caribbean descent in sprint events. Jews excell at winning Nobel prizes and wars in which they are insanely outnumbered. If you want you can call it an "overrepresenation", but that is really wording.

If it becomes fashionable to view facts that denote population distributions as racist we as a society have lost, for the foundation of having discussions based on reason and truth will have been considerably diminished.

Putting it simply: If you give me a 1000 pictures from folks from Kongo, and 1000 pictures of Inuit, I'll eat my hat if I can't correctly identify the origin of 99% of them. (Never discount the possibility of a Kongolese moving to Qaqortoq a hundred years ago.)

<comment><USER3> You read this whole article and that's the thing you came away with?

</comment></comment><comment><USER4> Suppose this were an individual's own blog post:

"I was a racist prior to the 70s. Here's some articles where I show clear racism from that time. In the 70s I had a change of heart. Here's some articles from the 2000s where I clearly show that I am no longer a racist, but in fact the opposite of a racist."

This would not be an apology, because it doesn't stop at showing one's previous racism. It continues on to try to give evidence of current virtue as if that were a remedy for past racism. However, the real problems generated by racism are not cured by changing your position on race.

The NG article puts this in the proper context of intention:

>But when we decided to devote our April magazine to the topic of race, we thought we should examine our own history before turning our reportorial gaze to others.

Do they mean they are going to expose other magazines as being racist? While that might be historically interesting, it doesn't seem remotely professional. If they are planning to publish such exposes, then the current article is clearly an attempt to preempt the natural claims that NG was racist too.

</comment><comment><USER5> About all I can say is, No kidding.</comment>


Drawing to portrait generator - <AUTHOR> http://fotogenerator.npocloud.nl/ <comment><USER2> Very cool looking, but this could also be titled "The dangers of model overfitting".

From [https://www.dekennisvannu.nl/site/artikel/Help-ons- kunstmati...](https://www.dekennisvannu.nl/site/artikel/Help-ons-kunstmatige- intelligentie-testen/9163) , this generator appears to only know how to render two particular portraits -- one profile, and one head-on, of a single person on a particular background.

All other drawings seem to be rendered as a really poor approximation of those two portraits. Very neat none-the-less.

<comment><USER3> Even still, you're trying to create data out of "thin air" \-- too much information is lost in the "conversion process" to drawing, and trying to recover it is futile. How do I know "Donald Trump"'s hair should be blonde if the only thing I know about "Donald Trump" is from that drawing? How would I know not to make The Donald a brunette or redhead?

</comment></comment><comment><USER4> If you want to play around with other inputs like I did, you can use curl like so:

        curl 'http://fotogenerator.npocloud.nl/dekennisvannu' --data-binary "@input.png" > output.png

Edit: I tried using a drawing of Donald Trump that I found, done in a similar style: [http://imgur.com/a/Mw536](http://imgur.com/a/Mw536)

<comment><USER5> Seems to only work if your image is exactly 256x256 pixels? Took some trial and error to get it to send back anything but the text "server error".

</comment></comment><comment><USER6> *Drawing to human-textured photo generator. That was the most disturbing snow-capped mountain I've even drawn/seen.

</comment><comment><USER7> Awesome! And, truly horrifying...</comment>


On Leaving Flickr - <AUTHOR> http://mroth.info/blog/2011/03/14/on-leaving-flickr/

<comment><USER2> Great story.

I echo the point of Stepping Away. Stepping away from something you've built must be as hard as even committing yourself to build something.

</comment><comment><USER3> This chart from Matt's Flickr stream would indicate that Flickr's traffic is growing at a healthy rate. <http://www.flickr.com/photos/mroth/5471404089/>

</comment><comment><USER4> is it only me? Since Flickr has been bought by yahoo, it clearly has lost usability and appeal.

It was a really great site, as long as the original founders were still on board.

Anyone?

<comment><USER5> I know that many photographers use it to share their works, and it's better than most other photo sharing sites out there. When Facebook got better with photo handling(more than 60 per album, tagging, and God help us, face recognition), I imagine a large number of people stopped using Flickr and just stuck with Facebook instead.

I think stagnation is definitely a big part of their problem-not many improvements in usability(or maybe I just haven't been paying attention). I also believe there was a story sometime in the last few months where Flickr mistakenly wiped out several people's albums and had _no_ way to recover them. They lost major points for that.

That aside, I thought the author's post was pretty touching and I wish him the best.

</comment></comment><comment><USER6> Losing employees like #13 is really a huge loss for Flickr.

Is Yahoo planning to sell Flickr too?

<comment><USER3> Not really. Employees #1 and #2 (Stewart, Caterina) left a long time ago. Several others have left too. But Flickr's still chugging along nicely: <http://www.flickr.com/photos/mroth/5471404089/>

I just wish people would stop panicking about small things.</comment></comment>


A Study Hacks Primer - <AUTHOR> http://calnewport.com/blog/2009/11/20/a-study-hacks-primer/

<comment><AUTHOR> Ramit Sethi has written a blog post on Cal NewPort titled - "Time management: How an MIT postdoc writes 3 books, a PhD defense, and 6+ peer-reviewed papers — and finishes by 5:30pm"

URL: [http://www.iwillteachyoutoberich.com/blog/time-management- ho...](http://www.iwillteachyoutoberich.com/blog/time-management-how-an-mit- postdoc-writes-3-books-a-phd-defense-and-6-peer-reviewed-papers-and-finishes- by-530pm/)</comment>


Rclone banned from Amazon Drive for having the encrypted secrets in code - <AUTHOR> https://forum.rclone.org/t/rclone-has-been-banned-from-amazon-drive/2314 <comment><USER2> For context: Amazon Cloud Drive is a Google Drive/Dropbox analog, except that it provides "unlimited" storage space and bandwidth for $5/month. The built-in user interface requires you to manually upload/download files through a web browser, but the service also supports an API for programmatic access. So tools like rclone and acd_cli were developed to let you do bulk transfers and/or mount your storage as a network filesystem, optionally with encryption (which defeats any attempts Amazon might try to use for deduplication).

Now Amazon is suffering the obvious consequence of offering unlimited storage: people are using it to store tens of terabytes of media and/or backups at very low cost. In an attempt to kill off heavy users, they shut down registration of new API keys several months ago, and now they're systematically revoking the API keys used by popular open-source tools.

<comment><USER3> Yeah, this is a hard one. There are users on /r/DataHoarder/ that claim to have uploaded literally 100s of (encrypted) TBs to Cloud Drive, which is plainly unsustainable and abusive.

On the other hand, they've also killed the product for a lot of more legitimate users as well. The Amazon web interface and apps for Cloud Drive are obnoxiously terrible, and Rclone really is just a better way to use it. I've been using it to sync 10s of GBs of photos between all my different computers, but with Rclone unavailable, I'll have to fall back to Google Drive, S3, or some other option (the unlimitedness of Cloud Drive was good peace of mind).

I'll be keeping an eye on it over the next few weeks to see whether shipping a binary with OAuth secrets was actually the reason for the ban, or just a pretext for getting the Rclone users off the service (personally, I suspect the latter).

<comment><USER4> If a service claims that they provide UNLIMITED storage why using it is abusing?

<comment><USER5> abuse: use (something) to bad effect or for a bad purpose; misuse.

Abuse doesn't mean breaking the rules. It's like going to an all-you-can-eat buffet and staying for a week. Or taking a job with unlimited vacation time and coming to work once a month.

<comment><USER6> They should declare limits, then.

<comment><USER7> I bet in the ToS there are likely limits spelled out, or barring that, a clause that grants Amazon to right to shut you down if they unilaterally decide you're "abusing" the system.

<comment><USER4> I have looked at the TOS in Spain and you won the bet :)

They can shut down your account for the reason you stated

<comment><USER8> Yeah, never make a bet that a company _doesn 't_ have a vaguely worded way to kick off whoever they want at any time.

But it would be nicer for everyone if they could just honestly state a number of TB.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> From the discussion at

[https://www.reddit.com/r/crypto/comments/61zupq/amazon_drive...](https://www.reddit.com/r/crypto/comments/61zupq/amazon_drive_developer_guide_dont_build_apps_that/)

I learned that Amazon Drive is a service that provides _unlimited_ storage for a fixed cost, and that various applications, including rclone, use it for an application that I would expect (as a developer) to use S3 for, and therefore to charge my users per amount of data stored. (Amazon Drive is not part of AWS, I believe.)

I am not extremely surprised that the terms of service of Amazon Drive make it hard to build a compliant application like what rclone is trying to build. I'd expect they can do this with S3 straightforwardly -- at the expense of users needing to spend O(n) instead of O(1) on their data.

<comment><USER10> I paid for Amazon Drive in order to do backups, some of them with rclone. I am not using Amazon Drive for commercial purposes.

They said Unlimited storage, they should provide Unlimited storage, otherwise it's false advertising.

In other words, I hate apologists.

<comment><USER11> they are providing unlimited storage sure, but they also say they can terminate your account at any moment for any reason.

If you stop to think about this part for a second you will realize this service is completely inadequate for backups.

<comment><USER12> The difference here is they splash "Unlimited" on their website in 32 point font in the 1 sentence summary, and put "at our discretion" buried in their 2500 word terms of service. If they want to operate the service under those terms, fine, but they should have to advertise "as little as 0 bytes of storage", not "unlimited".

<comment><USER13> This is easy to solve: make font size legally binding. If 2 statements in an advertisement don't agree on something, the more visible statement should overwrite the other

</comment></comment></comment></comment></comment><comment><USER14> In a comment of mine earlier this week [1], I (along with others) speculated whether the shipping of OAuth2 secrets was the reason for the ban, and whether they're other contributing, strategic factors. I wrote:

 _Amazon has revoked rclone 's OAuth2 API key. However, consider that rclone's default OAuth2 client id and secret are compiled into the rclone executable, and thus effectively public; aka. anyone can extract them and pretend to be rclone, and fool users into obtaining access and abuse them for unrelated purposes._

 _A far better option is for the cloud provider to let users generate their own OAuth2 clients, such as Google does (and supposedly Microsoft, although for me it 's always errored out). Unfortunately, Amazon has a "call us" style of Developer access, which effectively translates to no new API access being granted to these types of users._

 _The speculation around the web is that Amazon also wanted to shut this down because they offered "unlimited" storage, and people were using it to store very large amounts of hard-to-compress, hard-to-dedup data. Breaking a popular tool used to accomplish this (e.g. it supported on-the-fly encryption, producing the exact style of difficult data) will cause some portion of less profitable users to migrate elsewhere. This may or may not be true, but it's certainly an intriguing point._

Some companies like Google allow easy registration of OAuth2 clients, so any rclone user can make their own API keys at console.developers.google.com and feed those to rclone, instead of having to use the built-in credential. Rclone's documentation refers to this ability, but positions it as a performance improvement for advanced users to sidestep a shared rclone-wide quota, rather than for any other purpose.

However, it, unlike many, many other applications, at least lets you plug in your own credential -- this shouldn't be an exotic flow, but rather the normal way to grant access to a third-party application, instead of distributing a hardcoded secret. Sadly, the app developer community has been slow to realize and demand this, and providers have been slow to implement it. Google lets you register as many applications as you want; GitHub even lets you make your own OAuth2 scopes. But there's few others who come close.

[1] [https://news.ycombinator.com/item?id=14380106](https://news.ycombinator.com/item?id=14380106)

<comment><USER15> > _Some companies like Google allow easy registration of OAuth2 clients, so > any rclone user can make their own API keys at console.developers.google.com > and feed those to rclone, instead of having to use the built-in credential_

How does making new Google API keys help with an Amazon service?

<comment><USER16> It doesn't, but the point stands that users should be able to create their own auth keys and use them to authenticate a third party application to the target service, rather than having the app author bake some arbitrary key into the code.

<comment><USER15> Well yes, that would be nice, but it sounds like Amazon Drive doesn't operate that way, so rclone has no choice but to use a single shared API key.

</comment></comment></comment></comment><comment><USER17> Link to the infringing source, for the curious:

[https://github.com/ncw/rclone/blob/a9d29c22645c9b5d2ab938ebb...](https://github.com/ncw/rclone/blob/a9d29c22645c9b5d2ab938ebbbed0809a2044087/amazonclouddrive/amazonclouddrive.go#L37-L38)

<comment><USER18> So is this basically sharing the same API key? Wouldn't that make using this insecure, as you'd be seeing the same data as other rclone users?

<comment><USER19> Not if the source data is encrypted using a local key. What may be possible is deleting other user's data as I believe it'd all be authorized with the same API key.

<comment><USER20> In OAuth, you have basically two tokens: One for the "software"/"third party service provider", one for the account itself.

So for example, if you want to use SomeMagicTweetTool to send tweets, they use their token to prove it's them, and you grant them a special token for your account.

Someone who has their token can pretend to be them, use their quota if there is per-software/per-provider quota, but cannot access your account unless you gave them a token for your account.

</comment></comment></comment></comment><comment><USER21> This is a perfect example of the tragedy of the commons. No one person feels the impact of abuse, but ends up ruining it for everyone.

Clearly they didn't intend for this service to be a general backup system.

<comment><USER22> This is a perfect example of why companies should never offer unlimited services, if they don't expect users to actually take them up on the offer...

While I can understand and agree that fair-play should be a part of the service, if the offer on hand is _Unlimited_ , then it is not abuse to upload tera-bytes, peta-bytes, exa-bytes or even zetta-bytes.

Amazon is hardly a neophyte as far as understanding big data, they are very well placed to know that offering unlimited storage could actually attract really big chunks of data.

<comment><USER23> I guarantee that every company that has ever marketed an unlimited service has internally raised this question. And the answer always is, "we'll just boot the most demanding 0.01% of customers when necessary." This is a tried and true tactic, no one bats an eye.

<comment><USER24> Arbitrary and capricious.

        while (1) {  for user in userlist {
            # Top .01% of users are abusive and we boot them
            if usage_distribution_top(user, .0001) {
                disable_account(user);
                send_acctdisabled_notice_to_user(user, "Excessive usage of unlimited storage");
            }
        } sleep 1; }

Hours later: "How have we lost half our customers? We only ever removed the top .01% for their 'abusive' usage of our unlimited service!"

If the concept isn't clear to some people, the problem is this: You can't repeatedly cull the outliers — the top x% of the distribution — because by culling you shift the distribution to create more outliers.

I'm sure businesses recognize that, intuitively if not explicitly in their planning meetings, and therefore cull rarely enough that it doesn't impact the bulk of users (in part due to influx of new users). So you cull the top x%... who decides what x is, and why, if you state in your promotional material that the service is unlimited? "If we set x to .001% and cull monthly, it'll help our bottom line. Those users are scum data hoarders anyway and we won't serve their kind with our 'unlimited' storage service." That should be lawsuit- worthy.

Companies in this situation should be forced to specify a fixed usage limit (exactly what these companies _don 't_ want to do), or live with the outliers.

<comment><USER25> They create a kind-of-fixed limit.

They don't create a running list of the top X% of usage and ban those users. They study their customers usage for some period and find the top X%, then translate that to a fixed upper limit. Then they punish anyone who goes over that fixed limit. If their customers or technology changes, they can re- calculate that number.

As far as "unlimited": marketing is full of bullshit words that don't mean what you think they mean. Courts (no wait, its all company-paid arbitrators now) unsurprisingly favor the companies.

When the Supreme Court sided with AT&T on the binding arbitation clause, no joke I got an email from Charter Communications the very same day the ruling was released that said they updated their terms of service to include binding arbitration.

<comment><USER24> Then _WHY NOT STATE THAT SEMI-FIXED LIMIT TO BEGIN WITH AND SAVE EVERYONE THE HASSLE OF TRYING TO GUESS WHETHER THEIR USAGE WILL BE ALLOWED OR NOT_?

If the limit is dynamic and periodically re-evaluated, then you run into the "there's always an outlier" problem.

If the determination isn't dynamic, and Snake Inc. advertises its service as 'unlimited' instead of _stating the limit_ , and then starts discriminating against users or tools associated with higher usage, and get a reputation of being a snake in addition to actually having an undisclosed cap, what then? They'll not only lose their high-end customers to other services (which apparently they don't want or they could have disclosed the limits _to begin with_ ), but as already mentioned they also hurt their reputation, because whatever the courts say, people are not happy when an unlimited service actually discriminates against high-usage customers.

</comment></comment></comment></comment></comment></comment><comment><USER26> Notice our backups failing over the weekend. Set up a new account with backblaze and re-ran the backups.

It sounded to good to be true, fortunately we were still on the trial.

<comment><USER27> Backblaze is also unlimited, flat rate storage and is therefore _also_ too good to be true.

"paying a flat rate for unlimited storage, or transfer, pits you against your provider in an antagonistic relationship. This is not the kind of relationship you want to have with someone providing critical functions."[1]

[1] [http://blog.kozubik.com/john_kozubik/2009/11/flat-rate- stora...](http://blog.kozubik.com/john_kozubik/2009/11/flat-rate-storage- services-vs-rsyncnet.html)</comment></comment>


Are All Engineers Better Off Working at Startups? - <AUTHOR> http://www.jeanhsu.com/?p=247

<comment><USER2> I agree with the poster that NOT all engineers are better off at a startup. It's not a one size fit all type of scenario</comment>


SSL/TLS analysis of the Internet's top 1,000,000 websites - <AUTHOR> https://jve.linuxwall.info/blog/index.php?post/TLS_Survey <comment><USER2> > On ECDHE's side, handshakes almost always use the P-256 curve. Again, this > makes sense, since Internet Explorer, Chrome and Firefox only support P256 > at the moment. But according to recent research public by DJB & Lange, this > might not be the safest choice.

Not only is it not safe, but it's also 3x slower than DJB's own 256-bit Curve25519:

[https://www.imperialviolet.org/2010/12/21/eccspeed.html](https://www.imperialviolet.org/2010/12/21/eccspeed.html)

All the browsers should hurry up and support it already. Also maybe it's time to consider using NaCl, or some other alternative to OpenSSL, which seems hopeless.

<comment><AUTHOR> Chrome and Firefox (among many others) use NSS, which accepts patches ;)

</comment></comment><comment><USER3> Regarding the TLS 1.0 and 1.2 but not 1.1 sites, I think it's related to this:

 _Changes between 1.0.1a and 1.0.1b [26 Apr 2012]

\- OpenSSL 1.0.0 sets SSL_OP_ALL to 0x80000FFFL and OpenSSL 1.0.1 and 1.0.1a set SSL_OP_NO_TLSv1_1 to 0x00000400L which would unfortunately mean any application compiled against OpenSSL 1.0.0 headers setting SSL_OP_ALL would also set SSL_OP_NO_TLSv1_1, unintentionally disablng TLS 1.1 also. Fix this by changing the value of SSL_OP_NO_TLSv1_1 to 0x10000000L Any application which was previously compiled against OpenSSL 1.0.1 or 1.0.1a headers and which cares about SSL_OP_NO_TLSv1_1 will need to be recompiled as a result._

<comment><AUTHOR> That's an interesting piece of information! Thank you for sharing it.

</comment></comment><comment><USER4> I would like for someone with knowledge to create an example apache config and keep it up to date.

One would think that someone from the apache project might be well suited for it.

<comment><USER5> [https://www.ssllabs.com/ssltest/](https://www.ssllabs.com/ssltest/)

Makes it incredibly simple to get a good idea of how secure your config is and where compatibility problems might arise.

<comment><USER6> I have been doing a lot of SSL/TLS research the last few days and found the following to be great resources from Qualys too:

\- [https://community.qualys.com/blogs/securitylabs/2013/08/05/c...](https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring- apache-nginx-and-openssl-for-forward-secrecy)

\- [https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Pr...](https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Practices_1.3.pdf)

</comment></comment></comment><comment><USER7> It seems to me that browsers ought to pop up a security warning for any site that tries to use an insecure cipher like RC4 or 3DES so the user is at least aware. I say that simply because it's possible that even if a site supports something more secure, what's to stop a MITM from reporting differently during the protocol negotiation?</comment>


Ask HN: The Bay Area has tons of dark fiber; why do we have no fiber options? - <AUTHOR>

Oh, what would it take to get residential fiber up and running? <comment><USER2> The dark fiber probably isn't near you. If it is, you can usually lease it and trench to your house. Most people don't do this because even after the one time trench fee, leasing the line and connecting at an exchange are just expensive.

I looked into doing this on the Palo Alto municipal fiber ring. Would have cost $700-1000 per month. Pass.</comment>


A single line to 3 cashiers is ~3x faster than a separate line for each cashier - <AUTHOR> http://online.wsj.com/article/SB10001424052970204770404577082933921432686.html <comment><USER2> FYI: This is an example of the branch of mathematics called queueing theory.

<http://en.wikipedia.org/wiki/Queueing_theory>

It's a fascinating study requiring a good knowledge of probability to use beyond the simplified models. It turns out from the math that throughput using a single queue is better than using multiple queues.

<comment><USER3> Not trying to be condescending but doesn't it surprise anyone here that this is _not_ obvious? At least on this site, there are still people doubting or debating this.

So I am wondering why don't stores do this already. And I believe it is because of perceptions. They understand that time will be saved, however, they realize that most people will be scared by a long line.

One long line that moves fast will still appear terrible compared to a bunch of small lines that crawl. Because people don't look long enough to estimate the rate of movement. They see both lines as static (not moving).

<comment><USER4> It's another instance of "people are stupid". Yes, for any educated person it's obvious that one line is faster, that's the first thing about queueing theory, but most people don't know the first thing about queueing theory.

Other instances of "people are stupid" leading to poor design:

* Some cars come with a CVT (continuously variable transmission) rather than having to shift gears. The audible pitch of the engine just gradually goes up as the accelerator is depressed, rather than revving up and then shifting back down again. Since people were used to the gear-shifting behavior, they thought CVT's were underpowered, so they were actually redesigned to simulate the shifting behavior even though it was suboptimal.

* Coinstar machines are actually much, much faster than they appear. But people don't trust them if they don't take three times as long and make jangly coin sounds, so it just silently sorts the coins as fast as it can and plays a recording of jangly coin sounds, all the while delaying when it displays the final count onscreen.

<comment><USER5> Do you have a source for that Coinstar playing jangly coin sounds?? I would love to read more about that.

<comment><USER4> Well, this is embarrassing: I remembered that story from _somewhere_ , and it turns out somewhere was another Hacker News thread: <http://news.ycombinator.com/item?id=2007818>

</comment></comment></comment></comment></comment><comment><USER6> scala> import org.apache.commons.math.distribution.{ExponentialDistributionImpl=>expo}

//pc = process customer, with a mean time mu per customer

scala> def pc(mu:Int):Double= new expo(mu).sample

// q = queue of n customers with mean process time mu

scala> def q(n:Int,mu:Int):Double=(1 to n).map(_=>pc(mu)).sum

scala> // put 3000 people in 1 queue with mean process time 50

scala> (1 to 1000).map(_=>q(3000,50)).sum/1000

res43: Double = 83107.37275937156

scala> //now put 1000 people each in 3 separate queues with the same mean process time as before

scala> (1 to 1000).map(_=>(1 to 3).par.map(_=>q(1000,50)).sum).sum/1000

res45: Double = 200010.29627921886

200010 = ~3x83107, so yeah, single line to 3 cashiers is ~3x faster than a separate line for each cashier.

// Now make 1 queue that feeds into shortest of the 3 queues

scala> def qq(n:Int,mu:Int)=(1 to 3).par.map(_=>{(1 to n/3).map(_=>pc(mu)).sum}).sum

scala> (1 to 10000).map(_=>qq(3000,50)).sum/10000

res70: Double = 141824.974765643

So our single queue feeding into 3 separate queues still beats 3 separate independent queues.

edited to address MaysonL's question.

<comment><USER7> But of course this is BS, because the three queues are not independent. Try it with 1 queue which feeds into whichever of the three queues is currently shortest. And of course, in grocery stores, where one can unload one's cart while the person ahead is being processed, there's an advantage to multiple lines.

<comment><USER8> Isn't this essentially equivalent to having a single queue though... except now you have a kind of cache at each register holding a small number of customers?

<comment><USER9> Yes, and it is how real stores work, which is the point.

<comment><USER8> Right. I wonder what would happen if we try to include a measure of perceived fairness from the customer's point of view into this type of analysis. I always feel I'm picking the wrong queue at stores... single queues going to whatever cash is open seem fairer, if that makes sense.

<comment><USER10> Perceived fairness is very hard to quantify objectively. Is it fair if there are queues for people buying less than X items? If there are queues for people not paying cash? For frequent flyers? That you, by sheer misfortune, end up in the slow queue three times in a row? Should pensioners wait for people having work to do? Should fit people make room for the elderly? To what extent? Etc.

Instead, I think you should do the math; it will teach you that the probability that a given queue is slow is smaller than the probability that, given a person in a queue, that person is in a slow queue.

So, you spend more time in slow queues than in fast ones. Once you know that, train yourself to accept it.

</comment></comment></comment></comment></comment></comment><comment><USER11> A blend is probably a better choice.

It's obvious that single queues for each cashier isn't very efficient, but the tradeoff is that lines are visibly shorter, and progress to the goal is clear.

Having a single line for all cashiers (ala Fry's Electronics or an airline ticket agent) is more efficient, but the long line, logistics of finding the next available cashier, and uncertainty of completion make for a frustrating experience as well.

I posit that having N banks of 4-6 cashiers is a good balance between both. You get the efficiency gains of not being blocked by a bottleneck, and you also get visibly shorter lines and the benefits of estimating when you are next (ok, looks like cashier 1 and 2 are almost done, I should be out of here in a few minutes).

Someone here mentioned this kind of setup with self-checkout at grocery stores, and I think it works well, as long as the number of self-checkout stands in the "bunch" is not too large. There's a local grocery store where there's 8 of them, and it's a little too chaotic (IMO, anyway).

<comment><USER12> Having more than one line materially increases stress for shoppers, because the choice implies they might be on the "wrong" line. So they worry more about how fast they're moving, etc. If you only have one line, you can tell people exactly how long the wait is (because the average transaction time is very stable) and customers don't have to worry about making the right choice.

<comment><USER13> Having one combined line can increase stress for shoppers too, especially if the line isn't clearly marked by barriers.

What happens is, another customer comes along, sees three cashiers and one queue (in the middle) and decides to join the "empty queue" in front of the cashier at either end.

Of course they know there's only one queue and that they are queue jumping, but they calculate that they can _pretend_ they didn't know.

I assume there's a cultural factor here. I'm in the UK and have seen this many times in one store nearby, but I imagine that in some parts of the world you would be beaten or shot for it. I have never seen anybody complain about it, they just temporarily disperse into three queues (which is awkward because there is not really enough room.)

<comment><USER12> This is why you really need a new store design. At Best Buy and Whole Foods here, there's a long line that channels into a checkout area that's _only reachable_ via that line. So there's now worry about cutting, and customers naturally form the line as they follow the route into the checkout area.

It's worth noting that WF does use 2-3 lines in a lot of stores where they don't have a long enough space. But then what they do is have a system that signals which line gets to head a register next (and does so in a set rotation), so it's effectively the same as a single long line.

</comment></comment></comment></comment><comment><USER14> Most of the grocery stores in my area have installed self-checkout systems that are especially great if you just have a handful of items that all have UPCs (no produce or bagged bulk), don't have any items requiring an age check and possess at least the intelligence of a fifth grader.

I mention this not just because it's relevant to the idea of waiting in line at a store, but because in every store where I've seen these systems installed, the entire bank of scanners has a single line, unlike the rest of the store. I imagine it's mostly because they place the self-check scanners so close together (because they can) that it doesn't make sense to try to form multiple lines, whereas a single queue system for the real checkers would take up a huge amount of space.

<comment><USER15> Around here, the grocery self-checkout works the same as the normal checkouts, mainly because they just replaced the normal ones in place.

(Also, self-checkouts suck. I bet their throughput is terrible compared to manned checkout lines. That teenage checkout girl is WAY better than I am at scanning stuff.)

<comment><USER16> Ah, but you see, anyone who writes checks (hellooooo, slowdown!) and anyone who is scared of technology (I think the two groups overlap a lot) will go wait in another line. So at least at my store, the self-checkout lanes have a lot of young people buying one or two items and paying with credit cards, which works out to a pretty good speed. Occasionally you get somebody who sits and stares at each screen of instructions for a good 30 seconds, but in general it moves well.

<comment><USER15> I guess it depends on the quality of the self-checkout system. At my Stop & Shop, there are four or six self-checkout lanes staffed by a single person (Go go union job elimination!) If you get through a purchase without running into "wait for attendant", sure it's fast. But if you do have to wait, because their fundamental distrust of the customers makes the system get many false positives for stealing, now you are in a secondary line of people waiting for the attendant, and the time for checkout is terrible.

<comment><USER16> Wow, that sucks. My local store only ever does "wait for assistance" when you buy booze... and half the time the attendant will just gleefully press "ok" on his terminal without even checking my ID, so it goes even faster :)

Implementation details matter, I guess. (Pretend I made some interesting reference to Steve Jobs' managing style here)

<comment><USER13> In some stores if you scan alcohol the machine will freeze until the attendant turns the key.

In others, it flashes a light to alert the attendant. It allows you to carry on scanning, but the attendant must turn the key before you pay.

I just hope that isn't patented.

</comment></comment></comment></comment></comment></comment><comment><USER17> An excellent video on the phenomenon from the "Engineer Guy" series: <http://www.youtube.com/watch?v=F5Ri_HhziI0>

And just in case you feel like killing about 20 minutes of your day, check out the rest of his videos. They are excellent.

<comment><USER18> I love his videos. I wish he would make more. The harddrive one was interesting.

</comment></comment><comment><USER19> The biggest queue problem I see in a large store is McDonald's.

In the early days, the food was all built asynchronously from the orders. Cashiers would walk back and fill the order themselves from the bin full of burgers and fries in pretty quick fashion and the customer would be on their way.

When the whole "made as you go" approach was started, McDs decided to keep the 1:1 cashier-customer model (unlike Burger King or Wendy's, who do it 1:N style).

So now you have customers ordering and standing around next to their cashier waiting for the food to be made, which the cashier has no control over. The order of filled requests is also somewhat random. If the kitchen is having trouble, people start piling up by the counter.

I've noticed that some stores are experimenting with a numbering system that is encouraging you to step back and watch a monitor for your order when it is ready.

</comment><comment><USER15> Wouldn't it be 3x the velocity, but the line is 3x longer, so your total wait time is the same? The article is mainly saying that people like moving faster, but is that really a phenomenon?

<comment><USER20> No, because the cashiers handling smaller transactions finish quicker and can process more people. If you're stuck behind a guy which takes 2 minutes to check out, people in other lanes will be in their cars before you even begin checking out.

<comment><USER21> Here's a concrete example to make harabago's point clearer (since I think it is a little tricky). Imagine 9 people in line. Each person takes 1m to checkout except the first guy takes 10m. With three lines it looks like this (these are their wait times before being serviced):

       0   0   0  (first person in each line has no wait time)
       10  1   1
       11  2   2

If you sum up the total wait times you get: 27m

Now do this with a single file line with three cashiers:

       0   (first three people have no wait time)
       0
       0
       1   (only two people get processed at a time now)
       1
       2
       2
       3
       3

What you see is that one guy basically blocked one of the cashiers for the whole time, but the other two cashiers could continue to process. The total wait time: 12m

Change the numbers and you can create different factors for which the single file line is more efficient.

EDIT: Made a typo the first time on the wait times for the 3-line scenario. The wait time is actually 27m, not 25m.

<comment><USER22> The problem with your first example is that in real life the queues will rebalance. The two people behind the first guy won't just stand there for 10 minutes with the other two checkouts empty; they'll switch lines.

If they do that, they'll each wait for 3 minutes, giving the same distribution as in the single line.

Ah, you say, but what if other people have entered those lines already? Then you have to count their wait times too, which will be shorter in the three- line case than the one-line case.

Using one line doesn't reduce the mean wait time; it's always the number of people waiting divided by the throughput. What it reduces is the _variance_ in wait times, making the system more fair.

<comment><USER21> Sure, if the line perfectly rebalances then three lines is almost identical to the single line.

BUT as I'm sure you know, it's sometimes hard to know when to move. Is it after you've waited one minute, then hop to the back of another line?

Let me give you a concrete example: Imagine you enter a line with 15 people in it. Your line moves 14 people through perfectly. You're next, but the guy in front of you takes longer -- maybe he can't make up his mind about wanting some bubble gum. Do you hop to the back of another line and wait 15 more minutes (because the average queue length is 15m) or do you wait it out while this guy in front of you goes? How long will this guy take? 1 more minute or 30 minutes?

And of course, once you hop to the back of another line, the guy from your previous line finishes, and there's someone else in your new line who takes forever. Then you're even more upset that you switched lines!! :-)

With a single line you remove the need for an oracle, which you need for the n-line scenario.

<comment><USER4> To add to your examples, there's also the case that you've already unloaded your cart, but the idiot in front of you sends the cashier on a wild goose chase to get cigarettes for him and they spend ten minutes sorting _that_ out. Or you're behind some "extreme couponer" who splits their order into six separate orders to maximize their coupon savings, and you have to resist the urge to just pay for their entire order just to shame them into being less of a goddamn miser.

<comment><USER23> And then you CAN'T leave the slow line because there are people boxing you in from behind, even though you chose this line because the guy ahead of you had only one item... until he decided to make the cashier search the entire store to make sure they were actually out of his favorite cigarettes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> I was at a Home Depot this summer in the garden section, 2 checkouts. I was straddling the middle, waiting for the next open lane. Some lady starts bumping into me with a large cart, pushing her way up my right. I looked at her with a frown, and she told me to pick a line. I told her I was 'next' and she scoffed and went into the right lane, and was serviced more quickly (but only randomly)

These little mental models of efficiency always make the nervous introvert in me worry that I am wrong, or if society in general publishes people who try something different.

The naive answer is to avoid retail interactions.

<comment><USER25> The clever answer is to stop worrying about the loss/gain of an insignificant couple of minutes and to use the time for introspection, problem solving, daydreaming, or whatever else it is you like to do in the comfort of your own skull. Although, for many here, that probably includes "worrying about queueing theory" so maybe my point is moot.

</comment></comment><comment><USER15> What I didn't see in this article is why retailers don't do this today. I see a lot of positives listed and no negatives, so it seems like a no-brainer, right? Yet the biggest retailers like Walmart and Target have tons of lanes, and even do staggered front/back lanes which are terrible for the customers. Is it because there are negative feelings to seeing a long line, and that people do not expect it to be fast so they abandon their purchase?

<comment><USER22> Some places do this. Fry's Electronics, for example. It works fine. Some supermarkets I've been in do this for their express lines ("10 items or less").

Oh, and airline ticket counters are routinely run this way.

<comment><USER26> Add to this, Fry's also stacks the "wait line" area with lots of high-margin low-cost goodies like candies and trinkets. I myself have succumbed to grabbing some trail mix or a thumbdrive while waiting there.

</comment></comment></comment><comment><USER27> It becomes even more obvious if you think of it like scheduling processes on a CPU. Why needlessly set CPU affinity and only run on a single CPU when you could just take the next available timeslice on any CPU?

<comment><USER16> Except there are reasons for CPU affinity, such as the cache.

<comment><USER27> That doesn't mean every process should set affinity to a single CPU when it first starts, particularly in a batch-processing run-to-completion system.

</comment></comment></comment><comment><USER28> Okay, I am confused.

Assuming rebalancing, it seems to me that your wait time EV is the same either way, with less variance in the single queue case. Thus the shopper throughput should remain the same. Can someone explain to me if/why this is wrong?

Also, where did the HN title come from? I could not find that claim in the article.

</comment><comment><USER29> When I went out for fast food as a kid with my grandfather (an engineer), he would send me and my brother and sister to each stand in one line. He would then come over to join whomever got to the front first. That was my first lesson in queueing theory ...

</comment><comment><USER30> <http://en.wikipedia.org/wiki/Little%27s_law>

The author writes about a Little's Law

</comment><comment><USER31> How many times have you been standing in a queue with the money in your hand, wishing you could just drop the money and get out, who cares about change, you just want to get the hell out of here.

This is my proposal for a "no change given" line.

You walk up, you plop down at least the amount of money that the items are worth, they quickly scan the <5 items, check the money is at least as much as the total, then you move on. You don't get change, you don't get a receipt, they don't take cards. Just drop the money and run.

Good for business as they would collect many extra $$ from impatient shoppers, and good for shoppers who are impatient. All-round good.

</comment><comment><USER32> It also has an engineering analogy in Apache Passenger Global queuing. And this article explains why it works the way it does [http://blog.phusion.nl/2008/10/29/phusion-passenger-now- with...](http://blog.phusion.nl/2008/10/29/phusion-passenger-now-with-global- queuing/)

As an aside: The Fry's Electronics store in my city does this and the line does move at a pretty brisk pace, but I had always thought it a rather odd setup till I read this and made the connection to global queuing in Passenger. fascinating.

<comment><USER33> The Fry's system also gives them a 1/4 mile (ok maybe that's an exaggeration) of opportunity to sell you impulse purchases.

</comment></comment><comment><USER34> There's interesting work on queuing theory. In practice, each shopper picks the queue that she thinks is least loaded. How many queue lengths do you need to sample? It turns out that if you sample just two queue lengths, you get a huge benefit (in terms of reducing the avg queue length), but not so much if you sample more.

See "Power of two random choices": [http://www.eecs.harvard.edu/~michaelm/postscripts/handbook20...](http://www.eecs.harvard.edu/~michaelm/postscripts/handbook2001.pdf)

EDIT: link

</comment><comment><USER35> It's not a matter of logic.

When there is one cashier and a dozen customers waiting, that tells me the store is too cheap or too mismanaged to have other cashiers scheduled.

The best thing a store can do for customer relations is to open additional registers when too many customers are waiting, it implies the customer's time is important.

I also enjoy discovering it was the store manager themselves running the extra register - it means they stay in touch with how things are done (and how hard the cashiers have to work).

<comment><USER4> Yes, but that's not the point. How do you allocate the extra cashiers? Do they just take customers one by one from the existing queue, or do they split the queue awkwardly and encourage customers to form additional queues?

<comment><USER9> Parent point is that once you have a nontrivial queue, very already lost, so it doesn't matter which style is faster.

</comment></comment></comment><comment><USER36> There are two Trader Joe's near me. One does a single line and the others have one for each cashier. I never go to the one with multiple lines. I hate it. The big, huge like that goes to the back of the store for the one with a single line.... I love it. I moves fast and I don't need to worry about picking a line. Even if it went just as fast as the other type, I'd prefer it, but now there's reason to love it even more.

</comment><comment><USER37> This always seems intuitive to me. You see a single queue feeding multiple processors fairly often such as in banks and security queues at airports. They seem "fairer" to me as you are not disadvantaged by picking the "wrong" queue through a bad prediction. In a classic supermarket queuing scenario, you could pick the shortest queue but find that the person in front is incredibly slow, so the three people who came to checkout after you at other checkouts progress through the process faster. This is first come, first served.

</comment><comment><AUTHOR> So at least there's one thing that most big banks get right.

<comment><USER38> I first encountered this in non-banks at Fry's Electronics over a decade ago. It struck me as odd initially, but I quickly realized how much more efficient it was and began to prefer it -- especially when I ended up stuck behind a 10 minute checkout in which the person insisted on paying with a cheque.

<comment><USER16> It's really important at Fry's, when often as not you just get an empty box or a piece of paper saying "Give this man a monitor" and they have to send somebody out across the store to actually pick up your item. Or when you bring out your government purchasing card and they don't believe it's real, so you have to stand there for an hour while they try and figure it out (true story).

</comment></comment></comment><comment><USER39> This is not new, search for "MM1 queue" and you will get a lot of mathemathical results explaining why this effect happens. Is a study case of queueing models.

</comment><comment><USER40> The article cites Apple's roving check out approach as an attempt to "solve line issues". Isn't this close to the most inefficient way to organize the checkout/queuing experience in terms of creating uncertainty and the need for everyone (even their staff) to move around? I can see that it has a lot of psychological value, though.

</comment><comment><USER41> _Another change: As soon as there are three or more people waiting in a line, the retailer deploys "line busters," employees who scan items in shoppers' carts before they reach the cashier, says Mr. Carey, who works closely with the retailer's operations team on line speed._

This isn't really news. WalMart's been doing this forever.

</comment><comment><USER12> When I interviewed for a PM job, one of my full hours was spent being asked to design a better checkout system for a grocery store, and show the math around how many registers were needed to ensure a certain maximum wait on line. It was definitely an interesting case study to use.

</comment><comment><USER42> The parallel vs serial queuing problem is very well established within the operations research community.

And, IIRC, it's not that there's much impact to average performance, but rather that the variation (sigma) drops by a factor of n.

</comment><comment><USER43> I love studies like these. But I have a real problem trying to read it, the screen was so crowded. Does anyone knows a firefox extension that gives me only the text?

</comment><comment><USER44> Back in 1989 as one of our projects in a data structures course, we solved this problem and reached the same conclusions. We did it using Pascal!

<comment><USER45> There are other factors which aren't typically considered. The latency of someone walking from the head of the single queue to the cashier each time matters, especially if the person at the front isn't alert or is confused by trying to figure out which till to go to. People are smart enough to pick short queues to join and there is no latency. Also psychology, nobody wants to join a long queue even if it moves fast, they go to another store.

</comment></comment><comment><USER46> More time efficient: avoid ever being in a queue. Think Amazon, or, in meatspace go shopping at odd hours.

</comment><comment><USER47> which is exactly how the queue design on the ck scheduler is, people == tasks ofcourse...

</comment><comment><USER48> Remarkably similar in design to hyper-threading. Lol!

</comment><comment><USER49> any first year CS student who's done queueing theory knows that SQMS is more efficient than MQMS and SQSS</comment>


Linode launches free DDoS protection - <AUTHOR> https://www.linode.com/press_release/linode-launches-free-advanced-ddos-protection-across-its-global-network/ <comment><USER2> This isn't on the level of some other providers, they'll still null route you if you go over an unspecified amount of traffic. IIRC they use Juniper and Corero.

This is the reply I got from their support, just a few days ago:

>In short, our DDoS protection works by filtering out DoS-like traffic and is applied via the Linode network, so all Linodes are automatically protected. If your server were to be on the receiving end of a larger attack that impacts the Linode's host, we would need to prevent your server from receiving traffic until the attack ends. If you're concerned that you might be the target of a large DoS attack, there are a number of third-party DDoS mitigation services that you can use alongside your Linode.

>We aren't able to provide specific numbers since effects can vary depending on the attack. If you wanted to be sure your Linode is protected, we would recommend utilizing a third-party DDoS protection service overtop of your Linode's included protection. You also have the option of waiting to apply third-party protection until a null route is found to be necessary.

<comment><USER3> That's not protection, that's literally the opposite of protection lol. If you get attacked they take your service out the back and shoot it in the head.

Edit: To clarify, filter = protection. Preventing all traffic is not. Both were stated in the description above so they should be clear which one it is.

<comment><USER4> Heh, that reminds me of my first bank account. They told me I had something called "overdraft protection", which I stupidly assumed would protect me from overdrafting my account by declining transactions.

Then I forgot to deposit a check at one point and overdrafted my account. I assumed things were fine because none of my transactions were getting declined. Instead I was being charged an extra $15 fee on every transaction, so that $0.75 stick of gum? $15.75, etc. This went on for about three weeks before I got my statement and talked to my bank.

They informed me that in fact the protection was from my transactions from being declined, at the paltry expense of $15 per transaction.

<comment><USER5> This is why the CEO of TCF Bank named his yacht Overdraft.

<comment><USER6> And here I am laughing at this pretty clever joke only to realize this is real..

[https://www.washingtonpost.com/news/get- there/wp/2017/01/20/...](https://www.washingtonpost.com/news/get- there/wp/2017/01/20/a-former-bank-ceo-named-his-boat-overdraft-now-that-bank- is-in-hot-water-over-the-fees/)

</comment></comment></comment></comment></comment><comment><USER7> I guess this is basically the same as OVH's "VAC" system? I sometimes get these emails:

>We have just detected an attack on IP address x.x.x.x. In order to protect your infrastructure, we vacuumed up your traffic onto our mitigation infrastructure. The entire attack will thus be filtered by our infrastructure, and only legitimate traffic will reach your servers.

and then:

>We are no longer able to detect any attack on IP address x.x.x.x. Your infrastructure has now been withdrawn from our mitigation system.

I never need to do anything, but I don't think these attacks are real anyway.

<comment><USER8> > I never need to do anything, but I don't think these attacks are real anyway

What would it take to convince you an attack is real when it has been 100% mitigated and you never saw it in your backend infrastructure?

I ask as the engineering manager for DDoS protection at Cloudflare, and we stop a lot of attacks. But I feel this tension in the communication and product offering... if we do our job well enough that a customer's system does not see the attack, how does a customer see and feel the value?

An example is that as a reverse HTTP proxy we are implicitly also a full TCP proxy for HTTP traffic and so we receive significantly large SYN or ACK floods. We stop these 100% by virtue of being the terminating TCP proxy, but also by using connection tracking, anycast, XDP + eBPF, and so forth... you won't see a single one of these SYN or ACK packets hitting your infrastructure... so what would we have to communicate to convince you that the attack existed?

<comment><USER9> Do you publish metrics on "attacks prevented" (or access to logging and monitoring) for customers?

<comment><USER8> Yes.

For HTTP customers there are full SIEM logs under Firewall > Overview on our dashboard, and for paid tiers there are drill-down analytics in addition to the full SIEM logs. There is also log push to receive near real-time full HTTP logs into Google or AWS for your own analysis and these show if a firewall feature touched the request or if it was served from cache.

In addition for HTTP customers we show graphs of SYN floods, etc for the IPs your web properties are advertised on.

For L4 customers via Magic Transit we also have Network Analytics showing what we received at our edge network and a log of attacks detected and mitigated.

There is still lots of room for improvement... that's really what I'm asking, what does the ideal system look like for someone where they see and understand the data and trust it.

For example, is it valuable to see the attack landscape and what is happening across our systems even when you are not the target? Would that help give perspective to attacks that do target you, and also increase faith that this system exists and is stopping attacks when attacks do not target you?

<comment><USER10> I think it'd be helpful to highlight the impact on YOUR infrastructure for an attack i am facing.

Will help add perspective to how disruptive the attacks are.

<comment><USER11> Yes, also perhaps some guidance figures on what the impact would have been had these measures not been in place.

<comment><USER8> Hard to answer the impact on your systems had we not stopped it... we don't know the full capability of your systems. Whether you can take a 10k packets per second ACK flood or a 1M pps ACK flood, or the 100M pps ACK flood depends on a lot of things we aren't privy to.

What we can tell you is the frequency, size and nature of attacks that Cloudflare sees, and when we can clearly identify that an attack was unambiguously targetting you specifically then we can tell only you about that too.

If there were a global dashboard which was vague about the target and source, merely the frequency, size and nature... would that be valuable?

<comment><USER10> > If there were a global dashboard which was vague about the target and > source, merely the frequency, size and nature... would that be valuable?

Yes.

> What we can tell you is the frequency, size and nature of attacks that > Cloudflare sees, and when we can clearly identify that an attack was > unambiguously targetting you specifically then we can tell only you about > that too.

Yes.

Also, even if you could tell us WHAT kind of attack it was that would be helpful too.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Is it free [1], free* [2] or "free" [3]?

[1]: free as in free beer, at no direct cost to users

[2]: terms and conditions apply, free until you hit certain conditions (for example, constant barrage)

[3]: free as in the customers pay for the (mandatory) DDoS protection via increased prices (similar to how I remember OVH handling their "free" DDoS protection)

<comment><USER13> I don't understand the difference between 1 and 3.

<comment><USER12> I may have used "free as in free beer" in a wrong way, what I meant with 1 was there are no additional costs to the current or new users (the rates for the services on offer stay the same).

For 3 (as was in the example), the cost of the DDoS protection service is directly added to the rates of services on offer.

OVH was quite blatant in this, as it had offered an optional DDoS protection service for a fixed rate of 3€/mo (this was a few years ago, exact details might be hazy). After they had a large network overhaul (with major interruptions), they simply raised the prices by 3€ and advertised the new, "free" DDoS protection service which was included in all of the services.

</comment></comment></comment><comment><USER14> Serious question: why would I want to use Linode over GCP or AWS? Asking as someone who hasn't really dabbled with smaller cloud providers. Is it cost? Support? Developer tooling?

<comment><USER15> Cost and ease of development by not throwing thousand of options in front of your screen.

Last time, I checked GCP costed me $26 (+ hidden charges) for the same I could get on many other places for $7. Some of them provide instant customer support too and are better because it's not an outsourced customer center in India or other places.

Check out:

vultr: [https://www.vultr.com](https://www.vultr.com)

Scaleway: [https://www.scaleway.com/en/](https://www.scaleway.com/en/)

OVH: [https://www.ovhcloud.com/en/](https://www.ovhcloud.com/en/)

DO: [https://www.digitalocean.com](https://www.digitalocean.com)

Some prefer managed infrastructure and want to write code. Though, you can do that via GKM but prefer more straightforward approach.

Nanobox: [https://nanobox.io](https://nanobox.io)

Heroku: [https://www.heroku.com](https://www.heroku.com)

LastBackend: [https://lastbackend.com](https://lastbackend.com)

ML/AI

Paperspace: [https://www.paperspace.com](https://www.paperspace.com)

Flyodhub: [https://www.floydhub.com](https://www.floydhub.com)

Colocation for those who have big infrastructure needs and developers will cost them less.

Equinx: [https://www.equinix.com](https://www.equinix.com)

Datafoundry: [https://www.datafoundry.com](https://www.datafoundry.com)

Disclaimer: not associated with any of them. Have used some of them and for others, heard great things.

You can easily go lower for less support and most likely a shit interface with some reliability issues.

<comment><USER16> A couple of posters on HN say Vultr has intermittent internal network problems. I've found no wider mention of this - can anyone confirm? I ask as their High Frequency Computer looks (and in testing has been) good, but if the internal network blips then that counts for nothing in a multi-server setup.

<comment><USER17> We've had network issues as well as forced shutdowns that have corrupted data. Their support was also terrible. We only spent a few weeks with Vultr because of this.

</comment></comment></comment></comment><comment><USER18> Nice. Apart from the security incident that took place long time ago, are there any reason why everyone is going straight to DO instead of Linode?

For a long time Linode has had better features, performance and bandwidth. It wasn't until recently DO had Managed DB and many other additions.

Linode's High Memory Plan also has much better Memory : CPU Ratio.

Still waiting for their CDN, ( Not sure why they are not exposing it and instead requires going through CS ), Managed DB and Bare Metal. Once those three are in place, ( and well tested ) It should provide decent competition to the HyperScalers.

<comment><USER19> Better marketing from DO. There strategy of content marketing with how-to guides has been massively successful.

Personally, think DO has a more pleasant UX too.

<comment><USER20> DO has been posting (or rather, spamming IMHO) /r/golang with fluff like "how to use switch statement in Go". You know, the sort of articles that someone who learned Go a week ago can write.

<comment><USER19> As a former marketing co-worker once told me: marketing is pretty much just standing around flapping your arms to get attention.

The content might be dumb, but it drives eyeballs and you remember DO.

</comment></comment></comment></comment><comment><USER21> Is this an on-demand solution using something like BGP+ Radware or Arbor? At what volume or pps will they announce a nullroute?

</comment><comment><USER22> I've been a Linode customer for at least a decade. Cheapest bandwidth I've been able to find anywhere and their data centers are super reliable.

<comment><USER23> Maybe because you only host static websites

<comment><USER22> I run [https://jsonip.com](https://jsonip.com) on linode. I push about 5-6 terabytes of data outbound each month. Linode is a dream.

</comment></comment></comment><comment><USER24> Good for them. Having DDoS protection included in pricing is now one of our core purchase criteria. There are many ransom hackers that target nobody companies like where I work were this kind of protection is now mandatory to ensure uptime.

</comment><comment><USER25> Well done Linode.

I wonder how quickly DigitalOcean will add this to remain competitive.

It's a huge win to have your hosting provider handle this and it's also nice to not be "forced" into using Cloudflare for such an important feature.

<comment><USER26> DigitalOcean has had free DDOS protection for quite awhile. And it sounds like Linodes solution is fairly similar. DigitalOcean decided to not advertise the fact because advertising your defenses is an open invitation to break them.

They still null route when the upstream links become congested but this is becoming less and less frequent as their network edge grows.

<comment><USER25> Do you have any documentation that mentions your droplets are protected from a ddos attack without you having to do anything?

Even DO themselves mention they don't protect against it and even go as far as saying to use Cloudflare.

Here's a tweet of that from Jan 2018: [https://twitter.com/digitalocean/status/958364631671758854?l...](https://twitter.com/digitalocean/status/958364631671758854?lang=en)

Is that them taking the "not advertising it" line to the next level by publicly stating they don't protect you even though they do? I'm a bit skeptical.

</comment></comment></comment><comment><USER27> I wish they had a datacenter in Brazil.

<comment><USER28> Bandwidth in South America is approximately 8x the cost of North America or Europe. There are almost no carrier neutral datacenters or peering where you can exchange traffic with other in-country networks without paying for transit. Most countries will strong arm you in to buying "local" for your hardware - which means using in country re-sellers that drastically mark up prices for foreign businesses.

Next to Moscow it is one of the most difficult places I've tried to put servers.

</comment></comment><comment><USER29> Does AWS or any other large cloud provider offer this type of service?

<comment><USER14> I don't believe GCP has such a service explicitly, although in 2 years of using them I've never seen any DDoS like behavior despite having multiple public endpoints. I am assuming there is some kind of automatic remediation that happens, or else I've just been extremely lucky.

<comment><USER30> [https://cloud.google.com/armor/](https://cloud.google.com/armor/)

GCP Network has built in DoS mitigation as well (e.g. in the load balancing layer) so you get some protection from that for free.

</comment></comment></comment><comment><USER31> Fascinating! I learned about fail2ban this week as well as how to search for bad SSH actors -- I was amazed at the traffic requests my Linode was getting decked with.

Having this as a default seems good.

<comment><USER32> Spurious SSH traffic is not a DOS, and isn't the sort of attack this is talking about, rather volumetric floods and things of that matter.

</comment></comment><comment><USER33> i m always surprised by the obvious promotion posts here. I 've had free Ddos protection in my hetzner servers since forever and nobody ever mentioned it

<comment><USER34> There was a hn thread on it aswell when they finally added it instead of nullrouting ips

Might be this one? [https://news.ycombinator.com/item?id=12403783](https://news.ycombinator.com/item?id=12403783)

</comment></comment><comment><USER35> About time after everything was down for weeks in 2015.

</comment><comment><USER17> The Christmas 2015 hack has now been fixed :) My boss has been begging us to leave Linode ever since. We haven't left.

</comment><comment><USER36> One more reason to Like Linode.

</comment><comment><USER37> Congrats to them. Linode always has a special place in my heart.

<comment><USER38> Couple reasons for those less experienced with VPS?

<comment><USER39> Not GP but for me, Linode had been fine for 5+ years and it speaks but Vultr has been having choppy network at least once a month for few years now (detected by port monitoring) and that also speaks too.

DO has been good on me too.

<comment><USER40> Same experience here with Vultr, always go down. But seems to be a bit better now than before.

</comment></comment></comment></comment><comment><USER23> OVH and Linode are what Bluehost is for shared hosting. Hosting providers that you want to stay away from if you want good for your server infrastructure.

<comment><USER41> can you elaborate?

</comment></comment><comment><USER42> Hope they use fastnetmon.</comment>