<?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>ChemHack 中文频道 &#187; Think</title>
	<atom:link href="http://chemhack.com/cn/category/think/feed/" rel="self" type="application/rss+xml" />
	<link>http://chemhack.com/cn</link>
	<description>ChemHack.com中文版</description>
	<lastBuildDate>Mon, 22 Mar 2010 22:10:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>程序员的共同点</title>
		<link>http://chemhack.com/cn/2009/06/what-all-programmers-have-in-common/</link>
		<comments>http://chemhack.com/cn/2009/06/what-all-programmers-have-in-common/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 08:36:26 +0000</pubDate>
		<dc:creator>段炼</dc:creator>
				<category><![CDATA[Think]]></category>

		<guid isPermaLink="false">http://chemhack.com/cn/?p=360</guid>
		<description><![CDATA[本篇文章由Duan Lian翻译自Carlos Oliveira的What all programmers have in common? 转载请注明

软件开发我也做过，什么样的程序员都见过。有些程序员很有才，而且高产。也有些人水平就不行了，水平不高还不思进取。
程序员的生产率差距还是很大的。在大多数情况下，牛人开发的速度是一般人的十倍，不管用什么语言或者开发工具。所以别想着用什么动态或者高级的IDE就变成牛人。
不管水平怎么样，大家都有个一样的毛病。在估计项目大概要用的时间上，大家都太乐观了。可以说大多数的开发项目延期都是因为这个毛病。
水平越不行，这个毛病就越麻烦，因为水平不行的人开发速度都很慢，而且质量也很低。不过即使是牛人，这个问题也一样存在。这个毛病之所以会出现，是因为我们往往忽略了开发过程中的关键问题。
举例来说，做一个东西，我估计编程要花20小时。没问题，但是这20小时没包括你跟客户开会的时间，没包括优化数据库的时间，甚至也没包括你把bug提交到Issue Tracker的时间。这些事情当然占用你的工作时间，别忘了在估计时间的是也这些时间都考虑进去。
缩小差距
不管你水平怎么样，都可以做一些事来尝试改善一下时间管理，下面是几条我试过而且效果不错的方法：
给你花费的时间记流水账。我们通常根本不知道时间到底花到哪了。这笔糊涂账的结果就是，我们把大量的时间花费在了没有什么价值的鸡肋事情上。记个流水账，你就知道哪里你用的时间太多了，哪里还需要更多努力。
将你的时间估计乘以一个放大系数。 你对时间分配大概有数了之后，就可以估计有多少时间花费在了软件开发上，有多少时间花费在了开发相关活动上。不同情况下这个系数是不一样的。举例来说，如果你有很多会议要开，那这个系数就要大的多。根据你的情况确定一个系数，并将这个系数应用到开发估计上。
学会说No。 做的东西的时候，你会想增加一些新功能进来，你的时间不会凭空增加。在这种情况下，你需要明确表示，时间不够完成额外的计划。”说No“要比项目最后延期好的多。
结论
程序员都一样，估计要用到的时间常常少于需要的时间。这很自然，因为大家都没有考虑那些额外的任务。仔细了解自己的工作流程，学着对你不能做的事情说不，我们都能把学着把好钢用在刀刃上。
继续阅读

Mythical Man Month: an earlier view on scheduling issues for software development.
Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software.
A proposal for better software schedules, by Joel Spolsky.


下面是用词词对应的方法翻译出来的，大家喜欢哪种风格？
我做过一段时间的软件开发，也见过很多不同类型的程序员。他们中的一些人确实很有才，并且成果丰富。其他的人并不是很有天赋，不过他们对提高自己的技能也不在意。
经验表明开发者的生产率是有很大差距的。在大多数情况下，最优秀的开发者的开发速度是一般人的十倍。不管开发软件时使用什么语言和工具，这个结论都是正确的。也就是说，生产率的差距并不能简单的用开发语言或者开发工具弥补。
但是，不管程序员的水平如何，大家都有一个共同点。同时，大多数软件开发计划延期在一定程度上是由这个共同点导致的。这个共同点就是，在估计开发新软件所需的时间上，所有的开发者基本上都太乐观了。
糟糕的程序员更容易遇到这个问题，因为他们的开发速度很慢，而且他们开发的软件质量也很低。但是，即使是最优秀的程序员，也会遇到这个问题。这之所以会发生是因为我们忽视开发过程中关键方面的倾向。
举例来说，即使完成一个功能所需要的编程时间是20小时，这也不包括需要和客户一起开会的时间、优化数据库的时间、甚至是将问题提交倒bug追踪系统的时间。任何开发者都需要将所有的这些活动计入到工作时间内，也需要在估计时间的时候考虑进去。
缩小差距
好消息是优秀的程序员和糟糕的程序员都可以做一些事情来改善时间管理问题。这里是由一个简单的列表，列出了我自己尝试过并且结果良好的一些方法：
记录一个你如何花费时间的日志。 让人吃惊的是，我们通常根本不知道我们的时间是如何花费的。这导致的结果就是，我们把大量的时间花费在了没有足够回报的事情上。通过记录一个日志，我们可知道哪里需要砍掉一些过剩的时间，哪里需要花费更多努力。
将你的估计乘以一个系数。 你对时间花费的地方有了一些经验之后，你就可以估计你有多少时间花费在了软件开发上，有多少时间花费在了相关活动上。这个系数在不同的情况下是不同的。举例来说，与没有那么正式手续的公司相比，有很多会议的公司需要一个更大的系数。根据你的情况确定一个系数，并将这个系数应用到开发估计上。
学会说No。 在计划估计上的一个大问题是，你想要做的东西可能会增加，但是分配给任务的时间并不会增加。在这种情况下，你需要明确的指出你认为时间不够完成计划的特性。”说No“要比项目最后延期要好的多。
结论
程序员都有一个共同倾向，就是计划完成一系列功能所用的时间要少于实际需要的时间。这是我们有的一个很自然的倾向。之所以会出现这种倾向是因为我们没有花时间去思考每个人都需要面对的额外任务。通过仔细理解你的个人工作流和学着对你不能做的事情说不，我们都有一个巨大的机会去提高我们编程计划的准确性。
继续阅读

Mythical Man Month: an earlier view on scheduling issues for software development.
Dreaming in [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>本篇文章由<a href="http://chemhack.com">Duan Lian</a>翻译自<a href="http://coliveira.net/carlos-oliveira">Carlos Oliveira</a>的<a href="http://coliveira.net/2009/05/what-all-programmers-have-in-common/">What all programmers have in common?</a> 转载请注明</p></blockquote>
<div>
<p><span>软件开发我也做过，什么样的程序员都见过。有些程序员很有才，而且高产。也有些人水平就不行了，水平不高还不思进取。</span></p>
<p>程序员的生产率差距还是很大的。在大多数情况下，牛人开发的速度是一般人的十倍，不管用什么语言或者开发工具。所以别想着用什么动态或者高级的IDE就变成牛人。</p>
<p>不管水平怎么样，大家都有个一样的毛病。在估计项目大概要用的时间上，大家都太乐观了。可以说大多数的开发项目延期都是因为这个毛病。</p>
<p>水平越不行，这个毛病就越麻烦，因为水平不行的人开发速度都很慢，而且质量也很低。不过即使是牛人，这个问题也一样存在。这个毛病之所以会出现，是因为我们往往忽略了开发过程中的关键问题。</p>
<p><span>举例来说，做一个东西，我估计编程要花20小时。没问题，但是这20小时没包括你跟客户开会的时间，没包括优化数据库的时间，甚至也没包括你把bug提交到Issue Tracker的时间。这些事情当然占用你的工作时间，别忘了在估计时间的是也这些时间都考虑进去。</span></p>
<p><span><strong>缩小差距</strong></span></p>
<p>不管你水平怎么样，都可以做一些事来尝试改善一下时间管理，下面是几条我试过而且效果不错的方法：</p>
<p><span><strong>给你花费的时间记流水账。</strong>我们通常根本不知道时间到底花到哪了。这笔糊涂账的结果就是，我们把大量的时间花费在了没有什么价值的鸡肋事情上。记个流水账，你就知道哪里你用的时间太多了，哪里还需要更多努力。</span></p>
<p><strong>将你的时间估计乘以一个放大系数。</strong><span> </span>你对时间分配大概有数了之后，就可以估计有多少时间花费在了软件开发上，有多少时间花费在了开发相关活动上。不同情况下这个系数是不一样的。举例来说，如果你有很多会议要开，那这个系数就要大的多。根据你的情况确定一个系数，并将这个系数应用到开发估计上。</p>
<p><strong>学会说No。</strong><span> </span>做的东西的时候，你会想增加一些新功能进来，你的时间不会凭空增加。在这种情况下，你需要明确表示，时间不够完成额外的计划。”说No“要比项目最后延期好的多。</p>
<p><strong>结论</strong></p>
<p>程序员都一样，估计要用到的时间常常少于需要的时间。这很自然，因为大家都没有考虑那些额外的任务。仔细了解自己的工作流程，学着对你不能做的事情说不，我们都能把学着把好钢用在刀刃上。</p>
<p><strong>继续阅读</strong></p>
<ul>
<li><span><a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/bookdablogonb-20">Mythical Man Month</a></span>: an earlier view on scheduling issues for software development.</li>
<li><span><a href="http://www.amazon.com/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082471/bookdablogonb-20">Dreaming in Code</a></span>: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software.</li>
<li><span><a href="http://www.joelonsoftware.com/items/2007/10/26.html">A proposal</a></span><span> </span>for better software schedules, by Joel Spolsky.</li>
</ul>
</div>
<p><span id="more-360"></span>下面是用词词对应的方法翻译出来的，大家喜欢哪种风格？</p>
<p><span>我做过一段时间的软件开发，也见过很多不同类型的程序员。他们中的一些人确实很有才，并且成果丰富。其他的人并不是很有天赋，不过他们对提高自己的技能也不在意。</span></p>
<p><span>经验表明开发者的生产率是有很大差距的。在大多数情况下，最优秀的开发者的开发速度是一般人的十倍。不管开发软件时使用什么语言和工具，这个结论都是正确的。也就是说，生产率的差距并不能简单的用开发语言或者开发工具弥补。</span></p>
<p><span>但是，不管程序员的水平如何，大家都有一个共同点。同时，大多数软件开发计划延期在一定程度上是由这个共同点导致的。这个共同点就是，在估计开发新软件所需的时间上，所有的开发者基本上都太乐观了。</span></p>
<p><span>糟糕的程序员更容易遇到这个问题，因为他们的开发速度很慢，而且他们开发的软件质量也很低。但是，即使是最优秀的程序员，也会遇到这个问题。这之所以会发生是因为我们忽视开发过程中关键方面的倾向。</span></p>
<p><span>举例来说，即使完成一个功能所需要的编程时间是20小时，这也不包括需要和客户一起开会的时间、优化数据库的时间、甚至是将问题提交倒bug追踪系统的时间。任何开发者都需要将所有的这些活动计入到工作时间内，也需要在估计时间的时候考虑进去。</span></p>
<p><span><strong>缩小差距</strong></span></p>
<p><span>好消息是优秀的程序员和糟糕的程序员都可以做一些事情来改善时间管理问题。这里是由一个简单的列表，列出了我自己尝试过并且结果良好的一些方法：</span></p>
<p><span><strong>记录一个你如何花费时间的日志。</strong><span> </span>让人吃惊的是，我们通常根本不知道我们的时间是如何花费的。这导致的结果就是，我们把大量的时间花费在了没有足够回报的事情上。通过记录一个日志，我们可知道哪里需要砍掉一些过剩的时间，哪里需要花费更多努力。</span></p>
<p><strong>将你的估计乘以一个系数。</strong><span> </span>你对时间花费的地方有了一些经验之后，你就可以估计你有多少时间花费在了软件开发上，有多少时间花费在了相关活动上。这个系数在不同的情况下是不同的。举例来说，与没有那么正式手续的公司相比，有很多会议的公司需要一个更大的系数。根据你的情况确定一个系数，并将这个系数应用到开发估计上。</p>
<p><strong>学会说No。</strong><span> </span>在计划估计上的一个大问题是，你想要做的东西可能会增加，但是分配给任务的时间并不会增加。在这种情况下，你需要明确的指出你认为时间不够完成计划的特性。”说No“要比项目最后延期要好的多。</p>
<p><strong>结论</strong></p>
<p>程序员都有一个共同倾向，就是计划完成一系列功能所用的时间要少于实际需要的时间。这是我们有的一个很自然的倾向。之所以会出现这种倾向是因为我们没有花时间去思考每个人都需要面对的额外任务。通过仔细理解你的个人工作流和学着对你不能做的事情说不，我们都有一个巨大的机会去提高我们编程计划的准确性。</p>
<p><strong>继续阅读</strong></p>
<ul>
<li><span><a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/bookdablogonb-20">Mythical Man Month</a></span>: an earlier view on scheduling issues for software development.</li>
<li><span><a href="http://www.amazon.com/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082471/bookdablogonb-20">Dreaming in Code</a></span>: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software.</li>
<li><span><a href="http://www.joelonsoftware.com/items/2007/10/26.html">A proposal</a></span><span> </span>for better software schedules, by Joel Spolsky.</li>
</ul>
<p> </p>
<p> </p>
<p class="postmetadata"> </p>
]]></content:encoded>
			<wfw:commentRss>http://chemhack.com/cn/2009/06/what-all-programmers-have-in-common/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>喷下M8</title>
		<link>http://chemhack.com/cn/2008/12/%e5%96%b7%e4%b8%8bm8/</link>
		<comments>http://chemhack.com/cn/2008/12/%e5%96%b7%e4%b8%8bm8/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 17:53:46 +0000</pubDate>
		<dc:creator>段炼</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Think]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[M8]]></category>
		<category><![CDATA[苹果]]></category>
		<category><![CDATA[魅族]]></category>

		<guid isPermaLink="false">http://chemhack.com/?p=166</guid>
		<description><![CDATA[cnBeta上看M8和煤油喷多了，越来越觉得没有意思了。很多人还停留在拿苹果的单键鼠标说事的水平上。
M8能不采用WM，从CE制作出这样水平的UI，即使是90%抄袭也好，也是非常了不起的。别老拿抄袭说事，Apple reinvents the phone，以Meizu的家底，JW说再reinvents一次，大家会以为他在说笑话。几百年前牛顿就说了，站在巨人的肩膀上。
M8的解锁界面个人非常欣赏，解锁到不同的功能介面，这个是Apple所没有考虑到的贴心功能。咋一看没什么大不了的，但是差距就是一点一点积累出来的。Mac的Dashboard，被人说是噱头，Expose被人说是华丽的花瓶。Windows少了这些虽然也一样能用，但是鼠标一甩，那些乱七八糟的窗口还一动不动，总是有些郁闷的。用户是被惯坏的。
只是有些人喷的问题让人有点受不了。说iPhone系统没有多任务支持是个废品。别忘了，iPhone它就是个手机，它不是电脑，不是所有的用户都懂最小化和关闭有啥区别。不是所有的用户都关心，我现在还剩下多少可用内存，还能开几个程序。就是有多任务支持了又怎么样？屁大的手机屏幕，我还能分成两半使？你说可以应用程序快速切换，那么，现在iPhone的切换怎么样？难怪WWDC上iPhone的manager要嘲笑WM一翻。
我们使用统一的Push平台来解决后台驻留进程对电池、性能的影响，那么，这个问题微软是怎么解决的呢？ 恩，任务管理器. 全场爆笑
微软的设计人员，智商其实挺高的，只是他们经常以为用户的智商跟他们一样高。
写M8评测的人，我也喷两句。大家心里都明白是在打软广告，拜托你也打的专业一些。把wm下的评测软件挨个拿来试试哪个能在M8下跑，能跑起来的试出来个指数，接着Excel做张图，这叫毛评测。你当是测CPU呢。有几个人能看的懂这些个玩意，多截两张操作界面的图，多整出点高质量的视频，比什么都实在。看看iPhone 3G的This is going to change everything那几个广告，好好学学广告该怎么整。
]]></description>
			<content:encoded><![CDATA[<p>cnBeta上看M8和煤油喷多了，越来越觉得没有意思了。很多人还停留在拿苹果的单键鼠标说事的水平上。</p>
<p>M8能不采用WM，从CE制作出这样水平的UI，即使是90%抄袭也好，也是非常了不起的。别老拿抄袭说事，Apple reinvents the phone，以Meizu的家底，JW说再reinvents一次，大家会以为他在说笑话。几百年前牛顿就说了，站在巨人的肩膀上。</p>
<p>M8的解锁界面个人非常欣赏，解锁到不同的功能介面，这个是Apple所没有考虑到的贴心功能。咋一看没什么大不了的，但是差距就是一点一点积累出来的。Mac的Dashboard，被人说是噱头，Expose被人说是华丽的花瓶。Windows少了这些虽然也一样能用，但是鼠标一甩，那些乱七八糟的窗口还一动不动，总是有些郁闷的。用户是被惯坏的。</p>
<p>只是有些人喷的问题让人有点受不了。说iPhone系统没有多任务支持是个废品。别忘了，iPhone它就是个手机，它不是电脑，不是所有的用户都懂最小化和关闭有啥区别。不是所有的用户都关心，我现在还剩下多少可用内存，还能开几个程序。就是有多任务支持了又怎么样？屁大的手机屏幕，我还能分成两半使？你说可以应用程序快速切换，那么，现在iPhone的切换怎么样？难怪WWDC上iPhone的manager要嘲笑WM一翻。</p>
<blockquote><p>我们使用统一的Push平台来解决后台驻留进程对电池、性能的影响，那么，这个问题微软是怎么解决的呢？ 恩，任务管理器. 全场爆笑</p></blockquote>
<p>微软的设计人员，智商其实挺高的，只是他们经常以为用户的智商跟他们一样高。</p>
<p>写M8评测的人，我也喷两句。大家心里都明白是在打软广告，拜托你也打的专业一些。把wm下的评测软件挨个拿来试试哪个能在M8下跑，能跑起来的试出来个指数，接着Excel做张图，这叫毛评测。你当是测CPU呢。有几个人能看的懂这些个玩意，多截两张操作界面的图，多整出点高质量的视频，比什么都实在。看看iPhone 3G的This is going to change everything那几个广告，好好学学广告该怎么整。</p>
]]></content:encoded>
			<wfw:commentRss>http://chemhack.com/cn/2008/12/%e5%96%b7%e4%b8%8bm8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转载：三条鱼的经济学故事</title>
		<link>http://chemhack.com/cn/2008/11/%e8%bd%ac%e8%bd%bd%ef%bc%9a%e4%b8%89%e6%9d%a1%e9%b1%bc%e7%9a%84%e7%bb%8f%e6%b5%8e%e5%ad%a6%e6%95%85%e4%ba%8b/</link>
		<comments>http://chemhack.com/cn/2008/11/%e8%bd%ac%e8%bd%bd%ef%bc%9a%e4%b8%89%e6%9d%a1%e9%b1%bc%e7%9a%84%e7%bb%8f%e6%b5%8e%e5%ad%a6%e6%95%85%e4%ba%8b/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 16:42:17 +0000</pubDate>
		<dc:creator>段炼</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Think]]></category>
		<category><![CDATA[经济学]]></category>

		<guid isPermaLink="false">http://chemhack.com/?p=125</guid>
		<description><![CDATA[

转载按：非常有意思的一篇文章。
那是很早以前看到的故事了。还是在计算机联网还没有走进普通人生活的时候，在计算机联网还只是在美国大学之间相互联网的时候，那时候的计算机网络，就是UNIX网络，加上一个kermit协议通过电话线联网。那时候我们用的是Digital的工作站，现在Digital这个公司已经不见了。Digital是最早研发出64比特计算机芯片的个人电脑，可惜市场时机不对，最后整个公司被Compaq收购，Compaq后来又被HP收购，技术进步了不一定马上实现为经济进步，经济行为不是简单的效用所能够解释。
那时候我们用的计算机终端屏幕是单色的，还没有鼠标，全部依靠键盘指令。开始联网了，很兴奋，看到一些故事，大学网络故事，品味不一般。其中一个就是三条鱼的故事。
话说小池塘里祖祖辈辈生活着一群鱼。这群鱼的长老年事最高，也最受尊重，它经常给晚辈们讲鱼群的古老传说。其中一个传说，就是关于池子外边探险的故事，据说岸上有一个神秘的东西叫做“人”，鱼要遇到“人”一定要装死，这样鱼就可以从岸上回到池子里了。显然，这个故事太古老了，鱼们都盼望有这种到岸上探险的机会。
一天，鱼群正在池底侃大山，忽然听到远方有“人”的脚步声，长老说这是难得的机会，于是作出英雄榜样，跃到岸上装死。一个人走到池边，看到一条死鱼，一抬脚就把那条长老鱼踢回池里了。长老鱼被踢回池塘后对鱼群说，这是百年不遇的机会呀，你们看，我这不是回到池里了。鱼群中有一条正统成年鱼，以前听这故事听得多了，还从来没有遇过人，于是鼓起勇气，一跃跃到岸上，不料呼吸困难，腮子忍不住动了一下，那个人忽然看见一条奄奄一息的鱼，就把它捡起来，放到篓子里，那条正统鱼急得乱跳，结果跳出了鱼篓，回到池里。这跳正统鱼于是把经历讲给其它鱼听，证明长老鱼说的装死的重要性，还到处传授装死的经验教训，并鼓动鱼群中积极上进的鱼效法长老鱼。其中一个乖孩子鱼，认真学习了长老鱼的经验和正统鱼的教训以后，也一跃跳到岸上，而且装死装得十全十美。岸上那个人忽然又看到一条鱼，觉得很蹊跷，心想，今天怎么看到那么多鱼呢？刚才一条奄奄一息的鱼能跳出鱼篓，或许这条鱼也没死呢。想到这，这个人就把鱼捡到鱼篓里，而且把盖子盖得严严实实的，结果果然是一条欢蹦乱跳的鱼，回家美餐了一顿。再说池底的鱼等了半天没看见积极上进的乖孩子回来，最后得出的结论就是它缺乏经验，装死装得不像，被人捡走了。
当年我看了这个故事，听说还是一个经济学家喜闻乐道的故事，一直就不理解这个故事和经济学有什么关系。只是感觉到如我这样从小是听话的乖孩子八成无法适应商场竞争….
 
自从看了这个故事以后，世界已经发生了许多变化：苏联解体、911、还有今天的美国金融危机。前天，这个故事忽然又从我脑海里浮现出来，觉得这个故事至少说明了两个经济学原理。其一是博弈论，其二是行为经济学。
先说博弈。微观经济学和商业管理关注的是企业决策。如果是科学的话，找出客观规律，安照客观规律设计就行了，这样一来经济学和工程学就没有什么两样了。但是，按照博弈学的观点，您决策所依据的信息，会因为您决策后的行为而改变，也就是说，只能是动态决策，而且还有时时关注市场作出相应的决策调整。博弈的对手有两种，一种是一般理解的竞争对手，另一种是环境。因为环境（或市场）也会因为你的行为而改变的。如故事中鱼群面对的环境是“人”，这个“人”的行为被长老鱼和正统鱼的行为改变了，结果上进心强的乖孩子鱼认真学习祖训反而误入歧途。这样的例子我们目睹了许多。如美国是市场经济和民主制度的长老鱼，菲律宾就是乖孩子鱼。菲律宾按照美国模式加入全球市场分工了，结果前一阵粮价一涨，才发现原来自己的农业已经不能保障经济安全了。苏联解体，震荡疗法，结局与长老鱼的典范完全不一样。泡沫经济也一样，无论是股市还是房市还是其它什么霸盘市场，先入的长老鱼把泡沫吹大了，后入的乖孩子结果被泡沫套住了，泡沫破灭时长老鱼已经盈利后连本带利退出市场，剩下的乖孩子鱼血本无归。
再一个就是行为经济学【1】。经济学的另一个角度就是社会行为。长老鱼社会地位高，它的行为就是社会时尚，跳到岸上装死在读者开来是很滑稽的行为，但在池塘里的鱼群看来是最合理不过的行为了。比如说穿高跟鞋，这不符合人体解剖结构和运动生理原理【2】，但是符合社会时尚，正如跳上岸装死不符合鱼的生活习性，尤其是在有人来的时候跳上岸，但是符合鱼群的意识形态。比如说，伊斯兰信徒到麦加朝圣，或者贫困的藏民把一身积蓄献给寺庙买寺庙不缺的酥油，这是酥油的最佳配置吗？面对这些现象如何衡量经济效益呢？扶贫的钱给了他们他们都宗教消费掉，你怎么去扶贫？
今天美国金融危机从次房贷风波引起，次房贷的意识形态就是要拥有房产。为什么要拥有房产呢？租房子住不行吗？为什么房子的Ownership对美国人就那么重要，以至把美国乃至世界经济送到危机的地步？有住所是经济效用，拥有房子是心理效应，在国会上为更多的美国人拥有房产而正义疾呼是意识形态。如果不是这些意识形态作怪，而是像毛泽东提倡的艰苦朴素，那么许多不拥有房产的人一样可以恬淡虚无地租房子过幸福生活。
减肥，以至饮食失常导致生理紊乱，是时尚行为违反生理原理的另一个例子。摄入蛋白质超量，而且天天喝啤酒，然后再天天吃药带着高血压和糖尿病来生活，这大概是美国社会主流的合理生活了。在美国经济的GDP里，一方面是啤酒和快餐的兴旺，一方面是药业的兴旺。美国医疗费用最大的一部分就是慢性病的药，而且西方药业有一个赚钱的妙法，就是根治慢性病的药不多，但维持慢性病的药基本不缺。现代社会的许多生活习惯就和鱼跳到岸上装死一样【3】。先吃出病了，然后再吃药。看电影中西方住家洗脸间厨内都是一堆药，超市里也少不了几货架药品。开车上班回家再踏室内健身车也是一例，为什么不直接骑车上班呢？读者自己仔细观测思考一下，一定还会发现许多类似跳到岸上装死的现象。如为什么必需穿西装面试工作？西装干洗一次的钱就可以买一件便装衣服了，而且可以更舒适。
为了人类生存的环境，打倒消费经济，宣传《物质循环的世界中》系列中《中国能否持续劳动力相对廉价的竞争力》一文的观点。

]]></description>
			<content:encoded><![CDATA[<div class="entry">
<div id="post-108" class="post">
<p>转载按：非常有意思的一篇文章。</p>
<p>那是很早以前看到的故事了。还是在计算机联网还没有走进普通人生活的时候，在计算机联网还只是在美国大学之间相互联网的时候，那时候的计算机网络，就是UNIX网络，加上一个kermit协议通过电话线联网。那时候我们用的是Digital的工作站，现在Digital这个公司已经不见了。Digital是最早研发出64比特计算机芯片的个人电脑，可惜市场时机不对，最后整个公司被Compaq收购，Compaq后来又被HP收购，技术进步了不一定马上实现为经济进步，经济行为不是简单的效用所能够解释。</p>
<p>那时候我们用的计算机终端屏幕是单色的，还没有鼠标，全部依靠键盘指令。开始联网了，很兴奋，看到一些故事，大学网络故事，品味不一般。其中一个就是三条鱼的故事。</p>
<p>话说小池塘里祖祖辈辈生活着一群鱼。这群鱼的长老年事最高，也最受尊重，它经常给晚辈们讲鱼群的古老传说。其中一个传说，就是关于池子外边探险的故事，据说岸上有一个神秘的东西叫做“人”，鱼要遇到“人”一定要装死，这样鱼就可以从岸上回到池子里了。显然，这个故事太古老了，鱼们都盼望有这种到岸上探险的机会。</p>
<p>一天，鱼群正在池底侃大山，忽然听到远方有“人”的脚步声，长老说这是难得的机会，于是作出英雄榜样，跃到岸上装死。一个人走到池边，看到一条死鱼，一抬脚就把那条长老鱼踢回池里了。长老鱼被踢回池塘后对鱼群说，这是百年不遇的机会呀，你们看，我这不是回到池里了。鱼群中有一条正统成年鱼，以前听这故事听得多了，还从来没有遇过人，于是鼓起勇气，一跃跃到岸上，不料呼吸困难，腮子忍不住动了一下，那个人忽然看见一条奄奄一息的鱼，就把它捡起来，放到篓子里，那条正统鱼急得乱跳，结果跳出了鱼篓，回到池里。这跳正统鱼于是把经历讲给其它鱼听，证明长老鱼说的装死的重要性，还到处传授装死的经验教训，并鼓动鱼群中积极上进的鱼效法长老鱼。其中一个乖孩子鱼，认真学习了长老鱼的经验和正统鱼的教训以后，也一跃跳到岸上，而且装死装得十全十美。岸上那个人忽然又看到一条鱼，觉得很蹊跷，心想，今天怎么看到那么多鱼呢？刚才一条奄奄一息的鱼能跳出鱼篓，或许这条鱼也没死呢。想到这，这个人就把鱼捡到鱼篓里，而且把盖子盖得严严实实的，结果果然是一条欢蹦乱跳的鱼，回家美餐了一顿。再说池底的鱼等了半天没看见积极上进的乖孩子回来，最后得出的结论就是它缺乏经验，装死装得不像，被人捡走了。</p>
<p>当年我看了这个故事，听说还是一个经济学家喜闻乐道的故事，一直就不理解这个故事和经济学有什么关系。只是感觉到如我这样从小是听话的乖孩子八成无法适应商场竞争….</p>
<p> </p>
<p>自从看了这个故事以后，世界已经发生了许多变化：苏联解体、911、还有今天的美国金融危机。前天，这个故事忽然又从我脑海里浮现出来，觉得这个故事至少说明了两个经济学原理。其一是博弈论，其二是行为经济学。</p>
<p>先说博弈。微观经济学和商业管理关注的是企业决策。如果是科学的话，找出客观规律，安照客观规律设计就行了，这样一来经济学和工程学就没有什么两样了。但是，按照博弈学的观点，您决策所依据的信息，会因为您决策后的行为而改变，也就是说，只能是动态决策，而且还有时时关注市场作出相应的决策调整。博弈的对手有两种，一种是一般理解的竞争对手，另一种是环境。因为环境（或市场）也会因为你的行为而改变的。如故事中鱼群面对的环境是“人”，这个“人”的行为被长老鱼和正统鱼的行为改变了，结果上进心强的乖孩子鱼认真学习祖训反而误入歧途。这样的例子我们目睹了许多。如美国是市场经济和民主制度的长老鱼，菲律宾就是乖孩子鱼。菲律宾按照美国模式加入全球市场分工了，结果前一阵粮价一涨，才发现原来自己的农业已经不能保障经济安全了。苏联解体，震荡疗法，结局与长老鱼的典范完全不一样。泡沫经济也一样，无论是股市还是房市还是其它什么霸盘市场，先入的长老鱼把泡沫吹大了，后入的乖孩子结果被泡沫套住了，泡沫破灭时长老鱼已经盈利后连本带利退出市场，剩下的乖孩子鱼血本无归。</p>
<p>再一个就是行为经济学【1】。经济学的另一个角度就是社会行为。长老鱼社会地位高，它的行为就是社会时尚，跳到岸上装死在读者开来是很滑稽的行为，但在池塘里的鱼群看来是最合理不过的行为了。比如说穿高跟鞋，这不符合人体解剖结构和运动生理原理【2】，但是符合社会时尚，正如跳上岸装死不符合鱼的生活习性，尤其是在有人来的时候跳上岸，但是符合鱼群的意识形态。比如说，伊斯兰信徒到麦加朝圣，或者贫困的藏民把一身积蓄献给寺庙买寺庙不缺的酥油，这是酥油的最佳配置吗？面对这些现象如何衡量经济效益呢？扶贫的钱给了他们他们都宗教消费掉，你怎么去扶贫？</p>
<p>今天美国金融危机从次房贷风波引起，次房贷的意识形态就是要拥有房产。为什么要拥有房产呢？租房子住不行吗？为什么房子的Ownership对美国人就那么重要，以至把美国乃至世界经济送到危机的地步？有住所是经济效用，拥有房子是心理效应，在国会上为更多的美国人拥有房产而正义疾呼是意识形态。如果不是这些意识形态作怪，而是像毛泽东提倡的艰苦朴素，那么许多不拥有房产的人一样可以恬淡虚无地租房子过幸福生活。</p>
<p>减肥，以至饮食失常导致生理紊乱，是时尚行为违反生理原理的另一个例子。摄入蛋白质超量，而且天天喝啤酒，然后再天天吃药带着高血压和糖尿病来生活，这大概是美国社会主流的合理生活了。在美国经济的GDP里，一方面是啤酒和快餐的兴旺，一方面是药业的兴旺。美国医疗费用最大的一部分就是慢性病的药，而且西方药业有一个赚钱的妙法，就是根治慢性病的药不多，但维持慢性病的药基本不缺。现代社会的许多生活习惯就和鱼跳到岸上装死一样【3】。先吃出病了，然后再吃药。看电影中西方住家洗脸间厨内都是一堆药，超市里也少不了几货架药品。开车上班回家再踏室内健身车也是一例，为什么不直接骑车上班呢？读者自己仔细观测思考一下，一定还会发现许多类似跳到岸上装死的现象。如为什么必需穿西装面试工作？西装干洗一次的钱就可以买一件便装衣服了，而且可以更舒适。</p>
<p>为了人类生存的环境，打倒消费经济，宣传《物质循环的世界中》系列中《中国能否持续劳动力相对廉价的竞争力》一文的观点。</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://chemhack.com/cn/2008/11/%e8%bd%ac%e8%bd%bd%ef%bc%9a%e4%b8%89%e6%9d%a1%e9%b1%bc%e7%9a%84%e7%bb%8f%e6%b5%8e%e5%ad%a6%e6%95%85%e4%ba%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designed by ECUST，欢迎来顶</title>
		<link>http://chemhack.com/cn/2008/10/designed-by-ecust%ef%bc%8c%e6%ac%a2%e8%bf%8e%e6%9d%a5%e9%a1%b6/</link>
		<comments>http://chemhack.com/cn/2008/10/designed-by-ecust%ef%bc%8c%e6%ac%a2%e8%bf%8e%e6%9d%a5%e9%a1%b6/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 11:24:13 +0000</pubDate>
		<dc:creator>段炼</dc:creator>
				<category><![CDATA[Think]]></category>

		<guid isPermaLink="false">http://chemhack.com/?p=69</guid>
		<description><![CDATA[本本速度神速，Designed by ECUST已经出炉了。
有做网站，开博客业务的去找他吧，嘎嘎。

]]></description>
			<content:encoded><![CDATA[<p>本本速度神速，<a href="http://www.dbecust.cn/">Designed by ECUST</a>已经出炉了。</p>
<p>有做网站，开博客业务的去找他吧，嘎嘎。</p>
<p><a href="http://chemhack.com/cn/wp-content/uploads/2008/10/e59bbee78987-13.png"><img class="alignnone size-full wp-image-70" title="DBECUST" src="http://chemhack.com/cn/wp-content/uploads/2008/10/e59bbee78987-13.png" alt="" width="500" height="306" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://chemhack.com/cn/2008/10/designed-by-ecust%ef%bc%8c%e6%ac%a2%e8%bf%8e%e6%9d%a5%e9%a1%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>谁动了我的时间？</title>
		<link>http://chemhack.com/cn/2008/10/%e8%b0%81%e5%8a%a8%e4%ba%86%e6%88%91%e7%9a%84%e6%97%b6%e9%97%b4%ef%bc%9f/</link>
		<comments>http://chemhack.com/cn/2008/10/%e8%b0%81%e5%8a%a8%e4%ba%86%e6%88%91%e7%9a%84%e6%97%b6%e9%97%b4%ef%bc%9f/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 04:27:13 +0000</pubDate>
		<dc:creator>段炼</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Think]]></category>
		<category><![CDATA[时间]]></category>
		<category><![CDATA[时间管理]]></category>

		<guid isPermaLink="false">http://chemhack.com/?p=54</guid>
		<description><![CDATA[谁动了我的时间？这是个问题。
对于像我们这样一天耗费6+个小时在网上的人来说，这个问题似乎是无解的。MSN、QQ、校内、新浪新闻、BBS、pplive，每个程序、每个网站都在想方设法抢走你的时间。你的时间去了哪里？
你本来是要去查一篇文献的，打开浏览器，首页是新闻，那么就先看两眼再查吧。看了一会新闻，好不容易打开了文献数据库，这时你的qq响了，很久没见的朋友在跟你打招呼，于是你又打开了QQ聊了起来。
晚上没事干，看看校内吧。挨个看完了朋友圈的新鲜事，顺便留个言问个好。当你转回自己的空间，别人又给你留言了，于是回复，于是别人再回复你的回复。。。。。
每个人都有这样的经历，只是程度深浅不同而已。对大多数人来说，他们的本意并非是要消磨时间，只是现在的软件和网站都在想方设法让你把时间消磨在它们上面，你的时间就是他们的利润。
花钱花的特别厉害的时候，就想着记一本流水账，把每天花了多少钱记下来。只有人给时间做计划，但是很少有人对时间做记录。对我这样的人来说，计划总是有一堆的，但是能执行下来的确是很少的。常常对着电脑一个晚上最后也不知道到底都干了些啥。那么，为什么不做个记录器？记录我对着电脑做了些什么。我们有木马，有keylogger，做个这个东西不是难事。那么要记录些什么呢？1.进程 通过进程可以知道你在开哪些软件。但是，进程并不能告诉我们你在使用这么一堆软件中的哪一种。于是我们要记录2.当前活跃窗口。通过记录活跃窗口，能够记录下我在某一时间到底是在干什么。
常见的窗口标题就那几种，记录下来很容易。然后根据一定的模式进行归类，归类后即可获得使用时间的统计。比如含有Internet Explorer几个字的我可以认定为是在上网，含有Outlook或者ThunderBird可以认为在处理邮件。如此而已。
]]></description>
			<content:encoded><![CDATA[<p>谁动了我的时间？这是个问题。</p>
<p>对于像我们这样一天耗费6+个小时在网上的人来说，这个问题似乎是无解的。MSN、QQ、校内、新浪新闻、BBS、pplive，每个程序、每个网站都在想方设法抢走你的时间。你的时间去了哪里？</p>
<p>你本来是要去查一篇文献的，打开浏览器，首页是新闻，那么就先看两眼再查吧。看了一会新闻，好不容易打开了文献数据库，这时你的qq响了，很久没见的朋友在跟你打招呼，于是你又打开了QQ聊了起来。</p>
<p>晚上没事干，看看校内吧。挨个看完了朋友圈的新鲜事，顺便留个言问个好。当你转回自己的空间，别人又给你留言了，于是回复，于是别人再回复你的回复。。。。。</p>
<p>每个人都有这样的经历，只是程度深浅不同而已。对大多数人来说，他们的本意并非是要消磨时间，只是现在的软件和网站都在想方设法让你把时间消磨在它们上面，你的时间就是他们的利润。</p>
<p>花钱花的特别厉害的时候，就想着记一本流水账，把每天花了多少钱记下来。只有人给时间做计划，但是很少有人对时间做记录。对我这样的人来说，计划总是有一堆的，但是能执行下来的确是很少的。常常对着电脑一个晚上最后也不知道到底都干了些啥。那么，为什么不做个记录器？记录我对着电脑做了些什么。我们有木马，有keylogger，做个这个东西不是难事。那么要记录些什么呢？1.进程 通过进程可以知道你在开哪些软件。但是，进程并不能告诉我们你在使用这么一堆软件中的哪一种。于是我们要记录2.当前活跃窗口。通过记录活跃窗口，能够记录下我在某一时间到底是在干什么。</p>
<p>常见的窗口标题就那几种，记录下来很容易。然后根据一定的模式进行归类，归类后即可获得使用时间的统计。比如含有Internet Explorer几个字的我可以认定为是在上网，含有Outlook或者ThunderBird可以认为在处理邮件。如此而已。</p>
]]></content:encoded>
			<wfw:commentRss>http://chemhack.com/cn/2008/10/%e8%b0%81%e5%8a%a8%e4%ba%86%e6%88%91%e7%9a%84%e6%97%b6%e9%97%b4%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于人机交互的一点思考</title>
		<link>http://chemhack.com/cn/2008/08/%e5%85%b3%e4%ba%8e%e4%ba%ba%e6%9c%ba%e4%ba%a4%e4%ba%92%e7%9a%84%e4%b8%80%e7%82%b9%e6%80%9d%e8%80%83/</link>
		<comments>http://chemhack.com/cn/2008/08/%e5%85%b3%e4%ba%8e%e4%ba%ba%e6%9c%ba%e4%ba%a4%e4%ba%92%e7%9a%84%e4%b8%80%e7%82%b9%e6%80%9d%e8%80%83/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 16:51:03 +0000</pubDate>
		<dc:creator>段炼</dc:creator>
				<category><![CDATA[Think]]></category>

		<guid isPermaLink="false">http://chemhack.com/archives/2008/08/48/</guid>
		<description><![CDATA[马上要开始一个让人期待的桌面应用程序项目了。单一平台，没有浏览器差异，完善的窗体设计器，好用的IDE，应该算是最佳的开发环境了。Visual Studio很贵，好在有人买单，嘿嘿。介个项目最重要的部分就是人机交互的设计，介个人机交互要怎么来做却是个很无厘头的问题。
什么是好的人机交互界面？
几乎所有讲UI的书都在批判什么样的UI很糟糕，很难用，怎么个糟糕，有多难用。没有一本书给出了好UI的标准答案。好吧，其实他们都说了，好UI的标准答案就是好看，好用的UI。全是废话。
KISS？
记得UNIX的信条吗？Keep It Simple, Stupid 这就是传说中的KISS原则，诞生于当爹的施乐发明图形界面之前。当儿子的苹果牢牢记住了Simple，当孙子的微软貌似就只留下了Stupid，而且还越来越Stupid了。XP的任务栏中出现了窗口组这么个东西，微软称之为“方便的”“改进”。就是这么个玩意，让我在在n多个IE窗口时本来只需要一个点击的动作变成了两个点击。后来出了个Vista，还出了多个版本，在高级版本中提供的Aero功能，又把我喝了一跳。这些年Mac OS的改进微软也是看在眼里急在心里，想抄Expose不小心来了个弄巧成拙。Aero 3D的排列放在那，看起来是3D排列的一排窗口，很酷，用起来怎么那么别扭？虽然是一排窗口，但是只能看到第一个窗口的内容，后面的被通通挡住了，要用鼠标滚轮滚动才能看清，既然这样，这个“快速”切换功能不知还有存在的意义否？
该怎么搞？
老乔在评论iTunes Store时说过一句很在理的话，

They cares nothing about MP3, what they want is music, music, music!

啥意思，换句话说。

用户才不管你用的是MySQL还是MSSQL，不过管你是用的C#还是VB，用户关心的只是色谱色谱色谱色谱！

]]></description>
			<content:encoded><![CDATA[<p>马上要开始一个让人期待的桌面应用程序项目了。单一平台，没有浏览器差异，完善的窗体设计器，好用的IDE，应该算是最佳的开发环境了。Visual Studio很贵，好在有人买单，嘿嘿。介个项目最重要的部分就是人机交互的设计，介个人机交互要怎么来做却是个很无厘头的问题。</p>
<p>什么是好的人机交互界面？</p>
<p>几乎所有讲UI的书都在批判什么样的UI很糟糕，很难用，怎么个糟糕，有多难用。没有一本书给出了好UI的标准答案。好吧，其实他们都说了，好UI的标准答案就是好看，好用的UI。全是废话。</p>
<p>KISS？</p>
<p>记得UNIX的信条吗？Keep It Simple, Stupid 这就是传说中的KISS原则，诞生于当爹的施乐发明图形界面之前。当儿子的苹果牢牢记住了Simple，当孙子的微软貌似就只留下了Stupid，而且还越来越Stupid了。XP的任务栏中出现了窗口组这么个东西，微软称之为“方便的”“改进”。就是这么个玩意，让我在在n多个IE窗口时本来只需要一个点击的动作变成了两个点击。后来出了个Vista，还出了多个版本，在高级版本中提供的Aero功能，又把我喝了一跳。这些年Mac OS的改进微软也是看在眼里急在心里，想抄Expose不小心来了个弄巧成拙。Aero 3D的排列放在那，看起来是3D排列的一排窗口，很酷，用起来怎么那么别扭？虽然是一排窗口，但是只能看到第一个窗口的内容，后面的被通通挡住了，要用鼠标滚轮滚动才能看清，既然这样，这个“快速”切换功能不知还有存在的意义否？</p>
<p>该怎么搞？</p>
<p>老乔在评论iTunes Store时说过一句很在理的话，</p>
<blockquote>
<p>They cares nothing about MP3, what they want is music, music, music!</p>
</blockquote>
<p>啥意思，换句话说。</p>
<blockquote>
<p>用户才不管你用的是MySQL还是MSSQL，不过管你是用的C#还是VB，用户关心的只是色谱色谱色谱色谱！</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://chemhack.com/cn/2008/08/%e5%85%b3%e4%ba%8e%e4%ba%ba%e6%9c%ba%e4%ba%a4%e4%ba%92%e7%9a%84%e4%b8%80%e7%82%b9%e6%80%9d%e8%80%83/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WYSIWYG WYTIWYG</title>
		<link>http://chemhack.com/cn/2008/08/wysiwyg-wytiwyg/</link>
		<comments>http://chemhack.com/cn/2008/08/wysiwyg-wytiwyg/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 04:28:29 +0000</pubDate>
		<dc:creator>段炼</dc:creator>
				<category><![CDATA[Think]]></category>
		<category><![CDATA[WYSIWYG]]></category>
		<category><![CDATA[WYTIWYG]]></category>

		<guid isPermaLink="false">http://chemhack.com/archives/2008/08/42/</guid>
		<description><![CDATA[<p>当然有，从简单到不能再简单的纯文本，到有基本样式功能的RTF，再到旧的UNIX学院派的LaTex（发明Tex的高德纳是个天才，他发明的数据结构这门课现在还在折腾全世界CS系的童鞋们，嘿嘿）。 ... &#60;段落&#62;这是一句话，这是一个表格&#60;表格&#62;&#60;行&#62;这是第一行&#60;/行&#62;&#60;行&#62;这是第二行&#60;/行&#62;&#60;/表格&#62;&#60;/段落&#62; 这里就举个例子说明一下XHTML的可扩展性，其实CHTML这个东西跟汉语编程一样无聊。</p>]]></description>
			<content:encoded><![CDATA[<p style="font-size: 13px;">WYSIWYG：所见即所得 Word、Visio、Dreamweaver</p>
<p style="font-size: 13px;">WYTIWYG：所想即所得 LaTex、DOT、HTML&amp;CSS</p>
<p style="font-size: 13px;">经过Word、Visio、Dreamweaver这一干软件的一番忽悠，WYSIWYG的观念早就到处泛滥了。但是WYTIWYG你听说过吗？Mac OS的拼写检查甚至还建议我改成WYSIWYG。</p>
<p style="font-size: 13px;"><img src="http://chemhack.com/cn/wp-content/uploads/2008/08/3.png" width="270" height="165" alt="图片 3.png" /></p>
<p style="font-size: 13px;">所想即所得是个很好的概念，易学，对于小规模的项目处理的得心应手。但是一旦到了多人协作的大规模项目，就显得非常力不从心了，不仅仅是难用，而是根本无法使用。想想两个作者和一个编辑一起用Word工作的情况，一个巨大的Doc文件，缓慢的打开速度，页面上乱七八糟花花绿绿的批注。不但影响工作效率，还非常影响心情，FRG！</p>
<p style="font-size: 13px;">再聊聊Visio，画巨型关系图的时候，根本无法两个人一起工作，同一份文件，一个人修改一部分，另一个人修改了另一个部分，两个人的修改却无法合并，这么重要的一个功能竟然缺失了。</p>
<p style="font-size: 13px;">一直想把CVS引入到文本工作的团队协作上，但是大家用的往往都是word，这造成了一个很严重的问题，版本控制中的一个重要环节─合并更改根本无法实施。</p>
<p style="font-size: 13px;">要想要团队写作顺利进行，文件格式必须是文本的，这样才能是diff等工具有用武之地。文本格式还必须是人能够辨读的文本，这样使用者才能进行合并更改。（把二进制文件用Base64编码一下那也是文本，但是人看得懂吗？）</p>
<p style="font-size: 13px;">那么，这样一种文本格式有没有？</p>
<p style="font-size: 13px;">当然有，从简单到不能再简单的纯文本，到有基本样式功能的RTF，再到旧的UNIX学院派的LaTex（发明Tex的高德纳是个天才，他发明的数据结构这门课现在还在折腾全世界CS系的童鞋们，嘿嘿）。</p>
<p style="font-size: 13px;">纯文本？一般用用问题不大的，但是不支持复杂的样式，在实际应用中意义不大。</p>
<p style="font-size: 13px;">那么RTF？和纯文本同样问题，虽然有样式支持，但是文件格式，如果让你手写出来，你写的10行里有6行是指定格式的废话，实用性也不大。</p>
<p style="font-size: 13px;">最后再看看LaTex。LaTex这个东西，功能非常强大，易用性也可以说还不错，就是有着*nix类程序的通病，组件多，配置多，学起来很烦。如果不是自然科学类的学术专著的话，有几位敢用LaTex来写，又有几家国内出版社愿意编辑LaTex的稿件。不过LaTex在学术界现在还是在广泛使用的，某些期刊是只接受LaTex格式的稿件的。</p>
<p style="font-size: 13px;">OK，那我们还能用什么？就说说挨踢业界的应用。一份开源类库文档？一本in Action书？说个大白话，不管什么需求，都是属于这两类的，网络出版或者印刷出版。现在就说说网络出版，你可以整成PDF甚至也可以像某些小说网站防盗链一样直接就来个JPEG图片，但是从方便读者的角度考虑还是使用HTML方便。大部分的HTML都是在Word里完成再由机器导出的，不够也可以反过来想想，问什么不可以直接手写HTML？</p>
<p style="font-size: 13px;">手写HTML，将LaTex式的WYTIWYG思想引入到写作的过程中。你不要像用Word一样想着这里应该加粗，那里应该加个下划线，这边应该右对齐。就用HTML标签来说明，这里是个关键字，那里是个重点段落。写文档的时候只要用HTML标签来标注，关键字应该怎么强调，重点段落应该怎么突出，可以留到后面让CSS来慢慢解决。</p>
<p style="font-size: 13px;">HTML是基于文本的，因此有极好的CVS兼容性。另一方面，HTML（XHTML）语法极为简单易懂，而且有极强的扩展性。各位看官不知道有没有听说过CHTML（Chinese How To Make Love?），利用一个特制的DTD把HTML变成了这样的样子。</p>
<p style="font-size: 13px;">&lt;段落&gt;这是一句话，这是一个表格&lt;表格&gt;&lt;行&gt;这是第一行&lt;/行&gt;&lt;行&gt;这是第二行&lt;/行&gt;&lt;/表格&gt;&lt;/段落&gt;</p>
<p style="font-size: 13px;">其实CHTML这个东西跟汉语编程一样无聊，这里就举个例子说明一下XHTML的可扩展性。我们在真正拿HTML来写的时候可以这么写。</p>
<p style="font-size: 13px;">这里是一段话，有一个&lt;kw&gt;关键字&lt;/kw&gt;，还有一句Java代码&lt;code&gt;System.out.println(&#8220;Hello World!&#8221;);&lt;/code&gt;</p>
<p style="font-size: 13px;">HTML比LaTex优越的另外一个重要因素是当团队中有人无法接受手写HTML时，可以采用DreamWeaver这样的工具（其实我觉得用DreamWeaver去点按钮还不如用多打几个字母方便）。</p>
<p style="font-size: 13px;">那么，印刷出版怎么办？我们也都知道，HTML对于Page的页面是很模糊的，而且在不同的浏览器中还有不同的渲染效果。现在有个思路，定制一个Gecko或者WebKit内核，定制一个DTD，扩展HTML加入所缺失的功能，以此作为渲染标准。不过现在也就是随便说说罢了。</p>
]]></content:encoded>
			<wfw:commentRss>http://chemhack.com/cn/2008/08/wysiwyg-wytiwyg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
