All Stories

今天遇到奇怪的事

  给江江写了一个小程序,用于自动从一些excel文件中复制数据到另一些excel文件。但江江说有问题,我也不知道到底哪里出问题了,于是想加入日志功能吧,这样至少可以看看代码执行的流程。可就在这里,遇到一件怪事,居然写文件写不进去内容!开始我是用C库里的fopen系函数来写文件的,但是什么都写不进去,单步调了一下,好像fopen就有问题,该函数返回的是一个FILE*,但看调试器里,该指针指向的内容是一堆0,好像就是打开失败,但它却确确实实返回一个有效的指针了,郁闷!于是我就试了一下用C++库里的fstream,开始看好像是可以的,于是我就把原来自己写的那个日志类拿过来用,反正里面写文件的代码就是用fstream的,不过这时又不正常了,只是零星写了点完全无用的数据进去,其它信息压根都没有,真是郁闷啊!  因为是用了那个日志类,所以OutputDebugString的输出还是有的,这就让我觉得很奇怪啊!因为下班了,于是也不想再继续深究下去了,反正用DebugCapture捕获这些输出,再导出到文件,也勉强是可以用了,呵呵。  不过这真是奇怪啊,完全没有任何头绪!

元宵节快乐

  又是一个节日,又是一个人过,又是一次难过。什么时候才是个尽头啊!今天,我突然顿悟到一种奇怪的念头。付出是不一定会有回报的,而且是有很大几率没有回报的。而有时候,什么都不做,却什么事情都往头上摊。无可奈何啊,茫然而麻木地做着这些事,只是为了企望以后能少点遗憾和后悔。

买到了2007年程序员合订本

  不容易啊,看网站上说1月15日就全国同步发行上市了的,结果我天天逛那些个小卖部,还去其它卖书的地方看,就是没看到。今天中午吃过中饭,跟疯丫头去食堂一个平常都没去过的小卖部,偶然发现那里居然有卖了,不禁有些欣喜。现在定价是¥45,在我的意料之中。想都没想就刷了卡,买回来随便翻了翻,发现这次的合订本纸张质量很差,闻一下味道也不好,没有那人让人心旷神怡的墨香,感觉像是盗版的,晕死,不过看那附着的DVD,觉得应该是正版的,呵呵,盗版的也不会这样明目张胆地放在公司小卖部了。  快速浏览了一下目录,感觉没什么特别感兴趣的内容,不知道是我自己的品位发生了变化,还是这个杂志确实做得越来越不对我的口味了。不过我也不是很放在心上,反正平常确实也都不买月刊了,最多拿别人的看一下,或者索性在小卖部里看,呵呵。

使用GDI+实现异形窗体

  总的说来,GDI+的资料似乎还是少了点,用GDI+来实现异形窗体实在是太酷了,不过似乎用PNG这种支持透明色的图片格式最合适,如果是像BMP或JPEG这种没有透明色的,最好还是用关键色混合的方法,这种方法网上已经有n多代码了,纯API或MFC之类的封装都有。不过GDI+的用起来总会出现点莫名其妙的问题,比如我在家里用时,发现换成Win2000 Pro中文版或WinXP SP2 Pro中文版时,在窗体上用GDI+写出的文字有时候就是不正常,总是显示为透明的,一定要透过窗体下面的颜色跟背景色相同时,才会显示出正常的颜色。

春节放假结束

  跟去年一样,我又只请了年前的假,但只请了5天,2月1日开始,2月12日结束。幸亏是2月1日那天上午去的,飞机中午到了萧山国际机场,雪已经下大了,当天晚上机场就被封了。之后雪是不停地下,机场就封了好几天。爸跟我几乎是同时到家的,也是很幸运,反正如果错过了当时那个机会,就很难回去了。  之后几天都过得很清闲,每天就是写点儿代码,从早上起床,一直到晚上12点左右睡下,中间除掉吃饭的时间,其它时间差不多全坐在电脑前了。在写那个WallpaperHelper,这个东东被我搞得太大了点,粗粗分一下,有4大模块:墙纸管理、行程安排、图片处理、桌面日历。其实自己没写几行代码,全是抄的别的,像行程安排,Xtreme Toolkit Pro里就有现成的,完成度比较高的了,图片处理用的CxImage,不知道为什么,用UNICODE编译CxImage的库,就是不能正常地链接,最后很无奈,索性把整个CxImage的代码都放进工程里,于是一个很严重的副作用,每次Rebuild时,就要花多好多时间。另外还有个郁闷的问题是,在调试器里创建一个GDI+的Image对象总是会崩溃。中途还遇到了很笨的问题,我还花了好多时间去跟踪,以为CxImage的代码有问题,结果真是笨死了,居然总是想去打开一个不存在的文件,而没发觉这个文件路径是无效的,晕死。  大年三十那天晚上,吃得太油腻了,然后又喝了很多冰凉的饮料试图解渴,结果吃坏了,肚子也坏了,还感冒,有一天晚上起来后再躺下,全身发抖,却又不是因为冷,精神性(神经性?)痉挛了不知道多久,抖得人都累死了,还是停不下。一直病痷痷了4天,于是乎,连食量也被减下来了,不过倒是省了很多事。  昨天晚上7点多的飞机,这国肮,是我遇到过的服务质量最差的了,空姐的态度也不好,饭菜味道也不好,到10:20左右,顺利抵达。倒是下午我刚出家门,小丫头发了个短信来祝顺风,让我小小地感动了一把,我这人啊,真是太低贱了。

想学学脚本语言

  这次是真的想学一下Python和Ruby这样的脚本语言了,主要是它们的开发效率都似乎比较高,有大而全的库,很适合写些小程序,完成些小功能。几次去书店和小卖部,看到几本相关的书,都想买下来,但最后都还是忍住了,想想我买了来很可能还是束之高阁了,而且网上一般都能找到英文电子版的。  对于这两个语言,我不期望能很精通,只要有点熟悉主要功用就行了,顺便自己用MFC做个IDE,当然目的不单纯,呵呵。

使用Apache作为Gems服务器

  这个想法有好几天了,在网上搜来搜去,也没找到多少有用的东西,不过今天晚上加班,还是弄到基本可用的程度了。  首先需要明确一点是,所谓的RubyGem服务器其实是一个非常普通的http服务器。在公司里那台公用服务器上,自动化组的人用ruby发布包里自带的gem_server.bat运行了一个脚本,提供gem服务。打开这个bat文件看看,其实是个Windows批处理脚本和ruby脚本混合的东西,它开头一条语句将处理流程跳转到最后,运行ruby.exe来执行自身,中间则是一段一段的html代码和ruby代码,最主要的是最后一段ruby代码,通过WEBRick包提供的功能,在本地开设了一个http服务,并动态处理远程连接的http请求。其中最重要的是yaml请求,远程客户端请求yaml文件,其实它是一个对服务器上所有的gem包的索引,有了这个索引文件,客户端知道服务器上有效的gem包版本和具体路径,然后同样是通过http协议下载需要的gem包,并安装到本地。  有了这些基础,接下来的就好办了。Apache随便哪里都能弄到,基本配置也非常简单,就是改一下端口,设置几个别名,把gem服务器常用的几个目录添加上。一般需要/、/gems/、/doc_root/、/yaml这4个路径,其中/gems/和/doc_root/就是ruby在文件系统目录的直接映射,/和/yaml要通过脚本刷新,脚本不用自己写,只要拿gem_server.bat改一下就行了,原本它是直接生成字符串返回给http客户端,这里就改成把生成的字符串写入到文件就行了。试了试gem install命令,可以用,解决!  最后再来啰嗦一下,为什么要用Apache来作为Gems服务器。因为那个gem_server.bat用ruby来启http服务器,却有非常严重的内存泄漏问题,只要客户端连接稍微多一点,内存占用就直线飚升,随随便便就能到1.5G,所以,就是不能用它!

阿迪牌保暖鞋

  定价¥680,用卡打88折后¥598.40元。今天可谓是速战速决,吃完中饭回来休息了一下,立马决定去买东西,刚出小区大门口,就看到辆满载着人的335缓缓驶来,挤上去,男的在这方面就是有优势,不怕被人趁机骚扰的同时,内心邪恶点的可以趁机骚扰一下车上的ppmm,不过我的胆子还不够大,革命尚未成功,同志仍需努力!好不容易晃悠到华强北,直奔茂业大楼,到阿迪专柜看了看,马上看到一款保暖鞋,第一印象这就是我想要的款式,底是胶底的,面是牛皮的,颜色是黑的,价格对我来说是高的,但我还是二话不说,只试一下大小就开单了。

总算大致知道CppUnit用法了

  昨天在小卖部买了本持续构建的书,后来又看了一天敏捷方法的资料。今天突发奇想,想要在我的工程里加入单元测试的代码,工程是用MFC的,所以很自然的想到用CppUnit,Boost压根就没被我想起来。  之前有过好几次想学一下CppUnit的使用,可是最后都放弃了,每次放弃的原因都一样,静不下心来,觉得太麻烦了,不知道从哪里开始。今天就先问了一下旁边的一个同事,他告诉我只要从某个类继承,就可以写测试代码了。然后看了看Impeller中的代码,尝试着给我的工程里加入使用CppUnit的测试代码,一切顺利,太好了。这样也算是又学会了一项技能吧,哈哈!