All Stories

被吞噬ing

  随便翻了下阿菲和小思宇的blog看看,想起自己的blog,都已经被工作和程序吞噬了,几乎没有生活了。不知道这是好事还是坏事。  打到我那里的问题堆积得高居榜首,结果被人说了,说这周晚上应该要加点班,于是今晚就很听话地在那里加班,改问题、写文档。难得又加班一回,就给小丫头发邮件,结果好像还被鄙视了,呼呼。  又多了个任务,不过估计那个任务不会花多少时间的,呵呵。  很矛盾啊,又想赚钱又想玩啊!

问题数又长了

  今天搞了一天,也没把配置的内容整好,不熟悉是一方面,另一方面是内容太多,很多是体力活。未解决的问题数于是又增长上去了。  快下班的时候,老大又把我叫去跟另一个老大讨论那个需求去了,结果还是要在本地加个小程序,呼呼,这个自由度大了好多,而且可以做得再花哨一点,可以像Google桌面搜索一样,加个Band在右下角,用IE来做界面。还说要有可扩展性,这样如果设计得好,还可以做成一个远程控制客户端,既然都这样了,就像一个木马了,亦或是可以即时通讯,哈哈,这个真是太危险了。不过老大还是有点舍不得SharePoint啊,本来SharePoint对于现在这个项目来说,有一项非常强的优势,是内容管理,还可以全文搜索,如果不需要全文搜索,随便一个C/S的东西就行了,要是需要对.doc、.xls、.ppt等文件进行管理,SharePoint是很强悍的。  昨天上网搜了一些中文分词的资料下来,突然觉得要是通过很好的中文分词,或许拼音输入法就能做得比较好用呢,说不定能提高整句输入的精确度呢。

过去这两年

  今天在网上闲逛看别人的blog,在csdn上看到一个blog,博主写了篇《过去这两年》的文字,博主82年人,应该是和我同届的,文中他画了张图,总结了自己的工作学习的情况。  再回头看看我的情况。我2005年7月1日直接从重庆学校飞到这边,算是7月4日入职的,到现在也十足两年了。两年中,做SDH设备的软件测试不计节假日共约21个月(2005年7月中~2007年3月底)。当时得知自己去做测试,心中也不免诸多怨忿和失望,完全全新的领域,加上并不感兴趣,而且劳动态度不端正,以及自身先天(?)的素质影响下,成绩如何可想而知。不过到后来便有点麻木了,觉得干什么都一样,而且男人选择自己感兴趣的行业作为职业似乎是种很不成熟的表现,呵呵。  两年来,几乎什么都没学到,什么荣誉都没得到,什么好处都没捞到。真是失败啊,对比那位博主,只能感叹人与人之间的差异很多时候是没法填补的。  只能说,在以后的日子里,在自己力所能及的范围内,尽量努力,不为什么,只为能赚更多的钱,这是最直接最首要的目的。

输入法变大好多

  昨天今天翻看五笔爱好者论坛几年前讨论大熊猫输入法的老帖子,发现一些有趣的想法,比如词库用数据库来实现。  今天就动手把SQLite3.4版的代码下下来,并加入输入法的工程一起编译,看起来好像编译是没问题,不知道实际用的时候怎么样。  另外想到的是,要让输入法能直接使用sogou拼音输入法的皮肤,也就是ssf格式的文件,其实也是zip文件,只是后缀名改了,于是要加入unzip的代码,而既然加了zip格式的解压功能,索性把rar格式的解压也加进去算了。这两块的代码因为直接就测试使用了,还真出现了一些问题。首先是unrar的代码都是.hpp和.cpp后缀的,而整个输入法的工程原来一直只用C,所以要用extern "C"来修饰一下。然后发现unrar的文件包含关系还真是奇怪,它会直接include那些cpp文件,但如果直接把那些cpp文件加到工程里来编译是会出错的,这从它的makefile中也可以看出来,并不直接编译其中几个cpp文件,但也不能把它们直接删掉,真是奇怪啊!再后来的问题是,因为我想反正输入法最后生成的就是一个动态链接库嘛,让它多导出几个函数可以让辅助工具使用,所以加入RARDLL预定义宏,指示把rar代码编译成DLL,再把几个函数名写到def中去,这样就可以导出这些函数了。但还会有问题,再加个预定义宏SILENT,就能正常运行通过了。之后出问题的是unzip的代码,首先unzip的代码并不能自动覆盖已有的同名文件,所以只好在调用前先把目标文件夹内的文件都删掉。后来看起来好像运行得还算正常,但突然发现,release模式下,不能直接激活输入法,在激活时会调用unzip来解压文件,这时就直接崩溃了。但如果是先用rar或7z格式的皮肤,就不会崩溃,再切换到zip格式的文件,用unzip也不会崩溃,比较怪异。最怪异的是,这只有在release模式下直接运行会出错,如果是通过VC下的调试器,或OllyDbg这样的调试器里运行,就算是release也不会出错。这就导致问题很难定位了,本来就没有多少调试方面的措施在输入法里,而这又是第三方库的代码。想到debug模式的是没这问题的,于是又想到编译链接选项里动脑筋,经过少量的试验,最后发现,只要加上了缓冲区检查编译选项,release模式的也不会崩溃了。唉,VC的这些选项还真是大有学问啊!  今天一下加入了3个开源库,于是趁机把版权声明也整理了一下,呵呵,一个小小的输入法还用到了不少东西呢,现在就有7z、unzip、unrar、lua,还有从网上找来的一小段一小段的代码,以后辅助工具里估计还会加入Boost的东西。最后用debug模式生成的ime文件有1.9MB,用release模式生成的有1.04MB,用upx的--best选项压缩一下,最小也有近500KB,一个五笔输入法做到这种程度不容易啊,哈哈。而且还不是最终成品,成品应该还会再大点点。

忙得昏天黑地

  自从老大一声令下要仔细认真测试,短短两三天时间内,挂到我下面的问题就有近70个,这两天奋力迎战,到今天下班前,还剩下30多个未解决的,其实是暂时不容易解决的。  昨天下午,疯丫头还发邮件问我去不去拿MP3,结果这邮件我都是到下班的时候才看到。大概今天她自己都觉得我可怜了,自己送过来了,哈哈。

两天没写blog了

  两天没写blog了,这两天主要是想加个在线造词功能进去,可是没成功,让人比较泄气。所以说,五笔加加真的是设计得很好的一款软件,各方面都比较完善,各种细节点闪现着作者的缕缕灵气。  公司里的事就太多了,这两天打过来一堆的问题,估计总共有50多个吧,解决了一些,到现在还剩下近40个,而且很多很多是暂时解决不了了,架构方面就有问题。有些则是技术方面的问题暂时得不到解决,唉!  得快点把输入法搞定,其实也就剩下两个问题了,造词和状态栏窗口刷新。之后就赶紧做辅助工具,Boost又丢下好久了,要趁写其它程序里好好跟进学习啊!

又懒下来了

  在回家的路上又被堵了很久,让我再一次觉得很气愤,深圳的开车的人是全国素质最差的,明明已经堵车了,明明走不 通了,明明再挤进去会变得更糟,可是他们还是会乱闯乱挤,除了道德上的因素,我都要怀疑他们智力上是否也有问题。  人又懒下来了,回到家,只是看了看如何加入造词功能,其实这些代码原来的人已经都写好了的,我拿到后觉得没什么用,删掉的,注释掉的,确实精简掉了很多至少我自己用不上的功能。现在只是到了放开的时候,在输入上屏后,要记录下来历史记录。以后按到快捷键,就进入半自动造词模式,就可以从历史记录中取出内容来。顺便还把添加历史记录的部分代码优化了一下,应该能增加些速度吧。  公司里还是像往常一样,搜简历,然后看代码,增加新代码,修改老代码。暂时接手维护了另外两个模块,还好功能都是基本上已经完成了,只要再加一点点就行了。突然老大说,上面的头儿说要做成C/S模式的,主要是为了信息安全,真晕!本来还暗暗高兴了一下,可以趁此机会好好学习一下网络编程了,结果他们好像决定用DCOM、WebService这样的东东来实现,唉,不感冒啊!~

修正了3处bug

  昨天把输入法中的两个存在已久,但一直没引起重视的bug修正了。其中一个是,分号转英文或大写字母转英文的时候,不能混合输入数字;另一个是,大键盘输入数字后回车,紧接着输入句号或斜线都会变成英文标点。这两个标点都是在我引入分号转英文、大写字母转英文和大键盘输入数字转义时引入的,但因为其实这些场景自己用得很少,而且影响也不是非常大,所以一直没有很重视,昨天忍不下去了,就改了。  今天把分号选择第二个候选字的功能也修复好了,因为那段时间引入分号转英文,就直接把这选择第二候选的功能屏蔽掉了。这回看到要修复好像很容易,况且很多人好像都习惯使用这个来进行第二三候选,不像我只用左右shift,呵呵。  还要加入五笔加加那样的手动造词功能,嗯!其它bug也还很多,比如状态栏有时候出不来,状态栏的窗口跟随,保存词库时死循环。

暂时避规崩溃问题

  今天发现有一个办法可以暂时让英文长度超长时宿主程序崩溃的问题,但也很无奈,不知道是什么原因。办法是在release的编译模式下让链接选项中选上生成调试信息的选项,这样最终生成的文件体积就会大一点,但确实不会有崩溃的现象了。真是奇怪啊!今天其它什么几乎都没做,想着开始给它进行优化了,主要是从速度方面。  在公司里的活儿也郁闷呢,VSS2005如果没有.NET的环境的话,连那两个DLL组件都注册不了啊!