skysight-inc/HackerNews huggingface dataset:
I agree that most complexity in software systems comes from managing state. So here is a simple solution - stop doing it. Stop managing state.

Use the right tools for the job. Most mainstream programming languages are ridiculously inadequate for building any production software of any significant complexity without introducing more problems than you are trying to solve.

Use a mature functional programming language that works with immutable data and is designed for building complex industrial systems.

Use a language that was designed from the beginning with the understanding that your software WILL be full of bugs and errors, yet systems must always continue to run.

Use Erlang.
Who wants to actually own their own bare metal anymore? Why do you want to be tied to this specific server or car, this specific package of molecules?

The SPSD Car[1] will not be something that can be owned by individuals. You can use your smartphone to request a pickup, which will be fulfilled by any of a number of nearby cars. You'll lease a license to be transported in one car, and the app will automatically transfer that license to the car that's fulfilling your trip.

Your Leased License to be Transported in a Car will only apply for the duration of the trip, and gives you no rights or responsibilities to the underlying vehicle.

[1] (Solar Powered Self Driving)
The project has not been updated for quite some time by the original author, but luckily there is a quite active fork on Github (including a public demo):
https://github.com/shaarli/Shaarli
I guess he must have missed this prior art whilst submitting his patent application ...
I think this is a valid approach, in theory.

IE, find some limited use case for a self driving cab service in a city and try to make the problem more like an agricultural field.

OTOH, it would require a city or state to actively pursue this kind of a bleeding edge technology, make decisions and possibly even develop the technology. Maybe there are some municipalities out there with the competence for this, but not many. I'm not as down on government abilities as some on here, but I think you have to admit that making such a technologically innovative, blue sky project a public one seems like a recipe for disaster.

The self driving cars can just develop on the free market. If the cars are good enough to go on normal roads people will buy them. I imagine that if they are prevalent enough, cities will then gradually tailor the infrastructure for them.

Still, there must be someplace where the smarter infrastructure could take some of the hard problems away for self driving cars and get a nice demo going. Some small town, large army base, some specific city hoping routes?
Exactly. For some joinery, a CNC would be handy. But with the pantorouter, I can cut just about any joint a CNC can cut, but without a computer.
I have very simple advice: Get people using your product and ask them what they like/dislike about it. I wouldn't try and compete in the messaging space as it is saturated. In enterprise there is Slack and Hipchat, and in the consumer space there are so many I won't name them. You can stay in communication, but change your product a bit:

> Provide simple encrypted messaging, like GPG but for people who have no desire to manage their own keys/ aren't tech savvy. This could work if you want to stay in enterprise.

> Target things regionally. Maybe you can provide a product that works better in Russia than Slack or use some advantage of knowledge of the culture to make a great product for a specific region.

You really need to be out talking to customers and potential customers. I don't think making a simple messaging app will work in this market, you need to find a competitive advantage. You only find this by knowing it already or talking to customers.

edit: or you could pivot into customer support chat communication.
"[Name] for [Service]" is a popular format in the third-party client world, and it's one that's tolerated by all the big players.

Much older examples include "Plume for Twitter" and "FriendCaster for Facebook". In the case of the former, it was by agreement with Twitter: Plume used to be called Touiteur until Twitter made them change it.

You're seeing it more lately because Google recently changed the Play Store's app naming policy to forbid using the name of an existing service as part of your app's main brand, only allowing a special clause (e.g. "for [Service]") following the main brand. Also, around the same time, reddit changed their API policy to add a similar requirement.

In the long run, it's going to be beneficial for app developers because now they can take their name and use it for apps across multiple services. For example, the developers of Plume could create a "Plume for Facebook" app and so on, so they end up with a whole family of Plume apps, each one for a different social network.
It doesn't seem to compare the minified + gzipped library sizes. That's the most important metric to me. Who still serves comments in JS?
Almost always this is true. But mature code has been iterated over, and some critical places the code has been optimized out of clarity. Nothing helps then but a document - comments are just not enough to explain the crooked road that lead straight to that solution.
A default is a horrible outcome, but "that which can't be paid back won't".

It's been pretty clear for a while now that the debt load for the Greek economy is too great and some sort of bankruptcy(default) is required. The ECB and others have conspired to hide this with the collusion of previous Greek leaders, by heaping on more onerous debt and calling it a bailout.

It will have to end at some point. What's occurred up until now is fraud with the intent that someone further down the road will have to deal with ensuing mess. But it's likely the game of kick the can will continue.
Every time I try to play with Haskell I give up in just a few days. Too much math! Maybe you don't need a PHD, but from my perspective you do need more than an undergraduate in Engineering.

So, what's a good purely functional language that's easier to learn than Haskell. One that I can learn more by hacking about than trying to keep so many things juggling about in my memory all at once?

Ideally one that runs native on Windows and Linux and is suitable for web and business apps? So I might actually end up with something I could put in (light) production.
What to Ask Founders Before Joining an Early Stage Startup
This article's core premise, given in the first sentence, strikes me as a blatant straw man.

Normally I've seen mostly functional programming being sold as a pragmatic solution that merely gives developers some tools that are helpful in certain situations. It's deeply uncharitable to suggest that users of multiparadigm languages are so naive as to believe that the mere presence of paradigm A erases the pitfalls of paradigm B.

I'm also deeply suspicious of any language evangelism that makes a whole lot of noise about the pitfalls of other languages and then implies that one's own favored language has no pitfalls whatsoever. This one just comes down to Occam's razor. Which is more likely: That your favorite language just happens to be the first perfect, wart-free language ever invented, and its relative lack of popularity is just because the rest of the world can't recognize its blinding awesomeness? Or that you've become so attached to your favorite language that your perception of it has become deeply biased?
Okay, if you need to be so detailed you also have to argue keep in mind that some parts are more important than others. Example with the car: If you leave out the head-rest you might sell your car for a few bucks less or have a harder time to get a customer (low importance), but if you have a car without some kind of motor you don't even have a car (high importance).

While there are many things that are important they all have different priorities, though.

All that said I'm also very sceptical that there is one thing you can learn and then you are a the best programmer. You have to learn thousands of things. And sometimes learning a currently low priority thing now might save you hundreds of hours of pain further down the road. So it's really hard to say what you have to learn.
"Typically you have to complete a 3-album deal where the studio owns the recording rights"

Taylor swift has made tons of product and has rights apparently because she does more work on her music than most artists.

https://en.wikipedia.org/wiki/Taylor_Swift#2004.E2.80.9308:_...
The abstractions provided by Java and C++ aren't very good compared to those provided by, say, Haskell and Clojure.

For the most part, design patterns exist merely to fix the lack of a simpler lambda construct in the language. They more often than not add complexity rather than remove it.

The biggest balls of spaghetti code I've ever seen we're always OOP with design patterns. I've seen far more clean C codebases than Java or C++ ones.
There's something to be said for starting with a simplified version of a complex problem. Driving on a road vs. a field is apple and oranges, but I'm sure it was a useful starting point for building road vehicles.
On the other hand, roads are designed for cars. In fields, it's hard for a computer vision system to distinguish between a thicket of brown grass (can easily drive over) or a pipe (will damage you if you try to drive over.) They're different problems, I don't think one is obviously easier than the other. And there are certainly people in fields.
We hope that the .gitlab-ci.yml offers the best combination of the freedom of Jenkins and the reproducibility of Travis CI.
He referenced Peter Lawrey, and the off-heap stuff he does with HFT systems, so presumably it's somewhere along those lines.
Here we go again with the "functional programming will solve all your problems" thing. It won't. Every language has it's inadequacies.
I would complain if it had that limit and was called UNLIMITEDINT, for whatever that's worth.
Google and Twitter = New SEO Opportunities, Eh
We are a long way from that. In a cab, its somebody's job to keep it clean and safe. An auto-car may arrive with dog droppings, vomit, trash in the back seat with slashed upholstery and condom wrappers. How is that going to be managed?
Linux Foundation's Core Infrastructure Initiative Funds Three New Projects
JavaScript will do the same, as will Ruby for floats.
Scheme is not "fully functional". Neither is Common Lisp. No one will say they are mostly imperative either. But they work; before AI winter there were many machines and OS's built on top of them and their immediate predecessors.

If this author's definition of "does not work" means that they can't be used to build operating systems or high level AI programs well...
Reusable (and washable) quality earplugs, those that are a bit cone shaped so that they don't get stuck in your ear. The kind you use at a shooting range.

I would warn not to use them all the time. Let those ears breath. I only use them when I need to focus very hard or when it's very noisy.
That's kind of disturbing. I've been using Messenger for Desktop for a while now, and I thought it was an official Facebook product (just checked again and there's a disclaimer saying it's unofficial, but I don't remember it being there when it launched).

Yeah, while I'm against services going after third-party client developers 99% of the time, this isn't one of them. I hope he gets nailed to the wall for this, because he's creating actual confusion, which is the very purpose of trademark law.
DNS does seem to go through SOCKS to an exit node, which then does the name resolution[1]

Supposedly more attention is to be paid to this in the next major version.

http://tor.stackexchange.com/questions/8/how-does-tor-route-...
I had heard we thought there were no plate tectonics on Venus because it had no water to assist sub-crustal flow.

Are these results accurate? Does it mean Venus has Tectonics ? Does it mean water is not required?

I really don't know much about it I am just a curious armchair geologist.
It seems Crytek sold a Cryengine license (maybe more) for 50-70 million USD to Amazon.

http://www.ign.com/articles/2015/04/06/amazon-dropped-big-bu...
"Just wear headphones" is the new "Just hit delete."
Clever and magic are very often bad.

In ideal code, functionality and all paths of execution flow should be as visible as possible and easy to reason about.

Unnecessary abstraction should be avoided.

Naming should be consistent and sufficiently descriptive.
I hope the open office trend dies soon. I've been to some swanky open offices with awesome perks but there are all designed to keep you in the office. I would not trade any of it for my current setup.
I work from my home office and travel to a nearby coworking space to get an occasional dose of water-cooler level of human interaction.
The concept I was going for wasn't "overpriced" as it was "too much choice". I first experienced it when I reached a point where, when walking into the computer store to buy a replacement PC, I had enough funds to buy any computer in the store. Before that point buying a computer was easier, I took the amount of money I had, read reviews, and then bought the one that best met my needs and stayed in my budget. But without a budget, the number of choices is huge. And to some extent overwhelming. It lead to the worst laptop purchase I ever made (which was a Sony 8 lb monstrosity).

When things cost "a lot" in ones mind, it makes us far more discriminating buyers. That was certainly true when Games were $60 a pop, but not true when they are $1 - $9 each.
Get a second opinion. Maybe they are trying to sell you on expensive hearing aids.

It's also possible you didn't ever have great hearing. (Do you have any "before" audiogram to compare against, from when you were a child?)
My neighbor is very smart with computers and I know for a fact that he is a hacker, don't question it. I have had run ins with him before so I took note of his jp and it matched the up that sent me the Netflix account
transportation might well become a service -> you need a car ? use an uber-like app in order to have one arrive soonish.
That would make that restriction moot.
Snapchat CEO Promises to Make Digital Advertising Better, Not ‘Creepy’
Experiences teaching with AWS/EMR and Spark
Isn't one of those over the ear muffs a lot better?

http://www.amazon.com/Protection-Professional-Folding-Padded...

Judging by how it seems to be the most used in industrial applications.
Very nice,I can see a lot of use cases for this in a professional domain. Good luck
Introducing the Google News Lab
>Did you even read the article?

I did, did you?

>His point was that introducing some functional features to imperative languages do not confer them the safety benefits found in type systems such as Haskell's.

And my point was that I don't want ALL the safety benefits found in type systems such as Haskells. If I would, I would be using Haskell. Or rather, while I might want it, I also want other things more, so I wouldn't sacrifice all of them to get it.

His point was that mostly functional "does not work" which is a BS thing to say, because it's an absolute statement. And his whole article revolves around that absolute, e.g.:

>The idea of "mostly functional programming" is unfeasible. It is impossible to make imperative programming languages safer by only partially removing implicit side effects.

Nope, you can very much make them safer. It might not make them the "safest" it can be, but it can totally make them safer. Even merely substituting for loops with map and fold will eliminate lots of potential bugs.

Heck, you can even make C much safer by just removing pointer arithmetic or just adding a built-in string type. Either of those two things alone would eliminate tons of bugs while the language would remain the imperative thing that it is.
Driving a car is a social exercise. The challenge is making something navigate through human chaos, not make it move.

Even the article itself hints that comparing the two is kind of stupid: "[...]where there are few pesky pedestrians or federal rules to get in the way." and then immediately proceeds laughing at the general population ignorance because farmers did it first.

I remember when I was a child, my father explained to me that depressing the right pedal makes the car go forward, the left one makes it stop and this round thing makes it turn. "WOW! Easy!" I exclaimed, "I know to drive now!" Yeah right.

Elevators are automated. Subways are automated. Even mother fucking planes can fly and land themselves (with the right equipment). Yup those giant flying monsters containing hundreds of human souls got automated before our cars.

But wait, Google is stupid because it didn't do it first.

EDIT: missing sentence
I've had the same experience with pair programming: when done with someone you get along very well with, and with the same goal in mind, one or the other of you might get stuck but rarely both at the same time. (And on those rare occasions, observing that we were both stuck was a good sign to more quickly treat it as a problem requiring deep thought, rather than staring at a screen for a while.)
I'm wondering until when we'll have to wait. That shit man.
It will be managed by whatever company owns the cabs and rents them out. They may subcontract that to car detailing businesses.
Actually it's more like a small subset of Group A intends to kill us all (highly doubtful that they actually have the capability to actually kill us all).

Group B is using the undeniable fact that some factions of Group A intend us harm to claim that all of Group A is responsible for all the the worlds evils. (The deleted post claimed that Islam was responsible for all the human trafficking in the world for example).

Some members of Group B (the despicable Britain First in the UK) have some completely bonkers beliefs that credulous idiots like the op retransmit without apparently giving them a nano seconds critical thought - e.g. "TEH MUSLAMISTS WANT TO MAKE ARE WATER HALAL" or "TEH AVERAGE MUSLAMIC WOMAN HAS XX CHILDREN - THERE TRYING TO BREED US OUT" (spelling mistakes intentional).

So therefore, while I don't disagree the Islam has some serious problems as a religion and an ideology, I reject as bigotry and narrow minded hatred the message that the OP originally posted.
yeah, but if you could delete a post that received 0 upvotes [i.e. nobody values it] and not a single comment then deleting it wouldn't annoy anybody.
For Clojure, I know there has been talk about this. Clojure allows you to insert Type Hints, which allows Clojure to remove reflection in certain cases, which improves both runtime and compile speed. Typed Clojure should be able to insert Type Hints automagically for you since you provide type information anyway, although it doesn't do that today.

For ClojureScript there really isn't any performance optimization to be done, as far as I know. asm.js doesn't really help out high-level functional languages like ClojureScript.
Great takeaway. Debt tends to make 'good little workers'. Stay free my friends!
Verilog and VHDL already simplify hardware design a lot. They seem to have a great learning curve due to the nature of hardware design.

Most people gain a lot of confidence in software development and try to design hardware like they would program a system. And then they complain that Verilog and VHDL is too complex.
>Not to mention, there is no standardized grading system in the US. GPAs are nominally out of 4.0, but some schools pump those numbers by tacking .5 onto honors classes and 1.0 onto AP. At other schools its 1.0 and 2.0. Other schools don't have APs at all, or don't offer a bump for high-level courses. Who is the "better student?" The one who has a 4.43 at a school where there are no APs and honors is a .5 bump, or the student with a 5.28 at a school that offers 19 APs and gives a 2.0 bump? It's ludicrous.

Or, of course, the student who has a 4.0 at a school that doesn't give bumps at all, but took no actual AP classes because that would ruin his/her GPA?
If that is evident, plant another one. :)

@jackreichert: Thanks, I've heard that before, but it's always good to hear again.
Oh, I thought the most important skill in software development would be SCRUM.
Actually, earplugs can be very effective when paired with headphones, I would think... I used them while flying in the military (under a flight helmet) to cut out excess noise while still enabling me to hear essential radio chatter.
Yeah its funny how alumni play the a role in the tech that gets used. I know that there was a lot of Xilinx in use on campus. I didn't do anything with FPGAs outside of the one class so I wondered how much of that was based on technical merit, etc. vs the fact that one of the Xilinx co-founders was a Rose-Hulman Alumn.
Yeah, OK, I just had a quick look, and Scala constructors seem to have almost nothing in common with the design I outline in this blog, other than being, well, constructors. Perhaps you didn't read the linked article?
Yeah, that is cool and lets you get a hand on the job and a feel for what you'd be working on, but it makes me a little wary. Doing work for some employer without getting paid is a red flag. It's not a total klaxon blaring, but it does raise eyebrows.
First, never sacrifice personal satisfaction and happiness for a job. It will never work out well in the end and you will regret it later in life. Jobs come and go (there is very little company loyalty in either direction now a days), family shouldn't.

Second, I will admit to being a douche earlier in my career when managing projects and wanting faster production. What changed it for me was an older engineer who was SLOW; he made no apologies for it and kept pointing out to me that yes, he took more time than many others. But many of them also had to come back 4-5 times to fix issues in the same code while in his the amount of rework was minimal if at all. So my perception was he was slower, but reality was he was faster because in the end he spent fewer man hours on any given problem.

Once I learned that, mostly thanks to him helping show me, I changed how I viewed everyones productivity. His approach was not defensive, not belittling, not condescending and not ego driven. Instead he approached me and said he understood my concerns but thought it would help me to understand the man hours being spent versus just the deadline. Not that the deadlines weren't important, but if you make a deadline and have to rework code constantly for the next 2 weeks to fix preventable errors then did you really meet the deadline?

So your answer out of this, is try to change the perception from your slow, to you spend less man hours (time doing rework) being more productive and writing better code. It won't always work, but frankly if it doesn't that isn't a team or company you want to be apart of. If they value speed over reliability and more man hours over fewer then they will just work people to death and treat them as disposable. One other point, if the team or company is a point, shoot, aim type this argument won't work and they will only value speed not accuracy or reliability. In that case, look for other work or another team within the company that has different values.