Deutsche Bank Whistle-Blower Spurns $8M SEC Reward - <AUTHOR> http://www.bloomberg.com/news/articles/2016-08-19/deutsche-bank-whistle-blower-spurns-8-million-reward-from-sec <comment><USER2> Here is the whistle-blower's opinion piece on FT- [http://www.ft.com/cms/s/0/b43d2d96-652a-11e6-8310-ecf0bddad2...](http://www.ft.com/cms/s/0/b43d2d96-652a-11e6-8310-ecf0bddad227.html)

 _Although I need the money now more than ever, I will not join the looting of the very people I was hired to protect. I never intended to turn a job in risk management into a crusade, but after suffering at the hands of the Deutsche executives I will not join them simply because I cannot beat them.

I request that my share of the award be given to Deutsche and its stakeholders, and the award money clawed back from the bonuses paid to the Deutsche executives, especially the former top SEC attorneys.

I would then be happy to collect any award for which I am eligible. _

<comment><USER3> Basically he seems to be saying that when the SEC impose a fine on thieves, they are just meta-thieves: thieves robbing thieves, who effectively participating in the original looting by proxy, rather than helping.

<comment><USER4> I took it differently. If the fine was coming from the executives paychecks he wouldn't be opposed to it. But as it stands the fine is coming from the shareholder's pockets who have already been stolen from. So all he would be doing is becoming a thief in addition to the executives.

<comment><USER3> Yes; that's what I mean. First move the stolen goods back to the victims from the robbers. _Then_ apply any additional penalty.

</comment></comment></comment></comment><comment><USER5> Wealthy people benefit at every step of the legal process. If the sec did this, had bonuses being used to pay fines, people would buy insurance against it, and the insurers would pay it if and when it happened. Maybe that would be helpful as insurers would want to do due diligence.

But I'm not at all sure that's a solution.

<comment><USER6> Most insurance policies have quite a few clauses under which the insurance won't be paid out fully or at all.

For example you can't take out an insurance policy on your house and set it on fire and claim the insurance afterwards.

Life insurance policies usually have an "under suspicious circumstances" or "self inflicted death" clauses that restrict the payout of the policy as well as the usual "in good faith clause" so if you have a life threatening condition and you hid it from the insurer you can kiss your policy goodbye.

Insurance policies that provide coverage in case of loss of work exist but those are limited to conditions in which you lost your work due to a health issue, got fired etc. and you usually have to meet pretty strict conditions to get any payout from the policy.

A CEO can most likely find some insurance company to cover their compensation package but you'll be your ass there will be a "fraud" or "gross incompetence" clause in it that would prevent them seeing a penny.

<comment><USER7> In general this is called adverse selection, and to the extent that the insured can affect the probability of the loss, the risk is not insurable so these clauses are existentially necessary for the insurer [1].

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

</comment></comment></comment><comment><USER8>
      > He said his ex-wife and his lawyers had claims to a
      > "portion" of the money, without being more specific.

I imagine his lawyers (and ex-wife?) will be a little annoyed.

<comment><USER9> No, they get to keep their portion.

<comment><USER10> If he doesn't get paid, there is no portion.

<comment><USER11> This is incorrect.

</comment></comment></comment></comment><comment><USER12> most interesting is that he compares deutsche to a smaller firm that committed similar crimes (Trinity Capital). There executives are held liable and fined. At deutsche, where SEC senior lawyers and deutsche senior lawyers have revolving doors, find the company not the execs.

that (which would help prevent moral hazard) seems to be his redline

<comment><USER13> Where is the Netflix documentary that goes deeper into this pattern

how about John Oliver

</comment></comment><comment><USER14> I don't know which is more incredible, the fact that the SEC wants to give someone 8 million dollars for doing their job and having a sense of morality or that we live in a society where doing one's job is and being moral is newsworthy.

Where does all the money that SEC collects in fine go? Nobody seems to know. It doesn't seem to go to anything that benefits the society that is regularly victimized by these white collar criminals. It doesn't go to an education fund for underprivileged people or donated to disease research. It just seem to go into to some discretionary slush fund that the SEC controls the purse strings on. Case in point, an 8 million dollar reward for doing the right thing. They dole out hundreds billion of dollars in fines a year. The dollar size of the individual settlements no longer phases the causal reader.

The SEC seems like another part of this crooked banking machinery. Only in the United States can you pay a fine of 10s of millions of dollars and not have to admit wrong dong. Talk about theater. The fact that they were maybe going to start requiring admission of wrong doing in _certain_ was itself a news item:

[https://www.washingtonpost.com/business/economy/sec-to- requi...](https://www.washingtonpost.com/business/economy/sec-to-require- admissions-of-guilt-in-some- settlements/2013/06/18/9eff620c-d87c-11e2-a9f2-42ee3912ae0e_story.html)

In 2014 the SEC collected over 4 billion dollars in fines! [http://wealthmanagement.com/industry/sec-collects- record-41-...](http://wealthmanagement.com/industry/sec-collects- record-41-billion-fines-2014)

I would love to buy this guy a beer. I also think he would accept and appreciate it.

<comment><USER15> SEC fines go to the US Treasury. DOJ fines may go to Treasury, into a general victims fund, or gets offset against DOJ's budget.

<comment><USER14> Yes that much is known. Then what happens to that money once it's added to the Treasury's balance sheet? How is allocated or apportioned? We are talking about billions of dollars a year. Nobody knows. Its a black box.

<comment><USER15> It's not allocated or apportioned. It goes into the Treasury's general find. So it goes to paying all of the things the government pays for: Medicare, social security, and war.

<comment><USER14> No, taxes fund those.

<comment><USER15> The US government spends more than it brings in with taxes. Fines deposited into the treasury general fund make up part of that difference.

</comment></comment></comment></comment></comment></comment><comment><USER16> Why not use the money to fund a lawsuit to get the results he wants?

<comment><USER17> Maybe his comment "I will not join the looting of the very people I was hired to protect." explains that.

<comment><USER16> Right, but didn't the bank still have to pay the money?

<comment><USER18> If the bank didn't have to pay the fine, the money would have went to the shareholders. But it was the shareholders who were being defrauded in the first place that made the guy become a whistle blower.

The crooked executives got their bonuses and didn't have to pay a fine.

</comment></comment></comment></comment><comment><USER19> Part of me thinks that this guy is a hero but my cynical side thinks that maybe he can get more out of the situation in the long term (in terms of reputation and future clients/contracts) by turning down the money (given that this news has worldwide coverage).

Regardless of the motivation though; I think this move is good for society and sends the right message.

<comment><USER20> 8M is some serious cash, and this story will be forgotten next week. There's no need to put down people taking moral decisions. Cynicism is exactly the thing perpetuating problems like this, resist that in yourself.

<comment><USER19> Unfortunately, cynicism works. The cynical view is almost always the correct view. Every small success I've had in my life was won through the power of cynicism.

For any event, if I have two possible explanations to choose from:

a) A simple, pure, altruistic explanation

or

b) A complex, contrived 'evil' explanation

I believe 'b' by default; unless there is sufficient proof to show otherwise. It needs to be reasonable proof, not consensus - Consensus means nothing; just look at all the different religions that exist - We know for sure that at least some of them must be wrong even though they have millions or billions of followers.

I agree 100% though that it's a shame that the media doesn't do more write ups on these kinds of events - Reading the article, I also have the gut feeling that this is the kind of news which will be forgotten tomorrow.

This is terrible when you consider that this article is actually pretty interesting/noteworthy in itself but also because it could lead to a lot of even more interesting articles (which will probably never be published unfortunately).

Even lottery winners get better news coverage than this.

<comment><USER20> Cynicism works, but not for the bearer. Cynical people are easy to manipulate, their smug worldview notwithstanding.

"Cynicism masquerades as wisdom, but it is the farthest thing from it. Because cynics don't learn anything. Because cynicism is a self-imposed blindness, a rejection of the world because we are afraid it will hurt us or disappoint us." \- Stephen Colbert

</comment></comment></comment></comment><comment><USER21> Who's losses where they hiding? I have a few theories of whose trading counted for most of these losses.

<comment><USER22> These were paper / model-based losses, i.e., they were for derivatives whose value dropped during the financial crisis, but whose value went back up after the crisis. Because they were illiquid and not traded during the crisis, these losses were never actually realized. See [http://dealbreaker.com/2012/12/deutsche-bank-ignored-some- lo...](http://dealbreaker.com/2012/12/deutsche-bank-ignored-some-losses-until- they-went-away/)

<comment><USER21> > these losses were never actually realized

a good portion of them were, but were further covered up by gains made by "fixing" Libor in 2008/9.

</comment></comment></comment><comment><USER23> Tangential: why use a rare (and dying![0]) word for _turns down_ ? I had to look up whether he was unhappy about it, disapproving of it, or turned it down.

[0]: [https://books.google.com/ngrams/graph?content=spurn&year_sta...](https://books.google.com/ngrams/graph?content=spurn&year_start=1600&year_end=2004&corpus=15&smoothing=3&share=&direct_url=t1%3B%2Cspurn%3B%2Cc0)

<comment><USER24> spurn is not a rare word. even according to your link its use has held since pretty much the 1980s.

<comment><USER25> I saw someone use the phrase "spurned into action" the other day, which may be an autocorrect fail but if not it was a clever usage of the word.

<comment><USER26> For clarification: [https://en.wiktionary.org/wiki/spurn#Verb](https://en.wiktionary.org/wiki/spurn#Verb) [https://en.wiktionary.org/wiki/spur#Verb](https://en.wiktionary.org/wiki/spur#Verb)</comment></comment></comment></comment>


BananaBread: Cube2 Port to WebAssembly - <AUTHOR> https://kripken.github.io/misc-js-benchmarks/banana/index.html <comment><USER2> I was hoping for a rust port and not a kludge.</comment>


Google walkout live: Pictures of Google workers leaving their desks in protest - <AUTHOR> https://www.businessinsider.com/google-walkout-live-pictures-of-protesting-google-workers-2018-11#one-protester-brought-a-megaphone-to-the-walkout-3 <comment><AUTHOR> Original title (too long): Google walkout live: Pictures of Google workers leaving their desks in protest over sexual misconduct

</comment><comment><USER2> Rather than trying to change company policies about harassment, why aren't they trying to change the law?

A company shouldn't be the one to decide if harassment is or is not okay.

<comment><USER3> The way to change the law is by starting the movement in the company. I'm sure people will talk about not allowing forced arbitration by the law after this movement.

</comment></comment><comment><AUTHOR> As much as I hate Google, this is pretty cool. They even have donuts for everyone.

</comment><comment><USER2> Will they get paid for the time they are walking out?

<comment><USER3> No. In Google you're supposed to try to go for promotion, and nobody cares about the walkout in the promotion commitees, so at the end you have to work extra.

If you don't want promotion though, life's easy @ Google.</comment></comment>


Quality Software Costs Money – Heartbleed Was Free - <AUTHOR> http://queue.acm.org/detail.cfm?id=2636165 <comment><USER2> Simply throwing money at FOSS will not fix any security bugs. The money will be soaked up by those who are good at soaking up free money and making it disappear, that is all.

If you want to spend money wisely on FOSS, you do that by hiring someone to implement some specific change to a specific program: something that can be estimated, scheduled and tracked to completion.

"Find and fix security bugs in software component X" is not really a specific development task; it's a crapshoot. You cannot put a concrete amount of time and dollar figure on it. A team could burn through months of salary and not come up with anything. On a weekly status report, you could say "All week long, I looked painstakingly through such such directories and didn't find any security issues" even though you spent maybe ten minutes on it, and the rest of the time on HN. Even if someone else finds issues in the same code, nobody can prove that you didn't spend that time; you just overlooked those things. (For this reason, it's better to involve tools: if you cannot easily lie that you applied a certain code verification tool and found nothing, because someone else can run the same tool.)

This is probably why Hearbleed was not found earlier. Even though the software is packaged and "supported" by all kinds of vendors (for instance vendors of hardware who provide FOSS-based firmware and support it for their customers), they don't spend resources on auditing all the FOSS packages that they bundle and they don't do that because they know it is a big money hole. They implement things customers ask for, and respond to outside reports of issues (from customers or elsewhere).

<comment><USER3> Maybe you just enjoy hyperbole but while part of what you say is correct (finding security vulns in software is unavoidably a bit of a crapshoot) your conclusions are wrong.

Finding deep, serious vulns like this in software can currently only be done by human beings. Tools are better at being authoritative but can only find vulns of a given type. For example static analysis is a great fit for any vuln that boils down to a dataflow problem, user controlled source -> ... -> dangerous sink. XSS, sql injection, etc fit this model. Fuzzers are great at finding bugs in parsers (and there are a surprising amount of parsers in the world, 90% of which should never have been written). Instrumented dynamic analysis can do awesome work for memory issues. I explain all this to show there are areas where tools are fantastic for their area. But there are many areas for which tools cannot help at all, heartbleed was one of these areas.

The best security tools available were (presumably) run across openssl before and (certainly) with increased scrutiny after heartbleed. None of them found it. Simple limitations in static analysis lead me to believe they would never have found it on their own (most static analysis tools stop at 5 levels of indirection) Some background:

1\. [http://blog.trailofbits.com/2014/04/27/using-static- analysis...](http://blog.trailofbits.com/2014/04/27/using-static-analysis-and- clang-to-find-heartbleed/) 2\. [http://security.coverity.com/blog/2014/Apr/on- detecting-hear...](http://security.coverity.com/blog/2014/Apr/on-detecting- heartbleed-with-static-analysis.html) 3\. [http://www.grammatech.com/blog/finding-heartbleed-with- codes...](http://www.grammatech.com/blog/finding-heartbleed-with-codesonar)

If you have immature projects sure run tools against it and some bugs will shake out. But if you want to find the next heartbleed a tool wont do it which is your mistaken conclusion.

The question then becomes how to cultivate and encourage more people to find vulns like this. Money seems like a good incentive for most, although Neel Mehta did it of his own volition. I dont know the answer to that question but things like googles project zero are exactly what I would try first.

<comment><USER2> What is my mistaken conclusion? Okay, so all known tools have been exhausted, so now you're down to people and their talent for finding bugs. What people should you pay? How do you know you're getting your money's worth out of those people? What if there really is nothing left to find: are you prepared to believe six months' worth of status reports which say "found nothing?"

My point wasn't that only tools should be used; I put that in as an aside (wrapped in glaring parentheses!). If I hadn't, someone would have pointed it out for me in a reply: "Hey you fool, of course you can track whether people are really bug hunting and being honest about their activity, if they are using tools whose results are reproducible."

Of course tools only find things that they are designed to find. My point was not at all that tools should be used because they will find the next Heartbleed, but rather that you have some hope of tracking the progress of a security team that is applying tools.

The topic of submission isn't about what is the best way to find security holes, but about spending money on it. My view is that spending money wisely requires some definition of a "return on investment" and tracking of concrete goals. This is hard to do with security research (once tools-based approaches have been exhausted).

<comment><USER3> Your acute mistaken conclusion> Simply throwing money at FOSS will not fix any security bugs.

I can't think of anything closer to "throwing money at FOSS" than something like the internet bug bounty. Google/Facebook/etc collected a pile of money and put it up for a bug bounty for software used by most of us on the internet. [https://hackerone.com/ibb](https://hackerone.com/ibb) click through to the projects and look at all the bugs that have been rewarded. [https://hackerone.com/internet](https://hackerone.com/internet) and [https://hackerone.com/sandbox](https://hackerone.com/sandbox) are the coolest.

My interpretation of your general conclusion is: without quantification spending money/effort on security is not useful. I disagree with that because its the nature of the beast. Its useful to have people look through code and some weeks there will not be a lot of findings. Its absolutely okay for a status report to read "I tried this, thought think might work, investigated the way X works to ensure it doesn't do Y - 0 total findings".

What people to pay & how to know you are getting your moneys worth are not unsolvable problems. For example at the company I work with we hold yearly bake-offs giving different security consultants the same code to see what bugs they find, we then use the best 2 or 3. Thats an approximation sure, but it solves your what people to pay problem.

How to know if you are getting your moneys worth, this is harder and rubs against the essence of security/QA work. No one knows what lurks in randomCode.tar.gz. That is the whole point of the exercise. But apparently the world agrees its useful to have corporate application security teams to do some vetting of the code looking for vulns, more useful that nothing at least. More useful than tools? Well thats a weird comparison because you likely need security people (or engineers with a bit of security background at least) to run some tools. I think tools vs people is a different debate but I would bet on people even at an equal cost point.

I agree quantification of security research is hard, I disagree that because we can't quantify something it is not useful.

</comment></comment></comment></comment><comment><USER4> I wouldn't be allowed to build a skyscraper out of fatigued and rusty scrap iron. There is no reasonable amount of money and effort that could make that work, and just wanting to try would mark me as unqualified to do construction.

The heartbleed bug was a classic buffer overrun of the kind C has been causing for decades. When someone comes along saying "If you pay me, I'm going to write security software using unchecked pointer arithmetic" how do we as a community agree that the only response will be "That's a terrible idea and nobody will pay you for it"?

<comment><USER5> C security software is being massively funded and is very successfully the basis for trillions of business, eg. the linux & windows & mac kernel. But, according to #1 voted random psuedonymous internet commenter, this is obviously a terrible idea.

<comment><USER6> All of which have had massive security flaws, including hundreds or even thousands of zero-day remote exploits. And that's just counting the C memory corruption bugs, not actual algorithmic bugs.

If C requires me to only code in certain styles and only use certain tools to only get _some_ increase in safety... Why not just use a language that builds safety in from the beginning?

That said, we're just going to continue soldiering on because of horrible programmer attitudes like yours. Everyone wants to believe that they are a unique little snowflake who wouldn't make those kinds of mistakes (oh wait, Coverty couldn't catch Heartbleed, oops) _and_ choose the comfortable fiction of a Just World where people get what they deserve. After all, if people just drove better we wouldn't have so many accidents, so why bother with air bags and seat belts? Better hope everyone else drives better too or you'll be changing all your passwords and keys with the rest of us schlubs no matter how fancy your valgrind test suite is.

<comment><USER7> "If C requires me to only code in certain styles and only use certain tools to only get some increase in safety... Why not just use a language that builds safety in from the beginning?"

What language actually meets the need? GC'd languages haven't proven themselves useful for things like OSs, databases, or libraries that are deployed extremely widely in many environments.

So what safe, non-GC language are you advocating?

<comment><USER8> This is irrelevant (and false).

GC is orthogonal to memory safety.

(And all of those things have been successfully been done in GC'd languages.)

<comment><USER7> Not sure what I said was false?

I agree that GC and memory safety are orthogonal -- see rust. But there aren't a lot of options if you want safe and non-GC, which was my point.

And GC is just not an option sometimes. GC has been around forever but it just hasn't proven itself in a lot of domains. I don't think it's for lack of trying, I think it's because sometimes you want to manage the memory.

</comment></comment></comment></comment></comment></comment><comment><USER9> This is why non-profit organizations such as the Apache Foundation and the Linux Foundation are extremely important. They act as a conduit for funds and resources to these important projects.

Organizations like Team Cymru also play an important role in discovering and mitigating exploits in both open and closed source software.

Perhaps there should be an open source crypto foundation or a crypto umbrella at the Apache Foundation to help foster and secure these types of very important projects.

<comment><USER10> It's my understanding that you cannot get tax-exempt non-profit status purely for developing and distributing software, regardless of license.

It's my understanding that software-oriented tax-exempt organizations, 501(c)(3)s, like the Apache Foundation categorize themselves as educational foundations in order to get tax-exempt status. It's hinted in the article that it's a pain to do FOSS despite altruistic intentions. I'm surprise that this shortcoming of the tax code wasn't underscored more.

If we are serious about getting more funding for open source, we should be lobbying to get FOSS (for some definition) categorized as providing scientific benefit or else add a new category of non-profits that provide free software (for some definition of free).

[http://en.wikipedia.org/wiki/501(c)_organization](http://en.wikipedia.org/wiki/501\(c\)_organization)

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

<comment><USER9> This is definitely true. The Yorba Foundation is a recent relevant example where the tax code failed.

I think the risk that the IRS is trying to mitigate is for companies to establish a development only organization and single-licensing it to a shell to sell. We will need to find a nice dividing line that pushes FOSS causes forward while simultaneously preventing the creation of loop holes exploitable by for-profit entities.

<comment><USER11> > I think the risk that the IRS is trying to mitigate is for companies to > establish a development only organization and single-licensing it to a shell > to sell.

That seems easy to fix. Require that the software be available to the general public under the same terms. Which is probably how it already is, if I recall correctly a non-profit can't exist solely to benefit a private party.

</comment></comment></comment></comment><comment><USER12> There's a saying in the FOSS community: « Good, Cheap, Fast. Pick two. » A quick search on Google points to what seems to be called the Project Management Triangle:

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

This author seems to imply that FOSS needs money in order to be good. That's not exactly true. It can help but that's not the only way.

He says for instance:

« It would not even be close to morally defensible to ask these people to forgo time to play with their kids or walk their dogs in order to develop and maintain the software that drives the profit in other people's companies. The right way to go—the moral way to go—and by far the most productive way to go is to pay the developers so they can make a living from the software they love. »

Sure, you can pay them. But you also can just be patient, and let them invest as little time as they want.

Free and Open Source Software is free so it's comprehensible that people usually don't work on it full time. But they do work on it and the result will turn out to be good. Eventually.

<comment><USER13> «It would not even be close to morally defensible to ask these people to forgo time to play with their kids or walk their dogs in order to develop and maintain the software that drives the profit in other people's companies. The right way to go—the moral way to go—and by far the most productive way to go is to pay the developers so they can make a living from the software they love.»

I'm... not really sure that "giving software away for free and then making impassioned posts on the Internet that people have a moral obligation to pay you to continue to work on it" is a strategy that has "success" written all over it.

</comment></comment><comment><USER14> Isn't this just running afoul of the fungibility of money causing issues placing a value on something?

That is, to focus on the money that OpenSSL gets as the only way that it is given value is to ignore all of the developers that directly contribute to it. Because, they aren't paid elsewise?

</comment><comment><USER15> What if there was some kind of public/privately funded foundation that could hire open source developers to work on their projects on a part-time or full- time basis?

Something like those physicist think tanks that Feynman refused to join. Along those lines, maybe universities could have that kind of thing too.

<comment><USER16> I believe any of the Mozilla, Apache, FreeBSD, or OpenBSD Foundations more or less fit the bill.

</comment></comment><comment><USER17> Interesting article - I liked how it was based on a personal experience. As a side note, there's a pretty serious misunderstanding of the Apache Software Foundation in the article. Apache provides no money to developers. Instead it provides community support, infrastructure, and legal help to more than 150 projects under its umbrella. In particular the Apache focus on building communities means that a project has a life beyond involvement of a single contributor or company. Fundraising for development is reasonable and helpful, but must be balanced with contributor diversity. Otherwise the the project will fall apart when the funding stops, leaving users in the lurch. (note - I'm an Apache Software Foundation member, though I speak for myself in this comment).

</comment><comment><USER18> Non-free software is made by companies which are subject to national regulations. The "give us a backdoor to your security product or it will get very ugly for you." kind of regulation. Being non-free, those back doors are much harder to find than in Open Source SW. Even if you found a back door, publishing it would be risky, as the SW company would immediately sue you for violating the EULA.

</comment><comment><USER19> Has anyone ever tried to push seriously to just have governments fund more open source software development? It just seems that open source software suffers from all the funding difficulties that go along with being a "public good" (in the economic sense). And there's a well-established mechanism for creating public goods: a government.

<comment><USER20> I think you'd be extremely hard pressed to make the argument that tax dollars should fund the development of Node, or WordPress, or a JavaScript calendar plugin.

<comment><USER21> How about software that much of the IT infrastructure of the country sort of relies on? The obvious example here is again OpenSSL. I don't think that the argument is that the government should fund _all_ open source software.

</comment></comment></comment><comment><USER22> Maybe Universities should do more. As part of every undergrad CS course, get extra credit for finding and accurately reporting a bug in any well-known FOSS package. Bonus credit if it is a security-related bug. Even more credit for actually fixing the bug.

<comment><USER23> I would hate to see that happen. In a project with a sufficiently good review processes, the investment of time for helping somebody contribute the first patch(es) will far outweigh the benefit, and amortise only for developers who stay with the project for longer.

Add extrinsic motivation to contribute patches, like extra credit, and what you will end up doing is abusing experienced open source contributors as teaching assistants instead of an actual contribution to open source.

Let's not forget that one of the guys who did open source to further their academic career, only to drop it later, was Robin Seggelmann, the creator of Heartbleed.

<comment><USER22> There's certainly an argument for research on this topic. The core theory of open source quality is "many eyes" and in the similar case of Wikipedia, it works very well: much better than Encyclopaedia Britannica with it's long-term expert curation. Whether or not it works for open source largely depends on the competence of the individuals vs the complexity of the bugs. However, most bugs are caused by trivial errors that just aren't easy to spot and happen to pass the test cases. That's where a high-volume, low quality process like crowd sourcing can be very effective: someone, somewhere will spot those stupid errors, provided you have sufficient eyes on the code.

The idea that people should be discouraged from working on FOSS projects unless they plan to commit to one project is against the principles of open source, namely that it is open. In fact, if this were done over the course of a 3-4 year course, it's likely that each student would stay with one project anyway, and very likely they'd continue contributing after graduation. I agree that a "one off" exercise would just lead to an influx of inexperienced coders and "do my homework" questions on mailing lists, but that's not what I had in mind at all. Ultimately, any university implementing such a programme should be thinking about the net benefit to the community and doing things like penalising students for filing duplicate bug reports to mitigate against possible negative consequences.</comment></comment></comment>


James Gosling witnesses and blogs Reno airshow crash. - <AUTHOR> http://nighthacks.com/roller/jag/entry/i_m_alive <comment><USER2> I know this is the internet and everyone (including me) watches every video link to any event, but please seriously consider whether you really want to watch the links people are posting here.

Effectively what happens is the plane is being followed by the camera, then when it crashes the camera loses focus for 2s, then refocuses in on a dead body, pans around to a few dead bodies, and zooms out to show you a bunch of bodies and some wreckage. Like Gosling says in his post, there are no flames, no gore, not really even any smoke. What makes it so disturbing is that it's just lifeless bodies, instantly killed... just lifeless, no blood or explosions. I suppose that some of them may be unconscious, but just knowing that Gosling said most were dead or uninjured kind of makes me think otherwise.

<comment><USER3> Interesting to contrast Mr. Gosling's account to this one: [http://hosted.ap.org/dynamic/stories/U/US_AIR_SHOW_CRASH?SIT...](http://hosted.ap.org/dynamic/stories/U/US_AIR_SHOW_CRASH?SITE=7219&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2011-09-16-21-13-11)

A lady ~90ft (or nearly twice the distance from the disaster as Mr. Gosling) from the accident said, "I saw body parts and gore like you wouldn't believe it. I'm talking an arm, a leg," Higgins said "The alive people were missing body parts. I am not kidding you. It was gore. Unbelievable gore."

I'm inclined to believe both of these are true, but I would not be surprised if one of these witnesses, in their understandable shock, had their minds fill in the blanks in their memories, wiped clean by stress. I've been through a firefight or two myself and IMO these life-and-death situations are a mix of crystal clarity and swiss cheese memory. Sometimes the brain puts things there that weren't.

<comment><USER4> I have seen the videos, and there were plenty of missing limbs. Don't watch if you're sensitive to that.

</comment></comment></comment><comment><USER5> Here's the post, since his blog is getting hammered by Reddit right now:

I'm alive Friday September 16, 2011

Just fucking barely. I'm at the air races in Reno with a bunch of friends and a horrific accident just happened. One of the very high end racers, going about 500 mph, lost control and nose dived straight into the audience. The news is currently saying that the plane missed the grandstand, but that's only technically true: in front of the grandstand there are several rows of box seats. It impacted right in the middle of them. I was in a box seat with my friends only 50 feet from the impact. I was watching the plane as it lost control, so I saw the whole thing. The impact happened so fast, there was hardly any sound: just one huge shock wave. No fireball. The plane, and many people, disintegrated instantly, right in front of me. There were bodies everywhere. No crash you've ever seen in a movie is even remotely authentic.

Update: it's already on YouTube. I was in the middle of the dust cloud you see around the impact. They're saying "30 serious injuries" but I know that's a long way from the truth. At least that many died instantly in the impact. I suspect that there were not a huge number of serious injuries. It was not a small airplane. You either died or you didn't. I didn't. My brother and I are still shaking.

Another Update: They're now officially calling it a "mass casualty situation". The plane was Galloping Ghost, piloted by Jimmy Leeward. It was a very cool, highly modified, P51 mustang with a very unusual approach to engine cooling. I doubt that this was at all connected to the accident - it looked like a control system failure.

<comment><USER6> Coral cache: <http://nighthacks.com.nyud.net/roller/jag/entry/i_m_alive>

</comment></comment><comment><USER7> As a counterpoint to the various people arguing that we shouldn't see this, that you shouldn't watch the video, etc., I want to argue that the modern US aversion to contemplating death has become pathological. Death is the one unavoidable fact about life, the only thing you are guaranteed to do, and the sooner and more deeply a person understands that, the better. It's difficult, it's unpleasant, but it's necessary.

Ten of the traditional forty subjects of Buddhist meditation are the _asubha_ , the "repulsive subjects", corpses in different states. Meditating on these is intended to help you come to terms with your own mortal nature, and to prevent you from coming to worship things of the body as if they deserved it. [http://en.wikipedia.org/wiki/Kamma%E1%B9%AD%E1%B9%ADh%C4%81n...](http://en.wikipedia.org/wiki/Kamma%E1%B9%AD%E1%B9%ADh%C4%81na#Forty_meditation_subjects)

In many Buddhist areas of the world, you can buy sets of cards with images of all forty, to be used as a meditation aid. (It's easier to hold your attention on a subject when you're looking at a picture of it.) Imagine the righteous indignation of the preserve-your-ignorance squad here if such a thing were to be displayed.

</comment><comment><USER8> Here's the whole video (it happens about 39 minutes in.) Please note it's somewhat disturbing:

[http://www.livestream.com/loadedtv/video?clipId=pla_b2efcd7d...](http://www.livestream.com/loadedtv/video?clipId=pla_b2efcd7d-ed04-4edf-89e8-f21ff436ccb4)

This is really tragic.

</comment><comment><USER9> This is the fourth fatal air show accident/crash I've seen in less than a month:

[http://www.reuters.com/article/2011/08/21/us-kansas- airshow-...](http://www.reuters.com/article/2011/08/21/us-kansas-airshow- crash-idUSTRE77K04T20110821) <http://www.bbc.co.uk/news/uk-england-14602900> [http://www.wxyz.com/dpp/homepage_showcase/accident-at- selfri...](http://www.wxyz.com/dpp/homepage_showcase/accident-at-selfridge- air-show)

</comment><comment><USER10> My wife and I had air race tickets for tomorrow and Sunday right in that general area. They were box seats. That (likely) malfunction in Galloping Ghost could have happened when we were there, so we're counting our blessings tonight. But we feel awful for those involved. As stupid as these races seem, everyone loves them here. Part of me hopes they can continue.

<comment><USER11> Auto racing used to be a lot more dangerous for spectators than it is today. We're only 30 years or so removed from a time when bails of hay and waist-high walls were all that separated crowds from the track. Go back a little bit further and you'd see things that would be laughably unsafe by today's standards like gigantic trees lining the sides of several race tracks.

I'm not even sure where you could begin improving safety for crowds at air racing events without forcing them to move much further back from the action. With cars you can move back 50 feet, put up a barrier, and improve your safety tremendously. For planes, you'd probably have to move the crowds way further back than they are now. I imagine being up close and in front of the action is part of the spectacle though.

One unorthodox approach could be restricting these events to landscapes where the crowds could be on an elevation above the planes. I watched the video and in the background are hills/mountains where crowds could safely be located above the planes.

<comment><USER12> If something's going to go wrong in big uncontrollable way, it's most likely going to be in (or coming out of) a corner. These races should see fast turns being made way outside of the viewing area. Quite simply, an aircraft should never be in a situation where it is flying towards a crowd.

</comment></comment></comment><comment><USER13> for those not wishing to see the videos (I'm in that group) here's two photos showing exactly what happened minus the gore

immediately prior: <http://imgur.com/QuAnm>

impact: <http://imgur.com/CcS91>

<comment><USER14> One amazing thing about the 2nd photo: The self-preservation instinct of the audience still hasn't kicked in. Spectators are craning their necks to see what's happening, and photography dude is just manning the camera.

<comment><USER15> You have to realize how fast it happened, I'm sure their brains have barely had time to process what happened let alone telling the rest of their body to get the hell out of there. 400-500mph is REALLY fast.

<comment><USER16> Here's a video from a different angle that really shows how fast it happened.

<http://edition.cnn.com/2011/US/09/17/nevada.plane.crash/>

</comment></comment></comment></comment><comment><USER17> Here is a clear version of the youtube video. <http://www.youtube.com/watch?v=Ybgd0EfxWCI>

</comment><comment><USER18> I'm never watching any videos of this nature. Life is too precious to glorify losing. I'm weep for all those involved in this tragedy.

</comment><comment><USER19> This is disaster porn. You can't learn from it. It is just to see what it looks like when an airshow goes horribly wrong.

<comment><USER20> Well... unless you consider gratitude and empathy worth learning.

</comment></comment><comment><USER21> The youtube video linked on his story has been removed by Youtube for "content violations". [http://www.youtube.com/watch?v=rCNePeKn3Tg&feature=playe...](http://www.youtube.com/watch?v=rCNePeKn3Tg&feature=player_embedded)

<comment><USER22> Here's a currently-working video; I'm not sure if it's the same one: <http://www.youtube.com/watch?v=yYaEh9h5aM0> .

There's a Wikipedia article about the crash, with a bunch of news links: [https://secure.wikimedia.org/wikipedia/en/wiki/2011_Reno_Air...](https://secure.wikimedia.org/wikipedia/en/wiki/2011_Reno_Air_Races_crash)

Another angle, showing the plane climbing high into the sky before turning over and diving: <http://www.youtube.com/watch?v=ndd9PVDM3jU>

Assorted photos of the crash and aftermath (no gore, but beware): [http://www.rgj.com/apps/pbcs.dll/gallery?Avis=J7&Dato=20...](http://www.rgj.com/apps/pbcs.dll/gallery?Avis=J7&Dato=20110916&Kategori=EVENTS05&Lopenr=109160802&Ref=PH)

<comment><USER23> To give the uninitiated an idea of what happened, whenever a plane at the Reno races experiences a mechanical problem, the pilot points the aircraft vertical and bleeds off all their forward speed. Once they're high enough, they level off and glide to the runway for a landing.

For the 'Unlimited' class of race aircraft, this typically occurs once a day during the races. These aircraft are running 3000hp engines, and race at speeds around 500mph.

Link #3 has the best angle on this maneuver. It looks like the pilot lost control shortly after pulling the plane vertical, after which it rolled 180 degrees and pitched straight to the ground.

<comment><USER24> Watching link #3, it look like an accelerated maneuver stall: the left wing appears to drop (which I think would be normal stall/spin behavior for clockwise rotating prop) after the abrupt pull up, the aircraft rolls inverted, and there isn't sufficient altitude to recover.

<comment><USER25> Here's a pic of the plane right before the crash: [http://cessnateur.blogspot.com/2011/09/reno-crash-trim- tab-t...](http://cessnateur.blogspot.com/2011/09/reno-crash-trim-tab-to- blame.html)

<comment><USER24> The left elevator trim panel looks gone. By itself I wouldn't think that would cause loss of control, but could have precipitated events in a chain often seen in air accidents.

<comment><USER26> It is probably fully deflected. If it were deflected inadvertently, it would be very difficult to recover control of airplane pitch at the speeds and low altitudes where this occurred.

Another possibility is that the elevator control itself was lost and the pilot is desperately attempting to regain control using the trim tab to control airplane pitch.

<comment><USER25> There's a new picture of the plane (though I can't find it not embedded in video) showing the tab detaching. In the best picture I've seen the tab is perpendicular to the tail and then in the next frame is completely gone.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> pretty bad, but could have been a lot worse.

i.e. like the Sknyliv disaster(really recommend not watching the video of that one)

</comment><comment><USER28> An article about the plane and the pilot:

[http://www.thestarpress.com/article/20110917/NEWS01/10917033...](http://www.thestarpress.com/article/20110917/NEWS01/109170334)

</comment><comment><USER29> Terrible tragedy.

[http://www.rgj.com/apps/pbcs.dll/gallery?Avis=J7&Dato=20...](http://www.rgj.com/apps/pbcs.dll/gallery?Avis=J7&Dato=20110916&Kategori=EVENTS05&Lopenr=109160802&Ref=PH)

Photo 7 is very peculiar. The pilot is not visible. I am familiar with this cockpit, and there is no where to go backwards, so he must be all the way forwards out of view.

In photo 38, you can see how visible he is when taxiing out.

Just absolutely terrible. My thoughts are with all involved.

<comment><USER30> Photo 7 is very strange. Would the seat harness have allowed his body to move this far forward? This probably also would have pushed the stick forward which isn't consitent with the way the airplane maneuvered, AFAIK. Any ideas?</comment></comment>


Decentralization in Bitcoin and Ethereum - <AUTHOR> http://hackingdistributed.com/2018/01/15/decentralization-bitcoin-ethereum/ <comment><USER2> We should remember the most often centralized aspect of blockchain projects promising a fully-decentralized future: the developer teams. They are typically very centralized with disproportionate power over the network. See the graphs in the second half of this article:

[https://news.earn.com/quantifying- decentralization-e39db233c...](https://news.earn.com/quantifying- decentralization-e39db233c28e)

This isn't necessarily damning, as "everything has to start somewhere," but it definitely doesn't warrant self-congratulatory pats on the back exclaiming a decentralized utopia. There's still a lot of work to do, but these projects might be the furthest along we've seen after open-source software.

<comment><USER3> It was certainly damning to Ethereum when they forked the currency to rescue the DAO.

<comment><USER4> Maybe not to the price, but certainly to the movement. A _majority of users_ don't care about decentralization. Ethereum proved that.

The only thing _most people_ want from cryptocurrencies is more USD than they put in.

Editted to better represent reality.

<comment><USER5> I think there is certainly a massive amount of uneducated speculation going on in the crypto currency world, but saying things like "no one cares about decentralization" shows a foolish lack of knowledge about the whole space.

A lot of very smart people care passionately about decentralization and the technology is going to change a lot of things. It seems like from your post history you're going to have to be dragged kicking and screaming into the future.

<comment> 549362-30499 I think there's certainly some interesting ideas happening, but the jury is still very much out on whether cryptocurrencies even _have_ a future. It's been several years now and we have... what? Thousands of memes about never spending your currency because it's going to be worth x1,000,000 in the future?

<comment><USER6> Oh boy, you could say that about any tech that hasn't quite hit mainstream couldn't you? Including VR/AR and self driving cars, except these technologies have been around much, much longer (decades) and have yet to go fully mainstream.

Bitcoin itself is 9 years old. Ethereum is barely 3 years old. Meanwhile, people are building decentralized trading platforms, prediction markets, provably fair online casinos, an entirely new venture funding model has been created, crypto collateralized loans, virtual assets trading, IOT-based supply chain management, and so much more. You'd realize that if you looked past the memes, there's something there, it's still very early, but it's growing rapidly.

</comment></comment></comment></comment></comment></comment><comment><USER7> For some further context, Ethereum allows miners to vote on block capacity increases in a way similar to that which some people wanted to add to Bitcoin. Apparently it's recently started acting like a live demonstration of the reasons why the Bitcoin developers didn't consider this a good idea: [https://www.reddit.com/r/ethereum/comments/7pfshh/why_is_8m_...](https://www.reddit.com/r/ethereum/comments/7pfshh/why_is_8m_gas_causing_so_many_uncles/)

<comment><USER8> Surely this has more to do with ETH's very fast block time than the increased block size in a vacuum?

That is, I don't see how these same issues that are affecting blocks that come every ~15s can be used to draw a conclusion about a system whose blocks come every ~ten minutes.

</comment></comment><comment><USER9> As a piece of anecdata: I run a Bitcoin node at home with no troubles, but I've been totally unable to sync the Ethereum chain. Trying to do so drags my computer to its knees for hours and doesn't seem to be making very much progress.

<comment><USER10> Not enough IOPS

<comment><USER11> That's basically it. My PC that keeps up (and can sync a month of updates in about an hour) will typically be thrashing an SSD at 55MB/s while using about 15Mbit/s internet.

On an older PC I can't sync, it keeps falling further and further behind. It's got a slow old spinning rust disk.

As a note, I believe the Geth devs have an update coming where they use more memory caching which saves smashing the disk so hard during sync.

</comment></comment></comment><comment><USER12> There is hidden centralization of dev teams and clients in both projects.

Bitcoin core could probably be sunk by covert US government or mafia-esque intervention with the dev team.

Both bitcoin core and ethereum are monocultures, which makes them much more vulnerable to black swan bugs.

<comment><USER13> Nobody is required to run code changes put up by the dev team.

Anyone, anytime can fork the code, and thereby the block chain, and create a second version of the currency.

The question is: Which one do people attribute value to?

<comment><USER14> The risk vector isn't that the dev team will push "PR 666: add master key to all wallets". It's that someone will introduce a subtle bug (such as a side channel leaking your private key), which goes undetected for months or years, until it's revealed that they've been slowly siphoning off and selling bitcoin they weren't entitled to. In a scenario like that, people might not attribute value to the current chain _or_ the months-old clean one.

</comment></comment></comment><comment><USER15> I have been running multiple bitcoin and altcoin nodes and still I am not able to run public geth node synced for month on dedicated server (4c SAS disks). So if "Bitcoin Underutilizes Its Network" then Ethereum is actively destroying itself.

<comment><USER7> I hear you basically need a fast SSD to get enough IOPS to sync Ethereum these days, especially in full archival mode.

<comment><USER16> I have a very fast server. 500mb/sec write sustained

What's the benefit of running an Etherum node with complete history?

<comment><USER17> This is exactly how sidechaining works. I was heavily downvoted in another thread for suggesting that sidechains can mitigate network "sluggishness" for more complex Dapps.

</comment></comment></comment></comment><comment><USER18> this race for the lowest block time is completely madness! what is the use of having one confirmation if the block could go orphan and your transaction could be reversed, it's like a placebo efect.

<comment><USER19> Zero conf transactions are viable on blockchains that don't have backlogs

<comment><USER20> How so?

<comment><USER19> You can accept an valid signed transaction with low risk even if it hasn't confirmed yet because in a blockchain w/o regular massive backlogs the chances that it doesn't confirm are very low. So for smaller every day transactions there isn't a need to wait for an actual confirmation.

In a situation as exists with Bitcoin currently it's anyone's guess whether a transaction will ever confirm because there are HUGE backlogs that haven't cleared for several months. A transaction has a high chance of being dropped regardless of the fee being paid because the backlog and fee level required to get confirmed at all is unpredictable. Bitcoin Core also has what they call RBF which increases the chance that a dishonest person can double spend an unconfirmed transaction exponentially. Makes 0-conf transactions unusable on Bitcoin Core.

</comment></comment></comment></comment><comment><USER21> The complaint about Ethereum's uncle rate seems a bit off base, since unlike Bitcoin, Ethereum's uncles aren't wasted; they contribute to its accumulated hash count, play a part in fork selection, and reward the miners who make them.

</comment><comment><USER22> _"...a Byzantine quorum system with 20 nodes would be more decentralized than Bitcoin or Ethereum with significantly fewer resource costs. Of course, the design of a quorum protocol that provides open participation, while fairly selecting 20 nodes to sequence transactions, is non-trivial."_

That's exactly what the Stellar Consensus Protocol (SCP) is: [https://www.stellar.org/papers/stellar-consensus- protocol.pd...](https://www.stellar.org/papers/stellar-consensus-protocol.pdf)

(Full disclosure: I work at Stellar)

</comment><comment><USER23> Crypto has created the first large division I've seen in the software development community. "Open" has been a way to describe how money is not necessary except when you need it but never do if you have rich parents or are catering to old school investors. Crypto provides the first a way for things to be truly Open.

<comment> n-bluth > "Open" has been a way to describe how money is not necessary except when you > need it but never do if you have rich parents or are catering to old school > investors

I do not understand this.

<comment><USER23> Money has always been viewed as a side-show, dog and pony, a circus if you're purist software engineer. 30 years in the Valley taught me this along with BBS protocols sharing and learning with my brethren. GNU also taught us this, the most remarkable software effort in existence. We have to be open to change and evolution of software.

One more thing: The guys that wrote this article should be be looking at how intersections of 2 arrays can be more efficiently calculated. This is the big one with the blockchain.

</comment></comment></comment><comment><USER18> the big elephant in the room is that Bitcoin and Ethereum networks have good latency because the guy in rural Africa simply doesn't mine because he as no chance of making money, if people in remote regions with very bad connections entered the game the propagation time to 95% of the network would go to 60s or more.

</comment><comment><USER24> A thought in the light of Spectre and meltdown, if we look at distributed computing as an ooo execution, couldn't one trick someone to act, and therefore spill information about something they really shouldn't or normally wouldn't done, because of the "fake" branch being revoked?</comment>


Amazon Smile now available in the app - <AUTHOR> https://smile.amazon.com/b?node=15576745011 <comment><AUTHOR> With caveat: enabling it requires enabling notification spam.

Android really should _not_ let applications detect if their notifications are enabled or not.</comment>


Show HN: DonateYourStreams – loop tracks and save lives on Watsi and charity:water - <AUTHOR> http://www.donateyourstreams.com

<comment><AUTHOR> It's nothing super technical, just a fun little project I did with my sister over the weekend to show the YC Fellowship folks that we can ship something together.

Simple concept - loop these tracks on your favorite streaming music service while you work, meditate, or sleep and all royalty payouts will go directly to Watsi & charity:water.

In my mind it's the equivalent of donating spare CPU cycles to SETI or script- clicking those "donate rice to a hungry child" ads.

Idea came from a combination of two things - a band who uploaded silent tracks and had their fans stream them to generate tour money, and Taylor Swift accidentally uploading a track of static that hit #1 on iTunes.

There are tons of ambient noise & nature tracks people use for work, meditation, sleep, etc. available on all of the music services. The only difference is we're putting our royalties to good use!

</comment><comment><AUTHOR> No love from HN? Bummer...</comment>


Show HN: Raspberry Pi Zero W Simultaneous AP and Managed (Client) Mode WiFi - <AUTHOR> https://blog.thewalr.us/2017/09/26/raspberry-pi-zero-w-simultaneous-ap-and-managed-mode-wifi/ <comment><AUTHOR> I've had a hard time finding resources on getting a Raspberry Pi Zero W to operate simultaneously as and AP and WiFi client. I pooled together whatever resources I found that failed me, but got part of the way there, and figured out the rest on my own. I figured it would be a good thing to share, since there appear to be a lot of people asking how to do it, and not a lot of solutions out there.

<comment><USER2> Great work. Would you provide more details about the requirements that led you to running Wifi as AP and a Client?

<comment><AUTHOR> Thank you. To be totally honest, I don't have a plan fully fleshed out, but the gist of it is this. I'd like to use a few RPi Zero W's as part of a home automation setup, primarily for either monitoring temperature/motion or for remote switching of lights/powered devices using relays.

One way to allow those devices to communicate with each other is via a central server (which I already have available), but it would also be nice to allow devices to communicate directly to each other in an ad-hoc manner. For example, Amazon dash buttons can be used to run arbitrary scripts from a router using dnsmasq when they connect to their configured access point. With the Raspberry Pi running an AP and dnsmasq, the dash button can directly connect without having to go through the server first. However, having the RPi also connected to the WiFi allows for it to access the internet (say to upload logs of activity, or register it's services to a central IoT server on the LAN or WAN) without requiring me to have to script in tasks to bring the WiFi interface up and down to switch between AP/client modes. This would also mean it would always be available remotely.

One of the downsides of the RPi Zero W is that it doesn't have a wired ethernet interface, so having both a WiFi AP and Client mode running at the same time allows it to have LAN/WAN access, while still being able to directly connect with other devices. The added benefit is that since both interfaces are wireless, it can go almost anywhere within range of WiFi, without cable restrictions.

Finally, having the ability to route traffic through the RPi would mean they could potentially be set up in a daisy-chain manner to extend the range of available WiFi access.

</comment></comment></comment><comment><USER3> When doing assigning you own fictional MAC I would recommend using locally administered addresses. It's basically just one bit flip: [https://en.wikipedia.org/wiki/MAC_address#Universal_vs._loca...](https://en.wikipedia.org/wiki/MAC_address#Universal_vs._local)

      x2-xx-xx-xx-xx-xx
      x6-xx-xx-xx-xx-xx
      (... etc)

And a question do you know why ap0 doesn't show up in you iw dev command? It seems you are only changing the addr not the device name.

<comment><AUTHOR> Thanks for the info! I recall reading about that before, but forgot about it.

With respect to your question, I didn't post a log from iw dev after a reboot, but ap0 does appear after reboot.

Before proofreading my post, I originally included output from iw dev at the end to show everything working, but realized output from ip addr was more useful, since it shows actual network addresses and up/down connectivity. I may just re-add that for clarity. Thanks!

</comment></comment><comment><USER4> I recently did the same thing and have packaged it all up as an Ansible setup script [1]. We're using it for a Pi based robot arm [2], so having a built-in access point and a web interface to use for configuring the WiFi means you don't need to rely on the user plugging in any peripherals. Works well!

Incidentally, the framework (headlessPi [3]) we use to run "apps" in the browser and configure the system is all open source and easy to configure for your own use.

[1] [https://github.com/headlessPi/headlessPi- setup](https://github.com/headlessPi/headlessPi-setup) [2] [https://mime.co.uk/products/mearm-pi/](https://mime.co.uk/products/mearm-pi/) [3] [https://github.com/headlessPi/headlessPi](https://github.com/headlessPi/headlessPi)

<comment><AUTHOR> Awesome project! I browsed through your headlessPi repo and saw how you configure hostapd and whatnot, but I'm having trouble seeing where you actually get the uap0 interface created. Have you tried this on a Pi Zero W yet?

</comment></comment><comment><USER5> That's great! One thing I've always wanted to build is an open source project to manage wifi on Raspberry Pis, with a similar user experience to Chromecast. It would be really useful as a base for hobby projects, as well as real products.

The idea is that if wifi is not configured or can't connect, then the Raspberry Pi would switch to AP mode. When you connect to the SSID, you would see a web page where you can configure your home wifi SSID and password, or choose a network from a list.

Does something like this already exist? I think it could be used in a lot of different projects, including RasPlex [1] and RetroPie [2]. I haven't looked at those projects for a while though, so maybe they already have that feature.

[1] [http://www.rasplex.com/](http://www.rasplex.com/)

[2] [https://retropie.org.uk/](https://retropie.org.uk/)

<comment><USER6> The RaspAP web UI does not support this, yet.

[https://github.com/billz/raspap- webgui/issues/21](https://github.com/billz/raspap-webgui/issues/21)

<comment><AUTHOR> That's as fantastic looking application! If I can find some time, maybe I'll consider helping out.

</comment></comment></comment><comment><USER7> Very nice work! Just curious what the range is like (client and AP) and if you have noticed any performance decrease vs your normal internet connection.

<comment><AUTHOR> Unfortunately, the antenna on the RPi is not great, due to it being a PCB- etched pattern antenna.

For client, the range seems really good, thought not nearly as good as something like a cell phone, probably by about half.

For AP mode, the uplink speeds from the device connected to the RPi seems to be almost completely uninhibited, while downlink is pretty bad. This is where the poor antenna comes into play, since the RPi can't broadcast its SSID very strongly, and really only works well within LOS of the device. From another room, download rates drop pretty low, to sub-5Mb.

It may not work very well for transmitting video or something, but it's certainly good enough for low-bandwidth applications.

</comment></comment><comment><USER8> does this behave sanely if the pi-zero is taken out of range of the AP it's connected to? Are the connections between the pi-zero and its' clients preserved in that case?

I'm just now finding this when i'm about to hit the hay -- so I lack the cognition to go through it -- but i'd like something like this for a project of mine that involves a pi-zero-w that needs to maintain a connection with my cellphone while on the go -- and dump data when within range of a known AP.

<comment><AUTHOR> So I've tested it at home, where I have 2 different APs on 2 different channels (11 and 6, if that's of any consequence). I purposely rebooted the APs the RPi was using for internet access and it seamlessly switched over to the other AP without killing my laptop's connection to its own AP. I then rebooted the AP it was connected to after the first one had come back up, and it switched back again.

While this seems to behave sanely, you may run into issues where your device will drop session with the RPi AP due to "no internet connection". Assuming you're running Android, your device may ask if you want to remain connected to that AP, or it might just disconnect due to lack of internet. That's entirely device-dependent, but there's nothing inherently making this not work based on my instructions. It just might take some extra work on the device-side to make sure it doesn't try to drop the connection.

</comment></comment><comment><USER9> I am curious about the existing issue when running these two modes simultaneously. Is this related to the network chipset that makes it harder vs a common PC card?

<comment><AUTHOR> Are you referring to the issues I had getting it working prior to my workaround script?

I would love to know as well. I mentioned it somewhere, but during boot, there are a few cryptic Broadcom driver errors which a Google search turned up little to know info on. It's hard to say, but it seems like something in the system has to stabilize before everything works.

</comment></comment><comment><USER10> This is fantastic! Thank you for sharing. I was going to start looking into this for IoT applications myself.

I need to have a fail-safe where one device will usually be connected to WiFi and other devices may not for a myriad of reasons.

<comment><AUTHOR> Thanks! Hopefully it works for you. I've got it going on 2 RPi Zero W boards so far, and it seems pretty stable. I actually wrote most of that post last night while passing all my laptop traffic through the RPi with no issues for over 3 hours.

</comment></comment><comment><USER11> Thanks for the article this is _very_ useful will try later on with Raspberry Pi 3 and the Raspberry Zero Zero W.

<comment><AUTHOR> Thanks! Hope it works out for you. If so, I'll update the article to indicate it applies to RPi 3 as well (I don't have one to test with myself.)

</comment></comment><comment><USER12> This is fantastic and well documented.

<comment><AUTHOR> Appreciate it!</comment></comment>


Douglas Coupland: Greece and the Curse of Leisure - <AUTHOR> http://www.vice.com/en_us/read/douglas-coupland-greece-and-the-curse-of-leisure

<comment> alan-crowe I regret wasting my time reading that.

Oh, well, at least I have learned what you get if you put words into a candy floss machine instead of sugar.</comment>


Digital Shadow – what fb knows about you (helped build this) - <AUTHOR> https://digitalshadow.com/

<comment><USER2> The generating password stuff is cool (though I use nothing like them)

I like how data can be totally thrown off as to where I am physically by geotagged images that are arbitrarily tagged with me.</comment>


Ultra KSM: transparent full-system memory deduplication for Linux - <AUTHOR> https://code.google.com/p/uksm/

<comment><USER2> Important notes:

\- RHEL 5 and derivatives include ksm right out of the box. There's a script out there to make use of it: ksmd.

\- ksm breaks up transparent huge pages whenever a smaller page is found inside of a huge page. (In other words, you can enable transparent huge pages and ksmd at the same time, but ksmd is likely to negate the benefits of hugepages. )

\- ksm is freaking dynamite -- it cut memory usage on my personal virtualization host by a third.

<comment><USER3> What does transparent huge pages get you?

<comment><USER2> The OS presents a view of a flat memory space to userspace processes, but it's not real. Memory is really segmented into 4 KB pages. Every time an application accesses its flat memory space, there are layers of indirection to trace before winding down to the real, physical page.

The system has a cache to store the indirection results, so that memory within a cached page can be accessed quickly, without tracing the indirections. Unfortunately, on x86 systems, this cache of indirection results (the TLB) is very, very very small. One way to stretch the TLB is to allow the indvidual TLB entries to handle more data by increasing the page size.

With transparent hugepages, if an application requests 32 MB of RAM, the system can allocate a single "hugepage" of 32 MB. That "hugepage" occupies a single entry in the TLB, instead of thousands of 4 KB pages. Fewer entries eaten means fewer indirections traced when multiple processes are competing for resources.

In other words, memory access under contention is faster and context switches are less expensive when you have transparent hugepages enabled. That's a big performance win for virtualization hosts, because they are likely to experience a lot of contention.

</comment></comment></comment><comment><USER4> The improved hash function might be a problem; IIRC KSM doesn't use hashing because of VMware's patent.

<comment><USER5> Perhaps they should use message authentication codes instead of hashing :)

</comment></comment><comment><USER6> I wonder if hardware support for memory duplication is feasible. A de- duplication controller could use DMA and only lock the bus when other devices (eg. the CPU) isn't using it. It could then scan for duplicates with virtually no overhead and interrupt the OS when it detects a hit.

As a further enhancement, could hardware pick up on memory writes and detect duplication on the fly? What if a device kept track of a hash of all pages? The concurrency possibilities in hardware allow for O(1) operation (if there is enough silicon area available). Partial out-of-order page writes would have to be queued for hash re-computation, but successful de-duplication is less likely in these cases anyway.</comment>


Is money all that matters? A quick look at extrinsic motivators - <AUTHOR> http://www.futureoncoming.com/is-money-all-that-matters-a-quick-look-at-extrinsic-motivators/

<comment><USER2> How many chapters do I need to read for my hair to grow back?

:*(</comment>


Everything old is new again: binary security of WebAssembly - <AUTHOR> https://www.usenix.org/conference/usenixsecurity20/presentation/lehmann <comment><USER2> It seems they aimed to answer the question: What are the consequences of limiting the WA spec to only try to sandbox the WA binary from outside memory, and not try to prevent it from exploiting itself? The answer they got was that yes, a WA binary may be capable of exploiting itself. I think this is an interesting and valuable result, but I don't think the result is surprising, or that it invalidates the design of WA. The outputs from WA are not guaranteed to be what you expect. Or put another way: C is still C. I wonder if such a vulnerability could be found in a program written in safe Rust.

Notably, they don't appear to even try to break the WA-host memory barrier, which I actually find to be a validation of the core design goal of WebAssembly: isolate the damage a vulnerable program can inflict to the memory space (and thus also output) of that program. Protect the host from the program, but not the program from itself. Also, maybe don't dump WA output you can't validate directly into DOM.

<comment><USER3> WASM and the surrounding Javascript model offer a lot of opportunities to minimise the damage if something gets exploited.

Say you are running OCR via some C library you have compiled to WASM: wrap that functionality up with an interface, compile that to WASM, and only pass it the image data you're happy for it to see. If someone exploits that binary with a malicious image, there's nothing inside the container except the code and the image itself, so hopefully the damage is contained.

If folks start compiling large amounts of their functionality into one single chunk of WASM, which has a complex interface with the DOM/JS, then I can see how these exploits could become an issue.

<comment><USER4> Even then. If the input images are from untrusted source, you need to scrupulously treat the OCR output as untrusted too, and that it is actually OCRing and not mining crypto (say, using image library exploit + OCR math library functions), etc. etc.

<comment><USER3> True, but there's not much point mining for crypto if the WASM module's gateway to the DOM/JS/... doesn't let you export the result.

</comment></comment></comment></comment><comment><USER5> The whole point of a sandbox is that it's only got toys in it so you don't care when the cat shits in it. But, of course, if the sandbox only contains toys, it's not very _useful_. You can't sit in it and order a pizza if all you've got is a toy phone.

So you leave your wallet, phone, and other critical devices in there. But now it has ceased to be a worry-free safe play space. It's no longer acceptable for the cat to shit in it.

This is a fundamental tension and we'll probably keep rediscovering this security problem any time a new container model is developed.

<comment> dane-pgp Also known as the Sandboxing Cycle:

[https://xkcd.com/2044/](https://xkcd.com/2044/)

<comment><USER6> Yep, this about sums it up: "All I want is a secure system where it's easy to do anything I want. Is that so much to ask?"

</comment></comment></comment><comment><USER7> Hi everyone, Daniel here (one of the authors, I am the PhD student in the video). Great to see the paper submitted and discussed :-)

Sorry for being a bit late to the discussion, I will try to answer the questions in detail that were asked below.

I want to clarify one misunderstanding that seems to come up several times, namely the distinction between "host security" and "security of the WebAssembly program itself". WebAssembly _does_ have measures and a good design for host security. E.g., in the browser, WebAssembly programs are run in a sandbox (just as JavaScript is), and writes inside WebAssembly's linear memory should never affect values outside of linear memory (e.g., VMs insert bounds checks when reading/writing from/to WebAssembly pointers). Those techniques protect against _malicious_ WebAssembly binaries, which is of course important in the Web.

Here, we look at a different side of WebAssembly's security story: What if the WebAssembly binary is _vulnerable_ and gets fed malicious input? In this attacker model, we can at most do what the host environment allows us to do. But especially for large WebAssembly programs with lots of imports, or WebAssembly binaries for standalone VMs (outside of the browser, without a tried-and-tested sandbox), this can still be a lot of attacker capability! And when we look into the protections _inside_ WebAssembly's linear memory (not between linear memory and host memory), we find that there are very little. All linear memory is always writable, no stack canaries, no guard pages, no ASLR, no safe unlinking in smaller allocators etc. This is worrying as more code gets linked together into a single WebAssembly binary.

If you have any further questions, I am more than happy to answer, here and also via email. Thanks again for the interest!

<comment><USER8> To my understanding one of the design constraints behind webassembly semantics where given by wanting to keep implementation burden low for browsers.

In particular my understanding is that most of MVP WebAssembly almost a subset of asm.js in term of expressivity.

Do some of the safety measures you consider translate well in this model?

<comment><USER7> > Do some of the safety measures you consider translate well in this model?

Yes, I think several mitigations could be deployed without requiring a change to the language, only by changing compilers and runtime libraries:

* Stack canaries on the unmanaged stack: For storing the reference canary value, you need some "safe" location that cannot be overwritten by regular memory writes. I believe in x86, thread local storage (TLS) / the fs segment register is used. In WebAssembly, one could use a non-mutable global scalar variable, which could only be overwritten by a matching global.set instruction (which cannot be inserted by an attacker). Then, before returning from a function (or really at any point you want to check the integrity of linear memory), you could compare the canary value against this global, as you would in native architectures.

* Allocator hardening, e.g., safe unlinking doesn't require any language support, the allocator just needs to do it (and live with the slightly increased code size cost).

Other mitigations would require language extensions. E.g., for finer grained control-flow integrity (taking source types into account, not just WebAssembly primitive types), one would require multiple table (part of the reference types proposal). Then, only functions with compatible types should be stored in the same indirect call table.

ASLR, unmapped pages, and constants in linear memory are harder, I believe. For ASLR, WebAssembly's 32-bit pointers will most likely provide too little entropy. Unmapped pages and "true constants" would require some host API to make portions of the memory non-writable/readable, but I don't know of any proposal to do so.

> wanting to keep implementation burden low for browsers

> WebAssembly almost a subset of asm.js

Yes, that is also my understanding as to why we are at the current situation. (But I did not take part in WebAssembly's design, so I cannot claim any authority.)

</comment></comment></comment><comment><USER9> Like they say at worst WASM can make a mess of it's own data.

The selling point of WASM outside of browser to me is native modules for other languages where you can whitelist the exposed APIs (and provide sandboxed versions) while having cross-platform binaries.

So for example in the future node can ship with WASM module support and JS can load a C WASM module binary which I can deploy on Windows/Linux/Mac, and I can review what that module has access to via some module manifest, and node WASM exposes wrapped POSIX API based on manifest configuration.

</comment><comment><USER10> This doesn't really seem to offer anything useful, or even contain new information. eg:

* no corruption of, nor access to host memory.

* no corruption of, nor access to memory or other processes.

It looks like what they did is create a wasm file that generates a JS "Alert !!!" string, then blindly runs that string in the browser without any kind of validation?

It's hard to tell from looking at their code though:

[https://github.com/sola-st/wasm-binary- security/blob/master/...](https://github.com/sola-st/wasm-binary- security/blob/master/end-to-end-exploits/browser-libpng-xss/02-compile- pnm2png-wasm/out/main.html)

The html page there seems to be missing the "main.js" to see what's happening. :(

\---

Hmmm, it might be this main.js, which looks (without checking) like it came from Emscripten:

[https://github.com/sola-st/wasm-binary- security/blob/master/...](https://github.com/sola-st/wasm-binary- security/blob/master/attack-primitives/stack-buffer-overflow/out/main.js)

<comment><USER7> > This doesn't really seem to offer anything useful, or even contain new > information.

You are right in that we do not try to attack a concrete host implementation or aim to break out of the sandbox.

I disagree, however, that security inside a WebAssembly binary is irrelevant. If an attacker can arbitrarily read/write in linear memory, it depends on the imported host functions what can be done. The larger WebAssembly applications are (and we believe they will become larger in the future, and incorporate DOM functions, as in our PoC application), the higher the risk that host APIs can be abused. This is troubling especially where there is no sandbox (on some standalone VMs), but even in browsers (where it opens the door for a new type of cross-site scripting).

For example, even if you only call JS eval() with a constant string in your C code, because WebAssembly has no truly constant memory, this can give XSS to an attacker with a memory write primitive inside linear memory.

> The html page there seems to be missing the "main.js" to see what's > happening. :(

Oops, good point. They are now pushed, sorry about that.

> main.js, which looks (without checking) like it came from Emscripten

That's correct, you can also check the build script: [https://github.com/sola- st/wasm-binary-security/blob/master/...](https://github.com/sola-st/wasm- binary-security/blob/master/end-to-end-exploits/browser-libpng-xss/02-compile- pnm2png-wasm/build.sh)

<comment><USER10> Hmmm, I'm kind of in two minds about this.

On one hand, the problem doesn't seem to be any different than happens with standard JS. The exploit was possible only because the wasm (literally) did no input validation. And "validate all input" is the first thing web programmers learn. (or very close to first ;>)

On the other hand, it _is_ a vector. And we've seen plenty of cases where vectors are chained together in novel ways to enable unexpected attacks. So there's that. ;)

> Oops, good point. They are now pushed, sorry about that.

No worries, thanks for getting that done. :)

</comment></comment></comment><comment><USER11> If you want good security, you can't download new untested code. Sandboxing is important, but the most important part is to not allow arbitrary code to run.

WASM seems like very good solution if you want to load random code and still retain as much safety and flexibility as possible. The burden is now moved to code that interacts with potentially misbehaving code. Check and verify all outputs, limit resource usage. Using WASM system It's not so different from calling remote server in the cloud. Anything can happen during executing but only the interacting with the system can cause harm outside the system.

<comment><USER10> Wonder what the potential for side channel attacks (eg timing analysis, etc) will turn out to be with wasm?

<comment><USER11> Many side channel attacks available for native binaries are impossible in wasm, because code can't be handcrafted. It always goes trough compiler.

When they exist, potential WASM side channel attacks are system/compiler specific and can be fixed with software updates. Compilers can be designed to remove the possibility it becomes a real issue.

<comment><USER10> > ... are impossible in wasm, because code can't be handcrafted. It always > goes trough compiler.

That's _extremely_ wrong. People have been hand writing WASM files for ages.

</comment></comment></comment></comment><comment><USER12> I've only watched the video, but to me this as much highlights how WebAssembly was designed to run in restricted browser sandboxes with CSP and other mitigations readily available, and that the uses of WebAssembly outside of such relatively hardened environments is, as shown, more risky. Outside of the confusion that a WebAssembly binary might be tricked to misbehave though, the rest feels like standard security measures are enough. I'm not yet convinced we need more mitigations at the WebAssembly layer vs better security linting to try and catch the vulnerabilities, and perhaps not trusting any web assembly outputs without validating them first? I might be missing something here. I'll probably need to read the paper next :)

<comment><USER13> I think the lack of mitigations are things like memory protection, stack canaries, and such that make attacks harder in practice for binary targets, even if there is an exploitable bug in the code.

</comment></comment><comment><USER14> Yes, and people are trying to run this outside browser too(like a jvm alternative). Not sure what's the craze about wasm outside browsers considering all the risks.

<comment><USER15> Exactly. There's so much "WASM without the browser" hype for some time and this analysis puts the risks into perspective.

It has been aggresively marketed as a JVM alternative (not equivalent), but with the same old native bugs and even makes XSS attacks possible. Stunning.

Maybe that's why all the big media content companies went behind it. Out with Flash and Java and in with 'compile and run WASM programs in every browser' to support this 'open web™'.

What they really mean is: 'We can't wait for WASM DRM!'

<comment><USER2> The core WA principle of "protect the host from the program, but not the program from itself" still holds, based on the video this paper does not even attempt to break the WASM host memory barrier. That seems more like a success than anything else.

Guess what: developers are still responsible for avoiding security bugs in their code. But at least when they mess up, it still won't damage more than what their dumb web app could have done already.</comment></comment></comment>


How to write an XML parser app with the iPhone SDK - <AUTHOR> http://www.iphonexe.com/blog/?p=74

<comment><USER2> I personally hate the IPhone XML parser... TouchXML an open source alternative is way more intuitive.</comment>


FlashCache at Facebook from 2010 to 2013 and beyond - <AUTHOR> https://www.facebook.com/notes/facebook-engineering/flashcache-at-facebook-from-2010-to-2013-and-beyond/10151725297413920/

<comment><USER2> How does flashcache compare to dm-cache / bcache, integrated into linux kernels 3.9 and 3.10?

The text mentions that it works as a device mapper module, so does it actually work with dm-cache?

The readme on github suggests that it targets older kernel versions, most of which look like versions that ship in RHEL & Ubuntu LTS.

<comment><USER3> The best thing is that you don't have to prepare the original partitions in any specific way, like with bcache. You just add new partion and say - this is a cache for volume /dev/.... and it works. I don't know about performance differences - haven't used bcache that much.

The versions in readme are slightly out of date. Maybe that's what facebook uses internally, but the driver seems to work perfectly with higher versions. I submitted some patches to update function signatures in 3.9, but that was only to get rid of compilation warnings - everything else still works.

</comment></comment><comment><AUTHOR> For reference, the FlashCache project and source code is publicly available on github: [https://github.com/facebook/flashcache/](https://github.com/facebook/flashcache/)

</comment><comment><USER4> Too bad it is GPL v2. [https://github.com/facebook/flashcache/blob/master/LICENSE](https://github.com/facebook/flashcache/blob/master/LICENSE)

<comment><USER5> Why would the license matter for a kernel module? You know that the linux kernel is also GPL v2 right?

<comment><USER6> How about the usual reason? Because it can't be pulled into non-GPL projects.

This is actually relevant, at least, to me. I've been porting Twitter's fatcache[1] to iOS, and wouldn't be if it was GPL'd. I haven't even looked at Facebook's code, due to the GPL license, which makes it—literally—unusable to me on iOS and Android.

[1] [https://github.com/twitter/fatcache](https://github.com/twitter/fatcache)

<comment><USER7> It is possible to make a legal argument that a Linux-specific device driver is in fact derivative of the Linux kernel code that it interacts with. If said argument is made, then no matter what the author of said code says, it may actually be forced to be GPL v2.

I am not a lawyer, and I have no real idea how likely said argument is to hold up in an actual court. It also seems unlikely that anyone would actually file a lawsuit about this sort of stuff. But if you want to be as careful as you can be, you won't go wrong if you use the GPL v2 on principle for a Linux device driver.

On this topic it is worth noting that Linus Torvalds has stated different seeming opinions at different times. In general as more and more of the Linux kernel has been made available to loadable modules, he's become less and less inclined towards the argument that they are not derivative works. See [http://linuxmafia.com/faq/Kernel/proprietary-kernel- modules....](http://linuxmafia.com/faq/Kernel/proprietary-kernel-modules.html) for a comparison of his views at two points in time. (I don't know his current views.)

<comment><USER8> IANAL, but if you create a derivative work of GPL v2 code you have to release it as GPL v2. This doesn't mean you, the copyright holder, cannot release it also with another license. The GPL forces you to ensure that people can use your extension of the original code with the same rules of the original code.

In case of kernel modules, if you distribute a binary built with kernel headers (like distributions do, then the sources of that kernel module have to be available under the the GPL license.

But if you distribute the sources of a kernel module, and each user compiles it, you can legally load it into a kernel without breaking the GPL. That's how ZFS can legally run on linux as a native module. I don't know if that's really necessary, but better safe than sorry.

Distributions can automate this compilation step so that from the point of view of the end user it doesn't make any difference, just a nuisance to the package maintainers (and yes, a few more mb of downloads for compilers and such).

<comment><USER7> _IANAL, but if you create a derivative work of GPL v2 code you have to release it as GPL v2. This doesn 't mean you, the copyright holder, cannot release it also with another license._

Sorry, not true.

The whole point of it being a derivative work is that someone else is also a copyright owner. If you release under a different license, you're saying that you give permission on their work. You can SAY that, but you're wrong.</comment></comment></comment></comment></comment></comment>


Downtown Project Buys 100 Teslas To Launch Project 100 - <AUTHOR> http://techcrunch.com/2013/04/02/downtown-project-buys-100-tesla-model-ss-to-launch-project-100-a-car-sharing-service-in-las-vegas/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+techcrunch%2Fstartups+(TechCrunch+%C2%BB+Startups)

<comment><USER2> Interview about the project: <http://www.youtube.com/watch?v=HQJ22TLBCiM></comment>


Three surprises from a visit to Kashmir - <AUTHOR> http://www.bbc.com/news/world-asia-26847362 <comment><USER2> Obligatory comment on the ethnic cleansing of the Hindus from the valley. Over 700k Hindus left the valley in 1990 as a result of the Islamic insurgency. These Hindus were original inhabitants of the valley, of the same stock as the Muslims. They were not outsiders. Even the most hardliner Kashmiri Separatist will not consider them outsiders. Yet they were forced to leave in violent circumstances.

Hence when the reporter writes that the political culture is tolerant, I am immediately reminded of not making sweeping generalizations based on one visit to the valley and interviewing the people there.

PS: I was one of the people who had to leave in 1990.

<comment><AUTHOR> Governor of Jammu & Kashmir Jagmohan at that time engineered the exodus of Kashmiri Pandit community from the Kashmir valley in 1990. Kashmiri Pandits were unnecessarily forced to leave the Valley by Jagmohan. Hindus and Muslims lived together for Centuries in Kashmir. Governor Jagmohan used his entire state machinery to facilitate the migration of Pandits.

<comment><AUTHOR> I would suggest anyone to read the book "Kashmir in Sunlight and Shade by CE Tyndale Biscoe". This book highlights the autocracies by Kashmiri Pandits on Kashmiri Muslims (who were poor, illiterate and the peasant class at that time) for centuries. Everything was like a radical dictator state.

Another book: Cashmere Misgovernment by Robert Thorp

What goes around, Comes around.

<comment><AUTHOR> Cashmere Mis-Government:

Robert Thorp was the son of a British army-man. Army man Thorp had come to spend his vacations in Kashmir. At the first sight he only fell in love with an extremely Kashmiri beautiful girl and there-of married her. This marriage was sternly opposed in Kashmir and eventually the two moved to England. They had a son named Robert. From his early childhood, he had heard the tales of Kashmir, especially from his mother. He wished to see the land of her mother. On arriving to Kashmir, he was very upset by the Maharaja's mis-governance and the misery of the masses. He wrote a book, 'Cashmere Misgovernment'. The Maharaja came to know about it. Fearing the consequences that his tales of mis-governance may reach to the British authorities, in haste, he ordered his men to kill Rober Thorp. This book was published posthumously. Robert Thorp gives a micro level study about Kashmir and all the mis-governance, oppression, miseries and all the fails of the government. He details the taxation system, the shawl industry, beggar system and all the non-justified oppressions Kashmiris faced.

</comment></comment></comment></comment><comment><USER3> Reading this while visiting family in Srinagar :-)

Lots of brilliant young people who speak English but end up working dead end jobs because of the political situation's impact on the economy. And they want to live with their families, so they don't leave the area.

One of countless places all over the world where remote work over the internet would be life changing for millions, yet barely anyone does it: because the company to bring it to them doesn't exist yet

<comment><AUTHOR> I am a self proclaimed Geek and a Kashmiri. I can relate to this.</comment></comment>


Anyone else noticed that the top comment is always trying to one up the poster? - <AUTHOR> For a while I thought that everyone on hacker news was just a contrarian, but now I realize that there is a culture of one-up manship that permeates every facet of the site.  Anyone else notice this?  Is this just how tech people are?  Why does it have to be that way?  It gets kind of annoying after a while. <comment><USER2> I actually love this about HN. It feels to me like experts who are vetting and criticizing articles for me. They often save me clicks.

Sometimes the criticism is off-base, but you can usually count on someome pointing that out just below it.

I can see why it might rub you the wrong way, but I just want to point out that it's not objectively bad for everyone. For me, it's the point of coming here.

<comment><AUTHOR> Yeah, I can see what you mean now that I think of it I actually feel the same way.

At the same time I will occasionally run across a post thats pretty much self explanatory but nevertheless the top post will still be someone trying to massage some angle to get a one up, which I find irritating. For some things I think its just best to appreciate it for what it is and not try to find the inner flaw. I find myself falling into this line of thinking (finding the flaws in everything) and I find i'm happier when I'm not constantly like that.

</comment></comment><comment><USER3> How does one even define contrarian? This is a vast oversimplification, and OP has not provided any evidence to support their claim. This being Hacker News, I would expect a simple sentiment analysis model trained and run against a database of posts and top responses, and the data made available for independent analysis. Even if that is the case, who's to say that this is suboptimal? Current popular discourse is all too often an echo chamber of self-aggrandizing charlatans patting each other on the back for every meaningless...

... oh wait...

... you may have a point...

</comment><comment><USER4> Yep, think this is often the case. One interesting habit is to distort the intention or cite an extreme example of the original post to something ludicrous and then ridicule it as... ludicrous.

<comment><USER5> There's a site guideline specifically against that:

"Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize."

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER4> that is a great guideline that I forgot about. I wonder if this should be reposted when appropriate.

<comment><USER6> It often is.

[https://hn.algolia.com/?query=Please%20respond%20to%20the%20...](https://hn.algolia.com/?query=Please%20respond%20to%20the%20strongest%20plausible%20interpretation&sort=byPopularity&prefix=false&page=0&dateRange=all&type=all)

</comment></comment></comment></comment><comment><USER7> Another common mistake (I'm sure I make it) is to sidetrack and then get lost in a critique of a side track. I often remind myself that first order effects and second order effects do not have equal weight.

I do think many first comment are snark or one uppers but sometimes it's the quick path to a bullshit detecting outcome. Any cryptos deserve a big cluestick whack, many machine learning and AI more so!

</comment><comment><USER8> Can you provide some examples? It's hard to discuss this in general terms.

I think people just like to share their experiences because there's rarely a "one size fits all" answer to most problems. One of the ways in which we grow and develop our ideas is by discussing them with our peers. It also seems likely that people who disagree with a post are more likely to comment and write a rebuttal.

<comment><USER9> Here is a snarky, one up comment the author got away with because no one else bothered to read TFA (study in this case): [https://news.ycombinator.com/item?id=17178514](https://news.ycombinator.com/item?id=17178514)</comment></comment>