《Solaris应用程序设计》书评

受朋友托,为《Solaris应用程序设计》写一个书评。因为只负责翻译了一章,所以算不得自评,呵呵 ...


许多读者看到“某某等”译的书籍,心中对其就分数大减。对这本书,各位看官只管放心。本书是Sun中国工程研究院的若干同事集体翻译的(我承担的是第七章的翻译),同时每一章都有另外两位同事对其进行评审和校订,自信有很好的专业保证和翻译质量。这本书是最新的Solaris应用开发指南,涵盖了各方面的知识且具有相当的深度,的确是不可多得的一本好书。

和大多国内的Solaris/OpenSolaris爱好者(包括同在国内的许多同事)一样,我也是从Linux转入到Solaris开发的。 Solaris的开发环境,包括编译器、调试器以及许多实用工具,与Linux相较都有所不同。回想刚入职时,主要是向前辈请教和自己摸索,知识点亦分散在不同的文档中。而这本书对此有全面的介绍,并且包括了许多最新的内容。试想如果当初有这本书作为入门指导,学习起来一定事半功倍。本书的重心是介绍如何在Solaris上开发高性能的应用。将应用开发中有关性能优化的各个侧面,都一一展现给读者。对于一个严肃的Solaris应用开发程序员,这真是一本必读的开发指南。对于非Solaris平台上应用的性能优化,亦有一定的参考价值。

“我用Linux好好儿的,干嘛要用Solairs/OpenSolaris?”,这可能是你心中一个大大的问号。严格来说,你使用的是 Gnu/Linux系统,Linux只是kernel。你所依赖的,更多的是Gnu系统,而不是Linux kernel。Solairs(特别是OpenSolaris),除了kernel,C库和一些实用程序,和众多的Linux发行版也没太大差别。UltraSparc T1/2 + Solaris/OpenSolairs,对于Web应用的部署和运营来说,真可谓是一个梦幻平台。最新的UltraSparc T2芯片,有8核且每核8线程,操作系统所见的“虚拟”CPU有64个之多,并且内存访问的带宽巨大,而功耗很低,它甚至还是
一个开源的芯片。 X86/64平台上的Solairs,同样也表现不俗,DTrace、ZFS、Virtualization等业界领先的特性,都对你的应用部署和维护,提供了强大的支持。再加上MySql刚刚加入Sun的大家庭,可以预见SAMP平台将有非常好的应用前景。

这本书的翻译,除个别段落有些生涩或小的错误外,总体十分流畅。唯一遗憾的地方是,出版社没有采用“页页对译”的方式,所以附录的索引就丢掉了,对于一本需要时常查阅的工具书来说,十分可惜。这似乎是出版社的惯例,之前的Solaris Kernel Internals也是如此。

"Solaris Application Programming"的中文版出版在即

"Solaris Application Programming"的中文版《Solaris应用程序设计》,终于出版在即了。这本书是由ERI的若干同事集体翻译的(我承担的是第7章的翻译),同时每一章都有另外两位同事对其进行评审和校订,相信有很好的专业和质量保证。这本书是最新的Solaris应用开发指南,涵盖了各方面的知识且具有相当的深度,的确是不可多得的一本好书。

我书架上的C++书籍

个人很喜欢买书,因为深受过买不到绝版书的痛苦,所以自己虽然买回来从头看到尾的不多,但也买回来藏着。上图是我历年来购买的C++的书籍,这还不包括"The C++ Programming Language"以及"C++ Primer"这样的百科大全,以及其例如"Advanced Corba Programming with C++","Data Structure and Algorithm Analysis with C++","XML programming with C++"这样特定领域的C++书籍,更不消说久以前的MFC书籍了。其中也有若干是在特价时买的。这一匣书,大约占我家里现存各种书籍的4%,所以总共也就千余册,值数万元。

《货币战争》你读了么?

经朋友的推荐,我去买了一本早已畅销多时的书──《货币战争》。一口气读完了,真是心惊肉跳。

原来英格兰银行是私有银行啊,连美联储也不例外(也有很多人对此进行了反驳),而这两国的政府居然无权发行货币,需要将国家的赋税作为抵押从银行借贷,再由银行来发行。书中还描写了这些国际银行家是如何操纵国际金融市场(甚至环保都不放过),来牟取巨额利润的。

然后去豆瓣上看了看大家的书评,有推崇备至的,也有不屑一顾的。不过对我这种金融门外汉来说,读过一遍还是很有收获的。

人类获得自由和解放的路途还很遥远啊!

本书作者的blog:http://currencywar.blog.hexun.com

《Programming Ruby 第二版 - 中文版》勘误

非常感谢广大读者朋友的指正,特别要感谢dreamhead!为了系统地管理本书的勘误表,将目前收集到的、和我自己发现的错误(未加感谢的部分,而应向各位读者致歉的各项错误),列在下面。

第xxii页,目录,附录
- 附录A Socket库 ... 653
+ 附录A Socket库 ... 763
感谢: kurt14204

第7页,第1章,1.2.2节
你也可以用Unix的 "shebang" 符号作为程序文件的第一行。
译注:"shebang" 取自 "#!" 的读音,"sharp-bang",作为脚本文件的第一行,用于指示执行该脚本的解释器。

第8页,第1章,1.3节
- 输入ir-c可以找到ri文档中的所有类的列表
+ 输入ri -c可以找到ri文档中的所有类的列表
感谢: anthrax

第15页,第2章,中间段落
- 如果表达式只是一个全局实例或类变量,则不需要提供花括号。
+ 如果表达式只是一个全局、实例或类变量,则不需要提供花括号。
感谢: anthrax

- puts "#$greeting,#$name"
+ puts "#$greeting,#@name"
感谢: hcc4hcc

第37页,第3章,倒数第4行
- "protected" 和 "private" 之前的区别很微妙
+ "protected" 和 "private" 之间的区别很微妙
感谢: kgo_yoi

第47页,第4章,第3行
- 更重要的是hash不支持多个键对应一个相同的值。
+ 更重要的是hash不支持重复的键(key)。
原文为: hash does not support multiple entries where the keys have the same value.
感谢: aqieee

第67页,第5章,5.3节,倒数第15行

#'
 * @volume
'#' * @volume
感谢:anthrax

第83页,第6章,正文第二段
- 如果你在一个正规参数前加上星号,那么传入这个方法调用的多个参数将会被装入一个数组。
+ 如果你在一个形参前加上星号,那么传入这个方法调用的多个参数将会被装入一个数组。
感谢:zgleo

脚注5
- Conrad Schneiker提醒我们世界上有类人:会数数和不会数数的。
+ Conrad Schneiker提醒我们世界上有类人:会数数和不会数数的。
估计文字编辑不够幽默 :)

第99页,第7章,正文最后一段
- 放弃了多态的好处,并把重构的福音带到你的耳侧。
+ 居然舍弃多态的种种好处而不用,就让重构的“福音”降至到你的耳旁吧。
感谢:anthrax 

第111页,第8章,代码第4行
- Errno::EWOULDBLOCK::Errno  --〉 5
+ Errno::EWOULDBLOCK::Errno  --〉 35
感谢:anthrax

第133页,第10章,10.4节标题
- 谈谈网络
+ 访问网络
原文为: Talking to Networks

第163页,第13章,13.1节
- Ruby -r debug [调试选项] [程序文件] [程序参数]
+ ruby -r debug [调试选项] [程序文件] [程序参数]
word的自动将首字母大写的功能,真是很恼人!
感谢: dreamhead

第179页,第14章,14.1.1节
- kcode可能是日语的一个编码:
+ kcode可能是日语的某种编码:

第233页,第17章,17.4节
- 妈妈现在很快乐,是去尝试一下她最近张贴菜谱的时候了。
+ 妈妈现在很快乐,是时候去尝试一下她最近张帖的菜谱了。

第229页,第17章,17.4.8节
- 最后但肯定不是至少
+ 最后但同样重要的是,
原文为: Last but certainly not least
感谢: dreamhead

第330页,第22章,22.4.1节
- 常量可以在方法体外定义
+ 常量不可以定义在方法内
原文为: Constants may not be defined in methods.
感谢: dreamhead

第346页,第22章,22.6节
- Methodname还可以以问号(?)……
+ methodname还可以以问号(?)……
这里methodname指的是上面的提到的符号,所以,应该小写。

-方法定义可能不包含类或模块定义。
+方法定义不可以包含类或模块定义。
原文为: Method definitions may not contain class or module definitions.
感谢: dreamhead

第413页,第26章,26.5.2节
- 我们有主程序mail.rb
+ 我们有主程序main.rb
感谢: dreamhead

第416页,第26章,26.6.2节,脚注2
- YAML代表“YAML不是标记语言”��但这并不重要。
+ YAML代表“YAML Ain't Markup Language",但这并不重要。
译注:类似GNU(GNU's Not Unix),YAML也是一个递归定义。

第418页,第26章,26.7节,
- 同时,如果你喜欢Sun的JavaSpaces样子(JINI架构的基础),你可能有兴趣了解drb是以一个短小的模块来发行的,它完成类似的事情。
+ 同时,如果你喜欢Sun的JavaSpaces的模样(JINI架构的基础),你可能会有兴趣知道,drb的发布中还附有一个短小的模块,也完成类似的事情。

第423页,第27章,each的说明
- Strin#each的参数具有默认值
+ String#each的参数具有默认值
感谢: dreamhead

注:本blog页将持续保持更新,新的勘误将直接添加,而不再创建新的blog页。

《Programming Ruby 第二版》中文版终于面市了!

和广大的读者一样,我也在翘首期盼这本译作的面市,从出版社方面得到的消息,这本书将肯定在本周面市,于是我每天都要到china-pub和dearbook上看看,是否已经从期书或预定变为可出售的状态。今天下午终于在china-pub看到,这本书已经可以购买了。终于松了一口气,呼呼。

每次都是收到出版社的样书,一两天后才会面市,不过这次我们还没收到样书呢。可见,出版社也是很急迫了,不过已经被读者骂惨了 :(

Programming Ruby 第二版中文版样章上线

http://book.csdn.net/bookfiles/271/index.html


由于预告的太早,网上已经骂声一片了。出版社原本是打算从网上公开招募译者的,但是未能如愿。我们几个译者是6月份开始着手翻译的,准备10月初交稿,但我当时已经知道是不可能在9月份出版的。6月份的世界杯,的确影响了当时的进度。每译好一章,就由译者先草校一遍;每完成一部分,就提交给出版社以并行进行校订。10月中旬全部完成译稿。12月底和技术编辑方舟完成全书的二校。同步地在1月初完成全书的排版和文字校订,1月底并出胶片送审。这本书翻译的进度稍有超出,但也就在一两周之内。通常,一本400页左右的书,如果是一位译者翻译,从翻译校订到出版的周期是7个月左右。据我所知,另一家出版社的《Ruby For Rails》和我们基本上同期(06年6月下旬)开始翻译,并同期完成初稿(06年9月底),现在还没看到预告呢。这并非是要贬损对方,只是想说明要译好一本书,是件十分艰苦的工作。

这里附上本书的译者序: 

关于Ruby语言及相关技术,非常感谢孟岩兄和熊节兄在前面所做的精辟入里的分析与推荐,这里就不再赘述了。相信您读了之后,一定是已经怦然心动而跃跃欲试了。

借此机会,我们还要感谢许多人。

首先要感谢博文视点公司引进此书,并将如此重要的一部书交托给我们来翻译,希望能幸不辱命。也要感谢本书的两位编辑方舟和陈元玉,没有二位认真、辛苦的工作,本书不可能有现在的翻译质量。我们也从他们的技术和文字校订中学到了很多。

另外译者也要相互感谢一下。在本书翻译的四个月期间,姚延栋刚做了父亲,张海峰也是家有幼子,并开始了新的职业征途,但两位都竭力保证了翻译的进度和质量。孙勇则不辞辛苦地对全书进行了统稿。当然,一定要感谢家人对我们的宽容和理解。

由于译者对Ruby语言也是新学,水平有限,难免在译稿中存有这样那样的错误。如果您有技术或文字方面的问题,欢迎致信progruby.cn@gmail.com,我们会尽力帮您解答。

"Agile Java 中文版" 开始预定了

涂波和我翻译的"Agile Java 中文版 —— 测试驱动开发的编程技术"在china-pubdearbook开始预定了。六月中旬应该可以面市。翻译这个事儿真是很累人。英文读起来不难,但是要把原文比较贴切地翻译出来,真是要费一番脑筋。我负责翻译了本书从第十一章开始的后半部分。希望本书的翻译质量能让读者满意。

今天的好消息

今天收到了两个好消息,一是我独立翻译的第一本Java工具书 "Struts Kick Start 中文版"
要第二次印刷了,也就是说第一刷的6000册售完了,我的第二部分稿费也有眉目了 :)。另一个好消息是,我和蔡云志合译的 "Mastering JavaServer Faces 中文版" 今天要制作胶片了,出版在即了。呵呵。