skysight-inc/HackerNews huggingface dataset:
My dotfiles[1,2] are full of various functions to do stuff. Half of them I jacked from other people[3] when I was using Bash and ported to ZSH when I discovered Oh-my-zsh. However, a few are my own. The ones that I did write are often one-liners that take an argument and pass it to a series of commands that I'd rather not type. For example history | grep -i command, ls -lah | grep dir, or my favorite, cd dir; ls. If I have to do any logic, aside from determining what OS I'm on, I look to python.

[1] https://github.com/yramagicman/dotfiles
[2] https://github.com/yramagicman/zsh-aliases
[3] https://github.com/mathiasbynens/dotfiles/blob/master/.funct...
There's a difference between being a bad programmer and bad programming.
The Shakespeare sonnet wasn't written by a computer. IIRC Nate just had a text editor with a type-ahead suggest box that was weighted by an n-gram lookup into your corpus of choice. It was up to the human to choose which word to use.
We have socialised the risk of innovation but privatised the rewards
cool! I did something similar with my side project. Users could encrypt/decrypt text in an editor, and would have to provide a password to decrypt it on the display page.

Yes, its not 100% secure - you have to trust the JS, which with enough targeted effort could be swapped out for something malicious. But this does mean your data at rest is encrypted, which can be very beneficial.

A bullet proof vest doesn't stop all bullets, nor does it protect everywhere. But people still use them all the time in addition to other solutions.

Still, with all that if you end up with a keylogger on your machine it means nothing. Air gaping helps a lot but really nothing is totally foolproof - one can only make it exponentially more difficult to bypass.
Why did I read the comments? Why did I read the comments.
It would be obviously trivial to do so. That's part of the point.

That's how primitive the situation is presently.

It will take six to ten years before these sorts of mass common mistakes or weaknesses are widely wiped out of AI systems.
Maven Version Manager
Another railway oriented article I enjoyed when it was on HN: http://fsharpforfunandprofit.com/posts/recipe-part2/
https://news.ycombinator.com/item?id=9163309

https://news.ycombinator.com/item?id=9165261
A bad programmer is one that has worked for many years in the field and fails to help those less experienced.
> don't bring in alumni donations (nobody knows what does that)

Undergrads in call centers
> [...] creating a very ill outcome (writing about group rape is no joke [...]

Everybody knows it's not a joke — everybody but kids — and everybody knows that.

> This is not correct.

It's the last item in the FAQ[1]:

> The federal Stored Communications Act, 18 U.S.C. § 2701 et seq.,
> restricts Yik Yak’s disclosure of user account information without
> the lawful consent of the account holder or unless authorized by a
> properly issued warrant, court order, or subpoena.

Effective 1986[2].

We're not talking about better education, right? Not building/using apps like Yik Yak?

[1]: http://support.yikyakapp.com/
[2]: https://en.wikipedia.org/wiki/Stored_Communications_Act
I'll take a bottle of Soylent from a vending machine any day over McDonalds, whether from a vending machine or a traditional retail outlet.
At least for someone technical, wouldn't it make sense when buying a laptop to also buy a full copy of the OS (Windows) and do a full reformat/install, as SOP?

When I bought the HP Pavilion sitting in front of me my first act was to wipe it and install Linux. I know, huge cost difference between that and installing a paid-for Windows.

I think vendors can, or maybe are required, to spot you the small cost of the installed OS if you aren't going to use it.
My take on the opposite - what makes a good programmer: http://henrikwarne.com/2014/06/30/what-makes-a-good-programm...
> "Yo-Yo code" that converts a value into a different representation, then converts it back to where it started (eg: converting a decimal into a string and then back into a decimal, or padding a string and then trimming it)

I would add: "you designed a language that does these conversions implicitly as part of its evaluation semantics, and thought it was a marvellous idea."
Government funding, collaboration with outside companies and IP. Looks like John Tromp was affiliated with CWI (http://en.wikipedia.org/wiki/Centrum_Wiskunde_%26_Informatic...), which is funded by the Netherlands gov. Take a look at the "spin off companies" section in the wikipedia article. Often government funded research organisations turn some of their research into products to help fund themselves.
I'm sorry, could you define what you mean by "grey area sex"?
Anyone writing such an article surely knows the difference (or at least should know the difference). It's even worse if the title was written to take advantage of the fact that the average reader thinks everyone teaching college classes is a "professor" with all that the term implies.

I was only responding to the question of how someone could be a professor at four universities. The questioner is correct and the title is not accurate.
I honestly wouldn't much care. Prefer FreeBSD for servers anyway.
Carin Meier was trying to fly drones with it:

http://thinkrelevance.com/blog/2014/02/11/carin-meier-cognic...
Ask HN: Are there any good AI / data mining / etc. online communities?
I've been a part of a few groups on LinkedIn and see a lot of good articles posted on HN, but I have yet to find much of a centralized community where people share and collaborate on ideas. Maybe I'm not looking hard enough. Any suggestions would be appreciated!
And code complete, clean code...
So, given all the positions, can you tell which one(s) are possible results of another position after another turn?

// did not know you couldn't do this for chess (paper even pointed to why)
There is just one 3MB file and we divide that file into 1000 parts. I agree there will be collision per hash (for each part). But I'm skeptical that all 1000 hashes will produce such bits so that the final file will cause collision on the hash of the original file (remember we do have hash of the original file). If the final hash does not match the hash of original file we would have to recompute all the hashes again by randomly generating the bits for each 1000 file-parts.
Do you mean to say that the collisions are guaranteed and that the collision inside any file-part will also cause a collision in the original file hash when the parts are combined ?
"is there a movement towards broadening that definition to encompass any kind of sexual assault?"

Not that I'm aware of (and I'm relatively familiar with the feminist activist community and current feminist writing). I read it to mean she was raped by a colleague, not that she was sexually assaulted by a colleague, though either would be inexcusable and should be subject to the person being fired. But, again, in a workplace that is hostile to women, dismissive of women's words, and in which the person doing the raping or sexual assaulting or harassing is in a position of power over the women being raped, assaulted, or harassed, it can go on for a long time before someone is willing to throw away their career to make a public accusation, which is exactly what this article is about and why I think it's valuable.

There are, clearly, a lot of men in our industry who have literally no idea that this stuff is happening. Zero awareness to the point their instinctive response is to deny that it is true, or to attempt to redefine the words to mean something more palatable.

So, let me be clear: You've read an article about someone's experience in the workplace as a woman, and you're first response is effectively to say, "This cannot be true."

The author of this article is not the only woman to discuss these issues or to experience this kind of behavior in the workplace, particularly in tech though it is true in many industries. As long as the response of men in this industry is to read these experiences and immediately deny the words and counter-accuse the woman of lying, exaggerating, or "being dramatic", the problems will never go away.
I can't even find where the beverages are on a modern McD's menu these days.

I find most fast-food menus terrible, often for this reason. Mostly I just keep in mind what I've ordered in the past, plus whatever I might have heard or seen advertised in the last two days, and choose one or two items from that set.

I think the reason is that most fast food menus have little integrity. They try to be all things. In-n-Out is an exception to this, as is Chipotle. If I'm here, it must be because I want one of these honking giant burritos. I don't need to look at a menu to decide between chicken and carnitas in that burrito. If I wanted a coffee with lots of sugar and dairy added, I would go to a place that specialized in such concoctions, thanks!

A fast food restaurant with integrity is legible to the diner; there won't be any surprises after one has eaten there a couple of times. The API is simple. McDonald's OTOH has a complicated API.
You've presented a false dichotomy. You've also not defined what constitutes as "objectively better" when judging code. My original comment was based entirely on readability and maintainability as a third party.

I'm sure the author of the code has no issue knowing exactly what is happening and how to fix issues. Imagine someone trying to audit the code. It would take a ton of wasted time just to get up to speed which could be alleviated by, you know, documenting.
I have to disagree with the definition: "A recommendation engine is a feature (not a product) that filters items by predicting how a user might rate them."

The feature bit is correct, but the rating bit might not be. People very often give high ratings to things they are not interested in. People may highly rate jewelry that they cannot afford, or give a five star rating to a movies considered classics, that they don't actually want to view.

What you are trying to optimize is ultimately purchasing, continued subscription, ad views, or some other profit metric. That can be hard to directly measure, so something like ratings can be a stand in, but you may accidentally optimize for something deeply undesirable like recommending expensive jewelry to everyone that they will never buy.
Ammonite http://lihaoyi.github.io/Ammonite/#Ammonite-Ops provides a similar thing for Scala
I’m a 12-year-old girl. Why don’t the characters in my apps look like me?
And if you want to help out to archive the data that is needed for that kind of work, ArchiveTeam needs your help: http://archiveteam.org/index.php?title=Main_Page :)
She was raped several times over several months? What on earth?

Why isn't this being reported to the police? There is a whole department of law enforcement (funded by our money) that deals precisely with issues of violence. Just use it instead of blogging about your troubles.
Is it possible to configure YikYak with burner numbers?
A lot of people have said it. They develop a mental model that is a rough approximation of its semantics, see that their mental model is simple and conclude that the semantics itself must also be simple. Then other people write articles like these to remind the first group that their "simple" mental model is not the actual semantics, just an approximation.
>"Bulldozer code" that gives the appearance of refactoring by breaking out chunks into subroutines, but that are impossible to reuse in another context (very high cohesion)

>3. Difficulty writing functions with low cohesion

Is there some definition of cohesion I don't know, or is the author confusing cohesion and coupling?
Finance, compliance, HR, marketing, advertising, business development... there are lots of jobs that require some degree, but don't really care what it was in.
Vending machine with freezer, automated deep fryer, flattop, etc. Basically a robotic McD's in a box.

I would love to work on that problem. Maybe I should apply to YC with it...
"We have the CLA to ensure this we're on the right side of copyright law."

The CLA is only a license, another license than MIT, but doing _almost_ the same things. IIRC, the difference is that it gives you okay to make proprietary distributions without respecting MIT conditions.

You do not need it to be "on the right side of copyright law".

Using MIT-licensed code is on the right side of copyright law just as well. (unless what you want is to disobey poor old MIT)
I agree, it's very seldom a method should be longer than 20 lines, and optimally around 6 lines. Any method over 50+ lines should require a long hard look if there isn't a way to simplify it. Inlining everything only gets messy.

I would say that if you have a method composed of many methods you might want to encompass that into a separate class. That way you have everything needed to look at that method nicely in one place rather than interwoven with another class.

Depends on the scope of the method though, you want neither a blob nor a poltergeist.
Hard to define, but easy to give examples for. Here's one:

Man drunk. Woman drunk. Man woman have sex.

Technically, both of them raped each other. But this is pretty far from what you'd call rape, even if it is legally considered that. This is "grey area sex".
There are a few parts of it.

Computer science is a dynamic field so stay away from the 40-year old textbooks of Knuth.

Most of the algorithms you will find in older books (binary search, sorting over total orderings, random number generators) are already built into most programming languages today. If you are programming in something like Java or Ruby your first instinct should be to use the lists, hashtables and similar structures that come with your language.

As for actual algorithms I think the theory of parsers and finite state machines is pretty useful because you can certainly tackle tasks that would otherwise be difficult.

One aspect of the science of data structures and algorithms is understanding how algorithms scale, and the classic searching and sorting algorithms are a playground for that.

Another thing is to look at modern families of algorithms that do things that are counter-intuitive, here is one book i really like

http://ebooks.cambridge.org/ebook.jsf?bid=CBO9780511574931

a lot of the stuff in there sounds impossible at first but it is very possible.

I also have a soft spot for algorithms that involve partial orderings since I've found my conventional intuition is not always right here, this includes transitive closures, dependency resolution, and the binary space partitioning used in computer graphics.
Unfortunately, a lot of bugs can be caused when a function that was only ever intended to be used from a single place gets called from another place, when it seems to do the needed work.
Former reporter hear who has been in professional talks with a natural-language generation firm, dabbles in NLP, and has some insight into this process.

A lot of what machines churn out is based on templates that humans have created. Many of the things we read that are supposedly written by machines required major human intervention, and the application of strict constraints on the machine so that it wouldn't screw up.

Number stories about baseball and the stock market are good for machines to write about. Most qualitative things aren't, for the moment. Even Google's results generating captions from images last November actually included a lot of variance. The algorithm was good at recognizing some things and not others.

To the commenters on this thread who criticize news organizations, I would simply ask: Do you consume your news for free? Do you believe that synthesizing complex events using multiple sources of data happens without cost? Do you believe that news organizations pay reporters much to write stories? Please reflect on your role in the news ecosystem.

Most readers today are free riders, and unwilling to subsidize quality journalism. That's one reason why it's dying.
On the EME front we are agreed.
No, that's a sign of a programmer that kept up with the times and is not afraid to release control.
Most fields have reached the right conclusion. Colleges do not adequately prepare candidates for work. If tech employers never train or improve their employees and the employees don't take responsibility outside of work, then it's possible for starting programmers to be passed from job to job without ever learning core concepts.

There needs to be an understanding that a Computer Science degree often does not teach job skills and that addressing the problem early with extra reading or training is critical. There is a tendency for people to start CS majors who have no abilities or interest in the subject other than liking the money involved.

When I was in college, I took CS electives as an English major undergrad and routinely had CS graduate students attempting to cheat off of me during exams. Anecdotally, a lot of tech leads seem dumbfounded by the results of programming candidates with CS versus unrelated degrees.
Its more like Saudi Arabia is not reducing production and certain countries such as Russia and Venezuela cannot survive at that price. I think they're trying to force closure of US fracking sites, but they can go down lower than a lot of countries.
Show HN: An app to crowdsource your best profile photo
A guide to Philip Glass's music (2012)
Aside from logging (and games don't typically do a lot of logging), everything you mention is covered, and argued against, in the article.
It's an interesting question that has already been playing out for a while in visual arts. Artists who create images by writing computer programs (computational/generative arts and design) are often looked down upon in comparison with traditional painters for example. Photographers were also accused of not being artists for many years until general public warmed up to photography and 'important' museums accepted them. Because... it was a machine that took pictures.
A16Z Go to Market Best Practices for Startups
a3voices, you need to write a book on your technique for writing code correctly the first time. People have been trying to do that for as long as there have been programmers. You will make billions of dollars, guaranteed, assuming that you actually have a way to do that. Quit your job, drop whatever you're doing, and start writing that book right now, it will change the world. While you're at it, would you mind taking a look at the halting problem too? Thanks!
The comments on that site are sickening. Yes, I do not agree with Eich's views. Mozilla owned up to it. Someone should tell them to disable JS everywhere because of Eich.

Plus, Firefox is a community project with more momentum than almost any FOSS project. It won't die.

edit: read that in reverse
At Startups, People Are ‘New Infrastructure’
From Wikipedia: "In computer programming, cohesion refers to the degree to which the elements of a module belong together.[1]", where [1] is Yourdon & Constantine 1979.

It appears that author uses cohesion and coupling - and rightly so, by the above definition - as synonyms.
Thanks for this link. A lot of these things were things I've grown to believe from working in game development (and listening to programmers better than myself), but I never had seen it written out as competently and thoroughly as this.
The new Keurig machines enforce a weak form of K-cups DRM.
"comprehend the idea that a C pointer needs to point to valid memory"

I ran into a C programmer that did not get the relation between pointers and parameter passing. It was some scary awful code. Damn prep for code review almost got me in a car wreck.
This is pretty weak.

The reason solar-power generation will increasingly dominate: it’s a technology, not a fuel. As such, efficiency increases and prices fall as time goes on.

That's true of shale oil extraction as well.

The corresponding chart conflates all natural gas extraction under the "Henry Hub" label, and all crude extraction under "Brent". Meanwhile, it tries to show an exponential price decline in solar by starting the time series for solar energy costs in 2007. What are we meant to be comparing here?
I asked a honest question and did not accuse the author of lying. I really can't get my mind around such violence being common in the workplace without the attackers suffering any consequences. I'm astonished.
Haha, thanks for the schooling. I looked it up and it turns out I studied them in scheme back in the day. I just didn't know the term, so I'd (probably) come off as incompetent in an interview where asked.

> This is exactly what I'm talking about: A good programmer who can't understand and reason about a linked list, that's very unusual.

Well put then, I say rather chagrined ;-)

My intended point though was that sometimes you can't tell how good of an engineer someone is by asking them about things you know. Better to ask them to talk about what they know. But that's not very controversial I'd hope!
I think that is a possible interpretation of this sentence, but I'm not sure that I agree with it in the larger context of the piece.

In the preceding paragraph, he states that applicants are expected to know "the latest RB tree research." In the following paragraph, he states that applicants are asked "technical minutiae." These examples to me don't seem to imply he thinks that "trivial" questions are being asked in interviews. The entire piece seems to argue that questions which are too difficult are being asked in order to unfairly weed out engineers who cannot answer them, which seems to me to be the opposite of trivial.

To contrast, he explicitly used physicians as an example where occasional questions (which are 'trivial') have to be answered early in training in order to be licensed, a statement which I submit is false. There doesn't seem to be a corollary either stated or implied that physicians are otherwise asked nontrivial questions when they are not asked trivial questions.
There are many many reasons why women don't report rapes to the police.
This is a great point. Again, we're getting a weird look at things because we're posting on Hacker News, not Defense Contractor News or Accountant News. Software companies are definitely a significant group, but there are lots of companies whose programming division is just a small part of what they do. They're big enough that they need their own programmers and can't outsource it to someone, but they have all sorts of other stuff they're working on.

If you can't code, you're probably still useful for other stuff. Businesses love to take people they already know and find better roles for them. It's way better than firing badly utilized talent and having to interview for some other candidate with that skillset.

I wouldn't go so far as to say, "There are no incompetent employees," as there are definitely worthless people in the workforce. But it's not as clear as a lot of people might think.
> There is a whole department of law enforcement (funded by our money) that deals precisely with issues of violence

Or, you know, can't even be bothered processing DNA samples from rape kits.
The Cooperative
McDonald's has a technology group that already works on problems like these. Look for patents under McD's holding company "Restraurant Technology, Inc."

https://www.google.com/?tbm=pts&gws_rd=ssl#tbm=pts&q=inassig...

(My favorite? US Design Patent #D277,235: The McRib.)

McDonald's likes to come up with these solutions and then license the patents to the OEMs that actually produce the equipment. I've worked for some of these OEMs in the past and McDs drives new ideas downward just as often as the OEMs drive new things upward. But it doesn't mean those ideas are always economically or even technically feasible when deployed to 30,000 stores...some in very remote locations.

If McDonald's had a way to start moving more into fully robotic prep-and-assembly (more than they already are), then you would see it in the stores. It's still too expensive and too fragile. Humans are more versatile and cheaper.