All Stories

debugger

  今天一天写了几行脚本,为什么效率这么低呢,只是添加了个生成chm文件的功能,就花了8个小时!如果是用C/C++这样的语言来表达的话,我会不会更快一点?我怀疑,不确定,算了,随它去了,反正勉强能符合我自己的要求了。  一个好用的debugger还真是重要哈,以前在Lotus Notes上用Lotus Script写Agent的时候, 就已经发现了这一点,但当时也只是觉得大概这样的debugger只适合这样的脚本语言,这两天突然发现在BDS中的debugger也是很好用的,我真是土,用BCB那么久,一直没用过它的debugger,自己汗一个先,知道我以前调程序有多复杂多麻烦多痛苦了吧。最早在DOS下用QBasic或TC写程序时,调程序都是通过打印语句输出变量的值来做的,后来大概过了2年左右迁移到Windows上时,居然...居然是用MessageBox来显示变量值来调试的-_-b主要是VCL里的字符串和数值之间相互转换很方便,所以...唉,闻道有先后,术业有专攻嘛(又想起那个家伙)。用MessageBox有一个不好,就是会打断程序的执行,要人为介入使它继续。后来发现了OutputDebugString,其实是先发现了一个它的捕获程序DebugTrack,才知道有这个函数的存在,还依样写了个简单的版本,这个方法跟我在DOS下调程序几乎是一样了,输出一些变量的值,来跟踪程序的执行,好就好在不用打断程序,而且又用stdarg.h的一些宏,把它封装得像printf一样,可以方便地用一个接口来输出不同类型的值!直到前两天,才发现集成在IDE那个debugger,用起来就像调Lotus Script和VBA程序一样简单方便,还可以用CodeGuard,居然能自己检测出内存泄漏,哈哈,太好了,在日志文件中甚至能指出是哪一行分配的内存没被释放。啊,我真是太土了!  今天买了2号中午12点的机票了,计划5号下午回来,最晚6号上午吧,要回来要回来要回来,过中秋,呵呵。

方块

  和同事切磋了一下方块,呵呵,好玩,悍超纯点大概1.0x的速度,居然也能打到总监级别,厉害! 不知道为什么,跟他们打了几盘后,再自己打单机,发现好像比以前快了一点点,超过1.1x的机会多了很多。

随缘

  快半夜了,xcc还给我打电话,两个人就因为一些能让我们郁闷的事又为我们的客户贡献了大半个小时的话费!这样谈过,心里就很轻松,连像他们这样我看着都觉得艳羡的人,都有这样的困扰,那我还在乎啥呢?冥冥之中,自有安排,不用刻意追求,一切随缘吧。  ccal被我加了几行代码调试得差不多可以实用的阶段了,下次再来吧,be happy!

  在实验室里,一个女同事和我旁边的男同事在调校一个仪表,仪表就放在我的电脑旁边,两个人就两个头都处在仪表前,我就开玩笑说,来,给你们拍大头照。突然,觉得心里隐隐一阵酸味,想起那个家伙。我还是挺小心眼的,就是很难过自己那关,我使劲劝自己那都是过去的事了,心情才稍稍平静了一点点。

Plugin Framework

  一直觉得Eclipse的插件架构很牛x,有时候自己写个小程序都想着怎么实现一个灵活的可扩展的架构,可是却不太容易,毕竟我软件工程方面的经验还是几乎为0。在网上闲逛看别人的blog时,偶然发现一个Dissect Eclipse Plugins Framework,对Eclipse的插件架构做了一定的描述,还自己用简单的实例来Dessect了一把,就像jjhou的Dissect MFC一样。对于自己要实现一个类似的,灵活的插件框架,无疑是很有帮助的,但是同样作者也是用Java来实现的,一定程度上讲,这种框架依赖了Java语言特有的语言特性,如果换成其它语言来实现,比如C/C++,或许还有其它的障碍,但总的说来,思想已经摆在那里了,Eclipse的那帮设计者真的天才!《Contribute To Eclipse》这书也写得挺好的,毕竟是两位实战和著作都颇有经验的大师合力的精心之作,中文版的翻译也挺不错的。  装了个Windows Live Writer,IE6也能标签(tab)浏览了,不过似乎有点问题,还是我自己没找到在哪里设置,每次新开窗口都是另外一个窗口,而不是一个标签,另外就是在标签间切换,有点闪。本来说起来像Maxthon这样的东西,我一直都只是因为它比IE多了个tab才用它,不过自从Firefox的易用性达到我的需求后,就再也不用了这些了,对于IE only的那些网页,还有IE Tab这样的插件呢!

重新安排出游计划

  xcc给我建议的出游计划因为另一方的不乐意而泡汤了,这个家伙! 只好另作打算,去哪里闲逛一圈,实在不想这么7天都呆在屋子里头,对着电脑,妈妈说要少打电脑,以后会生不了小孩的,郁闷,比起长期放在裤兜里的手机辐射来说,这个影响应该小很多吧。不过妈妈的话也是不无道理的,本来在公司就是超过8个小时对着电脑,每天下班回家做的第一件事还是打开电脑来上网,确实无聊啊,上次luolu问我平常做些什么,我就是压根儿想不出有什么值得说的,生活质量之低下啊!出去一趟要花些钱吧,不过钱总是要花的,攒了也没用,这点钱能买房子吗,能买车子吗,不能!那为什么不把它花在其它地方能让自己也稍微高兴一点的地方呢,生不带来,死不带去啊,应该像Linux消耗物理内存一样,不要让它闲在那里!  改了一下LLYF WallpaperHelper,能保存和装载配置了,不过还有一点是,要加上月历生成功能哦,估计不是很难吧。^_^其实我觉得这个程序的功能应该作为鱼鱼桌面秀的一个插件来实现,但是鱼鱼桌面秀总是要抢其它前台窗口的输入焦点,所以我只好很惋惜地放弃了这个想法!

桌面

  今天看到某论坛上一张比较好看的CG MM图片,突然想起Dead Or Alive里的那帮MM,于是上google搜了一下,down下来好多图片,多了图片就是为了当桌面用的,想起我那个只是做出显示界面的LLYF WallpaperHelper来,用来后台自动更换桌面是绰绰有余了。不过这个程序只能用简陋来形容,真的只能用来更换桌面,界面实现地也不太友好,我的审美细胞实在不行。稍微改了一下,也治标不治本,有些实用的特性都没实现。还突然想到,要是能把桌面做成月历就好了,于是去搜了ccal的代码来,代码实现并不多,但我的代码阅读能力确实也差,晕。  在外面闲逛的时候,就想要做哪些东东,回到家对着电脑,却怎么也提不起劲来。Yuyuamp,这个名字还真有点别扭,YuyuNES稍微好看一点点,YuyuTetris呢,也比较怪,还有Yuyu Entertainment呢,哈哈!  我根本没有利用上键盘加速的优势,因为我一直都是一下一下点的,不是用的平移,郁闷,习惯改起来很痛苦!

诱惑

  诱惑真是让人难受,总是忍不住去做些很费时间很不上进的事情,比如打俄罗斯方块! 打了一段时间的俄罗斯方块,进步很慢,好像现在很不稳定在1.1x的样子,不知道那些3.5以上的人是怎么练出来的。原来,是因为确实缺少一些必要的知识,所以可能很不现实达到那样的高速,尤其是要平移。现在知道是因为键盘加速了,但还有一些小技巧,比如手指的动作应该尽可能地灵活,并且幅度小,这样可以高速地击打按键。另外就是要尽量缩短思考的时间,一方面,应该在完成一件事的时候可以同时进行思考,比如在移动的时候可以思考下一块的动作,另外一方面,应该对一些常见的形状形成条件反射,看到那样的形状几乎不经过思考而直接由肌肉反射进行移动摆块。现在只能想到这几点,但这几点要做好就已经很不容易了,大概剩下的能做的就是不断地练习练习再练习了!  修改了一下tracetcp.dll中的一些代码,再在SocketCapture里对接收到的消息进行解析,其实也就是把字符串截断成几个,分别显示在ListView的几个列里。只是还是没找到正常关闭completion port的办法,郁闷,会把程序弄崩溃。  在微软的网站上看到Vista RC1的下载,32位版本大概有3GB,填了几张表格,回答了几个问题,终于可以下载了,先下一个再说。

程序一天

  昨天把WinSock捕获部分的代码封闭到一个类里面了,看起来似乎要舒服一点,维护起来或者有新的需求了,也应该更方便一点。不过现在,从Detours里copy过来的代码用起来还有一点点小问题,因为原来它是被用于一个单一功能的控制台程序的,而我现在这里每一次开始都是一个新的线程,所以结束的时候,应该发送消息让complete port自己结束工作线程,不然程序就可能崩溃。  今天在公司,花了几乎所有工作时间,至少有6、7个小时吧,写了几行VBA代码,可以把写好的手工用例自动导入到自动化分析的模板里面,并分成各个步骤和预期结果。虽然说花了那么多时间,但回去看一下所有的代码,并没有多少行,这里可以大致看出,用这样的语言开发效率在某些领域某些场合是比C/C++之类的语言高,我花这么多时间来实现这么简单的一点功能,完全是因为我以前基本没用过VBA,很多时间都是花在查找MSDN等帮助文档上了,想到一个需求,就想应该已经有相应的函数封装好了,于是翻来翻去看msdn和online help。中途也产生一点想法,或者说抱怨,这种语言还是比较麻烦,比如不能随时随地定义新的变量,觉得不爽。因为一开始都没有什么计划,上来卷起袖子就写代码,所以什么变量名啊,程序组织结构啊,都是乱来了,还好想要的功能大体上都实现了。 还有点不爽的是,VBA的编辑器居然不支持鼠标滚轮,晕死!不过虽然今天花了这么多时间,以后就可以少做很多机械的重复劳动了,只是不知道自动化组的人没有没做这方面的事,不然我的时间就是白费了!