skysight-inc/HackerNews huggingface dataset:
The reason people burn out on open source
> It's not like employers are keen on training anywhere else in the US either.

Although I do not live in the US, I gather that like many countries I have lived in is the view is that training is no longer such a large responsibility of the employer and is rather costly.

However in my travels and work in Asia, there is a concept of bonding in many countries where an employee is offered a job and training and in return agrees to work for a company for X amount of time or pays the employer. This reduces the overhead in regards to the cost of training.
A recent translation by Clive James has been much praised. As someone who has not read Dante's classic yet, the James version might be the one I read.

http://www.clivejames.com/poetry/divine
>>> when a new technology is introduced, one is _immediately_ required to know about it before getting a job where that technology will be used.

Well Said. I too am in a similar position you have explained. I have a Computer Science college degree (graduated in November) and I have been applying to junior/graduate level jobs that have inflated expectations of what a regular graduate should know (especially technologies).

All these claims of tech worker shortages recruiters talk about is hard to believe. I think there is a communication breakdown with companies and education centers breakdowns when it comes recruitment.
As I go from normal Go style to idiomatic Go style, I find more error checks. That is annoying when your code grows.

http://talks.golang.org/2014/readability.slide#11

In this example, have to check error 3 times to write 4 lines of code.
Hm, I'd like to know the answer to that question too.
Not parent, but I've sat though way too many interviews where the candidate failed the "FizzBuzz" test, either through super convoluted code that barely works or with complete failure to produce the expected results.

And that is while sitting at a desktop computer, full internet access and no one eyeing behind them.
I'm on Chrome on Mac and it's not entirely obvious how to navigate these slides. Going to the link only shows me the first 3 slides by scrolling right.

Playing around a bit, I discovered that the arrow keys bring you to the next slides. Perhaps there could be a way to make that more obvious, or provide buttons onscreen.
Since he was talking about slow connections, and I have seen YouTube issues on slow connections, here are two main issues:

1. The bandwidth switching is really messed up. When I'm playing something and it has buffered, let's say another 10 seconds and then quality of connection goes down, player will not switch quality after playing those 10 buffered settings. Instead, it discards all buffered data and fetches lower quality video again.

2. On iOS, video just gets stuck on low resolution. Picture will freeze, audio may stop or keep going and position indicator loops between 4-5 second interval. It will move forward 5 seconds, move back to the point it froze, repeat.
> At one time, a college degree and a demonstrable grasp of computing technology was all one needed.

Yep, and that turned out to be a fucking disaster. So we learned how to filter for programming skills, and the results were utterly depressing. The vast majority of those "engineers who are unable to find work" couldn't code their way out of a paper bag.

That applies to the majority of applicants unless we start filtering for actual proven experience. Trying to find someone inexperienced who's worth investing in training is a truly depressing exercise most smaller companies really can't afford.

Is it really that much to ask that an unemployed engineer who wants a job coding in language X makes a bit of an effort to learn the language by themselves? Employers really don't expect 'paid' experience in something that's brand new, but what they do expect is self-motivation. If you're only willing to learn X when your boss tells you, you're either going to be a pain to work with or you're covering up for your lack of skill.

You only learn a language really well over years. That's your paid on-the-job-training. All most hiring managers look for is some sign of skill and motivation.

Not to mention the reality that the "cult of new", as we see it on HN and in the start-up scene really fucks over most non-startup employers. Most developers don't stick with any company for more than two or three years because they want green field projects in the latest sexy language and framework, not maintain "boring legacy code" (we're talking code no more than two years old...) in a stack that's just been declared harmful, crap or whatever by the HN hipster engineering in-crowd.

So you train someone, invest time in someone, allow them to learn from costly mistakes on real world projects, and just when they are at the peek of their knowledge and productivity, they fuck off again. Regardless of how well they get paid and treated.

We bitch a lot about employers not investing in training, but the flip side is that we have actively contributed to a culture of zero loyalty.

As far as I can tell, there is a real scarcity of actually talented engineers, but employees and employers are stuck in some destructive loop that just makes the problem a thousand times worse.
Financial Times: Best Books of 2014
Innovation: The Attacker’s Advantage
The last update on the News page[0] is dated "June 13, 2011", so it seems not. A shame, it's such an interesting project.

[0] http://www.nablaman.com/relay/progress.php
"I know lots of engineers who are unable to find work."

I don't. Probably your definition of "engineer" is different from mine.

"Another problem is that us engineers are expected to have real-world, paid experience in whatever technology the hiring company uses"

Generalization and obviously not true. I have a company, I don't care about paid experience, in fact we hired lots of people from open source projects, or directly from University with no experience at all.

"At one time, a college degree and a demonstrable grasp of computing technology was all one needed. Companies were happy to train. No longer."

During the dotcom bubble anyone that could click a button was hired. But it was a bubble.

The better demonstration of grasping computing technology is actually having done something with a computer.

When computers filled a room it was impossible for people to code on their own. Now you could find people with college degree AND experience writing software for others or for their own.

"yet one cannot get a job writing Swift code, unless one already has PAID Swift experience on one's resume."

This is your belief not reality.

"It's not enough to just read a book."

Of course. Programming is not about reading books. The better programmer is not the one who reads the most books.

In fact, I consider books obsolete. Everybody in my company has free Lynda accounts.
Being someone who wants to build something like this: there are plenty of uses that can build on top of text that is readable or meaningful. If you can get a computer to have a random conversation with itself, then that is very interesting.
Looking down on a right-handed spiral stair case you have to go counter-clockwise to go down, or clockwise to go up.

Rotating the spiral along it's axis changes nothing.

Rotating the spiral 180 deg around any axis perpendicular to its own, will not change the above.

Only when you reflect the spiral does it change handedness.
Do you have any idea why Facebook would rather develop a TCP/IP Stack for Linux to match FreeBSD's, instead of further evolving FreeBSD's stack? Licensing issues?
When GAE launched they were only charging for the actual CPU time used by the application. There was no static monthly fees on running your app on GAE.

If you are not getting money when the app is not performing tasks, you need to minimize the costs related to that state. Two ways to minimize the costs: 1)put as many apps as possible to singe machine 2)implement a fast mechanism for loading/unloading the apps based on demand.

Xen like virtualization is not best choice for this purpose. Virtual machines have overhead which limits on how many of those you can put on one server. Even if the app running on VM does nothing, you still have the overhead. Also starting up the VM takes time so reacting to demand is slower. At least the original GAE would quite often shutdown the application completely and only start it when a new web request came in.
> Linux cant cope with that amount of traffic

I like FreeBSD but I don't think we can say that Linux can't cope with that amount of traffic while Google and Facebook use Linux. There is a missing piece here that's not about network traffic.
Netflix is the other FreeBSD based service that many people dont know about. While the control plane is the much hyped Linux on AWS stuff, the actual streams are FreeBSD boxes in ISPs[1].

[1] https://openconnect.itp.netflix.com/software/index.html
This doesn't sound like the Asia that I live in.
MasterCard vs. BitCoin
Why is it that there either has to be a shortage or abundance or tech workers? I think as of now the stream of Tech workers is adequately filling seats.

Tech is one of those fields that ends up a lot like dating. You know there's people out there that could re-write your whole system overnight--the "rockstars". Because of this I get the feeling that people are turning down tons of job applications just because they feel the applicants aren't "rockstar-y" enough.

I think the experience mentioned here also holds true. Companies want people that can get the ball rolling, but also underestimate how much training can help. At my current company, I'm probably at a training, that is beneficial to myself, at least once a week. I know I'm an outlier, but tying this all together, I think hiring managers are to the point where they're expecting too much from applicants, while undershooting the ability of even the mediocre applicants.
This can be both good and bad. Two examples: The Rust standard library has/had lots of awkward bits, from when certain language features didn't yet exist, or before there was a convergence on how to accomplish something idiomatically. The Ruby standard library has tons of Ruby code in it that's 20 years old, that nobody has touched for various reasons. I certainly wouldn't write Ruby in the same way.
How could licensing issues be a problem?

I think people prefer a monoculture, even though the security idea of having multiple software stacks is appealing, thoroughly testing issues on two OS stacks is a lot more work, especially at Facebook scale.

Presumably they are tied into Linux for a lot of their internal infrastructure.
I was focusing on it because that was the example you provided. I asked for examples of illegality and you gave me Jewel v. NSA, where the EFF is claiming unconstitutional bulk search and seizure based on a technicality in their definition of collection (ironic given the number of people who mock the NSA for the same, citing the EFF as their source). There is no general warrant issue with the 702 program as it targets specific non-US persons. If you want to argue about general warrants and bulk collection, you'd be better off discussing the Section 215 cell phone metadata program, which is entirely different legal mess.

You claim that the NSA is legally prohibited from collecting on any domestic network connection, but the 4th Amendment protects people, not network connections. There was never any 4th Amendment issue with spying on foreigners before because, being outside US jurisdiction, they don't have 4th Amendment rights - thus no warrant requirement. A warrant is absolutely required to gather the communications of an American citizen.

You say that the law can be amended, and I would counter that by saying that it already was amended - FISA Section 702 is specifically written to target non-US persons using US telecommunications infrastructure to communicate.
Yes. The use of the dovetail joint metaphor stood out particularly.
no, unfortunately I don't think he ever finished it. Though as he notes Zuse built complete relay computers in the early 1940s (using discarded telephone switching relays!). It's interesting that this development in computing has kind of been overlooked (I'd guess because it took place in 1940s Germany).

I came across his work again as I was putting together a relay based oscillator this weekend [1]. I wonder if I have enough relays to put together a half adder. :)

[1] http://41j.com/blog/2014/12/electromechanical-oscillator/
Without wishing to be insensitive, in my dreams, I can occasionally fly. That is absolutely not evidence that I can fly.
I think it is amount of traffic per server. WhatsApp didnt have a lot of servers and maybe reengineering for massive scale out on Linux doesnt make sense versus staying with what works.
FYI this is from the guy who makes Redis.
It's important to be aware that the original has a very intricate rhyming structure that is never preserved in the translations.
There is no shortage of work. There is a drought of talented engineers though. Most of them are terrible.
Your comment reads like something I might have written myself, down to the concern about the heat death of the universe. However, I have had one additional thought. Have you considered a scenario in which our universe may be virtualised?

“Being saved” could quite literally mean having the pattern of our existence stored outside the universe. “Omniscience” is simplified when you can pause a virtual machine to inspect its memory. And maybe, just maybe, there could be a way to escape the VM.
We Ruby programmers also obsess over style, especially with regards to tests. There's even a full, printed book about it: "Eloquent Ruby."
The differences between American and Soviet space shuttles
I'm not sure I understand, what is there to see in this link?

Is there some underlying message to all this? Oh well, the issue was handled poorly or maybe the guy just went too far with this accusations, so what?

How'd this get to the front page?:O
Yes, of course, and Whatsapp users care very much about what's going on behind the scenes ;-) I'm not a mainframe user because I book flights, or a Windows user because i tried Bing.
Where's the gopher?! Idiomatic Golang presentations should include a non-broken link to the gopher.
Practically all ancient people believed in nature spirits, and several disconnected tribes have worshiped the sun. The majority of ancient peoples enjoyed slavery and showed overt racism, sexism and caste systems that caused unnecessary suffering and hardship.

It is said that Aristotle believed that women had fewer teeth than men. He never thought to check by counting them.

If this is your standard of evidence, then your standard of evidence as a way of differentiating any objective truth is useless.
I would rather guess it is for consistency reasons. People are more familiar with Linux than FreeBSD.

Similarly one of the reasons Facebook relies on PHP is because a lot of developers are familiar with it.
The story of pgAdmin and a announcement of pgAdmin 4
By the way... what is the raison d'etre of this gem? I just don't get why anyone think it's a good idea to replace a character with an image.
It's like to replace all "e" characters in this comment with a .png congaing a fancy custom "e"...
Cryptanalysis requires years of study and practical work. One determines whether or not a cipher is secure by applying rigorous analysis based on that study and work, by attempting all known attacks, and by reviewing the design itself to ensure that it has been conceived to be secure against all known attacks - other than brute force - then reviewing the implementation.

The most telling line in this article is I'm still a student. Those are information I've gathered and this is my understanding of it. Do not draw conclusions from this article, these are basically the initial notes of someone new to the field.

I'd invite this person to investigate in detail the histories of SHA-3 and of AES, at least as far as the getting to the last few candidate algorithms. Those histories contain considerable information about what was wrong with previous digests and symmetric algorithms and about the state of the art in cryptanalysis prior to and during the development of these algorithms, and suggests promising areas for future research.

How do tell if an cipher is secure? We work very, very hard to break it, using every trick we know, theoretical and practical. Then we invent new ones. Eventually, we develop criteria for a risk management decision: How likely is it that we did everything we could, that the cipher is as good as it appears to be?

Then we wait.
Is it legal to reverse the CPU to figure out those things? According to Intel, it’s not

According to the basic law, it should be (DMCA and others notwithstanding):

http://en.wikipedia.org/wiki/Semiconductor_Chip_Protection_A...

However, you're unlikely to be able to make any significant progress in a reasonable amount of time due to the overwhelming complexity of a modern x86 CPU. The fact that there are many hidden/undocumented MSRs (Google 9C5A203A for some nice links) makes it all the more difficult.

AMD microcode used to be unsigned, and it was possible to induce some... odd behaviour with it: http://www.securiteam.com/securityreviews/5FP0M1PDFO.html

(Interestingly enough, no one at the time thought to hit it with a fuzzer and see what could really be done... or if anyone did, they didn't tell. Also, I remember a far more detailed version of this article was on the 'net around a decade ago, but Google seems unable to find it, just like how information on AMD's hidden MSRs was far easier to find a few years ago..)
There's a wide spectrum between copy+paste no-hopers and people with a PhD from MIT who know Knuth and SICP backwards.

I would rather employ a self-taught developer with some experience and pragmatism born out of real-world experience than I would someone with impeccable academic credentials.

Forgive me if I sound touchy but I'm self-taught, my knowledge of algorithms is extremely patchy - but I think I'm a competent developer in the domains to which I apply myself.
>Then what will?

So you assume that TV (80% crap), movies (pure entertainment, excluding documentaries, which are also mostly crap anyway), books (60% crap) and articles (90% assholes with opinions) are the only possible sources of information? Do you really think there's nothing conspicuously missing from there? Here's a hint: it's the origin of all the above and can provide more than all of them combined.
There's a few out there.

https://www.google.com/search?q=warthog+boneyard&source=lnms...
The reason I stopped being the maintainer on a popular jQuery library was the wave after wave of incompetent folks asking me to do their work for them. I don't mean mere API questions, or asking things around how the plugin works or does what it does. These were entire "Integrate this for me" questions. People unwilling to do the bare minimum of work. No matter how many examples or how much documentation, these folks flat out wouldn't do their own work. Beyond that, most of these weren't being asked by some 12-year old learning to code, these people would link to their commercial site and expect me to "Give them teh codez"

In retrospect, I should have taken the hard-line approach and directed everyone to StackOverflow and limit GitHub to an issue tracker. When it came to assholes making asshole comments and requests, I had no problem telling them to stick their overbearing request where the sun doesn't shine. Of course those folks were few and far in between.
Sweating the Small Stuff
Mostly because a lot of browsers do not support emojis at all, and they’ve become pretty ubiquitous.
someone wanted to launch the hivemind against the bug reporter because he was not deferential enough.

The irony being that the victim is a member of Ember.js who is bullying the rest of open source on twitter while touting how they are saving Africa from a Portland coffee shop.
Thanks for sharing I was suspecting something like this..oh welp, those alluring glowing computer screens they surely are distracting.
This paper is old news in the municipal and university parking circles. Most of the ideas in it have already successfully been applied in most medium to large municipalities and almost no university over 5,000 students offers free parking anymore.

Parking is one of the largest sources of revenue for universities, and is a substantial source for municipalities as well. A well researched, well-priced parking plan encourages reasonable use of parking and can actually lower costs for parkers (the parking industry's analog to users).
I guess this is the smartest tax haven that went live.
It doesn't ignore that; in fact, it recognizes it by saying that this benefit confers economic value on that parking space, and that charging a fair price for that parking will ensure it is used efficiently.

Also, you may be more likely to spend money, but that's anecdotal. Lots of people don't own cars (myself included) and excessive parking dissuades me from patronizing a business because it correlates to difficult access.
Human-Agent Collectives – symbiotic interleaving of humans and computers
What is the key differentiator for Instacart?
Instacart promises 1-3 hour delivery which seems to be its key differentiator. However some times we don't see available delivery times through out the day(For eg: Sundays.) Why should the consumer pay a premium in this case? How can this problem be solved by Instacart?
Go's error handling works well in small programs but there's a couple of issues.

One is that it quickly becomes hard to find out where errors really came from. Consider this idiomatic code:

func MyFunc(input int) (output int, err error) {
if output, err = someOtherFuncA(input); err != nil {
return
}
if output, err = someOtherFuncB(output); err != nil {
return
}
// ...
}

If MyFunc returns an error it's not possible to know where it came from unless you know all about someOtherFuncA and someOtherFuncB and they return different kind of errors.
What's missing from the stdlib is a utility that wraps errors to reproduce what's essentially a backtrace. `return wrapError("someOtherFuncA", err)`

The other issue is that (error) doesn't tell you what kind of errors are going to be returned. It's often useful to be able to classify errors as to respond to them accordingly. IO errors might be retryable but data-structure errors might be not. In the stdlib they use value comparison as a trick to classify errors combined with documentation of what exactly will be returned.
Even adding a large dram using a different die is quite cheap. there's a $2 feature phone chip with CPU + 8MB dram die.

And integrating 2 dies in general isn't that expensive ,I've see small micros integrated with a power die for $1.5 .

Its mostly about business and politics like the parent says.
Try looking at it from an employer perspective. The fact that you have a CS degree tells me absolutely nothing about your engineering talent.

So hiring you on that basis alone would be gamble, and the odds for that gamble are hysterically bad. They have better odds taking a year's junior developer salary straight to the casino.

The number of people claiming to be able to do the job is a multitude of those actually able to do the job.

If you are actually "in a similar position", it should take you less than two months to get out of that position. Teach yourself a stack that is in demand, build a project and put it out there (Github, App store, whatever) and if you show any talent and skill the odds are you'll be hired within a month.

Just waving your CS degree around isn't going to make anything happen.

Fuck it, you've just graduated in November, you have no proven skills and you're already whining about not getting hired?
So you are saying that many people failed to type "FizzBuzz code" in Google? I do not really buy that.
I think it's the entitled aspect of some open source users this is demonstrating.

They expect everything to be the way they want it. they want all opensourced stuff to be polished, supported and free, without wanting to help out or chiping in.