八 20
转自 IBM developerWorks 中国 Tiny CC
本 文介绍 GNU/Linux 系统上最小的 C 语言编译器 Tiny C 编译器。Tiny C 编译器不仅仅是一个常规意义上的 C 语言编译器,它还使得用户可以像使用脚本语言一样使用 C 语言进行快捷的脚本编程。我们着重介绍用 C 语言进行脚本程序开发的魅力。这个系列将由三篇文章组成,这是第一篇,介绍;在第二篇中,我们将说明如何用标准 C 语言完成通常用 sed 和 awk 完成的字符串处理的工作;在第三篇中,我们将说明 ... (全文...)
八 12
当开丫,另外三盆冒出嫩芽, 奇怪的是有一盆居然挣扎着开出了红色小花,因为隔着远,没看清楚是什么花。雨滴追逐着雨滴,幕式的火炬点燃的时候,我正在公司的角落里跟 iebook 搏斗着——本来闹运开丫,另外三盆冒出嫩芽, 奇怪的是有一盆居然挣扎着开出了红色小花,因为隔着远,没看清楚是什么花。雨滴追逐着雨滴,幕这天是可以不必来公司,可以在家上班的,但为了挣一点零花钱,答应帮别人做一个电子书,于是就不辞辛苦的又赶到公司,从早上11点一直做到晚上10点。
原以为家里的本本太慢,公司的台式机应该会好一些,哪知道 iebook 程序做的那么烂,当页数超过 50 页的时候,就卡的不行了:时不时的报 “out of memory”(程序都没有处理一下报错信息,直接把 window 函数的返回信息给打印了出来),打开一个元素需要30秒,插入一副图片需要50秒,还有无法 ... (全文...)
八 06
传统的文件同步方案有rsync(单向) 和 unison(双向)等,它们需要扫描所有文件后进行比对,差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将非常耗时。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。
之前看了Amazon的Dynamo的设计文档, 它们每个节点的数据是通过Hash Tree来实现同步,既有通过日志来同步的软实时特点(msyql, bdb等),也可以保证最终数据的一致性(rsync, unison等)。Hash Tree的大体思路是将所有数据存储成树状结构,每个节点的Hash是其所有子节点的Hash的Hash,叶子节点的Hash是其 ... (全文...)