skysight-inc/HackerNews huggingface dataset:
R won because of

1 - very high usability, particularly (contrast to python) for users who aren't developers, don't think like developers, and don't want to be developers

2 - very high expressibility

3 - it's free, so you can install it on lab computers and your laptop and everywhere else without forking out tons of money (see the price of matlab)

4 - a generate of grad students used it and it, in turn, was taught to a generate of undergrads

5 - academic statisticians tend to like it and tend to implement stats techniques in it, so there's a wide body of shared code on cran implementing most analyses you can think of
Sick time is logarithmic
By using arrow functions it's simply implied that the top level context is always being used. You don't have to define what "this" is, since it's always "this".
This is not ready yet, right? All I see is a "Email me when it's ready" form.
I would use strongly typed functional programming languages for everything if I could.

However, to be productive, you're usually constrained by what the dominant language is for your domain. For example, Android apps are usually written in Java and web apps are usually written in JavaScript. Each has a huge ecosystem of tools and libraries based around these languages.

I'm sure there's some way I could use Haskell or OCaml to write Android and web apps. However, by going against the grain, it's likely to be very time consuming and frustrating to integrate with existing libraries and tools. I'm therefore going to lose any advantage I was hoping to gain from using a functional language.
What is the correct method of walking?
Clearly not:

* jake albaugh definitely did not have anything
* to do with this.
Going philosophical (and I do this a lot), it's really about exploration of the solutions space. I think the whole profession has moved a step forward and we need metaphors, tools and architectures for systems where one computer (regardless of the number of CPUs or architecture) is just a component in our systems. Functional programming (not Functional design, think Map/Reduce) is a late attempt to improve on a "semi-solved" problem: to produce high quality systems that run inside a unique computer. Late attempts always can contribute, but they only offer some negligible benefits that doesn't balance properly with the added complexity (in technology or training... the famous learning curve). These attempts will always be welcome and will improve some layers on the systems we design, it's just that as move forward the benefits will go into a diminished returns dynamic.
When the just-over-the-next-hilltop promised-land nirvana of content-centric networking arrives, the hash will be enough to locate & download the content – so you shouldn't even need an URL:

$ hashcurl QmUJPTFZnR2CPGAzmfdYPghgrFtYFB6pf1BqMvqfiPDam8 | sh

Maybe it's even a special filesystem path, that contains (but does not list) everything-that's-nameable-and-findable:

$ sh /everything/QmUJPTFZnR2CPGAzmfdYPghgrFtYFB6pf1BqMvqfiPDam8

(BTW, personally not a fan of the opaque 'multihash' format, which obscures the algorithm-in-use to save a few characters.)
I think it's a reaction to there being a new build system announced fairly frequently. A while ago I actually started writing up a "Make for web development" tutorial file similar to Isaac's gist (linked in the article). At least for me, seeing new systems announced over and over again – especially the ones where you're writing JS functions to build stuff instead of shell commands – just makes me want to spread the "just use Make" word even more.
I find the broadness of this guideline really worrisome and likely to exacerbate bad traits HN has developed. It's going to be extremely easy, I invite you to watch for this, to broadly apply it to whatever is against the prevailing groupthink, and selectively exclude the prevailing groupthink. For example, "shallow cynicism" about favorites like Wikileaks will be mercilessly punished, as already happens by downvote, but by contrast "shallow cynicism" about enemies like the US Government is de rigueur here, so pointing out that it is shallow cynicism will be mercilessly punished - now with additional reinforcement from staff due to the "negativity" guideline.
Curious: why?

Lobster is popular in the US and they're like giant sea insects. Or is it something else besides the "ew" factor that make you say it's an awful idea?
Peter Thiel’s quest to find the key to eternal life
It exists in other motor vehicles. My last roommate had a quad where he would tune the ECU with software on his laptop depending on where he was riding and what parts he had installed.
You're not going to get anywhere by throwing discussion questions at him like this is a school exercise.

You missed his point and he's gone.

Edit: Oh, don't mind me, I'm just dwelling on how you seem to be in some starry-eyed optimistic we're-all-in-this-together quest to "further understanding" in a pit of petty verbal combat.
Cynthia Lennon and the Dark Side of a Legend
A lot less "interesting," in a very good way.
There's a point here though. Someone somewhere can extract the key out of a single car, but if you have a per-car key and you need to decap a chip and put it under an electron microscope to get the key then it quickly becomes infeasible.
"It would be nice to have a simple Reddit-style red envelope, though, rather than clicking my username, then 'Comments' to see if I've had replies."

I agree that a notification of replies would be useful. Small tip, instead of clicking your username then clicking on comments, which is something I did for a long time too, just click on the threads link at the top of the page. Takes you to the same content, but in one click rather than two.
I would say the author now morally owes the world an equally convenient PGP-signer/verifier.
This seems not to be the only reason:

There seems to be a consistent tendency that some people downvote comments not because the comments are wrong but because accepting the comment would undermine their position/opinion. See anything that touches into google/apple/feminism
> The truth is, at the end of the day almost everything is being built with Java, Python, Ruby, or JavaScript.

You need to normalize against the number of programmers writing in Java/Python/... compared to the number of programmers writing Haskell for this assertion to be meaningful. And when you do that, the picture starts to look a lot better.

In the past few years I have seen more and more people start writing real projects in Haskell and be successful. There was a presentation a couple years ago at CUFP [1] discussing one company's experience porting a 43k line Groovy app to 8200 lines of Haskell. You don't need someone to build a highly visible multi-million line piece of software in Haskell to be confident that it can benefit your project. I think there's enough evidence out there today to make a very compelling case.

[1] https://www.youtube.com/watch?v=BveDrw9CwEg#t=1207
I believe it's mostly illegal to have an unpaid intern as well, unless you follow the California and Federal Labor Laws.

> 1. The internship, even though it includes actual operation of the facilities of the employer, is similar to training which would be given in an educational environment;

2. The internship experience is for the benefit of the intern;

3. The intern does not displace regular employees, but works under close supervision of existing staff;

4. The employer that provides the training derives no immediate advantage from the activities of the intern; and on occasion its operations may actually be impeded;

5. The intern is not necessarily entitled to a job at the conclusion of the internship; and

6. The employer and the intern understand that the intern is not entitled to wages for the time spent in the internship
Keep in mind that Feinstein has witnessed political violence firsthand: she was the first into Harvey Milk's office after his assassination[1]. Her views on the Constitutionality of all tools of violence are understandably less permissive than most people.

[1] http://en.wikipedia.org/wiki/Moscone–Milk_assassinations
Hmm ok

Thanks for actually testing it
"Often, it's due to Rust being a systems language and exposing low-level details to you, combined with the type system ensuring safety."

I'm not convinced it's being a "systems language" (in the sense I think you mean). The last three languages I've learned to fluency have all, in various ways, been very concerned about errors: Erlang, Haskell, and Go. Yes, they have widely varying opinions about what to do with them, but they all agree that you have to be fairly constantly worried about them. You can't sweep them under the rug; you need a strategy, and you need to deal with the resulting issues head on.

Despite their differences, what I feel like I've learned from them is that historically speaking, the vast majority of popular languages and their communities have been downright cavalier about errors. It's often in all the little details rather than a consistent, stated design goal, but the presence of various nils and nulls, APIs that will happily return empty strings for paths instead of errors, and all kinds of APIs and libraries that seem to be subconsciously written with the belief that returning an error is a failure on the part of the library and will go to what now seem to me to be absurd lengths to somehow keep klunking along in the presence of already-manifested failure. Even for languages that think they're being really good with exceptions, I find that when I go back to them, they end up using the exception support to "permit" themselves to be sloppy and hope the exceptions will pick up the pieces... and they often don't. Not because of some theoretical weakness, but because allowing developers to think they don't have to think about the error cases means precisely that they don't!

People are used to errors not poking them in the face until deploy time. It seems to me there's a strong, broad motion towards developing languages that will in one way or another force you to deal with them at compile time. It's a culture shock for people, but, I'll tell you this, get really good at Rust or any of these other languages and go back to any of those other languages, and you will find your code changes in those other languages to suddenly look a lot more like your Rust does anyhow, which means this putative disadvantage of Rust evaporates anyhow. Once you see how sloppy you were being, it's hard to go back in good conscience.
But why write this as a React component, when a plain javascript implementation would do fine (in view of compatibility with existing code, which may not be using React)? Am I missing something?
Thank you so much for that piece of feedback. It really did flicker.

I investigated the problem and found a very good explanation for why it was happening.

Solved now:
https://github.com/peterbe/autocompeter/commit/a31c919c1281d...
> Because the main thing copyright does is curtail speech.

You lost me, there. That's a twisted reading of copyright.
Would you mind trying again? Make sure to refresh first.
Good for them. Twitter and Facebook are no longer "social" networks, they are "advertising" networks. I think that's the trajectory of every publicly-traded "social" network: to eventually become an advertising network, driven by the never-ending demand of increasing revenues and profits.
> I'm sure there's some way I could use Haskell or OCaml to write Android and web apps.

I don't know about Android, but for Javascript apps the balance tipped for me just last month. I'm probably enough of an insider that it's not quite true yet for the average Haskell developer, but I believe that will change soon.
> If HN had existed historically with the rules as they exist currently, would Georg Cantor have thrived in it?

I doubt it. Unconventional ideas that are orders of magnitude less radical than Cantor's get reduced to convention and dismissed all the time on HN. It's dismaying. But it is what human beings do, and especially what human beings in groups do. HN can't change that by proclaiming rules. Maybe we can mitigate it a little, such as by asking people to avoid gratuitous negativity.
Hah. Nice one :)
Perhaps what abalone is referring to is anything seemingly positive that doesn't add any value to the discussion should also be pointed out. In other words, gratuitous comments in general, positive or negative, should not be supported. For example, we see lots of "XYZ just raised $10mil" on here and the comment section is littered with "Congrats Jim!". Should we not be downvoting those too so we keep the consistency of "I learned something here" comments?
Sounds like any social company that has an IPO.
you're right https://github.com/jbenet/hashpipe/issues/3
"You missed his point and he's gone."

He made extra posts after the comment you replied to. Furthermore, the exercise could've been used to further understanding. If the poster decides they have something to say in response, I'll take the time to read it.
When HN becomes an unending fount of positivity, we can address it then. Right now it's veering off the other side. Course correct first, finesse later.
I am working on rump kernels as unikernels in userspace (contact details in profile). We are looking at running Mirage on rump too. Running without a hypervisor is not much different, and there is a good snapshotting option.
I'm being paid more money at my current haskell job than any engineer I'm friends with who's under 30. And I know quite a few engineers.
You are certainly allowed to make copies of that disc.
HN moderation is total crap, too much control will kill the openness of this platform.
On the last image on the last page there's image of some copper devices with a description:

> These strange copper devices help take electric energy and convert it into kinetic energy of particles.

Pardon my ignorance, but isn't that just a fancy way of saying that it is a motor or some kind of pump?
Active infiltration of conspiracy theorist groups seems like exactly the kind of thing that would lend credence to conspiracy theories, not to mention directly proving the "the government is watching me and wants to brainwash me" ones entirely true.
Something is going on in Spain. You can track the Indignados movement through Occupy and now Podemos. We're seeing a parallel movement in technology there to what's going on in politics with the Podemos movement [0] - decentralised, grassroots, bottom-up. It's deeply exciting to track these digital and cultural trends together and imagine a new paradigm emerging in society.

We make an open source tool for distributed collaboration, and our userbase is now overwhelmingly in Spain. This emerged organically. It seems to be very fertile ground right now for distributed communication and democracy. I would advise anyone making software in this space to get a Spanish version out there and join the wave. I wonder about how it will spread to the rest of the Spanish-speaking world and join up with related tools and movements coming out of South America, like DemocracyOS.

[0] http://www.newyorker.com/tech/elements/spain-politics-via-re...
Apple Watch – Guided Tours
Author is a great writer. I wish I could read everything by Ruslan Spivak.
There is no perfect system for anything but you can probably take it to the point where an attacker won't profit from his efforts, and I see that as a reasonable goal post for a threat model here.

I implement a RSA key for each car, signed before it leaves the factory. Each key is housed in memory that is heavily epoxied and very difficult to remove (in a place that you would have to remove the majority of the engine to reach). The cars ignition system requests validation from the on board key on every start (in fact it gets the actual <start car> command from the chip itself). If the key is not present, the car does not start and instead tells you to return it to the dealership.

Now you say, I can remove the key and then reverse engineer it. What if I put n keys? How many do I realistically have to add to make it so time and labor intensive for you to remove my little inexpensive keys that you just give up? Probably not that many. Oh and did I mention that all of them are in an array? Better be sure you didn't miss one or it will zero itself out giving you no hope of recovery. (The warranty specifically mentions this as something that will void it)

After all that, if you still want to attempt to modify it. Fine. I'll add 1% to the purchase price of the car and reimburse anyone who bought lemons from your little (illegal) scheme.
I read this and immediately thought "I hope I never actually did this myself"

Looking through my comment history, I have a few times previously. We're all fallible, but at the same time this sort of negativity can come through without intending it. I'm really caring and optimistic, so to see some of my comments become unintentionally overly negative is kind of humbling.

Let's all remember how easy this is to do and keep an eye on ourselves. It matters.
Unwarranted positivity simply isn't as harmful as unwarranted negativity. There's basic psychology behind that, for instance, loss aversion.
She has a bias - her company is in the cricket flour market. They sound like they are doing the same thing as Hampton Creek, but with a different kind of protein.
Not only could it, downloading additional code is often the entire point.

Additionally, it's common for the installer to include things like version numbers, which means the hash will change with each release.

Meteor suffers from the "|sh" install pattern. Creating a Docker packaging of it that felt safe required a lot of extra work as a result:

1) Transforming the installer file into a canonical form free of version numbers. This verifies if the assumptions made about the installer are still valid. It also enables a "latest" tag which installs whatever MDG has currently published.

2) The installer is patched so it checksums the tarball it downloads.

(To be clear, I'm aware of areas both upstream and downstream in the process where unverified code could sneak in easily. But at least I can feel good about the part I'm responsible for.)
I'm not sure if it's really great or a really terrible, but I love the "/everything" idea.
Is there any documentation available for the Symbolics instruction set and/or machine architecture?
It seems like you would have to be incredibly uncharitable indeed to feel abused by anything in this discussion. Although I admit I am not particularly sensitive.
> The last three languages I've learned to fluency have all, in various ways, been very concerned about errors

Yeah, maybe I should revise my statement a bit: systems languages, overall, tend to expose more details. I meant this in a broader context than errors. As a simple example, manual memory management exposes more details than GC. There are many languages that care dearly about errors, as you've rightfully pointed out.

I broadly agree with the rest of your post. Error handling is hard and tedious, and programmers don't like doing it. I myself had an embarrassing bug in `rustbook` where I did `let _ =`. I only intended to start off that way! Programming is hard. But using Haskell, Rust, and other languages like this have certainly changed my code in other languages.
I think it will be a while before we come to the point where a guideline against "gratuitous positivity" is required. This forum is pretty far towards the other end of the spectrum right now.

I see where you're coming from though. The comments on HN, while often being negative, and almost entirely constructive. I try reading the comments at product hunt from time to time, and while all the "beautifully designed" and "i've been using this since [earlier than you] and i love it" comments are nice and surely make the developers feel good they inevitably add nothing of value to the submission, and as far as providing useful context to the submitted link they may as well not exist.
As Sam pointed out, gratuitous negativity has always been against the guidelines. Personal attacks are, too, of course.

The way this stuff really works out is in practice, so judge it based on what you see actually happening on HN. The intention here is pretty modest: to nudge the community slightly in the hope that the culture will grow a little more aligned with the guidelines. We're not interested in false positivity either.

That doesn't mean this isn't a big deal. Gratuitous negativity is a hard problem because it's mostly unintentional. That's why the most important part of this is asking the community to gently give commenters feedback when they see it. Any significant effect of this guideline change will not be in what moderators do, but in what the community does. Given the quantity of comments posted to HN, there aren't enough moderators to make that big a dent by direct intervention anyhow. We like it that way.
Literally thousands!

Seriously though, it's good news for the FOSS world, and for privacy- and individuality-minded folks. Baby steps.
This idea is often called the "Toupée fallacy", the idea being people often think all hair toupées look fake because they can always spot them, implicitly ignoring that they are not accounting for the fact that some could be good enough that they are unable to spot them.
Python is wonderful for that sort of thing.
School is (in general) a series of humiliating, pointless, time wasting tasks overseen by people who are usually less smart and motivated than you, and on occasion, are borderline psychopathic.

Then you enter the workforce.....
Since OCaml doesn't have first-class higher-kinded types in the way Scala and Haskell do, I didn't think it would be acceptable by ekmett standards.
It's not save a few characters. It's to allow for flexibility of encoding. "sha1" all but requires ASCII. Sometimes you're limited to hex, base64, etc.
Funny dog
I would like to give some context.

As a Spaniard I don't know what this article talks about. I didn't know about Quitter.es and I consider myself someone informed. Even more, the Twitter user that originated the "revolution" (@Barbijaputa... translated as @Beard-Bitch, no comment) is no longer using Quitter.es anymore from what I can read.

edit: fix typo.
I lived in Cuba. The two currencies, at a consumer level, was less significant than it was made out to be. It was very, very easy for anyone to trade CP for CUC at a rate of 24 to one.

The real issue, for consumers, is that they were given almost no money. People would earn something like 480 CP per month. If you were doing well, you had access to another source of income (foreign remittance, black/grey market, tourists, etc)

But for consumers who did have enough money, it was very easy to convert back and forth. Everyone had stocks of both CP and CUC on hand and used them as needed.

Of course, people would complain "CP is worth nothing, this is a problem!", but effectively the real issue is that salaries were nothing. People wouldn't have been happier receiving 15 CUC per month.

Where the real issues happened was at the level of state enterprises. I worked with an NGO working with agriculture. Capital investments were in CUC. Yet enterprises were forbidden from using CP earnings to finance CUC purchases. IIRC, enterprises had to balance their budgets in both currencies. This led to major inefficiencies.

Note: 15 CUC is a pittance. The way people survived was through the other benefits of the state. Ration cards, subsidies, etc. I don't really know how that worked. People certainly were very poor, but not as poor as "15 CUC" sounds.
Anybody knows what happened/is happening to tent.io? (I just google it and found a github repo updated as late as 15 days ago but no blog or timeline.)
I guess this boils down to whether you believe in determinism.

If you do, then the predictor will always be right, and you have essentially zero chance of fooling it by "changing your mind" later for the extra money.

If you don't believe in such a thing, then theoretically some nondeterministic volition of yours could allow you to change your mind in a way that the predictor could not have deterministically forseen.