<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on pugWoo&#39;s Life</title>
    <link>https://blog.pugwoo.com/posts/</link>
    <description>Recent content in Posts on pugWoo&#39;s Life</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 27 May 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.pugwoo.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>业务系统的标准宽表设计</title>
      <link>https://blog.pugwoo.com/posts/2024/business-system-standard-table-design/</link>
      <pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2024/business-system-standard-table-design/</guid>
      <description>&lt;h2 id=&#34;1-业务系统越来越复杂开发怎么分工&#34;&gt;1. 业务系统越来越复杂，开发怎么分工？&lt;/h2&gt;&#xA;&lt;h3 id=&#34;11-背景&#34;&gt;1.1 背景&lt;/h3&gt;&#xA;&lt;p&gt;公司的业务系统已经迭代了10年，子系统大大小小加起来大约有80到100个。开发团队有30多人，每人负责几个子系统，所有相关事项都由个人全权负责，需处理产品业务沟通、开发、测试、线上运维、数据统计分析等各方面的工作。当人员离职或调动时，子系统通常会交接给新人，导致文档丢失和设计意图不明确的情况屡见不鲜。随着业务的发展，公司对系统的专业性要求越来越高，专门设立了产品经理岗位；然而，开发人员的分工似乎没有太大变化。&lt;/p&gt;&#xA;&lt;p&gt;直到最近，公司开始重视数据决策，甚至请来了专业的第三方数据建模分析团队。在为数据分析团队提供数据时，我发现了一些明显的问题：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;要获取某个子领域的完整数据，需要逐一联系开发人员，询问数据的业务含义和标准，才能获取完整信息。如果要获取更多领域的完整数据，需要联系的开发会更多。&lt;/li&gt;&#xA;&lt;li&gt;数据来自多个子系统，零散分布在各自的MySQL数据库，收集、清洗、组合这些数据需要大量工作。&lt;/li&gt;&#xA;&lt;li&gt;开发系统页面功能、数据统计分析、测试、运维都是一人全包，难以在功能开发和数据分析等特定领域形成专业化的工具积累。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;总体来看，团队分工较为原始，烟囱式分配工作任务，专业深度难以提升。&lt;/p&gt;&#xA;&lt;h3 id=&#34;12-开发怎么分工&#34;&gt;1.2 开发怎么分工？&lt;/h3&gt;&#xA;&lt;p&gt;在降本增效的大背景下，公司无法在开发、测试、系统功能和数据统计等多个维度实现细化分工，因为这会增加支出。更可行的做法是在现有开发团队内进行一次细化分工。如果只能做一次一分为二的分工，我的分工思路：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;面向实际问题&lt;/strong&gt;：当前主要问题是数据获取难度大。考虑到后台开发人员的能力特点，可以将系统功能（CRUD、业务流程、页面交互接口）与数据统计分开，这两者的技术栈也有明显差异。因此，适合在这个维度上进行分工。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;常见分工方式&lt;/strong&gt;：按开发、测试、运维分工。但这种分工并不能解决主要矛盾：开发人员有能力自行测试和运维自己的功能，随着公司CI/CD和K8s部署平台的完善，这方面的矛盾并不突出。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;分析结论：将开发人员划分为“系统功能开发”和“数据统计开发”两类，各自的职能和变化点如下：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;系统功能开发&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;负责子系统的CRUD、业务流程、页面接口开发。&lt;/li&gt;&#xA;&lt;li&gt;向流程引擎、消息中间件、分布式组件方向深入发展。&lt;/li&gt;&#xA;&lt;li&gt;不再负责数据统计分析，有更多时间专注于中间件开发，抽取业务系统的共性部分。&lt;/li&gt;&#xA;&lt;li&gt;以两三人小组形式负责更大范围的领域系统，合并可能重复的子系统。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;数据统计开发&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;负责数据资产管理、报表开发、数据建模分析。&lt;/li&gt;&#xA;&lt;li&gt;向大数据、数据建模、数据挖掘、机器学习方向深入发展。&lt;/li&gt;&#xA;&lt;li&gt;不再处理一线业务流程的问题，减少被干扰的次数。&lt;/li&gt;&#xA;&lt;li&gt;负责比功能开发更大范围的领域，将上下游各领域数据汇总分析。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;通过这样的分工，团队可以更有效地解决当前问题，同时提升整体专业性和效率。&lt;/p&gt;&#xA;&lt;h2 id=&#34;2-分工后两类开发的边界在哪里&#34;&gt;2. 分工后，两类开发的边界在哪里？&lt;/h2&gt;&#xA;&lt;h3 id=&#34;21-数据划分&#34;&gt;2.1 数据划分&lt;/h3&gt;&#xA;&lt;p&gt;有分工，就应该有边界，明确的责任边界是顺利合作的基础。从数据的角度来看，我们需要识别整个系统中的数据，并明确每个岗位的责任。可以按照常见的业务系统数据库垂直划分和数据仓库分层划分的方法进行，如图所示。&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;.././images/standard-table-1.svg&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;h3 id=&#34;22-数据维护职责划分&#34;&gt;2.2 数据维护职责划分&lt;/h3&gt;&#xA;&lt;p&gt;数据维护职责划分：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;业务系统数据库，由&lt;strong&gt;系统功能开发&lt;/strong&gt;人员负责。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;数据仓库的DWS和ADS层，由&lt;strong&gt;数据统计开发&lt;/strong&gt;人员负责。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ODS层和DWD层的职责划分存在一些争议：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ODS层的数据是业务系统的原始数据快照，每个周期生成一次，表结构与业务系统基本一致。由于ODS层的表结构和字段含义由&lt;strong&gt;系统功能开发&lt;/strong&gt;人员设计和维护，因此由他们负责是合理的。考虑到ODS层与业务系统的耦合关系，即当业务系统的表结构发生变化时，ODS的表结构也需要相应调整，这种耦合关系由&lt;strong&gt;系统功能开发&lt;/strong&gt;人员维护再合适不过了。&lt;/p&gt;&#xA;&lt;p&gt;有了明确的责任划分后，&lt;strong&gt;数据统计开发&lt;/strong&gt;人员再也不用为了统计报表，辛苦地跑去各个业务系统数据库快照数据了。而&lt;strong&gt;系统功能开发&lt;/strong&gt;人员也不用再担心自己维护的数据库被随意导出，或者一旦修改表结构就引发其他报表统计问题。两边都省心，皆大欢喜！&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;DWD层负责对ODS层的数据进行清理和整合，形成标准的数据基础表。虽然ODS层的责任划分还算明朗，但DWD层的归属在业界和团队内部却有较大争议。&lt;strong&gt;数据统计开发&lt;/strong&gt;人员对ODS层并不熟悉，ODS层不是他们设计的，表结构也主要面向OLTP。而&lt;strong&gt;系统功能开发&lt;/strong&gt;人员对于如何设计DWD层的数据表结构也没有十足把握，需要了解清楚DWD层之上的统计分析需求才好设计，而他们并不熟悉DWD层之上的情况。&lt;/p&gt;&#xA;&lt;p&gt;究竟谁的说法更合理呢？&lt;strong&gt;数据统计开发&lt;/strong&gt;人员确实对ODS层不熟悉，不仅是表结构，明确字段的业务含义、适配表结构变更等都是难点，这符合客观事实。而&lt;strong&gt;系统功能开发&lt;/strong&gt;人员确实对DWD层之上的统计分析不了解，那么他们真的需要了解这些才能设计好DWD层的表结构吗？答案未必。从分层架构来看，上层依赖底层，底层不需要感知到上层的存在。因此，&lt;strong&gt;系统功能开发&lt;/strong&gt;人员的说法实际上站不住脚，DWD层的责任理应由他们承担。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;最终责任划分结果如下图：&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;.././images/standard-table-2.svg&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;两类开发的依赖边界是DWD层，数据统计开发人员&lt;span style=&#34;color: red;&#34;&gt;&lt;strong&gt;禁止&lt;/strong&gt;&lt;/span&gt;读写ODS层和业务系统的数据，DWD层有效隔离了业务系统表结构变更对上层的影响。为了使&lt;strong&gt;系统功能开发&lt;/strong&gt;人员可以设计出良好的DWD层，我们制定了一套《标准宽表的设计原则》。&lt;/p&gt;&#xA;&lt;h2 id=&#34;3-标准宽表的设计原则&#34;&gt;3. 标准宽表的设计原则&lt;/h2&gt;&#xA;&lt;p&gt;在介绍设计原则之前，我们先通过一个具体案例来感受一下如何设计DWD层的表结构。我们把这种符合规范的DWD层表称为“标准宽表”。&lt;/p&gt;&#xA;&lt;h3 id=&#34;31-案例公交车运营信息的宽表设计&#34;&gt;3.1 案例：公交车运营信息的宽表设计&lt;/h3&gt;&#xA;&lt;p&gt;假设你现在是一名分析员，你的长期目标是优化每辆公交车的路线和发车频率，使公交车既能更好地服务市民，又能为公司带来可观的收益。为了达成这一目标，我们需要哪些信息用于分析呢？我们希望获取的信息既要充分，不能遗漏关键信息；也不需要过多无关信息，以免增加数据获取和分析的工作量；此外，这些信息必须在当前技术水平下是可获得的。如果我们用表格来记录信息，&lt;strong&gt;每张表只能记录同一类内容&lt;/strong&gt;，至少需要以下几张表？可以进行以下场景的分析：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;哪条公交线路最拥挤？哪条线路相对空闲？&lt;/li&gt;&#xA;&lt;li&gt;哪个站点人满为患？发车频率是否合理？增加班次能否解决问题？行车路线是否需要优化？&lt;/li&gt;&#xA;&lt;li&gt;乘客等待公交车的平均时长是多少？哪条线路和哪个站点的等待人数和时间最长？&lt;/li&gt;&#xA;&lt;li&gt;哪条公交线路收益最好？什么时间段收益最好？整体收益如何？公交车型是否需要优化？&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;读者可以先花5分钟思考一下，然后再继续往下读。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;最终梳理出来，我们需要2张宽表：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;宽表1：公交车运行记录表&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;这张表格的每一行记录了一次公交出行的信息。通过它，我们可以分析线路和班次的运营情况。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;字段分类&lt;/th&gt;&#xA;          &lt;th&gt;字段&lt;/th&gt;&#xA;          &lt;th&gt;示例数据及说明&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;基础信息&lt;/td&gt;&#xA;          &lt;td&gt;公交车车牌&lt;br/&gt;公交车司机&lt;br/&gt;线路&lt;br/&gt;始发站点&lt;br/&gt;结束站点&lt;/td&gt;&#xA;          &lt;td&gt;粤B6688GD&lt;br/&gt;王师傅&lt;br/&gt;101路&lt;br/&gt;火车站&lt;br/&gt;动物园总站&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;运行信息&lt;/td&gt;&#xA;          &lt;td&gt;班次&lt;br/&gt;总里程&lt;br/&gt;出发时间&lt;br/&gt;结束时间&lt;br/&gt;总载客数&lt;/td&gt;&#xA;          &lt;td&gt;08:10&lt;br/&gt;60km&lt;br/&gt;2024-01-02 08:10:00&lt;br/&gt;2024-01-02 09:52:32&lt;br/&gt;300人次&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;收入信息&lt;/td&gt;&#xA;          &lt;td&gt;车费收入&lt;br/&gt;广告收入&lt;br/&gt;补贴收入&lt;br/&gt;油费成本&lt;br/&gt;车辆成本&lt;br/&gt;司机成本&lt;/td&gt;&#xA;          &lt;td&gt;823元&lt;br/&gt;100元&lt;br/&gt;50元&lt;br/&gt;30元&lt;br/&gt;200元&lt;br/&gt;100元&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;strong&gt;宽表2：公交站点上下客记录表&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>一种不错的产品方案表达方式</title>
      <link>https://blog.pugwoo.com/posts/2024/a-good-way-to-present-product-prototypes/</link>
      <pubDate>Wed, 31 Jan 2024 10:04:49 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2024/a-good-way-to-present-product-prototypes/</guid>
      <description>&lt;p&gt;我注意到，许多技术人员在介绍产品方案时，往往喜欢从技术实现开始讲解。为什么会这样呢？这可能是因为技术实现不仅展示了技术的复杂性和深度，也是技术人员获得高薪的基础。因此，从技术实现开始讲，更符合他们的思维习惯。然而，一旦我们从技术实现入手，就在一定程度上限定了产品的使用方式。&lt;/p&gt;&#xA;&lt;p&gt;大多数人对产品的使用方式，要么觉得它是理所当然的（大家都这么用，所以我的产品方案也是这样用），要么没有投入足够的思考，很少去探索是否存在更好的使用方法。然而，当我们观察这个世界时，会发现众多的技术研究和发明，归根结底都是为了让人们更好地使用功能、满足需求。因此，使用方式应该在技术实现之前进行优先考虑。为此，我梳理出了一套优先考虑产品使用方式的表达框架。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-表达框架&#34;&gt;1. 表达框架&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;背景介绍&lt;/strong&gt;（方案在怎样的环境下诞生）、&lt;strong&gt;产品目的&lt;/strong&gt;（该产品要解决什么问题？达到什么效果？）&lt;/li&gt;&#xA;&lt;li&gt;产品的&lt;strong&gt;多种使用方式设计&lt;/strong&gt;（使用者如何使用该产品），从中比较并选出使用方式最佳的方案&lt;/li&gt;&#xA;&lt;li&gt;使用方案的&lt;strong&gt;实现方式分享&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;说明：如果第2点选出的最佳方式难以实现，可以解释选择次优方式的原因是实现难度较大。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;2-案例&#34;&gt;2. 案例&lt;/h2&gt;&#xA;&lt;p&gt;接下来，我将通过一些具体的例子来展示这种表达方式。&lt;/p&gt;&#xA;&lt;h3 id=&#34;21-分布式锁&#34;&gt;2.1 分布式锁&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;背景和目的&lt;/p&gt;&#xA;&lt;p&gt;在分布式环境中，一个Java应用通常会部署多个实例。这些实例的某个函数可能会被同时调用，导致并发问题。为了确保该函数能够串行执行，我们需要一种机制来实现类似于Java单机应用中的synchronized功能。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;各种方案的使用方式：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;2.1) 代码调用的方式&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;方法中的代码里调用组件的lock(key)获取锁，调用unlock(key)释放锁，代码示例：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@Resource&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; DistributedLock lock;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;someMethod&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    String lockKey &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;some-key&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;boolean&lt;/span&gt; lockResult &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        lockResult &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; lock.&lt;span style=&#34;color:#a6e22e&#34;&gt;lock&lt;/span&gt;(lockKey); &lt;span style=&#34;color:#75715e&#34;&gt;// 获取锁&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (lockResult) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 加锁成功的业务代码&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        } &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 加锁失败的处理代码 &lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    } &lt;span style=&#34;color:#66d9ef&#34;&gt;finally&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (lockResult) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            lock.&lt;span style=&#34;color:#a6e22e&#34;&gt;unlock&lt;/span&gt;(lockKey); &lt;span style=&#34;color:#75715e&#34;&gt;// 释放锁&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;2.2) 使用注解的方式&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;方法上注解@Synchronized，代码示例：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@Synchronized&lt;/span&gt;(key &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;some-key&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#75715e&#34;&gt;// 当加锁失败时，抛出异常&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;someMethod&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// 加锁成功的业务代码&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;2.3) 方案汇总比较&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>都在谈微服务，那什么是好的服务？</title>
      <link>https://blog.pugwoo.com/posts/2020/%E9%83%BD%E5%9C%A8%E8%B0%88%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%82%A3%E4%BB%80%E4%B9%88%E6%98%AF%E5%A5%BD%E7%9A%84%E6%9C%8D%E5%8A%A1/</link>
      <pubDate>Wed, 15 Jan 2020 09:39:04 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2020/%E9%83%BD%E5%9C%A8%E8%B0%88%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%82%A3%E4%BB%80%E4%B9%88%E6%98%AF%E5%A5%BD%E7%9A%84%E6%9C%8D%E5%8A%A1/</guid>
      <description>&lt;p&gt;微服务流行的这几年，都在说微服务，聊架构、聊优势，就好像没有好好聊一下什么是服务，怎样的服务算是好服务。作为一个程序员，我们会用很多第三方工具类，你会发现有些工具它面向的比较底层，它的函数很多、每个函数提供的入参也很多；有些工具比较接近业务，会提供给使用者直接能用的、很简单的函数。这些情况的存在是很正常的，底层的函数要考虑到各种各样的场景要比顶层的函数多。&lt;/p&gt;&#xA;&lt;p&gt;如果给你两个都能满足你需求的工具，一个底层一个顶层，你肯定会选择顶层。假设你现在要取消手机上的某个增值服务，你是打个官方客户电话告诉她要取消，她马上给你操作好；还是去百度搜一搜怎么取消，再根据方案一个个试，可能发个短信去取消，也可能要登录某个网站进去某个菜单去取消？显然是前者更爽。这就看得出区别了，虽然都能服务于你、满足你的需求，但有好坏之分。有的政府部门很高效，办事情直接明了；有的则在踢皮球、故意刁难；都是在为人民服务，你说有没有好坏之分呢？&lt;/p&gt;&#xA;&lt;p&gt;那么问题来了，什么样的服务是个好的服务？我认为应该是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;能满足你的需求，这是前提&lt;/li&gt;&#xA;&lt;li&gt;你只需要表达需求，而非步骤（你不用告诉对方应该怎么做）&lt;/li&gt;&#xA;&lt;li&gt;最少的信息输入，有用的信息输出（你只需要告诉对方最少的必要的信息，对方只返回给你有用的信息）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;当然好的服务可能成本比较高。举个例子，交通卡充值，在地铁站有两种方式：&lt;/p&gt;&#xA;&lt;p&gt;1）人工服务，表达需求是：充值。&#xA;输入是交通卡和钱。&#xA;输出是充值好的交通卡和小票&lt;/p&gt;&#xA;&lt;p&gt;2）自助服务，在机器上点击充值，根据提示放入交通卡，选择充值方式，例如微信支付，打开手机微信，扫描支付，等待机器充值完成，拿出交通卡和小票&lt;/p&gt;&#xA;&lt;p&gt;显然，如果不考虑成本或等待时间的话，人工服务对消费者来说是最好的。&lt;/p&gt;&#xA;&lt;p&gt;那如果上面的判断没有明显的差别，那还能怎么判断一个服务更好？&lt;/p&gt;&#xA;&lt;p&gt;1）客户需要操心的事情越少越好。&lt;/p&gt;&#xA;&lt;p&gt;这里包括客户的心智，例如充值服务，手工服务的话，小孩和老人都可以使用，但是自助就不一定行。&lt;/p&gt;&#xA;&lt;p&gt;操心的事情还包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;这个卡上次欠费了没补扣到，怎么处理？自助服务可能直接让去人工处理了&lt;/li&gt;&#xA;&lt;li&gt;这个卡读磁好像不太好，机器没识别到&lt;/li&gt;&#xA;&lt;li&gt;这个卡被机器吞了!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;2）客户花费的时间越少越好。&lt;/p&gt;&#xA;&lt;p&gt;人工服务为什么值钱？因为它带了智能元素。它可以处理程序之外的事情。&lt;/p&gt;&#xA;&lt;p&gt;那自助服务就没有优势了吗？当然不是，它的优势就是低成本 + 易扩张 + 24小时不间断。&lt;/p&gt;&#xA;&lt;p&gt;所以，现阶段，很多都是人工+自助的形式，就是因为它们谁也替代不了对方，而最好的方式就是利用它们的优点，平衡好。&lt;/p&gt;&#xA;&lt;h3 id=&#34;2021更新&#34;&gt;2021更新&lt;/h3&gt;&#xA;&lt;h5 id=&#34;1-sql为何这么流行大数据最终也是以sql的形式来操作&#34;&gt;1. SQL为何这么流行？大数据最终也是以SQL的形式来操作。&lt;/h5&gt;&#xA;&lt;p&gt;因为SQL表达的是要什么数据（要啥就告诉啥，没有多余的信息返回）、查询什么条件就可以了，不需要告诉服务器额外的信息、也不要告诉操作过程。&lt;/p&gt;&#xA;&lt;p&gt;它符合好服务的特征。&lt;/p&gt;&#xA;&lt;h5 id=&#34;2-为何helm-charts是部署表达的最终形式&#34;&gt;2. 为何helm charts是部署表达的最终形式？&lt;/h5&gt;&#xA;&lt;p&gt;使用k8s时，我们会编写k8s的yaml进行部署，每个kind一个yaml。对于一次部署一个MySQL实例，可能需要Deployment、Service等多个kind，因此就会有多份yaml文件，因此还需要一个文件夹把这些yaml放一块。当又要部署一个MySQL实例时，又得复制出这样一堆yaml文件，可以发现，这两堆yaml文件中，有大量的信息是重复的，而它们不同的信息，恰好是最终用户部署一个MySQL实例时需要表达的信息：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mysql的版本&#xA;root账号的密码&#xA;数据持久化路径&#xA;暴露端口&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;没有其它信息了。&lt;/p&gt;&#xA;&lt;p&gt;而helm charts就做到这种方式了，只需要用户填这几个信息，一个mysql实例就可以跑起来了。更复杂的如clickhouse、elasticsearch等都只需要用户填写用户需要指定的信息，不用做额外的事项，就可以秒起一个实例。&lt;/p&gt;&#xA;&lt;p&gt;其实我们可以发现，有些方式是最终的形式 。例如面向最终端消费者的操作界面，应该就是当前科技水平下的最终形式。如果科技水平更高，是否会出现通过人工智能、意识控制等更为最终的形式，还是可能的。&lt;/p&gt;&#xA;&lt;p&gt;在互联网形态下，web和app是普通用户的最终的展现形式。我们应该尽量将功能以这两种形式提供，而不是登录机器去敲命令或编辑复杂的配置。&lt;/p&gt;</description>
    </item>
    <item>
      <title>web服务器的线程池模型与Reactor模型</title>
      <link>https://blog.pugwoo.com/posts/2019/web%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%BA%BF%E7%A8%8B%E6%B1%A0%E6%A8%A1%E5%9E%8B%E4%B8%8Ereactor%E6%A8%A1%E5%9E%8B/</link>
      <pubDate>Fri, 27 Dec 2019 08:55:12 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2019/web%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%BA%BF%E7%A8%8B%E6%B1%A0%E6%A8%A1%E5%9E%8B%E4%B8%8Ereactor%E6%A8%A1%E5%9E%8B/</guid>
      <description>&lt;p&gt;这篇文章并不主要介绍线程池模型和Reactor模型的细节，而是试图从本质上区分两者的区别。&lt;/p&gt;&#xA;&lt;p&gt;首先还是要简要描述下这两者，配合一些例子说明：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;线程池模型是servlet规范确定的模型，在其它很多框架中也常见，例如dubbo。线程池模型规定一个请求由一条线程服务，直到请求执行完。为了减少创建线程的开销和限定最大线程数，一般会使用线程池来做。这意味着，如果一个请求的业务代码中，sleep了一段时间或者阻塞IO，那么这条线程也只能等当前代码处理完成，并不能被分配去处理其它请求。&lt;/p&gt;&#xA;&lt;p&gt;这就好比你去银行柜台办理业务，轮到你时，从你接受服务到结束服务，柜台服务员始终只服务于你，即便你在中途填一份文件需要一两分钟、或者接个紧急电话需要三两分钟，柜台服务员都不会在此期间去服务其它客户。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Reactor模型是异步IO复用，在nginx、haproxy等web服务器中很常见，netty框架也是此模型。Reactor模型一般使用一个线程来接入新的客户端，再使用N个线程来服务客户端，一般N是CPU核数的1到2倍，每个线程可以来回处理多个客户端的请求。&lt;/p&gt;&#xA;&lt;p&gt;如果拿上面的银行柜台办理业务场景改造一下，就变成了：有一个大堂经理，他来接待每一位新客户，然后按一定规则将客户分配给一个柜台服务员。一个柜台服务员可以同时服务多名客户：客户A向服务员提出请求，服务员处理后发给客户A一份表格让A填写；此时服务员转去处理客户B的请求；直到客户A填完表格了，喊一声服务员，服务员就过来处理客户A的表格。如此反复。&lt;/p&gt;&#xA;&lt;p&gt;上面是改造银行柜台的例子，和银行实际做法不太符合，只是为了方便大家理解过渡。再举个实际Reactor模型的例子：淘宝卖家的客服。消费者通过旺旺可以和卖家客服在线聊天，客服这边是个多客户接入系统，一次可以接入几十个客户，当她收到客户的消息时，她就会点开窗口回复客户，回复完后她就换到其它窗口回复其它客户，直到这个客户有新的消息过来。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;初略来看，可能不少人会觉得Reactor模型性能要比线程池高，支持的并发数更高。这个结论是需要在特定的条件下才成立的。所以网上流行的一些如Reactor模型性能比传统的线程池高的说法，是不够准确的。较为准确的描述应当是：Reactor可以在既定资源下发挥更大的效率。在java中，每个线程默认占1M左右的内存，每个进程最多能开2000左右的线程，再高就可能导致OOM或其它问题，因此线程是比较珍贵的资源。在线程池模型中，如果有一个请求卡住了，把默认tomcat 200个线程占满了，后面的请求就无法被处理了。这就好像银行开了10个柜台，其中办理某个业务比较慢，需要半个小时而且是卡住在客户填写资料这边，期间柜台服务员很空闲，然后刚好有20个人来办这个业务，那么这1个小时内，其他人就办理不了业务了。这就造成了一个现象：柜台服务员很空闲，外面又有很多客户没法办理业务。这个问题，就只能用Reactor模型解决。&lt;/p&gt;&#xA;&lt;p&gt;再回到技术上，以nginx为例，它就必须、也只能用Reactor模型。nginx无法控制后面代理的web服务器每个请求的处理时间，即便nginx开了2000个线程，只要有1个请求慢到10秒钟，那么200个并发就可以把nginx堵死，造成nginx无法响应其它请求，表现为僵死状态。&lt;/p&gt;&#xA;&lt;p&gt;所以，只要是网关、或者说网络请求的中间层，那必须是Reactor模型。这样当后台服务慢时，它增长的资源就只有TCP连接数，这个在操作系统层面是IO文件描述符，由linux维护，一般有epoll模型，保证处理请求的时间和资源不会随着连接数增长而暴涨。&lt;/p&gt;&#xA;&lt;p&gt;话说回来，既然Reactor优势这么明显了，那为何还有线程池模型的存在呢？既然线程池模型还在大量使用，那就说明它有它特有的优势。在线程池模型下，我们可以使用ThreadLocal，将当前请求的上下文信息等存到里面，代替层层传参的方式。此外，线程池模型下，业务逻辑的编写也比Reactor模型要简单明了很多，很大提高了开发效率。鉴于这2个优势，以线程池模型为代表的servlet规范，在Java业务开发领域，依旧是主流。&lt;/p&gt;&#xA;&lt;p&gt;最后说下结论：鉴于这两者的区别，一般的网络结构中的所有中间转发层都用Reactor模型，实际业务处理层用多线程模型。中间网络层可以有多层。其实细看tomcat的内部接口，它也是由Reactor模型（接入新客户时）+多线程模型（实际处理业务时）构成的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>关于数据库主键、外键的选择</title>
      <link>https://blog.pugwoo.com/posts/2017/%E5%85%B3%E4%BA%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%BB%E9%94%AE%E5%A4%96%E9%94%AE%E7%9A%84%E9%80%89%E6%8B%A9/</link>
      <pubDate>Fri, 31 Mar 2017 15:59:10 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2017/%E5%85%B3%E4%BA%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%BB%E9%94%AE%E5%A4%96%E9%94%AE%E7%9A%84%E9%80%89%E6%8B%A9/</guid>
      <description>&lt;p&gt;在设计表时，最好为表加上一个主键id（尽量使用数字，主键索引数据最小），一种常见的做法是所有的表都有个自增主键id，其它表对该表有关联时，都关联上主键id。在实际开发过程中，这种方式是主要大多数的情况，但在一些场景下，有其麻烦的地方，需要更深入思考其本质。&lt;/p&gt;&#xA;&lt;p&gt;先假设一个场景，有一张学生表，学生有一个唯一的学号，还有姓名等其他信息。我们有两种方式来设计表：&lt;/p&gt;&#xA;&lt;p&gt;方式一，表字段：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;字段&lt;/th&gt;&#xA;          &lt;th&gt;说明&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;id&lt;/td&gt;&#xA;          &lt;td&gt;自增id&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;student_no&lt;/td&gt;&#xA;          &lt;td&gt;学生学号，也是一个数字或字符串，也是唯一的，&lt;strong&gt;有业务含义的编号&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;name&lt;/td&gt;&#xA;          &lt;td&gt;学生姓名&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;方式二，表字段：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;字段&lt;/th&gt;&#xA;          &lt;th&gt;说明&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;id&lt;/td&gt;&#xA;          &lt;td&gt;学生学号，主键，一个数字或字符串，也是唯一的，&lt;strong&gt;有业务含义的编号&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;name&lt;/td&gt;&#xA;          &lt;td&gt;学生姓名&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;方式一自增id的情况&#34;&gt;方式一：自增id的情况&lt;/h2&gt;&#xA;&lt;p&gt;我先直观说下自增id在哪些场景下会有麻烦的事情要处理：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;自增id在开发、测试、线上每个环境是不同的，如果代码中需要写死引用哪个id的话，由于每个环境id不同，就需要为此配置不同的id值，增加了配置项和维护工作。当然，此时配置的情况下，就应该配置为学号student_no，然后代码中再翻查出学生id。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;主键id对分表不友好，像上面的学生表，如果分表的话肯定是按学生学号来分表的，而数据库外表引用又是用主键id来引用。当分完好多表了，这些表自增id都是从1开始的，所以这些分表的id就大量相同，外表引用学生表主键id就很不好处理。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;自增id一般是系统内部的id，对外部用户是不可见的也没有业务含义。如果关联了另外一个表的id，那么展示给前端学生编号时，就需要每次靠这个内部自增id去反查学号student_no。自增id并无显著编码规则，如果关联错了字段也不易看出来，容易引用错导致数据污染。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;自增id相当于是由数据库控制的主键，应用无法自行指定其id。当发生删除数据，再添加数据时，所有原来的表外键引用都会失效，重新关联也很麻烦。例如学生都有个学校id字段，如果学校id引用的是t_school表的自增id，当该学校记录被删除，那么应用将没法（没那么容易）重新插入数据获得原来的学校id。而如果是使用编号作为主键，那么表之间的关联稳定性就会强多了。当然，这个缺点也有优点的时候，自增的id可以轻易保证不会被其它表引用，而人工指定的id则不排除该id已经被其它表引用了，导致可能的脏关联。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;方式二业务id的情况&#34;&gt;方式二：业务id的情况&lt;/h2&gt;</description>
    </item>
    <item>
      <title>一个好产品具备的要素</title>
      <link>https://blog.pugwoo.com/posts/2017/%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%BA%A7%E5%93%81%E5%85%B7%E5%A4%87%E7%9A%84%E8%A6%81%E7%B4%A0/</link>
      <pubDate>Sun, 26 Feb 2017 14:30:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2017/%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%BA%A7%E5%93%81%E5%85%B7%E5%A4%87%E7%9A%84%E8%A6%81%E7%B4%A0/</guid>
      <description>&lt;p&gt;2014年，我第一次换工作，面试了很多家公司。其中有一家公司做了一款主打产品“第一次”，它是类似朋友圈样式的微博，用户以发图片加感想文字为主，记录自己第一次做某件事情的感受。例如，第一次上大学、第一次去某个城市、第一次谈恋爱、第一次有小孩等等，每一件事情都是那么的美好，“人生若只如初见”。当时我就觉得，回忆就像一杯美酒，越久越醇香，当你再回头品味时，还是忘不了当初那份懵懂。所以，这个产品就是一个酝酿美酒的酒窖。&lt;/p&gt;&#xA;&lt;p&gt;刚上线时，该软件的用户交流还算活跃，第一次的事情总是能让人感到好奇，用户留下很多评论这问问那了解了解，甚至成为好友结伴而行。但是，这样就是一个好产品吗？我思考了好久发现这款软件有一个缺陷，它没有解决用户多大的痛点。用户因为好奇安装这个软件，看了好奇的图片和故事，心里感到很向往。这对于用户而言是闲底下打发时间的做法，无论给用户带来知识价值或者解决问题的方案都是有限的，毕竟都是新手的感言。所以，当用户有什么问题寻求解决时，几乎不会想到这个软件。也就是说，没有太多场景触发用户想起来要打开使用这款软件。&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-trigger&#34;&gt;1. trigger&lt;/h3&gt;&#xA;&lt;p&gt;所以我觉得，“触发用户打开使用”是一个好产品的必要条件，我叫这个条件为trigger。基于这样的定义，我分析了一些trigger很强的产品：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;当你想知道现在自己在哪里，想坐车去某个地方时，你会打开地图类软件。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;当你想了解今天有什么事情发生时，你会打开新闻类软件。基本上大多数的资讯类产品都属于这个，当然每个人感兴趣的资讯不一样，所以这一类有很多垂直化产品。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;如果你习惯在网上充值话费，当电话费快用完了就会想起微信支付。同样，当需要取现金时，会想起把钱从微众银行转回银行卡。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;如果你刚好在等公交车，等了好久了车都没来，我想你一定非常希望有一款软件可以查下车到哪了。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;如果你经常从团购中享受周边美食的介绍和优惠，那么当你来到一个陌生的地方，你会不会打开软件看看有啥好吃有啥优惠？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;当你想和某人联系，想拍个视频或图片给他看时，微信是不是唯一选择？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;可以看出，trigger就是当你很想解决一个问题时所推动你去寻求解决的动力。trigger需要培养的用户习惯，当用户遇到某类问题时，脑中第一个闪过的念头就是用什么软件解决。这个效果和广告让人记住品牌有相似之处。&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-linker&#34;&gt;2. linker&lt;/h3&gt;&#xA;&lt;p&gt;微信、QQ是非常成功的产品。它们满足trigger的同时，产品中用户产生的内容和信息交流都非常丰富活跃。当大部分人都使用微信时，其它类微信类的软件第一个大难题就是用户壁垒。我把这项条件称为linker。我这样定义它：用户在一款产品中的连结和互动。&lt;/p&gt;&#xA;&lt;p&gt;这类linker很强的软件，用户粘性很高。用户是这类软件的核心资产，当然用户产生的内容也是核心资产。linker本身会带动出一种强trigger，还是以QQ为例，当你和网友聊得很熟之后，你要找他，你自然会想到QQ，他要找你，他会发QQ过来，QQ消息过来本身就是一种trigger，让你去打开软件去看消息。&lt;/p&gt;&#xA;&lt;p&gt;再举一个例子，淘宝的trigger很强，当人需要在买点什么时，可能会想起网上买，而一旦想要在网上买，基本都会去淘宝搜。那它的linker在哪里呢？客户之间看起来没有太强烈的互动，实际上，淘宝上基于商品的大量成交记录和评论，就是强linker的体现。&lt;/p&gt;&#xA;&lt;p&gt;所以，如果一款产品有好的trigger和linker，那它至少满足一个好产品需要的两个前提。但是好多情况下两者很难都有，两个中有一个特别突出也会是一款不错的产品。&lt;/p&gt;&#xA;&lt;p&gt;按trigger和linker的思路看看一些产品，例如网易云音乐：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;trigger: 想听歌，网易云音乐歌曲很多很全很专业、高品质和高体验&lt;/li&gt;&#xA;&lt;li&gt;linker: 电台节目、歌单、歌曲评论、歌曲排名、个性化推荐歌曲(大数据)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;3-用户主动周期性的trigger很困难&#34;&gt;3. 用户主动周期性的trigger很困难&lt;/h3&gt;&#xA;&lt;p&gt;有类产品，帮助用户记账，一般是线下购买的东西花费的钱。只有用户将所有帐都记上，软件每个周期做的支出分析才有参考意义。问题在于，让用户养成每花一笔钱都要记一下的习惯并不容易，不排除有非常乐于记录的用户，多半是由于对支出比较在意。&lt;/p&gt;&#xA;&lt;p&gt;更困难的情况是，要让用户周期性在某个时间点自发地做一些动作，而每次做完之后又没有太大的激励。&lt;/p&gt;&#xA;&lt;p&gt;当出现这种trigger时，可以考虑降低周期，降低频次，降低用户忘记的代价，提高激励。&lt;/p&gt;&#xA;&lt;h4 id=&#34;备注&#34;&gt;备注&lt;/h4&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;截止2015-05-06，“第一次”在华为市场下载15万次，3颗星；在腾讯市场下载6万次，4.5颗星。&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>跨域的安全性设计</title>
      <link>https://blog.pugwoo.com/posts/2016/%E8%B7%A8%E5%9F%9F%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%E8%AE%BE%E8%AE%A1/</link>
      <pubDate>Mon, 28 Nov 2016 11:48:33 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2016/%E8%B7%A8%E5%9F%9F%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%E8%AE%BE%E8%AE%A1/</guid>
      <description>&lt;p&gt;开发网站时，最好的设计是前端和后台在同一个域名下，这样在调用时不用涉及跨域问题，在开发、测试、预发、线上环境中切换也方便。&lt;/p&gt;&#xA;&lt;p&gt;按照这种设计，一般会这样划分域名和URL：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;m.abc.com 线上域名、预发环境域名&#xA;dev.m.abc.com 开发环境域名&#xA;test.m.abc.com 测试环境域名&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/api/    所有/api开头的，转发给后台&#xA;/     其它所有链接，转发给前端静态文件目录&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;但是实际开发中，还是难免会出现跨域的问题。例如集团下两家独立子公司合作，共享登录态。于是就会涉及到跨域的设计。&lt;/p&gt;&#xA;&lt;h2 id=&#34;跨域的urlcookieajax调用相关设计&#34;&gt;跨域的URL、cookie、ajax调用相关设计&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;首先跨域调用，服务器端必须设置&lt;code&gt;Access-Control-Allow-Origin&lt;/code&gt;头部。一般偷懒的做法会设置上&lt;code&gt;Access-Control-Allow-Origin: *&lt;/code&gt;，这样是不安全的，现代浏览器已经为这种不安全做了一定的防范：当服务器端设置的&lt;code&gt;Access-Control-Allow-Origin&lt;/code&gt;是&lt;code&gt;*&lt;/code&gt;时，跨域的cookie不会发送给服务器。也即，这种方式只适合于不需要登录态的跨域调用。因此，现代浏览器的这种做法可以阻挡大部分的钓鱼冒牌网站。&lt;/p&gt;&#xA;&lt;p&gt;正常的跨域调用，显然是需要带上跨域站点的cookie的。此时就必须让服务器设置上&lt;code&gt;Access-Control-Allow-Origin&lt;/code&gt;值为明确某个域名，这个可以交给浏览器根据不同的跨域请求设置不同的域名。同时javascript XHR也需要设置允许带上跨域cookie。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;为了使域名cookie在开发测试线上环境中同时可用（主要是登录态，例如微信登录就只能指定一个域名），一般我们会把cookie打在顶级域名下。但要注意外部存储平台如七牛，当七牛绑定到我们域名的某个二级域名时，请求图片就会带上顶级域名下的cookie，导致理论上七牛可以获得我们用户的登录态。解决方式是，为七牛绑定上另外一个顶级域名，例如google的所有静态资源就放在gstatic.com下，就可以从逻辑上完全杜绝google.com的cookie泄漏给CDN服务器的问题。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>SOA的构成要素</title>
      <link>https://blog.pugwoo.com/posts/2016/soa%E7%9A%84%E6%9E%84%E6%88%90%E8%A6%81%E7%B4%A0/</link>
      <pubDate>Fri, 15 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2016/soa%E7%9A%84%E6%9E%84%E6%88%90%E8%A6%81%E7%B4%A0/</guid>
      <description>&lt;p&gt;SOA，面向服务架构，是构建中大型项目的必备架构，以下分析SOA的主要构成要素，并对比腾讯内部使用的SOA框架和阿里巴巴内部使用的SOA框架的优劣。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-协议&#34;&gt;1. 协议&lt;/h2&gt;&#xA;&lt;p&gt;协议的序列化性能要好，这个是肯定的，一般用google的protobuf之类的协议，有一个java protobuf协议和google的完全兼容同时不需要预先处理。&lt;/p&gt;&#xA;&lt;p&gt;协议非常重要，它负载着接口传递的信息，从扩展性和兼容性考虑都非常重要。&lt;/p&gt;&#xA;&lt;p&gt;最重要的则是协议的版本控制：&lt;/p&gt;&#xA;&lt;p&gt;1）协议有版本字段version，可以是自增也可以是时间戳，协议的每个字段会注解（或注释）是哪个版本起加入的。如果协议里面有List等更深层嵌套，如果嵌套结构不被复用，那么就可以用个自增版本控制；如果嵌入的结构是复用的，那就推荐使用时间戳作为版本。&lt;/p&gt;&#xA;&lt;p&gt;2）对于低版本客户端请求高版本服务器，高版本服务器应该兼容低版本协议，根据协议版本由服务器端来决定怎样处理业务逻辑。对于返回数据，到底是高服务器端适配低版本返回数据，还是低版本客户端忽略高版本数据字段，这个都可以考虑。对于Java自带的序列化，它对上对下都是兼容的，但没有手工指定版本那样好依靠版本做不同的业务逻辑处理。&lt;/p&gt;&#xA;&lt;p&gt;3）对于高版本客户端请求低版本服务器，低版本服务器会忽略高版本协议中新的数据，并处理业务逻辑返回低版本的数据，高版本客户端应该有能力处理低版本的返回数据。&lt;/p&gt;&#xA;&lt;p&gt;腾讯的AppServer/AppPlatform是由协议的版本来服务版本的，服务器本身没有版本号控制。服务器都是同一批升级的，没有办法控制调用某个服务时，只请求指定版本的机器。如果要实现这样的效果，就修改下服务名称，例如叫XXXv2。&lt;/p&gt;&#xA;&lt;p&gt;阿里的HSF，协议是依靠Java（Hessian）做到上下都兼容，但是没有版本区分，只能看某个字段能不能拿到值来判断，比较弱。但是服务器机器是有版本和分组的，调用方需要指定服务器版本和分组。但在实际开发过程中，线上一直是1.0.0和HSF分组，依靠版本/分组做升级的情况就没有使用过，aone2的发布也不支持部分机器1.0.0部分机器2.0.0这样的情况，所以HSF的协议版本控制是不太完善的，没有办法监控客户端和服务端的协议版本统计。当然好处就是灵活，直接Java的序列化类，不需要维护一个单独的版本。&lt;/p&gt;&#xA;&lt;p&gt;从协议版本的设计上，腾讯胜。但从实战的角度上，打平。&lt;/p&gt;&#xA;&lt;h2 id=&#34;2-注册中心与环境-本地开发测试预发线上等&#34;&gt;2. 注册中心与环境: 本地、开发、测试、预发、线上等&lt;/h2&gt;&#xA;&lt;p&gt;在实际项目开发过程中，需要搭建各种环境，至少线下线上是免不了的，测试和预发一般也是要的。SOA也需要提供这样的环境隔离。目前知道的腾讯和阿里的两种做法：&lt;/p&gt;&#xA;&lt;p&gt;1）腾讯是靠服务器上的agent来控制环境。例如有一个SOA服务，名称叫queryService，这个名称是全局唯一的，在开发环境，它对应的服务器是A:3888端口，在测试环境，它对应的服务器是B:3999端口，线上对应的是C:3888和D:3888两台机器。这些信息，可以在配置中心网页配置，配置中心以环境为单位分开配置。配置完之后，配置中心会推送给每台机器的agent程序。而对于每台机器上的应用，假如它要调SOA服务queryService，应用会拿本机的agent数据，知道要调用的SOA服务的机器端口，然后直接访问。对于本地开发，可以直接指定机器的ip端口直接调用。&lt;/p&gt;&#xA;&lt;p&gt;所以，agent维护了整个系统的环境，这个事情由运维负责。相同的代码和配置，放到A机器上它就访问了开发的服务，放到B机器上它就访问了测试的服务。这个减少了很多服务的配置项。不足是目前环境的ip需要手工配置到配置中心，实际上可以搞成自动注册的，本地环境的自动注册功能则可以关掉。&lt;/p&gt;&#xA;&lt;p&gt;2）阿里的HSF也有各种环境，但是环境里面还是需要指定HSF服务的版本号和分组（一般配置在Spring bean，这也使得每次用hsf服务都要配置，比较麻烦）。例如开发和测试环境在HSF是同一个大环境，所以应用如果依赖N个应用的服务，就需要为服务各配置N项开发和N项测试的版本。预发、线上等同理。服务提供者本身也要配置HSF版本和分组，但是会自动注册到配置中心。例如SOA服务com.xx.IQueryService，服务提供者开发环境和测试环境各部署一台服务器，开发服务器配置版本是1.0.0.daily，测试服务器配置版本是1.0.0.test，这两台服务器起来之后，会把自己的ip地址和端口自动发送给配置中心。而服务使用者的应用，如果是开发环境，那需要配置1.0.0.daily，如果是测试环境，则配置1.0.0.test，需要手工配置。&lt;/p&gt;&#xA;&lt;p&gt;这个自动注册的功能的便捷性，实际上已经被各种配置破坏完了。还好阿里是以应用为单位的，应用包含web和SOA服务层，应用上所有的服务一般都一个版本，所以像一达通后台BOSS这种规模的应用，一般十几个版本号就可以维护。&lt;/p&gt;&#xA;&lt;p&gt;其实更好的做法是一个环境自己用一个注册中心，这样就免去每个环境要用不同的版本的问题。&lt;/p&gt;&#xA;&lt;p&gt;总结一下注册中心和环境应该具备的特性：&lt;/p&gt;&#xA;&lt;p&gt;1）区分环境并感知环境的能力&#xA;2）自动负载均衡，自动下线失效机器，自动恢复上线机器&#xA;3）服务自动注册、手动注册&lt;/p&gt;&#xA;&lt;p&gt;从设计上看，腾讯的agent是非常规整的模型。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;agent应该有能力识别当前的环境，例如dev/test/pre/idc&lt;/li&gt;&#xA;&lt;li&gt;agent可以扩展为拿配置项（阿里Diamond）、mysql地址密码（保护线上mysql密码）等&lt;/li&gt;&#xA;&lt;li&gt;agent的维护有自己的门户和权限控制。如果是大公司使用时，agent可以增加命名空间来隔离不同部门。&lt;/li&gt;&#xA;&lt;li&gt;agent支持windows、linux各种操作系统。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;从注册中心设计和环境使用方面，腾讯胜。&lt;/p&gt;&#xA;&lt;h2 id=&#34;3-监控治理&#34;&gt;3. 监控、治理&lt;/h2&gt;&#xA;&lt;p&gt;SOA框架会采集所有调用的耗时，调用量（分每台机器和总体），这些数据就可以做实时监控也可以做历史趋势比较。&lt;/p&gt;&#xA;&lt;p&gt;监控是简单的特性，而SOA治理才是大头。SOA应该有能力检测到从页面或定时任务开始的一个SOA调用，它后续一路下去的所有SOA调用（包括调用的服务名次、次数和时间）。通过这些数据，就可以分析调用量有没有出现循环、会不会太长、有没有良好的层次关系。这些指标可以作为系统复杂度的指导。&lt;/p&gt;&#xA;&lt;p&gt;阿里的EagleEye设计，就是通过调用链来采集数据。从页面或定时任务开始（实际上只要没有traceId，就创建一个）就创建一个随机的128位字母的traceId，此后的SOA调用或notify消息传递，都会带上这个信息。根据这个traceId，就可以找到一条调用的全过程。比扁平化的SOA监控更强大的是，这个可以对一个功能的全链路进行统计。例如用户点击提交订单的按钮后，后台会调用一系列SOA、请求一系列SQL、发送一系列信息等，哪个比较慢，一目了然。&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;https://blog.pugwoo.com/images/soa_1.png&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;实际上，页面框架Webx、SOA框架HSF、消息notify、数据库TDDL这4个点都有EagleEye的采集，所以系统的全链路基本清晰了。&lt;/p&gt;&#xA;&lt;p&gt;强弱依赖统计、瓶颈分析：&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;https://blog.pugwoo.com/images/soa_2.png&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;调用来源分析：&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;https://blog.pugwoo.com/images/soa_3.png&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;还有个RpcId记录了调用的顺序，因为时间每台机器不一样，是不准的。&lt;/p&gt;&#xA;&lt;p&gt;Google有这类产品的设计：http://research.google.com/pubs/pub36356.html&#xA;twitter的：http://engineering.twitter.com/2012/06/distributed-systems-tracing-with-zipkin.html&lt;/p&gt;&#xA;&lt;p&gt;在SOA治理方面，阿里胜。&lt;/p&gt;&#xA;&lt;h2 id=&#34;4-管理调用方自我保护&#34;&gt;4. 管理调用方、自我保护&lt;/h2&gt;&#xA;&lt;p&gt;服务提供应该有能力保护自己。SOA的服务提供方，应该可以提供密钥和调用者标识符给调用者，并设置该调用者的调用频率，如果超过调用频率，就禁止为其提供服务并报警。&lt;/p&gt;&#xA;&lt;p&gt;另外一个是来自Google的理念，对于导致多次服务超时的异常参数，应该有屏蔽的能力。也称熔断。&lt;/p&gt;&#xA;&lt;p&gt;在这方面，目前阿里的HSF好像没有涉及，连安全性都没有。这方面，腾讯胜。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL limit的性能和关联查询的3种写法</title>
      <link>https://blog.pugwoo.com/posts/2016/mysql-limit%E7%9A%84%E6%80%A7%E8%83%BD%E5%92%8C%E5%85%B3%E8%81%94%E6%9F%A5%E8%AF%A2%E7%9A%843%E7%A7%8D%E5%86%99%E6%B3%95/</link>
      <pubDate>Wed, 13 Apr 2016 17:14:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2016/mysql-limit%E7%9A%84%E6%80%A7%E8%83%BD%E5%92%8C%E5%85%B3%E8%81%94%E6%9F%A5%E8%AF%A2%E7%9A%843%E7%A7%8D%E5%86%99%E6%B3%95/</guid>
      <description>&lt;h2 id=&#34;1-mysql-limit的性能实践&#34;&gt;1. MySQL limit的性能实践&lt;/h2&gt;&#xA;&lt;p&gt;mysql的分页功能，在数据量大的情况下，即便有索引，也还是很慢。&lt;/p&gt;&#xA;&lt;p&gt;做个实验：新建一个最简单的表：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TABLE&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;t_test&lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt; (&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;id&lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt; BIGINT(&lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;NOT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;NULL&lt;/span&gt; AUTO_INCREMENT,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;PRIMARY&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;KEY&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;id&lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后写个程序，往表里面插入2000万条数据，然后做下面实验：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;SQL&lt;/th&gt;&#xA;          &lt;th&gt;先执行10次后,再执行的耗时ms&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SELECT id FROM t_test LIMIT 10000,10&lt;/td&gt;&#xA;          &lt;td&gt;3&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SELECT id FROM t_test LIMIT 100000,10&lt;/td&gt;&#xA;          &lt;td&gt;28&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SELECT id FROM t_test LIMIT 1000000,10&lt;/td&gt;&#xA;          &lt;td&gt;280&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SELECT id FROM t_test LIMIT 10000000,10&lt;/td&gt;&#xA;          &lt;td&gt;4500&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SELECT id FROM t_test LIMIT 20000000,10&lt;/td&gt;&#xA;          &lt;td&gt;6900&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;可见，即便是在只搜索索引(index索引覆盖)的情况下，只要有大的limit offset，那么查询时间和offset是O(n)线性增长。&lt;/p&gt;&#xA;&lt;p&gt;如果没有limit大offset，例如第20000000个id是20022780起，那么这样查询速度很快：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;SQL&lt;/th&gt;&#xA;          &lt;th&gt;先执行10次后,再执行的耗时ms&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SELECT * FROM t_test WHERE id&amp;gt;=20022780 ORDER BY id LIMIT 10&lt;/td&gt;&#xA;          &lt;td&gt;1&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SELECT id FROM t_test ORDER BY id LIMIT 10&lt;/td&gt;&#xA;          &lt;td&gt;1&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;出现上面的情况，可以感性的理解为，limit大offset对索引并没有效果，为什么没有效果？因为：&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】生活，早就该这么好好过</title>
      <link>https://blog.pugwoo.com/posts/2013/%E7%94%9F%E6%B4%BB%E6%97%A9%E5%B0%B1%E8%AF%A5%E8%BF%99%E4%B9%88%E5%A5%BD%E5%A5%BD%E8%BF%87/</link>
      <pubDate>Mon, 27 May 2013 22:40:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2013/%E7%94%9F%E6%B4%BB%E6%97%A9%E5%B0%B1%E8%AF%A5%E8%BF%99%E4%B9%88%E5%A5%BD%E5%A5%BD%E8%BF%87/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;https://blog.pugwoo.com/images/life_should_be_1.jpg&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;你们要死要活非要在那座大城市里买下一套冰冷的钢筋水泥浇灌而成的百多平米的三室两厅。你们觉得那样以后终于真正成为那座大城市里的人，你们有了立足之地安乐之窝。&lt;/p&gt;&#xA;&lt;p&gt;你没有意识到那样一座房子榨干了父母大半辈子的省吃俭用，也很可能会榨干你自己和爱人后半辈子的舒心享受。之后的十年或者二十年，你们每个月胆战心惊为着还那几乎将人吞噬的房贷。&lt;/p&gt;&#xA;&lt;p&gt;你自己拼命地工作，不敢和吹毛求疵的上司叫板，因为你怕因此而丢了工作。你爱人其实比你还紧张，拼死拼活地赚钱，早已顾不得什么浪漫享受。&lt;/p&gt;&#xA;&lt;p&gt;于是，在那样的节日里，你看着周围的同事朋友在你面前炫耀她们的另一半又做了什么什么感动死人的事，又给自己买了什么什么价格不菲的珍宝，你心里不痛快了不舒服了。你开始埋怨自己的那位，怪他或她不懂浪漫，没有情趣，好像也不那么爱你了。&lt;/p&gt;&#xA;&lt;p&gt;你开始看不惯他或她在你早已醒来的时候仍然呼呼大睡，很少再精心做一顿精致的晚餐了。&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;https://blog.pugwoo.com/images/life_should_be_2.jpg&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;好像你们很久没有一起散步了，很久没有一起去看电影看展了。你们很久没有跟对方说我爱你了，很久没有掏心掏肺地说说心里话了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】马克思主义在中国的一个困境：科学还是伪科学</title>
      <link>https://blog.pugwoo.com/posts/2011/%E9%A9%AC%E5%85%8B%E6%80%9D%E4%B8%BB%E4%B9%89%E5%9C%A8%E4%B8%AD%E5%9B%BD%E7%9A%84%E4%B8%80%E4%B8%AA%E5%9B%B0%E5%A2%83%E7%A7%91%E5%AD%A6%E8%BF%98%E6%98%AF%E4%BC%AA%E7%A7%91%E5%AD%A6/</link>
      <pubDate>Thu, 16 Jun 2011 16:18:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2011/%E9%A9%AC%E5%85%8B%E6%80%9D%E4%B8%BB%E4%B9%89%E5%9C%A8%E4%B8%AD%E5%9B%BD%E7%9A%84%E4%B8%80%E4%B8%AA%E5%9B%B0%E5%A2%83%E7%A7%91%E5%AD%A6%E8%BF%98%E6%98%AF%E4%BC%AA%E7%A7%91%E5%AD%A6/</guid>
      <description>&lt;p&gt;我从数学基础中一个叫做理发师困境的逻辑悖论说起。十九世纪末，康托（Cantor）在当时数学界极度怀疑的态度下发表了他著名的集合论，改变了数学的面貌，但就在他的理论越来越成功的时候，一些逻辑悖论被发现了，其中最广为人们所知的是罗素（Russel）悖论。罗素悖论在数学中有精确的叙述，但为了让这个悖论更容易被理解，罗素用日常生活语言叙述了这样一个理发师的困境：某个村庄有个理发师，有一天他宣布，他将给并且只给村庄中所有不给自己理发的人理发。于是有人问理发师：“你是不是给你自己理发呢？”理发师突然发现自己陷入了一个困境不可自拔，如果他给自己理发，那么按照他所宣布的，他就不该给自己理发，如果他不给自己理发，他又必须给自己理发。&lt;/p&gt;&#xA;&lt;p&gt;罗素悖论和其他悖论的出现让数学家对数学基础产生了极大的危机感，以致在不久之后便有了数学基础的三大派别。但数学家很快解决了罗素悖论和其他悖论带来的问题，而以后一百年间数理逻辑的进展使得这些问题和以后发现的更深刻的问题（比如哥德尔定理等等）都得到了满意的解决。从后来的发展我们知道，罗素悖论和其他的集合论悖论说明我们在定义什么是集合的时候不能有半点马虎，必须小心行事，才能保证我们的数学体系没有矛盾。&lt;/p&gt;&#xA;&lt;p&gt;罗素悖论的出现说明，即使是伟大的数学家和逻辑学家也不见得在严格细致的检验面前每次都过关。这种对任何人、对任何尚未经过严格检验的结论都毫不留情地鸡蛋里挑骨头的做法，正是科学发展的动力，也是科学区别于伪科学最重要的标志。科学界对待任何新结果的态度都是想方设法去证明这个结果是错的，而不是欢呼科学又取得了伟大的胜利。只有经过这种最不信任的、最严格的、甚至有些残酷的考验，在大家不得不承认自己非但无法证明这个结果是错误的，反而给出了更多支持这个结果的证据之后，这个结果才会为科学界广泛接受。科学家在验证一个新结果的时候，最能让他们兴奋的不是按照预期得到结论说这个结果的确是对的，而是发现他们试图验证的结果是错的，其实这才是真正的、典型的科学精神。&lt;/p&gt;&#xA;&lt;p&gt;生活在现代社会中的人都无法否认科学（尤其是自然科学）在近几百年来取得的巨大成功。科学的成功有其必然性，因为科学的目标是掌握自然和社会的基本规律，为人类服务，而不是为了遵从某种信仰或者为某些人的统治制造根据。从这个目标出发，科学家在接受任何一种理论之前，都会用极为严格的标准检验这一理论。对自然科学，检验的标准是和实验的相符合程度；对社会科学而言，检验的标准是和社会调查、统计数据、历史记录以及用其他方法观察社会得到的信息相符合的程度；对数学科学而言，检验的标准是逻辑上严格的证明。用外行也能看懂的话来总结，大致意思就是实践是检验真理的唯一标准。很多人因此便把实践是检验真理的唯一标准看成是科学的特征了。&lt;/p&gt;&#xA;&lt;p&gt;不过认真思考的人会发现，用实践是检验真理的唯一标准作为科学的特征有很多问题，&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】住在隔壁的刚毕业的大学生小夫妻</title>
      <link>https://blog.pugwoo.com/posts/2010/%E4%BD%8F%E5%9C%A8%E9%9A%94%E5%A3%81%E7%9A%84%E5%88%9A%E6%AF%95%E4%B8%9A%E7%9A%84%E5%A4%A7%E5%AD%A6%E7%94%9F%E5%B0%8F%E5%A4%AB%E5%A6%BB/</link>
      <pubDate>Sun, 08 Aug 2010 22:05:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E4%BD%8F%E5%9C%A8%E9%9A%94%E5%A3%81%E7%9A%84%E5%88%9A%E6%AF%95%E4%B8%9A%E7%9A%84%E5%A4%A7%E5%AD%A6%E7%94%9F%E5%B0%8F%E5%A4%AB%E5%A6%BB/</guid>
      <description>&lt;p&gt;从搬进这家民房的第一天，我就开始怀疑我隔壁的那个储藏室根本没住人。一天到晚黑黢黢的，没半点声响。&lt;/p&gt;&#xA;&lt;p&gt;我终于还是忍受不了房间里那个破沙发了，便又一次跟房东要求，能不能让我把一些杂物放进隔壁的储藏室。房东斜着眼，哼了一下：跟你说过多少次了？那储藏室租给一对民工夫妇了，里面住着人呢！&lt;/p&gt;&#xA;&lt;p&gt;我算见识了广东人的抠门，就打算再也不去碰这一鼻子灰了。&lt;/p&gt;&#xA;&lt;p&gt;那天，我出来倒垃圾，经过储藏室的门，听到里面窸窸嗦嗦的，气就不打一处来，我知道肯定是老鼠又在里面大**了。我狠狠地一脚踹在门上，还不解气，就又猛踹一脚。&lt;/p&gt;&#xA;&lt;p&gt;门吱嘎的开了，我吓了一跳。我以为我把门踹坏了；正忐忑不安的时候，一个女人的脑袋伸了出来，确切的说应该是个女孩或者**，从她那蓬松的马尾辫和还有些稚气的脸上我实在无法判断她的年龄。&lt;/p&gt;&#xA;&lt;p&gt;她轻轻的问道：您找谁？&lt;/p&gt;&#xA;&lt;p&gt;我愣了，呆在那里，不知道说什么好。&lt;/p&gt;&#xA;&lt;p&gt;这时候一个有些猥琐的男孩子也把脑袋凑着伸了出来，迟疑了一下说：你是隔壁的吧？！&lt;/p&gt;&#xA;&lt;p&gt;我一下子醒悟过来，说：是啊，是啊。&lt;/p&gt;&#xA;&lt;p&gt;男孩子笑嘻嘻的得意的说：我上次下班回来见过你。&lt;/p&gt;&#xA;&lt;p&gt;周围的空气戛然的停在那里，有些尴尬。我赶忙说着：不好意思，不好意思，打扰你们了。便迅速的溜回自己的房门。我听到了他们轻轻关房门的声音，还听到了他们窃窃私语的声音，好像在说：是不是我们平时动静太大，吵到邻居了？那以后我们要多注意了！之类的话。&lt;/p&gt;&#xA;&lt;p&gt;我喝了口水，平静下来，我才确信，那个一天到晚黑洞洞的储藏室里真的住着俩人，这俩人也许就是房东说的那对民工夫妇。&lt;/p&gt;&#xA;&lt;p&gt;我突然冷笑了一下，还夫妇呢，一看也就20来岁的样子，私奔出来的？还是新婚小夫妻？不自觉的笑了笑，自我解嘲的想：民工么， 农村出来的，结婚普遍早。那看来以后得称呼，那男人，那女人了。这样想着，还抑制不住的笑出了声。&lt;/p&gt;&#xA;&lt;p&gt;第一次跟这对小夫妻接触是因为我忘记了带钥匙，进不了门，便找他们借工具，想把门撬开。&lt;/p&gt;&#xA;&lt;p&gt;那是我第一次真正的去敲那个门，也是第一次去光顾那个阴暗的储藏室。&lt;/p&gt;&#xA;&lt;p&gt;门开了，&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】风湿性关节炎的真正起因</title>
      <link>https://blog.pugwoo.com/posts/2010/%E9%A3%8E%E6%B9%BF%E6%80%A7%E5%85%B3%E8%8A%82%E7%82%8E%E7%9A%84%E7%9C%9F%E6%AD%A3%E8%B5%B7%E5%9B%A0/</link>
      <pubDate>Tue, 11 May 2010 18:20:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E9%A3%8E%E6%B9%BF%E6%80%A7%E5%85%B3%E8%8A%82%E7%82%8E%E7%9A%84%E7%9C%9F%E6%AD%A3%E8%B5%B7%E5%9B%A0/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://tieba.baidu.com/f?kz=333921475&#34;&gt;http://tieba.baidu.com/f?kz=333921475&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;风湿性关节炎的真正起因&#34;&gt;风湿性关节炎的真正起因&lt;/h2&gt;&#xA;&lt;p&gt;目前医学界对于普通型感冒、支气管炎、风湿性关节炎等一系列疾病病因的认识实际仍处于误解之中。对此本人将从一个全新的角度来尝试解读这个问题。传统观念已根深蒂固，这一新观点也许暂时难以被接受，但我深信，人类探寻的脚步不可能永远被挡在事实的大门之外。&lt;/p&gt;&#xA;&lt;p&gt;简单讲，在我们人体内，很容易发现一种物质，那么这究竟是一种什么物质呢？&lt;/p&gt;&#xA;&lt;p&gt;由于人们至今尚未弄清楚，因此当这种物质分别在鼻、气管、脉管、关节、肺、肾及心脏等不同部位出现时，人们便分别给出了各种不同的解释，并冠与不同的称谓，比如炎症反应物、痰、鼻涕、无菌性积液、沉积的血脂、粥样斑块等等。然而事实上，上述物质并非炎症反应物或血脂等，而是属于一种能量代谢性终产物质。那么要想真正认识这些问题，首先我们就应该对人体内的能量代谢功能问题有一个基本的认识。&lt;/p&gt;&#xA;&lt;p&gt;简单讲，我们人体所需的能量来源于各种食物。当食物进入人体之后，会先后进入两次分解程序，并且会产生出三种不同的终产物质，因此人体就必然要为此而配备三种排泄器官：&lt;/p&gt;&#xA;&lt;p&gt;第一次分解及排泄程序是食物在胃肠道内的合成性分解及终产物的肛肠排泄程序。通过这一程序之后，糖类、蛋白及脂肪和水分等物质会被提取出来，剩余的终产物会经由肛肠排出体外。&lt;/p&gt;&#xA;&lt;p&gt;肛肠，就是第一种终产物质的排泄器官；所摄入的水分会经由尿道排出体外。我们可以称其为第二种排泄功能器官；&lt;/p&gt;&#xA;&lt;p&gt;第二次分解，是糖类等物质在肌肉等组织内完成的，通过这一分解程序之后，糖类等物质中所含的热能会被释放出来并被人体利用。并且请注意——当糖类等物质释放出能量后，同时还会分解出部分终产物质。这是一种类似于蛋白形态的粘液质无色透明的液体。&lt;/p&gt;&#xA;&lt;p&gt;那么请注意！这种物质是由人体的皮肤汗腺排出体外的。因此，应该说汗腺实际就是第三种排泄功能器官。可令人遗憾的是，对于这种终产物质的产生及第三种汗腺排泄功能的存在问题，生理学界却至仍今毫无认识。正由于人们对此在认识上的缺失，因此，对于这种终产物质的产生和排泄的问题，以及在排泄的过程当中所出现的诸如：感冒、关节炎等种种异常性反应等问题，人们就不可避免的会做出种种似是而非的解释。&lt;/p&gt;&#xA;&lt;p&gt;道理实际并非十分复杂。&lt;/p&gt;&#xA;&lt;p&gt;人体需要消耗能量，能量来源于糖、蛋白及脂肪等能量的载体。我们知道，煤炭也属于能量载体，当煤炭释放能量后，会产生出灰烬等终产物质。实际上糖类等经释放能量后，同样也会产生出部分终产物质。这是一种类似于蛋白质形态的粘液质无色透明状液体。（类蛋白液）&lt;/p&gt;&#xA;&lt;p&gt;既然这种终产物质会产生，接下来就必然会相继出现一个终产物质的排泄问题。&lt;/p&gt;&#xA;&lt;p&gt;应该说，人体内的能量较大部分都是在肌肉等组织内消耗的。当肌肉组织内因耗能而产生了终产物质之后，人体会分别采取两种方式来排泄这些终产物质：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;第一种排泄方式是，利用皮肤汗腺就近分散排泄；&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;第二种排泄方式是，远距离输送后，再利用鼻及气管集中排泄。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;目前人们认为皮肤汗腺排汗的作用只是调节体温，认为汗液只是水分，这种认识实际是很片面的。事实上汗腺的排泄功能除了调节体温外，同时还担负着排泄能量代谢性终产物质的任务。&lt;/p&gt;&#xA;&lt;p&gt;因此在汗液中还应该含有一种类似蛋白形态的黏液质物质。当这种物质由汗腺排出后，一部分会粘附在贴身内衣上，（经浸泡，内衣会发粘）一部分会粘附在皮肤上，经热水烫泡后这种物质极易脱落，那么大家都洗（搓）过澡，因此都应该看到过。&lt;/p&gt;&#xA;&lt;p&gt;如果排汗后不洗脚，这种物质会霉变发臭。较长时间不洗澡，这种物质会干燥并生成头屑、肤屑等。虽然这种物质无色透明，从直观的角度难以观察，但只要留心，从很多方面都很容易发现。要验证也应该是很容易的。&lt;/p&gt;&#xA;&lt;p&gt;总之，我们必须要明确，汗腺担负着两项功能任务：一是调节体温；二是排泄终产物质。还必须要明确，汗液实际是包含水分和类蛋白液的一种混合性液体。&lt;/p&gt;&#xA;&lt;p&gt;如果我们不能明确这几点，那么当人体排汗时因着凉而感冒后，汗液改变排泄方式由鼻及气管以所谓鼻涕及痰液的形态排出时，所排出的汗液又为什么会是一种粘液质形态等一系列问题便无法理解。&lt;/p&gt;&#xA;&lt;p&gt;在日常生活中，相信大多数人都知道当人体着凉之后会引起感冒。但西医认为是着凉造成了免疫力降低。而中医则认为是风寒直接进入人体的问题。而事实上着凉的影响仅限于皮肤表面的汗腺孔。是低温影响了正常的排汗功能。&lt;/p&gt;&#xA;&lt;p&gt;在正常情况下，人体只需利用皮肤汗腺就可以完成排汗任务。但是皮肤汗腺的开启功能对环境温度的变化具有一种敏感性。当汗腺正在排汗时，如果此时气温突然降低，汗腺孔受到低温刺激（也就是着凉）后便会快速闭合。很显然，汗腺孔如果突然闭合，就必然会将尚未排出体外的汗液阻留在体内。汗液是一种废弃物，而汗腺并不是废弃物的存储器官。因此当汗液被阻留于汗&#xA;腺内之后，人体便会改变排汗方式，会将汗液由比较暴露容易受到气温影响的皮肤汗腺转送到相对比较隐蔽的大汗腺，也就是鼻及气管内的黏液腺来排泄。&lt;/p&gt;&#xA;&lt;p&gt;当汗液由鼻及气管黏液腺排出时，就是所谓的鼻涕及痰液。如此看来，人体排泄鼻涕及痰液实际就是在排汗。&lt;/p&gt;&#xA;&lt;p&gt;由此不难理解，&amp;ldquo;着凉&amp;quot;对人体产生影响的后果，就是低温会影响汗液在皮肤汗腺的正常排出。因此，人体便会改变汗液的排泄方式。&lt;/p&gt;&#xA;&lt;p&gt;也可以说鼻及气管是皮肤汗腺的代偿性排汗功能器官，是正常的排汗器官。因此在正常情况下人体借助鼻及气管排汗是不应该使人体产生任何不适的。这就是日常我们所常见的流涕及排痰。&lt;/p&gt;&#xA;&lt;p&gt;既然如此，为什么当人体排汗时着凉后，却往往会表现出感冒、支气管炎、哮喘、关节炎、脉管炎，等等一系列病态的反应呢？简单讲，有如下一些原因。&lt;/p&gt;&#xA;&lt;h3 id=&#34;一被阻留的汗液借以转流渠道的开放性问题&#34;&gt;一、被阻留的汗液借以转流渠道的&amp;quot;开放性&amp;quot;问题：&lt;/h3&gt;&#xA;&lt;p&gt;从解剖学不难发现，人体内并不存在一套类似血管的封闭式管道系统专供被阻留汗液转流。被阻留汗液只是借助了皮下结缔组织间的&amp;quot;生理性间隙&amp;quot;间流通的。这是一种呈开放性的流通渠道。（后文暂称开放腺）由于这种&amp;quot;开放性&amp;quot;对汗液的流通缺乏管控力，因此，在正常情况下，汗液可以在开放腺内正常流通。但是一旦遇到异常情况后，被阻留的汗液（后文暂称阻留汗）在转流时就有可能会脱离开开放腺，转而打开一些非正常流通渠道，并借此误流入一些本不应该进入的部位。比如四肢部位的阻留汗一旦发生异常性流动，就极有可能就近误流入肢体的各关节内。&lt;/p&gt;&#xA;&lt;p&gt;所谓无菌性关节积液，实际就是汗液。而所谓变态说、免疫细胞攻击自身等学说实际都是人们在理不清头绪时必然会产生的种种揣测。可以说，阻留汗一旦发生异常性流动，在体内就可以达到一种几乎是无孔不入的地步。因此这就造成了因汗液的误入所引起疾病种类的广泛性和多样性。&lt;/p&gt;&#xA;&lt;p&gt;有观点认为很多疾病的发生都与感冒有关。但确切的讲，应该说包括感冒在内的很多疾病都与人体排汗时着凉有关。那么大概讲，与此有直接或间接关系的疾病应该不下数十种。&lt;/p&gt;&#xA;&lt;h3 id=&#34;二影响人体的温差大小或着凉深浅度的问题&#34;&gt;二、影响人体的温差大小，或着凉深浅度的问题：&lt;/h3&gt;&#xA;&lt;p&gt;如果人体排汗时只是受到较轻微的低温刺激，轻度低温一般只会影响皮肤表面的汗腺孔，此时被阻留的汗液会比较正常的在皮下开放腺内转流。如果人体一旦受到较严重的深度低温刺激，深度低温就有可能会影响到皮下的开放腺，并造成开放腺收缩，从而影响阻留汗在开放腺内的正常流通。如果阻留汗无法在开放腺内正常流通，阻留汗就极有可能会打开一些非正常的流通渠道，并会借此误流入一些本不应该进入的人体部位。&lt;/p&gt;&#xA;&lt;h3 id=&#34;三汗液的所含成分问题&#34;&gt;三、汗液的所含成分问题：&lt;/h3&gt;&#xA;&lt;p&gt;人体排汗有两项功用，一是调节体温，二是排泄终产物质。调节体温的实际意义就是当人体内产生了过剩热能后，为避免过剩热能造成体温超高，人体便通过排汗将过剩热能排出体外。很显然，当人体排汗时着凉后汗液会被阻留在体内，因此过剩热能也自然会被阻留于体内。&lt;/p&gt;&#xA;&lt;p&gt;当人体因排汗时着凉而感冒后会引起发烧，这种发烧现象实际就是过剩热能所造成的。还有一些问题，比如能量分解时会产生一种有色物质，这种物质会造成尿色及鼻涕和痰液颜色发黄的问题。比如二氧化碳气体的排泄也会发生异常，并会在体内形成一种游离性气体等问题暂略。通过上述分析后，对人体排汗时着凉后为什么会引起感冒等一系列排汗着凉性疾病就不难理解。&lt;/p&gt;&#xA;&lt;p&gt;感冒   鼻炎  支气管炎   哮喘   扁桃腺炎等&lt;/p&gt;&#xA;&lt;p&gt;当人体排汗时着凉后，汗液会被阻留于体内。人体会将被阻留的汗液转送到鼻器官排泄，即排泄鼻涕，如果由于冷空气对鼻黏液腺的刺激等原因造成黏液腺开启困难，致使汗液在鼻器官内较大量滞留，就会引起鼻塞。如果汗液较长期滞留于鼻器官内，所引起的就是鼻炎、鼻窦炎等。&lt;/p&gt;&#xA;&lt;p&gt;当过剩热能也被阻留于体内之后，过剩热能会以一种&amp;quot;游离热&amp;quot;的形态在人体内四处游动，并会造成体温升高。当其游移到头部位后，会造成移动性头痛。过剩热能无论在人体任何部位&amp;quot;燃烧&amp;quot;都会对该部位造成程度不等的伤害，并引起不适。比如周身酸痛等。&lt;/p&gt;&#xA;&lt;p&gt;阻留汗还会转流入气管，并以痰液的形式排出，如果由于气管黏液腺开启困难，由于痰液过于粘稠等原因，造成汗液在气管排泄困难，就会引起气管、支气管炎，哮喘等&amp;hellip;&amp;hellip;扁桃腺位于鼻及气管之间，因此阻留汗极易就近误入扁桃腺，而扁桃腺体没有液体分泌腺，因此汗液最终会在扁桃体内留下小干燥体。就是类蛋白液丢失了水分后所剩余的类蛋白。&lt;/p&gt;&#xA;&lt;p&gt;肺气肿   肺心病   风湿性心脏病   冠心病等&lt;/p&gt;&#xA;&lt;p&gt;如果阻留汗进一步向纵深转流，就极容易流入肺及心脏等部位，所引起的就是肺气肿、肺心病，风湿性心脏病、冠心病等&amp;hellip;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;脉管炎   动脉粥样硬化   血栓&lt;/p&gt;&#xA;&lt;p&gt;如果阻留汗误入脉管壁，就会引起脉管病变，汗液由管壁渗出，就形成粥样斑块，斑块脱落就形成栓子&amp;hellip;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;风湿、类风湿性关节炎   肩周炎   强直性脊柱炎等&lt;/p&gt;&#xA;&lt;p&gt;如果阻留汗误入关节，就会引起关节积液，积液长期滞留于关节内，就会引起关节强直，甚至坏死。&lt;/p&gt;&#xA;&lt;p&gt;由于上述疾病都是同一个原因所引起的，并且汗腺分布面积较广，不同部位的阻留汗回流路线不同，所牵累的器官也会不同，因此上述疾病有可能单独出现，也有可能几种同时出现。也有可能以某一种为主，其他为辅。&lt;/p&gt;&#xA;&lt;p&gt;在此，我们只须明确积液、斑块、痰等物质的来源，其它问题医学专著中早有解释。&lt;/p&gt;&#xA;&lt;p&gt;因排汗着凉所能引起的疾病还有很多，暂略。&lt;/p&gt;&#xA;&lt;p&gt;有观点认为，破除一种旧的观念，比建立一种新的观念要困难的多。那么问题究竟会如何呢？&lt;/p&gt;&#xA;&lt;p&gt;我相信，检验就是法官，而事实就是定音锤。&lt;/p&gt;&#xA;&lt;p&gt;本观点尚不成熟，很多问题尚待完善，本人真诚的希望有关人士及科研机构能与本人合作，共同完成这一课题。合作方式不限。&lt;/p&gt;&#xA;&lt;p&gt;本人只想求证一个问题，别无他意，本观点难免会与专家们的观点相悖，还请多多见谅！&lt;/p&gt;&#xA;&lt;p&gt;真诚欢迎网友们评论、批评、指导。本人将万分的感激！&lt;/p&gt;&#xA;&lt;p&gt;邮箱： &lt;a href=&#34;mailto:zhaojichsh@2008.sina.com&#34;&gt;zhaojichsh@2008.sina.com&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】中国和美国的警察入警誓词</title>
      <link>https://blog.pugwoo.com/posts/2010/%E4%B8%AD%E5%9B%BD%E5%92%8C%E7%BE%8E%E5%9B%BD%E7%9A%84%E8%AD%A6%E5%AF%9F%E5%85%A5%E8%AD%A6%E8%AA%93%E8%AF%8D/</link>
      <pubDate>Thu, 22 Apr 2010 16:02:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E4%B8%AD%E5%9B%BD%E5%92%8C%E7%BE%8E%E5%9B%BD%E7%9A%84%E8%AD%A6%E5%AF%9F%E5%85%A5%E8%AD%A6%E8%AA%93%E8%AF%8D/</guid>
      <description>&lt;p&gt;中国警察入警誓词：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;我宣誓，我志愿成为一名中华人民共和国人民警察，我保证忠于中国共产党，忠于人民，忠于法律；听从指挥；严守纪律，保守秘密；秉公执法，清正廉洁；格尽职守，不怕牺牲；全心全意为人民服务。我愿献身于崇高的人民公安事业，为实现自己的誓言而努力奋斗！&amp;quot;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;美国警察入警誓词：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;作为一名警官，我最基本的职责是为公民服务，保卫他们的生命和财产,保护无辜的人不受冤屈，保护弱小者不受欺压，打击暴力，维护和平的社会秩序，尊重宪法赋予每个公民的自由、平等及享受司法公正的权利。我将保证我的私生活干净清白；在面对嘲讽、蔑视和危险时，我将保持镇定与勇气；我将严格自律，待人和善并永远乐于助人。我将在我的个人生活和职业生涯中永远保持诚实，我将作一名遵守法律和内部规章的模范。除非工作需要，我将严守机密。我将永远不会因个人的感觉、偏见、憎恶或友谊而影响我的执法。我绝不向暴力和犯罪妥协，我将文明执法，绝不带有任何邪念、恐惧和恩惠。我绝不滥用武力，绝不收受贿赂。我的警徽是我向公众许下的诺言的象征，我将时刻佩戴它，努力去实践我的诺言，在上帝面前，我将把我的一切奉献给我所崇敬的事业。&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>【转】坚强乐观的背水女孩----网友的一首诗</title>
      <link>https://blog.pugwoo.com/posts/2010/%E5%9D%9A%E5%BC%BA%E4%B9%90%E8%A7%82%E7%9A%84%E8%83%8C%E6%B0%B4%E5%A5%B3%E5%AD%A9----%E7%BD%91%E5%8F%8B%E7%9A%84%E4%B8%80%E9%A6%96%E8%AF%97/</link>
      <pubDate>Tue, 06 Apr 2010 16:54:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E5%9D%9A%E5%BC%BA%E4%B9%90%E8%A7%82%E7%9A%84%E8%83%8C%E6%B0%B4%E5%A5%B3%E5%AD%A9----%E7%BD%91%E5%8F%8B%E7%9A%84%E4%B8%80%E9%A6%96%E8%AF%97/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://edu.163.com/photoview/25UA0029/69.html#q=1&#34;&gt;http://edu.163.com/photoview/25UA0029/69.html#q=1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;网易广东深圳罗湖网友 liuxingyu198 的原贴：&lt;/p&gt;&#xA;&lt;p&gt;小时候家里在农村 遭遇干旱&lt;/p&gt;&#xA;&lt;p&gt;我就和邻居家的孩子一起&lt;/p&gt;&#xA;&lt;p&gt;拿着干粮&lt;/p&gt;&#xA;&lt;p&gt;在看不到天的井下面等水&lt;/p&gt;&#xA;&lt;p&gt;等上一整天&lt;/p&gt;&#xA;&lt;p&gt;也就能收集大概四十公斤全是泥沙的水&lt;/p&gt;&#xA;&lt;p&gt;人很小&lt;/p&gt;&#xA;&lt;p&gt;拿不动&lt;/p&gt;&#xA;&lt;p&gt;就等着爸爸妈妈来挑水&lt;/p&gt;&#xA;&lt;p&gt;晚上爸爸妈妈到水井来接我&lt;/p&gt;&#xA;&lt;p&gt;一般都是披星戴月的时候&lt;/p&gt;&#xA;&lt;p&gt;水井那边还有很大一片坟地&lt;/p&gt;&#xA;&lt;p&gt;当时我可是怕得要死&lt;/p&gt;&#xA;&lt;p&gt;但是没办法&lt;/p&gt;&#xA;&lt;p&gt;家里第二天一天的用水都得靠我&lt;/p&gt;&#xA;&lt;p&gt;于是就一个人在那里等着&lt;/p&gt;&#xA;&lt;p&gt;听着猫头鹰的叫声&lt;/p&gt;&#xA;&lt;p&gt;自己给自己壮胆&lt;/p&gt;&#xA;&lt;p&gt;当时我很乖&lt;/p&gt;&#xA;&lt;p&gt;会把两个水桶都装满水&lt;/p&gt;&#xA;&lt;p&gt;然后会用一个塑料壶装满一滴一滴接来的干净的没有泥沙的水&lt;/p&gt;&#xA;&lt;p&gt;因为我爸爸喜欢喝茶&lt;/p&gt;&#xA;&lt;p&gt;这点水用来烧开泡茶喝&lt;/p&gt;&#xA;&lt;p&gt;晚上爸爸妈妈来接我&lt;/p&gt;&#xA;&lt;p&gt;老远就拿着手电筒喊着我的名字&lt;/p&gt;&#xA;&lt;p&gt;我听到他们喊我名字&lt;/p&gt;&#xA;&lt;p&gt;我都会哭着应答&lt;/p&gt;&#xA;&lt;p&gt;因为一半是害怕&lt;/p&gt;&#xA;&lt;p&gt;一半是饿了&lt;/p&gt;&#xA;&lt;p&gt;我只是在他们来的时候会哭&lt;/p&gt;&#xA;&lt;p&gt;一个人的时候我不哭&lt;/p&gt;&#xA;&lt;p&gt;我在那里背诗&lt;/p&gt;&#xA;&lt;p&gt;写完这段话&lt;/p&gt;&#xA;&lt;p&gt;我哭了&lt;/p&gt;&#xA;&lt;p&gt;当年我只有七岁&lt;/p&gt;&#xA;&lt;p&gt;现在我已经重点大学毕业四年了&lt;/p&gt;&#xA;&lt;p&gt;在一个知名企业做着管理工作&lt;/p&gt;&#xA;&lt;p&gt;年薪也有几十万了&lt;/p&gt;&#xA;&lt;p&gt;但是看到这个孩子&lt;/p&gt;&#xA;&lt;p&gt;我还是想哭&lt;/p&gt;&#xA;&lt;p&gt;因为我有类似的经历&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】目前最快的数独求解程序 - 实现了Knuth的Dancing Links&#43;Algorithm X算法</title>
      <link>https://blog.pugwoo.com/posts/2010/%E7%9B%AE%E5%89%8D%E6%9C%80%E5%BF%AB%E7%9A%84%E6%95%B0%E7%8B%AC%E6%B1%82%E8%A7%A3%E7%A8%8B%E5%BA%8F/</link>
      <pubDate>Sun, 07 Mar 2010 23:28:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E7%9B%AE%E5%89%8D%E6%9C%80%E5%BF%AB%E7%9A%84%E6%95%B0%E7%8B%AC%E6%B1%82%E8%A7%A3%E7%A8%8B%E5%BA%8F/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//from: http://code.google.com/p/klsudoku/source/checkout&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//半瓶墨水修改于 2009 Sept 18&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//References&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//  http://en.wikipedia.org/wiki/Knuth&amp;#39;s_Algorithm_X&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//  http://en.wikipedia.org/wiki/Dancing_Links&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//  http://en.wikipedia.org/wiki/Exact_cover#Sudoku&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;using namespace std;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define RR 729&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define CC 324&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define INF 1000000000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; mem1[&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; mem2[&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;mem &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; mem1;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; ch[&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; cnt[CC&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; scnt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; &lt;span style=&#34;color:#75715e&#34;&gt;//solution count&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; node {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; r,c;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;up;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;down;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;left;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;right;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}head,all[RR&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;CC&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;99&lt;/span&gt;],row[RR],col[CC];&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;all_t&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;inline&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; r,&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; c) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cnt[c]&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;all[&lt;span style=&#34;color:#66d9ef&#34;&gt;all_t&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;r&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;r;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;c;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;row[r];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;row[r].right;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;col[c];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;col[c].down;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;inline&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;remove&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; c) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;t,&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;tt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[c].right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;col[c].left;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[c].left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;col[c].right;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;col[c].down;t&lt;span style=&#34;color:#f92672&#34;&gt;!=&amp;amp;&lt;/span&gt;col[c];t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right;tt&lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt;t;tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            cnt[tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c]&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;inline&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;resume&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; c) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;t,&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;tt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;col[c].down;t&lt;span style=&#34;color:#f92672&#34;&gt;!=&amp;amp;&lt;/span&gt;col[c];t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down) {        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left;tt&lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt;t;tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            cnt[tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c]&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[c].left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;col[c];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[c].right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;col[c];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;print_solution&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;m){&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; ans[&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;m[i]&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; val&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;m[i]&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ans[t]&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;val;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%d&amp;#34;&lt;/span&gt;,ans[i]);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;solve&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; k)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(head.right&lt;span style=&#34;color:#f92672&#34;&gt;==&amp;amp;&lt;/span&gt;head) {&lt;span style=&#34;color:#75715e&#34;&gt;//got one solution&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;scnt) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;memcpy&lt;/span&gt;(mem2, mem1, &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(mem1));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        mem &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; mem2;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      scnt&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;t,&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;tt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; min&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;INF,tc;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;head.right;t&lt;span style=&#34;color:#f92672&#34;&gt;!=&amp;amp;&lt;/span&gt;head;t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(cnt[t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c]&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;min) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            min&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;cnt[t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            tc&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(min&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)&lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;remove&lt;/span&gt;(tc);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;col[tc].down;t&lt;span style=&#34;color:#f92672&#34;&gt;!=&amp;amp;&lt;/span&gt;col[tc];t&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        mem[k]&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;r;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right;tt&lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt;t;tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;remove&lt;/span&gt;(tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;solve&lt;/span&gt;(k&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (scnt &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left;tt&lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt;t;tt&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;resume&lt;/span&gt;(tt&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;c);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;resume&lt;/span&gt;(tc);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; argc, &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;**&lt;/span&gt;argv) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (argc &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; argv[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;size_t&lt;/span&gt; len &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;strlen&lt;/span&gt;(p);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (len&lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i,j,k;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (i&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; ((&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;0&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ch[i] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ch[i] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    p&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ch[&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(ch[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;e&amp;#39;&lt;/span&gt;)&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;all_t&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;memset&lt;/span&gt;(cnt,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,&lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(cnt));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  head.left&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;head;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  head.right&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;head;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  head.up&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;head;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  head.down&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;head;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  head.r&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;RR;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  head.c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;CC;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(i&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;CC;i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;i;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].r&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;RR;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].up&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;col[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].down&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;col[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].left&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;head;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;head.right;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;col[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    col[i].right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;col[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(i&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;RR;i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].r&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;i;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;CC;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].left&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;row[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].right&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;row[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].up&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;head;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].down&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;head.down;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].up&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;down&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;row[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].down&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;up&lt;span style=&#34;color:#f92672&#34;&gt;=&amp;amp;&lt;/span&gt;row[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(i&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;RR;i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; r&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;i&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;i&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; val&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;i&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(ch[r&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;c]&lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt;ch[r&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;c]&lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt;val&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;0&amp;#39;&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt;(i,r&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;val&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt;(i,&lt;span style=&#34;color:#ae81ff&#34;&gt;81&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;c&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;val&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; tr&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;r&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; tc&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;c&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt;(i,&lt;span style=&#34;color:#ae81ff&#34;&gt;162&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;(tr&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;tc)&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;val&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt;(i,&lt;span style=&#34;color:#ae81ff&#34;&gt;243&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;r&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;c);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;(i&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;i&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;RR;i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].left&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;right&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;row[i].right;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    row[i].right&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;left&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;row[i].left;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;solve&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (scnt&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;){&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;print_solution&lt;/span&gt;(mem1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;print_solution&lt;/span&gt;(mem2);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;2 or mroe solutions found&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  } &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (scnt&lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;print_solution&lt;/span&gt;(mem1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;one solution found&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  } &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;printf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;NO solution&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>网络防骗与麦当劳肯德基为什么开在一起</title>
      <link>https://blog.pugwoo.com/posts/2010/%E7%BD%91%E7%BB%9C%E9%98%B2%E9%AA%97%E4%B8%8E%E9%BA%A6%E5%BD%93%E5%8A%B3%E8%82%AF%E5%BE%B7%E5%9F%BA%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BC%80%E5%9C%A8%E4%B8%80%E8%B5%B7/</link>
      <pubDate>Sun, 07 Mar 2010 23:04:17 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E7%BD%91%E7%BB%9C%E9%98%B2%E9%AA%97%E4%B8%8E%E9%BA%A6%E5%BD%93%E5%8A%B3%E8%82%AF%E5%BE%B7%E5%9F%BA%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BC%80%E5%9C%A8%E4%B8%80%E8%B5%B7/</guid>
      <description>&lt;p&gt;大概八年前，读初二的时候我就开始网上购物。一开始在易趣买电池、机箱风扇等小东西，后来在手机之家论坛买手机，再到后来在淘宝买了很多东西。刚开始在网上买东西时，都会听到很多人说网上买东西不可靠，容易被骗，到读大学时，我对一班新舍友提到网上购物时，他们一个也不信。&lt;/p&gt;&#xA;&lt;p&gt;有时我在想，我肯定有某种判断标准，保证我很少买东西被骗。是的，很简单的标准，看卖家的反馈是否自由，即卖家是否有一个大家评论的地方，是否会私自删除评论，是否伪造评论。&lt;/p&gt;&#xA;&lt;p&gt;最可怕的情况不是没有评论，而是制造假评论。不少买手机的网站都是骗人的，他们所说的全新手机多数有问题，舍友就被骗过一次，他们的特点就是自己捏造评论。要鉴别他们真伪，只需要给他们留言，说&amp;quot;我上个星期在你们这里买了个手机，现在坏了，开不了机，怎么办？&amp;quot;，一般情况下如果他们删掉留言，那就可以肯定他们是骗子了。当然，不删也未必不是骗子，只是可能性少了很多。&lt;/p&gt;&#xA;&lt;p&gt;再有一个骗人的场合就是电台，这种古老的东西至今十分活跃，每天晚上都有骗人把戏。首先电台会雇佣一批托，男女老少都有，让人觉得这些人真的是听众，然后让他们打电话到电台，反馈他们的产品是如何如何有效，这时候如果有真正的听众打电话进去，他们就会以&amp;quot;后台&amp;quot;的方式接待听众，推销产品，真正的听众的对话是完全不可能通过电台传播出去的。这同样是没有评论空间的诈骗。&lt;/p&gt;&#xA;&lt;p&gt;所以，网上购物，请确保有评论的权利，并且这些评论真实，无过滤。没有评论的商家十之八九是见不得光，骗人的，这同时也是为什么天朝害怕Web2.0的原因。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;麦当劳和肯德基往往开在一起，&lt;/p&gt;</description>
    </item>
    <item>
      <title>记秋溪营老爷</title>
      <link>https://blog.pugwoo.com/posts/2010/%E8%AE%B0%E7%A7%8B%E6%BA%AA%E8%90%A5%E8%80%81%E7%88%B7/</link>
      <pubDate>Fri, 26 Feb 2010 18:00:36 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E8%AE%B0%E7%A7%8B%E6%BA%AA%E8%90%A5%E8%80%81%E7%88%B7/</guid>
      <description>&lt;p&gt;营老爷是潮州传统习俗，整个正月的某一天都是某个村子营老爷的热闹日子，这里没有元宵节，而营老爷这一天就如同北方的元宵节一样，但庆祝的方式更为热闹。白天，村里的&amp;quot;老爷&amp;quot;雕像会被抬着走遍全村，伴随着每家每户的鞭炮声，到哪响到哪。晚上，全村每家每户会拿着灯笼沿着村子走一圈，放鞭炮放烟花，黑夜中的点点灯笼，是我儿时一幅美好的回忆。&lt;/p&gt;&#xA;&lt;p&gt;家乡营老爷的日子是正月十七，今年开学早，是去不了了，去年玩得很尽兴。秋溪则是我细姨的村子，正月十三营老爷，就是今天。&lt;/p&gt;&#xA;&lt;p&gt;小时候妈妈也曾骑单车载我去过好几次秋溪，那里有一座高高的山，这是我们村子所没有的，所以我特别想去爬山。小时候有一次，在我的再三要求下，妈妈答应在秋溪住一晚，隔天早上去爬山摘野生蓝莓。那天早上，当我爬到山顶，我真觉得太阳离我近了好多。而那些野生蓝莓，小小的，酸甜酸甜。&lt;/p&gt;&#xA;&lt;p&gt;至于秋溪的营老爷，小时候也去过好几次，但都是白天的回忆，形式和热闹程度和我们村子差不多，也勾不起我特别的回忆。不过据说秋溪村晚上和我们有点不同，他们拿着甘蔗的尾部，有叶子那段来勾灯笼。这吸引我一直想看个究竟，可一直没这个机会，包括今年。&lt;/p&gt;&#xA;&lt;p&gt;于是，每次下午离开秋溪时，就会有那种想留下来一看究竟的感觉。看着他们的热闹正要开始时，我却要回家，那种感觉就是这样难以形容，以至于今天还是这么熟悉。&lt;/p&gt;&#xA;&lt;p&gt;算起来我也有五六年没去过秋溪了，村子变化了些，路都变水泥路，老厕所都被囤掉了建新的，山还是一样的山。下午到山上去摘杨桃和鼠尾草，太阳终于出来，风很好，一望无际，这种清晰的感觉别说是在广州不可能看到，在潮州市区也少见，上一次这种感觉是在老家。&lt;/p&gt;&#xA;&lt;p&gt;喜欢鲁迅的文章，仅仅是因为他那几篇记录他童年的文章，一直是那种感觉，浓浓农村气息的童年。&lt;/p&gt;</description>
    </item>
    <item>
      <title>和一名老党员聊天</title>
      <link>https://blog.pugwoo.com/posts/2010/%E5%92%8C%E4%B8%80%E5%90%8D%E8%80%81%E5%85%9A%E5%91%98%E8%81%8A%E5%A4%A9/</link>
      <pubDate>Sat, 13 Feb 2010 11:02:28 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E5%92%8C%E4%B8%80%E5%90%8D%E8%80%81%E5%85%9A%E5%91%98%E8%81%8A%E5%A4%A9/</guid>
      <description>&lt;p&gt;前几天，舅舅来我家做客，他年近50岁，19岁起就参军入党，后来在市里某居委会当了个不大不小的官。我舅舅做事对得起良心，当公务员几十年，至今家境也一般。&lt;/p&gt;&#xA;&lt;p&gt;不知怎的，我们聊到我大学是否入党。我说我不入党，进得去出不来。其实我想说我不想与那些人同流合污，但他是党员，我不能当着他的面说，这样会以偏概全中伤他人。他说入党的都是社会的精英，入党是一件值得光荣的事。我说我们系第一名没入党，也有很多有识之士并非党员。党员中谋私的比例并不比群众中犯罪的比例少，党员和群众的素质是相当的。&lt;/p&gt;&#xA;&lt;p&gt;然后他就列举了很多入党的好处，我知道他出发点是为我好，谁不想多赚点钱呢。&lt;/p&gt;&#xA;&lt;p&gt;第一个例子，某政府科研部门，有我和A、B三人，A是党员，我和B不是。现在上级要提拔人才，选一人当头，这时，就算我能力强过A也没用，因为他是党员。几乎所有政府单位手下管有人的人都是党员，有那么一两个&lt;a href=&#34;http://dig.pugwoo.com/2010/02/blog-post.html&#34;&gt;例外&lt;/a&gt;。这个例子说明在政府、国企单位，党员是升迁的必要条件。&lt;/p&gt;&#xA;&lt;p&gt;第二个例子，有两家公司A、B，竞标政府某项目，A的头是党员、有政府人脉，B技术牛、提供价格低。最后，政府肯定会选择A，因为他政治面貌好，可靠，稳定压倒一切。&lt;/p&gt;&#xA;&lt;p&gt;第三个例子，党就像一个圈子，入党就可以交到这个圈子里很多朋友。如果有一天，骑摩托车被交警拦住，没带证，如果是党员有关系，say某交警局某某的朋友，则交警说&amp;quot;这次就算啦，下次注意点&amp;quot;；如果没有人脉，那就扣车扣分，一堆麻烦。这个例子不特殊，生活中大量存在这样容易就容易，麻烦就麻烦得要死的事，这么微妙的关系就在于有没有那点关系。&lt;/p&gt;&#xA;&lt;p&gt;还有好些例子，这些例子都说明无论在工作、生活，无论在政府部门还是民营企业工作，有一个党员的身份会带来很多好处和便利。这个我当然承认，这些例子基本上都合法，但获得这些好处也要付出代价。&lt;/p&gt;&#xA;&lt;p&gt;我担心这个代价来自群体压力，我问如果一个部门里有A、B和我，A、B都贪污，那如果我不贪，他们就会排斥我，如果我贪，这是我现在觉得很可耻的。聊着聊到了贪污问题，舅舅说党员里面绝大多数是好的，没贪污。我妈妈插了句，弟（叫我舅舅），你们单位的头做人怎样？舅舅不置可否，说起贪这个东西。&lt;/p&gt;&#xA;&lt;p&gt;话说有个政府项目，拆迁某旧区，A当政府负责人，A指派某建筑单位B接这项目，B完成后为了答谢A，送给A些东西。这能算贪污吗？这分明就是私人之间的知恩图报嘛。我为了答谢你，送你点东西不很合理吗？&lt;/p&gt;&#xA;&lt;p&gt;假设这项目拨款10万，事后B送给A两条烟，难道这就贪污了？B拿了10万，帮B的A就不能拿B送的点东西吗？别说两条烟，就是1万、5万，都是合理的。&lt;/p&gt;&#xA;&lt;p&gt;这很明显是种潜规则，我想解释这样做的坏处。现在都是公开招标了，但这样的潜规则依然有。假设有政府A，有个10万元项目，B、C公司竞标，B公司懂潜规则，C不想这样做。B公司为了竞到标，在需要一样情况下出价要比C少点点，或者说很多家公司竞标的最低价格就是完成这项项目最低的市场价（成本价+公司能接受的利润）。这样B就以最低的市场价拿到项目，但B为了事后潜规则下A，就得扣下点钱，这样B公司就以低于市场价的价格去完成这个项目，他们一般就靠偷工减料来完成，导致质量不过关，豆腐渣，最后损害的人民大众。&lt;/p&gt;&#xA;&lt;p&gt;我觉得我这个反驳很好，但舅舅说这是拆迁，没有最后质量问题。我愣了下，难道修公路建桥这个例子就不行了吗？现在想想，用拆迁做例子还有好处，就是没所谓豆腐渣问题。China = 拆哪？&lt;/p&gt;&#xA;&lt;p&gt;舅舅马上举了另一个例子，这个是真实的，某日市长生病住院，（我以为舅舅要说他住院不要钱），他的部下、朋友四面八方排长龙来慰问他，送东西送钱，你能说这是贪污吗？&lt;/p&gt;&#xA;&lt;p&gt;我只能说不是，这法律上没法界定。这个例子也让我惊呼贪污真是防不胜防，他们狡猾得很。舅舅虽然不贪，也很凭良心做事，但这样的思想确实我的思想相差巨大，党在管人这方面，确实非常成功，连思想都管得严严密密。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】领导的秘密</title>
      <link>https://blog.pugwoo.com/posts/2010/%E9%A2%86%E5%AF%BC%E7%9A%84%E7%A7%98%E5%AF%86/</link>
      <pubDate>Sat, 30 Jan 2010 17:03:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E9%A2%86%E5%AF%BC%E7%9A%84%E7%A7%98%E5%AF%86/</guid>
      <description>&lt;h2 id=&#34;一&#34;&gt;（一）&lt;/h2&gt;&#xA;&lt;p&gt;很多年前，我读过一本书。名字都记不太清楚了。&lt;/p&gt;&#xA;&lt;p&gt;在这儿，我叫它《革命的秘密》，或《领袖的秘密》好了。&lt;/p&gt;&#xA;&lt;p&gt;书里写的是一个动物世界里的故事：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;从前，有一个庄园，归人类所有，庄园里有很多动物，都在人的管理下劳动、生息。开始的时候，人和动物都是和谐相处的。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;在庄园的动物里面，猪的智商是最高的。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;有一只猪在弥留之际，向动物们讲述了这样的一个事实：那就是在整个庄园里面，人是唯一不劳而获的。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;人既不拉磨，也不产奶。却是整个庄园的主宰。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;这只猪中的先哲这样指出：动物世界所有的不平等和苦难的根源，就是来自于暴虐的人类。人类的一切习惯都是罪恶。&lt;/p&gt;&#xA;&lt;p&gt;我们动物不是这样的，我们决不允许欺凌自己的同类。我们的理想就是：所有的动物都是平等的。不论其强壮还是弱小，头脑聪明还是简单。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;我们都是兄弟。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;先哲在启蒙后死去，革命的火种却已经燎原。&lt;/p&gt;&#xA;&lt;p&gt;后来，动物们发动了革命，把庄园的主人赶了出去。&lt;/p&gt;&#xA;&lt;p&gt;他们建立了自己的王国：动物民主主义草民共和国。&lt;/p&gt;&#xA;&lt;p&gt;在每个动物都看得到的地方，他们用油漆刷上了这样的标语：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;所有的动物都是平等的。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;二&#34;&gt;（二）&lt;/h2&gt;&#xA;&lt;p&gt;革命成功后，动物们热情高涨。他们忘我地劳动，团结友爱，完全不计较个人的得失。即使比过去生活得更为艰难和辛苦，也心满意足。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;一个已经当家做主的主人，不应该对自己的家园不满。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;而猪作为动物中的最高智慧者，他们退出了当初的劳作，担当起了领导动物世界的责任。&lt;/p&gt;&#xA;&lt;p&gt;他们搬进了过去人类才居住的房屋，批判性地学习和研究人类留下的各种文化遗产：喝牛奶、躺在大床上睡觉、喝啤酒、唱卡拉ok&amp;hellip;&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;经过痛苦的试验后，猪们宣布：这种人类主义的生活方式，对个人来说是腐朽堕落的，对领导来说是必要的。领导们总是牺牲自己，用各种人类主义的生活方式考验自己的思想道德和意志品质。&lt;/p&gt;&#xA;&lt;p&gt;猪们宣布为革命体验生活的结论，但认为没有必要解释：这种为种族牺牲的大义，很多低智商动物都是不理解的。&lt;/p&gt;&#xA;&lt;p&gt;而猪们领导下的公共信息解释部，也认为没必要解释。如果有解释，最多说两句：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;【1】你知道太多了；&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;【2】这对你不好。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;有时，还是有些猪，站在猪的对立面，说有些猪简直就是骗子。&lt;/p&gt;&#xA;&lt;p&gt;作为反对派，这些猪的最终结果是，要么叛国，要么自杀。彻底消失了。就跟从来没存在过一样。&lt;/p&gt;&#xA;&lt;p&gt;唯一的一点麻烦来自于：反对派的猪消失后，那些以前记录它们历史的文字，也必须一起消失。&lt;/p&gt;&#xA;&lt;p&gt;总之，随着时间的流失，动物们已经不清楚哪些历史是真的，哪些历史是假的。&lt;/p&gt;&#xA;&lt;p&gt;动物们记得在开国之初，领袖们是这样许诺的：&lt;/p&gt;&#xA;&lt;p&gt;所有的动物是平等的。&lt;/p&gt;&#xA;&lt;p&gt;很多年后，动物们相信是自己记错了。领袖就从来没这样说过。是他们理解错了。&lt;/p&gt;&#xA;&lt;p&gt;领袖的原意，其实是这样的：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;所有的动物是平等的。但是，有些动物比其他的动物更平等。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;三&#34;&gt;（三）&lt;/h2&gt;&#xA;&lt;p&gt;最近公司里的人都在看《潜伏在办公室》，大家彼此都有点特务的感觉。小满认为这样可不行。这成什么了。&lt;/p&gt;&#xA;&lt;p&gt;小满想问老鸟他怎么看。&lt;/p&gt;&#xA;&lt;p&gt;老鸟说：你要不要以毒攻毒，找本《鬼谷子》看看。&lt;/p&gt;&#xA;&lt;p&gt;小满说：那还是不要了。&lt;/p&gt;&#xA;&lt;p&gt;小满他们公司有领导，整天研究《鬼谷子》和《孙子兵法》的。研究到最后，恨自己不能生在古代。&lt;/p&gt;&#xA;&lt;p&gt;老鸟说：我给你讲本书吧。&lt;/p&gt;&#xA;&lt;p&gt;小满以为老鸟会谈什么《领导的秘密》，老鸟却跟他讲《革命的秘密》。有点摸不着头脑。&lt;/p&gt;&#xA;&lt;p&gt;老鸟看着他疑惑的眼神，说：你别急。我马上就说到你想听的那部分了。&lt;/p&gt;&#xA;&lt;p&gt;老鸟说：&lt;/p&gt;&#xA;&lt;p&gt;其实，无论是在革命，还是在管理，领导的秘密都是一样的。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;不管是动物还是人，都有一种本能：把自己置于一个头领的统治之下。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;所以，作为领导，你要动员群众，只需要做两件事就可以了：断言和重复。&lt;/p&gt;&#xA;&lt;p&gt;断言，就是我们通常说的下结论。也可以说是：喊口号。&lt;/p&gt;&#xA;&lt;p&gt;你要教育你的下属，就要喊口号，告诉他们：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;没有任何借口！&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;离开公司我什么鸟都不是！&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;hellip;..&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;你根本不用任何解释，也不说任何理由。用口号就可以震慑他们。&lt;/p&gt;&#xA;&lt;p&gt;有时，恐吓就是最好的领导。很多人就是想太多了，喊口号可以让他们觉得是自己不好。&lt;/p&gt;&#xA;&lt;p&gt;人家为何能忍，你不能忍：你不够坚强，不够听话！&lt;/p&gt;&#xA;&lt;p&gt;多喊一些口号，每天喊，每天讲。&lt;/p&gt;&#xA;&lt;p&gt;开始他们都是不信的，可是你天天喊，月月喊。然后，最好再编一些体操配合着让大家每天做。&lt;/p&gt;&#xA;&lt;p&gt;我敢跟你打赌：用不了多久，他们就习以为常了。&lt;/p&gt;&#xA;&lt;p&gt;然后，你在这个基础上，建立起考核基本制度。凡是违规的，就扣奖金。&lt;/p&gt;&#xA;&lt;p&gt;总之，一句话，要管理到位，就不能太有人性，必须树立起领导的权威。&lt;/p&gt;&#xA;&lt;p&gt;你要他们做什么，但不要告诉他们到底为什么。你是思想，他们是螺丝钉。&lt;/p&gt;&#xA;&lt;p&gt;我敢跟你打赌：只要你一旦做这么一次，下回就不用自己亲自做了。提拔一个能力差一点的下属，让他替你检查和执行规定。&lt;/p&gt;&#xA;&lt;p&gt;一般这种人，会比你执行的更坚决，更到位、更有效。&lt;/p&gt;&#xA;&lt;p&gt;一般来说，智力不够的人，总是忠实地效忠自己的上级，对到手的机会万分珍惜。他们总是幻想成为领导的左膀右臂。&lt;/p&gt;&#xA;&lt;h2 id=&#34;四&#34;&gt;（四）&lt;/h2&gt;&#xA;&lt;p&gt;小满说：听起来不错。这种方法有没有什么缺点呢？&lt;/p&gt;&#xA;&lt;p&gt;老鸟说：有一些小的瑕疵。&lt;/p&gt;&#xA;&lt;p&gt;有人会有异议，你就直接回答说：你无需知道太多。这对你不好。&lt;/p&gt;&#xA;&lt;p&gt;如果有人太聪明，老是跳出来怀疑，有些不听招呼了。就说他不符合公司的价值观，直接开除好了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>到家，寒假开始</title>
      <link>https://blog.pugwoo.com/posts/2010/%E5%88%B0%E5%AE%B6%E5%AF%92%E5%81%87%E5%BC%80%E5%A7%8B/</link>
      <pubDate>Mon, 25 Jan 2010 21:09:35 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E5%88%B0%E5%AE%B6%E5%AF%92%E5%81%87%E5%BC%80%E5%A7%8B/</guid>
      <description>&lt;p&gt;今天回家啦，8点起床，8点半出发，地铁超级拥挤，来了4趟车才上了客村站。10点10分到天河客运站，买了11点的票，下午4点多回到家。吃饭、洗澡，网络还不流畅，路由出了问题。&lt;/p&gt;&#xA;&lt;p&gt;为保证能买到票，我第一次尝试在网上订车票，在广州市公路客运网上售票系统买。没成功，对账失败。打电话过去，车站客服回复说没收到钱。而银行已扣钱，该网上售票系统是委托网付通和支付宝进行付款的。我选择了网付通，现在唯一的解释就是钱到了网付通，没给到网上售票系统那边，至今还没给，也没退回来，明天再咨询。&lt;/p&gt;&#xA;&lt;p&gt;突然感悟到做生意要怎样做？其中很大一点就是消除顾客的担心。网上购物这种生意尤为突出，像这次网上购票就让我觉得很没安全感，首先两家网站仅提供电话服务，而电话又常常繁忙，终于打通电话，服务人员也只能将情况交给后台处理，后台处理时间无法保证。现在我至少确定钱在哪里，如果我不知道网上售票系统和第三方合作，我真的不知道钱在哪里了；再者，网上购票本来就是很讲时效的，如果当天不解决，就很可能误事。&lt;/p&gt;&#xA;&lt;p&gt;易趣的贝宝没有成功，很大原因是一开始它无故扣压提现，又给不出原因和处理时间。很多卖家纷纷转向支付宝。唐骏在美国开了家成功的律师所，它不是以小时计费，而是以委托的事情的完成情况收费，这也打消了顾客怕花无底洞的钱的顾虑。坐Taxi的乘客往往喜欢讲好价而不是打表，他们担心司机会兜远路。&lt;/p&gt;&#xA;&lt;p&gt;写了2个月博客，感觉博客更像是一种个人记录，以前我更倾向于把博客看作是一个整理知识的地方，像wiki。但这很难做到，知识前后顺序需要编排，而个人学东西未必严格按照这个顺序，所以写出来的文章就可能颠倒顺序。我很喜欢Google Note，它就像一本活页夹，能为笔记排顺序。所以寒假的博客，更多地就当作个人记录，以后要建立一个像wiki的站，专门记录知识。&lt;/p&gt;</description>
    </item>
    <item>
      <title>我的1/5原则：管理时间</title>
      <link>https://blog.pugwoo.com/posts/2010/%E6%88%91%E7%9A%84%E4%BA%94%E5%88%86%E4%B9%8B%E4%B8%80%E5%8E%9F%E5%88%99%E7%AE%A1%E7%90%86%E6%97%B6%E9%97%B4/</link>
      <pubDate>Tue, 19 Jan 2010 14:26:10 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E6%88%91%E7%9A%84%E4%BA%94%E5%88%86%E4%B9%8B%E4%B8%80%E5%8E%9F%E5%88%99%E7%AE%A1%E7%90%86%E6%97%B6%E9%97%B4/</guid>
      <description>&lt;p&gt;题外话：这几天Google事件平静下来了，这样也好，虽然背后可能是激烈的搏斗，但我还是希望Google留在中国，至少重要的服务如Gmail和实用的Map还保留着，我们可以翻·墙去使用没有过滤的Google.com&lt;/p&gt;&#xA;&lt;p&gt;写了两天英文，有点不习惯，很多话不会表达，还是中英文混杂比较好过渡。最近又闻中国国际带宽紧张，要整顿个人租用的国外服务器。杯具，欲加之罪何患无辞，打着堂而皇之的旗号背地里干偷鸡摸狗的事是兲朝常用的伎俩，由他们犯贱去吧，不是不报时候未到。&lt;/p&gt;&#xA;&lt;p&gt;说回正题。1/5原则是我给自己的约束，想法来自富爸爸系列书。人可分为两种，一种为金钱奔波，钱永远不够花，赚到的钱没留下多少；一种达到了财务自由，钱越来越多，自由时间也越来越多。前一种人像在跑步机上，拼命地跑，却停留在原地，一旦不跑了，就会被抛弃。后一种人像跳出了这台跑步机。&lt;/p&gt;&#xA;&lt;p&gt;有一句话：如果一年赚20法郎，花19.9，会变成富翁；花20.1，会变成穷光蛋。虽然夸张了些，但道理就这样。如果时间和金钱一样都是人的财富，那么时间也是这样的。&lt;/p&gt;&#xA;&lt;p&gt;我的&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;1/5原则&lt;/strong&gt;就是：对每件事，提前&amp;quot;给定时间的1/5&amp;quot;完成。&lt;/p&gt;&#xA;&lt;p&gt;比如有一项任务，给定时间5天，那么就要争取在第4天做完。如果上学的路途是15分钟，那么就争取提前3分钟到教室。如果决定几天后出差，那么提前1天把行李收拾完。绝对不要把工作留到最后一刻来完成。&lt;/p&gt;&#xA;&lt;p&gt;这样做有什么好处呢？&lt;/p&gt;&#xA;&lt;p&gt;1）更能承受变数。&lt;/p&gt;&#xA;&lt;p&gt;如果把工作留在最后时刻来完成，最后时刻却刚好有急事，怎么办？如果去上学，却发现单车没气了，怎么办？如果工作做完之后发现有瑕疵，怎么办？预留的1/5时间可以更好地解决这些意外事件。&lt;/p&gt;&#xA;&lt;p&gt;2）避免占用未来时间。&lt;/p&gt;&#xA;&lt;p&gt;有句话说得对，每个人的时间都是一样多的。如果今天因工作熬夜了，那肯定要占用明天的时间休息回来。要记得一项任务的超时其实是占用未来的时间。熬夜并不会创造出更多的时间。&lt;/p&gt;&#xA;&lt;p&gt;3）节省时间成本。&lt;/p&gt;&#xA;&lt;p&gt;像我这种爱睡懒觉的人，会觉得晚上的半个小时没有早上的半个小时价值高。我发现越接近Deadline的时间越&amp;quot;值钱&amp;quot;。怎么判断时间值钱的多少呢？比较即可，如果有项工作两天完成，第一天我们可能花1个小时去散散步，如果工作没完成，第二天接近了Deadline了，这1个小时的散步我们就可能花不起。所以，越早完成任务成本越低。这个成本不是感觉到的，它是真的成本。&lt;/p&gt;&#xA;&lt;p&gt;4）活得轻松。&lt;/p&gt;&#xA;&lt;p&gt;就像富爸爸里提到的财务自由一样，你不会再觉得自己有做不完的任务压着，你会活得轻松很多。&lt;/p&gt;</description>
    </item>
    <item>
      <title>贝特朗悖论</title>
      <link>https://blog.pugwoo.com/posts/2010/%E8%B4%9D%E7%89%B9%E6%9C%97%E6%82%96%E8%AE%BA/</link>
      <pubDate>Wed, 13 Jan 2010 20:43:17 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E8%B4%9D%E7%89%B9%E6%9C%97%E6%82%96%E8%AE%BA/</guid>
      <description>&lt;p&gt;贝特朗悖论是概率论的经典问题。题目是：随机取圆的一条弦，求该线的长度大于该圆的内接正三角形变长的概率。贝特朗给出3中解答，答案概率分别是1/2，1/3，1/4，具体题目见http://baike.baidu.com/view/1258843.htm。&lt;/p&gt;&#xA;&lt;p&gt;数学是确定的。一般地，我们从自然语言提炼出信息，变成数学语言，数学语言求解得出答案。关于贝特朗悖论，不少教科书说出现该悖论是&amp;quot;随机&amp;quot;的理解不同所导致的。我不同意，如果有歧义，那么必定是在&amp;quot;自然语言&amp;ndash;&amp;gt;数学语言&amp;quot;这个环节出现。而&amp;quot;随机取圆的一条弦&amp;quot;本身就是数学语言，&lt;strong&gt;我不认为这有歧义&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;我认为答案是唯一的。在Google搜索&amp;quot;贝特朗悖论&amp;quot;的前10页文章的解答中，主要有以下几个观点：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;1）&lt;/strong&gt;三个答案均正确，原因在于&amp;quot;均匀分布&amp;quot;的假设不同，见&lt;a href=&#34;http://www.charlesgao.com/?p=130&#34; target=&#34;_blank&#34;&gt;这篇&lt;/a&gt;。或者归于定义不明确，见&lt;a href=&#34;http://www.eaglefantasy.cn/archives/214&#34; target=&#34;_blank&#34;&gt;这篇&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;2）&lt;/strong&gt;某大学学报&lt;a href=&#34;http://scholar.ilib.cn/A-kmsfgdzkxxxb200404003.html&#34; target=&#34;_blank&#34;&gt;《关于贝特朗悖论的新思考》&lt;/a&gt;一文经大量微积分运算得出只有1/4正确。典型的中国式学术，为的就是足够复杂，乱七八糟一堆公式以至于别人看不懂以显示自己牛B。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;3）&lt;/strong&gt;从点的&amp;quot;对等关系&amp;quot;得出1/3是正确的，其它均错误，给出了错误原因，&lt;a href=&#34;http://www.ejzc.com/show.asp?ArticleID=4941&#34; target=&#34;_blank&#34;&gt;这篇&lt;/a&gt;。说白点，就是其它两种的&amp;quot;点&amp;quot;对应到圆周上的&amp;quot;点&amp;quot;的数目不同。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;4）&lt;/strong&gt;其它要收钱下载不了的论文没看。&lt;/p&gt;&lt;/p&gt;&#xA;&lt;p&gt;我认为这些全是错误的，其中1）错得最离谱。2）没细看，不过没点出错误所在。3）虽是错误，但最接近。&#xD;&#xA;&lt;p&gt;问题的本质在于&amp;quot;&lt;strong&gt;怎么&amp;rsquo;画&amp;rsquo;一条随机的弦&lt;/strong&gt;&amp;quot;。以下几种是随机的弦吗？&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;1）&lt;/strong&gt;随机取圆内（包括圆周）的两点，连成直线，取弦。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;2）&lt;/strong&gt;随机取圆周上两点，连线。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;3）&lt;/strong&gt;随机取圆内（包括圆周）的一点，与圆心连线，作过该点且与该连线相垂直的弦。&lt;/p&gt;&#xA;&lt;p&gt;上面那些是随机的？&lt;/p&gt;&#xA;&lt;p&gt;1）不是。我们把随机的弦化作点的随机来处理，必须是一对一的关系方可认为它们相等（参见无穷怎么判断相等）。2）是。3）不是，因为过圆心的弦没法表示。&lt;/p&gt;&#xA;&lt;p&gt;问题就出在这里，得出概率为1/4的做法没有把所有直径算进去，这是其错误的地方，不是其他原因。得出概率为1/2的做法不是一对一，即它们都不等，如何比较？上面的做法3）解释了这点。&lt;/p&gt;&#xA;&lt;p&gt;回到原题，得出1/3的结论是正确的。它根据的是上面随机取弦的第二种做法。如果你认真在看这篇文章，你会发觉原题的做法和上面方法2的取随机弦做法有些不同，它们可以把点平移到一个固定的点吗？怎么证明呢？&lt;/p&gt;&#xA;&lt;p&gt;在回答之前，再看看下面这几种做法，它们可以作出随机的弦吗？&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;1）&lt;/strong&gt;事先选定圆周上的一点，随机选&lt;code&gt;[0,180]&lt;/code&gt;度一实数，以约定的正方向取过该事先选定的点的一条弦；再随机选定&lt;code&gt;[0,2*pi*r]&lt;/code&gt;的一实数，将选定的点绕圆周移动该实数的距离（约定好正方向），取该弦。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;2）&lt;/strong&gt;随机选取0～360度某一角度，过圆心作该角度的直径；随机选取&lt;code&gt;[-r，r]&lt;/code&gt;一实数（约定一个正方向，可由右手定律约定），移动该直径，取弦。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;3）&lt;/strong&gt;为该单位圆建立好直角坐标系，原点和圆心重合，对圆的任一条弦，引过(0,r)点的垂线，把所有&amp;quot;垂点&amp;quot;的集合即为S；随机选取集合S中的一点，按上面放顺序作出一条弦。&lt;/p&gt;&#xA;&lt;p&gt;上面三种做法都是可以的。特别的，第一种就是原题作出1/3概率的方法。其它两种难计算，但我相信它们能算出1/3的概率。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong style=&#34;COLOR: #ff8000&#34;&gt;总结：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;按上面的分析，得出1/4的概率是因为直径没有算进去，设所有弦数量为x1，直径数量为x2，大于内接正三角形边长的弦数量为x3，可以由x3/x1=1/3；(x3-x2)/x1=1/4；算出x2/x1=1/12。很不可思议的结论，直径数量竟然占所有弦的1/12。然而在涉及无穷多的时候，很多结论不是直觉所能接受的。我们知道2n和4n（n是自然数）的个数是一样多的，那么随机取一非负数，该数为2n和该数为4n的概率是一样的，足够不可思议吧！或许我们需要对无穷大的比较作出一定的修正和解释，测度论的出现就是用来处理这些无穷多元素之间的大小关系的，而非来&amp;quot;和谐&amp;quot;模棱两可允许歧义的数学的。&lt;/p&gt;&#xA;&lt;p&gt;题外话：由于Google退出中国的影响，本打算详细写这篇文章的计划也放弃了，博客流量虽少，90%以上是google带来的，如没有该搜索引擎，博客便少了分享的动力，写博客也只是为了自己看，既然为了自己看，就不必那么详细。有问题欢迎讨论。&lt;/p&gt;</description>
    </item>
    <item>
      <title>偏微分方程数值解实验报告(3个)</title>
      <link>https://blog.pugwoo.com/posts/2010/%E5%81%8F%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E6%95%B0%E5%80%BC%E8%A7%A3%E5%AE%9E%E9%AA%8C%E6%8A%A5%E5%91%8A3%E4%B8%AA/</link>
      <pubDate>Wed, 13 Jan 2010 11:10:37 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E5%81%8F%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E6%95%B0%E5%80%BC%E8%A7%A3%E5%AE%9E%E9%AA%8C%E6%8A%A5%E5%91%8A3%E4%B8%AA/</guid>
      <description>&lt;p&gt;我的课程期末实验，仅供参考，版权所有请勿抄袭，点开链接直接查看：&lt;/p&gt;&#xA;&lt;p&gt;1）欧拉Euler和Adams插值求解常微分方程：http://docs.google.com/fileview?id=0ByxoWlaHw_idZThjNjU1NjMtYzc3Yi00MmM2LWEyZDgtMjFkNTMwMGQzOWI3&amp;amp;hl=en。&lt;/p&gt;&#xA;&lt;p&gt;2）Ritz-Galerkin方法求解边值问题：http://docs.google.com/fileview?id=0ByxoWlaHw_idY2JhNjhlODEtZTRiNi00NDAxLThmMmItMjc5YWM0MmU4ZDk4&amp;amp;hl=en。&lt;/p&gt;&#xA;&lt;p&gt;3）线性有限元求解边值问题：http://docs.google.com/fileview?id=0ByxoWlaHw_idZmI5YmJmZTItMDg3Ni00NTNlLThmM2MtODU4ZjhlYWI0OTE1&amp;amp;hl=en。&lt;/p&gt;</description>
    </item>
    <item>
      <title>HTC Hero (G3)到手</title>
      <link>https://blog.pugwoo.com/posts/2010/htc-hero-g3%E5%88%B0%E6%89%8B/</link>
      <pubDate>Mon, 11 Jan 2010 18:30:24 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/htc-hero-g3%E5%88%B0%E6%89%8B/</guid>
      <description>&lt;p&gt;前两天在淘宝买的G3今天到了，标配+8G卡共3060元，运气还行，没坏点也没出现快递被偷情况。以前说买电脑是为了学习，结果都玩游戏去了，这次买这手机可得好好学习，这个开发平台看起来比Symbian开放和友好多了。&lt;/p&gt;&#xA;&lt;p&gt;安卓网和机锋网很不错，很多玩家，放几张照片。&lt;/p&gt;&#xA;&lt;p&gt;新老对比：&#xA;&lt;img src=&#34;http://farm5.static.flickr.com/4002/4265834268_f320984558.jpg&#34; alt=&#34;IMG_3210.JPG&#34; height=&#34;437&#34; width=&#34;583&#34;/&gt;&lt;/p&gt;&#xA;&lt;p&gt;主页面：&#xA;&lt;img src=&#34;http://farm5.static.flickr.com/4034/4265086029_231fb4e3c7.jpg&#34; alt=&#34;IMG_3215.JPG&#34; height=&#34;583&#34; width=&#34;437&#34;/&gt;&lt;/p&gt;&#xA;&lt;p&gt;访问网页：&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2800/4265834618_0cfec71e20.jpg&#34; alt=&#34;IMG_3216.JPG&#34; height=&#34;583&#34; width=&#34;437&#34;/&gt;&lt;/p&gt;&#xA;&lt;p&gt;试了GPS，定位还蛮准确的，不过室内效果差些。太多功能要去学习了，泡论坛是个好途径，从图书馆借了《Android开发入门与实战》和《Android SDK开发范例大全》，看起来很不错~&lt;/p&gt;</description>
    </item>
    <item>
      <title>新年来道数学题</title>
      <link>https://blog.pugwoo.com/posts/2010/%E6%96%B0%E5%B9%B4%E6%9D%A5%E9%81%93%E6%95%B0%E5%AD%A6%E9%A2%98/</link>
      <pubDate>Fri, 01 Jan 2010 10:49:40 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2010/%E6%96%B0%E5%B9%B4%E6%9D%A5%E9%81%93%E6%95%B0%E5%AD%A6%E9%A2%98/</guid>
      <description>&lt;p&gt;题目：怎样判断一枚硬币是均匀的，即抛硬币的正反面出现的概率相等。&lt;/p&gt;&#xA;&lt;p&gt;欢迎留言解答~&lt;/p&gt;</description>
    </item>
    <item>
      <title>阅微堂BBS里判断全排列问题的讨论</title>
      <link>https://blog.pugwoo.com/posts/2009/%E9%98%85%E5%BE%AE%E5%A0%82bbs%E9%87%8C%E5%88%A4%E6%96%AD%E5%85%A8%E6%8E%92%E5%88%97%E9%97%AE%E9%A2%98%E7%9A%84%E8%AE%A8%E8%AE%BA/</link>
      <pubDate>Tue, 29 Dec 2009 16:40:46 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E9%98%85%E5%BE%AE%E5%A0%82bbs%E9%87%8C%E5%88%A4%E6%96%AD%E5%85%A8%E6%8E%92%E5%88%97%E9%97%AE%E9%A2%98%E7%9A%84%E8%AE%A8%E8%AE%BA/</guid>
      <description>&lt;p&gt;题目：给一个n长的数组，判断它是否为一个1,2,&amp;hellip;,n的全排列，要求在线性时间，常数空间内实现。&lt;/p&gt;&#xA;&lt;p&gt;今天和同学讨论了下，他给出的做法等价于&amp;quot;给定n长的数组，不用额外空间，通过交换元素，在线性时间里把数组排序，然后就能判断该数组是否为全排列&amp;quot;。这不难想出，但我不认同这种方法是常数空间，因为存放这些数组的空间就是O(n)空间。&lt;/p&gt;&#xA;&lt;p&gt;我把实现的程序看成是一个黑盒子，既然是常数空间，那么盒子的体积就是固定，不随n变化。n长的数组相当于一个输入流作为参数输入到函数。输入完之后函数判断该序列是否为全排列。形象地表示为：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2775/4225705852_851438ac69.jpg&#34; alt=&#34;2009-12-29 22-59-25.png&#34; height=&#34;202&#34; width=&#34;313&#34;/&gt;&#xD;&#xA;&lt;p&gt;可假定这些数都落在1到n范围内，否则可以即刻检测出不是全排列。接着，可以推导出这个函数应该在&amp;quot;最后时刻&amp;quot;才能判断出是否为全序列。这里指的&amp;quot;最后时刻&amp;quot;包括那些肉眼轻易就能判别的情况，比如输入1、1、2、4&amp;hellip;，一开始出现了两个1，我们马上就能判断该序列不是全排列，但这个实现不能具有这样的功能。&lt;/p&gt;&#xA;&lt;p&gt;假设该实现能在当出现两个数重复时，就判断出结果。那么，我们可以利用该函数的常数空间，构造出一个可以存储无限信息的有限空间。假设对于信息111000&amp;hellip;101，不管它多长，它的左边第一位用全排序的1和2表示，1表示0，2表示1；第二位用全排序的3和4表示，3表示0，4表示1. 以此类推，则这则信息相当于往Function输入2、4、6、7、9、10&amp;hellip;.这样的一排数。如果该实现能在第一次出现重复时就判断出是否全排列，那么可以利用该特点，随便读取出信息的任何一位，比如读取第一位，只需要往Function输入2，如果它判断出&amp;quot;非全排列&amp;quot;，则说明第一位是1. 由于Function的空间是常数的，每次读取一个bit，都可以保持Function的状态，读取后还原。就这样，我们构造了一个可写可读的可存放无穷容量的常数空间。这可能吗？&lt;/p&gt;&#xA;&lt;p&gt;我先假定有限容量存无穷信息是不可能的。那么就可得出该函数&amp;quot;最后时刻&amp;quot;方可判断结果，无论序列是什么（无论多显而易见）。&lt;/p&gt;&#xA;&lt;p&gt;讨论到这，我同学提出，那无论什么实现肯定都不可能是常数空间的，因为它肯定和输入长度N有关。其实常数空间的例子很多，比如说，输入一排整数，判断奇数和偶数的个数是否相等；判断是否出现了0；判断其和是否大于某个给定的数。这些简单的例子都是线性时间+常数空间就可实现的。它们有什么共同点呢？它们的输入都是随N变换的，但是输出仅是这排序列的某个属性！而这个属性反推不出原序列，即它们不可逆，结论仅是原序列性质的一个提取。&lt;/p&gt;&#xA;&lt;p&gt;那么，判断一排数是否为全排列也仅是这排数的一个性质，知道它是不是全排列并不能反推出原来这排数的顺序，也就是这个Function提取了数列的一个性质。至于提取这个性质可不可以是常数空间呢？需要讨论。可以把这个Function看成是一种投影，它把不管多长的线，投影成一个点，这个点就是要提取的属性。前面的常数空间例子都没问题，那提取是否为全排序这个性质又能不能是常数空间呢？不好证明，或许它真的存在。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;最后时刻&amp;quot;方可判断结果，意味着该Function不需要去记录已读取的数是什么，只需要把它们投影到某个常数空间的&amp;quot;点&amp;quot;上，当所有的数读完，再来判断该点的性质，就可以得出结论。这样的数学函数存不存在，难说。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】影响我的故事之一：Steve Jobs Stanford Commencement Speech</title>
      <link>https://blog.pugwoo.com/posts/2009/steve-jobs-stanford-commencement-speech/</link>
      <pubDate>Wed, 23 Dec 2009 16:15:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/steve-jobs-stanford-commencement-speech/</guid>
      <description>&lt;p&gt;今天，有荣幸来到各位从世界上最好的学校之一毕业的毕业典礼上。我从来没从大学毕业。说实话，这是我离大学毕业最近的一刻。今天，我只说三个故事，不谈大道理，三个故事就好。&lt;/p&gt;&#xA;&lt;h2 id=&#34;人生成功在于系统整合&#34;&gt;人生成功，在于&amp;quot;系统整合&amp;quot;&lt;/h2&gt;&#xA;&lt;p&gt;人生的成就是善于把点点滴滴的事情串联起来思考。我为什么不等大学毕业？要从头说起。&lt;/p&gt;&#xA;&lt;p&gt;17岁时，我上大学了。但是我无知地选了一所学费几乎跟斯坦福一样贵的大学。六个月后，我看不出念这个书有多大价值，也不知道念这个大学能对我有什么帮助。而且我为了念这个书，最后会花光父母这辈子的所有积蓄。所以我决定休学，相信船到桥头自然直。当时这个决定看来相当荒唐，可是现在看来，那是我这辈子做过的最好的决定。&lt;/p&gt;&#xA;&lt;p&gt;我的肄业生活一点也不浪漫。我完全靠着捡可乐瓶子过活。每个星期天晚上就得走七里的路绕过大半个镇去印度教的神庙吃顿好饭。但我不断地追寻我的好奇与直觉，去关心外界的事物，后来这些都成了无价之宝。举例来说，当时里德学院有着全美国最好的书法大师，在整个校园内的每一张海报上，以至每个抽屉的标签都是大师们美丽的手写字。因为我休学了，没有什么课程能上，于是我就跑去学书法。书法的美感、历史感与艺术感是科学所无法捕捉的，我觉得它很迷人。&lt;/p&gt;&#xA;&lt;p&gt;我没预期过学的这些东西能在我生活中起些什么实际作用。不过十年后，当我在设计第一台麦金托什电脑时，我想起了当时所学的东西，所以把这些东西都设计进了麦金托什电脑里，这是第一台能印刷出漂亮文字的计算机。如果我没沉溺于课本里，麦金托什电脑可能就不会有多重字体跟变间距字体了。&lt;/p&gt;&#xA;&lt;p&gt;我可以断言，我一直在大学里，就不可能把这些点点滴滴的灵感串起来。但是这在十年后的今天，就显得非常现实。我再说一次，在学校里不可能预先把点点滴滴学到的东西串在一起。惟有未来再回顾时，你才会明白那些点点滴滴是如何串在一起的。&lt;/p&gt;&#xA;&lt;p&gt;所以你得相信，你现在所体悟到的一点一滴的东西，将来会连接在一块。你得信任这些零零碎碎的东西，直觉也好，命运也好，生命也好。总之，是它让我的人生不同于别人。&lt;/p&gt;&#xA;&lt;h2 id=&#34;反败为胜在于执着去爱&#34;&gt;反败为胜，在于执着去爱&lt;/h2&gt;&#xA;&lt;p&gt;我有好运能在年轻时就发现自己爱做什么事。我20岁时，跟Steve Wozniak在我爸妈的车库里开始了苹果计算机的事业。我们拼命工作，苹果计算机在十年间从一间车库里的两个小伙子扩展成了一家员工超过4000人、市价20亿美金的公司。在那之前一年推出了我们最棒的作品：麦金托什电脑，而我才刚迈入人生的第30个年头。但不幸的是，我被炒了鱿鱼。&lt;/p&gt;&#xA;&lt;p&gt;自己创办的公司怎么会炒自己鱿鱼？&lt;/p&gt;&#xA;&lt;p&gt;事情是这样的。当苹果计算机成长之后，我请了一个我以为在经营公司上很有才干的家伙来，他在头几年也确实干得不错。可是因为我们对未来的愿景和追求不同，很不幸，最后只好分道扬镳。但董事会站在他那边，公开炒了我鱿鱼。就这样，曾经是我整个成年生活重心的东西一夜就不见了，令我一时愕然，走投无路。&lt;/p&gt;&#xA;&lt;p&gt;随后几个月，我实在不知道要干什么好。我成为了公众面前一个非常负面的示范。我甚至想要离开硅谷。但是渐渐的，我发现：我还是喜爱着我做过的工作，苹果事件的经历丝毫没有改变我热爱的事业。我被人家否定了，但是我一直爱着的事业没有否定我，所以我决定一切从头开始。&lt;/p&gt;&#xA;&lt;p&gt;怎么也想不到，当时我认为最倒霉的事情——被苹果计算机开除，现在看来是我所经历过最好的，也是最幸运的事情。失落的沉重心情被从头做起的轻松感所取代，一切对我都不是约束，让我自由进入这一辈子最有创意的年代。&lt;/p&gt;&#xA;&lt;p&gt;接下来五年，我开了一家叫做NeXT的公司，又开了一家叫做Pixar的公司，我跟它们谈起了&amp;quot;恋爱&amp;quot;。Pixar接着制作了世界上第一部全计算机动画电影：《玩具总动员》，现在已是世界上最成功的动画制作公司。然后，它们阴差阳错地让苹果计算机买下了，我又回到了苹果。我们在NeXT发展的技术居然成了苹果计算机后来复兴的核心。在事业如日中天之时，我也有了个美妙的家庭。&lt;/p&gt;&#xA;&lt;p&gt;我敢肯定，如果当年苹果计算机没开除我，就不会发生这些事情。这付药虽然很苦，可是它成为苹果计算机这个&amp;quot;病人&amp;quot;起死回生的神药。有时候，人生会遇到别人用砖头打你的头，但你不要丧失信心。我确信，只要爱我所做的事情，未来就会是美好的。这些年来就是它让我继续走下去。关键在于你能找出你爱的事业。&lt;/p&gt;&#xA;&lt;p&gt;工作将填满你的大半人生。惟一获得真正满足的方法，就是做你相信是伟大的工作，而惟一做伟大工作的方法，是爱你所做的工作。如果你还没找到这些事，继续找，别停顿。尽你全心全力，你知道你一定会找到。&lt;/p&gt;&#xA;&lt;h2 id=&#34;死而无憾在于以我为主&#34;&gt;死而无憾，在于以我为主&lt;/h2&gt;&#xA;&lt;p&gt;我的第三个故事，关于死亡。&lt;/p&gt;&#xA;&lt;p&gt;当我17岁时，我读到一则格言，终生不忘。这句名言是：&amp;ldquo;把每一天都当成生命中的最后一天，你就会轻松自在。&amp;ldquo;这句话影响了我一辈子。在过去33年里，我每天早上都会照镜子，自问：&amp;ldquo;如果今天是此生最后一日，我今天要干些什么？&amp;ldquo;每当我连续多天都是一个&amp;quot;没事做&amp;quot;的答案时，我就知道我必须下决心变革了。&lt;/p&gt;&#xA;&lt;p&gt;提醒自己快死了，是我在人生中下重大决定时，所用过最重要的&amp;quot;工具&amp;rdquo;。在面对死亡时，几乎每一件事，包括所有期望、所有名誉、所有困窘或失败的恐惧，都一下子消失了，只有最重要的东西才会留下。提醒自己快死了，是我所知避免掉入&amp;quot;自己有东西要失去&amp;quot;这一陷阱最好的方法。人生不带来，死不带去，没什么道理不去做顺心而为的事。&lt;/p&gt;&#xA;&lt;p&gt;一年前，我被诊断出癌症。我作断层扫描时，在胰脏清晰出现一个肿瘤。在这之前，我连胰脏是什么都不知道。医生告诉我：那几乎可以确定是一种不治之症，我大概活不到三到六个月了。医生建议我回家，好好跟亲人们聚一聚。这是医生对临终病人的标准建议。这话表示，让我在这几个月内把我几十年想要讲的话都讲完。同时，也表示让把每件要做的重要事情安排妥当，让家人尽量轻松些。总之，我要跟家人说再见了！&lt;/p&gt;&#xA;&lt;p&gt;那天晚上，我做了一次切片，从喉咙伸入一个内视镜，从胃进肠子，插了根针进胰脏，取了一些肿瘤细胞出来。他们给我打了麻醉剂，不醒人事，但是我妻子在场。她后来跟我说：当医生们用显微镜看过那些细胞后，大夫和护士都哭了！因为那是非常少见的一种可以用手术治好的胰脏癌！我接受了手术，康复了。&lt;/p&gt;&#xA;&lt;p&gt;这是我最接近死亡的一次经历，希望这是最后一次。经历此事之后，我感觉比以前对死亡的抽象理解深刻多了。我现在告诉你们我对死亡的认识：&lt;/p&gt;&#xA;&lt;p&gt;没有人想死。即使那些想上天堂的人，也想活着上天堂。但是死亡是每个人最终的结局，没有人逃得过。这是注定的结果，因为死亡是人生最棒的发明，是生命转化的媒介。&lt;/p&gt;&#xA;&lt;p&gt;你们虽然年轻，但时间很有限，所以不要浪费时间活在别人的生活里。被信条所惑或是盲从信条是难免的，但你要清醒地知道，这就是活在别人的思考结果里。要记住，不要让别人的意见淹没了你内在的心声。最重要的，一个有成就的人，要有拥有跟随内心与直觉的勇气，它多少已经知道你真正想要成为什么样的人。任何其它事物都是次要的。&lt;/p&gt;&#xA;&lt;p&gt;在我年轻时，有本神奇的杂志叫做 Whole Earth Catalog，当年我们很迷这本杂志。那是一位住在离这不远的Menlo Park的Stewart Brand发行的，他把杂志办得很有诗意。那是1960年代末期，个人电脑跟桌上出版还没发明，所有内容都是打字机、剪刀跟拍立得相机做出来的。杂志内容有点像印在纸上的Google，在Google出现之前35年就有了：理想化，充满新奇工具与神奇的注记。&lt;/p&gt;&#xA;&lt;p&gt;Stewart跟他的出版团队出了好几期Whole Earth Catalog，然后出了停刊号。当时是1970年代中期，我正是你们现在这个年龄的时候。在停刊号的封底，有张早晨乡间小路的照片，那种你去爬山时会经过的乡间小路。在照片下有行小字：求知若饥，虚心若愚。 那是他们亲笔写下的告别讯息，我总是以此自许。当你们毕业，展开新生活，我也以此期许你们。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Stay Hungry. Stay Foolish.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>冬节，吃汤圆，大一岁</title>
      <link>https://blog.pugwoo.com/posts/2009/%E5%86%AC%E8%8A%82%E5%90%83%E6%B1%A4%E5%9C%86%E5%A4%A7%E4%B8%80%E5%B2%81/</link>
      <pubDate>Tue, 22 Dec 2009 15:34:42 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E5%86%AC%E8%8A%82%E5%90%83%E6%B1%A4%E5%9C%86%E5%A4%A7%E4%B8%80%E5%B2%81/</guid>
      <description>&lt;p&gt;写篇日记，做个总结。首先祝大家冬至快乐，记得小时候的今天，下午四五点妈妈就煮一大锅热水，替我洗澡，穿上新衣，此时的太阳像秋天的橙色般照在门外的墙面上。洗完后和伙伴去玩耍，傍晚回来搓汤圆，煮汤圆，吃汤圆。吃了汤圆就大一岁了。&lt;/p&gt;&#xA;&lt;p&gt;下午考完计算机密码学，大学的所有考试就结束啦。只剩一篇毕业论文，网络相关，下学期的任务。&lt;/p&gt;&#xA;&lt;p&gt;记一下保研的事。当时我很愤怒，但2个多月过去了，我也就心静了。本来我的排名可以稳上计算数学专业的研究生，由于学院志愿录取规则在录取后才公布，我的不知情导致我只能去差一些还不能公费的信息工程专业。这样也好吧，看开点，其实只要自己认真学，哪个专业不照样能学好吗？关键要靠自己的努力。&lt;/p&gt;&#xA;&lt;p&gt;所以我定下我未来两年的计划，研二就得开始找工作了。两年内，坚持每天平均一篇博客&amp;mdash;-有意义的博客。专注网络，注重动手能力，把自己的专业当工科看待。把3年多的数学知识用到实践中。每周到图书馆借书，2年的学费3万，要看1000本书才划算，虽然这不太可能，尽量看。&lt;/p&gt;&#xA;&lt;p&gt;写博客为了什么呢？一是记录自己生活，把想法写下来、把过程记录下来，才深刻。二是分享知识，我喜欢很精华式的博客，把自己懂的，无论难度高低，都整理出来，扩展我们的知识，帮别人的同时也提升了自己。&lt;/p&gt;&#xA;&lt;p&gt;准备放假买个HTC Hero用，我的N70用了4年了，好像我身边很少人4年不换手机的，呵呵。今晚去吃汤圆~&lt;/p&gt;</description>
    </item>
    <item>
      <title>Squid的http_access访问控制顺序“一句话规则”</title>
      <link>https://blog.pugwoo.com/posts/2009/squid%E7%9A%84http_access%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E9%A1%BA%E5%BA%8F%E4%B8%80%E5%8F%A5%E8%AF%9D%E8%A7%84%E5%88%99/</link>
      <pubDate>Mon, 21 Dec 2009 19:20:40 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/squid%E7%9A%84http_access%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E9%A1%BA%E5%BA%8F%E4%B8%80%E5%8F%A5%E8%AF%9D%E8%A7%84%E5%88%99/</guid>
      <description>&lt;p&gt;Squid是搭建强大的正向代理服务器和反向代理服务器软件。所有设置说明均在官方Wiki书籍中译本：&lt;a href=&#34;http://home.arcor.de/mailerstar/jeff/squid/&#34;&gt;Squid权威指南&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;Squid配置文件squid.conf中用acl定义控制列表是顺序无关的，但http_access设置访问控制则与顺序密切相关。初用Squid，被设置顺序搞得很疑惑，于是想出&amp;quot;一句话规则&amp;quot;来理解。&lt;/p&gt;&#xA;&lt;p&gt;http_access可以设置很多类型的允许(allow)/禁止(deny)访问。主要的类型有：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;src ：源地址，即连接该代理服务器的主机的IP地址或地址段&lt;/li&gt;&#xA;&lt;li&gt;dst ：目标地址，即连接该代理服务器的主机欲访问的IP地址或地址段&lt;/li&gt;&#xA;&lt;li&gt;dstdomain ：目标域名，即连接该代理服务器的主机欲访问的域名&lt;/li&gt;&#xA;&lt;li&gt;time ：时间&lt;/li&gt;&#xA;&lt;li&gt;其它详见&lt;a href=&#34;http://blog.s135.com/book/squid/chap06.html&#34;&gt;访问控制&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;每一次客户端请求代理服务器都会产生组合（源地址src，目标地址dst，目标域名dstdomain，时间time，等等&amp;hellip;.），服务器端拿着此组合，&lt;strong&gt;按http_access的顺序进行匹配（只匹配相同的类型），直到第一次匹配到allow或deny的http_access，如果是allow，则允许访问，不再匹配；如果是deny，则禁止访问，不再匹配。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;注意：如果一条组合匹配到最后都没有匹配到allow或deny，那么如果它最后进行匹配的http_access是allow，则deny此次请求；否则allow此次请求。&lt;/p&gt;&#xA;&lt;p&gt;还有，如果http_access allow后面有两个及以上的值，那么唯当这些值都为真，该请求才能被allow。&lt;/p&gt;&#xA;&lt;p&gt;例子：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;只允许192.168.1.0/24子网访问，但不允许访问cctv.com&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;      acl all src all&#xD;&#xA;      acl allowip src 192.168.1.0/24&#xD;&#xA;      acl badsite dstdomain www.cctv.com&#xD;&#xA;      http_access deny badsite&#xD;&#xA;      http_access allow allowip&#xD;&#xA;      http_access deny all&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;当非此子网访问时，遇到最后一条deny all会匹配源IP地址，被deny掉，注意，前面两条控制并未匹配到。当该子网访问但未访问cctv.com时，遇到allow allowip被allow放行。当有人访问cctv.com，无论是不是此子网，它都被deny badsite这条规则deny掉。&lt;/p&gt;&#xA;&lt;p&gt;注意，如果allowip和badsite这两条规则调换就阻止不了访问cctv.com了。&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;所有人允许访问google.com，不允许访问其它网站&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;      acl all src all &#xD;&#xA;     acl goodsite dstdomain .google.com&#xD;&#xA;     http_access allow goodsite&#xD;&#xA;     http_access deny all&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;按照一句话规则解释得通。&lt;/p&gt;&#xA;&lt;p&gt;如果要控制上网时间，则上网时间应该设置在子网访问控制的前面，否则就无法控制时间了。&lt;/p&gt;&#xA;&lt;p&gt;可以得出，&lt;strong&gt;控制范围越小的放在越前面，allow和deny构成成一对来控制。&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>集合的性质在证明扩展欧几里德和欧拉定理的表现</title>
      <link>https://blog.pugwoo.com/posts/2009/%E9%9B%86%E5%90%88%E7%9A%84%E6%80%A7%E8%B4%A8%E5%9C%A8%E8%AF%81%E6%98%8E%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%B7%E5%92%8C%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86%E7%9A%84%E8%A1%A8%E7%8E%B0/</link>
      <pubDate>Fri, 18 Dec 2009 18:33:29 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E9%9B%86%E5%90%88%E7%9A%84%E6%80%A7%E8%B4%A8%E5%9C%A8%E8%AF%81%E6%98%8E%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%B7%E5%92%8C%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86%E7%9A%84%E8%A1%A8%E7%8E%B0/</guid>
      <description>&lt;p&gt;这些是最基础的数论知识，写出来是强调集合性质的表现。集合中的元素是无序的、互异的。函数是一个集合到另一个集合的映射，对于原象中的任何一个元素，至多有一个元素与之对应。&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2766/4194256743_b792909e0f.jpg&#34; alt=&#34;2009-12-18 18-52-30.png&#34; height=&#34;292&#34; width=&#34;423&#34;/&gt;&#xD;&#xA;&lt;p&gt;集合A是原象，集合B是象。抽屉原理就是运用集合的性质，如果集合A的元素比集合B多，则集合A至少存在有两个以上的元素，映射到相同的一个元素（集合B中）；如果集合A的元素比集合B少，则集合B中比存在元素，不是从集合A映射过去的（不落在函数的值域内）。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;扩展欧几里德算法&lt;/strong&gt;：如果整数f &amp;gt;= 1，gcd(d,f)=1，那么d有一个模 f 的乘法逆元d&amp;rsquo;，即对小于f的正整数d，存在一个小于f的整数d&amp;rsquo;，使得d*d&amp;rsquo; ≡1 mod f. 其中gcd(d,f)表示d和f的最大公约数。&lt;/p&gt;&#xA;&lt;p&gt;例如：对于f=9，d=5，满足gcd(5,9)=1，则存在一个数d&amp;rsquo;&amp;lt; f，使得5*d&amp;rsquo;≡1 mod 9. 可以穷举出d&amp;rsquo;=2.&lt;/p&gt;&#xA;&lt;h2 id=&#34;证明&#34;&gt;证明：&lt;/h2&gt;&#xA;&lt;p&gt;对于命题中的d*d&amp;rsquo; ≡x mod f，可以把左边看成集合A，右边看成集合B，它们之间有一种一一对应的关系。&lt;/p&gt;&#xA;&lt;p&gt;左边集合：d&amp;rsquo;的取值有0、1、2&amp;hellip;.f-1共f种可能。右边集合：x可能取0、1、2&amp;hellip;f-1共f种可能。&lt;/p&gt;&#xA;&lt;p&gt;反证法，假设对于所有的d&amp;rsquo;，不存在d&amp;rsquo;，使得&lt;code&gt;d*d&#39; ≡1 mod f&lt;/code&gt;. 那么集合A的元素数量就比集合B多。根据抽屉原理，必存在不同的d&amp;rsquo;，记为d1&amp;rsquo;,d2&amp;rsquo;，使得&lt;code&gt;d*d1&#39;≡d*d2&#39;≡a mod f&lt;/code&gt;，a是落在0、2&lt;del&gt;f-1的某个值。&lt;code&gt;d*d1&#39;≡d*d2&#39;≡a mod f&lt;/code&gt;等价于&lt;code&gt;d*(d1&#39;-d2&#39;)≡0 mod f&lt;/code&gt;，由于gcd(d,f)=1，则有(d1&amp;rsquo;-d2&amp;rsquo;)≡0 mod f，由于d1&amp;rsquo;和d2&amp;rsquo;落在0&lt;/del&gt;f-1的范围内，所以(d1&amp;rsquo;-d2&amp;rsquo;)的取值范围为-(f-1)~(f-1)，则(d1&amp;rsquo;-d2&amp;rsquo;)只能为0，则有d1&amp;rsquo;=d2&amp;rsquo;。矛盾，所以存在d&amp;rsquo;，使得d*d&amp;rsquo; ≡1 mod f，得证。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;欧拉定理&lt;/strong&gt;：网上广泛流传着&lt;a href=&#34;http://blog.csdn.net/hillgong/archive/2009/05/25/4214327.aspx&#34;&gt;这个证明&lt;/a&gt;。看的时候记得考虑一下集合的性质。&lt;/p&gt;</description>
    </item>
    <item>
      <title>球的有趣性质----两平行平面切得的球表面积与其距离成线性正比</title>
      <link>https://blog.pugwoo.com/posts/2009/%E7%90%83%E7%9A%84%E6%9C%89%E8%B6%A3%E6%80%A7%E8%B4%A8----%E4%B8%A4%E5%B9%B3%E8%A1%8C%E5%B9%B3%E9%9D%A2%E5%88%87%E5%BE%97%E7%9A%84%E7%90%83%E8%A1%A8%E9%9D%A2%E7%A7%AF%E4%B8%8E%E5%85%B6%E8%B7%9D%E7%A6%BB%E6%88%90%E7%BA%BF%E6%80%A7%E6%AD%A3%E6%AF%94/</link>
      <pubDate>Tue, 15 Dec 2009 05:32:41 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E7%90%83%E7%9A%84%E6%9C%89%E8%B6%A3%E6%80%A7%E8%B4%A8----%E4%B8%A4%E5%B9%B3%E8%A1%8C%E5%B9%B3%E9%9D%A2%E5%88%87%E5%BE%97%E7%9A%84%E7%90%83%E8%A1%A8%E9%9D%A2%E7%A7%AF%E4%B8%8E%E5%85%B6%E8%B7%9D%E7%A6%BB%E6%88%90%E7%BA%BF%E6%80%A7%E6%AD%A3%E6%AF%94/</guid>
      <description>&lt;p&gt;这是大三我在做数学物理方程作业时发现的，该结论可使那道证明题变得很简便，可惜考试时我没把该结论证明一遍，太懒了被扣分。&lt;/p&gt;&#xA;&lt;p&gt;只要两个平行平面都切到球，则可以找到该球的一条直径，使得它和两平行平面垂直。因此命题也可表达成：对于球的任意一条直径，在其上面任取两点，过这两点分别作两个和该直径垂直的平面，则两平面切得的球表面积（不包括切平面面积）和这两点间的距离成线性正比。&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2516/4186490249_d589bf6ab0.jpg&#34; alt=&#34;2009-12-15 14-24-44.png&#34; height=&#34;352&#34; width=&#34;358&#34;/&gt;&#xD;&#xA;&lt;p&gt;这个比例是2πr，r是球的半径。即图中距离x的两点的垂直平面切得的球表面积是2πr*x，只要两点落在直径上，无论两点距离多远，无论两点在什么位置上。&lt;/p&gt;&#xA;&lt;h2 id=&#34;证明&#34;&gt;证明：&lt;/h2&gt;&#xA;&lt;p&gt;先求球冠的表面积，如图：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2629/4186491639_12b0691e98.jpg&#34; alt=&#34;2009-12-15 14-38-48.png&#34; height=&#34;211&#34; width=&#34;286&#34;/&gt;&#xD;&#xA;&lt;p&gt;图中的红点是球心，x是球冠的高，θ是夹角。如图，对于角θ，其微分Δθ对应的弧长是&lt;code&gt;r*Δθ&lt;/code&gt;，此时该切面的周长为&lt;code&gt;2π*r*sinθ&lt;/code&gt;，则这一小圈表面积为&lt;code&gt;r*Δθ*2π*r*sinθ&lt;/code&gt;，则球冠的表面积就是角θ从θ角度到0角度的积分。即：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2782/4187253318_e32e2b8f9d.jpg&#34; alt=&#34;2009-12-15 15-00-41.png&#34; height=&#34;51&#34; width=&#34;169&#34;/&gt;&#xD;&#xA;&lt;p&gt;现在需要把θ换成x。首先&lt;img src=&#34;http://farm5.static.flickr.com/4003/4186491933_afdc924a7d.jpg&#34; style=&#34;DISPLAY: inline;&#34; height=&#34;24&#34; alt=&#34;CodeCogsEqn.gif&#34; width=&#34;215&#34;/&gt;。当θ从θ积分到0时，x从x积分到0，dθ和dx的关系推导如下：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2629/4187253574_fdbc1a4afa.jpg&#34; alt=&#34;2009-12-15 15-17-15.png&#34; height=&#34;199&#34; width=&#34;337&#34;/&gt;&#xD;&#xA;&lt;p&gt;将上面的两条等式替换到S的表达式后，记得dx是从x到0，则有最后结论&lt;img src=&#34;http://farm3.static.flickr.com/2558/4187253796_22b9f7cb69.jpg&#34; alt=&#34;2009-12-15 15-20-21.png&#34; height=&#34;46&#34; width=&#34;191&#34;/&gt;。&lt;/p&gt;&#xA;&lt;p&gt;利用该结论可以证明最终命题。记直径上的两点为x1和x2，到圆冠顶部的距离分别为x1和x2，则球面面积减去这两个圆冠的面积 = 两平面切得的球表面积。&lt;/p&gt;&#xA;&lt;p&gt;两平面切得的球表面积 = &lt;code&gt;4πr^2 - 2πr*x1-2πr*x2 = 2πr*(2r-x1-x2)&lt;/code&gt;，而(2r-x1-x2)就是两点间距离。证毕。&lt;/p&gt;</description>
    </item>
    <item>
      <title>可信的抽奖机制</title>
      <link>https://blog.pugwoo.com/posts/2009/%E5%8F%AF%E4%BF%A1%E7%9A%84%E6%8A%BD%E5%A5%96%E6%9C%BA%E5%88%B6/</link>
      <pubDate>Tue, 08 Dec 2009 15:50:44 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E5%8F%AF%E4%BF%A1%E7%9A%84%E6%8A%BD%E5%A5%96%E6%9C%BA%E5%88%B6/</guid>
      <description>&lt;p&gt;我想起小时候常玩的一种游戏，潮州话叫&amp;quot;安仔&amp;quot;，不知怎用文字称呼。它很像一张邮票，一面有图案，一面空白。游戏规则是：两个人，每人拿一张，放在掌心，然后相互击掌，放开，使&amp;quot;安仔&amp;quot;自由落地，正面向上的一方赢。如果同为正面向上或正面向下，则算打平。有些小朋友爱作弊，把两张一模一样的&amp;quot;安仔&amp;quot;背靠背贴在一起，这样无论怎样它都是正面的。于是，有时一方赢得太多，输的一方总会检查&amp;quot;安仔&amp;quot;，以确定对方未作弊。&lt;/p&gt;&#xA;&lt;p&gt;这是现实生活中很典型的验证真伪的方法。抓阄、抽牌等赌博方式都是可以去验证真伪的。比方说抓阄二选一，一个有字一个无字，如果一方抽到无字的，那他会看看另一张是否有字，以验证其参与了一场公平的赌博。&lt;/p&gt;&#xA;&lt;p&gt;事情从现实到了计算机世界就大为不同。假设前面说到得&amp;quot;安仔&amp;quot;的双面是高科技的显示屏，作弊的人只要写个程序，让&amp;quot;安仔&amp;quot;在落地的瞬间，在其向上的一面显示出图案，背面不显示图案，那么这个&amp;quot;安仔&amp;quot;将是常胜将军。&lt;/p&gt;&#xA;&lt;p&gt;计算机世界要实现这样的作弊就太简单了。看看这个例子，某公司举办一抽奖活动，每购买一件该公司商品可获得抽奖机会一次。奖金丰厚，中奖概率50%，由于抽奖人数过多，该公司决定用计算机抽奖。于是他们写了个程序：计算机随机地将0和1这两个值赋给变量a、b，也就是说a是0或1的概率相等，然后，由抽奖者选择a或b哪个的值是1，猜对者获奖。按照上面提到的验证真伪的方法，如果某人选到的变量是0，那么他会要求公开另一个变量，看看是否是1. 现实中可以的验证方法到了计算机就未必使人信服，作弊太简单了。&lt;/p&gt;&#xA;&lt;p&gt;用伪代码写的作弊程序:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;   If (rand() &amp;gt; 0.5) a=0,b=1; //rand()产生一个[0,1 )之间的数&#xD;&#xA;   Else a=1,b=0;&#xD;&#xA;&#xD;&#xA;   Print &amp;#34;请猜猜哪个是1，a或b&amp;#34;&#xD;&#xA; &#xD;&#xA;   Cin &amp;gt;&amp;gt; char; //用户输入a或b&#xD;&#xA;&#xD;&#xA;   if (用户输入的变量的值为1) a 、b交换值; //作弊了&#xD;&#xA;   &#xD;&#xA;   Print 你中的变量的值是0 //无论用户选哪个，都是0&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;由于计算机的运行速度极快且其内部运算不可见，所以这个程序可以让抽奖者无论如何抽不中，就算他抽后检查另一个变量的值也没用。当然该公司为了掩人耳目，可以将中奖概率修改为30%并捏造出20%虚假的中奖者，这样更难被发现。&lt;/p&gt;&#xA;&lt;p&gt;事情似乎无法继续，难道计算机世界和真实世界存在着质的区别吗？它们验证证伪的特性如此不同。在继续之前，须介绍些密码学知识。&lt;/p&gt;&#xA;&lt;p&gt;HASH函数：指将任意长度的字符串映射到另一段字符串的函数。实际应用中，另一段字符串一般为数字或是固定长度的字符串。密码学中，典型的HASH函数有MD5、SHA1等，它们有如下特点，假设f是HASH函数，x属于定义域，y是值域：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;已知y，反求x是极其困难的。&lt;/li&gt;&#xA;&lt;li&gt;找到两个不同的x1、x2，使得f(x1)=f(x2)是极其困难的。(碰撞困难)&lt;/li&gt;&#xA;&lt;li&gt;已知x，求y=f(x)速度很快。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;满足这样性质的HASH函数最适合用于密码学，所谓的极其困难一般指除了暴力破解外别无他法，暴力破解耗费的时间上万年。&lt;/p&gt;&#xA;&lt;p&gt;MD5的碰撞性质已经被破解，不过它的第一个性质还没被破解，即已知y，反求x。为了安全起见，可以使用SHA1，甚至SHA-512，这些HASH函数目前要多少有多少。&lt;/p&gt;&#xA;&lt;p&gt;利用这样的HASH函数，可以解决上面的验证真伪问题。机制是这样的：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;   1) 程序产生随机地一串足够长的字符串STRING1&#xD;&#xA;&#xD;&#xA;   2) 用户输入随机地一串足够长的字符串STRING2&#xD;&#xA;&#xD;&#xA;   3) 计算机计算HASH(STRING1+a的值+STRING2)，发送给用户&#xD;&#xA;&#xD;&#xA;   4) 计算机计算HASH(STRING1+b的值+STRING2)，发送给用户&#xD;&#xA;&#xD;&#xA;   5) 用户选择这两个HASH值的一个，也即选择a或b&#xD;&#xA;&#xD;&#xA;   6) 计算机公开a、b的值，用户知道是否中奖&#xD;&#xA;&#xD;&#xA;   7) 用户可验算a、b值是否被篡改&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;利用密码学HASH函数的特征，可以推断上述机制是对双方是安全的：&lt;/p&gt;&#xA;&lt;p&gt;1)用户得到这两串HASH值之后，不可能从此HASH值反求出原来的值，也即用户不可能反求出a、b的值。因为STRING1足够长，暴力破解出STRING1在短时间内不可能。这保证&amp;quot;奖券&amp;quot;在&amp;quot;刮开&amp;quot;之前是安全的。&lt;/p&gt;&#xA;&lt;p&gt;2)由于STRING2是用户随机输入的，计算机就无法实时计算好作弊数据。具体用图表示，左边是正常过程，右边是作弊需要的手段：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm5.static.flickr.com/4001/4170039561_faec36b789.jpg&#34; alt=&#34;2009-12-9 9-41-03.png&#34; height=&#34;126&#34; width=&#34;540&#34;/&gt;&#xD;&#xA;&lt;p&gt;Str1是计算机生成的，用户在步骤5)完成之前，不可能知道。当计算机把C1、C2这两个HASH值告诉用户之后，如果它要作弊，就必须找到新的Str1&amp;rsquo;，并且满足上图右边的情况。这在短时间内是不可能的，根据HASH函数特点，HASH碰撞是极其困难的，即使是已被破解的MD5，在上面机制下也无能为力，就算计算机找到Str1&amp;rsquo;，使得HASH (Str1&amp;rsquo;+b的值+Str2) = C1，那么要让这个Str&amp;rsquo;同时满足HASH (Str1&amp;rsquo;+a的值+Str2) = C2那真的是不可能的巧合。&lt;/p&gt;&#xA;&lt;p&gt;用户验证真伪：问题回到现实中来，现在用户验证真伪很简单。计算机公开Str1及a、b的值，用户计算HASH (Str1+a的值+Str2)和HASH (Str1+b的值+Str2)是否等于C1和C2即可。&lt;/p&gt;&#xA;&lt;p&gt;下面这个是可信抽奖程序的伪代码：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;   If (rand()&amp;amp;lt;0.5) a=0,b=1; //rand()产生一个[0,1 )之间的数&#xD;&#xA;   Else a=1,b=0;&#xD;&#xA;&#xD;&#xA;   Str1 = 随机生成的一串足够长字符串&#xD;&#xA;&#xD;&#xA;   Print &amp;#34;请用户输入一串随机足够长的字符串&amp;#34;&#xD;&#xA;   Cin &amp;gt;&amp;gt; Str2; 用户输入足够长的字符串Str2&#xD;&#xA;&#xD;&#xA;   C1 = HASH(Str1+a+Str2);&#xD;&#xA;   C2= HASH(Str1+b+Str2);&#xD;&#xA;&#xD;&#xA;   Print &amp;#34;a的HASH值：&amp;#34;+C1 +&amp;#34;b的HASH值：&amp;#34;+C2&#xD;&#xA;&#xD;&#xA;   Print &amp;#34;请选择一个：&amp;#34;&#xD;&#xA;&#xD;&#xA;   If(用户选择的变量是1) Print &amp;#34;中奖了&amp;#34;; Else &amp;#34;没中奖&amp;#34;;&#xD;&#xA;&#xD;&#xA;   Print &amp;#34;计算机生成的Str1是&amp;#34;+Str1+&amp;#34;,请验证。&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;按照上面的分析，如果计算机在用户输入a或b之后变换a、b的值，那么最后的验证将出错，作弊行为将被发现。现实中的问题在数学的辅助下得到更好的解决，我想大家现在更相信这种抽奖方式，因为现实中可能还存在魔术师，而要破解这个验证真伪的方法，比变魔术还难。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bezier曲线的de Casteljau算法证明</title>
      <link>https://blog.pugwoo.com/posts/2009/bezier%E6%9B%B2%E7%BA%BF%E7%9A%84de-casteljau%E7%AE%97%E6%B3%95%E8%AF%81%E6%98%8E/</link>
      <pubDate>Tue, 01 Dec 2009 10:19:07 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/bezier%E6%9B%B2%E7%BA%BF%E7%9A%84de-casteljau%E7%AE%97%E6%B3%95%E8%AF%81%E6%98%8E/</guid>
      <description>&lt;p&gt;Bezier曲线（又称貝茲曲線或贝塞尔曲线）的定义和性质请看维基百科&lt;a href=&#34;http://zh.wikipedia.org/wiki/%E8%B2%9D%E8%8C%B2%E6%9B%B2%E7%B7%9A&#34;&gt;貝茲曲線&lt;/a&gt;。它的定义是：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2522/4149447065_515b971535.jpg&#34; alt=&#34;2009-12-1 18-29-51.png&#34; height=&#34;58&#34; width=&#34;276&#34;/&gt;&#xD;&#xA;&lt;p&gt;其中&lt;img src=&#34;http://farm3.static.flickr.com/2493/4149447231_836f1a330f.jpg&#34; alt=&#34;2009-12-1 18-30-08.png&#34; height=&#34;58&#34; width=&#34;345&#34;/&gt;，约定0^0 = 1.&lt;/p&gt;&#xA;&lt;p&gt;de Casteljau算法揭示了Bezier数学上很美的一个性质，我八成相信是先有了这个性质，才有了上面的定义式，当然它们是等价的。首先来看维基百科中的三张图：&lt;/p&gt;&#xA;&lt;p&gt;二次Bezier曲线：&lt;img src=&#34;http://farm3.static.flickr.com/2671/4149447845_f29b211847_o.gif&#34; alt=&#34;Bezier_2_big.gif&#34; height=&#34;150&#34; width=&#34;360&#34;/&gt;&lt;/p&gt;&#xA;&lt;p&gt;三次Bezier曲线：&lt;img src=&#34;http://farm3.static.flickr.com/2755/4149449087_122cfae235_o.gif&#34; alt=&#34;Bezier_3_big.gif&#34; height=&#34;150&#34; width=&#34;360&#34;/&gt;&lt;/p&gt;&#xA;&lt;p&gt;四次Bezier曲线：&lt;img src=&#34;http://farm3.static.flickr.com/2670/4149449879_c449cbcedc_o.gif&#34; alt=&#34;Bezier_4_big.gif&#34; height=&#34;150&#34; width=&#34;360&#34;/&gt;&lt;/p&gt;&#xA;&lt;p&gt;这三张图展现了Bezier曲线漂亮的数学性质。图中的参数变量t的从0增长到1，红色的线就是Bezier曲线，Bezier曲线上的任一个点(t)，都是其它相邻线段的同等比例(t)点处的连线，再取同等比例(t)的点再连线，一直取到最后那条线段的同等比例(t)处，该点就是Beizer曲线上的点(t).以二次Bezier曲线为例，如该曲线上的1/3点，就是线段P0P1取1/3点，P1P2取1/3点，两点连线，再取其1/3点处即是。这就是de Casteljau算法提出来的，其数学表达式是：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2685/4150209650_aa0ff7a629.jpg&#34; alt=&#34;2009-12-1 18-56-45.png&#34; height=&#34;52&#34; width=&#34;407&#34;/&gt;&#xD;&#xA;&lt;p&gt;上式中，k表示第k层，以四次Bezier曲线为例，k=0时，就是灰色线段，k=1时，就是绿色线段，k=2就是蓝色线段，一直递推下去就是Bezier上的点(t)了。于是用de Casteljau算法很容易求出Bezier曲线上的任一点(t)的位置。换一种图示的方法表示这种递推关系：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2708/4150209822_497420a903.jpg&#34; alt=&#34;2009-12-1 19-58-25.png&#34; height=&#34;178&#34; width=&#34;321&#34;/&gt;&#xD;&#xA;&lt;p&gt;这是用几何画板画的，很难看，解释一下。左边一列是原来(k=0)的控制顶点，第二列是(k=1)的控制顶点，以此类推。每个箭头表示两个点分别乘以1-t和t并加起来，得到右边的点。这样一直做到最后的点就是Bezier上的点(t).&lt;/p&gt;&#xA;&lt;p&gt;先看P0的系数为什么是&lt;img height=&#34;20&#34; src=&#34;http://latex.codecogs.com/gif.latex?(1-t)^n&#34; title=&#34;(1-t)^n&#34; width=&#34;60&#34;/&gt;，因为每次P0都是乘以(1-t)传到右边的点，这样一直传了n次到达最右端。仔细看一下就可以发现，最左边的点传递到最右边，是靠乘以一系列的t或1-t到达的，那么Pi的系数就是Pi走到最右边左右的&amp;quot;路&amp;quot;的系数之和。比如，P0只能一直走斜下的边，而且只有一条路，记住能不往左走，因此它的系数就是&lt;img height=&#34;20&#34; src=&#34;http://latex.codecogs.com/gif.latex?(1-t)^n&#34; title=&#34;(1-t)^n&#34; width=&#34;60&#34;/&gt;。那么P1的系数就是&lt;img height=&#34;21&#34; src=&#34;http://latex.codecogs.com/gif.latex?2t(1-t)^{n-1}&#34; title=&#34;2t(1-t)^{n-1}&#34; width=&#34;93&#34;/&gt;,因为它到最右边有两条路，且t和1-t的次数是一样的。可以发现每个Pi的每条路的t和1-t的次数都是一样的，而路的条数的系数很熟悉。没错，把上图逆时钟转90°就是&lt;a href=&#34;http://zh.wikipedia.org/wiki/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92%E5%BD%A2&#34;&gt;杨辉三角&lt;/a&gt;了。&lt;/p&gt;&#xA;&lt;p&gt;杨辉三角有这样的特征：每个数字表示从顶点走下来到该点不同走法的数目，而且无论是哪条路走到该点，向左和向右的次数是一样的，等于该点的二次多项式展开系数。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1 &#xD;&#xA;1 1 &#xD;&#xA;1 2 1 &#xD;&#xA;1 3 3 1 &#xD;&#xA;1 4 6 4 1 &#xD;&#xA;1 5 10 10 5 1&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;到了这里，如果看懂了的话，我想已经证明了，剩下就是一些说明性言语了。数学美还没结束，见下图：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2651/4149450537_f80aa00f3c.jpg&#34; alt=&#34;2009-12-1 20-32-14.png&#34; height=&#34;245&#34; width=&#34;376&#34;/&gt;&#xD;&#xA;&lt;p&gt;绿色线按顺序排列的点P0到P0n这n个点可以画出一条n次Bezier曲线，记为B1；蓝色的n个点也可以画出一条n次Bezier曲线；这两条曲线直接接起来，就是原来P0到Pn画出的n次Bezier曲线！神奇吧，它们居然有类似向量的性质。实际应用也是用这个性质，一般取t=1/2，将一条Bezier曲线变成两条小的，再继续分下去，当Bezier曲线足够小时就可以用线段代替曲线了。这个性质同样可以证明，但写到网上很麻烦就不写了，大家推荐好一点的数学画图软件，谢谢。数学有时很美。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenGL中的glLoadIdentity、glTranslatef、glRotatef原理</title>
      <link>https://blog.pugwoo.com/posts/2009/opengl%E4%B8%AD%E7%9A%84glloadidentitygltranslatefglrotatef%E5%8E%9F%E7%90%86/</link>
      <pubDate>Sun, 29 Nov 2009 02:47:37 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/opengl%E4%B8%AD%E7%9A%84glloadidentitygltranslatefglrotatef%E5%8E%9F%E7%90%86/</guid>
      <description>&lt;p&gt;关于这几个函数的文章比比皆是，这是OpenGL的入门函数，但我想我讲的将不同于目前网上的文章。&lt;/p&gt;&#xA;&lt;p&gt;OpenGL中的坐标用&lt;strong&gt;齐次坐标&lt;/strong&gt;表示，即&lt;code&gt;(x,y,z)&lt;/code&gt;表示成&lt;code&gt;(x&#39;,y&#39;,z&#39;,h)&lt;/code&gt;，其中&lt;code&gt;x=x&#39;/h; y=y&#39;/h; z=z&#39;/h&lt;/code&gt;. 通常h取1. 比如空间中的点&lt;code&gt;(2,3,4)&lt;/code&gt;，在OpenGL中将表示成&lt;code&gt;(2,3,4,1)&lt;/code&gt;. 齐次坐标表示方式适合于矩阵运算，也很方便地表示了无穷远的点，比如(1,0,0,0)就表示x轴上无穷远的点，因为1/0是无穷大，这里约定0/0=0.&lt;/p&gt;&#xA;&lt;p&gt;接着要说点矩阵(线性代数)的知识。OpenGL里面的平移、旋转、缩放等变换均是线性变换，用矩阵相乘来表示。以平移变换为例，请见官方对&lt;a href=&#34;http://www.opengl.org/sdk/docs/man/xhtml/glTranslate.xml&#34;&gt;glTranslatef函数&lt;/a&gt;的说明。假设有点(3,3,3)，如果把该点沿x轴移动2单位，沿y轴移动3单位，沿z轴移动4单位，那么该点会是&lt;code&gt;(3+2, 3+3, 4+4) = (5,6,7)&lt;/code&gt;. 用矩阵表示是：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2632/4143575940_1d29257e93.jpg&#34; alt=&#34;2009-11-29 18-42-47.png&#34; height=&#34;80&#34; width=&#34;197&#34;/&gt;&#xD;&#xA;&lt;p&gt;左边的矩阵称为平移变换矩阵，若把2、3、4换成x、y、z，则用它乘以一个齐次坐标表示的向量，就可以将该向量平移(x,y,z). &lt;a href=&#34;http://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml&#34;&gt;旋转变换&lt;/a&gt;和缩放变换都像平移变换一样可用一个矩阵来表示。这里可以不用理会这些矩阵长什么样，只需清楚它们乘以一个齐次坐标表示的向量，就可以使该向量发生需要的变换。&lt;/p&gt;&#xA;&lt;p&gt;把平移变换矩阵记为&lt;code&gt;T(x,y,z)&lt;/code&gt;，旋转变换矩阵记为&lt;code&gt;R(x,y,z,s)&lt;/code&gt;，表示绕向量(x,y,z)旋转s角度；把向量记为X。这里只需要知道它们是矩阵就行了，现在要把一个点X，如(3,3,3,0)，移动(2,2,2)单位，再绕y轴旋转30度角，用矩阵表示即&lt;code&gt;R(0,1,0,30)*T(2,2,2)*X&lt;/code&gt;，可以理解为离X最近的矩阵最先作用。理解这个顺序很重要，这样，所有变换都可以用一串矩阵的相乘来表示，计算机里面也确实是这么做的。&lt;/p&gt;&#xA;&lt;p&gt;介绍完基本的数学知识，下面说OpenGL的作用机制。OpenGL有个变换矩阵堆栈，堆栈就像子弹夹一样，先进的后出。OpenGL中的每个向量，在被定义之后进入到OpenGL世界中，都必须先乘以这个变换矩阵堆栈的栈顶变换矩阵。如下图所示：&lt;/p&gt;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2581/4143576202_143d0222ec.jpg&#34; alt=&#34;2009-11-29 19-12-50.png&#34; height=&#34;227&#34; width=&#34;329&#34;/&gt;&#xD;&#xA;&lt;p&gt;理解完上面的知识，再来理解glLoadIdentity、glTranslatef、glRotatef这些函数干了什么就容易多了。这些函数就是对这个堆栈的操作：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;glTranslatef：将T(x,y,z)右乘与堆栈的栈顶变换矩阵。右乘的解释，假设目前栈顶变换矩阵为M，那么就相当于把M修改为M*T.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;glRotatef ：将R(x,y,z,s)右乘与堆栈的栈顶变换矩阵。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;glLoadIdentity：将堆栈的栈顶变换矩阵设置成单位矩阵。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;glPushMatrix：将堆栈的栈顶变换矩阵复制一份，然后Push到堆栈中。所谓Push，就像塞子弹一样把一个矩阵压入到堆栈中，此时，栈顶就是这个新的矩阵了，注意定义的向量都是和栈顶变换矩阵作用的。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;glPopMatrix：将堆栈的栈顶变换矩阵Pop出来。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;该讲的讲完了，下面出几道题目练习下吧。&lt;/p&gt;&#xA;&lt;p&gt;1、OpenGL代码是：glLoadIdentity(); glTranslate3f(4,5,1); glRotate3f(0,1,0,90); glVertex3f(1,1,1); 请问此时栈顶变换矩阵是什么？(1,1,1)这个点到了OpenGL世界中的点是什么？&lt;/p&gt;&#xA;&lt;p&gt;答：栈顶变换矩阵是&lt;code&gt;T(4,5,1)*R(0,1,0,90)&lt;/code&gt;，(1,1,1)到OpenGL世界中的坐标是&lt;code&gt;T(4,5,1)*R(0,1,0,90)*(1,1,1)&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;2、解释为什么使用glPushMatrix和glPopMatrix的组合可以隔离这两个函数中的变换，使之不影响后面的点？&lt;/p&gt;&#xA;&lt;p&gt;答：glPushMatrix新压入的变换矩阵是复制了原来的栈顶变换矩阵，所以它继承了之前的变换，此后执行glTranslatef、glRotatef这些函数时，修改的是栈顶变换矩阵，在glPopMatrix之前的点都将受到栈顶变换矩阵的作用，之后用glPopMatrix，把栈顶变换矩阵Pop掉，此时的栈顶变换矩阵又还原成原来的那个栈顶变换矩阵。&lt;/p&gt;&#xA;&lt;p&gt;3、为什么有时候glTranslate3f和glRotate3f能颠倒有时候又不能？&lt;/p&gt;&#xA;&lt;p&gt;答：矩阵A乘以矩阵B未必等于矩阵B乘以矩阵A，当它们有相等的时候，很多时候这只是巧合。&lt;/p&gt;</description>
    </item>
    <item>
      <title>“回流”一说</title>
      <link>https://blog.pugwoo.com/posts/2009/%E5%9B%9E%E6%B5%81%E4%B8%80%E8%AF%B4/</link>
      <pubDate>Fri, 27 Nov 2009 12:37:14 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E5%9B%9E%E6%B5%81%E4%B8%80%E8%AF%B4/</guid>
      <description>&lt;p&gt;我是在郎咸平的文章里知道&amp;quot;回流&amp;quot;这个概念，涉及的问题是美国对中国的剥夺措施。&lt;/p&gt;&#xA;&lt;p&gt;20世纪80年代，改革开放的广东到处是劳动密集型企业，我们生产衣服、玩具、电子装配等手工产品。密集的车间内挤满了订衣服、粘盒子的年轻人，这是我对那个年代的印象，那时我还小。我家购买的第一台电视是Sony牌25英寸彩电，1995年。家里的相机、手机等数码产品基本是国外的。这些东西价格不菲，都是好几千元一件，这基本上是那时候一个工人半年到一年的工资。看到了吗？我们整一代人付出了廉价的劳动力，拿着半年甚至一年积累的工资消费国外的高新产品。如果我们盘算着靠低廉劳动力赚取国外钱财是在削弱国外财富的话，那么我们就太傻了，他们靠高新产品轻轻松松地就把我们赚半年一年的钱收回去了！这就是一种&amp;quot;回流&amp;quot;！钱从发达国家来到我们手里了，又被拿回去。&lt;/p&gt;&#xA;&lt;p&gt;看过《货币战争》的人知道&amp;quot;环境保护&amp;quot;这个主题是金融大鳄的又一大阴谋，不过我不太喜欢无凭据的阴谋论。郎咸平的&amp;quot;回流&amp;quot;一说又一次很好解释为什么是阴谋。现在不像80年代了，我们国内能生产电视、手机、电脑、相机、汽车等几乎所有日常高科技产品。这看起来无法阻挡，虽然我猜想国外不太愿意看到这样。于是他们先宣传&amp;quot;环境保护&amp;quot;的重要性，这里我也强调其重要！中国的致癌村实在恐怖，这些负面新闻往往被中国政府封锁。但问题不在这，经过二十几年的选择，环保深入人心。现在国外要做的就是提高&amp;quot;环保标准&amp;quot;，这意味着提高生产技术，以生产出符合标准的商品。如果标准提高的话，国内的企业不得不购买他们符合标准的技术，而这些技术是昂贵的。这又是一种&amp;quot;回流&amp;quot;！我们出口服饰、电器产品、机器，赚到得钱不得不购买更高标准的生产设备，钱从发达国家来到我们手里了，又被拿回去。&lt;/p&gt;&#xA;&lt;p&gt;国外的金融大鳄很聪明，他们才不管什么道德，只要有钱赚，这些不属法律管。如果我们看得开点，这是一个强势集体对弱势集体的一种剥削。反观国内，我要说的是目前国内最大的经济问题，房价。现在的年轻人基本是都是房奴了，最近不听说蜗居因为过于暴露房价过高问题被政府停播吗。想想这种情况吧，一个大学生毕业出来，拿4000&lt;del&gt;5000的工资，成家后，夫妻俩拿8000左右工资，在房价均方10000多元的大城市按揭购买了套60&lt;/del&gt;70平方的小房子，房价合80来万，加上利息共计近百万。一个月供4000吧，需要21年，一个家庭一个月4000块怎么够在大城市生存呢？孩子、父母的花费怎么办呢？结论是，我们赚的钱是多了，可还是不幸福。&lt;/p&gt;&#xA;&lt;p&gt;我们的政府是聪明的，虽然我不能证实房价过高确是政府所为，但至少现在迹象表明政府参与其中，拍地卖地、庇护银行、对购房投资这种行为的不作为。我在国内的经济书常看到剖析市场缺陷、推断政府干预的必要性的言论。如果政府的存在无法解决房价过高这样的畸形问题，那么我想，书中的言论不过是在维护他们的利益。他们比想象中聪明，他们创造了一种&amp;quot;回流&amp;quot;！房子是每个人都需要的，推高房价就好像国外提高&amp;quot;环保标准&amp;quot;一样，我们不得不拿着我们辛苦赚来的钱，去换取这种虚高的居住标准。如果我们的大半生都必须为房子而工作，实际上我们是在为既得利益者工作，那么我想起了黑客帝国的一句话：wo are grown. 我们是被人种植的(庄稼)，我们是这个大牧场圈养的牲畜。&lt;/p&gt;&#xA;&lt;p&gt;对于房价为什么这么高，什么手段造成的，我比较赞成一种金融的解释，里面涉及我们的政府和银行，他们才是真凶。我想我有必要下次再写一篇。总之，我们应该认识到钱的流向，想清楚我们工作是为了什么，一套房子吗？&lt;/p&gt;</description>
    </item>
    <item>
      <title>深秋初冬的校园黄昏</title>
      <link>https://blog.pugwoo.com/posts/2009/%E6%B7%B1%E7%A7%8B%E5%88%9D%E5%86%AC%E7%9A%84%E6%A0%A1%E5%9B%AD%E9%BB%84%E6%98%8F/</link>
      <pubDate>Tue, 24 Nov 2009 16:06:25 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E6%B7%B1%E7%A7%8B%E5%88%9D%E5%86%AC%E7%9A%84%E6%A0%A1%E5%9B%AD%E9%BB%84%E6%98%8F/</guid>
      <description>&lt;p&gt;天使的翅膀，在宿舍拍的。&lt;/p&gt;&#xA;&lt;a href=&#34;http://www.flickr.com/photos/pugwoo/4131327772/&#34; title=&#34;Flickr 上 pugwoo 的 天使的翅膀--在宿舍&#34;&gt;&#xD;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2600/4131327772_186bdb5054.jpg&#34; alt=&#34;天使的翅膀--在宿舍&#34; height=&#34;375&#34; width=&#34;500&#34;/&gt;&#xD;&#xA;&lt;/a&gt;&#xD;&#xA;&lt;p&gt;中大的黄昏&amp;mdash;-教学楼外校道&lt;/p&gt;&#xA;&lt;a href=&#34;http://www.flickr.com/photos/pugwoo/4130573489/&#34; title=&#34;Flickr 上 pugwoo 的 中大黄昏&#34;&gt;&#xD;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2530/4130573489_671d415920.jpg&#34; alt=&#34;中大黄昏&#34; height=&#34;375&#34; width=&#34;500&#34;/&gt;&#xD;&#xA;&lt;/a&gt;&#xD;&#xA;&lt;p&gt;夜幕初临的中大牌坊&amp;ndash;深秋初冬&lt;/p&gt;&#xA;&lt;a href=&#34;http://www.flickr.com/photos/pugwoo/4130582171/&#34; title=&#34;Flickr 上 pugwoo 的 傍晚的中大牌坊&#34;&gt;&#xD;&#xA;&lt;img src=&#34;http://farm3.static.flickr.com/2511/4130582171_d4fd3c613e.jpg&#34; alt=&#34;傍晚的中大牌坊&#34; height=&#34;375&#34; width=&#34;500&#34;/&gt;&#xD;&#xA;&lt;/a&gt;</description>
    </item>
    <item>
      <title>一道数学难题</title>
      <link>https://blog.pugwoo.com/posts/2009/%E4%B8%80%E9%81%93%E6%95%B0%E5%AD%A6%E9%9A%BE%E9%A2%98/</link>
      <pubDate>Sun, 22 Nov 2009 15:23:57 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E4%B8%80%E9%81%93%E6%95%B0%E5%AD%A6%E9%9A%BE%E9%A2%98/</guid>
      <description>&lt;p&gt;这道题在2007年11月20号想过，可能是来自于一道比较简单的题目，经过变形后我贴在我的网易博客上，今晚整理时再次看到，还是做不出，期盼高手。&lt;/p&gt;&#xA;&lt;p&gt;把一个圆等分成N个扇形，N&amp;gt;=2，用R&amp;gt;=2种不同的颜色给每个扇形着色，要求相邻的两个扇形颜色不同，每个扇形只着一种颜色。如果通过旋转该圆，两种着法可以重合的话，则这两种着法只算一种。要求求出f(N,R)的表达式，它表示可能的着法的个数。&lt;/p&gt;&#xA;&lt;p&gt;一些特例：f(2,2)=1, f(3,2)=0, f(4,2)=1, f(2,3)=3, f(3,3)=1等。&lt;/p&gt;</description>
    </item>
    <item>
      <title>我最喜欢的广播剧--假如爱有天意</title>
      <link>https://blog.pugwoo.com/posts/2009/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E5%B9%BF%E6%92%AD%E5%89%A7--%E5%81%87%E5%A6%82%E7%88%B1%E6%9C%89%E5%A4%A9%E6%84%8F/</link>
      <pubDate>Sat, 21 Nov 2009 16:11:23 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E5%B9%BF%E6%92%AD%E5%89%A7--%E5%81%87%E5%A6%82%E7%88%B1%E6%9C%89%E5%A4%A9%E6%84%8F/</guid>
      <description>&lt;p&gt;在我的大学里，她一直伴随着我，记得是大学第一学期冬天快到的时候听到的，讲述着一个爱情故事，无论情节、配乐、配音都很完美，让人很快沉浸在情节中。记得好几次放假回家，几个小时的车程是不停循环听这个故事听过去的，现在还隐约记得车上快睡着时耳朵里的音乐。当又听起时，我的回忆又回到两年前的大一，记忆不多却又奇妙，很怀念。&lt;/p&gt;&#xA;&lt;p&gt;请搜索：粤语广播剧 假如爱有天意&lt;/p&gt;</description>
    </item>
    <item>
      <title>选择Micoblog,开始新纪录</title>
      <link>https://blog.pugwoo.com/posts/2009/%E9%80%89%E6%8B%A9micoblog%E5%BC%80%E5%A7%8B%E6%96%B0%E7%BA%AA%E5%BD%95/</link>
      <pubDate>Mon, 16 Nov 2009 12:07:57 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E9%80%89%E6%8B%A9micoblog%E5%BC%80%E5%A7%8B%E6%96%B0%E7%BA%AA%E5%BD%95/</guid>
      <description>&lt;p&gt;10月16号我在美国著名的域名提供商Name.com注册了pugwoo.com，美国时间周五仅需$5.99/yr，由于没钱购买虚拟主机(每月几Dollors对我来说挺贵的)，于是我决定使用Google提供的免费虚拟主机，即Google App Engine.&lt;/p&gt;&#xA;&lt;p&gt;接下来就是选择架设在GAE上的博客，大概有近十种，micoblog、pyweblog、n23、xian-min、tublog、pblog等。我通通下载安装试用了一遍，最后排除了所有，只剩下micoblog。其它博客的优缺点如下，好坏不分先后：&lt;/p&gt;&#xA;&lt;h3 id=&#34;pyweblog&#34;&gt;Pyweblog&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://plog.appspot.com/&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/pyweblog/&lt;/p&gt;&#xA;&lt;p&gt;优点：界面清爽，写文章、管理、评论功能完备，支持上传，无任何广告&lt;/p&gt;&#xA;&lt;p&gt;缺点：不支持导出导入&lt;/p&gt;&#xA;&lt;h3 id=&#34;cpedia&#34;&gt;Cpedia&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://blog.cpedia.com/&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/cpedialog&lt;/p&gt;&#xA;&lt;p&gt;优点：页面设计非常强大，界面清新，功能完善，后台可以拖动设置主页各模块位置。&lt;/p&gt;&#xA;&lt;p&gt;缺点：过于臃肿，近7M；嵌入难以去除的广告，需手动去除；不支持导出导入。&lt;/p&gt;&#xA;&lt;h3 id=&#34;n23&#34;&gt;n23&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://n23.appspot.com/blog&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/n23/&lt;/p&gt;&#xA;&lt;p&gt;优点：测试未成功，页面混乱；&lt;/p&gt;&#xA;&lt;p&gt;缺点：过于臃肿，达7.8M；&lt;/p&gt;&#xA;&lt;h3 id=&#34;xian-min&#34;&gt;xian-min&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://xian-min.appspot.com/&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/xian-min/&lt;/p&gt;&#xA;&lt;p&gt;优点：程序简约，仅几百K；最基本发文章、修改删除文章功能，评论功能。&lt;/p&gt;&#xA;&lt;p&gt;缺点：过于简单，甚至没有文本编辑器，不支持导入导出&lt;/p&gt;&#xA;&lt;h3 id=&#34;tublog&#34;&gt;tublog&lt;/h3&gt;&#xA;&lt;p&gt;演示：暂无&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/tublog/&lt;/p&gt;&#xA;&lt;p&gt;优点：绝对精简，发文章管理评论均有，不错的编辑器；注意后台是/admin，主页无链接；无任何广告&lt;/p&gt;&#xA;&lt;p&gt;缺点：精简不会成为它的缺点，它就是这样；不支持导入导出&lt;/p&gt;&#xA;&lt;h3 id=&#34;potlatchblog&#34;&gt;potlatchblog&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://aaronspotlatch.appspot.com/&lt;/p&gt;&#xA;&lt;p&gt;代码：http://github.com/araddon/potlatchblog/tree/master&lt;/p&gt;&#xA;&lt;p&gt;优点：发文章、管理评论等基本功能均有，注意后台是/admin，主页无链接；无任何广告&lt;/p&gt;&#xA;&lt;p&gt;缺点：未排版，无特殊之处；不支持导入导出&lt;/p&gt;&#xA;&lt;h3 id=&#34;niub&#34;&gt;niub&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://niubi.appspot.com/&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/niubi/&lt;/p&gt;&#xA;&lt;p&gt;优点：暂无，运行出错&lt;/p&gt;&#xA;&lt;p&gt;缺点：程序非常大，17M；&lt;/p&gt;&#xA;&lt;h3 id=&#34;onlypy&#34;&gt;onlypy&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://onlypython.appspot.com&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/onlypy/&lt;/p&gt;&#xA;&lt;p&gt;优点：界面非常整洁，功能完备。&lt;/p&gt;&#xA;&lt;p&gt;缺点：程序非常大，18M；过多作者信息&lt;/p&gt;&#xA;&lt;h3 id=&#34;i-here&#34;&gt;i-here&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://ihere.appspot.com/blog/&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/ihere-blog/&lt;/p&gt;&#xA;&lt;p&gt;优点：作者热情，很有前途；界面简约、功能完善；支持兼容wordpress导入导出；支持多人协作；可以修改文章发布时间；支持Live Writer发布；支持上传；支持Development Console可视化查看后台数据库、流量；支持URL重定向；无任何广告&lt;/p&gt;&#xA;&lt;p&gt;缺点：程序过大，11M，但支持这么多功能，大些是可以理解的&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;看了这么多优秀的博客程序，如果不是因为micoblog的简约和兼容，我肯定选择了i-here。不过我最早接触micoblog，给我留下了很好的印象。此外本博客使用vvonder修改完善的micoblog版本，功能多了不少，界面也更好看。&lt;/p&gt;&#xA;&lt;h3 id=&#34;micoblog&#34;&gt;micoblog&lt;/h3&gt;&#xA;&lt;p&gt;演示：http://xuming.net&lt;/p&gt;&#xA;&lt;p&gt;代码：http://code.google.com/p/micolog/&lt;/p&gt;&#xA;&lt;p&gt;优点：界面清新，程序精简(仅800K)，发文章、管理、评论、Tags、分类等都和上面大部分博客一样非常完备；后台管理界面友好，支持RSS，支持Wordpress格式导入导出；容易修改移植Wordpress主题；支持上传文件；支持Live Writer发布；无任何广告；作者热情，用户量较大&lt;/p&gt;&#xA;&lt;p&gt;缺点：比较一下i-here，我个人非常需要它的修改文章发布时间的功能，虽然我可以通过导出&amp;ndash;修改&amp;ndash;导入的方式达到目的；不支持多人协作&lt;/p&gt;&#xA;&lt;p&gt;就是从这些博客的应用里，我看到了Google App Engine和Python的好玩之处。上个月我开始学习Python，我还需要学习一下Google APP和Django等这些开发文档。我想在一两个月内，完善micoblog，实现我需要的功能。对于micoblog，我还希望得到一下一些功能：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;导出时支持将图片备份至本地，同样支持将备份图片还原&lt;/li&gt;&#xA;&lt;li&gt;加入验证码&lt;/li&gt;&#xA;&lt;li&gt;可拖动设置主页模块&lt;/li&gt;&#xA;&lt;li&gt;插件支持，如Twitter等&lt;/li&gt;&#xA;&lt;li&gt;在线换肤&lt;/li&gt;&#xA;&lt;li&gt;在线升级&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;下面是我收藏的几个使用micoblog的网站，大家观摩一下:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://vvonderblog.appspot.com/&#34;&gt;http://vvonderblog.appspot.com/&lt;/a&gt; 漂亮的主题&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.houkai.com/&#34;&gt;http://www.houkai.com/&lt;/a&gt; 也很不错&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.kgblog.net/&#34;&gt;http://www.kgblog.net/&lt;/a&gt; 再来一个主题&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;最后再贴micoblog的两个小应用：使用Microsoft Live Writer发布文章和代码高亮&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】贝岗读书的阿姨(故事真相)</title>
      <link>https://blog.pugwoo.com/posts/2009/%E8%B4%9D%E5%B2%97%E8%AF%BB%E4%B9%A6%E7%9A%84%E9%98%BF%E5%A7%A8%E6%95%85%E4%BA%8B%E7%9C%9F%E7%9B%B8/</link>
      <pubDate>Sun, 21 Jun 2009 09:51:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E8%B4%9D%E5%B2%97%E8%AF%BB%E4%B9%A6%E7%9A%84%E9%98%BF%E5%A7%A8%E6%95%85%E4%BA%8B%E7%9C%9F%E7%9B%B8/</guid>
      <description>&lt;p&gt;旁白: 一年多了，每一次我早上到学校旁边的贝岗村总是可以听到一个朗朗的读书声，内容也总是党的文件。我循着声音望过去，隐约看到一个身影，却总也没有太多在意。&lt;/p&gt;&#xA;&lt;p&gt;这一天，我去贝岗，很意外的听到歌声，歌里唱的是：明天会更好。我抑制不住好奇心，不自觉地来到她的身边。&lt;/p&gt;&#xA;&lt;p&gt;阿姨，你唱得真好听。我说道。&#xA;阿姨“嗨，靓女，你不用上课吗？”&#xA;阿姨,我常常听到你在这边读书&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;这时候她向我道出了她的心酸故事。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;我每天都在这里读书的，下雨也好，天气好也好。我也喜欢唱歌，&amp;ldquo;接着她继续唱起了明天会更好，我情不自禁地跟着她唱了起来。她唱得不准，可是声音很响亮。&amp;ldquo;我很喜欢读书的，这些书都是你们学校的同学给我的，&amp;ldquo;接着她打开身旁的袋子，我看到里面十几本大学生版_&amp;mdash;时事报告，问她都认得里面的字吗，她说她只读了三年级，里面的字都很简单，不懂的就问路过的大学生。&lt;/p&gt;&#xA;&lt;p&gt;&amp;mdash;&amp;ndash;她们都会告诉你吗&#xA;&amp;mdash;&amp;ndash;有的人板着脸，说我很傻了，你们大学生多认识了几个字，告诉我，帮一下我，都不愿意。&#xA;&amp;mdash;&amp;mdash;那你明白里面讲的那些内容吗&lt;/p&gt;&#xA;&lt;p&gt;接着她给我背了一段关于《社会主义市场经济管理条例》的文字，还不断强调其中的以人为本的字眼。她问我你们不用读这些的吗？&lt;/p&gt;&#xA;&lt;p&gt;我说：“我背不下来，我也不读，一我觉得一点乐趣没有，二读了也没有什么用”&lt;/p&gt;&#xA;&lt;p&gt;她说：“是呀，我旁边那个大学生也经常和我说读这些书没有用，”但你们都给这些给我，我没有办法，不读书我才痛苦，我已经习惯了，每天7点在这里读书，读到十一点多你们下课了，我才过去捡些饭。&lt;/p&gt;&#xA;&lt;p&gt;&amp;mdash;&amp;ndash;你们就是靠捡垃圾维持生活的吗&#xA;&amp;mdash;&amp;ndash;我家里有爸爸，妈妈，还有一个妹妹了，我妹妹她傻的，不做事情的，全靠我一个人了，我妈妈有时候也捡，她已经七十岁了。我三点多才回去洗澡，四点睡觉，睡两个钟而已，就来这里读书，等你们吃了饭过去捡点饭，我家里的房租400元，加上水电费其他费，600元差不多，没办法了，一家人都吃捡来的饭。&lt;/p&gt;&#xA;&lt;p&gt;旁白： 这个在大学城贝岗村的全家以捡垃圾为生的阿姨叫邵笑坤，2004年，大学城开建，征了她家的土地，拆了她的家，但是她并没有拿到土地补偿费，也没有钱买政府在新造给她们预留的安置房，他们——村长：说她不是贝岗村的村民，而事实上笑坤有本地户口。失去了田地依靠的笑坤只好在大学城流浪并过上捡垃圾的生活。&lt;/p&gt;&#xA;&lt;p&gt;笑坤说,她们有补贴，但都被那些官贪污了，&amp;ldquo;我有表哥，表弟。但他们都帮不到我，你话以前我们有田有屋，生活艰难，烂菜有一条，靓妹，你们现在住着的学校，以前都是我们的田地来的，我们的生活真是困难过你们好多的。&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;接着阿姨又唱起了，&amp;ldquo;社会主义好&amp;rdquo;，唱完后，问我们有没有江泽民三个代表的书，里面也有讲到“以人为本”&lt;/p&gt;&#xA;&lt;p&gt;我说,现在的主席是胡锦涛了。&#xA;她说：江泽民还是有很高的职位。&lt;/p&gt;&#xA;&lt;p&gt;又问我有没有十七大那些文件的书&amp;quot;我以前去过番禺新华书店，没有找到。 &amp;quot;&#xA;接着又背起了其中的“老有所养、病有所医、失有所补、弱有所助,安居乐业。”&lt;/p&gt;&#xA;&lt;p&gt;我问她可不可以让我去她家看看。&lt;/p&gt;&#xA;&lt;p&gt;她想了想说，“你帮不到我的。我每天都在背文件，都没见落实。汶川大地震，我见到温家宝和那些无家可归的人在一起， 人们又捐钱捐物给她们，我们都是无家可归的，没人帮一下我们，很多人都是就睡在前面超市的台子上，我们这里发生一下地震就好了。 ”&lt;/p&gt;&#xA;&lt;p&gt;在我的再三要求下，阿姨把我带回了她的家，过马路的时候，她牵起了我的手让我注意迎面开来的车。&lt;/p&gt;&#xA;&lt;p&gt;在这条路上，气味并不好受，随处可以看到苍蝇，蚊子，还有一些小昆虫停留在我的手上。在房屋与房屋之间，总是堆满了垃圾。&lt;/p&gt;&#xA;&lt;p&gt;阿姨念叨着，叫你不要来的，里面全部是垃圾。&lt;/p&gt;&#xA;&lt;p&gt;我到了，门前坐着一个老大爷，我打声招呼问大爷是不是阿姨的父亲，答案是肯定的。这时候我又看见了朝我走来的大妈，她招呼我坐下，还让我喝水，我不敢喝，但礼貌地拒绝了，这屋里面堆满了垃圾，破布，和散发出糜烂味道的水果，我看到已经黑了很大部分的梨，全黑的香蕉，阿姨说这些全是她从垃圾桶里捡回来的。&lt;/p&gt;&#xA;&lt;p&gt;我要离开了，我怀着沉重的心情离开，我想到了骄傲的我和我的同学们，我对中国的所谓的十大阶层感到无比的痛心，我更对那些拿此来恶搞的网友感到无比的恶心。&lt;/p&gt;&#xA;&lt;p&gt;走出家门阿姨让我常来，说她每天都会在那里读书。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】贝岗的补鞋老人(作者是广外学生)</title>
      <link>https://blog.pugwoo.com/posts/2009/%E8%B4%9D%E5%B2%97%E7%9A%84%E8%A1%A5%E9%9E%8B%E8%80%81%E4%BA%BA%E4%BD%9C%E8%80%85%E6%98%AF%E5%B9%BF%E5%A4%96%E5%AD%A6%E7%94%9F/</link>
      <pubDate>Sun, 21 Jun 2009 09:37:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2009/%E8%B4%9D%E5%B2%97%E7%9A%84%E8%A1%A5%E9%9E%8B%E8%80%81%E4%BA%BA%E4%BD%9C%E8%80%85%E6%98%AF%E5%B9%BF%E5%A4%96%E5%AD%A6%E7%94%9F/</guid>
      <description>&lt;p&gt;他深陷的黑色眼窝,使我想起《巴黎圣母院》里的卡西莫多，一个相貌丑陋但心地极其善良的人。&lt;/p&gt;&#xA;&lt;p&gt;　对陌生人，我一直保持着戒备，更何况贝岗一直是一个卧虎藏龙，暗藏杀机的地方。这里有无数乱闯的野狗，以致我从来不敢买狗不理包子，怕商贩的原料取自于贝岗。这里还有光着膀子的民工，偶尔用猥亵的眼光打量着你。&lt;/p&gt;&#xA;&lt;p&gt;　但不可否认，贝岗事实上已经成了学校的后花园，每天下课后，浩浩荡荡前往中大饭堂的食客都要经过这里，当然也带动了沿途的经济的发展。夜幕降临，华灯初上，更是烧烤夜宵猖狂的时候，斗酒声，狂叫声连绵不绝直至深夜。有时甚至通宵达旦，群魔乱舞，但天明，他们又再披上规矩的外衣，他们有可能是社团的领袖，团学的干部，但是他们也需要宣泄，每个人的躯体里，都藏着一只凶猛的野兽，酒精能把他们引出来，午夜，上帝已死，众神在堕落。&lt;/p&gt;&#xA;&lt;p&gt;　我要写的本来只是补鞋的老人，不想写太多别的。&lt;/p&gt;&#xA;&lt;p&gt;　我第一次见到他时，一个人，有点恐惧，小心翼翼地拿出断了带的凉鞋，他拿过去，勘察了一下就开始补起来，我不喜欢他的搭讪，所以只是随便应付。&lt;/p&gt;&#xA;&lt;p&gt;　他说他原来还有一个修自行车的摊子，不过自从隔壁也有一个修车摊后，他就不做了。我就听着，也没问为什么，他就自顾接着解释了，说不想跟人家竞争，还说自己在满楼香附近那里有个自行车行，现在有人找他修车，他就说去那边修，或者到那个新开的隔壁修车点修理，言下之意他已经金盆洗手，不干了，有点云淡风轻的感觉。&lt;/p&gt;&#xA;&lt;p&gt;　他一边说着，一边娴熟地补鞋，针线，尖刀，锉子，这是一门艺术，我一直敬佩那些中国民间艺人，有些手工技术就快在我们这一代失传了，虽称不上鬼斧神工，但总算游刃有余。&lt;/p&gt;&#xA;&lt;p&gt;　不过天气很热，阳光很晒，我不想久留，两股颤颤，几欲先走。终于补好了，完好无暇，我不禁在心里赞叹：这年头，高级技工难求！我说，谢谢，要多少钱？他说随送，你有多少就给多少。我倒吸一口气，脑后三滴汗。好啊，这句话好有来头。随送，什么意思，像是贪官说的；你有多少就给多少，无异于流氓路匪。我当然不能有多少就给多少，难道把我钱包里的钱都给他？！就为补一只鞋！但是鉴于我孤身一人，倍感危险。&lt;/p&gt;&#xA;&lt;p&gt;　这时我马上冷静下来，想了一下，补鞋的市价应该差不多两块吧，我钱包里也刚好有两张一块的零钱，遂用颤抖的手夹出来，递给他，他摇了摇头，怕他嫌少，我准备再拿多几张，这时他开口说话了：这么多，一张就行了。然后他抽走了一张，我有点呆了，哪有人会嫌付的钱多，看来我刚才都是以小人之心了，我有点汗颜。他还在念叨：用不了这么多，一块就够了。我道了声谢谢，就走了，一路上在想，我的心理竟有一阵温暖，为在异乡，遇到这个不昧金的补鞋老人而感动。&lt;/p&gt;&#xA;&lt;p&gt;　不知什么时候起，我就觉得人性本恶，所以我经常戒备，特别是陌生人，但是在补鞋老人的身上，我分明看见了性本善的一面，我竟然把他想成口开天价的奸商。或许，我不该把每个人都想得那么差。&lt;/p&gt;&#xA;&lt;p&gt;　有时候，一件事，就能改变你心情的局部天气，我感到很坦然，因为，贝岗不是我想的那么水深火热的。&lt;/p&gt;&#xA;&lt;p&gt;　我第二次跟补鞋老人打交道，是国庆假期回来之后，我另一只凉鞋的带也断了，在某个午饭过后，我再度只身前往。朋友笑我：现在是中午，太阳高照，你不是见光死的吗，干嘛不等傍晚再去。我说，我现在一定要去，有时候，一件事，我不想一拖再拖，在烈日高照的中午，去见这个老人，值得。&lt;/p&gt;&#xA;&lt;p&gt;　老人的摊子背靠学友书店，右依“after school coffee”，此刻他正悠闲地横躺在一条长凳上，长凳下面就是他的工具箱，悠闲自得，好像在阳光海岸享受日光浴。&lt;/p&gt;&#xA;&lt;p&gt;　我说补鞋，他坐起身随手拿了一张小凳子示意我坐下，我说不用了。这一次他补得很快，当我问他多少钱的时候，他大手一挥，我又惊讶了“不用钱？！”，当我得到确认的答复后，我只能再度说声谢谢，转身离开了。&lt;/p&gt;&#xA;&lt;p&gt;　午后的阳光晒得人的脊梁发烫，我不解，这么热的天气，他整天呆在那里，补鞋确不要钱？！我一直觉得，从事补鞋这类卑微的职业的人，都是那种为生计奔波的人。但是，现在，这个补鞋老人不收钱？是看我面善，还是他是一个体验生活的儿孙满堂的有钱人？！所有的假设，无从考证，也无可得知。&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&#xA;&lt;img alt=&#34;&#34; src=&#39;https://blog.pugwoo.com/images/20061018223432704.jpg&#39; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;　突然想起一句话：人生最大的乐事，就是拥有一份不以此为生的工作。补鞋老人就是这样吧。&lt;/p&gt;&#xA;&lt;p&gt;　我心里的局部天气再一次得到改善。&lt;/p&gt;&#xA;&lt;p&gt;　在补鞋老人身上，我感受到一种东西，很难形容，有时甚至在熟人身上看不到的。&lt;/p&gt;&#xA;&lt;p&gt;　象牙塔里，也不乏勾心斗角，尔虞我诈，和睦与繁华背后，有的是阴暗的一面。补鞋老人，却有一种从容与释然。或许只有经历了岁月的沧桑，人才有那种境界。人有三种境界：功利境界，道德境界，自然境界。时下，有多少天之骄子还在功利境界中乐此不疲，而，补鞋老人身上，我看到的是一种自然境界，不要追求太多，那样也就不会失去更多了。&lt;/p&gt;&#xA;&lt;p&gt;　或许以后我很少会有机会去补鞋了，但我会穿上他补过的鞋，去大步走我的人生路。&lt;/p&gt;</description>
    </item>
    <item>
      <title>送弟弟上大学</title>
      <link>https://blog.pugwoo.com/posts/2008/%E9%80%81%E5%BC%9F%E5%BC%9F%E4%B8%8A%E5%A4%A7%E5%AD%A6/</link>
      <pubDate>Sat, 06 Sep 2008 23:59:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E9%80%81%E5%BC%9F%E5%BC%9F%E4%B8%8A%E5%A4%A7%E5%AD%A6/</guid>
      <description>&lt;p&gt;时间真快，弟弟也考上大学了。今天和爸妈和大丈和弟弟一起到珠海的北京师范大学分校报到了。早上8点半出发，坐了两个小时的车差不多11点到。超多车，停完车还要走那么远拿那么多东西去报到，有点不人性化，不过还好了，报到的效率挺高的，一份录取通知书过去，拿个大袋子里面什么都有，再办理宿舍就可以了，他们学校真爽，可以选两人间四人间六人间还选空调，不过价格自然不同。之后要坐个车大概2公里路程吧到宿舍，因为拿的东西多所以坐车方便，今天人太多所以自驾车不给到宿舍真是不方便阿。&lt;/p&gt;&#xA;&lt;p&gt;北师大珠海校区的宿舍还不错啊，比我们的大一点，看到两个弟弟的舍友，真像我们那时候当新生的时候。大家帮忙打扫一下后就去吃饭了。然后交完档案就回来了。那种当大学新生对新环境的好奇与懵懂就让我弟弟慢慢去体会吧，蛮怀念这样的其实，相信大家也是吧。也许记不得新朋友间第一次见面第一句话，但是相处之初的那份友情将成为一生的记忆。&lt;/p&gt;&#xA;&lt;p&gt;好好学习好好生活吧弟弟~&lt;/p&gt;</description>
    </item>
    <item>
      <title>让刘翔这个名字消失四年吧</title>
      <link>https://blog.pugwoo.com/posts/2008/%E8%AE%A9%E5%88%98%E7%BF%94%E8%BF%99%E4%B8%AA%E5%90%8D%E5%AD%97%E6%B6%88%E5%A4%B1%E5%9B%9B%E5%B9%B4%E5%90%A7/</link>
      <pubDate>Wed, 20 Aug 2008 20:33:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E8%AE%A9%E5%88%98%E7%BF%94%E8%BF%99%E4%B8%AA%E5%90%8D%E5%AD%97%E6%B6%88%E5%A4%B1%E5%9B%9B%E5%B9%B4%E5%90%A7/</guid>
      <description>&lt;p&gt;还记得2004年雅典奥运会刘翔以平世界纪录12秒91成绩夺冠，也记得2006年12秒88破世界纪录。何等意气风发，大家都等着刘翔的2008. 然而刘翔在自家家门口失败了，第一轮就被淘汰，连成绩都没有。&lt;/p&gt;&#xA;&lt;p&gt;其实我有些气愤，但由于央视及各大网站均在渲染一种悲壮，一份理解，我也就不想气愤太多，毕竟勉强跑下去只会让伤势更重，这对于一个运动员代价太大。但不是一种悲壮一份像全国的道歉就可以免去刘翔的责任。&lt;/p&gt;&#xA;&lt;p&gt;在这里我说责任，是的，像我的座右铭一样，能力越大责任越大。国家对刘翔的投入巨大，刘翔应该负起这份责任。我试图去发现刘翔哪里做错了导致他今天这样的结局。是压力吧，媒体的过分渲染使得刘翔04年夺冠后便名扬四海到处接广告，我肯定这些商业行为及利益腐蚀一个运动员的心，刘翔还没有足够多的阅历让他去承受这么多的金钱利益。&lt;/p&gt;&#xA;&lt;p&gt;凯迪拉克、安利纽崔莱、可口可乐、白沙文化、杉杉男装、千里马汽车、伊利、交通银行、联想、元太、奥康、中国邮政EMS、NIKE、中国移动、可口可乐、伊利和VISA。4年之间，如此多的广告商找到刘翔，这不够一个运动员安分的心扰动吗？&lt;/p&gt;&#xA;&lt;p&gt;刘翔的失败使得广告商损失惨重，预先拍好的夺冠广告付之东流，刘翔的形象价值也大打折扣。我想，就这样算了吧，给刘翔4年时间，别再找他拍广告了。刘翔自己也该安分点，别接广告专心练吧。&lt;/p&gt;&#xA;&lt;p&gt;NIKE也别再恶心地拿刘翔做广告，搞张“爱体育 即使它伤了你的心”恶不恶心阿。建议你们搞张海报，做个刘翔背影，贴着“给我四年”，然后4年内就不要再做刘翔广告了，放过刘翔吧。&lt;/p&gt;&#xA;&lt;p&gt;其实很希望刘翔爬也爬过终点，你既然已经站到赛场上了，就让我们看到一个代表黄皮肤中国人的男人。而不是突然间话都不说手都不像观众致意一下就下场了，给人很不负责任的感觉。我很希望看到你具备下面这样的精神，真的做到像你说的：不会拿伤当借口。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;1968年，在墨西哥城奥运会上，坦桑尼亚选手艾哈瓦里在参加马拉松比赛进程中受伤，当他缠着绷带、拖着流血的伤腿一瘸一拐地最后一个人跨过终点线时，数万人的会场，全场肃穆，全场观众起立，雷鸣般的掌声经久不息。那是一个感人至深的场面。虽然此时离枪响已经近4个小时了，天色也渐渐暗淡下来，但人们仍然向这位勇士表达了他们最崇高的敬意。当被问及为什么不索性退出比赛时，艾哈瓦里笑了笑，回答到：“我的祖国从两万多公里外送我来这里，不是派我来听发令枪声的，他们要我来冲过终点的。”&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>到家了&amp;完成Nachos文件部分</title>
      <link>https://blog.pugwoo.com/posts/2008/%E5%88%B0%E5%AE%B6%E4%BA%86%E5%AE%8C%E6%88%90nachos%E6%96%87%E4%BB%B6%E9%83%A8%E5%88%86/</link>
      <pubDate>Wed, 13 Aug 2008 17:42:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E5%88%B0%E5%AE%B6%E4%BA%86%E5%AE%8C%E6%88%90nachos%E6%96%87%E4%BB%B6%E9%83%A8%E5%88%86/</guid>
      <description>&lt;p&gt;其实是昨天到家的，八点二十的车实际上九点才上路，下午3点就到家了。到现在吃了超多东西，N饱。&lt;/p&gt;&#xA;&lt;p&gt;这3天都在写Nachos的文件部分程序，到现在终于写完报告了。呼~接下来还有很多，还有调研报告，不能松懈！现在好像没什么东西写，先这样。&lt;/p&gt;</description>
    </item>
    <item>
      <title>实习最后一天&#43;08奥运开幕</title>
      <link>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E6%9C%80%E5%90%8E%E4%B8%80%E5%A4%A9&#43;08%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95/</link>
      <pubDate>Sat, 09 Aug 2008 00:57:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E6%9C%80%E5%90%8E%E4%B8%80%E5%A4%A9&#43;08%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95/</guid>
      <description>&lt;p&gt;今天过得很充实。早上依旧6点40起床，7点出门去实习。今天带了小白，以为今天实习的最后一天，而且奥运今晚就开幕了所以应该没事干，可以在办公室玩电脑。不料今天要出去勘察，而且还去了三个地方，这也是我这次实习的最后经历啦。下面详细讲讲:&lt;/p&gt;&#xA;&lt;p&gt;今天到林河西站才快到8点，于是就就和猪猪到麦当劳买了被咖啡喝了。到公司刚好8点半，不久就被告知今天要出去勘察。疯子和一队先出去了，我随后跟另一队出去。和我一起出去的也是一个马上就升大三的实习生，邮校的，来公司实习两个月，也蛮热情的。到楼下马上就有辆车开过来接我们了。今天的任务是勘察中国联通室内覆盖的3个地点:珠江旁的东堤水岸住宅区，还有一个商店，不记得叫什么名，还有另一家住宅楼，叫铧夏。&lt;/p&gt;&#xA;&lt;p&gt;早上就勘察前两个。现在明白了一些勘察的内容，还有怎样去测试楼层里信号，决定信源，布线和天线位置等的选择。开阔了视野，不过里面内在的一些理论就一点都不知道啦。那个东堤水岸1万8一平方，超贵阿，那个联通的说他几个月才够买个厕所。接着再去一家商厦勘察就去吃饭了。在一家越式餐厅吃饭，也试试越南菜式的味道了，辣和甜，还有一点怪怪的其它味道，不习惯越式。4个人吃了只鸡，条鱼，豆腐和排骨，联通那个公司可以报销，就尽管吃啦。很饱。吃完的时候1点半了，就到最后一个地点去勘察，好像楼层转多了就会对每个新楼的基本结构有所了解，一般覆盖的地方都是地下停车站，电梯，楼中层，天台顶这些地方。勘测完回到公司就3点了。由于今晚有开幕式看，所以4点我们离开公司咯。&lt;/p&gt;&#xA;&lt;p&gt;走的时候和罗振华哥说拜拜，猪猪也和她们的主管聊了几句。实习5天，从生疏到有点知道他们在干嘛，其实学习都是这样的一个过程，有所收获的。或许下次还会来这里学习学习的。离开公司准备去汽车站买回家的车票，不过它们只预售3天的车票，所以买不到我想要的12号车票，所以隔两天再去买咯。&lt;/p&gt;&#xA;&lt;p&gt;然后就坐地铁回来咯。今天的重头戏就是看开幕式，回来后在宿舍休息下，7点半就催猪猪到饭堂看奥运开幕式啦&lt;del&gt;我们找了个有风扇的位置坐下来，气氛蛮好的，这么多人一起看开幕式。很感谢饭堂的人拿个音箱扩大电视的声音，不然真的很难听清楚电视在解说什么。我和猪猪就这样看着，吃着薯片，中途还喝了瓶雪碧，还各吃了个茶叶蛋&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;开幕式的开始好震撼阿。然后升国旗，大家都站起来了。接着就是文艺表演，这部分做得蛮不错的，1个小时里，把中华五千年的经典文化都表现出来了，有盘古开天地的气势、秦朝时期的竹子编的书、造纸、指南针、活字印刷术、戏剧、丝绸等等，都很有古中国特色。然后是主题曲你和我。然后就是各国运动员出场了，这个有2个半小时那么长，看到不少美女和新奇的各国服装，猪猪还对很多国家招手呢~&lt;/p&gt;&#xA;&lt;p&gt;然后就是点火了。果然是李宁~被猜中了。不过点火方式好普通，亏李宁在空中跑了一整圈，居然只让人家像点鞭炮一样点个主火炬，这种简单的方式超过我们的想象阿。怎么说呢，这次开幕式总体还是很不错的，不过最最重要的两个因素却是败笔：主题曲和点火方式，有点失望。主题曲不够热情，不够大方，太悲哀，奥运开幕式阿，唱这种歌，好像世界刚经历了大灾害一样，削弱大家夺金的豪情。点火方式的确够简单，但不够新意，想简单又想经典的话就得学学1992年奥运会点火方式。听听悉尼奥运会的吧,the flame&lt;/p&gt;&#xA;&lt;p&gt;12点07分~踏出饭堂门，看看手机上显示的时间。大学以来没有一次这么晚还在宿舍外面哦。那个恶宿管居然关门不给我们进，叫了好久才很不情愿开门，什么东西。&lt;/p&gt;&#xA;&lt;p&gt;回到宿舍脖子好酸阿，玩玩电脑看看新闻，差不多就睡觉咯。明天不用再早起咯，不过其实逼着自己早起或许也不错，在不久的将来。&lt;/p&gt;</description>
    </item>
    <item>
      <title>实习第四天</title>
      <link>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E5%9B%9B%E5%A4%A9/</link>
      <pubDate>Thu, 07 Aug 2008 23:53:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E5%9B%9B%E5%A4%A9/</guid>
      <description>&lt;p&gt;还有7分钟就12点了，快点写。今天一点事都没有，看来实习也没什么实际事可干了今天和明天。不过有这份经历也不错的。&lt;/p&gt;&#xA;&lt;p&gt;今晚吃了一级棒寿司还有逛了广百百货，很开心&lt;del&gt;很晚了 快点睡&lt;/del&gt;今天就写这么点。&lt;/p&gt;&#xA;&lt;h3 id=&#34;回复&#34;&gt;回复&lt;/h3&gt;&#xA;&lt;p&gt;brbr said:&lt;/p&gt;&#xA;&lt;p&gt;乖哟&lt;del&gt;这样应付我的“作业”可是不行的哟&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;这博客不够热闹呢&lt;del&gt;快点叫些你以前的朋友踩踩吧&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;08 August, 2008 01:25&lt;/p&gt;</description>
    </item>
    <item>
      <title>实习第三天</title>
      <link>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E4%B8%89%E5%A4%A9/</link>
      <pubDate>Wed, 06 Aug 2008 21:22:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E4%B8%89%E5%A4%A9/</guid>
      <description>&lt;p&gt;今天有机会出去兜兜了，看看工地是怎样的。今天是去勘察，至于勘察具体是什么我也不知道。只是跟着看看吧。早上没事干，下午2点钟和一个年纪差不多的同事出去，坐公司的车2点8个字就到了广州火车站不远处的几栋25层高的未完工的大楼。我们逛了逛地下一层二层，看到了未完工的大厦楼下原来是这样的一副景象。地下是停车场，地上一到四层是商店，楼层较高。5层以上就是住宅楼了。公司的目的就是监理中国联通对这些大楼的室内无线信号覆盖工作。今天就是看看天线位置和布线等条件吧，不过他们在看什么我可看不懂。&lt;/p&gt;&#xA;&lt;p&gt;然后又转了转其它地方。接着搭着施工队的电梯到25层，我还没搭过这样的电梯，就是那些未完工建筑外间运载沙土的那种电梯，渐渐地到达25层，看看地上其实心里有点怕的。然后就在顶层看了看就又坐电梯下来了，心里一直在祈祷快点到地面。。&lt;/p&gt;&#xA;&lt;p&gt;到4点半就收工了。搭地铁回来。看了猪猪的博客，她们认识好多人哦，女生比较容易有人哄嘛&lt;del&gt;男生就自己干自己事吧。就这样又一天了。明天继续&lt;/del&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>实习第二天</title>
      <link>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E4%BA%8C%E5%A4%A9/</link>
      <pubDate>Tue, 05 Aug 2008 22:16:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E4%BA%8C%E5%A4%A9/</guid>
      <description>&lt;p&gt;今天更早，7点就出发。不过今天很顺利，比第一天快了不少，8点20分就到了办公室。今天其实也没啥事干，就看了两个文件，2万来字吧，关于室内无线覆盖和监理的基本知识的。原来我们的负责人是罗振华，不是昨天提到的那个，这个是个年轻人，20多岁，蛮友好的。&lt;/p&gt;&#xA;&lt;p&gt;今天在办公室就觉得比昨天熟悉多了。原来位子空的一般都可以随便坐，特别是没电脑的位子。由于奥运封网，这些天很闲。中午打饭的时候我们也去帮忙拿饭了。好像到了一个新的环境都这样吧，一开始生疏，很想回到原来的地方，再过些天就会遇到一两个谈得来的同事，再渐渐就成为好朋友，再渐渐就认识越来越多的人，到最后身边的一切都熟悉了，最要好的朋友最终也可能只有一两个。小学、初中、高中，每次换班，到新班级都感觉这样，大学也是。&lt;/p&gt;&#xA;&lt;p&gt;五点半就下班了，回到学校6点50分，也快了很多哦。不过那个地铁，那是绝对的拥挤，不体验想象不出。又该睡觉了。明天一样。&lt;/p&gt;</description>
    </item>
    <item>
      <title>实习第一天</title>
      <link>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E4%B8%80%E5%A4%A9/</link>
      <pubDate>Mon, 04 Aug 2008 20:36:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E5%AE%9E%E4%B9%A0%E7%AC%AC%E4%B8%80%E5%A4%A9/</guid>
      <description>&lt;p&gt;今天实习啦~6点50分起床，7点20出发。从大学城北站坐往体育中心站，到达办公室已经8点50分了。然后我和疯子被分配到监理三部，负责到外面跑来跑去做监理工作。猪猪和死鱼在办公室做文职工作，录入数据什么的。&lt;/p&gt;&#xA;&lt;p&gt;不过今天没啥事做。感受一下公司氛围吧。这个公司有近两千人，蛮大的，据说是中国通讯建设监理最大的公司哦。办公室就是传统的一人一小格那种办公室啦，我和疯子做在某两个小格子看书。到吃饭时间，饭送到办公室，其实是要我们自己去打饭的，多谢别人帮我们打了。有个大我们几岁的哥哥对我们很热情，跟我们聊了很久。午饭还可以，菜很多肉，相对于我们可怜的学校饭堂。&lt;/p&gt;&#xA;&lt;p&gt;吃完就趴在桌子上睡下，睡不着，到2点起来，由于下午办公室人多了起来，没有位子，我们就出去外面。最后到公司外面的一家麦当劳买了点吃的坐下看书。看到5点半就去接猪猪和死鱼。然后就回来啦。回来的时候猪猪还啃了两个鸡腿~&lt;/p&gt;&#xA;&lt;p&gt;到大学城7点了。然后就去贝岗吃了碗牛肉丸粿条。吃完就狂风大作下起雨来了。凉爽~&lt;/p&gt;&#xA;&lt;p&gt;说说今天的感觉。这个公司比我想象中要大，不过有点冗余。感觉这么多员工，这么个公司承担不起，特别是日后退休。办公室也比较拥挤，跟小学上课的课桌差距差不多。员工好多是有笔记本的，自带去上班，这点我觉得不错。听说猪猪她们的那个负责人挺不错的，我们那个就差多了，40岁左右，板着脸，没见过他笑过。不过我们来这实习也就一个星期。上个星期猪猪舅舅有事就推迟了，今天又出差去了，很忙的阿。&lt;/p&gt;&#xA;&lt;p&gt;明天7点就要出发了，8点半到。洗澡去了~&lt;/p&gt;&#xA;&lt;h3 id=&#34;回复&#34;&gt;回复&lt;/h3&gt;&#xA;&lt;p&gt;brbr said:&lt;/p&gt;&#xA;&lt;p&gt;“回来的时候猪猪还啃了两个鸡腿~”是吧~！！还特意注释是吧~！&lt;/p&gt;&#xA;&lt;p&gt;猪猪舅舅听起来怪怪的呢&amp;hellip;angguya&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;对了今天挤地铁也蛮恐怖的呢&amp;hellip;你还说我只用angguya一句话来打发你是吧~？哼哼~&lt;/p&gt;&#xA;&lt;p&gt;总的来说今天还算是有点感触，期待我的blog吧&lt;del&gt;不过我会最近懒可能不怎么想动手写哦&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;04 August, 2008 23:00&lt;/p&gt;</description>
    </item>
    <item>
      <title>调研第三天</title>
      <link>https://blog.pugwoo.com/posts/2008/%E8%B0%83%E7%A0%94%E7%AC%AC%E4%B8%89%E5%A4%A9/</link>
      <pubDate>Fri, 25 Jul 2008 23:58:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E8%B0%83%E7%A0%94%E7%AC%AC%E4%B8%89%E5%A4%A9/</guid>
      <description>&lt;p&gt;由于前两天没写博客，特先将前两天调研记录补上。&lt;/p&gt;&#xA;&lt;p&gt;第一天，7月23号，猪猪终于把问卷改好~由于是初次外出调研，特将地点选在骑单车即可到达的长洲。长洲外来工也算不少，以前去的时候也见到很多。前天大晴天，4点多出发，先打印20份，骑了20分钟左右到达长洲某船厂附近。在一个古老的宿舍楼旁边，猪猪犹豫了很久，在我的怂恿下，准备对我们背面的一位骑人力搬运三轮车的三四十岁的大叔进行调查。还好，这位大叔比我们想象中要和蔼友善很多很多，谢谢这位大叔。在您口里听到很多句能不能上报纸阿，我们隐约知道背后原因。写完问卷后猪猪和这位大叔合照。真的很谢谢您。&lt;/p&gt;&#xA;&lt;p&gt;接着我们到该船厂后门，看到很多人下班，猪猪很勇敢地拦住了一位年轻小伙子，调查中才知道他是一名刚毕业的大学生，还是华中科技大的，有前途阿。前天只调查了这两位，后来发现问卷有些问题，一道主要的问题没有了。还有排版也不好，因为word会随着不同电脑而不同，所以我们决定回来改过再调查。&lt;/p&gt;&#xA;&lt;p&gt;第二天，也就是昨天啦。多亏了曾劲松&lt;del&gt;叫松哥。由于人手不够，我们只能求助于朋友。昨天加上兔子，就我们4个骑单车再次出发长洲！骑呀骑到一个菜市场旁边，很热闹，不过不敢问，都在忙着做生意，而且看起来很像附近村民。在周围徘徊了一下之后呢，发现巷口的一位修表叔叔&lt;/del&gt;又是在猪猪勇敢地打破僵局之下，昨天的第一位幸运者诞生啦~也很感谢这位叔叔。交谈中发觉他很朴实，天天遇贵人也。&lt;/p&gt;&#xA;&lt;p&gt;然后我们就到超市前面逛逛看，第一次没成功，应该是因为5点左右天气还太热，太阳直照着超市前的空地，没找到调查对象。于是又回到菜市场，在一家药店前面找到位女员工，调查之，成功。期间还称了下体重，猪猪XX斤，这里保密&lt;del&gt;瘦了&lt;/del&gt;我有58公斤，差不多~&lt;/p&gt;&#xA;&lt;p&gt;接着在菜市场没任何进展，碰到好几个本地人，没办法，继续深入长洲吧&lt;del&gt;骑阿骑，到了另一个船厂，在船厂正门附近的一家卖光碟的小店，我们首次尝到几个人一起答问卷的快感&lt;/del&gt;两个买碟的女生刚买完碟，我们就凑过去了，再次表扬小猪猪&lt;del&gt;两位女生很乐意帮我们填，店老板也很主动地自己拿一份填，太感谢他们了&lt;/del&gt;一次就三份阿，此前我们花了近40分钟才做了2份。填完这3份后，到渡口，发现没外来工，于是又回来到超市门前，这次收获就大啦~&lt;/p&gt;&#xA;&lt;p&gt;有句古话说砍柴要先磨好刀，大概是这意思。于是我们要先买几只水来喝。一来解渴二来看起来我们像消费者，大家都是来消费的，戒心也就没那么大了吧 哈哈。刚喝水的时候，猪猪和兔子就把两份问卷发给两个买完东西刚要骑车离开的顾客，他们都答应帮忙填写，太好了，这样就7份啦。接着一发不可收拾，其实说得有点过分啦，还是很艰难，也遇到很多挫折。在猪猪和兔子的努力下，陆陆续续又写了9份。居然遇到过刚毕业就业的中大师兄，还有他们同事一伙人，浩浩荡荡写了3份。还有一位带着个BB的阿姨，很亲切，也帮我们填了一份，那个BB很可爱阿，眼睛蛮大的。期间还有遇到几个不识字的，猪猪和兔子念给他们听，帮他们完成问卷，好感谢你们两个这么尽责&lt;del&gt;好像说的都是接受我们调研，其实拒绝的也很多，不过我快忘记了，有摇头的有摆手的，其实我们一番心意，被拒绝被怀疑心里刚开始也不怎么好受，特别是猪猪追问了很久，有的还是直摇头。昨天发觉湖北人都好热情，好几份很好人填的都是湖北人&lt;/del&gt;谢谢你们~&lt;/p&gt;&#xA;&lt;p&gt;就这样一直忙到8点钟&lt;del&gt;16份&lt;/del&gt;算很不错的啦&lt;del&gt;平均一个小时4份。然后回学校咯。在奉天吃饭，好多虫子和猫狗阿，这恐怕是来大学吃得最热闹的一顿了吧&lt;/del&gt;桌子上布满了尸体。。。呼。。。&lt;/p&gt;&#xA;&lt;p&gt;接下来就是今天啦&lt;del&gt;今天确定去棠下村调研，这地方外来工特多！用google地球看，好又多超市对面密密麻麻方圆几公里全是村子中的矮楼，聚集着百来万的外来工。今天的外援是周荣&lt;/del&gt;很感谢他&lt;del&gt;跟着我们跑了一天。这样我们4人又出发了。12点多打印完，到惠佳对面公交车站等381，很快就来了，很快到大学城中部枢纽，33路很快也来了&lt;/del&gt;很顺利，2点钟就到达目的地，棠下村。我们到棠下村对面好又多超市，这个超市我之前来过好几次了，亲戚家就住附近，开学前买东西有好几次来这买。&lt;/p&gt;&#xA;&lt;p&gt;今天调研开始的第一份，是一个热情的好又多工作人员。天天遇贵人阿，在他的怂恿之下，旁边的3个工作人员也跟着填了问卷。还有再加上旁边的3位买完东西的顾客，劈里啪啦7份很快就完成啦&lt;del&gt;这时才花了不到半个小时&lt;/del&gt;太有快感了&lt;del&gt;准备先到超市买几瓶水解渴，这天气，37°有了吧，在超市外面直冒汗。到超市逛了逛，不到10分钟，到一楼冰柜买水，每人一支&lt;/del&gt;猪猪还看到了可爱的仙人掌&lt;del&gt;选了个开花的&lt;/del&gt;叫绯花玉&lt;del&gt;9块钱，比北亭便宜很多&lt;/del&gt;按猪猪话，这么有缘就买下啦~&lt;/p&gt;&#xA;&lt;p&gt;接着接着，我们到了一个我想不到的好地方，在这里完成了我们剩下的所有问卷。好又多有免费车，大概半个小时一班，一班外来工会搭免费车前来购物，太完美了。我们在这里调查真是再难找到比这更好的了。猪猪和兔子在这里如鱼得水阿&lt;del&gt;两个人争先恐后，忙得不亦乐呼&lt;/del&gt;几份几份的发&lt;del&gt;虽说也遇到不少拒绝的人，不过接受的还是蛮多的，命中率有70%&lt;del&gt;从3点忙到6点，34份~~太棒了&lt;/del&gt;好又多的员工还是蛮不错的，不会拒绝我们的调查&lt;/del&gt;还有几个非常乐意的&lt;del&gt;这期间云云种种就由猪猪和兔子来描述啦&lt;/del&gt;多亏了你们两个啦~&lt;/p&gt;&#xA;&lt;p&gt;接着就回宿舍咯&lt;del&gt;兔子回家，我们三个搭车回宿舍，广州真的是出门难阿，等了7辆33路，全部是短线，都不到大学城。无奈之下我们只能到路对面搭车到岗顶，再搭地铁回学校咯&lt;/del&gt;也还算顺利啦&lt;del&gt;8点多回到学校&lt;/del&gt;呼~~猪猪和周荣在饭堂吃了粉面，我去快乐多买了包面会宿舍吃&lt;del&gt;好像猪猪回来还喝了一杯蜂蜜绿茶对吧&lt;/del&gt;？奖励你的啦&lt;del&gt;今天表现很好哦&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;就这样忙完了一整天&lt;del&gt;差不多睡觉咯&lt;/del&gt;明天还得继续，目标是芳村的好又多&lt;del&gt;好又多的免费车候车室，完美的调查地点&lt;/del&gt;加油~~拿下明天一战，就像今天一样！&lt;/p&gt;&#xA;&lt;h3 id=&#34;回复&#34;&gt;回复&lt;/h3&gt;&#xA;&lt;p&gt;brbr said:&lt;/p&gt;&#xA;&lt;p&gt;那几个是太古可口可乐的员工啦~&#xA;你怎么忘了猩猩丸啊&lt;del&gt;是“贾保国”品种的啊&lt;/del&gt;周荣实在太好人了~可惜没有经费请他吃东西，如果我有幸拿到奖学金绝对会请他的~~~&#xA;希望明天能做到60份~~&lt;/p&gt;&#xA;&lt;p&gt;26 July, 2008 01:26&lt;/p&gt;</description>
    </item>
    <item>
      <title>今天走了好多路啊</title>
      <link>https://blog.pugwoo.com/posts/2008/%E4%BB%8A%E5%A4%A9%E8%B5%B0%E4%BA%86%E5%A5%BD%E5%A4%9A%E8%B7%AF%E5%95%8A/</link>
      <pubDate>Wed, 16 Jul 2008 23:53:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E4%BB%8A%E5%A4%A9%E8%B5%B0%E4%BA%86%E5%A5%BD%E5%A4%9A%E8%B7%AF%E5%95%8A/</guid>
      <description>&lt;p&gt;今天要到南校区参加暑期调研活动启动仪式。6点40分手机闹铃就响了，好像这学期还没有这么早起床出门阿。7点10分猪猪下楼，出发~搭地铁，8点刚好到达中大正门。呼，问下保安熊德龙在哪里，他往右边指了指，说再走50米看到中大东门，进去后很快就到了。艰苦的行程就从此刻开始了。&lt;/p&gt;&#xA;&lt;p&gt;相信熟悉南校区的同学都知道正门和东门的距离吧。50米？走阿走，问了3个人，走过了两个公交站，走得很快怕迟到，8点10分钟才见到东门，2公里都差不多有了吧。如果你这保安来大学城，体育中心下车，问我至善园在哪里，我肯定告诉往南区方向绕内环走，50米就到了。接着就是启动仪式了，等了9点才开始。开了20分钟吧，就结束了。然后我和我家猪就去图书馆，原来南区图书馆这么大，上次我还郁闷怎么这么小呢。借了几本书，就离开图书馆了。&lt;/p&gt;&#xA;&lt;p&gt;然后猪猪就去找高中好朋友啦&lt;del&gt;叫赵捷。在岭南学院，也是走得腿要断了，要是搬到南校区没单车的话可怎么活啊。岭南学院教学条件很好阿。看完了赵捷就要离开南校区了。又开始长征了，从北门牌坊走到正门，2公里不止了。还好半路一直哄猪猪“还有一半”才把猪猪哄到麦当劳&lt;/del&gt;叫了两个麦辣鸡腿汉堡套餐，说实话不怎么好吃&lt;del&gt;下次吃别的哈&lt;/del&gt;然后然后就坐地铁回来了。&lt;/p&gt;&#xA;&lt;p&gt;从地铁口回来也不是件容易的事阿。去了回北商业区，很多商店都关门了。走了回来，噢，mum，送猪猪到宿舍后爬七楼，睡觉，醒了去吃饭&lt;del&gt;麻辣烫&lt;/del&gt;然后回来写调研问卷&lt;del&gt;好像初步写完了。加油加油&lt;/del&gt;虽然很累，但很有意义&lt;del&gt;既然选择了&lt;/del&gt;咬紧牙也要坚持~！！&lt;/p&gt;&#xA;&lt;h3 id=&#34;回复&#34;&gt;回复&lt;/h3&gt;&#xA;&lt;p&gt;brbr 说&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;怎么逛图书馆那一段没有了~~？怎么没写我是多么迅速地找到肖的书嗒？人家叫赵婕啦&lt;del&gt;对了，庆琳也说南校区不止1个图书馆耶&lt;/del&gt;？不知道咋回事&lt;del&gt;麦当劳不好吃~~！！以后不吃麦当劳&lt;/del&gt;唔唔~（啊，不是，呜呜）~&lt;/p&gt;&#xA;&lt;p&gt;在M记还碰上2毛了，唉，看到他们我都没怎么激动啊~时间真是无情&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;问卷写得很好&lt;del&gt;有初稿就可以改啦&lt;/del&gt;o(∩_∩)o表扬狗狗~&lt;/p&gt;&#xA;&lt;p&gt;2008年7月17日 上午12:39:00&lt;/p&gt;&#xA;&lt;p&gt;NICK 说&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;没错~~就是老婆快速地找到肖要的书呢~~猪猪就是聪明呢&lt;del&gt;嘛~~南校区还有别的图书馆&lt;/del&gt;？难道以前这两个分开的~？所以我才觉得那么小~ 傻猪猪~~&lt;/p&gt;&#xA;&lt;p&gt;2008年7月17日 上午10:56:00&lt;/p&gt;</description>
    </item>
    <item>
      <title>【译】图标设计中易犯的十个错误</title>
      <link>https://blog.pugwoo.com/posts/2008/%E5%9B%BE%E6%A0%87%E8%AE%BE%E8%AE%A1%E4%B8%AD%E6%98%93%E7%8A%AF%E7%9A%84%E5%8D%81%E4%B8%AA%E9%94%99%E8%AF%AF/</link>
      <pubDate>Thu, 14 Feb 2008 14:56:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2008/%E5%9B%BE%E6%A0%87%E8%AE%BE%E8%AE%A1%E4%B8%AD%E6%98%93%E7%8A%AF%E7%9A%84%E5%8D%81%E4%B8%AA%E9%94%99%E8%AF%AF/</guid>
      <description>&lt;p style=&#34;TEXT-ALIGN: right&#34;&gt;&#xD;&#xA;Written by Denis Kortunov&lt;br/&gt;Translated by pugWoo&#xD;&#xA;&lt;/p&gt;&#xD;&#xA;&lt;p&gt;&lt;img src=&#34;http://turbomilk.com/img/10mistakes.png&#34;/&gt;指责别人设计中的不足远远比自己设计出一个像样的图标容易得多。但是如果你用系统的方法,通过列表和图解去指出别人设计的不足,那就可称得上是全面地剖析了。在我看来，图标的设计正在经历一个过渡期。一方面，屏幕分辨率的不断提高要求图标越来越精细。另一方面，我们仍就使用着旧的低像素的显示器，16*16像素甚至是更小的图标仍然被广泛地应用着。所以，下面是图标设计中最常见的是个错误:&lt;/p&gt;&#xA;&lt;p&gt;&lt;span style=&#34;FONT-SIZE: 1.2em; COLOR: #999900; FONT-FAMILY: 楷体_GB2312&#34;&gt;#1 图标间差别不明显&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;有时我们设计了这样的一系列图标，它们看起来差不多差不多，而且也很难一看就知道它表达什么意思。如果没有文字解说，我们会很容易搞混图标表达的意思。&lt;/p&gt;&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-similar.png&#34; height=&#34;189&#34; width=&#34;520&#34;/&gt;&#xD;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;这是苹果机中一组图标,我常常搞混它们代表什么而启动错程序。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-similar2.png&#34; height=&#34;130&#34; width=&#34;172&#34;/&gt;&#xD;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;当它们变小时情况更糟糕&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;span style=&#34;FONT-SIZE: 1.2em; COLOR: #999900; FONT-FAMILY: 楷体_GB2312&#34;&gt;#2 一个图标中有太多的元素&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;图标越是简洁明朗越好。一个图标中的元素越少越好。&lt;/p&gt;&#xA;&lt;p&gt;然而，微软的图标设计者，为了使Vista的新格式图标更有特点，把图标设计得过于庞大和臃肿:&lt;/p&gt;&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-many-objects.png&#34; height=&#34;480&#34; width=&#34;380&#34;/&gt;&#xD;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;每个图标都是由好几个小图标交织成,问题是当图标变小时你根本无法看出那个图标表示什么。即使是大图标，你也很难看出图标是表示哪部分小图标的意思。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;span style=&#34;FONT-SIZE: 1.2em; COLOR: #999900; FONT-FAMILY: 楷体_GB2312&#34;&gt;#3 太多多余的元素&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;一个好的图标要一眼就看出主要部分。图标的元素自然越少越好。最好的是，图标全部内容和它表达的意思相符，而不是仅仅一部分相符。所以，选择表达意思的图标时你应该留意一下。&lt;/p&gt;&#xA;&lt;p&gt;下面我们看个例子,这是数据库中的图标:&lt;/p&gt;&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-db1.png&#34; height=&#34;158&#34; width=&#34;520&#34;/&gt;&#xD;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;起初一眼看上去每个图标都差不多。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;如果这些图标仅用于数据库的操作，我们可以去掉多余的部分:&lt;/p&gt;&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-db2.png&#34; height=&#34;158&#34; width=&#34;520&#34;/&gt;&#xD;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;这样每个图标都能表示原来的意思而又显得清晰明了。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;下面这些图标来自BeOS 5,有很多的多余相同元素:&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-beos.png&#34; height=&#34;449&#34; width=&#34;383&#34;/&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;图标中的勾十足是多余的,而且,居然还弄成红色？&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;span style=&#34;FONT-SIZE: 1.2em; COLOR: #999900; FONT-FAMILY: 楷体_GB2312&#34;&gt;#4 同一系列的图标没有相同的风格&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;把几个风格相似的图标集合起来就是一套图标。风格相似可以是:颜色的配置,透明度,大小,制图方法或者是这些的综合。如果仅仅设计几个图标，设计者比较容易掌握相同的风格。但是如果图标太多而且有多人参与设计，那么就需要制定一套严密的制图说明，用这份说明指引不同的设计者设计出相同风格的图标。&lt;/p&gt;&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-no-style.png&#34; height=&#34;170&#34; width=&#34;320&#34;/&gt;&#xD;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;这是Windows XP文件shell32.dll中包含的默认图标,供用户更换图标用。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;span style=&#34;FONT-SIZE: 1.2em; COLOR: #999900; FONT-FAMILY: 楷体_GB2312&#34;&gt;#5 小图标设置没有必要的透明和阴影&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;程序并不是一成不变的:程序的界面表现出越来越多的特性,如使颜色对比度下降的半透明图标,还有慢慢增多的3D图标。但是这些对每个图标都有用吗？我看未必，特别是当图标小于16×16像素时。&lt;/p&gt;&#xA;&lt;p&gt;下面我们看下GNOME 2.2.0 (RedHat 9)上的图标:&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-perspective.png&#34; height=&#34;300&#34; width=&#34;520&#34;/&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;半透明的小图标不仅没有起到美化的作用,反而是图像更模糊。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;而这个是Windows XP中的图标:&#xA;&lt;img src=&#34;http://turbomilk.com/img/10mis-shadows.png&#34; height=&#34;230&#34; width=&#34;520&#34;/&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;为了统一标准,xp中每个图标都有2像素的阴影。然而对于小图标来说,2像素阴影显得过大,反而使图标变得难看。图中的&amp;quot;Address Book&amp;quot;图标特别明显。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】A Forever Friend</title>
      <link>https://blog.pugwoo.com/posts/2007/a-forever-friend/</link>
      <pubDate>Mon, 12 Nov 2007 13:32:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2007/a-forever-friend/</guid>
      <description>&lt;p&gt;&amp;ldquo;A friend walks in when the rest of the world walks out.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;别人都走开的时候，朋友仍与你在一起。&amp;rdquo;&lt;/p&gt;&#xA;&lt;br/&gt;&#xD;&#xA;&lt;p&gt;Sometimes in life,&lt;/p&gt;&#xA;&lt;p&gt;有时候在生活中，&lt;/p&gt;&#xA;&lt;p&gt;You find a special friend;&lt;/p&gt;&#xA;&lt;p&gt;你会找到一个特别的朋友;&lt;/p&gt;&#xA;&lt;p&gt;Someone who changes your life just by being part of it.&lt;/p&gt;&#xA;&lt;p&gt;他只是你生活中的一部分内容，却能改变你整个的生活。&lt;/p&gt;&#xA;&lt;br/&gt;&#xD;&#xA;&lt;p&gt;Someone who makes you laugh until you can&amp;rsquo;t stop;&lt;/p&gt;&#xA;&lt;p&gt;他会把你逗得开怀大笑；&lt;/p&gt;&#xA;&lt;p&gt;Someone who makes you believe that there really is good in the world.&lt;/p&gt;&#xA;&lt;p&gt;他会让你相信人间有真情。&lt;/p&gt;&#xA;&lt;p&gt;Someone who convinces you that there really is an unlocked door just waiting for you to open it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】15条使人醒悟的生活中的定律</title>
      <link>https://blog.pugwoo.com/posts/2007/15%E6%9D%A1%E4%BD%BF%E4%BA%BA%E9%86%92%E6%82%9F%E7%9A%84%E7%94%9F%E6%B4%BB%E4%B8%AD%E7%9A%84%E5%AE%9A%E5%BE%8B/</link>
      <pubDate>Sun, 11 Nov 2007 18:22:00 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2007/15%E6%9D%A1%E4%BD%BF%E4%BA%BA%E9%86%92%E6%82%9F%E7%9A%84%E7%94%9F%E6%B4%BB%E4%B8%AD%E7%9A%84%E5%AE%9A%E5%BE%8B/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/murphy_law_life_tips.html&#34;&gt;墨菲定律&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;我们在事前应该是尽可能想得周到、全面一些，如果真的发生不幸或者损失，就笑着应对吧，关键在于总结所犯的错误，而不是企图掩盖它。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/yang_qun_xiao_ying_life_tips.html&#34;&gt;羊群效应&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;对他人的信息不可全信也不可不信，凡事要有自己的判断，出奇能制胜，但跟随者也有后发优势，常法无定法！&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/shui_tong_life_tips.html&#34;&gt;水桶定律&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;若个人的某些方面是自己短板，那就要尽快把它补起来。若自己是集体中的&amp;quot;一块最短的木板&amp;quot;，那就应该迎头赶上，不要拉集体的后腿。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/bu_zhi_de_law_life_tips.html&#34;&gt;不值得定律&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;要做有价值的事情，而且要富有激情与动力；若现实所迫，不能选择符合自己价值的事业，也不要消极对待或者直接放弃，应该学会改变自己，再努力向自己的奋斗目标前进。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/shou_biao_law_life_tips.html&#34;&gt;手表定理&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;坚定一个目标，建立一个标准，自己才能成功。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/80-20-rule-life-tips.html&#34;&gt;80/20法则&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;一些关键的小的投入和努力，通常可以产生大多数的结果、产出或酬劳。提高效率就要抓住那20％的重点。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/washington-force-law-life-tips.html&#34;&gt;华盛顿合作规律&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;团队一定要有合适的团队协助方式。而作为一名团队成员，我们要积极参与团队的沟通和协调，相互分工合作，共同取得成果。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/jiu-yu-wu-shui-law-life-tips.html&#34;&gt;酒与污水定律&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&amp;ldquo;一粒老鼠屎坏了一锅粥&amp;rdquo;，对于坏的组员或东西，要在其开始破坏之前及时处理掉。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/jian-fa-zhe-xue-life-tips.html&#34;&gt;减法哲学&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;减出轻松，减出自在；减出健康，减出年轻；减出快乐，减出幸福！&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/occam-razor-life-tips.html&#34;&gt;奥卡姆剃刀定律&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;万事万物应该尽量简单，而不是更简单。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/po-chuang-li-lun-life-tips.html&#34;&gt;破窗理论&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;从我做起，从身边做起。这不是空洞的口号，行动起来！&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/bei-bo-ding-lv-life-tips.html&#34;&gt;贝勃定律&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;理性的分析事实，不要随意凭感觉论事&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/butterfly-effect-life-tips.html&#34;&gt;蝴蝶效应&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;防微杜渐，不能忽视小的漏洞和差错，以免造成大祸。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/matthew-effect-life-hacks.html&#34;&gt;马太效应&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;想在某一个领域保持优势，就必须在此领域迅速做大。再者，当目标领域有强大对手的情况下，就要另辟蹊径，找准对手的弱项和自己的优势。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.mifengtd.cn/articles/yun-lun-effect-life-hacks.html&#34;&gt;晕轮效应&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;在人际交往中，我们应该注意告诫自己不要被别人的晕轮效应所影响，而陷入晕轮效应的误区。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】一个非常准的测试 太神奇了</title>
      <link>https://blog.pugwoo.com/posts/2007/%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E5%87%86%E7%9A%84%E6%B5%8B%E8%AF%95-%E5%A4%AA%E7%A5%9E%E5%A5%87%E4%BA%86/</link>
      <pubDate>Sun, 19 Aug 2007 19:35:53 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2007/%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E5%87%86%E7%9A%84%E6%B5%8B%E8%AF%95-%E5%A4%AA%E7%A5%9E%E5%A5%87%E4%BA%86/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;请第一次看到这个测试的朋友，首先静下心来，认真的，快速的用自己的心算来坐下面这&#xA;个测试，看清楚要求，真实的说出当时的第一个脑子里面的答案，才能看出这个测试的最&#xA;有效的结果！谢谢！　　　很诡异喔!!! 但要以最快速的时间心算所看到的数学程序，然&#xA;后回答问题！开始啰！往下走，并答题吧！&#xA;2+2＝?&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;4+4＝?&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;8+8＝?&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;16+16＝?&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;快！随便在12跟5的中间挑一个数字！&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;挑了吗？ 现在继续往下....&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;你挑的数字是&amp;#34;7&amp;#34;，对吧！&#xA;************&#xA;继续作下一个实验！跟着下列叙述并且快速回答问题！算算看啰！&#xA;1+5&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;2+4&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;3+3&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;4+2&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************  &#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;5+1&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;现在持续默念&amp;#34;6&amp;#34;这个数字15秒，然后往下卷动画面！&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;快！想一个蔬菜的名字！然后继续往下卷动作！&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;继续卷动…….&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;你想的是大白菜，对吧！如果不是，你是占2%可以在正常情形下还可以有余力思考别的事&#xA;的少数人口，98%的人会回答大白菜。诡异哦！听说这个测验是从爱丽丝梦游仙境中兔子&#xA;国翻译的……　　　再来做一个测试&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;你是否正常？&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;请跟著以下的指示，&#xA;尽快地回答以下的问题，但要先完成一个问题才回答下一个。你不需要写下答案，只要心&#xA;算便可。&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;15+6是多少？&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;3+56&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;89+2&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;12+53&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;75+26&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;75+26&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;25+52&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;  &#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;63+32&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;123+5&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;快！！！心想一种工具和一种颜色！&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;你刚刚想的是否红红色的鎚子(chui zi)？&#xA;&amp;gt; &amp;gt; &amp;gt; &amp;gt;&amp;gt;&#xA;如果答案不是的话，你就是2%的与别人不同的人∕不正常人，通常98%的人做会回答红色&#xA;的鎚子 怎么样!准确吧!跟着下列叙述并且快速回答问题！　　　算算看啰！&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;3+78=?&#xA;************&#xA;************&#xA;************&#xA;************&#xA;1+5&#xA;************&#xA;************&#xA;************&#xA;************&#xA;***********&#xA;2+4&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;3+3&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;4+2&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;5+1&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;现在持续默念&amp;#34;6&amp;#34;这个数字15秒，然后往下卷动画面！&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;快！说出一种水果的名字！然后继续往下卷动作！&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;继续卷动…….&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;8+329=？&#xA;************&#xA;***********&#xA;**********&#xA;***********&#xA;***********&#xA;***********&#xA;27+7=？&#xA;***********&#xA;快卷动&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;说出一个面部器官&#xA;***********&#xA;***********&#xA;***********&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;说出一种家禽的名字&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;************&#xA;哈哈，是苹果和鼻子和鸡，对不对？&#xA;呼!累死我了,快回帖吧~~&#xA;&#xA;&#xA;&#xA;中了几个？？？&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>【转】梦中的婚礼</title>
      <link>https://blog.pugwoo.com/posts/2007/%E6%A2%A6%E4%B8%AD%E7%9A%84%E5%A9%9A%E7%A4%BC/</link>
      <pubDate>Tue, 05 Jun 2007 21:10:47 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2007/%E6%A2%A6%E4%B8%AD%E7%9A%84%E5%A9%9A%E7%A4%BC/</guid>
      <description>&lt;p&gt;下雨时&lt;/p&gt;&#xA;&lt;p&gt;我是雨飘下来&lt;/p&gt;&#xA;&lt;p&gt;不惊扰你的发呆&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;风吹时&lt;/p&gt;&#xA;&lt;p&gt;我是风吹过来&lt;/p&gt;&#xA;&lt;p&gt;不让你感到孤单&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;玫瑰花瓣&lt;/p&gt;&#xA;&lt;p&gt;铺成爱的红色地毯&lt;/p&gt;&#xA;&lt;p&gt;洁白的你&lt;/p&gt;&#xA;&lt;p&gt;盛开美丽&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;我的爱&lt;/p&gt;&#xA;&lt;p&gt;请你靠近&lt;/p&gt;&#xA;&lt;p&gt;让我KISS YOUR EYES&lt;/p&gt;&#xA;&lt;p&gt;刻下我一生的真爱&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;ON THE WEDDING WHEN I KISS YOU TWICE&lt;/p&gt;&#xA;&lt;p&gt;确定幸福的存在&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;爱到就像做了美梦&lt;/p&gt;&#xA;&lt;p&gt;但愿永远醒不过来&lt;/p&gt;&#xA;&lt;p&gt;就算梦那么短暂&lt;/p&gt;&#xA;&lt;p&gt;我也不会再有遗憾&lt;/p&gt;</description>
    </item>
    <item>
      <title>回憶--to mum</title>
      <link>https://blog.pugwoo.com/posts/2007/%E5%9B%9E%E6%86%B6--to-mum/</link>
      <pubDate>Mon, 14 May 2007 17:30:43 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2007/%E5%9B%9E%E6%86%B6--to-mum/</guid>
      <description>&lt;p&gt;你說我慢了一個星期出生，出生那晚眼也不眨瞪著墻上的燈看。&lt;/p&gt;&#xA;&lt;p&gt;你說你喜歡給我扎辮子，因為我出生就有烏黑細細的頭發。&lt;/p&gt;&#xA;&lt;p&gt;你說我洗頭時最聽話，你怕洗發液會傷害小孩頭發，于是用淡淡的肥皂水洗。&lt;/p&gt;&#xA;&lt;p&gt;你說我睡覺時不喜歡和人靠緊睡，所以要把我放到床角落里讓我自己睡。&lt;/p&gt;&#xA;&lt;p&gt;你說我十個月就會說話了，可是到一歲半才會走路，每次你教我走路的時候，你站在我前面幾米處，叫我走過去，我就說:&amp;ldquo;ai bua(潮州話諧音)&amp;quot;,就是&amp;quot;我會摔倒的&amp;quot;的意思，然后干脆坐到地上去。&lt;/p&gt;&#xA;&lt;p&gt;你說我剛會走路不久，就拿了你放在桌子上的幾塊錢去買吃的，結果被你發現了，又打又罵哭得要死。&lt;/p&gt;&#xA;&lt;p&gt;你說我特別挑食食量又少，你擔心我吃得太少會餓死，于是每餐都拿著碗在我后面跟著我繞大半個村子一口一口喂近個鐘。&lt;/p&gt;&#xA;&lt;p&gt;你說我輕輕一打就哭得很凄涼，后來干脆還沒打就哭了，于是你就舍不得打我了。&lt;/p&gt;&#xA;&lt;p&gt;你說我小時候喜歡坐在家門口用粉筆模仿對聯寫字，雖然我不知道那些字是什么意思。&lt;/p&gt;&#xA;&lt;p&gt;你說有次去收花生，我和弟弟吵著要去，你就把我們放在扁擔下的兩個籮筐里挑著我們去，回來時，本來花生已經在籮筐里你要我們走回來，我們不肯，于是你把我們放在籮筐里的花生上，又把我們挑了回來。&lt;/p&gt;&#xA;&lt;p&gt;我記得每年冬節和過年你都會買新衣服給我和弟弟，冬節那天會早早洗澡吃湯圓，你告訴我，冬節捎過年，吃了湯圓就大一歲，就要更聽話了。&lt;/p&gt;&#xA;&lt;p&gt;我記得6歲時有次你拿5毛錢叫我去買冰糖，我到了商店，見到前面還有一個人在買東西，就先把錢放到柜臺上，好像當時被當做零錢被那個人拿走了，然后輪到我時，賣的那個人說沒收到錢，于是我只能回家再拿，你告訴我要等東西到手里了才給錢。&lt;/p&gt;&#xA;&lt;p&gt;記得小學前你教過我乘除法，當時覺得除法比乘法容易。&lt;/p&gt;&#xA;&lt;p&gt;記得小學3年級那個夏天養過幾條蠺，那時蠺很難得到，一天中午沒桑葉了，我急得快哭了，你就頂著烈日騎單車幾公里幫我找桑葉。&lt;/p&gt;&#xA;&lt;p&gt;記得四年級有次發了很嚴重的高燒，醫生說要住院和輸氧，看著我躺在病床上，你著急得哭了。那是我第一次見你哭了。&lt;/p&gt;&#xA;&lt;p&gt;記得你送我到大學那天，要走時，你在即將離開的車里，一直看著我走進宿舍樓。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】疯娘</title>
      <link>https://blog.pugwoo.com/posts/2004/%E7%96%AF%E5%A8%98/</link>
      <pubDate>Sun, 19 Sep 2004 11:57:40 +0000</pubDate>
      <guid>https://blog.pugwoo.com/posts/2004/%E7%96%AF%E5%A8%98/</guid>
      <description>&lt;p&gt;23年前，有个年轻的女子流落到我们村，蓬头垢面，见人就傻笑，且毫不避讳地当众小便。因此，村里的媳妇们常对着那女子吐口水，有的媳妇还上前踹几脚，叫她&amp;quot;滚远些&amp;quot;。可她就是不走，依然傻笑着在村里转悠。&lt;/p&gt;&#xA;&lt;p&gt;那时，我父亲已有35岁。他曾在石料场子干活被机器绞断了左手，又因家穷，一直没娶媳妇。奶奶见那女子还有几份姿色，就动了心思，决定收下她给我父亲做媳妇，等她给我家&amp;quot;续上香火&amp;quot;后，再把她撵走。父亲虽老大不情愿，但看着家里这番光景，咬咬牙还是答应了。结果，父亲一分未花，就当了新郎。&lt;/p&gt;&#xA;&lt;p&gt;娘生下我的时候，奶奶抱着我，瘪着没剩几颗牙的嘴欣喜地说：&amp;ldquo;这疯婆娘，还给我生了个带把的孙子&amp;rdquo;。只是，我一生下来，奶奶就把我抱走了，而且从不让娘靠近。&lt;/p&gt;&#xA;&lt;p&gt;娘一直想抱抱我，多次在奶奶面前吃力地喊：&amp;ldquo;给，给我。。。。。&amp;ldquo;奶奶没理她。我那么小，像个肉嘟嘟，万一娘失手把我掉在地上怎么办？毕竟，娘是个疯子。每当娘有抱我的请求时，奶奶总瞪起眼睛训她：&amp;ldquo;你别想抱孩子，我不会给你的。要是我发现你偷抱了他，我就打死你。即使不打死，我也要把你撵走。&amp;ldquo;奶奶说这话时，没有半点儿含糊的意思。娘听懂了，满脸的惶恐，每次只是远远地看着我。尽管娘的奶胀得厉害，可我没能吃到娘的半口奶水，是奶奶一匙一匙把我喂大的。奶奶说娘的奶水里有&amp;quot;神经病&amp;rdquo;，要是传染给我就麻烦了。&lt;/p&gt;&#xA;&lt;p&gt;那时，我家依然在贫困的泥潭里挣扎。特别是添了娘和我后，家里常常揭不开锅。奶奶决定把娘撵走，因为娘不但在家吃&amp;quot;闲饭&amp;rdquo;，时不时还惹是生非。一天，奶奶煮了一大锅饭，亲手给娘添了一大碗，说：&amp;ldquo;媳妇儿，这个家太穷了，婆婆对不起你。你吃完这碗饭，就去找个富点儿的人家过日子，以后也不准来了，啊？&amp;ldquo;娘刚扒了一大团饭在口里，听了奶奶下的&amp;quot;逐客令&amp;rdquo;。显得非常吃惊，一团饭就在嘴里凝滞了。娘望着奶奶怀中的我，口齿不清地哀叫：&amp;ldquo;不，不要。。。。。&amp;ldquo;奶奶猛地沉下脸，拿出威严的家长作风厉声吼到：&amp;ldquo;你这个疯婆娘，犟什么犟，犟下去没你的好果子吃。你本来就是到处流浪的，我收留了你两年了，你还要怎么样？吃完饭就走，听到没有？&amp;ldquo;说完奶奶从门后拿出一柄锄，像余太君的龙头杖似的往地上重重一磕，&amp;ldquo;咚&amp;quot;地发出一声响。娘吓了一大跳，怯怯地看着婆婆，又慢慢低下头去看面前的饭碗，有泪水落在白花花的米饭上。在奶奶逼视下，娘突然有个很奇怪的举动，她将碗中的饭分了一大半给另一只空碗，然后可怜巴巴地看着奶奶。&lt;/p&gt;&#xA;&lt;p&gt;奶奶呆了，原来，娘是向奶奶表示，每餐只吃半碗饭，只求别赶她走。奶奶的心仿佛被人狠狠揪了几把，奶奶也是女人，她的强硬态度也是装出来的。奶奶别过头，生生地将热泪憋了回去，然后重新板起了脸说：&amp;ldquo;快吃快吃，吃了快走。在我家你会饿死的。&amp;ldquo;娘似乎绝望了，连那半碗饭也没吃，朗朗跄跄地出了门，却长时间站在门前不走。奶奶硬着心肠说：&amp;ldquo;你走，你走，不要回头。天底下富裕人家多着呢！&amp;ldquo;娘反而走拢来，一双手伸向婆婆怀里，原来，娘想抱抱我。&lt;/p&gt;&#xA;&lt;p&gt;奶奶忧郁了一下，还是将襁褓中的我递给了娘。娘第一次将我搂在怀里，咧开嘴笑了，笑得春风满面。奶奶却如临大敌，两手在我身下接着，生怕娘的疯劲一上来，将我像扔垃圾一样丢掉。娘抱我的时间不足三分钟，奶奶便迫不及待地将我夺了过去，然后转身进屋关上了门。&lt;/p&gt;&#xA;&lt;p&gt;当我懵懵懂懂地晓事时，我才发现，除了我，别的小伙伴都有娘。我找父亲要，找奶奶要，他们说，你娘死了。可小伙伴却告诉我：&amp;ldquo;你娘是疯子，被你奶奶赶走了。&amp;ldquo;我便找奶奶扯皮，要她还我娘，还骂她是&amp;quot;狼外婆&amp;rdquo;，甚至将她端给我的饭菜泼了一地。那时我还没有&amp;quot;疯&amp;quot;的概念，只知道非常想念她，她长什么样？还活着吗？没想到，在我六岁那年，离家5年的娘居然回来了。那天，几个小伙伴飞也似地跑来报信：&amp;ldquo;小树，快去看，你娘回来了，你的疯娘回来了。&amp;ldquo;我喜得屁颠屁颠的，撒腿就往外跑，父亲奶奶随着我也追了出来。这是我有记忆后第一次看到娘。她还是破衣烂衫，头发上还有些枯黄的碎草末，天知道是在那个草堆里过的夜。娘不敢进家门，却面对着我家，坐在村前稻场的石磙上，手里还拿着个脏兮兮的气球。当我和一群小伙伴站在她面前时，她急切地从我们中间搜寻她的儿子。娘终于盯住我，死死地盯住我，裂着嘴叫我：&amp;ldquo;小树。。。。。。。球。。。。。。球&amp;quot;她站起来，不停地扬着手中的气球，讨好地往我怀里塞。我却一个劲儿地往后退。我大失所望，没想到我日思夜想的娘居然是这样一副形象。一个小伙伴在一旁起哄说：&amp;ldquo;小树，你现在知道疯子是什么样了吧？就是你娘这样的。&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;我气愤地对小伙伴说：&amp;ldquo;她是你娘！你娘才是疯子，你娘才是这个样子。&amp;ldquo;我扭头就跑了。这个疯娘我不要了。奶奶和父亲却把娘领进了门。当年，奶奶撵走娘后，她的良心受到了拷问，随着一天天衰老，她的心再也硬不起来，所以主动留下了娘，而我老大不乐意，因为娘丢了我的面子。&lt;/p&gt;&#xA;&lt;p&gt;我从没给娘好脸色看，从没跟她主动说过话，更没有喊她一声&amp;quot;娘&amp;rdquo;，我们之间的交流是以我&amp;quot;吼&amp;quot;为主，娘是绝不敢顶嘴的。&lt;/p&gt;&#xA;&lt;p&gt;家里不能白养着娘，奶奶决定训练娘做些杂活。下地劳动时，奶奶就带着娘出去&amp;quot;观摩&amp;rdquo;，说不听话就要挨打。&lt;/p&gt;&#xA;&lt;p&gt;过了些日子，奶奶以为娘已被自己训练得差不多了，就叫娘单独出去割猪草。没想到，娘只用了半小时就割了两筐&amp;quot;猪草&amp;rdquo;。奶奶一看，又急又慌，娘割的是人家田里正生浆拔穗的稻谷。奶奶气急败坏的骂她&amp;quot;疯婆娘谷草不分。。。。。。&amp;ldquo;奶奶正想着如何善后时，稻田的主人找来了，竟说是奶奶故意教唆的。奶奶火冒三丈，当着人家的面拿出根棒一下敲在娘的后腰上，说：&amp;ldquo;打死你这个疯婆娘，你给老娘滚远些。。。。。&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;娘虽疯，疼还是知道的，她一跳一跳地躲着奶奶的棒槌，口里不停地发出&amp;quot;别、别。。。。&amp;ldquo;的哀号。最后，人家看不过眼，主动说&amp;quot;算了，我们不追究了。以后把她看严点就是。。。。&amp;ldquo;这场风波平息后，娘歪在地上抽泣着。我鄙夷地对她说：&amp;ldquo;草和稻子都分不清，你真是个猪。&amp;ldquo;话音刚落，我的后脑勺挨了一巴掌，是奶奶打的。奶奶瞪着眼骂我：&amp;ldquo;小兔崽子，你怎么说话的？再这么着，她也是你娘啊！&amp;ldquo;我不屑地嘴一撇：&amp;ldquo;我没有这样的傻疯娘！&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;嗬，你真是越来越不象话了。看我不打你！&amp;ldquo;奶奶又举起巴掌，这时只见娘像弹簧一样从地上跳起，横在我和奶奶中间，娘指着自己的头，&amp;ldquo;打我、打我&amp;quot;地叫着。&lt;/p&gt;&#xA;&lt;p&gt;我懂了，娘是叫奶奶打她，别打我。奶奶举在半空中的手颓然垂下，嘴里喃喃地说道：&amp;ldquo;这个疯婆娘，心里也知道疼爱自己的孩子啊！&amp;ldquo;我上学不久，父亲被邻村一位养鱼专业户请去守鱼池，每月能赚50元。娘仍然在奶奶的带领下出门干活，主要是打猪草，她没再惹什么大的乱子。&lt;/p&gt;&#xA;&lt;p&gt;记得我读小学三年级饿一个冬日，天空突然下起了雨，奶奶让娘给我送雨伞。娘可能一路摔了好几跤，浑身像个泥猴似的，她站在教室的窗户旁望着我傻笑，口里还叫：&amp;ldquo;树。。。伞。。。&amp;ldquo;一些同学嘻嘻地笑，我如坐针毡，对娘恨得牙痒痒，恨她不识相，恨她给我丢人，更恨带头起哄的范嘉喜。当他还在夸张地模仿时，我抓起面前的文具合，猛地向他砸过去，却被范嘉喜躲过了，他冲上前来掐住我的脖子，我俩撕打起来。我个子小，根本不是他的对手，被他轻易压在地上。这时，只听教室外传来&amp;quot;嗷&amp;quot;的一声长啸，娘像个大狭似地飞跑进来，一把抓起范嘉喜，拖到了屋外。都说疯子力气大，真是不假。娘双手将欺负我的范嘉喜举向半空，他吓得哭爹喊娘，一双胖乎乎的小腿在空中乱踢蹬。娘毫不理会，居然将他丢到了学校门口的水塘里，然后一脸漠然地走开了。&lt;/p&gt;&#xA;&lt;p&gt;娘为我闯了大祸，她却像没事似的。在我面前，娘又恢复了一副怯怯的神态，讨好地看着我。我明白这就是母爱，即使神志不清，母爱也是清醒的，因为她的儿子遭到了别人的欺负。当时我情不自禁地叫了声：&amp;ldquo;娘！&amp;ldquo;这是我会说话以来第一次喊她。娘浑身一震，久久地看着我，然后像个孩子似的羞红了脸，咧了咧嘴，傻傻地笑了。那天，我们母子俩第一次共撑一把伞回家。我把这事跟奶奶说了，奶奶吓得跌倒在椅子上，连忙请人去把爸爸叫了回来。爸爸刚进屋，一群拿着刀棒的壮年男人闯进我家，不分青红皂白，先将锅碗瓢盆砸了个稀巴烂，家里像发生了九级地震。这都是范嘉喜家请来的人，范父恶狠狠地指着爸爸的鼻子说：&amp;ldquo;我儿子吓出了神经病，现在卫生院躺着。你家要不拿出1000块钱的医药费，我他妈一把火烧了你家的房子。&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;1000块？爸爸每月才50块钱啊！看着杀气腾腾的范家人，爸爸的眼睛慢慢烧红了，他用非常恐怖的目光盯着娘，一只手飞快地解下腰间的皮带，劈头盖脸地向娘打去。一下又一下，娘像只惶惶偷生的老鼠，又像一只跑进死胡同的猎物，无助地跳着、躲着，她发出的凄厉声以及皮带抽在她身上发出的那种清脆的声响，我一辈子都忘不了。最后还是派出所所长赶来制止了爸爸施暴的手。派出所的调解结果是，双方互有损失，两不亏欠。谁在闹就抓谁！一帮人走后，爸看看满屋狼籍的锅碗碎片，又看看伤痕累累的娘，他突然将娘搂在怀里痛哭起来，说：&amp;ldquo;疯婆娘，不是我硬要打你，我要不打你，这事下不了地，咱们没钱赔人家啊。这都是家穷惹的祸！&amp;ldquo;爸又看着我说：&amp;ldquo;树儿，你一定要好好读书考大学。要不，咱们就这样被人欺负一辈子啊！&amp;ldquo;我懂事地点点头。&lt;/p&gt;&#xA;&lt;p&gt;2000年夏，我以优异成绩考上了高中。积劳成疾的奶奶不幸去世，家里的日子更难了。恩施洲的*政局将我家列为特困家庭，每月补助40元钱，我所在的高中也适当减免了我的学杂费，我这才得以继续读下去。&lt;/p&gt;&#xA;&lt;p&gt;由于是住读，学习又抓得紧，我很少回家。父亲依旧在为50元打工，为我送菜的担子就责无旁贷地落在娘身上。每次总是隔壁的婶婶帮忙为我抄好咸菜，然后交给娘送来。20公里的羊肠山路亏娘牢牢地记了下来，风雨无阻。也真是奇迹，凡是为儿子做的事，娘一点儿也不疯。除了母爱，我无法解释这种现象在医学上应该怎么破译。&lt;/p&gt;&#xA;&lt;p&gt;2003年4月27日，又是一个星期天，娘来了，不但为我送来了菜，还带来了十几个野鲜桃。我拿起一个，咬了一口，笑着问她：&amp;ldquo;挺甜的，哪来的？&amp;ldquo;娘说：&amp;ldquo;我。。。。我摘的。。。。&amp;ldquo;没想到娘还会摘野桃，我由衷地表扬她：&amp;ldquo;娘，您真是越来越能干了。&amp;ldquo;娘嘿嘿地笑了。&lt;/p&gt;&#xA;&lt;p&gt;娘临走前，我照列叮嘱她注意安全，娘哦哦地应着。送走娘，我又扎进了高考前最后的复习中。第二天，我正在上课，婶婶匆匆地赶来学校，让老师将我喊出教室。婶婶问我娘送菜来没有，我说送了，她昨天就回去了。婶婶说：&amp;ldquo;没有，她到现在还没回家。&amp;ldquo;我心一紧，娘该不会走错道吧？可这条路她走了三年，照理不会错啊。婶婶问：&amp;ldquo;你娘没说什么？&amp;ldquo;我说没有，她给我带了十几个野鲜桃哩。婶婶两手一拍：&amp;ldquo;坏了坏了，可能就坏在这野鲜桃上。&amp;ldquo;婶婶问我请了假，我们沿着山路往回找，回家的路上确有几棵野桃树，桃树上稀稀拉拉地挂着几个桃子，因为长在峭壁上才得以保存下来。我们同时发现一棵桃树有枝丫折断的痕迹，树下是百丈深渊。婶婶看了看我说，&amp;ldquo;我们到峭壁底下去看看吧！&amp;ldquo;我说，&amp;ldquo;婶婶你别吓我。。。。&amp;ldquo;婶婶不由分说，拉着我就往山谷里走。。。。。&lt;/p&gt;&#xA;&lt;p&gt;娘静静地躺在谷底，周边是一些散落的桃子，她手里还紧紧攥着一个，身上的血早就凝固成了沉重的黑色。我悲痛得五脏俱裂，紧紧地抱住娘，说：&amp;ldquo;娘啊，我的苦命娘啊，儿悔不该说这桃子甜啊，是儿子要了你的命。。。。。。娘啊，您活着没享一天富啊。。。。&amp;ldquo;我将头贴在娘冰凉的脸上，哭得漫山遍野的石头都陪着我落泪。。。。。。&lt;/p&gt;&#xA;&lt;p&gt;2003年8月7日，在娘下葬后的第100天，湖北大学烫金的录取通知书穿过娘所走过的路，穿过那几株野桃树，穿过村前的稻场，径直&amp;quot;飞&amp;quot;进了我的家门。我把这份迟到的书信插在娘冷寂的坟头：&amp;ldquo;娘，儿出息了，您听到了吗？您可以含笑九泉了！&amp;rdquo;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
