Experimental Dependency Vendoring in Go 1.5 - <AUTHOR> https://groups.google.com/forum/#!msg/golang-dev/74zjMON9glU/4lWCRDCRZg0J <comment><AUTHOR> I really like this proposal. It's basically the best of all current dependency tools - you get reproducibility without needing external configuration files, without hugely long vendor import statements, and still supporting raw go-get.

</comment><comment><USER2> This is pretty much what we've been doing at DO, but we were dealing with GOPATH manipulation to achieve it. By having `GOPATH="third_party/:docode/"`, `go get` pulls packages into `third_party` automatically, and `go install` finds our binaries in `docode/src/services/foosvc/cmd/foosvcd`.

Migrating to use `vendor/` instead of `third_party/` will be trivial, and not having to modify GOPATH will be nice.

Having a GO_VENDOR=1 env var on top of the `go get -vendor` feature flag would be nice, so that the feature works with minimal disruption.

<comment><USER3> How do you handle a custom GOPATH like that when the current repository needs to be in there too? We've tried manually symlinking the repo dir into the custom '$GOPATH/src/github.com/user/repo' dir, but it feels really hacky.

<comment><USER4> You can separate multiple paths with a colon.

<comment><USER5> More specifically, with os.PathListSeparator. (colon on Unix, semicolon on Windows and \x00 on Plan 9)

</comment></comment></comment></comment><comment><USER6> Am I correct in thinking that this proposal only lays the foundation for other tools to actually _manage_ the vendor folder?

In other words, you would still want something like godep or gb, because manually copying dependencies into a folder (or using git submodules, ugh), and then tracking their versions through their lifecycle, isn't a workable solution in most situations.

This is clearly an improvement over "go get", but I don't understand why Go is so insistent that dependency management is something for the community to solve, and not something that should be provided by Go itself.

Go is so opinionated about so many things, and yet so little interested in having a strong opinion here. The Unix philosophy is great, to be sure, but the Unix philosophy is about increasing modularity through simplicity, and this problem is _about_ modularity.

<comment><USER7> Is the criticism here really that we have declined to express a strong opinion about something we don't know a lot about?

<comment><USER8> A quick comment to tell you that I really really appreciate how you solve problems step-by-step, without rushing. The improvement you proposed for supporting vendoring in Go 1.5 is great.

</comment></comment></comment><comment><USER9> This is nice. Finally it seems like we are going somewhere. The call for proposals had not yielded anything groundbreaking so far. Tools like gb are nice but as Russ says it's not gogettable. This seems like a good compromise.

</comment><comment><USER10> Am I understanding correctly that this proposal again side steps / ignores pinning dependencies for libraries? To me, this is the biggest current problem in the ecosystem and, as a library author, this doesn't solve any of my issues. I hope I misread somehow.

<comment><USER11> With this scheme libraries can vendor their dependencies, if necessary.

<comment><USER10> Can you reference the part of the proposal that states this? I'm reading the following points:

> $GOPATH/src/foo will be imported as foo by non-main package > $GOPATH/src/mypkg/p.

> $GOPATH/src/mypkg/external/foo will be imported as foo by a non-main package > p anywhere, when p is being built as a dependency of command > $GOPATH/src/mypkg/c.

It seems to me this is saying that libraries will use external packages only when built as a dependency of a main package. Again, this means library authors are out of luck.

<comment><USER12> There are two proposals.

You seem to refer to the Google doc proposal that was linked to in the first message of the mailing list thread several months ago.

The link on hackernews points to an answer by Google that was written just a few hours ago that instead "propose" the following:

> If there is a source directory d/vendor, then, when compiling a source file > within the subtree rooted at d, import "p" is interpreted as import > "d/vendor/p" if that exists.

<comment><USER10> Ah, thanks.

</comment></comment></comment></comment></comment><comment><USER13> How we solved it in Nix: [http://lethalman.blogspot.it/2015/02/developing-in- golang-wi...](http://lethalman.blogspot.it/2015/02/developing-in-golang-with- nix-package.html)

We don't need go get or any other tool, and we have about 174 packaged libraries in our repository.

</comment><comment><USER8> This is a great and necessary improvement. Being able to vendor dependencies without having to rewrite import paths is like having the best of both worlds.

The proposed mechanism looks similar to what Node.js does with the node_modules directories:

[https://nodejs.org/api/modules.html#modules_loading_from_nod...](https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders)

</comment><comment><USER14> That's really nice.

This is a royal PITA with .net and nuget and I've get to find a half decent solution that allows you to actually have the source rather than a bunch of symbol-less dll dependencies or a ridiculous build stack.

<comment><USER15> Since MVC6/VS2015 beta you can actually get the source instead of dlls. However your build times will increase dramatically so it's a bad idea unless very needed.

<comment><USER14> Interesting - thanks for pointing it out. I was completely unaware of that. Going to go and play with it on my win10 test box now :)

</comment></comment></comment><comment><USER16> A vendors B and C, but C vendors D and E. According to this proposal do you lay out the files like this: (A (vendor (B C D E)))?

Edit: I guess HN tree markup is not working :)

<comment><USER12> Yes. That would work. However, I also believe this will work: (A (vendor (B (C (vendor (D E)))))).

[https://groups.google.com/d/msg/golang- dev/74zjMON9glU/LjrVU...](https://groups.google.com/d/msg/golang- dev/74zjMON9glU/LjrVU8dMKbcJ)

[https://groups.google.com/d/msg/golang- dev/74zjMON9glU/0e7M7...](https://groups.google.com/d/msg/golang- dev/74zjMON9glU/0e7M7FHipusJ)

[https://groups.google.com/d/msg/golang- dev/74zjMON9glU/qGzsS...](https://groups.google.com/d/msg/golang- dev/74zjMON9glU/qGzsS8RfjnEJ)

<comment><USER12> and if you have both: (A (vendor (B (C (vendor (D E))) D E)))

C would pick D E in its C/vendor before D E in A/vendor before D E in $GOPATH/src

ps. I have edited these comments about 5 times to get the parentheses right. :)</comment></comment></comment>


The Beginner's Guide to JavaScript Date and Time - <AUTHOR> http://www.sitepoint.com/beginners-guide-to-javascript-date-and-time/ <comment><USER2> "In what can be termed as one of the most heated arguments in the tech world".

For Linus, this is not a heated argument, just another annoying conversation where he has to explain to someone why they are wrong. :)</comment>


Why bonuses and performance pay are a bad idea - <AUTHOR> http://www.ft.com/cms/s/0/3a8c9e76-217c-11df-830e-00144feab49a.html <comment><USER2> Dan Pink's TED talk on the Science of Motivation shreds the notion of bonuses and performance pay.

<http://www.ted.com/talks/dan_pink_on_motivation.html>

Joe Bob says "check it out."

</comment><comment><USER3> To avoid registration:

[http://news.google.com/news/search?pz=1&cf=all&ned=u...](http://news.google.com/news/search?pz=1&cf=all&ned=us&hl=en&q=source%3Afinancial_times+performance+pay)

</comment><comment><USER4> So what's a good idea?

I value very much these articles and talks but i end up with the same problem.

How to motivate investors, cofounders, employees, anybody?

<comment><USER5> do things 'the right way'. high standards are my personal favorite motivation for doing a good job and working harder. if i know the quality of my work matters i will try harder to get it right. in some orgs it seems quality is completely disregarded in favor of 'just getting things done' and respect for the job suffers.

<comment><USER4> smart and gets things done (R), the right way</comment></comment></comment>


Ethereum Contracts Are Going to Be Candy for Hackers - <AUTHOR> http://vessenes.com/ethereum-contracts-are-going-to-be-candy-for-hackers/ <comment><USER2> Running a machine on a blockchain (Ethereum) is much more complex and error prone then recording transactions on a blockchain (bitcoin)

The Ethereum virtual machine has to be completely error free if any sane person is going to put their money into it. I just don't see that happening.

I do see a lot of glitzy websites using blockchain buzzwords, but there isn't much going on besides fundraising. This should be a concern for anyone speculating on Ethereum.

<comment><USER3> > The Ethereum virtual machine has to be completely error free if any sane > person is going to put their money into it. I just don't see that happening.

Your fear seems to stem from misunderstanding how Ethereum works or what it even is.

Most likely, Ethereum itself (the "engine") will be effectively error-free - probably as good as the Linux kernel - once it reaches 1.0. And smart contracts can be as simple or complex as you like. If you're afraid of bugs, don't put money into any complex smart contracts. If there's a lot of money involved, then spend some money/time reviewing the smart contract.

Also, contracts can set precedent once they are in the ecosystem. If a contract has been heavily used prior to your desire to use it, you can copy it, and be relatively confident that it will be secure for you to use.

<comment><USER4> >Most likely, Ethereum itself (the "engine") will be effectively error-free - probably as good as the Linux kernel - once it reaches 1.0.

"will be effectively error-free" != "probably as good as the Linux kernel", not even close :D

<comment><USER5> The security history of the JVM suggests that one shouldn't be optimistic there either.

<comment><USER6> counterpoint: I haven't really heard of any "javascript escaping the container" bugs in a really long time (excepting node.js-related issues)

<comment><USER7> JavaScript has several mature, thoroughly scrutinized implementations. Ethereum has one brand new implementation.

To put it mildly: There will be blood.

<comment><USER8> There are actually eight different implementations at this time, although the go client has a slight majority of users according to ethstats.net

[http://ethdocs.org/en/latest/ethereum- clients/index.html](http://ethdocs.org/en/latest/ethereum-clients/index.html)

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I went to a talk with Vitalik Buterin recently where he stated code quality was one of ethereum's biggest threats.

But, there is a market for code quality review too now!

Trustless contracts must at least be audited or they will have no ultimate credibility.

Just because something carries a risk, that is no reason not to adopt it, even try to fix it.

If the authors main point about code quality error rates is the main point, NASA has had far more time and funding and it would not be outputting random / get rich quick games either.

Ethereum has issues, but it is young and has a fantastic support base of enthusiasts.

The original author should have done more research on the roadmap for smart contracts and ethereum.

<comment><AUTHOR> I'm the author, and I agree with Vitalik. I thought it was interesting to dig into the wild west of live contracts and see what was happening right now.

The early days of Bitcoin had many of these same business models, although with much worse security and trust models.

Getting security and secure practices together is going to be a large effort, and a simple post like mine is just a way of throwing my hat in the ring and getting some conversation going.

</comment></comment><comment><USER10> Article is much better than headline, including a case study and constructive proposals.

<comment><AUTHOR> Thanks! The headline did have a bit of a buzzfeed quality on reflection.

</comment></comment><comment><USER11> The much-hyped 'DAO' that has crowd-funded over $100 million dollars worth of ether, is based upon one of the largest contract code seen so far. Even if it has been code reviewed, it's almost certain that bugs remain in there. All it takes is one hacker to find a flaw and $100 million will be gone in an instant

<comment><USER6> is there an easy-to-look-at link to the code?

<comment><AUTHOR> Yes!

Most Ethereum contracts aimed at public consumption are published at ethereum chain viewers. I like etherscan: this is the DAO's contract [https://etherscan.io/address/0xbb9bc244d798123fde783fcc1c72d...](https://etherscan.io/address/0xbb9bc244d798123fde783fcc1c72d3bb8c189413#code)

</comment></comment></comment><comment><USER12> Don't these contracts existing in a market? If one contract is flawed won't customers flock to another competing one? This would create an incentive for quality control.

Or is the proposed problem that these flaws are unavoidable or too costly to prevent? I could see the high-investment cost being a deterrent for developers to adopt the platform. In general the contract code should be as simple as possible and memory safe.

Either way, the sample reference in the article is not very useful. This is a bad time to be looking for quality as this is extremely early and very much in the experimental stage of the idea. It will, of course, deserve scrutiny when it gets more mature though.

<comment><AUTHOR> From my review of some of these contracts, even fairly obvious flaws are not being exploited (yet).

So, flaws will become known, and presumably there will be ratings and trust ratings and so on eventually. In the interim, though, some of the flawed contracts moved well over $100k in their first week of existence. That seems worth paying attention to.

I would propose flaws like these are unavoidable, unless you can pay what NASA paid. And remediation techniques should be developed urgently, not at some later date.

<comment><USER13> What are the fairly obvious flaws?

<comment><AUTHOR> Check out some contracts and see for yourself!

</comment></comment></comment></comment><comment><USER14> The author talks about a mechanism for replacing parts of a script (e.g. maintaining it in production in spite of the 'forever' longevity of a contract). The Truffle Ethereum development framework has such a proposal in the works -- a simple 'migration' mechanism that will allow in-place upgrades of running contracts:

[https://github.com/ConsenSys/truffle/issues/138](https://github.com/ConsenSys/truffle/issues/138)

</comment><comment><USER15> I used to think that these problems would kill ETH - but after reading this I am changing my mind. This will be a hell of a game for hackers! Like Core Wars for money.

</comment><comment><USER16> The IC3 research group at Cornell, and especially Elaine Shi's group, has been thinking about this recently. They are (I think) working on some kind of program analysis framework using deep PL techniques to formally verify smart contracts.

<comment><USER17> There is actually already fledgling support for this in Solidity (the prevailing language that Ethereum developers use to write smart contracts).

[https://forum.ethereum.org/discussion/3779/formal- verificati...](https://forum.ethereum.org/discussion/3779/formal-verification- for-solidity-contracts)

</comment></comment><comment><USER18> If Ethereum or something like it were to succeed, it would end up taking the form of low-level plumbing for financial products or other stuff which will simply say: "built on the Ethereum trustless/blockchain system". And as others here point out, there would be an ecosystem with companies which would audit and rate smart contracts for trustworthiness by an end-user. That in itself might end up being another application of Ethereum. Again, emphasis on the aforementioned _if_.

</comment><comment><USER19> Smart contracts should be thought of as "the Underhanded C Contest on the blockchain."

</comment><comment><USER20> >>industry average bugs per 1000 lines of code at 15-50 and Microsoft released code at 0.5 per 1000, and 0(!) defects in 500,000 lines of code for NASA

Does anybody know how useful this metric is?

I have read NASA uses C, C++, Java and Ada, of which the last three have a lot boilerplate. Heavily commented C can be verbose too. I realize there is probably a lot of review, commenting and redundancy built-in, and that adds to the overall LOC too.

An MS bug might mean Excel crashes, or a bad business decision is made, unless somebody is using MS software for more critical end points. With NASA, it can be guidance systems, and other low-level routines running in radiation- hardened electronics.

Rosetta lander used Forth onboard, so there were probably a lot fewer LOC to make mistakes in. Just one way to approach bug-free programming vs. ADA's or Java's verbosity and checks.

I write J code, so one error usually amounts to 1 in 5 or 10 LOC ;) But then again, I can see all my code in one glance, and I program iteratively in the REPL.

<comment><AUTHOR> I had the same difficulty looking at the code. Do we count import lines and variable defs? Seems sort of lame.

J of course has a different problem; only a handful of people can even parse it, much less opine on correctness.

<comment><USER20> Handful is a bit extreme ;) But seriously, it is easy to troubleshoot due to the interative nature of development in the REPL, the similiarity with mathematical formula and their layout. A PhD student wrote his thesis in 2008 about parallelization, FPGAs, ASICS and arrays, and was fully intending to write it in J, but his advisor suggested something more known, so he wrote it in Haskell. I'll put in the reference when I find it.

There is a table in the paper that shows the math formula, the Haskell and then J. Pretty interesting comparison.

To me, if you are not using a prover, then it is mainly going over 10K LOC 1 to 3 times vs. 100 LOC 10 times, 30K LOC reviewed vs. 1K LOC reviewed for errors and correctness.

<comment><USER21> "it is easy to troubleshoot due to the interactive nature" isn't going to cut it. You cannot change the code of an etherum contract after the fact. Once it's used there is no second chance.

<comment><USER20> Thanks for bringing it back to the OP's topic, but I was specifically addressing the quote the OP made about number of errors per LOC tally. I was pointing out how it could be weak metric, since the languages used in the examples might contain many LOC of template boilerplate that would make for a low bug:LOC off the bat.

An ADA hello world is 5 LOC vs. 1 for a lot of other languages.

Java is not too different.

J and Python are 1 LOC, and typically not template text, but originally coded.

<comment><USER22> I'm ok with boilerplate when it buys you something useful, like readability, explicitness, and security, as in Ada.

</comment></comment></comment></comment></comment></comment><comment><USER23> Don't lawyers do this to real-life contracts?

<comment><USER24> First, let me acknowledge that this is a fair question. A bit cynical, perhaps, but fair.

To answer it, no, not like this. Contract law has a lot of humans in it. You are certainly able to sign some contracts with combinations of clauses that can get you, and I've read horror stories at the mega-corp levels about contract clauses interacting unexpectedly and screwing some party or other. But even in those cases, the way they got screwed was by a collection of individually-sensible clauses.

A computer running a contract is by contrast blitheringly stupid. If you write a logic error into your contract that lets a participant suddenly claim all the contracted value by simply, say, sending a bid of 0 as many times as there are participants or something, there's nobody and nothing that will prevent that. If you try that in a human contract, it will be invalidated by some human judge.

Sure, lawyers may write complicated contracts in an attempt to screw the other signatory and they may play complicated games with the clauses, but running contracts as otherwise-unsupervised programs is a whole new level.

Furthermore, just having had a quick scan over the language documentation, it looks to me like a bog-standard imperative mutable language. One that is very young, and with few if any features designed for being used in a high-security environment. It appears to be based on raw event-based programming, a style of programming very easy to mess up and hard to declare and preserve invariants in. It looks like a very dangerous programming language to be trying to write financial contracts in. At least it's not dynamically typed, does seem to avoid excessive coercion, and should be memory safe; it could certainly be worse. But it could be better, too.

<comment><USER13> I'd love to hear more about those horror stories you mention.

<comment><USER25> "The dispute between Rogers Communications of Toronto, Canada's largest cable television provider, and a telephone company in Atlantic Canada, Bell Aliant, is over the phone company's attempt to cancel a contract governing Rogers' use of telephone poles. But the argument turns on a single comma in the 14-page contract. The answer is worth 1 million Canadian dollars ($888,000).

Citing the "rules of punctuation," Canada's telecommunications regulator recently ruled that the comma allowed Bell Aliant to end its five-year agreement with Rogers at any time with notice."

Read more: [http://www.nytimes.com/2006/10/25/business/worldbusiness/25c...](http://www.nytimes.com/2006/10/25/business/worldbusiness/25comma.html)

<comment><USER26> quote from the linked nytimes article " The dispute is over this sentence: "This agreement shall be effective from the date it is made and shall continue in force for a period of five (5) years from the date it is made, and thereafter for successive five (5) year terms, unless and until terminated by one year prior notice in writing by either party."

The regulator concluded that the second comma meant that the part of the sentence describing the one-year notice for cancellation applied to both the five-year term as well as its renewal. Therefore, the regulator found, the phone company could escape the contract after as little as one year. "

</comment></comment></comment></comment></comment><comment><USER27> I don't know much about Ethereum so I might be way off here.

From what I understand though:

1\. The contract you deploy to the blockchain is tied to your account where it gets the funds (ether/gas in Ethereum's lingo) to pay for its existence. So if those funds aren't there - the contract is 'dead' ;

2\. There are ways to use Ethereum's registrar metadata to use contract's 'name' that isn't hardwired to the implementation so you can change the implementation behind the scenes. You can also have an intermediate contract whose only purpose is to proxy requests to the more involved contract so you can update your 'backend' at will.

<comment><AUTHOR> 1) Well, contracts have balances, true. The people calling the contracts pay for it to run, so the dead terminology is at best imprecise. If the contract pays out 10 ether in .01 ether increments, and never takes any in, then it will be dead once depleted. On the other hand, people calling the contract pay for the cycles to run it, so one wouldn't typically go dead in that way.

2) I'm not an expert on the registrar situation by any means. But, I do not believe that updating a registrar pointer changes the balances at each contract (the old and new), so while it may be useful for some cases, those which involve balances may be more troublesome if you haven't thought ahead.

<comment><USER27> the 2nd point was to address the fact that the contract can be updated/patched with little if any impact to it's end users. so the new version of the contract gets pushed out, the old one is not in use any longer and just kind of dies off :)

<comment><AUTHOR> Right, but for a ponzi scheme contract, that's not a great outcome. Or, say, a crypto-currency, one of the sample apps in Ethereum documentation.

Either way, you have a trust problem -- who shall be trusted to transfer out all the value the contract holds?

<comment><USER27> I would imagine that would be something the contract identifies explicitly along the lines of Bitcoin multisig.

<comment><AUTHOR> That's one conversation I'm hoping to get launched soon. The sample 'make your own digital currency' code from Ethereum has no such provisions right now.

To my mind, it's a little like K&R C showing you how to walk through a string in the 1980s -- adversarial data was not a big concern at the time.

</comment></comment></comment></comment></comment></comment><comment><USER28> This is pretty interesting. So I guess there's a huge opportunity here for grey/black-hatted people to analyse contracts and transactions and spot flaws? Apparently even bitcoin has weaknesses like these, with non-standard transaction scripts that may be easily solvable/stealable for anyone with a bit of insight

<comment><USER29> In Bitcoin, almost all the people use the same script, so it's enough to review it. (I think the only problem is a small malleability.) And when a big problem is discovered almost all the people will change in a short time.

In Ethereum is more encourage to write smart weird custom contracts, so many people write a custom contract with only one pair of eyes to review it, so it's more probable to find errors.

<comment><USER28> For sure, but I think there's opportunity/vulnerability in bitcoin too. From the top of my mind I recall reading about people grabbing coins quickly from: bad random number generators in at least android, brainwallets/rainbow-tabley private keys, non-standard script for fun or error to the tune of having to solve "2+2"

A little similar to how bad guys hook onto github feeds and instantly exploit leaked aws keys etc

<comment><USER30> Those a problems with wallets, not bitcoin.

</comment></comment></comment></comment><comment><USER31> The article is kind of oversold. He starts out by talking about how there's an impending apocalypse of vulnerable contracts, but then the example is a contract that was clearly written as something between hello world and a joke.

</comment><comment><USER32> Seems like a problem solved with traditional simulation tools.

</comment><comment><USER33> ICYMI: Bitcoin will gain Turing-completeness via a merge-mined sidechain called Rootstock ([http://www.rootstock.io/](http://www.rootstock.io/)), that also offers a transaction throughput boost (300TPS right off the bat).

I highly recommend their whitepaper as it's also a great overview of the Blockchain ecosystem as a whole.

<comment><USER31> From reading their site, it sounds like you expose yourself to massive counterparty risk using this, as a "federation" is holding your bitcoins.</comment></comment>


Autonomous public transport busses start in the Netherlands(English in comments) - <AUTHOR> http://www.lc.nl/friesland/Proef-met-zelfrijdende-shuttles-van-start-in-Appelscha-21627499.html <comment><AUTHOR> //Trial with autonomous public transport busses starts in Appelscha, the Netherlands//

A trial with fully autonomous public transport busses has started this afternoon in Appelscha, the Netherlands.

For the next six weeks two futuristic looking busses without a steering wheel, accelerator or even a brake pedal will take passengers back and forth the Forestry Commision's outpost and Appelscha city center.

According to the municipality this is the first driverless vehicle with passengers on the Dutch public roads. The French made shuttles will drive a 2.5km route on a public bike path.

The municipality and the other northern provinces of the Netherlands want to become a testing ground for autonomous public transport. According to the initiators, with the ageing population of these provinces and the limited access to public transportation these autonomous vehicles could prove to be a solution to keep these rural areas accessible.</comment>


Ad Tech: How to Maximize ROI with Facebook Advertising - <AUTHOR> http://bostinnovation.com/2011/05/19/facebook-advertising-how-to-maximiz-roi/

<comment><USER2> "nearly one third of all US display advertising impressions coming from Facebook" - crazy</comment>


Silicon Valley was worried about the wrong bubble - <AUTHOR> http://www.businessinsider.com/how-silicon-valley-missed-trump-2016-11 <comment><USER2> A common thread I see is that people need to "learn from history" that trade makes us all richer. They've seemingly failed to learn that this was an incredibly bumpy road with a lot of setbacks. The welfare state is what made current trade levels possible and that we need to pursue social reform first.

<comment><USER3> Trade and the welfare state aren't mutually exclusive. Trade means producing what you are good at producing and trading for what you aren't. If it's uncoerced, it's beneficial to all parties.

<comment><USER2> I'm implying they're mutually dependent, not mutually exclusive. The problem is we've been only been focusing on the trade half.</comment></comment></comment>


bangin – a primitive, portable shell script which enables DuckDuckGo-like bangs - <AUTHOR> https://github.com/samhh/bangin <comment><AUTHOR> Hello, author here.

The idea came to me yesterday as I wanted to use a bang for ProtonDB. I didn't fancy waiting around for it to be added to DDG following submission, and that led me to ponder the other harms of this really useful feature being locked behind DDG's service.

In theory, with the script being so simple and working on the basis of mere input and output, it should be easy to write other tooling around it, which I've briefly touched upon in the README.

The shell script is extremely simple, but anyone with experience in writing them might be able to spot problems with it, please do let me know if you do.

I'm unsure about how best to package banglists. One option would be to provide a config file with a list of lists, a bit like you do with some adblocking software, but that'd presumably require some sort of intransience.

Anyway, feedback welcome!</comment>


Win Beer Money, on the Go - <AUTHOR>

We've created something pretty sweet and want to share it with people who might be interested! Our company is called Foosler (Foosler.com), and we have created a system that allows game developers to include skill based cash tournaments into their games. It's kinda like eSports. It's also kinda like gambling (but a lot more legal).
Here's how it works: players pay a small cash entry fee, play the game, and based off their score and rank, cash prizes are awarded (the top third of players win cash).
These games are all "skill-based" which means that the best player will get the highest score, and the highest prize. This is not like gambling - luck doesn't matter. If you're good, this can be a source of beer money. You can practice as much as you want, for free, indefinitely.
At the moment, we're giving every new account $2.50 in "Foosbucks" which cannot be withdrawn, but can be used to enter tournaments (and all THOSE winnings can be withdrawn).
If this is intriguing to you, please check it out! This is our flagship game: Brick Crackers (http://imgur.com/NBxBGtS) . If that's not your thing, we also have Ace 10 (http://imgur.com/pIrn39u) and Color Virus (http://imgur.com/5gs58OH) (my personal favourite). Any feedback welcome.
Happy winning!!! <comment><USER2> Not allowed by Google Play's policy, that's why FooslerRob didn't add direct links to the apps.

"We don't allow content or services that facilitate online gambling, including but not limited to, online casinos, sports betting and lotteries, or games of skill that offer prizes of cash or other value."

</comment><comment><USER3> Douche</comment>


M# FAQ - <AUTHOR> http://www.msharp.co.uk/FAQs.aspx

<comment><AUTHOR> Note: this is about the name clash, not the "old" M# language.</comment>


Internet Shame Culture Makes the World Worse for Neurodiversity - <AUTHOR> https://medium.com/@CM30/how-shame-culture-makes-the-internet-worse-for-neurodiversity-8b3a3c58595f <comment><AUTHOR> On a related note, part of me now imagines how poorly the events in the Curious Incident of the Dog in the Night Time would have gone in a world with social media.

It'd only take one image of the scene with the main character next to the dead dog at night to cause one hell of a social media firestorm, probably on the same level as the 'Peluchin Entertainment' incident (albeit in error).

Then again, quite a few scenes in that book/play would probably result in a ton of social media coverage, viral videos, etc if they happened in real life.</comment>


Dear Developer, the Web Isn't About You - <AUTHOR> https://www.sonniesedge.net/talks/dear-developer/ <comment><USER2> This is a great talk, thanks for sharing. So very applicable to this community on Hacker News.</comment>


Grothendieck and Creativity [pdf] - <AUTHOR> http://webusers.imj-prg.fr/~leila.schneps/grothendieckcircle/Mathematics/chap1.pdf <comment><USER2> The lines about making A.Weil upset made me laugh. It's interesting how A.G. apparently rubbed A.Weil and H.Cartan the wrong way, but then Dieudonne was totally at his side at IHES. Fascinating --if you're into Math folklore.

</comment><comment><USER3> Thanks for posting — after reading Pierre Cartier's article in the Inference Review it is exactly the tour of Recoltes & Clef that I was hoping would appear in time. I had no idea whatsoever that it already existed.</comment>


Facebook's weapon amid chaos and controversy: misdirection - <AUTHOR> https://techcrunch.com/2018/11/15/chaos-controversy-facebook-fights-misinformation-with-misdirection/ <comment><USER2> The craziest part to me was that they wanted to discredit their protestors via both: 1\. anti-Semitism (claiming the protestors were working for Soros) 2\. anti-anti-Semitism (claiming the protesters hated Jews)

I feel like there's an incredulity limit to what a company can do before the general populace starts revolting against them, and attempting to combine these two tactics may severely strain it, if not blow past it altogether.

<comment><USER3> >anti-Semitism (claiming the protestors were working for Soros)

That's not anti-semitism and you do yourself a disservice if you convince yourself it is. It's like claiming everyone mad at the Koch brothers is just racist against Dutch decent.

<comment><USER2> I disagree. The Jewish Chronicle specifically links the use of "globalists" as an anti-Semitic dog whistle term to George Soros.

[https://www.thejc.com/comment/comment/what-does-the-term- glo...](https://www.thejc.com/comment/comment/what-does-the-term-globalist- mean-when-it-comes-to-jews-gary-cohn-donald-trump-1.461072)

</comment></comment></comment><comment><USER4> This is one too many missteps in my eyes. I deleted my facebook, now it's time to delete my Instagram.

<comment><USER5> For anyone running a business or otherwise involved in the selling process of any service or product, deleting FB/IG is foolish. You are letting your emotions distance yourself and your business from where the customers and prospects are.

<comment><USER6> After all that's happened and what can likely happen in the future, do you really want to associate your brand with something like Facebook?

<comment><USER5> Yes. You are looking at it from a developer/employee point of view. Running multiple businesses I know for a fact Facebook is a must. Even CEOs and other execs at companies using our products reach out routinely over Facebook. Then of course you have the private groups. So much business is done at private FB groups, you have no idea. Leads that we have been chasing for a long time over regular channels such as email, phone, Linkedin, etc. - became closed deals due to short Facebook messenger exchanges with decision makers.

That's on the business deal making side.

From a consumer point of view - if you don't have presence on Facebook, you simply do not exist.

<comment><USER7> > So much business is done at private FB groups, you have no idea.

Would you care to quantify that, then?

<comment><USER5> I really don't care to do that, no. I'm not looking to convince anyone of anything, just stating facts. The level of access to decision makers in many industry-specific private FB groups is incredibly valuable. I closed several 6-digit multi year deals just because I was at the right private group at the right time. To dismiss FB as a useless tool and delete a profile is short sighted. As a business you owe it to your employees and customers to be where business is conducted. A big part of it is now transacted inside FB's walled garden. Deal with it.

<comment><USER7> > I really don't care to do that, no. I'm not looking to convince anyone of > anything, just stating facts.

That's cool. Well I really meant provide evidence, so forgive me for being skeptical ;-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Couldn't Soros sue for libel? I had the same question when high-level Republicans kept saying that the anti-Kavanaugh protestors where all paid by Soros.

</comment><comment><USER9> Does this surprise anyone who understands the level of psychological manipulation they deploy to create quick dopamine hits that create addicts out of users?

</comment><comment><USER10> This might get downvoted for being political, but I find it completely fascinating that 2 polar opposites, both Trump and Zuckerberg, seem to be employing the exact same tactics. They both are very divisive when there is controversy and both link people they are battling against to Soros.

<comment><USER11> Why do you think trump and Zuckerberg are opposites? Zuckerberg has been a colossal asshole since before he started Facebook.

<comment><USER12> It's true. iirc he's been a giant douche his entire life according to people that have known him.</comment></comment></comment>


The World Blows over $5T a Year on Oil and Gas Subsidies: Report - <AUTHOR> https://earther.gizmodo.com/the-world-blows-over-5-trillion-a-year-on-oil-and-gas-1834624546 <comment><USER2> They count as subsidies the difference between optimal carbon taxation and current taxation. Which in some analyses needs to be counted but subsidies can be a misleading term for it.

<comment><USER3> Agreed. I think externalities need to be accounted for, but regardless, intentionally using misleading language "for the right cause" is never justified imho.

</comment></comment><comment><USER4> And that $5.2 trillion doesn't include compensation for the 4.2 million people who die every year due to fossil fuel pollution.

[https://www.who.int/airpollution/en/](https://www.who.int/airpollution/en/)

<comment><USER5> and that 4.2 Million people doesn't include the 7 Billion people in the world that need fossil fuels in order to have power. Cars, buildings etc. Because of fossil fuels, life has been much better for the 7 billion.

<comment><USER6> I would not include all in that equation. Victims of increased heavy precipitation might disagree with that statement, not as a whole but at least in some parts.

</comment></comment></comment><comment><USER7> Disregarding the fact that this is not what "subsidy" refers to, it's disingenuous to only count negative externalities without counting positive ones.

air travel, cars, snow blowers, truck transport, train transport, bus transport, natural gas house heating, propane fork lifts, front loaders, orbital rockets (gps anyone?).

Imagine life without these things. To calculate the true cost of oil you need to include its benefits as well. Electric batteries are only _just_ becoming feasible for most of these things.

Of those airplanes and orbital rockets still have no feasible battery alternatives and won't for some time.

</comment><comment><USER8> Lack of externality-cancelling taxes is not equal to a subsidy.

<comment><USER9> If a town allowed a restaurant to dump their trash in a public park for free, would you consider that a subsidy?

<comment><USER10> No.

<comment><USER9> LOL

<comment><USER9> Competing restaurants and whoever is in charge of the park cleanup budget would disagree with you quite strongly

</comment></comment></comment></comment></comment><comment><USER11> How far would this amount help to switch over to renewable energy?</comment>


Cops Use Old Brink's Truck to Shame Suspects - <AUTHOR> http://online.wsj.com/article/SB125046098403135197.html <comment><USER2> Seems that it is probably less to shame and more to threaten the suspects with surveillance of their criminal activities. I don't have any particular issue with it, but I suspect civil libertarians might. (In particular, "We pretend to watch them, to scare them into thinking we really are watching them, and thus to control them without exerting effort" is called the "panopticon" in academic literature, and is widely despised by anybody who has ever said the word "panopticon".)

<comment><USER3> Who are "civil libertarians"? People who value their civil liberties? People who are willing to do something to protect them? Whatever they are, you say you're not one. Interesting.

<comment><USER2> _Who are "civil libertarians"? People who value their civil liberties?_

People who value civil liberties are civil libertarians in the same sense that people who value women are feminists.

 _Whatever they are, you say you're not one._

Correct. I am also not a feminist.

<comment><USER3> You didn't answer the question.

<comment><USER4> There's no intention of answering it, just demonizing "civil libertarians" - i.e., anyone who disagrees with him and thinks this violates civil liberties - in order to pretend to have the high ground.

</comment></comment></comment></comment></comment><comment><USER5> My college roommate's dad worked with microfinance companies in India. Every month, a representative from the company would go from town to town collecting monthly payments from the borrowers.

Sometimes the borrower would claim that they could not pay. In that case, the collector was instructed to just sit down and wait for them to pay. The shame of having the collector sitting in their village was overwhelming, and payments were usually made within the hour.

A lot of people try to get away with bad stuff because nobody they know is watching. I'm glad that there are no Anonymous Cowards on HN. It's always interesting to see how differently people behave when their peers' focus is turned on them.

<comment><USER6> You can still be an Anonymous Coward here if there is nothing in your user:about.

<comment><USER7> or if you have a spare openId lying around

</comment></comment></comment><comment><USER8> So they shame people before they've proven they've committed a crime?

They are putting the neighborhood under surveillance?

I appreciate the ingenuity, but this is big brother-ish.

<comment><USER9> Yeah, if there are reports of criminal activities the cops should stay away and not look at what's going on, dam those meddling cops stopping criminals from doing their deals. </sarcasm>

Presumably you'd like patroling officers to be fitted with blindfolds to avoid them surveilling people from the street?

<comment><USER10> The problem is that this is designed specifically for when police don't want to do their job. They believe the people are "bad" and engaged in undesirable activity, but they can't be bothered to investigate and gather evidence of criminal activity. Instead, they want to make their lives miserable, on the principle that the threat of surveillance bothers the guilty, but not the innocent. And any sweet old lady can tag someone as a "bad element" who needs to be driven out of town.

If that's what we want, then we don't need police in the first place. We just need close-knit communities where good old boys are eager to enforce the nervous prejudices of the community using violence and intimidation.

Don't get me wrong; I'm a quiet, boring person who detests littering. I wouldn't be a target for this kind of operation. But we already know the hazards of this kind of justice. We've been there, done that, and moved on.

<comment><USER11> I wouldn't say that it's designed for when police don't want to do their job. There are many communities where there aren't enough police to do a good job. Using techniques like this seems like it would allow them to use actual humans where they're more needed.

The cases cited in the article were of neighbors asking the police to somehow combat the unruly elements in their communities. It seems like you're under the impression that this is a matter of "nervous prejudices" running wild, like some Salem witch trials scenario. But what would you, personally, think would be the best course of action if one of your neighbors (not you yourself) was a drug dealer whose activities were a constant nuisance, if not a threat to your well being? What would have the police do if they had tried every other tactic at their disposal? I don't know if you have children, but if you did - would you just stoically endure, put them in danger, on the basis that a technique which works might one day be abused?

I know it's lame to say "think of the children!", but when you're talking about drug dealers and the kind of trouble they bring I think it's appropriate. In high school I worked with a lot of kids from bad neighborhoods and saw the effects of living in an unstable environment. If something like this helps out kids like them, I'm all for it.

/rambling

<comment><USER10> As far as I'm concerned, nobody is a drug dealer until the police have caught them dealing drugs. Gossip is not a good way to determine who the good guys and bad guys are. In the cases described, what's freaking people out is their neighbors being noisy and dirty and keeping odd hours. These are class and cultural differences which, I will admit, are really annoying and (I assume) strongly associated with criminal activity, but people should be held responsible for behavior that is observed and documented, not serious criminal behavior that is statistically inferred from violations of decorum. You can easily make a neighborhood more pleasant and secure by running out all the poor people, or all the black people, or all the straight people. Or the Irish. That's stereotyping. (It works, bitches! But it's wrong.)

You want to raise the tenor of the neighborhood, broken-windows style? Then use existing laws or HOA rules about trash and noise. Pass new and draconian ones if necessary. Go wild! But the police shouldn't hold people responsible for their neighbors' assumptions about them. We're supposed to be a liberal society, in the classic sense of the word. If you want to treat someone as a drug dealer, catch them dealing drugs.

<comment><USER12> _"As far as I'm concerned, nobody is a drug dealer until the police have caught them dealing drugs."_

Which is clearly false.

 _"Then use existing laws or HOA rules about trash and noise."_

How do you make a noise survey without surveilling people. How do you know which house to surveille without listening to the neighbours?

</comment></comment></comment></comment></comment></comment><comment><USER13> More than 900 people have been followed and filmed by Greater Manchester Police as part of a pilot project to prevent crime.

<http://news.bbc.co.uk/1/hi/england/manchester/8164697.stm>

They can arrest you before you've even THOUGHT of committing a crime.

Not as a 'civil libitarian' but as an ordinary human I find this disturbing.

I don't know how you solve the problem of these mostly 'low level' criminal activities, but maybe they should park those trucks on the doorstep of some major international banks. Isn't this where the real harm to society is being done?

<comment><USER4> Judging by the comments here, a lot of HN commentors would welcome surveillance, especially if targeted at poor, minority neighborhoods.

The kindest thing I can think to say is that when the cops get the address wrong, they only intimidate the Hell out of the people inside and maybe scare them into moving, as opposed to the usual practice of smashing down their doors, assaulting them, and sometimes shooting them.

Considering the ridiculously flimsy pretenses narcotics officers can use to get warrants to raid homes, the fact that police would resort to something like this when they can't justify arresting someone should be a waving, neon- red flag.

</comment></comment><comment><USER14> Reminds me of the NYPD SkyTowers, which from what I've read are generally unmanned and the footage is never reviewed: [http://www.ny1.com/Default.aspx?ArID=64500&SecID=1000](http://www.ny1.com/Default.aspx?ArID=64500&SecID=1000)

<comment><USER15> Government CCTVs everywhere, now! Deterrence, hooray!

The Armadillo is somehow less offensive as its range is lower and it operates in a lower density area. On the flip side, the SkyTowers don't target anyone whereas the Armadillo is very targeted. Is it fair to publicly shame a person or group of people for a crime they are still presumed innocent of? What about mistakes? What about the police chief's daughter's boyfriend?

</comment></comment><comment><USER16> It's a nice niche solution for non-violent "nuisance" issues, but it will only scale to the point where the cost of temporary criminal activity shutdown and/or location movement is less than the risk/cost of dirt-cheap anti- materiel sabotage actions against the truck. A very, very low bar to hurtle.

Examples: Thermite + Firecracker Ignition against an axle, Short-range "spray painting" of camera portals w/ heat-set epoxy, Long-range shooting of camera portals with suppressed sub-sonic ammo or high-powered air rifles.

Additionally, the very minute a reasonably well-educated/funded home-owner brings a case against the "nuisance" claim to court, any further use of the truck would be limited to the local municipality's statutory limits on mere infractions (non-crimes)--typically no more than 24 hours.

To enable the truck to loiter any longer, the local prosecutor would have to file formal criminal charges and declare the particular residence a "crime zone".

</comment><comment><USER17> Seems another version of the "caveirão" we have here in Rio.

<comment><USER18> I think there's a big difference between killing people indiscriminately and putting a camera in front of their house.

<comment><USER4> _edited_

Retracted - I'm just too disgusted reading this thread, today.

<comment><USER18> I'm sorry to hear it. There's some pretty ugly stuff coming out, for sure.</comment></comment></comment></comment>


Continuations in Natural Language (2004) [pdf] - <AUTHOR> http://www.cs.bham.ac.uk/~hxt/cw04/barker.pdf <comment><USER2> I think I understand this. In "he only drinks soda", The token "only" opens the opportunity for "fcontrol" (like yield in a generator) to be resolved at a yet-to-be-determined position in the sentence. So if you "run" the function of `only { f(drink) soda }` or `only { drink f(soda) }`, `drink soda` is an independent construction by itself, but this pitch accent allows an additional information channel to be threaded through it.

I imagine generalizing this, not just "fcontrol" but other information- awaiters, it would be like functions wrapped in decorators of the various yield-channels they can emit to. Probably someone already does this.

</comment><comment><USER3> After skimming the paper without having a strong understanding of continuations, chapter 4 on focused/stressed words was the most understandable to me, I recommend to start there.</comment>


Ask HN: What are some books where the reader learns by building projects? - <AUTHOR> A continuation of https://news.ycombinator.com/item?id=13660086 which has been incredibly useful to me.
I recently finished this phenomenal book called "Building Enterprise JavaScript Applications":
https://www.packtpub.com/web-development/building-enterprise-javascript-applications
Which takes the reader from zero to building a non-trivial production fullstack application with JavaScript. <comment><USER2> Nand2Tetris

"...an ambitious book attempting to give you a cohesive understanding of how everything in a computer works. Each chapter involves building a small piece of the overall system, from writing elementary logic gates in HDL, through a CPU and assembler, all the way to an application the size of a Tetris game"

from [https://teachyourselfcs.com](https://teachyourselfcs.com)

</comment><comment><USER3> "Mazes for Programmers" and "The Ray Tracer Challenge" by Jamis Buck.</comment>


Show HN: Limestat – Keep Your Team in Sync (HN $100 Signup Bonus) - <AUTHOR> https://www.limestat.com/?ref=hackernews# <comment><AUTHOR> Here's why we built LimeStat -

So much of work communication revolves around the Question - 'What are you doing?'. This happens in meetings, standups, messaging apps, etc. All of this takes up a tremendous amount of time.

LimeStat allows everyone on a team to maintain their work status in an asynchronous way. LimeStat's purpose is for everyone on a team to know

1 - Who's doing what? 2 - What needs to get done?

Here to answer any questions from the HN community.

</comment><comment><USER2> Sucks that I can't look at this on my cellphone..

<comment><AUTHOR> indeed it does

<comment><USER3> I guess I'll never know what this tool is.

</comment></comment></comment><comment><USER4> You could at least spellcheck your landing page.</comment>


Urbit language tutorial, chapter 1 - <AUTHOR> http://urbit.org/docs/dev/hoon/tutorial/1-twigs <comment><USER2> Oh my giddy aunt the lark syntax bit~

As if it wasn't obtuse enough, why the fuck does it alternate -+/<> ???</comment>


America is losing another generation to science illiteracy - <AUTHOR> http://blogs.reuters.com/great-debate/2011/08/23/america-is-losing-another-generation-to-science-illiteracy/ <comment><USER2> America is falling behind in the race against China and India.

America was falling behind in the race against Japan in the 1980s.

America was falling behind in the race against Eastern Europe in the 1950s.

America was falling behind in the race against the Russian communists in the 1930s.

America was falling behind in the race against the Germans in the 1920s.

And in the late 1800s, America created a universal public education system. Why? Because Irish and Italian immigrants were building Catholic schools that offered an education to anyone who wanted one. So American Protestants began to worry that if they fell behind, Catholic priests would brainwash America's children into willing accomplices to an insidious Vatican plot to dominate the world.

I am not kidding. This was published in Harper's in 1875. The artist is Thomas Nast, inventor of Uncle Sam, (the contemporary) Santa Claus, the Republican elephant and the Democratic donkey:

[http://www.harpweek.com/09cartoon/BrowseByDateCartoon- Large....](http://www.harpweek.com/09cartoon/BrowseByDateCartoon- Large.asp?Month=May&Date=8)

ETA: Obviously, American education is not perfect. But it would probably be better if we could resist the temptation to panic about it.

<comment><USER3> "America is falling behind in the race against China and India."

While it may be bullshit that America is currently falling behind China and India, the fact that the majority of American adults are not functionally literate is a serious problem. Americans can never ever achieve any real scientific literacy at their current reading literacy levels. It's flat out impossible, and the fact that the authors of this article are complaining about scientific literacy out of context shows you that they don't know shit about the causes of the various problems within our schools.

Hell, roughly half of American adults are so illiterate that they can't even read the one sentence instructions on their medications. That's why you have stuff happening all the time like this:

"A two-year-old is diagnosed with an inner ear infection and prescribed an antibiotic. Her mother understands that her daughter should take the pre- scribed medication twice a day. After carefully studying the label on the bottle and deciding that it doesn't tell how to take the medicine, she fills a teaspoon and pours the antibiotic into her daughter's painful ear."

To quote the most recent report on health literacy, "90 million adults with limited health literacy cannot fully benefit from much that the health and health-care system have to offer."

Despite all the media jokes about people researching their own diseases, the fact is that only roughly 10% of American adults are even literate enough to read popular articles about medicine, and only ~3% are able to actually understand the academic literature. When they say that 90 million adults can't participate in the medical system, they aren't talking about adults who can't research their own symptoms and medications and help the doctor on collaborating on a diagnosis and treatment; rather, they're talking about people who literally can't even do what their doctors tell them to do. Roughly 25% of all doctors visits result in the patient not doing what the doctor tells them to do, and a large percentage of the time it's because they literally can't understand the simple instructions the doctor is giving. We spend roughly 1.2 trillion per year on the health system, which means that up to (but probably significantly less than) 300B of that is going right out the window due to poor adherence, especially since those with low adherence have good outcomes roughly 26% less of the time than those with high adherence, so they end up costing a lot more money in the longrun. I forget what percentage of low adherence is due to literacy/education, but I know that it is one of the largest factors.

The fucked up thing is that "among those scoring in the lowest level on the prose literacy scale [1st-ish grade level], only 29 percent reported they did not read well and only 34 percent reported they did not write well. The majority of those performing at this level perceive their reading and writing skills to be adequate. Among those in the next highest level [4th-ish grade level] the results were even more surprising, as only 3 percent said they couldn't read well and 6 percent said they couldn't write well (Kirsch et al., 1993; see Chapter 2 for more information on the NALS)."

If you ever actually go into a real science classroom you'll see that if the teacher actually tried to teach science it would be a complete waste of time. Virtually none of the kids would actually be able to understand any of the lessons, let alone transfer them to real life situations. And while it's true science textbooks and the way science is taught is terrible, the vast majority of students aren't going to become scientifically literate no matter how you try to teach it.

<comment><USER4> The USA is special, when it comes to demographic statistics. I've heard the US is often bimodal - there's one distribution for people who live in reasonable areas, and people who live in places where there is generational poverty, gang violence, drug dealers everywhere, no jobs, and so on.

OK, immigrants also do a little poorer, especially informal immigrants. And some states are wealthier than others. But this is all stuff that other countries deal with as well.

The US seems to allow large areas of their cities to become extremely poor. Maybe it's a hold-over from the semi-apartheid days before the civil rights act, when there were black areas and white areas; I don't know.

Maybe the solution is for local councils to try and mix up the communities more, encouraging low-income housing to be dispersed throughout the city. Yeah, it sucks to have a few poor families in the neighbourhood, but it's better than having whole neighbourhoods of poor people.

<comment><USER5> > The USA is special, when it comes to demographic statistics. I've heard the > US is often bimodal - there's one distribution for people who live in > reasonable areas, and people who live in places where there is generational > poverty, gang violence, drug dealers everywhere, no jobs, and so on.

> OK, immigrants also do a little poorer, especially informal immigrants. And > some states are wealthier than others. But this is all stuff that other > countries deal with as well.

Just stop beating around the bush with PC euphemisms and say what you mean - "blacks and Hispanics are much worse off than whites, to the point that they have their own set of statistics. The states that have lots of them are significantly worse off than ones who don't."

> The US seems to allow large areas of their cities to become extremely poor. > Maybe it's a hold-over from the semi-apartheid days before the civil rights > act, when there were black areas and white areas; I don't know.

> Maybe the solution is for local councils to try and mix up the communities > more, encouraging low-income housing to be dispersed throughout the city. > Yeah, it sucks to have a few poor families in the neighbourhood, but it's > better than having whole neighbourhoods of poor people.

Yeah, that doesn't work in America. Unlike those "other countries" you mentioned, we have virtually unlimited space, and the minute (poor) blacks or Hispanics move into a neighborhood, you get white flight all over again.

<comment><USER3> Race doesn't really correlate much with literacy beyond SES. The reason why it's important is that the children being born in the U.S. today are over half 'minority', so it's important in terms of being able to easily understand the longterm trend.

<comment><USER6> On the contrary, SES (or at least income, which is easy to measure) explains very little of racial gaps in education.

[http://www.umich.edu/~rdytolrn/pathwaysconference/presentati...](http://www.umich.edu/~rdytolrn/pathwaysconference/presentations/craig.pdf)

<http://www.jstor.org/pss/2963200>

<comment><USER3> "Together these research sources demonstrated that although SES exerted statistically significant direct and indirect effects on reading, oral language skills – especially oral language comprehension skills – were a much stronger influence on reading achievement outcomes."

In other words, you want to choose a definition of SES that predicts how the parents interact with the children before age five, as it's not (mostly) income or race that creates the achievement gap. E.g. just separate the parents into welfare, working class, or professional, like Hart & Risley do in Meaningful Differences. I think in order to understand how SES effects the achievement gap, you need to choose a definition of SES that is broad and qualitative rather than quantitative and limited.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> This is my opinion in education, and it tends to differ than the author one: You don't need to teach science in primary schools to have a science literate population. Teach them to read, only.

Why: Because reading is key. What I learnt on my own reading books in one year was more than what I was taught in all these primary years. They have helped, but even if I didn't take these classes that wouldn't be a roadblock.

How I envision a successful education:

1\. Language is priority: Reading, writing and communicating. Dedicate long hours for reading and daily writing. This is better than science or math. I need to be able to read, and also communicate effectively with others (forums, chat...)

2\. Math: Math is also important. Dedicate a good amount of hours for a solid math education.

3\. Others: It includes science, geography, history... What does the average person need of information to be relatively literate? Give it that amount of information; only. The bare minimum so he can understand things like nuclear radiations, ADN, therapies...

And then? Let people decide. Science is not for everyone. There is a writer, designer, business analyst... They don't need science, but they are in need in the society. Let everyone decide what he wants to be. You allowed him to read and communicate effectively. Don't worry about what will happen next.

<comment><USER8> Science education probably does a lot to change people's view of the world. After all, chemistry and biology teach people that they're made of chemicals and cells that, as far as we can tell, act deterministically (or randomly), or at least cells act autonomously. How is that less important than trigonometry?

<comment><USER9> deterministically or randomly?

neither of those could be farther from the truth.

<comment><USER10> The universe isn't deterministic? You've solved this? Please share!

<comment><USER11> There's a man in the clouds jiggling us around with puppet strings, obviously.

And the man in the clouds, well, I guess he's controlled by a mystic turtle in outer space...

<comment><USER10> And you've discovered that determinism implies an omnipotent creator/deity?! Truly we are breaking ground here on HN that the best philosophers and scientists throughout history have grappled with for tens of thousands of lifetimes!

<comment><USER9> quantum mechanics is neither deterministic (due to quantum superposition) nor random (we can make predictions).

i don't see how this is controversial or silly.

<comment><USER12> I don't know which meaning of random you have in mind, but we can make predictions about random "things".

If I understand correctly if we measure qubit that is in 10/90 superposition of 0 and 1, we have 0.1 and 0.9 chance of it becoming 0 and 1 respectively. We can predict, that it would probably be 1, but it is still random.

Or am I wrong?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Upvoted because the issue is important and there are intelligent people to discuss the issue here. I regret that the article's key factual statement is "Testing does not motivate engagement, passion, creativity and innovative thinking," without any evidence to back that up. There is no suggestion in the article where to look around the world to find an example of a school system with differing practices that motivate engagement, passion, creativity and innovative thinking. There is a huge research base on science education (it is considered an important national priority in many different countries) all around the world, but the submitted article doesn't discuss what good practice looks like.

The TIMSS study is another international study to look at for information about science education in various countries. Most studies of education policy suffer from the same defect of not having a truly experimental design:

<http://norvig.com/experiment-design.html>

that is, most of those studies don't have random assignment of students to treatment and control groups, but rather look for correlations between academic performance and other observations, with nothing in the study design being able to give assurance of causation.

Science textbooks used in the United States have long been very lousy,

<http://www.textbookleague.org/>

and as I have had a chance to see science textbooks from other countries, particularly Taiwan, China, and Russia, I hazard the guess that improving textbooks in the United States would help more learners learn science more successfully. General improvement of teaching technique along the lines discussed in another current HN thread

<http://news.ycombinator.com/item?id=2960085>

would probably also be helpful, but the policy incentives needed to improve teacher performance are not easy to come by in the United States.

After edit: To answer a question asked in another comment below the submitted article, scientific illiteracy is an important public policy issue because scientific illiteracy in a democratic republic results in voters voting for stupid policies because they don't understand science. The reason to know science isn't just to get a job, but to be a more thoughtful citizen and voter.

<comment><USER6> _To answer a question asked in another comment below the submitted article, scientific illiteracy is an important public policy issue because scientific illiteracy in a democratic republic results in voters voting for stupid policies because they don't understand science._

If this is the case, why don't we strip the scientifically illiterate of the right to vote, or perhaps give their votes a lower weight? Similarly, we could rejigger our immigration policies to raise the average level of scientific knowledge (e.g., deport all low skill immigrants, eliminate family reunification immigration, and give immigration preferences to engineers).

If our main purpose in increasing education is to improve the signal/noise ratio in the electoral process (rather than preparing people for more productive jobs), it seems far cheaper to reduce noise than to increase the signal.

Note: I'm not advocating this policy, I'm merely asking why it isn't a cheaper way to achieve the stated goal.

<comment><USER14> For the right to vote: Because rather than bringing science into politics, it would bring politics into every facet of science. Funding large amounts of science via politically-based processes has done a good job of that as it is but this would make it orders of magnitude worse.

And what happens when the official government position on a bit of science, upon which your voting rights rest, turns out to be wrong because science, in its capacity as an ever-changing best-current-snapshot of our best guesses has moved on? Oh, and it turns out it is in the best interests of some interest group to keep it wrong just the way it is, because otherwise it might let entire battlefield states sway the other way in the next major election because more of the "wrong people" will now accidentally get that question correct on the next voter survey. Not to mention creating the ultimate "teaching to the test" situation for the voters.

Interesting question, BTW.

For immigration: Isn't that actually our official, legal policy? I don't think we officially import low-skill immigrants. We unofficially do it, wink-wink nudge-nudge.

<comment><USER6> _Because rather than bringing science into politics, it would bring politics into every facet of science._

Simple solution: stick to non-controversial science. There is plenty of it, after all. Focus on atoms and molecules, electricity, archimedes principle, newtonian motion/gravitation, things like that.

It is quite possible to test basic understanding of science without delving into areas where political/religious/tribal beliefs cause cognitive dissonance (e.g., vaccinations, racial disparities in intelligence, evolution).

Even better, one could merely test the ability to follow scientific inference on the basis of hypothetical experiments. That would make it more difficult to "guess the teacher's password".

 _I don't think we officially import low-skill immigrants._

The majority of immigrants to the US come in under family reunification visas.

[http://www.migrationinformation.org/usfocus/display.cfm?id=1...](http://www.migrationinformation.org/usfocus/display.cfm?id=122)

<comment><USER14> I stand corrected on immigration.

I thought of that approach to the science problem, but I just don't think you can hand the big "disqualify voters _en masse_ " stick to the political world and not expect them to use it. It absolutely would start out as you describe, but the pressures to exploit the non-scientific views of any of the major political orientations would just be too strong, and any attempt to fix _those_ problems with further rules cause their own problems. (The first one that leaps to mind is "kick out any question that 60% of the population doesn't get right", but I can still play a lot of nasty political games within that constraint.)

</comment></comment></comment></comment></comment><comment><USER15> There is an enormous amount of information about science readily accessible to anyone who wants to learn it. Perhaps many people just don't care about science. If that's true, forcing them to learn it probably isn't going to accomplish anything.

<comment> mkr-hn I haven't found this accessible information. Can you point to some?

<comment><USER15> There are tons of free textbooks available. Google for physics or math textbooks. There are also tons of free lectures available on YouTube and Khan Academy.

<comment> mkr-hn I see pages of commercial textbook companies on Google, and videos wont help non-visual learners.

<comment><USER14> Last I knew, science is not currently very kind to the old "styles of learning" theories, which turned out to be Yet Another Educational Theory Spun From Whole Cloth by "educators" unqualified to be spinning such theories. (I give it a "Yet Another" appellation because this turns out to describe nearly every educational theory you've ever heard. The standards of rigor in the field of education study could stand to be improved quite a lot.)

<comment><USER16> I can doubt some of the more specific claims, but it would be a fairly remarkable result, unlike almost any other area of human activity, if there weren't _some_ sort of person-to-person variation in the [(amount person X gets out of a textbook) - (amount person X gets out of a video on the same subject)] function. The alternative would be the hypothesis that learning ability varies in a 100% correlated manner (people who are more skilled at picking up physics from physics textbooks are exactly as more-skilled at picking up physics from physics videos, and vice versa).

Even if you ignore the visual/textual/etc. distinctions, they have other properties as media; for example, textbooks are easier to use in a random- access/skimming manner than videos, and can be more easily taken outside or marked up. It could just be my concentration, but I also can't get through watching a YouTube video, while somehow I have no trouble reading through a book.

</comment></comment></comment></comment></comment></comment><comment><USER17> > A quick look at the countries where children outperform the U.S. on the OECD > Programme for International Student Assessment (PISA) shows that none of > them do anywhere near the amount of testing that is done in the United > States.

I am not American so please tell me if it's just a prejudice but looking from outside, Americans seem to be very reluctant to learn from other nations.

<comment><USER18> Well, I wouldn't generalize everyone living in America into a bucket of "Americans" - although I'll just assume that's not what you meant.

Certainly there is a good portion of Americans unwilling to learn from other nations or change or care about anything else, yes, they exist. But there exist Americans of the other kind, too. And this doesn't just apply to America, it applies to any group of humans, really.

<comment><USER19> True, but honestly it applies to Americans more so than a lot of other nations. It's only to be expected when, starting at a very young age, one constantly hears about how the US is "number 1" (what ever that means).

I mean, look at the Olympics. The US wasn't winning the most golds anymore so the news media actually _changed the metric_ to use "most overall medals" so the US could be number 1 again.

</comment></comment></comment><comment><USER20> Linear extrapolation of trend X.

Horrifying conclusion!

seriously do the commenters on HN have to debunk an article of this format every day?

</comment><comment><USER21> If you can't read or have a basic working knowledge of mathematics, what's the point of science?

<comment><USER22> Biology is one of the most dynamic, rapidly advancing fields of science today. Can you name an important equation in biology? Quite a bit harder to do than for chemistry or physics...

It's also worth noting that the people who generally tend to be anti-science in America are typically not anti-law-of-gravitation or anti-atomic-theory-of- matter types.

<comment><USER23> I would argue that biology without equations is just as useless as physics or chemistry without them. Yes, its interesting to know about evolution and how cells work, but to interact with a cell or guide evolution in any meaningful way you need to know the equations that describe flux over a membrane or evolutionary equilibrium. Just like its interesting to know the order of the planets and that rubbing a balloon against your head will make your hair stand up but if you actually want to send something to space or use electricity you need to add the equations.

The advancement of biology is driven by the development of algorithms and equations and to suggest that it is somehow less dependent on them than other branches of science does it a disservice.

<comment><USER24> I disagree if you mean "usage" to be "direct usage".

My guess would be that most "equations" in biology curriculum are not really related to biological or physical processes directly, but rather to statistics, experimental setup, i.e. data interpretation and manipulation.

Now, of course, stats are very important and are probably basic knowledge is key in reading and critically analyzing any scientific paper. So I am not criticizing that. However my opinion is that mathematics is not as critical to biology as it is critical for physics.

</comment></comment></comment></comment><comment><USER25> Something was bugging me about this article. After writing 3 potential comments, then deleting them all, I finally got it.

This is formulaic.

I have seen this article, or radio stories like it, over and over again over the past few years. As I understand the situation, in the United States we decided to have common tests for reading and writing -- you cannot manage what you do not measure -- and since then, the people being measured have written dozens or hundreds of variations on this theme.

The formula goes something like this: pick a topic not covered by the tests. Could be music, history, science, or civics. Demonstrate how poorly students are doing in this area. Demonstrate (or just give a good rant) about how important this area is for the future of our society. Complain about teachers having to teach so much to the tests and how bad that is. Argue that getting rid of the tests would free up time and resources so that we could regain some of what we desperately need.

There are many logical problems here. First there is the problem of limited resources. We must make funding decisions and choose some things to emphasize over others. Governance is about making choices. Second, and it amazes me that this isn't obvious, unless you can read and write effectively your choices in life are severely restricted. A good reader and writer who shows an interest in science, art, underwater basket weaving or whatever? They can go learn more. They can choose a subject, dive in, and self-educate. Somebody who is functionally illiterate but loves Beethoven? Aside from a kid with nice tastes, whose life is probably a tiny bit happier, we're not accomplishing much. Reading and writing are multipliers in a way other subjects are not. If you don't like or agree with that position, fine. Then choose something else you want to stress. Then measure it. Waving your arms around about how important each and every subject is does not constitute a system of making choices.

I am especially befuddled with this argument about teachers teaching to the tests. It's as if we are using the way teachers act as some kind of rationale for justifying the testing -- which is exactly backwards. Obviously we've had teachers create literate students over the past several hundred years without testing, and they didn't teach to the test. Why do we assume that because teachers are acting a certain way now that it is in their best interests to do so? Maybe most systems of teachers just don't know how to educate kids, and focusing on testing is the only thing they've got? If so, then we need to improve education systems, not eliminate the measurement. You don't make people better basketball players by taking away the scoreboard. I have no idea why this reasoning passes as informed logic in this debate.

My opinion as an interested observer is that once we actually starting measuring how poor of a job we do, all hell has broken loose. Not surprisingly, there's a huge push to stop measuring. This is not a good idea.

Yes, science literacy is a great thing. Let's work on general literacy first, then take whatever resources we have left over and instill a love for science. General literacy will get you a lot farther than scientific literacy will. (I also have some serious questions about what passes for scientific literacy which I'll save for another day.)

<comment><USER26> Counterarguments:

1\. Kids probably know more today when they leave school, but they must. The bar has been raised significantly since say a century ago. What worked a century ago is insufficient now; there aren't any jobs for the illiterate anymore.

2\. I think teachers used to optimize a different function than they do now. Currently, they try to minimize the number of fails; the curriculum is designed to allow say 90% to pass, so teachers direct their attention at the 20%-30% range of students. With fewer repercussions on the absolute number of fails, teachers used to sort-of optimize for maximal average improvement. That meant that they would help all kids, and take pride both in getting the less bright to pass exams, and in getting bright kids to rise above themselves.

#2 is pure opinion, but I do not think it is completely besides the truth.

</comment></comment><comment><USER27> Considering most of google's revenue comes from ads, may be English Language Arts (ELA) isn't such a bad thing :)

</comment><comment><USER28> Well, does a strong science education pay off for the student as a career path?

<comment><USER29> Does a strong english education?

It's a fundamental tool, but by itself it is pretty worthless. You can say anything but will have nothing really to say.

</comment></comment><comment><USER30> While it seems intuitive that a more scientifically 'literate' population is 'better', is 'scientific illiteracy' really a problem?

To me it would be a problem if there were lots of openings for jobs that require scientific skills _without_ there being anyone to fulfill it. As things stand, to me it seems that there are tens, if not hundreds, of qualified people for every possible job opening, whether in academia, government, or the private sector.

<comment><USER10> What makes you think they are qualified? Certainly there are a lot of unemployed folks, and there is plenty of work for qualified people to do, but that doesn't necessarily back up your point (in fact, the very issue at hand is that it doesn't).

<comment><USER30> For the claim that 'there is too few qualified people in the US' to be a scientific claim, it needs to be falsifiable. In other words, what evidence do you need to see, in the future, to convince you that yes, now there are enough qualified people? What data-points will you use?

My entire problem is that all of the data-points I've seen used so far are extremely questionable, and there doesn't seem to be enough people questioning them.

The fact that US students have dismal scientific knowledge to a naive person suggests, but in reality in no way proves, that the US has, or will one day have, a shortage of scientifically qualified people.

I hope there are enough intelligent people who are uncomfortable about making the leap of faith from 'US students have bad science grades' to 'the US will experience a shortage of scientifically-qualified people'.

Any redesign of the education system needs to be grounded in science, not fashionable rhetoric.

<comment><USER10> >I hope there are enough intelligent people who are uncomfortable about making the leap of faith from 'US students have bad science grades' to 'the US will experience a shortage of scientifically-qualified people'.

How about the leap of faith from "there are heaps of scientific and technical jobs for which no qualified candidates can be found" to "science education in the US sucks?" And also the fact of increasing reliance on immigrants to fill those roles when a suitable local (i.e. native) doesn't appear?

Seems falsifiable to me.

edit: basically what I was getting at is that your original statement: "As things stand, to me it seems that there are tens, if not hundreds, of qualified people for every possible job opening" is false afaik.

</comment></comment></comment></comment><comment><USER31> We must be doing something right since we have Apple, Google, Microsoft, etc.

<comment><USER22> When I was working at Apple the number of foreign-born engineers I interacted with was greater than the number of American-born engineers. If you added together foreign-born with 1st generation Americans (i.e. one or both parents were foreign-born), that number was _far_ greater than the number of "purebred" Americans.

Not sure about Google and Microsoft, but it does say something that 50% of Google's founders were foreign born.

Anecdotally, in graduate school I have noticed a troubling trend. 10 years ago, foreign students would come to the U.S. to get advanced degrees and then stay in the U.S. to get good paying jobs. Today, many of those students are returning to their home countries for work...

In other words, the U.S. is riding a wave that was started by the educated class in the 1940s and 1950s and was increasingly supported by the immigrant class in the 1970s, 1980s, and 1990s. When the immigrants stop coming, if the educated class is found to be missing...then, yes, the U.S. is screwed.

<comment><USER32> The US sure doesn't make it easy for those graduates to stay!

<comment><USER33> I know what you mean. A friend of mine is trying desperately to stay, but unless she can get a job that will sponsor her, she'll get tossed out after her studies are finished.</comment></comment></comment></comment>


Show HN: Autohook v2 – tiny Git hook manager, redesigned - <AUTHOR> https://github.com/nkantar/Autohook <comment><AUTHOR> Author here.

V1 thread: [https://news.ycombinator.com/item?id=13561404](https://news.ycombinator.com/item?id=13561404)

V2 has been redesigned to be even more seamless. Feedback welcome, both on the concept and execution.</comment>


China's Kunlun, may have to sell Grindr due to national security - <AUTHOR> https://www.scmp.com/tech/enterprises/article/3003542/look-chinas-kunlun-whose-ownership-gay-dating-app-grindr-seen <comment><AUTHOR> related:

 _> China has massive database that now includes

\- Civilian and military personnel records (OPM)

\- Travel info (Starwood/Marriott)

\- Financial/credit data (Starwood)

which augments all of the other data they've collected on American persons via other means

What is also not necessarily always mentioned in recounting this is how China rolled up our own human intelligence network within their country. So not only can they see us, but we're now blind._

[https://twitter.com/Aelkus/status/1226930821874974720](https://twitter.com/Aelkus/status/1226930821874974720)</comment>