月度归档:2011年03月

反思读书这件事

已经很久没有完整地精读一本书了,我终于意识到这是一件很奢侈的事。

要想明白为什么奢侈,首先得做一下划分:

  1. 以消遣为目的,比如看小说,这种读书已经很久没有过了;
  2. 以学习知识为目的,比如看经管、数学、英语等,也很久没有过了;
  3. 以理解知识为目的,这是目前主要的。

后两者实际是难以区分的,但不区分开就造成了目前的坏习惯——用看第2种的方法来看第3种。

进一步说,第2种阅读的特点是:不太需要思考,但需要全方位了解。这种阅读的高峰出现在我大二到大四时,以整天泡图书馆为代表。用一个词来描述的话,是“吞噬”。因为知识极度匮乏,所以是原始积累阶段,见什么搂什么;又因为匮乏,所以需要什么都去学才能继续下去。于是最多会有平均两天一本的速度。但这个时期所学的都是概念性知识,也不会深入。

但目前的阅读变了。在很多外围知识已经知道的情况下,需要的是思考——对模式的理解、对逻辑的重建。真正要学的,已经不是一个东西是什么,而是为什么这样。这种的阅读,如果再用每天几十上百页的速度,反而是浪费时间。

实际上我应该有这样的经验。学数学的同学们,往往一年能读完领域内两本经典著作,就很了不得了。数学是最典型的逻辑关系主导一切的知识,甚至于其中的定义都是由逻辑需要而衍生的。

年初有简单地思考:“过去的一年,读了哪些书?一年的时间,到底能读几本书?”于是在制定的计划中,今年精读不超过15本,同时跟进六七本期刊的出版进度。

而现在要再一次削减了。我打算每年精读不超过6本书,每个月细读不超过5篇论文。

而实际上6还是一个很恐怖数字。今年想在Linux内核和开发方面深入一点,但平心而论,APUE、UNP、LKD、LDD、ULK这五本书,有几个人能两年之内认真地读完?

想读的书真是太多,所以读哪些又成了头痛的问题。是确定将来方向的时候了。

MIT 6.828 Lab1 done.

五天时间,把6.828的Lec 1和2的课程材料、源码读完,然后把Lab1做完了。

前七道题不用细说,都是概念和操作性的。中间碰到一个很囧的问题,在ssh下,make qemu会失败,改成make qemu-nox就OK了(实际上是给了qemu一个-nographic参数)。折腾了大半个钟头,其实manual里已经写清楚了——以后先把manual看完,再动手。

第8题完成cprintf的%o方式,完全仿照%d部分的代码就OK了,其中有个base被传入printnum(),是进制的基数,改一下就好。

11和12题完成backtrace指令,这个是重头戏。函数调用栈回溯的主要思路是:

继续阅读

Hello world!

第三次独立博客了。惯例地评论一下主机空间提供商,希望这个惯例不再延续下去。

第一次是08年,使用虎翼网(51.net)的空间和真实姓名全拼.com的域名。国内的主机,速度倒是还行。但虎翼网在同IP下挂了600多个站点,后来还往页面里加广告。

使用虎翼,是因为一个怀旧情结。最早的个人主页就是在高中的时候申请的虎翼空间,那时候每天发放50个免费的,所以得熬夜申请。现在还记得域名是bughouse.51.net。免费空间自然是有广告的,最早是在每个页面的最后加入,我和墨鱼就在每个页面最后加半边注释,哼哼。后来改成在</head>之前加,我将这个标签用<noscript>包起来,搞定。

没想到到了08年,虎翼的技术还是这样,而且居然对收费用户投放广告——买的时候,是说明了自己选择要不要广告的。

当时的CMS使用的是4ngle写的Sablog-X,风格很简洁。不过后来小A不怎么维护了,反而去搞新版本的内测…… 继续阅读