2010年七月

source insight看cc文件

source insight是不错的源码阅读工具,不过今天看kfs源码时,发现它不能支持.cc文件,注:(.cc文件与.cpp文件等价)

解决的根本办法:
Options-〉“Document   Options”-〉在“File   filter”   里边加上*.cc

或者   Options-〉Preferences-〉Languages-〉点选C++ Language,然后点击右边“Doc Types”按钮弹出-〉“Document Options”-〉在“File   filter” 里边加上*.cc

要注意   “Document Options”中左边的combo要 选中C++ Language再修改“File filter”



一致性 hash 算法( consistent hashing ) [zz]

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;

1 基本场景

比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ;

hash(object)%N

一切都运行正常,再考虑如下的两种情况;

1 一个 cache 服务器 m down 掉了(在实际应用中必须要考虑这种情况),这样所有映射到 cache m 的对象都会失效,怎么办,需要把 cache m 从 cache 中移除,这时候 cache 是 N-1 台,映射公式变成了 hash(object)%(N-1) ;

2 由于访问加重,需要添加 cache ,这时候 cache 是 N+1 台,映射公式变成了 hash(object)%(N+1) ;

1 和 2 意味着什么?这意味着突然之间几乎所有的 cache 都失效了。对于服务器而言,这是一场灾难,洪水般的访问都会直接冲向后台服务器;

再来考虑第三个问题,由于硬件能力越来越强,你可能想让后面添加的节点多做点活,显然上面的 hash 算法也做不到。

有什么方法可以改变这个状况呢,这就是 consistent hashing… 更多 >



mmap详解[zz]

mmap函数是unix/linux下的系统调用,来看《Unix Netword programming》卷二12.2节有详细介绍。
mmap系统调用并不是完全为了用于共享内存而设计的。它本身提供了不同于一般对普通文件的访问方式,进程可以像读写内存一样对普通文件的操 作。而Posix或系统V的共享内存IPC则纯粹用于共享目的,当然mmap()实现共享内存也是其主要应用之一。
mmap系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再 调用read(),write()等操作。mmap并不分配空间, 只是将文件映射到调用进程的地址空间里, 然后你就可以用memcpy等操作写文件, 而不用write()了.写完后用msync()同步一下, 你所写的内容就保存到文件里了. 不过这种方式没办法增加文件的长度, 因为要映射的长度在调用mmap()的时候就决定了.

简单说就是把一个文件的内容在内存里面做一个映像,内存比磁盘快些。
基本上它是把一个档案对应到你的virtual memory 中的一段,并传回一个指针。
更多 >



Mysql添加用户并授权的方法

添加用户并授权:


(1)添加任何机器都能登录的用户
GRANT ALL PRIVILEGES ON dbName.* TO test@”%” identified by “1111″;

%:代表所有的机器   也可以单独指定某个允许的客户端机器

GRANT ALL PRIVILEGES ON *.* TO ‘bae’@'%’ IDENTIFIED BY ’1111′ with grant option; 有授权权限


(2)添加172.16.184.233机器登录的用户
GRANT ALL ON dbName.* TO test@172.16.184.233 IDENTIFIEDBY “1111″;


(3)添加 一个用户 授 增 删 改 查 的权限。
GRANT SELECT,INSERT,DELETE,UPDATE ON dbName.* TO test@% IDENTIFIEDBY “1111″;



KFS有关编译安装文档

http://www.coder4.com/archives/294

国外一哥们写的:http://cloudpedia.org/install-cloudstore-kosmosfs-0-3/

编译的好郁闷,整了一下午都没过呢



测试用例设计方法

1.概述
Grenford J. Myers在《The Art of Software Testing》一书中提出:一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试,由此可见测试用例设计工作在整个测试过程中的地位,我们不能只凭借一些主观或直观的想法来设计测试用例,应该要以一些比较成熟的测试用例设计方法为指导,再加上设计人员个人的经验积累来设计测试用例,二者相结合应该是非常完美的组合。本文所介绍的测试用例设计方法对于测试设计人员将是一个很好的方法指导,当然看完本文也未必能设计出好的测试用例,有了好的方法作为指导后需要更多的实践经验加以巩固和提炼。只有将测试设计思想与丰富的实践经验相融合才能设计出高质量的测试用例,相信你行!
本文描述的范围:测试用例基本概念、测试用例设计方法、测试用例设计综合策略。

2.测试用例基本概念
2.1.测试用例的定义
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。简单地说,测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且达到程序所设计的执行结果。

2.2.测试用例的特征
1.最有可能抓住错误的;
2.不是重复的、多余的;
3.一组相似测试用例中最有效的;
4.既不是太简单,也不是太复杂。

2.3.测试用例组成元素
1.用例ID; 2.用例名称; 3.测试目的; 4.测试级别; 5.参考信息; 6.测试环境; 7.前提条件; 8.测试步骤; 9.预期结果; 10.设计人员。

2.4.测试用例设计原则
1.测试用例的代表性:能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。
2.测试结果的可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。
3.测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。 更多 >



cmake 简介与用法[zz]

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者 project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

CMake 使用方法

CMake的所有的语句都写在一个叫:CMakeLists.txt 的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对相关 的变量值进行配置。这个命令必须指向CMakeLists.txt所在的目录。配置完成之后,应用cmake命令生成相应的makefile(在Unix like系统下)或者 project文件(指定用window下的相应编程工具编译时)。 更多 >



php中EOF和STR的用法

echo <<<EOF
Your content here.
EOF;
$str=<<<STR Your content here.
STR;
就相当于一个跨行的字符串,和用双引号括起来的字符串一样,只不过里面的双引号就不需要转义了
注意标识符“EOF“、“STR“等必须配对,结束的标识符必须在行首。


     


smarty中date_format函数用法

在php中使用date函数来格式化时间戳,smarty中可以使用date_format来实现
具体用法:{$timestamp|date_fomat:”%Y-%m-%d %H:%M:%S”} 注意:| 两边没有空格
输出形式:2010-07-10 16:30:25

其他用法如下:
{$smarty.now|date_format}
{$smarty.now|date_format:”%A, %B %e, %Y”}
{$smarty.now|date_format:”%H:%M:%S”}
{$yesterday|date_format}
{$yesterday|date_format:”%A, %B %e, %Y”}
{$yesterday|date_format:”%H:%M:%S”}



基于HTTP协议的轻量级开源简单队列服务[转载]

最近一直在看Unix编程的东东,刚好看到这篇开源的消息队列服务,了解学习下

http://blog.s135.com/httpsqs/

附一篇libevent库的用法

http://www.xixis.net/doserver.net//read.php?1904