20141231

Fwd: 构建之法,运用之妙,存乎一心:读邹欣《构建之法》



构建之法,运用之妙,存乎一心

1. 构建之法,存乎一心

史学理论与史学史,是把历史自己作为研究对象的学科,前者讨论历史本身所研究的内容,后者讨论历史研究本身的历史。这种对于抽象的抽象的研究,正符合计算 机领域 meta... 这样的思想。当年 xml 刚出来时,不少计算机和图书情报的大学生照本宣科地提到,xml是关于数据的数据,是 meta-data。

史学理论与史学史专家周老师在谈到史学理论的时候说到 (大意) ,学习史学理论与史学史,必先有历史的修养,要努力了解更多的史实,也就是先了解历史所研究的对象,然后才能涉及到以历史本身作为研究。

我想,周老师的意思是,没有"肤浅的"认识之前,先不要着急讲深刻。

一个例子事实与推论的例子。在网上在现实生活中,都有人跟我提到过,我国人民的善良与热爱和平;作为旁证,中国自古以来就没有杀战俘和屠城这样的事。这时,我愿意以一个建议结束讨论,就是请他去读一下五代十国那段历史。如果连基本史实都还缺乏,遽然得一结论过于草率了。

在讲授软件工程类课程时,我也面临这样的难题,正如《构建之法》作者所说,是同学们对此毫无感觉,既不觉得有用,也不觉得有趣。这大致就是夏虫不可语冰的 意思。很多同学在学到软件工程的时候,代码量总计可能不到1000行,单一项目最大代码量不到200行。如果去除语言类或算法课作业,代码量就更少得可 怜。

软件工程所讨论的是当代码量巨大、当涉及人数众多、当项目需求多变时所要解决的问题。而同学们在学习时根本就没有这样的需求。200来行的小程序,没有软件工程思想,也能完成,甚至更快捷。

所以,《构建之法》的作者在教学中,要求学生完成大量的代码,让亲身的经验证实软件工程的手段是必要和有效的。除此以外,别无他法。

在教学中,可能最大的问题还不是学生积累的代码量小,而是教师也是如此。作为实践类课程的教师,你又写过几行代码,读过几本软件工程著作呢。

我的偶像YMH曾经考虑过一个问题,算法课该让哪些老师上呢。我提议:这个好办,找几道ACM题,凡是申请上算法课的老师在线答题,谁答得好谁上。偶像说,那有些老师不会编程序啊。我说:不会编程上什么算法课。偶像大笑。

我坚信,一个优秀的将军,也许并非战场上最勇猛的那个战士,但是至少是合格的士兵。软件工程教学,教师须是身经百战,学生须亲力亲为,否则,玩具性质的项目、几行代码的实验课、走走过场不关心实用的工程,都是耍流氓而已。

实践类课程,理论如何应用,只能以真实案例呈现 (如果需要规模,那就应该有规模),而无法用形成上学的方式推演--否则就意味着工程可以自动化,无须人的创造性参与。运用之妙,存乎一心。

2. 阵而后战,兵法之常

如果工程思想的教学只能依靠师傅带徒弟,口口相授,那么教材和经典著作还有什么意义呢?

如果是这样,面对软件工程书,明白的就是明白了,不明白的还是不明白。已经受过苦的人,有过相同经历的,能会心一笑;没吃过苦没糟过罪的,仍然鲁莽行事, 事后一拍大腿,"哎呀邹欣已经说过这事儿啦,我当时怎么没明白呢,古人诚不我欺啊"。事实上,即使事后诸葛亮,也是亡羊补牢,尤未晚也。我们有多少知识是 本科的时候学了,毕业以后多年才发现,原来在某个意想不到的地方才能用到。与课本相印证,能告诉你,你的失败并非偶然,你的境遇并不孤独,未避免同样的悲 剧再次发生打下很好的基础。

它还会告诉你,所经历的痛苦,可以用更形式化的方法,或者"最佳实践"得以解决。这比你自己另搞一套,闭门苦苦钻研十年,一抬头发现古人早完成了要好得 多。我本科的时候写过一个程序,打印出来,把打印纸抻开,比我还长。用的语言是 BASIC,用行号编辑出来的。随着程序的生长,我越来越为"某些功能在好几个地方用到"感到痛苦--我用的那版本里或者我当时的知识里,还没有函数和过 程。后来我终于艰难地完成了那个程序,在读一本1980年代的书的时候,发现了"结构化程序设计"思想。如遇故人,如蒙大赦。没有先前的经验,固然不会让 我体验这么深刻,如果没有读到前人的总结,我们就不过是一次次重复失败而已。

我们一生,一共也完成不了几个项目。以岳飞之善战,据统计,他一生经历不过几十战役。他的经验或者理论,想来大多是熟读孙子兵法和分析别人的战例得来的。

所以说,阵而后战,兵法之常。前人的总结,现有的理论,适合的技术,优秀的paradigm,能给我们一定程度的行为约束,帮助我们更好地解决问题。技术犹刀也,是我们手臂的延伸,而且那上面还附着前辈杀手的灵魂。

3. 武穆遗书 有多厚

教师在选择教材时,除了受自己学识所限,要考虑学生的专业基础预备知识,还有一个有些无厘头的压力。

就是教材的价格。

领导们说,教材太贵了学生买不起,教材太厚了学生就不看了。图书馆采购的时候,鲜有优秀的国外教材和经典著作,而多是高校教师混成果用的薄册子。问为什么不多买些 o'reilly 这样的优秀作品呢?答:太贵。

同学们也不怎么买书,原因也是太贵。对于抱怨书贵的,侯捷颇有微词,书是用纸张还是用知识来衡量价值。最近,我还看到一个说法,深以为然:你的第一份工作 的薪水,与你大学期间所买的技术书总价相抵。其实一本书能有多贵,一场电影,一顿大餐?这些都是过眼云烟,而好的知识,越早了解,受益时间越长,在你剩余 的生命之中全都可以发挥作用。请邹欣讲一门课程需要多少钱,请K&R当面给你讲讲C语言,请SICP作者给你剖析一下lambda算子构造邱奇数 需要多少钱?上网打游戏感受快乐,你的青春值多少钱?

软件工程经典教材,《软件工程:实践者的研究方法》,还有《代码大全》,都非常厚,《构建之法》相对来说薄多了。我想,这是作者的一个妥协的选择。

作为大学本科的软件工程,不如叫做软件工程导论更合适,因为受课时和此时学生的经验所限,能涉及的知识都是蜻蜓点水,不得深入。导论类课程,到底是应该罗 列完整的概念,这些名词学生们都听说了,从而"知识完整性"得到保证,还是浅显地了解其中的思想 (也许用了完全不同的名字),还是把徒弟领进门,让有兴趣的同学自行继续深入,没兴趣的同学就此止步,从思路上得到此许受益。这种争议见仁见智。

不过如果我是一个学生,我更愿意像读小说或者看电影一样,看到一些故事,以后用于类比,作为模板;而不希望接受高大上抽象的概念,如果能用非常好使,但是正如初高中背政治题,答案很清楚,唯独不知识该用在哪个问题上。

如果教材还要再薄一些,我希望它们是科幻小说。我根本不关心这些方法如何具体实施,理论依据是什么,你就领我去看它绚烂的效果,让我亲眼见到它好使得不得 了。剩下的,当问题横在我的面前,解决问题的迫切会让学习的艰难、参考书搜集、教材的价格、案例什么的,所有这一切困难迎刃而解,不复存在。

这种效果的反面也正是现实,作为教师,你都不会编码,你都不会用软件工程的这些方法,怎么说服你的学生相信你学习你。所谓 learn from, 学生所学习的,不是教师的知识,而正是教师本人。

4. 题外话

从瀚哥开始,每届新同学都会问我一个问题:老师,你为什么这么关心项目的结果。

我知道,言下之意也包括,你为什么不更关心对我们的教学。

因为,我们以真实工程作为教学的工具。这是因为,没有人乐意做假的工程,仅仅为了学习目前还不确定是否有效的知识。这意味着,真实的工程必须存在,才可能 用于教学,而真实工程不同于假的实验的是,如果它失败一次,以后就不会再有真实的工程了。也就不会再有真实的工程用于教学。

训练猎人的时候,要求师傅把猎物捆个结实,为了防止学徒害怕或怜悯它挣扎,还要给猎物打上麻醉剂,再给学徒穿上防磕碰的盔甲防溅血的服装,你为什么不再戴上护心镜和老花镜躲到绣楼里去。

所以,当你要求或接受真实工程训练的时候,你就给了我你的承诺。我把武器交给你,你要像我保护你那样保护你。无论这个承诺有多么的小,一旦你说出来,它就是我的,不再属于你;我有权放弃我的权利,你没有权利背弃你的诺言。

你,你们,背弃对我的诺言,我非常失望。我知道你并不在乎我失望与否,我也并不在乎你给我造成的损失,我在乎的是我所面对的我所关心的,是这样的世界。如果承诺不可信赖,未来还有什么可以期待。

------------------------------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]




--
----
杨贵福
计算机科学与信息技术学院
东北师范大学

信息化管理与规划办公室
东北师范大学
--
Sincerely,
YANG Guifu
School of Computer Science and Information Technology
Northeast Normal University
Changchun, P.R.China

重剑无锋,大巧不工。

无不大工。

构建之法,运用之妙,存乎一心 读邹欣《构建之法》

构建之法,运用之妙,存乎一心

1. 构建之法,存乎一心

史学理论与史学史,是把历史自己作为研究对象的学科,前者讨论历史本身所研究的内容,后者讨论历史研究本身的历史。这种对于抽象的抽象的研究,正符合计算 机领域 meta... 这样的思想。当年 xml 刚出来时,不少计算机和图书情报的大学生照本宣科地提到,xml是关于数据的数据,是 meta-data。

史学理论与史学史专家周老师在谈到史学理论的时候说到 (大意) ,学习史学理论与史学史,必先有历史的修养,要努力了解更多的史实,也就是先了解历史所研究的对象,然后才能涉及到以历史本身作为研究。

我想,周老师的意思是,没有"肤浅的"认识之前,先不要着急讲深刻。

一个例子事实与推论的例子。在网上在现实生活中,都有人跟我提到过,我国人民的善良与热爱和平;作为旁证,中国自古以来就没有杀战俘和屠城这样的事。这时,我愿意以一个建议结束讨论,就是请他去读一下五代十国那段历史。如果连基本史实都还缺乏,遽然得一结论过于草率了。

在讲授软件工程类课程时,我也面临这样的难题,正如《构建之法》作者所说,是同学们对此毫无感觉,既不觉得有用,也不觉得有趣。这大致就是夏虫不可语冰的 意思。很多同学在学到软件工程的时候,代码量总计可能不到1000行,单一项目最大代码量不到200行。如果去除语言类或算法课作业,代码量就更少得可 怜。

软件工程所讨论的是当代码量巨大、当涉及人数众多、当项目需求多变时所要解决的问题。而同学们在学习时根本就没有这样的需求。200来行的小程序,没有软件工程思想,也能完成,甚至更快捷。

所以,《构建之法》的作者在教学中,要求学生完成大量的代码,让亲身的经验证实软件工程的手段是必要和有效的。除此以外,别无他法。

在教学中,可能最大的问题还不是学生积累的代码量小,而是教师也是如此。作为实践类课程的教师,你又写过几行代码,读过几本软件工程著作呢。

我的偶像YMH曾经考虑过一个问题,算法课该让哪些老师上呢。我提议:这个好办,找几道ACM题,凡是申请上算法课的老师在线答题,谁答得好谁上。偶像说,那有些老师不会编程序啊。我说:不会编程上什么算法课。偶像大笑。

我坚信,一个优秀的将军,也许并非战场上最勇猛的那个战士,但是至少是合格的士兵。软件工程教学,教师须是身经百战,学生须亲力亲为,否则,玩具性质的项目、几行代码的实验课、走走过场不关心实用的工程,都是耍流氓而已。

实践类课程,理论如何应用,只能以真实案例呈现 (如果需要规模,那就应该有规模),而无法用形成上学的方式推演--否则就意味着工程可以自动化,无须人的创造性参与。运用之妙,存乎一心。

2. 阵而后战,兵法之常

如果工程思想的教学只能依靠师傅带徒弟,口口相授,那么教材和经典著作还有什么意义呢?

如果是这样,面对软件工程书,明白的就是明白了,不明白的还是不明白。已经受过苦的人,有过相同经历的,能会心一笑;没吃过苦没糟过罪的,仍然鲁莽行事, 事后一拍大腿,"哎呀邹欣已经说过这事儿啦,我当时怎么没明白呢,古人诚不我欺啊"。事实上,即使事后诸葛亮,也是亡羊补牢,尤未晚也。我们有多少知识是 本科的时候学了,毕业以后多年才发现,原来在某个意想不到的地方才能用到。与课本相印证,能告诉你,你的失败并非偶然,你的境遇并不孤独,未避免同样的悲 剧再次发生打下很好的基础。

它还会告诉你,所经历的痛苦,可以用更形式化的方法,或者"最佳实践"得以解决。这比你自己另搞一套,闭门苦苦钻研十年,一抬头发现古人早完成了要好得 多。我本科的时候写过一个程序,打印出来,把打印纸抻开,比我还长。用的语言是 BASIC,用行号编辑出来的。随着程序的生长,我越来越为"某些功能在好几个地方用到"感到痛苦--我用的那版本里或者我当时的知识里,还没有函数和过 程。后来我终于艰难地完成了那个程序,在读一本1980年代的书的时候,发现了"结构化程序设计"思想。如遇故人,如蒙大赦。没有先前的经验,固然不会让 我体验这么深刻,如果没有读到前人的总结,我们就不过是一次次重复失败而已。

我们一生,一共也完成不了几个项目。以岳飞之善战,据统计,他一生经历不过几十战役。他的经验或者理论,想来大多是熟读孙子兵法和分析别人的战例得来的。

所以说,阵而后战,兵法之常。前人的总结,现有的理论,适合的技术,优秀的paradigm,能给我们一定程度的行为约束,帮助我们更好地解决问题。技术犹刀也,是我们手臂的延伸,而且那上面还附着前辈杀手的灵魂。

3. 武穆遗书 有多厚

教师在选择教材时,除了受自己学识所限,要考虑学生的专业基础预备知识,还有一个有些无厘头的压力。

就是教材的价格。

领导们说,教材太贵了学生买不起,教材太厚了学生就不看了。图书馆采购的时候,鲜有优秀的国外教材和经典著作,而多是高校教师混成果用的薄册子。问为什么不多买些 o'reilly 这样的优秀作品呢?答:太贵。

同学们也不怎么买书,原因也是太贵。对于抱怨书贵的,侯捷颇有微词,书是用纸张还是用知识来衡量价值。最近,我还看到一个说法,深以为然:你的第一份工作 的薪水,与你大学期间所买的技术书总价相抵。其实一本书能有多贵,一场电影,一顿大餐?这些都是过眼云烟,而好的知识,越早了解,受益时间越长,在你剩余 的生命之中全都可以发挥作用。请邹欣讲一门课程需要多少钱,请K&R当面给你讲讲C语言,请SICP作者给你剖析一下lambda算子构造邱奇数 需要多少钱?上网打游戏感受快乐,你的青春值多少钱?

软件工程经典教材,《软件工程:实践者的研究方法》,还有《代码大全》,都非常厚,《构建之法》相对来说薄多了。我想,这是作者的一个妥协的选择。

作为大学本科的软件工程,不如叫做软件工程导论更合适,因为受课时和此时学生的经验所限,能涉及的知识都是蜻蜓点水,不得深入。导论类课程,到底是应该罗 列完整的概念,这些名词学生们都听说了,从而"知识完整性"得到保证,还是浅显地了解其中的思想 (也许用了完全不同的名字),还是把徒弟领进门,让有兴趣的同学自行继续深入,没兴趣的同学就此止步,从思路上得到此许受益。这种争议见仁见智。

不过如果我是一个学生,我更愿意像读小说或者看电影一样,看到一些故事,以后用于类比,作为模板;而不希望接受高大上抽象的概念,如果能用非常好使,但是正如初高中背政治题,答案很清楚,唯独不知识该用在哪个问题上。

如果教材还要再薄一些,我希望它们是科幻小说。我根本不关心这些方法如何具体实施,理论依据是什么,你就领我去看它绚烂的效果,让我亲眼见到它好使得不得 了。剩下的,当问题横在我的面前,解决问题的迫切会让学习的艰难、参考书搜集、教材的价格、案例什么的,所有这一切困难迎刃而解,不复存在。

这种效果的反面也正是现实,作为教师,你都不会编码,你都不会用软件工程的这些方法,怎么说服你的学生相信你学习你。所谓 learn from, 学生所学习的,不是教师的知识,而正是教师本人。

4. 题外话

从瀚哥开始,每届新同学都会问我一个问题:老师,你为什么这么关心项目的结果。

我知道,言下之意也包括,你为什么不更关心对我们的教学。

因为,我们以真实工程作为教学的工具。这是因为,没有人乐意做假的工程,仅仅为了学习目前还不确定是否有效的知识。这意味着,真实的工程必须存在,才可能 用于教学,而真实工程不同于假的实验的是,如果它失败一次,以后就不会再有真实的工程了。也就不会再有真实的工程用于教学。

训练猎人的时候,要求师傅把猎物捆个结实,为了防止学徒害怕或怜悯它挣扎,还要给猎物打上麻醉剂,再给学徒穿上防磕碰的盔甲防溅血的服装,你为什么不再戴上护心镜和老花镜躲到绣楼里去。

所以,当你要求或接受真实工程训练的时候,你就给了我你的承诺。我把武器交给你,你要像我保护你那样保护你。无论这个承诺有多么的小,一旦你说出来,它就是我的,不再属于你;我有权放弃我的权利,你没有权利背弃你的诺言。

你,你们,背弃对我的诺言,我非常失望。我知道你并不在乎我失望与否,我也并不在乎你给我造成的损失,我在乎的是我所面对的我所关心的,是这样的世界。如果承诺不可信赖,未来还有什么可以期待。

------------------------------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

发自我的 iPhone

20141215

八卦一下

八卦一下

计算的本质[http://book.douban.com/subject/26148763/]

书中提到了几种与图灵机等价的模型, lambda算子、部分递归函数、SKI组合子、Iota、标签系统、循环标签系统、Conway生命游戏、rule 110、Wolfram的2,3图灵机。

部分递归函数,可能就是维基百科在递归函数词条中提到的"在可计算性理论中证明了递归函数精确的是图灵机的可计算函数。"

Wolfram,就是著名的Mathematica的发明者之一。他的另一个成果是 Wolfram Alpha 计算型知识引擎。

数理逻辑学家、哲学家、人工智能先驱王浩(1921~1995),我记得也发表过一个图灵机等价模型,似乎是翻纸牌的,可能叫做Tile系统。可 惜似乎由于有位法官同名,在维基百科上的王浩词条不能浏览,而百度百科语焉不详。

王 浩研究自动定理证明,用早期的IBM计算机,几分钟就证明了罗素花十年心血才在其名著《数学原理》中证明的220条命题。王浩是历史学家何兆武先 生的同学 和好朋友,他俩都研究过 哥德尔-艾舍尔-巴赫 这本书。记得何兆武先生有张照片,背景正是书架,书名都被遮挡起来,除了这本很厚的 哥德尔-艾舍尔-巴赫。这本书讨论的内容就包括图灵机,也就是人的计算能力的限制。他们同样也都对罗素感兴趣,刚刚提到王浩证明了数学原理中的命 题,何兆 武先生则翻译了罗素的《西方史学史》上卷,对罗素的史学观也有专门论述。

王浩的工作,维基百科英文上查到了,从图灵机英文词条找过去,在[http://en.wikipedia.org/wiki /Wang_B-machine]提到:

Hao Wang (1957), A Variant to Turing's Theory of Computing Machines, JACM (Journal of the Association for Computing Machinery) 4; 63-92. Presented at the meeting of the Association, June 23-25, 1954.

20141108

我反对你,正是对你的支持

反对你,正是对你的支持

最近的照片 [http://www.douban.com/photos/album/145506893/],

[http://www.douban.com/photos/album/146651109/],

[http://www.douban.com/photos/album/145962336/].

1.反对并非不支持

昨天中午,有同事要求我评论他们的技术方案。我给出了反对意见,认为不够完
善。我理解对于我的负面意见他们的激动,如同XL同学所说,人家风尘仆仆地来
了,一腔热情,可能满希望得到肯定,甚至赞叹,结果一盆冷水迎头浇下来。

有的同学可能会说,你委婉一点呗。我试过了,我真的试过了。事关利益或者决
策,委婉也不过就是那么回事,利刃杀还是钝器砸还是湿毛巾捂。套一句话,大家
都 是成年人,谁还看不出来背后的否定意味吗?或者说,我对那种说法深恶痛
绝,类似于"你真的是个好人,但是……"有老师对我说过,"你真的 是个 好学生,
但是你考我这,我真就是没有名额。"我很诚肯地说,"老师,这个意思就是我不是
个足够好的学生,我明白。"这很刺激我,刺激我的,并 非我不是好学生这个事实。

一盆冷水,是因为,这是我所理解的,在工作中我们的合作关系就是如此。

同事所希望的,是我的认同;而技术讨论中,我们的认同唯一地只受到自然科学定
律的限制。或者说,受到我所认识到的真理的限制。我可能是错的,但是我所能表
述的就是��我所学习的知识和训练��不认同你的观点。

但是,这种反对并非恶意。标题换个说法,可能更确切一些: 我对你的反对,是我
支持你的方式。

在工程、项目、工作中,对个人的认同从来不是其中的一部分。在这个问题上,只
有观点,只有事件,没有人情。

我们往往故意或无意地把对我们的认同与对我们的善意混为一团,对 真假、是
非、里外视为同一。真假,是命题或观点或判断是否符合符合事实,与道德和支持
哪一方无关。这里的"支持",特指"我挺你"这个意味,包括我乐意在 你身上花
钱,我喜欢在你上舞台或进球的时候鼓掌,而不是"我与你的观点一致"。虚无主义
认为,命题无所谓真假,我们可能在将来发现我们此 刻认 定的真假不符合后来发
现的事实。这并不矛盾。真假,也可以理解为"你所认为的真假",或者说,我们的
观点就是如此,无关对错,不说谎,不曲意 逢仰。是非,指的是行为或观点是否
符合公众道德,或者你的道德观,这与我和你是不是一伙(现在流行说一国?)没
有关系。我帮助你,可能只 是选 择和你一起作恶,并不一定我就认同你的价值
观;考试的时候老师抓了学生作弊,不见得是老师就认为你这么做"坏",可能只是
履行他的职责。真 假、是非、里外,差别如此,混为一淡的话,我们就会把不支
持我们的,视为"恶",或者视为"假"。

这种程度的区分,有位劝学生不要早恋的老师解说得非常透彻。他说,"你可以喜
欢男生A的帅,但是你不能喜欢帅的男生A"。他把男生A与他的帅视为不同。

当我引用这段话的时候,你是不是隐隐地觉得我反对早恋?请注意,我并没有一点
赞同或反对这位老师观点的意思,我只是说,他对于"区分"这种事,看得很透。
至于我对于早恋的观点,跟这个话题根本毫不相关。

2.反对以外,还能有更强的恶意吗?

有的同学可能会问出这样的问题,除了反对,你还能(现在流行说 还敢?)表现
得恶意一些吗?

当然。爱的反面不是恨,而是冷漠。

我给出反对意见,动机是积极的,是希望他们的方案/事业有更好的结果。我的学
生们在我和讨论的时候,下手从来都非常很,不留余地的证明我是错的,并以挑战
成功而高兴。我从不觉得这是一种冒犯,认为理应如此,并为此感到欣慰��他们既
对自己的成长负责,也对项目本身负责。

现在,暂时抛开我给同事反对意见这回事,来看看还可以有什么样的恶意。

一次我在GMS超市购物,找不到猫粮,问哪个员工哪个不知道,找了半个小时。终
于买到以后,我在出口要求提意见,记录的小伙儿说,你是打错投诉哪位员工
吗?我说,不是,我只想给出意见,你们居然没人知道货位。小伙儿很为难,你不
投诉谁,我怎么记呢。我说,我来。我记道: 我投诉经理,他没有对员工足够训练。

事实上,我也不想投诉经理(或者体制),错误就是错误,我只想指出这一点,至
于谁该为这个错误负责,那不是我一个顾客乐于关心的。

讲这个故事的真正目的,并不是想说要把人和事分开,而是��冷漠。我一点也不关
心某个员工,不关心他的成长,也不关心错误对他的未来/进步/评价所带来的 影响。

我在China-pub购书,送来时候包装已经裂了三处,箱子敞着口儿,最大的裂口
里,三四本书脊暴露在外。我只在微信朋友圈发了照片,提醒同学们小心。 我没
有告诉China-pub。

我甚至猜想如果告诉China-pub的话,客服可能会解释"这是因为物流野蛮装卸""这
是因为双十一到了",甚至可能会说"不可能啊,从我们这出货的时 候挺好的啊"。
不需要解释,我根本不关心为什么会这样,这不是一个顾客的责任,顾客不需要了
解这种知识。

我能设想的最好态度是,"我给你把这一单免费了吧"。不需要,我嫌提供账号收钱
麻烦。

我单纯地,都不愿意花费哪怕一秒钟通知China-pub。因为我不关心这个企业的成
长和它的未来。它不再值得我关心了。

我愿意花上半小时一小时写这些给你看,但是我不愿意花费一秒钟向China-pub吐
槽。这就是冷漠。冷漠,是比"不支持"更强烈的"反对"。这里的支 持,不是"我挺
你"的意思,而是我愿意为你期待地正面效果而努力。

与"我挺你"相反的,不是"反对",而是我连反对都懒得吱一声。

3. 你怎么知道"反对"是我期待的,也许,我只是寻求赞同。你以批评为乐吗?

可能有的同学会说,"谁让你发表意见来着,我根本不乐意听,我要做自己!"

当然,你的成长,是你自己的,我根本不应该给出意见,除非你问我。而我的同
事,他们邀请甚至要求我发表意见,所以我才说了。我的行为,与360那种不请自
来是不同的。

有的同学可能会说,"我邀请要求的是认同啊。"

答案是,你找错人了。

网上现在有卖虚拟女朋友/男朋友业务的。他(她)们可以做到总是在线,网聊中
总是捧着你,总是赞同你��因为你付钱了。你付钱买到的就是这个服务,"唉 呀,
你真是受委屈了啊,这个社会你的单位你的同事你的同学你的老师对你太残酷了
呢。""你这样,真让人心疼了呢""XXX了呢。"

有的同学可能会说,"你是说…让我付钱吗?"

你当然可以选择付钱,但是我不出售这些,你找错人了。这就是刚刚的答案。我不
出售赞同。我只能赞同我赞同的观点,而不通被收买赞同你赞同的,除非刚好咱们
一路。

当你诉求的时候,请略去苦心、情绪等,问问你自己,你想要的

是奴仆,还是将军,是合作伙伴,还是利用对象。

你想从我这里得到的,不一定与我想给的一样。这个时候,你只能由得我,按我给
的接受, 或者拒绝,但是你在我这里没有别的选择。此时,合作的方式由我决定
的原因是,我并未期待与你合作,我的直接选择就是那不合作好了。

我几年前对同学们(同学们,一般地表述是研究生或学生们。学生这个词,现在被
毁得很厉害,所以我平时就称他们为同学们。为与我的同窗相区别,特此说明)说
过,我们不是因为感情而聚在一起,而是各有目的。我明确地对不止一个同学说
过,我不爱你们,不像有的老师,她爱所有的同学。"我不爱你 们", 这个说法不
确切,应该说,"我没有预期会对同学们产生感情,如果后来我们成为很好地朋
友,那是因为时间,而不是我原来就这样计划。"

我没有计划过合作。所以,如果不能接受我指定的合作方式,那就算了。你很忙,
我也有的是活儿,扯啥呢这是。

有想得到赞同的,你就得无懈可击。只有我赞同的我才会赞同,所以我的评论才有
价值,才值钱。我珍惜由此得到的大家对我的评论的信任。

有个牙医,她失去了我的信任。因为她说,"快了快了马上马上",结果不是这样。
还有,"不疼不疼",你看"是不是也不那么疼"。我当时心想的就是,你是在 利用
心理暗示和语言技术令我认同吗,还是在考验我的独立判断能力。

我并不见得按你的期待行事,给钱也不行。事涉自由,非常重要,不能妥协。与研
究生同学们的第一次见面其实很有意思。有人说,我想学技术,我一般答,那你得
自己练习;有想学知识的,我一般答,那你得自己看。

那我能为同学们提供什么呢?今天,在一顿技术讨论后,我对齐同学说: 其实,我
还希望你能明确答复明白了另一个问题,关于责任划分的。这才是你跟随我所能学
习到的最重要的东西��技术反倒是其次。我们能一起学习和做项目的时 间很有
限,不过几年,希望你能带着对这种观点的了解、就像带着更成熟的技术一样,去
过离开我以后的生活和工作。(不是接受,而是了解)

如果我能给你的,恰恰如同你所期待,或者你可以期待到,你可以买个以前轿车里
放的那种会点头的绒毛小狗,它很可爱,一捅就点头。或者,给你自己写封信,大
大赞扬一番你的决策英明、知识丰富、果敢勇猛、还有伟光正等等,然后署上某个
别人的名字,发给你自己。然后指着信和我的鼻子大喊,"你 看,有 这么多FANS
都支持我,你怎么敢。"

想得到认同什么的非常容易,何必非得从我这里要,这么难。

20141027

笔记:技术的本质

技术的本质:技术是什么,它是如何进化的 (布莱恩•阿瑟)

- page 30

然而,作为人类,我们实际上不应该和技术如此紧密地结合,而是应该和其他什么
东西融合得更为紧密,那就是自然。在最深的层次上,人的存在应该 和自然,和
我们最初的环境,以及最初使我们成为人的那些条件相融合。
==========

- page 36

如今机器被用来生产机器了,同时它又变成了以后同类机器的父母。
==========

- page 43

技术的建构不仅来自已有技术的组合,还来自于对自然现象的捕捉和征服。在
==========

- page 44

技术(所有的技术)都是某种组合。
==========

- page 44

三个基本原理
==========

- page 44

其次,技术的每个组件自身也是缩微的技术。
==========

- page 44

第三条基本原理是,所有的技术都会利用或开发某种(通常是几种)效应
(effect)或现象(phenomenon)。
==========

- page 44

技术组件的集成或组合是为了满足它们的目的。
==========

- Your Note on page 44

motivation
==========

- page 44

技术组件的集成或组合是为了满足它们的目的。
==========

- Your Note on page 44

motivation , difference between the evolution of technology and biology.
==========

- page 49

定义:技术是实现人的目的的一种手段。
==========

- page 49

技术是实践和元器件(components)的集成(assemblage)。
==========

- page 50

将技术作为在某种文化中得以运用的装置和工程实践的集合。
==========

- page 53

装置和流程的确可以归于相同的范畴。
==========

- page 55

技术总是围绕着一个中心概念或原理,如"事物的方法"或者一个可行的核心理念来组建
==========

- page 57

各个子程序就处于不断的相互联系之中,它们不停地"对话",就如同喷气发动机那样。
==========

- page 60

技术的分解随着市场的细分而加剧。
==========

- page 61

一开始的一系列松散地串在一起的零件如果被用得足够多,就会"凝固"成独立的单
元。技术模块随着时间的推移会变成标准组件。
==========

- page 66

一个技术绝少是固定不变的。它会不断地变换结构,当目的改变时,它会去适应并
进行重新的配置,
==========

- page 66

在真实世界中,技术是高度可重构的,它们是流动的东西,永远不会静止,永远不
会完结,永远不会完美。
==========

- Your Note on page 73

theory , principle .
==========

- page 73

现象是技术赖以产生的必不可少的源泉。
==========

- page 75

这个例子阐明了如何应用现象的组合去达到目的。
==========

- page 75

在实践中,现象在能够被应用于技术之前,一定要被"驯服",并且作好恰当的准
备。天然形式的现象很难被利用,需要巧妙的诱导,它们才能令人满 意地运作起
来。它们可能只在很有限的条件下起作用,所以一定要建立正确的支持方式才能使
它们为预设的目的服务。
==========

- page 83

货币系统利用了这样一种现象:只要我们相信其他人会相信一种交换媒介是有价值
的,而且这种信任会在未来持续下去,我们就会相信这个系统。需要 注意的是,
这里的现象不是物理性的,而是行为性的,
==========

- page 83

物理现象。
==========

- page 84

目的性系统(purposed systems)。
==========

- Your Note on page 170

根据原理选择部件
==========

- page 91

科学之所以在这个时候链接到技术,不仅是因为它能对结果提供更多的洞见和更好
的预测,还因为一些新的现象家族开始被开发了。
==========

- Your Note on page 91

简化模型
==========

- page 91

技术人员应用科学思想就如同政客们应用已故的政治哲学家们的思想一样。他们日
复一日地使用这些思想,对其起源的细节却知之甚少。但这并不是出 于无知,而
是因为起源于科学的那些思想会随着时间的推移被消化吸收到技术体自身当中,例
如融入电子工业或生物技术。它们在这些领域中与经验和 特定的应用融合在一
起,创造出它们自己固有的理论和实践。
==========

- page 95

技术是对现象的驾驭,而这很大程度上是由科学揭示的。
==========

- page 100

为什么个体技术要聚集成群?原因之一是它们是分享了现象的族群。但这不是唯一
的理由,技术聚集在一起还因为它们分享了共同的目标:
==========

- Your Note on page 100

共同的假设
==========

- page 100

用来概括和分析数据并实施统计性测试的统计软件包,拥有一个共同的假设前提,
即抽样在总体上应是正态分布的,因而统计软件包工作的基础是共享 了所操作数
据在这个性质上的假设。
==========

- Your Note on page 101

lib
==========

- page 101

一项技术(个体技术)是要完成一项工作,达成一个目标的,而且这个目标经常非
常特殊。而一个域(复数的技术)则不需要完成工作;它仅仅是以一 个工具箱的
方式存在,你可以从中选取有用的元器件或一系列的应用规范。
==========

- page 105

20世纪30年代,人们可以用由水泥制造的、15英尺或更高的巨大的声反射镜去监察
跨越海峡飞往英格兰的飞机。它需要搜集来自20英里远的声 音,然后交由具有超
敏感听力的人进行处理。到第二次世界大战爆发时,雷达被用来实现同样的目的。
==========

- page 107

它可能需要巴贝奇亲自设计设备,组装一台地震波分析仪,并依据爆炸回声进行地
图的渲染。这个机器将是一个奇迹,它也许会带有一个犄角形的听 筒,一个辅助
的铜齿轮和杠杆,以及转盘和着墨的绘图笔。这个设备工作起来缓慢、复杂,而且
它将专门用来进行地震勘测。巴贝奇时代的这些域(机 器、铁路、早期工业化
学)的触角很短,因此所能提供的可能性很有限。
==========

- page 110

事实上,正如口语表达的清晰度不仅取决于语法一样(它依赖于词汇的深层含义及
其文化相关性),技术的清晰表达也不会仅仅依赖于语法。技术的清 晰表达需要
相关域的深层知识,包括:所使用组件的词汇的流利程度;对标准模块、以前的设
计、标准材料、相关技术的熟悉度;
==========

- Your Note on page 110

dsl
==========

- page 110

语法在很大程度上反映了我们对"特定域中自然是如何工作的"这个问题的理解。这
种理解不仅是来自于理论8,也来自于经验积累:
==========

- page 115

可以在不同的域世界中完成同样的任务,但是功效可能会不一样。
==========

- page 117

这暗示着创新不是发明以及对其的应用(例如,计算机、运河、DNA或者芯片的发
明和应用),而是在新的可能世界中,将旧任务(例如,会计、运 输或者医疗诊
断)不断地进行重新表达(re-expressing)或者再域定(re-domaining)的过程。
==========

- page 130

我们要关注的是它和语言的关系,先有意向,然后是完成的方法——组件的恰当组
合。所以,设计即表达。
==========

- page 134

如果你看过任何一本工程手册,你就会发现许多标准问题的解决方案。比如《机械
和机械设备图集》8就给出了"耦合旋转轴的19种方法",以及 "15种不同的凸轮机
构"。另外一个电子类的手册,则图解了5种振荡电器:阿姆斯特朗振荡器、科耳皮
兹振荡器、克拉普振荡器、哈脱来振荡器、 瓦卡振荡器。这类手册提供了标准解
决方案来解决那些重复性的问题,也可以为特定的用途进行修改。
==========

- page 138

标准工程中的每一个项目都会使一系列问题显现出来,每一个解决的结果都是一套
对应的解决方案。可用的解决方案被建构并在实践者中传播,其中一 些可能变成
技术名词,进而变成未来技术的建构元素或模块。标准工程对创新和进化都贡献良多。
==========

- page 141

新技术是针对现有目的而采用一个新的或不同的原理来实现的技术。新技术是在概
念当中或实际形态当中,将特定的需求与可开发的现象链接起来的过 程。
==========

- page 142

新技术的形成(激光打印机、涡轮喷气发动机、计算机)都是源于一个新的或不同
的基本原理。
==========

- page 143

我发现勾勒出这个链条很有用。链条的一端是"需求"或"目的";另一端是能达成需
求或目的的基本"现象"。
==========

- page 144

发明有两大模式: • 肇始于链条的一端,源于一个给定的目的或需求,然后发现
一个可以实现的原理。 • 发轫于链条的另一端,从一个现象或效应开始,然后逐
步嵌入一些如何使用它的原理。
==========

- page 145

将原理转译成工作元件
==========

- page 146

至此,需求已经变成一个被详尽描述的问题。
==========

- page 145

假设这时已经有了解决方案,那么标准技术就足以应付。但现在不行,因而如何定
义问题本身就变成了挑战。那些接受挑战的人会遇到类似需要满足某 个需求或需
要克服某种限制的情况。他们很快会将挑战简化为需求——一个需要解决的技术问题。
==========

- page 153

当你听完斯塔克伟泽的故事后,印象最深的应该是他所面临的选择。每个次生问题
都可能有几种解决方案。斯塔克伟泽选择解决方案、检验它们的可行 性,并努力
从中组成和谐的整体。当需要找到次生或次次生问题的源头时,他就向下拓展这一
梯式递归进路,如果这些问题得到解决或被放弃了,他就 再向上回溯。这个过程
几乎总是很漫长,只有当获得了必要的知识,并且次生技术带来的挑战已被成功地
克服后,才能向前迈一大步。前进的方向总是 沿着运行恰切的版本向前延伸的。
==========

- page 156

莱特兄弟所要做的是解决阻碍原理被转译成可行技术的四个关键的次生问题。
==========

- page 156

基本原理有时会自然呈现,有时会突然出现。困难之处在于如何使原理正确地发挥
作用,这可能需要漫长的努力。
==========

- page 164

科学与数学中的原创和技术中的原创没有根本性的不同,我们不必对此感到惊讶。
这种对应的存在不是因为科学、数学和技术是一样的,而在于三者都 是目的性系统。
==========

- page 164

科学与数学中的原创和技术中的原创没有根本性的不同,我们不必对此感到惊讶。
这种对应的存在不是因为科学、数学和技术是一样的,而在于三者都 是目的性系
统。广泛来说,也可视为达到目的的手段,因此需要遵循同样的逻辑。三者的构成
都始于形式或原理:对于技术,是源于概念性的方法;对 于科学,是源于解释性
的结构;对于数学,则源于真理与基本的公理结构。
==========

- page 170

事实上,开发者经常寻找的并不是更好的部件,而是这个部件恰好能提供的一个现象。
==========

- page 176

当调换部件和结构深化都不能再为提高性能做什么的时候,技术就成熟了。这时
候,如果想取得进一步的发展,则需要一个全新的原理。
==========

- page 177

只要我们能够,我们总是倾向于将感知置于经验、事件之上,创造符合它的变故和
关系。我们对那些不符合这种参考框架的事物往往采取忽视、误解或 否认的态
度。结果是,我们通常能找到我们所要寻找的东西。
==========

- Your Note on page 191

生产工具的变革
==========

- page 191

经济学假设新技术是被 "采用"的,它们被接纳并应用于经济中。对于个体技术当
然是这样。钢铁生产商采用贝塞麦生产过程,他们的生产能力也相应地起了变化。
但这并不能很好地描述 复数的技术的情况,如计算或铁路技术。我更倾向于认为
工业、公司、商业运作等经济要素并不是"采用"了一个新的技术体,而是"遭遇"了
它。正 是由于这种遭遇,才产生了新工艺、新技术、新兴产业。
==========

- Your Note on page 197

统一或分散的动力
==========

- page 196

9在工厂还没有实现电气化之前的一个世纪左右,人们依靠蒸汽机提供动力。每一
个工厂都有这样一个独立引擎,一个足有几层楼高的巨大的家伙嘶吼 着,摇动着
一个由活塞、飞轮、滑轮、皮带构成的组合,驱动主轴的运转,然后再继续驱动工
厂里其他的机械设备。直到19世纪80年代,电动发动 机才作为新的电子域的主要
成员进入了可操作阶段。它们所耗能源成本很低,还可以分解成小单元进行安装。
这样一来,每个需要提供动力的工作机旁 边都可以安装一台电机。同时它们可以
做到独立控制,可以依据需要分别开启或关闭。毫无疑问,电动发动机是更优的技术。
==========

- page 197

新技术要求重新建造工厂。
==========

- page 200

手艺的形式部分可能最终会成为学术论文和教科书,但真正的专业技能部分则很大
程度上藏在它创生的地方,在那里,它被视为理所当然的、共享的, 且无须明言。
==========

- page 210

随着技术数量的增加,组合的可能性也相应提高。
==========

- page 210

威廉·奥格本早在1922年就已观察到这一点:"可用于辅助发明的东西越多,发明的
数量就越大。"
==========

- page 211

他预期物质文化(技术)的增长显示出"和复利曲线的相似之处"。如果他能在今天
进行写作,他会说技术是按指数级增长的。
==========

- page 213

事实上,需求不是一个恰当的词。因为在青霉素或核磁共振还不存在的时候,根本
无法在经济中对它们提出明确的需求。因此不如说我们应该谈论的是 技术的机会
——即技术可以有效地占据的利基。
==========

- Your Note on page 219

新技术可能与旧技术结合,也可能取代。都是利基之处。
==========

- page 219

在实践中,它们其实并不能这样干净利落地前后相继、井井有条,而经常是并行发
生的。
==========

- Your Note on page 223

与非门
==========

- page 223

所有可用的技术只有NAND(不是AND)电路(
==========

- page 226

我们既不能预见会形成何种组合,也不能预见何种机会利基会被创造。由于潜在组
合是成指数式增长的,这种不确定性也会随着技术体的发展而增加。
==========

- page 236

经济以这种方式在暴风骤雨般的变化当中构成或重构自身,包括创新和适应这种新
的制度安排,以及如影随形、互相追逐的机会利基。 让我以一个具体的例子来详
细阐明我的观点。当实用的纺织机械于18世纪60年代在英国诞生时,它提供了一种
替换当时以手工作坊为基础的生产方式。2当时, 羊毛和棉布的纺织都是在家里手
工完成的,属于散工制的组织方式。新机器在刚开始时获得了部分成功。接着,它
需要比家庭手工作坊更大规模的组 织,因此它为更高级的组织安排(纺织厂或毛
纺厂)提供了机会,并成为其中的一部分。工厂实际上也是某种技术,它作为一种
组织手段,反过来需要 另一种手段来实现:工厂劳动力。劳动力当然早已在经济
中存在,但是当时当地并没有足够多的人来支撑这种新的工厂系统,因此需要劳动
力的调集。 由于大多数劳动力来自农村,这就需要工厂附近有居住的地方,工人
宿舍和工人住房建设因此而出现。随着工厂、工人以及他们的栖息地组合而来的是
一个工业化城市的生长,一套新的社会组织方式或说一套新的安排出现了,内含这
种结构的维多利亚式工业经济就此开始呈现。就这样,一个时代的特 征,一套和
超级工业机械相匹配的安排显现出来了。 但是这个过程还远远没有结束。工厂的
劳动者当中许多都是孩子,经常在狄更斯作品中那样的条件下工作,这也引发了强
烈的改革需求,这种改革需求不只是关于 "下层阶级的道德状况"3,还有他们的安
全状况。继而,法律系统需要采取进一步的安排来对此做出回应,劳动法就在这种
情况下被制定出来,以阻 止最坏的恶行发生。然后,新的工人阶级开始要求分享
工厂创造的财富,他们利用一种手段来改善他们的状况,那就是工会组织。工厂中
的劳动力要比 家庭作坊中的劳动力更容易组织,4因此,若干年之后,工会就变成
了一股不可小视的政治力量。 在这种机制下,纺织机械并不仅仅是替换了手工生
产方式,它还为更高一级的制度安排(工厂制度)提供了机会。在这个制度安排
中,机械只是其中的一个组分。新 的工厂制度反过来建立了一个服务于劳动力及
其栖居需要的需求链条。反过来,对这一问题的解决又创造了进一步的需求,所有
这些最终演变为维多利 亚式工业体系。这个过程用了100多年的时间才真正完成。
==========

- page 237

从此,纺纱人不再能在家里转动她的纺轮,织布匠也不能在家里抛动他的梭子,那
种没有任何监督的美好时光从此不再。现在,工作必须在工厂中完成 了,以一种
无聊的、毫无生气的机器所规定的步调,作为团队的一员,要与整体共进退,开
始、间歇、停止——所有这些都在密切监督之下进行,工厂 用道德、经济奖惩来促
使工人勤奋地工作,有时候甚至是身体上的强迫。工厂是一种新的监狱;时钟是一
群新的狱卒。"
==========

- page 239

即将到来的新技术不是仅仅打破静态,比如说发现比我们现在用的产品或方法更好
的新的组合:它需要一系列安置新技术的条件,并解决由此产生的另 外一些新问题。
==========

- page 239

即将到来的新技术不是仅仅打破静态,比如说发现比我们现在用的产品或方法更好
的新的组合:它需要一系列安置新技术的条件,并解决由此产生的另 外一些新问
题。如此一来,又要为新的能够解决这些问题的进一步的技术创造新的机会利基——
接下来又产生进一步的问题。 因此,经济总是存在于永恒变化之中,存在于一种
永恒的新颖性之中。
==========

- page 243

我们的理论始于三个原理:一切技术都是元素的组合;这些元素本身也是技术;所
有技术都利用现象达到某个目的。
==========

- page 243

一旦新技术(单体技术)诞生了,它们就立刻成为可供进一步地建构更新技术的潜
在构件。
==========

- page 250

从占有资源的角度获取国民财富的总量开始不如从占有专业科学及技术知识的角度
获得的那样多了。公司的竞争优势绝大部分是从它们占有的技术专长 而来的。
==========

- page 249

从只实现单一目标功能的流程或机器转换为采用不同组合以实现不同目标的技术。
为了反映技术的这种转换,经济至少在高科技部分更多地表现为更关 注如何聚
集、拼凑事物,而不是如何对现有操作进行完善。
==========

- page 256

他们的星际飞船是虚弱的、有机的,而且必须踢它才能让它运转。这是至关重要
的,他们的技术是人性的。
==========

- page 256

他们没有用人性和技术做交易,也没有使意志向技术投降。技术向他们投降了。并
且由于这样做了,技术也拓展了它们的自然性。
==========

- page 256

已经把技术奴役我们的本性和技术拓展我们的本性之间进行了区别。
==========

- page 254

如果我们仅仅使用自然现象的原始形态去驱动水车或推动帆船,我们对技术就会有
家的感觉,我们的信任和希望就不会那么不一致。但是现在,随着即 将到来的基
因工程、机器智能、仿生学、气候工程学,我们正在开始使用技术(利用自然)直
接干预自然了。对于我们这种灵长类动物,对于我们这种 以树、草和其他动物构
成的生境为家的动物来说,这种感觉极度不自然。这扰乱了我们内心深处的信赖。
这种内心深处的不安会不知不觉地反映在很多方面。我们开始转向传统,转向环境
保护主义,开始回头倾听家庭价值观,我们转向原教旨主义,我们抗议。我们这些
反应的背后的实质,不论合理与否,是恐惧。我们害怕技术将我们与自然分离,我
们害怕技术破坏了自然,破坏了我们的自然。
==========

- page 255

我们害怕技术作为一种有生命的东西将会给我们带来死亡。不是"不存在"这个意义
上的死亡,而是更糟糕的死亡,一种丧失自由的死亡,一种意志的 死亡。
==========

- page 280

技术由人类创造出来,又基于自然最原初的现象,但却开始了疏离"人类与自然"的
进化之旅。
==========
--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

20141026

秀技能:倒立及其他没用的

秀技能:倒立及其他没用的

我练的倒立得靠墙,做不到像猴子或杂技演员一样走来走去,或者静止在那里。

靠墙倒立,就是像《流星花园》里花泽类里那样,面对墙壁,双手撑地,然后啪地一
声,脚就上墙了。花泽类说,我听朋友说,如果你要哭的时候倒立过 来,眼睛就
不会流下来了。后面这段对白并非靠墙倒立的一部分。

其实我根本不相信花泽类说的,泪腺分泌如果连地心引力都不能克服,人类早就因
为眼睛迷沙子然后感染死绝了。另外,我想不起来《流星花园》里是否给 了全身的
镜头,别腿上还有绳子向上拉吧。

靠墙倒立基本是个没用的技能,练这个,多一半是为了好玩。这种好玩,而没有用
的技能,我还会很多。那天拉了个单子,总结如下。

我会地盘扫堂腿。你在武侠片里应该看过,就是两手撑地,一腿弓一腿绷直,绷直
的那条腿在地上划圈,弓的那条腿要适时的跳起来,才能不绊到。当年网 络中心
元旦吃饭的时候,我秀过,燕姐的儿子当时似乎小学,羡慕得不行。当年,这位小
同学的理想是从事演艺事业,现在,这位当年的小同学都已经上大 学了,专业不
是艺术类,估计已经认识到这种奇技淫巧毫无用处了。

我还有单腿蹲起。曾经在四食堂门口看协会纳新,一哥们在那练这个,屡试不成。
我过去跟他切蹉了一下。他说:你不错啊。然后这位哥们秀了一下他的右 手,他
主练铁沙拳,右手背上全是肌肉。此前,穷我一生所见,没见过手背上有肌肉的,
而这哥们的手背肌肉跟我小臂上的差不多。我按了按,问:练的时 候疼不,然后
再也不提单腿蹲起的事了。

在芬兰的时候,我秀过地盘扫堂腿和快速的单腿蹲起。在酒吧里,关同学和小刘同
学带我去的,提前排队不用花钱。音乐响起,我进去整了这么两下子。不 少年轻
人鼓掌吹口哨。然后我就出来了,一方面我只会这个,另一方面,老外年轻人怪吓
人的,你可以想像一下,一群金发碧眼或光头的北欧人,穿得都很 重金属或者哥
特,朝你叫喊,而你根本不知道他们叫喊的是啥。关同学说,他们就喜欢厉害的,
我听不懂芬兰语或瑞典语,真心没有全信。

我还会向左或向右歪嘴。最初,只会向左侧歪,这是天生的。后来,经过了艰苦的
努力,终于能向右歪了。终于说到了正题,这些技能,即使是没用的,也 都经过
了艰苦的努力。要仔细体会向左歪的肌肉的感觉,然后用手扶着脸向右歪。

你不要试了。没有个把星期的不懈努力是不会成功的。如果不信,你不妨试试这
个:跳起来转三百六十度。先逆时针一次,再顺时针一次。小心,小心,摔 到了
别怪我没提醒你。事情不像你想得那么简单。

关于歪嘴,除了艰苦努力以外,这个故事还告诉我们另一件事,就是它真的没用。
我在吃饭的时候给ZHUMAO的儿子演示过。他儿子刚想 试,ZHUMAO赶紧厉声喝止:
不许学。

我还能从右侧上自行车,另人骑的时候,从右侧左侧分别上到大梁和后座上。右侧
骑自行车只在高考前体检的时候秀过。体检等待的时候,几个男同学试把 试把地
从右边上。当然,全部以摔倒告终--全部。这些小伙里,当然有体育特别好的,足
球蓝球都顶呱呱的。但是,平衡能力什么的,天生大家都比别人 强不了多少。所
以,他们全都没有在那几十分钟里练成。我几翻请求,终于能有机会试一下,先特
意歪了两下,然后顺利上去骑了一圈。在这之前几年,我 就掌握了这个技术。

类似的,我还秀过背圆周率小数点后一百位。吕咸辉等同学拿着张纸条,上面写了
pi的小数点后一百位,正背着。我凑过去问,这是什么。得到答复以 后,我拿过
来,边看边念出声,然后一挥手,开始背:3.1415926535897932384626
433832795028841791693993751058209......(还能背这些,希望没错)

是的,我以前就背下来了,背诵之前的表演只是表演。这样的故事告诉我们,在艰
苦练习面前,天赋什么的都是扯淡。

我还会在骑行中把前轮抬起来,能什么也不碰到上马路牙子。如果你觉得这个不够
酷,我还能再把后轮也抬起来。代价是,在我漫长的训练中,我爸的东方 红自行
车,那么结实的二八车子,后座被我摔歪过很多次,还专门调过后轴。因为摔的次
数太多,防摔技术也有提升,曾经在冰面上转了三百六十度,人和 车都没倒。当
然,因为练习次数不够,没有再重现过这个奇迹。

我还能把右边单侧眉毛抬起来,左侧的不动。翻过来我练过一阵,至今没成功。

我的左手的食指到小指,都能在第二指节弯曲,而第一指节不动。别笑,我也认为
这没有什么用处。

我还会很多别的没用的技能,以后再说。继续说倒立。练倒立是从《囚徒健身》
(http://book.douban.com/subject /25717097/,不是广告,没收好处)里学的。
里面说,倒立的终极目标是单手靠墙俯卧撑。

单手靠墙俯卧撑,够臭屁吧。练起来可真难啊,连它的最初阶段之一,靠墙倒立都
这么难。

个别同学可能会提到,是不是你原来太弱啊。不算太弱,我在练这个以前,当然,
腰突以前,能连续做100个俯卧撑,能做10个以上头拱地的背桥,能 跪姿直着慢慢
地向后面倒下去,到地面,如果鞋够硬,还能再慢慢地起来。

我高估了自己。练习倒立我受了不少伤,这些伤足以说明够难。我回想一下啊。最
厉害的是左大腿磕在书架上,当时就凹下去一块,跟被大棒子打进去的一 样。不
咋疼,但是第二天开始就青了,然后紫了,然后漫延开。如果没记错,一个多月才
淤血全消。半年多了,现在颜色还没全变过来。右脚背磕另一面书 架上,瘸了好
几天。右肘在被墙上的东西划破,留了道疤。

因为胳臂没撑住,脑袋撞地上若干次。最倒霉的一次,地上刚好有个小石子,比小
指尖还小点,正中头顶百会穴位置,那个疼啊,当时就起个包。脑袋撞地 上,疼
并不是最可怕的。杵脖子最吓人,虽然每次都不严重,不过最近才有报道有个印度
哥们进球后以后空翻庆祝,脖子杵折了,死了。

后来,终于能后背与肩附近顶在墙上倒立住了。拍了张照片传微信上,大学同学里
的大姐说,你这岁数练成这个不容易啊。后来,偶尔能完全立住,找感 觉,在网
上查贴子,看视频。再后来,完全立住的几率越来越高了。再后来,我妈告诉我,
摩擦力很重要,手一定要抓稳地面,最好在地毯上。成功概率大 增,几乎不失败
了。附注:我妈不会倒立,旁证是她认为我"才立那么一会儿啊",我没见过谁一立
半天的。

靠墙倒立,我大约练了半年吧。还有更深的技艺,比如顺风旗,比如俄式俯卧撑,
据说有基础的也要练上两年。想起练某种变态的仰卧起坐时,我一边起一 边啊啊
叫,一边骂,谁TM地发明了这些东西,真折磨人啊。

有时会想起二猫妈写在四六级练习册的扉页上的话,"不为无益之事,何以遣有涯
之生"。也许,这些技能最大的用途就是在一群无聊的小伙面前秀一下, 然后就"
这有啥"吧。也算人生的一部分。

很久都没有锻炼了。连续极度疲劳,连续生病,连续雾霾,连续抑郁。昨天开始试
了一下,20个俯卧撑我就上不来气了,今天肱三头肌疼痛。是以为记。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

20141009

读书笔记,一段时间以来

021《火星公主》作者:[美] 埃德加·赖斯·伯勒斯, young@nenu




我坚信,一个男人和女人的交往正好和他的勇敢成反比。一个懦弱的蠢货经常能轻
易地迷住女人,而一位可以毫无惧色 地面对成千上万个真正敌人的勇士却只能像
受了惊吓的孩子一祥躲在暗处。
young@nenu, 021《火星公主》作者:[美] 埃德加·赖斯·伯勒斯, loc. 1239-1241




068《星船伞兵》作者:[美] 罗伯特·海因莱因, young@nenu




发生这种事本来会使你停下来,好好想想为什么当初竟然选择参军。只不过我太忙
了,没时间为任何事停顿。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 191-192




失败。一个人可以向一个孩子灌输知识,但他无法教会他怎样思考。"
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 330-331




(这一部分使我吃了一惊。我过去一直认为一个服役期就是两年,大家都是这么说的。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 427-428




杜波司先生早就在历史和道德哲学课上给我们分析了就职誓言,
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 434-435




Notes: 1) contradictory




杜波司先生早就在历史和道德哲学课上给我们分析了就职誓言,让我们逐句学习
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 434-435




他说你不笨,只是太无知了,
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 491-491




兹穆中士后来说过,一群人要比单独一个人来得弱,除非他们受过训练,配合默契
(他是对的).例如,
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 583-584




但是,把新兵营搞得这么惨,有这个必要吗?对这个问题,我只能这么说:下一次
我不得不空降作战时,我希望我的战 友是从考利营或是与它相当的西伯利亚营地
毕业的。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 686-687




在某些情况下,用氢弹去攻击敌人的一个城市就像用斧子砍孩子的屁股一样愚蠢。
战争不仅仅是暴力和杀戮这么简单。 战争是为达到某种目的而使用的有控制的暴
力。   战争的目的就是以武力支持政府的决定,绝不是为杀人而杀人……   而
是为了让他做你想让他做的事。不是杀戮……而是有控制、有目的的暴力。选择暴力
的方式不是你我所能决定的。士兵的任务不是决定何时、何地、以何种方 式——以
及为什么——作战。那是政府高层和将军们的事。政府高层决定为什么、何种程度。
将军们从他们那儿接受任务,决定时间、地点和手段。我 们提供暴力,其他人——
他们称之为'聪明的老家伙们'——实施控制。这就是战争的形式。这是我能提供的最
好的答案。如果你还不满意,我可以给 你提供一个面见团长的机会。如果他同样
不能使你信服——你就回家去,当个老百姓!因为在这种情况下,你永远不会成为一
名士兵。"
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 779-787




比如,如果我们两个恰好在剧院或商店里碰上,只要你对我的军衔表现出应有的尊
敬,我所拥有的扇你耳光的权利不会 比你拥有的扇我耳光的权利更多。但是在军
务中,规则就完全不同
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 863-865




我可以打碎你的下巴,为此我会向我自己的上司做出必要解释。但是我不必向你解释。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 867-868




当然,值勤教官也可以哄你,说'亲爱的,乖',或是问你今早是否想在床上用早餐
——如果我们能抽出一个教官专门 当你的保姆的话。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 873-874




我们不能恨他们,也不能喜欢他们。我们必须教导他们。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 1024-1024




一个人可以想像的最崇高的生活方式,就是将他自己的身体挡在荒芜的战场和可爱
的家园之间。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 1136-1137




仅有的记录留在了最重要的地方。   脑子里。你永远不会忘了它。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 1352-1353




漫长繁忙的军旅生涯可能仅仅只有几个小时和敌人面对面作战,剩下的都是训练、
准备、出发——随后返回、调养修 整,准备进入下一个循环,并且在战斗间隙不断
练习,练习,练习。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 1842-1843




足足五十三件装甲动力服需要检查、维护,战斗间歇必须检修,更不用提武器和特
殊装备了。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 1849-1849




在我们的系统之下,任何一个投票者或是政府官员都是一个这样的人,他已经通过
志愿参加的艰苦服役表明,他能够将 集体的利益摆在个人之前。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 2310-2312




如果希福中尉不能推荐提升他为中士,那么他就不会继续把他留在这个排,他会以
最快速度把他赶出这艘船。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 2741-2742




我们已经有一位副排长去了军官学校,本来就少一个中士,我自己人手都不够,当
然有理由拒绝他们的要求。"
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 2749-2750




这是一场野蛮的战争,小子,而且你的自己人会从你这儿把人偷走,如果你不好好
看着他们的话。"
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 2750-2751




意外总是会发生的。"
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 2768-2768




不要告诉他你和我商量过了——是你给他下命令。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 2779-2779




着:"方位检查。你的方位是275,十二英里。"   "长官,你的是96,十二英
里。"   "很接近。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 2909-2910




躺下。这是命令。准备睡觉……一……二……三——乔尼!"   "上尉,如果你允许的
话,我想先检查一下听地器,之后再休息,如果你坚持的话。我自己情愿醒着。我
——"   布莱基在我耳边大笑。"听着,小子,你已经睡了一个小时又十分钟了。"
  "长官?"   "看一下时间。"我看了——感到自己真蠢透了。"你清醒了吗,小
子?"
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 3092-3096




由于它们仍然关押着我方的被俘人员,我们无法在克兰达斯上使用超新星炸弹——必
须空降,降落到地面,
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 3373-3374




海因莱因这部作品不仅流露出了作者对天赋人权的质疑,更描绘了一个只有被训练
成一名军人才能成为"公民"的"理 想社会",
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 3429-3431




他并不是一个法西斯分子,而是一个深受进化论哲学影响的自由意志论者。
young@nenu, 068《星船伞兵》作者:[美] 罗伯特·海因莱因, loc. 3433-3434




084《霸主的影子》作者:[美] 奥森·斯科特·卡德, gift.young@gmail




没有什么能够训练你在行星表面生活,除了生活在那里。
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 158-158




她对竞争没有特殊的兴趣,因为她总是一开始就已经假设了它,如果很重要的话,
她会找到取胜的办法的。   
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 160-161




就象安德曾经说过的,绝大多数胜利来自及时扩大你的敌人愚蠢的错误,而不是由
于你自己的计划有任何特别卓越的地 方。
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 1361-1362




我正在把我的生命放到他手重。而且现在我发现了他的整个生活中从来没有和任何
人建立诚实的关系。"
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 1934-1935




如果你只把你认为我需要的资料给我的话,"比恩说,"那么我的建议的只能由告诉
你你已经知道的事情来组成,而我 现在最好就回家去。"
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 2450-2451




他们都是全数返回。有受伤但是没有死亡。有的时候任务失败,但是没有人死亡。
  "这是个失败的任务,"比恩说,"但是让你赢得他们的信赖。当你们看到那比
我们预期危险得多的时候,是需要降低目标的,然后告诉他们你比目前的目标更
重视他们的生命。稍后,当你没有选择只能让他们去冒险的时候,他们会知道那是
因为这次是值得去死的。他们知道你不会象孩子对待糖果或者垃圾那 样浪费他们的。"
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 3895-3899




在所有的时候,萨里文都几乎不能提供任何帮助而且有的时候显示出直接的敌意。
但是比恩接纳了萨里文,委托他进行 指挥,鼓励人们帮助萨里文学习他们能够做
的。所有的时候,比恩从没有把萨里文视为一个下属或者累赘,而是宁可把他看作
未来的上级官员。
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 3901-3904




因为他搂着你,就象是情人,"比恩说。"站在那里,枪口对着你的头,他用带着爱
的心境抓住你。我认为他打算在他 带你登机之前吻你。他希望我看到。"   "她
根本不会让他吻她的,"弗拉密厌恶地说。   但是佩查看着比恩注视的眼睛,眼
中的泪水给出了比弗拉密的勇敢的言语更真实的回答。她已经让阿契里斯吻过她
了。和颇克一样。   "他给你打了印记,"比恩说。"他爱你。你有比他更高的力
量。在他不再需要你作为人质避免我杀掉他以后,你就不会再活下去了。"
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 4362-4366




他要为自己的行为负责,而不是别人。即使那些拯救了他的生命的人。"
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 4368-4369




你从他那里自由了。你现在的每分每秒每天每科都比比去设想如果他听到你的话会
怎么对付你,也不用去象他可能看的 时候你该怎么做。他现在唯一能够伤害你的
方法,就是你在心里一直监视着他。"
gift.young@gmail, 084《霸主的影子》作者:[美] 奥森·斯科特·卡德, loc. 4371-4373




106《银河系公民》 罗伯特·海因莱恩, 罗伯特·海因莱恩




老爹一直认为聪明人不可能觉得受了侮辱,因为真理不可能被侮辱,如果侮辱本身
是一种谬误,那就更不值得为它光火 了。
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 114, loc. 1746-1747




你们为这种空前的自由所付出的代价却是……自由本身。不,我不是说谜语,我是
说,'同胞'这个整体的自由是以牺 牲你们每个人的个人自由为代价换来
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 134, loc. 2048-2049




自由是个难以放弃的习惯
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 136, loc. 2072-2072




电脑停止运行以后,杰里放下手头工作,看到索比还对着控制面板发愣……不一会
儿,索比又活跃起来,想根据最后出 现的数据再计算一次。杰里一只手搭在他肩
上,说:"打完了,索比。"
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 142, loc. 2168-2169




可他不愿坐办公室,所以主动降级——两次降为上校——好直接指挥飞船。
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 176, loc. 2699-2700




那就更好了。现在您可以让他上船当兵,以后当您搞清楚他该去什么地方时,您就
会发现他的年龄搞错了……必须纠 正。给他发些工资,打发他回到自己的星球上去
就是了。"   布里斯比眨了眨眼睛,说:"财务官,你们这些当出纳的都这么狡
猾吗?"
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 182, loc. 2776-2779




你没有当过巴斯利姆上校的部下。那个人,让他高兴很容易,只要你做到百分之百
的完美就行。
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 198, loc. 3030-3031




这天夜里,索比好像听见了族长奶奶严厉的声音:"——再想一想!要是你不懂它是
什么意思,而文件在付诸法律以后 又可以生效执行,那就不要签字!不管这份文
件看上去有多大好处,你也不能签。过分懒惰或者过分急切都可以毁掉一个贸易商。"
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 221, loc. 3378-3381




所以,如果有人来要求去做某项工作,我们是不会立即同意的。相反,我们要求他
做到叫他干什么,他就必须去干什 么。我们只是使用他,往往会让他干到直至做
不动为止。
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 254, loc. 3882-3883




某个衣冠楚楚的应声虫就会站出来大放厥词,他会说,奴隶制也不见得那么坏,因
为许多人如果不用承担自由民的责 任,他们的生活其实比承担责任幸福得多。
罗伯特·海因莱恩, 106《银河系公民》 罗伯特·海因莱恩, pg. 256, loc. 3921-3922




177《猫的摇篮》作者:[美] 库特·冯尼古特, young@nenu




父亲看了一会儿那圈绳子,然后就用手指翻弄着花样。他翻出来的花样叫'猫的摇篮'。
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 89-90




自然界中有那么多货真价实的游戏,我何苦自找烦恼去玩那些人们生造出来的呢?
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 94-95




他拒人于千里之外,因为他从来对人们就没有兴趣。
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 112-113




他说:"要是我能够主管费利克斯的话,那么我现在就准备去主管火山、湖水、
鸟、鼠的迁徙了。那个人是一种自然力 量。人们无法左右他。"
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 177-179




我问布里德博士有多少人在研究实验室工作,他说:"七百人,但是真正从事研究
工作的不到一百人。另外六百人都是 打杂的,而我是头号的打杂工。"
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 263-265




霍尼克博士常说,一个科学家要是不能向一个八岁的孩子讲明他在干什么的话,那
他就是一个江湖骗子。"
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 277-278




人们提出的建议铺天盖地,但从事纯研究工作的人对此不屑一顾。他脑子里装潢了
自己的计划,而我们需要的正是这种 工作作风。"
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 337-338




他们提出各种各样的乌七八糟的计划,到现在还是这样。这些计划的唯一不足在于
目前我们所具备的知识还不能将它们 付诸实践。
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 340-341




费利克斯的奇迹就在于——我衷心希望你能把这一点写进你的书里——他永远能把陈旧
的难题当成全新的奥秘去探 索。"
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 354-355




他注视着遮掩洞穴的水帘。他对我说;"我所理解的成熟,就是要有自知之明。"
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 1547-1548




他常说,他永远也不做他劝别人做的事情,因为他知道那是没有价值的。
young@nenu, 177《猫的摇篮》作者:[美] 库特·冯尼古特, loc. 2142-2143




Kindle Paperwhite 用户指南(第 2 版), 亚马逊




如需标注下一页内容,请拖动手指到屏幕右下角以翻页。您可以一直拖动对多个页
面进行标注。 如需标注上一页内容,请拖动手指到屏幕左上角以翻页。您可以一
直拖动对多个页面进行标注。 选取标注后,如需编辑标注范围,请点击并按住标
注内容起止两端的手柄,然后拖动到理想位置。除个别语言外,仅当您选择两个或
以上字词时才会显示手柄。
亚马逊, Kindle Paperwhite 用户指南(第 2 版), loc. 575-584




Red Mars, Kim Stanley Robinson




In games there are rules, but in life the rules keep changing.
Kim Stanley Robinson, Red Mars, loc. 7001-7002




"Can you determine where?"
Kim Stanley Robinson, Red Mars, loc. 8548-8548




"No, there's too many unknowns.
Kim Stanley Robinson, Red Mars, loc. 8549-8549




Black ice would melt by day, then freeze at night. Sublimate and
precipitate.
Kim Stanley Robinson, Red Mars, loc. 8944-8944




it might have been anywhere anytime, and their tired faces bright with
some collective success, or merely with the pleasure of eating together—
while just outside their chamber the broken world roared, and rockfall
could annihilate them at any instant. And it came to her that the
pleasure and stability of dining rooms had always occurred against such
a backdrop, against the catastrophic background of universal chaos; such
moments of calm were things as fragile and transitory as soap bubbles,
destined to burst almost as soon as they blew into existence.
Kim Stanley Robinson, Red Mars, loc. 9061-9065




the+coquest+of+happiness, ninily@gmail.com




I have aimed only at putting together some remarks which are inspired by
what I hope is common sense.
ninily@gmail.com, the+coquest+of+happiness, loc. 4-4




of the devotion of their mothers.
ninily@gmail.com, the+coquest+of+happiness, loc. 16-17




Notes: 1) judged by other persons.




Gradually I learned to be indifferent to myself and my deficiencies; I
came to centre my attention increasingly upon external objects: the
state of the world, various branches of knowledge, individuals for whom
I felt affection.
ninily@gmail.com, the+coquest+of+happiness, loc. 42-43




与鬼为邻, 萨苏




榻榻米的面是草编的席子,如果穿普通的鞋上去很容易磨坏。
萨苏, 与鬼为邻, pg. 24, loc. 367-367




您看,这就是日本人的性格,他有事儿从来不当面锣对面鼓,专在背后瞎嘀咕。
萨苏, 与鬼为邻, pg. 28, loc. 429-430




这是因为日本过去幼儿园和小学都有一个他们视为传统我们看作陋习的习惯,那就
是孩子中谁强大,谁就称王称霸,老 师不管。这种做法日本人认为是培养孩子竞
争力和具备等级观念的精神。
萨苏, 与鬼为邻, pg. 49, loc. 745-746




越经常锻炼身体好的,对氧气的消耗越多,所以在缺氧环境下剧烈运动,往往是还
没等出缺氧反应,就趴下了。
萨苏, 与鬼为邻, pg. 82, loc. 1256-1257




天下最喜欢穿制式服装的大概也就是日本人了。无论是铁路的乘务员还是指挥交通
的保安,日本人只要一穿上制服就会 两眼发亮,自信十足。仿佛制服代表着他们
属于一个高贵的阶层。也许,对日本人来说,面子和习惯的重要性,是远远胜过舒
适和自由的。
萨苏, 与鬼为邻, pg. 92, loc. 1407-1409




就是认为雇你干活你对我就有一定程度的人身依附关系,
萨苏, 与鬼为邻, pg. 117, loc. 1789-1789




比起欧美政坛的巨头们更多地在经济上寻求共同利益,从封建时代直接进入资本主
义社会的日本更加重视姻亲和裙带的 效力
萨苏, 与鬼为邻, pg. 137, loc. 2097-2098




因为随着国际交流的发展,大家都明白日本人说话就是习惯这样模模糊糊,藏头露
尾的,
萨苏, 与鬼为邻, pg. 157, loc. 2403-2404




大江大海1949(插图版), 龙应台




有一种人,愈是在风雨如晦的时候,心灵愈是宁静。他能穿透所有的混乱和颠倒,
找到最核心的价值,然后就笃定地坚 持。
龙应台, 大江大海1949(插图版), loc. 81




夹边沟记事, 杨显惠




夹边沟的右派到了明水以后,仅仅劳动了半个多月,垦荒工作就停止了。作为最下
层的一个劳教犯,我不知道停止垦荒 是否有着更为深层的原因:可能是整个国家
经济生活当时进入了困难时期,经济政策有所调整;也可能是因为仓促上马,条件
不成熟,上级撤销了这个 项目。
杨显惠, 夹边沟记事, pg. 407, loc. 5810-5813




每一次合并,我都发现,是那些总也躺着不动的人在搬家,还有些个别的能偷能抢
或者家庭支援颇丰的人,而那些成天 在田野上挖野菜捋草籽的人早早倒毙了,被
人用被褥或者毯子卷起来抬出去了。因为他的胃从野菜和草籽里摄取的营养补充不
了他劳作而失去的热量。
杨显惠, 夹边沟记事, pg. 455, loc. 6493-6495




我说,把裤子和衬衣都换了吧。你还想得远——明年夏天!你先想眼前怎么活过去吧。
杨显惠, 夹边沟记事, pg. 456, loc. 6514-6515




技术的本质:技术是什么,它是如何进化的, 布莱恩•阿瑟




然而,作为人类,我们实际上不应该和技术如此紧密地结合,而是应该和其他什么
东西融合得更为紧密,那就是自然。 在最深的层次上,人的存在应该和自然,和
我们最初的环境,以及最初使我们成为人的那些条件相融合。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 30, loc. 338-340




如今机器被用来生产机器了,同时它又变成了以后同类机器的父母。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 36, loc. 426-426




技术的建构不仅来自已有技术的组合,还来自于对自然现象的捕捉和征服。在
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 43, loc. 529-530




三个基本原理
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 44, loc. 544-544




技术(所有的技术)都是某种组合。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 44, loc. 544-545




其次,技术的每个组件自身也是缩微的技术。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 44, loc. 545-546




第三条基本原理是,所有的技术都会利用或开发某种(通常是几种)效应
(effect)或现象 (phenomenon)。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 44, loc. 547-548




技术组件的集成或组合是为了满足它们的目的。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 44, loc. 550-550




Notes: 1) motivation 2) motivation , difference between the evolution
of technology and biology.




技术组件的集成或组合是为了满足它们的目的。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 44, loc. 550-550




定义:技术是实现人的目的的一种手段。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 49, loc. 605-605




技术是实践和元器件(components)的集成(assemblage)。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 49, loc. 610-611




将技术作为在某种文化中得以运用的装置和工程实践的集合。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 50, loc. 613-614




装置和流程的确可以归于相同的范畴。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 53, loc. 663-663




技术总是围绕着一个中心概念或原理,如"事物的方法"或者一个可行的核心理念来组建
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 55, loc. 696-696




各个子程序就处于不断的相互联系之中,它们不停地"对话",就如同喷气发动机那样。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 57, loc. 724-725




技术的分解随着市场的细分而加剧。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 60, loc. 767-768




一开始的一系列松散地串在一起的零件如果被用得足够多,就会"凝固"成独立的单
元。技术模块随着时间的推移会变 成标准组件。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 61, loc. 772-773




一个技术绝少是固定不变的。它会不断地变换结构,当目的改变时,它会去适应并
进行重新的配置,
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 66, loc. 851-852




在真实世界中,技术是高度可重构的,它们是流动的东西,永远不会静止,永远不
会完结,永远不会完美。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 66, loc. 854-855




现象是技术赖以产生的必不可少的源泉。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 73, loc. 929-930




Notes: 1) theory , principle .




这个例子阐明了如何应用现象的组合去达到目的。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 75, loc. 960-961




在实践中,现象在能够被应用于技术之前,一定要被"驯服",并且作好恰当的准
备。天然形式的现象很难被利用,需 要巧妙的诱导,它们才能令人满意地运作起
来。它们可能只在很有限的条件下起作用,所以一定要建立正确的支持方式才能使
它们为预设的目的服务。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 75, loc. 972-974




货币系统利用了这样一种现象:只要我们相信其他人会相信一种交换媒介是有价值
的,而且这种信任会在未来持续下 去,我们就会相信这个系统。需要注意的是,
这里的现象不是物理性的,而是行为性的,
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 83, loc. 1076-1078




物理现象。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 83, loc. 1079-1079




目的性系统(purposed systems)。
布莱恩•阿瑟, 技术的本质:技术是什么,它是如何进化的, pg. 84, loc. 1090-1090




李银河说性, 李银河




弗罗姆在讲到欧洲中世纪时说:那时,"个人"尚未形成。
李银河, 李银河说性, pg. 14, loc. 212-213




道德保守派一直没有放弃纯净社会道德使之尽量趋向于禁欲主义的目标。他们顺应
(或者说利用)社会中一部分人的保 守道德观念,压制另一部分人的权利一殊不
知按照《宪法》中关于言论自由和出版自由的规定,后者的道德观念也有加以表达的
合法权利。用行政处罚 的办法钳制后者的言论自由和出版自由,用社会中一部分
人的道德标准来压制另一部分人的言论自由权利,严格地说属于违宪的行为,是应
当认真加以 检讨的。 在中国一部分人群进人现代化的都市生活之后,个人主义渐
渐得到应有的地位,也渐渐在人们的观念中与自私自利的利己主义区分开来。人们
越来越多地意识到自己 的权利,一些"准群体"也渐渐形成为"利益群体"(达伦多
夫语),他们希望运用自己的权利,实现自己的利益,争取和保护自己作为一个人
的一般 权利和作为某个利益群体的成员的特殊权利。
李银河, 李银河说性, pg. 15, loc. 218-225




福柯说过:性是没有任何一个权力能够忽视的资源。
李银河, 李银河说性, pg. 18, loc. 268-268




权力能够通过对性的控制来控制人,
李银河, 李银河说性, pg. 18, loc. 269-269




在制定与法律不一致的团体规定时,必须有绝对必要的理由。换言之,在剥夺团体
成员的某项法定权利时,必须有充分 的理由。
李银河, 李银河说性, pg. 25, loc. 380-381




如果有一个社会或时期,人们会以某种知识为耻(无论是关于什么事物的知识),
那么对这个社会或时期人们的理性就 不能抱有太大的希望。对这样一个社会最精
辟的概括只能是乔治奥威尔在他那本闻名遐迩的预言体小说《1984》中所说的:"战
争即和平;自由即 奴役;无知即力量。"
李银河, 李银河说性, pg. 35, loc. 526-528




中国的禁欲主义并无任何宗教色彩,而是一种世俗的出于意识形态纯洁化意图的禁
欲主义。
李银河, 李银河说性, pg. 38, loc. 579-580




现代技术结束了对大批人工劳力的需求,原子能和技术的进步结束了对以数量取胜
的军队的需求,人口除了消费之外不 再有任何积极意义。
李银河, 李银河说性, pg. 42, loc. 638-639




新右派的口号是"保卫家庭"。在美国,它与宗教结盟,将不同的利益群体联合到了
同一个易于理解的政治目标下。这 是一个与"放纵"同样有力却全然对立的政治符
号,它在政治党派动员力量逐渐减弱的西方政治中提供了一个有力的图腾。
李银河, 李银河说性, pg. 43, loc. 650-652




以及一种更普遍的恐惧:破坏了维系男性和女性关系的传统纽带。
李银河, 李银河说性, pg. 43, loc. 660-660




罗素提出:性应当被视同为食,是人的自然需求,对它的约束应当只因为保护健康
的原因,其他不必。
李银河, 李银河说性, pg. 45, loc. 680-681




正是因为我们一向按照传统的规范来看问题,想不到越过这些规范,原来对事情还
町以有另一种看法。
李银河, 李银河说性, pg. 48, loc. 729-730




我们甚至都不会觉得在这个问题上是权力让我们这样想的,而误以为这完全是自己
经过独立思考得出的看法。
李银河, 李银河说性, pg. 48, loc. 736-737




我们甚至都不会觉得在这个问题上是权力让我们这样想的,而误以为这完全是自己
经过独立思考得出的看法。福柯的深 刻之处就在于此,是他告诉我们:不是别人
剥夺了我们的自由,是我们自愿被剥夺了自由思想的权利,权力就是这样来建构我
们的主体的。如果我们要 想证明自己还是有独立思考能力的,就让我们在习俗的
思路之外自由地思考一下:
李银河, 李银河说性, pg. 48, loc. 736-739




一位公民有权选择自己的道德标准。如果他选择了一种不道德的生活方式,社会道
德可以批评他,教育他,却没有权利 用《刑法》去处罚他。
李银河, 李银河说性, pg. 56, loc. 856-857




一位公民有权选择自己的道德标准。如果他选择了一种不道德的生活方式,社会道
德可以批评他,教育他,却没有权利 用《刑法》去处罚他。用法律的形式来处罚公
民的不道德行为,这是一种立法上的道德清高主义。
李银河, 李银河说性, pg. 56, loc. 856-857




Notes: 1) ?




不应当逮捕性工作者,把她们关进监狱,因为她们是性工作者,她们的行为方式没
有侵犯任何人,她们的行为没有受害 者;
李银河, 李银河说性, pg. 60, loc. 915-917




仅仅因为爱情而締结的婚姻才是道德的婚姻,只有继续保持爱情的婚姻才是道德的
婚姻。
李银河, 李银河说性, pg. 63, loc. 964-964




当儿童说他是或不是遭到暴力侵害时,
李银河, 李银河说性, pg. 67, loc. 1023-1023




Notes: 1) what about being cheated?




压制并不仅仅来自国家,而且来自我们自己。
李银河, 李银河说性, pg. 80, loc. 1218-1219




福柯之所以如此,有他的理由,其中最主要的在我看来是他对身份政治所持的否定
态度。他从没有隐瞒过自己的性倾 向,但是对于身份政治却存有极大的疑虑。
李银河, 李银河说性, pg. 91, loc. 1390-1392




福柯顺理成章地反对同性恋身份政治中所倡导的"现身"(被形象地称做"走出壁
橱")的行动,因为这个行动的前提 恰恰是:每个人都有一个固定的性身份,而且
这种身份是应当公开的。他在1982年一次与同性恋行动主义分子的会谈中指出:我
们和我们自己的关 系,不是认同的关系,而应该是变异的关系、创造的关系、革
新的关系。保持同一,实在令人腻烦。"
李银河, 李银河说性, pg. 93, loc. 1411-1414




Notes: 1) processing & private




这是一种忽视占有和忠诚观念的关系。
李银河, 李银河说性, pg. 94, loc. 1440-1441




萨德的哲学就是沿着这一思路发展的。他的创新之处在于将上述唯物主义原则的伦
理含义推向其逻辑结论。
李银河, 李银河说性, pg. 106, loc. 1619-1620




权力将受害者变为非人,
李银河, 李银河说性, pg. 107, loc. 1629-1629




例如萨特的存在主义是用政治的形式取代上帝,以便使人类能够有秩序地生活在一起。
李银河, 李银河说性, pg. 107, loc. 1639-1640




科学真理被当时的人们视为一种潜伏在事物内部的本质,只等聪明的人们把它发现
出来,公之于众。这种对自然科学的 看法也浸染着社会科学的研究,
李银河, 李银河说性, pg. 117, loc. 1783-1785




性学的抱负不仅是要发现、描述和分析性现象背后所隐藏的自然规律,而且由于人
类的性行为是一种社会行为,性学还 想发现性现象背后的社会规律。
李银河, 李银河说性, pg. 117, loc. 1785-1786




每一个人和所有的人的生活方式都可以是好的。
李银河, 李银河说性, pg. 120, loc. 1832-1833




他们认为,就连生理性别也是社会建构的。
李银河, 李银河说性, pg. 127, loc. 1943-1943




在同与异的问题上,强调差异曾是法西斯主义把人分为等级的基础,差异实际上就
是"不如"。
李银河, 李银河说性, pg. 127, loc. 1943-1944




第三,将女性客体化。在男性事务和交易中将女性用做客体。限制和阻碍女性的创
造力;不让女性接触社会知识和文化 成就的很多领域;否定女性的性;将男性的
性强加于女性;命令和剥削女性的劳动力,控制其产品;肉体上限制女性,阻止女
性的活动;文化意识形态 和信息贬低女性,贬低女性的角色、工作、产品和社会
环境;符号设计暗含对女性的贬低;社会结构安排从社会最高权力机制排斥女性。
李银河, 李银河说性, pg. 129, loc. 1965-1968




当他们想促使女性屈从于男性时,却是用"保护家庭"的口号出现。
李银河, 李银河说性, pg. 129, loc. 1974-1975




中国自1978年以来,把家庭重新变成经济、社会和道德的重心,重新强调一夫一妻
制关系,为女性的家内角色增加 荣誉感。
李银河, 李银河说性, pg. 130, loc. 1988-1990




她们被告知:家庭才是她们基本的社会责任所在。
李银河, 李银河说性, pg. 130, loc. 1990-1991




在整饬自己的身体时,女性的地位变得低下、客体化。在许多男权制文化中,女性
只有在外貌、姿态、动作、声音、身 材、精神和价值方面达到所谓女性标准,才
能受到喜爱、雇佣、提拔,才能被选中,任何拒绝和反抗就都要付出昂贵的代价。
在这里,女性受到男性统 治的惩罚和规训,这惩罚就包括:失去建立异性亲密关
系的机会,不能过上体面的生活。
李银河, 李银河说性, pg. 137, loc. 2094-2098




对于从弱势群体如女性的角度对影视作品提出批评,人们还不大习惯。这就是左芳
的文章引起较大反响的原因之一。在 我看来,这样的批评太少了,应当再多一些
才好。
李银河, 李银河说性, pg. 145, loc. 2211-2212




也许有人会说:对于真实的描述一定要有个正确的态度,对于男人压迫女人的关
系,如果你是反对的就可以写;如果你 是赞成的就不可以写。
李银河, 李银河说性, pg. 146, loc. 2228-2229




这种要求的荒谬是显而易见的一一它将取消所有的文艺创作。
李银河, 李银河说性, pg. 146, loc. 2232-2232




综上所述,我认为,左芳的批评在文学批评上毫无意义(它不属于文学批评的范
畴),它是一个女性主义的政治批标。
李银河, 李银河说性, pg. 146, loc. 2236-2237




这一选择之所以具有政治性,是因为她们认为,男女两性之间的关系在本质上具有
政治性,含有权力和统治的成分。由 于女同性恋拒绝了两性关系而选择了女性,
她就蔑视了现存的政治体制。在当时的政治潮流中,许多政治性的女同性恋并不一
定是性倾向上的女同性 恋。
李银河, 李银河说性, pg. 153, loc. 2339-2341




Notes: 1) smoke in poland.




对于进步男性运动的支持程度有阶层的差异,越是处于社会上层的人越倾向于接受
进步男性运动,而越是处于社会底层 的人观念越传统。
李银河, 李银河说性, pg. 158, loc. 2415-2416




一个有趣的例证就是:我国的离婚法曾以感情破裂为离婚的充分理由,它因此被世
界其他文化中的人视为最前卫的标 准。
李银河, 李银河说性, pg. 161, loc. 2463-2464




爱情是人心的一种感觉,如果它到了需要道德来约束的程度,它还存在吗?
李银河, 李银河说性, pg. 162, loc. 2467-2468




其实,在我看来,在情与性的关系上,男女两性在行为和观念上的差异,根本不可
以用生理的原因来解释,而只能用社 会对男女两性的塑造和建构来解释。说得更
明白些,男女两性的这种差异,是丁百年来男权文化的产物,是男女两性双重道德
标准的产物。
李银河, 李银河说性, pg. 164, loc. 2499-2501




据社会史家研究,在前现代的欧洲,大部分婚姻都是契约式的,是以经济条件而不
是以彼此间的性魅力为基础的。
李银河, 李银河说性, pg. 168, loc. 2558-2559




但是实际上,在婚姻中,激情最终变成柔情、亲情。
李银河, 李银河说性, pg. 169, loc. 2573-2574




罗辑思维, 罗振宇




美国为了扶植日本,给了日本大量的军工订单。扶植日本难道是为了让日本再崛起
吗?不是的,而是要把日本纳入由美 国主导的国际经济体系当中,要让日本人围
着美国的贸易指挥棒打转转,这就是政治影响力。
罗振宇, 罗辑思维, pg. 40, loc. 613-615




而且他的生活技能在这个城市能销售掉,他被嵌入到这个城市的大系统当中,他已
经无法抽离等等
罗振宇, 罗辑思维, pg. 43, loc. 653-653




很多媒体人之间的交流,不是开个专业会议就算成功交流。有时候只是打个招呼、
发个短信,或者闲聊几句,这些非正 式交流都意味着个人是否嵌入到中国的传媒
系统当中,能否感受到大家的气味,并跟上大家共同成长的步伐。从北京回到保
定,可能生活质量一下提升 好几档
罗振宇, 罗辑思维, pg. 44, loc. 667-670




回到著名哲学家维特根斯坦[2]的一句名言,他说:"凡是能够言说的世界,就是我
们能够掌握的世界。如果不能言 说出来,也就是不能把它符号化、简化的世界,
我们只好保持沉默。"
罗振宇, 罗辑思维, pg. 64, loc. 981-983




我们的成长过程就是不断构建自我和外界,也就是"我们"和"他们"之间边界的过程。
罗振宇, 罗辑思维, pg. 66, loc. 1002-1003




所以历史上真正想明白的人,不会把组织内的身份看得那么重。
罗振宇, 罗辑思维, pg. 81, loc. 1242-1242




税收制度成本也是全社会每一个公民非常沉重的负担。李稻葵先生讲:"不要说什
么所得税制就一定是大势所趋,时代 不同了。其实美国人也在酝酿改革这种税
制,而我们中国人为什么非要去学习这种税制呢?"
罗振宇, 罗辑思维, pg. 95, loc. 1452-1453




流民图
罗振宇, 罗辑思维, pg. 134, loc. 2048-2048




到最后,获取权力中心者的意见偏向只有靠这种纯文艺的方法,而不是诉诸于真相
的方法,
罗振宇, 罗辑思维, pg. 134, loc. 2049-2050




但是后来的历史学家分析说,正是因为德国人觉得必有一战,那么就按照必有一战
的方式去做这样的战争准备,而你的 所有准备让对手看到又害怕,然后对手也做
相应的战争准备,那么就真的必有一战。这有一个名词,叫"自我实现的预言"。
罗振宇, 罗辑思维, pg. 183, loc. 2805-2807




所以,达尔文真正赶下神坛的压根儿不是什么上帝,他其实是把人类生存的一切信
心和信念都全部毁掉了,我们以为我 们这一代人都在奔向美好,我们不断地改善
自己的命运,试图掌控自己的命运,而达尔文就在旁边冷笑,用他那英国式散文优
雅的笔调冷笑说道:"你 们什么都不懂,大自然的剪刀在决定你们,你们自己什么
都决定不了。"这是达尔文进化论真正的精髓。
罗振宇, 罗辑思维, pg. 196, loc. 3000-3003




"我非常爱你,但是你这套理论把上帝算是彻底给得罪了,我嫁给你之后,我们相
爱一生之后在天堂还能重逢吗?"
罗振宇, 罗辑思维, pg. 197, loc. 3017-3018




举个简单的例子,如果你们家小区门口只有一个摄像头,那它只能够扫描到你进去
的那一刹那。可是如果这个摄像头一 直在,覆盖掉所有的时间节点之后,那产生
的是什么效应呢?就是你的轨迹就被监控了。
罗振宇, 罗辑思维, pg. 218, loc. 3339-3340




举个简单的例子,如果你们家小区门口只有一个摄像头,那它只能够扫描到你进去
的那一刹那。可是如果这个摄像头一 直在,覆盖掉所有的时间节点之后,那产生
的是什么效应呢?
罗振宇, 罗辑思维, pg. 218, loc. 3339-3340




Notes: 1) 1+1>2
new math mode.




其实我就抓住两点:第一点,只要你对这个女孩好,它就会像一颗种子一样,一定
会在她心里种下点儿什么,虽然她此 时可能是拒绝,可能是给你冷脸看,但不要
紧,只要种子种下了,将来就有发芽的机会。
罗振宇, 罗辑思维, pg. 236, loc. 3618-3620




只要种子种下了,将来就有发芽的机会。
罗振宇, 罗辑思维, pg. 237, loc. 3619-3620




Notes: 1) responsibility of education.




群星,我的归宿 (阿尔弗雷德·贝斯特, Alfred Bester)




柯达——未来柯达家族的首领。
Alfred Bester), 群星,我的归宿 (阿尔弗雷德·贝斯特, pg. 42, loc. 631-631




"通过意志和想法。"普瑞斯特恩重复,"派尔只能依靠精神致动学引爆。它的能量
只能依靠思想来解放。它必须被想 着要爆炸,而且这思想直接作用于它。那是惟
一的方法。"
Alfred Bester), 群星,我的归宿 (阿尔弗雷德·贝斯特, pg. 227, loc. 3474-3475




Notes: 1) the same to stone effect.




西方哲学史[英文版]罗素.文字版, gift.young@gmail




"modern"
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7931-7931




diminishing authority of the Church, and the increasing authority of
science.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7932-7932




State has less influence on the opinions of philosophers than the Church
had in the Middle Ages.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7936-7936




the Copernican theory in 1543; but this theory did not become
influential until it was taken up and improved by Kepler and Galileo in
the seventeenth century.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7947-7949




intellectual, not governmental.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7950-7951




as liable to modification.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7956-7956




The triumph of science has been mainly due to its practical utility, and
there has been an attempt to divorce this aspect from that of theory,
thus making science more and more a technique, and less and less a
doctrine as to the nature of the world.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7962-7964




it had not the same anarchic character.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7972-7972




Notes: 1) political makes philosophy




Modern philosophy, however, has retained, for the most part, an
individualistic and subjective character.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7972-7973




individualistic and subjective character.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7973-7973




Scientific technique requires the co-operation of a large number of
individuals organized under a single direction. Its tendency, therefore,
is against anarchism and even individualism, since it demands a
well-knit social structure.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7983-7985




The modern world, at present, seems to be moving towards a solution like
that of antiquity: a social order imposed by force, representing the
will of the powerful rather than the hopes of common men.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 7993-7995




To understand the Renaissance, it is necessary first to review briefly
the political condition of Italy.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8004-8005




Notes: 1) social outter environment .




The game of power politics
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8073-8073




It must be said that Italy would inevitably have lost its importance,
owing to the discovery of America and the Cape route to the East; but
the collapse could have been less catastrophic, and less destructive of
the quality of Italian civilization.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8080-8082




The Renaissance
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8082-8082




essential preliminaries
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8082-8082




it encouraged the habit of regarding intellectual activity as a
delightful social adventure, not a cloistered meditation aiming at the
preservation of a predetermined orthodoxy.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8086-8087




were too busy acquiring knowledge of antiquity to be able to produce
anything original in philosophy.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8092-8092




Consequently Italian unorthodoxy, in the Renaissance, was purely
intellectual, and did not lead to schism, or to any attempt to create a
popular movement away from the Church.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8112-8113




The first effect of emancipation from the Church was not to make men
think rationally, but to open their minds to every sort of antique nonsense.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8116-8117




Notes: 1) variety of Russel .




A stable social system is necessary, but every stable system hitherto
devised has hampered the development of exceptional artistic or
intellectual merit.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8131-8132




How much murder and anarchy are we prepared to endure for the sake of
great achievements such as those of the Renaissance?
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8132-8132




Notes: 1) individual vs. colectivity




Savonarola dominated Florence; his miserable end evidently made a great
impression on Machiavelli, for he remarks that "all armed prophets have
conquered and unarmed ones failed,"
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8144-8145




Notes: 1) personal experience . the importance of individual .




which was that of the sack of Rome by the troops of Charles V. This year
may be reckoned also that in which the Italian Renaissance died.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8154-8155




Admiration of skill, and of the actions that lead to fame, was very
great at the time of the Renaissance.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8188-8189




The Neoplatonists, the Arabs, and the Schoolmen took a passionate
interest in the metaphysics of Plato and Aristotle, but none at all in
their political writings, because the political systems of the age of
City States had completely disappeared.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8217-8219




In what follows, I am expressing not my own opinions, but opinions which
are explicitly or implicitly his.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8228-8229




Notes: 1) haha . he never emphasized this.




stability,
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8231-8231




We must concede to Machiavelli that this was an important element in the
growing power of the Church during the eleventh, twelfth, and thirteenth
centuries, as well as in the success of the Reformation in the sixteenth
century.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8242-8244




This northern Renaissance was in many ways very different from that of
Italy. It was not anarchic or amoral; on the contrary, it was associated
with piety and public virtue.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8268-8270




Notes: 1) why




according to which true religion comes from the heart, not the head, and
all elaborate theology is superfluous. This point of view has become
increasingly common, and is now pretty generally accepted among Protestants.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8330-8331




exaggerating Augustine, rejected. Luther replied savagely,
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8357-8357




In 1534, the king got Parliament to pass the Act of Supremacy, declaring
him, not the Pope, the head of the Church of England.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8375-8375




In 1534, the king got Parliament to pass the Act of Supremacy, declaring
him, not the Pope, the head of the Church of England. Under this act an
Oath of Supremacy was exacted, which More refused to take; this was only
misprision of treason, which did not involve the death penalty. It was
proved, however, by very dubious testimony, that he had said Parliament
could not make Henry head of the Church; on this evidence he was
convicted of high treason, and beheaded. His property was given to
Princess Elizabeth, who kept it to the day of her death. More is
remembered almost solely on account of his Utopia ( 1518). Utopia is an
island in the southern hemisphere, where everything is done in the best
possible way. It has been visited accidentally by a sailor named Raphael
Hythloday, who spent five years there, and only returned to Europe to
make its wise institutions known. In
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8375-8381




More is remembered almost solely on account of his Utopia ( 1518).
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8378-8379




More is remembered almost solely on account of his Utopia ( 1518).
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8378-8379




Diversity is essential to happiness, and in Utopia there is hardly any.
This is a defect of all planned social systems, actual as well as imaginary.
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8433-8434




Notes: 1) diversity or passion or emotion?




Roughly speaking, the Reformation was German, the Counter-Reformation
Spanish; the wars of religion were at the same time wars between Spain
and its enemies,
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8439-8440




Luther, Calvin, and Loyola. All three, intellectually, are medieval in
philosophy,
gift.young@gmail, 西方哲学史[英文版]罗素.文字版, loc. 8446-8447

20140803

我的显示器闪啊闪的

说来话长,故事得从2011年1月讲起,三年半以前。

X200笔记本到手没有多久,有一阵我成天拿它打文明。某天半夜,没打完困得不
行,扣上盖让它休眠,我也倒头就睡。第二天开盖,操作系统不启 动了。

X200没带光驱,我花了三天时间试了一堆方法,试图恢复win7,把文明和进度整回
来。后来似乎还试图安装来着,未果。三天没装上操作系 统,这对于一个学计算
机的实在是重大刺激,我断然决定舍弃win7,奔向Linux的怀抱。Ubuntu的安装简
单又快捷,记得不到1个小 时,全完事了。

背景交待:我外接了一个显示器,和笔记本间用VGA线联接。显示器支持数字口,
但是笔记本不支持。

过了又一段时间,某天,我在emacs黑背景下,发现显示器闪啊闪的。上面有斜
纹,就像电视信号不好,刷一下来了,刷一下又没了。为此,我把 emacs背景调成
不那么黑,不好使。

又试了各种招,也都无效。我怀疑VGA线有问题,但是同一根线插在另一台笔记本
上,没有问题。

请教包师弟,他说VGA的上限就是1920*1024,应该是到达极限了,容易受到噪音的
干扰。

我俩讨论了一堆方案:在VGA外面接个模拟转数字的口,然后用数字线接外接显示
器;再买个VGA卡,PCMCIA的那种插笔记本里...想想 VGA的上限带来的问题,真是
令人绝望。

网上一堆贴子,也没啥好招。

有一天,我甚至发现了个神奇的现象:把VGA线接在没问题的笔记本上,然后拔下
来接在X200上,闪烁会消失一会儿。我讲给包师弟,他说:神 啦啊。

就这样,三年左右过去了。我天天就被闪着,有时感到要晕车,有时觉得可能会诱
发癫痫,有时啪地把笔记本扣上,连活也不想干了。

有一天 (2014年4月22日) 在办公室准备讨论的环境。我有个比较强迫症的习惯,
乐意在大家都没来的时候先把现场布置好,分频器接上,多个显示器连接好,大家
来了就开始讨论。正接着 线,突然一闪念,我居然从来没有试过换一根VGA线。

带了一根线回家,换上。电闪雷鸣的刺激啊--一、点、也、不、闪、烁。换成原来
的线,闪。把原来的线换在办公室上,不闪。

这根线,就只有接在我的X200和DELL显示器上,才闪。估计是奇葩成对出现,才能
把二者的弱点表现出来吧。这条线与别的显示器、别的显卡 配合,不闪烁;这个
笔记本与别的线配合,也不闪烁。

这是我在整机器的时候,持续时间最长的一次故障处理。中间经历了多次尝试,就
只是为了不让它闪。我升级过ubuntu操作系统,试图更换和升 级显卡驱动,整得
我原来的个人设置大半不好使了。花了不少时间,还得忍受升级后的糟糕体验。说
起来,我见过的几乎所有软件,升级后的体验都远 不如原版的,只有帝国时代除外。

而真正的解决,是三年多以后,换了那根在别的笔记本上测试没问题的VGA线。所
以,对比法不总是有效。只有当对比得到负面结论的时候,才是正 确的,而对比
得到的正面结论,只能增加我们的信心,却不能作为定论。

为了解决闪烁,我升级了操作系统,升级了emacs,不得不变更个人设置。虽然换
了VGA线以后,闪烁现象消失了,但是想回到未升级前的 Ubuntu,那个版本却已经
不再被支持了。伴随着成长而刻在我们身上的印迹,早就失去了当初的意义,甚至
它们在最初就是没有意义的,却万难 去除,成为我们的一部分。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift] =======================

20140731

如果遇到实验室事故

如果遇到实验室事故

作为一个原来学计算机和电子的学生,我跟化学有千丝万缕的联系,所以亲眼和耳
闻了一些事故。

我亲眼见过的事故一共也就只有一次,影响范围不过几米。中午跟导师正谈着,传
来崩地一声。我们俩人同时冲到门口,我离门还近一些。犹豫了一 下,我说:你先。

这是个经典的笑话,一般讲到这里大家就哈哈大笑了。不过,故事的真正寓意并不
是我这个学生在危险当前的时候把导师推前面去了。在事故和危险面 前,应该服
从专家,并且现场只应产生一个专家。导师是专家,因此他应该走在前面。

那次是有人糊涂,倒残液的时候把酸液倒到碱液的瓶子里了。反应生成热和气体,
积累到中午没人的时候终于炸开瓶子。瓶子稀碎,门上玻璃裂了一 块。旁边一个
人也没有,这是万幸。

有的事故中,不服从专家后果就严重多了。在网上看来的一个事故。似乎是浓硫酸
喷了,在车间里。负责的小伙喊大家把衣服全脱了,马上淋水。被喷 的人里有女
同志害羞,跑到卫生间去了。这点路程导致的结果很严重,我忘记了是深度烧伤还
是把命搭进去了。

学生在"下实验室"以前,有的会问"要注意些啥啊",有的胆大就啥也不问。照例,
我要重复一遍我导师当初对我说的:什么也不要碰。

"什么也不要碰",有个反面例子。关同学曾经编程的时候,没事就摆弄一个玻璃
管。包师弟有一次语气淡然,"小关,你知道那玻璃管里装过什么 吗?"十有八九
是氰化物。学计算机的思维是,他们怎么能这么干呢,这玩意怎么能到处乱扔呢?
问题是,世界就是这个样的,他们乱扔以后还能为后 果负责呢,就像闯红灯的司
机,但是痛苦还是你来承担。

"什么也不要碰",遵循这一原则,我在用氮气吹灰的时候都是请别的同学帮我开气
阀。有不止一个同学跟我说过,这个玩意用起来特别简单,这么一 拧,再那么一
拧,你自己也能整。我每次都老老实实地请求,你替我整吧,而且别走,一会再替
我关上。有同学问过,这有什么难的。我的回答是,最 可怕的是,万一有一天我
觉得自己学会了,把纯氧的气阀当氮气拧开了可咋整。纯氧气体喷在柴火上,能直
接起火,还可能导致爆炸。而我,没有判别 氧气和氮气的能力。有同学可能说
了,那有什么难的,根据气瓶的颜色不就行吗?说起来简单,我见过绿瓶子,按说
应该装氯气的,有的组在里面装了 氮气--这也许没啥,不过既然有这种糊涂的
人,天知道他们不会把氯气装氮气瓶子里。

气体装反这种低级错误可能让人认为根本不会发生吧。不过我导师就是活生生的受
害者。他每到冬天的时候就卡卡咳,跟个小老头似的。那是因为他年 轻的时候做
实验,正做着,有人顺手把通风厨关了,然后导师的呼吸道就被酸性气体腐蚀了。
医生说,永久不能治愈,只能缓解。所以说,猪一样的队 友总是存在的,小心在
意这种事,要由自己负责。不懂的东西,或者不确定懂的东西,啥也别碰是第一原则。

不仅别碰任何东西,如果旁边人做实验,最好也离远点。某组有个师姐,被旁边师
弟的氨水溅在脸上一滴。大多数同学学过初高中化学,对氨水就只知 道气味难
闻,就是夏天厕所那味,可能并不了解它具有腐蚀性。幸亏溅到的氨水不多,而且
在下巴上。其实,下巴离眼睛又能有多远呢。

这是看得见的危险,真正的危险是你看不到的,特别是你以为你能看到。福尔摩斯
说,人只能看到自己想看到的东西。当年想在棱镜上刻标记,想到了 氢氟酸。高
中化学学的,氢氟酸能腐蚀玻璃。我跟导师说,怎么在玻璃上整上蜡,然后怎么拿
小刀划个印,怎么把氢氟酸滴在印上,或者把玻璃泡在氢 氟酸里。导师听完想了
一会儿,说,那个谁某某某,你去整吧,小杨不行。我还不服呐,心想,氢氟酸不
是弱酸吗,这有啥?多年以后,读到网上那个 著名的化学事故大集锦的贴子,上
面说,氢氟酸会透过皮肤进入人体,取代骨中的钙,而且到处游走,因为化学性质
如此活泼,因此无法清除。那块皮 肤永远都是烂了的样子,永远也治不好。医学
之发达,令很多人错觉这种小病不算啥,这个错觉忽视了两个事实,一是这种病医
学也很少见到,二是浓 度不同,化学性质差别可能极大。而咱们平时的生活中,
根本见不到高浓度的危险品,因此可能觉得实验和生产上也是这样。

实验和生产上完全不一样,因此遵循指令和原则非常重要,可能性命相关。一次去
钢厂,被要求戴安全帽,穿长袖工作服。钢厂里那个热啊,烤得慌。 同行有个小
伙汗流浃背的,就把安全帽摘了,马上遭到同行大哥的呵斥。该小伙后来把长袖衣
服脱了,从车间出来以后,露出来的胳膊像在海边晒过半 个月,感觉毛都掉光
了。我这才明白为什么非得要求穿长袖。鉴于学计算机的同学没有遇到过啥危险,
胆子大,我后来强烈建议上级,这个项目咱们还 是别做吧。

刚刚听到某师弟说,他的一个同学的典故。500L什么釜蒸馏减压爆了,把这同学伤
了。那天,他破天荒穿了防爆服和面具,防爆服被炸得一条条 的,胸口和胳膊也
被玻璃划了。如果没有防护,后果可想而知。

成天做实验,难保没有某天头脑发昏的时候,所以总是按原则、规章来做就安全多
了。导师还讲过吉大当年有个哥们就有头脑不清的时候,高压瓶上的 气阀滞住
了,把气瓶放倒了蹲前面拿扳子砸。怎么砸也觉得不对劲,后来就骑气瓶上砸。砸
着砸着气阀飞出去,嵌对面墙里了。如果当时他还蹲前面, 估计就被气阀打穿了。

就是万分小心,自己也有发昏到连规章都忘了的时候,就是万分小心,也有队友变
成猪连累自己的时候。如果一旦遇到实验室事故,导师对此也有指导 原则。导师
说,如果看到着火了,你什么也不要管,不要想着救同学救设备救资料的,什么也
没有人值钱;如果着了,一看灭不掉,跑。

所以,我记住了实验室安全两条原则:啥也别碰;遇到着火,跑。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift] =======================

20140629

geek青年的状态机,查表,纯C语言实现

geek青年的状态机,查表,纯C语言实现

1. 问题的提出,抽象

建一,不止是他,不少人跟我讨论过这样的问题:如何才能保证在需求变更、扩充
的情况下,程序的主体部分不动呢?

这是一个非常深刻和艰难的问题。在进入实质讨论之前,我们还得先明确什么是"
主体",就是我们不希望动的那一部分是什么。事实上,没有什么" 主体",这是被
我们主观划分的,代码中有一部分是不动的,另一部分是动的。而追求永恒(一劳
永逸?) ,是我们的天性吧。

我们希望实现一段程序,换一些东西,游戏就由 双截龙 变成了 超级玛丽,再换
一点东西,就变成了 魂斗罗。只要招些美工,再招些脚本作者,所有的程序员就
可以--解雇了。

这看起来不太现实,那么我们来看一段类似的,但是更现实一点的。我们希望实现
一段程序,在每轮迭代/循环中,这段代码都能完成我们需要做的任 务,虽然这些
任务可能在每轮迭代中有所不同。在数学归纳法,在 sigma 符号的的周围,甚至
在积分符号的周围,都在发生这样的事情。

这些梦想或者已经实现的技术,都基于"抽象"。我们试图找到在不同的情境 (动
作、需求) 下那些相同的部分。我们对具体事件做抽象,并且期待抽象的结果适用
于所有的具体的事例。这样,原来的很多工作就成为 应用抽象的理论 的过程,不
再需要创造力,因此也不再能吸引我们。那么,我们再对抽象的结果继续抽象,直
到形而上。

2. 状态机的引擎

引擎,就是上文中提到的开发出一个游戏,然后能衍生出很多游戏的技术。代码的
核心部分、流程部分不会改变,只有数据 (甚至可以在外部文件中) 才随需求的变
化而变化。

状态机,也可以用引擎实现。实现这一目标的技术也存在已久,就是查表。查表的
经典案例是 求三角函数 (在一定精度下),常量时间复杂度的解决方案 就是查
表。事先把三角函数在不同度数下的值都求出来,放在hash表 (?) 里。你要查哪
个度数,我就去查哪个度数对应的函数值。

在这个案例里,查表的那段代码,不随三角函数由sin变成cos或tan而发生任何变
化。这就是引擎,被查的表就是数据。

3. 接口

我们期待的接口跟前一篇普通青年中的完全一样。在主函数中调用 void
state_change(enum message m) 向状态机传递消息,用 test.in 作为测试用例。
主函数还知道,一共就这样几种消息:

enum message { play, stop, forward, backward, record, pause };

4. 状态迁移表

在讲如何查表前,我们先设计 表 本身。我们期待表格能够描述 状态迁移 中的要
素。记得么,一共4个。 (1) 当前状态, (2)当前消息, (3)将迁移到的状态,
(4)在状态迁移中的动作。我们期待能用表格,而不是如普通青年一文中用代码
(switch-case)的方式描述。因为我们相 信,改表格比改代码容易。

状态迁移表与状态迁移图完全等价。

表格看起来像下面这样,如果想像划上竖线效果更佳。。

1 struct transition fsm[transition_num] = {
2 /* current_state, message/event, next_state*/
3 {s_play, stop, s_stop},
4 {s_play, pause, s_pause},
5 {s_pause, pause, s_play},
6 {s_pause, stop, s_stop},
7 {s_stop, forward, s_forward},
8 {s_stop, play, s_play},
9 {s_stop, backward, s_backward},
10 {s_stop, record, s_record},
11 {s_forward, stop, s_stop},
12 {s_backward, stop, s_stop},
13 {s_record, stop, s_stop} };

每一行,都是一组状态迁移的匹配。第一列是当前状态,第二列是接收到的消息,
第三列是在此种情况下将迁移到的状态。每增加一个迁移的匹配,我 们就按这样
的规则增加一行。这规定了状态机迁移中4要素里的3条,剩下的那条是在迁移中的
动作,后面再介绍。

当然,为了遵循C语言的语法,我们需要在此前就定义 (1) 状态枚举、 (2) 消息
枚举,还有 (3) 迁移的结构体。如下。

1 enum state { s_stop='s', s_play='p', s_forward='f', s_backward='b',
s_pause='_', s_record='r' };
2 enum message { play, stop, forward, backward, record, pause };
3
4 struct transition {
5 enum state current;
6 enum message m;
7 enum state next;
8 };

我们还需要定义一共多少条迁移规则,是为了我们还没有写出来的代码准备的,不
过此处已经用到,所以定义如下。

1 #define transition_num 11

5. 迁移时的动作

我们希望把迁移时的动作放在每个状态到达之处。即,每个状态都可以有一些"副
作用"。这与迁移时的动作是等价的,证明略去。如果仅想在迁移时 写代码,也可
以利用这种方法实现。

状态机的动作 表格如下:

1 struct state_action state_action_map[state_num] = {
2 {s_stop, do_stop},
3 {s_play, do_play},
4 {s_forward, do_forward},
5 {s_backward, do_backward},
6 {s_pause, do_pause},
7 {s_record, do_record}};

每一行,是一个状态对应的动作。第一列是状态,第二列是对应的动作。这样,每
增加一个状态 (如果它有对应动作),就在这里加入一行;动作对应的函数需要实
现,后面会介绍。

类似于状态迁移图,为了遵循C语言语法,我们需要在此前声明如下。

1 #define state_num 6
2 typedef void (*action_foo)() ;
3
4 enum state { s_stop='s', s_play='p', s_forward='f', s_backward='b',
s_pause='_', s_record='r' };
5
6 /* action starts */
7 void do_stop() {printf ("I am in state stop and should doing something
here.\n");}
8 void do_play() {printf ("I am in state play and should doing something
here.\n");}
9 void do_forward() {printf ("I am in state forward and should doing
something here.\n");}
10 void do_backward() {printf ("I am in state backward and should doing
something here.\n");}
11 void do_pause() {printf ("I am in state pause and should doing
something here.\n");}
12 void do_record() {printf ("I am in state record and should doing
something here.\n");}
13
14 struct state_action {
15 enum state m_state;
16 action_foo foo;
17 };

第1行,是状态的数量。第2行和第7行到第12行,以及第16行,使用了函数指针(指
向函数的指针,一个指针,它的基类型是一个函数),用于 表示要执行的动作。第
4行,是状态枚举。第14行到第17行,是 状态-动作 对应关系的结构体。

第7行至第12行,是动作的执行部分。当增加的状态需要动作时,程序员要在此处
加入一个函数,它遵守第2行的签名约定。

6. 引擎

如果表格的数据结构已定,代码就好写了。我们的引擎代码的核心部分是查表,遍
历表格,找到与当前状态、当前消息匹配的将迁移到的状态。

我们还是自顶向下,假设 查表部分已经完成,为主函数提供与 普通青年一文相同
的接口--而内部实现是不同的。

1 void state_change(enum message m)
2 {
3 static state = s_stop;
4 enum state next;
5 int index = 0;
6
7 index = lookup_transition(state, m, fsm);
8 if(index!=ERR)
9 {
10 state = fsm[index].next;
11 lookup_action(state, state_action_map)();
12 }
13 return;
14 }

如第3行如示,初始状态是 停止。在第7行,我们引用了一个尚未写好的函
数,lookup_transition。虽然函数还不存在,不过我们能猜出来它的作用,查
表,找到 当前状态是 state,当前消息是 m 时所对应的表项的下标 index。fsm
参数是为了可能有多个状态迁移表设计的,此处可以略过。

当查找到 index 以后,且 index 不是 ERR (没找到),就可以令 下一个状态为
state = fsm[index].next,见第10行。

以上,完成了状态迁移4要素中的3个:当前状态、当前消息、将迁移到的状态。

第11行,完成的功能是执行与状态对应的动作。这里又用到函数指针。在代码
lookup_action(state, state_action_map)() 中,lookup_action(state,
state_action_map) 用于找到状态 state 对应的动作,后面的 "()",是因为这个
动作是一个函数指针,可以使用这样的方式执行这个指针指向的函数。与上文中的
fsm 参数类似,state_action_map是为了应对有多个状态-动作表的情况,这里可
以略过。

无论数据 (状态迁移、状态-动作)如何变化,引擎代码都不会变化。所以,甚至可
以把引擎放在静态或动态链接库里,或者把数据放在外部文件里,运行时再载入,
从而提 高部署时的灵活性。

7. 查表

刚刚用到的两个未定义的函数 lookup_transition(state, m, fsm) 和
lookup_action(state, state_action_map) 都使用了查表的方法。

代码如下。可以看出,二者的结构非常类似,遍历数组 (for循环) ,找到符合条
件的元素 (if判断),然后把该元素的索引或者该元素结构体的某个成员返回。

ERR 和 ACTION_NOT_FOUND 是用来容错的,万一表格有误,没有查到匹配的项。

1 int const ERR = -1;
2 int lookup_transition (enum state s, enum message m, struct transition
* t)
3 {
4 int ret=ERR;
5 int i;
6 for(i=0;i<transition_num;++i)
7 {
8 if(t[i].current == s && t[i].m == m)
9 {
10 ret = i;
11 }
12 }
13 return ret;
14 }
15
16 action_foo ACTION_NOT_FOUND = NULL;
17 action_foo lookup_action(enum state s, struct state_action* a)
18 {
19 action_foo ret = ACTION_NOT_FOUND;
20 int i=0;
21 for (i=0;i<state_num;++i)
22 {
23 if(s == a[i].m_state)
24 {
25 ret = a[i].foo;
26 }
27 }
28 return ret;
29 }

8. 总结

geek青年,从接口上看,与普通青年并无不同。甚至在情况相对简单 (状态少、状
态迁移种类少) 的时候,代码量比普通青年还有不如。那么,geek青年的长处在哪
里呢?

古人云:沧海横流方显英雄本色。古人又云:大丈夫山崩于前不变色,海啸于后不
动容。

geek青年的长处在于,他始终如一,无论遇到的情形是多么糟糕多么恶劣,他始终
没有变化。这个世界上,总需要一些因素,一些承诺,不随任何 易变的感情、任
何旁人不能承受的痛苦或诱惑而变化,稳定地坚持。这才能让我们对这个世界保留
一丝希望,未来才能够和值得期待。

这一篇和上一篇的代码在这里 [http://download.csdn.net/detail/younggift
/7569627]。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]
=======================

普通青年的状态机,纯C语言

我们第一次接触到状态机,是在数字电路课程里。计数器、串行奇偶检校、 检验
三个1连续出现的报错电路 等,都需要状态机作为模型。实现这些功能的电路,与
状态机的状态转换图、状态转换表都是等价的。

后来,我们再接触状态机,是在编译原理课程里。状态机用于描述与正则表达式匹
配的字符串。

再后来,我们在GUI界面设计中,需要设置一些控件在某些条件下 禁用,某些条件
下使能,某些条件下打个对号。这也可以用状态机模型来控制。

1. 不要写成 消息响应/事件处理

状态机和消息响应都是 双层 switch-case 结构。不同的是,状态机的外层是状
态,内层是消息;消息响应外层是消息,内层是状态。

有的同学会说,那又有多大的区别呢?代码只是外在形式而非本质,它所反应的是
你对模型的理解,或者说,对于问题,你使用了哪种模型。

消息响应适合于这样的情形:有很多种消息,对于同一种消息,你的程序总是给出
同一种反应。打个比方,你女朋友喜欢吃冰淇淋,任何时候你给她 买,她都高
兴,或者转怒为喜,或者转悲为喜,总之,会置心情为"喜"。这种情形,适合用消
息响应解决。

而状态机适合于另一种情形,你的程序是"有状态的",它在不同的情况 (状态)
下,会对同一消息做出不同的反应。状态,是一种数据,但是它影响流程的行为。
按面向对象的观点,数据与流程间的这种高内聚关系,非常适合用 类 来实现。这
是题外话,我们回到女朋友和冰淇淋间的关系。你女朋友可能并非在任何情况下吃
了冰淇淋都高兴,比如刚刚吃完十个八个的时候...这与她当前的状 态有关。

状态机中,我们需要掌握的核心的数据是:当前状态,当前消息,将迁移到的状
态,在迁移中发生的动作。

在状态机代码之前,请先看一段消息响应机制,VC生成的win32api代码大抵如此。
我们随便找来一段片断看看:

1 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
LPARAM lParam)
2 {
3 int wmId, wmEvent;
4 PAINTSTRUCT ps;
5 HDC hdc;
6 switch (message)
7 {
8 case WM_COMMAND:
9 wmId = LOWORD(wParam);
10 wmEvent = HIWORD(wParam);
11 case ID_MENU_GO: .... break;
12 case IDM_ABOUT: .... break;
13 case IDM_EXIT: .... break;
14 default:
15 return DefWindowProc(hWnd, message, wParam, lParam);
16 }
17 break;
18 case WM_PAINT: .... break;
19 case WM_DESTROY: ... break;
20 case WM_KEYDOWN: ... break;
21 default: return DefWindowProc(hWnd, message, wParam, lParam);
22 }
23 return 0;
24 }

第6行开始到第22行结束,对每个消息给出一个响应。没错,win32api也把这个传
进来的东西称为 message。这是很典型的适合消息响应机制的情形,程序对于相同
的消息,处理的方法总是相同的。

我们常常错误地把状态机写成了消息响应,消息这部分处理得不错,但是,由于没
有很好地记录和迁移状态,写起来容易把自己写糊涂了。无他,用错 了工具。拿
螺丝刀打孔,不是工具差,而是工程师选错了工具。

2. 状态机实例,录音机

实例得是相对简单的,不然我们很容易淹没在细节之中,没有足够精力去关注状态
机本身的机制了。假设我们仿真一台录音机...

我们先假设你见过录音机。录音机是一种曾经先进的设备,有一个或两个"卡",可
以放进磁带。"卡"前面有几个按键,这几个按键上的标识因为图 形简单且示意性
强,现在还在广泛使用。它们分别是 播放 > 、暂停 || 、快进 >> 、快退<< 、
录音 O 、停止 []。

这几个按键之间是有一定的"互斥关系"的。比如当播放键按下时,我们不应该能把
快进键按下。当然,淘气的同学可能这样干过,我们会听到"咔咔"的声音,然后是
家长骂败家玩艺的声音。可以就"互斥关系"开始写程序,但是我觉得这样有点 麻烦。

我们认为,这种"互斥关系"是因为录音机是"有状态的"。所以,我们打算用状态机
来实现。状态转换图是这样的。请读图的时候关注这四点:当前 状态,当前消
息,将迁移到的状态,在迁移中发生的动作 (本例中没有) 。

digraph state
{
graph [ nodesep=1.2];
rankdir = LR;

播放 -> 暂停 [label="按下 || "];
暂停 -> 播放 [label="按下 || "];
暂停 -> 停止 [label="按下 []"];
停止 -> 播放 [label="按下 >"];
播放 -> 停止 [label="按下 []"];
停止 -> 快退 [label="按下 <<"];
停止 -> 快进 [label="按下 >>"];
快进 -> 停止 [label="按下 []"];
快退 -> 停止 [label="按下 []"];
停止 -> 录音 [label="按下 O"];
录音 -> 停止 [label="按下 []"];
}

备注:我实在想不起来 暂停 和 停止 之间的关系了,似乎是这样的,又似乎不
是。反正大概是那么个意思,不影响对状态机的理解,就这么地吧。

接下来是C代码实现。

3. 接口 及 测试

看到以下代码,有的同学会说,你这不就是主程序么,为什么要把小标题叫做接
口。因为,它规定了我们的状态机函数将是什么样子的。

1 enum message { play, stop, forward, backward, record, pause };
2
3 int main(int argc, char *argv[])
4 {
5 char c=0x00;
6 while(1)
7 {
8 c = getchar();
9 switch(c)
10 {
11 case ' ': state_change(pause); break;
12 case 'p': state_change(play); break;
13 case 'r': state_change(record); break;
14 case 's': state_change(stop); break;
15 case 'f': state_change(forward); break;
16 case 'b': state_change(backward); break;
17 case 'q': return EXIT_SUCCESS;
18 }
19 }
20 return EXIT_SUCCESS;
21 }

上述代码规定了,状态机迁移函数的原型/签名是 void state_change(enum
message m)。

测试的时候,我们这样做:./state < test.intest.in的内容是"psfsbspq",测
试时期待看到输出的状态迁移过程。之所以这样做,而不是每次从控制台手动输
入,是因为每 次测试的内容都应该是相同的--相同的输入,程序有相同的反应--
可重现性。或者说,DRY原则。

一个非常值得我们注意的问题。在上述接口中,我们看不到"状态"。事实上,我们
将会定义:

enum state { s_stop, s_play, s_forward, s_backward, s_pause, s_record };

但是,接口以外的代码,是 *不应该* (是不应该,不是 不必要,是一定不要) 知
道状态的,既不应该知道当前状态,也不应该知道将要迁移到哪个状态,也不应该
知道在迁移过程中应该做什么动作。如果接口以外的代码知道了这些,就侵入了
状态机的隐私,子系统的边界就模糊了。而契约的首要任务就是规定边界,规定国
家与个人、个人与个人、个人与集体的边界。

这一原则,早在195X年,软件工程刚刚开始的时候就确立了,是最初确立的原则,
即 信息隐藏。后面的原则,都是它的儿子孙子。有个比喻讲过这个道理。当你在
超市出口付款的时候,你会自己把钱从钱夹里拿出来递给售货员,而不会转过身去
对她 说,"在我屁股兜里,你自己掏吧,别忘了把零钱放回来。"这既增加了假设
--你极端信任她,也增加了她的责任。

接口,最主要的任务就是为了明确责任,把责任分布在子系统边界两侧。其次才是
规定调用的方法,即边界长什么样。

4. 状态迁移

以下是状态机的代码片断。

1 enum state { s_stop, s_play, s_forward, s_backward, s_pause, s_record};
2 void state_change(enum message m)
3 {
4 static enum state s=s_stop;
5 switch (s)
6 {
7 case s_play:
8 if(m==stop)
9 {
10 s = s_stop;
11 printf("stop.\n");
12 }
13 else if (m==pause)
14 {
15 s = s_pause;
16 printf("pause");
17 }
18 break;

我们还是要关注那四个关键点: (1) 当前状态, (2) 当前消息, (3) 将迁移到
哪个状态, (4) 迁移中会做哪些动作。

(1) 当前状态必然是第1行的枚举类型中的一个。我们初始化状态为 停止,见第4行。

在第5行到第7行,我们的双重 switch-case 的外层 按当前状态分类,如下。
5 switch (s)
6 {
7 case s_play:
下面还有很多 case,第1行的枚举类型中的每一个状态,都有一个 case。

(2) 当前消息。如果当前状态是第7行了,那么,当前消息由双层 switch-case的
内层,即第8行,第13行的 if...else if 来响应。

(3) 将迁移到哪个状态。在 s_play状态 (第7行) 接收到 stop 消息 (第8行)的
话,将迁移到 s_stop 状态,即第10行。

(4) 在迁移中会做哪些动作,如果还是这个状态这个消息,会做的动作是 第11
行,打印一段文字描述接下来的状态。

在函数 void state_change(enum message m) 中,维护了当前状态,规定了在某
种状态下-接收到某个消息,会迁移到哪个状态,在状态迁移中做哪些动作。

主函数在调用state_change时,是通过这一接口,向状态机发送一个消息;由状态
机对这个消息做出适合自己当前状态的响应--状态迁 移、动作。主函数所看到
的,是一个多彩或善变的女人,而她之所以对同一消息做出不同响应的原因,在她
的内心深入保留着,那是她不会对你说的状 态,以及状态迁移中的波澜壮阔。即
使表面上善变的状态机,也是可以理解和预测的,如果她对你倘开心扉,允许你一
行一行把附录A中的代码读完, 了解所有的 switch-case,了解所有的状态下她将
会如何响应每一种消息。

附录A 完整代码

1 #include <stdlib.h>
2 #include <stdio.h>
3
4
5 //recorder
6
7 enum state { s_stop, s_play, s_forward, s_backward, s_pause, s_record };
8 enum message { play, stop, forward, backward, record, pause };
9
10
11 void state_change(enum message m)
12 {
13 static enum state s=s_stop;
14 switch (s)
15 {
16 case s_play:
17 if(m==stop)
18 {
19 s = s_stop;
20 printf("stop.\n");
21 }
22 else if (m==pause)
23 {
24 s = s_pause;
25 printf("pause");
26 }
27 break;
28 case s_pause:
29 if(m==pause)
30 {
31 s = s_play;
32 printf("play.\n");
33 }
34 else if(m==stop)
35 {
36 s = s_stop;
37 printf("stop.\n");
38 }
39 break;
40 case s_stop:
41 if(m==play)
42 {
43 s = s_play;
44 printf("play.\n");
45 }
46 if(m==backward)
47 {
48 s = s_backward;
49 printf("backward.\n");
50 }
51 if(m==forward)
52 {
53 s = s_forward;
54 printf("forward.\n");
55 }
56 if(m==record)
57 {
58 s = s_record;
59 printf("record.\n");
60 }
61 break;
62 case s_forward:
63 if(m==stop)
64 {
65 s = s_stop;
66 printf("stop.\n");
67 }
68 break;
69 case s_backward:
70 if(m==stop)
71 {
72 s = s_stop;
73 printf("stop.\n");
74 }
75 break;
76 case s_record:
77 if(m==stop)
78 {
79 s = s_stop;
80 printf("stop.\n");
81 }
82 break;
83
84
85 }
86
87 }
88
89
90 int main(int argc, char *argv[])
91 {
92 char c=0x00;
93 while(1)
94 {
95 c = getchar();
96 switch(c)
97 {
98 case ' ': state_change(pause); break;
99 case 'p': state_change(play); break;
100 case 'r': state_change(record); break;
101 case 's': state_change(stop); break;
102 case 'f': state_change(forward); break;
103 case 'b': state_change(backward); break;
104 case 'q': return EXIT_SUCCESS;
105 }
106
107
108 }
109
110 return EXIT_SUCCESS;
111 }

附录B 状态图源代码 in graphviz

digraph state
{
graph [ nodesep=1.2];
rankdir = LR;

播放 -> 暂停 [label="按下 || "];
暂停 -> 播放 [label="按下 || "];
暂停 -> 停止 [label="按下 []"];
停止 -> 播放 [label="按下 >"];
播放 -> 停止 [label="按下 []"];
停止 -> 快退 [label="按下 <<"];
停止 -> 快进 [label="按下 >>"];
快进 -> 停止 [label="按下 []"];
快退 -> 停止 [label="按下 []"];
停止 -> 录音 [label="按下 O"];
录音 -> 停止 [label="按下 []"];

}



--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]
=======================

读卡器的状态机, python实现 (图又更新)

读卡器的状态机, python实现

1. 问题的提出,及状态机简介

ZHUMAO整了个门禁用的读卡器,比以前那种更好,不需要发指令就能读,只要刷
卡,读卡器就向串口上写数据。仍然是串口的,还是韦根协 议。"刷卡就向上写"
避免了轮询读卡器,效率更高,代码也容易了。不过,也造成一个问题。下发命
令,然后轮询读的模式下,如果在串口线上只有 一个读卡器,不需要对输入的数
据特别检验和处理,接收到的数据一定是对的,按协议读入多少个字符,然后按偏
移量取有效的部分就行了。"刷卡就 向上写"的模式,需要保证对齐,必须从刷卡
后产生的第一字符开始读,读到最后一个,要避免从中间读起。如果中间出现了噪
音之类的干扰,由于不 能下发指令要求对齐 (或者开始读),就再也找不到开始位
置,数据全乱。

解决这个问题的方案是状态机。

状态机是个著名的数学模型,在数字电路、编译原理、面向对象系统分析与设计、
形式语言与状态机中都有提及。状态机效率很不错,刘典同学曾经用 状态机模型
写程序参加过CSDN上的比赛,检验IP地址是否合法,获得过第二名。状态机描述问
题清晰,邦哥和亮哥曾经用状态机重写安卓程序的 界面部分,把原来"朴素"方法
可能出现的BUG都去除了。

正确的思考方法是有效的工具,在解决问题中非常重要。人类通常不懈于在猛兽面
前炫耀速度和力量,而是使用弩箭和陷阱。所以,工具对于成为人类 多么重要。
所以,不用状态机,而依靠单纯的智力是多么愚蠢。

2. 问题描述

该型号读卡器上传的数据看起来是这样的,以十六进制表示,"02 XX XX XX XX 0d
0a 03"。其中的4个 XX 表示卡号,是我们感兴趣的部分。其余的部分必须匹配,
才能说明读卡器正常工作,卡号有效。

主程序准备写成这样:

1 if __name__ == '__main__':
2 s = state_machine()
3 t = serial.Serial('COM3')
4 while True:
5 str = s.go(t)
6 print str.upper()

其中第2行初始化一个 state_machine 类的实例。在第4行开始的循环中,每次迭
代都调用 s.go(t),把串口传给状态机。在状态机的go中,读很多次串口,直到遇
到一次完整有效的卡号,作为返回值,在第6行中打印出来。这个串口t如果改为
在 state_machine 的构造函数中,会更好一些。不过我对python语法不熟,大部
分时间都消耗在查语法手册上了,头昏眼花,当时就写成了这样。

当然,真实程序的目标不是打印卡号,而是用卡号作为检索条件,去数据库里查询
和更新一些数据。

3. 状态机

开始写状态机,才发现 python 居然没有 switch-case。可见我对语法得多么不熟。

根据 "02 XX XX XX XX 0d 0a 03",状态转换如图所示。状态图中的关键是,我在
哪个状态,接收到哪个消息后,会迁移到哪个状态,在迁移的过程中,会做哪些动作。


4. 状态机代码解释

代码如附录A所示。state_machine 是一个类 类型。

成员变量,count用于计数,在0x00状态 (及0x02状态) 一共接收了几个字符,这
些字符应该添加到有效卡号 (成员变量ret)的末尾。成员变量state,是当前的状
态,其初始状态是 0xff。

成员函数 str2hex 是从zhumao那里抄来的,用于把二进制转为十六进制文本形式。

成员函数 go (self, ser) 是核心部分。每次调用 go,它会从串口读入一个字
符,并把这个字符作为发送给状态机的消息;状态机根据自己的 (1) 当前状态
state,然后再根据这个 (2) 消息 c,判定 (3)应该迁移到哪个状态, (4)应在迁
移时做哪些动作。

在状态图中,(1) 当前状态标记为椭圆,箭尾所指的那个椭圆, (2)消息,标记为
线上的文字,斜线"/"左边的部分, (3)应该迁移到哪个状态,箭头所指的那个椭
圆, (4)在迁移时做的动作,标记为线上的文字,斜线右边的部分。

成员函数 go,一旦读到的字符可以拼成一个有效的卡号 (包括0x03也已读入),就
给出卡号作为返回值,退出 go 函数,控制权转交回主函数。如果尚未形成有效的
卡号,就继续在 go 里面转。

如果你想测试,还没有找到读卡器。那么把第12行改成从一个二进制文进中读入。

附录A 状态机代码

1 class state_machine:
2 count = 0
3 state = 0xff # 02 XX XX XX XX 0d 0a 03
4 ret = ""
5 def str2hex(self, c):
6 hvol = ord(c)
7 hhex = '%02x'%hvol
8 return hhex
9
10 def go(self, ser):
11 while True:
12 c = ser.read(1)
13 c = self.str2hex(c)
14 # print self.state
15 # print c
16 # print self.ret
17 # print
18 if self.state == 0xff:
19 if c == '02':
20 self.state = 0x02
21 self.ret = ""
22 continue
23 if self.state == 0x02:
24 self.state = 0x00
25 self.count = 0
26 self.count=self.count+1
27 self.ret = self.ret + c
28 continue
29 if self.state == 0x00:
30 if self.count<4:
31 self.count=self.count+1
32 self.ret = self.ret + c
33 self.state = 0x00
34 continue
35 else:
36 if c == '0d':
37 self.state = 0x0d
38 continue
39 else:
40 self.state = 0xff
41 self.ret = ""
42 continue
43 if self.state == 0x0d:
44 if c == '0a':
45 self.state = 0x0a
46 continue
47 else:
48 self.state = 0xff
49 continue
50 if self.state == 0x0a:
51 if c == '03':
52 self.state = 0x03
53 self.state = 0xff
54 return self.ret
55 else:
56 self.state = 0xff
57 continue
58 else:
59 continue

附录 B 状态机图示的源代码 in graphviz

digraph state
{
graph [ nodesep=1.2]
start -> "0xff" ;
"0x00" [color=red];
"0xff" -> "0x02" [label="0x02"];
"0xff" -> "0xff" [label="不是0x02"];
"0x02" -> "0x00" [label="任意字符 / (count=1,该字符填入卡号末尾)",
color=red, fontcolor=red];
"0x00"-> "0x00" [label="任意字符 & count<4 / (count+=1,该字符填入
卡号末尾)", color=red, fontcolor=red];
"0x00" -> "0x0d" [label="0x0d & count>=4"];
"0x00" -> "0xff" [label="不是0x0d & count>=4"];
"0x0d" -> "0x0a" [label="0x0a"];
"0x0d" -> "0xff" [label="不是0x0a"];
"0x0a" -> "0x03" [label="0x03"];
"0x0a" -> "0xff" [label="不是0x03"];
"0x03" -> "0xff" [label="无条件"];

}
--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]
=======================