I have a degree in English literature and criticism. I later followed it with a degree in applied computer science. I'm glad for both, and was disappointed in both, for multiple different reasons.
I think I understand why you would accuse the humanities of being "rotten", but I'm not sure it captures my own experience of the malaise affecting college humanities departments (at least what I witnessed, with a somewhat jaundiced eye). I would say that the humanities is deeply conflicted about its purpose and relevance, and maybe even its approach and techniques. That there is little, if any, consensus on these questions. That there isn't even any agreement on whether consensus is desirable, even a surface consensus for the benefit of students. That cynicism, confusion, uncertainty and fear are rife and toxic in the minds of faculty and administration. That this is in many ways a reflection of the mind of society at large, especially our leadership, actual or effective.
On the other hand, the purpose of technical training is less contentious, and it's focus is generally not challenged much. There are questions about technique and content, and there is wide variance in teaching talent, but overall, most scientific disciplines have done a good job of building a reasonable syllabus based on foundational theory and mixed practise. We can feel confident after taking a scientific that we have acquired some amount of true knowledge and useful understanding.
But the exact opposite seems to be true of humanities, whether studied institutionally or privately. The same questions which have haunted us since the beginning of human history still haunt us today. These questions are all philosophical; the best, most honest answer to virtually all of them is, still, "We don't know." Throughout history, numerous people, including many undoubted geniuses, have suggested answers and made tremendous arguments. Today, many of those answers are still compelling, but, over time, their justifications have eroded under scrutiny. The more we look at human nature, and the more anecdotal evidence we collect, the more we fail to understand it.
That is the nature of art and letters: it is a vast and ever-growing accumulation of mostly anecdotal evidence which intelligent, talented and persuasive people throughout history have tried to use to validate their own opinions of the nature of human nature, life and existence. And most of it, no matter how beautifully presented, is all so much empty rhetoric, and completely unproven.
A programme in humanities, therefor, amounts to a lot of time and energy spent studying well-spoken (or otherwise well-illustrated), but failed attempts to provide insight into the core questions of philosophy. Many have embraced this uncertainty, but not answering a question is still a kind of answer. It never definitively proves that the question is invalid. And yet few seem willing to accept, and virtually none are satisfied with the truth: "We don't know."
As a result, the programme has degenerated into a cacophony. And yet, for the purposes of administrative coherence and the need to fulfill some sort of comprehensible structure, in order to reliably function in a standardized institutional setting, we still offer "courses" with focused areas of subject, and degrees made of such courses. Faculty members must continue to publish papers and/or creative works of their own. In all ways, schools must continue to behave as though they had some kind of coherent sense of their purpose and significance, despite a complete lack of any such belief in anyone's mind. We continue to allow these so-called specialists to decide, on society's (or at least education's) behalf what it means to study, find value, and finally "understand" these questions, or at least the techniques of, and approaches to, attempting to answer them.
So what we have is a sort of free-for-all disguised as a serious occupation, and a large body of highly paid specialists essentially run amok. No one knows what they are trying to accomplish, or what their level of success is or has been, so we just take them on their word that they are doing it, or that at least they are trying. With each passing year, the map of the territory continues to grow, but we are no better equipped to navigate through it. At least, it seems that the tools that educators and researchers might be using, from the social sciences, are not being used in ways which might help them, at least with any real scientific rigour. On the contrary, science continues to be misunderstood, misinterpreted and misapplied by humanities faculty, to the detriment of everyone (themselves, their students, and society and culture at large).
One of the most important features of the scientific programme is that of prioritizing knowledge based on our confidence in its truth and reliability. While historians of science may continue to study the failed efforts and discredited theories of the past, we do not, as a rule, teach these to practising scientists and engineers. They represent curiosities, or negative lessons in how to study science. The humanities either cannot, or will not, follow suit. The most important fight in the history of humanities was that over the "canon", and it was a decisive loss for everyone. There is no accepted way to prioritize works. The yardstick of truth is not applicable. Beauty, subject matter, technique, form: all are matters of taste. And the simple and undeniable fact is that you cannot study taste. You can study matter and technique, and to some extent you can judge the difference between the attempt and the result, but even that has its detractors. When truth cannot be known, every opinion is valid, and no arguments are final.
Attempting to endure this nightmare of existential uncertainty is attractive to very few people. For those who enjoy art, and would like to spend their days discussing it, and especially those who like having an audience for their own opinions, for which they have a rather high regard, academia is an attractive option. No one can prove you wrong, but popularity can prove your right, at least for a time.
Interestingly, this isn't that different from software start-ups, which are, more and more, about popularity and fashion than they are about inventing new things and the transforming the world.
What gets me about this description is how it's all about having indirect feelings for things in your mind. The imagination is a pretty late-stage evolved trait. I often think it's amazing that we have emotional responses to ideas in the first place. Seriously: they are ideas! Why should people have feelings for ideas? It's kind of bizarre.
People should have emotional responses to real things. And I've often wondered why we don't treat depression with more realness. Trying to treat it with "positivism" is just more of the same thing that aggravates the depression: disconnection from real things. Positive attitudes are invariably supposed to be evoked for, once again, ideas.
Sunlight and exercise are two things that were mentioned as real things that can help re-connect people to physical reality (instead of ideas). Another important one is fundamental to human emotional and social health: affection. Simple physical touch from someone you trust and who will suspend judgement. Hugs. Hand holding. Sitting on the couch together. No expectations. No demands. Just freedom to be.
It seemed from the article/comics that some (maybe a lot) of the person's unhappiness was coming from the discomfort and pain of not living up to expectations imposed on them by others about their attitudes. Just being detached is not itself that horrible (and maybe it's less weird than being emotionally attached to imaginary things). But being made to feel/believe that you are a bad person, a defective person, a source of pain to others, that leads to a real kind of pain. Other peoples' facial expressions and tone of voice affects us on a much deeper level than conceptual imagination.
Like many mammals, some birds and other kinds of animals, humans are deeply wired to respond to the sounds and images of other humans expressing positive and negative responses to us. Those are the first place to go to work on immediate sensory treatment for depression. Because these social signals are so ancient, we can even get treatment from non-humans. Cats and dogs make people feel better. It's even been shown in studies that seniors in retirement homes feel better when they are given time with pets.
I'm not saying this is a guaranteed solution, but it hasn't been mentioned in this discussion, and it's very important. The way we socialize is inadequate to our biological needs.
From the outside looking it, I would say it just looks like a rational model is being imposed on a chaotic system as a means to control and understand the risks. Can we take it for granted that the primary motivation of investors and entrepreneurs is to make money (aka prestige/power/status), and things like changing the world, enjoying their work/team, creativity and other motivations are secondary? If so, since investors start with the money (prestige/power/status), they have the upper hand in a rational model, where successful investment always pays back dividends.
The cause of this situation is the accepted superiority of money (prestige/power/status) and the way investments are structure to ensure the return of more of it to the ones making the investment. The only alternative would be a kind of philanthropy, where investors gave money (spent as capital and income on necessities), without asking for a return, to those they believed would do the most good with it.
Personally, I think that there are other ways to acquire/demonstrate social status other than money, but they aren't as easy to use in algorithms and economic models, so they aren't given as much attention. I think people need to spend more cycles on considering these other ways of measuring status. Certainly we can't dispense with money, because it makes perfect sense to use a common way of measuring the value of most everyday things. But in terms of how you measure a person's significance and contribution to their society, I think it's very limited.
EDIT: some examples of alternatives to money which bequeath status, and which can work as currency or to enhance bargaining position: unique or protected (patented) knowledge, talent (artistic, athletic), beauty, perceived wisdom (spiritual), nobility/heritage. All of these are familiar, but subverting bankers/investors seems to always involve having access to some amount of one or more of these, because it can be translated into followers (audience, buyers).
The growing pool of entrepreneur/labour may have some amount of hustling skill, but if it's not unique, then it is doomed to be commoditized. Anyone who is trying to emulate a Gates, Jobs, Zuck, or other uber-hustler is automatically not unique, and therefor expanding the replaceable pool. Anyone who can acquire followers independently of capital is on to something new. They can escape the dictates of the imposed model and set their own terms, because they have a different sort of capital.
I think the deeper question that is being ignored is that of how we decide what is valuable: how we measure value. The market approach that is being espoused, and favoured by some here, reduces everything to a dollar amount. This is convenient, especially from an algorithmic standpoint, since then your algorithms can process any kind of input.
But this is a pretty big assumption. I'm not saying that you can't put a price on anything--you can. But that doesn't mean that the price is accurate, in terms of the value acquired, which is what some other people are trying to point out. The market assumes you can rationally determine the real value of things, in money terms, and compare all things equivalently. But the future utility of something, let alone knowledge, is impossible to measure with any hope of accuracy.
If everybody measures everything with money based on some expectation of value--itself measured in terms of the return on investment of existing money/time--and most people are wrong, then it might have very bad long-term consequences for individuals and society.
Lots of things are lost when we replace one way of doing things with another way, and usually the dollar value of those things is never considered, but is externalized and conveniently forgotten. Same is true for the way we treat the value of natural resources (air, water, wildlife, minerals) as zero until exploited. It's a pragmatic necessity, enforced by the limits of our measuring tools, but that doesn't mean that nothing is lost.
So, when you say "standards of living have increased", what measures are being used? Past the essentials (food/water/housing/clothing/security), we get into very grey areas. Knowledge and ways of life are changing, and maybe the loss is more costly than people are willing to admit in the rush for material prosperity.
"Communication is only possible between equals". Equality is a perception, but the one with the power to punish inevitably decides who is equal, and who isn't. The safe bet if you're in the inferior position is to assume that rocking the boat will get you in trouble.
That's why everyone hates when bosses make jokes about firing them. It's only funny if you know it's a joke, but employees can never be sure.
Most big problems cannot be solved, except theoretically, with information processing. In other words, software and computer networks and data mining and such will not actually solve the problem, although it might begin to provide some insight. Real problems are physical, and require physical things (like people and machines and other stuff) to solve them. It is also much harder to scale physical solutions, although software can also help. Whereas, you can often solve the whole problem if it is made of information, and you can throw enough CPUs and algorithms at it.
There are first world problems, and then there are "white whines".
Solving the problems of wealthy people might be rewarding and enriching (for the solver), but the actual impact on the world is generally much less than if you solved more pressing problems.
It's a law of diminishing returns. After a while, people should be able to solve their own problems. What they do instead is to redefine "problem" from "life-threatening risk" to "banal annoyance".
If you save a child from dying from cholera, they might grow up and change the world themselves. If you make it more convenient for spoiled white people to buy more shit to fill up their meaningless lives, not so much.
If I must speak directly to the point of "for the money" -- it's probably good sense to go for the money, first, and then changing the world (instead of the other way around). Whether one can acquire enough money to change the world through spending it is another question, but obviously people believe that they have a better chance at it, or that the rewards will be better, or both.
I'm not sure how long the OP has been an arm-chair social scientist, but I've been one for twenty-five years, and I feel like I might be able to share some insights.
Firstly, his thesis could be boiled down to a very simple question: "Why do people do what they do (instead of what I want them to do)?" You suggest that they are insufficiently self-reflective, not very world-wise, and perhaps just a bit self-centred. These are reasonable inferences, but they don't go very deeply into understand the psychology, beliefs and motivations of your stereotypical spoiled white kid.
A deeper question we might ask in response to your thesis is, "What's wrong with the world (and why is nobody fixing it)?" The sub-question might alternately be: "Why aren't enough people fixing it?" or "Why aren't the right people fixing it?" Neé spoiled rich kids.
The problem with both questions is that they are primarily underscored by the implicit question, "Why aren't more people like me (and why don't they believe and feel like I do)?" But the answer to that is simple: evolution. Biological evolution ensures that there is a wide variety of people, physiologically, and social evolution (not Social Darwinism, thank you -- no ranking is being proposed) ensures that there are a wide variety of belief systems and mental models of how the world works and why.
But let's, for the moment, make the (unfounded and highly unlikely) assumption that the OP's point of view is somehow more informed, insightful, rational, or just generally "better" than those of all the people whom he is criticizing. I mean, he wouldn't have made the argument if he didn't think it had more merit than other arguments in favour of "iterating" or whatever other less noble activity they are pursuing instead. And he may be right (it's only unlikely based on probability, and the apparent level of effort pursued in constructing said argument).
People do what they do because they believe, rightly or wrongly, that it is in their interests. Either directly, in terms of immediate material rewards, through indirect rewards (material, social or even spiritual), or future rewards to their offspring. That is a basic economic tenet that is difficult to ignore. (It is hard to disprove, partly because "rewards" are variable and ill-defined). Stated another way, people do things because they think (or feel) that it is right (or reasonable) to do, or just because they want to do them.
It may be for riches, or that may merely be a subordinate goal towards pleasure, happiness, fulfillment or meaning. My suspicion is that people are primarily motivated by status (a measure of what is meaningful) when they behave in ways that affect their social surroundings, but otherwise they like pleasure, whether sensual, aesthetic or moral (and the pride or satisfaction from doing good is definitely a pleasure, as is that of winning, which could be called a moral activity, if you believe you are better than other people and deserve to win).
But not only do people do what they believe is good for their interests, they also don't do things that they think are bad for their interests, which is the true meaning of "wasting time": actions without real consequence (as estimated by the agent). This isn't bad or evil. Most people simply do not know how to "change the world" in a manner which will satisfy the OP, or at best have a very vague notion, and very little reason to be confident that they could do it. In other words, people engage in activities which they consider to have a reasonable chance of success. Exactly how they arrived at their estimate of risk/reward is another question.
But in fact it is the ultimate question, since that is where the rubber meets the road. The extent to which someone is misinformed, delusional or outright insane is something that has to be determined for each individual. But we can generalize that the vast majority of people do not have the necessary knowledge, skills, insights and experience to go about saving the world. Nor do they have the right social connections, or affiliations with groups which are changing the world (and have no interest in becoming fund-raisers hanging out on malls and street corners), and are generally discouraged from participating in such marginal activities by their elders and role models, for many reasons (some or all of which may be ill-reasoned, based on false premises, and riddled with superstitions, false authority and bias, and yet are nevertheless core to the world view which these people have at their disposal).
So, for the OP's sake, maybe it's time that he revised his viewpoint on what is wrong with the world, and how to change it. Not by writing blog posts accusing others of failing to live up to his standards (yes, this could be ironic, but in fact I am not judging the OP's career or life goals, merely his argument), but instead by either a) trying to understand better why people don't, in fact, share his beliefs and values, and/or b) by learning how to impart his own wisdom in such a way that he has some modicum of hope in actually affecting the views of other people, rather than just appealing to a crowd of like-minded people with whom he can share his sense of superiority.
On the other hand, maybe that was his goal, and maybe he achieved it, so good for him!
Single-item submenus and super-long submenus are to be avoided at all costs. They are not user friendly. The former has no reason for being -- put the contents in the parent menu as a sub-section. The latter is generally found in auto-generated lists, like lists of fonts or countries.
Usually a menu is a bad UI device for selecting from very long lists. Combo boxes are one alternative. Breaking contents up into chunks and adding another level to menu hierarchy is another possible solution. MS-style hiding rare choices is a third option.
Not many people know this, but the iPhone was a stop-gap on the way to developing the iPad. I know a chap who was on the iPad R&D team, as an intern, before the iPhone came out.
Straw man thinks DRY applies to two-line function. Straw man is a straw man. Also, less code > DRY. In fact, less code -> DRY. If refactoring makes for more code, not really DRY. More like taking a principle to its illogical conclusion. Compression is a process of diminishing returns.
Although there are certainly times when a factoring two lines into one line is better. Like when it's self-documenting, or when those lines otherwise add noise to part of another function.
Sometimes a new function is not the right approach to avoiding repetition. If you can't write a function to adhere to DRY, use a macro or equivalent. In C/etc, macros are wonderful if used well.
What I didn't like this article was that it was so full of self-congratulation and completely bereft of any mention of serious problems visible on the horizon. Unbounded self-assurance is the doorway to destructive optimism.
There are many things to be concerned about, ecologically and economically. But if excessive optimism leads people to believe that these problems are only being made up by "doom-sayers" and "chicken littles" (like, say, the few who predicted serious fallout from the real estate derivatives market), then nothing will be done about them. Causing pain and suffering which could otherwise have been avoided or reduced.
Fortunately, there are serious people doing serious work to address potential risks. Articles like this one are primarily aimed at simple-minded people who can't really understand the hard questions, and need a certain amount of fluffy encouragement to keep them getting up in the morning.
So what happens if the price of natural gas goes up again? Isn't this just another example of a lucky break that won't last forever (much like the history of cheap oil)?
Granted, it doesn't at all take away from this being a good year, but the original article seems to imply that things are getting better and will always get better.
It's during the good times that you're supposed to think about and prepare for the bad times. But too often, it seems like people just want to sit back and congratulate themselves. Ant vs grasshopper, I guess.
How do you measure the is-ness of the state? By it's budgetary expenditures? Many existent states (like Canada) have relatively small military budgets. For them, wielding or even threatening to wield violence is not their primary reason for being. Their primary reason for being is to ensure the health and welfare of their citizens, and they do so not by threat of violence, but by collection and distribution of taxes and passing of laws.
The vast majority of people in most democratic societies do not require the threat of arrest and imprisonment to follow the majority of laws. Assuredly there are minor disagreements about which the validity of certain laws, and many people cheat a little here and there. But when the majority of citizens believe that the majority of the law, and the state which imposes it, is unjust, you have an authoritarian government, and a revolution is inevitable.
It might also be worth noting that even if, based on budgetary spending, the US government is primarily an institution of the force and its display, most of that is happening outside of US soil. Most of it, in fact, is deployed in protecting sea lanes for the benefit of shipping and the people who rely on it: namely, everyone on Earth. I'm not American, and I don't like everything about America, but I'm damn grateful for the fact that the American government is funding the security of the machinery which keeps food and goods flowing around the world, since a lot of people where I live (Canada) would have difficulty surviving the Winter (and maybe even in Summer) without it.
To what extent global commerce and trade are just or unjust is another question, but I suggest it can be addressed on a case-by-case basis, and that the vast majority is far more beneficial than detrimental to everyone involved.
Even the strongest encryption is only as strong as the will of the person who knows the key. And what if the state decides to enforce controls over access to encryption algorithms and software? What if it's a crime to use unbreakable encryption?
The only defence against tyranny is the effort of a sufficient number of people, with the will and means to resist, choose to actively support freedom and dismantle tyranny. Specifically, people in power: politicians, judges, lawyers, and police. If the people who run the state, and exert force in its name, prefer tyranny, then tyranny is what we'll get. And that's exactly what happens when those who oppose tyranny abandon the state those who support it.
This post reminded me of my time as a consulting systems support specialist. Lots of weird problem turned out to be bad hardware. Usually memory or disk, sometimes bad logic boards. For end users, this would often lead to complete freezing of the computer, so it was less likely to be blamed on broken software, but there were still many times it was hard to be sure. Desktop OS software can flake out in strange ways due to memory problems. I used to run a lot of memory tests as a matter of course.
I think the title of the article could be more accurate, considering how much is devoted not to issues about software reliability per se, but to distinguishing between unreliable software and unreliable hardware. I think an implicit assumption in most discussions about software reliability is that the hardware has been verified.
I personally do not think that it is the responsibility of a database to perform diagnostics on its host system, although I can sympathize with the pragmatic requirement.
When I am determining the cause of a software failure or crash, the very first thing I always want to know is: is the problem reproducible? If not, the bug report is automatically classified as suspect. It's usually not feasible to investigate a failure that only happened once and cannot be reproduced. Ideally, the problem can be reproduced on two different machines.
What we're always looking for when investigating a bug are ways to increase our confidence that we know the situation (or class of situation) in which the bug arises. And one way to do this is to eliminate as many variables as possible. As a support specialists trying to solve a faulty computer or program, I followed the same course: isolate the cause by a process of elimination. When everything else has been eliminated, whatever you are left with is the cause.
I'm still all jonesed up for a good discussion about software reliability. antirez raised interesting questions about how to define software that is working properly or not. While I'm all for testing, there are ways to design and architect software that makes it more or less amenable to testing. Or more specifically, to make it easier or harder to provide full coverage.
I've always been intrigued by the idea that the most reliable software programs are usually compilers. I believe that is because computer languages are amongst the most carefully specified kind of program input. Whereas so many computer programs accept very poorly specified kinds of input, like user interface actions mixed with text and network traffic, which is at higher risk of having ambiguous elements. (For all their complexity, compilers have it easier in some regards: they have a very specific job to do, and they only run briefly in batch operations, producing a single output from a single input. Any data mutations originate from within the compiler itself, not from the inputs they are processing.)
In any case, I believe that the key to reliable programs depends upon the a complete and unambiguous definition of any and all data types used by those programs, as well as complete and unambiguous definitions of the legitimate mutations that can be made to those data types. If we can guarantee that only valid data is provided to an operation, and guarantee that each such operation produces only legitimate data, then we reduce the chances of corrupting our data. (Transactional memory is such an awesome thing. I only wish it was available in C family languages.)
One of my crazy ideas is that all programs should have a "pure" kernel with a single interface, either a text or binary language interface, and this kernel is the only part that can access user data. Any other tool has to be built on top of this. So this would include any application built with a database back-end.
I suppose that a lot of Hacker News readers, being web developers, already work on products featuring such partitioning. But for desktop software developers who work with their own in-memory data structures and their own disk file formats, it's not so common or self-evident. Then again, even programs that do rely on a dedicated external data store also keep a lot of other kinds of data around, which may not be true user data, but can still be corrupted and cause either crashes or program misbehaviour.
In any case, I suspect that this is going to be an inevitable side-effect of various security initiatives for desktop software, like Apple's XPC. The same techniques used to partition different parts of a program to restrict their access to different resources often lead to also partitioning operations on different kinds of data, including transient representations in the user interface.
Can a program like Redis be further decomposed into layers to handle tasks focussed on different kinds of data to achieve even better operational isolation, and thereby make it easier to find and fix bugs?
95% of writing a good iOS app involves knowledge and skills unrelated to the language. The tools, the frameworks, the design and interaction models, location awareness, and more. Objective-C is a microscopic hurdle compared to getting the rest of it right.