真的要努力为以后做点事了
不然就完了。
倚楼听风雨,淡看江湖路——未来的不可知,是我们前进的原动力! 花开,然后花落,星光闪耀,不知何时熄灭。这个地球,太阳,银河系,甚至整个宇宙也总会有消失的时候,人的生命和那些相比只不过是一瞬间吧,在那一瞬间中,人诞生,微笑,哭泣,战斗,伤害,喜悦,悲伤,憎恨谁,喜欢谁,所有的一切都是刹那间的邂逅,谁都不能逃脱死亡的长眠……
但今天却心情却不知所以地有点好。虽然问题数没怎么减少,但自我感觉是越来越好了,总觉得随着不断地改进,这个小工具已经比较好用了,我还额外地做了些增强易用性方面的工作。但有些东西,从架构开始,到最后的可利用资源,都限制得很难再继续发展下去了。代码重构是很急需的一件事了。
今天和晓妮mm一起坐班车,晓妮mm说又和我坐同一辆班车了,呵呵。刚来公司的那一年,我住三楼,她住六楼,虽说是同一栋楼,但正如她说的,当时我们最不熟,其实当时我跟测试组的同事都不熟,我很少跟同事说话,在食堂吃饭也是一个人很快地吃完就走。晚饭的时候经常是坐一在边等小妞过来,或者就出去4个人一起吃。搬了个家后,一切都变了。人是会变的,这是一件值得庆幸的事。昨天室友说起一件事,我说,我都已经原谅我自己了,原来我是很自责,我是很深刻地认为我错了,我也希望能弥补,但既然过了这么久了,还是没有丝毫的希望,我也放弃了。我无力改变别人,就改变自己,我不想继续活在内疚和悔恨中,我已经原谅我自己了。就算是真的触犯了原则性的问题,但人是活的。换了一种生活方式,我没有觉得丁点不好,感觉反而是一种解脱。至少对于我来说,是利大于弊吧。
at
22:26
0
comments
Labels:
About Job
几个月前1.34发布前,就已经开始说要迁移,先是把sandbox迁过去了,但主库一直还在sf.net上去。现在1.34.1发布了,终于有公告发出来说要迁到印第安那大学的OSL服务器上去。总的说来,SVN相比CVS从很多方面都有改进,虽然CVS仍是相当流行。居然老大说CVS不安全,比较无语的说。
在网上看到别人的blog,想想自己真是叶公好龙啊。现在公司里的任务老大似乎是很想玩B/S的东西,想完成目前这个项目后全都迁移到ASP.NET上去,要学C#了,我真的不是很感兴趣,昨天的考评沟通又把我小小地打击了一把,唉。想想自己也真是没用,要是有正式工作之外的比较稳定经济收入来源,怕他个鸟啊,直接fire老板。可惜啊,一直有贼心没贼胆啊。雨烟也辞职了,下一个会是谁呢?
at
22:52
0
comments
Labels:
Water
今天跟彭彭、小思宇、小妞一起吃饭去了。我发现我现在渐渐地放不开了,不如单独跟小妞一起吃饭时那么放得开了。
一无所有的人将永远一无所有,这是我今天吃饭得到的教训。所以我不能一无所有,我要努力。
at
22:26
0
comments
Labels:
Water
坐旁边的女同事昨天填完离职申请后,今天就没再来了。又见一个旁边的人离职,不过已经有点麻木,没什么感觉,只知道有一天我也是走这条路的。
今天把输入法的源代码和打包好的安装程序都发到五笔爱好者论坛去了,本来还多大的目标的,没动力了。
at
22:48
0
comments
Labels:
About Job
好累,好想休息哦!
晚上又加班了,改了一点问题,静不下心来了,于是收拾一下,就走了,去找人玩去。
实在无聊啊,怎么会这样。真想请几个星期假休息一下啊!
一堆事情积在那儿,可是我又懒。
问题又涨到20多个了,真是郁闷,怎么这么多问题。从SciTE里抄了一段打印的代码,居然能用,哈哈。
很多地方的代码写得很低效,有很大的改进的余地。还有很多会崩溃的问题,要解决。
at
22:53
0
comments
Labels:
About Job
昨天又早早地醒来,然后开电脑,写了一会儿代码,估计了一下时间,洗澡,出门,坐391到图书馆,错误地估计了路程,到得太早了,于是进去里面的阅览室看了些杂志,大概过了半个小时多吧,才等到人。还好我已经很习惯等别人了,在以前多次的等人过程中磨练出来了,哈哈。
从图书馆出来,在旁边的餐厅里吃了个咖喱鸡饭,味道不错哦,鸡肉比较嫩,只是量太少了,想起上一次吃咖喱鸡好像是我生日的时候请xcc和afei,在万象城后面的泰国餐馆芭蕉叶里吃的,记得那次的量比较大,呵呵。
吃完饭后,两个人想不好去哪里玩一下,最后说起去看电影吧,于是绕了点弯路去坐地铁,又一个路盲mm,呼呼。到了购物公园Coco Park,里面有个百老汇电影城。我在深圳2年,还没去过电影院呢。mm说没看过变形金刚,看了一下时间,10分钟后就有一场,只是没有好的座位了,只有前三排的了。买了一大桶爆米花,一人一杯可乐加冰。电影院的效果果然就是好啊,连脸上的根根胡茬子都能清楚地看到。
看完电影,她有个师兄打电话约她去K歌,于是于是,俺就也厚着脸皮去蹭了,哈哈。打的到华强北巴蜀风旁边的星期8,好多人在等,看到一个精瘦的小男人,好像比较内向的样子,过了一会儿,又来了一个mm,4个人坐着无聊,斗了一会儿地主,终于有房了。还好几个人都不是很拘束,我也觉得奇怪,以前跟小思宇她们一起玩的时候要是遇到这种场景,我肯定是很自闭的,现在却几乎已经克服了那种心理问题了。
7点半,从卡厅出来,去找吃的,本来说的是去吃小肥羊,后来被我带到小肥羊旁边的华神火锅去了,哈哈!点菜的时候我正给妈妈打电话,打完电话人家已经点完了,mm说,不知道我喜欢吃什么,只记得我很喜欢吃田鸡,于是帮我点了份田鸡,呵呵。
开心!~其实人是很容易改变的,嗯嗯!
at
09:22
0
comments
Labels:
mm
终过连续几周的奋战,到今天下班前,基本把编辑模块相关的问题解决完了,新的需求能加的也都加上了,不过真的从开始设计就遗留下来的通用性问题,实在是一个很烦人的事情,从程序结构上就限制了它的灵活性和可扩展性。今天还是很高兴的,因为把注释块折叠的问题搞得差不多了,昨天的解决方案今天被彻底废弃,因为它会引起一些很奇怪的问题而不容易解决。今天从Scintilla内部着手,修改了一小点代码适应自己的需求。下周就要开始把GT3000升级了,把相关的部分也跟着修改一下。那个模块经过几次几乎是推翻重来的过程,真是气死我了,一方面也确实是自己当时没有考虑到后续的维护和扩展,另一方面不停地修改原有的需求,导致我刚刚开发完一部分特性就被告知需求的变更,就需要重新来过。这回我索性就把这模块的问题先挂在那里,先从相对稳定的不容易频繁变更的做起。
at
22:33
0
comments
Labels:
About Job
老大又提出一个怪想法:为了测试,让原本不支持COM的程序支持COM。在我看来,这是一种非常古怪的想法。而且他一来就说要注入,而我一开始并没有觉得注入能带来多少好处,或者说对于我们现有水平,现在掌握的技术程序来说,注入可能没有多少优势提升。后来经过稍微的讨论,我也认识到,注入可以让有些事情变得更简单一点,比如可以把窗口的消息处理过程都替换掉。但老大只是为了自动化测试,有了COM后通过脚本语言就可以直接调用相关的功能,而这个COM组件其实是个中间代理的角色,它接收脚本的测试操作请求,然后对实际的程序做相应的处理,处理后的结果再由它返回给脚本。而现在的问题是,它怎么对实际的程序做相应的处理,比如点击某个菜单项,比如点击某个工具栏按钮,这个如果是用标准Windows控件的话,或许还好办一点,但也就没有注入的必要了,可如果用的是其它非标准的组件的话,即使注入了,能做更多事情了,也还是很难达到灵活控制外部程序的目的啊!
at
23:51
1 comments
Labels:
About Job
昨天为止,把输入法在注册表中的所有能找到的相关项都删除了,但输入法管理器中的图标还是好好的,输入法ime文件没被删除的话,也还可以切换过去正常使用。只有重启系统了才会消失,说明这样处理是不够的。
本来就知道有个小小的程序可以近乎完美地卸载输入法,不用启动就能使图标消失。今天上网把那个小东西找来,还真的挺小的,用PEiD看了一下说是用Delphi写的,没检测到压缩壳都只有20KB,应该是没用VCL了,本来还想用DeDe来反编译一把的,结果下了个DeDe来,好像不怎么会用啊,反正是反不出什么东西来。既然这么小,就用IDA试试喽,装入就分析完了。流程视图都只有一小点,从字符串表中顺藤摸瓜,找到一个叫UnloadKeyboardLayout的API调用,上Google随便一搜就看到有篇Blog写的如何用该API来卸载输入法,真是的,以前输入各种关键字都没有找到这篇Blog,还害得我大费周折地去反汇编,还好,也总算解决。
顺带还多了解一点内容,原来HKL就是输入法在Keyboard Layouts下面的子键的数值。
at
22:22
0
comments
Labels:
Shareware
今天拿到体检报告,说我超重了,要多做锻炼,多吃蔬菜水果,少吃肉类。其实体检出来的体重数值已经比我预期的轻了,人越来越懒了是没错。人是怎样变懒的呢?
现在每天回到家,都有点感觉累,不想动,于是就这样一天一天颓废堕落了。
at
21:35
0
comments
Labels:
Water
下午正在睡觉,小妞打电话来把我吵醒了。打完电话,穷极无聊,想想怎么弄一下我的T43让它可以和我的N73通过蓝牙连接。一直都知道T43可以用蓝牙,但一直没用成功过。上网找了一下相关的资料,原来只要Fn+F5打开蓝牙功能就可以了。这样用N73就能搜索到了,但在连接的时候提示需要什么通讯码,就像识别标识一样。还以为是固定的,所以上网搜索了一下,没什么实际有用的信息。后来偶然发现,在T43上搜索蓝牙设备,可以找到N73,这里设一下PIN码,然后在N73里连接时要求通讯码输入那个自己设的PIN码就可以了,呵呵。这样就基本解决了T43与N73蓝牙通信的问题。不过试了一下,连接很不稳定,经常马上就断了,而且传输速率只有8Kbps左右。
at
20:26
0
comments
Labels:
Software
话说同事那任务把他整得精疲力竭,昨天加班又是继续攻关这个遗留问题。老大的看法是RichEdit在显示的时候占用太多时间是主要原因,于是同事把RichEdit换成用Scintilla控件来进行显示,结果效率并不比RichEdit好,估计因为Scintilla是一个通用的文本编辑器,为了进行着色、词法分析等任务,在这种特殊场合下,并不是最优的方案。还是换回RichEdit,只好从提高字符串操作效率着手。把其中一部分操作原本使用CString的,全部改换成用C运行时库重写了一遍,尽量减少字符串复制操作,用原始的指针,同时也避免了原本非常频繁的CString对象的创建和销毁,再加上一点点从CPU优化的角度的编码技巧。最后发现似乎效果还是挺明显的,不过RichEdit内的数据如果一多,显示速度也会降下来,这个问题照我的看法,如果坚持要使用RichEdit的话,只能开个定时器,每一个固定的时间周期,把RichEdit中的数据减少一点,保证RichEdit中最多只存储一定数量,该数量应该还不至于明显影响显示速度的内容,否则就完全摒弃使用RichEdit,采用自己画的方案,因为每次只是画出显示的那一部分内容,速度应该很快,而难点是,要把所有内容缓冲到文件中,如何能在文件不断增长的情况下,快速准确地定位到需要进行显示的那部分内容。
这个事件,让我对现成库的效率都产生了怀疑的心理,MFC库的慢是为众人诟病的,但不知我更习惯使用的STL效率如果,它的string类,它的各种算法不知道应用到这种场合会是什么样的效果。必要的时候还是得靠自己手动解决,看了《软件优化技术》中的一点内容,编译器优化会帮我们做不少事情,但很多时候还得程序员帮助编译器创建更优化的条件和机会。
at
07:49
0
comments
Labels:
Software
今天去加班了,难得哦,突然一下子变得很忙,这星期连续三天晚上加班,对我来说几乎是难以想像的啊。加班回来就先给妈妈打电话,然后给阿姨发短信。
给小丫头打电话,没人接,于是放下,看网页。过了一会儿小丫头发短信来说,9点以后她就接听免费了。于是安安份份地等到9点,再给小丫头打。这次小丫头似乎心情不错呢,还好像比以前会搞笑了,真是有点意外,倒是换过来我唉声叹气了好几次。记得刚来公司的那一年,经常心情不好的时候就会给小丫头打电话,那时她还在学校里,而且几乎每次她都是很固定的活动,也是我们学校的人最平常的活动,上BBS、看碟、打游戏,以前我在学校的时候也是这么过的,所以总是给我一种很怀念的感觉。以前每次跟小丫头打电话都会把糟糕的心情变好,真的很奇怪,现在却好像不行了,可能是跟我的心态有关系吧,现在的心态跟以前不一样了。
所以,人千万不能随便动感情啊,不然像陷入了泥潭,难以自拔啊!
at
22:52
0
comments
Labels:
lookfor
同事为了能快速地打印输出格式化的字符串,已经被弄得精疲力竭了,呵呵。这些字符串来源于Ruby解释器的输出,包括各种复杂的信息,所以需要在显示前进行相关的处理,比如提取出放在行首的颜色信息,把字符串断行等等。目前的问题是,输出显示很慢,要么就是闪烁,要么就是脚本执行已经被中断了,它还在那里慢吞吞地输出,其实确实字符串已经送到了,但进行字符串处理的过程太慢,导致脚本执行中断时,还堆积了很多没处理的字符串。
看一下我们这个项目的代码,一般都是只求功能的实现,几乎从来不关心代码运行效率的问题。我一直也是这样的毛病,以前也没怎么想过特意去怎么优化。现在这个事情突然让我对这方面很是关注。
一般说来,以这个例子来说,要解决,首先就是要使用更高效的算法,看到同事写的那一段代码,确实是很低效的,大量的字符串重复拷贝、对象创建和销毁、字符串匹配等等都是很耗费时间的操作,又不注意稍微节省点用,照老大的说法,一个CString被复制了几次,用个引用效率也能高一些啊!然后可以考虑从CPU层面的优化,当然当前都是调试版本处理,也许效果还不是很明显。
我想了一下,如果是我来做那部分东西,我会怎么办。首先,我可能会把所有的CString都用C++标准库里的string/wstring来代替。其次,我应该尽量会避免每次收到一个字符串时就new一个结构体,里面还有个CString成员,这样的分配内存和创建对象操作在这种场合都太费时间了。然后是,开一个合适大小的内存池,这样一边可以追加,一边可以取出处理。再就是尽量提高匹配的效率,选择一些比较高效的算法以及好好改写程序逻辑和代码结构。最后是,RichEdit似乎也有一部分问题,可以考虑自己画,把所有接收到的内容先写入一个文件,或某块内存,每次自己处理滚动条消息,然后计算比例,画出相应的部分内容,如果用双缓冲画几行字,即使用GDI应该也还可以吧。不过这样纯粹是我的空想,基本没有实践支持,所以具体效果如何,以及复杂度如何,我也不得而知。
at
22:38
0
comments
Labels:
Software
随便翻了下阿菲和小思宇的blog看看,想起自己的blog,都已经被工作和程序吞噬了,几乎没有生活了。不知道这是好事还是坏事。
打到我那里的问题堆积得高居榜首,结果被人说了,说这周晚上应该要加点班,于是今晚就很听话地在那里加班,改问题、写文档。难得又加班一回,就给小丫头发邮件,结果好像还被鄙视了,呼呼。
又多了个任务,不过估计那个任务不会花多少时间的,呵呵。
很矛盾啊,又想赚钱又想玩啊!
at
22:30
1 comments
Labels:
About Job
今天搞了一天,也没把配置的内容整好,不熟悉是一方面,另一方面是内容太多,很多是体力活。未解决的问题数于是又增长上去了。
快下班的时候,老大又把我叫去跟另一个老大讨论那个需求去了,结果还是要在本地加个小程序,呼呼,这个自由度大了好多,而且可以做得再花哨一点,可以像Google桌面搜索一样,加个Band在右下角,用IE来做界面。还说要有可扩展性,这样如果设计得好,还可以做成一个远程控制客户端,既然都这样了,就像一个木马了,亦或是可以即时通讯,哈哈,这个真是太危险了。不过老大还是有点舍不得SharePoint啊,本来SharePoint对于现在这个项目来说,有一项非常强的优势,是内容管理,还可以全文搜索,如果不需要全文搜索,随便一个C/S的东西就行了,要是需要对.doc、.xls、.ppt等文件进行管理,SharePoint是很强悍的。
昨天上网搜了一些中文分词的资料下来,突然觉得要是通过很好的中文分词,或许拼音输入法就能做得比较好用呢,说不定能提高整句输入的精确度呢。
at
20:50
0
comments
Labels:
About Job
今天在网上闲逛看别人的blog,在csdn上看到一个blog,博主写了篇《过去这两年》的文字,博主82年人,应该是和我同届的,文中他画了张图,总结了自己的工作学习的情况。
再回头看看我的情况。我2005年7月1日直接从重庆学校飞到这边,算是7月4日入职的,到现在也十足两年了。两年中,做SDH设备的软件测试不计节假日共约21个月(2005年7月中~2007年3月底)。当时得知自己去做测试,心中也不免诸多怨忿和失望,完全全新的领域,加上并不感兴趣,而且劳动态度不端正,以及自身先天(?)的素质影响下,成绩如何可想而知。不过到后来便有点麻木了,觉得干什么都一样,而且男人选择自己感兴趣的行业作为职业似乎是种很不成熟的表现,呵呵。
两年来,几乎什么都没学到,什么荣誉都没得到,什么好处都没捞到。真是失败啊,对比那位博主,只能感叹人与人之间的差异很多时候是没法填补的。
只能说,在以后的日子里,在自己力所能及的范围内,尽量努力,不为什么,只为能赚更多的钱,这是最直接最首要的目的。
at
10:50
0
comments
Labels:
Water
昨天今天翻看五笔爱好者论坛几年前讨论大熊猫输入法的老帖子,发现一些有趣的想法,比如词库用数据库来实现。
今天就动手把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,一个五笔输入法做到这种程度不容易啊,哈哈。而且还不是最终成品,成品应该还会再大点点。
at
20:58
0
comments
Labels:
Shareware
自从老大一声令下要仔细认真测试,短短两三天时间内,挂到我下面的问题就有近70个,这两天奋力迎战,到今天下班前,还剩下30多个未解决的,其实是暂时不容易解决的。
昨天下午,疯丫头还发邮件问我去不去拿MP3,结果这邮件我都是到下班的时候才看到。大概今天她自己都觉得我可怜了,自己送过来了,哈哈。
at
20:05
0
comments
Labels:
About Job
两天没写blog了,这两天主要是想加个在线造词功能进去,可是没成功,让人比较泄气。所以说,五笔加加真的是设计得很好的一款软件,各方面都比较完善,各种细节点闪现着作者的缕缕灵气。
公司里的事就太多了,这两天打过来一堆的问题,估计总共有50多个吧,解决了一些,到现在还剩下近40个,而且很多很多是暂时解决不了了,架构方面就有问题。有些则是技术方面的问题暂时得不到解决,唉!
得快点把输入法搞定,其实也就剩下两个问题了,造词和状态栏窗口刷新。之后就赶紧做辅助工具,Boost又丢下好久了,要趁写其它程序里好好跟进学习啊!
at
20:10
0
comments
Labels:
Water
在回家的路上又被堵了很久,让我再一次觉得很气愤,深圳的开车的人是全国素质最差的,明明已经堵车了,明明走不 通了,明明再挤进去会变得更糟,可是他们还是会乱闯乱挤,除了道德上的因素,我都要怀疑他们智力上是否也有问题。
人又懒下来了,回到家,只是看了看如何加入造词功能,其实这些代码原来的人已经都写好了的,我拿到后觉得没什么用,删掉的,注释掉的,确实精简掉了很多至少我自己用不上的功能。现在只是到了放开的时候,在输入上屏后,要记录下来历史记录。以后按到快捷键,就进入半自动造词模式,就可以从历史记录中取出内容来。顺便还把添加历史记录的部分代码优化了一下,应该能增加些速度吧。
公司里还是像往常一样,搜简历,然后看代码,增加新代码,修改老代码。暂时接手维护了另外两个模块,还好功能都是基本上已经完成了,只要再加一点点就行了。突然老大说,上面的头儿说要做成C/S模式的,主要是为了信息安全,真晕!本来还暗暗高兴了一下,可以趁此机会好好学习一下网络编程了,结果他们好像决定用DCOM、WebService这样的东东来实现,唉,不感冒啊!~
at
23:41
0
comments
Labels:
Water
昨天把输入法中的两个存在已久,但一直没引起重视的bug修正了。其中一个是,分号转英文或大写字母转英文的时候,不能混合输入数字;另一个是,大键盘输入数字后回车,紧接着输入句号或斜线都会变成英文标点。这两个标点都是在我引入分号转英文、大写字母转英文和大键盘输入数字转义时引入的,但因为其实这些场景自己用得很少,而且影响也不是非常大,所以一直没有很重视,昨天忍不下去了,就改了。
今天把分号选择第二个候选字的功能也修复好了,因为那段时间引入分号转英文,就直接把这选择第二候选的功能屏蔽掉了。这回看到要修复好像很容易,况且很多人好像都习惯使用这个来进行第二三候选,不像我只用左右shift,呵呵。
还要加入五笔加加那样的手动造词功能,嗯!其它bug也还很多,比如状态栏有时候出不来,状态栏的窗口跟随,保存词库时死循环。
at
19:35
0
comments
Labels:
Shareware
![]()
![]()