skysight-inc/HackerNews huggingface dataset:
I worry more about quality going down than either of those. Companies will amass huge armies of truly awful engineers and it will become a profession of attrition.

Not to mention that we will motivate foreign students to study mostly only STEM and thus deprive ourselves of the diversity of thought and the artistic and critical labor output of foreign workers in non-STEM domains.

Makes me think of Arcade Fire: "One day they will see it's long gone."
Good code isn't obvious that it is good. Bad code is obvious that it is bad. (Its like TV presenters - you notice a bad one, but good ones are the norm, so it just seems "average").

Get a job maintenance programming on someone else's crappy code. Every time you think "WFT!", ask what would have made it easier.

Likewise, if you are working on a long term project that you have written, then a month or two later revisiting the code you should be able to understand the code you wrote quickly. If you don't understand your own code straight away, ask yourself what it would have looked like to make it easier to understand. Refactor it and try to improve it.
Green Bubbles
By "states" they mean Massachusetts. In many states they are all but entirely unenforceable (CA) or only enforceable under very specific circumstances (PA).
Not just the tech industry too. There are plenty of areas of STEM which are totally saturated with smart effective highly educated people and the result is low wages and poor employment outcomes. Just look at chemistry or biology.
This seems to be the original work in question: https://www.researchgate.net/publication/8098564_Reading_Acq...
can you imagine if countries had tried this instead of eugenics?
Caveat Ruby's advances features seem to be designed to make code less readable sometimes.
there is no reason to link to usatoday over the actual post, i move to replace the link

https://www.hillaryclinton.com/briefing/factsheets/2016/06/2...
Today's xkcd is surprisingly relevant:

http://m.xkcd.com/1700/
GET logs end up in all sorts of places. I would not be at all surprised if anyone working at EBay could get access to them. Not to say they should have access to them, but access to the logs is different from access to the server. Log reading permissions have a rightfully lower standard than ssh/deployment permissions.

(But part of what makes it OK to have more people with access to the logs is you don't put things like username/passwords for all of your customers in the logs.)
> And "special snowflake" is a slur used to attack LGBT people 90% of the time.

Got a reference for that?
But how do you understand the market?

Is looking at the company numbers enough, or do you have to look at companies in detail?

Is domain knowledge enough, or do you need to look at corporate culture, people and business plans?

How fast do you need to be, in term of reacting to events?
It is kind of difficult with Trump because he has actually said everything. In a complete system of logic, you will find an argument made in support of every good idea out there (but also, every bad idea out there).

In the case of Trump and tech immigration, he had argued for H1-B/green card reform for skilled workers, as you have said, and against it, see http://www.politifact.com/truth-o-meter/statements/2015/oct/...
Less is more -- Keep the lines of code down to a minimum in a single function/method. Its name should say what it does and it should only do that one thing. Also, you should always look for code to remove/refactor to minimize its function to singular actions.

Avoid complex statements or crazy one liners when it would be better understood by 80% of developers if you just put it in a simple if statement or broke it up into 2-3 lines. Break up algorithms this way with good comments too.

Experiment with small pieces of code before committing to a specific design if you are unsure. I have quite a bit of experience and will still write small test programs all the time to test out an idea before I try it in my main code base. This lets me make sure I got my idea (and implementation) correct in the simplest form before trying to put it into a larger more complex codebase.

Don't start optimizing in places you don't know you have an issue. Write it out like you want first, then optimize later when you find it is an issue.

Don't try to "future proof" your code, no one can predict the future and writing extra code to handle what might happen is basically torture, both to yourself and the person that has to remove it all later cause your assumptions were wrong. Not to mention, this is where I find the most errors in code.

Learn data structures well, and use them properly. It drives me nuts to see how badly people abuse data structures and misunderstand their benefits and drawbacks. But see my last point too.

My personal pet peeve, don't assume the person before you did it wrong or was an idiot until you can prove it. Generally devs do something, even if it is not ideal, for a reason. Be it, business changing requirements at the last minute, or schedule crunch or a lack of domain knowledge. But before you call them an idiot or assume they were wrong, try to figure out what they did and understand why they might have done it. I have seen a lot of code get changed by new comers only to find out it was written that way for a specific use case that they just didn't understand yet. Then shit breaks, people get upset and the whole team gets frustrated.
No amount of technology or code can correct or fix our human predisposition to live in bubbles. Who we choose to follow and listen to or avoid and ignore is a personal choice.

Facebook can't fix it. Twitter can't fix it. Reddit can't fix it. Only an individual can fix it.
It depends on your experience. When you're starting out you want to write as much and as often as you can. Practice solving the same problems using different solutions and adding constraints.

If you're an intermediate developer you need to turn to predicate calculus, logic, and formal mathematics. Learn a specification language and a theorem prover. Learn to think above the code. Learn to identify what the invariants are and then see what you can cut away from your code. Know what pre-and-post conditions must be held strongly and which can be relaxed. Etc.
Yes it was a simplification to explain the main point, which is that it's very very hard to beat the market.
I don't follow you. If, say, browsers used Scheme rather than JS, they wouldn't be any slower. If a CSS-equivalent used s-expressions but was otherwise CSS, that's just syntax.
> So?

So, the point of these programs isn't citizen enrichment. The point is job training.

Consider: philosophy is also intellectually demanding, but I don't see "Philosophy for All" educational initiatives.

I think a lot of people who oppose CS Ed investments are self-interested, but that doesn't mean there aren't genuine problems with government policies that tie themselves too closely to today's labor market.

If we're not careful, "learn to code and you'll have a job" will be tomorrow's equivalent of "get a college degree and you'll have a job".
Buffett is winning 66% to 22%: http://www.cnbc.com/2016/02/16/warren-buffett-slips-but-stil....
IaaS, SaaS, FaaS, Paas, CaaS, geeeeez. We need "Acronym as a Service" already.
Is Nvidia  cheating?
Hello,

I was browsing the new NVIDIA gpus while checking the old ones, and found gtx 970 has 6Gbps "memory speed" on the 1070 comparison page ( http://www.geforce.com/hardware/10series/geforce-gtx-1070 ) , meanwhile gtx 970 has 7Gbps "memory speed" in its dedicated specs page ( http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-970/specifications )
(screenshots for obvious reasons)
http://prnt.sc/bmmq9f
http://prnt.sc/bmmqbr
A simplification to explain the main point, which is that it is very hard to beat the market. Even for professionals.
The situation as I describe it is certainly apt, I'm not calling them out on being "traffic" but it's more like this:

I am dedicated to a project, my sole job is to ensure the continuity and delivery of the product that the project makes.
Part of this is relying on central IT, who do not want to delegate responsibility on certain things (IE; firewalls, networking, authentication, timekeeping, package management services, storage, etc).
Those people are constrained because they are used by every project.

While it's not their fault they're not fully available to me at all times when I need them; being blocked by a firewall for a week is frustrating. It stops me being able to complete tasks for extended periods of time.

So yes, I am trying to move, and they are not moving. It's not their fault but that's the fact as it stands.
Yes, 100% agreed. When I'm giving people options, I want them to treat them as valuable. So I work hard to make them valuable, and for people to understand what they're getting.

But at the end of the day, they could well be worthless, and they will never mean as much to an employee as they do to me. I had to just accept that people would value them at zero. For those interactions, I just had to think of the options as something we were doing so that in case we won big, we'd all feel good about the outcome.
Take a Holiday from Being Human: Thomas Thwaites on Becoming a Goat
2 things to remember.

1) "Fix Copyright" probably means TPP

2) Hillary uses a blackberry because she doesnt know how to use a computer http://www.nytimes.com/2016/05/27/us/politics/hillary-clinto... nor does she password protect her own computer http://dailycaller.com/2016/05/26/shocking-deposition-hillar...
Here's your answer: https://xkcd.com/224/
I hope they pad the requests with some random data, otherwise they are sending encrypted requests with very little entropy.
> the coverage in the 'impartial' BBC has been anything but

Really? What do you have in mind?

Which mainstream sources have been more impartial?
Readable code > cleaver code
I'm interested in walking the quant path. Just how high is the bar? And would there be an equivalent project that would put a prospective quant to the top of the resume pile?
Just because it's your fault, that doesn't mean that you can quickly and easily fix the problem yourself. Amazon has a team of people to keep EFS up and running, and AWS owns the entire storage, server, and network stack. When your own NFS server starts timing out, you may have only a few people to diagnose the problem.
Learn how to type well (>30wpm). Literally everything else is secondary. You don't have to be the fastest or most accurate typist, but not having to look at the keyboard while typing pretty quickly and accurately is foundational.

Not having to use the mouse for common tasks (closing a window, switching applications, etc...) is another core skill.

Everybody else's comments focus on important stuff but I've seen programmers absolutely hobbled by not having these basic skills.
I never understood this well.

For example the case of YouTube mp3 (http://www.youtube-mp3.org/).

In past Google tried to stop YouTube mp3 because of violations to the YouTube Terms of Service, but, if it is true that it only suffices using someone else's trademark in a domain for the owner to shut your domain down, then why did never Google attack it on this side?
Here is a list of top 16 machine learning books aimed at the data scientist (not what you asked but there is a short description with each book). These books are used by universities like Stanford, Caltech, MIT, Harvard, etc.

And just to make sure that you are aware of it, there are lots of opencourseware with lecture notes and videos.

Caltech/Yaser Abu-Mostafa book info + lecture video at https://work.caltech.edu/telecourse.html

Stanford/Andrew Ng for course info see http://cs229.stanford.edu/ for video lectures see https://www.coursera.org/learn/machine-learning
65.67% vs. 21.87% returns so far (net after fees)

http://fortune.com/2016/05/11/warren-buffett-hedge-fund-bet/

Almost impossible for Warren to lose at this point.
AaaS
This makes me want to cry when I think of all the scummy cheating students I went to college with and the way my school refused to deal with their behavior.
I was a Fine Arts major and am now going on 25 years of being a software developer. I feel best when I am making something. I like the creative process a great deal!
Agreed. If I find myself typing a detailed comment past TODO FIX THIS TOMORROW, I refactor. It is rare code should need a comment. Pulling a clever trick to trick the JIT into inlining a function call? Cool add a comment. Just loading junk form a database to show a user? Should not use a comment.
Interesting! How is this different than OpenWhisk?
I've started reporting the worst offenders as spam. One service was e-mailing me once a week. After the 3rd e-mail I vowed never to use their product out of principle. After the 5th I'd had enough of the harassment.
The Internet of Things won't take off until devices can hand Google/Amazon/Apple a list of nouns that respond to a list of verbs. Memorizing these voice commands is as clunky as using a different mobile app for each appliance.

"Turn on the coffee machine when my alarm goes off"

"Turn the stove down in 5 minutes"

"Is the dryer done?"
In freestyle snowboarding, sensors and algorithms check out the tricks
It is a market distortion. It favors the industry that is getting government support, taking away valuable resources from other industries that would do better in a free market.

Practically, HN is pro-engineering, so we likely approve of such moves. Similar subsidies in other industries might not be viewed as favourably.

Personally, I am not against it, because as someone who has many of his peers playing a zero-sum game in mathematical finance, I've seen some of the downsides the top talent being allocated where the free market desires them most.
I have seen Asian students going to some third-level schools here and riding the job market with multi-level consulting scam ladder.

Having an "Elite University Group" based upon research work/ NSF funding, can surely help in determining both, the right university pool and attractive STEM talent.
China orders all mainland app providers to require real names and keep user logs
>> You are not your job.

Very true. I hold the same liberal view as to what people truly are.

An interesting idea just struck me. If a seasoned software developer quits his full-time job to work on a startup of his dream, while taking a part time job at a bar to be able to pay his bills, who is he then? Is he no longer a professional software engineer? Is he now a bar tender? An entrepreneur? What is he truly then during this period?

By the same token, if say an economist has been getting frustrated at his job and starts learning web programming, building simple personal sites for himself and friends, is it insufficient to call him a programmer, even if we would all agree he is only a junior one?

Where do we draw a line?

If someone is serious about a new vocation and invests a lot of time and energy into mastering it, then by all rights he's already in part what he aspires to become.
I last did GPU programming around the transition from just-shaders to gpgpu... And I want to come back. However, I don't want to buy new hardware just yet. In addition to all the study materials posted, can anyone recommend a good hosted GPU setup for experiments? e.g. what kind of EC2/GCE instance would be a cost effective way to [re]learn GPU programming?
> What does "get banned" mean in this context?

I am assuming it refers to https://help.github.com/articles/blocking-a-user-from-your-o...
The gist of their analysis was "since the market always goes up eventually, investing all up front will give you higher average returns but significantly higher variability"
Write a "how this piece of incredibly complicated software works" document for a piece of software you have no idea of the workings.

I have never actually published any, but have done this several times. The process is unlike any other form of writing; you are constantly rewriting all parts to reflect your incremental gains in understanding.

P.S. I believe there is an inversely proportional documentation to complexity rule, where at some point the adequate amount of documentation to describe the complexities becomes unmaintainable. In this case, the code becomes a better descriptor of the code than any amount of documentation ever could.

Examples I've worked with include the go compiler and Scala's slick library.
"Weeks of programming can save hours of planning" is a favorite quote of mine.
> Silicon Valley Bank declining to talk to us about a line of credit since we aren’t VC backed—even though our profitability, cash on hand, and growth are far better than most VC backed startups.

Going from the VC world to bootstrap has been a night and day experience for me at the new gig. It's surprising how hard it is to get credit lines established, even if you are shedding cash.
I suggest reading Steve's post [0] on the touch typing and programmers.

[0]: https://steve-yegge.blogspot.com/2008/09/programmings-dirtie...
I think this perspective really depends on who you are supporting. This is my experience:

1) Actual customers: They want you to fix it. They don't care who's fault it is, they are dependent on you.

2) Internal customers: They want someone to blame. They don't really care that it's down, they just want to point the finger at someone when their report goes out late.
Riding the Remote Wave – Is It Sane?
Is this another point in the bucket for password managers? Harder to leak any timing related information when a browser plugin auto-fills the form...
Bigger Prices Bigger Problems
...and possibly during those 12 months have 12 people try to murder your code, i.e. expand its functionality. If the overall architecture, layout is clear, there is a chance that they will expand, improve your code in the way that you originally intended. If it is messy and unclear, it will get more messy. (I'm currently doing a re-write of a huge project that grew over time, using these principles, trying to learn from what was not so nice in the old codebase)
> fractional shares for one, better execution

Thanks, this is the sort of answer I was looking for. I just added a brokerage account to my Vanguard 401k account, and I will use that for ETFs from now on.
Good catch. In fact, after a quick glance, the original post appears more informative than the usatoday. I 2nd the motion.
Discussion is ongoing @ irc.2600.net #telephreak

Awesome write-up! thanks!!
Yes, drove them out but did not defeat them in context of the war.

The richest nation in the world should not have to convert to a war economy to defeat an enemy ten times smaller. If it could not; then it didn't want to be there in the first place, it didn't want to do what was necessary to win, or their internal politics is screwed up. Possibly more than one of those.
That's not a valid comparison for many applications: if you need POSIX filesystem semantics, it doesn't matter how much S3 costs because it cannot do the job, any more than you'd say S3 costs more than a USB key.
The problem is that good code isn't so obvious that it is good, its just kind of there and understandable (as it should be). Bad code on the other hand is obvious that its bad, as it takes you ages to understand what is going on.
The one I have in mind sent 4 emails in the same week, with a linear increase in bewilderment that I wasn't answering promptly beyond the first two (where I made it clear that I wanted to take my time).
No source needed. She used a non-government issued email server running out of her home. The server wasn't official and didn't meet the standard security requirements of the government.

Top Secret and Classified information was taken and stored on a private server. That right there is illegal, there's no two ways about it. She should be indicted.
"Selfish indulgence"? What game did we make?
Employers want software developers more than other tech roles
I'm usally more worried about having a long term investment, say for 30 years and on the 25th year another 2008 takes place, I might not have 20 years to wait by then.
Right that was my point. You most likely have to load the whole thing into memory, but in the rare case that you can seek directly to the right spot in the file, ECS might have an advantage for you in Lambda.
Not in 1916 but why not in 1890 ?
Currently foreign students have to weigh the possibility that they won't be able to stay against the cost of the program. And nonetheless American programs are absolutely full of foreign nationals and this is especially true of grad programs which gives one an H1-B priority.

If this program gets created universities will absolutely not have to address the inflation of their budgets because it'll be raining out of state tuition payers.

If, on the other hand, universities went back to educating mostly local kids with tax subsidies then they'd have to face a stark reckoning about their mushrooming budgets and we may have to have a national discussion about education funding. None of this sounds good to Hillary Clinton so instead she'll just try to open the sluice gates wider.
Someone made an iPhone app which simulates one of these machines, if anyone is interested in playing around with one:

https://itunes.apple.com/us/app/oramics/id454505541?mt=8
By defining the probability distribution as the historical distribution of one-year returns, you're severely warping the possibility space. Imagine two experiments:

Experiment A: you flip a coin 1000 times. You estimate the probability that the coin flips heads, and use this to estimate the odds of flipping 10 heads in a row.

Experiment B: you flip a coin 10 times. You repeat that experiment 100 times. You use the results of that experiment to estimate the odds of flipping 100 heads in a row (by looking at how many times it occurred, and dividing by 100).

Assuming reasonable results and a fair coin, you'll conclude from experiment A that the probability of a heads flip is around 50%, and that the odds of getting 10 heads in a row are (1/2)^10.

In experiment B, ~90% of the time you'll conclude that it's impossible to flip 10 heads in a row, and ~10% of the time (in the cases where you did flip 10 heads in a row at least once) you'll overestimate the likelihood of doing it again by a factor of 10 (at 1%, instead of the true value, <0.1%).

So when you only look at annual returns, you're effectively looking at an aggregate of 365 daily returns (or 365*6.5 hourly returns).