Archive for April, 2009

You use Google’s (otherwise excellent) OpenID support on Stack Overflow.

As we just discovered, Google’s OpenIDs are unique per-domain.

Thus, the OpenID string key “fingerprint” that we use to identify you on Stack Overflow is not the same as the OpenID string key that Google returns for Server Fault.

Until we come up with a better workaround, what we recommend is adding an alternate Stack Overflow OpenID from myopenid or another service where the OpenID URL is stable. For example, one of my OpenID accounts is codinghorror.myopenid.com which works fine in both places.

Server Fault is for system administrators and IT professionals, people who manage or maintain computers in a professional capacity. If you are in charge of …

servers

networks

many desktop PCs (other than your own)

… then you’re in the right place to ask your question! Well, as long as the question is about your servers, your networks, or your desktops, anyway.

In other words, it is exactly like Stack Overflow, but instead of being a community for programmers, it’s a community for sysadmins and IT pros.

We are seeding the beta with programmers who also happen to be sysadmins. The private beta is open to any interested Stack Overflow users with reputation scores of 100 or higher; to get started, simply go to serverfault.com and provide this password:

Once you’ve entered the password, log in normally using your existing OpenID. As a Stack Overflow user in good standing, you will get a few Server Fault new account perks: all your user information will be transferred over automatically, and an initial reputation bonus of 101 points added.

(note that if you use Google OpenID exclusively, there may be an issue with the OpenID string that is returned for a different domain, so please try our workaround.)

Once we have your OpenID we’ll add it to the beta list and you’ll be able to log in, but you will not get the reputation bonus that existing Stack Overflow users get. (Note that requests without an OpenID URL will not be honored, so please make sure you have an OpenID URL before requesting access!)

We don’t expect major problems since the site is based on the now-mature Stack Overflow codebase — but if you do encounter beta issues, please let us know via the Server Fault uservoice site linked on the bottom of every page!

The private beta should run for about 1 to 2 weeks. Have fun, and feel free to forward this private beta information to any sysadmins or IT pros you think might be interested; everyone is welcome!

This is the 51st episode of the Stack Overflow podcast, where Joel and Jeff sit down with Joel’s business partner, Michael Pryor of Fog Creek Software, at Stack Overflow world HQ (i.e., Jeff’s house) in El Cerrito, California.

Joel and Michael went to the Computer History Museum, one of my favorite places in the world. It’s not just big iron; Michael geeked out over his old Apple //gs, and Joel enjoyed revisiting old HP calculators.

Stack Overflow comments are now elevated to the main page. We’ve gone through several user feedback cycles on this, and we feel the current comment layout is a good balance. The preference for this is still in the works. This was partially inspired by the way comments are displayed on SFGate articles (scroll to the bottom to see how comments are displayed there).

A discussion of the value of meta — discussing Stack Overflow on Stack Overflow. How much meta is acceptable? Where should meta-discussion go? Isn’t the podcast and the blog meta enough? Is there a need for stackoverflowoverflow?

Consider an analogy with school — if you don’t like the after school activities students are engaging in, it’s because you didn’t provide a good set of alternatives for them. But perhaps a better analogy is that of students who become teachers; they need a “teacher’s lounge” area.

The whole point of Stack Overflow is synthesizing better answers than what you can commonly find on the open internet. If the answer is already good and easily findable elsewhere on the internet, leave it there! Don’t repost the answer on Stack Overflow unless you’re enhancing and improving the answer in some small way.

Part of the philosophy of doing lower-level things yourself, such as building your own computers (or even learning C), is to do it enough to understand it — and learn something along the way. It doesn’t mean that you need to (or even should!) do those things forever, but the journey of learning and discovery is its own reward. The best reference for programmers who want to learn what goes on underneath their code is Charles Petzold’s outstanding book, Code.

Learning black hat techniques is important, because when good is dumb, evil will always triumph. Don’t be dumb. Know what’s out there, and how to exploit it. The morality of studying black hat techniques derives from what you do with that information. Will you sell it? Distribute it and actively attack ? Or quietly disclose it to the vulnerable software or website?

Joel marvels at the enormous size of the Microsoft campus since he worked there; when he was at Microsoft in the early 90′s, there were around 5,000 employees and it was not uncommon to see Bill Gates walking around the campus. The Redmond visitor center is a disappointment; it should be more like the Computer History Museum, highlighting Microsoft’s central role in so much of that history to date.

Apparently the best estimates are that there are around 9 million programmers in the world, roughly the population of New York City. Imagine a whole city of nothing but programmers. On second thought, that’s too scary — let’s not.

Developer Salaries to Rise? We’re not sure that the number of CS degrees being awarded necessarily correlates with the number of programmers seeking jobs.

If you’d like to submit a question to be answered in our next episode, record an audio file (90 seconds or less) and mail it to podcast@stackoverflow.com. You can record a question using nothing but a telephone and a web browser. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879.

As we get more and more questions in Stack Overflow, the issue of duplicate questions becomes more pressing. The odds of any question being a duplicate, however small, increases with the total number of questions in the system. So it’s worth considering: what makes a question an exact duplicate? As I see it, there are three classes of duplicate questions, from most clear to least clear.

Cut-and-paste duplicate questions. These questions are the very definition of exact duplicates; they are typically from users who willfully take the very same question and post it again. Either they’re not satisfied with the speed of answer, or they just don’t know what they’re doing. We rely on Stack Overflow users to vote down these “questions” and flag them for moderator attention. These sorts of duplicates are typically deleted as soon as we see them, as they’re borderline abuse of the system. They often don’t get answers, so this is fairly easy to deal with. No grey area here.

Accidental duplicates. These questions aren’t copy and paste, but they cover the exact same ground as an earlier Stack Overflow question. The overlap is not ambiguous; the question uses the same words and asks the same fundamental question, with no variation at all. This is a failing on several levels; of the asker to do proper diligence before asking, of our internal ask page title search, and possibly of Google search as well. We rely on Stack Overflow users to link these questions together by closing them as “exact duplicate” and posting the URL (as a comment, or edit) to the question this is a duplicate of. These sometimes have multiple good answers attached to each question. We will use our new moderator question merge function to merge them together without losing any answers or comments.

Borderline duplicates. These questions are ambiguous; they’re in the same ballpark as a previous question, but have subtle differences that may make them legitimately standalone questions. These are subject to interpretation. We rely on Stack Overflow users to tag these questions appropriately so they naturally “group” with the questions they’re related to. The more tags the questions have in common, the more likely they are to show up together on the related questions sidebar. You can also edit in links to the possibly duplicated posts, if appropriate, but be sure to make the tags match so the system can figure out the relationship without as much manual effort. There’s often benefit to having multiple subtle variants of a question around, as people tend to ask and search using completely different words, and the better our coverage, the better odds our fellow programmers can find the answer they’re looking for.

The impending launch of the serverfault.com private beta has interrupted work on this slightly, but better handling of accidental duplicate questions is currently very high on our priority list. We’d like to streamline this so it’s easier, with a friendly UI. (If you have ideas about what UI makes sense in this scenario, we’d love to hear it.) That said, we have implemented a moderator level function to merge duplicate questions — so if we determine two questions are accidental duplicates, we can merge them together without losing anything except the text of one of the questions; all comments and answers are preserved.

Thanks to everyone who helps us find and eliminate duplicate questions. We appreciate it, as do future visitors who hopefully will be able to find their answers a bit faster without excessive duplicate questions cluttering up the system. As you have time, please keep doing what I have highlighted in red, above, to help keep duplication in check!

The problem of joke questions has come up more than a few times now, so it’s worth going over how we will handle them. In a nutshell, please do not post joke questions.

What do I mean by joke question? It’s a question that..

Looks authentic, but is a parody of a real question.

Describes situations that sound plausible, but are not based on fact or reality.

Posted with the intention of tricking users into believing it is an actual question from a peer.

Is successful when some users answer it in good faith, not understanding that it is a joke.

Am I referring to fun questions? No. We’re not anti-fun. Even Amazon occasionally allows some fun to slip through, as Steve Yegge mentioned on the last podcast, with the Tuscan Milk and The Story About Ping. Fun questions are open and honest about their “fun-ness”, and are often tagged as such. That doesn’t mean the Stack Overflow community will accept your fun question, necessarily, nor do we want the site overrun with nothing but xkcd cartoons, wedding cakes with code, cool server names, etcetera. But you do get bonus points for being up front about your intentions.

Joke questions are different, because they are deceptive. Some members of the community might see that it’s a joke or parody and treat it as such, but a sizable percentage of the audience won’t. They will not understand that it’s a joke and spend their time answering it — while the original poster (and those “in the know”) are laughing at them! This is unfair to those members of our community who provided detailed responses in good faith. It’s a waste of their time. It’s also kind of a rotten thing to do to people in general.

So, to be clear:

Joke questions are not real questions.

Joke questions do not belong on Stack Overflow.

Joke questions will be treated as abuse.

The bottom line is that posting joke questions or answers on Stack Overflow intended to deceive your fellow users is unacceptable and anti-community, and it will not be tolerated.