skysight-inc/HackerNews huggingface dataset:
Even this advice is aside from the point and a bad way to influence a beginner.

If you're talking to someone 'learning programming' you should talk to them and figure out a project that they can work on that would benefit them, and is within their grasp.

Yes, the tools are a side concern. But what is going to help them is automating a task they're interested in, or hooking some data sources together, or creating a programmatic animation.

To teach someone english word by word and rule by rule fails. You want them to read something interesting, to watch the subtitles on a movie. It's the same with programming.
I think we (I'm 36) should also bear in mind that we'd probably be better programmers if we were starting out today. HTML + CSS + JS + PHP is worlds ahead of the rubbish we were using!
I started coding in the 80's and many people would deride my expertise in BASIC, whether it was on an IBM PC or on a DEC PDP-11 or DEC VAX. If you weren't coding in C and later C++, you just weren't a "real" programmer.

So all I have to say is...one of my clients in 1991 is still running the payroll reporting system I wrote....in Microsoft Professional Development System...which was BASIC.

I've since learned OO, C, C#, scripting, and all the new stuff, but BASIC is where I started.
"You're right that this is all just posturing and anecdotes."

Maybe in programming, but I think there are plenty of areas wherein this "manual transmission" learning curve should be practiced.

I hate to stomp all over this guys grave, but that air france pilot who responded to the STALL STALL STALL blaring in his face for two minutes by pulling up on the yoke as hard as he could ... perhaps that guy could have used some more "manual transmission" knowledge of the plane.

http://en.wikipedia.org/wiki/Air_France_Flight_447#Human_fac...
https://news.ycombinator.com/item?id=8616825
RIP Go Seigen
Variations of it. It could also be something as simple as "You don't know how do to XYZ in JavaScript?! It's like 101!" Either way - encouragement/mentoring is always good.
I used to live in a college town and I heard this a lot. Especially from the RoR fanboys. The RoR fad is done, so I don't hear it as much anymore.

It is quite ironic, seeing as I didn't even consider the people saying it as advanced developers. They had enough knowledge to mash a few frameworks together.
I'd be very surprised if you really knew much about PHP.
Obituary: Ralph Baer, 'father of video games,' passes away
Well... you can do that with only ffmpeg.

ffmpeg -i zelda_720p.mp4 -vf perspective=60:90:589:147:50:415:582:418 output.mp4

Edit: BTW on your picture it's not (50,145) but (50,415) for the bottom left corner.

Edit: if quvi supports still works, you can ffplay "https://www.youtube.com/watch?v=rMXD5DxbXog" -vf perspective=60:90:589:147:50:415:582:418
(otherwise something similar should be doable with youtube-dl)

Edit: you can also do better and enable the perspective only in the part where it matters. Typically with something like -vf "perspective=60:90:589:147:50:415:582:418:enable='not(between(t,0,5))'"
I remember the days when David Marcus was the CEO, then he left the company, and now they are finally planning a break-up from eBay.
I'm tempted to say you should learn C to learn how computers work, and Haskell to learn how computing works.
>I guess that Emacs will be forked as soon as they deprecate Elisp and start forcing people to use Scheme.

Bullshit.
Hm. While good advice, this seems like just general life advice not specific to programming.

If you're the kind of person who says things like "TextMate is for n00bs" (or some variation of such) you're probably just a super annoying person in general.
Oh man, this is the first time I've ever heard someone else reference GW basic.

When I was 10 or so I convinced my parents to let me put the ibm 286, which previously was sitting in their closet, in my bedroom. (At the time we had a newer computer with windows 98, this would have been just before XP would be released iirc)

GW basic on that 286 was where I taught myself the basics of programming. That takes me back.
Somewhat related, I think the history of SSNs is a lesson in things like separation-of-concerns and scope creep. Social Security cards started in 1936 with the heading "Social Security Act." In 1946, "For Social Security Purposes Not For Identification." In 1961, "For Social Security and Tax Purposes -- Not For Identification." In 1972, they gave up on "not for identification." As of 2007, the card includes security features such as color-shifting ink and a latent image only viewable from certain angles. It seems the card progressed from simply a medium to convey an account number to the holder, to a high-security proof of eligibility and identity.

A system designed in the 30's, explicitly not for identification, is still in use 80 years later for everything from its original design for a single government agency, to medical care, financial credit tracking, taxation, voting, employment, etc. Might we have benefited from re-designing it at some point in the past, instead of overloading purposes beyond what it was created for?

http://www.ssa.gov/history/ssn/ssnversions.html
RIP Mr. Baer. We have arguably lost someone who did more for modern console gaming than most people realise. A really smart and talented guy who produced entertainment devices ahead of their time. Us modern gamers have a lot to be thankful thanks to this legend.
(1) people who know C are better programmers. I think (1) is generally true. I would be interested to hear someone explain why they think having low-level programming knowledge makes you a worse programmer than one without low-level knowledge.

This isn't related to the argument per se, but it's interesting to observe that website ninjas are making >$150k, whereas most low-level ninjas are making less. The reason is because most people want websites, and all of my SIMD knowledge becomes irrelevant in that case.

"Better programmer" is very hard to quantify. Whereas "makes more money, on average" is a solid metric.
Yes, Guile has threads, too.
You can tell people who relay know OSI by asking them which level MIDI is and critique CISCO'S asertation that its a layer 5
What made, say, PHP or Visual Basic good for beginners was that they just worked. You wrote a PHP program (in the language, not a framework), saved it as index.php and suddenly you had a working web app. With VB6, you created a project, dragged stuff onto a window, typed things, and suddenly you had a program that looked just like the other programs you were running on your OS. You didn't spend hours configuring things or typing boilerplate code.

The experienced programmer's goal is to make good stuff; the beginner's is to get his feet wet. These are radically different goals with mostly randomly different tools.
Meh. I wouldn't try to sway them away from PHP, but I'd try to get them to try something else as soon as possible, and make the introduction to the language an overview of harmful PHP-isms (i.e. explaining the difference between arrays and objects, how equality works on a non-fucked language, showcasing a standard library that isn't a minefield, etc)
... or you can skip talking about your favorite framework and point to theory like logic, computational complexity, data structures, lambda calculus, relational algebra, and other stuff that actually matters. He already took the first step, which is playing around with some programming.

I have a friend and previous co-worker who hoped that by learning Python he could work on a legacy system I built while we worked together. He's able to make some tweaks and get a general idea of it, but translating intention to algorithm is still mostly mystic to him. He was shocked after I showed how to simplify some 30 lines of if clauses with a dict, he learned the syntax for a dict but didn't really understood how it works, or to what it's good for. This kind of illumination, I believe, only comes after learning some theory, not syntax, or your favorite framework.
I read this book last year and my favourite interview was Steve Perlman's, the founder of WebTV (http://en.wikipedia.org/wiki/Steve_Perlman). I was amazed at the things they did at Catapult Entertainment (http://en.wikipedia.org/wiki/XBAND). And even more amazed to discover he also founded OnLive even if it did not work out in the end.

I was also blown away by Mike Lazaridis' stories about RIM especially when reading it so many years after the iphone/android launch.
valgrind proper is actually a much more general binary instrumentation/execution engine that supports a number of different useful tools; most of what the article is actually describing is memcheck, the tool it runs by default when you don't specify another. While the article does mention helgrind and callgrind, it glosses over the true generality of valgrind in offering the "plugin" structure via which those are implemented.
Is the point that the order you pull things out of the
set doesn't matter, so demanding that it behave as a
stack is overly prescriptive?

Right. In fact, there are several parts of the algorithm that are not really fundamental; one is how you pick the pivot, and another is how you perform the partitioning (ensuring that all elements before the pivot are less and all elements after are greater).

Lamport's point is that if you look at the fundamentals of the quicksort algorithm, which are that you must pick a pivot, partition such that smaller values come before and larger values come after, and then at some point later apply the same two steps to the two intervals [start, pivot) and (pivot, end].

Any algorithm that follows that specification will correctly sort the array, and then you can tweak exactly how you do that depending on your constraints. You could do it recursively, you could do it iteratively, you could divide it up into separate threads until you have one thread per processor each of which does the recursive or iterative algorithm on a private work list, you could do a worker pool in which each worker takes intervals from the set of remaining intervals to sort, etc. And likewise, you can tweak how you pick the pivot (picking the first element in the array is usually a bad idea, as it gives worst case behavior for already sorted arrays), and tweak how you perform the partitioning.

Anyhow, he didn't go into this kind of detail, he just pointed out that thinking about the fundamental specification can help get you away from the details of a particular implementation.
It's a fairly trivial markov chain text generator that I manually scan for good results.

To make it easier, I've got it colorizing output based on the source corpus, so I can see where there's crossover. Then I just generate a wall of text and look for gems where the colors change.

It's an incredibly unsophisticated process
I was wondering why he said that CSV was not capable of supporting full precision for doubles. Are you saying that the problem is not with CSV per se, but instead the C libc printf function? I'd have thought that modern standard libraries would do this right with the usual decimal %f and a large enough precision: http://pubs.opengroup.org/onlinepubs/009695399/functions/pri...
An Ebola Doctor’s Return from the Edge of Death
Sadly this sounds exactly like many of the PC based programmers across the hall. What is it with them? Its like water cooler hell with some of them, and share code - hell they all can implement X better than someone else.

Is there just so much language bravado amongst this class of programmers or did it bleed through from school? I have listened in arguments between Java programmers, C#, and the like, and never understood the animosity some have.
Philly to Pittsburgh is longer than DC to NYC, or most of the ridership of the Acela put together, wouldn't serve all that many people, and would be at least a 4.5 hour trip even with the unlikely assumption that you'd get Acela's average speed for the whole trip.

I'm also not sure what building out NE service does to make Chicago more accessible. Chicago is prohibitively far from all of the east coast cities to make NE rail meaningful.
That's a serious question but you chose two things that would not seriously hurt someone if they hit them? I doubt the seriousness of your question.
https://github.com/coinkite/coinkite-php/blob/master/sign.ph...

You can be the judge of their PHP skillz :P
That is interesting I did in the summer go over to hanslope park (a technical out station for the Foreign office) for an interview and one of the technologies mentioned was OSI
I wouldn't be too US centric in your assumptions. India will soon overtake the US in software devs and the average Indian dev makes approx. $5400/yr.

http://www.glassdoor.com/Salaries/india-software-developer-s...

Now, even on the high end if the Indian dev makes $7k a year or $3.50/hr. And I'm a relatively high paid US developer who depends on their project and I offer $50, that's 14 hrs. of work. Not insignificant.
YouTube Offering Its Stars Bonuses
The Northeast regional between DC and NYC is only marginally slower than Acela (3.5 hours). Schlepping out to JFK or La Guardia from Manhattan is so traumatic it's no contest even on the slower regional train.
30 and started with QBasic. Yeah yeah... i heard it was terrible at the time but i didn't have internet to get a real compiler or language. Had a lot of fun though. nothing anyone told me could stop me.

Also, if i wanted to make windows programs, Win32 was an impossible beast to me. I, to this day, still have no idea how that mystical beast works even though I've coded a few programs in it. Some of these "frameworks" can be a little code heavy and have lots of technical details (MVVM and WPF come to mind) They are completely overwhelming while php and basic are simple and have little magic. That said, if i were to have a child soon, I would teach her racket using SICP.
I'm not really criticizing the rest of the post. Just the EME part of it. And yes, that's my personal choice since I oppose DRM on many grounds (it's unethical, impractical, slows down the progress of technology and so on). And if we as users don't vote with our wallets, how else do you think this can be improved? Whether it's different reality or not, each one has personal responsibility for supporting or not supporting services which proliferate DRM.

In gaming sense GOG already broke quite a number of walls even with publishers who were usually viewed as thick skulled DRM proponents. Film industry however is one of the worst when it comes to this (it's older than the gaming industry in general so more legacy garbage and practices are attached).
That link works, but this page is probably what was used - https://www.paypal.com/webapps/mpp/security/reporting-securi...
Oh you're learning to be a chef? That's awesome! What are you cooking?

Rat poison a la bleach? That's awesome! Let me know if I can help you with that at all!

If only there was a middle way between denigrating and patronising n00bs...
In my experience, every urban street in Australia is full of parked cars. It wasn't like this when I was growing up and we would ride up and down our cul-de-sac or kick a football, but now that same street would have 12-20 cars parked within a one block segment at any given time.

People can afford more cars and would rather make use of the public space for parking than fill their driveway or have to shuffle cars if they're parked behind one another.

I leave my second car parked out front because it's slightly more convenient than using my double driveway (crammed to get kids in the car when two cars are parked there), and because I have a pool table and table tennis table in my double garage. I am a part of the problem!
When I was younger (13-14) I started playing around with VB5 completely organically to try to build an application that would manage photos (my father has a photography business).

I was discouraged against both the programming in VB (it's beginner stuff and you can't make anything good with it, was the basic message) as well as against building/finishing the image view/organization tool (at the time ACDSee was all the rage, and I was going for something of that nature).

Well, sadly, that was all I needed to hear to realize that I was going down the wrong path and if I wanted to get into programming I would have to wait until college.

Thankfully I found PHP (gasp) a few years later.
> you begin to learn it is all just posturing

Yeah, I think that's probably the most common motivation behind the interaction spotlighted in the article.

> Here's a sample interaction between an experienced programmer and a beginner who is just learning programming

I think the interaction happens between programmers of all levels of experience, but it might be most harmful when it's an experienced programmer talking to a beginner.

> It does get discouraging as a noobie when you hear people in forums throwing around the latest tech jargon and some esoteric C library just to show-off how much they know more than you.

If that's really their intent and if you (the noobie) are the one they're talking to, then sure. If I'm a noob walking deep into a HN thread on an esoteric C library, I'm probably not going to be discouraged that people are using jargon, unless I've identified myself as a beginner and the comments are replies to mine.
The OSI was working to the one PTT per country model your government controlled/owned phone company.
At least the professional programmer recommended RoR instead of Haskell or F#!
I really like this comment from an AskHN from jlcfly two weeks ago. I hope most of us embrace this philosophy as the reality is programming as an art is much more important than programming as a rote skill.

"Teach them to be better than you. That may seem counterproductive. I have a type A personality, and I have decent coding skills. I've been in your situation a number of times. I also know there's these mythical expert developers out there that I can't seem to find (or afford). So, what to do? A few years ago I realized that if I continue down this path, I'll end up with some serious health issues due to the stresses that come along with having a reputation for being a really good developer.

So, I decided that instead of searching for developers better than me, I would teach developers I work with how to BE better. It's taken a lot of patience. And it's taken me quite a bit to LET GO of my way of doing things. I had to take my ego out of the picture. (VERY hard to do.)

Nowadays, I realize that developers don't have to BE better than me. I simply have to ALLOW them to do what they do without being so obsessive about it. Turns out, even junior developers really CAN do good work. They just need a little guidance that only comes with experience, and then they need me to get out of their way."

https://news.ycombinator.com/item?id=8649415
Nice :)

I had an even older computer, a Tandy 1000. I had to boot MS Dos 6.2 with a 5"1/4 floppy disk. GW Basic was kinda the only thing I could do. Later, my father got me QBasic, which was nice since I didn't have to input each line numbers :p
Funny, you could write an article entitled "Why open-source maintainers quit" and have the sole text be a hyperlink to this article. The whole piece is a long whinge about "why won't maintainers do free work for MEEEEE!". Maybe they aren't using the project anymore, maybe they're busy with life, maybe they just got tired of triaging for a while - whatever.

The final story in the piece really sums it up:
"But when I looked at the mailing list for the project, I saw a wasteland of good patches that were completely ignored, where the submitter would ping the list a couple times and then give up. Did it seem worth spending a week to disentangle our IP from the project in order to submit a set of patches that would, in all likelihood, get ignored? No."

This sounds like a great situation for somebody else to step in and pick up maintenance of a clearly-neglected project. Hell, if your company is using the software for critical-enough things to devote "a couple months" to fixing bugs it seems like it would be in your company's interest to start maintaining the project publicly, if everybody's patches are being ignored. It would certainly be more productive than complaining that somebody else won't QA and then support your fixes FOR FREE, FOREVER...
If an open source project doesn't merge in pull requests, then that's the business of whoever created and/or runs that project. When a project's managers let a pull request or Jira issue sit there but create their own request or issue to do exactly the same thing often with code copied from the original, however, then that's behavior that should be exposed.
Most of the people I know who are starting out are starting on TI-BASIC. I have to say, Beginner is already ahead by starting out with "some PHP and HTML using TextMate on my Mac." It's at least better than starting out with some Visual Basic using Notepad on my Windows.
Our quantum problem
Actually I think it's _you_ who don't understand how the legal system works.

When one is the respondent in a civil lawsuit, one has to depose under oath, and one must supply what is requested in discovery.

Yes, the respondent can ask that a judge quash a discovery subpeona, with the usual argument being that it's "just a fishing expedition". However, given Zuckerberg's adamant insistence that young people are smarter, and that no one at all should hire anyone over the age of thirty, it would not be hard to convince a judge to force Facebook to hand over all of its emails.
I'm not current in MS World, but I wonder if Excel handles this now, or will soon, given their recent, progressive bent.
>Just let them first learn something (anything!!!) to get hooked onto the potential of programming, and then you can offer to show them the true light later.

pgbovine nailed it. I learned this lesson from mathematics (I studied math in college and theoretical CS in grad school): the best math teachers always introduced a new concept/idea using a "toy" example. A toy example may not have the full generality of the overarching theory/idea, but it has all the essence without any of the abstract inaccessibility.

I try to apply the same lesson when I teach people data analysis: I learned (through my time as a quant on Wall Street) that a lot of people feel very comfortable in Excel but find other data analysis tools (SQL/R/Python) too abstract/scary. So, instead of telling them "Oh, you should use Pandas with Postgresql" or "that stuff can be done better using R", I show them what the equivalent operation looks like in Excel first, then show them how they can be done in SQL/R/Python (See, for example, this: http://blog.treasuredata.com/2014/12/05/learn-sql-by-calcula...)
Reflections on Ferguson and the History of Racism in America
Facebook.

Initially developed in: PHP

Why: It was what Zuckerberg knew!

Todays Value: $200+ Billion
Url changed from http://www.theverge.com/2014/12/7/7349715/ralph-baer-father-..., which points to this.

Edit: and again from http://www.gamasutra.com/view/news/231730/Ralph_Baer_father_..., because the NYT has more information.
Yes, but that doesn't answer the question, who is actually using it.
It blows my mind to think that, with the invention of the relay in 1835[0] and the invention of boolean logic in 1847[1], a binary computer like this could have been built almost a hundred years before it actually happened. There was just never the right person looking at both parts of the puzzle.

This is my go-to answer for the old "if you could go back in time, what present technology would you invent" dinner party question.

[0] https://en.wikipedia.org/wiki/Relay#History
[1] https://en.wikipedia.org/wiki/George_Boole#Symbolic_logic