Archive for September, 2009

《影响力》是一本好书

影响力
就像其他影响武器一样,它一方面为我们提供了一条思考和行动的捷径,但与此同时,也使我们成了在小径上的投机商袭击的方便目标。
——摘自《影响力》

为了避免自己成为袭击目标,你应该马上去买一本,让它成为你的案头书。
书本排版简洁又不失特点,注意下面的红色部分,
影响力
可见是有意地引导用户去看一个完整的章节,降低直接从某一页开始的概率;

我记得王小波曾经在《我的师承》里这样描述有尊严的文字作者:
因为他们杰出的文学素质和自尊,都不能写作,只能当翻译家。
从这本书的作者身上,我体会到了这种文字的魅力,虽然是一本翻译书,但是遣词用句比很多的原创书要得当。

我每天晚上睡觉前都翻看几页,每次都带来很大的震撼,它解释了我们很多的日常现象。
比如我们经常在街上看到很多的乞丐,面前的地上都放了一些纸币和硬币,这也算是简单地利用了社会认同原理(人通常有追波逐流的特性,人云亦云)还有很多买股票的股民,在没买股票前,他的态度还算客观,但是一当他买了某个股票,他对这个股票就莫名其妙的多了好几倍的信心,总是认为他会涨;但是实际上这个股票的各方面的信息和买之前并未出现大的变动;
书本为这类行为给出了最好的注脚:
我们每一个人都会时不时地欺骗自己,好让我们的信仰或想法与我们已经做出的决定或采取的行为一致。(承诺和一致原理)

另外我觉得本书没有提及的内容是,几大原理之间是可以互相影响的,如社会认同原理是会导致短缺原理,书本的主要原理如下:
1、互惠
2、承诺和一致
3、社会认同
4、喜好
5、权威
6、短缺。




画图工具

写文档的时候经常需要画图,我用的比较多的是visio和rose。但是感觉不是特别好用。后来发现其实office 里的powerpoiont里面的画图挺好用的,画出的图形颜色是自填充的。

昨天下班回家时看到一哥们在画图,感觉画得不错。问了一下,是DIA
今天试用了一下,感觉和gdocs里内置的画图工具手感很像,基本的功能还可以,但是要画出漂亮的图来还是要费一翻周折。一个优点是开源的,free, open source.

欢迎推荐好用的画图工具。




fastdb 共享内存模式下的限制

最近项目中使用了fast db,为了提高访问效率,fast db采用diskless模式编译。
共享内存的最大尺寸受系统参数限制,
下面数据是在Linux im_monitor 2.6.9-42.ELsmp 下的缺省值:
cat /proc/sys/kernel/shmmax
33554432
默认大小都是32M;

同样fastdb里的代码也用32M作为容量上限,而且一旦越界,不再进行扩容;进程退出;
具体的代码行是:inc/database.h 文件里
#ifdef DISKLESS_CONFIGURATION
// In diskless confiuration database can not be reallocated
const size_t dbDefaultInitDatabaseSize = 32*1024*1024;
#else
const size_t dbDefaultInitDatabaseSize = 1024*1024;
#endif

为了支持fastdb在更大的共享内存下工作,需要做两点修改:
1、系统参数的修改
修改 /etc/sysctl.cfg,添加入下内容:
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 1073741824
sysctl -p 执行;
或者echo 1073741824 > /proc/sys/kernel/shmmax ,注意需要加到启动脚本里去;

2、修改fastdb源代码
const size_t dbDefaultInitDatabaseSize = 32*1024*1024;修改为合适的数值;比如32->1024

鉴于共享内存大小限制,以及不能动态扩容:当容量超过限制,进程不能进行再分配,直接退出,对于大容量的系统,对fastdb的数据使用超过2G, 或者总的虚拟内存使用量可能接近3G, 则不建议在32位操作系统中使用共享内存方式的fastdb,可以改用文件方式,实际上对于文件方式,也是通过mmap的方式来实现,对于io的写基本等同于内存效率,且可以在预分配的基础上扩容。