Google
 

2007-09-30

无聊的国庆假期开始了

  今天,少了那些家伙,中午在食堂老地方吃饭,明显感觉人就少了很多,冷清了很多,心中很是感慨啊,比毕业离校那段时间的不舍有过之而无不及啊。
  中午吃过饭,走到睡午觉的地方,人也很少很少了,江江也是一脸孤寂的样子。算算他们应该下飞机了,于是先给教授打了个电话,然后给猫猫打了个电话。猫猫说,现在知道为什么粉红色的要是限量版了,因为好看啊。让我心里不免有点得意。
  下午好不容易熬过去了,晚饭在食堂真的没人了,于是打了两个玉米饼匆匆回来了。
  一个室友搬走了,新的还没搬进来,另一个室友回老家了。这里好冷清。给小丫头又打了大半个小时电话,总是觉得小丫头很可爱啊!
  无聊的国庆假期开始了,能干些什么呢!

2007-09-29

日子真的过得挺快的

  日子真的过得挺快的,真的到了SDH部分搬迁成都的时候了。明天,他们就直飞成都了,就见不到那几个总是一起在食堂一楼吃饭的家伙了,竟有点不舍,也许是因为心中有更多的惆怅。一起玩得最好的,教授、悍超、猫猫、晓妮都要走了。
  这周好多晚上的吃饭活动,让人感觉像是回到了大学毕业前的时光。昨天晚上,另外叫了大牛和疯丫头一起,去湘江老厨吃了一顿。我的酒量是越来越差了,可能也是跟心情有关系,记得以前在学校喝个五六瓶也大不了像现在这样。饭后,我坚持要送疯丫头回家。334颠簸得厉害,很想吐,问售票员要了两个塑料袋,难过了大半程,把坐在一旁的疯丫头吓坏了。334绕很远的路,真是难受啊,疯丫头好几次要我早点下车,她可以自己回去。入了关后,总算吐出来了,胃空了,人也舒服了。在酒精的刺激下,我的胆子也更大了。只是最后把疯丫头弄哭了,在梅林阁下了车,她朝一个方向走,我朝另一个方向走。打了个车,很郁闷,打电话给小丫头,找个人倾诉一下。一直打到家里,挂了。又打给小妞,小妞也很温柔地像安慰小孩子一下安慰了我好一阵,一直到我手机没电为止。还是觉得很不痛快,于是给教授打,打了一个小时,倾诉过后,心里就稍微好过一点了。
  唉,今天还被老大训了,当然老大说的是有道理的。旁边两个同事见我郁闷,也偷偷安慰了我两句。
  晚上跟小妞去吃了顿小肥羊,便宜量又足,还送可乐。吃完后,两人慢慢走到万科城,再慢慢走回百草园,到小妞屋里看照片。小妞过得很幸福啊,她说明年就要结婚了。跟小妞她们在一起,能让一个男的懂得如何变得体贴温柔。可是,光有体贴温柔,有什么用呢?
  看看周围的人,有过得好的,当然也有过得郁闷的。套用某人的话,希望喜欢我的人和我喜欢的人都幸福!各位奔赴成都的同学,我们有缘再见!

2007-09-27

GDI画图得用双缓冲

  今天总算写了一点代码,画图部分,不过效果果然如预期的那样不好,是一定要换用双缓冲才行的啊,不然那么多个对象在那里重绘,闪烁是让人不能容忍的。不过放假前还有3天呢,应该能完成的吧,我没做过复杂的程序,所以没做过设计,也不会在写代码前就做设计,现在突然要写点复杂的了,就觉得很多地方是原来就想不到的,就被遗漏了。
  可以用Boost真是爽啊,虽然网上也不乏有人在那里批判Boost哪里设计得不好哪里太花哨哪里不实用,但对于我等来说,Boost真的是有点神化的东西。
  疯丫头不知道是不是真在那里那么忙哦,昨天发的邮件,今天才回,总算看到了,估计把她急坏了,哈哈,我就是要这样逗她玩,现在要抓住所有我能发现的机会来这样逗她,嘿嘿。
  晚上吃完晚饭,出去压了一会儿公司的路,回到办公位的时候已经7点40多分了,就被同事们笑了。呵呵,最搞笑的是,有一个同事连续两天晚上看到我跟mm在外面走,真是有缘呀,哈哈。
  把Impeller的代码下下来,但是编译就不过,本来是用CruiseControl来弄的,连哪里出错了都看不到,而我的机器又不能用VC来打开这个解决方案,只好换用那老爷机2003来打开,发现还是编译不过,不过总算大概知道哪里出错了。我想的是要自己整个私有版本,可以像SourceInsight那样以工程方式管理和浏览代码,初步只要能简单地支持C/C++即可。这是基于ctags来完成的,现在想来,要把ctags部分封装一下,改成一个dll,生成的tag信息经过简单的处理要写入sqlite数据库中,以后可以随时更新查询。既然是私有版本,就应该能把没用的东西都除掉,比如那些跟支撑的绑定等等,增加了体积不说,不稳定性肯定也是随之增加,还拖慢了速度。

2007-09-25

中秋快乐

  又是一年中秋节。公司里的活动还是跟往年一样,两年了,发一两个月饼,然后开个茶话会,一群人聚在一起聊聊天,吃吃东西,而杀人游戏好像是在公司里的人唯一热衷而且老少咸宜的活动。这次的杀人游戏规则我不习惯,而且时间也不多,才玩了3轮。茶话会后,告诉我有两个东西要我接手,都是人家弄好了的,那同事要离职了。有点无聊的东东。
  下班后,跟以前测试组的同事们跑去肥牛府吃了一顿。因为人太多了,服务员们都忙不过来,所以无论叫什么,都响应很不及时,有点气人哦!不过吃得还是挺开心的,今天教授还一反往常的矜持形态,一个一个敬过来,大概他真的有点不舍这边的这些同事吧。吃完后,只有江江一人是住百草园的,其他人都在对面的公车站坐车走。我反正已经习惯了跟小妞,小思宇她们一起吃饭后送她们回百草园的行为,于是自告奋勇地陪江江走回到她楼下。
  回到家依然是懒洋洋的,给小丫头打了个电话祝福一下。小丫头说正一边洗头一边接电话呢,我说你当时就可以不接的呀。小丫头真的很温柔啊,太可爱了。
  正无所事事的时候,小思宇突然打电话来,说都已经睡了,但有些问题想不通啊。然后我就只好假装很在行很专业的样子安慰她,开导她。其实我什么经验都没有,哪有资格说那样深明大义的话哦,呵呵!

2007-09-24

简直是浪费生命

  那就是谋杀,
  时间就是这样流逝的,
  我被人慢慢地谋杀,
  我慢慢地迷失在无尽的虚无缥缈的沉闷和忧郁中。

  丢失的自我何时才能找回,
  消逝的罗盘不知现在何处。

  半夜,肚子真他妈的饿啊!~

2007-09-23

找不到好用的换墙纸软件啊

  今天突然又觉得自己的墙纸已经用了好久了,一直一成不变挺单调的,自己收藏的那么多pp的图片深居冷宫那么久,真是浪费了。想起自己一年前(还真的是一年前,去年十一的时候还在整呢)还用C++Builder来写一个呢,结果当时遇到一些问题,比如定时器没正常工作,晕,然后就丢下了。
  上网搜索了一下,没发现什么好用的,总是有这样那样的问题。而且今天突然发现,好多好多软件的界面在我的机器上显示有问题,总的说来就是界面上的汉字显示不出来,全是问号,晕倒!另外就是,其实我希望的是,像ADC这样的东东加上一个定时自动更换墙纸的功能,可惜我找了几款日历软件,都没有这个功能,遗憾啊!
  大概没有几个人觉得自动更换墙纸有多有用吧,所以随便下了几个更换墙纸的软件,也都做得很差劲。
  没办法了,只好自己动手,丰衣足食了。用MFC写一个吧,以后有精力的时候,再考虑加上日历,反其道行之,呵呵!

2007-09-22

腾迅越来越牛啦

  不经意间来到Tencent的网站看了看,发现现在它真的是战线全面铺开了,中国互联网霸主地位非它莫属了!
  即时通信工具和游戏不说。看看其它的现在中国网民最常可能用到的工具,邮件客户端、汉字输入法、下载、视频直播、桌面Widget、浏览器、IE工具栏,它全都有。
  感觉它是越来越像微软了,靠其中的一两样东西发家,然后看人家做什么火,它就也跟着做什么,虽然是后发制人,但即很可能把人家拖挎。

2007-09-21

收入的差异

  今天下班后,坐同事的顺路车回家,结果大概是因为周末的缘故,在高速公路上就开始堵车,真是太神奇了,于是有了时间聊天和上网。在网上看到新闻,说中国目前已经有很大一批富有的阶层了,现在亿万富翁有1万多人,千万富翁有30多万人,而百万富翁则占了总人口数的1.5%。这样的数字还是很让我吃惊的,原来中国富人这么多啊,尤其是百万富翁,这么多!
  8点半才到小区门口,然后我去对面一个快餐店吃饭,偶然间听到里面的服务生在谈论他们的工资,一个女孩在说她有1200一个月,每月吃什么的花100多,还要买衣服什么的大概300多,差不多每月可以存下800块。听到这些,我心里有些感触,为什么人和人的差别可以这么大。

2007-09-20

继续升级程序

  MoveFileEx似乎要在同一个分区里才能移动当前运行的Exe或Dll文件,于是我只好在本地目录再新建一个子目录。还有个问题,用NULL参数登记系统重启后删除,不知道为什么不起作用,该不会是只有在临时目录下的才能自动删掉。
  再抱怨一下asio,吞吐率并不高啊,不知道是不是哪里用得不对,而且太占CPU了,很介意这个事啊,要是到时候同时有几个人从这里请求文件传输,岂不是卡死了,郁闷,这是无论如何都不能接受的。
  还有个界面刷新的问题,在回调函数时加入Invailidate(FALSE),就能看到进度条在那里动了,当然还要在下面加一句PumpMessage,不过还有一点点问题,如果界面被遮盖住过,再切回来是没有显示的,只有鼠标再点一下界面,才会恢复显示。
  今天又被叫去讨论了一下,真是烦死人了。还要用Excel来画流程图,画完了还要用程序来解析图的前后继承关系,烦啊!

2007-09-19

升级程序还有得做哦

  今天接着做升级程序,本来以为大部分的技术问题都已经解决了,实际上,还是很花了不少工夫,有些问题想都想不到。
  通过http下载昨天就差不多搞定了,今天发现,用asio来下载,很占CPU啊,全都占满了。以至于,好不容易通过boost::function把进度回调加进去后,界面不能得到及时的刷新。
  还有,因为我想看起来更人性化一点,就希望是一个文件一个文件地下载,然后替换更新,也就是如果是exe或dll文件,在运行时,也是需要能不动声色地把它替换掉的。依靠以前的一点点模糊残缺的记忆,MoveFileEx可以达到目的,它可以把运行中的文件移动到其它地方,还可以登记让文件在下次系统启动时被删掉。不过中间遇到一点问题,怎么也移动不了一些文件,后来发现只要该文件长度为0,就不能移动,真是奇怪。不过还好,这个情况在实际应用中几乎不会出现。
  现在,几乎所有的技术难点都差不多搞定了,只是要实现好,还是要花些时间,精雕细琢嘛。看来这周能把这个升级程序整完就不错了。

2007-09-18

今天有点收获

  今天上午,经过仔细的检查,终于能在右键菜单上显示并正常工作了。有几个关键点,首先,注册表中的项要正确,其次,类厂的QueryInterface要完整,再次,实现类的QueryInterface要完整。这样就基本上应该能正常工作了,我开始总是弄不出来,一是类厂的实现可能有问题,二是实现类就有问题。另外想抱怨一下,ATL来写IShellExtInit接口映射怎么老是编译都不能过。还好,我不是很排斥用API写东西,今天还被老大说了,说我什么东西都喜欢从头从底层重新搞起,应该充分利用现有的资源。我说主要是我特别讨厌COM这套东西,他问我为什么,我说我觉得COM调试起来特别麻烦。
  下午整了一下自动升级程序,因为星期天听帽子说,腾迅提倡XP,没有文档,所有的东西都放在服务器上,发现问题可以随时修改升级,我觉得挺好的,于是我要让我这个小东东也可以随时自动升级。想了几个简单的方案,最后决定用http来发布更新。开始研究了一下MFC的WinINet类,MSDN里说得太简单了,不会用。最后只好改一下asio的那个例子程序,勉强能用了,呵呵,不过还有不少要做的,比如我想要有进度报告。
  这样说来,白天还是有些收获的。不过晚上就比较郁闷了,本来情绪就有点低落,就想利用一下晚上的垃圾时间,写一下老大要的那个宣传胶片吧。结果,首先是机器有问题,PowerPoint不能即时保存,然后然后然后,居然突然停电了,好像有两页内容没保存!无奈啊!无聊啊!无助啊!

2007-09-17

来一篇长的流水账

  昨天早上还是很早,大概是7点多就醒了,起来开电脑,无聊,然后熬了一会儿,去洗澡收拾,弄得自以为比较干净整洁的样子。还是比较早,就写了一会儿代码,好不容易熬到10点半,出去坐车,本来以为之前已经千叮万嘱过了要准时,别让我等的。结果到了那里,还是等了20分钟,当时心里还是挺有点生气的,不过见到人后,突然就觉得生不出气来了。而那边阿菲则不停地发短信问我到哪了,我则只好很无奈地说,还没上车呢。本来说好11点准时坐车走的,结果已经是11点一刻了,那公车站又等不到能到南山天虹的公车,只好打了个车。打车就快多了,大概半个小时就到了,不到50块钱。在车上时,她悄悄问我,是不是等了20分钟,我说,如果只是我一个人等是无所谓的,等个一两个小时也没关系,关键是现在那边还有人,我不好意思。
  到了天虹,进去略微看了看,感觉跟华强北那个气氛很像,乱糟糟的。约好是在二楼的雨花西餐厅,她又闹着要上洗手间,还以为很急呢,结果是整了下头发,带了个发夹。在餐厅里看了一会儿菜单,阿菲她们来了,帽子还背着个guitar,很酷啊,有时候真的很羡慕这样有一技之长的人啊!6个人随便点了些东西,我点了个羊排,阿菲在那里说我,本来想给我省点钱的,现在自已都不给自己省。于是我大声说,你们要少吃点啊,啊!
  一边吃一边帽子马上就问起工作上的事来,说起来还真是比较困难,我又想工作轻松,又想钱不少!
  一直吃到1点半,帽子还要去排练,说是马上要去比赛了,于是匆匆地走了。剩下几个人,她说要回去,我也觉得没事无聊,还是回家休息一下,晚上还有一顿呢!阿菲说去K歌,我说不去了,还是回去了,于是就跟她一起走了。跟阿菲她们分开后,她问我晚上几点钟吃饭,我说大概六七点吧,她说还有好久呢,不如她陪我玩到6点再走。我说还是回去吧,她说要陪我逛,我说这样我也逛不安心啊,她说那就逛一个小时再走。走出天虹,对南山这带非常不熟悉,不知道可以逛什么,就又折回天虹。
  她说要帮我挑衣服,我的衣服太少了。衣服少倒是事实,不过我确实很不习惯让别人来帮我挑,除了我妈。然后两个人在4楼逛来逛去,试了一些西服、休闲装,衬衫、T恤、针织衫,牛仔裤,发现大多数的只要尺码合适,我穿上还是比较好看的,于是心里很是暗爽。其实也不是暗爽,每次她说挺好看的,我就说不是衣服好看,而是衣服架子好。嘿嘿!这点我自己也很早之前就知道了,我穿衬衫西服的样子真的还不错,如果身高能再高个二三四厘米,就更好了。后来在Benbo里,她趁我在试衣间里时,就叫人开单了一条牛仔裤和一件T恤,晕!
  又试了几样,无聊了,她说要帮我去选耳环。走到1楼的珠宝专柜,没有男式的。倒是我想起我妈说要项链,于是我说要看项链,那些服务员可热情了,以为有生意来了,哈哈。让她带了两条试试,没什么感觉,而且我妈那么胖胖的,而她又是瘦瘦的,完全想像不出来带上去是好不好看,只好作罢。她就很遗憾地说,买不到耳环了,只好去些路边的小店了。先去把那单买了,结果刷卡的时候,她用她自己的卡刷了。当时我的心情,都不知道应该怎么形容。说高兴吧,肯定是有的,但除了高兴,还有很多很多其它的感觉,说不出的感觉。不知道为什么她要买衣服给我呢?
  从天虹出来,天下起雨来,她拿出伞来,不好再去其它地方逛了,看看时间4点,离吃饭时间尚早。但最后还是决定去坐车回去,等车的时候,她问我她回家了我怎么办,我说我随便哪里玩一下呗。她说到时候我可以去家乐福玩一下,等到晚饭时间。我也不好再说什么,心里虽然有点点沉闷。这时想起xcc他们在哪儿了,就打电话给他,他说在晾衣服,再过半个小时出门,我说我在南山天虹呢,于是他说再等一会儿等他出来。刚好发现公车站后面有家KFC,就进去,一人要了一个饮料,另外她要了一对鸡翅。她还在那里很兴奋地跟我描述,抢到这个四人的座位是多么的不容易,呵呵。我就一边吸着可乐一边看她啃鸡翅,最有趣的是,两个鸡翅她都啃了几下就掉了,让我想起星期六才看的Kanon里那个变身成人类女孩的狐狸在生命渐渐衰弱时,吃饭时拿不稳筷子,一连要掉几次,呵呵。
  xcc来了,坐着聊了一会儿天,xcc的gf也来了,然后4个人坐车。车上的人越来越多,下车的时候我踩到一个女孩,我反而只是瞥了一眼就下车了,那女孩就在那里喊,连一声对不起都不说。我才不管呢,当年就是这样人很多很挤的时候下车,才把钱包挤掉了,虽然后来找回来了,但我却从此再也不管别人怎么样了,自己安全才是最重要的。她下车来还笑了我,我就顺便语重心长地教育了一下她。在路口分手后,xcc问我怎么不送她进去,我说要是里面有个男的在等着遇到了,岂不是很尴尬。xcc也只好干笑一下,然后扯起另外一些事。
  3个人来到八仟馆,等到doggy来,4个人慢慢吃了一顿,但我还是没什么食欲。不过能跟朋友们一起聚聚,还是很开心的,我是很怕孤独的。吃完后,9点过了,随便爬上一个公车,跑回家,觉得好累好累,怎么都不想动了,下了好大的决心洗了个澡,倒头便睡!

2007-09-15

从自动完成功能说起

  再次说回来公司那个东东的自动完成功能。
  本来只有简单的关键字提示功能,因为关键字不多,而且要提示的都只有长度超过3个字符的,所以很简单,把关键字排好序,放在配置文件中,每到3个字符时,show一下那个字符串就行了。后来提出了更多的要求,要能尽量联想一下类名啊、方法名啊、变量名啊等等,于是动用了数据库,把所有的库中的类名、相关的方法名等信息都存放到一个数据库中,必要时从数据库中检索出相应的内容,再组合成一个字符串,show出来。
  Ruby语言有点奇怪,不知道是不是大部分现在流行的脚本语言都有类似的情况,因为一直以来我都只接触过C/C++,像Delphi这些语言也是静态编译的,所以几乎都是强类型的。但Ruby不同,它的变量的类型是随时可以变的,不过这个问题对于实现解决自动完成功能时并不是特有的困难,而是所有的语言都可能会有的。要扫描所有的代码,然后确定某个符号是什么类型的。
  当前项目中使用的方法,现在想起来,当时做的时候几乎没做什么设计,直接想到一个解决办法就拿上去用了。每次打开一个文件的时候,就扫描一遍文件,把几种特定形式的语句用正则表达式匹配一把,然后记录到一个map中,key是变量名,value是类型名,到时候就查找这个map。这个方案有一个很严重的问题,就是打开大文件时,会有很恶劣的性能问题,可能过了几十秒钟,那个文件还没有show出来,而是正则表达式一直在那里匹配计算,而且正则表达式有好几个,需要匹配好几次,每次都可能花费大量的时间。另外还有一个问题,就是不能很好地反映代码更新的情况,比如一开始打开时已经定义了一个变量,后来在编辑时,修改了变量所属的类型,而我现在只有在回车换行时,才扫描一遍当前行的内容,是定义了新的变量等等,如果用户只是改完内容后直接用方向键移动了,或是用鼠标直接跳离了当前行,就不能得知修改的内容了。
  因为没有这方面的经验,也没有看到其它多少可以参考的项目或资料。依稀觉得Source Insight的解决方案比较适合应用到我们这个项目中。Source Insight具体工程的概念来管理所有的源代码文件,新建一个工程后,把所有的源代码文件都添加进来,然后可以由用户手动触发扫描所有文件,建立一个符号表数据库,或者是程序自动在后台,慢慢建立一个数据库,但不会影响前台功能的使用。再一想,我现在用的正则表达式匹配的方案实现很落后低效,再怎么样,也可以依赖于像ctags这样的工具建立索引。我其实并没有仔细地研究过Source Insight的建立索引的机制,只知道它的速度确实很快,而且准确性也基本能符合用户的要求。
  另外,我现在几乎不能再大动干戈地改动那一块的设计了,所以表现上不会有质的飞跃了,真是略微有点点遗憾啊。这些想法就只能放在自己现在搞的这块来实现了,要做一个类似Source Insight的通用代码浏览、编辑工具,编辑功能应该是强于Source Insight的。然后针对几种语言做IDE,除了要能浏览、编辑代码,还得跟编译器(或解释器)有良好的交互功能。初步计划是针对D、Lua、TCL、Python、Ruby、Perl、PHP这几种,因为这个市场还没有被什么寡头垄断,还有机会插一脚,哈哈。

2007-09-14

无聊的时候

  晚上又跟小思宇去吃肥牛府了,两个人点了好多,最后浪费了好些菜,肉硬是全让我消灭了。然后两个人慢慢走回百草园,我再走到百草园门口坐车回家。
  无聊的时候,就静静地躺在床上,发一会儿呆,把所有的不快都抛得远远的。
  今天在公司里也无聊了一天哦,我觉得领导们是存心不想让我按时完成那个项目了,需求不停地讨论、确认、修改,不就那么小小一个文件共享软件吗,如果不是因为想用类似Google桌面搜索那样的界面,我可能两个星期就能做完了。
  无聊的时候,就偷偷幻想一下美好的未来吧,有的人有的事,真的不用太在意,有时候我觉得我太有责任心了,都让自己变得很下贱了。

2007-09-13

一心想着一件事,很沉重

  今天先是小妞突然发邮件来问我定了几级,我说还没定呢,过了一会儿,疯丫头发邮件来问我定级了么,我说没定呢,后来是JR来问我定了什么级,然后我就火了,今天已经是3个人来问我了,到底咋了,难道我绩效差就没级了!JR说人家都定了啊,我说我绩效差啊,JR说绩效差还能进系统组啊,我说偷偷告诉你,别人我都不说的,到系统组的都是在测试组混不下去的,如果在系统组干得好的,就能转测试组。
  下午5点多快6点时,领导打电话来叫我去,我预料到应该是这事儿了。跟什么年终奖沟通之类的是类似的过程,就是先说一通公司的形势政策,再说一通个人的表现好坏,然后说一下结果,最后问有没有什么意见建议或者疑问,如果没有就签个字走人。虽说钱是加了一点,但我一点高兴的劲儿都没有,就像以前一个同事跟我说过的,感觉就是应该的,而且像我这样的应该是最少的了。再说了,我都打算要走了,加不加,能加多少,似乎不是很关心了,而现在唯一关心的是,下一份工作,能给多少薪水。
  沟通完后,给小妞小思宇发邮件约吃饭。去关东风吃了一顿,三个人越来越吃得少了。谈起这个事来,最后一比,我还是最少的,呵呵,真是没用啊。
  一心想着一件事,很沉重。

2007-09-12

真怕到时候完成不了

  今天上午调了一上午,总是有个异常,说没有可用的终结点了云云,最后无奈把UDP换成TCP的,还是有,但用netstat命令看,确实已经打开了端口在监听了,只是不知道怎么把它绑定到特定的IP上去,用它默认的是全0的地址,不知道其它机器能连上来不,唉。
  真怕到时候完成不了啊,还真的有点烦呢。需要asio带了不少的例子,但我对它的使用方法还是不清楚,到底各个类都是什么作用,相互之间有什么影响,是怎么联动的。
  另外想想,既然都已经决定用Boost了,就索性用彻底点,有Boost能提供什么样的能力,就尽量用Boost的封装来进行,比如下午看到Boost::Thread,似乎还是很简单易用的。

2007-09-11

不再用回C++Builder了

  相比MFC,我果然还是更熟悉VCL的使用。不过我不想再用回C++Builder了,我要用VC,就冲着Boost库对于VC的编译器的极佳的支持。今天又写了一点点代码,要把asio的库都好好体验一把了,UDP、TCP都要有,Client、Server也全都有。现在还吊死在C++上,只是因为我确实还不怎么会用其它的语言,在项目进度的压力下,我不敢贸然地尝试完全不同的概念和思维方式。今天只是稍微做了一点html页面生成的部分,还有很多要做,尤其是要能做成带不同的链接地址的,唉,走一步算一步了,问题总有解决的一天,先把最有把握的部分解决掉。后半个月看来是要晚上加几天班了,呼呼,原来那个项目还有一些遗留问题也要解决,真是郁闷。上午突然想起来,我那东东得有一个自动升级功能,想了好一会儿,构思着再加一个updater.exe,每次系统启动的时候运行一下,把该升级的都升级了,后来突然又想到,干吗不把这个功能作为客户端程序中的一个模块呢,不需要单独的一个project了。
  还有就是,我还是想做一个流程文件编辑器的,因为用Excel也真的太傻了。但是今天粗略地想了想,这个编辑器其实还是有点复杂的,要求比较灵活呢!其实如果是用VCL来做的话,我觉得应该几乎没多少障碍,可是现在可能是MFC,或者其它的,很多事情我都不知道怎么实现。

感冒了

  喉咙好痛,尤其是早上刚醒来的时候,咽一下口水都痛得受不了,郁闷!~

2007-09-10

越来越复杂了

  今天去讨论了一下,居然提出可能要做个流程文件编辑器,彻底晕倒!其实这一点我应该早就预见到的,而今天他们说用Excel来让用户自己编辑,你说如果只是一两个人来编辑一下倒也就忍了算了,我自己也可能会省事儿点,但是现在要求是可能每个人都会改一下,让每个人来改那Excel里面,自己对应前趋后向的关系,还要不出错,不是逼他们发疯吗!唉,估计我这套东东弄出来后,没几个人愿意用,太无聊了!不如我赶紧在里面加入些新奇有趣的特性进去,不过有人敢玩吗,呵呵。
  晚上回来上网,看了看Linus那段对C++的放炮闹得好惨烈。呵呵,如果不考虑库的因素,我个人也是更习惯用C的,现在这个项目一边用MFC做框架和界面,另一边用Boost做业务逻辑,两种截然不同的风格,不知道以后我这代码的维护者看到后会是什么样的心情,嘿嘿。

2007-09-09

小作坊使用开源软件协助软件开发

  这是一个总结,也是一个开端。所谓总结,即是到现在我已经发现并已尝试使用过这些东西,现在整理一下,罗列出来。所谓开端,即是从现在开始,我要好好使用这些东西,应用到实际中去,提高效率或减轻负担。
  小作坊,适合于个人单干,或小型几人十几人的团队,如果对于大型的团队,我觉得我们公司那套其实挺不错的,毕竟人家花了我也不知道多少钱从IBM引进来的。所以小作坊有一点很明显的区别是,资源很有限,从硬件到软件,从资金到人力,都是很匮乏的。这里罗列出来的东东,全部都是开源的,而且是相对比较成熟的,就是为了应对上面提到的小作坊的各种可能面临的困难和不足。另外还要提到的是,这里讲的是“协助”软件开发,其实是针对整个软件开发周期中各阶段的活动,而不是单纯的在编码调试阶段的活动。最后一点,这是面向Windows环境下使用VC/Delphi等桌面应用开发人员的方案。
1、建模——StarUML
这个东东据说是个韩国人开发的,用Delphi写成,功能也许没有Rational Rose那么强悍霸道,但用来画个UML图、序列图什么的,已经足够了,而且安装包才20MB左右,快速轻巧。想想Rose需要多少钱,其实我也不知道,嘿嘿!
2、版本控制——TortoiseSVN
当然用SVN,传说中CVS的替代者,而Tortoise这个shell扩展真的方面。在Windows下用SVN如果不用命令行,就用它了,没啥好说的。不过说实话,VSS也不错,尤其是2005版文件传输效率较6.0提高了不少,而且和VC的IDE集成得很好。所以见仁见智了,对于不用VS工具的,就强烈推荐这个东东了。在单机上可以直接找个文件夹作为仓库就可以直接使用。
3、项目管理——Open Workbench
项目管理?我用得上吗,我自己也怀疑。但它号称可以和MS的Project匹敌,本来是一个公司开发的,后来捐献给开源社区,貌似他们也比较有钱的说,安装包还是用InstallShield做的。我大概最多也就是用来作作日程安排而已吧。
4、持续集成——Cruise Control
不用多说了,就用Cruise Control了,刚刚才学会,其实也没咋学,就是把同事那个脚本抄来改了改,真的挺好用挺喜欢的,现在最新版已经是2.7.1了,拿2.5上可用的脚本直接就能正常使用,而且比起2.5来,还少了乱码问题。
5、Bug跟踪——Mantis
Bug跟踪系统好像很多,商业的、开源的都有,比如FrogCreek,BugZilla、BugFree等等,选择Mantis只是因为我已经有点习惯它了,主页上有打包好的,直接运行一个批处理文件就能正常工作,特别提醒一下,要把config_default_inc.php和config_inc.php里的SMTP配置都改好,然后默认的账号administrator和它的密码root,这个我颇花了点时间去搞,开始没看明白帮助,晕!
6、开发文档编写——doxygen
也就是在写代码的时候插入一些规定格式的注释,然后运行一把doxygen,就能从中提取出内容生成多种格式的文档。不过似乎好像,我自己很少写注释的说,只有开源的项目才这样做得比较多。
7、用户帮助文档编写——CTeX
也没啥好多说的,用户帮助文档Windows上以chm/html格式的最为流行,很多大型软件公司的产品都会配上PDF格式的manual。如果想生成PDF格式的帮助文档,就用CTeX吧,这个东东还真的不错,相比Word来,完全相反的两种思想和作法。Word一开始会觉得上手很容易,所见即所得,但是内容格式一多,再进行修改什么的就很容易乱,而TeX则相反,一开始觉得很麻烦,所想即所得,但是一旦初稿已经形成,再进行修改什么的,就不容易乱了,呵呵。
8、安装程序制作——Inno Setup
以前用过Wise,感觉还不错,不过人家是商业软件。后来找到了Inno Setup,就喜欢上了。它用Pascal的脚本,可以调用Windows的API,可以完成很多高级的任务。其它还有NSIS之类的也应该不错,但没用过,暂不考虑了,而InstallShield一方面是商业软件,另一方面好像显得有点杀鸡用牛刀的感觉,嘿嘿。
  就是这些了。

2007-09-07

生活真他妈的无聊啊

  其实是因为人太懒,要做的事情很多,我却宁可无聊地消磨时间!
  明天打算去看一下相机,要是价钱合适就买个。

2007-09-06

持续集成

  今天突然想起来,要一个同事教我怎么冒烟。项目组里用的是CruiseControl这个持续集成框架,通过编写xml格式的脚本,可以让它自动从版本控制系统里获取最新的代码,自动编译,自动打包,最后进行发布。同事大致给我讲了一个需要进行修改的三个xml配置文件的用途及里面一些元素的使用方法,然后我就开始在自己的电脑上进行实验,开始遇到一点困难,怎么都弄不好。先是要用它来启一个Web服务器,好像自带的是apache,因为要用JSP,还要用ANT,所以还得装JDK,装好JDK却不知道还得在环境变量里添加一个JAVA_HOME设到JDK的目录去,所以总是连网页都显示不出来,后来在同事的指点下,设好环境变量,页面终于出来了。不过取代码、编译、发布的过程总是失败,最后发现,好像是首先,指定的路径不能再空格,即使是使用8.3格式也不行,然后,得小心地设置各个源代码、工程等的存放路径,这样才能继续,保证编译时能取到正确的工程文件。其实到后来才了解到本质,就是一堆命令行的集合,只不过有些常用的功能它提供更方便的命令来执行,比如文件操作、版本控制管理系统操作等等。
  现在,我给自己也建了个本地的CruiseControl,可以每天冒烟了,哈哈,这有一个好处,每天可以自己设定一个时间,然后让它自己运行,编译完后执行安装程序的脚本,制作好安装包,再压缩打包,最后就是一个完整的程序包。
  仔细想想,转项目部后的近半年,还是学了一些有用的东西。比如除了这个外,还有MFC编程,至少现在能用MFC+Codejock的库写些简单的程序了,使得我现在几乎完全放弃使用C++Builder/Delphi了。对COM编程也有了很肤浅的了解,对Scintilla的使用方法的了解……等等等等,说不定对我以后都有帮助。
  现在要做的一体化平台已经决定用Boost了,老大应该也不会太反对了,因为我的方案已经基本确定,Demo都给他看过了,现在可以好好使劲用一把Boost中的一堆堆让人眼花缭乱的模板了,哈哈哈哈,真是开心!

2007-09-05

长吐一口气

  今天老大来跟我讨论那东东的设计方案,居然说要用PHP/ASP之类的东西做个网站,把我郁闷了一把,不过好在我最后发现用这样的设计是无法比较方便地实现P2P文件传输的,最后老大只好同意照我的想法来实现了,真是有点庆幸,不然我就要郁闷了!不知道为什么他那么喜欢Web的东西,而不知道为什么我那么不喜欢Web的东西!而且那帮人真的是COM/DCOM技术的狂热爱好者,只要搭得上边的都想用这个来做,真是晕倒,而恰恰我是一点都不感冒,如果有可替代的其它技术,我就宁可不用的。有些地方不用COM实在没有其它方便的方法了,也就没办法了,比如Shell扩展之类的。
  除了把设计方案讨论了一下,今天都没怎么做,还在担心那个流程图怎么画,昨天后来想了想,光是Graphviz还是不够的,Graphviz只是根据依赖关系自动给出图形,但具体的节点处于什么位置,却好像没有提到。
  另外,又学到一个东西,在HTML页面中表单内容通过URL传递时,像中文之类的非标准ASCII字符,会先经过编码,以ASCII可见的方式传递,开始我看asio那个例子里面的代码,只是简单的转换,后来我把Google桌面搜索的页面改了一下,发现就变了,最后发现人家是用UTF-8编码来转换的,经过反复的试验,最后得出结论,IE打开的HTML页面如果是UTF-8保存的,就会把表单传递的内容也以UTF-8格式转换,如果以ANSI格式保存的,则也以ANSI格式转换。如果要从UTF-8转到ANSI,可以用Win32 API MultiByteToWideChar先把UTF-8转成UNICODE的,再用WideCharToMultiByte转换回ANSI就可以了。

2007-09-04

今天写了点代码

  我等不下去了,今天先自己写了点代码,把asio那个http server的代码copy过来用了用,效果很不错啊,哈哈,仰天狂笑三声先!
  现在是很确信这个东东的最大难点是流程图的自动构成,再生成带有热点链接的html页面。跟老大稍微讨论了一下,他提到我们可以让用户自己填一个规定格式的表格,我们再从表格中生成流程图。这确实也是一种解决问题的思路,而且让我突然感觉眼前一亮,似乎这个问题也不再是不能解决的了。老大提到可以用VML这样的东东,我没听说过,不过却知道有Graphviz这个东东,似乎可以解决我这个问题。
  看起来业务逻辑相对是一个很简单的任务了,但如果确定要用Graphviz的话,还得学习一下它的dot语言,虽然我可能最后只用到它很小一个功能子集。时间只有3个月,11月底就要有可用的版本来试点,可能会有点紧哦。抓紧时间,争取快点把那些不是很困难的部分早点完成,然后来攻关这个流程图生成、html页面生成问题。
  晚上afei打电话来慰问了一下,应该是xcc跟她说了我的事。然后谈了一会儿关于工作的事情,心里又舒畅了不少,等这个项目完成了,如果没有什么大意外的话,我一定要走了。

2007-09-03

asio真是牛x啊

  今天开始搞新项目了,这个项目需求好久好久前就出来了,一直拖着,大概的设计思路我也已经有了,但从工作的角度讲,今天才是真正的开始,从需求分析开始。其实我觉得需求已经比较明确了,只是那些人到时候估计会不停地改口,这是很让人郁闷和气愤的,但也是不可避免的。
  鉴于打算用类似Google桌面搜索那样的界面技术,所以得先研究下本地建一个http服务器有困难,看了看asio的例子程序,估计所有代码加起来不到100KB吧,但确实已经是一个可用的http服务器了,我都用bjam编译运行过来,效果很让我欣喜若狂,本来这样的只是为了本地建一个给本机用的服务器,足够了啊!所以不禁要感叹一下,asio真是牛x啊!
  老大一直很担心到时候拿不出东西来,总是叫我好好讨论一下需求。我自己的想法,这个东西要是把所有支撑模块都做好了,业务逻辑其实是很简单的一块,随便怎么改都行,应该很灵活,即使到时候发现他们的要求变了,我应该也能快速作出响应。
  中午没睡着,下午就虚了,晚上就又累又困了。

2007-09-01

挺意外的

  居然接到luolu打来的电话。正在看小说的我,先是看到一个看不到号码的来电,接通后断来,后来是一个很奇怪的号码,还在那里用普通话问我知不知道她是谁,我一开始当然听不出来了,毕竟也是好久了嘛,于是老实地说听不出来。好像前一次打电话是我刚来深圳不久,她刚好回国,我就打到她家里,到现在也近两年了。而且这些年来每次只能通过电话才会听到一下她的声音,每次听到的声音好像差别又都挺大的。不过几句话下来,还是猜出来了,我马上说,这么多年了,我哪会这么容易能听出来啊。并且我真的挺意外的,因为从来没想过她会打电话给我,我也一直在疑惑她怎么会知道我的手机号的,而她却说是我以前在QQ上告诉她的,晕,我自己是一点印象都没有了。其实这么多年不见,真的能说的话题已经挺少了,她说知道hw死了人了,来慰问一下,居然连她这个身处异国他乡远在欧洲的人都能知道这个事,这个影响真是太坏了。顺便还问我结婚没,我说你都没结,我哪会结啊,然后问我有GF没,很惭愧地告诉她,本人魅力不够,还没有,唉,刚刚正在郁闷着呢!另外又闲扯了几句,问她回国之日之类的,实在没什么话题可以说的,最后她就说,多联系啊,只是她在上班,不能开QQ,不能开MSN。然后我说用邮件就行了,她说她是小女孩,当然我要主动写给她先,呵呵,能这么跟我说话的,大概也只有她了吧,呵呵。

睡不着

  梦中无数次出现她那羞羞答答用手压着嘴唇跟我说的情景。我使劲儿安慰自己。这是第一天,这样的日子还会有多少。