niyue

Archive for December, 2005|Monthly archive page

碰到的最困难的Bug

In programming on December 28, 2005 at 2:34 PM

要是以前问我programming以来碰到的最困难的bug,我可能一下回答不出,但是今天碰到了一个bug,解决之后回想一下,发现最困难的就是这类的bug-与时间相关的数据问题。这类问题由于和数据计算的时间有联系,导致了这类问题发生的上下文往往无法重现,根本没有办法进行调试。

这次碰到的问题是企业生产系统中计算的外购数量发生错误。外购数量根据订单订购数量以及企业当时该种货物的库存计算得到的,也即与特定的时间点相关。生成的外购数量中部分正确,部分有问题,由于将所有数据恢复到当时情况进行重新计算与调试,很难有地方可以入手查找问题的根源(当然,这里也可能是因为我们的日志做的还不够好)。程序代码检查了没有发现问题,直接查数据库中的数据也没有办法得到答案,后来碰巧发现两张出错订单的制单日期均是在20日之前,于是猜想20日之前的那个版本中程序有问题,但是现在已经解决。但是这一猜想也无法证实,因为正确的版本的发布时间已经想不起来了。终于通过FTP上的文件(文件中包括了发布时间,15日和20日均发布了一个版本)以及JIRA中对于这一bug的记录(记录日期为15日,解决日期为17日),确定了正确的版本肯定是在17日之后发布的,也即20日发布,在20日之前的数据都存在问题,但是20日之后的数据均正确。

解决这一bug一共查找了系统源码,db数据,ftp发布文件,jira中bug记录等四处的信息才定位到问题原因所在。和做数学题一样,其实题目并没有超纲,只是多拐了几个弯的话做起来就很难了。而这里会需要多拐弯的原因正是在于时间信息无法重现,只能通过多个信息源共同来确定问题的可能原因。

基本上没有什么办法能够避免此类问题的发生,唯一的比较好的解决办法是在系统中进行完善的日志记录,保证能够捕获系统中大多数时间点上发生的事件情况,从而能够较好的重现bug发生时的现场使得bug能够快速定位。

Advertisements

向一无所知的人解释语义网

In semanticweb on December 17, 2005 at 2:58 AM

原文: Semantic Web for Dummies

看到了Andreas Blumauer 的这篇文章,想起来好像原来在bbs.xml.org.cn中看到过谁问过怎么向对语义网没有了解的人解释语义网,这里举的例子不错,翻译给大家分享一下.

有一个很严重的问题:如果某人问你,语义网究竟是用来干嘛的,同时此人又对语义网一无所知,我们可不应该结结巴巴回答不出.

所以我准备了一个小故事,用它来开场是个不错的选择:

“假设你有一个闹钟,它与你的电子日程相连,从而知道你早上的第一个会议是几点开始的.它还可以通过查询你所在城市的公交电子计划知道你所在城市的交通状况.因此,这个小装置能够很轻易的知道什么时候应该在你耳边响起,而你还能够准时到达会议.如果这个语义闹钟还能够知道你所处的睡眠阶段,从而等到合适的时间再将你叫醒,那它就是一个完美的闹钟了”.
这里并不需要你使用像”RSS, ambient intelligence, Web Services, SOAP”等的词组或者术语,但是你还是能够明白,对吗?

未来才刚刚开始: http://www.axbo.com/

Hello world!

In Uncategorized on December 4, 2005 at 8:44 AM

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

我的Firefox扩展

In software on December 2, 2005 at 2:37 PM
Enabled Extensions: (11)ColorZilla 0.8.3.1
FlashGot 0.5.9.98
Google Toolbar for Firefox 1.0.20051104
IE Tab 1.0.6.4
ListZilla 0.7
Mouse Gestures 1.0.4
Noia 2.0 (eXtreme) 2.991
Piggy Bank 2.1.0
Tab Mix Plus 0.2.5.2
View Rendered Source Chart 1.2.03
Web Developer 0.9.4
Disabled Extensions: (1)Slogger 0.5.11