关于Code Review, 从coolshell的一篇文章所想到的.

酷壳( coolshell.cn )是我个人非常喜欢的一个技术博客,创办者陈皓( @左耳朵耗子)在这个博客里面提供了很多非常有营养的文章,没看过的程序员朋友一定要看一看.

这篇博文源自于这篇文章:

从Code Review 谈如何做技术

看到作者这种大牛在阿里这种以工程师文化闻名的公司推行code review的时候遇到的种种阻力,想想自己从抵触到接受,到现在认为review完的代码才能commit,整个过程说出来我觉得多少还是有些意思的.

在工作的前5年里(shame),我基本上没有做过任何形式的code review,无论是让别人review我的代码,还是review别人的代码.原因太多了,公司没有强制规定,小组也没有形成氛围,在这种情况下,贸然请别人花时间review自己的代码,别人是不一定乐意的,自己自告奋勇review同事代码更是一种类似挑衅的行为.当然,如果有一段代码的处理逻辑非常复杂,我没有信心能够独自一人很顺利搞定的时候,我会向经理提出申请,邀请一个同事来和我一起写,对,就是类似敏捷提倡的那种”结对编程”的模式,只是多数时间是我在写,他则在旁边跟我聊聊天,在我脑子发热的时候一语中的的指出我的list中包含的到底是什么样的数据结构.也就是所谓的”当局者迷,旁观者清.”.一来这种非常复杂的开发工作不会天天有,而且开发时间不会特别长(一般不超过半天),二来坐在旁边看别人写代码其实是一个稍微轻松的事情,因此这种举动并没有引来经理和同事的反感和抵触.

首次接触”疑似”review是在前一家公司,我们开发的整套环境都是一个老家伙带着团队搭的(天知道他们积累了多久才搞了这么多玩意),从vim的配置,php开发框架,一直到上线分发的脚本都有,其中上线前最重要的部分就是将最新版本和线上版本的代码依次做vimdiff,只有都确认ok的时候才会上线.我所在的team只有我和另外一个老家伙具有上线权限.因此每次上线前,一个一个文件的查看diff,确认新的修改ok就成了必然的工作.当然,最开始我对此感到的是好奇和新鲜(从eclipse插件开发到php网站开发,一个月时间,如此跨度,不新鲜才怪),后来在发现了几个明显的拼写错误和几个隐蔽的逻辑bug之后,我意识到这么做原来真的可以发现这么多问题,就对这件事情逐渐重视起来.当然,甚是土鳖的我,当时必然是不知道review board这种高级玩意的存在的.

从前公司离职加入现在公司之后,开发语言从php又换回了老本行-java.我作为一个新人,首先肯定还是适应新的团队和环境,因此review这种事情就作为内心中一个隐隐的向往,就给放下了(其实作为程序员,我心中已经有很多类似的隐隐向往了,比如”我一定要重构XX模块,我一定要开发一个XX工具,我一定要努力把数学水平提高点….”,多一个不多).后来公司来了一个CTO,当然,还来了很多高大上公司的天才,如果没记错的话,Code Review是作为新技术管理团队的三把火工程提出来的.当然,经理层中有没有人为了这个事情把CTO微博拉黑我是不知道得:-),但是下面的一线程序员议论的还是有一些,讨论的主要内容和上面陈皓文章中写的差不多,人手不够工期紧blabla,但是讨论归讨论,毕竟因为这个事情跟经理闹翻的事情是不会有人做的.我在配置了reviewboard之后,立刻爱上了这个玩意.我擦原来还有这么高大上的东西.当然,作为三把火工程的配套工程,新团队还给了一些suggestion,比如关于代码规范性方面的建议,比如提review应该小步快跑,比如最好同时提给2个以上的人看等等.然后就是近似强制使用到现在.

个人总结一下code review带来的好处:

1.能缓解技术团队管理上的单点问题.共同维护一个大系统的程序员团队很容易成为某人负责某个模块的形式.不可否认这么分配效率是最高的,但是风险也很大,原因很简单,Single Point.纵然管理上一直在提敏捷,说所有人对所有代码负责,但是最终的结果基本上就是没人对别人的代码负责.但是如果强制的去要求团队成员轮流换模块开发,那么整个团队的开发效率又会有问题(尤其是项目规模稍大,且业务逻辑非常复杂的情况下,要每个人都非常清楚所有模块,确实不太可能).那么采用codeReview的形式,将2~3人分组,一个主力开发,另外的人负责review,那么至少会有人对代码熟悉.单点情况能缓解很多.

2.对于个人来说,当我知道我的代码必然会被别的同事审阅的时候,那么在无形中我就会更认真的对待.比如在变量命名上更仔细,或者在代码结构和运行效率上考虑的更多.那么当我review别人的代码的时候我也会更加注意同事的代码有没有疏忽和遗漏.当然,在经历了前几次扭捏之后,现在大家在review的时候提问题已经脸不变色心不跳了,毕竟都是就事论事,也算是加深了同事之间的相互信任吧.

3.有助于培养团队整体的代码风格.每个人都有自己的代码风格,那么某种自己熟悉的写法如果受到团队其他成员的一致差评(破窗户被第一次发现),那么这个问题下一次一定会被纠正过来的(立刻被修补).反之,阅读别人代码时,我也会有惊喜:原来还有这么牛叉的api和用法, 下次我也用!

 

对于还没有接触过code review的同学,我再给出一点小建议:

1.无论团队有没有code review的习惯,自己在commit之前,重新diff一遍,认真的读一遍自己的代码是绝对有好处的.

2.在团队中开发中,自己可以偷偷的check下来同事的两个相邻的版本,然后看看diff,一来可以了解一下业务,二来培养一下自己阅读代码的水平,毕竟读开源代码所花费的精力远超过阅读自己天天接触的系统的代码.

AWK 简明教程

之前对awk的使用一直停留在截取某列打印出来的水平上,最近简单学习了一下awk,发现这个东西还是比较强大的,这里总结一下.

awk的基本使用

awk是一个非常好的行文本处理器,支持从标准输入接收数据,结果输出至标准输出.比如我们可以这么用:

cat a.txt|awk '{print $2}'

上面这行的意思是将每行的第二列打印出来.默认分隔符是空格或者tab.当然我们可以通过F参数来修改.

cat a.txt|awk -F , '{print $2}'

上面这行就将分隔符改为了逗号.
观察awk后面的部分,可以明显看出,这就是一段脚本.既然是脚本,那么当脚本过长,在命令行直接编写肯定是不够方便的.
所以awk支持指定某一个脚本文件来处理.比如我们可以这么干:
新建一个文件,名字为awktst,内容如下:

{print $2}

我们可以将上面的脚本改为:

cat a.txt|awk -F , -f awktst

awk的基本结构

awk是基于行文本的处理工具,当我们将文本流输入awk的时候,awk其实是在不停的重复处理同一行.其结构主要分为三部分:Begin,body,END.
处理的过程伪码如下:

BEGIN{
     #init something before start text reading
 }
 while((line = readline())!=null){
     body{
         #the main awk process is here
     }
 }
 END{
     #do something after read end
 }

 

我们只需要编写BEGIN,body和END过程就好了.

每部分都用大括号来标识自己的代码块.需要注意的是,awk的变量作用域是全局的,而和代码块没关系.

还是上面的例子,我们可以再将awktst改写的更高端一些:

BEGIN{FS = ","} #FS是awk的一个默认变量,代表标示符
#下面这个其实就是body
{print $2}

我们执行的命令就可以改为:

cat a.txt|awk -f awktst

awk的参数和变量

可以看到,上面我们用到了$2来表示第二列,其实awk在分割上还有两个常用的变量,既
$0 表示整行
$NF 倒数第一列

我们也能自己定义参数,定义很简单:

a = 1
a = 'a'
a = "abcd"
a[b]=c #map形式

awk的语法

awk语法和c/java非常像,下面有个小例子,看一下应该就明白

k1 = "Chris";
k2 = "John";
age[k1] = 30;
age[k2] = 29;
 
for (ke in age){
    if (ke == "Chris"){
        val = age[ke];
        print "Hello Chris , your age is ",val;
    }
}

一个简单的例子:

#这是一个处理java异常日志的小脚本.作用是将今天的异常全部输出.
#java异常文件是一个第一列为日期的时间顺序文件,所以我们只要找到第一个今天的异常,然后将剩下的直接输出即可.

BEGIN {"date +%Y-%m-%d"|getline now;nowStart = 0}
{
    if($1 == now){
        nowStart = 1
    }
    if(nowStart == 1){
        print
    }
 
}

这是另外一个简单的例子

#有文件类似:
name salary age
chris 1000 30
john 1100 24
#我们希望获取薪水总和,平均年龄

BEGIN{
    personCount = 0;
    salarySum = 0;
    ageSum = 0;
    rowCount = 0;
}
{
    if(rowCount != 0 ){#第一行是表头,不处理
        salarySum += $2;
        ageSum += $3;
        personCount ++;
    }
    rowCount ++;
 
}
END{
    print "Total salary is :",salarySum;
    print "Average age is :",(ageSum/personCount);
}
$ cat person | awk -f awktst
Total salary is : 2100
Average age is : 27

[转]一个清华学生留学香港后对人生的思考

原文地址无从考究,我是从豆瓣拷过来的[ http://www.douban.com/group/topic/9535600/ ]

98 年本科毕业,又顺利地被保研,当时的我只是一个憨憨的书呆子,纯洁的如同高中生,在清华这种和尚庙一般的理工学校里呆了四年,女孩似乎是山下的老虎,神秘得让我一见就脸红心跳。未来是什么对于我就是“读完研再说”,反正成绩还行,不读白不读。天上掉了馅饼,用我的兄弟的话来说。香港正好回归一周年,教育部要选派一批本科毕业生去香港科技大学读研,以加强两地的教育和科研交流。清华当然要占不少名额,系里的几个牛人去了美国,所以这个饼就掉到了我头上,确实是个不错的饼,不用考G、考托、全额奖学金,连什么手续都是学校和教育部包办了,我分文不花,后来香港科大的联络人抱怨中国的办事效率和程序烦琐,至于怎样的麻烦过程,我至今都一无所知。
香港科大
就这么糊里糊涂地来到了香港。依山傍海的科技大学美得如同世外桃源,现代感的建筑更让我们爽眼。当时的一个哥们说:“妈的,就是用银子在荒山野岭堆出来的,这样的物质条件算是让我满足了。”后来得知就是亚洲最美丽校园,倒也丝毫不怀疑。据说是香港政府感到了贸易和服务的优势正受中国沿海城市的挑战,而科技就是竞争力,就下了狠心投钱建了这学校,请来了学者。耗资400亿港币,相当于微软公司一年的纯利。组织的参观,教授的讲话,英语的培训很快就过去了,当时的新奇兴奋也褪得干净,每天面对这青山海景,最后也麻木得没有感觉了。由此可以推测娶一个漂亮老婆是没有多大意义的,如果不是为了炫耀。教授大多是华人,台湾和大陆出身的不少,反倒香港人是少数派,很多都是在北美的名校里拿了PhD,奔这里的高薪来了,他们的PhD头衔总要和名字相片挂一起,挂一辈子,Harvard和Stanford之类的当然就香了。正教授可以一年拿到一百多万港币,也就是一个月可以买小汽车,比一般的美国大学高。知识真的值钱了,让我们充满了对未来的向往。有回和教授们吃饭,谈及大陆大学教授的待遇,他们就感慨:“知识分子真被廉价到了可耻的地步。”我们也无话可说,反正不是我的错。然而钱不是好拿的,很多教师正是三十出头,教授职称还未到手,和学校只是几年合同,其他的学者也不断在申请进来,所以压力颇大,辛勤程度比公司打工仔有过之而无不及。既然自己做学问要紧,培养学生的事就要往后排了。刚进来时很多教师和我们亲切讲话,之后就不见了,好久不见就不认得。研究生当然有导师的,只要自己不去找他,他是肯定不会找我的。上课之后就是绝对的自由,当时自由得很是惬意。
萧伯纳说人生的苦闷有二,一是欲望没有被满足,二是它得到了满足。这话的确是部分的真理。当我住在这绝世美丽的地方,可以随心所欲的去商店买东西不用担心付不起帐,可以任意的支配自己时间时,最初的半年里,却发现情绪每况愈下。西方化的建筑设计将个人的所谓privacy保护发挥到极致,进了宿舍就基本感觉不到他人的存在,同单元的人也有独立的卧室,大家都是进了房,将门一关,隔离了,谁也不好意思去敲门。刚来时认识的一伙人,后来发现根本遇不着,如同消失了一般。同住一起的是三十好几的叔叔级人物,偶尔可以说上一两句话,却永无可能说很多。大家都像是住在不同的空间里做研究,忙碌的无瑕顾及他人。
平心而论,对于一个成熟的研究者,如果他有确定的目标和兴趣,对生活人生都不再有不切实际的幻想,准备投身科学研究中,那么这里真是一个好环境。但是我种茫茫睁着无知的眼睛的毛头小子,却是完全另外的感觉。那种茫然的苦闷感觉真是难以描述,找不到人玩,只是将窗户开了又关,关了又开,不停的喝水,仍然感觉不舒服。
怀念在清华的破楼里相互串门打闹的日子,怀念抱着篮球在走廊里叫一声就应者云集的日子,可是怀念解决不了问题。以孩子的心理去进入成熟严谨的环境,不可不说是一次考验。
多年的功利教育的辛勤培养,我一路顺当地走过来,发现完全的上当。我在成功的通过了一次次考后,最终都不知道我为什么要通过这些占据人生的考试,这个所谓的优秀学生只是在不停地让自己去符合那个“优秀”的外在标准来麻痹自己的虚荣心,而自己,那个真正的自己却一直没有存在过,没有发育过。我学的任何课程都无法帮我解决当时的苦恼,那么每天学那些微分方程又是为了什么?还去为了父母的微笑,人们的赞许吗?年年得奖学金的清华毕业生是了这么一个怪物:不知道自己要什么,也不知道生活是什么,对社会毫无接触,二十出头,可是见女孩子就一身不自在,会解各式各样的方程,却不能解决自己的困惑,硕士博士的路就在眼前,可是不知道还应不应该这样走下去,这状态难道就是我的追求?一个智商还不错的人努力多年就变成这样?
这是一个问题,很早就有了,只不过太晚地暴露出来,我相信这样的问题依然将被很多师弟师妹们面临,我相信在清华依旧有很多像我当年一样的学生。当看到他们天真的讨论: G 2***, 托 6**,GPA 3.*, 学校名次Top **, 仿佛几年的辛劳就只为那么点数字,人生的终极标就是goabroad. 我无法不为他们忧虑。这也是促使我写这篇文章的主要原因。
很多人没有对做研究的真正兴趣,但是用尽了精力去获得一个去国外做科学研究的机会,就洋溢在掩饰不住的喜悦里,甚至对人生毫无真正规划,对自己的兴趣一无所知,为出国而出国,那将在告别父老乡亲后去迎接苦闷的开端。
香港的学生很实际,决大多数本科毕业就去赚钱,三十之间为结婚买房奋斗,如果告诉一个香港人说你二十八了还在读博士,他会觉得你很失败,可能是根本不会赚钱。而留下来读博士的香港学生,就是真的很喜欢作研究的人,扎实地做事,他们的认真让我们一批朝三暮四,心猿意马的大陆学生汗颜。
生活在香港
都说香港是弹丸之地,其实一千多平方公里的面积也不算小,不过大多是山,可利用的地方不多,很多商业区都是添海造出来的。亚热带的气候,又在到处是山和海湾的地方,风景当然好。香港的气候比北京舒适一万倍,冬天冷不了,夏天也不太热,甚至没有明显的四季感。只是上半年天气有些潮。成天都有湿湿的感觉,北方人有点受不了。
香港的交通极其发达,公共车从不拥挤,也很少堵车,可是香港的道路比北京的窄得多,车也不会少,布局和管理更好而已,看来北京走向国际化还须努力。这里是名符其实的购物天堂,东西也不算贵,电器和服装可能比北京便宜,特别是国际名牌,由于没有关税,肯定要比大陆便宜。所以不必带很多衣服来,足够便宜了。但是服务业,比如吃饭,理发,涉及到员工劳动和地租的就要比大陆贵好几倍。可以随便往来深圳也是在香港的一大好处,一天可以轻松来回好几次,在香港读书的学生可以得到香港的临时身份证,加上护照上盖个章,就可以自由出入境了。
常有人问及香港的影视明星,可是到了香港就觉得那些人也只是打工仔,背后是更有影响力的老板,一旦老板不想捧了,明星就会很快消失,新人会取而代之。看到他们卖力地载歌载舞,其实也是生存需要,在商业社会里那是绝对的驱动力。
香港的金融和资讯服务相当发达,在所谓第一世界里也算相当突出,可以很便宜的享受到信用卡,电讯,互联网服务,因此有些人在香港呆久了再回来反而不适应了,主要就是这些方面,当然还有其他制度等软件原因。
说到学校的生活,物质条件比国内任何大学好,甚至条件好过美国不少学校,香港的学生很少住宿学校,所以一到周末放假学校就很冷清。通常大陆学生独享学校设备,偌大电脑房和运动场,舒服的游泳池,都有不少美好回忆。学生宿舍条件不错,可以做饭,自己做比在餐厅里吃来的便宜,所以大陆学生会乐此不疲,周末常三五成群,做吃的为乐。餐厅里中西餐都有,中餐以广东口味为主,忙起来时以营养为重,口味不对也只能将就吃了。
现在在香港的大陆学生不算多,总共有四五百人,各个学校都有学生联谊会,是比较松散的组织,也有一些机会认识朋友。周末会组织放放电影,搞舞会。临近考试或论文时,谁也没心思搞活动。香港的学生很好打交道,在成熟的社会里长大的人,心理相对简单且好玩,不像一些大陆学生常常过分盘算自己的明天,将自己逼的很累。他们对大陆也渐渐感兴趣,虽然他们常常不知道湖南和四川,只说得上秦始皇和\毛\泽\东。只要主动点和他们交流,是可以结识不少朋友的,粤语不是障碍,很多人可以听普通话,而且,广东话不难学,不留神就长进不少。
关于工作机会
很多人就终于跳到北美去了,大多还是接着读书,从这个意义上讲,香港只是跳板。
在香港留下工作的机会不多,如果在进香港的第一天了解这一点,是有好处的。也有回祖国的,我就是,所以我在这里写文章了,看到很多朋友询问去香港读书的问题,作为过来人,就写了这些,如果能给这些朋友提供一点有益的信息,就很满足了。
上次写了文章发表在海外学子版,很多朋友给我回信,给了我很大的鼓励,真的没想到过自己的东西会给别人带来影响。留学的经历给了我很多,几乎是一个脱胎换骨的过程,在一篇文章里是不可能都讲完的,所以我再写一个续集,好莱坞搞续集纯是为赚钱,我呢是什么都不图,万一有ppmm看了之后找我,最爽不过。将心底里的一点点“龌龊” 都暴露出来,可以痛快讲了。
凡事都是虚空
来自发展中国家的人,难免在神情上都多一丝生存紧张,中国在海外的留学生尤其让人感觉到这一点。看不到出自内心的笑,连谈话时也似乎只有一个主题:今后有什么打算?每做一件事,都在问自己:对我有没有好处?
坦白的说我自己刚到香港时就是这样,只觉得自己多么没着落,无根无底的飘在他乡,我要努力啊,绝不可浪费自己的任何精力,房子,车子,名誉,地位,还有漂亮老婆,我什么都要啊。要学最能给我带来利益的东西,去做最有利自己的事情,直到我成功。当时我就是这么典型功利,到现在我都想这样痛骂自己。
数学指出函数的极大值往往在最不稳定的点取到,人追求极端就会失去内心的平衡,到时候就不难体会到数学原理的深刻。我很快让我的功利心理逼到无路可走了,对所学的东西怀疑,担心自己变成书呆子,对自己有信心,找不到真正的朋友,找不到让身心平静的乐趣,每天都在心潮起伏。最后我去找学生辅导员。愚蠢的诉说倒不多提了,不过我记得他大胡子的脸有了微笑,眼睛里放出宽容而温和的光。他告诉我觉的我很有意思,他第一次遇到这么坦白的学生。“那些东西有什么意义呢,你怀疑得很好。“之后就翻出圣经来,给我读某些章。
Everything is meaningless.竟是圣经里的话语。那是我看到的最为震惊的一句话,也是我后来觉得最深刻的一句话。中国人很难理解,对在功利教育里熏陶过来,缺少人格教育的中国学生,更无异于晴天霹雳。成绩,offer, 学位,这样那样的好处,每天拼命算计的东西有什么意义?假设你突然死掉,世界将会怎样?世界将一样绚丽,地球转的一样快,太阳系每天在宇宙中换一个位置。大海还是大海,波涛还是波涛,一样的花开花落,潮起潮落。你的亲人可能会掉眼泪,但是周围的人在三个月内将你忘个干净,那是你曾经那么在乎他们怎么看你的一群人啊。如果上帝存在,在他的眼里,你是多么可怜的小虫子,在活着的短暂岁月里,在最美好的青春里,都不曾快乐过,用尽心力去聚集一大堆外在和心灵没有关系的小东西,只是出于对未来的没有信心,小小的心灵在接近熄灭的一天还在发出那个愚蠢的声音,让你忙碌,让你忧虑的声音:我要,我还要。天底下充满了这样的小虫子,当一个离开了,又有一个来了,做着同样的事情,汹涌着同样的小小念头,受着同样的煎熬。于是上帝要感慨了:虚空的虚空,凡事都是虚空。已有的事,后必再有;已行的事,后必再行。日光之下,并无新事。
已过的世代,无人纪念;将来的世代,后来的人也不纪念。
——圣经 旧约 传道书
我不是在传教,当时的辅导员也不是在传教,但是让我立刻看到自身的渺小,物质追求的虚妄,内心的愚昧。看看资本主义的学生辅导,是不是比我们这边高明多了?马哲曾帮助过我们什么?
不要忧虑
“不要为明天忧虑,天上的飞鸟,不耕种也不收获,上天尚且要养活它,田野里的百合花,从不忧虑它能不能开花,是不是可以开得和其它一样美,但是它就自然的开花了,开得比所罗门皇冠上的珍珠还美。你呢,忧虑什么呢?人比飞鸟和百合花贵重多了,上帝会弃你不顾吗?”
一个朋友告诉我,他在等美国 offer 的时候,常常梦到接到牛校offer, 过度兴奋到醒,更为郁郁,感慨“但愿长醉不复醒”。这样的故事大家听了不会太惊诧,由此不难理解《儒林外史》中的范进中举了。而得到offer的人到了海外,往往要经历更多的梦醒时分。
为什么活得这么累?生命本是如此美丽,连飞鸟和野花都可以尽情地享受上天的恩赐,而这些有高等思维的聪明人,却活活让思维搞得神情郁郁,哀声叹气。
常有人感叹西方人笑起来那么真实,那么出自内心,探讨起来,又归结到他们更有钱,他们的社会更发达。可我觉得那不是原因。原因就是他们比中国学生更接近飞鸟和野花罢了,更接近《阿甘正传》里的弱智罢了。他们更天真,相信那个万能的上帝会永不遗弃他,所以他们可以少想很多的问题,反而过得更顺利,在团队里表现得更凝聚,因为过分的私心是无法向大家共同的上帝交代的,他们可以很快做出一个Microsoft,一个Dell,但是大家可以看看中国的北大方正,联想,新浪,管理层一年的地震比台湾还多, 这么多年来,连冲出亚洲的野心都没有真正实现过。 这难道不是上帝给西方人带来的好处,耶稣说信我就可以得救,不管这个上帝是不是虚拟的,但他在事实上填补了人性的巨大空白,人家的Microsoft就证明了他的存在,正如计算机的虚拟内存,尽管虚拟,但事实上的作用是巨大的。中国学生总是怀疑这个看不见的上帝是否存在,更在私下里说,他对我能带来好处吗?其实中国人什么都不信,只信好处,从古时的考八股起,读书就是为了好处。因此,大家每天活在害怕没有好处的忧郁里,想靠自己小小的思维,在着巨大的世界系统里去谋取好处,上帝忍了泪水,背过脸去。
思维的无奈
我并不主张虚无,尽管我在上一篇文章里尽力去指出物质追求的虚妄。正如萨特认为,人生本是本无意义,但是怎样摆脱虚无却是有意义的。王朔的意义在于砸碎那些没有意义的假崇高,伍迪.艾伦的意义就在于不断指出人生的荒谬。如果一切都是那么可笑,我们怎样面对每天的24小时?但是活着就是这么简单,它只是一个过程,简单而自然地发生,以至于任何干扰和关注都是多余。就像飞鸟掠过天空,野花静静地开放。能把什么东西叫做现在吗?你能占有什么东西吗?一切的意义只在时间的流动的河中。就像一团火,哪个燃烧的过程才叫火,一旦过程停止了,火不存在了。人的思维在作怪,它是一个双面的东西,它不总是带给我们好处,虽然我们对它有那么多自信。思维在很多时候严重地干扰了那个自然的生命过程,它在想单个的状态好不好,值不值得,合不合规范,能给自己带来什么,所以我们很快变得不快乐,不安稳,再也无法享受那种自然的喜悦了,正像被摄像的人,他的表情立刻不自然起来。恐怖片里的鬼魂可能一直不曾出现,人们却开始牙齿打颤,是被自己思维折磨而已。学计算机的朋友肯定知道操作系统将一个进程悬挂起来的意思。人的那个蠢笨不堪的思维,凭什么要常驻内存?它那么长期的运转,又真正解决了多少问题?为什么不在必要的时候悬挂它,去享受生命的自然?明白这一点将改变你的生活,思维会使你陷入矛盾,很多时候它是多余的,用心去体会,甚至用毛孔去感受就足够了。当你不再判断,不再分辨,不再比较,不再权衡,你就立刻、和谐起来。“采菊东篱下,悠然见南山”。那时,还用考虑什么呢?“此间有真意,欲辩已忘言”,连言语都是多余,因为言语来自思维。佛陀的捻花一笑,详和的神情,虽静坐,似乎已飞跃世间一切,他坐在了那个生命的根本之上, 再也没有一丝的不和谐。
读书的时候,我常常到海边听涛声,坐下来看着太阳落下,那会是我一天最美好的时间,当太阳没下去,晚霞渐渐褪去颜色,波浪依然轻轻拍打岸边,幕色从四周将我围过来,静默中我会在心灵里升起喜悦,感觉到冥冥中那个永恒的力量,它在紧紧将我抱住,天地万物和我一样同在,也被温和地抱着,我将永不孤独,永不伤心,永不绝望,因为那力量就一直在那里,将永远在那里,我是它的恩赐,我的灵魂从未像那时一样枝繁叶茂,内心从未像那时一样宁静和谐。
我不用去分辨那种力量,是上帝也好,上天也好,老子说的道也好,有什么关系呢?分辨只是是思维常干的蠢事罢了。所有的心灵都是一样的,所以我相信所有人都有那个和谐的状态,就像收音机有那个频道一样,只不过太多人没有调到过。太阳,大海,清风明月,鸟语花香,生生不息的物种,是多么大的恩赐啊,只在我们断暂的生命里才可以感受到,可是太多的人从不念及。他们将自己全部地交给了少得可怜的脑细胞,心灵交给了那个拙劣的 CPU,时时刻刻在做狭窄不堪的运算和判断,所以才会长时间挣扎焦虑,只看到85分和90分的区别,5000元月薪和10万年薪的不同,牛校和烂校的分辨。所以“郁闷”,“无耻”,“倒霉”,“不爽”,“急”,这样的词汇就开始在嘴边泛滥了,就像破电脑的出错提示一样多。
本没有打算再写很多了,关于人生的刨根问底本来就是沉重的课题,无异让学业繁多的学子们再怀疑自己,平添忧虑。倒不如多说点逗乐的事,每天多嘻嘻哈哈一阵。
前不久见到北大的一个女生,说我前面介绍香港的文字很实用,后面的文章就越来越看不懂了,可以理解,并不是所有的人都要像我一样想这些问题的,特别是女孩,一天多说几声“挺好的”“好温馨哟”就算过得不错了,古今中外都不曾出过一个女哲学家。但是,这位未曾谋面的北大师弟在等我的续集,谢谢你,xmdl(阿扁鱼), 我不愿让你失望这一篇是为你而写的。
我们看的人文书前面提到的女生就问我,在留学过程中最大的收获是什么,我回答是长了见识。就像在小地方呆久的人出来见了大海,这个收获大得很。所以我渐渐地学会了真正的谦虚态度,越来越承认自己所可以理解到的,可以认识到的只是这世界的太小一部分。在我的脑力范围外有太大的空间,从这一点来看,我们每个人都对自己有过多的自负,每天都在或多或少的干着作井观天的蠢事,争论着盲人摸象的争论。
清华北大的学生的人文素养,我想,很多来源于图书馆的人文书籍,因为喜欢读书的学生多半在那里搬书回来看。可是那些书多产于七十,八十年代,基本上是被一把姓马的刀阉割了的太监式的书,我不怕得罪人。怎么阉割法?举个例子,“总体而言,宗教是唯心的,错误的世界观,被统治阶级利用来麻痹被统治阶级的广大人民…”从此,你知道了这一点,你么读释迦,读耶稣,读老庄,都觉得如同太监一般阴阳怪气。
在红色的年代里,马刀所向无敌,包括孔夫子到孙中山,从曾国藩到蒋介石,都少有可以逃脱的,因为他们有“阶级局限性”。
但是我到了香港,就看到了很多台湾的书,很多香港的书,原来这些书本不象太监的,甚至不比姓马的书少阳刚之气,可以读得让人忘食,哎,可怜它们的被阉。这些都是我以前脑子以外的东西,所以我立刻知道要谦虚了,人总是受着他的经历和环境的巨大局限,他甚至不意思到,没有选择地被限制隔离着。
耶稣呢,用我们的眼光看,他太失败了,没有妻子,没有儿子,没有房子,没有财产,没有地位,最后还要被钉死,他只是游走于四方去救助受苦受难的人们,他有余的眼光总是看到了世界的外面,因为他也到过更高的维度里。
庄子至今看来还是活得最浪漫最洒脱的中国人,他是超脱的同义词,他也是高维空间的蚂蚁。
去读他们,去体会那种来自另外一个维度的智慧的震撼,尽管你可能无法改变无奈的现实,但是可以深刻地改变自己,尽管无法摆脱沉重的肉身,依旧无选择地活在平面上,但是,心灵获得了自由。愿意升起你的心灵吗?
每个人都是独一无二的,而且我们永远只能是自己,卢梭说的,对于整个世界我微不足道,但是我对于自己确是全部。事实上我们只对于自己重要,如果我死掉了,没有几个人会在三年后保持对我的记忆,如果我痛苦,没有几个人会有真正的同情,因为太难了,每个人都无法了解我的意识。所以我们要独立,活着就是成为自己,那个独一无二的自己,去寻找自内在的完美与和谐,去实现句那没有选择的话: I am who I am。
Simply because I am not and can not beanyoneelse.可是我们受教育,教育的目的就是教我们忘掉自己,去变成一个称为标准的人,不是这样吗?从小学起我们就要评三好,树标兵,学雷锋,学赖宁。老师总是看到我们的恶习,“你那样子不合行为规范,不可耻吗?”
到了大学,我们又自由了多少呢?我们依旧看别人,看典型,看所谓成功者,我们依旧活在要忘掉自己的标准包围中,去bbs看看,似乎所有人都统一了口吻,GRE 2400,拿了牛校offer, 签了著名外企,找到了ppmm,牛啊,羡慕啊,爽啊,历史走到了21世纪,北大和清华人只剩下一副面孔了,每年招了很多新生,最后就剩下了一个。
比较是有意义的吗?作为一个独一无二的存在,作为自己的全部主宰,为什么要什么都和人家比才可以找到意义?为什么当别人考G的时候,我也一定要考,为什么考不过2200就要郁闷?为什么billgates成功的时候,我也一定要学计算机?可是自己和别人是多么的不同,些不同难道可以在一些欲念的驱动下轻易的忽略?
崇拜是有意义的吗?明星是需要那样追捧的吗?中国的那支烂球队是需要那么多关注的吗?
当我们倾注希望的时候,他们借此赚到了更多的银子,活得更加嚣张,更加让我们失望,我们是在给富翁们献爱心,爱心那么多,为什么不献给需要爱心的更多的人们,为什么不献给自己,独一无二的自己?
当我们崇拜自己,热爱自己,追捧自己,关注自己,我们就都也是明星了。这样盲从将无法发生,起哄将无法发生,个人崇拜将无法发生。这个意义大的很,至少大跃进将不发生,文革将不发生,我们的经济有可能早三十年走上正轨,现在我们不需要拼命飞跃重洋,中央到地方的官员就不要象现在一样,在亿万人没有工作时还竭力吹嘘7%的GDP增长,就像阳痿的人,为了脸面,郑重地去声名:请看我浓密的胡须,年增长率7%。
//=====================================

不知道多少人可以耐心有共鸣的看完这个帖子,但是看完后却激动的想向每个好朋友推荐。关于人生的追求、香港的开明及其他、大陆人被蒙蔽太久、海外学习生活的好处和收获、是否出国以及为了什么出国,好多好多曾经是我想过滴为之郁闷过滴,幸好有留美归来的老师点拨,有Joe的严厉“质问”,才让我度过了当初的挣扎和煎熬,如今的心境已经远离那种浮躁和焦灼了。因为学会欣赏不同的美,懂得珍惜和付出,因此每一天都很开心。这一篇帖子真的是让我看到绚烂浮躁下面自己真正缺少什么,好好珍藏!有机会还是要出去看看好好体会。(转帖原文附带,未删除)

Markdown 常用语法表格

从入手mac后开始接触markdown,发现这个语法能够大大简化写作的难度,更加符合”工作时双手不用离开键盘”的思路,这里将常用的语法整理一下.

 文本 呈现 说明
Follows are illustrates for sequence index lines.
1. first line
2. second line
Follows are illustrates for sequence index lines.
    1. first line
    2. second line
数字+英文句号+空格表示有序序列
Follows are illustrates for no sequence lines.
* first line
– second line
Follows are illustrates for no sequence lines.
    • first line
     second line
*或者-后面跟空格表示序列
*abc*
_abc_
abc
abc
被*或者_所包围的,表示斜体
**abc**
__abc__
abc
abc
被**或者__所包围的,表示粗体
***abc***
___abc___
abc
abc
被***或者___所包围的,表示粗斜体
# head 1
## head 2
### head 3

head 1

head 2

head 3

 

1至6个#开头说明这是一个标题
[这是一个链接](http://www.chriszh.com) 这是一个链接 方括号+圆括号代表链接,方括号代表文字说明,圆括号内是URL

 

操作系统 (一) 计算机系统概述

操作系统的书拿到公司已经很久了,但是由于工作繁忙一直没有拿出来认真读起,马上就要过年了,工作节奏终于放缓,于是又重新拿起,争取趁着春节期间看完.这次我决定读完每章的2天以后再着手写读书笔记,一来可以先对之前的内容做个回顾和复习,二来每次读完书后往往都会比较晚,此时写读书笔记时间上也会有问题.

第一章 计算机系统概论

本章主要是复习了计算机组成原理中的部分知识:

寄存器,IO,寻址,中断,缓存,LRU等内容.

其中关于缓存部分的附录是我比较喜欢的部分.

这里讲到了局部性原理,包括空间局部性和时间局部性.

空间局部性(Spacial Locality)指执行涉及很多簇聚的存储器单元的趋势,这反映了处理器顺序访问指令的倾向,同时也反映了程序顺序访问数据单元的倾向.

时间局部性(Temporal Locality)指处理器访问最近使用过的存储器单元的趋势,例如,当执行一个循环时,处理器重复执行相同的指令集合.

局部性原理无论是从语言或者研究层面都得到了验证,这也是缓存器设计的基本依据.