<?xml version="1.0" encoding="gb2312"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Cyril的网志</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/" />
    <link rel="self" type="application/atom+xml" href="http://www.trucy.org/blog/fanghong/atom.xml" />
   <id>tag:www.trucy.org,2009:/blog/fanghong//17</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17" title="Cyril的网志" />
    <updated>2009-11-18T11:27:17Z</updated>
    <subtitle>生活中没有什么可怕的东西，只有需要理解的东西。（居里夫人） </subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>
 

<entry>
    <title>淘宝搜索：搜索算法工程师[含实习生]，资深搜索算法工程师</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2009/10/ioeneeneeaieeie.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=3344" title="淘宝搜索：搜索算法工程师[含实习生]，资深搜索算法工程师" />
    <id>tag:www.trucy.org,2009:/blog/fanghong//17.3344</id>
    
    <published>2009-10-23T08:57:10Z</published>
    <updated>2009-11-18T11:27:17Z</updated>
    
    <summary>淘宝搜索招聘搜索算法工程师[含实习生]，资深搜索算法工程师。有意请mail:zhangfh AT gmail.com 职位名称：搜索算法工程师 面向专业： 计算机、软件工程、电子通信，数学，统计学等，硕士及以上学历。 职位描述： * 实习需要可以持续六个月以上 工作地点：杭州 你将负责： 1、研发基于统计和机器学习的排序算法，包括模型的改进和选取、特征的选取及评估、训练的有效性等相关工作； 2、研发对海量数据的分析和挖掘算法，改进搜索质量； 3、研发作弊和垃圾信息的自动识别算法，改善用户的搜索体验 你需要具备： 1、熟悉常用的算法和数据结构，熟练的C/C++语开发能力； 2、熟悉分布式系统的架构、设计和优化技术，熟悉面向对象的分析、设计和编程技术； 3、熟悉Linux/Unix环境下开发经验、熟练使用开发和调试工具，熟练使用Shell/Perl； 4、有自然语言理解，模式识别，机器学习，数据挖掘，图像处理等任一方面的基础与经验者优先 5、有较强的分析和解决问题能力，有持续自我学习的能力和意愿，善于沟通和逻辑表达，良好的团队合作意识。 ------------------------------------------ 资深搜索算法工程师 工作地点：杭州 工作职责 1、使用搜索引擎平台，搭建搜索应用系统； 2、你需要在以毫秒为单位的时间度量下处理海量的数据； 3、你需要实现优化的算法，将不可能变为可能； 职位要求 1、计算机、数学相关专业大学本科以上学历，2年以上业界工作经验； 2、熟练掌握C/C++语言，熟悉网络编程和多线程编程；熟悉分布式系统的架构、设计和优化； 3、有丰富Unix/Linux环境下开发经验、熟练使用调试工具，熟练应用Perl和Unix Shell等其中一种语言； 4、熟悉面向对象的分析和设计技术； 5、熟悉数据挖掘，信息检索，自然语言处理等算法者优先。...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>淘宝搜索招聘搜索算法工程师[含实习生]，资深搜索算法工程师。有意请mail:zhangfh AT gmail.com</p>

<p>职位名称：搜索算法工程师</p>

<p>面向专业：<br />
计算机、软件工程、电子通信，数学，统计学等，硕士及以上学历。</p>

<p>职位描述：</p>

<p>* 实习需要可以持续六个月以上</p>

<p>工作地点：杭州</p>

<p>你将负责：<br />
1、研发基于统计和机器学习的排序算法，包括模型的改进和选取、特征的选取及评估、训练的有效性等相关工作；<br />
2、研发对海量数据的分析和挖掘算法，改进搜索质量；<br />
3、研发作弊和垃圾信息的自动识别算法，改善用户的搜索体验<br />
 <br />
你需要具备：<br />
1、熟悉常用的算法和数据结构，熟练的C/C++语开发能力；<br />
2、熟悉分布式系统的架构、设计和优化技术，熟悉面向对象的分析、设计和编程技术；<br />
3、熟悉Linux/Unix环境下开发经验、熟练使用开发和调试工具，熟练使用Shell/Perl；<br />
4、有自然语言理解，模式识别，机器学习，数据挖掘，图像处理等任一方面的基础与经验者优先<br />
5、有较强的分析和解决问题能力，有持续自我学习的能力和意愿，善于沟通和逻辑表达，良好的团队合作意识。</p>

<p>------------------------------------------<br />
资深搜索算法工程师</p>

<p>工作地点：杭州</p>

<p>工作职责 <br />
1、使用搜索引擎平台，搭建搜索应用系统； <br />
2、你需要在以毫秒为单位的时间度量下处理海量的数据； <br />
3、你需要实现优化的算法，将不可能变为可能； </p>

<p>职位要求 <br />
1、计算机、数学相关专业大学本科以上学历，2年以上业界工作经验； <br />
2、熟练掌握C/C++语言，熟悉网络编程和多线程编程；熟悉分布式系统的架构、设计和优化； <br />
3、有丰富Unix/Linux环境下开发经验、熟练使用调试工具，熟练应用Perl和Unix Shell等其中一种语言； <br />
4、熟悉面向对象的分析和设计技术； <br />
5、熟悉数据挖掘，信息检索，自然语言处理等算法者优先。</p>]]>
        
    </content>
</entry>

<entry>
    <title>淘宝的一天</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2009/08/ioaoii.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=3292" title="淘宝的一天" />
    <id>tag:www.trucy.org,2009:/blog/fanghong//17.3292</id>
    
    <published>2009-08-11T07:52:33Z</published>
    <updated>2009-08-12T07:38:47Z</updated>
    
    <summary>追逐自己的梦想，遵从自己的内心。...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>追逐自己的梦想，遵从自己的内心。</p>

<p><object width="420" height="363"><param name="movie" value="http://www.tudou.com/v/mTnZHEq1kHI"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="opaque"></param><embed src="http://www.tudou.com/v/mTnZHEq1kHI" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" width="420" height="363"></embed></object></p>]]>
        
    </content>
</entry>

<entry>
    <title>ubuntu升级后触摸板滚动失效</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2009/02/ubuntueyoaaoe.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=3117" title="ubuntu升级后触摸板滚动失效" />
    <id>tag:www.trucy.org,2009:/blog/fanghong//17.3117</id>
    
    <published>2009-02-17T02:19:39Z</published>
    <updated>2009-02-20T01:49:58Z</updated>
    
    <summary>重新加载相应模块后好了 sudo modprobe -r psmouse sudo modprobe psmouse...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>重新加载相应模块后好了<br />
<blockquote>sudo modprobe -r psmouse<br />
sudo modprobe psmouse</blockquote></p>]]>
        
    </content>
</entry>

<entry>
    <title>The Servant --修道院的领导启示录</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2009/01/the_servant_aoa.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=3085" title="The Servant --修道院的领导启示录" />
    <id>tag:www.trucy.org,2009:/blog/fanghong//17.3085</id>
    
    <published>2009-01-05T03:22:35Z</published>
    <updated>2009-01-06T05:03:36Z</updated>
    
    <summary>winter分享的ppt： 下载地址： http://www.trucy.org/blog/fanghong/archives/2009/01/the_servant.pdf 缘由繁体版：http://learn.cpic.com.cn:8080/ilearn/en/learner/jsp/tszs/tszs_27.pps...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="文摘" />
    
        <category term="阅读" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>winter分享的ppt：</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="desktop.png" src="http://www.trucy.org/blog/fanghong/archives/2009/01/the_servant.png" class="mt-image-none" style="" /></span></p>

<p>下载地址：<br />
<a href="http://www.trucy.org/blog/fanghong/archives/2009/01/the_servant.pdf">http://www.trucy.org/blog/fanghong/archives/2009/01/the_servant.pdf</a></p>

<p>缘由繁体版：<a href="http://learn.cpic.com.cn:8080/ilearn/en/learner/jsp/tszs/tszs_27.pps">http://learn.cpic.com.cn:8080/ilearn/en/learner/jsp/tszs/tszs_27.pps</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>结构化思维</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/11/aei.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=3044" title="结构化思维" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.3044</id>
    
    <published>2008-11-24T03:28:45Z</published>
    <updated>2008-11-24T05:24:47Z</updated>
    
    <summary>上周参加了一次关于结构化思维的培训，其实就是逻辑思维。结构化思维的一些内容，在《THE MCKINSEY WAY》 《The Minto Pyramid Principle》中详细的描述。 一些主要的内容，网络上有很多学习资料可以参考，主要就是mece分析法。对于我们并不陌生，较多使用freemind的朋友应该都会有一些理解。 感触比较大的是表达，如何进行结构化的表达。 课程内容如下： 第一，什么是结构化思维。 第二，如何进行结构化思考。 第三，如何进行结构化表达。 “什么是结构化思维”。思维有三种方式。 其一，线性思维：逻辑强，强调因果，是按经验办事，有效率，但缺乏创新，不全面。 其二，水平思维：天马行空，创意。 其三，就是我们要谈的结构化思维。结构化思维就是以目标为导向，以假设为前提，通过分类，确定关键纬度，进行对比分析。 说直接点：目标--&gt;分类--&gt;重点--&gt;交叉分析。 提问是快捷的路径， 思考和分析是根本。 结构化思维的3个基本原则： 其一，以终为始。根据目标做任务，过程中始终想着目标。 其二，分类原则。分类是彼此独立，有限的，可量化。 其三，20-80原则。 结构化思维主要工具：逻辑树，鱼骨图，图表。 常见表达问题：目标不清晰，结构混乱，展示不力。 结构化表达的4个原则： 一，自上而下。先从结论开始讲。深度最多5级，保持3级比较合理。级数最多2级。 二，层次清晰。结论先，再观点，后事实。 三，结构简单。最简单的结构就是“三”，一个中心议题从3个方面展开，有清晰的逻辑关系。 四，重点突出。不要给过多信息。把突出最想传递的信息。对比，重复，比喻。 总结口号： 1 上来总分总，凡事说三点，三点要MECE。 2 要把话说的跟表格一样，那就是结构化表达的境界。 总结： 结构化思维，好用。 思维三种方式，哪种更优，看具体环境。 笔记copy自：http://jifanfei.ycool.com/post.3118235.html...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="记录" />
    
        <category term="文摘" />
    
        <category term="阅读" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>上周参加了一次关于结构化思维的培训，其实就是逻辑思维。结构化思维的一些内容，在<a href="http://www.douban.com/subject/1573793/">《THE MCKINSEY WAY》</a> <a href="http://www.douban.com/subject/1020644/">《The Minto Pyramid Principle》</a>中详细的描述。</p>

<p>一些主要的内容，网络上有很多学习资料可以参考，主要就是<a href="http://wiki.mbalib.com/wiki/MECE%E5%88%86%E6%9E%90%E6%B3%95">mece分析法</a>。对于我们并不陌生，较多使用freemind的朋友应该都会有一些理解。</p>

<p>感触比较大的是表达，如何进行结构化的表达。</p>

<p>课程内容如下：</p>

<p>第一，什么是结构化思维。<br />
第二，如何进行结构化思考。<br />
第三，如何进行结构化表达。</p>

<p> <br />
“什么是结构化思维”。思维有三种方式。</p>

<p>其一，线性思维：逻辑强，强调因果，是按经验办事，有效率，但缺乏创新，不全面。<br />
其二，水平思维：天马行空，创意。<br />
其三，就是我们要谈的结构化思维。结构化思维就是以目标为导向，以假设为前提，通过分类，确定关键纬度，进行对比分析。</p>

<p>说直接点：目标-->分类-->重点-->交叉分析。</p>

<p>提问是快捷的路径，<br />
思考和分析是根本。</p>

<p>结构化思维的3个基本原则：<br />
其一，以终为始。根据目标做任务，过程中始终想着目标。<br />
其二，分类原则。分类是彼此独立，有限的，可量化。<br />
其三，20-80原则。</p>

<p>结构化思维主要工具：逻辑树，鱼骨图，图表。</p>

<p>常见表达问题：目标不清晰，结构混乱，展示不力。</p>

<p>结构化表达的4个原则：<br />
一，自上而下。先从结论开始讲。深度最多5级，保持3级比较合理。级数最多2级。<br />
二，层次清晰。结论先，再观点，后事实。<br />
三，结构简单。最简单的结构就是“三”，一个中心议题从3个方面展开，有清晰的逻辑关系。<br />
四，重点突出。不要给过多信息。把突出最想传递的信息。对比，重复，比喻。</p>

<p>总结口号：<br />
1 上来总分总，凡事说三点，三点要MECE。<br />
2 要把话说的跟表格一样，那就是结构化表达的境界。</p>

<p>总结：<br />
结构化思维，好用。<br />
思维三种方式，哪种更优，看具体环境。</p>

<p>笔记copy自：http://jifanfei.ycool.com/post.3118235.html</p>]]>
        
    </content>
</entry>

<entry>
    <title>立信</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/11/aa.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=3041" title="立信" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.3041</id>
    
    <published>2008-11-20T17:46:29Z</published>
    <updated>2008-11-22T09:48:46Z</updated>
    
    <summary><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13：1 我若能说万人的方言，并天使的话语却没有慈爱，我就成了呜的锣，响的钹一般。 　　Though I speak with the tongues of men and of angels， and have not charity， I am become as sounding brass， or a tinkling cymbal. 　　13：2 我若有先知讲道之能，也明白各样的奥秘，各样的知识。而且有全备的信，叫我能够移山，却没有慈爱，我就算不得什么。 　　And though I have the gift of prophecy， and understand...]]></summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13：1 我若能说万人的方言，并天使的话语却没有慈爱，我就成了呜的锣，响的钹一般。</p>

<p>　　Though I speak with the tongues of men and of angels， and have not charity， I am become as sounding brass， or a tinkling cymbal.</p>

<p>　　13：2 我若有先知讲道之能，也明白各样的奥秘，各样的知识。而且有全备的信，叫我能够移山，却没有慈爱，我就算不得什么。</p>

<p>　　And though I have the gift of prophecy， and understand all mysteries， and all knowledge； and though I have all faith， so that I could remove mountains， and have not charity， I am nothing.</p>

<p>　　13：3 我若将所有的周济穷人，又舍己身叫人焚烧，却没有磁爱，仍然与我无益。</p>

<p>　　And though I bestow all my goods to feed the poor， and though I give my body to be burned， and have not charity， it profiteth me nothing.</p>

<p>　　13：4 爱是恒久忍耐，又有恩慈。爱是不嫉妒。爱是不自夸。不张狂。</p>

<p>　　Charity suffereth long， and is kind； charity envieth not； charity vaunteth not itself， is not puffed up，</p>

<p>　　13：5 不作害羞的事。不求自己的益处。不轻易发怒。不计算人的恶。</p>

<p>　　Doth not behave itself unseemly， seeketh not her own， is not easily provoked， thinketh no evil；</p>

<p>　　13：6 不喜欢不义。只喜欢真理。</p>

<p>　　Rejoiceth not in iniquity， but rejoiceth in the truth；</p>

<p>　　13：7 凡事包容。凡事相信。凡事盼望。凡事忍耐。</p>

<p>　　Beareth all things， believeth all things， hopeth all things， endureth all things.</p>

<p>　　13：8 爱是永不止息。先知讲道之能，终必归于无有。说方言之能，终必停止，知识也终必归于无有。</p>

<p>　　Charity never faileth： but whether there be prophecies， they shall fail； whether there be tongues， they shall cease； whether there be knowledge， it shall vanish away.</p>

<p>　　13：9 我们现在所知道的有限，先知所讲的也有限。</p>

<p>　　For we know in part， and we prophesy in part.</p>

<p>　　13：10 等那完全的来到，这有限的必归于无有了。</p>

<p>　　But when that which is perfect is come， then that which is in part shall be done away.</p>

<p>　　13：11 我作孩子的时候，话语像孩子，心思像孩子，意念像孩子。既成了人，就把孩子的事丢弃了。</p>

<p>　　When I was a child， I spake as a child， I understood as a child， I thought as a child： but when I became a man， I put away childish things.</p>

<p>　　13：12 我们如今彷佛对着镜子观看，馍糊不清。（馍糊不清原文作如同谜）到那时，到那时，就要面对面了。我如今所知道的有限。到那时就全知道，如同主知道我一样。</p>

<p>　　For now we see through a glass， darkly； but then face to face： now I know in part； but then shall I know even as also I am known.</p>

<p>　　13：13 如今常存的有信，有望，有爱，这三样，其中最大的是慈爱。</p>

<p>　　And now abideth faith， hope， charity， these three； but the greatest of these is charity.</p>]]>
        
    </content>
</entry>

<entry>
    <title>ubuntu8.10[Intrepid Ibex]mac风格美化</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/11/ubuntu810intrep.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=3037" title="ubuntu8.10[Intrepid Ibex]mac风格美化" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.3037</id>
    
    <published>2008-11-18T14:16:58Z</published>
    <updated>2009-01-06T05:08:11Z</updated>
    
    <summary>注：现在可以直接参考 http://code.google.com/p/gnome2-globalmenu/wiki/InstallGuidelineInChinese ----------------------- 最后剩余global menu 全局菜单功能。 1，先是按照以前版本的方式进行编译，有问题，是vala版本不是0.4.01所致。 2，有好人放出包来，更为方便。 http://riippuvuus.net/globalmenu_0.6-1-1_i386.deb http://riippuvuus.net/vala_0.4.0-1_i386.deb 在 ~/.profile增加这句： GTK_MODULES=globalmenu-gnome 注销后重新登录，添加Globalmenu applet即可。 注：该功能只对gtk的软件有效。 相关讨论可以参看： http://ubuntuforums.org/showthread.php?t=241868 global menu项目： http://code.google.com/p/gnome2-globalmenu/ 效果如下：...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="技术" />
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>注：现在可以直接参考<br />
<a href="http://code.google.com/p/gnome2-globalmenu/wiki/InstallGuidelineInChinese">http://code.google.com/p/gnome2-globalmenu/wiki/InstallGuidelineInChinese</a><br />
-----------------------<br />
最后剩余global menu 全局菜单功能。</p>

<p>1，先是按照以前版本的方式进行编译，有问题，是vala版本不是0.4.01所致。</p>

<p>2，有好人放出包来，更为方便。<br />
http://riippuvuus.net/globalmenu_0.6-1-1_i386.deb<br />
http://riippuvuus.net/vala_0.4.0-1_i386.deb</p>

<p>在 ~/.profile增加这句：<br />
GTK_MODULES=globalmenu-gnome</p>

<p>注销后重新登录，添加Globalmenu applet即可。</p>

<p>注：该功能只对gtk的软件有效。</p>

<p>相关讨论可以参看：<br />
http://ubuntuforums.org/showthread.php?t=241868</p>

<p>global menu项目：<br />
http://code.google.com/p/gnome2-globalmenu/</p>

<p>效果如下：<br />
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="desktop.png" src="http://www.trucy.org/blog/fanghong/archives/2008/11/18/desktop.png" width="500" height="313" class="mt-image-none" style="" /></span></p>]]>
        
    </content>
</entry>

<entry>
    <title>ubuntu 下vpn</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/09/ubuntu_iavpn.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2973" title="ubuntu 下vpn" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.2973</id>
    
    <published>2008-09-05T08:12:44Z</published>
    <updated>2008-09-05T08:20:10Z</updated>
    
    <summary>老忘记，记下来吧。 sudo apt-get install vpnc libgcrypt-dev sudo /usr/share/vpnc/pcf2vpnc Beijing.pcf /etc/vpnc/yahoo.conf sudo vpnc yahoo...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="技术" />
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>老忘记，记下来吧。</p>

<p><strong>sudo apt-get install vpnc libgcrypt-dev<br />
sudo /usr/share/vpnc/pcf2vpnc Beijing.pcf /etc/vpnc/yahoo.conf<br />
sudo vpnc yahoo</strong></p>]]>
        
    </content>
</entry>

<entry>
    <title>原理</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/08/oai.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2952" title="原理" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.2952</id>
    
    <published>2008-08-20T14:18:42Z</published>
    <updated>2008-08-20T14:35:15Z</updated>
    
    <summary>有一个原理叫做狗屎原理. 人不懂得好好努力,生活的意义,却一味找些事情安慰自己,不懂得尊重生活,他人.更不用说自己自己如何. 做人也好,做事也好,没有一份心在,却找些东西抹到脸上,装得人摸狗样. 反倒是一天到晚找些自以为是得事情摸黑别人,是为狗屎.这样的人老天会有安排,人们见了离远点便是. 真没想到LP会碰到这种狗屎!臭不可闻的狗屎滚远一点!!!...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>有一个原理叫做狗屎原理.</p>

<p>人不懂得好好努力,生活的意义,却一味找些事情安慰自己,不懂得尊重生活,他人.更不用说自己自己如何.</p>

<p>做人也好,做事也好,没有一份心在,却找些东西抹到脸上,装得人摸狗样.</p>

<p>反倒是一天到晚找些自以为是得事情摸黑别人,是为狗屎.这样的人老天会有安排,人们见了离远点便是.</p>

<p>真没想到LP会碰到这种狗屎!臭不可闻的狗屎滚远一点!!!<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Randy Pausch教授的《最后一课》</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/08/randy_pauschieu.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2938" title="Randy Pausch教授的《最后一课》" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.2938</id>
    
    <published>2008-08-11T08:11:05Z</published>
    <updated>2008-08-11T08:22:28Z</updated>
    
    <summary>http://www.ruanyifeng.com/.../randy_pausch_the_last_lecture.html1. 7月25日，美国Carnegie Mellon大学计算机系教授兰迪·波许（Randy Pausch），因晚期癌症去世，享年47岁。 在去世前的10个月，也就是2007年9月18日，他做过一个著名的演说《最后一课》（The Last Lecture），回顾了自己的一生。这篇演说反响极大，数百万人观看了网上的视频，ABC电视网将他选为“2007年年度人物”之一，《时代》杂志将他 列入了“世界上影响最大的100人”，同名书籍至今仍然排在“建议类畅销书”的榜首。 你可以在Youtube上看到中文字幕版的录像，全长105分钟。点击这里下载中英对照的讲稿（PDF文件，572KB）。更多的信息可以访问Carnegie Mellon大学和《The Last Lecture》的官方网站。 我去年就读过这篇演说的中译，看得很马虎，只觉得他讲了不少专业内容，我不太感兴趣，所以甚至都没有读完。现在想起来，真是惭愧。 今天，我认真地将演说读了一遍，并且看完了视频，发现里面有很多东西值得抄录下来。 2. 演说的第一部分，波许教授回忆了，他如何实现童年的几个梦想。 他的第一个梦想，是想体验失重状态。直到他当了教授以后，这个梦想才有机会实现。 当时，美国宇航宇（NASA）搞了一个大学生竞赛，优胜团队将被送到高空，体验25秒失重状态。波许教授组织了一支参赛队，并且获得了第一名。但 是，NASA告诉他，只有学生才能飞上天空，指导老师不行。他就急了，要求将教师的身份改为随队记者，因为记者可以一起飞。NASA回应说：“你这样做， 未免太明目张胆了吧。” 他说，我会随行带来最新研究成果——“虚拟现实”头盔，让学生当场演示，一定会让本次活动引起瞩目，登上各大媒体，帮你们宣传。NASA一听，就同意让他飞了。 波许教授的第一个人生经验就是： Have something to bring to the table, because that will make you more welcome. 你必须要有一些真本领，这样可以让你更受欢迎。 3. 接着，他又回忆了，他小时候最喜欢打橄榄球。 可是，第一次上橄榄球课，老师却是空着手来的，没有带球。其他小朋友问：“老师，没有球怎么上课啊？”老师反问：“橄榄球场上一共有几个人？”小朋...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="文摘" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<a href="http://www.ruanyifeng.com/blog/2008/08/randy_pausch_the_last_lecture.html">http://www.ruanyifeng.com/.../randy_pausch_the_last_lecture.html</a><div class="entry-body"><p><br /></p><p>1.</p>

<p>7月25日，美国Carnegie Mellon大学计算机系教授<a href="http://news.sina.com.cn/o/2008-08-03/024514257824s.shtml" target="_blank">兰迪·波许</a>（Randy Pausch），因晚期癌症去世，享年47岁。</p>
                           </div>
                           
                              <p><img src="http://i260.photobucket.com/albums/ii7/ruanyf/blog/randy-pausch-20070919pprandypausch_.jpg" width="365" border="0" height="248" /></p>

<p>在去世前的10个月，也就是2007年9月18日，他做过一个著名的演说《最后一课》（The Last
Lecture），回顾了自己的一生。这篇演说反响极大，数百万人观看了网上的视频，ABC电视网将他选为“2007年年度人物”之一，《时代》杂志将他
列入了“世界上影响最大的100人”，同名书籍至今仍然排在“建议类畅销书”的榜首。</p>

<p>你可以在<a href="http://www.youtube.com/watch?v=pfjDqGV0fd0&amp;feature=related" target="_blank">Youtube</a>上看到中文字幕版的录像，全长105分钟。点击<a href="http://www.cs.cmu.edu/%7Epausch/Randy/pauschLastLectureChineseTranslation_10_25_07.pdf" target="_blank">这里</a>下载中英对照的讲稿（PDF文件，572KB）。更多的信息可以访问<a href="http://www.cmu.edu/randyslecture/" target="_blank">Carnegie Mellon大学</a>和《The Last Lecture》的<a href="http://www.thelastlecture.com/" target="_blank">官方网站</a>。</p>

<p>我去年就读过这篇演说的中译，看得很马虎，只觉得他讲了不少专业内容，我不太感兴趣，所以甚至都没有读完。现在想起来，真是惭愧。</p>

<p>今天，我认真地将演说读了一遍，并且看完了视频，发现里面有很多东西值得抄录下来。</p>

<p>2.</p>

<p>演说的第一部分，波许教授回忆了，他如何实现童年的几个梦想。</p>

<p>他的第一个梦想，是想体验失重状态。直到他当了教授以后，这个梦想才有机会实现。</p>

<p>当时，美国宇航宇（NASA）搞了一个大学生竞赛，优胜团队将被送到高空，体验25秒失重状态。波许教授组织了一支参赛队，并且获得了第一名。但
是，NASA告诉他，只有学生才能飞上天空，指导老师不行。他就急了，要求将教师的身份改为随队记者，因为记者可以一起飞。NASA回应说：“你这样做，
未免太明目张胆了吧。”</p>

<p>他说，我会随行带来最新研究成果——“虚拟现实”头盔，让学生当场演示，一定会让本次活动引起瞩目，登上各大媒体，帮你们宣传。NASA一听，就同意让他飞了。</p>

<p>波许教授的第一个人生经验就是：</p>

<blockquote><div>

<p><strong>Have something to bring to the table, because that will make you more welcome. </strong></p>

<p><strong>你必须要有一些真本领，这样可以让你更受欢迎。</strong></p>

</div></blockquote>

<p>3.</p>

<p>接着，他又回忆了，他小时候最喜欢打橄榄球。</p>

<p>可是，第一次上橄榄球课，老师却是空着手来的，没有带球。其他小朋友问：“老师，没有球怎么上课啊？”老师反问：“橄榄球场上一共有几个人？”小朋
友们答道：“每队11人，一共22人。”老师又问：“在比赛的任何一个时刻，有几个人可以接触到球？”小朋友们回答：“只有1个人。”老师说：“好的，我
们今天就开始学习，那其他21个人要干的事情。”</p>

<p>这件事，波许一直记住了，他的忠告是：</p>

<blockquote><div>

<p><strong>You’ve got to get the fundamentals down because otherwise the fancy stuff isn’t going to work. </strong> </p>

<p><strong>你必须练好基本功，否则后面的事情都不会发生。</strong></p>

</div></blockquote>

<p>4.</p>

<p>整篇演说中，我最喜欢的是下面这段话。</p>

<blockquote><div>

<p><strong>That was a bit of a setback.</strong></p>

<p><strong>你总会遇到挫折。</strong></p>

<p><strong>But remember, the brick walls are there for a reason.</strong></p>

<p><strong>但是记住，它们的出现不是没有原因的。</strong></p>

<p><strong>The brick walls are not there to keep us out. The brick
walls are there to give us a chance to show how badly we want
something. </strong></p>

<p><strong>砖墙并不为了挡住我们。它在那里，只是为了测试，我们的决心到底有多迫切。</strong></p>

<p><strong>Because the brick walls are there to stop the people who don’t want it badly enough. They’re there to stop the other people. </strong></p>

<p><strong>它在那里挡住了那些没有强烈决心的人。它挡住了那些人。</strong></p>

<p><strong>Remember brick walls let us show our dedication.They are
there to separate us from the people who don’t really want to achieve
their childhood dreams.</strong></p>

<p><strong>记住，砖墙的存在是为了显示我们自己付出的决心。它使得我们，同那些并不真的想实现梦想的人得以区分。</strong></p>

</div></blockquote>

<p>5.</p>

<p>在演说的最后一部分，波许教授为青年学生，更是为他的三个没有成年的孩子，总结了14条为人处世的建议：</p>

<blockquote><div>

<p><strong>i. Helping others.</strong></p>

<p><strong>帮助他人。</strong></p>

<p><strong>ii. Never lose the childlike wonder. It's what drives us.</strong></p>

<p><strong>永远不要失去好奇心，它是人类前进的动力。</strong></p>

<p><strong>iii. Loyalty is a two way street.</strong></p>

<p><strong>诚以待人，这样别人也会忠实地对待你。</strong></p>

<p><strong>iv. Never give up.</strong></p>

<p><strong>永远不要放弃。</strong></p>

<p><strong>v. You can't get there alone. People have to help you. You get people to <br />
help you by telling the truth.</strong></p>

<p><strong>你不能单打独斗，必须有人来帮你。只要你讲真话，就会有人来帮你。</strong></p>

<p><strong>vi. Apologize when you screw up and focus on other people, not on yourself. </strong></p>

<p><strong>当你把事情搞砸，首先要向别人道歉，首先关心他们的损失，而不是你自己的损失。</strong></p>

<p><strong>vii. When you do the right thing, good stuff has a way of happening. </strong></p>

<p><strong>如果你做了正确的事，好的结果自然会发生。</strong></p>

<p><strong>viii. Get a feedback loop and listen to it. </strong></p>

<p><strong>注意倾听反馈。</strong></p>

<p><strong>ix. Show gratitude. </strong></p>

<p><strong>感恩。</strong></p>

<p><strong>x. Don’t complain. Just work harder.</strong></p>

<p><strong>不要抱怨，而要加倍努力。</strong></p>

<p><strong>xi. Be good at something, it makes you valuable. </strong></p>

<p><strong>要有一技之长，它使你有价值。</strong></p>

<p><strong>xii. Work hard.</strong></p>

<p><strong>努力再努力。</strong></p>

<p><strong>xiii. Find the best in everybody.</strong></p>

<p><strong>注意发现他人的优点。</strong></p>

<p><strong>xiv. Be prepared. Luck is truly where preparation meets opportunity.</strong></p>

<p><strong>做好准备。所谓幸运，真的是机会和准备的结合。</strong></p>

</div></blockquote>

<p>6. </p>

<p>在演说文稿之后，附有波许教授的病情自述，读来令人心酸。他患的是生存率最低的“癌中之王”胰腺癌。只要得病，几乎必死无疑，可以参考我以前转贴的<a href="http://www.ruanyifeng.com/blog/2008/02/pancreatic_cancer_diary.html" target="_blank">《米老排：胰腺癌日记》</a>。 </p>

<blockquote><div>

<p><strong>兰迪·波许的病情简报</strong><br />
 <br />
Late in the summer of 2006, I started having some unusual symptoms,
culminating with jaudice. Scans revealed it was pancreatic cancer. At
this time, my wife Jai and I had a 4 year old, a 2 year old, and a
three month old baby. </p>

<p>2006年夏末, 我开始有一些异常的症状, 最后出现了黄疸。扫描发现是胰腺癌。那时, 我的妻子洁和我的三个孩子分别是 4 岁、2 岁, 和三个月大。 </p>

<p>Pancreatic cancer is the most deadly of cancers, with only a 4%
5-year survival rate. The only hope is to be one of the 20% of patients
(which I was) where surgery is possible. I had a Whipple surgery on
Sept 19th, 2006; Dr. Herbert Zeh removed the (4.5cm) tumor, my
gallbladder, 1/3rd of my pancreas, 1/3rd of my stomach, and several
feet of my small intestine. I was in the hospital 11 days. Even with a
successful Whipple surgery, only 15% of pancreatic cancer patients make
it to 5 years, and there is no concensus about which chemotherapy
and/or radiation after surgery helps. I found the Virginia Mason
protocol, where early trials were claiming to get 45% of people to 5
years. However, it was an extremely toxic combination of chemotherapy
and daily radiation: a nation-wide trial was shut down because several
patients died from the treatment. There were two centers still offering
the treatment: Virginia Mason in Seattle, and MD Anderson in Houston,
and I was able to quality for the treatment in Houston. This happened
in a whirlwind: the treatment needed to start within 6-8 weeks of the
surgery. And Jai &amp; I needed to figure out how to have somebody stay
with me full time, and also take care of our 3 kids.<br />
 <br />
胰腺癌症是最致命的癌症, 5年生存率仅 4% 。唯一有希望的是那些 20%可手术治疗的患者(我是其中之一)。我在 2006年 9月
19日接受了胰十二指肠切除术(Whipple); 赫伯特.泽医生切除了我的 肿瘤(4.5cm), 胆囊, 1/3的胰腺, 1/3的的胃,
和几英尺的小肠。我在医院住了 11 天。即使在成功的 Whipple手术后, 只有 15%的胰腺癌患者存活 5年,
而对于术后的化疗和/或放疗方案,医界也无共识 。我找到维吉尼亚梅森方案, 初期临床试验提高 5年生存率到 45%。但是,
这是毒性很大的化疗和每日放疗的组合。因为有几名患者死于该治疗, 全国性的临床试验被终止了。有二个中心仍提供该疗法:
西雅图的维吉尼亚梅森医疗中心, 和在休斯敦的德州大学安德生癌症中心, 而我有资格在休斯敦接受治疗。说时迟,那时快: 治疗需在手术后
6-8周内开始。洁和我需要想办法既能照顾我们的 3个小孩, 有要有人全时陪护我。 </p>

<p>I spent November and December at MD Anderson receiving IV Cisplatin
once a week, interferon injections three times a week, continuous
infusion 5-FU, and daily radiation. Fortunately, Jai's brother and
sister-in-law took in our three kids (on top of their 8 and 12 year
old), in Norfolk Virginia, while Jai stayed with me in Houston. Every
weekend, Jai flew to Norfolk to be with our kids, and my sister Ruby or
one of my friends (thank God for Jessica Hodgins, Scott Sherman, and
Jack Sheriff) would come stay with me. I was also blessed with my
colleague Chris Hoffmann, a CS professor at Purdue who had been through
this exact ordeal two years prior: his encouragment and practical tips
were invaluable in getting through the treatment. The less I say about
Houston the better, but by the end I was barely able to walk, and my
weight (starting at 182) dropped to 138.<br />
 <br />
我在安德生癌症中心度过了 11月和 12月,每周一次静脉注射顺铂, 干扰素注射每周三次, 5-氟尿嘧啶持续滴注, 和每日放疗。幸运地是,
当洁和我一起在休斯敦时, 她在弗吉尼亚州诺福克的哥,嫂为我们看了三个小孩(再加上他们的 8岁和 12岁的孩子), 。每个周末,
洁飞到诺福克跟我们的孩子在一起, 而我姐姐如碧或我的朋友(非常感谢杰西卡·霍金斯, 斯科特·谢尔曼, 和杰克·谢若夫)
会来和我呆在一起。我也有幸我的同事克里斯·霍夫曼, 一位两年前经历过同样磨难的普渡大学计算机学教授,
给予无价的鼓励和熬过治疗的实用窍门。关于休斯敦我说的越少越好, 但最后我几乎不能走路, 我的体重(原来 182磅)掉到 138磅。<br />
 <br />
The next four months of chemo (continuous infusion 5-FU) was back in
Pittsburgh, through May 2007. Now, I'm 168 pounds and look normal. (To
answer everybody's first question, no, my hair never fell out). One
additional treatment is a vaccine done at Johns Hopkins: I don't expect
it will change my odds much, but it can't hurt. I still have digestive
inconveniences from the Whipple surgery: I have to eat 5 small meals a
day and take pills with each meal, and I have some abdominal cramping
from time to time. A small price to pay for walking around.<br />
 <br />
接下四个月的化疗 (5-氟尿嘧啶持续滴注) 回到匹兹堡做, 直到 2007 年 5月。现在, 我 168磅,
看起来正常。(回答每个人的第一个问题, 没有, 我从未脱发) 。另外还有在约翰霍普金斯大学做的疫苗治疗: 我不期望它扭转乾坤,
但总是有益无害。我仍然有手术后的消化问题: 我必须一天吃 5小顿饭,每顿饭都要吃药, 有时肚子还会抽筋。为活着而付的一个小代价。<br />
 <br />
In August of 2007, we learned that the cancer had returned, having
metastasized to my liver and spleen, which is a death sentence. At that
time, the doctors gave me an estimate of having 3-6 months of healthy
living left. On Oct 1st, we learned that the first round of palliative
chemotherapy was working, and that I would likely be "more like the 6
than like the 3 in that estimate."<br />
  <br />
2007年8月，我们获悉，癌症已复发,且转移到肝和脾，这意味着死亡。那时, 医生估计我有 3-6个月的健康生存期。在 10月 1日, 我们获悉第一轮姑息化疗有效，我的预后更可能是"6"而不是"3"。<br />
 <br />
My wife Jai has been an incredible source of stability and courage
through all this. We both agree that "you can't control the cards
you're dealt, just how you play the hand."</p>

<p>在整个过程中，我妻子洁一直是一个超乎寻常的稳定和勇气的源泉。我们都同意，“你不能控制发给你的牌，只能控制如何打牌。” <br />
  <br />
Randy Pausch, October 2007 </p>

<p>兰迪.波许,2007年 10月 </p>

</div></blockquote><div><br /></div><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>大结局----看图无语</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/08/oao.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2927" title="大结局----看图无语" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.2927</id>
    
    <published>2008-08-01T14:49:03Z</published>
    <updated>2008-08-01T14:59:00Z</updated>
    
    <summary>楚水事宜拜托站长胖子照料，他的电子邮件地址是：sunsx at cndrp.com...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="心情" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>楚水事宜拜托站长胖子照料，他的电子邮件地址是：sunsx at cndrp.com</p>

<p><object width="488" height="423"><param name="movie" value="http://www.tudou.com/player/playlist.swf?lid=3604552"></param><param name="allowscriptaccess" value="always"><embed src="http://www.tudou.com/player/playlist.swf?lid=3604552" type="application/x-shockwave-flash" width="488" height="423"></embed></object></p>]]>
        
    </content>
</entry>

<entry>
    <title>accept Serialization - multiple sockets</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/04/accept_serializ.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2802" title="accept Serialization - multiple sockets" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.2802</id>
    
    <published>2008-04-29T09:50:16Z</published>
    <updated>2008-04-29T10:08:41Z</updated>
    
    <summary><![CDATA[这里要说的是 Unix socket API 的一个缺点。假设web服务器使用了多个Listen语句监听多个端口或者多个地址，Apache会使用select()以检测每个socket是否就绪。select()会表明一个socket有零或至少一个连接正等候处理。由于Apache的模型是多子进程的，所有空闲进程会同时检测新的连接。一个很天真的实现方法是这样的(这些例子并不是源代码，只是为了说明问题而已)： for (;;) {for (;;) {fd_set accept_fds;FD_ZERO (&amp;accept_fds);for (i = first_socket; i &lt;= last_socket; ++i) {FD_SET (i, &amp;accept_fds);}rc = select (last_socket+1, &amp;accept_fds, NULL, NULL, NULL);if (rc &lt; 1) continue;new_connection = -1;for (i = first_socket; i &lt;=...]]></summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="技术" />
    
        <category term="文摘" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[这里要说的是 Unix socket API 的一个缺点。假设web服务器使用了多个<code class="directive"><a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mpm_common.html#listen">Listen</a></code>语句监听多个端口或者多个地址，Apache会使用<code>select()</code>以检测每个socket是否就绪。<code>select()</code>会表明一个socket有<em>零</em>或<em>至少一个</em>连接正等候处理。由于Apache的模型是多子进程的，所有空闲进程会同时检测新的连接。一个很天真的实现方法是这样的(这些例子并不是源代码，只是为了说明问题而已)： 
<div class="example">
<p><code>for (;;) {<br /><span class="indent">for (;;) {<br /><span class="indent">fd_set accept_fds;<br /><br />FD_ZERO (&amp;accept_fds);<br />for (i = first_socket; i &lt;= last_socket; ++i) {<br /><span class="indent">FD_SET (i, &amp;accept_fds);<br /></span>}<br />rc = select (last_socket+1, &amp;accept_fds, NULL, NULL, NULL);<br />if (rc &lt; 1) continue;<br />new_connection = -1;<br />for (i = first_socket; i &lt;= last_socket; ++i) {<br /><span class="indent">if (FD_ISSET (i, &amp;accept_fds)) {<br /><span class="indent">new_connection = accept (i, NULL, NULL);<br />if (new_connection != -1) break;<br /></span>}<br /></span>}<br />if (new_connection != -1) break;<br /></span>}<br />process the new_connection;<br /></span>} </code></p></div>
<p>这种天真的实现方法有一个严重的"饥饿"问题。如果多个子进程同时执行这个循环，则在多个请求之间，进程会被阻塞在<code>select</code> ，随即进入循环并试图<code>accept</code>此连接，但是只有一个进程可以成功执行(假设还有一个连接就绪)，而其余的则会被<em>阻塞</em>在<code>accept</code> 。这样，只有那一个socket可以处理请求，而其他都被锁住了，直到有足够多的请求将它们唤醒。此"饥饿"问题在<a href="http://bugs.apache.org/index/full/467">PR#467</a>中有专门的讲述。目前至少有两种解决方案。</p>
<p>一种方案是使用非阻塞型socket ，不阻塞子进程并允许它们立即继续执行。但是这样会浪费CPU时间。设想一下，<code>select</code>有10个子进程，当一个请求到达的时候，其中9个被唤醒，并试图<code>accept</code>此连接，继而进入<code>select</code>循环，无所事事，并且其间没有一个子进程能够响应出现在其他socket上的请求，直到退出<code>select</code>循环。总之，这个方案效率并不怎么高，除非你有很多的CPU，而且开了很多子进程。</p>
<p>另一种也是Apache所使用的方案是，使内层循环的入口串行化，形如(不同之处以高亮显示)：</p>]]>
        <![CDATA[<div class="example">
<p><code>for (;;) {<br /><span class="indent"><strong>accept_mutex_on ();</strong><br />for (;;) {<br /><span class="indent">fd_set accept_fds;<br /><br />FD_ZERO (&amp;accept_fds);<br />for (i = first_socket; i &lt;= last_socket; ++i) {<br /><span class="indent">FD_SET (i, &amp;accept_fds);<br /></span>}<br />rc = select (last_socket+1, &amp;accept_fds, NULL, NULL, NULL);<br />if (rc &lt; 1) continue;<br />new_connection = -1;<br />for (i = first_socket; i &lt;= last_socket; ++i) {<br /><span class="indent">if (FD_ISSET (i, &amp;accept_fds)) {<br /><span class="indent">new_connection = accept (i, NULL, NULL);<br />if (new_connection != -1) break;<br /></span>}<br /></span>}<br />if (new_connection != -1) break;<br /></span>}<br /><strong>accept_mutex_off ();</strong><br />process the new_connection;<br /></span>} </code></p></div>
<p><a id="serialize" href="http://www.trucy.org/blog/html/editor-content.html?cs=gb2312" name="serialize">函数</a><code>accept_mutex_on</code>和<code>accept_mutex_off</code>实现了一个互斥信号灯，在任何时刻只被为一个子进程所拥有。实现互斥的方法有多种，其定义位于<code>src/conf.h</code>(1.3以前的版本)或<code>src/include/ap_config.h</code>(1.3或以后的版本)中。在一些根本没有锁定机制的体系中，使用多个<code class="directive"><a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mpm_common.html#listen">Listen</a></code>指令就是不安全的。</p>
<p><code class="directive"><a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mpm_common.html#acceptmutex">AcceptMutex</a></code>指令被用来改变在运行时使用的互斥方案。</p>
<dl>
<dt><code>AcceptMutex flock</code></dt>
<dd>
<p>这种方法调用系统函数<code>flock()</code>来锁定一个加锁文件(其位置取决于<code class="directive"><a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mpm_common.html#lockfile">LockFile</a></code>指令)。</p></dd>
<dt><code>AcceptMutex fcntl</code></dt>
<dd>
<p>这种方法调用系统函数<code>fcntl()</code>来锁定一个加锁文件(其位置取决于<code class="directive"><a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mpm_common.html#lockfile">LockFile</a></code>指令)。</p></dd>
<dt><code>AcceptMutex sysvsem</code></dt>
<dd>
<p>(1.3及更新版本)这种方案使用SysV风格的信号灯以实现互斥。不幸的是，SysV风格的信号灯有一些副作用，其一是，Apache有可能不能在结束以前释放这种信号灯(见<code>ipcs()</code>的man page)，另外，这种信号灯API给与网络服务器有相同uid的CGI提供了拒绝服务攻击的机会(所有CGI，除非用了类似<code class="program"><a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/suexec.html">suexec</a></code>或<code>cgiwrapper</code>)。鉴于此，在多数体系中都不用这种方法，除了IRIX(因为前两种方法在IRIX中代价太高)。</p></dd>
<dt><code>AcceptMutex pthread</code></dt>
<dd>
<p>(1.3 及更新版本)这种方法使用了POSIX互斥，按理应该可以用于所有完整实现了POSIX线程规范的体系中，但是似乎只能用在Solaris2.5及更新版本中，甚至只能在某种配置下才正常运作。如果遇到这种情况，则应该提防服务器的挂起和失去响应。只提供静态内容的服务器可能不受影响。译者注：此选项不能用于Linux。</p></dd>
<dt><code>AcceptMutex posixsem</code></dt>
<dd>
<p>(2.0及更新版本)这种方法使用了POSIX信号灯。如果一个运行中的线程占有了互斥segfault ，则信号灯的所有者将不会被恢复，从而导致服务器的挂起和失去响应。</p></dd></dl>
<p>如果你的系统提供了上述方法以外的串行机制，那就可能需要为APR增加代码(或者提交一个补丁给Apache)。</p>
<p>还有一种曾经考虑过但从未予以实施的方案是使循环部分地串行化，即只允许一定数量的进程进入循环。这种方法仅在多个进程可以同时进行的多处理器的系统中才是有价值的，而且这样的串行方法并没有占用整个带宽。它也许是将来研究的一个领域，但是由于高度并行的网络服务器并不符合规范，所以其被优先考虑的程度会比较低。</p>
<p>当然，为了得到最佳性能，最后就根本不使用多个<code class="directive"><a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mpm_common.html#listen">Listen</a></code>语句。但是上述内容还是值得读一读。</p>
<h3>单socket情况下的串行accept</h3>
<p>上述对多socket的服务器进行了一流的讲述，那么对单socket的服务器又怎样呢？理论上似乎应该没有什么问题，因为所有进程在连接到来的时候可以由<code>accept()</code>阻塞，而不会产生进程"饥饿"的问题，但是在实际应用中，它掩盖了与上述非阻塞方案几乎相同的问题。按大多数TCP栈的实现方法，在单个连接到来时，内核实际上唤醒了所有阻塞在<code>accept</code>的进程，但只有一个能得到此连接并返回到用户空间，而其余的由于得不到连接而在内核中处于休眠状态。这种休眠状态为代码所掩盖，但的确存在，并产生与多socket中采用非阻塞方案相同的负载尖峰的浪费。</p>
<p>同时，我们发现在许多体系结构中，即使在单socket的情况下，实施串行化的效果也不错，因此在几乎所有的情况下，事实上就都这样处理了。在 Linux(2.0.30，双Pentium pro 166/128M RAM)下的测试显示，对单socket，串行化比不串行化每秒钟可以处理的请求少了不到3%，但是，不串行化对每一个请求多了额外的100ms的延迟，此延迟可能是因为长距离的网络线路所致，并且仅发生在LAN中。如果需要改变对单socket的串行化，可以定义<code>SINGLE_LISTEN_UNSERIALIZED_ACCEPT</code> ，使单socket的服务器彻底放弃串行化。</p>
<h3>延迟的关闭</h3>
<p>正如<a href="http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt">draft-ietf-http-connection-00.txt</a> section 8所述，HTTP服务器为了<strong>可靠</strong>地实现此协议，需要单独地在每个方向上关闭通讯(重申一下，一个TCP连接是双向的，两个方向之间是独立的)。在这一点上，其他服务器经常敷衍了事，但从1.2版本开始被Apache正确实现了。</p>
<p>但是增加了此功能以后，由于一些Unix版本的短见，随之也出现了许多问题。TCP规范并没有规定<code>FIN_WAIT_2</code>必须有一个超时，但也没有明确禁止。在没有超时的系统中，Apache1.2经常会陷于<code>FIN_WAIT_2</code>状态中。多数情况下，这个问题可以用供应商提供的TCP/IP补丁予以解决。而如果供应商不提供补丁(指SunOS4 -- 尽管用户们持有允许自己修补代码的许可证)，那么只能关闭此功能。</p>
<p>实现的方法有两种，其一是socket选项<code>SO_LINGER</code> ，但是似乎命中注定，大多数TCP/IP栈都从未予以正确实现。即使在正确实现的栈中(指Linux2.0.31)，此方法也被证明其代价比下一种方法高昂。</p>
<p>Apache对此的实现代码大多位于函数<code>lingering_close</code>(位于<code>http_main.c</code>)中。此函数大致形如：</p>
<div class="example">
<p><code>void lingering_close (int s)<br />{<br /><span class="indent">char junk_buffer[2048];<br /><br />/* shutdown the sending side */<br />shutdown (s, 1);<br /><br />signal (SIGALRM, lingering_death);<br />alarm (30);<br /><br />for (;;) {<br /><span class="indent">select (s for reading, 2 second timeout);<br />if (error) break;<br />if (s is ready for reading) {<br /><span class="indent">if (read (s, junk_buffer, sizeof (junk_buffer)) &lt;= 0) {<br /><span class="indent">break;<br /></span>}<br />/* just toss away whatever is here */<br /></span>}<br /></span>}<br /><br />close (s);<br /></span>} </code></p></div>
<p>此代码在连接结束时多了一些开销，但这是可靠实现所必须的。由于HTTP/1.1越来越流行，而且所有连接都是稳定的，此开销将由更多的请求共同分担。如果你要玩火去关闭这个功能，可以定义<code>NO_LINGCLOSE</code> ，但绝不推荐这样做。尤其是，随着HTTP/1.1中管道化稳定连接的启用，<code>lingering_close</code>已经成为绝对必须。而且，<a href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">管道化连接速度更快</a>，应该考虑予以支持。</p>]]>
    </content>
</entry>

<entry>
    <title>《Nature Medicine》：治疗性克隆能改善鼠帕金森氏症</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/03/nature_medicine.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2753" title="《Nature Medicine》：治疗性克隆能改善鼠帕金森氏症" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.2753</id>
    
    <published>2008-03-27T09:10:55Z</published>
    <updated>2008-03-27T09:17:20Z</updated>
    
    <summary>据最新一期英国《自然—医学》（Nature Medicine）杂志网络版报道，美国斯隆—凯特林癌症研究所研究人员用治疗性克隆技术治疗实验鼠帕金森氏症获得成功。 报道说，研究人员给患帕金森氏症的实验鼠移植了由其自身皮肤细胞克隆产生的神经细胞，后者能产生神经传导物质多巴胺，结果实验鼠的病情出现明显改善。帕金森氏症是一种神经疾病，主要病因是脑中的多巴胺分泌量不足。 研究人员称，这种利用治疗性克隆技术治疗帕金森氏症的疗法前景看好，因为移植的神经细胞来自实验鼠自身，不会被实验鼠的免疫系统排斥。 治疗性克隆即利用克隆技术获取人类早期胚胎，但目的不是将胚胎培育成人，而是为了提取全能型胚胎干细胞，然后在合适的条件下，使其发育成为所需的细胞甚至器官，用于治疗人类疾病。...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="帕金森病" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>据最新一期英国《自然—医学》（Nature Medicine）杂志网络版报道，美国斯隆—凯特林癌症研究所研究人员用治疗性克隆技术治疗实验鼠帕金森氏症获得成功。</p>

<p>报道说，研究人员给患帕金森氏症的实验鼠移植了由其自身皮肤细胞克隆产生的神经细胞，后者能产生神经传导物质多巴胺，结果实验鼠的病情出现明显改善。帕金森氏症是一种神经疾病，主要病因是脑中的多巴胺分泌量不足。</p>

<p>研究人员称，这种利用治疗性克隆技术治疗帕金森氏症的疗法前景看好，因为移植的神经细胞来自实验鼠自身，不会被实验鼠的免疫系统排斥。</p>

<p>治疗性克隆即利用克隆技术获取人类早期胚胎，但目的不是将胚胎培育成人，而是为了提取全能型胚胎干细胞，然后在合适的条件下，使其发育成为所需的细胞甚至器官，用于治疗人类疾病。</p>]]>
        <![CDATA[<p>原文出处：h<a href="ttp://www.nature.com/nm/journal/vaop/ncurrent/abs/nm1732.html">ttp://www.nature.com/nm/journal/vaop/ncurrent/abs/nm1732.html<br />
</a><br />
Nature Medicine　Published online: 23 March 2008 | doi:10.1038/nm1732</p>

<p>Therapeutic cloning in individual parkinsonian mice</p>

<p>Viviane Tabar1,2, Mark Tomishima3,5, Georgia Panagiotakos1,5, Sayaka Wakayama4, Jayanthi Menon1, Bill Chan1, Eiji Mizutani4, George Al-Shamy1, Hiroshi Ohta4, Teruhiko Wakayama4 & Lorenz Studer1,3<br />
Top of page</p>

<p>Cell transplantation with embryonic stem (ES) cell progeny requires immunological compatibility with host tissue. 'Therapeutic cloning' is a strategy to overcome this limitation by generating nuclear transfer (nt)ES cells that are genetically matched to an individual. Here we establish the feasibility of treating individual mice via therapeutic cloning. Derivation of 187 ntES cell lines from 24 parkinsonian mice, dopaminergic differentiation, and transplantation into individually matched host mice showed therapeutic efficacy and lack of immunological response.<br />
Top of page</p>

<p>   1. Department of Neurosurgery, Sloan-Kettering Institute, 1275 York Ave, New York, New York 10065, USA.<br />
   2. Department of Neurosurgery, Weill Medical College of Cornell University, 1300 York Ave, New York, New York 10065, USA.<br />
   3. Developmental Biology Program, Sloan-Kettering Institute, 1275 York Ave, New York, New York 10065, USA.<br />
   4. RIKEN Center for Developmental Biology, 2-2-3 Minatojima-minamimachi, Kobe 650-0047, Japan.<br />
   5. These authors contributed equally to this work.</p>

<p>Correspondence to: Viviane Tabar1,2 e-mail: tabarv@mskcc.org</p>

<p>Correspondence to: Lorenz Studer1,3 e-mail: studerl@mskcc.org </p>]]>
    </content>
</entry>

<entry>
    <title>国产脑起搏器</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2008/03/uuaoaeae.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2752" title="国产脑起搏器" />
    <id>tag:www.trucy.org,2008:/blog/fanghong//17.2752</id>
    
    <published>2008-03-27T08:44:00Z</published>
    <updated>2008-03-27T09:16:43Z</updated>
    
    <summary>清华研究团队用载人航天科技和精神做中国的“脑起搏器” 　　【新闻中心讯 记者 周襄楠 摄影郭海军】中国的帕金森病患者和癫痫患者有望在不久的将来用上中国自己研发的“脑起搏器”，从而对疾病达到持久和全面的治疗。将“脑起搏器”中由4个芝麻大小的电极组成的电极束植入人的脑部，并发出脉冲，刺激神经从而达到治疗帕金森病和癫痫等脑部神经疾病的效果。而这种价格低廉、技术过硬的“脑起搏器”是由清华大学的科研团队运用载人航天技术研制的。 一些进展可以参看：清华大学航天航空学院人机与环境工程研究所的植入式神经刺激研究...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="帕金森病" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>清华研究团队用载人航天科技和精神做中国的“脑起搏器”</p>

<p>　　【新闻中心讯 记者 周襄楠 摄影郭海军】中国的帕金森病患者和癫痫患者有望在不久的将来用上中国自己研发的“脑起搏器”，从而对疾病达到持久和全面的治疗。将“脑起搏器”中由4个芝麻大小的电极组成的电极束植入人的脑部，并发出脉冲，刺激神经从而达到治疗帕金森病和癫痫等脑部神经疾病的效果。而这种价格低廉、技术过硬的“脑起搏器”是由清华大学的科研团队运用载人航天技术研制的。</p>

<p>一些进展可以参看：清华大学航天航空学院人机与环境工程研究所的<a href="http://hy.tsinghua.edu.cn/intro/IMMEE/SR_info/Implantable_nerve_stimulation.htm">植入式神经刺激研究</a></p>]]>
        <![CDATA[<p>　　“脑起搏器”在医学上被称为“脑深部电刺激器”，它是植入式神经刺激器（Implantable Neuro－Stimulator）的一种。其作用机理是把刺激电极放入大脑的特定部位，通过慢性电刺激达到治疗效果。这是一种可逆性的神经调节治疗，不破坏脑组织或神经，不影响今后其它新的治疗方法，是20世纪末脑科学研究的重要成果。按作用靶点区分，植入式神经刺激器目前已有脑深部刺激、脊髓刺激、迷走神经刺激、骶神经刺激、膈神经刺激等多种治疗模式；按治疗疾病区分，对帕金森病、疼痛、癫痫、膀胱功能障碍、呼吸功能障碍、高血压、肥胖等疾病有巨大的临床治疗意义。</p>

<p>　　“脑起搏器”的刺激方案可以通过体外仪器调控，随时调节刺激强度和频率，以找到最佳刺激触点，在治疗帕金森病、癫痫、疼痛等脑部神经疾病方面具有疗效更好、更持久等优点。</p>

<p>　　随着我国经济的稳定发展，以及人们对健康的日渐关注，高端医疗产品正在日益走进百姓的生活。上世纪90年代中期以来的10年，患者植入心脏起搏器和支架、接受CT和MRI检查，已经变得非常普遍和常规。我国的神经失调患者数量庞大，仅帕金森病和癫痫患者就超过1400 万，从人口基数和发病率统计出发，我国植入式神经刺激疗法的适应症病人总体规模超过美国和欧洲的总和。</p>

<p>　　主要用于治疗帕金森病的“脑起搏器”1999年首次应用于我国临床，但是至今为止，我国市场上这类产品全部被国外的公司垄断，而且价格昂贵，一般都在十几万元，而且数年之后还要花10万元左右进行更换，极大地限制了这种先进科技更好地为中国的患者服务。</p>

<p>　　清华大学航天航空学院人机与环境工程研究所在李路明教授的带领下，组建了由电子、信息、软件、材料、制造等领域的科研人员组成的专业科研团队，从2002年开始着手研制适合中国国情的植入式神经刺激疗法和刺激器。研究工作充分继承了实验室在微小卫星、载人航天等领域的技术积累，充分考虑中国患者的需求，在集成设计制造、可靠性、功耗控制、研发规范等领域实现了自主创新。经过艰苦的攻关，该技术团队已经成功研制出第一代植入式神经刺激器平台，完成“脑起搏器”和迷走神经刺激器的系统测试以及动物试验验证，达到了国际上同类产品的技术水平。上述技术将为中国企业制造国内患者能够买得起的“脑起搏器”提供强有力的技术支撑，这类刺激器不久将开始人体临床实验。</p>

<p>　　在进行上述研究工作的同时，李路明教授的研究小组多次深入到手术现场、病房。在和临床专家、患者的交流中，他们发现，制约国内患者采用该技术手段的另一个关键问题是起搏器的寿命，通常患者要在5年左右时间因电池原因更换一次，更换成本10万元左右，这大大加大了患者的负担。针对国情和患者的需求，他们从实际出发，设计了脑起搏器由体外无线充电或供电的新模式，一次植入终身使用，还极大地节约了患者的费用，目前他们已经完成第二代植入式神经刺激器平台的关键技术研究。</p>

<p>　　随着研究工作的深入，交叉学科的碰撞和对传统文化的热爱，他们创造性的提出了将植入技术和中医电针灸结合的“植入电针”的概念，并得到了北京中医药大学研究人员的大力支持。研制植入式电针灸刺激器，应用中医针灸理论，实现对穴位更为有效、持久、可控的电刺激，就像给患者自身找了一个全自动的“针灸治疗师”，其治疗效果将更加明显。这一技术方案已经得到了国家“863”计划的支持，并在镇痛方面取得了初步的研究成果。</p>

<p>　　“‘脑起搏器’从工程角度讲是信息、材料、制造等多个学科交叉集成的结晶，代表了工程领域的众多高技术成果，是实实在在的工程研究；同时又必须符合医学原理，满足患者的需要，是‘医-工’结合的产物。”李路明说，“这和我们从事的航天医学工程研究非常类似，我们把以极高的可靠性为特点的航天高技术应用在脑科学领域，研制医疗器械，这是我们实验室的一个很大的特色。例如，从每个微小的器件到整个起搏器的制造过程我们都有严格的质保体系，保证了研发工作的高品质、高质量。同时在脑起搏器研制中产生的技术成果又可以服务航天，如植入电针研究派生出的刺激器技术将应用在航天员身上，用于对抗微重力环境下的肌肉萎缩，在几年后随神舟飞船上天。”李路明教授用一个硬币的两个面来做比喻，一面是载人航天，一面是医疗器械，相辅相成，彼此促进，形成了研究所的学科特色，也实现了学科的良性发展。</p>

<p>　　在交谈中，李路明教授多次强调团队的重要性，并多次赞赏自己团队中郝红伟、文雄伟、马伯志、胡春华、刘方军等教师以及研究生的工作：“他们非常努力、团结，没有这支队伍，只靠我自己，什么都做不成。”</p>

<p>　　不仅科研团队中的每个人都倾力协作，在这项科学研究得以顺利开展的背后，还有多方的专家学者的支持和参与，如李路明教授的导师、我国焊接权威潘际銮院士，清华第二附属医院（玉泉医院）左焕琮院长，我国脑外科权威王忠诚院士的科研团队，中医药大学图娅教授的科研小组…… 人机与环境工程研究所还聘请了国内第一个研制出心脏起搏器的方祖祥教授等担任技术顾问，研制“脑起搏器”的系列工作还得到了航天航空领域张履谦院士、俞梦孙院士等科学家的支持。</p>

<p>　　作为参与国家医疗器械科技发展规划的专家，李路明教授多次强调研究方向和科研工作的使命感：“医疗器械，特别是高端医疗器械国产化、低成本化是当前解决看病贵、实施国家医改‘战略前移、重心下移’的重要举措，在未来我国医药、健康产业中扮演非常关键的角色，清华大学对此有义不容辞的责任。”李路明教授带领的科研团队的研究工作还得到国家卫生部、科技部、清华大学和航天航空学院以及有关企业的大力支持。</p>

<p>　　目前，清华大学人机与环境工程研究所在神经刺激器的研发工作中已经获得了多项专利授权，已经初步形成自有知识产权包；在刺激器软件系统重植、体外充电技术方面，拥有技术领先优势；在植入电针灸的研究领域，开展了原创性的研究工作。（编辑 周月红）</p>

<p>转载：http://news.tsinghua.edu.cn/new/news.php?id=17257</p>]]>
    </content>
</entry>

<entry>
    <title>无法访问flickr？</title>
    <link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2007/10/iaieflickr.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.trucy.org/cgi-bin/blog/mt-atom.cgi/weblog/blog_id=17/entry_id=2577" title="无法访问flickr？" />
    <id>tag:www.trucy.org,2007:/blog/fanghong//17.2577</id>
    
    <published>2007-10-25T04:12:05Z</published>
    <updated>2007-10-25T04:15:02Z</updated>
    
    <summary>firefox插件： https://addons.mozilla.org/en-US/firefox/addon/4286 更多资料： http://blog.istef.info/2007/06/08/save-flickr/...</summary>
    <author>
        <name>Cyril</name>
        <uri>http://www.trucy.org/blog</uri>
    </author>
    
        <category term="记录" />
    
    <content type="html" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
        <![CDATA[<p>firefox插件：</p>

<p><a href="https://addons.mozilla.org/en-US/firefox/addon/4286">https://addons.mozilla.org/en-US/firefox/addon/4286</a></p>

<p>更多资料：<br />
<a href="http://blog.istef.info/2007/06/08/save-flickr/">http://blog.istef.info/2007/06/08/save-flickr/</a></p>]]>
        
    </content>
</entry>

</feed> 

