Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2011-09-13) 一个问题7个小时内浏览数过千,引发的思考

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

今天某群里有人发了一个问题:1927年12月31日晚的某两个时刻,明明看起来只相差1秒,但是Java在对它们解析之后一相减,结果却是353秒。但是把时间稍稍改动一下,比如都增加1秒,再算,结果又变为1秒了。

我对这个问题很感兴趣,感觉像是Java里的bug。但想不到答案,于是把它发在了stackoverflow上:

http://stackoverflow.com/questions/6841333/a-very-strange-date-before-1970

还有它的中文版本:

http://zhidao.it/questions/241

果然,在伟大的stackoverflow上,十分钟左右,就有牛人给出了非常准确的答案,并且有十多人参与进来,回答、评论、投票。仅十分钟,就得到了非常满意的答案。我原以为事情就过去了,但是刚刚打开stackoverflow时,系统提示我得到了几个奖章,包括“流行问题”,“好问题”等。我一看,不得了,这个问题已经得到了35个好评,8个收藏以及超过1000的访问量。而其中最佳答案,竟然得到了82个好评。

这是什么概念?这一个问题得到的好评,几乎超过了我之前一年时间提出的近百个问题的好评总和!而这发生在短短的7个小时内。

事情差不多就这样,而我在想的是:stackoverflow通过什么方法,能让这么多人看到这个问题?为什么我的其它问题,在第一天,访问量基本上只有几十?

Stackoverflow没并有管理员来手动将某个问题置顶,人们通常看到一个问题,是通过这样几种途径:

1。打开首页时,会显示“有趣问题的列表”。这些问题会获得最多的关注,但是使用什么算法来判断一个问题是“有趣”呢?旁边的tab页,可以在点击后显示“悬赏的问题”,“当前最热门问题”,“本周热门问题”,“本月热门问题”

2。打开问题栏目时,会默认显示最新的问题,旁边还有tab页,点击后会显示“悬赏的问题”,“最常被引用的问题”,“评分最高的问题”,“最近活跃问题”,“无人回答的问题”

3。每一个问题旁边,都有会“引用了该问题的问题”,和“类似的问题”

4。通过站内搜索引擎,找到该问题。

5。通过外部搜索引擎,如google。stackoverflow上发布的问题,通常在3分钟之后,就会显示在google的搜索列表中。

我能想到的所有有可能看到该问题的方式都在上面了,但却没有找到一个很好的解释:为什么就这个问题会被这么多人看到?

按照正常情况来说,一个问题提出之后,在几分钟之内就会跑到第二页之后了,一个小时之后就会在十几页之后了,这时基本上等于淹没于问题的海洋中了。日后想再被人看到,只能靠被人搜索到。而这个问题,在短时间内被大量人看到,应该与搜索引擎无关(不会这么巧就今天有无数人想起来搜索这个问题,而且问题的标题和内容看着不都热门)。那么就只有一种情况了,它被系统定义为“热门问题”、“有趣问题”,并且在相关问题中,排名靠前。这样才会有这么多的人看到。

那么我去验证一下,我按照一个普通浏览者的身份来浏览Stackoverflow,看能不能轻易地找到这个问题。果然,在首页的“周热门问题栏”,这个问题排在第4名。并且,显示的最后回答者的"86.4K"的贡献值(这绝对是超级大牛级的人物)给这个问题增加了莫大的吸引力,见下图:

image

马上又在“月热门问题”中找到了这个问题,排名18。只在这两个地方发现了这个问题,但是已经非常足够了,按照Stackoverflow的访问量,每小时100多人的访问是非常轻松的。而且这个问题又的确很有意思,回答者给出来的回答又非常好,所以很容易引得人们的参与欲望。

刚刚搜了一下那个86.4K牛人的信息,八卦一下,他的网站上,直接把Stackoverflow上的贡献值列出来了,这是一个非常有说服力的证明:

image

他在Stackoverflow旗下的五个网站中,总的贡献值达到了"90K”,我才1800多。

回到主题,看来的确是因为这个问题被评为了“热门问题”,它才得到了这么多的浏览量和参与;但是反过来,正是人们的参与,又让Stackoverflow判定它是一个好问题,所以放在首页。通过这件事,我觉得Stackoverflow不仅仅是一个简单的问答网站,它不仅仅是提供了“可编辑”“贡献多者拥有更多管理权限”“奖章”来保证问题的质量和人们的参与性,它还通过一些算法,让好问题得到更多的展示机会

只有在网站上看到更多的好问题,人们才愿意去看,去看,去投票,提问者也会受到肯定和鼓励,下次再有问题时,会第一时间想到这个网站。可以说,这个网站是活的,因为它可以找出最热门的问题并展示出来,并且它展示出来的问题,都是被人认可的好问题。

这和google对网站的判定一样:什么样的网站是好网站,它应该排在前面。想判定一个网站是好还是不好,为什么比另一个好,这不是一件容易的事情。而Stackoverflow所做的很类似,这也不是一件容易的事情。

再看看国内的类似网站(包括我的zhidao.it),都可以说是死的。排在前面的,要么是最新发表的,最新回复的,要么就是悬赏分高的,或者是管理员手动加个精华、置顶等。在这样的网站里,所有的问题都是流水,你问的再好再有趣,也有可能很快就淹没于题海,再无出头之日。而作为浏览者,看到的要么是最新发表的但不一定有趣的问题,要么是管理员人工置顶几天不变的问题。这样的网站,只有靠人数堆积出来的量,又没有质。

我想这应该就是Stackoverflow远超同类网站,难以模仿的原因:它是有技术含量的,不是谁都可以复制的。比如这个“热门问题”的评定,肯定要首先记录下来每个人的访问时间,回答、评价、收藏、评论等所有信息,然后再给每一种信息一个权重,最后算出一个评分。而机器算出来的热门问题,能不能得到人脑的认可,则要经常多次改良。这个过程,想想都挺难的。

看来zhidao.it要想改变现在这种死气沉沉的感觉,得要在这方面多花精力。

comments powered by Disqus