Fox's profileFox涂鸦PhotosBlogListsMore Tools Help

Blog


    November 24

    又感冒了

    本文同步自游戏人生




    这两周成都天气一下变得非常冷。记得上周老婆还跟我学校的银杏叶黄了,还没等我见着秋天什么样子,这会儿银杏叶早落完了吧?冬天就来了。

    天一冷,下班回来就更不知道吃什么了。外边新开了一家羊肉汤店,前一个周五下班回来,和同事纠结到最后,决定就这家了,吃到一半,老婆也过来了,三个人都觉得他家的汤非常不错,菜也中规中矩。

    结果这一吃不可收拾了,接下来这一周,又吃了三次。周五刚吃过,周六又去了。临睡觉的时候,感觉嗓子痒痒的,干咳了几次,没在意,一宿无事。

    周日一天在家憋着,干咳了一天,有增无减,想想估计是羊肉吃多上火了。

    老 婆在我们学校复习准备考试,我不想她过来瞎担心,她说不过来更担心,我想又没有其他问题,来就来吧。晚上就觉得脸有点烧,自己量了一下,38。上了床又睡 不着,脑子里老在想白天遇到的Ogre内存管理里面一堆模板的问题(唯一的不同是这种虚幻状态下考虑的问题更加抽象、不知所谓),这时候大脑思非常活跃, 却又极其低效,而心理又极其脆弱。辗转反侧,无法入睡。迷迷糊糊很久之后清醒了一下,问老婆几点,老婆说12点半,大脑再次进入死循环,不仅CPU达到 100%,浑身乏力。

    2点多的时候,老婆给我量了一下体温:39。把我俩都吓坏了,虽然嘴上没说,心里都想这下H1N1了。老婆坚持要去医院,我想这玩意不能传给人家出租车师傅吧,人家大半夜这么辛苦,打120吧。

    120来了,护士在路上给我量体温:36.8。到了医院,大夫又给我量:37.8。我俩面面相觑:难道是电热毯把体温烤上去的?大家都在那说,你们以为120不花钱的嗦,打车过来又快又省钱。我这不是担心感染别人嘛。

    验完血,大夫说是细菌性感冒。如果没有误诊的话,这个结果是我希望的:传染性不高、更不可能是H1N1了。

    只是要输三次液,一天一次。

    当天输完之后已经快7点了,把老婆折腾坏了。如果因为我让老婆不能参加考试,我估计我们俩谁都不会好受。所幸的是,感觉还好,就是累。睡到中午,起来之后,下午上班去了。

    这两天公司里咳嗽声此起彼伏,相映成趣。

    感冒这东西,说不可怕几天就过去了;说可怕肺都能烧焦了。

    我突然想:人家玛雅历法的预测如果就是真的呢?超级流感?

    不管了,这几天:

    把几段代码重构了一下;

    发现了一个好用的单元测试工具:GoogltTest

    输液的时候看看书。


    请移步至此阅读全文»
    November 13

    Code Review

    本文同步自游戏人生


    时常听到有同事在抱怨项目中的代码有多么乱。对于现有的很多复杂的模块,几乎没有人愿意去修改,如果你想确切的知道哪些代码是已经废弃的,哪些代码又是在使用中是一件很难完成的事情。

    Andrew Hunt和David Thomas在《程序员修炼之道》中提醒我们:不要容忍破窗户(Don't Live with Broken Windows)

    终于,在一次讨论之后,我们决定开始做code review(是的,以前没有)。两周之后,我发现在提交的重读报告中,几乎千篇一律的空白,意思是没有问题。难道平时抱怨的那些代码都开疾风步跑了?

    显然是没有用心,随便翻一翻,最后你好我好,都没有问题了。

    我只好站出来抓重读的质量,制定了格式规范的重读报告文档,要求从代码规范、设计审查到最后给出修改意见都要做到。如果确实感到别人代码写的漂亮,没有问题,那就一定是别人比你做的好,重读文档中要体现出来对自己的反思。总之,文档是强制的,不能马虎。

    用心读别人的代码一定是大有收获的,每次做交流,单靠一个人坐在那儿讲一个模块的功能,你无法确切的知道他到底是怎么想的。因为拿到一个功能需求,大家的设计思路基本都一样:

    o 策划给的案子有哪些东西要写在配置里,有哪些东西要放在现有的类里,有哪些东西要新加类和接口;

    o 什么时候读取配置,定义一个配置的静态结构,添加配置读取的接口;

    o 要用到哪些消息,怎么处理这些消息;

    o 消息处理的接口里面做哪些判断,错误和正确如何处理......


    每次听同事讲解功能,心里暗想,和我想的差不多......,需求、数据和逻辑策划都给了,大家的思路肯定差不多。

    但真正读代码的时候,原来有这么多的不同:

    o 别人写配置的结构体和你不一样吧?

    o 别人使用STL的习惯和你不一样吧?

    o 别人消息处理的时候验证条件使用的局部变量习惯和你不一样吧?

    o 别人写for和switch的习惯和你不一样吧?

    o 原来代码还可以这样写,为什么不是那样写呢?

    我做重读代码的时候,对比发现了很多别人比我用的好的地方,不是我用的有问题,而是换一个方式之后,别人用的更简单,更好理解了。

    估计没有人不讨厌过于形式化的东西,但每个人心中所谓的形式化是有度的,同样的一个东西,不同的人来做,有可能你就是应付成形式化的东西,而他从中体会到了很多。本来可以提升团队能力和效率的一个东西,到头来变的形式化,我很失望。

    我以前认为,把自己的代码写好了就够了,别人代码写成什么样子,我也管不了。

    后来需要经常用别人的模块,一个接口一个接口的跟进去,跟到最后发现自己快晕了,好不容易走出来,忘了自己该干什么了。

    这时候,就想如果有个文档该多好。

    后来要求大家写一些文档,可是每个人写文档的风格和自己完全不一样,一点不比直接读代码快,然后就做了一个格式规范的设计文档,这样每个模块功能不同,但文档的描述顺序统一了,想看哪一部分,了如指掌。

    可能有人觉得奇怪,在开源项目里,没有人参与管理,大家做的很好,放在一个现实中的团队里,反而做不好。

    开源项目没有人管理,是因为他们很容易做到自我管理,所有的规范是约定俗成的。你自愿加入一个项目,就意味着你认同并服从这个项目的开发模式和细节实现,这是游戏规则。

    而进入一个公司,并不总是因为这个项目吸引了你,当然我们希望这个项目可以吸引你。

    统一规范不是为了约束,而是为了效率,没有人希望每天在几个系统、几个工具之间换来换去。不是因为它们差,而是因为他们太多不同。

    我们很在意自己的代码别人怎么去评判,显然不是你好我好大家好,这一点大家心里都明白,看看别人在重读文档里是怎么评价的吧。

    如果放在其他环境里,你写的代码什么样,花钱谁给你看呢?


    请移步至此阅读全文»
    November 11

    谷歌的悲剧

    本文同步自游戏人生


    抱歉,我的确不想做标题党,但谷歌这次真的灰常灰常的悲剧。

    谷歌音乐终于可以在服务器保存列表了,听歌不用每次添加,也不用下载到本地了。这是一个喜剧,对吧?

    然而……

    谷歌音乐登录界面



    注意哦,没有Google ID,那是Windows Live ID哦!

    悲剧啊!

    让我想起一句话,这里稍加篡改:谷歌就像一个被闲置的漱口盅,初来中国时是一部洗具,活到现在,生生的被做成一部杯具!


    请移步至此阅读全文»
    November 07

    折腾Ubuntu(毕业)

    本文同步自游戏人生


    折腾Ubuntu折腾的我不亦乐乎,之所以用毕业这个词,是因为基本功能折腾的差不多了,我可以像Windows下去使用。接下来我需要把精力更多的投入到开发上了。

    汇报几点:

    o 浏览器:使用Firefox(3.5.4)。亮点:Space向下翻页,Shift-Space向上翻页,Ctrl-0、Ctrl--、Ctrl-+进行缩放,这些功能可能大家都有,但在Ubuntu下,轻易不动鼠标的习惯让人更自觉的去敲键盘。Firefox的配置管理等丰富的功能也让我很快就习惯了它;

    o 阅读器:Evince(Document Viewer 2.28.1)。亮点:Space & Shift-Space在这里一样有效;每次打开文档,停留在你上次阅读的位置。当然,一般的阅读器提供书签,但使用书签毕竟多了取放书签的操作,谁不是在看过之后,直接一个关闭呢?

    o 在Windows下,不管是开发还是其他应用,我应该算是使用快捷键比较多的了。来到Ubuntu,我依然时常有原来这个功能也有快捷键这样的感慨;

    o 再次感慨Make、Emacs、Gdb、SVN的博大精深,同时也说明我对他们的使用还没有到驾轻就熟的地步。

    我不确定我现在做的事情会在什么时候能够确切的体现到工作中,所以在工作例会上我强调这是我的个人兴趣。但因为个人兴趣导致了工作内容的滞后(虽然并不是开发任务,只是组织学习讨论),但在意识到这种情况之后,我也提出希望利用周末时间好好整理一下;

    o iBus输入法没有软键盘,输入特殊字符比较麻烦,需要使用其Chinese-PinYin输入法以ifu为前缀。


    本周早些时候,FH问我要不要Google Wave,我兴奋的直呼:我要!不过GW的邀请通过真是慢,直到周五才拿到,大概等了三天。刚开始使用,可以交流的人并不多,在我看来,其最大的特点是对Google产品(尤其是搜索产品)的优势整合。我不希望抱着玩的心态去体验,只是希望可以随着GW的普及,为工作、学习和生活带来更多的便利。

    有人在洗刷GW的难以理解:我们看到,大多数人认为GW比自平衡二叉查找树、C14年代测定、死神、新古典主义经济学、组合博弈论、男人、人自身的存在、Google Fast Flip等要难懂。

    当然,GW不是这个世界上最难理解的。因为,还有Obama获得诺贝尔和平奖、美国免税代码、多级静电加速器、中国的电报码、女人、Microsoft Visio 2004等让人费解。

    通过Google搜索,如果输入中含有什么,页面竟然会被重置,这是为什么


    请移步至此阅读全文»
    November 03

    升级到Ubuntu 9.10

    本文同步自游戏人生


    对于使用Ubuntu刚1周的我来说,从9.04升级到9.10,最明显的差异只是集中在视觉感受上,确实好很多,画面更加丰富。不幸的是,同样是ext3,9.10启动明显比9.04慢,准备转换成ext4再试试。据说10.04 10秒启动,不知能否实现。

    Ubuntu 9.10明显是支持ibus替代scim作为中文输入,之前安排的scim输入法已经被删除。而使用ibus的五笔输入倒也没有感觉比scim差。只是看到ibus的引擎是用python写的,至于具体的比较,我暂时没有这样的需求:)。

    emacs的版本升级到了23.1.50.1,因为我之前就已经在使用23.0.91.1,所以也没有感觉到特别的不同。

    使用过程中,这次更新似乎对wine产生了一定的影响,跑War3的时候,全屏显示和声音会出问题,大家也是各说一词,问题不尽相同。我是通过Wine Configure对Audio和Graphics随便改了一下就过了。反正只是玩游戏的时候用一下,也懒得深究。

    遇到的其他问题大都不是升级造成的,而是语言选择带来的。因为之前只是在安装时选择了英文,后面发现系统里像日期显示、一些提示信息和一些菜单名称 等还是汉字,开始也没理。这次升级之后,看了一下Language Support,才发现没有装英文包,而中文的我又没装全,导致了这样的问题。于是装了英文包,所有显示都正常了。结果后面发现Emacs、GEdit的 中文都无法正常显示,连War3也无法启动了。后面在/etc/environment里面加上LC_CTYPE="zh_CN.UTF-8"才正常,于 是我的locale就成了这样:
    LANG=en_US.UTF-8
    LANGUAGE=en_US.UTF-8
    LC_CTYPE=zh_CN.UTF-8
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=

    总之,如果你希望为自己构建一个英文的系统环境,但又要使用中文输入和一切带有其他语言文字的文档、程序,这就和在Ubuntu下用Wine一样,都有一点想脱俗没脱掉的感觉,还是比较恶心的。


    最近甲流比较肆虐,官方的说法是:目前中国所流行的流感病毒中,近80%是甲型H1N1流感病毒,随着天气转冷,疫情上升趋势将会进一步呈现。

    大家注意身体!


    请移步至此阅读全文»
    November 02

    拔牙前后小记

    本文同步自游戏人生


    这段时间换季换的我有点不适应,先是扁桃体炎,后来慢性咽炎,又是口腔溃疡,又是牙疼。其他都好办,吃点消炎药多半就扛过去了,牙疼就没法扛了,左腮被尽头牙磨的说话都费劲,更别说吃饭了。

    周六出去给一个单位帮忙,中午吃饭的时候,满桌的菜到我跟前,我只能喝汤。当时我就暗下决心,这次一定要把这牙解决了。

    老婆在准备公务员考试,这次考试对她来说很重要。我只希望她安心复习,结果她听说之后还是从学校赶回来,非要陪我第二天把牙拔了。

    我离华西口腔又比较近。担心人多,挂号难,特地打电话确认了一下,医院早上7:30开始挂号。为了能够节省时间,我们早上7点多就到了医院,已经有 一二十个人有排队了。因为有心理准备,所以也没觉得等了很久。事先已经想好了,最里面磨到左腮的尽头牙直接拔了,右面靠后的一颗龋齿修复一下。于是一次挂 了两个号(一个是No.1,一个是No.2)。我想可能是因为周日没有专家号,大家一般都选择周一到周六来吧。对于我这样没有太大难度的病患,感觉周日来 正合适。当然这主要还是要感谢老婆的督促,否则按照我的个性,能挨就挨过去了,即使会去医院,我也不愿意起这么早。

    因为大夫是8:30开始上班,挂完号之后就先到八楼颌面外科门诊外面大厅坐着看书(准备的还是比较充分)。

    8:30的时候,医生护士们已经准备好了,本想这么多人,应该会喊号通知,看见有病人自己进到门诊,我想我也过去看看得了。透过一个门诊室里的电脑 显示屏,我看到了我和医生的名字,于是敲了一下门就进去了。医生是一个非常年青的小伙子(后来才知道是他是研究生,而挂号单上的医师是他的导师),大概了 解了我的情况之后,让我先去拍牙片。牙片拿回来他看了一下,觉得我目前有炎症,不宜拔牙,要待炎症消失后才能拔。这时他的导师过来,让我躺在椅子上,看了 一下,告诉我(以及他的一群学生)我之所以感觉到左腮下面尽头牙的地方疼,是因为上面的尽头牙会咬到下面腮处,那儿已经是有个溃疡。虽然下面的现在不能 拔,但上面的最好先拔了,这样炎症才能从根本上消失。

    这位老师分析的非常正确啊,我压根就没告诉他什么情况,结果他不仅观察的细致,而且分析的有理。既然这样,我肯定同意把上面的先拔了。小伙子让我再下去拍个牙片,老师又过来说,情况比较清楚,不用拍了,如果一会拔的时候有意外,再去拍就是了。

    不愧是老师啊!

    不过,由这个小伙子来为我拔牙我并没有什么顾虑:一来老师还在这里呢,二来小伙子只是经验少了些,在我的配合和这样的老师的指导下会很快成长起来。

    拔牙的过程还算顺利,先打了麻药(味道不怎么好,流到喉咙的时候让你不吐出来都不行)。不知道小伙子是不是第一次拔牙,因为旁边站着三位他的师兄 弟,在他使用拔牙铤的过程中,他的几位师兄一直在一边指导他,因为铤了一两分钟,牙不见松动,估计也是我的牙比较坚固,一位师兄只好亲自上阵,显然经验要 丰富的多,很快牙齿就松动了,拔下来一看,这牙根是弯的,而且是三根的(我不太懂,简单说就是三条腿)。也没有流太多血,因为麻药没有消失,也感觉不到疼 痛,倒是嘴角被扯磨的有些出血。

    这时大概11:00,医生嘱咐了我一些内容,看时间还够,我们就到三楼的牙体牙髓病科准备把齲齿补一下。

    三楼大厅里等着的人比较多。从护士手里的病历也看的出来,还有很多病人没排到。护士一看我是二号,就安排一个刚做完的小伙子(又见小伙子,因为这个 号上明确的写着:教学)给我补。小伙子也让我先去拍了一个牙片,拍回来后,一位女士刚要补完,轮到我了。结果我后面一位大爷径直躺在椅子上,我也想的开, 反正这补牙也快,我就多等一会儿吧。

    过了10多分钟,大爷就补完了。补牙确实是比拔牙要省事,不用打麻药,直接用小钻子把坏掉的牙质钻去,钻出一个洞来,用树脂填充上就行了。最难熬的 是钻到坏掉的牙质的地方,一阵一阵的酸痛。结果小伙子说我其他牙也需要补一下,我心想,补就补吧,都补好了也就了了心事了。结果下来一共补了三个洞。

    补牙不比拔牙省钱,补三个洞材料加手术费一共400+,拔牙300+。不过听说拔上面的牙要容易,拔下面的就难了,而下面的尽头牙又最难拔,花的时间也要久的多,说一二个小时也是可能的,说的比较恐怖,我都不想拔下面的了。

    弄完了12点过一些,两个人都饿慌了。找了个地方吃饭,为选个吃饭的地,俩人意见还不一致,老婆紧张自己的复习,我也为此觉得愧疚。后来想明白了, 要想让老婆安心复习,我只有快点把身体搞好,而不能一味要求她不要管我,更不应该怪她浪费时间在我身上。换成我我也不可能不担心。

    老婆回学校了,我就回家吃了消炎药上床睡觉。睡到6点多,老婆打电话催我起来,起来之后感觉自己有些发烧。出去买了几盒八宝粥,顺便买了个体温计。

    因为这几天没怎么吃东西,这会实在是饿,又不知道能吃什么,打电话叫肯德基外卖。

    回家测了一下体温:38,算是中烧了。因为现在甲流比较猖獗,我又属于免疫力比较低的个体。打电话问了一下拔牙的老师,他说拔牙后发烧会有,但比较 少,5%吧。他嘱咐我也不用太紧张,可以吃点退烧药,好好休息。我又打电话问我学医的一位同学,她也基本是相同观点。我一翻,手上药还真不少,退烧、消炎 的药也有,吃完后就上床睡觉。

    待同住的同事回来后,我告诉他们我发烧了,明天不去上班了,让他们也注意一点。

    躺下之后,辗转反侧,难以入睡。不知是下午睡的多了,还是麻药效果消失了,抑或是发烧问题,就是感觉很难受。一会把自己捂的很紧,一会又把被子甩到 一边,就没有个舒服的时候。迷迷糊糊感觉过了很久,一看才12点,又测了一下体温,39了。一摸,头上都是汗,被子却是冷的……

    后来,不知怎么就睡着了,再醒来已经是8点过了,晃了晃头,感觉没什么不适。一测体温:37,似乎是恢复正常了,起床上班。

    一天下来,再没有什么特别的不适,就是感觉到饿。

    晚上回来再测体温:36.7,完全正常,看来发烧应该是发炎引起的,幸好不是感冒,否则我还真担心老婆和其他同事……


    Ubuntu 9.10发布了,笔记本和台式机都更新一下。家里的笔记本虽然处理能力差了一些,但网速可以达到300K,而公司的电脑虽然4核,但网速只有40K。无法兼得啊:(。

    再次告诫自己:身体是革命的本钱。

    喜剧的是:我似乎每次都是把本钱都输光的时候才能想到这一点……

    悲剧的是:我经常可以有机会想到这一点……


    请移步至此阅读全文»