All Stories

想写个文档收集管理工具

  昨晚在整理硬盘上的电子书,顺便想到我零星收集的n多资料,一般就是一张网页,或者一个txt文件,里面可能是一篇文章,或者一小段代码,却很可能讲述了一个技术原理或一个小小的编程技巧,我没有计算过总共有多少个这样的文件,估摸着应该有几万个吧,这些只是平时上网,看到觉得有用才收藏下来的,不像那些电子书,很大一部分是去年从一个同事那里直接拿硬盘对拷过来,有些根本不是我关心的领域的,比如无线通信之类的。  这些文档散落在硬盘上,虽然我也大体上划分了一些分类,比如algorithme、crack等等,但当真要找某个比较细节的内容时,很可能要花很多时间,还不一定能找到。于是我就想,要是有一个适用于编程资料收集管理的工具就好了。我是懒得再去网上找了,先不说能不能找到真的完全符合我的要求的软件,即使有(这个可能性很小很小啊),也不一定是免费的。以前看过几个文档收集管理工具,要么是纯粹的通用工具,缺少对编程资料的倾向性适配,要么就是纯粹收集源代码的,又缺少对文字内容的支持。所以又回到原来我说过的一句话上来,最好用的软件是自己写的。  以前用BCB写过一个电子书管理的工具,花了些时间,但实际上并不好用,界面也其丑无比,太业余了,这是促使我后来义无反顾地投入VC阵营的重要原因之一,在像XTP、BCG之类的界面库帮助下,用MFC做界面其实并不比VCL麻烦,而且以我个人的经验看来,在同等工作量投入的情况下,反而更容易做出比较专业的界面来。又跑题了,那个电子书管理程序的功能太弱,虽然当时也想过不光要能管理电子书,还要能管理普通的文本资料,但后来由于对界面的极度不满意,直到完全失去了兴趣和信心,就放弃了。  现在想用MFC+XTP写一个,数据库就用SQLite好了,不光能管理文本资料,也能管理电子书,这是我比较希望的一种方式。管理文本资料时,需要特别关注,可能有两种不同类型的内容,一类是文字描述,一类是源代码,所以要同时有两个视图来表达一份资料的内容。资料的分类管理是必须的,而且更需要的是一种比较方便的搜索功能,不但要能搜索标题,还要能搜索内容。再有就是文本资料和电子书的管理要融合在一起,看起来没有特别明显的分界,但又留有余地可以完全分离开来。  这个工具不是通用目的的,是为程序员专用的,所以用户范围可能少了点,但这也算是围绕着我的整体规划目标了,developing for developers!

相比之下SVN比VSS更好用

  最近这段时间,SVN和VSS混用,有些工程是放在SVN里的,有些是放在VSS里的,但总的说来,感觉SVN更好用些,也许VSS 2005已经提供了各种现代化的特性,但直到现在,我还只是以VSS 6.0的眼光看待。  SVN在编辑前不需要check out,这点我就很喜欢,在VS 2005中,可以设置得让IDE自动check out出来,但离开了IDE,还是得自己去做这点操作。现在我用的VS 2003,就会自行弹出个check out确认对话框,这让用过SVN的人觉得很不耐烦。尤其是在某些情况下一个操作会要求先后对多个文件进行编辑,这时VS 2003就会不厌其烦地一次又一次地提醒要check out每一个文件,比如要编辑资源,就会要改.rc文件和resource .h文件,如果是添加一个新的类,就会要求编辑.h和.cpp文件等等。  但是SVN也有很让人头痛的问题,比如它完全依靠文件夹下的.svn文件夹工作,而且似乎很容易出错,出错了还不容易修复,VSS就很少这类问题。还有就是似乎代码仓库也有类似的毛病,容易出错,出错也也不容易修复。  今天得到一个经验,如果一次性要添加很多文件夹和文件到仓库中,最好不要用add和commit操作,而是用import。前者需要2步人为的操作,所以感觉要花费更多的时间。今天我就是需要添加4个文件,总共有130MB左右的数据量吧,n多个文件,用add还正常,commit时还会执行adding操作,然后是send content,到中途不知为何就阻塞在那里了,等了一会儿耐不住性子就x了窗口,到仓库里delete掉看到的几个文件夹,却有一个文件夹之后总是add不了了。后来改用import,就全加上去了,汗!  但是如果是一点一点来的话,我更愿意接受SVN这种工作方式。

迁户口,迁档案之一

  早上接到小丫头托人带来的身份证,马上打开ppt看了看各个步骤,还是不明所以,直接就跑去人事服务中心找人。等车等了10几分钟,开过了五六辆,全是满员的。先问开具迁档案时要用的《商调函》什么的,结果问我档案现在什么地方,我一听就愣了,当时我问小丫头时,她自己都不知道在什么地方。然后去开迁户口的申请,结果那mm说要证明,这也是情理之中的事,不过小丫头给我的那个ppt里留的两个联系人明显不对嘛!  两边都办不成事,只好给小丫头打个电话先,让她马上发个邮件证明一下,又顺便扯皮了几句。开好迁户申请,打道回府,离回来快1个小时了,这办事效率也太低了点,瀑布汗~

正式拿到驾照

  其实上周五的时候,晚上我在外面吃饭,手机没电了,回到家充上电,就发现江江发给我短信说驾照已经拿到了。反正我是懒得跑去F1那么远,就为了一个驾照,于是拖到今天,江江自己给我送过来了,不过相应的是我付出了几块德国巧克力的代价。宣宣还在那里告诉江江,说昨天她好求歹求了好久,我都不肯给她巧克力,哈哈。  有了驾照,却没车,真是个头痛的事情啊!不知道半年后,假如有了车后,我还敢不敢开上路。

内存泄漏

  今天偶然发现有时候会出现内存泄漏,于是照老样子打开那个编译开关,打印出所有内存分配的记录,但是却发现又不出现泄漏了,或者说可能是没有跟踪到。这样整了一个小时,毫无进展,只好放弃了,要多掌握几种比较可靠的内存泄漏定位方法才行啊!

完全颓废

  一周一次的例会,没有什么新奇的内容,我猛然发现自己连原本仅存的那点激情和盼望都没有了,残念!  下午帮一个同事定位内存泄漏的问题,倒是没有完全解决,只是指出了几处可能造成泄漏的代码,让他自己有空去调去吧。  那天cm0说自己很迷茫,我想了想自己,我是有目标的,知道自己想要什么,却没有动力,完全颓废了,唉!

比较轻松的一天

  今天倒没怎么投入到那个劳什子一体化平台中去,上午先是整了一下故障注入工具的PC端,只是加了个生成函数时的选项,最早是只能支持GNU编译器的,后来发现需要能支持Diab编译,只是在对话框上加了两个单选按钮,很简单,另外一个新需求更简单,只是改了下字符串。但也花了些时间,而且因为VSS不能访问了,于是索性把源代码都导入到SVN上去了,重新做了个安装包。  下午先去了趟图书馆,还了两本即将到期的图书,随便逛了一圈,没发现什么想借的书,空手而回。然后还是看了一眼一体化平台中那个权限问题,一直我都对外强调这个权限问题很棘手,工作量很大,然而其实在前不久我已经完成了绝大部分的代码,虽然发现有工作不正常,但也正好应了我原本一直宣称的没做好的事实,今天看了看,好像只是因为从数据库中取记录时没有把文档密级字段封装好返回而已。接着又看了一下编辑器中自动格式化的一个问题,这自动格式化已经成了一个顽疾了,而且不时地爆出全文格式化和换行缩进行为不一致的问题,这让我感觉头痛不已。总觉得现在那套代码写得太混乱,根本没有清晰的思路,但是我现在却实在不想费心去搞那东西了,唉!  今天是最近这段时间来感觉比较轻松的一天了,不是说工作量大小,而是说精神上的压力小了不少。

很多崩溃问题

  今天发现很多崩溃问题,主要是因为前段时间确实作了大幅度的修改,连数据库表结构都做了改动,幸亏也是今天让人试用了一把,发现得早。但同时也似乎引入了一些很难找到原因或者即使找到原因也不容易找到好的解决方案的问题,这才是让人郁闷的。  本来还想找来了个人一起做,结果是个新员工,还对C/C++、MFC并不熟,并不能立马就投入,反而要腾出时间来跟他解释原来的那些遗留代码是怎么回事,真是偷鸡不成啊!  另外还有个挂在我名下进行维护的工具,今天又收到几条新的需求,结果发现前些天那个VSS服务器不能访问,现在那个工具的所有源代码和文档都在那个服务器上,都取不出来,暴汗!

郁闷的格式化显示

  今天抓紧时间把那个格式化显示流程图的部分搞了一下,但是效果是很差的,这方面我一直都很弱,没有系统地学习过算法,更没有专业的图形算法知识。以前看过StarUML,可以格式化排版类图,现在要的就是像这样的效果,可我以为,这虽然可能可以做到,却是吃力不讨好的事。现在做的事情越来越偏离正轨,提出的新的需求总是搞混人和机器的能力,别人是扬长避短,而到了这里却总是安排些本不擅长的事情来做。  总之很郁闷啊!