对比 htmlcxx (c++)和 htmlparser(java) :
1. 功能上htmlparser会更强大一些,提供了filter/http下载等能力,还有vistor模式等等,灵活强大;而htmlcxx主要是一个分析库,有html/css两个分析器,可以将内容分析为dom类型的节点树,以提供遍历的能力,还可以分析节点的属性,相比之下也比较灵活;
2. 两者在分析tag方面的能力相差不大,性能上,感觉htmlcxx速度比htmlparser快很多(不知道是不是我的elicpse导致的);
范例:
//htmlcxx_test.cc
tree tr;
HTML::ParserDom parser;
parser.parse(sFileBuffer);
tr = parser.getTree();
tree::iterator it = tr.begin();
(阅读全文…)
在C++Builder中安装Indy 10.2.3详细步骤
作者:Tuuzed(土仔)
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://www.cppblog.com/tuuzed/archive/2008/06/17/53771.html
第一步:下载Indy 10源代码 。
Indy是开源的项目,是由SubVersion来管理版本信息。主页中有给出链接地址:http://www.indyproject.org:8080/svn,进去后一定要注意:不要一个一个文件下载,要通过SubVersion系统的打包程序来打包源代码,防止遗漏或弄错成了测试代码;并只用选择trunk这个目录即可,其他的目录是给调试或测试的人员使用的(主页http://www.indyproject.org/Sockets/Download/IndyviaSubversion.EN.aspx上有说明),见图:

首先在trunk目录前打勾,在toggle右边的下拉框中选择“Download as zip”,按Go!下载源代码,保证是最新的了(看右边目录的时间)
Hunter注:也可以到这个网址下载http://www.indyproject.org/Sockets/wizard/DownloadWizard.EN.aspx
(阅读全文…)
修改 apache log 格式中的 %T 输出格式(从秒修改为微秒)
diff -uprBN –exclude=’*.o’ apache_1.3.33/src/include/httpd.h apache_1.3.33-patch/src/include/httpd.h
— apache_1.3.33/src/include/httpd.h 2004-10-28 00:34:01.000000000 +0800
+++ apache_1.3.33-patch/src/include/httpd.h 2008-08-12 16:14:14.000000000 +0800
@@ -667,6 +667,7 @@ struct request_rec {
const char *hostname; /* Host, as set by full URI or Host: */
time_t request_time; /* When the request started */
+ uint32_t request_time_usec; /* When the request started */
const char *status_line; /* Status line, if set by script */
int status; /* In any case */
(阅读全文…)
依赖管理
在大规模服务中,依赖管理这个话题通常得不到应有的关注。一般的准则是,对于小型组件和服务的依赖关系,对于判断管理它们的复杂性来说,并不足以节约成本。在以下情况中,依赖关系存在重要意义:
1. 被依赖的组件在大小和复杂度上有重要价值;
2. 被依赖的服务在作为单一的中央实例时存在价值。
第一类的例子有存储和一致性算法(consensus algorithm)的实现。第二类的例子包括身份和群组管理系统。这些系统的整体价值在于它们是一个单一且共享的实力,因此使用多实例来避免依赖关系就不是可选方案。
假定要根据上面的标准判断依赖关系,那么用来管理它们的最佳实践有:
◆为延迟做好准备。对外部组件的调用可能需要很长时间才能完成。不要让一个组件或者服务中的延迟在完全不相关的领域中引发延迟;确保所有的交互都存在长度合适的超时时长,避免资源阻塞更长的时间。运营等幂性允许请求在超时后重启,即便这些请求可能已经部分或完全完成。确保所有的重启操作都得到报告,并给重启操作设定界限,从而避免反复故障的请求消耗更多的系统资源。
◆隔离故障。网站的架构必须能防止层叠的故障,要总是“快速失败(fail fast)”。当依赖服务出现故障时,把这些服务标注为停机,并停止使用这些服务,以避免线程因等待故障组件而阻塞。
(阅读全文…)