<?xml version="1.0" encoding="gb2312"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>楚水文库</title>
<link rel="alternate" type="text/html" href="http://www.trucy.org/" />
<modified>2012-05-10T09:08:28Z</modified>
<tagline>岁 月 流 淌 往 日 点 点 滴 滴</tagline>
<id>tag:www.trucy.org,2012://5</id>
<generator url="http://www.movabletype.org/" version="4.1">Movable Type</generator>
<copyright>Copyright (c) 2008, cyril</copyright>

<entry>
<title>不吐不快</title>
<link rel="alternate" type="text/html" href="http://www.mQney.com/archives/003673.html" />
<modified>2012-05-10T09:08:28Z</modified>
<issued>2012-05-10T08:51:08Z</issued>
<id>tag:,2012:/22.3673</id>
<created>2012-05-10T08:51:08Z</created>
<summary type="text/plain">不吐不快 mqney.com</summary>
<author>
<name>pinkfloyd</name>
<url>http://www.mqney.com</url>
<email>pinkfloyd1981728@hotmail.com</email>
</author>
<dc:subject>口唇</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.mQney.com/">
<![CDATA[1，<br />好事多磨，磨唧唧；<br />能人似神，神叨叨。<br /><br />2，<br />新的功勋员工正在展示他们无能的力量。<br /><br />3，<br />互相敬佩而不吹捧，互相较量而不排挤。<br /><br />4，<br />两眼望一处，一心做一事。<br /><br />5，<br />光脚的不怕穿鞋的，开车的干不过赶地铁的。<br /><br />6，<br />干活的人少了，管事儿的人多了，决策的人没了。<br /><br />7，<br />制度规范员工行为，激发能动性。制度限制员工行为，抑制能动性。<br /><br />8，<br />靠专业赢得尊重，而不是其他。<br /><br />9，<br />可以不尊重领导，但必须尊重工作。<br /><br />10，<br />有原则有实现有结果；无原则有实现无结果。<br /><br />0，<br />作为一名活跃的挑刺儿者，我经常找不到自己的资格。<br /> ]]>

</content>
</entry>

<entry>
<title>绝活儿</title>
<link rel="alternate" type="text/html" href="http://donghao.org/2012/05/oiu.html" />
<modified>2012-05-10T08:08:47Z</modified>
<issued>2012-05-10T08:03:25Z</issued>
<id>tag:donghao.org,2012://43.3672</id>
<created>2012-05-10T08:03:25Z</created>
<summary type="text/plain">我的办公桌上有一个纠正坐姿的木架子（我有脖子前倾的坏习惯），是我爸做的，但是同事都以为是我做的（他们跟我爸不熟）。大家似乎都对这个自制的小木架非常感兴趣，很多第一次看见的同事都会详细询问一番，甚或赞美一番。上个星期，coly和易统在讨论问题。coly：google那边不仅自己定制内核，还自己定制硬件易统：是的，他们有自己的硬件工程师，专门为公司的搜索应用定制主板、硬盘等coly：嗯，还有自己的机械师，连机房的机架都是专门设计的易统：。。。。那有什么了不起，（转身看着我）。。。。咱们有自己的木匠！。。。。我：有订单千万别忘了我喲...</summary>
<author>
<name>donghao</name>
<url>http://donghao.org</url>
<email>hao.bigrat@gmail.com</email>
</author>
<dc:subject>对话收录</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://donghao.org/">
<![CDATA[<div>我的办公桌上有一个纠正坐姿的木架子（我有脖子前倾的坏习惯），是我爸做的，但是同事都以为是我做的（他们跟我爸不熟）。大家似乎都对这个自制的小木架非常感兴趣，很多第一次看见的同事都会详细询问一番，甚或赞美一番。</div><div><br /></div><div>上个星期，coly和易统在讨论问题。</div><div><br /></div><div><a href="http://weibo.com/colyli">coly</a>：google那边不仅自己定制内核，还自己定制硬件</div><div><a href="http://weibo.com/axren">易统</a>：是的，他们有自己的硬件工程师，专门为公司的搜索应用定制主板、硬盘等</div><div>coly：嗯，还有自己的机械师，连机房的机架都是专门设计的</div><div>易统：。。。。那有什么了不起，（转身看着我）。。。。咱们有自己的木匠！</div><div><br /></div><div>。。。。</div><div><br /></div><div>我：有订单千万别忘了我喲</div> ]]>

</content>
</entry>

<entry>
<title>脑起博器记录</title>
<link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2012/05/aoaeaeca.html" />
<modified>2012-05-05T15:53:26Z</modified>
<issued>2012-05-05T15:21:02Z</issued>
<id>tag:www.trucy.org,2012:/blog/fanghong//17.3671</id>
<created>2012-05-05T15:21:02Z</created>
<summary type="text/plain">4月11日是世界帕金森日，全球400万患者中有170万人在中国。很多信息可以参看：http://www.homefpd.com/ 1，国产脑起博器实验中，包括可可充电双侧脑起搏器。 具体可参看：www.pinsmedical.com，和天坛医院在临床实验进行中。目前使用的是美顿力产的起博器，官方网站是：www.medtronic.com.cn 2，深部脑刺激技术(Deep Brain Stimulation，DBS)适应患者： 患原发性帕金森病病史至少5年以上；服用左旋多巴有良好疗效或曾经有效；经系统的药物治疗后，症状再无法控制或出现运动障碍合并症，调整药物也无法改善；在植入过程和以后的随访中愿意并能够与医生合作；术中或术后的刺激测试证实能有效控制症状；没有严重的认知和精神障碍及严重脑萎缩。 3，不适合患者： 非自发性帕金森病所引起的神经性疾病 先前做过双侧苍白球或丘脑底核毁损手术 怀孕/智障/血液病/中度至重度的忧郁症/18岁以下的患者/75岁以上的患者 4，治疗注意事项 脑起搏器植入后数周内应避免剧烈活动。手术伤口愈合后，医生会采用特殊的仪器与装置，在体外对脉冲发生器进行调控，这一过程称为程控，这是一个无创伤也无痛苦的过程。脑起搏器植入后，帕金森病的药物治疗即需要调整，大多数病人的用药剂量会明显减少。由于药物剂量的改变，术后患者对脑起搏器的治疗也需要一个适应的过程，数月内患者的症状可能出现波动，从而需要进行数次程控以稳定疗效，并帮助患者达到最佳症状控制。以后患者可根据病情每年到医院随访1－3次，进行相应的检测和程控。 　　患者可以自己在体外开关脑起搏器，开关控制器有两种：一种为一小块遥控磁铁，使用时，手握磁铁弧形端，使其平直端对着身体，把磁铁放在胸前脉冲发生器位置1秒钟，脑起搏器就会开始或停止工作；另一种为手握式遥控开关，除了可以开关脑起搏器外，还可在医生设定的范围内进行刺激参数的调整，并可通过此开关了解脑起搏器的电池状态和开关情况。 　　由于磁铁会影响磁带、计算机磁盘、信用卡等的内部信息，建议在使用磁铁时远离这些物品15厘米以上。虽然家用电器如电脑、电话等对系统没有影响，但冰箱门、音响喇叭的磁场等可能会影响到脑起搏器的正常运行，所以建议患者不要距离太近。患者在需要接受磁共振（MRI）、超声等特殊检查前，应咨询手术医生。 　　每个患者在术后会获得一张植入识别卡，以证明其体内安装有脑起搏器系统，建议患者时刻随身携带识别卡。脑起博器中的脉冲发生器可能会引起机场安全门或商场防盗门报警，携带识别卡可以帮助免除不必要的麻烦。 手术后，也不能一劳永逸。帕金森病目前还无法彻底治愈，植入脑起搏器，只能缓解症状。而且每5年左右，起搏器就要更换电池，换电池时又需要做一次手术。 5，手术费用 第一次收入手术费用：22W。每隔5年左右更换电池费用：12W。 6，DBS的机理： 目前对DBS改善帕金森病的机制还不十分清楚。可能的机理有抑制、神经元去极化阻滞、调节靶区的神经元活性。抑制学说认为DBS刺激了局部抑制性神经递质的释放；去极化阻滞假说认为植入DBS类似于在靶区功能性的毁损，提高了兴奋性电位的阈值；调节神经元活性的假说是根据帕金森病中神经元兴奋性的异常和不规律，而DBS的脉冲式放电刺激产生了更加规律和稳定的放电模式。 7， DBS的疗效： 在术后3个月到2年的时间不等的5至38名患者的多中心的研究表明STN的DBS治疗帕金森病是安全而有效的。DBS对药物的“关”期的改善：①对UPDRS的日常生活功能评分可改善30%到68%，平均改善53%；②对UPDRS的运动功能评分可改善42%到71%，平均改善57%；③明显减轻异动症66%到83%，平均74%；④减少抗帕金森病药物37%到76%, 平均为57%。 8，STN的DBS可能的副作用： 视物重影、感觉异常、肌肉抽缩、眩晕或恶心、抑郁或躁狂或情绪障碍、共济失调等，这都是与DBS的电刺激可能影响到临近的相关神经结构有关。...</summary>
<author>
<name>cyril</name>
<url>http://www.trucy.org/blog</url>
<email>zhangfh@gmail.com</email>
</author>
<dc:subject>帕金森病</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
<![CDATA[<p>4月11日是世界帕金森日，全球400万患者中有170万人在中国。很多信息可以参看：<a href="http://www.homefpd.com/">http://www.homefpd.com/</a></p>

<p>1，国产脑起博器实验中，包括可可充电双侧脑起搏器。<br />
具体可参看：<a href="http://www.pinsmedical.com">www.pinsmedical.com</a>，和天坛医院在临床实验进行中。目前使用的是美顿力产的起博器，官方网站是：<a href="http://www.medtronic.com.cn/">www.medtronic.com.cn</a></p>

<p>2，深部脑刺激技术(Deep Brain Stimulation，DBS)适应患者：<br />
	患原发性帕金森病病史至少5年以上；服用左旋多巴有良好疗效或曾经有效；经系统的药物治疗后，症状再无法控制或出现运动障碍合并症，调整药物也无法改善；在植入过程和以后的随访中愿意并能够与医生合作；术中或术后的刺激测试证实能有效控制症状；没有严重的认知和精神障碍及严重脑萎缩。</p>

<p>3，不适合患者：<br />
	非自发性帕金森病所引起的神经性疾病<br />
	先前做过双侧苍白球或丘脑底核毁损手术<br />
	怀孕/智障/血液病/中度至重度的忧郁症/18岁以下的患者/75岁以上的患者</p>

<p>4，治疗注意事项<br />
	脑起搏器植入后数周内应避免剧烈活动。手术伤口愈合后，医生会采用特殊的仪器与装置，在体外对脉冲发生器进行调控，这一过程称为程控，这是一个无创伤也无痛苦的过程。脑起搏器植入后，帕金森病的药物治疗即需要调整，大多数病人的用药剂量会明显减少。由于药物剂量的改变，术后患者对脑起搏器的治疗也需要一个适应的过程，数月内患者的症状可能出现波动，从而需要进行数次程控以稳定疗效，并帮助患者达到最佳症状控制。以后患者可根据病情每年到医院随访1－3次，进行相应的检测和程控。<br />
　　患者可以自己在体外开关脑起搏器，开关控制器有两种：一种为一小块遥控磁铁，使用时，手握磁铁弧形端，使其平直端对着身体，把磁铁放在胸前脉冲发生器位置1秒钟，脑起搏器就会开始或停止工作；另一种为手握式遥控开关，除了可以开关脑起搏器外，还可在医生设定的范围内进行刺激参数的调整，并可通过此开关了解脑起搏器的电池状态和开关情况。<br />
　　由于磁铁会影响磁带、计算机磁盘、信用卡等的内部信息，建议在使用磁铁时远离这些物品15厘米以上。虽然家用电器如电脑、电话等对系统没有影响，但冰箱门、音响喇叭的磁场等可能会影响到脑起搏器的正常运行，所以建议患者不要距离太近。患者在需要接受磁共振（MRI）、超声等特殊检查前，应咨询手术医生。<br />
　　每个患者在术后会获得一张植入识别卡，以证明其体内安装有脑起搏器系统，建议患者时刻随身携带识别卡。脑起博器中的脉冲发生器可能会引起机场安全门或商场防盗门报警，携带识别卡可以帮助免除不必要的麻烦。<br />
	手术后，也不能一劳永逸。帕金森病目前还无法彻底治愈，植入脑起搏器，只能缓解症状。而且每5年左右，起搏器就要更换电池，换电池时又需要做一次手术。</p>

<p>5，手术费用<br />
	第一次收入手术费用：22W。每隔5年左右更换电池费用：12W。</p>

<p>6，DBS的机理： <br />
      目前对DBS改善帕金森病的机制还不十分清楚。可能的机理有抑制、神经元去极化阻滞、调节靶区的神经元活性。抑制学说认为DBS刺激了局部抑制性神经递质的释放；去极化阻滞假说认为植入DBS类似于在靶区功能性的毁损，提高了兴奋性电位的阈值；调节神经元活性的假说是根据帕金森病中神经元兴奋性的异常和不规律，而DBS的脉冲式放电刺激产生了更加规律和稳定的放电模式。 </p>

<p>7， DBS的疗效： <br />
      在术后3个月到2年的时间不等的5至38名患者的多中心的研究表明STN的DBS治疗帕金森病是安全而有效的。DBS对药物的“关”期的改善：①对UPDRS的日常生活功能评分可改善30%到68%，平均改善53%；②对UPDRS的运动功能评分可改善42%到71%，平均改善57%；③明显减轻异动症66%到83%，平均74%；④减少抗帕金森病药物37%到76%, 平均为57%。 </p>

<p>8，STN的DBS可能的副作用： <br />
      视物重影、感觉异常、肌肉抽缩、眩晕或恶心、抑郁或躁狂或情绪障碍、共济失调等，这都是与DBS的电刺激可能影响到临近的相关神经结构有关。 </p>]]>
<![CDATA[<p><strong>脑起搏器(DBS)手术过程的简要说明 </strong><br />
<a href="http://www.homefpd.com/portal.php?mod=view&aid=2427">http://www.homefpd.com/portal.php?mod=view&aid=2427</a></p>

<p>    <strong>植入脑起搏器术系统</strong><br />
   有经验而具有立体定位技术的神经外科医师利用一立体定位头架以及如核磁共振(MRI)或计算机断层扫瞄(CT)等之显影技术来扫瞄脑部并定位目标区域。将导线插入一14mm的头骨小洞并植入脑内的目标区域。在植入导线之前，须先麻醉患者的头皮。在头皮内钻一小孔并将测试电极之刺激传入脑中的目标部位。此时患者仍然清醒，因此外科医师与运动性疾病神经专家得以测试各种刺激以得到最佳的抑制效果与最小的副作用，然后再将长期刺激导线植入。当长期刺激导线妥善放置后，将患者进行全身麻醉。然后穿过头皮，颈部，与肩牓的延长线与神经刺激器连接。最后在锁骨附近切一小开口，并将神经刺激器植入皮下即告完成。<br />
<strong>   手术前检查(2-4小时)：</strong><br />
   一般而言，移植中心的神经专家与神经外科医师团队会先进行手术前评估，以决定患者是否可以接受手术以及患者是否能因脑起搏器(DBS)疗法而受益之可能性。<br />
   手术步骤*：<br />
   脑起搏器是一种需要两套完整神经刺激系统的双侧疗法，分别植入患者脑部双侧。手术包括两个步骤，每一侧所进行的步骤是一样的。<br />
<strong>   步骤1：植入Medtronic 脑起搏器导线(每条导线需花1.5到4个钟头 )：</strong><br />
    此步骤需要患者住院始能进行。患者须在手术前几天住进医院。首先进行局部麻醉，将立体定位架固定于头部,然后用CT或MRI进行脑部扫描，然后医师再用手术计划系统，进行手术靶点定位。 将患者转至手术室，医师在患者的额部钻一个大约5分钱硬币大小的孔,然后利用微电极记录技术探测预定靶点的电生理特征，精确定位电极最终植入位置，最后将长期刺激电极植于患者的丘脑下核(STN)或苍白球间(GPi)。<u>在患者清醒时，医师尽可能在不造成副作用的前提下，以刺激来测试患者的治疗效果(如肌肉僵化与/或颤抖现象之减轻)。神经专家通常会在手术期间进行测试。当医师决定好导线的放置位置时，便将其固定在头骨上。然后将导线穿过患者头皮以连接至延长线上。(植入电极后，医生会打开体外临时刺激器，进行测试。医生会让患者做一些简单的动作，如拿杯子、伸展手臂等，同时医生还要对病人进行相应的检查，然后根据患者的感受和症状改善程度，进一步调整电极的位置和刺激参数，以取得最佳效果。在这一过程中患者始终保持清醒状态，与医生配合共同观察测试效果。如果测试中症状得到改善，患者感到满意，医生可进一步植入整个脑起搏器系统。如果测试无效，则不再进行进一步植入。)</u><br />
<strong>   步骤2：植入神经刺激器(每边须30至 45分钟)：</strong><br />
    通常医师在手术时会进行全身麻醉或给予镇静剂。医师会在锁骨下方的皮肤切一小开口并制作一小囊袋。然后将如同起搏器可引发刺激的神经刺激器置于囊袋内，将之连接到头皮内顺着颈部至囊袋内的延长线上。<br />
<strong>   住院状况：</strong><br />
   通常患者在植入导线后当天或住院一周左右便可出院。置放神经刺激器的步骤如果未与置放导线的步骤同时进行，则通常患者并不须要住院，且当天即可出院。<br />
<strong>   手术后追踪：</strong><br />
    患者回诊以移除缝合线。临床医师会在手术后2至4周将患者的神经刺激器开启。有些医师反应部份患者在手术后尚未接受刺激前，便有症状舒缓的现象("小损伤效果(microlesio effect)")。通常小损伤效果在手术后数天内便会逐渐消失。有些医师认为这是由于脑内导线植入区产生水肿而引起。当水肿消退后，便可调整患者的刺激以达最佳效果与最低副作用。<u>通常在手术后的几个月内，患者须经常回诊以调整最佳刺激状况与最低抗帕金森氏症药物的情况。之后患者便可与医师约定正常的回诊时间以监控病况，必要时也可调整刺激状况。</u><br />
<strong>   电池寿命：</strong><br />
    在使用正常参数的情况下，神经刺激器的电池可维持5至8年的寿命。电池寿命与设定的参数有关，因此可能不到5年就须更换。 </p>]]>
</content>
</entry>

<entry>
<title>镜头</title>
<link rel="alternate" type="text/html" href="http://www.mQney.com/archives/003670.html" />
<modified>2012-05-02T12:35:51Z</modified>
<issued>2012-05-02T12:23:41Z</issued>
<id>tag:,2012:/22.3670</id>
<created>2012-05-02T12:23:41Z</created>
<summary type="text/plain">标准镜头 近摄镜 微距镜头 远摄镜头 鱼眼镜头 超广角镜头 广角镜头</summary>
<author>
<name>pinkfloyd</name>
<url>http://www.mqney.com</url>
<email>pinkfloyd1981728@hotmail.com</email>
</author>
<dc:subject>眼睛</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.mQney.com/">

<![CDATA[<p>超广角镜头：Hyper wide—angle lens 　　广角镜头中，视角范围特别广的镜头（80—110度）才这样称呼。在35毫米相机上，多指15—20毫米的镜头。 　　超广角镜头有着宽广的视野，又不像鱼眼镜头有强烈的畸变，是很好消除了畸变的镜头。</p>
<p>&nbsp;</p>
<p>鱼眼镜头：是一种焦距极短并且视角接近或等于180°的镜头。16mm或焦距更短的镜头。 它是一种极端的广角镜头，“鱼眼镜头”是它的俗称。</p>
<p>&nbsp;</p>
<p>广角镜头是一种焦距短于标准镜头、视角大于标准镜头、焦距长于鱼眼镜头、视角小于鱼眼镜头的摄影镜广角镜头。<br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>远摄镜头：通常是指焦距约在80至300mm之间的摄影镜头。远摄镜头最基本的特点是，镜头视角小，所以视野范围相对狭窄，能把远处的景物拉近，使之充满画面，具有“望远”的功能，从而使景物的远近感消失，缩短了景深，把对被摄体聚焦点前后的清晰范围限制在一定尺度内，用以突出被对焦的部分（多为被摄主体或要突出表现的部分）。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>近摄镜：如果在标准镜头前附加一枚近摄镜，其焦距就会立刻发生变化。通常近摄镜按屈光度标定，如：+1、+2、+3等等。屈光度越大，放大倍率也就越高，焦距也就越短。放大率越大，所拍物体成像越大，比如拍一个邮票，普通镜头在最近拍摄距离内的成像可能只有5mm（相对于35mm胶片），而用1：1放大率的近摄镜&nbsp; 近摄镜来拍，可以达到原物大小。1：2的成像能达到原物的一半大。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>标准镜头：视角为50度左右的镜头之总称。 　　焦距长度和所摄画幅的对角线长度大致相等的摄影镜头。其视角一般为45°～50°。画面35毫米为40—60毫米焦距的镜头，6*6厘焦距的为75—80毫米焦距的镜头，4*5英寸则是120—150毫米。标准镜头通常是指焦距在40至55毫米之间的摄影镜头，标准镜头所表现的景物的透视与目视比较接近。 它是所有镜头中最基本的一种摄影镜头。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>微距镜头：是一种用作微距摄影的特殊镜头，主要用于拍摄十分细微的物体，如花卉及昆虫等。为了对距离极近的被摄物也能正确对焦，微距镜头通常被设计为能够拉伸得更长，以使光学中心尽可能远离感光元件，同时在镜片组的设计上，也必须注重于近距离下的变形与色差等的控制。大多数微距镜头的焦长都大于标准镜头，可以被归类为望远镜头，但是在光学设计上可能是不如一般的望远镜头的，因此并非完全适用于一般的摄影。<br /></p>]]>
</content>
</entry>

<entry>
<title>帕金森治疗的七大误区</title>
<link rel="alternate" type="text/html" href="http://www.trucy.org/blog/fanghong/archives/2012/04/aaeoiaaeaaessoi.html" />
<modified>2012-04-28T06:02:06Z</modified>
<issued>2012-04-28T05:00:08Z</issued>
<id>tag:www.trucy.org,2012:/blog/fanghong//17.3669</id>
<created>2012-04-28T05:00:08Z</created>
<summary type="text/plain">　　东方网-文汇报 作者：胡小吾 　　http://health.xinmin.cn/jkzx/2012/04/28/14583595.html 　　帕金森病是中老年人的常见病，但由于帕金森的病因至今没有明确，所以治疗误区很多，不断有患者走弯路、吃错药。但是许多患者仍旧急功近利，大剂量不按规范的吃药，或者轻信他人进行不规范的手术，错失了最佳治疗导致他们生活质量急剧下降，从而造成极其恶劣的后果。其实，只要治疗方法合理，便可以取得长期满意的效果。 　　日前，由国内多位帕金森领域顶级专家共同参与编写的科普版《帕金森病治疗指南解读》正式出版。作为此书编写者之一，特摘取其中片段，希望能帮助更多人认识帕金森病，走出治疗误区，为健康赢得主动权。 　　怎样选择合理的正规治疗、少走弯路是医患间最关心的问题之一。从临床诊疗中发现，目前人们对于帕金森病治疗普遍存在的七大误区： 　　1、一发病就该吃药 　　帕金森病病人不是吃几个疗程药后症状缓解就可停服，而是如果一旦吃上，需要终生吃药。然而，需要提醒的是，药物治疗最有效的时间一般只有4～6年，随着吃药时间延长，疗效越来越低，剂量越来越大。长期吃药后会出现肢体不自主舞蹈样动作和药效作用来去无踪的副作用。因此，过早或过晚服用药物都是错误的，而应尽量推迟吃药时期，如果症状轻微，可以暂时不吃药，但如果症状明显，就应该及时吃药，以控制症状。 　　2、药物首选多巴胺制剂 　　有的病人一开始吃药就选择效果最明显的多巴胺制剂。但殊不知，该类药物效果明显，但可能让副作用提早出现。因此，对年龄较轻的早期病人，应选择多巴胺激动剂，该类药物虽然效果欠佳，副作用明显，但可推迟药物副作用出现；对年龄较大的早期病人，可应用多巴类药物。随着病情发展，需要的药物剂量越来越大，因此吃药需要做到“细水长流，不求全效”，即剂量尽可能小，长期规律地服用，能达到80%左右效果即可。 　　3、吃药无效方选择外科治疗 　　到中晚期，吃药效果不理想，即使药量加大，药物疗效也不满意，症状影响到工作和生活，或药物副作用较大，应考虑用外科治疗。在早期，症状较轻，吃药效果又好，不需要手术；在很晚期，即使手术，效果也不理想。因此，外科治疗通常在发病后5年进行，对以震颤为主要症状的病人因为震颤对外科治疗反应比较好，在发病3年后也可以进行手术。 　　4、毁损术应做双侧 　　帕金森病最早的外科治疗方法是毁损术，即通过射频热凝脑内异常兴奋神经核团，来消除帕金森病症状。平时我们听说的“细胞刀”就是这种方法。毁损术治疗较经济，如果做一边，可控制对侧肢体症状。但它是一种破坏性手术，约4%～10%病人术后出现脑出血、靶点偏差等并发症。毁损术一般只能做一侧，如果做双侧，并发症高达30%。因此，国外很少有人做毁损术，国内做这种手术的人数也在减少，但单侧毁损术还是比较适合由于经济原因不能进行脑起搏器治疗的单侧症状帕金森病病人。 　　5、脑起搏器装不得 　　脑起搏器是近40年来帕金森病治疗上的最大进展，是目前世界上最有效的外科治疗方法。手术在脑内神经核团植入电极，把脉冲发生器埋藏在胸部皮下，脉冲发生器发出电刺激，通过皮下导线，传到脑内电极，抑制不正常的神经放电，使其消除症状。目前全球有8～9万的帕金森病病人接受了脑起搏器治疗。国外治疗率达8%，而我国运用脑起搏器治疗仅为所有帕金森病人的0.125%。 　　6、定期更换电池需开颅 　　脑起搏器治疗不破坏脑组织，是一种可逆性的神经调节治疗，且不影响今后新的方法治疗，但是费用较高，起搏器电池耗完后（一般在6年左右）需要更换脉冲发生器。在更换脉冲发生器时，不需要对脑部进行任何手术，只要在胸口皮下组织取出电池更换新的仪器便可。据了解，长海医院是2000年在国内率先开展了脑起搏器治疗，目前上海也仅有长海和瑞金两家医院开展该项技术。 　　7、动了手术就无需吃药 　　吃药与外科手术治疗两者互不对立。吃药不是为了不手术，手术也并不为了不吃药。因为帕金森患者在中晚期，即使加大药物剂量，疗效持续时间也很短，病人大部分时间处于无药性作用状态。而起搏器治疗主要目的是改善病人的无药性作用时的症状，大大提高生活质量，减少吃药剂量。因此，对中晚期病人而言最佳的治疗手段应是“一手拿着多巴胺药物，一手拿着脑起搏器”。...</summary>
<author>
<name>cyril</name>
<url>http://www.trucy.org/blog</url>
<email>zhangfh@gmail.com</email>
</author>
<dc:subject>帕金森病</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.trucy.org/blog/fanghong/">
<![CDATA[<p>　　东方网-文汇报   作者：胡小吾 <br />
　　http://health.xinmin.cn/jkzx/2012/04/28/14583595.html</p>

<p>　　帕金森病是中老年人的常见病，但由于帕金森的病因至今没有明确，所以治疗误区很多，不断有患者走弯路、吃错药。但是许多患者仍旧急功近利，大剂量不按规范的吃药，或者轻信他人进行不规范的手术，错失了最佳治疗导致他们生活质量急剧下降，从而造成极其恶劣的后果。其实，只要治疗方法合理，便可以取得长期满意的效果。</p>

<p>　　日前，由国内多位帕金森领域顶级专家共同参与编写的科普版《帕金森病治疗指南解读》正式出版。作为此书编写者之一，特摘取其中片段，希望能帮助更多人认识帕金森病，走出治疗误区，为健康赢得主动权。</p>

<p>　　怎样选择合理的正规治疗、少走弯路是医患间最关心的问题之一。从临床诊疗中发现，目前人们对于帕金森病治疗普遍存在的七大误区：</p>

<p>　　1、一发病就该吃药</p>

<p>　　帕金森病病人不是吃几个疗程药后症状缓解就可停服，而是如果一旦吃上，需要终生吃药。然而，需要提醒的是，药物治疗最有效的时间一般只有4～6年，随着吃药时间延长，疗效越来越低，剂量越来越大。长期吃药后会出现肢体不自主舞蹈样动作和药效作用来去无踪的副作用。因此，过早或过晚服用药物都是错误的，而应尽量推迟吃药时期，如果症状轻微，可以暂时不吃药，但如果症状明显，就应该及时吃药，以控制症状。</p>

<p>　　2、药物首选多巴胺制剂</p>

<p>　　有的病人一开始吃药就选择效果最明显的多巴胺制剂。但殊不知，该类药物效果明显，但可能让副作用提早出现。因此，对年龄较轻的早期病人，应选择多巴胺激动剂，该类药物虽然效果欠佳，副作用明显，但可推迟药物副作用出现；对年龄较大的早期病人，可应用多巴类药物。随着病情发展，需要的药物剂量越来越大，因此吃药需要做到“细水长流，不求全效”，即剂量尽可能小，长期规律地服用，能达到80%左右效果即可。</p>

<p>　　3、吃药无效方选择外科治疗</p>

<p>　　到中晚期，吃药效果不理想，即使药量加大，药物疗效也不满意，症状影响到工作和生活，或药物副作用较大，应考虑用外科治疗。在早期，症状较轻，吃药效果又好，不需要手术；在很晚期，即使手术，效果也不理想。因此，外科治疗通常在发病后5年进行，对以震颤为主要症状的病人因为震颤对外科治疗反应比较好，在发病3年后也可以进行手术。</p>

<p>　　4、毁损术应做双侧</p>

<p>　　帕金森病最早的外科治疗方法是毁损术，即通过射频热凝脑内异常兴奋神经核团，来消除帕金森病症状。平时我们听说的“细胞刀”就是这种方法。毁损术治疗较经济，如果做一边，可控制对侧肢体症状。但它是一种破坏性手术，约4%～10%病人术后出现脑出血、靶点偏差等并发症。毁损术一般只能做一侧，如果做双侧，并发症高达30%。因此，国外很少有人做毁损术，国内做这种手术的人数也在减少，但单侧毁损术还是比较适合由于经济原因不能进行脑起搏器治疗的单侧症状帕金森病病人。</p>

<p>　　5、脑起搏器装不得</p>

<p>　　脑起搏器是近40年来帕金森病治疗上的最大进展，是目前世界上最有效的外科治疗方法。手术在脑内神经核团植入电极，把脉冲发生器埋藏在胸部皮下，脉冲发生器发出电刺激，通过皮下导线，传到脑内电极，抑制不正常的神经放电，使其消除症状。目前全球有8～9万的帕金森病病人接受了脑起搏器治疗。国外治疗率达8%，而我国运用脑起搏器治疗仅为所有帕金森病人的0.125%。</p>

<p>　　6、定期更换电池需开颅</p>

<p>　　脑起搏器治疗不破坏脑组织，是一种可逆性的神经调节治疗，且不影响今后新的方法治疗，但是费用较高，起搏器电池耗完后（一般在6年左右）需要更换脉冲发生器。在更换脉冲发生器时，不需要对脑部进行任何手术，只要在胸口皮下组织取出电池更换新的仪器便可。据了解，长海医院是2000年在国内率先开展了脑起搏器治疗，目前上海也仅有长海和瑞金两家医院开展该项技术。</p>

<p>　　7、动了手术就无需吃药</p>

<p>　　吃药与外科手术治疗两者互不对立。吃药不是为了不手术，手术也并不为了不吃药。因为帕金森患者在中晚期，即使加大药物剂量，疗效持续时间也很短，病人大部分时间处于无药性作用状态。而起搏器治疗主要目的是改善病人的无药性作用时的症状，大大提高生活质量，减少吃药剂量。因此，对中晚期病人而言最佳的治疗手段应是“一手拿着多巴胺药物，一手拿着脑起搏器”。</p>]]>

</content>
</entry>

<entry>
<title>我的侏罗纪</title>
<link rel="alternate" type="text/html" href="http://donghao.org/2012/04/ioauai.html" />
<modified>2012-04-26T09:45:28Z</modified>
<issued>2012-04-26T08:04:12Z</issued>
<id>tag:donghao.org,2012://43.3668</id>
<created>2012-04-26T08:04:12Z</created>
<summary type="text/plain"><![CDATA[ &nbsp; &nbsp; &nbsp; 大概是我上小学一年级的事，那时候从遵义市中心去往火车站的那条“华南路”都还没修完，但是南段已经开了一些小店，周末一家人上街，我在其中一个小店发现了有恐龙的图册卖，便要求妈买一本，妈说这画的什么呀，一群黑绿黑绿的东西，丑死了，不给买，我当然就拿出小孩常用的一哭二闹的办法，但是可惜不好使，爸妈都比较反对买画的动物这么怪异的书，最后没买成。&nbsp; &nbsp; &nbsp; 小男孩（其实也不仅是小时候，大了有时候也是）喜欢恐龙尤其是霸王龙，这简直是世界性的规律（我是指通常，排除个别小男孩有别的嗜好），也许小雄性动物们心底深处都崇拜强大的力量，而还有什么比史前第一巨兽更能代表原始的力量呢？与霸王龙相比，现代的大象简直太渺小太温和太无趣了。&nbsp; &nbsp; &nbsp; 96年，中考结束，整整三个月的暑假，一天下午我打开电视看厂台，正好在放《侏罗纪公园》，虽然是下半部（厂台没有节目预告，你通常只能逮住半截电影），但足以令我印象深刻、至今难忘了。瞧这拍的多好！恐龙像活的一样，不像那些劣质电影，用蒙了皮的模型来充数。&nbsp; &nbsp; &nbsp; 我慢慢知道《侏罗纪公园》是小说改编的电影，原著的作者叫迈克尔.克莱顿（那时候我只认得他的中文翻译名），著名的“高科技文学”作家。于是我买了他写的《天外细菌》（那本书上写的作者是“米高基顿”，好港台的翻译），觉得情节环环相扣、引人入胜，真不错。&nbsp; &nbsp; &nbsp; 一眨眼97年的暑假，某天，我在西西弗书社看到一本《失落的世界》（这张照片就是我拍的，书珍藏至今），哟，又是迈克尔.克莱顿写的，《侏罗纪公园》的正宗续集，我犹豫了一圈最后决定买了，回家以后天天下午搬个凳子在门口（三楼过道的门口，采光好）看得不亦乐乎，这科幻小说比当时国内的好看多了，不含说教，又有最炫的时尚科技——浑沌理论加基因技术，真是太棒了。&nbsp; &nbsp; &nbsp; 暑假快结束的一天，无意中看到同学万小博拿着一张VCD，我看了一眼封面，毕竟是盗版啊，封面很模糊，但是上面画的恐龙依然非常吸引我，《失落的世界》，哟，都拍成电影了，不错，我于是借回家了。但是，我家那时候没有VCD机（实在是想看，所以没有VCD机也借了），于是跑到唐yan家去看。一个在电影院盗拍的盗版碟能有什么效果，当然是黑乎乎的，但是那些巨大的活灵活现的恐龙已经让我们很满意了。&nbsp; &nbsp; &nbsp; 我真是着迷这些黑绿色的巨兽。那段时间正是十七八岁，一部叫《花季雨季》的小说也很畅销，里面有一句”十六岁是花季，十七岁是雨季“，所以我当时经常对同学开玩笑说：“猜猜十八岁是什么季？——侏罗纪！”。&nbsp; &nbsp; &nbsp; 一眨眼就到今年了（十几年怎么过得这么快），其实想想，我还没完整的看过《侏罗纪公园》的电影呢，再想想，连原著小说我一点也没看过，于是搞来一本《Jurassic Park》小说，完整看了一遍。&nbsp;&nbsp; &nbsp; &nbsp; Michael Crichton （我现在知道他的英文名字了！）的想象力真是丰富，今天我们提基因技术可能都会被人说成“老土”，但是在1991年就能想到从琥珀里的远古时代的蚊子的肚子里提出恐龙的血，找出里面的DNA，复制出恐龙，难道不是异想天开吗？更绝的是，用这些“复活”的恐龙开一个公园，多么可爱的想法。还不止，公园开了，但是混沌理论又插了进来，在一个风雨交加的夜晚，游客停在了霸王龙展区边上，偏巧隔离电网停电了（真混沌），这个千万年前的顶级捕食者 T-rex，在黑夜中从牢笼里杀了出来......我只能说，真是太刺激了。&nbsp; &nbsp; &nbsp; 当我们还是小男孩的时候，多少次幻想过让巨大凶猛的恐龙突然出现在学校、道路、或者某栋楼的背后，想想都觉得酷。要知道，Michael Crichton写《Jurassic Park》的时候已经49岁，已然到了“知天命”之年，却还写出了这样一部小说，这是一个多么天真多么有想象力的作家啊！&nbsp; &nbsp; &nbsp;...]]></summary>
<author>
<name>donghao</name>
<url>http://donghao.org</url>
<email>hao.bigrat@gmail.com</email>
</author>
<dc:subject>书即面包</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://donghao.org/">
<![CDATA[<a href="http://book.douban.com/subject/1401686/"><img src="http://img3.douban.com/mpic/s4312328.jpg" style="float:right;padding:0 0 20px 20px;border:0" /></a>
<div>&nbsp; &nbsp; &nbsp; 大概是我上小学一年级的事，那时候从遵义市中心去往火车站的那条“华南路”都还没修完，但是南段已经开了一些小店，周末一家人上街，我在其中一个小店发现了有恐龙的图册卖，便要求妈买一本，妈说这画的什么呀，一群黑绿黑绿的东西，丑死了，不给买，我当然就拿出小孩常用的一哭二闹的办法，但是可惜不好使，爸妈都比较反对买画的动物这么怪异的书，最后没买成。</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 小男孩（其实也不仅是小时候，大了有时候也是）喜欢恐龙尤其是霸王龙，这简直是世界性的规律（我是指通常，排除个别小男孩有别的嗜好），也许小雄性动物们心底深处都崇拜强大的力量，而还有什么比史前第一巨兽更能代表原始的力量呢？与霸王龙相比，现代的大象简直太渺小太温和太无趣了。</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 96年，中考结束，整整三个月的暑假，一天下午我打开电视看厂台，正好在放<a href="http://movie.douban.com/subject/1292523/">《侏罗纪公园》</a>，虽然是下半部（厂台没有节目预告，你通常只能逮住半截电影），但足以令我印象深刻、至今难忘了。瞧这拍的多好！恐龙像活的一样，不像那些劣质电影，用蒙了皮的模型来充数。</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 我慢慢知道《侏罗纪公园》是小说改编的电影，原著的作者叫迈克尔.克莱顿（那时候我只认得他的中文翻译名），著名的“高科技文学”作家。于是我买了他写的<a href="http://book.douban.com/subject/2002486/">《天外细菌》</a>（那本书上写的作者是“米高基顿”，好港台的翻译），觉得情节环环相扣、引人入胜，真不错。</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 一眨眼97年的暑假，某天，我在西西弗书社看到一本<a href="http://img1.douban.com/lpic/s3598633.jpg">《失落的世界》</a>（这张照片就是我拍的，书珍藏至今），哟，又是迈克尔.克莱顿写的，《侏罗纪公园》的正宗续集，我犹豫了一圈最后决定买了，回家以后天天下午搬个凳子在门口（三楼过道的门口，采光好）看得不亦乐乎，这科幻小说比当时国内的好看多了，不含说教，又有最炫的时尚科技——浑沌理论加基因技术，真是太棒了。</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 暑假快结束的一天，无意中看到同学万小博拿着一张VCD，我看了一眼封面，毕竟是盗版啊，封面很模糊，但是上面画的恐龙依然非常吸引我，《失落的世界》，哟，都拍成电影了，不错，我于是借回家了。但是，我家那时候没有VCD机（实在是想看，所以没有VCD机也借了），于是跑到唐yan家去看。一个在电影院盗拍的盗版碟能有什么效果，当然是黑乎乎的，但是那些巨大的活灵活现的恐龙已经让我们很满意了。</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 我真是着迷这些黑绿色的巨兽。那段时间正是十七八岁，一部叫<a href="http://book.douban.com/subject/1087758/">《花季雨季》</a>的小说也很畅销，里面有一句”十六岁是花季，十七岁是雨季“，所以我当时经常对同学开玩笑说：“猜猜十八岁是什么季？——侏罗纪！”。</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 一眨眼就到今年了（十几年怎么过得这么快），其实想想，我还没完整的看过《侏罗纪公园》的电影呢，再想想，连原著小说我一点也没看过，于是搞来一本《Jurassic Park》小说，完整看了一遍。&nbsp;</div><div>&nbsp; &nbsp; &nbsp; Michael Crichton （我现在知道他的英文名字了！）的想象力真是丰富，今天我们提基因技术可能都会被人说成“老土”，但是在1991年就能想到从琥珀里的远古时代的蚊子的肚子里提出恐龙的血，找出里面的DNA，复制出恐龙，难道不是异想天开吗？更绝的是，用这些“复活”的恐龙开一个公园，多么可爱的想法。还不止，公园开了，但是混沌理论又插了进来，在一个风雨交加的夜晚，游客停在了霸王龙展区边上，偏巧隔离电网停电了（真混沌），这个千万年前的顶级捕食者 T-rex，在黑夜中从牢笼里杀了出来......我只能说，真是太刺激了。</div><div>&nbsp; &nbsp; &nbsp; 当我们还是小男孩的时候，多少次幻想过让巨大凶猛的恐龙突然出现在学校、道路、或者某栋楼的背后，想想都觉得酷。要知道，Michael Crichton写<a href="http://book.douban.com/subject/1401686/">《Jurassic Park》</a>的时候已经49岁，已然到了“知天命”之年，却还写出了这样一部小说，这是一个多么天真多么有想象力的作家啊！</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; 看完《Jurassic Park》原著，我忍不住去找找Michael Crichton写的其它书，顺带看了一眼他的介绍——啊，他已经于2008年去世了......噢，2008年，柏杨去世了，索尔仁尼琴去世了。我沿着恐龙的足迹，从侏罗纪一直穿越到现在，2012年，才发现，<a href="http://en.wikipedia.org/wiki/Michael_Crichton">Michael Crichton</a>早已去世了。</div><div>&nbsp; &nbsp; &nbsp; 唉，太可惜了，以后谁来写这么充满孩子气这么精彩的科幻小说呢？</div><div><br /></div> ]]>

</content>
</entry>

<entry>
<title>办公室里</title>
<link rel="alternate" type="text/html" href="http://donghao.org/2012/04/ieoai.html" />
<modified>2012-04-13T03:47:57Z</modified>
<issued>2012-04-13T03:41:17Z</issued>
<id>tag:donghao.org,2012://43.3667</id>
<created>2012-04-13T03:41:17Z</created>
<summary type="text/plain"><![CDATA[教主在吃苹果。文弟： 教主又在很惬意的吃苹果呢教主： 嗯文弟： 每天都“自食其果”呢教主： 。。。。文弟： （跑到一边）我没苹果吃，我吃美国大杏仁我： &nbsp; &nbsp;你是“仁者得仁”文弟： 嗯，这比“自食其果”好多了我： &nbsp; &nbsp;你也是“不成功，便成仁”文弟： 。。。。木名： 参加IDF只要报名就行吗？文弟： 不，要买门票的，据说挺贵我： &nbsp; &nbsp;嗯，上次还给我发了个邮件，说是优惠价，400元文弟： 400元！太贵了。。。。都可以去吃4次”松子“了我： &nbsp; &nbsp;唉，自从coly带着大家吃了几次松子，”吃松子“就变成一种硬通货了...]]></summary>
<author>
<name>donghao</name>
<url>http://donghao.org</url>
<email>hao.bigrat@gmail.com</email>
</author>
<dc:subject>对话收录</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://donghao.org/">
<![CDATA[<div><a href="http://weibo.com/u/1234097743">教主</a>在吃苹果。</div><div><a href="http://weibo.com/u/1821800115">文弟</a>： 教主又在很惬意的吃苹果呢</div><div>教主： 嗯</div><div>文弟： 每天都“自食其果”呢</div><div>教主： 。。。。</div><div>文弟： （跑到一边）我没苹果吃，我吃美国大杏仁</div><div>我： &nbsp; &nbsp;你是“仁者得仁”</div><div>文弟： 嗯，这比“自食其果”好多了</div><div>我： &nbsp; &nbsp;你也是“不成功，便成仁”</div><div>文弟： 。。。。</div><div><br /></div><div><br /></div><div>木名： 参加IDF只要报名就行吗？</div><div>文弟： 不，要买门票的，据说挺贵</div><div>我： &nbsp; &nbsp;嗯，上次还给我发了个邮件，说是优惠价，400元</div><div>文弟： 400元！太贵了。。。。都可以去吃4次”<a href="http://www.dianping.com/shop/1891015">松子</a>“了</div><div>我： &nbsp; &nbsp;唉，自从<a href="http://weibo.com/colyli">coly</a>带着大家吃了几次松子，”吃松子“就变成一种硬通货了</div><div><br /></div> ]]>

</content>
</entry>

<entry>
<title>产品形态模式之间的关系</title>
<link rel="alternate" type="text/html" href="http://www.trucy.org/blog/lazet/archives/003665.html" />
<modified>2012-04-11T01:32:06Z</modified>
<issued>2012-03-16T05:46:36Z</issued>
<id>tag:www.trucy.org,2012:/blog/lazet//9.3665</id>
<created>2012-03-16T05:46:36Z</created>
<summary type="text/plain">产品形态模式有B2C，C2C，B2B，B2B2C，SAAS，还有O2O。 在不发明新概念的前提下，该如何归类现有产品呢？以下是一种划分： 京东、卓越、当当、美团、拉手、大众点评、百度、天猫（淘宝商城）等应视为B2C的，因其直接面向普通消费者。 搜狐、新浪、网易等媒体网站也应视为B2C。 蘑菇街、去哪儿也应视为B2C模式。 阿里巴巴，中国化工网，伟库网，友商网，SalesForce等应视为B2B的，因其面向特殊商业人群。后三个也属于SAAS。 淘宝则应视为B2B2C而不是C2C，因它提供了一个商家和消费者互动的平台。 QQ、人人、微博、邮箱应视为C2C的，而QQ商城是B2C的。 拉卡拉、携程、美团、拉手、点评等都应算是O2O形态。 划分的目的是为了明晰产品的主要运营模式，防止犯错（不能让运营模式太过复杂），本身并无建设性。...</summary>
<author>
<name>lazet</name>


</author>
<dc:subject>思考与逻辑</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.trucy.org/blog/lazet/">
<![CDATA[<p>产品形态模式有B2C，C2C，B2B，B2B2C，SAAS，还有O2O。<br />
在不发明新概念的前提下，该如何归类现有产品呢？以下是一种划分：</p>

<p>京东、卓越、当当、美团、拉手、大众点评、百度、天猫（淘宝商城）等应视为B2C的，因其直接面向普通消费者。<br />
搜狐、新浪、网易等媒体网站也应视为B2C。<br />
蘑菇街、去哪儿也应视为B2C模式。</p>

<p>阿里巴巴，中国化工网，伟库网，友商网，SalesForce等应视为B2B的，因其面向特殊商业人群。后三个也属于SAAS。</p>

<p>淘宝则应视为B2B2C而不是C2C，因它提供了一个商家和消费者互动的平台。</p>

<p>QQ、人人、微博、邮箱应视为C2C的，而QQ商城是B2C的。</p>

<p>拉卡拉、携程、美团、拉手、点评等都应算是O2O形态。</p>

<p>划分的目的是为了明晰产品的主要运营模式，防止犯错（不能让运营模式太过复杂），本身并无建设性。</p>]]>

</content>
</entry>

<entry>
<title>Lcf-android 开源项目介绍</title>
<link rel="alternate" type="text/html" href="http://www.trucy.org/blog/lazet/archives/003664.html" />
<modified>2012-03-05T06:52:52Z</modified>
<issued>2012-03-03T13:50:19Z</issued>
<id>tag:www.trucy.org,2012:/blog/lazet//9.3664</id>
<created>2012-03-03T13:50:19Z</created>
<summary type="text/plain">Lcf 是一个在android平台上以RoboGuice2.0为基础，提供事件发布/订阅能力的代码框架。 它提供了一个通用的事件Event定义（ 类似于Intent,Intent太重了，不适合程序内部使用），支持通过标注（Annotation)注册事件监听，支持标准的事件订阅/发布模式。 它简化了UI线程和Background线程之间通讯的复杂模式（Handler，InnerClass），可以让程序仅使用一行标注（Annotation）达到原来需要写多个内部类采用完成的工作。 它提供了一个基础的Http form 模式的异步事件通讯框架，可以很方便的简化相应开发。能良好支持各种语言如PHP的服务器。后台服务特别推荐使用rest 模式的spring mvc搭建，数据结果推荐采用JSON格式。 Lcf使用指南： Lcf Usage Guide Lcf 发布库：（依赖的jar包，可以查看pom.xml,通过maven下载即可） Lcf jar Lcf源代码： Lcf souce code...</summary>
<author>
<name>lazet</name>


</author>
<dc:subject>设计与开发</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.trucy.org/blog/lazet/">
<![CDATA[<p>Lcf 是一个在android平台上以RoboGuice2.0为基础，提供事件发布/订阅能力的代码框架。</p>

<p>它提供了一个通用的事件Event定义（ 类似于Intent,Intent太重了，不适合程序内部使用），支持通过标注（Annotation)注册事件监听，支持标准的事件订阅/发布模式。</p>

<p>它简化了UI线程和Background线程之间通讯的复杂模式（Handler，InnerClass），可以让程序仅使用一行标注（Annotation）达到原来需要写多个内部类采用完成的工作。</p>

<p>它提供了一个基础的Http form 模式的异步事件通讯框架，可以很方便的简化相应开发。能良好支持各种语言如PHP的服务器。后台服务特别推荐使用rest 模式的spring mvc搭建，数据结果推荐采用JSON格式。</p>

<p>Lcf使用指南：<br />
<a href="https://github.com/lazet/lcf-android/blob/master/readme">Lcf Usage Guide</a></p>

<p>Lcf 发布库：（依赖的jar包，可以查看pom.xml,通过maven下载即可）<br />
<a href="http://search.maven.org/#search|ga|1|lcf">Lcf jar</a></p>

<p>Lcf源代码：<br />
<a href="https://github.com/lazet/lcf-android">Lcf souce code</a></p>]]>

</content>
</entry>

<entry>
<title>写mmap内存变慢的原因</title>
<link rel="alternate" type="text/html" href="http://donghao.org/2012/02/mmapauaeaayaooo.html" />
<modified>2012-03-01T03:29:36Z</modified>
<issued>2012-02-27T08:17:41Z</issued>
<id>tag:donghao.org,2012://43.3663</id>
<created>2012-02-27T08:17:41Z</created>
<summary type="text/plain"><![CDATA[有很多系统读写大文件时用的是这个办法：将大文件mmap到内存，然后直接对内存读写。这样就化read/write为memcpy操作，代码开发上很简便。被修改的内存页由kernel负责挑个时间写入硬盘，程序员不用操心。但是，最近一些使用了taobao kernel（基于redhat6-2.6.32）的机器，上面那些使用mmap的应用变慢了。我们上线查看，才发现mmap文件里有很多脏页，kernel的writeback机制就不停的将这些脏页写往硬盘，结果造成了大量的io（从iostat看，除了几秒的间歇，io util几乎保持在100%），而如果换回2.6.18内核，就没有这个问题（io util不超过20%，而且很稀疏）。为了简化应用模型，我们做了一个mmap_press程序模拟应用的写操作，内容很简单，就是mmap一块256MB的内存，然后在256MB的范围内随机的写,一次写8个字节，一共写25亿次，在rhel5（kernel-2.6.18）上，这个程序运行只需要374秒，而在我们的内核上，则要805秒才能完成，慢了两倍多。再换upstream的内核，一样慢，这个问题应该是一直有的。看来自从writeback改成per bdi的以后，脏页写回的力度是大大加强了。加强是有原因的：越快写回脏页，页面新数据丢失的肯能就越少。但问题是，现在writeback的太频繁了，结果消耗了大量io，拖慢了应用。能不能找个办法通知writeback子系统，让它每隔60秒或两分钟才开始写脏页，这样至少很多相邻的脏页能被合并成一次io，可以变大量小io为几个大io，速度会快很多。于是我们找到了这个参数 /proc/sys/vm/dirty_expire_centisecs ，默认值是3000，即30秒，也就是说，脏页要过了30秒才会被写往硬盘....等一等，这和我们观察到的完全不一样啊！？我们从iostat看到的是io util一直保持在100%，只有几秒的停歇，几秒啊，不是30秒。多猜无益，writeback子系统可是相当大的一块，于是我们联系了Intel的吴峰光，他第二天就给出了两个patch，我们将其移植到2.6.32内核后（1，2），效果很明显，writeback不再是不停的制造io，而是5～6秒的集中io以后，就停下来大约30秒（这次符合dirty_expire_centisecs参数的默认值了），然后再开始5～6秒的集中io，如此循环。我们重新跑mmap_press程序，耗费时间是390秒，已经非常接近2.6.18的速度了。感谢吴峰光同学的帮助。大概看了一下吴峰光patch的注释：之前writeback在回写完一个文件后，会从头再查找一遍脏页，如果有脏页则继续回写；现在改成，回写到文件尾后，直接停下来，直到脏页expire（也就是30秒后了）再开始从头检查脏页并回写（这是我对patch的解释，肯定有纰漏之处，有兴趣的同学还是直接看一下patch）。原来如此，咱们的mmap操作有大量的随机写，产生了大量分散的脏页，writeback每次从头检查文件都发现脏页，结果每次都要从头开始回写，就这么不停的转着圈的回写，造成io几乎一直保持在100%。但我还是有一个疑问：应用写内存只是一个内存操作，writeback写脏页只是一个硬盘操作，为什么硬盘操作会拖慢内存操作呢？最后万能的马涛同学给出了答案：应用对页面的写会触发内核的page_mkwrite操作，这个操作里面是会lock_page的，如果page正在被写往硬盘，那这时候它已经被writeback给lock了，page_mkwrite的lock_page会被阻塞，结果应用写内存的操作就顿住了，所以，越是频繁的writeback，越是会拖慢应用对mmap内存的写操作。=== 2012.2.29 ===Bergwolf:nitpicky一下：） writeback的时候page只是会被mark成PG_WRITEBACK，而不是被lock住。所以page_mkwrite的等待很可能是在wait_for_page_writeback上而不是lock_page上。RobinDong:&nbsp;我看了一下upstream的代码，以ext4文件系统的mmap为例，writeback时，write_cache_pages里先lock_page(mm/page-writeback.c 2241行)，再调用ext4_writepage来写单个页面，ext4_writepage里调用block_write_full_page来把页面mark成PG_WRITEBACK。我这里看来，是先lock后mark。另外，在我们这边的2.6.32老内核里，__block_page_mkwrite里没有调用wait_on_page_writeback，这个是去年五月份才加进去的。所以，2.6.32 mmap变慢的原因应该还是lock_page的争抢。Bergwolf:page_mkwirte应该只在page第一次被写的时候调用，线上应用的page应该都是在内存中了，为什么你们认为page_mkwrite和writeback有竞争呢？你的测试代码是新建一个sparse文件，有试过对一个已经在内存中的dense文件测试吗？RobinDong:我们用的就是已经在内存中的dense文件，之前我也以为只有page第一次进入内存时才有do_page_fault才有page_mkwrite，但是马涛哥颠覆了我的世界观——writeback完成后的page，在被写的时候就会调用page_mkwrite——代码路径我们今早也找到了。在write_cache_pages里，lock_page以后会调用clear_page_dirty_for_io(page)，然后一路--&gt; clear_page_dirty_for_io(page) --&gt; page_mkclean(page) --&gt; page_mkclean_file(page) --&gt; page_mkclean_one(page)下来，一直到page_mkclean_one(page),里面会做pte_wrprotect(entry)，也就是把pte置为“写保护”，这样做是故意的，当应用写这个page时，就会因为碰了“写保护”页面而触发do_page_fault，即使这个page已经是在内存中了。--&gt;do_page_fault --&gt; handle_mm_fault --&gt; handle_pte_faulthandle_pte_fault这段代码：&nbsp; &nbsp; &nbsp; &nbsp; if (flags &amp; FAULT_FLAG_WRITE) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if...]]></summary>
<author>
<name>donghao</name>
<url>http://donghao.org</url>
<email>hao.bigrat@gmail.com</email>
</author>
<dc:subject>操作系统</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://donghao.org/">
<![CDATA[<div>有很多系统读写大文件时用的是这个办法：将大文件mmap到内存，然后直接对内存读写。这样就化read/write为memcpy操作，代码开发上很简便。被修改的内存页由kernel负责挑个时间写入硬盘，程序员不用操心。</div><div><br /></div><div>但是，最近一些使用了<a href="http://git.corp.taobao.com/cgit/cgit.cgi/taobao-kernel.git/">taobao kernel</a>（基于redhat6-2.6.32）的机器，上面那些使用mmap的应用变慢了。我们上线查看，才发现mmap文件里有很多脏页，kernel的writeback机制就不停的将这些脏页写往硬盘，结果造成了大量的io（从iostat看，除了几秒的间歇，io util几乎保持在100%），而如果换回2.6.18内核，就没有这个问题（io util不超过20%，而且很稀疏）。</div><div><br /></div><div>为了简化应用模型，我们做了一个<a href="http://code.taobao.org/p/dirbench/src/trunk/mmap_test/mmap_press.c">mmap_press</a>程序模拟应用的写操作，内容很简单，就是mmap一块256MB的内存，然后在256MB的范围内随机的写,一次写8个字节，一共写25亿次，在rhel5（kernel-2.6.18）上，这个程序运行只需要374秒，而在我们的内核上，则要805秒才能完成，慢了两倍多。再换upstream的内核，一样慢，这个问题应该是一直有的。</div><div><br /></div><div>看来自从<a href="http://lwn.net/Articles/354851/">writeback改成per bdi</a>的以后，脏页写回的力度是大大加强了。加强是有原因的：越快写回脏页，页面新数据丢失的肯能就越少。但问题是，现在writeback的太频繁了，结果消耗了大量io，拖慢了应用。</div><div><br /></div><div>能不能找个办法通知writeback子系统，让它每隔60秒或两分钟才开始写脏页，这样至少很多相邻的脏页能被合并成一次io，可以变大量小io为几个大io，速度会快很多。于是我们找到了这个参数 /proc/sys/vm/dirty_expire_centisecs ，默认值是3000，即30秒，也就是说，脏页要过了30秒才会被写往硬盘....等一等，这和我们观察到的完全不一样啊！？我们从iostat看到的是io util一直保持在100%，只有几秒的停歇，几秒啊，不是30秒。</div><div><br /></div><div>多猜无益，writeback子系统可是相当大的一块，于是我们联系了Intel的<a href="http://sd.csdn.net/a/20111016/305846.html">吴峰光</a>，他第二天就给出了两个patch，我们将其移植到2.6.32内核后（<a href="http://donghao.org/src/writeback-improve-001-stop-on-wrap-linux_mm_page-writeback.patch.txt">1</a>，<a href="http://donghao.org/src/writeback-improve-002-relax-busy-overwrites.patch.txt">2</a>），效果很明显，writeback不再是不停的制造io，而是5～6秒的集中io以后，就停下来大约30秒（这次符合dirty_expire_centisecs参数的默认值了），然后再开始5～6秒的集中io，如此循环。我们重新跑mmap_press程序，耗费时间是390秒，已经非常接近2.6.18的速度了。</div><div><br /></div><div>感谢吴峰光同学的帮助。</div><div><br /></div><div>大概看了一下吴峰光patch的注释：之前writeback在回写完一个文件后，会从头再查找一遍脏页，如果有脏页则继续回写；现在改成，回写到文件尾后，直接停下来，直到脏页expire（也就是30秒后了）再开始从头检查脏页并回写（这是我对patch的解释，肯定有纰漏之处，有兴趣的同学还是直接看一下patch）。原来如此，咱们的mmap操作有大量的随机写，产生了大量分散的脏页，writeback每次从头检查文件都发现脏页，结果每次都要从头开始回写，就这么不停的转着圈的回写，造成io几乎一直保持在100%。</div><div><br /></div><div>但我还是有一个疑问：应用写内存只是一个内存操作，writeback写脏页只是一个硬盘操作，为什么硬盘操作会拖慢内存操作呢？最后万能的<a href="http://weibo.com/pagefault">马涛</a>同学给出了答案：应用对页面的写会触发内核的page_mkwrite操作，这个操作里面是会lock_page的，如果page正在被写往硬盘，那这时候它已经被writeback给lock了，page_mkwrite的lock_page会被阻塞，结果应用写内存的操作就顿住了，所以，越是频繁的writeback，越是会拖慢应用对mmap内存的写操作。</div><div><br /></div><div><br /></div><div>=== 2012.2.29 ===</div><div><br /></div><div><div>Bergwolf:</div><div>nitpicky一下：） writeback的时候page只是会被mark成PG_WRITEBACK，而不是被lock住。所以page_mkwrite的等待很可能是在wait_for_page_writeback上而不是lock_page上。</div><div><br /></div><div>RobinDong:&nbsp;</div><div>我看了一下upstream的代码，以ext4文件系统的mmap为例，writeback时，write_cache_pages里先lock_page(mm/page-writeback.c 2241行)，再调用ext4_writepage来写单个页面，ext4_writepage里调用block_write_full_page来把页面mark成PG_WRITEBACK。我这里看来，是先lock后mark。</div><div>另外，在我们这边的2.6.32老内核里，__block_page_mkwrite里没有调用wait_on_page_writeback，这个是<a href="http://git390.marist.edu/cgi-bin/gitweb.cgi?p=linux-2.6.git;a=commit;h=d76ee18a8551e33ad7dbd55cac38bc7b094f3abb">去年五月份才加进去的</a>。所以，2.6.32 mmap变慢的原因应该还是lock_page的争抢。</div></div><div><br /></div><div><div>Bergwolf:</div><div>page_mkwirte应该只在page第一次被写的时候调用，线上应用的page应该都是在内存中了，为什么你们认为page_mkwrite和writeback有竞争呢？你的测试代码是新建一个sparse文件，有试过对一个已经在内存中的dense文件测试吗？</div><div><br /></div><div>RobinDong:</div><div>我们用的就是已经在内存中的dense文件，之前我也以为只有page第一次进入内存时才有do_page_fault才有page_mkwrite，但是<a href="http://weibo.com/pagefault">马涛</a>哥颠覆了我的世界观——writeback完成后的page，在被写的时候就会调用page_mkwrite——代码路径我们今早也找到了。</div><div>在write_cache_pages里，lock_page以后会调用clear_page_dirty_for_io(page)，然后一路</div><div><br /></div><div>--&gt; clear_page_dirty_for_io(page)</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>--&gt; page_mkclean(page)</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>--&gt; page_mkclean_file(page)</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>--&gt; page_mkclean_one(page)</div><div><br /></div><div>下来，一直到page_mkclean_one(page),里面会做pte_wrprotect(entry)，也就是把pte置为“写保护”，这样做是故意的，当应用写这个page时，就会因为碰了“写保护”页面而触发do_page_fault，即使这个page已经是在内存中了。</div><div><br /></div><div>--&gt;do_page_fault</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>--&gt; handle_mm_fault</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>--&gt; handle_pte_fault</div><div><br /></div><div>handle_pte_fault这段代码：</div><div><br /></div><div>&nbsp; &nbsp; &nbsp; &nbsp; if (flags &amp; FAULT_FLAG_WRITE) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!pte_write(entry))</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return do_wp_page(mm, vma, address,</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pte, pmd, ptl, entry);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; entry = pte_mkdirty(entry);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div><br /></div><div>如果用户是在尝试写页面（FAULT_FLAG_WRITE），且pte是写保护的（!pte_write(entry)），那么就调用do_wp_page，而do_wp_page里面对可写且共享的vma里的page，会依次调用page_mkwrite。</div></div><div><br /></div> ]]>

</content>
</entry>

<entry>
<title>ext4 bigalloc + inline_data的fsck速度</title>
<link rel="alternate" type="text/html" href="http://donghao.org/2012/02/ext4-bigalloc-inline-dataafsck.html" />
<modified>2012-02-24T09:02:31Z</modified>
<issued>2012-02-24T08:46:48Z</issued>
<id>tag:donghao.org,2012://43.3662</id>
<created>2012-02-24T08:46:48Z</created>
<summary type="text/plain"><![CDATA[先前我以为对文件系统来说，读写文件时跑得快才是关键，mkfs和fsck的速度不用操心。直到几天前，线上的运维同学反映：集群里某台（或者悲剧一点，某几台）机器如果宕机了，如果不能迅速重启，可能会对其它服务器带来额外的压力，因为外部流量还在，而“重启”过程包括了对突然断电的磁盘做fsck，所以，fsck的速度也很重要。于是我找了个台式机（没办法，我们组的开发机服务器没有上T的硬盘），上面配了coly (@淘伯松)自己买的 2T 硬盘，测了一下ext4如果带上 nojournal + bigalloc + inline_data 后fsck的速度。硬盘： 希捷Barracuda LP 2TB 5900转 32MB（ST32000542AS）CPU: &nbsp;Core 2 Duo E8400 3.00GHz 1333MHz FSB (2 cores)内存： 2GB 800MHz DDR2mkfs命令：mke2fs -m 0 -C $CLUSTER_SIZE -I 4096 -O ^has_journal,^resize_inode,^uninit_bg,extent,meta_bg,flex_bg,bigalloc,inline_data $DEVICE用工具 dir_tree&nbsp;程序创建树状目录结构和文件：./dir_tree -m /test/ -d...]]></summary>
<author>
<name>donghao</name>
<url>http://donghao.org</url>
<email>hao.bigrat@gmail.com</email>
</author>
<dc:subject>操作系统</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://donghao.org/">
<![CDATA[<div>先前我以为对文件系统来说，读写文件时跑得快才是关键，mkfs和fsck的速度不用操心。直到几天前，线上的运维同学反映：集群里某台（或者悲剧一点，某几台）机器如果宕机了，如果不能迅速重启，可能会对其它服务器带来额外的压力，因为外部流量还在，而“重启”过程包括了对突然断电的磁盘做fsck，所以，fsck的速度也很重要。</div><div><br /></div><div>于是我找了个台式机（没办法，我们组的开发机服务器没有上T的硬盘），上面配了coly (<a href="http://weibo.com/colyli">@淘伯松</a>)自己买的 2T 硬盘，测了一下ext4如果带上 <a href="http://thread.gmane.org/gmane.comp.file-systems.ext4/10818">nojournal</a> + <a href="http://lwn.net/Articles/469805/">bigalloc + inline_data</a> 后fsck的速度。</div><div><br /></div><div>硬盘： 希捷Barracuda LP 2TB 5900转 32MB（ST32000542AS）</div><div>CPU: &nbsp;Core 2 Duo E8400 3.00GHz 1333MHz FSB (2 cores)</div><div>内存： 2GB 800MHz DDR2</div><div>mkfs命令：mke2fs -m 0 -C $CLUSTER_SIZE -I 4096 -O ^has_journal,^resize_inode,^uninit_bg,extent,meta_bg,flex_bg,bigalloc,inline_data $DEVICE</div><div><br /></div><div>用工具 <a href="http://code.taobao.org/p/dirbench/src/trunk/mmap_test/mmap_press.c">dir_tree</a>&nbsp;程序创建树状目录结构和文件：</div><div><br /></div><div>./dir_tree -m /test/ -d 7 -l 4 -n 5 -f 5 -S 64m -s 24576 -t cd</div><div>./dir_tree -m /test/ -d 7 -l 4 -n 5 -f 5 -S 64m -s 24576 -t cf</div><div><br /></div><div>7个总目录，4层目录结构，每个目录下有5个子目录，每个文件64MB（这是某种程度上模仿hadoop的线上环境），总共5470个目录，21875个文件，大约占掉1.4T空间</div><div><br /></div><div>用不同的cluster size来分别格盘并创建文件，看fsck -f运行的时间。测试结果如下：</div><div><br /></div><div>cluster size (KB)<span class="Apple-tab-span" style="white-space:pre">	</span>NR of inode (inode table)<span class="Apple-tab-span" style="white-space:pre">	</span>time (seconds)</div><div>4<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;122093568<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;5484</div><div>64<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;30517408<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;1366</div><div>128<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;15258704<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;682</div><div>256<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;7629352<span class="Apple-tab-span" style="white-space:pre">				</span>339</div><div>512<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;3815136<span class="Apple-tab-span" style="white-space:pre">				</span>168</div><div>1024<span class="Apple-tab-span" style="white-space:pre">			</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;1907352<span class="Apple-tab-span" style="white-space:pre">				</span>84</div><div><br /></div><div>中间这一列“NR of inode“就是mkfs完成后默认的总inode数，反映了inode table的大小。</div><div><br /></div><div>从测试结果看，随着cluster size越来越大，fsck的速度越来越快。原因是大cluster占用的元数据更少——更少的block group，更少的inode table。</div><div>普通的ext4（就是不带bigalloc+inline_data）要90多分钟，而如果用1MB大小的cluster（bigalloc），则不到2分钟就检查结束了。</div><div><br /></div> ]]>

</content>
</entry>

<entry>
<title>用敬畏改变我们的工作环境</title>
<link rel="alternate" type="text/html" href="http://www.trucy.org/blog/lazet/archives/003661.html" />
<modified>2012-04-02T02:02:54Z</modified>
<issued>2012-02-22T06:47:30Z</issued>
<id>tag:www.trucy.org,2012:/blog/lazet//9.3661</id>
<created>2012-02-22T06:47:30Z</created>
<summary type="text/plain">一些团队的工作方式：master/slave模式，也即独裁模式。 一些文明团队的工作方式：委员会模式，也为民主模式。 一些大的公司采用组合模式：高层用委员会模式，中低层用master/slave模式。 是否存在一些更加积极的工作方式：一种以敬畏为基础的工作方式？ 特征描述： 1，尊重人权、以承诺/一致为协作的主要方式。 2，公开明确权力分配规则，敬畏并遵守游戏规则。 3，对业务领域（不是上司领导、不是客户），以敬畏未知、探索未知的精神谦虚对待。 4，对合作结果保持惊喜的心态...</summary>
<author>
<name>lazet</name>


</author>
<dc:subject>思考与逻辑</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.trucy.org/blog/lazet/">
<![CDATA[<p>一些团队的工作方式：master/slave模式，也即独裁模式。<br />
一些文明团队的工作方式：委员会模式，也为民主模式。<br />
一些大的公司采用组合模式：高层用委员会模式，中低层用master/slave模式。</p>

<p>是否存在一些更加积极的工作方式：一种以敬畏为基础的工作方式？<br />
特征描述：<br />
1，尊重人权、以承诺/一致为协作的主要方式。<br />
2，公开明确权力分配规则，敬畏并遵守游戏规则。<br />
3，对业务领域（不是上司领导、不是客户），以敬畏未知、探索未知的精神谦虚对待。<br />
4，对合作结果保持惊喜的心态</p>]]>

</content>
</entry>

<entry>
<title>从“快照”到overlay filesystem</title>
<link rel="alternate" type="text/html" href="http://donghao.org/2012/02/oioooverlay-filesystem.html" />
<modified>2012-02-10T05:55:07Z</modified>
<issued>2012-02-10T05:42:42Z</issued>
<id>tag:donghao.org,2012://43.3660</id>
<created>2012-02-10T05:42:42Z</created>
<summary type="text/plain"><![CDATA[需求大概是这样：在一个linux系统上，想跑多个不同应用，这些应用由不同的运维来操作，为了避免互相干扰，希望运维只能看见自己的文件，而看不见别的应用的文件信息。一个常用解决办法就是干脆装多个虚拟机，但是，虚拟机对我们来说偏“重”，比如，多个应用公用的一些动态链接库（比如 libc.so）和配置文件（比如 hosts.conf）就复制了多份，如果原先一个系统在运行时系统文件占了500M的cache，那么现在装了4台虚拟机，就有2G的cache被重复占用了。怎样才能让系统文件只占一份cache呢？我们首先想到这么个主意：把linux系统装到ext4上，然后做4个snapshot（"快照“），这4个snapshot分别mount到4个目录，4个运维chroot到这4个目录里，然后就自己干自己的，干扰不到别人的文件。由于ext4 snapshot的实现机制是让同一个物理block被映射到不同的文件系统里，所以我们觉得，这一个4k的物理block应该就只占4k的cache。（也许有人要说，这么费劲干嘛，直接把系统常用的动态链接库做4个软链接出来，给4个运维用不就行了？这样做有两个问题，第一，动态链接库以及各种系统文件很多，不可能一一做软链接；第二，也是关键的一点，如果其中一位运维错误操作，例如覆盖写了某个系统文件，那么其他的运维就歇菜了，因为软链接实际指向的是同一个实际文件。）于是开始考察ext4的snapshot。ext4目前是没有snapshot功能的，但是Amir Goldstein已经开发好了对应的patch（https://github.com/amir73il/ext4-snapshots/），但是目前还没有被收入mainline。粗略看了一下，Amir的patch目前只支持readonly的snapshot，于是我发邮件问“如果改成writable snapshot，代码量大不大？“，Amir回帖表示代码量不大；另外还有别人回帖，推荐不用ext4而是用device mapper提供的thin provision的internal snapshot（http://kernelnewbies.org/Linux_3.2 ，http://lwn.net/Articles/465740/），这样就不用依赖于某一个文件系统（就是如果咱们以后不用ext4了，也可以继续做snapshot）。鉴于ext4 snapshot不支持writable snapshot，且有7000行的改动之多，且目前都没有进mainline的计划，而device mapper的thin provision已经进了3.2 kernel，且只有5000行改动，且支持writable snapshot，所以。。。转而又考察thin provision。考察基本顺利，做snapshot没有问题，snapshot写入没问题，最后chroot然后编译kernel测试速度也没问题，但是，最后发现一个郁闷的事情：这些snapshot被mount以后，公用的文件在不同的文件系统里各自都要占一份cache，也就是说，明明是一个4k物理block，mount到4个不同的文件系统，就占4 x 4k的内存cache了！难道是device mapper的问题？于是再试了一下ext4的snapshot，甚至btrfs的snapshot，都一样！这就是vfs的特性：只要是inode不同，即使这些inode指向的是同一个物理block，那么它们的cache都是各自独有的，不共享。我把这个事儿告诉了coly（@淘伯松）coly: （石化片刻）唉，我们之前想漏了，snapshot根本不能解决这个问题。。。太郁闷了，测了快两周才发现我： 想开一点吧，还好是测出来的，而不是上线了才发现——到时候运维找过来“你们的这个方案好像不省内存啊”，然后还得解释，还得回滚，就更被动更狼狈了coly： 噢，你这样一说，我舒坦多了最后还是马涛同学（@淘伯瑜）给出了一个方案——overlay fs（http://ovlfs.sourceforge.net/），能把两个目录（甭管是什么文件系统的两个目录，是目录就行）“叠合”成一个文件系统，而这个新文件系统的inode其实还是原来目录里的那个，但是视图已经是“叠合”后的了。比如，有两个目录，其中一个目录dir1有两个文件，是：./ab &nbsp;(ino:14)./cd &nbsp;(ino:16)另一个目录dir2有三个文件，是：./apple &nbsp;(ino:23)./banana (ino:27)./lemon &nbsp;(ino:31)最后用mount -t overlayfs overlayfs -olowerdir=/dir1,upperdir=/dir2 /test/建立的新文件系统/test/里看上去是这样：./ab &nbsp; &nbsp; (ino:14)./cd &nbsp; &nbsp; (ino:16)./apple...]]></summary>
<author>
<name>donghao</name>
<url>http://donghao.org</url>
<email>hao.bigrat@gmail.com</email>
</author>
<dc:subject>操作系统</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://donghao.org/">
<![CDATA[<div>需求大概是这样：在一个linux系统上，想跑多个不同应用，这些应用由不同的运维来操作，为了避免互相干扰，希望运维只能看见自己的文件，而看不见别的应用的文件信息。一个常用解决办法就是干脆装多个虚拟机，但是，虚拟机对我们来说偏“重”，比如，多个应用公用的一些动态链接库（比如 libc.so）和配置文件（比如 hosts.conf）就复制了多份，如果原先一个系统在运行时系统文件占了500M的cache，那么现在装了4台虚拟机，就有2G的cache被重复占用了。</div><div><br /></div><div>怎样才能让系统文件只占一份cache呢？我们首先想到这么个主意：把linux系统装到ext4上，然后做4个snapshot（"快照“），这4个snapshot分别mount到4个目录，4个运维chroot到这4个目录里，然后就自己干自己的，干扰不到别人的文件。由于ext4 snapshot的实现机制是让同一个物理block被映射到不同的文件系统里，所以我们觉得，这一个4k的物理block应该就只占4k的cache。</div><div><br /></div><div>（也许有人要说，这么费劲干嘛，直接把系统常用的动态链接库做4个软链接出来，给4个运维用不就行了？这样做有两个问题，第一，动态链接库以及各种系统文件很多，不可能一一做软链接；第二，也是关键的一点，如果其中一位运维错误操作，例如覆盖写了某个系统文件，那么其他的运维就歇菜了，因为软链接实际指向的是同一个实际文件。）</div><div><br /></div><div>于是开始考察ext4的snapshot。ext4目前是没有snapshot功能的，但是Amir Goldstein已经开发好了对应的patch（<a href="https://github.com/amir73il/ext4-snapshots/">https://github.com/amir73il/ext4-snapshots/</a>），但是目前还没有被收入mainline。粗略看了一下，Amir的patch目前只支持readonly的snapshot，于是我发邮件问“如果改成writable snapshot，代码量大不大？“，Amir回帖表示代码量不大；另外还有别人回帖，推荐不用ext4而是用device mapper提供的thin provision的internal snapshot（<a href="http://kernelnewbies.org/Linux_3.2">http://kernelnewbies.org/Linux_3.2</a> ，<a href="http://lwn.net/Articles/465740/">http://lwn.net/Articles/465740/</a>），这样就不用依赖于某一个文件系统（就是如果咱们以后不用ext4了，也可以继续做snapshot）。</div><div><br /></div><div>鉴于ext4 snapshot不支持writable snapshot，且有7000行的改动之多，且目前都没有进mainline的计划，而device mapper的thin provision已经进了3.2 kernel，且只有5000行改动，且支持writable snapshot，所以。。。转而又考察thin provision。考察基本顺利，做snapshot没有问题，snapshot写入没问题，最后chroot然后编译kernel测试速度也没问题，但是，最后发现一个郁闷的事情：这些snapshot被mount以后，公用的文件在不同的文件系统里各自都要占一份cache，也就是说，明明是一个4k物理block，mount到4个不同的文件系统，就占4 x 4k的内存cache了！</div><div><br /></div><div>难道是device mapper的问题？于是再试了一下ext4的snapshot，甚至btrfs的snapshot，都一样！这就是vfs的特性：只要是inode不同，即使这些inode指向的是同一个物理block，那么它们的cache都是各自独有的，不共享。</div><div><br /></div><div>我把这个事儿告诉了coly（<a href="http://weibo.com/colyli">@淘伯松</a>）</div><div><br /></div><div>coly: （石化片刻）唉，我们之前想漏了，snapshot根本不能解决这个问题。。。太郁闷了，测了快两周才发现</div><div><br /></div><div>我： 想开一点吧，还好是测出来的，而不是上线了才发现——到时候运维找过来“你们的这个方案好像不省内存啊”，然后还得解释，还得回滚，就更被动更狼狈了</div><div><br /></div><div>coly： 噢，你这样一说，我舒坦多了</div><div><br /></div><div>最后还是马涛同学（<a href="http://weibo.com/pagefault">@淘伯瑜</a>）给出了一个方案——overlay fs（<a href="http://ovlfs.sourceforge.net/">http://ovlfs.sourceforge.net/</a>），能把两个目录（甭管是什么文件系统的两个目录，是目录就行）“叠合”成一个文件系统，而这个新文件系统的inode其实还是原来目录里的那个，但是视图已经是“叠合”后的了。</div><div><br /></div><div>比如，有两个目录，其中一个目录dir1有两个文件，是：</div><div><br /></div><div>./ab &nbsp;(ino:14)</div><div>./cd &nbsp;(ino:16)</div><div><br /></div><div>另一个目录dir2有三个文件，是：</div><div><br /></div><div>./apple &nbsp;(ino:23)</div><div>./banana (ino:27)</div><div>./lemon &nbsp;(ino:31)</div><div><br /></div><div>最后用</div><div><br /></div><div>mount -t overlayfs overlayfs -olowerdir=/dir1,upperdir=/dir2 /test/</div><div><br /></div><div>建立的新文件系统/test/里看上去是这样：</div><div><br /></div><div>./ab &nbsp; &nbsp; (ino:14)</div><div>./cd &nbsp; &nbsp; (ino:16)</div><div>./apple &nbsp;(ino:23)</div><div>./banana (ino:27)</div><div>./lemon &nbsp;(ino:31)</div><div><br /></div><div>注意，inode还是那些inode，但是他们“凑一块儿了”，而且，这个新文件系统是可写的，即使覆盖写了某个文件，也只影响upperdir（例子里的dir2）的内容，而lowerdir（例子里的dir1）没有任何影响。这样，我们就可以把linux系统根目录当成lowerdir，而每个运维自己的系统当成 upperdir ,某个运维的错误操作就不会影响其他人了。</div><div><br /></div><div>感谢马涛同学的推荐，目前这个还没有进mainline的overlay fs非常契合我们的应用。</div> ]]>

</content>
</entry>

<entry>
<title>扎克伯格公开信谈核心价值</title>
<link rel="alternate" type="text/html" href="http://www.trucy.org/blog/lazet/archives/003659.html" />
<modified>2012-02-02T04:59:52Z</modified>
<issued>2012-02-02T04:56:19Z</issued>
<id>tag:www.trucy.org,2012:/blog/lazet//9.3659</id>
<created>2012-02-02T04:56:19Z</created>
<summary type="text/plain">Facebook CEO马克-扎克伯格发表公开信，点明Facebook的三大愿景和五大核心价值。 　　以下为公开信全文： 　　Facebook的创建目的并非成为一家公司。它的诞生，是为了践行一种社会使命：让世界更加开放，更加紧密相连。 　　对于投资者而言，理解这一使命对于我们的意义，理解我们如何做出决定，以及我们为什么从事现在的工作，是一件非常重要的事情。我将在本文中阐述这些问题。 　　科技改变了人们传播和消费信息的方式，我们为之感到鼓舞。我们经常谈论印刷媒体和电视等发明——通过提高通信效率，它们发端了众多社会关键领域的深刻变革。它们让更多的人能够发出自己的声音，鼓励进步，改变社会组织方式，使我们更紧密地联系在一起。 　　今天，我们的社会走到了新的临界点。我们所处的时代，是一个大多数人都能够使用互联网和手机的时代——它们是分享所思、所感和所为的基本工具。Facebook渴望提供服务，使人们拥有分享的力量，帮助他们再一次改造众多核心机构和产业。 　　让每个人紧密联接，能够发出自己的声音，并推动社会的未来变革，是一种迫切需求，也是一个巨大机遇。人类需要建设的技术基础设施的规模亘古未有；我们认为，这是值得关注的最重要的问题。 　　我们希望巩固人与人之间的联系 　　尽管这一使命博大宽泛，但“风起于青萍之末”，我们将从“两人关系”迈出第一步。 　　人际关系是社会的基本构成单元，是我们发现创意、理解世界并最终获得长久幸福的必经之途。Facebook创造多种工具，帮助人们相互联系，分享观点，并以此拓展人们建立和维护人际关系的能力。 　　人们分享得越多——即便只是与密友或家人分享——文化就越开放，对于他人的生活和观点的理解也就越深。我们认为，它能够创造更多、更强的人际关系，并帮助人们接触到更多不同观点。 　　我们希望通过帮助人们建立关系，重塑信息的传播和消费方式。我们认为，世界信息基础架构应当与社交图谱类似——它是一个自下而上的对等网络，而不是目前这种自上而下的单体结构。此外，让人们自主决定分享哪些内容，是重塑架构的基本原则。 　　截至目前，我们已经帮助逾8亿人建立了超过1000亿个联系；我们的目标是推动这种重塑进程加速向前。 　　我们希望改善人们与企业和经济体系的联系 　　我们认为，一个更加开放、联系更加紧密的世界，将有助于创建更加强健的经济体系，培育更多提供更好产品和服务的真正意义上的企业。 　　人们分享得越多，他们就能够通过自己信赖的人，获得更多有关产品和服务的信息。他们能够更加轻松地找到最佳产品，并提高生活品质和效率。 　　在这一过程中，企业获得的益处是：他们能够制造更好的产品——即以人为本的个性化产品。我们发现，与传统商品相比，那些“社交化设计”(social by design)的产品更富有吸引力。我们预计，将有更多产品走上这条道路。 　　借助Facebook开发者平台，成千上万的企业开发出质量更高、社交特性更强的产品。游戏、音乐和新闻行业在Facebook平台上取得突破发展，更多行业在“社交化设计”理念的指引下也将迎来变革。 　　除了制造更好的产品，一个更加开放的世界还将鼓励企业与客户展开直接而可靠的互动。超过400万家企业在Facebook上开设了企业主页(Pages)，与客户进行对话。我们预计，这一趋势将继续发展。 　　我们希望改变人们与政府和社会机构的联系 　　我们认为，开发帮助人们分享的工具，能够推动民众与政府坦诚而透明的对话，赋予民众更加直接的权力，增强官员的责任感，并为当代一些最为重大的问题提供更好解决方案。 　　我们看到，人们在获得分享能力后，他们的声音和观点从未如此清晰响亮。这些声音的数量和影响力上都大大提高，无法忽略。我们认为，随着时间的推移，各国政府将更加积极地应对全体民众直接表达的问题和关切，而不是通过部分精英控制的中间机构听取民声民意。 　　我们认为，在这一过程中，世界各国都会出现善待互联网、为民权而奋斗的领导人。他们所争取的权利之一，是获取和分享一切信息的权利。 　　最终，随着更多经济体转向个性化高质量产品，我们预计能够解决创造就业岗位、教育和健康医疗等重大世界问题的社交新服务将出现。我们期待为这一进程尽其所能。 　　我们的使命和业务 　　如前所述，Facebook的创建目的并非成为一家公司。我们始终将自己的社会使命、正在开发的服务以及用户放在首要地位。对于一家上市公司而言，这可谓“不走寻常路”。因此，我希望解释其中缘由。 　　我自己编写了Facebook的首个版本。从那时起，大量优秀人才加入团队，并将自己的创意和代码融入Facebook。 　　大多数优秀人才都把开发优秀产品、从事伟大事业放在首要地位，但他们也想赚钱。通过建设人才团队，建立开发者社区、营销市场和投资者群体，我深刻体会到：荟萃精英以解决重要问题的最佳方式，是成立一家资本雄厚、成长强劲的茁壮企业。一言以蔽之：我们并非为了赚钱而开发服务，而是赚钱以开发更好服务。我们认为，这是一种很好的做事方法。我意识到，如今越来越多的人希望使用那些眼光不局限于利润最大化的企业所提供的服务。 　　通过践行自我使命，开发优秀服务，我们将为股东和合作伙伴长期创造最大价值。而这将使我们能够吸引最优秀人才，提供更多优秀服务。早晨醒来，我们的第一要务并不是赚钱；但是我们知道，使命必达的最佳方式是建设一家富有价值的强大企业。 　　这也是我们对启动IPO的看法。上市是为了惠及雇员和投资者。我们曾在分发股份时承诺，将竭尽全力提高股票价值，促进股票流通；如今，我们兑现了承诺。在即将成为上市公司之际，我们将对新的投资者作出类似承诺，并付出同等努力。 　　黑客文化 　　为了建设一家强大企业，我们努力将Facebook打造成优秀人才施展才华的最佳平台，以期对世界施加重大影响。我们培育了独一无二的企业文化和管理方式——黑客文化(Hacker Way)。 　　由于媒体将“黑客”描绘成入侵电脑为非作歹的人群，这个称呼带有贬义色彩，这是不公平的。事实上，“黑客”仅仅意味着快速开发，或是挑战力所能为之界限。与许多事情一样，它是一把“双刃剑”；然而，我结识的绝大多数黑客都是理想主义者，希望对世界做出积极贡献。 　　黑客文化是一种持续改进和衍变创新的做事方法。黑客们认为，优化无止境，产品无完美。当有人说无法改动一丝一毫，或是对现状心满意得时，黑客们却当着别人的面，情不自禁动手修改。 　　黑客们迅速发布小规模更新，并从中汲取经验教训，而不是试图一蹴而就，一劳永逸；他们希望通过长久努力打造最佳服务。为此，我们建成了一个测试框架，无论何时均可测试数千个版本的Facebook。我们的办公室墙上写着“完成优于完美”，以提醒大家按时“交差”。 　　“黑客”也意味着一种亲身实践、积极进取的天然纪律。黑客们不会召开长达数天的马拉松会议，以讨论某个创意是否可行，或是寻找最佳方法；他们会制作原型产品，看看是否行得通。在Facebook的办公室里，黑客们的口头禅是：“代码胜于雄辩”。...</summary>
<author>
<name>lazet</name>


</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.trucy.org/blog/lazet/">
<![CDATA[<p>Facebook CEO马克-扎克伯格发表公开信，点明Facebook的三大愿景和五大核心价值。<br />
　　以下为公开信全文：<br />
　　Facebook的创建目的并非成为一家公司。它的诞生，是为了践行一种社会使命：让世界更加开放，更加紧密相连。<br />
　　对于投资者而言，理解这一使命对于我们的意义，理解我们如何做出决定，以及我们为什么从事现在的工作，是一件非常重要的事情。我将在本文中阐述这些问题。<br />
　　科技改变了人们传播和消费信息的方式，我们为之感到鼓舞。我们经常谈论印刷媒体和电视等发明——通过提高通信效率，它们发端了众多社会关键领域的深刻变革。它们让更多的人能够发出自己的声音，鼓励进步，改变社会组织方式，使我们更紧密地联系在一起。<br />
　　今天，我们的社会走到了新的临界点。我们所处的时代，是一个大多数人都能够使用互联网和手机的时代——它们是分享所思、所感和所为的基本工具。Facebook渴望提供服务，使人们拥有分享的力量，帮助他们再一次改造众多核心机构和产业。<br />
　　让每个人紧密联接，能够发出自己的声音，并推动社会的未来变革，是一种迫切需求，也是一个巨大机遇。人类需要建设的技术基础设施的规模亘古未有；我们认为，这是值得关注的最重要的问题。<br />
　　我们希望巩固人与人之间的联系<br />
　　尽管这一使命博大宽泛，但“风起于青萍之末”，我们将从“两人关系”迈出第一步。<br />
　　人际关系是社会的基本构成单元，是我们发现创意、理解世界并最终获得长久幸福的必经之途。Facebook创造多种工具，帮助人们相互联系，分享观点，并以此拓展人们建立和维护人际关系的能力。<br />
　　人们分享得越多——即便只是与密友或家人分享——文化就越开放，对于他人的生活和观点的理解也就越深。我们认为，它能够创造更多、更强的人际关系，并帮助人们接触到更多不同观点。<br />
　　我们希望通过帮助人们建立关系，重塑信息的传播和消费方式。我们认为，世界信息基础架构应当与社交图谱类似——它是一个自下而上的对等网络，而不是目前这种自上而下的单体结构。此外，让人们自主决定分享哪些内容，是重塑架构的基本原则。<br />
　　截至目前，我们已经帮助逾8亿人建立了超过1000亿个联系；我们的目标是推动这种重塑进程加速向前。<br />
　　我们希望改善人们与企业和经济体系的联系<br />
　　我们认为，一个更加开放、联系更加紧密的世界，将有助于创建更加强健的经济体系，培育更多提供更好产品和服务的真正意义上的企业。<br />
　　人们分享得越多，他们就能够通过自己信赖的人，获得更多有关产品和服务的信息。他们能够更加轻松地找到最佳产品，并提高生活品质和效率。<br />
　　在这一过程中，企业获得的益处是：他们能够制造更好的产品——即以人为本的个性化产品。我们发现，与传统商品相比，那些“社交化设计”(social by design)的产品更富有吸引力。我们预计，将有更多产品走上这条道路。<br />
　　借助Facebook开发者平台，成千上万的企业开发出质量更高、社交特性更强的产品。游戏、音乐和新闻行业在Facebook平台上取得突破发展，更多行业在“社交化设计”理念的指引下也将迎来变革。<br />
　　除了制造更好的产品，一个更加开放的世界还将鼓励企业与客户展开直接而可靠的互动。超过400万家企业在Facebook上开设了企业主页(Pages)，与客户进行对话。我们预计，这一趋势将继续发展。<br />
　　我们希望改变人们与政府和社会机构的联系<br />
　　我们认为，开发帮助人们分享的工具，能够推动民众与政府坦诚而透明的对话，赋予民众更加直接的权力，增强官员的责任感，并为当代一些最为重大的问题提供更好解决方案。<br />
　　我们看到，人们在获得分享能力后，他们的声音和观点从未如此清晰响亮。这些声音的数量和影响力上都大大提高，无法忽略。我们认为，随着时间的推移，各国政府将更加积极地应对全体民众直接表达的问题和关切，而不是通过部分精英控制的中间机构听取民声民意。<br />
　　我们认为，在这一过程中，世界各国都会出现善待互联网、为民权而奋斗的领导人。他们所争取的权利之一，是获取和分享一切信息的权利。<br />
　　最终，随着更多经济体转向个性化高质量产品，我们预计能够解决创造就业岗位、教育和健康医疗等重大世界问题的社交新服务将出现。我们期待为这一进程尽其所能。<br />
　　我们的使命和业务<br />
　　如前所述，Facebook的创建目的并非成为一家公司。我们始终将自己的社会使命、正在开发的服务以及用户放在首要地位。对于一家上市公司而言，这可谓“不走寻常路”。因此，我希望解释其中缘由。<br />
　　我自己编写了Facebook的首个版本。从那时起，大量优秀人才加入团队，并将自己的创意和代码融入Facebook。<br />
　　大多数优秀人才都把开发优秀产品、从事伟大事业放在首要地位，但他们也想赚钱。通过建设人才团队，建立开发者社区、营销市场和投资者群体，我深刻体会到：荟萃精英以解决重要问题的最佳方式，是成立一家资本雄厚、成长强劲的茁壮企业。一言以蔽之：我们并非为了赚钱而开发服务，而是赚钱以开发更好服务。我们认为，这是一种很好的做事方法。我意识到，如今越来越多的人希望使用那些眼光不局限于利润最大化的企业所提供的服务。<br />
　　通过践行自我使命，开发优秀服务，我们将为股东和合作伙伴长期创造最大价值。而这将使我们能够吸引最优秀人才，提供更多优秀服务。早晨醒来，我们的第一要务并不是赚钱；但是我们知道，使命必达的最佳方式是建设一家富有价值的强大企业。<br />
　　这也是我们对启动IPO的看法。上市是为了惠及雇员和投资者。我们曾在分发股份时承诺，将竭尽全力提高股票价值，促进股票流通；如今，我们兑现了承诺。在即将成为上市公司之际，我们将对新的投资者作出类似承诺，并付出同等努力。<br />
　　黑客文化<br />
　　为了建设一家强大企业，我们努力将Facebook打造成优秀人才施展才华的最佳平台，以期对世界施加重大影响。我们培育了独一无二的企业文化和管理方式——黑客文化(Hacker Way)。<br />
　　由于媒体将“黑客”描绘成入侵电脑为非作歹的人群，这个称呼带有贬义色彩，这是不公平的。事实上，“黑客”仅仅意味着快速开发，或是挑战力所能为之界限。与许多事情一样，它是一把“双刃剑”；然而，我结识的绝大多数黑客都是理想主义者，希望对世界做出积极贡献。<br />
　　黑客文化是一种持续改进和衍变创新的做事方法。黑客们认为，优化无止境，产品无完美。当有人说无法改动一丝一毫，或是对现状心满意得时，黑客们却当着别人的面，情不自禁动手修改。<br />
　　黑客们迅速发布小规模更新，并从中汲取经验教训，而不是试图一蹴而就，一劳永逸；他们希望通过长久努力打造最佳服务。为此，我们建成了一个测试框架，无论何时均可测试数千个版本的Facebook。我们的办公室墙上写着“完成优于完美”，以提醒大家按时“交差”。<br />
　　“黑客”也意味着一种亲身实践、积极进取的天然纪律。黑客们不会召开长达数天的马拉松会议，以讨论某个创意是否可行，或是寻找最佳方法；他们会制作原型产品，看看是否行得通。在Facebook的办公室里，黑客们的口头禅是：“代码胜于雄辩”。<br />
　　“黑客”还意味着极度开放和精英为王。黑客们认为，最优秀的创意和实现始终横扫一切——而不是由最善于鼓吹创意，或是权力最大的人掌控一切。<br />
　　为培育黑客文化，我们每隔几个月就会举行一次“黑客马拉松”(hackathon)大赛，让人们依照自己的创意开发原型产品。最后，整个团队共同评判这些产品。Facebook最成功的一些产品就来自于“黑客马拉松”，包括时间线(Timeline)、聊天、视频、移动开发架构以及HipHop 编译器等。<br />
　　为了保证所有的工程师都融入黑客文化，Facebook要求所有新入职的工程师——包括那些将来并非主要从事编程工作的经理——参加Bootcamp训练营，学习我们的代码库、工具和方法。业内有许多人负责管理工程师团队，并不愿亲自动手编写代码；然而，我们寻找的实践型人才都希望也能够经受Bootcamp的检验。<br />
　　以上案例均与工程有关，但我们可以将这些原则概括为Facebook的五个核心价值：<br />
　　专注于影响力<br />
　　如果我们希望具有最大影响力，最佳方法是始终专注于解决最重要的问题。这听上去很简单，但我们认为，大多数公司表现糟糕，浪费了大量时间。我们期望Facebook的每一个人善于发现最大问题，并力图解决。<br />
　　迅速行动<br />
　　迅速行动使我们能够开发更多东西，更快地学习知识。但是，大多数公司一旦成长，发展速度就会大大放慢，因为与行动缓慢导致错失机遇相比，他们更害怕犯错。我们的信念是：“迅速行动，打破常规”。如果你从不打破常规，你的行动速度就可能不够快。<br />
　　勇往直前<br />
　　开发优秀产品意味着承担风险。这让人恐惧，迫使大多数公司对于冒险望而却步。但是，在瞬息万变的世界中，不愿冒险就注定失败。我们的另一个信念是：“最大的风险就是不承担风险。”我们鼓励每个人勇往直前，即使有时这意味着犯错。<br />
　　保持开放<br />
　　我们认为，世界越开放越美好。因为人们拥有更多信息，就能够做出更好的决定，对社会施加更好的影响。这也是Facebook的运营理念。我们竭力确保Facebook的每一个人能够尽可能多地接触到公司各个方面的信息，这样他们就能做出最佳决策，对公司产生最佳影响。<br />
　　创造社会价值<br />
　　Facebook存在的意义，是让世界更加开放和紧密相连，并非仅仅是开办一家公司。我们期望，Facebook的每一个人，无时无刻都要致力于为世界创造真正价值，并将这一理念融入自己所做的每一件事情。<br />
　　感谢阅读本信。我们相信，Facebook有机会在全球发挥重要影响，成为一家长青企业。我期待与大家共创伟业。<br />
来源：新浪科技<br />
　　新浪科技讯 北京时间2月2日上午消息，Facebook今天启动IPO(首次公开招股)，计划融资50亿美元。<br />
(彦飞 书聿 晓明 圣栎)</p>]]>

</content>
</entry>

<entry>
<title>代码review</title>
<link rel="alternate" type="text/html" href="http://donghao.org/2012/01/uaereview.html" />
<modified>2012-01-16T09:46:12Z</modified>
<issued>2012-01-16T09:42:44Z</issued>
<id>tag:donghao.org,2012://43.3658</id>
<created>2012-01-16T09:42:44Z</created>
<summary type="text/plain"><![CDATA[我：我们有两台机，都是一样的 xeon E5620 2.4G 的CPU，但是，跑算Pi的程序，5000个迭代，一个机器跑48秒，另一个只需要32秒coly：CPU核数一样吗？我：一样的。不一样应该没关系，我这是单进程。coly：内存速度不一样？我：就一个算Pi，总共就占8MB内存，还没有CPU的L3 cache大呢coly：要不这样，你写个死循环加法，我们看看两边的速度是不是一样（公司的盒饭送来了，晚饭时间）coly：你先吃，我来写吧....一个死循环我应该还是能写出来的....你要review我的代码哟～我：....（coly把代码写出来了int main(void){&nbsp; &nbsp; &nbsp; &nbsp; int a=0;&nbsp; &nbsp; &nbsp; &nbsp; while ( a &lt; 0) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a++;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; return 0;}）coly：为什么我运行瞬间就结束了？我：应该是编译器把你的死循环优化掉了，因为a这个变量在整个main函数里都没有被其它地方使用coly: 喔～～，我改改，在结尾加个printf把a打出来（程序一运行还是瞬间结束）陈同学：（看了看代码）是不是加法太快了，看不出来？咱们加几个嵌套循环coly：好～（程序还是瞬间结束）coly：怪了....靠，a的值是0啊，根本进不了循环！我，陈同学齐声：喔～～～coly：你们两个！怎么review代码的！后记：死循环程序写出来了，两台机器CPU的计算速度确实有差异，原因最后由柯旻同学揭示：跟华为2285机器的cpu 频率控制有关CPU不开启cpuspeed就是1.6G的主频，需要/sbin/modprobe...]]></summary>
<author>
<name>donghao</name>
<url>http://donghao.org</url>
<email>hao.bigrat@gmail.com</email>
</author>
<dc:subject>软件开发</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://donghao.org/">
<![CDATA[<div>我：我们有两台机，都是一样的 xeon E5620 2.4G 的CPU，但是，跑算Pi的程序，5000个迭代，一个机器跑48秒，另一个只需要32秒</div><div><br /></div><div>coly：CPU核数一样吗？</div><div><br /></div><div>我：一样的。不一样应该没关系，我这是单进程。</div><div><br /></div><div>coly：内存速度不一样？</div><div><br /></div><div>我：就一个算Pi，总共就占8MB内存，还没有CPU的L3 cache大呢</div><div><br /></div><div>coly：要不这样，你写个死循环加法，我们看看两边的速度是不是一样</div><div><br /></div><div>（公司的盒饭送来了，晚饭时间）</div><div><br /></div><div>coly：你先吃，我来写吧....一个死循环我应该还是能写出来的....你要review我的代码哟～</div><div>我：....</div><div><br /></div><div>（coly把代码写出来了</div><div><br /></div><div><i><b>int main(void)</b></i></div><div><i><b>{</b></i></div><div><i><b>&nbsp; &nbsp; &nbsp; &nbsp; int a=0;</b></i></div><div><i><b>&nbsp; &nbsp; &nbsp; &nbsp; while ( a &lt; 0) {</b></i></div><div><i><b>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a++;</b></i></div><div><i><b>&nbsp; &nbsp; &nbsp; &nbsp; }</b></i></div><div><i><b><br /></b></i></div><div><i><b><br /></b></i></div><div><i><b>&nbsp; &nbsp; &nbsp; &nbsp; return 0;</b></i></div><div><i><b>}</b></i></div><div><br /></div><div>）</div><div><br /></div><div>coly：为什么我运行瞬间就结束了？</div><div>我：应该是编译器把你的死循环优化掉了，因为a这个变量在整个main函数里都没有被其它地方使用</div><div>coly: 喔～～，我改改，在结尾加个printf把a打出来</div><div><br /></div><div>（程序一运行还是瞬间结束）</div><div>陈同学：（看了看代码）是不是加法太快了，看不出来？咱们加几个嵌套循环</div><div>coly：好～</div><div><br /></div><div>（程序还是瞬间结束）</div><div><br /></div><div>coly：怪了....靠，a的值是0啊，根本进不了循环！</div><div>我，陈同学齐声：喔～～～</div><div><br /></div><div>coly：你们两个！怎么review代码的！</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>后记：</div><div><br /></div><div>死循环程序写出来了，两台机器CPU的计算速度确实有差异，原因最后由<a href="http://weibo.com/u/1804480064">柯旻</a>同学揭示：</div><div><br /></div><div>跟华为2285机器的cpu 频率控制有关</div><div>CPU不开启cpuspeed就是1.6G的主频，需要</div><div><br /></div><div>/sbin/modprobe acpi-cpufreq</div><div>echo ondemand |sudo tee /sys/devices/system/cpu/cpu13/cpufreq/scaling_governor</div><div><br /></div><div>后，主频才上到真正的2.4G</div><div>&#8203;</div>]]>

</content>
</entry>

</feed>
