2008年5月19日星期一

全国哀悼日(National Day of Mourning)

今天是全国哀悼日,下午2:28分,在实验室与老师和同学一道,悼念在汶川大地震中死难的同胞。
死者长已矣,生者何以堪。这是国家的灾难,促使我们每个人思考生命的价值。

2008年5月12日星期一

重读设计模式(Design Patterns)

摘要:该看懂的时候没看懂。

从扉页上的记录看,已经买了两年了。想起刚买的时候,兴冲冲向达哥显摆的情景。当时又从他那弄到两本书,一本是《编程珠玑》,一本是《敏捷软件开发》,前者看完了,后来又看了一遍。后者只看了开头和结尾,中间挑着看了点。对这本Design Patterns小字,首先腹诽一下机械工业出版社:那么小的字,那么薄的纸!那一阵出的书都是这副德行。感觉性价比高的还是电工和清华。

这本书算来集中精力攻坚了三次。第一次,刚进实验室,有个师兄的论文就是这个。所以看的很有动力,不过也只看完了结构型模式,并且还是一知半解。英文的确限制了理解,书本身写的也晦涩,开始觉得没什么,后来发现读本通俗的书可以省下大量的时间。下了很多资料,其中有个是武大同龄人写的,很佩服,人家现在也在香港写siggraph了。

第二次,是下学期上软件结构,有这方面内容,看《Headfirst Design Patterns》,那本书写的很好,但是时间紧,就抓着看了有三天,很多东西看的很有趣,不用就忘光了。

第三次,这学期,同学那看到了《大话设计模式》,中文的,写的很有趣,就借来一本看看。长期的积累,对于其中的代码,竟然能够一口气读下来也没觉得困难,觉得似乎本来就应该是这样啊。参照着原来的那本原版dp。一下子全啃下来了。

以前老师说书是先越读越厚,然后越读越薄。自己这第一个阶段算是读下来了,第二个阶段什么时候结束?我也不知道。

总结,坚持不放弃,最终读出来了是不错,可是中间绵延了两年,为什么呢?就算是书难懂,当初坚持肯,多花时间也应该是能够读出来的,如果早就读出来了,那么在这两年的就可以少走很多弯路,体会其中的妙处。

现在这个问题依然存在着,数学的,算法的,多长时间没有完完整整的读完一本技术书籍了?能指望未来某一天因为某种契机而对这些知识突然顿悟么?应该抽出精力解决了,人生没有那么多的两年。

附:HDP里面记录的原则OO Basics
Abstraction
Encapsulation
Polymorphism
Inheritance

OO Principles
Encapsulate what varies.
Favor composition over inheritance.
Program to interfaces, not implementations.
Strive for loosely coupled designs between objects that interact.
Classes should be open for extension but closed for modification.
Depend on abstraction. Do not depend on concrete classes.
Only talk to your friends.
Don't call us, we'll call you.
A class should have only one reason to change.

2008年5月11日星期日

Google Reader高级技巧快速入门

英文原文:Quick Tips for Google Reader Power Users
中文译文:Google Reader高级技巧快速入门

  使用Google Reader是很有效率的,通常情况下,从其他阅读器(如Bloglines)切换到Google Reader后,可以使用三分之一的时间阅读订阅,这样就提高了三倍的效率,这里我就介绍一些更有效使用Google Reader的技巧。
  更好的阅读订阅内容,主要的方法是利用键盘的快捷键,当然不用也可以,但对于Google Reader的新用户来说这是很有用的。
  1. 增加竖向的阅读区域 - 按F11可以使得浏览器以全屏方式工作,并移除了一些没用的按钮和菜单,浏览器的顶部和底部会增加很多空间,这就增加了垂直方向的阅读区域。
  2. 增加横向的阅读区域 - 将Google Reader自己的侧栏删除可以增加更多的阅读空间,按u键就可实现这个功能。现在,就可以做到少使用滚动条就可以一气呵成地将整篇文章阅读完毕。当然,你还可以换一个大显示器,并设置显示分辨率卫高解析度屏幕,较大显示器就更适合阅读长篇文章了。
  3. 切换到阅读所有栏目 - 这是一个传统的新闻阅读法,按ga,这样就不用点击每个Feed来查看文章了。否则,我要一个一个点下去看。将默认设置为“Sort by newest”,这样就可以迅速按照时间阅读文章。另外在设置中,将起始页面设置为“All Items”,这样一打开就可以立刻阅读。
  4. 切换到Expanded View - 这样可以快速将文章扫描一遍。按1来切换。如果你想更快地阅读,可以按2只看文章标题。
  5. 开始快速阅读 - 做好上面的设置,现在,你就可以快速进行阅读,以最快的速度一篇一篇的跳过文章,直到你看到一篇感兴趣的文章。有三种方法可以实现,在“expanded view”里,你可以按j向前,按k后退。另外你也可以按空格进行文章阅读,按Shift+空格后退,在列表模式下,使用n向前,使用p后退。
  在设置中选择在expanded view模式自动标记已读,在侧边选择“only list updated”,将隐藏那么不更新的内容,这是一个很有特色的功能,不过每浏览20篇文章会有一些停顿,希望Google能解决这个问题。
  6. 标记、分享、分类、阅读 - 当你读到一篇好文章后,你有5件事情可以做。将其标记(Star)以便日后使用,按s键(这和Gmail一样,以后你会看到所有标星的文章列表)。或者将文章分享给其他人(Share),按Shift-s键实现。或者你可以将其打标签分类,按t键,将其增加tags以便日后组织管理。或者你可以打开文章的原始链接地址查看完整信息,按v键,主要用于添加评论。或者将其标记为未读状态,按m键(有时可能有用)。
  7. 刷新 - 当你按j了很多次,你会发现已经没有更多未读的文章了,这时按r键刷新列表,Google Reader可能会立刻带来一些新文章呢。
  8. 查看标星的栏目 - 按gs键查看你标星的列表。你要将全部精力放在阅读标星的精选文章中,你或许会仔细阅读整篇文章的细节,或者为其写一篇博文。当你读完之后,还可以按s键取消星标。