<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>夜雨轩</title>
		<link>http://www.luohuizhu.cn/</link>
		<description>人的头脑太复杂,时间过得久,有时候连自己也被自己骗了,记下来才是最真实的......</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Wed, 08 Sep 2010 20:26:23 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=690</guid>
			<title>最近</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>又有好久没更新blog了，有点太懒了</p>
<p>最近在折腾android，还属于入门阶段</p>
<p>新搞了另外一个android的blog：<a href="http://www.x25.cn">http://www.x25.cn</a>，坚持手工更新了一个多月，也快顶不住了</p>
<p>&nbsp;</p>
<p>店铺昨天正式宣告倒闭了，历时4个月整，，第一次做生意，净亏2W多，杯具！</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=690</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-09-03 09:32</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=689</guid>
			<title>换一种态度看程序员</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p><strong>有这样一群人，他们经常孤独地工作到深夜，漆黑夜里的显示器成为房间中唯一的光源，手边残留着比萨饼和碳酸饮料。繁重的编码任务让他们很少离开座位，即便是周五的深夜，这些人依旧在办公室中奋战。</strong><br />
乍一听，这像是在描述黑客们的工作状态。但实际上，大多数普通的开发人员就是这样生活着。除了工作，他们有家庭、兴趣以及责任，但项目的压力让他们无暇顾及工作以外的事情。工时长、假期短以及与当前社会发展脱节等问题普遍存在于他们当中。</p>
<p>虽然现在社会大力倡导所谓的知识经济，但这群聪明且高度专业化的人员不被重视，因为经理们认为，程序员是替代性很强的群体。这样的观念导致这些潜在的社会精英不得不重新考虑他们的职业规划。最终，他们当中的大多数另谋高就，另一些则踏入到全新的行业之中。<br />
<br />
你认为游戏行业真的是一片乐土吗?一名业内人士讲，游戏开发几乎会占据程序员生活的全部，因为产品质量总会有改进的余地。他们工作时间长，没有加班费以及应有的假期。有些员工甚至连续四年薪水都没有调整过。他身边不少同事都是因为工作而导致了离婚。<br />
<br />
当工作条件变得无法忍受时，最聪明以及最有天分的员工通常是最先离开的。凭借他们的资质，他们可以在其他领域挖掘到更多的机会。这样势必导致开发团队整体水平的下降。经理对开发者施加的压力越大，长期来看团队的效率就越低。IT顾问布鲁斯&middot;韦伯斯特将这种情况称为&ldquo;死海效应&rdquo;。如果公司发展每况愈下，它就更难得到真正的人才，也更难留住这些人，这样的恶性循环无疑会拖垮公司。离岸外包的出现则加剧了这种趋势：内部开发团队的效率越低，公司就越希望通过低成本外包取代这个团队。而内部开发者会强烈地感到他们即将被替代，因此无法集中精力工作。<br />
<br />
员工的倦怠会毁掉公司的未来，而经理们是可以降低死海效应的。他们可以设定合理的工作时长并且提供加班费，可以规定公休日并严格地执行，可以设置合理的产品发布时间以减少过度的压力。他们甚至可以尝试调整项目的开发方法，比如采用敏捷开发等。但是，最重要的一点就是，他们必须重新审视开发人员的价值。在这样一个与互联网发展速度同步的领域，每一个员工都应该被公平、公正地对待，并且获得应有的尊重，即使他们真地喜欢比萨饼和碳酸饮料。　<br />
<br />
《中国计算机报》</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=689</link>
			<category domain="http://www.luohuizhu.cn/?cid=3">生活（转）</category>
			<pubDate>2010-08-09 21:16</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=688</guid>
			<title>一些被忽视的 PHP 函数（整理）</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>真的是不用不知道，其实我们熟悉的 PHP 还有很多好东西没有发掘。<a title="http://infinity-infinity.com/2009/07/10-php-functions-you-probably-never-use/" href="http://infinity-infinity.com/2009/07/10-php-functions-you-probably-never-use/">看到这篇文章</a>，当时就泪奔了好几回，重点推荐下，顺便我自己也做个整理。</p>
<h2>sys_getloadavg()</h2>
<p><a title="http://cn.php.net/sys_getloadavg" href="http://cn.php.net/sys_getloadavg">这个函数</a>返回当前<a title="http://www.gracecode.com/archives/2973/" href="http://www.gracecode.com/archives/2973/">系统的负载均值信息</a>（当然 Windows 下不适用），详细文档可以翻阅 PHP 的相关文档。文档中有段示例代码，基本上也就能看出它的用途了。</p>
<pre>&lt;?php
$load = sys_getloadavg();
if ($load[0] &gt; 80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Server too busy. Please try again later.');
}</pre>
<p>PS，如果&ldquo;很不幸&rdquo;得你的 PHP 环境中没有这个函数，可以考虑使用下面这段代码 <a title="http://cn.php.net/manual/en/function.sys-getloadavg.php#67928" href="http://cn.php.net/manual/en/function.sys-getloadavg.php#67928">via</a></p>
<pre>if (!function_exists('sys_getloadavg')) {
    function sys_getloadavg()
    {
        $loadavg_file = '/proc/loadavg';
        if (file_exists($loadavg_file)) {
            return explode(chr(32),file_get_contents($loadavg_file));
        }
        return array(0,0,0);
    }
}</pre>
<p>这一特性如果使用得当，能减轻服务器部分压力。</p>
<h2>pack()</h2>
<p><a title="http://cn.php.net/pack" href="http://cn.php.net/pack">pack</a> 对应的还有个函数为 <a title="http://cn.php.net/unpack" href="http://cn.php.net/unpack">unpack</a>，用于压缩二进制串，文中的作者的示例非常清楚</p>
<pre>$pass_hash = pack(&quot;H*&quot;, md5(&quot;my-password&quot;));</pre>
<p>如果你使用 PHP5，那么可以直接这样子</p>
<pre>$pass_hash = md5(&quot;my-password&quot;, true); // PHP 5+</pre>
<p>这样做的好处之一是能减少串存储空间（能节省多少呢？可能又会是另篇文章了）。</p>
<p>这里还有个示例代码可以 pack 数组 <a title="http://cn.php.net/manual/en/function.pack.php#84258" href="http://cn.php.net/manual/en/function.pack.php#84258">via</a></p>
<pre>&lt;?php
function pack_array($v,$a) {
 return call_user_func_array(pack,array_merge(array($v),(array)$a));
}</pre>
<h2>cal_days_in_month()</h2>
<p><a title="http://cn.php.net/manual/en/function.cal-days-in-month.php" href="http://cn.php.net/manual/en/function.cal-days-in-month.php">该函数</a>可以直接返回指定月份中的天数，例如</p>
<pre>$days = cal_days_in_month(CAL_GREGORIAN, date(&quot;m&quot;), date(&quot;Y&quot;)); // 31</pre>
<p>我敢保证，<a title="http://cn.php.net/manual/en/function.cal-days-in-month.php#38666" href="http://cn.php.net/manual/en/function.cal-days-in-month.php#38666">你自己实现过类似功能的函数</a> :^)</p>
<h2>_()</h2>
<p>呃，<a title="http://cn.php.net/manual/en/function.gettext.php" href="http://cn.php.net/manual/en/function.gettext.php">这的确也是个 PHP 函数</a>（也有可能是最短的 PHP 内置函数）。<tt>_()</tt> 是它的&ldquo;小名&rdquo;，它的大名是 <tt>gettext()</tt>。</p>
<p>写过 Wordpress 皮肤的朋友会了解 <tt>__()</tt> 以及 <tt>_e()</tt> 这些函数，其实 PHP 早已经自带了相关的功能。</p>
<pre>// Set language to German
setlocale(LC_ALL, 'de_DE');
 
// Specify location of translation tables
bindtextdomain(&quot;myPHPApp&quot;, &quot;./locale&quot;);
 
// Choose domain
textdomain(&quot;myPHPApp&quot;);
 
echo _(&quot;Have a nice day&quot;);</pre>
<p>利用 <a title="http://cn.php.net/manual/en/ref.gettext.php" href="http://cn.php.net/manual/en/ref.gettext.php">gettext</a> 可以编写多语言的应用，现在您感兴趣的可能就是如何编写 locale 文件，这但已经不是此文涉及的重点，<a title="http://cn.php.net/manual/en/ref.gettext.php" href="http://cn.php.net/manual/en/ref.gettext.php">更多信息可以移步到这里</a>。</p>
<h2>get_browser()</h2>
<p>坦白讲，见到<a title="http://cn.php.net/get_browser" href="http://cn.php.net/get_browser">这个函数</a>我当时就彻底泪奔。有了这个函数，再也不用自己去分析 <tt>$_SERVER['HTTP_USER_AGENT']</tt> 这个字符串了。</p>
<p>更多的信息可以参考这里。在使用此函数前，<a title="http://browsers.garykeith.com/downloads.asp" href="http://browsers.garykeith.com/downloads.asp">你可能需要个 browscap.ini 配置文件</a>，相信你可以搞定的。</p>
<h2>debug_print_backtrace()</h2>
<p>以前查看函数调用堆栈，我会使用 <a title="http://xdebug.org/" href="http://xdebug.org/">xdebug</a> 等的扩展，其实 PHP5 版本以后已经<a title="http://cn.php.net/debug_print_backtrace" href="http://cn.php.net/debug_print_backtrace">内置了相关的函数</a>。</p>
<p><a title="http://cn.php.net/manual/en/function.debug-print-backtrace.php#92542" href="http://cn.php.net/manual/en/function.debug-print-backtrace.php#92542">顺便再分享个&ldquo;蛋疼&rdquo;的小技巧</a>，如果你记不住这个函数的名字，可以用这段代码同样能达到目的（看起来还是记住那个函数靠谱）：</p>
<pre>&lt;?php
$e = new Exception();
print_r(str_replace('/path/to/code/', '', $e-&gt;getTraceAsString()));</pre>
<h2>natsort()</h2>
<p>这个函数用于<a title="http://cn.php.net/natsort" href="http://cn.php.net/natsort">自然排序</a>，这个大家可能都要用到。贴下相关的文档链接以及示例代码</p>
<pre>$items = array(&quot;100 apples&quot;, &quot;5 apples&quot;, &quot;110 apples&quot;, &quot;55 apples&quot;);
 
// normal sorting:
sort($items);
print_r($items);
    # Outputs:
    # Array
    # (
    #     [0] =&gt; 100 apples
    #     [1] =&gt; 110 apples
    #     [2] =&gt; 5 apples
    #     [3] =&gt; 55 apples
    # )

natsort($items);
print_r($items);
    # Outputs:
    # Array
    # (
    #     [2] =&gt; 5 apples
    #     [3] =&gt; 55 apples
    #     [0] =&gt; 100 apples
    #     [1] =&gt; 110 apples
    # )</pre>
<p>有关自然排序的算法规则，可以<a title="http://sourcefrog.net/projects/natsort/" href="http://sourcefrog.net/projects/natsort/">参考这里的文档</a>。</p>
<h2>glob()</h2>
<p>这个<a title="http://cn.php.net/manual/en/function.glob.php" href="http://cn.php.net/manual/en/function.glob.php">函数的功能</a>同样让人感到泪奔，先不说功能直接上示例代码</p>
<pre>foreach (glob(&quot;*.php&quot;) as $file) {
    echo &quot;$file\n&quot;;
}</pre>
<p>相比你已经了解该函数的用途了，那么我们就可以有更多的&ldquo;玩法&rdquo;，例如就显示目录（<a title="http://cn.php.net/manual/en/function.glob.php#95972" href="http://cn.php.net/manual/en/function.glob.php#95972">via</a>）：</p>
<pre>$dirs = array_filter(glob($path.'*'), 'is_dir');</pre>
<p>当然，文件递归你也可以<a title="http://www.gracecode.com/archives/2965/" href="http://www.gracecode.com/archives/2965/">考虑使用下 SPL 扩展</a>。</p>
<p>补充 by <a title="http://syre.blogbus.com/" href="http://syre.blogbus.com/">神仙</a>：</p>
<pre>glob 有个参数选项 GLOB_ONLYDIR 就可以只列目录</pre>
<h2>PHP Filter</h2>
<p>如果你还在正则验证字符串，那么就真的&ldquo;Out&rdquo;了。自 PHP5.2 版本以后，<a title="http://php.net/manual/en/book.filter.php" href="http://php.net/manual/en/book.filter.php">内置了 PHP Fliter 模块</a>用于专门验证 电子邮件、URL 等是否合法，示例代码：</p>
<pre>var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));</pre>
<p>由于是新生的模块，因此还有很多的陷阱，例如</p>
<pre>filter_var('abc', FILTER_VALIDATE_BOOLEAN); // bool(false)
filter_var('0', FILTER_VALIDATE_BOOLEAN);   // bool(false)</pre>
<p>但这不影响我们去尝试。有关 PHP Filter 的更多信息，相信能拎出来另外写篇文章了。</p>
<p><tt>-- Split --</tt></p>
<p>最后，感叹 PHP 其实是个历久弥新的工具，不小心我们就会悲剧性得重复造了只轮子。因此，时常看看 PHP 文档每次都会有新的收获。</p>
<p>原文：<a href="http://www.gracecode.com/archives/3013/">http://www.gracecode.com/archives/3013/</a></p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=688</link>
			<category domain="http://www.luohuizhu.cn/?cid=2">技术（藏）</category>
			<pubDate>2010-07-31 23:54</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=687</guid>
			<title>程序员的五种类型</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p><strong>The duct tape programmer &ldquo;胶带型&rdquo;程序员</strong></p>
<p>代码不漂亮，但是管他呢，能用就行！&nbsp;</p>
<p>这类型的人是你公司的基石。 当什么事情搞砸时，他会很快的修正，以后也不用怎么操心了。当然关心代码是否好看，好用，或其相关的方面做得漂亮，他就是能搞定，不需要唧唧歪歪的废话。用这样的兄弟你只需要指出问题然后闪人就好了。</p>
<p><strong>The OCD perfectionist programmer &ldquo;完美主义型&rdquo;程序员</strong></p>
<p>我的代码已经很完美了，还需要做什么？&nbsp;</p>
<p>这一类型基本不关心你的项目截止日期和预算，和编程的艺术相比这些玩意算什么。当你终于收到他们完成的作品时，你会折服其代码的完美格式，哦不，是漂亮得无可挑剔的精美代码，你能做的只是赞服，这就是大师的手笔。他是唯一那个有资格改动他自己代码的人。&nbsp;</p>
<p><strong>The antiprogramming programmer &ldquo;反编程型&rdquo;程序员</strong></p>
<p>我是程序员，我TMD的不写代码。&nbsp;</p>
<p>他的世界只有一条准则写代码太傻了。如果需要自己动手写东西的话，这事情就不对啦。别人早都做过这些工作了，拿来用就好了么。他会告诉你这样的拿来主义是最快的，尽管他老人家用的时间和其他人一样多，哦，或者还要长。最后当你拿到他干的活儿时，里面可能就20行实际代码，简单易读。这样的方式不一定快，那么有效，或着向前兼容，但是他至少用最少的代价完成了项目。&nbsp;</p>
<p><strong>The halfassed programmer &ldquo;半桶水型&rdquo;程序员</strong></p>
<p>你还想要什么？ 程序能跑了不是？&nbsp;</p>
<p>这个家伙不太关心程序质量，那是其他人的工作。他只是迅速地完成交给他的任务。你可能不太喜欢他干的活儿，其他的程序员甚至鄙视他，但是老板和客户喜欢就行了。未来他可能会让你头疼，但他的确独立地在档期内干完了工作，你没办法鄙视他（虽然你真的很想）。&nbsp;</p>
<p><strong>The theoretical programmer &ldquo;理论家型&rdquo;程序员</strong></p>
<p>恩，那是个可能性，不过是不是实际上这样做会更好呢？&nbsp;</p>
<p>这个兄弟着迷于探寻各种方法大于脚踏实地干活。他老人家80%的时间是在空洞的盯着电脑，想着应该如何干完一件事情，15%的时间是在抱怨截止期限是多么的不合理，5%的时间是在修正他选择的干活方式，最后1%的时间才是在写代码。当你终于拿到他的作品时，总是会听到他的评语&ldquo;如果给我多点时间我会干得更漂亮的&rdquo;。</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=687</link>
			<category domain="http://www.luohuizhu.cn/?cid=4">网络（集）</category>
			<pubDate>2010-07-31 08:52</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=686</guid>
			<title>Android中文资讯站(x25.cn)</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>Android中文资讯网是一个专注于提供Android相关资讯和应用的网站！</p>
<p>提供内容包括：Android最新资讯、Android软件下载、Android游戏下载、Android开发教程、Android刷机教程、Android ROM下载&hellip;&hellip;</p>
<p>网址 <a href="http://www.x25.cn/" target="_top"><font color="#436206">http://www.x25.cn</font></a>&nbsp;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=686</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-07-16 19:26</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=685</guid>
			<title>MongoDB 简单研究</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>MongoDB是一个可扩展、高性能的下一代数据库。MongoDB中的数据以文档形式存储，这样就能在单个数据对象中表示复杂的关系。文档可能由以下几 部分组成：独立的基本类型属性、&ldquo;内嵌文档&rdquo;或文档数组。<br />
这样的灵活性让开发者能以一种易于管理且灵活的方式来对大量的问题进行建模，不必将数据打散到不同的数据表中。在数据不宜被构造成单独文档的情况 下，MongoDB有&ldquo;DBRef&rdquo;的概念，这是从文档的一个属性指向另一个文档的指针。<br />
从MongoDB数据库中获取和查询数据是十分灵活的&mdash;&mdash;可以基于主文档、文档中的任意属性、任意内嵌文档、数组中的任意文档来动态地查询文档。可以通过 &ldquo;点&rdquo;符号来访问内嵌文档。</p><br /><br /><a href="http://www.luohuizhu.cn/?action=show&amp;id=685" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=685</link>
			<category domain="http://www.luohuizhu.cn/?cid=2">技术（藏）</category>
			<pubDate>2010-06-08 15:57</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=684</guid>
			<title>Gearman分布式远程过程处理框架简单研究</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>Gearman 系统用来把工作委派给其他机器，分布式的调用更适合做某项工作的机器，并发的做某项工作，在多个调用间做负载均衡，或用来在调用其它语言的函数。 <br />
　　通常，多语言多系统之间的集成是个大问题，一般来说，人们多半会采用 WebService 的方式来处理此类集成问题，但不管采用何种风格的 WebService，如 RPC 风格，或者 REST 风格，其本身都有一定的复杂性。相比之下，Gearman 也能实现类似的作用，而且更简单易用。 <br />
　　一个Gearman请求的处理过程涉及三个角色：Client -&gt; Job -&gt; Worker。 <br />
　　Client：请求的发起者，可以是 C，PHP，Perl，MySQL UDF 等等。 <br />
　　Job：请求的调度者，用来负责协调把 Client 发出的请求转发给合适的 Work。 <br />
　　Worker：请求的处理者，可以是 C，PHP，Perl 等等。 <br />
　　因为 Client，Worker 并不限制用一样的语言，所以有利于多语言多系统之间的集成。 <br />
　　甚至我们通过增加更多的 Worker，可以很方便的实现应用程序的分布式负载均衡架构。 <br />
　　通过 gearman 你可以实现并行的工作，负载均衡处理，调用其他语言的函数。它可以应用在多种场合，从高可用性的 web 服务到数据库复制，换句话说，它是分布式处理的中枢神经。</p><br /><br /><a href="http://www.luohuizhu.cn/?action=show&amp;id=684" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=684</link>
			<category domain="http://www.luohuizhu.cn/?cid=2">技术（藏）</category>
			<pubDate>2010-06-08 15:41</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=683</guid>
			<title>ubuntu+nginx+php+mysql+sphinx安装</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>接到任务要对sphinx进行研究，所以在虚拟机上装了个ubutu折腾安装环境，记录如下</p>
<p>安装g++编译环境<br />
apt-get install g++ gcc</p>
<p>安装python开发组件 非必要 视情况选择安装<br />
apt-get install python python-dev</p>
<p>安装PHP运行及相关扩展<br />
apt-get install php5 php5-dev php5-pear php5-cgi php5-mysql php5-curl php5-gd php5 php5-mcrypt php5-memcache</p>
<p>安装mysql 及开发库 <br />
apt-get install mysql-server mysql-client<br />
apt-get install libmysqlclient15-dev</p>
<p>安装nginx 最新版需要通过下载源码编译安装<br />
apt-get install nginx<br />
安装成功后，启动nginx 输入如下命令：<br />
sudo /etc/init.d/nginx start<br />
可以看到nginx已经启动成功。<br />
Starting nginx: nginx.<br />
spawn-fcgi.c.197: child spawned successfully: PID: 9772<br />
打开浏览器，输入127.0.0.1,可以看到nginx的欢迎欢迎画面，显示<br />
Welcome to nginx!</p>
<p>安装spawn-fcgi<br />
运行sudo apt-get install spawn-fcgi<br />
配置Nginx和spawn-fcgi配合运行<br />
(1).在/etc/nginx/fastcgi_params 文件最后，加入一行<br />
sudo gedit /etc/nginx/fastcgi_params打开文件<br />
加入此行：fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />
(2).另外需要在PHP-CGI的配置文件（Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini）中，找到cgi.fix_pathinfo选项，修改为：cgi.fix_pathinfo=1; (这个参数好像有问题，最近很火的那个漏洞)<br />
这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。<br />
(3).打开/etc/nginx/sites-available/default文件<br />
在<br />
server {<br />
listen 80;<br />
server_name localhost;</p>
<p>下面添加<br />
root /var/www/nginx-default<br />
即root和server_name同级<br />
这段即相当于apache的默认目录 如果没有这个的话，容易在执行php 文件的时候，会提示&rdquo;No input file specified&rdquo;。</p>
<p>然后修改<br />
#location ~ \.php$ {<br />
#fastcgi_pass 127.0.0.1:9000;<br />
#fastcgi_index index.php;<br />
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;<br />
#includefastcgi_params;<br />
#}</p>
<p>修改成<br />
location ~ \.php$ {<br />
fastcgi_pass 127.0.0.1:9000;<br />
fastcgi_index index.php;<br />
#fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; include /etc/nginx/fastcgi_params; #fastcgi的参数文件地址<br />
}</p>
<p>重启nginx和php-cgi 的命令<br />
nginx: sudo /etc/init.d/nginx restart 同样也可以有start,stop等参数<br />
php-cgi: 先杀死进程<br />
sudo killall -HUP php5-cgi<br />
再启动<br />
sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u yeyupl -g yeyupl -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid</p>
<p>参数含义如下</p>
<ul>
    <li>-f 指定调用FastCGI的进程的执行程序位置，根据系统上所装的PHP的情况具体设置</li>
    <li>-a 绑定到地址addr</li>
    <li>-p 绑定到端口port</li>
    <li>-s 绑定到unix socket的路径path</li>
    <li>-C 指定产生的FastCGI的进程数，默认为5（仅用于PHP）</li>
    <li>-P</li>
</ul>
<p>指定产生的进程的PID文件路径</p>
<ul>
    <li>-u和-g FastCGI使用什么身份（-u 用户 -g 用户组）运行</li>
</ul>
<p>安装sphinx 通过下载最新版源码编译安装</p>
<p sizset="33" sizcache="0">wget <a class="ext-link" href="http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz"><span class="icon">&nbsp;</span>http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz</a><br />
tar zxvf sphinx-0.9.9.tar.gz<br />
cd sphinx-0.9.9<br />
./configure --prefix=/usr/local/sphinx --with-mysql<br />
make &amp;&amp; make install</p>
<p>创建配置文件<br />
cd /usr/local/sphinx/etc<br />
sudo cp sphinx.conf.dist sphinx.conf<br />
sudo gedit sphinx.conf<br />
修改配置里相应的数据库连接信息<br />
在示例配置文件中，将试图对MySQL数据库test中的documents 表建立索引；<br />
因此在这里还提供了example.sql 用于给测试表增加数据用于测试：<br />
mysql -u yeyupl&lt; /usr/local/sphinx/etc/example.sql</p>
<p>运行indexer 创建全文索引：<br />
cd /usr/local/sphinx/etc<br />
/usr/local/sphinx/bin/indexer</p>
<p>检索新创建的索引<br />
可以使用search实用程序可以从命令行对索引进行检索：<br />
cd /usr/local/sphinx/etc<br />
/usr/local/sphinx/bin/search test</p>
<p>如果要从PHP脚本检索索引，需要：</p>
<ol>
    <li>运行守护进程searchd，PHP脚本需要连接到searchd上进行检索</li>
</ol>
<p>cd /usr/local/sphinx/etc<br />
/usr/local/sphinx/bin/searchd</p>
<ol start="2">
    <li>运行PHP API 附带的test 脚本（运行之前请确认searchd守护进程已启动）：</li>
</ol>
<p>cd sphinx/api<br />
php test.php test</p>
<ol start="3">
    <li>将API文件(位于api/sphinxapi.php) 包含进自己的脚本，开始编程</li>
</ol>
<p>至此基本的安装和简单测试完成，有待进一步测试研究</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=683</link>
			<category domain="http://www.luohuizhu.cn/?cid=2">技术（藏）</category>
			<pubDate>2010-05-28 13:35</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=680</guid>
			<title>关于我的blog</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>发现自己的blog没什么内涵，没有什么技术含量，都是牢骚多，</p>
<p>呃，也许性格问题吧，技术方面的东西没有心情去写，没事唠叨几句就好了，这才是生活原态</p>
<p>从小开始自己在文科方面就是比理科方面好</p>
<p>阅过没万卷书也有千本了，小学三年级开始看大部头的《西游记》、《薛刚反唐》，六年级因为上课看《薛丁山征西》被没收，拿回书的条件是期末考试前三名，结果当然是拿回来了，那时的成绩还是数一数二的。初中开始迷恋各种武侠小说，和历史小说，图书馆里的这类书基本被我看过了。我应该也是当时学校里唯一用完两本借书证的人。上高中后图书馆书多了不少，我应该也还是班上唯一用了两本借书证的人，武侠小说、历史小说，传记，外国名著等都看过不少，印象比较深的 自然是《史记》、《呼啸山庄》、《金庸全集》等等了。不过从高二第二学期开始因为要应付高考了，决定封书，自此之后至今都不再喜看书了，除了大学还经常借技术类书看外，其他的书基本与我绝缘了，不知道是好事还是坏事，如今想再看书都没什么时间和心情了。</p>
<p>一直觉得自己比较属于多愁善感的人，颇有几分文人气质</p>
<p>记得当初写作文喜欢标新立异，写过诗，作过赋，更用文言文写过不少，有篇作文用小说体写了十多页&hellip;&hellip;</p>
<p>高考时因为理科选择专业有优势，更对电脑之类感兴趣，且认为做技术比较靠谱，所以选了物理</p>
<p>高考时语文是分数最高的，物理是最低的，既是情理之中，亦是意料之外</p>
<p>不过话说回来，虽有文人的闷骚，却没有文人的文采，是为一耻也</p>
<p>blog者，记录生活之用也，非标榜立碑之所</p>
<p>懂我了解我的人，自然能从我的牢骚之言中体会我的生活，</p>
<p>无关人士，一笑而过即可</p>
<p>比较喜欢微博的快餐式记录，想关注我的可以收听我的腾讯微博：</p><br /><br /><a href="http://www.luohuizhu.cn/?action=show&amp;id=680" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=680</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-05-07 12:05</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=679</guid>
			<title>出路</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>是要追求短期的收益还是长远的发展呢？</p>
<p>这是个问题，而且是个比较难抉择的问题</p>
<p>只能说一开始就站错了队</p>
<p>如今想退出的时候就不是那么容易了</p>
<p>放弃已得是件让人纠心的事</p>
<p>选择一个新的队伍也未必是对的队伍</p>
<p>然而继续守着也许也就这个样子了</p>
<p>很多东西真的不是努力就可以改变的</p>
<p>出路依旧是那么的模糊</p>
<p>愿圣光与你同在~</p>
<p>大地母亲在忽悠着你~</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=679</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-04-28 22:48</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=678</guid>
			<title>依诗莲 - 品牌之路</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>2010.4.11&nbsp;&nbsp;&nbsp; 确认场地，交付定金</p>
<p>2010.4.13&nbsp;&nbsp;&nbsp; 确认品牌名</p>
<p>2010.4.14&nbsp;&nbsp;&nbsp; 注册品牌域名</p>
<p>2010.4.14&nbsp;&nbsp;&nbsp; 签订合同，交付合同金</p>
<p>2010.4.17&nbsp;&nbsp;&nbsp; 域名通过备案</p>
<p>2010.4.18&nbsp;&nbsp;&nbsp;&nbsp; 装修第一步：订货架、相关物品，贴墙纸</p>
<p>2010.4.22&nbsp;&nbsp;&nbsp;&nbsp; 进第一批货</p>
<p>2010.4.23&nbsp;&nbsp;&nbsp;&nbsp; 第二次进货</p>
<p>2010.4.24&nbsp;&nbsp;&nbsp;&nbsp; 装修基本完成，还差招牌没上</p>
<p>2010.4.25&nbsp;&nbsp;&nbsp;&nbsp; 第3次进货</p>
<p>2010.4.30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 准备工作完成，第一笔生意</p>
<p>2010.5.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;开业， 依诗莲，华丽绽放</p>
<p>未完待续&hellip;&hellip;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=678</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-04-15 11:00</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=677</guid>
			<title>倒退中</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>原本都同一起跑线的，现在别人要么在项目中，要么有项目最新代码学习中，有需求驱动，有人指教&hellip;&hellip;</p>
<p>就我跟某同学既没任务也没需求更无代码，每天也就只能看看语法了，越来越感觉差距在拉大，倒退中&hellip;&hellip;</p>
<p>想做事也没什么事可做，想学习也没有更多的资源来学习，有些计划但是也没机会去做&hellip;&hellip;</p>
<p>不过是想多做点事，多学点东西，多产生点价值，却也难&hellip;&hellip;</p>
<p>哎，近期心态不好，有点郁闷，也许是自己不够阿Q吧&hellip;&hellip;</p>
<p>感觉别人都在大步前进，自己却在原地踏步&hellip;&hellip;</p>
<p>不是自己不上进，也许是太急于上进了&hellip;&hellip;</p>
<p>心态不行啊，郁闷中&hellip;&hellip;</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=677</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-04-09 12:51</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=676</guid>
			<title>难得糊涂</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>机不遇，安求三斗之米</p>
<p>志在已，自有高飞之日</p>
<p>知我者谓我心忧，不知者谓我何求~</p>
<p>无所谓得，无所谓失，无欲无求，心境自淡~</p>
<p>处世之道，难得糊涂</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=676</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-04-07 11:56</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=675</guid>
			<title>学会失声</title>
			<author>夜雨飘零</author>
			<description>文章需要输入密码才能浏览.</description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=675</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-04-03 10:35</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=674</guid>
			<title>标签</title>
			<author>夜雨飘零</author>
			<description>文章需要输入密码才能浏览.</description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=674</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-04-03 09:15</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=673</guid>
			<title>淡定</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>学得越多，越发现自己浅薄无知~</p>
<p>此时心态会开始改变</p>
<p>变得不自信、颓废、迷茫</p>
<p>变得越来越不认可自己</p>
<p>于是&hellip;&hellip;</p>
<p>所幸，我算是一个懂得自我调剂的人~</p>
<p>哥虽然蛋疼，依旧要淡定~</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=673</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-03-26 13:10</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=672</guid>
			<title>网游营销TIPS</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>淘宝借淘宝玩偶病毒式推广淘江湖；</p>
<p>九城囤积2亿Q币挖《DNF》墙脚，推《名将三国》，引发网游界Q币风；</p>
<p>史玉柱再出营销新招：玩《绿色征途》送保健品；</p>
<p>&hellip;&hellip;</p>
<p>由此引申开来，网游推广还可以送些什么？</p>
<p>游戏海报、原画、场景挂画、角色模型、游戏道具模型等游戏周边衍生物。</p>
<p>Q币、手机充值卡、网络购物券&hellip;&hellip;</p>
<p>生日礼物、各种节日象征小礼品&hellip;&hellip;</p>
<p>&hellip;&hellip;</p>
<p>自个继续发挥想像力吧，送什么东西不重要，重要的是有吸引力，送得适当~~</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=672</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-03-25 10:11</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=671</guid>
			<title>无题</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>幸福不是因为你得到得多，而是因为你得到了你预期中想得到的</p>
<p>欲望越大，你的失落感和挫败感可能就会越大</p>
<p>人要懂得控制膨胀的欲望，在适当的时期追求适当的东西。</p>
<p>幸福的人，即使是简简单单的日子依然能过得有声有色</p>
<p>不幸福的人，总觉得有无数的烦恼，做什么事都不顺心</p>
<p>幸福之道在于度，追求有度，欲望有度</p>
<p>人要有所追求，求能求之事</p>
<p>亦要有所不求，不求不可求之事</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=671</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-03-22 13:07</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=670</guid>
			<title>论游戏与管理之道</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>虽平日想法看法甚多，奈何时间太少（这是借口），（其实是）人太懒，而久未写文，有博之实，欺客之名，过也~</p>
<p>故趁现在心情郁闷，无心他事之时，凑点字数交个差。未及行文，先提个醒，此乃一已之见，非一家之言，粗浅之处，一笑敝之。</p>
<p>论游戏与管理之道，嗯，谁家毛头小犊子好大口气，既未窥游戏之道，亦不知管理为何物，竟敢立此课题，莫非标题党？群众火眼，小生早已汗颜，为赚眼球，只好出下下策，求多多PV了。而为避&ldquo;砖家&rdquo;之嫌，故以戏谑之风，作无蕴之文。呃，碳水化合物过多，Stop~</p>
<p><strong>旁门左道、不如人道</strong></p>
<p>此人道非彼人道，且说当今天下（乌托邦），众生和谐，民莫不安居乐业，歌功颂德，官皆为清政廉明，为国为民。究其秘诀，以人为本，即人道也。</p>
<p>放之游戏，为玩家之道，置诸管理，为领导之道。</p>
<p>以人为本，各得所需，和谐相处，可长久矣。</p>
<p>想人之所想，需人之所需，人心所向，无往不利。</p>
<p><strong>适时关怀，弛张有度</strong></p>
<p>人生如戏，戏如人生，平而淡之，淡而寡味，无味弃之；</p>
<p>游戏若钓，钓本游戏，用饵诱之，诱之若常，无视而过。</p>
<p>适时关怀，消其戒备疑虑，势比飞蛾扑火，愿上钩者众；</p>
<p>弛张有度，令其高潮迭荡，有若高山流水，觅得知音喜。</p>
<p><strong>道之为道，在于无常</strong></p>
<p>虽绝妙之文，阅之百次，亦味同嚼蜡；</p>
<p>即经典之作，玩之百遍，亦意兴阑珊。</p>
<p>人生不过百年，虽知终日，为何追求不止，溯其源，因未知而有所期望；</p>
<p>游戏无非娱乐，虽知虚无，奈何沉迷期间，究其道，为无常而有所惊喜。</p>
<p>无常之道，非无道，而为道外有道；</p>
<p>惊喜之处，非无险，实为有惊且险。</p>
<p>巧设惊喜，合于情理之中，意料之外；</p>
<p>激人之心，使其不惜金钱，不遗余力。</p>
<p>&nbsp;<strong>有所欲求，方有所动</strong></p>
<p>无志之人，顾四周尽萧条之所，庸懒颓废，蜷缩且梦周公；</p>
<p>有志之士，放眼处皆大好江山，精神倍增，举步而忘疲惫。</p>
<p>游戏同理，管理同道，掌控人之特性，给之目标，奖励诱之，令其激情常驻，心无二想，即不离不弃，破财亦不惜也。</p>
<p><strong>相克相生，万物之道</strong></p>
<p>世界之大，却无常生之物，虽物物相克，然生生不息；</p>
<p>三人之间，非皆博学之人，有可学之师，是孜孜不倦。</p>
<p>物之所克，为其相生之道，</p>
<p>人各所长，是其修炼之法。</p>
<p>泰山之重，鸿毛之轻，彼之所在，此之所存；</p>
<p>高位之上，众人之下，驭之有道，使之尽力。</p>
<p><strong>用之有法，取之有道</strong></p>
<p>马虽千里，置于磨坊之间，不如驴也；</p>
<p>人虽龙凤，困于三尺戏台，不如猴也。</p>
<p>知其之能，方能尽其之道，此为用人之道；</p>
<p>知其之需，才能取其之财，此谓游戏之道。</p>
<p><strong>山寨无罪，成功有理</strong></p>
<p>仿成功之作，如居巨人之膀，少造车之险；</p>
<p>学成功之人，若走快捷之径，可速达顶峰。</p>
<p>山寨之作，虽难极品，亦可上乘；</p>
<p>成功之道，虽有各异，亦有同理。</p>
<p><strong>满腹牢骚，言之无物</strong></p>
<p>原为论道之文，却成卖弄之书，然江郎才尽，腹中无墨，故就此作罢，贻笑大方也。</p>
<p>本欲删之而快，竟又心有不忍，唯掩面留之，徒作笑料，且切莫认真，不胜感激也。</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=670</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-03-13 22:35</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=669</guid>
			<title>erlang四大behaviour之四-supervisor</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<h3>1. 监督规则</h3>
<p>一个监督者负责启动、停止、监控他的子进程。监督者的一个基本概念就是当必要的时候重启子进程保证它们的存活</p>
<p>哪个子进程要重启和被监控是由一个子规程列表决定的，子进程按照列表中指定的顺序启动，并按相反的顺序终止</p><br /><br /><a href="http://www.luohuizhu.cn/?action=show&amp;id=669" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=669</link>
			<category domain="http://www.luohuizhu.cn/?cid=12">erlang</category>
			<pubDate>2010-03-13 10:28</pubDate>
		</item>
	</channel>
</rss>
