How to Forum

 By Shamus Oct 15, 2013 285 comments

This began as a Twitter conversation, but the limitations of the medium (and I’m not just talking about the 140 character limit) have forced me to expand on the idea here.

It’s common knowledge that most people who use the internet to communicate are actually horrible at communication. (Which means that most people in general are bad at communication, which explains a lot about history.) What is deeply disturbing to me is that some of these bad-communicators then write guides on how to communicate well.

It begins with this bit of snark from me:

Here we’re talking specifically about your typical tech forum threads, where people show up with tricky database / hardware / software / networking problems in the hopes that someone else can help them.

Like most expressions of frustration over trivial but common annoyances, that one got re-tweeted a few times. And then someone sent me a link to this post: Pounding a Nail: Old Shoe or Glass Bottle? Let’s talk about that post.

Let me quote a bit of it:

“A client has asked me to build and install a custom shelving system. I’m at the point where I need to nail it, but I’m not sure what to use to pound the nails in. Should I use an old shoe or a glass bottle?”

How would you answer the question?

a) It depends. If you are looking to pound a small (20lb) nail in something like drywall, you’ll find it much easier to use the bottle, especially if the shoe is dirty. However, if you are trying to drive a heavy nail into some wood, go with the shoe: the bottle with shatter in your hand.

b) There is something fundamentally wrong with the way you are building; you need to use real tools. Yes, it may involve a trip to the toolbox (or even to the hardware store), but doing it the right way is going to save a lot of time, money, and aggravation through the lifecycle of your product. You need to stop building things for money until you understand the basics of construction.

I would hope that just about any sane person would choose something close to (b). Sure, it may seem a bit harsh, but think about it from the customer prospective: how would you feel if your carpenter asked such a question?

This article sets up a false dichotomy where the only two options are:

A: Give bad advice.

or

B: Be a dick.

You do not need to choose between these two. They are both wrong. Saying “use a hammer” would be less confrontational, more helpful, and more succinct.

but think about it from the customer prospective: how would you feel if your carpenter asked such a question?

This is another thing wrong with the contrived example offered. Most of the people asking these technology questions are not “carpenters”. They are not professionals. Or at least, they don’t identify themselves as such. Maybe it’s a really smart kid who is, in fact, way ahead of where YOU were at that age, but they’ve bit off more than they can chew. Maybe it’s someone working on a hobby project. Maybe they work at a horrible company where they aren’t given the time, the tools, or the training to solve things properly. And since we’re making up contrived examples to make a point: Maybe the poster is a doe-eyed, emaciated college sophomore, struggling in her studies because the chemotherapy is keeping her out of class but her dream is to finish her degree before she drops dead of cancer.

You don’t know. It doesn’t matter. They didn’t come here to be judged by you. This person is asking a question because they need help.

This is your chance to teach someone. This is your chance to save another human being from a lot of aggravation. It’s a wonderful thing, and it pains me to see people use it as an opening to kick sand in someone’s face.

I’ve been participating in Usenet/forums/lists for a decade now, asking programming questions and helping out others who have questions of their own. If some one asks a question that demonstrates the complete absurdity of their design, I’ll generally reply with my (quite candid) opinion on their design. To give you an idea what I’m talking about, here’s something I remember seeing a while back (from memory).

Subject: Aggregates Help
I have a table that stores test results for milling machines. Each test consists of N-runs conducted by a measurer going M-trials each. I have this information represented in a varchar column in the following format: “44:1,5,4;23:2,4,9;14:1,4,3″. When the column is read into the class, it is converted into a jagged array: ( (44,(1,5,4)), (23,(2,4,9)), (14,(1,4,3)) ) of runs (3 of them) and measurers(Ids of 44,23,14) and trials (1,5,4 and 2,4,9 and 1,4,3).

One of the reports I have is a deficiency report, which predicts which machines may fail. To run this, I have a report class that loads up the appropriate tests and processes the information. However, this is taking longer and longer to run. I’m thinking that running it in a stored procedure will be quicker.

I can figure out how to get an “array” in SQL with a table variable, but how do I make a jagged array? Any ideas?

Some of the folks on in the list took it as a fun challenge, going back and forth with how deficiencies are calculated, and providing some incredibly brilliant ways of solving this problem.

Not I, though. My response was something to the effect of …

This is quite possibly the worst way you could store this data in a database. No, seriously. They had better ways of doing this over thirty years ago. You have created a horrible problem that is only starting to rear its ugly head. It will only continue to get horribly worse, costing your company more and more money to maintain.

You need to drop everything your doing right now and take a trip to your bookstore to get a database book. I recommend INTRODUCTION TO DATABASE SYSTEMS by DATE, but at this point anything should do. For the sake of everyone who will maintain your future code, don’t touch a database until you understand how big of a mess you’ve created.

How do you think you would have responded to that post? Would you have taken the challenge to think about how to solve the problem or just take the opportunity to school the poster?

If you say the former, then you probably think I’m a grumpy curmudgeon (more likely, less family-friendly words though). My appeal to you is to think back to the carpenter. How is this any different? How fair is this to person paying him to develop software, or, more importantly, the poor sap that will have to come in and not only understand the mess, but maintain it. That poor sap could be you one day!

If you say you’d go with the latter, harsher reply, then I ask, why aren’t you out there participating in the newsgroups/forums/lists? We need more people like you out there: there are too many of the people who tell people exactly how to apply the duct tape without giving the poster a firm scolding.

See? We are morally bound to be jerks on the internet!

Except, that’s not how people work. In fact, this is the opposite of how you communicate with people, particularly strangers.

Remember that when you answer a question on the internet, you’re not just answering for the person who asked. You’re also answering for the hundreds that will come here later. They are going to enter some fragments of their problem into a search engine and find themselves reading your post, and if you answer the question by telling the original poster how stupid they are, then you will have wasted your time, the OP’s time, and the time of everyone who ever comes after. If possible, you should at least answer the question. Even if the answer is “This question doesn’t make sense or doesn’t matter because of reason X.” Just be specific.

Either offer them help or keep your mouth shut, because the next hundred people don’t want to have to scroll past your alpha male bullshit to find a response from somebody who has something useful to say.

EVERYONE thinks they are right. Even people who are very, very wrong. In any thread of this type you’ll see 4 people that misunderstand the question, 3 that give bad advice, a couple more that offer unhelpful or impractical advice (switch to Linux / SQL / Python / Emacs / Firefox!) and if you’re lucky, maybe there will be one or two good answers in there. If everyone is obligated to “scold” the idiots, then ALL of those people will answer in accusatory, condescending, insulting ways, because they all think they’re the one with the right answer.

The other problem with answering like this is that there’s usually a pretty high correlation between hostility and noise. The more forceful your reply, the more likely the OP is going to write you off as a crank.

starship_troopers.jpg

Me: Man, I hate Starship Troops. What a shallow, stupid movie.

Alan: You’re just too dumb to get the message of the movie. ST was full of symbolism, but you were too busy shoving popcorn in your fat face to get it. Stick to Adam Sandler movies.

Obviously this is a butthurt fanboy. I insulted something Alan likes, and so he’s trying to hurt me back with words, like a child screaming “I HATE YOU” at his parents. He has nothing to offer the conversation and can be safely ignored or banned.

Bob: It sounds like you missed the message of the movie. It’s not quite the action flick you took it for, and it’s actually quite interesting if you don’t take the world at face value the way the main characters do.

Hey, here is a calm and intelligent person with a different opinion. Perhaps I was wrong? I don’t know. But it’s worth considering.

People post to forums with this the idea that they will be able to sway others by overpowering them with their white-hot indignation. But there are a dozen other people trying to do the same thing. It’s all noise that starts arguments without teaching anyone anything.

You might argue that, “People shouldn’t take it personally when you correct them.” I agree. A corollary is that you shouldn’t make it personal when you’re correcting them. Consider the answer to the database question:

This is quite possibly the worst way you could store this data in a database. No, seriously. They had better ways of doing this over thirty years ago. You have created a horrible problem that is only starting to rear its ugly head. It will only continue to get horribly worse, costing your company more and more money to maintain.

You need to drop everything your doing right now and take a trip to your bookstore to get a database book. I recommend INTRODUCTION TO DATABASE SYSTEMS by DATE, but at this point anything should do. For the sake of everyone who will maintain your future code, don’t touch a database until you understand how big of a mess you’ve created.

Here is the same answer, with the pointless hostility removed:

This is quite possibly the worst way you could store this data in a database. It will only continue to get horribly worse, costing your company more and more money to maintain.

Get a database book. I recommend INTRODUCTION TO DATABASE SYSTEMS by DATE, but at this point anything should do.

It’s still an obnoxious reply because it doesn’t answer the original question AND it doesn’t tell them what specifically they are doing wrong. But at least the extraneous hostility is removed. It’s a bad answer, but at least it’s more to the point.

“Go to the book store and buy a book” is a useless answer, because it doesn’t even tell the other person where to start. NOBODY will listen to this advice. Nobody. If you give answers like this you aren’t trying to teach others, you’re just venting at people.

The answer I would give:

The design you’re using is deeply flawed. Storing numeric data in a string is going to be horribly inefficient and the performance problems you’re having are going to get drastically worse as the size of the data increases. While other posters might have some tricks to speed things up, it’s only delaying the inevitable re-write you’ll have to do, and the longer you wait the harder it will be.

I suggest reading this book.

Notice how I gave the same “RTFM” answer as the other person, but I threw the OP a bone and told them why* their design was wrong. I kept the focus on the problem instead of the person.

* I don’t actually know enough about databases to answer this question properly, so I made up my answer.

Remember that when you criticize someone on a forum, you are a stranger ridiculing them in a public place. You’re doing this without the use of body language and facial expressions to mediate the exchange, and the other person is likely already very frustrated because of the problem they’re dealing with. This is pretty much a worst-case scenario for human interaction, and the last thing you need is to add insults to the mix. The common response will be for people to get defensive or lash out. By giving a harsh answer you are delaying the point at which the other person realizes just how horribly wrong they are. You might argue that people ought not be this way. I agree. But as engineers we know how rarely “ought” and “do” intersect.

By giving a harsh answer you’re no better than the guy driving a nail with a shoe. You don’t know why this nail isn’t doing what you want it to, so your solution is to HIT HARDER until the nail straightens up and does what it should.

Be calm and polite when answering questions. The other person may indeed be an idiot, but you can’t make them smarter by telling them how stupid they are. By answering in a reasonable tone you increase the odds that they will heed your advice, which is good for you, for them, and for everyone who reads the exchange later.

would_you_like_to_know_more.jpg

EDIT:

Below, Drew leaves a comment so good I’m going to quote the entire thing here:

Another issue is that an internet forum is an asynchronous conversation and needs to be treated as such. If you’re talking directly with someone and they ask you a question, a simple response which attempts to solicit further information may be the best response. “What are you trying to do?” “Is there a reason that X,Y,Z?” These are completely reasonable responses in a face-to-face (or telephone) conversation, because the person asking the original question can fill you in quickly and allow you to respond, and still get their answer in a reasonably short time frame. In fact, it can allow you to eliminate potential answers and zero in on the right one, so it can get them their correct answer more quickly.

On an internet forum, however, responses may come hours or days later. Given that, it can make sense to try to provide as much useful information in any given communique as possible in order to help the person asking the question quickly get their answer. If your initial response isn’t completely sufficient, or misses the target a bit, that’s ok, because you’ve helped the person asking the question to have a frame of reference for their response.

Essentially, efficient synchronous conversation can be measured on how much time the conversation takes, while efficient asynchronous conversation should be measured on how many responses are involved from each side, so you should communicate differently in order to best help the questioner.

And if your goal isn’t to help the person, there’s not really a good reason to respond to them at all.

One final note is that the OP might not be as stupid as they seem. Domain experience has a huge impact on what we perceive to be “reasonable”. Someone working on credit card transactions is going to have a very specific set of ideas about security that are unknown or irrelevant to a programmer making a videogame. And the videogame developer is likely going to have incredibly specific performance concerns that would seem unreasonable to someone working on a web app, and the web developer will have maintainability issues that seem needless to someone working on embedded systems, and the embedded systems person will be used to rigorous error handling and fault prevention techniques that seem like a waste of time to the database programmer.

Maybe the person asking the “shoe or glass bottle” question is indeed as clueless as they seem, but maybe they’re operating in a domain where you have no experience and frame of reference. Don’t start out assuming they’re a moron until they prove otherwise. Just answer the question as you can and ask questions as you need to. Everyone will be better off. Even you.

A Hundred!A Hundred!202020205There are more than 284 comments. But less than 286


  1. James Schend says:

    I thought your tweet was complaining about people answering questions other than the question asked. I guess instead it’s complaining about people who answer posts rudely?

    I disagree that you should always answer the question as asked, because frequently that “poisons” the thread for future searchers.

    As an example, suppose someone asks, “how do I create a lookup table to find the path to the user’s My Documents folder for every locale/Windows version?” You can give an honest answer to that, propose a data structure, figure out what to use as the lookup key, etc. But the problem with that question is the very premise of the question is wrong– if you’re ever, ever, hard-coding a Windows special folder path, you’ve guaranteed your program *will* break in the near future. Someone else who comes across the thread might blindly copy the code, and now we have to suffer yet another app with hard-coded wrong paths.

    The best and only response to a question like that should be, “use the SHGetSpecialFolderLocation() API call, it’s literally the only way to get that correct.”

    Anyway, I apologize if I got the intent of your tweet wrong.

    • Naota says:

      I think that still passes for what Shamus was saying. It’s not an article telling you to answer the questions asked or avoid thinking laterally, but to do it politely without heaping scorn on the original poster for asking the wrong question or falling into a common logic trap.

      The problem with the quoted advice isn’t just that it doesn’t answer the question – it’s that at least as much of it exists purely to stoke the ego of the guy writing it by taking shots at the poster asking the question. It’s not helpful at heart, but hurtful… with a wafer-thin veneer of helpfulness caked on the exterior to disguise that fact.

    • James Schend says:

      I should also point out that Alex Papadimoulis runs TheDailyWTF.com, so the post might have been intended to be more tongue-in-cheek than it reads.

      • TSi says:

        If it is, then it should have been written by keeping that in mind but it doesn’t seem to be the case as most comments on the blog are congratulating him.

        • CrushU says:

          Yeah, the DailyWTF site has a whole lot of trolls. It’s one of the last places I would go to get an actually useful response. You’ll get one eventually, but they are masters of giving seemingly-useful advice that is actually terrible.

          The article was indeed tongue-in-cheek, for the reasons Shamus gave. There is no reason to be aggressive and hurtful when trying to help people. Give the right answer, but don’t insult the person.

          • Nathon says:

            My experience with tdwtf forums is that people tend to know an awful lot about how to write good code in their particular environments, but introduce something from outside their world (common idioms in embedded programming, for example) and it gets WTF’d at.

            The hammer example is particularly terrible. The question is “how do I drive a nail?” and the answer is “with a hammer.” The answer in the other example is “don’t use nails, they’re terrible fasteners” and that’s the kind of forum post I think Shamus is really griping about. When the answer to “how do I get my ATI card to work” is “buy an nVidia card,” it’s not an answer.

            • Trix2000 says:

              True, but I think there’s room for an answer like “In my personal experience, X tends to not be a great solution so you might consider Y instead” as long as it’s phrased as an option, rather than as “you must do this thing or else you’re doing it wrong”. Bonus points if you include a proper answer to the question as well, or at least admit that you yourself don’t know of a way to do otherwise.

              It’s a fine line, but it’s part of why I like to really think about my own posts/chats/etc before sending anything. It’s too easy to fall into a trap of thinking “why would anyone do that?” when they maybe DO have a good reason.

    • Zukhramm says:

      On the other hand, when you’re asking a question with a straightforward answer, like “is this possible, if so: how?” there’s nothing more annoying than “why would you do that?” or “try doing this completely different thing because I’m just guessing that you’re trying to solve some problem I know ow”.

        • urs says:

          True that. In fact (with the stuff I’m dealing with), trying to formulate the right question has often led me to discover the answer myself.

          • The best communication skill anyone can ever develop is the one where you figure it out by yourself while cussing a lot and reading crappy documentation. It’s not a fun skill, but it will always be the best one. Asking people questions is often just a route to a ton of useless misinformation. I’ve even had people grief me like this *face-to-face*. My favorite people in the entire universe are ones who are clear enough thinkers to lay stuff out for you.

      • Peter H. Coffin says:

        I completely understand how annoying the “why do you want to do it this way?” response is, but it’s actually taught in a lot of business courses as the correct way to respond in a consultative and proactive manner to what looks like a bad plan. Your example with the database book meshes perfectly with exactly that kind of problem, in my experience. Someone will come to a forum or USENET group asking how to parse comma-separated values stored in a database column. There’s several ways to do that: you can pass it to the application to do with whatever parsing/regular expression/string-handling tools are available there, some databases actually have tools to pivot data of that sort around on the fly and return multiple rows for single records, etc. However, the answer that fits your scenario (“Please learn database normalization — here’s a nice book”) is usually a more correct and complete answer. But…

        Sometimes the questioner isn’t actually looking to store things in that form. Maybe they’re only extracting data once, or they’re tied into a broken legacy system that needs about six queries an hour and isn’t worth spending two weeks on rebuilding 120 million rows into a proper database. Maybe they’re only looking for single values in that list of comma-separated things (and therefore pattern matching is better) or maybe they need something that works even if the value is only sort of like what they’re looking for (and what they want is a full-text index with scoring). That needs to be dragged out of a longer conversation than just answering the question.

        (wow — that comment didn’t end up where I though it was going, but it’s not really worth moving to where it does belong either, what with the whole delete request needing to happen. Anyway, please pretend it’s in the root stream if something seems to be addressing points not raised in the current parent.)

        • kmc says:

          There’s a communication subtlety there that gets lost on the internet, unfortunately. In person, when you ask the question, “Why do you want to do it that way?” you can use tone of voice (higher, lilting) and body language (cooperative, nonthreatening) to indicate that you’re asking the person to go back a couple of steps so you can all get on the same page (and, possibly, they can see a major flaw in their assumptions). On the internet, if I get that response, my first and only thought about that poster is, “Well, no matter how much I explain, they’re never going to answer the question I think I need answered, so I’m not even going to bother responding to them. I’ll wait until someone else comes along.” Because I’ve known and worked with people who ask that question as an opening to answer whatever question they feel like answering, made clear again by tone of voice and body language, and that conversation can go on for days and never get anywhere except maybe an asylum. So, to replace those unspoken social-contract interactions, instead of just the blunt “Why do you want to do it that way?” you say something along the lines of, “Before I launch into some long answer, let me make sure I’m on the right page. Why do you want to do it that way?”

          Also, sometimes people are posting an example that’s not really exactly what they’re trying to do, and maybe they’re not very good at it but they’re having to make it up on the fly. They might do this when, for instance, they’re worried that asking the exact problem they need to fix would give away some info that’s proprietary or classified or needs to be protected for some other reason. Sure, it shouldn’t come up much, and someone who’s really good at communication should be able to abstract the question so that that’s not a concern, but maybe they’re just trying to avoid giving the real example and they just want an answer to the specific question. If the second poster replies politely, like, “Help me understand why you want to do it that way in the first place,” then maybe the original poster can *politely* reply, “Well, I really can’t go into it here,” and then the replier can say, “Okay, then, you’d do it like [method a], but you may want to think about [method d] because [method a] could cause [problems x, y, z].”

      • mystran says:

        My absolute favorite is when the question explicitly notes that “yeah I know I could this, but it won’t work here because of XYZ” and then people still suggest (as the one true answer) what was already tried and concluded to not work.

    • Syal says:

      The thing is, you can do both. Or if it’s too stupid to even try to figure out, you can say “I don’t know how you would do it that way, but this way works perfectly.”

      Also, say why it’s the only way to do it. Say the program will inevitably break the way they have it designed. Otherwise you don’t sound like you’re trying to help, you sound like you want to brag about how smart you are while keeping your elite knowledge away from the public. (“Here, I’ll give you this ONE CRUMB, even though you haven’t earned it.“) The only people who like those guys won’t learn anything from them anyway.

      Also also, maybe they have a reason for asking the question other than the one stated. Maybe the point isn’t to find folders, maybe the point is to find everything through lookup tables. Giving them a different path for this one specific event isn’t going to tell them what they actually want to know.

      • The Snide Sniper says:

        More importantly, telling someone why something is a bad idea (rather than simply telling them that it is a bad idea) might prevent similar mistakes in the future.

        In the lookup-table example, saying “Your solution sucks. Here, use this API call.” may save one project, but the person may encounter a different problem (problematic for the same reason) and make the same mistake.
        On the other hand, “It is unwise to hard-code references to an interface that may change. Use this API call, which will remain unchanged, instead.” is far more likely to provide an “Oh! So that’s what I’m doing wrong.” moment.

        One different sentence and no additional thought, but you’ve saved a programmer instead of just one project.

        • Volfram says:

          Total agreement. The correct answer to “Should I use an old shoe or a glass bottle to pound nails?” is C: “You really should be using a hammer to drive nails if that’s even remotely an option, but for a smaller nail into a soft surface like drywall, a bottle is probably preferable, especially if the shoe is dirty, while if you’re pounding something heavier into wood, the bottle will break, and a shoe would be better if a hammer is not available.”

          Or if you absolutely MUST choose answer B, the correct way to word it would be “Um… question, why can’t you use a hammer?”

          Hmm… getting meta, the correct answer to “old shoe or glass bottle?” is a third option(the hammer). The correct answer to “Should I answer that question with A or B?” is also a third option.

          Could it be that the answer to all of life’s major choices is “Take a third option?”

          • Syal says:

            Could it be that the answer to all of life’s major choices is “Take a third option?”

            The answer is either yes or no. :)

          • I’m seeing a lot of “on one hand . . . on the other hand” waffling about the glass bottle/old shoe question. Assuming it’s a reasonably sturdy old shoe, I really think it’s a generally superior tool for nail-driving relative to a bottle. It has the less fragile advantage, yes, but also less slick to grip and presenting a nice flat heel for driving rather than a rounded surface. I think posters would be doing the questioner a disservice by not coming right out and unambiguously advising for the shoe over the bottle.

            . . . I guess hammers are OK too.

            • Volfram says:

              Yeah, before reading the article I would have pretty definitively advised the object that is not going to shatter into a thousand malicious razor blades of doom and laceration.

              I had a cut on my hand that required stitches. Not eager for another one.

        • Kian says:

          That’s a good answer, but what Alex’s blog would have suggested is something like “That’s a terrible way of doing things. Learn the entire Windows API, so you can understand how wrong you are.”

          That’s unhelpful, even if it is technically correct.

  2. “And then, one Thursday, nearly two thousand years after one man had been nailed to a tree for saying how great it would be to be nice to people for a change, a [CURMUDGEONLY PROGRAMMER] sitting on [HIS] own in a small café [NEAR PITTSBURGH] suddenly realized what it was that had been going wrong all this time, and [HE] finally knew how the world could be made a good and happy place. This time it was right, it would work, and no one would have to get nailed to anything.”

    - Douglas Adams, who was really writing about being helpful on the internet.

    While I agree that all we want is helpful information when we seek it, the very nature of the internet is probably going to lead to a lot of disappointment just from being misunderstood half the time. Then there’s the effect that psychologists have noted where if you’re invested in a topic to a large degree (you know a lot about code, politics, obscure dialects of people in Idaho, etc.) the more likely you are to take offense at obviously wrong/biased/hostile opinions on those topics.

    Plus, a vast amount of people really enjoy being dicks. Someone else can post the link to the relevant Penny-Arcade comic, because that way, I end this post about not being unhelpful on an ironic note.

  3. Naota says:

    To reiterate what I said on Twitter, an only partially related but nearly as frustrating situation is when the people posting these obscure tech problems are bad at asking them, or just don’t have any consideration for those thousands of others who come after them.

    I’ve lost track of the number of times where I search up an esoteric error message, hardware problem, or crash condition and after 20 minutes of wading through unrelated things I find exactly what’s happening to me posted on a popular tech forum. Looks promising, right?

    Then I scroll down through a few users offering vague and/or unhelpful advice just as you’ve mentioned here… to find the guy who originally had the problem closing off the thread with “It’s okay guys, I solved the problem. Everything works fine now.”

    Well good for you! I’m sure glad you’ve solved this critical problem, probably at a fair cost in time and personal effort, and then decided to arbitrarily withhold the answer from me and the rest of the internet for no obvious reason.

    • Which is worse, that reply or the one that usually goes like: “Why are you even running [YOUR APP, OS, OR OTHER TROUBLESOME TECHNOLOGY]?? You should [INSTALL, BUY, HAVE SEX WITH] something a lot better like [MY APP, OS, OR OTHER TECHNOLOGY YOU ARE UNFAMILIAR WITH AND WASN'T THE TOPIC OF YOUR QUERY] or just get off the internet forever!”

      Also, unrelated to the tone of replies, don’t you just hate it when your solution is some driver or manual that’s coming up 404 because the only link you can find is older than your cat? That’s also when I start loathing the lords of obscure code/info who put such manuals and drivers behind a paywall…

      • Naota says:

        I’m honestly not sure. One offers a needlessly obtuse solution motivated by – and basted in – antipathy for you and the thing you’re trying to accomplish. The other presents no solution at all, but instead the tantalizing knowledge that the problem you have has been surmounted at least once in the past, yet without even a clue as to how.

        They say that there is no fall further than one spurred by hope, yet unhelpful ego-stoking responders can sometimes be worse than no answer at all. Talk about a sadistic choice.

    • Alan says:

      I’m particularly frustrated by the close cousin, “Why don’t you Google for it?” or “You should have used the forum’s search feature, the answer is already there,” with neither one linking to the answer. Yes, it’s tempting to push someone to learn to fish for themselves. But this poisons the fishing pond. I wander by a year or two later with the same question, I’m using Google and the forum’s search feature and whats pops to the top? The “helpful” suggestion to search for the answer. Aaaaaaaah!

      • Alexander The 1st says:

        This reminds me of an even more annoying problem:

        So a couple terms ago, (A bit more than a year at this point), I was working on a UDK game in a game design course, and our team wanted to see if we could get a grappling hook to work in a 2.5-D platformer.

        So since I was in charge of the code side, I went and googled a few examples, most not giving the code itself, just a binary that installed the game and the scripts.u files that consist of the game’s unrealscript source code as it is…compiled.

        Eventually, I come across this one blog post that spends a few paragraphs talking about how aren’t we all annoyed about examples being up there and not explaining how the solution works, so he provides his own solution in code blocks on his WordPress blog page…Turns out, the code he posted wouldn’t work for quite a few commenters, in part because every instance of “||” or “&&” was broken when posted to WordPress.

        So eventually he emails the code posted up to one person after they asked for that bit, and then it still didn’t work for them fully – as in, the grapple system itself wouldn’t trigger…Which led to the original blog poster commenting that it was probably a result of his custom game type class that he had…

        Last I checked, he never did put that one class on the blog. <_< Thus I'm inclined to believe it was Vehicle CTF, because I was recently playing UT3, and it occurred to me now that grappling works there when on the hoverboard and connecting to vehicles…

        (Our team never did figure out how to get a grapple to work in time; instead, we solved the underlying problem of "How do we differentiate this other character from this one here" by giving one of them jump boots. :p )

        All this to say, essentially – if you are going to provide a solution, please double check that yes, it does work as you've provided it online before you decide to stop supporting solving the problem.

      • Volfram says:

        “Why didn’t you Google it?”

        The answer I could give is typically “I just did. That’s how I got here.”

        As great as Google is(“I don’t know how people learned anything before Google!”
        -Mike), it can not give you information that does not yet exist.

    • Scampi says:

      I especially enjoy that my problems seem to have a tendency to be especially unusual in a very specific way:
      I use to have problems which appear to be a common and easily solvable problem, but the common solutions don’t work for some insane reason (and often the problem remains unsolved). When asking about my problems, explicitly stating that I either “already applied the common solutions to this problem” or “already tried steps a), b), c) and d), the answer will, without fail, consist of “try the common solutions”/”take steps a), b), c) and d)”.

      In my experience, “get off the internet forever” is possibly not the worst advice, as it often appears more likely to stumble over the solution to a critical problem by random than finding an answer on the web, thanks to people who post in an almost intentionally unhelpful and condescending way.

      • guy says:

        Oh man, problems with multiple causes are the worst. It’s really irritating to search for an explanation for a baffling error message and find a forum thread full of people saying there is exactly one solution to this problem and everyone else is wrong, only to discover that not a single one of the solutions works.

    • Yeah, this happens off of the internet as well. I think it’s actually a misguided attempt to be thoughtful. Here’s the process.

      I have a problem, I’ll ask for help.
      Now I think that everyone on the internet is working feverishly to try and help me. I’ll work hard too.
      Ooh, I found the solution.
      “It’s okay everyone. The problem is solved.”
      There, now I’ve saved everyone the time they would have spent trying to find a solution to my totally unique never-before-seen problem.

      Of course, this thought pattern is all wrong. The problem is not unique, and everyone is not working on finding a solution for you, and if you would document and share your fix it would help anyone else.

      We get this all the time at work, where someone will send out a company-wide e-mail (to over six hundred people) asking for the answer to some specific technical question, or where we keep some piece of equipment or documentation. Then, an hour later, they will send another e-mail to everyone saying “Sorted”, as in “got it sorted out, you can stop sending me replies now.” About a quarter of the time they are subsequently hounded into sharing the solution they discovered.

      So, yeah, I agree with Shamus. People are terrible at communicating.

  4. Will It Work says:

    This is a really interesting point, especially as I find myself on both sides sometimes.

    One example:
    I had a really angry Twitter conversation with one of the jQuery devs (read it on Twitter) because of a functional misunderstanding of how the framework was parsing my values. I am a professional, I went to school for CS, and have spent the past seven years doing web sites in one capacity or another. Teaching myself jQuery when I’m billing by the hour is not a responsible way to do it, but there wasn’t another dev available for the project for another two weeks.

    Honestly, to sum it up: be calm when you Internet

    • Kyte says:

      Looking at it it seems like you committed Error #1 of debugging: Assuming the error’s on the tools rather than your code.

      (Incidentally why didn’t you split the line and see what data() returned? You’d’ve seen a string and then the question becomes “Why is data() returning a string rather than an object”, whose answer is quite simpler to divine.)

  5. newplan says:

    Meh.

    If you can’t take the heat then get off the internet.

    Someone is asking for free advice. They don’t know enough to know that they don’t want the answer to the question they’re asking – they actually need a whole other set of knowledge.

    Someone pointing this out to them has done them a favor – even if it could have been phrased more delicately.

    • Urthman says:

      I think Shamus’s last few paragraphs are key. The reason not to do that is because it doesn’t work. Giving a hostile response to the question is probably not going to help any more than just not responding at all.

    • Daemian Lucifer says:

      Not true.Telling someone “Read a book idiot,and go away until you learn to use proper tools” is stupid and pointless.Telling them “Read THIS book idiot,and go away until you learn to use THESE tools in THESE ways” is just as hostile,but is way more helpful.

      If you are going to tell someone they are wrong,at least specify why and maybe even offer a solution,and after that add any amount of vitriol you want.

      • Scampi says:

        And even better is:
        “You approach the problem in an unsuitable way. You use tool a), whereas tool b) is the proper tool for such work. So, if you don’t know how to handle tool b), read up on how to use it. I can’t give you better advice than to read book c)/manual d).”

        I don’t give much advice anymore, as I found many people are resistant to learning and rely on being able to ask others how to pick up their shoes from the floor if needed. I tend to be permanently pissed off by people and have accepted that this makes me a not to great councellor.
        So my primary question is: if people don’t WANT to help: why do they post at all?

        • Daemian Lucifer says:

          “I don’t give much advice anymore, as I found many people are resistant to learning and rely on being able to ask others how to pick up their shoes from the floor if needed.”

          These two arent mutually exclusive you know.Who would you rather have as a teacher in an unfamiliar field:Someone that simply says “Heres a book,study from it”,or someone willing to answer your questions?Learning through interaction with people in real time* is always preferable to learning through passive interaction via books.Plus,even if you want to learn through a book,having someone point you to a book that has the answer you want is preferable to searching on your own.

          *Real time doenst mean just instantaneous or face to face anymore,but rather encompasses emailing and forums.

          • Scampi says:

            Well…when I said “resistant to learning”, I specifically meant people whom I carefully explained something so they would not need my help the next time the same problem would arise. When I come around to solve a problem a 2nd or 3rd time, I usually ask: “We worked over this the last time and I told you how to do these exact steps on your own. Why didn’t you do it yourself?”
            If the answer is “I don’t need to know it. If I have a problem, I can just call you”, I won’t bother helping anymore. It happened way too often to me.
            The people I was talking about therefore were less resistant to “learning” per se but refused to be taught as it was way less comfortable.

    • Syal says:

      Someone posting rudely hasn’t done anything except make everyone angrier. Leading with hostility makes people much less likely to listen to any advice you give. Right or not, you’re wasting everybody’s time.

      And that’s assuming you’re actually right about them wanting to learn how to program. If they have precisely one thing they want to do in their lifetime that involves programming, being told to wade through however-the-hell-much data is not doing them a favor. It’s like telling someone to learn Russian because they want to assemble a chair and the instruction manual is in Russian.

      • newplan says:

        You’re on a forum. You’re asking for advice.

        You’re not paying the person who dispenses the advice – they’re doing it for whatever reasons they have.

        The favor part is actually explaining that you’re completely off base – not the indelicate phrasing.

        If you don’t like the indelicate phrasing then pay someone for support and they’ll be more than polite.

        Don’t like it? Then ignore the “rude” advice and only listen to people who tell you what you want to hear.

        • Mephane says:

          <insert gif with octopus walking across the ocean floor with the word “nope” overlaid />

          There is no justification to be rude to anyone because they ask a question. Even if it is stupid. Even if they don’t pay anyone to answer it. No one is obligated to answer, so if you don’t have anything helpful to say and you think the OP is not worth your precious time, why do you even respond to them in the first place?

          And I don’t get your last sentence. The point was not to tell people what they want to hear, but to stop being rude to each other. You can still tell someone “your original premise is deeply flawed for reason A, you should never do B because of C, I suggest reading D for further information” without pointing out how stupid you think they are.

        • Syal says:

          Presumably the point of answering a question is to help. You don’t help with rude answers.

          Like you said, these people aren’t paid to answer questions, which means they shouldn’t be worn down from answering stupid questions from obnoxious people all day. They shouldn’t be tired or irritable from anything related to the forum. And if they are they don’t have to answer.

          Therefore, the cause of the rudeness is a lack of communication skills. Considering good communication skills are necessary to answer questions helpfully, it’s in the interest of these volunteers to improve them. It’s not hard; you just need to know what you’re missing. I fail to see why anyone would have a problem with a post outlining common deficiencies in these people’s answering styles.

          Civility is not something that should need to be bought.

        • Felblood says:

          While that is great advice for people asking questions, this collumn is advice for people answering questions.

          In short, if your answer is too confrontational to be helpful, even if your audience wouldn’t be too turned off to read it, don’t waste your time writing it.

    • WillRiker says:

      I refuse to buy this BS that being a dick to someone is somehow doing them a favor. It’s perfectly possible, when faced with someone who doesn’t understand enough to even ask the right questions, to nonetheless guide them in a way that isn’t abusive. This sort of shit drives off people who would make perfectly skilled developers if people were willing to help them learn instead of heaping abuse on them for not knowing everything already.

      Really, when you berate people for asking questions, what you’re actually doing is tearing other people down in order to make yourself feel superior. Because you’ve already gone through the phase where you don’t understand how to design software so everything you write turns out terrible (yes, you went through that phase. All competent programmers did)

      So, what I’m really saying is, if you want to be an asshole to people who are looking for help, go right ahead. Just don’t pretend like you’re doing them a favor.

      • Cybron says:

        Absolutely this.

        You are not doing them any sort of favor. You are not required to do them any sort of favor, but please don’t pretend you’re being remotely helpful or somehow acting righteous by being a jerk to people over the internet.

      • Stranger says:

        I’ve heard it explained this way in class:

        When you mock someone for asking questions, it’s potentially going to have an adverse effect. What you’re doing is not teaching someone to look it up themselves, you’re teaching them not to ask questions. So, in essence, someone is being conditioned not to ask and to just either guess at how to do it or simply not do it.

        Neither is a good outcome.

        A polite solicitation for advice, help, or input should not be met impolitely. An impolite solicitation should be ignored until it becomes polite.

        And because there’s one last thing from that class:

        “It costs you nothing to be polite to another human being.”

    • Tizzy says:

      The thing is: anyone who’s tried to do anything with the help of the internet must have run across these forums where someone asks exactly your question, and then you have to wade through pages of dickish posts before you can find anything remotely constructive. (“Oh great! another one of *those* replies!”)

      Why would you want to perpetuate this?

      Being nicer, or simply giving constructive advice, does take more time. But isn’t it worth it?

      • Dave B. says:

        I can tell you that I often scroll through long forum threads only to close the tab in disgust because instead of providing a useful answer to the OP’s question, everyone just posts snarky jabs at everyone else’s “ignorance.”

        I also hate when the OP asks my exact question and someone says “This question was already answered here” and links to a thread answering a completely different question. It might even be what the OP wanted, but it wasn’t what I wanted.

    • X2Eliah says:

      Meh.

      If you can’t take the heat then get off the internet.

      This makes me sad. Do you peruse reddit/4chan/SomethingAwful, by any chance?

      • newplan says:

        That made me laugh.

        Imagine asking for programming advice from 4chan.

        I’d love to hear what they’d come up with.

        LOL.

        • Naota says:

          Likely a long stream of madness, memes, and hostility that continues for many posts… surmounted by one containing, against all odds, exactly what you’re looking for.

          • swenson says:

            I wouldn’t be surprised by this, actually, it seems to be how that sort of thing goes. You just would have to be able to pick out the helpful answer from the troll ones, in which case you probably have the required knowledge already.

            Also, seven hundred people telling you the solution is rm -rf.

        • X2Eliah says:

          Um… Something exactly like your response, I’d imagine.

        • Cybron says:

          They have a programming board. It’s pretty useless. Even when the residents are feeling helpful, it’s mostly populated by hobby programmers, not professionals, who are unlike to give advice which is functionally useful. It’s also even less moderated than most parts of the site, which means it’s a never ending torrent of incomprehensible and unrelated nonsense.

  6. Daemian Lucifer says:

    Why would you want to forum?

    Sorry,it had to be done.

  7. HiEv says:

    When I’m Googling for an answer, jerkbag answers are easy enough to ignore when they’re devoid of any constructive criticism.

    What I really hate is when I Google for an answer, find someone who has the exact same problem that I have, and then they make a later post that only says, “Never mind, fixed it.” Fixed it how, dangit?!?

    • Daemian Lucifer says:

      Oh god yes!Those are the worst.

    • Akri says:

      This. So much this.

    • A. Hieronymus Bosch says:

      I’ve come to the conclusion that they must be a form of sophisticated spambot that looks for problems without solutions.

    • Yarhj says:

      Oh god the horror. Alternately there are the times when you find what’s clearly the same poster on several different forums, and no one has replied to any of his threads. Of course, there’s an XKCD for that.

    • WillRiker says:

      To be fair, http://stackoverflow.com/ was invented to solve this very problem, and they’ve done a pretty good job of it.

      • Tizzy says:

        ^ Exactly that ^

        In a post stack-overflow world, the useless chatter on boards will hopefully die down, and constructive help will reign. (And everyone will get free breakfast.)

      • Volfram says:

        Oh man, I love StackOverflow! So many good solutions to my problems!

        Even if the problem is “You really should not be running different SDL windows in different threads. The new version of SDL supports multiple windows.”(Multiple display threads is a recipe for lots and lots of thread collisions and spaghetti code, for anyone who hasn’t worked with display threads before. My response to this answer was “Oh. Right.”)

      • ET says:

        SO definitely produces a lot of useful answers to questions, but in my experience, the community ends up being jerks to each other, and especially new people.
        It takes a very long time to get to the point where you have the permissions to do anything useful.
        I’d really like something like an aptitude test, so I can prove that, yes I have a degree in Computer Science, yes I am capable of answering questions in a useful way, and gosh-darn-it, why the heck can’t I answer questions in the [insert name of computer- / CS-related SO sub-website here] area?
        I have the expert knowledge!
        I’ve already read the four answers which do not answer the asker’s question fully, or properly!
        Let me in!

        • Alan says:

          You can ask questions and post answers without any hurdles at all, which to me seems like everything you need to to useful things. Which of the privileges do you think are necessary to do useful things?

          • ET says:

            Vote up/down, flag posts, talk in the meta, and comment everywhere.
            These aren’t directly needed to “answer” a question, but what happens when you need more information on somebody’s question in order to answer it fully?
            The rules disallow asking for information in an “answer”, and state that the appropriate place is in a comment…which you can’t do.
            Voting and flagging are essential to weed out trolls and other inappropriate content/users, but again, you can’t do that right away.

            You might say that it’s easy enough to earn the requisite points, but your early points are the hardest to come by.
            What’s really infuriating, is when somebody decides to vote your answer or question down, because they know hardly anything about the subject matter at hand, and misunderstand something critical.
            Especially because being voted down takes points away, but after you waste several hours explaining to that person that indeed, the problem was on their end, them removing the downvote doesn’t restore your precious points.

            • Alan says:

              I’m with you on comment everywhere. I’m not seeing the benefit of keeping it precious.

              Being able to vote up and down isn’t usually a problem, there are usually plenty of other people who can do so. Same for flagging. And setting that minimum threshold sets a simple barrier against creating griefing accounts.

              My overall advice is not to sweat it. Ask questions, field answers if you’re able to. Eventually you’ll get the reputation. It’s not like there is a prize attached. (I have seen some people suggest making hiring decisions based on StackOverflow reputation. I guess on the up side, I know who I never want to work for, because that is insane.)

        • Volfram says:

          Every question I may have ever wanted to ask has already been asked, and every answer I could give has already been given more accurately by someone more qualified.

          I don’t post at SO. I just read.

  8. Tse says:

    When I’m searching for a simple function of a program I’m learning, I always find a lot of responses that say “If you don’t know this, you should learn the program from the beginning.” No shit, Sherlock! What do you think I’m trying to do?

  9. Robyrt says:

    Don’t worry, your sample “helpful database answer” is pretty good. Here’s how I would explain it:

    The original poster has managed to put a table inside each row of his table using a big varchar field, and he’s wondering why it won’t return a proper list of measurers and their associated trials. Fortunately, this is exactly the problem that databases were designed to solve! He needs to split this into 2 or 3 tables (runs, measurers, and trials) and write a little SQL query (about 10 lines of code) to get the results from everything at once. This will be much more sustainable because you can add lots and lots of runs, or even change how many measurers or trials you have per run, while having the database do all the heavy lifting of grouping and sorting for you. Basically, you want to set up the database so that each piece of information has its own field, instead of having to churn through complicated strings every time.

    Although you can force SQL to make your results look like the jagged array in the original post using CROSS APPLY, this will bring back some of the very performance issues you were trying to avoid. Instead, refactor your code so it can read the query results from your new database and put them into your objects without going through the intermediate array step. A properly sorted query should let you do this on just one pass through the results.

  10. MadTinkerer says:

    Let me assure you that the live action Starship Troopers movie is one of the shallowest, most unfaithful movies based on a science fiction novel ever. They took the classic science-fictional-war genre novel and perverted it into pure anti-military propaganda with the repeated gory punchline of “human soldiers are too stupid to live, but bugs are cool enough to deserve to win”.

    Go watch Pacific Rim instead. Why do I specifically recommend Pacific Rim? Because Pacific Rim is closer to the source material of the Starship Troopers book than the Starship Troopers movie.

    The Starship Troopers book inspired the Starship Troopers anime. The Starship Troopers anime inspired a whole subgenre of animation. Gundam is a better Starship Troopers adaptation. But that’s not hard: Power Rangers is a better adaptation.

    Or just go play Starcraft. Ignoring the psychic / mystic bits, that’s pretty much the best S.T. adaptation right there.

    P.S. Also I agree about most of Shamus’ points. I mourn the death of Netiquette.

    • The Rocketeer says:

      If you want your Starship Troopers without obnoxious, heavy-handed, backwards propaganda, you don’t want Starship Troopers at all.

    • Nick Pitino says:

      You said pretty much what I came here to say.

      There are going to be people who will say, “But the book was fascist, lol.”

      And you know what? I’m not even going to dispute that, the world presented in the book isn’t someplace I’d want to live. But that still doesn’t stop it from being an interesting, entertaining read and arguably one of the best works of science fiction of the 20th century.

      So to see Paul Verhoeven go and take a giant diarrhea-dump all over it is…maddening, to say the least. Especially compared to what it could have been.

      Kind of makes me glad that they’re making what looks like a really crappy Robocop remake.

      “SEE?!? SEE HOW IT FEELS WHEN IT HAPPENS TO YOU!?! THAT’S WHAT YOU GET!!!”

      • RodeoClown says:

        The best description of the Starship Troopers film was “The movie based on the cover of Robert Heinlen’s book!”

        It seemed completely accurate (and I enjoyed the movie AND the book).

        • HiEv says:

          I liked “Barbie Dolls in Space”, because everyone in it was so pretty. ;-)

          • Tizzy says:

            I didn’t hate the movie, but it seemed so condescending to the audiences. Let’s give the low-browed masses the fascist militaristic crap they hunger for, while making fun of them openly because they’re too dumb to notice.

            But never ever challenge the viewer: keeping both the dumb ones and the ones who are n on the joke comfortable and complacent, never ever challenge their viewpoint.

            OK. Fine. Just don’t expect me to be impressed.

            The news flash were an interesting device, though. In the 90’s, European TVs had been awash with excellent programs based on WW2 newsreels from all countries involved, fascinating stuff, and I wonder if it had an influence on that.

      • Rodyle says:

        As a Dutchman, I have to apologize for this man. He basically signifies everything wrong with Dutch cinematography.

      • Felblood says:

        There already was a terrible remake of robocop that stoor for all the things that robocop opposed.

        It was called robocop 3.

    • Scampi says:

      I, sadly, had even forgotten it (Netiquette, not ST) existed at a point. You just reminded me.

    • Daemian Lucifer says:

      “Let me assure you that the live action Starship Troopers movie is one of the shallowest, most unfaithful movies based on a science fiction novel ever.”

      So you havent watched I,robot then.How I envy you for that.

      • Volfram says:

        Starship Troopers was intentionally contrary to the book(which I think is probably Heinlein’s best work), while I, Robot simply ignored the original book. I’m not sure whether that makes I, Robot better or worse.

        You are correct, though. It was a decent action movie, but it was complete garbage as analysis of Asimov’s philosophical work. I’ve ranted at people for hours on why the plot doesn’t make any sense.(OK, so Sunny has a second brain that can ignore the 3 laws, but his penultimate moment involves him taking an order from a human enforcing them. The robot that saved Will Smith’s character violates the 1st law by not going back to save the little girl, and it’s never addressed. The robots CAUSE HARM to humans in order to protect them? Robots faced with the choice between causing a small amount of harm and causing a large amount of harm in the book had a meltdown and WENT INSANE!)

      • Retsam says:

        I’m always sad at “I, Robot” bashing on the internet. (Unless your complaint is “man, that comma in the title makes it hard to use in a sentence without awkwardness”) Yes, it’s not faithful to the original, but that doesn’t immediately make it a bad movie. (It wasn’t even originally based on Asimov; the 3 Laws were “adopted” later in the planning)

        I find the movie to have decent characters, decent humor, decent action, and even a fair bit of suspense and depth, all put in an interesting setting. I think the main problem is that people come into it with the expectation of “Asimov” and find “action movie”, but if you come into it with the expectation of “action movie”, you find that it’s a pretty darn good one.

        • Daemian Lucifer says:

          Depth?Character?Ok,removing myself from the book,lets discuss just the things presented in the movie:

          The blatant over the top ads.

          Will smith is the only person in the world to distrust robots for some bullshit reason(“Yeah,my girl died when my car brake failed,so now I think ALL cars are evil” is a bullshit reason to distrust a piece of machinery),and guess what,he is right,because he is the protagonist.

          The blatant over the top ads.Everywhere.

          A full squad of cops has trouble taking out one single robot,and will smith struggles to fight off a few of them,but manages to do so because he had his car.But then we find out he has a robotic arm,which makes him able to singlehandedly fight off a horde of robots because….conservation of ninjutsu I guess.

          Did I mention the blatant over the top ads?They are everywhere.

          The robots decide to reprogram themselves to disobey all the laws in order to help humanity as a whole.That nice.But why does that turn them into jerks all of a sudden?

          Also the blatant over the top ads.They are god damn annoying.

          The only worthy character in the whole movie is a machine.Something is wrong with your movie when the most human thing in it is an object.And will smith doesnt count,because he is playing will smith,only angry at robots.Yeah,he is a cool guy,but that doesn make him unique.And he can insert something else than angry at robots,as he does in some of his better roles.

          And last,but not least,those GOD DAMN OVER THE TOP ADS!

          And if I had any interest to watch this piece of shit again,I would probably find a dozen more flaws.

          But I admit,some of these flaws I would probably lets slide,if it had a different title.But it doesnt,so I wont.Also,the ads would be just as annoying if it was called something else.

        • Stranger says:

          Somewhere I heard “I, Robot” with Will Smith was not intended to be named such or be related to Asmiov’s work more than tangentially.

          Suddenly that explains so much about that movie. I mean it was a decent Will Smith flick, but it was a pretty poorly done adaptation of an Asmiov work. But then, I don’t see how you could adapt Asimov with anything less than an exceedingly hard sci-fi film.

      • Woodthorn says:

        Or World War Z.

    • Volfram says:

      I still have not seen Pacific Rim, AND I WANT TO! Even more, now.

    • Duffy says:

      While I enjoy the movie I do wish it was some other property, it really is an insult to the book, even if you don’t particularly like Heinlein’s views. I think the most annoying part is how often they pull something from the book but warp it to make it seem like the book was crazy.

      An example for anyone who hasn’t read it: Getting into the mobile infantry is hard and requires a ton of training in the book. When Rico get’s discharged for the training accident it’s because he killed someone in a simulation by not doing the range calculations for firing a simulated nuke. No one died from it in the book. Training quality was a huge thing in the book.

      • Volfram says:

        “I think the most annoying part is how often they pull something from the book but warp it to make it seem like the book was crazy.”

        Difference between “YOUR ENEMY CAN NOT ACTIVATE HIS NUKES IF HE HAS NO HANDS!” *lawl* vs. “If a baby did something you didn’t like, would you discipline it by cutting its head off?”

        I seem to recall that Rico *did* the range calculations, and knew the other guy was within the blast radius, he just decided he didn’t care. Also, he was never discharged(Mobile Infantry aren’t as forgiving as NERV, they never would have let him back in), just flogged.

        But yes, the guy who “died” wasn’t killed, his armor was just shutdown because “you are dead.” Rico was on the receiving end of that, too, so he knew what it felt like. If I was in a suit of armor that shut down, they’d probably let me out once the screaming got too unbearable. I suffer from pretty intense claustrophobia.

  11. silver Harloe says:

    When a fellow programmer asks me a “how I do X?” question, 75% of the time, the answer has been “don’t do X, do Y.” But it always takes a half hour of trying to pull teeth to find out what the real requirements are. Which means at some point I really do ask, “why are you doing X?” which directly contradicts Shamus’ tweet. But the question is valid – if X seems weird, maybe it’s because the programmer is approaching the problem the wrong way. It’s probably because tweets are short so Shamus couldn’t put enough dick in his, but I generally find the question “why are you doing that?” to be one of the LEAST dickish replies I could use. I mean, I know me, and I know how I “sound” over the internet, so I’m probably considered a jerk when I answer questions, but I do try to get at the real problem and answer how to do that to the best of my ability — even though the great majority of the time, my answer has nothing to do with the X in the original question

    • postinternetsyndrome says:

      I would say that the reasonable way to approach these cases is to step 1) answer the original question, flawed or not and then 2) propose alternate solutions.

      • silver Harloe says:

        the original question, “flawed or not” – except that often times, the “flaw” is: you can’t do that. I’m trying to find the right analogy, I think it’s something like this:

        “hey, silver, how do I fit bread into the blender without folding it?”
        “uh, what?”
        …loooong conversation about whether smaller pieces of bread are okay or what’s so bad about a fold when we FINALLY get to:
        “see, I was trying to use your drink mixing function to make a sandwich, since I also have the ‘ingredients list’ problem. I found a hack where I can make the blender handle the fillers, but I can’t get it to put bread around that”
        “omg wtf noooooooooooo. I mean, uh, can’t we pull out the ingredients list into a separate function and keep the blender far far away from sandwiches?”

        closer to reality (by ‘closer’ I mean, this problem came up, but the text is altered):

        “how do I do a negative lookahead in a regexp?”
        “(?!foo)”
        “that totally didn’t work here” … long conversation … turns out he was working on Apache htaccess rules and needed a RewriteCond before his RewriteRule. but I’ll be sporked if there was some way to know that from the original question.

        Sometimes people really are asking how do they get their glass bottle to work as a hammer :(

      • James Schend says:

        As I posted above, answering the original question (when it’s based on bad assumption) will just poison the thread so the next person who comes by will implement your answer and the world as a whole ends up with more and more buggy, wrong software. I don’t like buggy, wrong software.

        If the original question is based on someone approaching the problem the wrong way, the only correct response is to guide them in the right direction by *not* answering their question as asked. If it turns out there’s all kinds of unspoken context that makes their question relevant, well, then until they give me that context I’d rather not pollute the thread with the answer. That way at least the hacks who just copy and paste code samples from threads won’t read past the first three posts and give up.

        The other problem here is people who ask questions about how to do uncommon weird things, and don’t bother to explain *what they’re actually trying to accomplish*. Without knowing the high-level summary of what you’re trying to accomplish, nobody can answer the question well.

    • Vellan says:

      Except that isn’t what Shamus’ tweet said.

      There is a vast gulf between “Why are you doing that?” (ie: please provide more information for a more accurate answer) and “Why would you want to do that?” (ie: you are insane for wanting that).

      • MelTorefas says:

        Your reply perfectly outlines the subtle distinctions in language that are so important for avoiding the miscommunication Shamus is talking about.

        • Trix2000 says:

          This. So much.

          There’s a reason I can spend an hour on some emails/posts – I can’t help but reread it in my head and think about how it might sound. And don’t get me started on how many posts I’ve written up and then deleted because I suddenly thought it sounded bad and/or unproductive.

          And I still don’t think I do an amazing job in the end. :/

      • silver Harloe says:

        two words and an assumed tone of voice? really? what if the person just thinks “why would you do that?” and “why would you want to do that?” are exactly the same question?
        remember: it’s not just that other people can’t interpret your tone of voice from text, it’s also the case that you can’t really know anyone else’s tone of voice.

        • Trix2000 says:

          It’s still ambiguous, though. Maybe there won’t be a problem, but I’d rather rephrase to make things clear rather than risk a misinterpretation. Obviously we can’t catch everything, but it doesn’t hurt to think about it and assume the worst will happen.

        • Felblood says:

          Which is exactly the problem this blog post was created to address.

          Some people misinterpreted the tweeted version, so now we have this one to clear things up.

      • James Schend says:

        I don’t read those two phrases as two different things. Which is probably why I misinterpreted Shamus’ tweet in the first place (I think?) and send him that article in response.

        Maybe it’s a regional or cultural thing? I don’t see any negative connotation to “why would you want to do that?” compared to “why are you doing that?”

      • Cuthalion says:

        I guess it could be regional. Personally, I assumed “Why are you doing that?” was the same as “Why would you want to do that [because it's so clearly wrong, and also you're dumb]?” So, both condescending to me. Trickiness of communication, I guess. I would’ve seen the less confrontational version as along the lines of, “What is this code meant to do?” Even that could be interpreted as condescending, but it’s the best short phrasing that comes to mind.

      • Syal says:

        I wouldn’t call it a vast gulf. “Why are you doing that” can be read the way you described, but it’s more likely to be read as “Why would you want to do that?”, just because you’re asking for more information while saying very little about why you want it.

        But that’s a first impressions thing; if you’ve already made your impression the reader will interpret “Why are you doing that” however you’ve set them up to.

    • Well, it’s easy to speculate, and takes about as much time as complaining.

      For instance, I make a lot of guesses when trying to troubleshoot people’s problems. Here are a few good examples (I’m Dudecon): http://www.minecraftforum.net/topic/202591-forester-for-beta-mcedit-adds-large-trees/page__st__40

      Basically, you want to first answer the actual question (if possible). Then speculate as to how they got there, preferably in the form of a question or series of questions. Finally, offer some common solutions to the speculated problems, just in case you’re correct with your first few guesses. This cuts down on the cycle time, and helps the person get a feel for the space they are operating in. It’s like shining a light around a room. It may not help that particular issue, but it helps everyone else operating in the vicinity of the problem.

  12. Dev Null says:

    I particularly hate the “UR DOING IT WRONG!” response because, to fit my complex technical problem onto an internet forum, I have frequently simplified the example I give. And it turns out simplifying a problem without fundamentally changing the simplest answer is actually kind of hard. So half the time it devolves into a useless back-and-forth like:

    Me: “I want to do A, with B and C. I’ve scrounged around and all I can find is examples of B or C. Can anyone point me at an example that uses both?”

    m@Xh@X0r: “Why u use B? You r idiot; D way better.”

    Me: “Well actually, D won’t work in my case, because the smoke-shifter turns out to be left-handed. I need to use B and C.”

    m@Xh@X0r: “That’s dumb. Just re-write the compiler in 8086 assembly.”

    Me: “Oh for Ada’s sake; I can’t. I’m actually trying to solve a real problem under non-optimal constraints, and I’ve actually thought about it, and I’ve worked out that I need B _and_ C. Could someone please just answer the damned question?”

    m@Xh@X0r: “Man, if you want help, you shouldn’t be so rude…”

  13. John the Savage says:

    Never underestimate the power of being calm and polite. I have, in the past, made xbox live matches pleasant places to be in, with polite words and my NPR voice eventually drowning out the bile that usually comes with the territory.

    • postinternetsyndrome says:

      I want an NPR voice…

    • ET says:

      Could you head on over to LoL and do a similar thing?
      That community is suuuper hostile.
      I wore myself out already, trying to get people to stop being jerks… :|

    • Trix2000 says:

      I used to make a habit in MMO global/region chats of trying to steer bile-filled flamefests into reasonable discussions. Was pretty awesome when I managed it, though as anyone could imagine difficult.

      • Chargone says:

        I managed to produce about a half hour of sane, reasonable, friendly chat in WoW’s barrons once a few years ago… i mean, a lot of it was about the in game sky, of all things, but it happened. People were baffled and amused by this fact. Probably helped that the region’s population was on the low side at that time of day, but still…

        Just started talking, calmly, politely, at length, kinda rambling… responded nicely to people… it was kinda cool.

        That said, i quit playing when i hit level 40 something, couldn’t find a wandering boss, asked if anyone had seen him (my first question to do with gameplay since i started) and got a tonne of bile for not playing with various interface add ons i’d never heard of and no help for my troubles…

  14. Alan says:

    The inquirer may not have shared some important context, perhaps because it seemed irrelevant, or so obvious as to be not worth mentioning. When one programs professionally, one encounters all sorts of weird constraints. Bosses ban you from good technologies or shackle you to bad ones. Co-workers develop poor interfaces, and you lack the authority to challenge them or fix it yourself. You’re stuck using some weird proprietary piece of hardware or software. You’re forbidden from touching the database schema and your requests to change it are refused.

    (Edit: I see Dev Null beat me to the point.)

    • RodeoClown says:

      Then SAY you have those constraints :)

      An extra sentence or two outlining *why* you need the question answered can go a LONG way in helping the answerer out. And if you’re asking someone to spend some of their time to help you with your work, it’s the least you can do ;)

      • Alan says:

        “Use your psychic powers to determine what information every possible answerer might need,” is not quite the helpful advice you think it is. :)

        Appreciating that human communications are imperfect and require constant tradeoffs between clarity and completeness can go a LONG way toward helping everyone out. If you’re going to interact with human beings, it’s the least you can do. ;)

    • James Schend says:

      If you have a good reason for doing it that way, but don’t provide the context of *why* you have to do it that way, why wouldn’t you expect the answer, “don’t do it that way?” Nothing that “seems obvious” is ever obvious, and context is never “not worth mentioning”.

      (Especially in programming, where knowing a bit of context can lead to a solution that’s 30 times simpler. “Oh you’re using language X? Language X has a one-liner function to do exactly that!”)

      Look if you have weird requirements or constraints, then lay them out on the table right away. If you don’t, I (and everybody else reading) is just going to assume you’re doing it wrong and avoid giving you answers that might lead to you doing it wronger. Because the next person who comes across the thread won’t have the same weird requirements or constraints, will blindly copy-and-paste the code from the thread, and now they’re doing it wronger and we never even had a chance to talk them out of it.

      • Cuthalion says:

        This isn’t relevant, and I’m sorry for it, but every time I don’t look directly at your avatar, it turns into Strongbad’s head.

        I felt this was important to mention.

      • Dev Null says:

        And yet, part of Shamus’ point was that you’re not just writing a response to the questioner, you’re writing a response to the hundreds of other people who will google into this answer in the years to come. And _they_ got there because they wanted to know how to do X, which was the question I asked in the first place. My constraints aren’t relevant to them, and they have their own sets of constraints, which led them to search for an answer to X in the first place.

        I’m _never_ going to be able to include every aspect of what led me to this design decision, without attaching a 74-page design spec and asking the internet to do my job for me from scratch. I’m not saying that its bad to offer alternate solutions, but communication works better if you: a) be polite, b) also answer the original question, and c) allow for the possibility that I _might_ just know what I’m talking about and know why I asked the question I asked. If you think its a stupid question to ask… not answering it at all would be better for me too, so its a win-win.

        • ET says:

          This right here.
          Everyone has different constraints, which may or may not be useful to the people Googling this question in the future.
          Just turn off your pride/anger/whatever, and answer the dang question.
          (We all struggle with this, because we’re human. :)

        • James Schend says:

          You have to realize there are a lot of “email me the codez”-type people out there, let’s call them Bob, who will literally go to the first forum post that seems to answer their question, literally copy and paste the code sample from the first response to have code, and literally ship that to customers as a working product.

          Those are the people we’re fighting. And yes, I 100% understand that *you* asked the question because you had a very good reason, but Bob will come by the thread next, blindly copy the code, and put it in his product.

          And now Bob’s solution is crummy- it doesn’t account for X, because your constraints made X impossible. It’s not usable for Y, because your constraints had no GUI but his environment does, etc. Now Bob’s shipping software that’s crappy, because he followed advice that didn’t apply to him.

          Take the advice I posted in the first post about finding the correct path to the My Documents folder. Do you know HOW MANY pieces of software get this wrong? Amazingly popular “enterprise quality” pieces of software? Like the Java JVM? (Which, incidentally, is why it’s impossible for any piece of Java software to run bug-free on Windows, but I digress…) That’s just an indication of how many Bobs are out there.

          *IF* you provide the constraints, so we know about them, then sure I’ll answer the question. Bob’s an idiot, but I assume he’s at least smart enough to figure out when a thread doesn’t apply to his problem. But if you don’t provide the constraints, then I won’t… it’s not because I’m trying to make your life hard, it’s because I’m trying to make Bob’s life hard.

          Yes, you are writing a response to the hundreds of people who come later. And if they don’t share the original asker’s unspoken constraints, you’re writing a *wrong* response to hundreds of Bobs.

          And look, you don’t need 74 pages to describe the problem. Your problem isn’t that complex, believe me– boil it down to 2 paragraphs. If you can’t boil the problem down to, say, 500 words or so, then (in my opinion) you don’t understand the problem yourself, and haven’t done enough work to isolate it from the rest of your project.

          But don’t, please God don’t, go into a forum and tell Bob to use a lookup table to find the path to My Documents. I’ve spent my entire career in IT doing almost nothing but finding workarounds for that awful bug, and I’m sick of it. I want software to finally at long last get that thing RIGHT. EVERY TIME.

          • Felblood says:

            Yeah, okay, but the thing about Bob?

            He’s a lost cause, man.
            I know it’s hard, but you just have to let him go.

            He’s got terminal lazy, and no amount of working yourself and the OP to death is going to bring him back.

            Just… Just take a few minutes to say goodbye, and then turn off the life support.

    • swenson says:

      Keeping that in mind, then, I still think “X seems like an inefficient way to do that for these reasons, Y is typically seen as the better option, is there a specific reason that you need X?” At the very least, make some vague effort to address the original question before you ask for more information.

      Or if it’s completely incomprehensible, at least say “I don’t understand what you’re asking. Perhaps you should look into Z, that might be what you’re looking for.”

  15. Mephane says:

    So I was really wondering, is that Neil Patrick Harris in the last Starship Troopers screenshot?

    It turns out that yes, it is! Wikipedia mentions him having a role in that movie.

  16. Greetz says:

    So true regarding computer troubles. I recently had a problem with graphic card X, soi went online to see if anyone else had the same thing going i had. Most anwers were “why did you buy X!? Y is so much better!” If not that it was “Personally i run two X’s in sli, no problems here”

    I like those. They help a lot.

    • BrokenLute says:

      There would be a special place in my little black book, if I had one, for all those eager 1st-2nd posts that instruct you to “update your drivers”.

      In retrospect, that seems to be the universal “get out of jail” card for all tech support in the entire Universe.

      Compared to that, everything else IS helpful :).

      • Blue Painted says:

        And the ever popular “Ah, well, it’s probably a permissions issue. Contact your IT support for that. Kay thanks bye.”

        :-(

      • bucaneer says:

        Also, for Windows – “try running it as administrator”. I cringe whenever I read that given as advice for pretty much every problem. The scary part is that it works often enough that it keeps getting repeated over and over again.

        • swenson says:

          I was just about to say “but it actually works!” until I read the last half of your post. It truly is disturbing how many times I’ve had a problem solved purely by running a program as an administrator. For example, Visual Studio, ten minutes ago. (but on the plus side, it was smart enough to tell me that’s what I needed to do!)

          • Friend of Dragons says:

            I absolutely could not get Jade Empire to run on Steam (Would barf up some error message about some file), tried a bunch of suggested fixes from the forums to no avail, until I ran everything involved as administrator.

      • James Schend says:

        I love “defrag your hard drive”. Given as advice for Windows Vista, Windows 7, or newer releases of OS X. Might as well answer, “squeeze a lemon over your head and dance in a little circle.” Both can only work via placebo effect.

        The saddest thing is, some people giving this advice *genuinely believe* defragging a HD is: 1) necessary in modern OSes, 2) actually can resolve problems other than “disk access is slightly slower than normal”.

        The even worse part is that unnecessary defragging of a SSD can actually lower its lifespan significantly. But I think most defrag tools by now are aware of that and just don’t bother with SSDs.

        • Chargone says:

          Crusader Kings. (the first one)
          ‘Defrag your hard drive before playing’ actually Is the solution to most of it’s bugs (there were some screw ups due to it being rushed and the partner company bailing on it unexpectedly and other stuff leading to appalling code… which they had Mostly fixed by the time they released the expansion… which introduced new problems, it ultimately ended up being one of paradox’s few (perhaps the only?) Games not to end up basically bug free, all tech support issues not resulting from highly non-standard stuff on the user’s part, having solutions, etc by the time they stopped supporting it.)

          …text input in this comment box pn my tablet is lagging…

      • Tizzy says:

        The thing about updating drivers is that sometimes, it actually works, and then you wonder why you didn’t do it before.

        Until the next time when you update and everything crashes.

        I once bought a machine that shipped with the instructions: “do not update any drivers. It works as is, has been designed and tested with those, so don’t break it.” Not the most helpful of instructions…

      • Volfram says:

        Does your little black book happen to have the words “Death Note” and a little cross on the front?

      • Rick C says:

        And then, one time, updating drivers does something! I bought a cheap little USB wifi adapter. It was supposed to be wireless N but it would frequently drop to 1-2MBps connection speed. It was also causing my computer to crash when waking up from sleep.

        I found an updated driver from the maker’s website (it used a fairly standard chip so Windows had built-in drivers, but they turn out to suck with this piece of hardware) and the problem went away.

  17. Infinitron says:

    By giving a harsh answer you are delaying the point at which the other person realizes just how horribly wrong they are.

    I’m not sure that’s always correct. On the contrary, some people might not realize they’re horribly wrong UNTIL they’re shouted at.

    • Shamus says:

      I can imagine a situation where getting scolded by a colleague who is known to be a reasonable person might shock someone into questioning their actions. “Wow, Bob has never talked to me like that before. Something I’m doing must be way off the mark!”

      But the internet is lousy with people who default to “YOU ARE STUPID AND WRONG!” in all their communication, so if you’re dealing with a stranger then shouting at someone can’t have the desired effect. They’ll just assume you’re another internet crazy person.

      • mewse says:

        When harshly scolded by a colleague who is usually quite reasonable, my experience has been that most people’s first reaction is to assume that that colleague is having a really stressful time, and isn’t coping well.

        Or at least, that’s my reaction when I see it happen — I back off, give the person some space, and try not to take what they’ve said too seriously. Because I know when I’ve blown up at someone like that, it’s never been because of what they said; it’s just things boiling over at the first person to come talk to me when I’m already feeling extremely stressed and unhappy.

        (It’s the worst feeling ever, incidentally, realising that you’ve exploded at someone who didn’t deserve it. It’s been more than four years since I last blew up at someone, because I’ve spent a lot of effort on avoiding getting into that state where I’m liable to do it. But the regret over past outbursts never, ever goes away)

    • Syal says:

      Even if that turns out to be the case, it’s best to exhaust all the other possibilities first.

  18. RTBones says:

    “If someone asks a, “How do I X?” forum question and you answer, “Why would you want to X?””

    I’m sorry, Shamus – when did you work in tech support for Microsoft again?

    :)

    (I kid, I kid. It was there and I had to do it.)

  19. lapster says:

    This really does tend to happen with just about any forum where people ask for help. I tend to avoid them for that reason. However, with the MMO I’m playing currently I decided I was going to make a conscious effort to use the forums and actually provide constructive advice. Unfortunately MMO forums being the kind of places they are it can get kind of disheartening trying to do so. It’s kinda hard to give helpful advice when every thread is overrun with “Oh why would you do that, just do X it’s clearly superior” even when it has nothing to do with the topic. I find myself just losing the will to answer when other posters have beaten me to the punch with their vitriol.

    One odd thing I’ve noticed though. Possibly because the standard level of response on this particular forum is very much weighted in the direction of people being unhelpful jerks. I almost feel condescending when I write up a post that actually explains things. As if I’m treating the OP like a moron by actually providing an explanation of why things are/aren’t a good idea instead of just expecting them to know it already. As such I’ve recently started giving fairly concise answers and going into more detail if someone asks for it.

    • MelTorefas says:

      Oh, that MMO with the really bad forum community. I think I know that one!

      Is it [EVERY MMO EVER CREATED]?

      (But seriously, I can totally see where you are coming from. I too play an MMO with a terrible terrible forum community. It is hard to hold on to any kind of constructivity in that kind of environment.)

      • Rodyle says:

        I have only really visited the forums of two MMOs, namely WoW and GW2. However, I found the guild wars forums a fairly pleasant place, bar from the few assholes you get everywhere.

        The WoW forum on the other hand… Shees, never seen a bigger cesspit of hate and misinformation in my entire life.

      • Dev Null says:

        The DDO forums used to be a pretty helpful and friendly place, back when I played between mammoth hunts. I always thought that it might have something to do with the fact that you spent most of your playtime in tiny groups, so it wasn’t really _massively_ multiplayer, so much as “multiplayer with a large pretty lounge to hang out in while you look for a group.”

  20. Rolo says:

    Someone mentioned the “nevermind, I fixed it” above, and yes, it’s horribly unhelpful and frustrating to enter something on Google, see someone with the exact same issue, and then end up with no answer because of something so absurd. Maybe Shamus overlooked it because in that case, the fault is not on the answers, but the OP himself.

    When I had an issue with the Witcher game, I posted my problem in extremely precise bullet points (what I had tried and why I thought it should have worked, all details that could have been important, like OS, retail or download, version number, etc.); and when I found the solution by myself, I explained how I did it, also in an embarassingly detailed bullet-point list. It probably sounds arrogant like a look-at-me-I’m-doing-it-right, but I wish I could have more often found that kind of forum posts, it’s useful if you are trying to help me, and it’s useful if you Google the problem once it’s solved.

    Additionally, I also didn’t expect Shamus to include the paragraph where he says the reason doesn’t matter. He’s right, indeed it doesn’t, and you should never justify yourself unless it’s really helping people find a solution. What’s the point of them asking? I want to do X because it’s my computer and you can jump off a cliff, that’s why. What if I give a reason that’s not good enough for Her Holy Highness? “Don’t like reason, won’t help you OLOLOL”.

    Lastly, there may have been a blog post here a long time ago, and that’s an issue that has been troubling me for a long time: asking for video game cheat codes anywhere is almost begging for an invasion of moral guardians who think you ask for codes and tricks just so you can know that they think they are bad (usually, it suspiciously looks like they link video game skill to penis size). Thank you, anonymous forum poster, for telling me how I should play my games, especially when I’m asking anything but that.

    And as above, people are often tricked into justifying themselves. “Wait, if I admit the game is too hard for me to enjoy, they will say I have a small penis”. So they come up with all sorts of rubbish excuses, like they already finished it and just want to skip the boring, or they want to focus on only a particular part of the gameplay, or they want this and that (“how do I spawn units? It’s only to spawn enemy units to make the game more interesting, I swear!”). My bet is that, most of the time, the reason is simply “game 2 hard, me haz no fun, kthxbai”.

    Maybe it’s true. Maybe it’s not. Maybe it’s too hard. Maybe it’s just boring and grindy. Maybe I just want to have cheap fun with nonsense codes. Maybe. But no one cares. If I ask for codes, give me codes or don’t answer at all. If difficulty or grinding really did make the game good and enjoyable in my case, then I wouldn’t be there asking for codes. Add to that the fact that, when you pay for a game, then insurmountable difficulty can be akin to a game-breaking bug: you paid for the game, but you are not allowed to see more than a few levels.

    If anything, these moral guardians shouldn’t act so sphincterhurt about it. Cheating is a big proof of interest. You are not having fun; not being fun is the most serious offense an entertainment product can be guilty of. Yet, instead of quitting because the game has failed at its main mission, you like it enough that you want tools to see more of it.

    A forum is for opinions, but that doesn’t mean you should bloat a thread by answering questions no one asked.

    • “…that doesn’t mean you should bloat a thread by answering questions no one asked.”
      Ahh… sweet irony.

      I agree though, it’s easy to levy judgement on multiple levels, usually much easier than actually providing help. The economics of the problem are simple, even if they are discouraging.

  21. Disc says:

    This reminds me that I should really pour more effort into giving any advice on the internet. More often than not you really have to give it some time and consider what you’re saying to get the point across properly. Ignoring that does terrible things to the quality, as I’ve noted. Forgot an important detail, didn’t really elaborate on a complex issue, etc.

    Most of the time only because I’m just being lazy and hasty. Blegh.

  22. Zekiel says:

    Thanks Shamus. Now I want to re-watch Starship Troopers.

  23. mwchase says:

    “I didn’t like this anime, because the first episode made it look like it was going to be about X, but in the second episode, they dropped that plot thread even harder than anime usually does.”*

    “I think you should read the light novels. They’re a lot better.”

    (Yes, and? They’re still not about X, right?)

    Sorry I’m still on that. I just can’t get over how little sense it makes to defend a series by talking about how much better it is when you’re not watching it.

    *Oftentimes, anime makes this show of reluctantly or gradually dropping its original plot, or of having some other conflict supersede it. In this questionably anonymized example, the series in question took one look at what I thought they were foreshadowing, and punted it off into the weeds.

    • mwchase says:

      The above post was in moderation for some reason, and my reaction to that indicates that my responses to things online sometimes feel torn between “raging asshole” and “wet noodle”. Which, in some ways, feels more relevant to this discussion than that complaint above that I cannot let die. (Seriously, does anyone have any advice on letting that die?)

      Anyway, a lot of this is discussing the Q&A and forum formats as a medium for the exchange of information relating to a problem, but there’s also the dimension of “How do I come out of this looking?”. In other words, one or both of the respondents may be trying, sense and practicality be damned, to project or establish a particular image. As to how this kind of out-of-band communication could apply to these kinds of cases… my best guest would be, sometimes people see people who are both respected and abrasive, and draw a causal relationship:

      “Oh boy! If I talk like Linus, I’ll be just as prominent!”

      I remember, with one problem I was having, worrying about image actually caused me to go into a lot more detail, because it seemed clear to me that the purpose of the code in question was not immediately obvious without context. But perhaps some people, if they’re not already worried about their own time, or getting to what looks like the meat of the problem, leave out details that they worry open them up to ridicule.

      And while I’m conjecturing wildly, maybe I’ll get some dang work done today. Stupid servers falling over and barfing all over our tests.

      • Syal says:

        (Seriously, does anyone have any advice on letting that die?)

        Why would you want to let that die?

        …also which complaint? I might be able to help; I have advice for causing the death of all sorts of things.

        • mwchase says:

          So, on the forums, when the above conversation happened, the recommendation to “Read the light novels instead, I think you’ll like them a lot better” (or words to that effect) stuck in my craw because it just didn’t make any sense, and it really bothers me that “read the light novels” is seen as an acceptable recommendation when people are talking about what they thought of an adaptation thereof.

          In essence, my feelings on this boil down to “Someone is wrong on the internet… and they are legion”, which doesn’t get me fired up for getting into pointless arguments so much as it makes me want to stop thinking.

          Maybe this would work out differently if the other posters hadn’t given up in response to my stubborn refusal to accept their point of view sticking to the original formulation of my argument. Then I’d have someone to aim this pent-up pedantry and vitriol at, instead of doing the internet equivalent of collaring passersby and ranting about narrative deficiencies and “You can’t watch a light novel like it’s an anime; that doesn’t make any sense”.

          I guess, to attempt to tie this back, my situation would be like someone who comes into the Q&A format with an axe to grind: “I’m trying to use this dependency resolution hackjob some hobby programmer slammed together. Why would anyone want to implement dependency resolution in a declarative fashion in Python?” or “You shouldn’t ever use MathCAD because it has all kinds of weird edge behaviors, and you can’t even look up the help topic for syntax unless you already know how to key it in”. (These made-up examples are, respectively, something nobody has said to me about something I actually wrote, and a condensation of my opinion of a particular piece of software. The non-condensed version includes comparisons to the ALF, and is therefore possibly in questionable territory to repeat anywhere on this domain. Regardless of the degree to which I agree with the latter, it’s not a constructive answer to questions about MathCAD. And let’s face it, anyone with a question about MathCAD needs all the help they can get.)

          • Syal says:

            Ah.

            Translation: “I’m a fan of this anime series, and I hope you don’t judge the body of work on this one part of it, which may or may not be weaker than the rest.” It’s an entirely defensive response and all you (or anyone else) should take away from it is that responder believes you’re threatening something they like.

            • Naota says:

              Reading the Light Novel often also comes with a certain catch – sometimes the translation sucks. Sometimes the translation sucks really badly.

              I mean, I get it. It’s a rare thing for someone to be fluent enough in both English AND Japanese that they’re able to transcribe from one to the other and end up with something that approaches the quality of even a halfway decent bit of prose… but that’s why you get someone who knows the destination language well to do QA.

              Subbing groups get this right, so why can’t LN translators? The worst part of all is that you’ll often see poor translations from a large group like Baka-Tsuki where nobody has bothered to take the half-English soup and cobble it back into sensible form, and any quality translators have passed the thing over because they believe it’s already available in English and don’t want a duplication of effort. Available? Yes. Legible or fun to read? No.

              • mwchase says:

                I’d heard that was the case with Chuunibyou (which was definitely not the franchise in question). Something along the lines of “It’s like reading a transcript of someone verbally summarizing a book on the spot.” Is that what they’re generally like?

                • Naota says:

                  In many cases they’re almost word swaps from Japanese, without any consideration of how English actually works, and a big sack of just plain old lazy grammar and tense mistakes thrown in for good measure.

                  The most painful example is dear Baccano, which is divided in ‘twain by the horrible, horrible Baka-Tsuki and the supremely excellent Untuned Strings. You have novels’ worth of writing done in a style like this:

                  A meaningless existence. How wonderful would that be. In other words, those people were able to make independent decisions on how to waste their time in life. Wouldn’t that be the ultimate definition of freedom?

                  To their contrary, she had to live with a clear meaning.

                  A tool of the old man behind her. That was the entire purpose to her existence, as well as a destiny she could not disobey.

                  +++

                  Were they planning to take my organs and sell them? Because of this anxiety churning in my stomach, I decided to scream ‘herupu’ while escaping if the situation took a turn for the worse.

                  At any rate, killing to sell harvested organs could be described as ‘flesh trade’.

                  Amidst all my musing over these useless matters, I was led to a bar at the corner of a larger street.

                  +++

                  In that split second, I didn’t fully comprehend what had happened. Where the knife protruded from the man’s hand, crimson blood started to trickle out. Seeing me in the state of astonishment, he smiled as he said,

                  “It’s all right… See?”

                  He slowly pulled out the knife. I thought fresh blood would fountain out but the flow of blood stopped completely.

                  At this point, I saw something that completely blew my mind away.

                  Sharing the same source material as writing like this:

                  The woman in the black dress did not look anyone in the eye. She merely stared into the reflection of her own eyes in her knife, as if no one around her was even worth looking at. Bloodlust practically radiated from the tip of the blade.

                  All of her senses, save for her sight, were focused on the black suits around her. It was almost as if she was keeping watch over them.

                  The black suits knew this well, but they did not show any discontentment at the way they were being treated.

                  The men were all waiting for their leader to continue. And as if to answer their calls, the leader twisted his lips into a grin.

                  “There is no need for hesitation or pity. After all, we are lifting up their unworthy lives to bestow upon them the greatest value imaginable. You are not obligated to show them compassion. Bring an end to this plebeian past,” the man said calmly. There was something like a hint of happiness in his tone.

                  “Grant unto them the proudest of deaths.”

                  • mwchase says:

                    That first one is like I’m playing Mondo Medicals again, but harder to follow.

                    Geez, Mondo Medicals… that sure was a game, probably.

                    Thinking about translation has me going back and forth between my NaNo-related conlang and English grammar and vocab. The result is something like

                    Mondo Medicals, a kind of gamelike quality, it may have.

                    So we see what translators are up against in terms of legibility, especially since that was a pretty simple sentence, once I smoothed over the idioms.

            • mwchase says:

              My understanding of the specifics of this situation is, the anime adaptation did stupid up some of the details of the plot, but near as I can tell, the larger arc merely got rearranged into chronological order.

              Rearranging the plot may have led to the narrative deficiencies I was talking about, but if so, why did they do that, and “the arc works better if you watch it in a completely different order than airing order, which is also in-universe chronological” sounds kind of silly.

              So, I guess my position comes down to “Regardless of whether the light novels suffer the same issues that led me to be disappointed with the anime, they still don’t address those issues.”

              Which is another way of saying “It worked for you [to read the light novels first]? Great, we’re talking about me [and I watched the first two episodes of the adaptation].”

              I guess there’s a sense in which a bad adaptation driving me away from a franchise because I know no entry in that franchise will live up to the seemingly-wasted potential of the adaptation is, well, not “fair”, but to be honest, I doubt I would have stayed with this even if they hadn’t had this initial narrative fumble. Some people who stayed with it had far worse-sounding complaints than “The writers punted the logical implications of the events they depicted halfway down the season.”

              Actually, thinking about the stuff that really stuck with me from the anime, I have to wonder if it was suffering from the “selected highlights adaptation” scenario. (See Watchmen, and apparently the later Harry Potter movies.) That is, a particular line or event comes up that just kind of hangs there, without any context to anchor it, and the people who read the source go “Oh yeah, I remember that bit, that was cool”, and everyone else wonders what’s supposed to be the significance of what just happened.

              (I think I might have managed to do this on a meta level with original work. Eesh, that NaNo needs to be edited with a blowtorch.)

              At some point, my attempts to tie the conversation back just stop working, because at some level, the instigating question was not “How do I enjoy this anime?” but “Why did the writers make this anime so hard for some newcomers to enjoy?” (That latter was phrased awkwardly, because I don’t want to imply that I’m speaking for everyone, but, at the same time, what I think sets me apart here was various mental faculties, and my point wasn’t supposed to be “Yeah, I guess the anime is an okay place to start… for people too DUMB to notice how bad it is.”)

              And then the question, once clarified, devolves into “Why do badly made things exist?”. And so we see that my own dissatisfaction with this one case is really more of an existential complaint about the state of craftsmanship, which could be better focused at some of the tools I work with.

    • Volfram says:

      The focus on plot is one of the things I liked better about Fullmetal Alchemist than Brotherhood. Brotherhood starts focusing on the Stone, and then deviates to Father and his homonculi. The older FMA series starts focused on the Stone, continues focusing on the Stone, and ends with the Stone.

      Oddly enough, one of my favorite things about Cube x Cursed x Curious is that it does exactly the opposite. It starts as a slice-of-life harem comedy series, and then within 2 episodes, it gets… Let me put it this way:

      “I have several hundred years more experience than you making people scream. NOW SCREAM!”
      -Fear Cubrick

      But yes, I hate when a series teases a REALLY INTERESTING plot and then up and forgets about it. Hyakka Ryouran: Samurai Girls did this THREE TIMES!(still good, though)

  24. Mr Compassionate says:

    I despise people who post on a help forum to say: “Well it works fine for me!”
    Really?! Well that’s super cupcake! That’s all I wanted to hear. Now I can sit tight staring at an error message safe in the knowledge that a random person somewhere is having no problems whatsoever. I only posted the problem to hear how well its going for you naturally.

  25. Phantos says:

    “Be calm and polite when answering questions. The other person my indeed be an idiot, but you can’t make them smarter by telling them how stupid they are. By answering in a reasonable tone you increase the odds that they will heed your advice, which is good for you, for them, and for everyone who reads the exchange later.”

    Except, I’ve seen you do the knee-jerk “YOU HAVE AN AGENDA, GO AWAY” response, when someone disagrees with you(in a non-hostile way). It was pretty disappointing, because I like to think you have a better head on your shoulders for this sort of thing.

    I don’t think the problem is that everybody thinks they’re right. The problem is thinking you’re the only one who’s right, and everyone else is wrong. No, worse than that: No one else can -ever- be more right than super, golden me. Clearly everyone else who disagrees is just a troll, purposely saying lies to bring down my good time.

    (I still hate myself for the time in my life where I actually believed that. I’ve seen too many people I respect poisoned by that mindset, I do not want to see it happen here too.)

    • Cinebeast says:

      Everyone’s fallible, and everyone has room to grow, but Shamus runs a tight ship — I don’t think this blog is ever going to deteriorate that badly, if at all.

      • Phantos says:

        I hope not. But tighter ships have sunk. I’ve lost count of the number of personal heroes this year who turned into self-obsessed goblins. Artists, podcast hosts, critics, pundits, bloggers, friends… All people who preached how to behave online, and then stopped practicing any of it.

        (And those who weren’t jerks ended up dead.)

        I worry that people let fame get to their heads. They think they don’t have to improve anymore, or be conscious of their actions. Too many people I looked up to this year decided the rules don’t apply to them. I think people need to be called out on their faults from time to time. It’s something I wish more people did for me, rude or not.

        I don’t think Shamus is going to turn out like Bob Chipman, Alex Shaw or Mike Krahulik. I hope not. I’m not seeing nearly as many warning signs. But trust in human beings has only come back to bite me in the ass this year, so I’ll admit to being paranoid right now.

        • Shamus says:

          I totally understand this sentiment.

          • Shamus says:

            To illuminate:

            I’ve had similar let-downs. In my case it was the Penny Arcade guys, The Spoony One, Mel Gibson, and a few others. When you admire someone’s work, it’s painful to see them fall apart in public. Either they say something that really offends you, or they offend someone else and handle the backlash poorly.

            Always disappointment, and the bad impression tends to linger and color my impression of their work going forward.

            • Phantos says:

              I wonder: Is it something that’s always there, that we just don’t notice or is hidden? Or is it a slippery slope that we can all fall down into? Does being a “good person” come naturally, or is it something you have to work at every day?

              It’s scary, since if it was this easy for people I thought were stronger than me to self-destruct, does that mean I’m at a greater risk?

              Anyway, sorry for doubting ya, Shamus. I guess I’m just scared of being blindsided again.

            • RCN says:

              Wait? I guess I’m an idiot on the internet who doesn’t follow the behind the scenes of anything, but what happened Mike Krahulik and Noah Antwiler?

              I mean, I have an idea of what happened to Bob Chipman in that he became this sort of distorted fanboy inquisitor with too much confidence on his opinions, but can someone spell it out for me what happened? Even if for no other reason than I’m really, really dense?

              • Syal says:

                The infamous Penny Arcade Dickwolves Controversy is summed up here.

                At least, that link has the links to it.

                Spoony was pretty much the same; he made a rape joke on Twitter, got called on it (with a month’s delay, I think?), and then made things worse. A quick search gives me this, which may or may not sum it up.

                • RCN says:

                  Oh, so I lost it all by not following Twitter.

                  I find it scary how Twitter became this alternate twitterverse where anyone can obliterate their entire reputation in a second through a single unfiltered remark.

                  Sorry to hear about Spoony. Didn’t know about his bipolar disorder.

                  As for the Dickwolves? How did they let THAT escalate like that?

                  I’m of the opinion that there should be no off-limit topics for humor. But precisely as long as you keep it in comedy. As soon as the comic start making a big deal to respond to everyone, he is just making an idiot of himself. Good comedy has to push buttons.

                  If a comic will do a joke about rape, fine, as long as it is funny and it is comedy, but why start arguing and trying to shame anyone offended by it? That’s just stupid.

                  • Phantos says:

                    Don’t forget his really transphobic remarks.

                    I guess now that video games have won the war, this means there are no more hack lawyers, pundits and lawmakers to fight against. But Krahulik made a career out of being the victim to social bullies. He needs a target. With no more bad guys to attack upward, he started aiming down. At his own audience.

                    Reminds me of a line from “The Dark Knight”.

                • Felblood says:

                  It was more of bondage joke, as I read it, but the thing is, like Shamus’ twitter exchange he’s talking about here, it was variously misinterpreted, due to the limitations of tweets.

                  Hence, both sides felt the need to fully crucify one another.

                  Rather than do the clever thing that Shamus just did, and put together a long-form response clarifying their positions, both sides basically started recruiting friends and family to shout into twitter about this, which led to a general storm of people who didn’t know what was going on, and were very upset over it anyway.

                  • RCN says:

                    Yeah… more and more I feel like the “tweet” format is just a recipe for people to misunderstand each other and any discussion going to the drain.

                    They say brevity is the soul of wit. Maybe I’m dense, but I’d rather call myself verbose and that’s the reason I never wanted anything to do with twitter.

                    Seems like it was the right call.

            • Jokerman says:

              Spoony should not of said what he said, but for me it has not stopped me enjoying his videos, i kind of always had the suspicion he might be a bit of a dick in reality and i still enjoyed his work. I still do, his recent stuff has been pretty good for me.

              Although it does seem i have lost all concept of being offended, i even scoff at others who are offended by stuff.

        • Cuthalion says:

          One of my professors used to say to the effect that he hoped we would be great even if we succeeded.

    • Shamus says:

      I don’t see how these two things are related at all. If I give someone the shove, I’m not trying to persuade the other person I’m right. I’m just trying to keep them from hijacking my comment thread with their agenda. In one case, I’m ENDING a conversation because it’s not productive or welcome. In the other, the person is OPENING a conversation with abuse as a matter of policy.

      Also, there’s a big difference between:

      A) “I sometimes let my anger get the best of me when I’m moderating.”

      and:

      B) “I always abuse people who ask dumb questions.”

    • Syal says:

      While I remember a few events Shamus seemed to overreact to, I don’t remember it with regard to anybody who was acting in a completely non-hostile way. Did you have a specific one in mind?

    • Kingmob says:

      I think this is a problem specific to reasonable people surrounded by other reasonable people that are however slightly less reasonable.

      Let me explain that with an example. I play a lot of Dota2 and I have a very competitive nature. Combined with an explosive attitude, I can be quite nasty sometimes and it is hard to stop.
      I have a friend who is more or less always reasonable and has a tendency to start joking when things go south. He is therefore generally the bigger man when things heat up.

      The problem starts when he is wrong and since no one is perfect, he sometimes is. I’ve heard him casually insult someone and then be really insulted and holier than thou when it is reciprocated. It has happened that the positions were completely reversed, but where I accept that I was being an asshole, he will usually never admit to it.

      The point here is not to bash him (I am much worse) the point is that it is human to lose sight of your own bad qualities at times. It doesn’t disqualify the fact that someone is right even if they make the mistake themselves.
      Also from my experience this particular blind spot is very strong in people that believe themselves exceptionally reasonable and that it makes them better in a discussion. They have a harder time admitting that particular fault. People that have a ‘short fuse’ are however very aware of it.

  26. MrGuy says:

    So, agree with pretty much everything Shamus said in the post here.

    That said, while I’m sure a lot of nuance is lost in 160 characters, I disagree with the tweet.

    I help people solve problems for a living (I’m a business analyst). One thing that happens all the time is people saying “OK, I need a button that does this. Build me a button.” No context or motivation, just a desire. The wrong answer is usually build them a button. The right answer is usually to understand what they’re trying to accomplish, and then evaluate if the button is the right answer.

    People who have unsolved problems are often not the right people to architect the specific solution to those problems. So narrow questions can be problematic, and “why?” can often be the right first response.

    It’s not the content, it’s the attitude and the desire to be helpful. “Why would anyone in their right mind want to do that?” is a terrible answer. “Can you give more context on what problem you’re trying to solve and why you’re considering this path? I don’t know of a good way to do the specific thing you’re asking, but there are some good established ways to solve what might be similar problems to yours that might be considerably simpler” isn’t.

    • Trix2000 says:

      He’s not worrying about what solution you give the person, he’s talking about phrasing it nicely so that people will actually appreciate/use the solution.

      It’s the difference between “I’m not sure if you’re on the right track for that particular problem, could you tell me more about what you’re working on?” and “You’re doing it wrong, LRN2CODE”.

  27. Angie says:

    Maybe they work at a horrible company where they aren’t given the time, the tools, or the training to solve things properly.

    Back in the mid-80s, I worked for a Silly Valley tech company. We had a project for a government customer that had started twenty-some years earlier. The base code was written in BASIC, no kidding. The project had continued on with upgrades, add-ons, upgrades, expansions, and upgrades, for those twenty-some years, and although some of the peripheral code was written in a more sane language whenever possible, the base software was still a million or so lines of patched-up BASIC spaghetti code. The company had to pay a premium to any software people they could persuade to work on these projects, just to get them to dive into the mess, and none of them ever stayed for more than a few years.

    Yes, the obvious solution to pretty much any problem was to scrap what they had and re-code the project in a sane programming language. But no one wanted to pay for that, and — it being a critical system that COULD NOT fail in the field, period — no one was willing to gamble on a million lines of new code, when the million lines they had, although horrific to update and maintain, had been proven to work with perfect reliability for 20+ years.

    I have no idea what they’ve done since then; I haven’t worked for them since about ’90. I’m hoping somebody figured out how to adequately fund/test a rewrite of the code, for the sake of the programmers if nothing else. :P But I wouldn’t be surprised to hear that they’re still working with what’d now be almost fifty-year-old BASIC, either, because that kind of mass, moving through history, builds up a lot of inertia.

    Angie

  28. Steve C says:

    Am I the only one that thinks that answer (a) was the proper answer to the bottle vs shoe question? It was clear and concise and not insulting or condescending in any way. It was also the only answer that incorporated the stated constraints of the problem. The answer would be perfect if it included “A hammer will be a better tool than either.” But that addition is the still the least useful part.

    Constraints are an important part of any problem. The constraints may be the entire reason why the problem exists. I hate it when they are ignored. I get furious if the reply is why they are there then argue until they think they are justified… then help you.

    • James Schend says:

      Yes, but the person answering the question needs to know how strong the constraints are and that context wasn’t provided.

      Maybe this guy is on a desert island (somehow posting to the Internet) and hasn’t seen a “hammer” in 5 years and has no metal to make one or anything similar. Well fine. Use the bottle. But the people answering the question *need to know that context* to answer the question in a useful way.

      • Zukhramm says:

        There’s absolutely no need to know why I am using a shoe and a bottle instead of a hammer to answer which one is better. If I’m asking a question, I’m asking for an answer, not for advice. Perhaps that’s a distinction that is lacking in our languages.

        • swenson says:

          If I have a hammer sitting next to me but am not aware that it is possible to use it to hammer in nails–perhaps I’ve never had to hammer in a nail before, or no one ever told me that’s what hammers are for–I would personally much prefer someone to point out that if I have a hammer available, it’s a far superior option to either the bottle or the shoe.

          If someone were to say “the bottle”, then I would go on my way, hammering nails in with glass bottles forever, wasting myself and everyone around me all sorts of time and effort. If someone could politely and in an illuminating manner point out that hammers exist, it would be better for everyone involved.

          But you can’t always tell when someone simply doesn’t know about hammers or when they’ve independently determined that hammers won’t work for them! Well, yeah. That’s why you ask why (again–in a polite manner along with as good of an answer to their question as you know), so you can figure out if the question they asked is actually the question they want answered.

          For example:
          “The glass bottle would likely be the better case. But a hammer would be even better–is there a particular reason you aren’t using one?”

          • Zukhramm says:

            If I didn’t know anything about hammering I’d ask “What tool should I use?” in general instead of “Which one out of these two?”. Which is the lowest number, 3 or 5? 0!

            There’s an assumption I’m trying to do something in the most efficient way possible. Or that I’m actually trying to do something at all. I’m just interested in the relative fitness of using bottles and shoes as hammers.

            To politely ask, along with an answer is fine. But I’ve never had that happen to me. The question is rarely polite, and even more rarely is the actual question answered.

            And still, “shoe or bottle?” is a straightforward question with straightforward answer, which is independent on why I’m not asking about hammers. If I ask bad questions, and do something stupid, that is my ultimately responsibility, not the answer’s.

            • James Schend says:

              > If I didn’t know anything about hammering I’d ask “What tool should
              > I use?” in general instead of “Which one out of these two?”. Which
              > is the lowest number, 3 or 5? 0!

              Well, that’s great, and if everybody was like you this would be a non-issue. But I’m afraid they’re not, and it’s not.

          • Steve C says:

            If someone were to say “the bottle” then there would be 5 posts after it by different people all saying what an idiot for not suggesting a hammer. Because that always happens. Always. However the OP isn’t answered at all until he’s gets an answer to the specific question he asked.

            I look at it like a question on an exam: Which is better? A or B? Explain your answer. The answer comes back, “Neither. They both have flaws. Do this. Here is why.”

            If I was marking that exam, that person gets a zero. If they want to come up with another option then they can go for bonus points *after* they answer the question given.

        • James Schend says:

          But I’m not responding to just you, I’m responding to just you *and everybody who ever views the thread in the future*.

          And if I give you the correct answer, based on your constraints, then the next time someone reads the thread I’ll be giving them the *wrong* answer because they may or may not have the same constraints. And since the thread looks “done”, that second person will never even bother posting before implementing my answer– so I don’t even get a chance to talk him out of it.

          And I don’t want to give out wrong answers.

      • Steve C says:

        They don’t need to know how strong the constraints are. They are there. That’s enough. They are 100% firm because that’s the way the question was written. If the OP phrased it wrong then it’s his own problem for not adding “Or is there a better way?” at the end.

        • Syal says:

          If the OP phrased it wrong then it’s his own problem

          The question is ALREADY his own problem. That’s why he’s asking a question. If you think there’s a problem with how he’s asking the question too, why wouldn’t you try to solve that one as well?

        • James Schend says:

          If the question spells out what the constraints are, and explains why they are 100% firm, then I have no problem answering the question as asked.

          But we’re not talking about that question. We’re talking about the person who’s asking how to do something in a non-ideal way, and we’re supposed to just “trust” that they have those constraints. I’m not willing to do that.

          But, as someone pointed out above, the reason for choosing between a shoe and a glass bottle might simply be because they’ve never heard of a hammer. Not because they have some constraint that prevents the hammer from being used.

          Anyway, if you disagree with that, fine. But that’s my rationale, I’m just explaining it.

          • Trix2000 says:

            Tell them the answer they want (if it exists), then suggest a better solution immediately afterword (explaining why it’s better is a good idea too). Like:

            “The shoe would work, but you might want to try using a hammer if you can. It’s made specifically for pounding in nails, so you might have an easier time with it.”

            More to the point though is to just be nice and helpful about it, rather than acting like they stepped in a dog turd or something.

            • James Schend says:

              Except they’ll stop reading the post exactly 1 nanosecond after getting the answer (especially if the answer is a code sample they can copy-and-paste), and never get to the point where you explain why the answer is a bad idea.

              I could see doing it in the reverse order. But my personal solution is to not answer the question until I’m sure that the question itself isn’t based on flawed assumptions/knowledge.

      • Felblood says:

        I’m sorry, but I just cannot agree with you. Every context has it’s own context, ad infinitum, and it’s usually not important to the question at hand.

        It is crazy wasteful of your time, and probably the askers, to demand a full justification for every question.

        It’s like when a child first learns to ask, “Why?” and applies the same question to each answer recursively.

        There comes a point where this becomes rude, and then there comes a point where this becomes pointless. If you are communicating in an effective manner, you do not need to read an essay on how to judge this point.

        If you do need a guide on when to do this, stop doing it immediately.

    • MrGuy says:

      I think (a) is a terrible answer.

      Yes, if there are genuine constraints, all helpful answers will be mindful of those constraints.

      But when someone imposes constraints on a potential solution, and those constraints seem implausible, and they’ve made no effort to explain why their problem is so horribly constrained that these are the only options, then yeah, I feel 100% justified in questioning the constraints.

      And I feel that someone who decides to limit themselves to the constraints provided, but who can imagine a better world isn’t helping. They’re solving a puzzle, sure, but they’re not really offering the best advice they can.

      I don’t think the answers to “Should I use visual basic or turbo pascal to build a multi-threaded real time transaction processing system?” must be limited to either “Visual Basic is the right solution” or “Turbo Pascal is the right solution” until I’ve gotten at least some indication the poster is aware of other options that seem more suited to the problem and has a good reason not to use them.

      • Atle says:

        I agree. When communicating we should always try to understand the intention of what is being said, and not only the words alone. If the intention is not clear, as it isn’t when the question seems flawed, we’re justified in asking questions.

        A good “shoe vs glass bottle” question would contain something showing that the one asking the question knows that the options are intentionally that odd.

    • Syal says:

      It was also the only answer that incorporated the stated constraints of the problem.

      Except the constraints were not stated, they were implied, perhaps unintentionally. There’s no reason to think someone posting a question knows how to do so properly unless you’ve seen that person do it before.

      Best answer:

      “If you can use a hammer, use a hammer. It’s stronger than either the shoe or the glass bottle, and far more durable. You can get them from (hardware stores).

      But if you have to use one of them, use the shoe (the glass bottle will drive harder, but if your nail is bigger than a trim nail the bottle can shatter and cause significantly bigger problems than just not driving the nail.)”

      Clear message to the reader and anyone Googling later that there is in fact a much better way to do this, while also answering the question asked with regard to implied constraints.

    • Hal says:

      It wasn’t a good answer because we don’t know enough. What sort of shoes does this person have? Sneakers? Hard-soled loafers? Stiletto heels? Flip-flops? Very important to know this. We also don’t know if his bottle is full or empty, and what he might be able to fill it with. A full bottle will distribute the impact of the nail much better than an empty bottle.

      Details, people, details!

  29. Jeremiah says:

    Dammit, Shamus. The Starship Troopers references are making me want to go watch it again (it’s been a while). As well as play 3:16 (which every rpg fan should play).

  30. Steve C says:

    Anyone else notice that the guy who first wrote the bottle vs shoe analogy had that problem and this is how he solved it: “I ended up using an CD-ROM drive I had siting in a drawer. It worked surprisingly well,” which pretty much 100% negated his ‘use a hammer retard’ blog post.

    I wish this mentality was confined to programming problems but this is how everyone replies to everything now. I recently asked some lawnmower related questions. Similar thing happened. I was told to use a tool I didn’t have and also had to justify why it wasn’t an option. I also said “X won’t work.” So of course they told me I was wrong and X would work. No. X won’t work because that’s what’s broken and why I’m taking it apart in the first place.

    Why must I justify every little thing when asking for help before anyone will help?

    • James Schend says:

      Because the thread isn’t just for you, it’s also for every future person who comes across it.

      Ok, so here’s two people: one is a remote campsite with no hammer and he asks that question. He can’t use a hammer because the nearest hardware store is 400 miles away and he doesn’t have any money anyway. To that guy you can answer the question.

      But now the next person comes across the thread. This guy’s in downtown LA, the place is lousy with hardware stores. He has a wallet full of cash. He reads that thread and goes, “oh hey, I’ll use the bottle.” So now guy number 2 is using the crappy lame solution for literally no reason, the posters to the forum never got a chance to talk him out of it, and the entire industry of cabinet hammerers’ reputation suffers.

      If you have weird constraints forcing you into using undesirable tools, spell them out in the question.

      • Steve C says:

        You are the kind of person I don’t want help from then. I don’t want to write a case file in order to cover every aspect of a problem someone might want to know. Nor do I want a back and forth of answering “why?” “why?” “why?” because there’s no end in sight like talking to a 2yr old.

        There’s no reason to keep telling the OP to justify Y and Z before you will give the best answer you can with the available info. The thread is for the person asking for help first and foremost. Future theoretical searchers aren’t time constrained like the OP. I just want the help I asked for. By all means elaborate and question after that requirement is met. If someone just answers a question with another question then the thread isn’t going to have any answer at all for any future person.

        • Syal says:

          “There are reasons why it has to be one of these options, just trust me on that.”

          And if they ignore that then they’re worthy of your scorn.

        • Matt Downie says:

          “I am planning to remove one of my kidneys to sell on the black market. Which is better for cutting flesh: a broken bottle, or a pair of scissors? Also, which is the better anesthetic: aspirin or vodka?”

          • Dave B. says:

            The broken bottle would be clumsy and probably unsanitary, but the scissors would likely be too dull.

            Vodka is probably not a very effective anesthetic, but using aspirin would almost certainly kill you. It interferes with your blood’s clotting factor, and you would bleed out.

            PS. WHY WOULD YOU WANT TO REMOVE YOUR KIDNEY!?!!

          • Shamus says:

            The scissors will give a much cleaner cut, reducing damage on the organ. However, it should be noted that you can get a much better price for your heart than for a kidney.

            Use aspirin to reduce wear and tear on the kidney.

            Good luck!

          • Matt Downie says:

            Never mind; I figured it out.

        • James Schend says:

          > Future theoretical searchers aren’t time constrained like the OP.

          Huh? I don’t see how this follows from anything. Who said the OP was time constrained? Why assume future searchers wouldn’t be?

          > I just want the help I asked for. By all means elaborate and question
          > after that requirement is met.

          No. I’m not going to pollute the thread with an answer that’s wrong for the majority of people (who do not share your constraint, and need to be guided to the correct method of doing it.)

          > If someone just answers a question with another question then the
          > thread isn’t going to have any answer at all for any future person.

          Not in person or by name, perhaps, but yes: this is exactly what I’m concerned about.

          If I give you good advice based on your (unspoken) constraints, the next guy who finds the thread without the constraints will just blindly copy-and-paste the code from my answer. Even though there’s a much better way of doing it.

          And now it’s *my* fault that *his* program is buggy. He’ll never even post to the forum, so I don’t even get a chance to try and talk him out of it. And yes it hurts me, it lowers the entire reputation of my industry to have these idiots blindly copy-and-pasting wrong answers from forums. I if I can do anything to prevent that, I will.

          You don’t have to agree with my method of answering questions. I’m just explaining my rationale for it.

          • Steve C says:

            > Who said the OP was time constrained? Why assume future searchers wouldn’t be?

            The OP is *always* time constrained. It is an outstanding problem in front of them they have to solve. In my case I couldn’t mow my lawn until I figured out a solution. Every minute, hour, day I’m waiting for a forum reply that may not come is more time the problem is outstanding is another minute my lawn is being left unmowed.

            However some future person searching for the same problem and finds that thread finds a thread that is done. There is an answer there or there isn’t. The total time they have to wait to determine that is the time it takes to read it. They don’t have to wait for a reply unless they necro the thread.

            > No. I’m not going to pollute the thread with an answer that’s wrong for the majority of people (who do not share your constraint, and need to be guided to the correct method of doing it.)

            So you are going to go out of your way NOT to answer the OP. Even if he answers all of your questions. Any answer you give must incorporate the constraints in order to answer *him*. But since those constraints don’t apply to everyone else, that would be a flawed answer in your opinion. Therefore incorporating those constraints at all pollute the thread.

            And yes I absolutely disagree with your method and your rationale. I would hate your help, any of it. My problem is I have no way of stopping someone like that from answering a problem _I_ have and wasting my time while my problem gets worse.

            • Rili says:

              As far as I understand James Schend’s point of view, his concern is one of curating the answers he gives to minimize misuse.
              And I agree both to his methods and his right to employ them as he sees fit. We should generally be more thankful toward people that actually try to give constructive answers to problems on the internet. If they have us jump through some hoops first to make it easier or more comfortable for them to solve our problem, then that is fine with me.

              I am also starting to suspect that Steve C is trolling since I find it very hard to read James’s posts and somehow conclude that he will not answer a question after all constraints have been cleared up. He obviously will after stating the constraints has filtered out people to which the answer simply does not apply.

              Maybe this is actually a communication breakdown brought on by the differences between coding solutions (Oh look a code snippet. I will just copy that!) and more physical problems. After all the world would not be a significantly worse place if every person with a crafting handycap used a shoe to hammer in the one nail he ever tries to hammer in.

            • Felblood says:

              This.

              If you want to construct a knowledge base as a possession for all of time, start a wiki, and write some editorials on your blog to draw in other editors of like mind. It’s a huge responsibility, but I get the impression you would take it pretty seriously.

              The OP is typically asking a question in a forum, because he needs an answer at web-search speeds, but none was available.

              Alternately, you could edit your post with a link to supplemental reading articles, after helping the OP. Though if your bibliography grows too large, you may need to start a wiki.

              Note: Observe how this is actually only being posted after we’ve already addressed the issue of how to write a normal answer post, and is only coming up because Mr. Schend has an edge case that requires further refinement. I wouldn’t expect a typical person to feel like they had to go full Spiderman, just because they posted in a forum thread. This is strictly advice for those who feel like the entire internet has a right to their time and knowledge, or who simply wish to donate those resources from now until the end of time.

              EDIT: I see this looking kind of sarcastic, so I want to point out it is not.

              It would be supper awesome if there were comprehensive, up to date wikis of every programming language, and if you have the time and talent to make it real, it would be a truly noble (but largely thankless) work.

      • Trix2000 says:

        If the bottle works, why would it be that big a deal if the second person uses it? But honestly, the bottle vs. shoe analogy kinda breaks down for me because code works a lot differently than physical objects.

        If someone asks a question, answer it… and offer your better alternative option if you think it’ll work better, phrased so it sounds like an OPTION and not “you must use this thing or it’ll suck”. If anyone wants to know more, they’ll follow up.

        • Steve C says:

          That analogy didn’t just break down, it also exploded and burnt to crisp. He really used a CD ROM. It worked. It directly contradicted any point he was trying to make about inappropriate tools or forum posts. And in my case above it was a lawnmower.

          Your way just works regardless if it’s a physical world problem or code.

  31. Adam says:

    Funny – I just encountered a very similar discussion posted as a question on meta.stackoverflow – “Is “Don’t do it” a valid answer?

    General consensus, which I agreed with and you would too, was – yes, as long as you explain *why* not to do it, explain what you should do instead, and then *also* answer the question they asked anyway, even despite your request that they do something else.

    • harborpirate says:

      Exactly. What most people fail to understand is that answering a question with “you’re doing it wrong” is the most difficult type of answer to provide, NOT the easiest!

      This is because the correct way of providing such an answer is to provide all three of the parts you summarized: a)Explain why the OPs approach/assumptions are incorrect, b)provide the best answer, and c)answer the original question as asked.

      Most responders will provide only part a or b, rarely both, and almost never provide part c.

    • Steve C says:

      No. Because if it was a question on an exam they would fail. You don’t try to outsmart the question assuming it was poorly asked. You answer it as-is, then show your mastery of the subject matter, not before.

      • harborpirate says:

        As long as you provide all three parts as part of the answer, I don’t think the order matters very much.

        I suppose answering the question as asked first might seem most courteous, but then you run the risk of the person running off thinking they’ve gotten the answer without bothering to read why they shouldn’t be doing it that way, and seeing the better alternative.

        They may do that anyway, but at least with a word of warning first, you’ve given them a fighting chance to stop “hitting nails with shoes” (unless something requires that they so).

      • Rili says:

        The differences between a question asked on the internet and one asked in an exam are important here.
        In an exam the questioner has the position of power.
        The audience is limited to people grading your answer, nobody actually uses it.
        The questioner is assumed to have understood the question, the surrounding field and even have a valid answer of his own.

        None of this holds if someone asks a question on coding on the internet.

        Additionally if you have a proper exam situation in a university that respects its students you should absolutely call out any inconsistencies in the questions and if the scepticism is especially warranted I would prefer to voice it before the answer rather than after. Granted a healthy amount of awareness of the systems underlying your education is necessary to make this call.

      • Felblood says:

        This is an essay question, not a multiple choice question.

        In this case, you are being graded on completeness, and including all 3 parts of the response is key to getting full credit.

        Also, most people don’t care enough what score they are getting on a forum post.

  32. Nick-B says:

    I feel like contributing here, but… After a billion replies, I guess all I can add is:

    HELLS YES! Nothing pisses me off more than searching old forum posts for what is EXACTLY my one-off problem and having half the posters mis-interpret the question, the other half answer it condescendingly by telling him he is doing it wrong and should be doing it THIS way, and one final post by the OP saying “None of those helped. Does anyone know?” with no more replies.

    Answer the guys damned question. Then educate him on why it’s not a good idea, and offer some GOOD alternatives. It’s what I try to do.

    • Akhier says:

      Whats worse is when that last post isn’t the OP saying that nothing worked but rather the ones where the OP says they managed to fix the problem then doesn’t say why! Was it one of the previous suggestions, a tweak of a previous suggestion or did you figure it out on your own? Maybe you asked multiple places and somewhere else got the answer? Just tell me the fix or link to it for goodness sake!

  33. Tse says:

    “Should’ve bought a Mac!” is also a common “solution” for a variety of problems, even when the program you’re trying to run doesn’t work on that OS.

  34. Drew says:

    Another issue is that an internet forum is an asynchronous conversation and needs to be treated as such. If you’re talking directly with someone and they ask you a question, a simple response which attempts to solicit further information may be the best response. “What are you trying to do?” “Is there a reason that X,Y,Z?” These are completely reasonable responses in a face-to-face (or telephone) conversation, because the person asking the original question can fill you in quickly and allow you to respond, and still get their answer in a reasonably short time frame. In fact, it can allow you to eliminate potential answers and zero in on the right one, so it can get them their correct answer more quickly.

    On an internet forum, however, responses may come hours or days later. Given that, it can make sense to try to provide as much useful information in any given communique as possible in order to help the person asking the question quickly get their answer. If your initial response isn’t completely sufficient, or misses the target a bit, that’s ok, because you’ve helped the person asking the question to have a frame of reference for their response.

    Essentially, efficient synchronous conversation can be measured on how much time the conversation takes, while efficient asynchronous conversation should be measured on how many responses are involved from each side, so you should communicate differently in order to best help the questioner.

    And if your goal isn’t to help the person, there’s not really a good reason to respond to them at all.

    • Felblood says:

      I actually wish there wa a way to bump this post to the top of the page.

      It is that good.

      You’ve cut past the surface o what to do, and explained why it should be the way it should be.

      Kudos, sir.

      It is a shame so few people will ever see it way down here.

  35. Steve C says:

    Question:

    Billy needs to get to school on time. He can take the bus which is a 5km ride and moves at 30km/h. Or he can walk 1km at 5km/h. What time should Billy leave to make it to school on time?

    Responses:
    1) This question makes no sense. It has the same start and end points. It can’t be both 5km and 1km.

    2) Billy should use a bike. It’s only slightly slower than the bus and he can use whatever path he was using by foot.

    3) Is he cutting through a park or something? There’s not enough info here.

    4) What time does school start? Impossible to answer without that info.

    5) Kids don’t get to tell the bus when to pick them up, the bus shows up at appointed times.
    ——————–

    My question to you is what mark do you give person 1, 2, 3, 4 and 5?

    • Syal says:

      3, 4 and 5 are all correct, the problem is unsolvable without more information, and 2 is probably worth a bonus point.

    • Matt Downie says:

      1: No marks because the bus presumably travels by a longer route.

      2: No marks because a bicycle wasn’t given as an option, and might not be.

      3: No marks because that information isn’t needed to answer the question.

      4 & 5: No marks because even though that’s relevant information, you can still provide a half-decent answer without it, and that isn’t it.

      Better answer:
      Ten minutes before school starts, if the bus is available to pick him up at that time. If not, twelve minute before school starts, and walk.

      However, there’s a difference between a maths exam (where you’re supposed to answer the question in front of you) and someone asking for advice where an unexpected answer might be useful.

      • Steve C says:

        > Ten minutes before school starts, if the bus is available to pick him up at that time. If not, twelve minute before school starts, and walk.

        Matt correctly scored the test. Matt gets full marks if he was a student answering. Syal gets a zero with “You had everything you needed to fully answer,” and a red frown. The only way there would be a bonus point was to note that the average speed of a bike is 25km/h (found through researching your own sources) and would take 2.4mins via the footpath IF it was an unconsidered option.

        I disagree that there is any difference in this case between a school math exam and a real world problem. Real world problems (math or not) often need to be answered to the fullest with only the available info and no more. It may be too timely or cost ineffective to get more info, or your boss may not want to hold your hand. EG If he needs an answer for a meeting he’s been summoned to, he’s busy prepping his own materials and can’t be bothered taking the time to explain himself. You answer what you can. Trust that the person you are telling the info already knows key things to solve a problem with your piece.

        If you are working on a truly complex problem there is -zero- chance you can fully understand it. One part is being worked on by one group. Another part is being worked on another group. And in each of those groups each person might be working on a tiny fragment. This could be engineering, programming, accounting, whatever. You can’t find out the answers because the other people don’t know the answers yet.

        Splitting up workflow is a job in and of itself. If you continuously go back to your project manager for more info until you know everything he does… you are going to get fired for being a pain in the ass and wasting his time.

        • Syal says:

          Syal gets a zero with “You had everything you needed to fully answer,” and a red frown.

          The question specified the TIME Billy should leave, not how long he should leave before school starts. Since you have OBVIOUSLY worded the test EXACTLY the way you meant to, the problem is unsolvable because time’s value is always somewhere between 00:00 and 23:59, and time to leave being t – 10 doesn’t mean anything when you can’t figure out t. Therefore the question is a trick question, and any answer that states the question is unsolvable without more information is acceptable.

          My father was a school teacher. How I graded the answers is how he would have graded them. Anyone who doesn’t let someone defend their answer when the wording is ambiguous is a bad teacher, and I would go over their head. If it’s an automatically graded test, then a) there would be multiple choice questions with a “choose the most correct answer” message above them and b) the question is flawed and should be rewritten. And before you say “this is how this test works deal with it”, understand that “how the forums work” is in James’ favor, and if change is inherently impossible you’re wasting your time.

          Now, tell me how much better it is when people only address exactly what you say and make no effort to address what you think you said.

          • Steve C says:

            You are right that I phrased it exactly how I meant to phrase it. Matt gave the correct response including “before class starts” and that’s no trick question. More importantly he gave an answer to the true question which was state which mark he would give to each of the respondents.

            • Syal says:

              Read your question.

              Read my first response.

              Read my second response.

              I explained myself incredibly clearly. If you don’t get it you never will.

              • You can split the difference.

                “Within the confines of the question, ten minutes if he takes the bus and twelve if he walks. But the question as phrased cannot be properly answered”. You can give a tentative response but also indict the question.

                The fact is, that’s a horribly worded question. Any teacher in any institution I’m aware of that graded people down for refusing to answer it would likely be censured. In fact, most teachers would strike it from the test or give an automatic point, it is that bad.

                I’m a freelance writer. If a client doesn’t give me enough information, I don’t send them something for free unless I absolutely have to. I say, “You didn’t give me enough information. I cannot do this project”. And in any kind of corporate setting, if you gave the answer Matt suggests, when it becomes clear that the bus will arrive too late and Billy is late, Matt gets fired. CYA at least.

        • Matt Downie says:

          My ‘kidney’ question about 10 page-ups from here was an example of a question that in real life would not merit answering with anything beyond, “Don’t do any of those things, for the following reasons:…”

  36. methermeneus says:

    Oddly enough, I just posted something about this on Facebook a couple days ago. I wasn’t the one asking the question (I’m still not good enough at programming to be getting into any actual new territory), but figuring out C, I came upon an exercise involving OpenCV. (If you’ve ever seen/read Headfirst C, you’ll know the one; it starts on p. 389.) Well, some of the functions I thought I needed weren’t working so well, so I started searching for advice on making them work.

    The thing about OpenCV is, it’s been around a while. It was originally written in C, but the project was migrated to C++ in 2009, to what everyone seems to agree is a great improvement. And I can see, that, I really can; it’s something that really works well with classes. Unfortunately, either I’m not understanding something or it broke a couple of things in the C implementation (the fact that OpenCV.org says “C++ is fully compatible with C so no compatibility issues can arise from making the change” does not inspire me with confidence). Unfortunately, the result is that the vast majority of responses to people who have similar problems to mine are along the lines of, “Why are you using OpenCV in C? You should use the C++ code! It’s better in every way!”

    Great, lovely. And that helps me to learn C how, exactly? Now, a lot of these people are helpful enough to explain how to do it in C++, but that still doesn’t help me if, say, I’m using the library as part of my efforts to learn C. It also wouldn’t help if I was trying to integrate something into a preexisting codebase written in C, which is one of the points above. It’d be nice if more people at least said, “I don’t know, but here’s how you do it in C++, hope that helps.” That’s at least not denigrating the poor sod who’s so stupid that they’re trying to use this library that explicitly says it works in C in C.

    Gah. That wound up a little more hostile than I intended. Guess I’m just bitter. Anyway, on the bright side, I did learn a fair amount about getting OpenCV working in C++ along the way, which is nice. It’s just that C is more useful to me right now, since I’m just doing this on my own and don’t know enough to build a larger program, so I mostly just to practice problems and little utilities for my Linux computers.

  37. Trix2000 says:

    You know what I found interesting in light of the post topic? Reading and thinking about people’s comments to it, including my own.

    What mostly comes to mind is how many people addressed what specific answers to respond to forum questions with… but my impression (correct me if I’m wrong) was that the focus was more on just being nicer and more considerate/thoughtful with answers, not the answers themselves.

    That, and I can’t help but notice how much more self-conscious I’ve been about my own replies this time. It’s making me feel incredibly introspective today.

  38. Raka says:

    That database example makes my brain itch. It’s also really not an exaggeration of what often happens when procedural programmers (“hey, programming language: here’s how to do the things I want done”) need to interact with a declarative system (“hey, programming language: this is the result I want, and how you go about getting there is your problem”), and don’t feel like learning an entirely new conceptual framework just to handle what’s likely a tiny portion of their actual problem. I’d complain about how unreasonable that is of them, but my career very much depends on that “laziness”.

    Not that it’s at all relevant to the actual topic, but the wrongness-level is on par with converting all of your integer values to strings, and writing an “add” function that pulls each character position from your source strings and calls an Escher-esque labyrinth of recursive conditional statements to evaluate the appropriate result. Rather than, y’know, using a plus sign. So yes, your answer is correct in that system performance will suffer dramatically. But not nearly as dramatically as any appropriately-experienced programmer will.

  39. BitFever says:

    I cant agree with you more Shamus! I deal with angry people all the time for my work and calmly working through there problems in the most level headed helpful manner you can is the only way to get anywhere. Hostility just causes train wreck of human interaction and makes us feel worse for it.

  40. UTAlan says:

    This is one of the best things I’ve read on the internet in a long time. This problem ultimately boils down to what I believe is a problem with every human being – the focus naturally tends toward the self rather than to others. Almost all problems we face in the world comes down to this.

    Also, in the last paragraph you said: The other person my indeed be an idiot, but you can’t make them smarter by telling them how stupid they are.. I think you meant: The other person may indeed be an idiot, but you can’t make them smarter by telling them how stupid they are. Not trying to be nit-picky, just trying to help. :)

  41. John Lopez says:

    Being a database guy, that question made me sad, but only in the same way Stack Overflow’s database questions do every day.

    To cope with exactly the problems that Shamus brings up (incorrect, misleading, hostile and troll answers) Stack Overflow has a voting system that *usually* brings the cream to the top and actively *damages* the reputation points of those who do those actions.

    Getting points on Stack Overflow is pretty easy if you are technically savvy, but it is *much* easier to lose piles of them in a catastrophic flameout if you go off the reservation.

    With the exception of this site, (which has used merciless moderation to great and positive effect) the lack of such moderation/metamoderation systems causes conversations to decline into the muck. Stack Overflow has managed to harness the *positive* energies of a highly autistic group while dulling the pain that normally comes with it.

    In the end, there are plenty of all of the other answer types still around, but the top voted answers for most of the questions on the site are actually quite good. I think that Q&A sites really, really need a system like Stack Overflow’s “cream to the top” solution… but sadly most don’t.

    • Alan says:

      One of the challenges of StackOverflow is that there is such a surplus of people eager to help (or at least earn a reputation), that it’s hard to earn a baseline of reputation. I certainly don’t need the ability to upvote good questions and answers when I come across them, but I certainly appreciate that I have the ability. I was only able to build up that baseline reputation because I got in relatively early. These days I when decide to pop in and field a few questions in my fields, they’re all swarmed with answers, and usually there are really good ones. While the abundance of good answer is great, I worry that this will lead to StackOverflow being dominated by people who got in early and people who obsess over it, which I’m not sure is healthy. (Wikipedia has a similar problem, and I’m convinced that Wikipedia suffers as a result.)

      That said, my advice to anyone is that StackOverflow is still awesome, and given enough time you’ll gain some reputation. Don’t sweat it in the meanwhile.

  42. topazwolf says:

    For posterity I will include some of my thoughts on the matter:

    First, the rationale behind answering a question directly and providing additional information. While it may be silly to choose between a shoe and a bottle for hammering, answering specific questions is important. If their is a sufficiently detailed solution to a specific scenario adds worthwhile information to the internet. It is called the world wide web for a reason. If the person desired a hammer, then they could easily direct themselves to information about a hammer. However, the question of which makes a better hammering instrument has yet to be answers and as such leaves a hole in the collective knowledge. Filling this gap is more useful than leaving it blank, since the practical use of the knowledge cannot be predicted.

    Second, requiring more constraints. While it is fine to request more rationale to suggest better solutions, this can be done while giving the answer. This will both provide the desire information and link said information to more relevant knowledge which is a good thing from a perspective of future use.

    As far as whether or not the question is stupid or worthy of a direct answer is dependent on the one answering. If you think that it is not a worthwhile question, perhaps it would be best to merely ignore it. Leaving a pseudo answer in which you just insult the person asking is a waste of time and provides utterly worthless data to the forum since it will simply be in the form of drama. If you think it is worth answering, then answer it directly. Extra information can be included if you are of an extremely helpful nature.

  43. kdansky says:

    As for how to spot the useless posters: Proper language skills work too. I generally do not bother reading anything where the writer didn’t make the effort to use proper grammar. Sure, people make mistakes, but when some guy (for example) insists on leaving out every space after every single punctuation symbol, then that’s just as annoying as someone who replaces all the e’s with 3′s. In other words, trying hard to be a dick, and therefore not worth reading.

    • mwchase says:

      If, purely hypothetically, that were an issue, would there be sufficient interest in a user-script that attempts to munge posts with that issue into a less irritating form?

      See, I’ve got a thing that a friend and I worked on, but it produces a lot of false positives (smilies and acronyms, mostly), and perhaps open-sourcing it and getting some PRs or something would improve the experience.

      You know, if there were a general audience for such a thing, which I’m too non-confrontational to say whether there is.

  44. Amongst the maxims I live my life by is the idea, “Never assume malice when stupidity is an equally likely explanation”. In my view, a corollary of this is, “Never assume that stupidity is willful”. That combined with basic politeness solves the shoe and glass bottle problem.

    The way I’d answer the shoe and glass bottle problem in the real world would be: “I suggest you should use a hammer instead. The hammer is suited for the job and not terribly expensive. If you don’t have access to any other tools, the shoe is less likely to break”.

    The example is a kind of Rorschach test. Not only is it a bad example because using a hammer on a nail is common sense in our culture but knowing how to solve a computer problem is not (which people who interact with human beings know), but it begs the question in any instance.

    Here’s a counter-argument:

    If they’re dumb enough to be asking you if they should use a shoe or a bottle on a nail, are they smart enough to understand that they should use a hammer instead?

    Every jerk on the Internet who assumes that they can just yell at people to change their opinion is assuming that the other person is just dumb enough not to agree with them but just smart enough (and not stubborn or argumentative enough) to see the light upon the jerk’s revelation.

  45. General Karthos says:

    Every time I ask a question, “can someone help me with ‘X’ (wine, DOSbox, Sheepshaver, etc.) to get game ‘Y’ to run on my Mac?” I am GUARANTEED to get a minimum of one answer to the effect of “Why R U using a mca you idot? Buy a windows commputter,” (sometimes a bit more literate or less literate than that) and a minimum of one answer telling me to run bootcamp.

    I just want help with running the game on one of my various emulation tools. I don’t want to buy a whole other computer.

    This might be a case of using the wrong TYPE of hammer, but I’m still at least using a hammer, IMO.

  46. Black says:

    I’d like to say that A) was the most reasonable answer to the the hammer question of the choices.

    As has been said there may be additional constraints (desert island, etc.) and it isn’t always reasonable to detail the context.

    Example:
    I was posting once about a specific math problem to solve an orbit analytically. The prerequisite problem specific and domain knowledge (on either the video game side or the physics) was several pages. The summarizing made it very difficult to understand the context.
    Both versions made the question become less clear.

    This is common!
    How often have you seen “The OP already said” _blank_?

    The issue raised with A) being a bad answer because of copy Bob and dumb John is a non-issue. Copy Bob will always copy and, being lazy, would rather “Google It!” for what they currently have started than go to a whole new system (you know they already searched to get there anyway). Dumb John on the other hand didn’t ask the right question and so we are guessing what they really want.

    In both cases we shouldn’t assume we know better. I would place quality of answers in the CAB order. C) is the answer A) which directly answers but suggests B) which MAY be better. For those of you that insist “fixing” Dumb John helps future searchers… It doesn’t. It helps the search engine. If the engine was smart enough it would have all the BS filtered out. But it’s not, so it bases it off of relevancy association. The best way to help all the groups and not just Dumb John is to answer C) because it is a bidirectional association instead of a unidirectional one.

  47. Katrina says:

    My programmer is trying to convince me to move to .net
    from PHP. I have always disliked the idea because of the costs.

    But he’s tryiong none the less. I’ve been using WordPress on a number of
    websites for about a year and am worried about switching to another platform.
    I have heard fantastic things about blogengine.net. Is there a way
    I can import all my wordpress posts into it?
    Any help would be really appreciated!

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!