skysight-inc/HackerNews huggingface dataset:
Isn't that like $25k to get started? Maybe they figure (correctly or not) that people spending that much aren't pirates. I wouldn't be surprised if the movies are watermarked as well.
St. Francis Dam collapse left a trail of death and destruction
The classic examples...

Person > Employee > Manager

Shape > Rectangle, Circle

Object > anything

Product > Book, TV

I think these are good examples where inheritance makes lot of sense. There is commonality between things and there is specialization (overrides) or definitions (abstract methods). It's wrong to say that the concept of inheritance is evil. Like pretty much everything, it can be severely abused (very deep hierarchies, multiple on inheritence etc). The classic example of OOP abuse is probably things like MFC library.
This article is interesting, but it perpetuates a generally positive impression of Amish life.

It's important to know that the Amish community is extremely conservative. In general, it does not have the protections that most Americans have put in place for their children (working conditions, etc.). Women in general are also very poorly treated, and lack many of the rights that we as Americans believe they should enjoy (like being equal to their male counterparts).

The response by the community to anyone who disagrees is expulsion.

http://fourhourworkweek.com/2008/07/15/escaping-the-amish-pa...
http://serendip.brynmawr.edu/exchange/node/3348
I feel like this article attacks a strawman.
Obviously there are going to be times when <feature> is not the right tool for the job, in that case you don't universally bash <feature> you simply don't use <feature>.

The problems with inheritance in this article seems largely fabricated to make it look bad, while in reality (IMO) it's a very elegant and useful tool in any programmer's toolbox.
> Are people so desperate to see a movie they can't wait for it to reach Netflix or Amazon for "free", or pay $20 to own it on Bluray? I'm skeptical.

Plenty of movies I want to see will never see Amazon or Netflix (Where can I stream The Avengers?), and plenty of people have no interest in cluttering up their house or apartment with BlueRay copies of movies they only want to see once.
I think the reason functional programmers like short, terse names is because they need to see the structure of the code more than the individual identifiers. More verbosity makes it hard to get a picture of whats going on locally. Pattern Matching and Recursion creates structures that are easier to understand if it fits on the screen.
If I were making a good deal more than my peer what do I gain by being fair and honest. What makes it fair? Why shouldn't I make more or less by the skill of negotiation?

I've not yet read a reason for the top paid people to talk about their salary. It seems they would have more to risk than gain and it would hurt them in the next negotiation.

Not having spoken about my salary I've got no idea if I make more or less. It only matters if I am happy or not.
It is cynical, but it's also some well-founded cynicism, given that people do such wild things for the Likes.
That's true but far more than 1% of employees are employed by publicly traded companies. Most of the 27 million businesses have no employees at all--there are only around 5 million businesses with employees.
Others have cited the Phoenix example of 2M.

We sort of take it for granted that you will have to rebuild your architecture once you hit that point. What you gain for that is a platform where you can be productive and iterate quickly.

What the Phoenix example shows is that without a huge loss of productivity up front, you can put off the rewrite much longer.

Presumably, Go would provide similar benefits.
I don't know much about the old dictatorship. I do know this story is told about many dictatorships.

In the others, the reality is that the dictatorship is even more corrupt but because there is no freedom of the press, nobody reports it and the dictator publishes their propaganda about how clean they are and how they are jailing people for corruption, when really they are jailing their opponents (like President Xi in China today). Who would have dared to report about corruption by the original President Park, or to defend his opponents?

Democracy produces the least corrupt governments in the world. One big reason is that people are free to report it, the leader can hose their job in the next election, and an indepedent judiciary can convict the leaders friends (and protect their enemies). The corruption is there in any government or human institution; if we aren't reading about it, that's when we have a problem.

Democracies also produce the most economically and technologically advanced economies and societies - look at any list; democracies dominate it. The 'strong leadership' approach, for all its appeal to some, doesn't deliver the goods. For all the chaos, giving input to millions rather than to just one person produces much better results.
Is this just a true Scotsman fallacy?
Swift alone gets this right:

It uses error values like in Go, but you must prefix any function which can throw with a try statement or it fails with a compile time error. That way you never forget to handle it, but it's not really an exception either.
"better solution" is subjective though.
Many, many programmers don't really understand inheritance, and that fact is terrible. Many who don't understand inheritance think they do, and therefore believe that their bad designs are characteristic of all designs, and that misunderstanding is terrible. Terrible inheritance is terrible. Good inheritance is good.

To enjoy good inheritance, first learn to think in layers of abstraction. If this is hard for you (it's not easy for anyone), either train yourself to do it or don't use inheritance—but then don't criticize inheritance for your own shortcomings.

Second, make each class properly express its proper abstraction. Abstract things like "items" should be very abstract. They might have a price but have no idea how price is calculated. More concrete things like books and movies should have more concreteness, but no more than necessary. Often, "deep" layers of abstraction really are little more than interfaces. All the major languages have ways of expressing interfaces as distinct from classes as such, but there is no distinction between them at heart: an "interface" is just a very abstract class; that is, it offers methods without (or with few) implementations. Whether you use "interfaces" or "protocols" or "abstract classes", your language probably offers ways of expressing "lots of abstraction" as well as ways of expressing "more concreteness". Think in layers of abstraction and then use all the tools available to express that thinking directly.

When requirements, or insights into the design should work, change, then naturally anything can change, from interfaces to detailed implementations. No tool, language, or technique will prevent change, but a clear mental model of what is being expressed and code that succinctly and directly expresses that mental model is your best basis for coping with change.

Don't blame inheritance. Don't, for crying out loud, praise interfaces when they are simply a purified form of abstract inheritance. Learn to use the tools that have served millions of programmers well for twenty or thirty years and then the tools won't seem so dangerous and strange. Or, if the tools really just don't suit your way of thinking, don't use them; use other tools; but either way don't blame the tools.
The main difference (to me) is that other groups use genetic testing to prevent diseases in their children. For example, Ashkenazi Jews use genetic testing to avoid having children with Tay-Sachs.[1] But the Amish's luddism causes them to reject these tests, ensuring that some of their children will needlessly suffer and die.

1. https://en.wikipedia.org/wiki/Tay%E2%80%93Sachs_disease
The Avengers has been on steady rotation on TBS (or maybe it's FX, one of those channels...) for years now. I think I've watched it at least a dozen times, without even trying.
Yes, there was much more patriotic (for better of worse) leadership at the helm of a lot of the corporations (also: the stories of Skunk Works delivering under budget). However, everything I've read about Groves also indicated that he was an amazingly proficient administrator for a very complex project.
For some movies the audio visual experience at the theater is key but for many movies it doesn't provide a huge increase to the enjoyment of the movie. I think you over estimate it as a driver of people to theaters. I think the a more than large enough number of people are there because they don't want to wait for the movie to reach Netflix, Amazon or Bluray.

Unfortunately despite this I don't see this service becoming a reality. At least not with a selection of movies beyond indies. I don't believe the major studios will risk their relationships with the theater chains.
On the subject of conversion, there are currently three jobs in central London. The salaries are 58000, 59331, and 70000. 59331 USD is 40999.97 GBP at the moment, so that's someone earning £41k who's converted properly. The others are round numbers, which suggests to me that they're in GBP and haven't been converted.

Not sure what to make of the fact that it's the two people with the highest salaries who didn't read the instructions.
Haskell, Ocaml and the like tend to have strong preemptive scheduling using a "green threads" approach, which will give similar scalability.
I had trouble following along because I couldn't get over how backwards the code is. Why should a book object have the responsibility of adding itself to a cart? Instead of calling

book.add_to_cart(cart)

It should be

cart.add(book)
The attacker modifies the on-disk copy of the kernel such that when userspace tries to read the kernel it gets given a backed up copy of the unmodified kernel. Chkboot says everything is fine, but in reality the system is backdoored.
I did, as I'm sure many here have as well. However, not everybody has that kind of self motivitation.

Some people need that $30k expenditure to keep their wandering minds in check when the going gets tough at the beginning.

I remember my first paid experience coding...was reading/learning 6+ hours every day on top of the project itself.
Only for very specific use cases, like the recursive descent parser in encoding/json. It's not appropriate as a general pattern.
Didn't the author of this come up with "There is a sucker born every minute" quote
Out of curiosity could you define spammy? People call Glassdoor spammy, is it because there is too much advertising or because they force user to register in order to see more data?
Neat idea until someone reads the FAQ

> "Our organization makes no money offering it’s services in creation and updating of websites; however, we do ask that organizations cover the minimal expenses that hosting a website may compile. These costs include paying for domains, provisioning SSL certificates, and other small fees that come along with building a website. We charge every organization a one time fee of $150 after we complete your website. No other fees will ever be charged."

So its free but theres $150 fee.

How about saying "$150 handcrafted sites for nonprofits"?
Erm, that's what I said.
I think you're spot on with the lack of a default method in olden days Java. It was certainly the driver behind having an AbstractBaseWhatever class back when. Though there could still be utility in having a base class that had some functionality acting on internal state that was shared by lots of implementations of that.

Another use like Priceable and CartItem in modern Java is Connection and AutoCloseable (database connection objects). Anything AutoCloseble can be automatically closed after a try/catch block is done (with some specifics I glossed over on how). And a Connection is that, some specific form of DB connection. You also have a DB ResultSet that is AutoCloseable. So by having another interface extending another, or a class implementing the interfaces you can drive very related functionality on classes that may do very different things.

CartItem could extend/implement the one or two method Priceable, along with all its other methods.
Yeah but someone doesn't understand a database unless they understand what a hashtable or a binary tree is. But none of that is very complex.
C++ doesn't have the interface keyword, but that does not mean you cannot have a class that is a pure interface (all methods abstract).
I get the point being made, but the rules probably shouldn't be directly associated with the Item objects in the first place. How would you apply a pricing rule like: "Free shipping if item total is > $20 after discounts applied"?

The general approach I've seen to this sort of thing is to create a stack of rules, and each rule applies its changes if needed. And for that, an array of function pointers will work fine.
platypus. that is to say: the teaching is still bad.
https://en.wikipedia.org/wiki/Four_Major_Rivers_Project#Crit...

17 billion $~ spent with little to show for it, with much allegations of corruption between President Lee & his ex-employer Hyundai constructions.

https://www.youtube.com/watch?v=L0ANQBP0Cq8
6 million $ spent on "robo-fish" to detect & observe water conditions, 7/9 units DOA; met 10% of targeted spec (speed/data networking bandwidth capabilities)

I think government sanctioned projects can work if the leader in charge has proper intent and skills & leadership to steer the resources.

This is far from the case with current Korean leadership; as Ms.Park was elected mostly based on her name recognition/ positive sentiments left by her dad. She is widely considered to be one of the most incompetent president ever to be elected into office.
> C++ doesn't have interfaces

Isn't a class with exclusively pure virtual methods effectively an interface?
What's with the assumption that you can only learn fundamental computer science in a classroom? If you go through a bootcamp and get a real job but never grow, that's not because you never got a CS degree, it's because you never took advantage of the Internet and a workplace full of practical problems and people who know more than you.
On the nose. SQL Server is a great product, but their MVCC is basically hacked in. They're also lacking in the features Oracle has around their Undo tablespace, and auditing.
Can someone follow up with more details on vendor for those not using go currently? What is the best practice for locking versions of libraries down. I am comparing this to gemfile.lock and shrinkwrap.json . Ty
When moral relativism is your religion, anyone with moral conviction is your enemy and must be silenced.

What's most pitiful is the cowardice displayed by all who should know better. University trustees and professors, business leaders, entertainers, and every last one of us who has ever surrendered to this tyranny in our schools, our jobs, or our communities. Instead of fighting back, we capitulate and cower in fear for our reputations and livelihoods. Seeing this in my own country, America, especially disgusts me. How many good men have put down their lives to secure for us the blessings of liberty. Today, we lack the confidence and courage to even raise a word in their defense.
Whether or not this service displaces theaters in the mid term is anyone's guess. What's not that ambiguous is the fate of movie theaters as the main venue to receive new movies.

To me the only way they can remain viable is artificially by keeping a monopoly on distribution, otherwise there isn't a compelling reason for leaving the comfort of one's abode to go see a movie in a shared space next to strangers who might behave very annoyingly. Plus there is getting there, the grime on seats, the crowds, etc.

Once screens get big enough, the form factor will cease to be a deciding factor. Sure, they have some years before that happens but they'd better prepare.

On the upside, the theaters could be reused for other community purposes, either as rec centers, hack spaces, etc.
http://electionfighter.com

On my Android Samsung Galaxy S4 after choosing a fighter I get a black screen. Is it not mobile friendly?
North Carolina still seems to have tons of Furniture manufacturing. I imagine they haven't minded raising their prices out of state however.
My knowledge of Amish lifestyle comes from the book Growing up Amish. I really don't think most Amish people, including women, will agree with what you are saying. It's a deliberately different lifestyle and different set of belief system which might look operassive to someone living in American city but those values are very dearly held by those people, both men and women.
If I'm doing the hiring, I wouldn't expect a candidate to let me talk to their current manager--that's just insane.

If I thought the employee was worth the extra money they were asking for, I'd give it to them. If not, I'd let them walk. Whether their current job is considering matching their offer doesn't really matter to me.

If a candidate asks for a specific salary, I don't care why they want it. I only care whether I think they are worth it, and whether I can afford it.
We thought hard about this and in the end decided it's in the best interest of the nonprofits to host and manage their content for them. The $150 fee covers our expenses and alleviates the need for monthly payments.

Also it's worth mentioning that once a nonprofit has paid for something, albeit a very small fee, it makes them far more willing to put effort into giving us feedback.

Think of it as getting a free car but you still need to pay for the gas. Having a slogan of "$150 websites for nonprofits" dilutes the clarity of our mission and makes it look like we are profiting.
Go makes it really easy to linters (lexer and parser in standard library, simple AST, etc.), so there is a robust linger for that: https://github.com/kisielk/errcheck
And correctly so, but the teachers should have also teached that there isn't a single way of doing OOP and what are the cons of certain design approaches.
This will be useful in the future to identify people's ethnic origins.
Yep. There is no reason the Item class should "know about" the Cart class. The add_to_cart method doesn't belong in it.
Anyone else's first thoughts jumping directly to the exploration of Europa? (Or Enceladus, or Ganymede?)
"it can form the basis of automated verification and bug-finding tools for higher-order programs. "

Does this mean I can verify C++, Haskell, Python, JavaScript & Common Lisp code that uses Higher Order Functions?
This has happened with pretty much every site that has gotten big. Look at Twitter: They gave developers access to their data, allowed them to build companies around it, and then removed access abruptly.

In some cases, they offered these companies the same data at an exorbitant cost. Most of the time, it's not even factored into the business model of the company and they are forced to find another source of data or quit.

This is why you shouldn't base your entire company or idea on one source of data.
Apparently there is still quite a room to improve how people get to learn these subjects.
Why isn't it practical? Maybe not in the cloud, but there are some hosting companies that offer quite powerful machines in the same ballpark.

Hetzner, a German hosting company, have some really good root servers, for about 120€/month you get a beast of a machine with 16 cores and 128gb of RAM. If you add some basic load balancing, you can achieve 10M for a really low price. Add something like Docker and you can get a PaaS-like setup, that handles millions of connections without breaking a sweat.
21. THERE ARE NO RULES
What kind of company do you work at that has such rules explicitly spelled out? What's the procedure for firing someone based on that data? Don't they need proof of such activities? Does your workplace have cameras and sound recording at all times trained on their employees? If you do and you don't enjoy that, then maybe it's time to look for something else?
Perfect is entirely subjective though... One software usage that I usually rally against is DI/IoC usage... most of the time it only adds indirection and complexity that hinder the development of an application and rarely help it. Time and again I see it used in conditions where there aren't multiple implementations of interfaces, and there isn't any testing at all. So it serves no purpose in these contexts, but is argued as "better".

That's just one piece, but one I've consistently come up against. There's also the more functional vs. classical (class oriented) approaches.

In any case you can come up with "perfect" is entirely subjective... and if it takes significantly longer, it's rarely the better option.. so long as every piece is modular enough that it can be ripped out, rewritten or replaced easily, and with that mindset in play... then it isn't even good enough.
More like being terrible at using inheritance is terrible.
>I've yet to meet an anti-TDD zealot who has actually spent a month developing the art of TDD.

Do you actually apply that reasoning in everything you do? This is highly unproductive approach.

At least one paragraph from [1] this essay by PG is very relevant:

Most people have learned to do a similar sort of filtering on new things they hear about. They don't even start paying attention until they've heard about something ten times. They're perfectly justified: the majority of hot new whatevers do turn out to be a waste of time, and eventually go away. By delaying learning VRML, I avoided having to learn it at all.

[1] http://paulgraham.com/popular.html
Don't forget about Rumspringa.

> A popular view exists by which the period is institutionalized as a rite of passage, and the usual behavioral restrictions are relaxed, so that Amish youth can acquire some experience and knowledge of the non-Amish world.

https://en.wikipedia.org/wiki/Rumspringa

"Devil's Playground"
http://www.imdb.com/title/tt0293088/
I find that thumper's rule is very useful when dealing with zealous members of the OpenBSD community.
I think it ruins the whole argument. It is not an argument against inheritance but an argument against bad coupling masquerading as an argument against inheritance.
Like all tamper detection it can be subverted as you describe. However it does raise the bar/costs for the attacker since their subversion has to be larger and more complex as it takes longer to write, needs more skill, more places to have bugs etc.
Interface relationships are a subset of inheritance relationships. If you understand inheritance you understand interfaces. So it makes sense to explain inheritance before understanding interfaces.

There's an analogy here between inheritance -> interfaces and pointers -> object references as in a language like Java. Object references are pointers, in effect, but syntactically pared down so that it's (much) harder to break them. They are less powerful but safer. Similarly, if you have inheritance—particularly the dreaded multiple inheritance—you have everything interfaces can do and then some, but you also have much more responsibility and a lot greater chance of creating bad designs. In both cases, it makes sense when teaching the concepts to teach the fuller, more powerful concept. In day to day work, however, many programmers will make fewer mistakes using the more limited concept.

To say this a bit more clearly, but perhaps more insultingly: inheritance, properly and fully understood, is useful for a massive range of situations, of which mixins and interfaces are a part. I find that relatively few programmers (and I've worked in development for more than twenty years and taught programming at the Master's level for 7: I've taught a lot of programmers) can really grok proper inheritance to this level; therefore when they try to use it they end up shooting themselves in the foot, then blaming the tool. For them it's better to use the more limited tool. But it's still good to know the broader tool.