skysight-inc/HackerNews huggingface dataset:
Because one finds many self-taught developers out there who can outperform college-educated compsci majors day in and day out.

Because one can read universally-acknowledged figures explaining how a large number of people with a software engineering degree can't code their way out of a paper bag or pass the most basic "fizz buzz test". (1)

Because we can see non-genius 17-year-olds writing apps that are bought by top tech companies for $30MM, month in and month out. (2)

Because we call it "software engineering", but it still isn't engineering at all. (3)

Software development is still a very, very young field. The fundamentals are not properly understood yet. It will still take decades before they are, possibly over a century. We won't be able to put proper education in place before the fundamentals are well-determined.

Agriculture, livestock breeding and cloth making are many millennia old. Architecture, engineering, and the law are 2-3 thousand years old. Book printing and complex music are about 1,000 years old. Dentistry is centuries old. Cinema is over a century old. We know a lot about how to do those properly, and schools are pretty good at teaching the important parts. Software development is less than 50-years-old, and schools are still dismal at figuring out the important parts (practitioners are only so-so most of the time too). That makes it different.

It would be hard to get more misguided advice than what the OP received (pro tip: don't learn vim, Emacs, configure Linux or switch to Dvorak before you can write functional, working code). That doesn't mean teaching yourself is a bad way to learn.

(1) Why can't programmers program, by Jeff Atwood (http://blog.codinghorror.com/why-cant-programmers-program/)

(2) Summly

(3) Just a random sample, but very representative: I developed a software package for building structure calculation about 20 years ago, helping an architect with the software part. There are manuals enumerating the exact steps to follow and excess safety measures to add: assume 50% extra weight, 40% wind-load force with higher percentages for higher structures, twice the amount of iron to be put into the concrete when certain conditions are met, etc... Those manuals are the law. If you are an architect or an engineer, and you follow those rules, two things happen: (1) you are not legally liable, and (2) the building doesn't fall down! Software projects fall down all the time (read: Obamacare). That is engineering, software projects with today's tools and techniques are not. This will happen some day in software. We are not there yet, by far.
เ ђคשє Շ๏ Շгץ Շђเร ๏ยՇ.
In most cases, you use iterators rather than indexing

for x in v.iter_mut() {
// do some work with x
}

or if you need the index

for (i, x) in v.iter_mut().enumerate() {
// do some work with x and i
}

similar to Python's enumerate(). These loops never need to do any bounds-checking, even when compiling without optimization.

In this example the iteration count is a small compile-time constant (5), and the loop body is small, so when compiling with optimizations the loop will be unrolled.
I am not quite sure what you are saying. Is it that it is in fact better to allow HTTP to exist vs providing HTTPS backed by some type of trusted infrastructure? Or is it that you are saying that we can build a brand new from scratch solution and need to fix the existing system somehow?
Chrome reaches 400M active users on mobile
Common mistakes to avoid when creating an Om component. Part 2
Figuring out the business model was tough. We started off with a freemium model and pricing that was a hunch. Now we're doing 30 day free trials and it's much easier to spend time on the right kind of customers.
Even Google News only mostly gets this right: it tries to group stories on the same topic, but sometimes it has multiple buckets for the same topic, and sometimes an unrelated story gets thrown into the wrong bucket.
The unfortunate thing about these examples is that I don't think that they illustrate malfunctioning algorithms. As far as creditors or insurers are concerned, your bringing a claim against a landlord or insurer does indicate that, from the perspective of their bottom lines, you are a higher risk individual. I.e., they would prefer to lend to/rent to/insure a person who is unlikely to bring claims against them, even when she has a right to. That's one of the things that, from a cultural/social/moral perspective, is wrong with this system of risk assessment: it penalizes people for doing things that are entirely within their rights by decoupling risk from fault.

I'm not sure that there is a solution to this other than regulation, though.
Why is it more likely that the data is biased than the algorithm? And isn't picking biased data just as big a problem as having biased algorithms?
Imagine that the American right decides to make, say, ISIS "their issue", which leads the left wing to engage in denialist tactics.

That is, the American left denies ISIS. The refuse to accept such a group exists.

Sure, some people make the claim, but it's all theory (and some Youtube videos), and there are alternative explanations.

In such a case, would you say the problem begins with the American right making it "their" issue?
Automated CAD
Thanks. Can you do that again for a case where the compiler can't see the number of iterations at compile time?
I would have to disagree the evidence is overwhelming. Even climate change scientists acknowledge there is a lot that can't be currently explained.[1]

[1]The real holes in climate science: http://www.nature.com/news/2010/100120/full/463284a.html
Totally agree! You'll often hear my talk about how terrible of a language PHP is, but at the same time, I'm forever grateful for PHP. It was my first language! It was simple, but most important, I made things work! I gained more experience with each little script I wrote until I finally felt comfortable enough to branch out.

Now I spend most of my time in Clojure, Ruby and C++, but, if it wasn't for PHP, I might not have ever felt that itch that led me to pursue a career in software development.
This “binary logs!” thing is approaching FUD-like levels. “The logs” will not be binary. The logs will be where they have always been, in the format they have always been in. Sure, journald has some binary logs of its own, but it puts all the log messages also into the normal syslog daemon, so nothing changes.

As far as I can tell, the whole brouhaha started when there was a bug in the packaging of syslog-ng so it would not start properly after installing systemd. Since syslog-ng was not running, the only logs left were journald’s binary logs, and people assumed that “systemd ate my log files!”. No. It was a bug, the bug was not even in systemd, your log files will always be where you want them.

Unless you uninstall your syslog daemon, but then you are on your own.
No, it's more, 'guy gets multiple death threats[1] because he wishes to make it immensely more difficult for other people to use the program they want to start their computers, and also worsen the stability of the computers of those who use his preferred program.'

[1] Has he gotten death threats, or simply death wishes? There's a big difference between threatening someone's life and, believing him to be a net-negative to the world, being pleased when he dies.
I wonder... what if that's the point? What if mentioning it to an audience containing media members means that it does get out, and therefore they don't have to spend the million bucks?
Why It's So Hard for Millennials to Find a Place to Live and Work
"An idle mind is a devil's workshop". I have seen this over and over again when you give engineers a free run. They micro-optimize things. They start rewriting javascript to c++ and c++ to c and asm when the speed improvements are at best marginal and the cost of maintenance of produced code is extremely high.

Don't get me wrong, I am not saying that these optimizations are bad. In fact, these engineers measure things properly and then rewrite. It's just that there is no business case for all this time spent. It's like writing web servers in C. Sure, it's possibly the faster than everything else but seriously? Who maintains all this.
Need? Fierce debate continues but the global warming “hiatus,” followed by up to 50 different reasons for nature not following the prediction of dramatically increased global temperature provides at least some doubt on the matter. Yes, it may catch up later!

Meanwhile satellite imagery has shown that the Earth has greened very significantly. It's depressing to note that the advantages of this have rarely been heralded.

One has the distinct impression that were some Newton of climatology to publish a paper showing beyond reasonable argument that we do not need to worry be worried at all by the CO2 increase, climatologists and much of the Left (as it happens) would be struck down with misery rather than joy.
who gets to control the thermostat? Some countries would want it hotter... others want it colder.
You can learn to clean teeth without several years of intense schooling, you cannot learn peridontal surgery in that time, nor by "practice", in a reasonable amount of time or without losing a few patients.

What is interesting to me is that we have gone from having computers go from giant obscure machines in room, leased by large corporations, to having them all over the place in your house. There is a gradation of expertise and capability as there are with cars or other complex systems. From 'tinkerer' (usually a hobbyist) to 'mechanic' (who earns money adjusting and fixing) to 'engineer' (who earns money designing from scratch). They also come with different financial liabilities.

And that last bit is something that computers have largely avoided by consistently disclaiming all warranties. When that changes, and programmers (or their employers) are held liable for the incidental or consequential damage caused by their bugs, you will see a much stricter code for hiring and employing people who write code that runs on other people computers.
I get to see quite a few devices on the wild in German trains.

In the southern and eastern European countries, where we traditionally only use pre-paid phones and contracts are out of reach for most pockets, it is easier to spot Android and Windows Phones than iOS devices.

Are the ones using Windows Phones all Microsoft employees and affiliates then?
Toshiba night-time pedestrian detection and 3D reconstruction
Stop pretending Go is going to happen. It won't.

Neither will Dart, btw.
I'd probably flip a coin.
These are called Homoglyphs, right? I remember reading an article about phishing that used these characters to register almost perfect looking domain names.

http://en.wikipedia.org/wiki/Homoglyph
I did something similar at http://yaxero.com
Why was the first book printed in Pittsburgh written in Italian?
The bottom 10% has it hard in any company, let alone netflix. Almost every company I know has stringent rules for the bottom 10% (read: a step by step approach until they get fired). But if you are a decent engineer you have nothing to worry about.
JetBlue to charge for checked bags in new airfare fare class –  Chicago Tribune
The word handbook has a lot different connotations than Manual

You really think so? The former is just an anglicization of the latter. Manus is Latin for hand, and you can still hear this in French main Spanish mano etc.
Heh, that's really interesting! Do you have a link to your work?

> Personally, I don't find Option types in C# all that compelling because the pattern matching mechanism doesn't compel you to handle all cases like F#.

In my library you are compelled. You must provide both a Some and None handler, even on the fluent variant. That was one aspect I absolutely wanted to nail after doing a reasonable amount of F# work recently.

The only exception to that is you can ignore the Some branch, and just handle failure. The Some branch then just uses an identity function behind the scenes. So you're still compelled to deal with the failure case, which is where I feel most of the C# null carnage comes from.
Why Mobile App Development Requires More Than an SOA
As important as it is to have expertise and proficiency in a single skill, I also believe that the more diverse your knowledge base the easier it is to pick up new things when you need to.

But maybe I am just trying to make excuses for myself, maybe if I learn a new language/framework/IDE every month I will get better at learning new languages/frameworks/IDEs.
http://blogs.valvesoftware.com/abrash/down-the-vr-rabbit-hol...
If you are a company that is rarely at fault, then it would be great to be able to separate risk from fault and take the customers that your competition is overcharging.
To elaborate, when Rust says that array access is bounds-checked while iterators aren't, what it means is that iterators are guaranteed not to bounds check, while typical array accesses may or may not be optimized away. With the GP's approach, not only do you need to hardcode the hoisting optimization into the frontend, you need the body of the loop to follow a specific patterns and you need to trust that the compiler will recognize the cases where the optimization can be applied. By avoiding privileged optimizations in the frontend and by giving programmers low-level tools where they need them, Rust empowers library authors to get things done without having to bug the Rust developers themselves to implement them.
One property of Cosmos is that there is no boolean type and relations are themselves booleans (q() would be false in this case). Hence, the code would be rather like this:

rel q()
true
false
...
rel main()
if(q())
...

Indeed, having an 'else' that negates the condition would get tough for complicated conditions. Negation-by-failure and soft-cut ('choose') have their own problems in certain circumstances.

Yeah, it's going to decide that | x = 0 | x = 2 (there is no CLP for strings).
Citadel attackers aim to steal victims’ master passwords
> The quality of the curation, at least for my taste and at least at this moment, is exceptional. Maybe the best algorithmic curation I've seen.

Glad you liked it, thanks!

> There are many algorithmically curated news feeds; why add another? Is it because you believe your algorithm is a leap forward? Elsewhere you say it's mostly the same one used by HN.

There are many attempts at "personalized news". Also some niche "community curated" news (influenced by HN and Reddit). And some mostly algorithmic, like the new Digg and Techmeme. We fit on this third group, and are just experimenting to see what we can come up with quality wise.
Isn't that how PHP was created in the first place? And it just caught liek wildfire ... the rest is history as they say
I had the chart+data on hand: doing that analysis would take a little more work.
Do you plan to offer custom topics or search in the future?
Yes, but unless you're running on embedded, and to be honest to some extent even then unless you're way at the bottom of the power scale, you're running on a supercomputer that will laugh at 200,000 nodes in a DFA, and it's very easy for that DFA to run significantly faster than the presumably several tens of thousands of FAs you're running sequentially otherwise.
iOS and JS Engineers Wanted – Let's Clean Up Telecoms (YC W12)
An equally likely solution - probably more likely, given the historical trends of governments - would be to declare half the population as "undesirables", force them to live a pre-industrial existence (if you allow them to live at all), and double the energy prices for the other half, which I'm sure they'll gladly pay given the alternative.
Your phrasing implies that invoking more control over the code in a project has the potential to lead to more freedom in total. I'd argue that this is ... if not more myopic, at least a more ego-centric view. That is, it implies that the author knows better than everyone else how to maximize total freedom engendered by his efforts, on the basis of how he or she permits them to be used - instead of allowing others the freedom to make their own choices.
Are Your Cache-Control Directives Doing What They Are Supposed to Do?
I understand that. It's a clever and elegant hack and I appreciate it, but ultimately it is not a viable cross-platform desktop app development option, which is, however, what it says on a tin.

That is, I have a problem with the labeling, not the contents.
Yeah, the text could benefit from a brief introduction. Epictetus lived in the first century AD and career options for women were limited, to say the least.
For the past year I've been learning to code in Python. My basic methodology was this;

I had come up with an idea for a niche product - I reckoned at the time that something like this would sell. All I needed to do was to code it up - at the time I had been reading about Python and had tentatively prodded and poked it as I wanted to find out why a lot of my acquaintences were always scoffing at this language... "I friggin' hate whitespace!" seemed to be the number one reason for not bothering with it, which was an instant reason for ME to get to know it as I'm the kind of guy who likes to see what all the fuss is about.

So I had an idea, and I had chosen the language to learn and implement the idea in. That was the easy part. The hard part was to learn enough Python in order to implement it.

I bascially started off with nothing and worked my way up from there by asking "How do I do X with Python?"

I knew in my head what the program should be and what it should look like - "it should be a GUI", for example. I'd already used the Gtk bindings for python, but had gone off Gtk (as I've written before in a post on HN). So I decided to give Qt a try. The answer to that is to either use PyQT or PySide. I decided on PySide as I couldn't afford the PyQt commercial license (I want to sell my application after all, and my budget is next to nothing).

After a while, I was getting used to how Qt Designer works for designing layouts.

Next question was "How do I get the GUI widgets to send signals to my Python code?" followed shortly after by "How do I see signals from dynamically created tab widgets?" - I ended up both asking AND answering my own question on StackOverflow. ( http://stackoverflow.com/questions/17344805/how-to-see-signa...)

And so as the days, weeks, and months progressed, I needed to Do Things. For me it was a matter of asking the How Do I Do That question and researching the answer, then implemented it.

Before I knew it, I was increasingly getting proficient in Python, in Qt, in parsing configuration files using ConfigParser, in loading and saving files, in using QtWebkit in sneaky ways so I can display my company's animated logo using CSS. And so on.

Then I needed a web site. So it took me 4 months to learn enough Django to go implement a basic site. That site and the product I recently launched. ( https://xrdpconfigurator.com ) - that's all done in Python, including the application - which was converted to C via Cython then compiled to object code after that.

[ And now I've learned another important lesson after all that time and effort - no one seems interested in my product - perhaps I should have open sourced it and asked for donations instead ;) Or perhaps I just need to patiently market the thing better. Or perhaps it is just TOO niche! ]
Show HN: New LED LightStripe Compatible with Philips Hue, SmartThings
Hi HN,
I'm one of the guys who wrote the ZigBee Light Link firmware for this wireless ballast. If you have any questions feel free to ask.
What about compared with Java, a language with a proper native compiler?
I write it every day. It's happening for me.
By that logic the app I work on would have a DFA with ~200,000 nodes. That sounds fairly large to me.

That's not very large, since you can store a DFA very compactly in a table (C array with structs). The table stores the transitions, which only have the character and the target state. Then you either keep an array with state offsets in the transition table, or you modify transition tables such that each transition points at the first transition of the target state.
Not everyone digs into the code behind their dependencies.
Firestone and the Warlord
Let's change the example to

pub fn f(v: &mut [u8]) {
let vlen = v.len();
for i in range(0, vlen) {
let x = &mut v[i];
test::black_box(x); // do some work with x
}
}

The output assembly of latest nightly of rustc is:

f::h1371efe4e4343230faa:
cmp rsp, qword ptr fs:[112]
ja .LBB0_2
movabs r10, 16
movabs r11, 0
call __morestack
ret
.LBB0_2:
push rbp
mov rbp, rsp
push rax
mov rax, qword ptr [rdi + 8]
test rax, rax
je .LBB0_5
mov rcx, qword ptr [rdi]
xor edx, edx
lea rsi, qword ptr [rbp - 8]
.LBB0_4:
lea rdi, qword ptr [rcx + rdx]
inc rdx
mov qword ptr [rbp - 8], rdi
cmp rdx, rax
jb .LBB0_4
.LBB0_5:
add rsp, 8
pop rbp
ret
Sure, if that's your view, I'm fine with that. If the people that build the distro-of-choice for me decide that frogurt is the best init system for the distro they want to build, I'll either swallow that or move on to something that uses guaranteed potassium-benzoate-free-frogurt as init, but I'm not going to tell them that they're not allowed to do this. Because they are. You don't have to like it, you don't have to eat it but they're free in their choice just as you are free to build something else.
Why modern music owes a big debt to Japanese video games
Your hypothetical is a good one, and I would answer: yes we should still try to reverse it. Rising seas threaten coastal areas over all the globe. Changes in rainfall patterns will create new deserts (see the current California drought). A warmer earth is an overall negative change. Some places might be better off (permafrost in Canada, Siberia might be farmable) but the net change is negative.

We change the climate in local regions all the time. Dams, coastal walls, etc all change the world to suit our needs. I see no reason the global climate is different.
> Sure the market can deal with it

Sorry, no. Much the costs of burning fossil fuels are externalized and with climate change this is taken to the extreme.

This is what cap-and-trade was supposed to be about, but it seems that for the modern right "market solution" is whatever preserves the status quo.
Reddit Front page is not a Meritocracy…. or is it?
It Took Three Years for People to Find This Arkham City Easter Egg
at this scale, money roughly translates to human lives

It does that at every scale.
Accelerating Rails: Built-in Caching
About 8% right now, with an average sale of a little north of $200 (so it doesn't take many subscribers and sales to hit four-figures a day)