skysight-inc/HackerNews huggingface dataset:
Amazing example. Blindly doing anything because of Valgrind is bad, but I think a better rule might be "Don't comment out lines you don't understand in a standard cryptography package and then distribute it to users without warning". I don't think a mere "mention of the need for caution" could have saved anyone here. Handcuffs and a straightjacket on the Debian developer might have been required in this case.

This link covers it well:

What can we learn from this? Firstly, vendors should not be
fixing problems (or, really, anything) in open source
packages by patching them locally – they should contribute
their patches upstream to the package maintainers. Had
Debian done this in this case, we (the OpenSSL Team) would
have fallen about laughing, and once we had got our breath
back, told them what a terrible idea this was. But no, it
seems that every vendor wants to “add value” by getting in
between the user of the software and its author.

Secondly, if you are going to fix bugs, then you should
install this maxim of mine firmly in your head: never fix a
bug you don’t understand. I’m not sure I’ve ever put that
in writing before, but anyone who’s worked with me will
have heard me say it multiple times.

http://www.links.org/?p=327
I think it's a great point in this context.

Freaking out on beginners because they're using the "wrong" language is often nominally based upon the notion that what tools you use matter a lot to the results you get. But there are a zillion examples of successful products made with terrible tools. And plenty of examples of very well-engineered failures.
Why is that a shame? Instead of including a tool like this on every single program invocation (which is essentially what happens if the language forced array bounds checking and other things) you only do it when you need to.

It's a perfect split - do this when developing the program, and not when running the program.

When you are doing the edit/compile/run cycle of developing you should always run via valgrind. It has options to make it silent except if there are errors so it's not annoying.

If you are running your program normally and only using valgrind sometimes for an extra check you are doing it wrong.

i.e.

make program && valgrind -q ./program
Why Do People Do Good Things?
I made a blackjack program on my TI-85 (with real arrays of suits!) that took 5 minutes to compile...
Probably TI-89 or TI-83+ graphing calculator BASIC, given his age.
If you believe the end goal is being a billionaire CEO, sure.

If you, however, believe the end goal is being a well-rounded programmer, it's irrelevant.

In the context of "I'm learning to program," I think one should look more to objective B than objective A.
The behavior involved here was a bizarre edge case: OpenSSL was intentionally using uninitialized data as a (very low quality) source of entropy.
Thanks; changed.

Interestingly, the previous post was 7 years ago: https://news.ycombinator.com/item?id=159353. I wonder if that's a record.
I'm from the Midwest myself (sort of, Joplin, MO is at the edge of the West and is culturally Southern). Never worked here, though, but I don't get the impression insane hours are acceptable here. Have worked in the Boston area, roughly in the '80s, and D.C. area, roughly in the '90s. No insane hours either place, aside from some occasional, short term, customer driven projects, which are a very different thing.

As for your latter point ... don't know. When I was "junior" the talent shortage was dire. When I was "senior", I wouldn't put up with such things, but even in cases where I got recruited without having much of an idea of the workplace culture, I don't ever remember a "you should be thankful you are allowed to work here" attitude. Might have been luck of the draw, although in plenty of those places a failure to have hired someone like me at the time would have resulted in the company dying, so....

ADDED: D.C. might be a special case: The culture is overwhelmingly influenced by government contracting, and the government is loathe to pay overtime. And contractors tend to get paid by the billed hour, so unpaid overtime costs them money. And at least compared to Boston a decade earlier, the time you spent in the office was a greater factor in judging your performance.
So why does GitHub not reply with comments about why this PR is not a good fit for this project? Or if it is too tedious to reply to every PR, put up a general guideline on "what we don't want in pull requests".

I mean, one can defend his/her decision or adopt changes if the PR is not exactly what GitHub wants. But being ignored? There is no solution.
You can, just write about it in README to not give false hopes.
I wonder what it would and could have been used for. Seems like it would have been too large and expensive to be cost effective for most things, wouldn't it?
"C" is a thin layer over assembler language.

BASIC (if remember correctly, has no pointers) so it is far from assembly. BASIC seems close to Python in this regard.
Is _is_ a serious question, because everyone's talking about "drones" as though they're _all_ 1kg+ "flying lawnmowers".

I've hit myself (both intentionally and unintentionally by being reckless) with both my ~320g and my ~380g quadcopters. I know for sure that they are no more a risk of "seriously hurting someone" than a freak Frisbee or bicycle or rollerskate accident (those last two of which I've got stories about bystanders being hospitalised by in the last ~12 months).

As hinted, I know I set that question up in an intentionally argumentative way - but that's in response to very few people acknowledging the difference between a ~30g Hubsan X4, a 380g Parrot AR Drone, and a 3kg DJI Phantom 2. Two of thosw "classes of quadcopters" weigh less than a football.
> I was angry at having such a small error cause me so much grief. After having that experience, any reasonable person would say, "This is crazy. I'm going to do something else with my life." Many of my classmates did say that.

But when does this grief stop?

A few months back I had the task of implementing the receiving end of what was basically a single-sign-on scheme. I had to use SAML. If you don't know that that is, consider yourself lucky -- or, just google "I hate SAML." That was one of the early hits I found when I first began researching the subject.

In the end, the implementation wasn't all that difficult. But the documentation was another story. The overview documents were buzzword bingo; the spec was an exercise in tedium; the libraries were poorly documented; the mailing lists were horrible. The complaining of people on the Internet about all this was demoralizing. When I finally figured it out and got it working, I felt like the payoff was poor compensation. It was just too much frustration for what I accomplished.

Programming has its share of this kind of frustration. (So does systems administration.) Just taking your average manpage as an example, we work in an industry where people have no capacity to explain anything to someone who doesn't already understand. A programmer needs inquisitiveness, yes; but that inquisitiveness needs to be steeled by an unreasonable amount of grit.

If programming were full of nothing but the fun of for-loops, it would be for everyone. As it is though, I perfectly understand why many otherwise smart and capable people choose to do something else.

I love Python; but maybe using it as an introductory language -- in college, no less -- is a little bit like luring children with candy.
I've seen a weird hack where an export to excel option was provided, but what was actually exported was an html file of some sort with a .xls extension that happened to open fine in Excel. I think it even had different tabs.

If you just create a text file and put an old fashioned html table in it and rename it to .xls Excel will complain a little, and then open it, and even respect font tags like <b> and <i>
I'm thinking of taking one of those upstate trains for a short holiday next year, simply to watch the countryside roll by.
Reminds me of a quote from 'Freakonomics' [1]: "After a New York livery-cab driver named Michael Goldberg was shot in early 2004, it was reported that Mr. Goldberg was in fact an Indian-born Sikh who thought it advantageous to take a Jewish name upon immigrating to New York. Goldberg's decision might have puzzled some people in show business circles, where it is a time-honored tradition to change Jewish names."

[1] http://www.amazon.com/Freakonomics-Economist-Explores-Hidden...
"needs to hire really fast".

When I was but a wee pollywog, it was pointed out to me that most open positions are never advertised in any way. Instead, when a position opens up, the hiring manager looks at the pile of resumes that are already on file.

For that specific reason, I applied to companies based on whether I'd like to work there, rather than whether they had any openings. One such company interviewed me immediately, but waited two years to actually hire me. That job actually worked out really well.

I don't actually know but have reason to believe that that's not commonly the case anymore. That is, my impression is that companies don't solicit resumes unless they have a specific opening.

From time to time I find a "Jobs" website that specifically says "We are not accepting applications at this time" or "We have no open positions".

By contrast, some others will say "We are always looking for great people, please send us your resume".

One might at first think that it's not a big deal for a position to be unfilled for a period of time. But consider that a company typically expects an employee to be worth twice their pay.

That is, if a software engineer is paid $100,000.00 per year, then to be considered truly qualified for their job, they must write $200,000.00 worth of software during that same year.

That's not $100,000.00 of pure profit. Actually that's the breakeven point - that is, writing $200,000.01 worth of code in a year would yield one cent of profit!

There are considerations of office space leasing, all manner of other costs like the equipment and software the employee requires, telephone, internet, electricity.

That "twice your salary" figure isn't specific to coders, my understanding is that that's regarded as the rule of thumb for the value of every employee, in every line of work.
In US radio, unlike radio elsewhere in the world, performers don't receive royalties -- only composers do. This was set early on in the history of radio and became very hard to change.

I'm glad that we seem to have made it through an analogous phase in the history of internet distribution without artists being frozen out.
Despite the downvotes I might get, there is nothing new to see here. This is the 1 millionth article of the same ilk. We need some fresh points of view.

What I've been surprised by on previous HN commenting threads on this topic is how harsh people tend to be on the content creators' side of the balance sheet. People really despise pay walls and other existing attempts for creators to make money (you want all the songs in the world for $5 and not $10, REALLY??). As a creator myself, a scientist who publishes in academic journals, I desperately want to find new ways to help me and my colleagues monetize our works (Edit: by "monetize" I mean fundraise, NOT profit).

I'm pretty sure direct consumer-to-creator payments are part of the solution, but that solution isn't exactly lighting the world on fire like Napster did.
People who know C are better programmers. I would say that also people who know assembly language are better programmers. People who know a functional language are better programmers. People who know/have used a variety of languages are better programmers. Monoculture of any language or level of abstraction will limit programmer achievement.
I use Google Refine (OpenRefine you name it) for exploring data, it's more powerful than excel for visualizations, have a lot of ways to order it. It's amazing.
And you can even do graphics in it too, which may be much more appealing to some one who is trying to learn programming. To me, moving a circle across the screen is much more rewarding than putting a HTML form with 20 input fields on it...
Non paywall link: http://imarketreports.com/youtube-offering-its-stars-bonuses...
Stuff like adding a single function to a library doesn't warrant the PEP process.

Fixing this is moving forward:

http://bugs.python.org/issue15873

(Perhaps it's fair to say, slowly moving forward)
Interesting. I wonder how many people in India change their name in order to appear as a different caste.
Meld is the best diff/merge tool I have tried. But it relies on GTK, which relies on X, which looks terrible on Mac with retina screen.
I was about to quote this quote, but I have a different opinion here.

> I would actually go a step further with the thread title: Please don't try to teach if you can't.

The line between teaching a truth and teaching a self-enforcing belief pattern has not been drawn, and I don't know if it ever will be. You can be an amazing teacher and not even know it (by making horrible mistakes that other people learn from by observation, comparison, abstraction, and analysis). Or you can be a really amazing teacher and never admit it.

> My typical advice is to choose something that is presented with good learning tools, and maybe one that has tutorials related to a subject matter that they're interested in.

That's good advice.
And without a source of income, there will be zero "creativity".
Your earlier post never went up because it triggered a spam filter. Sorry—the spam filters are more aggressive on new accounts. We marked your account legit so it won't happen again.

You should try reposting this. As the FAQ explains, a small number of reposts is ok (say 3) when a story hasn't had significant attention yet.
Seems like you're simply going to have to pay for bandwidth so your users can call people outside the local network. Whichever ISP you use is going have to be comfortable with what you're doing or not care and be comfortable with the amount of bandwidth you're using. It's a limitation they don't really harp on, but it makes sense.
US spending $136B on spying in two years
How to Run a Startup for $0
With regards to the subscription only model, I think a lot of YouTube channels would have a very low conversion rate from free viewers to paid viewers. It's one thing for channels that build their viewer base from free viewers and then later have something like Patreon with an optional subscription to fund them, but quite another for them to go paid only.

And how much would people pay? Satellite TV starts at €30/mo here. In light of that, even paying €5/mo or €1/video for one channel would be a poor value proposition for many people.
Audio interview with Appcues founder Jonathan Kim.

As a journalism major at Boston University, Jonathan taught himself how to code to help pay his way through college and eventually landed at HubSpot, where he led front-end development on their Social Inbox tool. He was able to get 20 people to put down their credit card before a product was even developed and since January 2014, over 100,000 users have been onboarded with Appcues.

They got their first 500 users without spending a dime and he shares his tips/tricks here.
There is a brilliant new book (albeit somewhat advanced) that I don't see in this list: Introduction to Python for Econometrics, Statistics and Data Analysis (2014) by Kevin Sheppard. PDF available for free here: https://www.kevinsheppard.com/images/0/09/Python_introductio...
I'm a consultant, I take the work that the clients offer.

Most commonly I'm asked to write the Macintosh equivalent of some existing Windows program. While I know lots of stuff about Mac and Windows, it's quite common that I don't have a clue about anything else that that program requires, other than the core OS and standard library calls.

The way it commonly works is that I'll apply for a consulting gig. If I'm asked to interview, I'll buy the required book after I have agreed to interview, but before the interview takes place. That means I only have a few days to read the book.

You'd think that would not work but actually it works just fine.

What does not work at all is when someone wants to know how many years of experience I already have with a given technology. "None at all, but I can buy an O'Reilly book for just thirty bucks."
Ouch - I try to encourage my QA people to write code if they find something wrong and they feel it's easy to fix, and I am at a startup in downtown Palo Alto.

I successfully fought management to get them to allow time for the other senior engineers to mentor the junior developers, and for all to explore new technologies after a massive burnout session of product development to meet an overly aggressive release deadline - I threatened to quit if big changes weren't made, and I was by far their most productive frontend engineer.

Not all startups are equal - just as it can be difficult to find the career that interests you, it can be just as difficult to find the company you would like to work at.
Please don't be put off by the title - these are great little magazines. You may also want to try booting one or two in qemu...
Why would they cut the service if you're paying for your data? You're not necessarily reselling internet but calls/SMS.

Target market seems to be the cluey entrepreneur in a village in Papua New Guinea or anywhere else service is non-existent.
It's a shame because in other languages, if there's a bug in my program which goes uncaught, it won't create a massive security vulnerability or a segfault.
Uber Faces Legal Action in India Following Arrest of Rape Suspect
That was a much more complex situation, and fundamental knowledge about airplanes (that all of the pilots probably have plenty) wouldn't have helped anybody.

From that same link.

"this led to a perverse reversal that lasted nearly to the impact: each time Bonin happened to lower the nose, rendering the angle of attack marginally less severe, the stall warning sounded again—a negative reinforcement that may have locked him into his pattern of pitching up"
I learned on an automatic but quickly learned to drive my dad's car which had a a manual, and my first car, an air-cooled Beetle, was a stick. I also feel that driving a stick does make one an overall more aware driver. It's also why I'd never want a self-driving car.
> ... allowing me to read all kinds of articles/comments on topics like this, as well as financial & nutritional material - which I assume lead to better decisions for me & my family.

It may just be wording, but I'm going to pick out the word "assume" from your sentence above.

I found for me that keeping logs and planning my future off of past metrics greatly helps in making better decisions. If you don't have a way of measuring what has worked, and wind up assuming, you may face a harder time in planning which directions to go, and which actions to take.

I do applaud your interest in finances and nutrition. Just make sure your reading is paying off and is worth while by keeping track of what works for you.
Have you considered reading the article.
Does Utopia Have Police?
Wouldn't a curated list be much better? We can all type "python programming" on amazon and get a pretty similar list of books. It is not interesting. What is interesting is to know which book to read.
Dyre Malware
Actually, I am that specific smart and experienced developer. I find that no one believes I have a clue anymore.

For example I was once asked whether I knew how to write Mac OS X Apps. I pointed out that I had been writing Macintosh code since 1986.

I did not get the job because the hiring manager did not believe me, when I claimed I knew how to write Mac OS X programs.

From time to time, while I don't come right out and say so explicitly, I make it plainly apparent that I regard the hiring manager as a damnfool idiot.

That's not to imply that one must understand computer programming to employ computer programmers. I've had lots of really good managers - consulting clients too - who really didn't have the first clue about computers.

However, there is quite a lot more to management, than understanding what your employees actually do.
His personal page: http://www.ralphbaer.com/
+1.

As someone who makes my living off writing open source software, I am highly aware of the challenges in finding tenable business models when distribution is free. The particular model which works for me was to become an employee of a company which uses my software. There are other possibilities, such as consulting; it's important that we continue to experiment.

Like you, I see creators in other realms as my colleagues and wish them every success.
Or objective c!
Bane, the video from that article is awesome: http://www.smithsonianchannel.com/sc/web/video/titles/12590/...
You mean, "send me email if you've got a problem. I might respond if I feel like it, but don't hold your breath. If you catch me at a conference then even better. If you offer me money it's more likely to hold my interest."?

That seems rather ... needless. Surely it's better to assume that no one is obligated to respond to you than to cater to unrealistic and unreasonable hopes and promote this practice as being somehow necessarily.

I also doubt it will make a difference. People don't read READMEs in general, much less for details about support options.
"I can walk into any public library, no matter how tiny and underfunded, and find facts, stories, amazing information I would never touch in a month of webcrawling."

This remains absolutely true. Wikipedia and the internet in general has done a great job of making shallow information readily available, and providing access to out-of-copyright works.

But for the vast majority of topics, it hasn't come close to providing the kind of information available in books, except when Google is actually scanning and OCR'ing those books.
There's a bit more to it than that. The Debian maintainer didn't just delete one bad call, they deleted a second not buggy call.

http://research.swtch.com/openssl
Or just write function increasePoints() { ++($scope.points) }

Function errything!
Lessons from teaching a hack class
Well, isn't it what Nest and others are promising? Having a house that can operate itself. Hopefully they'll work toward more standardization of solar panels console and heater so that they no longer have to be operated by humans.
C??

Stick shift??

I learned to code on a PIC micro in assembly.

And I learned to drive in a column shift Kingswood with one break pad, no handbrake and a missing accelerator peddle.

Kids these days.
I have yet to see any new points in the disussion of free content since reading Chris Anderson's book FREE back in 2009. The one possible exception would be the advent of Patreon and to a lesser extent Kickstarter, but these are basically just subsets of the business model patterns he described.
Has anyone quantified the runtime cost of doing interface upgrades? I have a vague memory that the vtable for a specific type/interface pair is constructed at runtime and then cached -- is this true?