IT这行,有钱人真多



想想大家都在讨论一个月3000还是4000的时候,别人都是100万,而且多数都是没有结婚的28-29岁的年轻人,我在感叹做人的差距好大啊! 最让人伤心的是,当代理100万的CASE打个电话过去,很自豪的说帮你推荐职位,年薪100万,那边传来的是,轻蔑的笑声:我现在都150万,你认为我会去考虑100万?

清华生7天猎头生活的发现——IT这行,有钱人真多

,什么时候有100万的case来找我啊

父亲节快乐



父亲节,也是我的节日了。去年的这个时候小家伙还不会说,今天已经是伶牙俐齿了。下午的时候跑过来对我说,

“爸爸,节日快乐!”

好开心,心里涌起了幸福的感觉。

另,下午也给爸爸打了个电话,一样地说了声,“爸爸,节日快乐!”

这时候父亲的心也是相通的。

宝宝的降临



在新浪上看到一组照片,母亲是最伟大的:女人生宝宝现场照片不由想到了老婆生乐乐的辛苦,老婆一直怕痛,不敢自己生。预产期是11月2日,1日的时候去了医院确定次日做手术,医生是要求住院的,不过我们办了住院手续后,就逃走了(那时她姐姐还是医院的护士长,所以各方面都要好些,呵呵)。只是好景不长,医院的电话来了,要求我们晚上一定要住在医院,否则,哼哼…

没法,只好在晚饭后老实回医院。那时我们俩都没有多强的保护意识,去医院的时候还是我骑自行车带着老婆去的,一点没想到万一有什么意外该怎么办(光顾着小夫妻恩爱了,呵呵)。现在想想很有可能那次的自行车之旅,导致晚上的时候小家伙急不可耐地要出来了。

一切似乎都很顺利,晚上老婆要我回家,老姐在医院里陪着,等凌晨再过来。当时想也是次日的手术,应该没事。一晚上没睡着觉,兴奋也有不安,不知我的两个囡囡怎样了。天没亮的时候就起来了,电话同时也来了,我的小家伙居然在我回来之后不久就开始烦躁不安了,急着要出来。急匆匆感到医院,看到了我心爱的老婆,心里真觉得好疼。一晚上的痛已经让她没有力气再说什么了。在那一刻只想把她牢牢的抱着。

有些措手不及,老婆也在这个时候觉得自己来生下宝宝。(现在的她说起来都很自豪,一种不同的感觉,也许有更多的自豪感,可能这点做老爸的无法体会,就像当时的阵痛)从晚上的疼痛开始,一阵阵的阵痛,持续到2日的10点,一个6斤半家伙才真正来到了这个人世间。感谢我的老婆,她带给了我一份新的美好。从怀上小家伙开始,中间经历了好多,但我们毕竟都走了过来。10月的辛苦在那一瞬间都化成了小家伙的一声啼哭。

刚才看到那一组照片,本来是写写当时乐乐的降临的,写着写着,却想到了老婆当时的好多辛苦。老婆一直都很瘦,即使在分娩的时候也只有100多斤,当时很多人都说乐乐肯定不会重的,结果也蛮好。现在最想说的,也还是老婆,你辛苦了。

还想再要个宝宝吗?嘻嘻,还想哦。

重提OTL stream pooling



最近又在提优化的事情,看到很多代码里还是把otl_stream变量的定义放在循环中,不断的构造、解析、析构,效率从何而来啊。也许这不是最主要的问题,但感觉缺少一点考虑,别扭。

其实OTL本身也提供了stream pooling的手段,不过很奇怪为什么公司里都没有在使用。以前我曾做过测试,效果还是不错的。今天又跑了一下,测试结果:

– parse&execute in loop, not using OTL_STREAM_POOLING
2005/06/09 16:11:05 [10001] Dealed 0
2005/06/09 16:11:15 [10001] Dealed 10000
2005/06/09 16:11:26 [10001] Dealed 20000
2005/06/09 16:11:36 [10001] Dealed 30000
2005/06/09 16:11:47 [10001] Dealed 40000

– parse&execute in loop, using OTL_STREAM_POOLING
2005/06/09 16:34:37 [10001] Dealed 0
2005/06/09 16:34:41 [10001] Dealed 10000
2005/06/09 16:34:45 [10001] Dealed 20000
2005/06/09 16:34:48 [10001] Dealed 30000
2005/06/09 16:34:52 [10001] Dealed 40000

– parse once, then execute in loop
2005/06/09 16:35:16 [10001] Dealed 0
2005/06/09 16:35:18 [10001] Dealed 10000
2005/06/09 16:35:21 [10001] Dealed 20000
2005/06/09 16:35:24 [10001] Dealed 30000
2005/06/09 16:35:27 [10001] Dealed 40000

简单的select语句做了10万次,在HP RP8400的机器上,按目前代码的写法每1万条需要11秒,而解析后再执行就只需要3秒,如果使用otl_stream_pooling,可以在不修改现有代码的情况下,效率基本接近先解析,后执行的情况。
一切要做的只是在头文件或Makefile中加入宏定义:
#define OTL_STL
#define OTL_STL_NOSTD_NAMESPACE
#define OTL_STREAM_POOLING_ON

http://otl.sourceforge.net/otl3_stream_pooling.htm

Design by Contract



契约式设计(Design by Contract)

DBC 中的关键考虑是可以通过以下做法实现这个目标:

尽可能准确地规定组件之间的通信。 定义通信过程中的相互责任和预期的结果。

这些相互责任称为 _契约_,用 _断言_检查应用程序是否满足契约。

AOP面向方面的编程

分离关注点、透明性和灵活性

用 AOP 增强契约

LVM

• 要使用 LVM,磁盘必须首先初始化为物理卷(也称为 LVM 磁盘)。
• 初始化一个或多个物理卷之后,将它们分为一个或多个卷组。如果将所有
物理卷视为一个存储池,那么,该存储池的一部分磁盘可以组织成一个卷
组。
• 一个特定磁盘只能属于一个卷组。可创建的卷组的最大数由可配置参数
maxvgs 决定。
• 一个卷组可包含 1 到 255 个物理卷。
• 来自卷组的磁盘空间被划分为逻辑卷。逻辑卷是一种不同的可用磁盘空间
单元。一个卷组最多可包含 255 个逻辑卷。
• 逻辑卷可以只存在于一个磁盘上,也可以存在于许多磁盘上。
• 逻辑卷的磁盘空间可以用于交换、转储、原始数据,或者,也可以在其上
创建文件系统。