<?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>Sun, 20 May 2012 01:43:08 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=700</guid>
			<title>签到一下</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>很久没打开过这个blog了，更不要说写写什么</p>
<p>一、更喜欢微博的快捷性</p>
<p>二、很多东西可写，但要么懒得写，要么不知道怎么写，要么不愿意别人看到</p>
<p>三、没时间，其实这是个很好的借口</p>
<p>&nbsp;</p>
<p>小夜雨很好，越来越调皮了，也比以前乖多了，能自己扶着东西站起来了，逗起来咔咔笑了，发起脾气来也很犟了.</p>
<p>还差10天失业即将满一年，生存下来了，不容易也不算太难，虽然历经多次起落，还是活下来了，也算达到预期了。不过形势依然不乐观，一年了没折腾出一个像样的东西，最重要的是现在路子越做越窄了，虽然短期能获利，但是也成了未来的包袱，且行且看吧。</p>
<p>其实有3条路可走：</p>
<p>1、找投资，做网络游戏：投入大，风险大，收益未知，失去现有收入</p>
<p>2、放弃一众小东西做精品：缺美工，缺idea，失去现有收入</p>
<p>3、继续目前的做法，量产一堆APP，短期收入还行，但有越做越少的趋势，随着市场竞争加剧，行业规范，生存空间会被逐渐压缩，等到想抽身的时候，已经回到原点了</p>
<p>赚现在的钱还是未来的钱，赚看得到的钱还是未知的钱，赚快钱还是慢钱，赚钱还是做事业，这都是问题~</p>
<p>见步走步吧，主要是缺美工，有这方面可以合作的，可随时联系！</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=700</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2011-11-15 21:21</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=699</guid>
			<title>还是小夜雨</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>小夜雨又长大了，不知不觉啊</p>
<p>身高62CM，体重6.5KG了</p>
<p>闲话无多，流水记之</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=699</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2011-04-15 23:49</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=698</guid>
			<title>小夜雨满月了</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>2011.2.27 小夜雨童鞋在粤豪酒家摆了满月酒了</p>
<p>2011.3.1 去打疫苗和做保健，小夜雨的成长水平是中上的，身高增长5CM到57CM了，体重也增加到4.8KG！</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=698</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2011-03-01 21:44</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=697</guid>
			<title>小夜雨属性</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>昵称：小夜雨</p>
<p>拟起名：罗泽宇</p>
<p>性别：男</p>
<p>生肖：虎</p>
<p>体重：3.52KG</p>
<p>身高：52CM</p>
<p>诞生于：2011.1.29 18:06（农历2010年12月26日）</p>
<p>五行：五行缺火，喜水</p>
<p>个人签名：就是要比老爸还帅！</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=697</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2011-02-06 11:15</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=696</guid>
			<title>我的2010</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>年年相似，岁岁不同，我的2010平凡而不平静。</p>
<p>太多想说的话，以致不知道该从何说起，且让思绪掌舵，来个所谓的意识流吧。</p>
<p><strong>家庭</strong></p>
<p>于我而言，家庭和亲人永远是第一位的。</p>
<p>有些事情，有些伤痛自己知道就好了，2010年2月7日,我会永远记住这个日子。</p>
<p>所幸的是，这一年里亲人们都过得还好，平淡的生活平淡带过吧。</p>
<p>最令人欣喜的就是，小夜雨就快要诞生了，是男还是女呢？小虎子还是兔崽子呢？谜底即将揭晓！</p>
<p>老婆大人辛苦了！</p>
<p><strong>工作</strong></p>
<p>应该是工作最不稳定的一年了，也许工作都这样吧，在哪都会有让你纠结的人纠结的事。</p>
<p>离开了网页游戏行业，很多因素，无所谓对错。说实话其实还是很感谢跟游戏结缘的这段工作，很多人很多事经历的时候你不会觉得有什么特别，回头望望，其实你已得到了很多，学到了很多，很多人很多事也没当初认为的那样糟糕，其实最该反省的那个还是自己。其实选择离开最重要的原因还是不想透支身体，侵占属于自己的生活时间。不得不说，游戏行业加班程度确实有点不在我的承受范围内，至少不是我可以长期坚守得住的。至此，所谓的&ldquo;星星党&rdquo;第一次解散了。</p>
<p>进入启康，&ldquo;星星党&rdquo;重新集结。双休，倡导不加班，在上班时间这一点上确实很爽。对比上一份工作，除了收入不如前者外，其他都还是比较给力的。平台组从零开始，逐渐建造起了整个生态系统，虽然还比较初级。公司经历几次转型和变异，从传统互联网到移动互联网，从Android到IOS，从不断招人到大规模裁员，从有限公司到工作室&hellip;&hellip;成败如何，时间自有定论，现在已不是我关心的了。</p>
<p>很不幸，平台组经此一役几近全军覆没同，很不幸，我也在或者被在裁员名单之列，算是破了我的记录了，半年一份工！&ldquo;星星党&rdquo;第二次被瓦解了，还好，史有前例！你说&ldquo;星星党&rdquo;是不是个杯具？你说，你说啊，嘿嘿！当然除了不幸还有更多庆幸，庆幸进入了移动互联网，庆幸真正接触了Android，当然其实09年就已经写过Hello world了，年初就入手了G3,严格上是说真正接触了Android开发，庆幸又认识了不少同道中人，阶级同志，并且建立了深厚的阶级友谊，庆幸我暂时失业，可以毫无廉耻的给自己打上创业的标签了，庆幸可以安心在家陪老婆等待小夜雨的诞生了。</p>
<p>总结一下07年毕业至今的工作，第一份工历时1年半，因为工作太闲，加工资请求没完全满足而结束。第二份工历时11个月，因为公司不给力，产品市场推广不给力，继续做前途渺茫而终止。第三份工历时9个月，因为长期加班，不适合长远做而放弃，这个决定应该是目前为止最艰难的了。第四份工历时6个月，公司业务转型被裁，史无前例的被动下岗。</p>
<p>可以清晰的看到每份工作的时间是递减的，如果有第五份工作，按这个趋势估计应该熬不过试用期了吧，想想真是让人悲摧啊。</p>
<p><strong>创业</strong></p>
<p>写下这两个字，那个心虚啊，但大家也看到了如果我去找工作连试用期也过不了，叫我如何面见江东父老，为了不逼自己自刎乌江，只好厚颜无耻的创业了。</p>
<p>人家创业是从无到有，我创业是从有到无，一个月内经历4次一夜回到解放前，从应该很滋润的到现在生存艰难，莫非这就叫天意弄人，好事多磨？</p>
<p>说了这么多，忘记打广告了：</p>
<p>TF工作室！</p>
<p>理念：Tiny、Fast！</p>
<p>成员：夜雨、Rebill</p>
<p>业务：Android开发、移动互联网、垃圾APP</p>
<p>暂时就这么多了，不要问我们做了什么，暂时没有可以对外发布的产品，大多都是见不得光的，我们走的是草根路线，用的是我几年前做垃圾站的那套方法，仅此而已。</p>
<p>最近准备做一个光明正大的产品，做个门面，印张可以抛头露面的名片。</p>
<p>先生存后发展，也许我们很快就会死去，也许会不可思议的生存下来了，太多可能性了，2011将见证这一切！</p>
<p><strong>技术</strong></p>
<p>你知道的，哥一向不喜在这里谈技术的，所以只表明一下立场就好了。技术为市场服务，能赚钱的技术就是好技术，否则只是浮云，虽然一直靠技术吃饭，但从未想过要成为技术大牛神马的，技术于我只是赚钱和生存的工具，在没有找到更好的赚钱工具之前，只有继续把这个工具学好用好，仅此而已，实在没什么好长篇大论的了。</p>
<p><strong>其它</strong></p>
<p>家事，个人事说得差不多了，是不是该谈谈国是，以示我是个忧国忧民的好屁民？</p>
<p>刚看到一篇叫&ldquo;蛋疼2010&rdquo;的文章，我想说的不想说的都给说了，算了我这等无名人士少在这里装了，有兴趣的自己google去吧，懒得扯了！</p>
<p><strong>总结</strong></p>
<p>蛋疼、神马、浮云、给力、你们懂的！</p>
<p><strong>展望</strong></p>
<p>生亦何欢，死亦何惧，且背水一战！</p>
<p>希望身边的人都过得好！</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=696</link>
			<category domain="http://www.luohuizhu.cn/?cid=10">年终总结（历）</category>
			<pubDate>2011-01-01 12:10</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=695</guid>
			<title>结婚一周年纪念日</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>2008.12.22&nbsp; 开始拍拖</p>
<p>2009.12.22&nbsp; 领证结婚</p>
<p>2010.12.22 结婚一周年</p>
<p>&hellip;&hellip;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=695</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-12-22 23:33</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=694</guid>
			<title>失业中</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>上个月突然的失业，有点措手不及，而且闹得不太爽</p>
<p>暂时也没打算找工作，就跟一同事做做Android软件，目前情况不太明朗，比预想中的要难做</p>
<p>Google不太给面子，害得损失了不少</p>
<p>赚钱难，收钱也麻烦，只能行一步算一步了</p>
<p>长话短说，汇报完毕</p>
<p>另：如果有好工作的话，也请推荐，最好是年后上班的，PHP和Android相关的</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=694</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-12-10 16:34</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=693</guid>
			<title>一个月了</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>老婆回娘家一个月了，这段时间自己买菜做饭，洗衣服，倒也习惯了，只是有时一个人总觉得有点冷清。</p>
<p>话说家里热水器坏了，洗发水没了，米没了，盐没了，饮用水没了，牛奶喝完了，拖鞋烂了，国庆从家里带下来的鸡蛋都吃到坏了&hellip;&hellip;</p>
<p>这一个人过日子还真不容易啊~</p>
<p>上周公司去森波拉温泉旅游，呃，全是成双成对的，哥一个人好不凄凉&hellip;&hellip;</p>
<p>昨晚亚运开幕式，在楼顶上看烟花的都是一对对的，哥看得有点不是滋味&hellip;&hellip;</p>
<p>据说下周老婆就要回来广州了，早点结束这单身的日子吧</p>
<p>呃，小夜雨应该又长大了不少吧~</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=693</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-11-13 17:37</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=692</guid>
			<title>恢复单身</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>下午老婆就回娘家去了</p>
<p>呃，难得恢复单身生活</p>
<p>会怎样呢？习惯or不习惯~</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=692</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-10-16 07:17</pubDate>
		</item>
		<item>
			<guid>http://www.luohuizhu.cn/?action=show&amp;id=691</guid>
			<title>26岁了</title>
			<author>夜雨飘零</author>
			<description><![CDATA[<p>明天，26岁生日，真有点岁月催人老的感慨了</p>
<p>从07年毕业后的这几年，每年都发生着很大的改变</p>
<p>就像一锅清汤，然后不停的往里加料，越熬越浓了</p>
<p>淡有淡的口感，浓有浓的风味</p>
<p>偶尔的酸甜苦辣，也算是种佐料</p>
<p>生活，本就如此</p>
<p>只要肯去努力，味就会更好</p>
<p>只要懂得品尝，就是种享受</p>]]></description>
			<link>http://www.luohuizhu.cn/?action=show&amp;id=691</link>
			<category domain="http://www.luohuizhu.cn/?cid=1">个人（创）</category>
			<pubDate>2010-09-17 21:54</pubDate>
		</item>
		<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>
	</channel>
</rss>

