<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>过够了</title>
	<link>http://www.guogoul.com</link>
	<description>学习 生活 快乐</description>
	<pubDate>Wed, 16 Jul 2008 14:17:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>招聘</title>
		<link>http://www.guogoul.com/2008/07/16/zp/</link>
		<comments>http://www.guogoul.com/2008/07/16/zp/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 14:17:45 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/16/zp/</guid>
		<description><![CDATA[1.职位:php工程师
2.基本要求: 熟悉php，用php做过完整的web项目
3.优先:
     1.熟悉zend框架,
     2.熟悉jquery
     3.熟悉linux
4.公司简介:
    1.公司名: 天健9乐
    开发:鲜果阅读器
]]></description>
			<content:encoded><![CDATA[<p>1.职位:php工程师<br />
2.基本要求: 熟悉php，用php做过完整的web项目<br />
3.优先:<br />
     1.熟悉zend框架,<br />
     2.熟悉jquery<br />
     3.熟悉linux<br />
4.公司简介:<br />
    1.公司名: <a href="http://www.topgene.net" target='_blank'>天健9乐</a><br />
    开发:<a href="http://www.xianguo.com" target='_blank'>鲜果阅读器</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/16/zp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nginx系列(4):实现负载均衡（ngx_http_upstream）</title>
		<link>http://www.guogoul.com/2008/07/13/nginx_4/</link>
		<comments>http://www.guogoul.com/2008/07/13/nginx_4/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 10:57:11 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[nginx]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[ngx_http_upstream]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/13/nginx_4/</guid>
		<description><![CDATA[在web应用中，当网站的访问量大的时候很自然的就会想到用多台web服务器集群去分担单台访问的压力，对于小的网站，自然没有大量的现金去买优秀的负载均衡的硬件设备.那么nginx做代理前端实现负载均衡的目的会是一个很好的选择。
简单的例子:
upstream load_balance {
&#160;&#160; &#160; &#160; &#160;server localhost:8088 ;
&#160;&#160; &#160; &#160; &#160;server 192.168.1.4:8080 down;
&#160;&#160; &#160; &#160; &#160;server home.ucenter weight=2;
&#160;&#160; &#160; &#160; &#160;server backserver:9100 backup;
&#160;&#160; &#160; &#160; &#160;
}
server {
&#160;&#160; &#160; &#160; &#160;listen 80;
&#160;&#160; &#160; &#160; &#160;#location / {
&#160;&#160; &#160; &#160; &#160;#&#160; &#160; &#160; &#160;proxy_pass http://home.ucenter/;
&#160;&#160; &#160; &#160; &#160;#}
&#160;&#160; &#160; &#160; &#160;location / {
&#160;&#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>在web应用中，当网站的访问量大的时候很自然的就会想到用多台web服务器集群去分担单台访问的压力，对于小的网站，自然没有大量的现金去买优秀的负载均衡的硬件设备.那么nginx做代理前端实现负载均衡的目的会是一个很好的选择。<br />
简单的例子:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">upstream load_balance {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;server localhost:8088 ;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;server 192.168.1.4:8080 down;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;server home.ucenter weight=2;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;server backserver:9100 backup;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</li>
<li>}</li>
<li>server {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;listen 80;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#location / {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#&nbsp; &nbsp; &nbsp; &nbsp;proxy_pass http://home.ucenter/;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;location / {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_pass http://load_balance;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;server_name proxy;</li>
<li>}</li></ol></div>
<p>配置解释:<br />
1)定义一个server集群load_balance，可以用域名，也可以直接用IP，(要注意不要加上http://).<br />
2)用前一节讲的proxy_pass实现代理。把域名代理到集群名上面.<br />
 <a href="http://www.guogoul.com/2008/07/13/nginx_4/#more-76" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/13/nginx_4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nginx系列(3):实现反向代理</title>
		<link>http://www.guogoul.com/2008/07/13/nginx_3/</link>
		<comments>http://www.guogoul.com/2008/07/13/nginx_3/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 09:19:54 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[nginx]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[proxy_pass]]></category>

		<category><![CDATA[反向代理]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/13/nginx_3/</guid>
		<description><![CDATA[反向代理又称为服务器加速Server accelerate)，原理是将用户的请求转发到目标服务器，然后将结果转发给用户。这样能够保护目标服务器安全、负载均衡容易实现、有点类似防火墙。关于apache实现反向代理已经在前面(用mod_proxy实现反向代理)介绍过了。这边继续补充一下nginx实现的反向代理。
下面先晒一下nginx的配置:
server {
&#160;&#160; &#160; &#160; &#160;listen 80;
&#160;&#160; &#160; &#160; &#160;server_name home.ucenter;
&#160;&#160; &#160; &#160; &#160;access_log&#160; /var/log/nginx/home.ucenter.access.log;
&#160;&#160; &#160; &#160; &#160;location / {
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;root&#160; /home/shanfeng/workspace/ucenter-home;
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;index test.html;
&#160;&#160; &#160; &#160; &#160;}
&#160;
&#160;&#160; &#160; &#160; &#160;location ~ \.php$ {
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;fastcgi_pass&#160; &#160;127.0.0.1:9000;
&#160;&#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>反向代理又称为服务器加速Server accelerate)，原理是将用户的请求转发到目标服务器，然后将结果转发给用户。这样能够保护目标服务器安全、负载均衡容易实现、有点类似防火墙。<br/>关于apache实现反向代理已经在前面(<a href="http://www.guogoul.com/2008/07/01/proxypass/">用mod_proxy实现反向代理</a>)介绍过了。这边继续补充一下nginx实现的反向代理。<br />
下面先晒一下nginx的配置:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">server {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;listen 80;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;server_name home.ucenter;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;access_log&nbsp; /var/log/nginx/home.ucenter.access.log;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;location / {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;root&nbsp; /home/shanfeng/workspace/ucenter-home;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;index test.html;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;location ~ \.php$ {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_pass&nbsp; &nbsp;127.0.0.1:9000;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_index&nbsp; index.php;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param&nbsp; SCRIPT_FILENAME&nbsp; /home/shanfeng/workspace/ucenter-home$fastcgi_script_name;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#fastcgi_param&nbsp; SCRIPT_FILENAME&nbsp; /etc/nginx/fastcgi_params;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;include /etc/nginx/fastcgi_params;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</li>
<li>&nbsp;</li>
<li>}</li>
<li>server {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;listen 8080;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#location / {&nbsp; &nbsp; //例子1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#&nbsp; &nbsp; &nbsp; &nbsp;proxy_pass http://home.ucenter/;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;location /home/ { //例子2</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_pass http://home.ucenter/;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;server_name proxy;</li>
<li>}</li></ol></div>
<p>简单说明: proxy是一个监听8080虚拟server<br />
例子1.直接把proxy根目录下面的请求全部转发到home.ucenter server上面去。<br />
例子2.把proxy下面所有的请求转发到home.ucenter server上面去。</p>
<p>够简单吧，以上例子只限入门，<a href="http://wiki.codemongers.com/NginxHttpProxyModule">官方文档</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/13/nginx_3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nginx系列(2):apache与nginx+php cgi性能比较</title>
		<link>http://www.guogoul.com/2008/07/08/nginx_2/</link>
		<comments>http://www.guogoul.com/2008/07/08/nginx_2/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 16:09:48 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[apache]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[nginx]]></category>

		<category><![CDATA[技巧]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[fastcgi]]></category>

		<category><![CDATA[lighttpd]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/08/nginx_2/</guid>
		<description><![CDATA[听说nginx性能是apache的10倍，可同时处理并发3W请求。只是听说而已自己没有证明过，今天 没事就用webbench测试一下看看到底有多大差距呢！
由于没有专业的环境，只能用我这个快要淘汰的本本上试一试了。nginx的性能如果可以并发3w不挂的话，我的机器早就升天了。我想先测试并发2000看看效果。
1.先拿apache开刀:
  用apache的默认配置没有进行修改.真是受不了，我的pc基本上处于假死状态,可能已死呵呵。不过我还坚持实验了两组:
第一组:
$ webbench -t 20 -c 2000 http://home.ucenter:8080/test.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
&#160;
Benchmarking: GET http://home.ucenter:8080/test.php
2000 clients, running 20 sec.
&#160;
Speed=62814 pages/min, 294224 bytes/sec.
Requests: 20938 susceed, 0 failed.
难怪假死我的是p4 1.8的cpu，load 都到了12了，真是难为我的机器了

第二组:

$ webbench -t 20 -c 2000 http://home.ucenter:8080/test.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open [...]]]></description>
			<content:encoded><![CDATA[<p>听说nginx性能是apache的10倍，可同时处理并发3W请求。只是听说而已自己没有证明过，今天 没事就用webbench测试一下看看到底有多大差距呢！</p>
<p>由于没有专业的环境，只能用我这个快要淘汰的本本上试一试了。nginx的性能如果可以并发3w不挂的话，我的机器早就升天了。我想先测试并发2000看看效果。</p>
<p>1.先拿apache开刀:<br />
  用apache的默认配置没有进行修改.真是受不了，我的pc基本上处于假死状态,可能已死呵呵。不过我还坚持实验了两组:<br />
第一组:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">$ webbench -t 20 -c 2000 http://home.ucenter:8080/test.php</li>
<li>Webbench - Simple Web Benchmark 1.5</li>
<li>Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.</li>
<li>&nbsp;</li>
<li>Benchmarking: GET http://home.ucenter:8080/test.php</li>
<li>2000 clients, running 20 sec.</li>
<li>&nbsp;</li>
<li>Speed=62814 pages/min, 294224 bytes/sec.</li>
<li>Requests: 20938 susceed, 0 failed.</li></ol></div>
<p>难怪假死我的是p4 1.8的cpu，load 都到了12了，真是难为我的机器了<br />
<img src='http://www.guogoul.com/wp-content/uploads/2008/07/apache_1.png' alt='apache_1.png' /><br />
第二组:<br />
<coolcode><br />
$ webbench -t 20 -c 2000 http://home.ucenter:8080/test.php<br />
Webbench - Simple Web Benchmark 1.5<br />
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.</p>
<p>Benchmarking: GET http://home.ucenter:8080/test.php<br />
2000 clients, running 20 sec.</p>
<p>Speed=257676 pages/min, 1204112 bytes/sec.<br />
Requests: 85892 susceed, 0 failed.<br />
<coolcode><br />
我的天啊，load到了46，这是什么概念。不知道路过的兄台最高见过load到多少?<br />
<img src='http://www.guogoul.com/wp-content/uploads/2008/07/apache_2.png' alt='apache_2.png' /><br />
2.再来看看nginx的性能:<br />
 <a href="http://www.guogoul.com/2008/07/08/nginx_2/#more-68" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/08/nginx_2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>校内app可测试了</title>
		<link>http://www.guogoul.com/2008/07/07/app_xiaonei/</link>
		<comments>http://www.guogoul.com/2008/07/07/app_xiaonei/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 10:48:33 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[技巧]]></category>

		<category><![CDATA[app]]></category>

		<category><![CDATA[校内]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/07/app_xiaonei/</guid>
		<description><![CDATA[今天无意中访问校内,发现app开放开台可用了.
大家加油测试
http://app.xiaonei.com/apps/apps.do
鲜果阅读器的校内版测试链接:
http://app.xiaonei.com/apps/application.do?id=11266
]]></description>
			<content:encoded><![CDATA[<p>今天无意中访问校内,发现app开放开台可用了.<br />
大家加油测试<br />
<a href="http://app.xiaonei.com/apps/apps.do">http://app.xiaonei.com/apps/apps.do</a><br />
鲜果阅读器的校内版测试链接:<br />
<a href="http://app.xiaonei.com/apps/application.do?id=11266">http://app.xiaonei.com/apps/application.do?id=11266</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/07/app_xiaonei/feed/</wfw:commentRss>
		</item>
		<item>
		<title>压力测试工具:ab,webbench</title>
		<link>http://www.guogoul.com/2008/07/06/ab_webbench/</link>
		<comments>http://www.guogoul.com/2008/07/06/ab_webbench/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 12:00:16 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[apache]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[nginx]]></category>

		<category><![CDATA[技巧]]></category>

		<category><![CDATA[ab]]></category>

		<category><![CDATA[webbench]]></category>

		<category><![CDATA[压力测试]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/06/%e5%8e%8b%e5%8a%9b%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7abwebbench/</guid>
		<description><![CDATA[为了比较网站或者服务器的性能少不了压力测试工具。最受欢迎的是ab测试工具。ab测试工具随apache打包发布，所有应用起来十分方便。而webbench用起来更加的简单，参数很少简单易懂.
1. ab
   根目录： 在apache的根目录下面。
   测试例子： ab -n 10000 -c 100 -t  10 http://www.test.com/
   参数: -n 表示请求总数， -c 表示并发数. -t 表示请求时间限制
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
&#160;&#160; &#160;-n requests&#160; &#160; &#160;Number of requests to perform
&#160;&#160; &#160;-c concurrency&#160; Number of multiple requests to make
&#160;&#160; &#160;-t timelimit&#160; &#160; Seconds to max. wait for [...]]]></description>
			<content:encoded><![CDATA[<p>为了比较网站或者服务器的性能少不了压力测试工具。最受欢迎的是ab测试工具。ab测试工具随apache打包发布，所有应用起来十分方便。而webbench用起来更加的简单，参数很少简单易懂.</p>
<p>1. ab<br />
   根目录： 在apache的根目录下面。<br />
   测试例子： ab -n 10000 -c 100 -t  10 http://www.test.com/<br />
   参数: -n 表示请求总数， -c 表示并发数. -t 表示请求时间限制</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">Usage: ab [options] [http[s]://]hostname[:port]/path</li>
<li>Options are:</li>
<li>&nbsp;&nbsp; &nbsp;-n requests&nbsp; &nbsp; &nbsp;Number of requests to perform</li>
<li>&nbsp;&nbsp; &nbsp;-c concurrency&nbsp; Number of multiple requests to make</li>
<li>&nbsp;&nbsp; &nbsp;-t timelimit&nbsp; &nbsp; Seconds to max. wait for responses</li>
<li>&nbsp;&nbsp; &nbsp;-p postfile&nbsp; &nbsp; &nbsp;File containing data to POST</li>
<li>&nbsp;&nbsp; &nbsp;-T content-type Content-type header for POSTing</li>
<li>&nbsp;&nbsp; &nbsp;-v verbosity&nbsp; &nbsp; How much troubleshooting info to print</li>
<li>&nbsp;&nbsp; &nbsp;-w&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Print out results in HTML tables</li>
<li>&nbsp;&nbsp; &nbsp;-i&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Use HEAD instead of GET</li>
<li>&nbsp;&nbsp; &nbsp;-x attributes&nbsp; &nbsp;String to insert as table attributes</li>
<li>&nbsp;&nbsp; &nbsp;-y attributes&nbsp; &nbsp;String to insert as tr attributes</li>
<li>&nbsp;&nbsp; &nbsp;-z attributes&nbsp; &nbsp;String to insert as td or th attributes</li>
<li>&nbsp;&nbsp; &nbsp;-C attribute&nbsp; &nbsp; Add cookie, eg. 'Apache=1234. (repeatable)</li>
<li>&nbsp;&nbsp; &nbsp;-H attribute&nbsp; &nbsp; Add Arbitrary header line, eg. 'Accept-Encoding: gzip'</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Inserted after all normal header lines. (repeatable)</li>
<li>&nbsp;&nbsp; &nbsp;-A attribute&nbsp; &nbsp; Add Basic WWW Authentication, the attributes</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;are a colon separated username and password.</li>
<li>&nbsp;&nbsp; &nbsp;-P attribute&nbsp; &nbsp; Add Basic Proxy Authentication, the attributes</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;are a colon separated username and password.</li>
<li>&nbsp;&nbsp; &nbsp;-X proxy:port&nbsp; &nbsp;Proxyserver and port number to use</li>
<li>&nbsp;&nbsp; &nbsp;-V&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Print version number and exit</li>
<li>&nbsp;&nbsp; &nbsp;-k&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Use HTTP KeepAlive feature</li>
<li>&nbsp;&nbsp; &nbsp;-d&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Do not show percentiles served table.</li>
<li>&nbsp;&nbsp; &nbsp;-S&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Do not show confidence estimators and warnings.</li>
<li>&nbsp;&nbsp; &nbsp;-g filename&nbsp; &nbsp; &nbsp;Output collected data to gnuplot format file.</li>
<li>&nbsp;&nbsp; &nbsp;-e filename&nbsp; &nbsp; &nbsp;Output CSV file with percentages served</li>
<li>&nbsp;&nbsp; &nbsp;-h&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Display usage information (this message)</li>
<li>&nbsp;&nbsp; &nbsp;-Z ciphersuite&nbsp; Specify SSL/TLS cipher suite (See openssl ciphers)</li>
<li>&nbsp;&nbsp; &nbsp;-f protocol&nbsp; &nbsp; &nbsp;Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)</li></ol></div>
<p>2.webbench<br />
   1)安装:<br />
 <a href="http://www.guogoul.com/2008/07/06/ab_webbench/#more-65" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/06/ab_webbench/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nginx系列(1)：快速搭建nginx + php fastcgi系统</title>
		<link>http://www.guogoul.com/2008/07/05/nginx_1/</link>
		<comments>http://www.guogoul.com/2008/07/05/nginx_1/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 15:24:05 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[nginx]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[fastcgi]]></category>

		<category><![CDATA[lighttpd]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/05/nginx_1/</guid>
		<description><![CDATA[nginx历吏比较短，由俄罗斯人编写，以性能卓越闻名。国内用nginx做server的公司还不多，相关的学习文档还不是很完全。边学边记，共同学习。
首先分享一下搭建nginx心得.其实在ubuntu下面建立nginx平台还是十分的简单，只不过本人用linux系统的不长以及nginx的相关文档比较少，以至在前期走了不少的弯路.
1. 测试平台: ubuntu8.04
2.安装nginx  1)sudo apt-get install nginx   2)相关路径：      conf:  /etc/nginx/nginx.conf      bin:    /usr/sbin/nginx      vhost: /etc/nginx/sites-enable/default      cgi-params: /etc/nginx/fastcgi-params  3)例子:建一个虚拟server       在/etc/nginx/sites-enable/default中添加以下代码 
server {
listen 80;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>nginx历吏比较短，由俄罗斯人编写，以性能卓越闻名。国内用nginx做server的公司还不多，相关的学习文档还不是很完全。边学边记，共同学习。</p>
<p>首先分享一下搭建nginx心得.其实在ubuntu下面建立nginx平台还是十分的简单，只不过本人用linux系统的不长以及nginx的相关文档比较少，以至在前期走了不少的弯路.</p>
<p>1. 测试平台: ubuntu8.04</p>
<p>2.安装nginx<br />  1)sudo apt-get install nginx <br />  2)相关路径：<br />      conf:  /etc/nginx/nginx.conf<br />      bin:    /usr/sbin/nginx<br />      vhost: /etc/nginx/sites-enable/default<br />      cgi-params: /etc/nginx/fastcgi-params<br />  3)例子:建一个虚拟server  <br />     在/etc/nginx/sites-enable/default中添加以下代码<br /> 
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">server {</li>
<li>listen 80;&nbsp; &nbsp; &nbsp; //端口</li>
<li>server_name home.ucenter;&nbsp; //虚拟域名</li>
<li>access_log&nbsp; /var/log/nginx/home.ucenter.access.log;&nbsp; &nbsp;//访问日志</li>
<li>location / {</li>
<li>&nbsp;&nbsp; &nbsp;root&nbsp; /home/shanfeng/workspace/ucenter-home;&nbsp; //size根目录</li>
<li>&nbsp;&nbsp; &nbsp;index index.php;</li>
<li>&nbsp;&nbsp; &nbsp; }</li>
<li>location ~ \.php$ {&nbsp; &nbsp;#php fastcgi的配置</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; fastcgi_pass&nbsp; &nbsp;127.0.0.1:9000;&nbsp; &nbsp;#php fastcgi的代理端口与ip</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; fastcgi_index&nbsp; index.php; </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; fastcgi_param&nbsp; SCRIPT_FILENAME&nbsp; /home/shanfeng/workspace/ucenter-home$fastcgi_script_name;&nbsp; &nbsp; #要处理的php文件的路径</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; include /etc/nginx/fastcgi_params; #fastcgi的参数文件地址</li>
<li>&nbsp;&nbsp; }</li>
<li>&nbsp; }</li></ol></div>
<p>2.安装php-cgi<br /> <a href="http://www.guogoul.com/2008/07/05/nginx_1/#more-62" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/05/nginx_1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>常用eclipse plugin</title>
		<link>http://www.guogoul.com/2008/07/01/eclipse_plugin/</link>
		<comments>http://www.guogoul.com/2008/07/01/eclipse_plugin/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 15:40:29 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[技巧]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[simpletest]]></category>

		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/01/eclipse_plugin/</guid>
		<description><![CDATA[经常在eclipse重装的时候忘了一些扩展的源地址，在此记下以后不用四处寻找喽
本日志将不断完善，您可以把你常用的源留在评论中,让咱们一起完善这篇日志.
1.php扩展
   http://phpeclipse.sourceforge.net/update/releases
2.svn扩展
  windows版本的eclipse http://subclipse.tigris.org/update
  ubuntu版本的eclipse   http://subclipse.tigris.org/update_1.4.x
3.simpletest扩展:
  http://simpletest.org/eclipse/
]]></description>
			<content:encoded><![CDATA[<p><strong>经常在eclipse重装的时候忘了一些扩展的源地址，在此记下以后不用四处寻找喽</strong><br />
<br/><strong>本日志将不断完善，您可以把你常用的源留在评论中,让咱们一起完善这篇日志.</strong><br/><br />
1.<strong>php扩展</strong><br />
   <code><a href="http://phpeclipse.sourceforge.net/update/releases" target='_blank'>http://phpeclipse.sourceforge.net/update/releases</a><br />
2.<strong>svn扩展</strong><br />
  windows版本的eclipse</code> <a href="http://subclipse.tigris.org/update"><font color="#007799">http://subclipse.tigris.org/update</font></a><br />
  ubuntu版本的eclipse <a href="http://subclipse.tigris.org/update_1.4.x">  http://subclipse.tigris.org/update_1.4.x</a><br />
3.<strong>simpletest扩展</strong>:<br />
 <a href='http://simpletest.org/eclipse/' target='_blank'> http://simpletest.org/eclipse/</a><br />
 <a href="http://www.guogoul.com/2008/07/01/eclipse_plugin/#more-61" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/01/eclipse_plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>用mod_proxy实现反向代理</title>
		<link>http://www.guogoul.com/2008/07/01/proxypass/</link>
		<comments>http://www.guogoul.com/2008/07/01/proxypass/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 15:21:14 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[apache]]></category>

		<category><![CDATA[HTTP_X_FORWARDED_FOR]]></category>

		<category><![CDATA[mod_proxy]]></category>

		<category><![CDATA[ProxyPass]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/07/01/proxypass/</guid>
		<description><![CDATA[由于项目需要实现一个域名代理的功能比如:     a.com/a.html=&#62;b.com/b.html也就是用a.com代理了所用b.com网站的请求,经过朋友介绍用apache的反向代理可以实现其目的,哥们试了一下,果然很爽.配置起来也超级的方便.
(注意下面只介绍反向代理,正向代理等我用到了再介绍嘿嘿)
1.启动apache的mod_proxy模块.
LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_http_module modules/mod_proxy_http.so
注意mod_proxy_http.so.我测试的时候没有添加这个模块怎么测试都会代理失败,后来添加了这个模块后问题消失
2.实现代理语句
      ProxyPass /mirror/foo/ http://backend.example.com/
实现把当前host /mirror/foo/目录下面的请求全都分发到backend.example.com上面去.根据我的要求:在a.com的文件夹目录里面加上一条 ProxyPass / http://b.com/一切ok
3.进行域名代理后要注意: 3.1:网站中的url最好都用相对路径.如果用绝对路径的话容易绕过代理,这后代理服务器后面的主机就容易暴露. 3.2:注意在引用$__Server[&#8217;server_name&#8217;]全局变量的时候取到的是当前server_name的域名.如果想取到代理的域名则要通过$__Server['HTTP_X_FORWARDED_FOR&#8217;]取得代理域名.注:一般用于写cookie之类的操作.
]]></description>
			<content:encoded><![CDATA[<p>由于项目需要实现一个域名代理的功能<br />比如:<br />     a.com/a.html=&gt;b.com/b.html<br />也就是用a.com代理了所用b.com网站的请求,经过朋友介绍用apache的反向代理可以实现其目的,哥们试了一下,果然很爽.配置起来也超级的方便.</p>
<p>(注意下面只介绍反向代理,正向代理等我用到了再介绍嘿嘿)</p>
<p>1.启动apache的mod_proxy模块.</p>
<p>LoadModule proxy_module modules/mod_proxy.so<br />LoadModule proxy_http_module modules/mod_proxy_http.so</p>
<p>注意mod_proxy_http.so.我测试的时候没有添加这个模块怎么测试都会代理失败,后来添加了这个模块后问题消失</p>
<p>2.实现代理语句</p>
<p><code><br />      ProxyPass /mirror/foo/ http://backend.example.com/</p>
<p>实现把当前host /mirror/foo/目录下面的请求全都分发到backend.example.com上面去.<br />根据我的要求:<br />在a.com的文件夹目录里面加上一条<br /></code><code> ProxyPass / http://b.com/<br />一切ok</p>
<p>3.进行域名代理后要注意:<br /> 3.1:网站中的url最好都用相对路径.如果用绝对路径的话容易绕过代理,这后代理服务器后面的主机就容易暴露.<br /> 3.2:注意在引用$__Server[&#8217;server_name&#8217;]全局变量的时候取到的是当前server_name的域名.如果想取到代理的域名则要通过</code><code>$__Server['</code><font color="#cc0033">HTTP_X_FORWARDED_FOR&#8217;]取得代理域名.注:一般用于写cookie之类的操作.</font><br /><code>  <a href="http://www.guogoul.com/2008/07/01/proxypass/#more-60" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/07/01/proxypass/feed/</wfw:commentRss>
		</item>
		<item>
		<title>从精益生产到精益软件开发</title>
		<link>http://www.guogoul.com/2008/06/22/lean/</link>
		<comments>http://www.guogoul.com/2008/06/22/lean/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 13:11:18 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[感悟]]></category>

		<category><![CDATA[设计模式]]></category>

		<category><![CDATA[Martin Fowler]]></category>

		<category><![CDATA[敏捷]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/06/22/lean/</guid>
		<description><![CDATA[第三界&#8221;敏捷中国&#8221;的会议主题是精益软件思维，听了Martin Fowler（重构的作者）和ThoughtWorks同事的精彩演讲，收获不少。在此分享一下学习心得。敏捷的最大好处是减少浪费，通过对质量的严格控制减少返工的浪费，通过频繁的反馈减少误解的浪费。这种与浪费做战的态度，与精益(Lean)思想同出一处。
1）何为&#8217;精益&#8217;:以上摘自: http://blog.vsharing.com/tiger_wing/A387321.html精益生产（Lean Production，简称LP）是美国麻省理工学院数位国际汽车计划组织（IMVP）的专家对日本“丰田JIT（Just InTime）生产方式”的赞誉之称，精，即少而精，不投入多余的生产要素，只是在适当的时间生产必要数量的市场急需产品（或下道工序急需的产品）；益，即所有经营活动都要有益有效，具有经济性。精益生产是当前工业界最佳的一种生产组织体系和方式。
2)怎么从传统工业中的精益生产到软件互联网行业的精益开发呢？软件行业是一个新兴的快速发展的行业，他与传统行业存在很多不同的思维方式，但是存在更多的共同点，很多在软件行业中的做法借鉴了传统行业，并且在软件行业中收效很大。比如软件设计的精典著作《设计模式》则借鉴了建筑领域的著作《建筑模式》.软件行业学习制造业的精益思想也是理所当然.(以下笔记摘自路宁的精采演讲)2.1 精益工厂的环境是干净，井井有条的工厂搞得像医院一个干净有条理,而不像一般的工厂一样到到处是油污，到处散落零件。目的是更加方便的找出质量的死角，无限放大工作流程中的失误。我们程序员的工作环境也是如此，工作环境不仅指一个公司的工作环境，还指一个程序员个体的编码环境。如果工作环境是无序的，零乱的，那么在这个环境里面的工作人员怎么不会被外界的环境所影响呢？程序员的编码环境也如此，如果每天发费大量的时间在你混乱的文件路径中查找你在中的工作材料,怎么会有时间集中精神把一件事件做到位呢？（哈哈！从现在开始把当天要进行开发的工作目录设置为根目录）2.2 最大程度的了解团队的信息。
]]></description>
			<content:encoded><![CDATA[<p>第三界&#8221;敏捷中国&#8221;的会议主题是精益软件思维，听了Martin Fowler（重构的作者）和ThoughtWorks同事的精彩演讲，收获不少。在此分享一下学习心得。敏捷的最大好处是减少浪费，通过对质量的严格控制减少返工的浪费，通过频繁的反馈减少误解的浪费。这种与浪费做战的态度，与精益(Lean)思想同出一处。</p>
<p>1）何为&#8217;精益&#8217;:<br />以上摘自: <a target="_blank" href="http://blog.vsharing.com/tiger_wing/A387321.html">http://blog.vsharing.com/tiger_wing/A387321.html</a><br />精益生产（Lean Production，简称LP）是美国麻省理工学院数位国际汽车计划组织（IMVP）的专家对日本“丰田JIT（Just In<br />Time）生产方式”的赞誉之称，精，即少而精，不投入多余的生产要素，只是在适当的时间生产必要数量的市场急需产品（或下道工序急需的产品）；益，即所<br />有经营活动都要有益有效，具有经济性。精益生产是当前工业界最佳的一种生产组织体系和方式。</p>
<p>2)怎么从传统工业中的精益生产到软件互联网行业的精益开发呢？<br />软件行业是一个新兴的快速发展的行业，他与传统行业存在很多不同的思维方式，但是存在更多的共同点，很多在软件行业中的做法借鉴了传统行业，并且在软件行业中收效很大。比如软件设计的精典著作《设计模式》则借鉴了建筑领域的著作《建筑模式》.软件行业学习制造业的精益思想也是理所当然.<br />(以下笔记摘自路宁的精采演讲)<br />2.1 精益工厂的环境是干净，井井有条的<br />工厂搞得像医院一个干净有条理,而不像一般的工厂一样到到处是油污，到处散落零件。目的是更加方便的找出质量的死角，无限放大工作流程中的失误。我们程序员的工作环境也是如此，工作环境不仅指一个公司的工作环境，还指一个程序员个体的编码环境。如果工作环境是无序的，零乱的，那么在这个环境里面的工作人员怎么不会被外界的环境所影响呢？程序员的编码环境也如此，如果每天发费大量的时间在你混乱的文件路径中查找你在中的工作材料,怎么会有时间集中精神把一件事件做到位呢？（哈哈！从现在开始把当天要进行开发的工作目录设置为根目录）<br />2.2 最大程度的了解团队的信息。 <a href="http://www.guogoul.com/2008/06/22/lean/#more-58" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/06/22/lean/feed/</wfw:commentRss>
		</item>
		<item>
		<title>体验ubuntu8</title>
		<link>http://www.guogoul.com/2008/06/21/ubuntu8/</link>
		<comments>http://www.guogoul.com/2008/06/21/ubuntu8/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 15:57:27 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[技巧]]></category>

		<category><![CDATA[fcitx]]></category>

		<category><![CDATA[pidgin]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/06/21/ubuntu8/</guid>
		<description><![CDATA[今天终于安装上了ubuntu8.试用了一下感觉很爽。ubuntu 的易用性一直都在提高。一个软件是否能被大众接受，易用性是其最为重要的标准。如果ubuntu的用保持这样的发展势头的话，一定能在将来的桌面操作系统中扮演重要的角色。以下把ubuntu8,直接用u8来表示
1.我最感到兴奋的是:我的那块无线网址不用自己装驱动就可以在U8上直接使用了。当年我为了在U7上使用了新买的D-link的无线网卡，在网上忙碌了好几天还是没有驱动成功，这也让我好长一段时间内没有去用U7系统。今天终于让我找到在U8下一直工作下去的理由。
2.如何安装中文输入法:中文输入法一般是每个中文操作系统用户最先安装的软件之一。我喜欢小企鹅输入法，不为什么,只是在linux下我一直用这个输入法,习惯了。最新的fcitx版本用户来很酪，很爽，很方便.而且这个安装起来也十分的快捷。/////////1) sudo apt-get install im-switch libapt-pkg-perl fcitx  //安装输入法2) im-switch -s fcitx   //选择输入法重启系统就可以正常工作
3.Pidgin ：一个优秀的IM集成软件。原先安装U7的时候一直用不了QQ。哈哈在U8下的pidgin工具十分的强大。可以同时在线gtalk,msn,qq,yahoo,aim&#8230;..。
4.u8下的游戏好像质量和数量上都高了不少.有时间还可以休闲一下哈哈。
今天关于u8就先讲这三个了，在以后的试用中。我将会介绍更多的ubuntu下的软件工具,希望对刚用ubuntu的用户有所帮助。

]]></description>
			<content:encoded><![CDATA[<p>今天终于安装上了ubuntu8.试用了一下感觉很爽。ubuntu 的易用性一直都在提高。一个软件是否能被大众接受，易用性是其最为重要的标准。如果ubuntu的用保持这样的发展势头的话，一定能在将来的桌面操作系统中扮演重要的角色。以下把ubuntu8,直接用u8来表示</p>
<p>1.我最感到兴奋的是:我的那块无线网址不用自己装驱动就可以在U8上直接使用了。当年我为了在U7上使用了新买的D-link的无线网卡，在网上忙碌了好几天还是没有驱动成功，这也让我好长一段时间内没有去用U7系统。今天终于让我找到在U8下一直工作下去的理由。</p>
<p>2.如何安装中文输入法:中文输入法一般是每个中文操作系统用户最先安装的软件之一。我喜欢小企鹅输入法，不为什么,只是在linux下我一直用这个输入法,习惯了。最新的fcitx版本用户来很酪，很爽，很方便.而且这个安装起来也十分的快捷。<br />/////////<br />1) sudo apt-get install im-switch libapt-pkg-perl fcitx  //安装输入法<br />2) im-switch -s fcitx   //选择输入法<br />重启系统就可以正常工作</p>
<p>3.Pidgin ：一个优秀的IM集成软件。原先安装U7的时候一直用不了QQ。哈哈在U8下的pidgin工具十分的强大。可以同时在线gtalk,msn,qq,yahoo,aim&#8230;..。</p>
<p>4.u8下的游戏好像质量和数量上都高了不少.有时间还可以休闲一下哈哈。</p>
<p>今天关于u8就先讲这三个了，在以后的试用中。我将会介绍更多的ubuntu下的软件工具,希望对刚用ubuntu的用户有所帮助。</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/06/21/ubuntu8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>几款离线博客编辑工具试用比较(windows Live Writer,zoundry Raven,Qumana，ScribeFire)</title>
		<link>http://www.guogoul.com/2008/06/09/offline_blog_writer/</link>
		<comments>http://www.guogoul.com/2008/06/09/offline_blog_writer/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 11:21:44 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[tools]]></category>

		<category><![CDATA[blog]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/06/09/offline_blog_writer/</guid>
		<description><![CDATA[本人不经常更新博客，所以平时直接在wp后台的在线发布就能满足需求，由于近来网络不是很好，所以找了几款离线博客发布工具来试用一下。
1.windows live writer:
下载链接: writer
这是一款十分实用的博客发布工具，功能十分的强大。有多种编辑模式，还可以方便的预览当前编辑的文档。不足之处就是些浏览器与windows操作系统关联大多。对系统要求也比较多。用起来有点不便
2.zounday Raven,
下载链接: zRaven
这是一款我很喜欢的工具,这篇blog就是用这个工具发布的。功能也是十分的强大，不过编辑式不像writer那么多。导入bolg步骤有点复杂,而且在导入的时候还会出现错误,但又不影响便用，不知道为什么。我推荐这一款工具,请您试一下吧，太强了。
3.Qumana
下载链接: Qumana
这款工具最大的特点就是安装十分傻瓜化，而且设置也十分的简单，强化了基本的操作。ui也十分的清晰。只是与前面两款比较起来，功能显得有些少。我最想要的发布为草稿却没有提供（不知道是不是我没有找到，呵呵）。喜欢简单的用户可能这款会适合你的。对了这款工具还集成广告平台，可插入来自Qumana广告平台的广告.
4.ScribeFire
下载链接: ScribeFire
很有意思，这款工具是fireFox浏览的插件，如果您是fireFox的爱好者，我想这款比较适合你了，你不用再装其它附加软件.平常在ff中看博客的时候就可以随手用这个扩展写自己的博客，是不是很方便呢，哈哈。不太好的就是如果你是非ff迷的话，就无法用这款工具了。
]]></description>
			<content:encoded><![CDATA[<p>本人不经常更新博客，所以平时直接在wp后台的在线发布就能满足需求，由于近来网络不是很好，所以找了几款离线博客发布工具来试用一下。</p>
<p>1.windows live writer:</p>
<p>下载链接: <a href="http://get.live.cn/product/writer.html" target="_blank" title="windows live writer">writer</a></p>
<p>这是一款十分实用的博客发布工具，功能十分的强大。有多种编辑模式，还可以方便的预览当前编辑的文档。不足之处就是些浏览器与windows操作系统关联大多。对系统要求也比较多。用起来有点不便</p>
<p>2.zounday Raven,</p>
<p>下载链接: <a href="http://www.zoundryraven.com/download.html" target="_blank">zRaven</a></p>
<p>这是一款我很喜欢的工具,这篇blog就是用这个工具发布的。功能也是十分的强大，不过编辑式不像writer那么多。导入bolg步骤有点复杂,而且在导入的时候还会出现错误,但又不影响便用，不知道为什么。我推荐这一款工具,请您试一下吧，太强了。</p>
<p>3.Qumana</p>
<p>下载链接: <a href="http://www.qumana.com/download_auto_editor_win.htm" target="_blank">Qumana</a></p>
<p>这款工具最大的特点就是安装十分傻瓜化，而且设置也十分的简单，强化了基本的操作。ui也十分的清晰。只是与前面两款比较起来，功能显得有些少。我最想要的发布为草稿却没有提供（不知道是不是我没有找到，呵呵）。喜欢简单的用户可能这款会适合你的。对了这款工具还集成广告平台，可插入来自Qumana广告平台的广告.</p>
<p>4.ScribeFire</p>
<p>下载链接: <a href="https://addons.mozilla.org/en-US/firefox/addon/1730" target="_blank">ScribeFire</a></p>
<p>很有意思，这款工具是fireFox浏览的插件，如果您是fireFox的爱好者，我想这款比较适合你了，你不用再装其它附加软件.平常在ff中看博客的时候就可以随手用这个扩展写自己的博客，是不是很方便呢，哈哈。不太好的就是如果你是非ff迷的话，就无法用这款工具了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/06/09/offline_blog_writer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iframe的小结以及几点疑问</title>
		<link>http://www.guogoul.com/2008/06/09/html_iframe_1/</link>
		<comments>http://www.guogoul.com/2008/06/09/html_iframe_1/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 11:17:33 +0000</pubDate>
		<dc:creator>guogoul</dc:creator>
		
		<category><![CDATA[html]]></category>

		<category><![CDATA[iframe]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/06/09/html_iframe_1/</guid>
		<description><![CDATA[在做web项目的时候,一直没有用过iframe,对iframe的一些特性知之甚少。无奈在最近的开发项目中要用到它,碰了一路的钉子,我服了。现在把开发中遇到的问题和大家分享一下，望对过往者有所帮助.

为了说明方便以下把引用iframe的主页面称之为page,把iframe所加载的页面称之为iframe_page.

1.cookie兼容性问题
这个问题主要出现在IE下,当page的域名与iframe_page的域名不同时，在ie的正常安全设置下,iframe_page的cookie存在问题。具体表现在服务器端取不到ifame_page的cookie.如果把ie的cookie安全性设置到最低的话.一切OK.也就说在iframe中cookie在ie中被认为是不安全的，不知道为什么不安全。难道是ie浏览器本身的难言之隐吗？为什么ff不认为这种情况有安全问题呢？是不是ff的安全机制要好于ie呢？希望在这个方面有所特长的朋友可以为和解答这个问题.问题:为什么iframe中的cookie的存在隐私安全问题？

2.onload问题
这个问题也是一个安全问题，当page与iframe_page的域名不同的时候：在ff下面在iframe_page里面可以直接frameElementr的onload方法.但在ie下面frameElement的onload方法是不可以调用.onload方法在ie下面返回是一个空值.经常在ff下开发测试的朋友要注意如果域名不完全相同，还是别想通过onload来执行page里面的js了，ie下面是行不通的.
3。dom结构相互访问问题
由于出于浏览器安全性的考滤,除非page与frame_page的域名是一样的,两个dom之间才能通过js进行相互控制.不然的话还是要发点心思了.如果二个域名在同一个主域下面.只要在相互访问前把域名改成相同的主域名就可以Ok了,改主域名代码:document.domain=test.com; 如果两个域名完全不同，听说要通过falsh进行通信处理，这个比较复杂。我也没研究明白，请高手指点。
4.在一个页面中,如果显示一个隐藏的div.会使document的高度变高,那为什么当再次把这个层隐藏时为什么document的高却没有变化呢?我如何取得再次隐藏层之后的实际文档高度呢?
help!过往高手请赐教,感激不尽.
]]></description>
			<content:encoded><![CDATA[<p>在做web项目的时候,一直没有用过iframe,对iframe的一些特性知之甚少。无奈在最近的开发项目中要用到它,碰了一路的钉子,我服了。现在把开发中遇到的问题和大家分享一下，望对过往者有所帮助.
</p>
<p>为了说明方便以下把引用iframe的主页面称之为page,把iframe所加载的页面称之为iframe_page.</p>
<p>
1.cookie兼容性问题</p>
<p>这个问题主要出现在IE下,当page的域名与iframe_page的域名不同时，在ie的正常安全设置下,iframe_page的cookie存在问题。具体表现在服务器端取不到ifame_page的cookie.如果把ie的cookie安全性设置到最低的话.一切OK.也就说在iframe中cookie在ie中被认为是不安全的，不知道为什么不安全。难道是ie浏览器本身的难言之隐吗？为什么ff不认为这种情况有安全问题呢？是不是ff的安全机制要好于ie呢？希望在这个方面有所特长的朋友可以为和解答这个问题.问题:为什么iframe中的cookie的存在隐私安全问题？
</p>
<p>2.onload问题</p>
<p>这个问题也是一个安全问题，当page与iframe_page的域名不同的时候：在ff下面在iframe_page里面可以直接frameElementr的onload方法.但在ie下面frameElement的onload方法是不可以调用.onload方法在ie下面返回是一个空值.经常在ff下开发测试的朋友要注意如果域名不完全相同，还是别想通过onload来执行page里面的js了，ie下面是行不通的.</p>
<p>3。dom结构相互访问问题</p>
<p>由于出于浏览器安全性的考滤,除非page与frame_page的域名是一样的,两个dom之间才能通过js进行相互控制.不然的话还是要发点心思了.如果二个域名在同一个主域下面.只要在相互访问前把域名改成相同的主域名就可以Ok了,改主域名代码:document.domain=test.com; 如果两个域名完全不同，听说要通过falsh进行通信处理，这个比较复杂。我也没研究明白，请高手指点。</p>
<p>4.在一个页面中,如果显示一个隐藏的div.会使document的高度变高,那为什么当再次把这个层隐藏时为什么document的高却没有变化呢?我如何取得再次隐藏层之后的实际文档高度呢?</p>
<p>help!过往高手请赐教,感激不尽.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/06/09/html_iframe_1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>sftp的所有操作命令</title>
		<link>http://www.guogoul.com/2008/05/27/sftp/</link>
		<comments>http://www.guogoul.com/2008/05/27/sftp/#comments</comments>
		<pubDate>Tue, 27 May 2008 14:21:05 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[技术]]></category>

		<category><![CDATA[sftp]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/05/27/sftp/</guid>
		<description><![CDATA[sftp> help
可用命令：
cd 路径                        更改远程目录到“路径”
lcd 路径                       更改本地目录到“路径”
chgrp group path   [...]]]></description>
			<content:encoded><![CDATA[<p>sftp> help</p>
<p>可用命令：<br />
cd 路径                        更改远程目录到“路径”<br />
lcd 路径                       更改本地目录到“路径”<br />
chgrp group path               将文件“path”的组更改为“group”<br />
chmod mode path                将文件“path”的权限更改为“mode”<br />
chown owner path               将文件“path”的属主更改为“owner”<br />
exit                           退出 sftp<br />
help                           显示这个帮助文本<br />
get 远程路径                   下载文件<br />
ln existingpath linkpath       符号链接远程文件<br />
ls [选项] [路径]               显示远程目录列表<br />
lls [选项] [路径]              显示本地目录列表<br />
mkdir 路径                     创建远程目录<br />
lmkdir 路径                    创建本地目录<br />
mv oldpath newpath             移动远程文件<br />
open [用户@]主机[:端口]        连接到远程主机<br />
put 本地路径                   上传文件<br />
pwd                            显示远程工作目录<br />
lpwd                           打印本地工作目录<br />
quit                           退出 sftp<br />
rmdir 路径                     移除远程目录<br />
lrmdir 路径                    移除本地目录<br />
rm 路径                        删除远程文件<br />
lrm 路径                       删除本地文件<br />
symlink existingpath linkpath  符号链接远程文件<br />
version                        显示协议版本
</p>
<p>很好记,对本地的操作命令就是前面加上一个l,表示local的意思.<br />
其命令操作符与linux下的文件控制并无二异.<br />
<br />
其中最常用的命令是<br />
put: 上传<br />
get: 下载</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/05/27/sftp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>手动编写google工具栏按钮</title>
		<link>http://www.guogoul.com/2008/05/25/google_toolbar_button/</link>
		<comments>http://www.guogoul.com/2008/05/25/google_toolbar_button/#comments</comments>
		<pubDate>Sun, 25 May 2008 06:00:43 +0000</pubDate>
		<dc:creator>guogoul</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<category><![CDATA[趣味编程]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/05/25/google_toolbar_button/</guid>
		<description><![CDATA[google工具栏安装率越来越高，也越来越多的第三方开发者为google工具栏开发按钮,功能多种多样,你想试一下吗?。google工具栏按钮开发起来简单易行，具备基本编程知识人就可以自己定制。follow me!
1.开发工具:
1).任何文本编辑工具2)给你的浏览器装一个google工具条作为调试环境
2.关键节点名称
 1)title：站点名称 2)description:站点描述 3)site: 站点url 4)search: 搜索的url，比如: http://re.xianguo.com/search?keyword={query} 5)send: 以search差不多，当google搜索栏中没有字符串时，可用{selection}取得搜索参数 6)icon: 工具栏按钮的图片值一般为base64编码后的值 
7)feed: 联合供稿的url 
8)feed-icon: 当feed有新的内容的时候会换成一个新的icon,当打开下拉框的时候就返回原来的默认图标 
9)feed-description:当feed有新的内容时工具栏提示 
11)update: 更新按钮的xml 
12)option:用来对按钮进行设置，可以在工具栏设置里面修改.其子元素有title,description,default 
3.关键变量
 1){query}:当前的工具栏搜索框中的值 
2){url}:浏览器的地址字段所指向的地址 
3){url.host}:url的host 
4){url.noescape}:没有进行过编码的url值 
5){domain}:指向的google搜索域：例如com ,co.uk
 6){locale}:本地化版：例如：en、es 和 pt-BR 
7){selection}:浏览器的所选择的纯文本 
8){option1}:变量值  

4.实例练习
]]></description>
			<content:encoded><![CDATA[<p>google工具栏安装率越来越高，也越来越多的第三方开发者为google工具栏开发按钮,功能多种多样,你想试一下吗?。google工具栏按钮开发起来简单易行，具备基本编程知识人就可以自己定制。<br />follow me!</p>
<p>1.开发工具:</p>
<p>1).任何文本编辑工具<br />2)给你的浏览器装一个google工具条作为调试环境</p>
<p>2.关键节点名称</p>
<p> 1)title：站点名称 <br />2)description:站点描述<br /> 3)site: 站点url<br /> 4)search: 搜索的url，比如: http://re.xianguo.com/search?keyword={query}<br /> 5)send: 以search差不多，当google搜索栏中没有字符串时，可用{selection}取得搜索参数 <br />6)icon: 工具栏按钮的图片值一般为base64编码后的值 <br />
7)feed: 联合供稿的url <br />
8)feed-icon: 当feed有新的内容的时候会换成一个新的icon,当打开下拉框的时候就返回原来的默认图标 <br />
9)feed-description:当feed有新的内容时工具栏提示 <br />
11)update: 更新按钮的xml <br />
12)option:用来对按钮进行设置，可以在工具栏设置里面修改.其子元素有title,description,default </p>
<p>3.关键变量</p>
<p> 1){query}:当前的工具栏搜索框中的值 <br />
2){url}:浏览器的地址字段所指向的地址 <br />
3){url.host}:url的host <br />
4){url.noescape}:没有进行过编码的url值 <br />
5){domain}:指向的google搜索域：例如com ,co.uk<br />
 6){locale}:本地化版：例如：en、es 和 pt-BR <br />
7){selection}:浏览器的所选择的纯文本 <br />
8){option1}:变量值  
</p>
<p>4.实例练习</p>
<p> <a href="http://www.guogoul.com/2008/05/25/google_toolbar_button/#more-51" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/05/25/google_toolbar_button/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ubuntu(linux)下开机自动运行脚本以及定时任务的处理</title>
		<link>http://www.guogoul.com/2008/05/21/crontab/</link>
		<comments>http://www.guogoul.com/2008/05/21/crontab/#comments</comments>
		<pubDate>Wed, 21 May 2008 04:55:31 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[技术]]></category>

		<category><![CDATA[cron]]></category>

		<category><![CDATA[crontab]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/05/21/crontab/</guid>
		<description><![CDATA[ 1.开机自运行
    简单的处理开机自运行的方法是修改rc.local文件。此文件位于/etc目录下面. 在默认情况下，rc.local是一个空的脚。您只要修改它就可以了。要注意的是，在此文件中运行的命令其依赖的进程是否运行。本人再实验的时候由于想在开机时启动dia.试了好多次都失败。我想可能是界面进程还没有启动。我的实验脚本为
        echo  &#8220;hello. rc.local&#8221; >>home/shanfeng/rc.local 实验成功
    在/etc目录下面还有rc*.d的目录。这些目录里面放在很多/etc/init.d/下面脚本的软链接,操作系统根据不同的运行等级，选择运行其中下的脚本。您也可以修改它们达到开机自运行的目的。
2。定时任务
    介绍一种简单的处理方式
    用cron处理定时任务,首先要保证cron操作已经运行。如果安装了cron 的话。正常情况下cron已经开机自运行了，如果没有运行的话。
    /etc/init.d/cron start
    用crontab来安排定时任务
    crontab [-u user] {-l&#124; -r &#124;  -e}
   [...]]]></description>
			<content:encoded><![CDATA[<p> 1.开机自运行<br />
    简单的处理开机自运行的方法是修改rc.local文件。此文件位于/etc目录下面. 在默认情况下，rc.local是一个空的脚。您只要修改它就可以了。要注意的是，在此文件中运行的命令其依赖的进程是否运行。本人再实验的时候由于想在开机时启动dia.试了好多次都失败。我想可能是界面进程还没有启动。我的实验脚本为<br />
        echo  &#8220;hello. rc.local&#8221; >>home/shanfeng/rc.local 实验成功<br />
    在/etc目录下面还有rc*.d的目录。这些目录里面放在很多/etc/init.d/下面脚本的软链接,操作系统根据不同的运行等级，选择运行其中下的脚本。您也可以修改它们达到开机自运行的目的。<br />
2。定时任务<br />
    介绍一种简单的处理方式<br />
    用cron处理定时任务,首先要保证cron操作已经运行。如果安装了cron 的话。正常情况下cron已经开机自运行了，如果没有运行的话。<br />
    /etc/init.d/cron start<br />
    用crontab来安排定时任务<br />
    crontab [-u user] {-l| -r |  -e}<br />
    -l:显示任务<br />
    -e:编辑任务<br />
    -r:清空任务</p>
<p>    任务格式为:<br />
    分 时 星期 月份 年 操作命令<br />
    eg:<br />
    1. * 14 * * * echo &#8221; look me&#8221;>>/home/shanfeng/test 表示每天14点运行一次<br />
    2. 0-59/2 * * * * echo &#8220;look me&#8221; >>/tmp/test 表示每两分钟运行一次<br />
    3. * 2,15 * * * echo &#8220;look me &#8221; >>/tmp/test 表示2与15点运行一次</p>
<p>    * : 表示任意   -:表示区间.  / :表示频率  , ：表示枚举</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/05/21/crontab/feed/</wfw:commentRss>
		</item>
		<item>
		<title>测试驱动开发之_simpleTest</title>
		<link>http://www.guogoul.com/2008/05/19/simpletest_1/</link>
		<comments>http://www.guogoul.com/2008/05/19/simpletest_1/#comments</comments>
		<pubDate>Mon, 19 May 2008 15:40:00 +0000</pubDate>
		<dc:creator>果沟</dc:creator>
		
		<category><![CDATA[重构]]></category>

		<category><![CDATA[simpletest]]></category>

		<category><![CDATA[unittest]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/05/19/simpletest_1/</guid>
		<description><![CDATA[这几天在看&#60;&#60;重构&#62;&#62;,这是一本与&#60;&#60;设计模式&#62;&#62;齐名的好书.主张多修改,多测试.很遗憾写了这么长时间的代码.unit test一直都是自己编写.很少用单元测试工具.这回也来学习一下别人的测试框架的优秀之处。
问了一下google老师,好像目前流行的php测试工具有以下两个
1. phpunit
2. simpleTest
大概看了一下两者的介绍. 本人对simpleTest比较感兴趣，主要是它很快的让我上手了（或许他的网站介绍做得好，呵呵）.
直奔主题：下载 simpleTest的源代码 (当前最新的版本).
我比较显示偷看源代码，所以我通常会把代码解压后为代码建一个项目来管理，这样不仅便于观察其实现原理，而且eclipse的自动联想功能会让你提高开发效率。
如果你的IDE是eclipse，恭喜你simpletest有此IDE的插件，用起来十分方便，安装也超级简单.这插件下载地址 eclipse plugin. 用eclipse的自动扩展插件的功能更是方便到家.
url是 http://simpletest.org/eclipse/.
下面是安装截图:
(1)填写更新源,并给插件命名

(2)设置simpleTest的属性:包括php以及php配置文件的位置,simpletest源代码的位置.只要填好这几个就可以了.
]]></description>
			<content:encoded><![CDATA[<p>这几天在看&lt;&lt;重构&gt;&gt;,这是一本与&lt;&lt;设计模式&gt;&gt;齐名的好书.主张多修改,多测试.很遗憾写了这么长时间的代码.unit test一直都是自己编写.很少用单元测试工具.这回也来学习一下别人的测试框架的优秀之处。</p>
<p>问了一下google老师,好像目前流行的php测试工具有以下两个</p>
<p>1. <a href="http://phpunit.de/" target="_blank">phpunit</a><br />
2. <a href="http://simpletest.org" target="_blank">simpleTest</a></p>
<p>大概看了一下两者的介绍. 本人对simpleTest比较感兴趣，主要是它很快的让我上手了（或许他的网站介绍做得好，呵呵）.</p>
<p>直奔主题：下载 <a href="http://downloads.sourceforge.net/simpletest/simpletest_1.0.1.tar.gz">simpleTest的源代码</a> (当前最新的版本).</p>
<p>我比较显示偷看源代码，所以我通常会把代码解压后为代码建一个项目来管理，这样不仅便于观察其实现原理，而且eclipse的自动联想功能会让你提高开发效率。</p>
<p>如果你的IDE是eclipse，恭喜你simpletest有此IDE的插件，用起来十分方便，安装也超级简单.这插件下载地址 <a href="http://sourceforge.net/project/showfiles.php?group_id=76550&amp;package_id=159054">eclipse plugin</a>. 用eclipse的自动扩展插件的功能更是方便到家.</p>
<p>url是 http://simpletest.org/eclipse/.</p>
<p>下面是安装截图:</p>
<p>(1)填写更新源,并给插件命名</p>
<p><img src="http://www.guogoul.com/wp-content/uploads/2008/05/simpletest1.JPG" alt="simpletest安装1" /></p>
<p>(2)设置simpleTest的属性:包括php以及php配置文件的位置,simpletest源代码的位置.只要填好这几个就可以了.<br />
 <a href="http://www.guogoul.com/2008/05/19/simpletest_1/#more-40" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/05/19/simpletest_1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>摘自_设计模式解析(2)</title>
		<link>http://www.guogoul.com/2008/05/13/pick-design-patterns-2/</link>
		<comments>http://www.guogoul.com/2008/05/13/pick-design-patterns-2/#comments</comments>
		<pubDate>Tue, 13 May 2008 15:25:08 +0000</pubDate>
		<dc:creator>guogoul</dc:creator>
		
		<category><![CDATA[技巧]]></category>

		<category><![CDATA[设计模式]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/05/13/pick-design-patterns-2/</guid>
		<description><![CDATA[8.switch语句本身常常说明:
   (1).需要多态行为;
   (2)存在职责错放.应该考虑用一种更为通用的解决方案,比如抽象代替switch语句,或者将职责赋于其它对象.
9.使用设计模式常见的错误:
 (1)浮于表面:仅仅对低层情况有一些肤浅的理解，就草草选择一个模式。
 (2)偏见:对于模式过于偏信。根据已经选定的模式/模型来解释所有的数据，不愿意对自己的偏见有任何的怀疑。
 (3)错选: 不理解模式适用的背景和条件（对各模式的分类关系理解不全）,选择了错误的模式。
 (4)误判：不熟悉各种模式，因为无知导致误判。
 (5)削足适履：忽略了实际的，具体实例行为中的例外情况，因为它们似乎不符合模式中所表达的理论。很可能会使所建模出来的对象过于僵硬，不符合实际情况。
10.与客户打交道的经验:
 (1).他们通常非常了解他们的问题域（大多数我们永远都赶不上）
 (2).一般情况下，他们不会像开发人员经常的那样在概念层次上表达事情，相反，他们会谈得十分的具体。
 (3).他们经常用&#8221;总是&#8221;表示“通常”
 (4).他们经常用&#8221;从不&#8221;表示“很少”
 总之对于非常具体的问题，客户详细的回答一般是可信的，但是他们一般性的回答却不可信。
]]></description>
			<content:encoded><![CDATA[<p>8.switch语句本身常常说明:<br />
   (1).需要多态行为;<br />
   (2)存在职责错放.应该考虑用一种更为通用的解决方案,比如抽象代替switch语句,或者将职责赋于其它对象.</p>
<p>9.使用设计模式常见的错误:<br />
 (1)浮于表面:仅仅对低层情况有一些肤浅的理解，就草草选择一个模式。<br />
 (2)偏见:对于模式过于偏信。根据已经选定的模式/模型来解释所有的数据，不愿意对自己的偏见有任何的怀疑。<br />
 (3)错选: 不理解模式适用的背景和条件（对各模式的分类关系理解不全）,选择了错误的模式。<br />
 (4)误判：不熟悉各种模式，因为无知导致误判。<br />
 (5)削足适履：忽略了实际的，具体实例行为中的例外情况，因为它们似乎不符合模式中所表达的理论。很可能会使所建模出来的对象过于僵硬，不符合实际情况。</p>
<p>10.与客户打交道的经验:<br />
 (1).他们通常非常了解他们的问题域（大多数我们永远都赶不上）<br />
 (2).一般情况下，他们不会像开发人员经常的那样在概念层次上表达事情，相反，他们会谈得十分的具体。<br />
 (3).他们经常用&#8221;总是&#8221;表示“通常”<br />
 (4).他们经常用&#8221;从不&#8221;表示“很少”<br />
 总之对于非常具体的问题，客户详细的回答一般是可信的，但是他们一般性的回答却不可信。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/05/13/pick-design-patterns-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>摘自_设计模式解析(1)</title>
		<link>http://www.guogoul.com/2008/05/11/pick-design-patterns/</link>
		<comments>http://www.guogoul.com/2008/05/11/pick-design-patterns/#comments</comments>
		<pubDate>Sun, 11 May 2008 08:03:59 +0000</pubDate>
		<dc:creator>guogoul</dc:creator>
		
		<category><![CDATA[设计模式]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/05/11/pick-design-patterns/</guid>
		<description><![CDATA[1. 正确分析和设计要求我们在互相矛盾的关注点中找到平衡,必须决定问题的哪些方面是设计的重点,或者应该让系统防范哪些变化.寻找平衡必须成为做出决策的第一要务.不要让细节转移了你的注意力.分析人员都可以犯的常见错误是:在开发过程中过早的深入细节,因为处理细节是比较容易.细节的解决方案总是显而易见的,但并非肯定是最好的入手点.细节问题的处理应尽可能推后.
2. Facade模式简化了接口,而adapter模式则将一个已有的接口转化成另一个接口.
3. 优先使用对象组合,而不是类继承. 
4. 过度使用继承:(以下作者的感悟,我觉得很有道理)
   &#8220;在我还是一个初级的面向对象分析时,曾经很喜欢利用继承,使用特殊情况解决这里碰到的问题.我喜欢继承的思想,因为他们看起来新颖而且功能十分的强大.只要可以继承的地方都使用了继承.似乎对许多设计师来说这很正常,但是其实这是很幼稚的:有了新的&#8221;锤子&#8221;,所有的东西看上去都成了钉子.糟糕的是许多面向对象的设计方式关注点都放在了通过特化处理,从已有的类派生新类上.正是对这种对对象的&#8217;is-ness&#8217;性质的过度关注,程序员往往会在巨大臃肿的类层次关系中创建对象,这种层次开始时可能还能正常工作,但是随着时间的推移将变得越来越难以维护.而当我成为一个有经验的面向对象设计人员之后,仍然深陷于继承的设计方式之中,还是根据&#8217;is-ness&#8217;性质观察类的特点,无论结构变得多么的复杂.用设计模式进行思考最终救我于泥潭之中,自此学会了用对象的职责而不是其结构来思考问题.有经验的设计分析师都已经了解到应该有选择的使用继承.才能发挥其优势.使用设计模式,将有助于加快这一学习进程.其中就包括从&#8217;为每种变化使用不同的特化&#8217;(继承)到&#8217;将变化转移到使用或拥有这种变化的对象中&#8217;(组合)的转变&#8221; 
5. 一条规则,实现一次:
  &#8216;有一条重要的实现策略应该遵循:规则只在一个地方实现.换言之,如果做什么事只有一条规则,只实现一次.这通常会使代码中出现许多小的方法,所增加的代价很小,却消除了重复,而且经常可以预防将来可以出现的许多问题。重复的害处不仅在于输入工作成倍增加，还因为将来有东西发生变化时，可能会忘记在所有需要地方进行修改.&#8217;
6.衡量设计质量的一种方法是:看它是否能很多好应对变化。
7。模式并不总能提供十全十美的解决方案,但是因为模式是众多设计人员多年的集体智慧结晶，所以它们通常优于你我自己有限时间所能提供的解决方案。
欢迎大家谈谈关于设计模式的一些想法
]]></description>
			<content:encoded><![CDATA[<p>1. 正确分析和设计要求我们在互相矛盾的关注点中找到平衡,必须决定问题的哪些方面是设计的重点,或者应该让系统防范哪些变化.寻找平衡必须成为做出决策的第一要务.不要让细节转移了你的注意力.分析人员都可以犯的常见错误是:在开发过程中过早的深入细节,因为处理细节是比较容易.细节的解决方案总是显而易见的,但并非肯定是最好的入手点.细节问题的处理应尽可能推后.</p>
<p>2. Facade模式简化了接口,而adapter模式则将一个已有的接口转化成另一个接口.</p>
<p>3. 优先使用对象组合,而不是类继承. </p>
<p>4. 过度使用继承:(以下作者的感悟,我觉得很有道理)<br />
   &#8220;在我还是一个初级的面向对象分析时,曾经很喜欢利用继承,使用特殊情况解决这里碰到的问题.我喜欢继承的思想,因为他们看起来新颖而且功能十分的强大.只要可以继承的地方都使用了继承.似乎对许多设计师来说这很正常,但是其实这是很幼稚的:有了新的&#8221;锤子&#8221;,所有的东西看上去都成了钉子.糟糕的是许多面向对象的设计方式关注点都放在了通过特化处理,从已有的类派生新类上.正是对这种对对象的&#8217;is-ness&#8217;性质的过度关注,程序员往往会在巨大臃肿的类层次关系中创建对象,这种层次开始时可能还能正常工作,但是随着时间的推移将变得越来越难以维护.而当我成为一个有经验的面向对象设计人员之后,仍然深陷于继承的设计方式之中,还是根据&#8217;is-ness&#8217;性质观察类的特点,无论结构变得多么的复杂.用设计模式进行思考最终救我于泥潭之中,自此学会了用对象的职责而不是其结构来思考问题.有经验的设计分析师都已经了解到应该有选择的使用继承.才能发挥其优势.使用设计模式,将有助于加快这一学习进程.其中就包括从&#8217;为每种变化使用不同的特化&#8217;(继承)到&#8217;将变化转移到使用或拥有这种变化的对象中&#8217;(组合)的转变&#8221; </p>
<p>5. 一条规则,实现一次:<br />
  &#8216;有一条重要的实现策略应该遵循:规则只在一个地方实现.换言之,如果做什么事只有一条规则,只实现一次.这通常会使代码中出现许多小的方法,所增加的代价很小,却消除了重复,而且经常可以预防将来可以出现的许多问题。重复的害处不仅在于输入工作成倍增加，还因为将来有东西发生变化时，可能会忘记在所有需要地方进行修改.&#8217;</p>
<p>6.衡量设计质量的一种方法是:看它是否能很多好应对变化。</p>
<p>7。模式并不总能提供十全十美的解决方案,但是因为模式是众多设计人员多年的集体智慧结晶，所以它们通常优于你我自己有限时间所能提供的解决方案。</p>
<p>欢迎大家谈谈关于设计模式的一些想法</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/05/11/pick-design-patterns/feed/</wfw:commentRss>
		</item>
		<item>
		<title>为什么要学习设计模式</title>
		<link>http://www.guogoul.com/2008/05/08/why-design-patterns/</link>
		<comments>http://www.guogoul.com/2008/05/08/why-design-patterns/#comments</comments>
		<pubDate>Thu, 08 May 2008 15:19:44 +0000</pubDate>
		<dc:creator>guogoul</dc:creator>
		
		<category><![CDATA[设计模式]]></category>

		<guid isPermaLink="false">http://www.guogoul.com/2008/05/08/why-design-patterns/</guid>
		<description><![CDATA[     设计模式是程序员自身修炼的宝典,一直没有时间系统的学习.主要原因是没有认知其重要性.最近花了点时间看了设计模式解析,通俗易懂.个人觉得是一本好书,过一段时间再认真学习一篇.学习设计模式最好的时机是在有一年左右的编码经验以后.因为只有在有一定的编码经验才能感同身受,更易理解模式其更深层的道理.
    下面就来解答一下学习设计模式的理由:
     1.复用解决方案: 通过复用已经公认的设计,能够在解决问题时取得先发优势.避免重蹈覆辙.您是是否也有类似疑虑:几个项目下好像解决方案大体可以公用.但是就是没有总结.工作好像一直在重复
     2. 确定通用术语: 开发中的交流和协作都需要共同的词汇其础和对问题的共识.如果交流双方都学习过设计模式交流起来就会十分的舒服.不知道你有没有想表达又表达不清楚的设计思路,或者自己表达得明白但对方又误解了你的意思了呢?看了设计模式你也许可以找到你想要的答案
     3. 改善团队的沟通和个人学习.一个团队一起学习设计模式,有助于团队战斗力的提高.
     4. 代码更易于修改与维护. 因为设计模式都是久经考验的解决方案,它们的结构都是经过长期的发展形成的.善于应对变化.
     5.学习模式后,就算不用模式中的方法.也会更好的采取更好的策略去解决问题.
     难道你还不心动吗?
]]></description>
			<content:encoded><![CDATA[<p>     设计模式是程序员自身修炼的宝典,一直没有时间系统的学习.主要原因是没有认知其重要性.最近花了点时间看了设计模式解析,通俗易懂.个人觉得是一本好书,过一段时间再认真学习一篇.学习设计模式最好的时机是在有一年左右的编码经验以后.因为只有在有一定的编码经验才能感同身受,更易理解模式其更深层的道理.</p>
<p>    下面就来解答一下学习设计模式的理由:</p>
<p>     1.复用解决方案: 通过复用已经公认的设计,能够在解决问题时取得先发优势.避免重蹈覆辙.您是是否也有类似疑虑:几个项目下好像解决方案大体可以公用.但是就是没有总结.工作好像一直在重复</p>
<p>     2. 确定通用术语: 开发中的交流和协作都需要共同的词汇其础和对问题的共识.如果交流双方都学习过设计模式交流起来就会十分的舒服.不知道你有没有想表达又表达不清楚的设计思路,或者自己表达得明白但对方又误解了你的意思了呢?看了设计模式你也许可以找到你想要的答案</p>
<p>     3. 改善团队的沟通和个人学习.一个团队一起学习设计模式,有助于团队战斗力的提高.</p>
<p>     4. 代码更易于修改与维护. 因为设计模式都是久经考验的解决方案,它们的结构都是经过长期的发展形成的.善于应对变化.</p>
<p>     5.学习模式后,就算不用模式中的方法.也会更好的采取更好的策略去解决问题.</p>
<p>     难道你还不心动吗?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guogoul.com/2008/05/08/why-design-patterns/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
