Why I still contribute to Stack Overflow

This is in response to Michael T. Richter’s excellent critique of Stack Overflow. While I share some of the concerns for the problems mentioned there, I don’t believe they are quite as detrimental to the quality of the site as he appears to.

From the article:

I’m not a Java programmer. I’ve only ever briefly programmed in Java professionally. I hated the experience and I hate the language. I certainly don’t consider myself a Java expert. Yet I managed to get the bulk of my points from Java. How is this possible?

It’s possible because I did what many of the people whose questions I answered (and got points for) should have done for themselves: I saw a simple Java question, hit Google, read briefly, then synthesized an original answer.

This is what I read:

I know Java well enough to have used it professionally. Considering the recent explosion of access to computers and the Internet, the vast numbers of students and hobbyists who only ever touch on Java very briefly to solve a highly specific problem, the low level of entry relative to most other languages, the tiny amount of people who end up specialising in Java rather than any other languages in existence, and the fact that the language hasn’t been around long enough for there to be large amounts of people with many decades of experience, that single point probably makes me more knowledgeable than 90% of Stack Overflow users in Java.

I freely admit that I do pay attention to the points. They are the best way I have to figure out if I am actually getting better at submitting useful questions and answers. People’s motivation for answering doesn’t matter one jot to me if they write interesting or useful on-topic content. How could it? Such content is completely off topic, and would be edited out like the plague.

There’s room for improvement (and I wouldn’t even say “obviously”, like for so many other sites), but SO/SE is still miles ahead of anything we’ve ever had. It’s the Google of Q&A sites: Terrible for super specific issues (which are likely to be closed since they are not interesting to anyone but the author), but awesome for the rest.

Much of the rest of the article seems to be simply a complete lack of faith in other human beings. For example:

  • “If you’re going for points (and that’s the entire raison d’ĂȘtre for gamification!), are you going to waste time like that for 60 points when you could fit in a dozen 460-point answers? Of course not! You’re going to go wherever the points are, And the points are the low-hanging fruit of trivial questions from popular languages.” I personally think the Stack Overflow answer rate is plenty proof that lots of that people are willing to help even when the answer is likely to get very few votes.
  • “There’s an old clichĂ© in English: give a man a fish, he eats for a day; teach a man to fish, he eats for a lifetime. StackOverflow is filled to the brim with people giving fishes.” After using other web sites which were much more geared to fish donations (almost every linear forum, IRC channel and mailing list I ever used) I find it refreshing that adding links to more resources (even on other people’s posts), where people can learn how to fish, is extremely easy on Stack Overflow. I use this feature extensively, having far too many times googled a problem only to find a tip in a random forum reply with absolutely no rationale or link to more information. This is something which could possibly be pushed even more by the SO system, but it’s already very good.

And finally, the end paragraph: “How about learning?” Great! “You know, that thing that puts information in your head that you can apply later at need.”“Use Google.” About 30 times a day, and usually the best result is on Stack Overflow or Stack Exchange. “Use Wikipedia (if you must).” Except it’s pretty terrible to learn about practical software development or actual development issues. “Use RosettaCode for code examples.” Impressive collection, but I don’t think it’s very relevant for real-world development or easily searchable. And the MediaWiki editor is a pain compared to SO. “Engage with other users of the tools you use in the form of user groups, mailing lists, web forums, etc.” Vastly inferior technology to solve the exact same problem. No thanks. “Learn foundational principles instead of answers to immediate questions.” Stack Overflow is a Q&A site, not a substitute for work experience or college degrees.

Facebook won’t work with NoScript extension

Looks like they’re doing something retarded when detecting NoScript: Some links (for example, other people’s profiles) have an extra ?_fb_noscript=1 at the end, and the page includes a <meta http-equiv=refresh content="0; URL=/people/JohnDoe/12345678?_fb_noscript=1" />, which results in an endless loop of reloading the same page :/

TED.com bloat

If you’re a TED.com user, I’m pretty sure you’ve noticed the slow page loads compared to … Well, just about any other site out there. I’ve sent some feedback (below), and I’m hoping you’ll help out as well by suggesting general and specific improvements.

Hello,

While your web site is some of the best content collections I’ve ever come across, the style sheets / scripts are so huge as to require the full attention of a Pentium IV 3 GHz CPU for several seconds for every page displayed. 122 KB of CSS and 259 KB of JavaScript is massive, even today.

As a first fix, I’d suggest to use some of the online tools to compress CSS and JavaScript. Also, with 8 years of web development behind me (3 professionally), I’m confident that you can reduce the amount an order of magnitude without losing the overall look and feel of the site.

Thank you for your time and magnificent content!

PS: I’ve asked for feedback, and I’ll post it here if I receive any.

Digg 3.0 problems

After using Digg for a few months, I’m hooked. So hooked, in fact, that the following problems have been ignored until Digg 3.0 made them almost insufferable. For the record, I exclusively read the “All Recently Popular” RSS feed via Bloglines in Firefox 1.5.0.4 on Windows XP SP2, on a dual 2.8 GHz PC with 512 MB RAM, with a 10 Mbps line.

Load speed

It often takes several seconds for a story to load. This is very annoying, since the browser locks up completely during that interval. Of course, all that JavaScript takes a while to process, but not everyone goes to Digg for the comments. It would be nice to be able to set up my Digg account (or have separate RSS feeds) to disable JavaScript.

Login

This is the only feature of Digg I absolutely loathe. Especially the fact that I seem to have to login once for each section. Opening 30+ stories at the same time, it’s hard to see which ones are not logged in. And if several tabs are logged out, all but the last story are “lost” – All of them will load the same page (the last one which was logged out) when I log in. Re-reading 150-200 links is not my idea of fun…

The “popular” limit

Digg has grown a lot, and the RSS feed of popular items fills up faster than a Coke bottle with mentos. Nowadays, it seems about 150-200 articles per day end up in this list, and the quality goes down as a smaller percentage of users Digg each “popular” article. The obvious solution is to make the “popular” limit higher or user controllable. Here are some options:

  • Percentage of user count
  • Percentage of active users, for some definition of “active”
  • Some other function of [active] users
  • User-controllable feed, using parameters to control any settings
  • Separate “Very popular” list

No direct link

For some stories, the comments are not interesting, and it would be preferable to go directly from the RSS feed to the page in question. It would therefore be nice if you could include the direct link in the feed (or a redirect), perhaps the same way Reddit does. Incidentally, this would fix the login and load speed problems as well…

Re: Comments on del.icio.us illogical interface 2005-09-25

These are my answers to two comments regarding the del.icio.us illogical interface:

I would say regarding Joshua’s comment, that nobody uses an intersection, because it is *too hard* to use from del.icio.us, and very few people have figured it out! Not having logical operators makes it very difficult to search your own bookmarks, let alone those of others. It is difficult to replace your bookmark folders with tags. Logical operators can of course, substitute for and extend a hierarchy (the “and” operator alone implements a hierarchy). Another question: if there are no spaces in tags, how can someone search on say “Gulf of Mexico”? Adding “of” as a tag totally defeats the purpose of tagging. Semantically, “of” and “Mexico” pretty much are unrelated to “Gulf of Mexico”. I see that some people have been using underscores – this isn’t really documented anywhere, and is a real hack, to overcome this lack of basic functionality. If semantic tagging is to prove useful, this must be implemented somehow …

Regarding the tag search on del.icio.us, I think Joshua has a valid point in noting that current users rarely use intersection searches. However, because of the open API, other sites can implement whatever they find lacking, and this may in turn be incorporated into del.icio.us. I also think it was a stroke of genious to use only the space character as a tag separator, and leave everything else for the tags. That way, nobody has to learn escape sequences, and every conceivable special character can be used as the user wants. Finally, according to the del.icio.us blog, it doesn’t seem like he’s resting on his laurels. Maybe we’ll see this in some future version.

About tagging stuff like the “Gulf of Mexico”, the solution is the reason for both the popularity and some problems of folksonomies: You get to decide! The best solution for someone living in Northern Norway might be “GulfofMexico”, “gulf_of_mexico”, or any other fully readable tag, to be easily found again upon browsing the tag list. For someone very familiar with the Gulf of Mexico, “gom”, or even “gm”, may be good enough, and certainly easy to use for tag searches. AFAIK, del.icio.us doesn’t at this moment have any mechanism to overcome the obvious problems with this, but I expect it can be solved with e.g. synonym lists, which users can subscribe to. This way, professors in high energy physics may use their own terms when tagging, and laypeople may search their bookmarks using terms familiar to them due to the synonyms.

I just posted this page to del.icio.us. The tags included: logical operators and or not xor exclusive or… now, how could one find a link for “exclusive or” but not “not exclusive”? Or how useful are “and” “or” and “not” as tags? del.icio.us as far as the concept of semantic tagging goes, is a wonderful new meme, but it has just that much further to go. I can forsee that Google perhaps will pick up the concept of tagging and social bookmarking together, and be successful at it, if it isn’t implemented by del.icio.us. I hear that del.icio.us is very popular in the academic community – papers are categorized by keywords, in bibliographic entries, in sites such as in Entrez PubMed. But how can academics really use this without the full functionality? Of course, I’m sure that you get all the results of the tag query, and then filter them locally. This is extremely inefficient of course, and filtering on the backend of del.icio.us would reduce traffic tremendously.

Most of the time, using underscores, InitCaps, or acronyms is “good enough”. Flickr pretends to support spaces in tags, but for my part this has never worked. An idea would be to use the Enter character for a delimiter, but I suspect that would be a problem when accomodating how different platforms encode it (\n, \r, or \r\n), and in that it would mean using text boxes instead of the leaner & meaner text field for input.

Regarding the d.i.i. filtering: It downloads all the bookmarks of the user upon login*, and searches that instead of querying the del.icio.us server. This is convenient for me, for several reasons:

  • It provides an easy way to backup bookmarks on a regular basis (you can access and copy the XML files directly).
  • I can filter the whole lot using XSLT.
  • The d.i.i. will work even if del.icio.us goes down or out of service.

This behavior might change later; I’m planning to enable searching all users, and this will mean downloading the results of several searches, and then doing the necessary picking and choosing.

*Only if a correct password has been given, and the local bookmarks file is older than six hours