Archive

Archive for the ‘闲话生活’ Category

阅读《活法》

September 25th, 2009

知道《活法》这本书很久了,这是第二次读,而且大体上算是完整的翻阅了一遍。第一次去读这本书的时候, 我正迷茫于人生的真正意义到底是什么,原有的人生目的随着时间的推移已经无法再成为内心的支撑,于是我找到了这本书。对于人为什么而活着,稻和盛夫是这样回答的:

当有人问“人为什么来到这个世上”时,我毫不犹豫地、毫不夸耀地回答“是为了比出生时
有一点点的进步,或者说是为了带着更美一点、更崇高一点的灵魂死去。”

读到这句话时,有种顿悟的感觉,人生就是对灵魂的修炼,简单而又如此深刻,深刻到足以撑起人生的漫漫征途。

第二次读,一口气阅毕,亦觉得颇有感悟,截取一些片段于下:

我们内心有个吸引灾难的磁石。生病是因为有一颗吸引生病的羸弱的心

无论我们年纪多大,都希望自己是拥有梦想、前途一片光明的人。没有梦想的人就不可
能有创造性。无法获得成功,也不可能成长为有用的人。为什么呢?因为通过描绘梦想、锐意创新、
不断努力,人格才能够得到不断的磨炼。在这个意义上,我想强调一点——梦想和愿望就是人生的跳
板。

德高者以高位,给功多者以褒奖

释迦牟尼的寓言:

——深秋的一天,枯木瑟瑟中,有位路人急急忙忙地往家里赶。猛一看,脚下散落着很多白色的
东西。再仔细一看,原来是人的骨头。为什么在这里会有人骨呢?——令人毛骨悚然又不可思议,他
继续前行,一头正在咆哮的猛虎朝他迎面走来。
路人大吃一惊,原来是被这只猛虎吃掉的可怜的同路人的骨头啊!他一边想着一边慌忙转身,朝
来时的路飞快地逃跑。但是,似乎是迷路了,他竟然来到了悬崖峭壁前,悬崖下面是波涛汹涌的大海,
后面是老虎,进退两难之中,路人爬上了一棵长在悬崖峭壁边的松树上。但是,老虎也张开了可怕的
大爪开始往松树上爬。
现在真正完了,正在万念俱灰之际看见眼前的树枝上垂下一根藤条,路人顺着藤条哧溜了下去.但
是,藤条在中间断了,旅客被悬在空中,不得上下.
上面老虎舔着舌头,虎视眈眈.再向下看,波涛汹涌的大海上有赤、黑、青三匹龙严阵以待,要
把他吃掉。上面还传来吱吱的响声,抬眼一看,黑白两只老鼠在啃藤条的根部。
这样上去,藤条被老鼠用牙齿咬断,路人不得不朝张开血盆大口的龙落下去。在这八面围困之中,
他认为首先应该赶跑老鼠,试着摇了摇藤条。于是,有温热的东西掉在脸庞上,舔一舔,是甜甜的蜂
蜜。原来,藤条的根部有蜜蜂巢,每一次摇动都会有蜂蜜掉下来。
他开始喜欢上甘露一样的蜂蜜味道。于是,竟然忘记自己已置身穷途末路之中——尽管处于龙虎
争食的夹缝中、且唯一的救命藤条也正被老鼠啃食——他一次又一次地主动摇晃这根救命绳索,陶醉
于蜂蜜的甘甜中。

在这个故事里,老虎表示死亡或生病。松树表示世上的地位、财产、名誉,黑白老鼠表示白天和黑
夜亦即时间的推移。人不断受死亡的威胁和追逐,但仍然执着于生命。可是,生命只是像藤条一样飘摇
无常地不可靠。

Author: gleery Categories: 闲话生活 Tags: ,

开始打理博客

April 28th, 2009

一直懒得写新的东西,pongba在他的博客上推荐大家从现在开始写博客,虽然一直也有这样的想法,却从来没有付诸实践。要想像pongba那样每次都写出一片精彩的长篇更是目前看起来相当困难的一件事,毕竟自己的写作功底还不行哈。所以决定从贴上几篇以前散落在其他地方的文章开始,丰富自己博客的内容。最近打算写的是语言与内存管理,希望能够将各种语言及其内存管 理的策略做一个介绍,目前还在写作中,以后再慢慢贴出来。

另外决定给博客换个主题,新的主题貌似很流行呢,在wordpress的主题下载里排第二,的确是很好看,所以就不管是不是和别人的一样了,先拿来用着。

Author: gleery Categories: 闲话生活 Tags: ,

避免过早的优化

March 30th, 2009

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. (Knuth, Donald. Structured Programming with go to Statements, ACM Journal Computing Surveys, Vol 6, No. 4, Dec. 1974. p.268.)

避免过早的优化是编程中的一个观点,但是本文却是关于做事的。对程序员来说追求细节上的性能优化往往是得不偿失的,一些代码即使性能差一些也不会对整体的性能产生影响,真正重要的是系统中调用最频繁的热点部分才值得优化。这个观点也适用于做事。

我们总会希望事情变得越来越简单,简单到一个命令就可以自动化一件工作。但是这个自动化是需要成本的,在简化一件事情之前我们首先要明确这件事情是否值得简化。如果同样的问题反复的出现,在你的工作中持续的带来不爽的感觉,那么这时花一些时间去解决这个问题就是必要的。但是如果问题只是偶尔的出现,那么短暂的不方便即使忍耐一下也没什么。

这个感悟是在配置gvim的时候想到的,一开始我花了很多时间去安装各种各样的插件,学习了他们的用法,解决一些问题。不过我甚至都还没有大量使用vim的经验,所以那些插件是否真的对我的工作都有帮助。用掉的时间是否都物有所值还是未知数。就像firefox的插件一样,一开始处于好奇,尝试了很多插件,最后使用的只是其中的一小部分。

这个道理可以扩展到很多地方。比如项目的管理,那些方面是需要迅速解决的,那些是可以忍耐的。追求简单的生活但又不过分,不让这种追求成为一种不划算的负担,才是明智的做法。

种子杯历届命题回顾(二)

November 3rd, 2008

   在我们开发复赛框架的时候其实也是在我们项目的进行过程中,和其他的项目组相比起来我们的确是比较轻松的,组长和主要开发人员能够用这么多时间做和项目无关的工作,这种环境给我的感觉相当的好,没有过大的项目压力,又能够每天在和dodo的交流中学到很多的东西,这种在共同的工作中受到的影响是潜移默化的。记得自己当初在为加入团队而进行面试的时候就说过,自己加入的目的就是为了寻找和自己志同道合的人,dodo作为我的学长,应该是良师和益友了,如果问我在团队自己收获得最多的东西是什么,大抵就是这段经历了。

    似乎有点扯远了,回到正题来。为复赛框架而进行的紧张的开发刚结束,我们就开始思考决赛出题的问题了。Idea还是dodo给出的——贪食蛇,这个题目相信大家都很熟悉了,为了让题目不至于太简单我们增加了一些元素,比如说Key和Door, 吃到Key以后能够打开Door,从而可能出现更短的到达目标点的路径。最后的要求是以最短的代价吃到最多的苹果。

    在框架的技术方案上,我们摒弃了原来的独立进程的方案,而回到了dll上来,原因是复赛中大家都无法使用调试器来调试自己的程序。在界面框架上,我和dodo都不喜欢MFC,所以决定使用设计得更好的WTL框架。开发是在五子棋的基础上进行的,所以耗费的时间略少。最后的代码并不多,大约3000+的样子,在良好的设计思想的指导下,代码的质量相当的高,可以当作学习的模板。dodo在之后也多次用这个框架来给新队员们介绍设计的思想。

   比赛的时间是一个下午,所有的队伍都现场完成自己的作品。和dodo共事久了,发现他是一个相当喜欢卡点的人,每次都在刚刚在deadline之前把事情做完,程序总是在最后一刻才改完,然后就急忙奔赴比赛场所。在他们比赛的时候自己也花了一些时间写了一个示范的程序,原本打算晚上演示一下的,不过可惜差一点没调试出来。选手们在5:30提交了自己的程序,然后我和dodo就赶忙在隔壁的教师休息室批改作品,这中间还发现了评分程序的一个bug,幸好被及时的发现了。那次也是印象中第一次吃工作餐。晚上的时间是现场答辩的颁奖典礼。那些面孔此后依然熟悉,很多人都成为了团队中的队友。

   比赛的完成情况和之后的一届相比还是有很大差距的,虽然不是很难的题目,但是大多数组都无法想到用广搜来解决这个问题,这大概是因为电信系的同学对于算法并没有很大的关注的原因吧。自己在学习数据结构的时候根本就没有听老师讲,在大一下的时候就阅读了一本用C++模板方法讲述的数据结构的书,看得相当的有味道。而到上课的内容则完全没有意思,对于广泛使用的数据结构的教材,个人推荐不要去看,书里面经常可以看到的是大段难以理解的文字描述,对于学生的理解来说是有害而无益,国外的书的质量则很高,讲得深入浅出。这又是题外话了。

  附决赛的框架程序 GreedySnake

Author: admin Categories: 闲话生活 Tags:

又忙起来了

November 2nd, 2008

  好久不习惯这样了,之前的很长时间都过得很自由。不过之后的时间估计要狠狠的忙一阵子了,好多好多必须要做的事情~~~~,不过这样的感觉也还不错,自己的潜能在这种环境下能够得到最大限度的发挥。

Author: admin Categories: 闲话生活 Tags:

种子杯历届命题回顾(一)

October 31st, 2008

      不知不觉种子杯已经办到了第4届了,前面的两届都是自己亲自参与了其中的命题,回头去看的时候总会有许多感慨,命题时的乐趣和艰辛浮现在脑海中,当然也会想起那些总会给我们带来惊喜的参赛者们,其中的许多已经成为了团队的伙伴。细细品味那些日子,会有种很满足的感觉。接下来我们将一起回顾一下种子杯历届比赛的题目和后面的故事。

      06年是我第一次参与种子杯的命题工作,当时负责的人是realdodo(现就职于微软),我和realdodo当时在一个项目组,理所当然的成为了他的助手,如果只是简单的出一道题让参赛者去做未免也太没有意思了,所以realdodo给出的idea是实现一个比赛框架,这个想法直接影响了后面几次的命题。复赛的题目选择了五子棋,五子棋的英文名字叫做renju,我们的项目也被命名为Renju。

      Renju框架的开发人员只有我和realdodo,开发的时间大约为1周的业余时间。这次的开发经历让我受益匪浅。首先dodo提出了一个很奇怪的需求,作为一个框架程序,我们要保证它不能因为参赛者的程序而挂掉,如果我们使用dll的方案,似乎总是有可能会让程序挂掉(现在想起来应该可以用SEH), 所以dodo提出的方案是用隔离的exe,使用pipeline的方式来进行通信,这个和google chrome browser使用的策略比较相似。而我首先要做的就是实现pipeline通信的封装,在那之前我并没有接触过pipeline,自己在window API编程的经验也不多,所以并没有绝对的把握,不过做过以后发现其实也蛮简单的,基本上查查MSDN也就水到渠成了。在那之后对于未知的东西基本上没有了畏惧的心理,而且逐渐掌握了快速学习新知识的方法。而dodo在框架中所使用的各种C++的编程习惯和技术也让我对C++了有更新的认识,从前在书上读到的东西第一次成为了自己的作品。

   最后的框架在匆忙中成型,加上一个cactus以前完成的AI,一切OK。比赛是在南一楼的DSP机房进行的,我一起去现场进行了监赛,比赛的结果比较让人失望,大多数队伍都没能完成一个像样的AI,或许题目的难度太大了一点。不过这次的比赛形式依然让很多人觉得很满意,选手们在参加完比赛以后可以继续研究我们完成的框架程序,并从中受益。

  附上比赛的框架程序

Author: admin Categories: 闲话生活 Tags: ,

写在开始的——

October 21st, 2008

  从开始写博客起到现在拥有了自己的独立空间和域名已经过去了2年多,中间因为一些原因曾经中断了很久,也换过了不少地方,最早的歪酷,到blogspot, 还有donews和baidu hi,这些地方都留下了自己的痕迹。博客的质量其实一直很低,很少有精力去写出一些高水平的文章出来,大多是简单的文字而已。从今天开始自己也算是个小小的站长了,除了写一些自己的技术和生活的体验外,我想自己还会做一些有意思的web的小东西和大家分享。

   在这里的第一篇文章记录了我此时的一点点欣喜,和对未来的憧憬~

Author: admin Categories: 闲话生活 Tags: ,