skysight-inc/HackerNews huggingface dataset:
I'm really interested in those interfaces as well.

Some posit that one of the big advantages of the ways our brains evolved were in the increased size of our frontal lobe. They say this ultimately led to increased processing power by allowing our brains to have access to more data for making decisions or analyzing thoughts.

I feel like we've continued this growth in some ways. Low bandwidth access to information that doesn't reside in our brains, allowing us to further our capacity for thought and understanding.

Ray Kurzweil is an interesting fellow who's very much into this as well and sees our extension as an inevitability in the next few decades. Direct interfaces between the brain and the Internet (or some other network) to allow for even lower bandwidth access to information.

Since you said you were interested: there was an episode of Star Talk[1] a few months back where he dives into this stuff along with Dr. Tyson and a neuroscientist. Definitely recommend it as a fun primer for where we are, what we're doing, and where some people think we're going to go.

[1] - http://www.startalkradio.net/show/gazing-into-the-future-wit...
I am pretty sure Facebook also makes a friend suggestion to you when the other person searched for your name or looked at your profile at any time in the past. Maybe your neighbor searched for your name after you gave your phone number to them.
12 ‘build it faster’ tips for young entrepreneurs
As a bike commuter (and one who frequently rolls through stop signs and stop lights) I agree with you. Cycling is dangerous and allowing cyclists to legally roll through stop signs and stop lights isn't going to make cycling safer. I admit that I'm frequently a hypocrite, but as I get older I'm stopping more at signs and lights.
While this may not happen soonish in the public sphere due to citizens' concerns about privacy, etc. it's not out of the realm of possibility that similar efforts aren't or will not happen in the private sphere (i.e. employment centers, public and private).

And, to keep it out of the public sphere it has to be kept out of the private sphere lest people get used to the ideas and let it leak into the public sphere without protest.
Writing laws is much much much harder than writing code (corner cases, ambiguity, corruption, etc.).

Did you ever write a "big" program completely bug-free? I think we should first start by writing correct programs (e.g. invest more in Coq, linters, etc.) then "pass" our wisdom to law writers.
I realise this is sort of a dupe of https://news.ycombinator.com/item?id=12358751, but this has a different spin in that the opening paragraph says:

> WhatsApp says it will ... start letting some companies send messages to users.
`git reset` doesn't simply remove commits. Depending upon what you reset to it could result in `git log` showing additional commits, or an entirely different set of commits. Conversely, there's no invocation of `git rm` which creates files. In this case, the commands look different because they do totally different things.

You'd have a better argument with `git rm`, `git branch -D` and `git remote remove`. :)
I never was on whatsapp, but I can imagine signing up for a property pre-aquisition and then being powerless to stop more of my data being sucked up by Facebook. Is the only solution to never sign up for a service without a privacy policy that lets you remove your data from the company in the event of a sale? I don't think I have ever seen such a clause..

It's not that I don't want any of my data in Facebook, that's more trouble than it's worth. It's that I don't want every detail of my life collated in one place. regardless of what that place is.
I agree that pulling it off requires help. That said, I've seen it happen where folks turn a (should be) 1 day task into a 10 day project. That's 10x more profitable.

To be fair to the parent comment, I think he's getting at the super programmers that crack problems others can't. This capability provides competitive advantages. Maybe I'm talking about the other side of the table and did a poor job at that. Sorry!
I truly understand neither a) why this piece of puff is on HN nor b) why it is so highly voted.

As others have noted, I have no real evidence for my views. To me this is a total WTF? The author is ignorant of the subject and like so many experts outside their fields supposes that the field that has suddenly piqued their interest cannot, must not, be all that complex.

Factoring some numbers is very, very easy. Factoring other numbers is computationally hard. The consensus in the field is that there are no shortcuts. See, e.g., [1] and [2].

[1] http://www.cs.virginia.edu/~kam6zx/is-it-secure/the-hardness...

[2] https://en.wikipedia.org/wiki/Integer_factorization

Next, I shall write a brief article declaring that warp drive is likely far easier than everyone thinks. Please upvote it when I submit it to HN....
So I'm taking a look at this line:

if(!memo.TryGetValue(rdr.GetInt32("student_id"), var out complete)
memo.Add(new Student(rdr out complete).ID, complete);

I think I understand your point, but I found this code really hard to read. You don't use the first var out complete in the TryGetValue, right? And the Student c'tor returns itself as an out parameter?

If I understand you correctly, you like this because you don't have to declare a new student before you add it? I.e. the alternative would be

if(!memo.ContainsKey(rdr.GetInt32("student_id")))
var student = new Student(rdr);
memo.Add(student.ID, student);

I guess I would prefer this over the former. Also, why not enforce your student ID constraint in SQL instead of putting everything in a dictionary only to take it back out again? That would simplify your code to the point of just being a map from rdr->Student. Furthermore, if all I had was the Student c'tor, I would never guess that was the intent of the out parameter. This seems more anti-pattern than pattern.

I would rather put a simple IEnumerable in front of SqlDataReader so that you could just do:

foreach(var row in rdr) yield return new Student(row)

This doesn't obviate your use case, however, which is to inline a variable where it's needed in multiple places in that line because you can save yourself an explicit declaration. In this case, however, I think that the increased readability justifies the explicit declaration.
I love how tech types rage against the future every time voice recognition is discussed.

How many people know steno? No one you know, but hey that's how we chew the fat on the Internet. How many of the 7 billion people can type?

People already effectively use dictation. John Siracusa used Dragon to write his 20,000 word Mac OS reviews:

http://arstechnica.com/apple/2013/10/os-x-10-9/23/

David Pogue has been using dictation for years:

https://youtu.be/x0GXX-SJuQM

Software developers have even cobbled together voice programming solutions:

http://ergoemacs.org/emacs/using_voice_to_code.html

https://www.extrahop.com/community/blog/2014/programming-by-...

http://web.stanford.edu/~ouster/cgi-bin/wrist.php - Creator of Tcl/Tk has had RSI for a couple decades.

Also, let me throw out my standard response: "No one said..." that you have to use a keyboard or voice dictation, you have the option of using both solutions.
I won't comment on Rust's future, as I am quite biased ;)

There is already one Rust-oriented consultancy: http://integer32.com/ and a few people that have done contracting/freelancing a bit. Overall, we're still generally seeing people add Rust to their existing teams' repertoire rather than hiring Rust engineers specifically.

But it's all moving quite fast; https://www.rust-lang.org/en-US/friends.html started less than a year ago with five or six names, look at it now!
Youtube does this. It's useful even when it's not 100%.

https://support.google.com/youtube/answer/6373554?hl=en-GB

It also produces amusing gibberish if the accents are strong enough.
Saudis and Extremism: ‘Both the Arsonists and the Firefighters’
What types are and what they do is all well and good, but what I want to know is how they would help me write a larger application. Would it help it be more correct, be written faster, or be more flexible? Does it just help on a line-by-line programming basis, or can it have any ramifications on a higher level like product design?
According to Rob Pike:

"This was not an easy design decision. We spent over a year struggling to define the notation to specify an identifier's visibility. Once we settled on using the case of the name, we soon realized it had become one of the most important properties about the language. The name is, after all, what clients of the package use; putting the visibility in the name rather than its type means that it's always clear when looking at an identifier whether it is part of the public API. After using Go for a while, it feels burdensome when going back to other languages that require looking up the declaration to discover this information."

Source: https://talks.golang.org/2012/splash.article

Must be noted that any identifier that doesn't start with an uppercase letter is not exported. This makes possible to use an underscore to mark unexported identifier and still use uppercase letters (like _Name or _SOME_CONSTANT), which is a common practice in many programming languages (like Python). This is not idiomatic in Go, but it's possible.
5 SaaS Metrics That You May Be Measuring Incorrectly
I agree that if X avoids Y for some subtle edge-case or whatever, then there should be a comment explaining why.

However, in my example X is written first, but just so happens to have become redundant once Y gets written. We've just spotted this redundancy, and it's up to us to figure out whether X should be refactored to use Y or not.

If we look at an unaltered history, we would see that X was written first, so we can hypothesise that it's just a special case of Y which can be refactored away.

If we look at an altered history, the commits containing X may have been squashed/rebased/etc. into a coherent "story", which just-so-happens to appear on top of the story containing Y.

If there were a comment telling us that X was added due to some edge-case, etc. that makes Y unsuitable, we could leave it alone and get on with something else. Yet in this situation there is no such comment, but that doesn't imply that it's not there to handle some subtle edge-case; we'd need to do more investigation to convince ourselves that it is indeed redundant before we could refactor it in confidence, to counteract the contrary evidence which git is telling us.
Something I've wondered about is if it would help if I could talk and type at the same time and it could use that to correct errors by cross referencing the two data sources.
>WhatsApp has always said to take user privacy seriously.

and google has always said 'Don't be evil' lol
That's a really interesting article, thank you!

EDIT: I liked it so much that I posted it here:

https://news.ycombinator.com/item?id=12359522
Individually contact individuals who are potential users. Show them the product personally. Listen to their feedback.

As number of users approaches zero, a hockey stick growth graph and linear growth graph are indistinguishable due to noise. The differences show up over time and have more to do with month to month churn than week one growth.

Good luck.
We don't need to fully understand a processus in order to reproduce it. We can proceed by imitation, trial and error. As we mostly did for airplanes, for instance.

At some point we may create a machine exhibiting human-level intelligent behavior, and then the question of whether or not it has consciousness will not be answered but that will not matter much.

Kind of in 2001: "Well he acts as if he has genuine emotions. Of course he's programmed that way. That makes it easier for us to talk to him. But as to whether or not he has real feelings, it's something I don't think anyone can truthfully answer."
In the Attic of Early Islam
We have a problem here in the U.S. that almost all of our old drugs would never be approved these days because of interactions with other drugs and side effects.

That's a huge exaggeration. There are maybe a handful of drugs where the side effects/interactions are so bad that they wouldn't be approved by today's FDA.
Note that this is a nonprofit, not a company. There is no big exit for founders or profit motive at work here.
There was a great comment here discussing the Pathetic fallacy, and how we humans apply it to machine learning systems. (It's now deleted and I don't know why.) Specifically, we treat machine learning systems as anthropomorphic, and assume they will reproduce our biases.

https://en.wikipedia.org/wiki/Pathetic_fallacy

In reality, ML systems will generally correct human biases. And by bias, I really do mean bias in the statistical sense - systematically getting things wrong in a particular direction.

Now this article does a great job of explaining how ML systems might understand the meaning of words, and that meaning may contain bias. However, such a system is merely an input into a separate system which actually makes decisions based on those inputs. Extracting meaning from text makes no decisions of it's own. If that later system wants to make accurate decisions, then the best way to do that is to correct for the aforementioned bias, assuming that bias is really bias as opposed to just a correct but undesirable belief about the world [1].

I wrote a blog post a while back that goes into this idea with a bit more math, and which demonstrates some real world "learning" algorithms (mostly linear regression) actually correcting biases: https://www.chrisstucchio.com/blog/2016/alien_intelligences_...
What'll be really awesome is once it's possible to run SBCL on Mezzano (or would it be Mezzano in SBCL?), to take advantage of all the optimisations SBCL offers.
It's hard to understand what companies mean when they say profitable these days.. maybe they meant gross profit positive or profitable on unit economics?
>Nobody other than an object-oriented programmer would think a value is something that evolves over time.

I don't think you fully read qwertyuiop924's post to get to the Randall Munroe quote, which makes this comment priceless.
"If there are phenomenal marine biologist, who generally do not make 120k, they should be able to use the program."

Why should a employers be assisted by the government in their efforts to hire high talented people for low salaries? Even marine biologists?

Here's how I look at it - immigration to the US is limited, current levels are about 1.2 million a year. These immigrants are similar to US citizens in that they can choose and change their career paths without fear of deportation. If the phenomenal marine biologist you've described decides she'd rather be a programmer, or a dental hygienist, or drop out of the work force for a while to pursue a dream, or open a sandwich shop, she is free to do so. The employer, of course, is free to increase her salary and improve her working conditions to convince her to remain a marine biologist.

Or.. the employer could gain control over her right to reside in the US and gain an employee who faces deportation if she fails to remain a marine biologist in her employer's good graces. That'll keep her in the job at the salary and working conditions the employer has decided are fair.

Hey, if you ask the market and you don't like the answer, have the government ask again on your behalf, right?

Why only allow H1B's to switch jobs "within their industry"? Why allow employers to decide who gets to come to the US and who doesn't? Should someone who nods and agrees with an employer about test-driven development and agrees to reverse a binary tree at a whiteboard have a greater right to live and work in the US than someone who doesn't? I won't do this anymore, and the cynical part of me thinks that these coercive employer controlled visa programs are really meant to create a huge population of developers who can't stand up to their employers, not because they need a job, but because they don't want to be deported.

None of this works, in my opinion. Whatever our immigration system is, I don't think that employers controlling who gets to come here and the conditions under which they are allowed to remain works. I think it creates bad market distortions and is an affront to personal freedom.

As for the PhD's specifically, really, there is almost no justification for these low salaries, other than that people seem to be willing to accept them. If it's hard to convince young people to become marine biologists rather than dentists, because they don't like the idea of 7 year PhD programs with 50% attrition rates that result in low salaries and uncertain job security... well, sounds like a perfectly rational market response to me. If someone with the freedom to choose wants to do it, fine, but why would we want to empower employers to use the immigration system to coerce people into these jobs?
I think git branch only doesn't "branch" if you already have a differing idea of what a "branch" should be from another revision control system.

For example, I consider that CSV and Subversion don't have branches, but just "copies". To my mind, what git branch does is exactly what branching is.
That's usually the best way to organize BI teams. The problem with this approach is that embedded teams don't have strategic scope. For instance, they do not build or manage enterprise data warehouses. Therefore, embedded teams tend to have rather limited influence.
Given that "object-oriented programmer" probably constitutes most of the people here you ought to know your audience and explain what you mean to say.
That's a sad anecdote. It doesn't seem to address the argument or actual safety data presented in the article.
I disagree, the basics are confusing, because there is too much state. I think gitless (http://gitless.com/#vs) shows how a less confusing version looks.
Not gp, but one difference is you can have a notation that can't capture some state: think of the date class in JavaScript. JSON can't serialize this without resorting to string encoding, whereas something like a protobuf or pickle could.
(0) I didn't say all types. I said datatypes.

(1) Induction on datatypes is a powerful tool for reasoning about programs in strict languages, and it's only possible when you regard datatypes as collections of values.
I think that line is pretty smart actually. It's funny, and more importantly, it echoes a worldview that many artists and creatives share -- business is slimy, middlemen are bloodsuckers, and "I just want to sell my thing and make a living doing what I love."

Not saying they all feel this way, but it looks to me like Blackbox knows their audience.
Using attrs for everything in Python
I wouldn't say completely split. I think most of HN considers the current state of scraping law to be complete and utter hogwash. Many of the expected consumer rights don't apply online because of the way the law considers normal communication with a server on the internet an excursion onto private property.

We need a modern law addressing these issues instead of the pre-Internet CFAA. Malicious actors should still be punished, and it may be reasonable to still allow a provision for the civil liability (not criminal) of large-scale accidental DoS from poorly-implemented scrapers, but users should be free to choose their own browsing devices -- even if those browsing devices are highly optimized to extract only the specific pieces of data that the user cares about.

This law should also clarify that normal communication over HTTP cannot be punished unless the plaintiff can demonstrate real and serious interruption to their services, that local RAM copies that are never externally transmitted cannot be considered infringing in themselves, that hosting a site on the internet grants an implied copyright license to read and access its content with any HTTP-capable client, and that browsewrap/clickwrap contracts are unenforceable unless the user undertakes a significant relationship with the company, among other things.
Rebasing also rewrites all your commits to have a different parent commit.
Every abstraction layer build over others. It doesn't matter how decentralized your infrastructure is nor how strong is the encryption it uses, if it's built over an OS with poorly implemented and insecure IPC the entire stack will be vulnerable.

Also, having a "cloud" of thousands of physical or virtual servers doesn't mean you stop caring if your servers have or not poor performance due to inefficient IPC.
I much prefer your second example. In fact, surely tuples would help in this situation?

eg. in C++: tuple<int,int> x = GetCoordinates();
or auto x = GetCoordinates()

Much easier to see the output. I maintain enough old old C++ code and don't like seeing GetCoordinates(int x, int y) or x in COM-land any more.
I was interested in this about a year ago, but never pursued it. The previous link and these two I had bookmarked:

This one includes a prototype:
http://blog.self.li/post/14864315302/qr-login-howto

This one has a high-level overview from a tech perspective:
https://www.grc.com/sqrl/sqrl.htm
While the first part of this comment alone is compelling, what excites me is that the second half was already in our hands before slipping away.

The idea of IR vision firefighting, being able to see the elements in your water, etc, these are all basically ubiquitous computing, and we're kind of getting there with IoT putting sensors in everything. What is missing is a way of intuitively accessing and building it into our thought processes in a manner less clunky than fetching a phone, unlocking, launching an app.

What we need is Google Glass, or equivalent. The real place where Google Glass fell down was not in it's handling of privacy concerns, strictly, it was there attempt to try and make it exclusive and elite, like they did with the Google Mail launch, where you needed invites.

I can't help but feel that if Google had made the "explorer" program humbler and quieter, followed by an accessible general release, we'd have access to so much more today.
Facebook with photos would have been unusably slow in the 1990s, though nobody would have had digital cameras anyway. A decade later, it would have been too much of a pain for those who did have them to post many pictures to their streams, since this was before smartphones made photo uploading easy. And a Facebook without photos would never reached the billion-user mark.
Whenever someone yells at me for doing this i just tell them, "it's pareto efficient" Of course, i slow down and make sure there are no cars or people in the way before crossing.
"Beats humans at typing" is a super misleading title. I'm a hobbyist stenographer and I'm always interested in advances in voice recognition. But this is just a little test without much merit, in my opinion.

A couple points:

- "Typing" isn't what I'd call whatever people do while tapping away at a touchscreen keyboard. There are different actions, including swiping and tapping, but without hardware, "typing" is misleading.

- Human typing speed is variable. Many people type below 50 words per minute, but others break the 100 words per minute barrier (or more in the case of prodigies like Sean Wrona).

- To ever use this for captioning or court reporting, we'd have to overcome stenography, which is exceeding 200 words per minute. We're on a totally different level now.

If anyone wants to learn about stenography or try it out on their own keyboard for fun, check out our open source efforts at http://opensteno.org
"Typically, desktop applications for each operating system are written in each's native language. That can mean having three teams writing three versions of your app. Electron enables you to write your app once and with web languages."

I stopped reading there. If you have total ignorance of how native applications work, maybe fill that hole before trying to evangelize that everything should be written in JS...
Doctors didn’t realize his passion was killing him
How does that work on your mobile device?
Are you trying to imply that's a ridiculous position? I don't see it as one.