23,148,855,308,184,500
上个月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怎么可能会是一样的呢?所以,他并不认为空格被解释了,他觉得一定是某个地方出错了,并不像一楼所说的那么简单。
为什么说这个事呢?主要有两个目的:
其一、软件总是会有很多Bug要我们去debug,bug的症状并不代表着那就是Bug的原因,但通过Bug的症状推理出Bug的原因,有时候真是很像一个侦探要做的事情,从上面的这个故事中,我们可以看出这样的能力的重要性。要有这样的推理能力,需要有很强的基础知识,以及丰富的经验。
其二、StackOverflow.com是一个很不错的类似于“百度知道”但要比其好N倍的与编程相关的站点,相当的不错,你会经常光顾这个站点吗?
最后,大家可以看看这个贴子后面的一些人的相法,各种说法都有,包括一个灌水的,来轻松一下:
That’s the exact amount I intend leaving to my children after I’m dead.
呵呵。(全文完)
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
家中 32G 内存 mini pc 上 win11 装了个 vbox, 然后虚拟了 debian12, 通过 docker 部署了以下服务, 并通过 cf 的 tunnel 实…
需求是这样: 有一个队列,队列中的元素是不断变化的,想知道这个队列中所有元素的和。 队列元素的增加: 当一个请求到来时,就往队列中添加元素。 可能同时到来上百个请求 队列元素的…
我对 root 和刷机了解不深,可能存在一些误解,但这些疑问长期困扰着我,也是我一直不敢 root 和刷机的原因之一。 大家是如何确保获取 root 权限的软件是安全的呢?如何…