skysight-inc/HackerNews huggingface dataset:
So there are 1.5 million brain injuries per year in the US[1], and they found one with a positive outcome.

Publication bias[2] is the most charitable explanation, but really it shows that even the New York Times is prone to sensationalism[3]

[1] https://www.braintrauma.org/tbi-faqs/tbi-statistics/

[2] http://en.wikipedia.org/wiki/Publication_bias

[3] http://en.wikipedia.org/wiki/Sensationalism

EDIT: No that does NOT make it interesting. It suggests that it would take order of 1.5 million more brain injuries to reproduce it. Hardly a medical advance.
Or save yourself a lot of time by making each story worth 1 point and just count how many stories you have. They will average out over the course of a program (this is borne out by studies of many projects at Thoughtworks).
They use Gerrit: https://code.google.com/p/gerrit/
Aren't developers the end-users of GUI frameworks?
Does it demonstrate a lack of humility to be honest about how difficult something was for me? I'm sorry my truthful assessment offends you. If humility means pretending things are harder than they are, then I guess I don't have any humility.
>So there are 1.5 million brain injuries per year in the US[1], and they found one with a positive outcome.

Which is what makes it interesting, duh!
This article sucks. It reads like some scam where they never actually get to the point. Also "recommeneded article" every paragraph.
As of 2014, deep brain stimulation (DBS, think pacemaker for the brain) is formally recommended in the US for treatment-resistant OCD.

http://www.medicalnewstoday.com/articles/282899.php

In the SF Bay area, Stanford, UCSF and Kaiser all have very active DBS practices treating a range of conditions.

https://stanfordhealthcare.org/medical-clinics/deep-brain-st...

http://neurosurgery.ucsf.edu/index.php/deep-brain-stimulatio...
No. That's not right. At all.

If you use a GPL ladder to get up and then climb even higher then you are mandated to not just leave the ladder but to extend as you continue to climb.

If you use an MIT ladder to get up then climb even higher then you have the choice to extend the ladder as you go or not. Or partially extend it in some places but not all. But there is literally nothing you can do to the original ladder. It's there for anyone else to use exactly as you used it and there's nothing you can do to stop them.
I think you are missing the parents point. Since everything is lazy in Haskell, a program without IO will literally do nothing. It will not evaluate a single line of code.

To expound, Haskell pure functions do not run code. They produce code to be run at a future date. The infamous IO monad is essentially a wrapper around this code which contains information on when the runtime is supposed to actually execute the code. The execution is always dependent on IO.

So, as the parent said, a Haskell program without IO is literally nothing.
It would seem no one got the joke that this is a pencil drawing by Renee French illustrator of the Go Gopher.
Packet Sender – The UDP and TCP Network Test Utility
That's a good point. I suppose people do judge Java by the popular Java libraries and their styles. However, I don't really consider those things when talking about how difficult Java is to learn.

Learning Haskell may well be easier than using it, although the same is true for most languages.
Awesome list. I'm happy to have saved it. I'd love to see a post about how to easily and quickly start transitioning without a hassle. :)
Well no, for

std::vector<int> t = {0, 1};

t[0] calls operator[], which returns an int&. This is precisely an lvalue reference, which is kind of like a memory address, but int& is a type in its own right. Calling it a "reference object" is not entirely correct, but it's also not entirely incorrect. And let's not get started on vector<bool>...
BTW, there is a VM for Dart that is experimenting with different concurrent modes to provide an alternative to async programming: https://github.com/dart-lang/fletch

You can read its short wiki for some clues: https://github.com/dart-lang/fletch/wiki/Processes-and-Isola...

I like Fletch's idea very much. Imagine not having to worry about Async all the time.

Not sure how everything is implemented in Fletch, but I think I heard that in Fletch they are able to share 1 thread per many processes if need be. And they have been trying hard to save memory while implementing those features.

If you want to run some tests to compare with, I created some small samples using different Dart implementations and NodeJS here: https://github.com/jpedrosa/arpoador/tree/master/direct_test...

Fletch also supports a kind of Coroutine: https://github.com/dart-lang/fletch/wiki/Coroutines-and-Thre...
I'd like to see the sysadmin or programmer that is willing to take the loss if someone hacks the network (or an app) of his employer and steals a few hundred million dollars.
> Because terrific work causes us to think of additional questions,

I'm gonna steal this line.
Seems to be under heavy load. I've got it working once on my desktop (and not again) and never on my phone so far.
I'd love to hear more (and talk offline).

My company is in the very early investigative stages on the Haskell front.

You can reach me at my name (including middle initial) which is this HN name, at gmail dot com.
How to Unlock Your Phone
Why ask here? Think about what you're asking, maybe there's a better place find your answer.
I also am scared off by the public aspect, and find it a very awkward requirement. If there was an option to create a private branch on Github, I'd probably use it often. I'd love if there was an easy way to submit a quick patch using only the Github interface. As it is, I've clicked once in my life on the fork button, realized that it created something visible to the outside world, and have never used it again. Instead, I make a local checkout, and generate patch files.

It's difficult for me to explain why I feel this way. The original stigma of 'fork' is definitely part of it, but most of it is just my distaste for visibility: it feels horribly immodest to associate myself with a project with which I probably have only a passing association. I can't defend my attitude, but it's probably worth noting that people like me (and apparently the author of the Go article) will be dissuaded if public affiliation is a requirement.
Sadly, in my experience it has been a common technique used by poor managers to enact a distasteful policy by blaming it on some higher authority. And that it can be a culture thing, which is their manager does it, and their manager's manager does it, and the CEO does it.
Yes, but grandparent wasn't complaining about the inability of doing IO in Haskell:

> The choice of a pure functional language like Haskell to do lots of IO seems like a strange choice given that Haskell makes side effects like IO more difficult than other languages.

The argument was that doing IO in Haskell was difficult. So if you take programming as pure code intertwined with IO, the benefits of using Haskell would go down as the fraction of IO increased if the premise that "doing IO was more difficult in Haskell" was true.

So parent said something true, but I'm not sure how it relates to grandparent's comment.
Delete+your+Twitter+account+|+accountkiller.com
I think that, while there was a lot of good in the OP, this part was poorly communicated.

I'd guess that he's talking about something like the Lens library, which is incredibly easy to use, and comes from a place of great aesthetic sense, but whose type signatures take some time to really get. I had to work some things out on paper to see how the general Lens type signature:

forall f. Functor f => (a -> f b) -> s -> f t

applied to all the "magic" that can be done with lenses. And then you also have Traversals and Prisms. There's lots of stuff that just works, but requires some depth of knowledge to understand how the magic is built. I imagine that Frames, as it matures, will be in the same category (you need a lot of type-level programming to get type-safe data-frames).

That said, I still don't understand how certain languages (that shall remain nameless, but I'm not talking about Haskell here) implemented a type-safe printf, but it was easy to use. In statically typed languages like Haskell, you get just some immediate insight into what you don't understand. In a dynamic one, you can be led to feel like you understand more than you actually do.
Did they claim the positive outcome indicated a medical advance of any sort? Perhaps I missed it.
Gage went in the other direction, from well balanced to exhibiting many negative qualities. He survived, but other than that I'm not sure it was very positive for him personally.
If you found this article interesting check out the Born Yesterday episode [1] about the history of Monopoly, it's far more interesting that it has rights to be.

[1]http://bornyesterdaypodcast.com/#episode17
> Haskell has excellent I/O support. How do you mean that Haskell makes I/O difficult?

Composability is different since effects must be explicit, which is both a strength and weakness of Haskell. So say you want to add an effectful computation P in some function G, G and all its callers must have modified signatures accordingly. That could be annoying depending on what you are doing.
(Googler here)

You're not wrong, but I think you overstate the case. I wouldn't say employees are encouraged to publicly trash the company's products. Not at all. But the company does respect employees' right to speak their mind in public, and it does encourage thoughtful internal dissent.

I often tread pretty close to the line on what I say in public, and have even been reined in by Google legal counsel in a couple of cases. I found the experience of being told to cool it to be surprisingly affirming and liberating, and a powerful confirmation of the true commitment to openness in Google culture, because of the reasons for which it was done and the way in which it was done. Specifically, in both cases I really had crossed a line which could be potentially troublesome for Google in court, and in both cases the attorney who contacted me was respectful of my opinions and my rights to speak them to the point of being very apologetic about telling me to shut up. It was very clear to me that Google really didn't want to silence me, and did it only because they truly had to. I think that's awesome.

Based on my experience, I have zero concern for Brad's job, and wouldn't be surprised if he gets some mild and unofficial kudos.
Slack is used for communication in a team. If you don't join any team, you don't have anyone to talk to without the help of customized integrations.

Plus, the lack of voice message/call feature and other social bits makes it less appealing comparing to what we are used to.
They probably want to associate content with actual people instead of screen names.
I found a great explanation from the reddit link that rawnlq posted.

http://www.reddit.com/user/Seventytvvo
If you buy a Dropcam, it'll send you "loud noise detected" alerts when the fire alarm goes off.
They explain why in detail here: https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdw...

Also, you don't have to download a binary of Go to compile the latest Go. You can download the Go source back when it was compiled by C, compile it, and then compile the later, Go-sourced versions, if for any reason you need to go that far.
Yeah. Also, "what comes next" is also submarines.
Succinctness vs. Readability
The Big Problem with small business sites
Pull request culture is about enabling distributed collaboration, i.e. I don't have push permission to your repo and you don't have push permission to mine, but we can still collaborate by sending each other pull requests and sharing our work that way. It's all about collaboration while not trusting the other person with write access to your repo.
There are iterated function systems (IFS) for constructing such fractals, Sierpinski gasket is in fact quite common.
So basically, the CLR has ugly behavior on rethrows that can only be sanely described as a bug but it's a common-law feature at this point so we're using an ugly linguistic construct to work around it.
I knew the explanation didn't cover `IO ()` and some other corner cases, I hinted at the fuller understanding in the second half of my comment.

I was trying to avoid the low-effort dismissal you put forth by saying it was a very silly explanation.

What do you think you've accomplished?
Never saw that coming! Nice.
It's not exactly the first the time Go team is showing that they haven't spent much time researching current practices, theory, research and tools in the field of software engineering.

Everything about the language screams of coming from minds who stopped learning new things in the late 90s.
You have deeply missed the point of this case report.

We don't know what causes OCD (and we knew even less when this kid shot himself in 1983; the paper was not written until 5 years later).

When you get spontaneous remission due to an injury, that is a hint that the damaged region might be important in the disease process.

Unusual cases like these have the potential to rapidly accelerate our understanding of disease, which is why medical journals still publish case reports.

No one is proposing treating OCD with firearms.
iBeacons are like GPS, just dumb timers pingining a number over radio. You could have said the same thing about GPS in the early days.

How about a museum app that guides you to the nearest bathroom or the next exhibit you want to see? Or your watch could buzz you towards your airport departure gate or seat without ever needing a glance.

Even retail there are many opportunities that aren't advertising; how about helping you find 32" waist jeans in a pile of them? The tech is sub-centimetre accurate. How about a grocer partering with recipes.com and guiding you aroud to ingredients you need?

Then we could use it to guide autonomous devices indoors ... Maybe you play games in your car while a robot grocery cart shops for you, or maybe have it ready for pickup or drone delivery?
This is... amazing. Thank you so much.
Why learn C? (2012)
> financial transfers can be reversed.

Not this time: hackers withdrew some of the money from ATMs.
You're talking about GitHub commit comments, right? Can you not simply click to comment, compose your comments one by one, and then not send them immediately? You can send them all together after you finish reviewing the entire commit.

Although it would be nice to have a 'Send All Comments' button at the bottom of the commit page so you didn't have to click through them one by one.
Oath market
And where does it say that the US government has complete control over all media? At least in the last few decades? Any public actor will try to shape the narrative about him and his actions. But this is completely different than excluding any contradicting information.

The propaganda "machines" in Nazi-Germany, soviet union, and today in Russia or North Korea differ in one important point from western media reporting: The government's narrative is the only narrative.
The Go project is sufficiently modular that this isn't an issue for us.
A secure socks5/http proxy solution using auto negotiation of secret key
You're leaving out the alternative, which is the important part.

If you pull rebase, then that merge commit will be whatever the author of the commit decides it should be.

If they currently have ten files open, the merge commit will be ten files, regardless of how connected these files are, which is a lot of noise. With a pull-rebase, when they are ready to commit, they will decide to break it down nicely in 2+3+3+2 files.

The only person who should decide how to merge their files should be the person that modified these files, not git.
I call shenanigans. One of the most important mission of the submarines is to be "doomsday guarantees" -- ie if someone launches a nuclear strike at the USA the subs will be able to counter it even if the mainland can't. And there's an awful lot of water out there to hide these ones.
They want things in c unless they are tools for a language other than c. In which case it can be in that language.
C# != CLR. CLR has had exception filters for a very long time, if not forever. The runtime != the language.
I assume you are treating `stdin` and `stdout` as just a stream of bytes rather than trying to do anything clever a la Python 3 ?
> To create a patch one must fork the repository publicly (weird and unnecessary).

I think it's very fair to demand from a contributor to sync and build the entire app before they're allowed to submit a patch.

Interestingly, I note the Go team says it's "unnecessary" but doesn't provide their alternative.
Reference for the SPJ quote: https://www.youtube.com/watch?feature=player_detailpage&v=iS...
Password strength checker
I tried that experiment once with marshmallows. Zero results and a lot of cleaning. :(.
I've tried to get Content Security Policy (CSP) rolled out in our new development at work, and to be frank I'm starting to lose faith that it is workable.

We're on report only at the moment, and it seems like every major JavaScript library depends on Eval() in one way or another (mostly new function()).

Just this week someone wanted to use Angular (1.3.1) and it generates dozens of CSP reports without ng-csp in the HTML element, but when the attribute exists $http responses (which depend on function()) aren't working (e.g. success(function(data, status, headers, config) {}).

Unfortunately Angular's documentation on CSP is a single page with nothing particularly helpful, and tons of stackoverflow results about Google Chrome extension development.

This is just the tip of the iceberg. Seems like every single major JavaScript library (even things you just take for granted) break CSP or need tons of exceptions.
> "Write programs that do one thing and do it well."

So why does this WebSocket daemon also serve static files and CGI applications?
Maybe you should think about our dear Phineas Gage and what an incredible coincidence means for a whole scientific branch, and for the human knowledge about some of the most complex (and ethically difficult) subjects to study, our own brains.
http://en.wikipedia.org/wiki/Phineas_Gage
GM Recalling 81,000-Plus Vehicles Over Steering Problem
Waiting until chapter 9 isn't so bad when you realize that many professional programmers including myself have been doing this for 20+ years and are still learning the best way to structure effects within a program. What's the rush anyways?
I know Newegg still sells 3.5" drives. I think it would be tough, if not impossible, to find a 5.25 or 8 though that is new though.
Michele Ferrero, Owner of Nutella Confectioner, Dies at Age 89
Holy shit that's cool
I got it, and laughed :-)
Wow, UCSF has a pretty long list of requirements before this is an option!
This has been years, but I believe that I was able to format HD floppies as DSDD in some old Macintosh's. There's probably some risk, but I was able to copy files between computers.
There was a project several years ago to map a University's wifi using a self driving RC car with a wifi detector on it. The goal was to identify weak spots in the signal. I can't remember the name of the project and its not popping up on google, anyone else remember this?
Apple Said to Be Working on Electric Car to Challenge Tesla
Hrm, I'm pretty sure I'm not alone in the Java/C cohort around ~2004-2006 who discovered Ruby/Python and friends and felt.. liberated. Java 1.3/1.4 was so thoroughly completely awful and unproductive, I'm quite sure the uptick in dynamic language popularity was a reaction to that.

Funnily enough, it's the few years of Perl+Moose I've done since which has made a switch back to python just over a year ago a bit hard to stomach. Now that I've tasted something resembling an expressive type "system" (however narrow, incomplete and warty it is), which encourages immutable objects, and does so in a very painless and idiosyncratic way - while still bringing many of the benefits of declarative/"up front" programming for free - I really, really miss it.

So of all the things that could have made me realize I've had enough of dynamic languages, it certainly feels odd that a Perl OO bolt-on would show me a glimpse of what I've been missing out on. And even weirder that the closed-mindedness of the average pythonista made up my mind to move on.
How Channing Tatum’s Face Was Flattened for Foxcatcher
I think you mean s/researching/adopting/, since you are only referring to the outcome, not the study or decision making that arrived at the outcome. The Go team generally knows about modern things; we deliberately choose not to use them when we don't think they suit Go.
Despite what people may say, ES6 is turning out to be a pretty great language all around. Type coercion is still pretty annoying and is there to stay, but the new features are all mostly well done.

Now if we can only get the bind operator [1] in a timely manner, everything will be awesome.

[1]: http://wiki.ecmascript.org/doku.php?id=strawman:bind_operato...
Professional Engineers (mechanical, civil, etc.) are exposed to liability for the buildings, bridges, etc. they approve.
The Vicious Circle of Documentation
Lessons from 50 Shades of Grey
The total amount of cash and the per-withdrawal limits in an ATM limits the loss there. You can't steal millions of dollars from an ATM.
This is so colossally misguided a comment it's hard to know where to begin. So I won't.
openntpd has been nothing but trouble for me, but when I switched to djb clockspeed instead, it made things better. Here's a script that runs on GFiber devices, which uses tlsdate securely for the initial timewarp, and djb clockspeed thereafter. Since switching to this we have had extremely accurate timekeeping.

https://gfiber.googlesource.com/buildroot/+/master/fs/skelet...
Wow, they might want to check out doineednewservers.com :-)
No one doubts that Go is production ready at this point. But the performance requirements of a systems programming language are just very different from the requirements for a web server or applications language.

From my point of view, and the industry I'm in, the latency requirements of a web server stack look completely laughable. That's not to say there aren't challenges in a web stack, because many web servers have to handle orders of magnitude more I/O than we do, and efficient load balancing over a distributed system is extremely difficult and I am fortunate to rarely have to think about that kind of thing. But a requirement like "99% of requests need to have a response time of 200ms or lower" looks like fiddlesticks compared to a requirement like "a round-trip-time of more than 100us will be a large problem and get noticed".

My point is that Google's, CloudFlare's, and Dropbox's "performance-critical backends" don't require the same things as some other workloads. As a more mundane example, the latency requirements of Google's search engine are probably less stringent than the latency requirements of your text editor.

None of this should be taken to mean Go is slow or can't handle 99% of the world's performance requirements. But you can't just say "Go is high performance and fits in all of these company's critical paths. Try harder and it will work." Sometimes it might just not be cut out for it.
Agree that these techniques likely weren't intended to get more information.

But maybe they were deliberate instigation rather than punishment or cruelty. Possibly designed to stir up outrage, continued resistance and counterattacks? That way, the occupiers would manifestly need to keep a presence in the region... you know, to pacify the oil..er, I mean, "the crazy terrorists that hate us for our freedom".

I don't know if this theory has any merit or not, but it certainly seems likely that interested parties of many stripes semi-regularly provoke public outrage for economic reasons.
The onion, cracked, mcsweeneys, imgur.
Solving common node/io.js callback problems