<?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>为之漫笔 &#187; 好书</title>
	<atom:link href="http://www.cn-cuckoo.com/category/good-book/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cn-cuckoo.com</link>
	<description>为之漫笔（李松峰），本博客专注于Web前后端技术、移动平台开发技术、交互设计和技术翻译。声明一下，因为时常需要外出审稿，而且基本不带笔记本，所以有时可能会迟一点回复大家的留言。</description>
	<lastBuildDate>Mon, 12 Dec 2011 01:43:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>犀牛书作者David Flanagan谈盗版</title>
		<link>http://www.cn-cuckoo.com/2011/05/04/david-flanagan-on-piracy-2429.html</link>
		<comments>http://www.cn-cuckoo.com/2011/05/04/david-flanagan-on-piracy-2429.html#comments</comments>
		<pubDate>Wed, 04 May 2011 10:41:20 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[出版]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=2429</guid>
		<description><![CDATA[原文链接：JavaScript: The Definitive Guide Sixth Edition pdf download ebook 每次，只要我的新书一出来，我准会因为盗版生一肚子气。为这事，我都在Twitter上发过消息了，但在Google搜索框里只有写长一点你才会发现微妙的差异。这篇文章题目是什么意思？就是Google对搜索我的书的人给出的建议。 要是有足够多的人把链接指向我这篇文章，没准搜索建议会把那些找盗版书的人都引到我这个页面，而不是盗版电子书网站 。[更新：太好了，到今天晚上为止，选择上面截图中的任何一条搜索建议，我的这篇文章都会排在那些电子书下载站点前面！庆祝一下这个象征性的胜利！] 好，下面我就想到哪说到哪，不过可不止140个字符啊，谈谈我对盗版图书的看法。 我认真看过Tim O&#8217;Reilly谈盗版的两篇文章：Tim O&#8217;Reilly on Piracy, Tinkering, and the Future of the Book和Piracy is Progressive Taxation, and Other Thoughts on the Evolution of Online Distribution。我也同意其中的一些观点。比如，默默无闻比盗版更糟糕。我知道有些作者一方面让读者免费（也是合法地）下载自己的书，一方面还能取得不错的销售业绩。我知道有些世俗小说作家搞自出版，一本书只卖99美分，同样取得了成功。（但我对那个世界知之甚少，没办法链接到其中任何一位作者。）然而，对大多数上述作者来说，“成功”的含义是“我的书卖99美分比卖3.99美元挣得还要多”。靠卖99美分一本书来养家糊口的幸运儿只是凤毛麟角。我不认为自出版定价99美分就是技术书的未来。 15年来，我完全依靠图书版税收入来维持自己和家庭的开支，也算是少数幸运作者之一了。但自从.COM泡沫破裂以后，随着出版业日益衰退，我的版税收入差不多也在稳步下降。我已经决定去找一份工作，去挣工资了。对我来说，这标志一个时代结束了。（听起来像是抱怨吗？别忘了这对我意味着什么。要是在自己的博客上都不能抱怨了，我还能到哪里去抱怨？:-)） 我不知道我的收入减少到底是不是因为盗版，或者说多大程度上因为盗版。我怀疑互联网以及从纸质书向电子书的过渡除了做到像盗版那样还能有什么可为的。但我也同样怀疑盗版的影响再大能大到哪里去。 不过，抛开无法统计的财务影响不谈，我想，我还是可以告诉大家，对我的书的盗版已经让我苦恼至极。2008年，我的Ruby书出版后一周左右，盗版就可以随便下载了，那时我就感到很悲哀。今年年初，我的jQuery参考手册上市，令我震惊的是Google居然把下载站点链接放得比这本书的评论链接还靠前。现在，JavaScript: The Definitive Guide出来了，我连样书都还没收到呢，违法的电子版就已经谁想下都能下了。而且，Google还向那些搜索这本书的人推荐那些违法的下载链接（见上面的屏幕截图）。为了写这本书，我花了不知道有多少心血，我想说，这种感觉不啻掏走了我的心肝一样。 我在Twitter上也试着挑衅过，我的那条微博写道：“难道Google支持盗版？”但我确实认为这是一个实实在在的问题。如果Google索引ebookee之类的直接包含下载链接的站点，为人们寻找盗版内容提供便利，甚至还建议人们去搜索下载链接，那么我认为就足以说明Google在鼓励盗版。而这里边最最关键的是，盗版内容那么轻易就能到手，人们就是想“做贼心虚”，恐怕都找不到理由了。Google会给恶意软件站点打上“这个站点可能伤害你的计算机”的标签，默认会把色情图书过滤掉。但对违法的电子书采取什么措施了？这些下载链接就堂而皇之地明摆在那——还不就是告诉人们，下载没错。 我知道盗版电子书无法消灭。而且，我不认为我们应该（或能够）通过严格DRM（Digital Rights Management，数字版权管理）来锁住一切。但我也认为对盗版放任自流的态度是错误的。即使出版商无法战胜盗版，他们至少应该能够据理相持，而不是甘认失败。 为此，我给出几个可能有用的小建议。 Google可以过滤自己的搜索建议项，不要积极地推荐盗版。我怀疑在有人输入某个艳星的名字时，Google会不会过滤掉建议的关键词？Google已经有了一个受版权保护图书的数据库了（Google Books），因此在有人搜索一本书时，过滤掉这些建议项应该很简单。 Google可以给那些可能链接到盗版内容的链接加上标签（不用过滤）。Google已经在给某些搜索结果加“this site may harm your [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;">原文链接：<a href="http://www.davidflanagan.com/2011/04/javascript-the-1.html">JavaScript: The Definitive Guide Sixth Edition pdf download ebook</a></p>
<p>每次，只要我的新书一出来，我准会因为盗版生一肚子气。为这事，我都在Twitter上发过消息了，但在Google搜索框里只有写长一点你才会发现微妙的差异。这篇文章题目是什么意思？就是Google对搜索我的书的人给出的建议。</p>
<p><img class="aligncenter colorbox-2429" title="googlesuggest" src="http://www.davidflanagan.com/images/googlesuggest.png" alt="" width="600" height="156" /></p>
<p>要是有足够多的人把链接指向我这篇文章，没准搜索建议会把那些找盗版书的人都引到我这个页面，而不是盗版电子书网站 <img src='http://www.cn-cuckoo.com/main/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley colorbox-2429' /> 。[更新：太好了，到今天晚上为止，选择上面截图中的任何一条搜索建议，我的这篇文章都会排在那些电子书下载站点前面！庆祝一下这个象征性的胜利！]</p>
<p>好，下面我就想到哪说到哪，不过可不止140个字符啊，谈谈我对盗版图书的看法。<span id="more-2429"></span></p>
<p>我认真看过Tim O&#8217;Reilly谈盗版的两篇文章：Tim O&#8217;Reilly on Piracy, Tinkering, and the Future of the Book和Piracy is Progressive Taxation, and Other Thoughts on the Evolution of Online Distribution。我也同意其中的一些观点。比如，默默无闻比盗版更糟糕。我知道有些作者一方面让读者免费（也是合法地）下载自己的书，一方面还能取得不错的销售业绩。我知道有些世俗小说作家搞自出版，一本书只卖99美分，同样取得了成功。（但我对那个世界知之甚少，没办法链接到其中任何一位作者。）然而，对大多数上述作者来说，“成功”的含义是“我的书卖99美分比卖3.99美元挣得还要多”。靠卖99美分一本书来养家糊口的幸运儿只是凤毛麟角。我不认为自出版定价99美分就是技术书的未来。</p>
<p>15年来，我完全依靠图书版税收入来维持自己和家庭的开支，也算是少数幸运作者之一了。但自从.COM泡沫破裂以后，随着出版业日益衰退，我的版税收入差不多也在稳步下降。我已经决定去找一份工作，去挣工资了。对我来说，这标志一个时代结束了。（听起来像是抱怨吗？别忘了这对我意味着什么。要是在自己的博客上都不能抱怨了，我还能到哪里去抱怨？:-)）</p>
<p>我不知道我的收入减少到底是不是因为盗版，或者说多大程度上因为盗版。我怀疑互联网以及从纸质书向电子书的过渡除了做到像盗版那样还能有什么可为的。但我也同样怀疑盗版的影响再大能大到哪里去。</p>
<p>不过，抛开无法统计的财务影响不谈，我想，我还是可以告诉大家，对我的书的盗版已经让我苦恼至极。2008年，我的Ruby书出版后一周左右，盗版就可以随便下载了，那时我就感到很悲哀。今年年初，我的jQuery参考手册上市，令我震惊的是Google居然把下载站点链接放得比这本书的评论链接还靠前。现在，JavaScript: The Definitive Guide出来了，我连样书都还没收到呢，违法的电子版就已经谁想下都能下了。而且，Google还向那些搜索这本书的人推荐那些违法的下载链接（见上面的屏幕截图）。为了写这本书，我花了不知道有多少心血，我想说，这种感觉不啻掏走了我的心肝一样。</p>
<p>我在Twitter上也试着挑衅过，我的那条微博写道：“难道Google支持盗版？”但我确实认为这是一个实实在在的问题。如果Google索引ebookee之类的直接包含下载链接的站点，为人们寻找盗版内容提供便利，甚至还建议人们去搜索下载链接，那么我认为就足以说明Google在鼓励盗版。而这里边最最关键的是，盗版内容那么轻易就能到手，人们就是想“做贼心虚”，恐怕都找不到理由了。Google会给恶意软件站点打上“这个站点可能伤害你的计算机”的标签，默认会把色情图书过滤掉。但对违法的电子书采取什么措施了？这些下载链接就堂而皇之地明摆在那——还不就是告诉人们，下载没错。</p>
<p>我知道盗版电子书无法消灭。而且，我不认为我们应该（或能够）通过严格DRM（Digital Rights Management，数字版权管理）来锁住一切。但我也认为对盗版放任自流的态度是错误的。即使出版商无法战胜盗版，他们至少应该能够据理相持，而不是甘认失败。</p>
<p>为此，我给出几个可能有用的小建议。</p>
<ul>
<li>Google可以过滤自己的搜索建议项，不要积极地推荐盗版。我怀疑在有人输入某个艳星的名字时，Google会不会过滤掉建议的关键词？Google已经有了一个受版权保护图书的数据库了（Google Books），因此在有人搜索一本书时，过滤掉这些建议项应该很简单。</li>
<li>Google可以给那些可能链接到盗版内容的链接加上标签（不用过滤）。Google已经在给某些搜索结果加“this site may harm your computer”（这个站点可能伤害你的计算机）之类的标签了，为什么不能给盗版站点加上这样的标签：“Downloading content from this site may result in legal action by the copyright holder”（从这个站点下载内容可能招致版权所有人的法律诉讼）？或者更友好简洁一些：“this site may harm your karma.”（这个站点可能会给你招来报应）。</li>
</ul>
<p>最后，就引用我新书前言里的一个附注“A Note about Piracy”（关于盗版的说明）作为结尾吧：</p>
<div style="border:1px dashed #E6DB55; background:#ffffe0;margin:2em;padding:1em;">
如果你正在阅读本书的电子版，而你（或你的老板）并没有付钱（或者也不是从花钱买它的人那里借来的），那么你看的可能就是盗版。写本书第6版是我的专职工作，花了一年多时间。付出这么多时间得到回报的唯一途径，就是读者能够花钱买这本书。而保证我能继续写本书第7版的唯一途径，就是我可以从现在这第6版中拿回报酬。</p>
<p>我不会原谅盗版行径，但假如你看的真是盗版，继续再看几章也没问题。我想，你会发现这本书对于学习JavaScript一定很有价值，与那些在网上随处可见的免费（甚至不合法的）内容相比，这本书组织得更好，质量更高。如果你同意这是一本有价值的书，那就请去买一本正版来看（纸版或者电子版都行）。话说回来，如果你认为这本书与网上那些免费信息也差不了多少，那麻烦你把盗版扔掉，去看那些免费的信息。
</p></div>
<p>更新：感谢大家诚挚的鼓励和有见地的留言！今天晚上，我已经回复了你们大多数留言。但我还得认真去准备我参加JSConf的演讲，所以未来两天恐怕不能再给大家回复了。</p>
<p>更新：又多了很多高水平的留言！我真希望这个博客能有一个按线索串起留言的系统。以前这不是问题。</p>
<p>（完；以下——在翻译本文时——是109条留言）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2011/05/04/david-flanagan-on-piracy-2429.html/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>华山论剑：世界顶尖程序员论语言及测试</title>
		<link>http://www.cn-cuckoo.com/2011/04/28/got-any-quotes-from-coders-at-work-2416.html</link>
		<comments>http://www.cn-cuckoo.com/2011/04/28/got-any-quotes-from-coders-at-work-2416.html#comments</comments>
		<pubDate>Thu, 28 Apr 2011 01:01:06 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=2416</guid>
		<description><![CDATA[原文地址：Got Any Quotes from Coders At Work 最近，我看完了Peter Seibel的《编程人生》。哈，这是一本世界顶尖程序员和计算机科学家的访谈。看看都有谁，这些牛人在Wiki上都有自己的条目：Jamie Zawinski、Brad Fitzpatrick、Douglas Crockford、Brendan Eich、Josh Bloch、Joe Armstrong、Simon Peyton-Jones、Peter Norvig、Guy Steele、Dan Ingalls、Peter Deutsch、Ken Thompson、Fran Allen、Bernie Cosell和Don Knuth。 这本书固然非常棒，我非常喜欢，不过囿于访谈这种体裁，比较被采访人关于相同话题的观点也确实有点麻烦。但不管怎么说，作者Peter Seibel还是忠实地记录了他们的言论，所以我就想自己从这些智慧箴言中再提炼出一些真正有用的观点来。 经过一番努力，我按照自己的兴趣（静态类型和不变量）分别挑选出了一些重要的话。我这种分法未必合理，供大家参考吧。 大牛们谈“静态类型” Brad Fitzpatrick：“我也希望能够在编译时得到一些警示，希望它能提醒我‘你看看，你这都干了些什么呀’之类的。而有时候呢，我又觉得无所谓，希望在运行时再被曝光问题或者什么的。” Doug Crockford：“可是你在经典继承当中做不到这一点——你只能一味地按照抽象到实例的思维方式去想。在这个思想框架中，很难设计出合理的层次关系。等后来你真的理解了问题所在之后，你就不得不再回过头来对它进行重构。这时候再重构对代码的影响可就不是一星半点了，如果在你幡然醒悟的时候，原来的代码已经变得非常庞大了，你怎么办？” Doug Crockford：“在JavaScript中，我发现重构真是很简单的一件事。可是如果要对一个层层递进的类层次进行重构，那可就要多难有多难了。” Brendan Eich：“那些疯疯颠颠、几近白痴的话不能信，说什么动态语言终有一天会完全把Java还有静态语言取而代之，这不是混话吗？” Josh Bloch：“OO很有意思。可以从两方面看，首先就是模块化。模块化很了不起啊。不过，我倒不觉得这是OO的人的专利。……其次就是继承，而我对继承的看法跟现在很多人的看法一样，那就是继承有利也有弊。” Josh Bloch：“这个例子就说明，必须要有安全的语言。这个问题（栈溢出）本来就不是人应该考虑的事。” Josh Bloch：“我还是喜欢泛型。泛型可以帮我找出代码中的bug，可以让我把通常得写在注释里面的约定拿出来写在代码里面，然后通过编译器来保证它们得到强制遵守。” Joe Armstrong：“然后支持静态类型的人就说了，‘好，在封送数据结构的时候我们的的确确能感受到动态类型的好处。’如果你随便在网上发一段程序，如果你不知道数据类型，就没办法重建原来的数据。” Joe Armatrong：“我们缺少两类东西之间的一个协议：你发给我一个那种东西，我再发给一个这种东西，怎么办？数据包以及它们的类型有多种方式可以描述，但描述协议的方式却非常有限。” Simon Peyton-Jones：“其中一个不常提及的例子就是维护。当你面对一堆3年前写的不那么完美的代码，又想对它进行系统性地改进，怎么办？注意是系统性、全局性的改进，不是单单修改哪个例程。在这种情况下，类型系统的作用一下就显现出来了。” Simon Peyton-Jones：“只要静态类型合适，你就尽管放心地用，光从维护角度看，你就值了。” Dan Ingalls：“类型就相当于程序中的断言。我认为尽量保持事情简单很有价值，包括连类型都不必提。” Ken Thompson：“有bug就有bug呗。谁写代码都会有bug，那都是人的问题。如果说它是一种运行时安全的语言，那么遇到bug时，操作系统应该崩溃，用不着什么缓冲区溢出，也就不会被利用了。” 大牛们谈“不变量和断言” [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;">原文地址：<a title="got-any-quotes-from-coders-at-work" href="http://whiley.org/2011/04/25/got-any-quotes-from-coders-at-work/" target="_blank">Got Any Quotes from Coders At Work</a></p>
<p><a href="http://product.china-pub.com/197294"><img class="colorbox-2416"  style="float:left;margin:0 1em 1em 0;width:200px;" src="http://img3.douban.com/lpic/s4549954.jpg" alt="编程人生" /></a>
<p>最近，我看完了Peter Seibel的《编程人生》。哈，这是一本世界顶尖程序员和计算机科学家的访谈。看看都有谁，这些牛人在Wiki上都有自己的条目：Jamie Zawinski、Brad Fitzpatrick、Douglas Crockford、Brendan Eich、Josh Bloch、Joe Armstrong、Simon Peyton-Jones、Peter Norvig、Guy Steele、Dan Ingalls、Peter Deutsch、Ken Thompson、Fran Allen、Bernie Cosell和Don Knuth。</p>
<p>这本书固然非常棒，我非常喜欢，不过囿于访谈这种体裁，比较被采访人关于相同话题的观点也确实有点麻烦。但不管怎么说，作者Peter Seibel还是忠实地记录了他们的言论，所以我就想自己从这些智慧箴言中再提炼出一些真正有用的观点来。</p>
<p>经过一番努力，我按照自己的兴趣（静态类型和不变量）分别挑选出了一些重要的话。我这种分法未必合理，供大家参考吧。</p>
<p><span id="more-2416"></span></p>
<h2>大牛们谈“静态类型”</h2>
<div style="margin:0 3em;background-color:#FFFBCC;border:1px solid #e6db55;padding:2em;line-height:1.6;">
<strong>Brad Fitzpatrick</strong>：“我也希望能够在编译时得到一些警示，希望它能提醒我‘你看看，你这都干了些什么呀’之类的。而有时候呢，我又觉得无所谓，希望在运行时再被曝光问题或者什么的。”</p>
<p><strong>Doug Crockford</strong>：“可是你在经典继承当中做不到这一点——你只能一味地按照抽象到实例的思维方式去想。在这个思想框架中，很难设计出合理的层次关系。等后来你真的理解了问题所在之后，你就不得不再回过头来对它进行重构。这时候再重构对代码的影响可就不是一星半点了，如果在你幡然醒悟的时候，原来的代码已经变得非常庞大了，你怎么办？”</p>
<p><strong>Doug Crockford</strong>：“在JavaScript中，我发现重构真是很简单的一件事。可是如果要对一个层层递进的类层次进行重构，那可就要多难有多难了。”</p>
<p><strong>Brendan Eich</strong>：“那些疯疯颠颠、几近白痴的话不能信，说什么动态语言终有一天会完全把Java还有静态语言取而代之，这不是混话吗？”</p>
<p><strong>Josh Bloch</strong>：“OO很有意思。可以从两方面看，首先就是模块化。模块化很了不起啊。不过，我倒不觉得这是OO的人的专利。……其次就是继承，而我对继承的看法跟现在很多人的看法一样，那就是继承有利也有弊。”</p>
<p><strong>Josh Bloch</strong>：“这个例子就说明，必须要有安全的语言。这个问题（栈溢出）本来就不是人应该考虑的事。”</p>
<p><strong>Josh Bloch</strong>：“我还是喜欢泛型。泛型可以帮我找出代码中的bug，可以让我把通常得写在注释里面的约定拿出来写在代码里面，然后通过编译器来保证它们得到强制遵守。”</p>
<p><strong>Joe Armstrong</strong>：“然后支持静态类型的人就说了，‘好，在封送数据结构的时候我们的的确确能感受到动态类型的好处。’如果你随便在网上发一段程序，如果你不知道数据类型，就没办法重建原来的数据。”</p>
<p><strong>Joe Armatrong</strong>：“我们缺少两类东西之间的一个协议：你发给我一个那种东西，我再发给一个这种东西，怎么办？数据包以及它们的类型有多种方式可以描述，但描述协议的方式却非常有限。”</p>
<p><strong>Simon Peyton-Jones</strong>：“其中一个不常提及的例子就是维护。当你面对一堆3年前写的不那么完美的代码，又想对它进行系统性地改进，怎么办？注意是系统性、全局性的改进，不是单单修改哪个例程。在这种情况下，类型系统的作用一下就显现出来了。”</p>
<p><strong>Simon Peyton-Jones</strong>：“只要静态类型合适，你就尽管放心地用，光从维护角度看，你就值了。”</p>
<p><strong>Dan Ingalls</strong>：“类型就相当于程序中的断言。我认为尽量保持事情简单很有价值，包括连类型都不必提。”</p>
<p><strong>Ken Thompson</strong>：“有bug就有bug呗。谁写代码都会有bug，那都是人的问题。如果说它是一种运行时安全的语言，那么遇到bug时，操作系统应该崩溃，用不着什么缓冲区溢出，也就不会被利用了。”
</div>
<h2>大牛们谈“不变量和断言”</h2>
<div style="margin:0 3em;background-color:#FFFBCC;border:1px solid #e6db55;padding:2em;line-height:1.6;">
<strong>Jamie Zawinski</strong>：“显而易见，放一条断言语句进去对调试而言肯定有用，而且就像你说的，对写文档也有用。”</p>
<p><strong>Brad Fitzpatrick</strong>：“我主要会在开始的时候考虑很多条件，然后在构造函数中和函数的开头再一一检查。”</p>
<p><strong>Brendan Eich</strong>：“那些写得不好的断言就不提了，反正在Mozilla，随着时间推移，好的断言越来越多。由此，我们觉得也受到了一些启发，明白了什么是不变量，而这些恐怕只有在理想的类型系统中才能表达。”</p>
<p><strong>Doug Crockford</strong>：“说简单点，软件其实就是一套关于软件该怎么工作的规范。任何不完整的规范，都不能告诉你软件最终会怎么实现它的功能。”</p>
<p><strong>Doug Crockford</strong>：“我觉得Eiffel确实更有意思一些，我喜欢的是它的precondition/postcondition契约。我真希望自己在用的无论哪种语言能支持这个特性，遗憾的是，这个特性跟很多其他想法一样，都没有流行起来。”</p>
<p><strong>Josh Bloch</strong>：“你应该知道，断言是我在Java Programming Language中第一批加入的特性，而且我也深知，这些特性永远不进入主流文化。”</p>
<p><strong>Josh Bloch</strong>：“我说过，我使用断言是为了确保编译后的不变量是可以维护的。如果不变量出了问题，我觉得应该知道是什么时候出的问题。”</p>
<p><strong>Simon Peyton-Jones</strong>：“你可以给一个函数写一个类似这样的一样契约：‘你给我一个大于零的参数，我再给你一个小于零的结果。’”</p>
<p><strong>Simon Peyton-Jones</strong>：“假设你宣称你的目标是让一切都能通过机器检查来验证其正确性。但这句话的意思仍然还是不够明确。机器验证可以，但根据什么来验证呢？”</p>
<p><strong>Simon Peyton-Jones</strong>：“我想在真正的开发中，最好还是把那些你希望程序有的属性都写下来。比如说，‘这个阀门不能跟那个阀门一起关。这棵树应该始终保持匀称地生成。这个函数任何时候都得返回一个大于零的结果。’这些全都是规格说明书中的一小部分，构不成一个完整的规格说明书。它们只是你希望的东西。”</p>
<p><strong>Peter Norvig</strong>：“跟循环不变量一样，我始终认为它带来的问题比好处多。”</p>
<p><strong>Guy Steele</strong>：“我对应该记录什么有了更深入的理解，我觉得更多地应该是数据结构，我觉得应该更多地应该是它们的不变量。”</p>
<p><strong>Guy Steele</strong>：“举个例子吧，这儿有一个数组和一个整数，而这个整数应该是数组中的一个有效索引。这个关系在Java中就不容易表达。”</p>
<p><strong>Dan Ingalls</strong>：“假如在程序中什么危险的事儿都允许做，那么当你坐下来进行形式验证的时候，麻烦就都来了。你想啊，每一步你都得这么考虑，‘嗯，这个有可能发生，那个有可能发生，那个也有可能发生。’”</p>
<p><strong>Peter Deutsch</strong>：“我的看法还是那样，如果你把数据结构和它们的不变量弄好了，大多数代码你就自然而然知道该怎么写了。”</p>
<p><strong>Peter Deutsch</strong>：“现在想一想，要想让软件去做我们想让它做的事，不能依赖断言，或者说归纳断言，而要依靠更好、更强大、更深层次的声明性语法。”</p>
<p><strong>Peter Deutsch</strong>：“在我看来，把定理验证技术当作改进软件可靠性的实用技术来用，已经基本宣告失败，而这就是原因。把想要证明的那些属性都逐个地规范起来，简直是不可能的事儿。”</p>
<p><strong>Don Knuth</strong>：“有人可能会说自己的程序经过验证了，而且之所以能通过验证，是因为根据某些验证器的验证，只有该程序达到了相应规范的要求。可是，验证器就没有bug吗，规范本身也难免会有bug。”
</div>
<h2>结论</h2>
<p>这些言论恐怕都让你眼花缭乱了吧……我想，你此刻的问题一定是：你相信谁说的？（不告诉你。）这本书里还有很多有意思的话题，等着你、你，还有你去开采呢。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2011/04/28/got-any-quotes-from-coders-at-work-2416.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>每一位想有所成就的程序员都必须知道的15件事</title>
		<link>http://www.cn-cuckoo.com/2011/04/19/how-to-advance-your-career-read-the-passionate-programmer-2391.html</link>
		<comments>http://www.cn-cuckoo.com/2011/04/19/how-to-advance-your-career-read-the-passionate-programmer-2391.html#comments</comments>
		<pubDate>Tue, 19 Apr 2011 00:28:34 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>
		<category><![CDATA[程序员]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[职业]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=2391</guid>
		<description><![CDATA[原文地址：How to advance your career? Read the Passionate Programmer! 我刚看完Chad Fowler的Passionate Programmer（中文版《我编程，我快乐：程序员职业规划之道》），这本书讲的是如何在软件开发行业中取得非凡的成就。 以下是根据这本书总结的，作为程序员，要取得非凡成就需要记住的15件事。 1、走一条不一样的路 在有利于自己的市场中竞争，如果你满足于“泯然众人矣”，那恐怕就得跟那些低工资国家的程序员们同场竞技了。 2、了解自己的公司 以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看，这一点所言不虚。 不同公司的运营模式差异极大。如果你理解企业的运营模式，那你就不一样了！在这家公司中（或者对客户而言），你是参与业务运营的资产，你的工作能直接产生效益！ 3、与最优秀的人为伍 很早以前，我喜欢打篮球，被分配到一个水平比较高的队里。一开始适应的确很困难，但环境的压力越大（重大比赛），我的长进也就越明显。 每个领域其实都一样：你周围人的水平（以及对你的期望）越高，你就会变得越优秀。 4、制造差异 每年学习一门新编程语言。为什么不呢？不断尝试新事物，你关注的技术种类越多，脚下的路就越宽广，你的职业生涯就会日新月异。不知道几年后Java的趋势如何？那就学习Clojure。学Ruby还是Python？这两种语言都可以试试啊。然后你才能知道哪种语言更适合某个特定的项目。看，掌握的语言多了，才能在需要的时候信手拈来吧。 5、畏惧，是最大的敌人 还是直接从书中摘一句吧：“在畏惧中做出的职业规划，很可能会让自己后半辈子就一直被‘圈禁’在小隔断里，永远不会有创造明天辉煌的时刻。没错，那样是安全，但有意思吗？” 6、要成为多面手 如果你掌握了所在领域的知识，那你只能是一名专业人士。用PHP编程？花点时间设置一台Apache服务器，让PHP和MySQL都跑起来。一直在用jQuery？试试Prototype。你懂了吧。 7、一个字：做 别指望别人过来教你该怎么做，出去，自己学着去做！ 8、找一位好老师 找一位好老师可以让你在学习技术的时候有的放矢。作者给我们讲述了别人是怎么指导他学习的（顺便说一句，作者在这本书里讲了很多个人经历的小故事，他居然从一位演奏家转行来做软件开发！）：“好好研究一下目录服务，熟悉一种UNIX变体，然后再掌握一门脚本语言。” 请记住这句禅宗谚语：“循路觅宗师，形影不相离，师知吾亦知，吾乃成宗师。” 9、主动教会别人 教会别人是一种最好的学习方式。写一篇博客能帮你搞清楚一个问题。为此，你必须先掌握很多材料，同时还要有条有理地讲给别人听（写作技能）。如书中所言：“要想知道自己是不是真的明白，你就讲给别人听听。” 10、实践，实践，再实践（训练） 只有进行大量实践（花大量的时间）才能掌握某种技术。看的很多，写的很少，遇到问题，改一改，又去读代码，……（这样下去是不行的）。 要特别警惕拖延症。其实，往往只要有了开头就好办了。 自我加压，效果会更好。我曾在一篇博客中提到帕金森定律：紧张的时限可以让你提高工作效率。为什么不把这个定律用到学习上呢，比如说在y时间内学会x？ 11、从小处入手 每天都取得一项小成果，每天都要坚持做（写在博客上？）。这样一来，你只能让自己比昨天更进步，而不能说自己比上星期进步了一点。 12、享受过程 关注当下，而不是目标，享受那些在追逐未来目标的途中可能无暇顾及的小胜利。人总要生活在当下。我享受编程的过程，就像享受编程的结果一样。 13、不要丧失危机感 越是成功，就越容易犯重大错误。永远不要忘了危机感，特别是要认识到你今天所知道的，到了明天可能就会一文不值。过去的荣耀不能保你永远无虞。 据书中所说，你最好是要让自己能够“通用”，而不要对哪种技术或哪个公司产生依赖。你所掌握的某些技能，甚至你的工作，到了明天都可能会变得毫无价值。因此要不断提高/丰富/扩展自己的技能。 14、推销自己 为某个项目贡献自己的一份力量，写一篇博客，共享自己的源代码，成为对某个社区有用的人。 当然，做这些事可能需要激情，要看你的爱好，但这些事也会间接地推广你的工作成果，证明你的实力，提高你的知名度。 15、关注市场 书中还提到了“预警极客”，也就是那些始终引领技术发展的人。这些人说过的话往往带有预见性，他们提到事物也许过几天就会成为头条新闻。关注这些人，常看他们的Twitter和博客。]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;">原文地址：<a href="http://bobbelderbos.com/2011/04/advance-career-read-passionate-programmer/">How to advance your career? Read the Passionate Programmer!</a></p>
<p><a href="http://bobbelderbos.com/2011/04/advance-career-read-passionate-programmer/"></a></p>
<p>我刚看完Chad Fowler的Passionate Programmer（中文版《我编程，我快乐：程序员职业规划之道》），这本书讲的是如何在软件开发行业中取得非凡的成就。<a href="http://product.china-pub.com/196966" title="我编程，我快乐：程序员职业规划之道"><img class="colorbox-2391"  style="border:2px solid #ddd;float:right;margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 1em;" title="我编程，我快乐：程序员职业规划之道" src="http://img10.360buyimg.com/n11/15855/fdd3bac6-9244-4079-bca5-b6c561838574.jpg" alt="我编程，我快乐：程序员职业规划之道" width="200"  /></a></p>
<p>以下是根据这本书总结的，作为程序员，要取得非凡成就需要记住的15件事。</p>
<p>1、走一条不一样的路<br />
在有利于自己的市场中竞争，如果你满足于“泯然众人矣”，那恐怕就得跟那些低工资国家的程序员们同场竞技了。</p>
<p>2、了解自己的公司<br />
以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看，这一点所言不虚。</p>
<p>不同公司的运营模式差异极大。如果你理解企业的运营模式，那你就不一样了！在这家公司中（或者对客户而言），你是参与业务运营的资产，你的工作能直接产生效益！</p>
<p>3、与最优秀的人为伍<br />
很早以前，我喜欢打篮球，被分配到一个水平比较高的队里。一开始适应的确很困难，但环境的压力越大（重大比赛），我的长进也就越明显。</p>
<p>每个领域其实都一样：你周围人的水平（以及对你的期望）越高，你就会变得越优秀。</p>
<p>4、制造差异<br />
每年学习一门新编程语言。为什么不呢？不断尝试新事物，你关注的技术种类越多，脚下的路就越宽广，你的职业生涯就会日新月异。不知道几年后Java的趋势如何？那就学习Clojure。学Ruby还是Python？这两种语言都可以试试啊。然后你才能知道哪种语言更适合某个特定的项目。看，掌握的语言多了，才能在需要的时候信手拈来吧。</p>
<p>5、畏惧，是最大的敌人<br />
还是直接从书中摘一句吧：“在畏惧中做出的职业规划，很可能会让自己后半辈子就一直被‘圈禁’在小隔断里，永远不会有创造明天辉煌的时刻。没错，那样是安全，但有意思吗？”</p>
<p>6、要成为多面手<br />
如果你掌握了所在领域的知识，那你只能是一名专业人士。用PHP编程？花点时间设置一台Apache服务器，让PHP和MySQL都跑起来。一直在用jQuery？试试Prototype。你懂了吧。</p>
<p>7、一个字：做<br />
别指望别人过来教你该怎么做，出去，自己学着去做！<br />
<span id="more-2391"></span><br />
8、找一位好老师<br />
找一位好老师可以让你在学习技术的时候有的放矢。作者给我们讲述了别人是怎么指导他学习的（顺便说一句，作者在这本书里讲了很多个人经历的小故事，他居然从一位演奏家转行来做软件开发！）：“好好研究一下目录服务，熟悉一种UNIX变体，然后再掌握一门脚本语言。”</p>
<p>请记住这句禅宗谚语：“循路觅宗师，形影不相离，师知吾亦知，吾乃成宗师。”</p>
<p>9、主动教会别人<br />
教会别人是一种最好的学习方式。写一篇博客能帮你搞清楚一个问题。为此，你必须先掌握很多材料，同时还要有条有理地讲给别人听（写作技能）。如书中所言：“要想知道自己是不是真的明白，你就讲给别人听听。”</p>
<p>10、实践，实践，再实践（训练）<br />
只有进行大量实践（花大量的时间）才能掌握某种技术。看的很多，写的很少，遇到问题，改一改，又去读代码，……（这样下去是不行的）。</p>
<p>要特别警惕拖延症。其实，往往只要有了开头就好办了。</p>
<p>自我加压，效果会更好。我曾在一篇博客中提到帕金森定律：紧张的时限可以让你提高工作效率。为什么不把这个定律用到学习上呢，比如说在y时间内学会x？</p>
<p>11、从小处入手<br />
每天都取得一项小成果，每天都要坚持做（写在博客上？）。这样一来，你只能让自己比昨天更进步，而不能说自己比上星期进步了一点。</p>
<p>12、享受过程<br />
关注当下，而不是目标，享受那些在追逐未来目标的途中可能无暇顾及的小胜利。人总要生活在当下。我享受编程的过程，就像享受编程的结果一样。</p>
<p>13、不要丧失危机感<br />
越是成功，就越容易犯重大错误。永远不要忘了危机感，特别是要认识到你今天所知道的，到了明天可能就会一文不值。过去的荣耀不能保你永远无虞。</p>
<p>据书中所说，你最好是要让自己能够“通用”，而不要对哪种技术或哪个公司产生依赖。你所掌握的某些技能，甚至你的工作，到了明天都可能会变得毫无价值。因此要不断提高/丰富/扩展自己的技能。</p>
<p>14、推销自己<br />
为某个项目贡献自己的一份力量，写一篇博客，共享自己的源代码，成为对某个社区有用的人。</p>
<p>当然，做这些事可能需要激情，要看你的爱好，但这些事也会间接地推广你的工作成果，证明你的实力，提高你的知名度。</p>
<p>15、关注市场<br />
书中还提到了“预警极客”，也就是那些始终引领技术发展的人。这些人说过的话往往带有预见性，他们提到事物也许过几天就会成为头条新闻。关注这些人，常看他们的Twitter和博客。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2011/04/19/how-to-advance-your-career-read-the-passionate-programmer-2391.html/feed</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>从HTML 2.0到HTML5</title>
		<link>http://www.cn-cuckoo.com/2010/09/22/a-brief-history-of-markup-2079.html</link>
		<comments>http://www.cn-cuckoo.com/2010/09/22/a-brief-history-of-markup-2079.html#comments</comments>
		<pubDate>Tue, 21 Sep 2010 17:53:01 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=2079</guid>
		<description><![CDATA[原文链接：A Brief History of Markup 2010年9月23日校毕 HTML是World Wide Web上统一的语言。使用它所提供的标签，人类已经创建了令人惊奇、姿态万千的超链接的文档网络。看看Amazon、eBay和Wikipedia，再看看个人博客和专为猫咪建立的站点，无一不是HTML的杰作。 HTML5是这门通用语言的最新版。虽然这次升级的变化之大史无前例，但HTML更新换代已经不是第一次了。这门语言从诞生之日起一直在发展。 在发明Web的同时，Tim Berners-Lee先生创造了HTML（HyperText Markup Language，超文本标记语言）。1991年，他写了一篇名为“HTML Tags”的文档（另见更早的www-talk上的记录），其中建议人们使用20来个元素编写网页。 说到用尖括号包围文本的标签，并不是Tim先生的首创。更早的SGML（Standard Generalized Markup Language，标准通用标记语言）中就开始使用这种标签了。Tim先生当时并没有发明新语言，而是着眼于利用已经存在的技术——在HTML5的发展过程中，这个倾向依然得到了体现。 从IETF到W3C：HTML 4诞生记 HTML 1？这个版本实际上是不存在的。最早的HTML官方规范，是由IETF（Internet Engineering Task Force，因特网工程任务组）发布的HTML 2.0。这一规范中的许多特性，都是在已有实现的基础上归纳总结出来的。比如说，1994年居于市场领导地位的Mosaic浏览器提供了一个&#60;img&#62;标签，作者可以通过它在自己的文档中嵌入图像。后来，img元素就出现在了HTML 2.0中。 W3C（World Wide Web Consortium，万维网联盟）继IETF之后成为HTML后续标准的制定者，其官方网站是http://www.w3.org。20世纪90年代中期以后，W3C对HTML进行了几次升级，直至1999年发布HTML 4.01。 此时，HTML的发展走到了一个十字路口上。 XHTML 1：符合XML标准的HTML HMLT 4.01之后的一个修订版变成了XHTML 1.0。其中，X表示“eXtreme”（极端）。当时的Web开发人员在提到这个字母的时候，必须双臂交叉，作出一个X的形状来。 谁说的？纯属瞎掰。那个X表示的是“eXtensible”（可扩展），而且也没人要求你必须双臂交叉。 XHTML 1.0规范的内容与HTML 4.01完全相同，没有添加任何新元素或新属性。这两个规范唯一的差别就是对HTML的语法作出了不同的规定。HTML给予了作者最大的自由度，他们可以按照自己的意愿去写元素和属性，但XHTML要求作者遵从XML规则；XML是W3C大多数技术规范的基础，是一种更为严格的标记语言。 语法规则变得更严格了，这本身没有什么坏处。新规范的目的就是让作者按照统一的风格来编写标签。此前的标签和属性可以是大写、小写，或者任意大小写字母的组合，而有效的XHTML 1.0文档则要求所有标签和属性必须一律小写。 XHTML 1.0发布的时候恰逢浏览器普遍开始支持CSS。开发人员意识到了Web标准的出现，特别是在Web标准项目（The Web Standards Project）的倡导下，XHTML规定的这种更严格的语法被看成是写标记的“最佳实践”。 然后，W3C发布了XHTML 1.1。 虽然XHTML 1.0只不过是用XML来重新表示的HTML，但XHTML 1.1却是真正的、纯粹的XML。这意味着不能以text/html这样的MIME类型来提供XHTML [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;">原文链接：<a href="http://www.alistapart.com/articles/a-brief-history-of-markup/" target="_blank">A Brief History of Markup</a><br />
2010年9月23日校毕</p>
<p><div class="wp-caption alignleft" style="width: 405px"><a href="http://books.alistapart.com/products/html5-for-web-designers"><img class="colorbox-2079"  title="HTML5 for Web Designers" src="http://bkaprt.com/i/buy-html5-for-web-designers.png" alt="" width="395" height="554" /></a><p class="wp-caption-text">A Book Apart 的第一本书，由Jeremy Keith执笔；本文是该书第1章。</p></div> HTML是World Wide Web上统一的语言。使用它所提供的标签，人类已经创建了令人惊奇、姿态万千的超链接的文档网络。看看<a href="http://www.amazon.com/">Amazon</a>、<a href="http://www.ebay.com/">eBay</a>和<a href="http://en.wikipedia.org/wiki/Main_Page">Wikipedia</a>，再看看个人博客和专为猫咪建立的站点，无一不是HTML的杰作。</p>
<p>HTML5是这门通用语言的最新版。虽然这次升级的变化之大史无前例，但HTML更新换代已经不是第一次了。这门语言从诞生之日起一直在发展。</p>
<p>在发明Web的同时，Tim Berners-Lee先生创造了HTML（HyperText Markup Language，超文本标记语言）。1991年，他写了一篇<a href="http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/Tags.html">名为“HTML Tags”的文档</a>（<a href="http://lists.w3.org/Archives/Public/www-talk/1991SepOct/0003.html">另见更早的www-talk上的记录</a>），其中建议人们使用20来个元素编写网页。</p>
<p>说到用尖括号包围文本的标签，并不是Tim先生的首创。更早的<a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=16387">SGML（Standard Generalized Markup Language，标准通用标记语言）</a>中就开始使用这种标签了。Tim先生当时并没有发明新语言，而是着眼于利用已经存在的技术——在HTML5的发展过程中，这个倾向依然得到了体现。</p>
<h2>从IETF到W3C：HTML 4诞生记</h2>
<p>HTML 1？这个版本实际上是不存在的。最早的HTML官方规范，是<a href="http://www.ietf.org/">由IETF（Internet Engineering Task Force，因特网工程任务组）</a>发布的<a href="http://tools.ietf.org/html/rfc1866">HTML 2.0</a>。这一规范中的许多特性，都是在已有实现的基础上归纳总结出来的。比如说，1994年居于市场领导地位的<a href="http://en.wikipedia.org/wiki/Mosaic_(web_browser)">Mosaic浏览器</a>提供了一个&lt;img&gt;标签，作者可以通过它在自己的文档中嵌入图像。后来，img元素就出现在了HTML 2.0中。</p>
<p>W3C（World Wide Web Consortium，万维网联盟）继IETF之后成为HTML后续标准的制定者，其官方网站是<a href="http://www.w3.org">http://www.w3.org</a>。20世纪90年代中期以后，W3C对HTML进行了几次升级，直至1999年发布<a href="http://www.w3.org/TR/html401/">HTML 4.01</a>。</p>
<p>此时，HTML的发展走到了一个十字路口上。<br />
<span id="more-2079"></span></p>
<h2>XHTML 1：符合XML标准的HTML</h2>
<p>HMLT 4.01之后的一个修订版变成了<a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a>。其中，X表示“eXtreme”（极端）。当时的Web开发人员在提到这个字母的时候，必须双臂交叉，作出一个X的形状来。</p>
<p>谁说的？纯属瞎掰。那个X表示的是“eXtensible”（可扩展），而且也没人要求你必须双臂交叉。</p>
<p>XHTML 1.0规范的内容与HTML 4.01完全相同，没有添加任何新元素或新属性。这两个规范唯一的差别就是对HTML的语法作出了不同的规定。HTML给予了作者最大的自由度，他们可以按照自己的意愿去写元素和属性，但XHTML要求作者遵从XML规则；XML是W3C大多数技术规范的基础，是一种更为严格的标记语言。</p>
<p>语法规则变得更严格了，这本身没有什么坏处。新规范的目的就是让作者按照统一的风格来编写标签。此前的标签和属性可以是大写、小写，或者任意大小写字母的组合，而有效的XHTML 1.0文档则要求所有标签和属性必须一律小写。</p>
<p>XHTML 1.0发布的时候恰逢浏览器普遍开始支持CSS。开发人员意识到了Web标准的出现，特别是在<a href="http://www.webstandards.org/">Web标准项目（The Web Standards Project）</a>的倡导下，XHTML规定的这种更严格的语法被看成是写标记的“最佳实践”。</p>
<p>然后，W3C发布了<a href="http://www.w3.org/TR/xhtml11/">XHTML 1.1</a>。</p>
<p>虽然XHTML 1.0只不过是用XML来重新表示的HTML，但XHTML 1.1却是真正的、纯粹的XML。这意味着不能以text/html这样的<a href="http://en.wikipedia.org/wiki/MIME">MIME类型</a>来提供XHTML 1.1文档。可是，如果有作者以XML的MIMI类型（application/xhtml+xml）来发布文档，那么当时世界上最流行的Web浏览器——Internet Explorer，又无法呈现该文档。</p>
<p>看起来W3C好像已经开始与日常的Web发布脱节了。</p>
<h2>XHTML 2：我们不接受！</h2>
<p>如果达斯汀·霍夫曼（Dustin Hoffman）在电影《毕业生》（<em>The Graduate</em>）中的角色是一名Web设计师，那么W3C只会对他说一句话，就一句话：XML。<a name="footref1"></a><a href="#footnotes1">[1]</a></p>
<p>W3C在接管HTML的时候，HTML的版本已经到了4。现在，他们又着手开发<a href="http://www.w3.org/TR/xhtml2/">XHTML 2</a>，旨在把Web引向建立在XML之上的无比光明的美好未来。</p>
<p>虽然XHTML 2的名字听起来与XHTML 1非常类似，但它们的差别却非常之大。与XHTML 1不一样，XHTML 2与既有的Web内容都不兼容，甚至就连以前版本的HTML都不兼容。说白了，XHTML 2就是要成为一门纯粹的语言，与以前规范的邋遢历史没有任何干系。</p>
<p>没想到竟是一场灾难。</p>
<h2>分裂：WHATWG TF？</h2>
<p>一股反抗势力在W3C内部逐步壮大。W3C热衷于从理论角度构建纯净的标准，却无视Web设计人员的需求。来自<a href="http://www.opera.com/">Opera</a>、<a href="http://www.apple.com/">Apple</a>和<a href="http://www.mozilla.org/">Mozilla</a>的代表对这种倾向非常反感。他们希望那些支持创建Web应用的特性能够得到更多的关注。</p>
<p>2004年的一次工作组会议成了矛盾激化的导火索。<a href="http://ian.hixie.ch/">伊恩·希克森（Ian Hickson）</a>——当时还在Opera Software效力——建议以支持创建Web应用为目标来扩展HTML。这个建议被驳回了。</p>
<p>心怀不满的反抗者建立了自己的组织：<a href="http://www.whatwg.org/">Web Hypertext Application Technology Working Group</a>（Web超文本应用技术工作组），简称WHATWG。</p>
<h2>从Web Apps 1.0到HTML5</h2>
<p>从一开始，WHATWG的工作方式就与W3C截然不同。W3C采取基于表决的方式：提出议题、讨论议题，然后投票表决。而在WHATWG，同样会提出和讨论议题，但哪些特性可以写入规范的最终决定权在编辑手中。这个编辑就是伊恩·希克森。</p>
<p>表面上看，W3C的流程更民主也更公平。但实际上，政治博弈加上内部争论，经常会导致流程停滞不前。而在WHATWG，任何人都可以自由地发表意见，但负责拍板的则只有编辑一个人，因此工作效率明显高很多。其实编辑也并非拥有绝对的权力：一个仅由受邀人员组成的指导委员会可以质疑编辑的偏执做法。</p>
<p>最初，WHATWG的大部分工作被分为两个规范：<a href="http://www.whatwg.org/specs/web-forms/current-work/">Web Form 2.0</a>和<a href="http://www.whatwg.org/specs/web-apps/2005-09-01/">Web Apps 1.0</a>。这两个规范都是在HTML的基础上扩展而来的。后来，这两个规范又被合并到一起，简单地称作<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">HTML5</a>。</p>
<h2>再次联手</h2>
<p>在WHATWG开发HTML5期间，W3C继续制定XHTML 2规范。如果说XHTML 2规范的制定速度很快那是忽悠人的。实际上，别提有多慢了。</p>
<p>2006年10月，Tim Berners-Lee先生发表了一篇博客，承认将Web从HTML迁移到XML是行不通的。几个月后，W3C签发了新委任状，成立了一个HTML工作组。这个工作组并没有从头开始，而是明智地决定在WHATWG工作成果的基础上开发下一个HTML版本。</p>
<p>一套起步停车的动作做下来以后，局面反倒让人不理解了。<a href="http://www.w3.org/MarkUp/Activity">W3C同时有两个工作组，分别负责制定不同的、互不兼容的标记语言</a>：<a href="http://www.w3.org/2007/03/XHTML2-WG-charter">XHTML 2</a>和<a href="http://www.w3.org/2007/03/HTML-WG-charter.html">HTML 5</a>（注意数字5前面有一个空格）。与此同时，还有一个独立的组织——WHATWG，正在开发HTML5（没有空格）规范，而该规范还将成为上述W3C中一个规范的基础！</p>
<p>每个想稿清楚上述状况的Web设计人员都会发现，还是破解电影《记忆碎片》（<em>Memento</em>）、《雷管》（<em>Primer</em>）中扑朔迷离的故事情节更容易一些，甚至就连摸清大卫·林奇（David Lynch）这样善用颠倒错乱、诡异多变的形象来迷惑人的导演的套路都没有那么复杂。</p>
<h2>XHTML已死，XHTML语法长生</h2>
<p>种种迷团终于在2009年烟消云散。W3C宣布不再续颁<a href="http://www.w3.org/2007/03/XHTML2-WG-charter">XHTML 2工作组的委任状</a>。XHTML 2作为一种格式实际上已经死了好几年了；这次的宣布差不多可以看成是为它补发了一张死亡证明。</p>
<p>奇怪的是，XHTML 2并没有平静地逝去，不少兴灾乐祸的小人跳出来大放厥词。XML反对者趁机奚落使用XHTML 1的人——连XHTML 1和XHTML 2几乎没有共同点这个事实都视而不见。</p>
<p>这时候，那些遵照XHTML 1较为严格规则的作者又担心起来，生怕HTML5又回到支持邋遢标记的老路上去。</p>
<p>其实，这个担心是多余的。HTML5允许邋邋遢遢的标记，也支持严格的标记，到底邋遢还是严格就要看编写标记的人了。</p>
<h2>HTML5的时间线</h2>
<p>HTML5目前的状态已经不似先前那么含含糊糊了，但仍然还是不甚明了。</p>
<p>有两个工作组在围绕HTML5工作。WHATWG正在使用它的“提交后评审”流程创建HTML5规范。而HTML Working Group则把这个规范作为输入，并将其纳入到了自己的“评审后提交”的流程当中。不难想见，这个联盟并不和谐。最后，仍然还需要就类似“要空格还是不要空格？”这样讨厌的问题达成共识才行。</p>
<p>对于刚刚涉足HTML5的Web开发人员来说，最令他们困惑的一个问题莫过于“这个规范什么时候能够完工啊？”</p>
<p>在一次采访中，伊恩·希克森提到HTML5估计要等到2022年才能成为推荐标准。有些Web设计者听他这么一说，立刻就激动起来。他们并不理解所谓的“推荐标准”意味着什么，但他们知道从现在开始数到2022，自己的10个手指头根本就不够用的。</p>
<p>这种激动完全是没有来由的。想一想吧，成为“推荐标准”，意味必须要有两个HTML5的完整实现。考虑到这个规范涵盖的范围之广，这个时间点恐怕都有点仓促了。历史表明，没有哪款浏览器在实现既有标准方面是做得出色的。仅仅支持一个小小的abbr元素，Internet Explorer就用了10多年的时间。</p>
<p>与HTML5真正有关系的日期应该是2012年。这是它预计将会成为“候选标准”的时间。成为“候选标准”，就意味着标准的制定工作结束了。</p>
<p>不过，即便是这个时间对Web开发人员来说也不是特别重要。真正重要的问题是浏览器从什么时候开始支持HTML5的特性。从浏览器一支持<a href="http://www.w3.org/TR/CSS2/">CSS 2.1</a>的部分特性，我们就开始使用那些特性了。要是等到所有浏览器都完全支持CSS 2.1我们才去使用它，那么恐怕现如今我们在痴痴地等呢。</p>
<p>HTML5不也一样嘛。没有人规定这个时间点，说不到这个时间你就不能使用HTML5。只要浏览器支持，我们就先使用那些它们支持的特性就不完了吗。</p>
<p>切记，HTML5并不是一门凭空造出来的新语言。它的标记变化都是革新性的，不是革命性的。无论你现在使用哪个版本的HTML创建网站，你都可以说自己已经在使用HTML5了。</p>
<hr size="1" /><a name="footnotes1"></a> <a href="#footref1">[1]</a> 男主角本杰明是一位以优异成绩毕业的大学生，其父亲的好友麦奎尔先生对他未来职业规划的建议只有一句话：塑料。——译者注</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2010/09/22/a-brief-history-of-markup-2079.html/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Rich Stevens答读者问</title>
		<link>http://www.cn-cuckoo.com/2010/09/12/rich-stevens-faq-2007.html</link>
		<comments>http://www.cn-cuckoo.com/2010/09/12/rich-stevens-faq-2007.html#comments</comments>
		<pubDate>Sun, 12 Sep 2010 14:00:31 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=2007</guid>
		<description><![CDATA[原文链接：http://www.kohala.com/start/rstevensfaq.html 校对时间：2010年9月19日 问题TOC 你怎么想到要写UNIX Network Programming？ 你为什么要写Advanced Programming in the UNIX Environment？ 你为什么要写TCP/IP Illustrated, Volume 1: The Protocols？ 你为什么要写TCP/IP Illustrated, Volume 2: The Implementation？ 你为什么要写TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the Unix Domain Protocols？ 我应该看其中哪本书？ 你跟Doug Comer合作写过书吗？ 写一本书要花多长时间？ 在写这些书的时候你是通过哪些方式来学习的？ 你会回复读者的邮件吗？ 我也想写一本书。我该从何做起呢？ 能谈一谈UNIX Network Programming是怎么出版的吗？ 你并没有使用troff写书，是吗？ 你使用哪种Unix系统？ 你喜欢哪些技术书？ 你名字中的W.表示什么？ 你为什么专门为MTS（Michigan Terminal System）写APUE呢？ [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;">原文链接：<a href="http://www.kohala.com/start/rstevensfaq.html">http://www.kohala.com/start/rstevensfaq.html</a><br />
校对时间：2010年9月19日</p>
<h2><a name="Rich_Stevens_FAQ_TOC">问题TOC</a></h2>
<ul style="background:#eee;padding:2em;">
<li><a href="#Rich_Stevens_FAQ_1">你怎么想到要写<em>UNIX Network Programming</em>？</a></li>
<li><a href="#Rich_Stevens_FAQ_2">你为什么要写<em>Advanced Programming in the UNIX Environment</em>？
<li><a href="#Rich_Stevens_FAQ_3">你为什么要写<em>TCP/IP Illustrated, Volume 1: The Protocols</em>？
<li><a href="#Rich_Stevens_FAQ_4">你为什么要写<em>TCP/IP Illustrated, Volume 2: The Implementation</em>？</a></li>
<li><a href="#Rich_Stevens_FAQ_5">你为什么要写<em>TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the Unix Domain Protocols</em>？<br />
</a></li>
<li><a href="#Rich_Stevens_FAQ_6">我应该看其中哪本书？</a></li>
<li><a href="#Rich_Stevens_FAQ_7">你跟Doug Comer合作写过书吗？</a></li>
<li><a href="#Rich_Stevens_FAQ_8">写一本书要花多长时间？</a></li>
<li><a href="#Rich_Stevens_FAQ_9">在写这些书的时候你是通过哪些方式来学习的？</a></li>
<li><a href="#Rich_Stevens_FAQ_10">你会回复读者的邮件吗？</a></li>
<li><a href="#Rich_Stevens_FAQ_11">我也想写一本书。我该从何做起呢？</a></li>
<li><a href="#Rich_Stevens_FAQ_12">能谈一谈UNIX Network Programming是怎么出版的吗？</a></li>
<li><a href="#Rich_Stevens_FAQ_13">你并没有使用troff写书，是吗？</a></li>
<li><a href="#Rich_Stevens_FAQ_14">你使用哪种Unix系统？</a></li>
<li><a href="#Rich_Stevens_FAQ_15">你喜欢哪些技术书？</a></li>
<li><a href="#Rich_Stevens_FAQ_16">你名字中的W.表示什么？</a></li>
<li><a href="#Rich_Stevens_FAQ_17">你为什么专门为MTS（Michigan Terminal System）写APUE呢？</a></li>
<li><a href="#Rich_Stevens_FAQ_18">你编写的程序里为什么会包含goto？</a></li>
</ul>
<p>问：<strong>你怎么想到要写</strong><em><strong>UNIX Network Programming</strong></em><strong>？</strong><a name="Rich_Stevens_FAQ_1" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>1980年代，我在Health Systems International工作，那时候我们先后为很多平台开发过Unix<a name="notes1" href="#footnotes1">[1]</a>软件。我们跟大多数同时代的创业公司一样，经历过一系列硬件的变迁：起先是VAX-11/750<a name="notes2" href="#footnotes2">[2]</a>，运行4.2BSD<a name="notes3" href="#footnotes3">[3]</a>，然后是个头稍大的VAX（785），接着又是多台VAX（又加了一台8500），有几台PC运行着一种风格的操作系统（Venix、Xenix<a name="notes4" href="#footnotes4">[4]</a>、DOS），另外还有一台IBM大型机运行VM。因为有多台VAX运行4.xBSD，所以我们就通过以太网把它们连接起来运行TCP/IP，当然装有Unix系列操作系统的PC和那台大型机也都可以运行TCP/IP。除了使用标准的实用工具（ftp、rlogin），我们还着手使用套接字自己开发工具。当时几乎没有文档可查（我从一堆4.3BSD手册中找到两本Leffler等人编写的文档，但非常破旧），因而在想解决某个问题时，就得查源代码。就这样查了一段时间的源代码之后，我意识到应该把自己发现的东西诉诸文字。1988年我开始写UNP，因为每天都要工作，所以这本书写了两年。</p>
<p>我相信UNP以及我的其他书之所以能够获得成功，是我的背景起了决定性的作用。换句话说，我既不是Berkeley也不是AT&amp;T的开发人员，因此写作中就没有“内存转储”<a name="notes5" href="#footnotes5">[5]</a>的问题。书中的所有内容都是我自己经过深入钻研想明白的。在深入钻研和思考各种原理的过程中，我经常会绕很大的弯子，有时候甚至会走进死胡同。但这个过程对于理解新知识是极为必要的。有很多次我想在书中把某方面的工作原理写出来，自己也觉得很明白，但才刚写了几个测试程序，马上就又碰到了新的、不懂的问题。我在自己的几本书中也尽力传达了这种探索的盲目性，因为我觉得看到某个问题的错误解决方案（并理解它错在哪里），常常要比直接看到正确的解决方案收获更大。</p>
<p>问：<strong>你为什么要写</strong><em><strong>Advanced Programming in the UNIX Environment</strong></em><strong>？</strong><a name="Rich_Stevens_FAQ_2" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>整个1980年代，我翻看最勤的就是Marc Rochkind的<em>Advanced UNIX Programming</em>。但那本书的内容只涵盖了System III<a name="notes6" href="#footnotes6">[6]</a>，我也知道他没有升级那本书的打算。所以，我决定自己写一本高级的Unix图书。</p>
<p>问：<strong>你为什么要写</strong><em><strong>TCP/IP Illustrated, Volume 1: The Protocols</strong></em><strong>？</strong><a name="Rich_Stevens_FAQ_3" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>我对TCP/IP产生兴趣始于1987年夏天在菲尼克斯（Phoenix，美国亚利桑纳州首府）召开的Summer Usenix<a name="notes7" href="#footnotes7">[7]</a>大会，当时我买了一本Doug Comer的<em>Internetworking With Xinu</em><a name="notes8" href="#footnotes8">[8]</a>。（我是在Jim Joyce的书店买的这本书，这个书店开在酒店的一个套间里，他可能也是第一个尝试在Usenix大会上卖书的人。会场上是不允许卖书的。）在回康涅狄格的飞机上，我从头到尾看完了这本书。撰写UNP期间以及1990年代早几年，Doug Comer“卷I”的第1版和第2版先后都被我翻得书脊开了胶。我毕竟是一个业内人士，相对于理论阐述，我更关心对实际工作有指导意义的内容。在翻阅Doug这本教材的过程中，我不断提出一些非常实际但又在书中找不到答案的问题。与此同时，一位在IBM教TCP/IP的朋友也时不时地向我询问一些问题，而这些问题不管是在RFC规范还是其他任何教材中同样也找不到答案。我开始编写一些小测试程序，观察程序运行的结果（参见我这本书的“附录C：sock程序”的开头），冥冥之中感觉到以这种方式来写一本书倒是个不错的主意。我也知道有很多唾手可得的现成工具（大多数都是Van Jacobson写的，了不起！）可以帮我理解这两个协议，这些工具谁都可以拿来用。比如说Tcpdump吧，它不仅仅是一个诊断网络问题的工具，更是一个辅助理解协议原理的无价之宝。最终，在经历了数年的网络编程之后，我慢慢地认识到：80%的网络编程问题根本就不是编程问题，都是对协议运行原理理解不够造成的。</p>
<p>问：<strong>你为什么要写</strong><em><strong>TCP/IP Illustrated, Volume 2: The Implementations</strong></em><strong>？</strong><a name="Rich_Stevens_FAQ_4" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>同样，我是Doug Comer的“卷II”（TCP/IP的Xinu实现）的忠实读者，但在遇到没有实现的功能时总会感到很无助，况且Xinu也不是标准。Berkeley的实现才是事实标准，而且其代码基也“小”（15000行C代码）到可以用1本书——尽管是一本“大”书——来讲完。</p>
<p>问：<strong>你为什么要写</strong><em><strong>TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the Unix Domain Protocols</strong></em><strong>？</strong><a name="Rich_Stevens_FAQ_5" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>这本书实际上是由3本更小的书构成的。第一部分“TCP for Transactions”是对Volume 1第24.7节的重要扩展。这一部分从两个方面讲解了T/TCP：一是通过实例讲解TCP协议扩展（第1至4章，延续了Volume 1的风格），二是分析了4.4BSD-Lite连网代码对T/TCP的实现（第5至13章，延续了Volume 2的风格）。第二部分“HTTP（Hypertext Transfer Protocol） and NNTP（Network News Transfer Protocol）”是对Volume 1的补充，因为这一部分讲解了构建于TCP之上的两个应用层协议。其中有一章详细地解释了繁忙的World Wide Web服务器上实际的数据包，展示了多变的、有时候完全不可思议的TCP行为及实现。这两部分的主题完全取材于Volume 1和Volume 2，而且都是相关领域中重要而流行的实际应用。第三部分“Unix Domain Protocols”是对Volume 2的补充，因为这一部分专注于这些协议在4.4BSD-Lite连网代码中的实现。所以说，最后这一卷其实是对前两卷的一个延伸。</p>
<p>问：<strong>我应该看其中哪本书？</strong><a name="Rich_Stevens_FAQ_6" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>这取决于你对哪个领域感兴趣。UNP是一本网络编程教材：包含15000行C源代码和大量有关网络编程的详细解释。但是，UNP只介绍了基本的Unix和TCP/IP。相对而言，APUE则完全是一本Unix编程教材，没有涉及网络编程。事实上，可以将APUE看作是对UNP第2章的一个重要扩展。TCP/IPIv1纯粹讲协议：这些协议怎么运行，为什么那么运行（是对UNP第5.2节的一个重要扩展）。这本书里连一行C代码都没有。TCP/IPIv2讲的是TCP/IP的实际实现：包含15000行内核中的C源代码。TCP/IPIv3则是由协议（T/TCP、HTTP、NNTP）和实现（大约2200行内核C源代码）构成的。</p>
<p>我自己对网络编程非常感兴趣，但是我发现要做好网络编程，必须理解网络底层的运行系统（APUE）和底层的协议（TCP/IPIv[123]）。</p>
<p>问：<strong>你跟Doug Comer合作写过书吗？</strong><a name="Rich_Stevens_FAQ_7" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>没有，那个人是普渡大学的David L. Stevens。我们不是一个人。</p>
<p>问：<strong>写一本书要花多长时间？</strong><a name="Rich_Stevens_FAQ_8" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>每一面大约要花2小时左右。这个时间包含了为出版商制作可供照排机使用的PostScript<a name="notes9" href="#footnotes9">[9]</a>文件的时间。这样算来，一本600页的书，大约要花1200小时。如果你不制作供照排机使用的文件（例如，让出版商自己排版和做索引），还可以节省一点时间，但我喜欢完全控制最终结果。</p>
<p>问：<strong>在写这些书的时候你是通过哪些方式来学习的？</strong><a name="Rich_Stevens_FAQ_9" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>我阅读了大量源代码。实际上，阅读源代码的技能大学里通常都不会教，但其实要看懂代码也不是一件多难的事。（还记得John Lion在1977年出版的那本完整展示和分析UNIX Version 6源代码的A Commentary on the UNIX Operating System<a name="notes10" href="#footnotes10">[10]</a>吗？我很幸运，读研究生的时候，Dave Hanson就拿这本书当教材给我们上课。）虽然我看不到大多数Unix商业版的源代码，但好在仍有不少系统的源代码可以供我研究，例如：4.4BSD-Lite、FreeBSD、Linux、Minix、GNU，等等。</p>
<p>另外，我还会从一些有用的Usenet新闻组中学习。在新闻组里，可以看到解决相同问题的不同手段，可以学到从来没听说过的新知识，也可以目睹别人遇到的一些问题。我每天在Usenet上面阅读和发帖的时间大约是25分钟。</p>
<p>以下是我经常上的一些新闻组：news.admin.announce、comp.security.announce、comp.protocols.tcp-ip、comp.dcom.sys.cisco、comp.unix.bsd.bsdi.announce、comp.unix.bsd.bsdi.misc、info.bsdi.users、comp.unix.solaris、comp.unix.internals、comp.unix.programmer、comp.protocols.dns.bind、comp.protocols.dns.std、comp.protocols.dns.ops、comp.programming.threads、gnu.groff.bug、gnu.announce、gnu.gcc.announce、gnu.g++.announce、misc.books.technical、comp.protocols.time.ntp、comp.protocols.tcp-ip.domains、comp.org.usenix、comp.mail.mush、comp.protocols.nfs、comp.std.unix、comp.text、alt.sys.sun、comp.sys.sun.announce、comp.sys.sun.hardware、comp.std.announce、comp.os.linux.announce、comp.lang.java.announce和comp.lang.java.programmer。</p>
<p>问：<strong>你会回复读者的邮件吗？</strong><a name="Rich_Stevens_FAQ_10" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>当然。我的电子邮件地址印在了这几本书前言的末尾，我会看收到的每一封邮件。不过，由于邮件的格式混乱，可读性差，这几年我还设计了几种推荐的标准格式。想知道这个标准格式的最简单快捷的方法，就是把你想让我帮你调试的源代码发给我（别笑，要是知道我收到过多少封包含这种请求的邮件，你就不会惊讶了）。其次，可以把构建书中某些源代码期间得到的make输出发给我，并问我怎么解决——出版商好心好意地提供了全部代码下载，但这些代码也只是提供下载而已，并不意味着他们配备了专人来答疑解惑。诸如此类的问题大多数都应该贴到相应Unix版本的新闻组中。</p>
<p>还有不少邮件询问我几年前写过的某篇文章中的某个具体的问题，信不信由你，这些细节我很难一下子都想起来。我的基本原则是，只要我能想出问题的答案，而且不必敲太多次键盘，我就会马上回复。可如果回答问题还需要翻箱倒柜地找书，乃至查阅相关资料，或者需要跟发件人来往通几次信以便了解问题的更多细节，我想我是没有这个时间的。</p>
<p>有很多读者通过邮件问我的编程问题，都应该发到某些Usenet新闻中去——特别是comp.unix.programmer。</p>
<p>问：<strong>我也想写一本书。我该从何做起呢？</strong><a name="Rich_Stevens_FAQ_11" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>技术书市场跟小说市场完全不同。技术出版商无时无刻不在寻找好书，作者有没有名气都没有关系。我建议你先写出来一些东西（比如，书中比较主要的几章），然后再联系出版公司。联系出版公司的最佳途径是参加技术会议（Usenix、Interop，等等），到他们的展台前当面谈。正常情况下，他们都会对你非常热情的。</p>
<p>再给几个简单的建议：</p>
<ul>
<li>不要在太细节的内容上花过多时间。我保证这样写出来的东西90%都要改。</li>
<li>不要在导言那一章（通常是第1章）花太多时间，等写完全书再回过头来写。一般来说，这一章是全书最重要的一章，因为它肩负着向读者介绍其他章节内容的重任。想想看，在写完全书之前，有些内容没准是会变的。</li>
<li>如果承受不了批评就不要写书。以下是UNP第1版征求意见稿反馈回来的一些评论，你听听：“啊！这家伙难道一点语法和表达都不懂吗？”“怎么这个人我从来都没听说过呢？”“把括号里那些废话都删了算了”“术语前后不统一。”UNP第2版也有一些难听的话：“整本书到处都是以……开头的句子，根本没法理解。”</li>
</ul>
<p>另外，要做好重写、重写、再重写的心理准备。<a target="_blank" href="http://www.kohala.com/start/gifs/unprewrite.gif">这是UNIX Network Programming, Second Edition, Volume 1中的一页（280K的GIF图）</a>，看了之后你就知道我说的重写是什么意思了。这是该书第92/93页定稿前的一张照片，愿意的话你可以比较一下。而且，这还只是我自己校正某些表述时所做的修改，是交给其他审稿人审读之前的样子。</p>
<p>问：<strong>能谈一谈UNIX Network Programming是怎么出版的吗？</strong><a name="Rich_Stevens_FAQ_12" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>前面说过，我是1998年开始写UNP的，基本素材是我整理的一些记录Berkeley连网代码工作原理的内部笔记。至于为什么要写这方面的书，我现在好像也没办法说得很清楚，不过倒是有几个小理由。首先，我已经在一家创业公司（HSI）工作了6年，公司发展很快，编程人员也越来越多，我可以多腾出一点时间来去做些别的事情，不用成天写代码和补漏洞了。加之，我取得博士学位也已经有6个年头了，而我在技术方面的著述还是零纪录。最后，我在HSI又招聘到了这个新人（Gray Wright），刚刚走出校门，思维敏捷，我只有在技术上不断进取，才不至被他落下。（UNP的前言里面提到过Gary，他是第一个阅读我写的所有文字的人。）</p>
<p>在决定了写书之后，接着还得决定要写什么。我个人想写一本计算机图形和网络方面的书。1987年我到楠塔基特岛（Nantucket，位于美国马萨诸塞州东南沿海的岛屿，避暑胜地）过感恩节，我记得当时还带着Tanenbaum<a name="notes11" href="#footnotes11">[11]</a>的Computer Networks和Foley与Van Dam合著的Fundamentals of Interactive Computer Graphics。但在我回到家以后，我就决定写一本网络编程方面的书。说写就写，我最早给这本书起的名字叫Network Programming。跟大多数新作者一样，我白天上班，晚上利用“闲暇时间”写我的第一本书。</p>
<p>我至今还保存着1989年1月Usenet上的一个帖子：“我正在找一本关于Unix的好书（难道你们大家不想吗？）。我对Unix以及C和Shell编程都已经非常熟悉了。现在打算学习Unix通信方面的知识，例如：套接字、协议，等等。”一周后，另一个标题为“IPC的问题”的帖子询问了实现IPC（Internet Process Connection，进程间通信）的各种方法的细节，我看那些内容都是Marc Rochkind<a name="notes12" href="#footnotes12">[12]</a>的书里没有讲到的。这些提问让我感觉到自己的决定是正确的。还有一个帖子是Rick Adams在1988年11月23日发的：“终于等到这一天了，不含ATT代码的4.3BSD文件现在人人可用了。”这意味着我可以在这本书里使用Berkeley的代码了。</p>
<p>就这样埋头写了几个月之后，我觉得应该看一看自己写的这些东西有没有出版价值。我跟贝尔实验室一个在Prentice Hall出版社出过书的朋友联系，他给了我那里一位编辑John Wait的电话号码。1988年6月我打了电话，并给他的秘书留了言，然后他竟然给我回了电话！他说话很有意思，想看看我写的东西，告诉我他会参加那一年在旧金山举行的USENIX大会。我注册了这次会议，但最后是让Gary Wright替我去的；他戴我的胸牌。Gary把我的手稿（278页）交给了John。（Gray不久后又在Unix Expo大会上遇见了John，同样还是挂着写着我的名字胸牌。为此，John甚至怀疑书稿其实都是Gray写的，他只是假托是别人写的而已。如果你在哪一届Unix大会上遇见一个人，他的胸牌上写着“Rich Stevens”，你可以这么跟他打招呼：“噢，想必你一定是Gary Wright。”）John说他需要把我写的这几章发出去审校，然后他要么（1）立即开车到纽黑文跟我签合同，要么（2）把合同寄给我，否则（3）跟我说干脆死了这条心去干点别的吧，不要继续写了。随后，我就去夏威夷去度假了，一个月之后我回来了，发现有一条找John的电话留言。我提前并不知情，原来审稿人里面还有Brian Kernighan<a name="notes13" href="#footnotes13">[13]</a>，Brian对书稿的评价是：“相当不错，值得出版。……总之，具备一本好书的潜质。……不管怎么说，都很有必要继续写下去。”John把合同寄给了我，于是我接着往下写。</p>
<p>问：<strong>你并没有使用troff写书，是吗？</strong><a name="Rich_Stevens_FAQ_13" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>当然用了。还有其他软件吗？troff在业内是首屈一指的，我花了好几年功夫学习它。我在写书的时候用的是-ms宏的一个修改版。在通过troff格式化页面之前，我在输入中添加了很多“微调”指令，很难想象如果用Frame这些细节上的调整怎么做到。我还使用pic制作了所有插图。我用键盘比用鼠标熟练得多，所以使用依赖菜单的绘图软件很耽误时间，也很难受。之所以没有使用TeX，是因为那几年TeX和PostScript不能很好地协同。要是书里数学方面的东西多一些，可能会考虑TeX。</p>
<p>关于生成供照排机使用的文件，我想多说一点。1989年，在我写完UNP的时候，出版商还没有条件处理供照排机使用的文件，当时只有类似贝尔实验室这样的机构才有自己的排字机。因此在写完UNP之后，我又写了15页的PostScript文件，保存在6张1.2MB的MS-DOC磁盘里，并亲自开车把这几张盘从纽黑文送到罗得岛州府普罗维登斯<a name="notes14" href="#footnotes14">[14]</a>的Typesetting Service Corp.。两天后，他们通过联邦快递（FedEx）把排版后的页面送到Prentice Hall，排版费也是我刷的Visa卡（781页，每页4美元，共3124美元），Prentice Hall后来又把这些钱补给了我。今天，作者只要把最终的PostScript文件通过ftp传给出版商，出版商就可以排版了。</p>
<p>问：<strong>你使用哪种Unix系统？</strong><a name="Rich_Stevens_FAQ_14" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>我每天都在使用的是运行在Sparc Ultra 5上的Solaris。原因很简单：1990年我在买第一台工作站时，只有SparcStation SLC的价格低于5000美元。那几年，大多数工作站厂商都瞧不上低端市场（有些厂商到现在还是如此）。后来我把SLC升级到ELC，然后又将ELC升级到SparcStation4，最后又换成了现在的Ultra 5。（我大约每3年就升级或更换一次硬件。）我的机器里也安装了很多可自由使用软件（GNU C、GNU troff，等等），而且我发现大多数这类软件都会率先被移植到Sun平台上来，因此感觉还是很舒服的。</p>
<p>运行我这个kohala.com域名的服务器中安装的是BSD/OS（HTTP、匿名FTP、电子邮件、DNS，等等）。BSD/OS是非常优秀的系统，非常可靠，它可以一直运行下去不出任何问题。我喜欢它还因为它的源代码是开放的，平常可以时不时地看一看，偶尔也会自己动手解决一点问题。不过我也买了他们的服务，让他们自己来发现和修复一些bug。（对Sun和BSDI的所有产品，我都是照单付钱的，因此以上所说都是非常客观的。）</p>
<p>我的办公室里还有很多其他计算机，运行着各种风格的Unix（在写UNP第2版时是9种；参见该书原版第21页）。我主要用它们来编译和测试我在其他系统上写的代码，同时也可以方便地在不同的主机环境下运行客户端和服务器。</p>
<p>这些系统和Cisco路由器的管理工作完全由我自己负责，要是连这些都做不了，还怎么写Unix网络和编程的书呢。</p>
<p>问：<strong>你喜欢哪些技术书？</strong><a name="Rich_Stevens_FAQ_15" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>以下是一个书单，排名没有先后之分。</p>
<ul>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=0131103628/">The C Programming Language</a></em>（Kernighan与Ritchie合著）。我始终很纳闷，为什么有人说这本书太复杂或者太粗糙。这本书简洁、明确，还配有很多示例。</li>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=020103669X/">Software Tools</a></em>（Kernighan与Plauger合著）。这本书展示了如何设计然后实现许多简单版的Unix工具：grep、sort、ed等。（没错，连ed都有，这可是每个系统管理员都应该知道怎么使用的编辑器啊。我自己每年都要用很多次，经常在单用户模式下使用，编辑一些基本的配置文件。）我最喜欢引用这本书第250页中的那句话：“同样，如果你打算构建一些东西，一定要保证它们概念上的完整性——不要把一堆无关的‘功能’撺在一起。而且要以增量方式来构建，不要一下子全弄出来。” </li>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=013937681X/">The UNIX Programming Environment</a></em>（Kernighan与Pike合著）。经典，在我看来现在仍然“没有过时”。这本书介绍了一些标准Unix命令行工具的用途（以及一些C编程知识），而<em>Software Tools</em>则是一本讲编程的书。</li>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=0201134470/">The TeXbook</a></em>（Knuth）。我不用TeX，但我在排版时经常参考这本书。</li>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=0201134470/">The AWK Programming Language</a></em>（Aho、Kernighan和Weinberger）。我经常用AWK，主要是编写小程序。不，我不用Perl——我认为它是一种只适合写不适合读的语言。</li>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=0070342075/">The Elements of Programming Style</a></em>（Kernighan与Plauger合著）。这本书仍然是所有程序员的必读。</li>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=0062735233/">On Writing Well</a></em>（Zinsser）。教你写作的一本好书。</li>
<li><em><a href="http://www.amazon.com/exec/obidos/ISBN=0139478213/">Webster&#8217;s New World Guide to Current American Usage</a></em>（Randall）。告诉你怎么克服高中英语课上灌输给你的那些不良表达习惯。</li>
</ul>
<p>时刻放在我桌子上的两本书分别是<em><a href="http://www.amazon.com/exec/obidos/ISBN=0877797099/">Merriam Webster&#8217;s Collegiate Dictionary</a></em>和<em><a href="http://www.amazon.com/exec/obidos/ISBN=0226103897/">The Chicago Manual of Style</a></em>。</p>
<p>你也知道，我不只看技术书，我喜欢的小说作者（或者说，他们书的精装本一上市我就出手的那些作者）有：David Baldacci、Patricia Cornwell、Michael Crichton、Patrick Davis、Nelson DeMille、Joseph Finder、Frederick Forsyth、Stephen Frey、John Grisham、Payne Harrison、Greg Isles、Douglas Kennedy、Phillip Margolin、Steve Martini、Douglas Preston和Lincoln Child, 以及Stuart Woods。不过，只有坐飞机的时候看这些书才是为了解闷的。</p>
<p>问：<strong>你名字中的W.表示什么？</strong><a name="Rich_Stevens_FAQ_16" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>William。我父母想用我舅舅（叔叔）Bill的名字，但又想叫我Richard。他们觉得“William Richard”叫起来要比“Richard William”更顺口。</p>
<p>问：<strong>为什么专门为MTS（Michigan Terminal System）写APUE呢？</strong><a name="Rich_Stevens_FAQ_17" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>我是1968～1973年在Michigan上的大学，我用的第一台计算机是运行MTS的IBM 360/67，作为未来的工程师，每个人都要上机学习Fortran编程语言。我们使用的课本是Brice Carnahan和James Wilkes自己编写的，Elliot Organick的那本Fortran IV是补充教材。MTS系统本身非常不可思议，包含了很多巧妙的想法，而且差不多是与Unix同时被开发出来的。与Unix一样，MTS蕴含的思想也领先于它的时代，这一点与其他IBM大型机操作系统相比尤其明显。只不过MTS运行在昂贵的IBM大型机上，而Unix则运行在便宜的PDP-11系列上。结果呢，也就不言自明了。</p>
<p>问：<strong>你编写的程序里为什么会包含goto？</strong><a name="Rich_Stevens_FAQ_18" href="#Rich_Stevens_FAQ_TOC">返回TOC</a></p>
<p>请参考高德纳1974年12月发表在ACM Computing Surveys, Vol. 6, No. 4上的论文，题目叫 Structured Programming with go to Statements。（事实上，那一期的Computing Surveys完全堪称经典。）我想给绝不使用goto的程序员出一道题，就是请在不使用任何goto语句的情况下重新编写tcp_input()（TCP/IPIv2第27章和第28章），注意不要造成任何性能损失（这道题看似简单，实际上可不好解）。</p>
<hr size="1" /><a name="footnotes1" href="#notes1">[1]</a> Unix操作系统（官方商标是UNIX，有时候也写作U<span style="font-variant: small-caps;">nix</span> ）最早是1969年由美国AT&amp;T公司贝尔实验室的员工肯·汤普逊（<a title="Ken Thompson (computer programmer)" href="http://en.wikipedia.org/wiki/Ken_Thompson_(computer_programmer)">Ken Thompson</a>）、丹尼斯·里奇（ <a title="Dennis Ritchie" href="http://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a>）、布赖恩·凯尔尼汗（<a title="Brian Kernighan" href="http://en.wikipedia.org/wiki/Brian_Kernighan">Brian Kernighan</a>）、道格拉斯·麦克伊罗（<a title="Douglas McIlroy" href="http://en.wikipedia.org/wiki/Douglas_McIlroy">Douglas McIlroy</a>）和 <a title="Joe Ossanna" href="http://en.wikipedia.org/wiki/Joe_Ossanna">Joe Ossanna</a>开发的。Unix是1971年最早在在PDP-11（PDP，Programmed Data Processor；PDP-11由DEC公司制造）上运行的操作系统，具有多用户、多任务的特点，支持多种处理器架构。AT&amp;T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用，许多机构在此源码基础上加以扩充和改进，形成了所谓的“Unix变体”，这些变体反过来也促进了Unix的发展，其中最著名的变体之一是由加州大学柏克利分校开发的BSD产品。后来AT&amp;T意识到了Unix的商业价值，不再将Unix源码授权给学术机构，并对之前的Unix及其变体声明了版权权利。结果，导致了一场旷日持久的版权官司。这场官司一直打到AT&amp;T将自己的Unix系统实验室卖掉——同时也为Linux的诞生创造了难得的条件，新接手的Novell公司采取了一种比较开明的做法，允许柏克利分校自由发布自己的BSD，但是前提是必须将来自于AT&amp;T的代码完全删除，于是诞生了4.4 BSD Lite版，由于这个版本不存在法律问题，4.4BSD Lite成为了现代BSD系统的基础版本。要了解完整的Unix及其变体的时间线，请参考：<a href="http://www.levenez.com/unix/">http://www.levenez.com/unix/</a>。——译者注</p>
<p><a name="footnotes2" href="#notes2">[2]</a> VAX（Virtual Address eXtension）是一种可以支持机器语言和虚拟地址的32位小型计算机。VAX最初由DEC（Digital Equipment Corporation）公司在20世纪70年代初发明，是原来16位PDP-11的扩展产品。DEC公司1998年1月26日被Compaq（康柏）公司收购，后者2001年9月4日又被HP（惠普）公司收购。VAX被誉为最成功的小型机，其设计师、DEC技术灵魂、小型机之父戈登·贝尔（Gordon Bell）的个人主页为：http://research.microsoft.com/en-us/um/people/gbell/。——译者注</p>
<p><a name="footnotes3" href="#notes3">[3]</a>]1974年，伯克利加州大学（University of California, Berkeley）从AT&amp;T公司获得修改UNIX的许可，并在此基础上发布BSD（Berkeley Software Distribution，伯克利软件套件）；换句话说，BSD是Unix的衍生系统。1BSD（first Berkeley Software Distribution）是1977年由伯克利的研究生比尔·乔伊（Bill Joy，Sun公司的联合创办人）整理开发出来的。1978年、1979年和1980年，Joy分别发布了2BSD、3BSD和4BSD。4BSD以后的版本由1980年成立的CSRG（Computer System Research Group，计算机系统研究小组）负责发行。该小组于1981年6月发行了称之为4.1BSD的新版本——不是5BSD。由于AT&amp;T觉得5BSD会使用户将它和AT&amp;T Unix System V混淆，Berkely同意改变BSD将来版本的命名规则，将版本号仅保留在4BSD上，以后只增加4后面的小版本号。到1995年CSRG解散时，BSD的最高版本是4.4。1990年代初、中期，NetBSD、FreeBSD以及OpenBSD（从NetBSD小组中分离出来）小组相继成立，它们努力的结晶成为BSD的三个主要变体。BSD的另外两个主要变体NeXTSTEP和Darwin（Mac OS X的核心， 由FreeBSD 4.5和NeXTSTEP混合派生）如今已经演变成苹果公司Mac OS X及iPhone OS的核心。BSD对Unix最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP：4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。这些发行版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前身，包括AT&amp;T System V 和Microsoft Windows。——译者注</p>
<p><a name="footnotes4" href="#notes4">[4]</a> Xenix是微软为微型计算机推出的Unix版本。由于微软购买的授权无法直接让该操作系统以“UNIX”为名，便命名该系统为Xenix。微软在1979年从美国电话电报公司购买了 Version 7 Unix 的授权，并于1980年8月25日发布面向16位系统的版本，由SCO公司将该系统移植至英特尔8086/8088架构。在Unix V7的基础上，Xenix整合了BSD的技术，再加上当时x86处理器的价格低廉，很快便成为当时最受欢迎的Unix发行版。据The Design and Implementation of the 4.3BSD UNIX Operating System（Samuel J. Leffler、Marshall Kirk McKusick，Addison-Wesley，1991.3）称：“如果就运行它的机器数量而言，Xenix可能是发行量最大的一个Unix版本了。”——译者注</p>
<p><a name="footnotes5" href="#notes5">[5]</a> “内存转储”原指把内存中的二进制数据以原来的表达方式转存成文件，用于对内存的运行状态进行事后分析。在这里指的是作者不会照搬开发文档，因此书的内容框架和语言表达自然更接近一般读者。——译者注</p>
<p><a name="footnotes6" href="#notes6">[6]</a> UNIX System III （有时也称System 3）是由AT&#038;T的Unix Support Group（USG）于1982年发布了一个Unix版本，也是第一个面向贝尔实验室之外发布的版本。UNIX System III综合了多个AT&#038;T版本： PWB/UNIX 2.0、CB UNIX 3.0、UNIX/TS 3.0.1和UNIX/32V。System III支持DEC PDP-11和VAX计算机。之所以将这个版本称为System III，是因为它是UNIX/TS 3.0.1和CB UNIX 3这两个由贝尔实验室内部支持的Unix系统的对外发行版。这个版本的文档叫做UNIX Edition 3.0。之前，根本没有System I和System II这两个Unix版本。而且也没有官方发布的UNIX/TS 4.0（否则，就会有System IV了）。换句话说，System III之后就是基于UNIX/TS 5.0System V了。——译者注</p>
<p><a name="footnotes7" href="#notes7">[7]</a> USENIX协会（USENIX Association）是一个高级计算技术协会。其前身是成立于1975年的Unix Users Group（Unix用户组），主要致力于Unix及类似系统的研发。1977年，AT&#038;T的律师通知这个小组不能使用UNIX这个词，因为它是Western Electric（截止到1995年一直是AT&#038;T的生产部门）的注册商标。于是，该小组遂更名为USENIX。这个协会受到了计算机操作系统领域的众多业内人士、开发人员和研究人员的推崇。这个协会每年都会举办一些会议和研讨会，最著名的是OSDI（USENIX Symposium on Operating Systems Design and Implementation ，USENIX操作系统设计与实现研讨会）、USENIX Annual Technical Conference（USENIX年度技术大会）、 USENIX Security Symposium（USENIX安全研讨会）、 FAST（USENIX Conference on File and Storage Technologies，USENIX文件及存储技术大会），以及SAGE（The USENIX Special Interest Group for Sysadmins，USENIX系统管理员特别兴趣小组——非盈利的专业系统管理员的国际性协会）主办的LISA（Large Installation System Administration Conference，大型系统管理员大会）。——译者注</p>
<p><a name="footnotes8" href="#notes8">[8]</a> Xinu是一种类Unix操作系统，1980年代由Douglas Comer为教学在普渡大学（Purdue University）开发。Xinu这外名字既是递归缩写（Xinu Is Not Unix），又是“Unix”的反向拼写形式。这个系统曾被移植到很多硬件平台，包括DEC LSI-11和VAX系统、 Sun-2 and Sun-3工作站、Intel x86、PowerPC G3 和MIPS等。——译者注</p>
<p><a name="footnotes9" href="#notes9">[9]</a> PostScript是1982年由John Warnock和Charles Geschke专门为打印图形和文字而设计的一种页面描述语言和编程语言，它与打印的介质无关，不管是在纸上、胶片上打印，还是在屏幕显示都没有问题。PostScript的主要目标是提供一种独立于设备的能够方便地描述图像的语言。独立于设备意味着，不需要借助任何具体设备的特性（例如，打印机的分辨率）来描述图像，因而这个描述不需要经过任何修改即可在其他的PostScript打印机上进行打印。PostScript作为一种语言，自己有语法和格式规范，这种语言描述的页面由PostScript文件表示。PostScript文件本身只是用PostScript语言描述了所要显示或者打印的文本及图像有哪些特征、参数，在显示或者打印PostScript文件的时候，再由PostScript解释器解释并打印或者显示。PostScript不仅与设备无关，而且与操作系统无关。无论是Windows操作系统，还是Unix操作系统，都可以阅读和打印PostScript文件。由于PostScript文件是以文本形式存储，因而文件比较小，适合在Internet上传输。（1982年12月，John Warnock和Charles Geschke离开施乐公司创建Adobe，以开发和销售PostScript为生。后来成就了Adobe“帝国”。）——译者注</p>
<p><a name="footnotes10" href="#notes10">[10]</a> 完整的书名是<em>Lions&#8217; Commentary on UNIX 6th Edition, with Source Code</em>，据说有中文版，暂时没找到。——译者注</p>
<p><a name="footnotes11" href="#notes11">[11]</a>Andrew S．Tanenbaum获得过美国麻省理工学院的理学学士学位和加利福尼亚大学伯克利分校的哲学博士学位，目前是荷兰阿姆斯特丹Vrije大学的计算机科学系的教授。还出版过《分布式操作系统》（Distributed Operating Systems）、《分布式系统：原理与范型》（Distributed Systems: Principles and Paradigms）、《计算机组成：结构化方法》（Structured Computer Organization）、《现代操作系统》（Modern Operating Systems）和《操作系统：设计及实现》（Operating Systems: Design and Implementation）等计算机专著。其中，《操作系统：设计及实现》一书和书中示例的Minix操作系统（也是Tanenbaum领导开发的一个免费用于教学目的的类Unix操作系统）给予了林纳斯·托瓦兹创造Linux操作系统内核的灵感。在他的自传《Just For Fun》（英文意为“只是为了有趣”）中，托瓦兹把这本书描述为“引领我到达新高度的一本书籍”。Tanenbaum是ACM会员，IEEE资深会员，荷兰皇家艺术和科学学院院士，获得过1994年度ACM KarlV．Karlstrom杰出教育家奖。根据Pearson官方网站公布的信息（http://www.pearsonhighered.com/tanenbaum/），Computer Networks, Fifh Edition将于2010年10月出版。</p>
<p><a name="footnotes12" href="#notes12">[12]</a>最早的Unix编程专著Advanced UNIX Programming（Addison-Wesley，1985）一书的作者，该书第1版出版19年后，作者推出了“升级版”——第2版，在自己的网站里（http://basepath.com/aup/），作者戏言：“说升级也许有点不恰当了。新版的篇幅达到750页，而旧版中差不多只有20段话没有改过，上一版介绍了70个系统调用，而这一版则达到了300个。”</p>
<p><a name="footnotes13" href="#notes13">[13]</a>Brian W．Kernighan，贝尔实验室计算科学研究中心高级研究人员，著名的计算机科学家。他参加了UNIX系统、C语言、AWK语言和许多其他系统的开发，同时出版了许多在计算机领域具有影响的著作，包括The Elements of Programming Style、The Practice of Programming、The UNIX Programming Environment、The AWK Language、Software Tools等。</p>
<p><a name="footnotes14" href="#notes14">[14]</a>从康涅狄格州纽黑文到罗得岛州府普罗维登斯大约105英里，约168公里。——译者注</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2010/09/12/rich-stevens-faq-2007.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>《JavaScript高级程序设计（第2版）》快出版了</title>
		<link>http://www.cn-cuckoo.com/2010/06/24/professional-javascript-for-web-developers-2nd-will-soon-be-published-1706.html</link>
		<comments>http://www.cn-cuckoo.com/2010/06/24/professional-javascript-for-web-developers-2nd-will-soon-be-published-1706.html#comments</comments>
		<pubDate>Thu, 24 Jun 2010 06:30:54 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1706</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="互动网本书页面" href="http://www.china-pub.com/196857" target="_blank"><img class="colorbox-1706"  src="http://images.china-pub.com/ebook195001-200000/196857/shupi.jpg" alt="《JavaScript高级程序设计（第2版）》" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2010/06/24/professional-javascript-for-web-developers-2nd-will-soon-be-published-1706.html/feed</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>《JavaScript高级程序设计（第2版）》译者序</title>
		<link>http://www.cn-cuckoo.com/2010/05/24/the-translators-foreword-for-professional-javascript-1644.html</link>
		<comments>http://www.cn-cuckoo.com/2010/05/24/the-translators-foreword-for-professional-javascript-1644.html#comments</comments>
		<pubDate>Mon, 24 May 2010 07:57:47 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1644</guid>
		<description><![CDATA[寻人启示 lyongde 同学，请尽快将你的名字发到我的邮箱里面（lsf.email[at]gmail.com），以便在第二次印刷时加到译者序中以表感谢。 儒家经典《大学》将“格物致知”奉为做学问、养身性的最高境界。 尼古拉斯•扎卡斯重新修订的这个最新版本，为各层次的JavaScript爱好者和Web前端开发人员提供了一条“格物致知”的捷径。 新版本的原书不仅篇幅由原来的600多页增加到800页，而且几乎全部更新、重写了上一版的内容，删除了上一版中与今天的职业需求无关的主题，新增了大量比上一版更有价值、更能反映JavaScript最新发展成果的内容。从颇具深度的JavaScript语言基础到作用域（链），从JavaScript引用类型到面向对象编程，从极其灵活的匿名函数到闭包的内部机制，从浏览器对象模型（BOM）到客户端检测，从文档对象模型（DOM）到基于事件的Web脚本编程，从错误处理到前端调试，从XML（E4X）到Ajax及JSON，从高级前端开发技术到前沿的客户端存储，从最佳编程实践到展望即将成为现实的API，直至JavaScript未来的发展。全书基本上囊括了JavaScript技术的各个方面，几乎涉及到了Web前端开发的所有热门话题。值得一提的是，本书还涵盖了当前最受开发人员关注的HTML5和移动设备（如iPhone）开发的内容。可以预见，本书一定会成为Web前端开发人员不可多得的经典之作。 需要提请读者注意的是，本书第22章讲到了JavaScript未来的变化，里面大部分讲的是ECMAScript 4/JavaScript 2，而ECMAScript 4已经被放弃了，新标准是ECMAScript 5。请读者参考http://www.ecmascript.org/。感谢周涛（Snandy）指出此问题。 本书文前和第1章至第17章由李松峰翻译，第18章至第22章及附录由曹力翻译。武卫东老师审读斧正了序的翻译，责任编辑朱巍为本书早日出版多方协调，执行编辑毛倩倩发现了译稿中多处错译和漏译，排校负责人董秋霞、谢凌老师严把三道排校质量关、谢廷晟全面审校了第1章至第17章，吴玺喆（George Wing）、吴生辉（千年一梦）、周裕波、梁超（LC）、张树恒(shuzai)、罗永德（lyongde）也审校了前17章的部分内容，为确保本书翻译质量起到了重要作用，在此对上述老师和同学致以深深的谢意。 译者 2010年5月]]></description>
			<content:encoded><![CDATA[<div style="background:#eee;padding:0 1em 1em 1em;margin-bottom:1em;text-decoration:line-through;">
<p style="font-size:1.5em;color:red;text-align:center;">寻人启示</p>
<p>lyongde 同学，请尽快将你的名字发到我的邮箱里面（lsf.email[at]gmail.com），以便在第二次印刷时加到译者序中以表感谢。</p></div>
<p>儒家经典《大学》将“格物致知”奉为做学问、养身性的最高境界。</p>
<p>尼古拉斯•扎卡斯重新修订的这个最新版本，为各层次的JavaScript爱好者和Web前端开发人员提供了一条“格物致知”的捷径。</p>
<p>新版本的原书不仅篇幅由原来的600多页增加到800页，而且几乎全部更新、重写了上一版的内容，删除了上一版中与今天的职业需求无关的主题，新增了大量比上一版更有价值、更能反映JavaScript最新发展成果的内容。从颇具深度的JavaScript语言基础到作用域（链），从JavaScript引用类型到面向对象编程，从极其灵活的匿名函数到闭包的内部机制，从浏览器对象模型（BOM）到客户端检测，从文档对象模型（DOM）到基于事件的Web脚本编程，从错误处理到前端调试，从XML（E4X）到Ajax及JSON，从高级前端开发技术到前沿的客户端存储，从最佳编程实践到展望即将成为现实的API，直至JavaScript未来的发展。全书基本上囊括了JavaScript技术的各个方面，几乎涉及到了Web前端开发的所有热门话题。值得一提的是，本书还涵盖了当前最受开发人员关注的HTML5和移动设备（如iPhone）开发的内容。可以预见，本书一定会成为Web前端开发人员不可多得的经典之作。</p>
<p>需要提请读者注意的是，本书第22章讲到了JavaScript未来的变化，里面大部分讲的是ECMAScript 4/JavaScript 2，而ECMAScript 4已经被放弃了，新标准是ECMAScript 5。请读者参考http://www.ecmascript.org/。感谢周涛（Snandy）指出此问题。</p>
<p>本书文前和第1章至第17章由李松峰翻译，第18章至第22章及附录由曹力翻译。武卫东老师审读斧正了序的翻译，责任编辑朱巍为本书早日出版多方协调，执行编辑毛倩倩发现了译稿中多处错译和漏译，排校负责人董秋霞、谢凌老师严把三道排校质量关、谢廷晟全面审校了第1章至第17章，吴玺喆（George Wing）、吴生辉（千年一梦）、周裕波、梁超（LC）、张树恒(shuzai)、罗永德（lyongde）也审校了前17章的部分内容，为确保本书翻译质量起到了重要作用，在此对上述老师和同学致以深深的谢意。</p>
<p style="text-align: right;">译者<br />
2010年5月</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2010/05/24/the-translators-foreword-for-professional-javascript-1644.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>诚邀《Beginning Android 2》技术审稿人</title>
		<link>http://www.cn-cuckoo.com/2010/05/06/beginning-android-2-technical-reviewer-wanted-1606.html</link>
		<comments>http://www.cn-cuckoo.com/2010/05/06/beginning-android-2-technical-reviewer-wanted-1606.html#comments</comments>
		<pubDate>Thu, 06 May 2010 13:11:24 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[原创]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[移动开发]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1606</guid>
		<description><![CDATA[眼下，我正在翻译Beginning Android 2（Apress，March 2010）这本书。之所以翻译这本书，一来是因为这本书比较急，而全书又有接近400页的内容需要翻译，如果找其他译者，少说得3个月；而我打算在1个月左右搞定。二来也是为了学习一下Android开发，以后审稿子也可以做到“胸有成竹”。 之所以想到公开征寻技术审稿人，一是上一本书的样章吸引了120多位朋友的热情参与（“经典名著，精选样章”），几位热心的朋友在出版前也为我指出了一些问题，而这些问题在出版前都得到了妥善解决，保证了最终出书的质量；二是在今天这个开放的环境下，如果还延续那种一个人关起门来翻译的模式，不仅会显得译者自己缺乏公开的勇气，更会拖延译稿中问题的解决（译者无法解决书中全部问题很正常），影响出书进度。况且，样章早晚都是要放出来给潜在读者先睹为快的，后放不如早放，这样也有利于潜在读者提前了解这本书的价值所在和翻译质量——“先尝后买”嘛。 当然，征寻技术审稿人的主要目的，还是为了请领域专家来给译稿把关，尽最大努力来消除翻译中存在的错误或问题，确保最终出书的质量。下面就说一说对技术审稿人的要求： 1、对Android开发有浓厚的兴趣和一定的开发经验； 2、愿意花时间“先睹为快”并有能力指出错误和问题； 3、有一定的中文文字表达能力，能够看懂英文原文。 有意参与这本书技术审校的朋友，请给我发邮件（lsf.email[at]gmail.com）吧，邮件标题请填“Beginning Android 2审校”（以便过滤归类）。 声明一下：对所有参与审校的朋友，我会在译者序中具名致谢。对参与审校而且指出问题较多的朋友，届时将赠送样书（样书可以是本书中文版，或者我翻译过的其他图书，或者图灵公司出版的其他图书——届时我们可以再商量）。 另外，对于只是想“先睹为快”的朋友，也可以给我发邮件，邮件标题请填“Beginning Android 2试读”，我会给大家共享部分样章。 期待Android开发专家、高手、大牛、爱好者，伸出援手、不吝赐教！让我们共同携手，为Android开发社区和爱好者又快又好地奉献一本优秀的引进版图书。]]></description>
			<content:encoded><![CDATA[<p>眼下，我正在翻译<a title="http://www.amazon.com/Beginning-Android-2-Mark-Murphy/dp/1430226293/" href="http://www.amazon.com/Beginning-Android-2-Mark-Murphy/dp/1430226293/" target="_self"><strong><em>Beginning Android 2</em></strong></a>（Apress，March 2010）这本书。之所以翻译这本书，一来是因为这本书比较急，而全书又有接近400页的内容需要翻译，如果找其他译者，少说得3个月；而我打算在1个月左右搞定。二来也是为了学习一下Android开发，以后审稿子也可以做到“胸有成竹”。</p>
<p>之所以想到公开征寻技术审稿人，一是上一本书的样章吸引了120多位朋友的热情参与（“<a title="http://www.cn-cuckoo.com/2010/02/06/professional-javascript-developers-wrox-programmer-sample-chapter-1411.html" href="http://www.cn-cuckoo.com/2010/02/06/professional-javascript-developers-wrox-programmer-sample-chapter-1411.html" target="_blank">经典名著，精选样章</a>”），几位热心的朋友在出版前也为我<a title="http://www.cn-cuckoo.com/projs2" href="http://www.cn-cuckoo.com/projs2" target="_blank">指出了一些问题</a>，而这些问题在出版前都得到了妥善解决，保证了最终出书的质量；二是在今天这个开放的环境下，如果还延续那种一个人关起门来翻译的模式，不仅会显得译者自己缺乏公开的勇气，更会拖延译稿中问题的解决（译者无法解决书中全部问题很正常），影响出书进度。况且，样章早晚都是要放出来给潜在读者先睹为快的，后放不如早放，这样也有利于潜在读者提前了解这本书的价值所在和翻译质量——“先尝后买”嘛。</p>
<p>当然，征寻技术审稿人的主要目的，还是为了请领域专家来给译稿把关，尽最大努力来消除翻译中存在的错误或问题，确保最终出书的质量。下面就说一说对技术审稿人的要求：</p>
<p>1、对Android开发有浓厚的兴趣和一定的开发经验；<br />
2、愿意花时间“先睹为快”并有能力指出错误和问题；<br />
3、有一定的中文文字表达能力，能够看懂英文原文。</p>
<p>有意参与这本书技术审校的朋友，请给我发邮件（lsf.email[at]gmail.com）吧，邮件标题请填“<strong>Beginning Android 2</strong><strong>审校</strong>”（以便过滤归类）。</p>
<p>声明一下：<span style="color: #ff0000;"><strong>对所有参与审校的朋友，我会在译者序中具名致谢</strong><strong>。对参与审校而且指出问题较多的朋友，届时将赠送样书（</strong><strong>样书可以是本书中文版，或者我翻译过的其他图书，或者图灵公司出版的其他图书——届时我们可以再商量）</strong></span>。</p>
<p>另外，对于只是想“先睹为快”的朋友，也可以给我发邮件，邮件标题请填“<strong>Beginning Android 2</strong><strong>试读</strong>”，我会给大家共享部分样章。</p>
<p><strong><span style="color: #ff0000;">期待Android开发专家、高手、大牛、爱好者，伸出援手、不吝赐教！让我们共同携手，为Android开发社区和爱好者又快又好地奉献一本优秀的引进版图书。</span></strong></p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.amazon.com/Beginning-Android-2-Mark-Murphy/dp/1430226293/"><img class="colorbox-1606"  title="Beginning Android 2" src="http://ecx.images-amazon.com/images/I/41dLQq5rpjL._SS500_.jpg" alt="Beginning Android 2" width="500" height="500" /></a><p class="wp-caption-text">Beginning Android 2</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2010/05/06/beginning-android-2-technical-reviewer-wanted-1606.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>经典名著，精选样章</title>
		<link>http://www.cn-cuckoo.com/2010/02/06/professional-javascript-developers-wrox-programmer-sample-chapter-1411.html</link>
		<comments>http://www.cn-cuckoo.com/2010/02/06/professional-javascript-developers-wrox-programmer-sample-chapter-1411.html#comments</comments>
		<pubDate>Sat, 06 Feb 2010 14:16:27 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[译作支持]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1411</guid>
		<description><![CDATA[在一年一度的新春佳节即将到来之际，应热心读者的要求，为满足大家先睹为快的愿望，也为了答谢朋友们对本博客长期以来的支持，即日起到春节前夕，本站将发布尚未出版的《JavaScript高级程序设计（第2版）》一书的样章（暂定为3章，约115页）。 申请办法 1、发邮件到：lisf@turingbook.com。 2、邮件主题：《JavaScript高级程序设计（第2版）》样章；邮件内容：您的Email地址。 3、24小时内收到样章，先睹为快！ 备注：样章格式为PDF，托管在“Google文件”，可以在线查看（无须登录），也可以下载和打印。希望在线查看PDF的朋友，请在邮件正文中注明“希望接收Google文件”字样，即可收到样章的链接（也可以下载）；否则，将收到PDF文件（*请确保有5M以上的空余邮箱空间）。 样章列表（详细目录） 第3章 基本概念 第4章 变量、作用域及内存问题 第5章 引用类型 《JavaScript高级程序设计（第2版）》简介 本书是人民邮电出版社图灵公司引进出版的大畅销书、JavaScript权威著作《JavaScript高级程序设计》的最新升级版。《JavaScript高级程序设计》自2006年11月出版以来，已经累计销售逾30000册，而且至今仍然十分畅销。这一点可以通过北京新华文化发展有限公司（新华书店）近期的店面销售数据看出来（大家可以自行比较一下其他畅销书的销量）。应该说，在Web 2.0革命爆发的同时，人民邮电出版社图灵公司引进出版的本书成就了计算机图书市场上难得一见的奇迹。 本书作者尼古拉斯·扎卡斯（Nicholas C. Zakas）现为Yahoo!公司首席前端工程师，世界顶级Web技术专家。原书第1版曾被选为Yahoo!公司YUI（Yahoo! User Interface Library，Yahoo!用户界面库）团队的内部培训教材。 2009年初，本书第2版面世（《Professional JavaScript for Web developers, 2nd Edition》）。新版本不仅篇幅由原来的600多页增加到800页，而且几乎全部更新、重写了上一版的内容，删除了上一版中与今天的职业需求无关的主题，新增了大量比上一版更有价值、更能反映JavaScript最新发展成果的内容。从颇具深度的JavaScript语言基础到作用域（链），从JavaScript引用类型到面向对象编程的最佳实践，从极其灵活的匿名函数到闭包的内部机制，从浏览器对象模型（BOM）到客户端检测，从文档对象模型（DOM）到基于事件的Web脚本编程，从错误处理到前端调试，从XML（E4X）到Ajax及JSON，从高级前端开发技术到前沿的客户端存储，从最佳编程实践到展望即将成为现实的API，直至JavaScript未来的发展。全书彻底涵盖了JavaScript技术的各个方面，几乎涉及到了Web前端开发的每一处细节。可以预见，这部著作一定会成为Web前端开发人员不可多得的又一部经典。 目前，《JavaScript高级程序设计（第2版）》的翻译工作已经进入后期阶段（全书22章，所剩不到5章）。而且，为确保新版及时上市与读者见面，出版社采取了与译者同步翻译、同步编辑审校的特别措施。新版本预计2010年上半年可以上市；当然，在确保出版品质的前提下一定会尽量往前赶！ 样章详细目录 第3章 基本概念 1 3.1 语法 1 3.1.1 区分大小写 1 3.1.2 标识符 1 3.1.3 注释 2 3.1.4 语句 2 3.2 关键字和保留字 3 3.3 变量 4 [...]]]></description>
			<content:encoded><![CDATA[<p>在一年一度的新春佳节即将到来之际，应热心读者的要求，为满足大家先睹为快的愿望，也为了答谢朋友们对本博客长期以来的支持，即日起到春节前夕，本站将发布尚未出版的《JavaScript高级程序设计（第2版）》一书的样章（暂定为3章，约115页）。</p>
<div style="background: #eee; padding: .3em; font-size: 1.5em;">申请办法</div>
<p>1、发邮件到：lisf@turingbook.com。<br />
2、邮件主题：《JavaScript高级程序设计（第2版）》样章；邮件内容：您的Email地址。<br />
3、24小时内收到样章，先睹为快！</p>
<div style="border: 1px dashed #333; color: #555; padding: .5em;">备注：样章格式为PDF，托管在“Google文件”，可以在线查看（无须登录），也可以下载和打印。<span style="text-decoration: line-through;">希望在线查看PDF的朋友，请在邮件正文中注明“希望接收Google文件”字样，即可收到样章的链接（也可以下载）；否则，将收到PDF文件（*请确保有5M以上的空余邮箱空间）</span>。</div>
<div style="background: #eee; padding: .3em; font-size: 1.5em; margin-top: .5em;">样章列表（<a href="#contents">详细目录</a>）</div>
<p>第3章 基本概念<br />
第4章 变量、作用域及内存问题<br />
第5章 引用类型</p>
<div style="background: #eee; padding: .3em; font-size: 1.5em;">《JavaScript高级程序设计（第2版）》简介</div>
<p>本书是<a title="人民邮电出版社图灵公司" href="http://www.turingbook.com" target="_blank">人民邮电出版社图灵公司</a>引进出版的大畅销书、JavaScript权威著作《<a title="互动网：JavaScript高级程序设计(AJAX程序员必备)" href="http://www.china-pub.com/31282" target="_blank">JavaScript高级程序设计</a>》的最新升级版。《JavaScript高级程序设计》自2006年11月出版以来，已经累计销售逾30000册，而且至今仍然十分畅销。这一点可以通过<a title="北京新华书店店面销售数据：近期销售走势" href="http://www.xhsd.com.cn/books/views.asp?PLUCODE=711515209" target="_blank">北京新华文化发展有限公司（新华书店）近期的店面销售数据</a>看出来（大家可以自行比较一下其他畅销书的销量）。应该说，在Web 2.0革命爆发的同时，人民邮电出版社图灵公司引进出版的本书成就了计算机图书市场上难得一见的奇迹。</p>
<p>本书作者<a title="http://www.nczonline.net/" href="http://www.nczonline.net/" target="_blank">尼古拉斯·扎卡斯（Nicholas C. Zakas）</a>现为Yahoo!公司首席前端工程师，世界顶级Web技术专家。原书第1版曾被选为Yahoo!公司<a title="YUI" href="http://developer.yahoo.com/yui/" target="_blank">YUI（Yahoo! User Interface Library，Yahoo!用户界面库）</a>团队的内部培训教材。</p>
<p>2009年初，本书第2版面世（<a title="Professional JavaScript for Web developers, 2nd Edition" href="http://www.amazon.com/Professional-JavaScript-Developers-Wrox-Programmer/dp/047022780X/" target="_blank">《Professional JavaScript for Web developers, 2nd Edition》</a>）。新版本不仅篇幅由原来的600多页增加到800页，而且几乎全部更新、重写了上一版的内容，删除了上一版中与今天的职业需求无关的主题，新增了大量比上一版更有价值、更能反映JavaScript最新发展成果的内容。从颇具深度的JavaScript语言基础到作用域（链），从JavaScript引用类型到面向对象编程的最佳实践，从极其灵活的匿名函数到闭包的内部机制，从浏览器对象模型（BOM）到客户端检测，从文档对象模型（DOM）到基于事件的Web脚本编程，从错误处理到前端调试，从XML（E4X）到Ajax及JSON，从高级前端开发技术到前沿的客户端存储，从最佳编程实践到展望即将成为现实的API，直至JavaScript未来的发展。全书彻底涵盖了JavaScript技术的各个方面，几乎涉及到了Web前端开发的每一处细节。可以预见，这部著作一定会成为Web前端开发人员不可多得的又一部经典。</p>
<p>目前，《JavaScript高级程序设计（第2版）》的翻译工作已经进入后期阶段（全书22章，所剩不到5章）。而且，为确保新版及时上市与读者见面，出版社采取了与译者同步翻译、同步编辑审校的特别措施。新版本预计2010年上半年可以上市；当然，在确保出版品质的前提下一定会尽量往前赶！</p>
<p><a name="contents"></a></p>
<div style="background: #eee; padding: .3em; font-size: 1.5em;">样章详细目录</div>
<p>第3章	基本概念	1<br />
3.1	语法	1<br />
3.1.1	区分大小写	1<br />
3.1.2	标识符	1<br />
3.1.3	注释	2<br />
3.1.4	语句	2<br />
3.2	关键字和保留字	3<br />
3.3	变量	4<br />
3.4	数据类型	5<br />
3.4.1	typeof操作符	5<br />
3.4.2	Undefined类型	6<br />
3.4.3	Null类型	7<br />
3.4.4	Boolean类型	7<br />
3.4.5	Number类型	8<br />
3.4.6	String类型	14<br />
3.4.7	Object类型	16<br />
3.5	操作符	17<br />
3.5.1	一元操作符	17<br />
3.5.2	位操作符	20<br />
3.5.3	布尔操作符	26<br />
3.5.4	乘性操作符	29<br />
3.5.5	加性操作符	30<br />
3.5.6	关系操作符	32<br />
3.5.7	相等操作符	34<br />
3.5.8	条件操作符	35<br />
3.5.9	赋值操作符	36<br />
3.5.10	逗号操作符	36<br />
3.6	语句	37<br />
3.6.1	if语句	37<br />
3.6.2	do-while语句	38<br />
3.6.3	while语句	38<br />
3.6.4	for语句	38<br />
3.6.5	for-in语句	40<br />
3.6.6	label语句	40<br />
3.6.7	break和continue语句	41<br />
3.6.8	with语句	42<br />
3.6.9	switch语句	43<br />
3.7	函数	45<br />
3.7.1	理解参数	47<br />
3.7.2	没有重载	48<br />
3.8	小结	49</p>
<p>第4章	变量、作用域和内存问题	1<br />
4.1	基本类型和引用类型的值	1<br />
4.1.1	动态属性	2<br />
4.1.2	复制变量值	3<br />
4.1.3	传递参数	4<br />
4.1.4	检测类型	6<br />
4.2	执行环境及作用域	6<br />
4.2.1	延长作用域链	9<br />
4.2.2	没有块级作用域	10<br />
4.2.3	声明变量	10<br />
4.2.4	查询标识符	11<br />
4.3	垃圾收集	12<br />
4.3.1	标记清除	12<br />
4.3.2	引用计数	13<br />
4.3.3	性能问题	14<br />
4.3.4	管理内存	15<br />
4.4	小结	15</p>
<p>第5章	引用类型	1<br />
5.1	Object类型	1<br />
5.2	Array类型	3<br />
5.2.1	转换方法	6<br />
5.2.2	栈方法	7<br />
5.2.3	队列方法	8<br />
5.2.4	重排序方法	9<br />
5.2.5	操作方法	11<br />
5.3	Date类型	12<br />
5.3.1	继承的方法	14<br />
5.3.2	日期格式化方法	15<br />
5.3.3	日期/时间组件方法	15<br />
5.4	RegExp类型	17<br />
5.4.1	RegExp实例属性	19<br />
5.4.2	RegExp实例方法	19<br />
5.4.3	RegExp构造函数属性	21<br />
5.4.4	模式的局限性	23<br />
5.5	Function类型	23<br />
5.5.1	没有重载（深入理解）	25<br />
5.5.2	函数声明与函数表达式	25<br />
5.5.3	作为值的函数	26<br />
5.5.4	函数内部属性	27<br />
5.5.5	函数属性和方法	29<br />
5.6	基本包装类型	31<br />
5.6.1	Boolean类型	32<br />
5.6.2	Number类型	33<br />
5.6.3	String类型	35<br />
5.7	内置对象	42<br />
5.7.1	Global对象	43<br />
5.7.2	Math对象	46<br />
5.8	小结	49</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2010/02/06/professional-javascript-developers-wrox-programmer-sample-chapter-1411.html/feed</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>《JavaScript高级程序设计（第2版）》序</title>
		<link>http://www.cn-cuckoo.com/2010/01/17/professional-javascript-for-web-developers-2nd-edition-foreword-1373.html</link>
		<comments>http://www.cn-cuckoo.com/2010/01/17/professional-javascript-for-web-developers-2nd-edition-foreword-1373.html#comments</comments>
		<pubDate>Sun, 17 Jan 2010 06:14:54 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1373</guid>
		<description><![CDATA[从诞生至今的大部分时间里，焦虑、抨击、蔑视和误解一直与JavaScript如影随形。JavaScript刚刚问世那几年，很多“严肃的程序员”都认为它不够严肃。 相比之下，.COM泡沫时期加入Web开发行列的许多文科生，则普遍觉得JavaScript深不可测、晦涩难懂。就算那些耐力和韧性俱佳者能够把JavaScript琢磨得很透，但仍然摆脱不掉竞争性浏览器提供的不同实现给他们带来的麻烦。凡此种种，最终导致粗制滥造的脚本越来越多。另一方面，拜Web前端代码的无比开放性所赐，各种坏习惯不断从一个站点被粘贴进另一个站点的源代码中。那些实现活该臭名昭著，可是，JavaScript这门语言也因此被严重拖累，背上了不该有的坏名声了。 2001年前后（随着Internet Explorer 6的发布），浏览器实现已经大为改进，Web开发实践也开始得到改善，呈现出了二者水乳交融的局面。作为Ajax核心的XMLHttpRequest对象正慢慢地为人们所发现，一种新的桌面风格的用户交互模式出现在浏览器中。允许JavaScript操作Web文档结构和内容的DOM API已经定型。而CSS，不管人们如何曲解或者无视它，也无论浏览器开发商怎样丧心病狂地实现它，都已经成长得足够茁壮，它的美妙和反应敏捷令它能够与新的Web交互能力配合无间。最终，JavaScript一扫颓势，变得令人惊诧、让人兴奋、使人敬畏。想想2004年第一次使用Google Maps时的情景吧，那种感觉你或许还记忆犹新。 Google Maps是新兴应用程序的典型代表。这类浏览器编程与后端编程并重的应用程序，不禁令人对Web浏览器窗口中那块“画布”的未来浮想联翩。（除Google Maps之外，早在2003年就基于网页邮件客户端提供类似Outlook功能的Oddpost，也是这类应用程序的一个了不起的先驱。）随着这类应用程序如雨后春笋般大量涌现，以及支持它们的浏览器的市场份额不断攀升，一个Web应用全面复兴的时代真的到来了。“Web 2.0”诞生了，Ajax也成了“IT”技术。Web似乎在一夜之间脱胎换骨，重新激发起了人们的兴趣。而JavaScript作为唯一的Web编程语言，也变得更有意思了。 有意思，但用好它却不简单。JavaScript以及在DOM和BOM中为其定义的API不一致的实现，给跨浏览器编程造成了比原本大得多的困难。前端设计行业还远未成熟。大学教学计划并没有（至今仍没有）做出相应的调整，以满足相关的培训要求。 到2004年底，JavaScript无疑已经成为最重要的编程语言。但从学术角度看，它依然不具备进入一类学科的资格。Web虽然已经翻开了新的一页，但在培养足够的知识全面、训练有素的人才方面，我们依然面临着严峻的挑战。 为此，很多技术作者挺身而出，撰写了不少有关JavaScript的图书。几年来，这类书虽然也出了不下几十本，但总体来说仍然不尽如人意。其中有的在推销与落伍的浏览器有关的技术，有的则在卖弄容易剪贴但却不好扩展和维护的技术。让人想不通的是，许多JavaScript图书让人觉得作者好象并不真正喜欢JavaScript，或者他们不认为读者应该喜欢它，再或者他们根本不相信读者能够完全理解JavaScript。 2005年，Nicholas C. Zakas这本书的第一版面世，为前端工程领域奉献了一本真正的好书。当时，我和雅虎的同事们正在创建YUI（Yahoo! User Interface Library，Yahoo!用户界面库），打算将其作为公司前端工程的基础，同时也借以推广我们这门新学问的最佳实践。每到周五，我们就聚到一间教室里讨论前端工程，也向大家讲解JavaScript、CSS以及在浏览器中创建Web应用程序的知识。我们从已出版的高级JavaScript及DOM脚本编程方面的图书中认真挑选了几本，想让新工程师通过它们掌握如何构建耐用、基于标准且容易维护的Web应用程序。Zakas的书一出版，马上就被选为我们的JavaScript内部培训课本。 从那时起我们就一直使用他的书。我们一致认为这本书太有用了，于是就跟Zakas商量，让他加入雅虎帮我们建立公司的前端工程社区。 Zakas在书中传达的理念与众不同——JavaScript既需要严肃认真地对待，但也是完全可以理解和掌握的。如果你是个程序员，这本书会告诉你JavaScript与各种编程语言的关系，以及如何运用你已经习以为常的各种编程模式。你可以理解JavaScript的继承机制及其固有的动态特性（虽不合传统，但却十分自由十分强大），可以从Zakas这位尊重和理解JavaScript的同道那里学会欣赏JavaScript这门语言。 如果你曾经是一名文科生，在网络泡沫时期步入了这个行业，至今也没有转行，而且想要弥补自己在JavaScript方面的不足，你会发现Zakas是一位难得的良师益友。他可以帮你实现从“会做”到“做好”的转变。他能让你认真地理解这门严肃的学问。最重要的是，他不会让你先入为主地产生对这门语言应该理解多深的想法。相反，通过他严肃、耐心、通俗易懂的讲解，你自然而然地会对这门语言有同样深刻的认识。 本书是经过扩展、更新和改进后的第二版，删除了上一版中与今天的职业需求无关的主题，并用我们在2005年至2008年学习的新知识更新了剩余的内容。这几年是JavaScript发展的重要时期，Zakas则始终位于最前沿孜孜不倦地学习这些新知识。他这些年一直在致力于建造新一代最流行的Web个人门户（My Yahoo!），以及开发Web上最受欢迎的站点（Yahoo!主页）的新版本。Zakas以他作为老师和作者的独特视角，筛选出由这些超复杂、超大型应用程序磨砺出的经验，并将这些经验融入到了本书的字里行间。 他给出的解决方案远远超出了一本好书的范畴，只有每天都与代码同呼吸共命运的人，才有可能与读者分享如此具有实用价值的知识。 说实话，本书新版的面世对我和各位读者而言真是个莫大的喜讯。因为它的内容比上一版更有价值、更能反映JavaScript最新的发展成果，因此也更加令人不可错过。 埃里克·米拉利亚（Eric Miraglia） YUI高级技术经理 哲学博士 于加利福尼亚州森尼维耳市 Nicholas C. Zakas，Yahoo!主页首席前端工程师，个人网站www.nczonline.net。《Professional JavaScript for Web developers, 2nd Edition》作者。最新专著《High Performance JavaScript》（O&#8217;Reilly Media; 1 edition,March 15, 2010）。 本站相关译文 Nicholas C. Zakas如何面试前端工程师 如何通过Nicholas C. Zakas的面试 [...]]]></description>
			<content:encoded><![CDATA[<h1><img class="alignleft colorbox-1373" style="margin: 0 1em 1em 0;" src="http://yuiblog.com/assets//miraglia-20081125-141210.jpg" alt="埃里克·米拉利亚（Eric Miraglia）" width="191" height="262" /></h1>
<p>从诞生至今的大部分时间里，焦虑、抨击、蔑视和误解一直与JavaScript如影随形。JavaScript刚刚问世那几年，很多“严肃的程序员”都认为它不够严肃。</p>
<p>相比之下，.COM泡沫时期加入Web开发行列的许多文科生，则普遍觉得JavaScript深不可测、晦涩难懂。就算那些耐力和韧性俱佳者能够把JavaScript琢磨得很透，但仍然摆脱不掉竞争性浏览器提供的不同实现给他们带来的麻烦。凡此种种，最终导致粗制滥造的脚本越来越多。另一方面，拜Web前端代码的无比开放性所赐，各种坏习惯不断从一个站点被粘贴进另一个站点的源代码中。那些实现活该臭名昭著，可是，JavaScript这门语言也因此被严重拖累，背上了不该有的坏名声了。</p>
<p>2001年前后（随着Internet Explorer 6的发布），浏览器实现已经大为改进，Web开发实践也开始得到改善，呈现出了二者水乳交融的局面。作为Ajax核心的XMLHttpRequest对象正慢慢地为人们所发现，一种新的桌面风格的用户交互模式出现在浏览器中。允许JavaScript操作Web文档结构和内容的DOM API已经定型。而CSS，不管人们如何曲解或者无视它，也无论浏览器开发商怎样丧心病狂地实现它，都已经成长得足够茁壮，它的美妙和反应敏捷令它能够与新的Web交互能力配合无间。最终，JavaScript一扫颓势，变得令人惊诧、让人兴奋、使人敬畏。想想2004年第一次使用Google Maps时的情景吧，那种感觉你或许还记忆犹新。</p>
<p>Google Maps是新兴应用程序的典型代表。这类浏览器编程与后端编程并重的应用程序，不禁令人对Web浏览器窗口中那块“画布”的未来浮想联翩。（除Google Maps之外，早在2003年就基于网页邮件客户端提供类似Outlook功能的Oddpost，也是这类应用程序的一个了不起的先驱。）随着这类应用程序如雨后春笋般大量涌现，以及支持它们的浏览器的市场份额不断攀升，一个Web应用全面复兴的时代真的到来了。“Web 2.0”诞生了，Ajax也成了“IT”技术。Web似乎在一夜之间脱胎换骨，重新激发起了人们的兴趣。而JavaScript作为唯一的Web编程语言，也变得更有意思了。</p>
<p>有意思，但用好它却不简单。JavaScript以及在DOM和BOM中为其定义的API不一致的实现，给跨浏览器编程造成了比原本大得多的困难。前端设计行业还远未成熟。大学教学计划并没有（至今仍没有）做出相应的调整，以满足相关的培训要求。</p>
<p>到2004年底，JavaScript无疑已经成为最重要的编程语言。但从学术角度看，它依然不具备进入一类学科的资格。Web虽然已经翻开了新的一页，但在培养足够的知识全面、训练有素的人才方面，我们依然面临着严峻的挑战。</p>
<p>为此，很多技术作者挺身而出，撰写了不少有关JavaScript的图书。几年来，这类书虽然也出了不下几十本，但总体来说仍然不尽如人意。其中有的在推销与落伍的浏览器有关的技术，有的则在卖弄容易剪贴但却不好扩展和维护的技术。让人想不通的是，许多JavaScript图书让人觉得作者好象并不真正喜欢JavaScript，或者他们不认为读者应该喜欢它，再或者他们根本不相信读者能够完全理解JavaScript。</p>
<p>2005年，Nicholas C. Zakas这本书的第一版面世，为前端工程领域奉献了一本真正的好书。当时，我和雅虎的同事们正在创建YUI（Yahoo! User Interface Library，Yahoo!用户界面库），打算将其作为公司前端工程的基础，同时也借以推广我们这门新学问的最佳实践。每到周五，我们就聚到一间教室里讨论前端工程，也向大家讲解JavaScript、CSS以及在浏览器中创建Web应用程序的知识。我们从已出版的高级JavaScript及DOM脚本编程方面的图书中认真挑选了几本，想让新工程师通过它们掌握如何构建耐用、基于标准且容易维护的Web应用程序。Zakas的书一出版，马上就被选为我们的JavaScript内部培训课本。</p>
<p>从那时起我们就一直使用他的书。我们一致认为这本书太有用了，于是就跟Zakas商量，让他加入雅虎帮我们建立公司的前端工程社区。</p>
<p>Zakas在书中传达的理念与众不同——JavaScript既需要严肃认真地对待，但也是完全可以理解和掌握的。如果你是个程序员，这本书会告诉你JavaScript与各种编程语言的关系，以及如何运用你已经习以为常的各种编程模式。你可以理解JavaScript的继承机制及其固有的动态特性（虽不合传统，但却十分自由十分强大），可以从Zakas这位尊重和理解JavaScript的同道那里学会欣赏JavaScript这门语言。</p>
<p>如果你曾经是一名文科生，在网络泡沫时期步入了这个行业，至今也没有转行，而且想要弥补自己在JavaScript方面的不足，你会发现Zakas是一位难得的良师益友。他可以帮你实现从“会做”到“做好”的转变。他能让你认真地理解这门严肃的学问。最重要的是，他不会让你先入为主地产生对这门语言应该理解多深的想法。相反，通过他严肃、耐心、通俗易懂的讲解，你自然而然地会对这门语言有同样深刻的认识。</p>
<p>本书是经过扩展、更新和改进后的第二版，删除了上一版中与今天的职业需求无关的主题，并用我们在2005年至2008年学习的新知识更新了剩余的内容。这几年是JavaScript发展的重要时期，Zakas则始终位于最前沿孜孜不倦地学习这些新知识。他这些年一直在致力于建造新一代最流行的Web个人门户（My Yahoo!），以及开发Web上最受欢迎的站点（Yahoo!主页）的新版本。Zakas以他作为老师和作者的独特视角，筛选出由这些超复杂、超大型应用程序磨砺出的经验，并将这些经验融入到了本书的字里行间。</p>
<p>他给出的解决方案远远超出了一本好书的范畴，只有每天都与代码同呼吸共命运的人，才有可能与读者分享如此具有实用价值的知识。</p>
<p>说实话，本书新版的面世对我和各位读者而言真是个莫大的喜讯。因为它的内容比上一版更有价值、更能反映JavaScript最新的发展成果，因此也更加令人不可错过。</p>
<p style="text-align: right;">埃里克·米拉利亚（Eric Miraglia）<br />
YUI高级技术经理 哲学博士<br />
于加利福尼亚州森尼维耳市</p>
<div style="padding: 1px 10px; background: #eee;">
<p><img class="alignleft colorbox-1373" style="margin: 0 1em 1em 0;" src="http://www.therichwebexperience.com/s/images/bio/1692_Zakas_medium.jpg" alt="Nicholas C. Zakas，Yahoo!主页首席前端工程师" width="129" height="170" />Nicholas C. Zakas，Yahoo!主页首席前端工程师，个人网站<a title="Nicholas C. Zakas，Yahoo!主页首席前端工程师，个人网站www.nczonline.net。" href="http://www.nczonline.net">www.nczonline.net</a>。《<a title="http://www.amazon.com/Professional-JavaScript-Developers-Wrox-Programmer/dp/047022780X/" href="http://www.amazon.com/Professional-JavaScript-Developers-Wrox-Programmer/dp/047022780X/" target="_blank">Professional JavaScript for Web developers, 2nd Edition</a>》作者。最新专著《<a title="http://www.amazon.com/High-Performance-JavaScript-Zakas-Nicholas/dp/059680279" href="http://www.amazon.com/High-Performance-JavaScript-Zakas-Nicholas/dp/059680279" target="_blank">High Performance JavaScript</a>》（O&#8217;Reilly Media; 1 edition,March 15, 2010）。</p>
<div style="text-align: right;">
<h4>本站相关译文</h4>
<ul>
<li><a title="Nicholas C. Zakas如何面试前端工程师" href="http://www.cn-cuckoo.com/2010/01/08/how-nicholas-c-zakas-interviewing-the-front-end-engineer-1332.html" target="_blank">Nicholas C. Zakas如何面试前端工程师</a></li>
<li><a title="如何通过Nicholas C. Zakas的面试" href="http://www.cn-cuckoo.com/2010/01/09/surviving-an-interview-with-nicholas-c-zakas-1346.html" target="_blank">如何通过Nicholas C. Zakas的面试</a></li>
<li><a title="Nicholas C. Zakas谈怎样才能成为优秀的前端工程师" href="http://www.cn-cuckoo.com/2010/01/10/nicholas-c-zakas-talk-about-what-makes-a-good-front-end-engineer-1356.html" target="_blank">Nicholas C. Zakas谈怎样才能成为优秀的前端工程师</a></li>
</ul>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2010/01/17/professional-javascript-for-web-developers-2nd-edition-foreword-1373.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>《Web界面设计》读者评论</title>
		<link>http://www.cn-cuckoo.com/2009/11/09/reviews-for-designing-web-interfaces-1238.html</link>
		<comments>http://www.cn-cuckoo.com/2009/11/09/reviews-for-designing-web-interfaces-1238.html#comments</comments>
		<pubDate>Mon, 09 Nov 2009 11:28:48 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1238</guid>
		<description><![CDATA[想知道怎样在今天的Web上创造伟大的用户体验吗？UI专家Bill Scott和Theresa Neil通过本书向读者展示了超过75种基于富交互构建Web界面的模式。作者以自己在Sabre、Yahoo!和Netflix多年的工作经验为依托，把精挑细选的各种最佳实践归结为6个重要原理，深入浅出地向读者阐释了如何有效利用当前的Web技术。本书每一部分都围绕一个设计原理展开讨论，通过学习本书，读者可以掌握以下原理。 直截了当：通过页内编辑、拖放和直接选择等模式实现基于上下文的内容编辑。 简化交互：借助“轻量级”上下文工具，有效减少用户与站点的不必要交互。 足不出户：采用覆盖层、嵌入层、动态内容和页内流程模式保证访问者不离开当前页面。 提供邀请：向用户发出进入下一级交互的邀请，帮助用户发现站点的功能。 巧用变换：学习何时、何地、以何种方式使用动画、电影转场效果及其他变换手段。 即时反应：以实时搜索、实时建议、实时预览及更多模式，为用户提供丰富的交互式体验。 本书以当前最流行的Web站点为例，介绍了大量行之有效的Web界面设计模式。如果你想构建或重构站点，并希望站点以丰富的交互为特色，那本书就是你出奇制胜的宝典。 “本书提供了富因特网应用程序（RIA）设计人员和开发人员（或开发团队）作出明智选择时必须知道的一切。对于当今主流的Web设计师而言，（本书）应该人手一册。” ——Erin Malone，Tangible UX负责人 当当网读者评论 读者：Drek 来自：广州市 标题：很多新的，流行的理念 评分：4星 发表于 2009-10-11 23:53 我是个程序员，可惜在的公司太小，美工，前台，后台，设计，样式都要一手包办。其实挺郁闷的，为了在点脱离这情况，学多点广博的知识，早日飞翔，成就梦想。 而涉及到的知识都要去看，去学。 界面也要自己去处理。所以看到了本书，站在一个程序员的角度考虑，里面的设计思想其实很潮的。没有你想不到，只有你做不到的。书是针对界面设计，没有任何提及程序，代码如何实现的，也没有提及美工方面如何处理的。 可以说同一个设计相思，可以用不同东西去实现，只要你会的。 所以感觉如果作为程序员，又要考虑界面设计的朋友，本书值得一看。如果就美工和单纯是界面设计的，也给予了你不同的设计思想。 当然，世事没有完美的，程序，界面或者流行一时，2，3年间也许变化很大，为了适应自己的工作，或者适应这个时代，可以得到的资源都不要放过哦 读者：斯泰普斯 来自：上海 标题：赏心悦目 评分：5星 发表于 2009-09-11 09:16 书不错，材质也不错，很有手感。 价格比china-pub贵几块，但我还是等待当当出来才买的。 是一本值得收藏的借鉴的书。 个人推荐。 注：可结合另一本《网站优化》一同阅读。 http://product.dangdang.com/product.aspx?product_id=9345032 卓越亚马逊读者评论 读者：微微 来自： 标题：设计手段与模式 评分：5星 发表于2009-09-08 10:31:23 大凡设计师都是这样来的：先学会对付细节问题，然后尝试系统解决，最后学会总结问题与应对手段。 这本书讲述了6个界面设计原理，对应14种设计模式，以及提供了超过70种具体设计手段。 书中的实例来自flickr, yahoo, google等国外比较大型的网站，部分细节已经不复存在。刚好，你可以通过观察现在的设计，对比书中留存的旧时实例，去思考背后的设计思路。 模式和具体手法都是在不停变化的。 读完这本书，希望大家可以总结出自己网站适用的新的手段、模式。 [...]]]></description>
			<content:encoded><![CDATA[<p><a title="在互动网购买" href="http://www.china-pub.com/195836" target="_blank"><img class="alignleft colorbox-1238" style="margin: 0 1em 1em 0;border:2px solid #ddd;" src="http://img36.dangdang.com/24/2/20660136-1_o.jpg" alt="" width="360" height="474" /></a></p>
<p>想知道怎样在今天的Web上创造伟大的用户体验吗？UI专家Bill Scott和Theresa Neil通过本书向读者展示了超过75种基于富交互构建Web界面的模式。作者以自己在Sabre、Yahoo!和Netflix多年的工作经验为依托，把精挑细选的各种最佳实践归结为6个重要原理，深入浅出地向读者阐释了如何有效利用当前的Web技术。本书每一部分都围绕一个设计原理展开讨论，通过学习本书，读者可以掌握以下原理。</p>
<p>直截了当：通过页内编辑、拖放和直接选择等模式实现基于上下文的内容编辑。<br />
简化交互：借助“轻量级”上下文工具，有效减少用户与站点的不必要交互。<br />
足不出户：采用覆盖层、嵌入层、动态内容和页内流程模式保证访问者不离开当前页面。<br />
提供邀请：向用户发出进入下一级交互的邀请，帮助用户发现站点的功能。<br />
巧用变换：学习何时、何地、以何种方式使用动画、电影转场效果及其他变换手段。<br />
即时反应：以实时搜索、实时建议、实时预览及更多模式，为用户提供丰富的交互式体验。</p>
<p>本书以当前最流行的Web站点为例，介绍了大量行之有效的Web界面设计模式。如果你想构建或重构站点，并希望站点以丰富的交互为特色，那本书就是你出奇制胜的宝典。</p>
<p>“本书提供了富因特网应用程序（RIA）设计人员和开发人员（或开发团队）作出明智选择时必须知道的一切。对于当今主流的Web设计师而言，（本书）应该人手一册。”</p>
<p style="text-align: right; ">——Erin Malone，Tangible UX负责人</p>
<h1>当当网读者评论</h1>
<p><strong>读者：Drek</strong><br />
来自：广州市<br />
标题：很多新的，流行的理念<br />
评分：4星<br />
发表于 2009-10-11 23:53<br />
我是个程序员，可惜在的公司太小，美工，前台，后台，设计，样式都要一手包办。其实挺郁闷的，为了在点脱离这情况，学多点广博的知识，早日飞翔，成就梦想。<br />
而涉及到的知识都要去看，去学。<br />
界面也要自己去处理。所以看到了本书，站在一个程序员的角度考虑，里面的设计思想其实很潮的。没有你想不到，只有你做不到的。书是针对界面设计，没有任何提及程序，代码如何实现的，也没有提及美工方面如何处理的。<br />
可以说同一个设计相思，可以用不同东西去实现，只要你会的。<br />
所以感觉如果作为程序员，又要考虑界面设计的朋友，本书值得一看。如果就美工和单纯是界面设计的，也给予了你不同的设计思想。<br />
当然，世事没有完美的，程序，界面或者流行一时，2，3年间也许变化很大，为了适应自己的工作，或者适应这个时代，可以得到的资源都不要放过哦<span id="more-1238"></span></p>
<p><strong>读者：斯泰普斯</strong><br />
来自：上海<br />
标题：赏心悦目<br />
评分：5星<br />
发表于 2009-09-11 09:16<br />
书不错，材质也不错，很有手感。<br />
价格比china-pub贵几块，但我还是等待当当出来才买的。<br />
是一本值得收藏的借鉴的书。<br />
个人推荐。<br />
注：可结合另一本《网站优化》一同阅读。</p>
<p>http://product.dangdang.com/product.aspx?product_id=9345032</p>
<h1>卓越亚马逊读者评论</h1>
<p><strong>读者：微微</strong><br />
来自：<br />
标题：设计手段与模式<br />
评分：5星<br />
发表于2009-09-08 10:31:23<br />
大凡设计师都是这样来的：先学会对付细节问题，然后尝试系统解决，最后学会总结问题与应对手段。<br />
这本书讲述了6个界面设计原理，对应14种设计模式，以及提供了超过70种具体设计手段。<br />
书中的实例来自flickr, yahoo, google等国外比较大型的网站，部分细节已经不复存在。刚好，你可以通过观察现在的设计，对比书中留存的旧时实例，去思考背后的设计思路。<br />
模式和具体手法都是在不停变化的。<br />
读完这本书，希望大家可以总结出自己网站适用的新的手段、模式。</p>
<p style="text-align: right;">目录</p>
<p style="text-align: right;">序<br />
前言<br />
原理一：直截了当<br />
第1章：页内编辑<br />
1.1 单字段行内编辑<br />
1.2 多字段行内编辑<br />
1.3 覆盖层编辑<br />
1.4 表格编辑<br />
1.5 群组编辑<br />
1.6 模块配置<br />
1.7 选择编辑模式的原则<br />
第2章：利用拖放<br />
2.1 趣味瞬间<br />
2.2 拖放的用途<br />
2.3 拖放模块<br />
2.4 拖放列表<br />
2.5 拖放对象<br />
2.6 拖放操作<br />
2.7 拖放集合<br />
2.8 实现拖放的挑战<br />
第3章：直接选择<br />
3.1 切换选择<br />
3.2 集合选择<br />
3.3 对象选择<br />
3.4 混合选择<br />
原理二：简化交互<br />
第4章：上下文工具<br />
4.1 上下文交互<br />
4.2 费茨定律<br />
4.3 上下文工具<br />
4.4 实时可见工具<br />
4.5 悬停即现工具<br />
4.6 开关显示工具<br />
4.7 级联递进工具<br />
4.8 二级菜单<br />
原理三：足不出户<br />
第5章：覆盖层<br />
5.1 对话框覆盖层<br />
5.2 详情覆盖层<br />
5.3 输入覆盖层<br />
第6章：嵌入层<br />
6.1 对话框嵌入层<br />
6.2 列表嵌入层<br />
6.3 详情嵌入层<br />
6.4 标签页<br />
6.5 嵌入层与覆盖层<br />
第7章：虚拟页面<br />
7.1 虚拟滚动<br />
7.2 内置分页<br />
7.3 滚动分页：传送带<br />
7.4 虚拟摇摄<br />
7.5 伸缩式用户界面<br />
7.6 分页与滚动<br />
第8章：流程处理<br />
8.1 Google Blogger<br />
8.2 魔法原理<br />
8.3 交互式单页<br />
8.4 嵌入式部件<br />
8.5 对话框覆盖层<br />
8.6 配置程序<br />
8.7 静态单页<br />
原理四：提供邀请<br />
第9章：静态邀请<br />
9.1 引导操作邀请<br />
9.2 漫游探索邀请<br />
第10章：动态邀请<br />
10.1 悬停邀请<br />
10.2 预期功能邀请<br />
10.3 拖放邀请<br />
10.4 推论邀请<br />
10.5 更多内容邀请<br />
10.6 邀请的优点<br />
原理五：巧用变换<br />
第11章：变换模式<br />
11.1 加亮和减暗<br />
11.2 扩展与折叠<br />
11.3 自恢复式淡出<br />
11.4 动画效果<br />
11.5 聚光灯效果<br />
第12章：变换的目的<br />
12.1 增添魅力<br />
12.2 增进沟通<br />
原理六：即时反应<br />
第13章：查询模式<br />
13.1 自动完成<br />
13.2 实时建议<br />
13.3 实时搜索<br />
13.4 微调搜索<br />
第14章：反馈模式<br />
14.1 实时预览<br />
14.2 渐进展现<br />
14.3 进度指示<br />
14.4 定时刷新<br />
尾声：富交互的原理和模式<br />
索引</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/11/09/reviews-for-designing-web-interfaces-1238.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>《jQuery基础教程（第2版）》也出版了</title>
		<link>http://www.cn-cuckoo.com/2009/11/04/learning-jquery-1-3-has-published-1212.html</link>
		<comments>http://www.cn-cuckoo.com/2009/11/04/learning-jquery-1-3-has-published-1212.html#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:28:31 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1212</guid>
		<description><![CDATA[本书作为《jQuery基础教程》的升级版，涵盖了 jQuery 1.3的全部新特性，特别是新增了介绍 jQuery UI（jQuery官方用户界面插件库）的内容。本书前 6章以通俗易懂的方式介绍了 jQuery的基本概念，主要包括 jQuery的选择符、事件、效果、DOM操作、AJAX支持等。随后 3章从理论到实践，通过表格操作、构建功能型表单、实现滑移和翻转效果等实例，深入浅出地讲解了如何创造性地运用 jQuery提供的丰富而强大的 API。本书最后两章专门介绍了如何使用和编写 jQuery插件。值得一提的是，本版新增的附录 D分门别类地列出了所有 jQuery API，为高效使用 jQuery提供了方便。 本书内容 第1章将带领读者对jQuery有个大概的了解。这一章先简单介绍jQuery及其用途，然后的内容主要涉及如何下载和设置jQuery库，同时也会指导你使用jQuery编写第一个脚本。 第2章讲述如何通过jQuery中的选择符表达式及DOM遍历方法，在页面中的任何地方找到想要的元素。这一章将展示如何使用各种选择符表达式为页面中的不同元素添加样式，其中一些是通过纯CSS方式做不到的。 第3章介绍如何通过jQuery的事件处理机制，在浏览器发生事件时触发行为。同时，还会介绍如何以不唐突的方式添加事件（甚至在页面加载完成之前）。此外，这一章还将深入更高级的主题，例如事件冒泡、委托和命名空间。 第4章介绍通过jQuery实现动画的技术，从中我们能够体会到隐藏、显示和移动页面元素时那种轻松自如的感觉。 第5章讲述如何通过命令改变页面。本章讲述的是动态修改HTML文档结构及其内容的技术。 第6章讨论通过jQuery轻松地访问服务器端功能的各种方法，而且不用像过去那样刷新页面。 接下来3章（第7、8、9章）主要以实例为主，即在前几章学习的基础上，创建常见问题的稳健jQuery解决方案。 第7章“表格操作”，讲述排序、筛选和为信息添加样式并创建优美实用的数据布局。 第8章“创建功能性表单”以客户端数据验证为主题。届时，将设计一个具有适应能力的表单布局，还会实现基于客户端与服务器通信的交互式表单功能，例如自动完成。 第9章“滑移和翻转”介绍如何在显示页面元素时增强它们的美感和实用性。其中，动态显示和隐藏信息的方式既可以是自动的，也可以是用户控制的。 第10和11章的主题是jQuery库的第三方扩展，将向读者展示扩展这个库的各种方式。 第10章“使用插件”介绍Form插件和官方用户界面插件集合jQuery UI。同时，还将介绍到哪里寻找其他流行的jQuery插件并了解它们的功能。 第11章“开发插件”将讨论如何利用jQuery强大的扩展能力，从头开发自己的插件。不仅包括创建自己的实用函数，还有添加jQuery对象方法、添加自定义选择符表达式，等等。 附录A“在线资源”提供了很多与jQuery、JavaScript以及通常的Web开发有关的内容丰富的网站信息。 附录B“开发工具”推荐了一些有用的第三方程序和实用工具，用于在个人的开发环境中编辑和调试jQuery代码。 附录C“JavaScript闭包”将帮助读者理解闭包——什么是闭包，怎么利用闭包。 附录D“快速参考”提供了jQuery的简明参考，包括所有方法和选择符表达式。在实际开发中，在明确自己目标的情况下，通过这个简单明了的附录，能够方便快捷地找到正确的方法和选择符。 本书内容 第1章将带领读者对jQuery有个大概的了解。这一章先简单介绍jQuery及其用途，然后的内容主要涉及如何下载和设置jQuery库，同时也会指导你使用jQuery编写第一个脚本。 第2章讲述如何通过jQuery中的选择符表达式及DOM遍历方法，在页面中的任何地方找到想要的元素。这一章将展示如何使用各种选择符表达式为页面中的不同元素添加样式，其中一些是通过纯CSS方式做不到的。 第3章介绍如何通过jQuery的事件处理机制，在浏览器发生事件时触发行为。同时，还会介绍如何以不唐突的方式添加事件（甚至在页面加载完成之前）。此外，这一章还将深入更高级的主题，例如事件冒泡、委托和命名空间。 第4章介绍通过jQuery实现动画的技术，从中我们能够体会到隐藏、显示和移动页面元素时那种轻松自如的感觉。 第5章讲述如何通过命令改变页面。本章讲述的是动态修改HTML文档结构及其内容的技术。 第6章讨论通过jQuery轻松地访问服务器端功能的各种方法，而且不用像过去那样刷新页面。 接下来3章（第7、8、9章）主要以实例为主，即在前几章学习的基础上，创建常见问题的稳健jQuery解决方案。 第7章“表格操作”，讲述排序、筛选和为信息添加样式并创建优美实用的数据布局。 第8章“创建功能性表单”以客户端数据验证为主题。届时，将设计一个具有适应能力的表单布局，还会实现基于客户端与服务器通信的交互式表单功能，例如自动完成。 第9章“滑移和翻转”介绍如何在显示页面元素时增强它们的美感和实用性。其中，动态显示和隐藏信息的方式既可以是自动的，也可以是用户控制的。 第10和11章的主题是jQuery库的第三方扩展，将向读者展示扩展这个库的各种方式。 第10章“使用插件”介绍Form插件和官方用户界面插件集合jQuery UI。同时，还将介绍到哪里寻找其他流行的jQuery插件并了解它们的功能。 第11章“开发插件”将讨论如何利用jQuery强大的扩展能力，从头开发自己的插件。不仅包括创建自己的实用函数，还有添加jQuery对象方法、添加自定义选择符表达式，等等。 附录A“在线资源”提供了很多与jQuery、JavaScript以及通常的Web开发有关的内容丰富的网站信息。 附录B“开发工具”推荐了一些有用的第三方程序和实用工具，用于在个人的开发环境中编辑和调试jQuery代码。 附录C“JavaScript闭包”将帮助读者理解闭包——什么是闭包，怎么利用闭包。 附录D“快速参考”提供了jQuery的简明参考，包括所有方法和选择符表达式。在实际开发中，在明确自己目标的情况下，通过这个简单明了的附录，能够方便快捷地找到正确的方法和选择符。]]></description>
			<content:encoded><![CDATA[<p><a title="到互动网购买本书" href="http://www.china-pub.com/196139&amp;ref=ps" target="_blank"><img class="alignleft colorbox-1212" style="margin: 0 1em 1em 0;" src="http://images.china-pub.com/ebook195001-200000/196139/shupi.jpg" alt="" width="262" height="330" /></a></p>
<p>本书作为《jQuery基础教程》的升级版，涵盖了 jQuery 1.3的全部新特性，特别是新增了介绍 jQuery UI（jQuery官方用户界面插件库）的内容。本书前 6章以通俗易懂的方式介绍了 jQuery的基本概念，主要包括 jQuery的选择符、事件、效果、DOM操作、AJAX支持等。随后 3章从理论到实践，通过表格操作、构建功能型表单、实现滑移和翻转效果等实例，深入浅出地讲解了如何创造性地运用 jQuery提供的丰富而强大的 API。本书最后两章专门介绍了如何使用和编写 jQuery插件。值得一提的是，本版新增的附录 D分门别类地列出了所有 jQuery API，为高效使用 jQuery提供了方便。</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">本书内容</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第1章将带领读者对jQuery有个大概的了解。这一章先简单介绍jQuery及其用途，然后的内容主要涉及如何下载和设置jQuery库，同时也会指导你使用jQuery编写第一个脚本。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第2章讲述如何通过jQuery中的选择符表达式及DOM遍历方法，在页面中的任何地方找到想要的元素。这一章将展示如何使用各种选择符表达式为页面中的不同元素添加样式，其中一些是通过纯CSS方式做不到的。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第3章介绍如何通过jQuery的事件处理机制，在浏览器发生事件时触发行为。同时，还会介绍如何以不唐突的方式添加事件（甚至在页面加载完成之前）。此外，这一章还将深入更高级的主题，例如事件冒泡、委托和命名空间。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第4章介绍通过jQuery实现动画的技术，从中我们能够体会到隐藏、显示和移动页面元素时那种轻松自如的感觉。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第5章讲述如何通过命令改变页面。本章讲述的是动态修改HTML文档结构及其内容的技术。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第6章讨论通过jQuery轻松地访问服务器端功能的各种方法，而且不用像过去那样刷新页面。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">接下来3章（第7、8、9章）主要以实例为主，即在前几章学习的基础上，创建常见问题的稳健jQuery解决方案。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第7章“表格操作”，讲述排序、筛选和为信息添加样式并创建优美实用的数据布局。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第8章“创建功能性表单”以客户端数据验证为主题。届时，将设计一个具有适应能力的表单布局，还会实现基于客户端与服务器通信的交互式表单功能，例如自动完成。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第9章“滑移和翻转”介绍如何在显示页面元素时增强它们的美感和实用性。其中，动态显示和隐藏信息的方式既可以是自动的，也可以是用户控制的。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第10和11章的主题是jQuery库的第三方扩展，将向读者展示扩展这个库的各种方式。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第10章“使用插件”介绍Form插件和官方用户界面插件集合jQuery UI。同时，还将介绍到哪里寻找其他流行的jQuery插件并了解它们的功能。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">第11章“开发插件”将讨论如何利用jQuery强大的扩展能力，从头开发自己的插件。不仅包括创建自己的实用函数，还有添加jQuery对象方法、添加自定义选择符表达式，等等。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">附录A“在线资源”提供了很多与jQuery、JavaScript以及通常的Web开发有关的内容丰富的网站信息。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">附录B“开发工具”推荐了一些有用的第三方程序和实用工具，用于在个人的开发环境中编辑和调试jQuery代码。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">附录C“JavaScript闭包”将帮助读者理解闭包——什么是闭包，怎么利用闭包。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">附录D“快速参考”提供了jQuery的简明参考，包括所有方法和选择符表达式。在实际开发中，在明确自己目标的情况下，通过这个简单明了的附录，能够方便快捷地找到正确的方法和选择符。</div>
<p>本书内容</p>
<p>第1章将带领读者对jQuery有个大概的了解。这一章先简单介绍jQuery及其用途，然后的内容主要涉及如何下载和设置jQuery库，同时也会指导你使用jQuery编写第一个脚本。</p>
<p>第2章讲述如何通过jQuery中的选择符表达式及DOM遍历方法，在页面中的任何地方找到想要的元素。这一章将展示如何使用各种选择符表达式为页面中的不同元素添加样式，其中一些是通过纯CSS方式做不到的。<span id="more-1212"></span></p>
<p>第3章介绍如何通过jQuery的事件处理机制，在浏览器发生事件时触发行为。同时，还会介绍如何以不唐突的方式添加事件（甚至在页面加载完成之前）。此外，这一章还将深入更高级的主题，例如事件冒泡、委托和命名空间。</p>
<p>第4章介绍通过jQuery实现动画的技术，从中我们能够体会到隐藏、显示和移动页面元素时那种轻松自如的感觉。</p>
<p>第5章讲述如何通过命令改变页面。本章讲述的是动态修改HTML文档结构及其内容的技术。</p>
<p>第6章讨论通过jQuery轻松地访问服务器端功能的各种方法，而且不用像过去那样刷新页面。</p>
<p>接下来3章（第7、8、9章）主要以实例为主，即在前几章学习的基础上，创建常见问题的稳健jQuery解决方案。</p>
<p>第7章“表格操作”，讲述排序、筛选和为信息添加样式并创建优美实用的数据布局。</p>
<p>第8章“创建功能性表单”以客户端数据验证为主题。届时，将设计一个具有适应能力的表单布局，还会实现基于客户端与服务器通信的交互式表单功能，例如自动完成。</p>
<p>第9章“滑移和翻转”介绍如何在显示页面元素时增强它们的美感和实用性。其中，动态显示和隐藏信息的方式既可以是自动的，也可以是用户控制的。</p>
<p>第10和11章的主题是jQuery库的第三方扩展，将向读者展示扩展这个库的各种方式。</p>
<p>第10章“使用插件”介绍Form插件和官方用户界面插件集合jQuery UI。同时，还将介绍到哪里寻找其他流行的jQuery插件并了解它们的功能。</p>
<p>第11章“开发插件”将讨论如何利用jQuery强大的扩展能力，从头开发自己的插件。不仅包括创建自己的实用函数，还有添加jQuery对象方法、添加自定义选择符表达式，等等。</p>
<p>附录A“在线资源”提供了很多与jQuery、JavaScript以及通常的Web开发有关的内容丰富的网站信息。</p>
<p>附录B“开发工具”推荐了一些有用的第三方程序和实用工具，用于在个人的开发环境中编辑和调试jQuery代码。</p>
<p>附录C“JavaScript闭包”将帮助读者理解闭包——什么是闭包，怎么利用闭包。</p>
<p>附录D“快速参考”提供了jQuery的简明参考，包括所有方法和选择符表达式。在实际开发中，在明确自己目标的情况下，通过这个简单明了的附录，能够方便快捷地找到正确的方法和选择符。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/11/04/learning-jquery-1-3-has-published-1212.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>《PHP经典实例（第2版）》出版了</title>
		<link>http://www.cn-cuckoo.com/2009/11/04/php-cookbook-2n-has-published-1201.html</link>
		<comments>http://www.cn-cuckoo.com/2009/11/04/php-cookbook-2n-has-published-1201.html#comments</comments>
		<pubDate>Wed, 04 Nov 2009 12:08:13 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1201</guid>
		<description><![CDATA[本书能够为您节省宝贵的Web开发时间。有了这些针对真实问题的解决方案放在手边，大多数编程难题都会迎刃而解。 今天，用PHP开发的2000万个网站充分表明，PHP已经成为一门最流行的脚本语言。本书将PHP的特性与经典实例丛书的独特形式组合到一起，足以帮您成功地构建跨浏览器的web应用程序。在这个修订版中，您可以更加方便地找到各种编程问题的解决方案，本书中内容涵盖了： 表单处理 session管理 数据库交互 使用Web 服务 从初学者常见的问题到高级Web编程技术，这本问题指南中包含了丰富的、具有实际应用价值的实例，可以满足使用PHP生成动态Web内容的任何人的需要。书中的每个实例都细致地讨论了所提供解决方案背后的逻辑和思想，用源自PHP专家的洞察力帮你轻松地掌握这门语言。书中更新了PHP5的有关内容，并详细地解释了如何使用新增的语言特性，比如面向对象能力的巨大改进和新的PDO数据访问扩展等。书中特别增加了有关类和对象的部分，包含了以下基本内容： 处理XML 与JavaScript交互 用PHP构建Web 服务 使用SOAP和REST架构 《PHP经典实例（第二版）》中超过250个实例，为你每天都要面对的诸多问题提供了足够丰富的解决方案。而且，每个实例的讨论部分都浸透着对每个PHP开发人员极为有益的理念。 David Sklar 是Ning的一名软件开发人员。在1996年发现PHP能够满足他编写web编程需要的时候，他创建了PX（http://px.sklar.com），这是一个可以让PHP用户交换程序的场所。此外，他还是《Learning PHP5》（O’Reilly）和《Essential PHP Tools》（Apress）的作者。 Adam Trachtenberg 是eBay的一名技术讲师，也是《Upgrading to PHP5》（O’Reilly）的作者。他经常会在O’Reilly Conference和LinuxWorld上发表演讲。他还拥有科伦比亚大学商学院的MBA学位。 前言 第1章字符串 第2章数字 第3章日期和时间 第4章数组 第5章变量 第6章函数 第7章类和对象 第8章Web基础 第9章表单 第10章访问数据库 第11章Session和数据保持 第12章XML 第13章Web自动化 第14章消费Web服务 第15章建立Web服务 第16章互联网服务 第17章图形 第18章安全和加密 第19章国际化和本地化 第20章错误处理，故障排除和测试 第21章性能调谐和负载测试 第22章正则表达式 第23章文件 第24章目录 第25章命令行PHP 第26章PEAR和PECL]]></description>
			<content:encoded><![CDATA[<p><a title="到互动网购买本书" href="http://www.china-pub.com/1799619&amp;ref=ps" target="_blank"><img class="alignright colorbox-1201" style="margin: 0 0 1em 1em;border:1px solid #ddd;" src="http://img36.dangdang.com/27/35/20702016-1_o.jpg" alt="" width="242" height="330" /></a></p>
<p>本书能够为您节省宝贵的Web开发时间。有了这些针对真实问题的解决方案放在手边，大多数编程难题都会迎刃而解。<br />
今天，用PHP开发的2000万个网站充分表明，PHP已经成为一门最流行的脚本语言。本书将PHP的特性与经典实例丛书的独特形式组合到一起，足以帮您成功地构建跨浏览器的web应用程序。在这个修订版中，您可以更加方便地找到各种编程问题的解决方案，本书中内容涵盖了：</p>
<ul>
<li>表单处理</li>
<li>session管理</li>
<li>数据库交互</li>
<li>使用Web 服务</li>
</ul>
<p>从初学者常见的问题到高级Web编程技术，这本问题指南中包含了丰富的、具有实际应用价值的实例，可以满足使用PHP生成动态Web内容的任何人的需要。书中的每个实例都细致地讨论了所提供解决方案背后的逻辑和思想，用源自PHP专家的洞察力帮你轻松地掌握这门语言。书中更新了PHP5的有关内容，并详细地解释了如何使用新增的语言特性，比如面向对象能力的巨大改进和新的PDO数据访问扩展等。书中特别增加了有关类和对象的部分，包含了以下基本内容：<span id="more-1201"></span></p>
<ul>
<li>处理XML</li>
<li>与JavaScript交互</li>
<li>用PHP构建Web 服务</li>
<li>使用SOAP和REST架构</li>
</ul>
<p>《PHP经典实例（第二版）》中超过250个实例，为你每天都要面对的诸多问题提供了足够丰富的解决方案。而且，每个实例的讨论部分都浸透着对每个PHP开发人员极为有益的理念。<br />
<strong>David Sklar</strong> 是Ning的一名软件开发人员。在1996年发现PHP能够满足他编写web编程需要的时候，他创建了PX（http://px.sklar.com），这是一个可以让PHP用户交换程序的场所。此外，他还是《Learning PHP5》（O’Reilly）和《Essential PHP Tools》（Apress）的作者。</p>
<p><strong>Adam Trachtenberg</strong> 是eBay的一名技术讲师，也是《Upgrading to PHP5》（O’Reilly）的作者。他经常会在O’Reilly Conference和LinuxWorld上发表演讲。他还拥有科伦比亚大学商学院的MBA学位。</p>
<p>前言<br />
第1章字符串<br />
第2章数字<br />
第3章日期和时间<br />
第4章数组<br />
第5章变量<br />
第6章函数<br />
第7章类和对象<br />
第8章Web基础<br />
第9章表单<br />
第10章访问数据库<br />
第11章Session和数据保持<br />
第12章XML<br />
第13章Web自动化<br />
第14章消费Web服务<br />
第15章建立Web服务<br />
第16章互联网服务<br />
第17章图形<br />
第18章安全和加密<br />
第19章国际化和本地化<br />
第20章错误处理，故障排除和测试<br />
第21章性能调谐和负载测试<br />
第22章正则表达式<br />
第23章文件<br />
第24章目录<br />
第25章命令行PHP<br />
第26章PEAR和PECL</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/11/04/php-cookbook-2n-has-published-1201.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>《石油战争》中文版前言</title>
		<link>http://www.cn-cuckoo.com/2009/08/05/a-century-of-war-preface-1029.html</link>
		<comments>http://www.cn-cuckoo.com/2009/08/05/a-century-of-war-preface-1029.html#comments</comments>
		<pubDate>Tue, 04 Aug 2009 23:16:41 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=1029</guid>
		<description><![CDATA[作者：[德]威廉·恩道尔 当我坐在桌前，铺开笔墨，准备为本书中文版撰写序言的时候，既感到自豪，也感到惶惑。中国读者智慧而敏锐，要在这样一篇短序中将一个纷乱嘈杂的世界简洁明了地呈现出来，的确不是一件容易的事情。 美国是当今世界唯一的超级大国。以一种不同于美国的方式，在世界事务中发挥决定性的作用，是当今中国的历史使命。在这样的历史条件下，了解美国，看她是如何避免重蹈前人的覆辙，特别是避免犯英国同样的错误，如何借助国际货币基金组织、世界银行等国际组织，形成自己的“软实力”，如何构建被《时代》杂志创始人亨利·卢斯所称的“美国世纪”，是十分必要而紧迫的。 “美国世纪”隐藏在反对殖民主义、提倡自由贸易和企业自主的旗帜下，隐藏在“支持”民主的空洞而又诱人的口号中。在1945年之后的头几十年，美国强权的确在世界上发挥了超乎寻常的作用。但是，要记住，美国强权有两个必不可少的支撑基础——独霸世界的军事垄断地位，顺我者昌，逆我者亡；独领风骚的货币龙头地位，美元是世界硬通货，美联储便是全世界的中央银行。 1971年8月，尼克松总统决定单方面放弃所应承担的条约义务，关闭了美联储的“黄金窗口”，以防止对美国黄金储备的挤兑。美国发行货币的能力，因此被无限放大，你只需“无条件地忠于美国、信任美国”。这样的安排使得美国当局在过去的三十多年中有无限的融资能力来支持战争，滥杀无辜，解决扶摇直上的贸易赤字和财政赤字。长期以来，美国对德国、日本保持巨额的贸易逆差，近年来，这一趋势又扩展到中国这样的经济迅猛发展的新兴国家。在保持美元的世界硬通货币地位的过程中，在世界贸易领域，没有哪种商品可以与石油相提并论。 只要这个世界对美元还有“信心”，这个系统就能运转。对华盛顿和华尔街的人来说，这个系统简直就像是一台神奇的印钞机。但它的确不是。 今天的“美国世纪”正日渐式微。关键问题是：为什么会这样？接下来会发生什么？写作本书的目的就是想为读者解答这个问题。 细心的读者很快就会发现，本书不是石油政治的美国版解释。本书追溯了过去一个多世纪里关于强权政策、帝国政策和世界霸权政策的历史。 今天，在西方大学的图书馆里，你几乎找不到一本能够把英美外交政策背后的动力因素解释清楚的历史教科书，特别是能将1941年以后建立在“英美特殊关系”基础上由罗斯福和丘吉尔创立的“泛美主义”联盟下的世界解释清楚的书籍。这个联盟在20世纪30年代称被英美当局称为“英语国家联盟”，其目的是要统治整个地球。但是，联盟的今天正处在分崩离析之中，主要原因是联盟的主导者之一美国在三十多年里在外交和经济政策方面犯下了灾难性的错误。 “如果你控制了石油……” 20世纪70年代，世界市场上石油价格飙升了400％，粮食严重不足，给这个世界带来了巨大的冲击。美国国务卿亨利·基辛格——当时华盛顿和西方世界最有权势的人物——曾说过：“如果你控制了石油，你就控制住了所有国家；如果你控制了粮食，你就控制住了所有的人；如果你控制了货币，你就控制住了整个世界。” 这句鲜为人知的断言总结了美国的强权哲学，至少是那些躲在幕后决定着美国外交和国内政策的少数精英人物的强权哲学。 自19世纪60年代美国南北战争结束后，美国政治界一直信奉扩张主义信条，并把它命名为“天定命运”，即这是神的意志。以此为依据，美国的边界从大西洋扩展到太平洋，在这个过程中对土著印第安人进行灭绝和限制。到1898年后，其势力范围扩张到了菲律宾、古巴和夏威夷。作为扩张的一个组成部分，美国很早以前就从俄罗斯人手上购买了阿拉斯加。 【哈尔福德·麦金德爵士和英美石油地缘政治】 无论是亨利·基辛格和比格纽·布热津斯基等洛克菲勒家族的御用政客制定的“现实政治”政策，还是由迪克·切尼等一小撮华盛顿鹰派制定的新保守战争与征服计划，要理解美国的外交政策和权力信条，就必须追溯他们思想的源泉——英帝国的精英阶层。 贯穿本书的一条红线是围绕石油控制而展开的战争，即控制所有的石油，控制世界各地的石油，这条红线串起了许多鲜为人知的事件。首先，这是英国和美国之间的战争和冲突，或者更准确地讲，先是英国石油公司（简称“BP”，当时的英国国有公司）和伦敦罗斯柴尔德控制的皇家荷兰壳牌石油公司之间的冲突。随后在英国皇家秘密警察的支持下，英国这两家石油巨头与美国洛克菲勒所属的标准石油托拉斯之间发生了冲突。正因为如此，洛克菲勒也得到了美国政府必要的庇护和支持。 无论是在墨西哥的坦皮科，阿塞拜疆的巴库，还是美国中部的德克萨斯或加利弗尼亚，或是在波斯，或是在摩苏尔或罗马尼亚，英美双方围绕着控制石油和由石油带来的巨额财富，展开了激烈的争夺。英美之间的石油争夺战一直持续到1928年，当时，所有英美石油大佬们齐聚苏格兰的阿奇纳卡里城堡，签署了“红线协议”，该协议给予美国公司在中东油田较大的份额。自此以后，尽管经历了多年的起伏跌宕，但世界一直处在英美石油巨头的垄断和控制之下。 在过去一百年里，控制石油和天然气能源，是英美一切行动的核心。今天如果没有了石油，任何国家必然面临经济灾难。对于这一点，任何国家都没有中国认识和理解得深刻。美国控制了石油，也就控制住了潜在竞争对手发展经济的关键。 【皇家海军的战略调整】 19世纪80年代，英国皇家海军就把舰队从烧煤改成了烧油。英国海军最先认识到做此改变的战略意义所在。早在1914年第一次世界大战前夕，在年轻的海军大臣温斯顿·丘吉尔的推动下，英国海军舰队全部从烧煤换成了烧油。 丘吉尔深知，未来英帝国能够控制海洋，而且在德国海军还处在快速追赶英国海军的年代，英帝国还可以继续控制世界，这是英帝国模式的核心。英帝国是一个岛屿强国，是一个海洋强国。这是声名显赫的不列颠帝国主义者，地缘政治学的开山鼻祖哈尔福德·麦金德爵士定义的。相反，德国则被麦金德称为陆地强国。 只要设计巧妙，让欧洲大陆国家之间相互对抗，英帝国就不可战胜。在1904年的一篇著名文章《历史的地理枢纽》中，麦金德就提出了这样的观点。 麦金德在第一次世界大战后的1919年说了一句名言，对英国的外交政策以及后来美国的外交政策的形成产生了巨大影响。这句名言言简意赅： 谁统治了东欧（德国和波兰），谁就控制住了腹心地带（俄罗斯和乌克兰）；谁统治了核心地带，谁就控制住了世界岛屿（包括中国和印度在内的欧亚国家）；谁统治了世界岛屿，谁就控制住了世界。 其中，麦金德十分隐晦地道出了英国的外交政策——臭名昭著的权力平衡政策——的前提条件，即必须使东欧国家相互对抗，如波兰反对德国，德国反对俄国，俄国反对土耳其和法国，法国反对德国，永不和解。 不管怎么说，目的只有一个：阻止俄罗斯这个核心地带强国和欧洲大陆国家之间结成利益联盟。 后来，英国的外交政策转向了中国，并在18世纪和19世纪，从印度殖民地大规模向中国出口鸦片，试图消磨中国精英阶层的意志。1840年到1860年，为了控制中国，英国发动了臭名昭著的鸦片战争，强迫中国对英国商品开放港口，放弃对香港的主权，防止形成任何对英帝国皇冠上的明珠——印度殖民地的潜在威胁。 【“用民主维护世界安全”】 1914～1918年第一次世界大战期间，威尔逊总统的宣传工具鼓足了干劲向美国人民兜售这是“一场为了民主而让世界更加安全的战争”，不仅美国人民不理解，甚至大多数历史学家也不理解，他们都被掩盖在真实事件上的假象所蒙蔽。 实际上，大约从19世纪70年代后期到20世纪30年代后期，一直在进行一场世界版图权力的争夺战，人们在努力思考一个问题，谁将取代日渐衰落的英帝国成为世界的主宰。在19世纪70年代，英国已经过了其经济发展的顶峰，并陷入深深的经济萧条，再也没有从中恢复过来。 在第一次世界大战前夕，在取英国而代之的过程中，只有两个真正的竞争者——美国和德国。这两个国家都迎来了高速的产业扩张，在钢产量的吨位数方面、在科技教育的进步方面、在动员令人敬畏的经济潜能方面，都远远地超过了英国。 在JP摩根银行和洛克菲勒标准石油集团领导下，美国精英阶层开始出现。早在1914年，他们就已经做好了从伦敦手中接管帝国的准备。 但是，他们还不成熟。 为了使美国能从第二次世界大战的废墟中崛起，成为地球的主宰，还需要一场残酷的经济大萧条来建立一个机构，以推动建立一个公司化运作的私营－国有垄断组织，这个机构就是摩根－洛克菲勒豢养的纽约对外关系理事会。 尽管从来没有公开言明，但摩根和洛克菲勒的模式，就是英国的东印度公司的翻版——由女王特许的私营公司，拥有自己的军队，受到皇家海军的庇护，随心所欲，肆意抢掠，出口鸦片，挑起战争。这样一个由低三下四的国家政权支持下的私人帝国，实际上就是亨利·卢斯在1914年著名的《美国世纪》社论中所提到的。 整个战后世界和美国作为统治世界的超级大国的角色，都是经过了纽约对外关系理事会及其下属的战争与和平研究会组织的一系列秘密会议精心策划的。这个机构由洛克菲勒集团通过洛克菲勒基金提供经费。第二次世界大战结束的前两年，1943年7月，对外关系理事会邀请了当时年事已高的麦金德，对他的地缘政治平衡学说进行阐释，这对于制定“美国世纪”的规则十分必要。麦金德的观点在对外关系理事会创办的《外交》杂志上刊载，文章的题目是《圆的世界和赢取和平》。 在这篇十分重要而又鲜为人知的文章中，麦金德告诉他的美国兄弟，“……如果苏联在这场战争中以德国的征服者的面目出现，她必将是世界上最强大的陆地强国，这一结论不容置疑。此外，她还将处于战略上最强大的防御地位。核心地带（苏联）是地球上最大的天然堡垒。” 为了遏制这种可能，温斯顿·丘吉尔和英国精英分子不惜一切，说服美国成立北大西洋公约组织（NATO），挑起冷战。之后，在1946年，丘吉尔在杜鲁门总统的家乡密苏里州的富尔顿发表了著名的题为《铁幕》的演讲。 的确，只有透过超级大国的政治，运用麦金德的地缘政治观点，才能对过去一百年的历史有比较全面的认识。很遗憾，除了英美的少数精英战略家，世界上很少有人对地缘政治学说有所关注。本书试图唤醒人们重新认清英美地缘政治的如意算盘。要在地球上生存就需要这种意识。 【伊拉克警钟】 尽管遭到了联合国安理会三个常任理事国的强烈反对，布什政府还是做出了单方面决定，于2003年入侵伊拉克，给全世界敲响了警钟。除美国政府之外，各国政府都很清楚，萨达姆·侯赛因与基地组织没有联系，也与拉登没有联系。萨达姆认为拉登是具有破坏性的狂热分子。萨达姆也与大规模杀伤性武器无关。伊拉克对美国绝对不构成威胁，也不会对欧洲的北大西洋公约组织成员国构成威胁。 世界上许多国家的政府有一个共识，即布什－切尼政府之所以不遗余力地占领伊拉克，是与对石油的控制有关，控制的石油越多越好。伊拉克未经开采的石油储备估计仅次于沙特阿拉伯，占世界第二位。 众所周知，中国、俄罗斯、法国的石油公司早就与萨达姆政府签署了石油开采协议，一旦1991年美伊战争后应美国要求实施的联合国制裁解除，这些国家就可以开始开采伊拉克尚未开采的油田。 【冷战从未结束】 当今国际事务的大多数国际观察员都忽视了一个重要的事实：对于美国的实权派（包括五角大楼、美国军事工业以及哈尼伯顿、埃克森美孚、雪佛龙德士古等石油巨头），冷战并没有因为1989年11月柏林墙的倒塌而结束，也没有随着1991年苏联的解体而结束。 事实上，直到今天，冷战从来就没有结束。 为了取得核优势，华盛顿一直在竭尽全力进行军备竞赛。闹得沸沸扬扬的波兰和捷克导弹防御系统，实际上不是为了防御。这只是取得第一轮核打击优势的必要步骤。如果这一企图得逞的话，这个地球上的生活将变得黯然失色。 了解美国当局为什么不结束冷战，对于了解今天这个世界至关重要。20世纪90年代初，西方世界本有机会化剑为犁，把庞大的军事工业转为民用，把俄罗斯当作伙伴，参与俄罗斯迫在眉睫的经济重建。 但是在美国的压力之下，七国集团没有这样做。相反，在乔治·布什总统坚持下，西方强迫国际货币基金组织对俄罗斯、波兰、捷克和所有东欧国家实施自由市场的“休克疗法”。结果是，为西方跨国公司开辟了一个可供抢劫的富矿脉。俄罗斯因此陷入难以启齿的混乱。中国也因此得到了必须不惜一切代价都要避免的教训。 在1997年9/10月号《外交》杂志上，比格纽·布热津斯基先生发表了颇有影响的文章，对“后冷战结束时期”的美国外交政策进行了概述。布热津斯基是今天的总统竞选人巴拉克·奥巴马的外交政策顾问，是哈尔福德·麦金德地缘政治学说的公开支持者，他在1997年写道： 欧亚大陆集中了世界上大多数政治上自信而充满活力的国家。历史上所有问鼎世界的超级大国都源于欧亚大陆。世界人口最多的地区大国，如中国和印度，也在欧亚大陆，它们很有可能是美国优势在政治或经济方面的挑战者。美国之后，六个最大的经济和军事强国都在这里，她们都是公开或未公开的核力量。欧亚大陆占世界人口的75％，GNP的60％和能源的75％。总的来讲，欧亚大陆的潜在力量甚至超过美国。 欧亚大陆是全球最大的陆地，位于世界的核心轴上。如果有能力主导欧亚大陆，就能对世界上三个经济最发达地区中的两个——西欧和东亚发挥决定性影响。扫一眼地图就会发现，主导欧亚大陆的国家自然就是中东和非洲的主宰。欧亚大陆已经是地缘政治中最重要的一盘棋，根本不需要对欧洲和亚洲单独设局（制定政策）。欧亚大陆上的权力分配对美国的全球优势具有决定性的影响…… 仔细审视一下欧亚大陆地图，就能看出来，这个地区对中国太重要了，因为它是华盛顿控制未来欧亚大陆的着力点。美国在科索沃、波兰、保加利亚、捷克、格鲁吉亚，还可能在乌克兰建立一系列的北约基地，其目标不仅仅是对俄罗斯实施战略包围，还有就是让北约能够控制俄罗斯和欧盟之间的能源联系。 华盛顿现在的政策包含了一系列的“民主”制度的变动或政变，就像在乌克兰和格鲁吉亚发生的“颜色革命”。为削弱中国对战略性能源通道的防御潜力，华盛顿也把缅甸列为重要目标。 改变制度的一个战略目的，也是为了切断中国进入里海地区的通道，以便获得包括哈萨克斯坦在内的里海地区的石油和天然气储备资源。从前，由于这一地区多山的地理原因，伟大的丝绸之路就是穿过乌兹别克斯坦的塔什干和哈萨克斯坦的阿玛堤。对乌兹别克斯坦、吉尔吉斯斯坦和哈萨克斯坦进行地缘政治控制，就能够实现对中国和中亚之间的管道线路控制，正如实施对俄罗斯的包围将有助于控制石油管道以及她与西欧、中国、印度和中东的联系。 [...]]]></description>
			<content:encoded><![CDATA[<p><a title="http://blog.sina.com.cn/engdahl" href="http://blog.sina.com.cn/engdahl" target="_blank">作者：[德]威廉·恩道尔</a><a title="新浪连载" href="http://vip.book.sina.com.cn/book/index_58507.html"><img class="alignright colorbox-1029" style="margin-left: 1em; margin-bottom: 1em;" src="http://cache.mars.sina.com.cn/nd/vipbook//bookcover/pics/139/cover_f8c3aba7edd9ec7dcfb8b212099fa436.jpg" alt="" width="200" height="280" /></a></p>
<p>当我坐在桌前，铺开笔墨，准备为本书中文版撰写序言的时候，既感到自豪，也感到惶惑。中国读者智慧而敏锐，要在这样一篇短序中将一个纷乱嘈杂的世界简洁明了地呈现出来，的确不是一件容易的事情。</p>
<p>美国是当今世界唯一的超级大国。以一种不同于美国的方式，在世界事务中发挥决定性的作用，是当今中国的历史使命。在这样的历史条件下，了解美国，看她是如何避免重蹈前人的覆辙，特别是避免犯英国同样的错误，如何借助国际货币基金组织、世界银行等国际组织，形成自己的“软实力”，如何构建被《时代》杂志创始人亨利·卢斯所称的“美国世纪”，是十分必要而紧迫的。</p>
<p>“美国世纪”隐藏在反对殖民主义、提倡自由贸易和企业自主的旗帜下，隐藏在“支持”民主的空洞而又诱人的口号中。在1945年之后的头几十年，美国强权的确在世界上发挥了超乎寻常的作用。但是，要记住，美国强权有两个必不可少的支撑基础——独霸世界的军事垄断地位，顺我者昌，逆我者亡；独领风骚的货币龙头地位，美元是世界硬通货，美联储便是全世界的中央银行。</p>
<p>1971年8月，尼克松总统决定单方面放弃所应承担的条约义务，关闭了美联储的“黄金窗口”，以防止对美国黄金储备的挤兑。美国发行货币的能力，因此被无限放大，你只需“无条件地忠于美国、信任美国”。这样的安排使得美国当局在过去的三十多年中有无限的融资能力来支持战争，滥杀无辜，解决扶摇直上的贸易赤字和财政赤字。长期以来，美国对德国、日本保持巨额的贸易逆差，近年来，这一趋势又扩展到中国这样的经济迅猛发展的新兴国家。在保持美元的世界硬通货币地位的过程中，在世界贸易领域，没有哪种商品可以与石油相提并论。</p>
<p>只要这个世界对美元还有“信心”，这个系统就能运转。对华盛顿和华尔街的人来说，这个系统简直就像是一台神奇的印钞机。但它的确不是。</p>
<p>今天的“美国世纪”正日渐式微。关键问题是：为什么会这样？接下来会发生什么？写作本书的目的就是想为读者解答这个问题。</p>
<p>细心的读者很快就会发现，本书不是石油政治的美国版解释。本书追溯了过去一个多世纪里关于强权政策、帝国政策和世界霸权政策的历史。</p>
<p>今天，在西方大学的图书馆里，你几乎找不到一本能够把英美外交政策背后的动力因素解释清楚的历史教科书，特别是能将1941年以后建立在“英美特殊关系”基础上由罗斯福和丘吉尔创立的“泛美主义”联盟下的世界解释清楚的书籍。这个联盟在20世纪30年代称被英美当局称为“英语国家联盟”，其目的是要统治整个地球。但是，联盟的今天正处在分崩离析之中，主要原因是联盟的主导者之一美国在三十多年里在外交和经济政策方面犯下了灾难性的错误。</p>
<p>“如果你控制了石油……”<span id="more-1029"></span></p>
<p>20世纪70年代，世界市场上石油价格飙升了400％，粮食严重不足，给这个世界带来了巨大的冲击。美国国务卿亨利·基辛格——当时华盛顿和西方世界最有权势的人物——曾说过：“如果你控制了石油，你就控制住了所有国家；如果你控制了粮食，你就控制住了所有的人；如果你控制了货币，你就控制住了整个世界。”</p>
<p>这句鲜为人知的断言总结了美国的强权哲学，至少是那些躲在幕后决定着美国外交和国内政策的少数精英人物的强权哲学。</p>
<p>自19世纪60年代美国南北战争结束后，美国政治界一直信奉扩张主义信条，并把它命名为“天定命运”，即这是神的意志。以此为依据，美国的边界从大西洋扩展到太平洋，在这个过程中对土著印第安人进行灭绝和限制。到1898年后，其势力范围扩张到了菲律宾、古巴和夏威夷。作为扩张的一个组成部分，美国很早以前就从俄罗斯人手上购买了阿拉斯加。</p>
<p>【哈尔福德·麦金德爵士和英美石油地缘政治】</p>
<p>无论是亨利·基辛格和比格纽·布热津斯基等洛克菲勒家族的御用政客制定的“现实政治”政策，还是由迪克·切尼等一小撮华盛顿鹰派制定的新保守战争与征服计划，要理解美国的外交政策和权力信条，就必须追溯他们思想的源泉——英帝国的精英阶层。</p>
<p>贯穿本书的一条红线是围绕石油控制而展开的战争，即控制所有的石油，控制世界各地的石油，这条红线串起了许多鲜为人知的事件。首先，这是英国和美国之间的战争和冲突，或者更准确地讲，先是英国石油公司（简称“BP”，当时的英国国有公司）和伦敦罗斯柴尔德控制的皇家荷兰壳牌石油公司之间的冲突。随后在英国皇家秘密警察的支持下，英国这两家石油巨头与美国洛克菲勒所属的标准石油托拉斯之间发生了冲突。正因为如此，洛克菲勒也得到了美国政府必要的庇护和支持。</p>
<p>无论是在墨西哥的坦皮科，阿塞拜疆的巴库，还是美国中部的德克萨斯或加利弗尼亚，或是在波斯，或是在摩苏尔或罗马尼亚，英美双方围绕着控制石油和由石油带来的巨额财富，展开了激烈的争夺。英美之间的石油争夺战一直持续到1928年，当时，所有英美石油大佬们齐聚苏格兰的阿奇纳卡里城堡，签署了“红线协议”，该协议给予美国公司在中东油田较大的份额。自此以后，尽管经历了多年的起伏跌宕，但世界一直处在英美石油巨头的垄断和控制之下。</p>
<p>在过去一百年里，控制石油和天然气能源，是英美一切行动的核心。今天如果没有了石油，任何国家必然面临经济灾难。对于这一点，任何国家都没有中国认识和理解得深刻。美国控制了石油，也就控制住了潜在竞争对手发展经济的关键。</p>
<p>【皇家海军的战略调整】</p>
<p>19世纪80年代，英国皇家海军就把舰队从烧煤改成了烧油。英国海军最先认识到做此改变的战略意义所在。早在1914年第一次世界大战前夕，在年轻的海军大臣温斯顿·丘吉尔的推动下，英国海军舰队全部从烧煤换成了烧油。</p>
<p>丘吉尔深知，未来英帝国能够控制海洋，而且在德国海军还处在快速追赶英国海军的年代，英帝国还可以继续控制世界，这是英帝国模式的核心。英帝国是一个岛屿强国，是一个海洋强国。这是声名显赫的不列颠帝国主义者，地缘政治学的开山鼻祖哈尔福德·麦金德爵士定义的。相反，德国则被麦金德称为陆地强国。</p>
<p>只要设计巧妙，让欧洲大陆国家之间相互对抗，英帝国就不可战胜。在1904年的一篇著名文章《历史的地理枢纽》中，麦金德就提出了这样的观点。</p>
<p>麦金德在第一次世界大战后的1919年说了一句名言，对英国的外交政策以及后来美国的外交政策的形成产生了巨大影响。这句名言言简意赅：</p>
<p>谁统治了东欧（德国和波兰），谁就控制住了腹心地带（俄罗斯和乌克兰）；谁统治了核心地带，谁就控制住了世界岛屿（包括中国和印度在内的欧亚国家）；谁统治了世界岛屿，谁就控制住了世界。</p>
<p>其中，麦金德十分隐晦地道出了英国的外交政策——臭名昭著的权力平衡政策——的前提条件，即必须使东欧国家相互对抗，如波兰反对德国，德国反对俄国，俄国反对土耳其和法国，法国反对德国，永不和解。</p>
<p>不管怎么说，目的只有一个：阻止俄罗斯这个核心地带强国和欧洲大陆国家之间结成利益联盟。</p>
<p>后来，英国的外交政策转向了中国，并在18世纪和19世纪，从印度殖民地大规模向中国出口鸦片，试图消磨中国精英阶层的意志。1840年到1860年，为了控制中国，英国发动了臭名昭著的鸦片战争，强迫中国对英国商品开放港口，放弃对香港的主权，防止形成任何对英帝国皇冠上的明珠——印度殖民地的潜在威胁。</p>
<p>【“用民主维护世界安全”】</p>
<p>1914～1918年第一次世界大战期间，威尔逊总统的宣传工具鼓足了干劲向美国人民兜售这是“一场为了民主而让世界更加安全的战争”，不仅美国人民不理解，甚至大多数历史学家也不理解，他们都被掩盖在真实事件上的假象所蒙蔽。</p>
<p>实际上，大约从19世纪70年代后期到20世纪30年代后期，一直在进行一场世界版图权力的争夺战，人们在努力思考一个问题，谁将取代日渐衰落的英帝国成为世界的主宰。在19世纪70年代，英国已经过了其经济发展的顶峰，并陷入深深的经济萧条，再也没有从中恢复过来。</p>
<p>在第一次世界大战前夕，在取英国而代之的过程中，只有两个真正的竞争者——美国和德国。这两个国家都迎来了高速的产业扩张，在钢产量的吨位数方面、在科技教育的进步方面、在动员令人敬畏的经济潜能方面，都远远地超过了英国。</p>
<p>在JP摩根银行和洛克菲勒标准石油集团领导下，美国精英阶层开始出现。早在1914年，他们就已经做好了从伦敦手中接管帝国的准备。</p>
<p>但是，他们还不成熟。</p>
<p>为了使美国能从第二次世界大战的废墟中崛起，成为地球的主宰，还需要一场残酷的经济大萧条来建立一个机构，以推动建立一个公司化运作的私营－国有垄断组织，这个机构就是摩根－洛克菲勒豢养的纽约对外关系理事会。</p>
<p>尽管从来没有公开言明，但摩根和洛克菲勒的模式，就是英国的东印度公司的翻版——由女王特许的私营公司，拥有自己的军队，受到皇家海军的庇护，随心所欲，肆意抢掠，出口鸦片，挑起战争。这样一个由低三下四的国家政权支持下的私人帝国，实际上就是亨利·卢斯在1914年著名的《美国世纪》社论中所提到的。</p>
<p>整个战后世界和美国作为统治世界的超级大国的角色，都是经过了纽约对外关系理事会及其下属的战争与和平研究会组织的一系列秘密会议精心策划的。这个机构由洛克菲勒集团通过洛克菲勒基金提供经费。第二次世界大战结束的前两年，1943年7月，对外关系理事会邀请了当时年事已高的麦金德，对他的地缘政治平衡学说进行阐释，这对于制定“美国世纪”的规则十分必要。麦金德的观点在对外关系理事会创办的《外交》杂志上刊载，文章的题目是《圆的世界和赢取和平》。</p>
<p>在这篇十分重要而又鲜为人知的文章中，麦金德告诉他的美国兄弟，“……如果苏联在这场战争中以德国的征服者的面目出现，她必将是世界上最强大的陆地强国，这一结论不容置疑。此外，她还将处于战略上最强大的防御地位。核心地带（苏联）是地球上最大的天然堡垒。”</p>
<p>为了遏制这种可能，温斯顿·丘吉尔和英国精英分子不惜一切，说服美国成立北大西洋公约组织（NATO），挑起冷战。之后，在1946年，丘吉尔在杜鲁门总统的家乡密苏里州的富尔顿发表了著名的题为《铁幕》的演讲。</p>
<p>的确，只有透过超级大国的政治，运用麦金德的地缘政治观点，才能对过去一百年的历史有比较全面的认识。很遗憾，除了英美的少数精英战略家，世界上很少有人对地缘政治学说有所关注。本书试图唤醒人们重新认清英美地缘政治的如意算盘。要在地球上生存就需要这种意识。</p>
<p>【伊拉克警钟】</p>
<p>尽管遭到了联合国安理会三个常任理事国的强烈反对，布什政府还是做出了单方面决定，于2003年入侵伊拉克，给全世界敲响了警钟。除美国政府之外，各国政府都很清楚，萨达姆·侯赛因与基地组织没有联系，也与拉登没有联系。萨达姆认为拉登是具有破坏性的狂热分子。萨达姆也与大规模杀伤性武器无关。伊拉克对美国绝对不构成威胁，也不会对欧洲的北大西洋公约组织成员国构成威胁。</p>
<p>世界上许多国家的政府有一个共识，即布什－切尼政府之所以不遗余力地占领伊拉克，是与对石油的控制有关，控制的石油越多越好。伊拉克未经开采的石油储备估计仅次于沙特阿拉伯，占世界第二位。</p>
<p>众所周知，中国、俄罗斯、法国的石油公司早就与萨达姆政府签署了石油开采协议，一旦1991年美伊战争后应美国要求实施的联合国制裁解除，这些国家就可以开始开采伊拉克尚未开采的油田。</p>
<p>【冷战从未结束】</p>
<p>当今国际事务的大多数国际观察员都忽视了一个重要的事实：对于美国的实权派（包括五角大楼、美国军事工业以及哈尼伯顿、埃克森美孚、雪佛龙德士古等石油巨头），冷战并没有因为1989年11月柏林墙的倒塌而结束，也没有随着1991年苏联的解体而结束。</p>
<p>事实上，直到今天，冷战从来就没有结束。</p>
<p>为了取得核优势，华盛顿一直在竭尽全力进行军备竞赛。闹得沸沸扬扬的波兰和捷克导弹防御系统，实际上不是为了防御。这只是取得第一轮核打击优势的必要步骤。如果这一企图得逞的话，这个地球上的生活将变得黯然失色。</p>
<p>了解美国当局为什么不结束冷战，对于了解今天这个世界至关重要。20世纪90年代初，西方世界本有机会化剑为犁，把庞大的军事工业转为民用，把俄罗斯当作伙伴，参与俄罗斯迫在眉睫的经济重建。</p>
<p>但是在美国的压力之下，七国集团没有这样做。相反，在乔治·布什总统坚持下，西方强迫国际货币基金组织对俄罗斯、波兰、捷克和所有东欧国家实施自由市场的“休克疗法”。结果是，为西方跨国公司开辟了一个可供抢劫的富矿脉。俄罗斯因此陷入难以启齿的混乱。中国也因此得到了必须不惜一切代价都要避免的教训。</p>
<p>在1997年9/10月号《外交》杂志上，比格纽·布热津斯基先生发表了颇有影响的文章，对“后冷战结束时期”的美国外交政策进行了概述。布热津斯基是今天的总统竞选人巴拉克·奥巴马的外交政策顾问，是哈尔福德·麦金德地缘政治学说的公开支持者，他在1997年写道：</p>
<p>欧亚大陆集中了世界上大多数政治上自信而充满活力的国家。历史上所有问鼎世界的超级大国都源于欧亚大陆。世界人口最多的地区大国，如中国和印度，也在欧亚大陆，它们很有可能是美国优势在政治或经济方面的挑战者。美国之后，六个最大的经济和军事强国都在这里，她们都是公开或未公开的核力量。欧亚大陆占世界人口的75％，GNP的60％和能源的75％。总的来讲，欧亚大陆的潜在力量甚至超过美国。</p>
<p>欧亚大陆是全球最大的陆地，位于世界的核心轴上。如果有能力主导欧亚大陆，就能对世界上三个经济最发达地区中的两个——西欧和东亚发挥决定性影响。扫一眼地图就会发现，主导欧亚大陆的国家自然就是中东和非洲的主宰。欧亚大陆已经是地缘政治中最重要的一盘棋，根本不需要对欧洲和亚洲单独设局（制定政策）。欧亚大陆上的权力分配对美国的全球优势具有决定性的影响……</p>
<p>仔细审视一下欧亚大陆地图，就能看出来，这个地区对中国太重要了，因为它是华盛顿控制未来欧亚大陆的着力点。美国在科索沃、波兰、保加利亚、捷克、格鲁吉亚，还可能在乌克兰建立一系列的北约基地，其目标不仅仅是对俄罗斯实施战略包围，还有就是让北约能够控制俄罗斯和欧盟之间的能源联系。</p>
<p>华盛顿现在的政策包含了一系列的“民主”制度的变动或政变，就像在乌克兰和格鲁吉亚发生的“颜色革命”。为削弱中国对战略性能源通道的防御潜力，华盛顿也把缅甸列为重要目标。</p>
<p>改变制度的一个战略目的，也是为了切断中国进入里海地区的通道，以便获得包括哈萨克斯坦在内的里海地区的石油和天然气储备资源。从前，由于这一地区多山的地理原因，伟大的丝绸之路就是穿过乌兹别克斯坦的塔什干和哈萨克斯坦的阿玛堤。对乌兹别克斯坦、吉尔吉斯斯坦和哈萨克斯坦进行地缘政治控制，就能够实现对中国和中亚之间的管道线路控制，正如实施对俄罗斯的包围将有助于控制石油管道以及她与西欧、中国、印度和中东的联系。</p>
<p>布什政府拼命指责苏丹南部达尔富尔地区发生了种族灭绝行为，其目的就是要把北约军队开进这一地区，与华盛顿对当地的人权保护问题毫无关系。看一看伊拉克或阿富汗就知道，华盛顿多么关心人权啊！</p>
<p>这确实与中国日益增长的石油进口有关。正如基辛格所说，如果你控制了石油，你就控制住了所有国家或整个世界。</p>
<p>对北京的领导人来说，2003年美国对伊拉克的单方面入侵就是警钟。美国军事力量已经开始布局控制战略性石油要地和资源，这样就可以控制欧亚，特别是控制中国和俄罗斯。</p>
<p>北京的反应审慎而高明，正如中国伟大的军事战略家孙子所说的那样：避实而击虚。避免与对手硬碰硬。</p>
<p>【绕开国际货币基金组织】</p>
<p>中国在非洲的石油外交就是这方面的一个成功范例。</p>
<p>自20世纪80年代第三次世界债务危机以来，美国就利用其对国际货币基金组织和世界银行的控制，即声名狼藉的“华盛顿共识”，掠夺第三世界的原材料，以贬值的本地货币生产，出口换取美元。1990年后，这样的掠夺扩大到了前华沙条约成员国，扩大到了东亚，扩大到了当时闻名遐迩的“亚洲四虎”，就像癌细胞一样吞噬着健康的机体。</p>
<p>2001年，这个掠夺过程达到了登峰造极的地步。唯一剩下的猎场是拥有十多亿人口的伊斯兰世界。由于历史原因，这一地区恰好拥有世界上最丰富的石油储备。反恐战争，实际上是一场针对伊斯兰国家而展开的战争，是把整个伊斯兰世界纳入美国管辖的战争。世界各国很快明白了这点。在写作本序的时候，战争已遭惨败，这也是美帝国最终衰落的反映。</p>
<p>在深入考察美帝国过度扩张的情况后，中国领导人针对非洲制定的策略非常成功，该策略有效地绕开了美国在非洲曾经使用过的国际货币基金组织的政策，非洲人对这些政策深恶痛绝。中国的策略已经显现出成效，开始赢得了石油和其他原料开采的长期合同。中国没有使用国际货币基金组织的那些限制性条件，相反使用的是软贷款甚至捐款修建学校、医院、桥梁等基础设施，换取采矿权。中国邀请了40个非洲国家的元首访问北京，并派出国家主席、政府总理和不计其数的高官访问非洲。而近年来，美国总统只访问过一次非洲。</p>
<p>中国领导人还了解到，华盛顿正拼命拉拢经济上迅速发展的邻居印度，让印度成为美国动摇中国的代理人，这也是华盛顿精心谋划的另一个典型的“力量均衡”。在写作本序时，美国的这些招数已经被化解，北京和新德里正在就合作协议进行公开的讨论。</p>
<p>美国企图用俄罗斯抗衡中国的策略也没成功。第二次世界大战后，尽管有几十年苦涩的历史，但莫斯科和北京都意识到，有必要开展新形式的合作，来对抗华盛顿单边霸权的“震慑与畏惧”。上海合作组织就是这种想法的很好体现。上海合作组织是2001年由中国、俄罗斯、哈萨克斯坦、吉尔吉斯斯坦、塔吉克斯坦和乌兹别克斯坦领导人共同倡导成立的多边安全组织。</p>
<p>华盛顿和他们的日本朋友试图控制欧亚大陆的分裂和统治策略，影响越来越小。美国深陷伊拉克和阿富汗的泥潭，很像当年的越南战争，整个世界对美国越来越不信任。华盛顿的政策越来越好战，正在使自己孤立起来。哈尔福德·麦金德和布热津斯基的噩梦正变成现实：欧亚大陆的大国俄罗斯、中国、印度已经认识到他们自己的强大力量，甚至不用北约的军事力量，凭自己就能抗击华盛顿的威胁。</p>
<p>2008年年初的几周里，不仅美国利用巨大军事优势作为外交政策工具遭到失败（这体现在华盛顿鹰派对伊拉克的打击并不成功）；更为根本的是，美国强大的经济和金融力量由于房地产“次贷危机”正在蒸发。美国最大的金融机构正转而向新秩序的新兴力量——拥有大量美元余额的“主权财富基金”国——阿拉伯国家、中国、俄罗斯乞求资金，来支撑问题成堆的美国银行。这样做的代价是巨大的。纽约正在失去其世界金融超级中心的地位，已病入膏肓。前华尔街的投资银行家亨利·鲍尔森（现美国财长）也无力扭转这一颓势。在华盛顿以及纽约银行的董事会上，恐惧氛围正在蔓延。</p>
<p>美国世纪是怎样兴起和衰落的，它对我们的未来意味着什么，是本书的真正主题。我真诚地希望，这本书能够点亮一个世纪黑暗历史中的某些角落，尽管看起来，这段历史过于悲惨历时百年的石油战争。</p>
<p style="text-align: right;">威廉·恩道尔<br />
德国威斯巴登</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/08/05/a-century-of-war-preface-1029.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《Flex3实战》作者自序</title>
		<link>http://www.cn-cuckoo.com/2009/03/21/flex3-in-action-preface-532.html</link>
		<comments>http://www.cn-cuckoo.com/2009/03/21/flex3-in-action-preface-532.html#comments</comments>
		<pubDate>Sat, 21 Mar 2009 05:40:55 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>
		<category><![CDATA[译作支持]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=532</guid>
		<description><![CDATA[多年来，我一直都在找寻一种方式，一种能够带给用户更好的在线体验的方式。而且，这个找寻历程从Google革命性的Google Maps站点引起轰动之前就已经开始了。我的意思是说，Web用户在很长一段时间里，都不知道还能有什么更好的在线体验。 在把Web当作文档发布系统使用的若干年里，用户体验曾一度在强大的本地桌面应用和乏善可陈的HTML应用之间摇来摆去。但是，贫乏的用户体验并没有对HTML和Web构成冲击——Web作为平台中立的文档发布系统，事实上是非常名符其实的。开发人员和公司专注于Web是因为它支持快速应用程序开发，而用户之所以接受眼前的一切则是由于——嗨！Web应用程序就是这个样子的。真的就是这个样子吗？ 有件事曾令我百思不得其解。每次点击都会导致后台系统执行许多代码，而结果反映到UI上却只是一点点变化。而比这更糟的则是对数据库服务器频繁密集的访问。对一名技术人员来说，解决这个问题最简便的办法就是多加内存、使用虚拟机装载，或者少花钱多采购一些杂牌服务器，然后大功告成。但是，我更关心用户要为此付出什么代价。他们会对Web应用程序中常见的点击加等候习以为常；而且，对UI也没有多大的操作自由。不错，可以使用JavaScript；然而，这只是在掌握更高级技术之前的选择。从投入产出角度讲，这样做往往得不偿失。 这时候，Java Applet和Flash问世了，而且乍一看它们正是我要找寻的东西。实际上，Applet作为一个解决方案并不合适，它的体积太大，下载也很慢，况且不能跨平台使用。Flash挺有希望的，可是在设计师的工作环境中创建企业级应用程序，仍然不免有缘木求鱼的味道。 我在eBay的知识管理部门工作期间，也遇到了相同的问题。我需要找到一种方式，能够抽象出数据的复杂性，并且能让用户在可视的环境中方便地操作这些数据。 既而，Flex在2004年发布了（最初是V1，很快就是V1.5）。我当时有权作出采用它的决定，我们的团队也因使用它而感受到了完全不一样的体验。当时，我就知道Flex前途无量。因为Flex应用程序既具有桌面应用程序的强大特性，又能满足软件团队快速开发的需求。 作为Flex支持者，我把推动Flex社区发展当作自己的一项使命。我创建了CFLEX.Net（www.cflex.net），并坚信这个社区的规模越大，通过知识和代码共享产生的反推力也将越大，借此就可以促进这项技术的更快普及。毕竟，强有力的支持网络可以降低在组织中引入新技术的风险。 作为较早采用Flex的人，我在学习Flex的过程中走过不少弯路。主要原因是当时缺少相关书籍和参考资料。这种局面在Flex 2发布后得到了改观，大量的学习资源开始涌现。 我在2005年底离开eBay加入Amcom Computer Services，并在那里创建和管理一个开发团队。同学习任何新技术一样，要熟练掌握Flex也不容易。因此，最好的办法就是不断提升技能。在培训开发人员使用Flex的过程中，我发现市面上的某些图书常常言不及义，很多显而易见的问题都没有提到。 为了进一步推动Flex社区的发展，我决定写作本书，希望它能解决读者经常会遇到的问题。本书一反按功能特性布局谋篇的常见模式，改为按创建应用程序的自然进程组织内容。我只在必要时介绍必要的知识，不会过早地讨论复杂主题。同时，着意缩短的示例代码，也将有助于读者理解和上手。另外，我还发现把新事物与已知事物联系起来，可以增强学习效果。因此，在适当的情况下，我会尽可能拿其他技术的实现原理来进行类比。 希望读者通过阅读本书能够深入理解Flex，并最终加入到Flex社区中——因为届时你也能够向周围的人共享自己的知识和经验。 而现在，则是准备学习Flex的时候。随着社区逐步发展壮大，越来越多第三方厂商会发布与Flex有关的技术，Flex用户组也会在世界各地不断涌现。 随着其他厂商的先后跟进，RIA领域将迅速升温——Adobe再次证明自己走在了前列。我们正处于一个令人振奋的时代！以HTML为基础的Web应用程序始终会占有一席之地；然而，现在是该把你的技能提升到一个新高度的时候了。因为，这个产业的向前发展不会以个别人的意志为转移。 现在请坐下，系好安全带，旅行就要开始了！ TARIQ AHMED 作者简介： TARIQ AHMED是一位Web应用程序的先驱人物，先后向Bell Canada和Reuters等公司引荐了下一代Web技术。他和Jon Hirschi最早将Adobe Flex引入eBay；随后又被其他项目采用。作为Adoble Flex社区专家，Tariq始终致力于推广这一技术并通过各种项目为社区提供支持。另外，Tariq因他的Community Flex （CFLEX.Net）站点而广为人知。Tariq目前是位于美国于旧金山湾区的Amcom Technology公司的产品开发经理。 JON HIRSCHI自第一个版本开始就致力于Flex的改进。作为Adobe Flex社区专家，他一直通过自己的博客、技术杂志文章和用户组共享其具有专家视角的观点。Jon不仅向eBay引荐了Flex，而且也是eBay负责管理服务器的前沿控制中心的一员。Jon目前是位于美国于旧金山湾区的Kadoink Inc.公司的技术经理。 FAISAL ABID是一名在加拿大多伦多求学的软件工程专业的学生，他拥有自己的RIA咨询公司G-uniX Technologies。他曾为很多客户撰写了RIA方案，包括基于互联网的创业型公司Buzzspot和RazorCom。Faisal的社区业绩包括在各类杂志上发表文章，他也因自己的技术经验而小有名气。]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 170px"><a href="http://www.adobe.com/communities/experts/members/tariq_ahmed.html" target="_blank"><img class="    colorbox-532" style="margin: 0 0 10px 10px;" title="Tariq Ahmed" src="http://www.adobe.com/communities/experts/members/images/TariqAhmed.png" alt="Tariq Ahmed" width="160" height="160" /></a><p class="wp-caption-text">Tariq Ahmed</p></div>
<p>多年来，我一直都在找寻一种方式，一种能够带给用户更好的在线体验的方式。而且，这个找寻历程从Google革命性的Google Maps站点引起轰动之前就已经开始了。我的意思是说，Web用户在很长一段时间里，都不知道还能有什么更好的在线体验。</p>
<p>在把Web当作文档发布系统使用的若干年里，用户体验曾一度在强大的本地桌面应用和乏善可陈的HTML应用之间摇来摆去。但是，贫乏的用户体验并没有对HTML和Web构成冲击——Web作为平台中立的文档发布系统，事实上是非常名符其实的。开发人员和公司专注于Web是因为它支持快速应用程序开发，而用户之所以接受眼前的一切则是由于——嗨！Web应用程序就是这个样子的。真的就是这个样子吗？</p>
<p>有件事曾令我百思不得其解。每次点击都会导致后台系统执行许多代码，而结果反映到UI上却只是一点点变化。而比这更糟的则是对数据库服务器频繁密集的访问。对一名技术人员来说，解决这个问题最简便的办法就是多加内存、使用虚拟机装载，或者少花钱多采购一些杂牌服务器，然后大功告成。但是，我更关心用户要为此付出什么代价。他们会对Web应用程序中常见的点击加等候习以为常；而且，对UI也没有多大的操作自由。不错，可以使用JavaScript；然而，这只是在掌握更高级技术之前的选择。从投入产出角度讲，这样做往往得不偿失。</p>
<p>这时候，Java Applet和Flash问世了，而且乍一看它们正是我要找寻的东西。实际上，Applet作为一个解决方案并不合适，它的体积太大，下载也很慢，况且不能跨平台使用。Flash挺有希望的，可是在设计师的工作环境中创建企业级应用程序，仍然不免有缘木求鱼的味道。</p>
<p>我在eBay的知识管理部门工作期间，也遇到了相同的问题。我需要找到一种方式，能够抽象出数据的复杂性，并且能让用户在可视的环境中方便地操作这些数据。</p>
<p>既而，Flex在2004年发布了（最初是V1，很快就是V1.5）。我当时有权作出采用它的决定，我们的团队也因使用它而感受到了完全不一样的体验。当时，我就知道Flex前途无量。因为Flex应用程序既具有桌面应用程序的强大特性，又能满足软件团队快速开发的需求。</p>
<p><a href="http://www.adobe.com/cn/products/flex/" target="_blank"><img class="alignleft colorbox-532" style="margin:0 10px 10px 0" src="http://www.adobe.com/images/store/product_boxshots/150x150/box_flexbuilderstandard3_150x150.jpg" alt="" width="150" height="150" /></a>作为Flex支持者，我把推动Flex社区发展当作自己的一项使命。我创建了<a title="http://www.cflex.net/" href="http://www.cflex.net/" target="_blank">CFLEX.Net（www.cflex.net）</a>，并坚信这个社区的规模越大，通过知识和代码共享产生的反推力也将越大，借此就可以促进这项技术的更快普及。毕竟，强有力的支持网络可以降低在组织中引入新技术的风险。</p>
<p>作为较早采用Flex的人，我在学习Flex的过程中走过不少弯路。主要原因是当时缺少相关书籍和参考资料。这种局面在Flex 2发布后得到了改观，大量的学习资源开始涌现。</p>
<p>我在2005年底离开eBay加入Amcom Computer Services，并在那里创建和管理一个开发团队。同学习任何新技术一样，要熟练掌握Flex也不容易。因此，最好的办法就是不断提升技能。在培训开发人员使用Flex的过程中，我发现市面上的某些图书常常言不及义，很多显而易见的问题都没有提到。</p>
<p>为了进一步推动Flex社区的发展，我决定写作本书，希望它能解决读者经常会遇到的问题。本书一反按功能特性布局谋篇的常见模式，改为按创建应用程序的自然进程组织内容。我只在必要时介绍必要的知识，不会过早地讨论复杂主题。同时，着意缩短的示例代码，也将有助于读者理解和上手。另外，我还发现把新事物与已知事物联系起来，可以增强学习效果。因此，在适当的情况下，我会尽可能拿其他技术的实现原理来进行类比。</p>
<p>希望读者通过阅读本书能够深入理解Flex，并最终加入到Flex社区中——因为届时你也能够向周围的人共享自己的知识和经验。</p>
<p>而现在，则是准备学习Flex的时候。随着社区逐步发展壮大，越来越多第三方厂商会发布与Flex有关的技术，Flex用户组也会在世界各地不断涌现。</p>
<p>随着其他厂商的先后跟进，RIA领域将迅速升温——Adobe再次证明自己走在了前列。我们正处于一个令人振奋的时代！以HTML为基础的Web应用程序始终会占有一席之地；然而，现在是该把你的技能提升到一个新高度的时候了。因为，这个产业的向前发展不会以个别人的意志为转移。</p>
<p>现在请坐下，系好安全带，旅行就要开始了！</p>
<p>TARIQ AHMED</p>
<div style="background:#eee; border:1px dotted gray;padding:1em;">
<h3>作者简介：</h3>
<p>TARIQ AHMED是一位Web应用程序的先驱人物，先后向Bell Canada和Reuters等公司引荐了下一代Web技术。他和Jon Hirschi最早将Adobe Flex引入eBay；随后又被其他项目采用。作为Adoble Flex社区专家，Tariq始终致力于推广这一技术并通过各种项目为社区提供支持。另外，Tariq因他的Community Flex （CFLEX.Net）站点而广为人知。Tariq目前是位于美国于旧金山湾区的Amcom Technology公司的产品开发经理。</p>
<p>JON HIRSCHI自第一个版本开始就致力于Flex的改进。作为Adobe Flex社区专家，他一直通过自己的博客、技术杂志文章和用户组共享其具有专家视角的观点。Jon不仅向eBay引荐了Flex，而且也是eBay负责管理服务器的前沿控制中心的一员。Jon目前是位于美国于旧金山湾区的Kadoink Inc.公司的技术经理。</p>
<p>FAISAL ABID是一名在加拿大多伦多求学的软件工程专业的学生，他拥有自己的RIA咨询公司G-uniX Technologies。他曾为很多客户撰写了RIA方案，包括基于互联网的创业型公司Buzzspot和RazorCom。Faisal的社区业绩包括在各类杂志上发表文章，他也因自己的技术经验而小有名气。
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/03/21/flex3-in-action-preface-532.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《Flex3实战》序</title>
		<link>http://www.cn-cuckoo.com/2009/03/20/flex3-in-action-foreword-by-ryan-stewart-522.html</link>
		<comments>http://www.cn-cuckoo.com/2009/03/20/flex3-in-action-foreword-by-ryan-stewart-522.html#comments</comments>
		<pubDate>Fri, 20 Mar 2009 05:05:58 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>
		<category><![CDATA[译作支持]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=522</guid>
		<description><![CDATA[创建RIA（Rich Internet Applications，富因特网应用程序）的技术早于这个概念很久就出现了；Flash Platform是从v8开始支持RIA的。然而，Flash最初的定位只是一种发挥设计人员创意的环境，并不适合开发人员使用。 如果读者使用Flash开发应用程序，那么仍然需要跨越很大的障碍。首先，以高效快捷的方式发布囊括众多功能的富应用程序，就是一项严峻的挑战。因为，你必须亲手完成其中的绝大部分工作。 问题其实很简单：最好是有一个纯粹的开发环境，既能利用业已受到广泛支持、性能优越的Flash，又能直接满足开发人员及其系统开发的需求。为开发人员提供一个得力的工具，再配备一个能替他们完成大多数繁琐工作的框架，从而让他们把注意力集中到应用程序的逻辑上来。这个问题的解决方案就是Flex。 Adobe FlexFlex自2004年3月由Macromedia发布起，已经过了多年的发展。而且，紧随第一版之后发布的1.5版，同年就取得了更好的销售业绩。Flex最早是作为一种服务器产品开发的，广告里也把它作为在Flash Platform上创建应用程序的一种工具来宣传。 这个工具的推出开启了一个新时代，也点燃了RIA的燎原之火。随着基于Flex的RIA日益受到人们关注，事实已经证明确实存在对RIA的需求，而这种技术手段赖以发展的基础也已具备。下一步就是把RIA推向规模化。 后来，在Adobe的品牌下，这个产品以2006年6月发布的Flex 2为标志取得了巨大的飞跃。主要表现在对语言（ActionScript 3）的重新实现和对Flash Player（V9）的重要升级，极大的提升了它的性能。 而且，开发环境转换到Eclipse平台，也坚定了程序员们的信心。Flex 2关注的是基础开发与服务器端数据管理的衔接问题。我们也知道，首次以免费方式发布的用于编译Flex应用程序的SDK还处在IDE外部。最终，服务器端组件发展成了Flex Data Services，即目前的LiveCycle Data Services，该服务支持实时数据共享。 这些改变都有助于形成更明确的RIA思想，即在浏览器中提供一种桌面应用程序般的体验。而此时，RIA最需要的就是社区支持。 Tariq AhmedTariq也发现了社区支持的重要性，并走在了前列。为此，他创建了第一个专注于Flex的门户社区，即Community Flex （CFLEX.Net）。 CFLEX.Net中汇集了引导人们学习这个新框架的大量经验、技巧、博客、新闻和技术文章。Tariq是社区发展初期上述内容的主要发布者，而我就从他那里学到了很多Flex技能。 Tariq很早就认识到了数据服务及实时数据对于RIA的重要性。他构建了很多Flex应用程序，从企业内部以业务为核心的系统，到面向外部用户的各种项目。他几乎理解并使用了这个平台提供的所有特性，而这也决定了他非常适合成为一本Flex书的作者。我相信，这本由业内专家亲自捉刀撰写的书，正是读者朋友们期待已久的。 Flex 3的发布，把我们带到了这个框架和这门技术的新阶段。Adobe对Flex平台的很多组件开源，目的就是让Flex尽可能透明化，从而有利于接收来自社区的有价值的反馈（当然，也包括有价值的代码）。 随着Adobe AIR的发布，开发人员现在又可以使用Flex部署桌面和基于浏览器的应用程序了。 Adobe过去曾以其伟大的设计工具而闻名。Flex 3是允许设计人员与开发人员紧密协作的第一个工具，可以为设计出漂亮美观的Flex应用程序提供强大支持。此外，这个框架和Flex Builder中包含的大量有助于提高效率的增强，降低了新开发人员使用Flex的门槛，也有助于他们开发出容易扩展的应用程序。 无论你有什么样的开发背景，也不管你对Flex了解多少，相信本书一定会成为你的得力助手。应该说，任何人都可以从本书中学习到有用的东西。Tariq与另外两位作者Jon和Faisal，为我们奉献了一本必备的Flex佳作。别忘了，本书出自深受人们喜爱、拥有许多必知必会资源的Flex社区——CFLEX.Net的头号人物之手。 Adobe Systems, Inc. 平台推广专家 Ryan Stewart]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 114px"><a href="http://blog.digitalbackcountry.com/" target="_blank"><img class="colorbox-522"  style="margin:0 10px 10px 0" title="Ryan Stewart" src="http://tbn3.google.cn/images?q=tbn:Fk3fQaEUocLI2M:" alt="Ryan Stewart" width="104" height="104" /></a><p class="wp-caption-text">Ryan Stewart</p></div>
<p>创建RIA（Rich Internet Applications，富因特网应用程序）的技术早于这个概念很久就出现了；Flash Platform是从v8开始支持RIA的。然而，Flash最初的定位只是一种发挥设计人员创意的环境，并不适合开发人员使用。</p>
<p>如果读者使用Flash开发应用程序，那么仍然需要跨越很大的障碍。首先，以高效快捷的方式发布囊括众多功能的富应用程序，就是一项严峻的挑战。因为，你必须亲手完成其中的绝大部分工作。</p>
<p>问题其实很简单：最好是有一个纯粹的开发环境，既能利用业已受到广泛支持、性能优越的Flash，又能直接满足开发人员及其系统开发的需求。为开发人员提供一个得力的工具，再配备一个能替他们完成大多数繁琐工作的框架，从而让他们把注意力集中到应用程序的逻辑上来。这个问题的解决方案就是Flex。</p>
<p><a href="http://www.adobe.com/cn/products/flex/" target="_blank"><img class="alignright colorbox-522" style="margin: 0 0 10px 10px;" title="Adobe Flex" src="http://tbn1.google.cn/images?q=tbn:sFfdTFvnL5EYbM:" alt="Adobe Flex" width="118" height="118" /></a>Adobe FlexFlex自2004年3月由Macromedia发布起，已经过了多年的发展。而且，紧随第一版之后发布的1.5版，同年就取得了更好的销售业绩。Flex最早是作为一种服务器产品开发的，广告里也把它作为在Flash Platform上创建应用程序的一种工具来宣传。<br />
这个工具的推出开启了一个新时代，也点燃了RIA的燎原之火。随着基于Flex的RIA日益受到人们关注，事实已经证明确实存在对RIA的需求，而这种技术手段赖以发展的基础也已具备。下一步就是把RIA推向规模化。</p>
<p>后来，在Adobe的品牌下，这个产品以2006年6月发布的Flex 2为标志取得了巨大的飞跃。主要表现在对语言（ActionScript 3）的重新实现和对Flash Player（V9）的重要升级，极大的提升了它的性能。</p>
<p>而且，开发环境转换到Eclipse平台，也坚定了程序员们的信心。Flex 2关注的是基础开发与服务器端数据管理的衔接问题。我们也知道，首次以免费方式发布的用于编译Flex应用程序的SDK还处在IDE外部。最终，服务器端组件发展成了Flex Data Services，即目前的LiveCycle Data Services，该服务支持实时数据共享。</p>
<p>这些改变都有助于形成更明确的RIA思想，即在浏览器中提供一种桌面应用程序般的体验。而此时，RIA最需要的就是社区支持。</p>
<div class="wp-caption alignleft" style="width: 114px"><a href="http://www.dopejam.com/" target="_blank"><img class="  colorbox-522" style="margin: 0 10px 10px 0;" title="Tariq Ahmed" src="http://www.adobe.com/communities/experts/members/images/TariqAhmed.png" alt="Tariq Ahmed" width="104" height="104" /></a><br />
<a href="http://twitter.com/tahmed/" target="_blank">Twitter</a><p class="wp-caption-text">Tariq Ahmed</p></div>
<p>Tariq AhmedTariq也发现了社区支持的重要性，并走在了前列。为此，他创建了第一个专注于Flex的门户社区，即<a title="http://www.cflex.net/" href="http://www.cflex.net/" target="_blank">Community Flex （CFLEX.Net）</a>。</p>
<p>CFLEX.Net中汇集了引导人们学习这个新框架的大量经验、技巧、博客、新闻和技术文章。Tariq是社区发展初期上述内容的主要发布者，而我就从他那里学到了很多Flex技能。</p>
<p>Tariq很早就认识到了数据服务及实时数据对于RIA的重要性。他构建了很多Flex应用程序，从企业内部以业务为核心的系统，到面向外部用户的各种项目。他几乎理解并使用了这个平台提供的所有特性，而这也决定了他非常适合成为一本Flex书的作者。我相信，这本由业内专家亲自捉刀撰写的书，正是读者朋友们期待已久的。</p>
<p>Flex 3的发布，把我们带到了这个框架和这门技术的新阶段。Adobe对Flex平台的很多组件开源，目的就是让Flex尽可能透明化，从而有利于接收来自社区的有价值的反馈（当然，也包括有价值的代码）。</p>
<p>随着Adobe AIR的发布，开发人员现在又可以使用Flex部署桌面和基于浏览器的应用程序了。</p>
<p>Adobe过去曾以其伟大的设计工具而闻名。Flex 3是允许设计人员与开发人员紧密协作的第一个工具，可以为设计出漂亮美观的Flex应用程序提供强大支持。此外，这个框架和Flex Builder中包含的大量有助于提高效率的增强，降低了新开发人员使用Flex的门槛，也有助于他们开发出容易扩展的应用程序。</p>
<p><a href="http://www.amazon.com/dp/1933988746/" target="_blank"><img class="alignright colorbox-522" style="margin:0 0 0 10px" src="http://www.cflex.net/books/fia.jpg" alt="" width="145" height="145" /></a>无论你有什么样的开发背景，也不管你对Flex了解多少，相信本书一定会成为你的得力助手。应该说，任何人都可以从本书中学习到有用的东西。Tariq与另外两位作者Jon和Faisal，为我们奉献了一本必备的Flex佳作。别忘了，本书出自深受人们喜爱、拥有许多必知必会资源的Flex社区——CFLEX.Net的头号人物之手。</p>
<p>Adobe Systems, Inc. 平台推广专家<br />
Ryan Stewart</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/03/20/flex3-in-action-foreword-by-ryan-stewart-522.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第一批Processing图书</title>
		<link>http://www.cn-cuckoo.com/2009/03/02/the-first-books-written-about-processing-482.html</link>
		<comments>http://www.cn-cuckoo.com/2009/03/02/the-first-books-written-about-processing-482.html#comments</comments>
		<pubDate>Mon, 02 Mar 2009 01:27:38 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=482</guid>
		<description><![CDATA[Processing: A Programming Handbook for Visual Designers and Artists Casey Reas and Ben Fry (Foreword by John Maeda). Published 24 August 2007, MIT Press. 736 pages. Hardcover. Order from Amazon.com Compare prices (isbn.nu) Buy local (BookSense.com, US only) Downloads: Table of Contents and Index (PDF, 500 KB) Sample Chapters with Contents and Index (PDF, 7.6 [...]]]></description>
			<content:encoded><![CDATA[<table width="580">
<tr>
<td width="240" valign="top"><img class="colorbox-482"  src="http://www.processing.org/img/learning/reas-book.jpg" width="200" height="257" alt="Processing: A Programming Handbook for Visual Designers and Artists"/></td>
<td width="400">
<p>
			  <strong>Processing: A Programming Handbook <br />for Visual Designers and Artists</strong><br />
			  Casey Reas and Ben Fry (Foreword by John Maeda).<br />
			  Published 24 August 2007, MIT Press. 736 pages. Hardcover.<br />
			  <a href="http://www.amazon.com/Processing-Programming-Handbook-Designers-Artists/dp/0262182629/" target="_new">Order from Amazon.com</a><br />
			  <a href="http://isbn.nu/9780262182621" target="_new">Compare prices</a> (isbn.nu)<br />
			  <a href="http://www.booksense.com/product/info.jsp?isbn=0262182629" target="_new">Buy local</a> (BookSense.com, US only)</p>
<p>			  Downloads:<br />
			  <a href="http://www.processing.org/img/learning/Processing-Contents-070603.pdf">Table of Contents and Index</a> (PDF, 500 KB)<br />
			  <a href="http://www.processing.org/img/learning/Processing-Sample-070607.pdf">Sample Chapters with Contents and Index</a> (PDF, 7.6 MB)<br />
			  <a href="http://www.processing.org/img/learning/Processing-Examples-001.zip">All code examples in the book</a> (ZIP, 15 MB)<br />
			  <a href="http://www.processing.org/Processing-Errata-080828.txt">Errata (Posted 28 Aug 08)</a></p>
<p>			  This book is an introduction to the ideas of computer programming within the context of the visual arts. It targets an audience of computer-savvy individuals who are interested in creating interactive and visual work through writing software but have little or no prior experience. It is the result of six years of software development and teaching experience. The ideas presented have been continually tested in the classrooms, computer labs, and basements of universities, art and design schools, and arts institutions.</p>
<p>			  The majority of the book is divided into tutorial units discussing specific elements of software and how they relate to the arts. These units introduce the syntax and concepts of software such as variables, functions, and object-oriented programming. They cover topics such as photography and drawing in relation to software. These units feature many short, prototypical example programs with related images and explanation. More advanced professional projects from diverse domains including<br />
				animation, performance, and typography are discussed in interviews with their creators. The extension sections present concise introductions to further domains of exploration including computer vision, sound, and electronics.</p>
<p>			  Essays by Alexander R. Galloway, Golan Levin, R. Luke DuBois, Simon Greenwold, Francis Li, and Hernando Barragan</p>
<p>			  Interviews with Jared Tarbell, Martin Wattenberg, James Paterson, Erik van Blockland, Ed Burton, Josh On, Jeurg Lehni, Auriea Harvey and Michael Samyn, Mathew Cullen and Grady Hall, Bob Sabiston, Jennifer Steinkamp, Ruth Jarman and Joseph Gerhardt, Sue Costabile, Chris Csikszentmihalyi, Golan Levin and Zachary Lieberman, and Mark Hansen.</p>
<p>			  If you are an educator, you can request a <a href="http://mitpress.mit.edu/catalog/item/examrequest.asp?ttype=2&#038;tid=11251">desk/exam copy</a> from the MIT Press website. It&#8217;s also possible to request a <a href="http://mitpress.mit.edu/mitpress/textbooks/previewrequest.asp?ttype=2&#038;tid=11251">PDF preview</a>.
	    </td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="240" valign="top"><a name="fry" id="fry"><img class="colorbox-482"  src="http://www.processing.org/img/learning/fry-book.jpg" width="200" height="263" alt="Visualizing Data"/></a></td>
<td width="400"><strong>Visualizing Data </strong><br />
			Ben Fry.<br />
			Published December 2007, O&#8217;Reilly. 384 pages.<br />
		  Paperback.<br />
		 	<a href="http://www.amazon.com/Visualizing-Data-Ben-Fry/dp/0596514557/">Order from Amazon.com</a></p>
<p>			The O&#8217;Reilly website says, &quot;How you can take advantage of data that you might otherwise never use? With the help of a powerful new programming environment [Processing], this book helps you represent data accurately on the Web and elsewhere, complete with user interaction, animation, and more. You&#8217;ll learn basic visualization principles, how to choose the right kind of display for your purposes, and how to provide interactive features to design entire interfaces around large, complex data sets.&quot; </p>
<p>			Martin Wattenberg from the IBM Watson Research Center says, &quot;This wonderfully detailed guide, by one of the masters of modern data graphics, tells you everything you need to know to code your own visualizations from scratch. Perhaps most valuable are the many examples where Fry demonstrates how to refine a bare-bones concept into a beautiful, effective finished piece. Read this book, and you&#8217;ll never again be dependent on someone else&#8217;s view of your data.&quot;
	  </p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="240" valign="top"><a name="ira" id="ira"><img class="colorbox-482"  src="http://www.processing.org/img/learning/greenberg-book.jpg" width="200" height="248" 				alt="Processing: Creative Coding and Computational Art (Foundation)"/></a></td>
<td><strong>Processing: Creative Coding and Computational Art (Foundation)</strong><br />
Ira Greenberg (Foreword by Keith Peters).<br />
Published 28 May 2007, Friends of Ed. 840 pages. Hardcover.<br />
<a href="http://www.amazon.com/Processing-Creative-Coding-Computational-Foundation/dp/159059617X/">Order from Amazon.com</a></p>
<p>Sample chapters available from <a href="http://www.friendsofed.com/book.html?isbn=159059617X" target="_new">Friends of Ed</a>.</p>
<p>&quot;This book is written especially for artists, designers, and other creative professionals and students exploring code art, graphics programming, and computational aesthetics. The book provides a solid and comprehensive foundation in programming, including object-oriented principles, and introduces you to the easy-to-grasp Processing language, so no previous coding experience is necessary. The book then goes through using Processing to code lines, curves, shapes, and motion, continuing to the point where you&#8217;ll have mastered Processing and can really start to unleash your creativity with realistic physics, interactivity, and 3D! In the final chapter, you&#8217;ll even learn how to extend your Processing skills by working directly with the powerful Java programming language, the language Processing itself is built with.&quot; (Quote from the Friends of Ed website)</p>
</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="240" valign="top"><a name="shiffman" id="shiffman"><img class="colorbox-482"  src="http://www.processing.org/img/learning/shiffman-book.jpg" width="200" height="298"  alt="Learning Processing"/></a></td>
<td width="400"><strong>Learning Processing: A Beginner&#8217;s Guide to Programming Images, Animation, and Interaction</strong><br />
			Daniel Shiffman.<br />
			Published August 2008, Morgan Kaufmann. 450 pages.<br />
		    Paperback.<br />
		 	<a href="http://www.amazon.com/Learning-Processing-Beginners-Programming-Interaction/dp/0123736021/">Order from Amazon.com</a></p>
<p>		 	Visit the <a href="http://www.learningprocessing.com">Learn Processing website</a>.</p>
<p>			Dan Shiffman says: &quot;This book tells a story. It&#8217;s a story of liberation, of taking the first steps towards understanding the foundations of computing, writing your own code, and creating your own media without the bonds of existing software tools. This story is not reserved for computer scientists and engineers. This story is for you.&quot;</p>
<p>			The publisher says: &quot;This book teaches you the basic building blocks of programming needed to create cutting-edge graphics applications including interactive art, live video processing, and data visualization. A unique lab-style manual, the book gives graphic and web designers, artists, and illustrators of all stripes a jumpstart on working with the Processing programming environment by providing instruction on the basic principles of the language, followed by careful explanations of select advanced techniques.&quot;
	  </p>
</td>
</tr>
</tr>
<tr>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="240" valign="top"><a name="igoe" id="igoe"><img class="colorbox-482"  src="http://www.processing.org/img/learning/igoe-book.jpg" width="200" height="248"  alt="Making Things Talk: Practical Methods for Connecting Physical Objects"/></a></td>
<td><strong>Making Things Talk: Practical Methods for Connecting Physical Objects </strong><br />
Tom Igoe.<br />
Published 28 September 2007, O&#8217;Reilly. 428 pages. Paperback.<br />
<a href="http://www.amazon.com/Making-Things-Talk-Practical-Connecting/dp/0596510519/">Order from Amazon.com</a><br />
<a href="http://www.oreilly.com/catalog/9780596510510/">Order from O&#8217;Reilly</a></p>
<p>This book focuses on networking electronic devices with <a href="http://arduino.cc">Arduino</a> and <a href="http://wiring.org.co">Wiring</a>, but includes many examples that use Processing for graphics. The O&#8217;Reilly website says,<br />
&quot;Through a series of simple projects, this book teaches you how to get your creations to communicate with one another by forming networks of smart devices that carry on conversations with you and your environment. Whether you need to plug some sensors in your home to the Internet or create a device that can interact wirelessly with other creations, Making Things Talk explains exactly what you need&#8230; With a little electronic know-how, a couple of inexpensive microcontroller kits and some network modules to make them communicate using Ethernet, ZigBee, and Bluetooth, you can get started on these projects right away&quot;</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="240" valign="top"><img class="colorbox-482"  src="http://www.processing.org/img/learning/bnn-book.jpg" width="200" height="281" alt="Built with Processing"/></td>
<td width="400">
			<strong>Built with Processing</strong><br />
			Published 28 March 2007, BNN. 232 pages. Softcover.</p>
<p>			Note from Casey: &#8220;I received a copy of this book from the authors on a recent trip to Japan. It&#8217;s a beautifully produced full-color book<br />
				with sections introducing Processing, featuring work created with Processing (many are from the Exhibition section of the Processing website),<br />
				and introducing programming through progressively complicated examples. The majority of the book is an introduction to programming. There are<br />
				many good examples and the code is color-coded like in the Processing Environment. This book is less comprehensive than the Greenberg and<br />
				Reas/Fry books, but it appears to be a good, brief introduction. The book is entirely in Japanese.&#8221;</p>
<p>			There&#8217;s additional information on the <a href="http://www.bnn.co.jp/books/2007/03/built_with_processing.html">publisher&#8217;s website</a>.</td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="240">
<p>&nbsp;</p>
</td>
<td width="400">
			Processing is also discussed through examples and projects in the following books:</p>
<p>			<a href="http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X">Physical Computing:<br />
				Sensing and Controlling the Physical World with Computers</a>.<br />
				By Dan O&#8217;Sullivan and Tom Igoe. Examples using Processing for RS-232 communication and<br />
				computer vision.</p>
<p>			<a href="http://www.amazon.com/Aesthetic-Computing-Leonardo-Books-Fishwick/dp/026206250X">Aesthetic Computing.</a><br />
				Edited by Paul Fishwick. Casey Reas and Ben Fry contributed a chapter entitled<br />
			&#8220;Processing Code: Programming within the Context of Visual Art and Design.&#8221;</p>
<p>			<a href="http://www.amazon.com/Hacking-Roomba-ExtremeTech-Tod-Kurt/dp/0470072717/">Hacking Roomba: ExtremeTech</a>. By Tod E. Kurt. Processing is introduced and used to design an application to control a Roomba (a robot vacuum cleaner). </p>
<p>			<a href="http://www.amazon.com/Analog-Digital-Out-Brendan-Interaction/dp/0321429168">Analog In, Digital Out</a>.<br />
				By Brendan Dawes. Numerous projects created with Processing are illustrated and discussed.	    </td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/03/02/the-first-books-written-about-processing-482.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flex 3 in Action，一天6个全五星</title>
		<link>http://www.cn-cuckoo.com/2009/02/10/flex-3-in-action-435.html</link>
		<comments>http://www.cn-cuckoo.com/2009/02/10/flex-3-in-action-435.html#comments</comments>
		<pubDate>Tue, 10 Feb 2009 14:47:04 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=435</guid>
		<description><![CDATA[Flex 3 in Action 终于铺货了。今天看看Amazon上的页面，头一天——2月9日（我们的2月10日）一天之内就有6位读者评论，而且都给出了5星! 这本书2008年3月就放出了MEAP（Manning Early Access Program），当时是25章。2009年1月19日电子版发布，但删去了最后有关AIR的一章，有点遗憾。2009年1月底，纸版出版。 翻译这本书的合同2008年12月份初就签了。当时，为了尽早出版，傅老师跟我商量先开始翻译MEAP版，等正式版出来（当时Manning网站给出的时间是2008年12月28日）再对照修正；我也认为可以试一试。于是，就翻译了第1章。翻译过程中，发现了一些问题和错误。问题主要是MEAP版是未经编辑的草稿，文字表达上缺乏逻辑性，而且上下文明显不够连贯，看个别段落简直就是散文。最后翻译成中文给人的感觉往往是东一句西一句，读着容易让人摸不着头脑。因此，我不得不加上自己的想象和理解，才能使全文稍为通顺一些。加上我在网上读了一些读者对MEAP版的评价，又结合本书官方论坛（沙箱）的勘误，发现书中还存在不少typo和错误。这时候，我感觉将来的正式版一定会对MEAP版进行较大幅度的修正，这样看似提前翻译可能得不偿失。因为将来要处理的问题实在太多，花在对照修改上的时间恐怕会远远超过重新翻译。 结果证明，确实如此。2009年1月20日，我联系傅老师，请他跟老外交涉要电子版。傅老师说老外效率也很低，春节（1月26日）前不敢保证拿到。下午，傅老师就告诉我已经拿到正式版了，于是通过MSN传给了我。看来，老外效率也提高了，也许是因为这本书的正式出版日期一拖再拖的缘故吧，老外也着急了。拿到正式版后，我将已经翻译完的第1章粗略地对照了一遍。果然，正式版较MEAP版改进很多，也严谨了很多。节与节之间基本上都增加一些承上启下的句子（明显有编辑加工的痕迹）。一些说得比较过份的话也得到了“褪火”处理，至少语气上温和了不少；有的地方甚至还合并了段落。 由于正式版所做改进太多，因此我不得不重新从头开始翻译。目前，已经翻译到第6章了。从翻译正式版来看，感觉还是很好的。作者把Flex讲解得很透彻，兼顾了初、中级读者以及具有各种编程背景读者的需要。特别是书中短小精悍的小例子，让人看起来没有压力；因为代码少，所以很容易看清楚、看明白，也容易理解逻辑关系。作者不愧为一位Flex先驱、Flex社区的创始人。 这是我第一次翻译Manning的书，而且第一次就翻译in Action系列。记得在没开始翻译前，还有点顾虑，担心讲得太深、太细，自己那点技术积累不够用，还得现翻其他参考书充电。现在，翻译了100多页后，这种顾虑基本上没有了。倒不是因为这本书讲得不细——事实上，是太细了，细得让人感觉有点像是在翻译Dojo：The Definitive Guide；没错，如果把书名改成Flex 3：The Definitive Guide应该不会有人觉得突兀。就目前翻译的感觉而言，作者不会放过每一个知识点，而且代码、表格、屏幕截图比例运用得都比较得当。翻翻后面的目录就会发现，要想从本书中找出没有覆盖到的Flex特性，恐怕不是件容易的事。 就目前的翻译体会而言，这本书讲得不深。而且，语言上完全没有问题，作者表达很清晰——长久的等待确实没有让读者失望（相对MEAP版的表达而言）。但是，唯一一点“美中不足”的，就是这本书的文字多了一点，代码少了一点（主要是示例都很短）。虽然将来中文版的读者看起来会比较轻松，并有望体会到作者面面俱到的良苦用心，但从译者角度说，要转换那么大的信息量，而且必须一个字一个字地敲到Word里，的确是对毅力的一种考验——相比之下，我更情愿复制代码，呵呵。 好在，这种考验已经不是第一次了。从最早的《JavaScript DOM高级程序设计》到《Google GWT应用程序开发》，再到《Advanced Ajax》（作者的语言表达很成问题）和《Dojo:The Definitive Guide》。每一次不都顺利地挺过来了吗？俗话不是说嘛：苦不苦，想想红军长征两万五。呵呵，我自己做了一个计划，每天多少页，一定保证完成。如果这一次也一切顺利的话，预计在3月底前可以翻译并审校完。希望到时候图灵也能够特事特办，尽快安排此书的编辑，争取上半年让它付梓。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/dp/1933988746"><img class="alignleft colorbox-435" title="Flex 3 in Action" src="http://ecx.images-amazon.com/images/I/51KwlF3AYCL._SL500_AA240_.jpg" alt="" width="240" height="240" /></a><em><a title="Flex 3 in Action" href="http://www.amazon.com/dp/1933988746" target="_blank">Flex 3 in Action</a></em> 终于铺货了。今天看看Amazon上的页面，头一天——2月9日（我们的2月10日）一天之内就有6位读者评论，而且都给出了5星!</p>
<p>这本书2008年3月就放出了MEAP（Manning Early Access Program），当时是25章。2009年1月19日电子版发布，但删去了最后有关AIR的一章，有点遗憾。2009年1月底，纸版出版。</p>
<p>翻译这本书的合同2008年12月份初就签了。当时，为了尽早出版，傅老师跟我商量先开始翻译MEAP版，等正式版出来（当时Manning网站给出的时间是2008年12月28日）再对照修正；我也认为可以试一试。于是，就翻译了第1章。翻译过程中，发现了一些问题和错误。问题主要是MEAP版是未经编辑的草稿，文字表达上缺乏逻辑性，而且上下文明显不够连贯，看个别段落简直就是散文。最后翻译成中文给人的感觉往往是东一句西一句，读着容易让人摸不着头脑。因此，我不得不加上自己的想象和理解，才能使全文稍为通顺一些。加上我在网上读了一些读者对MEAP版的评价，又结合本书官方论坛（沙箱）的勘误，发现书中还存在不少typo和错误。这时候，我感觉将来的正式版一定会对MEAP版进行较大幅度的修正，这样看似提前翻译可能得不偿失。因为将来要处理的问题实在太多，花在对照修改上的时间恐怕会远远超过重新翻译。</p>
<p>结果证明，确实如此。2009年1月20日，我联系傅老师，请他跟老外交涉要电子版。傅老师说老外效率也很低，春节（1月26日）前不敢保证拿到。下午，傅老师就告诉我已经拿到正式版了，于是通过MSN传给了我。看来，老外效率也提高了，也许是因为这本书的正式出版日期一拖再拖的缘故吧，老外也着急了。拿到正式版后，我将已经翻译完的第1章粗略地对照了一遍。果然，正式版较MEAP版改进很多，也严谨了很多。节与节之间基本上都增加一些承上启下的句子（明显有编辑加工的痕迹）。一些说得比较过份的话也得到了“褪火”处理，至少语气上温和了不少；有的地方甚至还合并了段落。</p>
<p>由于正式版所做改进太多，因此我不得不重新从头开始翻译。目前，已经翻译到第6章了。从翻译正式版来看，感觉还是很好的。作者把Flex讲解得很透彻，兼顾了初、中级读者以及具有各种编程背景读者的需要。特别是书中短小精悍的小例子，让人看起来没有压力；因为代码少，所以很容易看清楚、看明白，也容易理解逻辑关系。作者不愧为一位Flex先驱、Flex社区的创始人。</p>
<p>这是我第一次翻译Manning的书，而且第一次就翻译in Action系列。记得在没开始翻译前，还有点顾虑，担心讲得太深、太细，自己那点技术积累不够用，还得现翻其他参考书充电。现在，翻译了100多页后，这种顾虑基本上没有了。倒不是因为这本书讲得不细——事实上，是太细了，细得让人感觉有点像是在翻译<em>Dojo：The Definitive Guide</em>；没错，如果把书名改成Flex 3：The Definitive Guide应该不会有人觉得突兀。就目前翻译的感觉而言，作者不会放过每一个知识点，而且代码、表格、屏幕截图比例运用得都比较得当。翻翻后面的目录就会发现，要想从本书中找出没有覆盖到的Flex特性，恐怕不是件容易的事。</p>
<p>就目前的翻译体会而言，这本书讲得不深。而且，语言上完全没有问题，作者表达很清晰——长久的等待确实没有让读者失望（相对MEAP版的表达而言）。但是，唯一一点“美中不足”的，就是这本书的文字多了一点，代码少了一点（主要是示例都很短）。虽然将来中文版的读者看起来会比较轻松，并有望体会到作者面面俱到的良苦用心，但从译者角度说，要转换那么大的信息量，而且必须一个字一个字地敲到Word里，的确是对毅力的一种考验——相比之下，我更情愿复制代码，呵呵。</p>
<p>好在，这种考验已经不是第一次了。从最早的《JavaScript DOM高级程序设计》到《Google GWT应用程序开发》，再到《Advanced Ajax》（作者的语言表达很成问题）和《Dojo:The Definitive Guide》。每一次不都顺利地挺过来了吗？俗话不是说嘛：苦不苦，想想红军长征两万五。呵呵，我自己做了一个计划，每天多少页，一定保证完成。如果这一次也一切顺利的话，预计在3月底前可以翻译并审校完。希望到时候图灵也能够特事特办，尽快安排此书的编辑，争取上半年让它付梓。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/02/10/flex-3-in-action-435.html/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>值得反复研读的好书——JavaScript设计模式</title>
		<link>http://www.cn-cuckoo.com/2009/02/02/pro-javascript-design-patterns-423.html</link>
		<comments>http://www.cn-cuckoo.com/2009/02/02/pro-javascript-design-patterns-423.html#comments</comments>
		<pubDate>Mon, 02 Feb 2009 02:03:32 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[Design patterns]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=423</guid>
		<description><![CDATA[本书共有两部分。第一部分给出了实现具体设计模式所需要的面向对象特性的基础知识，主要包括接口、封装和信息隐藏、继承、单体模式等内容。第二部分则专注于各种具体的设计模式及其在JavaScript语言中的应用，主要介绍了工厂模式、桥接模式、组合模式、门面模式等几种常见的模式。为了让每一章中的示例都尽可能地贴近实际应用，书中同时列举了一些JavaScript 程序员最常见的任务，然后运用设计模式使其解决方案变得更模块化、更高效并且更易维护，其中较为理论化的例子则用于阐明某些要点。]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 448px"><a href="http://www.china-pub.com/508886"><img class="colorbox-423"  title="JavaScript设计模式" src="http://images.china-pub.com/ebook505001-510000/508886/shupi.jpg" alt="JavaScript设计模式" width="438" height="550" /></a><p class="wp-caption-text">JavaScript设计模式</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/02/02/pro-javascript-design-patterns-423.html/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>部分译作回顾</title>
		<link>http://www.cn-cuckoo.com/2009/01/24/parts-of-books-review-371.html</link>
		<comments>http://www.cn-cuckoo.com/2009/01/24/parts-of-books-review-371.html#comments</comments>
		<pubDate>Sat, 24 Jan 2009 03:51:25 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/?p=371</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div id="attachment_370" class="wp-caption alignnone" style="width: 610px"><img class="size-full wp-image-370 colorbox-371" title="译作回顾" src="http://www.cn-cuckoo.com/wordpress/wp-content/uploads/2009/01/2009_books_review.jpg" alt="译作回顾" width="600" height="450" /><p class="wp-caption-text">译作回顾</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2009/01/24/parts-of-books-review-371.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Learning jQuery要出新版了</title>
		<link>http://www.cn-cuckoo.com/2008/12/31/learning-jquery-13-279.html</link>
		<comments>http://www.cn-cuckoo.com/2008/12/31/learning-jquery-13-279.html#comments</comments>
		<pubDate>Wed, 31 Dec 2008 03:06:02 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/12/31/learning-jquery-13-279.html</guid>
		<description><![CDATA[前几天刚看到jQuery1.3.1b征求测试的消息，今天就收到Packt的NewsLetter，预告Learning jQuery的新版Learning jQuery 1.3将在2009年5月出版。作者仍然是Karl Swedberg和 Jonathan Chaffer。 顺便提一下，Learning jQuery作为“全球第一部jQuery著作”（责任编辑杨爽同学的手笔——没错，是全球第一本），其中文版《jQuery基础教程》（人民邮件出版社200807，图灵程序设计丛书），得到了广大读者的认可。第一次印刷的4000千册已经告罄，现在销售的应该是第二次印刷的了。因此，该书也荣登“图灵2008年度十大总排榜”（“十大总”啥意思？回头得问问刘江老师）。 《jQuery基础教程》这本书卖得不错，倒不是因为本人的翻译有多好，主要还是出版社有眼光，引进了全球第一本jQuery专著（第二本jQuery in Action也是图灵引进的，估计2009年第一季度能上市）。而且，根据本人的观察，jQuery在国内应该是最受欢迎的JavaScript框架，无论是在Web专业开发人员，还是在普通的Web开发爱好者中，jQuery的口碑都是最棒的！（插播一条广告：jQuery以简单易用著称，不信请试试。）另外，2008年9月微软和诺基亚都宣布将在自己的平台中集成jQuery，无疑又为更多人转向学习jQuery起到了巨大的推动作用。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/learning-jquery-1.3/book" title="http://www.packtpub.com/learning-jquery-1.3/book" target="_blank"><img class="colorbox-279"  src="http://images.packtpub.com/images/full/1847196705.jpg" title="Learning jQuery 1.3" alt="Learning jQuery 1.3" align="left" height="246" hspace="10" vspace="10" width="200" /></a>前几天刚看到<a href="http://www.cn-cuckoo.com/2008/12/23/help-test-jquery-13-beta-1-268.html" title="http://www.cn-cuckoo.com/2008/12/23/help-test-jquery-13-beta-1-268.html" target="_blank">jQuery1.3.1b征求测试</a>的消息，今天就收到Packt的NewsLetter，预告<em><a href="http://www.packtpub.com/jQuery/book" title="http://www.packtpub.com/jQuery/book" target="_blank">Learning jQuery</a></em>的新版<em><a href="http://www.packtpub.com/learning-jquery-1.3/book" title="http://www.packtpub.com/learning-jquery-1.3/book" target="_blank">Learning jQuery 1.3</a></em>将在2009年5月出版。作者仍然是<a href="http://www.packtpub.com/author_view_profile/id/133" target="_blank" title="Karl Swedberg">Karl Swedberg</a>和                   <a href="http://www.packtpub.com/author_view_profile/id/134" target="_blank" title="Jonathan Chaffer">Jonathan Chaffer</a>。</p>
<p>顺便提一下，<em>Learning jQuery</em>作为“全球第一部jQuery著作”（责任编辑杨爽同学的手笔——没错，是全球第一本），其中文版《<a href="http://www.china-pub.com/40825" title="http://www.china-pub.com/40825" target="_blank">jQuery基础教程</a>》（人民邮件出版社200807，图灵程序设计丛书），得到了广大读者的认可。第一次印刷的4000千册已经告罄，现在销售的应该是第二次印刷的了。因此，该书也荣登“<a href="http://blog.csdn.net/turingbook/archive/2008/12/18/3544228.aspx" title="http://blog.csdn.net/turingbook/archive/2008/12/18/3544228.aspx" target="_blank">图灵2008年度十大总排榜</a>”（“十大总”啥意思？回头得问问刘江老师）。</p>
<p>《<a href="http://www.china-pub.com/40825" title="http://www.china-pub.com/40825" target="_blank">jQuery基础教程</a>》这本书卖得不错，倒不是因为本人的翻译有多好，主要还是出版社有眼光，引进了全球第一本jQuery专著（第二本jQuery in Action也是图灵引进的，估计2009年第一季度能上市）。而且，根据本人的观察，jQuery在国内应该是最受欢迎的JavaScript框架，无论是在Web专业开发人员，还是在普通的Web开发爱好者中，jQuery的口碑都是最棒的！（插播一条广告：jQuery以简单易用著称，不信请试试。）另外，2008年9月微软和诺基亚都宣布<a href="http://www.sitepoint.com/blogs/2008/09/29/microsoft-nokia-adopt-jquery/" title="http://www.sitepoint.com/blogs/2008/09/29/microsoft-nokia-adopt-jquery/" target="_blank">将在自己的平台中集成jQuery</a>，无疑又为更多人转向学习jQuery起到了巨大的推动作用。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/12/31/learning-jquery-13-279.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>《Dojo权威指南》译者序</title>
		<link>http://www.cn-cuckoo.com/2008/12/19/translators-words-for-dojo-tdg-266.html</link>
		<comments>http://www.cn-cuckoo.com/2008/12/19/translators-words-for-dojo-tdg-266.html#comments</comments>
		<pubDate>Fri, 19 Dec 2008 00:30:36 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/12/19/translators-words-for-dojo-tdg-266.html</guid>
		<description><![CDATA[Dojo: The Definitive Guide Powering Up Ajax Development Techniques 已经在本月16日交稿了。期待早日出版啊。 平心而论，与现有的JavaScript库或框架相比，Dojo的确很值得O&#8217;Reilly为它自己出一本权威指南。 从译者的Web开发经验来看，在使用JavaScript语言创建跨平台、跨浏览器的RWA（Rich Web Applications，富Web应用程序）项目时，选择Dojo作为前端开发框架基本上可以做到别无所求。因为，对于通常的JavaScript库和框架所能解决的问题——DOM操作、事件处理、样式修改、外部通信的标准化，Dojo的Base和Core同样也给出了全套解决方案。 当然，就Dojo工具箱的库和框架部分而言，数据抽象和模拟类与继承是另外两个主要的亮点。 除了对开发RIA项目的底层逻辑提供强大支持外， Dijit专门针对设计人员给出大量即装即用的“部件”。部件就是HTML、JavaScript、CSS和其他相关资源（如图片）的集合，也是一个Function对象。基于Dojo部件的用户界面还支持换肤功能。 Util是Dojo独有的，其中包含构建工具、单元测试框架和压缩工具。为优化、测试产品和提高RIA项目的性能提供了有效支持。 在翻译本书的过程中，为确保技术细节的准确，译者参考了Mastering Dojo（The Pragmatic Bookshelf）一书。而且，全书的术语基本上做到了前后统一。需要说明的是，书中将dojo命名空间之下的所有函数（function）统一译为方法。虽然翻译为函数也未尝不可，但译者在此有两点考虑：首先，从面向对象的角度讲，通过对象访问的函数应该叫方法；其次，Dojo跟其他的库和框架一样，都非常强调命名空间，翻译为方法有助于读者进一步明确这一思想。另外，书中在谈及易访问性（Accessibility）时，多次提到了“退化能力”。对此存疑的读者，可以参考译者网站中的相关讨论和介绍。 从翻译一本书的角度讲，序和前言部分一般是最难翻译的。用出版社编辑的话来说，这些部分往往也是重灾区、地雷阵。译者在翻译Dojo之父Alex Russell为此书作的序时，得到了李锟、郭晓刚、米全喜、贺师俊的帮助，特别是米全喜抽时间审阅了全篇译文，提出了9处问题。在此一并致谢！当然，还要感谢陈冀康编辑给了译者翻译本书的机会，感谢责任编辑（暂时不知名，请编辑老师自己补上）为编辑此书付出的精力和时间。 欢迎读者朋友登录译者网站或通过邮件（为防垃圾，见书）反馈本书翻译中存在的问题，或者提供勘误信息。 另，在本书中文版交稿时，Dojo1.2已经发布。译者翻译了“Dojo1.2发版说明”，有需要的读者可以参考。 译者2008年12月18日于北京昌平名佳花园]]></description>
			<content:encoded><![CDATA[<p><a title="http://oreilly.com/catalog/9780596516482/" href="http://oreilly.com/catalog/9780596516482/" target="_blank"><img class="colorbox-266"  title="Dojo TDG" src="http://oreilly.com/catalog/covers/9780596516482_cat.gif" alt="Dojo TDG" hspace="10" vspace="10" width="180" height="236" align="left" /></a></p>
<p><a title="http://oreilly.com/catalog/9780596516482/" href="http://oreilly.com/catalog/9780596516482/" target="_blank"><span class="book-title" style="font-weight: bold"> <em>Dojo: The Definitive Guide </em></span><em><span class="subtitle">Powering Up Ajax Development Techniques</span></em></a> 已经在本月16日交稿了。期待早日出版啊。</p>
<p>平心而论，与现有的JavaScript库或框架相比，Dojo的确很值得O&#8217;Reilly为它自己出一本权威指南。</p>
<p>从译者的Web开发经验来看，在使用JavaScript语言创建跨平台、跨浏览器的RWA（Rich Web Applications，富Web应用程序）项目时，选择Dojo作为前端开发框架基本上可以做到别无所求。因为，对于通常的JavaScript库和框架所能解决的问题——DOM操作、事件处理、样式修改、外部通信的标准化，Dojo的Base和Core同样也给出了全套解决方案。</p>
<p>当然，就Dojo工具箱的库和框架部分而言，数据抽象和模拟类与继承是另外两个主要的亮点。</p>
<p>除了对开发RIA项目的底层逻辑提供强大支持外， Dijit专门针对设计人员给出大量即装即用的“部件”。部件就是HTML、JavaScript、CSS和其他相关资源（如图片）的集合，也是一个Function对象。基于Dojo部件的用户界面还支持换肤功能。</p>
<p>Util是Dojo独有的，其中包含构建工具、单元测试框架和压缩工具。为优化、测试产品和提高RIA项目的性能提供了有效支持。</p>
<p>在翻译本书的过程中，为确保技术细节的准确，译者参考了<a title="http://www.pragprog.com/titles/rgdojo/mastering-dojo" href="http://www.pragprog.com/titles/rgdojo/mastering-dojo" target="_blank"><em>Mastering Dojo</em></a>（<a title="http://www.pragprog.com/" href="http://www.pragprog.com/titles/rgdojo/mastering-dojo" target="_blank">The Pragmatic Bookshelf</a>）一书。而且，全书的术语基本上做到了前后统一。需要说明的是，书中将dojo命名空间之下的所有函数（function）统一译为方法。虽然翻译为函数也未尝不可，但译者在此有两点考虑：首先，从面向对象的角度讲，通过对象访问的函数应该叫方法；其次，Dojo跟其他的库和框架一样，都非常强调命名空间，翻译为方法有助于读者进一步明确这一思想。另外，书中在谈及易访问性（Accessibility）时，多次提到了“退化能力”。对此存疑的读者，可以参考译者网站中的<a title="关于平衡退化" href="http://www.cn-cuckoo.com/index.php?s=%E5%B9%B3%E7%A8%B3%E9%80%80%E5%8C%96&amp;sbutt=Find" target="_blank">相关讨论和介绍</a>。</p>
<p>从翻译一本书的角度讲，序和前言部分一般是最难翻译的。用出版社编辑的话来说，这些部分往往也是重灾区、地雷阵。译者在翻译Dojo之父<a title="Dojo创建人" href="http://alex.dojotoolkit.org/" target="_blank">Alex Russell</a><a title="《Dojo权威指南》序" href="http://www.cn-cuckoo.com/2008/12/06/about-dojo-tdg-foreword-264.html" target="_blank">为此书作的序</a>时，得到了<a title="http://dleecn.blogspot.com/" href="http://dleecn.blogspot.com/" target="_blank">李锟</a>、郭晓刚、米全喜、<a title="http://hax.javaeye.com/" href="http://hax.javaeye.com/" target="_blank">贺师俊</a>的帮助，特别是米全喜抽时间审阅了全篇译文，提出了9处问题。在此一并致谢！当然，还要感谢陈冀康编辑给了译者翻译本书的机会，感谢责任编辑（暂时不知名，请编辑老师自己补上）为编辑此书付出的精力和时间。</p>
<p>欢迎读者朋友登录译者网站或通过邮件（为防垃圾，见书）反馈本书翻译中存在的问题，或者提供勘误信息。</p>
<p>另，在本书中文版交稿时，Dojo1.2已经发布。译者翻译了“<a title="Dojo1.2发版说明" href="http://www.cn-cuckoo.com/2008/12/18/dojo-1-2-release-notes-265.html" target="_blank">Dojo1.2发版说明</a>”，有需要的读者可以参考。</p>
<p class="LSF0Ctrl0" style="margin: 7.8pt 0cm; text-align: right" align="right"><span style="font-family: 宋体">译者</span><span lang="EN-US">2008</span><span style="font-family: 宋体">年</span><span lang="EN-US">12</span><span style="font-family: 宋体">月</span><span lang="EN-US">18</span><span style="font-family: 宋体">日于北京昌平名佳花园</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/12/19/translators-words-for-dojo-tdg-266.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dojo精解（一）</title>
		<link>http://www.cn-cuckoo.com/2008/08/24/dojo-goodness-part-1-257.html</link>
		<comments>http://www.cn-cuckoo.com/2008/08/24/dojo-goodness-part-1-257.html#comments</comments>
		<pubDate>Sun, 24 Aug 2008 02:08:54 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/08/24/dojo-goodness-part-1-257.html</guid>
		<description><![CDATA[作者：Matthew Russell，原文链接 2008年2月29日，星期五，11:07AM 本周末，这本书的最终版一交稿，我就会立刻拥有大量的空闲时间。因此，我决定围绕基本的Dojo构建块写一个对读者有所帮助的简短的专栏。虽然这个专栏不可能像读者在书中所看到的那样给大家呈现“权威指南”般详尽的讲解，但我希望能够通过它来展示一些工具，提升读者对Dojo的理解和认识，并且也希望读者能够因此体验到Dojo的魅力。 作为专栏开篇，我们下面就从Base讲起。Base是经过高度优化的工具箱内核，我喜欢把它看成是JavaScript标准库，要使用Dojo没有它是万万不行的。简单地说，Base提供了一系列语言实用程序，针对那些可能会导致代码膨胀的“你想实现但又不必自己编码的任务”。我们知道，为节点添加样式、添加和移除类、查询DOM、处理作用域、简单的褪色动画、标准化事件模型，以及操作列表等等任务恐怕是没有穷尽的（几乎如此）。 AOL通过它们的CDN（Content Delivery Network，内容分发网络）提供在线的Dojo支持，而其中Base的“通过网络传输”（经过gzip压缩）仅有约27KB，这就让Dojo很臃肿的说法不攻自破了。27KB是一个比充斥于Web中的大多数Flash广告都要小的净荷，即使最慢的连接也能在瞬间完成下载。AOL的CDN作为一种地理边际缓存（ edge-cached）系统，不会让你苦苦等待页面加载。 闲话少说，言归正传。接下来我们就开始介绍一些实用的代码。用于将Base加载到页面中的基本模板如下所示： dojo.addOnLoad(function() { /* Do stuff... */ }); Dojo 如你所见，这个页面模板中除了包含一个加载Dojo组件的SCRIPT标签之外没有什么特别之处。其中，dojo.addOnLoad块提供了安全使用Dojo的空间，这个块之所以必要是因为SCRIPT标签与文档不同步。这一点同其他工具箱也很相似，例如jQuery中的ready事件。 好，下面我们开始介绍Dojo的用法。 Dojo中一个最常用的特性就是dojo.query基本函数。这个函数接收的第一个参数是一个CSS选择符，然后根据该选择符查询DOM并返回符合条件的NodeList对象。NodeList是Array的子类，在Base中定义，并为连缀其他操作提供了语法糖衣（syntactic sugar，由Peter J. Landin创造的一个术语，指的是为一门计算机语言的语法中添加的附加物或附加成分，它不会影响语言的功能，但却能使人类使用起该语言来”更甜美”一些。——译者注）。有关dojo.query的官方API参见这里。 假设我们希望在有人单击链接时会执行某种操作——例如，触发一个警告框，以便在用户离开页面前显示一句告别的话。下面就是我们需要添加的代码： //put this code inside of the dojo.addOnLoad block dojo.query(&#8220;a&#8221;).onclick(function(evt) { alert(&#8220;Thanks for visiting&#8221;); }); 解释一下这几行代码：dojo.query函数接收了一个CSS选择符（表示要查找页面中所有的锚元素——在这个例子中只有一个），然后对返回的结果调用了NodeList的onclick方法，该方法为结果中的每个对象指定了一个自定义的处理程序。这样，当用户（通过单击链接）离开页面时，这个处理程序就会触发一个讨厌的弹出警告框，仅此而已。 但是，有一点读者可能不知道，作为参数传递给自定义函数的evt变量根据W3C规范进行了标准化，因此这个事件对象完全可以跨平台使用。例如，为了阻止单击链接离开页面时的默认动作，可以像下面这样调用preventDefault： //put this code inside of the dojo.addOnLoad block dojo.query(&#8220;a&#8221;).onclick(function(evt) { alert(&#8220;Thanks for visiting&#8221;); evt.preventDefault(); [...]]]></description>
			<content:encoded><![CDATA[<p>作者：Matthew Russell，<a href="http://www.oreillynet.com/onlamp/blog/2008/02/dojo_goodness_part_1_1.html" title="http://www.oreillynet.com/onlamp/blog/2008/02/dojo_goodness_part_1_1.html" target="_blank">原文链接</a><br />
2008年2月29日，星期五，11:07AM</p>
<p>本周末，这本书的最终版一交稿，我就会立刻拥有大量的空闲时间。因此，我决定围绕基本的Dojo构建块写一个对读者有所帮助的简短的专栏。虽然这个专栏不可能像读者在书中所看到的那样给大家呈现“权威指南”般详尽的讲解，但我希望能够通过它来展示一些工具，提升读者对Dojo的理解和认识，并且也希望读者能够因此体验到Dojo的魅力。</p>
<p>作为专栏开篇，我们下面就从Base讲起。Base是经过高度优化的工具箱内核，我喜欢把它看成是JavaScript标准库，要使用Dojo没有它是万万不行的。简单地说，Base提供了一系列语言实用程序，针对那些可能会导致代码膨胀的“你想实现但又不必自己编码的任务”。我们知道，为节点添加样式、添加和移除类、查询DOM、处理作用域、简单的褪色动画、标准化事件模型，以及操作列表等等任务恐怕是没有穷尽的（几乎如此）。</p>
<p>AOL通过它们的CDN（Content Delivery Network，内容分发网络）提供在线的Dojo支持，而其中Base的“通过网络传输”（经过gzip压缩）仅有约27KB，这就让Dojo很臃肿的说法不攻自破了。27KB是一个比充斥于Web中的大多数Flash广告都要小的净荷，即使最慢的连接也能在瞬间完成下载。AOL的CDN作为一种地理边际缓存（ edge-cached）系统，不会让你苦苦等待页面加载。<span id="more-257"></span></p>
<p>闲话少说，言归正传。接下来我们就开始介绍一些实用的代码。用于将Base加载到页面中的基本模板如下所示：<br />
<coolcode><br />
<html><br />
    <head></p>
<p>        <script type="text/javascript"
            src="http://o.aolcdn.com/dojo/1.0/dojo/dojo.xd.js">
        </script></p>
<p>        <script type="text/javascript">
            dojo.addOnLoad(function() {
                /* Do stuff... */
            });
        </script><br />
    </head><br />
    <body><br />
        <a href="http://dojotoolkit.org">Dojo</a><br />
    </body><br />
</html><br />
</coolcode></p>
<p>如你所见，这个页面模板中除了包含一个加载Dojo组件的SCRIPT标签之外没有什么特别之处。其中，dojo.addOnLoad块提供了安全使用Dojo的空间，这个块之所以必要是因为SCRIPT标签与文档不同步。这一点同其他工具箱也很相似，例如jQuery中的ready事件。</p>
<p>好，下面我们开始介绍Dojo的用法。</p>
<p>Dojo中一个最常用的特性就是dojo.query基本函数。这个函数接收的第一个参数是一个CSS选择符，然后根据该选择符查询DOM并返回符合条件的NodeList对象。NodeList是Array的子类，在Base中定义，并为连缀其他操作提供了语法糖衣（syntactic sugar，由Peter J. Landin创造的一个术语，指的是为一门计算机语言的语法中添加的附加物或附加成分，它不会影响语言的功能，但却能使人类使用起该语言来”更甜美”一些。——译者注）。有关dojo.query的官方API参见这里。</p>
<p>假设我们希望在有人单击链接时会执行某种操作——例如，触发一个警告框，以便在用户离开页面前显示一句告别的话。下面就是我们需要添加的代码：<br />
<coolcode><br />
//put this code inside of the dojo.addOnLoad block<br />
dojo.query(&#8220;a&#8221;).onclick(function(evt) {<br />
    alert(&#8220;Thanks for visiting&#8221;);<br />
});<br />
</coolcode><br />
解释一下这几行代码：dojo.query函数接收了一个CSS选择符（表示要查找页面中所有的锚元素——在这个例子中只有一个），然后对返回的结果调用了NodeList的onclick方法，该方法为结果中的每个对象指定了一个自定义的处理程序。这样，当用户（通过单击链接）离开页面时，这个处理程序就会触发一个讨厌的弹出警告框，仅此而已。</p>
<p>但是，有一点读者可能不知道，作为参数传递给自定义函数的evt变量根据W3C规范进行了标准化，因此这个事件对象完全可以跨平台使用。例如，为了阻止单击链接离开页面时的默认动作，可以像下面这样调用preventDefault：<br />
<coolcode><br />
//put this code inside of the dojo.addOnLoad block<br />
dojo.query(&#8220;a&#8221;).onclick(function(evt) {<br />
    alert(&#8220;Thanks for visiting&#8221;);<br />
    evt.preventDefault(); // now the page doesn&#8217;t reload when you click<br />
});<br />
</coolcode><br />
不过，这还不是全部。NodeList在DOM事件中也包装了很多有用的功能，而且还提供了按索引操作NodeList、操作类、切割NodeList等等功能——估计涵盖了你能想到的所有操作。可以单击这里查看NodeList的完整API。</p>
<p>下面，我们进一步扩展前面的例子，让链接在鼠标悬停状态下能够突出显示。修改后的代码如下所示：<br />
<coolcode><br />
//put this code inside of the dojo.addOnLoad block<br />
dojo.query(&#8220;a&#8221;).onclick(function(evt) {<br />
    alert(&#8220;Thanks for visiting&#8221;);</p>
<p>    // comment out if you really do want to leave the page<br />
    evt.preventDefault();<br />
})<br />
.onmouseover(function(evt) {<br />
    dojo.style(evt.target, &#8220;background&#8221;, &#8220;yellow&#8221;);<br />
})<br />
.onmouseout(function(evt) {<br />
    dojo.style(evt.target, &#8220;background&#8221;, &#8220;&#8221;);<br />
});<br />
</coolcode></p>
<p>如上所示，连缀结果同我们想象的一样直观明了，而其中唯一一个新特性就是无需过多解释的dojo.style函数。一般来说，dojo.style接收3个参数：一个节点（符合W3C规范，能够通过evt.target获取）、一个样式名和为该样式指定的一个值。这个例子只是在鼠标悬停于节点时添加了黄色背景，而在鼠标离开节点时删除了背景。有关dojo.style的API参见这里。</p>
<p>在下一篇文章中你想看到些什么？我打算再深入讨论一下Base的本质，不过我也知道不少朋友期待看到部件（widget）的实际应用。请大家踊跃把自己的要求写在下面。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/08/24/dojo-goodness-part-1-257.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>另一本Dojo的期书——Learning Dojo</title>
		<link>http://www.cn-cuckoo.com/2008/08/23/learning-dojo-255.html</link>
		<comments>http://www.cn-cuckoo.com/2008/08/23/learning-dojo-255.html#comments</comments>
		<pubDate>Sat, 23 Aug 2008 00:08:49 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/08/23/learning-dojo-255.html</guid>
		<description><![CDATA[原文地址： 本书预告页面 Learning Dojo深入翔实地讲解了如何使用Dojo AJAX JavaScript框架创建强大而动态的网站。 Dojo是一个流行的针对AJAX的开源JavaScript框架，用于构建强大的Web应用程序。Dojo还提供了构思精妙的API和各类工具，能够辅助开发人员解决众多日常开发问题。适不适合使用Dojo与项目的大小没有关系，不过对于解决各种与项目大小有关的问题，Dojo则是最佳的可伸缩方案。 本书从介绍JavaScript编程提示和技巧讲起，这些技巧对学习Dojo非常有帮助。随着对每一章的学习，读者也将逐渐掌握各种高级的JavaScript技术。读者最终将掌握利用Dojo来实现基于JSON和XML的清晰的Web应用程序架构。 本书是一本基于实例的教程。在介绍了必要的基础知识之后，本书向读者展示了创建各种实例的过程，每个实例都围绕一种不同的界面任务或视觉效果展开。 读者对象 本书针对熟悉JavaScript的Web开发者，特别是希望使用Dojo开发动态Web2.0应用程序的人员。本书读者需要具备基本的网页创建技能，如掌握HTML和CSS，同时也应该熟悉JavaScript语法规则。 内容提要 第1章，Dojo简介。本章向读者介绍Dojo AJAX框架的基本概念，以及使用JavaScript和一些常用Dojo函数的提示与技巧。 第2章，实用的JavaScript和Dojo技巧。本章向读者解释Dojo如何利用面向对象的JavaScript编程。 第3章，Dijit基础知识。Dijit是Dojo中部件的统称。颜色拾取器或活动窗格都是典型的部件。本章全面介绍Dijit并通过实例展示如何使用部件、如何与部件交互，以及如何编写自定义部件。 第4章，AJAX通信。本章从几个方面讨论了AJAX通信，同时以实例为依托展示服务器端编程（以PHP编写）。 第5章，表单。本章介绍与表单相关的Dijit，涉及到表单串行化、强大的表单验证和国际化，以及在设置Dojo表单时的最佳实践，最后给出可用组件的小结。 第6章，布局。Layout是用于内容布局的Dijit，与其他Dijit或纯HTML不同。本章展示的例子包括一般意义上“无CSS”布局管理中的简单布局、在内容窗格中动态加载内容，以及通过Stack容器及少量的脚本编程创建向导部件。 第7章，数据、树和网络。Dojo中最复杂的部分非数据存储莫属，但Dojo在数据处理上也为程序员提供了前所未有的模块化程度。本章通过几个简单的例子介绍dojo.data接口以及如何扩展该接口，最后介绍在相同的Dijit组件中如何使用不同的数据类型。 第8章，效果和动画。dojo.fx为开发人员提供了隐藏、显示或移动页面元素的便捷方式。本章展示的例子涵盖了动画和定时修改几乎任何DOM属性，同时还会讨论如何通过连缀组合多个动画。此外，还将展示使用图表和绘制API的例子，然后介绍如何实现拖放——包括拖放节点类型和如何使用可拖动“化身（avatar）”丰富拖动效果。 第9章，Dojo典型应用。本章展示了各种典型的Dojo应用实例，这些实例构成了时间第一时“复制粘贴”的案例库。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/tutorial-for-building-interactive-interfaces-with-dojo/book" title="http://www.packtpub.com/tutorial-for-building-interactive-interfaces-with-dojo/book" target="_blank"><img class="colorbox-255"  src="http://images.packtpub.com/images/full/1847192688.jpg" align="right" hspace="20" width="300" /></a></p>
<p>原文地址： <a href="http://www.packtpub.com/tutorial-for-building-interactive-interfaces-with-dojo/book/0808news#" title="http://www.packtpub.com/tutorial-for-building-interactive-interfaces-with-dojo/book/0808news#" target="_blank">本书预告页面</a></p>
<p>Learning Dojo深入翔实地讲解了如何使用Dojo AJAX JavaScript框架创建强大而动态的网站。</p>
<p>Dojo是一个流行的针对AJAX的开源JavaScript框架，用于构建强大的Web应用程序。Dojo还提供了构思精妙的API和各类工具，能够辅助开发人员解决众多日常开发问题。适不适合使用Dojo与项目的大小没有关系，不过对于解决各种与项目大小有关的问题，Dojo则是最佳的可伸缩方案。</p>
<p>本书从介绍JavaScript编程提示和技巧讲起，这些技巧对学习Dojo非常有帮助。随着对每一章的学习，读者也将逐渐掌握各种高级的JavaScript技术。读者最终将掌握利用Dojo来实现基于JSON和XML的清晰的Web应用程序架构。</p>
<p>本书是一本基于实例的教程。在介绍了必要的基础知识之后，本书向读者展示了创建各种实例的过程，每个实例都围绕一种不同的界面任务或视觉效果展开。<span id="more-255"></span></p>
<p><strong>读者对象</strong></p>
<p>本书针对熟悉JavaScript的Web开发者，特别是希望使用Dojo开发动态Web2.0应用程序的人员。本书读者需要具备基本的网页创建技能，如掌握HTML和CSS，同时也应该熟悉JavaScript语法规则。</p>
<p><strong>内容提要</strong></p>
<p><strong>第1章，Dojo简介。</strong>本章向读者介绍Dojo AJAX框架的基本概念，以及使用JavaScript和一些常用Dojo函数的提示与技巧。</p>
<p><strong>第2章，实用的JavaScript和Dojo技巧。</strong>本章向读者解释Dojo如何利用面向对象的JavaScript编程。</p>
<p><strong>第3章，Dijit基础知识。</strong>Dijit是Dojo中部件的统称。颜色拾取器或活动窗格都是典型的部件。本章全面介绍Dijit并通过实例展示如何使用部件、如何与部件交互，以及如何编写自定义部件。</p>
<p><strong>第4章，AJAX通信。</strong>本章从几个方面讨论了AJAX通信，同时以实例为依托展示服务器端编程（以PHP编写）。</p>
<p><strong>第5章，表单。</strong>本章介绍与表单相关的Dijit，涉及到表单串行化、强大的表单验证和国际化，以及在设置Dojo表单时的最佳实践，最后给出可用组件的小结。</p>
<p><strong>第6章，布局。</strong>Layout是用于内容布局的Dijit，与其他Dijit或纯HTML不同。本章展示的例子包括一般意义上“无CSS”布局管理中的简单布局、在内容窗格中动态加载内容，以及通过Stack容器及少量的脚本编程创建向导部件。</p>
<p><strong>第7章，数据、树和网络。</strong>Dojo中最复杂的部分非数据存储莫属，但Dojo在数据处理上也为程序员提供了前所未有的模块化程度。本章通过几个简单的例子介绍dojo.data接口以及如何扩展该接口，最后介绍在相同的Dijit组件中如何使用不同的数据类型。</p>
<p><strong>第8章，效果和动画。</strong>dojo.fx为开发人员提供了隐藏、显示或移动页面元素的便捷方式。本章展示的例子涵盖了动画和定时修改几乎任何DOM属性，同时还会讨论如何通过连缀组合多个动画。此外，还将展示使用图表和绘制API的例子，然后介绍如何实现拖放——包括拖放节点类型和如何使用可拖动“化身（avatar）”丰富拖动效果。</p>
<p><strong>第9章，Dojo典型应用。</strong>本章展示了各种典型的Dojo应用实例，这些实例构成了时间第一时“复制粘贴”的案例库。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/08/23/learning-dojo-255.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dojo之父推荐3本Dojo图书</title>
		<link>http://www.cn-cuckoo.com/2008/08/22/the-3-books-of-dojo-254.html</link>
		<comments>http://www.cn-cuckoo.com/2008/08/22/the-3-books-of-dojo-254.html#comments</comments>
		<pubDate>Fri, 22 Aug 2008 05:14:56 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/08/22/the-3-books-of-dojo-254.html</guid>
		<description><![CDATA[作者：Alex Russell 原文链接： Books! It’s Raining Books! 此时此刻，由于3本新书的问世，同学们可更全面地学习Dojo了。写一本Dojo书的难度与写Python书的难度类似：要讲解的东西太多了！从哪讲起？如果要向任何人解释一切，以什么为线索？令人欣慰的是，这3本书各自遵循了不同的写作思路，面向不同的读者，因此我认为任何层面的Web开发人员几乎都能各取所需。通过对其中两本书在付梓之前的审读（另一本由Dylan和Pete审读），我为它们的深度和着眼点的不同感到吃惊。 Pragmatic的Mastering Dojo一书封面上署了我的名字，不过千万不要因此而误会……这本书其实非常棒！为什么这么说呢？Craig和Rawld不仅向读者展示了这个工具箱的价值所在以及如何用好这个工具箱，而且也深入了它的实现细节，剖析了工具箱的内部工作原理。在构建由易响应JavaScript驱动的UI时，真正的艺术体现在巧妙的平衡上。Mastering Dojo这本书确实有助于读者理解在实现良好用户体验的同时，Dojo还以哪些方式兼顾了某种平衡。 Dojo: The Definitive Guide名符其实。作为参考书，Matthew Russell的这本权威指南不容错过！Mastering Dojo告诉了读者怎么做和为什么，而这本书则适合常备于读者案头，当读者不太确定Dijit表单部件的继承性树状结构（当然，这时候得需要子类或混入类）到底啥意思时，它就可以为你答疑解惑。Dojo TDG中深刻的阐述和解释性图表比比皆是，Pragmatic的书可以让读者掌握各种技巧并学会聪明地综合利用这些技巧，而TDG则囊括了更多技巧，并且将Dojo中方方面面的功能一览无余地展现在读者手上。如果不同时拥有这两本书，很难保证开发出严肃的Dojo应用程序。 James Harmon的Dojo: Using the Dojo JavaScript Library to Build Ajax Applications以最容易理解的方式介绍了Dojo，可以说是横空出世的一本佳作。虽然O’Reilly和Pragmatic那两本书为应用程序开发人员提供了充足的“弹药”，但James在这本书中提供的翔实介绍，对于还没有经历“Ajax之苦”的Web开发人员可以说是切入Ajax开发和利用Dojo众多特性的一次绝好机会。Dojo诸多部分的设计确实考虑到了非程序员的需要，无论是声明式标记语法，还是模板系统，都莫不如此。James这本书详略得当、重点突出地展示了使用Dojo构建丰富的、引人瞩目的UI有多么简单。 说到这里，我感觉到可能还会有再推出两本Dojo图书的市场空间：一本只针对dojo.query()和dojo.behavior的使用，侧重于渐进增强的Web标准开发理念；另一本可以针对高级的dojo.data（有大量现成的素材和案例）和视觉效果，如网格、图表和dojox.gfx。据我所知，将来还要针对Dojo社区或者由Dojo社区推出更多图书，如果那些书的质量在某些方面能与这3本不相上下，那么就能进一步说明Dojo社区确实在进步，而我们的目的也就达到了。 最后，衷心祝贺以上几本书的作者，感谢他们数月以来为这几本书所倾注的大量心血。当然，他们努力的结果简直无可挑剔。]]></description>
			<content:encoded><![CDATA[<p>作者：<a title="http://alex.dojotoolkit.org/" href="http://alex.dojotoolkit.org/" target="_blank">Alex Russell</a> 原文链接：<a title="http://alex.dojotoolkit.org/2008/06/books-its-raining-books/" href="http://alex.dojotoolkit.org/2008/06/books-its-raining-books/" target="_blank"> Books! It’s Raining Books!</a></p>
<p><a title="http://alex.dojotoolkit.org/2008/06/books-its-raining-books/" href="http://alex.dojotoolkit.org/2008/06/books-its-raining-books/" target="_blank"></a><br />
此时此刻，由于3本新书的问世，同学们可更全面地学习Dojo了。写一本Dojo书的难度与写Python书的难度类似：要讲解的东西太多了！从哪讲起？如果要向任何人解释一切，以什么为线索？令人欣慰的是，这3本书各自遵循了不同的写作思路，面向不同的读者，因此我认为任何层面的Web开发人员几乎都能各取所需。通过对其中两本书在付梓之前的审读（<a title="http://www.amazon.com/Dojo-JavaScript-Library-Applications-Developers/dp/0132358042/ref=pd_sim_b_2" href="http://www.amazon.com/Dojo-JavaScript-Library-Applications-Developers/dp/0132358042/ref=pd_sim_b_2" target="_blank">另一本</a>由<a title="http://dylanschiemann.com/" href="http://dylanschiemann.com/" target="_blank">Dylan</a>和<a title="http://higginsforpresident.net/" href="http://higginsforpresident.net/" target="_blank">Pete</a>审读），我为它们的深度和着眼点的不同感到吃惊。</p>
<p><a title="Mastering Dojo" href="http://www.pragprog.com/titles/rgdojo/mastering-dojo" target="_blank"></a></p>
<p style="text-align: center;"><a title="Mastering Dojo" href="http://www.pragprog.com/titles/rgdojo/mastering-dojo" target="_blank"><img class="colorbox-254"  src="http://assets2.pragprog.com/images/covers/190x228/rgdojo.jpg" alt="" /></a></p>
<p>Pragmatic的<em>Mastering Dojo</em>一书封面上署了我的名字，不过千万不要因此而误会……这本书其实非常棒！为什么这么说呢？Craig和Rawld不仅向读者展示了这个工具箱的价值所在以及如何用好这个工具箱，而且也深入了它的实现细节，剖析了工具箱的内部工作原理。在构建由易响应JavaScript驱动的UI时，真正的艺术体现在巧妙的平衡上。<em>Mastering Dojo</em>这本书确实有助于读者理解在实现良好用户体验的同时，Dojo还以哪些方式兼顾了某种平衡。<span id="more-254"></span></p>
<p><a href="http://www.amazon.com/gp/product/0596516487/ref=s9subs_c4_img1-rfc_g1-2991_g1?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-4&amp;pf_rd_r=135VPBM3485JBDS6Z4MV&amp;pf_rd_t=101&amp;pf_rd_p=372729801&amp;pf_rd_i=507846"></a></p>
<p style="text-align: center;"><a href="http://oreilly.com/catalog/9780596516482/"><img class="aligncenter colorbox-254" src="http://covers.oreilly.com/images/9780596516482/cat.gif" alt="" width="180" height="236" /></a></p>
<p><em> Dojo: The Definitive Guide</em>名符其实。作为参考书，Matthew Russell的这本权威指南不容错过！<em>Mastering Dojo</em>告诉了读者怎么做和为什么，而这本书则适合常备于读者案头，当读者不太确定Dijit表单部件的继承性树状结构（当然，这时候得需要子类或混入类）到底啥意思时，它就可以为你答疑解惑。<em>Dojo TDG</em>中深刻的阐述和解释性图表比比皆是，Pragmatic的书可以让读者掌握各种技巧并学会聪明地综合利用这些技巧，而TDG则囊括了更多技巧，并且将Dojo中方方面面的功能一览无余地展现在读者手上。如果不同时拥有这两本书，很难保证开发出严肃的Dojo应用程序。</p>
<p><a href="http://www.amazon.com/Dojo-JavaScript-Library-Applications-Developers/dp/0132358042/ref=pd_sim_b_2"></a></p>
<p style="text-align: center;"><a href="http://www.amazon.com/Dojo-JavaScript-Library-Applications-Developers/dp/0132358042/ref=pd_sim_b_2"><img class="colorbox-254"  src="http://i.pdfchm.net/6/e/11891/200/dojo-using-the-dojo-javascript-library-to-build-ajax-applications-developers-library.jpg" alt="" /></a></p>
<p>James Harmon的<em>Dojo: Using the Dojo JavaScript Library to Build Ajax Applications</em>以最容易理解的方式介绍了Dojo，可以说是横空出世的一本佳作。虽然O’Reilly和Pragmatic那两本书为应用程序开发人员提供了充足的“弹药”，但James在这本书中提供的翔实介绍，对于还没有经历“Ajax之苦”的Web开发人员可以说是切入Ajax开发和利用Dojo众多特性的一次绝好机会。Dojo诸多部分的设计确实考虑到了非程序员的需要，无论是声明式标记语法，还是模板系统，都莫不如此。James这本书详略得当、重点突出地展示了使用Dojo构建丰富的、引人瞩目的UI有多么简单。</p>
<p>说到这里，我感觉到可能还会有再推出两本Dojo图书的市场空间：一本只针对dojo.query()和dojo.behavior的使用，侧重于渐进增强的Web标准开发理念；另一本可以针对高级的dojo.data（有大量现成的素材和案例）和视觉效果，如网格、图表和dojox.gfx。据我所知，将来还要针对Dojo社区或者由Dojo社区推出更多图书，如果那些书的质量在某些方面能与这3本不相上下，那么就能进一步说明Dojo社区确实在进步，而我们的目的也就达到了。</p>
<p>最后，衷心祝贺以上几本书的作者，感谢他们数月以来为这几本书所倾注的大量心血。当然，他们努力的结果简直无可挑剔。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/08/22/the-3-books-of-dojo-254.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>读《JavaScript DOM高级程序设计》</title>
		<link>http://www.cn-cuckoo.com/2008/06/27/reading-advanced-dom-scripting-241.html</link>
		<comments>http://www.cn-cuckoo.com/2008/06/27/reading-advanced-dom-scripting-241.html#comments</comments>
		<pubDate>Fri, 27 Jun 2008 13:32:05 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[原创]]></category>
		<category><![CDATA[好书]]></category>
		<category><![CDATA[译作支持]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/06/27/reading-advanced-dom-scripting-241.html</guid>
		<description><![CDATA[没错，我现在又开始读这本书。虽然 《JavaScript DOM高级程序设计》的第一读者就是我，但我现在仍然要说：我要安排时间再通读它几遍！ 好书啊，没办法。翻译一遍，还不够烦吗？——怎么会烦呢？尽管在翻译它时，我倾注的热情和努力已经够多，但我仍然感觉没有完全读透它！我读它读得还不够。 再读 《JavaScript DOM高级程序设计》，我体验到了什么叫享受。毫无疑问，就当前谈论和讲解JavaScript及DOM编程的技术书而言，这本书已经接近该领域的极高点了（其他几本我也知道，但在它面前只能算各有千秋吧）。读一本好书——不是入门级的书——尤其是像《JavaScript DOM高级程序设计》这样适合中高级读者的好书，读者的心态应该是与书背后的作者进行交流。在读它的过程中，跟着作者的思路去假设、去思考、去推断、去印证、去反问、去寻找答案，是之谓交流。我正是因为体验到与作者交流的愉悦，才想起来写这些文字。 事实上，老实说，我现在正抽一切可能的时间做《JavaScript DOM高级程序设计》的审校。书虽然已经出版了，但我自己深知，作为正式翻译的第5本书，我当时（2007年9～11月）的翻译水平还不够好——至少不如现在的状态；而且，对翻译技术书的认识也没有今天这么深入。现在，我已经看到第2章，也单独为它建立了勘误页面。虽然目前发现的错误很少，但却发现语言表达上犯了“的的不休”的毛病，也就是“的”字用得有点过度——这一点，请买第一次印刷的朋友们多多担待。不过，多余的“的”字，我在审校过程中都已经加了删除标记。在第二次印刷时，相信这个毛病就会得到全面、彻底纠正。 为此，我跟杨爽同学要了这本书的英文版，以便对照审校。]]></description>
			<content:encoded><![CDATA[<p>没错，我现在又开始读这本书。虽然 《JavaScript DOM高级程序设计》的第一读者就是我，但我现在仍然要说：我要安排时间再通读它几遍！</p>
<p>好书啊，没办法。翻译一遍，还不够烦吗？——怎么会烦呢？尽管在翻译它时，我倾注的热情和努力已经够多，但我仍然感觉没有完全读透它！我读它读得还不够。</p>
<p>再读 《JavaScript DOM高级程序设计》，我体验到了什么叫享受。毫无疑问，就当前谈论和讲解JavaScript及DOM编程的技术书而言，这本书已经接近该领域的极高点了（其他几本我也知道，但在它面前只能算各有千秋吧）。读一本好书——不是入门级的书——尤其是像《JavaScript DOM高级程序设计》这样适合中高级读者的好书，读者的心态应该是与书背后的作者进行交流。在读它的过程中，跟着作者的思路去假设、去思考、去推断、去印证、去反问、去寻找答案，是之谓交流。我正是因为体验到与作者交流的愉悦，才想起来写这些文字。</p>
<p>事实上，老实说，我现在正抽一切可能的时间做《JavaScript DOM高级程序设计》的审校。书虽然已经出版了，但我自己深知，作为正式翻译的第5本书，我当时（2007年9～11月）的翻译水平还不够好——至少不如现在的状态；而且，对翻译技术书的认识也没有今天这么深入。现在，我已经看到第2章，也单独为它建立了<strong><a href="http://www.cn-cuckoo.com/errata-for-chinese-language-edition-of-advanced-dom-scripting" title="http://www.cn-cuckoo.com/errata-for-chinese-language-edition-of-advanced-dom-scripting" target="_blank">勘误页面</a></strong>。虽然目前发现的错误很少，但却发现语言表达上犯了“的的不休”的毛病，也就是“的”字用得有点过度——这一点，请买第一次印刷的朋友们多多担待。不过，多余的“的”字，我在审校过程中都已经加了删除标记。在第二次印刷时，相信这个毛病就会得到全面、彻底纠正。</p>
<p>为此，我跟杨爽同学要了这本书的英文版，以便对照审校。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/06/27/reading-advanced-dom-scripting-241.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>《JavaScript DOM高级程序设计》译者序</title>
		<link>http://www.cn-cuckoo.com/2008/05/16/the-preface-for-advanced-dom-scripting-212.html</link>
		<comments>http://www.cn-cuckoo.com/2008/05/16/the-preface-for-advanced-dom-scripting-212.html#comments</comments>
		<pubDate>Fri, 16 May 2008 06:44:14 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/05/16/the-preface-for-advanced-dom-scripting-212.html</guid>
		<description><![CDATA[昨天从本书责任编辑处获悉：本书近日出片送印厂。预计6月中旬可以市面上看到本书。 发一下最新的译者序吧。这是经过图灵刘江总编修改过的，呵呵。作为译者，看完都想买上10本珍藏起来了——但愿能够不负众望。 读者的眼睛是雪亮的。为了让还没有成为这本书读者的朋友听听已经看过这本书的读者的意见，我一直在关注网上有关这本书的评论。 到中文版付梓时为止，Amazon上已经有4篇评论，总体上毁誉参半，两人给了5星，一个给出3星，另一个则给出1星。而业内几个知名的专业blog的评论中则普遍不乏溢美之辞。为什么会有这样大的差距呢？ Amazon上第一个发表评论的是该书的技术编辑Cameron Turner，评论题为Perfect in Every Way（一本十全十美的书），5星。他说：“这是一本真正讲述构建下一代Web应用的书。到目前为止，这还是绝无仅有的。如果你需要为网站添加更多功能、灵活性和可访问性还有大势所趋的‘耀眼的Web 2.0’特性，那么这本书是‘必买’的。……需要提醒的是：如果你还是一个新手，可不要买这本书（因为它定位于‘高级’这个层次上）。只有真正理解了CSS、JavaScript和HTML才能从本书中获益。相信本书将成为所有专业Web软件开发人员日常工作中时时查阅的必备图书。” 当然，Turner可以算是本书的参与者，有些偏爱在所难免。不过他指出了本书针对中高级读者，而不适合新手，这一点非常关键。实际上，Amazon上两位不满意的读者中，Richard（3星）就是因为看不太懂而发了牢骚。而另一位读者T.Dalmasso（1星）则对书中出现的错误非常恼火。幸运的是，他提到的错误在图灵公司给我的电子版文件里大部分已经修正。在翻译过程中，确实还发现了一些错误（主要是拼写和排版错误），但在我翻译过的书中已经算是比较少的了，远远没有多到令人生厌的程度，而且我基本上都已经解决了。 Amazon上最后发表评论的是资深.NET工程师David Betz “quantzai”（5星），他一上来就语出惊人：“这是我见过的最好的一本现代JavaScript、DOM脚本编程和Ajax的书。这本书包括了JavaScript中从经常令人误解的变量作用域到与DOM深入交互等方方面面的内容。……本书是‘研究生层次’的书，深入了Ajax的内幕，将使你成为专家，当然，也要求你一开始就具备思考力。”评论最后，David Betz “quantzai”对前面读者提出的拼写错误等问题给出了“反击”。他说：“这又不是一本讲英语的书（出一两处错误在所难免），那些小错误根本无伤大雅；而且，即使没有这些错误你该理解不了，还是理解不了。”他甚至用“井蛙不可以语于海，夏虫不可以语于冰”，来表示对给出1星和3星的两位读者的不屑一顾。 在业内的知名blog圈里， 瑞典哥德堡的资深Web工程师Roger Johansson这样说：“我读了许多blog和书，想搞清楚作用域、闭包、面向对象等JavaScript概念，但是一直苦苦挣扎，读了本书后，我想问题终于解决了。”DOMAssistant库的作者Robert Nyman则评价：“如果你是一位中级JavaScript开发人员，还想更上一层楼，那么这将是使你梦想成真的绝妙好书。”Godbit项目的Nathan Smith也给予了很高的赞誉：“我要说，这是我读过的最好的JavaScript图书之一。” 看到这里，您有什么想法？没错。还记得小马过河的故事吗？无论是老黄牛，还是小松鼠，都有自己的角度和立场。因此，听别人的评论虽然能够大致了解一本书的内容，还是代替不了自己的判断。以我的经验，要购买一本自己感兴趣的、专注于某一技术领域的书，一是要听听网友的评论，二是仔细看一看书的目录，三是挑挑书的装帧，四是拿着书走向收银台（或者单击“放入购物车”按钮）。但是别忘了，对于一本外版书而言，译者也是中文版的第一读者。因此，听一听这位读者的看法也很重要（终于轮到我了，呵呵）。 作为译者，我来谈一谈自己对这本书的看法，供读者参考。 这本书在面向标准的Web编程领域是名副其实的扛鼎之作，也难怪它有些曲高和寡。全书的内容，都是作为一名专业的Web开发人员（或者真正的高手）所必须了解和掌握的高级知识，没一点多余的内容，洋洋550页中绝无浮华不实之辞。而且，书中对核心JavaScript原理的总结和概括（如常见陷阱、作用域链解析、闭包、面向对象等）、对最佳实践的倡导和践行（包括对面向未来的现代Web开发趋势的归纳和宣传，即脚本必须不唐突和增强而不是提供行为等）、对DOM规范讲解的提纲挈领（好像还没有哪本书这么详细地讲解过DOM）、对浏览器外部通信（Ajax）的反思与解决之道、对Web 2.0内容整合（Mashup）的分类与讲说等，无一不折射出这本书是作者博观约取、厚积薄发的心血力作。最后（最后说的往往最重要），如果你也醉心于Prototype、Base、jQuery、YUI、Ext、Mochikit、DOMAssitant、Interface、Script.aculo.us、Moo.fx等这些优秀的JavaScript库，不知道多少次被它们的魅力所倾倒，也想探微知著地真正理解这些库背后的工作原理，甚至于希望创建自己的库，那么这本书恰好适合你——一名JavaScript高手的需要，因为学习完这本书，你就会拥有自己跨平台的ADS库了（你必须Get your hands dirty——动手编写这个库的每一行代码），这还不够酷吗？应该说，本书是一本全景式的、沟通历史和未来的Web开发经典好书，是对现有JavaScript DOM程序开发最佳实践的一次大检阅和大放送，是推动Web标准化和向下一代Web开发挺进的里程碑式著作。而且，根据译者（就是我）的个人体会，这些话绝非溢美之辞，句句都言之有据，译者也愿意和读者就本书内容进行交流，互相学习。 然而，为什么在Amazon上本书不像DOM Scripting（中译本《JavaScript DOM编程艺术》，人民邮电出版社）那么广受关注，甚至大受欢迎呢——DOM Scripting有近60人评论，给1星的只有两人，3星三人，4星15人，其余均为5星？ 比较了一下两书的内容，可以发现，DOM Scripting一书针对的是初学者，尤其是编程经验并不是很丰富的Web前端开发和设计人员，所以行文浅显，门槛比较低，而且学习曲线也非常平滑，对于这些读者，本书可以说是比较完美的。讲JavaScript非常好懂，而且字里行间渗透着现代的Web开发思想。这也是国内很多读者都嫌内容太浅的原因，他们往往都是已经有不少经验的程序员了。对于这些读者，本书才是他们真正想找的那本。我们有理由相信它会受到大家的欢迎。 这是我与图灵公司合作的第一本书，也是我最喜欢的一本书。在此，我要感谢刘江老师的热情邀请，感谢傅志红老师不厌其烦地回答我的问题和修改我的译稿，也感谢武卫东老师的悉心指导。当然，还要感谢本书的责任编辑杨爽，正是因为她创造性地与译者沟通，才使得本书在付梓前又消除了一些问题。不过，囿于个人水平和能力，翻译中的错误和不当之处在所难免。如果读者发现了书中的问题，请在我的个人网站http://www.cn-cuckoo.com中给予指出，或者将电子邮件发送到lsf.email[at]yahoo.com.cn。 译　者 2008年2月于北京]]></description>
			<content:encoded><![CDATA[<p style="border: 1px dashed #aaaaaa; padding: 10px; background-color: #eeeeee"> 昨天从本书责任编辑处获悉：本书近日出片送印厂。预计6月中旬可以市面上看到本书。<br />
发一下最新的译者序吧。这是经过图灵刘江总编修改过的，呵呵。作为译者，看完都想买上10本珍藏起来了——但愿能够不负众望。</p>
<p>读者的眼睛是雪亮的。为了让还没有成为这本书读者的朋友听听已经看过这本书的读者的意见，我一直在关注网上有关这本书的评论。</p>
<p>到中文版付梓时为止，Amazon上已经有4篇评论，总体上毁誉参半，两人给了5星，一个给出3星，另一个则给出1星。而业内几个知名的专业blog的评论中则普遍不乏溢美之辞。为什么会有这样大的差距呢？</p>
<p>Amazon上第一个发表评论的是该书的技术编辑Cameron Turner，评论题为Perfect in Every Way（一本十全十美的书），5星。他说：“这是一本真正讲述构建下一代Web应用的书。到目前为止，这还是绝无仅有的。如果你需要为网站添加更多功能、灵活性和可访问性还有大势所趋的‘耀眼的Web 2.0’特性，那么这本书是‘必买’的。……需要提醒的是：如果你还是一个新手，可不要买这本书（因为它定位于‘高级’这个层次上）。只有真正理解了CSS、JavaScript和HTML才能从本书中获益。相信本书将成为所有专业Web软件开发人员日常工作中时时查阅的必备图书。”</p>
<p>当然，Turner可以算是本书的参与者，有些偏爱在所难免。不过他指出了本书针对中高级读者，而不适合新手，这一点非常关键。实际上，Amazon上两位不满意的读者中，Richard（3星）就是因为看不太懂而发了牢骚。而另一位读者T.Dalmasso（1星）则对书中出现的错误非常恼火。幸运的是，他提到的错误在图灵公司给我的电子版文件里大部分已经修正。在翻译过程中，确实还发现了一些错误（主要是拼写和排版错误），但在我翻译过的书中已经算是比较少的了，远远没有多到令人生厌的程度，而且我基本上都已经解决了。<span id="more-212"></span></p>
<p>Amazon上最后发表评论的是资深.NET工程师David Betz “quantzai”（5星），他一上来就语出惊人：“这是我见过的最好的一本现代JavaScript、DOM脚本编程和Ajax的书。这本书包括了JavaScript中从经常令人误解的变量作用域到与DOM深入交互等方方面面的内容。……本书是‘研究生层次’的书，深入了Ajax的内幕，将使你成为专家，当然，也要求你一开始就具备思考力。”评论最后，David Betz “quantzai”对前面读者提出的拼写错误等问题给出了“反击”。他说：“这又不是一本讲英语的书（出一两处错误在所难免），那些小错误根本无伤大雅；而且，即使没有这些错误你该理解不了，还是理解不了。”他甚至用“井蛙不可以语于海，夏虫不可以语于冰”，来表示对给出1星和3星的两位读者的不屑一顾。</p>
<p>在业内的知名blog圈里， 瑞典哥德堡的资深Web工程师Roger Johansson这样说：“我读了许多blog和书，想搞清楚作用域、闭包、面向对象等JavaScript概念，但是一直苦苦挣扎，读了本书后，我想问题终于解决了。”DOMAssistant库的作者Robert Nyman则评价：“如果你是一位中级JavaScript开发人员，还想更上一层楼，那么这将是使你梦想成真的绝妙好书。”Godbit项目的Nathan Smith也给予了很高的赞誉：“我要说，这是我读过的最好的JavaScript图书之一。”</p>
<p>看到这里，您有什么想法？没错。还记得小马过河的故事吗？无论是老黄牛，还是小松鼠，都有自己的角度和立场。因此，听别人的评论虽然能够大致了解一本书的内容，还是代替不了自己的判断。以我的经验，要购买一本自己感兴趣的、专注于某一技术领域的书，一是要听听网友的评论，二是仔细看一看书的目录，三是挑挑书的装帧，四是拿着书走向收银台（或者单击“放入购物车”按钮）。但是别忘了，对于一本外版书而言，译者也是中文版的第一读者。因此，听一听这位读者的看法也很重要（终于轮到我了，呵呵）。</p>
<p>作为译者，我来谈一谈自己对这本书的看法，供读者参考。</p>
<p>这本书在面向标准的Web编程领域是名副其实的扛鼎之作，也难怪它有些曲高和寡。全书的内容，都是作为一名专业的Web开发人员（或者真正的高手）所必须了解和掌握的高级知识，没一点多余的内容，洋洋550页中绝无浮华不实之辞。而且，书中对核心JavaScript原理的总结和概括（如常见陷阱、作用域链解析、闭包、面向对象等）、对最佳实践的倡导和践行（包括对面向未来的现代Web开发趋势的归纳和宣传，即脚本必须不唐突和增强而不是提供行为等）、对DOM规范讲解的提纲挈领（好像还没有哪本书这么详细地讲解过DOM）、对浏览器外部通信（Ajax）的反思与解决之道、对Web 2.0内容整合（Mashup）的分类与讲说等，无一不折射出这本书是作者博观约取、厚积薄发的心血力作。最后（最后说的往往最重要），如果你也醉心于Prototype、Base、jQuery、YUI、Ext、Mochikit、DOMAssitant、Interface、Script.aculo.us、Moo.fx等这些优秀的JavaScript库，不知道多少次被它们的魅力所倾倒，也想探微知著地真正理解这些库背后的工作原理，甚至于希望创建自己的库，那么这本书恰好适合你——一名JavaScript高手的需要，因为学习完这本书，你就会拥有自己跨平台的ADS库了（你必须Get your hands dirty——动手编写这个库的每一行代码），这还不够酷吗？应该说，本书是一本全景式的、沟通历史和未来的Web开发经典好书，是对现有JavaScript DOM程序开发最佳实践的一次大检阅和大放送，是推动Web标准化和向下一代Web开发挺进的里程碑式著作。而且，根据译者（就是我）的个人体会，这些话绝非溢美之辞，句句都言之有据，译者也愿意和读者就本书内容进行交流，互相学习。</p>
<p>然而，为什么在Amazon上本书不像DOM Scripting（中译本《JavaScript DOM编程艺术》，人民邮电出版社）那么广受关注，甚至大受欢迎呢——DOM Scripting有近60人评论，给1星的只有两人，3星三人，4星15人，其余均为5星？</p>
<p>比较了一下两书的内容，可以发现，DOM Scripting一书针对的是初学者，尤其是编程经验并不是很丰富的Web前端开发和设计人员，所以行文浅显，门槛比较低，而且学习曲线也非常平滑，对于这些读者，本书可以说是比较完美的。讲JavaScript非常好懂，而且字里行间渗透着现代的Web开发思想。这也是国内很多读者都嫌内容太浅的原因，他们往往都是已经有不少经验的程序员了。对于这些读者，本书才是他们真正想找的那本。我们有理由相信它会受到大家的欢迎。</p>
<p>这是我与图灵公司合作的第一本书，也是我最喜欢的一本书。在此，我要感谢刘江老师的热情邀请，感谢傅志红老师不厌其烦地回答我的问题和修改我的译稿，也感谢武卫东老师的悉心指导。当然，还要感谢本书的责任编辑杨爽，正是因为她创造性地与译者沟通，才使得本书在付梓前又消除了一些问题。不过，囿于个人水平和能力，翻译中的错误和不当之处在所难免。如果读者发现了书中的问题，请在我的个人网站http://www.cn-cuckoo.com中给予指出，或者将电子邮件发送到lsf.email[at]yahoo.com.cn。</p>
<p>译　者<br />
2008年2月于北京</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/05/16/the-preface-for-advanced-dom-scripting-212.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>书讯</title>
		<link>http://www.cn-cuckoo.com/2008/05/09/new-two-books-of-css-and-ajax-209.html</link>
		<comments>http://www.cn-cuckoo.com/2008/05/09/new-two-books-of-css-and-ajax-209.html#comments</comments>
		<pubDate>Fri, 09 May 2008 00:44:47 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/05/09/new-two-books-of-css-and-ajax-209.html</guid>
		<description><![CDATA[两本书已经出版了。欢迎有兴趣的读者浏览、试读（样章）、购买。欢迎提出宝贵建议和勘误意见。 《CSS Web站点设计手册》 【评 价】 (共 2 条) 参与评论 【作 者】Eric A. Meyer [同作者作品] [作译者介绍] 【译 者】 李松峰[同译者作品] 【丛 书 名】 Web开发技术系列丛书 【出 版 社】 机械工业出版社 【书 号】 9787111236443 【出版日期】 2008 年4月 本书针对初、中级读者，特别是针对人门级读者。书中包含了经过精心筛选的学习CSS必须要了解和掌握的所有内容。包括选择符与层叠、基本的CSS布局、前 景和背景属性、页面排版、外边距、内边距和边框的实用技术、样式化表格、设计打印样式表等。而且，全面介绍了CSS样式表的类型、如何有效地组合和管理样 式表、CSS中样式规则的冲突诊断和解决机制等内容，并在各个章节中穿插了很多实用性极强的提示和辅助信息。全书共包含60多个练习，加上配套光盘中提供 的完整的练习文件，帮助读者在实践中学习和掌握CSS的原理和技巧。本书作者Eric在CSS业内堪称大师级人物，这是他的唯一一本入门级的CSS书，也 是最新出版的一本书，可以说是作者厚积薄发、含英咀华的结晶。 昨天收到了样书。与《Ajax构建工具箱》相比，一是封面加了覆膜，“亮”了一些；二是插图采用了灰度图，感觉更自然了。通读了前2章，发现了1个错误，赶紧跑过来发出，以免误导读者： 第10页，CSS声明中的属性和值原文“分号（:）隔开”，应该是“冒号（:）隔开”。 抱歉！ 《Ajax构建工具箱指南》 【评 价】 (共 2 条) 参与评论 【原 书 名】 Ajax Construction Kit: Building Plug-and-Play [...]]]></description>
			<content:encoded><![CDATA[<p>两本书已经出版了。欢迎有兴趣的读者浏览、试读（样章）、购买。欢迎提出宝贵建议和勘误意见。</p>
<p><a href="http://www.china-pub.com/39720" title=" CSS Web站点设计手册" target="_blank"><img class="colorbox-209"  src="http://images.china-pub.com/ebook35001-40000/39720/zcover.jpg" title="http://images.china-pub.com/ebook35001-40000/39720/zcover.jpg" alt="http://images.china-pub.com/ebook35001-40000/39720/zcover.jpg" align="left" height="200" hspace="10" width="153" /></a></p>
<p style="font-size: 18px; font-weight: bold; color: red"><a href="http://www.china-pub.com/39720" title=" CSS Web站点设计手册" target="_blank">《CSS Web站点设计手册》</a></p>
<table style="margin-top: 16px" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td style="height: 19px">【评 价】                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                                  (共 <a href="http://www.china-pub.com/member/bookpinglun/viewpinglun.asp?id=39720" target="_blank">2</a> 条) <a href="javascript:cp();" onclick="newpl('newpldiv',this,39720);">参与评论</a></td>
</tr>
<tr>
<td>【作 者】<a href="http://www.china-pub.com/search/power_search/power_search.asp?key1=Eric+A.+Meyer" target="_blank">Eric A. Meyer <span>[同作者作品]</span></a>                                  <a href="javascript:moreup(39720,">[作译者介绍]</a></td>
</tr>
<tr>
<td>【译 者】                 <a href="http://www.china-pub.com/search/power_search/power_search.asp?key1=%c0%ee%cb%c9%b7%e5&amp;zyandor=and" target="_blank">李松峰[同译者作品]</a></td>
</tr>
<tr>
<td>【丛 书 名】 <a href="http://www.china-pub.com/search/power_search/power_search.asp?key1=Web%bf%aa%b7%a2%bc%bc%ca%f5%cf%b5%c1%d0%b4%d4%ca%e9" target="_blank"> Web开发技术系列丛书 </a></td>
</tr>
<tr>
<td>【出 版 社】 机械工业出版社                                      【书 号】 9787111236443</td>
</tr>
<tr>
<td>【出版日期】 2008 年4月</td>
</tr>
</table>
<p>本书针对初、中级读者，特别是针对人门级读者。书中包含了经过精心筛选的学习CSS必须要了解和掌握的所有内容。包括选择符与层叠、基本的CSS布局、前 景和背景属性、页面排版、外边距、内边距和边框的实用技术、样式化表格、设计打印样式表等。而且，全面介绍了CSS样式表的类型、如何有效地组合和管理样 式表、CSS中样式规则的冲突诊断和解决机制等内容，并在各个章节中穿插了很多实用性极强的提示和辅助信息。全书共包含60多个练习，加上配套光盘中提供 的完整的练习文件，帮助读者在实践中学习和掌握CSS的原理和技巧。本书作者Eric在CSS业内堪称大师级人物，这是他的唯一一本入门级的CSS书，也 是最新出版的一本书，可以说是作者厚积薄发、含英咀华的结晶。</p>
<p style="border: 1px dashed #aaaaaa; padding: 10px; background-color: #eeeeee">昨天收到了样书。与《Ajax构建工具箱》相比，一是封面加了覆膜，“亮”了一些；二是插图采用了灰度图，感觉更自然了。通读了前2章，发现了1个错误，赶紧跑过来发出，以免误导读者：  第10页，CSS声明中的属性和值原文“分号（:）隔开”，应该是“冒号（:）隔开”。  抱歉！</p>
<p><a href="http://www.china-pub.com/38119" title=" Ajax构建工具箱指南"><img class="colorbox-209"  src="http://images.china-pub.com/ebook35001-40000/38119/zcover.jpg" title="http://images.china-pub.com/ebook35001-40000/38119/zcover.jpghttp://images.china-pub.com/ebook35001-40000/39720/zcover.jpg" alt="http://images.china-pub.com/ebook35001-40000/38119/zcover.jpghttp://images.china-pub.com/ebook35001-40000/39720/zcover.jpg" align="left" height="200" hspace="10" width="153" /></a></p>
<p style="font-size: 18px; font-weight: bold; color: red"><a href="http://www.china-pub.com/38119" title=" Ajax构建工具箱指南 " target="_blank">《Ajax构建工具箱指南》</a></p>
<table style="margin-top: 16px" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td style="height: 19px">【评 价】                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                 <img class="colorbox-209"  src="http://images.china-pub.com/computers/common/image/art1.gif" height="12" width="13" />                                  (共 <a href="http://www.china-pub.com/member/bookpinglun/viewpinglun.asp?id=38119" target="_blank">2</a> 条) <a href="javascript:cp();" onclick="newpl('newpldiv',this,38119);">参与评论</a></td>
</tr>
<tr>
<td>【原 书 名】                                  <a href="http://www.amazon.com/Ajax-Construction-Kit-Plug-Play/dp/0132350084/ref=sr_11_1?ie=UTF8&amp;qid=1203990721&amp;sr=11-1" target="_blank"> Ajax Construction Kit: Building Plug-and-Play Ajax Applications </a></td>
</tr>
<tr>
<td>【原出版社】 <a href="http://www.china-pub.com/search/power_search/power_search.asp?key1=Prentice+Hall+PTR" target="_blank"> Prentice Hall PTR </a></td>
</tr>
<tr>
<td>【作 者】<a href="http://www.china-pub.com/search/power_search/power_search.asp?key1=%28%c3%c0%29Michael+Morrison" target="_blank">(美)Michael Morrison <span>[同作者作品]</span></a>                                  <a href="javascript:moreup(38119,">[作译者介绍]</a></td>
</tr>
<tr>
<td>【译 者】                 <a href="http://www.china-pub.com/search/power_search/power_search.asp?key1=%c0%ee%cb%c9%b7%e5%3b%b3%cc%b1%a6%bd%dc&amp;zyandor=and" target="_blank">李松峰;程宝杰[同译者作品]</a></td>
</tr>
<tr>
<td>【丛 书 名】 <a href="http://www.china-pub.com/search/power_search/power_search.asp?key1=Web%bf%aa%b7%a2%cf%b5%c1%d0%b4%d4%ca%e9" target="_blank"> Web开发系列丛书 </a></td>
</tr>
<tr>
<td>【出 版 社】 机械工业出版社                                      【书 号】 9787111229391</td>
</tr>
<tr>
<td>【出版日期】 2008 年1月</td>
</tr>
</table>
<p>听说过大名鼎鼎的Ajax吗？知道怎样用它来提升网站的可用性、交互性、响应及时性，并使网站更成功吗？即使你从未写过一行脚本代码，本书也能马上让 Ajax开始为你效力！只要掌握一些基本的要点、试验几个例子，然后运行Live CD就可以从中找出你需要的“即插即用”式代码。 在本书讲解的应用程序中，不落俗套的新意和惊喜随处可见。而通过作者的悉心指导，你会逐步加深对每个应用程序示例的理解，学会如何自定义、扩展并重用这些 应用程序；甚至掌握自己重新开发新应用程序的技能。好了，让我们与专家同行吧！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/05/09/new-two-books-of-css-and-ajax-209.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>帮GWT好书找译者</title>
		<link>http://www.cn-cuckoo.com/2008/03/14/consult-for-translator-for-google-web-toolkit-solutions-207.html</link>
		<comments>http://www.cn-cuckoo.com/2008/03/14/consult-for-translator-for-google-web-toolkit-solutions-207.html#comments</comments>
		<pubDate>Fri, 14 Mar 2008 03:24:25 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>
		<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/03/14/consult-for-translator-for-google-web-toolkit-solutions-207.html</guid>
		<description><![CDATA[Google Web Toolkit Solutions: More Cool &#38; Useful Stuff Paperback: 408 pages Publisher: Prentice Hall PTR; 1 edition (November 17, 2007) Language: English ISBN-10: 0132344815 ISBN-13: 978-0132344814 本书简介： 前沿GWT：Java开发者必备高级技巧 Google Web Toolkit (GWT)是一种开源的Java框架，用于构建Ajax驱动的Web应用程序。通过GWT，开发者可以通过纯Java来实现丰富的客户端应用。并且编程方式是熟悉的AWT、Swing和SWT方式，而不是典型的JavaScript、HTML、CSS和XMLHttpRequest“大杂烩”的方式。在简化开发能够运行于各种浏览器中的、类似于桌面应用程序的客户端应用方面，GWT超过了大多数Ajax框架。这里，局限用户界面的丰富性的唯一因素就是开发者的想像力。 &#160; This book focuses on the more advanced aspects of GWT that you need to implement real-world applications with rich user interfaces [...]]]></description>
			<content:encoded><![CDATA[<p><img class="colorbox-207"  src="http://ecx.images-amazon.com/images/I/51HsbdhJnbL._BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" title="http://ecx.images-amazon.com/images/I/51HsbdhJnbL._BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="http://ecx.images-amazon.com/images/I/51HsbdhJnbL._BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" align="left" height="240" width="240" /><strong class="sans"><span id="btAsinTitle">Google Web Toolkit Solutions: More Cool &amp; Useful Stuff </span></strong></p>
<ul>
<li><strong>Paperback:</strong> 408 pages</li>
<li><strong>Publisher:</strong> Prentice Hall PTR; 1 edition (November 17, 2007)</li>
<li><strong>Language:</strong> English</li>
<li><strong>ISBN-10:</strong> 0132344815</li>
<li><strong>ISBN-13:</strong> 978-0132344814</li>
</ul>
<p><strong>本书简介： </strong></p>
<p>前沿GWT：Java开发者必备高级技巧</p>
<p style="margin: 0px"> Google Web Toolkit (GWT)是一种开源的Java框架，用于构建Ajax驱动的Web应用程序。通过GWT，开发者可以通过纯Java来实现丰富的客户端应用。并且编程方式是熟悉的AWT、Swing和SWT方式，而不是典型的JavaScript、HTML、CSS和XMLHttpRequest“大杂烩”的方式。在简化开发能够运行于各种浏览器中的、类似于桌面应用程序的客户端应用方面，GWT超过了大多数Ajax框架。这里，局限用户界面的丰富性的唯一因素就是开发者的想像力。<span id="more-207"></span></p>
<p style="margin: 0px">&nbsp;</p>
<p style="margin: 0px">This book focuses on the more advanced aspects of GWT that you need to implement real-world applications with rich user interfaces but without the heavy lifting of JavaScript and other Ajax-related technologies. Each solution in this practical, hands-on book is more than a recipe. The sample programs are carefully explained in detail to help you quickly master advanced GWT techniques, such as implementing drag-and-drop, integrating JavaScript libraries, and using advanced event handling methodologies.</p>
<p style="margin: 0px">&nbsp;</p>
<p style="margin: 0px">Solutions covered include</p>
<p style="margin: 0px">•   Building custom GWT widgets, including both high-level composites and low-level components</p>
<p style="margin: 0px">•   Implementing a viewport class that includes iPhone-style automated scrolling</p>
<p style="margin: 0px">•   Integrating web services with GWT applications</p>
<p style="margin: 0px">•   Incorporating the Script.aculo.us JavaScript framework into GWT applications</p>
<p style="margin: 0px">•   Combining Hibernate and GWT to implement database-backed web applications</p>
<p style="margin: 0px">•   Extending the GWT PopupPanel class to implement a draggable and resizable window</p>
<p style="margin: 0px">•   Creating a drag-and-drop module, complete with drag sources and drop targets</p>
<p style="margin: 0px">•   Deploying GWT applications to an external server</p>
<p style="margin: 0px">•   Dynamically resizing flex tables</p>
<p style="margin: 0px">•   Using GWT widgets in legacy applications developed with other frameworks, such as Struts and JavaServer Faces</p>
<p style="margin: 0px">&nbsp;</p>
<p style="margin: 0px"><strong>Complete Sample Code Available at www.coolandusefulgwt.com</strong></p>
<p style="margin: 0px">&nbsp;</p>
<p style="margin: 0px">All of the code used in this book has been tested, both in hosted and web modes, and in an external version of Tomcat (version 5.5.17), under Windows, Linux, and Mac OS X. For Windows and Linux, we used 1.4.60, and for the Mac we used 1.4.61.  NOTE: There are three separate versions of the code. Please download the correct JAR file for the operating system you are using.</p>
<p style="margin: 0px">Foreword xiii</p>
<p style="margin: 0px">Preface xvi</p>
<p style="margin: 0px">Acknowledgments xviii</p>
<p style="margin: 0px">About the Authors xix</p>
<p style="margin: 0px">&nbsp;</p>
<p style="margin: 0px">Solution 1: GWT Fundamentals and Beyond 1</p>
<p style="margin: 0px">Solution 2: JavaScript Integration 53</p>
<p style="margin: 0px">Solution 3: Custom Widget Implementation 71</p>
<p style="margin: 0px">Solution 4: Viewports and Maps 103</p>
<p style="margin: 0px">Solution 5: Access to Online Web Services 133</p>
<p style="margin: 0px">Solution 6: Drag and Drop 167</p>
<p style="margin: 0px">Solution 7: Simple Windows 199</p>
<p style="margin: 0px">Solution 8: Flex Tables 237</p>
<p style="margin: 0px">Solution 9: File Uploads 283</p>
<p style="margin: 0px">Solution 10: Hibernate Integration 303</p>
<p style="margin: 0px">Solution 11: Deployment to an External Server 325</p>
<p style="margin: 0px">Solution 12: GWT and Legacy Code 343</p>
<p>Index 371</p>
<p style="margin: 0px">&nbsp;</p>
<p><strong>关于作者：</strong></p>
<p style="margin: 0px"><strong>David Geary </strong>is the author of eight books on Java technology, including the bestselling <em>Graphic Java 2 Series</em>, <em>Advanced JavaServer Pages</em>, and <em>Core JavaServer Faces </em>(all from Prentice-Hall). David was a member of Sun’s Expert Groups for the JavaServer Pages Standard Template Library (JSTL), and JavaServer Faces (JSF) 1.0. He also was the second Apache Struts committer and the inventor of the Struts Template Library, the precursor to the popular Tiles open-source framework for composing web pages from JSP fragments. David wrote questions for Sun’s Web Developer Certification Exam and is the president of Clarity Training Inc., a training and consulting company focusing on server-side Java technology.</p>
<p style="margin: 0px">&nbsp;</p>
<p style="margin: 0px"><strong>Rob Gordon </strong>is an independent consultant specializing in the design and implementation of enterprise systems. He is a former Sun developer and author of <em>Essential JNI </em>and coauthor of <em>Essential JMF</em>.</p>
<p style="margin: 0px">&nbsp;</p>
<h2>注意：</h2>
<p style="padding: 1em; background: #034ea2 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: white">理解Google Web Toolkit及Ajax架构并愿意翻译这本书的朋友，请与华章公司陈冀康主任联络，商谈翻译事宜：<br />
cjk[at]hzbook.com<br />
chenjikang[at]hotmail.com<br />
010-88379512</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/03/14/consult-for-translator-for-google-web-toolkit-solutions-207.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>有奖征集译者喽</title>
		<link>http://www.cn-cuckoo.com/2008/03/03/find-good-translator-188.html</link>
		<comments>http://www.cn-cuckoo.com/2008/03/03/find-good-translator-188.html#comments</comments>
		<pubDate>Mon, 03 Mar 2008 13:32:31 +0000</pubDate>
		<dc:creator>为之漫笔</dc:creator>
				<category><![CDATA[好书]]></category>

		<guid isPermaLink="false">http://www.cn-cuckoo.com/2008/03/03/find-good-translator-188.html</guid>
		<description><![CDATA[The Essential Guide to Dreamweaver CS3 with CSS, Ajax, and PHP 亚马逊五星级好书，面向初中级读者，介绍了Dreamweaver CS3的方方面面，堪称一本权威指南。 作者David Powers的其他畅销书还有《Foundation PHP for Dreamweaver 8》 和《PHP Solutions: Dynamic Web Design Made Easy》。 希望懂Web开发技术、有翻译经验，特别是有责任心的译者抓紧时间报名。合作成功者可随意挑选一本我的译作（见页眉“Home”主页链接右侧）相赠。报名方式，留言（一定要留下Email）。 目录 Chapter 1: Dreamweaver CS3Your Creative Partner Chapter 2: Building Dynamic Sites with Ajax and PHP Chapter 3: Getting the Work Environment Ready Chapter 4: Setting Up a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="colorbox-188"  src="http://ecx.images-amazon.com/images/I/51AL2S9gJPL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg" title="http://ecx.images-amazon.com/images/I/5103I3ccjoL._BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="http://ecx.images-amazon.com/images/I/5103I3ccjoL._BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" align="left" height="240" width="240" /><a href="http://www.amazon.com/Essential-Guide-Dreamweaver-CS3-Ajax/dp/1590598598" title="http://www.amazon.com/Essential-Guide-Dreamweaver-CS3-Ajax/dp/1590598598" target="_blank"><strong class="sans"><span id="btAsinTitle">The Essential Guide to Dreamweaver CS3 with CSS, Ajax, and PHP</span></strong></a></p>
<p>亚马逊五星级好书，面向初中级读者，介绍了Dreamweaver CS3的方方面面，堪称一本权威指南。</p>
<p>作者David Powers的其他畅销书还有《<a href="http://www.amazon.com/Foundation-PHP-Dreamweaver-David-Powers/dp/1590595696/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1204550522&amp;sr=1-2" title="http://www.amazon.com/Foundation-PHP-Dreamweaver-David-Powers/dp/1590595696/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1204550522&amp;sr=1-2" target="_blank"><strong class="sans"><span id="btAsinTitle">Foundation PHP for Dreamweaver 8</span></strong></a>》 和《<a href="http://www.amazon.com/PHP-Solutions-Dynamic-Design-Made/dp/1590597311/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1204550522&amp;sr=1-3" title="http://www.amazon.com/PHP-Solutions-Dynamic-Design-Made/dp/1590597311/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1204550522&amp;sr=1-3" target="_blank"><strong class="sans"><span id="btAsinTitle">PHP Solutions: Dynamic Web Design Made Easy</span></strong></a>》。</p>
<p>希望懂Web开发技术、有翻译经验，特别是有责任心的译者抓紧时间报名。合作成功者可随意挑选一本我的译作（见页眉“Home”主页链接右侧）相赠。报名方式，留言（一定要留下Email）。</p>
<h3> 目录</h3>
<ul>
<li>Chapter 1: Dreamweaver CS3Your Creative Partner</li>
<li>Chapter 2: Building Dynamic Sites with Ajax and PHP</li>
<li>Chapter 3: Getting the Work Environment Ready</li>
<li>Chapter 4: Setting Up a PHP Site</li>
<li>Chapter 5: Adding a Touch of Style</li>
<li>Chapter 6: Creating a CSS Site Straight Out of the Box</li>
<li>Chapter 7: Building Site Navigation with the Spry Menu Bar</li>
<li>Chapter 8: Sprucing Up Content with Spry Widgets</li>
<li>Chapter 9: Building Online Forms and Validating Input</li>
<li>Chapter 10: Introducing the Basics of PHP</li>
<li>Chapter 11: Using PHP to Process a Form</li>
<li>Chapter 12: Working with PHP Includes and Templates</li>
<li>Chapter 13: Setting Up MySQL and phpMyAdmin</li>
<li>Chapter 14: Storing Records in a Database</li>
<li>Chapter 15: Controlling Access to Your Site</li>
<li>Chapter 16: Working with Multiple Tables</li>
<li>Chapter 17: Searching Records and Handling Dates</li>
<li>Chapter 18: Using XSLT to Display Live News Feeds and XML</li>
<li>Chapter 19: Using Spry to Display XML</li>
<li>Chapter 20: Getting the Best of Both Worlds with PHP and Spry</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.cn-cuckoo.com/2008/03/03/find-good-translator-188.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

