<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[Antsnet.net]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[人到无求品自高。原创及感觉不错的PHP、AJAX、JS代码收藏库。]]></description>
<link>http://hi.baidu.com/antsnet</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[中国的现状？]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/242e2d73a5b1cf168601b057.html]]></link>
        <description><![CDATA[
		
		中国的现状？<br>
1、ATM取出假钱---&gt;银行无责<br>
2、网上银行被盗---&gt;储户责任<br>
3、银行多给了钱---&gt;储户义务归还<br>
4、银行少给了钱---&gt;离开柜台概不负责<br>
5、ATM机出现故障少给钱---&gt;用户负责<br>
6、ATM机出现故障多给钱---&gt;用户盗窃<br>
7、广东开平银行行长贪污4亿---&gt;判2年<br>
8、ATM多吐7万给老百姓许霆---&gt;判无期<br>
声明：转发不会送人民币，但如果觉得作为消费者，全中国十三亿储户不公平的，请转发 ，有多少群转发多少群<br>
中国现状: <br>
生不起,剖腹一刀五千起;<br>
读不起,选个学校三万起; <br>
住不起,一万多元一平米; <br>
老婆不是娶不起,没房没车谁嫁你?<br>
养不起,父母下岗儿下地;<br>
病不起,药费利润十倍起; <br>
活不起,一月辛劳一千几; <br>
死不起,火化下葬一万几。<br>
总结（八个大字）： 求生不得，求死不能 <a href="http://hi.baidu.com/antsnet/blog/item/242e2d73a5b1cf168601b057.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/242e2d73a5b1cf168601b057.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-28  15:16</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/242e2d73a5b1cf168601b057.html</guid>
</item>

<item>
        <title><![CDATA[中国的房地产一个很有名的笑话]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/c610fe1f9687e100314e15e5.html]]></link>
        <description><![CDATA[
		
		以前，有个地主有很多地，找了很多长
<pre>工干活，地主给长工们盖了一批团结楼住着，一天，地主的谋士对地主说：东家，长工们这几年手上有点钱</pre>
<pre>了，他们住你的房子，每月交租子，不划算，反正他们永远住下去，你干脆把房子卖给他们起个名堂叫做--</pre>
<pre>公房出售！告诉他们房子永远归他们了，可以把他们这几年攒的钱收回来。地主说不错，那租金怎么办？</pre>
<pre>谋士说：照收不误，起个日本名儿，叫物业费！地主很快实行了，赚了好多钱，长工们那个高兴啊！过了</pre>
<pre>几年，地主的村子发展成城镇了，有钱人越来越多，没地方住，谋士对地主说：东家，长工们这几年手上</pre>
<pre>又有钱了，咱们给他们盖新房子，起个名堂叫做旧城改造，他们把手上的钱给我们，我们拆了房子盖新的，</pre>
<pre>叫他们再买回去，可以多盖一些卖给别人，地主又实行了，这次，有些长工们不高兴了，地主的家丁派上</pre>
<pre>用途了，长工们打掉牙只好往肚子里咽，地主又赚了好多钱。又过了几年，地主的村子发展成大城市了，</pre>
<pre>有钱人更多了，地主的土地更值钱了，谋士对地主说：东家，咱们把这些长工的房子拆了，在这个地方建</pre>
<pre>别墅，拆出来的地盖好房子卖给那些有钱的大款还能赚一笔，地主说：长工们不干怎么办？谋士说：咱给</pre>
<pre>他们钱多点儿，起个名堂叫货币化安置，咱再到咱们的猪圈旁边建房子，起个名堂叫经济适用房，给他们</pre>
<pre>修个马车道让他们到那边买房住，地主说：他们钱不够怎么办？谋士说：从咱家的钱庄借钱给他们，一年</pre>
<pre>6分利，咱这钱还能生钱崽，又没风险，地主又实行了，长工们拿到钱，地主的经济适用房到现在才建了</pre>
<pre>一间，长工们只好排队等房子，直到现在，还等着呢。于是，长工们开始闹事了，地主有点慌，忙问谋士</pre>
<pre>怎么办？谋士说：赶紧通知长工们，房子要跌价了，别买了，租房住吧，正好把我们的猪圈租给他们，</pre>
<pre>结果，这么多年后，长工们的钱全没了，还在租房住，直到永远！</pre> <a href="http://hi.baidu.com/antsnet/blog/item/c610fe1f9687e100314e15e5.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/c610fe1f9687e100314e15e5.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-26  13:27</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/c610fe1f9687e100314e15e5.html</guid>
</item>

<item>
        <title><![CDATA[利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/1ccd0ff378e150c20a46e09c.html]]></link>
        <description><![CDATA[
		
		<p>Tokyo Cabinet 是日本人 平林幹雄 开发的一款 DBM 数据库，该数据库读写非常快，哈希模式写入100万条数据只需0.643秒，读取100万条数据只需0.773秒，是 Berkeley DB 等 DBM 的几倍。<br>
--------------------------------------------------------------------------------</p>
<p>Tokyo Tyrant 是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有Memcached兼容协议，也可以通过HTTP协议进行数据交换。</p>
<p>Tokyo Tyrant 加上 Tokyo Cabinet，构成了一款支持高并发的分布式持久存储系统，对任何原有Memcached客户端来讲，可以将Tokyo Tyrant看成是一个Memcached，但是，它的数据是可以持久存储的。这一点，跟新浪的Memcachedb性质一样。</p>
<p>相比Memcachedb而言，Tokyo Tyrant具有以下优势：</p>
<p>1、故障转移：Tokyo Tyrant支持双机互为主辅模式，主辅库均可读写，而Memcachedb目前支持类似MySQL主辅库同步的方式实现读写分离，支持&ldquo;主服务器可读写、辅助服务器只读&rdquo;模式。</p>
<p> </p>
<p>这里使用 $memcache-&gt;addServer 而不是 $memcache-&gt;connect 去连接 Tokyo Tyrant 服务器，是因为当 Memcache 客户端使用 addServer 服务器池时，是根据&ldquo;crc32(key) % current_server_num&rdquo;哈希算法将 key 哈希到不同的服务器的，PHP、C 和 python 的客户端都是如此的算法。Memcache 客户端的 addserver 具有故障转移机制，当 addserver 了2台 Memcached 服务器，而其中1台宕机了，那么 current_server_num 会由原先的2变成1。</p>
<p>引用 memcached 官方网站和 PHP 手册中的两段话：</p>
<p>引用<br>
<a href="http://www.danga.com/memcached/">http://www.danga.com/memcached/</a> <br>
If a host goes down, the API re-maps that dead host's requests onto the servers that are available.</p>
<p><a href="http://cn.php.net/manual/zh/function.Memcache-addServer.php">http://cn.php.net/manual/zh/function.Memcache-addServer.php</a> <br>
Failover may occur at any stage in any of the methods, as long as other servers are available the request the user won't notice. Any kind of socket or Memcached server level errors (except out-of-memory) may trigger the failover. Normal client errors such as adding an existing key will not trigger a failover.</p>
<p> </p>
<p>--------------------------------------------------------------------------------</p>
<p>2、日志文件体积小：Tokyo Tyrant用于主辅同步的日志文件比较小，大约是数据库文件的1.3倍，而Memcachedb的同步日志文件非常大，如果不定期清理，很容易将磁盘写满。</p>
<p><br>
--------------------------------------------------------------------------------</p>
<p>3、超大数据量下表现出色：</p>
<p> </p>
<p>但是，Tokyo Tyrant 也有缺点：在32位操作系统下，作为 Tokyo Tyrant 后端存储的 Tokyo Cabinet 数据库单个文件不能超过2G，而64位操作系统则不受这一限制。所以，如果使用 Tokyo Tyrant，推荐在64位CPU、操作系统上安装运行。</p>
<p><br>
--------------------------------------------------------------------------------</p>
<p>一、安装<br>
1、首先编译安装tokyocabinet数据库</p>
<p>wget <a href="http://blog.s135.com/soft/linux/memcached/tokyocabinet-1.3.1.tar.gz">http://blog.s135.com/soft/linux/memcached/tokyocabinet-1.3.1.tar.gz</a><br>
tar zxvf tokyocabinet-1.3.1.tar.gz<br>
cd tokyocabinet-1.3.1/<br>
./configure<br>
make<br>
make install<br>
cd ../</p>
<p><br>
2、然后编译安装tokyotyrant</p>
<p>wget <a href="http://blog.s135.com/soft/linux/memcached/tokyotyrant-1.0.0.tar.gz">http://blog.s135.com/soft/linux/memcached/tokyotyrant-1.0.0.tar.gz</a><br>
tar zxvf tokyotyrant-1.0.0.tar.gz<br>
cd tokyotyrant-1.0.0/<br>
./configure<br>
make<br>
make install<br>
cd ../</p>
<p> </p>
<p>--------------------------------------------------------------------------------</p>
<p>二、配置<br>
1、创建tokyotyrant数据文件存放目录</p>
<p>mkdir -p /ttserver/</p>
<p><br>
2、启动tokyotyrant的主进程（ttserver）<br>
(1)、单机模式</p>
<p>ulimit -SHn 51200<br>
ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch</p>
<p><br>
(2)、双机互为主辅模式<br>
服务器192.168.1.91：</p>
<p>ulimit -SHn 51200<br>
ttserver -host 192.168.1.91 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 91 -mhost 192.168.1.92 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch</p>
<p><br>
服务器192.168.1.92：</p>
<p>ulimit -SHn 51200<br>
ttserver -host 192.168.1.92 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 92 -mhost 192.168.1.91 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch</p>
<p><br>
(3)、参数说明<br>
ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [dbname]</p>
<p>-host name : 指定需要绑定的服务器域名或IP地址。默认绑定这台服务器上的所有IP地址。<br>
-port num : 指定需要绑定的端口号。默认端口号为1978 <br>
-thnum num : 指定线程数。默认为8个线程。 <br>
-tout num : 指定每个会话的超时时间（单位为秒）。默认永不超时。 <br>
-dmn : 以守护进程方式运行。<br>
-pid path : 输出进程ID到指定文件（这里指定文件名）。<br>
-log path : 输出日志信息到指定文件（这里指定文件名）。<br>
-ld : 在日志文件中还记录DEBUG调试信息。<br>
-le : 在日志文件中仅记录错误信息。<br>
-ulog path : 指定同步日志文件存放路径（这里指定目录名）。<br>
-ulim num : 指定每个同步日志文件的大小（例如128m）。<br>
-uas : 使用异步IO记录更新日志（使用此项会减少磁盘IO消耗，但是数据会先放在内存中，不会立即写入磁盘，如果重启服务器或ttserver进程被kill掉，将导致部分数据丢失。一般情况下不建议使用）。<br>
-sid num : 指定服务器ID号（当使用主辅模式时，每台ttserver需要不同的ID号） <br>
-mhost name : 指定主辅同步模式下，主服务器的域名或IP地址。<br>
-mport num : 指定主辅同步模式下，主服务器的端口号。<br>
-rts path : 指定用来存放同步时间戳的文件名。</p>
<p>如果使用的是哈希数据库，可以指定参数&ldquo;#bnum=xxx&rdquo;来提高性能。它可以指定bucket存储桶的数量。例如指定&ldquo;#bnum=1000000&rdquo;，就可以将最新最热的100万条记录缓存在内存中：</p>
<p>ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch#bnum=1000000</p>
<p><br>
如果大量的客户端访问ttserver，请确保文件描述符够用。许多服务器的默认文件描述符为1024，可以在启动ttserver前使用ulimit命令提高这项值。例如：</p>
<p>ulimit -SHn 51200</p>
<p><br>
3、停止tokyotyrant（ttserver）</p>
<p>ps -ef | grep ttserver</p>
<p>找到ttserver的进程号并kill，例如：</p>
<p>kill -TERM 2159</p>
<p> </p>
<p>--------------------------------------------------------------------------------</p>
<p>三、调用<br>
1、任何Memcached客户端均可直接调用tokyotyrant。</p>
<p>2、还可以通过HTTP方式调用，下面以Linux的curl命令为例，介绍如何操作tokyotyrant：<br>
(1)、写数据，将数据&ldquo;value&rdquo;写入到&ldquo;key&rdquo;中：</p>
<p>curl -X PUT <a href="http://127.0.0.1:11211/key">http://127.0.0.1:11211/key</a> -d &quot;value&quot;</p>
<p><br>
(2)、读数据，读取&ldquo;key&rdquo;中数据：</p>
<p>curl <a href="http://127.0.0.1:11211/key">http://127.0.0.1:11211/key</a></p>
<p><br>
(3)、删数据，删除&ldquo;key&rdquo;：</p>
<p>curl -X DELETE <a href="http://127.0.0.1:11211/key">http://127.0.0.1:11211/key</a></p> <a href="http://hi.baidu.com/antsnet/blog/item/1ccd0ff378e150c20a46e09c.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/1ccd0ff378e150c20a46e09c.html#comment">查看评论</a>]]></description>
        <pubDate>2009-06-29  11:20</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/1ccd0ff378e150c20a46e09c.html</guid>
</item>

<item>
        <title><![CDATA[开源性能测试工具 - Apache ab 介绍(02)]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/d7c249908c485784a877a47c.html]]></link>
        <description><![CDATA[
		
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 28.1pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 14.05pt"><strong><span style="font-size: 14pt; mso-ascii-: 12.0pt">更多信息</span></strong></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>ab</span><span>不像</span><span>LR</span><span>那么强大，但是它足够轻便，如果只是在开发过程中想检查一下某个模块的响应情况，或者做一些场景比较简单的测试，</span><span>ab</span><span>还是一个不错的选择&mdash;&mdash;至少不用花费很多时间去学习</span><span>LR</span><span>那些复杂的功能，就更别说那</span><span>License</span><span>的价格了。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>下面是</span><span>ab</span><span>的详细参数解释，大家有兴趣的可以研究一下：</span></p>
<p style="margin-bottom: 0pt; margin-left: 18pt; margin-right: 1.3pt"><strong><span style="font-size: 10.5pt; color: #003366">ab</span></strong><code><span style="font-size: 10.5pt; color: #003366">[ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">A</span></strong><var><span style="font-size: 10.5pt; color: #003366">auth-username</span></var><code><span style="font-size: 10.5pt; color: #003366">:</span></code><var><span style="font-size: 10.5pt; color: #003366">password</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">c</span></strong><var><span style="font-size: 10.5pt; color: #003366">concurrency</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">C</span></strong><var><span style="font-size: 10.5pt; color: #003366">cookie-name</span></var><code><span style="font-size: 10.5pt; color: #003366">=</span></code><var><span style="font-size: 10.5pt; color: #003366">value</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">d</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">e</span></strong><var><span style="font-size: 10.5pt; color: #003366">csv-file</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">g</span></strong><var><span style="font-size: 10.5pt; color: #003366">gnuplot-file</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">h</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">H</span></strong><var><span style="font-size: 10.5pt; color: #003366">custom-header</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">i</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">k</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">n</span></strong><var><span style="font-size: 10.5pt; color: #003366">requests</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">p</span></strong><var><span style="font-size: 10.5pt; color: #003366">POST-file</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">P</span></strong><var><span style="font-size: 10.5pt; color: #003366">proxy-auth-username</span></var><code><span style="font-size: 10.5pt; color: #003366">:</span></code><var><span style="font-size: 10.5pt; color: #003366">password</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">q</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">s</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">S</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">t</span></strong><var><span style="font-size: 10.5pt; color: #003366">timelimit</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">T</span></strong><var><span style="font-size: 10.5pt; color: #003366">content-type</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">v</span></strong><var><span style="font-size: 10.5pt; color: #003366">verbosity</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">V</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">w</span></strong><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">x</span></strong><var><span style="font-size: 10.5pt; color: #003366">&lt;table&gt;-attributes</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">X</span></strong><var><span style="font-size: 10.5pt; color: #003366">proxy</span></var><code><span style="font-size: 10.5pt; color: #003366">[:</span></code><var><span style="font-size: 10.5pt; color: #003366">port</span></var><code><span style="font-size: 10.5pt; color: #003366">] ] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">y</span></strong><var><span style="font-size: 10.5pt; color: #003366">&lt;tr&gt;-attributes</span></var><code><span style="font-size: 10.5pt; color: #003366">] [ -</span></code><strong><span style="font-size: 10.5pt; color: #003366">z</span></strong><var><span style="font-size: 10.5pt; color: #003366">&lt;td&gt;-attributes</span></var><code><span style="font-size: 10.5pt; color: #003366">] [http://]</span></code><var><span style="font-size: 10.5pt; color: #003366">hostname</span></var><code><span style="font-size: 10.5pt; color: #003366">[:</span></code><var><span style="font-size: 10.5pt; color: #003366">port</span></var><code><span style="font-size: 10.5pt; color: #003366">]/</span></code><var><span style="font-size: 10.5pt; color: #003366">path</span></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"> </p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt; text-align: left; mso-pagination: widow-orphan" align="left"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-A</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">auth-username</span></strong></var><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">:</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">password</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Supply BASIC Authentication credentials to the server. The username and password are separated by a single</span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">:</span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">and sent on the wire base64 encoded. The string is sent regardless of whether the server needs it (<em>i.e.</em>, has sent an 401 authentication needed).</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">(支持基本身份验证，用户名和密码用&ldquo;：&rdquo;隔开，并且以base64编码发送，不管是服务器需不需要。（例如401验证需要的）)</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-c</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">concurrency</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Number of multiple requests to perform at a time. Default is one request at a time.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（同时发送多重请求，默认是一次）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-C</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">cookie-name</span></strong></var><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">=</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">value</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Add a</span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">Cookie:</span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">line to the request. The argument is typically in the form of a</span><var><span style="color: #003366; mso-bidi-font-size: 10.5pt">name</span></var><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">=</span></code><var><span style="color: #003366; mso-bidi-font-size: 10.5pt">value</span></var><span style="color: #003366; mso-bidi-font-size: 10.5pt">pair. This field is repeatable.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（添加cookie：成行的请求，参数代表表单中的 name=value，字段可以重复）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-d</span></strong></code></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Do not display the &quot;percentage served within XX [ms] table&quot;. (legacy support).</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（不显示&ldquo;发送的百分比在 xx 表格中&rdquo;（依然支持））</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-e</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">csv-file</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Write a Comma separated value (CSV) file which contains for each percentage (from 1% to 100%) the time (in milliseconds) it took to serve that percentage of the requests. This is usually more useful than the 'gnuplot' file; as the results are already 'binned'.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（把请求的时间从1%到100%以毫秒的形式写入到一个以逗号隔开的CSV文件中，通常比'gnuplot'文件更有用；）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-g</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">gnuplot-file</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Write all measured values out as a 'gnuplot' or TSV (Tab separate values) file. This file can easily be imported into packages like Gnuplot, IDL, Mathematica, Igor or even Excel. The labels are on the first line of the file.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（将所有估计的值输出到gnuplot或者是以tab间隔的TSV文件，这种文件很容易就导入到包里边，像Gnuplot、IDL、Mathematica、Igor或者even Excel，文件的第一行为标签。）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-h</span></strong></code></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Display usage information.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（显示使用信息）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-H</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">custom-header</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Append extra headers to the request. The argument is typically in the form of a valid header line, containing a colon-separated field-value pair (<em>i.e.</em>,</span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">&quot;Accept-Encoding: zip/zop;8bit&quot;</span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">).<br>
（附加额外的头部信息到请求中，参数是典型表单中的正确的头一行。）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-i</span></strong></code></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Do </span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">HEAD </span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">requests instead of </span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">GET</span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（将GET以头部请求的方式替代）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-k</span></strong></code></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Enable the HTTP Keep Alive feature,<em>i.e.</em>, perform multiple requests within one HTTP session. Default is no KeepAlive.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（开启保持HTTP在线状态，用一个HTTP session执行多个请求，默认是不在线；）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-n</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">requests</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Number of requests to perform for the benchmarking session. The default is to just perform a single request which usually leads to non-representative benchmarking results.<br>
（大量的请求都会以session基准，默认的只是单纯的执行请求，不会有基准的结果。）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-p</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">POST-file</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">File containing data to POST.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（将文件的内容作为POST的数据）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-P</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">proxy-auth-username</span></strong></var><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">:</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">password</span></strong></var></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Supply BASIC Authentication credentials to a proxy en-route. The username and password are separated by a single</span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">:</span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">and sent on the wire base64 encoded. The string is sent regardless of whether the proxy needs it (<em>i.e.</em>, has sent an 407 proxy authentication needed).</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（为代理提供基本身份验证，用户名和密码都以&ldquo;：&rdquo;隔开，发送的时候以base64编码，不管代理需不需要。例如：发送一个407验证）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-q</span></strong></code></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">When processing more than 150 requests,</span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">ab</span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">out puts a progress count on </span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">stder r</span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">every 10% or 100 requests or so. The</span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-q </span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">flag will suppress these messages.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（当处理超过150个请求，会将请求输出为百分之10到100%，-q参数会压缩这些信息）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-s</span></strong></code></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">When compiled in (</span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">ab -h </span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">will show you) use the SSL protected </span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">https </span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">rather than the </span><code><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">http </span></code><span style="color: #003366; mso-bidi-font-size: 10.5pt">protocol. This feature is experimental and <em>very </em>rudimentary. You probably do not want to use it.</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（当编制SSL请求、HTTP请求，倒不如用http协议，实验表明是非常基础的，你可能不会像用它。）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-S</span></strong></code></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">Do not display the median and standard deviation values, nor display the warning/error messages when the average and median are more than one or two times the standard deviation apart. And default to the min/avg/max values. (legacy support).</span></p>
<p class="MsoNormal" style="margin: 0cm 1.3pt 0pt 18pt; line-height: 15.6pt"><span style="color: #003366; mso-bidi-font-size: 10.5pt">（不显示中间和和标准偏差的值，也不显示警告和错误信息，当平均的和中间值比一个或者两个标准偏差值差距太大，默认显示最小、平均、最大值。）</span></p>
<p class="MsoNormal" style="margin: 6pt 1.3pt 0pt 18pt; line-height: 15.6pt"><code><strong><span style="font-size: 12pt; color: #003366; mso-bidi-font-size: 10.5pt">-t</span></strong></code><var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt">timelimit</span></strong></var><strong><span style="color: #003366; mso-bidi-font-size: 10.5pt"> </span></strong></p> <a href="http://hi.baidu.com/antsnet/blog/item/d7c249908c485784a877a47c.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/d7c249908c485784a877a47c.html#comment">查看评论</a>]]></description>
        <pubDate>2009-06-26  17:50</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/d7c249908c485784a877a47c.html</guid>
</item>

<item>
        <title><![CDATA[开源性能测试工具 - Apache ab 介绍(01)]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/dcd290136b34ee896438db73.html]]></link>
        <description><![CDATA[
		
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span><a target="_self" href=":;"><u><strong><font color="#000000">开源</font></strong></u></a>工具通常都是为了某个特定的目的而开发出来的，所以如果想找到一个开源的性能测试工具去与</span><span>LoadRunner</span><span>或者</span><span>QALoad</span><span>之类去比较，实在有些勉强。但是开源工具也有它自己的优势：小巧、轻便，在自己擅长的领域可以提供优秀的解决方案。所以，我们可以考虑准备一个自己的&ldquo;开源测试工具箱&rdquo;，平时利用空闲时间了解各种工具所适用的环境和目的，知识慢慢积累下来以后，就可以在遇到问题时顺手拈来</span><span><a href="http://jackei.cnblogs.com/"><span><font color="#000000">，</font></span></a></span><span>轻松化解</span><span>^_^<br>
</span><span><strong><span style="font-size: 14pt; mso-ascii-: 12.0pt">简介</span></strong></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>ab</span><span>的全称是</span><span>ApacheBench</span><span>，</span><span>是</span><span><a target="_self" href=":;"><u><strong><font color="#000000">Apache</font></strong></u></a></span><span>附带的一个小工具</span><span>，</span><span>专门用于</span><span>HTTP Server</span><span>的</span><span style="mso-bidi-font-size: 10.5pt">benchmark testing</span><span style="mso-ascii-: 10.5pt">，</span><span style="mso-ascii-: 10.5pt">可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试，看起来也不错，很简单，也很容易使用，所以今天花一点时间看了一下。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="mso-ascii-: 10.5pt">通过下面的一个简单的例子和注释，相信大家可以更容易理解这个工具的使用。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 28.1pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 14.05pt"><strong><span style="font-size: 14pt; mso-ascii-: 12.0pt">一个简单的例子</span></strong></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">在这个例子的一开始，我执行了这样一个命令</span><span style="color: red"><strong><span>ab -n 10 -c 10<a href="http://www.google.com/"><span style="color: red">http://www.google.com/</span></a></span></strong></span><strong><span style="color: red">。</span></strong><span style="color: red">这个命令的意思是启动</span><span style="color: red">ab</span><span style="color: red">，向<a href="http://www.google.com/"><font color="#000000">www.google.com</font></a>发送10个请求(-n 10)</span><span style="color: red"><span> </span></span><span style="color: red">，并每次发送10个请求</span><span style="color: red">(-c 10)&mdash;&mdash;也就是说一次都发过去了</span><span style="color: red">。跟着下面的是</span><span style="color: red">ab</span><span style="color: red">输出的测试报告，红色部分是我添加的注释。</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>C:\Program Files\Apache Software Foundation\Apache2.2\bin&gt;<strong>ab -n 10 -c 10 http</strong></span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21.1pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.55pt"><strong><span>://www.google.com/</span></strong></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>This is ApacheBench, Version 2.0.40-dev &lt;$Revision: 1.146 $&gt; apache-2.0</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"> </p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Benchmarking www.google.com (be patient).....done</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"> </p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"> </p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Server Software:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>GWS/2.1</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Server Hostname:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>www.google.com</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Server Port:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>80</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"> </p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Document Path:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Document Length:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>230 bytes</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"> </p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Concurrency Level:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>10</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">整个测试持续的时间</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Time taken for tests:<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3.234651 seconds</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">完成的请求数量</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Complete requests:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>10</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">失败的请求数量</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Failed requests:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>0</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Write errors:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>0</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Non-2xx responses:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>10</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Keep-Alive requests:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>10</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">整个场景中的<a target="_self" href=":;"><u><strong><font color="#000000">网络</font></strong></u></a>传输量</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Total transferred:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>6020 bytes</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">整个场景中的</span><span style="color: red"><a target="_self" href=":;"><u><strong><font color="#000000">HTML</font></strong></u></a></span><span style="color: red">内容传输量</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>HTML transferred:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>2300 bytes</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">大家最关心的指标之一，相当于</span><span style="color: red">LR</span><span style="color: red">中的</span><strong><span style="color: red">每秒事务数</span></strong><span style="color: red">，后面括号中的</span><span style="color: red">mean</span><span style="color: red">表示这是一个平均值</span><span style="color: red">*<a href="http://jackei.cnblogs.com/archive/2006/07/18/454144.html"><font color="#000000">/</font></a></span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Requests per second:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>3.09 [#/sec] (mean)</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">大家最关心的指标之二，相当于</span><span style="color: red">LR</span><span style="color: red">中的</span><strong><span style="color: red">平均事务响应时间</span></strong><span style="color: red">，后面括号中的</span><span style="color: red">mean</span><span style="color: red">表示这是一个平均值</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Time per request:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>3234.651 [ms] (mean)</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">这个还不知道是什么意思，有知道的朋友请留言，谢谢</span><span style="color: red">^_^ */</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Time per request:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>323.465 [ms] (mean, across all concurrent requests)</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">平均每秒网络上的流量，可以帮助排除是否存在网络流量过大导致响应时间延长的问题</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Transfer rate:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>1.55 [Kbytes/sec] received</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">网络上消耗的时间的分解，各项数据的具体算法还不是很清楚</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Connection Times (ms)</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>min<span style="mso-spacerun: yes"> </span>mean[+/-sd] median<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>max</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Connect:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>20<span style="mso-spacerun: yes"> </span>318 926.1<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</span>30<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>2954</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Processing:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>40 2160 1462.0<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3034<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>3154</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Waiting:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>40 2160 1462.0<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3034<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>3154</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Total:<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>60 2479 1276.4<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3064<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>3184</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"> </p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span style="color: red">/*</span><span style="color: red">下面的内容为整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间，其中</span><span style="color: red">50</span><span style="color: red">％</span><span style="color: red">的用户响应时间小于</span><span style="color: red">3064</span><span style="color: red">毫秒，</span><span style="color: red">60</span><span style="color: red">％</span><span style="color: red">的用户响应时间小于</span><span style="color: red">3094</span><span style="color: red">毫秒，最大的响应时间小于</span><span style="color: red">3184</span><span style="color: red">毫秒</span><span style="color: red">*/</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>Percentage of the requests served within a certain time (ms)</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>50%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3064</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>66%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3094</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>75%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3124</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>80%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3154</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>90%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3184</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>95%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3184</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>98%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3184</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>99%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3184</span></p>
<p class="MsoNormal" style="background: #d9d9d9; margin: 0cm 0cm 0pt; text-indent: 21pt; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><span>100%<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>3184 (longest request)</span></p> <a href="http://hi.baidu.com/antsnet/blog/item/dcd290136b34ee896438db73.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/dcd290136b34ee896438db73.html#comment">查看评论</a>]]></description>
        <pubDate>2009-06-26  17:49</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/dcd290136b34ee896438db73.html</guid>
</item>

<item>
        <title><![CDATA[知识经典 30个必须知道的网站可用性问题]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/bfcab0dec25c3350cdbf1ace.html]]></link>
        <description><![CDATA[
		
		<p>你不必在每件事情上取得别人的同意。作为一个专业的Web开发人，你是你访客爱好和需求的倡导者；你必须坚持你对良好的用户体验的理解，确保在复杂的网站架构下你的访客仍可能找到他们的路径。这意味着在与用户和同事讨论时，你必须能够坚持你的立场，有效地传达自己的想法。事实上，你的工作就是妥协处理错误的思想和误导的概念，而不是盲从它们。</p>
<p>在这种境况下，没有任何东西可以帮助你，除了和你工作中根本问题相关的深刻知识。但是，即使你知道这些知识，重要的是你还要知道如何称呼这些概念，如何在讨论中用到它们。此外，准备一些你可能需要的准确术语在手边作为论据，对你的讨论也是有帮助的。</p>
<p>在这篇文章，我们陈述了30个通常被遗忘、忽略和误解的重要的可用性问题、术语、规则和原则。可读性（readability）和易读性（legibility）有什么区别？究竟80/20和帕累托原则是什么意思？扫雷与满意度是什么意思？逐步强化和优雅降级又是什么？OK，是时候深入了。</p>
<p><strong>一、可用性：规则和原则</strong></p>
<p>7±2 原则</p>
<p>由于人类大脑处理信息的能力有限，它会将复杂信息划分成块和小的单元。根据乔治A米勒（George A. Miller）的研究，人类短期记忆一般一次只能记住5-9个事物。这一事实经常被用来作为限制导航菜单选项到7个的论据；然而关于神奇的&ldquo;7，加2或者减2&rdquo;还是引起了激烈的讨论。因此目前还不清楚是否7±2原则能、可能或应该应用到web中。米勒的研究</p>
<p>2秒原则</p>
<p>一个松散的原则，即用户没有必要对某些系统响应等待2秒以上的时间，比如应用程序转换和开始的响应时间。选择2秒有点武断，但确是一个合理的数量级。可靠的原则就是：用户等待时间越少，用户体验越好。</p>
<p>3次点击原则</p>
<p>根据这个原则，如果用户在3次点击中无法找到信息和完成网站功能时，用户就会停止使用这个网站。换句话说，这个原则强调明确的导航，逻辑架构和后续站点的层次结构。在大多数情况下，点击的次数是无关紧要的；真正重要的是，游客总是能知道他们现在在哪，他们去过哪，他们接着将会去哪。如果用户感觉他们对该系统如何运作有个充分的了解的话，甚至10次点击，用户都会觉得OK。</p>
<p>80/20原则（帕累托原则）</p>
<p>帕累托原则（也被称为重要少数法则和因素稀疏原则）指出，80%的效应来自20%的原因。这是商业中的基本经验法则（&ldquo;80%的销售额来自20%的顾客&rdquo;），但也可以应用于设计和可用性。举例来说，我们可以通过确定那些贡献80%利润的20 ％的用户、客户、活动、产品或程序，并最大限度地注意对他们适用，来显著提高效应。</p>
<p>作为接口设计研究的成果， Ben Shneiderman提出并收集了一些从经验中启发而来，适用于大多数交互系统的原则。这些原则适用于用户接口设计，也适用于网页设计。</p>
<p>1. 争取保持一致性</p>
<p>2. 为老用户提供可用的快捷方式</p>
<p>3. 提供有益的反馈</p>
<p>4. 设计结束功能的对话框</p>
<p>5. 提供简单的错误处理</p>
<p>6. 允许简单的逆转功能</p>
<p>7. 提供控制感。支持内部控制点</p>
<p>8. 减少短期记忆</p>
<p>您可以在维基百科： Shneiderman的规则设计中了解更多关于设计中的Shneiderman规则。</p>
<p>费茨定律</p>
<p>由保罗费茨（Paul Fitts）发表于1954年，费茨定律模拟了人类活动，以目标距离和目标规模大小为函数，预测了迅速移动到目标区所需时间。该法通常应用到鼠标的移动，访客就必须从A点移动到B点。例如，这个规则对于如何放置内容区域，以更实用的方式，最大化内容可及性和提高内容点击率，是非常重要的。</p>
<p>倒金字塔</p>
<p>倒金字塔是一种在文章开头表达总结文字的写作风格。这种方式使用了新闻业中著名的&ldquo;瀑布效应&rdquo;，新闻作者试图让他们的读者即时知道他们的报道的主题。文章以总结开头，接着是关键点，最后那些次要的细节，如背景资料。由于网络用户需要即时的满足，这种倒金字塔写作风格，对于网络写作和更好的用户体验是非常重要的。就像尼尔森的支持</p>
<p>满意</p>
<p>网络用户不喜欢用最佳方式找到他们寻找的信息。他们对最合理和最健全的解决问题方案不感兴趣。相反，他们永远扫描他们认为&ldquo;足够好&rdquo;的quick&lsquo;n&rsquo;dirty解决方案。在网络中，这种方式准确地描述了用户的满意：用户使用一个&ldquo;足够好&rdquo;的方案解决问题&mdash;&mdash;即时在长远看来一些替代方案能够更好地满足他们的要求。</p>
<p><strong>二、可用性背后的心理学</strong></p>
<p>婴儿鸭综合症</p>
<p>婴儿鸭综合症描述了游客倾向忠于他们记住的最初设计，并且通过与最初设计的相似度来判断其他的设计。其结果是，用户通常倾向于那些与他们记住的最初设计相类似的设计，不喜欢陌生的系统。这些可用性问题是很多系统重新设计时存在的：用户，习惯了以前的设计，对新的网站架构会感到不舒服，他们必须找到自己的方式去使用网站。</p>
<p>无视广告</p>
<p>网络用户具有忽视一切看起来像广告的东西，有趣的是，他们非常擅于这。虽然广告是被注意到了，但几乎一直是被忽略的。由于用户已经为网站上不同的任务构建了相关联的图式，在网站上搜索特定的信息时，他们只将注意力集中在网页的部分区域，就是那些他们认为可能是相关信息的地方，也就是，小文本和超链接。在这个例子中，大的色彩缤纷的地方或动画横幅广告和其他的图形是被忽略的。</p>
<p>扣人心弦效应（蔡加尼克效应）</p>
<p>人类无法忍受不确定性。我们倾向于对感兴趣的、未回答的问题尽快找到答案。扣人心弦效应就是基于这一事实的；扣人心弦的电影，文章和情节总是有出其不意的结果，往往总是以一个突然的震惊启示或者困难的局面离开。这种效应经常用在广告上：广告主往往通过要求游客解答刺激的问题，来迫使他们阅读广告，点击横幅广告或者跟进一个链接。</p>
<p>扣人心弦效应由布鲁玛 W. 蔡加尼克（Bluma W.Zeigarnik）在1927年发现，这个效应在读者间建立了情感联系，在营销学中极其有影响力。游客们可以更好地记住是什么广告，甚至是最小的细节都能记得更清晰确切。在web写作中，扣人心弦效应也被用来吸引游客进入网站。（如&ldquo;抓取我们的RSS-Feed，以确保您不会错过文章的第二部分！&rdquo;）。</p>
<p>视知觉的格式塔原则</p>
<p>这些原则是人机交互设计心理方面的基本原则。</p>
<p>接近法则认为，当我们知觉物体归类时时，易于把相近的物体归于一组。</p>
<center><img style="cursor: pointer" title="请使用鼠标滚轮缩放图片!" alt="323×240" width="323" height="240" src="http://www.chinaz.com/upimg/allimg/090312/1533560.gif"> </center>
<p>MTV音乐颁奖的接近法则的真实例子。 来源。</p>
<p>相似法则指当内容元素彼此相似的时候我们会感知它们为一组。</p>
<p>Pr&auml;gnanz法则（图像-背景）指在知觉某个的视野时，一些物体（图像）看起来突显了出来，视野中的其他东西则消退到背景中。</p>
<center><img width="100" src="http://www.chinaz.com/upimg/allimg/090312/1533561.gif"> </center>
<p>苹果机的标志可以被看作是一个正规笑脸和一个侧面欢喜的脸庞（看着计算机屏幕）来源</p>
<p>对称性法则指我们在知觉物体时倾向于把物体知觉为一个中心周边对称的形状。</p>
<p>连贯性法则指我们倾向于知觉联贯或连续流动的形式，而不是断裂或都不连续的形式，事实上它们并不连贯。</p>
<center><img style="cursor: pointer" title="请使用鼠标滚轮缩放图片!" alt="154×69" width="154" height="69" src="http://www.chinaz.com/upimg/allimg/090312/1533562.gif"> </center>
<p>我们知觉到字母&lsquo;I&rsquo;，&lsquo;B&rsquo;，和&lsquo;M&rsquo;，虽然我们事实上看到的形状，只有几行不同长度的白色空格彼此空悬。来源</p>
<p>你可以在视知觉的格式塔文章中找到更多信息</p>
<p>自我参照效应</p>
<p>自我参照效应在网络写作中尤其重要，可以显著改善作者和读者之间的沟通。与我们个人观念相联系的事物要比那些和我们没有直接联系的事物记得更清楚。例如，阅读一篇文章后，用户能更好地记得他们个人经验中相关的人物，故事或事实。在可用性中自我参照效应通常被用在网络写作的表达和网站内容陈述。</p>
<p><strong>三、可用性术语表： 术语和概念</strong></p>
<p>眼球追踪</p>
<p>眼球追踪是测量我们凝视的点（我们看着的地方）或者相对于头部来说眼睛移动的过程。眼球追踪监测记录眼球每次的运动，并在网站最活跃的区域高光显示。眼球追踪研究可以帮助估计浏览网站的用户是否舒适地使用网站，以及他们理解网站背后的架构和系统有多快。在最近的眼球追踪研究Eyetrack07中，你可以找到一些有趣的可用性结果。</p>
<center><img style="cursor: pointer" title="请使用鼠标滚轮缩放图片!" alt="500×475" width="500" height="475" src="http://www.chinaz.com/upimg/allimg/090312/1533563.jpg"></center>
<div align="left">折叠位置（Fold）</div>
<p>折叠位置是指一个网站在屏幕上可见区域的最下方位置。当然折叠的位置也取决于你访客的屏幕分辨率。网页可见区域（也称为screenful）是指网页上不需要拉动滚动条就能看到的区域。既然折叠位置是不需要滚动就能看到，它常常被视为可能可以保证最高广告点击率和利润的区域。然而，折叠位置并没有那么重要。</p>
<p>中心凹视（中心凹区）</p>
<p>中央窝，人类眼睛的一部分，负责敏锐的中央视力，对于人类在阅读、看电视或电影、驾驶以及其他任何需要高度注意视觉细节的活动中，是非常必要的。中央窝是你的眼睛在瞄准时的一块小范围空间，它是你可以感知最高级别细节的唯一地方。中心凹区相当于两度视野或者放在你眼前的两个缩略图大小的紧密区域。这是你为游客传递最重要信息的地方。</p>
<p>中心凹视是非常重要的，因为在这个宽屏区域外你的访客如何看你的网页变化非常大。在这部分区域内，是你的视线注意力最大的唯一区域&mdash;&mdash;只有在这里没有眼睛扫描是必要的。</p>
<p>注释</p>
<p>注释是一个自动的行为，它在链接链向的地方和用户一旦点击会链向的地方提供提示和摘要信息。提示可通过链接的标题特征来提供。从可用性的角度来看，用户希望有充分控制一切正在发生在网站上的事情的权利；清晰和准确的内外部链接解释，合理的连接源头标签，都可以提高一个网站的可用性。</p>
<p>优雅降级（容错系统）</p>
<p>优雅降级是指一个网站即使在它的部件（部分或完全）已经无法显示或者无效的情况下还能展示内容和基本的功能的这种能力。在实践中这意味着网站在每一个可能&ldquo;过失&rdquo;的情况下显示内容，可在用户可能的每种配置下（浏览器、插件、连接、操作系统等等）被使用。为&ldquo;骨灰级用户&rdquo;提供的仍然是丰富的、增强的页面版本。例如，典型地为多媒体内容提供可替代的显示，以确保在图片无法显示的时候内容仍然可以感知。</p>
<p>粒度</p>
<p>粒度是指一个大的、复杂的数据集或信息分成何种程度的更小的单位。</p>
<p>热区</p>
<p>热区是网站可点击的区域，一旦被点击时会改变它们的形式或者/和外观、这是典型的：当链接或者任何其他网站元素被点击时的焦点效应。</p>
<center><img style="cursor: pointer" title="请使用鼠标滚轮缩放图片!" alt="497×214" width="497" height="214" src="http://www.chinaz.com/upimg/allimg/090312/1533564.jpg?v=0"> <br>
</center>
<div align="left">易读性（Legibility）</div>
<div align="left">易读性是指文章在视觉上是否明确。</div>
<div align="left">扫雷</div>
<div align="left">扫雷是指那些要确定网站链接的用户与网站的交互大多数情况下。在大多数情况下，扫雷是可用性问题中一个明确的警报信号。通常扫雷涉及用户在网页上快速移动光标或者指针，注视光标或指针在哪里有显示链接的变化。</div>
<div align="left">肉之谜导航系统（MMN）</div>
<div align="left">网络中的肉之谜导航描述了那种用户要想发现导航链接的目的点或者确定链接在哪里极其困难的设计。</div>
<div align="left">物理一致性</div>
<div align="left">这个概念描述了网站外观的一致性，-如logos的位置、导航、图形元素和版式的使用。物理一致性对于更好的方向和有效的网站导航是至关重要的。</div>
<div align="left">逐步强化（PE）</div>
<div align="left">逐步强化是一个设计战略，网站是以多层次的方式创建的&mdash;&mdash;从适合所有浏览器的最基本的功能，再到更多的适合现行浏览器的加强的功能。逐步强化的主要优势在于它的&ldquo;普遍可用性&rdquo;&mdash;&mdash;比如，事实上，它允许使用任何浏览器或者网络链接工具的人访问网站的基本内容和功能，同时它也提供使用更好网络带宽和更先进浏览器软件的用户更强版本的网页。</div>
<div align="left">可读性</div>
<div align="left">可读性描述了基于复杂句子和困难词汇的文字的可理解的程度。可读性的指标通常可以划分可用性层级，通过一些人轻易理解一篇阅读文章所需的年龄和级别来定。可读性不是易读性。</div>
<div align="left">用户为中心的设计（UCD）</div>
<div align="left">用户为中心的设计是这样一种设计理念，用户需求、偏好和行为决定了网站的基础，就是网站架构、导航和获取信息的方式。UCD被视为现代网络应用的标准方式，尤其是由于用户创造内容的兴起。在web2.0游客必须积极参与，因此需要最佳化他们需求的条件。</div>
<div align="left">警惕（持续关注）</div>
<div align="left">警惕是在长时间单调的任务中仍能持续关注的能力，比如校队文章查找拼写错误，提醒约会，自行修改文字处理机文档等。在现代网络应用中警惕的任务主要体现在后台、自动化和提供系统的可用性。</div>
<div align="left">走来即用的设计</div>
<div align="left">一个走来即用的设计是不言自明和直观的，所以第一次和一次性用户可以有效的使用它，而不需要实现介绍或培训。</div>
<div align="left">线框图</div>
<div align="left">线框图是一个网站基本的结构&mdash;&mdash;骨架&mdash;&mdash;描述了一个网站的思想、概念和结构。线框图可以被设计成介绍陈述，用来向股份持有者解释网站是如何设计的，提供了什么功能，用户是如何完成他们的任务的。线框图通常不会有任何视觉元素，或者一个完整的页面布局；他们往往是设计者画在纸上的初稿和草图。例子在这里。</div>
<div align="left"><img style="cursor: pointer" title="请使用鼠标滚轮缩放图片!" alt="266×446" width="266" height="446" src="http://www.chinaz.com/upimg/allimg/090312/1533565.jpg"></div> <a href="http://hi.baidu.com/antsnet/blog/item/bfcab0dec25c3350cdbf1ace.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/bfcab0dec25c3350cdbf1ace.html#comment">查看评论</a>]]></description>
        <pubDate>2009-06-01  21:16</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/bfcab0dec25c3350cdbf1ace.html</guid>
</item>

<item>
        <title><![CDATA[软件工程师不可不知的10个概念]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/b9e963593bbd18222934f038.html]]></link>
        <description><![CDATA[
		
		<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  出色的软件工程师善用设计模式，勤于代码重构，编写单元测试，并对简单有宗教般的追求。除了这些，优秀</p>
<p>的软件工程师还要通晓10个概念，这10个概念超越了编程语言与设计模式，软件工程师应当从更广的范围内明</p>
<p>白这些道理。</p>
<p><br>
界面 （Interfaces ） <br>
惯例与模板 （Conventions and Templates） <br>
分层 （Layering ） <br>
算法的复杂性 （Algorithmic Complexity） <br>
散列法 （Hashing ） <br>
缓存 （Caching ） <br>
并发 （Concurrency ） <br>
云计算（Cloud Computing ） <br>
安全（Security ） <br>
关系数据库 （Relational Databases ）<br>
10. 关系数据库 (Relational Databases) <br>
关系数据库因为在大规模 Web 服务上缺乏可扩充性而颇受微词，然而，关系数据库仍然是近20年来计算机技术</p>
<p>中最伟大的成就。关系数据库对处理订单，公司数据方面有着出色的表现。</p>
<p>关系数据库的核心是以记录表示数据，记录存放在数据库表，数据库使用查询语言（SQL）对数据进行搜索与查</p>
<p>询，同时，数据库对各个数据表进行关联。</p>
<p>数据库的标准化技术（normalization）讲的是使用正确的方式对数据进行分存以降低冗余，并加快存取速度。</p>
<p>9. 安全 （Security） <br>
随着黑客的崛起与数据敏感性的上升，安全变得非常重要。安全是个广义的概念，涉及验证，授权与信息传输</p>
<p>。</p>
<p>验证是对用户的身份进行检查，如要求用户输入密码。验证通常需要结合 SSL （secure socket layer）进行</p>
<p>；授权在公司业务系统中非常重要，尤其是一些工作流系统。最近开发的 OAuth 协议可以帮助 Web 服务将相</p>
<p>应信息向相应用户开放。Flickr 便使用这种方式管理私人照片和数据的访问权限。</p>
<p>另外一个安全领域是网络设防，这关系到操作系统，配置与监控。不仅网络危险重重，任何软件都是。Firefox</p>
<p>被称为最安全的浏览器，仍然需要频频发布安全补丁。要为你的系统编写安全代码就需要明白各种潜在的问题</p>
<p>。</p>
<p>8. 云计算 （Cloud Computing） <br>
RWW 最近的关于云计算的文章 Reaching For The Sky Through Compute Clouds 讲到了云计算如何改变大规模</p>
<p>Web 应用的发布。大规模的并行，低成本，与快速投入市场。</p>
<p>并行算法发明以来，首先迎来的是网格计算，网格计算是借助空闲的桌面计算机资源进行并行计算。最著名的</p>
<p>例子是 Berkley 大学的 <a href="mailto:SETI@home">SETI@home</a> 计划，该计划使用空闲的 CPU 资源分析太空数据。金融机构也大规模实施</p>
<p>网格计算进行风险分析。空闲的资源，加上 J2EE 平台的崛起，迎来了云计算的概念：应用服务虚拟化。就是</p>
<p>应用按需运行，并可以随着时间和用户规模而实时改变。</p>
<p>云计算最生动的例子是 Amazon 的 Web 服务，一组可以通过 API 进行调用的应用，如云服务（EC2），一个用</p>
<p>来存储大型媒体文件的数据库（S3），索引服务（SimpleDB），序列服务（SQS）。</p>
<p>7. 并发 （Concurrency） <br>
并发是软件工程师最容易犯错的地方，这可以理解，因为我们一直遵从线形思维，然而并发在现代系统中非常</p>
<p>重要。</p>
<p>并发是程序中的并行处理，多数现代编程语言包含内置的并发能力，在 Java，指的是线程。关于并发，最经典</p>
<p>的例子是&ldquo;生产/消费&rdquo;模式，生产方生产数据和任务，并放入工作线程消费或执行。并发的复杂性在于，线程需</p>
<p>要经常访问共同数据，每个线程都有自己的执行顺序，但需要访问共同数据。Doug Lea 曾写过一个最复杂的并</p>
<p>发类，现在是 core Java 的一部分。</p>
<p>6. 缓存（Caching） <br>
缓存对现代 Web 程序不可或缺，缓存是从数据库取回，并存放在内存中的数据。因为数据库直接存取的代价非</p>
<p>常高，将数据从数据库取回并放在缓存中访问就变得十分必要。比如，你有一个网站，要显示上周的畅销书，</p>
<p>你可以从数据将畅销书榜一次性取回放在缓存中，而不必在每次访问时都去数据库读数据。</p>
<p>缓存需要代价，只有最常用的内容才可以放入缓存。很多现代程序，包括 Facebook，依靠一种叫做 Memcached</p>
<p>的分布式缓存系统，该系统是 Brad Firzpatrick 在工作于 LiveJournal 项目时开发的，Memcached 使用网络</p>
<p>中空闲的内存资源建立缓存机制，Memcached 类库在很多流行编程语言，包括 Java 和 PHP 中都有。</p>
<p>5. 散列法（Hashing）<br>
Hashing 的目的是加速访问速度。如果数据是序列存储的，从中查询一个项的时间取决于数据列的大小。而散</p>
<p>列法对每一个项计算一个数字作为索引，在一个好的 Hashing 算法下，数据查找的速度是一样的。</p>
<p>除了存储数据，散列法对分布式系统也很重要。统一散列法（uniform hash ）用来在云数据库环境下，在不同</p>
<p>计算机之间分存数据。Google 的索引服务就是这种方法的体现，每一个 URL 都被散列分布到特定计算机。</p>
<p>散列函数非常复杂，但现代类库中都有现成的类，重要的是，如何对散列法进行细调以获得最好的性能。</p>
<p>4. 算法的复杂性 （Algorithmic Complexity） <br>
关于算法的复杂性，软件工程师需要理解这样几件事。第一，大O标记法（big O notation）；第二，你永远都</p>
<p>不应该使用嵌套式循环（循环里面套循环），你应该使用 Hash 表，数组或单一循环；第三，如今优秀类库比</p>
<p>比皆是，我们不必过分纠缠于这些库的效能的差别，我们以后还有机会进行细调；最后，不要忽视算法的优雅</p>
<p>及性能，编写紧凑的，可读的代码可以让你的算法更简单，更干净。</p>
<p>3. 分层 （Layering） <br>
用分层来讨论软件架构是最容易的。John Lakos 曾出版过一本关于大型 C++ 系统的书。Lakos 认为软件包含</p>
<p>了层，书中介绍了层的概念，方法是，对每个软件组件，数一下它所依赖的组件数目就可以知道它的复杂程度</p>
<p>。</p>
<p>Lakos 认为，一个好的软件拥有金字塔结构，就是说，软件组件拥有层层积累的复杂度，但每个组件本身必须</p>
<p>简单，一个优秀的软件包含很多小的，可重复使用的模块，每个模块有自己的职责。一个好的系统中，组件之</p>
<p>间的依赖性不可交叉，整个系统是各种各样的组件堆积起来，形成一个金字塔。</p>
<p>Lakos 在软件工程的很多方面都是先驱，最著名的是 Refactoring （代码重构）。代码重构指的是，在编程过</p>
<p>程中需要不断地对代码进行改造以保证其结构的健壮与灵活。</p>
<p>2. 惯例与模板 （Conventions and Templates） <br>
命名惯例和基础模板在编程模式中常被忽视，然而它可能是最强大的方法。命名惯例使软件自动化成为可能，</p>
<p>如，Java Beans 框架在 getter 和 setter 方法中，使用简单的命名惯例。del.icio.us 网站的 URL 命名也</p>
<p>使用统一的格式，如 <a href="http://del.icio.us/tag/software">http://del.icio.us/tag/software</a> 会将用户带到所有标签为 software 的页。</p>
<p>很多社会网络均使用简单命名，如，你的名字是 johnsmith ，那你的头像可能命名为 johnsmith.jpg，而你的</p>
<p>rss 聚合文件的命名很可能是 johnsmith.xml 。</p>
<p>命名惯例还用于单元测试，如，JUnit 单元测试工具会辨认所有以 test 开头的类。</p>
<p>我们这里说的模板（templates ）指的并不是  C++ 或 Java 语言中的 constructs，我们说的是一些包含变量</p>
<p>的模板文件，用户可以替换变量并输出最终结果。</p>
<p>Cold Fusion 是最先使用模板的程序之一，后来，Java 使用 JSP 实现模板功能。Apache 近来为 Java 开发了</p>
<p>非常好用的通用模板, Velocity。PHP 本身就是基于模板的，因为它支持 eval 函数。</p>
<p>1. 界面（Interfaces） <br>
软件工程中最重要的概念是界面。任何软件都是一个真实系统的模型。如何使用简单的用户界面进行模型化至</p>
<p>关重要。很多软件系统走这样的极端，缺乏抽象的冗长代码，或者过分设计而导致无谓的复杂。</p>
<p>在众多软件工程书籍中，Robert Martin 写的《敏捷编程》值得一读。</p>
<p>关于模型化，以下方法对你会有帮助。首先，去掉那些只有在将来才可能用得着的方法，代码越精练越好。第</p>
<p>二，不要总认为以前的东西是对的，要善于改变。第三，要有耐心并享受过程。</p>
<p>本文国际来源：</p>
<p><a href="http://www.readwriteweb.com/archives/top_10_concepts_that_every_software_engineer_should_know.php">http://www.readwriteweb.com/archives/top_10_concepts_that_every_software_engineer_should_know.php</a><br>
中文翻译：COMSHARP CMS</p> <a href="http://hi.baidu.com/antsnet/blog/item/b9e963593bbd18222934f038.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/b9e963593bbd18222934f038.html#comment">查看评论</a>]]></description>
        <pubDate>2009-05-24  00:13</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/b9e963593bbd18222934f038.html</guid>
</item>

<item>
        <title><![CDATA[程序员团队精神四要素]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/dc3840166855834221a4e927.html]]></link>
        <description><![CDATA[
		
		IT团队精神4要素 <br>
Harrymeng <br>
<br>
  &nbsp;&nbsp;   在以前的工作过程中，有时会发现一个很怪的现象，一个程序由一个<span class="t_tag" href="tag.php?name=%B3%CC%D0%F2%D4%B1">程序员</span><span class="t_tag" href="tag.php?name=%BF%AA%B7%A2">开发</span>时，程序员总是敷衍了事，效果较差，如果由两个人来开发，他们又经常性地互相推诿，效果也不好，由三个或更多的程序员负责时，效果更差，永无成事之日，真是让人烦恼，这不是程序员的技术<span class="t_tag" href="tag.php?name=%CE%CA%CC%E2">问题</span>，而更多的是管理问题，比如不科学的分工，或过分强调个人的责任，或程序员之间的性格冲突等原团，导致团队如同一盘散沙，没有凝聚力，这是可怕的事情，直接的结果就是项目的彻底失败。<br>
<br>
  &nbsp;&nbsp;&nbsp; 要形成出色的团队精神，觉得应在工作团队中达到以下几个方面的一致：<br>
  &nbsp;&nbsp;&nbsp; 在目标上达成一致 我们都喜欢交一些志同道合的朋友，因为志不同道不合的人，让我们很难沟通与交流，也很难在思想上有火花冒出，共同的目标是一种意境，在程序开发团队中，只要有一名程序员与团队的目标不一致，那么该团队的整体水平将受到影响，这种影响不仅仅来自于这个程序员本身，而也来自于团队内部其他程序员的绩效下降，在心理上，其它程序员总能感觉到团队内部的分歧或者某个同伴漠不关心的态度；因此，为了实现团队目标的一致，最好的办法莫过于让程序员自己来确定其目标，这样做的好处有：首先，在目标的制定时的广泛参与，可以确保目标能被大家充分理解，而不是某个leader的个人行为；另外，目标制定的过程使团队中的每个程序员可以有机会对共同的目标做出公开的承诺，提高目标的可接受性，增加目标的清晰程度。团队成员即程序员广泛参与到目标的制定、讨论，让他们感受到自己在团队中的重要性，以及团队的成功就是他们自已的成功，以后不论遇到任何困难，他们都会团结一致，勇往直前。<br>
<br>
  &nbsp;&nbsp;&nbsp; 共同承担责任 建立一个环境，使每个团队成员在这个环境中都感到自己应对团队的绩效负责，除了勇于承担自已的那部分责任，而敢于承担团队的共同责任，遇到问题或困难时，勇于接受挑战，而不是互相推诿，这样，团队的目标才能继续前进。 <br>
<br>
    值得尊重的团队领导 在实际工作中，遇到一名糟糕的主管要比找到一名出色的程序容易得多。如果领导是通过外部力量而任命的，比如老板觉得那个搞市场或搞工程或搞行政的人很能干，就派他来做团队的leader，事实上他们可能了解一些规范化的流程，但并不具备为了在开发团队中实施自己的影响所必需的能力，不难想象，极少程序员会服从他，一种最典型的反应就是&ldquo;消极怠工&rdquo;，严重的还会造成leader与程序员的冲突，以致于有一方辞职不干(多数情况下是程序员)。因此程序开发团队的leader最好是一位具有优秀的开发能力和管理能力的资深程序员，他不仅仅得到团队中程序员的尊敬或崇拜，而且他也可借助自己的专业判断力量，来支撑自己作为领导者的地位，基于对开发技术与流程的了解，他会根据程序员的特点进行更加科学的分工，并在开发过程中做出正确的判断与决策。<br>
<br>
  &nbsp;&nbsp;&nbsp; 关系融洽 团队成员之间应该优势互补、性格互补、相互支持、善于沟通，彼此之间坦诚相待、相互信任，并勇于表达自我，这样的团队就会齐心协力，成为一个强有力的集体。<br>
<br>
原地址：<a href="http://jimsangyong.spaces.live.com/blog/cns!D3C7EDE8F8B3E0EB!288.entry" target="_blank">http://jimsangyong.spaces.live.com/blog/cns!D3C7EDE8F8B3E0EB!288.entry</a><br> <a href="http://hi.baidu.com/antsnet/blog/item/dc3840166855834221a4e927.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/dc3840166855834221a4e927.html#comment">查看评论</a>]]></description>
        <pubDate>2009-05-23  23:33</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/dc3840166855834221a4e927.html</guid>
</item>

<item>
        <title><![CDATA[快乐每一天[转自QQ]]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/05a30f33d8c56ff01b4cff29.html]]></link>
        <description><![CDATA[
		
		<p>一天我救了佛，佛說：我可以让你许一个愿。<br>
&nbsp;&nbsp;&nbsp;&nbsp;    我对佛说：让我群里所有朋友永远健康快乐！ 佛说：只能四天！ 我说:好,春天、夏天、秋天、冬天。 佛说：三天。 我说：好，昨天、今天、明天。 佛说：不行，两天。 我说：好，白天、黑天。 佛说：不行，就一天！ 我说：好！ 佛茫然问到：哪一天？ 我说：每一天！！佛哭了……说：以后你群里所有朋友将天天健康快乐!!!</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/05a30f33d8c56ff01b4cff29.html#comment">查看评论</a>]]></description>
        <pubDate>2009-04-24  17:42</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/05a30f33d8c56ff01b4cff29.html</guid>
</item>

<item>
        <title><![CDATA[TNND,无缘无故成&#34;黑户&#34;了]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/c7c24f085753629d0b7b8245.html]]></link>
        <description><![CDATA[
		
		<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  前几天去北京银行取医保卡中的钱, 竟然被告知&quot;你的身份证号在系统中查询不到相关信息,无法给你办理相关业务.&quot; ,这让人非常纳闷了,我原来的身份证是15位的,现在已经升级成18位,之前用15位的省份证办理的医疗蓝本和暂住证,上边的身份证号码和我现在的18位的身份证号码是一致的,怎么会没有相关信息呢?<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/c7c24f085753629d0b7b8245.html#comment">查看评论</a>]]></description>
        <pubDate>2009-04-22  14:24</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/c7c24f085753629d0b7b8245.html</guid>
</item>

<item>
        <title><![CDATA[Three Easy Ways to Improve Your Grammar]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/70d4898289702698f703a659.html]]></link>
        <description><![CDATA[
		
		<strong><font size="2">Grammar, is one of the most visible things about your writings. <br>
You are who you write, people judge you by your writings.</font></strong> <br>
<font size="2"><strong>Here are 3 tips to enhance your writing skills. Hope they are useful.</strong></font> <br>
<font size="1">(Please pardon my translation of chinese.)</font> <br>
<font size="2"><br>
<span style="color: #0000ff"><font size="3"><strong><u>1. Don&rsquo;t write like you talk. 不能口语化</u></strong></font></span> <br>
When we talk, we tend to use run-on sentences, adding clauses here and there and every </font><br>
<font size="2">which way. <u><span style="color: #ff33cc">This is fine for oral communication, but looks sloppy on paper.</span></u> <br>
To start with, put each thought down and end it firmly with a period. When you&rsquo;ve established </font><br>
<font size="2">that habit, start stringing together thoughts with words like &lsquo;and&rsquo;, &lsquo;but&rsquo;, or &lsquo;or&rsquo;. Keep your </font><br>
<font size="2">sentences clean and concise. </font><span style="color: #ff0000"><blockquote class="blockquote"><strong><font size="2"><span style="color: #ff0000">（把想要表达的词句写下来，然后再加上&lsquo;and&rsquo;, &lsquo;but&rsquo;, or &lsquo;or&rsquo; 等把句子连接起来。）</span> <br>
</font></strong></blockquote></span><br>
<font size="2"><br>
<font size="3"><u><span style="color: #0000ff"><strong>2. When it comes to words, less is more. 不要长篇大论，简单就是美</strong> <br>
</span></u></font><font color="#333333">We don&rsquo;t need to be told that the grass is lush, green, verdant, emeraldine, and so on </font></font><br>
<font color="#333333"><font size="2">and so forth. <u>The grass is green</u>. Trust in the imagination of your readers; it&rsquo;s better to </font><br>
<font size="2">err on the side of caution with things like this. </font><br>
</font><font size="2"><u><span style="color: #ff33cc">Clarity and austerity are always better than messiness</span></u><font color="#333333">. </font></font><br>
<font color="#333333"><font size="2">If you find yourself reaching for synonyms to tack on the end of your descriptions, </font><br>
<font size="2">stop. You&rsquo;ll thank yourself for it later. </font></font><font size="2"><span style="color: #ff0000"><blockquote class="blockquote"><strong><span style="color: #ff0000">（其实初学者还是不要尝试选一些深奥的词汇来长篇大论，以为这样就能显示出英文的程度。这简直是自爆其短。简单的常用普通词汇，简短的句子，也能很好的表现出作者要表达的意思。）</span> </strong></blockquote></span><span style="color: #0000ff">
<h6 class="quote"> </h6>
<blockquote class="blockquote"><strong>当然，常朗诵英文报纸，杂志或书本都是由帮助的。念着念着，你就会把某写常用的句子记住。当你要写东西时，那些句子就会不经意的出现在你脑海里了！</strong></blockquote></span><strong><span style="color: #ff0000"> </span><br>
</strong></font><font size="2"><span style="color: #ff0000"><span style="color: #ff0000"><font size="2"><br>
</font></span></span><span style="color: #0000ff"><font size="3"><strong><u>3. Learn the habit of writing diary or journal 开始用英文写日记. <br>
</u></strong></font></span><font color="#333333">Practice makes perfect. Record what is happening in your daily life. Use expressive words </font></font><br>
<font size="2"><font color="#333333">to describe your feelings. </font><u><span style="color: #ff33cc">Remember Rule no.2, keep your diary or journal short</span></u><font color="#333333">. </font></font><br>
<font color="#333333"><font size="2">Make writing English your daily affair. Soon, you will realise that writing is a simple job and </font><br>
<font size="2">you will grow to like it. </font></font><span style="color: #ff0000"><blockquote class="blockquote"><span style="color: #ff0000"><strong><font size="2">（日记也不需要长篇大论，最紧记得是要把周围发生的事记录下来。每天写一点，久而久之，你便会觉得用英文写东西更流畅了!）</font></strong></span></blockquote></span> <a href="http://hi.baidu.com/antsnet/blog/item/70d4898289702698f703a659.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/70d4898289702698f703a659.html#comment">查看评论</a>]]></description>
        <pubDate>2009-04-14  16:13</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/70d4898289702698f703a659.html</guid>
</item>

<item>
        <title><![CDATA[史上最厉害的拼音打字高手间的对话]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/1ccd0ff3a1161fc30b46e0cc.html]]></link>
        <description><![CDATA[
		
		<p><strong>史上最厉害的拼音打字高手间的对话</strong></p>
<p>GG：你嚎 </p>
<div class="text-article" >
<p>MM：你嚎，你在哪里伤亡？ </p>
<p>GG：在王八里上网，你呢？</p>
<p>MM：也在王八里 </p>
<p>GG：你是哪里人 </p>
<p>MM：是鬼洲人 </p>
<p>GG：哦， 是山洞人 </p>
<p>MM：你似男似女？ </p>
<p>GG：当然是难生了，你肯定是驴身了</p>
<p>MM：是  </p>
<p>GG：你霉不霉？ </p>
<p>MM：还行吧，人家都说是大霉女，你衰不衰？ </p>
<p>GG：还好，很多人都说是大衰哥 </p>
<p>MM：真的呀，咱们多怜惜好不好？</p>
<p>GG：好鸭，你的瘦鸡号码是多少？</p>
<p>MM：咱别用瘦鸡，瘦鸡聊天多贵，就用你扣扣</p>
<p>GG：你真可爱， 很想煎你 </p>
<p>MM：慢慢来，虽然隔得远，蛋也有鸡会。</p>
</div> <a href="http://hi.baidu.com/antsnet/blog/item/1ccd0ff3a1161fc30b46e0cc.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/1ccd0ff3a1161fc30b46e0cc.html#comment">查看评论</a>]]></description>
        <pubDate>2009-04-11  13:15</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/1ccd0ff3a1161fc30b46e0cc.html</guid>
</item>

<item>
        <title><![CDATA[Ireland&#39;s A-level Exam(FROM BBS, It&#39;s classic)]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/5718b5fd7e06991e08244d4f.html]]></link>
        <description><![CDATA[
		
		<p> </p>
<div forimg="1">
<p><img class="blogimg" border="0" small="0" src="http://hiphotos.baidu.com/antsnet/pic/item/bed50a24d07b6a0ad507422c.jpg"></p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p>--------answer-------</p>
<p> </p>
<div forimg="1"><img class="blogimg" border="0" small="0" src="http://hiphotos.baidu.com/antsnet/pic/item/f1fefbdc8e674780cc116628.jpg"></div>
</div> <a href="http://hi.baidu.com/antsnet/blog/item/5718b5fd7e06991e08244d4f.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/5718b5fd7e06991e08244d4f.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-30  17:34</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/5718b5fd7e06991e08244d4f.html</guid>
</item>

<item>
        <title><![CDATA[网站速度优化考略三月]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/1d3381023a0d8d074afb5109.html]]></link>
        <description><![CDATA[
		
		<p>在不考虑服务器硬件性能及带宽,也暂不考虑用户的网速,单从网站开发过及维护的角度去提升级网站的速度.<br>
<br>
 一.减少HTTP请求次数.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 1.减少外部资源文件,合并页面引的JS,CSS文件(网上也有将JS和CSS合并的方法)<br>
&nbsp;&nbsp;&nbsp;&nbsp; 2.页面修饰用到的图片尽可能的用CSS背景定位方式去实现.减少图片数量<br>
&nbsp;&nbsp;<br>
 二.减小被请求文件大小.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 1.减小修饰图片的大小,有时可以牺牲一些设计.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 2.减小CSS文件大小,尽可能的用简写方式.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 3.可以用js混淆去少变量名,函数的长度,从而减少JS文件大小.比较简单方式直接用一些工具(如:JSMin 和YUI Compressor).<br>
&nbsp;&nbsp;&nbsp;&nbsp; 4.可用gzip对HTML页面进行压缩.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 5.删除页面的CSS,js,html中的注释,空格,换行符.用工具软件,或是自己写程序处理.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 6.用URL重写让网站的链接变短,使&lt;a&gt;的href属性字符变短,从而达到减小html大小.(特别针对是页面链接数较多的大网站)<br>
&nbsp;&nbsp;&nbsp;&nbsp; 7.尽量减少网站目录的名的字符长度,如images可以用img表示.也可以达到减少html页面大小的目的(比较变态的方法,针对大网站).<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
 三.提高客户端响应速度.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 1.优化客户端JS脚本的性能.尽可能把一些JS文件放置页面底部.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 2.优化Flash的性能.甚用setinterval,duplicateMovieClip等占用内存语句.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 3.尽可能给&lt;img&gt;加上长度属性.(影响不大,会增加页面设计的麻烦,此法可省)<br>
&nbsp;&nbsp;&nbsp;&nbsp; 4.css中不要用expression语句.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 5.页面onmouseover尽可能用CSS中的:hover实现.(IE7,FF下绝大部份的HTML标签支持)<br>
&nbsp;&nbsp;&nbsp;&nbsp; 6.大幅FLASH,图片广告可以考虑用&lt;iframe&gt;去引用.使页面内容优化展现.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 7.不要用表格对页面进行布局.<br>
<br>
 四.让浏览器同时能请求更多的数据.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 1.针对IE等浏览器在同域下只能同时有两个HTTP请求.可以增设一些域名方式,比如图片用一个image.dansion.com二级域下<br>
<br>
 五.充份利用客户端缓存<br>
&nbsp;&nbsp;&nbsp; 1.增加WEB服务器的Expires Header,配置ETags.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 2.对客户端做好版本控制.<br>
<br>
六.提升WEB服务器响应速度.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 1.对主页等一些访问量较大的页面进实行静态化,或服务器缓存.<br>
&nbsp;&nbsp;&nbsp;&nbsp; 2.多台服务器情况下,可以针对服务器不同响应速度分别存放不同响应需求的文件.<br>
<br>
补充:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对一些响应速效慢的面页增加友善的加载效果.虽不能提升级速度的方法,但是一个有效的处理方式.增加用户体验.</p> <a href="http://hi.baidu.com/antsnet/blog/item/1d3381023a0d8d074afb5109.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/%D7%AA%CC%FB%D7%A8%C7%F8">转帖专区</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/1d3381023a0d8d074afb5109.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-17  13:53</pubDate>
        <category><![CDATA[转帖专区]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/1d3381023a0d8d074afb5109.html</guid>
</item>

<item>
        <title><![CDATA[unescape，json_decode另类用法]]></title>
        <link><![CDATA[http://hi.baidu.com/antsnet/blog/item/f5934cc2d3d19c3de4dd3b1a.html]]></link>
        <description><![CDATA[
		
		<h2><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  javascript有个escape<span class="t_tag" href="tag.php?name=%E5%87%BD%E6%95%B0">函数</span>，虽然现在已经不建议使用，但还是会碰到许多escape过<span class="t_tag" href="tag.php?name=%E7%9A%84">的</span>字符串需要解码。因为javascript的escape实际上是个unicode编码，要转成utf8或者其他编码是很麻烦的。<span class="t_tag" href="tag.php?name=php">php</span>5.2内置的json扩展除了用于json以外，其实也可以用来unescape。<br>
<br>
json / javascript里的字符串在字符串常量的表示里，也可以用\u5C71这样的方式，而escape的结果里，只是把那个 \ 换成了 % 。所以，只要用<span class="t_tag" href="tag.php?name=%E7%B1%BB">类</span>似下面的代码就可以转换回来。而对于\u5C71这种形式的编码的串，只需要在两头加上双引号，然后json_decode就可以了。 <br>
<br>
<span class="t_tag" href="tag.php?name=echo">echo</span> json_decode(str_replace('%','\\', '&quot;%u4ECE%u524D%u6709%u5EA7%u5C71&quot;'));</font></h2> <a href="http://hi.baidu.com/antsnet/blog/item/f5934cc2d3d19c3de4dd3b1a.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/antsnet/blog/category/php%BF%AA%B7%A2%B1%CA%BC%C7">php开发笔记</a>&nbsp;<a href="http://hi.baidu.com/antsnet/blog/item/f5934cc2d3d19c3de4dd3b1a.html#comment">查看评论</a>]]></description>
        <pubDate>2009-03-10  18:14</pubDate>
        <category><![CDATA[php开发笔记]]></category>
        <author><![CDATA[antsnet]]></author>
		<guid>http://hi.baidu.com/antsnet/blog/item/f5934cc2d3d19c3de4dd3b1a.html</guid>
</item>


</channel>
</rss>