<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>一个程序猿</title>
	<atom:link href="http://www.sunboyu.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sunboyu.cn</link>
	<description>时光不会倒流,脚步总要前进</description>
	<lastBuildDate>Tue, 10 Aug 2010 09:57:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>一个程序猿</title>
		<link>http://www.sunboyu.cn/2010/08/10/%e4%b8%80%e4%b8%aa%e7%a8%8b%e5%ba%8f%e7%8c%bf.shtml</link>
		<comments>http://www.sunboyu.cn/2010/08/10/%e4%b8%80%e4%b8%aa%e7%a8%8b%e5%ba%8f%e7%8c%bf.shtml#comments</comments>
		<pubDate>Tue, 10 Aug 2010 09:57:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[凡客]]></category>
		<category><![CDATA[程序猿]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1267</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2010/08/未命名.jpg"><img src="http://www.sunboyu.cn/upfiles/2010/08/未命名.jpg" alt="未命名" title="未命名" width="600" height="328" class="aligncenter size-full wp-image-1268" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/08/10/%e4%b8%80%e4%b8%aa%e7%a8%8b%e5%ba%8f%e7%8c%bf.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用Lucene 构建强大的discuz 论坛搜索模块</title>
		<link>http://www.sunboyu.cn/2010/07/27/discuz_lucene.shtml</link>
		<comments>http://www.sunboyu.cn/2010/07/27/discuz_lucene.shtml#comments</comments>
		<pubDate>Tue, 27 Jul 2010 06:21:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[全文]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1263</guid>
		<description><![CDATA[在我搞完公司的论坛优化后，我一直想写一个圈套的dz性能优化的方案。当时的全文检索使用的是公司内部某人开发的检索系统，没有开源，所以我做此方案来实现。
此文刚打完草稿，处于调试通过的状态。没有形成具体可用的用户文档。希望在这个底稿的基础上，朋友能给予测试和支持，以鼓励我做出一套完整的方案。
下载：lucene_dz
欢迎加入QQ讨论群：41886598
]]></description>
			<content:encoded><![CDATA[<p>在我搞完公司的论坛优化后，我一直想写一个圈套的dz性能优化的方案。当时的全文检索使用的是公司内部某人开发的检索系统，没有开源，所以我做此方案来实现。<br />
此文刚打完草稿，处于调试通过的状态。没有形成具体可用的用户文档。希望在这个底稿的基础上，朋友能给予测试和支持，以鼓励我做出一套完整的方案。</p>
<p>下载：<a href='http://www.sunboyu.cn/upfiles/2010/07/lucene_dz.pdf'>lucene_dz</a></p>
<p>欢迎加入QQ讨论群：41886598</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/07/27/discuz_lucene.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>使用XDEBUG进行PHP性能分析</title>
		<link>http://www.sunboyu.cn/2010/07/22/%e4%bd%bf%e7%94%a8xdebug%e8%bf%9b%e8%a1%8cphp%e6%80%a7%e8%83%bd%e5%88%86%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2010/07/22/%e4%bd%bf%e7%94%a8xdebug%e8%bf%9b%e8%a1%8cphp%e6%80%a7%e8%83%bd%e5%88%86%e6%9e%90.shtml#comments</comments>
		<pubDate>Thu, 22 Jul 2010 01:47:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1259</guid>
		<description><![CDATA[最近给论坛做性能优化，写了一个文档，在线编辑器不好用，就写了个wps文档。
文件下载：使用XDEBUG进行PHP性能分析
]]></description>
			<content:encoded><![CDATA[<p>最近给论坛做性能优化，写了一个文档，在线编辑器不好用，就写了个wps文档。</p>
<p>文件下载：<a href='http://www.sunboyu.cn/upfiles/2010/07/使用XDEBUG进行PHP性能分析.wps'>使用XDEBUG进行PHP性能分析</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/07/22/%e4%bd%bf%e7%94%a8xdebug%e8%bf%9b%e8%a1%8cphp%e6%80%a7%e8%83%bd%e5%88%86%e6%9e%90.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>discuz7.2针对session表的分析和优化</title>
		<link>http://www.sunboyu.cn/2010/07/07/discuz7-2%e9%92%88%e5%af%b9session%e8%a1%a8%e7%9a%84%e5%88%86%e6%9e%90%e5%92%8c%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2010/07/07/discuz7-2%e9%92%88%e5%af%b9session%e8%a1%a8%e7%9a%84%e5%88%86%e6%9e%90%e5%92%8c%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Wed, 07 Jul 2010 09:04:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[session表]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1245</guid>
		<description><![CDATA[广告时间：新建一个qq群，欢迎大家进来讨论discuz的性能优化  qq群 41886598  接头暗号：dz
引子
最近一个朋友的论坛由discuz转化为phpwind，因为discuz在负载较大的情况下频频当机，但在我观察，瓶颈基本是数据库，并且负载最高的表定位为sessions表。之前我们论坛在进行了大的改进后，除了分表这些基本优化，改动最大的就是sessions表。我们使用张宴写的tcsql来存储用户的session信息，经推算，系统负载应该能支撑10~20w人同时在线。
这个10~20w人只是推测，因为原来我们优化sessions表但没有切换到tcsql的时候，最高支撑到4~6w人-也就是某次游戏临时维护，用户大量涌向论坛，在大概4~6w用户的情况下，论坛崩溃。而tcsq的读写效率远远高于mysql，因此推算tcsql代替sessions表的情况下，论坛至少可以承载10~20w人同时在线。
毕竟tcsql用C进行开发，而且没有开源。去年的文章发表后，一直有朋友在探讨dz的优化问题，但那几个方案都依赖了第三方的应用。这次，我想到的是在不依赖其他应用的前提下，完成dz的sessions表优化。
这里，我对sessions表的访问情况作了一个统计：
一个没访问过的论坛，我作为一个用户：1、进入首页 2、ajax登录 3、进入某板块 4、点击某帖子。4个操作，统计session表的操作：select 5次，insert 2次，delete 2次，update，3次，select联查，4次，一共16次操作。对于一个成熟的网站，大部分用户的操作连起来，统计数据跟我统计的会有区别，但从全局看来，sessions表的确是mysql查询数的一个瓶颈。
以子之矛
对于这个问题，dz程序其实是有解决方案的。
if($pvfrequence &#38;amp;&#38;amp; $discuz_uid) {
if($spageviews &#38;gt;= $pvfrequence) {
$pageviewsadd = ', pageviews=\'0\'';
$db-&#38;gt;query(&#34;UPDATE {$tablepre}members SET pageviews=pageviews+'$spageviews' WHERE uid='$discuz_uid'&#34;, 'UNBUFFERED');
} else {
$pageviewsadd = ', pageviews=pageviews+1';
}
} else {
$pageviewsadd = '';
}
这个功能是统计用户浏览量的一个小东西，$spageviews是保存在用户session表的一个变量，如果每次浏览都更新用户表的浏览数，member表的负担是很大的。dz的程序员就用客户端更新数据这种方式，把数据更新动作放在了session表，每$spageviews个周期更新一次，有效降低了member表压力，而且此配置在网站后台作出了用户接口。
为什么这个问题可以解决，只不过把压力进行了转移，而sessions表的压力为什么不能解决一下呢？我百思不得其解。
攻子之盾
member的压力可以转移到sessions表，当然sessions表的压力就不能再转移给别的表了，这样处理，不管转移到哪里，都是数据库的压力，所以，得想办法转移到数据库之外。
再考虑为什么member的压力可以转移：因为用户浏览数这个统计项，用户每必要也不需要实时看到更新。
而用户的session信息是用户实时要用，并且有部分权限控制方面的东西，是非常必要的，所以，必须实时获取。既然其他表的压力也都来了sessions表，那更新也必然需要在sessions表中做。这个事情，不就是php的session应该做的事情么？
再考虑sessions表除模拟php的session功能外的其他功能：
1、状态传递：需要把用户的当前状态实时传递给其他用户。在线状态、用户所在位置等。
2、统计分析：在dz可以看到当前多少用户在线，对于单纯使用php session功能是无法满足的，故dz采用sessions表来替代这个功能。
现在就设计一个机制，既满足用户session的功能，又满足统计分析的功能。当然，用php+mysql了。需要及时更新的信息存储于php的session，而需要统计的信息分阶段更新到mysql。
流程如此 用户创建一个mysql记录，创建一个session，session的过期机制类似于mysql表。每次访问，取session信息，如果session信息不存在，取sessions表中的信息。像用户浏览次数这类数据，可以每过一段时间更新到mysql中。用户session每次更新，也只是更新session数据，而session机制的并发性和效率，远远高于mysql的。如此解决，既不阉割原有的功能，又不会对环境造成很严重的依赖，只要支持phpsession的环境即可。
总结
在修改完成后，我又进行了测试，这次session表的访问频度已经降到了原来的1/3之下，我想，对于大型的论坛，起码能节约1/3的服务器吧。这样改动也并不是没有缺点的：统计就会有延迟和偏差。因为中间用户突然离开，会损失sessions表更新的及时性甚至会损失这部分数据。如果严重依赖论坛自己某些统计功能的话，那这种方式欠妥，但对于已经使用第三方统计或者对那部分数据不很敏感的论坛用户，这种方案还是非常适合的。
附言：dz的大多数产品设计都采用sessions表这种设计思路，因此，这个思路可以优化几乎所有的dz产品。
tips：如何定位sessions表的负载： 在mysql数据类的query方法里增加如下代码,数据少可以用肉眼数，数据多可以写个脚本去分析
$handle = fopen(&#34;sql.log&#34;,&#34;a+&#34;);
fwrite($handle,str_replace(&#34;\r\n&#34;,&#34;&#34;,$sql).&#34;\r\n&#34;);
fclose($handle);
附上代码：
dz
]]></description>
			<content:encoded><![CDATA[<p>广告时间：新建一个qq群，欢迎大家进来讨论discuz的性能优化  qq群 41886598  接头暗号：dz</p>
<h1>引子</h1>
<p>最近一个朋友的论坛由discuz转化为phpwind，因为discuz在负载较大的情况下频频当机，但在我观察，瓶颈基本是数据库，并且负载最高的表定位为sessions表。之前我们论坛在进行了大的改进后，除了分表这些基本优化，改动最大的就是sessions表。我们使用张宴写的tcsql来存储用户的session信息，经推算，系统负载应该能支撑10~20w人同时在线。</p>
<p>这个10~20w人只是推测，因为原来我们优化sessions表但没有切换到tcsql的时候，最高支撑到4~6w人-也就是某次游戏临时维护，用户大量涌向论坛，在大概4~6w用户的情况下，论坛崩溃。而tcsq的读写效率远远高于mysql，因此推算tcsql代替sessions表的情况下，论坛至少可以承载10~20w人同时在线。<br />
毕竟tcsql用C进行开发，而且没有开源。去年的文章发表后，一直有朋友在探讨dz的优化问题，但那几个方案都依赖了第三方的应用。这次，我想到的是在不依赖其他应用的前提下，完成dz的sessions表优化。</p>
<p>这里，我对sessions表的访问情况作了一个统计：</p>
<p>一个没访问过的论坛，我作为一个用户：1、进入首页 2、ajax登录 3、进入某板块 4、点击某帖子。4个操作，统计session表的操作：select 5次，insert 2次，delete 2次，update，3次，select联查，4次，一共16次操作。对于一个成熟的网站，大部分用户的操作连起来，统计数据跟我统计的会有区别，但从全局看来，sessions表的确是mysql查询数的一个瓶颈。</p>
<h1>以子之矛</h1>
<p>对于这个问题，dz程序其实是有解决方案的。</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">if($pvfrequence &amp;amp;&amp;amp; $discuz_uid) {</li>
<li>if($spageviews &amp;gt;= $pvfrequence) {</li>
<li>$pageviewsadd = ', pageviews=\'0\'';</li>
<li>$db-&amp;gt;query(&quot;UPDATE {$tablepre}members SET pageviews=pageviews+'$spageviews' WHERE uid='$discuz_uid'&quot;, 'UNBUFFERED');</li>
<li>} else {</li>
<li>$pageviewsadd = ', pageviews=pageviews+1';</li>
<li>}</li>
<li>} else {</li>
<li>$pageviewsadd = '';</li>
<li>}</li></ol></div>
<p>这个功能是统计用户浏览量的一个小东西，$spageviews是保存在用户session表的一个变量，如果每次浏览都更新用户表的浏览数，member表的负担是很大的。dz的程序员就用客户端更新数据这种方式，把数据更新动作放在了session表，每$spageviews个周期更新一次，有效降低了member表压力，而且此配置在网站后台作出了用户接口。</p>
<p>为什么这个问题可以解决，只不过把压力进行了转移，而sessions表的压力为什么不能解决一下呢？我百思不得其解。</p>
<h1>攻子之盾</h1>
<p>member的压力可以转移到sessions表，当然sessions表的压力就不能再转移给别的表了，这样处理，不管转移到哪里，都是数据库的压力，所以，得想办法转移到数据库之外。</p>
<p>再考虑为什么member的压力可以转移：因为用户浏览数这个统计项，用户每必要也不需要实时看到更新。</p>
<p>而用户的session信息是用户实时要用，并且有部分权限控制方面的东西，是非常必要的，所以，必须实时获取。既然其他表的压力也都来了sessions表，那更新也必然需要在sessions表中做。这个事情，不就是php的session应该做的事情么？</p>
<p>再考虑sessions表除模拟php的session功能外的其他功能：</p>
<p>1、状态传递：需要把用户的当前状态实时传递给其他用户。在线状态、用户所在位置等。</p>
<p>2、统计分析：在dz可以看到当前多少用户在线，对于单纯使用php session功能是无法满足的，故dz采用sessions表来替代这个功能。</p>
<p>现在就设计一个机制，既满足用户session的功能，又满足统计分析的功能。当然，用php+mysql了。需要及时更新的信息存储于php的session，而需要统计的信息分阶段更新到mysql。</p>
<p>流程如此 用户创建一个mysql记录，创建一个session，session的过期机制类似于mysql表。每次访问，取session信息，如果session信息不存在，取sessions表中的信息。像用户浏览次数这类数据，可以每过一段时间更新到mysql中。用户session每次更新，也只是更新session数据，而session机制的并发性和效率，远远高于mysql的。如此解决，既不阉割原有的功能，又不会对环境造成很严重的依赖，只要支持phpsession的环境即可。</p>
<h1>总结</h1>
<p>在修改完成后，我又进行了测试，这次session表的访问频度已经降到了原来的1/3之下，我想，对于大型的论坛，起码能节约1/3的服务器吧。这样改动也并不是没有缺点的：统计就会有延迟和偏差。因为中间用户突然离开，会损失sessions表更新的及时性甚至会损失这部分数据。如果严重依赖论坛自己某些统计功能的话，那这种方式欠妥，但对于已经使用第三方统计或者对那部分数据不很敏感的论坛用户，这种方案还是非常适合的。</p>
<p>附言：dz的大多数产品设计都采用sessions表这种设计思路，因此，这个思路可以优化几乎所有的dz产品。</p>
<p>tips：如何定位sessions表的负载： 在mysql数据类的query方法里增加如下代码,数据少可以用肉眼数，数据多可以写个脚本去分析</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">$handle = fopen(&quot;sql.log&quot;,&quot;a+&quot;);</li>
<li>fwrite($handle,str_replace(&quot;\r\n&quot;,&quot;&quot;,$sql).&quot;\r\n&quot;);</li>
<li>fclose($handle);</li></ol></div>
<p>附上代码：</p>
<p><a href='http://www.sunboyu.cn/upfiles/2010/07/dz.rar'>dz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/07/07/discuz7-2%e9%92%88%e5%af%b9session%e8%a1%a8%e7%9a%84%e5%88%86%e6%9e%90%e5%92%8c%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>最近的感想</title>
		<link>http://www.sunboyu.cn/2010/06/05/%e6%9c%80%e8%bf%91%e7%9a%84%e6%84%9f%e6%83%b3.shtml</link>
		<comments>http://www.sunboyu.cn/2010/06/05/%e6%9c%80%e8%bf%91%e7%9a%84%e6%84%9f%e6%83%b3.shtml#comments</comments>
		<pubDate>Sat, 05 Jun 2010 12:25:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1238</guid>
		<description><![CDATA[1、我总在努力学习，学习技术。技术好有用么？有用。但能干好活么？态度。
2、第二个目标-让自己坚持。坚持自己的技术方向，这个我做到了，在工作中能不能做到，问号？叹号。做得不够。
3、尊重别人的劳动成果。无论是工作中还是生活中。
4、三人行必有我师。高手往往低调。
5、买书是比较廉价的学习方式。
]]></description>
			<content:encoded><![CDATA[<p>1、我总在努力学习，学习技术。技术好有用么？有用。但能干好活么？态度。</p>
<p>2、第二个目标-让自己坚持。坚持自己的技术方向，这个我做到了，在工作中能不能做到，问号？叹号。做得不够。</p>
<p>3、尊重别人的劳动成果。无论是工作中还是生活中。</p>
<p>4、三人行必有我师。高手往往低调。</p>
<p>5、买书是比较廉价的学习方式。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/06/05/%e6%9c%80%e8%bf%91%e7%9a%84%e6%84%9f%e6%83%b3.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>配置php下的mysql连接池-sqlrelay</title>
		<link>http://www.sunboyu.cn/2010/05/20/%e9%85%8d%e7%bd%aephp%e4%b8%8b%e7%9a%84mysql%e8%bf%9e%e6%8e%a5%e6%b1%a0-sqlrelay.shtml</link>
		<comments>http://www.sunboyu.cn/2010/05/20/%e9%85%8d%e7%bd%aephp%e4%b8%8b%e7%9a%84mysql%e8%bf%9e%e6%8e%a5%e6%b1%a0-sqlrelay.shtml#comments</comments>
		<pubDate>Thu, 20 May 2010 14:13:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1225</guid>
		<description><![CDATA[本文主要介绍sqlrelay的配置安装。通过其性能和一些具体环境的测试来帮助开发者应用在相应的场合中去应付大并发的mysql数据库连接。
什么是sqlrelay？
Sqlrelay是一个开源的数据库连接池软件。它可以预建立数据库连接，同时可作为数据库连接代理和负载均衡器使用。
SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux.
Sqlrelay项目主页  http://sqlrelay.sourceforge.net/
Sqlrelay源码下载  http://sqlrelay.sourceforge.net/download.html
Sqlrelay原理示意：
连接池示意图：

负载均衡示意图：

1、	sqlrelay的安装
下载源代码（因为不能yum或者apt-get）
#wget http://prdownloads.sourceforge.net/sqlrelay/sqlrelay-0.41.tar.gz?download
解压缩
#tar –zxvf sqlrelay-0.41.tar.gz
配置
#cd sqlrelay-0.41
#./configure &#8211;prefix=/opt/sqlrelay &#8211;with-mysql-prefix=/opt/mysql-5.0.22 &#8211;with-php-prefix=/opt/php-5.2.6 &#8211;disable-python
注释：因为我用的python版本跟sqlrelay版本稍有纠结，所以显式得去声明不增加python下的api。
为啥我软件编译目标路径是/opt，我也不知道，也许第一次看见某人这么做的，我也就一直这么做。大家别问了，没啥道理，其实编译到 /shit 下边，也不影响正常的运行。
查看编译好的文件：
#cd /opt/sqlrelay
#ls
Bin  etc  include  lib  share  var
如果出现下列目录，安装“基本完毕”。
2、	sqlrelay的配置
sqlrelay有个问题，如果指定了prefix，而$prefix/bin/目录如果不在环境变量中，则主进程运行是有问题的。因为，编译完后，我们在/etc/profile中增加一条命令：
PATH=$PATH:/opt/sqlrelay/bin      #此目录就是你prefix的目录
配置文件：
&#60; ?xml version=&#34;1.0&#34;?&#62;
&#60; !DOCTYPE instances SYSTEM &#34;sqlrelay.dtd&#34;&#62;
&#60;instances&#62;
	&#60;instance id=&#34;mysqlpool&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>本文主要介绍sqlrelay的配置安装。通过其性能和一些具体环境的测试来帮助开发者应用在相应的场合中去应付大并发的mysql数据库连接。</p>
<p>什么是sqlrelay？</p>
<p>Sqlrelay是一个开源的数据库连接池软件。它可以预建立数据库连接，同时可作为数据库连接代理和负载均衡器使用。</p>
<blockquote><p>SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux.</p></blockquote>
<p>Sqlrelay项目主页  http://sqlrelay.sourceforge.net/<br />
Sqlrelay源码下载  http://sqlrelay.sourceforge.net/download.html</p>
<p>Sqlrelay原理示意：</p>
<p>连接池示意图：</p>
<p><a href="http://www.sunboyu.cn/upfiles/2010/05/2009817122917215.png"><img class="aligncenter size-full wp-image-1227" title="pool" src="http://www.sunboyu.cn/upfiles/2010/05/2009817122917215.png" alt="pool" width="157" height="114" /></a></p>
<p>负载均衡示意图：</p>
<p><a href="http://www.sunboyu.cn/upfiles/2010/05/router.png"><img class="aligncenter size-full wp-image-1228" title="router" src="http://www.sunboyu.cn/upfiles/2010/05/router.png" alt="router" width="208" height="185" /></a></p>
<p>1、	sqlrelay的安装</p>
<p>下载源代码（因为不能yum或者apt-get）<br />
#wget http://prdownloads.sourceforge.net/sqlrelay/sqlrelay-0.41.tar.gz?download<br />
解压缩<br />
#tar –zxvf sqlrelay-0.41.tar.gz<br />
配置<br />
#cd sqlrelay-0.41<br />
#./configure &#8211;prefix=/opt/sqlrelay &#8211;with-mysql-prefix=/opt/mysql-5.0.22 &#8211;with-php-prefix=/opt/php-5.2.6 &#8211;disable-python<br />
注释：因为我用的python版本跟sqlrelay版本稍有纠结，所以显式得去声明不增加python下的api。<br />
为啥我软件编译目标路径是/opt，我也不知道，也许第一次看见某人这么做的，我也就一直这么做。大家别问了，没啥道理，其实编译到 /shit 下边，也不影响正常的运行。<br />
查看编译好的文件：<br />
#cd /opt/sqlrelay<br />
#ls<br />
Bin  etc  include  lib  share  var<br />
如果出现下列目录，安装“基本完毕”。<br />
2、	sqlrelay的配置<br />
sqlrelay有个问题，如果指定了prefix，而$prefix/bin/目录如果不在环境变量中，则主进程运行是有问题的。因为，编译完后，我们在/etc/profile中增加一条命令：<br />
PATH=$PATH:/opt/sqlrelay/bin      #此目录就是你prefix的目录</p>
<p>配置文件：</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">&lt; ?xml version=&quot;1.0&quot;?&gt;</li>
<li>&lt; !DOCTYPE instances SYSTEM &quot;sqlrelay.dtd&quot;&gt;</li>
<li>&lt;instances&gt;</li>
<li>	&lt;instance id=&quot;mysqlpool&quot; port=&quot;9002&quot; socket=&quot;/tmp/sqlrelay.socket&quot; dbase=&quot;mysql&quot; connections=&quot;20&quot; maxconnections=&quot;50&quot; maxqueuelength=&quot;5&quot; growby=&quot;1&quot; ttl=&quot;60&quot; maxsessioncount=&quot;10&quot; endofsession=&quot;commit&quot; sessiontimeout=&quot;600&quot; runasuser=&quot;nobody&quot; runasgroup=&quot;nobody&quot; cursors=&quot;5&quot; authtier=&quot;listener&quot; handoff=&quot;pass&quot; deniedips=&quot;&quot; allowedips=&quot;&quot; debug=&quot;none&quot; maxquerysize=&quot;65536&quot; maxstringbindvaluelength=&quot;4000&quot; maxlobbindvaluelength=&quot;71680&quot; idleclienttimeout=&quot;-1&quot; maxlisteners=&quot;-1&quot; listenertimeout=&quot;0&quot; reloginatstart=&quot;no&quot; timequeriessec=&quot;-1&quot; timequeriesusec=&quot;-1&quot;&gt;</li>
<li>	&lt;/instance&gt;</li>
<li>&lt;/instances&gt;</li></ol></div>
<p>这样，就配置了一个id为mysqlpool的连接池。<br />
Port=9002  sqlrelay提供服务的端口是 9002<br />
Dbase=mysql 要连接mysql<br />
Connections=20 起始创建20个连接<br />
Maxconnections=50 最大连接数 50<br />
其他参数可以自己琢磨，在具体应用中还需要修改后边的参数，都啥含义，看字面或者看手册皆可。</p>
<p>启动sqlrelay：<br />
#./sqlr-start –id mysqlpool   //启动刚才定义的id为mysqlpool的连接池<br />
关闭sqlrelay<br />
#./sqlr-stop</p>
<p>3、	sqlrelayPHP api的配置</p>
<p>sqlrelay的PHP api扩展在编译的时候已经生成，在php的./lib/php/extensions/no-debug-non-zts-20060613/ 目录下，修改php.ini中extension_dir的值：extension_dir=”/opt/php-5.2.6/lib/php/extensions/no-debug-non-zts-20060613/”<br />
而后增加引用声明：extension=sql_relay.so</p>
<p>重启php，执行 php –m 查看是否有 sql_relay 如果有，则证明配置成功。</p>
<p>4、sqlrelay的使用</p>
<p>$con=sqlrcon_alloc(“mysqlpool”,9002,””,”root”,”123456”,0,1);<br />
Var_dump($con);</p>
<p>这样，利用sqlrelay的phpapi，就可以跟mysql建立链接。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>另求高并发的测试环境搭建方案，有经验的朋友可以提供相关信息。注：本人只有非常SB的惠普V3000系列高发热强雪花屏笔记本一台做测试环境。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/05/20/%e9%85%8d%e7%bd%aephp%e4%b8%8b%e7%9a%84mysql%e8%bf%9e%e6%8e%a5%e6%b1%a0-sqlrelay.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iostat安装</title>
		<link>http://www.sunboyu.cn/2010/05/10/iostat%e5%ae%89%e8%a3%85.shtml</link>
		<comments>http://www.sunboyu.cn/2010/05/10/iostat%e5%ae%89%e8%a3%85.shtml#comments</comments>
		<pubDate>Mon, 10 May 2010 02:42:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1220</guid>
		<description><![CDATA[原来一直以为iostat跟iftop一样是独立的安装包，后google发现是一个工具包中的工具，叫systat。
下载地址：http://pagesperso-orange.fr/sebastien.godard/download.html
使用说明书 http://pagesperso-orange.fr/sebastien.godard/man_iostat.html
]]></description>
			<content:encoded><![CDATA[<p>原来一直以为iostat跟iftop一样是独立的安装包，后google发现是一个工具包中的工具，叫systat。</p>
<p>下载地址：<a href="http://pagesperso-orange.fr/sebastien.godard/download.html">http://pagesperso-orange.fr/sebastien.godard/download.html</a></p>
<p>使用说明书 <a href="http://pagesperso-orange.fr/sebastien.godard/man_iostat.html">http://pagesperso-orange.fr/sebastien.godard/man_iostat.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/05/10/iostat%e5%ae%89%e8%a3%85.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>samba配置小结</title>
		<link>http://www.sunboyu.cn/2010/05/06/samba%e9%85%8d%e7%bd%ae%e5%b0%8f%e7%bb%93.shtml</link>
		<comments>http://www.sunboyu.cn/2010/05/06/samba%e9%85%8d%e7%bd%ae%e5%b0%8f%e7%bb%93.shtml#comments</comments>
		<pubDate>Thu, 06 May 2010 05:18:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1218</guid>
		<description><![CDATA[最近想把本本彻底改成linux，前期准备就是要适应一切能想到的应用。跟台式的文件交互，ftp、ssh都可以，但还是觉得共享会方便，于是配置了一下samba。
本子上的系统用的是centos5.4 X64，samba软件是使用命令 yum install samba 进行安装。
首先，启动关闭samba命令
service smb start
service smb restart
service smb stop
首先配置一个公共的读写目录
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
touch /etc/samba/smb.conf
#smb.conf 内容为
[global]
workgroup = home
netbios name = notebook
server string = Samba Server
security = share
[public]
path = /home/public
browseable = yes
writeable = yes
guest ok = yes
public = yes
force user = nobody
force group = nobody
重启samba后，在windows中运行(局域网互联) 敲入 \\ip 则可以看到public共享目录
如果增加权限验证，则需要增加用户信息：samba用以下两个命令来增加用户信息
smbadduser&#160; &#160;//增加用户
mbpasswd&#160; &#160; &#160;//增加密码
配置文件如下
[global]
workgroup = ksgdfa
netbios name = ksgfdsa
server [...]]]></description>
			<content:encoded><![CDATA[<p>最近想把本本彻底改成linux，前期准备就是要适应一切能想到的应用。跟台式的文件交互，ftp、ssh都可以，但还是觉得共享会方便，于是配置了一下samba。</p>
<p>本子上的系统用的是centos5.4 X64，samba软件是使用命令 yum install samba 进行安装。</p>
<p>首先，启动关闭samba命令</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">service smb start</li>
<li>service smb restart</li>
<li>service smb stop</li></ol></div>
<p>首先配置一个公共的读写目录</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">mv /etc/samba/smb.conf /etc/samba/smb.conf.bak</li>
<li>touch /etc/samba/smb.conf</li>
<li>#smb.conf 内容为</li>
<li>[global]</li>
<li>workgroup = home</li>
<li>netbios name = notebook</li>
<li>server string = Samba Server</li>
<li>security = share</li>
<li>[public]</li>
<li>path = /home/public</li>
<li>browseable = yes</li>
<li>writeable = yes</li>
<li>guest ok = yes</li>
<li>public = yes</li>
<li>force user = nobody</li>
<li>force group = nobody</li></ol></div>
<p>重启samba后，在windows中运行(局域网互联) 敲入 \\ip 则可以看到public共享目录</p>
<p>如果增加权限验证，则需要增加用户信息：samba用以下两个命令来增加用户信息</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">smbadduser&nbsp; &nbsp;//增加用户</li>
<li>mbpasswd&nbsp; &nbsp; &nbsp;//增加密码</li></ol></div>
<p>配置文件如下</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">[global]</li>
<li>workgroup = ksgdfa</li>
<li>netbios name = ksgfdsa</li>
<li>server string = Samba Server</li>
<li>security = share</li>
<li>encrypt passwords = yes</li>
<li>smb passwd file = /etc/samba/smbpasswd</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>[public]</li>
<li>path = /home/public</li>
<li>browseable = yes</li>
<li>writeable = yes</li>
<li>guest ok = yes</li>
<li>public = yes</li>
<li>force user = nobody</li>
<li>force group = nobody</li>
<li>&nbsp;</li>
<li>[sunboyu]</li>
<li>path = /opt/samba/sunboyu</li>
<li>browseable = yes</li>
<li>writeable = yes</li></ol></div>
<p>补充：其中，公共目录的权限，用配置成 nobody:nobody  777<br />
而 sunboyu 目录的权限，则配置成 sunboyu:sunboyu 777</p>
<p>tips：如果配置成功后，一直无法写入文件，则检查是否关闭selinux，如果没关闭，关闭即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/05/06/samba%e9%85%8d%e7%bd%ae%e5%b0%8f%e7%bb%93.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>购买了一套得力1022G的套装工具</title>
		<link>http://www.sunboyu.cn/2010/04/25/%e8%b4%ad%e4%b9%b0%e4%ba%86%e4%b8%80%e5%a5%97%e5%be%97%e5%8a%9b1022g%e7%9a%84%e5%a5%97%e8%a3%85%e5%b7%a5%e5%85%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2010/04/25/%e8%b4%ad%e4%b9%b0%e4%ba%86%e4%b8%80%e5%a5%97%e5%be%97%e5%8a%9b1022g%e7%9a%84%e5%a5%97%e8%a3%85%e5%b7%a5%e5%85%b7.shtml#comments</comments>
		<pubDate>Sun, 25 Apr 2010 11:52:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1210</guid>
		<description><![CDATA[
小区旁边一个店新开张，特价57块钱。
]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://img01.taobaocdn.com/bao/uploaded/i1/T1JJNuXcdBXXbvvJMZ_032029.jpg_310x310.jpg" title="dl1022g" class="alignnone" width="250" height="250" /></p>
<p>小区旁边一个店新开张，特价57块钱。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/04/25/%e8%b4%ad%e4%b9%b0%e4%ba%86%e4%b8%80%e5%a5%97%e5%be%97%e5%8a%9b1022g%e7%9a%84%e5%a5%97%e8%a3%85%e5%b7%a5%e5%85%b7.shtml/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>rsync使用小结</title>
		<link>http://www.sunboyu.cn/2010/04/17/rsync%e4%bd%bf%e7%94%a8%e5%b0%8f%e7%bb%93.shtml</link>
		<comments>http://www.sunboyu.cn/2010/04/17/rsync%e4%bd%bf%e7%94%a8%e5%b0%8f%e7%bb%93.shtml#comments</comments>
		<pubDate>Sat, 17 Apr 2010 14:28:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1206</guid>
		<description><![CDATA[多台服务器使用，难免用到同步，工作中大量接触的是rsync，简单测试了一下其命令和应用。
rsync官方主页：  http://samba.anu.edu.au/rsync/  下载地址为：http://samba.anu.edu.au/ftp/rsync/rsync-3.0.7.tar.gz
安装：
./configure --prefix=/opt/rsync-3.0.7
make
make install
默认好像没有生成配置文件，创建 
vi /etc/rsync.conf
//填入以下内容
uid=nobody
gid=nobody
max connections=3
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
测试的两台主机：192.168.0.20  192.168.0.30
在192.168.0.30的/etc/rsync.conf下增加以下代码
[test]&#160; &#160; &#160; &#160;//定义一个域
path=/root/test
comment=test folder
uid=root
ignore errors
read only=no
list=no
然后测试两个命令
1、把192.168.0.20上的 /root/source 目录同步到 192.168.0.30 的 /root/test上
/opt/rsync-3.0.7/bin/rsync -vazu &#8211;progress   /root/source 192.168.0.30::test
2、从192.168.0.30 的 /root/test 同步到 192.168.0.20上的/root/test
/opt/rsync-3.0.7/bin/rsync -vzrtopg &#8211;progress  192.168.0.30::test /root/test
配置权限：
在192.168.0.30上vi /etc/rsycnpass 然后 echo test:123456 >> /etc/rsycnpass
配置文件修改为
secrets file = /etc/rsyncpass
[test]&#160; &#160; &#160; &#160;//定义一个域
path=/root/test
comment=test folder
uid=root
ignore [...]]]></description>
			<content:encoded><![CDATA[<p>多台服务器使用，难免用到同步，工作中大量接触的是rsync，简单测试了一下其命令和应用。</p>
<p>rsync官方主页：  http://samba.anu.edu.au/rsync/  下载地址为：http://samba.anu.edu.au/ftp/rsync/rsync-3.0.7.tar.gz</p>
<p>安装：</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">./configure --prefix=/opt/rsync-3.0.7</li>
<li>make</li>
<li>make install</li></ol></div>
<p>默认好像没有生成配置文件，创建 </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">vi /etc/rsync.conf</li>
<li>//填入以下内容</li>
<li>uid=nobody</li>
<li>gid=nobody</li>
<li>max connections=3</li>
<li>use chroot=no</li>
<li>log file=/var/log/rsyncd.log</li>
<li>pid file=/var/run/rsyncd.pid</li>
<li>lock file=/var/run/rsyncd.lock</li></ol></div>
<p>测试的两台主机：192.168.0.20  192.168.0.30</p>
<p>在192.168.0.30的/etc/rsync.conf下增加以下代码</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">[test]&nbsp; &nbsp; &nbsp; &nbsp;//定义一个域</li>
<li>path=/root/test</li>
<li>comment=test folder</li>
<li>uid=root</li>
<li>ignore errors</li>
<li>read only=no</li>
<li>list=no</li></ol></div>
<p>然后测试两个命令<br />
1、把192.168.0.20上的 /root/source 目录同步到 192.168.0.30 的 /root/test上<br />
/opt/rsync-3.0.7/bin/rsync -vazu &#8211;progress   /root/source 192.168.0.30::test<br />
2、从192.168.0.30 的 /root/test 同步到 192.168.0.20上的/root/test<br />
/opt/rsync-3.0.7/bin/rsync -vzrtopg &#8211;progress  192.168.0.30::test /root/test</p>
<p>配置权限：<br />
在192.168.0.30上vi /etc/rsycnpass 然后 echo test:123456 >> /etc/rsycnpass<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">secrets file = /etc/rsyncpass</li>
<li>[test]&nbsp; &nbsp; &nbsp; &nbsp;//定义一个域</li>
<li>path=/root/test</li>
<li>comment=test folder</li>
<li>uid=root</li>
<li>ignore errors</li>
<li>read only=no</li>
<li>list=no</li>
<li>auth users=test</li></ol></div>
<p>则上边命令1修改为 /opt/rsync-3.0.7/bin/rsync -vazu &#8211;progress   /root/source test@192.168.0.30::test<br />
命令2改为 /opt/rsync-3.0.7/bin/rsync -vzrtopg &#8211;progress  test@192.168.0.30::test /root/test</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/04/17/rsync%e4%bd%bf%e7%94%a8%e5%b0%8f%e7%bb%93.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>有没有必须去学习第二语言</title>
		<link>http://www.sunboyu.cn/2010/04/10/%e6%9c%89%e6%b2%a1%e6%9c%89%e5%bf%85%e9%a1%bb%e5%8e%bb%e5%ad%a6%e4%b9%a0%e7%ac%ac%e4%ba%8c%e8%af%ad%e8%a8%80.shtml</link>
		<comments>http://www.sunboyu.cn/2010/04/10/%e6%9c%89%e6%b2%a1%e6%9c%89%e5%bf%85%e9%a1%bb%e5%8e%bb%e5%ad%a6%e4%b9%a0%e7%ac%ac%e4%ba%8c%e8%af%ad%e8%a8%80.shtml#comments</comments>
		<pubDate>Sat, 10 Apr 2010 11:46:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1204</guid>
		<description><![CDATA[当然，我说的不是中文英文这个语言，而是编程语言。
从开始玩电脑，大大小小学了不少的编程语言，从开始的logo语言、basic语言，到大学里的c，c++，vb，vfp，又到毕业工作后的asp，php，工作空闲又挤时间看了看java，python。不过目前我唯一能吃饭的语言，还是PHP，其他语言或者当做垫脚石，或者是无聊充当了解闷的工具。
大学之前的语言基本扔了，之后asp由于市场面窄，而转向了PHP。在闲暇之余充实自己的java、python，虽然也完成了一些事情，但毕竟是作为php的补充来使用，偶尔充当模块之间的胶水工具。
从工作几年来看，我是这么认为学习第二语言的必要性：
1、第二语言要多看看，了解其优缺点。单一学习一门语言，容易造成盲目崇拜，或者自我，不利于发挥和发展。
2、适当学习一些跟自己语言起胶水作用的语言。学php的离不了win/linux两个平台，作为web开发语言，在bat/shell编程方面，批处理、perl、bash的优势php无法完全替代。
没必要去把两个以上的语言都学习精通（精力充沛的除外），但必须精通一门，了解大众，起码在团队中跟他人配合的时候保证无障碍。
]]></description>
			<content:encoded><![CDATA[<p>当然，我说的不是中文英文这个语言，而是编程语言。</p>
<p>从开始玩电脑，大大小小学了不少的编程语言，从开始的logo语言、basic语言，到大学里的c，c++，vb，vfp，又到毕业工作后的asp，php，工作空闲又挤时间看了看java，python。不过目前我唯一能吃饭的语言，还是PHP，其他语言或者当做垫脚石，或者是无聊充当了解闷的工具。</p>
<p>大学之前的语言基本扔了，之后asp由于市场面窄，而转向了PHP。在闲暇之余充实自己的java、python，虽然也完成了一些事情，但毕竟是作为php的补充来使用，偶尔充当模块之间的胶水工具。</p>
<p>从工作几年来看，我是这么认为学习第二语言的必要性：</p>
<p>1、第二语言要多看看，了解其优缺点。单一学习一门语言，容易造成盲目崇拜，或者自我，不利于发挥和发展。</p>
<p>2、适当学习一些跟自己语言起胶水作用的语言。学php的离不了win/linux两个平台，作为web开发语言，在bat/shell编程方面，批处理、perl、bash的优势php无法完全替代。</p>
<p>没必要去把两个以上的语言都学习精通（精力充沛的除外），但必须精通一门，了解大众，起码在团队中跟他人配合的时候保证无障碍。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/04/10/%e6%9c%89%e6%b2%a1%e6%9c%89%e5%bf%85%e9%a1%bb%e5%8e%bb%e5%ad%a6%e4%b9%a0%e7%ac%ac%e4%ba%8c%e8%af%ad%e8%a8%80.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于一些网站登录穿越(账号改变&#124;登录变成他人)的问题研究</title>
		<link>http://www.sunboyu.cn/2010/03/30/discuz%e8%b4%a6%e5%8f%b7%e6%b7%b7%e4%b9%b1%e9%97%ae%e9%a2%98%e7%a0%94%e7%a9%b6.shtml</link>
		<comments>http://www.sunboyu.cn/2010/03/30/discuz%e8%b4%a6%e5%8f%b7%e6%b7%b7%e4%b9%b1%e9%97%ae%e9%a2%98%e7%a0%94%e7%a9%b6.shtml#comments</comments>
		<pubDate>Tue, 30 Mar 2010 06:13:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[账号改变]]></category>
		<category><![CDATA[账号穿越]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1199</guid>
		<description><![CDATA[最近论坛发生了一些问题，某用户A登录后变成了某用户B。此事在某阶段频繁发生。在排除了账号服务器的问题、程序自身问题后，在网上又发现类似现象：
淘宝账号诡异事件：
http://diybbs.it168.com/viewthread.php?tid=593134&#038;extra=&#038;page=1

我点到我自己的淘宝里面，进入了一个陌生女子的界面
不过这个bug只出现了一次
这个人我已经加上了，是个卖魔方的
卡巴斯基中文官网论坛账号诡异事件：
http://bbs.kaspersky.com.cn/viewthread.php?tid=15891
有登录论坛出现别人信息的会员请进这个问题，论坛上已经有不少会员碰到。管理员正在设法解决这个问题。凡是出现这种情况的，请在下面回帖，向管理员详细说明以下情况，帮助管理员更快解决问题
1、出现问题的频率和条件
2、进入论坛的方式（例如是收藏夹进入、直接输入网址进入……）
3、论坛登录名和密码的保存方式（每次输入，不保存；按照多少时间保存）
4、有无别人和你共用电脑
5、使用的浏览器，及其版本
6、有无采取清除缓存文件，清除Cookies的措施，效果如何？
7、除以上措施外，有没有采取过其他措施，效果如何？
GMAIL账号诡异事件：
http://www.gseeker.com/50226711/aecceaecgmaileaeieie_139265.php

看到这个标题，你可能会认为这是天方夜谭。但事实上，这是完全有可能发生的。某天，你在登录Gmail时，尽管你100%正确地输入了自己的用户名及密码，但出现在你眼前的却是别人的Gmail邮箱。如果你第一时间怀疑自己的眼睛，那你就冤枉它了。因为至少在科威特，部分Gmail用户本周就经历了这样的怪事。

通过这些事件的观察，和对一些论坛账号发生错误的账户主人的询问，基本确定了以下几个可能点：
1、缓存的错误。因为discuz使用cookie进行身份认证，而一些代理缓存了cookie头，造成一个cache多人使用造成的问题。http://bbs.chinaunix.net/viewthread.php?tid=837214
2、依然是缓存的问题。只不过这个缓存可以存在于cn大局域网，或者某些ISP，比如google的例子，或者某些地区的服务商，抑或……
您是通过什么网络上的淘宝，据我所知，移动的浙江固网宽带出现过类似的严重安全隐患。宽带网络运营商的问题很大（强制建立缓存代理服务器，缓存不该缓存的网页），网站的问题是其次的。或者说，在那种情况下，绝大多数网站用户都会出现“穿越”现象。
    如果被你穿越的人和你斗处在同一城市，基本上就是这个原因了。
解决方法，且听下次分解。
如果您的网站出现类似问题，欢迎加我qq176300676一起收集数据样本进行分析
亦可加入msn讨论群 lampper@live.cn
]]></description>
			<content:encoded><![CDATA[<p>最近论坛发生了一些问题，某用户A登录后变成了某用户B。此事在某阶段频繁发生。在排除了账号服务器的问题、程序自身问题后，在网上又发现类似现象：<br />
淘宝账号诡异事件：<br />
http://diybbs.it168.com/viewthread.php?tid=593134&#038;extra=&#038;page=1</p>
<blockquote><p>
我点到我自己的淘宝里面，进入了一个陌生女子的界面<br />
不过这个bug只出现了一次<br />
这个人我已经加上了，是个卖魔方的</p></blockquote>
<p>卡巴斯基中文官网论坛账号诡异事件：<br />
http://bbs.kaspersky.com.cn/viewthread.php?tid=15891</p>
<blockquote><p>有登录论坛出现别人信息的会员请进这个问题，论坛上已经有不少会员碰到。管理员正在设法解决这个问题。凡是出现这种情况的，请在下面回帖，向管理员详细说明以下情况，帮助管理员更快解决问题<br />
1、出现问题的频率和条件<br />
2、进入论坛的方式（例如是收藏夹进入、直接输入网址进入……）<br />
3、论坛登录名和密码的保存方式（每次输入，不保存；按照多少时间保存）<br />
4、有无别人和你共用电脑<br />
5、使用的浏览器，及其版本<br />
6、有无采取清除缓存文件，清除Cookies的措施，效果如何？<br />
7、除以上措施外，有没有采取过其他措施，效果如何？</p></blockquote>
<p>GMAIL账号诡异事件：<br />
http://www.gseeker.com/50226711/aecceaecgmaileaeieie_139265.php</p>
<blockquote><p>
看到这个标题，你可能会认为这是天方夜谭。但事实上，这是完全有可能发生的。某天，你在登录Gmail时，尽管你100%正确地输入了自己的用户名及密码，但出现在你眼前的却是别人的Gmail邮箱。如果你第一时间怀疑自己的眼睛，那你就冤枉它了。因为至少在科威特，部分Gmail用户本周就经历了这样的怪事。
</p></blockquote>
<p>通过这些事件的观察，和对一些论坛账号发生错误的账户主人的询问，基本确定了以下几个可能点：</p>
<p>1、缓存的错误。因为discuz使用cookie进行身份认证，而一些代理缓存了cookie头，造成一个cache多人使用造成的问题。http://bbs.chinaunix.net/viewthread.php?tid=837214</p>
<p>2、依然是缓存的问题。只不过这个缓存可以存在于cn大局域网，或者某些ISP，比如google的例子，或者某些地区的服务商，抑或……</p>
<blockquote><p>您是通过什么网络上的淘宝，据我所知，移动的浙江固网宽带出现过类似的严重安全隐患。宽带网络运营商的问题很大（强制建立缓存代理服务器，缓存不该缓存的网页），网站的问题是其次的。或者说，在那种情况下，绝大多数网站用户都会出现“穿越”现象。<br />
    如果被你穿越的人和你斗处在同一城市，基本上就是这个原因了。</p></blockquote>
<p>解决方法，且听下次分解。</p>
<p>如果您的网站出现类似问题，欢迎加我qq176300676一起收集数据样本进行分析</p>
<p>亦可加入msn讨论群 lampper@live.cn</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/03/30/discuz%e8%b4%a6%e5%8f%b7%e6%b7%b7%e4%b9%b1%e9%97%ae%e9%a2%98%e7%a0%94%e7%a9%b6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django&#124;python中图形验证码的实现</title>
		<link>http://www.sunboyu.cn/2010/03/23/djangopython%e4%b8%ad%e5%9b%be%e5%bd%a2%e9%aa%8c%e8%af%81%e7%a0%81%e7%9a%84%e5%ae%9e%e7%8e%b0.shtml</link>
		<comments>http://www.sunboyu.cn/2010/03/23/djangopython%e4%b8%ad%e5%9b%be%e5%bd%a2%e9%aa%8c%e8%af%81%e7%a0%81%e7%9a%84%e5%ae%9e%e7%8e%b0.shtml#comments</comments>
		<pubDate>Tue, 23 Mar 2010 06:01:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1195</guid>
		<description><![CDATA[python自己并没有带图型库，需要借助第三方的图形库来实现。原来习惯的就是php下的gd库，但网上搜索后普遍说gd的python接口不好用，又考虑php也即将抛弃dg，就选择了很多人推荐的 PIL（python image library） 库。
首先是安装此库，http://www.pythonware.com/products/pil/index.htm
选择自己相应版本和平台进行安装，安装文档写的还算清楚。
然后是代码实现：
import Image, ImageDraw, ImageFont, md5, random,cStringIO,util
def show(request):
&#160;&#160; &#160;im = Image.new('RGBA',(52,18),(50,50,50,50))
&#160;&#160; &#160;draw = ImageDraw.Draw(im)
&#160;&#160; &#160;rands = util.rand(4)&#160; //自己写的一个取随机字符串的函数
&#160;&#160; &#160;draw.text((2,0), rands[0], font=ImageFont.truetype(&#34;tahomabd.TTF&#34;, random.randrange(12,18)), fill='white')
&#160;&#160; &#160;draw.text((14,0), rands[1], font=ImageFont.truetype(&#34;tahomabd.TTF&#34;, random.randrange(12,18)), fill='yellow')
&#160;&#160; &#160;draw.text((27,0), rands[2], font=ImageFont.truetype(&#34;tahomabd.TTF&#34;, random.randrange(12,18)), fill='yellow')
&#160;&#160; &#160;draw.text((40,0), rands[3], font=ImageFont.truetype(&#34;tahomabd.TTF&#34;, random.randrange(12,18)), fill='white')&#160; 
&#160;&#160; &#160;del draw
&#160;&#160; &#160;request.session['checkcode'] = rands
&#160;&#160; &#160;buf = cStringIO.StringIO()
&#160;&#160; &#160;im.save(buf, 'gif')
&#160;&#160; &#160;return HttpResponse(buf.getvalue(),'image/gif')
修改urls.py文件
#check code
&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>python自己并没有带图型库，需要借助第三方的图形库来实现。原来习惯的就是php下的gd库，但网上搜索后普遍说gd的python接口不好用，又考虑php也即将抛弃dg，就选择了很多人推荐的 PIL（python image library） 库。</p>
<p>首先是安装此库，http://www.pythonware.com/products/pil/index.htm</p>
<p>选择自己相应版本和平台进行安装，安装文档写的还算清楚。</p>
<p>然后是代码实现：</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">import Image, ImageDraw, ImageFont, md5, random,cStringIO,util</li>
<li>def show(request):</li>
<li>&nbsp;&nbsp; &nbsp;im = Image.new('RGBA',(52,18),(50,50,50,50))</li>
<li>&nbsp;&nbsp; &nbsp;draw = ImageDraw.Draw(im)</li>
<li>&nbsp;&nbsp; &nbsp;rands = util.rand(4)&nbsp; //自己写的一个取随机字符串的函数</li>
<li>&nbsp;&nbsp; &nbsp;draw.text((2,0), rands[0], font=ImageFont.truetype(&quot;tahomabd.TTF&quot;, random.randrange(12,18)), fill='white')</li>
<li>&nbsp;&nbsp; &nbsp;draw.text((14,0), rands[1], font=ImageFont.truetype(&quot;tahomabd.TTF&quot;, random.randrange(12,18)), fill='yellow')</li>
<li>&nbsp;&nbsp; &nbsp;draw.text((27,0), rands[2], font=ImageFont.truetype(&quot;tahomabd.TTF&quot;, random.randrange(12,18)), fill='yellow')</li>
<li>&nbsp;&nbsp; &nbsp;draw.text((40,0), rands[3], font=ImageFont.truetype(&quot;tahomabd.TTF&quot;, random.randrange(12,18)), fill='white')&nbsp; </li>
<li>&nbsp;&nbsp; &nbsp;del draw</li>
<li>&nbsp;&nbsp; &nbsp;request.session['checkcode'] = rands</li>
<li>&nbsp;&nbsp; &nbsp;buf = cStringIO.StringIO()</li>
<li>&nbsp;&nbsp; &nbsp;im.save(buf, 'gif')</li>
<li>&nbsp;&nbsp; &nbsp;return HttpResponse(buf.getvalue(),'image/gif')</li></ol></div>
<p>修改urls.py文件</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">#check code</li>
<li>&nbsp;&nbsp; &nbsp;(r'^checkcode/','view.checkcode.show'),</li></ol></div>
<p>再访问 http://127.0.0.1/checkcode/ 既可看到效果。</p>
<p>官方的手册写的比较惨，属于找什么没什么。顺便把网上找到的一个写的不错的文档传送来：http://nadiana.com/pil-tutorial-basic-advanced-drawing</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/03/23/djangopython%e4%b8%ad%e5%9b%be%e5%bd%a2%e9%aa%8c%e8%af%81%e7%a0%81%e7%9a%84%e5%ae%9e%e7%8e%b0.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>django中关于静态文件那些事</title>
		<link>http://www.sunboyu.cn/2010/03/20/django%e4%b8%ad%e5%85%b3%e4%ba%8e%e9%9d%99%e6%80%81%e6%96%87%e4%bb%b6%e9%82%a3%e4%ba%9b%e4%ba%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2010/03/20/django%e4%b8%ad%e5%85%b3%e4%ba%8e%e9%9d%99%e6%80%81%e6%96%87%e4%bb%b6%e9%82%a3%e4%ba%9b%e4%ba%8b.shtml#comments</comments>
		<pubDate>Sat, 20 Mar 2010 09:10:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1191</guid>
		<description><![CDATA[那个500错误快把我整死了，结果才分析可能django把静态文件当脚本处理了。
对于线上部署，完全可以用rewrite的方式进行解决。可本机调试，用的是自带的server，可搞死人了。
不过搜索后发现，django解决这个问题了，使用一个叫做 django.views.static.serve 的方法处理这些静态文件。
实现代码如下:
在/urls.py 文件中
from os import path
底下增加
if settings.DEBUG:
&#160;&#160; &#160;urlpatterns += patterns('', (r'^static/(?P&#60;path&#62;.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__),'static')}), )
&#60;/path&#62;
然后，把所有静态文件放到 static 目录下，即可。
不过这种方式只适合开发环境，在线上的时候还是需要把这个问题交给httpserver
]]></description>
			<content:encoded><![CDATA[<p>那个500错误快把我整死了，结果才分析可能django把静态文件当脚本处理了。</p>
<p>对于线上部署，完全可以用rewrite的方式进行解决。可本机调试，用的是自带的server，可搞死人了。</p>
<p>不过搜索后发现，django解决这个问题了，使用一个叫做 django.views.static.serve 的方法处理这些静态文件。</p>
<p>实现代码如下:</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">在/urls.py 文件中</li>
<li>from os import path</li>
<li>底下增加</li>
<li>if settings.DEBUG:</li>
<li>&nbsp;&nbsp; &nbsp;urlpatterns += patterns('', (r'^static/(?P&lt;path&gt;.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__),'static')}), )</li>
<li>&lt;/path&gt;</li></ol></div>
<p>然后，把所有静态文件放到 static 目录下，即可。</p>
<p>不过这种方式只适合开发环境，在线上的时候还是需要把这个问题交给httpserver</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/03/20/django%e4%b8%ad%e5%85%b3%e4%ba%8e%e9%9d%99%e6%80%81%e6%96%87%e4%bb%b6%e9%82%a3%e4%ba%9b%e4%ba%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mongodb windows平台下的安装和使用</title>
		<link>http://www.sunboyu.cn/2010/03/18/mongodb-windows%e5%b9%b3%e5%8f%b0%e4%b8%8b%e7%9a%84%e5%ae%89%e8%a3%85%e5%92%8c%e4%bd%bf%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2010/03/18/mongodb-windows%e5%b9%b3%e5%8f%b0%e4%b8%8b%e7%9a%84%e5%ae%89%e8%a3%85%e5%92%8c%e4%bd%bf%e7%94%a8.shtml#comments</comments>
		<pubDate>Thu, 18 Mar 2010 05:47:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1187</guid>
		<description><![CDATA[平时还是windows用的多，所以很多测试也习惯用windows。
首先下载mongodb的windows编译版本：
http://www.mongodb.org/display/DOCS/Downloads    http://downloads.mongodb.org/win32/mongodb-win32-i386-1.2.4.zip
解压后存放于 D:\mongodb
创建数据存放目录  D:\data
启动数据库  D:\mongodb\bin\mongod &#8211;dbpath D:\data
然后测试连接情况 D:\mongodb\bin\mongo
因为都是使用默认配置，如果出现以下回显，则证明安装成功
MongoDB shell version: 1.2.4
url: test
connecting to: test
type &#34;exit&#34; to exit
type &#34;help&#34; for help
&#62;
进阶：为了平时使用方便，把mongod注册为系统服务
D:\mongodb\bin\mongod &#8211;dbpath D:\data &#8211;install       #注册为系统服务
修改服务的端口  D:\mongodb\bin\mongod &#8211;dbpath D:\data &#8211;port 10001
其他配置 敲 mongod -h 就会出来
]]></description>
			<content:encoded><![CDATA[<p>平时还是windows用的多，所以很多测试也习惯用windows。</p>
<p>首先下载mongodb的windows编译版本：</p>
<p>http://www.mongodb.org/display/DOCS/Downloads    http://downloads.mongodb.org/win32/mongodb-win32-i386-1.2.4.zip</p>
<p>解压后存放于 D:\mongodb</p>
<p>创建数据存放目录  D:\data</p>
<p>启动数据库  D:\mongodb\bin\mongod &#8211;dbpath D:\data</p>
<p>然后测试连接情况 D:\mongodb\bin\mongo</p>
<p>因为都是使用默认配置，如果出现以下回显，则证明安装成功</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">MongoDB shell version: 1.2.4</li>
<li>url: test</li>
<li>connecting to: test</li>
<li>type &quot;exit&quot; to exit</li>
<li>type &quot;help&quot; for help</li>
<li>&gt;</li></ol></div>
<p>进阶：为了平时使用方便，把mongod注册为系统服务</p>
<p>D:\mongodb\bin\mongod &#8211;dbpath D:\data &#8211;install       #注册为系统服务</p>
<p>修改服务的端口  D:\mongodb\bin\mongod &#8211;dbpath D:\data &#8211;port 10001</p>
<p>其他配置 敲 mongod -h 就会出来</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/03/18/mongodb-windows%e5%b9%b3%e5%8f%b0%e4%b8%8b%e7%9a%84%e5%ae%89%e8%a3%85%e5%92%8c%e4%bd%bf%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>系统重装那事</title>
		<link>http://www.sunboyu.cn/2010/03/04/%e7%b3%bb%e7%bb%9f%e9%87%8d%e8%a3%85%e9%82%a3%e4%ba%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2010/03/04/%e7%b3%bb%e7%bb%9f%e9%87%8d%e8%a3%85%e9%82%a3%e4%ba%8b.shtml#comments</comments>
		<pubDate>Thu, 04 Mar 2010 13:38:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1176</guid>
		<description><![CDATA[写了个简单的笔记

金山毒霸2009杀毒套装  找公司要序列号
WPS OFFICE个人版  下载
fireworks
dreamweave
editplus 设置
adobe reader
mindmanager
foxmail 设置
搜狗输入法 设置
腾讯通
firefox
firebug
alexabar
httpwatch
svn客户端 配置
windows补丁
sp3
apache
php
mysql
python2.5
msn
cuteftp
加入公司的域
设置ip
环境变量 D:\dev\PHP5;D:\dev\PHP5\ext;

]]></description>
			<content:encoded><![CDATA[<p>写了个简单的笔记</p>
<blockquote><p>
金山毒霸2009杀毒套装  找公司要序列号<br />
WPS OFFICE个人版  下载<br />
fireworks<br />
dreamweave<br />
editplus 设置<br />
adobe reader<br />
mindmanager<br />
foxmail 设置<br />
搜狗输入法 设置<br />
腾讯通<br />
firefox<br />
firebug<br />
alexabar<br />
httpwatch<br />
svn客户端 配置<br />
windows补丁<br />
sp3<br />
apache<br />
php<br />
mysql<br />
python2.5<br />
msn<br />
cuteftp<br />
加入公司的域<br />
设置ip<br />
环境变量 D:\dev\PHP5;D:\dev\PHP5\ext;
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/03/04/%e7%b3%bb%e7%bb%9f%e9%87%8d%e8%a3%85%e9%82%a3%e4%ba%8b.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>新年新气象</title>
		<link>http://www.sunboyu.cn/2010/03/02/%e6%96%b0%e5%b9%b4%e6%96%b0%e6%b0%94%e8%b1%a1-2.shtml</link>
		<comments>http://www.sunboyu.cn/2010/03/02/%e6%96%b0%e5%b9%b4%e6%96%b0%e6%b0%94%e8%b1%a1-2.shtml#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:25:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1174</guid>
		<description><![CDATA[1、千万别碰网游，除非你靠网游吃饭
2、多看书总是有用的，包括闲书
3、多交朋友，多帮助别人。感情是个银行，利息很大
4、学习依然是最重要的
5、虽然很俗，虽然通货膨胀，但人民币是最可爱的东西
]]></description>
			<content:encoded><![CDATA[<p>1、千万别碰网游，除非你靠网游吃饭<br />
2、多看书总是有用的，包括闲书<br />
3、多交朋友，多帮助别人。感情是个银行，利息很大<br />
4、学习依然是最重要的<br />
5、虽然很俗，虽然通货膨胀，但人民币是最可爱的东西</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/03/02/%e6%96%b0%e5%b9%b4%e6%96%b0%e6%b0%94%e8%b1%a1-2.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>头绪与条理</title>
		<link>http://www.sunboyu.cn/2010/01/30/%e5%a4%b4%e7%bb%aa%e4%b8%8e%e6%9d%a1%e7%90%86.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/30/%e5%a4%b4%e7%bb%aa%e4%b8%8e%e6%9d%a1%e7%90%86.shtml#comments</comments>
		<pubDate>Sat, 30 Jan 2010 03:57:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1172</guid>
		<description><![CDATA[没想到这两个词具体是什么意思，但这肯定是我的缺陷了。
前几天培训，被指出这个毛病，其实仔细回想，工作中何尝不是没有头绪条理，很多事情忙的团团转，搞的一团糟。
改正这个毛病其实用了很长时间，从期初开始做简单的文件记录，到后来大量的纸质手稿，到现在详细的记录和思维软件(mindmanage)的应用，对做事有了很多提高。
昨天晚上加班，自愿加班，去完成一个我所认为半天就能完成的工作，其实用了将近一天，实际工作时间也算半天吧。时间浪费了一大半，是因为以前已经实现的一个冗杂的逻辑又去想了一遍，结果还没想明白。后把之前的逻辑拿来，20分钟顺利结束了战斗。
非常勤恳的工作不是啥好事，漂亮得完成工作并把时间留给自己才是王道。
]]></description>
			<content:encoded><![CDATA[<p>没想到这两个词具体是什么意思，但这肯定是我的缺陷了。</p>
<p>前几天培训，被指出这个毛病，其实仔细回想，工作中何尝不是没有头绪条理，很多事情忙的团团转，搞的一团糟。</p>
<p>改正这个毛病其实用了很长时间，从期初开始做简单的文件记录，到后来大量的纸质手稿，到现在详细的记录和思维软件(mindmanage)的应用，对做事有了很多提高。</p>
<p>昨天晚上加班，自愿加班，去完成一个我所认为半天就能完成的工作，其实用了将近一天，实际工作时间也算半天吧。时间浪费了一大半，是因为以前已经实现的一个冗杂的逻辑又去想了一遍，结果还没想明白。后把之前的逻辑拿来，20分钟顺利结束了战斗。</p>
<p>非常勤恳的工作不是啥好事，漂亮得完成工作并把时间留给自己才是王道。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/30/%e5%a4%b4%e7%bb%aa%e4%b8%8e%e6%9d%a1%e7%90%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>程序员的跳跃思维与作品</title>
		<link>http://www.sunboyu.cn/2010/01/21/%e7%a8%8b%e5%ba%8f%e5%91%98%e7%9a%84%e8%b7%b3%e8%b7%83%e6%80%9d%e7%bb%b4%e4%b8%8e%e4%bd%9c%e5%93%81.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/21/%e7%a8%8b%e5%ba%8f%e5%91%98%e7%9a%84%e8%b7%b3%e8%b7%83%e6%80%9d%e7%bb%b4%e4%b8%8e%e4%bd%9c%e5%93%81.shtml#comments</comments>
		<pubDate>Thu, 21 Jan 2010 14:04:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1169</guid>
		<description><![CDATA[前段时间，我的网站自觉和谐了，留下了一个空荡荡的服务器。当然，有个必须解决的事情，就是月付的租用费用。
我挣的都是辛苦钱，更让我明白了时间就是金钱的概念。因此，我得让我的服务器有所产出。
想了很多种方案，有好友提示：学习芭比豆淘小宝之类的网站，出租相册空间给卖家也不错。伟大！
遂开始配服务写代码。写到一半，突然发现，时间付出也许跟此项目的产出严重不符。一台服务器利润太小，除非实现规模化运营。而我最不擅长的就是销售，看着写了一半的程序心疼，遂产生念头，把代码开放给需要的人，作为一个开源项目让其自生自灭。
我知道程序员为啥都穷的叮当了。
演示：http://taobao.sunboyu.cn/
谁帮我做个界面……
请耐心等待我的程序注释和配置指南……
]]></description>
			<content:encoded><![CDATA[<p>前段时间，我的网站自觉和谐了，留下了一个空荡荡的服务器。当然，有个必须解决的事情，就是月付的租用费用。</p>
<p>我挣的都是辛苦钱，更让我明白了时间就是金钱的概念。因此，我得让我的服务器有所产出。</p>
<p>想了很多种方案，有好友提示：学习芭比豆淘小宝之类的网站，出租相册空间给卖家也不错。伟大！</p>
<p>遂开始配服务写代码。写到一半，突然发现，时间付出也许跟此项目的产出严重不符。一台服务器利润太小，除非实现规模化运营。而我最不擅长的就是销售，看着写了一半的程序心疼，遂产生念头，把代码开放给需要的人，作为一个开源项目让其自生自灭。</p>
<p>我知道程序员为啥都穷的叮当了。</p>
<p>演示：<a href="http://taobao.sunboyu.cn/">http://taobao.sunboyu.cn/</a></p>
<p>谁帮我做个界面……</p>
<p>请耐心等待我的程序注释和配置指南……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/21/%e7%a8%8b%e5%ba%8f%e5%91%98%e7%9a%84%e8%b7%b3%e8%b7%83%e6%80%9d%e7%bb%b4%e4%b8%8e%e4%bd%9c%e5%93%81.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>discuz论坛sessions表最终优化方案</title>
		<link>http://www.sunboyu.cn/2010/01/17/discuz%e8%ae%ba%e5%9d%9bsessions%e8%a1%a8%e6%9c%80%e7%bb%88%e4%bc%98%e5%8c%96%e6%96%b9%e6%a1%88.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/17/discuz%e8%ae%ba%e5%9d%9bsessions%e8%a1%a8%e6%9c%80%e7%bb%88%e4%bc%98%e5%8c%96%e6%96%b9%e6%a1%88.shtml#comments</comments>
		<pubDate>Sun, 17 Jan 2010 15:00:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[sessions表]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1163</guid>
		<description><![CDATA[最近一直在折腾dz的sessions表优化。经过某群好友的各种方法提示和一些高数据量用户论坛的鼎力支持，总结以下优化方案。部分方案是在某些论坛正在使用的，部分方案是我发散思维总结的，没有经过大数据量和大负载下的应用，只是作为一个备选的方案，当然欢迎朋友们拿去实践。
1、分库
这个方法至少两三个注册用户百万级至千万级的论坛在使用。实施也比较简单，只需要把sessions表放在其他的库中，跟论坛主库分离，这样，就可以用多台服务器来分担论坛压力。sessions表查询的地方，如果直接查询，则连sessions表所在的库，如果是联查，则分别查询后，合并插叙结果。
2、砍功能
这个方法虽然不实用，但的确有效。仔细看看dz的一些sql语句，就知道砍掉某些功能摆脱sessions表的约束，性能会有多大的提高。砍功能，最终还是为了提升性能。但如果不砍功能又提升性能，才是终极目的。此方法适用于对某些统计功能要求不高的论坛使用。
3、memcached存储sessions，异步统计用户的在线数据
此方法其实还是砍掉了论坛的用户在线统计功能而独立开发一套统计系统。此思路来源于我们的统计服务器。如果统计服务器已经统计了部分信息，就没必要再去耗费大量的sql效率去进行统计。当时我们负责统计的吴同学正好也要开发一套针对不同系统的统计代码，我可以直接把要统计的数据提交给统计服务器，再由统计服务器返回统计结果。以异步的方式来统计，化解dz sessions表的性能瓶颈。而统计信息的异步提交，可以提交到本地数据库，可以提交到第三方统计系统，当然也可以根据需要独立开发一套小型统计系统。
方案3是本人原创方案，方案的修改代码在以下附件中：  异步session统计信息同步，欢迎大家使用。
由于dz的开发考虑的是大众市场，功能冗余代码逻辑复杂。但优化dz并不是那么的困难，而优化的思路，也是跟其他系统优化相似：mysql瓶颈。一个即将崩溃的系统，或者频繁崩溃的系统，是进行优化的最好示例：减少sql查询，提高sql语句查询效率。dz考虑大众市场，为了提高产品兼容性，并没有引入太多的第三方软件：比如memcached，bdb，ttserver等，虽然内部已经为主从预留了接口，但未见很明显的文档支持。
第三个方案优化的思路也很明显，减少sessions表的慢查询而改为memcached高速的数据存储，把统计功能做接口留出，此功能给第三方来做。这样sessions表的瓶颈即可消除。
]]></description>
			<content:encoded><![CDATA[<p>最近一直在折腾dz的sessions表优化。经过某群好友的各种方法提示和一些高数据量用户论坛的鼎力支持，总结以下优化方案。部分方案是在某些论坛正在使用的，部分方案是我发散思维总结的，没有经过大数据量和大负载下的应用，只是作为一个备选的方案，当然欢迎朋友们拿去实践。</p>
<p>1、分库</p>
<p>这个方法至少两三个注册用户百万级至千万级的论坛在使用。实施也比较简单，只需要把sessions表放在其他的库中，跟论坛主库分离，这样，就可以用多台服务器来分担论坛压力。sessions表查询的地方，如果直接查询，则连sessions表所在的库，如果是联查，则分别查询后，合并插叙结果。</p>
<p>2、砍功能</p>
<p>这个方法虽然不实用，但的确有效。仔细看看dz的一些sql语句，就知道砍掉某些功能摆脱sessions表的约束，性能会有多大的提高。砍功能，最终还是为了提升性能。但如果不砍功能又提升性能，才是终极目的。此方法适用于对某些统计功能要求不高的论坛使用。</p>
<p>3、memcached存储sessions，异步统计用户的在线数据</p>
<p>此方法其实还是砍掉了论坛的用户在线统计功能而独立开发一套统计系统。此思路来源于我们的统计服务器。如果统计服务器已经统计了部分信息，就没必要再去耗费大量的sql效率去进行统计。当时我们负责统计的吴同学正好也要开发一套针对不同系统的统计代码，我可以直接把要统计的数据提交给统计服务器，再由统计服务器返回统计结果。以异步的方式来统计，化解dz sessions表的性能瓶颈。而统计信息的异步提交，可以提交到本地数据库，可以提交到第三方统计系统，当然也可以根据需要独立开发一套小型统计系统。</p>
<p>方案3是本人原创方案，方案的修改代码在以下附件中：  <a href='http://www.sunboyu.cn/upfiles/2010/01/异步session统计信息同步.txt'>异步session统计信息同步</a>，欢迎大家使用。</p>
<p>由于dz的开发考虑的是大众市场，功能冗余代码逻辑复杂。但优化dz并不是那么的困难，而优化的思路，也是跟其他系统优化相似：mysql瓶颈。一个即将崩溃的系统，或者频繁崩溃的系统，是进行优化的最好示例：减少sql查询，提高sql语句查询效率。dz考虑大众市场，为了提高产品兼容性，并没有引入太多的第三方软件：比如memcached，bdb，ttserver等，虽然内部已经为主从预留了接口，但未见很明显的文档支持。<br />
第三个方案优化的思路也很明显，减少sessions表的慢查询而改为memcached高速的数据存储，把统计功能做接口留出，此功能给第三方来做。这样sessions表的瓶颈即可消除。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/17/discuz%e8%ae%ba%e5%9d%9bsessions%e8%a1%a8%e6%9c%80%e7%bb%88%e4%bc%98%e5%8c%96%e6%96%b9%e6%a1%88.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>撞在墙上的一个思路</title>
		<link>http://www.sunboyu.cn/2010/01/16/%e6%92%9e%e5%9c%a8%e5%a2%99%e4%b8%8a%e7%9a%84%e4%b8%80%e4%b8%aa%e6%80%9d%e8%b7%af.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/16/%e6%92%9e%e5%9c%a8%e5%a2%99%e4%b8%8a%e7%9a%84%e4%b8%80%e4%b8%aa%e6%80%9d%e8%b7%af.shtml#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:59:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1159</guid>
		<description><![CDATA[今天一天没干别的，没写程序，没玩游戏，除了中午参加公司的一个吹气球比赛得了第一，获得“**公司第一吹”的称号。
一天都在考虑使用完全开源的方案来解决dz sessions表的性能问题。中午大脑极度紧张，以至于撞在关兄的工位，工位几近散架。
在轻度震荡中想到一个优化方案，就是分离sessions表的一些功能，把sessions会话和统计功能分离，并且统计使用异步提交。
这样，如果sessions会话生存期10分钟的量计算，20万人同时在线，sessions会话存memcached，而统计只用少量字段在独立的表中。因为php的sessions操作速度高，而统计信息调用并不是非常频繁，并且查找也是简单的int型查询，速度快，并且也进行memcached缓存。
下午吴同学详细讲述了我们的统计系统的负载和数据量，在大量实际应用的基础上，我的方案应该能很好的实施。
这样算来，连接瓶颈跟存储瓶颈似乎都能解决。明天集中时间实现这个方案。
]]></description>
			<content:encoded><![CDATA[<p>今天一天没干别的，没写程序，没玩游戏，除了中午参加公司的一个吹气球比赛得了第一，获得“**公司第一吹”的称号。</p>
<p>一天都在考虑使用完全开源的方案来解决dz sessions表的性能问题。中午大脑极度紧张，以至于撞在关兄的工位，工位几近散架。</p>
<p>在轻度震荡中想到一个优化方案，就是分离sessions表的一些功能，把sessions会话和统计功能分离，并且统计使用异步提交。</p>
<p>这样，如果sessions会话生存期10分钟的量计算，20万人同时在线，sessions会话存memcached，而统计只用少量字段在独立的表中。因为php的sessions操作速度高，而统计信息调用并不是非常频繁，并且查找也是简单的int型查询，速度快，并且也进行memcached缓存。</p>
<p>下午吴同学详细讲述了我们的统计系统的负载和数据量，在大量实际应用的基础上，我的方案应该能很好的实施。</p>
<p>这样算来，连接瓶颈跟存储瓶颈似乎都能解决。明天集中时间实现这个方案。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/16/%e6%92%9e%e5%9c%a8%e5%a2%99%e4%b8%8a%e7%9a%84%e4%b8%80%e4%b8%aa%e6%80%9d%e8%b7%af.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>关于discuz的优化纠结</title>
		<link>http://www.sunboyu.cn/2010/01/15/%e5%85%b3%e4%ba%8ediscuz%e7%9a%84%e4%bc%98%e5%8c%96%e7%ba%a0%e7%bb%93.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/15/%e5%85%b3%e4%ba%8ediscuz%e7%9a%84%e4%bc%98%e5%8c%96%e7%ba%a0%e7%bb%93.shtml#comments</comments>
		<pubDate>Fri, 15 Jan 2010 07:23:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1155</guid>
		<description><![CDATA[最近一直在寻找一个开源的方案来解决discuz的性能瓶颈。在做完几个关键表的分表后，sessions表又成了最大的瓶颈。因为页面每次刷新，至少两个sql语句在session表上，究其原因，session表的最大作用在于对用户行为的统计。
曾经尝试过使用php的session，不过支持phpsession的几个sever都不支持条件查询，除非是遍历匹配。这样也不能起到提高性能的作用。
在以上条件下，我寻找了两套方案：ttserver mongodb。
在session表100w数据的测试下，得出以下数据：

连接测试-只测试连接释放
tt:40.0904033184
mysqldb:0.0669066905975
mongodb:226.840053558
mysqldb:0.154407262802
经过一万次的连接测试，同一个脚本中，
ttserver连接耗时 40.09 秒，而mysql连接耗时0.07秒 linux下测试
mongodb 连接耗时 226.8 秒，而mysql连接耗时0.15秒 linux下测试
但是在500次的查询测试中，同一个脚本中，主键查询和索引优化后的复杂查询
mongodb 查询耗时 0.021 秒
mysql   查询耗时 0.123 秒

可以看出，tt和mongo两个功能上完全支持此表优化的数据库，在连接性能上远不如mysql，而web为频繁连接中断的服务，显然并不适合做这项功能。
继续寻找支持此功能的开源方案，欢迎大家提供线索。
]]></description>
			<content:encoded><![CDATA[<p>最近一直在寻找一个开源的方案来解决discuz的性能瓶颈。在做完几个关键表的分表后，sessions表又成了最大的瓶颈。因为页面每次刷新，至少两个sql语句在session表上，究其原因，session表的最大作用在于对用户行为的统计。</p>
<p>曾经尝试过使用php的session，不过支持phpsession的几个sever都不支持条件查询，除非是遍历匹配。这样也不能起到提高性能的作用。</p>
<p>在以上条件下，我寻找了两套方案：ttserver mongodb。</p>
<p>在session表100w数据的测试下，得出以下数据：</p>
<blockquote><p>
连接测试-只测试连接释放<br />
tt:40.0904033184<br />
mysqldb:0.0669066905975</p>
<p>mongodb:226.840053558<br />
mysqldb:0.154407262802</p>
<p>经过一万次的连接测试，同一个脚本中，<br />
ttserver连接耗时 40.09 秒，而mysql连接耗时0.07秒 linux下测试<br />
mongodb 连接耗时 226.8 秒，而mysql连接耗时0.15秒 linux下测试</p>
<p>但是在500次的查询测试中，同一个脚本中，主键查询和索引优化后的复杂查询<br />
mongodb 查询耗时 0.021 秒<br />
mysql   查询耗时 0.123 秒
</p></blockquote>
<p>可以看出，tt和mongo两个功能上完全支持此表优化的数据库，在连接性能上远不如mysql，而web为频繁连接中断的服务，显然并不适合做这项功能。</p>
<p>继续寻找支持此功能的开源方案，欢迎大家提供线索。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/15/%e5%85%b3%e4%ba%8ediscuz%e7%9a%84%e4%bc%98%e5%8c%96%e7%ba%a0%e7%bb%93.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>剑侠世界三-大堂驿报-财经-古井泉的回落谈叶芷青服务器的金融情况</title>
		<link>http://www.sunboyu.cn/2010/01/11/%e5%89%91%e4%be%a0%e4%b8%96%e7%95%8c%e4%b8%89-%e5%a4%a7%e5%a0%82%e9%a9%bf%e6%8a%a5-%e8%b4%a2%e7%bb%8f-%e5%8f%a4%e4%ba%95%e6%b3%89%e7%9a%84%e5%9b%9e%e8%90%bd%e8%b0%88%e5%8f%b6%e8%8a%b7%e9%9d%92.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/11/%e5%89%91%e4%be%a0%e4%b8%96%e7%95%8c%e4%b8%89-%e5%a4%a7%e5%a0%82%e9%a9%bf%e6%8a%a5-%e8%b4%a2%e7%bb%8f-%e5%8f%a4%e4%ba%95%e6%b3%89%e7%9a%84%e5%9b%9e%e8%90%bd%e8%b0%88%e5%8f%b6%e8%8a%b7%e9%9d%92.shtml#comments</comments>
		<pubDate>Mon, 11 Jan 2010 06:51:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1151</guid>
		<description><![CDATA[我是剑三里一小商人，小本生意下自然不会有太多极品的材料，不过小生意也红红火火。做生意自然要关注市场动态，底下谈谈朝廷和金融的一些动态。
最近朝廷发威，70个区服封杀外挂将近2500多个。兴奋之余，不免悲哀：我的唯一的一个古井泉由三天前的1700金将到了1200金，世界频道很多人以千金的价格抛售，难得一个冤大头1050金买走了我的古井泉。
古井泉价格下滑，跟封挂有着密切关系。封挂，意味着大量的古井将回归到玩家手里，更有小道消息：古井的爆率大部分将放到副本里。综合这两个因素，外挂商大量抛售古井套现，而玩家也有了获得古井新的手段，价格自然会回降。
朝廷用金融的手段来封外挂，比技术手段高明得多。
再谈封挂对其他物价的影响。
受古井降价影响，很多玩家开始筹备铸造或者缝纫高级紫装，古井泉到位，其他材料自然要凑齐。千年冰芯、珍珠缀放的价格有所上涨，是三天前的5~10倍。其他普通材料变化不大，但有上涨的趋势。
由于很多外挂被封，绫罗水波零这些普通的日常冲级材料会涨价。以前交易行的低价材料大部分都是外挂商打出，他们的倾销造成价格很低。
中冷泉五莲泉由于广阔的市场，价格依然坚挺，隐月线、天山雪水等蓝色材料，根据爆率和市场需求，价格会保持稳定，不会有太大起伏。
最近铜锭等低级的材料又涨价趋势，因为很多70级的铸造材料，中间需要铜锭等。因此，小号们赶紧多打点铜锭，技能练习采矿铸造，又能小发一笔补贴家用。
剑三的市场跟真实的世界有很大的相似之处，因此想发财，还是要多关注我们的财经报道。谢谢各位大侠。
]]></description>
			<content:encoded><![CDATA[<p>我是剑三里一小商人，小本生意下自然不会有太多极品的材料，不过小生意也红红火火。做生意自然要关注市场动态，底下谈谈朝廷和金融的一些动态。</p>
<p>最近朝廷发威，70个区服封杀外挂将近2500多个。兴奋之余，不免悲哀：我的唯一的一个古井泉由三天前的1700金将到了1200金，世界频道很多人以千金的价格抛售，难得一个冤大头1050金买走了我的古井泉。</p>
<p>古井泉价格下滑，跟封挂有着密切关系。封挂，意味着大量的古井将回归到玩家手里，更有小道消息：古井的爆率大部分将放到副本里。综合这两个因素，外挂商大量抛售古井套现，而玩家也有了获得古井新的手段，价格自然会回降。</p>
<p>朝廷用金融的手段来封外挂，比技术手段高明得多。</p>
<p>再谈封挂对其他物价的影响。</p>
<p>受古井降价影响，很多玩家开始筹备铸造或者缝纫高级紫装，古井泉到位，其他材料自然要凑齐。千年冰芯、珍珠缀放的价格有所上涨，是三天前的5~10倍。其他普通材料变化不大，但有上涨的趋势。</p>
<p>由于很多外挂被封，绫罗水波零这些普通的日常冲级材料会涨价。以前交易行的低价材料大部分都是外挂商打出，他们的倾销造成价格很低。</p>
<p>中冷泉五莲泉由于广阔的市场，价格依然坚挺，隐月线、天山雪水等蓝色材料，根据爆率和市场需求，价格会保持稳定，不会有太大起伏。</p>
<p>最近铜锭等低级的材料又涨价趋势，因为很多70级的铸造材料，中间需要铜锭等。因此，小号们赶紧多打点铜锭，技能练习采矿铸造，又能小发一笔补贴家用。</p>
<p>剑三的市场跟真实的世界有很大的相似之处，因此想发财，还是要多关注我们的财经报道。谢谢各位大侠。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/11/%e5%89%91%e4%be%a0%e4%b8%96%e7%95%8c%e4%b8%89-%e5%a4%a7%e5%a0%82%e9%a9%bf%e6%8a%a5-%e8%b4%a2%e7%bb%8f-%e5%8f%a4%e4%ba%95%e6%b3%89%e7%9a%84%e5%9b%9e%e8%90%bd%e8%b0%88%e5%8f%b6%e8%8a%b7%e9%9d%92.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小改EditPlus打造python开发环境</title>
		<link>http://www.sunboyu.cn/2010/01/10/%e5%b0%8f%e6%94%b9editplus%e6%89%93%e9%80%a0python%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/10/%e5%b0%8f%e6%94%b9editplus%e6%89%93%e9%80%a0python%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83.shtml#comments</comments>
		<pubDate>Sun, 10 Jan 2010 13:00:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[原创技术]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1148</guid>
		<description><![CDATA[editplus默认是不支持python开发的，但官方提供了相关的支持：
http://www.editplus.com/dn.cgi?python3.zip
在 菜单->工具选择->语法 中，可以新建语法类型 python,扩展名 py,语法文件为python.stx,自动完成文件为python.acp
即可。
]]></description>
			<content:encoded><![CDATA[<p>editplus默认是不支持python开发的，但官方提供了相关的支持：</p>
<p>http://www.editplus.com/dn.cgi?python3.zip</p>
<p>在 菜单->工具选择->语法 中，可以新建语法类型 python,扩展名 py,语法文件为python.stx,自动完成文件为python.acp</p>
<p>即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/10/%e5%b0%8f%e6%94%b9editplus%e6%89%93%e9%80%a0python%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在nginx下配置自动虚拟主机</title>
		<link>http://www.sunboyu.cn/2010/01/09/%e5%9c%a8nginx%e4%b8%8b%e9%85%8d%e7%bd%ae%e8%87%aa%e5%8a%a8%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/09/%e5%9c%a8nginx%e4%b8%8b%e9%85%8d%e7%bd%ae%e8%87%aa%e5%8a%a8%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba.shtml#comments</comments>
		<pubDate>Fri, 08 Jan 2010 16:33:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[虚拟主机]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1143</guid>
		<description><![CDATA[以前用apache，很多虚拟主机的时候，用 mod_vhost_alias 模块去解决。nginx似乎没有这样的功能。
原来为了做这个功能，我用python写了一堆脚本，去自动管理nginx的配置文件，结果还是不理想。频繁重写配置文件，频繁重启，总会出现点问题。
在nginx的0.8.*下，发现了这样的功能：http://wiki.nginx.org/NginxHttpCoreModule

Since nginx 0.8.25 named captures can be used in server_name:
server {
  server_name   ~^(www\.)?(?.+)$;
  location / {
    root  /sites/$domain;
  }
}

大喜，于是乎做出如下配置，实现了nginx下自动虚拟主机的功能：
server {
&#160;&#160; &#160; listen&#160; &#160; &#160; &#160;80;
&#160;&#160; &#160; server_name&#160; ~^(?P&#60;domainname&#62;.+)\.autovhost\.sunboyu\.cn$;
&#160;&#160; &#160; location / {
&#160;&#160; &#160; &#160; &#160; #autoindex&#160; on;
&#160;&#160; &#160; &#160; &#160; root&#160; &#160;/home/vhost/$domainname;
&#160;&#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>以前用apache，很多虚拟主机的时候，用 mod_vhost_alias 模块去解决。nginx似乎没有这样的功能。</p>
<p>原来为了做这个功能，我用python写了一堆脚本，去自动管理nginx的配置文件，结果还是不理想。频繁重写配置文件，频繁重启，总会出现点问题。</p>
<p>在nginx的0.8.*下，发现了这样的功能：http://wiki.nginx.org/NginxHttpCoreModule</p>
<blockquote><p>
Since nginx 0.8.25 named captures can be used in server_name:<br />
server {<br />
  server_name   ~^(www\.)?(?<domain>.+)$;<br />
  location / {<br />
    root  /sites/$domain;<br />
  }<br />
}<br />
</domain></p></blockquote>
<p>大喜，于是乎做出如下配置，实现了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; listen&nbsp; &nbsp; &nbsp; &nbsp;80;</li>
<li>&nbsp;&nbsp; &nbsp; server_name&nbsp; ~^(?P&lt;domainname&gt;.+)\.autovhost\.sunboyu\.cn$;</li>
<li>&nbsp;&nbsp; &nbsp; location / {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; #autoindex&nbsp; on;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; root&nbsp; &nbsp;/home/vhost/$domainname;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; index&nbsp; index.html index.htm;</li>
<li>&nbsp;&nbsp; &nbsp; }</li>
<li>&nbsp;&nbsp; &nbsp; access_log /home/autovhost.sunboyu.cn.log main;</li>
<li>}</li>
<li>&lt;/domainname&gt;</li></ol></div>
<p>测试通过。</p>
<p>我的开源虚拟主机管理系统nginx版本指日可待。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/09/%e5%9c%a8nginx%e4%b8%8b%e9%85%8d%e7%bd%ae%e8%87%aa%e5%8a%a8%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>新浪微博短URL的意义和实现</title>
		<link>http://www.sunboyu.cn/2010/01/03/%e6%96%b0%e6%b5%aa%e5%be%ae%e5%8d%9a%e7%9f%adurl%e7%9a%84%e6%84%8f%e4%b9%89%e5%92%8c%e5%ae%9e%e7%8e%b0.shtml</link>
		<comments>http://www.sunboyu.cn/2010/01/03/%e6%96%b0%e6%b5%aa%e5%be%ae%e5%8d%9a%e7%9f%adurl%e7%9a%84%e6%84%8f%e4%b9%89%e5%92%8c%e5%ae%9e%e7%8e%b0.shtml#comments</comments>
		<pubDate>Sat, 02 Jan 2010 16:40:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[微博]]></category>
		<category><![CDATA[新浪]]></category>
		<category><![CDATA[短url]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1141</guid>
		<description><![CDATA[新浪微博，就是迷你博客（废话）。我关心的不是博客，是url。里边的url全部使用了一种很短的url，比如 http://sinaurl.cn/**** 这里猜测了这种url的实现意义：
1：减少url所占的字数，优化排版。微博就是一个小，如果我贴了一个地址就占一半的字数，那作者很不爽，读者很不爽，做页面那哥们(MM)肯定跟不爽。所以，咱弄个短的url，岂不皆大欢喜。
2：排挤灌水广告者。众所周知，很多广告者为了广告，或者为了页面优化，得群发垃圾消息增加反向链接数。而短url跳转这种方式根本无法增加反向链接数。也就是这种方式从根本上掐断了垃圾群发者的命根子，这样也就减少了垃圾信息的量，节约了信息审核的人工成本（这项成本随着严打是越来越高啊）。
3：暂时没想出来。
实现，其实很简单，就是接收个id，然后找到对应记录就行。根据新浪信息的量，不可能用mysql的，成本高（负载和硬件消耗）。不可能用oracle，凭我的了解，不可能用。
新浪在小日本那个ttserver的基础上开发了个支持分布式的key->value型的数据库，这玩意正好用上，支持高并发大负载，逻辑简单还支持分布式，这么实现貌似最好不过。
吃饱没事，大半夜写文章。欢迎大家来讨论。
]]></description>
			<content:encoded><![CDATA[<p>新浪微博，就是迷你博客（废话）。我关心的不是博客，是url。里边的url全部使用了一种很短的url，比如 http://sinaurl.cn/**** 这里猜测了这种url的实现意义：</p>
<p>1：减少url所占的字数，优化排版。微博就是一个小，如果我贴了一个地址就占一半的字数，那作者很不爽，读者很不爽，做页面那哥们(MM)肯定跟不爽。所以，咱弄个短的url，岂不皆大欢喜。</p>
<p>2：排挤灌水广告者。众所周知，很多广告者为了广告，或者为了页面优化，得群发垃圾消息增加反向链接数。而短url跳转这种方式根本无法增加反向链接数。也就是这种方式从根本上掐断了垃圾群发者的命根子，这样也就减少了垃圾信息的量，节约了信息审核的人工成本（这项成本随着严打是越来越高啊）。</p>
<p>3：暂时没想出来。</p>
<p>实现，其实很简单，就是接收个id，然后找到对应记录就行。根据新浪信息的量，不可能用mysql的，成本高（负载和硬件消耗）。不可能用oracle，凭我的了解，不可能用。</p>
<p>新浪在小日本那个ttserver的基础上开发了个支持分布式的key->value型的数据库，这玩意正好用上，支持高并发大负载，逻辑简单还支持分布式，这么实现貌似最好不过。</p>
<p>吃饱没事，大半夜写文章。欢迎大家来讨论。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2010/01/03/%e6%96%b0%e6%b5%aa%e5%be%ae%e5%8d%9a%e7%9f%adurl%e7%9a%84%e6%84%8f%e4%b9%89%e5%92%8c%e5%ae%9e%e7%8e%b0.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>单点登录sso粗解+示例</title>
		<link>http://www.sunboyu.cn/2009/12/31/%e5%8d%95%e7%82%b9%e7%99%bb%e5%bd%95sso%e7%b2%97%e8%a7%a3%e7%a4%ba%e4%be%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/31/%e5%8d%95%e7%82%b9%e7%99%bb%e5%bd%95sso%e7%b2%97%e8%a7%a3%e7%a4%ba%e4%be%8b.shtml#comments</comments>
		<pubDate>Thu, 31 Dec 2009 02:56:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[sso]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1131</guid>
		<description><![CDATA[
用户中心代码 sso
跨域测试脚本 cookie

单点登录，英语为 Single Sign-On，粗俗点讲，就是登录一次，全站适用。
单点登录在应用中的实际意义，就是减少开发量，增强用户体验。
减少开发量，指的是：只要开发一套用户系统， 各个系统统一调用。用户系统尽量优化接口，通用性，安全性，达到一次开发， 全站适用。
增强用户体验，指的是：用户一次登录，全站登录。而不是切换一个模块，就登录一次。
web方面单点登录主要是用cookie传递令牌进行身份认证。简单说下令牌。
我这里用散列值来作为令牌，当然散列值之中有我的的密钥，防止别人伪造我的令牌。
环境：sso.sunboyu.cn 用户中心 vps.sunboyu.cn/cookie.php 跨子域不同脚本访问测试。 令牌密钥: $key
具体规则： sso.sunboyu.cn 用户登录，登录信息写到cookie，cookie做用域为 sunboyu.cn。并且生成令牌sso_key=md5(uid+username+key)。
登陆后，其他子域站点调用此cookie信息，并且验证此令牌是否是合法的令牌，if( md5( cookie[uid]+cookie[username] )==cookie[key] )
这样既可判断，此令牌合法性而确认此用户为登录。
具体demo:http://sso.sunboyu.cn
延伸：一个简单的md5似乎很容易让别人猜解加密的算法，来暴力一翻也不是没有可能，因此，除了加密外，算法的安全性和密钥的安全性也是需要考虑的。
如果安全级别要求高之又高，可以考虑rsa算法，不过速度就是问题了。其中又参考了一些朋友的意见，用对称加密，比如php中的Mcrypt 函数。
扩展开发：对于大多数网站，跨子域的单点登录就能满足应用。但对于一些域名复杂的网站，比如sohu，显然多个域名不能用此方法实现。这时就得搞出跨跨的单点登录系统。等年后继续得瑟。
]]></description>
			<content:encoded><![CDATA[<blockquote><p>
用户中心代码 <a href='http://www.sunboyu.cn/upfiles/2009/12/sso.rar'>sso</a><br />
跨域测试脚本 <a href='http://www.sunboyu.cn/upfiles/2009/12/cookie.rar'>cookie</a>
</p></blockquote>
<p>单点登录，英语为 Single Sign-On，粗俗点讲，就是登录一次，全站适用。</p>
<p>单点登录在应用中的实际意义，就是减少开发量，增强用户体验。</p>
<p>减少开发量，指的是：只要开发一套用户系统， 各个系统统一调用。用户系统尽量优化接口，通用性，安全性，达到一次开发， 全站适用。</p>
<p>增强用户体验，指的是：用户一次登录，全站登录。而不是切换一个模块，就登录一次。</p>
<p>web方面单点登录主要是用cookie传递令牌进行身份认证。简单说下令牌。</p>
<p>我这里用散列值来作为令牌，当然散列值之中有我的的密钥，防止别人伪造我的令牌。</p>
<blockquote><p>环境：sso.sunboyu.cn 用户中心 vps.sunboyu.cn/cookie.php 跨子域不同脚本访问测试。 令牌密钥: $key</p></blockquote>
<p>具体规则： sso.sunboyu.cn 用户登录，登录信息写到cookie，cookie做用域为 sunboyu.cn。并且生成令牌sso_key=md5(uid+username+key)。</p>
<p>登陆后，其他子域站点调用此cookie信息，并且验证此令牌是否是合法的令牌，if( md5( cookie[uid]+cookie[username] )==cookie[key] )</p>
<p>这样既可判断，此令牌合法性而确认此用户为登录。</p>
<p>具体demo:http://sso.sunboyu.cn</p>
<p>延伸：一个简单的md5似乎很容易让别人猜解加密的算法，来暴力一翻也不是没有可能，因此，除了加密外，算法的安全性和密钥的安全性也是需要考虑的。</p>
<p>如果安全级别要求高之又高，可以考虑rsa算法，不过速度就是问题了。其中又参考了一些朋友的意见，用对称加密，比如php中的Mcrypt 函数。</p>
<p>扩展开发：对于大多数网站，跨子域的单点登录就能满足应用。但对于一些域名复杂的网站，比如sohu，显然多个域名不能用此方法实现。这时就得搞出跨跨的单点登录系统。等年后继续得瑟。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/31/%e5%8d%95%e7%82%b9%e7%99%bb%e5%bd%95sso%e7%b2%97%e8%a7%a3%e7%a4%ba%e4%be%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用无模式数据库来改造dz的session</title>
		<link>http://www.sunboyu.cn/2009/12/29/%e4%bd%bf%e7%94%a8%e6%97%a0%e6%a8%a1%e5%bc%8f%e6%95%b0%e6%8d%ae%e5%ba%93%e6%9d%a5%e6%94%b9%e9%80%a0dz%e7%9a%84session.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/29/%e4%bd%bf%e7%94%a8%e6%97%a0%e6%a8%a1%e5%bc%8f%e6%95%b0%e6%8d%ae%e5%ba%93%e6%9d%a5%e6%94%b9%e9%80%a0dz%e7%9a%84session.shtml#comments</comments>
		<pubDate>Tue, 29 Dec 2009 01:26:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[无模式数据库]]></category>
		<category><![CDATA[瓶颈]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1124</guid>
		<description><![CDATA[前两天还不知道啥是无模式数据库，不过最近迫切需要修改discuz bbs的session表，所以研究了一下相关的资料，发现了无模式这个名字。
具体无模式是啥，这里找了两篇文章：

关系数据库的末日是否已经来临
关系数据库的根本问题分析及数据库革命之走向

关于无模式的应用案例，很典型的一个，就是康盛uchome的feed表。
这里简单介绍几个无模式数据库，供大家参考：
mongodb : http://www.mongodb.org/display/DOCS/Home
mongodb的php扩展 http://www.mongodb.org/display/DOCS/Installing+the+PHP+Driver#InstallingthePHPDriver-PECL
这个数据库已经在淘宝上配合10gen做了云计算的session（名字很操蛋）,具体资料在这里 http://rdc.taobao.com/blog/dw/archives/410。具有了实际应用的东西应该很不错，不过我没尝试过。
Tokyo Tyrant：http://1978th.net/
tt的php扩展 http://www.php.net/manual/en/book.tokyo-tyrant.php
这个大家就比较熟悉了，SB日本鬼子写的东西，应用很广，sina，qq等公司里都在大量应用，sina的研发团队在此基础上还做了个分布式的东东，很是不错。据说这玩意还得到了很多公司的赞助，shit。
TCSQL：张宴基于tt开发的一套东西，内部做了很多算法优化，具体可参考此文章 http://blog.s135.com/tcsql/
总结：康盛使用mysql来存储session，不能说是一种错，但对于dz的负载绝对是第一个瓶颈。用这种方式，在线人数5w对数据库绝对是个坎。很多负载比较大的论坛，都做了此方面的优化，比如，给session表单独一个数据库，或者干脆阉割此功能。不错，独立的session表，或者分库，访问量大的时候，瓶颈依然在mysql上；阉割此功能，有些心疼，而且很多运营数据会丢失。所以，保持原功能而平滑提升性能，是一个不错的解决方向。
]]></description>
			<content:encoded><![CDATA[<p>前两天还不知道啥是无模式数据库，不过最近迫切需要修改discuz bbs的session表，所以研究了一下相关的资料，发现了无模式这个名字。</p>
<p>具体无模式是啥，这里找了两篇文章：</p>
<blockquote><p>
<a href="http://database.51cto.com/art/200903/116752.htm">关系数据库的末日是否已经来临</a><br />
<a href="http://database.51cto.com/art/200908/146424.htm">关系数据库的根本问题分析及数据库革命之走向</a>
</p></blockquote>
<p>关于无模式的应用案例，很典型的一个，就是康盛uchome的feed表。</p>
<p>这里简单介绍几个无模式数据库，供大家参考：</p>
<p>mongodb : http://www.mongodb.org/display/DOCS/Home</p>
<p>mongodb的php扩展 http://www.mongodb.org/display/DOCS/Installing+the+PHP+Driver#InstallingthePHPDriver-PECL</p>
<p>这个数据库已经在淘宝上配合10gen做了云计算的session（名字很操蛋）,具体资料在这里 http://rdc.taobao.com/blog/dw/archives/410。具有了实际应用的东西应该很不错，不过我没尝试过。</p>
<p>Tokyo Tyrant：http://1978th.net/</p>
<p>tt的php扩展 http://www.php.net/manual/en/book.tokyo-tyrant.php</p>
<p>这个大家就比较熟悉了，SB日本鬼子写的东西，应用很广，sina，qq等公司里都在大量应用，sina的研发团队在此基础上还做了个分布式的东东，很是不错。据说这玩意还得到了很多公司的赞助，shit。</p>
<p>TCSQL：张宴基于tt开发的一套东西，内部做了很多算法优化，具体可参考此文章 http://blog.s135.com/tcsql/</p>
<p>总结：康盛使用mysql来存储session，不能说是一种错，但对于dz的负载绝对是第一个瓶颈。用这种方式，在线人数5w对数据库绝对是个坎。很多负载比较大的论坛，都做了此方面的优化，比如，给session表单独一个数据库，或者干脆阉割此功能。不错，独立的session表，或者分库，访问量大的时候，瓶颈依然在mysql上；阉割此功能，有些心疼，而且很多运营数据会丢失。所以，保持原功能而平滑提升性能，是一个不错的解决方向。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/29/%e4%bd%bf%e7%94%a8%e6%97%a0%e6%a8%a1%e5%bc%8f%e6%95%b0%e6%8d%ae%e5%ba%93%e6%9d%a5%e6%94%b9%e9%80%a0dz%e7%9a%84session.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>改变exec的阻塞模式</title>
		<link>http://www.sunboyu.cn/2009/12/25/%e6%94%b9%e5%8f%98exec%e7%9a%84%e9%98%bb%e5%a1%9e%e6%a8%a1%e5%bc%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/25/%e6%94%b9%e5%8f%98exec%e7%9a%84%e9%98%bb%e5%a1%9e%e6%a8%a1%e5%bc%8f.shtml#comments</comments>
		<pubDate>Fri, 25 Dec 2009 02:19:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1118</guid>
		<description><![CDATA[很多操作时间会很长，不能让用户在页面上执行PHP脚本，否则页面会被拖死。
一个不错的方案，就是提交到后台去执行。
linux有个命令 nohup command &#038; 这样就会提交到后台，而终端的用户体会不到程序执行的过程。
原来我使用这种方式 shell_exec( &#8220;nohuo php file.php &#038;&#8221; ) 进行后台提交，后来发现速度依然不快， 还是被挂起了。查看手册，exec函数有如下提示：
Note: 如果用本函数启动一个程序并希望保持在后台运行，必须确保该程序的输出被重定向到一个文件或者其它输出流去，否则 PHP 会在程序执行结束前挂起。
因此，这样修改就达到了目的：
exec( &#8220;nohuo php file.php >> /dev/null &#038;&#8221; ) 
]]></description>
			<content:encoded><![CDATA[<p>很多操作时间会很长，不能让用户在页面上执行PHP脚本，否则页面会被拖死。</p>
<p>一个不错的方案，就是提交到后台去执行。</p>
<p>linux有个命令 nohup command &#038; 这样就会提交到后台，而终端的用户体会不到程序执行的过程。</p>
<p>原来我使用这种方式 shell_exec( &#8220;nohuo php file.php &#038;&#8221; ) 进行后台提交，后来发现速度依然不快， 还是被挂起了。查看手册，exec函数有如下提示：</p>
<blockquote><p>Note: 如果用本函数启动一个程序并希望保持在后台运行，必须确保该程序的输出被重定向到一个文件或者其它输出流去，否则 PHP 会在程序执行结束前挂起。</p></blockquote>
<p>因此，这样修改就达到了目的：</p>
<p>exec( &#8220;nohuo php file.php >> /dev/null &#038;&#8221; ) </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/25/%e6%94%b9%e5%8f%98exec%e7%9a%84%e9%98%bb%e5%a1%9e%e6%a8%a1%e5%bc%8f.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>康盛，这么做是不是有点过火了-2</title>
		<link>http://www.sunboyu.cn/2009/12/24/discuz-hole-2.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/24/discuz-hole-2.shtml#comments</comments>
		<pubDate>Thu, 24 Dec 2009 12:15:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[manyou]]></category>
		<category><![CDATA[ucenter]]></category>
		<category><![CDATA[uchome]]></category>
		<category><![CDATA[康盛]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1113</guid>
		<description><![CDATA[自打上篇文章 康盛，这么做是不是有点过火了发表后，引起很多朋友讨论。有些朋友从技术上抨击了这种做法，有些朋友从商业上去理解这种做法。当然，我们是搞技术的，单纯从程序安全和数据安全上来分析一下。
老样子，后台有个get提交：
http://u.discuz.net/customer/update.php?get=a%3A16%3A%7Bs%3A7%3A%22sitekey%22%3Bs%3A16%3A%22f270e28a8b0Qv1Y8%22%3Bs%3A7%3A%22version%22%3Bs%3A3%3A%222.0%22%3Bs%3A7%3A%22release%22%3Bs%3A8%3A%2220090825%22%3Bs%3A3%3A%22php%22%3Bs%3A5%3A%225.2.6%22%3Bs%3A5%3A%22mysql%22%3Bs%3A6%3A%225.0.22%22%3Bs%3A6%3A%22dbsize%22%3Bi%3A1298163%3Bs%3A7%3A%22charset%22%3Bs%3A5%3A%22utf-8%22%3Bs%3A8%3A%22sitename%22%3Bs%3A12%3A%22%E6%88%91%E7%9A%84%E7%A9%BA%E9%97%B4%22%3Bs%3A7%3A%22feednum%22%3Bs%3A2%3A%2210%22%3Bs%3A7%3A%22blognum%22%3Bs%3A1%3A%220%22%3Bs%3A8%3A%22albumnum%22%3Bs%3A1%3A%220%22%3Bs%3A9%3A%22threadnum%22%3Bs%3A1%3A%220%22%3Bs%3A8%3A%22sharenum%22%3Bs%3A1%3A%220%22%3Bs%3A10%3A%22commentnum%22%3Bs%3A1%3A%220%22%3Bs%3A8%3A%22myappnum%22%3Bs%3A1%3A%224%22%3Bs%3A8%3A%22spacenum%22%3Bs%3A1%3A%223%22%3B%7D&#038;h=aa380aa3
urldecode并且反序列化，得出这么一堆东西
Array
(
&#160;&#160; &#160;[sitekey] =&#62; f270e28a8b0Qv1Y8
&#160;&#160; &#160;[version] =&#62; 2.0
&#160;&#160; &#160;[release] =&#62; 20090825
&#160;&#160; &#160;[php] =&#62; 5.2.6
&#160;&#160; &#160;[mysql] =&#62; 5.0.22
&#160;&#160; &#160;[dbsize] =&#62; 1298163
&#160;&#160; &#160;[charset] =&#62; utf-8
&#160;&#160; &#160;[sitename] =&#62; 我的空间
&#160;&#160; &#160;[feednum] =&#62; 10
&#160;&#160; &#160;[blognum] =&#62; 0
&#160;&#160; &#160;[albumnum] =&#62; 0
&#160;&#160; &#160;[threadnum] =&#62; 0
&#160;&#160; &#160;[sharenum] =&#62; 0
&#160;&#160; &#160;[commentnum] =&#62; 0
&#160;&#160; &#160;[myappnum] =&#62; 4
&#160;&#160; &#160;[spacenum] =&#62; 3
)
sitekey是什么？通过阅读代码，sitekey是pre_config表里一个字段，跟以下代码配合工作
$hash = $_SCONFIG['my_siteid'].'&#124;'.$_SGLOBAL['supe_uid'].'&#124;'.$appid.'&#124;'.$current_url.'&#124;'.$extra.'&#124;'.$timestamp.'&#124;'.$_SCONFIG['my_sitekey'];
它跟manyou服务器配合，才有权从你的服务器上拉取你数据库中的某些信息。
其他字段，我们看字面意思基本也能知道是干啥用的。
继续运行程序，我们看当一个用户第一次安装应用的时候做了什么。
这个信息要从服务器上截取，我是根据nginx日志和程序中截取反馈信息获得的。
服务器日志：
124.238.249.171 - - [24/Dec/2009:20:02:40 [...]]]></description>
			<content:encoded><![CDATA[<p>自打上篇文章 <a href="http://www.sunboyu.cn/2009/12/10/discuz-hole.shtml">康盛，这么做是不是有点过火了</a>发表后，引起很多朋友讨论。有些朋友从技术上抨击了这种做法，有些朋友从商业上去理解这种做法。当然，我们是搞技术的，单纯从程序安全和数据安全上来分析一下。</p>
<p>老样子，后台有个get提交：<br />
http://u.discuz.net/customer/update.php?get=a%3A16%3A%7Bs%3A7%3A%22sitekey%22%3Bs%3A16%3A%22f270e28a8b0Qv1Y8%22%3Bs%3A7%3A%22version%22%3Bs%3A3%3A%222.0%22%3Bs%3A7%3A%22release%22%3Bs%3A8%3A%2220090825%22%3Bs%3A3%3A%22php%22%3Bs%3A5%3A%225.2.6%22%3Bs%3A5%3A%22mysql%22%3Bs%3A6%3A%225.0.22%22%3Bs%3A6%3A%22dbsize%22%3Bi%3A1298163%3Bs%3A7%3A%22charset%22%3Bs%3A5%3A%22utf-8%22%3Bs%3A8%3A%22sitename%22%3Bs%3A12%3A%22%E6%88%91%E7%9A%84%E7%A9%BA%E9%97%B4%22%3Bs%3A7%3A%22feednum%22%3Bs%3A2%3A%2210%22%3Bs%3A7%3A%22blognum%22%3Bs%3A1%3A%220%22%3Bs%3A8%3A%22albumnum%22%3Bs%3A1%3A%220%22%3Bs%3A9%3A%22threadnum%22%3Bs%3A1%3A%220%22%3Bs%3A8%3A%22sharenum%22%3Bs%3A1%3A%220%22%3Bs%3A10%3A%22commentnum%22%3Bs%3A1%3A%220%22%3Bs%3A8%3A%22myappnum%22%3Bs%3A1%3A%224%22%3Bs%3A8%3A%22spacenum%22%3Bs%3A1%3A%223%22%3B%7D&#038;h=aa380aa3</p>
<p>urldecode并且反序列化，得出这么一堆东西</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">Array</li>
<li>(</li>
<li>&nbsp;&nbsp; &nbsp;[sitekey] =&gt; f270e28a8b0Qv1Y8</li>
<li>&nbsp;&nbsp; &nbsp;[version] =&gt; 2.0</li>
<li>&nbsp;&nbsp; &nbsp;[release] =&gt; 20090825</li>
<li>&nbsp;&nbsp; &nbsp;[php] =&gt; 5.2.6</li>
<li>&nbsp;&nbsp; &nbsp;[mysql] =&gt; 5.0.22</li>
<li>&nbsp;&nbsp; &nbsp;[dbsize] =&gt; 1298163</li>
<li>&nbsp;&nbsp; &nbsp;[charset] =&gt; utf-8</li>
<li>&nbsp;&nbsp; &nbsp;[sitename] =&gt; 我的空间</li>
<li>&nbsp;&nbsp; &nbsp;[feednum] =&gt; 10</li>
<li>&nbsp;&nbsp; &nbsp;[blognum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp;[albumnum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp;[threadnum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp;[sharenum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp;[commentnum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp;[myappnum] =&gt; 4</li>
<li>&nbsp;&nbsp; &nbsp;[spacenum] =&gt; 3</li>
<li>)</li></ol></div>
<p>sitekey是什么？通过阅读代码，sitekey是pre_config表里一个字段，跟以下代码配合工作</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">$hash = $_SCONFIG['my_siteid'].'|'.$_SGLOBAL['supe_uid'].'|'.$appid.'|'.$current_url.'|'.$extra.'|'.$timestamp.'|'.$_SCONFIG['my_sitekey'];</li></ol></div>
<p>它跟manyou服务器配合，才有权从你的服务器上拉取你数据库中的某些信息。</p>
<p>其他字段，我们看字面意思基本也能知道是干啥用的。</p>
<p>继续运行程序，我们看当一个用户第一次安装应用的时候做了什么。</p>
<p>这个信息要从服务器上截取，我是根据nginx日志和程序中截取反馈信息获得的。</p>
<p>服务器日志：</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">124.238.249.171 - - [24/Dec/2009:20:02:40 +0800] &quot;POST /uhome/api/my.php HTTP/1.0&quot; 200 192 &quot;-&quot; &quot;myop/1.0&quot; &quot;-&quot;</li></ol></div>
<p>manyou服务器发来post请求。post信息不会在日志里，底下是我抓取来的信息：</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">[post] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[module] =&gt; Users</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[method] =&gt; getInfo</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[sign] =&gt; 271ce9942c94fc4f4d39445e133105bc</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[params] =&gt; a:1:{s:4:\&quot;uIds\&quot;;a:1:{i:0;s:1:\&quot;3\&quot;;}}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li></ol></div>
<p>做过sns网站应用开发的应该很容易看懂底大概是什么意思。<br />
看看我们的程序给manyou平台返回了什么信息：</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">[result] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[0] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[uId] =&gt; 3</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[handle] =&gt; sunboyu1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[action] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[realName] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[realNameChecked] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[gender] =&gt; unknown</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[email] =&gt; dfafdasf@123.fdsafds</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[qq] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[msn] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthday] =&gt; 0000-00-00</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[bloodType] =&gt; unknown</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[relationshipStatus] =&gt; unknown</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthProvince] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthCity] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[resideProvince] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[resideCity] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[viewNum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[friendNum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[myStatus] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[lastActivity] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[created] =&gt; 1261655045</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[credit] =&gt; 25</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[isUploadAvatar] =&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[adminLevel] =&gt; none</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[homepagePrivacy] =&gt; public</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[profilePrivacyList] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[friendListPrivacy] =&gt; public</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[mode] =&gt;</li></ol></div>
<p>有了这些数据，我又注册了一个号码，把资料填全，看看是不是都被抓走：</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">[result] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[totalNum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[friends] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[me] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[uId] =&gt; 4</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[handle] =&gt; sunboyu2</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[action] =&gt; </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[realName] =&gt; 一个程序猿</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[realNameChecked] =&gt; 1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[gender] =&gt; male</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[email] =&gt; 1231231@fdsfdsa.com</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[qq] =&gt; 176300676</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[msn] =&gt; sunboyu@gmail.com</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthday] =&gt; 2004-02-01</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[bloodType] =&gt; B</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[relationshipStatus] =&gt; single</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthProvince] =&gt; 北京</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthCity] =&gt; 东城</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[resideProvince] =&gt; 黑龙江</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[resideCity] =&gt; 佳木斯</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[viewNum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[friendNum] =&gt; 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[myStatus] =&gt; </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[lastActivity] =&gt; 1261657227</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[created] =&gt; 1261657100</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[credit] =&gt; 40</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[isUploadAvatar] =&gt; 1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[adminLevel] =&gt; none</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[homepagePrivacy] =&gt; friends</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[profilePrivacyList] =&gt; Array</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[relationshipStatus] =&gt; friends</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthday] =&gt; friends</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[bloodType] =&gt; me</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[birthPlace] =&gt; public</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[residePlace] =&gt; public</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[qq] =&gt; me</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[mobile] =&gt; public</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[msn] =&gt; public</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[friendListPrivacy] =&gt; me</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[mode] =&gt; </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;)</li></ol></div>
<p>差不多基本资料都过去了。</p>
<p>这样，可以看出，康盛的服务器不断得在抓取用户的信息。这个事情是不是过火，从商业的角度，是应该很过火的。他把用户产品内的账号信息等关键东西都抓走，这些信息到他们手里，难免会交易给竞争对手。<br />
但是，从技术上讲，康盛的manyou服务器还有个缓存的功能。如果拉取用户信息这个请求都放在网站的服务器上，我相信大多数虚拟主机的用户会不堪重负，而康盛其实为这些负载买单了。买单的结果，就是你得把用户的信息提供给康盛。就这么简单。</p>
<p>从程序安全上讲，你的数据库信息，尤其用户信息，在你的网站和manyou之间共享，而康盛没有拉走用户或者管理员资料，也没有发现其他信息的提取，所以，两者之间是安全的。第三方网站是无法获得这些资料的。</p>
<p>但从商业安全上讲，康盛的服务器是否可信？康盛是否会拿这些信息作一些站长不希望做的事情？这个只能由官方来解释了。</p>
<p>睡一觉，研究其他产品去。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/24/discuz-hole-2.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>企业的效率，谁是榜样</title>
		<link>http://www.sunboyu.cn/2009/12/21/%e4%bc%81%e4%b8%9a%e7%9a%84%e6%95%88%e7%8e%87%ef%bc%8c%e8%b0%81%e6%98%af%e6%a6%9c%e6%a0%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/21/%e4%bc%81%e4%b8%9a%e7%9a%84%e6%95%88%e7%8e%87%ef%bc%8c%e8%b0%81%e6%98%af%e6%a6%9c%e6%a0%b7.shtml#comments</comments>
		<pubDate>Mon, 21 Dec 2009 12:42:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1107</guid>
		<description><![CDATA[想到这个话题，还得从我的医保蓝本说起。
医保这东西，是员工就应该有。当然，我也得有。可我经历了三年多才拿到。
第一个公司，就是我刚来北京任职的公司，创业公司，吃够了苦，最后离开的时候，我两手空空，老板同意为我上保险，直到下一个公司开始为我上为止。
不过老板的确很仁义，为了上了几个月的保险，等我得知我上的是农民工那种集体户的标准的时候，已经不是气愤，变成了羞辱。当然，我也有个编号，仅是编号证明。第二个公司按照正常员工的标准给上了，不过那个编号始终没有变成一个蓝本。人力让我找原单位，原单位让我找现单位，热线电话让我找劳动局，劳动局让我找现在会计去办理即可。我的弱点就是不坚强，我妥协放弃了。农民工没啥，该咋过咋过。
到第三个公司，也就是现在的公司，入职后又提起了这事，人力惊讶，居然没蓝本，我详细解释了整个过程，人力无语。问之：能办否；答曰：申请一下。上午十一点问完，下午一点把一个崭新的蓝本送到了我的手里。我怀疑劳动局在我们楼里。
当要求别人尽职、效率的时候，首先问问自己做到没。效率是生命，不仅指的是员工，而是指整个队伍的效率。
]]></description>
			<content:encoded><![CDATA[<p>想到这个话题，还得从我的医保蓝本说起。</p>
<p>医保这东西，是员工就应该有。当然，我也得有。可我经历了三年多才拿到。</p>
<p>第一个公司，就是我刚来北京任职的公司，创业公司，吃够了苦，最后离开的时候，我两手空空，老板同意为我上保险，直到下一个公司开始为我上为止。</p>
<p>不过老板的确很仁义，为了上了几个月的保险，等我得知我上的是农民工那种集体户的标准的时候，已经不是气愤，变成了羞辱。当然，我也有个编号，仅是编号证明。第二个公司按照正常员工的标准给上了，不过那个编号始终没有变成一个蓝本。人力让我找原单位，原单位让我找现单位，热线电话让我找劳动局，劳动局让我找现在会计去办理即可。我的弱点就是不坚强，我妥协放弃了。农民工没啥，该咋过咋过。</p>
<p>到第三个公司，也就是现在的公司，入职后又提起了这事，人力惊讶，居然没蓝本，我详细解释了整个过程，人力无语。问之：能办否；答曰：申请一下。上午十一点问完，下午一点把一个崭新的蓝本送到了我的手里。我怀疑劳动局在我们楼里。</p>
<p>当要求别人尽职、效率的时候，首先问问自己做到没。效率是生命，不仅指的是员工，而是指整个队伍的效率。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/21/%e4%bc%81%e4%b8%9a%e7%9a%84%e6%95%88%e7%8e%87%ef%bc%8c%e8%b0%81%e6%98%af%e6%a6%9c%e6%a0%b7.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>nginx做反向代理的配置</title>
		<link>http://www.sunboyu.cn/2009/12/16/nginx%e5%81%9a%e5%8f%8d%e5%90%91%e4%bb%a3%e7%90%86%e7%9a%84%e9%85%8d%e7%bd%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/16/nginx%e5%81%9a%e5%8f%8d%e5%90%91%e4%bb%a3%e7%90%86%e7%9a%84%e9%85%8d%e7%bd%ae.shtml#comments</comments>
		<pubDate>Wed, 16 Dec 2009 10:39:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[反向代理]]></category>
		<category><![CDATA[透明代理]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1101</guid>
		<description><![CDATA[感谢铎哥的配置，感谢宴哥解决ssl连接的问题。
server
&#160;{
&#160;&#160; &#160; &#160; &#160;listen&#160; &#160; &#160; 8181;
&#160;&#160; &#160; &#160; &#160;resolver 202.96.64.68;
&#160;&#160; &#160; &#160; &#160;location /
&#160;&#160; &#160; &#160; &#160;{
&#160;&#160; &#160; &#160; &#160; &#160; &#160;proxy_pass http://$http_host$request_uri;
&#160;&#160; &#160; &#160; &#160; &#160; &#160;proxy_redirect&#160; &#160; &#160; &#160; &#160; off;
&#160;&#160; &#160; &#160; &#160; &#160; &#160;proxy_set_header&#160; &#160; &#160; &#160; Host&#160; &#160; &#160; &#160; &#160; &#160; $host;
&#160;&#160; &#160; &#160; &#160; &#160; &#160;proxy_set_header&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>感谢铎哥的配置，感谢宴哥解决ssl连接的问题。</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;{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;listen&nbsp; &nbsp; &nbsp; 8181;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;resolver 202.96.64.68;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;location /</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_pass http://$http_host$request_uri;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_redirect&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; off;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_set_header&nbsp; &nbsp; &nbsp; &nbsp; Host&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $host;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_set_header&nbsp; &nbsp; &nbsp; &nbsp; X-Real-IP&nbsp; &nbsp; &nbsp; &nbsp;$remote_addr;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_set_header&nbsp; &nbsp; &nbsp; &nbsp; X-Forwarded-For $proxy_add_x_forwarded_for;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;client_max_body_size&nbsp; &nbsp; 10m;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;client_body_buffer_size 128k;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_connect_timeout&nbsp; &nbsp;90;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_send_timeout&nbsp; &nbsp; &nbsp; 90;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_read_timeout&nbsp; &nbsp; &nbsp; 90;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_buffers&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;32 4k;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;access_log /home/proxy.log;</li>
<li>&nbsp;}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/16/nginx%e5%81%9a%e5%8f%8d%e5%90%91%e4%bb%a3%e7%90%86%e7%9a%84%e9%85%8d%e7%bd%ae.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>django进程管理器</title>
		<link>http://www.sunboyu.cn/2009/12/16/django%e8%bf%9b%e7%a8%8b%e7%ae%a1%e7%90%86%e5%99%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/16/django%e8%bf%9b%e7%a8%8b%e7%ae%a1%e7%90%86%e5%99%a8.shtml#comments</comments>
		<pubDate>Wed, 16 Dec 2009 08:42:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1099</guid>
		<description><![CDATA[nginx+php，php有个进程管理器，为php-fpm，Django没有，网上大概看了看，找出了几段，小改一下，能用了。
#!/bin/bash
siteroot=&#34;/home/project/sun&#34;
sitename=&#34;http://python.sunboyu.cn&#34;
cd $siteroot
if [ $# -lt 1 ];then
&#160;&#160; &#160;echo &#34;Usages: server.sh [start&#124;stop&#124;restart]&#34;
&#160;&#160; &#160;exit 0
fi
&#160;
if [ $1 = start ];then
&#160;&#160; &#160;isrun=`ps aux&#124;grep &#34;manage.py runfcgi&#34;&#124;grep -v &#34;grep&#34;&#124;wc -l`
&#160;&#160; &#160;if [ $isrun -eq 1 ];then
&#160;&#160; &#160; &#160; &#160;echo $sitename&#34; has running!&#34;
&#160;&#160; &#160; &#160; &#160;exit 0
&#160;&#160; &#160;else
&#160;&#160; &#160; &#160; &#160;python manage.py runfcgi method=threaded host=127.0.0.1 port=8000 --settings=settings
&#160;&#160; &#160; &#160; &#160;echo $sitename&#34;is [...]]]></description>
			<content:encoded><![CDATA[<p>nginx+php，php有个进程管理器，为php-fpm，Django没有，网上大概看了看，找出了几段，小改一下，能用了。</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">#!/bin/bash</li>
<li>siteroot=&quot;/home/project/sun&quot;</li>
<li>sitename=&quot;http://python.sunboyu.cn&quot;</li>
<li>cd $siteroot</li>
<li>if [ $# -lt 1 ];then</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;Usages: server.sh [start|stop|restart]&quot;</li>
<li>&nbsp;&nbsp; &nbsp;exit 0</li>
<li>fi</li>
<li>&nbsp;</li>
<li>if [ $1 = start ];then</li>
<li>&nbsp;&nbsp; &nbsp;isrun=`ps aux|grep &quot;manage.py runfcgi&quot;|grep -v &quot;grep&quot;|wc -l`</li>
<li>&nbsp;&nbsp; &nbsp;if [ $isrun -eq 1 ];then</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;echo $sitename&quot; has running!&quot;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit 0</li>
<li>&nbsp;&nbsp; &nbsp;else</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;python manage.py runfcgi method=threaded host=127.0.0.1 port=8000 --settings=settings</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;echo $sitename&quot;is running!!&quot;</li>
<li>&nbsp;&nbsp; &nbsp;fi</li>
<li>elif [ $1 = stop ];then</li>
<li>&nbsp;&nbsp; &nbsp;djid=`ps aux|grep &quot;manage.py runfcgi&quot;|grep -v &quot;grep&quot;|awk '{print $2}'`</li>
<li>&nbsp;&nbsp; &nbsp;kill -9 $djid</li>
<li>&nbsp;&nbsp; &nbsp;echo $sitename&quot; is stop!&quot;</li>
<li>elif [ $1 = restart ];then</li>
<li>&nbsp;&nbsp; &nbsp;djid=`ps aux|grep &quot;manage.py runfcgi&quot;|grep -v &quot;grep&quot;|awk '{print $2}'`</li>
<li>&nbsp;&nbsp; &nbsp;kill -9 $djid</li>
<li>&nbsp;&nbsp; &nbsp;echo $sitename&quot; is stop!!&quot;</li>
<li>&nbsp;&nbsp; &nbsp;python manage.py runfcgi method=threaded host=127.0.0.1 port=8000 --settings=settings</li>
<li>&nbsp;&nbsp; &nbsp;echo $sitename&quot; is start!!&quot;</li>
<li>else</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;Usages: server.sh [start|stop|restart]&quot;</li>
<li>fi</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/16/django%e8%bf%9b%e7%a8%8b%e7%ae%a1%e7%90%86%e5%99%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django+nginx的部分配置</title>
		<link>http://www.sunboyu.cn/2009/12/16/djangonginx%e7%9a%84%e9%83%a8%e5%88%86%e9%85%8d%e7%bd%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/16/djangonginx%e7%9a%84%e9%83%a8%e5%88%86%e9%85%8d%e7%bd%ae.shtml#comments</comments>
		<pubDate>Wed, 16 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1097</guid>
		<description><![CDATA[nginx的配置，特别感谢爱词霸的吕同学，发扬了开源共享的精神，大大缩短了我的调试成本。
server {
&#160;&#160; &#160;listen 80;
&#160;&#160; &#160;server_name python.sunboyu.cn;
&#160;&#160; &#160;location / {
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_pass 127.0.0.1:8000;
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_buffers&#160; &#160; &#160; 16&#160; 128k;
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_ignore_client_abort&#160; on;
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_read_timeout 60;
&#160;
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_param PATH_INFO $fastcgi_script_name;
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_param REQUEST_METHOD $request_method;
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_param QUERY_STRING $query_string;
&#160;&#160; &#160; &#160; &#160; &#160;fastcgi_param CONTENT_TYPE [...]]]></description>
			<content:encoded><![CDATA[<p>nginx的配置，特别感谢<a href='http://www.iciba.com/' target='_blank'>爱词霸</a>的<a href='http://blog.lvscar.info/' target='_blank'>吕同学</a>，发扬了开源共享的精神，大大缩短了我的调试成本。</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;listen 80;</li>
<li>&nbsp;&nbsp; &nbsp;server_name python.sunboyu.cn;</li>
<li>&nbsp;&nbsp; &nbsp;location / {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_pass 127.0.0.1:8000;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_buffers&nbsp; &nbsp; &nbsp; 16&nbsp; 128k;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_ignore_client_abort&nbsp; on;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_read_timeout 60;</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param PATH_INFO $fastcgi_script_name;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param REQUEST_METHOD $request_method;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param QUERY_STRING $query_string;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param CONTENT_TYPE $content_type;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param CONTENT_LENGTH $content_length;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param SERVER_PROTOCOL&nbsp; $server_protocol;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param SERVER_PORT&nbsp; &nbsp; &nbsp; $server_port;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_param SERVER_NAME&nbsp; $server_name;</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_pass_header Authorization;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_intercept_errors off;</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;}</li>
<li>}</li></ol></div>
<p>同时附上一个额外的文档，nginx变量跟cgi协议的对应关系。<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">#&nbsp; &nbsp; Fast CGI param reference</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; SCRIPT_FILENAME&nbsp; $document_root$fastcgi_script_name;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; QUERY_STRING&nbsp; $query_string;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; REQUEST_METHOD&nbsp; $request_method;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; CONTENT_TYPE&nbsp; $content_type;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; CONTENT_LENGTH&nbsp; $content_length;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; GATEWAY_INTERFACE&nbsp; CGI/1.1;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; SERVER_SOFTWARE&nbsp; nginx;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; SCRIPT_NAME&nbsp; $fastcgi_script_name;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; REQUEST_URI&nbsp; $request_uri;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; DOCUMENT_URI&nbsp; $document_uri;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; DOCUMENT_ROOT&nbsp; $document_root;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; SERVER_PROTOCOL&nbsp; $server_protocol;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; REMOTE_ADDR&nbsp; $remote_addr;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; REMOTE_PORT&nbsp; $remote_port;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; SERVER_ADDR&nbsp; $server_addr;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; SERVER_PORT&nbsp; $server_port;</li>
<li>#&nbsp; &nbsp; fastcgi_param&nbsp; &nbsp; SERVER_NAME&nbsp; $server_name;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/16/djangonginx%e7%9a%84%e9%83%a8%e5%88%86%e9%85%8d%e7%bd%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django笔记3-DEMO篇</title>
		<link>http://www.sunboyu.cn/2009/12/15/django%e7%ac%94%e8%ae%b03-demo%e7%af%87.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/15/django%e7%ac%94%e8%ae%b03-demo%e7%af%87.shtml#comments</comments>
		<pubDate>Tue, 15 Dec 2009 13:06:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1089</guid>
		<description><![CDATA[1、创建一个project（可理解为站点）
django-admin.py startproject project1
发现新建了一个文件夹 project1
2、创建一个app（可理解为一个……）
python manage.py app1
发现多了一个文件夹 app1
3 、vi ./app1/views.py  增加代码
from django.http import HttpResponse
def index(self,request):
&#160;&#160; &#160;return HttpResponse('hello test')
4、vi ./urls.py  增加代码
( r&#8217;^tests/&#8217; , &#8216;project1.app1.views.index&#8217; ),
5、启动服务
python manage.py runserver domain.com:8000
然后在浏览器打 domain.com:8000/tests
如果能看到 hello test则证明配置成功。
如果不成功，看debug信息吧，debug默认是开启的。
另外我自己配置使用fastcgi方式运行python，python manage.py runfcgi host=127.0.0.1 port=8000,然后用nginx代理访问。两种方式还有所不同，具体的不同点暂时还不知道，希望知道这些差别的大大们多加提示，继续研究中。
]]></description>
			<content:encoded><![CDATA[<p>1、创建一个project（可理解为站点）</p>
<p>django-admin.py startproject project1</p>
<p>发现新建了一个文件夹 project1</p>
<p>2、创建一个app（可理解为一个……）</p>
<p>python manage.py app1</p>
<p>发现多了一个文件夹 app1</p>
<p>3 、vi ./app1/views.py  增加代码</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">from django.http import HttpResponse</li>
<li>def index(self,request):</li>
<li>&nbsp;&nbsp; &nbsp;return HttpResponse('hello test')</li></ol></div>
<p>4、vi ./urls.py  增加代码<br />
( r&#8217;^tests/&#8217; , &#8216;project1.app1.views.index&#8217; ),</p>
<p>5、启动服务</p>
<p>python manage.py runserver domain.com:8000</p>
<p>然后在浏览器打 domain.com:8000/tests</p>
<p>如果能看到 hello test则证明配置成功。</p>
<p>如果不成功，看debug信息吧，debug默认是开启的。</p>
<blockquote><p>另外我自己配置使用fastcgi方式运行python，python manage.py runfcgi host=127.0.0.1 port=8000,然后用nginx代理访问。两种方式还有所不同，具体的不同点暂时还不知道，希望知道这些差别的大大们多加提示，继续研究中。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/15/django%e7%ac%94%e8%ae%b03-demo%e7%af%87.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django笔记2-配置篇</title>
		<link>http://www.sunboyu.cn/2009/12/15/django%e7%ac%94%e8%ae%b02-%e9%85%8d%e7%bd%ae%e7%af%87.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/15/django%e7%ac%94%e8%ae%b02-%e9%85%8d%e7%bd%ae%e7%af%87.shtml#comments</comments>
		<pubDate>Tue, 15 Dec 2009 12:37:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[原创技术]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1086</guid>
		<description><![CDATA[1、升级linux的python为最新版本
ln -s /usr/bin/python /opt/python**{your install path}**/bin/python
2、设置django-admin.py至系统命令
ln -s /opt/python**{your install path}**/lib/python2.5/site-packages/django/bin/django-admin.py  /usr/bin/django-admin.py
然后查看 django-admin.py &#8211;version
回显版本正确，则证明系统配置成功。
]]></description>
			<content:encoded><![CDATA[<p>1、升级linux的python为最新版本</p>
<p>ln -s /usr/bin/python /opt/python**{your install path}**/bin/python</p>
<p>2、设置django-admin.py至系统命令</p>
<p>ln -s /opt/python**{your install path}**/lib/python2.5/site-packages/django/bin/django-admin.py  /usr/bin/django-admin.py</p>
<p>然后查看 django-admin.py &#8211;version</p>
<p>回显版本正确，则证明系统配置成功。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/15/django%e7%ac%94%e8%ae%b02-%e9%85%8d%e7%bd%ae%e7%af%87.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django笔记1-安装篇</title>
		<link>http://www.sunboyu.cn/2009/12/14/django%e7%ac%94%e8%ae%b01-%e5%ae%89%e8%a3%85%e7%af%87.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/14/django%e7%ac%94%e8%ae%b01-%e5%ae%89%e8%a3%85%e7%af%87.shtml#comments</comments>
		<pubDate>Mon, 14 Dec 2009 11:02:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1082</guid>
		<description><![CDATA[1、安装django，当然要安装python，我安装的python2.5
./configure &#8211;prefix=你的路径
2、安装mysqldb
这个可以看这篇文章 http://www.sunboyu.cn/2009/04/22/python25mysqldb122%E5%AE%89%E8%A3%85.shtml
3、安装easl_install
http://pypi.python.org/pypi/setuptools  我下的源码，按照提示安装就行
4、使用easl_install安装flup
地址 http://www.saddi.com/software/flup/dist/flup-1.0.2-py2.5.egg
5、安装django1.1
python setup install
到这里大体就算安装完了，底下配置。
]]></description>
			<content:encoded><![CDATA[<p>1、安装django，当然要安装python，我安装的python2.5</p>
<p>./configure &#8211;prefix=你的路径</p>
<p>2、安装mysqldb</p>
<p>这个可以看这篇文章 http://www.sunboyu.cn/2009/04/22/python25mysqldb122%E5%AE%89%E8%A3%85.shtml</p>
<p>3、安装easl_install</p>
<p>http://pypi.python.org/pypi/setuptools  我下的源码，按照提示安装就行</p>
<p>4、使用easl_install安装flup</p>
<p>地址 http://www.saddi.com/software/flup/dist/flup-1.0.2-py2.5.egg</p>
<p>5、安装django1.1</p>
<p>python setup install</p>
<p>到这里大体就算安装完了，底下配置。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/14/django%e7%ac%94%e8%ae%b01-%e5%ae%89%e8%a3%85%e7%af%87.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>康盛，这么做是不是有点过火了</title>
		<link>http://www.sunboyu.cn/2009/12/10/discuz-hole.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/10/discuz-hole.shtml#comments</comments>
		<pubDate>Wed, 09 Dec 2009 17:02:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[后门]]></category>
		<category><![CDATA[康盛]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1074</guid>
		<description><![CDATA[使用开源产品，的确能加快我们的产品实现进度，我们也感谢那些提供免费开源产品的人。当然，我个人也喜欢开源技术。
但如果开源的产品中给你下个后门，抓取你的数据，你还能高兴么？
现在分析 discuz 7.0 的几段代码：
if($adminid == 1 &#38;&#38; $action == 'home') {
	echo '&#60;sc '.'ript language=&#34;Jav'.'aScript&#34; src=&#34;ht'.'tp:/'.'/cus'.'tome'.'r.disc'.'uz.n'.'et/n'.'ews'.'.p'.'hp?'.bbsinformation().'&#34;&#62;';
	//echo '&#60;/sc&#62;&#60;sc '.'ript language=&#34;Jav'.'aScript&#34; src=&#34;http://localhost/com/n'.'ews'.'.p'.'hp?'.bbsinformation().'&#34;&#62;';
}
&#60;/sc&#62;
恩，看见了没，我告诉大家一个写木马常用的方式 eval ,比如asp中查找木马，通常查找fso等关键字，木马一般都给他写成 eval(&#8217;f'+&#8217;s&#8217;,'o&#8217;)，写php的应该很熟悉这个函数了。这段代码当然不是木马，咱看看他具体做了什么：
function bbsinformation() {
&#160;
	global $db, $timestamp, $tablepre, $charset, $bbname, $_SERVER, $siteuniqueid, $save_mastermobile, $msn;
	$update = array('uniqueid' =&#62; $siteuniqueid, 'version' =&#62; DISCUZ_VERSION, 'release' =&#62; DISCUZ_RELEASE, 'php' =&#62; PHP_VERSION, 'mysql' =&#62; $db-&#62;version(), 'charset' =&#62; $charset, 'bbname' =&#62; $bbname, [...]]]></description>
			<content:encoded><![CDATA[<p>使用开源产品，的确能加快我们的产品实现进度，我们也感谢那些提供免费开源产品的人。当然，我个人也喜欢开源技术。</p>
<p>但如果开源的产品中给你下个后门，抓取你的数据，你还能高兴么？</p>
<p>现在分析 discuz 7.0 的几段代码：</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">if($adminid == 1 &amp;&amp; $action == 'home') {</li>
<li>	echo '&lt;sc '.'ript language=&quot;Jav'.'aScript&quot; src=&quot;ht'.'tp:/'.'/cus'.'tome'.'r.disc'.'uz.n'.'et/n'.'ews'.'.p'.'hp?'.bbsinformation().'&quot;&gt;';</li>
<li>	//echo '&lt;/sc&gt;&lt;sc '.'ript language=&quot;Jav'.'aScript&quot; src=&quot;http://localhost/com/n'.'ews'.'.p'.'hp?'.bbsinformation().'&quot;&gt;';</li>
<li>}</li>
<li>&lt;/sc&gt;</li></ol></div>
<p>恩，看见了没，我告诉大家一个写木马常用的方式 eval ,比如asp中查找木马，通常查找fso等关键字，木马一般都给他写成 eval(&#8217;f'+&#8217;s&#8217;,'o&#8217;)，写php的应该很熟悉这个函数了。这段代码当然不是木马，咱看看他具体做了什么：</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">function bbsinformation() {</li>
<li>&nbsp;</li>
<li>	global $db, $timestamp, $tablepre, $charset, $bbname, $_SERVER, $siteuniqueid, $save_mastermobile, $msn;</li>
<li>	$update = array('uniqueid' =&gt; $siteuniqueid, 'version' =&gt; DISCUZ_VERSION, 'release' =&gt; DISCUZ_RELEASE, 'php' =&gt; PHP_VERSION, 'mysql' =&gt; $db-&gt;version(), 'charset' =&gt; $charset, 'bbname' =&gt; $bbname, 'mastermobile' =&gt; $save_mastermobile);</li>
<li>&nbsp;</li>
<li>	$updatetime = @filemtime(DISCUZ_ROOT.'./forumdata/updatetime.lock');</li>
<li>	if(empty($updatetime) || ($timestamp - $updatetime &gt; 3600 * 4)) {</li>
<li>		@touch(DISCUZ_ROOT.'./forumdata/updatetime.lock');</li>
<li>		$update['members'] = $db-&gt;result_first(&quot;SELECT COUNT(*) FROM {$tablepre}members&quot;);</li>
<li>		$update['threads'] = $db-&gt;result_first(&quot;SELECT COUNT(*) FROM {$tablepre}threads&quot;);</li>
<li>		$update['posts'] = $db-&gt;result_first(&quot;SELECT COUNT(*) FROM {$tablepre}posts&quot;);</li>
<li>		$query = $db-&gt;query(&quot;SELECT special, count(*) AS spcount FROM {$tablepre}threads GROUP BY special&quot;);</li>
<li>		while($thread = $db-&gt;fetch_array($query)) {</li>
<li>			$thread['special'] = intval($thread['special']);</li>
<li>			$update['spt_'.$thread['special']] = $thread['spcount'];</li>
<li>		}</li>
<li>		if($msn['on'] &amp;&amp; $msn['domain']) {</li>
<li>			$update['msn_domain'] = $msn['domain'];</li>
<li>		}</li>
<li>	}</li>
<li>&nbsp;</li>
<li>	$data = '';</li>
<li>	foreach($update as $key =&gt; $value) {</li>
<li>		$data .= $key.'='.rawurlencode($value).'&amp;';</li>
<li>	}</li>
<li>	return 'update='.rawurlencode(base64_encode($data)).'&amp;md5hash='.substr(md5($_SERVER['HTTP_USER_AGENT'].implode('', $update).$timestamp), 8, 8).'&amp;timestamp='.$timestamp;</li>
<li>}</li></ol></div>
<p>看见了吧，看他提交的几个关键字段：$update['members'],$update['threads'],$update['posts'],$thread['special'],$update['spt_'.$thread['special']],$update['msn_domain'],这些字段提交过去，也许对我们系统安全并无影响，可看看6.0版本的论坛还提交了什么：</p>
<p>uniqueid=**&#038;version=6.0.0&#038;release=20081117&#038;php=5.2.6&#038;mysql=5.0.22&#038;charset=utf-8&#038;bbname=**&#038;mastermobile=****&#038;members=4965&#038;threads=883&#038;posts=25921&#038;spt_0=879&#038;spt_1=4&#038;</p>
<p>mastermobile 看见这个字段你会汗不？</p>
<p>康盛应该为此行为买单不？不会 。</p>
<p>看下边：</p>
<blockquote><p>
III 有限担保和免责声明<br />
    1. 本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。<br />
    2. 用户出于自愿而使用本软件，您必须了解使用本软件的风险，在尚未购买产品技术服务之前，我们不承诺提供任何形式的技术支持、使用担保，也不承担任何因使用本软件而产生问题的相关责任。<br />
    3. 康盛创想(北京)科技有限公司不对使用本软件构建的论坛中的文章或信息承担责任。
</p></blockquote>
<p>您必须了解使用本软件的风险&#8211;用户了解信息泄露的风险么？<br />
康盛创想(北京)科技有限公司不对使用本软件构建的论坛中的文章或信息承担责任。其实，我也不愿意承担。</p>
<p>本文纯属月经文，如有难受，过几天自然恢复。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/10/discuz-hole.shtml/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>完全缓存discuz论坛数据</title>
		<link>http://www.sunboyu.cn/2009/12/06/%e5%ae%8c%e5%85%a8%e7%bc%93%e5%ad%98discuz%e8%ae%ba%e5%9d%9b%e6%95%b0%e6%8d%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/12/06/%e5%ae%8c%e5%85%a8%e7%bc%93%e5%ad%98discuz%e8%ae%ba%e5%9d%9b%e6%95%b0%e6%8d%ae.shtml#comments</comments>
		<pubDate>Sun, 06 Dec 2009 14:15:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1072</guid>
		<description><![CDATA[最近一直在琢磨discuz的优化，想出一些数据缓存的策略：
index.php  部分数据已经进行了缓存，但需要全部缓存，只有当 页面刷新数/更新时间 >>>>  发帖数/更新时间 ，则有必要做此缓存，此处缓存更新最为频繁，适合做内存缓存，但 更新时间不宜太久，此时间根据首页更新频度确定。
forumdisplay.php  更新频繁，优化策略同上，只是更新频度略低于首页。
viewthread.php  回复更新频繁，内容更新频度低，适合做硬盘缓存。但分页部分不可做缓存，否则……
space.php  更新不频繁，适合做硬盘缓存。
faq.php  做个静态即可。
以上分析只是根据平时维护总结，临时脑子一蹦，未作具体分析，欢迎广大站长讨论试用。版权所有，欢迎盗版。
]]></description>
			<content:encoded><![CDATA[<p>最近一直在琢磨discuz的优化，想出一些数据缓存的策略：</p>
<p>index.php  部分数据已经进行了缓存，但需要全部缓存，只有当 页面刷新数/更新时间 >>>>  发帖数/更新时间 ，则有必要做此缓存，此处缓存更新最为频繁，适合做内存缓存，但 更新时间不宜太久，此时间根据首页更新频度确定。</p>
<p>forumdisplay.php  更新频繁，优化策略同上，只是更新频度略低于首页。</p>
<p>viewthread.php  回复更新频繁，内容更新频度低，适合做硬盘缓存。但分页部分不可做缓存，否则……</p>
<p>space.php  更新不频繁，适合做硬盘缓存。</p>
<p>faq.php  做个静态即可。</p>
<p>以上分析只是根据平时维护总结，临时脑子一蹦，未作具体分析，欢迎广大站长讨论试用。版权所有，欢迎盗版。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/12/06/%e5%ae%8c%e5%85%a8%e7%bc%93%e5%ad%98discuz%e8%ae%ba%e5%9d%9b%e6%95%b0%e6%8d%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>暂别剑三</title>
		<link>http://www.sunboyu.cn/2009/11/28/%e6%9a%82%e5%88%ab%e5%89%91%e4%b8%89.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/28/%e6%9a%82%e5%88%ab%e5%89%91%e4%b8%89.shtml#comments</comments>
		<pubDate>Fri, 27 Nov 2009 16:05:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1068</guid>
		<description><![CDATA[最近发现玩游戏有点堕落，大量时间用在了游戏上，突然有一天，登陆服务器，发现好多命令居然手生了，又发现博客很久没有更新，又发现，几乎没有代码量了。
痛定思痛，本月剑三不再充值。待恢复学习后再考虑充值。

]]></description>
			<content:encoded><![CDATA[<p>最近发现玩游戏有点堕落，大量时间用在了游戏上，突然有一天，登陆服务器，发现好多命令居然手生了，又发现博客很久没有更新，又发现，几乎没有代码量了。</p>
<p>痛定思痛，本月剑三不再充值。待恢复学习后再考虑充值。</p>
<p><img alt="" src="http://pic.xoyo.com/cms/jx3/2009/10/30/cc/cc37.jpg" title="剑三拖拉机" class="aligncenter" width="600" height="433" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/28/%e6%9a%82%e5%88%ab%e5%89%91%e4%b8%89.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>大话discuz性能优化</title>
		<link>http://www.sunboyu.cn/2009/11/27/%e5%a4%a7%e8%af%9ddiscuz%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/27/%e5%a4%a7%e8%af%9ddiscuz%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Fri, 27 Nov 2009 15:46:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1065</guid>
		<description><![CDATA[接此篇  http://www.sunboyu.cn/2009/11/05/discuz%E8%AE%BA%E5%9D%9B%E4%BC%98%E5%8C%96.shtml
最近一直在修改discuz，看到了很多问题，在跟系统工程部门合作的时候，也看到了很多比较优秀的解决方案，可以引入到系统中。
底下粗略讲述下已经做过的优化和可以着手进行的优化。
对于一个数据量比较大的论坛，首先是分表。posts表，threads表是必须要分的。可以按照forum表的fid进行分，也可以使用tid进行hash散列分布。分表带来的问题，显然是分页。我们进行排序的时候不可能去进行union查询，否则就失去了分表的意义。在这里，我们使用了一个支持排序的key-value型存储的小型数据库-Tokyo Tyrant（http://1978th.net/tokyotyrant/），用此数据库去同步threads表和posts表的数据，达到高速分页。（附：典型应用可以参见此文章 http://blog.s135.com/tcsql/ ）
随着数据表的膨胀，很多join联查必须进行拆分。分表可能强制我们去拆分联查，另外一些很变动不大的表，比如用户信息表的数据，使用率明显很高，变动不会太大，而使用key-value存储再合适不过。这时候，bdb和memcached是首选，我推荐使用bdb，可以持久存储于硬盘上，由用户更新资料触发更新，不必考虑过期和服务器重启的问题。这样可以减少太多的join联查，而节约数据库服务器的缓存。
随着静态文件的增长和访问量的增长，带宽浪费是一个值得考虑的问题。我们打开discuz的首页，静态文件要比php文件多好几倍，而每个文件都夹带了长长的cookie信息，因此，把这些cookie去掉显然会节约大量的带宽。discuz的文件结构还是很不错的，通常通过一个参数的配置或者全文替换就能完成这项工作。此应用，可以在新浪所有的图片上有所体现。
全文检索是mysql所不擅长的，因此附加一个好的全文检索方案很必须，我熟悉的方案：Lucene，sphinx，whoosh是我喜欢的几个全文检索的工具，对于discuz的负载，我感觉任何一个都能满足应用。在此方案上，设计一个完美的同步触发机制很重要。
还有很多问题，都在待发现中，部分问题已经解决，部分问题可以优化。discuz优化好，其实是个不错的产品。
]]></description>
			<content:encoded><![CDATA[<p>接此篇  http://www.sunboyu.cn/2009/11/05/discuz%E8%AE%BA%E5%9D%9B%E4%BC%98%E5%8C%96.shtml</p>
<p>最近一直在修改discuz，看到了很多问题，在跟系统工程部门合作的时候，也看到了很多比较优秀的解决方案，可以引入到系统中。</p>
<p>底下粗略讲述下已经做过的优化和可以着手进行的优化。</p>
<p>对于一个数据量比较大的论坛，首先是分表。posts表，threads表是必须要分的。可以按照forum表的fid进行分，也可以使用tid进行hash散列分布。分表带来的问题，显然是分页。我们进行排序的时候不可能去进行union查询，否则就失去了分表的意义。在这里，我们使用了一个支持排序的key-value型存储的小型数据库-Tokyo Tyrant（http://1978th.net/tokyotyrant/），用此数据库去同步threads表和posts表的数据，达到高速分页。（附：典型应用可以参见此文章 http://blog.s135.com/tcsql/ ）</p>
<p>随着数据表的膨胀，很多join联查必须进行拆分。分表可能强制我们去拆分联查，另外一些很变动不大的表，比如用户信息表的数据，使用率明显很高，变动不会太大，而使用key-value存储再合适不过。这时候，bdb和memcached是首选，我推荐使用bdb，可以持久存储于硬盘上，由用户更新资料触发更新，不必考虑过期和服务器重启的问题。这样可以减少太多的join联查，而节约数据库服务器的缓存。</p>
<p>随着静态文件的增长和访问量的增长，带宽浪费是一个值得考虑的问题。我们打开discuz的首页，静态文件要比php文件多好几倍，而每个文件都夹带了长长的cookie信息，因此，把这些cookie去掉显然会节约大量的带宽。discuz的文件结构还是很不错的，通常通过一个参数的配置或者全文替换就能完成这项工作。此应用，可以在新浪所有的图片上有所体现。</p>
<p>全文检索是mysql所不擅长的，因此附加一个好的全文检索方案很必须，我熟悉的方案：Lucene，sphinx，whoosh是我喜欢的几个全文检索的工具，对于discuz的负载，我感觉任何一个都能满足应用。在此方案上，设计一个完美的同步触发机制很重要。</p>
<p>还有很多问题，都在待发现中，部分问题已经解决，部分问题可以优化。discuz优化好，其实是个不错的产品。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/27/%e5%a4%a7%e8%af%9ddiscuz%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给WordPress加了个每日谚语插件</title>
		<link>http://www.sunboyu.cn/2009/11/23/%e7%bb%99wordpress%e5%8a%a0%e4%ba%86%e4%b8%aa%e6%af%8f%e6%97%a5%e8%b0%9a%e8%af%ad%e6%8f%92%e4%bb%b6.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/23/%e7%bb%99wordpress%e5%8a%a0%e4%ba%86%e4%b8%aa%e6%af%8f%e6%97%a5%e8%b0%9a%e8%af%ad%e6%8f%92%e4%bb%b6.shtml#comments</comments>
		<pubDate>Mon, 23 Nov 2009 15:04:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1060</guid>
		<description><![CDATA[很久没写点自己的小代码了，感觉手生。
&#60; ?=$voice[rand(0,count($voice)-1)]?&#62;&#160; #加在title的地方，$voice这个数组随便找个地方塞一下就行
]]></description>
			<content:encoded><![CDATA[<p>很久没写点自己的小代码了，感觉手生。</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">&lt; ?=$voice[rand(0,count($voice)-1)]?&gt;&nbsp; #加在title的地方，$voice这个数组随便找个地方塞一下就行</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/23/%e7%bb%99wordpress%e5%8a%a0%e4%ba%86%e4%b8%aa%e6%af%8f%e6%97%a5%e8%b0%9a%e8%af%ad%e6%8f%92%e4%bb%b6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>程序猿？车手？</title>
		<link>http://www.sunboyu.cn/2009/11/21/%e7%a8%8b%e5%ba%8f%e7%8c%bf%ef%bc%9f%e8%bd%a6%e6%89%8b%ef%bc%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/21/%e7%a8%8b%e5%ba%8f%e7%8c%bf%ef%bc%9f%e8%bd%a6%e6%89%8b%ef%bc%9f.shtml#comments</comments>
		<pubDate>Sat, 21 Nov 2009 02:45:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[单车生活]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1057</guid>
		<description><![CDATA[
刚配了一套轮组，升级一下上班车，放到办公桌上搞个造型。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2009/11/desktop.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/11/desktop-300x225.jpg" alt="desktop" title="desktop" width="300" height="225" class="aligncenter size-medium wp-image-1058" /></a></p>
<p>刚配了一套轮组，升级一下上班车，放到办公桌上搞个造型。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/21/%e7%a8%8b%e5%ba%8f%e7%8c%bf%ef%bc%9f%e8%bd%a6%e6%89%8b%ef%bc%9f.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>流程的改进和代码控制</title>
		<link>http://www.sunboyu.cn/2009/11/21/%e6%b5%81%e7%a8%8b%e7%9a%84%e6%94%b9%e8%bf%9b%e5%92%8c%e4%bb%a3%e7%a0%81%e6%8e%a7%e5%88%b6.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/21/%e6%b5%81%e7%a8%8b%e7%9a%84%e6%94%b9%e8%bf%9b%e5%92%8c%e4%bb%a3%e7%a0%81%e6%8e%a7%e5%88%b6.shtml#comments</comments>
		<pubDate>Sat, 21 Nov 2009 01:37:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1055</guid>
		<description><![CDATA[最近一直在修改系统，并无太多原创的代码。其中修改了ucenterhome和discuz两套代码。
ucenterhome原来的队伍进行优化后，我又改进了分享功能。此功能虽然上线，功能也无大碍，但UE方面差强人意，主要是因为年前项目紧张，此项目投入人力并不多的原因。此功能修改，无详细的需求文档，也未进行详细的需求分析和业务逻辑设计，就匆匆开始了编码过程，结果就是：代码比较混乱，结构性比较差，升级和改进的潜力小。如果要改进，面临的结果就是重写。又因为uchome本身的设计结构，无论改写和重写成本都比较高。
因此，前期的规划是比较重要的，前期多想一点，后期就能节约更多的时间和精力。
这种做法马上应用到下一个项目中：discuz论坛的优化和功能改造。
前期对需求做了详细的分析，在中间不断的需求细化和明确，因此，功能和业务逻辑清晰，代码在修改的时候，保留了原来功能，只做了功能的分支。虽然前期的需求交流花费了较多的时间，但编码过程所花费的时间就很小了。
后者的流程才是以后要继续发扬的流程。
]]></description>
			<content:encoded><![CDATA[<p>最近一直在修改系统，并无太多原创的代码。其中修改了ucenterhome和discuz两套代码。</p>
<p>ucenterhome原来的队伍进行优化后，我又改进了分享功能。此功能虽然上线，功能也无大碍，但UE方面差强人意，主要是因为年前项目紧张，此项目投入人力并不多的原因。此功能修改，无详细的需求文档，也未进行详细的需求分析和业务逻辑设计，就匆匆开始了编码过程，结果就是：代码比较混乱，结构性比较差，升级和改进的潜力小。如果要改进，面临的结果就是重写。又因为uchome本身的设计结构，无论改写和重写成本都比较高。</p>
<p>因此，前期的规划是比较重要的，前期多想一点，后期就能节约更多的时间和精力。</p>
<p>这种做法马上应用到下一个项目中：discuz论坛的优化和功能改造。</p>
<p>前期对需求做了详细的分析，在中间不断的需求细化和明确，因此，功能和业务逻辑清晰，代码在修改的时候，保留了原来功能，只做了功能的分支。虽然前期的需求交流花费了较多的时间，但编码过程所花费的时间就很小了。</p>
<p>后者的流程才是以后要继续发扬的流程。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/21/%e6%b5%81%e7%a8%8b%e7%9a%84%e6%94%b9%e8%bf%9b%e5%92%8c%e4%bb%a3%e7%a0%81%e6%8e%a7%e5%88%b6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>课间活动</title>
		<link>http://www.sunboyu.cn/2009/11/20/%e8%af%be%e9%97%b4%e6%b4%bb%e5%8a%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/20/%e8%af%be%e9%97%b4%e6%b4%bb%e5%8a%a8.shtml#comments</comments>
		<pubDate>Fri, 20 Nov 2009 07:15:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1051</guid>
		<description><![CDATA[
版权所有，欢迎转载
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2009/11/xoyo.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/11/xoyo-300x229.jpg" alt="xoyo" title="xoyo" width="300" height="229" class="aligncenter size-medium wp-image-1052" /></a></p>
<p>版权所有，欢迎转载</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/20/%e8%af%be%e9%97%b4%e6%b4%bb%e5%8a%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一段清理系统垃圾的代码（只用于windows）</title>
		<link>http://www.sunboyu.cn/2009/11/17/%e4%b8%80%e6%ae%b5%e6%b8%85%e7%90%86%e7%b3%bb%e7%bb%9f%e5%9e%83%e5%9c%be%e7%9a%84%e4%bb%a3%e7%a0%81%ef%bc%88%e5%8f%aa%e7%94%a8%e4%ba%8ewindows%ef%bc%89.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/17/%e4%b8%80%e6%ae%b5%e6%b8%85%e7%90%86%e7%b3%bb%e7%bb%9f%e5%9e%83%e5%9c%be%e7%9a%84%e4%bb%a3%e7%a0%81%ef%bc%88%e5%8f%aa%e7%94%a8%e4%ba%8ewindows%ef%bc%89.shtml#comments</comments>
		<pubDate>Tue, 17 Nov 2009 06:28:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1048</guid>
		<description><![CDATA[clean
]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.sunboyu.cn/upfiles/2009/11/clean.bat'>clean</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/17/%e4%b8%80%e6%ae%b5%e6%b8%85%e7%90%86%e7%b3%bb%e7%bb%9f%e5%9e%83%e5%9c%be%e7%9a%84%e4%bb%a3%e7%a0%81%ef%bc%88%e5%8f%aa%e7%94%a8%e4%ba%8ewindows%ef%bc%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>上地桥堵车的场面，各位如果有时间，稍微绕一下</title>
		<link>http://www.sunboyu.cn/2009/11/17/%e4%b8%8a%e5%9c%b0%e6%a1%a5%e5%a0%b5%e8%bd%a6%e7%9a%84%e5%9c%ba%e9%9d%a2%ef%bc%8c%e5%90%84%e4%bd%8d%e5%a6%82%e6%9e%9c%e6%9c%89%e6%97%b6%e9%97%b4%ef%bc%8c%e7%a8%8d%e5%be%ae%e7%bb%95%e4%b8%80%e4%b8%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/17/%e4%b8%8a%e5%9c%b0%e6%a1%a5%e5%a0%b5%e8%bd%a6%e7%9a%84%e5%9c%ba%e9%9d%a2%ef%bc%8c%e5%90%84%e4%bd%8d%e5%a6%82%e6%9e%9c%e6%9c%89%e6%97%b6%e9%97%b4%ef%bc%8c%e7%a8%8d%e5%be%ae%e7%bb%95%e4%b8%80%e4%b8%8b.shtml#comments</comments>
		<pubDate>Tue, 17 Nov 2009 00:58:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1042</guid>
		<description><![CDATA[



]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2009/11/shangdi4.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/11/shangdi4-300x225.jpg" alt="shangdi4" title="shangdi4" width="300" height="225" class="aligncenter size-medium wp-image-1046" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/11/shangdi3.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/11/shangdi3-300x225.jpg" alt="shangdi3" title="shangdi3" width="300" height="225" class="aligncenter size-medium wp-image-1045" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/11/shangdi2.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/11/shangdi2-300x225.jpg" alt="shangdi2" title="shangdi2" width="300" height="225" class="aligncenter size-medium wp-image-1044" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/11/shangdi1.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/11/shangdi1-300x225.jpg" alt="shangdi1" title="shangdi1" width="300" height="225" class="aligncenter size-medium wp-image-1043" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/17/%e4%b8%8a%e5%9c%b0%e6%a1%a5%e5%a0%b5%e8%bd%a6%e7%9a%84%e5%9c%ba%e9%9d%a2%ef%bc%8c%e5%90%84%e4%bd%8d%e5%a6%82%e6%9e%9c%e6%9c%89%e6%97%b6%e9%97%b4%ef%bc%8c%e7%a8%8d%e5%be%ae%e7%bb%95%e4%b8%80%e4%b8%8b.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>phpmyadmin语句定界符的问题</title>
		<link>http://www.sunboyu.cn/2009/11/11/phpmyadmin%e8%af%ad%e5%8f%a5%e5%ae%9a%e7%95%8c%e7%ac%a6%e7%9a%84%e9%97%ae%e9%a2%98.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/11/phpmyadmin%e8%af%ad%e5%8f%a5%e5%ae%9a%e7%95%8c%e7%ac%a6%e7%9a%84%e9%97%ae%e9%a2%98.shtml#comments</comments>
		<pubDate>Wed, 11 Nov 2009 09:59:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1034</guid>
		<description><![CDATA[用phpmyadmin写触发器的朋友，不知道有没有碰见这个问题：用pma导出的语句，死活倒不进去，mysqldump导出的，也不能用pma倒入。
反正问题多多，很令人头疼。
今天再次碰到这个问题后，偶然发现个问题，就是sql输入框下的一个小的内容：语句定界符。
平时导出sql，语句定界符默认是分号，而编辑触发器的时候，是两个斜杠//。
蹊跷就在这里，导入的时候使用的定界符必须跟倒出时候的定界符保持一致，否则就会出现错误。
问题发现后，老王是相当的高兴啊。
]]></description>
			<content:encoded><![CDATA[<p>用phpmyadmin写触发器的朋友，不知道有没有碰见这个问题：用pma导出的语句，死活倒不进去，mysqldump导出的，也不能用pma倒入。</p>
<p>反正问题多多，很令人头疼。</p>
<p>今天再次碰到这个问题后，偶然发现个问题，就是sql输入框下的一个小的内容：语句定界符。</p>
<p>平时导出sql，语句定界符默认是分号，而编辑触发器的时候，是两个斜杠//。</p>
<p>蹊跷就在这里，导入的时候使用的定界符必须跟倒出时候的定界符保持一致，否则就会出现错误。</p>
<p>问题发现后，老王是相当的高兴啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/11/phpmyadmin%e8%af%ad%e5%8f%a5%e5%ae%9a%e7%95%8c%e7%ac%a6%e7%9a%84%e9%97%ae%e9%a2%98.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>discuz论坛优化</title>
		<link>http://www.sunboyu.cn/2009/11/05/discuz%e8%ae%ba%e5%9d%9b%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/05/discuz%e8%ae%ba%e5%9d%9b%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Thu, 05 Nov 2009 10:19:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1031</guid>
		<description><![CDATA[discuz论坛在国内非常流行，用户众多。优秀的用户体验和超强的负载，也赢得了众多的好评。
但discuz毕竟是为中小型网站设计，很容易达到性能的瓶颈。在最近对discuz的改造和表结构的分析，做了以下的探讨，来提升论坛的性能。
第一步，当然就是分表。
技术实力不太强的用户（严重依赖mysql的用户），分表是最直接的做法（当然，有些功能会损失）。
分析一个运营两年的discuz数据库，库表大概是十几个G左右，posts数据表已经几个千万。
首先可以拆分的，就是post表了。根据情况，post表可以分10张，百张，规则可以哈希，也可以阶段自增（分表主键使用tid（帖子id））。分完表，可以看到一排post_**的表，每个表的数据量降到百万以下，速度就无太大影响。
第二个可以拆分的，是threads表，此表分表，可以水平分割方式水平的分割，可以根据论坛版块id进行分表，这样可以使每个表的数据量减小，但这样也损失了一个功能：全站标题检索。
通过以上两个表的改造论坛的承载能力能迅速见长。
底下会讨论高级优化改造得方法，且听下次分解。
]]></description>
			<content:encoded><![CDATA[<p>discuz论坛在国内非常流行，用户众多。优秀的用户体验和超强的负载，也赢得了众多的好评。</p>
<p>但discuz毕竟是为中小型网站设计，很容易达到性能的瓶颈。在最近对discuz的改造和表结构的分析，做了以下的探讨，来提升论坛的性能。</p>
<p>第一步，当然就是分表。<br />
技术实力不太强的用户（严重依赖mysql的用户），分表是最直接的做法（当然，有些功能会损失）。</p>
<p>分析一个运营两年的discuz数据库，库表大概是十几个G左右，posts数据表已经几个千万。</p>
<p>首先可以拆分的，就是post表了。根据情况，post表可以分10张，百张，规则可以哈希，也可以阶段自增（分表主键使用tid（帖子id））。分完表，可以看到一排post_**的表，每个表的数据量降到百万以下，速度就无太大影响。</p>
<p>第二个可以拆分的，是threads表，此表分表，可以水平分割方式水平的分割，可以根据论坛版块id进行分表，这样可以使每个表的数据量减小，但这样也损失了一个功能：全站标题检索。</p>
<p>通过以上两个表的改造论坛的承载能力能迅速见长。</p>
<p>底下会讨论高级优化改造得方法，且听下次分解。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/05/discuz%e8%ae%ba%e5%9d%9b%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>逍遥谷居民重新开战</title>
		<link>http://www.sunboyu.cn/2009/11/05/%e9%80%8d%e9%81%a5%e8%b0%b7%e5%b1%85%e6%b0%91%e9%87%8d%e6%96%b0%e5%bc%80%e6%88%98.shtml</link>
		<comments>http://www.sunboyu.cn/2009/11/05/%e9%80%8d%e9%81%a5%e8%b0%b7%e5%b1%85%e6%b0%91%e9%87%8d%e6%96%b0%e5%bc%80%e6%88%98.shtml#comments</comments>
		<pubDate>Thu, 05 Nov 2009 09:44:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1029</guid>
		<description><![CDATA[中午又能采矿了
]]></description>
			<content:encoded><![CDATA[<p>中午又能采矿了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/11/05/%e9%80%8d%e9%81%a5%e8%b0%b7%e5%b1%85%e6%b0%91%e9%87%8d%e6%96%b0%e5%bc%80%e6%88%98.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>剑三角色选择与玩家的性格分析</title>
		<link>http://www.sunboyu.cn/2009/10/22/%e5%89%91%e4%b8%89%e8%a7%92%e8%89%b2%e9%80%89%e6%8b%a9%e4%b8%8e%e7%8e%a9%e5%ae%b6%e7%9a%84%e6%80%a7%e6%a0%bc%e5%88%86%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2009/10/22/%e5%89%91%e4%b8%89%e8%a7%92%e8%89%b2%e9%80%89%e6%8b%a9%e4%b8%8e%e7%8e%a9%e5%ae%b6%e7%9a%84%e6%80%a7%e6%a0%bc%e5%88%86%e6%9e%90.shtml#comments</comments>
		<pubDate>Thu, 22 Oct 2009 05:57:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1021</guid>
		<description><![CDATA[天策：天策为唐王李世民的秘密部队，在地位上相当于御林军，在近代也可理解为8341部队。现在可谓特警或者特种部队。他们大多是民间的高人选拔进来，一身江湖豪气，但不缺皇家气度。
选择天策的玩家，大都充满了豪情壮志，并且充满权位的期望。玩家敢于在游戏中拼搏，并且主动担当帮会小队的领导者，为了集体利益可以牺牲自己，担当“人民天策”的角色。
万花：选择万花的玩家，多期望自己有谷主东方宇轩的宽广胸襟，又期望能在江湖中找到适合自己的桃园圣地。他们爱好清净，不愿理会江湖杂事，在江湖中不断修炼提高，成为人人尊敬的万花成员。万花的玩家的战斗更多注重自己的修炼，而非争得一名一例。
少林：天下武功出少林，加入少林的玩家一定抱着拥有江湖最高武功的目的。少林弟子不争功名利禄，以普度众生为己任。少林拥有极高的攻击的气血值，近战能力极强，在队伍中也是义不容辞的排头兵。选择少林的玩家大都把自己的目标隐藏在心底，不轻易张扬，隐居在平淡的江湖中，但路见不平，绝对拔刀相助。
七秀：大部分女玩家也许选择了七秀，也不乏一些男玩家也选择了七秀。七秀可以作为战斗的幕后英雄，技能以治疗为主。选择七秀的玩家肯定是富有爱心和奉献精神的。现实中，他们也属于乐意助人，脾气随和之士。
纯阳：这个真的不知道，回头分析。
]]></description>
			<content:encoded><![CDATA[<p>天策：天策为唐王李世民的秘密部队，在地位上相当于御林军，在近代也可理解为8341部队。现在可谓特警或者特种部队。他们大多是民间的高人选拔进来，一身江湖豪气，但不缺皇家气度。<br />
选择天策的玩家，大都充满了豪情壮志，并且充满权位的期望。玩家敢于在游戏中拼搏，并且主动担当帮会小队的领导者，为了集体利益可以牺牲自己，担当“人民天策”的角色。</p>
<p>万花：选择万花的玩家，多期望自己有谷主东方宇轩的宽广胸襟，又期望能在江湖中找到适合自己的桃园圣地。他们爱好清净，不愿理会江湖杂事，在江湖中不断修炼提高，成为人人尊敬的万花成员。万花的玩家的战斗更多注重自己的修炼，而非争得一名一例。</p>
<p>少林：天下武功出少林，加入少林的玩家一定抱着拥有江湖最高武功的目的。少林弟子不争功名利禄，以普度众生为己任。少林拥有极高的攻击的气血值，近战能力极强，在队伍中也是义不容辞的排头兵。选择少林的玩家大都把自己的目标隐藏在心底，不轻易张扬，隐居在平淡的江湖中，但路见不平，绝对拔刀相助。</p>
<p>七秀：大部分女玩家也许选择了七秀，也不乏一些男玩家也选择了七秀。七秀可以作为战斗的幕后英雄，技能以治疗为主。选择七秀的玩家肯定是富有爱心和奉献精神的。现实中，他们也属于乐意助人，脾气随和之士。</p>
<p>纯阳：这个真的不知道，回头分析。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/10/22/%e5%89%91%e4%b8%89%e8%a7%92%e8%89%b2%e9%80%89%e6%8b%a9%e4%b8%8e%e7%8e%a9%e5%ae%b6%e7%9a%84%e6%80%a7%e6%a0%bc%e5%88%86%e6%9e%90.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>跟LU有关的长工</title>
		<link>http://www.sunboyu.cn/2009/10/20/%e8%b7%9flu%e6%9c%89%e5%85%b3%e7%9a%84%e9%95%bf%e5%b7%a5.shtml</link>
		<comments>http://www.sunboyu.cn/2009/10/20/%e8%b7%9flu%e6%9c%89%e5%85%b3%e7%9a%84%e9%95%bf%e5%b7%a5.shtml#comments</comments>
		<pubDate>Tue, 20 Oct 2009 13:07:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1019</guid>
		<description><![CDATA[记得原来搭档有个xinglu，现在逍遥谷有个搭档叫aolu，经常下意识喊错。
]]></description>
			<content:encoded><![CDATA[<p>记得原来搭档有个xinglu，现在逍遥谷有个搭档叫aolu，经常下意识喊错。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/10/20/%e8%b7%9flu%e6%9c%89%e5%85%b3%e7%9a%84%e9%95%bf%e5%b7%a5.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql触发器管理</title>
		<link>http://www.sunboyu.cn/2009/10/14/mysql%e8%a7%a6%e5%8f%91%e5%99%a8%e7%ae%a1%e7%90%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/10/14/mysql%e8%a7%a6%e5%8f%91%e5%99%a8%e7%ae%a1%e7%90%86.shtml#comments</comments>
		<pubDate>Wed, 14 Oct 2009 12:45:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1016</guid>
		<description><![CDATA[mysql没有一个像mssql的客户端去管理，所以有了PHPMYADMIN，管理mysql不再单纯依靠命令行，但PHPMYADMIN似乎不是那么万能，偶尔也会耍耍版本细节的脾气。
最近使用mysql触发器，不想使用命令行编辑，但phpmyadmin调试缺比较麻烦，原来想的是先建立一个空的触发器，然后修改，后来发现修改迁移问题多的要死，在老王同学的帮助下，经过几个晚上努力，整理出一些规律。
调试的时候，可以在空的触发器上逐条增加语句，一点一点调试，这样很容易定位问题，迅速修改。
迁移的时候，不能直接编辑触发器拷贝里边的代码，我用的phpmyadmin是2.11.9*版本的，生成的代码虽然他自己认，但一迁移就出了问题，我还没去阅读PHPMYADMIN的代码，不知道代码如何产生，但begin end里的内容大致相同，不同的是两头的辅助语句。
两头的内容跟版本密切相关，用mysqldump导出的语句做模板，把过程添加到里边，基本就没什么问题了。
不同版本的语法稍有出入，没有详细总结，总之掌握了调试的方法，解决问题速度就会提升。
使用触发器后，原来十几次的交互，一次就可以解决。我尝试了下出发器和存储过程，发现开发成本都差不多，复杂度也是类似的，所以没有用存储过程。
]]></description>
			<content:encoded><![CDATA[<p>mysql没有一个像mssql的客户端去管理，所以有了PHPMYADMIN，管理mysql不再单纯依靠命令行，但PHPMYADMIN似乎不是那么万能，偶尔也会耍耍版本细节的脾气。</p>
<p>最近使用mysql触发器，不想使用命令行编辑，但phpmyadmin调试缺比较麻烦，原来想的是先建立一个空的触发器，然后修改，后来发现修改迁移问题多的要死，在老王同学的帮助下，经过几个晚上努力，整理出一些规律。</p>
<p>调试的时候，可以在空的触发器上逐条增加语句，一点一点调试，这样很容易定位问题，迅速修改。</p>
<p>迁移的时候，不能直接编辑触发器拷贝里边的代码，我用的phpmyadmin是2.11.9*版本的，生成的代码虽然他自己认，但一迁移就出了问题，我还没去阅读PHPMYADMIN的代码，不知道代码如何产生，但begin end里的内容大致相同，不同的是两头的辅助语句。</p>
<p>两头的内容跟版本密切相关，用mysqldump导出的语句做模板，把过程添加到里边，基本就没什么问题了。</p>
<p>不同版本的语法稍有出入，没有详细总结，总之掌握了调试的方法，解决问题速度就会提升。</p>
<p>使用触发器后，原来十几次的交互，一次就可以解决。我尝试了下出发器和存储过程，发现开发成本都差不多，复杂度也是类似的，所以没有用存储过程。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/10/14/mysql%e8%a7%a6%e5%8f%91%e5%99%a8%e7%ae%a1%e7%90%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>discuz的生存之道</title>
		<link>http://www.sunboyu.cn/2009/09/29/discuz%e7%9a%84%e7%94%9f%e5%ad%98%e4%b9%8b%e9%81%93.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/29/discuz%e7%9a%84%e7%94%9f%e5%ad%98%e4%b9%8b%e9%81%93.shtml#comments</comments>
		<pubDate>Tue, 29 Sep 2009 07:44:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1013</guid>
		<description><![CDATA[最近修改UCH，改得头大，对他的东西大概也熟悉个七八。
暂且不用说他的代码质量，逻辑或者完善程度，但说这个产品的发展路子，这肯定是个有市场的东西。
UCH是国内最早搞开源sns的了，而且搭配上discuz这个用户量很大的东西，迅速在国内铺开。
当然要说代码质量，那个惨，bug无数。基本做PHP的程序员，死都不愿意改它。
但是很多项目还是拿来了，为啥？因为他适合中国的用户，为啥适合？抄facebook？当然也有一定关系，关键呢，是因为东西出来的早。
产品迅速抢占市场是老戴在discuz闭源收费到开源免费的一个战略性转变，也正是这个转变，让discuz有了更加快速的成长。
bug？功能的欠缺？每天在discuz官方网站上可以看到无数的抱怨。吵得，骂的，一群一群的，但仍然阻止不了新版本接连不断的发布。
用户就是在这样不断的期望失望再期望再失望中逐渐培养出来的。
ecshop，我自认为做的很好，只可惜推出较晚，被南边的大头抢了先机。老戴的产品肯定会发展好的，因为他已经不是一个程序员。
]]></description>
			<content:encoded><![CDATA[<p>最近修改UCH，改得头大，对他的东西大概也熟悉个七八。</p>
<p>暂且不用说他的代码质量，逻辑或者完善程度，但说这个产品的发展路子，这肯定是个有市场的东西。</p>
<p>UCH是国内最早搞开源sns的了，而且搭配上discuz这个用户量很大的东西，迅速在国内铺开。</p>
<p>当然要说代码质量，那个惨，bug无数。基本做PHP的程序员，死都不愿意改它。</p>
<p>但是很多项目还是拿来了，为啥？因为他适合中国的用户，为啥适合？抄facebook？当然也有一定关系，关键呢，是因为东西出来的早。</p>
<p>产品迅速抢占市场是老戴在discuz闭源收费到开源免费的一个战略性转变，也正是这个转变，让discuz有了更加快速的成长。</p>
<p>bug？功能的欠缺？每天在discuz官方网站上可以看到无数的抱怨。吵得，骂的，一群一群的，但仍然阻止不了新版本接连不断的发布。</p>
<p>用户就是在这样不断的期望失望再期望再失望中逐渐培养出来的。</p>
<p>ecshop，我自认为做的很好，只可惜推出较晚，被南边的大头抢了先机。老戴的产品肯定会发展好的，因为他已经不是一个程序员。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/29/discuz%e7%9a%84%e7%94%9f%e5%ad%98%e4%b9%8b%e9%81%93.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php使用header来控制cookie</title>
		<link>http://www.sunboyu.cn/2009/09/28/php%e4%bd%bf%e7%94%a8header%e6%9d%a5%e6%8e%a7%e5%88%b6cookie.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/28/php%e4%bd%bf%e7%94%a8header%e6%9d%a5%e6%8e%a7%e5%88%b6cookie.shtml#comments</comments>
		<pubDate>Mon, 28 Sep 2009 07:33:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1011</guid>
		<description><![CDATA[php中的setcookie函数是有bug的，bug原理不太明白，不过底下这个方法可以避免这个bug
function setcookies( $name , $value , $expire , $path = &#34;/&#34; , $domain = &#34;&#34; )
{
&#160;&#160; &#160;header(&#34;Set-Cookie: $name=$value; path=$path; domain=$domain; expires=&#34;.gmstrftime(&#34;%A, %d-%b-%Y %H:%M:%S GMT&#34;,$expire));
}
]]></description>
			<content:encoded><![CDATA[<p>php中的setcookie函数是有bug的，bug原理不太明白，不过底下这个方法可以避免这个bug</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">function setcookies( $name , $value , $expire , $path = &quot;/&quot; , $domain = &quot;&quot; )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;header(&quot;Set-Cookie: $name=$value; path=$path; domain=$domain; expires=&quot;.gmstrftime(&quot;%A, %d-%b-%Y %H:%M:%S GMT&quot;,$expire));</li>
<li>}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/28/php%e4%bd%bf%e7%94%a8header%e6%9d%a5%e6%8e%a7%e5%88%b6cookie.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站Cache全分析</title>
		<link>http://www.sunboyu.cn/2009/09/26/%e7%bd%91%e7%ab%99cache%e5%85%a8%e5%88%86%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/26/%e7%bd%91%e7%ab%99cache%e5%85%a8%e5%88%86%e6%9e%90.shtml#comments</comments>
		<pubDate>Sat, 26 Sep 2009 13:44:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=1001</guid>
		<description><![CDATA[
前言：本文经过我对大多数网站的http头分析、自己做网站中的一些缓存设置、服务器的一些配置优化，后又阅读了RFC2616HTTP协议相关内容，以做此文。

原版下载
1、为什么要cache？
	这是个经常提到但很多时候又无法突然准确回答的问题。粗略讲，就是要加速和减压。
	加速：试想中国的网络，网通电信（就不提铁通之类）开创了互联互通新障碍，我们的用户在不多交钱的时候就得忍受奇慢的跨网速度。而作为互联网运营者，我们希望用户获得最好的用户体验，因此我们就要打破这个障碍。
	很多互联网服务商已经用分布cache解决了这个问题，比如sina，把中心服务器的内容分发到各个省市的cache服务器，根据用户所在的网络（ip段）来确定用户拉去最近服务器上的内容，达到访问速度最快。
	对于小型网站，页面静态化也是常用的cache方法，因为web服务器处理静态页面速度优于程序脚本，所以也起到了加速的作用，当然，也为了下一个原因-服务器减压。
	减压：显而易见，动态脚本的输出速度比一个静态的页面要慢的多（解释、执行、数据库数据读取）。因此，如果我们让用户只是读取一个静态文件，那硬件成本就会很低。大量用户访问静态文件而很少访问动态脚本，如何以节约昂贵的硬件资源。
	可以看出，cache还是有二利而无一害的。

2、目前流行的cache模型

可以看到，在数据库、web上，都做了相应的cache。至于生成静态文件，这个技术应该不是一个问题，所以，我在这里主要说一下通用的前端cache。
3、前端cache工作原理（apache mod_cache、squid）
Squid是一个linux下非常流行的代理服务器，当然，这里我们更多的是使用其缓冲（cache）的功能。
Apache mod_cache是从2.0版本开始加入的一个缓存模块，可以作为类似squid的缓存服务，我只尝试过在使用代理模块（mod_proxy）的时候使用，组合作为一个简易版squid，至于其他应用还没有深挖。
这里，首先提几个http协议里的头标志：
Last-Modified 文档最后修改时间，类似于php中的filemtime
Date 文档从服务器端发出的服务器端时间
Expires 文档过期时间
Cache-Control 这个指令我暂时不能用人类的语言表达清楚，大概就是，如果其他域缓存控制有冲突，一切听这个，优先级别比较高。
Pragma 一些特定指令，一般不用，但用的也很多。因为用其他几个参数就能实现目的了。
突然发现语言逻辑出了问题，居然不能表述cache的原理，故底下作图，简单说明。

这样就清楚多了，废话全省了。看不懂者请我吃饭，我给你们当面讲解。
4、实例
现在访问
http://www.sunboyu.cn/wp-content/themes/zen-in-grey-10/images/headerimage.jpg
第一次访问，我们用firebug网络标签查看：200 OK
然后刷新一下再看：304 Not Modified
综合一下其他域，分析为啥会这样
第一次访问：
请求信息
Host	www.sunboyu.cn	
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)	
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8	
Accept-Language	zh-cn,zh;q=0.5	
Accept-Encoding	gzip,deflate	
Accept-Charset	GB2312,utf-8;q=0.7,*;q=0.7	
Keep-Alive	300	
Connection	keep-alive	
Referer	http://www.sunboyu.cn/	
Cookie	__utma=100971139.746333267.1249527244.1253502591.1253523523.65; __utmz=100971139.1249527244.1.1.utmcsr=(direct)&#124;utmccn=(direct)&#124;utmcmd=(none); wp-settings-1=editor%3Dhtml%26align%3Dcenter%26m0%3Do%26m1%3Dc%26m2%3Dc%26m3%3Dc%26m4%3Do%26m5%3Do%26m6%3Do%26m7%3Dc%26m8%3Do%26hidetb%3D1%26urlbutton%3Durlfile%26imgsize%3Dlarge%26m9%3Do%26m10%3Do; wp-settings-time-1=1252910178; PHPSESSID=a9af3fbfa19442fe549227e1a355ac52; __utmc=100971139
第一次访问，发送基本的请求信息。
反馈信息：
Date	Mon, 21 Sep 2009 09:09:01 GMT	
Server	Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.8e DAV/2	
Last-Modified	Wed, 22 Jul 2009 08:13:25 GMT	
Etag	&#34;797fe8-45a3-46f46f1fb1340&#34;	
Accept-Ranges	bytes	
Content-Length	17827	
Keep-Alive	timeout=5, max=100	
Connection	Keep-Alive	
Content-Type	image/jpeg
服务器反馈了该文件的信息，其中包括date：反馈的时间；last-modified：最后修改时间；etag：页面的姆印信息。
第二次访问：
请求信息：
Host	www.sunboyu.cn	
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)	
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8	
Accept-Language	zh-cn,zh;q=0.5	
Accept-Encoding	gzip,deflate	
Accept-Charset	GB2312,utf-8;q=0.7,*;q=0.7	
Keep-Alive	300	
Connection	keep-alive	
Referer	http://www.sunboyu.cn/	
Cookie	__utma=100971139.746333267.1249527244.1253502591.1253523523.65; [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
前言：本文经过我对大多数网站的http头分析、自己做网站中的一些缓存设置、服务器的一些配置优化，后又阅读了RFC2616HTTP协议相关内容，以做此文。
</p></blockquote>
<p><a href='http://www.sunboyu.cn/upfiles/2009/09/cache.doc'>原版下载</a></p>
<p><strong>1、为什么要cache？</strong></p>
<p>	这是个经常提到但很多时候又无法突然准确回答的问题。粗略讲，就是要加速和减压。<br />
	加速：试想中国的网络，网通电信（就不提铁通之类）开创了互联互通新障碍，我们的用户在不多交钱的时候就得忍受奇慢的跨网速度。而作为互联网运营者，我们希望用户获得最好的用户体验，因此我们就要打破这个障碍。<br />
	很多互联网服务商已经用分布cache解决了这个问题，比如sina，把中心服务器的内容分发到各个省市的cache服务器，根据用户所在的网络（ip段）来确定用户拉去最近服务器上的内容，达到访问速度最快。<br />
	对于小型网站，页面静态化也是常用的cache方法，因为web服务器处理静态页面速度优于程序脚本，所以也起到了加速的作用，当然，也为了下一个原因-服务器减压。<br />
	减压：显而易见，动态脚本的输出速度比一个静态的页面要慢的多（解释、执行、数据库数据读取）。因此，如果我们让用户只是读取一个静态文件，那硬件成本就会很低。大量用户访问静态文件而很少访问动态脚本，如何以节约昂贵的硬件资源。<br />
	可以看出，cache还是有二利而无一害的。</p>
<p><span id="more-1001"></span></p>
<p><strong>2、目前流行的cache模型</strong></p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/09/lamp-cache.gif"><img src="http://www.sunboyu.cn/upfiles/2009/09/lamp-cache-300x168.gif" alt="lamp cache" title="lamp cache" width="300" height="168" class="aligncenter size-medium wp-image-1003" /></a></p>
<p>可以看到，在数据库、web上，都做了相应的cache。至于生成静态文件，这个技术应该不是一个问题，所以，我在这里主要说一下通用的前端cache。</p>
<p><strong>3、前端cache工作原理（apache mod_cache、squid）</strong></p>
<p>Squid是一个linux下非常流行的代理服务器，当然，这里我们更多的是使用其缓冲（cache）的功能。<br />
Apache mod_cache是从2.0版本开始加入的一个缓存模块，可以作为类似squid的缓存服务，我只尝试过在使用代理模块（mod_proxy）的时候使用，组合作为一个简易版squid，至于其他应用还没有深挖。<br />
这里，首先提几个http协议里的头标志：<br />
Last-Modified 文档最后修改时间，类似于php中的filemtime<br />
Date 文档从服务器端发出的服务器端时间<br />
Expires 文档过期时间<br />
Cache-Control 这个指令我暂时不能用人类的语言表达清楚，大概就是，如果其他域缓存控制有冲突，一切听这个，优先级别比较高。<br />
Pragma 一些特定指令，一般不用，但用的也很多。因为用其他几个参数就能实现目的了。</p>
<p>突然发现语言逻辑出了问题，居然不能表述cache的原理，故底下作图，简单说明。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/09/http.gif"><img src="http://www.sunboyu.cn/upfiles/2009/09/http-283x300.gif" alt="http" title="http" width="283" height="300" class="aligncenter size-medium wp-image-1004" /></a></p>
<p>这样就清楚多了，废话全省了。看不懂者请我吃饭，我给你们当面讲解。</p>
<p><strong>4、实例</strong></p>
<p>现在访问<br />
http://www.sunboyu.cn/wp-content/themes/zen-in-grey-10/images/headerimage.jpg<br />
第一次访问，我们用firebug网络标签查看：200 OK<br />
然后刷新一下再看：304 Not Modified<br />
综合一下其他域，分析为啥会这样<br />
第一次访问：<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">Host	www.sunboyu.cn	</li>
<li>User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)	</li>
<li>Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8	</li>
<li>Accept-Language	zh-cn,zh;q=0.5	</li>
<li>Accept-Encoding	gzip,deflate	</li>
<li>Accept-Charset	GB2312,utf-8;q=0.7,*;q=0.7	</li>
<li>Keep-Alive	300	</li>
<li>Connection	keep-alive	</li>
<li>Referer	http://www.sunboyu.cn/	</li>
<li>Cookie	__utma=100971139.746333267.1249527244.1253502591.1253523523.65; __utmz=100971139.1249527244.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); wp-settings-1=editor%3Dhtml%26align%3Dcenter%26m0%3Do%26m1%3Dc%26m2%3Dc%26m3%3Dc%26m4%3Do%26m5%3Do%26m6%3Do%26m7%3Dc%26m8%3Do%26hidetb%3D1%26urlbutton%3Durlfile%26imgsize%3Dlarge%26m9%3Do%26m10%3Do; wp-settings-time-1=1252910178; PHPSESSID=a9af3fbfa19442fe549227e1a355ac52; __utmc=100971139</li></ol></div>
<p>第一次访问，发送基本的请求信息。</p>
<p>反馈信息：</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">Date	Mon, 21 Sep 2009 09:09:01 GMT	</li>
<li>Server	Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.8e DAV/2	</li>
<li>Last-Modified	Wed, 22 Jul 2009 08:13:25 GMT	</li>
<li>Etag	&quot;797fe8-45a3-46f46f1fb1340&quot;	</li>
<li>Accept-Ranges	bytes	</li>
<li>Content-Length	17827	</li>
<li>Keep-Alive	timeout=5, max=100	</li>
<li>Connection	Keep-Alive	</li>
<li>Content-Type	image/jpeg</li></ol></div>
<p>服务器反馈了该文件的信息，其中包括date：反馈的时间；last-modified：最后修改时间；etag：页面的姆印信息。</p>
<p>第二次访问：<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">Host	www.sunboyu.cn	</li>
<li>User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)	</li>
<li>Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8	</li>
<li>Accept-Language	zh-cn,zh;q=0.5	</li>
<li>Accept-Encoding	gzip,deflate	</li>
<li>Accept-Charset	GB2312,utf-8;q=0.7,*;q=0.7	</li>
<li>Keep-Alive	300	</li>
<li>Connection	keep-alive	</li>
<li>Referer	http://www.sunboyu.cn/	</li>
<li>Cookie	__utma=100971139.746333267.1249527244.1253502591.1253523523.65; __utmz=100971139.1249527244.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); wp-settings-1=editor%3Dhtml%26align%3Dcenter%26m0%3Do%26m1%3Dc%26m2%3Dc%26m3%3Dc%26m4%3Do%26m5%3Do%26m6%3Do%26m7%3Dc%26m8%3Do%26hidetb%3D1%26urlbutton%3Durlfile%26imgsize%3Dlarge%26m9%3Do%26m10%3Do; wp-settings-time-1=1252910178; PHPSESSID=a9af3fbfa19442fe549227e1a355ac52; __utmc=100971139	</li>
<li>If-Modified-Since	Wed, 22 Jul 2009 08:13:25 GMT	</li>
<li>If-None-Match	&quot;797fe8-45a3-46f46f1fb1340&quot;	</li>
<li>Cache-Control	max-age=0</li></ol></div>
<p>由于信息浏览被缓存在浏览器cache中，所以向服务器请求的时候顺便带上了if-modified-sine信息，if-none-match的信息。</p>
<p>反馈信息：</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">Date	Mon, 21 Sep 2009 09:09:33 GMT	</li>
<li>Server	Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.8e DAV/2	</li>
<li>Last-Modified	Wed, 22 Jul 2009 08:13:25 GMT	</li>
<li>Etag	&quot;797fe8-45a3-46f46f1fb1340&quot;	</li>
<li>Accept-Ranges	bytes	</li>
<li>Content-Length	17827	</li>
<li>Content-Type	image/jpeg</li></ol></div>
<p>此次访问，因为etag信息的比较，服务器确定浏览器本地缓存了此文件。并且在浏览器发送的信息 if-modified-since时间后，服务器的文件并没有发生变化，因此，服务器发送304指令使浏览器读取本地缓存，以减少http信息传输量，提高响应速度。</p>
<p><strong>5、进阶（对缓存服务器的控制）</strong></p>
<p>http关于缓存的控制不仅可以控制浏览器，针对代理服务器依然有效。比如我们使用squid进行反向代理服务，我们可以通过调整http头信息而确定用户是否要访问squid的缓存信息，或者不缓存而直接转发服务器的反馈。<br />
假如现在，一台apache的server跑php，主要是cms，由于工期的问题，没工夫做生成静态了，但我们还希望负载不要太大，因此我们在前边加了一台squid服务器，希望能缓存html结果，这样实现项目快速推进。<br />
当然，服务器部署好之后，还需要程序这边做一些配置，就是发送合适的http的头信息，程序做好修改即可。<br />
首先，我们做一个规划：<br />
网站首页希望缓存5分钟，因为不断有新网站发布。<br />
列表页面缓存1小时，因为不断有新的文章发布，但比首页频度还是下降了一些。<br />
文章最终显示页面缓存一天，因为发布要经过多人审核，一般不会修改，但也难免修改一两个字眼。<br />
为了便于演示，我本地架设了apache和squid。当然鄙视一下自己，是用的windows版本，否则就不能玩剑三了。<br />
言归正传，结构如下：</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/09/demo.gif"><img src="http://www.sunboyu.cn/upfiles/2009/09/demo-300x105.gif" alt="demo" title="demo" width="300" height="105" class="aligncenter size-medium wp-image-1005" /></a></p>
<p>当访问http://127.0.0.1:8888的时候，squid转发请求至http://127.0.0.1:80获取内容，然后反馈给用户，抑或把缓存的内容直接发送给用户。<br />
现在做首页的发布。<br />
首页缓存5分钟，也就是300秒。<br />
从squid访问apache时间算起，过期时间则为 time()+300<br />
用php发送http头 header(&#8221;Expires: &#8221; .gmdate(&#8221;D, d M Y H:i:s&#8221;,time()+300). &#8221; GMT&#8221;);<br />
验证：在仿真环境中模拟，我们用httpwatch来查看squid反馈，根据apache和squid的日志来验证缓存是否生效。<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">&lt; ?php </li>
<li>header(&quot;Expires: &quot; .gmdate(&quot;D, d M Y H:i:s&quot;,time()+300). &quot; GMT&quot;);</li>
<li>echo &quot;Content test!!&quot;;</li>
<li>&nbsp;?&gt;</li></ol></div>
<p>部署完毕后访问 http://127.0.0.1 看是否顺利输出。然后访问 http://127.0.0.1:8888 看是否可以看到预期内容。<br />
如果能顺利输出，则证明squid apache工作皆正常。<br />
现在用httpwatch查看头信息<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">HTTP/1.0 200 OK</li>
<li>Date: Wed, 23 Sep 2009 07:55:42 GMT</li>
<li>Server: Apache/2.2.13 (Win32) PHP/5.2.6</li>
<li>Accept-Ranges: bytes</li>
<li>X-Powered-By: PHP/5.2.6</li>
<li>Expires: Wed, 23 Sep 2009 08:00:42 GMT</li>
<li>Content-Type: text/html</li>
<li>X-Cache: MISS from squid.sunboyu.cn</li>
<li>X-Cache-Lookup: MISS from squid.sunboyu.cn:8888</li>
<li>Via: 1.0 squid.sunboyu.cn (squid/3.0.STABLE13-BZR)</li>
<li>Connection: close</li></ol></div>
<p>第二次访问：</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">HTTP/1.0 200 OK</li>
<li>Date: Wed, 23 Sep 2009 07:55:42 GMT</li>
<li>Server: Apache/2.2.13 (Win32) PHP/5.2.6</li>
<li>Accept-Ranges: bytes</li>
<li>X-Powered-By: PHP/5.2.6</li>
<li>Expires: Wed, 23 Sep 2009 08:00:42 GMT</li>
<li>Content-Type: text/html</li>
<li>Age: 28</li>
<li>X-Cache: HIT from squid.sunboyu.cn</li>
<li>X-Cache-Lookup: HIT from squid.sunboyu.cn:8888</li>
<li>Via: 1.0 squid.sunboyu.cn (squid/3.0.STABLE13-BZR)</li>
<li>Connection: close</li></ol></div>
<p>比较两次访问，两次访问时间 07:55:42 相同，过期时间相同 08:00:42，跟之前设置的5分钟相符。第一次X-Cache显示为MISS，因为一次访问，squid缓存中并没有相关信息，所以从apache中获得，第二次缓存中存在缓存信息，直接读取缓存输出，为之“命中”。</p>
<p>根据这个实验，很容易得知第二和第三条要求的做法：</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">&lt; ?php</li>
<li>header(&quot;Expires: &quot; .gmdate(&quot;D, d M Y H:i:s&quot;,time()+3600). &quot; GMT&quot;);</li>
<li>……</li>
<li>?&gt;</li>
<li>&lt; ?php</li>
<li>header(&quot;Expires: &quot; .gmdate(&quot;D, d M Y H:i:s&quot;,time()+86400). &quot; GMT&quot;);</li>
<li>……</li>
<li>?&gt;</li></ol></div>
<p>只需要给页面加上一个过期的http头，即可实现我们的缓存目的。这样做，比生成页面方便多了。当然，如果求seo效果，可以用重写来实现，缓存效果不变。<br />
如何来显示一下缓存后的结果呢？我们可以写一个一般复杂的php脚本，其中运算数据库都使用，直接在apache运行，压力测试一下；然后使用squid访问，访问一次后，关闭apache，然后再压力测试，比较成绩。^_^，因为有了squid，apache跟mysql都不工作了，当然要非常节约资源。<br />
Squid的合理使用，达到了快速网站开发，减轻服务器压力，提高用户影响的目的。<br />
底下分析下squid在分布式加速方面的应用。<br />
分析新浪的一些图片，发现http头中有这样的信息：</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">http://i1.sinaimg.cn/blog/temp/1/2008/0306/U2725P503T1D169F1DT20090701101305.jpg</li>
<li>HTTP/1.0 304 Not Modified</li>
<li>Date: Fri, 28 Aug 2009 22:09:32 GMT</li>
<li>Content-Type: image/jpeg</li>
<li>Expires: Sat, 28 Aug 2010 22:09:32 GMT</li>
<li>Last-Modified: Wed, 01 Jul 2009 02:13:05 GMT</li>
<li>Age: 81943</li>
<li>X-Cache: HIT from zjm-209.sina.com.cn</li>
<li>Connection: keep-alive</li></ol></div>
<p>可以发现是命中了zjm-209.sina.com.cn。<br />
Sina在全国各地有好多服务器，其DNS根据用户访问的ip确定用户需要访问哪台服务器最快，则把请求转发到相应服务器，来提高用户访问速度。<br />
大概结构如下：</p>

<a href='http://www.sunboyu.cn/2009/09/26/%e7%bd%91%e7%ab%99cache%e5%85%a8%e5%88%86%e6%9e%90.shtml/lamp-cache' title='lamp cache'><img width="150" height="84" src="http://www.sunboyu.cn/upfiles/2009/09/lamp-cache-150x84.gif" class="attachment-thumbnail" alt="" title="lamp cache" /></a>
<a href='http://www.sunboyu.cn/2009/09/26/%e7%bd%91%e7%ab%99cache%e5%85%a8%e5%88%86%e6%9e%90.shtml/http' title='http'><img width="141" height="150" src="http://www.sunboyu.cn/upfiles/2009/09/http-141x150.gif" class="attachment-thumbnail" alt="" title="http" /></a>
<a href='http://www.sunboyu.cn/2009/09/26/%e7%bd%91%e7%ab%99cache%e5%85%a8%e5%88%86%e6%9e%90.shtml/demo' title='demo'><img width="150" height="52" src="http://www.sunboyu.cn/upfiles/2009/09/demo-150x52.gif" class="attachment-thumbnail" alt="" title="demo" /></a>
<a href='http://www.sunboyu.cn/2009/09/26/%e7%bd%91%e7%ab%99cache%e5%85%a8%e5%88%86%e6%9e%90.shtml/sina-cache' title='sina cache'><img width="150" height="84" src="http://www.sunboyu.cn/upfiles/2009/09/sina-cache-150x84.gif" class="attachment-thumbnail" alt="" title="sina cache" /></a>

<p>总结<br />
Cache的确是个好东西，使用好了，做事事半功倍。不过很多时候我们得cache和&#8221;非cache&#8221;共用。有些内容需要cache，有些页面却要避免cache。当然squid也给出了接口方面控制每个缓存元素。过度的cache也是不好的，在cache之前，对项目进行严谨的分析和大量的测试是我们创建缓存机制的一个前提。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/26/%e7%bd%91%e7%ab%99cache%e5%85%a8%e5%88%86%e6%9e%90.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>firefox的cache和http头信息</title>
		<link>http://www.sunboyu.cn/2009/09/24/firefox%e7%9a%84cache%e5%92%8chttp%e5%a4%b4%e4%bf%a1%e6%81%af.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/24/firefox%e7%9a%84cache%e5%92%8chttp%e5%a4%b4%e4%bf%a1%e6%81%af.shtml#comments</comments>
		<pubDate>Thu, 24 Sep 2009 03:05:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=999</guid>
		<description><![CDATA[最近调试squid，发现一个很奇异的问题，程序服务器都配置好后，使用ie狂刷，每次都是HIT，而是用firefoxF5狂刷，结果很多都是MISS，google后发现firefox独有的特性：
如果一个页面访问后，在地址栏再次敲入打开，则走cache，而如果点F5，则firefox发送http请求的时候会自动在头上增加 Cache-Control	max-age=0 因此缓存失效。不过正常访问下，还是没有问题的。
原文：
I usually post about problems that I&#8217;ve solved. But every once in a while, for all my digging around and googling, I come up on something that I can&#8217;t solve quickly and thuroughly enough &#8211; so I post about it here in the hope someone can help.
To make a long story short &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>最近调试squid，发现一个很奇异的问题，程序服务器都配置好后，使用ie狂刷，每次都是HIT，而是用firefoxF5狂刷，结果很多都是MISS，google后发现firefox独有的特性：</p>
<p>如果一个页面访问后，在地址栏再次敲入打开，则走cache，而如果点F5，则firefox发送http请求的时候会自动在头上增加 Cache-Control	max-age=0 因此缓存失效。不过正常访问下，还是没有问题的。</p>
<p>原文：</p>
<p>I usually post about problems that I&#8217;ve solved. But every once in a while, for all my digging around and googling, I come up on something that I can&#8217;t solve quickly and thuroughly enough &#8211; so I post about it here in the hope someone can help.</p>
<p>To make a long story short &#8211; I&#8217;ve found out that FireFox 1.5 appends a &#8220;Cache-Control: max-age=0&#8243; HTTP header to requests for ASPX files. This header tells the web server and any proxy servers on the way not to respond with cached version of the requested page and to go and run the actual ASPX instead.</p>
<p>For me, this is a big problem. It renders the NetApp NetCache reverse proxy that I&#8217;m using quite useless and impacts badly on response times for that particular page.</p>
<p>Does anybody know why FireFox adds this header to the request? How can this be circumvented either on the browser&#8217;s side or on the proxy server&#8217;s side?</p>
<p>It took us a bit to work it out.</p>
<p>If you hit refresh, firefox will ask for the latest copy (max-age=0).</p>
<p>If you type the url into the address bar and hit enter, then type it in again, it&#8217;ll cache.</p>
<p>Check it works in about:cache.</p>
<p>See also:</p>
<p>http://developer.mozilla.org/en/docs/Using_Firefox_1.5_caching</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/24/firefox%e7%9a%84cache%e5%92%8chttp%e5%a4%b4%e4%bf%a1%e6%81%af.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>加班与剑三</title>
		<link>http://www.sunboyu.cn/2009/09/23/%e5%8a%a0%e7%8f%ad%e4%b8%8e%e5%89%91%e4%b8%89.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/23/%e5%8a%a0%e7%8f%ad%e4%b8%8e%e5%89%91%e4%b8%89.shtml#comments</comments>
		<pubDate>Wed, 23 Sep 2009 01:11:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=997</guid>
		<description><![CDATA[昨天剑三就收费了，当然，逍遥谷大部分同仁还没有去缴纳份子钱，当然也无法进入剑三。平时手工后，工地上火热的场面不见了，大部分人早早回家，或回家休息，或回家与内人共度良宵。
次日，大家四下打听逍遥谷居民是否有福利云云。在得知短期内肯定没有后，大家逐渐去总务处缴纳份子钱，进入剑三。
]]></description>
			<content:encoded><![CDATA[<p>昨天剑三就收费了，当然，逍遥谷大部分同仁还没有去缴纳份子钱，当然也无法进入剑三。平时手工后，工地上火热的场面不见了，大部分人早早回家，或回家休息，或回家与内人共度良宵。</p>
<p>次日，大家四下打听逍遥谷居民是否有福利云云。在得知短期内肯定没有后，大家逐渐去总务处缴纳份子钱，进入剑三。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/23/%e5%8a%a0%e7%8f%ad%e4%b8%8e%e5%89%91%e4%b8%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>市集杂记</title>
		<link>http://www.sunboyu.cn/2009/09/22/%e5%b8%82%e9%9b%86%e6%9d%82%e8%ae%b0.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/22/%e5%b8%82%e9%9b%86%e6%9d%82%e8%ae%b0.shtml#comments</comments>
		<pubDate>Tue, 22 Sep 2009 07:49:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[逍遥谷的那些事]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=995</guid>
		<description><![CDATA[我们还在逍遥谷忙活着；我也早觉得有写一点东西的必要了。离我来到逍遥谷也已有两月，伟大的剑三也开始收费，我正有写一点东西的必要了。
剑三收费，大多数人还是比较支持了，一些谷底元老早于带着盘缠，千里迢迢得到钱庄转账，以争取更快得变成武林豪杰。
剑世，我已经玩了30纹银，不仅级别很低，而且未沾一花一草。赔了。中午跟逍遥谷的老人攀谈，被痛斥，穷成这样也不应该给逍遥谷丢人。
最后逍遥谷主一语道破：没30万纹银别去剑世混！莫非我这个穷秀才一直得在谷底种地？
最终还是凑了点碎银子，玩起了剑三。
]]></description>
			<content:encoded><![CDATA[<p>我们还在逍遥谷忙活着；我也早觉得有写一点东西的必要了。离我来到逍遥谷也已有两月，伟大的剑三也开始收费，我正有写一点东西的必要了。</p>
<p>剑三收费，大多数人还是比较支持了，一些谷底元老早于带着盘缠，千里迢迢得到钱庄转账，以争取更快得变成武林豪杰。</p>
<p>剑世，我已经玩了30纹银，不仅级别很低，而且未沾一花一草。赔了。中午跟逍遥谷的老人攀谈，被痛斥，穷成这样也不应该给逍遥谷丢人。</p>
<p>最后逍遥谷主一语道破：没30万纹银别去剑世混！莫非我这个穷秀才一直得在谷底种地？</p>
<p>最终还是凑了点碎银子，玩起了剑三。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/22/%e5%b8%82%e9%9b%86%e6%9d%82%e8%ae%b0.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>squid,nginx,apache几个代理软件的比较</title>
		<link>http://www.sunboyu.cn/2009/09/13/squidnginxapache%e5%87%a0%e4%b8%aa%e4%bb%a3%e7%90%86%e8%bd%af%e4%bb%b6%e7%9a%84%e6%af%94%e8%be%83.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/13/squidnginxapache%e5%87%a0%e4%b8%aa%e4%bb%a3%e7%90%86%e8%bd%af%e4%bb%b6%e7%9a%84%e6%af%94%e8%be%83.shtml#comments</comments>
		<pubDate>Sun, 13 Sep 2009 03:51:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=988</guid>
		<description><![CDATA[最近一直在研究代理缓存之类的东东，几个软件一直在瞎鼓捣，没弄出个结果，自己也稀里糊涂，总结一下几天折腾的成绩：
在并发上，nginx无疑是老大，做反向代理的时候，没有发现squid的并发方面介绍，所以暂且认为ngnix是老大，apache的稳定性有目共睹，但在并发方面的确不是很如意。
缓存方面：squid，apache都支持diskcache和memcache，根据http的head头来确定是否缓存，nginx不支持缓存，不过我在google开源上看见了新浪的水杨老大的一个东东，给nginx加上了文件缓存，不过没有大规模使用，暂时不把它当做一种解决方案。
在代理和缓存的规则上，apache很强，很强大的重写功能，尤其是强制修改http规则，不过这个功能我始终没有调试成功，no-cache的页面始终无法去缓存。
如果只是做网站的反向代理，负载均衡，nginx感觉要比squid强，性能强悍，配置方便。
如果是做代理+缓存加速，那squid的功能和稳定性还是很好的，毕竟在互联网上大量应用。
apache呢？好像没它的事情了。当然不是，有些地方可以拿他的功能当中间件使用，这个等下次分解。
]]></description>
			<content:encoded><![CDATA[<p>最近一直在研究代理缓存之类的东东，几个软件一直在瞎鼓捣，没弄出个结果，自己也稀里糊涂，总结一下几天折腾的成绩：</p>
<p>在并发上，nginx无疑是老大，做反向代理的时候，没有发现squid的并发方面介绍，所以暂且认为ngnix是老大，apache的稳定性有目共睹，但在并发方面的确不是很如意。</p>
<p>缓存方面：squid，apache都支持diskcache和memcache，根据http的head头来确定是否缓存，nginx不支持缓存，不过我在google开源上看见了新浪的水杨老大的一个东东，给nginx加上了文件缓存，不过没有大规模使用，暂时不把它当做一种解决方案。</p>
<p>在代理和缓存的规则上，apache很强，很强大的重写功能，尤其是强制修改http规则，不过这个功能我始终没有调试成功，no-cache的页面始终无法去缓存。</p>
<p>如果只是做网站的反向代理，负载均衡，nginx感觉要比squid强，性能强悍，配置方便。</p>
<p>如果是做代理+缓存加速，那squid的功能和稳定性还是很好的，毕竟在互联网上大量应用。</p>
<p>apache呢？好像没它的事情了。当然不是，有些地方可以拿他的功能当中间件使用，这个等下次分解。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/13/squidnginxapache%e5%87%a0%e4%b8%aa%e4%bb%a3%e7%90%86%e8%bd%af%e4%bb%b6%e7%9a%84%e6%af%94%e8%be%83.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>给.Net程序加个cache</title>
		<link>http://www.sunboyu.cn/2009/09/06/%e7%bb%99-net%e7%a8%8b%e5%ba%8f%e5%8a%a0%e4%b8%aacache.shtml</link>
		<comments>http://www.sunboyu.cn/2009/09/06/%e7%bb%99-net%e7%a8%8b%e5%ba%8f%e5%8a%a0%e4%b8%aacache.shtml#comments</comments>
		<pubDate>Sun, 06 Sep 2009 14:47:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=984</guid>
		<description><![CDATA[朋友说一个.net的网站总被dos攻击，让给个方案，还不能贵了。听对方描述一番，感觉是iis的垃圾造成连接数的问题。
很少研究iis，但我知道linux下很多软件可以很好的提升并发连接数，于是出一简单方案去尝试。

]]></description>
			<content:encoded><![CDATA[<p>朋友说一个.net的网站总被dos攻击，让给个方案，还不能贵了。听对方描述一番，感觉是iis的垃圾造成连接数的问题。</p>
<p>很少研究iis，但我知道linux下很多软件可以很好的提升并发连接数，于是出一简单方案去尝试。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/09/未命名-1.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/09/未命名-1.jpg" alt="未命名-1" title="未命名-1" width="1000" height="684" class="aligncenter size-full wp-image-985" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/09/06/%e7%bb%99-net%e7%a8%8b%e5%ba%8f%e5%8a%a0%e4%b8%aacache.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>个人独上妙峰山，被P，被抓作弊，被BS……</title>
		<link>http://www.sunboyu.cn/2009/08/30/%e4%b8%aa%e4%ba%ba%e7%8b%ac%e4%b8%8a%e5%a6%99%e5%b3%b0%e5%b1%b1%ef%bc%8c%e8%a2%abp%ef%bc%8c%e8%a2%ab%e6%8a%93%e4%bd%9c%e5%bc%8a%ef%bc%8c%e8%a2%abbs%e2%80%a6%e2%80%a6.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/30/%e4%b8%aa%e4%ba%ba%e7%8b%ac%e4%b8%8a%e5%a6%99%e5%b3%b0%e5%b1%b1%ef%bc%8c%e8%a2%abp%ef%bc%8c%e8%a2%ab%e6%8a%93%e4%bd%9c%e5%bc%8a%ef%bc%8c%e8%a2%abbs%e2%80%a6%e2%80%a6.shtml#comments</comments>
		<pubDate>Sun, 30 Aug 2009 11:53:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[单车生活]]></category>
		<category><![CDATA[妙峰山]]></category>
		<category><![CDATA[骑行]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=977</guid>
		<description><![CDATA[<table id="px6" title="妙峰山" border="0" cellspacing="0" cellpadding="0"><tr>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2540/3870509956_306e0090a0_m.jpg" title="IMG_5223" alt="IMG_5223"><img src="http://farm3.static.flickr.com/2540/3870509956_306e0090a0_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2540%2F3870509956_306e0090a0_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2540%2F3870509956_306e0090a0_m.jpg%22%2C%22a%22%3A%22IMG_5223%22%7D" alt="IMG_5223"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3482/3869727865_b80141c28b_m.jpg" title="IMG_5225" alt="IMG_5225"><img src="http://farm4.static.flickr.com/3482/3869727865_b80141c28b_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3482%2F3869727865_b80141c28b_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3482%2F3869727865_b80141c28b_m.jpg%22%2C%22a%22%3A%22IMG_5225%22%7D" alt="IMG_5225"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3472/3869727661_430b19fdfc_m.jpg" title="IMG_5226" alt="IMG_5226"><img src="http://farm4.static.flickr.com/3472/3869727661_430b19fdfc_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3472%2F3869727661_430b19fdfc_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3472%2F3869727661_430b19fdfc_m.jpg%22%2C%22a%22%3A%22IMG_5226%22%7D" alt="IMG_5226"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2649/3870509784_cbe5427094_m.jpg" title="IMG_5222" alt="IMG_5222"><img src="http://farm3.static.flickr.com/2649/3870509784_cbe5427094_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2649%2F3870509784_cbe5427094_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2649%2F3870509784_cbe5427094_m.jpg%22%2C%22a%22%3A%22IMG_5222%22%7D" alt="IMG_5222"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3458/3870509256_85a5a76d55_m.jpg" title="IMG_5220" alt="IMG_5220"><img src="http://farm4.static.flickr.com/3458/3870509256_85a5a76d55_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3458%2F3870509256_85a5a76d55_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3458%2F3870509256_85a5a76d55_m.jpg%22%2C%22a%22%3A%22IMG_5220%22%7D" alt="IMG_5220"/></a></td>
</tr>
<tr>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2623/3870509124_20c2b70734_m.jpg" title="IMG_5219" alt="IMG_5219"><img src="http://farm3.static.flickr.com/2623/3870509124_20c2b70734_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2623%2F3870509124_20c2b70734_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2623%2F3870509124_20c2b70734_m.jpg%22%2C%22a%22%3A%22IMG_5219%22%7D" alt="IMG_5219"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3489/3869727017_d6e40ec7f0_m.jpg" title="IMG_5221" alt="IMG_5221"><img src="http://farm4.static.flickr.com/3489/3869727017_d6e40ec7f0_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3489%2F3869727017_d6e40ec7f0_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3489%2F3869727017_d6e40ec7f0_m.jpg%22%2C%22a%22%3A%22IMG_5221%22%7D" alt="IMG_5221"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2558/3869726379_892ede829a_m.jpg" title="IMG_5218" alt="IMG_5218"><img src="http://farm3.static.flickr.com/2558/3869726379_892ede829a_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2558%2F3869726379_892ede829a_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2558%2F3869726379_892ede829a_m.jpg%22%2C%22a%22%3A%22IMG_5218%22%7D" alt="IMG_5218"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3431/3870508790_43dfc930c5_m.jpg" title="IMG_5217" alt="IMG_5217"><img src="http://farm4.static.flickr.com/3431/3870508790_43dfc930c5_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3431%2F3870508790_43dfc930c5_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3431%2F3870508790_43dfc930c5_m.jpg%22%2C%22a%22%3A%22IMG_5217%22%7D" alt="IMG_5217"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2573/3870508628_42562fc5d6_m.jpg" title="IMG_5216" alt="IMG_5216"><img src="http://farm3.static.flickr.com/2573/3870508628_42562fc5d6_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2573%2F3870508628_42562fc5d6_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2573%2F3870508628_42562fc5d6_m.jpg%22%2C%22a%22%3A%22IMG_5216%22%7D" alt="IMG_5216"/></a></td>
</tr>
<tr>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3144/3870508366_9b724c1b2e_m.jpg" title="IMG_5215" alt="IMG_5215"><img src="http://farm4.static.flickr.com/3144/3870508366_9b724c1b2e_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3144%2F3870508366_9b724c1b2e_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3144%2F3870508366_9b724c1b2e_m.jpg%22%2C%22a%22%3A%22IMG_5215%22%7D" alt="IMG_5215"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2648/3870508170_fd19249d74_m.jpg" title="IMG_5214" alt="IMG_5214"><img src="http://farm3.static.flickr.com/2648/3870508170_fd19249d74_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3870508170_fd19249d74_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3870508170_fd19249d74_m.jpg%22%2C%22a%22%3A%22IMG_5214%22%7D" alt="IMG_5214"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2655/3870507904_41314acab6_m.jpg" title="IMG_5212" alt="IMG_5212"><img src="http://farm3.static.flickr.com/2655/3870507904_41314acab6_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2655%2F3870507904_41314acab6_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2655%2F3870507904_41314acab6_m.jpg%22%2C%22a%22%3A%22IMG_5212%22%7D" alt="IMG_5212"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2652/3869725499_6538a2d503_m.jpg" title="IMG_5213" alt="IMG_5213"><img src="http://farm3.static.flickr.com/2652/3869725499_6538a2d503_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2652%2F3869725499_6538a2d503_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2652%2F3869725499_6538a2d503_m.jpg%22%2C%22a%22%3A%22IMG_5213%22%7D" alt="IMG_5213"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2541/3869725177_c83084bb77_m.jpg" title="IMG_5206" alt="IMG_5206"><img src="http://farm3.static.flickr.com/2541/3869725177_c83084bb77_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2541%2F3869725177_c83084bb77_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2541%2F3869725177_c83084bb77_m.jpg%22%2C%22a%22%3A%22IMG_5206%22%7D" alt="IMG_5206"/></a></td>
</tr>
<tr>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2659/3870507424_8bdaf61a18_m.jpg" title="IMG_5204" alt="IMG_5204"><img src="http://farm3.static.flickr.com/2659/3870507424_8bdaf61a18_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2659%2F3870507424_8bdaf61a18_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2659%2F3870507424_8bdaf61a18_m.jpg%22%2C%22a%22%3A%22IMG_5204%22%7D" alt="IMG_5204"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3424/3869724959_eb0f11452b_m.jpg" title="IMG_5205" alt="IMG_5205"><img src="http://farm4.static.flickr.com/3424/3869724959_eb0f11452b_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3424%2F3869724959_eb0f11452b_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3424%2F3869724959_eb0f11452b_m.jpg%22%2C%22a%22%3A%22IMG_5205%22%7D" alt="IMG_5205"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2495/3869724631_00b9bf926c_m.jpg" title="IMG_5201" alt="IMG_5201"><img src="http://farm3.static.flickr.com/2495/3869724631_00b9bf926c_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2495%2F3869724631_00b9bf926c_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2495%2F3869724631_00b9bf926c_m.jpg%22%2C%22a%22%3A%22IMG_5201%22%7D" alt="IMG_5201"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2579/3869724469_510994e145_m.jpg" title="IMG_5198" alt="IMG_5198"><img src="http://farm3.static.flickr.com/2579/3869724469_510994e145_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2579%2F3869724469_510994e145_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2579%2F3869724469_510994e145_m.jpg%22%2C%22a%22%3A%22IMG_5198%22%7D" alt="IMG_5198"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3528/3870507006_edb8ea6a10_m.jpg" title="IMG_5197" alt="IMG_5197"><img src="http://farm4.static.flickr.com/3528/3870507006_edb8ea6a10_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3528%2F3870507006_edb8ea6a10_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3528%2F3870507006_edb8ea6a10_m.jpg%22%2C%22a%22%3A%22IMG_5197%22%7D" alt="IMG_5197"/></a></td>
</tr>
</table><link id="px_editstylesheet" type="text/css" href="http://www.sunboyu.cn/wp-content/plugins/photoxhibit/photoxhibit.php?option=css&gid=6&1283481333" rel="stylesheet"/>原始图片  http://www.flickr.com/photos/40265853@N07/sets/72157622058873973/
因同行的同事周六加班，我的骑行就放到周末了，上周刚买的车，今天算第二次骑行，选择了一个不太长的地方：妙峰山。
早晨八点半我们在公司门口集合，出发点就是小营桥。走到温泉镇，同事由于昨日踢球膝关节疼痛，放弃了骑行，转向颐和园方向，
我只能孤身勇闯妙峰山。同事由于不熟悉北京的路，我把我的地图给他，结果，我在六环处没有拐弯，结果走了几公里的冤枉路，幸
亏提前打听，才走上正轨。这时才想起孔圣人的一句名言：鼻子下边就是路。
上了109国道，感觉身体能量逐渐消耗，但体力还行，但总是在20+的速度，据说很多QS都是30+甚至40+，本人努力了几次，不靠谱，
还是20+的好。路上碰上不少司机，打开窗口送我个指头-大拇指，很是感动。都是司机啊，眼泪哗哗的。
到了牌楼，我以为到顶了，给何总打了个电话，何总说，还有20公里，一直骑就行。我一看，果然有个路牌说20公里到妙峰山。继续
爬吧，20公里不是小菜么
刚开始爬，还能勉强保持20km，想想，20km，一小时不就上去了，可爬到一半，实在就不行了，勉强保持10km往上蹭。等看到8km牌
子的时候，体力就很差了，看着前后人少的时候，偷着推车前进，居然被一大姐给逮了，训斥我赶紧骑车。上车继续，结果还是被大
姐给P没影了。
爬行中发现一休息的老哥，小肚子比我大，也没我爬得快，但毅力好，始终能赶上我，快到峰顶3km的时候，我实在不行了，休息中
，老哥超过了我，我只好声明：我不行了，我得下去了。
休息几分钟，想想还差一点就到顶了，为啥不上去。继续走，连推带骑终于到了峰顶，休息，留影，走人。
中间碰见一个骑trek的大哥，正在寻找一个啥啥山头，说可以到防火道，我自然不知。临走人家问我：你咋还带个车锁？谁让我的车
子是贼必偷得捷安特呢。
一天骑行是120公里，骑行时间就不好意思说了，下午5点才到家。这成绩虽然比不上各位QS，但这是我骑行历史上的第80~200公里，自我感觉良好。
感谢同事陪我走过最无聊的路段
感谢司机同志给我的拇指
感谢摩托车队给我的拇指
感谢三蹦子（跨子摩托）给我的拇指
感谢车友给我的鼓励
感谢老哥陪我休息
感谢trek大哥对我的表扬
感谢一切车友

]]></description>
			<content:encoded><![CDATA[<table id="px6" title="妙峰山" border="0" cellspacing="0" cellpadding="0"><tr>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2540/3870509956_306e0090a0_m.jpg" title="IMG_5223" alt="IMG_5223"><img src="http://farm3.static.flickr.com/2540/3870509956_306e0090a0_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2540%2F3870509956_306e0090a0_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2540%2F3870509956_306e0090a0_m.jpg%22%2C%22a%22%3A%22IMG_5223%22%7D" alt="IMG_5223"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3482/3869727865_b80141c28b_m.jpg" title="IMG_5225" alt="IMG_5225"><img src="http://farm4.static.flickr.com/3482/3869727865_b80141c28b_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3482%2F3869727865_b80141c28b_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3482%2F3869727865_b80141c28b_m.jpg%22%2C%22a%22%3A%22IMG_5225%22%7D" alt="IMG_5225"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3472/3869727661_430b19fdfc_m.jpg" title="IMG_5226" alt="IMG_5226"><img src="http://farm4.static.flickr.com/3472/3869727661_430b19fdfc_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3472%2F3869727661_430b19fdfc_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3472%2F3869727661_430b19fdfc_m.jpg%22%2C%22a%22%3A%22IMG_5226%22%7D" alt="IMG_5226"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2649/3870509784_cbe5427094_m.jpg" title="IMG_5222" alt="IMG_5222"><img src="http://farm3.static.flickr.com/2649/3870509784_cbe5427094_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2649%2F3870509784_cbe5427094_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2649%2F3870509784_cbe5427094_m.jpg%22%2C%22a%22%3A%22IMG_5222%22%7D" alt="IMG_5222"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3458/3870509256_85a5a76d55_m.jpg" title="IMG_5220" alt="IMG_5220"><img src="http://farm4.static.flickr.com/3458/3870509256_85a5a76d55_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3458%2F3870509256_85a5a76d55_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3458%2F3870509256_85a5a76d55_m.jpg%22%2C%22a%22%3A%22IMG_5220%22%7D" alt="IMG_5220"/></a></td>
</tr>
<tr>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2623/3870509124_20c2b70734_m.jpg" title="IMG_5219" alt="IMG_5219"><img src="http://farm3.static.flickr.com/2623/3870509124_20c2b70734_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2623%2F3870509124_20c2b70734_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2623%2F3870509124_20c2b70734_m.jpg%22%2C%22a%22%3A%22IMG_5219%22%7D" alt="IMG_5219"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3489/3869727017_d6e40ec7f0_m.jpg" title="IMG_5221" alt="IMG_5221"><img src="http://farm4.static.flickr.com/3489/3869727017_d6e40ec7f0_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3489%2F3869727017_d6e40ec7f0_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3489%2F3869727017_d6e40ec7f0_m.jpg%22%2C%22a%22%3A%22IMG_5221%22%7D" alt="IMG_5221"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2558/3869726379_892ede829a_m.jpg" title="IMG_5218" alt="IMG_5218"><img src="http://farm3.static.flickr.com/2558/3869726379_892ede829a_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2558%2F3869726379_892ede829a_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2558%2F3869726379_892ede829a_m.jpg%22%2C%22a%22%3A%22IMG_5218%22%7D" alt="IMG_5218"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3431/3870508790_43dfc930c5_m.jpg" title="IMG_5217" alt="IMG_5217"><img src="http://farm4.static.flickr.com/3431/3870508790_43dfc930c5_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3431%2F3870508790_43dfc930c5_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3431%2F3870508790_43dfc930c5_m.jpg%22%2C%22a%22%3A%22IMG_5217%22%7D" alt="IMG_5217"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2573/3870508628_42562fc5d6_m.jpg" title="IMG_5216" alt="IMG_5216"><img src="http://farm3.static.flickr.com/2573/3870508628_42562fc5d6_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2573%2F3870508628_42562fc5d6_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2573%2F3870508628_42562fc5d6_m.jpg%22%2C%22a%22%3A%22IMG_5216%22%7D" alt="IMG_5216"/></a></td>
</tr>
<tr>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3144/3870508366_9b724c1b2e_m.jpg" title="IMG_5215" alt="IMG_5215"><img src="http://farm4.static.flickr.com/3144/3870508366_9b724c1b2e_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3144%2F3870508366_9b724c1b2e_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3144%2F3870508366_9b724c1b2e_m.jpg%22%2C%22a%22%3A%22IMG_5215%22%7D" alt="IMG_5215"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2648/3870508170_fd19249d74_m.jpg" title="IMG_5214" alt="IMG_5214"><img src="http://farm3.static.flickr.com/2648/3870508170_fd19249d74_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3870508170_fd19249d74_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3870508170_fd19249d74_m.jpg%22%2C%22a%22%3A%22IMG_5214%22%7D" alt="IMG_5214"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2655/3870507904_41314acab6_m.jpg" title="IMG_5212" alt="IMG_5212"><img src="http://farm3.static.flickr.com/2655/3870507904_41314acab6_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2655%2F3870507904_41314acab6_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2655%2F3870507904_41314acab6_m.jpg%22%2C%22a%22%3A%22IMG_5212%22%7D" alt="IMG_5212"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2652/3869725499_6538a2d503_m.jpg" title="IMG_5213" alt="IMG_5213"><img src="http://farm3.static.flickr.com/2652/3869725499_6538a2d503_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2652%2F3869725499_6538a2d503_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2652%2F3869725499_6538a2d503_m.jpg%22%2C%22a%22%3A%22IMG_5213%22%7D" alt="IMG_5213"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2541/3869725177_c83084bb77_m.jpg" title="IMG_5206" alt="IMG_5206"><img src="http://farm3.static.flickr.com/2541/3869725177_c83084bb77_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2541%2F3869725177_c83084bb77_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2541%2F3869725177_c83084bb77_m.jpg%22%2C%22a%22%3A%22IMG_5206%22%7D" alt="IMG_5206"/></a></td>
</tr>
<tr>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2659/3870507424_8bdaf61a18_m.jpg" title="IMG_5204" alt="IMG_5204"><img src="http://farm3.static.flickr.com/2659/3870507424_8bdaf61a18_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2659%2F3870507424_8bdaf61a18_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2659%2F3870507424_8bdaf61a18_m.jpg%22%2C%22a%22%3A%22IMG_5204%22%7D" alt="IMG_5204"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3424/3869724959_eb0f11452b_m.jpg" title="IMG_5205" alt="IMG_5205"><img src="http://farm4.static.flickr.com/3424/3869724959_eb0f11452b_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3424%2F3869724959_eb0f11452b_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3424%2F3869724959_eb0f11452b_m.jpg%22%2C%22a%22%3A%22IMG_5205%22%7D" alt="IMG_5205"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2495/3869724631_00b9bf926c_m.jpg" title="IMG_5201" alt="IMG_5201"><img src="http://farm3.static.flickr.com/2495/3869724631_00b9bf926c_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2495%2F3869724631_00b9bf926c_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2495%2F3869724631_00b9bf926c_m.jpg%22%2C%22a%22%3A%22IMG_5201%22%7D" alt="IMG_5201"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm3.static.flickr.com/2579/3869724469_510994e145_m.jpg" title="IMG_5198" alt="IMG_5198"><img src="http://farm3.static.flickr.com/2579/3869724469_510994e145_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2579%2F3869724469_510994e145_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2579%2F3869724469_510994e145_m.jpg%22%2C%22a%22%3A%22IMG_5198%22%7D" alt="IMG_5198"/></a></td>
<td>
<a class="thickbox" rel="g6" href="http://farm4.static.flickr.com/3528/3870507006_edb8ea6a10_m.jpg" title="IMG_5197" alt="IMG_5197"><img src="http://farm4.static.flickr.com/3528/3870507006_edb8ea6a10_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3528%2F3870507006_edb8ea6a10_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3528%2F3870507006_edb8ea6a10_m.jpg%22%2C%22a%22%3A%22IMG_5197%22%7D" alt="IMG_5197"/></a></td>
</tr>
</table><link id="px_editstylesheet" type="text/css" href="http://www.sunboyu.cn/wp-content/plugins/photoxhibit/photoxhibit.php?option=css&gid=6&1283481333" rel="stylesheet"/><p>原始图片  <a href="http://www.flickr.com/photos/40265853@N07/sets/72157622058873973/">http://www.flickr.com/photos/40265853@N07/sets/72157622058873973/</a></p>
<p>因同行的同事周六加班，我的骑行就放到周末了，上周刚买的车，今天算第二次骑行，选择了一个不太长的地方：妙峰山。</p>
<p>早晨八点半我们在公司门口集合，出发点就是小营桥。走到温泉镇，同事由于昨日踢球膝关节疼痛，放弃了骑行，转向颐和园方向，</p>
<p>我只能孤身勇闯妙峰山。同事由于不熟悉北京的路，我把我的地图给他，结果，我在六环处没有拐弯，结果走了几公里的冤枉路，幸</p>
<p>亏提前打听，才走上正轨。这时才想起孔圣人的一句名言：鼻子下边就是路。</p>
<p>上了109国道，感觉身体能量逐渐消耗，但体力还行，但总是在20+的速度，据说很多QS都是30+甚至40+，本人努力了几次，不靠谱，</p>
<p>还是20+的好。路上碰上不少司机，打开窗口送我个指头-大拇指，很是感动。都是司机啊，眼泪哗哗的。</p>
<p>到了牌楼，我以为到顶了，给何总打了个电话，何总说，还有20公里，一直骑就行。我一看，果然有个路牌说20公里到妙峰山。继续</p>
<p>爬吧，20公里不是小菜么</p>
<p>刚开始爬，还能勉强保持20km，想想，20km，一小时不就上去了，可爬到一半，实在就不行了，勉强保持10km往上蹭。等看到8km牌</p>
<p>子的时候，体力就很差了，看着前后人少的时候，偷着推车前进，居然被一大姐给逮了，训斥我赶紧骑车。上车继续，结果还是被大</p>
<p>姐给P没影了。</p>
<p>爬行中发现一休息的老哥，小肚子比我大，也没我爬得快，但毅力好，始终能赶上我，快到峰顶3km的时候，我实在不行了，休息中</p>
<p>，老哥超过了我，我只好声明：我不行了，我得下去了。</p>
<p>休息几分钟，想想还差一点就到顶了，为啥不上去。继续走，连推带骑终于到了峰顶，休息，留影，走人。</p>
<p>中间碰见一个骑trek的大哥，正在寻找一个啥啥山头，说可以到防火道，我自然不知。临走人家问我：你咋还带个车锁？谁让我的车</p>
<p>子是贼必偷得捷安特呢。</p>
<p>一天骑行是120公里，骑行时间就不好意思说了，下午5点才到家。这成绩虽然比不上各位QS，但这是我骑行历史上的第80~200公里，自我感觉良好。</p>
<p>感谢同事陪我走过最无聊的路段<br />
感谢司机同志给我的拇指<br />
感谢摩托车队给我的拇指<br />
感谢三蹦子（跨子摩托）给我的拇指<br />
感谢车友给我的鼓励<br />
感谢老哥陪我休息<br />
感谢trek大哥对我的表扬<br />
感谢一切车友</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/30/%e4%b8%aa%e4%ba%ba%e7%8b%ac%e4%b8%8a%e5%a6%99%e5%b3%b0%e5%b1%b1%ef%bc%8c%e8%a2%abp%ef%bc%8c%e8%a2%ab%e6%8a%93%e4%bd%9c%e5%bc%8a%ef%bc%8c%e8%a2%abbs%e2%80%a6%e2%80%a6.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>为啥要进行骑车运动</title>
		<link>http://www.sunboyu.cn/2009/08/29/%e4%b8%ba%e5%95%a5%e8%a6%81%e8%bf%9b%e8%a1%8c%e9%aa%91%e8%bd%a6%e8%bf%90%e5%8a%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/29/%e4%b8%ba%e5%95%a5%e8%a6%81%e8%bf%9b%e8%a1%8c%e9%aa%91%e8%bd%a6%e8%bf%90%e5%8a%a8.shtml#comments</comments>
		<pubDate>Sat, 29 Aug 2009 06:15:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[单车生活]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=974</guid>
		<description><![CDATA[周末买了一辆运动型的山地，入门级的，不算贵，配上一身的装备，花了不到3000块钱。邻居看见费解：为啥不买个好的电动车？好多同事也纳闷为什么自行车也有几千上万的价格？
解释一下：首先说北漂在北京的生活都是很苦的，有乐也是苦中作乐。北京的基础环境很差，比如空气、水质、环境、饮食习惯、生活节奏，这些因素会让北漂们的身体素质有天然的劣势。因此，不断运动强身健体是北漂的必修课。当然，自行车运动只是各种运动的一种，其他运动皆可。
自行车正逐渐成为一种全民运动。当年乒乓球在打出世界后，国内掀起乒乓热，因为乒乓运动占地少，设备简单，记得小时候村里架上两块水泥板，中间放上一排砖头，就是个简单的乒乓球运动场地。而自行车在中国的普及率是很高的，很顺其自然得就能成为大众认可的运动。自行车运动只是需要一条能通车的公路，或者能过车的山路即可，成本异常低。
自行车运动花式也比较多，公路、山地、越野、BMX、攀爬、速降……要是没谱，弄个破车傻骑也能出效果。
女生骑车，建议买个合身的运动车，因为传统的代步车能把你的大腿骑粗，运动车有氧运动能让你的大腿变细。
]]></description>
			<content:encoded><![CDATA[<p>周末买了一辆运动型的山地，入门级的，不算贵，配上一身的装备，花了不到3000块钱。邻居看见费解：为啥不买个好的电动车？好多同事也纳闷为什么自行车也有几千上万的价格？</p>
<p>解释一下：首先说北漂在北京的生活都是很苦的，有乐也是苦中作乐。北京的基础环境很差，比如空气、水质、环境、饮食习惯、生活节奏，这些因素会让北漂们的身体素质有天然的劣势。因此，不断运动强身健体是北漂的必修课。当然，自行车运动只是各种运动的一种，其他运动皆可。</p>
<p>自行车正逐渐成为一种全民运动。当年乒乓球在打出世界后，国内掀起乒乓热，因为乒乓运动占地少，设备简单，记得小时候村里架上两块水泥板，中间放上一排砖头，就是个简单的乒乓球运动场地。而自行车在中国的普及率是很高的，很顺其自然得就能成为大众认可的运动。自行车运动只是需要一条能通车的公路，或者能过车的山路即可，成本异常低。</p>
<p>自行车运动花式也比较多，公路、山地、越野、BMX、攀爬、速降……要是没谱，弄个破车傻骑也能出效果。</p>
<p>女生骑车，建议买个合身的运动车，因为传统的代步车能把你的大腿骑粗，运动车有氧运动能让你的大腿变细。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/29/%e4%b8%ba%e5%95%a5%e8%a6%81%e8%bf%9b%e8%a1%8c%e9%aa%91%e8%bd%a6%e8%bf%90%e5%8a%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《哥 寂寞》小样-同事山羊的最新作品</title>
		<link>http://www.sunboyu.cn/2009/08/26/%e3%80%8a%e5%93%a5-%e5%af%82%e5%af%9e%e3%80%8b%e5%b0%8f%e6%a0%b7-%e5%90%8c%e4%ba%8b%e5%b1%b1%e7%be%8a%e7%9a%84%e6%9c%80%e6%96%b0%e4%bd%9c%e5%93%81.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/26/%e3%80%8a%e5%93%a5-%e5%af%82%e5%af%9e%e3%80%8b%e5%b0%8f%e6%a0%b7-%e5%90%8c%e4%ba%8b%e5%b1%b1%e7%be%8a%e7%9a%84%e6%9c%80%e6%96%b0%e4%bd%9c%e5%93%81.shtml#comments</comments>
		<pubDate>Wed, 26 Aug 2009 05:25:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=970</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object width="420" height="363"><param name="movie" value="http://www.tudou.com/v/8-uC2_HIsDo"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="opaque"></param><embed src="http://www.tudou.com/v/8-uC2_HIsDo" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" width="420" height="363"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/26/%e3%80%8a%e5%93%a5-%e5%af%82%e5%af%9e%e3%80%8b%e5%b0%8f%e6%a0%b7-%e5%90%8c%e4%ba%8b%e5%b1%b1%e7%be%8a%e7%9a%84%e6%9c%80%e6%96%b0%e4%bd%9c%e5%93%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>十三陵水库骑行路线详细</title>
		<link>http://www.sunboyu.cn/2009/08/26/%e5%8d%81%e4%b8%89%e9%99%b5%e6%b0%b4%e5%ba%93%e9%aa%91%e8%a1%8c%e8%b7%af%e7%ba%bf%e8%af%a6%e7%bb%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/26/%e5%8d%81%e4%b8%89%e9%99%b5%e6%b0%b4%e5%ba%93%e9%aa%91%e8%a1%8c%e8%b7%af%e7%ba%bf%e8%af%a6%e7%bb%86.shtml#comments</comments>
		<pubDate>Wed, 26 Aug 2009 04:43:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[单车生活]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=966</guid>
		<description><![CDATA[清河出发，顺着八达岭高速，是没有啥疑问的，一直往昌平冲锋，直着走，别拐弯（小弯要拐，掉沟里后果自负）。但中间有个立交桥是需要左拐的，Y的牌子字向前面，得回头才能看见，没记住是哪个桥，稍等问一下。

到昌平的西关环岛，就得掉头往市里了，走 府学路 ，那边人多，可以问问，府学路往前走，差不多穿过城区，往左看水库路，就能上水库了，那边就没啥可说的了，中间的分叉其实就是正转跟倒转的分叉。

路上车友应该不少，不认识路随时问，可以问问老乡。
回来的时候，环岛得绕大圈，否则得搬车子过去了。
]]></description>
			<content:encoded><![CDATA[<p>清河出发，顺着八达岭高速，是没有啥疑问的，一直往昌平冲锋，直着走，别拐弯（小弯要拐，掉沟里后果自负）。但中间有个立交桥是需要左拐的，Y的牌子字向前面，得回头才能看见，没记住是哪个桥，稍等问一下。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/08/12512616779005004.gif"><img src="http://www.sunboyu.cn/upfiles/2009/08/12512616779005004.gif" alt="12512616779005004" title="12512616779005004" width="416" height="499" class="aligncenter size-full wp-image-967" /></a></p>
<p>到昌平的西关环岛，就得掉头往市里了，走 府学路 ，那边人多，可以问问，府学路往前走，差不多穿过城区，往左看水库路，就能上水库了，那边就没啥可说的了，中间的分叉其实就是正转跟倒转的分叉。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/08/未命名-2.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/08/未命名-2.jpg" alt="未命名-2" title="未命名-2" width="405" height="405" class="aligncenter size-full wp-image-968" /></a></p>
<p>路上车友应该不少，不认识路随时问，可以问问老乡。</p>
<p>回来的时候，环岛得绕大圈，否则得搬车子过去了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/26/%e5%8d%81%e4%b8%89%e9%99%b5%e6%b0%b4%e5%ba%93%e9%aa%91%e8%a1%8c%e8%b7%af%e7%ba%bf%e8%af%a6%e7%bb%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql5.1触发器小试</title>
		<link>http://www.sunboyu.cn/2009/08/25/mysql5-1%e8%a7%a6%e5%8f%91%e5%99%a8%e5%b0%8f%e8%af%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/25/mysql5-1%e8%a7%a6%e5%8f%91%e5%99%a8%e5%b0%8f%e8%af%95.shtml#comments</comments>
		<pubDate>Tue, 25 Aug 2009 14:51:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=961</guid>
		<description><![CDATA[我一直以为mysql5.0的触发器好似没那么强大，被一个搞mssql的老大给忽悠了，其实mysql触发器从5.0就变得很强大，当然包括5.1。
这里拿一个demo说事：
DROP TRIGGER IF EXISTS `ucenterhome`.`uchome_doing_test`;
DELIMITER //
CREATE TRIGGER `ucenterhome`.`uchome_doing_test` AFTER INSERT ON `ucenterhome`.`uchome_doing`
&#160;FOR EACH ROW BEGIN
&#160;&#160; &#160;INSERT INTO uchome_doing_1 SET doid= NEW.doid+3, uid= NEW.uid , username= NEW.username,`from`=NEW.`from`,dateline=NEW.dateline,message=NEW.message,ip=NEW.ip,replynum = NEW.replynum,mood=NEW.mood;&#160; &#160;
END
//
DELIMITER ;
每向uchome_doing表中插一条数据，就复制到uchome_dong_1表中一条。
有两个关键字：
OLD&#160; NEW
官方的解释：

The OLD and NEW keywords enable you to access columns in the rows affected by a trigger. (OLD and NEW are not case sensitive.) In [...]]]></description>
			<content:encoded><![CDATA[<p>我一直以为mysql5.0的触发器好似没那么强大，被一个搞mssql的老大给忽悠了，其实mysql触发器从5.0就变得很强大，当然包括5.1。</p>
<p>这里拿一个demo说事：</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">DROP TRIGGER IF EXISTS `ucenterhome`.`uchome_doing_test`;</li>
<li>DELIMITER //</li>
<li>CREATE TRIGGER `ucenterhome`.`uchome_doing_test` AFTER INSERT ON `ucenterhome`.`uchome_doing`</li>
<li>&nbsp;FOR EACH ROW BEGIN</li>
<li>&nbsp;&nbsp; &nbsp;INSERT INTO uchome_doing_1 SET doid= NEW.doid+3, uid= NEW.uid , username= NEW.username,`from`=NEW.`from`,dateline=NEW.dateline,message=NEW.message,ip=NEW.ip,replynum = NEW.replynum,mood=NEW.mood;&nbsp; &nbsp;</li>
<li>END</li>
<li>//</li>
<li>DELIMITER ;</li></ol></div>
<p>每向uchome_doing表中插一条数据，就复制到uchome_dong_1表中一条。</p>
<p>有两个关键字：</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">OLD&nbsp; NEW</li></ol></div>
<p>官方的解释：</p>
<blockquote><p>
The OLD and NEW keywords enable you to access columns in the rows affected by a trigger. (OLD and NEW are not case sensitive.) In an INSERT trigger, only NEW.col_name can be used; there is no old row. In a DELETE trigger, only OLD.col_name can be used; there is no new row. In an UPDATE trigger, you can use OLD.col_name to refer to the columns of a row before it is updated and NEW.col_name to refer to the columns of the row after it is updated.
</p></blockquote>
<p>还有两个关键字</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">BEFORE AFTER</li></ol></div>
<p>官方解释</p>
<blockquote><p>
The keyword BEFORE indicates the trigger action time. In this case, the trigger should activate before each row inserted into the table. The other allowable keyword here is AFTER.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/25/mysql5-1%e8%a7%a6%e5%8f%91%e5%99%a8%e5%b0%8f%e8%af%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>十三陵半日游</title>
		<link>http://www.sunboyu.cn/2009/08/24/%e5%8d%81%e4%b8%89%e9%99%b5%e5%8d%8a%e6%97%a5%e6%b8%b8.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/24/%e5%8d%81%e4%b8%89%e9%99%b5%e5%8d%8a%e6%97%a5%e6%b8%b8.shtml#comments</comments>
		<pubDate>Sun, 23 Aug 2009 23:43:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[单车生活]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=956</guid>
		<description><![CDATA[22日买上了新车，23日忍不住叫上同事一起出游。我们选择了一个很休闲的线路-十三陵。早晨9点出发，下午一点我到家。
图片如果看不到请点击这里查看原始相册  搜狐相册






]]></description>
			<content:encoded><![CDATA[<p>22日买上了新车，23日忍不住叫上同事一起出游。我们选择了一个很休闲的线路-十三陵。早晨9点出发，下午一点我到家。</p>
<p>图片如果看不到请点击这里查看原始相册  <a href="http://pp.sohu.com/photosetview-34317959-30508009.html" target="_blank">搜狐相册</a></p>
<p><img class="alignnone" src="http://1851.img.pp.sohu.com.cn/images/2009/8/23/15/2/123f3d72885g215.jpg" alt="" width="614" height="461" /></p>
<p><img class="alignnone" src="http://1861.img.pp.sohu.com.cn/images/2009/8/23/15/2/123f3d30f1dg214.jpg" alt="" width="614" height="461" /></p>
<p><img class="alignnone" src="http://1851.img.pp.sohu.com.cn/images/2009/8/23/15/2/123f3d70fa9g215.jpg" alt="" width="614" height="461" /></p>
<p><img class="alignnone" src="http://1851.img.pp.sohu.com.cn/images/2009/8/23/15/2/123f3d84628g213.jpg" alt="" width="614" height="461" /></p>
<p><img class="alignnone" src="http://1841.img.pp.sohu.com.cn/images/2009/8/23/15/2/123f3d6bcadg215.jpg" alt="" width="614" height="461" /></p>
<p><img class="alignnone" src="http://1841.img.pp.sohu.com.cn/images/2009/8/23/15/2/123f3d28600g214.jpg" alt="" width="614" height="461" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/24/%e5%8d%81%e4%b8%89%e9%99%b5%e5%8d%8a%e6%97%a5%e6%b8%b8.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>mysql数据抽象层-PDO</title>
		<link>http://www.sunboyu.cn/2009/08/20/mysql%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82-pdo.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/20/mysql%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82-pdo.shtml#comments</comments>
		<pubDate>Thu, 20 Aug 2009 08:02:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=953</guid>
		<description><![CDATA[好久不用PDO了，公司这边有的项目使用PDO，再熟悉一下，继续沿用之前的方法：
没用数据绑定和一些高级的功能，只是实现基础功能。
&#60; ?php
interface DateBaseConnect
{
	#数据库连接
	public function Connect( $host , $user , $pass , $datebase );
	#使用数据库
	public function selectDateBase( $datebase );
	#执行一个查询
	public function query( $sql );
	#取得一行
	public function fetch( $sql );
	#取得所有
	public function fetchAll( $sql );
	#取得影响行数
	public function affectedRow();
	#取得结果行数
	public function recordCount();
	#取得上次插入ID
	public function insertID();
	#释放资源
	public function close();
}
class sPDO implements DateBaseConnect
{
	#连接标识
	public $handle = false;
	#结果标识
	public $query;
	#查询次数
	public $exetime;
	#影响行数
	public $affectedRows;
	#statement
	public $statement;
	#数据库连接
	public function Connect( $host , $user , $pass , [...]]]></description>
			<content:encoded><![CDATA[<p>好久不用PDO了，公司这边有的项目使用PDO，再熟悉一下，继续沿用之前的方法：</p>
<p>没用数据绑定和一些高级的功能，只是实现基础功能。</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">&lt; ?php</li>
<li>interface DateBaseConnect</li>
<li>{</li>
<li>	#数据库连接</li>
<li>	public function Connect( $host , $user , $pass , $datebase );</li>
<li>	#使用数据库</li>
<li>	public function selectDateBase( $datebase );</li>
<li>	#执行一个查询</li>
<li>	public function query( $sql );</li>
<li>	#取得一行</li>
<li>	public function fetch( $sql );</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql );</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow();</li>
<li>	#取得结果行数</li>
<li>	public function recordCount();</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID();</li>
<li>	#释放资源</li>
<li>	public function close();</li>
<li>}</li>
<li>class sPDO implements DateBaseConnect</li>
<li>{</li>
<li>	#连接标识</li>
<li>	public $handle = false;</li>
<li>	#结果标识</li>
<li>	public $query;</li>
<li>	#查询次数</li>
<li>	public $exetime;</li>
<li>	#影响行数</li>
<li>	public $affectedRows;</li>
<li>	#statement</li>
<li>	public $statement;</li>
<li>	#数据库连接</li>
<li>	public function Connect( $host , $user , $pass , $datebase )</li>
<li>	{</li>
<li>		try</li>
<li>		{</li>
<li>			$this-&gt;handle = new PDO(&quot;mysql:dbname=&quot;.$datebase.&quot;;host=&quot;.$host, $user, $pass);</li>
<li>		}</li>
<li>		catch (PDOException $e)</li>
<li>		{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo 'Connection failed: ' . $e-&gt;getMessage();</li>
<li>		}</li>
<li>		$this-&gt;exetime = 0;</li>
<li>	}</li>
<li>	#选择数据库</li>
<li>	public function selectDateBase( $database )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; return true;</li>
<li>	}</li>
<li>	#执行一个查询</li>
<li>	public function query( $sql )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; $this-&gt;affectedRows = $this-&gt;handle-&gt;exec( $sql );</li>
<li>		$this-&gt;exetime++;</li>
<li>		return true;</li>
<li>	}</li>
<li>	#取得一行</li>
<li>	public function fetch( $sql )</li>
<li>	{</li>
<li>		$this-&gt;statement = $this-&gt;handle-&gt;query( $sql );</li>
<li>		return $this-&gt;statement-&gt;fetch(PDO::FETCH_ASSOC);</li>
<li>	}</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql )</li>
<li>	{</li>
<li>		$this-&gt;statement = $this-&gt;handle-&gt;query( $sql );</li>
<li>		return $this-&gt;statement-&gt;fetchAll(PDO::FETCH_ASSOC);</li>
<li>	}</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow()</li>
<li>	{</li>
<li>		return $this-&gt;affectedRows;</li>
<li>	}</li>
<li>	#取得结果行数</li>
<li>	public function recordCount()</li>
<li>	{</li>
<li>		return $this-&gt;statement-&gt;rowCount();</li>
<li>	}</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID()</li>
<li>	{</li>
<li>		$sql = sprintf(&quot;SELECT LAST_INSERT_ID() AS id&quot;);</li>
<li>		$pdostatement = $this-&gt;handle-&gt;query( $sql );</li>
<li>		$rs = $pdostatement-&gt;fetch();</li>
<li>		return $rs['id'];</li>
<li>	}</li>
<li>	#释放资源</li>
<li>	public function close()</li>
<li>	{</li>
<li>		unset($this-&gt;handle);</li>
<li>	}</li>
<li>	#析构函数</li>
<li>	function __destruct()</li>
<li>	{</li>
<li>		$this-&gt;close();</li>
<li>	}</li>
<li>}</li>
<li>#Demo</li>
<li>$db = new sPDO;</li>
<li>$db-&gt;Connect( 'localhost' , 'root' , '123456' , 'ucenterhome' );</li>
<li>$rs = $db-&gt;fetchAll( &quot;SELECT * FROM uchome_blogfield&quot; );</li>
<li>print_r( $rs );</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/20/mysql%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82-pdo.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>对UCenter Home的一点看法</title>
		<link>http://www.sunboyu.cn/2009/08/17/%e5%af%b9ucenter-home%e7%9a%84%e4%b8%80%e7%82%b9%e7%9c%8b%e6%b3%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/17/%e5%af%b9ucenter-home%e7%9a%84%e4%b8%80%e7%82%b9%e7%9c%8b%e6%b3%95.shtml#comments</comments>
		<pubDate>Mon, 17 Aug 2009 14:27:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=950</guid>
		<description><![CDATA[最近改了改UCenter Home，发现，这的确是个不错的产品，但不能算一个成熟的程序。
产品看法：
这个产品主要是服务一些个人站长和小型站点，功能模仿一些成熟的sns系统，模仿比较到位，而且功能上尽可能大的去完善，让管理员可以方便进行比较系统全面的管理。而从产品的设计体验上，也能适应中国大多数的用户。
所以，这个产品在国内算一套非常不错的sns建站系统。
编码方面：
要说代码，我相信阅读过代码的人一定很头疼，从discuz的bbs就这样。
代码只是面向过程，这个，在discuz方面，我估计是累积开发造成的，一个个版本升级，变化不能太大，如果变化真的太大，会失去一些开发者。另外，他自己升级也是个问题。
不过uch这个产品也开发成了这样。代码结构我倒挺喜欢，之前我写那个架子也是这样。优点：结构规范，适合多人协作。缺点，面向对象性，代码复用差。这个结构，我估计是公司某元老折腾的，然后有几个小弟进行模块开发。
为什么这么说，是有原因的，因为遍历整个代码，起码有两种以上的代码风格，而且人员之间沟通配合也造成了一些错误，虽然不是bug，但看得出来项目进行的仓促。不过这也是公司的一个战略措施，小戴同学总是及时放出产品来打压竞争对手。
再说负载，其实这个问题就不用说，从大量的垃圾sql语句就能看出，这个产品不能支持较大的负载。
再说最后一点，如果你想去优化改善，彻底改善，放弃吧。重写。
我看的只是uch2.0的预览版，估计正式版放出的时候，这些问题会有所改善。
]]></description>
			<content:encoded><![CDATA[<p>最近改了改UCenter Home，发现，这的确是个不错的产品，但不能算一个成熟的程序。</p>
<p>产品看法：</p>
<p>这个产品主要是服务一些个人站长和小型站点，功能模仿一些成熟的sns系统，模仿比较到位，而且功能上尽可能大的去完善，让管理员可以方便进行比较系统全面的管理。而从产品的设计体验上，也能适应中国大多数的用户。</p>
<p>所以，这个产品在国内算一套非常不错的sns建站系统。</p>
<p>编码方面：</p>
<p>要说代码，我相信阅读过代码的人一定很头疼，从discuz的bbs就这样。</p>
<p>代码只是面向过程，这个，在discuz方面，我估计是累积开发造成的，一个个版本升级，变化不能太大，如果变化真的太大，会失去一些开发者。另外，他自己升级也是个问题。</p>
<p>不过uch这个产品也开发成了这样。代码结构我倒挺喜欢，之前我写那个架子也是这样。优点：结构规范，适合多人协作。缺点，面向对象性，代码复用差。这个结构，我估计是公司某元老折腾的，然后有几个小弟进行模块开发。</p>
<p>为什么这么说，是有原因的，因为遍历整个代码，起码有两种以上的代码风格，而且人员之间沟通配合也造成了一些错误，虽然不是bug，但看得出来项目进行的仓促。不过这也是公司的一个战略措施，小戴同学总是及时放出产品来打压竞争对手。</p>
<p>再说负载，其实这个问题就不用说，从大量的垃圾sql语句就能看出，这个产品不能支持较大的负载。</p>
<p>再说最后一点，如果你想去优化改善，彻底改善，放弃吧。重写。</p>
<p>我看的只是uch2.0的预览版，估计正式版放出的时候，这些问题会有所改善。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/17/%e5%af%b9ucenter-home%e7%9a%84%e4%b8%80%e7%82%b9%e7%9c%8b%e6%b3%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google便签功能曾经崩溃过</title>
		<link>http://www.sunboyu.cn/2009/08/14/google%e4%be%bf%e7%ad%be%e5%8a%9f%e8%83%bd%e6%9b%be%e7%bb%8f%e5%b4%a9%e6%ba%83%e8%bf%87.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/14/google%e4%be%bf%e7%ad%be%e5%8a%9f%e8%83%bd%e6%9b%be%e7%bb%8f%e5%b4%a9%e6%ba%83%e8%bf%87.shtml#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:51:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=947</guid>
		<description><![CDATA[自从google取消了首页登录，我用google便签就很少了，不知道他们战略目的是什么。
今天突然想到里边一条信息存档，上去查看，居然数据被回滚了（我有版本记录）。
我琢磨着应该是google的服务出了一次大问题，为了掩人耳目，把相关服务给屏蔽了。
对于技术失误，还要抱着容忍的态度去看待。
]]></description>
			<content:encoded><![CDATA[<p>自从google取消了首页登录，我用google便签就很少了，不知道他们战略目的是什么。</p>
<p>今天突然想到里边一条信息存档，上去查看，居然数据被回滚了（我有版本记录）。</p>
<p>我琢磨着应该是google的服务出了一次大问题，为了掩人耳目，把相关服务给屏蔽了。</p>
<p>对于技术失误，还要抱着容忍的态度去看待。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/14/google%e4%be%bf%e7%ad%be%e5%8a%9f%e8%83%bd%e6%9b%be%e7%bb%8f%e5%b4%a9%e6%ba%83%e8%bf%87.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最近的总结</title>
		<link>http://www.sunboyu.cn/2009/08/13/%e6%9c%80%e8%bf%91%e7%9a%84%e6%80%bb%e7%bb%93.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/13/%e6%9c%80%e8%bf%91%e7%9a%84%e6%80%bb%e7%bb%93.shtml#comments</comments>
		<pubDate>Thu, 13 Aug 2009 14:04:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=945</guid>
		<description><![CDATA[1、相信团队的力量是无穷的，就好像组队打怪升级快。
2、不提倡个人英雄主义，一个人打boss一般的结果是over
3、分工合作，发挥长处。
4、集中精力做事情，稳下心来，事半功倍。
5、相信自己的实力，勇敢向前。
6、人都是善良的，世界多么美好。
7、同一个事情，同一个梦想。
8、大鱼大肉会长小肚子。
9、运动得坚持，人的耐性其实是表现在各个方面，坚持运动，还得坚持学习。
10、还有很多，因为数据库很贵，不多浪费。
11、做事想周全。
]]></description>
			<content:encoded><![CDATA[<p>1、相信团队的力量是无穷的，就好像组队打怪升级快。</p>
<p>2、不提倡个人英雄主义，一个人打boss一般的结果是over</p>
<p>3、分工合作，发挥长处。</p>
<p>4、集中精力做事情，稳下心来，事半功倍。</p>
<p>5、相信自己的实力，勇敢向前。</p>
<p>6、人都是善良的，世界多么美好。</p>
<p>7、同一个事情，同一个梦想。</p>
<p>8、大鱼大肉会长小肚子。</p>
<p>9、运动得坚持，人的耐性其实是表现在各个方面，坚持运动，还得坚持学习。</p>
<p>10、还有很多，因为数据库很贵，不多浪费。</p>
<p>11、做事想周全。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/13/%e6%9c%80%e8%bf%91%e7%9a%84%e6%80%bb%e7%bb%93.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>找回firefox的标签点击关闭功能</title>
		<link>http://www.sunboyu.cn/2009/08/09/%e6%89%be%e5%9b%9efirefox%e7%9a%84%e6%a0%87%e7%ad%be%e7%82%b9%e5%87%bb%e5%85%b3%e9%97%ad%e5%8a%9f%e8%83%bd.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/09/%e6%89%be%e5%9b%9efirefox%e7%9a%84%e6%a0%87%e7%ad%be%e7%82%b9%e5%87%bb%e5%85%b3%e9%97%ad%e5%8a%9f%e8%83%bd.shtml#comments</comments>
		<pubDate>Sun, 09 Aug 2009 07:16:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=943</guid>
		<description><![CDATA[最近安装了最新版firefox，发现一个很重要的功能没了，双击标签关闭的功能没了，寻找相关的配置也没有。
后发现有些机器的版本可以，有些不可以，详细比较后，发现原来是中国版的才有这个功能。
后安装中国版后此功能再现。
我一直认为这个功能很不错，遨游这类浏览器基本也是标配功能，而国际版的为什么就没有？
]]></description>
			<content:encoded><![CDATA[<p>最近安装了最新版firefox，发现一个很重要的功能没了，双击标签关闭的功能没了，寻找相关的配置也没有。</p>
<p>后发现有些机器的版本可以，有些不可以，详细比较后，发现原来是中国版的才有这个功能。</p>
<p>后安装中国版后此功能再现。</p>
<p>我一直认为这个功能很不错，遨游这类浏览器基本也是标配功能，而国际版的为什么就没有？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/09/%e6%89%be%e5%9b%9efirefox%e7%9a%84%e6%a0%87%e7%ad%be%e7%82%b9%e5%87%bb%e5%85%b3%e9%97%ad%e5%8a%9f%e8%83%bd.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>向所有我的主机用户说抱歉</title>
		<link>http://www.sunboyu.cn/2009/08/08/%e5%90%91%e6%89%80%e6%9c%89%e6%88%91%e7%9a%84%e4%b8%bb%e6%9c%ba%e7%94%a8%e6%88%b7%e8%af%b4%e6%8a%b1%e6%ad%89.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/08/%e5%90%91%e6%89%80%e6%9c%89%e6%88%91%e7%9a%84%e4%b8%bb%e6%9c%ba%e7%94%a8%e6%88%b7%e8%af%b4%e6%8a%b1%e6%ad%89.shtml#comments</comments>
		<pubDate>Sat, 08 Aug 2009 02:52:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=939</guid>
		<description><![CDATA[由于机房频繁掉电，我的服务器在跟IDC销售协商后办理了退款。此次事故是由于经济的原因，选择了一个质量比较差的机房而导致。虽然本人提供免费的空间，但没有保障带宽质量，我深感抱歉。
最近本人正在寻求新的IDC，同时也在关注一些合作者，希望能够免费为广大网民提供带宽。
此致
一个程序猿
]]></description>
			<content:encoded><![CDATA[<p>由于机房频繁掉电，我的服务器在跟IDC销售协商后办理了退款。此次事故是由于经济的原因，选择了一个质量比较差的机房而导致。虽然本人提供免费的空间，但没有保障带宽质量，我深感抱歉。</p>
<p>最近本人正在寻求新的IDC，同时也在关注一些合作者，希望能够免费为广大网民提供带宽。</p>
<p>此致</p>
<p>一个程序猿</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/08/%e5%90%91%e6%89%80%e6%9c%89%e6%88%91%e7%9a%84%e4%b8%bb%e6%9c%ba%e7%94%a8%e6%88%b7%e8%af%b4%e6%8a%b1%e6%ad%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>剑侠世界新手试玩</title>
		<link>http://www.sunboyu.cn/2009/08/08/%e5%89%91%e4%be%a0%e4%b8%96%e7%95%8c%e6%96%b0%e6%89%8b%e8%af%95%e7%8e%a9.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/08/%e5%89%91%e4%be%a0%e4%b8%96%e7%95%8c%e6%96%b0%e6%89%8b%e8%af%95%e7%8e%a9.shtml#comments</comments>
		<pubDate>Sat, 08 Aug 2009 01:54:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=937</guid>
		<description><![CDATA[剑侠世界是金山最近很火爆的游戏，昨天从公司局域网拷来，安装后，华丽的界面的确能吸引人跃跃欲试。
游戏，我感觉很多地方设计的都像剑侠情缘单机版-我是剑侠情缘的正版老玩家，所以很容易上手。刚开始上来并不像原来的游戏一样上来就打怪升级，而是去做一些任务，在做任务的同事，不断熟悉游戏操作，还可以升级，度过郁闷的新手期。
游戏很多细节充分为玩家考虑，比如寻人寻路，都是一键操作了，减轻了玩家操作复杂度，很照顾了我们这些懒人。
玩了几个小时，就升到十二级了，不过我的速度应该是满了。中间我去打怪升级了。其实前期打怪升级不如做任务升级快。
迷上这个游戏，并不是因为他是网络游戏，而是延续了我对剑仙情缘的感情，不过过两天也许切换到剑侠情缘网络版，我势做人民币玩家，但不知道游戏是否收费……
]]></description>
			<content:encoded><![CDATA[<p>剑侠世界是金山最近很火爆的游戏，昨天从公司局域网拷来，安装后，华丽的界面的确能吸引人跃跃欲试。</p>
<p>游戏，我感觉很多地方设计的都像剑侠情缘单机版-我是剑侠情缘的正版老玩家，所以很容易上手。刚开始上来并不像原来的游戏一样上来就打怪升级，而是去做一些任务，在做任务的同事，不断熟悉游戏操作，还可以升级，度过郁闷的新手期。</p>
<p>游戏很多细节充分为玩家考虑，比如寻人寻路，都是一键操作了，减轻了玩家操作复杂度，很照顾了我们这些懒人。</p>
<p>玩了几个小时，就升到十二级了，不过我的速度应该是满了。中间我去打怪升级了。其实前期打怪升级不如做任务升级快。</p>
<p>迷上这个游戏，并不是因为他是网络游戏，而是延续了我对剑仙情缘的感情，不过过两天也许切换到剑侠情缘网络版，我势做人民币玩家，但不知道游戏是否收费……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/08/%e5%89%91%e4%be%a0%e4%b8%96%e7%95%8c%e6%96%b0%e6%89%8b%e8%af%95%e7%8e%a9.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>金山一日</title>
		<link>http://www.sunboyu.cn/2009/08/06/%e9%87%91%e5%b1%b1%e4%b8%80%e6%97%a5.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/06/%e9%87%91%e5%b1%b1%e4%b8%80%e6%97%a5.shtml#comments</comments>
		<pubDate>Thu, 06 Aug 2009 15:23:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=933</guid>
		<description><![CDATA[虽然头很清楚的告诉我，不用写工作日志了，不过我还是希望把每天的事情写个记录。
今天是我第三次冒雨至金山，虽然只是小雨。我到金山，颇有水漫金山的戏剧色彩，三次面试，两次都是瓢泼大雨-可惜我还是来了。
等待、入职、领设备、熟悉同事，一切皆为一个拥有国际化水平的优秀公司。人多就是好，单一个部门的零碎笔记就够我看好几天的了。翻阅公共文档，了解公司制度，顺便看看一些技术文档，开发规范之类。(顺便介绍一下,碰见不少大家熟悉的牛人，包括s135的博主)
这是我第一次拥有全套的正版软件，很脸红，的确第一次。不过我还是被无情得BS了，我的机器初始化的时候，谁给我装了个正版的Office！！结果，打开一个word文档的时候，被同事与重深长得教育了-不要忘记，我们是金山的人，我们有WPS。
最近网站系统正在切换，赶上了加班，虽然给我一点简单的事情，但还是感觉团队力量的强大。无论什么事情都有人在背后支持你。
将近10点半才下班，这是我半年来第一次加班，很有感觉。临走，看见一个哥们抱着铺盖卷走进一间会议室……
明天他几点起床？
]]></description>
			<content:encoded><![CDATA[<p>虽然头很清楚的告诉我，不用写工作日志了，不过我还是希望把每天的事情写个记录。</p>
<p>今天是我第三次冒雨至金山，虽然只是小雨。我到金山，颇有水漫金山的戏剧色彩，三次面试，两次都是瓢泼大雨-可惜我还是来了。</p>
<p>等待、入职、领设备、熟悉同事，一切皆为一个拥有国际化水平的优秀公司。人多就是好，单一个部门的零碎笔记就够我看好几天的了。翻阅公共文档，了解公司制度，顺便看看一些技术文档，开发规范之类。(顺便介绍一下,碰见不少大家熟悉的牛人，包括s135的博主)</p>
<p>这是我第一次拥有全套的正版软件，很脸红，的确第一次。不过我还是被无情得BS了，我的机器初始化的时候，谁给我装了个正版的Office！！结果，打开一个word文档的时候，被同事与重深长得教育了-不要忘记，我们是金山的人，我们有WPS。</p>
<p>最近网站系统正在切换，赶上了加班，虽然给我一点简单的事情，但还是感觉团队力量的强大。无论什么事情都有人在背后支持你。</p>
<p>将近10点半才下班，这是我半年来第一次加班，很有感觉。临走，看见一个哥们抱着铺盖卷走进一间会议室……</p>
<p>明天他几点起床？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/06/%e9%87%91%e5%b1%b1%e4%b8%80%e6%97%a5.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>难得的一份安宁</title>
		<link>http://www.sunboyu.cn/2009/08/05/%e9%9a%be%e5%be%97%e7%9a%84%e4%b8%80%e4%bb%bd%e5%ae%89%e5%ae%81.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/05/%e9%9a%be%e5%be%97%e7%9a%84%e4%b8%80%e4%bb%bd%e5%ae%89%e5%ae%81.shtml#comments</comments>
		<pubDate>Wed, 05 Aug 2009 02:07:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=931</guid>
		<description><![CDATA[最近原单位离职了，这两天无所事事，推开了一切聚会，推了一切朋友邀请的帮忙，也推脱了一切可能的外快。
每天来到清华旁边的避风塘，一杯茶，一个笔记本，打发一天的时间。虽然感觉时间还是很快，但忙碌中终于有了一丝的清闲。
不用去想跟别人的扯皮，也暂时忘了原公司拖欠我的工资。一切彷佛都与我我关，我只是这个世界的一个过客。
想到明天又要去新公司报告，无比珍惜这来之不易的闲暇。
天很阴，就想当前的经济。我坐在一个靠窗户的位置，享受凉爽潮湿的风。
这种感觉，真的就像在家一样。 
]]></description>
			<content:encoded><![CDATA[<p>最近原单位离职了，这两天无所事事，推开了一切聚会，推了一切朋友邀请的帮忙，也推脱了一切可能的外快。</p>
<p>每天来到清华旁边的避风塘，一杯茶，一个笔记本，打发一天的时间。虽然感觉时间还是很快，但忙碌中终于有了一丝的清闲。</p>
<p>不用去想跟别人的扯皮，也暂时忘了原公司拖欠我的工资。一切彷佛都与我我关，我只是这个世界的一个过客。</p>
<p>想到明天又要去新公司报告，无比珍惜这来之不易的闲暇。</p>
<p>天很阴，就想当前的经济。我坐在一个靠窗户的位置，享受凉爽潮湿的风。</p>
<p>这种感觉，真的就像在家一样。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/05/%e9%9a%be%e5%be%97%e7%9a%84%e4%b8%80%e4%bb%bd%e5%ae%89%e5%ae%81.shtml/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Discuz一些乱码错误的总结</title>
		<link>http://www.sunboyu.cn/2009/08/03/discuz%e4%b8%80%e4%ba%9b%e4%b9%b1%e7%a0%81%e9%94%99%e8%af%af%e7%9a%84%e6%80%bb%e7%bb%93.shtml</link>
		<comments>http://www.sunboyu.cn/2009/08/03/discuz%e4%b8%80%e4%ba%9b%e4%b9%b1%e7%a0%81%e9%94%99%e8%af%af%e7%9a%84%e6%80%bb%e7%bb%93.shtml#comments</comments>
		<pubDate>Mon, 03 Aug 2009 14:19:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/2009/08/03/discuz%e4%b8%80%e4%ba%9b%e4%b9%b1%e7%a0%81%e9%94%99%e8%af%af%e7%9a%84%e6%80%bb%e7%bb%93.shtml</guid>
		<description><![CDATA[最近用Discuz6.0，在用到分类信息功能的时候，自建模板总是出现错误，仔细跟踪，发现是个别模板编码错误。我用的UTF-8版本，有不少文件里用了中文字符，而且是gbk编码，造成了这种错误。
我google此类信息，有不少问题都出现在了编码上，建议网友在使用的时候，发现编码错误，仔细跟踪一下，找出模板。大部分的问题基本能以此方式解决。
]]></description>
			<content:encoded><![CDATA[<p>最近用Discuz6.0，在用到分类信息功能的时候，自建模板总是出现错误，仔细跟踪，发现是个别模板编码错误。我用的UTF-8版本，有不少文件里用了中文字符，而且是gbk编码，造成了这种错误。</p>
<p>我google此类信息，有不少问题都出现在了编码上，建议网友在使用的时候，发现编码错误，仔细跟踪一下，找出模板。大部分的问题基本能以此方式解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/08/03/discuz%e4%b8%80%e4%ba%9b%e4%b9%b1%e7%a0%81%e9%94%99%e8%af%af%e7%9a%84%e6%80%bb%e7%bb%93.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个备份mysql的脚本，很简单</title>
		<link>http://www.sunboyu.cn/2009/07/29/%e4%b8%80%e4%b8%aa%e5%a4%87%e4%bb%bdmysql%e7%9a%84%e8%84%9a%e6%9c%ac%ef%bc%8c%e5%be%88%e7%ae%80%e5%8d%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/29/%e4%b8%80%e4%b8%aa%e5%a4%87%e4%bb%bdmysql%e7%9a%84%e8%84%9a%e6%9c%ac%ef%bc%8c%e5%be%88%e7%ae%80%e5%8d%95.shtml#comments</comments>
		<pubDate>Wed, 29 Jul 2009 13:43:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[备份]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=927</guid>
		<description><![CDATA[帮朋友维护服务器的时候，习惯性得检查各项服务和维护，偶然间发现了这个脚本，冒着被BS的风险分享给大家，希望大家捧个钱场，施舍给老衲几万块钱买套房。
@echo off
C:
CD &#34;C:\Program Files\WinRAR&#34;
&#160;
net stop Mysql
winrar.exe a -ag&#34;-[YYYY-MM-DD-HH-MM-SS]&#34; -k -r -s -ibck -inul &#34;D:\MYSQL备份生成的文件.rar&#34; &#34;E:\bak\data\*.*&#34;
net start Mysql
]]></description>
			<content:encoded><![CDATA[<p>帮朋友维护服务器的时候，习惯性得检查各项服务和维护，偶然间发现了这个脚本，冒着被BS的风险分享给大家，希望大家捧个钱场，施舍给老衲几万块钱买套房。</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">@echo off</li>
<li>C:</li>
<li>CD &quot;C:\Program Files\WinRAR&quot;</li>
<li>&nbsp;</li>
<li>net stop Mysql</li>
<li>winrar.exe a -ag&quot;-[YYYY-MM-DD-HH-MM-SS]&quot; -k -r -s -ibck -inul &quot;D:\MYSQL备份生成的文件.rar&quot; &quot;E:\bak\data\*.*&quot;</li>
<li>net start Mysql</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/29/%e4%b8%80%e4%b8%aa%e5%a4%87%e4%bb%bdmysql%e7%9a%84%e8%84%9a%e6%9c%ac%ef%bc%8c%e5%be%88%e7%ae%80%e5%8d%95.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>翻车了</title>
		<link>http://www.sunboyu.cn/2009/07/29/%e7%bf%bb%e8%bd%a6%e4%ba%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/29/%e7%bf%bb%e8%bd%a6%e4%ba%86.shtml#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:10:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[翻车]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=924</guid>
		<description><![CDATA[中午酷热难耐，下楼调车+玩车。
好久没调车，车闸不灵了，结果，拿着我18块钱的工具组瞎调一气，车闸异常灵敏。
结果，在一个甩尾动作的时候，速度骤降，车子前栽，车从我头上飞过，而我居然只擦破点外皮。
起身，对着旁边乘凉的大叔大妈们微笑……一帮人张着大嘴。
哥玩的不是单车，是寂寞！
]]></description>
			<content:encoded><![CDATA[<p>中午酷热难耐，下楼调车+玩车。</p>
<p>好久没调车，车闸不灵了，结果，拿着我18块钱的工具组瞎调一气，车闸异常灵敏。</p>
<p>结果，在一个甩尾动作的时候，速度骤降，车子前栽，车从我头上飞过，而我居然只擦破点外皮。</p>
<p>起身，对着旁边乘凉的大叔大妈们微笑……一帮人张着大嘴。</p>
<p>哥玩的不是单车，是寂寞！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/29/%e7%bf%bb%e8%bd%a6%e4%ba%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何选择一个称心的IDC</title>
		<link>http://www.sunboyu.cn/2009/07/28/%e5%a6%82%e4%bd%95%e9%80%89%e6%8b%a9%e4%b8%80%e4%b8%aa%e7%a7%b0%e5%bf%83%e7%9a%84idc.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/28/%e5%a6%82%e4%bd%95%e9%80%89%e6%8b%a9%e4%b8%80%e4%b8%aa%e7%a7%b0%e5%bf%83%e7%9a%84idc.shtml#comments</comments>
		<pubDate>Tue, 28 Jul 2009 03:07:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[IDC]]></category>
		<category><![CDATA[选购]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=914</guid>
		<description><![CDATA[最近跟我那个成都的某个IDC机房扯皮，扯得我是下三滥的手段都想用了，不过看在还混在这个圈子的面子上，没跟他们使损招。我最看不惯的就是那些销售，以为技术人员都是木头，都是榆木疙瘩。凭借一张三寸不烂之舌就想敷衍了事。套用一句流行语：咱民工玩的是风度，不是阴沟。
其实自打毕业干IT这行，从买51.net的虚拟主机到现在，接触的IDC是不下几十家，出入过的机房也有十几个之多，当然碰到的一些扯皮的事情当然就更多了。写这篇文章，就是把一些细节纰漏出来。不针对某个无良IDC，当然也不是给哪个IDC做广告，都是自己经验之谈。也许有理解和认识的错误，欢迎朋友和同行们指正。
因为虚拟主机已经不常用，我说的主要是服务器托管租用方面，我的经历主要是北京范围内。
首先是如何找一个优秀的IDC。IDC分一线二线三线，就好像买车分几个系列一样。如果你想拥有军用悍马的性能，那十个奥拓的价格也不行。如果你真买了10万以下的车，那半路抛锚或者高速上被车皮挤死也别太抱怨。一线IDC主要集中了国内顶尖的网络公司：腾讯，搜狐，新浪，盛大，完美之类的大客户。他们的价格绝对让你乍舌，但质量也能有你想象那么高。你上这几家的网站，有几次断网，有几次感觉速度慢了。而二线的IDC就有大多数也许是发展中的网站，比较拮据的，或者一些知名客户但需要价格比比较高的流量的。三线的IDC，就难说了，小的不能再小的公司，一些个人网站，垃圾站，或者，就是皮包公司。
所以，寻找IDC，先问问销售，贵机房有什么知名的大客户，给个ip或者地址看看（当然，要说是搜狐的某个分站，不用他说，你自己就找到了）。这时，你可以根据销售提供的客户的质量来评价这个机房的档次。
当你选定一个机房后，测试是必须的——三天最少。当你的机器上架后，首先要做的，就是测试带宽，探测网络结构，测试稳定性，甚至网管反应（有点破坏性测试）。测试带宽，要测试上行和下行的带宽，是否能跑足。如果没有从三层以下限速，你尝试持续高带宽，网管有没有反应。（不要期望你能跑那么大的带宽，你跑的大，别的客户也能跑那么大，抢来抢去，自己正常业务也就受损了）。探测下你ip段的网络拓扑，是否划分vlan，你的vlan里有没有windows机器（防止arp，我一般用linux）。最后关机，你看网管是否有反应。我曾经用过一线IDC的带宽，但是网关配置出错，造成流量为0，结果我们刚出机房，网管就打来了电话。这样的服务，你能不感动么。
合同：不管什么业务，合同是要签的。这方面我很无奈，我可以直言不讳得说，做这行的都是流氓，因为合同上基本都是霸王条款。非可控的意外，他们基本都不赔偿。可以说，基本出现的故障，都是他们不可控的：大网出现意外，比如光纤让铲车铲了，或者市电被掐了。当然他们不可控。不过一定要记住，机房设计是必须把意外情况设计进去的，UPS、柴油发电机组是机房必须的设备，这也是你服务的一部分，如果这些都没有，那机房的价值就很低（带宽，电力只是成本的一部分，一部分成本用在了对于意外情况的冗余上）。所以，最好能让他们补充：何种电力冗余，何种网络冗余，意外故障如何赔偿。
实地勘察：光有合同不行，最近我碰到的事情很生气。机房电力出了问题（他们居然走普通市电而没有备用电力），UPS是有，没接到你机器上。结果断电，造成我mysql故障而无法恢复，我正在跟他们交涉。记得问问现场网管的情况，说两个比较常见的问题咨询一下。另外问问他们的收入情况。别小看这些细节：我的linux系统，让网管给关系，网管居然说不会linux。汗得我差点从自行车上载下来。去机房，多看看设备：电力，空调，防火，还有就是机房是否整齐，管理是否到位。看看机房后边的线是否都清晰（曾经在丰台一个机房，一下子就把邻居的电源拔了……）。
好的机房，不仅是硬件资源好，软件也不可缺的。当然软件不是指安装的软件，而是机房的配套设施。去的时候，网管都会自带工具软件。测试的时候建议让机房去做，比如，借一个移动光驱，借一张光盘，下载一个iso去刻盘，打一颗网线，让现场的技术给帮忙之类的事情。别怕机房的人BS你，这只是去感觉一下你应该有的服务。
补充1：上文所说测试上下行带宽问题，事出有因：大部分的专业idc，上下行给的都是一致的，但个别的idc，把下行带宽克扣出来，去给一些小区或者单位做接入，这样达到了更高的利润，但这样给一些下行需求高的客户带来了问题。所以我提到了这点。（学过通讯技术的应该都知道带宽复用这么一个技术，大家可以google一下。）
说了半天，这些经验的确都是自己交学费的成果，希望把这些细节分享给大家，欢迎大家交流，可以加我的qq  176300676  或者msn sunboyu@gmail.com
当然也可以加入lamp大家庭  msn用户加  lamper@live.cn 为好友
本文为作者原创，转载须注明出处。  http://www.sunboyu.cn/2009/07/28/%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E4%B8%80%E4%B8%AA%E7%A7%B0%E5%BF%83%E7%9A%84idc.shtml
]]></description>
			<content:encoded><![CDATA[<p>最近跟我那个成都的某个IDC机房扯皮，扯得我是下三滥的手段都想用了，不过看在还混在这个圈子的面子上，没跟他们使损招。我最看不惯的就是那些销售，以为技术人员都是木头，都是榆木疙瘩。凭借一张三寸不烂之舌就想敷衍了事。套用一句流行语：咱民工玩的是风度，不是阴沟。</p>
<p>其实自打毕业干IT这行，从买51.net的虚拟主机到现在，接触的IDC是不下几十家，出入过的机房也有十几个之多，当然碰到的一些扯皮的事情当然就更多了。写这篇文章，就是把一些细节纰漏出来。不针对某个无良IDC，当然也不是给哪个IDC做广告，都是自己经验之谈。也许有理解和认识的错误，欢迎朋友和同行们指正。</p>
<p>因为虚拟主机已经不常用，我说的主要是服务器托管租用方面，我的经历主要是北京范围内。</p>
<p>首先是如何找一个优秀的IDC。IDC分一线二线三线，就好像买车分几个系列一样。如果你想拥有军用悍马的性能，那十个奥拓的价格也不行。如果你真买了10万以下的车，那半路抛锚或者高速上被车皮挤死也别太抱怨。一线IDC主要集中了国内顶尖的网络公司：腾讯，搜狐，新浪，盛大，完美之类的大客户。他们的价格绝对让你乍舌，但质量也能有你想象那么高。你上这几家的网站，有几次断网，有几次感觉速度慢了。而二线的IDC就有大多数也许是发展中的网站，比较拮据的，或者一些知名客户但需要价格比比较高的流量的。三线的IDC，就难说了，小的不能再小的公司，一些个人网站，垃圾站，或者，就是皮包公司。</p>
<p>所以，寻找IDC，先问问销售，贵机房有什么知名的大客户，给个ip或者地址看看（当然，要说是搜狐的某个分站，不用他说，你自己就找到了）。这时，你可以根据销售提供的客户的质量来评价这个机房的档次。</p>
<p>当你选定一个机房后，测试是必须的——三天最少。当你的机器上架后，首先要做的，就是测试带宽，探测网络结构，测试稳定性，甚至网管反应（有点破坏性测试）。测试带宽，要测试上行和下行的带宽，是否能跑足。如果没有从三层以下限速，你尝试持续高带宽，网管有没有反应。（不要期望你能跑那么大的带宽，你跑的大，别的客户也能跑那么大，抢来抢去，自己正常业务也就受损了）。探测下你ip段的网络拓扑，是否划分vlan，你的vlan里有没有windows机器（防止arp，我一般用linux）。最后关机，你看网管是否有反应。我曾经用过一线IDC的带宽，但是网关配置出错，造成流量为0，结果我们刚出机房，网管就打来了电话。这样的服务，你能不感动么。</p>
<p>合同：不管什么业务，合同是要签的。这方面我很无奈，我可以直言不讳得说，做这行的都是流氓，因为合同上基本都是霸王条款。非可控的意外，他们基本都不赔偿。可以说，基本出现的故障，都是他们不可控的：大网出现意外，比如光纤让铲车铲了，或者市电被掐了。当然他们不可控。不过一定要记住，机房设计是必须把意外情况设计进去的，UPS、柴油发电机组是机房必须的设备，这也是你服务的一部分，如果这些都没有，那机房的价值就很低（带宽，电力只是成本的一部分，一部分成本用在了对于意外情况的冗余上）。所以，最好能让他们补充：何种电力冗余，何种网络冗余，意外故障如何赔偿。</p>
<p>实地勘察：光有合同不行，最近我碰到的事情很生气。机房电力出了问题（他们居然走普通市电而没有备用电力），UPS是有，没接到你机器上。结果断电，造成我mysql故障而无法恢复，我正在跟他们交涉。记得问问现场网管的情况，说两个比较常见的问题咨询一下。另外问问他们的收入情况。别小看这些细节：我的linux系统，让网管给关系，网管居然说不会linux。汗得我差点从自行车上载下来。去机房，多看看设备：电力，空调，防火，还有就是机房是否整齐，管理是否到位。看看机房后边的线是否都清晰（曾经在丰台一个机房，一下子就把邻居的电源拔了……）。</p>
<p>好的机房，不仅是硬件资源好，软件也不可缺的。当然软件不是指安装的软件，而是机房的配套设施。去的时候，网管都会自带工具软件。测试的时候建议让机房去做，比如，借一个移动光驱，借一张光盘，下载一个iso去刻盘，打一颗网线，让现场的技术给帮忙之类的事情。别怕机房的人BS你，这只是去感觉一下你应该有的服务。</p>
<p>补充1：上文所说测试上下行带宽问题，事出有因：大部分的专业idc，上下行给的都是一致的，但个别的idc，把下行带宽克扣出来，去给一些小区或者单位做接入，这样达到了更高的利润，但这样给一些下行需求高的客户带来了问题。所以我提到了这点。（学过通讯技术的应该都知道带宽复用这么一个技术，大家可以google一下。）</p>
<p>说了半天，这些经验的确都是自己交学费的成果，希望把这些细节分享给大家，欢迎大家交流，可以加我的qq  176300676  或者msn sunboyu@gmail.com</p>
<p>当然也可以加入lamp大家庭  msn用户加  lamper@live.cn 为好友</p>
<p>本文为作者原创，转载须注明出处。  http://www.sunboyu.cn/2009/07/28/%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E4%B8%80%E4%B8%AA%E7%A7%B0%E5%BF%83%E7%9A%84idc.shtml</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/28/%e5%a6%82%e4%bd%95%e9%80%89%e6%8b%a9%e4%b8%80%e4%b8%aa%e7%a7%b0%e5%bf%83%e7%9a%84idc.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>smarty分页程序，模板小改进</title>
		<link>http://www.sunboyu.cn/2009/07/27/smarty%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8f%ef%bc%8c%e6%a8%a1%e6%9d%bf%e5%b0%8f%e6%94%b9%e8%bf%9b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/27/smarty%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8f%ef%bc%8c%e6%a8%a1%e6%9d%bf%e5%b0%8f%e6%94%b9%e8%bf%9b.shtml#comments</comments>
		<pubDate>Mon, 27 Jul 2009 07:11:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=899</guid>
		<description><![CDATA[增加了：跳转到第几页的功能
模板部分
&#60;div id=&#34;page&#34;&#62;
&#60;table&#62;
&#160;&#160; &#160;&#60;tr&#62;
	&#160; &#160; &#60;td&#62;
		共{{$page.count}}条数据 每页{{$page.pagesize}}条&#160; 共{{$page.pagecount}}页 当前第{{$page.page}}页
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#60;!-- 新加的跳转功能&#160; start --&#62;
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;跳转到第 
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#60;select onchange=&#34;window.location.href='{{$page.baseurl}}&#38;page='+this.options[this.selectedIndex].value&#34;&#62;
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;{{section name=pagejump loop=4 start=0 step=1 max=4}}
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#60;option value=&#34;{{$smarty.section.pagejump.index+1}}&#34;&#62;{{$smarty.section.pagejump.index+1}}&#60;/option&#62;
&#160;&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>增加了：跳转到第几页的功能</p>
<p>模板部分</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">&lt;div id=&quot;page&quot;&gt;</li>
<li>&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		共{{$page.count}}条数据 每页{{$page.pagesize}}条&nbsp; 共{{$page.pagecount}}页 当前第{{$page.page}}页</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;!-- 新加的跳转功能&nbsp; start --&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;跳转到第 </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;select onchange=&quot;window.location.href='{{$page.baseurl}}&amp;page='+this.options[this.selectedIndex].value&quot;&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{{section name=pagejump loop=4 start=0 step=1 max=4}}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;option value=&quot;{{$smarty.section.pagejump.index+1}}&quot;&gt;{{$smarty.section.pagejump.index+1}}&lt;/option&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{{/section}}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/select&gt; 页</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;!-- 新加的跳转功能&nbsp; start --&gt;</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.pagecount&gt;1}}</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;首页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		首页</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;上一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		上一页</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if ($vols.page &gt; 0 ) &amp;&amp; ($vols.page &lt; = $page.pagecount) }}</li>
<li>				{{if $vols.link eq 1}}</li>
<li>				&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]</li>
<li>				{{else}}</li>
<li>				[{{$vols.page}}]</li>
<li>				{{/if}}</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.page+1}}&quot;&gt;下一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		下一页</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.pagecount}}&quot;&gt;尾页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		尾页</li>
<li>		{{/if}}</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/div&gt;</li></ol></div>
<p>其实我在做的时候又出现个问题，如果是url重写了，如何来做这个baseurl变量。问题解决方法是，把url当做模板，比如/blog/index/%d</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/27/smarty%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8f%ef%bc%8c%e6%a8%a1%e6%9d%bf%e5%b0%8f%e6%94%b9%e8%bf%9b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用成语的文字验证码</title>
		<link>http://www.sunboyu.cn/2009/07/24/%e4%bd%bf%e7%94%a8%e6%88%90%e8%af%ad%e7%9a%84%e6%96%87%e5%ad%97%e9%aa%8c%e8%af%81%e7%a0%81.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/24/%e4%bd%bf%e7%94%a8%e6%88%90%e8%af%ad%e7%9a%84%e6%96%87%e5%ad%97%e9%aa%8c%e8%af%81%e7%a0%81.shtml#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:48:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[成语]]></category>
		<category><![CDATA[文字验证码]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=897</guid>
		<description><![CDATA[上次写的nb验证码程序，遭到了大部分人的唾弃，因为我使用了中国汉字全集，而大部分中国人对汉字了解还只能占其一半，也就是四个汉字中经常出现生僻字，造成无法使用。
这次使用成语作为汉字验证码（其实已经发现其他网站再用），则中文用户识别的几率就大得多。
demo:
程序下载:点击下载
]]></description>
			<content:encoded><![CDATA[<p>上次写的nb验证码程序，遭到了大部分人的唾弃，因为我使用了中国汉字全集，而大部分中国人对汉字了解还只能占其一半，也就是四个汉字中经常出现生僻字，造成无法使用。</p>
<p>这次使用成语作为汉字验证码（其实已经发现其他网站再用），则中文用户识别的几率就大得多。</p>
<p>demo:<img class="alignnone" src="http://www.sunboyu.cn/php/wordcode.php" alt="" width="67" height="18" /></p>
<p>程序下载:<a href="/php/nbcodev2.rar">点击下载</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/24/%e4%bd%bf%e7%94%a8%e6%88%90%e8%af%ad%e7%9a%84%e6%96%87%e5%ad%97%e9%aa%8c%e8%af%81%e7%a0%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>密码保护：不冷静的思考——我要退出了</title>
		<link>http://www.sunboyu.cn/2009/07/24/%e4%b8%8d%e5%86%b7%e9%9d%99%e7%9a%84%e6%80%9d%e8%80%83%e2%80%94%e2%80%94%e6%88%91%e8%a6%81%e9%80%80%e5%87%ba%e4%ba%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/24/%e4%b8%8d%e5%86%b7%e9%9d%99%e7%9a%84%e6%80%9d%e8%80%83%e2%80%94%e2%80%94%e6%88%91%e8%a6%81%e9%80%80%e5%87%ba%e4%ba%86.shtml#comments</comments>
		<pubDate>Fri, 24 Jul 2009 05:58:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[NP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=894</guid>
		<description><![CDATA[无法提供任何摘要。这是一篇受保护的文章。]]></description>
			<content:encoded><![CDATA[<form action="http://www.sunboyu.cn/wp-pass.php" method="post">
<p>这是一篇受密码保护的文章。您需要提供访问密码：</p>
<p><label for="pwbox-894">密码：<br />
<input name="post_password" id="pwbox-894" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="提交" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/24/%e4%b8%8d%e5%86%b7%e9%9d%99%e7%9a%84%e6%80%9d%e8%80%83%e2%80%94%e2%80%94%e6%88%91%e8%a6%81%e9%80%80%e5%87%ba%e4%ba%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache自动生成目录文件列表配置</title>
		<link>http://www.sunboyu.cn/2009/07/22/apache%e8%87%aa%e5%8a%a8%e7%94%9f%e6%88%90%e7%9b%ae%e5%bd%95%e6%96%87%e4%bb%b6%e5%88%97%e8%a1%a8%e9%85%8d%e7%bd%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/22/apache%e8%87%aa%e5%8a%a8%e7%94%9f%e6%88%90%e7%9b%ae%e5%bd%95%e6%96%87%e4%bb%b6%e5%88%97%e8%a1%a8%e9%85%8d%e7%bd%ae.shtml#comments</comments>
		<pubDate>Wed, 22 Jul 2009 11:13:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[apache列目录]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=880</guid>
		<description><![CDATA[由于种种原因，服务器给卖掉了，因此，我做的源码目录也就没了。这里把该目录的配置属性介绍一下：
&#60;directory /home/sunboyu/www_source.sunboyu.cn&#62;
&#160;&#160; &#160; &#160; &#160;MaxConnPerIP 1
&#160;&#160; &#160; &#160; &#160;ReadmeName foot.html&#160; &#160; &#160; &#160; #页面的头
&#160;&#160; &#160; &#160; &#160;HeaderName top.html&#160; &#160; &#160; &#160; &#160; #页面的脚
&#160;&#160; &#160; &#160; &#160;IndexIgnore top.html foot.html&#160; &#160; #列目录的时候，忽略这些文件
&#160;&#160; &#160; &#160; &#160;ServerSignature Off&#160; &#160; &#160; &#160;#关闭服务器标志
&#160;&#160; &#160; &#160; &#160;IndexOptions FancyIndexing VersionSort FoldersFirst SuppressLastModified NameWidth=* Charset=UTF-8
&#160;&#160; &#160; &#160; &#160;Options FollowSymLinks
&#160;&#160; &#160; &#160; &#160;Options +Indexes
&#160;&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>由于种种原因，服务器给卖掉了，因此，我做的源码目录也就没了。这里把该目录的配置属性介绍一下：</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">&lt;directory /home/sunboyu/www_source.sunboyu.cn&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;MaxConnPerIP 1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ReadmeName foot.html&nbsp; &nbsp; &nbsp; &nbsp; #页面的头</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;HeaderName top.html&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #页面的脚</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IndexIgnore top.html foot.html&nbsp; &nbsp; #列目录的时候，忽略这些文件</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ServerSignature Off&nbsp; &nbsp; &nbsp; &nbsp;#关闭服务器标志</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IndexOptions FancyIndexing VersionSort FoldersFirst SuppressLastModified NameWidth=* Charset=UTF-8</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Options FollowSymLinks</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Options +Indexes</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;AllowOverride all</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Order deny,allow</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Allow from all</li>
<li>&nbsp;&lt;/directory&gt;</li></ol></div>
<p>FancyIndexing 打开列表功能</p>
<p>VersionSort 同一文件不同版本分类列出</p>
<p>FoldersFirst 文件夹优先</p>
<p>SuppressLastModified 禁止列出最后修改时间</p>
<p>NameWidth=* 文件名长度 *当然是全部显示</p>
<p>Charset=UTF-8 页面输出编码</p>
<p>AddIcon /other/icons/exe.gif .bin .exe  给exe bin扩展名添加exe.gif图标</p>
<p>ScanHTMLTitles 如果有html文件，则度html的title为描述</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/22/apache%e8%87%aa%e5%8a%a8%e7%94%9f%e6%88%90%e7%9b%ae%e5%bd%95%e6%96%87%e4%bb%b6%e5%88%97%e8%a1%a8%e9%85%8d%e7%bd%ae.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>图片动态缩放PHP与JS算法</title>
		<link>http://www.sunboyu.cn/2009/07/20/%e5%9b%be%e7%89%87%e5%8a%a8%e6%80%81%e7%bc%a9%e6%94%bephp%e4%b8%8ejs%e7%ae%97%e6%b3%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/20/%e5%9b%be%e7%89%87%e5%8a%a8%e6%80%81%e7%bc%a9%e6%94%bephp%e4%b8%8ejs%e7%ae%97%e6%b3%95.shtml#comments</comments>
		<pubDate>Mon, 20 Jul 2009 00:19:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[GD]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[图片缩放]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=875</guid>
		<description><![CDATA[这个算法写好多次了，虽然简单，但每次都得想一次，这里做个备份。
因为GD函数进行缩放，必须有宽和高，而在浏览器中，会自动按照比率调整宽高，所以两个函数稍有区别。
#PHP版
# $s_width&#160; 原图宽
# $s_height 原图高
# $t_width&#160; 目标文件最大宽
# $t_height 目标文件最大高
function ReSizePic( $s_width , $s_height , $t_width , $t_height)
{
	if( $s_width / $s_height &#62; $t_width / $t_height &#38;&#38; $s_width &#62; $t_width)
	{
		$t_height = $s_height * $t_width / $s_width;
		$t_width = $t_width;
	}
	else if( $s_width / $s_height &#62; $t_width / $t_height &#38;&#38; $s_width &#60; = $t_width)
	{
		$t_height = $s_height;
		$t_width&#160; = $s_width;
	}
	else if( $s_width [...]]]></description>
			<content:encoded><![CDATA[<p>这个算法写好多次了，虽然简单，但每次都得想一次，这里做个备份。</p>
<p>因为GD函数进行缩放，必须有宽和高，而在浏览器中，会自动按照比率调整宽高，所以两个函数稍有区别。</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">#PHP版</li>
<li># $s_width&nbsp; 原图宽</li>
<li># $s_height 原图高</li>
<li># $t_width&nbsp; 目标文件最大宽</li>
<li># $t_height 目标文件最大高</li>
<li>function ReSizePic( $s_width , $s_height , $t_width , $t_height)</li>
<li>{</li>
<li>	if( $s_width / $s_height &gt; $t_width / $t_height &amp;&amp; $s_width &gt; $t_width)</li>
<li>	{</li>
<li>		$t_height = $s_height * $t_width / $s_width;</li>
<li>		$t_width = $t_width;</li>
<li>	}</li>
<li>	else if( $s_width / $s_height &gt; $t_width / $t_height &amp;&amp; $s_width &lt; = $t_width)</li>
<li>	{</li>
<li>		$t_height = $s_height;</li>
<li>		$t_width&nbsp; = $s_width;</li>
<li>	}</li>
<li>	else if( $s_width / $s_height &lt; $t_width / $t_height &amp;&amp; $s_height &gt; $t_height)</li>
<li>	{</li>
<li>		$t_width = $s_width*$t_height/$s_height;</li>
<li>		$t_height = $t_height;</li>
<li>	}</li>
<li>	else if( $s_width / $s_height &lt; $t_width / $t_height &amp;&amp; $s_height &lt;= $t_height)</li>
<li>	{</li>
<li>		$t_height = $s_height;</li>
<li>		$t_width&nbsp; = $s_width;</li>
<li>	}</li>
<li>	return array( &quot;width&quot; =&gt; $t_width , &quot;height&quot; =&gt; $t_height );</li>
<li>}</li>
<li>#JS版</li>
<li># obj 图片对象</li>
<li># maxWidth 显示最大宽</li>
<li># maxHeight 显示最大高</li>
<li>function ReSizePic( obj , maxWidth , maxHeight )</li>
<li>{</li>
<li>	if( ( obj.width/obj.height &gt;= maxWidth/maxHeight ) &amp;&amp; obj.width &gt; maxWidth )</li>
<li>	{</li>
<li>		obj.width = maxWidth;</li>
<li>	}</li>
<li>	else if( ( obj.width/obj.height &lt; maxWidth/maxHeight ) &amp;&amp; obj.height &gt; maxHeight )</li>
<li>	{</li>
<li>		obj.height = maxHeight;</li>
<li>	}</li>
<li>}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/20/%e5%9b%be%e7%89%87%e5%8a%a8%e6%80%81%e7%bc%a9%e6%94%bephp%e4%b8%8ejs%e7%ae%97%e6%b3%95.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>平民化的黑客</title>
		<link>http://www.sunboyu.cn/2009/07/19/%e5%b9%b3%e6%b0%91%e5%8c%96%e7%9a%84%e9%bb%91%e5%ae%a2.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/19/%e5%b9%b3%e6%b0%91%e5%8c%96%e7%9a%84%e9%bb%91%e5%ae%a2.shtml#comments</comments>
		<pubDate>Sun, 19 Jul 2009 05:40:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[黑客]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=867</guid>
		<description><![CDATA[每天下班，都有各式各样的IT人，能看到各种各样的IT文化衫：unix系列的，思科的网工，微软家族的，今天突然看到一黑客，令我肃然起敬-

]]></description>
			<content:encoded><![CDATA[<p>每天下班，都有各式各样的IT人，能看到各种各样的IT文化衫：unix系列的，思科的网工，微软家族的，今天突然看到一黑客，令我肃然起敬-</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/07/hacker.jpg"><img class="aligncenter size-full wp-image-868" title="hacker" src="http://www.sunboyu.cn/upfiles/2009/07/hacker.jpg" alt="hacker" width="800" height="600" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/19/%e5%b9%b3%e6%b0%91%e5%8c%96%e7%9a%84%e9%bb%91%e5%ae%a2.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>火狐-真正的火狐-火狐美女</title>
		<link>http://www.sunboyu.cn/2009/07/17/%e7%81%ab%e7%8b%90-%e7%9c%9f%e6%ad%a3%e7%9a%84%e7%81%ab%e7%8b%90-%e7%81%ab%e7%8b%90%e7%be%8e%e5%a5%b3.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/17/%e7%81%ab%e7%8b%90-%e7%9c%9f%e6%ad%a3%e7%9a%84%e7%81%ab%e7%8b%90-%e7%81%ab%e7%8b%90%e7%be%8e%e5%a5%b3.shtml#comments</comments>
		<pubDate>Fri, 17 Jul 2009 02:14:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=862</guid>
		<description><![CDATA[<table id="px3" title="firefox" border="0" cellspacing="0" cellpadding="0"><tr>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3433/3854627880_b9b2b003b2_m.jpg" title="firefox_dog" alt="firefox_dog"><img src="http://farm4.static.flickr.com/3433/3854627880_b9b2b003b2_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3433%2F3854627880_b9b2b003b2_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3433%2F3854627880_b9b2b003b2_m.jpg%22%2C%22a%22%3A%22firefox_dog%22%7D" alt="firefox_dog"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2657/3854627010_6f02aa8494_m.jpg" title="03335194_687cd90d890e65cb33a033222e8706cf" alt="03335194_687cd90d890e65cb33a033222e8706cf"><img src="http://farm3.static.flickr.com/2657/3854627010_6f02aa8494_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2657%2F3854627010_6f02aa8494_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2657%2F3854627010_6f02aa8494_m.jpg%22%2C%22a%22%3A%2203335194_687cd90d890e65cb33a033222e8706cf%22%7D" alt="03335194_687cd90d890e65cb33a033222e8706cf"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3515/3853838423_994732c453_m.jpg" title="a9478eb81fff17f4d4ae6aad9efba12d" alt="a9478eb81fff17f4d4ae6aad9efba12d"><img src="http://farm4.static.flickr.com/3515/3853838423_994732c453_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3515%2F3853838423_994732c453_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3515%2F3853838423_994732c453_m.jpg%22%2C%22a%22%3A%22a9478eb81fff17f4d4ae6aad9efba12d%22%7D" alt="a9478eb81fff17f4d4ae6aad9efba12d"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2449/3854626948_2c993d1787_m.jpg" title="600px-firefoxsvg" alt="600px-firefoxsvg"><img src="http://farm3.static.flickr.com/2449/3854626948_2c993d1787_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2449%2F3854626948_2c993d1787_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2449%2F3854626948_2c993d1787_m.jpg%22%2C%22a%22%3A%22600px-firefoxsvg%22%7D" alt="600px-firefoxsvg"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2465/3853837091_5248cb0f45_m.jpg" title="firefox-experiment" alt="firefox-experiment"><img src="http://farm3.static.flickr.com/2465/3853837091_5248cb0f45_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2465%2F3853837091_5248cb0f45_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2465%2F3853837091_5248cb0f45_m.jpg%22%2C%22a%22%3A%22firefox-experiment%22%7D" alt="firefox-experiment"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2511/3853836473_f8818085bb_m.jpg" title="sexy-firefox" alt="sexy-firefox"><img src="http://farm3.static.flickr.com/2511/3853836473_f8818085bb_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2511%2F3853836473_f8818085bb_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2511%2F3853836473_f8818085bb_m.jpg%22%2C%22a%22%3A%22sexy-firefox%22%7D" alt="sexy-firefox"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2481/3854625274_c9047dd9a4_m.jpg" title="firefox_ie_desktop_1152x864" alt="firefox_ie_desktop_1152x864"><img src="http://farm3.static.flickr.com/2481/3854625274_c9047dd9a4_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854625274_c9047dd9a4_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854625274_c9047dd9a4_m.jpg%22%2C%22a%22%3A%22firefox_ie_desktop_1152x864%22%7D" alt="firefox_ie_desktop_1152x864"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2583/3853834401_b02e10c0c4_m.jpg" title="firefox_truth" alt="firefox_truth"><img src="http://farm3.static.flickr.com/2583/3853834401_b02e10c0c4_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2583%2F3853834401_b02e10c0c4_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2583%2F3853834401_b02e10c0c4_m.jpg%22%2C%22a%22%3A%22firefox_truth%22%7D" alt="firefox_truth"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3478/3853833959_7840b2e890_m.jpg" title="07869039_5a9dfe7e171b31ad25835d0aa53ebbaf" alt="07869039_5a9dfe7e171b31ad25835d0aa53ebbaf"><img src="http://farm4.static.flickr.com/3478/3853833959_7840b2e890_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3478%2F3853833959_7840b2e890_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3478%2F3853833959_7840b2e890_m.jpg%22%2C%22a%22%3A%2207869039_5a9dfe7e171b31ad25835d0aa53ebbaf%22%7D" alt="07869039_5a9dfe7e171b31ad25835d0aa53ebbaf"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2467/3853833799_4b553be2be_m.jpg" title="firefox-6" alt="firefox-6"><img src="http://farm3.static.flickr.com/2467/3853833799_4b553be2be_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2467%2F3853833799_4b553be2be_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2467%2F3853833799_4b553be2be_m.jpg%22%2C%22a%22%3A%22firefox-6%22%7D" alt="firefox-6"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2509/3853832625_7807e93870_m.jpg" title="99011397_9c03c120284be9f90d4a5a33a4b0ac3b" alt="99011397_9c03c120284be9f90d4a5a33a4b0ac3b"><img src="http://farm3.static.flickr.com/2509/3853832625_7807e93870_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2509%2F3853832625_7807e93870_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2509%2F3853832625_7807e93870_m.jpg%22%2C%22a%22%3A%2299011397_9c03c120284be9f90d4a5a33a4b0ac3b%22%7D" alt="99011397_9c03c120284be9f90d4a5a33a4b0ac3b"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3456/3853832173_0e5e4226d5_m.jpg" title="07728881_31a56fc6d5a5ff4bad8118ddff455424" alt="07728881_31a56fc6d5a5ff4bad8118ddff455424"><img src="http://farm4.static.flickr.com/3456/3853832173_0e5e4226d5_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3456%2F3853832173_0e5e4226d5_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3456%2F3853832173_0e5e4226d5_m.jpg%22%2C%22a%22%3A%2207728881_31a56fc6d5a5ff4bad8118ddff455424%22%7D" alt="07728881_31a56fc6d5a5ff4bad8118ddff455424"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2504/3854620646_9a8b45cf69_m.jpg" title="50142045_132702724976cd02112a878c516ddec0" alt="50142045_132702724976cd02112a878c516ddec0"><img src="http://farm3.static.flickr.com/2504/3854620646_9a8b45cf69_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2504%2F3854620646_9a8b45cf69_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2504%2F3854620646_9a8b45cf69_m.jpg%22%2C%22a%22%3A%2250142045_132702724976cd02112a878c516ddec0%22%7D" alt="50142045_132702724976cd02112a878c516ddec0"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2638/3853832019_c413a72f0d_m.jpg" title="firefox-ad" alt="firefox-ad"><img src="http://farm3.static.flickr.com/2638/3853832019_c413a72f0d_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2638%2F3853832019_c413a72f0d_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2638%2F3853832019_c413a72f0d_m.jpg%22%2C%22a%22%3A%22firefox-ad%22%7D" alt="firefox-ad"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2545/3854620470_73b96b86cc_m.jpg" title="22133893_11a40388efcea416252e94a9fa264bc8" alt="22133893_11a40388efcea416252e94a9fa264bc8"><img src="http://farm3.static.flickr.com/2545/3854620470_73b96b86cc_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2545%2F3854620470_73b96b86cc_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2545%2F3854620470_73b96b86cc_m.jpg%22%2C%22a%22%3A%2222133893_11a40388efcea416252e94a9fa264bc8%22%7D" alt="22133893_11a40388efcea416252e94a9fa264bc8"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2481/3854620224_1fa3b3378b_m.jpg" title="27477612_bbc2337c217d132528e0f679c7801cff" alt="27477612_bbc2337c217d132528e0f679c7801cff"><img src="http://farm3.static.flickr.com/2481/3854620224_1fa3b3378b_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854620224_1fa3b3378b_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854620224_1fa3b3378b_m.jpg%22%2C%22a%22%3A%2227477612_bbc2337c217d132528e0f679c7801cff%22%7D" alt="27477612_bbc2337c217d132528e0f679c7801cff"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3511/3854619488_f35cf3325d_m.jpg" title="google-girl-vs-firefox-girl-500x344" alt="google-girl-vs-firefox-girl-500x344"><img src="http://farm4.static.flickr.com/3511/3854619488_f35cf3325d_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854619488_f35cf3325d_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854619488_f35cf3325d_m.jpg%22%2C%22a%22%3A%22google-girl-vs-firefox-girl-500x344%22%7D" alt="google-girl-vs-firefox-girl-500x344"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2486/3853830745_a0d43e1ab4_m.jpg" title="24496522_86ce154f0982b184dda72035e0eb003d" alt="24496522_86ce154f0982b184dda72035e0eb003d"><img src="http://farm3.static.flickr.com/2486/3853830745_a0d43e1ab4_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2486%2F3853830745_a0d43e1ab4_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2486%2F3853830745_a0d43e1ab4_m.jpg%22%2C%22a%22%3A%2224496522_86ce154f0982b184dda72035e0eb003d%22%7D" alt="24496522_86ce154f0982b184dda72035e0eb003d"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2648/3854619128_b8e6af50f2_m.jpg" title="87095721_6c29888cb01bf8c9d71e83dc3f3f2c01" alt="87095721_6c29888cb01bf8c9d71e83dc3f3f2c01"><img src="http://farm3.static.flickr.com/2648/3854619128_b8e6af50f2_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3854619128_b8e6af50f2_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3854619128_b8e6af50f2_m.jpg%22%2C%22a%22%3A%2287095721_6c29888cb01bf8c9d71e83dc3f3f2c01%22%7D" alt="87095721_6c29888cb01bf8c9d71e83dc3f3f2c01"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3535/3853829835_aa9beb8f22_m.jpg" title="95252819_167efa8812638694e0e0d020d798aa0d" alt="95252819_167efa8812638694e0e0d020d798aa0d"><img src="http://farm4.static.flickr.com/3535/3853829835_aa9beb8f22_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3535%2F3853829835_aa9beb8f22_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3535%2F3853829835_aa9beb8f22_m.jpg%22%2C%22a%22%3A%2295252819_167efa8812638694e0e0d020d798aa0d%22%7D" alt="95252819_167efa8812638694e0e0d020d798aa0d"/></a></td>
</tr>
</table><link id="px_editstylesheet" type="text/css" href="http://www.sunboyu.cn/wp-content/plugins/photoxhibit/photoxhibit.php?option=css&gid=3&1283481334" rel="stylesheet"/>
]]></description>
			<content:encoded><![CDATA[<table id="px3" title="firefox" border="0" cellspacing="0" cellpadding="0"><tr>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3433/3854627880_b9b2b003b2_m.jpg" title="firefox_dog" alt="firefox_dog"><img src="http://farm4.static.flickr.com/3433/3854627880_b9b2b003b2_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3433%2F3854627880_b9b2b003b2_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3433%2F3854627880_b9b2b003b2_m.jpg%22%2C%22a%22%3A%22firefox_dog%22%7D" alt="firefox_dog"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2657/3854627010_6f02aa8494_m.jpg" title="03335194_687cd90d890e65cb33a033222e8706cf" alt="03335194_687cd90d890e65cb33a033222e8706cf"><img src="http://farm3.static.flickr.com/2657/3854627010_6f02aa8494_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2657%2F3854627010_6f02aa8494_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2657%2F3854627010_6f02aa8494_m.jpg%22%2C%22a%22%3A%2203335194_687cd90d890e65cb33a033222e8706cf%22%7D" alt="03335194_687cd90d890e65cb33a033222e8706cf"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3515/3853838423_994732c453_m.jpg" title="a9478eb81fff17f4d4ae6aad9efba12d" alt="a9478eb81fff17f4d4ae6aad9efba12d"><img src="http://farm4.static.flickr.com/3515/3853838423_994732c453_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3515%2F3853838423_994732c453_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3515%2F3853838423_994732c453_m.jpg%22%2C%22a%22%3A%22a9478eb81fff17f4d4ae6aad9efba12d%22%7D" alt="a9478eb81fff17f4d4ae6aad9efba12d"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2449/3854626948_2c993d1787_m.jpg" title="600px-firefoxsvg" alt="600px-firefoxsvg"><img src="http://farm3.static.flickr.com/2449/3854626948_2c993d1787_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2449%2F3854626948_2c993d1787_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2449%2F3854626948_2c993d1787_m.jpg%22%2C%22a%22%3A%22600px-firefoxsvg%22%7D" alt="600px-firefoxsvg"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2465/3853837091_5248cb0f45_m.jpg" title="firefox-experiment" alt="firefox-experiment"><img src="http://farm3.static.flickr.com/2465/3853837091_5248cb0f45_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2465%2F3853837091_5248cb0f45_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2465%2F3853837091_5248cb0f45_m.jpg%22%2C%22a%22%3A%22firefox-experiment%22%7D" alt="firefox-experiment"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2511/3853836473_f8818085bb_m.jpg" title="sexy-firefox" alt="sexy-firefox"><img src="http://farm3.static.flickr.com/2511/3853836473_f8818085bb_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2511%2F3853836473_f8818085bb_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2511%2F3853836473_f8818085bb_m.jpg%22%2C%22a%22%3A%22sexy-firefox%22%7D" alt="sexy-firefox"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2481/3854625274_c9047dd9a4_m.jpg" title="firefox_ie_desktop_1152x864" alt="firefox_ie_desktop_1152x864"><img src="http://farm3.static.flickr.com/2481/3854625274_c9047dd9a4_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854625274_c9047dd9a4_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854625274_c9047dd9a4_m.jpg%22%2C%22a%22%3A%22firefox_ie_desktop_1152x864%22%7D" alt="firefox_ie_desktop_1152x864"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2583/3853834401_b02e10c0c4_m.jpg" title="firefox_truth" alt="firefox_truth"><img src="http://farm3.static.flickr.com/2583/3853834401_b02e10c0c4_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2583%2F3853834401_b02e10c0c4_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2583%2F3853834401_b02e10c0c4_m.jpg%22%2C%22a%22%3A%22firefox_truth%22%7D" alt="firefox_truth"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3478/3853833959_7840b2e890_m.jpg" title="07869039_5a9dfe7e171b31ad25835d0aa53ebbaf" alt="07869039_5a9dfe7e171b31ad25835d0aa53ebbaf"><img src="http://farm4.static.flickr.com/3478/3853833959_7840b2e890_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3478%2F3853833959_7840b2e890_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3478%2F3853833959_7840b2e890_m.jpg%22%2C%22a%22%3A%2207869039_5a9dfe7e171b31ad25835d0aa53ebbaf%22%7D" alt="07869039_5a9dfe7e171b31ad25835d0aa53ebbaf"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2467/3853833799_4b553be2be_m.jpg" title="firefox-6" alt="firefox-6"><img src="http://farm3.static.flickr.com/2467/3853833799_4b553be2be_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2467%2F3853833799_4b553be2be_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2467%2F3853833799_4b553be2be_m.jpg%22%2C%22a%22%3A%22firefox-6%22%7D" alt="firefox-6"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2509/3853832625_7807e93870_m.jpg" title="99011397_9c03c120284be9f90d4a5a33a4b0ac3b" alt="99011397_9c03c120284be9f90d4a5a33a4b0ac3b"><img src="http://farm3.static.flickr.com/2509/3853832625_7807e93870_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2509%2F3853832625_7807e93870_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2509%2F3853832625_7807e93870_m.jpg%22%2C%22a%22%3A%2299011397_9c03c120284be9f90d4a5a33a4b0ac3b%22%7D" alt="99011397_9c03c120284be9f90d4a5a33a4b0ac3b"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3456/3853832173_0e5e4226d5_m.jpg" title="07728881_31a56fc6d5a5ff4bad8118ddff455424" alt="07728881_31a56fc6d5a5ff4bad8118ddff455424"><img src="http://farm4.static.flickr.com/3456/3853832173_0e5e4226d5_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3456%2F3853832173_0e5e4226d5_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3456%2F3853832173_0e5e4226d5_m.jpg%22%2C%22a%22%3A%2207728881_31a56fc6d5a5ff4bad8118ddff455424%22%7D" alt="07728881_31a56fc6d5a5ff4bad8118ddff455424"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2504/3854620646_9a8b45cf69_m.jpg" title="50142045_132702724976cd02112a878c516ddec0" alt="50142045_132702724976cd02112a878c516ddec0"><img src="http://farm3.static.flickr.com/2504/3854620646_9a8b45cf69_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2504%2F3854620646_9a8b45cf69_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2504%2F3854620646_9a8b45cf69_m.jpg%22%2C%22a%22%3A%2250142045_132702724976cd02112a878c516ddec0%22%7D" alt="50142045_132702724976cd02112a878c516ddec0"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2638/3853832019_c413a72f0d_m.jpg" title="firefox-ad" alt="firefox-ad"><img src="http://farm3.static.flickr.com/2638/3853832019_c413a72f0d_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2638%2F3853832019_c413a72f0d_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2638%2F3853832019_c413a72f0d_m.jpg%22%2C%22a%22%3A%22firefox-ad%22%7D" alt="firefox-ad"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2545/3854620470_73b96b86cc_m.jpg" title="22133893_11a40388efcea416252e94a9fa264bc8" alt="22133893_11a40388efcea416252e94a9fa264bc8"><img src="http://farm3.static.flickr.com/2545/3854620470_73b96b86cc_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2545%2F3854620470_73b96b86cc_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2545%2F3854620470_73b96b86cc_m.jpg%22%2C%22a%22%3A%2222133893_11a40388efcea416252e94a9fa264bc8%22%7D" alt="22133893_11a40388efcea416252e94a9fa264bc8"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2481/3854620224_1fa3b3378b_m.jpg" title="27477612_bbc2337c217d132528e0f679c7801cff" alt="27477612_bbc2337c217d132528e0f679c7801cff"><img src="http://farm3.static.flickr.com/2481/3854620224_1fa3b3378b_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854620224_1fa3b3378b_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2481%2F3854620224_1fa3b3378b_m.jpg%22%2C%22a%22%3A%2227477612_bbc2337c217d132528e0f679c7801cff%22%7D" alt="27477612_bbc2337c217d132528e0f679c7801cff"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3511/3854619488_f35cf3325d_m.jpg" title="google-girl-vs-firefox-girl-500x344" alt="google-girl-vs-firefox-girl-500x344"><img src="http://farm4.static.flickr.com/3511/3854619488_f35cf3325d_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854619488_f35cf3325d_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854619488_f35cf3325d_m.jpg%22%2C%22a%22%3A%22google-girl-vs-firefox-girl-500x344%22%7D" alt="google-girl-vs-firefox-girl-500x344"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2486/3853830745_a0d43e1ab4_m.jpg" title="24496522_86ce154f0982b184dda72035e0eb003d" alt="24496522_86ce154f0982b184dda72035e0eb003d"><img src="http://farm3.static.flickr.com/2486/3853830745_a0d43e1ab4_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2486%2F3853830745_a0d43e1ab4_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2486%2F3853830745_a0d43e1ab4_m.jpg%22%2C%22a%22%3A%2224496522_86ce154f0982b184dda72035e0eb003d%22%7D" alt="24496522_86ce154f0982b184dda72035e0eb003d"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm3.static.flickr.com/2648/3854619128_b8e6af50f2_m.jpg" title="87095721_6c29888cb01bf8c9d71e83dc3f3f2c01" alt="87095721_6c29888cb01bf8c9d71e83dc3f3f2c01"><img src="http://farm3.static.flickr.com/2648/3854619128_b8e6af50f2_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3854619128_b8e6af50f2_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2648%2F3854619128_b8e6af50f2_m.jpg%22%2C%22a%22%3A%2287095721_6c29888cb01bf8c9d71e83dc3f3f2c01%22%7D" alt="87095721_6c29888cb01bf8c9d71e83dc3f3f2c01"/></a></td>
<td>
<a class="lightBox" rel="g3" href="http://farm4.static.flickr.com/3535/3853829835_aa9beb8f22_m.jpg" title="95252819_167efa8812638694e0e0d020d798aa0d" alt="95252819_167efa8812638694e0e0d020d798aa0d"><img src="http://farm4.static.flickr.com/3535/3853829835_aa9beb8f22_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3535%2F3853829835_aa9beb8f22_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3535%2F3853829835_aa9beb8f22_m.jpg%22%2C%22a%22%3A%2295252819_167efa8812638694e0e0d020d798aa0d%22%7D" alt="95252819_167efa8812638694e0e0d020d798aa0d"/></a></td>
</tr>
</table><link id="px_editstylesheet" type="text/css" href="http://www.sunboyu.cn/wp-content/plugins/photoxhibit/photoxhibit.php?option=css&gid=3&1283481334" rel="stylesheet"/><p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/17/%e7%81%ab%e7%8b%90-%e7%9c%9f%e6%ad%a3%e7%9a%84%e7%81%ab%e7%8b%90-%e7%81%ab%e7%8b%90%e7%be%8e%e5%a5%b3.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>智联招聘的个人评测系统</title>
		<link>http://www.sunboyu.cn/2009/07/16/%e6%99%ba%e8%81%94%e6%8b%9b%e8%81%98%e7%9a%84%e4%b8%aa%e4%ba%ba%e8%af%84%e6%b5%8b%e7%b3%bb%e7%bb%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/16/%e6%99%ba%e8%81%94%e6%8b%9b%e8%81%98%e7%9a%84%e4%b8%aa%e4%ba%ba%e8%af%84%e6%b5%8b%e7%b3%bb%e7%bb%9f.shtml#comments</comments>
		<pubDate>Wed, 15 Jul 2009 20:56:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[个人评测系统]]></category>
		<category><![CDATA[智联]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=860</guid>
		<description><![CDATA[朋友发给我智联招聘一个个人评测系统，进行了职业兴趣，IQ,EQ的测试，经过一中午的测试，我发现这个测试还是蛮有道理的，对我的分析大体如下：
职业兴趣：研究型、社会型。   从小不喜欢学习，但喜欢玩弄点高深的东西，让只看分数的老师们头疼不已。分数不高，难题倒解得非常出色，让我想起了爱因斯坦（狂晕）。中学往后一直在学校担任领导干部，估计是社会型性格的由来。
智商102，平均水平。看来真是一般人。其中对数字的敏感很强，排到了82%，估计我天生是搞计算机的命。不过我更喜欢研究hack。
情商不高，不喜欢研究人，估计长期跟计算机打交道的结构。不过沟通能力语言能力情绪控制能力挺强。在情商分支看来我也偏科。我是很理智的人。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
人的发展还是取决于个人和环境，测试权当一参考。
]]></description>
			<content:encoded><![CDATA[<p>朋友发给我智联招聘一个个人评测系统，进行了职业兴趣，IQ,EQ的测试，经过一中午的测试，我发现这个测试还是蛮有道理的，对我的分析大体如下：</p>
<p>职业兴趣：研究型、社会型。   从小不喜欢学习，但喜欢玩弄点高深的东西，让只看分数的老师们头疼不已。分数不高，难题倒解得非常出色，让我想起了爱因斯坦（狂晕）。中学往后一直在学校担任领导干部，估计是社会型性格的由来。</p>
<p>智商102，平均水平。看来真是一般人。其中对数字的敏感很强，排到了82%，估计我天生是搞计算机的命。不过我更喜欢研究hack。</p>
<p>情商不高，不喜欢研究人，估计长期跟计算机打交道的结构。不过沟通能力语言能力情绪控制能力挺强。在情商分支看来我也偏科。我是很理智的人。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>人的发展还是取决于个人和环境，测试权当一参考。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/16/%e6%99%ba%e8%81%94%e6%8b%9b%e8%81%98%e7%9a%84%e4%b8%aa%e4%ba%ba%e8%af%84%e6%b5%8b%e7%b3%bb%e7%bb%9f.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>为FCKEditor增加图片附件管理功能</title>
		<link>http://www.sunboyu.cn/2009/07/15/%e4%b8%bafckeditor%e5%a2%9e%e5%8a%a0%e5%9b%be%e7%89%87%e9%99%84%e4%bb%b6%e7%ae%a1%e7%90%86%e5%8a%9f%e8%83%bd.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/15/%e4%b8%bafckeditor%e5%a2%9e%e5%8a%a0%e5%9b%be%e7%89%87%e9%99%84%e4%bb%b6%e7%ae%a1%e7%90%86%e5%8a%9f%e8%83%bd.shtml#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:38:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[fckeditor]]></category>
		<category><![CDATA[附件数据库]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=858</guid>
		<description><![CDATA[其实好久没用过FCKEeditor了，因为将近两年没写过CMS，今天突然人品大爆发，想起了这个问题。
fckeditor是一个非常棒的所见即所得在线编辑器，包括一些门户网站都在使用。fckeditor有个问题，就是上传图片默认为一个文件夹，当然这个问题早已经解决，我们可以用cookie或者session的方式给参数 $Config['UserFilesPath'] 就可以定制上传路径。而后在文章保存的过程中即可保存图片地址。
然后在使用过程中又出现一个问题，虽然我们知道图片在哪个文件夹，但我们却不能动态的去知道具体文件夹内有哪几个图片，预览是什么。而且，我们在写CMS的时候经常需要调用其中一张图片做封面，原来的机制显然无法去满足这些需求（当然你也可以查看编辑器内的源代码来查看图片地址，不过对于外行似乎有点困难）。
突然看到了discuz的附件机制，相出这么个损招：每张图片上传都给他存储在数据库中，打上guid（或者唯一的地址）进行标识，当我们保存的时候，图片会跟文章关联，在使用之前还可以用ajax动态调用预览，可谓一举两得。
文章保存后，图片进入数据库，另外还可以方便找出编辑遗留的垃圾，因为很多时候一个已经传了文章的草稿没有保存，而遗留很多的临时文件。
最近的fck版本好像升级了，配置文件放从根目录迁移了，不过fck代码非常规整，做这么个改造不是很难，就没写demo。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
文章很冗余，骗稿费?
]]></description>
			<content:encoded><![CDATA[<p>其实好久没用过FCKEeditor了，因为将近两年没写过CMS，今天突然人品大爆发，想起了这个问题。</p>
<p>fckeditor是一个非常棒的所见即所得在线编辑器，包括一些门户网站都在使用。fckeditor有个问题，就是上传图片默认为一个文件夹，当然这个问题早已经解决，我们可以用cookie或者session的方式给参数 $Config['UserFilesPath'] 就可以定制上传路径。而后在文章保存的过程中即可保存图片地址。</p>
<p>然后在使用过程中又出现一个问题，虽然我们知道图片在哪个文件夹，但我们却不能动态的去知道具体文件夹内有哪几个图片，预览是什么。而且，我们在写CMS的时候经常需要调用其中一张图片做封面，原来的机制显然无法去满足这些需求（当然你也可以查看编辑器内的源代码来查看图片地址，不过对于外行似乎有点困难）。</p>
<p>突然看到了discuz的附件机制，相出这么个损招：每张图片上传都给他存储在数据库中，打上guid（或者唯一的地址）进行标识，当我们保存的时候，图片会跟文章关联，在使用之前还可以用ajax动态调用预览，可谓一举两得。</p>
<p>文章保存后，图片进入数据库，另外还可以方便找出编辑遗留的垃圾，因为很多时候一个已经传了文章的草稿没有保存，而遗留很多的临时文件。</p>
<p>最近的fck版本好像升级了，配置文件放从根目录迁移了，不过fck代码非常规整，做这么个改造不是很难，就没写demo。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>文章很冗余，骗稿费?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/15/%e4%b8%bafckeditor%e5%a2%9e%e5%8a%a0%e5%9b%be%e7%89%87%e9%99%84%e4%bb%b6%e7%ae%a1%e7%90%86%e5%8a%9f%e8%83%bd.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux配置几个关键点需要注意</title>
		<link>http://www.sunboyu.cn/2009/07/15/linux%e9%85%8d%e7%bd%ae%e5%87%a0%e4%b8%aa%e5%85%b3%e9%94%ae%e7%82%b9%e9%9c%80%e8%a6%81%e6%b3%a8%e6%84%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/15/linux%e9%85%8d%e7%bd%ae%e5%87%a0%e4%b8%aa%e5%85%b3%e9%94%ae%e7%82%b9%e9%9c%80%e8%a6%81%e6%b3%a8%e6%84%8f.shtml#comments</comments>
		<pubDate>Tue, 14 Jul 2009 20:30:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[机房]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=856</guid>
		<description><![CDATA[前两天机房断电，弄得兄弟我太郁闷。机房网管居然直接硬关机，这么来回弄了两三次，问技术，不是那一拨，问销售，没啥解释，人家说不知道……
一分钱一分货有道理，结果我机器挂了，机房那边说linux启动，中间卡死了。因为那个机房没有懂linux的网管，所以，我开车（捷安特）去了机房。
后发现，其实没什么问题，卡在了一个依赖python的启动进程上，另外mysql貌似也没有启动。
我用ubuntu live版的cd进入系统（有点像win下的PE的思路），修改了python设置：
原来python默认是2.3版本，我升级到了2.5，默认关联的是2.5版的，但这样会有一些问题，比如yum对版本依赖性很强，修改后则其不工作，所以我修改了yum的配置，让其寻找2.3版本。而另一下对python有依赖的模块我却没有发现，造成down机后无法启动。
mysql无法自启动，没找出是哪的问题，不过，我在ubuntu下加载了原来的分区，修改了rc.local配置,灭了mysql，系统顺利启动。
总结：ubuntu live cd的作用跟我修理xp时候的pe功能相似，系统挂掉的时候修改个配置啥的还是很好用的。
除非很了解软件之间的依赖性，否则不要随意修改那些配置，否则会造成依赖性问题。
事发现场图片

]]></description>
			<content:encoded><![CDATA[<p>前两天机房断电，弄得兄弟我太郁闷。机房网管居然直接硬关机，这么来回弄了两三次，问技术，不是那一拨，问销售，没啥解释，人家说不知道……</p>
<p>一分钱一分货有道理，结果我机器挂了，机房那边说linux启动，中间卡死了。因为那个机房没有懂linux的网管，所以，我开车（捷安特）去了机房。</p>
<p>后发现，其实没什么问题，卡在了一个依赖python的启动进程上，另外mysql貌似也没有启动。</p>
<p>我用ubuntu live版的cd进入系统（有点像win下的PE的思路），修改了python设置：</p>
<p>原来python默认是2.3版本，我升级到了2.5，默认关联的是2.5版的，但这样会有一些问题，比如yum对版本依赖性很强，修改后则其不工作，所以我修改了yum的配置，让其寻找2.3版本。而另一下对python有依赖的模块我却没有发现，造成down机后无法启动。</p>
<p>mysql无法自启动，没找出是哪的问题，不过，我在ubuntu下加载了原来的分区，修改了rc.local配置,灭了mysql，系统顺利启动。</p>
<p>总结：ubuntu live cd的作用跟我修理xp时候的pe功能相似，系统挂掉的时候修改个配置啥的还是很好用的。</p>
<p>除非很了解软件之间的依赖性，否则不要随意修改那些配置，否则会造成依赖性问题。</p>
<p>事发现场图片</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/07/server-mysql.jpg"><img class="aligncenter size-full wp-image-872" title="server-mysql" src="http://www.sunboyu.cn/upfiles/2009/07/server-mysql.jpg" alt="server-mysql" width="800" height="591" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/15/linux%e9%85%8d%e7%bd%ae%e5%87%a0%e4%b8%aa%e5%85%b3%e9%94%ae%e7%82%b9%e9%9c%80%e8%a6%81%e6%b3%a8%e6%84%8f.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP开发的一个pureftpd管理工具</title>
		<link>http://www.sunboyu.cn/2009/07/10/php%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%80%e4%b8%aapureftpd%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/10/php%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%80%e4%b8%aapureftpd%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7.shtml#comments</comments>
		<pubDate>Fri, 10 Jul 2009 08:49:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[pureftpd]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=850</guid>
		<description><![CDATA[用过pureftpd manager，虽然功能足够，但很多bug，无法使用，而pureftpd功能简单，写个管理工具也没多复杂，于是乎，花两个晚上写了个简单的管理脚本，分享给大家。不过没来得及写注释，回头会把注释补上。
分流下载 http://down.chinaz.com/soft/26439.htm
点击下载
&#60; ?php
error_reporting(2047);
header(&#34;Content-Type: text/html; charset=utf-8&#34;);
header(&#34;Cache-Control: no-cache, must-revalidate&#34;); // HTTP/1.1
header(&#34;Expires: Mon, 26 Jul 1997 05:00:00 GMT&#34;); // 过去的时间
define(&#34;FILENAME&#34;,$_SERVER['PHP_SELF']);
$adminuser = &#34;admin&#34;;
$adminpass = &#34;admin&#34;;
&#160;
$servtype = 'mysql';
$hostname = 'localhost';
$username = 'root';
$password = '123456';
$datebase = 'pure-ftpd';
$table&#160; &#160; = &#34;users&#34;;
$charset&#160; = 'utf8';
$crypt&#160; &#160; = &#34;MD5&#34;;
&#160;
session_start();
#session_destroy();
$action = isset($_GET['action']) ? $_GET['action'] : &#34;index&#34;;
&#160;
&#160;
switch( $action )
{
&#160;&#160; &#160;case &#34;index&#34;:
	&#160; &#160; checklogin();
		func_html( 0 );
		switch($_SESSION['user'])
		{
		&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>用过pureftpd manager，虽然功能足够，但很多bug，无法使用，而pureftpd功能简单，写个管理工具也没多复杂，于是乎，花两个晚上写了个简单的管理脚本，分享给大家。不过没来得及写注释，回头会把注释补上。</p>
<p>分流下载 http://down.chinaz.com/soft/26439.htm</p>
<p><a href='http://www.sunboyu.cn/upfiles/2009/07/ftp.rar'>点击下载</a></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">&lt; ?php</li>
<li>error_reporting(2047);</li>
<li>header(&quot;Content-Type: text/html; charset=utf-8&quot;);</li>
<li>header(&quot;Cache-Control: no-cache, must-revalidate&quot;); // HTTP/1.1</li>
<li>header(&quot;Expires: Mon, 26 Jul 1997 05:00:00 GMT&quot;); // 过去的时间</li>
<li>define(&quot;FILENAME&quot;,$_SERVER['PHP_SELF']);</li>
<li>$adminuser = &quot;admin&quot;;</li>
<li>$adminpass = &quot;admin&quot;;</li>
<li>&nbsp;</li>
<li>$servtype = 'mysql';</li>
<li>$hostname = 'localhost';</li>
<li>$username = 'root';</li>
<li>$password = '123456';</li>
<li>$datebase = 'pure-ftpd';</li>
<li>$table&nbsp; &nbsp; = &quot;users&quot;;</li>
<li>$charset&nbsp; = 'utf8';</li>
<li>$crypt&nbsp; &nbsp; = &quot;MD5&quot;;</li>
<li>&nbsp;</li>
<li>session_start();</li>
<li>#session_destroy();</li>
<li>$action = isset($_GET['action']) ? $_GET['action'] : &quot;index&quot;;</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>switch( $action )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;case &quot;index&quot;:</li>
<li>	&nbsp; &nbsp; checklogin();</li>
<li>		func_html( 0 );</li>
<li>		switch($_SESSION['user'])</li>
<li>		{</li>
<li>		&nbsp; &nbsp; case $adminuser:</li>
<li>			&nbsp; &nbsp; func_admin_index();</li>
<li>			break;</li>
<li>			default:</li>
<li>			&nbsp; &nbsp; func_user_index();</li>
<li>			break;</li>
<li>		}</li>
<li>		func_html( 1 );</li>
<li>	break;</li>
<li>&nbsp;&nbsp; &nbsp;case &quot;userlogin&quot;:</li>
<li>	case &quot;adminlogin&quot;:</li>
<li>	&nbsp; &nbsp; func_html( 0 );</li>
<li>	&nbsp; &nbsp; func_userlogin();</li>
<li>		func_html( 1 );</li>
<li>	break;</li>
<li>	case &quot;userloginaction&quot;:</li>
<li>	&nbsp; &nbsp; func_userloginaction( $_POST['username'] , $_POST['password'] , $_POST['logintype'] );</li>
<li>	break;</li>
<li>	case &quot;userpasswordchang&quot;:</li>
<li>	&nbsp; &nbsp; checklogin();</li>
<li>		user_password_chang( $_POST['password'] );</li>
<li>	break;</li>
<li>	case &quot;adminchangeuserpassword&quot;:</li>
<li>	case &quot;useradd&quot;:</li>
<li>	&nbsp; &nbsp; checklogin(true);</li>
<li>		func_admin_user_edit( isset($_GET['user']) ? $_GET['user'] : false );</li>
<li>	break;</li>
<li>	case &quot;userinfoac&quot;:</li>
<li>	&nbsp; &nbsp; checklogin(true);</li>
<li>		switch($_POST['action'])</li>
<li>		{</li>
<li>		&nbsp; &nbsp; case &quot;edit&quot;:</li>
<li>			&nbsp; &nbsp; func_admin_useredit();</li>
<li>			break;</li>
<li>			case &quot;add&quot;:</li>
<li>			&nbsp; &nbsp; func_admin_useradd();</li>
<li>			break;</li>
<li>		}</li>
<li>	break;</li>
<li>	case &quot;adminuserdel&quot;:</li>
<li>	&nbsp; &nbsp; func_user_del( $_GET['user'] );</li>
<li>	break;</li>
<li>	case &quot;logout&quot;:</li>
<li>	&nbsp; &nbsp; func_logout();</li>
<li>	break;</li>
<li>}</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>function func_html( $position = 0 )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;switch( $position )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; case 0:</li>
<li>		&nbsp; &nbsp; echo &quot;&lt;!DOCTYPE html PUBLIC \&quot;-//W3C//DTD XHTML 1.0 Transitional//EN\&quot; \&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\&quot;&gt;</li>
<li>&lt;html xmlns=\&quot;http://www.w3.org/1999/xhtml\&quot;&gt;</li>
<li>&lt;head&gt;</li>
<li>&lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=utf-8\&quot; /&gt;</li>
<li>&lt;title&gt;PURE-FTPD简易管理系统&lt;/title&gt;</li>
<li>&lt;style type=\&quot;text/css\&quot;&gt;</li>
<li>td</li>
<li>{</li>
<li>	padding:4px;</li>
<li>}</li>
<li>.bar</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;width:80%;</li>
<li>	border-bottom:dotted 1px #aaa;</li>
<li>	margin-bottom:20px;</li>
<li>	padding:10px;</li>
<li>}</li>
<li>&lt;/style&gt;</li>
<li>&lt;/head&gt;</li>
<li>&lt;body&gt;</li>
<li>&lt;div class=\&quot;bar\&quot;&gt;PURE-FTPD简易管理工具 &amp;nbsp; 孙博宇 &amp;nbsp; http://www.sunboyu.cn &amp;nbsp; QQ:176300676 &amp;nbsp; MSN:sunboyu@gmail.com&nbsp; &amp;nbsp; &quot;;</li>
<li>if(isset($_SESSION['user']))</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;input type=\&quot;button\&quot; name=\&quot;logout\&quot; id=\&quot;logout\&quot; value=\&quot;退出\&quot;&nbsp; onclick=\&quot;window.location.href='?action=logout'\&quot; /&gt;&quot;;</li>
<li>}</li>
<li>echo &quot;&lt;/div&gt;&quot;;</li>
<li>		break;</li>
<li>		case 1:</li>
<li>		&nbsp; &nbsp; echo &quot;&lt;/body&gt;</li>
<li>&lt;/html&gt;</li>
<li>			&quot;;</li>
<li>		break;</li>
<li>	}</li>
<li>&nbsp;&nbsp; &nbsp;</li>
<li>}</li>
<li>function checklogin( $type = false )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $adminuser;</li>
<li>&nbsp;&nbsp; &nbsp;if(!isset($_SESSION['user']))</li>
<li>	{</li>
<li>		header(&quot;Location:&quot;.FILENAME.&quot;?action=userlogin&quot;);</li>
<li>	}</li>
<li>	if($type&amp;&amp;$_SESSION['user']!=$adminuser)</li>
<li>	{</li>
<li>	&nbsp; &nbsp; header(&quot;Location:&quot;.FILENAME.&quot;?action=adminlogin&quot;);</li>
<li>	}</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_userlogin( )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;form name=\&quot;loginform\&quot; id=\&quot;loginform\&quot; action=\&quot;?action=userloginaction\&quot; method=\&quot;post\&quot;&gt;</li>
<li>&lt;table cellpadding=\&quot;0\&quot; cellspacing=\&quot;0\&quot; border=\&quot;0\&quot; style=\&quot;margin:0px;\&quot;&gt;</li>
<li>	&lt;tr&gt;</li>
<li>		&lt;td colspan=\&quot;2\&quot; align=\&quot;center\&quot;&gt;用户登录&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>		&lt;td width=\&quot;60\&quot; align=\&quot;right\&quot;&gt;用户名&lt;/td&gt;&lt;td width=\&quot;200\&quot;&gt;&lt;input type=\&quot;text\&quot; name=\&quot;username\&quot; id=\&quot;username\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>		&lt;td align=\&quot;right\&quot;&gt;密码&lt;/td&gt;&lt;td&gt;&lt;input type=\&quot;password\&quot; name=\&quot;password\&quot; id=\&quot;password\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>		&lt;td align=\&quot;center\&quot; colspan=\&quot;2\&quot;&gt;&lt;input type=\&quot;submit\&quot; name=\&quot;submit\&quot; id=\&quot;submit\&quot; value=\&quot;登录\&quot; /&gt;&lt;input type=\&quot;hidden\&quot; name=\&quot;logintype\&quot; id=\&quot;logintype\&quot; value=\&quot;{$_GET['action']}\&quot; /&gt; &amp;nbsp; &quot;;</li>
<li>		if($_GET['action']==&quot;userlogin&quot;)</li>
<li>		{</li>
<li>		&nbsp; &nbsp; echo &quot;&lt;a href=\&quot;?action=adminlogin\&quot;&gt;管理员登录&lt;/a&gt;&quot;;</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>		&nbsp; &nbsp; echo &quot;&lt;a href=\&quot;?action=userlogin\&quot;&gt;用户登录&lt;/a&gt;&quot;;</li>
<li>		}</li>
<li>		echo &quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>		&lt;td align=\&quot;center\&quot; colspan=\&quot;2\&quot;&gt;&quot;.(isset($_GET['error']) ? $_GET['error'] : &quot;&quot;).&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/form&gt;</li>
<li>	&quot;;</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_getdb()</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $hostname,$username,$password,$datebase,$charset;</li>
<li>	$handle = @mysql_connect( $hostname , $username , $password , false ) or die(&quot;Can't connetc to the DateBse.&quot;.mysql_error());</li>
<li>	@mysql_select_db( $datebase , $handle ) or die(&quot;Can't select the DateBase&quot;.mysql_error());</li>
<li>	mysql_query( &quot;SET NAMES '{$charset}'&quot; , $handle );</li>
<li>	return $handle;</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_userloginaction( $usernames , $passwords , $logintype )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;switch( $logintype )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; case &quot;userlogin&quot;:</li>
<li>		&nbsp; &nbsp; global $table,$username,$password,$crypt;</li>
<li>			$handle = func_getdb();</li>
<li>			#echo &quot;SELECT COUNT(*) AS count FROM {$table} WHERE User = '{$usernames}' AND Password = &quot;.$crypt.&quot;('&quot;.$passwords.&quot;')&quot;;</li>
<li>			$query = mysql_query(&quot;SELECT COUNT(*) AS count FROM {$table} WHERE User = '{$usernames}' AND Password = &quot;.$crypt.&quot;('&quot;.$passwords.&quot;')&quot; , $handle);</li>
<li>			$row = mysql_fetch_array( $query, MYSQL_ASSOC );</li>
<li>			if($row['count']==1)</li>
<li>			{</li>
<li>				$_SESSION['user'] = $usernames;</li>
<li>				echo &quot;登录成功，跳转中……&quot;;</li>
<li>				echo &quot;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>			}</li>
<li>			else</li>
<li>			{</li>
<li>				header(&quot;Location:&quot;.FILENAME.&quot;?action=userlogin&amp;error=&quot;.urlencode(&quot;用户名或者密码错误！&quot;));</li>
<li>			}</li>
<li>		break;</li>
<li>		case &quot;adminlogin&quot;:</li>
<li>		&nbsp; &nbsp; global $adminuser,$adminpass;</li>
<li>		&nbsp; &nbsp; if($adminuser==$usernames&amp;&amp;$adminpass==$passwords)</li>
<li>			{</li>
<li>			&nbsp; &nbsp; $_SESSION['user'] = $usernames;</li>
<li>				echo &quot;登录成功，跳转中……&quot;;</li>
<li>				echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>			}</li>
<li>			else</li>
<li>			{</li>
<li>			&nbsp; &nbsp; header(&quot;Location:&quot;.FILENAME.&quot;?action=adminlogin&amp;error=&quot;.urlencode(&quot;用户名或者密码错误！&quot;));</li>
<li>			}</li>
<li>		break;</li>
<li>	}</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_user_index()</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $table,$username,$password,$crypt;</li>
<li>	$handle = func_getdb();</li>
<li>	$query = mysql_query(&quot;SELECT * FROM {$table} WHERE User = '{$_SESSION['user']}'&quot; , $handle);</li>
<li>	$row = mysql_fetch_array( $query, MYSQL_ASSOC );</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;form name=\&quot;userpassword\&quot; id=\&quot;userpassword\&quot; method=\&quot;post\&quot; action=\&quot;?action=userpasswordchang\&quot;&gt;</li>
<li>	&lt;table cellpadding=\&quot;0\&quot; cellspacing=\&quot;0\&quot; border=\&quot;1\&quot;&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td colspan=\&quot;2\&quot; align=\&quot;center\&quot;&gt;服务器信息&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;ip&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.gethostbyname($_SERVER['SERVER_NAME']).&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td colspan=\&quot;2\&quot; align=\&quot;center\&quot;&gt;账户信息&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;用户名&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['User'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;修改密码&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&lt;input type=\&quot;password\&quot; name=\&quot;password\&quot; id=\&quot;password\&quot; /&gt; &amp;nbsp; &lt;input type=\&quot;submit\&quot; name=\&quot;submit\&quot; id=\&quot;submit\&quot; value=\&quot;修改\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Uid&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['Uid'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Gid&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['Gid'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Status&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['status'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Dir&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['Dir'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;ULBandwidth&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['ULBandwidth'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;DLBandwidth&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['DLBandwidth'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;ipaccess&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['ipaccess'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;QuotaSize&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['QuotaSize'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;QuotaFiles&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;.$row['QuotaFiles'].&quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/form&gt;</li>
<li>	&quot;;</li>
<li>}</li>
<li>&nbsp;</li>
<li>function user_password_chang( $password )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $crypt,$table;</li>
<li>&nbsp;&nbsp; &nbsp;if(empty($password))</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;密码不能为空，修改失败……&quot;;</li>
<li>		echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>	}</li>
<li>	else</li>
<li>	{</li>
<li>		$handle = func_getdb();</li>
<li>		$query = mysql_query(&quot;UPDATE {$table} SET Password = &quot;.$crypt.&quot;('&quot;.$password.&quot;') WHERE User = '{$_SESSION['user']}'&quot; , $handle);</li>
<li>		session_destroy();</li>
<li>		echo &quot;修改成功，请重新登录。如果新的密码不能登录，请尝试使用旧密码进行登录……&quot;;</li>
<li>		echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=userlogin\&quot;&gt;&quot;;</li>
<li>	}</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_admin_index()</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $table,$username,$password,$crypt;</li>
<li>	$handle = func_getdb();</li>
<li>	$query = mysql_query(&quot;SELECT * FROM {$table} ORDER BY User ASC&quot; , $handle);</li>
<li>	echo &quot;&lt;script language=\&quot;javascript\&quot;&gt;</li>
<li>function del( username )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;if(confirm('确认删除 '+username+'?'))</li>
<li>	{</li>
<li>	&nbsp; &nbsp; window.location.href=\&quot;?action=adminuserdel&amp;user=\&quot;+username;</li>
<li>	}</li>
<li>	else</li>
<li>	{</li>
<li>	&nbsp; &nbsp; return false;</li>
<li>	}</li>
<li>}</li>
<li>&lt;/script&gt;&lt;table cellpadding=\&quot;0\&quot; cellspacing=\&quot;0\&quot; border=\&quot;1\&quot;&gt;</li>
<li>&lt;tr&gt;</li>
<li>	&lt;td colspan=\&quot;4\&quot; align=\&quot;center\&quot;&gt;用户列表&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;right\&quot;&gt;&lt;input type=\&quot;button\&quot; name=\&quot;add\&quot; id=\&quot;add\&quot; value=\&quot;添加账户\&quot; onclick=\&quot;window.location.href='?action=useradd'\&quot; /&gt;&lt;/td&gt;</li>
<li>&lt;/tr&gt;</li>
<li>&lt;tr&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;账号&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;Uid&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;Gid&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;Dir&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;操作&lt;/td&gt;&nbsp; &nbsp;	 	</li>
<li>&lt;/tr&gt;&quot;;</li>
<li>	while( $row = mysql_fetch_array( $query, MYSQL_ASSOC ) )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;&lt;tr&gt;</li>
<li>	&lt;td&gt;&quot;.$row['User'].&quot;&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;&quot;.$row['Uid'].&quot;&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;&quot;.$row['Gid'].&quot;&lt;/td&gt;</li>
<li>	&lt;td&gt;&quot;.$row['Dir'].&quot;&lt;/td&gt;</li>
<li>	&lt;td align=\&quot;center\&quot;&gt;&lt;input type=\&quot;button\&quot; name=\&quot;button\&quot; id=\&quot;button\&quot; value=\&quot;修改\&quot; onclick=\&quot;window.location.href='?action=adminchangeuserpassword&amp;user=&quot;.$row['User'].&quot;'\&quot; /&gt;</li>
<li>	&lt;input type=\&quot;button\&quot; name=\&quot;del\&quot; id=\&quot;del\&quot; value=\&quot;删除\&quot; onclick=\&quot;del('&quot;.$row['User'].&quot;')\&quot; /&gt;&lt;/td&gt;&nbsp; &nbsp;	 	</li>
<li>&lt;/tr&gt;&quot;;</li>
<li>	}</li>
<li>echo &quot;&lt;/table&gt;&quot;;</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_admin_user_edit( $user = false )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;if($user)</li>
<li>	{</li>
<li>	&nbsp; &nbsp; global $table,$crypt;</li>
<li>		$handle = func_getdb();</li>
<li>		$query = mysql_query(&quot;SELECT * FROM {$table} WHERE User = '&quot;.$user.&quot;'&quot; , $handle);</li>
<li>		$row = mysql_fetch_array( $query, MYSQL_ASSOC );</li>
<li>		if($row==false)</li>
<li>		{</li>
<li>		&nbsp; &nbsp; echo &quot;不存在这个用户……&quot;;</li>
<li>		&nbsp; &nbsp; echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>			exit();</li>
<li>		}</li>
<li>		$action = &quot;edit&quot;;</li>
<li>	}</li>
<li>	else</li>
<li>	{</li>
<li>	&nbsp; &nbsp; $row[&quot;User&quot;] = &quot;&quot;;</li>
<li>		$row['Uid'] = &quot;&quot;;</li>
<li>		$row['Gid'] = &quot;&quot;;</li>
<li>		$row['status'] = 0;</li>
<li>		$row['Dir'] = &quot;&quot;;</li>
<li>		$row['ULBandwidth'] = 0;</li>
<li>		$row['DLBandwidth'] = 0;</li>
<li>		$row['ipaccess'] = &quot;*&quot;;</li>
<li>		$row['QuotaSize'] = 0;</li>
<li>		$row['QuotaFiles'] = 0;</li>
<li>		$action = &quot;add&quot;;</li>
<li>	}</li>
<li>echo &quot;&lt;form name=\&quot;userpassword\&quot; id=\&quot;userpassword\&quot; method=\&quot;post\&quot; action=\&quot;?action=userinfoac\&quot;&gt;</li>
<li>&lt;table cellpadding=\&quot;0\&quot; cellspacing=\&quot;0\&quot; border=\&quot;1\&quot;&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td colspan=\&quot;2\&quot; align=\&quot;center\&quot;&gt;账户信息&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;用户名&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&quot;;</li>
<li>		if($action==&quot;add&quot;)</li>
<li>		{</li>
<li>		&nbsp; &nbsp; echo&nbsp; &quot;&lt;input type=\&quot;text\&quot; name=\&quot;User\&quot; id=\&quot;User\&quot; value=\&quot;&quot;.$row['User'].&quot;\&quot; /&gt;&quot;;</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>		&nbsp; &nbsp; echo&nbsp; $row['User'].&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;User\&quot; id=\&quot;User\&quot; value=\&quot;&quot;.$row['User'].&quot;\&quot; /&gt;&quot;;</li>
<li>		}</li>
<li>		echo &quot;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;密码&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt;&lt;input type=\&quot;password\&quot; name=\&quot;password\&quot; id=\&quot;password\&quot; /&gt; &lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Uid&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;Uid\&quot; id=\&quot;Uid\&quot; value=\&quot;&quot;.$row['Uid'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Gid&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;Gid\&quot; id=\&quot;Gid\&quot; value=\&quot;&quot;.$row['Gid'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Status&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;status\&quot; id=\&quot;status\&quot; value=\&quot;&quot;.$row['status'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;Dir&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;Dir\&quot; id=\&quot;Dir\&quot; value=\&quot;&quot;.$row['Dir'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;ULBandwidth&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;ULBandwidth\&quot; id=\&quot;ULBandwidth\&quot; value=\&quot;&quot;.$row['ULBandwidth'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;DLBandwidth&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;DLBandwidth\&quot; id=\&quot;DLBandwidth\&quot; value=\&quot;&quot;.$row['DLBandwidth'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;ipaccess&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;ipaccess\&quot; id=\&quot;ipaccess\&quot; value=\&quot;&quot;.$row['ipaccess'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;QuotaSize&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;QuotaSize\&quot; id=\&quot;QuotaSize\&quot; value=\&quot;&quot;.$row['QuotaSize'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td width=\&quot;100\&quot; align=\&quot;right\&quot;&gt;QuotaFiles&lt;/td&gt;&lt;td width=\&quot;500\&quot;&gt; &lt;input type=\&quot;text\&quot; name=\&quot;QuotaFiles\&quot; id=\&quot;QuotaFiles\&quot; value=\&quot;&quot;.$row['QuotaFiles'].&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>	&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td align=\&quot;center\&quot; colspan=\&quot;2\&quot;&gt;&lt;input type=\&quot;submit\&quot; name=\&quot;submit\&quot; id=\&quot;submit\&quot; value=\&quot;提交\&quot; /&gt; &lt;input type=\&quot;button\&quot; name=\&quot;back\&quot; id=\&quot;back\&quot; onclick=\&quot;window.history.go(-1)\&quot; value=\&quot;返回\&quot; /&gt; &lt;input type=\&quot;hidden\&quot; name=\&quot;action\&quot; id=\&quot;action\&quot; value=\&quot;&quot;.$action.&quot;\&quot; /&gt;&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/form&gt;&quot;;</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_admin_useredit()</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $table,$crypt;</li>
<li>	$handle = func_getdb();</li>
<li>	$query = mysql_query(&quot;SELECT * FROM {$table} WHERE User = '&quot;.$_POST['User'].&quot;'&quot; , $handle);</li>
<li>	$row = mysql_fetch_array( $query, MYSQL_ASSOC );</li>
<li>	if($row==false)</li>
<li>	{</li>
<li>		echo &quot;不存在这个用户……&quot;;</li>
<li>		echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>		exit();</li>
<li>	}</li>
<li>	$query = mysql_query(&quot;UPDATE {$table} SET password = &quot;.$crypt.&quot;('&quot;.$_POST['password'].&quot;') , Uid = {$_POST['Uid']} , Gid = {$_POST['Gid']} , status = '{$_POST['status']}' , Dir = '{$_POST['Dir']}' , ULBandwidth = {$_POST['ULBandwidth']} , DLBandwidth = {$_POST['DLBandwidth']} , ipaccess = '{$_POST['ipaccess']}' , QuotaSize = {$_POST['QuotaSize']} , QuotaFiles = {$_POST['QuotaFiles']} WHERE User = '{$_POST['User']}'&quot;);</li>
<li>	if($query)</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;修改成功，稍后返回……&quot;;</li>
<li>	}</li>
<li>	else</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;修改失败，请仔细检查每个参数……&quot;;</li>
<li>	}</li>
<li>	echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>	exit();</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_admin_useradd()</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $table,$crypt;</li>
<li>	$handle = func_getdb();</li>
<li>	$query = mysql_query(&quot;SELECT * FROM {$table} WHERE User = '&quot;.$_POST['User'].&quot;'&quot; , $handle);</li>
<li>	$row = mysql_fetch_array( $query, MYSQL_ASSOC );</li>
<li>	if($row)</li>
<li>	{</li>
<li>		echo &quot;用户已经存在……&quot;;</li>
<li>		echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>		exit();</li>
<li>	}</li>
<li>	$query = mysql_query(&quot;INSERT INTO {$table} SET password = &quot;.$crypt.&quot;('&quot;.$_POST['password'].&quot;') , Uid = {$_POST['Uid']} , Gid = {$_POST['Gid']} , status = '{$_POST['status']}' , Dir = '{$_POST['Dir']}' , ULBandwidth = {$_POST['ULBandwidth']} , DLBandwidth = {$_POST['DLBandwidth']} , ipaccess = '{$_POST['ipaccess']}' , QuotaSize = {$_POST['QuotaSize']} , QuotaFiles = {$_POST['QuotaFiles']} , User = '{$_POST['User']}' , comment = ''&quot;);</li>
<li>	if($query)</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;添加成功，稍后返回……&quot;;</li>
<li>	}</li>
<li>	else</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;添加失败，请仔细检查每个参数……&quot;;</li>
<li>	}</li>
<li>	echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>	exit();</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_user_del( $user )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;global $table;</li>
<li>	$handle = func_getdb();</li>
<li>	$query = mysql_query(&quot;DELETE FROM {$table} WHERE User = '{$user}'&quot; , $handle);</li>
<li>	if($query)</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;删除成功，稍后返回……&quot;;</li>
<li>	}</li>
<li>	else</li>
<li>	{</li>
<li>	&nbsp; &nbsp; echo &quot;删除失败，稍后返回……&quot;;</li>
<li>	}</li>
<li>	echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=index\&quot;&gt;&quot;;</li>
<li>}</li>
<li>&nbsp;</li>
<li>function func_logout()</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;session_destroy();</li>
<li>	echo &quot;退出成功……&quot;;</li>
<li>	echo &quot;&lt;/meta&gt;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;1; url=&quot;.FILENAME.&quot;?action=userlogin\&quot;&gt;&quot;;</li>
<li>}</li>
<li>?&gt;</li>
<li>&lt;/meta&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/10/php%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%80%e4%b8%aapureftpd%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>故地重游，不一样的感觉</title>
		<link>http://www.sunboyu.cn/2009/07/08/%e6%95%85%e5%9c%b0%e9%87%8d%e6%b8%b8%ef%bc%8c%e4%b8%8d%e4%b8%80%e6%a0%b7%e7%9a%84%e6%84%9f%e8%a7%89.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/08/%e6%95%85%e5%9c%b0%e9%87%8d%e6%b8%b8%ef%bc%8c%e4%b8%8d%e4%b8%80%e6%a0%b7%e7%9a%84%e6%84%9f%e8%a7%89.shtml#comments</comments>
		<pubDate>Wed, 08 Jul 2009 06:10:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[服务]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=846</guid>
		<description><![CDATA[帮一个朋友搞点东西，发现，他居然跟我的老东家合作的。呵呵，如果我在老东家那里继续任职，这个客户就是我的客户。
登陆原来公司的服务器，很有重归故里的感觉，可现在，我成了局外人。
公司做大了，服务反而差了，这另我很失望。一个优秀的公司不断发展，对外的服务也必须提升，这样才能良性的循环。
就算站最后的局外岗，服务做好！
]]></description>
			<content:encoded><![CDATA[<p>帮一个朋友搞点东西，发现，他居然跟我的老东家合作的。呵呵，如果我在老东家那里继续任职，这个客户就是我的客户。</p>
<p>登陆原来公司的服务器，很有重归故里的感觉，可现在，我成了局外人。</p>
<p>公司做大了，服务反而差了，这另我很失望。一个优秀的公司不断发展，对外的服务也必须提升，这样才能良性的循环。</p>
<p>就算站最后的局外岗，服务做好！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/08/%e6%95%85%e5%9c%b0%e9%87%8d%e6%b8%b8%ef%bc%8c%e4%b8%8d%e4%b8%80%e6%a0%b7%e7%9a%84%e6%84%9f%e8%a7%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS解析类-SimplePie</title>
		<link>http://www.sunboyu.cn/2009/07/08/rss%e8%a7%a3%e6%9e%90%e7%b1%bb-simplepie.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/08/rss%e8%a7%a3%e6%9e%90%e7%b1%bb-simplepie.shtml#comments</comments>
		<pubDate>Wed, 08 Jul 2009 01:31:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[simplepie]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=844</guid>
		<description><![CDATA[最近做一个RSS解析调用的东东，研究了rss2.0的协议，发现自己去写解析程序会要命的，于是找了个开源的php rss解析类，发现完全可以满足需求，故推荐给大家。虽然有一些bug，但是可以绕过，不影响主要字段显示，先这么用着。底下写了个demo：
$this-&#62;load(&#34;SimplePie&#34;,&#34;http://www.sunboyu.cn/feed&#34;);&#160; &#160;#自己写的框架，load是加载类的方法，可根据自己的情况进行修改 new Simplepie()
$this-&#62;SimplePie-&#62;strip_comments(true);
$this-&#62;SimplePie-&#62;enable_xml_dump( false );
$this-&#62;SimplePie-&#62;init();
$this-&#62;SimplePie-&#62;handle_content_type();
&#160;
foreach( $r as $item ):
&#160;&#160; &#160;echo &#34;&#60;font color=\&#34;red\&#34;&#62;标题&#60;/font&#62;&#160; &#34;.$item-&#62;get_title();
&#160;&#160; &#160;echo &#34;&#60;br /&#62;&#34;;
&#160;&#160; &#160;echo &#34;&#60;font color=\&#34;red\&#34;&#62;链接&#60;/font&#62;&#160; &#34;.$item-&#62;get_link();
&#160;&#160; &#160;echo &#34;&#60;br /&#62;&#34;;
&#160;&#160; &#160;echo &#34;&#60;font color=\&#34;red\&#34;&#62;链接&#60;/font&#62;&#160; &#34;.$item-&#62;get_id();
&#160;&#160; &#160;echo &#34;&#60;br /&#62;&#34;;
&#160;&#160; &#160;echo &#34;&#60;font color=\&#34;red\&#34;&#62;更新时间&#60;/font&#62;&#160; &#34;.strtotime($item-&#62;get_date());
&#160;&#160; &#160;echo &#34;&#60;br /&#62;&#34;;
&#160;&#160; &#160;$authors = $item-&#62;get_authors();
&#160;&#160; &#160;echo &#34;&#60;font color=\&#34;red\&#34;&#62;作者&#60;/font&#62;&#160; &#34;.$authors[0]-&#62;name;
&#160;&#160; &#160;echo &#34;&#60;br /&#62;&#34;;
&#160;&#160; &#160;echo &#34;&#60;font color=\&#34;red\&#34;&#62;描述&#60;/font&#62;&#160; &#34;.$item-&#62;get_description();
&#160;&#160; &#160;echo &#34;&#60;br [...]]]></description>
			<content:encoded><![CDATA[<p>最近做一个RSS解析调用的东东，研究了rss2.0的协议，发现自己去写解析程序会要命的，于是找了个开源的php rss解析类，发现完全可以满足需求，故推荐给大家。虽然有一些bug，但是可以绕过，不影响主要字段显示，先这么用着。底下写了个demo：</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">$this-&gt;load(&quot;SimplePie&quot;,&quot;http://www.sunboyu.cn/feed&quot;);&nbsp; &nbsp;#自己写的框架，load是加载类的方法，可根据自己的情况进行修改 new Simplepie()</li>
<li>$this-&gt;SimplePie-&gt;strip_comments(true);</li>
<li>$this-&gt;SimplePie-&gt;enable_xml_dump( false );</li>
<li>$this-&gt;SimplePie-&gt;init();</li>
<li>$this-&gt;SimplePie-&gt;handle_content_type();</li>
<li>&nbsp;</li>
<li>foreach( $r as $item ):</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;font color=\&quot;red\&quot;&gt;标题&lt;/font&gt;&nbsp; &quot;.$item-&gt;get_title();</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;font color=\&quot;red\&quot;&gt;链接&lt;/font&gt;&nbsp; &quot;.$item-&gt;get_link();</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;font color=\&quot;red\&quot;&gt;链接&lt;/font&gt;&nbsp; &quot;.$item-&gt;get_id();</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;font color=\&quot;red\&quot;&gt;更新时间&lt;/font&gt;&nbsp; &quot;.strtotime($item-&gt;get_date());</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;$authors = $item-&gt;get_authors();</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;font color=\&quot;red\&quot;&gt;作者&lt;/font&gt;&nbsp; &quot;.$authors[0]-&gt;name;</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;font color=\&quot;red\&quot;&gt;描述&lt;/font&gt;&nbsp; &quot;.$item-&gt;get_description();</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;echo $item-&gt;get_local_date();</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;font color=\&quot;red\&quot;&gt;正文&lt;/font&gt;&nbsp; &quot;.$item-&gt;get_content();</li>
<li>&nbsp;&nbsp; &nbsp;echo &quot;&lt;br /&gt;&lt;br /&gt;&quot;;</li>
<li>foreachend;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/08/rss%e8%a7%a3%e6%9e%90%e7%b1%bb-simplepie.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>漂移的下场</title>
		<link>http://www.sunboyu.cn/2009/07/01/%e6%bc%82%e7%a7%bb%e7%9a%84%e4%b8%8b%e5%9c%ba.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/01/%e6%bc%82%e7%a7%bb%e7%9a%84%e4%b8%8b%e5%9c%ba.shtml#comments</comments>
		<pubDate>Wed, 01 Jul 2009 03:58:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[漂移]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=837</guid>
		<description><![CDATA[下班推车，突然发现后轮撒气了，以为是有人搞破坏。
去修车师傅那里一看，后胎有个小孔，应该是我骑行下台阶造，局部张力骤大造成。
顺便检查了一下外胎，发现伤痕累累，漂移所致。
玩车真是个费钱的营生。

车胎的赤坏了好多

前胎还好

后胎，基本被磨平了
]]></description>
			<content:encoded><![CDATA[<p>下班推车，突然发现后轮撒气了，以为是有人搞破坏。</p>
<p>去修车师傅那里一看，后胎有个小孔，应该是我骑行下台阶造，局部张力骤大造成。</p>
<p>顺便检查了一下外胎，发现伤痕累累，漂移所致。</p>
<p>玩车真是个费钱的营生。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/07/1.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/07/1.jpg" alt="1" title="1" width="800" height="705" class="aligncenter size-full wp-image-838" /></a><br />
车胎的赤坏了好多</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/07/2.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/07/2.jpg" alt="2" title="2" width="800" height="411" class="aligncenter size-full wp-image-839" /></a><br />
前胎还好</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/07/3.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/07/3.jpg" alt="3" title="3" width="800" height="426" class="aligncenter size-full wp-image-840" /></a><br />
后胎，基本被磨平了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/01/%e6%bc%82%e7%a7%bb%e7%9a%84%e4%b8%8b%e5%9c%ba.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网游时代的单机霸王</title>
		<link>http://www.sunboyu.cn/2009/07/01/%e7%bd%91%e6%b8%b8%e6%97%b6%e4%bb%a3%e7%9a%84%e5%8d%95%e6%9c%ba%e9%9c%b8%e7%8e%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/01/%e7%bd%91%e6%b8%b8%e6%97%b6%e4%bb%a3%e7%9a%84%e5%8d%95%e6%9c%ba%e9%9c%b8%e7%8e%8b.shtml#comments</comments>
		<pubDate>Tue, 30 Jun 2009 21:22:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[植物大战僵尸]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=835</guid>
		<description><![CDATA[写这个标题有点标题党了，但除了红警之外，还没有哪个即时战略游戏让我如此痴迷。
《植物大战僵尸》是宝开公司出品的一款单机小游戏，游戏压缩包才59.9M  http://www.verycd.com/topics/2745208/  的确是一款不大的游戏。
麻雀虽小，五脏俱全，游戏集成了战略对抗、卡片、升级、金钱、mini小游戏、多种场景于一体，多种搞笑的植物武器和很Q的僵尸造型和动作，使简单的情节变得如此生动。
游戏在2009年五月五日出品，但国内在之前似乎已经流传预览版。游戏迅速的推广，给当今网游界很大警示：什么样的游戏才是用户最喜欢的。
今天我又在挂机，单机游戏挂机，很好玩吧。因为我得让我的蜗牛在菜园子里不断收获金币，来购买更厉害的武器。
PS：
最近玩这个游戏，学习时间自然减少，不过已经开始flex的学习。
顺便改造一下我的框架，来进行新的项目。
]]></description>
			<content:encoded><![CDATA[<p>写这个标题有点标题党了，但除了红警之外，还没有哪个即时战略游戏让我如此痴迷。</p>
<p>《植物大战僵尸》是<a href="http://www.popcap.com/">宝开公司</a>出品的一款单机小游戏，游戏压缩包才59.9M  http://www.verycd.com/topics/2745208/  的确是一款不大的游戏。</p>
<p>麻雀虽小，五脏俱全，游戏集成了战略对抗、卡片、升级、金钱、mini小游戏、多种场景于一体，多种搞笑的植物武器和很Q的僵尸造型和动作，使简单的情节变得如此生动。</p>
<p>游戏在2009年五月五日出品，但国内在之前似乎已经流传预览版。游戏迅速的推广，给当今网游界很大警示：什么样的游戏才是用户最喜欢的。</p>
<p>今天我又在挂机，单机游戏挂机，很好玩吧。因为我得让我的蜗牛在菜园子里不断收获金币，来购买更厉害的武器。</p>
<p>PS：</p>
<p>最近玩这个游戏，学习时间自然减少，不过已经开始flex的学习。</p>
<p>顺便改造一下我的框架，来进行新的项目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/01/%e7%bd%91%e6%b8%b8%e6%97%b6%e4%bb%a3%e7%9a%84%e5%8d%95%e6%9c%ba%e9%9c%b8%e7%8e%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML1.5来了</title>
		<link>http://www.sunboyu.cn/2009/07/01/html15%e6%9d%a5%e4%ba%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/01/html15%e6%9d%a5%e4%ba%86.shtml#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:06:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[html1.5]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=832</guid>
		<description><![CDATA[今天下载了firefox3.5，其中惊现HTML1.5标签。
看来真正的富媒体时代到来，html有赶超flex的势头？
&#60;video id=&#34;video&#34; src=&#34;http://www.dailymotion.com/cdn/OGG-320x240/video/x9euyb?key=a99e7056808342ad0868b4decfe811c814044ec&#34;&#62;&#60;/video&#62;
]]></description>
			<content:encoded><![CDATA[<p>今天下载了firefox3.5，其中惊现HTML1.5标签。</p>
<p>看来真正的富媒体时代到来，html有赶超flex的势头？</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">&lt;video id=&quot;video&quot; src=&quot;http://www.dailymotion.com/cdn/OGG-320x240/video/x9euyb?key=a99e7056808342ad0868b4decfe811c814044ec&quot;&gt;&lt;/video&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/01/html15%e6%9d%a5%e4%ba%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我终于堕落了，开始搞前端技术</title>
		<link>http://www.sunboyu.cn/2009/06/29/%e6%88%91%e7%bb%88%e4%ba%8e%e5%a0%95%e8%90%bd%e4%ba%86%ef%bc%8c%e5%bc%80%e5%a7%8b%e6%90%9e%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/29/%e6%88%91%e7%bb%88%e4%ba%8e%e5%a0%95%e8%90%bd%e4%ba%86%ef%bc%8c%e5%bc%80%e5%a7%8b%e6%90%9e%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af.shtml#comments</comments>
		<pubDate>Sun, 28 Jun 2009 20:31:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=828</guid>
		<description><![CDATA[
好久没买书了，周末烈日炎炎，购书一本。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2009/06/flex-3-cookbook.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/06/flex-3-cookbook.jpg" alt="flex-3-cookbook" title="flex-3-cookbook" width="240" height="240" class="aligncenter size-full wp-image-829" /></a></p>
<p>好久没买书了，周末烈日炎炎，购书一本。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/29/%e6%88%91%e7%bb%88%e4%ba%8e%e5%a0%95%e8%90%bd%e4%ba%86%ef%bc%8c%e5%bc%80%e5%a7%8b%e6%90%9e%e5%89%8d%e7%ab%af%e6%8a%80%e6%9c%af.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>我为什么总反对用微软的东西做企业级应用</title>
		<link>http://www.sunboyu.cn/2009/06/26/%e6%88%91%e4%b8%ba%e4%bb%80%e4%b9%88%e6%80%bb%e5%8f%8d%e5%af%b9%e7%94%a8%e5%be%ae%e8%bd%af%e7%9a%84%e4%b8%9c%e8%a5%bf%e5%81%9a%e4%bc%81%e4%b8%9a%e7%ba%a7%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/26/%e6%88%91%e4%b8%ba%e4%bb%80%e4%b9%88%e6%80%bb%e5%8f%8d%e5%af%b9%e7%94%a8%e5%be%ae%e8%bd%af%e7%9a%84%e4%b8%9c%e8%a5%bf%e5%81%9a%e4%bc%81%e4%b8%9a%e7%ba%a7%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Fri, 26 Jun 2009 05:01:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[微软]]></category>
		<category><![CDATA[计算]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=819</guid>
		<description><![CDATA[其实，我反对微软，只是反对他的不开源，蓝屏，其应用在中小企业项目中的性价比。
自从SAP里做开发的一个同学给我做了一个很简单的演示，让我彻底明白微软为什么围绕中小企业，甚至中小企业的产品都做不好。

简单目算一下，你有何感想。
大家在任意一个版本的excel上测试一下。这只是一个最简单的例子，如果你用.NET框架去做产品，可想而知，你的风险有多大。
再看google

精确度提升一个小数点，但这种处理差强人意，从数学上，33.3×3依然不等于百分之百。
]]></description>
			<content:encoded><![CDATA[<p>其实，我反对微软，只是反对他的不开源，蓝屏，其应用在中小企业项目中的性价比。</p>
<p>自从SAP里做开发的一个同学给我做了一个很简单的演示，让我彻底明白微软为什么围绕中小企业，甚至中小企业的产品都做不好。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/06/e5beaee8bdaf.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/06/e5beaee8bdaf.jpg" alt="e5beaee8bdaf" title="e5beaee8bdaf" width="905" height="640" class="aligncenter size-full wp-image-820" /></a></p>
<p>简单目算一下，你有何感想。</p>
<p>大家在任意一个版本的excel上测试一下。这只是一个最简单的例子，如果你用.NET框架去做产品，可想而知，你的风险有多大。</p>
<p>再看google</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/06/e69caae591bde5908d-1.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/06/e69caae591bde5908d-1.jpg" alt="e69caae591bde5908d-1" title="e69caae591bde5908d-1" width="471" height="418" class="aligncenter size-full wp-image-824" /></a></p>
<p>精确度提升一个小数点，但这种处理差强人意，从数学上，33.3×3依然不等于百分之百。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/26/%e6%88%91%e4%b8%ba%e4%bb%80%e4%b9%88%e6%80%bb%e5%8f%8d%e5%af%b9%e7%94%a8%e5%be%ae%e8%bd%af%e7%9a%84%e4%b8%9c%e8%a5%bf%e5%81%9a%e4%bc%81%e4%b8%9a%e7%ba%a7%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>初创公司的运维应该怎么做（lamp架构）2</title>
		<link>http://www.sunboyu.cn/2009/06/24/%e5%88%9d%e5%88%9b%e5%85%ac%e5%8f%b8%e7%9a%84%e8%bf%90%e7%bb%b4%e5%ba%94%e8%af%a5%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%88lamp%e6%9e%b6%e6%9e%84%ef%bc%892.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/24/%e5%88%9d%e5%88%9b%e5%85%ac%e5%8f%b8%e7%9a%84%e8%bf%90%e7%bb%b4%e5%ba%94%e8%af%a5%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%88lamp%e6%9e%b6%e6%9e%84%ef%bc%892.shtml#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:08:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[初创公司]]></category>
		<category><![CDATA[运维]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=815</guid>
		<description><![CDATA[今天活进度不错，闲下来再扯几句，接上篇： 初创公司的运维应该怎么做（lamp架构）
事情总得发展，一不小心就会发展到两台以上的服务器。
这时候，如何部署就是问题了，既要节约硬件带宽资源，省钱，又要充分发挥我们硬件的特性。
1、数据库，总得做个热备吧，主从复制，两个服务器就足够，当然更多的话，你可以多个从数据库。这时候主服务器挂了，备份的数据库可以立马变成主数据库进行工作，而主数据库又变成从的，这样达到无缝的切换。数据库多了，写压力集中在主数据库，而从数据库就可以分担读的压力。一般系统读压力大大高于写压力（特殊的系统除外），这样我们把其他服务器的CPU还能合理利用上。
2、如果但是数据库分到其他服务器上，CPU看似是充分利用了，带宽也得去利用。mysql同步走内网流量，自己用switch相连，而其他服务器同样可以分担http的负载。这时候，我们要考虑如何把原来独立服务器的http流量分布到其他新服务器上。直接做个nfs，把附件图片等分布到新服务器上是个最简单最懒的方式，也是短期最有效的，因为我们可以更换一个变量名就把url指向另外的服务器。
3、分频道也是办法之一，我们把一个大网站拆成几个小网站，分散到几个服务器，包括代码、数据、数据库，不过这种方法对小网站是费力不讨好，分开了，还整合不？分频道之外，还可以分功能，可以把email单独拿出来，也可以把一些消耗资源的功能单独拿出来。
4、最合理的，还是要综合考虑当前的服务，压力所在。把CPU、存储，带宽资源需求的模块都列出来，然后平均分布，再寻找平均分配资源的部署方式，这样是最优化的，但也对开发人员提出了更高的要求。程序代码的模块化、可零活配置、可迁移、可扩展是进行优化的前提。所以，在网站建设初期，最好考虑如何去扩展站点。
－－－－－－－－－－－－－－－－－－－－－
貌似运维跟程序又掺合到一起了，当然，好的项目是需要各部门合作的，团队力量总是大的，所谓：瘦死的骆驼比狗大。
]]></description>
			<content:encoded><![CDATA[<p>今天活进度不错，闲下来再扯几句，接上篇： <a href="http://www.sunboyu.cn/2009/06/22/%E5%88%9D%E5%88%9B%E5%85%AC%E5%8F%B8%E7%9A%84%E8%BF%90%E7%BB%B4%E5%BA%94%E8%AF%A5%E6%80%8E%E4%B9%88%E5%81%9A%EF%BC%88lamp%E6%9E%B6%E6%9E%84%EF%BC%89.shtml">初创公司的运维应该怎么做（lamp架构）</a></p>
<p>事情总得发展，一不小心就会发展到两台以上的服务器。</p>
<p>这时候，如何部署就是问题了，既要节约硬件带宽资源，省钱，又要充分发挥我们硬件的特性。</p>
<p>1、数据库，总得做个热备吧，主从复制，两个服务器就足够，当然更多的话，你可以多个从数据库。这时候主服务器挂了，备份的数据库可以立马变成主数据库进行工作，而主数据库又变成从的，这样达到无缝的切换。数据库多了，写压力集中在主数据库，而从数据库就可以分担读的压力。一般系统读压力大大高于写压力（特殊的系统除外），这样我们把其他服务器的CPU还能合理利用上。</p>
<p>2、如果但是数据库分到其他服务器上，CPU看似是充分利用了，带宽也得去利用。mysql同步走内网流量，自己用switch相连，而其他服务器同样可以分担http的负载。这时候，我们要考虑如何把原来独立服务器的http流量分布到其他新服务器上。直接做个nfs，把附件图片等分布到新服务器上是个最简单最懒的方式，也是短期最有效的，因为我们可以更换一个变量名就把url指向另外的服务器。</p>
<p>3、分频道也是办法之一，我们把一个大网站拆成几个小网站，分散到几个服务器，包括代码、数据、数据库，不过这种方法对小网站是费力不讨好，分开了，还整合不？分频道之外，还可以分功能，可以把email单独拿出来，也可以把一些消耗资源的功能单独拿出来。</p>
<p>4、最合理的，还是要综合考虑当前的服务，压力所在。把CPU、存储，带宽资源需求的模块都列出来，然后平均分布，再寻找平均分配资源的部署方式，这样是最优化的，但也对开发人员提出了更高的要求。程序代码的模块化、可零活配置、可迁移、可扩展是进行优化的前提。所以，在网站建设初期，最好考虑如何去扩展站点。</p>
<p>－－－－－－－－－－－－－－－－－－－－－</p>
<p>貌似运维跟程序又掺合到一起了，当然，好的项目是需要各部门合作的，团队力量总是大的，所谓：瘦死的骆驼比狗大。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/24/%e5%88%9d%e5%88%9b%e5%85%ac%e5%8f%b8%e7%9a%84%e8%bf%90%e7%bb%b4%e5%ba%94%e8%af%a5%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%88lamp%e6%9e%b6%e6%9e%84%ef%bc%892.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>初创公司的运维应该怎么做（lamp架构）</title>
		<link>http://www.sunboyu.cn/2009/06/22/%e5%88%9d%e5%88%9b%e5%85%ac%e5%8f%b8%e7%9a%84%e8%bf%90%e7%bb%b4%e5%ba%94%e8%af%a5%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%88lamp%e6%9e%b6%e6%9e%84%ef%bc%89.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/22/%e5%88%9d%e5%88%9b%e5%85%ac%e5%8f%b8%e7%9a%84%e8%bf%90%e7%bb%b4%e5%ba%94%e8%af%a5%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%88lamp%e6%9e%b6%e6%9e%84%ef%bc%89.shtml#comments</comments>
		<pubDate>Mon, 22 Jun 2009 05:23:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[初创公司]]></category>
		<category><![CDATA[运维]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=808</guid>
		<description><![CDATA[这里说的初创公司，也包括一些小型的网络公司，运维是很头疼的事情。
初创公司，包括一些现金有问题的公司，资金紧张，买不起大量的设备，用不起高级的运维人员，财政捉襟见肘。
这种公司一个很重要的问题，就是要充分利用现有的资源，把每一分钱的效益都充分榨出来。
从技术上讲，大部分瓶颈都发生在带宽上，而大部分的灾难都发生在数据丢失上，底下，从以下两个问题来描述如何去搭建高效安全的小企业级应用系统。
单台服务器方案：
这样的公司实在是穷疯了，只有一台服务器，一个百兆共享。
配置：linux nginx mysql php 这是标配。单台服务器就别考虑负载均衡之类的东西了，只要保证http服务够快，充分去利用idc的带宽，跑高跑满是前期要做的。
如果只是网站，没有下载之类的，nginx是最佳的选择（做虚拟主机安全性太差）。这个时候，优化好mysql，搭配nginx优秀的性能，一般瓶颈优先出现在带宽上。
不建议把带宽跑得很满，因为idc一般都会在交换上限制流量，所以，不要等到相应很迟缓的时候再考虑增加带宽，如果带宽实在闲着没用，开个ftp，给员工做文档备份，装个邮件服务器，解决了内部沟通的问题。
数据安全，是一定要做的。mysql前期可以每天全备份，找个本地的机器每天下载备份，虽然浪费点人工，但不失为最安全的备份。如果本地都能搞丢……就拿块硬盘自己拍自己。
网站程序建议用svn版本控制发布，这样，就有了源码、svn库、本地开发三个以上的备份。而网站的附件，在程序编写前就得考虑增量备份的方式，合理设计存储结构，每天增量备份（因为附件多的话，每天全备压力会大）。而每天的增量，设计一个全备，一旦出现数据问题，有前边的全备，当日的增量，这样会把损风险和失降低到最低。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
临时撰写，想哪里写哪里。希望有经验的一起交流。
]]></description>
			<content:encoded><![CDATA[<p>这里说的初创公司，也包括一些小型的网络公司，运维是很头疼的事情。</p>
<p>初创公司，包括一些现金有问题的公司，资金紧张，买不起大量的设备，用不起高级的运维人员，财政捉襟见肘。</p>
<p>这种公司一个很重要的问题，就是要充分利用现有的资源，把每一分钱的效益都充分榨出来。</p>
<p>从技术上讲，大部分瓶颈都发生在带宽上，而大部分的灾难都发生在数据丢失上，底下，从以下两个问题来描述如何去搭建高效安全的小企业级应用系统。</p>
<p>单台服务器方案：</p>
<p>这样的公司实在是穷疯了，只有一台服务器，一个百兆共享。</p>
<p>配置：linux nginx mysql php 这是标配。单台服务器就别考虑负载均衡之类的东西了，只要保证http服务够快，充分去利用idc的带宽，跑高跑满是前期要做的。</p>
<p>如果只是网站，没有下载之类的，nginx是最佳的选择（做虚拟主机安全性太差）。这个时候，优化好mysql，搭配nginx优秀的性能，一般瓶颈优先出现在带宽上。</p>
<p>不建议把带宽跑得很满，因为idc一般都会在交换上限制流量，所以，不要等到相应很迟缓的时候再考虑增加带宽，如果带宽实在闲着没用，开个ftp，给员工做文档备份，装个邮件服务器，解决了内部沟通的问题。</p>
<p>数据安全，是一定要做的。mysql前期可以每天全备份，找个本地的机器每天下载备份，虽然浪费点人工，但不失为最安全的备份。如果本地都能搞丢……就拿块硬盘自己拍自己。</p>
<p>网站程序建议用svn版本控制发布，这样，就有了源码、svn库、本地开发三个以上的备份。而网站的附件，在程序编写前就得考虑增量备份的方式，合理设计存储结构，每天增量备份（因为附件多的话，每天全备压力会大）。而每天的增量，设计一个全备，一旦出现数据问题，有前边的全备，当日的增量，这样会把损风险和失降低到最低。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>临时撰写，想哪里写哪里。希望有经验的一起交流。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/22/%e5%88%9d%e5%88%9b%e5%85%ac%e5%8f%b8%e7%9a%84%e8%bf%90%e7%bb%b4%e5%ba%94%e8%af%a5%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%88lamp%e6%9e%b6%e6%9e%84%ef%bc%89.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>一只歪吐舌头的狗</title>
		<link>http://www.sunboyu.cn/2009/06/22/%e4%b8%80%e5%8f%aa%e6%ad%aa%e5%90%90%e8%88%8c%e5%a4%b4%e7%9a%84%e7%8b%97.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/22/%e4%b8%80%e5%8f%aa%e6%ad%aa%e5%90%90%e8%88%8c%e5%a4%b4%e7%9a%84%e7%8b%97.shtml#comments</comments>
		<pubDate>Mon, 22 Jun 2009 04:52:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[吐舌头]]></category>
		<category><![CDATA[狗]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=795</guid>
		<description><![CDATA[

美女：歪吐舌头斜瞪眼不是狗的专利！！！

长颈鹿：我也会！

楼上，人更会的！
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2009/06/img_5100.jpg"><img class="size-large wp-image-796 alignleft" title="img_5100" src="http://www.sunboyu.cn/upfiles/2009/06/img_5100-1024x821.jpg" alt="img_5100" width="614" height="493" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/06/1.jpg"><img class="alignleft size-full wp-image-797" title="1" src="http://www.sunboyu.cn/upfiles/2009/06/1.jpg" alt="1" width="411" height="614" /></a></p>
<p style="text-align: center;">美女：歪吐舌头斜瞪眼不是狗的专利！！！</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/06/2.jpg"><img class="alignleftsize-full wp-image-798" title="2" src="http://www.sunboyu.cn/upfiles/2009/06/2.jpg" alt="2" width="413" height="550" /></a></p>
<p style="text-align: center;">长颈鹿：我也会！</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/06/3.jpg"><img class="alignleft size-full wp-image-799" title="3" src="http://www.sunboyu.cn/upfiles/2009/06/3.jpg" alt="3" width="427" height="327" /></a></p>
<p style="text-align: center;">楼上，人更会的！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/22/%e4%b8%80%e5%8f%aa%e6%ad%aa%e5%90%90%e8%88%8c%e5%a4%b4%e7%9a%84%e7%8b%97.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我是跳票王</title>
		<link>http://www.sunboyu.cn/2009/06/15/%e6%88%91%e6%98%af%e8%b7%b3%e7%a5%a8%e7%8e%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/15/%e6%88%91%e6%98%af%e8%b7%b3%e7%a5%a8%e7%8e%8b.shtml#comments</comments>
		<pubDate>Mon, 15 Jun 2009 13:38:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[跳票]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=789</guid>
		<description><![CDATA[终于又发现自己这个毛病了。
做事情还得靠队伍，谁想搭伙做点东西？
我太需要团队了，离开团队的写作，任何作品都显得那么沧桑……
]]></description>
			<content:encoded><![CDATA[<p>终于又发现自己这个毛病了。</p>
<p>做事情还得靠队伍，谁想搭伙做点东西？</p>
<p>我太需要团队了，离开团队的写作，任何作品都显得那么沧桑……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/15/%e6%88%91%e6%98%af%e8%b7%b3%e7%a5%a8%e7%8e%8b.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>大事件－五道口的双层彩虹</title>
		<link>http://www.sunboyu.cn/2009/06/14/%e5%a4%a7%e4%ba%8b%e4%bb%b6%ef%bc%8d%e4%ba%94%e9%81%93%e5%8f%a3%e7%9a%84%e5%8f%8c%e5%b1%82%e5%bd%a9%e8%99%b9.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/14/%e5%a4%a7%e4%ba%8b%e4%bb%b6%ef%bc%8d%e4%ba%94%e9%81%93%e5%8f%a3%e7%9a%84%e5%8f%8c%e5%b1%82%e5%bd%a9%e8%99%b9.shtml#comments</comments>
		<pubDate>Sun, 14 Jun 2009 15:10:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[五道口]]></category>
		<category><![CDATA[彩虹]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=787</guid>
		<description><![CDATA[<table id="px4" title="5dk" border="0" cellspacing="0" cellpadding="0"><tr>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3511/3854575702_597afa8862_m.jpg" title="IMG_5035" alt="IMG_5035"><img src="http://farm4.static.flickr.com/3511/3854575702_597afa8862_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854575702_597afa8862_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854575702_597afa8862_m.jpg%22%2C%22a%22%3A%22IMG_5035%22%7D" alt="IMG_5035"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm3.static.flickr.com/2606/3854575694_70b2dbe4da_m.jpg" title="IMG_5034" alt="IMG_5034"><img src="http://farm3.static.flickr.com/2606/3854575694_70b2dbe4da_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2606%2F3854575694_70b2dbe4da_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2606%2F3854575694_70b2dbe4da_m.jpg%22%2C%22a%22%3A%22IMG_5034%22%7D" alt="IMG_5034"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3422/3854575692_95601ebf9a_m.jpg" title="IMG_5033" alt="IMG_5033"><img src="http://farm4.static.flickr.com/3422/3854575692_95601ebf9a_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3422%2F3854575692_95601ebf9a_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3422%2F3854575692_95601ebf9a_m.jpg%22%2C%22a%22%3A%22IMG_5033%22%7D" alt="IMG_5033"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3508/3854575684_6030fbb8ba_m.jpg" title="IMG_5032" alt="IMG_5032"><img src="http://farm4.static.flickr.com/3508/3854575684_6030fbb8ba_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3508%2F3854575684_6030fbb8ba_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3508%2F3854575684_6030fbb8ba_m.jpg%22%2C%22a%22%3A%22IMG_5032%22%7D" alt="IMG_5032"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3545/3854575682_af0c0a159f_m.jpg" title="IMG_5031" alt="IMG_5031"><img src="http://farm4.static.flickr.com/3545/3854575682_af0c0a159f_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3545%2F3854575682_af0c0a159f_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3545%2F3854575682_af0c0a159f_m.jpg%22%2C%22a%22%3A%22IMG_5031%22%7D" alt="IMG_5031"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3461/3854575672_45b48e177a_m.jpg" title="IMG_5030" alt="IMG_5030"><img src="http://farm4.static.flickr.com/3461/3854575672_45b48e177a_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3461%2F3854575672_45b48e177a_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3461%2F3854575672_45b48e177a_m.jpg%22%2C%22a%22%3A%22IMG_5030%22%7D" alt="IMG_5030"/></a></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table><link id="px_editstylesheet" type="text/css" href="http://www.sunboyu.cn/wp-content/plugins/photoxhibit/photoxhibit.php?option=css&gid=4&1283481334" rel="stylesheet"/>
]]></description>
			<content:encoded><![CDATA[<table id="px4" title="5dk" border="0" cellspacing="0" cellpadding="0"><tr>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3511/3854575702_597afa8862_m.jpg" title="IMG_5035" alt="IMG_5035"><img src="http://farm4.static.flickr.com/3511/3854575702_597afa8862_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854575702_597afa8862_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3511%2F3854575702_597afa8862_m.jpg%22%2C%22a%22%3A%22IMG_5035%22%7D" alt="IMG_5035"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm3.static.flickr.com/2606/3854575694_70b2dbe4da_m.jpg" title="IMG_5034" alt="IMG_5034"><img src="http://farm3.static.flickr.com/2606/3854575694_70b2dbe4da_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2606%2F3854575694_70b2dbe4da_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm3.static.flickr.com%2F2606%2F3854575694_70b2dbe4da_m.jpg%22%2C%22a%22%3A%22IMG_5034%22%7D" alt="IMG_5034"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3422/3854575692_95601ebf9a_m.jpg" title="IMG_5033" alt="IMG_5033"><img src="http://farm4.static.flickr.com/3422/3854575692_95601ebf9a_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3422%2F3854575692_95601ebf9a_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3422%2F3854575692_95601ebf9a_m.jpg%22%2C%22a%22%3A%22IMG_5033%22%7D" alt="IMG_5033"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3508/3854575684_6030fbb8ba_m.jpg" title="IMG_5032" alt="IMG_5032"><img src="http://farm4.static.flickr.com/3508/3854575684_6030fbb8ba_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3508%2F3854575684_6030fbb8ba_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3508%2F3854575684_6030fbb8ba_m.jpg%22%2C%22a%22%3A%22IMG_5032%22%7D" alt="IMG_5032"/></a></td>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3545/3854575682_af0c0a159f_m.jpg" title="IMG_5031" alt="IMG_5031"><img src="http://farm4.static.flickr.com/3545/3854575682_af0c0a159f_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3545%2F3854575682_af0c0a159f_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3545%2F3854575682_af0c0a159f_m.jpg%22%2C%22a%22%3A%22IMG_5031%22%7D" alt="IMG_5031"/></a></td>
</tr>
<tr>
<td>
<a class="lightBox" rel="g4" href="http://farm4.static.flickr.com/3461/3854575672_45b48e177a_m.jpg" title="IMG_5030" alt="IMG_5030"><img src="http://farm4.static.flickr.com/3461/3854575672_45b48e177a_s.jpg" metadata="%7B%22t%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3461%2F3854575672_45b48e177a_s.jpg%22%2C%22f%22%3A%22http%3A%2F%2Ffarm4.static.flickr.com%2F3461%2F3854575672_45b48e177a_m.jpg%22%2C%22a%22%3A%22IMG_5030%22%7D" alt="IMG_5030"/></a></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table><link id="px_editstylesheet" type="text/css" href="http://www.sunboyu.cn/wp-content/plugins/photoxhibit/photoxhibit.php?option=css&gid=4&1283481334" rel="stylesheet"/><p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/14/%e5%a4%a7%e4%ba%8b%e4%bb%b6%ef%bc%8d%e4%ba%94%e9%81%93%e5%8f%a3%e7%9a%84%e5%8f%8c%e5%b1%82%e5%bd%a9%e8%99%b9.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>针对尚趣网（vsuch.com）的简单优化</title>
		<link>http://www.sunboyu.cn/2009/06/12/%e9%92%88%e5%af%b9%e5%b0%9a%e8%b6%a3%e7%bd%91%ef%bc%88vsuchcom%ef%bc%89%e7%9a%84%e7%ae%80%e5%8d%95%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/12/%e9%92%88%e5%af%b9%e5%b0%9a%e8%b6%a3%e7%bd%91%ef%bc%88vsuchcom%ef%bc%89%e7%9a%84%e7%ae%80%e5%8d%95%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Fri, 12 Jun 2009 07:42:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[vsuch]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=782</guid>
		<description><![CDATA[最近，一友找我去优化apache，了解后，是vsuch.com网站的问题。
vsuch网站使用lamp＋windows混合平台（汗），追究历史，原来网站用.net编写，后用php重构了整个网站。
整改前 Mysql运行在linux机器上，php运行在windows平台上，中间局域网方式连接。
网站日访问量不小，alexa排名6800，windows平台明显抗不住，经常莫名其妙的问题。（题外话：我最早维护的服务器也是windows，apache在上边很不稳定）
了解后，我感觉一台服务器就足矣，放弃了apache的方案，安装了nginx＋php，数据库依然沿用原来的。
整改后，linux负载稍稍升高，mysql负载不变，http的负载在nginx下并没有表现出多高。顺利完成了迁移。
后公司又开通了cdn服务（有钱），速度有了很明显的提升。
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
根据其公司目前的技术结构，我提出了很多优化和整改的想法，希望每个创业网站都能走好。
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
singlekui@gmail.com: 孙. 谢谢你帮忙了. 我拿100元给买包烟抽抽. 
 我: ……
 singlekui@gmail.com: 可以吗.也别介意呀.
 我: 算了
  就当玩了
 singlekui@gmail.com: 啊..
  说了给你点报酬的呢.
9:55 我: 就当玩了
做技术的，很多时候要学会一笑了之。
]]></description>
			<content:encoded><![CDATA[<p>最近，一友找我去优化apache，了解后，是vsuch.com网站的问题。</p>
<p>vsuch网站使用lamp＋windows混合平台（汗），追究历史，原来网站用.net编写，后用php重构了整个网站。</p>
<p>整改前 Mysql运行在linux机器上，php运行在windows平台上，中间局域网方式连接。</p>
<p>网站日访问量不小，alexa排名6800，windows平台明显抗不住，经常莫名其妙的问题。（题外话：我最早维护的服务器也是windows，apache在上边很不稳定）</p>
<p>了解后，我感觉一台服务器就足矣，放弃了apache的方案，安装了nginx＋php，数据库依然沿用原来的。</p>
<p>整改后，linux负载稍稍升高，mysql负载不变，http的负载在nginx下并没有表现出多高。顺利完成了迁移。</p>
<p>后公司又开通了cdn服务（有钱），速度有了很明显的提升。</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>根据其公司目前的技术结构，我提出了很多优化和整改的想法，希望每个创业网站都能走好。</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>singlekui@gmail.com: 孙. 谢谢你帮忙了. 我拿100元给买包烟抽抽. <img src='http://www.sunboyu.cn/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
 我: ……<br />
 singlekui@gmail.com: 可以吗.也别介意呀.<br />
 我: 算了<br />
  就当玩了<br />
 singlekui@gmail.com: 啊..<br />
  说了给你点报酬的呢.<br />
9:55 我: 就当玩了</p>
<p>做技术的，很多时候要学会一笑了之。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/12/%e9%92%88%e5%af%b9%e5%b0%9a%e8%b6%a3%e7%bd%91%ef%bc%88vsuchcom%ef%bc%89%e7%9a%84%e7%ae%80%e5%8d%95%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>在windows下玩apache php不能不知的几个小设置</title>
		<link>http://www.sunboyu.cn/2009/06/10/%e5%9c%a8windows%e4%b8%8b%e7%8e%a9apache-php%e4%b8%8d%e8%83%bd%e4%b8%8d%e7%9f%a5%e7%9a%84%e5%87%a0%e4%b8%aa%e5%b0%8f%e8%ae%be%e7%bd%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/10/%e5%9c%a8windows%e4%b8%8b%e7%8e%a9apache-php%e4%b8%8d%e8%83%bd%e4%b8%8d%e7%9f%a5%e7%9a%84%e5%87%a0%e4%b8%aa%e5%b0%8f%e8%ae%be%e7%bd%ae.shtml#comments</comments>
		<pubDate>Wed, 10 Jun 2009 09:09:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=779</guid>
		<description><![CDATA[1、PHPIniDir &#8220;D:\PHP5&#8243;
这样不用每次都把php.ini拷贝到C:\Windows下
2、set Path=D:\PHP5;D:\PHP5\ext;%Path%
这样不用每次把那些dll拷贝到C:\Windows\system32下
]]></description>
			<content:encoded><![CDATA[<p>1、PHPIniDir &#8220;D:\PHP5&#8243;</p>
<p>这样不用每次都把php.ini拷贝到C:\Windows下</p>
<p>2、set Path=D:\PHP5;D:\PHP5\ext;%Path%</p>
<p>这样不用每次把那些dll拷贝到C:\Windows\system32下</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/10/%e5%9c%a8windows%e4%b8%8b%e7%8e%a9apache-php%e4%b8%8d%e8%83%bd%e4%b8%8d%e7%9f%a5%e7%9a%84%e5%87%a0%e4%b8%aa%e5%b0%8f%e8%ae%be%e7%bd%ae.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Centos4.7（Linux）下架设BT服务器</title>
		<link>http://www.sunboyu.cn/2009/06/09/centos47%ef%bc%88linux%ef%bc%89%e4%b8%8b%e6%9e%b6%e8%ae%bebt%e6%9c%8d%e5%8a%a1%e5%99%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/09/centos47%ef%bc%88linux%ef%bc%89%e4%b8%8b%e6%9e%b6%e8%ae%bebt%e6%9c%8d%e5%8a%a1%e5%99%a8.shtml#comments</comments>
		<pubDate>Tue, 09 Jun 2009 05:21:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[bittorrent]]></category>
		<category><![CDATA[bt]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=768</guid>
		<description><![CDATA[穷人，就得想穷人的办法，带宽被坑，严重缩水，为了分享大量资源，最终决定使用bt发布一些大资源。
网上找了很多BitTorrent架设btserver的教程，不是版本不对，就是安装复杂，所以，我找了个比较老的版本，一次装上调通。
我使用了BitTorrent-3.9.1，官方下载地址为 http://download.bittorrent.com/dl/archive/BitTorrent-3.9.1.tar.gz
防止墙，我传到本地 bittorrent-3.9.1.tar.gz
首先你服务器要预装python，centos4.7预装python2.3，我预留，但服务器环境python使用了2.5版，2.3不能删，yum对版本依赖性比较强，还得预留。
解压 BitTorrent-3.9.1.tar.gz 后进入文件夹，按照说明进行安装：
python setup.py install
即可安装。当然中间会遇到各种问题，大部分是关于python版本或者依赖的，错误可以跟帖发一下，一起解决。
好了，首先启动服务器：
python bttrack.py --port 6969 --dfile dfile.log
其中port参数是服务的端口（一定记得调一下防火墙），dfile是日志
然后打开 http://ip:6969/  如果显示
BitTorrent download info
    * tracker version: 3.9.1
    * server time: 2009-06-09 05:12 UTC
则证明服务启动成功。
下面创建一个种子文件
btmaketorrent.py http://bt.sunboyu.cn:6969/announce /root/soft/xmlrpc-epi-0.54.tar.gz
这样，就针对 /root/soft/xmlrpc-epi-0.54.tar.gz 文件创建了一个种子文件，使用的track地址是 http://bt.sunboyu.cn:6969
生成的种子位置，是这样:如果针对一个文件，则在文件同一文件夹下，如果针对文件夹，则在文件夹同级目录。
然后发布一个种子（很多人可能对种子这个概念不了解，可以查看资料，关于bt协议的）
btdownloadheadless.py /root/soft/xmlrpc-epi-0.54.tar.gz.torrent --save_as /root/soft/xmlrpc-epi-0.54.tar.gz
发布种子有很多参数要限制，可以看命令具体参数，比如占用的端口跟限速等。
我测试了一下，linux发布的文件，就可以下载了。这只是服务器建立的阶段，要管理，还得写好多管理脚本，否则文件多的话，手工可受不了。
另外还有好多的开源web监控、管理、发布的系统，大家可以下来搭建尝试。欢迎交流。
相关资料 http://zh.wikipedia.org/wiki/BitTorrent
]]></description>
			<content:encoded><![CDATA[<p>穷人，就得想穷人的办法，带宽被坑，严重缩水，为了分享大量资源，最终决定使用bt发布一些大资源。</p>
<p>网上找了很多BitTorrent架设btserver的教程，不是版本不对，就是安装复杂，所以，我找了个比较老的版本，一次装上调通。</p>
<p>我使用了BitTorrent-3.9.1，官方下载地址为 http://download.bittorrent.com/dl/archive/BitTorrent-3.9.1.tar.gz</p>
<p>防止墙，我传到本地 <a href='http://www.sunboyu.cn/upfiles/2009/06/bittorrent-391tar.gz'>bittorrent-3.9.1.tar.gz</a></p>
<p>首先你服务器要预装python，centos4.7预装python2.3，我预留，但服务器环境python使用了2.5版，2.3不能删，yum对版本依赖性比较强，还得预留。</p>
<p>解压 BitTorrent-3.9.1.tar.gz 后进入文件夹，按照说明进行安装：</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">python setup.py install</li></ol></div>
<p>即可安装。当然中间会遇到各种问题，大部分是关于python版本或者依赖的，错误可以跟帖发一下，一起解决。</p>
<p>好了，首先启动服务器：</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">python bttrack.py --port 6969 --dfile dfile.log</li></ol></div>
<p>其中port参数是服务的端口（一定记得调一下防火墙），dfile是日志</p>
<p>然后打开 http://ip:6969/  如果显示</p>
<p>BitTorrent download info</p>
<p>    * tracker version: 3.9.1<br />
    * server time: 2009-06-09 05:12 UTC</p>
<p>则证明服务启动成功。</p>
<p>下面创建一个种子文件</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">btmaketorrent.py http://bt.sunboyu.cn:6969/announce /root/soft/xmlrpc-epi-0.54.tar.gz</li></ol></div>
<p>这样，就针对 /root/soft/xmlrpc-epi-0.54.tar.gz 文件创建了一个种子文件，使用的track地址是 http://bt.sunboyu.cn:6969<br />
生成的种子位置，是这样:如果针对一个文件，则在文件同一文件夹下，如果针对文件夹，则在文件夹同级目录。</p>
<p>然后发布一个种子（很多人可能对种子这个概念不了解，可以查看资料，关于bt协议的）</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">btdownloadheadless.py /root/soft/xmlrpc-epi-0.54.tar.gz.torrent --save_as /root/soft/xmlrpc-epi-0.54.tar.gz</li></ol></div>
<p>发布种子有很多参数要限制，可以看命令具体参数，比如占用的端口跟限速等。</p>
<p>我测试了一下，linux发布的文件，就可以下载了。这只是服务器建立的阶段，要管理，还得写好多管理脚本，否则文件多的话，手工可受不了。</p>
<p>另外还有好多的开源web监控、管理、发布的系统，大家可以下来搭建尝试。欢迎交流。</p>
<p>相关资料 http://zh.wikipedia.org/wiki/BitTorrent</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/09/centos47%ef%bc%88linux%ef%bc%89%e4%b8%8b%e6%9e%b6%e8%ae%bebt%e6%9c%8d%e5%8a%a1%e5%99%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>脱裤子放屁典范程序</title>
		<link>http://www.sunboyu.cn/2009/06/05/%e8%84%b1%e8%a3%a4%e5%ad%90%e6%94%be%e5%b1%81%e5%85%b8%e8%8c%83%e7%a8%8b%e5%ba%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/06/05/%e8%84%b1%e8%a3%a4%e5%ad%90%e6%94%be%e5%b1%81%e5%85%b8%e8%8c%83%e7%a8%8b%e5%ba%8f.shtml#comments</comments>
		<pubDate>Fri, 05 Jun 2009 02:25:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[代码冗余]]></category>
		<category><![CDATA[康盛]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=766</guid>
		<description><![CDATA[最近搞一个单点登录的东东，研究了下康盛的ucenterhome产品，在研究cookie的时候发现这么一段处理程序：
$prelength = strlen($_SC['cookiepre']);
foreach($_COOKIE as $key =&#62; $val) {
	if(substr($key, 0, $prelength) == $_SC['cookiepre']) {
		$_SCOOKIE[(substr($key, $prelength))] = empty($magic_quote) ? saddslashes($val) : $val;
	}
}
其目的是把合法的cookie拿出来防到一个全局变量里去用。
cookie本身就是一个挺好的全局变量，而康盛又把这个变量拿出来去用，为什么？
或者，为了方便管理变量，但判断函数判断自定义全局变量跟判断cookie全局变量成本相同；
或者，为了让开发者必须彻底明白业务逻辑才能修改，提高竞争对手抄袭门槛或者提高二次开发门槛而给项目部带来更高的收入？
这样的代码里边很多，也许只有他们自己才能了解最终目的。
]]></description>
			<content:encoded><![CDATA[<p>最近搞一个单点登录的东东，研究了下康盛的ucenterhome产品，在研究cookie的时候发现这么一段处理程序：</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">$prelength = strlen($_SC['cookiepre']);</li>
<li>foreach($_COOKIE as $key =&gt; $val) {</li>
<li>	if(substr($key, 0, $prelength) == $_SC['cookiepre']) {</li>
<li>		$_SCOOKIE[(substr($key, $prelength))] = empty($magic_quote) ? saddslashes($val) : $val;</li>
<li>	}</li>
<li>}</li></ol></div>
<p>其目的是把合法的cookie拿出来防到一个全局变量里去用。</p>
<p>cookie本身就是一个挺好的全局变量，而康盛又把这个变量拿出来去用，为什么？</p>
<p>或者，为了方便管理变量，但判断函数判断自定义全局变量跟判断cookie全局变量成本相同；</p>
<p>或者，为了让开发者必须彻底明白业务逻辑才能修改，提高竞争对手抄袭门槛或者提高二次开发门槛而给项目部带来更高的收入？</p>
<p>这样的代码里边很多，也许只有他们自己才能了解最终目的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/06/05/%e8%84%b1%e8%a3%a4%e5%ad%90%e6%94%be%e5%b1%81%e5%85%b8%e8%8c%83%e7%a8%8b%e5%ba%8f.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>买了一个新的捷安特座管快拆</title>
		<link>http://www.sunboyu.cn/2009/05/31/%e4%b9%b0%e4%ba%86%e4%b8%80%e4%b8%aa%e6%96%b0%e7%9a%84%e6%8d%b7%e5%ae%89%e7%89%b9%e5%ba%a7%e7%ae%a1%e5%bf%ab%e6%8b%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/31/%e4%b9%b0%e4%ba%86%e4%b8%80%e4%b8%aa%e6%96%b0%e7%9a%84%e6%8d%b7%e5%ae%89%e7%89%b9%e5%ba%a7%e7%ae%a1%e5%bf%ab%e6%8b%86.shtml#comments</comments>
		<pubDate>Sun, 31 May 2009 12:32:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[座管快拆]]></category>
		<category><![CDATA[捷安特]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=743</guid>
		<description><![CDATA[北航东门捷安特店买的，10块大洋。网上说批发两块八  http://detail.china.alibaba.com/buyer/offerdetail/147764286.html
讨伐一下破坏我自行车的贼。

]]></description>
			<content:encoded><![CDATA[<p>北航东门捷安特店买的，10块大洋。网上说批发两块八  http://detail.china.alibaba.com/buyer/offerdetail/147764286.html</p>
<p>讨伐一下破坏我自行车的贼。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/05/img_5009.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/05/img_5009.jpg" alt="img_5009" title="img_5009" width="894" height="592" class="aligncenter size-full wp-image-744" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/31/%e4%b9%b0%e4%ba%86%e4%b8%80%e4%b8%aa%e6%96%b0%e7%9a%84%e6%8d%b7%e5%ae%89%e7%89%b9%e5%ba%a7%e7%ae%a1%e5%bf%ab%e6%8b%86.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>xml与array互转函数</title>
		<link>http://www.sunboyu.cn/2009/05/31/xml%e4%b8%8earray%e4%ba%92%e8%bd%ac%e5%87%bd%e6%95%b0.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/31/xml%e4%b8%8earray%e4%ba%92%e8%bd%ac%e5%87%bd%e6%95%b0.shtml#comments</comments>
		<pubDate>Sun, 31 May 2009 10:42:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=741</guid>
		<description><![CDATA[突然发现写程序不像原来思路那么清晰了，一个递归居然想了半天，不过还是凑合着写了一个简单的xml与array互转的函数，来实现跟其他系统的对接。
原来一直用的是拼凑的方式生成xml，这次使用了DOMDocument对象。不知道这个类是否有非法字符的问题，待测试一下便知。
class AXML
{
	var $dom = '';
	#&#160; &#160; array to xml&#160; &#160; &#160; &#160;###########################################
&#160;&#160; &#160;#array to xml
	function array2xml( $array )
	{
		$this-&#62;dom = new DOMDocument('1.0', 'utf-8');
		$this-&#62;dom-&#62;formatOutput = true;
		$this-&#62;_array( array( 'root' =&#62; $array ) , $this-&#62;dom );
		echo $this-&#62;dom-&#62;saveXML();
	}
&#160;
	#array to dom
	function _array( $array = array() , $dom )
	{
		$i = 0;
		foreach( $array as $key =&#62; $value )
		{
			if( is_array( $value ) )
			{
				//遍历
				$node[$i] = [...]]]></description>
			<content:encoded><![CDATA[<p>突然发现写程序不像原来思路那么清晰了，一个递归居然想了半天，不过还是凑合着写了一个简单的xml与array互转的函数，来实现跟其他系统的对接。</p>
<p>原来一直用的是拼凑的方式生成xml，这次使用了DOMDocument对象。不知道这个类是否有非法字符的问题，待测试一下便知。</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">class AXML</li>
<li>{</li>
<li>	var $dom = '';</li>
<li>	#&nbsp; &nbsp; array to xml&nbsp; &nbsp; &nbsp; &nbsp;###########################################</li>
<li>&nbsp;&nbsp; &nbsp;#array to xml</li>
<li>	function array2xml( $array )</li>
<li>	{</li>
<li>		$this-&gt;dom = new DOMDocument('1.0', 'utf-8');</li>
<li>		$this-&gt;dom-&gt;formatOutput = true;</li>
<li>		$this-&gt;_array( array( 'root' =&gt; $array ) , $this-&gt;dom );</li>
<li>		echo $this-&gt;dom-&gt;saveXML();</li>
<li>	}</li>
<li>&nbsp;</li>
<li>	#array to dom</li>
<li>	function _array( $array = array() , $dom )</li>
<li>	{</li>
<li>		$i = 0;</li>
<li>		foreach( $array as $key =&gt; $value )</li>
<li>		{</li>
<li>			if( is_array( $value ) )</li>
<li>			{</li>
<li>				//遍历</li>
<li>				$node[$i] = $this-&gt;dom-&gt;createElement( $key );</li>
<li>				$dom-&gt;appendChild( $node[$i] );</li>
<li>				$this-&gt;_array( $value , $node[$i] );</li>
<li>			}</li>
<li>			else</li>
<li>			{</li>
<li>				$node[$i] = $this-&gt;dom-&gt;createElement( $key , $value );</li>
<li>				$dom-&gt;appendChild( $node[$i] );</li>
<li>			}</li>
<li>			$i++;</li>
<li>		}</li>
<li>	}</li>
<li>	#&nbsp; &nbsp;xml&nbsp; to array&nbsp; &nbsp; &nbsp; &nbsp;###########################################</li>
<li>	#xml to array</li>
<li>	function xml2array( $xmls )</li>
<li>	{</li>
<li>		$array = array();</li>
<li>		$this-&gt;dom = new SimpleXMLElement( $xmls );</li>
<li>		print_r( $this-&gt;_object( $this-&gt;dom ) );</li>
<li>	}</li>
<li>	#object to array</li>
<li>	function _object( $object )</li>
<li>	{</li>
<li>		$array = array();</li>
<li>		$t = get_object_vars( $object );</li>
<li>		$i = 0;</li>
<li>		foreach( $t as $key =&gt; $value )</li>
<li>		{</li>
<li>			if(is_object($value))</li>
<li>			{</li>
<li>				$array[$key] = $this-&gt;_object( $value );</li>
<li>			}</li>
<li>			else</li>
<li>			{</li>
<li>				$array[$key] = $value;</li>
<li>			}</li>
<li>			$i++;</li>
<li>		}</li>
<li>		return $array;</li>
<li>	}</li>
<li>}</li>
<li>$xml = new AXML();</li>
<li>$xml-&gt;array2xml( $array );</li>
<li>$xml-&gt;xml2array( $xml_string );</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/31/xml%e4%b8%8earray%e4%ba%92%e8%bd%ac%e5%87%bd%e6%95%b0.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>自行车零件被盗了，学会了漂移</title>
		<link>http://www.sunboyu.cn/2009/05/31/%e8%87%aa%e8%a1%8c%e8%bd%a6%e9%9b%b6%e4%bb%b6%e8%a2%ab%e7%9b%97%e4%ba%86%ef%bc%8c%e5%ad%a6%e4%bc%9a%e4%ba%86%e6%bc%82%e7%a7%bb.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/31/%e8%87%aa%e8%a1%8c%e8%bd%a6%e9%9b%b6%e4%bb%b6%e8%a2%ab%e7%9b%97%e4%ba%86%ef%bc%8c%e5%ad%a6%e4%bc%9a%e4%ba%86%e6%bc%82%e7%a7%bb.shtml#comments</comments>
		<pubDate>Sun, 31 May 2009 03:23:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[公路漂移]]></category>
		<category><![CDATA[自行车]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=739</guid>
		<description><![CDATA[早晨推车，突然发现我车座的快拆螺丝让人给偷了，shit！！
只能把车座临时架在车上，很低，就凑合着骑了。
今天上班没跟媳妇一起走，所以自己骑得很快，突然发现，重心低了，原来漂移就很爽。
以前我座杆总是调得很高，漂移扭力大的时候，人都要飞出去，可现在身子稍微一晃，车就能漂过去。
五道口人多的时候试着漂了两下，感觉很爽，还把一女死机吓的急刹车，^_^，不过我的车子围着他的车头漂了个优美的弧线，很爽！
]]></description>
			<content:encoded><![CDATA[<p>早晨推车，突然发现我车座的快拆螺丝让人给偷了，shit！！</p>
<p>只能把车座临时架在车上，很低，就凑合着骑了。</p>
<p>今天上班没跟媳妇一起走，所以自己骑得很快，突然发现，重心低了，原来漂移就很爽。</p>
<p>以前我座杆总是调得很高，漂移扭力大的时候，人都要飞出去，可现在身子稍微一晃，车就能漂过去。</p>
<p>五道口人多的时候试着漂了两下，感觉很爽，还把一女死机吓的急刹车，^_^，不过我的车子围着他的车头漂了个优美的弧线，很爽！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/31/%e8%87%aa%e8%a1%8c%e8%bd%a6%e9%9b%b6%e4%bb%b6%e8%a2%ab%e7%9b%97%e4%ba%86%ef%bc%8c%e5%ad%a6%e4%bc%9a%e4%ba%86%e6%bc%82%e7%a7%bb.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>限制apache http线程的带宽</title>
		<link>http://www.sunboyu.cn/2009/05/29/%e9%99%90%e5%88%b6apache-http%e7%ba%bf%e7%a8%8b%e7%9a%84%e5%b8%a6%e5%ae%bd.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/29/%e9%99%90%e5%88%b6apache-http%e7%ba%bf%e7%a8%8b%e7%9a%84%e5%b8%a6%e5%ae%bd.shtml#comments</comments>
		<pubDate>Fri, 29 May 2009 04:09:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_bandwidth]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=736</guid>
		<description><![CDATA[最近带宽告急，原因是我做了几个开源软件的下载，结果带宽持续飙升，已经到了IDC给我的限度，所以在apache上增加了mod_bw模块(mod_bandwidth).
下载 mod_bw 的源代码 http://www.ivn.cl/apache/files/source/mod_bw-0.8.tgz
解压后，执行 apxs -i -a -c mod_bw.c
貌似自动就加到httpd.conf文件里。
如果不是自动的，就手工拷贝 mod_bw.so 到 apache module目录，httpd.conf 里增加 LoadModule bw_module modules/mod_bw.so
在虚拟主机里增加如下配置文件
BandWidthModule On&#160; &#160; &#160; &#160; &#160; &#160; &#160;#打开带宽限制功能
ForceBandWidthModule On&#160; &#160; &#160;#强制带宽限制
BandWidth all 102400&#160; &#160; &#160; &#160; &#160; &#160; #强制100KB
MinBandWidth all -1
具体的配置文档可以看这里
mod_bw-08
]]></description>
			<content:encoded><![CDATA[<p>最近带宽告急，原因是我做了几个开源软件的下载，结果带宽持续飙升，已经到了IDC给我的限度，所以在apache上增加了mod_bw模块(mod_bandwidth).</p>
<p>下载 mod_bw 的源代码 http://www.ivn.cl/apache/files/source/mod_bw-0.8.tgz</p>
<p>解压后，执行 apxs -i -a -c mod_bw.c</p>
<p>貌似自动就加到httpd.conf文件里。</p>
<p>如果不是自动的，就手工拷贝 mod_bw.so 到 apache module目录，httpd.conf 里增加 LoadModule bw_module modules/mod_bw.so</p>
<p>在虚拟主机里增加如下配置文件</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">BandWidthModule On&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#打开带宽限制功能</li>
<li>ForceBandWidthModule On&nbsp; &nbsp; &nbsp;#强制带宽限制</li>
<li>BandWidth all 102400&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #强制100KB</li>
<li>MinBandWidth all -1</li></ol></div>
<p>具体的配置文档可以看这里</p>
<p><a href='http://www.sunboyu.cn/upfiles/2009/05/mod_bw-08.txt'>mod_bw-08</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/29/%e9%99%90%e5%88%b6apache-http%e7%ba%bf%e7%a8%8b%e7%9a%84%e5%b8%a6%e5%ae%bd.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的apache配置-mpm</title>
		<link>http://www.sunboyu.cn/2009/05/28/%e6%88%91%e7%9a%84apache%e9%85%8d%e7%bd%ae-mpm.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/28/%e6%88%91%e7%9a%84apache%e9%85%8d%e7%bd%ae-mpm.shtml#comments</comments>
		<pubDate>Thu, 28 May 2009 15:13:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[fork]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=734</guid>
		<description><![CDATA[&#60;ifmodule mpm_prefork_module&#62;
&#160;&#160; &#160;StartServers&#160; &#160; &#160; &#160; &#160; &#160; &#160; 2
&#160;&#160; &#160;MinSpareServers&#160; &#160; &#160; &#160; &#160;5
&#160;&#160; &#160;MaxSpareServers&#160; &#160; &#160; &#160; 10
&#160;&#160; &#160;MaxClients&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;128
&#160;&#160; &#160;MaxRequestsPerChild&#160; &#160; 5000
&#60;/ifmodule&#62;
这个配置基本支撑http的访问，几个博客，一个论坛，还有一个哥们很大的静态并发。
以前使用的是work方式，因为不太了解，经常造成进程崩溃，又切换到了prefork方式，这次调整的比较稳定了。
]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;ifmodule mpm_prefork_module&gt;</li>
<li>&nbsp;&nbsp; &nbsp;StartServers&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2</li>
<li>&nbsp;&nbsp; &nbsp;MinSpareServers&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;5</li>
<li>&nbsp;&nbsp; &nbsp;MaxSpareServers&nbsp; &nbsp; &nbsp; &nbsp; 10</li>
<li>&nbsp;&nbsp; &nbsp;MaxClients&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;128</li>
<li>&nbsp;&nbsp; &nbsp;MaxRequestsPerChild&nbsp; &nbsp; 5000</li>
<li>&lt;/ifmodule&gt;</li></ol></div>
<p>这个配置基本支撑http的访问，几个博客，一个论坛，还有一个哥们很大的静态并发。</p>
<p>以前使用的是work方式，因为不太了解，经常造成进程崩溃，又切换到了prefork方式，这次调整的比较稳定了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/28/%e6%88%91%e7%9a%84apache%e9%85%8d%e7%bd%ae-mpm.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中国平安保险工号为A20××××的电话销售果然是个骗子</title>
		<link>http://www.sunboyu.cn/2009/05/26/%e4%b8%ad%e5%9b%bd%e5%b9%b3%e5%ae%89%e4%bf%9d%e9%99%a9%e5%b7%a5%e5%8f%b7%e4%b8%baa20%c3%97%c3%97%c3%97%c3%97%e7%9a%84%e7%94%b5%e8%af%9d%e9%94%80%e5%94%ae%e6%9e%9c%e7%84%b6%e6%98%af%e4%b8%aa%e9%aa%97.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/26/%e4%b8%ad%e5%9b%bd%e5%b9%b3%e5%ae%89%e4%bf%9d%e9%99%a9%e5%b7%a5%e5%8f%b7%e4%b8%baa20%c3%97%c3%97%c3%97%c3%97%e7%9a%84%e7%94%b5%e8%af%9d%e9%94%80%e5%94%ae%e6%9e%9c%e7%84%b6%e6%98%af%e4%b8%aa%e9%aa%97.shtml#comments</comments>
		<pubDate>Tue, 26 May 2009 09:23:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[中国平安]]></category>
		<category><![CDATA[骗子]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=727</guid>
		<description><![CDATA[今天突然接到中国保险的推销电话，说我中奖了，免费赠送一份交通意外保险，来电号码是02195511 这个号码后经查询，地区是中国平安公司的，后来根据短信内容，的确也查到了工号为A20××××的电话销售员。
销售的内容是，只要留下我的姓名和出生年月（没要身份证号码，所以警惕度下降），就可以获得一份交通意外险，所以，我把他需要的信息给他了，我满怀希望期待那份免费的保单号，结果……
不过当我到他们网站的时候，的确说赠送，不过我没有保单号，因为他们索取完我的信息，就没下文了。
我的手机号码＋真实姓名的价值远远高于推销员的工资＋电话费用。
如果我继续填写我的身份证号码，后果将不堪设想。
流氓就是流氓，骗子就是骗子。
有时候骗子太大了，反而看不清。
我的平安的短信我已经永久收藏了，我会告诉身边所有的人。
再到大街上看见平安的推销员，我会把真相告诉他们。
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
终于有人回复了，不过看IP，这哥们是河南的，我觉得也是中国平安的员工吧。很不幸，我受到了中国平安的短信和保单号。
更不幸，我没有提供身份证号码，依然得到了保单号。或者中国平安是个骗子，或者楼下你是个骗子。反正你们都是中国平安的，自己公司内部出现自相矛盾，你们还想骗谁。
如果有人想证实，我把中国平安的短信截图公布。
短信的确是免费的保险，但只是三个月。中国平安用三个月的免费保险骗取了我的手机号和真实姓名，我不知道他们以后会如何。反正短信骚扰跟电话推销是少不了了。
如果中国平安是有良知的企业，我希望我的号码不再受到任何中国平安的信息。   谢谢。
]]></description>
			<content:encoded><![CDATA[<p>今天突然接到中国保险的推销电话，说我中奖了，免费赠送一份交通意外保险，来电号码是02195511 这个号码后经查询，地区是中国平安公司的，后来根据短信内容，的确也查到了工号为A20××××的电话销售员。</p>
<p>销售的内容是，只要留下我的姓名和出生年月（没要身份证号码，所以警惕度下降），就可以获得一份交通意外险，所以，我把他需要的信息给他了，我满怀希望期待那份免费的保单号，结果……</p>
<p>不过当我到他们网站的时候，的确说赠送，不过我没有保单号，因为他们索取完我的信息，就没下文了。</p>
<p>我的手机号码＋真实姓名的价值远远高于推销员的工资＋电话费用。</p>
<p>如果我继续填写我的身份证号码，后果将不堪设想。</p>
<p>流氓就是流氓，骗子就是骗子。</p>
<p>有时候骗子太大了，反而看不清。</p>
<p>我的平安的短信我已经永久收藏了，我会告诉身边所有的人。</p>
<p>再到大街上看见平安的推销员，我会把真相告诉他们。</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>终于有人回复了，不过看IP，这哥们是河南的，我觉得也是中国平安的员工吧。很不幸，我受到了中国平安的短信和保单号。</p>
<p>更不幸，我没有提供身份证号码，依然得到了保单号。或者中国平安是个骗子，或者楼下你是个骗子。反正你们都是中国平安的，自己公司内部出现自相矛盾，你们还想骗谁。</p>
<p>如果有人想证实，我把中国平安的短信截图公布。</p>
<p>短信的确是免费的保险，但只是三个月。中国平安用三个月的免费保险骗取了我的手机号和真实姓名，我不知道他们以后会如何。反正短信骚扰跟电话推销是少不了了。</p>
<p>如果中国平安是有良知的企业，我希望我的号码不再受到任何中国平安的信息。   谢谢。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/26/%e4%b8%ad%e5%9b%bd%e5%b9%b3%e5%ae%89%e4%bf%9d%e9%99%a9%e5%b7%a5%e5%8f%b7%e4%b8%baa20%c3%97%c3%97%c3%97%c3%97%e7%9a%84%e7%94%b5%e8%af%9d%e9%94%80%e5%94%ae%e6%9e%9c%e7%84%b6%e6%98%af%e4%b8%aa%e9%aa%97.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>我那些当民工的日子</title>
		<link>http://www.sunboyu.cn/2009/05/26/%e6%88%91%e9%82%a3%e4%ba%9b%e5%bd%93%e6%b0%91%e5%b7%a5%e7%9a%84%e6%97%a5%e5%ad%90.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/26/%e6%88%91%e9%82%a3%e4%ba%9b%e5%bd%93%e6%b0%91%e5%b7%a5%e7%9a%84%e6%97%a5%e5%ad%90.shtml#comments</comments>
		<pubDate>Tue, 26 May 2009 08:46:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[三炮]]></category>
		<category><![CDATA[北漂]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=723</guid>
		<description><![CDATA[谨以此文鼓励所有北漂的IT民工们。]]></description>
			<content:encoded><![CDATA[<p>转自 <a href="http://www.imphper.net/" target="_blank">三炮的blog</a>  http://www.imphper.net/</p>
<p>    一年前的这个时候我还在地下室住着。</p>
<p>    每当想起那段住地下室，隔板间的日子，心中总是哇凉哇凉的。有种想为自己痛哭一场的感觉。</p>
<p>    地下室的周围是正在拆建的八里庄社区，下午下班回去，床上趴着3，4只蟑螂，我一开门，就一溜烟的都不见了，我的床上铺着一张亲戚家给的破床单，后来在附近买了张床单，睡上去就像是睡在塑料布上一样，因为不是纯棉的，手感非常的差。屋子非常的小，有一个窗户，非常小，野猫有时候还会过来光顾一下，上面护着报纸，微微的透着光。窗户的外面是两栋楼的中间，屋里的灯管让我眩晕，睡在地下室的床上，我常常在想，人死了，就是埋在这个深度吧！我也常常在那片废墟上的简易棚吃饭，什么拉面呀，炒饭呀，也不管干净不干净，都是周围的民工在那里吃，我就和他们搅和在一起。不下雨，尘土飞扬，下雨，泥泞的没路可走。到处都是坑。进入地下室的感觉，就像是在往地心深处走，外面一片光明，里面越走越黑。上班的路上大型工程车来来往往。地下室每次洗澡要5块钱，而且水能烫死人，后来为了能洗澡，我去对面的奥利健身看过，年卡是5000，我被吓出来了，我只是想在附近找个公共浴室，好几次下班我走路去找，打听，可就是找不到。最后我只好周末为了洗澡花4个小时的来回路程去北京的亲戚家洗。这段时间我每天下了班就去东边的北二外上自习看书，晚上尽可能的晚点回来。看了几本书，水平提高了不少。那时候真的是在绝望中给自己希望，墙上挂着彩票中奖号，每天下班去买一注彩票。我的隔壁住着一个神经病老头，还总爱找我唠嗑。养了一只“鹩哥 ”，叫起来很吓人。地下室房租450，网费60，水费20。</p>
<p>    接着伟大的奥运会要开幕了，通知地下室不让住人了。我们被赶了出来，我是倒数第二户被请出来的，因为房子不好租所以拖着。在地下室里我给朋友打电话说不让住了，我快哭了。后来接着我找到房子了。</p>
<p>    本来还在为找到房子而庆幸，结果搬过去很快就证明我错了，天气很快就热了，且不说没有空调，因为是客厅的隔板间，而且房屋本事就不通透，我住的隔板间也没有窗户，虽然能洗澡，比地下室这点好些，还有洗衣机，不用手洗衣服，但他们在厨房一做饭，而且那家是湖北人，做饭爱放辣椒，油烟有一半都跑我屋里，能呛死我，而且通风通不出去。这还算好的，那会儿天热了，晚上睡觉我把厨房门打开通风，因为厨房通外面，而且厨房门对着我的房间，可晚上就不知道谁把厨房门给我关上，有几次我从睡眠中喘不过气醒来，就像是被把嘴捂住，半夜起来再去把门打开，就为了能够吸一口空气。而且那户人家一共合租了4家，一共有7个人，而且他们互相之间都有矛盾，有几次警察都来了。隔板间房租450，网费40，其他另算。</p>
<p>    那段时间工作也特别不稳定，公司里乱七八糟，小人当道，同事都被气走了，我们在那里做着最后的挣扎，经常被叫去因为一点小事批评。那段时间我在公司带着，同时也在找工作，那个时侯的我水平已经锻炼的可以点了，也算是工作满一年了，好难啊，终于满一年了。先后几个面试的公司都要我了，体坛周报，盛大文学，这两个第一个因为他们曾经对员工做过很过分的事情，而且远离机场，在宣武区，就没去，盛大文学的工资少1k，而且在立水桥，地方也不好，也没去。就去了离机场比较顺路的三元桥，左家庄那边，后来干了足足5个月，直到那边公司破产。到了新公司以后我的工资也可以租的起像样一点的房子了，而且女朋友也从廊坊军训回来了，我一个人可以受苦受罪，不能让她受罪，现在想起来她有几次从廊坊回来看我，和我一起住在那个黑暗的地下室，那个喘不过气的隔板间，现在想起来我都还是心里面特别难受。找到新工作以后我很快就搬到四元桥了，是一个小区六楼的两居室，隔壁住一对夫妻，他们住大间，我住小间，大概也就是8M的样子，终于可以迎接着早晨的阳光起床了。有燃气热水器，有空调，我终于能吸到新鲜空气，能看到阳光了！！就这个，因为我女朋友经常过来，他们倒不乐意了，中间闹了几次矛盾，虽然房子住着比较舒服，但是还是太小，而且是1.2的单人床。这时候我也有自行车了，我可以每天骑车15分钟上班。一个月房租850，网费60，乱七八糟下来一个月1100，住了小半年。1100的房租对我一个人来说承担起来还是很重的，除去房租，因为之前我几乎一无所有，买了乱七八糟的一些东西，几乎就没有存下钱，左家庄的公司2008.12.8破产，我去同学网干了一个月，因为工作太累，让我加班我不愿意，就把我辞退了，这也是我期望的。回来我就搬家了，搬到现在住的地方，草场地，是机场方向的一个村子，盖的3层小楼，厨房卫生间（有太阳能）七户公用。那时候是冬天，还凑合能住，单房子潮湿，被子唔不热，一次交了半年的，因为起码有两扇大窗户，有阳光，房子7月份到期，想想去年炎热的北京，我很犹豫要不要7月份搬家，因为我也有点舍不得这里，和邻居关系很好了，而且房东人很好，房子是600一个月除了电费其他全包。从这里到我现在的公司每天骑车来回也得两小时，累得我呀。。。。</p>
<p>    这些东西不吐不快，总算是写完了，算是对去年的这个时候的自己的一种佩服与自勉了，想想以前那么艰苦的日子都过去了，我还有什么过不去的呢？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/26/%e6%88%91%e9%82%a3%e4%ba%9b%e5%bd%93%e6%b0%91%e5%b7%a5%e7%9a%84%e6%97%a5%e5%ad%90.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Linux下APACHE MYSQL PHP FCgid Suexec 配置文档V1.0</title>
		<link>http://www.sunboyu.cn/2009/05/22/linux%e4%b8%8bapache-mysql-php-fcgid-suexec-%e9%85%8d%e7%bd%ae%e6%96%87%e6%a1%a3v10.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/22/linux%e4%b8%8bapache-mysql-php-fcgid-suexec-%e9%85%8d%e7%bd%ae%e6%96%87%e6%a1%a3v10.shtml#comments</comments>
		<pubDate>Fri, 22 May 2009 03:14:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[LAMP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=716</guid>
		<description><![CDATA[文档版本：V1.0
启动撰写时间: 2009年05月20日
目的：全面详细介绍LAMP fastcgi方式配置细节,基于之前的自动配置脚本，目的是把更多的细节转达给大家。
需要软件源码：
CentOS4.7
http://centos.ustc.edu.cn/centos/4.7/isos/i386/CentOS-4.7.ServerCD-i386.iso
http://centos.ustc.edu.cn/centos/4.7/isos/x86_64/CentOS-4.7.ServerCD-x86_64.iso
Apache-2.2.9
http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz
MYSQL-5.2.6
http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.22.tar.gz
PHP-5.2.6
http://museum.php.net/php5/php-5.2.6.tar.gz
FCGID
http://ncu.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz
安装：
第一步：Linux系统安装,同时可以参照我原来的文档
http://www.sunboyu.cn/2008/06/13/centos5%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97%EF%BC%88%E7%AE%80%E5%8D%95%E7%AF%87%EF%BC%89.shtml

视频。我按照最小化进行安装。最后ping百度不通，是因为没有重启，重启后是正常的。从过程可疑看出，我用的vmware进行安装，所以，要根据你实际的网络情况进行调整配置。
Linux Centos 4.7 安装视频（下载）(关闭)

第二步：系统更新，组件安装。
首先更新一下yum源，具体查看这篇日志 http://www.sunboyu.cn/2009/01/07/centos4%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E4%B8%80%E4%BA%9B%E8%84%9A%E6%9C%AC.shtml
升级一下系统：
yum upgrade
安装一些必要的组件：
yum install gcc gcc-c++ gcc4-c++ autoconf gd gd-devel libxml2 libxml2-devel zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel expat expat-devel sqlite sqlite-devel png-devel jpeg-devel libtool libjpeg* libpng* freetype-devel
安装MYSQL-5.0.22
解压mysql
#tar -zxvf mysql-5.0.22.tar.gz
#cd cd mysql-5.0.22
#groupadd mysql
#useradd -g mysql mysql
#./configure &#8211;prefix=/opt/mysql-5.0.22 [...]]]></description>
			<content:encoded><![CDATA[<p>文档版本：V1.0</p>
<p>启动撰写时间: 2009年05月20日</p>
<p>目的：全面详细介绍LAMP fastcgi方式配置细节,基于之前的自动配置脚本，目的是把更多的细节转达给大家。</p>
<p>需要软件源码：</p>
<p>CentOS4.7</p>
<p>http://centos.ustc.edu.cn/centos/4.7/isos/i386/CentOS-4.7.ServerCD-i386.iso</p>
<p>http://centos.ustc.edu.cn/centos/4.7/isos/x86_64/CentOS-4.7.ServerCD-x86_64.iso</p>
<p>Apache-2.2.9</p>
<p>http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz</p>
<p>MYSQL-5.2.6</p>
<p>http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.22.tar.gz</p>
<p>PHP-5.2.6</p>
<p>http://museum.php.net/php5/php-5.2.6.tar.gz</p>
<p>FCGID</p>
<p>http://ncu.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz</p>
<p>安装：</p>
<p>第一步：Linux系统安装,同时可以参照我原来的文档</p>
<p>http://www.sunboyu.cn/2008/06/13/centos5%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97%EF%BC%88%E7%AE%80%E5%8D%95%E7%AF%87%EF%BC%89.shtml</p>
<p><span id="more-716"></span></p>
<p>视频。我按照最小化进行安装。最后ping百度不通，是因为没有重启，重启后是正常的。从过程可疑看出，我用的vmware进行安装，所以，要根据你实际的网络情况进行调整配置。</p>
<p><a href="http://www.sunboyu.cn/upfiles/v/lamp.avi">Linux Centos 4.7 安装视频（下载）</a>(关闭)</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="353" height="291" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://player.youku.com/player.php/sid/XMTExMTU3NzE2/v.swf" /><embed type="application/x-shockwave-flash" width="353" height="291" src="http://player.youku.com/player.php/sid/XMTExMTU3NzE2/v.swf"></embed></object></p>
<p>第二步：系统更新，组件安装。</p>
<p>首先更新一下yum源，具体查看这篇日志 http://www.sunboyu.cn/2009/01/07/centos4%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E4%B8%80%E4%BA%9B%E8%84%9A%E6%9C%AC.shtml</p>
<p>升级一下系统：</p>
<p>yum upgrade</p>
<p>安装一些必要的组件：</p>
<p>yum install gcc gcc-c++ gcc4-c++ autoconf gd gd-devel libxml2 libxml2-devel zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel expat expat-devel sqlite sqlite-devel png-devel jpeg-devel libtool libjpeg* libpng* freetype-devel</p>
<p>安装MYSQL-5.0.22</p>
<p>解压mysql</p>
<p>#tar -zxvf mysql-5.0.22.tar.gz</p>
<p>#cd cd mysql-5.0.22</p>
<p>#groupadd mysql</p>
<p>#useradd -g mysql mysql</p>
<p>#./configure &#8211;prefix=/opt/mysql-5.0.22 \<br />
&#8211;without-debug \<br />
&#8211;enable-thread-safe-client \<br />
&#8211;with-client-ldflags=-all-static \<br />
&#8211;with-mysqld-ldflags=-all-static \<br />
&#8211;enable-local-infile \<br />
&#8211;enable-largefile \<br />
&#8211;with-charset=utf8 \<br />
&#8211;with-collation=utf8_unicode_ci \<br />
&#8211;with-extra-charsets=complex \<br />
&#8211;with-pic \<br />
&#8211;with-mysqld-libs \<br />
&#8211;with-comment \<br />
&#8211;with-query-cache \<br />
&#8211;with-bench \<br />
&#8211;with-big-tables \<br />
&#8211;with-innodb \<br />
&#8211;with-mysqld-use=mysql</p>
<p>#make</p>
<p>#make install</p>
<p>#cp ./support-files/my-medium.cnf /etc/my.cnf</p>
<p>#cp ./support-files/mysql.server /etc/init.d/mysqld</p>
<p>#chmod 755 /etc/init.d/mysqld</p>
<p>#/opt/mysql-5.0.22/bin/mysql_install_db &#8211;user=mysql &amp;</p>
<p>#echo &#8220;/opt/mysql-5.0.22/bin/mysqld_safe &#8211;user=mysql &amp;&#8221;&gt;&gt;/etc/rc.local</p>
<p>#service mysqld start</p>
<p>#/opt/mysql-5.0.22/bin/mysqladmin -u root password &#8216;123456&#8242;</p>
<p>#cd ..</p>
<p>安装APACHE</p>
<p>#groupadd apache</p>
<p>#useradd -g apache apache</p>
<p>#tar -zxvf httpd-2.2.9.tar.gz</p>
<p>#cd httpd-2.2.9</p>
<p>#./configure &#8211;prefix=/opt/httpd-2.2.9 \<br />
&#8211;enable-dav \<br />
&#8211;enable-dav-fs \<br />
&#8211;enable-modules=all \<br />
&#8211;enable-mods-shared=all \<br />
&#8211;disable-auth-basic \<br />
&#8211;enable-include \<br />
&#8211;enable-substitute \<br />
&#8211;enable-authz-dbm \<br />
&#8211;enable-log-config \<br />
&#8211;enable-headers \<br />
&#8211;enable-setenvif \<br />
&#8211;with-ssl \<br />
&#8211;enable-static-ab \<br />
&#8211;enable-http \<br />
&#8211;enable-mime \<br />
&#8211;enable-status \<br />
&#8211;enable-isapi \<br />
&#8211;enable-imagemap \<br />
&#8211;enable-actions \<br />
&#8211;enable-speling \<br />
&#8211;enable-userdir \<br />
&#8211;enable-alias \<br />
&#8211;enable-vhost-alias \<br />
&#8211;enable-dir \<br />
&#8211;enable-rewrite \<br />
&#8211;enable-dumpio \<br />
&#8211;enable-echo \<br />
&#8211;enable-so \<br />
&#8211;enable-example \<br />
&#8211;enable-case-filter \<br />
&#8211;enable-substitute \<br />
&#8211;enable-log-config \<br />
&#8211;enable-logio \<br />
&#8211;enable-env \<br />
&#8211;with-mpm=worker \<br />
&#8211;with-included-apr \<br />
&#8211;with-apr \<br />
&#8211;with-apr-util \<br />
&#8211;with-z \<br />
&#8211;enable-proxy \<br />
&#8211;enable-proxy-connect \<br />
&#8211;enable-proxy-ftp \<br />
&#8211;enable-proxy-http \<br />
&#8211;enable-proxy-ajp \<br />
&#8211;enable-proxy-balancer \<br />
&#8211;enable-suexec \<br />
&#8211;with-suexec-caller=apache \<br />
&#8211;with-suexec-userdir=www \<br />
&#8211;with-suexec-docroot=/home \<br />
&#8211;with-suexec-uidmin=100 \<br />
&#8211;with-suexec-gidmin=100 \<br />
&#8211;with-suexec-logfile=/var/log/suexec_log</p>
<p>#make</p>
<p>#make install</p>
<p>#ln -s /opt/httpd-2.2.9/bin/apachectl /etc/init.d/httpd</p>
<p>#cd ..</p>
<p>修改apache配置文件 /opt/httpd-2.2.9/conf/httpd.conf</p>
<p>找到</p>
<p>User daemon<br />
Group daemon</p>
<p>修改为</p>
<p>User apache<br />
Group apache</p>
<p>安装 fcgid</p>
<p>#tar -zxvf mod_fcgid.2.2.tgz</p>
<p>#cd mod_fcgid.2.2</p>
<p>修改Makefile</p>
<p>top_dir = /usr/local/apache2 为 top_dir = /opt/httpd-2.2.9</p>
<p>#make</p>
<p>#make install</p>
<p>#cd ..</p>
<p>修改apache配置文件 httpd.conf</p>
<p>增加 LoadModule fcgid_module modules/mod_fcgid.so</p>
<p>安装PHP，记得增加cgi支持</p>
<p>#tar -zxvf php-5.2.6.tar.gz</p>
<p>#cd php-5.2.6</p>
<p>#./configure &#8211;prefix=/opt/php-5.2.6 &#8211;with-libxml-dir &#8211;enable-cli &#8211;enable-cgi &#8211;enable-fastcgi &#8211;enable-bcmath &#8211;enable-force-cgi-redirect &#8211;enable-discard-path &#8211;enable-path-info-check &#8211;with-openssl &#8211;with-pcre-regex &#8211;enable-calendar &#8211;enable-dom &#8211;enable-ftp &#8211;with-openssl-dir=/usr/local/ssl &#8211;enable-gd-jis-conv &#8211;enable-hash &#8211;with-iconv &#8211;enable-json &#8211;enable-mbstring &#8211;enable-mbregex &#8211;enable-pdo &#8211;enable-posix &#8211;enable-libxml &#8211;enable-simplexml &#8211;with-sqlite &#8211;enable-tokenizer &#8211;enable-xmlreader &#8211;enable-xmlwriter &#8211;enable-sockets &#8211;with-zlib &#8211;with-freetype-dir &#8211;with-gd &#8211;with-jpeg-dir=/usr/lib &#8211;with-png-dir=/usr/lib &#8211;with-mime-magic &#8211;with-mysql=/opt/mysql-5.0.22 &#8211;with-zlib-dir=/usr/lib/libz.so &#8211;with-pdo-mysql=/opt/mysql-5.0.22 &#8211;with-pdo-sqlite &#8211;enable-posix &#8211;enable-soap</p>
<p>#make</p>
<p>#make install</p>
<p>修改apache配置文件httpd.conf</p>
<p>找到</p>
<p># Virtual hosts<br />
#Include conf/extra/httpd-vhosts.conf</p>
<p>修改为</p>
<p># Virtual hosts<br />
Include conf/extra/httpd-vhosts.conf</p>
<p>修改apache配置文件 conf/extra/httpd-vhosts.conf</p>
<p>删除所有的虚拟主机</p>
<p>现在配置虚拟主机：</p>
<p>所有虚拟主机的组为 vhost</p>
<p>增加一个用户名为sunboyu的虚拟主机</p>
<p>#groupadd vhost</p>
<p>#useradd -g vhost sunboyu</p>
<p>用户主目录默认为 /home/sunboyu</p>
<p>增加两个目录</p>
<p>#mkdir /home/sunboyu/www</p>
<p>#mkdir /home/sunboyu/logs</p>
<p>增加虚拟主机配置文件</p>
<p>SuexecUserGroup sunboyu vhost<br />
ServerAdmin sunboyu@gmail.com<br />
DocumentRoot &#8220;/home/sunboyu/www&#8221;<br />
ServerName 192.168.0.4<br />
ServerAlias sunboyu.cn<br />
ErrorLog &#8220;/home/sunboyu/logs/error_log&#8221;<br />
CustomLog &#8220;|/opt/httpd-2.2.9/bin/rotatelogs /home/sunboyu/logs/%Y_%m_%d_log 86400 +480&#8243; common</p>
<p>AddHandler fcgid-script .php<br />
#AddHandler cgi-script .pl .cgi<br />
FCGIWrapper /home/sunboyu/php-cgi .php<br />
Options ExecCGI FollowSymLinks<br />
AllowOverride all<br />
Order deny,allow<br />
Allow from all</p>
<p>创建文件 /home/sunboyu/php-cgi 文件内容为</p>
<p>#!/bin/sh<br />
export PHPRC=/home/sunboyu<br />
export PHP_FCGI_CHILDREN=4<br />
export PHP_FCGI_MAX_REQUESTS=5000<br />
exec /opt/php-5.2.6/bin/php-cgi &#8220;$@&#8221;</p>
<p>#chmod 755 -R /home/sunboyu</p>
<p>#chown sunboyu:vhost -R /home/sunboyu</p>
<p>配置到现在，重启apache</p>
<p>#service httpd restart</p>
<p>在虚拟目录根下 /home/sunboyu/www 下写文件 info.php 内容为 phpinfo() 修改权限为755 用户组为 sunboyu:vhost</p>
<p>现在访问应该是phpinfo的信息。</p>
<p>在写这篇文档的时候，基本是按照数续依次安装。</p>
<p>如果有问题，希望帮忙，请提前修改你服务器root密码，我们可以一起调试。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/22/linux%e4%b8%8bapache-mysql-php-fcgid-suexec-%e9%85%8d%e7%bd%ae%e6%96%87%e6%a1%a3v10.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.sunboyu.cn/upfiles/v/lamp.avi" length="17880876" type="video/x-msvideo" />
		</item>
		<item>
		<title>IT人办公室锻炼器械－俯卧撑</title>
		<link>http://www.sunboyu.cn/2009/05/22/it%e4%ba%ba%e5%8a%9e%e5%85%ac%e5%ae%a4%e9%94%bb%e7%82%bc%e5%99%a8%e6%a2%b0%ef%bc%8d%e4%bf%af%e5%8d%a7%e6%92%91.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/22/it%e4%ba%ba%e5%8a%9e%e5%85%ac%e5%ae%a4%e9%94%bb%e7%82%bc%e5%99%a8%e6%a2%b0%ef%bc%8d%e4%bf%af%e5%8d%a7%e6%92%91.shtml#comments</comments>
		<pubDate>Fri, 22 May 2009 02:24:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[俯卧撑]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=713</guid>
		<description><![CDATA[此运动器械购于淘宝，24块＋5块快递＝29元
平时工作紧张，只能进行简单节约空间的运动，俯卧撑是办公室运动比较适合的。
因本人比较丰满，刚买只能做三个，半个月练习后能做到20个标准动作的。
运动之前本人单车上班下肢能活动开，到单位可以进行上肢运动。
不建议无氧运动，那样会让你的肌肉变硬，失去弹性。

切忌：当你只能做三个的时候，不要对着你的同事或者亲人，除非你跟他有天大的仇恨，否则后果自负！
]]></description>
			<content:encoded><![CDATA[<p>此运动器械购于淘宝，24块＋5块快递＝29元</p>
<p>平时工作紧张，只能进行简单节约空间的运动，俯卧撑是办公室运动比较适合的。</p>
<p>因本人比较丰满，刚买只能做三个，半个月练习后能做到20个标准动作的。</p>
<p>运动之前本人单车上班下肢能活动开，到单位可以进行上肢运动。</p>
<p>不建议无氧运动，那样会让你的肌肉变硬，失去弹性。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/05/20071119202942838gif.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/05/20071119202942838gif.jpg" alt="20071119202942838gif" title="20071119202942838gif" width="533" height="394" class="aligncenter size-full wp-image-714" /></a></p>
<p>切忌：当你只能做三个的时候，不要对着你的同事或者亲人，除非你跟他有天大的仇恨，否则后果自负！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/22/it%e4%ba%ba%e5%8a%9e%e5%85%ac%e5%ae%a4%e9%94%bb%e7%82%bc%e5%99%a8%e6%a2%b0%ef%bc%8d%e4%bf%af%e5%8d%a7%e6%92%91.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>设计标准的通讯协议</title>
		<link>http://www.sunboyu.cn/2009/05/17/%e8%ae%be%e8%ae%a1%e6%a0%87%e5%87%86%e7%9a%84%e9%80%9a%e8%ae%af%e5%8d%8f%e8%ae%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/17/%e8%ae%be%e8%ae%a1%e6%a0%87%e5%87%86%e7%9a%84%e9%80%9a%e8%ae%af%e5%8d%8f%e8%ae%ae.shtml#comments</comments>
		<pubDate>Sun, 17 May 2009 15:48:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[协议]]></category>
		<category><![CDATA[虚拟主机]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=710</guid>
		<description><![CDATA[当然不会是底层通讯协议，因为TCP/IP已经为我们准备好了足够完善的通讯机制确保稳定安全。
此协议为七层应用协议，跟http ftp是平级的，使用socket进行通讯，可以兼容php、python、java、c等语言。
协议开源，使用点对点信息校验，满足普通应用。
协议模拟tcp封包过程，进行数据封装。
协议内容：(伪代码)
struct vhost
{
&#160;&#160; &#160;Head varchar(10),&#160; &#160; &#160; &#160; &#160; &#160; //协议头
&#160;&#160; &#160;Version int(5),&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;//版本
&#160;&#160; &#160;Timestamp int(5),&#160; &#160; &#160; &#160; &#160; &#160; //时间戳
&#160;&#160; &#160;Length int(10),&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; //包长度
&#160;&#160; &#160;Signature varchar(10),&#160; &#160; &#160; //签名
&#160;&#160; &#160;Date varchar(500)&#160; &#160; &#160; &#160; &#160; &#160; //数据 
}
协议包包括了协议头，版本，时间戳，包长度、签名（防止数据篡改和伪造）,数据。基本能满足应用。
控制端数据打包发送后，受控端只需返回接受成功即可，以便客户端及时作出判断。
底下针对此包做PHP版本的封包和python的解包部分。
注释：原来使用问答的方式进行通讯，需要多次数据的应答，而此次的修改只需一次即可完成，而打包封包在一端完成，这样对网络稳定性的依赖就会降低。
]]></description>
			<content:encoded><![CDATA[<p>当然不会是底层通讯协议，因为TCP/IP已经为我们准备好了足够完善的通讯机制确保稳定安全。</p>
<p>此协议为七层应用协议，跟http ftp是平级的，使用socket进行通讯，可以兼容php、python、java、c等语言。</p>
<p>协议开源，使用点对点信息校验，满足普通应用。</p>
<p>协议模拟tcp封包过程，进行数据封装。</p>
<p>协议内容：(伪代码)</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">struct vhost</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;Head varchar(10),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //协议头</li>
<li>&nbsp;&nbsp; &nbsp;Version int(5),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//版本</li>
<li>&nbsp;&nbsp; &nbsp;Timestamp int(5),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //时间戳</li>
<li>&nbsp;&nbsp; &nbsp;Length int(10),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //包长度</li>
<li>&nbsp;&nbsp; &nbsp;Signature varchar(10),&nbsp; &nbsp; &nbsp; //签名</li>
<li>&nbsp;&nbsp; &nbsp;Date varchar(500)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //数据 </li>
<li>}</li></ol></div>
<p>协议包包括了协议头，版本，时间戳，包长度、签名（防止数据篡改和伪造）,数据。基本能满足应用。</p>
<p>控制端数据打包发送后，受控端只需返回接受成功即可，以便客户端及时作出判断。</p>
<p>底下针对此包做PHP版本的封包和python的解包部分。</p>
<p>注释：原来使用问答的方式进行通讯，需要多次数据的应答，而此次的修改只需一次即可完成，而打包封包在一端完成，这样对网络稳定性的依赖就会降低。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/17/%e8%ae%be%e8%ae%a1%e6%a0%87%e5%87%86%e7%9a%84%e9%80%9a%e8%ae%af%e5%8d%8f%e8%ae%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>做开源的虚拟主机管理系统</title>
		<link>http://www.sunboyu.cn/2009/05/15/%e5%81%9a%e5%bc%80%e6%ba%90%e7%9a%84%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/15/%e5%81%9a%e5%bc%80%e6%ba%90%e7%9a%84%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f.shtml#comments</comments>
		<pubDate>Thu, 14 May 2009 21:47:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[虚拟主机管理]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=707</guid>
		<description><![CDATA[经过痛苦的削减，我把我预想中的虚拟主机管理系统功能裁到了最小 － 标准的单机lamp虚拟主机管理系统。
这个过程是很痛苦的。在软件设计的时候，我参考了好多成型的虚拟主机管理系统，包括蓝芒，webmin，还有德国等几个虚拟主机管理。不过在做的过程中发现了各自的优缺点，做了取并集综合的方法，整理出一个无比强大的功能设计文档。另外，根据国情，设计了完善的业务流程和各种接口。
不过在做的过程才发现，庞大的系统我根本不可能去实现。另外在做的时候的确卡在了一些技术细节上，python的使用毕竟不如php熟练，另外socket通讯在不同语言上有很多细节的区别，还得一一去测试突破。
基于以上原因，我把设计文档一再精简，到了目前仅适合我使用的程度：
1、开设虚拟主机，mysql数据库，并开ftp帐号。
2、用户可以修改mysql数据库密码。
3、用户可以修改ftp帐号密码。
如此以来，我项目可以继续进行了。因为足够简单。另外之前的折腾并不是白做，因为好多问题悬在了心中。因为之前的鸿鹄大志，导致我现在设计的结构可扩展性比较强，程序功能模块也都进行了合理规划。
希望在半个月后能出第一版程序，届时会开源公测。 希望对此有兴趣的同学加入我们（其实是我）。
]]></description>
			<content:encoded><![CDATA[<p>经过痛苦的削减，我把我预想中的虚拟主机管理系统功能裁到了最小 － 标准的单机lamp虚拟主机管理系统。</p>
<p>这个过程是很痛苦的。在软件设计的时候，我参考了好多成型的虚拟主机管理系统，包括蓝芒，webmin，还有德国等几个虚拟主机管理。不过在做的过程中发现了各自的优缺点，做了取并集综合的方法，整理出一个无比强大的功能设计文档。另外，根据国情，设计了完善的业务流程和各种接口。</p>
<p>不过在做的过程才发现，庞大的系统我根本不可能去实现。另外在做的时候的确卡在了一些技术细节上，python的使用毕竟不如php熟练，另外socket通讯在不同语言上有很多细节的区别，还得一一去测试突破。</p>
<p>基于以上原因，我把设计文档一再精简，到了目前仅适合我使用的程度：</p>
<p>1、开设虚拟主机，mysql数据库，并开ftp帐号。</p>
<p>2、用户可以修改mysql数据库密码。</p>
<p>3、用户可以修改ftp帐号密码。</p>
<p>如此以来，我项目可以继续进行了。因为足够简单。另外之前的折腾并不是白做，因为好多问题悬在了心中。因为之前的鸿鹄大志，导致我现在设计的结构可扩展性比较强，程序功能模块也都进行了合理规划。</p>
<p>希望在半个月后能出第一版程序，届时会开源公测。 希望对此有兴趣的同学加入我们（其实是我）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/15/%e5%81%9a%e5%bc%80%e6%ba%90%e7%9a%84%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何才能作出一款好的游戏</title>
		<link>http://www.sunboyu.cn/2009/05/13/%e5%a6%82%e4%bd%95%e6%89%8d%e8%83%bd%e4%bd%9c%e5%87%ba%e4%b8%80%e6%ac%be%e5%a5%bd%e7%9a%84%e6%b8%b8%e6%88%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/13/%e5%a6%82%e4%bd%95%e6%89%8d%e8%83%bd%e4%bd%9c%e5%87%ba%e4%b8%80%e6%ac%be%e5%a5%bd%e7%9a%84%e6%b8%b8%e6%88%8f.shtml#comments</comments>
		<pubDate>Tue, 12 May 2009 19:42:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[webgame]]></category>
		<category><![CDATA[游戏]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=703</guid>
		<description><![CDATA[貌似我也进入了如火如荼的webgame领域。虽然鄙人玩游戏很少，不过本着发展社会主义建设、全民奔小康的目的，还是要把这个东西搞好。
游戏的一些细节，我还是门外汉，仅总结一下游戏的几个要点：
    背景，剧情。
游戏的背景和剧情是游戏的一个重头戏。纵观国内国外游戏，无一不建立在一个有鲜明背景的基础上。魔兽世界讲的希腊神话的故事，剑侠情缘讲的是古代武林故事，劲舞团把迪厅搬到了家里，CS让你在家里就可以与敌方激战。任何一个好的游戏都无法摆脱一个主线，就像一个电影的剧情，一本小说的线索。而只是打怪升级的游戏显然已经失去了原有的魅力，动人的故事背景是吸引玩家的一个先决条件，流畅的剧情是黏合用户的必要条件。
    完善的程序架构
一直很讨厌提架构这个词，因为到现在我也不知道啥是架构，架构师依然是神秘的东西。我所谓的架构，是要作出一套程序，而程序可伸缩，可扩展，灵活自由，不会因为一点小的改动而逼疯程序员，更不会因为编码人员的牢骚而影响游戏的运营。程序要兼顾开发，策划，运营，运维多个部门，总之一句话：大家好才是真的好。
    强大的运营支持系统
    公司总是要盈利的，而且，不管做任何项目之前都得把这个事情想在前头。记住：老板得养活一个公司的人，投资人需要高额的利润。别听那帮人瞎扯：当时我们只想做用户，没想挣钱！那些人智商都不低，不用怀疑。任何事情都要提前想到，运营系统虽然是游戏内测公测很久才用得着的，但一定要在前期考虑进去。虽然收费系统，支付系统是无用的，但行为分析，数据分析，bug跟踪，用户反馈，推广系统，这些系统在游戏测试的时候既能发挥起作用，在数据基础上的数据挖掘更是游戏发展的风向标。
    团队
    没有一个人的英雄，尤其在IT这个圈子。
]]></description>
			<content:encoded><![CDATA[<p>貌似我也进入了如火如荼的webgame领域。虽然鄙人玩游戏很少，不过本着发展社会主义建设、全民奔小康的目的，还是要把这个东西搞好。</p>
<p>游戏的一些细节，我还是门外汉，仅总结一下游戏的几个要点：</p>
<p>    背景，剧情。</p>
<p>游戏的背景和剧情是游戏的一个重头戏。纵观国内国外游戏，无一不建立在一个有鲜明背景的基础上。魔兽世界讲的希腊神话的故事，剑侠情缘讲的是古代武林故事，劲舞团把迪厅搬到了家里，CS让你在家里就可以与敌方激战。任何一个好的游戏都无法摆脱一个主线，就像一个电影的剧情，一本小说的线索。而只是打怪升级的游戏显然已经失去了原有的魅力，动人的故事背景是吸引玩家的一个先决条件，流畅的剧情是黏合用户的必要条件。</p>
<p>    完善的程序架构</p>
<p>一直很讨厌提架构这个词，因为到现在我也不知道啥是架构，架构师依然是神秘的东西。我所谓的架构，是要作出一套程序，而程序可伸缩，可扩展，灵活自由，不会因为一点小的改动而逼疯程序员，更不会因为编码人员的牢骚而影响游戏的运营。程序要兼顾开发，策划，运营，运维多个部门，总之一句话：大家好才是真的好。</p>
<p>    强大的运营支持系统</p>
<p>    公司总是要盈利的，而且，不管做任何项目之前都得把这个事情想在前头。记住：老板得养活一个公司的人，投资人需要高额的利润。别听那帮人瞎扯：当时我们只想做用户，没想挣钱！那些人智商都不低，不用怀疑。任何事情都要提前想到，运营系统虽然是游戏内测公测很久才用得着的，但一定要在前期考虑进去。虽然收费系统，支付系统是无用的，但行为分析，数据分析，bug跟踪，用户反馈，推广系统，这些系统在游戏测试的时候既能发挥起作用，在数据基础上的数据挖掘更是游戏发展的风向标。</p>
<p>    团队</p>
<p>    没有一个人的英雄，尤其在IT这个圈子。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/13/%e5%a6%82%e4%bd%95%e6%89%8d%e8%83%bd%e4%bd%9c%e5%87%ba%e4%b8%80%e6%ac%be%e5%a5%bd%e7%9a%84%e6%b8%b8%e6%88%8f.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>啥也不说了！－百度，我祝福你祖宗八辈。</title>
		<link>http://www.sunboyu.cn/2009/05/09/%e5%95%a5%e4%b9%9f%e4%b8%8d%e8%af%b4%e4%ba%86%ef%bc%81%ef%bc%8d%e7%99%be%e5%ba%a6%ef%bc%8c%e6%88%91%e7%a5%9d%e7%a6%8f%e4%bd%a0%e7%a5%96%e5%ae%97%e5%85%ab%e8%be%88%e3%80%82.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/09/%e5%95%a5%e4%b9%9f%e4%b8%8d%e8%af%b4%e4%ba%86%ef%bc%81%ef%bc%8d%e7%99%be%e5%ba%a6%ef%bc%8c%e6%88%91%e7%a5%9d%e7%a6%8f%e4%bd%a0%e7%a5%96%e5%ae%97%e5%85%ab%e8%be%88%e3%80%82.shtml#comments</comments>
		<pubDate>Sat, 09 May 2009 00:45:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[baidu]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=699</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-2.jpg"><img class="aligncenter size-full wp-image-700" title="e69caae591bde5908d-2" src="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-2.jpg" alt="e69caae591bde5908d-2" width="322" height="173" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-11.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-11.jpg" alt="e69caae591bde5908d-11" title="e69caae591bde5908d-11" width="311" height="180" class="aligncenter size-full wp-image-701" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/09/%e5%95%a5%e4%b9%9f%e4%b8%8d%e8%af%b4%e4%ba%86%ef%bc%81%ef%bc%8d%e7%99%be%e5%ba%a6%ef%bc%8c%e6%88%91%e7%a5%9d%e7%a6%8f%e4%bd%a0%e7%a5%96%e5%ae%97%e5%85%ab%e8%be%88%e3%80%82.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>陪大亮加班之所想</title>
		<link>http://www.sunboyu.cn/2009/05/09/%e9%99%aa%e5%a4%a7%e4%ba%ae%e5%8a%a0%e7%8f%ad%e4%b9%8b%e6%89%80%e6%83%b3.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/09/%e9%99%aa%e5%a4%a7%e4%ba%ae%e5%8a%a0%e7%8f%ad%e4%b9%8b%e6%89%80%e6%83%b3.shtml#comments</comments>
		<pubDate>Sat, 09 May 2009 00:37:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[时间]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=697</guid>
		<description><![CDATA[大亮又在加班，看来无双休还是小事，这么下去人的肉身能不能保全都是问题。
问题不大，琐碎的JS问题，不能算新手，但js的确是让人头疼的问题，何况人家是javaer。
想起了我刚毕业那股松散浪荡劲，后悔我的时间，我的青春。
客户给钱就能当大爷，老板给钱就能当黄世仁。这是千古不变的道理。
Business is business-抛开这些来讲，就是纯扯淡了。
耽误了两个小时的思考时间。一会要补上。
再也不敢浪费时间了。
]]></description>
			<content:encoded><![CDATA[<p>大亮又在加班，看来无双休还是小事，这么下去人的肉身能不能保全都是问题。</p>
<p>问题不大，琐碎的JS问题，不能算新手，但js的确是让人头疼的问题，何况人家是javaer。</p>
<p>想起了我刚毕业那股松散浪荡劲，后悔我的时间，我的青春。</p>
<p>客户给钱就能当大爷，老板给钱就能当黄世仁。这是千古不变的道理。</p>
<p>Business is business-抛开这些来讲，就是纯扯淡了。</p>
<p>耽误了两个小时的思考时间。一会要补上。</p>
<p>再也不敢浪费时间了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/09/%e9%99%aa%e5%a4%a7%e4%ba%ae%e5%8a%a0%e7%8f%ad%e4%b9%8b%e6%89%80%e6%83%b3.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Smarty分页类修正版</title>
		<link>http://www.sunboyu.cn/2009/05/08/smarty%e5%88%86%e9%a1%b5%e7%b1%bb%e4%bf%ae%e6%ad%a3%e7%89%88.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/08/smarty%e5%88%86%e9%a1%b5%e7%b1%bb%e4%bf%ae%e6%ad%a3%e7%89%88.shtml#comments</comments>
		<pubDate>Thu, 07 May 2009 19:59:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=691</guid>
		<description><![CDATA[原来写的分页类有问题，经过排查，发现一个变量用错了，修改之
效果,很简单，黑白配，有心的人可以自己修改一下风格，欢迎共享

PHP部分
&#60; ?php
/*&#160; Page.Class.php
&#160;*&#160; Page
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2009 05 07&#160; sunboyu@gmail.com
&#160;*&#160; Demo
	$page = new Page( 1 , 'v_user' , '*' , '' );
	$rs = $page-&#62;__getlist();
	$smarty-&#62;assign(&#34;page&#34;,$page-&#62;__getpagelist());
&#160;*/
&#160;class Page
&#160;{
	 public $count;&#160; &#160; &#160; #结果总数
	 public $page;&#160; &#160; &#160; &#160;#当前页
	 public $pagesize;&#160; &#160;#每页结果数
	 public $pagecount;&#160; #翻页数
	 public $baseurl;&#160; &#160; #url
	 public [...]]]></description>
			<content:encoded><![CDATA[<p>原来写的分页类有问题，经过排查，发现一个变量用错了，修改之</p>
<p>效果,很简单，黑白配，有心的人可以自己修改一下风格，欢迎共享</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-1.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-1.jpg" alt="e69caae591bde5908d-1" title="e69caae591bde5908d-1" width="589" height="77" class="aligncenter size-full wp-image-695" /></a></p>
<p>PHP部分</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">&lt; ?php</li>
<li>/*&nbsp; Page.Class.php</li>
<li>&nbsp;*&nbsp; Page</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2009 05 07&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>	$page = new Page( 1 , 'v_user' , '*' , '' );</li>
<li>	$rs = $page-&gt;__getlist();</li>
<li>	$smarty-&gt;assign(&quot;page&quot;,$page-&gt;__getpagelist());</li>
<li>&nbsp;*/</li>
<li>&nbsp;class Page</li>
<li>&nbsp;{</li>
<li>	 public $count;&nbsp; &nbsp; &nbsp; #结果总数</li>
<li>	 public $page;&nbsp; &nbsp; &nbsp; &nbsp;#当前页</li>
<li>	 public $pagesize;&nbsp; &nbsp;#每页结果数</li>
<li>	 public $pagecount;&nbsp; #翻页数</li>
<li>	 public $baseurl;&nbsp; &nbsp; #url</li>
<li>	 public $result;&nbsp; &nbsp; &nbsp;#结果数组集</li>
<li>	 public $pagelist;&nbsp; &nbsp;#每翻页数</li>
<li>	 public $db;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#数据库连接</li>
<li>	 public $table;&nbsp; &nbsp; &nbsp; #要查询的表</li>
<li>	 public $fileds;&nbsp; &nbsp; &nbsp;#要返回的字段</li>
<li>	 public $where;&nbsp; &nbsp; &nbsp; #where条件</li>
<li>&nbsp;</li>
<li>	 #构造函数，初始化变量</li>
<li>	 function __construct( $page , $table , $fields = '*' , $where = false , $baseurl = false )</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;global $_CFG,$db;</li>
<li>		 $this-&gt;db&nbsp; &nbsp; &nbsp; &nbsp; = $db;</li>
<li>		 $this-&gt;table&nbsp; &nbsp; &nbsp;= $table;</li>
<li>		 $this-&gt;page&nbsp; &nbsp; &nbsp; = isset($page) ? intval($page) : 1;</li>
<li>		 $this-&gt;fileds&nbsp; &nbsp; = $fields;</li>
<li>		 $this-&gt;pagesize&nbsp; = $_CFG['pagesize'];</li>
<li>		 $this-&gt;baseurl&nbsp; &nbsp;= ($baseurl!=false) ? $baseurl : $this-&gt;__geturl();</li>
<li>		 $this-&gt;pagelist&nbsp; = $_CFG['pagelist'];</li>
<li>		 $this-&gt;where&nbsp; &nbsp; &nbsp;= $where;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得当前url</li>
<li>	 function __geturl()</li>
<li>	 {</li>
<li>		parse_str($_SERVER['QUERY_STRING'],$str);</li>
<li>		if(isset($str['page']))</li>
<li>		{</li>
<li>			unset($str['page']);</li>
<li>		}</li>
<li>		return count($str) &gt; 0 ? &quot;?&quot;.http_build_query($str) : &quot;?&quot;;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得记录集</li>
<li>	 function __getlist()</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;#获得count记录</li>
<li>		 $sql = sprintf(&quot;SELECT COUNT(*) AS table_count FROM %s %s&quot;,$this-&gt;table,(($this-&gt;where!=false) ? &quot; WHERE &quot;.$this-&gt;where : ''));</li>
<li>		 $rs = $this-&gt;db-&gt;fetch( $sql );</li>
<li>		 $this-&gt;count = $rs['table_count'];</li>
<li>	&nbsp; &nbsp; &nbsp;$offset = ($this-&gt;page-1)*$this-&gt;pagesize-1;</li>
<li>	&nbsp; &nbsp; &nbsp;$sql = sprintf(&quot;SELECT %s FROM %s %s LIMIT %d,%d&quot;,$this-&gt;fileds,$this-&gt;table,(($this-&gt;where!=false) ? &quot; WHERE &quot;.$this-&gt;where : ''),$this-&gt;pagesize*($this-&gt;page-1),$this-&gt;pagesize);</li>
<li>		 #echo $sql;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; $list = $this-&gt;db-&gt;fetchAll( $sql );</li>
<li>		 return $list;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得分页列表</li>
<li>	 function __getpagelist()</li>
<li>	 {</li>
<li>		 $this-&gt;result['count'] = $this-&gt;count;</li>
<li>		 $this-&gt;result['page'] = $this-&gt;page;</li>
<li>		 $this-&gt;result['pagesize'] = $this-&gt;pagesize;</li>
<li>		 $this-&gt;result['pagecount'] = ceil($this-&gt;count/$this-&gt;pagesize);</li>
<li>		 if($this-&gt;result['pagecount']&lt; =1) //只有一页以下</li>
<li>		 {</li>
<li>			 $this-&gt;result['pagelist'] = 0;</li>
<li>		 }</li>
<li>		 else //一页以上</li>
<li>		 {</li>
<li>			 #前一页，第一页的算法</li>
<li>			 $this-&gt;result['first'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 $this-&gt;result['pre'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 #后一页，最后一页的算法</li>
<li>			 $this-&gt;result['next'] = ($this-&gt;page == $this-&gt;result['pagecount'] ) ? 0 : 1;</li>
<li>			 $this-&gt;result['last'] = ($this-&gt;page == $this-&gt;result['pagecount'] ) ? 0 : 1;</li>
<li>&nbsp;</li>
<li>			 #起始</li>
<li>			 $pagearray = array();</li>
<li>			 $start = floor(($this-&gt;page-1)/10)*10+1;</li>
<li>			 for($i=0;$i&amp;lt;10;$i++)</li>
<li>			 {</li>
<li>			&nbsp; &nbsp; &nbsp;if( ($start+$i) &lt; = $this-&gt;result['pagecount'])</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['page'] = $start+$i; </li>
<li>				 }</li>
<li>				 if( ($start+$i) != $this-&gt;page )</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['link'] = 1; </li>
<li>				 }</li>
<li>			 }</li>
<li>			 #分页导航列表</li>
<li>			 $this-&gt;result['pagelist'] = $pagearray;</li>
<li>			 $this-&gt;result['baseurl'] = $this-&gt;baseurl;</li>
<li>		 }</li>
<li>		 return $this-&gt;result;</li>
<li>	 }</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>模板部分</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">&lt;div id=&quot;page&quot;&gt;</li>
<li>&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		共{{$page.count}}条数据 每页{{$page.pagesize}}条&nbsp; 共{{$page.pagecount}}页 当前第{{$page.page}}页</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.pagecount&gt;1}}</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;首页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		首页</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;上一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		上一页</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if ($vols.page &gt; 0 ) &amp;&amp; ($vols.page &lt; = $page.pagecount) }}</li>
<li>				{{if $vols.link eq 1}}</li>
<li>				&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]</li>
<li>				{{else}}</li>
<li>				[{{$vols.page}}]</li>
<li>				{{/if}}</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.page+1}}&quot;&gt;下一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		下一页</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.pagecount}}&quot;&gt;尾页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		尾页</li>
<li>		{{/if}}</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/div&gt;</li></ol></div>
<p>补充一个demo</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">#PHP部分</li>
<li>$page = new Page( $page , $this-&gt;area_table , $fields = '*' , $where);</li>
<li>$result['rs'] = $page-&gt;__getlist();</li>
<li>$result['page'] = $page-&gt;__getpagelist();</li>
<li>$smarty-&gt;assign(&quot;list&quot;,$result['rs']);</li>
<li>$smarty-&gt;assign(&quot;page&quot;,$result['page']);</li>
<li>$smarty-&gt;display('list.tpl');</li>
<li>#模板里边只要引用这个分页模板即可</li>
<li>{{include file=$smarty.const.Tpl|cat:&quot;/Page.tpl&quot;}}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/08/smarty%e5%88%86%e9%a1%b5%e7%b1%bb%e4%bf%ae%e6%ad%a3%e7%89%88.shtml/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>我的框架依然有人记得</title>
		<link>http://www.sunboyu.cn/2009/05/05/%e6%88%91%e7%9a%84%e6%a1%86%e6%9e%b6%e4%be%9d%e7%84%b6%e6%9c%89%e4%ba%ba%e8%ae%b0%e5%be%97.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/05/%e6%88%91%e7%9a%84%e6%a1%86%e6%9e%b6%e4%be%9d%e7%84%b6%e6%9c%89%e4%ba%ba%e8%ae%b0%e5%be%97.shtml#comments</comments>
		<pubDate>Tue, 05 May 2009 11:59:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=687</guid>
		<description><![CDATA[去年尝试开发了一个框架，开发了一半。或者说第一阶段开发完成。
为了开发这个框架，阅读了大量框架代码，框架思想，然后精心去调试了自己的框架。
在框架完成后，我并没有去使用。
框架的初衷是为了性能跟开发规范，而我在这个框架下兼职无法写代码，无法发挥。自从学写PHP，我从来没受什么规矩约束过，向来是自由度很高。而规则则是多年编程留下的一些经验。后来发现我的风格实在无法用框架来约束，所以放弃使用这个框架，依然按照自己的风格进行开发。
但反思，为什么有很多的框架在项目中应用－那就是规范。不成规矩，不成方圆。尤其在团队合作开发过程中，团队利益就高于个体利益。如果每个人能损失一点个人利益，那团队就可能拥有至高的利益。
因此，我又尝试开发了一套闭源自用的框架。其既集成了框架的一些模块化，规范化的理念，又适合程序员在小范围内自由发挥。后来我又加上了一些管理功能，通用模块系统，现在我可以在这个上边快速开发，又可以很轻松得把模块拆离重组。
内心我并没有把他当作框架，叫做程序“模子”会更好，感谢lamp群友给这么个名字。
]]></description>
			<content:encoded><![CDATA[<p>去年尝试开发了一个框架，开发了一半。或者说第一阶段开发完成。</p>
<p>为了开发这个框架，阅读了大量框架代码，框架思想，然后精心去调试了自己的框架。</p>
<p>在框架完成后，我并没有去使用。</p>
<p>框架的初衷是为了性能跟开发规范，而我在这个框架下兼职无法写代码，无法发挥。自从学写PHP，我从来没受什么规矩约束过，向来是自由度很高。而规则则是多年编程留下的一些经验。后来发现我的风格实在无法用框架来约束，所以放弃使用这个框架，依然按照自己的风格进行开发。</p>
<p>但反思，为什么有很多的框架在项目中应用－那就是规范。不成规矩，不成方圆。尤其在团队合作开发过程中，团队利益就高于个体利益。如果每个人能损失一点个人利益，那团队就可能拥有至高的利益。</p>
<p>因此，我又尝试开发了一套闭源自用的框架。其既集成了框架的一些模块化，规范化的理念，又适合程序员在小范围内自由发挥。后来我又加上了一些管理功能，通用模块系统，现在我可以在这个上边快速开发，又可以很轻松得把模块拆离重组。</p>
<p>内心我并没有把他当作框架，叫做程序“模子”会更好，感谢lamp群友给这么个名字。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/05/%e6%88%91%e7%9a%84%e6%a1%86%e6%9e%b6%e4%be%9d%e7%84%b6%e6%9c%89%e4%ba%ba%e8%ae%b0%e5%be%97.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>蓝芒主机管理系统简析</title>
		<link>http://www.sunboyu.cn/2009/05/02/%e8%93%9d%e8%8a%92%e4%b8%bb%e6%9c%ba%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%ae%80%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/02/%e8%93%9d%e8%8a%92%e4%b8%bb%e6%9c%ba%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%ae%80%e6%9e%90.shtml#comments</comments>
		<pubDate>Sat, 02 May 2009 12:24:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[蓝芒]]></category>
		<category><![CDATA[虚拟主机管理]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=684</guid>
		<description><![CDATA[最近问了下蓝芒的销售，一套全功能的主机管理系统网络版是5000来块，而且现在可以打8折，也就是4000。
蓝芒的软件可以说是国内拔尖的，论技术，可能仅次于创值立信。这个价格多少对我写自己的主机管理系统有点打击。如果只是为了完善我的主机业务，买一套软件比我写可划算的多，而且他们有现成的售后队伍。
不过我还是网上google了一套破解的系统先看看。
昨天的帖子也说了，我弄了PHP DeZend系统去反解他们代码，很顺利，整套代码跃然呈现出来，最新版。5.0，程序注释都是5.1，估计是最新版。
能反解的，只是他的主控端，集成了业务系统。而被控端是一个windows的被控程序，没有反解，因为我没那个能耐。
下边是我阅读代码后分析的其软件架构：

主控端可以看出集成了业务平台，管理平台，代理平台等应用，而被控端可以是windows或者linux等操作系统。
主控端无需考虑操作系统，只需要销售产品，而被控端根据主控端传来的参数执行指令，生成产品。
这里蓝芒设计比较巧妙的，就是对windows和linux的一些相似业务做了规整，作出了通用的控制接口，可无缝去对接w或l的操作系统。
经过考虑，我决定还是购买一套蓝芒的系统，不过，我自己的系统依然准备进行开源开发，重新整合。
]]></description>
			<content:encoded><![CDATA[<p>最近问了下蓝芒的销售，一套全功能的主机管理系统网络版是5000来块，而且现在可以打8折，也就是4000。</p>
<p>蓝芒的软件可以说是国内拔尖的，论技术，可能仅次于创值立信。这个价格多少对我写自己的主机管理系统有点打击。如果只是为了完善我的主机业务，买一套软件比我写可划算的多，而且他们有现成的售后队伍。</p>
<p>不过我还是网上google了一套破解的系统先看看。</p>
<p>昨天的帖子也说了，我弄了PHP DeZend系统去反解他们代码，很顺利，整套代码跃然呈现出来，最新版。5.0，程序注释都是5.1，估计是最新版。</p>
<p>能反解的，只是他的主控端，集成了业务系统。而被控端是一个windows的被控程序，没有反解，因为我没那个能耐。</p>
<p>下边是我阅读代码后分析的其软件架构：</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/05/e8939de88a92.jpg"><img class="aligncenter size-full wp-image-685" title="e8939de88a92" src="http://www.sunboyu.cn/upfiles/2009/05/e8939de88a92.jpg" alt="e8939de88a92" width="800" height="486" /></a></p>
<p>主控端可以看出集成了业务平台，管理平台，代理平台等应用，而被控端可以是windows或者linux等操作系统。</p>
<p>主控端无需考虑操作系统，只需要销售产品，而被控端根据主控端传来的参数执行指令，生成产品。</p>
<p>这里蓝芒设计比较巧妙的，就是对windows和linux的一些相似业务做了规整，作出了通用的控制接口，可无缝去对接w或l的操作系统。</p>
<p>经过考虑，我决定还是购买一套蓝芒的系统，不过，我自己的系统依然准备进行开源开发，重新整合。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/02/%e8%93%9d%e8%8a%92%e4%b8%bb%e6%9c%ba%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e7%ae%80%e6%9e%90.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP DeZend真的很爽</title>
		<link>http://www.sunboyu.cn/2009/05/02/php-dezend%e7%9c%9f%e7%9a%84%e5%be%88%e7%88%bd.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/02/php-dezend%e7%9c%9f%e7%9a%84%e5%be%88%e7%88%bd.shtml#comments</comments>
		<pubDate>Fri, 01 May 2009 16:19:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[dezend]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=681</guid>
		<description><![CDATA[突然在网上发现一套我渴望已久的IDC管理软件，下载下来，除用vb之类的加密外，其源代码是用zend加密过的PHP代码。大喜，网上找到这个工具，然后迅速反接后，看到所有源代码。开始研究。
PHP DeZend
]]></description>
			<content:encoded><![CDATA[<p>突然在网上发现一套我渴望已久的IDC管理软件，下载下来，除用vb之类的加密外，其源代码是用zend加密过的PHP代码。大喜，网上找到这个工具，然后迅速反接后，看到所有源代码。开始研究。</p>
<p><a href='http://www.sunboyu.cn/upfiles/2009/05/phpe7a0b4e8a7a3dezender5.rar'>PHP DeZend</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/02/php-dezend%e7%9c%9f%e7%9a%84%e5%be%88%e7%88%bd.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SVN两个小命令</title>
		<link>http://www.sunboyu.cn/2009/04/30/svn%e4%b8%a4%e4%b8%aa%e5%b0%8f%e5%91%bd%e4%bb%a4.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/30/svn%e4%b8%a4%e4%b8%aa%e5%b0%8f%e5%91%bd%e4%bb%a4.shtml#comments</comments>
		<pubDate>Wed, 29 Apr 2009 17:04:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[创建]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=678</guid>
		<description><![CDATA[./svnadmin create /home/sunboyu/svndata/bj1998
./svnserve -d &#8211;listen-port 端口号 -r /home/sunboyu/svndata/
 /var/opt/subversion-1.4.3/bin/svn checkout  svn://localhost:20002/tools ./ &#8211;username sun &#8211;password sun
]]></description>
			<content:encoded><![CDATA[<p>./svnadmin create /home/sunboyu/svndata/bj1998</p>
<p>./svnserve -d &#8211;listen-port 端口号 -r /home/sunboyu/svndata/</p>
<p> /var/opt/subversion-1.4.3/bin/svn checkout  svn://localhost:20002/tools ./ &#8211;username sun &#8211;password sun</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/30/svn%e4%b8%a4%e4%b8%aa%e5%b0%8f%e5%91%bd%e4%bb%a4.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>市场驱动产品与产品驱动销售</title>
		<link>http://www.sunboyu.cn/2009/04/29/%e5%b8%82%e5%9c%ba%e9%a9%b1%e5%8a%a8%e4%ba%a7%e5%93%81%e4%b8%8e%e4%ba%a7%e5%93%81%e9%a9%b1%e5%8a%a8%e9%94%80%e5%94%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/29/%e5%b8%82%e5%9c%ba%e9%a9%b1%e5%8a%a8%e4%ba%a7%e5%93%81%e4%b8%8e%e4%ba%a7%e5%93%81%e9%a9%b1%e5%8a%a8%e9%94%80%e5%94%ae.shtml#comments</comments>
		<pubDate>Tue, 28 Apr 2009 20:59:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[市场]]></category>
		<category><![CDATA[销售]]></category>
		<category><![CDATA[驱动]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=673</guid>
		<description><![CDATA[貌似两个紧密相连的概念，可在做事上，是迥然不同的两种表现。
销售出身的人，总能把破烂给折腾出去，他们不在乎技术有多好，产品有多烂，反正他们的任务就是把客户拉来，让钱爬在自己的账户上。
这样苦不堪言的是那些苦命攒代码的人，不得不迎合销售千变万化的销售策略和肆意夸大而进行的承诺。
当然对于技术出身的销售来说，在面对客户相对谨慎，在对产品的把握上显得拘谨，但这样做下来的方案变故会比纯销售做事稳当得多。
对于一个公司，无论是谁来驱动谁，总得有一个原始动力，原始动力丢失的时候，公司就会陷入浑沌状态。
这个动力一般是市场来驱动，对于创业者，更多的动力是那股原始的冲劲。
最近看了一本书，大概悟出这些道理。通过最近做产品，发现自己弱点很明显，还不能从大局去考虑事情，看技术之外的事情肤浅。
从今天作为一个起点，努力客服。
]]></description>
			<content:encoded><![CDATA[<p>貌似两个紧密相连的概念，可在做事上，是迥然不同的两种表现。</p>
<p>销售出身的人，总能把破烂给折腾出去，他们不在乎技术有多好，产品有多烂，反正他们的任务就是把客户拉来，让钱爬在自己的账户上。</p>
<p>这样苦不堪言的是那些苦命攒代码的人，不得不迎合销售千变万化的销售策略和肆意夸大而进行的承诺。</p>
<p>当然对于技术出身的销售来说，在面对客户相对谨慎，在对产品的把握上显得拘谨，但这样做下来的方案变故会比纯销售做事稳当得多。</p>
<p>对于一个公司，无论是谁来驱动谁，总得有一个原始动力，原始动力丢失的时候，公司就会陷入浑沌状态。</p>
<p>这个动力一般是市场来驱动，对于创业者，更多的动力是那股原始的冲劲。</p>
<p>最近看了一本书，大概悟出这些道理。通过最近做产品，发现自己弱点很明显，还不能从大局去考虑事情，看技术之外的事情肤浅。</p>
<p>从今天作为一个起点，努力客服。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/29/%e5%b8%82%e5%9c%ba%e9%a9%b1%e5%8a%a8%e4%ba%a7%e5%93%81%e4%b8%8e%e4%ba%a7%e5%93%81%e9%a9%b1%e5%8a%a8%e9%94%80%e5%94%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>产品需要灵魂</title>
		<link>http://www.sunboyu.cn/2009/04/28/%e4%ba%a7%e5%93%81%e9%9c%80%e8%a6%81%e7%81%b5%e9%ad%82.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/28/%e4%ba%a7%e5%93%81%e9%9c%80%e8%a6%81%e7%81%b5%e9%ad%82.shtml#comments</comments>
		<pubDate>Mon, 27 Apr 2009 21:52:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[产品]]></category>
		<category><![CDATA[灵魂]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=671</guid>
		<description><![CDATA[http://www.sunboyu.cn/2008/11/10/%E7%BD%91%E7%AB%99%E7%9A%84%E7%94%9F%E5%91%BD%E4%B8%8E%E7%81%B5%E9%AD%82.shtml
这是我去年写的一个日志。网站，需要灵魂。
岂止是网站，任何一款产品，都需要他的灵魂。
今天的产品设计方案被上边否定了，仔细琢磨，原来我在做产品，虽然是一个技术可行的产品，但没有灵魂。没有人会对一具僵尸有感情，没有用户会对一个没有灵魂的产品感兴趣。
下午匆匆给产品附加了灵魂，勉强被通过。
底下还要继续给产品人性化，这个项目我吃定了。
]]></description>
			<content:encoded><![CDATA[<p>http://www.sunboyu.cn/2008/11/10/%E7%BD%91%E7%AB%99%E7%9A%84%E7%94%9F%E5%91%BD%E4%B8%8E%E7%81%B5%E9%AD%82.shtml</p>
<p>这是我去年写的一个日志。网站，需要灵魂。</p>
<p>岂止是网站，任何一款产品，都需要他的灵魂。</p>
<p>今天的产品设计方案被上边否定了，仔细琢磨，原来我在做产品，虽然是一个技术可行的产品，但没有灵魂。没有人会对一具僵尸有感情，没有用户会对一个没有灵魂的产品感兴趣。</p>
<p>下午匆匆给产品附加了灵魂，勉强被通过。</p>
<p>底下还要继续给产品人性化，这个项目我吃定了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/28/%e4%ba%a7%e5%93%81%e9%9c%80%e8%a6%81%e7%81%b5%e9%ad%82.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python写的数据库备份程序</title>
		<link>http://www.sunboyu.cn/2009/04/22/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e5%ba%93%e5%a4%87%e4%bb%bd%e7%a8%8b%e5%ba%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/22/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e5%ba%93%e5%a4%87%e4%bb%bd%e7%a8%8b%e5%ba%8f.shtml#comments</comments>
		<pubDate>Tue, 21 Apr 2009 17:55:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[mysqldump]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=664</guid>
		<description><![CDATA[下载地址:mysqlbak
#!/var/opt/python-2.5/bin/python
import os
import time
import MySQLdb
&#160;
&#160;
CFG = {}
CFG['root'] = {}
CFG['root']['hostname'] = 'localhost'
CFG['root']['username'] = 'root'
CFG['root']['password'] = 'test'
&#160;
&#160;
CFG['mysqldump'] = '/opt/mysql-5.0.22/bin/mysqldump'
&#160;
CFG['time'] = time.strftime(&#34;%Y-%m-%d&#34;, time.localtime(time.time()) ) 
&#160;
CFG['bakpath'] = '/tmp/' + CFG['time']
CFG['mainbak'] = '/home/sunboyu/databak/' + CFG['time']
&#160;
&#160;
if os.path.exists( CFG['bakpath'] ) == False:
&#160;&#160; &#160;os.mkdir( CFG['bakpath'] )
if os.path.exists( CFG['mainbak'] ) == False:
&#160;&#160; &#160;os.mkdir( CFG['mainbak'] )
&#160;
def mysql_database_bak( database ):
&#160;&#160; &#160;global CFG
&#160;&#160; &#160;DIR = CFG['bakpath'] + &#34;/&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>下载地址:<a href='http://www.sunboyu.cn/upfiles/2009/04/mysqlbak.rar'>mysqlbak</a></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">#!/var/opt/python-2.5/bin/python</li>
<li>import os</li>
<li>import time</li>
<li>import MySQLdb</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>CFG = {}</li>
<li>CFG['root'] = {}</li>
<li>CFG['root']['hostname'] = 'localhost'</li>
<li>CFG['root']['username'] = 'root'</li>
<li>CFG['root']['password'] = 'test'</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>CFG['mysqldump'] = '/opt/mysql-5.0.22/bin/mysqldump'</li>
<li>&nbsp;</li>
<li>CFG['time'] = time.strftime(&quot;%Y-%m-%d&quot;, time.localtime(time.time()) ) </li>
<li>&nbsp;</li>
<li>CFG['bakpath'] = '/tmp/' + CFG['time']</li>
<li>CFG['mainbak'] = '/home/sunboyu/databak/' + CFG['time']</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>if os.path.exists( CFG['bakpath'] ) == False:</li>
<li>&nbsp;&nbsp; &nbsp;os.mkdir( CFG['bakpath'] )</li>
<li>if os.path.exists( CFG['mainbak'] ) == False:</li>
<li>&nbsp;&nbsp; &nbsp;os.mkdir( CFG['mainbak'] )</li>
<li>&nbsp;</li>
<li>def mysql_database_bak( database ):</li>
<li>&nbsp;&nbsp; &nbsp;global CFG</li>
<li>&nbsp;&nbsp; &nbsp;DIR = CFG['bakpath'] + &quot;/&quot; + database</li>
<li>&nbsp;&nbsp; &nbsp;if os.path.exists( DIR )==False:</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;os.mkdir( DIR )</li>
<li>&nbsp;&nbsp; &nbsp;conn = MySQLdb.connect( host = CFG['root']['hostname'] , user = CFG['root']['username'] , passwd = CFG['root']['password'] , db = database )</li>
<li>&nbsp;&nbsp; &nbsp;db = conn.cursor()</li>
<li>&nbsp;&nbsp; &nbsp;sql = &quot;show tables&quot;;</li>
<li>&nbsp;&nbsp; &nbsp;db.execute( sql )</li>
<li>&nbsp;&nbsp; &nbsp;result = {}</li>
<li>&nbsp;&nbsp; &nbsp;for recordline in db.fetchall():</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;os.system( CFG['mysqldump'] + &quot; --opt&nbsp; &quot; + database + &quot; &quot; + recordline[0] + &quot; -u&quot; + CFG['root']['username'] + &quot; -p&quot; + CFG['root']['password'] + &quot; &gt; &quot; + DIR + &quot;/&quot; + database + &quot;_&quot; + recordline[0] + &quot;.sql&quot; )</li>
<li>&nbsp;&nbsp; &nbsp;os.system( &quot;tar cvf &quot; + CFG['bakpath'] + &quot;/&quot; + database + &quot;.tar.gz &quot; +&nbsp; CFG['bakpath'] + &quot;/&quot; + database )</li>
<li>&nbsp;&nbsp; &nbsp;os.system( &quot;mv &quot; + CFG['bakpath'] + &quot;/&quot; + database + &quot;.tar.gz &quot; + CFG['mainbak'] + '/' )</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>conn = MySQLdb.connect( host = CFG['root']['hostname'] , user = CFG['root']['username'] , passwd = CFG['root']['password'] , db = 'test' )</li>
<li>sql = &quot;show databases&quot;;</li>
<li>db = conn.cursor()</li>
<li>db.execute( sql )</li>
<li>result = {}</li>
<li>bigcount = 0</li>
<li>for recordline in db.fetchall():</li>
<li>	littlecount = 0</li>
<li>	result[bigcount] = {}</li>
<li>	for colnum in db.description:</li>
<li>	&nbsp; &nbsp; result[bigcount][colnum[0]] = recordline[littlecount]</li>
<li>	&nbsp; &nbsp; littlecount += 1</li>
<li>	bigcount += 1</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>for tables in result:</li>
<li>&nbsp;&nbsp; &nbsp;mysql_database_bak( result[tables]['Database'] )</li>
<li>&nbsp;</li>
<li>os.system( &quot;rm -rf /tmp/&quot; + CFG['time'] )&nbsp; #警告 rm -rf 这个命令相当危险，使用一定要谨慎</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/22/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e5%ba%93%e5%a4%87%e4%bb%bd%e7%a8%8b%e5%ba%8f.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>python2.5+MySQLdb1.2.2安装</title>
		<link>http://www.sunboyu.cn/2009/04/22/python25mysqldb122%e5%ae%89%e8%a3%85.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/22/python25mysqldb122%e5%ae%89%e8%a3%85.shtml#comments</comments>
		<pubDate>Tue, 21 Apr 2009 16:04:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[MySQLdb]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=662</guid>
		<description><![CDATA[最近比较喜欢用python写一些shell，又因为要跟mysql交互，所以安装python2.5＋MySQLdb1.2.2。
选择python而没有选择perl，c之类，是因为python语法相对简单，适合我。其实php也可以，但linux默认安装python并大量使用，而并不默认安装PHP。
在安装过程中遇到很多问题，暂不罗列，google是半万能的，多尝试。
使用这两个版本，是因为在编译过程中的问题，逼我仔细阅读了产品稳当，发现版本依赖性很强，最终选择的这两个。
python编译很简单 ./configure &#8211;prefix=/*****  就OK了。
MySQLdb的安装也很简单,但首先要修改site.cfg的参数，其中threadsafe和mysql_config的值要根据情况修改。
python setup.py build
（如果必要，中间运行这个  ln -s /opt/mysql-5.0.22/lib/libmysqlclient.a ./build/lib.linux-x86_64-2.4/_mysql.so 路径自己调整）
python setup.py install
]]></description>
			<content:encoded><![CDATA[<p>最近比较喜欢用python写一些shell，又因为要跟mysql交互，所以安装python2.5＋MySQLdb1.2.2。</p>
<p>选择python而没有选择perl，c之类，是因为python语法相对简单，适合我。其实php也可以，但linux默认安装python并大量使用，而并不默认安装PHP。</p>
<p>在安装过程中遇到很多问题，暂不罗列，google是半万能的，多尝试。</p>
<p>使用这两个版本，是因为在编译过程中的问题，逼我仔细阅读了产品稳当，发现版本依赖性很强，最终选择的这两个。</p>
<p>python编译很简单 ./configure &#8211;prefix=/*****  就OK了。</p>
<p>MySQLdb的安装也很简单,但首先要修改site.cfg的参数，其中threadsafe和mysql_config的值要根据情况修改。</p>
<p>python setup.py build<br />
（如果必要，中间运行这个  ln -s /opt/mysql-5.0.22/lib/libmysqlclient.a ./build/lib.linux-x86_64-2.4/_mysql.so 路径自己调整）<br />
python setup.py install</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/22/python25mysqldb122%e5%ae%89%e8%a3%85.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>三维仿真技术的发展和应用</title>
		<link>http://www.sunboyu.cn/2009/04/21/%e4%b8%89%e7%bb%b4%e4%bb%bf%e7%9c%9f%e6%8a%80%e6%9c%af%e7%9a%84%e5%8f%91%e5%b1%95%e5%92%8c%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/21/%e4%b8%89%e7%bb%b4%e4%bb%bf%e7%9c%9f%e6%8a%80%e6%9c%af%e7%9a%84%e5%8f%91%e5%b1%95%e5%92%8c%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Mon, 20 Apr 2009 21:41:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[三维]]></category>
		<category><![CDATA[仿真]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=660</guid>
		<description><![CDATA[每天下班，我都能骑上自行车顺利回家，但那拥堵的道路却让我不堪忍受。于是，放下自行车，从车库里开出我那辆三菱跑车，飞奔在高速公路上。
我开到220KM/Hour，路上遇到一个山西的好友，打招呼之间，撞上了一辆的士。我的车翻滚了两圈，我居然又稳稳得跑了起来，而人毫发无损。
警车追来，可惜他的车远不如我，结果被我甩下。半个小时后，我又回到了家。
当然，这也许是做梦，但却不是梦。我在玩《极品飞车》游戏，计算机仿真的技术让我在忙碌一天后彻底放松。
仿真的汽车，高现实的场景模拟，给人心理无限愉悦，而这一些，仅需要一根网线和一台电脑。
尖端技术一般都用在军事，仿真模拟技术也一样，从最早的军用模拟，到高科技实验室，再到现在的大众消费，仅仅几十年。在大众消费领域，仿真技术广泛应用在娱乐休闲领域，如电脑游戏，各种游艺机设备。
平面模拟的效果终究是差的，于是出现立体模拟。
我见过最早的立体模拟设备也许就是街边的游艺厅了，两个牌就可以开一圈的赛车，还可以拿上强去剿匪。现在各种外设逐渐走向人们家庭。
罗技方向盘＋3D视频眼睛，能给你视觉，触觉上的高度仿真（当然没有那种摇晃的力学作用）。而一些实验室，已经开发出高度模拟特定环境的系统，如神洲飞船的模拟训练仓，海员训练的模拟水仓。
尖端技术向民用发展，不会是很长的，而在电脑技术和网络如此发达的今天，这些技术的整合，将给人们的生活带来惊人的变化。
也许游戏里发生那些，明天就走向了真实。
是期待，还是恐惧？
]]></description>
			<content:encoded><![CDATA[<p>每天下班，我都能骑上自行车顺利回家，但那拥堵的道路却让我不堪忍受。于是，放下自行车，从车库里开出我那辆三菱跑车，飞奔在高速公路上。</p>
<p>我开到220KM/Hour，路上遇到一个山西的好友，打招呼之间，撞上了一辆的士。我的车翻滚了两圈，我居然又稳稳得跑了起来，而人毫发无损。</p>
<p>警车追来，可惜他的车远不如我，结果被我甩下。半个小时后，我又回到了家。</p>
<p>当然，这也许是做梦，但却不是梦。我在玩《极品飞车》游戏，计算机仿真的技术让我在忙碌一天后彻底放松。</p>
<p>仿真的汽车，高现实的场景模拟，给人心理无限愉悦，而这一些，仅需要一根网线和一台电脑。</p>
<p>尖端技术一般都用在军事，仿真模拟技术也一样，从最早的军用模拟，到高科技实验室，再到现在的大众消费，仅仅几十年。在大众消费领域，仿真技术广泛应用在娱乐休闲领域，如电脑游戏，各种游艺机设备。</p>
<p>平面模拟的效果终究是差的，于是出现立体模拟。</p>
<p>我见过最早的立体模拟设备也许就是街边的游艺厅了，两个牌就可以开一圈的赛车，还可以拿上强去剿匪。现在各种外设逐渐走向人们家庭。</p>
<p>罗技方向盘＋3D视频眼睛，能给你视觉，触觉上的高度仿真（当然没有那种摇晃的力学作用）。而一些实验室，已经开发出高度模拟特定环境的系统，如神洲飞船的模拟训练仓，海员训练的模拟水仓。</p>
<p>尖端技术向民用发展，不会是很长的，而在电脑技术和网络如此发达的今天，这些技术的整合，将给人们的生活带来惊人的变化。</p>
<p>也许游戏里发生那些，明天就走向了真实。</p>
<p>是期待，还是恐惧？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/21/%e4%b8%89%e7%bb%b4%e4%bb%bf%e7%9c%9f%e6%8a%80%e6%9c%af%e7%9a%84%e5%8f%91%e5%b1%95%e5%92%8c%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iftop来查看linux的即时流量</title>
		<link>http://www.sunboyu.cn/2009/04/18/iftop%e6%9d%a5%e6%9f%a5%e7%9c%8blinux%e7%9a%84%e5%8d%b3%e6%97%b6%e6%b5%81%e9%87%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/18/iftop%e6%9d%a5%e6%9f%a5%e7%9c%8blinux%e7%9a%84%e5%8d%b3%e6%97%b6%e6%b5%81%e9%87%8f.shtml#comments</comments>
		<pubDate>Sat, 18 Apr 2009 00:59:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[iftop]]></category>
		<category><![CDATA[流量]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=658</guid>
		<description><![CDATA[http://ex-parrot.com/~pdw/iftop/download/?D=A
我也就纳闷，直接make &#038;&#038; make install就好了。
如此简单的东西，iftop就可以查看了。
]]></description>
			<content:encoded><![CDATA[<p>http://ex-parrot.com/~pdw/iftop/download/?D=A</p>
<p>我也就纳闷，直接make &#038;&#038; make install就好了。</p>
<p>如此简单的东西，iftop就可以查看了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/18/iftop%e6%9d%a5%e6%9f%a5%e7%9c%8blinux%e7%9a%84%e5%8d%b3%e6%97%b6%e6%b5%81%e9%87%8f.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>话说备份</title>
		<link>http://www.sunboyu.cn/2009/04/18/%e8%af%9d%e8%af%b4%e5%a4%87%e4%bb%bd.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/18/%e8%af%9d%e8%af%b4%e5%a4%87%e4%bb%bd.shtml#comments</comments>
		<pubDate>Sat, 18 Apr 2009 00:39:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[灾难备份]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=654</guid>
		<description><![CDATA[最近服务器down了几次，频繁装了几次系统，可谓筋疲力尽，最后一次面对IBM的机器，对柜发誓：机器再down，这辈子不摸服务器。
话是这么说，服务真down了还的去管。
不过管之前，有些臭事还是要做－灾难备份。
首先是什么需要备份：数据库当然要备份，文件当然要备份。貌似所有的企业都在备份这些。
熟悉windows2003的网管都知道，2003提供了方便的配置文件备份，这个貌似是linux所没有的。打上标记。
用户需要备份么，我指linux系统帐号。备份一下吧，如果你有依赖系统账户的程序。
应用软件的配置文件是否要备份？如果你的配置很专业复杂个性，备份一下吧，省得都在黑白屏上VI，我双飞燕的键盘不好使，不想多敲几个字母。
源码的编译参数需要备份么？我有AMP自动安装脚本，很好很强大！
最近的一个小目标：linux灾难备份的脚本。
下一个就是：linux灾难恢复的脚本。
]]></description>
			<content:encoded><![CDATA[<p>最近服务器down了几次，频繁装了几次系统，可谓筋疲力尽，最后一次面对IBM的机器，对柜发誓：机器再down，这辈子不摸服务器。</p>
<p>话是这么说，服务真down了还的去管。</p>
<p>不过管之前，有些臭事还是要做－灾难备份。</p>
<p>首先是什么需要备份：数据库当然要备份，文件当然要备份。貌似所有的企业都在备份这些。</p>
<p>熟悉windows2003的网管都知道，2003提供了方便的配置文件备份，这个貌似是linux所没有的。打上标记。</p>
<p>用户需要备份么，我指linux系统帐号。备份一下吧，如果你有依赖系统账户的程序。</p>
<p>应用软件的配置文件是否要备份？如果你的配置很专业复杂个性，备份一下吧，省得都在黑白屏上VI，我双飞燕的键盘不好使，不想多敲几个字母。</p>
<p>源码的编译参数需要备份么？我有AMP自动安装脚本，很好很强大！</p>
<p>最近的一个小目标：linux灾难备份的脚本。</p>
<p>下一个就是：linux灾难恢复的脚本。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/18/%e8%af%9d%e8%af%b4%e5%a4%87%e4%bb%bd.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>博客终于恢复，IBM志强机上线！</title>
		<link>http://www.sunboyu.cn/2009/04/17/%e5%8d%9a%e5%ae%a2%e7%bb%88%e4%ba%8e%e6%81%a2%e5%a4%8d%ef%bc%8cibm%e5%bf%97%e5%bc%ba%e6%9c%ba%e4%b8%8a%e7%ba%bf%ef%bc%81.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/17/%e5%8d%9a%e5%ae%a2%e7%bb%88%e4%ba%8e%e6%81%a2%e5%a4%8d%ef%bc%8cibm%e5%bf%97%e5%bc%ba%e6%9c%ba%e4%b8%8a%e7%ba%bf%ef%bc%81.shtml#comments</comments>
		<pubDate>Fri, 17 Apr 2009 10:28:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[IBM]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=650</guid>
		<description><![CDATA[终于受不了那个兼容机，一周断6天，不知道是硬件问题还是兼容性问题，反正是没法用了。
狠心上了台IBM，虽然机型老点，毕竟是IBM，跑web富富有余。
另外在软件上抛弃apache，更换了nginx，负载更是创新低！
]]></description>
			<content:encoded><![CDATA[<p>终于受不了那个兼容机，一周断6天，不知道是硬件问题还是兼容性问题，反正是没法用了。<br />
狠心上了台IBM，虽然机型老点，毕竟是IBM，跑web富富有余。<br />
另外在软件上抛弃apache，更换了nginx，负载更是创新低！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/17/%e5%8d%9a%e5%ae%a2%e7%bb%88%e4%ba%8e%e6%81%a2%e5%a4%8d%ef%bc%8cibm%e5%bf%97%e5%bc%ba%e6%9c%ba%e4%b8%8a%e7%ba%bf%ef%bc%81.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>linux下杀死某用户的所有进程</title>
		<link>http://www.sunboyu.cn/2009/04/08/linux%e4%b8%8b%e6%9d%80%e6%ad%bb%e6%9f%90%e7%94%a8%e6%88%b7%e7%9a%84%e6%89%80%e6%9c%89%e8%bf%9b%e7%a8%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/08/linux%e4%b8%8b%e6%9d%80%e6%ad%bb%e6%9f%90%e7%94%a8%e6%88%b7%e7%9a%84%e6%89%80%e6%9c%89%e8%bf%9b%e7%a8%8b.shtml#comments</comments>
		<pubDate>Wed, 08 Apr 2009 15:53:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=648</guid>
		<description><![CDATA[kill -9 $(ps -fu  &#124; awk &#8216;{ print $2 }&#8217;)
该死的桶桶，给你开了几百个php-cgi进程，把服务器搞死了！
]]></description>
			<content:encoded><![CDATA[<p>kill -9 $(ps -fu <username> | awk &#8216;{ print $2 }&#8217;)</p>
<p>该死的桶桶，给你开了几百个php-cgi进程，把服务器搞死了！</username></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/08/linux%e4%b8%8b%e6%9d%80%e6%ad%bb%e6%9f%90%e7%94%a8%e6%88%b7%e7%9a%84%e6%89%80%e6%9c%89%e8%bf%9b%e7%a8%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux内存释放</title>
		<link>http://www.sunboyu.cn/2009/04/07/linux%e5%86%85%e5%ad%98%e9%87%8a%e6%94%be.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/07/linux%e5%86%85%e5%ad%98%e9%87%8a%e6%94%be.shtml#comments</comments>
		<pubDate>Tue, 07 Apr 2009 14:32:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[内存]]></category>
		<category><![CDATA[释放]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=646</guid>
		<description><![CDATA[echo 1 &#62; /proc/sys/vm/drop_caches; #释放页面缓存 
echo 2 &#62; /proc/sys/vm/drop_caches; #释放dentries和inodes
echo 3 &#62; /proc/sys/vm/drop_caches; #释放1＋2
]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">echo 1 &gt; /proc/sys/vm/drop_caches; #释放页面缓存 </li>
<li>echo 2 &gt; /proc/sys/vm/drop_caches; #释放dentries和inodes</li>
<li>echo 3 &gt; /proc/sys/vm/drop_caches; #释放1＋2</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/07/linux%e5%86%85%e5%ad%98%e9%87%8a%e6%94%be.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress在不同webserver下的重写规则和配置</title>
		<link>http://www.sunboyu.cn/2009/04/07/wordpress%e5%9c%a8%e4%b8%8d%e5%90%8cwebserver%e4%b8%8b%e7%9a%84%e9%87%8d%e5%86%99%e8%a7%84%e5%88%99%e5%92%8c%e9%85%8d%e7%bd%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/07/wordpress%e5%9c%a8%e4%b8%8d%e5%90%8cwebserver%e4%b8%8b%e7%9a%84%e9%87%8d%e5%86%99%e8%a7%84%e5%88%99%e5%92%8c%e9%85%8d%e7%bd%ae.shtml#comments</comments>
		<pubDate>Tue, 07 Apr 2009 13:22:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[重写]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=644</guid>
		<description><![CDATA[apache下
#.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#httpd.conf
Options ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
nginx下
#nginx.conf
location / {
&#160;&#160; &#160; &#160; &#160;if (!-f $request_filename){
&#160;&#160; &#160; &#160; &#160; &#160; &#160;rewrite (.*) /index.php;
&#160;&#160; &#160; &#160; &#160;}
&#160;&#160; &#160;}
]]></description>
			<content:encoded><![CDATA[<p>apache下</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">#.htaccess</li>
<li>RewriteEngine On</li>
<li>RewriteBase /</li>
<li>RewriteCond %{REQUEST_FILENAME} !-f</li>
<li>RewriteCond %{REQUEST_FILENAME} !-d</li>
<li>RewriteRule . /index.php [L]</li>
<li>#httpd.conf</li>
<li>Options ExecCGI FollowSymLinks</li>
<li>AllowOverride All</li>
<li>Order allow,deny</li>
<li>allow from all</li></ol></div>
<p>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">#nginx.conf</li>
<li>location / {</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (!-f $request_filename){</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rewrite (.*) /index.php;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</li>
<li>&nbsp;&nbsp; &nbsp;}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/07/wordpress%e5%9c%a8%e4%b8%8d%e5%90%8cwebserver%e4%b8%8b%e7%9a%84%e9%87%8d%e5%86%99%e8%a7%84%e5%88%99%e5%92%8c%e9%85%8d%e7%bd%ae.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>还是Nginx对抗负载的能力强</title>
		<link>http://www.sunboyu.cn/2009/04/07/%e8%bf%98%e6%98%afnginx%e5%af%b9%e6%8a%97%e8%b4%9f%e8%bd%bd%e7%9a%84%e8%83%bd%e5%8a%9b%e5%bc%ba.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/07/%e8%bf%98%e6%98%afnginx%e5%af%b9%e6%8a%97%e8%b4%9f%e8%bd%bd%e7%9a%84%e8%83%bd%e5%8a%9b%e5%bc%ba.shtml#comments</comments>
		<pubDate>Tue, 07 Apr 2009 06:45:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[LINUX]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=640</guid>
		<description><![CDATA[编译了老半天的apache，又做了很多调整和优化，依然抗不住死机，其实负载也不是很大，但内存CPU就是出奇的高，无奈，装上nginx，负载一下子下来了。
顺便提一下，我PC级的服务器。
感谢  http://www.51fit.com/ 友情提供测试数据
计划重新部署apache，调整工作模式。
]]></description>
			<content:encoded><![CDATA[<p>编译了老半天的apache，又做了很多调整和优化，依然抗不住死机，其实负载也不是很大，但内存CPU就是出奇的高，无奈，装上nginx，负载一下子下来了。</p>
<p>顺便提一下，我PC级的服务器。</p>
<p>感谢  http://www.51fit.com/ 友情提供测试数据</p>
<p>计划重新部署apache，调整工作模式。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/07/%e8%bf%98%e6%98%afnginx%e5%af%b9%e6%8a%97%e8%b4%9f%e8%bd%bd%e7%9a%84%e8%83%bd%e5%8a%9b%e5%bc%ba.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>虚拟化产品市场分析</title>
		<link>http://www.sunboyu.cn/2009/04/04/%e8%99%9a%e6%8b%9f%e5%8c%96%e4%ba%a7%e5%93%81%e5%b8%82%e5%9c%ba%e5%88%86%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2009/04/04/%e8%99%9a%e6%8b%9f%e5%8c%96%e4%ba%a7%e5%93%81%e5%b8%82%e5%9c%ba%e5%88%86%e6%9e%90.shtml#comments</comments>
		<pubDate>Sat, 04 Apr 2009 05:13:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[管理软件]]></category>
		<category><![CDATA[虚拟主机]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=626</guid>
		<description><![CDATA[我这里分析的虚拟化产品，主要是和IDC相关的一些虚拟产品。
我们常见的产品，比如虚拟主机（空间），VPS，服务器合租等。这类产品目前在市场上发展比较成熟，而且随着互联网发展，这类产品市场前景逐渐看好。
这点，从万网的发展路线就可以看出，中小企业越来越重视自己信息化的建设，而从百度的销售业绩也能看出，企业的投入逐渐从传统媒体转向了互联网。另外，各大IDC机房内，也有相当的托管机器是用在中小网站上。
而这些产品的基础构建，管理，对于不管是企业还是个人，都是一个问题。对于国内做虚拟主机产品的老大们，万网，新网都有自己的管理系统，而对于一些小型用户，一些开源的管理软件足矣，无非是增加点人力。
目前虚拟主机应用主流平台就是windows，linux，freebsd，windows系统首先有自己完善的管理机制和可供开发人员使用的API，对于unix相关系统，开源界更是提供了数不尽的资源。而这些产品更大的问题就是：他们只考虑了去如何管理一个系统，而并没有更多的考虑如何去运营这个系统，如何把产品更快投入商业生产中。
我熟知的成熟商业系统主要有cpanel系统，在整个产业都很出名的，因为美国很多主流虚拟主机提供商都使用这个系统。国内很出名的是创值立信,他们的产品可以算上国内老大了，据说他们的开发团队是从万网跑出来的一伙人，所以在经验和技术积累上很成熟。
但这两个系统都有致命的缺点，就是高昂的价格，不能被大众尤其是中小型的客户甚至个人所接受。
再说其他的一些产品。国产的蓝芒主机管理系统，也是行业内的佼佼者，它们的系统支持国内完善的业务流管理，跨平台的系统支持，可谓非常完善的产品。而再有一些小型的产品，基本都工作在windows下，而无法实现对windows/*nix混合集群的支持，这样就造成了部分客户的流失。
而一些开源的虚拟主机管理，其功能之强令人震撼，比如webmin主机管理平台，还有一些windows下的免费软件基本能实现对整个操作系统虚拟化的管理，但一旦涉及商用，就有很大的问题，其欠缺的不仅是支付，业务流，财务等，更难以实现的是对整个运营流程的管理。
而目前国内此市场上，或者产品功能的欠缺，或者价格的昂贵，对于一些初创的公司或者个人都是一个门槛，无法达到成本低廉化。
所以，我认为国内此类虚拟化管理软件还有很大的市场潜力，只要是能够适应市场的产品，会在如此大的市场份额中再分一杯羹。
]]></description>
			<content:encoded><![CDATA[<p>我这里分析的虚拟化产品，主要是和IDC相关的一些虚拟产品。</p>
<p>我们常见的产品，比如虚拟主机（空间），VPS，服务器合租等。这类产品目前在市场上发展比较成熟，而且随着互联网发展，这类产品市场前景逐渐看好。</p>
<p>这点，从万网的发展路线就可以看出，中小企业越来越重视自己信息化的建设，而从百度的销售业绩也能看出，企业的投入逐渐从传统媒体转向了互联网。另外，各大IDC机房内，也有相当的托管机器是用在中小网站上。</p>
<p>而这些产品的基础构建，管理，对于不管是企业还是个人，都是一个问题。对于国内做虚拟主机产品的老大们，万网，新网都有自己的管理系统，而对于一些小型用户，一些开源的管理软件足矣，无非是增加点人力。</p>
<p>目前虚拟主机应用主流平台就是windows，linux，freebsd，windows系统首先有自己完善的管理机制和可供开发人员使用的API，对于unix相关系统，开源界更是提供了数不尽的资源。而这些产品更大的问题就是：他们只考虑了去如何管理一个系统，而并没有更多的考虑如何去运营这个系统，如何把产品更快投入商业生产中。</p>
<p>我熟知的成熟商业系统主要有cpanel系统，在整个产业都很出名的，因为美国很多主流虚拟主机提供商都使用这个系统。国内很出名的是创值立信,他们的产品可以算上国内老大了，据说他们的开发团队是从万网跑出来的一伙人，所以在经验和技术积累上很成熟。</p>
<p>但这两个系统都有致命的缺点，就是高昂的价格，不能被大众尤其是中小型的客户甚至个人所接受。</p>
<p>再说其他的一些产品。国产的蓝芒主机管理系统，也是行业内的佼佼者，它们的系统支持国内完善的业务流管理，跨平台的系统支持，可谓非常完善的产品。而再有一些小型的产品，基本都工作在windows下，而无法实现对windows/*nix混合集群的支持，这样就造成了部分客户的流失。</p>
<p>而一些开源的虚拟主机管理，其功能之强令人震撼，比如webmin主机管理平台，还有一些windows下的免费软件基本能实现对整个操作系统虚拟化的管理，但一旦涉及商用，就有很大的问题，其欠缺的不仅是支付，业务流，财务等，更难以实现的是对整个运营流程的管理。</p>
<p>而目前国内此市场上，或者产品功能的欠缺，或者价格的昂贵，对于一些初创的公司或者个人都是一个门槛，无法达到成本低廉化。</p>
<p>所以，我认为国内此类虚拟化管理软件还有很大的市场潜力，只要是能够适应市场的产品，会在如此大的市场份额中再分一杯羹。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/04/04/%e8%99%9a%e6%8b%9f%e5%8c%96%e4%ba%a7%e5%93%81%e5%b8%82%e5%9c%ba%e5%88%86%e6%9e%90.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python写的数据抽象层</title>
		<link>http://www.sunboyu.cn/2009/03/30/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/30/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82.shtml#comments</comments>
		<pubDate>Mon, 30 Mar 2009 03:26:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=622</guid>
		<description><![CDATA[python本身没有对mysql的支持，得依赖附加的库 http://mysql-python.sourceforge.net 。很多框架采用了这个库，比如adodb，django等。不过我倾向于自己写这些东西，所以小研究了一下。 mysql-python 有两个对象 MySQLdb _mysql 这里是介绍http://mysql-python.sourceforge.net/MySQLdb.html,我使用的是 MySQLdb 对象
#!/D:\python25\python.exe
import MySQLdb
&#160;
class Mysql(object):
&#160;&#160; &#160;handle = ''
&#160;&#160; &#160;query = ''
&#160;&#160; &#160;exectime = 0
&#160;&#160; &#160;effected = 0
&#160;
&#160;&#160; &#160;def __init__( self , hostname , username , password , database ):
&#160;&#160; &#160; &#160; &#160;db = MySQLdb.connect( host = hostname , user = username , passwd = password , db = [...]]]></description>
			<content:encoded><![CDATA[<p>python本身没有对mysql的支持，得依赖附加的库 http://mysql-python.sourceforge.net 。很多框架采用了这个库，比如adodb，django等。不过我倾向于自己写这些东西，所以小研究了一下。 mysql-python 有两个对象 MySQLdb _mysql 这里是介绍http://mysql-python.sourceforge.net/MySQLdb.html,我使用的是 MySQLdb 对象</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">#!/D:\python25\python.exe</li>
<li>import MySQLdb</li>
<li>&nbsp;</li>
<li>class Mysql(object):</li>
<li>&nbsp;&nbsp; &nbsp;handle = ''</li>
<li>&nbsp;&nbsp; &nbsp;query = ''</li>
<li>&nbsp;&nbsp; &nbsp;exectime = 0</li>
<li>&nbsp;&nbsp; &nbsp;effected = 0</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;def __init__( self , hostname , username , password , database ):</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;db = MySQLdb.connect( host = hostname , user = username , passwd = password , db = database )</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self.handle = db.cursor()</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;def query( self , sql = '' ):</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return self.handle.execute( sql )</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;def fetch( self , sql = '' ):</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self.handle.execute( sql )</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;rs = self.handle.fetchone()</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;count = 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result = {}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for colnum in self.handle.description:</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result[colnum[0]] = rs[count]</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;count += 1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return result</li>
<li>&nbsp;&nbsp; &nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;def fetchAll( self , sql = '' ):</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self.handle.execute( sql )</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result = {}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;bigcount = 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for recordline in self.handle.fetchall():</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;littlecount = 0</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result[bigcount] = {}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for colnum in self.handle.description:</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result[bigcount][colnum[0]] = recordline[littlecount]</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;littlecount += 1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bigcount += 1</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return result</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;def insertID( self ):</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.handle.execute(&quot;SELECT LAST_INSERT_ID() AS lid&quot;)</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rs = self.handle.fetchone()</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return rs[0]</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;def close( self ):</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.handle.close()</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pass</li>
<li>#DEMO</li>
<li>db = Mysql('localhost','root','123456','frame')</li>
<li>db.fetchAll('select * from user')</li>
<li>#rs = db.fetchAll('select * from user')</li>
<li>#sql = &quot;INSERT INTO tags (module,fid,name,note,`order`) VALUE ('test',1,'fd','ds',1)&quot;</li>
<li>#db.query(sql)</li>
<li>#print db.insertID()</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/30/python%e5%86%99%e7%9a%84%e6%95%b0%e6%8d%ae%e6%8a%bd%e8%b1%a1%e5%b1%82.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>几个画蛇添足的函数，出自我手</title>
		<link>http://www.sunboyu.cn/2009/03/18/%e5%87%a0%e4%b8%aa%e7%94%bb%e8%9b%87%e6%b7%bb%e8%b6%b3%e7%9a%84%e5%87%bd%e6%95%b0%ef%bc%8c%e5%87%ba%e8%87%aa%e6%88%91%e6%89%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/18/%e5%87%a0%e4%b8%aa%e7%94%bb%e8%9b%87%e6%b7%bb%e8%b6%b3%e7%9a%84%e5%87%bd%e6%95%b0%ef%bc%8c%e5%87%ba%e8%87%aa%e6%88%91%e6%89%8b.shtml#comments</comments>
		<pubDate>Tue, 17 Mar 2009 17:20:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[http_build_query]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=608</guid>
		<description><![CDATA[翻看自己以前的代码，发现自己的一些搞笑的函数,列一个
function func_arrtoQuerystring($array)&#160; &#160; &#160; &#160; &#160; &#160; &#160;#其实就是http_build_query
{
&#160;&#160; &#160;$string = '?';
&#160;&#160; &#160;foreach($array as $key=&#62;$value)
	{
	&#160; &#160; $string .= $key.&#34;,&#34;.$value.&#34;;&#34;;
	}
	$string = substr($string,0,substr($string)-1);
	$string .= &#34;.html&#34;;
	return $string;
}
回头多找几个这样的，自勉
]]></description>
			<content:encoded><![CDATA[<p>翻看自己以前的代码，发现自己的一些搞笑的函数,列一个</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">function func_arrtoQuerystring($array)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#其实就是http_build_query</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;$string = '?';</li>
<li>&nbsp;&nbsp; &nbsp;foreach($array as $key=&gt;$value)</li>
<li>	{</li>
<li>	&nbsp; &nbsp; $string .= $key.&quot;,&quot;.$value.&quot;;&quot;;</li>
<li>	}</li>
<li>	$string = substr($string,0,substr($string)-1);</li>
<li>	$string .= &quot;.html&quot;;</li>
<li>	return $string;</li>
<li>}</li></ol></div>
<p>回头多找几个这样的，自勉</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/18/%e5%87%a0%e4%b8%aa%e7%94%bb%e8%9b%87%e6%b7%bb%e8%b6%b3%e7%9a%84%e5%87%bd%e6%95%b0%ef%bc%8c%e5%87%ba%e8%87%aa%e6%88%91%e6%89%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN自动提交那个钩子</title>
		<link>http://www.sunboyu.cn/2009/03/17/svn%e8%87%aa%e5%8a%a8%e6%8f%90%e4%ba%a4%e9%82%a3%e4%b8%aa%e9%92%a9%e5%ad%90.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/17/svn%e8%87%aa%e5%8a%a8%e6%8f%90%e4%ba%a4%e9%82%a3%e4%b8%aa%e9%92%a9%e5%ad%90.shtml#comments</comments>
		<pubDate>Tue, 17 Mar 2009 10:30:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=606</guid>
		<description><![CDATA[首先那个版本得检出一下 /opt/subversion-1.4.3/bin/svn checkout svn://svn.sunboyu.cn:**/python/sso /home/project/sso
export LANG=zh_CN.UTF-8&#160; &#160;#中文支持
REPOS=&#34;$1&#34;
REV=&#34;$2&#34;
SVN=/opt/subversion-1.4.3/bin/svn&#160; #svn的地址
DIR=/home/main&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;#目标地址
/opt/subversion-1.4.3/bin/svn update /home/main&#160; &#160; &#160; &#160;#执行
]]></description>
			<content:encoded><![CDATA[<p>首先那个版本得检出一下 /opt/subversion-1.4.3/bin/svn checkout svn://svn.sunboyu.cn:**/python/sso /home/project/sso</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">export LANG=zh_CN.UTF-8&nbsp; &nbsp;#中文支持</li>
<li>REPOS=&quot;$1&quot;</li>
<li>REV=&quot;$2&quot;</li>
<li>SVN=/opt/subversion-1.4.3/bin/svn&nbsp; #svn的地址</li>
<li>DIR=/home/main&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#目标地址</li>
<li>/opt/subversion-1.4.3/bin/svn update /home/main&nbsp; &nbsp; &nbsp; &nbsp;#执行</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/17/svn%e8%87%aa%e5%8a%a8%e6%8f%90%e4%ba%a4%e9%82%a3%e4%b8%aa%e9%92%a9%e5%ad%90.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>file_get_contents函数使用post方法</title>
		<link>http://www.sunboyu.cn/2009/03/16/file_get_contents%e5%87%bd%e6%95%b0%e4%bd%bf%e7%94%a8post%e6%96%b9%e6%b3%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/16/file_get_contents%e5%87%bd%e6%95%b0%e4%bd%bf%e7%94%a8post%e6%96%b9%e6%b3%95.shtml#comments</comments>
		<pubDate>Mon, 16 Mar 2009 04:27:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=602</guid>
		<description><![CDATA[以前总用socket的方式发送接收http的包，结果收到的包也有一堆http的协议头信息。
处理这些信息还挺费劲的。
然后想到了file_get_contents($url)方法，可以得到纯净的http包的正文。但这种方式默认是get的方式，后查手册和搜索，得到了post的方法。
这种方式基本跟socket的方式相同，包头构建好即可。
$array = array ('a' =&#62; 'b','c'=&#62;'d'); 
$url= http_build_query($array ); 
$postdate = array ( 
&#160;&#160; &#160;'http' =&#62; array ( 
&#160;&#160; &#160; &#160; &#160;'method' =&#62; 'POST', 
&#160;&#160; &#160; &#160; &#160;'header'=&#62; &#34;Content-type: application/x-www-form-urlencoded\r\n&#34; . 
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#34;Content-Length: &#34; . strlen($url) . &#34;\r\n&#34;, 
&#160;&#160; &#160; &#160; &#160;'content' =&#62; $url
&#160;&#160; &#160;), 
); 
$postcontent [...]]]></description>
			<content:encoded><![CDATA[<p>以前总用socket的方式发送接收http的包，结果收到的包也有一堆http的协议头信息。<br />
处理这些信息还挺费劲的。</p>
<p>然后想到了file_get_contents($url)方法，可以得到纯净的http包的正文。但这种方式默认是get的方式，后查手册和搜索，得到了post的方法。</p>
<p>这种方式基本跟socket的方式相同，包头构建好即可。</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">$array = array ('a' =&gt; 'b','c'=&gt;'d'); </li>
<li>$url= http_build_query($array ); </li>
<li>$postdate = array ( </li>
<li>&nbsp;&nbsp; &nbsp;'http' =&gt; array ( </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;'method' =&gt; 'POST', </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;'header'=&gt; &quot;Content-type: application/x-www-form-urlencoded\r\n&quot; . </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;Content-Length: &quot; . strlen($url) . &quot;\r\n&quot;, </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;'content' =&gt; $url</li>
<li>&nbsp;&nbsp; &nbsp;), </li>
<li>); </li>
<li>$postcontent = stream_context_create($postdate ); </li>
<li>$return= file_get_contents('http://www.sunboyu.cn', false, $postcontent );&nbsp; </li>
<li>echo $return;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/16/file_get_contents%e5%87%bd%e6%95%b0%e4%bd%bf%e7%94%a8post%e6%96%b9%e6%b3%95.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>解决了该死的权限问题，是否真的有效</title>
		<link>http://www.sunboyu.cn/2009/03/12/%e8%a7%a3%e5%86%b3%e4%ba%86%e8%af%a5%e6%ad%bb%e7%9a%84%e6%9d%83%e9%99%90%e9%97%ae%e9%a2%98%ef%bc%8c%e6%98%af%e5%90%a6%e7%9c%9f%e7%9a%84%e6%9c%89%e6%95%88.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/12/%e8%a7%a3%e5%86%b3%e4%ba%86%e8%af%a5%e6%ad%bb%e7%9a%84%e6%9d%83%e9%99%90%e9%97%ae%e9%a2%98%ef%bc%8c%e6%98%af%e5%90%a6%e7%9c%9f%e7%9a%84%e6%9c%89%e6%95%88.shtml#comments</comments>
		<pubDate>Thu, 12 Mar 2009 15:43:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=600</guid>
		<description><![CDATA[我的apache＋php权限是配置的最为严格的，当然，在用的时候难免伴随着混乱的账户情况，linux的权限机制也是很让人头疼的，终于，还是在风平浪静种碰到了麻烦。
我不认为PHP很强，因为它只是一个面向Web的脚本语言，而PHP的开发者却赋予了它太多，让人去用，有人也滥用。
当然，一门语言能解决N多问题是好的，比如汇编，C，但终究PHP有它跨不过的坎。毕竟它只是web脚本语言。
权限出现很大的问题，至今没有搞透，说白了对linux还是一知半解，使用python写了个第三方的东西，很完美得跳跃了权限的问题。至于效率，python肯定要比php强的，起码PHP作为服务器端程序运行，PHP还没有线程和进程的控制（一直没有发现），python有完善的线程进程的库。在权限管理上，python没细看，PHP在linux下有posix函数库，我一直也没有用过。
在没有更好的解决方案前，我依然用PHP做服务器端程序，python作为一些补充。也许，全部切换过去。
]]></description>
			<content:encoded><![CDATA[<p>我的apache＋php权限是配置的最为严格的，当然，在用的时候难免伴随着混乱的账户情况，linux的权限机制也是很让人头疼的，终于，还是在风平浪静种碰到了麻烦。</p>
<p>我不认为PHP很强，因为它只是一个面向Web的脚本语言，而PHP的开发者却赋予了它太多，让人去用，有人也滥用。</p>
<p>当然，一门语言能解决N多问题是好的，比如汇编，C，但终究PHP有它跨不过的坎。毕竟它只是web脚本语言。</p>
<p>权限出现很大的问题，至今没有搞透，说白了对linux还是一知半解，使用python写了个第三方的东西，很完美得跳跃了权限的问题。至于效率，python肯定要比php强的，起码PHP作为服务器端程序运行，PHP还没有线程和进程的控制（一直没有发现），python有完善的线程进程的库。在权限管理上，python没细看，PHP在linux下有posix函数库，我一直也没有用过。</p>
<p>在没有更好的解决方案前，我依然用PHP做服务器端程序，python作为一些补充。也许，全部切换过去。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/12/%e8%a7%a3%e5%86%b3%e4%ba%86%e8%af%a5%e6%ad%bb%e7%9a%84%e6%9d%83%e9%99%90%e9%97%ae%e9%a2%98%ef%bc%8c%e6%98%af%e5%90%a6%e7%9c%9f%e7%9a%84%e6%9c%89%e6%95%88.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>做完数据库抽象层，可能要做一个通用的缓存层</title>
		<link>http://www.sunboyu.cn/2009/03/07/%e5%81%9a%e5%ae%8c%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%ef%bc%8c%e5%8f%af%e8%83%bd%e8%a6%81%e5%81%9a%e4%b8%80%e4%b8%aa%e9%80%9a%e7%94%a8%e7%9a%84%e7%bc%93%e5%ad%98%e5%b1%82.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/07/%e5%81%9a%e5%ae%8c%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%ef%bc%8c%e5%8f%af%e8%83%bd%e8%a6%81%e5%81%9a%e4%b8%80%e4%b8%aa%e9%80%9a%e7%94%a8%e7%9a%84%e7%bc%93%e5%ad%98%e5%b1%82.shtml#comments</comments>
		<pubDate>Sat, 07 Mar 2009 06:17:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=598</guid>
		<description><![CDATA[数据抽象层实现了Mysql和SQLite的兼容，基本也就够用了，基本所有的PHP环境现在都支持sqlite(起码我配的环境是)，而且扩展的过程证明了这个规则是可以通用的。
低下要做个通用的缓存层，基本就是 key value 这种简单映射的就足够。这种缓存目前实现主要有本地文本，bdb，memcache几大系列。本地文本异常灵活，方便迁移，不依赖其他组件，直接用PHP的文件读写函数就可以。缺点是，未有大规模系统使用，因为PHP本身效率问题。小的应用还是可以使用的，phpx上也有个三德子写的通用文本缓存类。
bdb就非常不错了，嵌入式的数据库，支持简单的key value模式，而且本身非常小，但效率高，支撑非常大的数据量。
memcache就不用说了，太通用了，很多大型的系统都在应用，优缺点不再重复。
抽象层兼容这几个就行了，能实现无缝迁移即可。
计划下周末开工。
]]></description>
			<content:encoded><![CDATA[<p>数据抽象层实现了Mysql和SQLite的兼容，基本也就够用了，基本所有的PHP环境现在都支持sqlite(起码我配的环境是)，而且扩展的过程证明了这个规则是可以通用的。</p>
<p>低下要做个通用的缓存层，基本就是 key value 这种简单映射的就足够。这种缓存目前实现主要有本地文本，bdb，memcache几大系列。本地文本异常灵活，方便迁移，不依赖其他组件，直接用PHP的文件读写函数就可以。缺点是，未有大规模系统使用，因为PHP本身效率问题。小的应用还是可以使用的，phpx上也有个三德子写的通用文本缓存类。</p>
<p>bdb就非常不错了，嵌入式的数据库，支持简单的key value模式，而且本身非常小，但效率高，支撑非常大的数据量。</p>
<p>memcache就不用说了，太通用了，很多大型的系统都在应用，优缺点不再重复。</p>
<p>抽象层兼容这几个就行了，能实现无缝迁移即可。</p>
<p>计划下周末开工。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/07/%e5%81%9a%e5%ae%8c%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%ef%bc%8c%e5%8f%af%e8%83%bd%e8%a6%81%e5%81%9a%e4%b8%80%e4%b8%aa%e9%80%9a%e7%94%a8%e7%9a%84%e7%bc%93%e5%ad%98%e5%b1%82.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLite牛刀小试</title>
		<link>http://www.sunboyu.cn/2009/03/07/sqlite%e7%89%9b%e5%88%80%e5%b0%8f%e8%af%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/07/sqlite%e7%89%9b%e5%88%80%e5%b0%8f%e8%af%95.shtml#comments</comments>
		<pubDate>Fri, 06 Mar 2009 18:07:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[sqlitemanager]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=594</guid>
		<description><![CDATA[这玩意据说跟bdb一样，嵌入式数据库，正好嵌到了PHP上边，因为写框架，框架里新添加了一个功能，就是管理模块的一个模块，本想用mysql来做，又一想，用mysql，那迁移起来可麻烦了，不运行一个install就没法部署了，不如把功能直接镶嵌，直接使用。
SQLite跟mysql一样，是关系型数据库，而且功能都类似，我直接使用原来的接口，写了一个数据抽象层，直接挂接到原框架里，很好用。
SQLite管理，我还找了两个工具，一个桌面版的，类似mysql front ，一个web版的，看来就像phpmyadmin了。
413 Request Entity Too Large
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
nginx/0.5.34
FUCK Nginx HOST
那个sqlitemanager  http://www.sqlitemanager.org/
代码如下，因为使用不多，临时用一下，所以细节没怎么处理，待出问题的时候再来修改。
&#60; ?php
/*&#160; DB.SQLite.Class.php
&#160;*&#160; SQLite
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2009 03 07&#160; sunboyu@gmail.com
&#160;*&#160; Demo
&#160;*/
require_once(ROOT.&#34;/Include/Class/DB.InterFace.php&#34;);
class SQLite implements DateBaseConnect
{
	#连接标识
	public $handle = false;
	#结果标识
	public $query;
	#查询次数
	public $exetime;
	#数据库连接
&#160;&#160; &#160;public function Connect( $argvs )
	{
		$this-&#62;handle = @sqlite_open( $argvs['hostname'].'/'.$argvs['datebase'] , $argvs['mode'] , $sqliteerror );
		if(!$this-&#62;handle)
		{
			die(&#34;Can't connect to the datebase [...]]]></description>
			<content:encoded><![CDATA[<p>这玩意据说跟bdb一样，嵌入式数据库，正好嵌到了PHP上边，因为写框架，框架里新添加了一个功能，就是管理模块的一个模块，本想用mysql来做，又一想，用mysql，那迁移起来可麻烦了，不运行一个install就没法部署了，不如把功能直接镶嵌，直接使用。<br />
SQLite跟mysql一样，是关系型数据库，而且功能都类似，我直接使用原来的接口，写了一个数据抽象层，直接挂接到原框架里，很好用。<br />
SQLite管理，我还找了两个工具，一个桌面版的，类似mysql front ，一个web版的，看来就像phpmyadmin了。</p>
<p>413 Request Entity Too Large</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>nginx/0.5.34</p>
<p>FUCK Nginx HOST</p>
<p>那个sqlitemanager  http://www.sqlitemanager.org/</p>
<p>代码如下，因为使用不多，临时用一下，所以细节没怎么处理，待出问题的时候再来修改。</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">&lt; ?php</li>
<li>/*&nbsp; DB.SQLite.Class.php</li>
<li>&nbsp;*&nbsp; SQLite</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2009 03 07&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>&nbsp;*/</li>
<li>require_once(ROOT.&quot;/Include/Class/DB.InterFace.php&quot;);</li>
<li>class SQLite implements DateBaseConnect</li>
<li>{</li>
<li>	#连接标识</li>
<li>	public $handle = false;</li>
<li>	#结果标识</li>
<li>	public $query;</li>
<li>	#查询次数</li>
<li>	public $exetime;</li>
<li>	#数据库连接</li>
<li>&nbsp;&nbsp; &nbsp;public function Connect( $argvs )</li>
<li>	{</li>
<li>		$this-&gt;handle = @sqlite_open( $argvs['hostname'].'/'.$argvs['datebase'] , $argvs['mode'] , $sqliteerror );</li>
<li>		if(!$this-&gt;handle)</li>
<li>		{</li>
<li>			die(&quot;Can't connect to the datebase &quot;.$argvs['datebase']);</li>
<li>		}</li>
<li>		$this-&gt;exetime = 0;</li>
<li>	}</li>
<li>	#使用数据库</li>
<li>	public function selectDateBase( $datebase )</li>
<li>	{</li>
<li>		#此方法无用</li>
<li>		return true;</li>
<li>	}</li>
<li>	#执行一个查询</li>
<li>	public function query( $sql )</li>
<li>	{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#echo $sql;</li>
<li>		$this-&gt;query = sqlite_query( $sql , $this-&gt;handle ) or die(&quot;query error&quot;.sqlite_last_error( $this-&gt;handle ));</li>
<li>		$this-&gt;exetime++;</li>
<li>		return true;</li>
<li>	}</li>
<li>	#取得一行</li>
<li>	public function fetch( $sql )</li>
<li>	{</li>
<li>		$this-&gt;query( $sql );</li>
<li>		while( $row = mysql_fetch_array( $this-&gt;query, MYSQL_ASSOC ) )</li>
<li>		{</li>
<li>			return $row;</li>
<li>	&nbsp; &nbsp; }</li>
<li>		return false;</li>
<li>	}</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql )</li>
<li>	{</li>
<li>		$this-&gt;query( $sql );</li>
<li>		return sqlite_fetch_all( $this-&gt;query );</li>
<li>	}</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow()</li>
<li>	{</li>
<li>		return true;</li>
<li>	}</li>
<li>	#取得结果行数</li>
<li>	public function recordCount()</li>
<li>	{</li>
<li>		return sqlite_num_rows( $this-&gt;query );</li>
<li>	}</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID()</li>
<li>	{</li>
<li>		return false;</li>
<li>	}</li>
<li>	#释放资源</li>
<li>	public function close()</li>
<li>	{</li>
<li>		unset( $this-&gt;handle );</li>
<li>	}</li>
<li>	#析构函数</li>
<li>	/*</li>
<li>	function __destruct()</li>
<li>	{</li>
<li>		$this-&gt;close();</li>
<li>	}</li>
<li>	*/</li>
<li>}</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/07/sqlite%e7%89%9b%e5%88%80%e5%b0%8f%e8%af%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给代码打上版本号</title>
		<link>http://www.sunboyu.cn/2009/03/03/%e7%bb%99%e4%bb%a3%e7%a0%81%e6%89%93%e4%b8%8a%e7%89%88%e6%9c%ac%e5%8f%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/03/%e7%bb%99%e4%bb%a3%e7%a0%81%e6%89%93%e4%b8%8a%e7%89%88%e6%9c%ac%e5%8f%b7.shtml#comments</comments>
		<pubDate>Tue, 03 Mar 2009 15:55:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[版本]]></category>
		<category><![CDATA[耦合]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=591</guid>
		<description><![CDATA[这个版本号，当然不是svn的版本号。
写程序再多，很多情况还是考虑不清楚。有时候代码耦合度并不能合理权衡，一旦升级某项功能，大改一下也是难免。但大换血式的更改代码是很忌讳的，尤其是运行很稳定的程序。
迫不得已，流程要修改，而且可能是截断了某个流程，创建分支，这时候，如果有一个版本的控制，那只需要更新特定的版本文件，即可实现无缝升级。当然，如果不稳定，可以迅速实现代码版本的回滚。
不过这种情况要求程序模块松散耦合，当你有紧耦合代码需要调整的时候，可以享受版本切换带来的享受。
]]></description>
			<content:encoded><![CDATA[<p>这个版本号，当然不是svn的版本号。</p>
<p>写程序再多，很多情况还是考虑不清楚。有时候代码耦合度并不能合理权衡，一旦升级某项功能，大改一下也是难免。但大换血式的更改代码是很忌讳的，尤其是运行很稳定的程序。</p>
<p>迫不得已，流程要修改，而且可能是截断了某个流程，创建分支，这时候，如果有一个版本的控制，那只需要更新特定的版本文件，即可实现无缝升级。当然，如果不稳定，可以迅速实现代码版本的回滚。</p>
<p>不过这种情况要求程序模块松散耦合，当你有紧耦合代码需要调整的时候，可以享受版本切换带来的享受。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/03/%e7%bb%99%e4%bb%a3%e7%a0%81%e6%89%93%e4%b8%8a%e7%89%88%e6%9c%ac%e5%8f%b7.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重写框架</title>
		<link>http://www.sunboyu.cn/2009/03/01/%e9%87%8d%e5%86%99%e6%a1%86%e6%9e%b6.shtml</link>
		<comments>http://www.sunboyu.cn/2009/03/01/%e9%87%8d%e5%86%99%e6%a1%86%e6%9e%b6.shtml#comments</comments>
		<pubDate>Sun, 01 Mar 2009 04:06:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=585</guid>
		<description><![CDATA[其实我有两个框架，一个是比较简单的框架，适用于多人生产，只是拿出了框架的一些基本特性，便于由程序员自由发挥，又不缺乏一个基本的规则。
另一个是cakephp的“高仿版”，虽然是一个完整的框架，但学习成本高，另外扼杀了程序员的天性，所以，不再更新。
这次更新的是第一个框架，因为投入了生产，暴露了很多问题，这次的目标，首先是一个完善的框架系统，另外继承很多的应用实例。
另外一些LAMP应用脚本也会适当集成，当然得是拥有root的人才能使用这些功能。
主框架依然是PHP类库，路由，JS库（考虑是否集成JQUERY）
]]></description>
			<content:encoded><![CDATA[<p>其实我有两个框架，一个是比较简单的框架，适用于多人生产，只是拿出了框架的一些基本特性，便于由程序员自由发挥，又不缺乏一个基本的规则。</p>
<p>另一个是cakephp的“高仿版”，虽然是一个完整的框架，但学习成本高，另外扼杀了程序员的天性，所以，不再更新。</p>
<p>这次更新的是第一个框架，因为投入了生产，暴露了很多问题，这次的目标，首先是一个完善的框架系统，另外继承很多的应用实例。</p>
<p>另外一些LAMP应用脚本也会适当集成，当然得是拥有root的人才能使用这些功能。</p>
<p>主框架依然是PHP类库，路由，JS库（考虑是否集成JQUERY）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/03/01/%e9%87%8d%e5%86%99%e6%a1%86%e6%9e%b6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用PYTHON小提apache下的PHP执行权限</title>
		<link>http://www.sunboyu.cn/2009/02/28/%e4%bd%bf%e7%94%a8python%e5%b0%8f%e6%8f%90apache%e4%b8%8b%e7%9a%84php%e6%89%a7%e8%a1%8c%e6%9d%83%e9%99%90.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/28/%e4%bd%bf%e7%94%a8python%e5%b0%8f%e6%8f%90apache%e4%b8%8b%e7%9a%84php%e6%89%a7%e8%a1%8c%e6%9d%83%e9%99%90.shtml#comments</comments>
		<pubDate>Sat, 28 Feb 2009 15:15:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=583</guid>
		<description><![CDATA[绕了个圈，权限彻底上去了，中间用socket通讯方式解决。
代码暂时还不安全，等拿出安全的方案后公布
]]></description>
			<content:encoded><![CDATA[<p>绕了个圈，权限彻底上去了，中间用socket通讯方式解决。<br />
代码暂时还不安全，等拿出安全的方案后公布</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/28/%e4%bd%bf%e7%94%a8python%e5%b0%8f%e6%8f%90apache%e4%b8%8b%e7%9a%84php%e6%89%a7%e8%a1%8c%e6%9d%83%e9%99%90.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS4中jdk的配置问题</title>
		<link>http://www.sunboyu.cn/2009/02/24/as4%e4%b8%adjdk%e7%9a%84%e9%85%8d%e7%bd%ae%e9%97%ae%e9%a2%98.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/24/as4%e4%b8%adjdk%e7%9a%84%e9%85%8d%e7%bd%ae%e9%97%ae%e9%a2%98.shtml#comments</comments>
		<pubDate>Tue, 24 Feb 2009 06:10:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[as4]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=581</guid>
		<description><![CDATA[AS4中默认安装了jdk1.3.×
在安装jdk1.6.0后，设置了环境变量，可默认还是显示java1.3.×
后发现，在/usr/bin 下有java这个文件，默认关联的是1.3的，删除掉后，发现一切正常
]]></description>
			<content:encoded><![CDATA[<p>AS4中默认安装了jdk1.3.×<br />
在安装jdk1.6.0后，设置了环境变量，可默认还是显示java1.3.×<br />
后发现，在/usr/bin 下有java这个文件，默认关联的是1.3的，删除掉后，发现一切正常</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/24/as4%e4%b8%adjdk%e7%9a%84%e9%85%8d%e7%bd%ae%e9%97%ae%e9%a2%98.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>购买新书两本</title>
		<link>http://www.sunboyu.cn/2009/02/22/%e8%b4%ad%e4%b9%b0%e6%96%b0%e4%b9%a6%e4%b8%a4%e6%9c%ac.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/22/%e8%b4%ad%e4%b9%b0%e6%96%b0%e4%b9%a6%e4%b8%a4%e6%9c%ac.shtml#comments</comments>
		<pubDate>Sun, 22 Feb 2009 12:02:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[linux系统安全]]></category>
		<category><![CDATA[密码传奇]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=575</guid>
		<description><![CDATA[http://www.douban.com/subject/2171797/

http://www.douban.com/subject/3024665/

]]></description>
			<content:encoded><![CDATA[<p>http://www.douban.com/subject/2171797/</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/02/s3069021.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/02/s3069021.jpg" alt="s3069021" title="s3069021" width="102" height="145" class="aligncenter size-full wp-image-576" /></a></p>
<p>http://www.douban.com/subject/3024665/</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/02/s30690211.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/02/s30690211.jpg" alt="s30690211" title="s30690211" width="200" height="285" class="aligncenter size-full wp-image-577" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/22/%e8%b4%ad%e4%b9%b0%e6%96%b0%e4%b9%a6%e4%b8%a4%e6%9c%ac.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Python编译参数</title>
		<link>http://www.sunboyu.cn/2009/02/21/python%e7%bc%96%e8%af%91%e5%8f%82%e6%95%b0.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/21/python%e7%bc%96%e8%af%91%e5%8f%82%e6%95%b0.shtml#comments</comments>
		<pubDate>Sat, 21 Feb 2009 15:38:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[mod_python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=573</guid>
		<description><![CDATA[python2.6.1和mod_python的编译参数
#python编译参数
./configure --prefix=/opt/python-2.6.1 \
--enable-shared \
--enable-profiling \
--with-gcc \
--with-pydebug \
--with-system-ffi \
--with-signal-module \
--with-dec-threads \
--with-threads \
--with-thread \
--with-pth \
--with-doc-strings \
--with-tsc \
--with-pymalloc \
--with-fpectl
&#160;
#python_mod编译参数
./configure --with-apxs=/opt/httpd-2.2.9 \
--with-python=/opt/python-2.6.1
]]></description>
			<content:encoded><![CDATA[<p>python2.6.1和mod_python的编译参数</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">#python编译参数</li>
<li>./configure --prefix=/opt/python-2.6.1 \</li>
<li>--enable-shared \</li>
<li>--enable-profiling \</li>
<li>--with-gcc \</li>
<li>--with-pydebug \</li>
<li>--with-system-ffi \</li>
<li>--with-signal-module \</li>
<li>--with-dec-threads \</li>
<li>--with-threads \</li>
<li>--with-thread \</li>
<li>--with-pth \</li>
<li>--with-doc-strings \</li>
<li>--with-tsc \</li>
<li>--with-pymalloc \</li>
<li>--with-fpectl</li>
<li>&nbsp;</li>
<li>#python_mod编译参数</li>
<li>./configure --with-apxs=/opt/httpd-2.2.9 \</li>
<li>--with-python=/opt/python-2.6.1</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/21/python%e7%bc%96%e8%af%91%e5%8f%82%e6%95%b0.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>值得程序员们看的一段对话</title>
		<link>http://www.sunboyu.cn/2009/02/16/%e5%80%bc%e5%be%97%e7%a8%8b%e5%ba%8f%e5%91%98%e4%bb%ac%e7%9c%8b%e7%9a%84%e4%b8%80%e6%ae%b5%e5%af%b9%e8%af%9d.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/16/%e5%80%bc%e5%be%97%e7%a8%8b%e5%ba%8f%e5%91%98%e4%bb%ac%e7%9c%8b%e7%9a%84%e4%b8%80%e6%ae%b5%e5%af%b9%e8%af%9d.shtml#comments</comments>
		<pubDate>Mon, 16 Feb 2009 14:29:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[对话]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=571</guid>
		<description><![CDATA[新年期许
三炮 
今天晚上和七夜吃饭去了，吃饭的时候聊到了程序员年龄的问题，回来的路上聊到了如何奔小康的问题。
三德子27了，已经开始因为年龄的缘故在做程序员这个问题上开始上下摇晃了，因为在中国，程序员就是苦力，是年轻而且精力智力好的人做的，可在我的眼里，三德子经验老到，丰富，很喜欢听三德子讲东西。
再过两年我也得27了，看着身边圈子里的一个个朋友有的有所成了，有的碌碌无为混到了大龄阶层。我觉得自己现在正在站在这个人生的分岔路上，如果再不加把劲，就危险了。
想起了长辰科技解散的时候邹总说过的话：“希望你们大家离开长辰科技，能做到一件事，每天看半小时的书，我的要求不高，就半小时，半年后，你们谁做到了，发短信告诉我！我相信你们不一定都能做到，单我希望你们能够做到！”，想起这句话至今感动着我，鼓舞着我。
    在2009年这一年，我要放下心中的包袱，愉快的上路，不再压抑，沉重，在2010年的时候，踏上一个更高的台阶！
孙小贰
我跟三德子一样，都是大龄程序员了，压力只能在有压力的地方获得。
我在朗玛9个月，每天看书半小时，我做到了(经常是半天)。
每天写程序，去做调试，我做到了。
经常写一些新鲜东西，我做到了。
每天写东西，后来做不到了，因为研究的东西深了，不是一天两天了。
但我有点崩溃了，虽然得到了一些东西，但也失去了一些东西。
我从有压力的地方走出来，希望能平衡自己的生活，真正去做适合自己的事情。 
三炮:相信你的这段辛苦的日子是值得的，我正在踏着你们老一辈做过的路迷茫的前行 删除
]]></description>
			<content:encoded><![CDATA[<p>新年期许</p>
<p>三炮 </p>
<p>今天晚上和七夜吃饭去了，吃饭的时候聊到了程序员年龄的问题，回来的路上聊到了如何奔小康的问题。<br />
三德子27了，已经开始因为年龄的缘故在做程序员这个问题上开始上下摇晃了，因为在中国，程序员就是苦力，是年轻而且精力智力好的人做的，可在我的眼里，三德子经验老到，丰富，很喜欢听三德子讲东西。<br />
再过两年我也得27了，看着身边圈子里的一个个朋友有的有所成了，有的碌碌无为混到了大龄阶层。我觉得自己现在正在站在这个人生的分岔路上，如果再不加把劲，就危险了。<br />
想起了长辰科技解散的时候邹总说过的话：“希望你们大家离开长辰科技，能做到一件事，每天看半小时的书，我的要求不高，就半小时，半年后，你们谁做到了，发短信告诉我！我相信你们不一定都能做到，单我希望你们能够做到！”，想起这句话至今感动着我，鼓舞着我。<br />
    在2009年这一年，我要放下心中的包袱，愉快的上路，不再压抑，沉重，在2010年的时候，踏上一个更高的台阶！</p>
<p>孙小贰</p>
<p>我跟三德子一样，都是大龄程序员了，压力只能在有压力的地方获得。<br />
我在朗玛9个月，每天看书半小时，我做到了(经常是半天)。<br />
每天写程序，去做调试，我做到了。<br />
经常写一些新鲜东西，我做到了。<br />
每天写东西，后来做不到了，因为研究的东西深了，不是一天两天了。<br />
但我有点崩溃了，虽然得到了一些东西，但也失去了一些东西。<br />
我从有压力的地方走出来，希望能平衡自己的生活，真正去做适合自己的事情。 </p>
<p>三炮:相信你的这段辛苦的日子是值得的，我正在踏着你们老一辈做过的路迷茫的前行 删除</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/16/%e5%80%bc%e5%be%97%e7%a8%8b%e5%ba%8f%e5%91%98%e4%bb%ac%e7%9c%8b%e7%9a%84%e4%b8%80%e6%ae%b5%e5%af%b9%e8%af%9d.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>mysql索引优化</title>
		<link>http://www.sunboyu.cn/2009/02/15/mysql%e7%b4%a2%e5%bc%95%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/15/mysql%e7%b4%a2%e5%bc%95%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Sun, 15 Feb 2009 06:01:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=568</guid>
		<description><![CDATA[做复杂的数据报表经常要很多sql语句连续执行，不是超时就是把mysql跑挂。不过现在硬件廉价，这些软件完美得兼容了多核多线程，虽然一个mysql进程负载高，但只占用一个内核，其他的查询依然可以使用其他的内核进行运算，服务器不会整体挂掉。
mysql优化，主要是索引，大量消耗资源的查询一定要做相关索引优化，具体优化思想我是阅读的这本书－http://www.douban.com/subject/3039216/ 里边mysql优化部分讲得非常简洁明了。而对于cpu的优化，就是尽力把整体时间拉开，cpu会比较平稳。具体做法是用sleep把sql语句分隔，这样用时间换取了稳定。当然，有些报表数据一旦作出就不会再变，这时最好把这些数据文本缓存，以后查询只读取文本即可。
]]></description>
			<content:encoded><![CDATA[<p>做复杂的数据报表经常要很多sql语句连续执行，不是超时就是把mysql跑挂。不过现在硬件廉价，这些软件完美得兼容了多核多线程，虽然一个mysql进程负载高，但只占用一个内核，其他的查询依然可以使用其他的内核进行运算，服务器不会整体挂掉。</p>
<p>mysql优化，主要是索引，大量消耗资源的查询一定要做相关索引优化，具体优化思想我是阅读的这本书－http://www.douban.com/subject/3039216/ 里边mysql优化部分讲得非常简洁明了。而对于cpu的优化，就是尽力把整体时间拉开，cpu会比较平稳。具体做法是用sleep把sql语句分隔，这样用时间换取了稳定。当然，有些报表数据一旦作出就不会再变，这时最好把这些数据文本缓存，以后查询只读取文本即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/15/mysql%e7%b4%a2%e5%bc%95%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos折腾记录</title>
		<link>http://www.sunboyu.cn/2009/02/10/centos%e6%8a%98%e8%85%be%e8%ae%b0%e5%bd%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/10/centos%e6%8a%98%e8%85%be%e8%ae%b0%e5%bd%95.shtml#comments</comments>
		<pubDate>Tue, 10 Feb 2009 03:47:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=561</guid>
		<description><![CDATA[安装gmone图形界面
yum &#8211;exclude=nautilus-sendto groupinstall gnome-desktop
安装vnc
yum install vnc
vncserver start
vi xstartup
#xterm -geometry 80&#215;24+10+10 -ls -title &#8220;$VNCDESKTOP Desktop&#8221; &#038;
gnome-session
就OK了
安装中文-得给不会命令行的大哥们用
yum groupinstall &#8220;Chinese Support&#8221;
另外编辑/etc/sysconfig/i18n成下面这个样子：
LANG=&#8221;zh_CN.GB18030&#8243;
SUPPORTED=&#8221;zh_CN.GB18030:zh_CN:zh:zh_TW.Big5:zh_TW:zh:en_US.iso885915:en_US:en&#8221;
SYSFONT=&#8221;lat0-sun16&#8243;
SYSFONTACM=&#8221;iso15&#8243;
reboot
另外，我想centos4.7直接yum成centos5.2，暂时不折腾
]]></description>
			<content:encoded><![CDATA[<p>安装gmone图形界面</p>
<p>yum &#8211;exclude=nautilus-sendto groupinstall gnome-desktop</p>
<p>安装vnc</p>
<p>yum install vnc</p>
<p>vncserver start</p>
<p>vi xstartup<br />
#xterm -geometry 80&#215;24+10+10 -ls -title &#8220;$VNCDESKTOP Desktop&#8221; &#038;<br />
gnome-session</p>
<p>就OK了</p>
<p>安装中文-得给不会命令行的大哥们用</p>
<p>yum groupinstall &#8220;Chinese Support&#8221;</p>
<p>另外编辑/etc/sysconfig/i18n成下面这个样子：<br />
LANG=&#8221;zh_CN.GB18030&#8243;<br />
SUPPORTED=&#8221;zh_CN.GB18030:zh_CN:zh:zh_TW.Big5:zh_TW:zh:en_US.iso885915:en_US:en&#8221;<br />
SYSFONT=&#8221;lat0-sun16&#8243;<br />
SYSFONTACM=&#8221;iso15&#8243;</p>
<p>reboot</p>
<p>另外，我想centos4.7直接yum成centos5.2，暂时不折腾</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/10/centos%e6%8a%98%e8%85%be%e8%ae%b0%e5%bd%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>无题</title>
		<link>http://www.sunboyu.cn/2009/02/09/%e6%97%a0%e9%a2%98.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/09/%e6%97%a0%e9%a2%98.shtml#comments</comments>
		<pubDate>Mon, 09 Feb 2009 12:47:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=556</guid>
		<description><![CDATA[正月十五月正东
羞煞人间万盏灯
总有一时落下去
满天尽是小星星
某文人骚客，很骚
]]></description>
			<content:encoded><![CDATA[<p>正月十五月正东</p>
<p>羞煞人间万盏灯</p>
<p>总有一时落下去</p>
<p>满天尽是小星星</p>
<p>某文人骚客，很骚</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/09/%e6%97%a0%e9%a2%98.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nagios学习笔记－安装篇</title>
		<link>http://www.sunboyu.cn/2009/02/04/nagios%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%8d%e5%ae%89%e8%a3%85%e7%af%87.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/04/nagios%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%8d%e5%ae%89%e8%a3%85%e7%af%87.shtml#comments</comments>
		<pubDate>Wed, 04 Feb 2009 09:49:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[nagios]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=554</guid>
		<description><![CDATA[服务器和网络总搞的人疲惫，有不少商用的服务器监视工具，但价格都太贵，自己写，太费劲，而且要监控的服务也很多，不近要监控可用性，还要监控性能。
后在CU论坛看到nagios功能强大，尝试安装了一下。
首先到 http://www.nagios.org/ 下载 nagios-3.0.6.tar.gz  nagios-plugins-1.4.13.tar.gz  两个程序，两个必须安装，否则不工作。
nagios主程序安装非常简单，暂时没有看configure参数，直接加了个 &#8211;prefix就OK了。那个plugins也一样，但nagios主程序在configure &#8211;prefix &#038;&#038; make all &#038;&#038; make install 之后,还要运行 make install-commandmode &#038;&#038; make install-config &#038;&#038; make install-init &#038;&#038; make install-webconf  但是最后一个 make install-webconf 可能会报错，无法找到apache配置文件目录，手工拷贝 nagios.conf 到apache配置文件目录，在主配置文件引用就可以了。
这样安装就完成了，可以访问 localhost/nagios
但没有配置，无法完成监控报表的功能，因为刚学习，也没找到中文文档，待研究后继续……
]]></description>
			<content:encoded><![CDATA[<p>服务器和网络总搞的人疲惫，有不少商用的服务器监视工具，但价格都太贵，自己写，太费劲，而且要监控的服务也很多，不近要监控可用性，还要监控性能。</p>
<p>后在CU论坛看到nagios功能强大，尝试安装了一下。</p>
<p>首先到 http://www.nagios.org/ 下载 nagios-3.0.6.tar.gz  nagios-plugins-1.4.13.tar.gz  两个程序，两个必须安装，否则不工作。</p>
<p>nagios主程序安装非常简单，暂时没有看configure参数，直接加了个 &#8211;prefix就OK了。那个plugins也一样，但nagios主程序在configure &#8211;prefix &#038;&#038; make all &#038;&#038; make install 之后,还要运行 make install-commandmode &#038;&#038; make install-config &#038;&#038; make install-init &#038;&#038; make install-webconf  但是最后一个 make install-webconf 可能会报错，无法找到apache配置文件目录，手工拷贝 nagios.conf 到apache配置文件目录，在主配置文件引用就可以了。</p>
<p>这样安装就完成了，可以访问 localhost/nagios</p>
<p>但没有配置，无法完成监控报表的功能，因为刚学习，也没找到中文文档，待研究后继续……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/04/nagios%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%8d%e5%ae%89%e8%a3%85%e7%af%87.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用APACHE代理功能加速网通电信互联收看《丑女无敌》</title>
		<link>http://www.sunboyu.cn/2009/02/02/%e4%bd%bf%e7%94%a8apache%e4%bb%a3%e7%90%86%e5%8a%9f%e8%83%bd%e5%8a%a0%e9%80%9f%e7%bd%91%e9%80%9a%e7%94%b5%e4%bf%a1%e4%ba%92%e8%81%94%e6%94%b6%e7%9c%8b%e3%80%8a%e4%b8%91%e5%a5%b3%e6%97%a0%e6%95%8c.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/02/%e4%bd%bf%e7%94%a8apache%e4%bb%a3%e7%90%86%e5%8a%9f%e8%83%bd%e5%8a%a0%e9%80%9f%e7%bd%91%e9%80%9a%e7%94%b5%e4%bf%a1%e4%ba%92%e8%81%94%e6%94%b6%e7%9c%8b%e3%80%8a%e4%b8%91%e5%a5%b3%e6%97%a0%e6%95%8c.shtml#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:26:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[丑女无敌]]></category>
		<category><![CDATA[代理]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=550</guid>
		<description><![CDATA[内人要看金鹰网的《丑女无敌》，无奈其服务器为电信线路，我们北京网通线路浏览非常慢，肉眼就能看见侦数。
起初想做个vpn，登陆到服务器上，走电信网关，但linux在配置vpn时候内核编译死活不能成功，暂时放弃这个计划，想其他方法。
本以为web播放走流媒体的相关协议，后尝试使用流媒体下载工具，始终没能把文件扒下来，后被逼急，又想入侵其服务器。
扫描了端口，发现其服务器只开21 80端口了，非常诡异，正常的流媒体不走这两个端口的，后抓包发现，web播放器中请求服务器其实是走的HTTP协议
GET /HttpServer/jinying/电视剧下载/丑女无敌第二季/第四集.wmv?SessionID=75440406108580700-17&#38;ServerIP=222.246.135.168&#38;ServiceType=1&#38;ContentID=6754 HTTP/1.1
Host:222.246.135.168
Accept:*/*
User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Connection:close
Range:bytes=5444743-5969030&#160; &#160; &#160; &#160; &#160;#524287
ConnectId:22455
CheckTag:34275a1d57f84c60b5ccf8519cad6908
UserAgent:PowerStream 1.0.5.5507
页面每隔一段时间去请求一段数据，然后浏览器中的播放器去处理这些数据，转换为影音。
既然是走http，那可以直接用apache做一个代理，我直接把本地的http请求通过亦庄网通的服务器转发，而亦庄虽然是网通机房，但访问电信的速度确比我高的多，这样就实现了网通高速收看电信的节目。
虽然稍卡（码率比较大），但基本达到了顺利观看的水平。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2009/02/e4b891e5a5b3e697a0e6958ce7acac2e5ada3-1.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/02/e4b891e5a5b3e697a0e6958ce7acac2e5ada3-1.jpg" alt="e4b891e5a5b3e697a0e6958ce7acac2e5ada3-1" title="e4b891e5a5b3e697a0e6958ce7acac2e5ada3-1" width="264" height="198" class="aligncenter size-full wp-image-552" /></a>内人要看金鹰网的《丑女无敌》，无奈其服务器为电信线路，我们北京网通线路浏览非常慢，肉眼就能看见侦数。</p>
<p>起初想做个vpn，登陆到服务器上，走电信网关，但linux在配置vpn时候内核编译死活不能成功，暂时放弃这个计划，想其他方法。</p>
<p>本以为web播放走流媒体的相关协议，后尝试使用流媒体下载工具，始终没能把文件扒下来，后被逼急，又想入侵其服务器。</p>
<p>扫描了端口，发现其服务器只开21 80端口了，非常诡异，正常的流媒体不走这两个端口的，后抓包发现，web播放器中请求服务器其实是走的HTTP协议</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">GET /HttpServer/jinying/电视剧下载/丑女无敌第二季/第四集.wmv?SessionID=75440406108580700-17&amp;ServerIP=222.246.135.168&amp;ServiceType=1&amp;ContentID=6754 HTTP/1.1</li>
<li>Host:222.246.135.168</li>
<li>Accept:*/*</li>
<li>User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)</li>
<li>Connection:close</li>
<li>Range:bytes=5444743-5969030&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#524287</li>
<li>ConnectId:22455</li>
<li>CheckTag:34275a1d57f84c60b5ccf8519cad6908</li>
<li>UserAgent:PowerStream 1.0.5.5507</li></ol></div>
<p>页面每隔一段时间去请求一段数据，然后浏览器中的播放器去处理这些数据，转换为影音。</p>
<p>既然是走http，那可以直接用apache做一个代理，我直接把本地的http请求通过亦庄网通的服务器转发，而亦庄虽然是网通机房，但访问电信的速度确比我高的多，这样就实现了网通高速收看电信的节目。</p>
<p>虽然稍卡（码率比较大），但基本达到了顺利观看的水平。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/02/%e4%bd%bf%e7%94%a8apache%e4%bb%a3%e7%90%86%e5%8a%9f%e8%83%bd%e5%8a%a0%e9%80%9f%e7%bd%91%e9%80%9a%e7%94%b5%e4%bf%a1%e4%ba%92%e8%81%94%e6%94%b6%e7%9c%8b%e3%80%8a%e4%b8%91%e5%a5%b3%e6%97%a0%e6%95%8c.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>发现问题，PHP中时间的一些细节</title>
		<link>http://www.sunboyu.cn/2009/02/01/%e5%8f%91%e7%8e%b0%e9%97%ae%e9%a2%98%ef%bc%8cphp%e4%b8%ad%e6%97%b6%e9%97%b4%e7%9a%84%e4%b8%80%e4%ba%9b%e7%bb%86%e8%8a%82.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/01/%e5%8f%91%e7%8e%b0%e9%97%ae%e9%a2%98%ef%bc%8cphp%e4%b8%ad%e6%97%b6%e9%97%b4%e7%9a%84%e4%b8%80%e4%ba%9b%e7%bb%86%e8%8a%82.shtml#comments</comments>
		<pubDate>Sun, 01 Feb 2009 13:53:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=548</guid>
		<description><![CDATA[php中，时间戳和date取得的时间是不同的。
时间戳是时间段，不受时区影响，无论哪个时区，取得都是格林威治的时间段。
date，是取得的系统时间，也就是加了时区的。
为了保持一致，php的头文件应该首先声明时区。
犯个错误，还得导数据库……
]]></description>
			<content:encoded><![CDATA[<p>php中，时间戳和date取得的时间是不同的。</p>
<p>时间戳是时间段，不受时区影响，无论哪个时区，取得都是格林威治的时间段。</p>
<p>date，是取得的系统时间，也就是加了时区的。</p>
<p>为了保持一致，php的头文件应该首先声明时区。</p>
<p>犯个错误，还得导数据库……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/01/%e5%8f%91%e7%8e%b0%e9%97%ae%e9%a2%98%ef%bc%8cphp%e4%b8%ad%e6%97%b6%e9%97%b4%e7%9a%84%e4%b8%80%e4%ba%9b%e7%bb%86%e8%8a%82.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux时间同步大法</title>
		<link>http://www.sunboyu.cn/2009/02/01/linux%e6%97%b6%e9%97%b4%e5%90%8c%e6%ad%a5%e5%a4%a7%e6%b3%95.shtml</link>
		<comments>http://www.sunboyu.cn/2009/02/01/linux%e6%97%b6%e9%97%b4%e5%90%8c%e6%ad%a5%e5%a4%a7%e6%b3%95.shtml#comments</comments>
		<pubDate>Sun, 01 Feb 2009 04:11:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rdate]]></category>
		<category><![CDATA[时间同步]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=546</guid>
		<description><![CDATA[linux时间不同步，很郁闷，装了个ntp之类的东西，还是不好使
其实使用rdate就可以，但死活不成功。
又考虑，时间协议也许不是走80端口，查看/etc/service 果然，service iptables stop, 重新运行
rdate -s time.nist.gov
果然同步成功。
本机设置为上海时间，一切OK。
]]></description>
			<content:encoded><![CDATA[<p>linux时间不同步，很郁闷，装了个ntp之类的东西，还是不好使</p>
<p>其实使用rdate就可以，但死活不成功。</p>
<p>又考虑，时间协议也许不是走80端口，查看/etc/service 果然，service iptables stop, 重新运行</p>
<p>rdate -s time.nist.gov</p>
<p>果然同步成功。</p>
<p>本机设置为上海时间，一切OK。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/02/01/linux%e6%97%b6%e9%97%b4%e5%90%8c%e6%ad%a5%e5%a4%a7%e6%b3%95.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>新年新气象</title>
		<link>http://www.sunboyu.cn/2009/01/31/%e6%96%b0%e5%b9%b4%e6%96%b0%e6%b0%94%e8%b1%a1.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/31/%e6%96%b0%e5%b9%b4%e6%96%b0%e6%b0%94%e8%b1%a1.shtml#comments</comments>
		<pubDate>Sat, 31 Jan 2009 12:40:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[诺基亚]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=542</guid>
		<description><![CDATA[折腾了一周，终于回到北京。以前过年是享福，现在是受着罪享福。
早晨6点起床，中午12点就进屋了，还是家近的好。
去年收入不错，犒劳自己，买了个新手机，很牛的手机，诺基亚1200……待机十来天，这是我最喜欢的，因为我懒，经常忘记充电。
上图

]]></description>
			<content:encoded><![CDATA[<p>折腾了一周，终于回到北京。以前过年是享福，现在是受着罪享福。</p>
<p>早晨6点起床，中午12点就进屋了，还是家近的好。</p>
<p>去年收入不错，犒劳自己，买了个新手机，很牛的手机，诺基亚1200……待机十来天，这是我最喜欢的，因为我懒，经常忘记充电。</p>
<p>上图</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/01/1200.jpg"><img class="aligncenter size-full wp-image-543" title="1200" src="http://www.sunboyu.cn/upfiles/2009/01/1200.jpg" alt="1200" width="500" height="500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/31/%e6%96%b0%e5%b9%b4%e6%96%b0%e6%b0%94%e8%b1%a1.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>乡村歌手</title>
		<link>http://www.sunboyu.cn/2009/01/28/%e4%b9%a1%e6%9d%91%e6%ad%8c%e6%89%8b-2.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/28/%e4%b9%a1%e6%9d%91%e6%ad%8c%e6%89%8b-2.shtml#comments</comments>
		<pubDate>Wed, 28 Jan 2009 08:29:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=537</guid>
		<description><![CDATA[[media id=2 width=320 height=240]
]]></description>
			<content:encoded><![CDATA[<p>[media id=2 width=320 height=240]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/28/%e4%b9%a1%e6%9d%91%e6%ad%8c%e6%89%8b-2.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>乡村歌手</title>
		<link>http://www.sunboyu.cn/2009/01/28/%e4%b9%a1%e6%9d%91%e6%ad%8c%e6%89%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/28/%e4%b9%a1%e6%9d%91%e6%ad%8c%e6%89%8b.shtml#comments</comments>
		<pubDate>Wed, 28 Jan 2009 02:04:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=535</guid>
		<description><![CDATA[[media id=1 width=320 height=240]
]]></description>
			<content:encoded><![CDATA[<p>[media id=1 width=320 height=240]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/28/%e4%b9%a1%e6%9d%91%e6%ad%8c%e6%89%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>山村春晚即将推出</title>
		<link>http://www.sunboyu.cn/2009/01/26/%e5%b1%b1%e6%9d%91%e6%98%a5%e6%99%9a%e5%8d%b3%e5%b0%86%e6%8e%a8%e5%87%ba.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/26/%e5%b1%b1%e6%9d%91%e6%98%a5%e6%99%9a%e5%8d%b3%e5%b0%86%e6%8e%a8%e5%87%ba.shtml#comments</comments>
		<pubDate>Mon, 26 Jan 2009 08:41:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[山村]]></category>
		<category><![CDATA[春晚]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=532</guid>
		<description><![CDATA[下午我爹组织了一场纯山村春晚，计划跟CCTV的春晚较劲。
详情轻关注本博客。
]]></description>
			<content:encoded><![CDATA[<p>下午我爹组织了一场纯山村春晚，计划跟CCTV的春晚较劲。</p>
<p>详情轻关注本博客。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/26/%e5%b1%b1%e6%9d%91%e6%98%a5%e6%99%9a%e5%8d%b3%e5%b0%86%e6%8e%a8%e5%87%ba.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>老家的新成员</title>
		<link>http://www.sunboyu.cn/2009/01/24/%e8%80%81%e5%ae%b6%e7%9a%84%e6%96%b0%e6%88%90%e5%91%98.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/24/%e8%80%81%e5%ae%b6%e7%9a%84%e6%96%b0%e6%88%90%e5%91%98.shtml#comments</comments>
		<pubDate>Sat, 24 Jan 2009 06:47:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[dog]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=530</guid>
		<description><![CDATA[[nggallery id=2]
]]></description>
			<content:encoded><![CDATA[<p>[nggallery id=2]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/24/%e8%80%81%e5%ae%b6%e7%9a%84%e6%96%b0%e6%88%90%e5%91%98.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在家办公，其乐无穷</title>
		<link>http://www.sunboyu.cn/2009/01/23/%e5%9c%a8%e5%ae%b6%e5%8a%9e%e5%85%ac%ef%bc%8c%e5%85%b6%e4%b9%90%e6%97%a0%e7%a9%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/23/%e5%9c%a8%e5%ae%b6%e5%8a%9e%e5%85%ac%ef%bc%8c%e5%85%b6%e4%b9%90%e6%97%a0%e7%a9%b7.shtml#comments</comments>
		<pubDate>Fri, 23 Jan 2009 02:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=521</guid>
		<description><![CDATA[[nggallery id=1]
这个相册插件不错，推广一下
]]></description>
			<content:encoded><![CDATA[<p>[nggallery id=1]</p>
<p>这个相册插件不错，推广一下</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/23/%e5%9c%a8%e5%ae%b6%e5%8a%9e%e5%85%ac%ef%bc%8c%e5%85%b6%e4%b9%90%e6%97%a0%e7%a9%b7.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>我们应该信任谁</title>
		<link>http://www.sunboyu.cn/2009/01/22/%e6%88%91%e4%bb%ac%e5%ba%94%e8%af%a5%e4%bf%a1%e4%bb%bb%e8%b0%81.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/22/%e6%88%91%e4%bb%ac%e5%ba%94%e8%af%a5%e4%bf%a1%e4%bb%bb%e8%b0%81.shtml#comments</comments>
		<pubDate>Thu, 22 Jan 2009 03:03:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[带宽]]></category>
		<category><![CDATA[链路]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=514</guid>
		<description><![CDATA[最近几个服务器频频出事，虽然不是自己的服务器，经验还是值得学习的。
在做高可靠性方案的时候，我们应该信任谁，是个问题。
首先是域名。一般域名都是委托给idc，或者专业做dns的，作为网站的入口，交给他们就等于绝对的信任他们，没有备份方案。如果带有些许的不信任，可以设置备用dns为自己的dns服务器。dns一般没太大的问题，但一旦有问题就是大问题，万网新网好像都发生过dns服务器大规模故障，全国各地大面积瘫痪，不能不说，对域名的信任存在问题。
链路，说到链路，这是个大问题，也许也包含了域名的问题。
从dns，网关，路由，响应，各个节点负载，都需要经过详细测试。
一般销售推销带宽，只是简单让测试ping值，但实际是不科学的，因为在用的时候，我选择的带宽ping值的确很好，但实际应用效果缺不理想，没有那个系统是靠ping值来保障的，域名服务器，网关速度，交换，路由的处理能力都是硬指标。很多服务器ping值好，但数据一流起来可就没那么好了。承诺给你大的带宽，可带宽要局限在一个固定的环境中，无异于局域网应用。
我们需要的是优秀的广域网应用，所以，最好的测试还是把服务架上，实际去跑一阵应用服务，才能最终确定带宽和链路的质量。
中间跳了很多环境，涉及了宽带提供商，运营商，代理，现场技术，用户等很多环节，保证每个环境的通路才是最终的通路。任何一个环节都可能成为瓶颈和以后应用的隐患。
但在中国的网络环境中，我们应该信任谁？
]]></description>
			<content:encoded><![CDATA[<p>最近几个服务器频频出事，虽然不是自己的服务器，经验还是值得学习的。</p>
<p>在做高可靠性方案的时候，我们应该信任谁，是个问题。</p>
<p>首先是域名。一般域名都是委托给idc，或者专业做dns的，作为网站的入口，交给他们就等于绝对的信任他们，没有备份方案。如果带有些许的不信任，可以设置备用dns为自己的dns服务器。dns一般没太大的问题，但一旦有问题就是大问题，万网新网好像都发生过dns服务器大规模故障，全国各地大面积瘫痪，不能不说，对域名的信任存在问题。</p>
<p>链路，说到链路，这是个大问题，也许也包含了域名的问题。</p>
<p>从dns，网关，路由，响应，各个节点负载，都需要经过详细测试。</p>
<p>一般销售推销带宽，只是简单让测试ping值，但实际是不科学的，因为在用的时候，我选择的带宽ping值的确很好，但实际应用效果缺不理想，没有那个系统是靠ping值来保障的，域名服务器，网关速度，交换，路由的处理能力都是硬指标。很多服务器ping值好，但数据一流起来可就没那么好了。承诺给你大的带宽，可带宽要局限在一个固定的环境中，无异于局域网应用。</p>
<p>我们需要的是优秀的广域网应用，所以，最好的测试还是把服务架上，实际去跑一阵应用服务，才能最终确定带宽和链路的质量。</p>
<p>中间跳了很多环境，涉及了宽带提供商，运营商，代理，现场技术，用户等很多环节，保证每个环境的通路才是最终的通路。任何一个环节都可能成为瓶颈和以后应用的隐患。</p>
<p>但在中国的网络环境中，我们应该信任谁？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/22/%e6%88%91%e4%bb%ac%e5%ba%94%e8%af%a5%e4%bf%a1%e4%bb%bb%e8%b0%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sunboyu-amp-fastcgi-suexec-v23-alpha</title>
		<link>http://www.sunboyu.cn/2009/01/21/sunboyu-amp-fastcgi-suexec-v23-alpha.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/21/sunboyu-amp-fastcgi-suexec-v23-alpha.shtml#comments</comments>
		<pubDate>Wed, 21 Jan 2009 03:10:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[amp]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=516</guid>
		<description><![CDATA[Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.3
1、补全了支持的字符集，默认为utf8
sunboyu-amp-fastcgi-suexec-v23-alpha
]]></description>
			<content:encoded><![CDATA[<p>Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.3</p>
<p>1、补全了支持的字符集，默认为utf8</p>
<p><a href='http://www.sunboyu.cn/upfiles/2009/01/sunboyu-amp-fastcgi-suexec-v23-alpha.txt'>sunboyu-amp-fastcgi-suexec-v23-alpha</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/21/sunboyu-amp-fastcgi-suexec-v23-alpha.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>倒霉的网管</title>
		<link>http://www.sunboyu.cn/2009/01/19/%e5%80%92%e9%9c%89%e7%9a%84%e7%bd%91%e7%ae%a1.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/19/%e5%80%92%e9%9c%89%e7%9a%84%e7%bd%91%e7%ae%a1.shtml#comments</comments>
		<pubDate>Mon, 19 Jan 2009 12:40:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[故障]]></category>
		<category><![CDATA[网管]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=507</guid>
		<description><![CDATA[ping的通，连不上]]></description>
			<content:encoded><![CDATA[<p>该死的网管，昨天就发现网络不正常，没注意，以为是机房不稳定，可这种状态持续到了今天。话说这状态非常诡异，可以ping通，很快，偶尔也能应用一些服务，httpd，ftp，ssh，但有时候任何服务都中断，只是ping的通。</p>
<p>但是如果ssh一直保持会话，突然中断后，ssh还能顺利跟服务器通讯。</p>
<p>这可难坏了我这个牛叉的系统工程师和一个CCIE级大哥，我又发挥流氓黑客的精神，彻底扫描了服务器端口和一些数据包，发现几个疑点：</p>
<p>1、服务器通讯正常的时候，所有端口的包数据都是正常的，是我自己服务的标志。</p>
<p>2、服务器通讯异常的时候，服务端口有变，并且出现异常数据。</p>
<p>疯狂google后发现，有这么几个可能性：</p>
<p>1、dell的网卡驱动没有装好，会产生MAC地址跳跃（mac地址都是写在芯片里的，汗！）。</p>
<p>2、ip地址被盗用了。</p>
<p>第一条已经排除，下载dell网卡驱动后，重装后也正常。问题依然存在。</p>
<p>第二，我跟那边网管要了个新的ip，一切正常。</p>
<p>比较一下两个服务器的几个协议的头,上边是我的，下边是异常的</p>
<p>1、ftp</p>
<p>我牛叉的Pure-FTPd,mysql动态控制的</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">220---------- 欢迎来到 Pure-FTPd ----------</li>
<li>220-您是第 1 个使用者，最多可达 50 个连接</li>
<li>220-现在本地时间是 15:21。服务器端口： 21。</li>
<li>220-这部主机也欢迎IPv6的连接</li>
<li>220 在 15 分钟内没有活动，您被会断线。</li></ol></div>
<p>啥玩意，还真没见过</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">220 211.99.3.121 pSOSystem FTP server (NTL386/1.0.4) ready.</li></ol></div>
<p>他的其他端口<br />
特征码出来了，CTerminalSocket，google一下原来是作voip电话的服务器，逮着了，回头砸他服务器去！</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">Connect</li>
<li>Remote Command:</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;MCMS VERSION 7.5.0.173&nbsp; &nbsp;Operating System : PSOS</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 19/01/09 15:32:40:590 N</li>
<li>:0000133853 T:0c610000 L:10 S:0585d800 CTerminalSocket</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;****************&nbsp; &nbsp;EXCEPTI</li>
<li>ON&nbsp; *****************</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/19/%e5%80%92%e9%9c%89%e7%9a%84%e7%bd%91%e7%ae%a1.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>累……疯狂的配置</title>
		<link>http://www.sunboyu.cn/2009/01/18/%e7%b4%af%e2%80%a6%e2%80%a6%e7%96%af%e7%8b%82%e7%9a%84%e9%85%8d%e7%bd%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/18/%e7%b4%af%e2%80%a6%e2%80%a6%e7%96%af%e7%8b%82%e7%9a%84%e9%85%8d%e7%bd%ae.shtml#comments</comments>
		<pubDate>Sun, 18 Jan 2009 14:16:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[精简]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=503</guid>
		<description><![CDATA[Dell1950终于上架了，又一个牛叉的系统，我把CentOS精简到了我能想象到的极致（当然跟gentoo还不能媲美），在AMP(apache,php,mysql)都启动空负载的状态下，内存占用降到了128M以下。
top - 16:54:16 up&#160; 3:42,&#160; 1 user,&#160; load average: 0.00, 0.00, 0.00
Tasks:&#160; 83 total,&#160; &#160;1 running,&#160; 82 sleeping,&#160; &#160;0 stopped,&#160; &#160;0 zombie
Cpu(s):&#160; 0.0% us,&#160; 0.0% sy,&#160; 0.0% ni, 99.9% id,&#160; 0.1% wa,&#160; 0.0% hi,&#160; 0.0% si
Mem:&#160; &#160;4042344k total,&#160; &#160;125040k used,&#160; 3917304k free,&#160; &#160; 11136k buffers
Swap:&#160; 6094840k total,&#160; &#160; &#160; &#160; 0k used,&#160; 6094840k free,&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Dell1950终于上架了，又一个牛叉的系统，我把CentOS精简到了我能想象到的极致（当然跟gentoo还不能媲美），在AMP(apache,php,mysql)都启动空负载的状态下，内存占用降到了128M以下。</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">top - 16:54:16 up&nbsp; 3:42,&nbsp; 1 user,&nbsp; load average: 0.00, 0.00, 0.00</li>
<li>Tasks:&nbsp; 83 total,&nbsp; &nbsp;1 running,&nbsp; 82 sleeping,&nbsp; &nbsp;0 stopped,&nbsp; &nbsp;0 zombie</li>
<li>Cpu(s):&nbsp; 0.0% us,&nbsp; 0.0% sy,&nbsp; 0.0% ni, 99.9% id,&nbsp; 0.1% wa,&nbsp; 0.0% hi,&nbsp; 0.0% si</li>
<li>Mem:&nbsp; &nbsp;4042344k total,&nbsp; &nbsp;125040k used,&nbsp; 3917304k free,&nbsp; &nbsp; 11136k buffers</li>
<li>Swap:&nbsp; 6094840k total,&nbsp; &nbsp; &nbsp; &nbsp; 0k used,&nbsp; 6094840k free,&nbsp; &nbsp; 47004k cached</li></ol></div>
<p>一些内核级补丁没有打，估计了解这类漏洞入侵的人，我暂时也招架不住，现在只是为了服务器的稳定。apache＋php＋mysql＋ftp＋ssh之类的账户权限作了详细的统筹，对外服务权限尤其作了限制，尽量达到最优。PHP是用developer模式进行编译安装，没有考虑实际应用，只是把功能尽量多的增加（这些操作会稍微影响性能，但相对128M，是可以忽略的），但很重要的opcode缓冲加上了，Centos用最小安装，以来的一些组件和库分别安装，决不多余。尽量在硬盘基础占用上也降至最小。硬盘分区使用了LVM，偷懒了，虽然这样会有很大的问题，但手工分区还不是很熟悉，而且在管理存储上我功力还不够，以后进行改善。</p>
<p>硬盘情况如下：感觉还是大了点，回头清理一下缓存。</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">[root@localhost ~]# df</li>
<li>Filesystem&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1K-blocks&nbsp; &nbsp; &nbsp; Used Available Use% Mounted on</li>
<li>/dev/mapper/VolGroup00-LogVol00</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 134980848&nbsp; &nbsp;1214972 126909172&nbsp; &nbsp;1% /</li>
<li>/dev/sda1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;101086&nbsp; &nbsp; &nbsp;14864&nbsp; &nbsp; &nbsp;81003&nbsp; 16% /boot</li>
<li>none&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2021172&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0&nbsp; &nbsp;2021172&nbsp; &nbsp;0% /dev/shm</li></ol></div>
<p>很成功的系统，但管理软件我一直没功夫去写，待写完后就是一个完整的初始系统＋管理套件</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/18/%e7%b4%af%e2%80%a6%e2%80%a6%e7%96%af%e7%8b%82%e7%9a%84%e9%85%8d%e7%bd%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell1950安装Centos4.7 ServerCD</title>
		<link>http://www.sunboyu.cn/2009/01/18/dell1950%e5%ae%89%e8%a3%85centos47-servercd.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/18/dell1950%e5%ae%89%e8%a3%85centos47-servercd.shtml#comments</comments>
		<pubDate>Sun, 18 Jan 2009 03:11:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[centos4.7]]></category>
		<category><![CDATA[dell1950]]></category>
		<category><![CDATA[servercd]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=501</guid>
		<description><![CDATA[朋友弄来一台Dell1950，至强E5405，单颗CPU4核，4G内存，一块136Gsas硬盘，因原来的双CPU的机器利用率太差，好说歹说才降级改成单CPU。
原以为DELL对linux支持很好，可我的centos4.7servercd 并没有直接就能装上，估计是不认sas硬盘，没有继承sas硬盘的驱动，翻出机器自带的引导光盘，默认引导一遍，把驱动拷贝到硬盘上，可所支持的操作系统只有windows和redhat的as系统，我的CentosCD并不认，逼我重启，再用CentosCD引导，顺利安装。
这机器就是比我本本上的虚拟机快－－&#124;&#124;几乎是闪装系统，闪编译，而最大的瓶颈却是我家里1M的adsl带宽，因为我是从我 sunboyu.cn 的源里下载软件，其实当时应该配置成局域网源的，忘了，不过也就这样了，速度飞快，而且我那个脚本基本无人职守，跑上，我就喝茶去了……
顺便也写了本篇日志
]]></description>
			<content:encoded><![CDATA[<p>朋友弄来一台Dell1950，至强E5405，单颗CPU4核，4G内存，一块136Gsas硬盘，因原来的双CPU的机器利用率太差，好说歹说才降级改成单CPU。</p>
<p>原以为DELL对linux支持很好，可我的centos4.7servercd 并没有直接就能装上，估计是不认sas硬盘，没有继承sas硬盘的驱动，翻出机器自带的引导光盘，默认引导一遍，把驱动拷贝到硬盘上，可所支持的操作系统只有windows和redhat的as系统，我的CentosCD并不认，逼我重启，再用CentosCD引导，顺利安装。</p>
<p>这机器就是比我本本上的虚拟机快－－||几乎是闪装系统，闪编译，而最大的瓶颈却是我家里1M的adsl带宽，因为我是从我 sunboyu.cn 的源里下载软件，其实当时应该配置成局域网源的，忘了，不过也就这样了，速度飞快，而且我那个脚本基本无人职守，跑上，我就喝茶去了……</p>
<p>顺便也写了本篇日志</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/18/dell1950%e5%ae%89%e8%a3%85centos47-servercd.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gentoo初体验</title>
		<link>http://www.sunboyu.cn/2009/01/17/gentoo%e5%88%9d%e4%bd%93%e9%aa%8c.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/17/gentoo%e5%88%9d%e4%bd%93%e9%aa%8c.shtml#comments</comments>
		<pubDate>Sat, 17 Jan 2009 06:37:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GenToo]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[安装]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=495</guid>
		<description><![CDATA[使用的是 install-x86-minimal-2008.0.iso 这张盘，在vmware6中进行安装。
初次安装异常辛苦，想起了刚买电脑装98那架势。自己格盘，配置文件系统，然后安装，然后％……※×……×（※（
反正很有乐趣。
底下是初次使用常用命令，打包收集一下
passwd  #修改root密码
net-setup eth0   #修改网卡信息
/etc/init.d/sshd start  #启动sshd服务  底下就可以用ssh登录了
磁盘分区，我习惯用lvm，虽说安全和管理上是偷懒的行为，不过方便么。
fdisk不好用，我用cfdisk，很OK。
创建文件系统的命令



文件系统
创建命令


ext2
mke2fs


ext3
mke2fs -j


reiserfs
mkreiserfs


xfs
mkfs.xfs


jfs
mkfs.jfs



创建swap分区  mkswap /dev/hda2
激活swap分区  swapon /dev/hda2
然后挂载文件，具体看手册  http://gentoo.linuxsir.org/doc/cn/handbook/hb_part1_chap5.html
以后按照手册，我基本建立起了这个系统，而且portage成功。
]]></description>
			<content:encoded><![CDATA[<p>使用的是 install-x86-minimal-2008.0.iso 这张盘，在vmware6中进行安装。</p>
<p>初次安装异常辛苦，想起了刚买电脑装98那架势。自己格盘，配置文件系统，然后安装，然后％……※×……×（※（</p>
<p>反正很有乐趣。</p>
<p>底下是初次使用常用命令，打包收集一下<br />
passwd  #修改root密码<br />
net-setup eth0   #修改网卡信息<br />
/etc/init.d/sshd start  #启动sshd服务  底下就可以用ssh登录了</p>
<p>磁盘分区，我习惯用lvm，虽说安全和管理上是偷懒的行为，不过方便么。<br />
fdisk不好用，我用cfdisk，很OK。</p>
<p>创建文件系统的命令</p>
<table border="0">
<tbody>
<tr>
<td bgcolor="#7a5ada"><strong>文件系统</strong></td>
<td bgcolor="#7a5ada"><strong>创建命令</strong></td>
</tr>
<tr>
<td bgcolor="#ddddff">ext2</td>
<td bgcolor="#ddddff"><span class="code">mke2fs</span></td>
</tr>
<tr>
<td bgcolor="#ddddff">ext3</td>
<td bgcolor="#ddddff"><span class="code">mke2fs -j</span></td>
</tr>
<tr>
<td bgcolor="#ddddff">reiserfs</td>
<td bgcolor="#ddddff"><span class="code">mkreiserfs</span></td>
</tr>
<tr>
<td bgcolor="#ddddff">xfs</td>
<td bgcolor="#ddddff"><span class="code">mkfs.xfs</span></td>
</tr>
<tr>
<td bgcolor="#ddddff">jfs</td>
<td bgcolor="#ddddff"><span class="code">mkfs.jfs</span></td>
</tr>
</tbody>
</table>
<p>创建swap分区  mkswap /dev/hda2</p>
<p>激活swap分区  swapon /dev/hda2</p>
<p>然后挂载文件，具体看手册  http://gentoo.linuxsir.org/doc/cn/handbook/hb_part1_chap5.html</p>
<p>以后按照手册，我基本建立起了这个系统，而且portage成功。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/17/gentoo%e5%88%9d%e4%bd%93%e9%aa%8c.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>明确了方向,Gentoo,Python</title>
		<link>http://www.sunboyu.cn/2009/01/17/%e6%98%8e%e7%a1%ae%e4%ba%86%e6%96%b9%e5%90%91gentoopython.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/17/%e6%98%8e%e7%a1%ae%e4%ba%86%e6%96%b9%e5%90%91gentoopython.shtml#comments</comments>
		<pubDate>Fri, 16 Jan 2009 16:03:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=493</guid>
		<description><![CDATA[晚上收拾东西，翻出了很多的Linux发行版，Ubuntu，SuseLinux，红旗，Fedora等。不过我最终还是留下了Centos的几个版本。
Fedora5是我的第一个实际应用的发行版，因为公司当时从win迁移linux平台，红帽是我曾经听说过的系统，简单实践过，就硬上了，好在有yum这东西，很端的时间把服务都配起来，还真跑起来了。
不过Fedora在DELL1950的机器上有个硬伤，就是对双网卡的支持不好，只能支持一块网卡，后来迫不得已，找到了Centos，果然很爽，就一直在用了。
以后，基本一直在研究和优化linux下的Web相关服务。不断优化，改进，定制。
终于发现在发行版的基础上优化和精简，逐渐有了障碍，我需要研究linux的各种服务的原理，与其去分析每个服务，不如从零配置一个服务。两个方案，LFS和gentoo。
LFS似乎是个很神秘的东西，其实现在的资料很全，而且很多高手给出了详细的流程。但我选择了gentoo，因为gentoo是完全根据用户定制进行安装，是在一个稳定的基础上进行定制，定制的产品也许稳定性和效率会很高。而LFS，如果我对linux的理解不是太深，也许作出来的版本也是不能进行生产的，只能算个实验室产品。
因此，本着劳以致用的原则，我开始对gentoo系统的研究，另外继续发展熟悉的CentOS4.7Server版本用作生产。
希望下年我能完全切换到gentoo环境＋python开发。
注：转移到python，是因为最近我被一个PHP进程效率问题折腾的焦头烂额，而在linux上实现多个php进程调度的困难和效率的损失让我彻底对PHP失去了信心，因为PHP就是一个面向Web的开发语言，用迷信崇拜的思想往其他领域迁移实在是难受，因此用python去解决多进程的问题再好不好，python的解释型语言和面向对象特性跟PHP很是相似，但相关的类库却接近于底层，又没有c的完全面向底层。python也许又是我下一个迷信的东西。
]]></description>
			<content:encoded><![CDATA[<p>晚上收拾东西，翻出了很多的Linux发行版，Ubuntu，SuseLinux，红旗，Fedora等。不过我最终还是留下了Centos的几个版本。</p>
<p>Fedora5是我的第一个实际应用的发行版，因为公司当时从win迁移linux平台，红帽是我曾经听说过的系统，简单实践过，就硬上了，好在有yum这东西，很端的时间把服务都配起来，还真跑起来了。</p>
<p>不过Fedora在DELL1950的机器上有个硬伤，就是对双网卡的支持不好，只能支持一块网卡，后来迫不得已，找到了Centos，果然很爽，就一直在用了。</p>
<p>以后，基本一直在研究和优化linux下的Web相关服务。不断优化，改进，定制。</p>
<p>终于发现在发行版的基础上优化和精简，逐渐有了障碍，我需要研究linux的各种服务的原理，与其去分析每个服务，不如从零配置一个服务。两个方案，LFS和gentoo。</p>
<p>LFS似乎是个很神秘的东西，其实现在的资料很全，而且很多高手给出了详细的流程。但我选择了gentoo，因为gentoo是完全根据用户定制进行安装，是在一个稳定的基础上进行定制，定制的产品也许稳定性和效率会很高。而LFS，如果我对linux的理解不是太深，也许作出来的版本也是不能进行生产的，只能算个实验室产品。</p>
<p>因此，本着劳以致用的原则，我开始对gentoo系统的研究，另外继续发展熟悉的CentOS4.7Server版本用作生产。</p>
<p>希望下年我能完全切换到gentoo环境＋python开发。</p>
<p>注：转移到python，是因为最近我被一个PHP进程效率问题折腾的焦头烂额，而在linux上实现多个php进程调度的困难和效率的损失让我彻底对PHP失去了信心，因为PHP就是一个面向Web的开发语言，用迷信崇拜的思想往其他领域迁移实在是难受，因此用python去解决多进程的问题再好不好，python的解释型语言和面向对象特性跟PHP很是相似，但相关的类库却接近于底层，又没有c的完全面向底层。python也许又是我下一个迷信的东西。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/17/%e6%98%8e%e7%a1%ae%e4%ba%86%e6%96%b9%e5%90%91gentoopython.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>北方网的编辑，差点笑喷</title>
		<link>http://www.sunboyu.cn/2009/01/16/%e5%8c%97%e6%96%b9%e7%bd%91%e7%9a%84%e7%bc%96%e8%be%91%ef%bc%8c%e5%b7%ae%e7%82%b9%e7%ac%91%e5%96%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/16/%e5%8c%97%e6%96%b9%e7%bd%91%e7%9a%84%e7%bc%96%e8%be%91%ef%bc%8c%e5%b7%ae%e7%82%b9%e7%ac%91%e5%96%b7.shtml#comments</comments>
		<pubDate>Fri, 16 Jan 2009 01:15:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=490</guid>
		<description><![CDATA[在本场比赛赛前，北方网体育频道在经过强烈的思想斗争和频道内部激烈的辩论后，决定为尚在关心国足的球迷文字直播本场比赛。但最终结果证明—— 我们的善意行为却成为了给广大中国球迷添堵的帮凶。鉴于此，北方网体育频道主页今日将不再对国足消息进行体现。如需要浏览相关消息，请在您的意志足够坚强的情况下，查看其他网站消息。]]></description>
			<content:encoded><![CDATA[<p>国足消息请浏览其他网站 网媒的忍耐也是有限的</p>
<p><img src="http://www.sunboyu.cn/upfiles/2009/01/e69caae591bde5908d-1-300x280.png" alt="e69caae591bde5908d-1" title="e69caae591bde5908d-1" width="300" height="280" class="aligncenter size-medium wp-image-491" /></p>
<p>北方网消息(记者刘颂)：1月15日消息，在北京时间昨天晚上进行的2011年亚洲杯预赛小组赛D组的一场比赛中，中国国家男子足球队2:3负于叙利亚队。</p>
<p>在本场比赛赛前，北方网体育频道在经过强烈的思想斗争和频道内部激烈的辩论后，决定为尚在关心国足的球迷文字直播本场比赛。但最终结果证明—— 我们的善意行为却成为了给广大中国球迷添堵的帮凶。鉴于此，北方网体育频道主页今日将不再对国足消息进行体现。如需要浏览相关消息，请在您的意志足够坚强的情况下，查看其他网站消息。</p>
<p>在此，特向昨晚通过北方网体育频道文字直播查看国足消息的网友表示歉意，并对本频道进行文字直播国足消息的记者表示同情。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/16/%e5%8c%97%e6%96%b9%e7%bd%91%e7%9a%84%e7%bc%96%e8%be%91%ef%bc%8c%e5%b7%ae%e7%82%b9%e7%ac%91%e5%96%b7.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>服务器性能负载记录工具</title>
		<link>http://www.sunboyu.cn/2009/01/14/%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%80%a7%e8%83%bd%e8%b4%9f%e8%bd%bd%e8%ae%b0%e5%bd%95%e5%b7%a5%e5%85%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/14/%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%80%a7%e8%83%bd%e8%b4%9f%e8%bd%bd%e8%ae%b0%e5%bd%95%e5%b7%a5%e5%85%b7.shtml#comments</comments>
		<pubDate>Wed, 14 Jan 2009 09:15:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[负载]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=486</guid>
		<description><![CDATA[服务器突然发生了崩溃，老板开始找我了。
找了半天居然没找到问题在哪里，一咬牙，写了个性能和负载的记录工具，再出事我可有记录了－,－&#124;&#124;
备注：只能在linux下用。
&#60; ?php
date_default_timezone_set('Asia/Shanghai');
define('SLEEPTIME',10);&#160; &#160; &#160; &#160;//10秒记录一次
$memfile&#160; = &#34;/proc/meminfo&#34;;
$loadfile = &#34;/proc/loadavg&#34;;
$logfile&#160; = sprintf(&#34;/var/www/html/log/%s.log&#34;,date('Y-m-d'));
while(1)
{
	$log = getload();
	$log .= getmem();
	$log .= mymem();
	$log .= &#34;\n\r&#34;.date(&#34;Y-m-d H:i:s&#34;);
	$log .= &#34;\n\r\n\r&#34;;
	$handle = fopen($logfile,'a');
	fwrite($handle,$log);
	fclose($handle);
	sleep(SLEEPTIME);
}
&#160;
function getload()&#160; &#160; &#160; //获得负载
{
	global $loadfile;
	return file_get_contents($loadfile);
}
function getmem()&#160; &#160; &#160; //获得内存占用
{
	global $memfile;
	$mem = file($memfile);
	return $mem[0];
}
function mymem()&#160; &#160; &#160; &#160;//程序本身内存占用
{
	$pid = getmypid();
	exec(&#34;ps -eo%mem,rss,pid &#124; grep $pid&#34;, $output);
&#160;&#160; &#160; &#160; &#160;$output = explode(&#34; &#34;, [...]]]></description>
			<content:encoded><![CDATA[<p>服务器突然发生了崩溃，老板开始找我了。</p>
<p>找了半天居然没找到问题在哪里，一咬牙，写了个性能和负载的记录工具，再出事我可有记录了－,－||</p>
<p>备注：只能在linux下用。</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">&lt; ?php</li>
<li>date_default_timezone_set('Asia/Shanghai');</li>
<li>define('SLEEPTIME',10);&nbsp; &nbsp; &nbsp; &nbsp;//10秒记录一次</li>
<li>$memfile&nbsp; = &quot;/proc/meminfo&quot;;</li>
<li>$loadfile = &quot;/proc/loadavg&quot;;</li>
<li>$logfile&nbsp; = sprintf(&quot;/var/www/html/log/%s.log&quot;,date('Y-m-d'));</li>
<li>while(1)</li>
<li>{</li>
<li>	$log = getload();</li>
<li>	$log .= getmem();</li>
<li>	$log .= mymem();</li>
<li>	$log .= &quot;\n\r&quot;.date(&quot;Y-m-d H:i:s&quot;);</li>
<li>	$log .= &quot;\n\r\n\r&quot;;</li>
<li>	$handle = fopen($logfile,'a');</li>
<li>	fwrite($handle,$log);</li>
<li>	fclose($handle);</li>
<li>	sleep(SLEEPTIME);</li>
<li>}</li>
<li>&nbsp;</li>
<li>function getload()&nbsp; &nbsp; &nbsp; //获得负载</li>
<li>{</li>
<li>	global $loadfile;</li>
<li>	return file_get_contents($loadfile);</li>
<li>}</li>
<li>function getmem()&nbsp; &nbsp; &nbsp; //获得内存占用</li>
<li>{</li>
<li>	global $memfile;</li>
<li>	$mem = file($memfile);</li>
<li>	return $mem[0];</li>
<li>}</li>
<li>function mymem()&nbsp; &nbsp; &nbsp; &nbsp;//程序本身内存占用</li>
<li>{</li>
<li>	$pid = getmypid();</li>
<li>	exec(&quot;ps -eo%mem,rss,pid | grep $pid&quot;, $output);</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$output = explode(&quot; &quot;, $output[0]);</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return $output[1] * 1024;</li>
<li>}</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/14/%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%80%a7%e8%83%bd%e8%b4%9f%e8%bd%bd%e8%ae%b0%e5%bd%95%e5%b7%a5%e5%85%b7.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《狼牙》中的《神秘园》</title>
		<link>http://www.sunboyu.cn/2009/01/13/%e3%80%8a%e7%8b%bc%e7%89%99%e3%80%8b%e4%b8%ad%e7%9a%84%e3%80%8a%e7%a5%9e%e7%a7%98%e5%9b%ad%e3%80%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/13/%e3%80%8a%e7%8b%bc%e7%89%99%e3%80%8b%e4%b8%ad%e7%9a%84%e3%80%8a%e7%a5%9e%e7%a7%98%e5%9b%ad%e3%80%8b.shtml#comments</comments>
		<pubDate>Tue, 13 Jan 2009 15:48:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[狼牙]]></category>
		<category><![CDATA[神秘园]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=477</guid>
		<description><![CDATA[看了狼牙，钟情于吴京儿女情长，不过在后边雨中打斗的场面后，来了一场一场诡异的音乐：京胡版爱尔兰风情音乐《神秘园》。
听得我是浑身鸡皮疙瘩，那么惨烈感人的场面无论如何也不能跟闲情雅致的神秘园系列联系在一起。
估计导演以前常排浪漫肥皂剧……
查看全文收听


]]></description>
			<content:encoded><![CDATA[<p>看了狼牙，钟情于吴京儿女情长，不过在后边雨中打斗的场面后，来了一场一场诡异的音乐：京胡版爱尔兰风情音乐《神秘园》。</p>
<p>听得我是浑身鸡皮疙瘩，那么惨烈感人的场面无论如何也不能跟闲情雅致的神秘园系列联系在一起。</p>
<p>估计导演以前常排浪漫肥皂剧……</p>
<p>查看全文收听<br />
<span id="more-477"></span></p>
<p><object classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" width="500" height="50" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"><param name="enabled" value="true" /><param name="url" value="http://www.shooter.net.cn/mp3/Nocturne.mp3" /><param name="url" value="http://www.shooter.net.cn/mp3/Nocturne.mp3" /><embed type="application/x-mplayer2" width="500" height="50" src="http://www.shooter.net.cn/mp3/Nocturne.mp3" url="http://www.shooter.net.cn/mp3/Nocturne.mp3" enabled="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/13/%e3%80%8a%e7%8b%bc%e7%89%99%e3%80%8b%e4%b8%ad%e7%9a%84%e3%80%8a%e7%a5%9e%e7%a7%98%e5%9b%ad%e3%80%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>程序猿的洁癖和强迫症</title>
		<link>http://www.sunboyu.cn/2009/01/12/%e7%a8%8b%e5%ba%8f%e7%8c%bf%e7%9a%84%e6%b4%81%e7%99%96%e5%92%8c%e5%bc%ba%e8%bf%ab%e7%97%87.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/12/%e7%a8%8b%e5%ba%8f%e7%8c%bf%e7%9a%84%e6%b4%81%e7%99%96%e5%92%8c%e5%bc%ba%e8%bf%ab%e7%97%87.shtml#comments</comments>
		<pubDate>Mon, 12 Jan 2009 13:18:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[强迫症]]></category>
		<category><![CDATA[洁癖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=475</guid>
		<description><![CDATA[突然发现自己有严重的洁癖和强迫症：
系统开机必须清理垃圾，有一个临时的文件，我就感觉机器很慢，赶紧清理，不愿意让别人看见这个文件，否则会怀疑我机器的性能和人品。
绝对不多安装一个软件和插件，必须的软件装完，如果长时间不用，还会卸载，并且用多款系统清理工具进行清理。
XP一律用最简单的风格，背景都不能用太大的文件。
每个月要重装一次，而且要破解，升级，优化，打补丁，并且清理一切冗余的文件。
磁盘整理是必须的，杀毒是必须的，我的机器没有装一个插件，软件大都弄成绿色版。
写代码必须用svn，防治出错。
代码单词严格遵守大小写规则和英文词语习惯。
能优化必须优化，否则熬夜修改。
Linux一律用最小安装，用什么装什么，不留冗余文件，所有安装的软件有统一的格式和管理，并保留shell和文档笔记。
妄想制作一个Linux发行版。
笔记本经常清理，带出去见客户要一尘不染，临走前调试系统，使其飞快。
想打死那些昧良心写代码的人。
服务器负载降到最低，不断给别人卸载软件，减少进程。
总结：职业病，严重心理障碍
目标：大局为重
]]></description>
			<content:encoded><![CDATA[<p>突然发现自己有严重的洁癖和强迫症：</p>
<p>系统开机必须清理垃圾，有一个临时的文件，我就感觉机器很慢，赶紧清理，不愿意让别人看见这个文件，否则会怀疑我机器的性能和人品。</p>
<p>绝对不多安装一个软件和插件，必须的软件装完，如果长时间不用，还会卸载，并且用多款系统清理工具进行清理。</p>
<p>XP一律用最简单的风格，背景都不能用太大的文件。</p>
<p>每个月要重装一次，而且要破解，升级，优化，打补丁，并且清理一切冗余的文件。</p>
<p>磁盘整理是必须的，杀毒是必须的，我的机器没有装一个插件，软件大都弄成绿色版。</p>
<p>写代码必须用svn，防治出错。</p>
<p>代码单词严格遵守大小写规则和英文词语习惯。</p>
<p>能优化必须优化，否则熬夜修改。</p>
<p>Linux一律用最小安装，用什么装什么，不留冗余文件，所有安装的软件有统一的格式和管理，并保留shell和文档笔记。</p>
<p>妄想制作一个Linux发行版。</p>
<p>笔记本经常清理，带出去见客户要一尘不染，临走前调试系统，使其飞快。</p>
<p>想打死那些昧良心写代码的人。</p>
<p>服务器负载降到最低，不断给别人卸载软件，减少进程。</p>
<p>总结：职业病，严重心理障碍<br />
目标：大局为重</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/12/%e7%a8%8b%e5%ba%8f%e7%8c%bf%e7%9a%84%e6%b4%81%e7%99%96%e5%92%8c%e5%bc%ba%e8%bf%ab%e7%97%87.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP开发中，框架(frame)、脚手架(scaffolding)、应用资源包(application package)详解</title>
		<link>http://www.sunboyu.cn/2009/01/11/php%e5%bc%80%e5%8f%91%e4%b8%ad%ef%bc%8c%e6%a1%86%e6%9e%b6frame%e3%80%81%e8%84%9a%e6%89%8b%e6%9e%b6scaffolding%e3%80%81%e5%ba%94%e7%94%a8%e8%b5%84%e6%ba%90%e5%8c%85application-package%e8%af%a6.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/11/php%e5%bc%80%e5%8f%91%e4%b8%ad%ef%bc%8c%e6%a1%86%e6%9e%b6frame%e3%80%81%e8%84%9a%e6%89%8b%e6%9e%b6scaffolding%e3%80%81%e5%ba%94%e7%94%a8%e8%b5%84%e6%ba%90%e5%8c%85application-package%e8%af%a6.shtml#comments</comments>
		<pubDate>Sun, 11 Jan 2009 10:34:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[应用资源包]]></category>
		<category><![CDATA[框架]]></category>
		<category><![CDATA[脚手架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=473</guid>
		<description><![CDATA[什么是框架：字典中框架指架构，骨架结构，框子，底座等，从字面意思，不难理解，框架指一个基础，而在程序开发中，框架指基于底层语言而逐步向上层应用进行的一些功能实现。其并没有实现具体的功能，而是简化了开发过程，任何模块中常用的功能都被框架进行封装或者扩充，给开发人员以最简的操作实现。
常用的PHP框架：Cakephp Flexphp Thinkphp
什么是脚手架：脚手架通常使用在框架的数据抽象层，数据脚手架可以很直观得给开发者或者使用者数据结构的表现。脚手架同样可以表现在一些具体应用上。但脚手架的功能只是把数据或者应用的最终结果能用简单的方式表现，但并没有达到最终的应用效果，常用在建模或结构设计的初期。脚手架的优势就是给最终用户一个直观的产品但中间并没有经过大量的开发，以减少需求变更所带来的反复开发。
常用脚手架：CI框架中数据脚手架
什么是应用资源包：应用资源包就是具体的应用了，比如bbs，blog，用户管理，资源管理等一些具体的应用。应用资源包侧重完成了一个完整的功能，而面向开发的应用资源包又提高了可迁移性，使一些项目的功能模块直接修改应用资源包的接口而达到快速开发。
常用案例：xoops中功能模块包。
]]></description>
			<content:encoded><![CDATA[<p>什么是框架：字典中框架指架构，骨架结构，框子，底座等，从字面意思，不难理解，框架指一个基础，而在程序开发中，框架指基于底层语言而逐步向上层应用进行的一些功能实现。其并没有实现具体的功能，而是简化了开发过程，任何模块中常用的功能都被框架进行封装或者扩充，给开发人员以最简的操作实现。</p>
<p>常用的PHP框架：Cakephp Flexphp Thinkphp</p>
<p>什么是脚手架：脚手架通常使用在框架的数据抽象层，数据脚手架可以很直观得给开发者或者使用者数据结构的表现。脚手架同样可以表现在一些具体应用上。但脚手架的功能只是把数据或者应用的最终结果能用简单的方式表现，但并没有达到最终的应用效果，常用在建模或结构设计的初期。脚手架的优势就是给最终用户一个直观的产品但中间并没有经过大量的开发，以减少需求变更所带来的反复开发。</p>
<p>常用脚手架：CI框架中数据脚手架</p>
<p>什么是应用资源包：应用资源包就是具体的应用了，比如bbs，blog，用户管理，资源管理等一些具体的应用。应用资源包侧重完成了一个完整的功能，而面向开发的应用资源包又提高了可迁移性，使一些项目的功能模块直接修改应用资源包的接口而达到快速开发。</p>
<p>常用案例：xoops中功能模块包。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/11/php%e5%bc%80%e5%8f%91%e4%b8%ad%ef%bc%8c%e6%a1%86%e6%9e%b6frame%e3%80%81%e8%84%9a%e6%89%8b%e6%9e%b6scaffolding%e3%80%81%e5%ba%94%e7%94%a8%e8%b5%84%e6%ba%90%e5%8c%85application-package%e8%af%a6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>吃了一次传说中的“卤煮火烧”</title>
		<link>http://www.sunboyu.cn/2009/01/10/%e5%90%83%e4%ba%86%e4%b8%80%e6%ac%a1%e4%bc%a0%e8%af%b4%e4%b8%ad%e7%9a%84%e2%80%9c%e5%8d%a4%e7%85%ae%e7%81%ab%e7%83%a7%e2%80%9d.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/10/%e5%90%83%e4%ba%86%e4%b8%80%e6%ac%a1%e4%bc%a0%e8%af%b4%e4%b8%ad%e7%9a%84%e2%80%9c%e5%8d%a4%e7%85%ae%e7%81%ab%e7%83%a7%e2%80%9d.shtml#comments</comments>
		<pubDate>Sat, 10 Jan 2009 15:24:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[卤煮火烧]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=468</guid>
		<description><![CDATA[感谢上帝赐给我的卤煮火烧~~~~~~~~~~~~~~~~~~~~~~~~~哪孙子给我端走了！
这也是郭德纲德一个一句经典语录了。
下午下班去审美理发，出来，到一个街边小店叫了一碗卤煮火烧，还是大碗。
之前听别人说老北京人吃炒肝，卤煮，豆汁，外乡人都吃不惯，待卤煮刚上来的时候，看了一下，应该是下水肉汤里炖的豆腐泡和死面火烧。
我没有感谢上帝，就直接开吃，刚吃几块烧饼和豆腐，还没什么感觉，等肥肠下肚，才感觉油腥劲上来，不过我还是很能吃肉。吃到一半，突然感觉半饱，看来这东西油大，顶饱。
最香是吃到最后，只剩下半碗汤的时候，尝试喝汤。待汤将尽的时候，才感觉肉汤的美味，直喝个底朝天。
感谢上帝赐给我的卤煮火烧~~~~~~~~~~~~~~~~~~~~~~~~~大爷我付钱走了！
]]></description>
			<content:encoded><![CDATA[<p>感谢上帝赐给我的卤煮火烧~~~~~~~~~~~~~~~~~~~~~~~~~哪孙子给我端走了！</p>
<p>这也是郭德纲德一个一句经典语录了。</p>
<p>下午下班去审美理发，出来，到一个街边小店叫了一碗卤煮火烧，还是大碗。</p>
<p>之前听别人说老北京人吃炒肝，卤煮，豆汁，外乡人都吃不惯，待卤煮刚上来的时候，看了一下，应该是下水肉汤里炖的豆腐泡和死面火烧。</p>
<p>我没有感谢上帝，就直接开吃，刚吃几块烧饼和豆腐，还没什么感觉，等肥肠下肚，才感觉油腥劲上来，不过我还是很能吃肉。吃到一半，突然感觉半饱，看来这东西油大，顶饱。</p>
<p>最香是吃到最后，只剩下半碗汤的时候，尝试喝汤。待汤将尽的时候，才感觉肉汤的美味，直喝个底朝天。</p>
<p>感谢上帝赐给我的卤煮火烧~~~~~~~~~~~~~~~~~~~~~~~~~大爷我付钱走了！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/10/%e5%90%83%e4%ba%86%e4%b8%80%e6%ac%a1%e4%bc%a0%e8%af%b4%e4%b8%ad%e7%9a%84%e2%80%9c%e5%8d%a4%e7%85%ae%e7%81%ab%e7%83%a7%e2%80%9d.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centos4初始化的一些脚本</title>
		<link>http://www.sunboyu.cn/2009/01/07/centos4%e5%88%9d%e5%a7%8b%e5%8c%96%e7%9a%84%e4%b8%80%e4%ba%9b%e8%84%9a%e6%9c%ac.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/07/centos4%e5%88%9d%e5%a7%8b%e5%8c%96%e7%9a%84%e4%b8%80%e4%ba%9b%e8%84%9a%e6%9c%ac.shtml#comments</comments>
		<pubDate>Wed, 07 Jan 2009 01:27:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[centos4]]></category>
		<category><![CDATA[yum]]></category>
		<category><![CDATA[源]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=465</guid>
		<description><![CDATA[#!/bin/sh
cd /etc/yum.repos.d
mv CentOS-Base.repo&#160; CentOS-Base.repo.save
wget http://centos.ustc.edu.cn/CentOS-Base.repo
yum install gcc4-c++
中国科技大学的源挺快的，因为是高校，所以比较稳定，一些其他服务器的过一段时间也许就消失了，所以不建议
]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">#!/bin/sh</li>
<li>cd /etc/yum.repos.d</li>
<li>mv CentOS-Base.repo&nbsp; CentOS-Base.repo.save</li>
<li>wget http://centos.ustc.edu.cn/CentOS-Base.repo</li>
<li>yum install gcc4-c++</li></ol></div>
<p>中国科技大学的源挺快的，因为是高校，所以比较稳定，一些其他服务器的过一段时间也许就消失了，所以不建议</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/07/centos4%e5%88%9d%e5%a7%8b%e5%8c%96%e7%9a%84%e4%b8%80%e4%ba%9b%e8%84%9a%e6%9c%ac.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>揭发一个写程序以来自己常犯的错误</title>
		<link>http://www.sunboyu.cn/2009/01/06/%e6%8f%ad%e5%8f%91%e4%b8%80%e4%b8%aa%e5%86%99%e7%a8%8b%e5%ba%8f%e4%bb%a5%e6%9d%a5%e8%87%aa%e5%b7%b1%e5%b8%b8%e7%8a%af%e7%9a%84%e9%94%99%e8%af%af.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/06/%e6%8f%ad%e5%8f%91%e4%b8%80%e4%b8%aa%e5%86%99%e7%a8%8b%e5%ba%8f%e4%bb%a5%e6%9d%a5%e8%87%aa%e5%b7%b1%e5%b8%b8%e7%8a%af%e7%9a%84%e9%94%99%e8%af%af.shtml#comments</comments>
		<pubDate>Tue, 06 Jan 2009 15:05:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[时间戳]]></category>
		<category><![CDATA[时间段]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=460</guid>
		<description><![CDATA[从来没发现这个错误，今天突然想到。
数据库中时间，我习惯使用时间戳来保存，取某天或者某小时的数据时，采用 sql 的 between and 方法。
&#60; ?php
#某天的数据
$time[0] = strtotime(date('Y-m-d'));
$time[1] = $time[0]+86400;
$sql = &#34;SELECT * FROM TABLE WHERE TIME BETWEEN $time[0] AND $time[1]&#34;&#160; //伪代码
?&#62;
乍看这样是没有什么问题的，取某天的时间段。实践证明，在数据时间的分布比较疏松的时候，的确没什么问题，但如果数据分布十分密集，每秒都有若干数据的时候，问题就出来了。根据between的规则，实际的时间就是 $time[1]-$time[0]+1 = 86401
每条语句多算了一秒……汗
解决方案，时间段的计算一律 $time[0] + 60*60*24*x -1
]]></description>
			<content:encoded><![CDATA[<p>从来没发现这个错误，今天突然想到。</p>
<p>数据库中时间，我习惯使用时间戳来保存，取某天或者某小时的数据时，采用 sql 的 between and 方法。</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">&lt; ?php</li>
<li>#某天的数据</li>
<li>$time[0] = strtotime(date('Y-m-d'));</li>
<li>$time[1] = $time[0]+86400;</li>
<li>$sql = &quot;SELECT * FROM TABLE WHERE TIME BETWEEN $time[0] AND $time[1]&quot;&nbsp; //伪代码</li>
<li>?&gt;</li></ol></div>
<p>乍看这样是没有什么问题的，取某天的时间段。实践证明，在数据时间的分布比较疏松的时候，的确没什么问题，但如果数据分布十分密集，每秒都有若干数据的时候，问题就出来了。根据between的规则，实际的时间就是 $time[1]-$time[0]+1 = 86401</p>
<p>每条语句多算了一秒……汗</p>
<p>解决方案，时间段的计算一律 $time[0] + 60*60*24*x -1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/06/%e6%8f%ad%e5%8f%91%e4%b8%80%e4%b8%aa%e5%86%99%e7%a8%8b%e5%ba%8f%e4%bb%a5%e6%9d%a5%e8%87%aa%e5%b7%b1%e5%b8%b8%e7%8a%af%e7%9a%84%e9%94%99%e8%af%af.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>年前了，懒得动了</title>
		<link>http://www.sunboyu.cn/2009/01/06/%e5%b9%b4%e5%89%8d%e4%ba%86%ef%bc%8c%e6%87%92%e5%be%97%e5%8a%a8%e4%ba%86.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/06/%e5%b9%b4%e5%89%8d%e4%ba%86%ef%bc%8c%e6%87%92%e5%be%97%e5%8a%a8%e4%ba%86.shtml#comments</comments>
		<pubDate>Tue, 06 Jan 2009 01:08:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[累]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=458</guid>
		<description><![CDATA[每天异常疲惫，写点代码就累，累，还是累～～～～～～～～～～～～～～～～～～
]]></description>
			<content:encoded><![CDATA[<p>每天异常疲惫，写点代码就累，累，还是累～～～～～～～～～～～～～～～～～～</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/06/%e5%b9%b4%e5%89%8d%e4%ba%86%ef%bc%8c%e6%87%92%e5%be%97%e5%8a%a8%e4%ba%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress评论验证码插件安装成功</title>
		<link>http://www.sunboyu.cn/2009/01/02/wordpress%e8%af%84%e8%ae%ba%e9%aa%8c%e8%af%81%e7%a0%81%e6%8f%92%e4%bb%b6%e5%ae%89%e8%a3%85%e6%88%90%e5%8a%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/02/wordpress%e8%af%84%e8%ae%ba%e9%aa%8c%e8%af%81%e7%a0%81%e6%8f%92%e4%bb%b6%e5%ae%89%e8%a3%85%e6%88%90%e5%8a%9f.shtml#comments</comments>
		<pubDate>Fri, 02 Jan 2009 03:51:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[wordpress插件]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/2009/01/02/wordpress%e8%af%84%e8%ae%ba%e9%aa%8c%e8%af%81%e7%a0%81%e6%8f%92%e4%bb%b6%e5%ae%89%e8%a3%85%e6%88%90%e5%8a%9f.shtml</guid>
		<description><![CDATA[wp-imgcode
在适当的地方增加这句话就可以了
< ?php do_action(’comment_form’, $post->ID); ?>
]]></description>
			<content:encoded><![CDATA[<p>wp-imgcode<br />
在适当的地方增加这句话就可以了<br />
< ?php do_action(’comment_form’, $post->ID); ?></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/02/wordpress%e8%af%84%e8%ae%ba%e9%aa%8c%e8%af%81%e7%a0%81%e6%8f%92%e4%bb%b6%e5%ae%89%e8%a3%85%e6%88%90%e5%8a%9f.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>博客升级V2.7成功</title>
		<link>http://www.sunboyu.cn/2009/01/02/%e5%8d%9a%e5%ae%a2%e5%8d%87%e7%ba%a7v27%e6%88%90%e5%8a%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/02/%e5%8d%9a%e5%ae%a2%e5%8d%87%e7%ba%a7v27%e6%88%90%e5%8a%9f.shtml#comments</comments>
		<pubDate>Thu, 01 Jan 2009 18:44:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[升级]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=441</guid>
		<description><![CDATA[顺便帮助强哥测试新的博客版本，我这里先做个肉鸡，2.7向下兼容很好，无缝切换过来。
新的后台比较强，但也有点花哨。
体验一下再说
后台支持版本，不错
图片上传测试：

flash上传测试:

]]></description>
			<content:encoded><![CDATA[<p>顺便帮助强哥测试新的博客版本，我这里先做个肉鸡，2.7向下兼容很好，无缝切换过来。</p>
<p>新的后台比较强，但也有点花哨。</p>
<p>体验一下再说</p>
<p>后台支持版本，不错</p>
<p>图片上传测试：</p>
<p><img class="alignnone size-medium wp-image-444" title="156236" src="http://www.sunboyu.cn/upfiles/2009/01/156236-202x300.jpg" alt="156236" width="202" height="300" /></p>
<p>flash上传测试:</p>
<p><img class="aligncenter size-full wp-image-447" title="20071223105227536" src="http://www.sunboyu.cn/upfiles/2009/01/20071223105227536.jpg" alt="20071223105227536" width="300" height="450" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/02/%e5%8d%9a%e5%ae%a2%e5%8d%87%e7%ba%a7v27%e6%88%90%e5%8a%9f.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>新年第一帖</title>
		<link>http://www.sunboyu.cn/2009/01/01/%e6%96%b0%e5%b9%b4%e7%ac%ac%e4%b8%80%e5%b8%96.shtml</link>
		<comments>http://www.sunboyu.cn/2009/01/01/%e6%96%b0%e5%b9%b4%e7%ac%ac%e4%b8%80%e5%b8%96.shtml#comments</comments>
		<pubDate>Wed, 31 Dec 2008 16:31:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[新年]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=440</guid>
		<description><![CDATA[其实，这个时候我在想一个问题，我的技术应该超哪个方向发展。
这是个干炸带鱼和烧熊掌之间的选择，不过我还是比较贪心，选择了“熊掌罩烧带鱼段”。
其实为了做这道菜，我寻找了大半年，对于一个厨子，没有什么不可能。
这道菜也许我做上半年，也许一年，最终会端到你的餐桌上。
请等待……开源会打击敌人，免费会拖垮敌人，超强的开发进度会让敌人措手不及！
]]></description>
			<content:encoded><![CDATA[<p>其实，这个时候我在想一个问题，我的技术应该超哪个方向发展。<br />
这是个干炸带鱼和烧熊掌之间的选择，不过我还是比较贪心，选择了“熊掌罩烧带鱼段”。<br />
其实为了做这道菜，我寻找了大半年，对于一个厨子，没有什么不可能。<br />
这道菜也许我做上半年，也许一年，最终会端到你的餐桌上。<br />
请等待……开源会打击敌人，免费会拖垮敌人，超强的开发进度会让敌人措手不及！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/01/01/%e6%96%b0%e5%b9%b4%e7%ac%ac%e4%b8%80%e5%b8%96.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008的最后一天</title>
		<link>http://www.sunboyu.cn/2008/12/31/2008%e7%9a%84%e6%9c%80%e5%90%8e%e4%b8%80%e5%a4%a9.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/31/2008%e7%9a%84%e6%9c%80%e5%90%8e%e4%b8%80%e5%a4%a9.shtml#comments</comments>
		<pubDate>Wed, 31 Dec 2008 14:35:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[年终总结]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=439</guid>
		<description><![CDATA[下午腐败了一场，幸好没喝多少，躲过一劫。
总结今年，收获不少，尤其加入朗玛，更是在项目经验上积累不少心得。
技术方面，自5月份加入朗玛，有了突飞猛进的发展，不仅在代码方面，linux系统长进不少，在程序架构和代码风格上也有了很大的提高。
细节：mysql优化，索引，搜索引擎基础，lucene，linux系统管理，apache优化设置，PHP优化，系统安全，权限，都有了一个不小的进步。前端方面，http优化，js编程，也有一定的提高。
其实学的挺杂，但心中终于有了一个目标，并且为了这个目标努力了，前进了，而且落实到代码字符上了。
2008是个不错的年景，有了很大的收获，2009要再接再厉。
]]></description>
			<content:encoded><![CDATA[<p>下午腐败了一场，幸好没喝多少，躲过一劫。<br />
总结今年，收获不少，尤其加入朗玛，更是在项目经验上积累不少心得。<br />
技术方面，自5月份加入朗玛，有了突飞猛进的发展，不仅在代码方面，linux系统长进不少，在程序架构和代码风格上也有了很大的提高。<br />
细节：mysql优化，索引，搜索引擎基础，lucene，linux系统管理，apache优化设置，PHP优化，系统安全，权限，都有了一个不小的进步。前端方面，http优化，js编程，也有一定的提高。<br />
其实学的挺杂，但心中终于有了一个目标，并且为了这个目标努力了，前进了，而且落实到代码字符上了。<br />
2008是个不错的年景，有了很大的收获，2009要再接再厉。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/31/2008%e7%9a%84%e6%9c%80%e5%90%8e%e4%b8%80%e5%a4%a9.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>传说中的千万数据量优化</title>
		<link>http://www.sunboyu.cn/2008/12/30/%e4%bc%a0%e8%af%b4%e4%b8%ad%e7%9a%84%e5%8d%83%e4%b8%87%e6%95%b0%e6%8d%ae%e9%87%8f%e4%bc%98%e5%8c%96.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/30/%e4%bc%a0%e8%af%b4%e4%b8%ad%e7%9a%84%e5%8d%83%e4%b8%87%e6%95%b0%e6%8d%ae%e9%87%8f%e4%bc%98%e5%8c%96.shtml#comments</comments>
		<pubDate>Tue, 30 Dec 2008 14:10:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=438</guid>
		<description><![CDATA[平时看别人招聘，动不动来个“有千万数据量优化经验”。我还的确没有这个经验，中小网站来个几万几十万的数据就了不得，一些涉及数据多的顶多也来个百万，因为超百万我就分表了，而且设计的时候尽量使用主键索引，避免使用模糊搜索和一些复杂的搜索。
基本百万数量级以下的简单应用，一般的服务器没什么问题，只要程序够不垃圾就行。
今天突然奇想，尝试下千万数据什么样子，花半个小时生成了一堆随机的数字，一千万整，当然还有其他的一些数据，主要测试从千万级的数据中捞少量数据是什么样子。
我用的MSSQL2005，使用存储过程生成数据，半个小时，Mysql没实验过。结果，从千万数据用where捞几万条数据，用单一的where条件，果然很慢，能达到20几秒。后仔细查看索引和语句，发现没有很好的索引供sql语句使用，根据where语句建立索引，速度提升到10秒左右。因为只是取出几个字段，后又想使用覆盖索引，加上那几个字段，速度大为提高。
经过跟踪测试，在覆盖索引的使用后，取数据已经达到了相当迅速，但大量的时间消耗在了数据库连接和数据的传输上。因为本系统必须操作大量数据，而拆分数据后又增加了创建数据库连接的成本，速度反而变慢。其实，只要php不超时，已经达到了可用的程度。
总结：索引这玩意真的不错，但设计数据表要尽量简单，简单不是指字段简单，而是使sql语句取数据简单，必要时中间要增加矢量的冗余数据，用空间换取时间。
]]></description>
			<content:encoded><![CDATA[<p>平时看别人招聘，动不动来个“有千万数据量优化经验”。我还的确没有这个经验，中小网站来个几万几十万的数据就了不得，一些涉及数据多的顶多也来个百万，因为超百万我就分表了，而且设计的时候尽量使用主键索引，避免使用模糊搜索和一些复杂的搜索。<br />
基本百万数量级以下的简单应用，一般的服务器没什么问题，只要程序够不垃圾就行。<br />
今天突然奇想，尝试下千万数据什么样子，花半个小时生成了一堆随机的数字，一千万整，当然还有其他的一些数据，主要测试从千万级的数据中捞少量数据是什么样子。<br />
我用的MSSQL2005，使用存储过程生成数据，半个小时，Mysql没实验过。结果，从千万数据用where捞几万条数据，用单一的where条件，果然很慢，能达到20几秒。后仔细查看索引和语句，发现没有很好的索引供sql语句使用，根据where语句建立索引，速度提升到10秒左右。因为只是取出几个字段，后又想使用覆盖索引，加上那几个字段，速度大为提高。<br />
经过跟踪测试，在覆盖索引的使用后，取数据已经达到了相当迅速，但大量的时间消耗在了数据库连接和数据的传输上。因为本系统必须操作大量数据，而拆分数据后又增加了创建数据库连接的成本，速度反而变慢。其实，只要php不超时，已经达到了可用的程度。<br />
总结：索引这玩意真的不错，但设计数据表要尽量简单，简单不是指字段简单，而是使sql语句取数据简单，必要时中间要增加矢量的冗余数据，用空间换取时间。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/30/%e4%bc%a0%e8%af%b4%e4%b8%ad%e7%9a%84%e5%8d%83%e4%b8%87%e6%95%b0%e6%8d%ae%e9%87%8f%e4%bc%98%e5%8c%96.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用linux进程来分布PHP的压力，构造高负载多并发的系统</title>
		<link>http://www.sunboyu.cn/2008/12/25/%e4%bd%bf%e7%94%a8linux%e8%bf%9b%e7%a8%8b%e6%9d%a5%e5%88%86%e5%b8%83php%e7%9a%84%e5%8e%8b%e5%8a%9b%ef%bc%8c%e6%9e%84%e9%80%a0%e9%ab%98%e8%b4%9f%e8%bd%bd%e5%a4%9a%e5%b9%b6%e5%8f%91%e7%9a%84%e7%b3%bb.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/25/%e4%bd%bf%e7%94%a8linux%e8%bf%9b%e7%a8%8b%e6%9d%a5%e5%88%86%e5%b8%83php%e7%9a%84%e5%8e%8b%e5%8a%9b%ef%bc%8c%e6%9e%84%e9%80%a0%e9%ab%98%e8%b4%9f%e8%bd%bd%e5%a4%9a%e5%b9%b6%e5%8f%91%e7%9a%84%e7%b3%bb.shtml#comments</comments>
		<pubDate>Thu, 25 Dec 2008 07:42:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[压力，进程]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=437</guid>
		<description><![CDATA[最近又跟P友讨论PHP的多进程问题，解决的方案，一般都是建立新的系统进程去处理，而linux的nohup命令可以创建新的进程，如果主程序需要处理很多数据，比如一个队列，把这些记录分布开，可以提高主程序的响应，能更快的使主程序结束。
这个方案最早出现在这哥们的博客里，大家可以参考 http://blog.s135.com/read.php/311.htm
而我处理，基本基于PHP的cli模式，使用$argv传递参数而非url，在一些涉及轮询的程序中，可以尽快得把负载分散，使单一的轮询程序来处理下一次的轮询。
]]></description>
			<content:encoded><![CDATA[<p>最近又跟P友讨论PHP的多进程问题，解决的方案，一般都是建立新的系统进程去处理，而linux的nohup命令可以创建新的进程，如果主程序需要处理很多数据，比如一个队列，把这些记录分布开，可以提高主程序的响应，能更快的使主程序结束。</p>
<p>这个方案最早出现在这哥们的博客里，大家可以参考 http://blog.s135.com/read.php/311.htm</p>
<p>而我处理，基本基于PHP的cli模式，使用$argv传递参数而非url，在一些涉及轮询的程序中，可以尽快得把负载分散，使单一的轮询程序来处理下一次的轮询。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/25/%e4%bd%bf%e7%94%a8linux%e8%bf%9b%e7%a8%8b%e6%9d%a5%e5%88%86%e5%b8%83php%e7%9a%84%e5%8e%8b%e5%8a%9b%ef%bc%8c%e6%9e%84%e9%80%a0%e9%ab%98%e8%b4%9f%e8%bd%bd%e5%a4%9a%e5%b9%b6%e5%8f%91%e7%9a%84%e7%b3%bb.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>修改Linux用户登录的默认语言设置</title>
		<link>http://www.sunboyu.cn/2008/12/20/%e4%bf%ae%e6%94%b9linux%e7%94%a8%e6%88%b7%e7%99%bb%e5%bd%95%e7%9a%84%e9%bb%98%e8%ae%a4%e8%af%ad%e8%a8%80%e8%ae%be%e7%bd%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/20/%e4%bf%ae%e6%94%b9linux%e7%94%a8%e6%88%b7%e7%99%bb%e5%bd%95%e7%9a%84%e9%bb%98%e8%ae%a4%e8%af%ad%e8%a8%80%e8%ae%be%e7%bd%ae.shtml#comments</comments>
		<pubDate>Sat, 20 Dec 2008 08:47:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[终端编码]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=436</guid>
		<description><![CDATA[进入linux中断，查看自己的设置，可以看下 env命令的回显
默认都是us_EN.UTF-8
有一些字符出来全是乱码，尝试修改一下
修改用户主目录下 .bash_profile 文件，增加一行 export LANG=zh_CN.gbk
然后logout，再重新登录，部分字符显示正常。
]]></description>
			<content:encoded><![CDATA[<p>进入linux中断，查看自己的设置，可以看下 env命令的回显</p>
<p>默认都是us_EN.UTF-8</p>
<p>有一些字符出来全是乱码，尝试修改一下</p>
<p>修改用户主目录下 .bash_profile 文件，增加一行 export LANG=zh_CN.gbk</p>
<p>然后logout，再重新登录，部分字符显示正常。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/20/%e4%bf%ae%e6%94%b9linux%e7%94%a8%e6%88%b7%e7%99%bb%e5%bd%95%e7%9a%84%e9%bb%98%e8%ae%a4%e8%af%ad%e8%a8%80%e8%ae%be%e7%bd%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sunboyu-amp-fastcgi-suexec-v22-alpha 发布</title>
		<link>http://www.sunboyu.cn/2008/12/20/sunboyu-amp-fastcgi-suexec-v22-alpha-%e5%8f%91%e5%b8%83.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/20/sunboyu-amp-fastcgi-suexec-v22-alpha-%e5%8f%91%e5%b8%83.shtml#comments</comments>
		<pubDate>Sat, 20 Dec 2008 07:06:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[amp]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=434</guid>
		<description><![CDATA[Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.2
1、增加了m4-1.4.9
2、增加了autoconf-2.62
这两个包在安装eaccelerator-0.9.5.2的时候使用
3、增加了PHP &#8211;with-mcrypt 参数
4、增加了PHP &#8211;enable-sockets 参数
sunboyu-amp-fastcgi-suexec-v22-alpha
]]></description>
			<content:encoded><![CDATA[<p>Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.2</p>
<p>1、增加了m4-1.4.9</p>
<p>2、增加了autoconf-2.62</p>
<p>这两个包在安装eaccelerator-0.9.5.2的时候使用</p>
<p>3、增加了PHP &#8211;with-mcrypt 参数</p>
<p>4、增加了PHP &#8211;enable-sockets 参数</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/12/sunboyu-amp-fastcgi-suexec-v22-alpha.txt">sunboyu-amp-fastcgi-suexec-v22-alpha</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/20/sunboyu-amp-fastcgi-suexec-v22-alpha-%e5%8f%91%e5%b8%83.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>纯属扯淡</title>
		<link>http://www.sunboyu.cn/2008/12/19/%e7%ba%af%e5%b1%9e%e6%89%af%e6%b7%a1.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/19/%e7%ba%af%e5%b1%9e%e6%89%af%e6%b7%a1.shtml#comments</comments>
		<pubDate>Fri, 19 Dec 2008 03:09:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[备份]]></category>
		<category><![CDATA[扯淡]]></category>
		<category><![CDATA[集中存储]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=433</guid>
		<description><![CDATA[老久没写日志，手痒痒，扯一篇。
前两天公司服务器总出点不大不小的故障，让人头疼，虽然我不是网管，但积极想几个解决方案还是应该的。
我提出了集中的备份存储，这种分布式的实时云备份（概念词语，扯淡）应该是最为有效的，能保证高冗余高可靠高安全，但实际是不现实的，一直在跟群里的高人们扯这个事。做技术的一般都考虑如何做到更安全更可靠，可这种安全可靠的代价是高的，不管从老板还是从项目，在一个写web的小组里做这种事情纯属烧包，集中存储＋实时的工作备份，软件硬件成本远远高于找几个IT民工的价钱。钱摆在这里，兄弟们就别意淫了，老老实实手工备份是正道，谁丢数据了，自己加班补去吧，申请个加班工作餐也没几个钱。
最近把LAMP一套基础的东西都配置了一圈，基本能组成一个工作中高可用性高易用性的网络，不过这种配置离不了我这个网络高手，要想移植，得摸清所有的东西，其实更多的是我们这群民工的工作流程和工作习惯，有可移植性，也有不可移植性。代码易抄，精髓难学。
我在考虑是不是有必要把全套的东西详细整理一遍。
]]></description>
			<content:encoded><![CDATA[<p>老久没写日志，手痒痒，扯一篇。</p>
<p>前两天公司服务器总出点不大不小的故障，让人头疼，虽然我不是网管，但积极想几个解决方案还是应该的。</p>
<p>我提出了集中的备份存储，这种分布式的实时云备份（概念词语，扯淡）应该是最为有效的，能保证高冗余高可靠高安全，但实际是不现实的，一直在跟群里的高人们扯这个事。做技术的一般都考虑如何做到更安全更可靠，可这种安全可靠的代价是高的，不管从老板还是从项目，在一个写web的小组里做这种事情纯属烧包，集中存储＋实时的工作备份，软件硬件成本远远高于找几个IT民工的价钱。钱摆在这里，兄弟们就别意淫了，老老实实手工备份是正道，谁丢数据了，自己加班补去吧，申请个加班工作餐也没几个钱。</p>
<p>最近把LAMP一套基础的东西都配置了一圈，基本能组成一个工作中高可用性高易用性的网络，不过这种配置离不了我这个网络高手，要想移植，得摸清所有的东西，其实更多的是我们这群民工的工作流程和工作习惯，有可移植性，也有不可移植性。代码易抄，精髓难学。</p>
<p>我在考虑是不是有必要把全套的东西详细整理一遍。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/19/%e7%ba%af%e5%b1%9e%e6%89%af%e6%b7%a1.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pure-ftpd安装配置草稿－补充完全</title>
		<link>http://www.sunboyu.cn/2008/12/18/pure-ftpd%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae%e8%8d%89%e7%a8%bf%ef%bc%8d%e8%a1%a5%e5%85%85%e5%ae%8c%e5%85%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/18/pure-ftpd%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae%e8%8d%89%e7%a8%bf%ef%bc%8d%e8%a1%a5%e5%85%85%e5%ae%8c%e5%85%a8.shtml#comments</comments>
		<pubDate>Thu, 18 Dec 2008 01:47:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[pure-ftpd]]></category>
		<category><![CDATA[草稿]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=431</guid>
		<description><![CDATA[cp /opt/mysql-5.0.22/lib/mysql/* /usr/lib&#160; &#160; &#160; &#160; &#160; #解决编译依赖库问题
./configure --prefix=/opt/pure-ftpd \
--with-mysql=/opt/mysql-5.0.22 \
--with-rfc2640 \
--with-language=simplified-chinese \
--with-peruserlimits \
--with-diraliases \
--with-virtualchroot \
--with-virtualhosts \
--with-welcomemsg \
--with-ftpwho \
--with-quotas \
--with-throttling \
--with-cookie \
--with-extauth \
--with-puredb \
--with-altlog \
--with-sysquotas \
--with-paranoidmsg \
--with-ascii \
--with-inetd
&#160;
cp  $install_dir/pureftpd-mysql.conf /opt/pure-ftpd/
cp  $install_dir/configuration-file/pure-config.pl pure-ftpd.conf /opt/pure-ftpd/
启动服务  /opt/pure-ftpd/pure-config.pl pure-ftpd.conf
这里补充完整：
安装完后，很多配置文件还在原来的安装包里，并没有部署到prefix目标文件夹下，需要手工复制过去，就是上边那两个，一个启动脚本，pure-config.pl 还有性能监控工具，统计工具等。
另外一个经常出现的问题：(为了重现，还得修改成错误的)
 421 配置错误: 无效的SQL配置文件: /opt/pure-ftpd/etc/pureftpd-mysql.conf
这个问题网上很多问的，但解释不到位，这里详细解释一下：我们在编译的时候选择了好多参数，部分参数跟配置是对应的，只有编译相关模块，才能打开相关配置，否则是不行的，会报错，但这个软件报错不报错误行数，所以调试起来比较费劲，我是一个个配置行进行开关才发现这个问题的，比如，我开启了这行，MySQLGetRatioDL SELECT DLRatio FROM users WHERE User=&#8221;\L&#8221; 但我编译的时候未加 ratio这个参数，就报错了，所以在调试的时候一定要对照一下编译时候的参数。
mysql中，密码我用的encryt加密，调试记得打开防火墙，其他没什么需要注意的。
]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">cp /opt/mysql-5.0.22/lib/mysql/* /usr/lib&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #解决编译依赖库问题</li>
<li>./configure --prefix=/opt/pure-ftpd \</li>
<li>--with-mysql=/opt/mysql-5.0.22 \</li>
<li>--with-rfc2640 \</li>
<li>--with-language=simplified-chinese \</li>
<li>--with-peruserlimits \</li>
<li>--with-diraliases \</li>
<li>--with-virtualchroot \</li>
<li>--with-virtualhosts \</li>
<li>--with-welcomemsg \</li>
<li>--with-ftpwho \</li>
<li>--with-quotas \</li>
<li>--with-throttling \</li>
<li>--with-cookie \</li>
<li>--with-extauth \</li>
<li>--with-puredb \</li>
<li>--with-altlog \</li>
<li>--with-sysquotas \</li>
<li>--with-paranoidmsg \</li>
<li>--with-ascii \</li>
<li>--with-inetd</li>
<li>&nbsp;</li>
<li>cp  $install_dir/pureftpd-mysql.conf /opt/pure-ftpd/</li>
<li>cp  $install_dir/configuration-file/pure-config.pl pure-ftpd.conf /opt/pure-ftpd/</li></ol></div>
<p>启动服务  /opt/pure-ftpd/pure-config.pl pure-ftpd.conf</p>
<p>这里补充完整：<br />
安装完后，很多配置文件还在原来的安装包里，并没有部署到prefix目标文件夹下，需要手工复制过去，就是上边那两个，一个启动脚本，pure-config.pl 还有性能监控工具，统计工具等。<br />
另外一个经常出现的问题：(为了重现，还得修改成错误的)<br />
 421 配置错误: 无效的SQL配置文件: /opt/pure-ftpd/etc/pureftpd-mysql.conf<br />
这个问题网上很多问的，但解释不到位，这里详细解释一下：我们在编译的时候选择了好多参数，部分参数跟配置是对应的，只有编译相关模块，才能打开相关配置，否则是不行的，会报错，但这个软件报错不报错误行数，所以调试起来比较费劲，我是一个个配置行进行开关才发现这个问题的，比如，我开启了这行，MySQLGetRatioDL SELECT DLRatio FROM users WHERE User=&#8221;\L&#8221; 但我编译的时候未加 ratio这个参数，就报错了，所以在调试的时候一定要对照一下编译时候的参数。<br />
mysql中，密码我用的encryt加密，调试记得打开防火墙，其他没什么需要注意的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/18/pure-ftpd%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae%e8%8d%89%e7%a8%bf%ef%bc%8d%e8%a1%a5%e5%85%85%e5%ae%8c%e5%85%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sunboyu-amp-fastcgi-suexec-v21-alpha 发布</title>
		<link>http://www.sunboyu.cn/2008/12/15/sunboyu-amp-fastcgi-suexec-v21-alpha-%e5%8f%91%e5%b8%83.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/15/sunboyu-amp-fastcgi-suexec-v21-alpha-%e5%8f%91%e5%b8%83.shtml#comments</comments>
		<pubDate>Mon, 15 Dec 2008 13:58:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[suexec]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=428</guid>
		<description><![CDATA[Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.1
1、增加了PHP &#8211;enable-bcmath 参数，支持高精度函数库
2、增加了ncurses MYSQL的一个依赖库
3、增加了apache &#8211;enable-so 参数
sunboyu-amp-fastcgi-suexec-v21-alpha
此脚本在Centos4.7ServerCD 最小安装，root账户下执行完全正常。
]]></description>
			<content:encoded><![CDATA[<p>Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.1<br />
1、增加了PHP &#8211;enable-bcmath 参数，支持高精度函数库<br />
2、增加了ncurses MYSQL的一个依赖库<br />
3、增加了apache &#8211;enable-so 参数</p>
<p><a href='http://www.sunboyu.cn/upfiles/2008/12/sunboyu-amp-fastcgi-suexec-v21-alpha.txt'>sunboyu-amp-fastcgi-suexec-v21-alpha</a></p>
<p>此脚本在Centos4.7ServerCD 最小安装，root账户下执行完全正常。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/15/sunboyu-amp-fastcgi-suexec-v21-alpha-%e5%8f%91%e5%b8%83.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>全面切换到CentOS-4.7.ServerCD</title>
		<link>http://www.sunboyu.cn/2008/12/14/%e5%85%a8%e9%9d%a2%e5%88%87%e6%8d%a2%e5%88%b0centos-47servercd.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/14/%e5%85%a8%e9%9d%a2%e5%88%87%e6%8d%a2%e5%88%b0centos-47servercd.shtml#comments</comments>
		<pubDate>Sun, 14 Dec 2008 14:24:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[4.7]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[servercd]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=427</guid>
		<description><![CDATA[下载地址 http://centos.ustc.edu.cn/centos/4.7/isos/x86_64/CentOS-4.7.ServerCD-x86_64.iso
注：根据需要下载x86_64或者i386版本
一般x86_64跑服务器或者64位CPU上，家用台式一般用i386，不过现在比较好的家用cpu也64位，我的就比较落后了……
安装还是老一套，我用vmware模拟的scis硬盘安装，选择的定制安全，选择组件那步直接选择mini安装即可。
因为5一直没有servercd，而发行版又太大，3个多G，所以还是选择这个精简的服务器版本。
]]></description>
			<content:encoded><![CDATA[<p>下载地址 http://centos.ustc.edu.cn/centos/4.7/isos/x86_64/CentOS-4.7.ServerCD-x86_64.iso<br />
注：根据需要下载x86_64或者i386版本<br />
一般x86_64跑服务器或者64位CPU上，家用台式一般用i386，不过现在比较好的家用cpu也64位，我的就比较落后了……</p>
<p>安装还是老一套，我用vmware模拟的scis硬盘安装，选择的定制安全，选择组件那步直接选择mini安装即可。</p>
<p>因为5一直没有servercd，而发行版又太大，3个多G，所以还是选择这个精简的服务器版本。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/14/%e5%85%a8%e9%9d%a2%e5%88%87%e6%8d%a2%e5%88%b0centos-47servercd.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP引用机制和垃圾回收机制详解</title>
		<link>http://www.sunboyu.cn/2008/12/12/php%e5%bc%95%e7%94%a8%e6%9c%ba%e5%88%b6%e5%92%8c%e5%9e%83%e5%9c%be%e5%9b%9e%e6%94%b6%e6%9c%ba%e5%88%b6%e8%af%a6%e8%a7%a3.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/12/php%e5%bc%95%e7%94%a8%e6%9c%ba%e5%88%b6%e5%92%8c%e5%9e%83%e5%9c%be%e5%9b%9e%e6%94%b6%e6%9c%ba%e5%88%b6%e8%af%a6%e8%a7%a3.shtml#comments</comments>
		<pubDate>Fri, 12 Dec 2008 14:16:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[垃圾回收]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=426</guid>
		<description><![CDATA[PHP对变量的跟踪，其实是采用引用，比如 $a = &#8220;test&#8221; 那么就是在内存中开辟一个存储区，保存 test，$a 做为test的引用。
同时我们可以 $b = &#38;$a,$b作为 $a的引用，他们同时指向test存储空间。
在文章  http://www.sunboyu.cn/2008/11/19/php%E4%B8%AD%E5%8F%98%E9%87%8F%E5%BC%95%E7%94%A8%E8%AF%A6%E8%A7%A3.shtml    中，我们做了一个应用的测试，当删除一个引用后，变量并不消失，是因为PHP使用一个引用计数的东东。当$a=&#8221;test&#8221;建立后，test的引用计数就是1，建立 $b=&#38;$a后，test的引用计数就是2，删除任何一个引用后，引用计数为1.
只要是引用计数不为0的数据，则为当前有效的数据。然而，当数据的引用计数为0的时候，系统就会识别此数据为垃圾数据，需要回收，这也就形成了PHP的垃圾回收机制。
]]></description>
			<content:encoded><![CDATA[<p>PHP对变量的跟踪，其实是采用引用，比如 $a = &#8220;test&#8221; 那么就是在内存中开辟一个存储区，保存 test，$a 做为test的引用。</p>
<p>同时我们可以 $b = &amp;$a,$b作为 $a的引用，他们同时指向test存储空间。</p>
<p>在文章  http://www.sunboyu.cn/2008/11/19/php%E4%B8%AD%E5%8F%98%E9%87%8F%E5%BC%95%E7%94%A8%E8%AF%A6%E8%A7%A3.shtml    中，我们做了一个应用的测试，当删除一个引用后，变量并不消失，是因为PHP使用一个引用计数的东东。当$a=&#8221;test&#8221;建立后，test的引用计数就是1，建立 $b=&amp;$a后，test的引用计数就是2，删除任何一个引用后，引用计数为1.</p>
<p>只要是引用计数不为0的数据，则为当前有效的数据。然而，当数据的引用计数为0的时候，系统就会识别此数据为垃圾数据，需要回收，这也就形成了PHP的垃圾回收机制。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/12/php%e5%bc%95%e7%94%a8%e6%9c%ba%e5%88%b6%e5%92%8c%e5%9e%83%e5%9c%be%e5%9b%9e%e6%94%b6%e6%9c%ba%e5%88%b6%e8%af%a6%e8%a7%a3.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>互联网的浮躁</title>
		<link>http://www.sunboyu.cn/2008/12/12/%e4%ba%92%e8%81%94%e7%bd%91%e7%9a%84%e6%b5%ae%e8%ba%81.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/12/%e4%ba%92%e8%81%94%e7%bd%91%e7%9a%84%e6%b5%ae%e8%ba%81.shtml#comments</comments>
		<pubDate>Fri, 12 Dec 2008 09:07:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[互联网]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=425</guid>
		<description><![CDATA[前几天，QQ上有个哥们问我做个网站多少钱，这类问题我还是仔细得回答了，虽然很烦：按照网站复杂度定价格，你们详细规划网站了么？
兄弟很羞涩得说，他在创业，没钱，没技术，想用Discuz的产品做一个简单的网站去运营。
不排除可能成功，因为目前我知道很多网站就是用这么简单的一个东西做大的，比如chinaunix，55bbs，所以，我没资格说你这么做不行，扯淡，或者是把希望留给了有梦想的人。
目前一些人，在做视频，在做webgame（sns）。这两个行当是不是真有公司挣钱了，我不知道，反正我知道做这个烧钱厉害，而且很多人在继续做。
纵观互联网格局，俨然不是90年代初的股市，只要进钱就是翻。中国互联网起步阶段，网易靠提供电子邮件和虚拟主机发家了，王志东靠写汉卡成功了，戴志康写了个discuz成功了（虽然前期版本有抄袭嫌疑），有人从高丽棒子那弄个传奇，也挣得盆满钵满。
看现在，一个个新生事情的出现，然后又蹦出无数的追随者：youtobe出售，国内一堆搞视频网站的；化工网上市，行业门户林立而起（个人感觉行业门户比较靠普，毕竟是靠近实业），facebook卖了点钱，开心啥啥都起来，暂且不说做得好与否，国内这些创业者的思维的确不敢恭维。没有创新，只有盲从。做事情没有具体的目标，有的干脆只有－上市，收购。
我曾经住在林大旁边，方兴东的办公室就在附近，而今天每次路过，我都在心里暗笑，曾经一个多么伟大的人，带着多么伟大的思想，居然被新浪一棒子打死，连气都没有喘一口。
其实，作为一个打工者，看不惯只知道天天意淫的老板混日子。很多时候，我相信我是肤浅的，作为一个晚辈，我不懂互联网。但我也相信，今天的互联网是浮躁的，也许这次经济的浪潮能冲垮一部分人的梦想，洗清头脑，为行业带来新生。
]]></description>
			<content:encoded><![CDATA[<p>前几天，QQ上有个哥们问我做个网站多少钱，这类问题我还是仔细得回答了，虽然很烦：按照网站复杂度定价格，你们详细规划网站了么？</p>
<p>兄弟很羞涩得说，他在创业，没钱，没技术，想用Discuz的产品做一个简单的网站去运营。</p>
<p>不排除可能成功，因为目前我知道很多网站就是用这么简单的一个东西做大的，比如chinaunix，55bbs，所以，我没资格说你这么做不行，扯淡，或者是把希望留给了有梦想的人。</p>
<p>目前一些人，在做视频，在做webgame（sns）。这两个行当是不是真有公司挣钱了，我不知道，反正我知道做这个烧钱厉害，而且很多人在继续做。</p>
<p>纵观互联网格局，俨然不是90年代初的股市，只要进钱就是翻。中国互联网起步阶段，网易靠提供电子邮件和虚拟主机发家了，王志东靠写汉卡成功了，戴志康写了个discuz成功了（虽然前期版本有抄袭嫌疑），有人从高丽棒子那弄个传奇，也挣得盆满钵满。</p>
<p>看现在，一个个新生事情的出现，然后又蹦出无数的追随者：youtobe出售，国内一堆搞视频网站的；化工网上市，行业门户林立而起（个人感觉行业门户比较靠普，毕竟是靠近实业），facebook卖了点钱，开心啥啥都起来，暂且不说做得好与否，国内这些创业者的思维的确不敢恭维。没有创新，只有盲从。做事情没有具体的目标，有的干脆只有－上市，收购。</p>
<p>我曾经住在林大旁边，方兴东的办公室就在附近，而今天每次路过，我都在心里暗笑，曾经一个多么伟大的人，带着多么伟大的思想，居然被新浪一棒子打死，连气都没有喘一口。</p>
<p>其实，作为一个打工者，看不惯只知道天天意淫的老板混日子。很多时候，我相信我是肤浅的，作为一个晚辈，我不懂互联网。但我也相信，今天的互联网是浮躁的，也许这次经济的浪潮能冲垮一部分人的梦想，洗清头脑，为行业带来新生。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/12/%e4%ba%92%e8%81%94%e7%bd%91%e7%9a%84%e6%b5%ae%e8%ba%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新书，不是一般的新</title>
		<link>http://www.sunboyu.cn/2008/12/12/%e6%96%b0%e4%b9%a6%ef%bc%8c%e4%b8%8d%e6%98%af%e4%b8%80%e8%88%ac%e7%9a%84%e6%96%b0.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/12/%e6%96%b0%e4%b9%a6%ef%bc%8c%e4%b8%8d%e6%98%af%e4%b8%80%e8%88%ac%e7%9a%84%e6%96%b0.shtml#comments</comments>
		<pubDate>Fri, 12 Dec 2008 03:34:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=423</guid>
		<description><![CDATA[
中午到中关村图书大厦购得，不错。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/12/s3140466.jpg"><img class="aligncenter size-full wp-image-424" title="s3140466" src="http://www.sunboyu.cn/upfiles/2008/12/s3140466.jpg" alt="" width="125" height="180" /></a></p>
<p>中午到中关村图书大厦购得，不错。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/12/%e6%96%b0%e4%b9%a6%ef%bc%8c%e4%b8%8d%e6%98%af%e4%b8%80%e8%88%ac%e7%9a%84%e6%96%b0.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自行车VS Program</title>
		<link>http://www.sunboyu.cn/2008/12/12/%e8%87%aa%e8%a1%8c%e8%bd%a6vs-program.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/12/%e8%87%aa%e8%a1%8c%e8%bd%a6vs-program.shtml#comments</comments>
		<pubDate>Fri, 12 Dec 2008 01:02:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=419</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/12/echo.jpg"><img class="aligncenter size-full wp-image-420" title="echo" src="http://www.sunboyu.cn/upfiles/2008/12/echo.jpg" alt="" width="500" height="333" /></a><a href="http://www.sunboyu.cn/upfiles/2008/12/java.jpg"><img class="aligncenter size-full wp-image-421" title="java" src="http://www.sunboyu.cn/upfiles/2008/12/java.jpg" alt="" width="500" height="346" /></a><a href="http://www.sunboyu.cn/upfiles/2008/12/python.jpg"><img class="aligncenter size-full wp-image-422" title="python" src="http://www.sunboyu.cn/upfiles/2008/12/python.jpg" alt="" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/12/%e8%87%aa%e8%a1%8c%e8%bd%a6vs-program.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>unix不是个简单的玩意，人要知道谦虚</title>
		<link>http://www.sunboyu.cn/2008/12/09/unix%e4%b8%8d%e6%98%af%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e7%8e%a9%e6%84%8f%ef%bc%8c%e4%ba%ba%e8%a6%81%e7%9f%a5%e9%81%93%e8%b0%a6%e8%99%9a.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/09/unix%e4%b8%8d%e6%98%af%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e7%8e%a9%e6%84%8f%ef%bc%8c%e4%ba%ba%e8%a6%81%e7%9f%a5%e9%81%93%e8%b0%a6%e8%99%9a.shtml#comments</comments>
		<pubDate>Tue, 09 Dec 2008 14:36:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[日记]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=418</guid>
		<description><![CDATA[提醒自己一下，踏踏实实学基础。
周末继续买书去。
]]></description>
			<content:encoded><![CDATA[<p>提醒自己一下，踏踏实实学基础。<br />
周末继续买书去。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/09/unix%e4%b8%8d%e6%98%af%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e7%8e%a9%e6%84%8f%ef%bc%8c%e4%ba%ba%e8%a6%81%e7%9f%a5%e9%81%93%e8%b0%a6%e8%99%9a.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>购得一本新书：《Python网络编程基础》</title>
		<link>http://www.sunboyu.cn/2008/12/08/%e8%b4%ad%e5%be%97%e4%b8%80%e6%9c%ac%e6%96%b0%e4%b9%a6%ef%bc%9a%e3%80%8apython%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e5%9f%ba%e7%a1%80%e3%80%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/08/%e8%b4%ad%e5%be%97%e4%b8%80%e6%9c%ac%e6%96%b0%e4%b9%a6%ef%bc%9a%e3%80%8apython%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e5%9f%ba%e7%a1%80%e3%80%8b.shtml#comments</comments>
		<pubDate>Mon, 08 Dec 2008 15:04:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=416</guid>
		<description><![CDATA[过分迷信PHP是不行的，做事还得找专长

]]></description>
			<content:encoded><![CDATA[<p>过分迷信PHP是不行的，做事还得找专长<br />
<a href='http://www.sunboyu.cn/upfiles/2008/12/s2604186.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/12/s2604186.jpg" alt="" title="s2604186" width="105" height="140" class="aligncenter size-full wp-image-417" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/08/%e8%b4%ad%e5%be%97%e4%b8%80%e6%9c%ac%e6%96%b0%e4%b9%a6%ef%bc%9a%e3%80%8apython%e7%bd%91%e7%bb%9c%e7%bc%96%e7%a8%8b%e5%9f%ba%e7%a1%80%e3%80%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决php模块ssh2的编译问题</title>
		<link>http://www.sunboyu.cn/2008/12/07/%e8%a7%a3%e5%86%b3php%e6%a8%a1%e5%9d%97ssh2%e7%9a%84%e7%bc%96%e8%af%91%e9%97%ae%e9%a2%98.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/07/%e8%a7%a3%e5%86%b3php%e6%a8%a1%e5%9d%97ssh2%e7%9a%84%e7%bc%96%e8%af%91%e9%97%ae%e9%a2%98.shtml#comments</comments>
		<pubDate>Sun, 07 Dec 2008 13:50:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ssh2]]></category>
		<category><![CDATA[编译]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=415</guid>
		<description><![CDATA[这个问题一google就出来了，官方给出的解决方案，
在config.h里加上一个宏定义 #define LIBSSH2_APINO 200412301450,哇塞，一切OK
http://pecl.php.net/bugs/bug.php?id=9656
/root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_methods_negotiated':
/root/ssh2-0.10/ssh2.c:483: warning: assignment discards qualifiers from pointer target type
/root/ssh2-0.10/ssh2.c:484: warning: assignment discards qualifiers from pointer target type
/root/ssh2-0.10/ssh2.c:485: warning: assignment discards qualifiers from pointer target type
/root/ssh2-0.10/ssh2.c:486: warning: assignment discards qualifiers from pointer target type
/root/ssh2-0.10/ssh2.c:487: warning: assignment discards qualifiers from pointer target type
/root/ssh2-0.10/ssh2.c:488: warning: assignment discards qualifiers from pointer target type
/root/ssh2-0.10/ssh2.c:489: [...]]]></description>
			<content:encoded><![CDATA[<p>这个问题一google就出来了，官方给出的解决方案，<br />
在config.h里加上一个宏定义 #define LIBSSH2_APINO 200412301450,哇塞，一切OK<br />
http://pecl.php.net/bugs/bug.php?id=9656</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">/root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_methods_negotiated':</li>
<li>/root/ssh2-0.10/ssh2.c:483: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:484: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:485: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:486: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:487: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:488: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:489: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:490: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:491: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:492: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_fingerprint':</li>
<li>/root/ssh2-0.10/ssh2.c:536: warning: assignment discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_publickey_add':</li>
<li>/root/ssh2-0.10/ssh2.c:1038: warning: passing argument 1 of '_efree' discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_publickey_list':</li>
<li>/root/ssh2-0.10/ssh2.c:1097: warning: passing argument 4 of 'add_assoc_stringl_ex' discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:1098: warning: passing argument 4 of 'add_assoc_stringl_ex' discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:1106: warning: initialization discards qualifiers from pointer target type</li>
<li>/root/ssh2-0.10/ssh2.c:1107: warning: passing argument 2 of '_zend_hash_add_or_update' discards qualifiers from pointer target type</li>
<li>/bin/sh /root/ssh2-0.10/libtool --mode=compile gcc&nbsp; -I. -I</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/07/%e8%a7%a3%e5%86%b3php%e6%a8%a1%e5%9d%97ssh2%e7%9a%84%e7%bc%96%e8%af%91%e9%97%ae%e9%a2%98.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>山穷水复疑无路，柳暗花明又一村</title>
		<link>http://www.sunboyu.cn/2008/12/07/%e5%b1%b1%e7%a9%b7%e6%b0%b4%e5%a4%8d%e7%96%91%e6%97%a0%e8%b7%af%ef%bc%8c%e6%9f%b3%e6%9a%97%e8%8a%b1%e6%98%8e%e5%8f%88%e4%b8%80%e6%9d%91.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/07/%e5%b1%b1%e7%a9%b7%e6%b0%b4%e5%a4%8d%e7%96%91%e6%97%a0%e8%b7%af%ef%bc%8c%e6%9f%b3%e6%9a%97%e8%8a%b1%e6%98%8e%e5%8f%88%e4%b8%80%e6%9d%91.shtml#comments</comments>
		<pubDate>Sat, 06 Dec 2008 16:13:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ssh2]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=413</guid>
		<description><![CDATA[学习就是这样，突然发现了PHP居然有ssh2的模块，这样远程连接linux服务器就很容易，我正头疼用socket写个ssh2的连接类，突然就发现了这个玩意。手册看得还是少，罚吃巧克力一块。
官方文档:http://www.php.net/manual/en/book.ssh2.php
]]></description>
			<content:encoded><![CDATA[<p>学习就是这样，突然发现了PHP居然有ssh2的模块，这样远程连接linux服务器就很容易，我正头疼用socket写个ssh2的连接类，突然就发现了这个玩意。手册看得还是少，罚吃巧克力一块。<br />
官方文档:http://www.php.net/manual/en/book.ssh2.php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/07/%e5%b1%b1%e7%a9%b7%e6%b0%b4%e5%a4%8d%e7%96%91%e6%97%a0%e8%b7%af%ef%bc%8c%e6%9f%b3%e6%9a%97%e8%8a%b1%e6%98%8e%e5%8f%88%e4%b8%80%e6%9d%91.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentPHP V1.0 release</title>
		<link>http://www.sunboyu.cn/2008/12/05/centphp-v10-release.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/05/centphp-v10-release.shtml#comments</comments>
		<pubDate>Fri, 05 Dec 2008 14:06:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[CentPHP]]></category>
		<category><![CDATA[php框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=412</guid>
		<description><![CDATA[1.0不发布，1.1就不会出来，折腾了半月，终于写了个简单的框架，虽然只有简单的几个类，但基本实现了全OOP的操作。这个归功于网上众多的开源软件，没有这些资源的帮助，就不会有我的进步。
取名CentPHP，是因为我希望它像CentPHP一样强大稳定，而且免费开源。
最终把session的数据库保存方式给去了，因为太麻烦，模板引擎基本没什么功能，只有传值和显示，虽然进行了一些优化，但没有彻底跟踪排查资源调用情况，这个在以后版本要逐渐修正。
下边是相关文件列表，源码～～～～～～～～～等实现完一个项目后放出……
F:.
│  Index.php
│
├─lib
│  └─kernel
│          CentPHP.php
│          Class.Controller.php
│          Class.CP.php
│          Class.Mysql.php
│          Class.Router.php
│ [...]]]></description>
			<content:encoded><![CDATA[<p>1.0不发布，1.1就不会出来，折腾了半月，终于写了个简单的框架，虽然只有简单的几个类，但基本实现了全OOP的操作。这个归功于网上众多的开源软件，没有这些资源的帮助，就不会有我的进步。</p>
<p>取名CentPHP，是因为我希望它像CentPHP一样强大稳定，而且免费开源。</p>
<p>最终把session的数据库保存方式给去了，因为太麻烦，模板引擎基本没什么功能，只有传值和显示，虽然进行了一些优化，但没有彻底跟踪排查资源调用情况，这个在以后版本要逐渐修正。<br />
下边是相关文件列表，源码～～～～～～～～～等实现完一个项目后放出……</p>
<p>F:.<br />
│  Index.php<br />
│<br />
├─lib<br />
│  └─kernel<br />
│          CentPHP.php<br />
│          Class.Controller.php<br />
│          Class.CP.php<br />
│          Class.Mysql.php<br />
│          Class.Router.php<br />
│          Class.URI.php<br />
│          Class.View.php<br />
│          Common.php<br />
│<br />
├─usr<br />
│  ├─config<br />
│  │      Config.Mysql.php<br />
│  │      Config.View.php<br />
│  │<br />
│  ├─controllers<br />
│  │      welcome.php<br />
│  │<br />
│  ├─lib<br />
│  │      Class.Session.php<br />
│  │<br />
│  └─views<br />
│          welcome.php<br />
│<br />
└─var</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/05/centphp-v10-release.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session处理，比较怪异的应用</title>
		<link>http://www.sunboyu.cn/2008/12/04/session%e5%a4%84%e7%90%86%ef%bc%8c%e6%af%94%e8%be%83%e6%80%aa%e5%bc%82%e7%9a%84%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/04/session%e5%a4%84%e7%90%86%ef%bc%8c%e6%af%94%e8%be%83%e6%80%aa%e5%bc%82%e7%9a%84%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Thu, 04 Dec 2008 15:47:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[钩子]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=411</guid>
		<description><![CDATA[其实我很不喜欢把session放在数据库中处理，不过公司一直这么用，就先这么写，更倒霉的是，花了老大力气集成在一个不适合大项目的小框架里。
session本来是用URI类统一处理，过滤全局变量中的不安全因素，这样依赖，因为要重写session的几个方法，把原来的流程整得乱七八糟。
我正在想，是不是要把他做成一个钩子，钩挂在原来系统中，通过命令的方式开关，这样貌似是个不错的办法，不过，得把钩子的类写好……
补充：session放到数据库中的好处：可以即时得查看在新的用户（当然不是非常准确），可以踢人，如果是有登录认证的话。缺点：速度贼拉得慢，不如放到内存中。操作一次内存，得反复读写数据库，且不说硬盘，网络传输就是不消的消耗。
]]></description>
			<content:encoded><![CDATA[<p>其实我很不喜欢把session放在数据库中处理，不过公司一直这么用，就先这么写，更倒霉的是，花了老大力气集成在一个不适合大项目的小框架里。<br />
session本来是用URI类统一处理，过滤全局变量中的不安全因素，这样依赖，因为要重写session的几个方法，把原来的流程整得乱七八糟。<br />
我正在想，是不是要把他做成一个钩子，钩挂在原来系统中，通过命令的方式开关，这样貌似是个不错的办法，不过，得把钩子的类写好……</p>
<p>补充：session放到数据库中的好处：可以即时得查看在新的用户（当然不是非常准确），可以踢人，如果是有登录认证的话。缺点：速度贼拉得慢，不如放到内存中。操作一次内存，得反复读写数据库，且不说硬盘，网络传输就是不消的消耗。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/04/session%e5%a4%84%e7%90%86%ef%bc%8c%e6%af%94%e8%be%83%e6%80%aa%e5%bc%82%e7%9a%84%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5.2.7RC版本发布</title>
		<link>http://www.sunboyu.cn/2008/12/04/php527rc%e7%89%88%e6%9c%ac%e5%8f%91%e5%b8%83.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/04/php527rc%e7%89%88%e6%9c%ac%e5%8f%91%e5%b8%83.shtml#comments</comments>
		<pubDate>Thu, 04 Dec 2008 04:01:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5.2.7]]></category>
		<category><![CDATA[发布]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=410</guid>
		<description><![CDATA[官方地址 http://qa.php.net/
下载地址 http://downloads.php.net/ilia/php-5.2.7RC5.tar.gz
]]></description>
			<content:encoded><![CDATA[<p>官方地址 http://qa.php.net/</p>
<p>下载地址 http://downloads.php.net/ilia/php-5.2.7RC5.tar.gz</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/04/php527rc%e7%89%88%e6%9c%ac%e5%8f%91%e5%b8%83.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows下安装Apache，Mysql，PHP过程详解</title>
		<link>http://www.sunboyu.cn/2008/12/04/windows%e4%b8%8b%e5%ae%89%e8%a3%85apache%ef%bc%8cmysql%ef%bc%8cphp%e8%bf%87%e7%a8%8b%e8%af%a6%e8%a7%a3.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/04/windows%e4%b8%8b%e5%ae%89%e8%a3%85apache%ef%bc%8cmysql%ef%bc%8cphp%e8%bf%87%e7%a8%8b%e8%af%a6%e8%a7%a3.shtml#comments</comments>
		<pubDate>Thu, 04 Dec 2008 01:40:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wamp]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=409</guid>
		<description><![CDATA[原则：使用官方程序，完全自己配置，不使用其他辅助工具套件等。
准备：
apache2.2.*   http://httpd.apache.org/download.cgi   如果有stable版本，最好用stable版，其实最新版作为调试也不错
PHP5.2.*  http://www.php.net/downloads.php  目前是5.2.6
mysql5.1  http://dev.mysql.com/downloads/mysql/5.1.html  下载windows安装版本
1、安装Apache，安装路径随意，默认即可，手工管理更好，建议放到 d:\Apache 放D盘是为了以后重装的话，所有的配置文件都还在（备份不仅要备份数据，还要备份不起眼的配置文件）
2、安装Mysql，同上，安装到 D:\Mysql  理由同上
3、解压PHP5.2.×至目录 D:\PHP5 理由还是同上
4、配置环境变量：在桌面上找到“我的电脑”，右键点击“我的电脑”，选择“属性”里的“高级”标签，点击“环境变量”，在“系统变量”里找到“Path”，点击“编辑”按钮，在“变量值”后面加上“;D:\PHP5\;D:\PHP5\ext”，然后点“确定”退出。环境变量配置完成。（windows下Path环境变量是做什么用，google一下先，这样设置后，系统会自动搜索PHP目录里的可执行文件和加载类库）
5、进入PHP5目录下，找到php.ini-dist文件，将其复制到C盘的WINDOWS目录下，并将其文件名修改为“php.ini”。（php会默认从这个路径找php.ini这个文件，当然也可以手工指定这个目录，修改apache的配置文件即可）
6、再次进入PHP5目录下，将以下文件复制到C盘的WINDOWS目录下的System32里：（原因，我也不太清楚，但貌似可以设置一个环境变量指向这个路径就ok，那个方法一直没找到，也没理解）
fdftk.dll
gds32.dll
libeay32.dll
libmcrypt.dll
libmhash.dll
libmysql.dll
msql.dll
news.txt
ntwdblib.dll
7、打开Apache的主目录，进入conf文件夹，找到“httpd.conf”文件，为操作方便起见，建议使用Dreamweaver打开它。打开后在第126行左右找到 LoadModule vhost_alias_module modules/mod_vhost_alias.so，在后面添加以下语句：
LoadModule php5_module &#8220;D:/PHP5/php5apache2_2_filter.dll
&#8220;AddType application/x-httpd-php .php
添加完成后保存文件。
8、在apache主目录下htdocs下创建index.php文件，内容为&#60;?php phpinfo(); ?&#62;保存。
9、在浏览器的地址栏里输入http://127.0.0.1/index.php。即可打开显示PHP信息的页面。配置成功。
]]></description>
			<content:encoded><![CDATA[<p>原则：使用官方程序，完全自己配置，不使用其他辅助工具套件等。</p>
<p>准备：</p>
<p>apache2.2.*   http://httpd.apache.org/download.cgi   如果有stable版本，最好用stable版，其实最新版作为调试也不错</p>
<p>PHP5.2.*  http://www.php.net/downloads.php  目前是5.2.6</p>
<p>mysql5.1  http://dev.mysql.com/downloads/mysql/5.1.html  下载windows安装版本</p>
<p>1、安装Apache，安装路径随意，默认即可，手工管理更好，建议放到 d:\Apache 放D盘是为了以后重装的话，所有的配置文件都还在（备份不仅要备份数据，还要备份不起眼的配置文件）</p>
<p>2、安装Mysql，同上，安装到 D:\Mysql  理由同上</p>
<p>3、解压PHP5.2.×至目录 D:\PHP5 理由还是同上</p>
<p>4、配置环境变量：在桌面上找到“我的电脑”，右键点击“我的电脑”，选择“属性”里的“高级”标签，点击“环境变量”，在“系统变量”里找到“Path”，点击“编辑”按钮，在“变量值”后面加上“;D:\PHP5\;D:\PHP5\ext”，然后点“确定”退出。环境变量配置完成。（windows下Path环境变量是做什么用，google一下先，这样设置后，系统会自动搜索PHP目录里的可执行文件和加载类库）</p>
<p>5、进入PHP5目录下，找到php.ini-dist文件，将其复制到C盘的WINDOWS目录下，并将其文件名修改为“php.ini”。（php会默认从这个路径找php.ini这个文件，当然也可以手工指定这个目录，修改apache的配置文件即可）</p>
<p>6、再次进入PHP5目录下，将以下文件复制到C盘的WINDOWS目录下的System32里：（原因，我也不太清楚，但貌似可以设置一个环境变量指向这个路径就ok，那个方法一直没找到，也没理解）<br />
fdftk.dll<br />
gds32.dll<br />
libeay32.dll<br />
libmcrypt.dll<br />
libmhash.dll<br />
libmysql.dll<br />
msql.dll<br />
news.txt<br />
ntwdblib.dll</p>
<p>7、打开Apache的主目录，进入conf文件夹，找到“httpd.conf”文件，为操作方便起见，建议使用Dreamweaver打开它。打开后在第126行左右找到 LoadModule vhost_alias_module modules/mod_vhost_alias.so，在后面添加以下语句：<br />
LoadModule php5_module &#8220;D:/PHP5/php5apache2_2_filter.dll<br />
&#8220;AddType application/x-httpd-php .php<br />
添加完成后保存文件。</p>
<p>8、在apache主目录下htdocs下创建index.php文件，内容为&lt;?php phpinfo(); ?&gt;保存。</p>
<p>9、在浏览器的地址栏里输入http://127.0.0.1/index.php。即可打开显示PHP信息的页面。配置成功。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/04/windows%e4%b8%8b%e5%ae%89%e8%a3%85apache%ef%bc%8cmysql%ef%bc%8cphp%e8%bf%87%e7%a8%8b%e8%af%a6%e8%a7%a3.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>框架资源消耗分析</title>
		<link>http://www.sunboyu.cn/2008/12/03/%e6%a1%86%e6%9e%b6%e8%b5%84%e6%ba%90%e6%b6%88%e8%80%97%e5%88%86%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/03/%e6%a1%86%e6%9e%b6%e8%b5%84%e6%ba%90%e6%b6%88%e8%80%97%e5%88%86%e6%9e%90.shtml#comments</comments>
		<pubDate>Wed, 03 Dec 2008 14:42:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[效率]]></category>
		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=408</guid>
		<description><![CDATA[简单使用了下CI框架，发现了不少技巧：在 Controller类中实例化了好多的类
function _ci_initialize()
	{
		// Assign all the class objects that were instantiated by the
		// front controller to local class variables so that CI can be
		// run as one big super object.
		$classes = array(
							'config'	=&#62; 'Config',
							'input'		=&#62; 'Input',
							'benchmark'	=&#62; 'Benchmark',
							'uri'		=&#62; 'URI',
							'output'	=&#62; 'Output',
							'lang'		=&#62; 'Language',
							'router'	=&#62; 'Router'
							);
		
		foreach ($classes as $var =&#62; $class)
		{
			$this-&#62;$var =&#38; load_class($class);
		}
&#160;
		// In PHP 5 the Loader class is run as [...]]]></description>
			<content:encoded><![CDATA[<p>简单使用了下CI框架，发现了不少技巧：在 Controller类中实例化了好多的类</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">function _ci_initialize()</li>
<li>	{</li>
<li>		// Assign all the class objects that were instantiated by the</li>
<li>		// front controller to local class variables so that CI can be</li>
<li>		// run as one big super object.</li>
<li>		$classes = array(</li>
<li>							'config'	=&gt; 'Config',</li>
<li>							'input'		=&gt; 'Input',</li>
<li>							'benchmark'	=&gt; 'Benchmark',</li>
<li>							'uri'		=&gt; 'URI',</li>
<li>							'output'	=&gt; 'Output',</li>
<li>							'lang'		=&gt; 'Language',</li>
<li>							'router'	=&gt; 'Router'</li>
<li>							);</li>
<li>		</li>
<li>		foreach ($classes as $var =&gt; $class)</li>
<li>		{</li>
<li>			$this-&gt;$var =&amp; load_class($class);</li>
<li>		}</li>
<li>&nbsp;</li>
<li>		// In PHP 5 the Loader class is run as a discreet</li>
<li>		// class.&nbsp; In PHP 4 it extends the Controller</li>
<li>		if (floor(phpversion()) &gt;= 5)</li>
<li>		{</li>
<li>			$this-&gt;load =&amp; load_class('Loader');</li>
<li>			$this-&gt;load-&gt;_ci_autoloader();</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			$this-&gt;_ci_autoloader();</li>
<li>			</li>
<li>			// sync up the objects since PHP4 was working from a copy</li>
<li>			foreach (array_keys(get_object_vars($this)) as $attribute)</li>
<li>			{</li>
<li>				if (is_object($this-&gt;$attribute))</li>
<li>				{</li>
<li>					$this-&gt;load-&gt;$attribute =&amp; $this-&gt;$attribute;</li>
<li>				}</li>
<li>			}</li>
<li>		}</li></ol></div>
<p>然后在默认welcome的模型里print_r($this),那是一个密密麻麻阿，无数的实例化数据摆在这里，估计内存CPU消耗也是惊人。<br />
当然，作者并不是没有解决这些问题，所有的类在实例化之后使用static的方式常驻内存中，在第一次加载后，响应时间明显缩短，我本地测试是否默认实例化如此多的对象速度没有明显的差别。<br />
对于原来我写程序，其实是有洁癖的，或者是心理障碍，就是像写C一样仔细考虑每个变量和每个方法，计算操作复杂度，其实对于整个系统开发和PHP这们语言来说，这么开发其实是杞人忧天，因为PHP本身就可以处理这些问题，比如static方法，一些缓存。<br />
在进行各种测试之后，我的类库居然也默认加载了一些方法，只是应用在小网站中。<br />
对于大型网站，还是要充分考虑效率性能的问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/03/%e6%a1%86%e6%9e%b6%e8%b5%84%e6%ba%90%e6%b6%88%e8%80%97%e5%88%86%e6%9e%90.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在懒惰中发展</title>
		<link>http://www.sunboyu.cn/2008/12/02/%e5%9c%a8%e6%87%92%e6%83%b0%e4%b8%ad%e5%8f%91%e5%b1%95.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/02/%e5%9c%a8%e6%87%92%e6%83%b0%e4%b8%ad%e5%8f%91%e5%b1%95.shtml#comments</comments>
		<pubDate>Tue, 02 Dec 2008 14:39:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[危机]]></category>
		<category><![CDATA[发展]]></category>
		<category><![CDATA[学习]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=407</guid>
		<description><![CDATA[最近写代码总有疲倦的感觉，可能是快过年了，心思全在年关上。
期望中的框架也许全是OOP+非常规范的结构，其实未必是最合理的，为了偷懒，部分操作还是用函数来实现，然后通过引用把函数附给类的方法，其实这样解决了很多问题，可以在类中直接调用，也可以作为类的一个方法。这样节约了代码，节约了操作。
本想买本SOA的书看看，最终还是没走到书店，跟上半年学习的激情相差老远。经济危机，多少会优点压力，工作的压力是一部分，社会给予的无形压力最能压人，社会是真正的敌人。记得中学老师总说大学是半个社会，现在真走到社会上，才发现那些老师其实混得比我惨多了，他们压力更大。他们能顶住，我为何不能。
今天去了一个车行买了点配件，把车装修一下，车老板是个女孩，正在考研，她老公帮她打理店铺。其实这是我简单的目标，有自己的一个小店，也需收入不是多么丰厚，但一定要留出自己发展的道路。
保证每天翻书，一定得坚持，即使一天一页。
]]></description>
			<content:encoded><![CDATA[<p>最近写代码总有疲倦的感觉，可能是快过年了，心思全在年关上。</p>
<p>期望中的框架也许全是OOP+非常规范的结构，其实未必是最合理的，为了偷懒，部分操作还是用函数来实现，然后通过引用把函数附给类的方法，其实这样解决了很多问题，可以在类中直接调用，也可以作为类的一个方法。这样节约了代码，节约了操作。</p>
<p>本想买本SOA的书看看，最终还是没走到书店，跟上半年学习的激情相差老远。经济危机，多少会优点压力，工作的压力是一部分，社会给予的无形压力最能压人，社会是真正的敌人。记得中学老师总说大学是半个社会，现在真走到社会上，才发现那些老师其实混得比我惨多了，他们压力更大。他们能顶住，我为何不能。</p>
<p>今天去了一个车行买了点配件，把车装修一下，车老板是个女孩，正在考研，她老公帮她打理店铺。其实这是我简单的目标，有自己的一个小店，也需收入不是多么丰厚，但一定要留出自己发展的道路。</p>
<p>保证每天翻书，一定得坚持，即使一天一页。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/02/%e5%9c%a8%e6%87%92%e6%83%b0%e4%b8%ad%e5%8f%91%e5%b1%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>框架开发的两个主方向</title>
		<link>http://www.sunboyu.cn/2008/12/02/%e6%a1%86%e6%9e%b6%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%a4%e4%b8%aa%e4%b8%bb%e6%96%b9%e5%90%91.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/02/%e6%a1%86%e6%9e%b6%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%a4%e4%b8%aa%e4%b8%bb%e6%96%b9%e5%90%91.shtml#comments</comments>
		<pubDate>Tue, 02 Dec 2008 05:50:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[内存消耗]]></category>
		<category><![CDATA[效率]]></category>
		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=406</guid>
		<description><![CDATA[最近一直在研究框架，翻阅了各大框架结构，最后总结出两点：性能和接口规范。
1、接口规范
框架的一大意义在于整合类库和资源，使用统一的接口和统一的方式进行调用，统一的接口又更加方便其他资源的整合，模块化的管理更容易对代码进行管理。这样，可以使得不同的开发人员形成一致的风格进行分工协作。
2、效率
框架在整合类库，判断路由的时候，毕竟消耗很多冗余操作。太多的类库加载也将耗费很多的内存和CPU，因此，框架开发的另一个要点就是要降低操作复杂性，降低内存消耗，在这个基础上有可优化性。
总结到这里，晚上继续玩命……
]]></description>
			<content:encoded><![CDATA[<p>最近一直在研究框架，翻阅了各大框架结构，最后总结出两点：性能和接口规范。<br />
1、接口规范<br />
框架的一大意义在于整合类库和资源，使用统一的接口和统一的方式进行调用，统一的接口又更加方便其他资源的整合，模块化的管理更容易对代码进行管理。这样，可以使得不同的开发人员形成一致的风格进行分工协作。<br />
2、效率<br />
框架在整合类库，判断路由的时候，毕竟消耗很多冗余操作。太多的类库加载也将耗费很多的内存和CPU，因此，框架开发的另一个要点就是要降低操作复杂性，降低内存消耗，在这个基础上有可优化性。</p>
<p>总结到这里，晚上继续玩命……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/02/%e6%a1%86%e6%9e%b6%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%a4%e4%b8%aa%e4%b8%bb%e6%96%b9%e5%90%91.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>炮爷,经济危机进村了</title>
		<link>http://www.sunboyu.cn/2008/12/01/%e7%82%ae%e7%88%b7%e7%bb%8f%e6%b5%8e%e5%8d%b1%e6%9c%ba%e8%bf%9b%e6%9d%91%e4%ba%86.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/01/%e7%82%ae%e7%88%b7%e7%bb%8f%e6%b5%8e%e5%8d%b1%e6%9c%ba%e8%bf%9b%e6%9d%91%e4%ba%86.shtml#comments</comments>
		<pubDate>Mon, 01 Dec 2008 14:44:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[下岗]]></category>
		<category><![CDATA[经济危机]]></category>
		<category><![CDATA[裁员]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=405</guid>
		<description><![CDATA[年底，真应了贺爷的话，金融风波到来了。
上周六还看见炮爷在抱怨加班，周一上午炮爷公司就突然宣布解散。这事要给我也就认了，人总得去尝试，可炮爷就惨点。
刚认识炮爷是在4月左右，群内我跟炮爷一起求职，有天突然面试了一个公司，在学院路财富大厦，结果炮爷来得晚走得早，倒是我在那里耗了半天。炮爷看来脾气比我直得多，直接就把那孙子枪毙了，我就比较虚伪了，装腔作势面了半天，得给人家人事找点事干，表示对人家工作的肯定和尊重，另外，那人事的确脑子不好使，忽悠人的话前后不着边，比起大公司的人事确实差劲，后来托辞走了。炮爷在处理这类事情上是优于我的，而我必须跟人接触后才能分辨。
后炮爷跟群内几位大哥级人物混CBD去，我依然留在海淀。
炮爷去CBD后第一个工作不错，跟着大哥们不亦乐乎，技术突飞猛进，甚是惊人。不过乐极生悲，两个月后该部门集体被裁，一位老大去跟村长混事，炮爷跟另一位老大去一新公司发展。
按说炮爷的公司是财大气粗，前途无量，不过好景也没有持续多长，这不11月，正赶上全球金融危机，危机的浪花直逼北京互联网行业，各个公司只出人不进人，很多公司已经是只有出的气，没有进的气。这不，据说炮爷的老东家搞投资亏了几个亿，炮爷也跟着经济的大潮光荣下岗。
现在，炮爷只有跟着他的空姐老婆混了，年前找工作是不太容易，炮爷欠我的十瓶啤酒今年估计也还不上了。
]]></description>
			<content:encoded><![CDATA[<p>年底，真应了贺爷的话，金融风波到来了。</p>
<p>上周六还看见炮爷在抱怨加班，周一上午炮爷公司就突然宣布解散。这事要给我也就认了，人总得去尝试，可炮爷就惨点。</p>
<p>刚认识炮爷是在4月左右，群内我跟炮爷一起求职，有天突然面试了一个公司，在学院路财富大厦，结果炮爷来得晚走得早，倒是我在那里耗了半天。炮爷看来脾气比我直得多，直接就把那孙子枪毙了，我就比较虚伪了，装腔作势面了半天，得给人家人事找点事干，表示对人家工作的肯定和尊重，另外，那人事的确脑子不好使，忽悠人的话前后不着边，比起大公司的人事确实差劲，后来托辞走了。炮爷在处理这类事情上是优于我的，而我必须跟人接触后才能分辨。</p>
<p>后炮爷跟群内几位大哥级人物混CBD去，我依然留在海淀。</p>
<p>炮爷去CBD后第一个工作不错，跟着大哥们不亦乐乎，技术突飞猛进，甚是惊人。不过乐极生悲，两个月后该部门集体被裁，一位老大去跟村长混事，炮爷跟另一位老大去一新公司发展。</p>
<p>按说炮爷的公司是财大气粗，前途无量，不过好景也没有持续多长，这不11月，正赶上全球金融危机，危机的浪花直逼北京互联网行业，各个公司只出人不进人，很多公司已经是只有出的气，没有进的气。这不，据说炮爷的老东家搞投资亏了几个亿，炮爷也跟着经济的大潮光荣下岗。</p>
<p>现在，炮爷只有跟着他的空姐老婆混了，年前找工作是不太容易，炮爷欠我的十瓶啤酒今年估计也还不上了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/01/%e7%82%ae%e7%88%b7%e7%bb%8f%e6%b5%8e%e5%8d%b1%e6%9c%ba%e8%bf%9b%e6%9d%91%e4%ba%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>经济危机了，LAMPer们应该做点什么</title>
		<link>http://www.sunboyu.cn/2008/11/30/%e7%bb%8f%e6%b5%8e%e5%8d%b1%e6%9c%ba%e4%ba%86%ef%bc%8clamper%e4%bb%ac%e5%ba%94%e8%af%a5%e5%81%9a%e7%82%b9%e4%bb%80%e4%b9%88.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/30/%e7%bb%8f%e6%b5%8e%e5%8d%b1%e6%9c%ba%e4%ba%86%ef%bc%8clamper%e4%bb%ac%e5%ba%94%e8%af%a5%e5%81%9a%e7%82%b9%e4%bb%80%e4%b9%88.shtml#comments</comments>
		<pubDate>Sun, 30 Nov 2008 09:45:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=404</guid>
		<description><![CDATA[1、不要怕，经济危机对我们这些搞技术的冲击最小，除非你花钱如流水，每天往返高档消费场所（这样的人好像也就不搞技术了），稳住，IT互联网市场就跟电信一样，永远不会跨，只是一时黯淡而已，总有复苏的时候。
2、保持积极向上的心情，这种心情在经济危机时候尤其重要。因为很多人在经济危机，行业不景气的时候会选择其他的行业，这时候是我们潜心修行的好时候，等行业复苏的时候我们一炮杀出，毕竟取胜于市场。
3、不要期待老板给你加薪升职，员工总是难以理解老板的苦，尤其是这个时候。能保证公司顺利度过难关是老板要想的，当然老板心情会很清楚谁在努力。但是也未必你的雇主是周扒皮。
4、尽量不要跳槽，跳槽只能让你从零开始，经济危机下公司发展会变得缓慢，即使你有能力，也不如平时容易发挥出来，造成自己发展缓慢。
5、潜心修炼。经济危机或多或少都让一些闲适少起来，流出更多的时间，你可以把自己的专业知识砸实，可以学一门更高级的编程语言，可以考一些证，成为以后加薪的理由。总之，如果能认清楚形势，这对我们是个好事。
6、经济再不好，还是有一些机会的，尝试找到一些平时不容易出现的机会。
7、保持在圈里，经济危机是又周期的，等下一次危机来临的时候，我们已经积累了足够的经验。
]]></description>
			<content:encoded><![CDATA[<p>1、不要怕，经济危机对我们这些搞技术的冲击最小，除非你花钱如流水，每天往返高档消费场所（这样的人好像也就不搞技术了），稳住，IT互联网市场就跟电信一样，永远不会跨，只是一时黯淡而已，总有复苏的时候。</p>
<p>2、保持积极向上的心情，这种心情在经济危机时候尤其重要。因为很多人在经济危机，行业不景气的时候会选择其他的行业，这时候是我们潜心修行的好时候，等行业复苏的时候我们一炮杀出，毕竟取胜于市场。</p>
<p>3、不要期待老板给你加薪升职，员工总是难以理解老板的苦，尤其是这个时候。能保证公司顺利度过难关是老板要想的，当然老板心情会很清楚谁在努力。但是也未必你的雇主是周扒皮。</p>
<p>4、尽量不要跳槽，跳槽只能让你从零开始，经济危机下公司发展会变得缓慢，即使你有能力，也不如平时容易发挥出来，造成自己发展缓慢。</p>
<p>5、潜心修炼。经济危机或多或少都让一些闲适少起来，流出更多的时间，你可以把自己的专业知识砸实，可以学一门更高级的编程语言，可以考一些证，成为以后加薪的理由。总之，如果能认清楚形势，这对我们是个好事。</p>
<p>6、经济再不好，还是有一些机会的，尝试找到一些平时不容易出现的机会。</p>
<p>7、保持在圈里，经济危机是又周期的，等下一次危机来临的时候，我们已经积累了足够的经验。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/30/%e7%bb%8f%e6%b5%8e%e5%8d%b1%e6%9c%ba%e4%ba%86%ef%bc%8clamper%e4%bb%ac%e5%ba%94%e8%af%a5%e5%81%9a%e7%82%b9%e4%bb%80%e4%b9%88.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>框架学习之起步阶段：罗马的出发</title>
		<link>http://www.sunboyu.cn/2008/11/27/%e6%a1%86%e6%9e%b6%e5%ad%a6%e4%b9%a0%e4%b9%8b%e8%b5%b7%e6%ad%a5%e9%98%b6%e6%ae%b5%ef%bc%9a%e7%bd%97%e9%a9%ac%e7%9a%84%e5%87%ba%e5%8f%91.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/27/%e6%a1%86%e6%9e%b6%e5%ad%a6%e4%b9%a0%e4%b9%8b%e8%b5%b7%e6%ad%a5%e9%98%b6%e6%ae%b5%ef%bc%9a%e7%bd%97%e9%a9%ac%e7%9a%84%e5%87%ba%e5%8f%91.shtml#comments</comments>
		<pubDate>Thu, 27 Nov 2008 14:11:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[url路由]]></category>
		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=403</guid>
		<description><![CDATA[罗马真的不是一天建成的，不能不承认，那些框架作者在此花费的精力。我的框架只写了一个说明，两个函数，就已经尽兴不下去了，当然跟这几天的感冒有关，不过，更多的是我没有理清框架应该有的结构。
一个优秀的框架除了规范化大部分操作外，其在效率和性能损耗上做了进步一的改进，从而能够高效处理复杂的操作。
第一个自动加载类的函数，参考了下PHP手册关于引用部分，才发现自己原来写类的方法，是如何的消耗内存和CPU，任何一个方法的诞生都是有其目的的，不能认为PHP是神，但PHP毕竟比我强，因此我还是要相信这些我不熟悉的操作是有用武之地的。
第二个方法，是要定义URI路由，URI路由我会尽量使用逐一匹配的方式进行解析，但有些操作不确定变量数量的时候，简单使用正则。我正则不很强，但也对着手册也可以写，但我总感觉这玩意太费劲，大脑想着费劲，电脑做着肯定费劲。有简单的方式，为何用难的，难道只是为了省点代码空间么，没必要的。
不过说到底，正则这东西还是很有用，不能因为效率差而失去，计划写个分支，把简单的用模板匹配，复杂的用正则，皆大欢喜。
不过写之前，还是要大量翻看别人的东西。
]]></description>
			<content:encoded><![CDATA[<p>罗马真的不是一天建成的，不能不承认，那些框架作者在此花费的精力。我的框架只写了一个说明，两个函数，就已经尽兴不下去了，当然跟这几天的感冒有关，不过，更多的是我没有理清框架应该有的结构。</p>
<p>一个优秀的框架除了规范化大部分操作外，其在效率和性能损耗上做了进步一的改进，从而能够高效处理复杂的操作。</p>
<p>第一个自动加载类的函数，参考了下PHP手册关于引用部分，才发现自己原来写类的方法，是如何的消耗内存和CPU，任何一个方法的诞生都是有其目的的，不能认为PHP是神，但PHP毕竟比我强，因此我还是要相信这些我不熟悉的操作是有用武之地的。</p>
<p>第二个方法，是要定义URI路由，URI路由我会尽量使用逐一匹配的方式进行解析，但有些操作不确定变量数量的时候，简单使用正则。我正则不很强，但也对着手册也可以写，但我总感觉这玩意太费劲，大脑想着费劲，电脑做着肯定费劲。有简单的方式，为何用难的，难道只是为了省点代码空间么，没必要的。</p>
<p>不过说到底，正则这东西还是很有用，不能因为效率差而失去，计划写个分支，把简单的用模板匹配，复杂的用正则，皆大欢喜。</p>
<p>不过写之前，还是要大量翻看别人的东西。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/27/%e6%a1%86%e6%9e%b6%e5%ad%a6%e4%b9%a0%e4%b9%8b%e8%b5%b7%e6%ad%a5%e9%98%b6%e6%ae%b5%ef%bc%9a%e7%bd%97%e9%a9%ac%e7%9a%84%e5%87%ba%e5%8f%91.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>感冒一周，今日好转</title>
		<link>http://www.sunboyu.cn/2008/11/27/%e6%84%9f%e5%86%92%e4%b8%80%e5%91%a8%ef%bc%8c%e4%bb%8a%e6%97%a5%e5%a5%bd%e8%bd%ac.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/27/%e6%84%9f%e5%86%92%e4%b8%80%e5%91%a8%ef%bc%8c%e4%bb%8a%e6%97%a5%e5%a5%bd%e8%bd%ac.shtml#comments</comments>
		<pubDate>Thu, 27 Nov 2008 11:30:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[日志]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=402</guid>
		<description><![CDATA[上周日去泡温泉，结果回来就感冒发烧，硬挺几天，没有就医，简单吃点药，差不多快抗过去了。看来感冒真的有周期性，看不看都得来上几天，这几天坚持天天吃水果，保证足够的能量，居然一直也撑下来了，工作也没怎么耽误，大喜。
今日终于有明显好转，虽然有点不利索，回家继续框架研究，争取年前能出个简单的框架系统。
预订的目标一定要实现，而且是在框架系统的基础上实现，工作量不会小，以后得抓紧时间了，LINUX系统一直是个大任务，最近一直没看，计划元旦补习。
学习的感觉真好，让自己感觉自己是个活人。
]]></description>
			<content:encoded><![CDATA[<p>上周日去泡温泉，结果回来就感冒发烧，硬挺几天，没有就医，简单吃点药，差不多快抗过去了。看来感冒真的有周期性，看不看都得来上几天，这几天坚持天天吃水果，保证足够的能量，居然一直也撑下来了，工作也没怎么耽误，大喜。</p>
<p>今日终于有明显好转，虽然有点不利索，回家继续框架研究，争取年前能出个简单的框架系统。</p>
<p>预订的目标一定要实现，而且是在框架系统的基础上实现，工作量不会小，以后得抓紧时间了，LINUX系统一直是个大任务，最近一直没看，计划元旦补习。</p>
<p>学习的感觉真好，让自己感觉自己是个活人。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/27/%e6%84%9f%e5%86%92%e4%b8%80%e5%91%a8%ef%bc%8c%e4%bb%8a%e6%97%a5%e5%a5%bd%e8%bd%ac.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我要出售的自行车</title>
		<link>http://www.sunboyu.cn/2008/11/26/%e6%88%91%e8%a6%81%e5%87%ba%e5%94%ae%e7%9a%84%e8%87%aa%e8%a1%8c%e8%bd%a6.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/26/%e6%88%91%e8%a6%81%e5%87%ba%e5%94%ae%e7%9a%84%e8%87%aa%e8%a1%8c%e8%bd%a6.shtml#comments</comments>
		<pubDate>Wed, 26 Nov 2008 01:07:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[出售]]></category>
		<category><![CDATA[自行车]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=395</guid>
		<description><![CDATA[





]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.sunboyu.cn/upfiles/2008/11/img_4074.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/11/img_4074.jpg" alt="" title="img_4074" width="500" height="375" class="aligncenter size-full wp-image-396" /></a></p>
<p><a href='http://www.sunboyu.cn/upfiles/2008/11/img_4075.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/11/img_4075.jpg" alt="" title="img_4075" width="500" height="375" class="aligncenter size-full wp-image-397" /></a></p>
<p><a href='http://www.sunboyu.cn/upfiles/2008/11/img_4076.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/11/img_4076.jpg" alt="" title="img_4076" width="500" height="375" class="aligncenter size-full wp-image-398" /></a></p>
<p><a href='http://www.sunboyu.cn/upfiles/2008/11/img_4077.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/11/img_4077.jpg" alt="" title="img_4077" width="500" height="375" class="aligncenter size-full wp-image-399" /></a></p>
<p><a href='http://www.sunboyu.cn/upfiles/2008/11/img_4078.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/11/img_4078.jpg" alt="" title="img_4078" width="500" height="375" class="aligncenter size-full wp-image-400" /></a></p>
<p><a href='http://www.sunboyu.cn/upfiles/2008/11/img_4079.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/11/img_4079.jpg" alt="" title="img_4079" width="500" height="375" class="aligncenter size-full wp-image-401" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/26/%e6%88%91%e8%a6%81%e5%87%ba%e5%94%ae%e7%9a%84%e8%87%aa%e8%a1%8c%e8%bd%a6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一辆二手车，尽知天下事</title>
		<link>http://www.sunboyu.cn/2008/11/25/%e4%b8%80%e8%be%86%e4%ba%8c%e6%89%8b%e8%bd%a6%ef%bc%8c%e5%b0%bd%e7%9f%a5%e5%a4%a9%e4%b8%8b%e4%ba%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/25/%e4%b8%80%e8%be%86%e4%ba%8c%e6%89%8b%e8%bd%a6%ef%bc%8c%e5%b0%bd%e7%9f%a5%e5%a4%a9%e4%b8%8b%e4%ba%8b.shtml#comments</comments>
		<pubDate>Tue, 25 Nov 2008 14:03:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[卖车]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=394</guid>
		<description><![CDATA[给老婆买了辆新车，要把旧车卖掉。其实旧车也就骑了半年，除了一层的土，也没什么，我骑到中关村依然轻松，所以，感觉应该卖个好价钱。不过由于懒得出门，只好贱卖，毕竟学习的时间成本也挺高的。
在58，赶集上发了两个帖子，因为当时没有拍照，只好找了张新车照片，也许有人认为我的车跟新车一样，那就错了，因为我也说明了，所以，算个小误会，明天我会把实际的照片发上去。
接触了买主，说一下：
第一个买主是个搞二手车的，确切来说，应该是个搞自行车翻新工作的。当时给他电话简单说明了一下，因为不是专业搞车的，所以只能以常理描述一下。下午来电话说：肯定要了，就这价钱。我想，既然这么肯定，就把其他买主推了，毕竟天冷，来一趟挺不容易。可到要见面的时候，那哥们出门，找了另一个哥们来看车，那哥们又记错了地方，结果没来，后买主又打电话，说已经来取车，就等了大概二十分钟。果然来了，貌似专业的样子试了试车，说实在，虽然我不是专业玩车的，但起码车子真正值钱的地方能看出来，他只看了表面的东西，其实就是翻新成本，可能感觉翻新成本高，抑或是想多挣点，再次压价。对于生意人，我向来是心狠的，生意就是生意，人情大于生意，生意就不叫生意了。磨了半天，看我态度坚决，泱泱而归，又说了些委婉道歉让我久等之类的话。生意人都这样，我做生意其实也是这样。
第二个买主还没有，因为答应这个后，我没答应其他人看车，所以，明天把实际照片发上去再说。网上的帖子删了先。不过不打算卖给搞二手车的人了，因为车子骑时间长了有感情，还是给一个能发挥其余热的人放心。
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
续上篇，车子终于出手，这次是本小区邻居，之前说好不砍价，来后果然没砍价，原价照收。不像第一位卖主那么细致得去看这个车，可以保证是自己骑的，其实就是自己骑，因为他在旁边开店，不可能去倒卖自行车，就直接卖他了。收钱200，没零钱找，顺便旁边买橘子一兜，送给他小侄子几颗，生意算顺利完成。
生意完结，总结：车子虽不算好，但保证结实和稳定性，起码能打气一次能持续一个月清河到中关村的路程不掉链子，不算很沉，不过轴也要多保养，北京天太干，粉尘多，不注意保养的会使轴老化过快，造成报废。北京的黑车管理力度不错，起码没有很明显的黑车交易，所以我这车还是可以卖到更高的价钱的。不过，精力不在于此，草草了事，贱卖之。
]]></description>
			<content:encoded><![CDATA[<p>给老婆买了辆新车，要把旧车卖掉。其实旧车也就骑了半年，除了一层的土，也没什么，我骑到中关村依然轻松，所以，感觉应该卖个好价钱。不过由于懒得出门，只好贱卖，毕竟学习的时间成本也挺高的。</p>
<p>在58，赶集上发了两个帖子，因为当时没有拍照，只好找了张新车照片，也许有人认为我的车跟新车一样，那就错了，因为我也说明了，所以，算个小误会，明天我会把实际的照片发上去。</p>
<p>接触了买主，说一下：</p>
<p>第一个买主是个搞二手车的，确切来说，应该是个搞自行车翻新工作的。当时给他电话简单说明了一下，因为不是专业搞车的，所以只能以常理描述一下。下午来电话说：肯定要了，就这价钱。我想，既然这么肯定，就把其他买主推了，毕竟天冷，来一趟挺不容易。可到要见面的时候，那哥们出门，找了另一个哥们来看车，那哥们又记错了地方，结果没来，后买主又打电话，说已经来取车，就等了大概二十分钟。果然来了，貌似专业的样子试了试车，说实在，虽然我不是专业玩车的，但起码车子真正值钱的地方能看出来，他只看了表面的东西，其实就是翻新成本，可能感觉翻新成本高，抑或是想多挣点，再次压价。对于生意人，我向来是心狠的，生意就是生意，人情大于生意，生意就不叫生意了。磨了半天，看我态度坚决，泱泱而归，又说了些委婉道歉让我久等之类的话。生意人都这样，我做生意其实也是这样。</p>
<p>第二个买主还没有，因为答应这个后，我没答应其他人看车，所以，明天把实际照片发上去再说。网上的帖子删了先。不过不打算卖给搞二手车的人了，因为车子骑时间长了有感情，还是给一个能发挥其余热的人放心。</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>续上篇，车子终于出手，这次是本小区邻居，之前说好不砍价，来后果然没砍价，原价照收。不像第一位卖主那么细致得去看这个车，可以保证是自己骑的，其实就是自己骑，因为他在旁边开店，不可能去倒卖自行车，就直接卖他了。收钱200，没零钱找，顺便旁边买橘子一兜，送给他小侄子几颗，生意算顺利完成。</p>
<p>生意完结，总结：车子虽不算好，但保证结实和稳定性，起码能打气一次能持续一个月清河到中关村的路程不掉链子，不算很沉，不过轴也要多保养，北京天太干，粉尘多，不注意保养的会使轴老化过快，造成报废。北京的黑车管理力度不错，起码没有很明显的黑车交易，所以我这车还是可以卖到更高的价钱的。不过，精力不在于此，草草了事，贱卖之。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/25/%e4%b8%80%e8%be%86%e4%ba%8c%e6%89%8b%e8%bd%a6%ef%bc%8c%e5%b0%bd%e7%9f%a5%e5%a4%a9%e4%b8%8b%e4%ba%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>车已购得，捷安特追逐者540</title>
		<link>http://www.sunboyu.cn/2008/11/24/%e8%bd%a6%e5%b7%b2%e8%b4%ad%e5%be%97%ef%bc%8c%e6%8d%b7%e5%ae%89%e7%89%b9%e8%bf%bd%e9%80%90%e8%80%85540.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/24/%e8%bd%a6%e5%b7%b2%e8%b4%ad%e5%be%97%ef%bc%8c%e6%8d%b7%e5%ae%89%e7%89%b9%e8%bf%bd%e9%80%90%e8%80%85540.shtml#comments</comments>
		<pubDate>Mon, 24 Nov 2008 12:34:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=393</guid>
		<description><![CDATA[加上挡泥板，两个锁（中国的治安－－&#124;）,一共是1100大洋。

]]></description>
			<content:encoded><![CDATA[<p>加上挡泥板，两个锁（中国的治安－－|）,一共是1100大洋。</p>
<p><img src="/upfiles/2008/11/zhuizhuzhe.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/24/%e8%bd%a6%e5%b7%b2%e8%b4%ad%e5%be%97%ef%bc%8c%e6%8d%b7%e5%ae%89%e7%89%b9%e8%bf%bd%e9%80%90%e8%80%85540.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的一个虚拟主机配置，支持suexec+fastcgi+php+perl</title>
		<link>http://www.sunboyu.cn/2008/11/22/%e6%88%91%e7%9a%84%e4%b8%80%e4%b8%aa%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba%e9%85%8d%e7%bd%ae%ef%bc%8c%e6%94%af%e6%8c%81suexecfastcgiphpperl.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/22/%e6%88%91%e7%9a%84%e4%b8%80%e4%b8%aa%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba%e9%85%8d%e7%bd%ae%ef%bc%8c%e6%94%af%e6%8c%81suexecfastcgiphpperl.shtml#comments</comments>
		<pubDate>Sat, 22 Nov 2008 05:36:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[虚拟主机]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=392</guid>
		<description><![CDATA[&#60;virtualhost *:80&#62;
&#160;&#160; &#160;SuexecUserGroup www www
&#160;&#160; &#160;ServerAdmin webmaster@dummy-host.example.com
&#160;&#160; &#160;DocumentRoot &#34;/home/www/php&#34;
&#160;&#160; &#160;ServerName 192.168.43.129
&#160;&#160; &#160;ServerAlias www.dummy-host.example.com
&#160;&#160; &#160;ErrorLog &#34;logs/dummy-host.example.com-error_log&#34;
&#160;&#160; &#160;CustomLog &#34;logs/dummy-host.example.com-access_log&#34; combined
&#160;&#160; &#160;&#60;directory /home/www/php&#62;
&#160;&#160; &#160; &#160; &#160;AddHandler fcgid-script .php
&#160;&#160; &#160; &#160; &#160;AddHandler perl-script .pl .cgi
&#160;&#160; &#160; &#160; &#160;PerlResponseHandler ModPerl::Registry
&#160;&#160; &#160; &#160; &#160;PerlOptions +ParseHeaders
&#160;&#160; &#160; &#160; &#160;PerlOptions +SetupEnv
&#160;&#160; &#160; &#160; &#160;FCGIWrapper /home/www/php-cgi .php
&#160;&#160; &#160; &#160; &#160;Options ExecCGI +FollowSymLinks SymLinksIfOwnerMatch
&#160;&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;virtualhost *:80&gt;</li>
<li>&nbsp;&nbsp; &nbsp;SuexecUserGroup www www</li>
<li>&nbsp;&nbsp; &nbsp;ServerAdmin webmaster@dummy-host.example.com</li>
<li>&nbsp;&nbsp; &nbsp;DocumentRoot &quot;/home/www/php&quot;</li>
<li>&nbsp;&nbsp; &nbsp;ServerName 192.168.43.129</li>
<li>&nbsp;&nbsp; &nbsp;ServerAlias www.dummy-host.example.com</li>
<li>&nbsp;&nbsp; &nbsp;ErrorLog &quot;logs/dummy-host.example.com-error_log&quot;</li>
<li>&nbsp;&nbsp; &nbsp;CustomLog &quot;logs/dummy-host.example.com-access_log&quot; combined</li>
<li>&nbsp;&nbsp; &nbsp;&lt;directory /home/www/php&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;AddHandler fcgid-script .php</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;AddHandler perl-script .pl .cgi</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;PerlResponseHandler ModPerl::Registry</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;PerlOptions +ParseHeaders</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;PerlOptions +SetupEnv</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;FCGIWrapper /home/www/php-cgi .php</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Options ExecCGI +FollowSymLinks SymLinksIfOwnerMatch</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;allow from all</li>
<li>&nbsp;&nbsp; &nbsp;&lt;/directory&gt;</li>
<li>&lt;/virtualhost&gt;</li></ol></div>
<p>老一套，要注意的是各种脚本的映射，容器的合理使用。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/22/%e6%88%91%e7%9a%84%e4%b8%80%e4%b8%aa%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba%e9%85%8d%e7%bd%ae%ef%bc%8c%e6%94%af%e6%8c%81suexecfastcgiphpperl.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给APACHE增加mod_perl,使其支持perl脚本编写的程序</title>
		<link>http://www.sunboyu.cn/2008/11/21/%e7%bb%99apache%e5%a2%9e%e5%8a%a0mod_perl%e4%bd%bf%e5%85%b6%e6%94%af%e6%8c%81perl%e8%84%9a%e6%9c%ac%e7%bc%96%e5%86%99%e7%9a%84%e7%a8%8b%e5%ba%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/21/%e7%bb%99apache%e5%a2%9e%e5%8a%a0mod_perl%e4%bd%bf%e5%85%b6%e6%94%af%e6%8c%81perl%e8%84%9a%e6%9c%ac%e7%bc%96%e5%86%99%e7%9a%84%e7%a8%8b%e5%ba%8f.shtml#comments</comments>
		<pubDate>Fri, 21 Nov 2008 08:59:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[mod_perl]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[pl]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=391</guid>
		<description><![CDATA[老样子，下载 perl-5.8.8.tar.gz mod_perl-2.0-current.tar.gz perlinfo.zip
wget http://www.sunboyu.cn/sourse/perl-5.8.8.tar.gz
wget http://www.sunboyu.cn/sourse/mod_perl-2.0-current.tar.gz
wget http://www.sunboyu.cn/sourse/perlinfo.zip
tar -zxvf perl-5.8.8.tar.gz
tar -zxvf mod_perl-2.0-current.tar.gz
tar -zxvf perl-5.8.8.tar.gz
先安装perl ./Configure -h  看帮助吧，忘了
在安装 mod_perl  #perl Makefile.PL WITH_APXS=/opt/httpd-2.2.9/bin/apxs
如果报错，看看帮助，得加几个参数
然后修改 httpd.conf ,增加 LoadModule perl_module modules/mod_perl.so
最后在虚拟目录里增加
&#60;location /cgi-bin&#62;
&#160; SetHandler perl-script
&#160; PerlResponseHandler ModPerl::Registry
&#160; Options +ExecCGI
&#160; PerlOptions +ParseHeaders
&#160; PerlOptions +SetupEnv
&#60;/location&#62;
然后把perlinfo.zip里那个探针放在cgi-bin目录下，访问一下，如果显示相关信息，证明配置成功。
费了半天劲，就为了用一个awstats。
突发奇想，是不是把python和ruby也配置上？
]]></description>
			<content:encoded><![CDATA[<p>老样子，下载 perl-5.8.8.tar.gz mod_perl-2.0-current.tar.gz perlinfo.zip<br />
wget http://www.sunboyu.cn/sourse/perl-5.8.8.tar.gz<br />
wget http://www.sunboyu.cn/sourse/mod_perl-2.0-current.tar.gz<br />
wget http://www.sunboyu.cn/sourse/perlinfo.zip</p>
<p>tar -zxvf perl-5.8.8.tar.gz<br />
tar -zxvf mod_perl-2.0-current.tar.gz<br />
tar -zxvf perl-5.8.8.tar.gz</p>
<p>先安装perl ./Configure -h  看帮助吧，忘了<br />
在安装 mod_perl  #perl Makefile.PL WITH_APXS=/opt/httpd-2.2.9/bin/apxs<br />
如果报错，看看帮助，得加几个参数<br />
然后修改 httpd.conf ,增加 LoadModule perl_module modules/mod_perl.so<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">&lt;location /cgi-bin&gt;</li>
<li>&nbsp; SetHandler perl-script</li>
<li>&nbsp; PerlResponseHandler ModPerl::Registry</li>
<li>&nbsp; Options +ExecCGI</li>
<li>&nbsp; PerlOptions +ParseHeaders</li>
<li>&nbsp; PerlOptions +SetupEnv</li>
<li>&lt;/location&gt;</li></ol></div>
<p>然后把perlinfo.zip里那个探针放在cgi-bin目录下，访问一下，如果显示相关信息，证明配置成功。<br />
费了半天劲，就为了用一个awstats。<br />
突发奇想，是不是把python和ruby也配置上？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/21/%e7%bb%99apache%e5%a2%9e%e5%8a%a0mod_perl%e4%bd%bf%e5%85%b6%e6%94%af%e6%8c%81perl%e8%84%9a%e6%9c%ac%e7%bc%96%e5%86%99%e7%9a%84%e7%a8%8b%e5%ba%8f.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP中引用返回的用法</title>
		<link>http://www.sunboyu.cn/2008/11/21/php%e4%b8%ad%e5%bc%95%e7%94%a8%e8%bf%94%e5%9b%9e%e7%9a%84%e7%94%a8%e6%b3%95.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/21/php%e4%b8%ad%e5%bc%95%e7%94%a8%e8%bf%94%e5%9b%9e%e7%9a%84%e7%94%a8%e6%b3%95.shtml#comments</comments>
		<pubDate>Fri, 21 Nov 2008 02:49:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=390</guid>
		<description><![CDATA[先看个例子
function &#38;new_class( $classname )
{
&#160;&#160; &#160; &#160; &#160;static $object = array();
&#160;&#160; &#160; &#160; &#160;if(isset( $object[$classname] ))
&#160;&#160; &#160; &#160; &#160;{
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return $object[$classname];
&#160;&#160; &#160; &#160; &#160;}
&#160;&#160; &#160; &#160; &#160;$object[$classname] = &#38; new $classname();
&#160;&#160; &#160; &#160; &#160;return $object[$classname];
}
class abc
{
	public $a;
	public $b;
	function abc()
	{
		$this-&#62;a = 1;
		$this-&#62;b = 2;
	}
}
class test
{
}
&#160;
$a = new test();
$a-&#62;abc = &#38; new_class( [...]]]></description>
			<content:encoded><![CDATA[<p>先看个例子</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">function &amp;new_class( $classname )</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;static $object = array();</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(isset( $object[$classname] ))</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $object[$classname];</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$object[$classname] = &amp; new $classname();</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return $object[$classname];</li>
<li>}</li>
<li>class abc</li>
<li>{</li>
<li>	public $a;</li>
<li>	public $b;</li>
<li>	function abc()</li>
<li>	{</li>
<li>		$this-&gt;a = 1;</li>
<li>		$this-&gt;b = 2;</li>
<li>	}</li>
<li>}</li>
<li>class test</li>
<li>{</li>
<li>}</li>
<li>&nbsp;</li>
<li>$a = new test();</li>
<li>$a-&gt;abc = &amp; new_class( 'abc' );</li>
<li>print_r($a);</li></ol></div>
<p>很显然，这样做的好处是减少了实例化对象的复制，直接绑定了对象。这样减少了内存的消耗和操作的复杂。但实际上官方又说了这么一句，很是纳闷：<br />
Do not use return-by-reference to increase performance, the engine is smart enough to optimize this on its own.<br />
不要尝试用引用返回提高性能，因为PHP引擎足够聪明，自己会解决。<br />
闷中</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/21/php%e4%b8%ad%e5%bc%95%e7%94%a8%e8%bf%94%e5%9b%9e%e7%9a%84%e7%94%a8%e6%b3%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP中变量引用详解</title>
		<link>http://www.sunboyu.cn/2008/11/19/php%e4%b8%ad%e5%8f%98%e9%87%8f%e5%bc%95%e7%94%a8%e8%af%a6%e8%a7%a3.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/19/php%e4%b8%ad%e5%8f%98%e9%87%8f%e5%bc%95%e7%94%a8%e8%af%a6%e8%a7%a3.shtml#comments</comments>
		<pubDate>Wed, 19 Nov 2008 13:37:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=388</guid>
		<description><![CDATA[PHP中，引用就是用另一个变量是访问一个变量的值。但是跟C中指针不通。这里做几个测试，以说明：
$a = &#34;date&#34;;
$b = &#38;amp;$a;
echo $a; // date
echo $b; // date
$b = &#34;date1&#34;;
echo $a; // date1
echo $b; // date1
unset($a);
echo $b; // date1

可以看出，引用其实就是给一个变量增加了一个别名，而对于有别名的变量，删除这个变量只是删除了这个变量的名字，而变量的内容不变，同时，使用任何一个函数名操作一个变量，都是操作了值，值的结果可以使用任何一个别名访问。
]]></description>
			<content:encoded><![CDATA[<p>PHP中，引用就是用另一个变量是访问一个变量的值。但是跟C中指针不通。这里做几个测试，以说明：</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">$a = &quot;date&quot;;</li>
<li>$b = &amp;amp;$a;</li>
<li>echo $a; // date</li>
<li>echo $b; // date</li>
<li>$b = &quot;date1&quot;;</li>
<li>echo $a; // date1</li>
<li>echo $b; // date1</li>
<li>unset($a);</li>
<li>echo $b; // date1</li></ol></div>
<p><a href='http://www.sunboyu.cn/upfiles/2008/11/e69caae591bde5908d-1.jpg'><img src="http://www.sunboyu.cn/upfiles/2008/11/e69caae591bde5908d-1.jpg" alt="" title="e69caae591bde5908d-1" width="500" height="308" class="aligncenter size-full wp-image-389" /></a><br />
可以看出，引用其实就是给一个变量增加了一个别名，而对于有别名的变量，删除这个变量只是删除了这个变量的名字，而变量的内容不变，同时，使用任何一个函数名操作一个变量，都是操作了值，值的结果可以使用任何一个别名访问。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/19/php%e4%b8%ad%e5%8f%98%e9%87%8f%e5%bc%95%e7%94%a8%e8%af%a6%e8%a7%a3.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>励志博客</title>
		<link>http://www.sunboyu.cn/2008/11/18/%e5%8a%b1%e5%bf%97%e5%8d%9a%e5%ae%a2.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/18/%e5%8a%b1%e5%bf%97%e5%8d%9a%e5%ae%a2.shtml#comments</comments>
		<pubDate>Tue, 18 Nov 2008 13:50:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[励志]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=387</guid>
		<description><![CDATA[好多天不学习了，新的框架也迟迟没有动工，不断在看别人的东西是不错，但主要原因还是懒。最近拼命学习山地车知识，因为下年准备购置一台入门级山地车，开始加强锻炼。搞IT的人没有一个好的身体不行，作为一个男人，身体不好更不行。
经济危机，虽说跟个人离的不远，但那种无形的压力却在时时考验我们的忍受力。好多同行的公司都倒闭了，中关村做硬件的更是亏的一塌糊涂。
以前听某个励志讲座，道：人感觉通货膨胀，物价上涨，感觉到压力，其实是自身的发展滞后于社会的发展而带来的压力。如果个体的发展速度高于通货膨胀的速度，那基本是没有什么压力，而且能保持比较舒畅的生活。
总结现在，貌似发展不是太理想，只能勉强达到与经济发展持平的状态。不管做什么，保持快乐的心情是必要的，保持持续的斗志是必须的。年底，不知道如何激起斗志，也许更多的精力要放在考虑如何度过这个年关。
原公司的同事走得都差不多了，技术部第一批第二批人都走了，真正让我失落的，是自己未完成的项目，程序就跟自己的孩子一样，就那么死掉总是感觉心寒。总是想不明白，为什么公司的发展总是伴随着残忍。公司，家庭，都是社会的一部分，商跟家两个字即使写在一起，也无法体会家的温暖。
2008马上过去了，大概还有两个月的时间，两个月，六分之一年，还是值得抓住的。下一年，精力可能会分散在学历考试上一部分，时间的紧迫让人窒息。总之，自己日程表上的事情还要完成。
]]></description>
			<content:encoded><![CDATA[<p>好多天不学习了，新的框架也迟迟没有动工，不断在看别人的东西是不错，但主要原因还是懒。最近拼命学习山地车知识，因为下年准备购置一台入门级山地车，开始加强锻炼。搞IT的人没有一个好的身体不行，作为一个男人，身体不好更不行。</p>
<p>经济危机，虽说跟个人离的不远，但那种无形的压力却在时时考验我们的忍受力。好多同行的公司都倒闭了，中关村做硬件的更是亏的一塌糊涂。</p>
<p>以前听某个励志讲座，道：人感觉通货膨胀，物价上涨，感觉到压力，其实是自身的发展滞后于社会的发展而带来的压力。如果个体的发展速度高于通货膨胀的速度，那基本是没有什么压力，而且能保持比较舒畅的生活。</p>
<p>总结现在，貌似发展不是太理想，只能勉强达到与经济发展持平的状态。不管做什么，保持快乐的心情是必要的，保持持续的斗志是必须的。年底，不知道如何激起斗志，也许更多的精力要放在考虑如何度过这个年关。</p>
<p>原公司的同事走得都差不多了，技术部第一批第二批人都走了，真正让我失落的，是自己未完成的项目，程序就跟自己的孩子一样，就那么死掉总是感觉心寒。总是想不明白，为什么公司的发展总是伴随着残忍。公司，家庭，都是社会的一部分，商跟家两个字即使写在一起，也无法体会家的温暖。</p>
<p>2008马上过去了，大概还有两个月的时间，两个月，六分之一年，还是值得抓住的。下一年，精力可能会分散在学历考试上一部分，时间的紧迫让人窒息。总之，自己日程表上的事情还要完成。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/18/%e5%8a%b1%e5%bf%97%e5%8d%9a%e5%ae%a2.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MYSQL5新特性，分区表</title>
		<link>http://www.sunboyu.cn/2008/11/15/mysql5%e6%96%b0%e7%89%b9%e6%80%a7%ef%bc%8c%e5%88%86%e5%8c%ba%e8%a1%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/15/mysql5%e6%96%b0%e7%89%b9%e6%80%a7%ef%bc%8c%e5%88%86%e5%8c%ba%e8%a1%a8.shtml#comments</comments>
		<pubDate>Sat, 15 Nov 2008 09:57:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[分区]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=385</guid>
		<description><![CDATA[CU上看了一个介绍mysql5分区表的帖子，很感兴趣，如果有了分区的应用，那么设计数据库结构可以更加紧凑，而在应用上更加灵活，减少了一些不必要的视图，而在速度上也很好的提升。
分区的好处是，在物理上根据规则对表进行分离。
水平分区其实是B树索引物理上又增加了一级，当然要提高检索速度了，因为又多了一个手工索引。
垂直分区，在一些应用上会更加方便，比如discuz程序，帖子标题跟正文都是分离的，目的是降低单表容量，而有了垂直分区，可以在物理上对字段进行分离，而访问的时候又是类似视图的访问，无比爽也！！
目前还没测试分区到底有多少性能潜力可开发，回头用大的数据查询测试一下。
相关资料：http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html
]]></description>
			<content:encoded><![CDATA[<p>CU上看了一个介绍mysql5分区表的帖子，很感兴趣，如果有了分区的应用，那么设计数据库结构可以更加紧凑，而在应用上更加灵活，减少了一些不必要的视图，而在速度上也很好的提升。<br />
分区的好处是，在物理上根据规则对表进行分离。<br />
水平分区其实是B树索引物理上又增加了一级，当然要提高检索速度了，因为又多了一个手工索引。<br />
垂直分区，在一些应用上会更加方便，比如discuz程序，帖子标题跟正文都是分离的，目的是降低单表容量，而有了垂直分区，可以在物理上对字段进行分离，而访问的时候又是类似视图的访问，无比爽也！！<br />
目前还没测试分区到底有多少性能潜力可开发，回头用大的数据查询测试一下。<br />
相关资料：http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/15/mysql5%e6%96%b0%e7%89%b9%e6%80%a7%ef%bc%8c%e5%88%86%e5%8c%ba%e8%a1%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重新折腾</title>
		<link>http://www.sunboyu.cn/2008/11/15/%e9%87%8d%e6%96%b0%e6%8a%98%e8%85%be.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/15/%e9%87%8d%e6%96%b0%e6%8a%98%e8%85%be.shtml#comments</comments>
		<pubDate>Sat, 15 Nov 2008 01:12:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[发展]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=384</guid>
		<description><![CDATA[昨天翻看原来的一个程序，发现没有了数据库，只留下了一个数据字典，使用adodb构建，可是我居然放弃了使用adodb，自己写了一个针对mysql的数据持久层。
在翻看了大量的框架类之后，打算重新我的程序，这次估计能有很大的进步，不仅是个框架的概念，要做成一个兼资源管理，部署，框架的东西。东西太大，没法一步完成，还是先把核心库做出来。
今后又是一场硬仗。
]]></description>
			<content:encoded><![CDATA[<p>昨天翻看原来的一个程序，发现没有了数据库，只留下了一个数据字典，使用adodb构建，可是我居然放弃了使用adodb，自己写了一个针对mysql的数据持久层。<br />
在翻看了大量的框架类之后，打算重新我的程序，这次估计能有很大的进步，不仅是个框架的概念，要做成一个兼资源管理，部署，框架的东西。东西太大，没法一步完成，还是先把核心库做出来。<br />
今后又是一场硬仗。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/15/%e9%87%8d%e6%96%b0%e6%8a%98%e8%85%be.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>框架之争</title>
		<link>http://www.sunboyu.cn/2008/11/13/%e6%a1%86%e6%9e%b6%e4%b9%8b%e4%ba%89.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/13/%e6%a1%86%e6%9e%b6%e4%b9%8b%e4%ba%89.shtml#comments</comments>
		<pubDate>Thu, 13 Nov 2008 13:36:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=383</guid>
		<description><![CDATA[最近在看一些框架，从zendframework，cakephp，IC，都大概了解了一下，因为以前习惯全部手工代码，但后来发现这种方式过于松散，松散到不能管理，因为类，函数，虽然有自己的方式整理，但每次开展项目的时候都得重新整理，重新配置接口，过于麻烦，于是想到了框架。
框架，其实是用程序管理类库的一种方式，采用统一的接口，统一的调用风格进行操作，对于团队合作中代码可读性提供了便利。但框架也有很严重的问题，就是效率。
框架大都采用了单点的入口，然后提供url的路由功能进行解析，另外，类的调用也大都采取__autoload进行寻找，大大降低了程序的效率。
后又看了奶瓶老仙的BSMlite，深有感触。
其实，使用框架完全可以应付中小型项目，至于效率，也可以在完工后进行优化再发布，这样就会达到两全其美的效果。
]]></description>
			<content:encoded><![CDATA[<p>最近在看一些框架，从zendframework，cakephp，IC，都大概了解了一下，因为以前习惯全部手工代码，但后来发现这种方式过于松散，松散到不能管理，因为类，函数，虽然有自己的方式整理，但每次开展项目的时候都得重新整理，重新配置接口，过于麻烦，于是想到了框架。</p>
<p>框架，其实是用程序管理类库的一种方式，采用统一的接口，统一的调用风格进行操作，对于团队合作中代码可读性提供了便利。但框架也有很严重的问题，就是效率。</p>
<p>框架大都采用了单点的入口，然后提供url的路由功能进行解析，另外，类的调用也大都采取__autoload进行寻找，大大降低了程序的效率。</p>
<p>后又看了奶瓶老仙的BSMlite，深有感触。</p>
<p>其实，使用框架完全可以应付中小型项目，至于效率，也可以在完工后进行优化再发布，这样就会达到两全其美的效果。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/13/%e6%a1%86%e6%9e%b6%e4%b9%8b%e4%ba%89.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP版DES加密解密</title>
		<link>http://www.sunboyu.cn/2008/11/12/php%e7%89%88des%e5%8a%a0%e5%af%86%e8%a7%a3%e5%af%86.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/12/php%e7%89%88des%e5%8a%a0%e5%af%86%e8%a7%a3%e5%af%86.shtml#comments</comments>
		<pubDate>Wed, 12 Nov 2008 05:31:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[des]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=382</guid>
		<description><![CDATA[&#60; ?php
class DES
{
	public $key = '';
	public $iv = '';
	public $td = '';
	public $ks = '';
	//构造函数
	public function __construct( $key )
	{
		$this-&#62;td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
		$this-&#62;iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($this-&#62;td), (substr(PHP_OS,0,3)=='WIN' ? MCRYPT_RAND : MCRYPT_DEV_RANDOM));
		$this-&#62;ks = mcrypt_enc_get_key_size($this-&#62;td);
		$this-&#62;key = substr(md5($key), 0, $this-&#62;ks);
	}
	//加密函数
	function encrypt( $value )
&#160;&#160; &#160;{
		mcrypt_generic_init($this-&#62;td, $this-&#62;key, $this-&#62;iv);
		$r = mcrypt_generic( $this-&#62;td , $value );
		mcrypt_generic_deinit($this-&#62;td);
		return $r;
&#160;&#160; &#160;}
	//解密函数
	function decrypt( $value )
&#160;&#160; &#160;{
		mcrypt_generic_init($this-&#62;td, [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt; ?php</li>
<li>class DES</li>
<li>{</li>
<li>	public $key = '';</li>
<li>	public $iv = '';</li>
<li>	public $td = '';</li>
<li>	public $ks = '';</li>
<li>	//构造函数</li>
<li>	public function __construct( $key )</li>
<li>	{</li>
<li>		$this-&gt;td = mcrypt_module_open('rijndael-256', '', 'ofb', '');</li>
<li>		$this-&gt;iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($this-&gt;td), (substr(PHP_OS,0,3)=='WIN' ? MCRYPT_RAND : MCRYPT_DEV_RANDOM));</li>
<li>		$this-&gt;ks = mcrypt_enc_get_key_size($this-&gt;td);</li>
<li>		$this-&gt;key = substr(md5($key), 0, $this-&gt;ks);</li>
<li>	}</li>
<li>	//加密函数</li>
<li>	function encrypt( $value )</li>
<li>&nbsp;&nbsp; &nbsp;{</li>
<li>		mcrypt_generic_init($this-&gt;td, $this-&gt;key, $this-&gt;iv);</li>
<li>		$r = mcrypt_generic( $this-&gt;td , $value );</li>
<li>		mcrypt_generic_deinit($this-&gt;td);</li>
<li>		return $r;</li>
<li>&nbsp;&nbsp; &nbsp;}</li>
<li>	//解密函数</li>
<li>	function decrypt( $value )</li>
<li>&nbsp;&nbsp; &nbsp;{</li>
<li>		mcrypt_generic_init($this-&gt;td, $this-&gt;key, $this-&gt;iv);</li>
<li>		$r = mdecrypt_generic($this-&gt;td, $value);</li>
<li>		mcrypt_generic_deinit($this-&gt;td);</li>
<li>		return $r;</li>
<li>&nbsp;&nbsp; &nbsp;}</li>
<li>	//西沟函数</li>
<li>	function __destruct()</li>
<li>	{</li>
<li>		mcrypt_module_close($this-&gt;td);</li>
<li>	}</li>
<li>}</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>$des = new DES('FDASFDAS');</li>
<li>$content = file_get_contents('example.php');</li>
<li>echo $content;</li>
<li>echo &quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&quot;;</li>
<li>$encode = $des-&gt;encrypt( $content );</li>
<li>echo $encode;</li>
<li>echo &quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&quot;;</li>
<li>$decode = $des-&gt;decrypt($encode);</li>
<li>echo $decode;</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/12/php%e7%89%88des%e5%8a%a0%e5%af%86%e8%a7%a3%e5%af%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站的生命与灵魂</title>
		<link>http://www.sunboyu.cn/2008/11/10/%e7%bd%91%e7%ab%99%e7%9a%84%e7%94%9f%e5%91%bd%e4%b8%8e%e7%81%b5%e9%ad%82.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/10/%e7%bd%91%e7%ab%99%e7%9a%84%e7%94%9f%e5%91%bd%e4%b8%8e%e7%81%b5%e9%ad%82.shtml#comments</comments>
		<pubDate>Mon, 10 Nov 2008 14:33:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[垂直网站]]></category>
		<category><![CDATA[灵魂]]></category>
		<category><![CDATA[生命]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=380</guid>
		<description><![CDATA[今日跟一行业垂直网站站长探讨网站内容的问题，直言其网站为垃圾网站风格，后其站长，美工，程序，我，召开了小型四人会议，共同探讨。
网站之生命，网站之灵魂，是今年网站发展重点。简言之，即用户使用其意图，意义，感受，体验。
用户至某网站，其一是想得其所得，为网站之内容。其二，用户想再次到来，得到最新内容，为网站之更新。用户既得内容，又想发布己见，为止交互。用户感觉网站甚好，赞而传之，为之用户群的扩大。网站发展，其路大体相近。
－－－－－－－－－－－－－看了会历史，就成这样了，下边说人话－－－－－－－－－－－－－－－－－
好的网站，首先内容是要吸引人的，否则用户不会过来。
一个全新的网站，在建立初期可能要进行大量的内容摘抄，甚至使用一些采集工具进行采集。对于刚发展的小网站，这种做法是事半功倍的，但是，我绝对不赞成使用采集器进行采集入库，原因有三：1、采集不容易控制html标签，很容易造成页面排版跟实际风格不符，造成用户阅读困难；2、采集不容易控制内容的归类准确性，任何一个网站的分类都没有完全相同的；3、采集的网站，搜索引擎不易收录，而且排名很低，不利于推广。
解决这个问题，我建议使用手工采集的方式，按照自己网站的标准重新排版，而且加以整理，最好自己总结摘要和关键词，这样，既满足了内容充实的低成本，又以比较匹配的分类给用户好的阅读体验。
其次，行业网站的内容相对集中，但又有其占有的分类形势，因此，一个非常符合行业习惯的分类形式很有必要。好的分类，就是一个好的索引，好的导航，更容易把用户粘滞在网站上。
再之，网站初期不就建议构建在通用的CMS系统上。因为这些CMS虽然成熟，但灵活性欠佳，难以满足复杂的内容需求，而且，很容易让人认为是个垃圾站，所以，独立开发，而且作出自己的风格是必要的，这样能减少不必要的二次开发。
然后：不断的更新，意味着网站的生命，没人希望在首页看到一年前的文章。
网站的灵魂，体现在活生生的个体，不仅是活的，而且要是鲜活，有蓬勃生命力的。生命是有对外界刺激的反映的，也就是交互性。
交互性，比较容易，现在最流行的就是bbs，blog，space，sns貌似也将成标配。
现在说灵魂，灵魂是个看不见摸不着的东西，但的确能感受到。
灵魂，用在网站上更多的就是网站的文化氛围和主题，比如上mop的就是扯淡美女意淫，上天涯的就是讨论一些事情，年龄偏长。上csdn的windows环境工程师多，chinaunix上都是钟情开源的。提到这些网站的时候，我们就能感受到一种灵魂，不论是好的还是坏的，起码能让我们神经一动。一个网站能做到这种程度，才算是有了灵魂。
&#8212;&#8212;&#8212;&#8212;&#8212;题外话：关于编程语言&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
主旨是：不管用什么语言，你要保证有能力去开发维护下去，并且拥有和掌控源代码。
当你拿着一个没有源代码的网站又要改造的时候，你郁闷去吧……
]]></description>
			<content:encoded><![CDATA[<p>今日跟一行业垂直网站站长探讨网站内容的问题，直言其网站为垃圾网站风格，后其站长，美工，程序，我，召开了小型四人会议，共同探讨。</p>
<p>网站之生命，网站之灵魂，是今年网站发展重点。简言之，即用户使用其意图，意义，感受，体验。</p>
<p>用户至某网站，其一是想得其所得，为网站之内容。其二，用户想再次到来，得到最新内容，为网站之更新。用户既得内容，又想发布己见，为止交互。用户感觉网站甚好，赞而传之，为之用户群的扩大。网站发展，其路大体相近。</p>
<p>－－－－－－－－－－－－－看了会历史，就成这样了，下边说人话－－－－－－－－－－－－－－－－－</p>
<p>好的网站，首先内容是要吸引人的，否则用户不会过来。</p>
<p>一个全新的网站，在建立初期可能要进行大量的内容摘抄，甚至使用一些采集工具进行采集。对于刚发展的小网站，这种做法是事半功倍的，但是，我绝对不赞成使用采集器进行采集入库，原因有三：1、采集不容易控制html标签，很容易造成页面排版跟实际风格不符，造成用户阅读困难；2、采集不容易控制内容的归类准确性，任何一个网站的分类都没有完全相同的；3、采集的网站，搜索引擎不易收录，而且排名很低，不利于推广。</p>
<p>解决这个问题，我建议使用手工采集的方式，按照自己网站的标准重新排版，而且加以整理，最好自己总结摘要和关键词，这样，既满足了内容充实的低成本，又以比较匹配的分类给用户好的阅读体验。</p>
<p>其次，行业网站的内容相对集中，但又有其占有的分类形势，因此，一个非常符合行业习惯的分类形式很有必要。好的分类，就是一个好的索引，好的导航，更容易把用户粘滞在网站上。</p>
<p>再之，网站初期不就建议构建在通用的CMS系统上。因为这些CMS虽然成熟，但灵活性欠佳，难以满足复杂的内容需求，而且，很容易让人认为是个垃圾站，所以，独立开发，而且作出自己的风格是必要的，这样能减少不必要的二次开发。</p>
<p>然后：不断的更新，意味着网站的生命，没人希望在首页看到一年前的文章。</p>
<p>网站的灵魂，体现在活生生的个体，不仅是活的，而且要是鲜活，有蓬勃生命力的。生命是有对外界刺激的反映的，也就是交互性。</p>
<p>交互性，比较容易，现在最流行的就是bbs，blog，space，sns貌似也将成标配。</p>
<p>现在说灵魂，灵魂是个看不见摸不着的东西，但的确能感受到。</p>
<p>灵魂，用在网站上更多的就是网站的文化氛围和主题，比如上mop的就是扯淡美女意淫，上天涯的就是讨论一些事情，年龄偏长。上csdn的windows环境工程师多，chinaunix上都是钟情开源的。提到这些网站的时候，我们就能感受到一种灵魂，不论是好的还是坏的，起码能让我们神经一动。一个网站能做到这种程度，才算是有了灵魂。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;题外话：关于编程语言&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>主旨是：不管用什么语言，你要保证有能力去开发维护下去，并且拥有和掌控源代码。</p>
<p>当你拿着一个没有源代码的网站又要改造的时候，你郁闷去吧……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/10/%e7%bd%91%e7%ab%99%e7%9a%84%e7%94%9f%e5%91%bd%e4%b8%8e%e7%81%b5%e9%ad%82.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>暂别系统，回归程序设计</title>
		<link>http://www.sunboyu.cn/2008/11/10/%e6%9a%82%e5%88%ab%e7%b3%bb%e7%bb%9f%ef%bc%8c%e5%9b%9e%e5%bd%92%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/10/%e6%9a%82%e5%88%ab%e7%b3%bb%e7%bb%9f%ef%bc%8c%e5%9b%9e%e5%bd%92%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1.shtml#comments</comments>
		<pubDate>Mon, 10 Nov 2008 10:29:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[..]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=379</guid>
		<description><![CDATA[最近的linux加强学习搞得我精疲力尽，总算有了一个显著的提高。
从明天起继续开始程序和网站的设计，目标－架构设计的显著提升。
]]></description>
			<content:encoded><![CDATA[<p>最近的linux加强学习搞得我精疲力尽，总算有了一个显著的提高。</p>
<p>从明天起继续开始程序和网站的设计，目标－架构设计的显著提升。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/10/%e6%9a%82%e5%88%ab%e7%b3%bb%e7%bb%9f%ef%bc%8c%e5%9b%9e%e5%bd%92%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu系统同步跟进</title>
		<link>http://www.sunboyu.cn/2008/11/09/ubuntu%e7%b3%bb%e7%bb%9f%e5%90%8c%e6%ad%a5%e8%b7%9f%e8%bf%9b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/09/ubuntu%e7%b3%bb%e7%bb%9f%e5%90%8c%e6%ad%a5%e8%b7%9f%e8%bf%9b.shtml#comments</comments>
		<pubDate>Sun, 09 Nov 2008 06:18:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[ubuntu8.10]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=378</guid>
		<description><![CDATA[Ubuntu8.10在2008年10月30日终于到来，跟官方所要了两张作为纪念，同时刻了一张进行试用。
新版的跟8.04没看出太大的区别，对于那个立方体效果，我也没有试用。系统是让用的，不是用来玩的，关闭所有的特效，能顺利工作才是。
我用的惠普康柏 V3729 系列，系统安装后，自动识别无线网卡，这是首要的，拉线的感觉可不好。官方发布后，国内的更新源也同步更新了，cn99的不太好用，我用的lupaworld的源,比较快
deb http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu8.10在2008年10月30日终于到来，跟官方所要了两张作为纪念，同时刻了一张进行试用。<br />
新版的跟8.04没看出太大的区别，对于那个立方体效果，我也没有试用。系统是让用的，不是用来玩的，关闭所有的特效，能顺利工作才是。<br />
我用的惠普康柏 V3729 系列，系统安装后，自动识别无线网卡，这是首要的，拉线的感觉可不好。官方发布后，国内的更新源也同步更新了，cn99的不太好用，我用的lupaworld的源,比较快</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">deb http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse</li>
<li>deb http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse</li>
<li>deb http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse</li>
<li>deb http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse</li>
<li>deb http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse</li>
<li>deb-src http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse</li>
<li>deb-src http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse</li>
<li>deb-src http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse</li>
<li>deb-src http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse</li>
<li>deb-src http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse</li></ol></div>
<p>我的机器是 NVIDIA GeForce 7150M的显卡，默认是不支持的，但 apt-get upgrade后，可以用新力德自动安装显卡驱动。为这驱动我费了不少劲，官方的下载了不少，也没装上。<br />
整体装完后，更新了mplayer，可以播放mp3，但rmvb的不能播放，下载了realplaylinux版，只有图像没有声音。<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">sudo apt-get install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse </li>
<li>sudo apt-get install libxine-extracodecs totem-xine ffmpeg lame faad sox mjpegtools libxine-main1</li></ol></div>
<p>后，realplay运行正常。msn用Pidgin,qq使用官方的ubuntu版本，很流畅，不过还不能看迅雷看看，回头装wine试试。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/09/ubuntu%e7%b3%bb%e7%bb%9f%e5%90%8c%e6%ad%a5%e8%b7%9f%e8%bf%9b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux_apache_php_mysql_fcgid_suexec_高效安全的主机配置方案</title>
		<link>http://www.sunboyu.cn/2008/11/08/linux_apache_php_mysql_fcgid_suexec_%e9%ab%98%e6%95%88%e5%ae%89%e5%85%a8%e7%9a%84%e4%b8%bb%e6%9c%ba%e9%85%8d%e7%bd%ae%e6%96%b9%e6%a1%88.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/08/linux_apache_php_mysql_fcgid_suexec_%e9%ab%98%e6%95%88%e5%ae%89%e5%85%a8%e7%9a%84%e4%b8%bb%e6%9c%ba%e9%85%8d%e7%bd%ae%e6%96%b9%e6%a1%88.shtml#comments</comments>
		<pubDate>Sat, 08 Nov 2008 14:35:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[fcgid]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[suexec]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=376</guid>
		<description><![CDATA[linux+apache+php+mysql+fcgid+suexec 高效安全主机配置
最近一直在研究web服务器的配置和安全配置，基本搞完了
window2003下
iis+php(isapi)
apache+php(mod)
linux下
apache+php(mod)
apache+php(fastcgi)
四种安装方式的安全设置。其中涉及一些性能方面的调整，但没有实际的环境来测试，所以只涉及方法，不涉及具体的应用，而在安全方面下了很大的功夫。
底下我针对比较复杂的一种安装模式apache+php(fastcgi)进行详细讲解，来介绍如何配置一个安全的虚拟主机系统。
调试环境：
CentOS5
Apache2.2.9
Mysql5.0.22
PHP5.2.6
Fcgid2.4.6
需要的脚本  sunboyu-amp-fastcgi-suexec-v20-alpha
首先用脚本 unboyu-amp-fastcgi-v20-fcgid-suexec-alpha.txt 进行安装。
注：我在我的服务器上做了一个源，如果你感觉较慢的话，可以先吧软件下载到本地，然后修改一下脚本进行安装。
整体运行完后，apache是能成功运行的，但访问的话显示权限错误，底下主要是配置权限
过程用命令来显示，比较符合技术人员的习惯
1、vi /opt/httpd-2.2.9/conf/httpd.conf
修改 User daemon
Group daemon
为 User apache
Group apache
去掉 #Include conf/extra/httpd-vhosts.conf 前边的#，使其生效
2、增加一个虚拟站点的账户
groupadd www
useradd -g www www
现在应该有个目录 /home/www
3、vi /opt/httpd-2.2.9/conf/extra/httpd-vhost.conf
屏蔽或直接删除原来的站点信息
SuexecUserGroup www www #这里一定要弄清楚是做什么用的
ServerAdmin sunboyu@gmail.com
DocumentRoot &#8220;/home/www/php-cgi&#8221;
ServerName 192.168.0.5 #我测试的ip是这个，实际应该为你的域名
ServerAlias www.dummy-host.example.com #别名
ErrorLog &#8220;logs/dummy-host.example.com-error_log&#8221; #日志，用独立的名字
CustomLog &#8220;logs/dummy-host.example.com-access_log&#8221; common
SetHandler fcgid-script #我在编译完apache，附加了两个模块，fastcgi和fcgid，后一个是国人开发的，比fastcgi更稳定和易用
FCGIWrapper /home/www/php/php-cgi .php # php-cgi 是站点下的一个文件，下边建立
Options ExecCGI
allow from all
然后: x 即可
4、建立脚本 /home/www/php/php-cgi
vi /home/www/php/php-cgi
内容为
#!/bin/sh
export PHPRC=/home/www/php-cgi
export PHP_FCGI_CHILDREN=5 #创建的fcgi进程
export PHP_FCGI_MAX_REQUESTS=5000 #最大连接数
/opt/php-5.2.6/bin/php-cgi #php-cgi程序的位置
: x
5、创建独立的php.ini配置文件
cp [...]]]></description>
			<content:encoded><![CDATA[<p>linux+apache+php+mysql+fcgid+suexec 高效安全主机配置</p>
<p>最近一直在研究web服务器的配置和安全配置，基本搞完了<br />
window2003下<br />
iis+php(isapi)<br />
apache+php(mod)<br />
linux下<br />
apache+php(mod)<br />
apache+php(fastcgi)<br />
四种安装方式的安全设置。其中涉及一些性能方面的调整，但没有实际的环境来测试，所以只涉及方法，不涉及具体的应用，而在安全方面下了很大的功夫。<br />
底下我针对比较复杂的一种安装模式apache+php(fastcgi)进行详细讲解，来介绍如何配置一个安全的虚拟主机系统。</p>
<p>调试环境：</p>
<p>CentOS5<br />
Apache2.2.9<br />
Mysql5.0.22<br />
PHP5.2.6<br />
Fcgid2.4.6</p>
<p>需要的脚本  <a href='http://www.sunboyu.cn/upfiles/2008/12/sunboyu-amp-fastcgi-suexec-v20-alpha.txt'>sunboyu-amp-fastcgi-suexec-v20-alpha</a></p>
<p>首先用脚本 unboyu-amp-fastcgi-v20-fcgid-suexec-alpha.txt 进行安装。<br />
注：我在我的服务器上做了一个源，如果你感觉较慢的话，可以先吧软件下载到本地，然后修改一下脚本进行安装。</p>
<p>整体运行完后，apache是能成功运行的，但访问的话显示权限错误，底下主要是配置权限<br />
过程用命令来显示，比较符合技术人员的习惯<br />
1、vi /opt/httpd-2.2.9/conf/httpd.conf</p>
<p>修改 User daemon<br />
Group daemon<br />
为 User apache<br />
Group apache</p>
<p>去掉 #Include conf/extra/httpd-vhosts.conf 前边的#，使其生效</p>
<p>2、增加一个虚拟站点的账户</p>
<p>groupadd www<br />
useradd -g www www</p>
<p>现在应该有个目录 /home/www</p>
<p>3、vi /opt/httpd-2.2.9/conf/extra/httpd-vhost.conf</p>
<p>屏蔽或直接删除原来的站点信息<br />
SuexecUserGroup www www #这里一定要弄清楚是做什么用的<br />
ServerAdmin sunboyu@gmail.com<br />
DocumentRoot &#8220;/home/www/php-cgi&#8221;<br />
ServerName 192.168.0.5 #我测试的ip是这个，实际应该为你的域名<br />
ServerAlias www.dummy-host.example.com #别名<br />
ErrorLog &#8220;logs/dummy-host.example.com-error_log&#8221; #日志，用独立的名字<br />
CustomLog &#8220;logs/dummy-host.example.com-access_log&#8221; common</p>
<p>SetHandler fcgid-script #我在编译完apache，附加了两个模块，fastcgi和fcgid，后一个是国人开发的，比fastcgi更稳定和易用<br />
FCGIWrapper /home/www/php/php-cgi .php # php-cgi 是站点下的一个文件，下边建立<br />
Options ExecCGI<br />
allow from all<br />
然后: x 即可</p>
<p>4、建立脚本 /home/www/php/php-cgi</p>
<p>vi /home/www/php/php-cgi<br />
内容为<br />
#!/bin/sh<br />
export PHPRC=/home/www/php-cgi<br />
export PHP_FCGI_CHILDREN=5 #创建的fcgi进程<br />
export PHP_FCGI_MAX_REQUESTS=5000 #最大连接数<br />
/opt/php-5.2.6/bin/php-cgi #php-cgi程序的位置</p>
<p>: x</p>
<p>5、创建独立的php.ini配置文件<br />
cp /opt/php-5.2.6/lib/php.ini /home/www/php-cgi/php.ini</p>
<p>6、修改PHP的open_basedir</p>
<p>在/home/www/php-cgi/php.ini中找到<br />
open_basedir , 修改为<br />
open_basedir = /home/www/php<br />
注：safe_mode_exec_dir 之类的参数如果从比较变态的安全设置来说，也是应该来设定的，但我还不变态</p>
<p>7、配置权限<br />
chgrp root /opt/httpd-2.2.9/bin/suexec<br />
chmod 4751 /opt/httpd-2.2.9/bin/suexec<br />
chown www:www -R /home/www<br />
chmod 755 -R /home/www<br />
chmod 700 -R /home/www/php-cgi/php-cgi</p>
<p>8、重启<br />
server httpd restart</p>
<p>9、如果你能看到成功页面，然后就传一个PHP木马上去测试一下权限和安全的问题.<br />
如果连启动都启动不了，那就得查httpd的error_log ，suexec_log，然后去google一下，看看是哪的权限问题。</p>
<p>总结：本人教懒，整个过程调通后，也没写文档，但看到网上此类资料不多，而且有一些都没有命中要害，比如一些权限的配置和相对详尽的说明。我的注释只是把一些网上没有的解释而我弄明白后的理解写在了上边，但真正要想明白，估计还得搬着手册和google去一条条查。而且，我不是边做边写的，而是根据原来的配置盲写了一遍，估计会不少错误，总比没有强。如果有谁发现这个安全依然有问题，可以帮我提出，因为在安全方面我对自己要求很高。<br />
如果有什么需要讨论的，可以加入这个MSN群 lampper@live.cn （加为msn好友即可）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/08/linux_apache_php_mysql_fcgid_suexec_%e9%ab%98%e6%95%88%e5%ae%89%e5%85%a8%e7%9a%84%e4%b8%bb%e6%9c%ba%e9%85%8d%e7%bd%ae%e6%96%b9%e6%a1%88.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>美丽的天津，我的车！</title>
		<link>http://www.sunboyu.cn/2008/11/07/%e7%be%8e%e4%b8%bd%e7%9a%84%e5%a4%a9%e6%b4%a5%ef%bc%8c%e6%88%91%e7%9a%84%e8%bd%a6%ef%bc%81.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/07/%e7%be%8e%e4%b8%bd%e7%9a%84%e5%a4%a9%e6%b4%a5%ef%bc%8c%e6%88%91%e7%9a%84%e8%bd%a6%ef%bc%81.shtml#comments</comments>
		<pubDate>Fri, 07 Nov 2008 14:14:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[偷车]]></category>
		<category><![CDATA[自行车]]></category>
		<category><![CDATA[黑车]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=375</guid>
		<description><![CDATA[有人说，到天津没吃狗不理，不算到过天津。其实，在天津没丢过车，就不算在天津呆过。
苏苏的电动车丢了，皆大欢喜，能跟A哥交流了。他俩丢的都是电动的，看来那些贼档次有些提高。
我只丢过两辆车，不，是三辆，不，是四辆。
第一辆是140块买的非常不错的黑车，大二的时候，在商科网吧门口。去网吧上网一会，一小会，十几分钟吧，出来居然他妈的没了，晚上7点多。一般我会把车子栓电线杆上的，那次时间短，就没注意，果然丢了。不过想想，这叫变相租车，反正我买的也是黑车。
第二辆是毕业时同学卖我的一辆，当时住一个筒子楼，二楼，每天我都会把车搬楼道里，那天，我发誓，是真忘了，结果，两个小时就丢了，在六纬路附近的一个筒子楼。那车破的……真服那个贼。
第三辆，是朋友送的一辆破车，太破了，实在没法要了，就给我了……想不到，此车也在八里台附近给丢了，这车还是栓在柱子上被偷的，可能是收破烂的眼不好使，没看见我的锁，一不小心给打开了，就拣走了。
第四辆，是在第三辆车丢后，我顺便在八里台某派出所的门口买了辆黑车，好像这么说有点太那个，我的确是在那条小河边上的黑车市场买的，50块，挺好一车，骑了大概半年，最后那是我要来北京，不值当带一车过来，就锁在了刘家房子某个小区，结果，那么结实的一个锁，还是被高手打开了。
这是我在天津所丢的四辆车。
其实，我知道我买的车也许都是黑车，但也没办法，新车比旧车丢的更快，这事扔派出所估计也不值当的，就当租车。在天津三年，我发现了几个大的二手车交易市场（这么叫比较文明），如此大的市场，我怎能不买二手。
现在来了北京，似乎好点，起码高档的小区治安还是不错，写字楼的保安也都挺好。来北京我这是第三辆车了，第一辆买的是天津那种小厂组装的车，不贵，骑了一年，骑烂了。第二辆是在清河小营市场买的一辆永久，不是翻新就是假货。fuck奸商。现在骑的是一辆捷安特山地，非常不错。明年计划升级美利达公爵系列。
]]></description>
			<content:encoded><![CDATA[<p>有人说，到天津没吃狗不理，不算到过天津。其实，在天津没丢过车，就不算在天津呆过。</p>
<p>苏苏的电动车丢了，皆大欢喜，能跟A哥交流了。他俩丢的都是电动的，看来那些贼档次有些提高。</p>
<p>我只丢过两辆车，不，是三辆，不，是四辆。</p>
<p>第一辆是140块买的非常不错的黑车，大二的时候，在商科网吧门口。去网吧上网一会，一小会，十几分钟吧，出来居然他妈的没了，晚上7点多。一般我会把车子栓电线杆上的，那次时间短，就没注意，果然丢了。不过想想，这叫变相租车，反正我买的也是黑车。</p>
<p>第二辆是毕业时同学卖我的一辆，当时住一个筒子楼，二楼，每天我都会把车搬楼道里，那天，我发誓，是真忘了，结果，两个小时就丢了，在六纬路附近的一个筒子楼。那车破的……真服那个贼。</p>
<p>第三辆，是朋友送的一辆破车，太破了，实在没法要了，就给我了……想不到，此车也在八里台附近给丢了，这车还是栓在柱子上被偷的，可能是收破烂的眼不好使，没看见我的锁，一不小心给打开了，就拣走了。</p>
<p>第四辆，是在第三辆车丢后，我顺便在八里台某派出所的门口买了辆黑车，好像这么说有点太那个，我的确是在那条小河边上的黑车市场买的，50块，挺好一车，骑了大概半年，最后那是我要来北京，不值当带一车过来，就锁在了刘家房子某个小区，结果，那么结实的一个锁，还是被高手打开了。</p>
<p>这是我在天津所丢的四辆车。</p>
<p>其实，我知道我买的车也许都是黑车，但也没办法，新车比旧车丢的更快，这事扔派出所估计也不值当的，就当租车。在天津三年，我发现了几个大的二手车交易市场（这么叫比较文明），如此大的市场，我怎能不买二手。</p>
<p>现在来了北京，似乎好点，起码高档的小区治安还是不错，写字楼的保安也都挺好。来北京我这是第三辆车了，第一辆买的是天津那种小厂组装的车，不贵，骑了一年，骑烂了。第二辆是在清河小营市场买的一辆永久，不是翻新就是假货。fuck奸商。现在骑的是一辆捷安特山地，非常不错。明年计划升级美利达公爵系列。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/07/%e7%be%8e%e4%b8%bd%e7%9a%84%e5%a4%a9%e6%b4%a5%ef%bc%8c%e6%88%91%e7%9a%84%e8%bd%a6%ef%bc%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一生的创业</title>
		<link>http://www.sunboyu.cn/2008/11/07/%e4%b8%80%e7%94%9f%e7%9a%84%e5%88%9b%e4%b8%9a.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/07/%e4%b8%80%e7%94%9f%e7%9a%84%e5%88%9b%e4%b8%9a.shtml#comments</comments>
		<pubDate>Fri, 07 Nov 2008 12:48:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[创业]]></category>
		<category><![CDATA[大学生]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=374</guid>
		<description><![CDATA[创业这个词其实前几年并不常用，但随着高校扩招，大量毕业生难以就业，上边为了稳定人心，解决这些问题，开始提倡创业这个事情。
随着社会的开放，大学生意识的提高，有不少的大学生和毕业生确实以自己的能力开创了自己的一片天地。然而在我们讨论大学生是不是应该去做这些事情的时候，媒体却在大肆宣传大学生的创业成果，好像在全国学子的心上挠痒痒。
在媒体上，我们看到大量大学生创业的成功案例，包括类似比尔盖茨之类，但他们宣传的大都是一个人得到一个某某机会，然后如何如何成功，殊不知，创业成功毕竟是少数，太多的人处于创业萌芽或者无准备状态的创业。
这里，暂且不去分析他们为何成功和为何失败，有创业的心，固然是好事，值得我们提倡，但在创业背后，我们需要什么，如何创业，却值得我们深思。
我身边很多人在创业，当然，也有成功的，很多人属于破釜沉舟式的创业，我很敬佩这种精神，还有一些是摸着石头过河型的，这样的人就比较危险了，因为在当今市场上，失败的几率要大。
我感觉，创业是一辈子的事情，人自己，是业的一个重要组成部分，我们自己的健康，我们的自身素质，我们在这个社会中的适应能力，都将是我们发展的一些重要因素。创业成功，首先是个体的成功，然后是团队的成功，集体的成功。因此，创业是一生的创业。
]]></description>
			<content:encoded><![CDATA[<p>创业这个词其实前几年并不常用，但随着高校扩招，大量毕业生难以就业，上边为了稳定人心，解决这些问题，开始提倡创业这个事情。</p>
<p>随着社会的开放，大学生意识的提高，有不少的大学生和毕业生确实以自己的能力开创了自己的一片天地。然而在我们讨论大学生是不是应该去做这些事情的时候，媒体却在大肆宣传大学生的创业成果，好像在全国学子的心上挠痒痒。</p>
<p>在媒体上，我们看到大量大学生创业的成功案例，包括类似比尔盖茨之类，但他们宣传的大都是一个人得到一个某某机会，然后如何如何成功，殊不知，创业成功毕竟是少数，太多的人处于创业萌芽或者无准备状态的创业。</p>
<p>这里，暂且不去分析他们为何成功和为何失败，有创业的心，固然是好事，值得我们提倡，但在创业背后，我们需要什么，如何创业，却值得我们深思。</p>
<p>我身边很多人在创业，当然，也有成功的，很多人属于破釜沉舟式的创业，我很敬佩这种精神，还有一些是摸着石头过河型的，这样的人就比较危险了，因为在当今市场上，失败的几率要大。</p>
<p>我感觉，创业是一辈子的事情，人自己，是业的一个重要组成部分，我们自己的健康，我们的自身素质，我们在这个社会中的适应能力，都将是我们发展的一些重要因素。创业成功，首先是个体的成功，然后是团队的成功，集体的成功。因此，创业是一生的创业。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/07/%e4%b8%80%e7%94%9f%e7%9a%84%e5%88%9b%e4%b8%9a.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>伟大的进步</title>
		<link>http://www.sunboyu.cn/2008/11/05/%e4%bc%9f%e5%a4%a7%e7%9a%84%e8%bf%9b%e6%ad%a5.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/05/%e4%bc%9f%e5%a4%a7%e7%9a%84%e8%bf%9b%e6%ad%a5.shtml#comments</comments>
		<pubDate>Wed, 05 Nov 2008 14:09:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[虚拟主机]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=373</guid>
		<description><![CDATA[博客很久没更新，导致alexa排名暴跌，因为最近在研究linux下apache＋php的系统安全问题，这个问题困扰了好久。因为配置iis（之前有此文章）的时候，我设置了非常安全的iis站点用户和权限的隔离，但在linux下，总没有找到好的方法。
最近查阅了大量的资料，主要是了解apache的账户机制，suexec的工作原理，然后又翻看了大量的资料，终于搞清楚了一套完整的安全的lamp虚拟主机配置方法，能达到站点的权限隔离，进程账户的相对独立，以及对性能的控制。
在学习的过程中，常犯的错误，就是轻敌。总感觉这事不难，一会就搞定。但实际头疼了半个月。另外就是不看日志。到最后两天，大量的调试是在对比日志和理解日志的涵义，针对日志去进行配置。从我学linux的过程来看，看手册，翻日志，分析别人的案例，是学习的最佳途径。
关于安全配置linux虚拟主机的过程，我将另写文章。
]]></description>
			<content:encoded><![CDATA[<p>博客很久没更新，导致alexa排名暴跌，因为最近在研究linux下apache＋php的系统安全问题，这个问题困扰了好久。因为配置iis（之前有此文章）的时候，我设置了非常安全的iis站点用户和权限的隔离，但在linux下，总没有找到好的方法。</p>
<p>最近查阅了大量的资料，主要是了解apache的账户机制，suexec的工作原理，然后又翻看了大量的资料，终于搞清楚了一套完整的安全的lamp虚拟主机配置方法，能达到站点的权限隔离，进程账户的相对独立，以及对性能的控制。</p>
<p>在学习的过程中，常犯的错误，就是轻敌。总感觉这事不难，一会就搞定。但实际头疼了半个月。另外就是不看日志。到最后两天，大量的调试是在对比日志和理解日志的涵义，针对日志去进行配置。从我学linux的过程来看，看手册，翻日志，分析别人的案例，是学习的最佳途径。</p>
<p>关于安全配置linux虚拟主机的过程，我将另写文章。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/05/%e4%bc%9f%e5%a4%a7%e7%9a%84%e8%bf%9b%e6%ad%a5.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS安全机制详解</title>
		<link>http://www.sunboyu.cn/2008/11/04/iis%e5%ae%89%e5%85%a8%e6%9c%ba%e5%88%b6%e8%af%a6%e8%a7%a3.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/04/iis%e5%ae%89%e5%85%a8%e6%9c%ba%e5%88%b6%e8%af%a6%e8%a7%a3.shtml#comments</comments>
		<pubDate>Tue, 04 Nov 2008 10:11:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[权限]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=371</guid>
		<description><![CDATA[2005年前后曾经风靡过一阵旁注入侵，其利用的原理是所有的iis站点使用了统一的进程账户，而对所有站点设置了同样的权限，因此，当你有一个站点的权限的时候，就等于拥有了所有站点的权限。
在虚拟主机上，这么设置，那生意真的是没法做了，因此，基于iis的虚拟主机都用了独立的iis进程账户进行权限的隔离。
现简述安全原理：
现有 site1，site2，site3 三个站点，三个站点目录结构如下
D:\WWW\site1  D:\WWW\site2   D:\WWW\site3
默认会使用 IUSR_SUN 这个账户作为Internet来宾账户，而 IIS_WPG作为IIS工作进程组。那么会在D:\WWW 这个文件夹上使IUSR_SUN有用读写执行脚本的权限，而三个站点的的匿名访问用户均为IUSR_SUN。这样，虽然脚本（asp，php等）运行在D:\WWW\site1目录下，但对D:\WWW\site2   D:\WWW\site3都是有读写权限的。
如果服务器上的站点是一个公司的，那样还好，如果是给不同的用户来用，问题不言而喻。
因此，我们要用独立的账户和权限来运行三个站点。
我们设置三个用户  IUSR_SUN_1  IUSR_SUN_2   IUSR_SUN_3 ,只归入guests组（如果属于多个组，windows会按照权限的交集来计算）三个用户分别作为 D:\WWW\site1  D:\WWW\site2   D:\WWW\site3的匿名访问用户。然后分别给 D:\WWW\site1  IUSR_SUN_1用户读写等权限，依次设置。
这样，每个网站的用户权限被禁锢在自己的文件夹（站点）下，就保证了站点权限的隔离。
－－－－－－附录－－－－－－
在设置一个站点的时候，我按照最严格的权限进行设定，但发现一个问题，有些PHP的脚本不能执行。后来发现，当使用require(&#8221;./a.php&#8221;)，这种linux风格的路径的时候，会出问题。后查资料发现，这样访问的时候，脚本需要对本层目录的上一层拥有读的权限，所以，我们在独立设置对上层有个读的权限，这样问题就可以解决。
这个问题发生在ThinkSNS程序中，他们大量使用了linux风格的路径包含方式，因此在权限严格的iis上就跑不动了。而discuz的程序大都不使用这种方式，在兼容性上下了很大功夫。
]]></description>
			<content:encoded><![CDATA[<p>2005年前后曾经风靡过一阵旁注入侵，其利用的原理是所有的iis站点使用了统一的进程账户，而对所有站点设置了同样的权限，因此，当你有一个站点的权限的时候，就等于拥有了所有站点的权限。</p>
<p>在虚拟主机上，这么设置，那生意真的是没法做了，因此，基于iis的虚拟主机都用了独立的iis进程账户进行权限的隔离。</p>
<p>现简述安全原理：</p>
<p>现有 site1，site2，site3 三个站点，三个站点目录结构如下</p>
<p>D:\WWW\site1  D:\WWW\site2   D:\WWW\site3</p>
<p>默认会使用 IUSR_SUN 这个账户作为Internet来宾账户，而 IIS_WPG作为IIS工作进程组。那么会在D:\WWW 这个文件夹上使IUSR_SUN有用读写执行脚本的权限，而三个站点的的匿名访问用户均为IUSR_SUN。这样，虽然脚本（asp，php等）运行在D:\WWW\site1目录下，但对D:\WWW\site2   D:\WWW\site3都是有读写权限的。</p>
<p>如果服务器上的站点是一个公司的，那样还好，如果是给不同的用户来用，问题不言而喻。</p>
<p>因此，我们要用独立的账户和权限来运行三个站点。</p>
<p>我们设置三个用户  IUSR_SUN_1  IUSR_SUN_2   IUSR_SUN_3 ,只归入guests组（如果属于多个组，windows会按照权限的交集来计算）三个用户分别作为 D:\WWW\site1  D:\WWW\site2   D:\WWW\site3的匿名访问用户。然后分别给 D:\WWW\site1  IUSR_SUN_1用户读写等权限，依次设置。</p>
<p>这样，每个网站的用户权限被禁锢在自己的文件夹（站点）下，就保证了站点权限的隔离。</p>
<p>－－－－－－附录－－－－－－</p>
<p>在设置一个站点的时候，我按照最严格的权限进行设定，但发现一个问题，有些PHP的脚本不能执行。后来发现，当使用require(&#8221;./a.php&#8221;)，这种linux风格的路径的时候，会出问题。后查资料发现，这样访问的时候，脚本需要对本层目录的上一层拥有读的权限，所以，我们在独立设置对上层有个读的权限，这样问题就可以解决。</p>
<p>这个问题发生在ThinkSNS程序中，他们大量使用了linux风格的路径包含方式，因此在权限严格的iis上就跑不动了。而discuz的程序大都不使用这种方式，在兼容性上下了很大功夫。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/04/iis%e5%ae%89%e5%85%a8%e6%9c%ba%e5%88%b6%e8%af%a6%e8%a7%a3.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amp Linux自动安装脚本（FastCgi）2.0发布</title>
		<link>http://www.sunboyu.cn/2008/11/03/amp-linux%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%ef%bc%88fastcgi%ef%bc%8920%e5%8f%91%e5%b8%83.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/03/amp-linux%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%ef%bc%88fastcgi%ef%bc%8920%e5%8f%91%e5%b8%83.shtml#comments</comments>
		<pubDate>Mon, 03 Nov 2008 09:51:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=369</guid>
		<description><![CDATA[sunboyu-amp-fastcgi-v20-alpha
本来模块方式跟fastcgi方式的版本可以同步发布的，单由于不争气的hp本本，推迟N天发布。
目前本版本可以安装使用，但由于启用了suexec的安全方式，在虚拟主机下还不能应用，因为linux权限系统很严格，目前还没有彻底搞透suexec的权限机制。
估计以下的几天都得搞这个问题了。我从google上搜索了不少的文章，可惜权限细节配置的方面不多，即使有详细的，也没有说明白原理，所以还是得自己来搞了。
这个版本的更新，跟模块方式编译的类似，如下：
1、增加 OSSP mm 库，PHP可以在此库的支持下保存session到内存 http://www.ossp.org/pkg/lib/mm/
2、增加eaccelerator-0.9.5.2 opcode缓存  http://eaccelerator.net/
3、Apache开启status模块
4、增加了suexec安全访问方式的配置（研究调试中）。
欢迎大家加入LAMPer msn群 lampper@live.cn 加这个号为msn好友即可
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/11/sunboyu-amp-fastcgi-v20-alpha.txt">sunboyu-amp-fastcgi-v20-alpha</a></p>
<p>本来模块方式跟fastcgi方式的版本可以同步发布的，单由于不争气的hp本本，推迟N天发布。</p>
<p>目前本版本可以安装使用，但由于启用了suexec的安全方式，在虚拟主机下还不能应用，因为linux权限系统很严格，目前还没有彻底搞透suexec的权限机制。</p>
<p>估计以下的几天都得搞这个问题了。我从google上搜索了不少的文章，可惜权限细节配置的方面不多，即使有详细的，也没有说明白原理，所以还是得自己来搞了。</p>
<p>这个版本的更新，跟模块方式编译的类似，如下：</p>
<p>1、增加 OSSP mm 库，PHP可以在此库的支持下保存session到内存 http://www.ossp.org/pkg/lib/mm/</p>
<p>2、增加eaccelerator-0.9.5.2 opcode缓存  http://eaccelerator.net/</p>
<p>3、Apache开启status模块</p>
<p>4、增加了suexec安全访问方式的配置（研究调试中）。</p>
<p>欢迎大家加入LAMPer msn群 lampper@live.cn 加这个号为msn好友即可</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/03/amp-linux%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%ef%bc%88fastcgi%ef%bc%8920%e5%8f%91%e5%b8%83.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重于整好了倒霉的惠普</title>
		<link>http://www.sunboyu.cn/2008/11/01/%e9%87%8d%e4%ba%8e%e6%95%b4%e5%a5%bd%e4%ba%86%e5%80%92%e9%9c%89%e7%9a%84%e6%83%a0%e6%99%ae.shtml</link>
		<comments>http://www.sunboyu.cn/2008/11/01/%e9%87%8d%e4%ba%8e%e6%95%b4%e5%a5%bd%e4%ba%86%e5%80%92%e9%9c%89%e7%9a%84%e6%83%a0%e6%99%ae.shtml#comments</comments>
		<pubDate>Sat, 01 Nov 2008 02:28:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=368</guid>
		<description><![CDATA[首先，继续鄙视hp V3000系列本子，发热量太大，机身反过来直接能摊煎饼，结果造成频繁死机，多种方式解决无果，买散热底拖一个，暂时解决问题。
不过有散热底拖存在的情况下，CPU负载过高的时候发热依然很严重，恐怕也盯不了太久。
另外就是v3000系列的设计，估计设计师也是近亲结婚的产物，太不人性化了，建议买此品牌此系列的朋友谨记教诲。
]]></description>
			<content:encoded><![CDATA[<p>首先，继续鄙视hp V3000系列本子，发热量太大，机身反过来直接能摊煎饼，结果造成频繁死机，多种方式解决无果，买散热底拖一个，暂时解决问题。</p>
<p>不过有散热底拖存在的情况下，CPU负载过高的时候发热依然很严重，恐怕也盯不了太久。</p>
<p>另外就是v3000系列的设计，估计设计师也是近亲结婚的产物，太不人性化了，建议买此品牌此系列的朋友谨记教诲。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/11/01/%e9%87%8d%e4%ba%8e%e6%95%b4%e5%a5%bd%e4%ba%86%e5%80%92%e9%9c%89%e7%9a%84%e6%83%a0%e6%99%ae.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache开启Gzip压缩</title>
		<link>http://www.sunboyu.cn/2008/10/28/apache%e5%bc%80%e5%90%afgzip%e5%8e%8b%e7%bc%a9.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/28/apache%e5%bc%80%e5%90%afgzip%e5%8e%8b%e7%bc%a9.shtml#comments</comments>
		<pubDate>Tue, 28 Oct 2008 05:57:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[APACHE]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[deflate]]></category>
		<category><![CDATA[mod_gzip]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=366</guid>
		<description><![CDATA[文档位置 http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_deflate.html
Apache2中的实时压缩解压的模块编译在mod_deflate模块中，替换了原来的mod_gzip模块。
编译apache的时候 &#8211;enable-deflate  这个参数是默认开启的，编译完会有mod_deflate模块。
配置站点：
如果我们想使一个文件传输的时候进行加密，我们在站点配置文件里增加这样的配置
&#60;Location /&#62;
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif&#124;jpe?g&#124;png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
&#60;/Location&#62;
这样，/opt/httpd-2.2.9/htdocs目录下的所有mime类型为text/html的文件就可以启用
未压缩的http头



Date
Tue, 28 Oct 2008 13:04:15 GMT


Server
Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6


Last-Modified
Tue, 28 Oct 2008 12:51:52 GMT


Etag
&#8220;30623-55fda-45a4fb62a8a00&#8243;


Accept-Ranges
bytes


Content-Length
352218


Content-Type
text/html


Vary
Accept-Encoding,User-Agent



压缩后的http头



Date
Tue, 28 Oct 2008 13:07:39 GMT


Server
Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6


Last-Modified
Tue, 28 Oct 2008 12:51:52 GMT


Etag
&#8220;30623-55fda-45a4fb62a8a00&#8243;-gzip


Accept-Ranges
bytes


Vary
Accept-Encoding,User-Agent


Content-Encoding
gzip


Content-Length
2778


Keep-Alive
timeout=5, max=100


Connection
Keep-Alive


Content-Type
text/html



原来length为352218，压缩后为2778，效果还是很明显的。
不过对于length很小的文件，是不进行压缩的。
具体的一些调整的细节，可以看原apache手册。
]]></description>
			<content:encoded><![CDATA[<p>文档位置 http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_deflate.html</p>
<p>Apache2中的实时压缩解压的模块编译在mod_deflate模块中，替换了原来的mod_gzip模块。</p>
<p>编译apache的时候 &#8211;enable-deflate  这个参数是默认开启的，编译完会有mod_deflate模块。</p>
<p>配置站点：</p>
<p>如果我们想使一个文件传输的时候进行加密，我们在站点配置文件里增加这样的配置</p>
<p>&lt;Location /&gt;<br />
SetOutputFilter DEFLATE<br />
BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html<br />
SetEnvIfNoCase Request_URI \<br />
\.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
Header append Vary User-Agent env=!dont-vary<br />
&lt;/Location&gt;<br />
这样，/opt/httpd-2.2.9/htdocs目录下的所有mime类型为text/html的文件就可以启用</p>
<p>未压缩的http头</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="netInfoParamName">Date</td>
<td class="netInfoParamValue">Tue, 28 Oct 2008 13:04:15 GMT</td>
</tr>
<tr>
<td class="netInfoParamName">Server</td>
<td class="netInfoParamValue">Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6</td>
</tr>
<tr>
<td class="netInfoParamName">Last-Modified</td>
<td class="netInfoParamValue">Tue, 28 Oct 2008 12:51:52 GMT</td>
</tr>
<tr>
<td class="netInfoParamName">Etag</td>
<td class="netInfoParamValue">&#8220;30623-55fda-45a4fb62a8a00&#8243;</td>
</tr>
<tr>
<td class="netInfoParamName">Accept-Ranges</td>
<td class="netInfoParamValue">bytes</td>
</tr>
<tr>
<td class="netInfoParamName">Content-Length</td>
<td class="netInfoParamValue">352218</td>
</tr>
<tr>
<td class="netInfoParamName">Content-Type</td>
<td class="netInfoParamValue">text/html</td>
</tr>
<tr>
<td class="netInfoParamName">Vary</td>
<td class="netInfoParamValue">Accept-Encoding,User-Agent</td>
</tr>
</tbody>
</table>
<p>压缩后的http头</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="netInfoParamName">Date</td>
<td class="netInfoParamValue">Tue, 28 Oct 2008 13:07:39 GMT</td>
</tr>
<tr>
<td class="netInfoParamName">Server</td>
<td class="netInfoParamValue">Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6</td>
</tr>
<tr>
<td class="netInfoParamName">Last-Modified</td>
<td class="netInfoParamValue">Tue, 28 Oct 2008 12:51:52 GMT</td>
</tr>
<tr>
<td class="netInfoParamName">Etag</td>
<td class="netInfoParamValue">&#8220;30623-55fda-45a4fb62a8a00&#8243;-gzip</td>
</tr>
<tr>
<td class="netInfoParamName">Accept-Ranges</td>
<td class="netInfoParamValue">bytes</td>
</tr>
<tr>
<td class="netInfoParamName">Vary</td>
<td class="netInfoParamValue">Accept-Encoding,User-Agent</td>
</tr>
<tr>
<td class="netInfoParamName">Content-Encoding</td>
<td class="netInfoParamValue">gzip</td>
</tr>
<tr>
<td class="netInfoParamName">Content-Length</td>
<td class="netInfoParamValue">2778</td>
</tr>
<tr>
<td class="netInfoParamName">Keep-Alive</td>
<td class="netInfoParamValue">timeout=5, max=100</td>
</tr>
<tr>
<td class="netInfoParamName">Connection</td>
<td class="netInfoParamValue">Keep-Alive</td>
</tr>
<tr>
<td class="netInfoParamName">Content-Type</td>
<td class="netInfoParamValue">text/html</td>
</tr>
</tbody>
</table>
<p>原来length为352218，压缩后为2778，效果还是很明显的。</p>
<p>不过对于length很小的文件，是不进行压缩的。</p>
<p>具体的一些调整的细节，可以看原apache手册。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/28/apache%e5%bc%80%e5%90%afgzip%e5%8e%8b%e7%bc%a9.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amp Linux自动安装脚本（模块方式安装）2.0发布</title>
		<link>http://www.sunboyu.cn/2008/10/27/amp-linux%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%ef%bc%88%e6%a8%a1%e5%9d%97%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85%ef%bc%8920%e5%8f%91%e5%b8%83.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/27/amp-linux%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%ef%bc%88%e6%a8%a1%e5%9d%97%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85%ef%bc%8920%e5%8f%91%e5%b8%83.shtml#comments</comments>
		<pubDate>Mon, 27 Oct 2008 02:44:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[amp]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[v2.0]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=364</guid>
		<description><![CDATA[sunboyu-amp-mod-v20-alpha
更改记录：
1、增加 OSSP mm 库，PHP可以在此库的支持下保存session到内存 http://www.ossp.org/pkg/lib/mm/
2、增加eaccelerator-0.9.5.2 opcode缓存  http://eaccelerator.net/
3、Apache开启status模块
本软件无stable版本，因为脚本并不是一个兼容各个linux系统的脚本，而是我在平时使用时做个一个简单批处理，来简化服务器配置的繁琐过程.
我使用的环境是Centos5.0，使用的定制安装，安装尽量最小化（本人有系统洁癖），以后系统还会更简化，我会尽量得使用编译的方式安装所有的软件，并不是说自己编译的就肯定比别人编译的好，参数更优化，而是通过这些繁琐的东西来提高对服务器性能跟参数之间关系的认识。
建议网友在做服务器的时候，不要按照我的默认脚本安装，因为这个脚本只注重了功能的大而全而并未关注性能和稳定，所以，本脚本只适合大家去研究，或者学习这个过程。
以后的版本会逐渐把一些优化的思想加入，但终归是个人的一些思想，不一定适合所有人，而且，这只是一个单机服务器的配置过程，对于大型系统是不适合的。
欢迎大家加入LAMP MSN 群交流 ( 加 lampper@live.cn 为msn好友)
顺便BS一下惠普笔记本V3000系列＋宇瞻内存，太不兼容了，以至我调试脚本的时候不断死机（调试一遍得一小时呢－－&#124;）
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/10/sunboyu-amp-mod-v20-alpha.txt">sunboyu-amp-mod-v20-alpha</a></p>
<p>更改记录：</p>
<p>1、增加 OSSP mm 库，PHP可以在此库的支持下保存session到内存 http://www.ossp.org/pkg/lib/mm/</p>
<p>2、增加eaccelerator-0.9.5.2 opcode缓存  http://eaccelerator.net/</p>
<p>3、Apache开启status模块</p>
<p>本软件无stable版本，因为脚本并不是一个兼容各个linux系统的脚本，而是我在平时使用时做个一个简单批处理，来简化服务器配置的繁琐过程.</p>
<p>我使用的环境是Centos5.0，使用的定制安装，安装尽量最小化（本人有系统洁癖），以后系统还会更简化，我会尽量得使用编译的方式安装所有的软件，并不是说自己编译的就肯定比别人编译的好，参数更优化，而是通过这些繁琐的东西来提高对服务器性能跟参数之间关系的认识。</p>
<p>建议网友在做服务器的时候，不要按照我的默认脚本安装，因为这个脚本只注重了功能的大而全而并未关注性能和稳定，所以，本脚本只适合大家去研究，或者学习这个过程。</p>
<p>以后的版本会逐渐把一些优化的思想加入，但终归是个人的一些思想，不一定适合所有人，而且，这只是一个单机服务器的配置过程，对于大型系统是不适合的。</p>
<p>欢迎大家加入LAMP MSN 群交流 ( 加 lampper@live.cn 为msn好友)</p>
<p>顺便BS一下惠普笔记本V3000系列＋宇瞻内存，太不兼容了，以至我调试脚本的时候不断死机（调试一遍得一小时呢－－|）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/27/amp-linux%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e8%84%9a%e6%9c%ac%ef%bc%88%e6%a8%a1%e5%9d%97%e6%96%b9%e5%bc%8f%e5%ae%89%e8%a3%85%ef%bc%8920%e5%8f%91%e5%b8%83.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浅谈公司管理中员工积极性问题</title>
		<link>http://www.sunboyu.cn/2008/10/24/%e6%b5%85%e8%b0%88%e5%85%ac%e5%8f%b8%e7%ae%a1%e7%90%86%e4%b8%ad%e5%91%98%e5%b7%a5%e7%a7%af%e6%9e%81%e6%80%a7%e9%97%ae%e9%a2%98.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/24/%e6%b5%85%e8%b0%88%e5%85%ac%e5%8f%b8%e7%ae%a1%e7%90%86%e4%b8%ad%e5%91%98%e5%b7%a5%e7%a7%af%e6%9e%81%e6%80%a7%e9%97%ae%e9%a2%98.shtml#comments</comments>
		<pubDate>Fri, 24 Oct 2008 14:19:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[管理]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=363</guid>
		<description><![CDATA[先说一个小故事，也是别人博客上看来的：
一群小孩每天都在一个老人门口嬉戏，而且欢笑的声音很大，老人很苦恼。
于是老人想了个办法，一天给每个孩子1一块钱，说：你们的高兴也让我很愉快，这是给你们的报酬。第二天，又给了每个孩子5毛钱，第三天，只给了他们一毛钱。
于是，孩子们愤恨得离开了：这么点钱也想买快乐！
老人又得到了清净。
现在分析一下孩子的心理：在得到老人的钱之前，他们的快乐是发自内心的，快乐完全是为了自己，快乐这个动作的发出者和受益者都是孩子，因此孩子有足够的动力和理由去快乐。而老人给他们钱，并暗示他们的快乐有其他意义的时候，孩子们快乐的动机发生了改变，目的从满足自身的快乐变成了换得金钱。当他们的动机改变，而期望的目的值没有达到的时候，他们放弃了这件事情。
这种心理每天都在我们身边发生。
先说普通的公司员工：员工来到公司，首先进入试用期，如果他期望得到这份工作，会不与余力得去发挥自己，表现自己，以获得领导和上司的赏识。这事，工作的动力完全发自内心。等试用期过后，会有所放松，因为这时，工作的目的是为了一份薪水。当然，有的员工会一直保持，有的员工会堕落，也有的员工会继续保持实干的作风。不管是哪种员工，总会为了自己的目标努力，升值、加薪，总尤其是最后一种，当他获得的报酬不断低于心理预期，那他的行为就跟那一群逃跑的小孩一样。
因此，现在很多中小型尤其创业公司提出了互利共赢的合作模式，不是简单的公司员工关系，而把公司的期权股份等分给员工，以这种方式使员工建立起创业伙伴的关系，充分调动员工的工作热情，往往能取得很好的效果。
另外，再说积极型员工：有些人把工作看成自己的事业，因此，这种人不管在哪里都会保持高涨的工作热情，比如爱因斯坦这种人，不在乎为谁服务，不在乎结果，只在乎自己做了什么。这种员工是可遇不可求的，他们甚至不要求多高的薪水和预期，唯一的要求就是自身价值的体现。但这种员工往往是对手挖墙脚的对象。
其实，大部分人都遵循这么一个规律，管理一个公司，更多的是要调用员工的积极性。而对于员工来说，把工作的动机变为自发和主动，在这个过程中努力提高自己，才是正道。
]]></description>
			<content:encoded><![CDATA[<p>先说一个小故事，也是别人博客上看来的：</p>
<p>一群小孩每天都在一个老人门口嬉戏，而且欢笑的声音很大，老人很苦恼。</p>
<p>于是老人想了个办法，一天给每个孩子1一块钱，说：你们的高兴也让我很愉快，这是给你们的报酬。第二天，又给了每个孩子5毛钱，第三天，只给了他们一毛钱。</p>
<p>于是，孩子们愤恨得离开了：这么点钱也想买快乐！</p>
<p>老人又得到了清净。</p>
<p>现在分析一下孩子的心理：在得到老人的钱之前，他们的快乐是发自内心的，快乐完全是为了自己，快乐这个动作的发出者和受益者都是孩子，因此孩子有足够的动力和理由去快乐。而老人给他们钱，并暗示他们的快乐有其他意义的时候，孩子们快乐的动机发生了改变，目的从满足自身的快乐变成了换得金钱。当他们的动机改变，而期望的目的值没有达到的时候，他们放弃了这件事情。</p>
<p>这种心理每天都在我们身边发生。</p>
<p>先说普通的公司员工：员工来到公司，首先进入试用期，如果他期望得到这份工作，会不与余力得去发挥自己，表现自己，以获得领导和上司的赏识。这事，工作的动力完全发自内心。等试用期过后，会有所放松，因为这时，工作的目的是为了一份薪水。当然，有的员工会一直保持，有的员工会堕落，也有的员工会继续保持实干的作风。不管是哪种员工，总会为了自己的目标努力，升值、加薪，总尤其是最后一种，当他获得的报酬不断低于心理预期，那他的行为就跟那一群逃跑的小孩一样。</p>
<p>因此，现在很多中小型尤其创业公司提出了互利共赢的合作模式，不是简单的公司员工关系，而把公司的期权股份等分给员工，以这种方式使员工建立起创业伙伴的关系，充分调动员工的工作热情，往往能取得很好的效果。</p>
<p>另外，再说积极型员工：有些人把工作看成自己的事业，因此，这种人不管在哪里都会保持高涨的工作热情，比如爱因斯坦这种人，不在乎为谁服务，不在乎结果，只在乎自己做了什么。这种员工是可遇不可求的，他们甚至不要求多高的薪水和预期，唯一的要求就是自身价值的体现。但这种员工往往是对手挖墙脚的对象。</p>
<p>其实，大部分人都遵循这么一个规律，管理一个公司，更多的是要调用员工的积极性。而对于员工来说，把工作的动机变为自发和主动，在这个过程中努力提高自己，才是正道。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/24/%e6%b5%85%e8%b0%88%e5%85%ac%e5%8f%b8%e7%ae%a1%e7%90%86%e4%b8%ad%e5%91%98%e5%b7%a5%e7%a7%af%e6%9e%81%e6%80%a7%e9%97%ae%e9%a2%98.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网易聊天室关了，一个时代的结束？</title>
		<link>http://www.sunboyu.cn/2008/10/22/%e7%bd%91%e6%98%93%e8%81%8a%e5%a4%a9%e5%ae%a4%e5%85%b3%e4%ba%86%ef%bc%8c%e4%b8%80%e4%b8%aa%e6%97%b6%e4%bb%a3%e7%9a%84%e7%bb%93%e6%9d%9f%ef%bc%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/22/%e7%bd%91%e6%98%93%e8%81%8a%e5%a4%a9%e5%ae%a4%e5%85%b3%e4%ba%86%ef%bc%8c%e4%b8%80%e4%b8%aa%e6%97%b6%e4%bb%a3%e7%9a%84%e7%bb%93%e6%9d%9f%ef%bc%9f.shtml#comments</comments>
		<pubDate>Wed, 22 Oct 2008 09:02:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=360</guid>
		<description><![CDATA[当年的火爆，不亚于如今的QQ。

]]></description>
			<content:encoded><![CDATA[<p>当年的火爆，不亚于如今的QQ。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/10/e69caae591bde5908d.jpg"><img class="aligncenter size-full wp-image-361" title="e69caae591bde5908d" src="http://www.sunboyu.cn/upfiles/2008/10/e69caae591bde5908d.jpg" alt="" width="500" height="328" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/22/%e7%bd%91%e6%98%93%e8%81%8a%e5%a4%a9%e5%ae%a4%e5%85%b3%e4%ba%86%ef%bc%8c%e4%b8%80%e4%b8%aa%e6%97%b6%e4%bb%a3%e7%9a%84%e7%bb%93%e6%9d%9f%ef%bc%9f.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>密秀,注定了失败</title>
		<link>http://www.sunboyu.cn/2008/10/21/%e5%af%86%e7%a7%80%e6%b3%a8%e5%ae%9a%e4%ba%86%e5%a4%b1%e8%b4%a5.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/21/%e5%af%86%e7%a7%80%e6%b3%a8%e5%ae%9a%e4%ba%86%e5%a4%b1%e8%b4%a5.shtml#comments</comments>
		<pubDate>Tue, 21 Oct 2008 14:19:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[mixi]]></category>
		<category><![CDATA[mixiu]]></category>
		<category><![CDATA[密秀]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=359</guid>
		<description><![CDATA[http://mixiu.cn 据说是鬼子 mixi.jp的汉化版。
一看，果然是。从技术上讲，mixiu和mixi都实用了perl作为web的开发语言，服务器无一例外得使用了*unix，但mixiu使用了fedora，这东西跑服务器不是很在行。
从风格上，密秀照搬了mixi网站的一些传统习惯，比如大量使用图片得导航，貌似“卡哇伊”的美工。
为什么注定了他的失败呢？
1、免不了的要受爱国情绪的影响。你就不学学阿里巴巴，拿了日本人的钱就别太张扬，你还公然声明是日本mixi的中文化网站，当然要受到愤青的冲击。
2、糟糕的美工。中国人玩sns，或者个人空间，已经习惯了facebook或者51，qq空间那东西，密秀的东西啥都不像，美工虽好，但完全不适合中国的习惯。
3、中国人喜欢拿钱砸市场，你们要觉得有钱，先砸点。
4、有我这样的人臭嘴不断冲击，肯定玩不大。
谢谢
]]></description>
			<content:encoded><![CDATA[<p>http://mixiu.cn 据说是鬼子 mixi.jp的汉化版。</p>
<p>一看，果然是。从技术上讲，mixiu和mixi都实用了perl作为web的开发语言，服务器无一例外得使用了*unix，但mixiu使用了fedora，这东西跑服务器不是很在行。</p>
<p>从风格上，密秀照搬了mixi网站的一些传统习惯，比如大量使用图片得导航，貌似“卡哇伊”的美工。</p>
<p>为什么注定了他的失败呢？</p>
<p>1、免不了的要受爱国情绪的影响。你就不学学阿里巴巴，拿了日本人的钱就别太张扬，你还公然声明是日本mixi的中文化网站，当然要受到愤青的冲击。</p>
<p>2、糟糕的美工。中国人玩sns，或者个人空间，已经习惯了facebook或者51，qq空间那东西，密秀的东西啥都不像，美工虽好，但完全不适合中国的习惯。</p>
<p>3、中国人喜欢拿钱砸市场，你们要觉得有钱，先砸点。</p>
<p>4、有我这样的人臭嘴不断冲击，肯定玩不大。</p>
<p>谢谢</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/21/%e5%af%86%e7%a7%80%e6%b3%a8%e5%ae%9a%e4%ba%86%e5%a4%b1%e8%b4%a5.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jar命令的一些应用</title>
		<link>http://www.sunboyu.cn/2008/10/21/jar%e5%91%bd%e4%bb%a4%e7%9a%84%e4%b8%80%e4%ba%9b%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/21/jar%e5%91%bd%e4%bb%a4%e7%9a%84%e4%b8%80%e4%ba%9b%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Tue, 21 Oct 2008 08:29:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[jar]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=358</guid>
		<description><![CDATA[对于我，最常用的两个功能，就是打包类库，创建可执行的JAR。
打包文件，可以看下边的功能呢个表：



功能
命令


用一个单独的文件创建一个 JAR 文件
jar cf jar-file input-file&#8230;


用一个目录创建一个 JAR 文件
jar cf jar-file dir-name


创建一个未压缩的 JAR 文件
jar cf0 jar-file dir-name


更新一个 JAR 文件
jar uf jar-file input-file&#8230;


查看一个 JAR 文件的内容
jar tf jar-file


提取一个 JAR 文件的内容
jar xf jar-file


从一个 JAR 文件中提取特定的文件
jar xf jar-file archived-file&#8230;


运行一个打包为可执行 JAR 文件的应用程序
java -jar app.jar



创建一个可执行 JAR 很容易。首先将所有应用程序代码放到一个目录中。假设应用程序中的主类是 com.mycompany.myapp.Sample 。您要创建一个包含应用程序代码的 JAR 文件并标识出主类。为此，在某个位置(不是在应用程序目录中)创建一个名为  manifest 的文件，并在其中加入以下一行： Main-Class: com.mycompany.myapp.Sample
引用地址:http://www-128.ibm.com/developerworks/cn/java/j-jar/index.html
]]></description>
			<content:encoded><![CDATA[<p>对于我，最常用的两个功能，就是打包类库，创建可执行的JAR。</p>
<p>打包文件，可以看下边的功能呢个表：</p>
<table border="1" cellspacing="0" cellpadding="3" width="80%">
<tbody>
<tr>
<td><strong>功能</strong></td>
<td><strong>命令</strong></td>
</tr>
<tr>
<td>用一个单独的文件创建一个 JAR 文件</td>
<td>jar cf jar-file input-file&#8230;</td>
</tr>
<tr>
<td>用一个目录创建一个 JAR 文件</td>
<td>jar cf jar-file dir-name</td>
</tr>
<tr>
<td>创建一个未压缩的 JAR 文件</td>
<td>jar cf0 jar-file dir-name</td>
</tr>
<tr>
<td>更新一个 JAR 文件</td>
<td>jar uf jar-file input-file&#8230;</td>
</tr>
<tr>
<td>查看一个 JAR 文件的内容</td>
<td>jar tf jar-file</td>
</tr>
<tr>
<td>提取一个 JAR 文件的内容</td>
<td>jar xf jar-file</td>
</tr>
<tr>
<td>从一个 JAR 文件中提取特定的文件</td>
<td>jar xf jar-file archived-file&#8230;</td>
</tr>
<tr>
<td>运行一个打包为可执行 JAR 文件的应用程序</td>
<td>java -jar app.jar</td>
</tr>
</tbody>
</table>
<p>创建一个可执行 JAR 很容易。首先将所有应用程序代码放到一个目录中。假设应用程序中的主类是 com.mycompany.myapp.Sample 。您要创建一个包含应用程序代码的 JAR 文件并标识出主类。为此，在某个位置(不是在应用程序目录中)创建一个名为  manifest 的文件，并在其中加入以下一行： Main-Class: com.mycompany.myapp.Sample</p>
<p>引用地址:http://www-128.ibm.com/developerworks/cn/java/j-jar/index.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/21/jar%e5%91%bd%e4%bb%a4%e7%9a%84%e4%b8%80%e4%ba%9b%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UML2.0学习指南</title>
		<link>http://www.sunboyu.cn/2008/10/21/uml20%e5%ad%a6%e4%b9%a0%e6%8c%87%e5%8d%97.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/21/uml20%e5%ad%a6%e4%b9%a0%e6%8c%87%e5%8d%97.shtml#comments</comments>
		<pubDate>Tue, 21 Oct 2008 01:11:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[uml]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=356</guid>
		<description><![CDATA[
书还不错，虽然有点看不懂。中小型公司很少有做项目前期建模的，我来试试。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/10/s2253303.jpg"><img class="aligncenter size-full wp-image-357" title="s2253303" src="http://www.sunboyu.cn/upfiles/2008/10/s2253303.jpg" alt="" width="200" height="261" /></a></p>
<p>书还不错，虽然有点看不懂。中小型公司很少有做项目前期建模的，我来试试。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/21/uml20%e5%ad%a6%e4%b9%a0%e6%8c%87%e5%8d%97.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WindowsXP遭毒手了，您还用Windows2003么？</title>
		<link>http://www.sunboyu.cn/2008/10/19/windowsxp%e9%81%ad%e6%af%92%e6%89%8b%e4%ba%86%ef%bc%8c%e6%82%a8%e8%bf%98%e7%94%a8windows2003%e4%b9%88%ef%bc%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/19/windowsxp%e9%81%ad%e6%af%92%e6%89%8b%e4%ba%86%ef%bc%8c%e6%82%a8%e8%bf%98%e7%94%a8windows2003%e4%b9%88%ef%bc%9f.shtml#comments</comments>
		<pubDate>Sun, 19 Oct 2008 15:23:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[windows 黑屏]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=355</guid>
		<description><![CDATA[非常期待2008年10月20日的到来，因为亲爱的比尔盖茨同志终于要拿WindowsXP开刀了。虽然番茄花园的事情只是一个引子，但我想比尔那哥们还是不会放弃中国这块肥肉的。
总得来说，我是非常乐意全国的电脑都黑屏的。自打我玩电脑，我面向的就是很多的操作系统的。CCDOS,UCDOS,MS-DOS,还有我看不懂的NetWare（当时真的不懂是啥），到后来，基本就全是windows了，从windows32，95，98，2000，xp，vista（电脑配置不行，还没用），忘了一个狗屎到家的Windows ME，我基本都用过，而且，似乎只要摸电脑就是windows，从高中的教材开始，我认为，学电脑就是学windows，直至大学，我才知道有个玩意叫Linux。
我不知道是不是微软公关太好了，完美的大学计划，优于任何一个搞媒体搞公关的公司，甚至我们自己的红旗系统，我大学后才知道，我知道了，原来我们自己也有操作系统，那我们为什么没有推广自己的操作系统呢？
不想了。我觉得思考这个问题，我纯属脑子进水兼被驴踢－因为考试全他妈考windows的东西呗，我自己还拿了个计算机等级三级的证书呢。再往上想，能找出一堆被驴踢的人。
不能说被驴踢的人就不是好驴。红旗公司开发那个桌面系统，其实挺好的，很XP，这次黑屏肯定是盖同学吃了番茄后想出的馊招，不过，这次能提醒国人，XP真他妈不是好东西，用个东西，还得黑屏（虽然我的linux终端也是黑的）。想不黑屏，想不天天升级，想不黑屏后也不蓝屏……换个操作系统吧。
写点div，要兼容ie和ff，这他妈难受！
]]></description>
			<content:encoded><![CDATA[<p>非常期待2008年10月20日的到来，因为亲爱的比尔盖茨同志终于要拿WindowsXP开刀了。虽然番茄花园的事情只是一个引子，但我想比尔那哥们还是不会放弃中国这块肥肉的。</p>
<p>总得来说，我是非常乐意全国的电脑都黑屏的。自打我玩电脑，我面向的就是很多的操作系统的。CCDOS,UCDOS,MS-DOS,还有我看不懂的NetWare（当时真的不懂是啥），到后来，基本就全是windows了，从windows32，95，98，2000，xp，vista（电脑配置不行，还没用），忘了一个狗屎到家的Windows ME，我基本都用过，而且，似乎只要摸电脑就是windows，从高中的教材开始，我认为，学电脑就是学windows，直至大学，我才知道有个玩意叫Linux。</p>
<p>我不知道是不是微软公关太好了，完美的大学计划，优于任何一个搞媒体搞公关的公司，甚至我们自己的红旗系统，我大学后才知道，我知道了，原来我们自己也有操作系统，那我们为什么没有推广自己的操作系统呢？</p>
<p>不想了。我觉得思考这个问题，我纯属脑子进水兼被驴踢－因为考试全他妈考windows的东西呗，我自己还拿了个计算机等级三级的证书呢。再往上想，能找出一堆被驴踢的人。</p>
<p>不能说被驴踢的人就不是好驴。红旗公司开发那个桌面系统，其实挺好的，很XP，这次黑屏肯定是盖同学吃了番茄后想出的馊招，不过，这次能提醒国人，XP真他妈不是好东西，用个东西，还得黑屏（虽然我的linux终端也是黑的）。想不黑屏，想不天天升级，想不黑屏后也不蓝屏……换个操作系统吧。</p>
<p>写点div，要兼容ie和ff，这他妈难受！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/19/windowsxp%e9%81%ad%e6%af%92%e6%89%8b%e4%ba%86%ef%bc%8c%e6%82%a8%e8%bf%98%e7%94%a8windows2003%e4%b9%88%ef%bc%9f.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress使用Lucene进行搜索</title>
		<link>http://www.sunboyu.cn/2008/10/18/wordpress%e4%bd%bf%e7%94%a8lucene%e8%bf%9b%e8%a1%8c%e6%90%9c%e7%b4%a2.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/18/wordpress%e4%bd%bf%e7%94%a8lucene%e8%bf%9b%e8%a1%8c%e6%90%9c%e7%b4%a2.shtml#comments</comments>
		<pubDate>Sat, 18 Oct 2008 05:52:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=354</guid>
		<description><![CDATA[接上篇，我们使用Lucene Document Field IndexWrite 等方法创建了索引，现在，使用内建的搜索的方法进行检索。
代码如下：
import java.io.*;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.analysis.*;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.*;
&#160;
public class Search
{
public static void main( String argv[] ) throws Exception
{
IndexReader reader = IndexReader.open(&#34;./index&#34;);
Searcher searcher = new IndexSearcher(reader);
SimpleAnalyzeranalyzer = new SimpleAnalyzer();
QueryParser parser = new QueryParser(&#34;post_content&#34;, analyzer);
Query query = parser.parse( argv[0] );
Hits hits = searcher.search(query);
System.out.println(hits.length() + &#34;个结果&#34;);
for(int i=0;i
{
System.out.println(hits.doc(i).get(&#34;guid&#34;));
}
}
}
编译后，我们在命令行进行查询：
E:\java>java Search php
40个结果
http://www.sunboyu.cn/?p=332
http://www.sunboyu.cn/?p=164
http://www.sunboyu.cn/?p=213
http://www.sunboyu.cn/?p=123
http://www.sunboyu.cn/?p=124
http://www.sunboyu.cn/?p=180
http://www.sunboyu.cn/?p=283
http://www.sunboyu.cn/?p=282
http://www.sunboyu.cn/?p=234
http://www.sunboyu.cn/?p=53
http://www.sunboyu.cn/?p=159
http://www.sunboyu.cn/?p=235
http://www.sunboyu.cn/?p=221
http://www.sunboyu.cn/?p=73
http://www.sunboyu.cn/?p=11
http://www.sunboyu.cn/?p=51
http://www.sunboyu.cn/?p=240
http://www.sunboyu.cn/?p=196
http://www.sunboyu.cn/?p=52
http://www.sunboyu.cn/?p=308
http://www.sunboyu.cn/?p=298
http://www.sunboyu.cn/?p=9
http://www.sunboyu.cn/?page_id=38
http://www.sunboyu.cn/?p=236
http://www.sunboyu.cn/?p=320
http://www.sunboyu.cn/?p=141
http://www.sunboyu.cn/?p=78
http://www.sunboyu.cn/?p=291
http://www.sunboyu.cn/?p=218
http://www.sunboyu.cn/?p=154
http://www.sunboyu.cn/?p=121
http://www.sunboyu.cn/?p=200
http://www.sunboyu.cn/?p=244
http://www.sunboyu.cn/?p=280
http://www.sunboyu.cn/?page_id=112
http://www.sunboyu.cn/?p=288
http://www.sunboyu.cn/?p=292
http://www.sunboyu.cn/?p=20
http://www.sunboyu.cn/?p=130
http://www.sunboyu.cn/?p=87
E:\java>
可以看到，当我们搜索关键词“php”，返回了所有存在php关键词的链接。
当然，这个只是个简单的演示，在创建索引的时候，我们使用了SimpleAnalyzer的方法，这个方法对中文，其实就是基于单字的分词，对于中文信息检索基本是没有意义的。Lucene提供了开发的源代码，因为，我们可以很方便得为其附加我们自己的中文分词方法。
]]></description>
			<content:encoded><![CDATA[<p>接上篇，我们使用Lucene Document Field IndexWrite 等方法创建了索引，现在，使用内建的搜索的方法进行检索。<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">import java.io.*;</li>
<li>import org.apache.lucene.index.Term;</li>
<li>import org.apache.lucene.index.IndexReader;</li>
<li>import org.apache.lucene.analysis.*;</li>
<li>import org.apache.lucene.queryParser.QueryParser;</li>
<li>import org.apache.lucene.search.*;</li>
<li>&nbsp;</li>
<li>public class Search</li>
<li>{</li>
<li>public static void main( String argv[] ) throws Exception</li>
<li>{</li>
<li>IndexReader reader = IndexReader.open(&quot;./index&quot;);</li>
<li>Searcher searcher = new IndexSearcher(reader);</li>
<li>SimpleAnalyzeranalyzer = new SimpleAnalyzer();</li>
<li>QueryParser parser = new QueryParser(&quot;post_content&quot;, analyzer);</li>
<li>Query query = parser.parse( argv[0] );</li>
<li>Hits hits = searcher.search(query);</li>
<li>System.out.println(hits.length() + &quot;个结果&quot;);</li>
<li>for(int i=0;i</li>
<li>{</li>
<li>System.out.println(hits.doc(i).get(&quot;guid&quot;));</li>
<li>}</li>
<li>}</li>
<li>}</li></ol></div>
<p>编译后，我们在命令行进行查询：</p>
<p>E:\java>java Search php<br />
40个结果<br />
http://www.sunboyu.cn/?p=332<br />
http://www.sunboyu.cn/?p=164<br />
http://www.sunboyu.cn/?p=213<br />
http://www.sunboyu.cn/?p=123<br />
http://www.sunboyu.cn/?p=124<br />
http://www.sunboyu.cn/?p=180<br />
http://www.sunboyu.cn/?p=283<br />
http://www.sunboyu.cn/?p=282<br />
http://www.sunboyu.cn/?p=234<br />
http://www.sunboyu.cn/?p=53<br />
http://www.sunboyu.cn/?p=159<br />
http://www.sunboyu.cn/?p=235<br />
http://www.sunboyu.cn/?p=221<br />
http://www.sunboyu.cn/?p=73<br />
http://www.sunboyu.cn/?p=11<br />
http://www.sunboyu.cn/?p=51<br />
http://www.sunboyu.cn/?p=240<br />
http://www.sunboyu.cn/?p=196<br />
http://www.sunboyu.cn/?p=52<br />
http://www.sunboyu.cn/?p=308<br />
http://www.sunboyu.cn/?p=298<br />
http://www.sunboyu.cn/?p=9<br />
http://www.sunboyu.cn/?page_id=38<br />
http://www.sunboyu.cn/?p=236<br />
http://www.sunboyu.cn/?p=320<br />
http://www.sunboyu.cn/?p=141<br />
http://www.sunboyu.cn/?p=78<br />
http://www.sunboyu.cn/?p=291<br />
http://www.sunboyu.cn/?p=218<br />
http://www.sunboyu.cn/?p=154<br />
http://www.sunboyu.cn/?p=121<br />
http://www.sunboyu.cn/?p=200<br />
http://www.sunboyu.cn/?p=244<br />
http://www.sunboyu.cn/?p=280<br />
http://www.sunboyu.cn/?page_id=112<br />
http://www.sunboyu.cn/?p=288<br />
http://www.sunboyu.cn/?p=292<br />
http://www.sunboyu.cn/?p=20<br />
http://www.sunboyu.cn/?p=130<br />
http://www.sunboyu.cn/?p=87</p>
<p>E:\java><br />
可以看到，当我们搜索关键词“php”，返回了所有存在php关键词的链接。</p>
<p>当然，这个只是个简单的演示，在创建索引的时候，我们使用了SimpleAnalyzer的方法，这个方法对中文，其实就是基于单字的分词，对于中文信息检索基本是没有意义的。Lucene提供了开发的源代码，因为，我们可以很方便得为其附加我们自己的中文分词方法。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/18/wordpress%e4%bd%bf%e7%94%a8lucene%e8%bf%9b%e8%a1%8c%e6%90%9c%e7%b4%a2.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>流程化管理与技术文档对企业的重要性分析</title>
		<link>http://www.sunboyu.cn/2008/10/17/%e6%b5%81%e7%a8%8b%e5%8c%96%e7%ae%a1%e7%90%86%e4%b8%8e%e6%8a%80%e6%9c%af%e6%96%87%e6%a1%a3%e5%af%b9%e4%bc%81%e4%b8%9a%e7%9a%84%e9%87%8d%e8%a6%81%e6%80%a7%e5%88%86%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/17/%e6%b5%81%e7%a8%8b%e5%8c%96%e7%ae%a1%e7%90%86%e4%b8%8e%e6%8a%80%e6%9c%af%e6%96%87%e6%a1%a3%e5%af%b9%e4%bc%81%e4%b8%9a%e7%9a%84%e9%87%8d%e8%a6%81%e6%80%a7%e5%88%86%e6%9e%90.shtml#comments</comments>
		<pubDate>Fri, 17 Oct 2008 02:52:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[公司管理]]></category>
		<category><![CDATA[项目管理]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=353</guid>
		<description><![CDATA[原公司的系统，也就是本猿的开山作，也是本猿的败笔作，在我接班人的手上又出现了同样的问题，bug，严重的bug，足矣让老板杀人的bug。
这个bug曾经在公司技术上闹过很大的风波，虽然简单，但造成的影响是客户丢失，职员被辞，甚至更大（至于由于老板上火而造成的其他家庭社会影响暂时不计）。损失，不单是一行程序bug所能描述的。
其实问题发生，是不能简单追究责任的，因为此问题并非第一次造成，而且之前惨重的损失，并不能说不是一个教训。一个问题在同一个人身上发生，是不应该的，同样在一个公司内发生，这是有问题的。
制度，管理，流程，文档，知识库，这些都是公司在发展中逐步积累的无形财富。知识产品的产生，有前人的经验，很多问题都可以直接避免，新人进行开发，必然要熟悉公司的一些制度，规范性流程，这个过程更多的是对公司历史和现有产品的熟悉了解。
如果没有这个过程，新人可能还会从零考虑这个事情，而不是在一个阶段的基础上进行开发，而重复的事情降低了公司的效率和发展速度，人工开支过多产品进度缓慢造成投入产出比失调。
制度，流程化管理，产品文档化，在大型公司会非常完善，他们的每件作品都会是个产品，按照产品的标准来实行。而在中小企业，这方面是很弱化的。随着企业发展，小型公司也将会向中大型公司发展，规模的扩大，这方面问题会体现得非常突出。因为，当务之急，是知道在适当的时候做适当的事情。
]]></description>
			<content:encoded><![CDATA[<p>原公司的系统，也就是本猿的开山作，也是本猿的败笔作，在我接班人的手上又出现了同样的问题，bug，严重的bug，足矣让老板杀人的bug。</p>
<p>这个bug曾经在公司技术上闹过很大的风波，虽然简单，但造成的影响是客户丢失，职员被辞，甚至更大（至于由于老板上火而造成的其他家庭社会影响暂时不计）。损失，不单是一行程序bug所能描述的。</p>
<p>其实问题发生，是不能简单追究责任的，因为此问题并非第一次造成，而且之前惨重的损失，并不能说不是一个教训。一个问题在同一个人身上发生，是不应该的，同样在一个公司内发生，这是有问题的。</p>
<p>制度，管理，流程，文档，知识库，这些都是公司在发展中逐步积累的无形财富。知识产品的产生，有前人的经验，很多问题都可以直接避免，新人进行开发，必然要熟悉公司的一些制度，规范性流程，这个过程更多的是对公司历史和现有产品的熟悉了解。</p>
<p>如果没有这个过程，新人可能还会从零考虑这个事情，而不是在一个阶段的基础上进行开发，而重复的事情降低了公司的效率和发展速度，人工开支过多产品进度缓慢造成投入产出比失调。</p>
<p>制度，流程化管理，产品文档化，在大型公司会非常完善，他们的每件作品都会是个产品，按照产品的标准来实行。而在中小企业，这方面是很弱化的。随着企业发展，小型公司也将会向中大型公司发展，规模的扩大，这方面问题会体现得非常突出。因为，当务之急，是知道在适当的时候做适当的事情。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/17/%e6%b5%81%e7%a8%8b%e5%8c%96%e7%ae%a1%e7%90%86%e4%b8%8e%e6%8a%80%e6%9c%af%e6%96%87%e6%a1%a3%e5%af%b9%e4%bc%81%e4%b8%9a%e7%9a%84%e9%87%8d%e8%a6%81%e6%80%a7%e5%88%86%e6%9e%90.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>麻雀夫妻－幸福的情侣们</title>
		<link>http://www.sunboyu.cn/2008/10/16/%e9%ba%bb%e9%9b%80%e5%a4%ab%e5%a6%bb%ef%bc%8d%e5%b9%b8%e7%a6%8f%e7%9a%84%e6%83%85%e4%be%a3%e4%bb%ac.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/16/%e9%ba%bb%e9%9b%80%e5%a4%ab%e5%a6%bb%ef%bc%8d%e5%b9%b8%e7%a6%8f%e7%9a%84%e6%83%85%e4%be%a3%e4%bb%ac.shtml#comments</comments>
		<pubDate>Thu, 16 Oct 2008 02:50:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[北漂]]></category>
		<category><![CDATA[麻雀]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=347</guid>
		<description><![CDATA[我家屋子上有个空调管道的洞，因为没有装空调，所以那个洞从来没理过。但每天早晨的麻雀叫声总那么响，我开始关注那个地方。果然，我发现里边住着一对麻雀夫妻，天天早出晚归，不知道是否有了自己的宝宝。




]]></description>
			<content:encoded><![CDATA[<p>我家屋子上有个空调管道的洞，因为没有装空调，所以那个洞从来没理过。但每天早晨的麻雀叫声总那么响，我开始关注那个地方。果然，我发现里边住着一对麻雀夫妻，天天早出晚归，不知道是否有了自己的宝宝。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/10/img_4068.jpg"><img class="aligncenter size-full wp-image-348" title="img_4068" src="http://www.sunboyu.cn/upfiles/2008/10/img_4068.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/10/img_4069.jpg"><img class="aligncenter size-full wp-image-349" title="img_4069" src="http://www.sunboyu.cn/upfiles/2008/10/img_4069.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/10/img_4071.jpg"><img class="aligncenter size-full wp-image-351" title="img_4071" src="http://www.sunboyu.cn/upfiles/2008/10/img_4071.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/10/img_4072.jpg"><img class="aligncenter size-full wp-image-352" title="img_4072" src="http://www.sunboyu.cn/upfiles/2008/10/img_4072.jpg" alt="" width="500" height="666" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/16/%e9%ba%bb%e9%9b%80%e5%a4%ab%e5%a6%bb%ef%bc%8d%e5%b9%b8%e7%a6%8f%e7%9a%84%e6%83%85%e4%be%a3%e4%bb%ac.shtml/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>使用Lucene为WordPress创建索引</title>
		<link>http://www.sunboyu.cn/2008/10/15/%e4%bd%bf%e7%94%a8lucene%e4%b8%bawordpress%e5%88%9b%e5%bb%ba%e7%b4%a2%e5%bc%95.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/15/%e4%bd%bf%e7%94%a8lucene%e4%b8%bawordpress%e5%88%9b%e5%bb%ba%e7%b4%a2%e5%bc%95.shtml#comments</comments>
		<pubDate>Wed, 15 Oct 2008 07:41:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[lucence]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=346</guid>
		<description><![CDATA[上次说到Lucene的Document模型，现在，我们使用WordPress为例，为其创建索引。
分析wordpress数据库结构，我们只需要为标题内容，即主要的文本内容创建索引即可。
具体语句为:  SELECT ID,post_title,post_content,guid FROM wp_posts ORDER BY ID DESC
如下代码，mysql连接类用的上文的mysql类，代码风格还是很PHP。生成的索引全保存在当前的index文件夹下
E:\java\index 的目录
2008-10-16  14:40
.
2008-10-16  14:40              ..
2008-10-16  14:40                20 segments.gen
2008-10-16  14:40       [...]]]></description>
			<content:encoded><![CDATA[<p>上次说到Lucene的Document模型，现在，我们使用WordPress为例，为其创建索引。</p>
<p>分析wordpress数据库结构，我们只需要为标题内容，即主要的文本内容创建索引即可。</p>
<p>具体语句为:  SELECT ID,post_title,post_content,guid FROM wp_posts ORDER BY ID DESC</p>
<p>如下代码，mysql连接类用的上文的mysql类，代码风格还是很PHP。生成的索引全保存在当前的index文件夹下</p>
<p>E:\java\index 的目录</p>
<p>2008-10-16  14:40</p>
<p>.<br />
2008-10-16  14:40              ..<br />
2008-10-16  14:40                20 segments.gen<br />
2008-10-16  14:40                98 segments_a4<br />
2008-10-16  14:40           268,174 _a0.fdt<br />
2008-10-16  14:40             2,600 _a0.fdx<br />
2008-10-16  14:40                37 _a0.fnm<br />
2008-10-16  14:40            20,990 _a0.frq<br />
2008-10-16  14:40             1,304 _a0.nrm<br />
2008-10-16  14:40            27,210 _a0.prx<br />
2008-10-16  14:40             1,281 _a0.tii<br />
2008-10-16  14:40           130,051 _a0.tis<br />
2008-10-16  14:40               356 _a1.fdt<br />
<span id="more-346"></span><br />
2008-10-16  14:40                 8 _a1.fdx<br />
2008-10-16  14:40                37 _a1.fnm<br />
2008-10-16  14:40                23 _a1.frq<br />
2008-10-16  14:40                 8 _a1.nrm<br />
2008-10-16  14:40                23 _a1.prx<br />
2008-10-16  14:40                35 _a1.tii<br />
2008-10-16  14:40               413 _a1.tis<br />
2008-10-16  14:40             1,362 _a2.fdt<br />
2008-10-16  14:40                 8 _a2.fdx<br />
2008-10-16  14:40                37 _a2.fnm<br />
2008-10-16  14:40                74 _a2.frq<br />
2008-10-16  14:40                 8 _a2.nrm<br />
2008-10-16  14:40                87 _a2.prx<br />
2008-10-16  14:40                35 _a2.tii<br />
2008-10-16  14:40             1,348 _a2.tis<br />
26 个文件        455,627 字节<br />
2 个目录 30,843,887,616 可用字节</p>
<p>E:\java\index</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">import java.io.*;</li>
<li>import org.apache.lucene.document.Document;</li>
<li>import org.apache.lucene.document.Field;</li>
<li>import org.apache.lucene.index.IndexWriter;</li>
<li>import org.apache.lucene.analysis.SimpleAnalyzer;</li>
<li>import org.apache.lucene.analysis.Analyzer;</li>
<li>public class Index</li>
<li>{</li>
<li>private MysqlConn Db = null;</li>
<li>//构造函数</li>
<li>public void Index()</li>
<li>{</li>
<li>}</li>
<li>//建立mysql连接</li>
<li>public void getConn( String conndsn )</li>
<li>{</li>
<li>this.Db = new MysqlConn();</li>
<li>this.Db.SetDsn( conndsn );</li>
<li>}</li>
<li>public static void main( String args[] )</li>
<li>{</li>
<li>Index index = new Index();</li>
<li>index.getConn( &quot;jdbc:mysql://localhost:3306/wp&quot; );</li>
<li>index.Db.SetUserPass( &quot;root&quot; , &quot;123456&quot; );</li>
<li>index.Db.Conn();</li>
<li>String sql = &quot;SELECT ID,post_title,post_content,guid FROM wp_posts ORDER BY ID DESC&quot;;</li>
<li>index.Db.sqlQuery( sql );</li>
<li>try</li>
<li>{</li>
<li>while( index.Db.rs.next() )</li>
<li>{</li>
<li>String ID = index.Db.rs.getString( &quot;ID&quot; );</li>
<li>String post_title = index.Db.rs.getString( &quot;post_title&quot; );</li>
<li>String post_content = index.Db.rs.getString( &quot;post_content&quot; );</li>
<li>String guid = index.Db.rs.getString( &quot;guid&quot; );</li>
<li>Document doc = new Document();</li>
<li>//注释1</li>
<li>Field f1 = new Field(&quot;ID&quot;,ID,Field.Store.YES,Field.Index.TOKENIZED);</li>
<li>Field f2 = new Field(&quot;post_title&quot;,post_title,Field.Store.YES,Field.Index.TOKENIZED);</li>
<li>Field f3 = new Field(&quot;post_content&quot;,post_content,Field.Store.YES,Field.Index.TOKENIZED);</li>
<li>Field f4 = new Field(&quot;guid&quot;,guid,Field.Store.YES,Field.Index.TOKENIZED);</li>
<li>doc.add( f1 );</li>
<li>doc.add( f2 );</li>
<li>doc.add( f3 );</li>
<li>doc.add( f4 );</li>
<li>System.out.println( ID );</li>
<li>try</li>
<li>{</li>
<li>IndexWriter writer = new IndexWriter( &quot;./index&quot; , new SimpleAnalyzer() );</li>
<li>writer.setUseCompoundFile(false);</li>
<li>writer.addDocument( doc );</li>
<li>writer.close();</li>
<li>}</li>
<li>catch (Exception e)</li>
<li>{</li>
<li>System.out.println(&quot;Error : &quot; + e.toString());</li>
<li>}</li>
<li>}</li>
<li>}</li>
<li>catch(Exception e)</li>
<li>{</li>
<li>System.out.println(&quot;Error : &quot; + e.toString());</li>
<li>}</li>
<li>&nbsp;</li>
<li>}</li>
<li>}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/15/%e4%bd%bf%e7%94%a8lucene%e4%b8%bawordpress%e5%88%9b%e5%bb%ba%e7%b4%a2%e5%bc%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>无级分类算法的实现与其可用性</title>
		<link>http://www.sunboyu.cn/2008/10/14/%e6%97%a0%e7%ba%a7%e5%88%86%e7%b1%bb%e7%ae%97%e6%b3%95%e7%9a%84%e5%ae%9e%e7%8e%b0%e4%b8%8e%e5%85%b6%e5%8f%af%e7%94%a8%e6%80%a7.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/14/%e6%97%a0%e7%ba%a7%e5%88%86%e7%b1%bb%e7%ae%97%e6%b3%95%e7%9a%84%e5%ae%9e%e7%8e%b0%e4%b8%8e%e5%85%b6%e5%8f%af%e7%94%a8%e6%80%a7.shtml#comments</comments>
		<pubDate>Tue, 14 Oct 2008 14:27:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[无级分类算法]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=343</guid>
		<description><![CDATA[根据动易ASP CMS的算法，简单实现了无级分类的算法，不过根据系统易用性原则，这种无级的分类很难在实际的CMS系统中应用，因此，这种算法在中小型信息管理系统中是不需要的，而大型的信息管理系统也要尽量避免分类深度过高而造成的系统效率问题。总结下来，这只能算自己连手的一个作品。

]]></description>
			<content:encoded><![CDATA[<p>根据动易ASP CMS的算法，简单实现了无级分类的算法，不过根据系统易用性原则，这种无级的分类很难在实际的CMS系统中应用，因此，这种算法在中小型信息管理系统中是不需要的，而大型的信息管理系统也要尽量避免分类深度过高而造成的系统效率问题。总结下来，这只能算自己连手的一个作品。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/10/e69caae591bde5908d-1.jpg"><img class="aligncenter size-full wp-image-345" title="e69caae591bde5908d-1" src="http://www.sunboyu.cn/upfiles/2008/10/e69caae591bde5908d-1.jpg" alt="" width="500" height="274" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/14/%e6%97%a0%e7%ba%a7%e5%88%86%e7%b1%bb%e7%ae%97%e6%b3%95%e7%9a%84%e5%ae%9e%e7%8e%b0%e4%b8%8e%e5%85%b6%e5%8f%af%e7%94%a8%e6%80%a7.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《web信息架构：设计大型网站》</title>
		<link>http://www.sunboyu.cn/2008/10/14/%e3%80%8aweb%e4%bf%a1%e6%81%af%e6%9e%b6%e6%9e%84%ef%bc%9a%e8%ae%be%e8%ae%a1%e5%a4%a7%e5%9e%8b%e7%bd%91%e7%ab%99%e3%80%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/14/%e3%80%8aweb%e4%bf%a1%e6%81%af%e6%9e%b6%e6%9e%84%ef%bc%9a%e8%ae%be%e8%ae%a1%e5%a4%a7%e5%9e%8b%e7%bd%91%e7%ab%99%e3%80%8b.shtml#comments</comments>
		<pubDate>Tue, 14 Oct 2008 12:33:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>
		<category><![CDATA[O]]></category>
		<category><![CDATA[reilly]]></category>
		<category><![CDATA[书]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=341</guid>
		<description><![CDATA[最近读书读疯了，疯狂得喜欢上了O,reilly的web2.0系列丛书。周末去书店，顺手买了这本《web信息架构：设计大型网站》。架构，本身就是个很宽泛的概念，信息架构，是干啥的，等我看完了再给大家解释。

]]></description>
			<content:encoded><![CDATA[<p>最近读书读疯了，疯狂得喜欢上了O,reilly的web2.0系列丛书。周末去书店，顺手买了这本《web信息架构：设计大型网站》。架构，本身就是个很宽泛的概念，信息架构，是干啥的，等我看完了再给大家解释。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/10/shupi.jpg"><img class="alignleft size-medium wp-image-342" title="shupi" src="http://www.sunboyu.cn/upfiles/2008/10/shupi-229x300.jpg" alt="" width="229" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/14/%e3%80%8aweb%e4%bf%a1%e6%81%af%e6%9e%b6%e6%9e%84%ef%bc%9a%e8%ae%be%e8%ae%a1%e5%a4%a7%e5%9e%8b%e7%bd%91%e7%ab%99%e3%80%8b.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>《构建可扩展的Web站点》有感</title>
		<link>http://www.sunboyu.cn/2008/10/12/%e3%80%8a%e6%9e%84%e5%bb%ba%e5%8f%af%e6%89%a9%e5%b1%95%e7%9a%84web%e7%ab%99%e7%82%b9%e3%80%8b%e6%9c%89%e6%84%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/12/%e3%80%8a%e6%9e%84%e5%bb%ba%e5%8f%af%e6%89%a9%e5%b1%95%e7%9a%84web%e7%ab%99%e7%82%b9%e3%80%8b%e6%9c%89%e6%84%9f.shtml#comments</comments>
		<pubDate>Sun, 12 Oct 2008 01:23:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[读后感]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=340</guid>
		<description><![CDATA[草草读完了这本书，写下此文。
本书并不是某项技术的速成，或者一门语言的工具书，而是完全从一个项目管理者和设计者的角度来阐述一个大型项目的架构和技术实现。
作者以通俗手法介绍了一个大型网站从规划，设计，实现等角度，又细数了开发的环境，服务器搭建，开发过程中的一些跟踪调试，代码，数据完整性一致性，运营后的一些bug追踪，负载解决，idc方面的问题，以及一些预警等问题。
这里，作者没有从具体的技术入手，而是抓住了不同环节的一些典型应用，作为抛砖，给读者充分的空间去转移运用这些思路，进行架构的设计。
作者的系统构建在LAMP平台上，因此，非常推荐LAMPer和相关的技术经理来阅读，但作者更侧重于用此平台的一些经验来传达一种设计理念，因此，也推荐其他方面的设计者来学习。
希望大家读后多交流，同时希望更多有项目经验的开发者和设计者，管理者加入我们的LAMP msn群( lampper@live.cn )。
]]></description>
			<content:encoded><![CDATA[<p>草草读完了这本书，写下此文。</p>
<p>本书并不是某项技术的速成，或者一门语言的工具书，而是完全从一个项目管理者和设计者的角度来阐述一个大型项目的架构和技术实现。</p>
<p>作者以通俗手法介绍了一个大型网站从规划，设计，实现等角度，又细数了开发的环境，服务器搭建，开发过程中的一些跟踪调试，代码，数据完整性一致性，运营后的一些bug追踪，负载解决，idc方面的问题，以及一些预警等问题。</p>
<p>这里，作者没有从具体的技术入手，而是抓住了不同环节的一些典型应用，作为抛砖，给读者充分的空间去转移运用这些思路，进行架构的设计。</p>
<p>作者的系统构建在LAMP平台上，因此，非常推荐LAMPer和相关的技术经理来阅读，但作者更侧重于用此平台的一些经验来传达一种设计理念，因此，也推荐其他方面的设计者来学习。</p>
<p>希望大家读后多交流，同时希望更多有项目经验的开发者和设计者，管理者加入我们的LAMP msn群( lampper@live.cn )。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/12/%e3%80%8a%e6%9e%84%e5%bb%ba%e5%8f%af%e6%89%a9%e5%b1%95%e7%9a%84web%e7%ab%99%e7%82%b9%e3%80%8b%e6%9c%89%e6%84%9f.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>再议个人作品跟商业软件产品的价值区别</title>
		<link>http://www.sunboyu.cn/2008/10/10/%e5%86%8d%e8%ae%ae%e4%b8%aa%e4%ba%ba%e4%bd%9c%e5%93%81%e8%b7%9f%e5%95%86%e4%b8%9a%e8%bd%af%e4%bb%b6%e4%ba%a7%e5%93%81%e7%9a%84%e4%bb%b7%e5%80%bc%e5%8c%ba%e5%88%ab.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/10/%e5%86%8d%e8%ae%ae%e4%b8%aa%e4%ba%ba%e4%bd%9c%e5%93%81%e8%b7%9f%e5%95%86%e4%b8%9a%e8%bd%af%e4%bb%b6%e4%ba%a7%e5%93%81%e7%9a%84%e4%bb%b7%e5%80%bc%e5%8c%ba%e5%88%ab.shtml#comments</comments>
		<pubDate>Fri, 10 Oct 2008 12:51:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[个人开发]]></category>
		<category><![CDATA[商业软件]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=339</guid>
		<description><![CDATA[很多时候，我们在讨论个人作品跟商业软件产品的区别。
至于这两种方式如何来运用，对一些计划采购的人们是个头疼的事情。
很多人崇尚量身定制，这类人大多是开发狂，或者被商业软件搞得头大的人。因为作为开发者，量身定制能满足个人开发欲，满足个人的成就感，而且，定制软件要比在一些开源上二次开发收费要高。作为这种选择的使用者，一般是没有找到适合自己的商业软件，种种原因，商业软件太贵，业务跟软件不能结合，导致软件屡屡的失败，从而要选择定制开发，而大公司的报价是基本不用考虑的，只能选择一些个人来开发。
对于一些简单的业务，个人开发的作品完全能满足业务的需求，但为什么还有价格高昂的商业开发队伍？
1、个人开发无法进行持续的维护。这里指大多数情况。很多人在一个阶段开发完成后，付款验收后就脱离了合作关系，甚至一些部署和初始化服务都没有，而使用者未必懂这些，造成使用成本的增加。
2、个人开发很少有文档的支持。这对一个需要发展的使用者来说是致命的隐患。业务的扩大，一定需要二次的开发，即使是重新开发，起码也得有个数据库说明文档，方便数据的迁移。再有的隐患，就是数据一旦出现问题，无从查起。
3、个人（也包括小团队）无法保证软件跟业务的紧密结合。一旦业务发展到一定阶段，软件更多的是根据业务的改变，个人很难在一个简单的应用上考虑大规模的业务压力，因此，软件是无法跟商业软件相比拟的。
以上是个人作品跟商业软件的区别。
其实个人作为也并非无益处。
1、个人用户能满足微小的业务需求，在一些应用极小的场合，个人开发的性价比是远远高于商业开发的。
2、个人开发能减少探索性发展前期的成本。
3、个人开发比较灵活，能满足一定规模内的定制。
……还有很多优势，暂不一一列举。
在项目中，选择哪种方式，还要根据情况进行深入的讨论，评估。不过要有这么强的评估团队，估计也有能力建立自己的开发队伍。
]]></description>
			<content:encoded><![CDATA[<p>很多时候，我们在讨论个人作品跟商业软件产品的区别。</p>
<p>至于这两种方式如何来运用，对一些计划采购的人们是个头疼的事情。</p>
<p>很多人崇尚量身定制，这类人大多是开发狂，或者被商业软件搞得头大的人。因为作为开发者，量身定制能满足个人开发欲，满足个人的成就感，而且，定制软件要比在一些开源上二次开发收费要高。作为这种选择的使用者，一般是没有找到适合自己的商业软件，种种原因，商业软件太贵，业务跟软件不能结合，导致软件屡屡的失败，从而要选择定制开发，而大公司的报价是基本不用考虑的，只能选择一些个人来开发。</p>
<p>对于一些简单的业务，个人开发的作品完全能满足业务的需求，但为什么还有价格高昂的商业开发队伍？</p>
<p>1、个人开发无法进行持续的维护。这里指大多数情况。很多人在一个阶段开发完成后，付款验收后就脱离了合作关系，甚至一些部署和初始化服务都没有，而使用者未必懂这些，造成使用成本的增加。</p>
<p>2、个人开发很少有文档的支持。这对一个需要发展的使用者来说是致命的隐患。业务的扩大，一定需要二次的开发，即使是重新开发，起码也得有个数据库说明文档，方便数据的迁移。再有的隐患，就是数据一旦出现问题，无从查起。</p>
<p>3、个人（也包括小团队）无法保证软件跟业务的紧密结合。一旦业务发展到一定阶段，软件更多的是根据业务的改变，个人很难在一个简单的应用上考虑大规模的业务压力，因此，软件是无法跟商业软件相比拟的。</p>
<p>以上是个人作品跟商业软件的区别。</p>
<p>其实个人作为也并非无益处。</p>
<p>1、个人用户能满足微小的业务需求，在一些应用极小的场合，个人开发的性价比是远远高于商业开发的。</p>
<p>2、个人开发能减少探索性发展前期的成本。</p>
<p>3、个人开发比较灵活，能满足一定规模内的定制。</p>
<p>……还有很多优势，暂不一一列举。</p>
<p>在项目中，选择哪种方式，还要根据情况进行深入的讨论，评估。不过要有这么强的评估团队，估计也有能力建立自己的开发队伍。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/10/%e5%86%8d%e8%ae%ae%e4%b8%aa%e4%ba%ba%e4%bd%9c%e5%93%81%e8%b7%9f%e5%95%86%e4%b8%9a%e8%bd%af%e4%bb%b6%e4%ba%a7%e5%93%81%e7%9a%84%e4%bb%b7%e5%80%bc%e5%8c%ba%e5%88%ab.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新购两本图书</title>
		<link>http://www.sunboyu.cn/2008/10/10/%e6%96%b0%e8%b4%ad%e4%b8%a4%e6%9c%ac%e5%9b%be%e4%b9%a6.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/10/%e6%96%b0%e8%b4%ad%e4%b8%a4%e6%9c%ac%e5%9b%be%e4%b9%a6.shtml#comments</comments>
		<pubDate>Fri, 10 Oct 2008 01:24:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[图书]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=338</guid>
		<description><![CDATA[ 
特别喜欢这只大狗
]]></description>
			<content:encoded><![CDATA[<p><img src="http://otho.douban.com/mpic/s2008463.jpg" alt="" width="109" height="135" /> <img src="http://otho.douban.com/lpic/s3163855.jpg" alt="" width="150" height="200" /></p>
<p>特别喜欢这只大狗</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/10/%e6%96%b0%e8%b4%ad%e4%b8%a4%e6%9c%ac%e5%9b%be%e4%b9%a6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucene创建Document代码部分-循序渐进学Lucene</title>
		<link>http://www.sunboyu.cn/2008/10/08/lucene%e5%88%9b%e5%bb%badocument%e4%bb%a3%e7%a0%81%e9%83%a8%e5%88%86-%e5%be%aa%e5%ba%8f%e6%b8%90%e8%bf%9b%e5%ad%a6lucene.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/08/lucene%e5%88%9b%e5%bb%badocument%e4%bb%a3%e7%a0%81%e9%83%a8%e5%88%86-%e5%be%aa%e5%ba%8f%e6%b8%90%e8%bf%9b%e5%ad%a6lucene.shtml#comments</comments>
		<pubDate>Wed, 08 Oct 2008 10:47:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[lucene]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=337</guid>
		<description><![CDATA[import java.io.*;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.analysis.SimpleAnalyzer;
public class Index
{
	public static void main( String args[] )
	{
		Document doc = new Document();
		//注释1
		Field f1 = new Field(&#34;name1&#34;,&#34;value1&#34;,Field.Store.YES,Field.Index.TOKENIZED);
		Field f2 = new Field(&#34;name2&#34;,&#34;value2&#34;,Field.Store.YES,Field.Index.TOKENIZED);
		doc.add( f1 );
		doc.add( f2 );
		try
		{
			IndexWriter writer = new IndexWriter( &#34;./&#34; , new SimpleAnalyzer() , true );
			writer.addDocument( doc );
			writer.close();
		}
		catch (Exception e)
		{
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">import java.io.*;</li>
<li>import org.apache.lucene.document.Document;</li>
<li>import org.apache.lucene.document.Field;</li>
<li>import org.apache.lucene.index.IndexWriter;</li>
<li>import org.apache.lucene.analysis.SimpleAnalyzer;</li>
<li>public class Index</li>
<li>{</li>
<li>	public static void main( String args[] )</li>
<li>	{</li>
<li>		Document doc = new Document();</li>
<li>		//注释1</li>
<li>		Field f1 = new Field(&quot;name1&quot;,&quot;value1&quot;,Field.Store.YES,Field.Index.TOKENIZED);</li>
<li>		Field f2 = new Field(&quot;name2&quot;,&quot;value2&quot;,Field.Store.YES,Field.Index.TOKENIZED);</li>
<li>		doc.add( f1 );</li>
<li>		doc.add( f2 );</li>
<li>		try</li>
<li>		{</li>
<li>			IndexWriter writer = new IndexWriter( &quot;./&quot; , new SimpleAnalyzer() , true );</li>
<li>			writer.addDocument( doc );</li>
<li>			writer.close();</li>
<li>		}</li>
<li>		catch (Exception e)</li>
<li>		{</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace(); </li>
<li>		}</li>
<li>	}</li>
<li>}</li></ol></div>
<p>注释1：Field方法的在2.0.0版本中有5种方法，在2.3.2中增加到了7种，详细用法请参阅官方文档<br />
http://lucene.apache.org/java/2_0_0/api/org/apache/lucene/document/Field.html<br />
http://lucene.apache.org/java/2_3_2/api/org/apache/lucene/document/Field.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/08/lucene%e5%88%9b%e5%bb%badocument%e4%bb%a3%e7%a0%81%e9%83%a8%e5%88%86-%e5%be%aa%e5%ba%8f%e6%b8%90%e8%bf%9b%e5%ad%a6lucene.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS:setAttribute() getAttribute() 使用总结</title>
		<link>http://www.sunboyu.cn/2008/10/07/jssetattribute-getattribute-%e4%bd%bf%e7%94%a8%e6%80%bb%e7%bb%93.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/07/jssetattribute-getattribute-%e4%bd%bf%e7%94%a8%e6%80%bb%e7%bb%93.shtml#comments</comments>
		<pubDate>Tue, 07 Oct 2008 15:53:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[dom属性]]></category>
		<category><![CDATA[JS]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=336</guid>
		<description><![CDATA[setAttribute() getAttribute() 两个函数分别是设置DOM节点属性设置和修改的函数，比如
var a=document.getElementById(&#8217;link&#8217;);
a.setAttribute(&#8217;class&#8217;) = &#8216;mylinkstyle&#8217;;
可以设置一个元素的属性
同样，我们可以自定义元素的属性，比如 &#60;a href=&#8221;#&#8221; tips=&#8221;tipscontet&#8221; title=&#8221;testtitle&#8221;&#62;test&#60;/a&#62;
如此，给a标签增加一个新的属性，tips。而tips的值可以用getAttribute()获取。
]]></description>
			<content:encoded><![CDATA[<p>setAttribute() getAttribute() 两个函数分别是设置DOM节点属性设置和修改的函数，比如</p>
<p>var a=document.getElementById(&#8217;link&#8217;);</p>
<p>a.setAttribute(&#8217;class&#8217;) = &#8216;mylinkstyle&#8217;;</p>
<p>可以设置一个元素的属性</p>
<p>同样，我们可以自定义元素的属性，比如 &lt;a href=&#8221;#&#8221; tips=&#8221;tipscontet&#8221; title=&#8221;testtitle&#8221;&gt;test&lt;/a&gt;</p>
<p>如此，给a标签增加一个新的属性，tips。而tips的值可以用getAttribute()获取。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/07/jssetattribute-getattribute-%e4%bd%bf%e7%94%a8%e6%80%bb%e7%bb%93.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>节后综合征</title>
		<link>http://www.sunboyu.cn/2008/10/07/%e8%8a%82%e5%90%8e%e7%bb%bc%e5%90%88%e5%be%81.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/07/%e8%8a%82%e5%90%8e%e7%bb%bc%e5%90%88%e5%be%81.shtml#comments</comments>
		<pubDate>Tue, 07 Oct 2008 06:29:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[经济危机]]></category>
		<category><![CDATA[长假]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=335</guid>
		<description><![CDATA[长假过去了，人明显得懒了，晚上也懒得写程序，只是无聊得翻阅那几本书。公司很长时间不用mysql了，mysql技能几乎没什么进步。本本配置太差，模拟集群速度不行，懒得去做那些毫无实用价值的实验。真的改做点什么了，但没啥可做的，也没心情去找事情。
一个网友的公司被涮了，留下了一个烂摊子，中关村倒卖IT产品的生意都不景气。可怜的我居然收了张百元假钞。这是何等的世界啊～
PHPer不好找，公司也不想出钱，我们这些热心免费拉皮条的也不好干。兄弟们被涮了，公司依然找不到人，供需失衡，谁都在考虑自己的利益。
莫非这就是传说中的经济危机？
]]></description>
			<content:encoded><![CDATA[<p>长假过去了，人明显得懒了，晚上也懒得写程序，只是无聊得翻阅那几本书。公司很长时间不用mysql了，mysql技能几乎没什么进步。本本配置太差，模拟集群速度不行，懒得去做那些毫无实用价值的实验。真的改做点什么了，但没啥可做的，也没心情去找事情。</p>
<p>一个网友的公司被涮了，留下了一个烂摊子，中关村倒卖IT产品的生意都不景气。可怜的我居然收了张百元假钞。这是何等的世界啊～</p>
<p>PHPer不好找，公司也不想出钱，我们这些热心免费拉皮条的也不好干。兄弟们被涮了，公司依然找不到人，供需失衡，谁都在考虑自己的利益。</p>
<p>莫非这就是传说中的经济危机？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/07/%e8%8a%82%e5%90%8e%e7%bb%bc%e5%90%88%e5%be%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucene文档模型(Document)简解</title>
		<link>http://www.sunboyu.cn/2008/10/04/lucene%e6%96%87%e6%a1%a3%e6%a8%a1%e5%9e%8bdocument%e7%ae%80%e8%a7%a3.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/04/lucene%e6%96%87%e6%a1%a3%e6%a8%a1%e5%9e%8bdocument%e7%ae%80%e8%a7%a3.shtml#comments</comments>
		<pubDate>Sat, 04 Oct 2008 03:39:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[简介]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=334</guid>
		<description><![CDATA[最近仔细研究了Lucene的文档模式，现用通俗语言来解释。
Lucene的索引，基本结构为 Index-&#62;Document-&#62;Field 这样可以构建一个非关系型二维结构，由不同field构成的一个Document，由不同的Document构成的Index。
Lucene的Field方法很丰富，在2.0版本以后，由三种Field类型增加到了5种，支持三种数据流的传入方式（字符串，读取，二进制传入），支持数据的存储，索引，分词。
而我们使用Lucene的主要功能在于分词和生成索引。具体应用待详细使用后介绍。
]]></description>
			<content:encoded><![CDATA[<p>最近仔细研究了Lucene的文档模式，现用通俗语言来解释。</p>
<p>Lucene的索引，基本结构为 Index-&gt;Document-&gt;Field 这样可以构建一个非关系型二维结构，由不同field构成的一个Document，由不同的Document构成的Index。</p>
<p>Lucene的Field方法很丰富，在2.0版本以后，由三种Field类型增加到了5种，支持三种数据流的传入方式（字符串，读取，二进制传入），支持数据的存储，索引，分词。</p>
<p>而我们使用Lucene的主要功能在于分词和生成索引。具体应用待详细使用后介绍。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/04/lucene%e6%96%87%e6%a1%a3%e6%a8%a1%e5%9e%8bdocument%e7%ae%80%e8%a7%a3.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的一个Java程序</title>
		<link>http://www.sunboyu.cn/2008/10/03/%e6%88%91%e7%9a%84%e4%b8%80%e4%b8%aajava%e7%a8%8b%e5%ba%8f.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/03/%e6%88%91%e7%9a%84%e4%b8%80%e4%b8%aajava%e7%a8%8b%e5%ba%8f.shtml#comments</comments>
		<pubDate>Fri, 03 Oct 2008 09:42:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mysql连接]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=333</guid>
		<description><![CDATA[PHP总有其局限性，比如解释型语言在速度上的弱点，制约了它在效率方面的发挥。facebook开放了源代码，其底层大都是c来编写，而我现在计划用Java为一些服务写后台，这是我的第一个Java程序，希望大家多批评，虽然上边依然有太多php的影子。
import java.sql.*;
/*
&#160;*&#160; Java Mysql数据库连接类
&#160;*&#160; 我的第一个java程序
&#160;*/
public class MysqlConn
{
	private String dsn = &#34;jdbc:mysql://localhost:3306/test&#34;;
	private String username = &#34;root&#34;;
	private String password = &#34;123456&#34;;
&#160;
	private Connection conn = null;
	private Statement stmt = null;
	private ResultSet rs = null;
&#160;
&#160;
&#160;
&#160;
&#160;&#160; &#160;public void MysqlConn()
	{
	}
&#160;&#160; &#160;//初始化连接参数
	public void SetDsn( String Dsn )
	{
		this.dsn = Dsn;
	}
	//初始化用户名密码
	public void SetUserPass( String Username , String Password )
	{
		this.username = Username;
		this.password = Password;
	}
	//连接函数
	public void [...]]]></description>
			<content:encoded><![CDATA[<p>PHP总有其局限性，比如解释型语言在速度上的弱点，制约了它在效率方面的发挥。facebook开放了源代码，其底层大都是c来编写，而我现在计划用Java为一些服务写后台，这是我的第一个Java程序，希望大家多批评，虽然上边依然有太多php的影子。</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">import java.sql.*;</li>
<li>/*</li>
<li>&nbsp;*&nbsp; Java Mysql数据库连接类</li>
<li>&nbsp;*&nbsp; 我的第一个java程序</li>
<li>&nbsp;*/</li>
<li>public class MysqlConn</li>
<li>{</li>
<li>	private String dsn = &quot;jdbc:mysql://localhost:3306/test&quot;;</li>
<li>	private String username = &quot;root&quot;;</li>
<li>	private String password = &quot;123456&quot;;</li>
<li>&nbsp;</li>
<li>	private Connection conn = null;</li>
<li>	private Statement stmt = null;</li>
<li>	private ResultSet rs = null;</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>&nbsp;&nbsp; &nbsp;public void MysqlConn()</li>
<li>	{</li>
<li>	}</li>
<li>&nbsp;&nbsp; &nbsp;//初始化连接参数</li>
<li>	public void SetDsn( String Dsn )</li>
<li>	{</li>
<li>		this.dsn = Dsn;</li>
<li>	}</li>
<li>	//初始化用户名密码</li>
<li>	public void SetUserPass( String Username , String Password )</li>
<li>	{</li>
<li>		this.username = Username;</li>
<li>		this.password = Password;</li>
<li>	}</li>
<li>	//连接函数</li>
<li>	public void Conn()</li>
<li>	{</li>
<li>		try</li>
<li>		{</li>
<li>			//加载Connetc/J驱动</li>
<li>			//Class.forName(&quot;com.mysql.jdbc.Driver&quot;);</li>
<li>			Class.forName(&quot;org.gjt.mm.mysql.Driver&quot;);</li>
<li>			//开始连接</li>
<li>			this.conn = DriverManager.getConnection( this.dsn , this.username , this.password );</li>
<li>			this.stmt = this.conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE , ResultSet.CONCUR_UPDATABLE );</li>
<li>		}</li>
<li>		catch(SQLException ex)</li>
<li>		{</li>
<li>			System.out.println(&quot;Error : &quot; + ex.toString());</li>
<li>			System.out.println(&quot;没有找到JDBC/ODBC驱动程序！&quot;);</li>
<li>			System.exit(0);</li>
<li>		}</li>
<li>		catch(Exception e)</li>
<li>		{</li>
<li>			System.out.println(&quot;Errors: &quot; + e.toString());</li>
<li>			System.exit(0);</li>
<li>		}</li>
<li>		</li>
<li>	}</li>
<li>&nbsp;&nbsp; &nbsp;//返回结果集</li>
<li>	public ResultSet sqlQuery( String sql )</li>
<li>	{</li>
<li>		try</li>
<li>		{</li>
<li>			this.rs = this.stmt.executeQuery( sql );</li>
<li>		}</li>
<li>		catch (SQLException ex)</li>
<li>		{</li>
<li>			System.out.println(&quot;Error : &quot; + ex.toString());</li>
<li>			System.exit(0);</li>
<li>		}</li>
<li>		catch (Exception ex)</li>
<li>		{</li>
<li>			System.out.println(&quot;Error : &quot; + ex.toString());</li>
<li>			System.exit(0);</li>
<li>		}</li>
<li>		return rs;</li>
<li>	}</li>
<li>	//执行 update,insert之类</li>
<li>	public void Exec( String sql )</li>
<li>	{</li>
<li>		try</li>
<li>		{</li>
<li>			this.stmt.executeUpdate( sql )</li>
<li>		}</li>
<li>		catch (SQLException ex)</li>
<li>		{</li>
<li>			System.out.println(&quot;Error : &quot; + ex.toString());</li>
<li>			System.exit(0);</li>
<li>		}</li>
<li>		catch (Exception ex)</li>
<li>		{</li>
<li>			System.out.println(&quot;Error : &quot; + ex.toString());</li>
<li>			System.exit(0);</li>
<li>		}</li>
<li>	}</li>
<li>&nbsp;</li>
<li>}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/03/%e6%88%91%e7%9a%84%e4%b8%80%e4%b8%aajava%e7%a8%8b%e5%ba%8f.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP缓存组件APC简介</title>
		<link>http://www.sunboyu.cn/2008/10/03/php%e7%bc%93%e5%ad%98%e7%bb%84%e4%bb%b6apc%e7%ae%80%e4%bb%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/10/03/php%e7%bc%93%e5%ad%98%e7%bb%84%e4%bb%b6apc%e7%ae%80%e4%bb%8b.shtml#comments</comments>
		<pubDate>Fri, 03 Oct 2008 02:55:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=332</guid>
		<description><![CDATA[php是解释型语言,比起编译型语言,速度自然会慢.每种语言基本都是 1、源代码-&#62;编译成二进制机器码 2、编译成二进制机器码-&#62;执行 编译型语言（如c，java）在执行一次步骤1后，多次执行步骤2，而asp，php之类的解释型语言每次访问，都重复步骤1，2，故效率低下。
PHP官方提供了一个编译php为二进制码的工具，Zend，价格昂贵，今天讨论免费的APC。
APC组件下载地址：http://pecl4win.php.net/ext.php/php_apc.dll  http://pecl.php.net/package/apc  根据自己的操作系统版本来下载安装。我这里使用的是windows系统，直接把php_apc.dll放在扩展文件路径里，在php.ini里增加extension=php_apc.dll，再查看phpinfo(),可看到apc安装成功的信息。具体配置信息在这里  http://cn2.php.net/manual/en/apc.configuration.php
其中的参数可以设定是否缓存php的编译文件，还有一些常用的限制。
除此之外，还有很多opcode缓存组件，如accelerator,xcache之类，详情可参见这里 http://en.wikipedia.org/wiki/Alternative_PHP_Cache#Alternative_PHP_Cache
]]></description>
			<content:encoded><![CDATA[<p>php是解释型语言,比起编译型语言,速度自然会慢.每种语言基本都是 1、源代码-&gt;编译成二进制机器码 2、编译成二进制机器码-&gt;执行 编译型语言（如c，java）在执行一次步骤1后，多次执行步骤2，而asp，php之类的解释型语言每次访问，都重复步骤1，2，故效率低下。</p>
<p>PHP官方提供了一个编译php为二进制码的工具，Zend，价格昂贵，今天讨论免费的APC。</p>
<p>APC组件下载地址：http://pecl4win.php.net/ext.php/php_apc.dll  http://pecl.php.net/package/apc  根据自己的操作系统版本来下载安装。我这里使用的是windows系统，直接把php_apc.dll放在扩展文件路径里，在php.ini里增加extension=php_apc.dll，再查看phpinfo(),可看到apc安装成功的信息。具体配置信息在这里  http://cn2.php.net/manual/en/apc.configuration.php</p>
<p>其中的参数可以设定是否缓存php的编译文件，还有一些常用的限制。</p>
<p>除此之外，还有很多opcode缓存组件，如accelerator,xcache之类，详情可参见这里 http://en.wikipedia.org/wiki/Alternative_PHP_Cache#Alternative_PHP_Cache</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/10/03/php%e7%bc%93%e5%ad%98%e7%bb%84%e4%bb%b6apc%e7%ae%80%e4%bb%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>做公司,一定要做对社会有意义的事情</title>
		<link>http://www.sunboyu.cn/2008/09/29/%e5%81%9a%e5%85%ac%e5%8f%b8%e4%b8%80%e5%ae%9a%e8%a6%81%e5%81%9a%e5%af%b9%e7%a4%be%e4%bc%9a%e6%9c%89%e6%84%8f%e4%b9%89%e7%9a%84%e4%ba%8b%e6%83%85.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/29/%e5%81%9a%e5%85%ac%e5%8f%b8%e4%b8%80%e5%ae%9a%e8%a6%81%e5%81%9a%e5%af%b9%e7%a4%be%e4%bc%9a%e6%9c%89%e6%84%8f%e4%b9%89%e7%9a%84%e4%ba%8b%e6%83%85.shtml#comments</comments>
		<pubDate>Mon, 29 Sep 2008 13:41:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[企业]]></category>
		<category><![CDATA[社会责任]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=331</guid>
		<description><![CDATA[前些日子,在sohu大厦里听了一次讲座,大概是一个VC讲一些投资方面的事情.经营管理没多听,期间他说了重要的一点,我记忆尤深:&#8221;做公司,一定要做对社会有意义的事情&#8221;.
仔细一想,但凡有所发展的企业,他的盈利一定是建立在了服务社会,服务大众,有利于社会发展的事情之上.不管金融,科技还是生产加工企业,无一例外.
而一些投机倒把,危害人民利益的企业,势必会垮台.就如最近的三鹿事件(我家旁边的企业,很痛心),不管哪个环节出的问题,现在整个经济链条都崩溃了,老家的人们都开始喝五毛一斤的鲜奶了,而粮食饲料等没有降价,受损的何止厂商.
在IT方面,比较成功的企业,腾讯算一.腾讯的主产品IM,完全推动了社会的进步,改变了人们的生活方式,从电话到email,手机,im,这些功能完全推动了人们的生活,降低了人们的通讯效率和成本,完全符合社会发展的趋势,因此,这是一个对社会有意义的产品,腾讯成为了一个有意义的企业,他得以了发展和状态.(注:只针对IM系列的产品,本人对其网游等持反对态度)
而一些利润很好的企业,未必做了对社会有意义的事情.比如盛大,我一直很痛恨的公司.这种公司如果不转型,终究有一天,就像三鹿一样爆发.
]]></description>
			<content:encoded><![CDATA[<p>前些日子,在sohu大厦里听了一次讲座,大概是一个VC讲一些投资方面的事情.经营管理没多听,期间他说了重要的一点,我记忆尤深:&#8221;做公司,一定要做对社会有意义的事情&#8221;.</p>
<p>仔细一想,但凡有所发展的企业,他的盈利一定是建立在了服务社会,服务大众,有利于社会发展的事情之上.不管金融,科技还是生产加工企业,无一例外.</p>
<p>而一些投机倒把,危害人民利益的企业,势必会垮台.就如最近的三鹿事件(我家旁边的企业,很痛心),不管哪个环节出的问题,现在整个经济链条都崩溃了,老家的人们都开始喝五毛一斤的鲜奶了,而粮食饲料等没有降价,受损的何止厂商.</p>
<p>在IT方面,比较成功的企业,腾讯算一.腾讯的主产品IM,完全推动了社会的进步,改变了人们的生活方式,从电话到email,手机,im,这些功能完全推动了人们的生活,降低了人们的通讯效率和成本,完全符合社会发展的趋势,因此,这是一个对社会有意义的产品,腾讯成为了一个有意义的企业,他得以了发展和状态.(注:只针对IM系列的产品,本人对其网游等持反对态度)</p>
<p>而一些利润很好的企业,未必做了对社会有意义的事情.比如盛大,我一直很痛恨的公司.这种公司如果不转型,终究有一天,就像三鹿一样爆发.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/29/%e5%81%9a%e5%85%ac%e5%8f%b8%e4%b8%80%e5%ae%9a%e8%a6%81%e5%81%9a%e5%af%b9%e7%a4%be%e4%bc%9a%e6%9c%89%e6%84%8f%e4%b9%89%e7%9a%84%e4%ba%8b%e6%83%85.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux提交命令至后台运行</title>
		<link>http://www.sunboyu.cn/2008/09/27/linux%e6%8f%90%e4%ba%a4%e5%91%bd%e4%bb%a4%e8%87%b3%e5%90%8e%e5%8f%b0%e8%bf%90%e8%a1%8c.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/27/linux%e6%8f%90%e4%ba%a4%e5%91%bd%e4%bb%a4%e8%87%b3%e5%90%8e%e5%8f%b0%e8%bf%90%e8%a1%8c.shtml#comments</comments>
		<pubDate>Sat, 27 Sep 2008 15:01:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[后台执行]]></category>
		<category><![CDATA[后台运行]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=330</guid>
		<description><![CDATA[我经常在putty里工作,有时候如果一个命令执行太长,不得已,我得开两个窗口,如果事情再多,可能开四个五个,不过有的ssh登陆工具可以开多个窗口,但难免会出点乱子.那么我们可以把命令隐藏再后台执行,使用linux下命令  &#8220;&#38;&#8221;  这个倒霉的符号.
比如我们要执行一个命令,(暂时没想到执行时间N长的命令,假设一个shell) test.sh , 现在提交并隐藏在后台
$./test.sh &#62;&#62; test.log &#38;
意思是,执行test.sh 反馈的结构输送至 test.log , &#38;表示这个命令提交至后台执行.
执行后,返回一个进程号,可以用ps来查看.
这样,我们可以连续在同一个终端窗口上运行多个持续的命令.
然后,问题又来.我们运行这些命令至后台后,如果想退出终端窗口,那么后台的命令也随之中断.我们得想办法让进程持续运行.这里得使用此命令 nohup
重新执行上边的操作,那么我们应该这样执行
$nohup ./test.sh &#62;&#62; test.log
然后敲logout,放心,再登陆试试ps,进程依然存在!
]]></description>
			<content:encoded><![CDATA[<p>我经常在putty里工作,有时候如果一个命令执行太长,不得已,我得开两个窗口,如果事情再多,可能开四个五个,不过有的ssh登陆工具可以开多个窗口,但难免会出点乱子.那么我们可以把命令隐藏再后台执行,使用linux下命令  &#8220;&amp;&#8221;  这个倒霉的符号.</p>
<p>比如我们要执行一个命令,(暂时没想到执行时间N长的命令,假设一个shell) test.sh , 现在提交并隐藏在后台</p>
<p>$./test.sh &gt;&gt; test.log &amp;</p>
<p>意思是,执行test.sh 反馈的结构输送至 test.log , &amp;表示这个命令提交至后台执行.</p>
<p>执行后,返回一个进程号,可以用ps来查看.</p>
<p>这样,我们可以连续在同一个终端窗口上运行多个持续的命令.</p>
<p>然后,问题又来.我们运行这些命令至后台后,如果想退出终端窗口,那么后台的命令也随之中断.我们得想办法让进程持续运行.这里得使用此命令 nohup</p>
<p>重新执行上边的操作,那么我们应该这样执行</p>
<p>$nohup ./test.sh &gt;&gt; test.log</p>
<p>然后敲logout,放心,再登陆试试ps,进程依然存在!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/27/linux%e6%8f%90%e4%ba%a4%e5%91%bd%e4%bb%a4%e8%87%b3%e5%90%8e%e5%8f%b0%e8%bf%90%e8%a1%8c.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>逃离海内</title>
		<link>http://www.sunboyu.cn/2008/09/26/%e9%80%83%e7%a6%bb%e6%b5%b7%e5%86%85.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/26/%e9%80%83%e7%a6%bb%e6%b5%b7%e5%86%85.shtml#comments</comments>
		<pubDate>Fri, 26 Sep 2008 14:21:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[海内]]></category>
		<category><![CDATA[退出]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=329</guid>
		<description><![CDATA[突然发现海内今天改版了,我依然玩我的挣车位和好友买卖.看着我那一排轿车,其中还有一台宝马S600,突然有种失落:多日的努力其实只换来一种虚无缥缈的虚荣.虽然同事们都在开心网上玩得不亦乐乎,校内也有大量webgame,我依然坚守在海内.不是因为海内有多优秀,因为曾经我的简历连个简单的邮件回复都没有.最终我想知道这家公司究竟有着怎样的前途.海内终究没有留住我,因为没有什么理由能让我再留恋.汽车就先摆着,我开始上鲜果网,习惯了RSS,这是我上海内唯一的收获了.
我不知道国内sns都有什么样的前景,但我努力留恋的网站始终没有留住我.也许这是国内做服务的网站们始终在研究的一个问题.
]]></description>
			<content:encoded><![CDATA[<p>突然发现海内今天改版了,我依然玩我的挣车位和好友买卖.看着我那一排轿车,其中还有一台宝马S600,突然有种失落:多日的努力其实只换来一种虚无缥缈的虚荣.虽然同事们都在开心网上玩得不亦乐乎,校内也有大量webgame,我依然坚守在海内.不是因为海内有多优秀,因为曾经我的简历连个简单的邮件回复都没有.最终我想知道这家公司究竟有着怎样的前途.海内终究没有留住我,因为没有什么理由能让我再留恋.汽车就先摆着,我开始上鲜果网,习惯了RSS,这是我上海内唯一的收获了.</p>
<p>我不知道国内sns都有什么样的前景,但我努力留恋的网站始终没有留住我.也许这是国内做服务的网站们始终在研究的一个问题.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/26/%e9%80%83%e7%a6%bb%e6%b5%b7%e5%86%85.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>由三鹿的三聚氢胺事件想到的</title>
		<link>http://www.sunboyu.cn/2008/09/25/%e7%94%b1%e4%b8%89%e9%b9%bf%e7%9a%84%e4%b8%89%e8%81%9a%e6%b0%a2%e8%83%ba%e4%ba%8b%e4%bb%b6%e6%83%b3%e5%88%b0%e7%9a%84.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/25/%e7%94%b1%e4%b8%89%e9%b9%bf%e7%9a%84%e4%b8%89%e8%81%9a%e6%b0%a2%e8%83%ba%e4%ba%8b%e4%bb%b6%e6%83%b3%e5%88%b0%e7%9a%84.shtml#comments</comments>
		<pubDate>Thu, 25 Sep 2008 13:02:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[IT环境]]></category>
		<category><![CDATA[市场培养]]></category>
		<category><![CDATA[捷安特]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=328</guid>
		<description><![CDATA[三鹿元气大伤,短期内难以恢复,结论不好下,我感觉这个牌子是保不住了,结果只有申请破产,或直接被其他品牌收购,给其做代工.最难堪的不是三鹿,而是中国的整个乳品业,犹如多米诺骨牌一样,一个接一个得被拉下水.中国乳品业的动荡不亚于金融危机的来势.
每天我骑车,都经过学院路上北航对门的一个捷安特自行车店,跟其他行业一样,所有的捷安特自行车,不管是哪里卖出去的,只要是此品牌,皆可免费服务,而且小伙子对所有顾客一视同仁,而最让我钦佩的是,其他品牌的自行车到这里,也享受着跟本品牌一样的服务.后我又发现,阿米尼,美利达的服务也是如此.
他们的品牌能持续的发展,在于他们都在培养一个共同的市场,这些品牌在发展市场,并不是靠排挤或降价,而是靠优质的服务来培养了他们的客户,而客户的口碑效应又为他们带来更大的市场.有了一个良好的市场,他们才能得以生存.
而今,我们的互联网环境依然如此,同样的服务,每家都想制定标准,抢占市场.而大量的资金在抢夺资源的时候,是不是考虑,如果共同来培养中国的互联网用户,效果是不是会更好.
值得深思.
]]></description>
			<content:encoded><![CDATA[<p>三鹿元气大伤,短期内难以恢复,结论不好下,我感觉这个牌子是保不住了,结果只有申请破产,或直接被其他品牌收购,给其做代工.最难堪的不是三鹿,而是中国的整个乳品业,犹如多米诺骨牌一样,一个接一个得被拉下水.中国乳品业的动荡不亚于金融危机的来势.</p>
<p>每天我骑车,都经过学院路上北航对门的一个捷安特自行车店,跟其他行业一样,所有的捷安特自行车,不管是哪里卖出去的,只要是此品牌,皆可免费服务,而且小伙子对所有顾客一视同仁,而最让我钦佩的是,其他品牌的自行车到这里,也享受着跟本品牌一样的服务.后我又发现,阿米尼,美利达的服务也是如此.</p>
<p>他们的品牌能持续的发展,在于他们都在培养一个共同的市场,这些品牌在发展市场,并不是靠排挤或降价,而是靠优质的服务来培养了他们的客户,而客户的口碑效应又为他们带来更大的市场.有了一个良好的市场,他们才能得以生存.</p>
<p>而今,我们的互联网环境依然如此,同样的服务,每家都想制定标准,抢占市场.而大量的资金在抢夺资源的时候,是不是考虑,如果共同来培养中国的互联网用户,效果是不是会更好.</p>
<p>值得深思.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/25/%e7%94%b1%e4%b8%89%e9%b9%bf%e7%9a%84%e4%b8%89%e8%81%9a%e6%b0%a2%e8%83%ba%e4%ba%8b%e4%bb%b6%e6%83%b3%e5%88%b0%e7%9a%84.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站站内搜索解决方案集锦</title>
		<link>http://www.sunboyu.cn/2008/09/24/%e7%bd%91%e7%ab%99%e7%ab%99%e5%86%85%e6%90%9c%e7%b4%a2%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e9%9b%86%e9%94%a6.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/24/%e7%bd%91%e7%ab%99%e7%ab%99%e5%86%85%e6%90%9c%e7%b4%a2%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e9%9b%86%e9%94%a6.shtml#comments</comments>
		<pubDate>Wed, 24 Sep 2008 01:40:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[分词]]></category>
		<category><![CDATA[搜索]]></category>
		<category><![CDATA[方案]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=327</guid>
		<description><![CDATA[1、小型网站：小的不能再小的，就是数据量很小的，使用select足矣。小网站流量不大，用户不多，数据库搜索是最简洁方便的模式。
2、中型网站：中型网站数据量不小，数据库规模在百万～千万级别，select显然不能应付，如果用数据库搜索，模糊检索是万万不能使用的，效率会很差。标签检索是个不错的方式，但这种方式需要编辑手工得添加标签，工作量巨大，非常浪费人工。使用一个小型的数据库爬虫进行分词检索是正道。推荐分词工具：lucene，ICTCLAS
3、大型网站：把大于千万数据级别的网站统归大型网站。这种网站必须提供非常好的分词与模糊查找机制，在速度，检索的准确度和相关度上都要有可使用性。在处理数据库信息上，使用数据库爬虫依然是不错的办法，而对于大量的文件，文件爬虫也相当重要。在这个级别的网站，推荐使用比较专业的商业软件，比如海量分词，或者一些专业的搜索解决方案。
]]></description>
			<content:encoded><![CDATA[<p>1、小型网站：小的不能再小的，就是数据量很小的，使用select足矣。小网站流量不大，用户不多，数据库搜索是最简洁方便的模式。</p>
<p>2、中型网站：中型网站数据量不小，数据库规模在百万～千万级别，select显然不能应付，如果用数据库搜索，模糊检索是万万不能使用的，效率会很差。标签检索是个不错的方式，但这种方式需要编辑手工得添加标签，工作量巨大，非常浪费人工。使用一个小型的数据库爬虫进行分词检索是正道。推荐分词工具：lucene，ICTCLAS</p>
<p>3、大型网站：把大于千万数据级别的网站统归大型网站。这种网站必须提供非常好的分词与模糊查找机制，在速度，检索的准确度和相关度上都要有可使用性。在处理数据库信息上，使用数据库爬虫依然是不错的办法，而对于大量的文件，文件爬虫也相当重要。在这个级别的网站，推荐使用比较专业的商业软件，比如海量分词，或者一些专业的搜索解决方案。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/24/%e7%bd%91%e7%ab%99%e7%ab%99%e5%86%85%e6%90%9c%e7%b4%a2%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e9%9b%86%e9%94%a6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nutch配置指南</title>
		<link>http://www.sunboyu.cn/2008/09/22/nutch%e9%85%8d%e7%bd%ae%e6%8c%87%e5%8d%97.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/22/nutch%e9%85%8d%e7%bd%ae%e6%8c%87%e5%8d%97.shtml#comments</comments>
		<pubDate>Mon, 22 Sep 2008 09:56:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[nutch]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=325</guid>
		<description><![CDATA[//fuck这个破鼠标，写了半天，还没报错，页面就被跳没了！！
重写：
首先，下载相关软件
tomcat   http://apache.mirror.phpchina.com/tomcat/tomcat-4/v4.1.37/bin/apache-tomcat-4.1.37.tar.gz
nutch  http://apache.mirror.phpchina.com/lucene/nutch/nutch-0.7.2.tar.gz
jdk的配置，看这篇文章 http://www.sunboyu.cn/2008/09/20/centos5%E4%B8%8B%E9%85%8D%E7%BD%AEjdk%E7%8E%AF%E5%A2%83.shtml
顺便写了个脚本
# author:sunboyu@gmail.com
# qq:176300676 msn:sunboyu@gmail.com
# http://www.sunboyu.cn
&#160;
#!/bin/sh
export JAVA_HOME=/opt/jdk1.6.0
export CLASSPATH=.:/opt/jdk1.6.0/lib/tools.jar:/opt/jdk1.6.0/lib/dt.jar:/opt/jdk1.6.0
export PATH=$PATH:/opt/jdk1.6.0/bin
export JRE_HOME=/opt/jdk1.6.0
&#160;
export CATALINA_BASE=/opt/tomcat
export CATALINA_HOME=/opt/tomcat
export CATALINA_TMPDIR=/opt/tomcat/temp
把nutch目录下的nutch-0.7.2.war配置为tomcat下的默认站点
修改tomcat下webapps/ROOT/WEB-INF/classes/nutch-site.xml
增加以下配置
&#60;property&#62;
&#160;&#160; &#160; &#160;&#60;name&#62;searcher.dir&#60;/name&#62;
&#160;&#160; &#160; &#160;&#60;value&#62;/local/nutch/crawl&#60;/value&#62;
&#160;&#160; &#60;/property&#62;
启动tomcat!
运行以下nutch命令
bin/nutch crawl urls -dir /test -depth 5 -topN 1000 -threads 5
则可以在/test目录中创建抓取的索引。
然后在tomcat服务中测试下搜索效果！
]]></description>
			<content:encoded><![CDATA[<p>//fuck这个破鼠标，写了半天，还没报错，页面就被跳没了！！<br />
重写：<br />
首先，下载相关软件<br />
tomcat   http://apache.mirror.phpchina.com/tomcat/tomcat-4/v4.1.37/bin/apache-tomcat-4.1.37.tar.gz<br />
nutch  http://apache.mirror.phpchina.com/lucene/nutch/nutch-0.7.2.tar.gz<br />
jdk的配置，看这篇文章 http://www.sunboyu.cn/2008/09/20/centos5%E4%B8%8B%E9%85%8D%E7%BD%AEjdk%E7%8E%AF%E5%A2%83.shtml<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"># author:sunboyu@gmail.com</li>
<li># qq:176300676 msn:sunboyu@gmail.com</li>
<li># http://www.sunboyu.cn</li>
<li>&nbsp;</li>
<li>#!/bin/sh</li>
<li>export JAVA_HOME=/opt/jdk1.6.0</li>
<li>export CLASSPATH=.:/opt/jdk1.6.0/lib/tools.jar:/opt/jdk1.6.0/lib/dt.jar:/opt/jdk1.6.0</li>
<li>export PATH=$PATH:/opt/jdk1.6.0/bin</li>
<li>export JRE_HOME=/opt/jdk1.6.0</li>
<li>&nbsp;</li>
<li>export CATALINA_BASE=/opt/tomcat</li>
<li>export CATALINA_HOME=/opt/tomcat</li>
<li>export CATALINA_TMPDIR=/opt/tomcat/temp</li></ol></div>
<p>把nutch目录下的nutch-0.7.2.war配置为tomcat下的默认站点<br />
修改tomcat下webapps/ROOT/WEB-INF/classes/nutch-site.xml<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">&lt;property&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp;&lt;name&gt;searcher.dir&lt;/name&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp;&lt;value&gt;/local/nutch/crawl&lt;/value&gt;</li>
<li>&nbsp;&nbsp; &lt;/property&gt;</li></ol></div>
<p>启动tomcat!<br />
运行以下nutch命令<br />
bin/nutch crawl urls -dir /test -depth 5 -topN 1000 -threads 5<br />
则可以在/test目录中创建抓取的索引。<br />
然后在tomcat服务中测试下搜索效果！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/22/nutch%e9%85%8d%e7%bd%ae%e6%8c%87%e5%8d%97.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nutch开源爬虫＋Lucene开源分词工具</title>
		<link>http://www.sunboyu.cn/2008/09/21/nutch%e5%bc%80%e6%ba%90%e7%88%ac%e8%99%ab%ef%bc%8blucene%e5%bc%80%e6%ba%90%e5%88%86%e8%af%8d%e5%b7%a5%e5%85%b7.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/21/nutch%e5%bc%80%e6%ba%90%e7%88%ac%e8%99%ab%ef%bc%8blucene%e5%bc%80%e6%ba%90%e5%88%86%e8%af%8d%e5%b7%a5%e5%85%b7.shtml#comments</comments>
		<pubDate>Sun, 21 Sep 2008 11:25:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[nutch]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=324</guid>
		<description><![CDATA[Lucene是一个java写的开源分词工具，官方主页 http://lucene.apache.org/ 是apache下边的一个项目。
Lucene主要应用为分词并创建索引，提供高速的搜索服务，能讲海量的数据进行分词整理并生成轻量的数据包进行索引存储。
Lucene不是一个搜索引擎，但Lucene项目下有个子项目,Nutch爬虫。Nutch同样是基于Java的一个开源的爬虫，配合Lucene的分词索引功能，构建一个强大的开源搜索引擎。
官方Lucene已经更新到2.3.2版本http://svn.apache.org/repos/asf/lucene/java/tags/lucene_2_3_2/CHANGES.txt，Nutch已经更新到了0.9版本http://www.apache.org/dist/lucene/nutch/CHANGES-0.9.txt。
在测试中，我使用了Nutch0.7.2 http://apache.mirror.phpchina.com/lucene/nutch/nutch-0.7.2.tar.gz,比较稳定，而且对中文分词的效果也不错，能达到使用的水平，因为没有服务，只在本机做了简单测试，没有对效率进行评估，若哪位达人有闲置服务器，可借老朽一用。
]]></description>
			<content:encoded><![CDATA[<p>Lucene是一个java写的开源分词工具，官方主页 http://lucene.apache.org/ 是apache下边的一个项目。</p>
<p>Lucene主要应用为分词并创建索引，提供高速的搜索服务，能讲海量的数据进行分词整理并生成轻量的数据包进行索引存储。</p>
<p>Lucene不是一个搜索引擎，但Lucene项目下有个子项目,Nutch爬虫。Nutch同样是基于Java的一个开源的爬虫，配合Lucene的分词索引功能，构建一个强大的开源搜索引擎。</p>
<p>官方Lucene已经更新到2.3.2版本http://svn.apache.org/repos/asf/lucene/java/tags/lucene_2_3_2/CHANGES.txt，Nutch已经更新到了0.9版本http://www.apache.org/dist/lucene/nutch/CHANGES-0.9.txt。</p>
<p>在测试中，我使用了Nutch0.7.2 http://apache.mirror.phpchina.com/lucene/nutch/nutch-0.7.2.tar.gz,比较稳定，而且对中文分词的效果也不错，能达到使用的水平，因为没有服务，只在本机做了简单测试，没有对效率进行评估，若哪位达人有闲置服务器，可借老朽一用。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/21/nutch%e5%bc%80%e6%ba%90%e7%88%ac%e8%99%ab%ef%bc%8blucene%e5%bc%80%e6%ba%90%e5%88%86%e8%af%8d%e5%b7%a5%e5%85%b7.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS5下配置JDK环境</title>
		<link>http://www.sunboyu.cn/2008/09/20/centos5%e4%b8%8b%e9%85%8d%e7%bd%aejdk%e7%8e%af%e5%a2%83.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/20/centos5%e4%b8%8b%e9%85%8d%e7%bd%aejdk%e7%8e%af%e5%a2%83.shtml#comments</comments>
		<pubDate>Sat, 20 Sep 2008 07:25:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jdk]]></category>
		<category><![CDATA[环境]]></category>
		<category><![CDATA[配置]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=323</guid>
		<description><![CDATA[下载jdk安装包 http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-linux-i586-12_sep_2008.bin
编辑/etc/profile
export JAVA_HOME=/opt/jdk1.6.0
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
保存加载配置 ： source /etc/profile
然后终端用echo $PATH 监测是否成功。
最后监测 java -version
如果回显出现
java version &#8220;1.6.0_10-rc2&#8243;
Java(TM) SE Runtime Environment (build 1.6.0_10-rc2-b32)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
则证明安装成功
]]></description>
			<content:encoded><![CDATA[<p>下载jdk安装包 http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-linux-i586-12_sep_2008.bin</p>
<p>编辑/etc/profile</p>
<p>export JAVA_HOME=/opt/jdk1.6.0<br />
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br />
export PATH=$PATH:$JAVA_HOME/bin<br />
export JRE_HOME=$JAVA_HOME/jre</p>
<p>保存加载配置 ： source /etc/profile</p>
<p>然后终端用echo $PATH 监测是否成功。</p>
<p>最后监测 java -version</p>
<p>如果回显出现</p>
<p>java version &#8220;1.6.0_10-rc2&#8243;<br />
Java(TM) SE Runtime Environment (build 1.6.0_10-rc2-b32)<br />
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)<br />
则证明安装成功</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/20/centos5%e4%b8%8b%e9%85%8d%e7%bd%aejdk%e7%8e%af%e5%a2%83.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我为什么要屏蔽百度</title>
		<link>http://www.sunboyu.cn/2008/09/20/%e6%88%91%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e5%b1%8f%e8%94%bd%e7%99%be%e5%ba%a6.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/20/%e6%88%91%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e5%b1%8f%e8%94%bd%e7%99%be%e5%ba%a6.shtml#comments</comments>
		<pubDate>Sat, 20 Sep 2008 06:18:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[相当拍砖]]></category>
		<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[屏蔽百度]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=322</guid>
		<description><![CDATA[其实百度只是一个代名词，我的博客决定屏蔽国内搜索引擎。
原因1：我的博客虽然技术不是原创，但大部分文章都是原创，起码所有的技术自己的做过，达到熟悉的程度，算作一种笔记，不适合转载或者当作教程，因此没有转载的价值。而部分个人技术网站转载我的文章，后发现不好，直接攻击作者，使我收到不白之冤。
原因2：技术博客英文多，而百度包括国内搜索引擎特长是中文分词，因此不适合。
原因3：蹭的服务器，不好意思浪费人家的带宽。
原因4：没了。
屏蔽优势：真正喜欢技术，并且有点深度的，一定会来找我，并且记住我的地址。我相信原创博客的魅力。
]]></description>
			<content:encoded><![CDATA[<p>其实百度只是一个代名词，我的博客决定屏蔽国内搜索引擎。</p>
<p>原因1：我的博客虽然技术不是原创，但大部分文章都是原创，起码所有的技术自己的做过，达到熟悉的程度，算作一种笔记，不适合转载或者当作教程，因此没有转载的价值。而部分个人技术网站转载我的文章，后发现不好，直接攻击作者，使我收到不白之冤。</p>
<p>原因2：技术博客英文多，而百度包括国内搜索引擎特长是中文分词，因此不适合。</p>
<p>原因3：蹭的服务器，不好意思浪费人家的带宽。</p>
<p>原因4：没了。</p>
<p>屏蔽优势：真正喜欢技术，并且有点深度的，一定会来找我，并且记住我的地址。我相信原创博客的魅力。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/20/%e6%88%91%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e5%b1%8f%e8%94%bd%e7%99%be%e5%ba%a6.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使wordpress彻底屏蔽百度搜索引擎</title>
		<link>http://www.sunboyu.cn/2008/09/19/%e4%bd%bfwordpress%e5%bd%bb%e5%ba%95%e5%b1%8f%e8%94%bd%e7%99%be%e5%ba%a6%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/19/%e4%bd%bfwordpress%e5%bd%bb%e5%ba%95%e5%b1%8f%e8%94%bd%e7%99%be%e5%ba%a6%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e.shtml#comments</comments>
		<pubDate>Fri, 19 Sep 2008 05:00:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[baidu.wordpress]]></category>
		<category><![CDATA[屏蔽百度]]></category>
		<category><![CDATA[降权]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=320</guid>
		<description><![CDATA[最近听说baidu给wordpress降权了，很不爽，不过我的用户大部分都是google过来的，而且，搞技术的基本不用百度，所以，为了解决有限的带宽，就把百度的蜘蛛彻底屏蔽了好。
屏蔽，可以采用淘宝的方式 http://www.taobao.com/robots.txt
User-agent: Baiduspider
Disallow: /
&#160;
User-agent: baiduspider
Disallow: /
不过不建议这种方式，这种方式只能针对君子，现在，启用比较严格的方式：监测百度的蜘蛛特征。
if(strpos($_SERVER['HTTP_USER_AGENT'], ‘baiduspider’))
{
&#160;&#160; &#160;die('This site is die for baidu.com');
}
加到wordpress的index.php 里边，这样百度的正式蜘蛛就进不来了。不过百度还有很多匿名蜘蛛，就得靠收集ip的方式来防止了。
]]></description>
			<content:encoded><![CDATA[<p>最近听说baidu给wordpress降权了，很不爽，不过我的用户大部分都是google过来的，而且，搞技术的基本不用百度，所以，为了解决有限的带宽，就把百度的蜘蛛彻底屏蔽了好。</p>
<p>屏蔽，可以采用淘宝的方式 http://www.taobao.com/robots.txt</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">User-agent: Baiduspider</li>
<li>Disallow: /</li>
<li>&nbsp;</li>
<li>User-agent: baiduspider</li>
<li>Disallow: /</li></ol></div>
<p>不过不建议这种方式，这种方式只能针对君子，现在，启用比较严格的方式：监测百度的蜘蛛特征。</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">if(strpos($_SERVER['HTTP_USER_AGENT'], ‘baiduspider’))</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;die('This site is die for baidu.com');</li>
<li>}</li></ol></div>
<p>加到wordpress的index.php 里边，这样百度的正式蜘蛛就进不来了。不过百度还有很多匿名蜘蛛，就得靠收集ip的方式来防止了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/19/%e4%bd%bfwordpress%e5%bd%bb%e5%ba%95%e5%b1%8f%e8%94%bd%e7%99%be%e5%ba%a6%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>LAMP进阶计划</title>
		<link>http://www.sunboyu.cn/2008/09/16/lamp%e8%bf%9b%e9%98%b6%e8%ae%a1%e5%88%92.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/16/lamp%e8%bf%9b%e9%98%b6%e8%ae%a1%e5%88%92.shtml#comments</comments>
		<pubDate>Tue, 16 Sep 2008 15:35:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[进阶]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=316</guid>
		<description><![CDATA[lamp进阶计划
1、Linux,Apache,Mysql,PHP最新集成安装脚本，新增优化项
eAccelerator缓冲集成
PHP的SESSION由文件切入内存
DSO模式编译php至Apache
2、PHP代码优化
OOP核心类库完善
通用功能模块的开发
]]></description>
			<content:encoded><![CDATA[<p>lamp进阶计划</p>
<p>1、Linux,Apache,Mysql,PHP最新集成安装脚本，新增优化项</p>
<p>eAccelerator缓冲集成</p>
<p>PHP的SESSION由文件切入内存</p>
<p>DSO模式编译php至Apache</p>
<p>2、PHP代码优化</p>
<p>OOP核心类库完善</p>
<p>通用功能模块的开发</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/16/lamp%e8%bf%9b%e9%98%b6%e8%ae%a1%e5%88%92.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>科硕K-5253，中秋中关村淘得</title>
		<link>http://www.sunboyu.cn/2008/09/16/%e7%a7%91%e7%a1%95k-5253%ef%bc%8c%e4%b8%ad%e7%a7%8b%e4%b8%ad%e5%85%b3%e6%9d%91%e6%b7%98%e5%be%97.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/16/%e7%a7%91%e7%a1%95k-5253%ef%bc%8c%e4%b8%ad%e7%a7%8b%e4%b8%ad%e5%85%b3%e6%9d%91%e6%b7%98%e5%be%97.shtml#comments</comments>
		<pubDate>Tue, 16 Sep 2008 05:12:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[先锋]]></category>
		<category><![CDATA[科硕]]></category>
		<category><![CDATA[移动光驱]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=311</guid>
		<description><![CDATA[科硕K-5253移动光驱盒，人民币120元，兼容性据说不错，本人用此盒配先锋DVD刻录，运行正常，但未测试，又购得5片先锋DVD刻录待测试。

]]></description>
			<content:encoded><![CDATA[<p>科硕K-5253移动光驱盒，人民币120元，兼容性据说不错，本人用此盒配先锋DVD刻录，运行正常，但未测试，又购得5片先锋DVD刻录待测试。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/09/1203373212985696924.jpg"><img class="aligncenter size-full wp-image-312" title="1203373212985696924" src="http://www.sunboyu.cn/upfiles/2008/09/1203373212985696924.jpg" alt="" width="200" height="200" /></a><a href="http://www.sunboyu.cn/upfiles/2008/09/6d8480319ef6c3fe714e66f7ecb88ff9.jpg"><img class="aligncenter size-full wp-image-313" title="6d8480319ef6c3fe714e66f7ecb88ff9" src="http://www.sunboyu.cn/upfiles/2008/09/6d8480319ef6c3fe714e66f7ecb88ff9.jpg" alt="" width="500" height="375" /></a><a href="http://www.sunboyu.cn/upfiles/2008/09/e976ee7aa138f31ec2e0a69e194ca6e9.jpg"><img class="aligncenter size-full wp-image-314" title="e976ee7aa138f31ec2e0a69e194ca6e9" src="http://www.sunboyu.cn/upfiles/2008/09/e976ee7aa138f31ec2e0a69e194ca6e9.jpg" alt="" width="500" height="375" /></a><a href="http://www.sunboyu.cn/upfiles/2008/09/5d26e940e5ab7e0e48c2ebcd5bf49faf.jpg"><img class="aligncenter size-full wp-image-315" title="5d26e940e5ab7e0e48c2ebcd5bf49faf" src="http://www.sunboyu.cn/upfiles/2008/09/5d26e940e5ab7e0e48c2ebcd5bf49faf.jpg" alt="" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/16/%e7%a7%91%e7%a1%95k-5253%ef%bc%8c%e4%b8%ad%e7%a7%8b%e4%b8%ad%e5%85%b3%e6%9d%91%e6%b7%98%e5%be%97.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>发现一本好书《构建可扩展得Web站点》</title>
		<link>http://www.sunboyu.cn/2008/09/11/%e5%8f%91%e7%8e%b0%e4%b8%80%e6%9c%ac%e5%a5%bd%e4%b9%a6%e3%80%8a%e6%9e%84%e5%bb%ba%e5%8f%af%e6%89%a9%e5%b1%95%e5%be%97web%e7%ab%99%e7%82%b9%e3%80%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/11/%e5%8f%91%e7%8e%b0%e4%b8%80%e6%9c%ac%e5%a5%bd%e4%b9%a6%e3%80%8a%e6%9e%84%e5%bb%ba%e5%8f%af%e6%89%a9%e5%b1%95%e5%be%97web%e7%ab%99%e7%82%b9%e3%80%8b.shtml#comments</comments>
		<pubDate>Thu, 11 Sep 2008 12:22:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[书评]]></category>
		<category><![CDATA[扩展]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=310</guid>
		<description><![CDATA[今天在网上搜到一本好书，发现一本好书《构建可扩展得Web站点》，下班急赶中关村书店购得。
本书为 flickr.com得架构师所作，从目录和书的页数来看，这不是关于技术的描述和教授类书籍，而是关于一些技术实现的笔记跟心得。大略一番，好多知识值得程序员去思考。
底下会仔细阅读，榨取其净化。
]]></description>
			<content:encoded><![CDATA[<p>今天在网上搜到一本好书，发现一本好书《构建可扩展得Web站点》，下班急赶中关村书店购得。</p>
<p>本书为 flickr.com得架构师所作，从目录和书的页数来看，这不是关于技术的描述和教授类书籍，而是关于一些技术实现的笔记跟心得。大略一番，好多知识值得程序员去思考。</p>
<p>底下会仔细阅读，榨取其净化。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/11/%e5%8f%91%e7%8e%b0%e4%b8%80%e6%9c%ac%e5%a5%bd%e4%b9%a6%e3%80%8a%e6%9e%84%e5%bb%ba%e5%8f%af%e6%89%a9%e5%b1%95%e5%be%97web%e7%ab%99%e7%82%b9%e3%80%8b.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>各国鬼片恐怖片点评</title>
		<link>http://www.sunboyu.cn/2008/09/09/%e5%90%84%e5%9b%bd%e9%ac%bc%e7%89%87%e6%81%90%e6%80%96%e7%89%87%e7%82%b9%e8%af%84.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/09/%e5%90%84%e5%9b%bd%e9%ac%bc%e7%89%87%e6%81%90%e6%80%96%e7%89%87%e7%82%b9%e8%af%84.shtml#comments</comments>
		<pubDate>Tue, 09 Sep 2008 05:47:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[恐怖片]]></category>
		<category><![CDATA[电影]]></category>
		<category><![CDATA[鬼片]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=309</guid>
		<description><![CDATA[昨晚又看一美国鬼片，实在无聊，点评下各国鬼片：
中国：中国鬼片分古装和现代两种，古装又以蒲松龄的《聊斋》原型的居多，大都是一些狐仙，画皮之类，又因当时的政局局势，大部分都是嫉恶从善的，另有就是《西游记》内容之类的鬼怪，不加多说。后至90年代，香港开始拍一些比较现代的狐仙大神之类的片子，内容也都跟香港的一些习俗有关，比如鬼节鬼怪出游，冤魂报仇，2000年左右，大陆也出现不少的鬼神之类，但更多的都是人来闹鬼，达到一种目的之类的故事情节。
美国：美国的恐怖跟当地文化有密切关系，暴利，血腥充斥其中，经常看到血淋淋的画面，大部分国人感觉恶心，而非恐怖，也有一些比如外星人，病毒，自然灾害之类，反正无恐怖的感觉。
日韩：要说恐怖片最好，我喜欢日韩的，能给人真正心理上的恐怖。未必是妖魔，未必是血腥，恐惧主要体现在心理和引导观者的思维，让观者自身融入其中，达到恐怖的效果。
从情节上，似乎这些年已经没有大的更新。这两年国内的恐怖效果片子，基本都是争权争钱，闹鬼或者灭口，最后某人跟其死苛，追出结果。韩国的基本是公式，冤魂复仇，然后找出冤魂根源，化解冤气。美国大片就更公式化了，闹灾，解灾，最后10秒钟灾又来了，然后你自己想去吧，其实没得想了。各国情节目前有稍微的抄袭，不加详述。
]]></description>
			<content:encoded><![CDATA[<p>昨晚又看一美国鬼片，实在无聊，点评下各国鬼片：</p>
<p>中国：中国鬼片分古装和现代两种，古装又以蒲松龄的《聊斋》原型的居多，大都是一些狐仙，画皮之类，又因当时的政局局势，大部分都是嫉恶从善的，另有就是《西游记》内容之类的鬼怪，不加多说。后至90年代，香港开始拍一些比较现代的狐仙大神之类的片子，内容也都跟香港的一些习俗有关，比如鬼节鬼怪出游，冤魂报仇，2000年左右，大陆也出现不少的鬼神之类，但更多的都是人来闹鬼，达到一种目的之类的故事情节。</p>
<p>美国：美国的恐怖跟当地文化有密切关系，暴利，血腥充斥其中，经常看到血淋淋的画面，大部分国人感觉恶心，而非恐怖，也有一些比如外星人，病毒，自然灾害之类，反正无恐怖的感觉。</p>
<p>日韩：要说恐怖片最好，我喜欢日韩的，能给人真正心理上的恐怖。未必是妖魔，未必是血腥，恐惧主要体现在心理和引导观者的思维，让观者自身融入其中，达到恐怖的效果。</p>
<p>从情节上，似乎这些年已经没有大的更新。这两年国内的恐怖效果片子，基本都是争权争钱，闹鬼或者灭口，最后某人跟其死苛，追出结果。韩国的基本是公式，冤魂复仇，然后找出冤魂根源，化解冤气。美国大片就更公式化了，闹灾，解灾，最后10秒钟灾又来了，然后你自己想去吧，其实没得想了。各国情节目前有稍微的抄袭，不加详述。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/09/%e5%90%84%e5%9b%bd%e9%ac%bc%e7%89%87%e6%81%90%e6%80%96%e7%89%87%e7%82%b9%e8%af%84.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql数据库抽象层操作类</title>
		<link>http://www.sunboyu.cn/2008/09/08/mysql%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%e6%93%8d%e4%bd%9c%e7%b1%bb.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/08/mysql%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%e6%93%8d%e4%bd%9c%e7%b1%bb.shtml#comments</comments>
		<pubDate>Mon, 08 Sep 2008 06:26:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[抽象层]]></category>
		<category><![CDATA[类]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=308</guid>
		<description><![CDATA[DB.InterFace.php
&#60;?php
/*&#160; DB.InterFace.php
&#160;*&#160; DB
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 28&#160; sunboyu@gmail.com
&#160;*&#160; Demo
&#160;*/
interface DateBaseConnect
{
&#160;&#160; &#160;#数据库连接
&#160;&#160; &#160;public function Connect( $host , $user , $pass , $datebase );
	#使用数据库
	public function selectDateBase( $datebase );
	#执行一个查询
	public function Query( $sql );
	#取得一行
	public function fetchRow( $sql );
	#取得所有
	public function fetchAll( $sql );
	#取得影响行数
	public function affectedRow();
	#取得结果行数
	public function recordCount();
	#取得上次插入ID
	public function insertID();
	#释放资源
	public function [...]]]></description>
			<content:encoded><![CDATA[<p>DB.InterFace.php</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">&lt;?php</li>
<li>/*&nbsp; DB.InterFace.php</li>
<li>&nbsp;*&nbsp; DB</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>&nbsp;*/</li>
<li>interface DateBaseConnect</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;#数据库连接</li>
<li>&nbsp;&nbsp; &nbsp;public function Connect( $host , $user , $pass , $datebase );</li>
<li>	#使用数据库</li>
<li>	public function selectDateBase( $datebase );</li>
<li>	#执行一个查询</li>
<li>	public function Query( $sql );</li>
<li>	#取得一行</li>
<li>	public function fetchRow( $sql );</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql );</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow();</li>
<li>	#取得结果行数</li>
<li>	public function recordCount();</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID();</li>
<li>	#释放资源</li>
<li>	public function close();</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p><span id="more-308"></span><br />
DB.Mysql.Class.php</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">&lt;?php</li>
<li>/*&nbsp; DB.Mysql.Class.php</li>
<li>&nbsp;*&nbsp; Mysql</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>&nbsp;*/</li>
<li>require_once(ROOT.&quot;/Include/Class/DB.InterFace.php&quot;);</li>
<li>class Mysql implements DateBaseConnect</li>
<li>{</li>
<li>	#连接标识</li>
<li>	public $handle = false;</li>
<li>	#结果标识</li>
<li>	public $query;</li>
<li>	#查询次数</li>
<li>	public $exetime;</li>
<li>	#数据库连接</li>
<li>&nbsp;&nbsp; &nbsp;public function Connect( $host , $user , $pass , $datebase )</li>
<li>	{</li>
<li>		$this-&gt;handle = @mysql_connect( $host , $user , $pass , false ) or die(&quot;Can't connetc to the DateBse.&quot;.mysql_error());</li>
<li>		$this-&gt;selectDateBase( $datebase );</li>
<li>		$this-&gt;exetime = 0;</li>
<li>	}</li>
<li>	#使用数据库</li>
<li>	public function selectDateBase( $datebase )</li>
<li>	{</li>
<li>		@mysql_select_db( $datebase , $this-&gt;handle ) or die(&quot;Can't select the DateBase&quot;.mysql_error());</li>
<li>	}</li>
<li>	#执行一个查询</li>
<li>	public function Query( $sql )</li>
<li>	{</li>
<li>		$this-&gt;query = mysql_query( $sql , $this-&gt;handle ) or die(&quot;query error&quot;.mysql_error());</li>
<li>		$this-&gt;exetime++;</li>
<li>		return true;</li>
<li>	}</li>
<li>	#取得一行</li>
<li>	public function fetchRow( $sql )</li>
<li>	{</li>
<li>		$this-&gt;Query( $sql );</li>
<li>		while( $row = mysql_fetch_array( $this-&gt;query, MYSQL_ASSOC ) )</li>
<li>		{</li>
<li>			return $row;</li>
<li>	&nbsp; &nbsp; }</li>
<li>		return false;</li>
<li>	}</li>
<li>	#取得所有</li>
<li>	public function fetchAll( $sql )</li>
<li>	{</li>
<li>		$this-&gt;Query( $sql );</li>
<li>		$rows = false;</li>
<li>		while( $rs = mysql_fetch_array( $this-&gt;query, MYSQL_ASSOC ) )</li>
<li>		{</li>
<li>			$rows[] = $rs;</li>
<li>		}</li>
<li>		return $rows;</li>
<li>	}</li>
<li>	#取得影响行数</li>
<li>	public function affectedRow()</li>
<li>	{</li>
<li>		return mysql_affected_rows( $this-&gt;query );</li>
<li>	}</li>
<li>	#取得结果行数</li>
<li>	public function recordCount()</li>
<li>	{</li>
<li>		return mysql_num_rows( $this-&gt;query );</li>
<li>	}</li>
<li>	#取得上次插入ID</li>
<li>	public function insertID()</li>
<li>	{</li>
<li>		return (mysql_insert_id()&gt;0) ? mysql_insert_id() : false;</li>
<li>	}</li>
<li>	#释放资源</li>
<li>	public function close()</li>
<li>	{</li>
<li>		@mysql_close( $this-&gt;handle );</li>
<li>	}</li>
<li>	#析构函数</li>
<li>	/*</li>
<li>	function __destruct()</li>
<li>	{</li>
<li>		$this-&gt;close();</li>
<li>	}</li>
<li>	*/</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>DB.Mysql.Fact.Class.php</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">&lt;?php</li>
<li>/*&nbsp; DB.Mysql.Fact.Class.php</li>
<li>&nbsp;*&nbsp; Mysql</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>&nbsp;*/</li>
<li>require_once(ROOT.&quot;/Include/Class/DB.Mysql.Class.php&quot;);</li>
<li>class DB extends Mysql</li>
<li>{</li>
<li>&nbsp;&nbsp; &nbsp;#插入操作</li>
<li>	/*</li>
<li>	$array = array(</li>
<li>	&nbsp; &nbsp; 'name' = &quot;sunboyu&quot;,</li>
<li>		'pass' = &quot;123456&quot;</li>
<li>	);</li>
<li>	*/</li>
<li>	function __insert( $array , $table )</li>
<li>	{</li>
<li>	&nbsp; &nbsp; $sql = &quot;INSERT INTO {$table} (&quot;;</li>
<li>	&nbsp; &nbsp; if(!is_array($array))</li>
<li>		{</li>
<li>		&nbsp; &nbsp; die('the array is not a array!');</li>
<li>		}</li>
<li>		$keys = array_keys( $array );</li>
<li>		$sql .= implode( ',' , $keys );</li>
<li>		$sql .= &quot;) VALUES (&quot;;</li>
<li>		foreach( $array as $key=&gt;$value )</li>
<li>		{</li>
<li>		&nbsp; &nbsp; if(is_int( $array[$key] ))</li>
<li>			{</li>
<li>			&nbsp; &nbsp; $sql .= $array[$key];</li>
<li>			}</li>
<li>			else if(is_string( $array[$key] ))</li>
<li>			{</li>
<li>			&nbsp; &nbsp; $sql .= &quot;'{$array[$key]}'&quot;;</li>
<li>			}</li>
<li>			$sql .= &quot;,&quot;;</li>
<li>		}</li>
<li>		$sql = substr_replace( $sql , &quot;&quot; , -1 );</li>
<li>		$sql .= &quot;)&quot;;</li>
<li>		return $this-&gt;Query( $sql );</li>
<li>	}</li>
<li>	</li>
<li>}</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/08/mysql%e6%95%b0%e6%8d%ae%e5%ba%93%e6%8a%bd%e8%b1%a1%e5%b1%82%e6%93%8d%e4%bd%9c%e7%b1%bb.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我找到了一本好书：《Getting_Real》</title>
		<link>http://www.sunboyu.cn/2008/09/05/%e6%88%91%e6%89%be%e5%88%b0%e4%ba%86%e4%b8%80%e6%9c%ac%e5%a5%bd%e4%b9%a6%ef%bc%9a%e3%80%8agetting_real%e3%80%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/05/%e6%88%91%e6%89%be%e5%88%b0%e4%ba%86%e4%b8%80%e6%9c%ac%e5%a5%bd%e4%b9%a6%ef%bc%9a%e3%80%8agetting_real%e3%80%8b.shtml#comments</comments>
		<pubDate>Fri, 05 Sep 2008 09:37:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>
		<category><![CDATA[Getting_Real]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=306</guid>
		<description><![CDATA[getting_real
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/09/getting_real.zip">getting_real</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/05/%e6%88%91%e6%89%be%e5%88%b0%e4%ba%86%e4%b8%80%e6%9c%ac%e5%a5%bd%e4%b9%a6%ef%bc%9a%e3%80%8agetting_real%e3%80%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>倒霉的ADODB，折腾死了</title>
		<link>http://www.sunboyu.cn/2008/09/05/%e5%80%92%e9%9c%89%e7%9a%84adodb%ef%bc%8c%e6%8a%98%e8%85%be%e6%ad%bb%e4%ba%86.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/05/%e5%80%92%e9%9c%89%e7%9a%84adodb%ef%bc%8c%e6%8a%98%e8%85%be%e6%ad%bb%e4%ba%86.shtml#comments</comments>
		<pubDate>Fri, 05 Sep 2008 08:56:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[adodb]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=305</guid>
		<description><![CDATA[突然发现ADODB_lite很多方法跟以前不一样了，变了好多，所以，一气之下决定放弃adodb，自己写个数据抽象层的类。
用别人的东西总是有很多的局限，如果去修改，工作量又很大。其实我们使用的也就是那么点功能，这样我们去完成自己的类工作量并不大，而且能根据自己的需求不断改进。
]]></description>
			<content:encoded><![CDATA[<p>突然发现ADODB_lite很多方法跟以前不一样了，变了好多，所以，一气之下决定放弃adodb，自己写个数据抽象层的类。</p>
<p>用别人的东西总是有很多的局限，如果去修改，工作量又很大。其实我们使用的也就是那么点功能，这样我们去完成自己的类工作量并不大，而且能根据自己的需求不断改进。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/05/%e5%80%92%e9%9c%89%e7%9a%84adodb%ef%bc%8c%e6%8a%98%e8%85%be%e6%ad%bb%e4%ba%86.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自行车码表到手</title>
		<link>http://www.sunboyu.cn/2008/09/04/%e8%87%aa%e8%a1%8c%e8%bd%a6%e7%a0%81%e8%a1%a8%e5%88%b0%e6%89%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/04/%e8%87%aa%e8%a1%8c%e8%bd%a6%e7%a0%81%e8%a1%a8%e5%88%b0%e6%89%8b.shtml#comments</comments>
		<pubDate>Thu, 04 Sep 2008 04:46:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[码表]]></category>
		<category><![CDATA[自行车]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=300</guid>
		<description><![CDATA[自行车码表的工作原理很简单，码表的基本配件有磁体（安装在前轮辐条上）、磁性感应器（安装在前轮叉子上）、表头（安装在车把上）、导线（连接表头和磁性 感应器）等。骑手骑行时，由车圈旋转带动磁体旋转，感应器捕捉到磁铁带来的信息，通过连接线传输至表头，表头对此进行处理，依据自行车的轮径周长计算出时 速、里程等信息，并显示给骑手看的。
说明书：码表说明书

]]></description>
			<content:encoded><![CDATA[<p>自行车码表的工作原理很简单，码表的基本配件有磁体（安装在前轮辐条上）、磁性感应器（安装在前轮叉子上）、表头（安装在车把上）、导线（连接表头和磁性 感应器）等。骑手骑行时，由车圈旋转带动磁体旋转，感应器捕捉到磁铁带来的信息，通过连接线传输至表头，表头对此进行处理，依据自行车的轮径周长计算出时 速、里程等信息，并显示给骑手看的。</p>
<p>说明书：<a href="http://www.sunboyu.cn/upfiles/2008/09/536e4b8ade69687e8afb4e6988ee4b9a6.doc">码表说明书</a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/09/img_3933.jpg"><img class="aligncenter size-full wp-image-301" title="img_3933" src="http://www.sunboyu.cn/upfiles/2008/09/img_3933.jpg" alt="" width="500" height="550" /></a><a href="http://www.sunboyu.cn/upfiles/2008/09/img_3931.jpg"><img class="aligncenter size-full wp-image-302" title="img_3931" src="http://www.sunboyu.cn/upfiles/2008/09/img_3931.jpg" alt="" width="500" height="554" /></a><a href="http://www.sunboyu.cn/upfiles/2008/09/img_3932.jpg"><img class="aligncenter size-full wp-image-303" title="img_3932" src="http://www.sunboyu.cn/upfiles/2008/09/img_3932.jpg" alt="" width="499" height="594" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/04/%e8%87%aa%e8%a1%8c%e8%bd%a6%e7%a0%81%e8%a1%a8%e5%88%b0%e6%89%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smarty被PHP抛弃，还是Smarty要走自己的路？</title>
		<link>http://www.sunboyu.cn/2008/09/04/smarty%e8%a2%abphp%e6%8a%9b%e5%bc%83%ef%bc%8c%e8%bf%98%e6%98%afsmarty%e8%a6%81%e8%b5%b0%e8%87%aa%e5%b7%b1%e7%9a%84%e8%b7%af%ef%bc%9f.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/04/smarty%e8%a2%abphp%e6%8a%9b%e5%bc%83%ef%bc%8c%e8%bf%98%e6%98%afsmarty%e8%a6%81%e8%b5%b0%e8%87%aa%e5%b7%b1%e7%9a%84%e8%b7%af%ef%bc%9f.shtml#comments</comments>
		<pubDate>Thu, 04 Sep 2008 03:12:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smarty]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=298</guid>
		<description><![CDATA[打开     http://smarty.php.net/
发现只剩下了这样的字

Smarty has moved
Smarty is no longer a subproject of the PHP project, and has subsequently  moved to its own domain: www.smarty.net
]]></description>
			<content:encoded><![CDATA[<p>打开     http://smarty.php.net/</p>
<p>发现只剩下了这样的字</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/09/e69caae591bde5908d.bmp"><img class="aligncenter size-full wp-image-299" title="e69caae591bde5908d" src="http://www.sunboyu.cn/upfiles/2008/09/e69caae591bde5908d.bmp" alt="" /></a></p>
<p>Smarty has moved</p>
<h2>Smarty is no longer a subproject of the PHP project, and has subsequently  moved to its own domain: <a href="http://www.smarty.net/">www.smarty.net</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/04/smarty%e8%a2%abphp%e6%8a%9b%e5%bc%83%ef%bc%8c%e8%bf%98%e6%98%afsmarty%e8%a6%81%e8%b5%b0%e8%87%aa%e5%b7%b1%e7%9a%84%e8%b7%af%ef%bc%9f.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OA UI设计之我所见</title>
		<link>http://www.sunboyu.cn/2008/09/03/oa-ui%e8%ae%be%e8%ae%a1%e4%b9%8b%e6%88%91%e6%89%80%e8%a7%81.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/03/oa-ui%e8%ae%be%e8%ae%a1%e4%b9%8b%e6%88%91%e6%89%80%e8%a7%81.shtml#comments</comments>
		<pubDate>Wed, 03 Sep 2008 15:05:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[OA]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=297</guid>
		<description><![CDATA[OA之中UI设计尤为重要,在本系统编写以及朋友体验的过程中,总结出以下观点,即开发前需要进行需求分析的一些要点，我的开发目标是针对一个用户群，即中小企业：
1、用户群的计算机水平。给IT公司用的系统我认为比较好作，但也难伺候。好作的原因是，那帮人在没有说明书的情况下熟练应用。难伺候的就是，每天他们都提很多建议，bug，恨不得自己马上跳槽到OA公司帮他们开发，如果达不到满足，就去找麻烦，让开发者很是头疼。而对于一些“电脑白痴”用户来说，则要注重易用性，简便性，给他们找更多便于理解的图标，增加更加详尽的帮助提示是重头戏，而功能的重要性则排在其后。
2、用户群公司的软硬件情况。当然我的系统不是太浪费资源，而是查看下用户所有的显示器大小，操作系统和浏览器状况。如果软件针对一个特性公司特定人群，而这帮人的软硬件情况基本一致的话，浏览器兼容性基本就可以不考虑了。因为网管不会闲着没事去装各个版本的浏览器。
3、用户群的年龄和工作习惯。这个问题我一直考虑，就是正文使用9pt和10.5pt的问题。目前老外网站基本都是9pt左右的字号，尤其英文，很小，但这并不符合我们的国情。最近sina等门户网站首页也都使用了10.5pt/14px大小的字体，完全是为了照顾读者的眼睛。自己看看那些常年在电脑前的人们，基本都架着“望远镜”看电脑。再则，如果客户群都是一些中老年人，建议字号再加大。至于老外的眼睛，不敢说都好，但人家大号显示器的价格都高，这点是真的。
其他想起来再写。
如果一个系统仅针对一个特性的公司，那么调查好以上的情况，对系统开发的设计，速度都有很大提高。
]]></description>
			<content:encoded><![CDATA[<p>OA之中UI设计尤为重要,在本系统编写以及朋友体验的过程中,总结出以下观点,即开发前需要进行需求分析的一些要点，我的开发目标是针对一个用户群，即中小企业：</p>
<p>1、用户群的计算机水平。给IT公司用的系统我认为比较好作，但也难伺候。好作的原因是，那帮人在没有说明书的情况下熟练应用。难伺候的就是，每天他们都提很多建议，bug，恨不得自己马上跳槽到OA公司帮他们开发，如果达不到满足，就去找麻烦，让开发者很是头疼。而对于一些“电脑白痴”用户来说，则要注重易用性，简便性，给他们找更多便于理解的图标，增加更加详尽的帮助提示是重头戏，而功能的重要性则排在其后。</p>
<p>2、用户群公司的软硬件情况。当然我的系统不是太浪费资源，而是查看下用户所有的显示器大小，操作系统和浏览器状况。如果软件针对一个特性公司特定人群，而这帮人的软硬件情况基本一致的话，浏览器兼容性基本就可以不考虑了。因为网管不会闲着没事去装各个版本的浏览器。</p>
<p>3、用户群的年龄和工作习惯。这个问题我一直考虑，就是正文使用9pt和10.5pt的问题。目前老外网站基本都是9pt左右的字号，尤其英文，很小，但这并不符合我们的国情。最近sina等门户网站首页也都使用了10.5pt/14px大小的字体，完全是为了照顾读者的眼睛。自己看看那些常年在电脑前的人们，基本都架着“望远镜”看电脑。再则，如果客户群都是一些中老年人，建议字号再加大。至于老外的眼睛，不敢说都好，但人家大号显示器的价格都高，这点是真的。</p>
<p>其他想起来再写。</p>
<p>如果一个系统仅针对一个特性的公司，那么调查好以上的情况，对系统开发的设计，速度都有很大提高。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/03/oa-ui%e8%ae%be%e8%ae%a1%e4%b9%8b%e6%88%91%e6%89%80%e8%a7%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google 谷歌浏览器 Chrome 预览</title>
		<link>http://www.sunboyu.cn/2008/09/03/google-%e8%b0%b7%e6%ad%8c%e6%b5%8f%e8%a7%88%e5%99%a8-chrome-%e9%a2%84%e8%a7%88.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/03/google-%e8%b0%b7%e6%ad%8c%e6%b5%8f%e8%a7%88%e5%99%a8-chrome-%e9%a2%84%e8%a7%88.shtml#comments</comments>
		<pubDate>Wed, 03 Sep 2008 01:55:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=295</guid>
		<description><![CDATA[
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
那个标好像腾讯,总得来说，美工还是可以，跟firefox操作差不多。
下载地址 http://www.sunboyu.cn/sourse/ChromeSetup.exe
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/09/e69caae591bde5908d.jpg"><img class="aligncenter size-full wp-image-296" title="e69caae591bde5908d" src="http://www.sunboyu.cn/upfiles/2008/09/e69caae591bde5908d.jpg" alt="" width="500" height="372" /></a></p>
<p><span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: -webkit-monospace; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px;">Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13</span></p>
<p>那个标好像腾讯,总得来说，美工还是可以，跟firefox操作差不多。</p>
<p>下载地址 http://www.sunboyu.cn/sourse/ChromeSetup.exe</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/03/google-%e8%b0%b7%e6%ad%8c%e6%b5%8f%e8%a7%88%e5%99%a8-chrome-%e9%a2%84%e8%a7%88.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>松散耦合与紧密耦合</title>
		<link>http://www.sunboyu.cn/2008/09/03/%e6%9d%be%e6%95%a3%e8%80%a6%e5%90%88%e4%b8%8e%e7%b4%a7%e5%af%86%e8%80%a6%e5%90%88.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/03/%e6%9d%be%e6%95%a3%e8%80%a6%e5%90%88%e4%b8%8e%e7%b4%a7%e5%af%86%e8%80%a6%e5%90%88.shtml#comments</comments>
		<pubDate>Wed, 03 Sep 2008 01:04:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[原创技术]]></category>
		<category><![CDATA[感悟]]></category>
		<category><![CDATA[耦合]]></category>
		<category><![CDATA[软件工程]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=294</guid>
		<description><![CDATA[松散耦合的好处，是对模块更加灵活的控制。随意得增删，修改部分功能，而不至于牵一发而动全身。以前项目我们曾经追求过紧密耦合，结构是每个人都很痛苦。
紧凑的耦合并非无利处，一些资源利润率可以放到最低。从OpenOA开发中，第30个版本和70个版本左右的区别，能看出数据库模块的耦合。
]]></description>
			<content:encoded><![CDATA[<p>松散耦合的好处，是对模块更加灵活的控制。随意得增删，修改部分功能，而不至于牵一发而动全身。以前项目我们曾经追求过紧密耦合，结构是每个人都很痛苦。</p>
<p>紧凑的耦合并非无利处，一些资源利润率可以放到最低。从OpenOA开发中，第30个版本和70个版本左右的区别，能看出数据库模块的耦合。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/03/%e6%9d%be%e6%95%a3%e8%80%a6%e5%90%88%e4%b8%8e%e7%b4%a7%e5%af%86%e8%80%a6%e5%90%88.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenOA－概况</title>
		<link>http://www.sunboyu.cn/2008/09/02/openoa%ef%bc%8d%e6%a6%82%e5%86%b5.shtml</link>
		<comments>http://www.sunboyu.cn/2008/09/02/openoa%ef%bc%8d%e6%a6%82%e5%86%b5.shtml#comments</comments>
		<pubDate>Tue, 02 Sep 2008 00:58:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[openoa]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=293</guid>
		<description><![CDATA[OpenOA旨在打造一种开放式的办公平台，松散的架构适合灵活增删模块，便于二次开发。
一期工程主要规划：
账户管理
人员信息管理
科室管理
这三个是OA的基础部分。
另外一个附加的功能是CRM模块，此模块计划仿照一个开源CRM进行编写。
]]></description>
			<content:encoded><![CDATA[<p>OpenOA旨在打造一种开放式的办公平台，松散的架构适合灵活增删模块，便于二次开发。<br />
一期工程主要规划：<br />
账户管理<br />
人员信息管理<br />
科室管理<br />
这三个是OA的基础部分。<br />
另外一个附加的功能是CRM模块，此模块计划仿照一个开源CRM进行编写。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/09/02/openoa%ef%bc%8d%e6%a6%82%e5%86%b5.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单分页程序,adodb+smarty</title>
		<link>http://www.sunboyu.cn/2008/08/31/%e7%ae%80%e5%8d%95%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8fadodbsmarty.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/31/%e7%ae%80%e5%8d%95%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8fadodbsmarty.shtml#comments</comments>
		<pubDate>Sun, 31 Aug 2008 09:56:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[adodb]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=292</guid>
		<description><![CDATA[分页类
&#60;?php
/*&#160; Page.Class.php
&#160;*&#160; Page
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 28&#160; sunboyu@gmail.com
&#160;*&#160; Demo
	$page = new Page( 1 , 'v_user' , '*' , '' );
	$rs = $page-&#62;__getlist();
	$smarty-&#62;assign(&#34;page&#34;,$page-&#62;__getpagelist());
&#160;*/
&#160;class Page
&#160;{
	 public $count;&#160; &#160; &#160; #结果总数
	 public $page;&#160; &#160; &#160; &#160;#当前页
	 public $pagesize;&#160; &#160;#每页结果数
	 public $pagecount;&#160; #翻页数
	 public $baseurl;&#160; &#160; #url
	 public $result;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>分页类</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">&lt;?php</li>
<li>/*&nbsp; Page.Class.php</li>
<li>&nbsp;*&nbsp; Page</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>	$page = new Page( 1 , 'v_user' , '*' , '' );</li>
<li>	$rs = $page-&gt;__getlist();</li>
<li>	$smarty-&gt;assign(&quot;page&quot;,$page-&gt;__getpagelist());</li>
<li>&nbsp;*/</li>
<li>&nbsp;class Page</li>
<li>&nbsp;{</li>
<li>	 public $count;&nbsp; &nbsp; &nbsp; #结果总数</li>
<li>	 public $page;&nbsp; &nbsp; &nbsp; &nbsp;#当前页</li>
<li>	 public $pagesize;&nbsp; &nbsp;#每页结果数</li>
<li>	 public $pagecount;&nbsp; #翻页数</li>
<li>	 public $baseurl;&nbsp; &nbsp; #url</li>
<li>	 public $result;&nbsp; &nbsp; &nbsp;#结果数组集</li>
<li>	 public $pagelist;&nbsp; &nbsp;#每翻页数</li>
<li>	 </li>
<li>	 public $db;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#数据库连接</li>
<li>	 public $table;&nbsp; &nbsp; &nbsp; #要查询的表</li>
<li>	 public $fileds;&nbsp; &nbsp; &nbsp;#要返回的字段</li>
<li>	 public $where;&nbsp; &nbsp; &nbsp; #where条件</li>
<li>&nbsp;</li>
<li>	 #构造函数，初始化变量</li>
<li>	 function __construct( $page , $table , $fields = '*' , $where = false , $baseurl = false )</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;global $_CFG;</li>
<li>		 $this-&gt;db&nbsp; &nbsp; &nbsp; &nbsp; = GetDB();</li>
<li>		 $this-&gt;count&nbsp; &nbsp; &nbsp;= $count;</li>
<li>		 $this-&gt;table&nbsp; &nbsp; &nbsp;= $table;</li>
<li>		 $this-&gt;page&nbsp; &nbsp; &nbsp; = isset($page) ? intval($_GET['page']) : 1;</li>
<li>		 $this-&gt;fileds&nbsp; &nbsp; = $fields;</li>
<li>		 $this-&gt;pagesize&nbsp; = $_CFG['pagesize'];</li>
<li>		 $this-&gt;baseurl&nbsp; &nbsp;= ($baseurl!=false) ? $baseurl : $this-&gt;__geturl();</li>
<li>		 $this-&gt;pagelist&nbsp; = $_CFG['pagelist'];</li>
<li>		 $this-&gt;where&nbsp; &nbsp; &nbsp;= $where;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得当前url</li>
<li>	 function __geturl()</li>
<li>	 {</li>
<li>		$str = ereg_replace(sprintf(&quot;(^|&amp;)page=%d&quot;,$this-&gt;page),&quot;&quot;,$_SERVER['QUERY_STRING']);</li>
<li>		return $str==&quot;&quot; ? '?' : $str;</li>
<li>	 }</li>
<li>	 </li>
<li>	 #获得记录集</li>
<li>	 function __getlist()</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;#获得count记录</li>
<li>		 $sql = sprintf(&quot;SELECT COUNT(0) AS table_count FROM %s&quot;,$this-&gt;table);</li>
<li>		 $rs = $this-&gt;db-&gt;Execute( $sql );</li>
<li>		 $this-&gt;count = $rs-&gt;fields['table_count'];</li>
<li>	&nbsp; &nbsp; &nbsp;$offset = ($this-&gt;page-1)*$this-&gt;pagesize-1;</li>
<li>	&nbsp; &nbsp; &nbsp;$sql = sprintf(&quot;SELECT %s FROM %s %s&quot;,$this-&gt;fileds,$this-&gt;table,(($this-&gt;where!=false) ? &quot; WHERE &quot;.$this-&gt;where : ''));</li>
<li>		 $rs = $this-&gt;db-&gt;SelectLimit( $sql , $this-&gt;pagesize , $offset );</li>
<li>		 $list = false;</li>
<li>		 while(!$rs-&gt;EOF)</li>
<li>		 {</li>
<li>		&nbsp; &nbsp; &nbsp;$list[] = $rs-&gt;fields;</li>
<li>			 $rs-&gt;MoveNext();</li>
<li>		 }</li>
<li>		 return $list;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得分页列表</li>
<li>	 function __getpagelist()</li>
<li>	 {</li>
<li>		 $this-&gt;result['count'] = $this-&gt;count;</li>
<li>		 $this-&gt;result['page'] = $this-&gt;page;</li>
<li>		 $this-&gt;result['pagesize'] = $this-&gt;pagesize;</li>
<li>		 $this-&gt;result['pagecount'] = ceil($this-&gt;count/$this-&gt;pagesize);</li>
<li>		 if($this-&gt;result['pagecount']&lt;=1) //只有一页以下</li>
<li>		 {</li>
<li>			 $this-&gt;result['pagelist'] = 0;</li>
<li>		 }</li>
<li>		 else //一页以上</li>
<li>		 {</li>
<li>			 #前一页，第一页的算法</li>
<li>			 $this-&gt;result['first'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 $this-&gt;result['pre'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 #后一页，最后一页的算法</li>
<li>			 $this-&gt;result['next'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>			 $this-&gt;result['last'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>&nbsp;</li>
<li>			 </li>
<li>&nbsp;</li>
<li>			 #起始</li>
<li>			 $pagearray = array();</li>
<li>			 $start = floor(($this-&gt;page-1)/10)*10+1;</li>
<li>			 for($i=0;$i&lt;10;$i++)</li>
<li>			 {</li>
<li>			&nbsp; &nbsp; &nbsp;if( ($start+$i) &lt;= $this-&gt;result['pagecount'])</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['page'] = $start+$i; </li>
<li>				 }</li>
<li>				 if( ($start+$i) != $this-&gt;page )</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['link'] = 1; </li>
<li>				 }</li>
<li>			 }</li>
<li>			 #分页导航列表</li>
<li>			 $this-&gt;result['pagelist'] = $pagearray;</li>
<li>			 $this-&gt;result['baseurl'] = $this-&gt;baseurl;</li>
<li>		 }</li>
<li>		 return $this-&gt;result;</li>
<li>	 }</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>smarty模版</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">{{config_load file=&quot;Lang.Page.$lang.conf&quot;}}&lt;div id=&quot;page&quot;&gt;</li>
<li>&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		{{#gongs#}}{{$page.count}}{{#pagecountend#}} {{#pagepagesizeper#}}{{$page.pagesize}}{{#pagepagelistper#}}{{#tiao#}}&nbsp; {{#gongs#}}{{$page.pagecount}}{{#page#}} {{#pagepage#}}{{$page.page+1}}{{#page#}}</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.pagecount&gt;1}}</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;{{#pagefirst#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagefirst#}}</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;{{#pagepre#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagepre#}}</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if $vols.link eq 1}}</li>
<li>			&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]&lt;/a&gt;</li>
<li>			{{else}}</li>
<li>			[{{$vols.page}}]</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.page+1}}&quot;&gt;{{#pagenext#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagenext#}}</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.pagecount}}&quot;&gt;{{#pageend#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagelast#}}</li>
<li>		{{/if}}</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/div&gt;</li></ol></div>
<p>语言包内容</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">pagecountend&nbsp; &nbsp; &nbsp; = &quot;条数据&quot;</li>
<li>pagepagesizeper&nbsp; &nbsp;= &quot;每页&quot;</li>
<li>pagepagesizeend&nbsp; &nbsp;= &quot;条&quot;</li>
<li>page&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;页&quot;</li>
<li>tiao&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;条&quot;</li>
<li>pagepage&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;当前第&quot;</li>
<li>pagefirst&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;首页&quot;</li>
<li>pagepre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;上一页&quot;</li>
<li>pagenext&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;下一页&quot;</li>
<li>pagelast&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;尾页&quot;</li>
<li>gongs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;共&quot;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/31/%e7%ae%80%e5%8d%95%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8fadodbsmarty.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单的PHP+SMARTY分页类</title>
		<link>http://www.sunboyu.cn/2008/08/29/%e7%ae%80%e5%8d%95%e7%9a%84phpsmarty%e5%88%86%e9%a1%b5%e7%b1%bb.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/29/%e7%ae%80%e5%8d%95%e7%9a%84phpsmarty%e5%88%86%e9%a1%b5%e7%b1%bb.shtml#comments</comments>
		<pubDate>Fri, 29 Aug 2008 15:21:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[类]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=291</guid>
		<description><![CDATA[类的代码
&#60;?php
/*&#160; Page.Class.php
&#160;*&#160; Page
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 28&#160; sunboyu@gmail.com
&#160;*/
&#160;class Page
&#160;{
	 public $count;&#160; &#160; &#160; #结果总数
	 public $page;&#160; &#160; &#160; &#160;#当前页
	 public $pagesize;&#160; &#160;#每页结果数
	 public $pagecount;&#160; #翻页数
	 public $baseurl;&#160; &#160; #url
	 public $result;&#160; &#160; &#160;#结果数组集
	 public $pagelist;&#160; &#160;#每翻页数
&#160;
	 #构造函数，初始化变量
	 function __construct( $count , $page , $pagesize , [...]]]></description>
			<content:encoded><![CDATA[<p>类的代码</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">&lt;?php</li>
<li>/*&nbsp; Page.Class.php</li>
<li>&nbsp;*&nbsp; Page</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*/</li>
<li>&nbsp;class Page</li>
<li>&nbsp;{</li>
<li>	 public $count;&nbsp; &nbsp; &nbsp; #结果总数</li>
<li>	 public $page;&nbsp; &nbsp; &nbsp; &nbsp;#当前页</li>
<li>	 public $pagesize;&nbsp; &nbsp;#每页结果数</li>
<li>	 public $pagecount;&nbsp; #翻页数</li>
<li>	 public $baseurl;&nbsp; &nbsp; #url</li>
<li>	 public $result;&nbsp; &nbsp; &nbsp;#结果数组集</li>
<li>	 public $pagelist;&nbsp; &nbsp;#每翻页数</li>
<li>&nbsp;</li>
<li>	 #构造函数，初始化变量</li>
<li>	 function __construct( $count , $page , $pagesize , $pagelist , $baseurl = false )</li>
<li>	 {</li>
<li>		 $this-&gt;count&nbsp; &nbsp; &nbsp;= $count;</li>
<li>		 $this-&gt;page&nbsp; &nbsp; &nbsp; = $page;</li>
<li>		 $this-&gt;pagesize&nbsp; = $pagesize;</li>
<li>		 $this-&gt;baseurl&nbsp; &nbsp;= isset($baseurl) ? $baseurl : $this-&gt;__geturl();</li>
<li>		 $this-&gt;pagelist = $pagelist;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得当前url</li>
<li>	 function __geturl()</li>
<li>	 {</li>
<li>		return ereg_replace(&quot;(^|&amp;)page={$page}&quot;,&quot;&quot;,$_SERVER['QUERY_STRING']);</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得分页列表</li>
<li>	 function __getpagelist()</li>
<li>	 {</li>
<li>		 $this-&gt;result['count'] = $this-&gt;count;</li>
<li>		 $this-&gt;result['page'] = $this-&gt;page;</li>
<li>		 $this-&gt;result['pagesize'] = $this-&gt;pagesize;</li>
<li>		 $this-&gt;result['pagecount'] = ceil($this-&gt;count/$this-&gt;pagesize);</li>
<li>		 if($this-&gt;result['pagecount']&lt;=1) //只有一页以下</li>
<li>		 {</li>
<li>			 $this-&gt;result['pagelist'] = 0;</li>
<li>		 }</li>
<li>		 else //一页以上</li>
<li>		 {</li>
<li>			 #前一页，第一页的算法</li>
<li>			 $this-&gt;result['first'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 $this-&gt;result['pre'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 #后一页，最后一页的算法</li>
<li>			 $this-&gt;result['next'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>			 $this-&gt;result['last'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>&nbsp;</li>
<li>			 </li>
<li>&nbsp;</li>
<li>			 #起始</li>
<li>			 $pagearray = array();</li>
<li>			 $start = floor(($this-&gt;page-1)/10)*10+1;</li>
<li>			 for($i=0;$i&lt;10;$i++)</li>
<li>			 {</li>
<li>			&nbsp; &nbsp; &nbsp;if( ($start+$i) &lt;= $this-&gt;result['pagecount'])</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['page'] = $start+$i; </li>
<li>				 }</li>
<li>				 if( ($start+$i) != $this-&gt;page )</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['link'] = 1; </li>
<li>				 }</li>
<li>			 }</li>
<li>			 #分页导航列表</li>
<li>			 $this-&gt;result['pagelist'] = $pagearray;</li>
<li>			 $this-&gt;result['baseurl'] = $this-&gt;baseurl;</li>
<li>		 }</li>
<li>	 }</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>模版代码</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">&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		共{{$page.count}}条数据 每页{{$page.pagesize}}条 共{{$page.pagecount}}页 当前第{{$page.page}}页</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;首页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		首页</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;上一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		上一页</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if $vols.link eq 1}}</li>
<li>			&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]&lt;/a&gt;</li>
<li>			{{else}}</li>
<li>			[{{$vols.page}}]</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;下一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		下一页</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.pagecount}}&quot;&gt;尾页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		尾页</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li></ol></div>
<p>调用范例</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">&lt;?php</li>
<li>require_once('Include/Init.inc.php');</li>
<li>require_once('Include/Class/Page.Class.php');</li>
<li>$page = new Page( 999 , 12 , 10 , 6 , '?' );</li>
<li>$page-&gt;__getpagelist();</li>
<li>$smarty-&gt;assign(&quot;page&quot;,$page-&gt;result);</li>
<li>$smarty-&gt;display(&quot;page.html&quot;);</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/29/%e7%ae%80%e5%8d%95%e7%9a%84phpsmarty%e5%88%86%e9%a1%b5%e7%b1%bb.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql视图应用</title>
		<link>http://www.sunboyu.cn/2008/08/28/mysql%e8%a7%86%e5%9b%be%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/28/mysql%e8%a7%86%e5%9b%be%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Thu, 28 Aug 2008 12:55:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[视图]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=290</guid>
		<description><![CDATA[mysql视图创建方法，以我的OpenOA为例，创建user表left jion user_info表的视图
CREATE VIEW v_user AS SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)
然后查看
mysql&#62;use oa
mysql&#62;show tables
结果显示，v_user是库oa中的一个表。因此我们使用的时候，可以直接使用语句 SELECT * FROM v_user
而这句也就等于 SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)
而实习在系统中，v_user 只有这么一个文件v_user.frm  也就是只有结构，没有数据和索引.打开后，可以看到详细的存储的内容
TYPE=VIEW
query=select `oa`.`user`.`id` AS `id`,`oa`.`user`.`username` AS `username`,`oa`.`user`.`nickname` AS `nickname`,`oa`.`user`.`password` AS `password`,`oa`.`user`.`lastlogintime` AS `lastlogintime`,`oa`.`user`.`lastloginip` AS `lastloginip`,`oa`.`user`.`loginrand` AS `loginrand`,`oa`.`user_info`.`user_id` AS `user_id`,`oa`.`user_info`.`user_realname` AS `user_realname`,`oa`.`user_info`.`user_sex` [...]]]></description>
			<content:encoded><![CDATA[<p>mysql视图创建方法，以我的OpenOA为例，创建user表left jion user_info表的视图</p>
<p>CREATE VIEW v_user AS SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)</p>
<p>然后查看</p>
<p>mysql&gt;use oa</p>
<p>mysql&gt;show tables</p>
<p>结果显示，v_user是库oa中的一个表。因此我们使用的时候，可以直接使用语句 SELECT * FROM v_user</p>
<p>而这句也就等于 SELECT * FROM user LEFT JOIN user_info ON (user.id = user_info.user_id)</p>
<p>而实习在系统中，v_user 只有这么一个文件v_user.frm  也就是只有结构，没有数据和索引.打开后，可以看到详细的存储的内容</p>
<p>TYPE=VIEW<br />
query=select `oa`.`user`.`id` AS `id`,`oa`.`user`.`username` AS `username`,`oa`.`user`.`nickname` AS `nickname`,`oa`.`user`.`password` AS `password`,`oa`.`user`.`lastlogintime` AS `lastlogintime`,`oa`.`user`.`lastloginip` AS `lastloginip`,`oa`.`user`.`loginrand` AS `loginrand`,`oa`.`user_info`.`user_id` AS `user_id`,`oa`.`user_info`.`user_realname` AS `user_realname`,`oa`.`user_info`.`user_sex` AS `user_sex`,`oa`.`user_info`.`user_age` AS `user_age`,`oa`.`user_info`.`user_birthplace` AS `user_birthplace`,`oa`.`user_info`.`user_homeaddress` AS `user_homeaddress`,`oa`.`user_info`.`user_idcard` AS `user_idcard`,`oa`.`user_info`.`user_graduateschool` AS `user_graduateschool`,`oa`.`user_info`.`user_educational` AS `user_educational`,`oa`.`user_info`.`user_graduatetime` AS `user_graduatetime`,`oa`.`user_info`.`user_homephone` AS `user_homephone`,`oa`.`user_info`.`user_cellphone` AS `user_cellphone`,`oa`.`user_info`.`user_workphone` AS `user_workphone`,`oa`.`user_info`.`user_fax` AS `user_fax`,`oa`.`user_info`.`user_email` AS `user_email`,`oa`.`user_info`.`user_oicq` AS `user_oicq`,`oa`.`user_info`.`user_msn` AS `user_msn` from (`oa`.`user` left join `oa`.`user_info` on((`oa`.`user`.`id` = `oa`.`user_info`.`user_id`)))<br />
md5=19f7a28463ad7447c3b4cc5428888fa6<br />
updatable=0<br />
algorithm=0<br />
definer_user=root<br />
definer_host=localhost<br />
suid=1<br />
with_check_option=0<br />
revision=1<br />
timestamp=2008-08-28 11:58:17<br />
create-version=1<br />
source=SELECT * FROM user LEFT JOIN user_info ON ( user.id = user_info.user_id )</p>
<p>都是啥意思，没有深究，只是能根据字面猜出来，如果只是用，到此位置即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/28/mysql%e8%a7%86%e5%9b%be%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS注释兼容性测试</title>
		<link>http://www.sunboyu.cn/2008/08/28/css%e6%b3%a8%e9%87%8a%e5%85%bc%e5%ae%b9%e6%80%a7%e6%b5%8b%e8%af%95.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/28/css%e6%b3%a8%e9%87%8a%e5%85%bc%e5%ae%b9%e6%80%a7%e6%b5%8b%e8%af%95.shtml#comments</comments>
		<pubDate>Wed, 27 Aug 2008 16:21:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[兼容]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=289</guid>
		<description><![CDATA[调试CSS差点调吐了，ff说啥都不认。后来起到html注释有兼容性，进行了一下测试。
风格1:手误的一种注释  &#60;!&#8211; *** &#8211;&#62;这本是html的注释，一不小心写了出来，结果，firefox不认，差点没调吐。
风格2:标准的注释 /* &#38;&#38;&#38;&#38;&#38;   */ ie6，firefox都兼容的。
另外写注释，注释跟两边边界空出一点，会好点，降低错误率。
]]></description>
			<content:encoded><![CDATA[<p>调试CSS差点调吐了，ff说啥都不认。后来起到html注释有兼容性，进行了一下测试。</p>
<p>风格1:手误的一种注释  &lt;!&#8211; *** &#8211;&gt;这本是html的注释，一不小心写了出来，结果，firefox不认，差点没调吐。</p>
<p>风格2:标准的注释 /* &amp;&amp;&amp;&amp;&amp;   */ ie6，firefox都兼容的。</p>
<p>另外写注释，注释跟两边边界空出一点，会好点，降低错误率。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/28/css%e6%b3%a8%e9%87%8a%e5%85%bc%e5%ae%b9%e6%80%a7%e6%b5%8b%e8%af%95.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP中FTP模块的一些应用</title>
		<link>http://www.sunboyu.cn/2008/08/27/php%e4%b8%adftp%e6%a8%a1%e5%9d%97%e7%9a%84%e4%b8%80%e4%ba%9b%e5%ba%94%e7%94%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/27/php%e4%b8%adftp%e6%a8%a1%e5%9d%97%e7%9a%84%e4%b8%80%e4%ba%9b%e5%ba%94%e7%94%a8.shtml#comments</comments>
		<pubDate>Wed, 27 Aug 2008 02:20:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=288</guid>
		<description><![CDATA[&#60;?php
class ftp
{
	//connect id
	var $ftp;
	//remote dir
	var $remotedir = '/';
	//local dir
	var $localdir = './';
	//write log
	var $writelog = false;
	//log file
	var $logfile = 'ftp_log.txt';
	//print log
	var $printlog = false;
	//session time
	var $timeout = 60;
	//construct connetc
	function __construct( $host , $user , $pass )
	{
		$this-&#62;ftp = @ftp_connect( $host );
		ftp_login( $this-&#62;ftp, $user , $pass );
		//ftp_set_option( $this-&#62;ftp , FTP_TIMEOUT_SEC , $this-&#62;timeout );
	}
	//list sub files
	function __list( $dir [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>class ftp</li>
<li>{</li>
<li>	//connect id</li>
<li>	var $ftp;</li>
<li>	//remote dir</li>
<li>	var $remotedir = '/';</li>
<li>	//local dir</li>
<li>	var $localdir = './';</li>
<li>	//write log</li>
<li>	var $writelog = false;</li>
<li>	//log file</li>
<li>	var $logfile = 'ftp_log.txt';</li>
<li>	//print log</li>
<li>	var $printlog = false;</li>
<li>	//session time</li>
<li>	var $timeout = 60;</li>
<li>	//construct connetc</li>
<li>	function __construct( $host , $user , $pass )</li>
<li>	{</li>
<li>		$this-&gt;ftp = @ftp_connect( $host );</li>
<li>		ftp_login( $this-&gt;ftp, $user , $pass );</li>
<li>		//ftp_set_option( $this-&gt;ftp , FTP_TIMEOUT_SEC , $this-&gt;timeout );</li>
<li>	}</li>
<li>	//list sub files</li>
<li>	function __list( $dir = false , $subtree = false )</li>
<li>	{</li>
<li>		$rlist = array();</li>
<li>		if(!$dir)</li>
<li>		{</li>
<li>			$dir = $this-&gt;remotedir;</li>
<li>		}</li>
<li>		$list = ftp_rawlist($this-&gt;ftp,$dir,TRUE);</li>
<li>		if(is_array($list))</li>
<li>		{</li>
<li>			foreach( $list as $key =&gt; $value )</li>
<li>			{</li>
<li>				$tmp = explode( ' ' , $value );</li>
<li>				$rlist[$key] = end($tmp);</li>
<li>				if(@ftp_chdir($this-&gt;ftp,$dir.$rlist[$key].'/'))</li>
<li>				{</li>
<li>					$rlist[$rlist[$key]] = $this-&gt;__list( $dir.$rlist[$key].'/' );</li>
<li>					unset($rlist[$key]);</li>
<li>				}</li>
<li>				unset($tmp);</li>
<li>			}</li>
<li>		}</li>
<li>		return $rlist;</li>
<li>	}</li>
<li>	//change dir&nbsp; $isabs = false,use rela dir default</li>
<li>	function __chdir( $dir , $isabs = false )</li>
<li>	{</li>
<li>		if(!$isabs)</li>
<li>		{</li>
<li>			$nextdir = $this-&gt;remotedir.$dir.'/';</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			$nextdir = $dir;</li>
<li>		}</li>
<li>		if(ftp_chdir($this-&gt;ftp,$nextdir))</li>
<li>		{</li>
<li>			$this-&gt;remotedir = $nextdir;</li>
<li>			return true;</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			return false;</li>
<li>		}</li>
<li>	}</li>
<li>	//close connect</li>
<li>	function __close()</li>
<li>	{</li>
<li>		@ftp_close($this-&gt;ftp);</li>
<li>	}</li>
<li>}</li>
<li>$ftp = new ftp( 'www.sunboyu.cn' , '**', '***' );</li>
<li>$ftp-&gt;__chdir('website',0);</li>
<li>$list = $ftp-&gt;__list('/');</li>
<li>echo $a = time();</li>
<li>print_r($list);</li>
<li>echo time() - $a;</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/27/php%e4%b8%adftp%e6%a8%a1%e5%9d%97%e7%9a%84%e4%b8%80%e4%ba%9b%e5%ba%94%e7%94%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>放弃ADODB_lite数据字典功能</title>
		<link>http://www.sunboyu.cn/2008/08/26/%e6%94%be%e5%bc%83adodb_lite%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e5%8a%9f%e8%83%bd.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/26/%e6%94%be%e5%bc%83adodb_lite%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e5%8a%9f%e8%83%bd.shtml#comments</comments>
		<pubDate>Tue, 26 Aug 2008 15:33:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[adodblite]]></category>
		<category><![CDATA[数据字典]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=287</guid>
		<description><![CDATA[对adodb_lite的数据字典功能进行测试使用后，发现这玩意是一块鸡肋。其优秀之处在于多种数据库的无缝切换，当使用范围扩大的时候，弊端随之暴露：
1：对字段类型的支持不够完全，比如enum类型
2：不支持存储过程触发器之类
而一个项目中，存储过程触发器之类使用很多，没有这些，但出写表的数据字典感觉意义不大，不过简单的表还是会用这种方式，其他的就爹生成sql语句了
]]></description>
			<content:encoded><![CDATA[<p>对adodb_lite的数据字典功能进行测试使用后，发现这玩意是一块鸡肋。其优秀之处在于多种数据库的无缝切换，当使用范围扩大的时候，弊端随之暴露：</p>
<p>1：对字段类型的支持不够完全，比如enum类型</p>
<p>2：不支持存储过程触发器之类</p>
<p>而一个项目中，存储过程触发器之类使用很多，没有这些，但出写表的数据字典感觉意义不大，不过简单的表还是会用这种方式，其他的就爹生成sql语句了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/26/%e6%94%be%e5%bc%83adodb_lite%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e5%8a%9f%e8%83%bd.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>今日北京风雨大作,浇老夫于知春路上</title>
		<link>http://www.sunboyu.cn/2008/08/26/%e4%bb%8a%e6%97%a5%e5%8c%97%e4%ba%ac%e9%a3%8e%e9%9b%a8%e5%a4%a7%e4%bd%9c%e6%b5%87%e8%80%81%e5%a4%ab%e4%ba%8e%e7%9f%a5%e6%98%a5%e8%b7%af%e4%b8%8a.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/26/%e4%bb%8a%e6%97%a5%e5%8c%97%e4%ba%ac%e9%a3%8e%e9%9b%a8%e5%a4%a7%e4%bd%9c%e6%b5%87%e8%80%81%e5%a4%ab%e4%ba%8e%e7%9f%a5%e6%98%a5%e8%b7%af%e4%b8%8a.shtml#comments</comments>
		<pubDate>Tue, 26 Aug 2008 01:20:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=286</guid>
		<description><![CDATA[记
]]></description>
			<content:encoded><![CDATA[<p>记</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/26/%e4%bb%8a%e6%97%a5%e5%8c%97%e4%ba%ac%e9%a3%8e%e9%9b%a8%e5%a4%a7%e4%bd%9c%e6%b5%87%e8%80%81%e5%a4%ab%e4%ba%8e%e7%9f%a5%e6%98%a5%e8%b7%af%e4%b8%8a.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP调用COM获得服务器硬件信息</title>
		<link>http://www.sunboyu.cn/2008/08/24/php%e8%b0%83%e7%94%a8com%e8%8e%b7%e5%be%97%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%a1%ac%e4%bb%b6%e4%bf%a1%e6%81%af.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/24/php%e8%b0%83%e7%94%a8com%e8%8e%b7%e5%be%97%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%a1%ac%e4%bb%b6%e4%bf%a1%e6%81%af.shtml#comments</comments>
		<pubDate>Sun, 24 Aug 2008 02:23:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>
		<category><![CDATA[com]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=285</guid>
		<description><![CDATA[function sys_windows() {
	$objLocator = new COM(&#34;WbemScripting.SWbemLocator&#34;);
	$wmi = $objLocator-&#62;ConnectServer();
	$prop = $wmi-&#62;get(&#34;Win32_PnPEntity&#34;);
	//CPU
	$cpuinfo = GetWMI($wmi,&#34;Win32_Processor&#34;, array(&#34;Name&#34;,&#34;L2CacheSize&#34;,&#34;NumberOfCores&#34;));
	$res['CPU个数'] = $cpuinfo[0]['NumberOfCores'];
	if (null == $res['CPU个数']) {
		$res['CPU个数'] = 1;
	}
	for ($i=0;$i&#60;$res['cpu']['num'];$i++){
		$res['CPU型号'] .= $cpuinfo[0]['Name'].&#34;&#60;br&#62;&#34;;
		$res['二级缓存'] .= $cpuinfo[0]['L2CacheSize'].&#34;&#60;br&#62;&#34;;
	}
	// SYSINFO
	$sysinfo = GetWMI($wmi,&#34;Win32_OperatingSystem&#34;, array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));
	$res['操作系统版本'] = $sysinfo[0]['Caption'].&#34; &#34;.$sysinfo[0]['CSDVersion'];
	$res['操作系统序列号'] = &#34;{$sysinfo[0]['SerialNumber']} 于&#34;.date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14))).&#34;安装&#34;;
	//UPTIME
	$res['最后重启时间'] = $sysinfo[0]['LastBootUpTime'];
&#160;
&#160;
	$sys_ticks = 3600*8 + time() - strtotime(substr($res['最后重启时间'],0,14));
	$min = $sys_ticks / 60;
	$hours = $min / 60;
	$days = floor($hours / [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">function sys_windows() {</li>
<li>	$objLocator = new COM(&quot;WbemScripting.SWbemLocator&quot;);</li>
<li>	$wmi = $objLocator-&gt;ConnectServer();</li>
<li>	$prop = $wmi-&gt;get(&quot;Win32_PnPEntity&quot;);</li>
<li>	//CPU</li>
<li>	$cpuinfo = GetWMI($wmi,&quot;Win32_Processor&quot;, array(&quot;Name&quot;,&quot;L2CacheSize&quot;,&quot;NumberOfCores&quot;));</li>
<li>	$res['CPU个数'] = $cpuinfo[0]['NumberOfCores'];</li>
<li>	if (null == $res['CPU个数']) {</li>
<li>		$res['CPU个数'] = 1;</li>
<li>	}</li>
<li>	for ($i=0;$i&lt;$res['cpu']['num'];$i++){</li>
<li>		$res['CPU型号'] .= $cpuinfo[0]['Name'].&quot;&lt;br&gt;&quot;;</li>
<li>		$res['二级缓存'] .= $cpuinfo[0]['L2CacheSize'].&quot;&lt;br&gt;&quot;;</li>
<li>	}</li>
<li>	// SYSINFO</li>
<li>	$sysinfo = GetWMI($wmi,&quot;Win32_OperatingSystem&quot;, array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));</li>
<li>	$res['操作系统版本'] = $sysinfo[0]['Caption'].&quot; &quot;.$sysinfo[0]['CSDVersion'];</li>
<li>	$res['操作系统序列号'] = &quot;{$sysinfo[0]['SerialNumber']} 于&quot;.date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14))).&quot;安装&quot;;</li>
<li>	//UPTIME</li>
<li>	$res['最后重启时间'] = $sysinfo[0]['LastBootUpTime'];</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>	$sys_ticks = 3600*8 + time() - strtotime(substr($res['最后重启时间'],0,14));</li>
<li>	$min = $sys_ticks / 60;</li>
<li>	$hours = $min / 60;</li>
<li>	$days = floor($hours / 24);</li>
<li>	$hours = floor($hours - ($days * 24));</li>
<li>	$min = floor($min - ($days * 60 * 24) - ($hours * 60));</li>
<li>	if ($days !== 0) $ress['day'] = $days.&quot;天&quot;;</li>
<li>	if ($hours !== 0) $ress['hours'] .= $hours.&quot;小时&quot;;</li>
<li>	$res['最后重启时间'] = $ress['day'].$ress['hours'].$min.&quot;分钟&quot;;</li>
<li>&nbsp;</li>
<li>	//MEMORY</li>
<li>	$res['物理内存'] = $sysinfo[0]['TotalVisibleMemorySize'];</li>
<li>	$res['剩余内存'] = $sysinfo[0]['FreePhysicalMemory'];</li>
<li>	$res['已使用内存'] = $res['物理内存'] - $res['剩余内存'];</li>
<li>	$res['使用率'] = round($res['已使用内存'] / $res['物理内存']*100,2);</li>
<li>&nbsp;</li>
<li>	$swapinfo = GetWMI($wmi,&quot;Win32_PageFileUsage&quot;, array('AllocatedBaseSize','CurrentUsage'));</li>
<li>&nbsp;</li>
<li>	// TODO swp区获取</li>
<li>	$res['交换分区'] = $swapinfo[0][AllocatedBaseSize];</li>
<li>	$res['已经使用'] = $swapinfo[0][CurrentUsage];</li>
<li>	$res['剩余内存'] = $res['swapTotal'] - $res['swapUsed'];</li>
<li>	$res['使用率'] = (floatval($res['swapTotal'])!=0)?round($res['swapUsed']/$res['swapTotal']*100,2):0;</li>
<li>&nbsp;</li>
<li>	// LoadPercentage</li>
<li>	$loadinfo = GetWMI($wmi,&quot;Win32_Processor&quot;, array(&quot;LoadPercentage&quot;));</li>
<li>	$res['系统平均负载'] = $loadinfo[0]['LoadPercentage'];</li>
<li>&nbsp;</li>
<li>	return $res;</li>
<li>}</li>
<li>&nbsp;</li>
<li>function GetWMI($wmi,$strClass, $strValue = array()) {</li>
<li>	$arrData = array();</li>
<li>&nbsp;</li>
<li>	$objWEBM = $wmi-&gt;Get($strClass);</li>
<li>	$arrProp = $objWEBM-&gt;Properties_;</li>
<li>	$arrWEBMCol = $objWEBM-&gt;Instances_();</li>
<li>	foreach($arrWEBMCol as $objItem) {</li>
<li>		@reset($arrProp);</li>
<li>		$arrInstance = array();</li>
<li>		foreach($arrProp as $propItem) {</li>
<li>			eval(&quot;\$value = \$objItem-&gt;&quot; . $propItem-&gt;Name . &quot;;&quot;);</li>
<li>			if (empty($strValue)) {</li>
<li>				$arrInstance[$propItem-&gt;Name] = trim($value);</li>
<li>			} else {</li>
<li>				if (in_array($propItem-&gt;Name, $strValue)) {</li>
<li>					$arrInstance[$propItem-&gt;Name] = trim($value);</li>
<li>				}</li>
<li>			}</li>
<li>		}</li>
<li>		$arrData[] = $arrInstance;</li>
<li>	}</li>
<li>	return $arrData;</li>
<li>}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/24/php%e8%b0%83%e7%94%a8com%e8%8e%b7%e5%be%97%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%a1%ac%e4%bb%b6%e4%bf%a1%e6%81%af.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小一探针</title>
		<link>http://www.sunboyu.cn/2008/08/21/%e5%b0%8f%e4%b8%80%e6%8e%a2%e9%92%88.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/21/%e5%b0%8f%e4%b8%80%e6%8e%a2%e9%92%88.shtml#comments</comments>
		<pubDate>Thu, 21 Aug 2008 03:26:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php探针]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=283</guid>
		<description><![CDATA[闲来没事，突然想写个探针
http://www.sunboyu.cn/info.php
难点很多，逐一突破。写这么个东西对PHP和系统的认识提高很快。
]]></description>
			<content:encoded><![CDATA[<p>闲来没事，突然想写个探针<br />
http://www.sunboyu.cn/info.php<br />
难点很多，逐一突破。写这么个东西对PHP和系统的认识提高很快。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/21/%e5%b0%8f%e4%b8%80%e6%8e%a2%e9%92%88.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>史上最牛的中文验证码，2过腾讯！</title>
		<link>http://www.sunboyu.cn/2008/08/18/%e5%8f%b2%e4%b8%8a%e6%9c%80%e7%89%9b%e7%9a%84%e4%b8%ad%e6%96%87%e9%aa%8c%e8%af%81%e7%a0%81%ef%bc%8c2%e8%bf%87%e8%85%be%e8%ae%af%ef%bc%81.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/18/%e5%8f%b2%e4%b8%8a%e6%9c%80%e7%89%9b%e7%9a%84%e4%b8%ad%e6%96%87%e9%aa%8c%e8%af%81%e7%a0%81%ef%bc%8c2%e8%bf%87%e8%85%be%e8%ae%af%ef%bc%81.shtml#comments</comments>
		<pubDate>Mon, 18 Aug 2008 15:39:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[验证码]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=282</guid>
		<description><![CDATA[测试地址 http://www.sunboyu.cn/sourse/nbcode.php
下载地址 http://www.sunboyu.cn/sourse/nbcode.rar
]]></description>
			<content:encoded><![CDATA[<p>测试地址 http://www.sunboyu.cn/sourse/nbcode.php</p>
<p>下载地址 http://www.sunboyu.cn/sourse/nbcode.rar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/18/%e5%8f%b2%e4%b8%8a%e6%9c%80%e7%89%9b%e7%9a%84%e4%b8%ad%e6%96%87%e9%aa%8c%e8%af%81%e7%a0%81%ef%bc%8c2%e8%bf%87%e8%85%be%e8%ae%af%ef%bc%81.shtml/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>wordpress奥运风格版正式上线！</title>
		<link>http://www.sunboyu.cn/2008/08/16/wordpress%e5%a5%a5%e8%bf%90%e9%a3%8e%e6%a0%bc%e7%89%88%e6%ad%a3%e5%bc%8f%e4%b8%8a%e7%ba%bf%ef%bc%81.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/16/wordpress%e5%a5%a5%e8%bf%90%e9%a3%8e%e6%a0%bc%e7%89%88%e6%ad%a3%e5%bc%8f%e4%b8%8a%e7%ba%bf%ef%bc%81.shtml#comments</comments>
		<pubDate>Sat, 16 Aug 2008 07:21:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[技术存档]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[奥运风格]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=281</guid>
		<description><![CDATA[经过一中午将近两个小时的努力，奥运风格终于上线！
]]></description>
			<content:encoded><![CDATA[<p>经过一中午将近两个小时的努力，奥运风格终于上线！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/16/wordpress%e5%a5%a5%e8%bf%90%e9%a3%8e%e6%a0%bc%e7%89%88%e6%ad%a3%e5%bc%8f%e4%b8%8a%e7%ba%bf%ef%bc%81.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用mysql保存session，并建立在线用户列表</title>
		<link>http://www.sunboyu.cn/2008/08/15/%e4%bd%bf%e7%94%a8mysql%e4%bf%9d%e5%ad%98session%ef%bc%8c%e5%b9%b6%e5%bb%ba%e7%ab%8b%e5%9c%a8%e7%ba%bf%e7%94%a8%e6%88%b7%e5%88%97%e8%a1%a8.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/15/%e4%bd%bf%e7%94%a8mysql%e4%bf%9d%e5%ad%98session%ef%bc%8c%e5%b9%b6%e5%bb%ba%e7%ab%8b%e5%9c%a8%e7%ba%bf%e7%94%a8%e6%88%b7%e5%88%97%e8%a1%a8.shtml#comments</comments>
		<pubDate>Fri, 15 Aug 2008 15:02:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=280</guid>
		<description><![CDATA[写OA，使用mysql存储session，这样，是为了获得在线用户的列表，为做一个web im做准备。
首先创建表,注，这里使用了adodb中数据字典的描述方法：
$Session_Fields = &#34;
session_id VARCHAR(100) NOTNULL,
session_value X DEFAULT '',
session_expires I(10) DEFAULT NULL,
userid I(5) DEFAULT NULL
&#34;;
$Session_Tables = array('mysql' =&#62; &#34;ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci COMMENT = 'session表'&#34;);
$dict = NewDataDictionary(GetDB());
$sqlarray = $dict-&#62;CreateTableSQL($_CFG['table']['session'], $Session_Fields, $Session_Tables);
$dict-&#62;ExecuteSQLArray($sqlarray);
然后session类:
&#60;?php
/*&#160; Session.Class.php
&#160;*&#160; Session Manager
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 14&#160; sunboyu@gmail.com
&#160;*/
class Session
{
	var $lifetime;
	var [...]]]></description>
			<content:encoded><![CDATA[<p>写OA，使用mysql存储session，这样，是为了获得在线用户的列表，为做一个web im做准备。</p>
<p>首先创建表,注，这里使用了adodb中数据字典的描述方法：</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">$Session_Fields = &quot;</li>
<li>session_id VARCHAR(100) NOTNULL,</li>
<li>session_value X DEFAULT '',</li>
<li>session_expires I(10) DEFAULT NULL,</li>
<li>userid I(5) DEFAULT NULL</li>
<li>&quot;;</li>
<li>$Session_Tables = array('mysql' =&gt; &quot;ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci COMMENT = 'session表'&quot;);</li>
<li>$dict = NewDataDictionary(GetDB());</li>
<li>$sqlarray = $dict-&gt;CreateTableSQL($_CFG['table']['session'], $Session_Fields, $Session_Tables);</li>
<li>$dict-&gt;ExecuteSQLArray($sqlarray);</li></ol></div>
<p>然后session类:</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">&lt;?php</li>
<li>/*&nbsp; Session.Class.php</li>
<li>&nbsp;*&nbsp; Session Manager</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 14&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*/</li>
<li>class Session</li>
<li>{</li>
<li>	var $lifetime;</li>
<li>	var $db = null;</li>
<li>	function __construct()</li>
<li>	{	</li>
<li>		#return adodb lite connetction</li>
<li>		$this-&gt;db = GetDB();</li>
<li>	}</li>
<li>	#open</li>
<li>	function open( $savepath , $session_name )</li>
<li>	{</li>
<li>		$this-&gt;lifetime =&nbsp; get_cfg_var(&quot;session.gc_maxlifetime&quot;);</li>
<li>		return true;</li>
<li>	}</li>
<li>	#close</li>
<li>	function close()</li>
<li>	{</li>
<li>		return true;</li>
<li>	}</li>
<li>	#read</li>
<li>	function read( $session_id )</li>
<li>	{</li>
<li>		global $_CFG;</li>
<li>		$sql = sprintf(&quot;SELECT * FROM %s WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString( $session_id ));</li>
<li>		$rs = $this-&gt;db-&gt;Execute( $sql );</li>
<li>		if($rs-&gt;RecordCount()&gt;0)</li>
<li>		{</li>
<li>			$result = $rs-&gt;fields;</li>
<li>			</li>
<li>			return $result['session_value'];</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			return null;</li>
<li>		}</li>
<li>	}</li>
<li>	#write</li>
<li>	function write( $session_id , $session_value )</li>
<li>	{</li>
<li>		global $_CFG;</li>
<li>		$sql = sprintf(&quot;SELECT session_id FROM %s WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString( $session_id ));</li>
<li>		$rs = $this-&gt;db-&gt;Execute( $sql );</li>
<li>		if($rs-&gt;RecordCount()==0)</li>
<li>		{</li>
<li>			$newsql = sprintf(&quot;INSERT INTO %s SET session_id = %s , session_value = %s , session_expires = %d&quot;,</li>
<li>				$_CFG['table']['session'],</li>
<li>				GetSqlString( $session_id ),</li>
<li>				GetSqlString( $session_value ),</li>
<li>				GetSqlString( $this-&gt;lifetime+time() , &quot;int&quot; ));</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			$newsql = sprintf(&quot;UPDATE %s SET session_value = %s , session_expires = %d WHERE session_id = %s&quot;,</li>
<li>				$_CFG['table']['session'],</li>
<li>				GetSqlString( $session_value ),</li>
<li>				GetSqlString( $this-&gt;lifetime+time() , &quot;int&quot; ),</li>
<li>				GetSqlString( $session_id ));</li>
<li>		}</li>
<li>		return $this-&gt;db-&gt;Execute( $newsql );</li>
<li>	}</li>
<li>	#destroy</li>
<li>	function destroy( $session_id )</li>
<li>	{	</li>
<li>		global $_CFG;</li>
<li>		$delsql = sprintf(&quot;DELETE FROM %s WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString( $session_id ));</li>
<li>		return $this-&gt;db-&gt;Execute( $delsql );</li>
<li>	}</li>
<li>	#gc</li>
<li>	function gc()</li>
<li>	{</li>
<li>		 global $_CFG;</li>
<li>		 $gcsql = sprintf(&quot;DELETE FROM %s WHERE session_expires &lt; %d&quot;,$_CFG['table']['session'],time());</li>
<li>		 return $this-&gt;db-&gt;Execute( $gcsql );</li>
<li>	}</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>session机制，之前已经介绍，实现代码如下</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">$session = new Session();</li>
<li>	session_set_save_handler(array(&amp;$session,&quot;open&quot;),</li>
<li>							 array(&amp;$session,&quot;close&quot;),</li>
<li>							 array(&amp;$session,&quot;read&quot;),</li>
<li>							 array(&amp;$session,&quot;write&quot;),</li>
<li>							 array(&amp;$session,&quot;destroy&quot;),</li>
<li>							 array(&amp;$session,&quot;gc&quot;));</li>
<li>	session_start();</li></ol></div>
<p>把session与用户id对应，使用以下语句即可</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">sprintf(&quot;UPDATE %s SET userid = %d WHERE session_id = %s&quot;,$_CFG['table']['session'],GetSqlString($rs['id'],'int'),GetSqlString(session_id(),'text'))</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/15/%e4%bd%bf%e7%94%a8mysql%e4%bf%9d%e5%ad%98session%ef%bc%8c%e5%b9%b6%e5%bb%ba%e7%ab%8b%e5%9c%a8%e7%ba%bf%e7%94%a8%e6%88%b7%e5%88%97%e8%a1%a8.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>静态分页算法解决方案收集</title>
		<link>http://www.sunboyu.cn/2008/08/14/%e9%9d%99%e6%80%81%e5%88%86%e9%a1%b5%e7%ae%97%e6%b3%95%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e6%94%b6%e9%9b%86.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/14/%e9%9d%99%e6%80%81%e5%88%86%e9%a1%b5%e7%ae%97%e6%b3%95%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e6%94%b6%e9%9b%86.shtml#comments</comments>
		<pubDate>Thu, 14 Aug 2008 03:36:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[静态]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=278</guid>
		<description><![CDATA[曾经看过动易CMS的代码，曾经在官方论坛上也讨论过分页算法的问题。主要的瓶颈在于，如果一个分类页数过多，那么每更新一个文件，需要生成 count/pagesize 个静态页面，这样再算上分发的话，消耗了大量的cpu，io，带宽。因此门户级的网站，设计一个好的分页算法或者说新闻组织结构是非常必要的。
这里考虑的是全静态网站，并且使用分发形式更新的，也就是在前端只有html静态文件。首页，板块首页，分类首页，这样当然就是由编辑即时更新并且分发。
而子分类，无下级的时候，就得考虑分页，对照以下门户级网站，看他们如何解决。
http://news.sina.com.cn/china/gd/2008-08-13/index.html
可以看出，新浪按照每天的新闻为一页，分页自然容易解决，使用天做为页数，这是天然纯净的算法。另外新浪新闻的实时性比较好，流量集中在当天新闻，这样也比较容易做负载的均衡和过期资源的回收。
http://news.163.com/special/00011SG2/shList.html
网易的每个分类只显示10页，这样就不会有大量分页列表的问题，顶多10页，我感觉比新浪少次。
http://news.cctv.com/china/index.shtml
cctv用的是TurboCMS，这个分页挺有意思，一个模板，但从数据库取500条记录，生成静态。因为记录只是一个标题，一个链接，字节数不会太大，那么用js去用这个大数组进行分页，貌似不错。很节约带宽的做法。赞一个！
sohu的100个分页，暂没看出他怎么做的，反正sohu有钱，大不了加机器。
]]></description>
			<content:encoded><![CDATA[<p>曾经看过动易CMS的代码，曾经在官方论坛上也讨论过分页算法的问题。主要的瓶颈在于，如果一个分类页数过多，那么每更新一个文件，需要生成 count/pagesize 个静态页面，这样再算上分发的话，消耗了大量的cpu，io，带宽。因此门户级的网站，设计一个好的分页算法或者说新闻组织结构是非常必要的。</p>
<p>这里考虑的是全静态网站，并且使用分发形式更新的，也就是在前端只有html静态文件。首页，板块首页，分类首页，这样当然就是由编辑即时更新并且分发。</p>
<p>而子分类，无下级的时候，就得考虑分页，对照以下门户级网站，看他们如何解决。</p>
<p>http://news.sina.com.cn/china/gd/2008-08-13/index.html</p>
<p>可以看出，新浪按照每天的新闻为一页，分页自然容易解决，使用天做为页数，这是天然纯净的算法。另外新浪新闻的实时性比较好，流量集中在当天新闻，这样也比较容易做负载的均衡和过期资源的回收。</p>
<p>http://news.163.com/special/00011SG2/shList.html</p>
<p>网易的每个分类只显示10页，这样就不会有大量分页列表的问题，顶多10页，我感觉比新浪少次。</p>
<p>http://news.cctv.com/china/index.shtml</p>
<p>cctv用的是TurboCMS，这个分页挺有意思，一个模板，但从数据库取500条记录，生成静态。因为记录只是一个标题，一个链接，字节数不会太大，那么用js去用这个大数组进行分页，貌似不错。很节约带宽的做法。赞一个！</p>
<p>sohu的100个分页，暂没看出他怎么做的，反正sohu有钱，大不了加机器。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/14/%e9%9d%99%e6%80%81%e5%88%86%e9%a1%b5%e7%ae%97%e6%b3%95%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e6%94%b6%e9%9b%86.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>关于学习</title>
		<link>http://www.sunboyu.cn/2008/08/13/%e5%85%b3%e4%ba%8e%e5%ad%a6%e4%b9%a0.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/13/%e5%85%b3%e4%ba%8e%e5%ad%a6%e4%b9%a0.shtml#comments</comments>
		<pubDate>Wed, 13 Aug 2008 09:40:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[学习]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=277</guid>
		<description><![CDATA[前段时间学习很疯狂，最近收了一段，感觉不学习的日子还真是不错。不过事业还得继续，我得继续研究我的lampweb开发。突然之间发现任何一种语言都有局限性，所以开始琢磨是不是看看ActionScript。毕竟在交互上，as比js更优秀一点。不知道这个观点是否正确。先去书店购书再说。
顺便提还没有完成的任务：完美的用户登录认证机制。
]]></description>
			<content:encoded><![CDATA[<p>前段时间学习很疯狂，最近收了一段，感觉不学习的日子还真是不错。不过事业还得继续，我得继续研究我的lampweb开发。突然之间发现任何一种语言都有局限性，所以开始琢磨是不是看看ActionScript。毕竟在交互上，as比js更优秀一点。不知道这个观点是否正确。先去书店购书再说。</p>
<p>顺便提还没有完成的任务：完美的用户登录认证机制。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/13/%e5%85%b3%e4%ba%8e%e5%ad%a6%e4%b9%a0.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常见文件http中content-type头值－(MIME类型)</title>
		<link>http://www.sunboyu.cn/2008/08/12/%e5%b8%b8%e8%a7%81%e6%96%87%e4%bb%b6http%e4%b8%adcontent-type%e5%a4%b4%e5%80%bc%ef%bc%8dmime%e7%b1%bb%e5%9e%8b.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/12/%e5%b8%b8%e8%a7%81%e6%96%87%e4%bb%b6http%e4%b8%adcontent-type%e5%a4%b4%e5%80%bc%ef%bc%8dmime%e7%b1%bb%e5%9e%8b.shtml#comments</comments>
		<pubDate>Tue, 12 Aug 2008 05:37:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[content-type]]></category>
		<category><![CDATA[mime]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=276</guid>
		<description><![CDATA[.ppt &#8211; application/mspowerpoint
.ai &#8211; application/postscript
.aif &#8211; audio/x-aiff
.aifc &#8211; audio/x-aiff
.aiff &#8211; audio/x-aiff
.asc &#8211; text/plain
.au &#8211; audio/basic
.avi &#8211; video/x-msvideo
.bcpio &#8211; application/x-bcpio
.bin &#8211; application/octet-stream
.c &#8211; text/plain
.cc &#8211; text/plain

.ccad &#8211; application/clariscad
.cdf &#8211; application/x-netcdf
.class &#8211; application/octet-stream
.cpio &#8211; application/x-cpio
.cpt &#8211; application/mac-compactpro
.csh &#8211; application/x-csh
.css &#8211; text/css
.dcr &#8211; application/x-director
.dir &#8211; application/x-director
.dms &#8211; application/octet-stream
.doc &#8211; application/msword
.drw &#8211; application/drafting
.dvi &#8211; application/x-dvi
.dwg &#8211; application/acad
.dxf &#8211; application/dxf
.dxr [...]]]></description>
			<content:encoded><![CDATA[<p>.ppt &#8211; application/mspowerpoint<br />
.ai &#8211; application/postscript<br />
.aif &#8211; audio/x-aiff<br />
.aifc &#8211; audio/x-aiff<br />
.aiff &#8211; audio/x-aiff<br />
.asc &#8211; text/plain<br />
.au &#8211; audio/basic<br />
.avi &#8211; video/x-msvideo<br />
.bcpio &#8211; application/x-bcpio<br />
.bin &#8211; application/octet-stream<br />
.c &#8211; text/plain<br />
.cc &#8211; text/plain</p>
<p><span id="more-276"></span><br />
.ccad &#8211; application/clariscad<br />
.cdf &#8211; application/x-netcdf<br />
.class &#8211; application/octet-stream<br />
.cpio &#8211; application/x-cpio<br />
.cpt &#8211; application/mac-compactpro<br />
.csh &#8211; application/x-csh<br />
.css &#8211; text/css<br />
.dcr &#8211; application/x-director<br />
.dir &#8211; application/x-director<br />
.dms &#8211; application/octet-stream<br />
.doc &#8211; application/msword<br />
.drw &#8211; application/drafting<br />
.dvi &#8211; application/x-dvi<br />
.dwg &#8211; application/acad<br />
.dxf &#8211; application/dxf<br />
.dxr &#8211; application/x-director<br />
.eps &#8211; application/postscript<br />
.etx &#8211; text/x-setext<br />
.exe &#8211; application/octet-stream<br />
.ez &#8211; application/andrew-inset<br />
.f &#8211; text/plain<br />
.f90 &#8211; text/plain<br />
.fli &#8211; video/x-fli<br />
.gif &#8211; image/gif<br />
.gtar &#8211; application/x-gtar<br />
.gz &#8211; application/x-gzip<br />
.h &#8211; text/plain<br />
.hdf &#8211; application/x-hdf<br />
.hh &#8211; text/plain<br />
.hqx &#8211; application/mac-binhex40<br />
.htm &#8211; text/html<br />
.html &#8211; text/html<br />
.ice &#8211; x-conference/x-cooltalk<br />
.ief &#8211; image/ief<br />
.iges &#8211; model/iges<br />
.igs &#8211; model/iges<br />
.ips &#8211; application/x-ipscript<br />
.ipx &#8211; application/x-ipix<br />
.jpe &#8211; image/jpeg<br />
.jpeg &#8211; image/jpeg<br />
.jpg &#8211; image/jpeg<br />
.js &#8211; application/x-javascript<br />
.kar &#8211; audio/midi<br />
.latex &#8211; application/x-latex<br />
.lha &#8211; application/octet-stream<br />
.lsp &#8211; application/x-lisp<br />
.lzh &#8211; application/octet-stream<br />
.m &#8211; text/plain<br />
.man &#8211; application/x-troff-man<br />
.me &#8211; application/x-troff-me<br />
.mesh &#8211; model/mesh<br />
.mid &#8211; audio/midi<br />
.midi &#8211; audio/midi<br />
.mif &#8211; application/vnd.mif<br />
.mime &#8211; www/mime<br />
.mov &#8211; video/quicktime<br />
.movie &#8211; video/x-sgi-movie<br />
.mp2 &#8211; audio/mpeg<br />
.mp3 &#8211; audio/mpeg<br />
.mpe &#8211; video/mpeg<br />
.mpeg &#8211; video/mpeg<br />
.mpg &#8211; video/mpeg<br />
.mpga &#8211; audio/mpeg<br />
.ms &#8211; application/x-troff-ms<br />
.msh &#8211; model/mesh<br />
.nc &#8211; application/x-netcdf<br />
.oda &#8211; application/oda<br />
.pbm &#8211; image/x-portable-bitmap<br />
.pdb &#8211; chemical/x-pdb<br />
.pdf &#8211; application/pdf<br />
.pgm &#8211; image/x-portable-graymap<br />
.pgn &#8211; application/x-chess-pgn<br />
.png &#8211; image/png<br />
.pnm &#8211; image/x-portable-anymap<br />
.pot &#8211; application/mspowerpoint<br />
.ppm &#8211; image/x-portable-pixmap<br />
.pps &#8211; application/mspowerpoint<br />
.ppt &#8211; application/mspowerpoint<br />
.ppz &#8211; application/mspowerpoint<br />
.pre &#8211; application/x-freelance<br />
.prt &#8211; application/pro_eng<br />
.ps &#8211; application/postscript<br />
.qt &#8211; video/quicktime<br />
.ra &#8211; audio/x-realaudio<br />
.ram &#8211; audio/x-pn-realaudio<br />
.ras &#8211; image/cmu-raster<br />
.rgb &#8211; image/x-rgb<br />
.rm &#8211; audio/x-pn-realaudio<br />
.roff &#8211; application/x-troff<br />
.rpm &#8211; audio/x-pn-realaudio-plugin<br />
.rtf &#8211; text/rtf<br />
.rtx &#8211; text/richtext<br />
.scm &#8211; application/x-lotusscreencam<br />
.set &#8211; application/set<br />
.sgm &#8211; text/sgml<br />
.sgml &#8211; text/sgml<br />
.sh &#8211; application/x-sh<br />
.shar &#8211; application/x-shar<br />
.silo &#8211; model/mesh<br />
.sit &#8211; application/x-stuffit<br />
.skd &#8211; application/x-koan<br />
.skm &#8211; application/x-koan<br />
.skp &#8211; application/x-koan<br />
.skt &#8211; application/x-koan<br />
.smi &#8211; application/smil<br />
.smil &#8211; application/smil<br />
.snd &#8211; audio/basic<br />
.sol &#8211; application/solids<br />
.spl &#8211; application/x-futuresplash<br />
.src &#8211; application/x-wais-source<br />
.step &#8211; application/STEP<br />
.stl &#8211; application/SLA<br />
.stp &#8211; application/STEP<br />
.sv4cpio &#8211; application/x-sv4cpio<br />
.sv4crc &#8211; application/x-sv4crc<br />
.swf &#8211; application/x-shockwave-flash<br />
.t &#8211; application/x-troff<br />
.tar &#8211; application/x-tar<br />
.tcl &#8211; application/x-tcl<br />
.tex &#8211; application/x-tex<br />
.texi &#8211; application/x-texinfo<br />
.texinfo &#8211; application/x-texinfo<br />
.tif &#8211; image/tiff<br />
.tiff &#8211; image/tiff<br />
.tr &#8211; application/x-troff<br />
.tsi &#8211; audio/TSP-audio<br />
.tsp &#8211; application/dsptype<br />
.tsv &#8211; text/tab-separated-values<br />
.txt &#8211; text/plain<br />
.unv &#8211; application/i-deas<br />
.ustar &#8211; application/x-ustar<br />
.vcd &#8211; application/x-cdlink<br />
.vda &#8211; application/vda<br />
.viv &#8211; video/vnd.vivo<br />
.vivo &#8211; video/vnd.vivo<br />
.vrml &#8211; model/vrml<br />
.wav &#8211; audio/x-wav<br />
.wrl &#8211; model/vrml<br />
.xbm &#8211; image/x-xbitmap<br />
.xlc &#8211; application/vnd.ms-excel<br />
.xll &#8211; application/vnd.ms-excel<br />
.xlm &#8211; application/vnd.ms-excel<br />
.xls &#8211; application/vnd.ms-excel<br />
.xlw &#8211; application/vnd.ms-excel<br />
.xml &#8211; text/xml<br />
.xpm &#8211; image/x-xpixmap<br />
.xwd &#8211; image/x-xwindowdump<br />
.xyz &#8211; chemical/x-pdb<br />
.zip &#8211; application/zip</p>
<p>够全的，以后就用这个了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/12/%e5%b8%b8%e8%a7%81%e6%96%87%e4%bb%b6http%e4%b8%adcontent-type%e5%a4%b4%e5%80%bc%ef%bc%8dmime%e7%b1%bb%e5%9e%8b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下与WinRar兼容的程序，rarlinux</title>
		<link>http://www.sunboyu.cn/2008/08/11/linux%e4%b8%8b%e4%b8%8ewinrar%e5%85%bc%e5%ae%b9%e7%9a%84%e7%a8%8b%e5%ba%8f%ef%bc%8crarlinux.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/11/linux%e4%b8%8b%e4%b8%8ewinrar%e5%85%bc%e5%ae%b9%e7%9a%84%e7%a8%8b%e5%ba%8f%ef%bc%8crarlinux.shtml#comments</comments>
		<pubDate>Mon, 11 Aug 2008 09:52:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LINUX]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rar]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=275</guid>
		<description><![CDATA[要做个linux下与windows兼容的加密压包与解包工具，选择了rarlinux。
从这里下载 http://www.rarlab.com/rar/rarbsd-3.8.b4.tar.gz
下载后，直接tar解压，make安装，如果想自定义安装位置，可以修改Makefile文件。如果是自定义路径，那么把路径加入到PATH中。PATH=$PATH:/path export PATH
然后可以敲命令 rar,查看帮助。
查看压缩文件列表  rar l file.rar
解压缩一个文件 rar e file.tat
压缩一个文件 rar a target.rar soursefile
压缩一个文件并且加密码 tar a -p[password] target.rar soursefile
]]></description>
			<content:encoded><![CDATA[<p>要做个linux下与windows兼容的加密压包与解包工具，选择了rarlinux。</p>
<p>从这里下载 http://www.rarlab.com/rar/rarbsd-3.8.b4.tar.gz</p>
<p>下载后，直接tar解压，make安装，如果想自定义安装位置，可以修改Makefile文件。如果是自定义路径，那么把路径加入到PATH中。PATH=$PATH:/path export PATH</p>
<p>然后可以敲命令 rar,查看帮助。</p>
<p>查看压缩文件列表  rar l file.rar</p>
<p>解压缩一个文件 rar e file.tat</p>
<p>压缩一个文件 rar a target.rar soursefile</p>
<p>压缩一个文件并且加密码 tar a -p[password] target.rar soursefile</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/11/linux%e4%b8%8b%e4%b8%8ewinrar%e5%85%bc%e5%ae%b9%e7%9a%84%e7%a8%8b%e5%ba%8f%ef%bc%8crarlinux.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小荷才露尖尖角</title>
		<link>http://www.sunboyu.cn/2008/08/10/%e5%b0%8f%e8%8d%b7%e6%89%8d%e9%9c%b2%e5%b0%96%e5%b0%96%e8%a7%92.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/10/%e5%b0%8f%e8%8d%b7%e6%89%8d%e9%9c%b2%e5%b0%96%e5%b0%96%e8%a7%92.shtml#comments</comments>
		<pubDate>Sun, 10 Aug 2008 14:39:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[荷花]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=272</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/08/img_3909.jpg"><img class="aligncenter size-full wp-image-273" title="img_3909" src="http://www.sunboyu.cn/upfiles/2008/08/img_3909.jpg" alt="" width="499" height="342" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/08/img_3908.jpg"><img class="aligncenter size-full wp-image-274" title="img_3908" src="http://www.sunboyu.cn/upfiles/2008/08/img_3908.jpg" alt="" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/10/%e5%b0%8f%e8%8d%b7%e6%89%8d%e9%9c%b2%e5%b0%96%e5%b0%96%e8%a7%92.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>爆笑雨中狗狗－原创摄影</title>
		<link>http://www.sunboyu.cn/2008/08/10/%e7%88%86%e7%ac%91%e9%9b%a8%e4%b8%ad%e7%8b%97%e7%8b%97%ef%bc%8d%e5%8e%9f%e5%88%9b%e6%91%84%e5%bd%b1.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/10/%e7%88%86%e7%ac%91%e9%9b%a8%e4%b8%ad%e7%8b%97%e7%8b%97%ef%bc%8d%e5%8e%9f%e5%88%9b%e6%91%84%e5%bd%b1.shtml#comments</comments>
		<pubDate>Sun, 10 Aug 2008 14:34:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[摄影]]></category>
		<category><![CDATA[狗狗]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=268</guid>
		<description><![CDATA[2008年8月10日于四环，遇雨，见狗狗，爆笑。



]]></description>
			<content:encoded><![CDATA[<p>2008年8月10日于四环，遇雨，见狗狗，爆笑。</p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/08/img_3915.jpg"><img class="aligncenter size-full wp-image-269" title="img_3915" src="http://www.sunboyu.cn/upfiles/2008/08/img_3915.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/08/img_3916.jpg"><img class="aligncenter size-full wp-image-270" title="img_3916" src="http://www.sunboyu.cn/upfiles/2008/08/img_3916.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://www.sunboyu.cn/upfiles/2008/08/img_3918.jpg"><img class="aligncenter size-full wp-image-271" title="img_3918" src="http://www.sunboyu.cn/upfiles/2008/08/img_3918.jpg" alt="" width="500" height="375" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/10/%e7%88%86%e7%ac%91%e9%9b%a8%e4%b8%ad%e7%8b%97%e7%8b%97%ef%bc%8d%e5%8e%9f%e5%88%9b%e6%91%84%e5%bd%b1.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>激情售书中</title>
		<link>http://www.sunboyu.cn/2008/08/09/%e6%bf%80%e6%83%85%e5%94%ae%e4%b9%a6%e4%b8%ad.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/09/%e6%bf%80%e6%83%85%e5%94%ae%e4%b9%a6%e4%b8%ad.shtml#comments</comments>
		<pubDate>Sat, 09 Aug 2008 15:47:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[纯属蛋疼]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[书]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=261</guid>
		<description><![CDATA[     
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sunboyu.cn/upfiles/2008/08/313388.jpg"><img class="alignnone size-medium wp-image-262" title="313388" src="http://www.sunboyu.cn/upfiles/2008/08/313388.jpg" alt="" width="70" height="103" /></a> <a href="http://www.sunboyu.cn/upfiles/2008/08/d01011597a.jpg"><img class="alignnone size-medium wp-image-263" title="d01011597a" src="http://www.sunboyu.cn/upfiles/2008/08/d01011597a.jpg" alt="" width="136" height="176" /> </a><a href="http://www.sunboyu.cn/upfiles/2008/08/imagewelancom.jpg"><img class="alignnone size-medium wp-image-264" title="imagewelancom" src="http://www.sunboyu.cn/upfiles/2008/08/imagewelancom.jpg" alt="" width="130" height="180" /> </a><a href="http://www.sunboyu.cn/upfiles/2008/08/ime9a5bfagewelancom.jpg"><img class="alignnone size-medium wp-image-265" title="ime9a5bfagewelancom" src="http://www.sunboyu.cn/upfiles/2008/08/ime9a5bfagewelancom.jpg" alt="" width="130" height="180" /> </a><a href="http://www.sunboyu.cn/upfiles/2008/08/zcover.jpg"><img class="alignnone size-medium wp-image-266" title="zcover" src="http://www.sunboyu.cn/upfiles/2008/08/zcover.jpg" alt="" width="141" height="200" /> </a><a href="http://www.sunboyu.cn/upfiles/2008/08/zscover.jpg"><img class="alignnone size-medium wp-image-267" title="zscover" src="http://www.sunboyu.cn/upfiles/2008/08/zscover.jpg" alt="" width="147" height="200" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/09/%e6%bf%80%e6%83%85%e5%94%ae%e4%b9%a6%e4%b8%ad.shtml/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 5.300 seconds -->
<!-- Cached page served by WP-Cache -->
