Stephen Hawking Says We Should Really Be Scared Of Capitalism, Not Robots

Meh, I was always pretty bad at math and have a crappy memory.

People need to realise the most important trait in programming is not intelligence, its tenacity.

Plenty of people give up on programming, not because its too complicated, but because its so god damn tedious.

You need an absolutely insane level of resolve to fix some bugs sometimes. Often the problems don't even involve code.

There was one time I was working on a very large travel content site. One day, out of nowhere, the server started crashing because it ran out of memory.

Well test it out locally. You run a clone of the server app on your machine, it works fine. There are no memory leaks, its using 2 GB of ram, its running perfectly well on your cardboard PC, there should be no reason it shouldn't work on a damn server cluster.

You try and reproduce the problem, you try everything, nothing. You go through the code over and over till you know it like the back of your hand to make sure there isn't any production specific stuff you've missed. Nope.

You've made no progress, have zero information on the nature of the bug and that's one days work.

You then figure its an ops issue, not a coding issue. So you work together with resident ops guy to try and figure out what the problem is. After a couple hours of set up, Ops guy does some testing and flogs a production server in isolation, 30 minutes later, boom! server crashed! eureka! we can reproduce the problem! progress!

At this point its been 1 day and 3 hours and you've just figured out how to reproduce the problem. You haven't even started fixing the bug yet, you don't even know what the problem is. Still you're fucking throwing a damn party just for having made it this far.

Ops guy does a ram check and notices that the server has crashed due to being out of memory, however the maximum ram usage is 1GB and the hardware has 32GB... what?

You try on your local machine again, you adjust the ram limit parameter on the JVM, you flog it with a thousand robots, the app hovers at 2GB, 5GB, 8GB, no crash. You go on the remote again, you adjust the JVM parameters but the app consistently crashes at 1GB with the same error. Huh?

It must be the JVM. You have the latest version of the JVM. You double check with the ops guy that his servers also have the latest version of the JVM. Yep. But just to make sure, he reinstalls the latest JVM. Same issue.

Software defined production environment limits... so it looks like it IS a code issue? Well, back to square one! So you go through the configurations again and again, double and triple checking everywhere, you spend the rest of the day MAKING DAMN WELL SURE, this could 100% possibly not be a problem with the code. But its not the hardware, so it must be the code, but nothing in the code is setting artificial limits... WHAT THE FUCK...

So you pretty much spend the last hour of the day with your face on the desk just waiting for the day to end because you literally have no idea.

The next day, you're thinking, you have this really dreadful feeling. You made a big assumption, the elephant in the room. You were so flustered the day before you managed to ignore one KEY difference between running it on your local server and running it on the remote. Its that during testing, changing the JVM parameters has worked only on your local machine. Changing the JVM parameters on the server seems to have zero effect.

So wait, that can't be right, IT MUST BE THE JVM. You both have the "latest version", you have clarified this statement many times.

...

...Or do you? You check with the ops guy, server has different version. OMG! I THOUGHT YOU SAID YOU HAD THE LATEST VERSION!

Turns out that this company has their own special local repository for security reasons that is out of date. So the ops definition of "latest version" is actually two weeks old.

So your ops guy says fuck the corporation we are gonna bypass normal security and update the JVM from the cloud as opposed to the local repository.

OH LOOK NO MORE RAM CAP! SERVERS FINE!

Not only did that make my last two days a gigantic waste of time. It still leaves a bad taste in my mouth. So what you're saying is? ITS NOBODY'S FAULT AND ACTUALLY IT IS FAULT OF THE PEOPLE BEHIND JAVA? No, not those guys, they can't be that stupid right. They would never let something slip by like hard coded RAM limits in a patch right?

Check out JVM patch notes for the offending patch, "Yeah sorry guys some douche hard coded the JVM to only run up to 1GB of RAM, SORRY GUIZ BUT WE TOTALLY FIXD IT IN THE NEXT UPDATE SO ITS COOL RIGHT".

Yeah so by some random shitty stroke of luck, the companies local repository somehow set their update checkpoint, right at the point where the JVM had a faulty patch that hard coded RAM limits.

Meanwhile I'm in the back room flipping tables. True story.

Now imagine that with the typical Manager breathing down your neck to make sure you're not being lazy because every time he asks about the bugfix you can only answer "I HAVE NO FUCKING IDEA".

Now imagine this many times a month.

I'd take a gym goer who has adhered to a boring as fuck fitness routine and a disgusting diet who can take years of pain and grinding, than a brash kid who can do some math, any day.

/r/Futurology Thread Parent Link - huffingtonpost.com