<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title><![CDATA[This is Lukin zone]]></title>
        <description><![CDATA[爱技术、爱产品；会编程、会扯蛋。我不是凡客，我是PHPer]]></description>
        <link>http://lukin.sinaapp.com/</link>
        <language>zh-CN</language>
        <generator>LazyCMS 2.0.115204</generator>
        <ttl>5</ttl>
                <item>
            <title><![CDATA[PHP SESSION 慎用]]></title>
            <link><![CDATA[http://lukin.sinaapp.com/post/8.html]]></link>
            <description><![CDATA[用户登录一般都会用到session，做webgame开发中我们没有用session<br /><br />用cookie+memcache模拟了session的机制<br /><br />但是，项目中还是写了session_start，设计之初是打算在项目中用做简单的缓存，实际应用中并没有用到。<br /><br />这两天 研究ajax长连接session把我害苦了，webgame中多个ajax线程同时请求的情况经常出现，通过firebug监视ajax请求发现我们的ajax请求虽然是异步的，可还是出现顺序执行，只要第一个的ajax请求没有结束，第二个请求就被阻塞。<br /><br />怀疑php的机制，怀疑 apache的机制，怀疑浏览器的机制，又研究了http://www.meebo.com/<br /><br />最后，通过朋友的建议，先用静态页面做测试，终于发现，浏览器的机制没有问题，apache的处理机制也没有问题。<br /><br />又用php动态页面测试，最终确定php的处理机制也没有问题。<br /><br />但是，应用到我们的项目中就是有问题，通过对比发现，我们项目中用到了ob_star()为了做错误处理用，测试了ob_start() 也没有问题。<br /><br />又仔细对比，发现项目中开启了session，在测试环境中开启session，果然问题出现了。<br /><br />php的session默认使用的是文件存储，所以，每个页面打开的时候都会独占session的存储文件锁，把session_start 删除，终于解决ajax长连接阻塞的问题。<br /><br />如果，你的项目中已经使用session，建议用数据库存储或者避免session的独占锁。]]></description>
            <pubDate>2010年06月15日 23:46</pubDate>
            <category><![CDATA[Developer]]></category>
            <author><![CDATA[Lukin]]></author>
            <guid>8</guid>
        </item>
                <item>
            <title><![CDATA[[Webgame必备]PHP全概率运算函数]]></title>
            <link><![CDATA[http://lukin.sinaapp.com/post/7.html]]></link>
            <description><![CDATA[/**<br />&nbsp;* 全概率计算<br />&nbsp;*<br />&nbsp;* @param array $input array('a'=&gt;0.5,'b'=&gt;0.2,'c'=&gt;0.4)<br />&nbsp;* @param int $pow 小数点位数<br />&nbsp;* @return array key<br />&nbsp;*/<br />function random($input, $pow = 2) {<br />&nbsp; &nbsp; $much = pow(10, $pow);<br />&nbsp; &nbsp; $max &nbsp;= array_sum($input) * $much;<br />&nbsp; &nbsp; $rand = mt_rand(1, $max);<br />&nbsp; &nbsp; $base = 0;<br />&nbsp; &nbsp; foreach ($input as $k =&gt; $v) {<br />&nbsp; &nbsp; &nbsp; &nbsp; $min = $base * $much + 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; $max = ($base + $v) * $much;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ($min &lt;= $rand &amp;&amp; $rand &lt;= $max) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $k;<br />&nbsp; &nbsp; &nbsp; &nbsp; } else {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $base += $v;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return false;<br />}]]></description>
            <pubDate>2009年09月18日 15:43</pubDate>
            <category><![CDATA[Webgame]]></category>
            <author><![CDATA[Lukin]]></author>
            <guid>7</guid>
        </item>
                <item>
            <title><![CDATA[PHP分段屏蔽错误（异常）的方法]]></title>
            <link><![CDATA[http://lukin.sinaapp.com/post/6.html]]></link>
            <description><![CDATA[我是从asp转向php的，asp里面提供了下面的方法<br /><br />代码1：<br />--------------------------------------------------------<br />on error remuse next<br />'这里的代码出现的错误可以被屏蔽掉<br />on error goto 0<br /><br />----------------------------------------------------华丽的分割线-------------------------------------------------<br /><br />转向php之后，查了一些资料貌似php没有提供类似这样的语法<br /><br />直接使用error_reporting(0);关闭所有错误是很不明智的。所以，考虑使用@来抑制错误的发生，但是往往不如意。<br /><br />我使用的set_error_handler('myerror')监听了一个函数，直接写@抑制错误的发生那是办不到的，照样会跳到myerror函数里面进行处理，后来看WordPress的源码，发现她屏蔽错误的方法：<br /><br />代码2：<br />--------------------------------------------------------<br />$error_reporting = error_reporting(0);<br />// 这里发生的错误将被屏蔽<br />error_reporting($error_reporting);<br />--------------------------------------------------------<br /><br />应用到我系统里面，发现此方法也不好用，照样会进入myerror函数进行错误处理。<br /><br />继续狂翻php手册，仔细查看set_error_handler这个函数的说明，然后查看评论（一般看手册上的评论还是很有收获的），评论上的一段代码引起了我的注意：<br /><br />代码3：<br />--------------------------------------------------------<br />   // if error has been supressed with an @<br />   if (error_reporting() == 0) {<br />   return;<br />   }<br />--------------------------------------------------------<br /><br />细想了一下，把这段代码加入到myerror里面，果然ok了！原来使用@的时候，error_reporting()会返回0<br /><br />这样可以利用@屏蔽某个函数里面发生的错误了，也可以使用【代码2】的方法来进行分段屏蔽错误了。]]></description>
            <pubDate>2009年06月30日 16:22</pubDate>
            <category><![CDATA[Developer]]></category>
            <author><![CDATA[Lukin]]></author>
            <guid>6</guid>
        </item>
                <item>
            <title><![CDATA[如何寻找优秀程序员]]></title>
            <link><![CDATA[http://lukin.sinaapp.com/post/5.html]]></link>
            <description><![CDATA[优秀程序的几个必要条件：<br /><br />1. 要有热情<br /><br />企业中有这样一种人：职业程序员。他们之所以做IT是因为IT是个好工作，而不是因为对技术充满热情。这些人回家后绝对不会写程序。对于他们来说，编程是每天必须的工作，公司为他们提供技术培训也是理所应当的。这种人缺乏热情，也不会是好的程序员。<br /><br />其实这类人相当相当多，随手一抓就能抓出一大把。他们自己也有电脑，但那是用来上网看电影打游戏的，不是用来搞开发的。开发环境、编辑器甚至连Office都没有。这样的人也很难期待他是优秀程序员。<br /><br />2. 会自学，爱自学<br /><br />大家都知道IT行业更新很快，不会主动学习的人很快就会被淘汰。有些人你要他们学习某项技术时他会说“公司给我培训我就学”。当然，在找工作时他们有可能在家里学习必要的技术，但那不是主动的自学。好的程序员热爱学习新技术，对于他们来说学技术纯粹是好玩，纯粹是个人兴趣。有些人还会制定出完善的学习计划。这样的程序员根本不用培训。<br /><br />3. 聪明<br /><br />也许程序员都给人以不善交际的印象，但其实他们不是。好的程序员都是智商奇高的人，不可能不善交际。而事实上的确在某些场合他们不善言辞，那是因为他们的兴趣不在那里。一旦讨论到他们感兴趣的技术话题，他们就会扯开话匣子说个不停。<br /><br />在招聘时可以试着去谈论一些他可能感兴趣的技术话题，看他能侃到什么程度。如果问一句说一句或者说不出来什么，那就不用再抱希望了。<br /><br />4. 隐藏的经验<br /><br />优秀程序员或多或少都有些“课外活动”，如参加开源社区，为处理日常生活的事情而写的小程序，个人网站，或者纯粹为了好玩而做的小东西。而面试时这些东西是不会写在简历上的，因为他们觉得这些根本算不上简历要求的“经验”。<br /><br />我经常看到有些应聘者的简历上把大学时做的小学期作业都写在上面。这种人就不必考虑了—— 连作业都自认为是“经验”的人可以想到他的水平有多高。<br /><br />所以，优秀程序员的简历通常都很简短，不过你可以去问问他们，除了简历上写的东西之外，工作之外有无技术经验，即使完全和工作无关也行。如果他答不出，那即使简历有20页长，他也不会是优秀程序员。<br /><br />5. 广博的技术知识<br /><br />这一点很简单，学得技术越多水平越高。不一定要完全精通，但了解许多毫不相关的知识对个人水平有很大帮助。但同样，优秀程序员不会把他知道的东西全都写上，那些他不精通的东西会认为不值得一写。<br /><br />不过有一点要注意。如果简历上写到“精通Java、J2EE、Ant、XML、SQL、Hibernate、Spring、Struts、EJB”，就要小心了，这个人不一定优秀。因为这些技术都属同一个领域，关联性太强。但当你对这些技术一无所知时，如何分辨呢？你可以让他讲讲这些技术有什么联系。精通一个领域的技术的人经验丰富，但他很可能不是个优秀程序员。<br /><br />为什么需要有广博的技术知识？我个人认为，即使是毫不相关的技术，其实也是能融会贯通的。学得技术多了、杂了，看到不懂的问题自然而然地就能想出最合适的解决办法来。<br /><br />不过有一点要注意，如果他关心的技术中有尖端技术，如今天的AIR、Flex之类，那你就可以考虑录用他。<br /><br />另外优秀的程序员对技术很敏感，他能判断出某项技术是否适合于完成工作。如果被迫使用一种他认为不适合的技术去工作，他会觉得很不爽的。<br /><br />6. 资格证书<br /><br />资格证书、学位等不是优秀程序员的必要条件，但至少不是个反面信号。优秀程序员大都有计算机科学的学位。也有很多人没有，但这并不能说明他不优秀。专业资格认证如MCSE、CCNA等也是，这些只是用来证明这个人已经学会了相关知识，企业在招聘的时候就可以省去考核的麻烦，并不能证明程序员有多么优秀。如果你的企业确确实实需要非常优秀的程序员，那就别去理会这些认证，而是把精力花在实际能力的考察上吧。<br /><br />总结<br /><br />如果将优秀程序员的条件按条列出的话，可以得到如下内容：<br /><br />正面信号<br /><br />对技术有热情 <br />以编程为乐 <br />对感兴趣的技术话题会滔滔不绝 <br />工作之外自己做过某些项目 <br />主动自学技术，但不是为工作而学习 <br />对技术的好坏、是否合适有自己的看法 <br />使用自认为不合适的技术完成工作时会很不爽 <br />聪明，很多话题都能侃侃而谈 <br />在上大学或工作之前就写过程序 <br />有许多简历上没写出来的经验 <br />知道许多毫不相关的技术（一般不会写在简历上）<br /><br />负面信号<br /><br />把编程当作每天的工作 <br />不喜欢谈论技术，即使受到鼓励也不会说 <br />只通过公司的培训来学新技术 <br />愿意使用你选择的任何技术来完成工作，认为“所有技术都是好的” <br />看起来不怎么聪明 <br />在大学时才开始学编程 <br />简历上写出自己的所有经验 <br />仅专注于一个或两个领域]]></description>
            <pubDate>2008年11月18日 13:11</pubDate>
            <category><![CDATA[Developer]]></category>
            <author><![CDATA[Lukin]]></author>
            <guid>5</guid>
        </item>
                <item>
            <title><![CDATA[如果你已经过了20岁但还不到25岁的话]]></title>
            <link><![CDATA[http://lukin.sinaapp.com/post/4.html]]></link>
            <description><![CDATA[    如果你已经过了20岁但还不到25岁的话，你必须找到除了爱情之外，能够使你用双脚坚强站在大地上的东西。你要找到谋生的方式。现在考虑不晚了。<br /><br />    我从来不以为学历有什么重要，天才都不是科班，但，不是科班，连龙套都跑不了。你必须把那些浮如飘絮的思绪，渐渐转化为清晰的思路和简单的文字。华丽和漂浮都不易长久。你要知道，给予文字阅读快感不够的，内容，思想，境界，灵魂，精神和智慧，这些才重要。不要多看那些和你一个路数的女作家的文字。不要琐碎，无病呻吟。不要想到什么就写。不要流连于小感伤和小感动。<br /><br />    我要你相信温暖，美好，信任，尊严，坚强这些老掉牙的字眼。我不要你颓废，空虚，迷茫，糟践自己，伤害别人。我不要你把自己处理得一团糟。节制自己的感情并且珍惜它，明白这种感情不是任何人都能要。体验生活，是另外一回事，并不意味着堕落和放纵。千万不要认同那些伪装的酷和另类。他们是无事可做的人找出来放任自己无事可做的借口，真正的酷是在内心。你要有强大的内心。要有任凭时间流逝，不会磨折和屈服的信念。不是因为在学校的象牙塔中，才说出我爱世界这样的话，是知道外面的黑，脏，丑陋之后，还要说出这样的话。好好去爱，去生活。青春如此短暂，不要叹老。偶尔可以停下来休息，但是别蹲下来张望。走了一条路的时候，记得别回头看。时不时问问自己，自己在干嘛?<br /><br />    伤心和委屈的时候，要嚎啕大哭。哭完洗完脸，拍拍自己的脸，挤出一个微笑给自己看。不要揉，否则第二天早上会眼睛肿。<br /><br />    给自己一个远大的前程和目标。记得常常仰望天空。记住仰望天空的时候也看看脚下。<br /><br />    任何时候，任何人问你，有过多少次恋爱，答案是两次。一次是他爱我，我不爱他。一次是我爱他，他不爱我。好的爱情永远在下一次。别给同一个人两次伤害你的机会。<br /><br />    不要与浪子，文艺青年交往，别和没心没肺的人在一起，别和没有正当职业混日子的人在一起。<br /><br />    别把犯贱当真爱。一个人作践自己来取悦你的时候，千万不要因此感动。一个男人的烟头烫在他身上，下一个就可能烫在你身上。同样的，当这个女人的刀片割断她的手腕，下次就可能割断你的。<br /><br />    千万别相信一个不准备将你介绍给他的朋友圈子的男人。一个女人只肯喊你“宝贝”的时候，坚持要她喊你的名字，因为你是男人。一个男人或者女人不再来找你的时候，就不要再去找他或者她。不要相信在恋爱上用手段的人。分手时不要口出恶言。吸取教训，但不要后悔。后悔没有用。<br /><br />    别去做撕照片，烧信，撕日记这样一类三流爱情电视剧中才有人干的事。相信爱情。相信好男人和好女人还存在，还未婚，还在茫茫人海中寻觅你。别说“男人（或者女人）没一个好东西”，这样使别人误以为你阅人无数。<br /><br />    爱物质，适当地。永远知道精神更重要。比起那些名表，名牌，时装，更加美丽的是勤奋而有朝气的你自己。如果你20岁以后所花的每一分钱还都是伸手向父母亲人要来的，那你的满身名牌就只能衬托出你的无耻。别以为穿上名牌你就有品位，要知道如果没有真正的内涵，骡子配上金鞍也不会变成骏马。你还年轻，先不说开始你的事业，开创你的未来，但你已经成年，至少也要让自己不再成为父母的负担，让父母看到20年辛苦养育的希望。无所事事只会把你变成一个废物，一个被所有其他人鄙夷的废物，因为这样的你是一个不折不扣的寄生虫。别以为弄个怪异的发型，穿上不男不女的衣服，喷上刺鼻的香水，别人就会注重你，要明白那样招来的眼光就是别人在看一只与众不同的猴子。许多有教养的人对另类的你的反感并不写在脸上，但这种反感确凿无疑肯定会给你带来极其不利的后果。<br /><br />    别瞧不起劳动人民。不要为劳动羞耻。土地不脏，汗味不难闻。请尊重那些似乎生活状况不如你，但仍然用自己的双手诚实劳动养家糊口的人，因为这样才是尊重自己。永远体恤那些生活在底层的人们，因为我们的亲人就是在这些人群中。我们不娇贵。我们必须能够自己养活自己，这是你的尊严所在。<br /><br />    不要小看一分钱。不妨自己去挣挣看。做人有时要强悍一点，被欺负的时候，一定要讨回来！但是不要记恨。小人之见，随他们去好了。有原则的宽容和怜悯，会使你高贵。<br /><br />    被朋友伤害了的时候，别怀疑友情，但提防背叛你的人。原谅，但并不遗忘。做人存几分天真童心，对朋友保持一些侠义之情。 要快乐，要开朗，要坚韧，要温暖。这和性格无关。但你要忠诚，勤奋，要真诚的尊重别人，这样你的人生才不会黑暗.]]></description>
            <pubDate>2008年07月04日 21:15</pubDate>
            <category><![CDATA[Internet]]></category>
            <author><![CDATA[Lukin]]></author>
            <guid>4</guid>
        </item>
                <item>
            <title><![CDATA[一家之言的经验之谈PHP扎实个人基本功]]></title>
            <link><![CDATA[http://lukin.sinaapp.com/post/3.html]]></link>
            <description><![CDATA[不要依赖 register_global=ON 的环境，从你刚懂得配置php运行环境甚至尚不明白register_global的ON/OFF会对自己有什么影响的那天起，就应该勇敢地把它设为OFF。<br /><br />写程序前看看怎么用error_reporting。<br /><br />不懂就问本身没错，但你需要在那之前查查手册。<br /><br />当然，你需要懂得使用手册。手册上找不到答案的时候，应该考虑下网络上的搜索引擎。<br /><br />刚学会php+mysql之后，不要叫嚷着要写论坛，要写XXX。要明白，刚学会写汉字并不表示你有能力写诗。<br /><br />在学web编程的时候，你应该先去认识html这个朋友。<br /><br />有点能力后，试着回答新手的问题，不要看到自己懂的而别人不懂就沾沾自喜，扔下一句“简单，那是基本的东西”就走更要不得。<br /><br />思考是一个好习惯，不动手去写就等于空想，什么也没有。<br /><br />写好一段程序，如果觉得很满意，一周后再看一遍，也许你会认为它应该有所改变。<br /><br />有空多看看别人的程序，找出他人的不足或优点，自己掂量。<br />]]></description>
            <pubDate>2007年09月11日 22:46</pubDate>
            <category><![CDATA[Developer]]></category>
            <author><![CDATA[Lukin]]></author>
            <guid>3</guid>
        </item>
            </channel>
</rss>
        
