All Stories

路考pass

  仰天长笑三声先,哈哈哈……  中午吃过中饭,便和江江一起坐车到四季花城门口,教练早就等在那里了,加上另外一对小夫妻,一共4个考生,那男的还教过我练九选三呢。到了车管所门口,4个人各绕着考试路线开了2圈,基本熟悉了一下路线。到考试的时候还是有点紧张的。我是4个人里最后考的,这是我最不喜欢的顺序,我一般倾向于占在最先的位置。不过没办法了,因为不好意思说。第一个GG很正常的地pass了,第2个mm紧张过度,第1次时低头看了一眼,便挂了,车停在路中央,考官立马说开始第2次,结果那mm更加紧张,一下挂了个倒档,车往后一溜就挂了。到了江江的时候,她真是好运啊,上车开了大概10来米吧,到红绿灯前停下,我还以为至少会让她过了这灯吧,结果考官说换人。郁闷,我紧张兮兮地等过了1个灯,转弯,考官就在那说挂二档,挂三档,三档减二档,车在挂二档的时候猛抖了几下(其实我压根都已经忘了这情节了,是江江后来提起来的,我又模模糊糊有点儿这个印象,就当是真的有这回事了),有惊无险地pass了!  从此,这多年前已经流行的三大件技能我都勉强算是都有了,哈哈哈哈!

去咖啡厅谈谈

  话说周五下了班,直接爬上335奔向莲花二村,根据同事给的地图,坐391到关山月美术馆似乎更近点儿,不过等不到391了。也不知道这段时间是怎么了,坐公交车入关,好像总是在查,堵得很厉害。好不容易晃悠到了莲花二村,看了一下公交车站上的地图,发现好像并不是很远,走路也赶得过去吧。结果走错方向了,绕了一点路,等我赶到那咖啡厅的时候,已经比约定的时间晚了15分钟了。  两个人一边吃饭一边谈话,开始的时候还扯得比较远,后来渐渐地他把话题拉到TX公司上来,公司的过去、现在、将来,他负责的部门的情况等等,期间也穿插一些技术方面的话题,还好总的说来,他提到的一些关于技术上的事,我基本上都有所了解,也不至于太丢脸,那时我都自己佩服我自己了,居然知道那么多东西,哈哈。  去之前,我还在想,如果对方再加点钱的话,我是否还会坚持得住。结果是我想得太天真了,钱是不会再加了,只不过真像小妞说的那样,给我画一个很大的饼,说是过不了多久,可以让我负责一个研究方向,带一些人,隐隐一种leader的架势,但实际上这只是一种事实上的leader,并不一定会被公司承认的。除了这些,他还提到他现在手下的那些人,去年进去的,今年准备给配点期权了,大概意思是说万一我现在过去,也许过个一年也就会有这些东西了。  可能是看到我还是一点都不心动的样子,他似乎有点无奈或是无趣,问我究竟想要什么。我其实自己也不清楚想要什么,从薪水上讲,那个价也基本不算亏待我了,毕竟我这样的资历,没什么特长的人,是不会有特别的待遇的。其他的呢,我真不知道,那样负责一个方向,带些人,真的是我想要的吗?我发现我真的比想像中的更不爱钱,说起来这样的待遇,比起现在这边,几乎是长了30%左右吧,可是我却发自内心的一点都不在乎。  我把我最近想做的事情说给他听,他说原来你就是想做一个完整的product,我说也不一定要product,他说那就是framwork之类的,我说对的,就这种东西。他也马上提出现在他手下就有这样类似的东西在做,但是我却依旧不是非常感兴趣。也许我真的只能自己出来干了,这大半年来,一直堕落地看着小说,一部接着一部,被这事一搞,反而弄得我有点紧迫感了。

还要再谈谈

  本来周二电话里已经把人家拒了的,今天又接到电话,说要谈谈,让我有点觉得不好意思,看出来人家似乎还是挺有诚意的。不过小妞说,到时会给我画很大一个饼,让我觉得在那里会多有前途。小妞还说,反正是两边互相忽悠,没关系的。  我都想不好了,到底应该怎么选择呢!因为电话里说不清楚,于是约了明天晚上下班后去关内的一家咖啡厅里聊聊,唉,心好乱!

看mm,撞柱子

  早上去食堂,看到江江,就想跟她打招呼,可是隔得远了点,人也多声音也嘈杂了点,她硬是没看到了,于是我一边回头看着她,一边往前走,没走几步,结果整个人撞在石柱上了,头上撞得最厉害,好痛,搞得我头昏眼花。我知道后面一两米的地方有一个人跟着在走,觉得特别不好意思,头也不敢回,连忙走掉。丢人丢大了,想起之前也有一次是在食堂跟小妞挤眉弄眼的,结果连人带托盘撞在悍超身上,昏!

使用gperf

  昨天就想把其中一段代码,一堆if...else比较字符串的代码替换成用gperf生成的hash来进行分派,但是昨天想了想我根本不会用gperf呀,晕死,于是想着回家上网找点资源。结果回到家还是什么都忘了,光顾着看小说和聊天了。  今天到公司里看到那段代码才想起来,昨天晚上堕落去了,于是有点儿沮丧。后来偶然发现,嘿嘿,在资料共享区有几篇关于gperf的文章,看来是我跟同事的唠叨发挥作用了。看了一下,发现它的输入格式虽然有点学了lex/yacc的样子,却比它们简单多了,而且我的需求也是非常简单,就是可能会有6种不同的字符串,我现在想让它能自动映射到一个枚举值。gperf的秉承了开源命令行软件的一贯作风,虽然只是那么小小一个功能,也提供了好几个命令行选项,幸亏有比较详细的中文说明,再加上功能实在不复杂,试了几次,就可以了。跟最新的flex/bison一样,我用了cygwin中版本号3.0.3的gperf,它也支持输出C++代码,这是我比较喜欢的一点,毕竟C代码混在C++中还是感觉有点别扭的。  另外一点说不上技巧的小提示,如果对生成的hash函数不放心,可以写个单元测试用例,跑一遍就安心啦,而且这种hash函数一般的应用场合下不会有太多的映射关系,看人家ruby用在识别关键字上,也就是几十个而已,单元测试遍历一个所有的映射关系,写一遍就一劳永逸,不错不错,哈哈。  这个小工具值得推广,以后凡是遇到3个或以上字符串需要比较时,就可以考虑用gperf来做这种工作,不但代码运行效率高,而且代码可维护性也上去了,一举两得。

修改版Cruise Control

  好不容易等到可以公开获取的修改版Cruise Control,装上来试了试,问题多多啊,还没有文档,这才是让人郁闷的,现在的我已经越来越习惯看文档行事了。  这个修改版的Cruise Control有一个好处是,集成了多种工具,比如代码行统计、代码风格检视、代码静态检查、代码复杂度度量、重复代码检查等等,如果光是执行一遍这些工具,用官方发布的Cruise Control也可以做到,只不过这个修改版可以对每种工具的运行结果生成一个xml格式报告,最后将这个报告merge到Cruise Control的log里去,然后又扩展了对log的解析,可以以统一的报表格式查看各种工具的运行结果。  但是这个Cruise Control集成的这些工具运行得并不稳定,首先代码行统计的好像没一次正常运行的,总是阻塞在那里,要手动杀掉进程才行,然后是复杂度度量的生成的日志因为太大,然后merge的时候老是有问题,还有就是这个改过后的Cruise Control不时地会出现运行不下去的情况,真是郁闷,当然最不爽的还数没有完整的文档,我发邮件给该项目的接口人,结果回了个邮件说还在某些产品线试用,等试点结束后让我去问各产品线的负责人,靠!

coLinux没啥用

  公司内部的论坛里看到coLinux的介绍,于是从论坛里随手下载了一个装上试了试,只有最基本的一个可用的系统,这个系统作为Windows上的一个应用程序来运行,但表现上看,又是一个Linux,在shell下可以运行各种命令,查看各种系统状态数据。可如果仅仅是这些东西,对我还没什么用处,我至少也要在Linux下写几行代码吧,不过这些都需要自己额外安装,在公司不通外网的苛刻条件下,几乎没有了继续下去的兴趣。  另外有个比较完整的发行版,叫andLinux的,还在beta阶段,这也是开源软件常有的现象,WINE不就beta了十几年嘛。andLinux似乎直接提供了大部分需要的软件,特别是那些GUI的是我比较关心的。但是后来想起来,其实我即使装了,现在也没多少用途,主要目标还是Windows下写写代码,最多最多以后,可能会需要在其他平台上,比如Linux,很可能也有Mac,也有可能一些嵌入式设备上,但这不是目前要关心的了。所以这个coLinux对我来说,没啥用哈!

C++ Builder with Boost 1.35.0

  从David I的blog上看到,C++ Builder 2009会附带Boost 1.35.0一起发布。想起当初,我弃C++ Builder不用转向VC,其中一个原因就是Boost对编译器的支持上,VC远远好于C++ Builder,虽然几年前,都号称C++ Builder对C++标准的支持远远好于VC,但那也是2002年前的事了,当时就已经泛滥的VC6,虽然对标准的支持差了点,但还是很多人用,而C++ Builder对标准的良好支持只是作为广告的谈资,实际上可能并没有为它带来多少用户。后来随着VC2002、VC2003的发布,VC的进步也是突飞猛进,而且从那时起,很多第三方C++库也把支持VC作为优先考虑的事项,从此Borland的C++编译器就更没落了。  其实以我个人狭隘的眼光看来,C++ Builder也没达到预期中的好的效果,有一个原因是,它使用了以Object Pascal写成的VCL库,而不是用C++写成,这样为它配合使用其他C++库,造成了一定的阻碍。虽然因为C++ Builder提供了一定的Object Pascal的支持,使得很多为Delphi设计的第三方组件,可以在C++ Builder上使用,但这并不是它使用VCL带来的好处。  这次附带Boost库的行为,我以为,并不会为C++ Builder带来多少市场占有率,就好像其他编译套件都没有默认附带Boost,但它们的用户如果确实需要肯定会去自行下载、配置、使用,而从编译器角度来讲,其实最需要做的是改进编译器,提高编译速度、改善最优化能力、增强兼容性,使其尽最大可能地支持Boost。  以后,在Windows平台上,会不会只有一个叫VC的主流C++编译套件了呢?

长训归来

  长训回来了。昨天去的时候,我第一个开,除了经验不足,有些时候有点手忙脚乱之外,自我感觉还是不错的,主要还是靠熟练,多开开,也就会了,就像带路的教练说的他有个学员,九选三之后就去自己买了个车,等到路考的时候就已经开了5000公里了,其实如果只是单纯作为代步工具来说,开车一点技术含量都没有,全靠熟练。  今天早上回来的时候,还是我第一个开,路上目睹了一起车祸的现场,面包车与摩托车,一个人已经脑浆涂地趴在路上,估计是那个开摩托车的,人的生命是如此脆弱。  之后就是赚点钱,过个半年自己买个车了。