<?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>Elias的邪异门</title>
	<atom:link href="http://blog.elias.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.elias.cn</link>
	<description>倒苦水之家</description>
	<lastBuildDate>Sun, 27 Jun 2010 18:50:09 +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://blog.elias.cn/archives/412</link>
		<comments>http://blog.elias.cn/archives/412#comments</comments>
		<pubDate>Sun, 27 Jun 2010 18:50:09 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[无责任乱弹]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[理想]]></category>
		<category><![CDATA[职业规划]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=412</guid>
		<description><![CDATA[最近换了一个新工作，很忙。忙到什么程度呢，可以说是忙到导致我“每个月至少一篇博文”的计划再次泡汤了，不但 Wiki 和博客从4月初就都没有动过，浏览器上等待整理的页面（我习惯把可能有用需要整理一下的内容保持打开在浏览器的标签上，这样可以提醒我，而且反正 Firefox 每次重启都会自动把原先开启的标签页重新打开，很方便～）大约也有一百多了吧，另外打算帮寇老师调整网站的事儿也一直从4月初拖到了现在仍然是还没下手的状态。

好吧，报怨的环节就到此为止，现在转入说正题环节。话说导致我这么被动的其中一个原因是现在手下人手不足，也就是说招聘计划实施得相当不成功。虽说招聘靠谱的人一直就是相当困难的事儿，近期我听到过各种行当、各种规模、各种成份的公司的各种级别的人报怨招聘难的现状。也就是说我其实对这种状况是有一定心理准备的，可是我还是被雷到了。我吃惊地发现很多应聘程序员职位的同志其实不想做程序员。其中经验薄一点的多半认为程序员就是民工，又累又不挣钱；经验多点的则一心惦记着转向管理职位，要么就是整创业。这样的想法早就听得多了，得承认存在即合理，多少也是反映了国内 IT 业界的真实状况——就是靠谱的、可令人安心发展的公司很少。

但我想说的是，当前状况光报怨是没有用的，光报怨不可能改变现状。从公司的角度讲，愿意提供什么样的待遇大致还是和这个人能平多少事儿（或者貌似能平多少事儿）的能力相紧密结合的。而这种能力的增长就需要结合当前社会现实做一个跨度至少为几年的规划，基本上在有一定压力、项目实用性强、领导及同事办事风格靠谱的环境里能力增长是最快的，否则一般会沦为自生自灭的状况。也正是因为这样，主流的发展路线通常最好还是通过大公司入行，环境靠谱的几率要比小公司和创业公司大上不少，一般也能受到比较正规的训练并遇上比较靠谱一些的“前辈”或“师傅”。而小公司及创业相对更适合头脑一贯清醒、自律性强、能自己逢山开路、遇水搭桥的人。

也正因为如此，虽然李开复先生开的是创业的生意，还是不得不说“大学生毕业就创业是冒险”这种话。而且开复先生的《给创新工场求职者的一封信》其实也应该反着读，个人建议的读法是：其实没有那么多“特殊的人”，大多数人还是应当仔细考虑如何找到适合自己的、靠谱的职业规划。

对于程序员来说，赖勇浩先生在前俩月发过一篇博文“程序员职业生涯中的〇一三五七”说了说他自己的一些看法，颇有值得借鉴之处。可是我觉得赖兄还是把创业说得过于简单了。大致在开始前已经觉得准备比较充足的人当中，创业运作到第二年末，大约就会有90%左右倒闭。说明其中有很多重要的因素没能提前看到也没能处理好。而且创业的风险或许比能看到的部分来得要大，比如创业一旦失败会对职业规划造成相当不利的影响，通常在创业失败时重新找的第一份工作的待遇都会有所缩水，而且找工作的过程恐怕也相对会比较不顺利。

话说回来，到目前为止我工作过的企业其实都是创业企业，有的人可能会说我这样不是说一套做一套吗？倒也不是这么回事。人的选择都难免受到之前选择的限制和影响。我由于种种原因，走上了现在的职业道路，倒也谈不上后悔。只是结合自己的经历和理解，建议仍有机会以比较小的代价选择靠谱的路线的朋友认真考虑自己的选择。而已经像我这样走上似乎不那么靠谱的道路的朋友，也仍有机会做出靠谱的事。来日方长，与诸君共勉～

××××××××

顺带给自己做个广告吧～长期招聘靠谱的 Python 程序员从事网站开发。觉得网站开发这种东西没有技术含量的朋友请直接绕道，任何事情都是有靠谱和不靠谱两种做法的，任何事情认真对待也都能把它做到有技术含量的程度。有兴趣的朋友可以通过邮件向我投简历和咨询状况，我的邮件地址可以在 Wiki 页面上找到～
]]></description>
			<content:encoded><![CDATA[<p>最近换了一个新工作，很忙。忙到什么程度呢，可以说是忙到导致我“每个月至少一篇博文”的计划再次泡汤了，不但 Wiki 和博客从4月初就都没有动过，浏览器上等待整理的页面（我习惯把可能有用需要整理一下的内容保持打开在浏览器的标签上，这样可以提醒我，而且反正 Firefox 每次重启都会自动把原先开启的标签页重新打开，很方便～）大约也有一百多了吧，另外打算帮寇老师调整网站的事儿也一直从4月初拖到了现在仍然是还没下手的状态。</p>

<p>好吧，报怨的环节就到此为止，现在转入说正题环节。话说导致我这么被动的其中一个原因是现在手下人手不足，也就是说招聘计划实施得相当不成功。虽说招聘靠谱的人一直就是相当困难的事儿，近期我听到过各种行当、各种规模、各种成份的公司的各种级别的人报怨招聘难的现状。也就是说我其实对这种状况是有一定心理准备的，可是我还是被雷到了。我吃惊地发现很多应聘程序员职位的同志其实不想做程序员。其中经验薄一点的多半认为程序员就是民工，又累又不挣钱；经验多点的则一心惦记着转向管理职位，要么就是整创业。这样的想法早就听得多了，得承认存在即合理，多少也是反映了国内 IT 业界的真实状况——就是靠谱的、可令人安心发展的公司很少。</p>

<p>但我想说的是，当前状况光报怨是没有用的，光报怨不可能改变现状。从公司的角度讲，愿意提供什么样的待遇大致还是和这个人能平多少事儿（或者貌似能平多少事儿）的能力相紧密结合的。而这种能力的增长就需要结合当前社会现实做一个跨度至少为几年的规划，基本上在有一定压力、项目实用性强、领导及同事办事风格靠谱的环境里能力增长是最快的，否则一般会沦为自生自灭的状况。也正是因为这样，主流的发展路线通常最好还是通过大公司入行，环境靠谱的几率要比小公司和创业公司大上不少，一般也能受到比较正规的训练并遇上比较靠谱一些的“前辈”或“师傅”。而小公司及创业相对更适合头脑一贯清醒、自律性强、能自己逢山开路、遇水搭桥的人。</p>

<p>也正因为如此，虽然李开复先生开的是创业的生意，还是不得不说“<a href="http://www.yl-rc.com/e/chuangye/jingyan/127167900513099.html" title="大学生毕业就创业是冒险">大学生毕业就创业是冒险</a>”这种话。而且开复先生的《<a href="http://blog.sina.com.cn/s/blog_475b3d560100fsft.html" title="给创新工场求职者的一封信">给创新工场求职者的一封信</a>》其实也应该反着读，个人建议的读法是：其实没有那么多“特殊的人”，大多数人还是应当仔细考虑如何找到适合自己的、靠谱的职业规划。</p>

<p>对于程序员来说，赖勇浩先生在前俩月发过一篇博文“<a href="http://blog.csdn.net/lanphaday/archive/2010/01/31/5274312.aspx" title="程序员职业生涯中的〇一三五七">程序员职业生涯中的〇一三五七</a>”说了说他自己的一些看法，颇有值得借鉴之处。可是我觉得赖兄还是把创业说得过于简单了。大致在开始前已经觉得准备比较充足的人当中，创业运作到第二年末，大约就会有90%左右倒闭。说明其中有很多重要的因素没能提前看到也没能处理好。而且创业的风险或许比能看到的部分来得要大，比如创业一旦失败会对职业规划造成相当不利的影响，通常在创业失败时重新找的第一份工作的待遇都会有所缩水，而且找工作的过程恐怕也相对会比较不顺利。</p>

<p>话说回来，到目前为止我工作过的企业其实都是创业企业，有的人可能会说我这样不是说一套做一套吗？倒也不是这么回事。人的选择都难免受到之前选择的限制和影响。我由于种种原因，走上了现在的职业道路，倒也谈不上后悔。只是结合自己的经历和理解，建议仍有机会以比较小的代价选择靠谱的路线的朋友认真考虑自己的选择。而已经像我这样走上似乎不那么靠谱的道路的朋友，也仍有机会做出靠谱的事。来日方长，与诸君共勉～</p>

<p>××××××××</p>

<p>顺带给自己做个广告吧～长期招聘靠谱的 Python 程序员从事网站开发。觉得网站开发这种东西没有技术含量的朋友请直接绕道，任何事情都是有靠谱和不靠谱两种做法的，任何事情认真对待也都能把它做到有技术含量的程度。有兴趣的朋友可以通过邮件向我投简历和咨询状况，我的邮件地址可以在 Wiki 页面上找到～</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/412/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>我为什么愿意参加“大朋友计划”</title>
		<link>http://blog.elias.cn/archives/404</link>
		<comments>http://blog.elias.cn/archives/404#comments</comments>
		<pubDate>Mon, 26 Apr 2010 06:19:02 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[匪夷所思的平淡生活]]></category>
		<category><![CDATA[大朋友计划]]></category>
		<category><![CDATA[理想]]></category>
		<category><![CDATA[生活态度]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=404</guid>
		<description><![CDATA[虽然最初参加“大朋友计划”另有一些原因，但昨晚寇老师在 QQ 上的一段留言让我重新认识到了为什么我真心愿意参加“大朋友计划”。原文见下：


  郭谦谦家在木鱼镇上，唐树俊和李全波因为家远，周末就在学校过。我到时他们还没有吃晚饭，就拉他们一起去饭馆，边吃边聊。耽完下小雨了，我跟郭谦谦一起去她家里，唐树俊和李全波要走回学校。我给他们出主意，可以把大朋友快递的大信封放在脑袋上挡雨，他们摆摆手，笑笑，把信抱在怀中，走进了小雨里。


＝＝＝＝转帖“大朋友计划”招募原文＝＝＝＝

一、背景信息

四川省青川县是大地震极重灾区，震后有404位受伤青少年申请残疾评定，大多数来自农村。

5、12那天，无妄之灾从天而降，他们被埋在教室、宿舍或者走廊里。作为幸存者，他们保全了生命。

他们之中，有的失去了一部分肢体，残肢处理和后来装配的假肢遇到一些问题，有的在骨伤恢复的过程中遇到很多问题，很多孩子（包括重伤）自从出院后就没有再去正规医院检查过。青川的偏远村庄去一回县城很不方便，有的从家中到县城需要先翻山后搭摩托车、再转乡村小巴，路途就要用去五六个小时，如果去广元或者去成都的大医院，往返需要用掉两天或者还要久，花钱，费力，还耽误学习。假如能有一位医生跟他们交朋友，可以在他们需要的时候提供咨询，会让他们和家长心里少一份忐忑，知道自己该做什么，少跑冤枉路。

受伤的孩子有一半是中学生，面临人生和职业的选择，就像所有正当花季的孩子一样。他们怀有美好的梦想，有的想当医生，有的想当语文老师，有的想当建筑师、服装设计师，但父母和身边的人往往无法给他们提供更多的建议和帮助。我们希望，这些孩子能够得到一位专业对口的大朋友。

灾难的阴影至今笼罩着他们，有的孩子会在半夜叫着那些在自己身边死去的同学的名字醒来，对妈妈说：“他们说冷，跟我要被盖”；有的孩子坚持住在棚子里，进入砖瓦房就会引发可怕的联想；大部分孩子说，地震后注意力无法集中，学习成绩下降了……我们希望，这些孩子能够得到一位心灵陪伴的大朋友。

我们也看到了，那些仍然在灾区从事相关工作的志愿者普遍超载，我们希望，开展这项工作不要给志愿者过重的负担，能够在不影响正常工作生活的前提下进行。

二、大朋友项目定义：

当青春期遭遇地震、遭遇伤残，需要有人与他们一起面对。我们计划在青川受伤孩子和城市志愿者之间实施“三对一大朋友计划”，为每一位受伤的孩子找到三位城市里的专业大朋友，承诺三年志愿服务，陪伴孩子走过这段特殊的日子。三位大朋友分别为：心灵陪伴大朋友一名，兴趣爱好或职业选择大朋友一名，外科医生一名。我们希望，志愿者用自己的专业知识和爱好特长为灾区的孩子服务，也期待他们能够成为孩子们的朋友，分享自己的人生经历和生命体验，一同体会成长的脉搏。三年之后，如果有缘，我们盼望这份友情得以延续，让小朋友在遥远的城市里拥有几个“亲戚”。

三、大朋友项目主要服务内容：


与孩子做笔友，提供非资金支持，三位大朋友与一位青川受伤小朋友结对；
医生大朋友回答小朋友伤病相关的问题，其他大朋友每月给小朋友写一封信，与有手机的小朋友偶尔短信或电话联系，在有条件的时候建立网络联系；


四、志愿者基本要求：


大学毕业并有一年以上专业工作经验，愿意耐心的倾听、真诚的分享自己人生经历和生命体验；
承诺与小朋友交往三年；
详细了解并认同大朋友项目理念，能在服务期间主动向项目工作人员反馈自己的服务进展情况；
承担与小朋友联系的邮寄费用和电话费。
请志愿者在报名前对自己的时间、爱心、恒心有过慎重而负责任的思考。


特别提示：青川大朋友开始招募，考虑到入门培训和后期跟进等因素，首批大朋友为在北京长期居住的志愿者。

五、志愿者加入方式


请登录http://www.beautifulcn.org/bbs/(爱艺网站)，或http://home.ngocn.org/space-31629.html(NGOCN爱艺社区)详细了解大朋友项目；
有志于从事志愿服务活动者，在邮件标题注明“***报名加入青川大朋友计划，发送至taianaiyi@163.com邮箱；
招募人员在收到报名邮件后2个工作日发送大朋友项目申请表；
提交申请表一周之内您会收到答复邮件，通过初评的志愿者将会进入下一步针对性的沟通
通过第二步沟通的志愿者参加入门培训。


六、志愿者入门培训

由专门的志愿服务支持机构进行首批志愿者培训，培训时间一天。

七、志愿者签署承诺函

通过培训，重新思考评估自身情况，认为自己适合从事长期志愿服务，愿意与青川小朋友交往三年的志愿者，签署志愿者承诺函。

八、牵手结对

在签署志愿者承诺函之后，我们将小朋友详细情况发给志愿者，大朋友按照相关要求，发出给结对小朋友的邮件。

九、特别提示：

请大朋友经常登录爱艺网站和NGOCN上爱艺大朋友计划主页，了解大朋友计划的最新动态和相关信息，欢迎将自己和小朋友交流过程中的故事、经验、问题、困惑、收获、喜悦等信息发布到NGOCN爱艺青川大朋友计划交流群组中，促进我们更好的互动交流，让我们一起努力，不断完善青川大朋友项目。

十、咨询服务

联系人：薛花菊   蒋正为    咨询电话：0538-8221646    电子邮箱：taianaiyi163.com

“青川受伤孩子大朋友计划”执行机构介绍：

泰安爱艺文化发展中心自1993年起关注中国残障人问题，拥有以工艺美术解决伤残人生计及推动伤残人自组织建设的系统经验，自2008年6月起进入四川开展工作。截至2009年底，已向100位伤残青少年开办特殊医疗保障计划，保证他们因地震伤害产生的医疗费用能够百分之百报销，同时动员社会力量，为60 名伤残孩子提供了一对一资助，开办“第二课堂”乡村图书馆三所，举办专题活动多次。

××××××××

PS：在“大朋友”志愿者培训中碰到了 OpenParty 的老朋友 阿丹，在此推荐他的博文爱的礼物。
]]></description>
			<content:encoded><![CDATA[<p>虽然最初参加“大朋友计划”另有一些原因，但昨晚寇老师在 QQ 上的一段留言让我重新认识到了为什么我真心愿意参加“大朋友计划”。原文见下：</p>

<blockquote>
  <p><em>郭谦谦家在木鱼镇上，唐树俊和李全波因为家远，周末就在学校过。我到时他们还没有吃晚饭，就拉他们一起去饭馆，边吃边聊。耽完下小雨了，我跟郭谦谦一起去她家里，唐树俊和李全波要走回学校。我给他们出主意，可以把大朋友快递的大信封放在脑袋上挡雨，他们摆摆手，笑笑，把信抱在怀中，走进了小雨里。</em></p>
</blockquote>

<p>＝＝＝＝转帖“大朋友计划”招募原文＝＝＝＝</p>

<h3>一、背景信息</h3>

<p>四川省青川县是大地震极重灾区，震后有404位受伤青少年申请残疾评定，大多数来自农村。</p>

<p>5、12那天，无妄之灾从天而降，他们被埋在教室、宿舍或者走廊里。作为幸存者，他们保全了生命。</p>

<p>他们之中，有的失去了一部分肢体，残肢处理和后来装配的假肢遇到一些问题，有的在骨伤恢复的过程中遇到很多问题，很多孩子（包括重伤）自从出院后就没有再去正规医院检查过。青川的偏远村庄去一回县城很不方便，有的从家中到县城需要先翻山后搭摩托车、再转乡村小巴，路途就要用去五六个小时，如果去广元或者去成都的大医院，往返需要用掉两天或者还要久，花钱，费力，还耽误学习。假如能有一位医生跟他们交朋友，可以在他们需要的时候提供咨询，会让他们和家长心里少一份忐忑，知道自己该做什么，少跑冤枉路。</p>

<p>受伤的孩子有一半是中学生，面临人生和职业的选择，就像所有正当花季的孩子一样。他们怀有美好的梦想，有的想当医生，有的想当语文老师，有的想当建筑师、服装设计师，但父母和身边的人往往无法给他们提供更多的建议和帮助。我们希望，这些孩子能够得到一位专业对口的大朋友。</p>

<p>灾难的阴影至今笼罩着他们，有的孩子会在半夜叫着那些在自己身边死去的同学的名字醒来，对妈妈说：“他们说冷，跟我要被盖”；有的孩子坚持住在棚子里，进入砖瓦房就会引发可怕的联想；大部分孩子说，地震后注意力无法集中，学习成绩下降了……我们希望，这些孩子能够得到一位心灵陪伴的大朋友。</p>

<p>我们也看到了，那些仍然在灾区从事相关工作的志愿者普遍超载，我们希望，开展这项工作不要给志愿者过重的负担，能够在不影响正常工作生活的前提下进行。</p>

<h3>二、大朋友项目定义：</h3>

<p>当青春期遭遇地震、遭遇伤残，需要有人与他们一起面对。我们计划在青川受伤孩子和城市志愿者之间实施“三对一大朋友计划”，为每一位受伤的孩子找到三位城市里的专业大朋友，承诺三年志愿服务，陪伴孩子走过这段特殊的日子。三位大朋友分别为：心灵陪伴大朋友一名，兴趣爱好或职业选择大朋友一名，外科医生一名。我们希望，志愿者用自己的专业知识和爱好特长为灾区的孩子服务，也期待他们能够成为孩子们的朋友，分享自己的人生经历和生命体验，一同体会成长的脉搏。三年之后，如果有缘，我们盼望这份友情得以延续，让小朋友在遥远的城市里拥有几个“亲戚”。</p>

<h3>三、大朋友项目主要服务内容：</h3>

<ol>
<li>与孩子做笔友，提供非资金支持，三位大朋友与一位青川受伤小朋友结对；</li>
<li>医生大朋友回答小朋友伤病相关的问题，其他大朋友每月给小朋友写一封信，与有手机的小朋友偶尔短信或电话联系，在有条件的时候建立网络联系；</li>
</ol>

<h3>四、志愿者基本要求：</h3>

<ol>
<li>大学毕业并有一年以上专业工作经验，愿意耐心的倾听、真诚的分享自己人生经历和生命体验；</li>
<li>承诺与小朋友交往三年；</li>
<li>详细了解并认同大朋友项目理念，能在服务期间主动向项目工作人员反馈自己的服务进展情况；</li>
<li>承担与小朋友联系的邮寄费用和电话费。</li>
<li>请志愿者在报名前对自己的时间、爱心、恒心有过慎重而负责任的思考。</li>
</ol>

<p>特别提示：青川大朋友开始招募，考虑到入门培训和后期跟进等因素，首批大朋友为在北京长期居住的志愿者。</p>

<h3>五、志愿者加入方式</h3>

<ol>
<li>请登录<a href="http://www.beautifulcn.org/bbs/" title="爱艺网站">http://www.beautifulcn.org/bbs/</a>(爱艺网站)，或<a href="http://home.ngocn.org/space-31629.html" title="NGOCN爱艺社区">http://home.ngocn.org/space-31629.html</a>(NGOCN爱艺社区)详细了解大朋友项目；</li>
<li>有志于从事志愿服务活动者，在邮件标题注明“***报名加入青川大朋友计划，发送至<a href="mailto:taianaiyi@163.com" title="">taianaiyi@163.com</a>邮箱；</li>
<li>招募人员在收到报名邮件后2个工作日发送大朋友项目申请表；</li>
<li>提交申请表一周之内您会收到答复邮件，通过初评的志愿者将会进入下一步针对性的沟通</li>
<li>通过第二步沟通的志愿者参加入门培训。</li>
</ol>

<h3>六、志愿者入门培训</h3>

<p>由专门的志愿服务支持机构进行首批志愿者培训，培训时间一天。</p>

<h3>七、志愿者签署承诺函</h3>

<p>通过培训，重新思考评估自身情况，认为自己适合从事长期志愿服务，愿意与青川小朋友交往三年的志愿者，签署志愿者承诺函。</p>

<h3>八、牵手结对</h3>

<p>在签署志愿者承诺函之后，我们将小朋友详细情况发给志愿者，大朋友按照相关要求，发出给结对小朋友的邮件。</p>

<h3>九、特别提示：</h3>

<p>请大朋友经常登录爱艺网站和NGOCN上爱艺大朋友计划主页，了解大朋友计划的最新动态和相关信息，欢迎将自己和小朋友交流过程中的故事、经验、问题、困惑、收获、喜悦等信息发布到NGOCN爱艺青川大朋友计划交流群组中，促进我们更好的互动交流，让我们一起努力，不断完善青川大朋友项目。</p>

<h3>十、咨询服务</h3>

<p>联系人：薛花菊   蒋正为    咨询电话：0538-8221646    电子邮箱：<a href="mailto:taianaiyi163.com" title="">taianaiyi163.com</a></p>

<h4>“青川受伤孩子大朋友计划”执行机构介绍：</h4>

<p>泰安爱艺文化发展中心自1993年起关注中国残障人问题，拥有以工艺美术解决伤残人生计及推动伤残人自组织建设的系统经验，自2008年6月起进入四川开展工作。截至2009年底，已向100位伤残青少年开办特殊医疗保障计划，保证他们因地震伤害产生的医疗费用能够百分之百报销，同时动员社会力量，为60 名伤残孩子提供了一对一资助，开办“第二课堂”乡村图书馆三所，举办专题活动多次。</p>

<p>××××××××</p>

<p>PS：在“大朋友”志愿者培训中碰到了 OpenParty 的老朋友 阿丹，在此推荐他的博文<a href="http://cleverpig.name/dan/2010/04/12/%E7%88%B1%E7%9A%84%E7%A4%BC%E7%89%A9/" title="爱的礼物">爱的礼物</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/404/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python 的 ctypes 模块实在太方便了！</title>
		<link>http://blog.elias.cn/archives/399</link>
		<comments>http://blog.elias.cn/archives/399#comments</comments>
		<pubDate>Wed, 24 Mar 2010 02:56:34 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[混乱的IT世界]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[开放源码]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=399</guid>
		<description><![CDATA[最近用到中文分词库 Bamboo ，开始时有点头疼居然没有 Python 封装。。后来发现用 ctypes 模块来封装实在是太简单、太方便了～几乎被感动到内流满面～有了庞大 C 库和 ctypes 模块的 Python ，真是可比当年的数理化——走遍天下都不怕～下面给出通过 ctypes 模块调用 Bamboo 分词的示例代码：


?Download seg.py#!/usr/bin/env python
# -*- coding: utf-8 -*-
&#160;
from ctypes import *
&#160;
# 通过 C 接口载入 libbamboo ，“.dylib”是 Mac OSX 下的动态库后缀， Linux 下应该是“libbamboo.so”：
libbamboo = CDLL&#40;'libbamboo.dylib'&#41;
# 调用 bamboo_init() 函数得到一个分词器实例：
bamboo_init = libbamboo.bamboo_init
bamboo_init.restype = c_void_p
bamboo_handler = bamboo_init&#40;c_char_p&#40;'crf_seg'&#41;, None&#41;
# 如果返回的实例是 None （也即 C 中的 Null ），表示实例生成失败，那我们打印出错原因：
if [...]]]></description>
			<content:encoded><![CDATA[<p>最近用到中文分词库 Bamboo ，开始时有点头疼居然没有 Python 封装。。后来发现用 ctypes 模块来封装实在是太简单、太方便了～几乎被感动到内流满面～有了庞大 C 库和 ctypes 模块的 Python ，真是可比当年的数理化——走遍天下都不怕～下面给出通过 ctypes 模块调用 Bamboo 分词的示例代码：</p>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://blog.elias.cn/wp-content/plugins/wp-codebox/wp-codebox.php?p=399&amp;download=seg.py">seg.py</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3992"><td class="code" id="p399code2"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> ctypes <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># 通过 C 接口载入 libbamboo ，“.dylib”是 Mac OSX 下的动态库后缀， Linux 下应该是“libbamboo.so”：</span>
libbamboo = CDLL<span style="color: black;">&#40;</span><span style="color: #483d8b;">'libbamboo.dylib'</span><span style="color: black;">&#41;</span>
<span style="color: #808080; font-style: italic;"># 调用 bamboo_init() 函数得到一个分词器实例：</span>
bamboo_init = libbamboo.<span style="color: black;">bamboo_init</span>
bamboo_init.<span style="color: black;">restype</span> = c_void_p
bamboo_handler = bamboo_init<span style="color: black;">&#40;</span>c_char_p<span style="color: black;">&#40;</span><span style="color: #483d8b;">'crf_seg'</span><span style="color: black;">&#41;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>
<span style="color: #808080; font-style: italic;"># 如果返回的实例是 None （也即 C 中的 Null ），表示实例生成失败，那我们打印出错原因：</span>
<span style="color: #ff7700;font-weight:bold;">if</span> bamboo_handler <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
    bamboo_strerror = libbamboo.<span style="color: black;">bamboo_strerror</span>
    bamboo_strerror.<span style="color: black;">restype</span> = c_char_p
    <span style="color: #ff7700;font-weight:bold;">print</span> bamboo_strerror<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">else</span>:
    <span style="color: #808080; font-style: italic;"># 把文本传给分词器准备分词：</span>
    <span style="color: #808080; font-style: italic;"># 待分词的文本必须是 utf-8 编码的 bytes string ，所以我们要把 unicode string encode 一下：</span>
    libbamboo.<span style="color: black;">bamboo_setopt</span><span style="color: black;">&#40;</span>bamboo_handler, c_long<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>, c_char_p<span style="color: black;">&#40;</span>u<span style="color: #483d8b;">'我爱北京天安门'</span>.<span style="color: black;">encode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'utf-8'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
    <span style="color: #808080; font-style: italic;"># 真正开始分词：</span>
    bamboo_parse = libbamboo.<span style="color: black;">bamboo_parse</span>
    bamboo_parse.<span style="color: black;">restype</span> = c_char_p
    <span style="color: #808080; font-style: italic;"># 下一行得到分词结果（空格分隔），格式还是 utf-8 编码的 bytes string ，我们把它 decode 成 unicode ：</span>
    segged = bamboo_parse<span style="color: black;">&#40;</span>bamboo_handler<span style="color: black;">&#41;</span>.<span style="color: black;">decode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'utf-8'</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #008000;">type</span><span style="color: black;">&#40;</span>segged<span style="color: black;">&#41;</span>, <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>segged<span style="color: black;">&#41;</span>, segged
<span style="color: #808080; font-style: italic;"># 调用 bamboo_clean() 函数释放分词器实例：</span>
libbamboo.<span style="color: black;">bamboo_clean</span><span style="color: black;">&#40;</span>bamboo_handler<span style="color: black;">&#41;</span></pre></td></tr></table></div>


<p>感谢国家，感谢什么什么TV，另外感谢沈仙人，当年正是他的博文<a href="http://eishn.blog.163.com/blog/static/6523182009810115428341/" title="用 Python 写自己的 C Module">用 Python 写自己的 C Module</a>让 ctypes 在我脑海里留下了不可磨灭的印象^_^</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/399/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>街舞准高手和真正高手的区别</title>
		<link>http://blog.elias.cn/archives/396</link>
		<comments>http://blog.elias.cn/archives/396#comments</comments>
		<pubDate>Fri, 26 Feb 2010 15:51:05 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[匪夷所思的平淡生活]]></category>
		<category><![CDATA[做事方法]]></category>
		<category><![CDATA[街舞]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=396</guid>
		<description><![CDATA[说实话，如果都用他们自己准备好的音乐，跳他们准备好的舞，那他们的动作同样干净、编排同样巧妙，是很不容易看出他们之间差别的。只有现场 Battle 才是展示舞者真正实力的地方！今天跑去看了 KOD6 预选赛，在这一点上感受尤其明显。仔细看的话，“准高手”们动作到位、干净，并且漂亮地用出了很多高级甚至超高级技巧，常常也能令观众炫目。可是如果看的再仔细一些，会发现这些家伙每次上场比赛几乎总是“老一套”，无论 DJ 给的是什么样的鼓点、什么样的曲子，他们总是跳成差不多的节奏、差不多的动作组合，变化微小。换句话说，小伙子、小姑娘们自己闷头耍自己的，把音乐扔在一边，自己巍然不动。他们跳的不是舞，而只是舞蹈的动作；他们表现的不是美、不是音乐，而只是单纯的技巧。真正的高手则大大不同，给他/她不同风格的音乐，看到的一定是不同的舞蹈，几乎让人觉得是换了一个人（16进8的每局比赛每人会有两轮舞， DJ 会给不同的音乐，就尤其能看出这样的反差）。甚至不仅如此，他们会让人感到是他们的舞把音乐变得更美更传神！可是仔细看，他/她舞蹈的魂、舞蹈的基础仍然是 Poping 、仍然是 Locking 、仍然是 Hip-Hop 。今天 Hip-Hop 比赛中14岁的日本小姑娘 Maika 就凭此战胜了虽然拿过多次冠军可我总觉得他多年总是一个路子的李琦。

世上没有无因的果，没有人喜欢停留在准高手，只是他们的“遭遇”也许各不相同。有些跳舞的朋友只学习、钻研了一个窄窄的路子，肚囊不宽，以这样的本事所能表现的风格也确实有限；也有的朋友技巧不错，可是接触的音乐不够多，不巧碰上陌生鼓点的时候也就抓了瞎；还有的朋友对技术、音乐都熟门熟路，可惜一直傻跳，没有仔细去想什么才是真正的“舞”、什么才是真正属于他/她的“舞”。

其实这一篇不是为了讲跳舞的，说的是做事的方法，但道理是共通的。就像舞蹈要能表现不同的音乐一样，好的做事方法应该是“随机应变”的。也就是说根据当时的具体情况和目标，实事求是地做出最好的选择；就像跳舞不能闷头傻跳一样，做事也不能因为自己有某方面的技能，就看哪都是“钉子”，想用自己这“榔头”去锤一下。但 Locking 里无论加入多少 Wave ， Locking 也还是不可以变成 Poping ，而人在做事时也还是要明白自己的职责和特长，不能失去自己的“根”。上场 Battle 时任凭台下欢声雷动、粉丝们尖叫成群，台上任凭你舞姿帅气潇洒，在公正的裁判手里仍然是有可能落败的——无他，技不如人罢了。可见真正踏实做事的人也大可不必把他人的恭维及所谓的虚名太当回事。当然， Battle 是一种比赛。是比赛就会有偶然因素，就会有状态起伏。我这里也并不是说李琦输了就真是水平差多少，其中肯定有心态和发挥问题。但是结果已定，那么没别的话说，以后刻苦练习，下次比赛赢回来也就罢了。人生也是一样，坎坷难免，但努力奋斗，路总是在前方！



PS：现在真是老了，我的位子也不算近，比赛才看到一半就耳鸣不止，到现在还没缓过来。。

PPS：既然舞蹈和体育能帮助人调整心态、领悟人生的道理，那我将来的将来的将来有小孩的时候，自然应该鼓励娃整整这些方面的业余爱好，本人自当想方设法给娃提供便利条件^_^ 立此为记。
]]></description>
			<content:encoded><![CDATA[<p>说实话，如果都用他们自己准备好的音乐，跳他们准备好的舞，那他们的动作同样干净、编排同样巧妙，是很不容易看出他们之间差别的。只有现场 Battle 才是展示舞者真正实力的地方！今天跑去看了 KOD6 预选赛，在这一点上感受尤其明显。仔细看的话，“准高手”们动作到位、干净，并且漂亮地用出了很多高级甚至超高级技巧，常常也能令观众炫目。可是如果看的再仔细一些，会发现这些家伙每次上场比赛几乎总是“老一套”，无论 DJ 给的是什么样的鼓点、什么样的曲子，他们总是跳成差不多的节奏、差不多的动作组合，变化微小。换句话说，小伙子、小姑娘们自己闷头耍自己的，把音乐扔在一边，自己巍然不动。他们跳的不是舞，而只是舞蹈的动作；他们表现的不是美、不是音乐，而只是单纯的技巧。真正的高手则大大不同，给他/她不同风格的音乐，看到的一定是不同的舞蹈，几乎让人觉得是换了一个人（16进8的每局比赛每人会有两轮舞， DJ 会给不同的音乐，就尤其能看出这样的反差）。甚至不仅如此，他们会让人感到是他们的舞把音乐变得更美更传神！可是仔细看，他/她舞蹈的魂、舞蹈的基础仍然是 Poping 、仍然是 Locking 、仍然是 Hip-Hop 。今天 Hip-Hop 比赛中14岁的日本小姑娘 Maika 就凭此战胜了虽然拿过多次冠军可我总觉得他多年总是一个路子的李琦。</p>

<p>世上没有无因的果，没有人喜欢停留在准高手，只是他们的“遭遇”也许各不相同。有些跳舞的朋友只学习、钻研了一个窄窄的路子，肚囊不宽，以这样的本事所能表现的风格也确实有限；也有的朋友技巧不错，可是接触的音乐不够多，不巧碰上陌生鼓点的时候也就抓了瞎；还有的朋友对技术、音乐都熟门熟路，可惜一直傻跳，没有仔细去想什么才是真正的“舞”、什么才是真正属于他/她的“舞”。</p>

<p>其实这一篇不是为了讲跳舞的，说的是做事的方法，但道理是共通的。就像舞蹈要能表现不同的音乐一样，好的做事方法应该是“随机应变”的。也就是说根据当时的具体情况和目标，实事求是地做出最好的选择；就像跳舞不能闷头傻跳一样，做事也不能因为自己有某方面的技能，就看哪都是“钉子”，想用自己这“榔头”去锤一下。但 Locking 里无论加入多少 Wave ， Locking 也还是不可以变成 Poping ，而人在做事时也还是要明白自己的职责和特长，不能失去自己的“根”。上场 Battle 时任凭台下欢声雷动、粉丝们尖叫成群，台上任凭你舞姿帅气潇洒，在公正的裁判手里仍然是有可能落败的——无他，技不如人罢了。可见真正踏实做事的人也大可不必把他人的恭维及所谓的虚名太当回事。当然， Battle 是一种比赛。是比赛就会有偶然因素，就会有状态起伏。我这里也并不是说李琦输了就真是水平差多少，其中肯定有心态和发挥问题。但是结果已定，那么没别的话说，以后刻苦练习，下次比赛赢回来也就罢了。人生也是一样，坎坷难免，但努力奋斗，路总是在前方！</p>

<p><img src="http://blog.elias.cn/wp-content/uploads/2010/02/kod6.jpg" alt="kod6" title="kod6" width="450" height="369" class="alignnone size-full wp-image-397" /></p>

<p>PS：现在真是老了，我的位子也不算近，比赛才看到一半就耳鸣不止，到现在还没缓过来。。</p>

<p>PPS：既然舞蹈和体育能帮助人调整心态、领悟人生的道理，那我将来的将来的将来有小孩的时候，自然应该鼓励娃整整这些方面的业余爱好，本人自当想方设法给娃提供便利条件^_^ 立此为记。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/396/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>北京到青岛最新路书简洁版</title>
		<link>http://blog.elias.cn/archives/392</link>
		<comments>http://blog.elias.cn/archives/392#comments</comments>
		<pubDate>Sat, 13 Feb 2010 03:27:35 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[匪夷所思的平淡生活]]></category>
		<category><![CDATA[北京]]></category>
		<category><![CDATA[路线]]></category>
		<category><![CDATA[青岛]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=392</guid>
		<description><![CDATA[自奥运会以来，北京到青岛之间的高速真是半年一个样，直接导致以前的高速路书过时了。以下是今年春节从北京到青岛的最佳路线：


加满油（一般路过的天津、河北两省以及山东南部都是乙醇汽油，只有北京和山东北部有非乙醇汽油），五环东南角化工桥上京津高速（不要像以前那样走京津唐，新的京津不但路平、单向四车道，而且车也很少。所以关键的问题反倒是得在这样的路况下谨防超速）。
注意路标，大约40公里左右，有转向京沪的出口，由此进入京沪高速。
注意路标，进入京沪接近40公里左右，有转向津晋的路口，但路口写的不是津晋，而是写的指向滨海新区和东营。总之跟着指向东营的路标，进入津晋（进入以后很快会有一个牌子说这是津晋）。哈利路亚～津晋总算接通了，以前只能绕行塘津，要稍微远一点点。
注意路标，再走60到80公里左右，有指向荣乌高速的路标，由此转入荣乌，向荣成方向走。其实荣乌和津汕是一回事，只是不同段叫不同的名字就是了。
顺着荣乌一直走一直走，可以一直走到东营附近（这时从北京出发算起大约已经350到400公里了，一半多一点了），很多人会将东营作为一个休息站，在这里吃饭并且加97号非乙醇汽油加满。以前再往前走不大容易找到休息站，所以必须考虑加油的问题。
注意路标，在东营附近顺指向青岛方向进入青银高速，一直按照路标的青岛方向走就好了。


整个路程车都不多，路况超好（就因为路况太好所以反而容易困……）。仔细看路标，并且在进入山东境内后要注意加满非乙醇汽油就行。总行程大约680公里左右。
]]></description>
			<content:encoded><![CDATA[<p>自奥运会以来，北京到青岛之间的高速真是半年一个样，直接导致以前的高速路书过时了。以下是今年春节从北京到青岛的最佳路线：</p>

<ol>
<li>加满油（一般路过的天津、河北两省以及山东南部都是乙醇汽油，只有北京和山东北部有非乙醇汽油），五环东南角化工桥上京津高速（不要像以前那样走京津唐，新的京津不但路平、单向四车道，而且车也很少。所以关键的问题反倒是得在这样的路况下谨防超速）。</li>
<li>注意路标，大约40公里左右，有转向京沪的出口，由此进入京沪高速。</li>
<li>注意路标，进入京沪接近40公里左右，有转向津晋的路口，但路口写的不是津晋，而是写的指向滨海新区和东营。总之跟着指向东营的路标，进入津晋（进入以后很快会有一个牌子说这是津晋）。哈利路亚～津晋总算接通了，以前只能绕行塘津，要稍微远一点点。</li>
<li>注意路标，再走60到80公里左右，有指向荣乌高速的路标，由此转入荣乌，向荣成方向走。其实荣乌和津汕是一回事，只是不同段叫不同的名字就是了。</li>
<li>顺着荣乌一直走一直走，可以一直走到东营附近（这时从北京出发算起大约已经350到400公里了，一半多一点了），很多人会将东营作为一个休息站，在这里吃饭并且加97号非乙醇汽油加满。以前再往前走不大容易找到休息站，所以必须考虑加油的问题。</li>
<li>注意路标，在东营附近顺指向青岛方向进入青银高速，一直按照路标的青岛方向走就好了。</li>
</ol>

<p>整个路程车都不多，路况超好（就因为路况太好所以反而容易困……）。仔细看路标，并且在进入山东境内后要注意加满非乙醇汽油就行。总行程大约680公里左右。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/392/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>共勉下个十年</title>
		<link>http://blog.elias.cn/archives/388</link>
		<comments>http://blog.elias.cn/archives/388#comments</comments>
		<pubDate>Mon, 11 Jan 2010 04:05:57 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[匪夷所思的平淡生活]]></category>
		<category><![CDATA[理想]]></category>
		<category><![CDATA[生活态度]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=388</guid>
		<description><![CDATA[泡开心网已经挺久的了，早过了玩小游戏的阶段，登陆上去也就主要就是为了看看朋友们的近况、看看转帖的八卦。这八卦看着看着，觉得似乎舆论导向认为80后、90后、00后是越来越非主流、越来越不靠谱。我自己算是80后最前头那一拨的，当然不乐意承认自己不靠谱，也就难免琢磨琢磨问题出在什么地方。答案其实也很容易发现——现在年轻的人们是有点迷茫。

好吧，什么是“迷茫”？我觉得说的是那种不知道自己真正想做什么、怎样做才是“对”的那种状态。其本人通常不会承认自己没有理想，觉得自己心中还是有一片想要追逐的美景在。但如果这种“理想”脱离了一条能够到达的路径（或许短些，或许要漫长到一生的时间，但总归应该是能够到达的），那其实不是理想就是梦想了。于是即便现实生活丰衣足食、前途宽广的时候，我们心里仍然可以觉得“这不是我想要的、不是我想要的”。这时“踏实”的孩子一般会选择压抑自己的内心，尽力去做“应该做”的事，其中不少有才华的家伙也仍然可以做出相当不错的成绩。只是我总觉得里面带有太多“勉强自己”的味道，效果比自己心甘情愿的时候要差得太多了，实在是有些浪费才智的嫌疑。当然也有像我这样比较“拧巴”的人，就把日子过成了这样：大家都在努力学习的时候我在试图搞对象，大家都在努力工作的时候我还窝在那读书，大家已经脚踏实地解决了对象问题的时候我又翻回来琢磨事业。^_^这么个折腾法当然每一样的结果都不会太顺当，离一般师长认为的传统意义上成功年轻人的标准肯定也相去甚远。

其实迷茫本身不至于算是问题。我父母那一辈年轻时赶上“上山下乡”十有八九也是够迷茫的，后来倒基本算是挺过来了。也许迷茫是年轻时代的一个必然阶段，展现的是对自己价值观的建立、确定和追求。问题在于这年头迷茫的时间有点儿太长了。前些年我帮导师面试新研究生的时候，明显感觉到过来的学生对为啥要读研、读博几乎都没有认识，对即将面临的状况也没什么概念。结果入学以后很快无论精神面貌和工作表现，都得说有点儿差强人意。我也认识一些工作的“小朋友”，在大学毕业时随大流杀入了公认还算不错的企业，在直属经理的翅膀保护下躲避了大企业的复杂纷争，勤勤恳恳地干活、加班，却觉得自己越来越空虚，离想要的生活似乎越来越远。“小朋友”都不清楚自己真正想要什么，那即便随后按照标准模式跑出来读了MBA又能如何，结果十有八九是再次毕业后又一次随大流卷入加班折腾、没有自己的人生、感觉所做的事没有意义的死循环。

以前一般认为，大学阶段是完善人生观的最后时期。按照这样的标准，我可是足足多迷茫掉了好几年的青春时光。听起来有些可惜，不过至少现在是明白了自己想要的东西，心里也有了一份预期和规划。我中学时代的班主任曾经说，大家获得的成绩要在大学毕业十年以后再来看，更早的状况说明不了什么问题。以这样的十年算来，我手中还有充足的时间可以利用。其实又何必在意和别人的比较呢，只要找到了自己的路，靠谱地、踏实地做事，即便再等下一个十年又有什么关系。在此与诸君共勉吧～

× × × × × × × × × ×

PS：看看博客的存档就知道，以前我是每月至少写一篇的。虽然顾虑爹娘或导师没准偶尔也会来看看，有很多东西不敢写，不过毕竟这是一段生活的印记，一点痕迹没有就真的成为过眼云烟了。去年春节后在新加坡呆了一个月，一下就把这个规律打破了。当时因为不知道会短期在那还是长期，也就没有去建立新的朋友圈，每次下班以后都自己到处转转玩玩来打发时间。本来当时可以写的东西是挺多的，比如怎么寻找最好吃的榴莲，在大排档搜刮便宜又好吃的美食或者逛逛景点什么的。应该说正在玩的时候我是挺开心的。在蝙蝠馆碰上一对男的要留在新加坡读书、女的得回中国的情侣，姑娘都指着我跟他男朋友说：你看人家一个人都玩得挺开心的，你在这里也可以加油啊^_^ 可是一回到家里剩自己一个人的时候又完全不想动笔了，觉得就算写了也不会有人来读，无论如何都没什么意义。。结果一停也就成了惯性，09年成为我写博客最少的一年，感觉自己的文字都似乎变得不那么流畅了。好消息是，现在我的状态回来了！
]]></description>
			<content:encoded><![CDATA[<p>泡开心网已经挺久的了，早过了玩小游戏的阶段，登陆上去也就主要就是为了看看朋友们的近况、看看转帖的八卦。这八卦看着看着，觉得似乎舆论导向认为80后、90后、00后是越来越非主流、越来越不靠谱。我自己算是80后最前头那一拨的，当然不乐意承认自己不靠谱，也就难免琢磨琢磨问题出在什么地方。答案其实也很容易发现——现在年轻的人们是有点迷茫。</p>

<p>好吧，什么是“迷茫”？我觉得说的是那种不知道自己真正想做什么、怎样做才是“对”的那种状态。其本人通常不会承认自己没有理想，觉得自己心中还是有一片想要追逐的美景在。但如果这种“理想”脱离了一条能够到达的路径（或许短些，或许要漫长到一生的时间，但总归应该是能够到达的），那其实不是理想就是梦想了。于是即便现实生活丰衣足食、前途宽广的时候，我们心里仍然可以觉得“这不是我想要的、不是我想要的”。这时“踏实”的孩子一般会选择压抑自己的内心，尽力去做“应该做”的事，其中不少有才华的家伙也仍然可以做出相当不错的成绩。只是我总觉得里面带有太多“勉强自己”的味道，效果比自己心甘情愿的时候要差得太多了，实在是有些浪费才智的嫌疑。当然也有像我这样比较“拧巴”的人，就把日子过成了这样：大家都在努力学习的时候我在试图搞对象，大家都在努力工作的时候我还窝在那读书，大家已经脚踏实地解决了对象问题的时候我又翻回来琢磨事业。^_^这么个折腾法当然每一样的结果都不会太顺当，离一般师长认为的传统意义上成功年轻人的标准肯定也相去甚远。</p>

<p>其实迷茫本身不至于算是问题。我父母那一辈年轻时赶上“上山下乡”十有八九也是够迷茫的，后来倒基本算是挺过来了。也许迷茫是年轻时代的一个必然阶段，展现的是对自己价值观的建立、确定和追求。问题在于这年头迷茫的时间有点儿太长了。前些年我帮导师面试新研究生的时候，明显感觉到过来的学生对为啥要读研、读博几乎都没有认识，对即将面临的状况也没什么概念。结果入学以后很快无论精神面貌和工作表现，都得说有点儿差强人意。我也认识一些工作的“小朋友”，在大学毕业时随大流杀入了公认还算不错的企业，在直属经理的翅膀保护下躲避了大企业的复杂纷争，勤勤恳恳地干活、加班，却觉得自己越来越空虚，离想要的生活似乎越来越远。“小朋友”都不清楚自己真正想要什么，那即便随后按照标准模式跑出来读了MBA又能如何，结果十有八九是再次毕业后又一次随大流卷入加班折腾、没有自己的人生、感觉所做的事没有意义的死循环。</p>

<p>以前一般认为，大学阶段是完善人生观的最后时期。按照这样的标准，我可是足足多迷茫掉了好几年的青春时光。听起来有些可惜，不过至少现在是明白了自己想要的东西，心里也有了一份预期和规划。我中学时代的班主任曾经说，大家获得的成绩要在大学毕业十年以后再来看，更早的状况说明不了什么问题。以这样的十年算来，我手中还有充足的时间可以利用。其实又何必在意和别人的比较呢，只要找到了自己的路，靠谱地、踏实地做事，即便再等下一个十年又有什么关系。在此与诸君共勉吧～</p>

<p>× × × × × × × × × ×</p>

<p>PS：看看博客的存档就知道，以前我是每月至少写一篇的。虽然顾虑爹娘或导师没准偶尔也会来看看，有很多东西不敢写，不过毕竟这是一段生活的印记，一点痕迹没有就真的成为过眼云烟了。去年春节后在新加坡呆了一个月，一下就把这个规律打破了。当时因为不知道会短期在那还是长期，也就没有去建立新的朋友圈，每次下班以后都自己到处转转玩玩来打发时间。本来当时可以写的东西是挺多的，比如怎么寻找最好吃的榴莲，在大排档搜刮便宜又好吃的美食或者逛逛景点什么的。应该说正在玩的时候我是挺开心的。在蝙蝠馆碰上一对男的要留在新加坡读书、女的得回中国的情侣，姑娘都指着我跟他男朋友说：你看人家一个人都玩得挺开心的，你在这里也可以加油啊^_^ 可是一回到家里剩自己一个人的时候又完全不想动笔了，觉得就算写了也不会有人来读，无论如何都没什么意义。。结果一停也就成了惯性，09年成为我写博客最少的一年，感觉自己的文字都似乎变得不那么流畅了。好消息是，现在我的状态回来了！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/388/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>北京Open Party小建议</title>
		<link>http://blog.elias.cn/archives/344</link>
		<comments>http://blog.elias.cn/archives/344#comments</comments>
		<pubDate>Fri, 08 Jan 2010 15:51:20 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[混乱的IT世界]]></category>
		<category><![CDATA[OpenParty]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=344</guid>
		<description><![CDATA[北京Open Party是我很喜欢的一个非官方技术爱好者集会，不但主题有趣，氛围也很好。虽然不如新加坡、马拉西亚地区的BarCamp那样规模大，但质量绝对不输给他们。稍微夸张一点讲，Open Party是让我觉得北京的开源技术氛围称冠全国的一个重要原因。参加上次Open Party（会议代号：岩上）时，感到会议的时间安排仍嫌不够紧凑，就和组织者之一的田同学交流了一下，这里把他的回信贴出来，以便关心Open Party、愿意献计献策的高人们参与讨论。相信Open Party一定会越办越好的！

× × × × × × × × × ×


  Hi 宋博士：
  
  那天你说的是合理的。我们现在网上社区建立的很不到位。基本上不具备网上投票的功能，我们几个人已经商量在做了。我们会做一个简单的社区，用来管理在Open Party里面的人际关系。我们争取在下次活动前把这个应用搞定。
  
  如果那个时候有了网络投票的基础设施，我们就会鼓励大家在线下提前投票。然后结合现场投票。
  
  我们的活动最早是有一个集体Standup的，每个人只回答三个问题（‘名字’， ‘公司或社团’， ‘角色或者兴趣’）。这样一般15～20分钟就能搞定，而且促进大家相互了解。可是后来因为人越来越多就没法搞了。
  
  现在的方式就是突出话题和拉票。因为现场的拉票可以锻炼演讲者在短时间内总结自己话题的能力。我们国内的开发者这方面的能力都有所欠缺。所以我们觉得这会是个有意义的环节。可是因为引导的问题，现在经常会时间失控，我们会着手解决。
  
  方法可能包括：
  &#35; 你所说的增加一个计时的闹钟（或者锣），提醒演讲者注意时间，每个人压缩在1分钟至1分半种。
  &#35; 修改投票的方式，这个我们没有想好:
  &#42;* 以前尝试过贴条和画正字，投票会很拥挤
  &#42;* 还有一种尝试是最后一同投票，缺点是人家都忘记话题内容了
  &#35; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.beijing-open-party.org/">北京Open Party</a>是我很喜欢的一个非官方技术爱好者集会，不但主题有趣，氛围也很好。虽然不如新加坡、马拉西亚地区的BarCamp那样规模大，但质量绝对不输给他们。稍微夸张一点讲，Open Party是让我觉得北京的开源技术氛围称冠全国的一个重要原因。参加<a href="http://www.beijing-open-party.org/2009/12/beijing-open-party-2009-12-event-report/">上次Open Party（会议代号：岩上）</a>时，感到会议的时间安排仍嫌不够紧凑，就和组织者之一的田同学交流了一下，这里把他的回信贴出来，以便关心Open Party、愿意献计献策的高人们参与讨论。相信Open Party一定会越办越好的！</p>

<p>× × × × × × × × × ×</p>

<blockquote>
  <p>Hi 宋博士：</p>
  
  <p>那天你说的是合理的。我们现在网上社区建立的很不到位。基本上不具备网上投票的功能，我们几个人已经商量在做了。我们会做一个简单的社区，用来管理在Open Party里面的人际关系。我们争取在下次活动前把这个应用搞定。</p>
  
  <p>如果那个时候有了网络投票的基础设施，我们就会鼓励大家在线下提前投票。然后结合现场投票。</p>
  
  <p>我们的活动最早是有一个集体Standup的，每个人只回答三个问题（‘名字’， ‘公司或社团’， ‘角色或者兴趣’）。这样一般15～20分钟就能搞定，而且促进大家相互了解。可是后来因为人越来越多就没法搞了。</p>
  
  <p>现在的方式就是突出话题和拉票。因为现场的拉票可以锻炼演讲者在短时间内总结自己话题的能力。我们国内的开发者这方面的能力都有所欠缺。所以我们觉得这会是个有意义的环节。可是因为引导的问题，现在经常会时间失控，我们会着手解决。</p>
  
  <p>方法可能包括：<br />
  &#35; 你所说的增加一个计时的闹钟（或者锣），提醒演讲者注意时间，每个人压缩在1分钟至1分半种。<br />
  &#35; 修改投票的方式，这个我们没有想好:<br />
  &#42;* 以前尝试过贴条和画正字，投票会很拥挤<br />
  &#42;* 还有一种尝试是最后一同投票，缺点是人家都忘记话题内容了<br />
  &#35; 减少前面不容易受控的环节：<br />
  &#42;* 如新人介绍可以修改为只回答（‘名字’， ‘公司或社团’， ‘角色或者兴趣’）并多问几个人<br />
  &#42;* 美女时间剪短，因为不好控制<br />
  &#42;* lighttalk要限定将单一主题，不能一个人讲好几个问题。时间控制在每人2分钟以下<br />
  &#42;* 重量参与者时间也减去自我介绍，只需要介绍名字和背静就可以，主要是让大家脸熟就可以。时间控制在每人20-30秒<br />
  &#35; 落榜话题的问题，我们最好给他们提供一面墙，约定自己的话题时间和小房间，如果有兴趣的朋友可以在那里汇合。解决因此造成的现场的混乱，这次有很多朋友过来问我那些落榜话题在哪里。<br />
  &#35; 活动的记录。我想我们可以鼓励大家多带DV并录像，如果不能录像就录音。我下次争取带DV。因为留下视频让没有参加的朋友享受是很好的。而且对于演讲者来说这也是一个宝贵的资源，可以提高他/她的满足感，也能帮助他/她纠正演讲中的瑕疵。<br />
  &#35; 我们下次争取把结束时间提前到5:30，解决5:00以后参与人员散场太多的问题（这造成了对最后一轮的speaker不够尊重）</p>
  
  <p>最后，希望宋博士能够在博客中把信中的反馈记录下来，然后ping back回open party的blog，方便更多的朋友能参与到这个讨论中。</p>
  
  <p>2009/12/14 Elias Soong <a href="&#109;a&#105;l&#116;o&#x3a;e&#x6c;&#105;&#x61;&#115;&#x2e;&#115;&#x6f;&#111;&#x6e;&#103;&#x40;&#103;&#x6d;&#97;&#x69;&#108;&#x2e;&#99;&#x6f;&#109;">e&#x6c;&#105;&#x61;&#115;&#x2e;&#115;&#x6f;&#111;&#x6e;&#103;&#x40;&#103;&#x6d;&#97;&#x69;&#108;&#x2e;&#99;&#x6f;&#109;</a></p>
  
  <p>　　大田你好，</p>
  
  <p>　　周末这次OpenParty中间休息时候我有跟你提过说建议增加会前的主题网络投票， 这样根据投票结果提前确定部分主要Session的房间安排，以便一定程度上压缩整 个会议时间。</p>
  
  <p>　　其实我觉得网络投票等形式是否有所帮助可以慢慢探讨，这次的主要感觉是主题很 有意思，但主题正式开始前的几个阶段时间没有控制好。</p>
  
  <p>　　记忆里，这次确定各个房间安排开讲时大约已经2点40了，后面每个房间安排了3个主题，大约总共又需要3小时左右，最后全部完成就接近6点了，而实际上一般5点左右就有人开始退场，这就不是很理想了。我觉得主持人可以有意识地控制场面，将主题的开始时间控制在2点左右，这样大致可以在5点左右完成全部活动，会是比较理想的。当然，不能说这是由于前几个阶段过于拖沓，应该说和这次活动开始的时间就有所拖延也有关系。活动最好还是按照预定通知，在一点钟正式开始，虽然每次一点以后还总是有陆续迟到的，不过毕竟他们不至于错过正式主题，应该影响 不大。</p>
  
  <p>　　仅此以供参考，致礼～</p>
  
  <p>　　宋</p>
  
  <p>　　&#8211;<br />
  　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
  　　Personal Site: http://www.elias.cn<br />
  　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/344/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Lighttpd上使用wp-super-cache</title>
		<link>http://blog.elias.cn/archives/328</link>
		<comments>http://blog.elias.cn/archives/328#comments</comments>
		<pubDate>Mon, 11 May 2009 09:51:39 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[个人网站的工具与思考]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=328</guid>
		<description><![CDATA[wp-super-cache是WordPress的一个静态缓存插件，对访问量大的博客或是在系统中使用了性能较差的插件时都是挺有用的。但这个玩意需要Apache的mod_rewrite来支持，lighty下可没有这玩意儿。所以需要咱们自己添加一个lua脚本，配合lighty的mod_magnet模块来代替mod_rewrite的功能。整个操作步骤是这样的：

lighty中博客站点的配置文件要这么写：


?View Code TEXT$HTTP[&#34;host&#34;] == &#34;blog.elias.cn&#34; {
  server.document-root = &#34;/home/public_html/elias&#34;
  magnet.attract-physical-path-to = ( server.document-root + &#34;/rewrite.lua&#34; )
}


这里能用magnet.attract-physical-path-to的前提是mod_magnet已经安装并启用了，否则在lighty的error.log会报错。Debian里mod_magnet是单独的一个包，叫做lighttpd-mod-magnet，安装以后就可以把mod_magnet加入lighty的配置文件了。

然后再在博客站点的根目录新建一个名为rewrite.lua的脚本文件，文件内容为：


?Download rewrite.lua1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function serve_html&#40;cached_page&#41;
  if &#40;lighty.stat&#40;cached_page&#41;&#41; then
    lighty.env&#91;&#34;physical.path&#34;&#93; = cached_page
    print&#40;&#34;Serving cached page: &#34; .. cached_page&#41;
    return true
  else
    return false
  end
end
&#160;
function serve_gzip&#40;cached_page&#41;
  [...]]]></description>
			<content:encoded><![CDATA[<p>wp-super-cache是WordPress的一个静态缓存插件，对访问量大的博客或是在系统中使用了性能较差的插件时都是挺有用的。但这个玩意需要Apache的mod_rewrite来支持，lighty下可没有这玩意儿。所以需要咱们自己添加一个lua脚本，配合lighty的mod_magnet模块来代替mod_rewrite的功能。整个操作步骤是这样的：</p>

<p>lighty中博客站点的配置文件要这么写：</p>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p328code5'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3285"><td class="code" id="p328code5"><pre class="text" style="font-family:monospace;">$HTTP[&quot;host&quot;] == &quot;blog.elias.cn&quot; {
  server.document-root = &quot;/home/public_html/elias&quot;
  magnet.attract-physical-path-to = ( server.document-root + &quot;/rewrite.lua&quot; )
}</pre></td></tr></table></div>


<p>这里能用magnet.attract-physical-path-to的前提是mod_magnet已经安装并启用了，否则在lighty的error.log会报错。Debian里mod_magnet是单独的一个包，叫做lighttpd-mod-magnet，安装以后就可以把mod_magnet加入lighty的配置文件了。</p>

<p>然后再在博客站点的根目录新建一个名为rewrite.lua的脚本文件，文件内容为：</p>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://blog.elias.cn/wp-content/plugins/wp-codebox/wp-codebox.php?p=328&amp;download=rewrite.lua">rewrite.lua</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3286"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
</pre></td><td class="code" id="p328code6"><pre class="lua" style="font-family:monospace;"><span style="color: #b1b100;">function</span> serve_html<span style="color: #66cc66;">&#40;</span>cached_page<span style="color: #66cc66;">&#41;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>lighty.stat<span style="color: #66cc66;">&#40;</span>cached_page<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">then</span>
    lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.path&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> cached_page
    <span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Serving cached page: &quot;</span> .. cached_page<span style="color: #66cc66;">&#41;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #b1b100;">true</span>
  <span style="color: #b1b100;">else</span>
    <span style="color: #b1b100;">return</span> <span style="color: #b1b100;">false</span>
  <span style="color: #b1b100;">end</span>
<span style="color: #b1b100;">end</span>
&nbsp;
<span style="color: #b1b100;">function</span> serve_gzip<span style="color: #66cc66;">&#40;</span>cached_page<span style="color: #66cc66;">&#41;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>lighty.stat<span style="color: #66cc66;">&#40;</span>cached_page .. <span style="color: #ff0000;">&quot;.gz&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">then</span>
    lighty.header<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Content-Encoding&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;gzip&quot;</span>
    lighty.header<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;&quot;</span>
    lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.path&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> cached_page .. <span style="color: #ff0000;">&quot;.gz&quot;</span>
    <span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Serving gzipped page: &quot;</span> .. cached_page .. <span style="color: #ff0000;">&quot;.gz&quot;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #b1b100;">true</span>
  <span style="color: #b1b100;">else</span>
    <span style="color: #b1b100;">return</span> <span style="color: #b1b100;">false</span>
  <span style="color: #b1b100;">end</span>
<span style="color: #b1b100;">end</span>
&nbsp;
attr <span style="color: #66cc66;">=</span> lighty.stat<span style="color: #66cc66;">&#40;</span>lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.path&quot;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">and</span> lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.path&quot;</span><span style="color: #66cc66;">&#93;</span> ~<span style="color: #66cc66;">=</span> lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.doc-root&quot;</span><span style="color: #66cc66;">&#93;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">not</span> attr<span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">then</span>
  lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;uri.path&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;/index.php&quot;</span>
  lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.rel-path&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;uri.path&quot;</span><span style="color: #66cc66;">&#93;</span>
  lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.path&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.doc-root&quot;</span><span style="color: #66cc66;">&#93;</span> .. lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.rel-path&quot;</span><span style="color: #66cc66;">&#93;</span>
&nbsp;
  query_condition <span style="color: #66cc66;">=</span> <span style="color: #b1b100;">not</span> <span style="color: #66cc66;">&#40;</span>lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;uri.query&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #b1b100;">and</span> <span style="color: #b1b100;">string.find</span><span style="color: #66cc66;">&#40;</span>lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;uri.query&quot;</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #ff0000;">&quot;.*s=.*&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  user_cookie <span style="color: #66cc66;">=</span> lighty.request<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Cookie&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #b1b100;">or</span> <span style="color: #ff0000;">&quot;no_cookie_here&quot;</span>
  cookie_condition <span style="color: #66cc66;">=</span> <span style="color: #b1b100;">not</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">string.find</span><span style="color: #66cc66;">&#40;</span>user_cookie, <span style="color: #ff0000;">&quot;.*comment_author.*&quot;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #b1b100;">string.find</span><span style="color: #66cc66;">&#40;</span>user_cookie, <span style="color: #ff0000;">&quot;.*wordpress.*&quot;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #b1b100;">string.find</span><span style="color: #66cc66;">&#40;</span>user_cookie, <span style="color: #ff0000;">&quot;.*wp-postpass_.*&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>query_condition <span style="color: #b1b100;">and</span> cookie_condition<span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">then</span>
    accept_encoding <span style="color: #66cc66;">=</span> lighty.request<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Accept-Encoding&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #b1b100;">or</span> <span style="color: #ff0000;">&quot;no_acceptance&quot;</span>
    cached_page <span style="color: #66cc66;">=</span> lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;physical.doc-root&quot;</span><span style="color: #66cc66;">&#93;</span> .. <span style="color: #ff0000;">&quot;/wp-content/cache/supercache/&quot;</span> .. lighty.request<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Host&quot;</span><span style="color: #66cc66;">&#93;</span> .. lighty.env<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;request.uri&quot;</span><span style="color: #66cc66;">&#93;</span> .. <span style="color: #ff0000;">&quot;/index.html&quot;</span>
    cached_page <span style="color: #66cc66;">=</span> <span style="color: #b1b100;">string.gsub</span><span style="color: #66cc66;">&#40;</span>cached_page, <span style="color: #ff0000;">&quot;//&quot;</span>, <span style="color: #ff0000;">&quot;/&quot;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">string.find</span><span style="color: #66cc66;">&#40;</span>accept_encoding, <span style="color: #ff0000;">&quot;gzip&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">then</span>
      <span style="color: #b1b100;">if</span> <span style="color: #b1b100;">not</span> serve_gzip<span style="color: #66cc66;">&#40;</span>cached_page<span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">then</span> serve_html<span style="color: #66cc66;">&#40;</span>cached_page<span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">end</span>
    <span style="color: #b1b100;">else</span>
      serve_html<span style="color: #66cc66;">&#40;</span>cached_page<span style="color: #66cc66;">&#41;</span>
    <span style="color: #b1b100;">end</span>
  <span style="color: #b1b100;">end</span>
<span style="color: #b1b100;">end</span></pre></td></tr></table></div>


<p>这个lua脚本源自<a href="http://tempe.st/2008/05/lightning-speed-wordpress-with-lighttpd-and-supercache-part-ii/" title="">tempe.st</a>和<a href="http://www.thedomz.com/webmaster/2008/11/15/getting-wp-super-cache-to-work-with-lighttpd/" title="">thedomz.com</a>，不过我对其中的第23行做了修改。原始版本永远不会对博客首页启用缓存，因为lua脚本仅在请求的原始地址不存在时才进行重定向操作，但首页也就是博客根目录总是存在的，因此也就永远不会被重定向到静态缓存。我对这一行的修改就是让脚本在请求的地址与站点根目录相同时也启用静态缓存重定向机制。</p>

<p>这样折腾完之后，调整一下站点的Permalink规则，使之不要掉进wp-super-cache的忽略规则里面，应该就可以了。在页面的html源代码最后，应该能够看到super-cache的时间戳。正常工作的wp-super-cache是不会在频繁刷新页面时每次都更新这个时间戳的。附带说一下，我这个博客是没有使用wp-super-cache的，本文提及的内容应用在了<a href="http://blog.laiyonghao.com" title="blog.laiyonghao.com">blog.laiyonghao.com</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/328/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>《1973年的弹子球》</title>
		<link>http://blog.elias.cn/archives/313</link>
		<comments>http://blog.elias.cn/archives/313#comments</comments>
		<pubDate>Thu, 08 Jan 2009 08:54:14 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[匪夷所思的平淡生活]]></category>
		<category><![CDATA[村上春树]]></category>
		<category><![CDATA[读书]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=313</guid>
		<description><![CDATA[根据不大准确的记忆，我读的第一本村上的书应该是《挪威的森林》，从此一发不可收拾。然而奇怪的是，至今应有8年，村上的书我仍然没有读全。我读书通常逐字逐句读的很慢（虽然我确定自己有速读的能力），记忆力也完全谈不上过目不忘，不过仍然极少把一本书读上第二遍——例外是每次中学考试前，本来应该是在家用功复习的时间，每每在这个时候会忽然觉得每本书都是那么有趣。很多消耗数月零用钱从书市着实辛苦弄回来却又失去兴趣的书常常都是在这样的时间里看完的。也同样是在这样的时间里，会把一小部分书翻来覆去地看。

《挪威的森林》我喜欢，但我不敢多看，这本书每每让我认识到自己的情绪其实并不如自己预期的那样坚固。在已经看过的村上长篇里，今天我觉得自己还是最喜欢《1973年的弹子球》。我喜欢村上年轻时代笔锋的清新，喜欢整部书的干练，喜欢情节的错综想象。是这些理由么？是也不是。或许书里的主人公刻意与人保持距离的生活状态，让我觉得像是有时候的自己……有些牵强的理由呢～村上的好几部书里面不都是遵循如此的氛围么。重读08再版的《1973年的弹子球》，我确认整部书我肯定完整读过，并且读的一定不是跳跃遗漏的网络版本（亦或许，那个所谓网络版本并非林少华所译），在何处读到却不记得了，是另一个网络版本抑或是从老大那儿一时借来的？

总之我可以确认自己喜欢这本书。在拉斯维加斯的时候，就因为这本书而差点把老板搁置一边，自行投入Quarter，体验最新的弹子球游戏。前两天在中关村E世界偶然看到了弹子球机，没多想就投入两枚游戏币，才发现这台机器少了斑斓的灯光闪烁，没有通电而白白地把币吃掉了^_^找机会一定要复仇才是～

好像喜欢的村上短篇更多一些：《遇见百分百女孩》、《袋鼠通讯》、《羊男的圣诞节》、《再袭面包店》。今天觉得最喜欢《袋鼠通讯》，不知道明天又会如何～手头这一本《1973年的弹子球》我已决定要送出，不知道收到我书的人会在什么时间看到这篇博客呢^_^
]]></description>
			<content:encoded><![CDATA[<p>根据不大准确的记忆，我读的第一本村上的书应该是《挪威的森林》，从此一发不可收拾。然而奇怪的是，至今应有8年，村上的书我仍然没有读全。我读书通常逐字逐句读的很慢（虽然我确定自己有速读的能力），记忆力也完全谈不上过目不忘，不过仍然极少把一本书读上第二遍——例外是每次中学考试前，本来应该是在家用功复习的时间，每每在这个时候会忽然觉得每本书都是那么有趣。很多消耗数月零用钱从书市着实辛苦弄回来却又失去兴趣的书常常都是在这样的时间里看完的。也同样是在这样的时间里，会把一小部分书翻来覆去地看。</p>

<p>《挪威的森林》我喜欢，但我不敢多看，这本书每每让我认识到自己的情绪其实并不如自己预期的那样坚固。在已经看过的村上长篇里，今天我觉得自己还是最喜欢《1973年的弹子球》。我喜欢村上年轻时代笔锋的清新，喜欢整部书的干练，喜欢情节的错综想象。是这些理由么？是也不是。或许书里的主人公刻意与人保持距离的生活状态，让我觉得像是有时候的自己……有些牵强的理由呢～村上的好几部书里面不都是遵循如此的氛围么。重读08再版的《1973年的弹子球》，我确认整部书我肯定完整读过，并且读的一定不是跳跃遗漏的网络版本（亦或许，那个所谓网络版本并非林少华所译），在何处读到却不记得了，是另一个网络版本抑或是从老大那儿一时借来的？</p>

<p>总之我可以确认自己喜欢这本书。在拉斯维加斯的时候，就因为这本书而差点把老板搁置一边，自行投入Quarter，体验最新的弹子球游戏。前两天在中关村E世界偶然看到了弹子球机，没多想就投入两枚游戏币，才发现这台机器少了斑斓的灯光闪烁，没有通电而白白地把币吃掉了^_^找机会一定要复仇才是～</p>

<p>好像喜欢的村上短篇更多一些：《遇见百分百女孩》、《袋鼠通讯》、《羊男的圣诞节》、《再袭面包店》。今天觉得最喜欢《袋鼠通讯》，不知道明天又会如何～手头这一本《1973年的弹子球》我已决定要送出，不知道收到我书的人会在什么时间看到这篇博客呢^_^</p>

<p><div id="attachment_316" class="wp-caption alignnone" style="width: 353px"><img src="http://blog.elias.cn/wp-content/uploads/2009/01/1973_pinball.jpg" alt="1973年的弹子球" title="1973_pinball" width="343" height="499" class="size-full wp-image-316" /><p class="wp-caption-text">1973年的弹子球</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/313/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>福珑2F的高频噪音问题探讨</title>
		<link>http://blog.elias.cn/archives/311</link>
		<comments>http://blog.elias.cn/archives/311#comments</comments>
		<pubDate>Tue, 06 Jan 2009 12:39:58 +0000</pubDate>
		<dc:creator>Elias</dc:creator>
				<category><![CDATA[混乱的IT世界]]></category>
		<category><![CDATA[龙芯]]></category>

		<guid isPermaLink="false">http://blog.elias.cn/?p=311</guid>
		<description><![CDATA[看网上的一般观点都认为福珑还比较安静，不过我得说这是跟普通台式机比。我希望其工作噪声可以不影响睡眠，因此对我到手的这一台仍然不是十分满意。最初我以为是风扇的问题，是因为风扇本身的工作噪声太大造成了整体的噪音。于是我采取了给原配风扇点润滑油的办法（原装风扇是油封轴承，到我手上的时候有点儿缺油），总体噪声有所降低，但是噪声中的高频部分反而由此显得更加突出。（哪来的高频噪声？这是个问题。）进一步考虑给风扇降低转速来降低噪音，不过不会DIY，只能采取换风扇的做法。偏偏这么小的风扇不好找（3厘米见方），我找来找去只找到一个叶片更小转速更高的。新找到的这一只风扇虽然转速更高，但在未固定到主板上之前其实噪音极小，只有安装上去之后才出现比较刺耳的高频震荡噪声。这才终于弄清了噪声所在：当风扇工作产生震动时，福珑主板由于被螺丝与风扇固定在一起，而被带动形成共振，产生了类似扩音器的效应，扩大了噪声。偏偏福珑的外壳与主板是采用卡槽式比较松散的组装方式，于是无法帮助主板吸收风扇的震动。试验了用塑料泡沫薄片作为螺丝口处缓冲垫的做法，有所改善，但没有彻底消灭问题。

其实把风扇去掉，让福珑工作在无风扇的状况下，拷机也没有出现死机的现象。只是不知道如果在夏天进行无风扇工作，是否会超出龙芯的正常工作温度范围，缩短芯片寿命。总之这个问题还没能解决，需要进一步探讨。

PS：说点无关的，我觉得腾讯现在应该收购云端平台（成都朗弘科技（杨小锋）），然后嵌入到自己的客户端中。这样凭借QQ的装机量，腾讯将有可能成为新一代的操作系统霸主。
]]></description>
			<content:encoded><![CDATA[<p>看网上的一般观点都认为福珑还比较安静，不过我得说这是跟普通台式机比。我希望其工作噪声可以不影响睡眠，因此对我到手的这一台仍然不是十分满意。最初我以为是风扇的问题，是因为风扇本身的工作噪声太大造成了整体的噪音。于是我采取了给原配风扇点润滑油的办法（原装风扇是油封轴承，到我手上的时候有点儿缺油），总体噪声有所降低，但是噪声中的高频部分反而由此显得更加突出。（哪来的高频噪声？这是个问题。）进一步考虑给风扇降低转速来降低噪音，不过不会DIY，只能采取换风扇的做法。偏偏这么小的风扇不好找（3厘米见方），我找来找去只找到一个叶片更小转速更高的。新找到的这一只风扇虽然转速更高，但在未固定到主板上之前其实噪音极小，只有安装上去之后才出现比较刺耳的高频震荡噪声。这才终于弄清了噪声所在：当风扇工作产生震动时，福珑主板由于被螺丝与风扇固定在一起，而被带动形成共振，产生了类似扩音器的效应，扩大了噪声。偏偏福珑的外壳与主板是采用卡槽式比较松散的组装方式，于是无法帮助主板吸收风扇的震动。试验了用塑料泡沫薄片作为螺丝口处缓冲垫的做法，有所改善，但没有彻底消灭问题。</p>

<p>其实把风扇去掉，让福珑工作在无风扇的状况下，拷机也没有出现死机的现象。只是不知道如果在夏天进行无风扇工作，是否会超出龙芯的正常工作温度范围，缩短芯片寿命。总之这个问题还没能解决，需要进一步探讨。</p>

<p>PS：说点无关的，我觉得腾讯现在应该收购云端平台（成都朗弘科技（杨小锋）），然后嵌入到自己的客户端中。这样凭借QQ的装机量，腾讯将有可能成为新一代的操作系统霸主。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elias.cn/archives/311/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
