Facebook Container Extension: Take control of how you're being tracked - <AUTHOR> https://blog.mozilla.org/firefox/facebook-container-extension/ <comment><USER3> I don't understand why the default behavior isn't to isolate every website from every other website? Why is least privacy the default?

<comment><USER4> Disclosure: I'm the author of the add-on mentioned in the story.

Basically, various privacy protections cause various kinds of website breakage.

[https://blog.mozilla.org/data/2018/01/26/improving- privacy-w...](https://blog.mozilla.org/data/2018/01/26/improving-privacy- without-breaking-the-web/)

<comment><USER5> Then those websites should be considered broken much like we consider Adobe Flash and sites with invalid TLS certificates.

<comment><USER4> I really like that perspective! A few more high-profile cases like this and we just might nudge the internet in this direction! :)

<comment><USER6> Yes please. Third party cookies and the like are the plague. They have so few legitimate use cases.

Make it a long deprecation if you have to. Give even longer exemptions to the really big players / the big breakage / the legitimate use cases while we find better ways. But it is up to the browser vendors to remove the weapons here.

<comment><USER7> Unfortunately, OAuth relies on them. Many SaaS offerings rely on OAuth.

<comment><USER6> SAML and some oauth flavors do, but most of oauth does not.

<comment><USER8> I don't think OAuth requires third-party cookies, and SAML definitely does not. The authentication parts use HTTP POSTs or redirects from the IdP to SP. You probably do want cookies to track the sessions on each end, but those would be first-party.

It's possible for your IdP to track the SPs you authenticate to regardless of protocol or cookie use, of course.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Multi-account containers are great. I just wish switching to one wasn't as jarring as the tab closing immediately after opening and then re-opening in the correct container - I'm assuming that's still how this extension works?

Of course, I can appreciate that such behaviour is technically far more challenging. It's merely as a user that it's disappointing, and it makes Temporary Containers [0] practically unusable.

[0] [https://addons.mozilla.org/en-GB/firefox/addon/temporary- con...](https://addons.mozilla.org/en-GB/firefox/addon/temporary-containers/)

<comment><USER4> It still works that way.

We close the previous tab and cancel the webRequest before it's sent to the site so none of the default cookies are sent.

"Converting" a tab from one container to another is actually a bit complicated, and there are open issues for it. :/

<comment><USER10> I've noticed the favicon still loads in the old tab. Is that a request made outside of the web request and possibly leaking info in the old context?

<comment><USER11> Probably served from cache

</comment></comment></comment></comment><comment><USER12> Dear Apple,

Please design an iOS identity isolation UX for Mobile Safari, Apple Mail and third-party apps.

Currently we have to use several different iOS web browsers to achieve isolation of browser logins/cookies, but Apple Mail opens all links in Safari.

Ideally, there would be an OS enforced, per-app setting which defines which web browser (or Mobile Safari identity context) will be used to open a URL.

<comment><USER13> I'd prefer creating a throwaway container/context every time. Safari allows you to store pwds.

<comment><USER12> You can get that by entering Private Mode in Safari.

A URL clicked in Apple Mail will then open in a private tab.

</comment></comment></comment><comment><USER14> Another good tool is DuckDuckGo's tracker blocker. Facebook got a lot of attention, but google, comscore, twitter, and others are doing the exact same thing.

[https://techcrunch.com/2018/01/23/duckduckgo-adds-tracker- bl...](https://techcrunch.com/2018/01/23/duckduckgo-adds-tracker-blocking-to- help-curb-the-wider-surveillance-web/)

<comment><USER9> Note that it includes "energy labels" for terms of services that allow you to assess their impact at a glance. Those labels are provided by Terms of Service; Didn't Read, and they're currently crowdfunding with the help of DuckDuckGo, who donate to the project depending on the amount raised: [https://www.crowdrise.com/o/en/campaign/tosdr](https://www.crowdrise.com/o/en/campaign/tosdr)

</comment></comment><comment><USER15> Remember Facebook probably tracks your IP address and user-agent anyway, I'd be skeptical that Facebook doesn't put two and two together.

<comment><USER16> There is one silver lining in carrier grade NAT. combine that and all facebook ends up with is you are one of a few hundred firefox users in some geographical area.

<comment><USER17> Not necessarily! Other fingerprinting details can surface identity even when user agent and IP are unreliable. If you've got a specific screen resolution, you're tagged. If you've got a specific version of some piece of software (Flash, for instance) you're tagged.

<comment><USER18> I believe also fonts installed. EFF has a great tool regarding fingerprinting [https://panopticlick.eff.org](https://panopticlick.eff.org)

</comment></comment></comment></comment><comment><USER19> Wouldn't adding hashed query strings to urls linking to sites outside of Facebook circumvent any effort put into containing de-anonymizing data? The wrong hash would lead nowhere, and the right one would give you away.

Facebook would only have to edit a specific field in users' posts' urls related to certain domains, so that different users access unique urls that link them to Facebook in a specific context.

Once outside the container, a user is traceable back to a Facebook profile.

I don't know if this is possible, but people don't really check urls, let alone human-unreadable ones.

I imagine that this could break navigation, but directing wrong queries to a default page would solve this. Anyway, they could still try their luck.

<comment><USER4> That's an interesting threat model for this particular defense.

Cliqz has done some interesting research in this area of detecting (and stripping) unsafe data elements.

[http://josepmpujol.net/public/papers/pujolTrackingTheTracker...](http://josepmpujol.net/public/papers/pujolTrackingTheTrackers.pdf)

</comment></comment><comment><USER20> I really think programmers need a basic lesson in probability, because most of these solutions are complete nonsense with respect to information theory. Skynet still knows enough about you and everyone else even if you alone leave Facebook, and we need to figure out how to curb the powers that come with amassed data more generally.

1\. Models don't need everyones data, they just need _enough_ data. Facebook, Google, et al have more than enough data for a lot of applications even if they only had 5-10% of the population. So at best, this ship jumping will limit Facebook's ability to "micro-target" certain populations. In this case, P(whatever | privacy concerned individual) will be a bit noisier, but Facebook will still have a really damn good idea about P(whatever | still a Facebook user)

2\. Facebook can still use/sell the models it develops against its user base to target you even if you're not on the platform unless you really think P(depressed), P(bad employee), P(insurance risk), P(easily influenced by a specific type of marketing) has anything to do with the fact that you're not on Facebook. The minute someone asks a few questions about you in any setting, they'll be able to infer a ton more from the models alone. Lack of information about you will only add noise, and to make things worse, Facebook has enough data on privacy conscious individuals anyway to where they can reasonably fill in the privacy conscious holes in their data with a reasonable model.

3\. P(privacy concerned) may be correlated with P(not manipulable), so you jumping ship isn't going change the systemic issues everyone is concerned with, namely Facebook and third-party customers' ability to morph society in the means they see fit.

4\. You can replace Facebook with Google/Amazon/Spotify/Chase/Bank of America/Hospital System/Government and all of the above is true within the domain of data they control.

</comment><comment><USER21> "Facebook Container leverages the Containers feature that is already built in to Firefox."

I appreciate this. I was aware Firefox already had a container system, but didn't want to employ the effort to set it up. A one-off for Facebook though, feels easy to work with.

<comment><USER22> Exactly! This addon has _no_ new exciting tech. It's just specialized/preconfigured UX around an existing feature, and opportunity- grasping marketing after the recent Facebook privacy barfs.

I'm happy to recommend/install it to friends I install uBlock Origin for.

Great job Mozilla :) . More of this.

</comment></comment><comment><USER23> Can someone explain how this would prevent fingerprinting? IP, user-agent, window-size and other details can reliably identify most of the the other http sessions anyway. Blocking trackers seems as important to me.

<comment><USER24> It does not. I'd guess it hardly makes a dent in their tracking. The only sure way to block completely is to use a custom router on your network - <USER2> outgoing firewall. Via a custom dns server on my router, all requests from any device, browser, app, etc for the facebook or any ad or tracking domains never leave my network. This is powerful. Windows 10 intrusive spying can be blocked as well. Basically anything that I can't figure out what it is is blocked, and it's a lot. If I ever acquire malware that phones home, it should detect as well.

The great thing is when you block all that, your internet is much faster.

<comment><USER25> Would you comment on what router and software you are using, how difficult it is to maintain, and any surprises you have had using it (things you depend on breaking).

<comment><USER24> It's Ubuntu. Protectli is the equipment, easily obtainable on Amazon. If I had to do over I would use PCEngines however since they use core boot. Edit: you will also need a wireless access point to plug into a lan port. Ubiquity unify is great and is much better coverage than the consumer grade router this replaced.

An excellent guide: [https://killtacknine.com/building-an-ubuntu-16-04-router- par...](https://killtacknine.com/building-an-ubuntu-16-04-router- part-1-network-interfaces/)

Up for months, incredible speed, no maintenance, except to add new domains to block when they prove to be spyware. Twitter may be next on the list since it is of declining use to me.

I'll add that I'm by no means a linux whiz, but learned a lot by doing this project.

Biggest issue is explaining to guests why they can't access facebook.

Another bene is you no longer have the planned obsolescence of consumer grade equipment. I fully expect this thing to last a decade, and "firmware" is automatically updated via linux.

</comment></comment></comment></comment><comment><USER26> I already use the multi-container accounts to do this. It works fantastically, and is the biggest reason that Chrome is gone from my mac.

Why is this different from Privacy Badger? This allows you to segregate all facebook toxicity to a single container. This allows you to fully use facebook, and places like login via facebook, without exposing other things to facebook in the first place.

That said, this really doesn't address either the Cambridge situation, or the fact that Facebook themselves allowed the Obama campagin to pull demographic information in violation of their own polices, which was arguably impacted far more people ([https://www.investors.com/politics/editorials/facebook- data-...](https://www.investors.com/politics/editorials/facebook-data-scandal- trump-election-obama-2012/) && [http://www.dailymail.co.uk/news/article-5520303/Obama- campai...](http://www.dailymail.co.uk/news/article-5520303/Obama-campaign- director-reveals-Facebook-ALLOWED-data.html)). The only solution to that is to #DeleteFacebook. Facebook is a surveillance as a service provider. The only way to keep them from monetizing you for commercial, social or political reasons is to firewall them off.

You can also associate this with a VPN, if you want to deny them the IP address your home machine is using.

<comment><USER27> > Facebook themselves allowed the Obama campagin to pull demographic > information in violation of their own polices, which was arguably impacted > far more people > ([https://www.investors.com/..](https://www.investors.com/..). && > [http://www.dailymail.co.uk/news/...](http://www.dailymail.co.uk/news/...)).

Neither of those citations say that what the Obama campaign did violated Facebook's policies.

The "But the Obama campaign did something similar!" is an argument based on false equivalence, used to muddy the conversation.

(Further, both of those citations - a right-leaning source[0] and a tabloid, respectively - are articles written about some tweets. Which is not to say that they're _wrong_ , but without further confirmation, one might want to take them with a grain of salt.)

[0] The "You might like" links at the bottom are to the articles "Russia Scandal: Did Obama Tutor Hillary Clinton In Electoral Conspiracy 101?", "Will Mueller Ever Admit That There Was No Trump-Russia Collusion?", and "Hillary Clinton Still Can't Believe She Lost ... Or Why".

<comment><USER26> Actually, if you look, the original source said that Facebook admitted that they were only doing so because they wanted Obama to win - and that for anyone else it would be a violation of their practices. The OFA postulated that Facebook did the same for other parties, but no evidence has come to light.

In fact, reading what the OFA admitted, and what is under investigation here, the only difference seems to be that Facebook didn't unofficially bless the efforts of Cambridge, while they did for OFA.

Here is the money quote - directly from Twitter:

"They came to office in the days following election recruiting & were very candid that they allowed us to do things they wouldn't have allowed someone else to do because they were on our side"

That's not a conspiracy theory, or some evil double standard. That is a director for OFA explicitly mentioning that they were being given special data "because they were on our side".

You should be very very scared about social network deciding to be on peoples side. See Trump and Twitter.

It's as if the last two years hasn't convinced you to be deeply skeptical of social networks and surveillance as a service operations. This universal confirmation bias is the exact same bias that Trumpkins use to ignore any news they don't like. Facebook will keep selling you to the highest bidder. They don't give a fsck about your political point of views.

(And this is probably tame for what they do for China to suppress their people).

<comment><USER27> _Actually, if you look, the original source said that Facebook admitted that they were only doing so because they wanted Obama to win - and that for anyone else it would be a violation of their practices._

No, it doesn't. Between the two sources, they say that Facebook was "surprised" that they were able to get so much data, and that Facebook didn't stop them. The sources do not say that the Obama campaign violated Facebook's policies.

This is the false equivalence: "What the Obama campaign and Cambridge Analytica did to acquire data on tens of millions of Americans is the same."

In reality, Cambridge Analytica obtained the data from a 3rd party not authorized to provide it, and who collected the data under false pretenses.

The Obama campaign did neither.

EDIT: Here's The Washington Post. "Facebook's rules for accessing user data lured more than just Cambridge Analytica" \- [https://www.washingtonpost.com/business/economy/facebooks- ru...](https://www.washingtonpost.com/business/economy/facebooks-rules-for- accessing-user-data-lured-more-than-just-cambridge- analytica/2018/03/19/31f6979c-658e-43d6-a71f-afdd8bf1308b_story.html) :

 _Cambridge Analytica — unlike other firms that access Facebook's user data — broke Facebook's rules by obtaining the data under the pretense of academic use. But experts familiar with Facebook's systems and policies say that the greater problem was that the rules for accessing the social network's information trove were so loose in the first place._

<comment><USER26> "They came to office in the days following election recruiting & were very candid that they allowed us to do things they wouldn't have allowed someone else to do because they were on our side"

The willingness to excuse Facebook selling your privacy because you agree with a political point of view is part of the problem.

<comment><USER28> That sort of rank partisanship can barely be hidden. It's discrediting. FB is clearly in the worse here, even if they were entirely within their rights while Cambridge Analytica was entirely not. What's legal is not always what's _right_.

<comment><USER26> this.

It's becoming clear exactly what the cost of social surveillance is in our lives. This is just one of many significant problems with it.

There have always been jackasses willing to sacrifice morals (or rightness) in favor of power. Social networks just make it easier to ignore signals that should humanize power.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> Privacy Badger is already able to prevent Facebook from tracking you right? And it's doing way more than just that.

Or am I missing something?

<comment><USER30> Privacy Badger is attempting to prevent Facebook from tracking you by blocking URLs known to load tracking code or pixel trackers etc.

This extension isolates your Facebook login cookies while you're browsing on non-Facebook websites, hence making it harder for those tracking techniques to identify you.

<comment><USER31> How can you load Facebook login cookies from third party websites? I thought they set a cookie on facebook and used that to track you between sites. Third parties add Facebook scripts to their sites that then read the tracking cookie around the web.

Privacy Badger prevents the cookie being sent back to Facebook from these third party websites.

</comment></comment></comment><comment><USER32> Multi-account containers are great. The only issue I've encountered is opening links outside of your container (e.g. a link to a website that you are logged in outside the container will mean you are logged out). Just need to train my muscle memory to "right click > open in container..." rather than just clicking!

</comment><comment><USER33> This is a good start. It's close to the way I've been (infrequently) using Facebook for the past few years: in a private browsing session through a VPN. It's worth noting that with this extension Facebook still gets your IP address.

</comment><comment><USER34> _This makes it harder for Facebook to track your activity on other websites via third-party cookies._

Why not bundle uBlock Origin into every Firefox install and make it impossible for Facebook to track everyone's activity on other web sites?

</comment><comment><USER35> With this extension, Facebook still knows that those non-Facebook links were clicked on because of the outgoing redirects they add to all URLs under the guise of 'safety'.

</comment><comment><USER36> There is something unintentionally hilarious about the title 'Take control of how you are being tracked.'

</comment><comment><USER37> Edit: ignore the below, I didn't realize the new container had the opposite behavior from other Firefox containers, described here [https://addons.mozilla.org/en-US/firefox/addon/multi- account...](https://addons.mozilla.org/en-US/firefox/addon/multi-account- containers/)

This has a real limitation, which is that if you click an external link on your Facebook newsfeed, the new website will also be in the FB container. On the one hand, that keeps your FB-related browsing from "contaminating" your other web cookies. On the other hand, all the websites in that container get to link you to your FB account just like normal.

<comment><USER38> Doesn't the post explicitly contradict this?

> If you click on a non-Facebook link or navigate to a non-Facebook website in > the URL bar, these pages will load outside of the container.

Or am I misunderstanding?

</comment></comment><comment><USER39> This is great, and will probably save me a lot of time. Currently I use an ubuntu desktop vm (vagrant) that I use for sites like facebook, that I destroy when done and recreate when needed so it's like a brand new clean pc each time.

</comment><comment><USER40> Nice. Can I have the same one for Google ?

<comment><USER4> Check out [https://addons.mozilla.org/firefox/addon/multi-account- conta...](https://addons.mozilla.org/firefox/addon/multi-account-containers/)

<comment><USER40> I know about the multi-account container extension.

A google one would be so much easier for setting-up and forget it. The facebook one is really nice because once installed it auto logs out then automatically puts facebook.com into its own container everytime I type the url or visit it (even if the active tab is in another container).

With the multi-account extension I have to actively manage containers which becomes annoying quite fast.

<comment><USER41> It's a little more setup, but I believe you can accomplish that in Multi- account Container extension by setting "Always open in <container>" for the Google domains.

<comment><USER40> Thanks ! It seems to do the trick.

</comment></comment></comment></comment></comment><comment><USER42> This is cute, but does little to address tracking via IP and basic behavioral sniffing. Facebook buys lots of third party datasets, including data from ISPs (actually, it is given to them).

</comment><comment><USER43> Remember that Mozilla is basically a fiefdom of google - like the recent industry denouncements of fb this is all about opportunism and corporate power struggles with the users still being the commodity traded. Also can someone explain what this container does that disabling third-party cookies doesn't (assuming you don't have other malware like flash installed) ?

</comment><comment> andy-wu Is there any way to make the standalone Messenger open in the FB Container? The way I see it, the two are intrinsically linked since using Messenger requires an FB login.

Edit: After playing around, this also breaks the back button. If anyone from Mozilla is here, I think it would be better if an FB page opened in a new tab while keeping the original open.

<comment><USER4> Disclosure: I'm the author of the add-on mentioned in the story.

We tried a few different UXs and none of them felt ideal. We have an open issue to add Messenger to the list of FB domains that are contained. [https://github.com/mozilla/contain- facebook/issues/45](https://github.com/mozilla/contain-facebook/issues/45)

<comment><USER44> Great work! I love multi-accounts containers on desktop. Is it coming to the Android browser as well?

</comment></comment></comment><comment><USER45> I use a separate Chrome profile to isolate Facebook. I'm wondering how Firefox does things differently?

<comment><USER46> It never occurred to me to try this. Great idea!

</comment></comment><comment><USER47> Blocking third party cookies goes a long way to achieving the same thing, and also prevents Google and others to track your movements across the web. The occasional site may break if it relies on third party cookies, but this is easy to work around when it happens.

</comment><comment><USER48> > The next time you navigate to Facebook it will load in a new blue colored > browser tab (the "Container").

Why does not browsers (eh, Firefox) do this by default for every origin? 3rd party cookies would be broken I assume, but overall it would lead to less tracking across origins.

<comment><USER49> Because that would break many things on the web, in particular the ability to `Like`, to `Log-in with Google`, etc. Also, the definition of 3rd party is sometimes complicated.

<comment><USER50> But zero people in the history of the web has deliberately "liked" anything while knowing the privacy implications.

Liking and logging in with google should show a similar warning as an untrusted or malicious site and _then_ send the cookies

</comment></comment></comment><comment><USER51> This is cool, but please make Firefox work like this for every webpage now.

I don't see a reason to allow any cross domain tracking from any website at all.

Facebook is probably just the most visible offender rather than the worst offender in this regard.

<comment><USER52> It can basically.

1\. Go to Options->Privacy 2\. Go to History and change it to use custom settings 3a. You can either disable third-party cookies 3b. Or you could go a bit further and check "Always use private browsing mode"

</comment></comment><comment><USER53> Another nice thing to have, although Firefox already has extensions like Self- Destructing Cookies or Cookie Auto Delete to remove cookies as soon as the tab is closed. In which case, Facebook should have nothing to look at.

</comment><comment><USER54> Does this extension work more or less like every URL you would open in a new incognito mode separate window? Or is there some other more sophisticated solution in the background?

<comment><USER4> It works similarly to Private Browsing Mode - it actually uses the same architecture.

But the Facebook container retains your Facebook cookies (and therefore your login) after restarts.

</comment></comment><comment><USER55> The amount of effort that goes in to making it 'safer' for people to use ridiculously abusive services like this is ridiculous.

This is the tech world's equivalent of a "how to take a punch" class for victims of domestic violence.

<comment><USER56> That would make sense if the abuse was between individual actors. Domestic violence victims can, in theory, defend themselves with weapons and legal means. This is (to really stretch the analogy) more "how to hide from drones" for targets of a giant, state-tolerated PMC.

<comment><USER55> Sorry, but no.

People know that (facebook|their partner) is abusing them (privacy- wise|physically) and they choose to continue the relationship.

That's it. No one chooses a relationship with a drone, and to date Facebook haven't found a way to force people to create accounts and continue to use them, at gun-point.

<comment><USER40> > People know that (facebook|their partner) is abusing them (privacy- > wise|physically) and they choose to continue the relationship.

Really bad comparison there.

<comment><USER57> You're hopelessly naive if you think that doesn't happen all the time with domestic violence. It's the rule, not the exception.

<comment><USER40> That's my point. Domestic violence shouldn't be equaled with Facebook's abuses. Causes, consequences, objectives and methods of entrapment are too much different.

I have experienced domestic violence first-hand and I cringed when I read the word "choose" when describing the situation.

</comment></comment></comment></comment></comment></comment><comment><USER58> Too bad the extension doesn't work on mobile - does anyone know if there are any plans to change that?

</comment><comment><USER59> I'm guessing the Mozilla Foundation just lost all it's funding from Facebook.

<comment><USER60> They don't get any funding from Facebook, as far as I know. In the US, it's almost entirely from Google (source: I'm an ex employee)

<comment><USER61> Furthermore I am sure the extension came from the Mozilla Corporation side and not the Foundation side. Based on the last audit (2016-2015) if I read it correctly 52K was brought in through "receivables" which includes search engine deal revenues

</comment></comment></comment><comment><USER62> Best solution = deactivate and delete your Facebook account.

<comment><USER63> No, because you are still tracked via Like and Share buttons and all of that goes in your shadow profile. Best solution = block all of Facebooks IPs via hosts file or a plugin like uBlock Origin

</comment></comment><comment><USER64> I guess it doesn't stop info trading behind the scenes.

<comment><USER48> No, obviously it can't. But, that's what "DNT" (Do Not Track) header was supposed to fix, but there is no incentive for companies to adhere to it, except good-will.

</comment></comment><comment><USER65> I took control by never signing on to Facebook.

</comment><comment><USER66> this is really good...timely release.

</comment><comment><USER67> PSA: Safari does this by default.

<comment><USER68> Do you have a link with more information about Safari's approach?

<comment><USER4> Disclosure: I'm the author of the add-on mentioned in the story.

I'm also interested in this claim. If you're referring to Intelligent Tracking Prevention, I don't think it does this.

<comment><USER67> The ultimate aim is the same.

<comment><USER4> The aim is the same, but ITP only strips cookies after a 24-hour period when you _HAVE NOT_ visited the site.

So ITP does nothing to protect a user who visits facebook.com every day. Which is most of Facebook's user-base.

</comment></comment></comment></comment></comment><comment><USER69> This for every site by default!

</comment><comment><USER70> This article disappoints me because Mozilla seems to be spinning the current facebook disdain to sell their offerings rather than providing clarity/solutions on this issue.

<comment><USER71> I didn't realize that Mozilla started charging people for Firefox.

</comment></comment><comment><USER72> I like this a lot, but I won't use it because I resent the need to contain different personas online. Too much work.

<comment><USER73> This literally does all of the work for you. You just click "install" and then you don't need to worry about 'containing different personas online' at all. It's ridiculously easy.

<comment><USER72> I don't worry about containing different personas online because I have only one social media account (HN). Therefore, only one persona. That + ublock origin is sufficient for me.

</comment></comment></comment><comment><USER74> but youre still sniffing my DNS traffic in the nightlies right?

[https://www.theregister.co.uk/2018/03/20/mozilla_firefox_tes...](https://www.theregister.co.uk/2018/03/20/mozilla_firefox_test_of_privacy_mechanism_prompts_privacy_worries/)

<comment><USER75> "Still"? That one-week experiment with Firefox Nightly user was proposed but not started at this time, as user feedback is being considered.

</comment></comment><comment><USER43> Remember that Mozilla is basically a google fiefdom and like the industry "denouncements" of fb this is all about opportunism, corporate power struggles with the users still the commodity being traded. Also can someone explain what this container does that disabling third-party cookies doesn't ? (assuming you don't have other malware like flash installed)</comment>


Show HN: A Python toolkit for processing tabular data - <AUTHOR> https://github.com/reubano/meza <comment><USER2> This looks great - thanks for posting.

<comment><AUTHOR> You're welcome. Please let me know your thoughts once you get around to using it.</comment></comment>


Ask HN: Foreigner Health Insurance - <AUTHOR>

I recently moved back to the US, this time on an O1 visa. I'm the cofounder of a startup, bootstrapping, living as frugally as possible. Something I'm having a hard time finding is information on a sensible personal health insurance plan for non-resident/non-citizens. Previously I rode out my student health insurance plan from school. Our company (my "employer") is too small to have a corporate insurance plan that I can get on. I have neither parents (in America) nor dependents. I'm a fairly healthy and fit 26-year-old male with no foreseeable medical issues. I have a somewhat flexible budget, but basically I want to make sure I'm covered for emergency dental and medical at the most reasonable cost.
Obamacare and other standard health insurance quote sites, besides being spammy as hell once I give them my phone number or email, do not address non-residents at all.
Does anyone have experience in this? A place where I can look for relevant information? <comment><USER2> Not sure about O1, but H1 visa holders can buy insurance through the marketplace.</comment>


URL Whitelisting - <AUTHOR> Is URL Whitelisting a viable option for organizations to control where their employees go on the Internet? <comment><AUTHOR> Whitelisting has been the silver bullet at lots of places I have worked. It is intuitively attractive. It is intuitive that your employees will only need a small subset of websites to do their job. I don't think this is accurate. I think the overhead to maintain is crazy. I also think you are impacting employee productivity. I don't like it as a strategy. I was just wondering what everyone else thought.

</comment><comment><USER2> Yes. No. Maybe. Depends on the use cases, risks, threats etc. What are you trying to reach? What are you trying to avoid?

TL;DR: There is no Silver Bullet.</comment>


Krugman: a rant on national "Competitiveness" - <AUTHOR> http://krugman.blogs.nytimes.com/2011/01/22/competitiveness/ <comment><USER2> I think this line:

"On the other hand, as Robert Reich says, this could all too easily turn into a validation of the claim that what's good for corporations is good for America, which is even less true now than it used to be."

sums up the nature of the problem with our political/economical policies. It appears to me that many people are stuck in the mindset that what is good for business is necessarily good for America. This may have largely been true before NAFTA and other free trade agreements but it definitely isn't true now. It's too easy to move capital and whatnot to other countries.

It appears to me that we are living in a society in the grips of regulatory capture. The political message to sell policies is that they are good for business. This comes with the implied message that it is good, necessarily, for America. I think too many people think in terms of an American company or a Chinese company rather than a company based in America or based in China.</comment>


Senator Cruz on Innovation - <AUTHOR> https://www.texastribune.org/2014/11/14/cruz-explains-his-opposition-to-net-neutrality/

<comment><AUTHOR> In

[https://www.texastribune.org/2014/11/14/cruz-explains-his- op...](https://www.texastribune.org/2014/11/14/cruz-explains-his-opposition- to-net-neutrality/)

we have a video clip of Texas Senator Ted Cruz discussing the important issue of Internet _network neutrality_.

Since the issue is important and, thus, we need for Senators to be well informed, here I respond to the part of the Senator's statement having to do with _innovation_ by monopolies.

Here I'm discussing just innovation by monopolies and am not discussing _network neutrality_ more generally. And here I concentrate on the Senator's remarks about innovation by the regulated monopoly AT&T.

Starting at about 00:55 of the video clip, we have:

"If you look national, when you think of regulated monopoly, regulated public utility, what are the adjectives that come to mind? They are not bold, innovative, fair. Let's give a simple contrast. The Telecommunications Act of 1934 was adopted to regulate these [he picks up a black, dial telephone desk set]. That's what it existed for, to put regulations in place. And what happened? It froze everything in place. You are right, it did have the major innovation of Touch Tone. [audience laughs] This [puts his hand on the black dial telephone] is regulated by Title 2. This [Holds up a smartphone] is not. Your smartphone, the Internet, the apps, all of this [holding up the cell phone] is outside of Title 2. The innovation is happening without having to go to government regulators and say "Mother, may I?". ...."

Okay, let's look at the part that, since the 1934 Title 2 regulations, AT&T, a regulated monopoly, for the US voice phone system "froze everything in place".

Well, it turns out that even after Title 2 of 1934, AT&T saw some problems and started to attack them:

Problem: Improving on vacuum tubes.

AT&T clearly saw that for the electronic signal amplification they needed for a good US long distance voice network, vacuum tubes were a bummer. The tubes were physically large, expensive, delicate, and unreliable. With the hot filaments, the tubes wasted a lot of electrical energy, put out a lot of heat, and generated a lot of noise in the signal.

Yes, could use the tubes as a rectifier, but there AT&T knew that it was possible to do much better with a selenium rectifier -- solid state, no filament, small, rugged, etc.

Well, might it be also be possible to have a good solid state electronic amplifier?

So AT&T Bell Labs started a project to develop such a device.

WWII was an interruption, but right after the war progress was rapid, and as in

[http://en.wikipedia.org/wiki/Transistor](http://en.wikipedia.org/wiki/Transistor)

in 1947 at AT&T Bell Labs John Bardeen, Walter Brattain, and William Shockley demonstrated the _transistor_. Right away AT&T declined to patent the invention and, instead, gave it to the world for free.

The transistor was one of the most important steps up in all of civilization and the _ascent of man_ and definitely qualified as "innovation", innovation of a grand kind, a top crown jewel of civilization.

Gee, might the level of innovation of the transistor compare with that of software for a smartphone app? Gads, the mind boggles!

Problem: How to transmit as much data as possible?

Even with transistors, it was still necessary to address how best to transmit data. E.g., what was the fastest way possible? So, C. Shannon did _information theory_ and, in particular, found the _Shannon limit_. Yes, at AT&T Bell Labs, and more _innovation_.

Problem: For digital data, what to do about errors, say, a few bits flipped the wrong way.

So, R. Hamming invented error correcting coding, e.g., the Hamming codes based on finite field theory from abstract algebra.

Yes, from AT&T Bell Labs, and _innovative_.

Problem: How to transmit billions of bits per second over long distances?

Clearly something better than twisted pair copper wires was needed.

So, use optical fibers carrying amplitude modulated laser light of essentially just one wavelength. For the lasers, use Ga-Al-As hetero-junctions. Right, AT&T Bell Labs, and just magnificent innovation.

Problem: How to write software.

AT&T Bell Labs wanted some software so invented the computer operating system Unix. Since AT&T was a regulated monopoly, they couldn't sell Unix, so essentially they gave it away. Then there were later versions, BSD and Linux. For programming a language, they invented C. For an object-oriented programming language, they invented C++, initially a pre-processor to C. So, in software, from AT&T Bell Labs we got Unix, C, and C++, and these definitely qualify as _innovation_.

Problem: How to build a flexible, reliable digital communications network?

The DoD Advanced Project Research Agency (ARPA) addressed the problem and developed TCP/IP and internets. NSF helped the work _go live_ , and now we have the Internet.

AT&T Bell Labs also attacked this problem and invented _asynchronous transfer mode_ (ATM). ATM worked well for conversational voice and video while at least initially TCP/IP did not. Early on, ATM links were important in the Internet, but apparently in time IP won. Then, sure, for some of the _core_ of the Internet, the simpler, faster _border gateway protocol_ (BGP) won.

The Internet would be nowhere without the AT&T Bell Labs innovations of the transistor, optical fibers, solid state lasers, and error correcting coding. Shannon's work and ATM were also helpful. And Unix, C, and C++ remain pillars of the Internet and its applications.

Was the Internet primarily from the start-up entrepreneurs Cruz seems to admire? No: The Internet was primarily from AT&T Bell Labs and ARPA.

The idea that monopolies and big government don't innovate stands contradicted.

The regulated monopoly that did the black, dial desk phone also was by far the single, most important contributor of crucial innovation of the Internet.

Sorry, Senator Cruz: Sometimes monopolies do innovate. With high irony, the innovation you so admire, the Internet, was heavily from just the regulated monopoly you said "froze everything in place". And for much of the rest of the innovation for the Internet, that was not from entrepreneurs, either, but from one of the biggest government agencies of all, the US DoD and its ARPA.

Of course Senator Cruz is fully correct about the importance of the Internet and its crucial innovation. And he is correct that sometimes big government makes a big mess. And, of course, in just what we do about _network neutrality_ we should be very careful.

Still, the lion's share of the crucial innovation for the Internet came from just the regulated monopoly, AT&T, that Senator Cruz claimed "froze everything in place".

Senator, that was a super, fat softball pitch you threw, and it was even embarrassingly easy to knock it into orbit: We're talking at least one Nobel Prize and top, crown jewels of civilization, Senator! The transistor! Optical fibers and solid state lasers! Error corrective coding! Don't look for better.

Senator, these are very important subjects, and we very much need to have the record set straight, but, _please_ , it's no fun to totally humiliate you this way. We only have 100 Senators, and we need each of you to be fully well informed.

Senator, you have now had your introductory lecture in "The History of Innovation 101". Hope you enjoyed it and, for the sake of all of us, learned something valuable. Now, let's be careful on innovation, the Internet, and _network neutrality_.</comment>


Nylas N1 now has snooze, swipe actions, emoji, and more - <AUTHOR> https://medium.com/@Nylas/nylas-n1-now-has-snooze-swipe-actions-emoji-and-more-561cd1e91559#.mgp8wtbm2 <comment><USER3> Anyone interested in developing desktop apps with Github's Electron the folks at Nylas have done several presentations with lots of good information.

[https://www.youtube.com/watch?v=JIRXVGVPzn8](https://www.youtube.com/watch?v=JIRXVGVPzn8)

[https://www.youtube.com/watch?v=TO9e8r6RQhE](https://www.youtube.com/watch?v=TO9e8r6RQhE)

</comment><comment><USER4> Hi folks -- I work at Nylas and would be happy to answer questions about N1.

If you haven't seen it, the code for N1 and the sync engine are both open source available on our GitHub: [https://github.com/nylas](https://github.com/nylas)

<comment><USER5> If I snooze on my desktop with N1, will it properly notify me on my phone if I subsequently shut down my laptop?

<comment><USER6> Huh! Am I missing something? I didn't think Nylas had any kind of mobile support yet. How does this work?

<comment><USER7> Hi, I'm an engineer at Nylas. Basically we have a server side process which moves snoozed emails back to your IMAP/Exchange inbox when it's time to unsnooze them.

</comment></comment></comment></comment><comment><USER8> Did they get rid of the extra middle server yet or integrate it at least? Seems really annoying when IMAP satisfies basically everything already... makes me think the whole thing is just a ploy to collect as many people's email as possible to be honest.

<comment><USER9> Additionally what does this have that thunderbird doesn't?

<comment><USER10>
        - <USER2>
        - Nice design
        - Chance to make an impact because it's fresh
        - Pretty much everything stated in this blog post (including, but not limited to, swipe, snooze, emoji support, opportunity to schedule a reply)

Don't get me wrong, I am using Thunderbird currently, but this thing really shines in some of the areas where Thunderbird does not. But, I'm going to have to wait until the PGP support is finished before I even consider moving to it.

</comment></comment></comment><comment><USER11> Thanks for a great product. I like how you guys timed the release with the even of the Mailbox shutdown. I continue to document issues on Github and really appreciate the responsiveness.

One thing I'm afraid of is that N1 is developing new features and immediately pushing them too strongly in the UI. Despite all these new features recently, the app's Preferences haven't changed much. Before continuing to push hard on even more new features, it would be great to focus more on the experience: bugs, customizability, design, and extensibility.

Bugs: [https://github.com/nylas/N1/issues](https://github.com/nylas/N1/issues) It's hard to quantify but there seem to be pending issues that have been around for awhile.

Customizability: As I mentioned, the App Preferences menu has been pretty static despite new updates. If I want to hide certain features from the UI, it should be as simple as doing so from here rather than doing it directly in the code (which is possible and much easier than any other client out there).

Design: The ability to import & create own themes is great and makes it very usable. That being said the default themes have very little contrast and have too little white space. In addition, the new icons for Send later, insert email template, insert link tracking, and enable read receipts aren't very clean. Against a gray background in the Light theme they are hard to distinguish as button since they are just icons. Also, with their sketchy design style they add too much detail to support fast twitch reactions necessary for an email workflow.

Extensibility: Although each theme is managed separately, I'm curious to learn how the community of developers stays on top of upcoming & new releases with regards to quality and timing. In addition, I haven't much change in the encouragement of plug-ins. I haven't seen new plug-ins recently.

I understand it's all about the community and I'm one of them. Hopefully this post is more constructive than offensive. Feel free to reach out for any clarifications or justifications. I'm a diehard user and recommend the product to everyone who struggles with email.

<comment><USER4> Definitely agree with all of the above, and most of these are next on our roadmap. Our next sprint is focused on polish and performance. Stay tuned! ;)

Unfortunately GitHub has kind of become a catch-all for general debugging and support from users, so it's not necessarily bugs or feature requests (e.g. [https://github.com/nylas/N1/issues/1412](https://github.com/nylas/N1/issues/1412)). Still, it's probably the best place to open issues for suggestions or things you want to see!

Thanks for the feedback and the kind words! You can also email me directly via firstname.lastname@example.com

</comment></comment><comment> rafael-rinaldi I'm really impressed with how fast this project is evolving. Been keeping up with it for a while and today is the best mail client IMHO.

Kudos to all involved.

<comment><USER12> Thanks! Glad you're enjoying it. :) (I'm part of the Nylas team)

</comment></comment><comment><USER13> I downloaded N1 after reading this post. I do not get such behavior. Instead I see snooze and archive buttons. I am using "self hosted" version, but I don't think it should matter, since this seems to be "front end" feature.

I have Version 0.4.10-4e3595b on OSX (El Capitan)

</comment><comment><USER14> This is fantastic, snooze is essential to my email flow and I've been waiting for N1 to release this. Love the additional features like emoji too. Keep it coming.

</comment><comment><USER15> Does it have encryption yet?

<comment><USER12> Not yet! You can track the issue here: [https://github.com/nylas/N1/issues/96](https://github.com/nylas/N1/issues/96)</comment></comment>


GPS receivers dont work beyond 60k feet and 1k knots - <AUTHOR> https://blog.satsearch.co/2019-11-12-an-overview-of-gps-receiver-products-for-small-satellites <comment><AUTHOR> GPS receivers are ubiquitous in many ground-based applications, from large- scale industrial transport navigation systems to fitness trackers and smartphones. However, using GPS receivers in space is a much more challenging task compared to normal terrestrial use. Here is an overview of some of them that work in space!

</comment><comment><USER2> TL;DR: There's a limit imposed by ITAR - because what flies at 60k+ ft, 1k+ knots and would really benefit from a GPS? Missiles.</comment>


It's Not Okay Losing People. - <AUTHOR> https://medium.com/deepest-darkest-digital-africa-2/573e1c272f84

<comment><USER2> There's a natural tendency when people leave to say, "It's them, not us." It's also natural to say, "The best companies in the world routinely prune. Look at Microsoft, Goldman Sachs, GE and McKinsey."

The reality is this is a crutch. Firms need to actively remove the weak links, and actively keep the best. If people consistently leave for better opportunities (whether it's more income, more freedom, more responsibility, or all three) then a company is at risk.</comment>


MetaFilter saved my pals from sex traffickers - <AUTHOR> http://motherjones.com/mojo/2010/05/metafilter-russian-sex-ring

<comment><USER2> I have lived in the general area of what is now the Lux bar for over 10 years. I see this sort of thing happen every single summer in New York City. "J1" is what people call these girls and the story goes like this:

They come here on work sponsorships which are almost never really there (they often dont know that). Then one of three things happens -- or all. They end up working in the restaurant business as hostesses, bus "boy" positions, eventually waitresses. They start sleeping with some guy who takes them around, pays for everything, and possibly provides a place to live. If they want to make real money, they start dancing (strip or go-go). At the end of the summer their Visa expires and I'd say about 70% leave and 30% stay.

So... it probably wouldn't have been sex trafficking, this is all way too dramatized. The J1 girls who come here are often offered to dance to make more money. And they either refuse and struggle to find a job in some crappy lounge or restaurant or they go dance and make pretty decent money. I'm not saying that this is a wonderful situation, it makes me hate living in this city, but its so common and a far cry from being locked in a room to be sex slaves.

I known some of these girls that are still here and still dance, and know a few that are still here and still work at lounges. Last year, a friend of mine was walking her dog and met two J1 students on the board walk at Brighton Beach sitting on their luggage. They had to make the same trip from somewhere to New York for a job. Of course the job wasn't really there. My friend let the couple stay in her living room for most of the summer and they eventually found a job at a restaurant.

Living in Brooklyn, this is a fact of live. Its nice that these particular girls have gotten some help, but starting this week "the J1s are coming" and this sort of thing is going to happen a thousand times over in the next couple of weeks to a month. Non of it was surprising to read... which, I guess, is pretty depressing considering that I live in the middle of it.

<comment><USER3> Yeh, as I was reading it the same thoughts came to mind - not exactly trafficking but one step behind it.

If they had been trafficked they'd probably not stand a chance. It's possibly not as big a problem in the US as, really, flying girls out is pretty impossible but in the UK (and I guess the rest of Europe) there is a problem with girls being brought in from Eastern Europe etc. All with false papers. I'd say I see one, maybe two, cases a month where we are investigating visa forging. It's highly organised and "well" executed.

</comment></comment><comment><USER4> Here's the Ask MeFi thread: [http://ask.metafilter.com/154334/Help-me-help-my- friend-in-D...](http://ask.metafilter.com/154334/Help-me-help-my-friend-in-DC) and here's the MetaTalk thread: [http://metatalk.metafilter.com/19304/The- kindness-of-strange...](http://metatalk.metafilter.com/19304/The-kindness-of- strangers)

It was amazing to watch this unfold, mainly because I continually get reminded of how varied and amazing MeFites are. One MeFite is at the US Department of State who works with J visas and does _precisely_ this work.

</comment><comment><USER5> A bit of a side-note, but Dan Reetz (the MeFite in question here) released a great album a few years back, it's free to download and well worth a listen: <http://www.fakeproject.com/you_are_not_dead/>

I'd also say that for anyone here that's considering it the $5 charge to join MeFi is the best money I've ever spent.

<comment><USER6> I actually was grandfathered-in from eons ago, so if you used MeFi a long time ago, you might still have an account sitting there. I didn't know about the $5 charge until a year or so back.

</comment></comment><comment><USER7> Anyone who wants to know what the future looks like, pay attention. We are going to see things like this happen more and more and on a larger and larger scale.

<comment><USER8> While it would be nice, I'm not sure this is true.

Meta filter is a pretty unique online community in that it is a very large group of people who are sincerely helpful in a almost unlimited number of subjects. As the article says, there are many much smaller cases of similar actions of humanity and helpfulness on askmefi on a fairly regular basis.

It would be great if the proliferation of this type of online community was the future, but Mefi has been around for a long time and, in my opinion, truly separates itself from the rest in terms of helpfulness of the commenters and consistent quality of the content.

HN and some other communities are equally helpful from time to time, but I have come across none that match Mefi in consistency and breadth of subject matter. (obviously HN isn't trying to match in breadth of subject matter.)

I guess what I am saying is that with most online communities I accept that the other people won't necessarily act with the same compassion as they would with friends they have IRL. Mefi has done a pretty extraordinary job maintaining a community in which this standard of human decency is pretty well kept.

tldr: Mefi is a unique online community in that it's community members act more like they would IRL in confronting one another's problems.

<comment><USER9> I think it's reproducible if someone building a web community wants to have a similar level of user community - but it requres doing the two things that typical web startups won't do - have paid, full-time moderators who are in the top tier of intelligent users, and don't just try and grow the site forever.

Reddit is a good example, the subreddits are often as good as any other web community, but the site as a whole is trending down to Digg-levels and worse.

</comment></comment></comment><comment><USER10> For completeness, a counter-point to what happened: [http://www.miconian.com/2010/05/23/metafilter-and-the- russia...](http://www.miconian.com/2010/05/23/metafilter-and-the-russian-sex- slaves-that-never-were/)

(It was posted by someone who actually went to the club the young women were supposed to go to. I have no involvement in this at all, but thought HN would appreciate another voice.)

</comment><comment><USER11> This is exactly the same principle as the Chinese Human Search Engines but with a infinitely better goals.

I think the next stage of the internet is fostering of the bleeding smart mob. That's powerful. I am so glad that MeFi was invigorated to save those girls because it might be that it was the only thing powerful enough to catch it so early.

</comment><comment><USER4> Hey, does anyone here have the AirBNB founders' info? It'd be really nice of them if they could help to arrange a donation of an apartment(s) through July in NYC for these girls.</comment>


Light-based memory chip is first to permanently store data - <AUTHOR> http://news.sciencemag.org/physics/2015/09/light-based-memory-chip-first-permanently-store-data <comment><USER2> Url changed from [http://www.engadget.com/2015/09/28/first-nano-photonic- memor...](http://www.engadget.com/2015/09/28/first-nano-photonic-memory- chip/), which points to this.</comment>


ITA Software's airline fare shopping engine - <AUTHOR> http://matrix.itasoftware.com

<comment><AUTHOR> I had thought that this was only available to travel agents. The interface is so much more powerful than Orbitz etc. To see a description of the syntax, click "Help" (at top), "The ITA Route Language" (on left).

The tricky part is booking the flights it finds without talking to a travel agent.

Edit: An old email about the implementation: <http://paulgraham.com/carl.html></comment>


Ruby Programming Language (alternative Ruby home page) - <AUTHOR> http://rubylang.info/

<comment><USER2> I found this GitHub issue/comment really fascinating:

 _"Hi. I'm Jean-Denis Vauguet, one of the maintainers of ruby-lang.org (working on the French flavour).

After discussing a little bit with other active VIT members, it seems I stepped up to port ruby-lang.org to a git-based, static website generation process too. I'm using Jekyll, extended with custom tasks for generating, parsing, Sass compiling, multi-lang support… I'm also in contact with postmodern, who started its own port a few days ago (idea: merging good ideas and focus on one project). So there is kind of a "official" effort going on, despite we did not published yet (hopefully soon).

_ _In the mean time, your port looks great :) But I do see it is not quite a "port", but an overhaul, with a different organization (links to third-party websites, for instance). I can't speak for the Ruby officials, for I'm not, but I do see this may result in a duplicated effort, and a confusing "content- hydra" (two websites with the same name, newcomers puzzled, duplicated content, etc.). So what should we do about it?"_

<https://github.com/rubylang/rubylang.github.com/issues/4>

It would be interesting to see how a major site like ruby-lang.org being managed and run through git would turn out.

<comment><USER3> I moved my own site to Jekyll recently. With modern javascript techniques a "static" site can still be pretty interactive without any dependencies on fragile software plumbing. It's also really fast.

<comment><USER4> I've been using NestaCMS for a year or two now, kinda feel it's the best of both worlds. Low-tech enough that I can just write a markdown file in vim if need be, but the flexibility to do something dynamic if the need arises.

</comment></comment></comment><comment><USER5> Hello. I started rubylang.info and I feel that I should say this. I had contacted the team who maintains ruby-lang.org and it is what actually inspired me to create this so called "fork". The way they're doing things right now is discouraging and much of a hassle for anyone not in the "team" to contribute the slickest bit of change. This new site solves this problem.

</comment><comment><USER6> While the official website has it's flaws it actually doesn't look too bad. This design however uses the color red way too much and blocks such as the news feed take up too much space. I also don't see how this would directly benefit the Ruby community but that may be my personal opinion.

<comment><USER7> The great thing about this new site is that you can fix it!

<comment><USER6> Except that I don't want to, nor do most other developers out there. Not because they necessarily lack interest but because there's a pretty good chance they're busy enough already.

<comment><USER5> You can say the same thing for any OSS project but then why is open source so damn popular? If you don't want to contribute then that's your own decision. No one is forcing you to do anything.

<comment><USER6> Because people contribute whenever they're interested in it, this is great in many different ways. However, using an open source project as an excuse to not do the work yourself (regardless of the reasons or the problems) is just silly.

<comment><USER7> Using open source as an excuse to do the part of the work that you are best qualified for, and opening up the rest to respective experts, is a pretty good idea.

</comment></comment></comment></comment></comment></comment><comment><USER8> The other day there was some discussion about how some information on the Ruby home page is out of date or incomplete, so I guess this is a response to that. Well, good, you can't have too many "home" pages for a programming language. This should make things much less confusing for newcomers.

<comment><USER9> Concur. Fix the process around the existing web site. "Forking" should be a last resort.

<comment><USER7> A collaboration with the maintainers of the original site is likely to inherit its problems. Creating a new site is much easier than trying to modify people's behavior. The duplication of effort is not a significant issue for a project of this scale.

A similar thing happened with Rubyforge -> Gemcutter. It was a pretty fast and clean transition. This is really how the Ruby community rolls. The "official" whatever is whoever is doing the best job of it at the moment.

<comment><USER9> You know what? I agree.

<anecdote>

Ruby is going the way of Java and for the same reasons. Rails originally made easy things easy and hard things possible. Now, for novices, easy things are harder. Java went the same route largely as a result of the debacle know as J2EE.

Java suffered the problems that it did because there was the "one true way" of J2EE until Spring eventually came along and made it (marginally) better.

Merb provided that for Rails. Now there's no more Merb.

</anecdote>

The point: we, the Ruby community, are suffering our own success. Popularity leads to people leads to bureaucracy leads to mediocrity. See "JSF".

As a result, this "fork" makes sense to me. Unfortunately, it's just a drop in the bucket. Ruby.next is coming and it's called Javascript (by way of Node) and Clojure (by way of those Rubyists who are LISP obsessed and still use Java).

<comment><USER10> _The point: we, the Ruby community, are suffering our own success. Popularity leads to people leads to bureaucracy leads to mediocrity. See "JSF"._

Isn't this (rubylang.info) a great example of _lack_ of bureaucracy? Someone isn't satisfied with the current ruby-lang.org, so instead of trying to go through lots of bureaucracy, they rather make something completely new?

<comment><USER5> The current bureaucracy is flawed. It is not community owned but government by a "core maintainer" group where decisions are not publicize nor is there a roadmap anywhere.

I went through the necessary communication channels BEFORE I started this and what I experienced from that is the result of rubylang.info.

</comment></comment></comment></comment></comment></comment><comment><USER11> I see your vision, but first of all I really think that this should be done in coorporation with the ruby-lang.org. Also, you need a designer; please don't take it personally, but the design looks like 30 min in Photoshop. Sorry for being harsh, but I love Ruby community and I would not stand a ugly site being the entry-point. The ruby-lang.org site is actually really beautiful, it's just the irrelevant information on it that is the problem.

<comment><USER12> _Also, you need a designer; please don't take it personally, but the design looks like 30 min in Photoshop. Sorry for being harsh, but I love Ruby community and I would not stand a ugly site being the entry-point. The ruby- lang.org site is actually really beautiful, it's just the irrelevant information on it that is the problem._

Wow. There are so many wrong things about your comment I don't know where to start. You're borderline insulting with a criticism that has zero information apart from the fact that you hate it, and then you act like you had to do it to save the Ruby community. And then, icing on the cake, you announce that the official Ruby site is "is actually really beautiful" like an absolute truth.

Be constructive. If you can't, have some respect for other people's effort and keep your hate to yourself.

<comment><USER11> That was not hate, that was opinion. Maybe it depends on your own mental state (bad day) when you read that, read it again some other day. If you get the same feeling, then I would say we bring our opinions in different ways. Don't pain me as a wanna be saviour please, I've been doing Ruby since 2005 - I got right to tell what I believe in for Ruby community.

</comment></comment></comment><comment><USER13> The example Ruby code jammed into a narrow column like that doesn't do much do demonstrate how beautiful Ruby code can be.

<comment><USER14> Agreed. One of the things i liked about ruby-lang.org was the prominent display of demo code.

</comment></comment><comment><USER15> I think root of the problem is, do we want a site that reflects in-the- trenches Ruby developers' reality, or a site that reflects the Ruby core team's vision?

It seems that there's room in the world for both, they are different needs and perhaps trying to satisfy them with one website is a mistake.

</comment><comment><USER9> Learn Ruby the Hard Way was not written by Zed. It's Zed-supported. Different author though.

<comment><USER16> Off topic, but Umberto Eco's novels in English are still written by Umberto Eco, regardless of the translator.

<comment><USER9> For a book about "MOAR CODEZ!" you're giving Rob Sobers short shrift.

<comment><USER16> Rob seems to have done a great job translating the python-ness to ruby-ness, but Zed did the hard work -- he created the approach and wording for Python.

I haven't tried to compare them, but my interpretation of Zed's comments is that most of the text is still Zed's.

Edit: You might be short shrifting Eco's translator. Reading his stuff is hard enough, translating must be a royal PITA. </tongue-in-cheek>

<comment><USER9> Eco's work is tough. So, yes, maybe I'm undervaluing the credit of "translator".

</comment></comment></comment></comment></comment><comment><USER17> From the official site:

 _Content available in English, French, Japanese, Korean, Polish, Spanish, Portuguese, Simplified Chinese, Traditional Chinese, Bahasa Indonesia, German, Italian, Czech, Bulgarian and Turkish._

Internationalization is one key thing the alternative version is missing.

<comment><USER5> The project was started less than 48 hours ago. Isn't quite finished yet. :)

</comment></comment><comment><USER18> Call this "Ruby Links" and make it less a temporary clone, more a permanent and vital resource.

</comment><comment><USER19> Easy on the glow/gradients, buddy.</comment>


Bringing Wide Color to Instagram - <AUTHOR> https://engineering.instagram.com/bringing-wide-color-to-instagram <comment><USER2> Looks like the OP link is 404'ing.

Here's the working one — [https://engineering.instagram.com/bringing-wide- color-to-ins...](https://engineering.instagram.com/bringing-wide-color-to- instagram-5a5481802d7d#.to4pqoyr4)</comment>


The emotions we feel may shape what we see - <AUTHOR> https://medicalxpress.com/news/2018-04-emotions.html <comment><USER2> I see this article. It is interesting research, and matches well with what I noticed from my meditation practice (in-so-far-as how emotional state profoundly colors interpretation of reality).

I have friends and family on both sides of the political debate here in the US, and I see a lot of theatrics and narrative building.

How much of the political theater is affected by this?

I am thinking, a lot more than we'd care to admit.

<comment><USER3> >How much of the political theater is affected by this?

IMHO the political theater is not affected _by_ theatrics and narrative building. Theatrics and narrative building _are the very backbone_ of politics. Want to push a bill you consider appropriate? Nope, you'll have to generate outrage, participate in a couple of speaking engagements at conferences click-baity names, tweet a snarky remark that simplifies an otherwise complex topic to a petty "exchange", pander to the demographics most likely to agree with you.

You're pro-gun rights? Hope for a terrorist attack! You're pro-gun confiscation? Hope for a school shooting! It's so disgusting, it's utterly worrying, sad, disgusting to see us engage one another in this way.

Theatrics, opinion shaping, narrative building __is __the backbone of public spaces, therefore also of our media, of course also of our culture and definitely of our politics.

If I had to coin a snarky sentence to shape the future for years to come I'd plaster the following everywhere as a warning to everyone regarding the very dystopian future we are building:

 _It 's about emotions, stupid! Oh, and they know._

Social media, online communities, memes, viral content, Machine Learning all are very useful tools in furthering the feedback loop that lead our emotions to only spiral more and more out of control.

<comment><USER2> I had thought much the same before, focusing on the theatrics, until I started working with a startup with lawyers and for lawyers. There was also a family matter that deeply affected my wife and I. My wife worked with a lawyer to regain custody of her child back from a screwed up situation. The product I was helping to write was related to what was affecting my family.

There is a lot of thought put into policy and governance -- of what to do when the group of people are too large for everyone to know each other. Further, when I was introduced to the book _Crucial Conversation_ , I realized that resolving conflicts among people without shared narrative _does not have to happen this way_. The book talks quite a bit about the typical reactions to crucial conversations -- violence and silence. That's exactly what I keep seeing when I see people talk about politics now, in the Trump era.

So I disagree: the theatrics and narrative building is not the backbone of politics, though I will agree that those theatrics and narrative building is one of the core tools people typically use to gain and wield _political power_. There's the tool -- which may have alternatives -- and then there is what you are trying to accomplish with that tool.

And thus, I come back to: How much of the political theater is affected by this? Isn't there a way for people to be inclusive _and_ respectful of individuals?

</comment></comment></comment><comment><USER4> Meh... this is a poor interpretation. Subjective emotion is a response to prediction on the nociceptive inputs we get. So we get the input of the unseen happy thing, and our brain tries to make a prediction of WHY that thing is happy, then if it guesses right we feel happiness and if it guesses wrong, we feel unhappiness. Roughly.

There are a lot of good studies on this, they're all pretty technical, but seem very well done. I can't find with a quick Googling the one I came across (in the context of researching VR and potential consequences of 'virtual embodiment') a few days ago, but this is in a similar vein (though more focused on pain than on general emotion): [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4529956/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4529956/)

</comment><comment><USER5> >That is, we do not come to know the world through only our external senses - we see the world differently when we feel pleasant or unpleasant.

So, what they're saying is that pessimists have been right all along!

In seriousness, though, I consider myself a very logical person, I've often wondered I am simply good at rationalizing away emotions that truly drive my thinking. Begs questions on the origin of cognition.

Are we rational beings experiencing emotions, or are we emotional beings hiding behind a facade of rationalism?

<comment><USER2> From my own experience meditating (various forms of observation of mind, awareness, identification, arising thoughts, emotions, and sensations) and dealings with people, I think we're emotional beings hiding behind a facade of rationalism. Neurodivergents, such as those with the psychopathy "warrior genes" are probably one of the few exceptions.

It's my experience that most people don't recognize when emotion is coloring their otherwise 'rational' thinking.

<comment><USER6> Psychopaths feel emotions, they are just disconnected with the emotions of external entities (simplified summary). Is there something else I'm missing when you say that?

<comment><USER2> Psychopaths feel very little emotions, particularly emotions around bonding with other people. They can get angry or irritated, but they won't feel things like fear. People with those psychopathy neural architecture cannot be motivated through pain, fear, or punishments though they can be motivated through rewards if it is framed in a way that makes rational sense.

In the clinical world, there is a strong coupling of psychopathy-the- neurological-architecture, and anti-social personality disorder, which is defined more along the lines of behavior rather than genetics or neuroscience. On Quora, there is a community of people with psychopathy that writes about their experiences, advocating for the decoupling of psychopathy and anti- social personality disorder -- and if you think about it, that kind of advocacy is very rational. It's not because they want people to understand them, but because the misunderstanding people makes dealing with non- psychopaths more inconvenient, and sometimes irritating.

One Quoran whose posts are a good starting point to read up on is Athena Walker. Reading Walker's posts and others like her's, is a great exercise in finding out just how much emotions and narrative you project onto the things you read. There are a lot of things we neurotypical people think is rational, but they are experienced through the lenses of emotions coupled together with social bonding and shared narratives with other people.

Just as an example ... Years ago when I was just starting out in martial arts, I found myself in the company of combat veterans. None of them are psychopaths. One of them, a senior student, was talking about having to clean up a friend who killed himself. He shot himself in the head with a shotgun. When the senior student went to go clean up the house, he had scrape the pieces of brain and fragments of skull into the bag. I winced and made a face, and both my teacher and the senior student said: that isn't a person anymore; it's a corpse. They had read my face and knew what was going into my head. That I was feeling the mutilation of a living person, that the person is suffering and in pain, because _I_ am simulating that suffering an pain as if it were my brain and skull fragments blown out. And the disgust with flesh and blood.

This is pretty typical of how neurotypicals feel and think about death if they had not spent some time seriously examining their beliefs, thoughts, and feelings about death. At some recent point in my life, I realized I would not give up my empathy -- it isn't so much that it makes me human as it is a part of who I am, just as the lack of empathy is part of who Athena Walker is -- but I can have empathy and be rational about it too: that's a corpse, and someone suffered and tried to end that suffering.

</comment></comment></comment></comment><comment><USER7> Is attention and mood such a new concept that we need an entire article for it? Am I the only one that sees this as obvious and intuitive? You only look for what's relevant to you. There's no need to "see" the vast majority of things you come across every day.

<comment><USER8> There are many ways to study attention and mood. What I took from the press release which appears to be novel (though I've not read the original research article) is that our higher-order representations of facial emotions are able to be influenced by stimuli presented to the participant unconsciously. Although the participant was not aware of the happy faces being presented to them, their representation of the emotion of a separate face was affected. This is very different from the obvious "our mood influences what we attend to in the world".

Also highlighted in the press release is the fact that this was robust for unconsciously presented happy faces -- it is unusual for positive stimuli to have a stronger effect on most psychological measures. This is usually due to negative stimuli causing higher levels of arousal (as far as I know, though I'd need to confirm this in the literature), so it's really due to a confounding of valence and arousal.

My main question from this article would be how they controlled for low-level visual properties of the stimuli presented. The hope is that their upside-down face experiment was able to account for any possible confounding of face emotion with something like spatial frequency characteristics influencing the participant's subjective judgement of the neutral face, but there will never be a way to fully claim that it was the emotion of the face alone. If you fully control the underlying visual properties of the stimulus, you remove the emotion!</comment></comment>


How to delete HN account completely? - <AUTHOR> Is this even possible? <comment><USER2> As far as I know you can't just delete your account completely, deleting all your comments would be unfair, since the whole discussion would likely break apart.

But you can try to send an email either at email@example.com or email@example.com and ask to make your account inactive, you could also change your email and delete any personal information.

<comment><USER3> Please use email@example.com for all questions about HN.

</comment></comment><comment><USER4> Here are a few previous discussions that might give you, well, hundreds of comments which will answer your question.

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

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

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

[https://news.ycombinator.com/item?id=1047101](https://news.ycombinator.com/item?id=1047101)</comment>


Where Yegge's Wrong - <AUTHOR> https://www.tbray.org/ongoing/When/201x/2018/03/26/Yegge-Being-Wrong <comment><USER2> > Steve says Android is Google's most important channel. That's only if > you don't measure by money. From a business point of view, AdWords is > five times more important than anything else.

How is AdWords the channel? It seems like the product to me, while Google Search is the vehicle for delivering them.

>My personal opinion is that Android originally existed to prevent Apple getting a monopoly lock on the hand-held market and lock Google entirely out of mobile ads.

Apple's business model doesn't lend itself to getting a monopoly lock on any business they're in. Apple was always destined to having a nice chunk of the premium market, but someone else would have sprung up to serve everyone else. It could have been Symbian, Blackberry, Microsoft, etc.

<comment><USER3> I think it's easy to look at it with hindsight and say that Apple's positioning was inevitable, but I certainly didn't feel that way ten or even five years ago. As is, google pays Apple already a lot of money to be the default search engine on their phones. I imagine that number could have been triple that if no credible rival emerged in the medium/high end phone space.

<comment><USER4> There's about a 0% chance of a company that doesn't license or open up their platform not having a credible rival, because by default, there's a huge open market they're leaving on the table. This is the same with Tesla, and why Tesla cannot be more than a niche member of the EV market in the long run.

If anything, the companies we _need_ to worry about are those who offer extensible "open" platforms that build partnerships with most of the industry, while retaining control and decisionmaking authority over them all.

<comment><USER3> What's wrong with a possible universe where the iPhone is the only modern smartphone, ubuntu/sailfish/Firefox rules the low end, and Tizen or something is keeping one manufacturer alive in the medium end? There are very strong network effects to an app ecosystem, and you can imagine a future where all the high end users are on iOS.

<comment><USER4> If Ubuntu and the like were successful with a strong ecosystem on the low end, why wouldn't they find someone to build a high end device? Companies that just... don't like profit, perhaps?

Android won it's success in the budget market, and that gave it the ecosystem it needed to survive in the high end market.

<comment><USER3> The network effect is a chicken and egg problem that can't be solved with just finding a partner. A large part of why android succeeded because it solved the chicken and egg developer - user problem by being early enough, and by having a company like google put their full support behind it. Other platforms were late to the table incompeting with iOS (windows), or didn't have the clout of a large competent software company backing it, or both.

<comment><USER5> It seems that Windows phone would have filled the Android mid-range/licensed niche if Android wasn't already established.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> > And last time I looked, all the coolest, hippest, "thought-leader-ish" > people I know are building radical JavaScript frameworks.

Is he being serious? I can't tell if its a joke or not.

<comment><USER7> This is the man who wrote "Execution in the Kingdom of Nouns" ([http://steve- yegge.blogspot.com/2006/03/execution-in-kingdom...](http://steve- yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html)), one of my all-time favorites.

Of course he's joking.

<comment><USER8> > And last time I looked, all the coolest, hippest, "thought-leader-ish" > people I know are building radical JavaScript frameworks.

Tim Bray wrote this, not Steve Yegge.

</comment></comment></comment><comment><USER9> Where Yegge is wrong is that he thinks somehow Grab has moral authority or high ground over Uber. Once he finds out all the scummy things they and everyone else has done in South East Asia, he might have second thoughts about his holier-than-thou attitude.

<comment><USER10> Any pointers to "all the scummy things"? Or even some.

</comment></comment><comment><USER11> > Steve correctly notes that front-end programming is hard, but leaves out > maybe the single most important reason why: It's super-hard to unit-test > properly.

Can anyone elaborate on this?

<comment><USER12> \- UI code spends most of its time interacting with a UI API (Android view framework, whatever iOS uses, DOM/CSS in web). These APIs are enormous and are rarely designed with testing in mind. Mocking or faking the pieces of API that you need to interact with is frequently a daunting or impossible task.

\- Followup to the above: because so much of the "work" involved with UI code involves interacting with another API, usage of that API tends to spread itself through the entire codebase like cancer. You can create a careful separation of concerns, but it takes a lot of upfront work, verbose boilerplate code, and constant vigilance -- if you're just handed an existing UI codebase you won't have that luxury.

\- UI code is highly stateful and highly mutable. A core skill in UI programming is managing your app's enormous state profile. Single-path, whole- world rendering techniques like React/other shadow DOM techniques really help here.

\- UI is highly temporal. It needs to change over time. Testing anything to do with time is an enormous headache. Animations can force you to temporarily separate your underlying state from its representation, which is a testing nightmare. But just in general, writing unit tests that involve time passing is infuriating and fragile (even if you can control time passing via a mocked clock object).

\- A lot of core functionality in UI involves different pieces handing off to each other -- one window transitions to another window, etc. To test that properly you need integration tests, but now your integration tests also need to interact with the underlying OS/browser (because you can't separate any of that stuff out). So your integration tests are in general way flakier than you can get on UI-less systems that really only need to worry about faking out a DB of some kind.

<comment><USER13> Not to mention that UIs are visual, i.e. defining what is "correct" in terms a computer can understand is very hard. There are dozens of criterias (colors, spacing, borders, shadows, fonts, behavior, etc.), and often what is accetable is fuzzy and sometimes even subjective.

Take spacing: if something moves 200px it's probably broken. But a couple pixels off are usually fine. Unless those 2px are the vertical position of an icon inside a button or two things that need to align. Where do you draw the line? Humans are pretty good at spotting when things look off just by looking at a screen. Computers, not so much (yet).

</comment></comment></comment><comment><USER14> So it looks like Tim Bray is not refuting Yegge's central point: that Android is vulnerable to "stealing" due to someone else (the RN community, which i have to point out is much bigger than Facebook at this point) developing a true xplatform alternative. Thats a very non obvious conclusion and I went from total ignorance to completely agreeing with it in the span of one post. Do people actually agree that Android is that vulnerable?

and what -is- the deal with Flutter? Is it Dart 2.0?

<comment><USER15> FWWIW, the article was discussed a bit in the Android slack I hang around, and quickly dismissed.

The consensus is that there are always big downsides to cross platform solutions and that it is not going to change anytime soon. They have their niche, but currently have zero chances to replace native.

Flutter is a runtime for Android and iOS powering apps written in Dart. Flutter itself is written in c++ and Dart.

The main originality is that it uses it's own runtime instead of using the platform widgets. It is not as original as its creators would like you to believe though since that's basically what all the cross platform toolkit running in a webview has been doing. The difference is that performances are not atrocious with flutter but they still fall short of being any better than native apps.

Flutter could be a big deal if/when Fuchsia becomes a thing it is adopted as its main app runtime. And by 'become a thing' I mean that it completely replaces Android.

You would get native dev on 'android z+' and high quality iOS ports very easily.

</comment></comment><comment><USER16> > _Steve correctly notes that front-end programming is hard, but leaves > out maybe the single most important reason why: It's super-hard to unit- > test properly_

Yeah, no, that's hardly the reason.

Besides, it's wrong. It might be harder to functional or integration test properly, but unit-testing front-end code properly is not an issue.

<comment><USER17> 100% agree on functional/integ/end to end testing being harder for fronentd. On the other hand, nobody seems to unit-test Javascript where I am. Maybe they're just silly, or maybe it's harder, maybe it's just a lack of tooling.

As an aside, it is actually _more_ important to unit test lest "safe" languages. E.g. Java ensures you're passing correct types around at compile time. But with JS/Python et al. you need to unit test to check that you're passing, say a String rather than a tomato.

<comment><USER18> >nobody seems to unit-test Javascript where I am

That is an engineering culture thing. I work on a small JS project (node.js server + React FE) that has >95% unit test code coverage. It isn't even difficult to do - it is just not a major part of a lot of front-end teams culture.

</comment></comment></comment><comment><USER19> > I think a whole lot of programmers would rather work in high-level > languages like Ruby and Python

That doesn't mean that C++ programmers aren't looking down on those people, though.

</comment><comment><USER20> "Snoot Mountain"

I want a picture of this.

</comment><comment><USER21> It's not like I disagree, but the first point is the same god damn pedantic point that gets hit over and over again, that Google's customers are advertisers rather than users. We get it already, and it ignores Yegge's actual point to say the same thing we've heard a million times before.

If I never have to read "Unless you're paying, you're not the customer you're the product" again, that shit will be too soon. If they don't make something that people actually want to use, there will be no audience for advertisers. Come on.

Lastly, I thought it was funny that both Yegge and Bray can agree to take shots at JavaScript. There's another thing you'd think nerds would get tired of already.

<comment><USER22> > Lastly, I thought it was funny that both Yegge and Bray can agree to take > shots at JavaScript. There's another thing you'd think nerds would get tired > of already.

Why? JavaScript is really, truly, awfully horrible. It's a local maximum which could easily be escaped with just a very little bit of effort, and the fact that no-one has done so is one of the strongest-possible condemnations of our industry. JavaScript is a shame, an embarrassment and a squandered opportunity. When one thinks that we could have had Scheme, and instead thanks to a benighted Netscape executive we're stuck with JavaScript forever — it is to weep.

<comment><USER23> Eventually WebAssembly will allow you to use whatever language you want.

> When one thinks that we could have had Scheme

This may have been true 5 years ago. I'm probably the biggest Scheme fan there is. I've created assemblers, compilers, and even started an OS in Scheme. I've been using Scheme since the late '90s.

Modern ES6 and beyond JavaScript is quite nice. I really don't miss Scheme at all. Scheme, mind you, was incredibly limited in R4RS and R5RS, around the time Netscape would have adopted it anyway. It didn't even have a module system, much like old JavaScript. We would be stuck with the largest problem still facing JS: multiple sucky module systems requiring a webpack-like monstrosity.

<comment><USER24> Single-threaded in a multicore world is nice? Implicit type coercion on par with PHP is nice? Implicit var args are nice??? (That's the worst part by far). I would choose pretty much any non-shell mainstream programming language over JavaScript for a program with results I care about (that is, a useful program). Throwing a bag of syntactic sugar (ES6) on a rotten language is meaningless.

<comment><USER25> > Single-threaded in a multicore world is nice?

Javascripts approach to threading - default single threaded event loop, but with message passing to communicate with other threads is actually a pretty good model for people who want to write multi-threaded code that doesn't break. This is important when coding for a very open platform like the web. Confusion about what is running on the UI thread and what isn't and how to communicate between them is the kind of error that pops up in java ui code. I wouldn't want that for the web.

Besides, the threading approach is more about the runtime rather than the language. There are lots of clustering and threading libraries on npm if you want them for your server-side code, and you have WebWorkers in the browser.

Sure, the implicit type coercion (pretty much everyone hates this) and var args (hasnt bothered me as much as it seems to have bothered you) were not good choices, although compare it to other languages of the time - first class functions were by no means universally available and now almost every modern language has them. A literal notation for maps in the language was a great decision too. Prototype inheritance may be a little weird but it is elegant, more general and radically simpler than class based inheritance.

Javascript certainly has its warts but I find it fairly productive to code in. Plus it's paired with a runtime that has seen a shocking level of genius engineering over the last 10 years. The speed of iteration is unparalleled. The reach of a deployed piece of code is unique and likely to remain so for the foreseeable future. There aren't many other platforms that have developer tools for inspecting a running system, visualizing ui, network and detailed render performance that are as good.

<comment><USER24> > Javascripts approach to threading - default single threaded event loop, but > with message passing to communicate with other threads is actually a pretty > good model for people who want to write multi-threaded code that doesn't > break.

This is simply wrong. The "approach" to threading is that there is none. It's single-threaded. You cannot write multi-threaded code directly in JS. On the server side, this can lead to things like a naive fetch after cache miss denying service to your web application. Nothing on the queue can run until the current function call finishes. Even lovely Python doesn't have this issue because, while the GIL is a PITA, Python has real threads, and can switch during a function call.

To be clear, I'm not talking about web browser programming, where JS for some time has been the only option. I'm talking about the ridiculousness of server- side JS when we know clock speeds are hitting a wall and that parallelism is the only way to squeeze out more performance. Steele, Armstrong et. al. have lectured at length on this topic.

> There are lots of clustering and threading libraries on npm

No, there aren't. Running several node processes via PM2 is not threading. _You cannot use multiple cores directly from the same Node program unless you drop down to C++_.

You can vaguely do it in the browser, but the limitations on communications between the main thread and web workers, especially with SharedArrayBuffer being off-limits post-Spectre, are pretty much non-starters. It's a nice option to have for specific cases (games programmers take advantage of web workers to read models without blocking the main thread, for instance), but it's only bolted onto web browsers.

<comment><USER25> > You cannot use multiple cores directly from the same Node program unless you > drop down to C++.

Well, someone has to drop down to C++, but it doesn't have to be me (node webworker-threads). This is the same as in most languages.

> you cannot use multiple cores directly from the same Node program unless you > drop down to C++.

As I said in my comment, _threading is primarily a runtime thing, not a language thing_. There are javascript runtimes (napa.js, node webworker- threads, nexusjs, browsers) that have threading (even by your restrictive definition that doesn't include threads layered onto child processes like the npm package 'threads' does), just as there are runtimes for e.g. java that do not (and the bulk of the threading support in most other language runtimes is also written in C++ so it seems churlish of you to complain about that in javascript runtimes). Most languages do not need significant changes to their syntax or keywords to support multithreading.

Maybe you're comparing node.js specifically (where I think that for a long time there was a belief among the leads that letting the OS manage processes was a better approach - it's been interesting to watch this same argument play out in the rust community) with something like Go which has pleasant primitives for concurrency built in as part of the language. If you are, then to some extent I agree with you - something like goroutines might be really nice in javascript and is arguably better than what the js community has, but I also stand by my runtime/language distinction. Goroutines are not OS threads. You can run go programs with GOMAXPROCS set to 1 without changing the _language_ at all.</comment></comment></comment></comment></comment></comment></comment>