skysight-inc/HackerNews huggingface dataset:
Like everything else? What was the last time the Golden Gate bridge collapsed? :) Everything else does not include the most of the engineering output. In software faults are more common because of the tools we are using and because there is no life in danger if Twitter is down. On the other hand, we cannot allow a bridge to collapse or an airplane to fall down from the sky because it has a fault. There are several techniques to build reliable systems out of non-reliable parts.
I don't know that it's ever been put so explicitly, but I have seen startups and ex-startups give out very highly compensated positions (over $300k) to people who were spouses, proteges, and children of people on purchasing boards at other companies.

Usually the explicit quid pro quo isn't needed because self-interest is enough to keep the parties in step. In that example, once the kid is given the job, the guy on the purchasing board has an obvious desire to buy at as high a price as possible, since it's not his money.

These are the sorts of issues that would be considered conflicts of interest, and require the decision-makers to recuse themselves, anywhere but Silicon Valley.
Exactly. The punishment needs to fit the crime. This frankly won't do much to stop companies from engaging in this kind of behavior in the future.
For those of us who've never heard of this guy, what did he do, and why is this the number one story on HN right now?
Might be time to remove working on the 787 from my resume. I feel like the poor thing has been one disaster after another in the news.

I can't speak to the quality of the A and B level (most critical) code, but the development process for the C level software I was working on definitely could have used a lot of improvement. Messy code, tests and documentation were an afterthought/checkbox item, etc. The incentives were just wrong.

I think there's a ton of room for process innovation in avionics software development. One thing I wanted to build for a long time was a tool for tracing. In theory, every industry requirement (DO-178B, etc) was supposed to trace to a hight level Software Design Document (SDD) requirement, which was supposed to trace to a Software Requirements Document (SRD) requirement, which would trace to a code function. We maintained all of that BY HAND. It was a huge mess. Perfect example of something that could have been an extremely valuable development tool, but ended up just being a hassle to try and maintain.

Then of course there's language choice. C is king, which isn't necessarily a bad thing, but it's certainly not the safest, even in the restricted forms used in avionics. Sadly, my very first ever project as a programmer was porting an Ada codebase to C for the 787 (off by one errors for days...). It's almost cliche to say nowadays, but I would be really excited to see Rust gain some traction in avionics over the next 20 years or so. Because that's how far behind avionics is. We were using Visual Studio 6 in 2011!
I will take this time to write something I wrote on Steve Jobs death: go get a comprehensive health check today. In our community, we are data driven about everything, except our health and body. I will copy what I wrote 1304 days ago, https://news.ycombinator.com/item?id=3080327

In January 2009 I was Stage 5 chronic kidney disease, in July 2009 I had a kidney transplant.
Looking back there were so many telltale signs that I had over the last six months, which I was ignoring as I was busy building my startup. A regular health check has the potential to catch a problem like this. I now nag each of my friends and family in having an annual health check.

Its the best time you can spend.

This was not the first time I made a mistake like this. When I was a kid, I had trouble seeing my teacher's blackboard. I just kept moving closer to the blackboard. I saw a doctor when I had trouble understanding what the teacher was writing from the first row.

Problems like this creep up on you over years, and they are so gradual you don't realize them.

You wont run your site without a Google Analytics/Pingdom. Dont do it with your life. If you haven't had a health check, get it done today.
Not gonna happen.

We need close to the metal tools for a whole pile of things, and that's not going to change.

If anything, tools to help write C, or find errors, test, etc... are the more likely path.

That said, we could reduce the number of use cases for C now, and not lose too much, but that's not going to be the death of it by any means. More like a rational pruning.
I use this at work, but I still miss a proper Linux terminal.
This is one of a long line of people arguing for or against what's essentially Sapir-Worf—people have been strongly divided on it for a long time. I'm surprised to see that something like this article is getting attention, though. I figured that at this late date you'd have to say something much more compelling/nuanced to be considered as adding to the subject.
This is very well executed, kudos!

At the same time it puts the browser makers to shame.

If it's so relatively easy to make large tables fast with a small javascript hack then why isn't this optimization baked into browsers already?
Is the order of magnitude of lines of code in QNX different from that of linux? At a first approximation, I don't see why it would be.
It's nice but slow and limited, I used it for years until I discovered Babun:

http://babun.github.io/
It's easier and more precise to say something like "run the quantum Monte Carlo code" than "run the quantum Monte Carlo model" or "run the quantum Monte Carlo software."

A quantum Monte Carlo code will of course include a model, but I think people don't want to call it "software" because it's so research-grade and janky. "Program" seems better, but I think that implies that it's a static thing (not in a constant state of development).

The plural "codes" is used because usually a research team has historically implemented a bunch of models into disparate codebases.
The guy simply should not have been in a position to send this PR, that's not populist, it's reality. So you fix the process and you try to salvage what was produced in a way that has the least overhead and the maximum possibility for success.

If you feel like pushing the blame on the employee you can do that but then you risk it happening over and over again, in the end the employee owns the code he produced but the process that put him in that position is 100% a management issue.

The trick is not to either define this is good old low-current class warfare or as stupid or evil managers and virtuous engineers, that's a total strawman. You simply need to apportion your effort there where you can fix what went wrong and to avoid a repetition. Aaron Swartz need not be brought in to it, that has nothing to do with any of this.
yeah ok, but seriously fuck pingdom.
He was the CEO of a huge and successful startup, and husband to Sheryl Sandberg.
What kind of contract is marriage, if the other party can break it and you still have to pay them?
Agreed. I think black tea, in particular, can have like 75% of the caffeine in the same quantity of coffee. See, for example, the table at https://en.wikipedia.org/wiki/Caffeine#Natural_occurrence
The converse of Noether's theorem does not turn out to be true in general. Noether showed that if there is a symmetry in the system then there is a corresponding conservation law. But the existence of a conserved quantity does not (in general) imply the existence of some symmetry in the physical system.

(I should note that there are more careful ways to get something that looks like the converse of Noether's theorem, but the literature is fairly complicated -- you have to distinguish between trivial conservation laws and non-trivial conservation laws. Here's one answer online: http://physics.stackexchange.com/questions/24596/is-the-conv...)
We can either blame the language and change it, or we can blame humans and change them. I think the former is a bit more realistic.
The QnX kernel is very small compared to the Linux kernel.

Small enough that I could-reimplement it in approximately 3500 lines of code + another 850 for the virtual memory management.
The problem with that attitude is that "good quality" sites have their own biases, so in order to escape these biases requires reading material from sites that are not written as well, e.g. sites that are sensationalist. It's just like if you want authentic street food, you will probably have to compromise on cleanliness.
> David Goldberg, one of Silicon Valley’s most high-profile, well-regarded and well-liked entrepreneurs, died suddenly last night of undetermined causes.

http://recode.net/2015/05/02/beloved-silicon-valley-entrepre...
> Can we stop hand-writing parsing code in C please?

I think that tweet is more about using Lex or Yacc instead of hand-coding logic to parse strings.
That article isn't really balanced, and is really one person's (rather uninformed) opinion.

The cochlear implant debate is a bit more nuanced than that, and it is centered around children. One argument is that, often, the child may not be given a choice whether to be implanted. There are long-term considerations: the CI destroys any residual hearing and the capability for hearing aids to work so you can't "roll back" after the surgery, you can't do MRIs ever again, you are supposed to avoid high pressure/high impact activities (scuba diving, tackle football, etc) -- although many deaf people with CIs that disregard this advice. It's also a big commitment that requires years of auditory training to master, especially if you received the implant after the language development phase of childhood -- maybe 5 or 6 years of age.

It does seem the CI's effectiveness is inversely proportional to age of implantation, especially if you are going from zero hearing (with hearing aids) to a CI overnight. The younger you are, your brain has a chance to develop into the CI as it would with normal ears, and those kids are often functionally hearing. Which is totally fine with me, by the way.

Source: Deaf, use sign language, have a CI, although I don't wear it anymore. Me and my friends with CIs are no less a part of deaf culture because of it.
Radiowave – Node.js/JavaScript xmpp server
For those who had to look up the name of his wife like I did: she's the COO @ Facebook
Early Urban Planning: Ancient Mayan City Built on Grid
Pathetic human frailty has nothing to do with the validity of syntax. The machines will do as we say, for the most part.

Don't be an ass, and don't whine about bullshit like extra curly braces and semi-colons. Know your memory map. Get your shit together.
I would have thought that someone on HN would know how to use a search engine.
This is more or less the idea behind the Alcubierre drive [1]. If you have some source of exotic matter that has negative energy density it is possible to construct solutions to Einstein's field equations that permit faster-than-light travel by essentially bending the surrounding spacetime around the spaceship.

[1]: http://en.wikipedia.org/wiki/Alcubierre_drive
Urban Planning in Ancient Central Mexico (2011)
It's obviously not about money, he was trying to say that one should not pass everything off until you are older, because there is always a Chance that you wont get old.
This period there was a monumental shift from a moralistic view of human relations as passions which were largely detested to a view that self-interest, read avarice, could be used to tame the other passions, the problem with the bees is the bees are not human with all the vices and wants that go with our being, so attempting to apply simplistic ideas like that to human governance you will undoubtedly lose resolution.

Regarding a complex system of governance that is required for modern society, voting pre-dates the above shift in conception, but it's use was spurred on by the idea that our self-interest can be used to the keep more dangerous vices in check, the problem with this is that avarice is a vice and if you promote it throughout society as being the main force for taming of humanity, you will inevitably fall under it's wheels, this will probably be seen in rising inequality, where virtues, patience, kindness... are marginalised, for the benefit of this one vice.

I'm sorry I don't have an answer, I do think we have gone a long way down a dead end, I can only hope we have not done exactly the same to pride.
Well, the set theoretic attempt to describe functions isn't a very nice one.

Type theory gives a formal definition closer to the intuitive notion: a function from A to B is a program of type A -> B. I.e., a rule for turning things of type A into things of type B.
I see this a lot in China.

The monolingual people in China that only speak different versions of Chinese have serious difficulty with abstract ideas and concepts because of their language.

Chinese is so outdated and obsolete in so many ways. It has not evolved, yes you could understand today a 4.000 year old writing but at what cost?

It is a socking experience, because as a European I take evolution in languages for granted.

In some ways, Europeans took the Steve Jobs approach of using new tech, outdating the old, even in language, like Carmack saying f&ck you if you wanted to play his games with only a CPU, and then forcing you to buy newer and newer GPUs.

It is hard to read without training things written even 200-400 years ago, but we have powers that Chinese don't have, like using tones for emotions(we used tones for the language 4.000 years ago), flexibility, abstractions.

But you can only see those if you speak multiple languages.
That was my worry: the guy who writes 400 line functions/methods/subs is always gonna do just that when nobody is looking.

I am assuming 2 to 4 years training or education prior to this. If you haven't learned to subdivide long / deeply nested routines into smaller functions with defined inputs and outputs after 2 years, you probably just don't get it, and may never.

That seems harsh, I suppose. But I've been doing this for a living for most of the last 30 years. When I started, I was 2 years into my CS degree. I've met too many code monkeys who might know some new API, but just congenitally cannot organize code to save their lives and write stuff I would not even have written as a 20 year old part timer going to school.

Spend a few weeks to see if the guy can learn. If not, start documenting a "performance improvement plan" (there's a euphemism) so you can get rid of him.
... the reason is mostly legacy. All your libraries are written in fortran. Everyone learned fortran in the past and they don't want to switch.

As an example, I've seen physicists use fortran for parsing and transforming the output of a program. The cluster at our department has an awesomely updated ifort but no python2.7 (I think it has 2.2 or 2.3 or something). C++ isn't used directly either.

But yeah, there should have been fortran and some other languages there.
SmartGift | New York (NYC) | Senior Software Engineer | on-site preferred, but REMOTE for the right person (with occasional travel to NYC)

We're building the next generation of gifting and we're looking for a senior full-stack web engineer to help us.

If you like working fast, building REST APIs that will be used by millions and creating complicated e-commerce systems, we want you. You'll be given responsibility, freedom, challenges, and the chance to determine your workplace. Not to mention, we offer more equity than you could get at most places.

If you think of technical debt like a curse that will come back to haunt your future self, contact me (Matthew Davidson) at matthew at smartgift.it.

If you're looking for a little puzzle to do, write a code snippet (in any language) that converts the word "hiring" into decimal Unicode points and then concatenates their decimal representations back into a string. Use that string as an email address to apply (E.g., the word "hey" would be 104101121@smartgift.it). Be sure to attach the code snippet as well as a cover letter and resume.
Red Dwarf Returns Twice
I still don't see why this is a bad thing. Sure it would be nice if they split the file into multiple source files for maintainability. But, should we also chastise the Linux kernel for having source files that have more than 5K+ LOC that aren't documented nearly to the extent the Android source is?
>> …Which is why I’m so interested in Rust. It’s the one new programming language that might, finally, at last, replace C and C++

Oh, I see ...
The situation is even trickier than that because you can keep on looking up these terms, one after another, but it's going to take a lot more than their particular definitions before things begin 'coming together' for someone. I think this largely comes down to the fact that there's no place people can go to learn what it is mathematics is, what it's about, how it works, etc.—and consequently, what mathematicians are interested in and why they have their particular quirks of formulation, and why certain points (which can seem utterly uninteresting to an outsider) are emphasized. Of course you can get this by doing a math degree (and maybe graduate work), but I'm just trying to describe the difficulty in teaching oneself. At least in the U.S., our exposure to mathematics in formal education (pre-university), gives exactly all of the wrong answers to those questions above, so that when you try to start teaching yourself you never know what direction to search in in order to resolve ambiguities.
He looked otherwise healthy I wonder if it was something related to sleep apnea.

Ryan Davis from Giantbomb also died suddenly while on his honeymoon.

http://www.giantbomb.com/ryan-davis/3040-93335/forums/ryan-d...
Podcasts for Web developers, designers and curious minds
English is my first language, I learnt Dutch (I'm fluent) as an adult. I have the same experience as you: English is extremely context sensitive, it's for "invention" - it's a very natural language.

Dutch is more precise; there's less ambiguity. You have to think a little more before you speak (thanks to the differing subject-object-verb order). I've become a better engineer since learning it.

We're raising our kids bilingual because the benefits are just so clear; and I figure that if they get English/Dutch for free then German is very cheap so they can learn an east-asian language too..
Yes, because the point is being able to write (on a resume): successfully presented thesis on "Evaluation of C, Go, and Rust in the HPC environment".

The advisors should have encouraged a smaller and more manageable scope with a more thorough methodology where the results would actually be worth something.
I have SecureCRT set up with Cygwin running locally. Just customize your bash shell like normal, you get the best of both worlds.
Did you read the article? It agrees with you, and suggests Rust as a best-of-both-worlds option.
I am raising my sons to be multi-lingual (German and English) and it is a wonderful thing indeed to see the mind expansion that occurs on your average code-switch .. especially in very young minds. "Daddy, the erdapfel sind too hot!", and "Das Feur makes me vv-aaaarmm!!" .. ;) Much amusement in such moments.

And socially, I think it sets the kids up a bit as well, because they are quite acclimated to the strange looks from strange people when you switch fluidly, between the languages. There is a huge caché, and the boys seem to be becoming aware of how to spend it.
Steven Pinker has dispelled this notion in his book The Language Instinct.

https://en.wikipedia.org/wiki/The_Language_Instinct
Or we can help the humans improve.
Why not blame the language?

There are plenty of languages available that are objectively more safe than C. Most of the security-critical memory-related bugs that are written in C (and C++) simply could not happen in, say, Java or Haskell.

By contrast, even though it is technically possible to write safe C, it is mind-bogglingly hard. The problem is too difficult to be solved even by automated static analysis, testing and fuzzing.

The reason those safe languages aren't used pretty much always boils down to either a) legacy or b) performance. Rust solves the latter, but the former is nigh intractable.

Simply expecting programmers to be better or more careful is not a viable solution. The aviation industry knows this - problems can almost always be attributed to a systemic cause, not the one-off mistake of an individual. Problems are fixed by making those mistakes impossible, not by reminding people not to do that, crossing your fingers and hoping for the best.

This attitude is spreading to other industries - primarily healthcare[1]. In the light of the ever-growing digital security threat, I think we should be making the same kind of efforts in software engineering.

C has its niche, but I think it is important to recognise that it has its tradeoffs. We should be trying to make things better.

[1] http://www.amednews.com/article/20100614/profession/30614994...
Who writes this crap?
Tolq.com | Amsterdam / The Hague, Netherlands | Developer, Frontender

Tolq.com is a young, fast growing startup, working hard on making translation of websites as easy as a couple of clicks.

Our solution is a javascript snippet placed in a website. After the client places an order via our platform, they are served with a translation by professional translators. We provide both the interface for the client as for the translators.

Our backend is mostly written in Rails frontend by React. We also have some Node parts lingering around, some Clojure and generally, we're very open to trying new things.

We are a easygoing, flexible startup. We value autonomous, creative work where you grow with the company. You can work from anywhere as long as you enjoy what you do and love creating beautiful code.

See http://www.tolq.com/jobs for full details and contact information.
Is btrfs really the right choice for this? Even their own faq lists it as still being experimental, and if this becomes as ubiquitous as systemd (which is likely if it's bundled with systemd) we'll really want a stable and performant file system.
Delayed Gratification comes to my mind but it's a printed magazine.

http://www.slow-journalism.com/
I don't know, there are some tradeoffs there. Their sample appears to be "nearly JSON", which doesn't seem too helpful. Being close to but noncompliant with a standard doesn't bring anything but confusion.

And it isn't obvious what they're using for transport, but it seems like they aren't attempting to model programmatic resources as web resources the way that OData does. This is an okay decision if they're trying to make it transport-neutral (i.e. you can issue the same GraphQL request via Thrift or by HTTP POST), but in that direction lies the sins of SOAP.

In the past I've written a client-side caching layer for OData which was capable of doing the same automatic batching and partial cache fulfillment for hierarchical queries that they describe in the article. It is a good tool for writing complex client applications against generalized data services without giving up performance, and I'm not surprised that companies in our post-browser world are starting to move in that direction.

I'm a little bummed that Facebook is throwing its considerable weight behind yet another piece of NIH-ware, though. Beating up the REST strawman was a poor use of half of this article; I'd be much more interested to hear why we need GraphQL when there exists a standard like OData.