上个月VISA信用卡出事了,某个美国人在加油站买了一包香烟,于是他的信用卡里就有了标题那个数字的钱“$23,148,855,308,184,500”,注意这可以美刀啊,相当于美国整个国家国债的N倍。

程序员们开始疯狂了,他们在stackoverflow.com上开始人肉debug这个问题(贴子)。排名第一的回答(564 votes)说,这个数字转成十六进制是:0x2020 2020 2020 1250,很明显,前面的若干个0X20表示的是空格,也就是说,程序错误地处理了空格。于是本回答后的跟贴把这个回答推举成了本年度最牛的debug——”best debug of the year”,后面还有人说这个人应该在NASA工作,继而有人跟贴,应该是VISA而不是NASA……

当然,也有人有不同的意见……

排名第二个贴子(仅有排名第一的零头 67 votes)发表了不同的意见,贴主说,VISA报道说当时全球在那个星期内发生了大约13000起这样的事情,而且,全世界在报道相似的事情(报道一报道二),但所有的报道都是相同的数字——23,148,855,308,184,500。如果前面是空格,那么最后的一个字节是,0x1250怎么可能会是一样的呢?所以,他并不认为空格被解释了,他觉得一定是某个地方出错了,并不像一楼所说的那么简单。

Josh Muszynski’s Statement

Jason Bryant’s Statement 

Ron Seale

Teenage Girl
Elizabeth Lewis

为什么说这个事呢?主要有两个目的:

  • 其一、软件总是会有很多Bug要我们去debug,bug的症状并不代表着那就是Bug的原因,但通过Bug的症状推理出Bug的原因,有时候真是很像一个侦探要做的事情,从上面的这个故事中,我们可以看出这样的能力的重要性。要有这样的推理能力,需要有很强的基础知识,以及丰富的经验。
  • 其二、StackOverflow.com是一个很不错的类似于“百度知道”但要比其好N倍的与编程相关的站点,相当的不错,你会经常光顾这个站点吗?

最后,大家可以看看这个贴子后面的一些人的相法,各种说法都有,包括一个灌水的,来轻松一下:

That’s the exact amount I intend leaving to my children after I’m dead.

呵呵。(全文完)