Ask HN: How do you identify a great software developer in an interview? - <AUTHOR> Several young (fresh out of college) engineers on my team that I interviewed last year impressed me with their intelligence by way of excellent algorithmic thinking. On my recommendation, they were hired. However, several months into the job, they continue to ask trivial (read: stupid) questions, and don't seem to want to figure things out on their own. Yet other engineers, who I was not impressed by during our interview, have absolutely exceeded my expectations. They have the spirit of a hacker; they dig deep into problems, learn everything within our code base, and are invaluable contributors. How do I identify those people during an interview? Why do my intuitions seem backwards? <comment><USER2> Despite how hard you try, you can't get this 100% right. This is how I approached hiring:

1\. Weed out the truly incompetent. A _very_ simple programming exercise is sufficient. Keep in mind that the goal of the exercise is not to identify a great programmer, but rather to identify those who can't program at all.

2\. Set expectations. During the interviewing process, try your best to work out what you would expect from the individual if hired. Would you expect them to churn out a ton of quality code? Do you expect them to be great at determining business needs and writing less code, but code with a high impact? Is this going to be your go to guy for technology X? Do you expect your junior person to learn Y and Z so they can start contributing after N months?

3\. Communicate your expectations clearly. Make sure the candidate knows what's expected of him or her. Towards the end of the interview discuss how they feel about those expectations. Ask how they plan on going about meeting them.

4\. After hiring: If you get it right great, if not, let the person go sooner than later. You do yourself and the individual a great disservice if you try to turn them into something they are not. Don't try to turn a lump of coal into a diamond. It's a trap. It doesn't work. They will be unhappy and resentful if you try. Nobody likes to be fired (or do the firing) but you have to tell yourself it's best that they get back out there and find the job that they can be happy and successful at.

</comment><comment><USER3> The answer is obvious and right before your eyes: you can't.

This problem has been examined again and again. The only way to find people with sufficient skill in any field is to test them (formal graded test, not idiosyncratic problems).

No one has ever demonstrated a reliable technique for selecting "great" software developers (or great scientists, or great engineers, &etc).

<comment><USER4> Exactly. It's akin to asking, "How can I tell that I've found Mrs. Right (or Mr. Right) during the first hour of talking to someone?"

<comment><USER5> I read about a study a few years back that required participants to spend some time with a member of whatever gender they're most attracted to. Each pair was required to (I think) do something slightly exciting and challenging together, talk about something significant, and look into each other's eyes a lot.

If I remember it correctly, several of the pairs from the study were engaged shortly thereafter.

So the answer to your question is simple, but not for the reasons you think.

<comment><AUTHOR> Would love a link to that if you can find it (assuming it exists somewhere on the interwebs).

</comment></comment></comment></comment><comment><USER6> I think its obvious someone fresh out of college will have "excellent algorithmic thinking" since that's how they spent the last 3/4 years. So in that case you should be spending more time during interviews looking at the more likely areas of weakness, which I'd sum up as "real-world experience." If you're interviewing experienced candidates, then you can generally hazard a guess that their areas of weakness are elsewhere (lack of passion, knowledge and experience that hasn't kept up with the state of the art, etc).

Interviews are all about probing. They shouldn't be a set of rote questions that you apply to every candidate regardless of background. You should make a guess at what the candidate's weaknesses are, and then push on them, push on them some more. This will also help you learn how well they deal with adversity.

Of course, before this, testing is a good way to determine what a candidate's strengths and weaknesses are.

As a total aside, I've found that US Customs and Border Patrol (the ones who do "secondary inspections") are about the best interviewers out there. They probe so much you end up feeling a little violated.

<comment><USER7> > You should make a guess at what the candidate's weaknesses are, and then > push on them, push on them some more. This will also help you learn how well > they deal with adversity.

I disagree.

Find out what they think that their relevant strengths are. This is usually fairly easy because they'll almost always tell you, often without being asked.

Test said strengths because that's where they'll go first, when things are tough, etc. Also, said strengths are probably where you want them working. If your needs are elsewhere, they're not your solution.

If their actual strengths are elsewhere, they've got a problem. Are they worth making said problem yours? (There are lots of reasons why their strengths might be elsewhere, some worse for you than others.)

</comment></comment><comment><USER8> I find that a 15-minute chat about a related topic that's not on their CV (i.e. something tangential to their "career") is a great way to sniff out hackers. Being a hacker myself, I have a very sensitive bullshit-o-meter and fairly varied interests, and I can quickly figure out whether that person is a "career programmer" who will end up disappointing, or someone who's got real passion for the job.

Add to that an intelligence filter (well, I have an affinity for smart people too), and maybe an informal chat about some past projects that they've worked on if still in doubt, and I think I can recognise good programmers even on a text chat system.

In fact, I spotted our last hire on IRC and was about 80% sure that he was someone we wanted to hire, after just 30 minutes of chatting.

Someone already posted the link to my article on how to recognise a good programmer - that breaks down the process I follow (though it's more internalised by now).

</comment><comment><USER9> [http://www.inter-sections.net/2007/11/13/how-to- recognise-a-...](http://www.inter-sections.net/2007/11/13/how-to-recognise-a- good-programmer/)

<comment><AUTHOR> I'm not a business guy.

<comment><USER10> When hiring you should be thinking like a business guy.

You are dealing with a high level of cost (direct cost and opportunity cost), not to mention a massive degree of risk (people are not predictable).

Therefore it is worth some mitigiation - and the budget for it depends on your assessment of (risk * the total cost of a mistake).

The mitigations (such as a few months initially contracting for potential new hires, running internship programmes, recommendation bonuses) can then be costed and compared against the savings you make by reducing the probability of, or the cost of, a hiring mistake.

</comment></comment></comment><comment><USER11> Obvious answer: You probably can't identify the good ones without actually testing them.

I worked at an oil services company where I fairly regularly interviewed candidates. I was 180 degrees wrong on every interview I did. The bad ones turned out good, and the good ones turned out bad.

I would not, knowing what I know now, bother with anything else except a chat with some managers, and a some pseudo-code testing of the kinds of problems I'd expect a computer science grad to be able to solve.

This opinion is backed up by a basic training course for some new hires I gave recently, where my ranking basically flipped around from my first impressions, and the guys with actual real ability didn't really float to the top until after about 10 or 12 hours of training / evaluation. However, this could be shortened easily into an interview format.

There's a lot of people who hide their light under a bushel, and a lot of people who talk a good game, but are basically just warm bodies.

</comment><comment><USER12> I interviewed someone recently, someone much older than me, and it was a strange experience. We talked through his career, early on he had done some really interesting things, attacked some problems from unexpected angles and won big. But as we progressed through his career, it seemed to fade. Gradually all that early fire was crushed out of him and he became a 9-5er. So I thought, do I hire him and maybe try to turn him back into what he was? Or is it too late? In the end he was rejected by the other interviewer anyway, but it was a tough decision, and I could have forced it if I really believed in him. But it just goes to show, an interview can open up more questions about a person than it answers, and there's just no way to tell without actually working with them for some time.

<comment><USER13> You considered hiring someone to work 9-5 on your companies pet project as a way to break him out of his his dispirited 9-5 coder profile?

<comment><USER12> Oh, we'd have found something interesting and useful for him to do a couple of times, then we'd have expected him to identify such things for himself and just get on with it. Him 20 years ago would have loved it and contributed a lot - him now would have to either get it back, or sink without a trace.

</comment></comment></comment><comment><USER14> I'd give a real world problem that is quite large, for example: Develop a school management system which synchronises across several computers.

I'd ask for 2-3 possible ways of designing the architecture. Then just drill down to the details, ask about the technology they would use, how they would go about implementing the algorithmic parts of things, the networking part of things, etc.

You'll get a good sense of how the person works on a high level as well as on a more detailed level. You'd also find out if the person is current on available technologies.

Algorithms are pointless to know, very rarely does one use that knowledge as a real life programmer. I know how quicksort works, but I've hardly ever _needed_ to know, and I've NEVER had to implement it.

<comment><USER12> They don't teach you the sorts in CS because you'll ever need to do them. It's merely a means to teach you Big-O by example. Being able to tell what's O(n) and what's O(n^2) _is_ a very valuable real-life skill for a programmer.

</comment></comment><comment><USER15> I've seen people do great, well-commented code at interview, and then after I recommend them, they turn into mediocre 9-5 coders.

People always misrepresent at interviews; I can't think of a way around this.

</comment><comment><USER16> I ask questions about two things that seem great predictors. The first is interest in music. I'm not sure why but people who can read music and play any instrument well tend to make great programmers. I have no explanation for this. The second question is what the highest level math course they had was and what they found hard about it. This one reflects a personal bias. Knowing the answer for myself gives me a rough measure of how hard the person can think and their ability to handle abstractions.

<comment><USER17> > I'm not sure why but people who can read music and play any instrument well > tend to make great programmers.

For what it's worth I came to exactly opposite conclusion, which probably means that this 'predictor' is a bogus one.

</comment></comment><comment><USER18> I would add, work together with them on a problem that is completely out of their comfort zone and/or background. See what kind of questions they ask, how fast they recognize a dead-end, and whether they learn from what you are trying to explain. If you have a hard time teaching them something new in an interview, probably it's not a good fit.

</comment><comment><USER19> Try to give a (not too outlandish) problem that they cannot prepare for. People memorize algorithms or can adapt their mathematical knowledge, but when given an obscure or abstract scenario, you can get a good idea of how their mind works. Encourage them to take their time and think out loud so you can understand their process.

<comment><AUTHOR> I was never a fan of contrived problems with arbitrary solutions. I agree that it offers a certain amount of insight into the interviewees thought process, but I tend to be a fan of problems with provably correct answers that require some rigor. Perhaps that's my problem?

<comment><USER19> I don't really mean problems that are unrealistic, just ones that are not everyday issues. Along with that, I think "provably correct answers" are mostly good, but it does not have to be just a single possible answer. I think the best problems are the ones with multiple good avenues, but you can still objectively identify if they take a wrong turn along the way.

</comment></comment></comment><comment><USER20> I honestly think too much emphasis is placed on fixed questions and a particular style of interviewing. I've had a huge amount of success with improvised interviews that have both conversational elements drawn from the candidate's resume and some kind of problem solving task drawn from the type of work they will be doing.

</comment><comment><USER21> I would probably give them a problem that involves processing/handling a large copious amount of data and compare their strategies.

Usually the great programmers come up with clean, elegant, efficient and scalable solutions.

</comment><comment><USER22> Set up a competition geeks would be interested in, then try to hire the bests (for your definition of bests).

<comment><USER14> I'd not hire someone who had so few personal ideas to hack on, that he'd do every programming competition that came along.

</comment></comment><comment><USER23> Setup a dozen seemingly random questions that will help you know what personality the person has.

</comment><comment><USER24> Sit down for a _week_ with each candidate, perhaps with all candidates, in a hackathon. Solving a real world problem. Then you can see who is worth what, their strong points, their weaknesses. It costs you time, but it's --in my experience-- worth every minute spent.

<comment><USER25> So how many week-long interviews are you planning to attend?

I don't doubt that this would work in a perfect world, but it's going to be difficult finding candidates willing to go through with it. Right off the bat you're going to have a severely limited pool of talent to choose from. It's also important to think about what kind of candidates would be up for this. They obviously wouldn't already have jobs and that could be for a variety of reasons - good or bad. These candidates would likely have to put off other interviews for a week, assuming they have other leads. Would you pay candidates during this interview process? That's going to have an effect on the types of people you can bring in for consideration. My guess is that in the end you're going to have just as many difficulties finding a suitable candidate.

<comment><USER24> All the problems you bring up are real. Perhaps the hack-together approach could be rephrased as a screening stage, not a hiring stage. No point in blindly hiring people after testing them with some random, one-day stressful sessions.

(It's like scoring students with exams; makes no sense at all, when an informal oral exam would really tell you how much the student knows. Scoring students while having a beer with them may not be conventional, yet my former PhD advisor used that as a pre-screen for hiring new grads.)</comment></comment></comment>


Pfizer seals $160bn Allergan deal to create drugs giant - <AUTHOR> http://www.bbc.co.uk/news/business-34900344 <comment><USER2> Pfizer CEO Ian Read: "This is a great deal for America" looking to pull off largest inversion ever to Ireland to escape US corp taxes -- @SaraEisen</comment>


Ask:  How many people are logged in here right now? - <AUTHOR> Ask:  How many people are logged in here right now? <comment><AUTHOR> It would be cool to see how many people are logged in here right now, next to my login name. And maybe a click on it to pop down a widget showing a pie- chart breakdown by country. It surely changes based on the time of day around the world.</comment>


The Weaponry of Dung Beetles - <AUTHOR> http://www.nytimes.com/2014/11/02/magazine/the-astonishing-weaponry-of-dung-beetles.html#

<comment><USER2> I feel like a kid, but I wanted so, so many more pictures. This isn't a novel, where there is art in descriptions and the imagination is a key player.

I want to see some battles. I want to see 50k dung beetles battling over a single dung pile landing dozens at a time!

I realize the NY Times isn't a picture book but - oh wait! Yes it is in so many other places. Lemme see some dung battles!!</comment>


How we learn how you learn - <AUTHOR> http://making.duolingo.com/how-we-learn-how-you-learn <comment><USER2> [https://www.reddit.com/r/MachineLearning/comments/5icbpj/d_d...](https://www.reddit.com/r/MachineLearning/comments/5icbpj/d_duolingos_halflife_regression_method_for/)</comment>


Boeing's Black: This Android phone will self-destruct - <AUTHOR> http://arstechnica.com/information-technology/2014/02/boeings-black-this-android-phone-will-self-destruct <comment><USER2> Boeing bought Narus in 2010 [http://boeing.mediaroom.com/index.php?s=20295&item=1294](http://boeing.mediaroom.com/index.php?s=20295&item=1294)

That same Narus was who enabled the NSA to illegally spy on telecoms last decade [http://en.wikipedia.org/wiki/Room_641A](http://en.wikipedia.org/wiki/Room_641A)

Would you trust a "secure" phone from people like that?

<comment><USER3> the same narus that brought you narus insight which was an awesome piece of technology, and makes me wonder about the all the outrage we recently had.

one might not like them, but it's one amazing tech company.

[http://en.wikipedia.org/wiki/Narus_(company)](http://en.wikipedia.org/wiki/Narus_\(company\))

<comment><USER4> Egypt, Pakistan and Saudi Arabia. Great. Powering oppressive governments everywhere.

<comment><USER5> Just like Linux and Apache Hadoop are.

</comment></comment></comment></comment><comment><USER6> It's from a defense contractor, so it's probably not very good, yet extremely overpriced.

<comment><USER7> And yet the defense industry will purchase it in droves, thanks to the revolving door and all the special connections that Boeing has.

</comment></comment><comment><USER8> Anyone buying a phone from a company with links to the US military-industrial complex wants their heads examining. And that includes the US govt.

<comment><USER9> Don't VZW and ATT have links to the US mil-indz complex?

</comment></comment><comment><USER10> All phones should have this, just like modern laptops do (or are supposed to). All data should be encrypted, keys inside a tamper-proof chip. If anything has been changed (say, cover removed), then you need to enter the recovery key to certify the device is OK again. If tampering happens while device is active (say, it gets dropped hard enough to knock the cover off), then the device wipes RAM/powers off.

My ThinkPad nominally offers this kind of protection.

</comment><comment><USER11> If I can't see what the phone is running, how sure can I be it'll not be used by a third party to spy on me? Boeing's promise?

<comment><USER12> > _how sure can I be it 'll not be used by a third party to spy on me? > Boeing's promise?_

It's not really aimed at _you_ , it's aimed at the US government....

<comment><USER13> I can think of some vendors who offer source sharing agreements on their closed products for auditing purposes. I'd speculate Boeing would offer the same if the contract is valuable enough, especially if its DoD writing the check.

<comment><USER11> Unless you are given the full build chain and deploy to your own devices, there is little guarantee the software you were given is actually the one running on your devices.

</comment></comment></comment></comment><comment><USER14> I was expecting a small explosive charge in the battery or something cool. This was just lame.

</comment><comment><USER15> Called it (kinda) [https://news.ycombinator.com/item?id=7065897](https://news.ycombinator.com/item?id=7065897)

"...this idea seems like a solid game plan for Blackberry? They could rename their company "Black" ala P-Diddy v just Diddy. :)" Got the name right, wrong company. Nobody is perfect.

</comment><comment><USER16> To be violently hyperbolic; besides impressing non-tech managers who've watched too many Nicholas Cage films, what the fuck is the point of this?

If you have the money to commission a set of devices that self-destruct when tampered with, surely you can afford to have someone put together an Android build with encrypted data partitions?

<comment><USER17> Because at the military level, all encryption is assumed to be compromised. Plus, it is assumed the phone may contain data of national value, so it assumed an adversary would spend unlimited resources to crack the encryption.

For example, lets say "unlimited" is $100 million dollars. How many groups would spend $100 million to lets say, get details about the missile defense system in Taiwan? Plenty.

As other posters have stated, this is not a phone for anyone but only very specific gov't employees.

</comment></comment><comment><USER18> Additional details here: [http://arstechnica.com/information- technology/2014/02/deep-b...](http://arstechnica.com/information- technology/2014/02/deep-black-more-details-on-boeings-new-secure-android- smartphone/)

</comment><comment><USER19> Why Boeing? Why not Motorola? It would seem to come more naturally to Moto; I mean if they built jetliners there would have been no reason to invent the phrase "jet lag".

</comment><comment><USER20> No one read the damn article. You will not be spied on while using this phone BECAUSE YOU WILL NOT BE ABLE TO BUY THIS PHONE IN THE FIRST PLACE.

<comment><USER21> But the people spying you will be using this phone.

</comment></comment><comment><USER22> exploding batteries, Mission Impossible style :D

<comment><USER23> [https://en.wikipedia.org/wiki/Boeing_787_Dreamliner_battery_...](https://en.wikipedia.org/wiki/Boeing_787_Dreamliner_battery_problems)

[https://en.wikipedia.org/wiki/Technology_transfer](https://en.wikipedia.org/wiki/Technology_transfer)

man event:

[http://www.boeing.com/assets/pdf/commercial/airports/faqs/ai...](http://www.boeing.com/assets/pdf/commercial/airports/faqs/airplane_lithium_ion_battery_events.pdf)</comment></comment>


How to Succeed in Silicon Valley Without Really Trying - <AUTHOR> http://www.newrepublic.com/article/119350/amicus-app-how-tech-investors-are-failing-due-diligence/? <comment><USER2> Interesting story but marred by the silly "tsk-tsk, Y Combinator" framing. There's no perfect system for weeding out charismatic deceitful people. (Within the domain of The New Republic, see: Stephen Glass.)

Picking any one case that in hindsight would have benefitted from more digging doesn't mean more front-loaded vetting is a net beneficial thing across a whole portfolio, given the cost, delays, and error-rates of any deep background x-ray into a still-rapidly-evolving young person.</comment>


Ask HN: What's your programming setup? - <AUTHOR>

I'm always looking for ways to make my programming environment and workflow more efficient. So what setup do you have that you think makes you work as efficiently as possible?
Right now I do all my code editing in OSX, and have a VMware virtual-machine running Ubuntu Server. I have a script running that syncs any changed files from OSX to the virtual machine, so I can run / test in an environment as close to production as possible.
Right now I'm looking into creating a base VM, to copy and store in the cloud somewhere, so I never have to setup again, And I really would like to be able to run it in the cloud and access it from anywhere, but that seems too expensive right now. <comment><USER2> Sounds like you're already doing my number one tip: take the time to write tools to automate repetitive tasks. If you do anything more than a few times and it can be automated then it's worthwhile to do so. Python is a great language for writing tools IME though you could use anything you're comfortable with (and has the requisite libraries).

Buying tools, even if they only do one thing, is worthwhile as well. For me the price point where I'll buy is around $20. If you have a simple app that does one or two things I need on occasion -- and the app is relatively current and bug free -- then I'll buy it. I've rarely been disappointed with $20 tool purchase.

Beyond that I haven't found that code editors really have that much advantage over any other (I'm an experienced Vim user and I've used a handful of popular editors with project management features). Sometimes you're forced to use an IDE, like Xcode, or have to work on a different computer/OS, so there's not much point in finding the ultimate editor.

</comment><comment><USER3> I use Vagrant with Puppet and VirtualBox (they have base-boxes you can expand on) to spawn machines whenever I need them and pre-configure them to test stuff. I use the shared folders feature of VirtualBox between host and guest, I don't use scripts to sync stuff (Vagrant will be gaining support for VMWare sometime soon if I recall).

As far as 'hosting in the cloud goes', I just uploaded my base-boxes to my FTP server so whenever I lose the image or need it somewhere else Vagrant will just fetch it for me. Running it 'in the cloud' isn't something I feel like attempting, I prefer to be able to work regardless of a working internet connection.

When it comes to editors, I use Vim with a slew of plugins, most noticeably Vundle, python-mode, NerdTree, Powerline, CtrlP and syntastic (which takes care of calling syntax and style checkers when needed). Vim is available just about everywhere and with a carefully crafted .vimrc you can get the same working environment on any system so you don't have to familiarise yourself with a new set of tools every time. However, there will always be cases where you need to switch to different IDE like XCode if you're doing iOS development, or Eclipse for Java/Android.

Another practice I find useful, store your rc-files in something like git. Setting up a new working environment then just comes down to a `git clone` instead of mailing configuration snippets to yourself from one place to the other. You can even have platform or device specific branches that contain small changes for every environment.

<comment><USER4> +1 for Vagrant. This tool saves lives.

</comment></comment><comment><USER5> Macbook Air 13", two 24" external displays (one is via a USB display adapter).

I have VirtualBox set up with an image of Windows XP for IE testing. Other than that, I run all my webdev projects on my MBA, rather than in a Linux VM in VirtualBox. Homebrew is wicked.

I use PyCharm for my dev environment (I'm largely a Django dev at the moment). Say what you will about IDEs vs text editors (but please don't in this thread, really!), it's a great tool - worth it.

I have Linode VPSes running for staging/testing purposes that mirror production systems.

</comment><comment><USER6> My Stack:

1) A jetbrains IDE (I love em)

2) Macbook, connected to large external monitor, wireless mouse/kb

3) Alfred App for quick moving around

4) Divy for resizing windows easily

5) Dropbox where projects rest

6) SourceTree by atlassian with git-flow

7) The hit list (one of my favorites because it requires little configuration, and theres hovering activity timer that keeps you aware of how long youve been working on a feature)

8) Heroku > idea to server in minutes (free addons make starting up a breeze)

</comment><comment><USER7> At work I use KDevelop in conjunction with Perforce for version control. Its the basic two monitor setup.

At home I also have two monitors (A must have in my personal opinion) but I use git for version control and sublime text editor for coding.

Would I recommend what I use to others? Nope. Everyone must find their own path. I tell others what I use, but only if they ask.

</comment><comment><USER8> Using OSX, working with files/data on a remote server: I use transmit to sftp files from the server. I usually code in textwrangler. I ssh into the server through terminal. I have a script that copies selected code from textwrangler and pastes it in terminal (and presses enter), which is useful for testing and debugging scripts. I also use vim when I want to make relatively quick edits to files.

I'm fairly new to OSX but my setup works pretty well for me. I think my biggest inefficiency is my text editor; it doesn't have syntax completion (as far as I know) and it can be a bit of a pain to work with more than 3-4 files at the same time. My long-term goal is to totally move to vim.

</comment><comment><USER9> 1\. Macbook Air with External Display

2\. Chrome visible in external, with inspector/console on macbook

3\. Wireless Keyboard and Trackpad(GODSEND!)

4\. Sublime Text 2 for coding

5\. Bamboo for automated builds using ANT

6\. iTerm2 for terminal on steroids

7\. AWS for everything cloud

8\. DNS made easy for low TTL Domain management

9\. JIRA/Bitbucket for Issue/feature tracking connected to git commits

10\. I just wanted to make the list have 10 things in it

I highly encourage everyone to try to get something like Bamboo/ANT working to automate your deployment. Its such a timesaver later.

</comment><comment><USER10> emacs, xmonad and ansible are making me most productive at the moment.</comment>


Few people are actually trapped in filter bubbles. Why do they say they are? - <AUTHOR> http://www.niemanlab.org/2018/12/few-people-are-actually-trapped-in-filter-bubbles-why-do-they-like-to-say-that-they-are/ <comment><USER2> Niemanlab seem a bit confused here.

People have _always_ been in self-created filter bubbles - its called Confirmation Bias.

The concern with Google and Facebook and YouTube is that they are now re- inforcing that confirmation bias even more.

NiemanLab cite a few studies here but them seem to be focusing on Google Search Results whereas things like Facebook Walls and the way YouTube recommends 'extreme' points of view on any given topic are also of concern.

Essentially a huge part of the internet is now optimising for clicks, which means targeted clickbait and sensationalism will always crowd out reasoned argument.

<comment><USER3> Yeah, they seem to missing the point completely.

The problem, which is hopefully well known, but bears repeating is that our brain learns the structure of the world by repetition and exposure, and typically seem to be quite unbiased apart from this exposure.

Hence, a continuous over-abundance of content that caters to our biases will strongly affect our behavior, often even when we consciously think it's garbage. It is why and how advertising works, and probably why averages of peoples faces are seen as more beautiful than any of the faces in the mix.

In sensor tasks, the vision system ( amongst other ) can be shown to be close to Bayesian perfect in how it recovers information from sensory input, which should give pause to any argument - as those in the article - that only _complete_ filter bubbles should be seen as such.

Even a partial filter bubble could, and anecdotally does, sometimes completely shortcut this information recovery from noisy data, as the basic "assumption" of the brain would have to be that the environment doesn't lie. Which in a bubble is no longer true.

If we were adept at living in a world that lies to us, I imagine neuropathologies that create auditory hallucinations of various forms would not be even remotely as problematic as they are. But assuming a purely statistical interpretation of the environment, it's easy to see that eg a persistent voice in your head is going to cause serious issues over time.

If you boil it all down, that is what a filter bubble becomes, a voice persistently telling lie about how the world looks and works, on average.

This in turn can lead to radicalization, distrust, paranoia, and other forms of unhealthy thought patterns, as similar mechanisms does when "statistical lies" are generated internally by our minds.

</comment></comment><comment><USER4> In my experience, few people are NOT trapped in a filter bubble. If you've ever moved from a conservative area to a liberal area of the country, or vice versa, you'll _feel_ this in your interactions with people. In modern politics, it's far more difficult to find people who are able to constructively engage with both sides than it is to find blatant partisans. Simple test for this is to ask some one to describe the positions of the other party and why they feel the way they do without using any disparaging or cynical terms. Fun experiment, I invite you to try it.

<comment><USER5> >Simple test for this is to ask some one to describe the positions of the other party and why they feel the way they do without using any disparaging or cynical terms

That doesn't work because liberals are unable to understand and empathize with conservative views. They lack the same fundamental values, and so they are unable to see conservative views as being within a set of values that are different from their own. Instead they see conservative views as being contrary to values, period. Liberals being asked to answer a survey the way they think a conservative would will answer agree/disagree questions like "one of the worst things a person could do is hurt a defenseless animal" with disagree, but actual conservatives say agree. On the other hand, conservatives are able to accurately answer the same survey as a liberal would. Moderates are able to answer accurately as either a liberal or a conservative.

[https://theindependentwhig.com/haidt- passages/haidt/conserva...](https://theindependentwhig.com/haidt- passages/haidt/conservatives-understand-liberals-better-than-liberals- understand-conservatives/)

<comment><USER6> > That doesn't work because liberals are unable to understand and empathize > with conservative views.

Actually conservatives and liberals do share a lot of values. Let's call this the foundational set V.

Conservatives go on to add additional values to the set V: mostly concerns for purity, respect for authority and a heightened concern for security. Let's call this set A.

Conservatives could then easily predict the answers of liberals because they are both based on V, but it's not symmetrical, because conservatives are working from a bigger set of values V+A.

<comment><USER7> Whilst that's one way to phrase it, the underlying differences are deeper and more to do with perception of the span of human nature.

For instance the apparent love of conservatives for 'respect for authority' is not actually respect for authority (why would they be so against big government if that were the case?) nor particular to conservatives, but rather, a preference for systems and formalised power structures over loose, informally specified power structures. One can observe that people with liberal views often have tremendous respect for certain types of unstructured authority, in particular, academics.

The book "A Conflict Of Visions" provides an alternative explanation for this apparent discovery that liberals cannot understand conservatives but not vice- versa. Conservatives see disagreement with their world view as naivety, but liberals see disagreement with _their_ world view as the result of an evil or malign nature. The latter view leads to a belief that attempting to understand such a perspective is itself immoral behaviour, as you might be legitimising it, or alternatively, might be tempted to the dark side by mere exposure to the ideas themselves.

This is why you see so much no-platforming and general censorship coming from people with particular world views: they believe that conservative ideas work like some sort of infectious disease. Conservatives don't think that way about liberal views.

<comment><USER6> Ok, let me tweak my list of additional conservative values then: heightened concern for purity, intolerance of ambiguity and a heightened concern for security.

NOTE: I am not conservative, so take that for what it's worth.

</comment></comment></comment></comment></comment><comment><USER8> "Filter Bubbles" are a real phenomenon to be wary of, particularly for something like YouTube that aggressively suggests videos and autoplays by default or Facebook that injects stories into your news feed. I think what the article misses on that front is not that users don't have access to other sources, but they're passively spoon fed stories that reinforce their beliefs.

But I'm not convinced this expands to Search. Search algorithm implementations are enough of a nebulous black box that it makes for a convincing story, and Duck Duck Go has been shamelessly spinning that FUD for advertising, but the claims don't really stand up to scrutiny.

<comment><USER9> It's somewhat anecdotal but in my experience, Twitter search can be quite filter bubbly.

I've had this recording sitting around in my YouTube account which illustrates an example of this: CES 2015 which was around the time of the shit show known as Gamergate.

The event aside, it was interesting to understand how sides were inflamed based on what they were seeing thanks to Twitter effectively amplifying similar opinions, creating an echo chamber.

Here's a link to the recording: [https://youtu.be/yoCcKYJ7hDI](https://youtu.be/yoCcKYJ7hDI)

On the left is an account that was heavily skewed on purpose, towards the more conservative group while on the right is what a regular, unlogged in user would see.

A regular user would have no idea of such an event going on while the user on the left would think that this event was engulfing the planet based on the sheer amount of noise being generated.

For users on the left, it would be near impossible to penetrate the noise, based on retweets and likes, short of a tweet being passed around for users to jeer at. A literal bubble in that sense.

The sad part is that a great number of people from both sides seemingly had a lot in common without realising it. Unfortunately they had no visibility of the "others" short of going out of their way to meet people and talk with them one on one.

As we all know, it's easier to just label a foreign group and pretend we're objectively right.

Anyway, that's just my experience with filter bubbles anyway. Hopefully you found it interesting.

<comment><USER10> Your comment put me in mind of the "get Pao out" hate campaign at Reddit a few years back. At its peak, its most incendiary, bile-spewing peak, if you were not looking at the standard "all" front page you would have had no idea it was even happening at all.

With "all" as your default page, it was literally full of it, maybe your top two pages just entirely anti-Pao memes etc.

The difference was so stark it was hard to believe I was even using the same Reddit as these people

<comment><USER11> I miss most Reddit garbage now that I no longer go to the front page. I mainly stick to a few subreddits now, like r/boardgames, and the moderators actively keep that stuff out since it has nothing to do with the subject. I think I saw a little of the Pao stuff back then, but I think I saw it from other sites, like Kotaku.

</comment></comment></comment></comment><comment><USER12> This is just tangential personal reflection but I feel like at every stage in my life I've been in some kind of bubble. Bubbles come and go depending on my environment and life experience. Being situated on a university campus, mostly insulated from the concerns of the real world and free to exercise the curiosities of youth -- that was probably my first big bubble. I had no access to or understanding of the concerns of most people working to make a living or raising families. Similarly I can think of periods of time when I was in a bad relationship, or stuck at a menial job. My day-to-day experience constitutes a filter bubble, and I don't even think it's good or bad. I feel like the media bubbles under discussion are symptomatic of a larger cultural malady in which our experience, our own personal bubbles, are so confused and impoverished that we jump at any screen or soundbite just to have some medium through which to experience anything.

</comment><comment><USER13> I wonder if anyone is banking on a reversal of that perception of "filter bubbles"?

It seems to me that creating "filter bubbles" not only should be the goal of social networks, but that it's a desirable goal.

Obviously, someone will have to come up with better branding to wash off the stink from that term, but the underlying concept is what people fundamentally want, and it's here to stay.

Facebook recently changed their vision statement to talk about making communities more tightly-knit, and so on. This can only be done by curating content and limiting information to stuff that attracts people together and makes them feel at home.

People have limited time and attention. Dunbar's number imposes constraints on how much data/people they can keep up with. And people want that circle to be as pleasant an experience as possible.

I'll be the first to make that bet if no one else has: the social network that will displace Facebook will displace it because it will embrace filter bubbles, not "solve" them as if they were a problem.

<comment><USER14> > It seems to me that creating "filter bubbles" not only should be the goal of > social networks, but that it's a desirable goal.

The reason people come to that conclusion is this:

[http://slatestarcodex.com/2014/12/17/the-toxoplasma-of- rage/](http://slatestarcodex.com/2014/12/17/the-toxoplasma-of-rage/)

If you show people things from other tribes, the reasonable stuff the other tribe has to say gets buried under the epic war both sides are thrust into as soon as anyone says anything recursively controversial.

The problem we have now is that existing networks profit from showing you _only_ that portion of what the other tribe has to say, because it's what increases "engagement" (i.e. time spent fighting/arguing on the internet).

What would be desirable would be to do the exact opposite -- bury the toxoplasma but still show the material from other tribes that isn't virally outrage-generating.

That may not maximize number of hours spent per user, but if people like it more, it could maximize total number of users, which is how you build network effects -- and that's the hardest thing for a new network to do.

It would also presumably benefit things like mutual understanding, unity and general happiness.

<comment><USER13> Yeah, I understand the mechanics for the way the bubbles form, and how engagement-driven networks can skew their composition.

The more relevant SSC article for me when it comes to that subject is this one: [http://slatestarcodex.com/2014/06/07/archipelago-and- atomic-...](http://slatestarcodex.com/2014/06/07/archipelago-and-atomic- communitarianism/)

<comment><USER14> The distinction with archipelagos is that you have to be able to choose between them, at which point you're now talking about communities rather than filter bubbles. And communities are good, but in this context they're fractional. A community for talking about software development is useful, but those people are eligible to go to the polls on election day and still need somewhere to learn about immigration and criminal justice reform and taxes. Ideally from more than one side.

<comment><USER13> I don't really disagree with any of that and I'm not sure how that's a rebuttal.

I think they can be complementary. "Filter bubbles" work as the discovery part that guides you toward the best communities (from your POV) and also gives directional information about their boundaries.

If people are interested in learning about immigration and criminal justice reform and taxes, those topics will be amply covered in the community formed around their "filter bubble."

If your point is that everyone should be interested in those topics, I think you're making a different point that is much harder to argue.

</comment></comment></comment></comment></comment><comment><USER15> An anecdote: When Bush Sr. died, I saw ~30 different comments and tweets about how sick they were of the constant barrage of praise for whom they surmised to be a war criminal, and yet I did not see one single bit of positive words spoken about him. It was splash of cold water awakening me to the depth of my filter bubble.

<comment><USER16> i liked douthat's editorial even without any particular personal sentimentality for wasps: [https://www.nytimes.com/2018/12/05/opinion/george- bush-wasps...](https://www.nytimes.com/2018/12/05/opinion/george-bush- wasps.html)

</comment></comment><comment><USER17> My parents are completely in a Fox News bubble and so are lots of other people unfortunately. It changed their views completely. Prior to Fox News they were reasonable humans that saw things in a rounded way and that eroded upon repeated exposure to it. I wish they had never gotten cable.

<comment><USER18> I have two sets of grandparents, one is constantly angry and watching Fox News, and the others are angry and watching CNN. Neither will accept any sort of news story from a source that's not "unbiased", which means seems to mean supports their side. It's really frustrating.

<comment><USER19> Put em at the same table at dinner!

Maybe they can duke it out and come to a conclusion.

I find watching biased news from both sides gives me more info than "moderate" lukewarm reporting. Biased sources tend to make stronger arguments for their narratives and omit less "inconvenient" details of the other side.

Also a good way to approach any world conflict or propaganda.

<comment><USER14> > I find watching biased news from both sides gives me more info than > "moderate" lukewarm reporting. Biased sources tend to make stronger > arguments for their narratives and omit less "inconvenient" details of the > other side.

Different parties are right about different things.

For example, Trump is unfairly maligned on trade. The tariffs on China are extremely modest -- we tax domestic producers more than that on net. And something has to compensate for China purposely tilting the playing field a hundred different ways. But if you look at left of center media you'd think the tariffs were destroying the economy, with no data but plenty of anecdotes from companies whinging about having to pay a little more for goods from sweatshops in China.

On the other hand, Trump's position on coal is completely indefensible.

Which implies "moderate" isn't a real thing. Saying he's half right on trade and half right on coal isn't moderation, it's gibberish. He's mostly right on trade and entirely wrong on coal. Sawing the baby in half every time is no better than uncritically believing one side over the other.

The trouble is the mainstream sources, especially on cable, are still terrible -- even the ones with an obvious affiliation frequently don't present the best argument for their positions because their goal is to lather up the base and generate ratings rather than actually inform anyone.

And both sides ignore anything that isn't politically expedient. They never really go after the banks, the insurance companies, government contractors or employees -- or if they do it's a populist call to riot rather than any kind of principled proposal to make specific changes.

The best thing to do is to rely on domain experts and primary sources, which are much easier to access now that most everything is on the internet, but it's still more time consuming than most people are going to be able to commit to. Which is maybe why everything is such a mess.

It seems like we need journalists with an opinion but not a party.

<comment><USER20> Well, that depends: what you see as left of center media might actually be rather centrist along some axes. To be frothing at the mouth in rage at tariffs identifies you as a globalist thinker of some 'neo' persuasion: neocon, or neoliberal. Either way, though you may disagree sharply on social issues you've got a shared committment to frictionless commerce over national boundaries in the belief that this will cause all the world to prosper (by all the world, you might mean 'the richest individuals and companies in any given country')

So, if that's your agenda, you (a) will hate tariffs whether they're proposed by Trump or a socialist like Bernie Sanders, and (b) you'll see to it that things are framed with the perspective that NO PERSON could possibly doubt the evilness of tariffs and the benevolence of maximally frictionless global trade.

You might even insist that nobody is actually trapped in a filter bubble about it, as there is no possibility that anyone can have an intelligent thought that DOESN'T embrace ultimately free trade. This position automatically forbids thinking about externalities or epiphenomena that arise from this embracing of trade across the widest possible market.

Hell, even the idea of 'market' is a filter bubble. Certainly the phrase 'Trump is unfairly maligned' used for any reason, is a filter bubble. I myself have to resist the tendency to react negatively just because of the association with the man, and would instead say: nah, he is fairly maligned because he's not approaching an 'anti-globalist' position for any constructive reason. In no way is he addressing the underlying mechanisms of the problem, he's just throwing sand in the gears. If it's a mechanism causing catastrophic damage, that alone might seem good, but we're gonna need better answers than just breaking stuff.

I would prefer to see something like unionization or communism break the ability to conduct labor arbitrage (not as an ultimate final goal, but as a counter-force to capital's ability to have things all its own way), but I do not think that's what Trump is up to. If he was, I'd say he was unfairly maligned too. Since he's not, I consider him fairly maligned .

<comment><USER14> > I would prefer to see something like unionization or communism break the > ability to conduct labor arbitrage (not as an ultimate final goal, but as a > counter-force to capital's ability to have things all its own way), but I do > not think that's what Trump is up to. If he was, I'd say he was unfairly > maligned too. Since he's not, I consider him fairly maligned .

You seem to be saying that Trump has an anti-globalist position, which is reasonable for a number of reasons, but he should still be maligned _because he is not a communist_. Is that actually what you're saying, or am I misreading it?

</comment></comment></comment></comment></comment></comment><comment><USER21> This article is attacking a strawman, defining filter bubble extremely narrowly.

</comment><comment><USER22> I am not sure what I did with my filter bubble. Did I make it stronger or weaker, larger or smaller?

The polarisation on twitter and Facebook after Brexit and the two years before and after the US election saw the losing tribe write off the other half as evil, selfish, needing to be re-educated, that democracy was over and a strong left hand was needed and that the free press needed regulation.

These were views by some of you, CTO level educated SV technologists.

I pointed out that the opposition wasn't evil, democracy was still valid, and mainly i pointed out how they were blinkered. Some people took it personally. Now they are not in my filter bubble. Worth saying that the winning tribalism was not in my filter bubble at any point.

My bubble has less tribalism than before but it's also less large.

<comment><USER23> How does one know when they're in a filter bubble?

</comment></comment><comment><USER24> This is a pretty pointless and contentless article.

As others have pointed out, it's attacking a strawman, so the point isn't even relevant. But even if it were, what's the conclusion? There's a graph of people's trust in media, and some quotes from DDG's marketing—neither of which seem relevant to the central point.

> _are filter bubbles really the problem here? Danny Sullivan [...] argues > fairly persuasively that they're not because even DuckDuckGo users see > different results._

What is this sentence? Argues conclusively what? If anything, it supports the thesis that they exist (by this article's awkward definition), since they also pervade even DDG.

</comment><comment><USER25> In my experience the same people that complain about filter bubbles also want offensive content gone. It seems the underlying motivation is just "show more of my beliefs less of theirs".

</comment><comment><USER26> In my experience there are some good tests for this on various noteworthy political events in recent times.

For example if you think that President Trump gave a press conference in which he referred to neo Nazis as very fine people, you are in a bubble because the context and quote are the exact opposite which he later clarifies when asked by the reporter, saying "I'm not talking about the Neo Nazis".

If you believe that Hillary Clinton sold 20% of the USA's uranium to Russia in exchange for donations then you are in a bubble because that characterization is missing several key pieces of information.

People treat future events based on what they have preconceived in these erroneous ways. The media distorts something with a tiny grain of truth into a narrative, and that narrative is what remains as a criteria for filtering future information.

When you interact with ideologically entrenched folks, you can easily poke holes using examples like this. If they are reasonable they will recognize what has happened to them. If not reasonable, there will be cognitive dissonance and excuses as to why their belief is still right. The latter are not worth engaging with further because it's an uphill battle that will likely yield no progress.

Media organizations like CNN and Fox News have become brazen in this regard. Recently CNN had a participant on a panel masquerading as a Trump voter, who was revealed to have a YouTube channel that espoused the exact opposite view. On a similar panel, key parts of answers on voter fraud were edited out of the final broadcast to make the respondent look uninformed, when they had, in fact, answered the question citing sources and narrating a great deal of information.

Market forces have moved the keepers of the "Gated institutional narrative" further towards the new clickbait, ideological, tabloid brand of journalism, and we are all worse off for it.

</comment><comment><USER27> Just because people may visit other news sources, they can still be in a Facebook filter bubble where everyone in their newsfeed thinks just like them.

At least, that's how my facebook newsfeed looks, most of my Facebook friends/family have similar political views as me, so my news feed is full of stories and comments backing up my own political views. So even if I read opposing viewpoints in other news sites, my newsfeed still reinforces that those opposing viewpoints are invalid, and it makes it seem like everyone agrees with me.

</comment><comment><USER28> The author seems to miss the point of filter bubbles.

There's a known cognitive bias where people tend to seek out information that mainly validates their existing views. Filter bubbles become a major enabler of that, allowing them to develop horse blinders to reality. Filter bubbles can lead people down into more extremist views that don't mesh with reality, rather than giving them exposure to counterarguments and allowing them to develop a more well-rounded view.

</comment><comment><USER29> I wonder how one would go about actually quantifying any of this?

The article tries to use two different studies to do this, but this approach seems flawed for the very simple reason that participants are not the same across both studies.

Imho this whole problem is very comparable to being biased in general. We are all biased in some way or another and I like to think most of us are aware of this reality.

But being aware of it does not simply translate to being aware of the full extent of the biases or lead to an outcome where the bias is "negated", if it is as easy as that, then barely anybody should be biased.

In a way, it's like trying to define what goes on inside a blind spot, which by definition, is kinda impossible: If you'd be aware of your blind spot, it wouldn't be a blind spot anymore.

I see the same problem with "filter bubbles", which in a way are just systemic biases very comparable how different social circles have different Overton windows. Most of these seem not to be forced upon people but are rather consequences of choices made based on personal biases/the Overton window often heavily influenced by in ones peer groups.

While one might be aware of these choices, and how one reasoned them, that does not entail knowledge about the reality of other, maybe equally valid, choices. In that context, a lot of this feels more like a philosophical problem than an actual social one. People will, for the most part, rationalize their own choices as the "most valid ones".

If they wouldn't, then they wouldn't have made those choices because only very few people make irrational choices on purpose for the sake of acting irrational.

<comment><USER30> >> " _The article tries to use two different studies to do this, but this approach seems flawed for the very simple reason that participants are not the same across both studies._ "

That's not a valid requirement.

In fact using the same participants in multiple studies biases the results.

</comment></comment><comment><USER31> > _Few people are in complete filter bubbles in which they only consume, say, > Fox News_

Sure, if you only want to count "complete" filter bubbles in which 100% of your search results come from a single source.

Averaged over millions of people and billions of searches, however, even a 10% bias is likely to have a measurable effect.

People don't get pushed over to one side of a partisan issue overnight. Like a pollutant in your drinking water, it takes a long time of constant exposure to unbalanced news for the subtle biases to seep into your brain and change how you see the world.

<comment><USER32> Also one would assume that placing you 100% in one "bubble" would be bad for business. Sites wants to see if you need/can be pushed into yet unknown areas of interest.

But sure, no one is actually trapped in a filter bubble. If you're aware that you're in a bubble, then it because much easier to escape. The problem is that most people aren't aware that they aren't seen all sides of an issue.

</comment></comment><comment><USER33> This is not what's filter bubble is, it's a subset of the broader idea.

</comment><comment><USER34> > _We're not trapped in filter bubbles, but we like to act as if we are. Few > people are in complete filter bubbles in which they only consume, say, Fox > News, Matt Grossmann writes in a new report for Knight_

That's irrelevant. It's enough that their biases are regularly reinforced by the sources they follow (something modern social media and news aggregators make extremely easy), they don't have to "only consume" their side of the story.

</comment><comment><USER35> Regarding the point about filter bubbling in DuckDuckGo: My guess would be that it's not a trivial problem for them to undo the filter bubbling that their search providers are doing. But, I think if three people were to hit the "refresh" button 10 times on the same query, then the variation seen by one single person is probably similar to the variation seen across different people running the same query.

</comment><comment><USER36> Perhaps not entirely, but do filter bubbles become an issue when an individual is isolated in the same community for most of their life? I've slowly traveled outwards from my hometown of 2000~ people to now living in a city of 300k+, I've been to a few places between then and now but while my internet bubble has always been there, it hasn't consumed me.

</comment><comment><USER37> Ironically, Pandora's whole point is to create the musical equivalent of filter bubbles, and it's really cool.

<comment><USER4> Yeah, I use Pandora when I want repetition and I use Spotify to discover new music or see what my friends are listening to.

</comment></comment><comment><USER38> This article doesn't really have a lot of meat to it.

Despite that, I am very skeptical of the filter bubble idea and especially as it relates to customized internet search results. I found Eli Pariser's book to be very unconvincing. It is full of qualifiers like "might," "could," and "may" and few hard facts.

To a degree we have always been in some kind of bubble because we aren't omniscient. Before electronic media, our knowledge of things outside our immediate circle was very limited. Was that a filter bubble? During the heyday of newspapers when a city had multiple newspapers there would be explicitly liberal and conservative newspapers (growing up my hometown newspaper was the Republican!)

I feel like now I know a lot more about people who disagree with me than I ever did. I may not understand them but I know that Trump supporters, flat earthers, creationists, anti-vaxers, and people who care about sports all exist.

</comment><comment><USER39> The idea that people who report being intensely allied to particular political parties would automatically be the people who we should be most concerned about being in filter bubbles is bizarre, and is part of a broader media narrative that all opinions right or left of the NYT and WaPo editorial pages are the result of manipulation. This seems like one of a cluster of centrist articles attempting to debunk this idea, specifically targeted at Republican bleating about tech-media companies hiding left-wing bias behind claims that they have objective algorithms that have no particular political content.

They're twisting the finding, culled from mashing together a number of studies (not any particular study) and summarized in a whitepaper, that find when you monitor the people who self-report the most partisan consumption of news, it turns out that they actually read a lot of different sources. In other words, they've discovered that the most angry readers of news spend as much time hate-reading as reading outlets that they agree with.

Interesting finding by itself. Instead of reporting that, though, they transform the group that most self-reports being in _what the authors would call a filter bubble_ (i.e. they report only watching Maddow or only watching Fox) into the group _most likely in a filter bubble_ , they find that group to not be in a filter bubble, then they declare the non-existence of filter bubbles. It's really garbled logic.

I'd submit that the people most likely to be affected by a filter bubble would be the people who read political news the least, and where the few examples of what they look up would create a skewed algorithmic perception of their interests. I'd further submit that those people would far outnumber the extreme party partisans, but their votes would count equally, so the fact that extreme partisans who are already absolutely sure how they will vote are not trapped in filter bubbles is of far less importance than the people who are not sure about how they will vote, and are affected by new information.

<comment><USER40> To be frank it seems like old media is increasingly wearing its envy on their sleeve relatively recently. They tried ignoring them at first. then they tried integrating where after ignoring everything on the internet suddenly leaping onto twitter. Then when that doesn't work they started getting angry and trying to make tech the new villain for everything. Like claiming that outright fabricated news for an agenda started with them - no just look at Hearst for one.

There is the incredibly obvious 'tech-lash' astroturfed push and trying to invoke antitrust - all while dutifully ignoring the actual monopolies and media conglomeration. And the Sinclair 'hive-mind' dystopian propaganda pushing that received far less attention than Facebook selling ads.

</comment></comment><comment><USER41> Let's be honest: without filter bubbles, (social) media would be pretty much unbearable.

</comment><comment><USER42> Beyond the filter bubble, I've noticed that a lot media spends most of their time in personal attacks, and very little time discussing the substance of any issue. Even when the discussion actually contains any substance, authors cannot refrain from poisoning the well. It isn't Person A believes ..., and Person B points to research ..., it is Left-wing ideologue idiot Person A believes crazy idea ...and well-respected patriot Person B point to research ... Both left and right partisan authors are using this style.

I raise this point in a discussion about filter bubbles since I'm suspect the two aspects are self-reinforcing.

</comment><comment><USER43> There's an interesting phenomenon here in the UK where a lot of the quality journalism on the right is behind a paywall, whereas a lot of the quality journalism on the left is ad-funded and freely available. I can see that being a potential amplifier of 'filter bubbles'.

<comment><USER44> Are your "Rights" and "Lefts" the same as ours in the US? I think it can all vary, but it would provide interesting context. Is the UK's right more closely aligned with the House of Lords or the like?

<comment><USER43> They're fairly similar - though the whole political spectrum is shifted to the left.

The British Conservative Party is pro free market and low tax but socially liberal, with an Atlanticist foreign policy, and is in favor of single payer health care.

The Labour Party is pro government intervention, state planning and redistributive taxes, less sceptical about regulation and has greater historic ties with Europe than with the US. It's long described itself as a socialist party.

The House of Lords is said to be a house of experts who have been chosen because of their specialist knowledge. Because it is unelected and made up of political appointees, it's composition can change over time.

There are however limits to what the Lords can actually do to block legislation, so it differs from the Senate. Bills can only be proposed in the House of Commons (so not like the US where either house can propose).

</comment></comment></comment><comment><USER45> For self-victimization, apparently.</comment>


In 'Unicorn Hire,' Mixpanel Lures Top Sales Executive from New Relic - <AUTHOR> http://m.us.wsj.com/articles/BL-VCDB-15430

<comment><USER2> Anybody have their own stories about being recruited this hard?</comment>


Why Intel Added Cache Partitioning - <AUTHOR> http://danluu.com/intel-cat/ <comment><USER2> 16 years, I created a profiling macro system on for select set critical functions. The profiling system can switch the measuring data from #instruction, #cpu_clk, #branch_stall_cycles, #L1_miss, #L2 miss for all the critical path functions.

After analyzed the data, I found branch stall cycles and data access stall cycles were causing huge number of delays in the critical code path.

I used the following tricks to get rid of the stall cycles.

1) Use branch_likely to force gcc to make sure there is no branch at all in the critical path of executions. (save 30+ cpu cycle per branch, there are a lot of branch stall cycles if one just simplely follow the gcc generated "optimized" code. MIPS CPU 200Mhz)

2) Use prefetch ahead of data structure access to get rid of un-cache data delay. (save ~50+cpu cycle per data stall, also, there are lot of them in the critical path.)

3) Use inline functions, etc to get rid of call stalls in critical path.

The system got ~100x increase on the overall system thru-put with those techniques with just pure C optimization from standard -O2 build.

I think it might be possible to create a build system that can automatically collect the profiling data (branch stall cycles and data stall cycles) and use the branch likely and prefetch instructions to auto-optimized the critical path code.

Specifying which code path / function call sequences are the real critical path probably still require programmer's touch.

As result of using data prefetch code in proper place, I don't used cache locking nor doing any kind of CPU affinity trick to generated the optimized obj code without any stall cycles for critical code path.

<comment><USER3> A lot of those optimizations would no longer yield any benefits[0]. The CPU archictecture evolved a lot in 16 years, especially in branch/code prediction to the point where a correctly predicted branch (without branch_likely) has almost no cost.

[0]: At least, this is true for x86 CPUs.

<comment><USER4> As a CPU architect, I can confirm that all those except possibly 2) will not yield significant benefits. Prefetching hints will only be useful when the particular code fragment is highly memory-bound because most wide superscalar microarchitectures will easily hide L1/L2 miss latencies.

<comment><USER5> My qp trie code <[http://dotat.at/prog/qp/>](http://dotat.at/prog/qp/>) got a performance boost of about 20% by adding prefetch hints in the obvious places. The inner loop is fetch / compute / fetch / compute, chaining down into the true. The next fetch will (usually) be some small offset from a pointer we can get immediately after its preceding fetch, so prefetch the base pointer, then compute to work out the exact offset.

</comment></comment></comment></comment><comment><USER6> This also helps prevent cache side-channel attacks like the one that led to stealing RSA private keys by probing the L3 miss times.

[https://eprint.iacr.org/2015/898.pdf](https://eprint.iacr.org/2015/898.pdf)

<comment><USER7> You beat me to it. Partitioned caches have been explored for years to defeat covert timing channels. Other measures were used decades ago with varying success. I was excited at the title thinking Intel was finally on some bandwagon for suppressing timing channels given cloud market, security concerns, etc.

Another performance enhancement lol. That's good, too, but damnit I was hoping they mentioned timing channels. It will have to be thoroughly scrutinized before relied on for that but it's a start for sure. Hopefully, more than that. :)

</comment></comment><comment><USER8> I find it really weird that the article says:

> It's curious that we have low cache hit rates, a lot of time stalled on > cache/memory, and low bandwidth utilization.

That's typical for most workloads! Software is almost never compute or bandwidth bound in my experience, but instead spends most of its time waiting on memory in pointer chasing code. This is especially true for code written in managed languages like Java (since everything typically is boxed and allocated all over the heap).

<comment><USER9> It's curious that there's low bandwidth utilization despite the low but rates / cpu stalled waiting for memory. Don't you think?

Perhaps random access of small data causes frequent waits without utilizing the bandwidth in a way that block copies would.

<comment><USER8> You don't get high bandwidth utilization by pointer chasing unless you have many threads doing it and you switch threads while waiting on memory. That's true for GPUs, not for typical server workloads running on CPUs.

</comment></comment></comment><comment><USER10> To me putting high-priority low-latency process and a low-priority high- throughput process on the same machine is a recipe for disaster - they will find _some_ way to get entangled and hurt each other. Kudos to google for pulling this out but the article shows that you need expertise on all levels of the stack to attempt this. Most of us are better off with simply buying more boxes :)

<comment><USER11> Or we can automate this in an OS/cluster manager and safely this with everyone like we do with some many other technologies that are difficult for most of us to develop :)

<comment><USER10> One can dream... Of course having this available as an opensource technology would be great but for now it is a piece of proprietary tech inside google.

</comment></comment></comment><comment><USER12> The SPECint and SPECfp benchmark suites were never very tightly connected to real-world performance, but I wonder what these figures look like for SPECjbb, the java benchmark.

(If I recall correctly, SPECjbb spins up an app that looks a lot like "java pet store" and runs clients against it.)

<comment><USER13> What I've heard is that you should mostly pay attention to the gcc compilation part of SPEC if you want a good indication of real world performance.

<comment><USER14> Never use a single workload as a predictor of performance of the universe of all other workloads. The best benchmark is not a benchmark at all – it is your actual workload.

</comment></comment></comment><comment><USER15> Regarding cpusets, I wonder how much contention is being created just by software assuming the number of cpus match the number of cpus in the affinity set. For example, C++ has _hardware_concurrency_ now, Python has _cpu_count_ , Java has fork-join, etc...

<comment><USER16> Golang also has a totally inaccurate routine for counting the CPUs in the machine.

<comment><USER17> What's the accurate way?

<comment><USER15> To calculate the number of processors available or the optimal number of threads/processes?

<comment><USER17> Well specifically it would be cool if it counted the optimal number to set GOMAXPROCS to, since I think that's like the main use of runtime.NumCPU().

<comment><USER16> Right. Currently runtime.NumCPU tries to be fancy by looking at the population count of the cpuset mask[1]. However in a hosted environment using containers there's no reason to believe that the cpuset will remain fixed over the life of the process. This can undercount the available CPUs, leaving you with a GOMAXPROCS that is too low.

1: [https://code.google.com/p/go/source/browse/src/pkg/runtime/t...](https://code.google.com/p/go/source/browse/src/pkg/runtime/thread_linux.c?r=ef1158a7371796bf4823a1ce43e3d01d2a765e14#85)

<comment><USER18> Anecdotally, it's very often not bad, (and in fact sometimes "good") to over- provision MAXPROCS. We have used as much as 3 to 6x the number of hyperthreaded cores with good results, depending on the workload. This could insulate you against some container changes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> Summary: because it makes your computer faster.

<comment><USER16> Geez, tough crowd here. How about this:

Summary: because Google asked for it.

<comment><USER19> Keep digging.

</comment></comment></comment><comment><USER20> > Xkcd estimated that Google owns 2 million machines

Xkcd doesn't sound like a very convincing source. And at least this estimation should have some error-bars.

<comment><USER21> Of all the sources outside of Google, I'd say XKCD is likely to be closer than most. Even if you ignore the fact that Randall (XKCD) spends a good amount of his time estimating things in a rigorous and scientific way that would mean his estimates are actually pretty good, he has the exact background that means people at Google would take his call if he picked up the phone to muse upon the question of how many machines Google has. They might not give specifics, but helping would be a pretty cool thing to do so they'd probably do it.

<comment><USER22> Such a situation did happen, Randall answered how many punch cards it would take to store all of the data in google datacenters ([https://what- if.xkcd.com/63/](https://what-if.xkcd.com/63/)). In response, google sent him punch cards ([http://blog.ted.com/using-serious-math-to-answer-weird- quest...](http://blog.ted.com/using-serious-math-to-answer-weird-questions- randall-munroe-at-ted2014/)).</comment></comment></comment>


Ask HN: What Open-source projects need Design help? - <AUTHOR> Who's working on free open-source projects that needs a Brand or UI/UX facelift? Hoping I can get designers (myself inclusive) to work on more open-source projects here. <comment><USER2> You might be interested in [https://opensourcedesign.net/](https://opensourcedesign.net/) which is an organization which tries to pair designers with open source projects.

</comment><comment><USER3> Try to contribute to a open source project _you_ are using. A good UI design involves groking what the software can do and groking what the user wants to do, and it's very difficult to do that if you are not a user.</comment>


Go concurrency isn't parallelism: Real world lessons with Monte Carlo sims - <AUTHOR> http://www.soroushjp.com/2015/02/07/go-concurrency-is-not-parallelism-real-world-lessons-with-monte-carlo-simulations/ <comment><USER2> TLDR: Adjust GOMAXPROCS if you want a speedup from multiple goroutines.

[http://golang.org/pkg/runtime/](http://golang.org/pkg/runtime/)

"GOMAXPROCS sets the maximum number of CPUs that can be executing simultaneously and returns the previous setting. If n < 1, it does not change the current setting. The number of logical CPUs on the local machine can be queried with NumCPU. This call will go away when the scheduler improves."

It will be nice when this requirement is eliminated.

<comment><USER3> Yup, here's what I normally use for these situations (posted it in disqus too at end of article):

// Initialize to use all available CPU cores

func init() {

       runtime.GOMAXPROCS(runtime.NumCPU())

    }

<comment><USER4> Maybe GOMAXPROCS exists so that the number of hw threads that might be spawn by the go application can be controlled in a more system-agnostic way. Without such env varianle, on Windows (for example) you can control this with CPU affinity (and possibly other better ways), but not sure about Linux/OSX/etc. So this kind of deals with it upfront.

</comment></comment></comment><comment><USER5> I think that the default of single threaded is going to bite them hard in the long run. I've already discovered libraries that were never tested with MAXGOPROCS > 1 that are not thread safe. They should default it to at least 2 to make sure these bugs are shaken out.

<comment><USER6> The go race detector (go test -race) is actually really good at finding these kinds of issues, regardless of GOMAXPROCS. I've gotten a lot more value from running my tests with the race detector in a single process than running the tests with multiple processes and hoping to encounter thread-safety issues in a debuggable way.

<comment><USER5> Seems like you should probably never run the tests with -race. Is there a downside from that being the default?

<comment><USER6> The only real downside is that it slows things down quite a bit (30s vs 12s for a full test run in my current project; I've seen both better and worse ratios in other projects). I've also seen a project that made heavy use of generated code and a race-enabled build would choke on the very large source files. But overall I agree that it seems worthwhile to make -race the default.

</comment></comment></comment></comment><comment><USER7> Isn't this a misleading title? The article is essentially the author forgetting to set GOMAXPROCS, not really a lack of parallelism in Go.

<comment><USER8> I didn't take it as a mistake in forgetting. I think this was more of an experiment in understanding. Clearly the author was aware of previous Parallelism vs. Concurrency discussions and this was just an applied test to witness the difference first hand.

</comment></comment><comment><USER9> Another error the author made is adding to a sync.WaitGroup in a different goroutine than the one that waits. This is another rookie mistake that go test -race would probably catch.

<comment><USER10> It does indeed catch it

      $ go test -race -bench=.

      ...

      WARNING: DATA RACE
      Write by goroutine 4:
        sync.raceWrite()
            /usr/lib/go/src/pkg/sync/race.go:41 +0x35
        sync.(*WaitGroup).Wait()
            /usr/lib/go/src/pkg/sync/waitgroup.go:120 +0x16d
        _/home/twirrim/monte.GetPiMulti()
            /home/twirrim/monte/monte.go:56 +0x23a
        _/home/twirrim/monte.BenchmarkGetPiMulti()
            /home/twirrim/monte/monte_test.go:17 +0x62
        testing.(*B).runN()
            /usr/lib/go/src/pkg/testing/benchmark.go:119 +0xc0
        testing.(*B).launch()
            /usr/lib/go/src/pkg/testing/benchmark.go:207 +0x1ba

      ...

And so on.

</comment></comment><comment><USER11> OT: The way we use the terms parallel and concurrent in computer science seems completely backward to me. The dictionary says "concurrent" means at the same time, and parallel lines need not be drawn at the same moment...

Yet in CS we talk of things being concurrent even if they're executed as cooperative threads on a single core and parallel only applies when executing concurrently (at the same time).

<comment><USER12> Perhaps _concurrent_ could be used in place of _parallel_ , but _parallel_ could not be swapped used in place of _concurrent_.

Parallel lines are non-intersecting lines, i.e. lines traveling in identical directions. This is a nice allusion to the way parallelism works by running identical processes that do not interact. The fact that these processes can run simultaneously is a by-product of their parallel structure.

But yeah, the term _concurrent_ is confusing because it can be applied to things that never actually overlap in time. But I can't think of a better term off the top of my head.

<comment><USER13> > _Parallel lines are non-intersecting lines, i.e. lines traveling in > identical directions. This is a nice allusion to the way parallelism works > by running identical processes that do not interact._

Maybe, but there's nothing about parallelism that says the parallel processes have to be (a) identical or (b) not interact, if I am not mistaken.

Two threads running in parallel (and at the same time) might do totally different things (not identical) and might also interact with each other (e.g. consumer and producer threads).

<comment><USER12> Good point. In those cases, the analogy breaks down.

Merriam-Webster offers several definitions for "parallel", though the only definition with a temporal connotation is the definition related to computing:

 _" relating to or being a connection in a computer system in which the bits of a byte are transmitted over separate channels at the same time"_

Meanwhile, "concurrent" references "parallel" as a synonym. Perhaps the terms are rather arbitrary after all, and we just need to get comfortable with their less-than-perfect assignments.

</comment></comment></comment></comment><comment><USER14> Unrelated question, isn't it a bad idea to update the seed for every sample?

<comment><USER15> It is in multiple ways.

First, you are wasting cycles and with so little work to do before reseeding as in the code shown it probably matters quite a bit.

Second, some random number generators need some warm-up time producing lower quality random numbers at the beginning.

Third, if you are reseeding faster than your seed changes, you will repeatedly consume the same sequence of random numbers. I am not sure what the resolution of Now() is, but unless it is on the order of nanoseconds this will heavily affect the shown implementation.

If the resolution is one millisecond and it took 15 seconds to execute on a single thread, then the generated random values changed only every 74 iterations.

<comment><USER16> It is indeed nanosecond precision. [http://golang.org/pkg/time/#Time](http://golang.org/pkg/time/#Time)

<comment><USER15> The value is represented with nanosecond resolution, but that does not imply that Now() will return a different value every nanosecond.

<comment><USER16> You are of course technically correct. It seems the precision returned by Now may be platform-dependent. [https://github.com/golang/go/blob/master/src/time/time.go#L7...](https://github.com/golang/go/blob/master/src/time/time.go#L777)

</comment></comment></comment></comment></comment><comment><USER17> No-one has ever claimed it is, in fact they specifically tell you it isn't, multiple times

A Jan 2013 Go lang blog post

[http://blog.golang.org/concurrency-is-not- parallelism](http://blog.golang.org/concurrency-is-not-parallelism)

reminding people of the Jan 2012 talk Rob Pike did on the subject

[https://talks.golang.org/2012/waza.slide](https://talks.golang.org/2012/waza.slide)

Feb 2011 : Rob Pike on Parallelism and Concurrency in Programming Languages

[http://www.infoq.com/interviews/pike- concurrency](http://www.infoq.com/interviews/pike-concurrency)

I'll skip all the intermediate steps from there back to

Tony Hoare

[http://www.usingcsp.com/](http://www.usingcsp.com/)

<comment><AUTHOR> Yep, and the title is a reference to Rob's talk on this.

I refer to it in the post:

"Rob Pike, one of the creators of the Go language, dedicates an entire talk, "Concurrency is not Parallelism" to this ...."

Wrote the post as a real world example to demonstrate Rob's point.

</comment></comment><comment><USER18> I have just started a Go project for a core aspect of my business, so this information was well timed, for me at least, and gave me a quick overview of concurrency/parallelism in Go.

I will be developing both concurrent and parallel threads in my app, so this was very enlightening.

Thanks to the author for his clear writing style and efforts to educate.

</comment><comment><USER19> Its a decent intro, but I think instead of just jumping into parallel code, its better to read the docs before hand. There are plenty of references to GOMAXPROCS and the thread safety of math/rand (and most of the stdlib).

<comment><AUTHOR> Completely agree, nothing beats the docs.

</comment></comment><comment><USER16> This is a somewhat trivial suggestion, but it would be much more clear to your readers what the speedup was if you aligned the values in the benchmark results.

</comment><comment><USER20> [http://joearms.github.io/2013/04/05/concurrent-and- parallel-...](http://joearms.github.io/2013/04/05/concurrent-and-parallel- programming.html)

Parallel, at least in English, means to have nothing in common with others. On most OSes it is a _process_ affined to a dedicated CPU which is configured to access a dedicated physical I/O device only. Everything else is concurrent.

</comment><comment><USER21> Parallelism is like hunting elephants. The languages we use like Java, Ruby, Python and C++, for example, give you weapons for the hunt on the level of a very strong toothpick at best. Go has apparently upgraded the situation to a 3" pocket knife. Clojure to the level of a proper spear. But we need languages that allow us to completely avoid hunting elephants in the first place.

</comment><comment><USER22> Have sent a PR handling all the wrinkles: [https://github.com/soroushjp/go- parallelism-monte-carlo-demo...](https://github.com/soroushjp/go-parallelism- monte-carlo-demo/pull/2)

* There is a race condition where wg.Wait() might execute before the wg.Add(1) runs * The wait group was not necessary as we are already waiting for all the results from the channel

<comment><AUTHOR> Thanks again, very helpful and updated all relevant code in the post also.

</comment></comment><comment><AUTHOR> Thanks for all the feedback everyone. Incorporated everything to make the code as good as possible, want readers to learn as much as possible. Just to be clear, this article was my way of highlighting Rob Pike's point that concurrency _isn 't_ parallelism, not to make it seem as if Go didn't support or was falsely claiming true parallelism.

</comment><comment><USER23> It looks like you didn't allow for using more than a single process by setting GOMAXPROCS.

Additionally, it looks like you're re-seeding your random engine inside your sample loop, which is very slow. You only need to seed the engine outside the loop at the beginning.

<comment><AUTHOR> Fixed the issue, thanks wpeterson

</comment></comment><comment><USER24> I wouldn't call this "real world". In a real world you are better off distributing these kind of tasks across multiple machines. Multicore parallelism per se is overrated and overhyped.</comment>


WordPress, use esc_html_e() instead of _e() - <AUTHOR> https://github.com/Automattic/_s/issues/231 <comment><AUTHOR> I'd like to highlight the following from the linked chat conversation:

> kovshenin: it's all about how you treat translation files. if you're blindly > merging pull requests with compiled .mo files for your plugin, you're going > to end up with <script> somewhere in there sooner or later

> kovshenin: seen it many times</comment>


The State Department's entire senior management team just resigned - <AUTHOR> https://www.washingtonpost.com/news/josh-rogin/wp/2017/01/26/the-state-departments-entire-senior-management-team-just-resigned/ <comment><USER2> This is virtually unprecedented. You cannot replace people with such specialized knowledge with political benefactors or some random people. It's like replacing all the doctors in a hospital with random non-doctors. While people can learn these complex roles, with no one to train them the end result can only be a mess. Same is true at the CIA, the people who do all the analysis might not be glamorous as spies, but these are specialized people requiring a lot of experience and knowledge. If these type of folks leave, you are basically out of luck for a long time.

<comment><USER3> Regarding the WP's headline:

"All four, career officers serving in positions appointed by the President, submitted letters of resignation per tradition at the beginning of a new administration. The letters from the White House said that their resignations were accepted and they were thanked for their service. The "entire senior management" team suffering this "mass" obliteration consists of Assistant Secretary of State for Administration Joyce Anne Barr, Assistant Secretary of State for Consular Affairs Michele Bond, Ambassador Gentry O. Smith of the Office of Foreign Missions, and most notably Undersecretary for Management Patrick Kennedy, who tried to drag the FBI into Hillary Clinton's cover-ups. Also, while most news reports described the four outgoing officials as holding their offices under both Republican and Democrat administrations, to promote the impression they were nonpartisan fixtures of the bureaucracy who just couldn't handle the arrival of President Trump, that is really only true of Kennedy, and he was only in position for two years before the Obama administration began. Joyce Barr was appointed in 2011, while Michele Bond and Gentry Smith were appointed in 2015. The Hill reports that these four joined "a number of other officials who have departed since President Trump took office last week," but goes on to cite only two names: Assistant Secretary of State for Diplomatic Security Gregory Starr, who retired, and Bureau of Overseas Building Operations Lydia Muniz. CNN notes that Starr only came out of retirement in 2012, and planned all along to retire at the end of the Obama administration, even if Hillary Clinton won the 2016 election... The New York Daily News falsely implied Tillerson's visit to the State Department on Wednesday actually prompted the "walk-outs" that didn't happen..."

[http://www.breitbart.com/national- security/2017/01/26/fake-n...](http://www.breitbart.com/national- security/2017/01/26/fake-news-media-reports-state-dept-mass-resignation- officials-actually-fired/)

</comment></comment><comment><USER4> People seem to be under the impression that the senior civil service creates policy.

They don't. They implement policy. They are handed policy objectives and figure out who needs to do what to make that happen.

This is like having all the seniormost engineers and project managers leave a gigantic company after a takeover.

<comment><USER5> > People seem to be under the impression that the senior civil service creates > policy.

Arguably they _do_ create policy, in the _Yes, Minister_ sense that they'll happily modify or kill a political initiative that would knock things off an even keel. There a lot of things that do or don't happen pretty much heedless of what politicians demand.

Of course, that doesn't derail your metaphor. A good PM can do a lot to guide a client or executive away from their original demands to a better plan that still satisfies them. This is still a huge loss of institutional knowledge and ability to execute properly.

</comment></comment><comment><USER6> Not suprising, this goes beyond republican and democrats. Trump is a first president of the new realignment. He destroyed or will destroy the legacy of Clinton, Bush, and Obama.

Its not democrat vs republican to him. Its nationalist vs globalist. The old guard were globalists. This has Thiel and Bannons fingerprints all over it.

</comment><comment><USER7> Many are pointing out that the senior leadership has been in the State Department under both Republican and Democrat administrations. But given the mess that America's foreign policy has been since 2001, is this _truly_ a disaster?

Tenure does not equal competence. Some would argue this is especially true in government.

<comment><USER8> America's foreign policy has been _implemented_ well, which is the responsibility of these people, who, like judges, are forbidden from partisan political activity.

The philosophical and political decisions that dictate what that foreign policy says are given by the Secretary of State and eventually the presidential administration over these people.

<comment><USER7> _" America's foreign policy has been implemented well..."_

I think that's debatable. The Russian "reset" of 2009 comes to mind; it seems like an abject failure from start (the intended Russian word for "reset" on the symbolic button was actually "overload", but nobody at State caught that) to finish.

I won't argue that, as with any senior departure(s) in other organizations, there is going to be some institutional knowledge vanishing. And that's never good.

</comment></comment></comment><comment><USER9> Resignation against terrible bosses is good an all, but when you're part of a public entity, and you're quitting because of a new leader with opposing views... I don't get it. The lets the door open sooner for that leader to bring in their own people - why not stay and fight as long as you can?

<comment><USER10> TFA suggests that the jury is still out on whether they resigned as a form of protest or were pushed out by the Trump administration.

</comment></comment><comment><USER11> Why was this flagged?

<comment><USER12> Off topic for hackers?

<comment><USER13> Only if "hackers" aren't part of society and won't be affected by monumental changes to the leadership of that society.

So yeah, "off topic for hackers" I guess.

</comment></comment></comment><comment><USER14> Is this due to the revolving door of politics or the FBI investigation into criminal links between the State Department and the Clinton Foundation? Personally I was expecting their departure as it seems perfectly logical for them to evacuate the public service rather than get on board with a non- Democrat presidency.

It's sad to see so much of the government tied so closely to the Clinton machine but it's for the best that they go quietly into the night, now we can move forward without the graft plaguing the Democrats where foreign money infects every corner of DC and PA.

<comment><USER15> From the article: "All are career foreign service officers who have served under both Republican and Democratic administrations."

</comment></comment><comment> rm_-rf_slash If their motives were to protest Trump, I think they may have been better served by sticking around and pouncing at the chance to leak evidence of corruption or something that otherwise undermines the administration, just like Deep Throat having been a disgruntled FBI agent who ultimately collapsed the Nixon Administration.

But the State Department knows a lot more about what is really going on than many of us do. Maybe they wanted no part of it, should there be some kind of post-calamity Nuremberg Trials.

<comment><USER16> Funny how little you can do to Trump at his age. He'll probably be dead before you can do anything to him that matters to him.

<comment><USER17> He gets extremely upset about criticism and lack of respect. His brand really seems to matter to him.

</comment></comment></comment><comment><USER18> I'm conflicted about this.

1\. A giant departure of the old guard (some of whom were set to retire soon) could be a great bit of creative destruction. Think of all the internal processes and tools that new leaders could fix or replace.

2\. Isn't this kind of expected during a regime change? I mean, wouldn't many of them have been Obama/Clinton loyalists? I'm asking not telling.

3\. Like the article states, there is a component of brain-drain. Knowledge that likely won't be reacquired except through mistakes.

<comment><USER19> > Isn't this kind of expected during a regime change?

No, it's not expected during a change in administration. While the positions involved are, I believe, all positions that serve at the pleasure of the President, they people involved are career officers that have served in senior positions under administrations of both parties (as the article states). It would be normal for them to have offered their resignation effective at the moment of transition, but they wouldn't still be there now if they hadn't been asked, and agreed, to stay on. A mass resignation just after the new Secretary of State has been confirmed is _not_ normal.

> I mean, wouldn't many of them have been Obama/Clinton loyalists?

Probably not. While Joyce Ann Barr was appointed to her current position by Obama, she was appointed to her prior position (Ambassador to Namibia) by George W. Bush, and has been with State since 1979. Michele Bond has only held political appointments under Obama, but has been a Foreign Service officer since 1977. Gentry Smith has been with State since 1987, and looks like we was Director of the Office of Physical Security programs before Obama came into office. And the main figure, Patrick Kennedy, was appointed to his _current_ office by George W. Bush, held a different appointed office previously under Bush, and held an appointed position for essentially the whole Clinton Administration; he's been a Foreign service office since 1973.

Between the four, it's like 152 person-years of foreign-service experience.

These guys aren't partisan loyalists of any stripe.

<comment><USER20> Only _one_ (Kennedy) held his respective position before Obama, and he entered after the Democrats controlled Congress.</comment></comment></comment>