skysight-inc/HackerNews huggingface dataset:
As someone who learned MS BASIC 2.0 -> 6510/6502 assembler -> Pascal -> C -> etc, I know we'd be more immediately productive, but would we necessarily be "better"?

I run into a fair amount of programmers these days who never worked with a non-garbage collected language, have never even seen an assembly language listing (let alone written code in assembly), etc who are generally productive but end up being really lost whenever whatever leaky abstraction their language/framework/etc is using inevitably breaks in some way and in this situation if the solution to their problem isn't immediately Google/StackOverflowable they are standing in front of a brick wall because they've never worked in a language or environment that wasn't abstractions upon abstractions over how computers actually work at a fundamental level.

I'm sure there is some amount of get-off-my-lawnism going on here and I know it isn't universal (there are still young kids writing real bare metal bit-banging code, especially in the maker/"IoT" space), but I think that while highly programmer-time-productive languages and frameworks are great we're still at a point where those skipping over the fundamentals the technology is built on do so at their own peril in terms of how effective they can be when things don't go as planned (and in software things rarely go as planned).
Coming from a background of not much computer science and having dropped out of college, I found learning theory to be too lengthy and dull for my novice mindset at the time I started programming (in, quite fittingly, HTML+CSS+JS+PHP on LAMP). I was in the same shoes as your friend, as whenever I would see an open-source project or library, I would be quick to modify it to suit my needs, but would end up with massive if clauses and without much modularization. Of course, after about a year or so of doing this same bad practice, I came to ask "Truly there must be a better way than this, right?" It was at that point, after already becoming completely addicted to programming (yes, in the ugly, somehow-working kind of way) that I gained enough patience and interest to learn more theoretical concepts about computer science and its applications to programming (lambda calculus and functional programming in particular). I agree with you, being that this ultimately ended up helping me greatly, but I disagree that CS theory should be the very first thing a novice programmer approaches.
We changed the title to a sentence from the article that expresses its substance more informatively.
New Hair-Loss Treatments in the Pipeline
> Which assumptions? Using multiple connections is pretty standard in the enterprise storage world.

TCP congestion control is designed such that, under steady-state conditions, each TCP stream traversing a physical link gets an equal share of the available bandwidth. When an application that uses multiple TCP connections competes with another that uses a single one over the same link, the resulting bandwidth distribution is unfair to the latter. (Edit: there's also another problem, related to bufferbloat, but that one is a lot trickier to explain).

Of course, this may not be a problem when used on an internal network (which I assume is the scenario you are referring to). On the public Internet, however, HTTP is becoming increasingly disruptive to other kinds of traffic due to the increasing number of parallel connections used by web browsers.
> What makes, say, PHP or Visual Basic good for beginners is that they just work.

And what makes them bad is they permit, induce or even explicitly teach bad habits.

I agree to not discourage someone if they're doing it, but if you have a chance to steer them in a position where they'll be better programmers, you should do that.

The reality is almost any language allows you to create a single file and run it and see a web page these days. That's not something unique to PHP at all.
If you're using .NET I would recommend looking at EPPlus instead: http://epplus.codeplex.com/
Started off with AutoIt, then VB6, then PHP. Not the smartest route but today I'm using Ruby, C#, SQL, F# and JS/frontend. All through the first few languages I heard people bashing each and every one for various reasons.. However I built a range of tools at a young age including a file encrypter, a website complete with authentication and user management, an online shop and a game "bot".

If I hadn't mucked around the way I did, I don't think I'd have the breadth of knowledge on networking, protocols, assembly, file formats and authentication I do today. I probably wouldn't have gotten into security either.
An Open Letter to Companies Who Partner with Uber
Crafting a Sustainable New Republic
The difference between a good cook and a crappy cook is that the good cook powered through all the crappy not-quite-there meals and learned everything they could about what makes a meal good by tasting all of their own cooking, and striving for improvement. Learning how to cook to taste is about persistent trial and error, just like learning how to develop software is about persistent trial and error.

There's no right or wrong way to cook. It's all about what you personally have a taste for. For example, Natto is something I personally find distasteful. However, people have put effort into learning how to make Natto and they personally find it delicious. It meets their needs. Who am I to devalue their experiences?

By the same token, PHP meets needs and there are plenty of people who develop effective software with it. If it's working, and you don't find its warts to outweigh the value you get, then you should continue using it.
The difference - and I hope this isn't being patronising - is that rat poison a la bleach can never be anything but poisonous, whilst a good programmer can be perfectly effective using HTML and PHP (depending on the task, of course).
In that regard, JavaScript is even more accessible; just put a <script> tag around the code, save it as an .html file and double click it. You don't even need installation permissions, since every computer comes with an interpreter installed.
I used to be able to relate to this. After about 10 years in the industry I find that I crave more diversity. I tend to try to eat lunch with the sales guys to get a break from discussing database performance.
What criteria do you use to assess "quality"? In any case, this .gitignore is almost entirely the standard GitHub setup for Visual Studio projects.

https://github.com/github/gitignore/blob/master/VisualStudio...
I know that they are totally different, wondering if xlsx is simpler so that it would be easier code, or whether it is just as complex really, and not suer what real world compatibility is.
Mouseless workflow on the Mac
Their admissions folders, MIT doesn't have much to speak of more than that prior to matriculation. This would have been for the academic year 1988-9 I think; I don't remember how we came to this conclusion, just that it was self-evident.

Hmmm, for that matter, as a member of the class of '83, I too don't remember explicitly telling them that....

Or maybe I'm misremembering this, it was a quarter century ago; my friend interacted with a large fraction of the undergraduates (EECS) and would through that have gotten a rough but good picture of this sort of thing over the years. But I'm pretty sure I remember us going through some paper files and coming to this conclusion.
You should also provide it, but some people may not be able to use it with their tools.
And let's be honest, there are two ways to go about steering someone to another language that might put them in a better place as a programmer long-term.

The first is the condescending, snooty version espoused in this blog. The problem is, I don't think it actually happens that much. It may be perceived that way, but people who are learning new things are sensitive to instruction from people who know more.

The second is to be very supportive and maybe even a small sales pitch about where you would start if you were beginning programming now in 2014, knowing what you know as an experienced programmer.

If you truly believe that learning PHP as a first language is bad for a new programmer, then you shouldn't bite your tongue. But you should be prepared to explain why and present a good alternative and maybe even offer some hands-on instruction.
Ok,so is there a simple implementation guide/library?
In my experience, Numbers doesn't even import XLS anymore.

XLSX works fine, though (for the features that Numbers supports)
> or live in a place that is destitute of resources

Or worse: live in a place with lots of valuable resources: https://en.wikipedia.org/wiki/Resource_curse
I hugely agree with this. I first learned Java in a year long high school class. As soon as the class was over, I knew I liked programming and wanted to become a better programmer, but I also had the feeling that there had to be something less painful that Java to program with. This lead me to Python, which I used for everything over the next two years. From Python, I also learned web programming with Django and Flask.

Eventually I decided to try to write an IRC bot in Python. During this effort, I realized I knew nothing about networking, concurrency (how does gevent work?), operating systems, and how to do non-trivial IO. Similarly, I also ran into performance and memory problems with some numpy code, and I started to wonder how does this stuff work and why is numpy so much faster than anything I can write in pure Python? These were my "C shaped holes". Around the time I discovered I had these "C shaped holes" is when I started college, which was a good place for me to take low-level programming classes and fill the holes.

Besides getting a student motivated, maybe the hard part of education is having students realize that they have these holes.
Visual Basic 3 for me (although I did a bunch of BASIC on commodore64 in the early 80s).

There weren't that many high/entry-level languages back then, though. The argument that BASIC is terrible notwithstanding, it was often either that or a very low-level language.
Not quite true. I'd probably be a bit faster door-to-door from where I live in Massachusetts to Manhattan Midtown. But that's, to my way of thinking, an awful drive. I think that's generally the case for a lot of the Northeast corridor routes that many people take. Train doesn't take much longer and they're not remotely pleasant drives.

What higher speed rail could do in the Northeast is make the New England to the Pennsylvania/DC routes more attractive which don't really work for most cases today. But that's sort of a marginal and it doesn't address the more interesting cases where the economics and travel time math don't really work vs. air (e.g. NYC to Chicago).
C++'s SFINAE
In my opinion phonetics are way underrated in language learning, especially with those learning it on the go while traveling.

I always encourage other travelers to focus on pronunciation and getting rid of ones native language accent right from the start. Not to sound more skilled than you are or to hide your origin, but it is necessary to get into the flow and rhythm of a language, which will in turn improve your listening skills and ability to adapt to different accents of that language immensely.

And in geographically widespread languages like spanish or english you have to adapt a lot. As long as you pronounce things in one major regions accent natives have few problems understanding you, even if you make a lot of grammar mistakes. On the other hand, you can have perfect grammar, but with a really thick e.g. english accent, you're sort of limited to talk to people who also speak english and are able to do that head trip.
Thanks for the frame ranges. So...

ffmpeg -i zelda.mp4 -vf "perspective=60:90:589:147:50:415:582:418:enable='not(between(n,0,149)+between(n,1488,2063))'" -c:a copy -c:v libx264 zelda.mkv
"Experience is the best master, but it always comes a little too late." - Cervantes

After loads of time hearing about proper CSS, RoR, etc. I ended up putting up my first webpage by copy-pasting my structure from one page to the next. I used grep, perl, sed, awk to change stuff across all my pages. It was pretty obvious that it was inefficient to me, but I began to have a real appreciation for the tools I eventually learned. I ended up learning why I needed to learn RoR, Jekyll and what I for webpages now: Middleman.

Today, I actually end up use PHP on a day to day basis when before I used RoR, Node, C#. I end up being just as effective in it, if not more. I actually intend to write about functional PHP someday. PHP is also awesome because it ends up being a history lesson: part of the reason RoR is so good is because it had the time to learn from PHP's mistakes (mistakes which happened because it was busy building the internet). My first app, btw, was constructed in Excel.

We need to get dirty with our tools to learn how to use them or why they are important. Let people make mistakes. Personally, I like to call it 'learn-by-annealing'.
A Name<=>SSN mapping would be enough to force change. It wouldn't even have to be accurate or complete, just well known. If the government announced that it will release a list of SSNs and names, everyone would realize they can't ask for a SSN for "verification".

> My understanding is that SSN's from certain eras encode information on the place of birth.

It goes the other way too, from public info to SSN: http://arstechnica.com/science/2009/07/social-insecurity-num...

> Might having a public, nearly unique number of any person allow buying/selling additional data from third parties more easily?

The government has been trying to restrict the use of SSNs since their beginning, including commercial restrictions.

https://en.wikipedia.org/wiki/Social_Security_number#Identit...
> And NAT doesn't go away with IPv6. That was another belief that did not survive its first encounter with reality.

If it doesn't go away, it will be only because of ISP greed (i.e., charging customers for a larger number of publicly routable addresses). Otherwise, there simply is no reason not to give every customer a /56 or even a /48, given that routers won't be able to route prefixes longer than that anyway.

Fortunately, most ISPs offering native IPv6 so far have turned out not to be that greedy.
Another article from 2013? Am I in a HN timewarp?
This (tired) argument successfully says you can build something with anything. But that's not really the topic at hand.
Key to what you are saying (I agree) is that by starting to write something (even a shell script) you get instant feedback and reinforcement.

If you are spending time understand a framework you don't get to that part as quickly.

While it may seem trivial even having someone see what happens
in the shell when they do simply from the command line:

Lesson One from the command line:

echo "Enter your name:"

read x

echo "Hello $x"

..is the type of reinforcement that allows someone to feel as if they are making progress.

Lesson Two: Ok let's put that in a script and make it executable:

...and so on.

(Obviously equivalent examples with Php.)
I think a big problem is people not distinguishing "Programming" from "Computer Science". Sure, Python isn't the greatest for understanding how a computer functions, but like the author says, it's very fast and productive and simple. You can be a programmer, but not a computer scientist, and I think that's just fine.
They didn't have value for the average person they GOT value with time.

Who ever needed TCP/IP besides the governments? Well as it turns out the whole world did and not in any way it was originally intended.

The difference between short term hype and long term implications are always hard but I think when it comes to bitcoin I think its fair to say that we haven't even begun to see the implications.
But you could get all those benefits by just testing your csv loads OK into excel.
This 100x. I am sick and tired of developers in the industry trying to push their own preferences onto junior developers. I think many of us who have been in the industry for a while have witnessed this scenario happen in the workplace a few times in our careers.

Programming languages are like opinions, everyone has them and everyone is always wrong. We all have to start somewhere, it shouldn't matter if you decide to choose PHP or the new flavour of the week trend language on the HN homepage. All that matters is getting your foot in the door, seeing the possibilities of a programming language and then moving up.

I recall programming Visual Basic in high school, my first ever exposure to programming. Not many would consider Visual Basic great, but it was enough for me to get a taste of what is possible in programming and from there, I consumed tonnes of books on different aspects of programming. Through my own growing knowledge, I could see the limitations and downsides of various languages the more I kept learning.

My first foray into web development was PHP and HTML. There is no other language in existence that can rile up a crowd of elitist programmers faster than PHP. But PHP was my gateway into languages like Python and Javascript (especially Javascript). The more I learned, the more I could see similarities between PHP and Javascript, and other languages like C++. It didn't matter I chose what is considered a bad language for web development, it taught me concepts that carried over to other languages, it taught me the basics of things like if statements, for loops and more.

Fast forward to now, I have a firm grasp on HTML, CSS & Javascript, I know Ruby, I know Python, I know Objective C and have a skillset that allows me to pickup a new programming language non-objectively and play around with it, without passing judgement or casting an opinion. Because I was able to make my own decisions along the way and learn what I wanted to learn, not what someone else thought was best to learn, I have a varied toolset and I am better off for it.

We will start somewhere, I think some of us more than others lose sight of that. We get clouded by our own judgement, everyone thinks their favourite language and framework is better than the competition.
Leave iptables on and port forward with SSH to localhost. Same thing people do with elasticsearch or other non-authenticated services.

These are early stage projects. The ones that stick around will get more enterprise-y over time.
"Again, keep note of whether it was a thread or not."

This sounds like the visited list again...
Sure. I didn't claim it does. I added links so the next person doesn't have to guess too long what Code Monkey stands for. Did you email the https://groups.google.com/forum/#!forum/simianarmy-users email list?
If they're making something public-facing, and the language and/or framework they're using is known to be more difficult to use in a secure manner, then it's probably fair to warn a newcomer away. Otherwise, completely agreed.
How to Disable Chrome’s New Bookmark Manager
>-vf "perspective=60:90:589:147:50:415:582:418:enable='not(between(n,0,149)+between(n,1488,2063))'"

Incidentally, this is a pretty big reason why I'd pick Avisynth over ffmpeg for video filtering any day of the week.
Because nothing says, "Important statement" like a title in capital letters. Flagged.
Do we entirely rule out the possibility that people who tend to make bad economics decisions are more likely to become poor?

Because the article doesn't even seem to acknowledge this simpliest of explanations.
Any chance you can add a RSS feed so we can follow the updates?
TL;DR: IO.js is faster because it is running an up-to-date version of V8, not because of any optimisations or code contributions that Node does not currently have.
It wouldn't surprise me in the slightest that the corporate envronment still uses Excel 2003 (? not 2004, I thought?) or maybe 2007 rather than 2013.

Then again the WinXP EoL should have changed that, but watch it not have.
Show HN: PriceLabs, Machine learning dynamic pricing for Airbnb listings
Hell, I'm 22, and the first few years of my programming life were with TI-BASIC.
I find, that when talking to beginners, it's more common for the beginner to already be heading off in a direction that will ultimately frustrate their attempts to learn. Usually, this is due to their desire to skip right over the whole beginners phase of learning to program. It's as if they say, well I going to skip Driver's Ed and start with driving a Formula 1 car because it's a faster car.

One friend said to me "Well, Python feels like such a grab bag of features, it's too perplexing. I'm just going to start with C++ instead."

A Ph.D. student in Mechanical engineering was going to start developing a simulation for his dissertation and was going to use C++. He had very little programming background.

A friends bright 13 year old wanted to learn programming and told me that he wanted to learn C++ because it was fast.
So all the federal dollars should come out of supporting it? I guess then we'd learn what the subsidies really are.
I think the best use of taxpayer money would be improving the airport experience.

The high speed rail initiatives suggested cost many billions of dollars per city served. Suppose that, instead, we spent those billions to remake our airports.

For instance, imagine moving the "terminal" to the city center, with a high speed rail line (inside security) that takes you directly to the runway. There must be some way to use a billion dollars for significantly faster baggage service, and another billion for faster security.

Hopefully this would cut a lot of time from the average flight. Airports would get much smaller because people wouldn't be waiting around in them.
If you haven't already, I can recommend reading the book Traction - http://tractionbook.com

Gabriel and Justin have done a good job of not just identifying marketing channels loaded with successful case studies, but providing the business framework for testing them on an ongoing basis to keep "moving the needle".
I'm guessing it's a copy paste of the article headline which uses capitals.
Promising compound rapidly eliminates malaria parasite
I agree that it's hard to find low-level work with equivalent pay to web development/frontend/etc. I think this is a reason that the "learn to code" movement focuses on Javascript and Python rather than C.

From my limited experience, big companies (Google, Facebook, etc) are a good place to do low-level programming with good pay. Additionally, a lot of the programming in the financial industry (particularly high frequency trading) is very low-level work, and the pay is significantly better than the standard "Bay area web company".
> But don't you mean "multiple recursive calls", not specifically two?

Yes, of course.

Exercise for the non-lazy lurker: can you generalize the Quicksort algorithm based on this? Is there any benefit to doing so?
But the thing is for many people (at least for me) was the instant gratification PHP provides can be a powerful hook. With PHP you can create interesting visual things with virtually no experience, no boilerplate required. It's one of the few languages where that is (was, more options today than when I learned) really possible.

PHP wasn't the first language I learned, but it absolutely was the language that got me hooked on programming by giving me the power to create things, visual things, interactive things, and more importantly, let me do so without following a step by step tutorial (I had basic html knowledge prior).

> And what makes them bad is they permit, induce or even explicitly teach bad habits.

Very true, I had some bad habits from php that took me a while to kick, but for me it was a small price to pay.

> The reality is almost any language allows you to create a single file and run it and see a web page these days. That's not something unique to PHP at all.

These days that may be the case, but many commenters here are referencing when they were learning to program, and a decade ago it was something incredibly unique to PHP.