<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>4G spaces &#187; reading</title>
	<atom:link href="http://blog.youxu.info/category/reading/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.youxu.info</link>
	<description>I am Eric Xu, a Googler.</description>
	<lastBuildDate>Fri, 03 Feb 2012 06:31:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>UNIX 痛恨者手册读后笔记</title>
		<link>http://blog.youxu.info/2011/10/14/notes-on-the-unix-haters-handbook/</link>
		<comments>http://blog.youxu.info/2011/10/14/notes-on-the-unix-haters-handbook/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 04:23:01 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[reading]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://blog.youxu.info/?p=1223</guid>
		<description><![CDATA[UNIX 痛恨者手册[PDF]可以算是一本奇书了。一般的技术书，写作缘由大多是作者特别喜欢某样技术，兴高采烈地拿出来和读者分享。而此书的几个作者，都是因为恨 UNIX 恨到“人生长恨水长东”... ]]></description>
			<content:encoded><![CDATA[<div>UNIX 痛恨者手册[<a href="http://simson.net/ref/ugh.pdf">PDF</a>]可以算是一本奇书了。一般的技术书，写作缘由大多是作者特别喜欢某样技术，兴高采烈地拿出来和读者分享。而此书的几个作者，都是因为恨 UNIX 恨到“人生长恨水长东”的境界了，于是乎搞了个邮件组，广泛收集各种愤怒，最后基于邮件组里面张贴的各种抱怨，编撰成了痛恨者手册这样一本书，来专门宣泄对 UNIX 的愤怒，也算得上是空前绝后了。</p>
<p>尽管这本书视角独特，以现在的眼光看，作者的抱怨中，真正属于 UNIX 固有问题的只占 50%，其他如对 sendmail 排山倒海的批评，对 C＋＋ 的尽情嘲弄，实际上都不属于 UNIX 系统特有的。其他的 50%，则颇有历史意义，可以看到当年的 UNIX 系统是何其的“原始”。特别是对照现在的 Linux 来看，可以看出 Linux 作为当年 UNIX 的继承人，在文件系统，安全性，稳定性等等方面的巨大的进步。</p>
<p>除去一些对 UNIX 中具体 BUG 的批评，这本书的背后实际上是三种设计哲学间的交锋，我把这三种哲学叫做 MIT 哲学，UNIX 哲学和 GUI 系统哲学。“MIT 哲学”这个词，是借用那篇著名的 <a href="http://www.jwz.org/doc/worse-is-better.html">Worse is better</a> 文章中的叫法。MIT 哲学的代表是 LISP 机器，即提供一个 LISP 环境的机器。这个机器提供给用户的，是优雅的编程环境，如统一的内存管理，统一的函数式接口，良好的文档等等，一切程序员所需要的，都给准备好了。但这个系统不管是作为个人计算机还是作为工作站都没有获得成功。</p>
<p>GUI 系统哲学从施乐的 Alto 开始，到90年代中期 Windows 95 出现之前，已经颇有气象，特别是在个人计算机领域，几乎所有的个人计算机厂商都在提供自己的图形界面操作系统。GUI 系统的哲学，是友好的用户界面和一致的使用体验。至于具体的功能，则委托给具体的应用程序实现。</p>
<p>而 UNIX 哲学，则像是一种开放式系统的哲学：除去提供统一的系统调用和标准工具外(POSIX)，不强调系统的一致性。UNIX 像是一堆松散的积木堆起来的一个系统，在遵守 POSIX 标准的前提下（其实是个非常松散的标准）各个厂商都可以自己选择积木搭建系统。</p>
<p>UNIX 这种开放的，允许自由搭积木的做法，是和信奉MIT哲学的人水火不容的。这些用户在 UNIX 的因为开放造成的不一致性上尽情吐槽。比如说，UNIX 一个饱受诟病的缺憾是其命令行参数不统一。在命令行下，有的命令加 -h 是显示帮助，有的却是显示隐藏文件，还有的命令压根不接受 -h 参数。这样的问题，反映了 UNIX 在演化过程中缺少一个统一的规划。这在演化路径单一的其他操作系统上是不可想象的。再比如，UNIX 的计算模型很简单，即用 C 语言和 shell 对系统调用做一个胶水包装，不提供内存管理也不提供异常处理，文件系统也很低级，不支持文件恢复也不支持文件的元信息存储。而 MIT 的LISP 机器的计算模型和存储系统看上去都更加高级，统一的函数式接口，自动内存管理等等。用过 LISP 机器的人自然不习惯 UNIX 这种看上去“低级”的操作系统。结果是，用过 LISP Machine 的用户除了抱怨 UNIX 外，只能寻求在 UNIX 上构建一个新的层，来弥补 UNIX 的不足。这事情的一个结果就是造就了Emacs 这个怪兽，到最后几乎所有能在 UNIX 里做的事情，都能在 Emacs 里完成。这样，除了操作系统内核外，Emacs 完全取代了 UNIX 环境。Emacs 功能强大到大家都同意 Emacs 是个万能软件，而 vi 用户则开玩笑说 Emacs 是个缺少一个好编辑器的操作系统。大家都知道，Emacs 的作者正是从 MIT 出来的 Richard Stallman。</p>
<p>痛恨者手册的作者也是在 MIT 的 AI 实验室工作多年的技术人员。为了解释 UNIX 的成功，他借用了 Worse is better 中的说法（Garbriel 断言 C 语言和 UNIX 是终极计算机病毒），把 UNIX 归类为世界上第一个计算机病毒。书中提到，UNIX 和病毒的共同特征为：体积小，可传染多种宿主（可移植），变异快速等等。书中说， UNIX 的普及并不是因为它在技术比其他操作系统更加优越，只是因为可移植，可传染和变异快，才占据了很大一块用户份额。</p>
<p>这个解释我认为是相当精当的。相对于其他操作系统，UNIX 基于C书写，可移植和早期的免费分发方式，即使技术上不够好，仍然像流行性感冒一样蔓延。一传十，十传百，快速攻城略地。当时 UNIX 的风行程度可以从几个侧面来证明。八十年代初雨后春笋一般地冒出了很多新的UNIX公司，SUN 和 SGI 就是是借着 UNIX 成长起来的典型例子。他们短短几年间就靠 UNIX 工作站业务跑上了纳斯达克。微软和苹果是靠个人电脑业务起家的，各自都有自己的操作系统，却也跑到UNIX世界下注，都曾经推出过自家的UNIX发行版（分别叫做 <a href="http://en.wikipedia.org/wiki/Xenix">Xenix</a> 和 <a href="http://en.wikipedia.org/wiki/A/UX">A/UX</a>)。UNIX这个”病毒”在工作站和服务器上的寄生能力极强，直到后来演化能力和传播能力更强的“病毒” Linux 的出现，加上 .COM 泡沫破裂的一场大洗牌，才把 UNIX 的市场份额压了下去。Linux 则彻底继承了所有的“病毒”特性，除去原有的体积小，可移植外，通过开放内核源代码，造就了现在从超级计算机服务器到嵌入式系统无处不在的现状。从设备总量来说，世界上从未有一个操作系统如 Linux 如此成功。</p>
<p>可惜的是 MIT 哲学派本身没有成功的操作系统产品用来作为比较（除了Emacs这个运行在UNIX上的程序外），因此在批评 UNIX 上火力就欠缺了一分。为了写出一本厚厚的痛恨者手册砸向UNIX，就需要来自另外一派，即信奉GUI哲学的用户的愤怒。</p>
<p>这些用户的愤怒，主要集中在易用性上。图形界面操作系统的出现，本质上就是为了解决计算机的可用性问题。在图形界面系统出现之前，掌握计算机的使用需要的是阅读厚厚的手册。图形界面出现后，只需要几分钟的演示，普通用户即可操作计算机完成一些简单的任务。这种效率的本质提升，正是施乐的 Alto 和苹果的 Macintosh 的革命性所在。而 UNIX 所拥有的，是一堆两个字母的命令，不一致的命令行参数，和一个实际上不是为 GUI 系统设计的 X 图形系统。命令难记，X 又臃肿，即使有了这些仍然没有构成一个统一的桌面系统（所以后来才有KDE 和  Gnome)，也难怪用户吐槽不已了。</p>
<p>在这类来自 GUI 用户的抱怨中，出乎我意料的一条是对UNIX管道的抱怨。主要的批评点在于管道作为一种 IPC 机制本身不够强大，包括管道不支持双向数据流（双向管道的用例也极少)，只能把数据作为字节流而不能传递结构化数据，和指针等等。从传统 UNIX 用户的眼光来看，这些指责是很不公平的。管道的作用是串接程序的输入输出，将小工具串成强大的工具链。但管道并不是 UNIX 上唯一的 IPC 机制，UNIX 有其他的 IPC 机制来支持管道之外的功能。换一个角度看，要求管道支持双向通信，结构化通信等等，正是从 GUI 哲学出发的对管道的批判。在 GUI 世界，进程间的通信有了两种新的方式：1、把小程序全部集成到一个大的多线程窗口程序中来进行线程间通信； 2、通过在不同程序间复制粘贴对象。从这两个角度考虑，自然会要求 UNIX 管道能像线程间通信一样双向，以及支持有结构的对象而不是单纯的字节流。</p>
<p>GUI 程序的这一套新的进程间通信机制，改变了所在平台的软件架构。UNIX 的软件架构，是围绕软件工具(Software Tools) 的概念展开的，归结起来就是每个工具做一件事情，且做到最好的哲学。因为 GUI 程序本身的复杂性，把林林总总的功能，放入一个大程序中让各模块直接在一个进程空间里互相通信成了一个通行的做法。比如电子表格软件中的公式计算，无需代理到 bc 这样的外部计算器中，直接由内置的模块完成。在这种哲学的指导下，为了给提供全面的解决方案，各种商业程序都追求大而全，内置各种可能用到的功能，因此体积也越来越大。几百兆大小的商业软件不足为奇了。UNIX 痛恨者手册推崇这种只能算局部最优的程序构建方法，而反过来抱怨管道这个另一个局部最优不够好，在我看来是有历史局限性的。</p>
<p>总的来说，这本书代表了 UNIX哲学以外的其他两种哲学对 UNIX 尖锐的批评，是值得当成UNIX 发展史的一部分而一读的。</p>
</div>
<div id="google_plus_one"><g:plusone></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://blog.youxu.info/2011/10/14/notes-on-the-unix-haters-handbook/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>如何逃离囚徒困境</title>
		<link>http://blog.youxu.info/2009/10/01/out-of-prisoners-dilemma/</link>
		<comments>http://blog.youxu.info/2009/10/01/out-of-prisoners-dilemma/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 02:23:43 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://blog.youxu.info/?p=1034</guid>
		<description><![CDATA[在以前的文章中我介绍过囚徒困境，并且介绍了 Tit for Tat 策略，这种策略可以在多轮囚徒困境中不至于受益太差。那么，假如囚徒困境的游戏只有一轮呢？ 有什么好的方法可以达到左上角那个... ]]></description>
			<content:encoded><![CDATA[<p>在以前的文章中我介绍过囚徒困境，并且介绍了 Tit for Tat 策略，这种策略可以在多轮囚徒困境中不至于受益太差。那么，假如囚徒困境的游戏只有一轮呢？ 有什么好的方法可以达到左上角那个双赢状态而不是左下角那个对两者都不是最优的状态呢？</p>
<p>囚徒困境是一个纯博弈论的模型，这个模型里面的赋值就直接决定了想要最大化自己利益的局中人必然会陷入困境，这是模型无法避免的。 所以想要跳出这个困境，只能靠博弈论之外的手段。 所幸的是，我们人类早就发现了这两种方法，并且都在实践中尝试过了这样两种方法。 第一种方法可以看成是直接的斩草除根法，即直接剥夺两个局中人选择“不合作”这个选项的自由，让他们都只有一个合作的选项。 这种政治学方法的优缺点在此我们不做讨论，我们关心的是第二种方法，一种经济学的方法&#8211;通过改变游戏受益矩阵，在新的游戏中，让局中人偏好合作。 在宏观经济的实践中，第二种的一般实现方法则是通过道德和法律手段对选择不合作的进行惩罚，对选择合作的实施奖励，以期改变整个收益矩阵，让这个收益矩阵不再满足囚徒困境的条件。 因为道德手段不确定太多，我们只考虑现代社会的最普遍手段，即法律手段。 具体来说，就是让局中人构建合同，并通过合同法等立法手段保护这个合同的实行，从而改变收益矩阵。</p>
<p>从博弈论的角度理解合同的话，通过订立合同，规定合同和法律效力，调控局中人不合作所获得的收益，使得局中人不再偏好&#8221;不守约定&#8221;选项。 具体的做法也很简单，估计聪明的各位早就想到了：</p>
<p>假定双方都选择合作则收益为 a, 而甲方合作，乙方背叛的时候，甲的收益是 b, 而乙的收益是 c。 按照我们的囚徒困境假设，背叛的收益 c 要大于合作的收益 a， 这样乙才会偏好背叛。 现在我们假设甲乙事先签订一个合同，规定背叛的一方要向合作（没有背叛）的一方支付损失。 我们假设这个值为 r。 显然的，现在乙背叛之后的收益就变成了 c-r， 而 甲合作的收益就是 b+r。 对于乙来说，我们的目的是要让他偏好合作，所以我们一定要让 a 大于等于 c-r。 最极限的情况就是 a = c-r， 于是， r = c-a。 这样， 乙的收益变成了 a， 而甲的收益变成了 b+c-a， 乙即使背叛也占不到好处，而甲也收到了合作的回报。</p>
<p>当然我这里说的是一个简化的模型。 不同的司法实践可能会取不同的 r 值，但是法的精神都是一样的，法律本身不限制你的选择，只是通过合理的奖励和惩罚，让理性的人自然的做出符合自己利益的选择。</p>
<p>从经济学角度来说，人类社会的运行中必然会有这样那样的博弈，尤其是市场经济发达的现代社会，可以说博弈无处不在， 而避免如囚徒困境这样的博弈情景也是社会效率所必须的。 如果单纯地剥夺局中人的选择权，通过&#8221;下一盘很大的棋&#8221;的方式去掉博弈选项，逃避囚徒困境， 那么局中人就可能不能完成充分博弈，利益得不到最大化。 而事实也证明， 这种方法在实践中效率不够高，因为人类社会运行这盘旗完全复杂到任何人都不能全盘掌控， 而且很容易就造成哈耶克说的&#8221;通向奴役之路&#8221;。 而法律为我们提供了另一种截然不同的思路，即仍然保持博弈，但调控收益矩阵，这样，仍然保证了合同双方的博弈选择自由。 在合同法和自由的关系的阐述上， 西方学者马克思韦伯曾经说过一段著名的话: “规范合同双方的那些法律的发展，以及在规范的框架下允许自由意志的法律的充分发展，往往被视为个人自由发展的标志[1]“。  通过对囚徒困境的解决方法和韦伯的这句话，应该不难理解为什么市场经济发达的国家恰好就法律制度健全，且恰好有较多的个人自由。</p>
<p>&#8212;-</p>
<p>[1] 这个自由具体来说叫做 Freedom of Contract, 有兴趣的读者可以阅读  &#8220;Max Weber on Law in Economy and Society&#8221;</p>
<div id="google_plus_one"><g:plusone></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://blog.youxu.info/2009/10/01/out-of-prisoners-dilemma/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>美利坚的建国大业</title>
		<link>http://blog.youxu.info/2009/09/12/the-establishment-of-the-united-states/</link>
		<comments>http://blog.youxu.info/2009/09/12/the-establishment-of-the-united-states/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 04:49:54 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[reading]]></category>
		<category><![CDATA[USA]]></category>

		<guid isPermaLink="false">http://blog.youxu.info/?p=1029</guid>
		<description><![CDATA[A People&#8217;s History of the Supreme Court 这本书很有意思，虽然是讲美国最高法院的历史的，却在前7章全是讲美国宪法的制定里的各种曲折和争议，读起来让人唏嘘不已，在读书过程中零散的做了一... ]]></description>
			<content:encoded><![CDATA[<p>A People&#8217;s History of the Supreme Court 这本书很有意思，虽然是讲美国最高法院的历史的，却在前7章全是讲美国宪法的制定里的各种曲折和争议，读起来让人唏嘘不已，在读书过程中零散的做了一些笔记，如下：</p>
<p>1776 年独立宣言发表后， 美国一直和英国打独立战争，一直打到 1783 年和英国在巴黎签订和和平协议，才算真的建立了和平的国家。这场仗打完以后，老兵和军官居然都回家了，没有一个人跑出来说自己打下的江山自己坐。</p>
<p>在这场独立战争过程中，十三个殖民地在1781年通过了 The Articles of Confederation, 组建了一个松散的中央政府，这个中央政府除了管理军队和发行货币外，什么权力也没有，连中央政府的财政经费，都要州捐助。</p>
<p>这样一个中央政府在处理州的事物上十分没有权力。当时有几个州为了边界上的一些河流的归属闹得不可开交，而中央政府居然没有足够的权力去协调。不少国父看到这种现象，决定组建一个强有力的中央政府，也就是美利坚合众国联邦政府，这帮人，被称为联邦党人。</p>
<p>联邦党人组建中央政府的努力，落实在行动上，就是1787年的费城制宪会议。 来自12 个殖民地的代表在费城的某个楼里面，天天吵架，几乎把宪法的每个条文都辩论了一次，最后才有了美国宪法。</p>
<p>1787 年的这场吵架，被 James Madison 翔实的记载下来了，书店里可以买到全书，也可以在网上看到当时吵架的内容， 比如 <a href="http://teachingamericanhistory.org/convention/debates/">http://teachingamericanhistory.org/convention/debates/</a> 美国的历史虽然短，但是文书都透明公开，很方便历史研究。</p>
<p>这些吵架中间的妥协很有意思，举两个例子： 1， 南方的州拥有较多的奴隶，就想把这些奴隶算上充数，这样在国会就有更大的代表权； 北方的州不同意，认为你南方把奴隶当物品，那就和牛，马宠物没区别，不能算人；你想算人头，他们就是自由民，不算财产。 南方一方面不承认奴隶的公民权力，一方面有把他们当人算代表，在逻辑上非常不自恰； 但是如果不承认奴隶代表权，南方估计也不会通过宪法，所以，最后两方面各让一步，每个奴隶算 3/5 的代表。这就是美国宪法上著名的 3/5 人的由来。 2， 小州和大州之间妥协。 小州怕自己代表太少，利益被侵犯；大州认为自己人多，就该代表多； 妥协的结果是在上院各自两个代表，下院按人口。 又有代表认为自己州人口增长迅速，要求更多席位，所以最后宪法加一条修正案: 每十年人口普查一次。 虽然这条修正案没有获得通过，但是已成为联邦政府标准实践 （我以前的文章里也讲过这个简单的一个条文，是怎样催生了 IBM 的）。</p>
<p>有一些历史学家认为当年美国这些国父制宪的动机是一个强有力的中央政府对于他们的个人利益有益。 这些人的不同的个人利益交织到一起，就形成了针锋相对的观点。 这些观点和利益通过制宪会议得到了均衡。因为各种意见得到表达，所以宪法达到了近乎完美。 当时已经在轮椅上的本杰明 富兰克林在立宪会议闭幕的时候动情的说： 我承认我不同意这个宪法的很多部分，但我不确定我是否应该永远不同意这些部分&#8230; 先生们， 我同意这个宪法，包括它的所有可能错误。 我也怀疑任何一个其他的&#8221;立宪会议&#8221;，能制定出一部更好的《宪法》&#8230; 我发现这个宪法竟能这样接近完美， 甚至能使我们的敌人也感到惊奇。</p>
<p>即使参与宪法制定的一些代表，最后也有几个拒绝在宪法上签字，因为他们觉得对宪法不满意。 而对宪法不满意的一位叫 Edmund Randolph 的代表，也是弗吉尼亚州的州长，最后却真诚的建议只要宪法在 9 个殖民地公投获得通过就算生效，丝毫不计较一定要自己的州通过。</p>
<p>立宪会议的代表提到了<a href="http://en.wikipedia.org/wiki/Philadelphia_Convention">很多提案</a>，这些提案在细节上有很大的不同，但是所有的人都支持三权分立，支持一个独立的联邦最高司法机构，也就是最高法院。 宪法中关于最高法院拥有违宪审查权力的条款是极少几条没有任何反对意见一致通过的，可见这些立宪者对于独立司法制度的重要性认识深刻。 其实这也和代表的背景有关，这些国父，基本都不是什么所谓的&#8221;秘书&#8221;、&#8221;秀才&#8221;，而是专业的律师。</p>
<p>华盛顿总统在做了两届总统之后，认为长期霸占总统颇为无趣，因此退位让贤，开创了总统连任不超过两届的不成文范例，美国政府的权力交接从一开始就成为了范例。 华盛顿之后是亚当斯，也是联邦党人； 亚当斯之后就是著名的托马斯杰弗逊，是反联邦党人。 杰弗逊当选总统，是一件非常重要的事件，这是人类历史上第一次以权力以民主的方式完成和平交接。</p>
<p>托马斯杰弗逊在没做总统前，一直大喊权力法案，支持最高法院的独立司法，可是他当上总统第一天就遇到了一件神奇的案子。 这个神奇的案子是这样的，话说亚当斯当总统的最后几天，知道自己离下台不远了，就和联邦党人控制的国会一起通过了一个法令，临时成立了很多联邦地方法院，临时任命了一堆联邦党人做法官。 这个事情他们没做好，有一个叫做 Marbury 的法官的委任书他们前一天忘了发了。 等到杰弗逊第二天上台，江山变了，杰弗逊就让他的手下 Madison 不发委任状。 这下 Marbury 就当不了官了，于是，火了， 就把不给发委任状的，日后是美国第四任总统的  Madison 给告上了。 这个案子就闹到了最高法院。 最高法院的判决一共三条， 前两条是让托马斯杰弗逊不高兴的，因为这个判决直接指明总统没有权力不发委任书。 最后一条是看上去最八杆子打不着但是最重要的： 最高法院在应用某项法令的时候，居然发现这个法令违反了宪法，于是很牛逼的把几年前联邦党人通过的一项法令以违反宪法为由给废止了！ 是的，这就是美国最高法院历史上最早的一起著名判例，即 <a href="http://en.wikipedia.org/wiki/Marbury_v._Madison">Marbury vs. Madison</a>. 在这个著名的判例中，最高法院的大法官 Marshall 说:&#8221;判定什么是法律是断然属于司法部门的权限和职责&#8221;, 这句话，被刻在美国最高法院的墙上。 这个事件，是人类历史上第一次由司法机关提到&#8221;违宪审查&#8221; 这个概念。</p>
<p>从杰弗逊起草独立宣言，到杰弗逊当选总统并买了路易斯安娜，经过无数的妥协，争吵和辩论，大大小小的战争和利益较量，美利坚合众国强力的中央政府已经构建完毕，三权分立的架构也已经初具雏形，制约和均衡让政府失去了对人民作恶的力量， 两党之间权力的民主交接也顺利完成。民有，民治，民享的国家在北美大陆初步建立完毕，美利坚建国大业至此大致完成。</p>
<div id="google_plus_one"><g:plusone></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://blog.youxu.info/2009/09/12/the-establishment-of-the-united-states/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>八月所读书目</title>
		<link>http://blog.youxu.info/2009/09/07/readings-in-august/</link>
		<comments>http://blog.youxu.info/2009/09/07/readings-in-august/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 02:29:30 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Memo]]></category>
		<category><![CDATA[reading]]></category>

		<guid isPermaLink="false">http://blog.youxu.info/?p=1027</guid>
		<description><![CDATA[编程 Software Tools in Pascal 是 Software Tools 的 Pascal 版本，除了编程语言不一样以外，其他都一样 UNIX for FORTRAN Programmers 工作可能需要, 每天翻几页 Artificial intelligence with Common Lisp: fundamentals of symbolic... ]]></description>
			<content:encoded><![CDATA[<p><strong>编程 </strong></p>
<p><a href=" http://www.amazon.com/Software-Tools-Pascal-Brian-Kernighan/dp/0201103427">Software Tools in Pascal</a></p>
<blockquote><p>是 Software Tools 的 Pascal 版本，除了编程语言不一样以外，其他都一样</p></blockquote>
<p>UNIX for FORTRAN Programmers</p>
<blockquote><p>工作可能需要, 每天翻几页</p></blockquote>
<p>Artificial intelligence with Common Lisp: fundamentals of symbolic and numeric processing</p>
<blockquote><p>为了写最近的几篇番外篇，把这本书从头到尾翻了一遍。</p></blockquote>
<p>The Art of UNIX programming 第2遍</p>
<blockquote><p>好书，值得每年读一遍</p></blockquote>
<p><strong>开始读但是还没看完的<br />
</strong><br />
<a href="http://www.amazon.com/Art-Computer-Programming-Fascicle-Techniques/dp/0321580508/ref=pd_sim_b_4"><br />
TAOCP Vol4 F1, Binary Decision Diagram</a></p>
<blockquote><p>想研究一下 BDD，　Knuth 大神的风趣和平实依旧。</p></blockquote>
<p>Submodular Functions and Optimization</p>
<blockquote><p>作研究用的</p></blockquote>
<p><strong>其他看得差不多的闲书<br />
</strong></p>
<p>A People&#8217;s History of the Supreme Court</p>
<blockquote><p>一本讲最高法院和美国历史的书，角度非常接近群众，而不是帝王将相传，很推荐。</p></blockquote>
<p>Everyday American History</p>
<blockquote><p>一本搞笑的讲美国历史的书，搞笑之余学到了很多以前不知道的美国历史。　和上面的书对照着看，对于美国早期历史更加明白了。</p></blockquote>
<p>Understanding Human Communication</p>
<blockquote><p>一本大学教科书，旧书摊上几毛钱淘的。　看了之后对人际交往和对话的理解立即上了一个台阶，很推荐给自认为“情商”不高的老师们。　我看了之后说话就觉得有方法多了。</p></blockquote>
<p>Games People Play: The Psychology of Human Relationships</p>
<blockquote><p>也是旧书摊上淘宝淘到的，是一本　60 年代的畅销书，算是我之前提到的 Freud 和 Jung 的精神分析的后续作品，据说是当时很划时代的作品。</p></blockquote>
<p>The Seven Principles for Making Marriage Work: A Practical Guide from the Country&#8217;s Foremost Relationship Expert</p>
<blockquote><p>也是旧书摊上的。　要结婚的人了，看看这个估计对将来有好处。</p></blockquote>
<div id="google_plus_one"><g:plusone></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://blog.youxu.info/2009/09/07/readings-in-august/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>编程珠玑番外篇-G. 程序员心底的小声音</title>
		<link>http://blog.youxu.info/2009/08/19/astill-small-voice-for-programmers/</link>
		<comments>http://blog.youxu.info/2009/08/19/astill-small-voice-for-programmers/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 00:19:23 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[pearl]]></category>
		<category><![CDATA[reading]]></category>

		<guid isPermaLink="false">http://blog.youxu.info/?p=1005</guid>
		<description><![CDATA[(&#8220;高级语言怎么来的“ 系列仍然有后续，这篇是临时插入) 程序员心底的小声音 编程大约有三个境界，新手，高手，和高不成低不就的中手。这三个境界，大致和王国维先生划定的做学问... ]]></description>
			<content:encoded><![CDATA[<p>(&#8220;高级语言怎么来的“ 系列仍然有后续，这篇是临时插入)</p>
<h4>程序员心底的小声音</h4>
<p>编程大约有三个境界，新手，高手，和高不成低不就的中手。这三个境界，大致和王国维先生划定的做学问的三个境界一一对应。 一般来说，如果不经过几十万行的代码的锤炼（衣带渐宽终不悔，为伊消得人憔悴），或者长期在一个高手团队里面打磨切磋，那么无论怎么样的理论熟悉，打字熟练，考试全A，编程起来，都应该算是中手。一个中手如果机缘很好，得到高人亲自指点，则能很快成长为高手，如果没有这样的机缘，那就要在“众里寻她千百度”这个层次苦苦的求索锤炼很久，才能“蓦然回首”。</p>
<p>读书是一种很好弥补没有高手在场的方法，都说书是最好的老师嘛。 可是现实是，高手写给中手的书很少。 在任何行业，适合新手的入门的书很多，适合中手的书就很少。 原因有两个，一来高手极少愿意耐心的的指点成长秘诀，就算写了，也是蜻蜓点水，因为这些经验啊结论啊，都被他们本身提炼成了珠玑，他们觉得最重要的也就是这么寥寥几句，也没有太多的废话好写。 而读者如果没有类似的经历，则看到这些珠玑，只是觉得把玩颇为有趣而已，极少能有同感。 鲜有高手，能把技术书写成散文集，如 Brooks 一样，在《人月神话》中把经验教训和经历背景等一一道来，并且从这些经历中抽出一般性的知识。 所以，高手的风格一般是浮光掠影概括一下大致自己领会到的几个原则和教训。 这些寥寥数语的珠玑，对于其他高手来说一看就懂，但是对于中手来说就很难以理解。 所以很多高手写出来的给中手看的书就曲高和寡。 二来，中手其实水平差异巨大，偏好也各不一样，有的或许根本认识不到自己应该走的成长轨迹，有的认为这些书籍是片面知识，所以把不喜欢的书都给扔垃圾堆了，光捡自己喜欢的书看；有的未必看得上高手的经验，认为高手说的那些自己也早就领悟到了。所以，也不喜欢购买这些书籍。这两个原因，就造成了高手提携中手的书在市场上很少见到。</p>
<p>不过这样的书倒不是没有，比方说在编程领域， 我至少可以推荐四本这类的书，这四本分别是<br />
《Pragmatic Programmer》, 《The Art of UNIX Programming》, 《Elements of Programming Style》 和 《The Productive Programmer》. 这四本书，都是高手所写，都属于高手指导中手的典范。第二第三本我原先都介绍过。 而第四本<a href="http://www.luanxiang.org/blog/archives/593.html">余晟同学的书评</a>比我写得好几百倍，所以我就以 《Pragmatic Programmer》 为例说明这个问题。</p>
<p>我们前面说了，对于中手，特别是在“寻她千百度”这个层次的中手来说，或许本身已经捡到了一些珠玑，或许对于像 《Pragmatic Programmer》 里面说的那些 Tip，有的是深有同感的。 比如 DRY (Don&#8217;t Repeat Yourself 不要重复你自己)， 基本上大家都知道，可是在实际中（至少我自己）还是不停的一次一次的犯错误，做事情不符合 DRY 原则（一次一次犯这个错误本身也是一个 DRY 错误， 因为 DRY 原则要求你对于每种错误你只能犯一次）。 读到的时候深有同感， 写代码的时候却忘到 Java 国去了，这还真不是个案，是非常普遍的现象。</p>
<p>能不能让正确的原则指挥正确的行动本身，其实就是区分是否是高手的一个显著标志。 试想，两个都了解 KISS 原则的程序员在一起写代码，高手的代码必然是自然流露出 KISS 的优雅，而中手或许需要旁人提醒和多次重构，才能达到理想的状态。 出现这个问题的原因很明显&#8211;中手没有完全内化 KISS 原则，所以尚且不能“运用自如”。 内化是一个非常复杂的认知过程，本身涉及到大脑中 mind set 和 paradigm 的切换， 所以必然不是一个简单的隔夜就能完成的过程，这也就是为啥能够“消得人憔悴”，但是切换一旦完成，实践中就会自然流露出这种新的认识，也就是到了一个新的境界，发现灯火阑珊处。</p>
<p>那么原则和知识的内化这个过程怎么能够加速呢？也就是说，怎么较快的到达高手境界呢？ 可以肯定的说，光靠对自己说我“下次一定按照这个原则这样做”是不行的。认知科学认为，频繁的高强度的外部刺激和自主的有意识的反复提醒是加速内化的两个重要方法。 第一个方法需要外部环境的支撑。 试想，如果一个程序员不是天天和复杂文本处理打交道，他必然没有足够外部刺激来熟悉和内化正则表达式； 如果一个程序员不是天天和极度复杂的大项目打交道，用全自动编译环境和自动单元测试也显得无甚必要，所以，除非你正好掉进了一个天天有高强度训练的环境，否则全靠第一点是不可能的。 尤其是自学一门语言和一门技术的程序员，往往在没有高强度训练之前就拿着这些技能投入工作了，因此想成为某方面的高手，只能采取第二条路，就是有意识的强化实践和反复提醒。</p>
<p>《圣经》里有个故事，说一个人在沙漠里，信心丧失的时候，突然听到 “A Still Small Voice” (平静的小声音), 即上帝的启示。这个平静的小声音把他从绝望中拉了回来。 其实对于这个人来说，他本身的实践能力在 “平静的小声音” 出现前后并没有多大的改变，唯一的不同就是他知道该怎么做了。</p>
<p>内化一个知识或者认识的时候所循的路径也是一样的。 我们常常会“忘了”应该怎么正确的做一件事情（这个地方的“忘了”，指我们之前从书中或者其他渠道读到看到了正确的原则或方法，但是在那一刻脑子里压根没考虑这个原则或方法，因为这个原则或方法压根没有亲自实践过，所以根本不是自己的一部分，不属于自己）。 在这个时候， 如果突然有一个平静的小声音跳出来，说，“嘿，你是不是该遵循这个原则，用这个方法？” 无需说，我们对问题的思考就能顿时全面起来， 也会更加深刻的理解原先读到看到的不属于自己的原则和方法。当然，我们更加感兴趣的是，如何能够在身边没有高手和上帝发出这样的平静的小声音的时候，自己发出这样的小声音？</p>
<p>怎么靠自己呢，记得鲁迅小朋友破坏公物在课桌上刻的“早”么？是的，我们需要抽象出一些简单的词句和规则，靠记忆和不断的提醒，小规模的内化这些小声音，让这些简单的小声音能够时刻从大脑里跳到耳边，提醒自己。 具体来说，在阅读上面的几本书，尤其是阅读 《Pragmatic Programmer》 的时候，如果仅仅是以普通的浏览的方式阅读，就会很简单的陷入 “啊，这个我知道了，啊，那个我了解了，恩，这个以后要注意” 的套路中。 这样的阅读方式，只会强化原有的自己已经知道的部分，而不大可能把“以后要注意” 这部分全部内化。所以，自负的读者读完了之后必然觉得“哈哈，高手不过如此，大部分我也知道嘛”，而不是“是的，我还有不少要注意”。 这两个态度，就把高手和易于满足的中手永恒的隔开了。 我觉得，想要内化这些小声音，还是要靠实践，如果不实践，即使你把这些小声音写在 100 块钱的高档笔记本上也没有用。我个人觉得，理想的阅读状态应该是先大致理解和记住里面的 Tip, 然后每周争取实践 2-3 个 Tip。其实如此做完一圈也就是半年，在这一圈之后就会记住所有的 Tip 的内容，这时候，小声音就成了自己的一部分了。然后在剩下的几年里，只要时时有这些小声音挑出来，告诉你，“要自动频繁的测试”，或者“别手动做繁琐的工作”，你会很快的被强迫转换到高效而优雅的工作状态。 到了那个时候，这些小声音就再也不会跳出来了，因为你早就自然的遵守这些小声音的要求了。</p>
<p>《Pragmatic Programmer》 和 《The Elements of Programming Style》 这些书里面的 Tip 都不是来自上帝的话语，却都是值得随声带着的小声音。 其实只要是处理过实际问题，编过几万行程序，大多程序员都差不多都会有或深刻或浅显的对各个 Tip 都感悟，而且我相信或许对有些 Tip 的认识能比原书的作者还要深刻，这是很正常的。 事实上每一个 Tip 只是一句话而已，对这一句话的理解层次， 则完全不这一句话能够覆盖的。 比如说，一天写了两个 Hello Word 的程序员也会领悟到 DRY, 一个刚刚重构扔掉掉几千行重复代码的程序员也领悟到 DRY， 而这两个 DRY 所在的认识层面， 必然是不一样的。 再好比说我在“编程珠玑番外篇”这个系列里面写的有些文字，看上去很有道理，但我本人对这些文字的认识可能比我的读者要浅， 但是这倒不妨碍引发读者思考。 即使有些牛人觉得上面这几本书的作者在某些原则上的认识不够深刻，或者觉得作者只是在罗列一些小碎片，读这些书，特别是 《Pragmatic Programmer》 这本书的那些小 Tip，依然是有益的， 因为他或许能触发你高于作者的思考，然后在你脑中形成更加圆润的珠玑。而对于像我这样属于中手下游平时又没有大项目训练的人，《Pragmatic Programmer》 这本书，和其他的几本书一起， 实在是很好的“小声音汇编”。</p>
<div id="google_plus_one"><g:plusone></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://blog.youxu.info/2009/08/19/astill-small-voice-for-programmers/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>六，七月所读书目</title>
		<link>http://blog.youxu.info/2009/07/27/june-july-readings/</link>
		<comments>http://blog.youxu.info/2009/07/27/june-july-readings/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 02:59:56 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[reading]]></category>

		<guid isPermaLink="false">http://blog.youxu.info/?p=980</guid>
		<description><![CDATA[技术类: Bruce J. Maclennan: Principles of Programming Languages: Design, Evaluation, and Implementation 讲了高级语言的历史，设计沿革。是写作编程珠玑番外篇的极好参考材料。 Dale Dougherty, Arnold Robbins: sed and awk and... ]]></description>
			<content:encoded><![CDATA[<p><strong>技术类:</strong></p>
<p><a href="http://www.amazon.com/Principles-Programming-Languages-Evaluation-Implementation/dp/0195113063">Bruce J. Maclennan: </a><em><a href="http://www.amazon.com/Principles-Programming-Languages-Evaluation-Implementation/dp/0195113063">Principles of Programming Languages: Design, Evaluation, and Implementation</a></em></p>
<p>讲了高级语言的历史，设计沿革。是写作<a href="http://blog.youxu.info/category/pearl/">编程珠玑番外篇</a>的极好参考材料。</p>
<p><span class="f">Dale Dougherty, Arnold Robbins: </span><a href="http://oreilly.com/catalog/9781565922259/"><em>sed and awk</em></a> and<em> </em>Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger: <em> <a href="http://cm.bell-labs.com/cm/cs/awkbook/">The awk book</a></em></p>
<p>天天要数据处理，所以系统的学习了一下 sed 和 awk.</p>
<p><strong><br />
非技术类</strong></p>
<p><em><a href="http://books.google.com/books?id=FOkPrY-HQVQC&amp;dq=Letters+to+a+Young+Mathematician&amp;printsec=frontcover&amp;source=bn&amp;hl=en&amp;ei=xV9uSoTaNpDIMKu8-eMC&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=4">Letters to a Young Mathematician</a></em></p>
<p>类似于 <a href="http://www.amazon.com/gp/product/B001949XYK/ref=pd_lpo_k2_dp_sr_3?pf_rd_p=304485901&amp;pf_rd_s=lpo-top-stripe-1&amp;pf_rd_t=201&amp;pf_rd_i=0262181916&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_r=1BXVC4151K5EZZFVCENP">Advice for a Young Investigator</a>， 都是教年轻人怎么做科学研究的书。</p>
<p><em><a href="http://www.amazon.com/gp/product/0812975243/ref=pd_lpo_k2_dp_sr_1?pf_rd_p=304485901&amp;pf_rd_s=lpo-top-stripe-1&amp;pf_rd_t=201&amp;pf_rd_i=1400064678&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_r=0HH7BH3RPXE2ZGRR318V">China Road</a></em></p>
<p>这本书包含的内容很多，看了几遍。看得越多，越是感慨。我之前说过，再也不再博客上对贵国的事情发表任何看法，所以，就不写书评了。书中提到了一个人，我觉得值得提一下。 这个人叫做胡佳，在作者写作的那年，还冒着很大的危险，辛辛苦苦的救助和关心河南的艾滋病患者，时过境迁，他现如今却身在牢狱，老婆孩子全家几乎被软禁和监视，这就是现实。</p>
<p>Carl Jung: <em><a href="http://books.google.com/books?hl=en&amp;lr=&amp;id=4PbWxFqZ964C&amp;oi=fnd&amp;pg=PA1&amp;dq=%22Jung%22+%22Psychology+and+religion%22+&amp;ots=6UkPGnY4eJ&amp;sig=FHWjqq7tAd2DREpr572bhJBQG3s">Psychology and Religion</a></em></p>
<p>Jung 可以称得上是精神分析之父， 也是心理人格测试发明人。这本从心理学看宗教的小册子帮助我厘清了很多以前不明白的宗教心理现象。越是了解宗教心理，越是害怕和有“信仰”没逻辑的人辩论。此外，这本书读起来非常舒服。</p>
<p>J.K. Rowling: <a href="http://www.amazon.com/Harry-Potter-Sorcerers-Stone-Book/dp/0590353403"><em>Harry Potter and the Sorcerer&#8217;s Stone</em></a></p>
<p>我是个超级没文化的人，现在才开始看第一本。写得果然很好，我以前很鄙视这类奇幻小说的，现在读来，饶有趣味。</p>
<p>下月争取读完 <em><a href="http://www.elementsofprogramming.com/">The Elements of Programming</a></em> 和 <a href="http://www.amazon.com/Defense-American-Liberties-History-ACLU/dp/product-description/0195071417"><em>In Defense of American Liberties: A History of the ACLU</em></a> 两本书，并且读 Harry Potter 第二本。</p>
<div id="google_plus_one"><g:plusone></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://blog.youxu.info/2009/07/27/june-july-readings/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

