这个事儿有点意思,真假未知中——不过,当作个笑话看也未尝不可。

事件的前因后果是这样的:

最近,总部位于挪威奥斯陆的、国际领先的浏览器制造商Opera公司,因为预见Opera Mini(为手机用户节省流量的服务)Opera Turbo(提供全网加速功能的服务)以及Opera Link(支持用户数据实时同步的服务)的访问量将会激增,批准了一项价值百万克朗(100克朗兑换106元人民币)的服务器采购计划。

于是,众多知名服务器厂商应邀把服务器样机发到Opera公司参加竞标测试。然而,来自一家国际一流厂商的服务器把包括CSS之父、Opera公司首席技术官Håkon Wium Lie博士在内的所有测试人员全部当场雷倒,造成了几乎到手的百万元大单顷刻间付之东流。

到底是为什么呢?原来,当测试人员启动这家厂商的服务器,并使用Opera浏览器打开管理页面时,却被直接重定向到了错误页面。当然,这只是问题的表面而已。重定向嘛,不是服务器端脚本所为,就是客户端脚本的杰作。经过简单查找,现场人员发现管理页面的源代码中赫然写着如下一行JavaScript代码:

if (is.opera) { window.location.href=”config/error.htm”; }

把这行代码翻译成人类语言就是:如果查看当前页面的是Opera浏览器,就在窗口地址栏中打开config目录下的error.htm页面!

呵呵,居然胆敢如此歧视Opera浏览器,就算制造商再牛,服务器再好,搁谁那里都没有通过“测试”的道理呀。就因为这一行代码,丢掉百万元大单,称其为史上最贵的JavaScript代码,应该不为过了。

(据说,这行代码是经销商所为;而这家国际一流服务器厂商也未公开,待查中。消息来源cnBeta.com

Google最近发布了集成Android OS的LiveCD,操作系统目前版本为0.2。对于没有Google手机的用户而言,现在也可以通过PC,或者虚拟机来体验这款“千呼万唤始出来”的移动操作系统了。

所谓LiveCD,就是一张位于光盘上的完整的操作系统。Google提供的LiveAndroid是一个ISO文件,下载以后可以将其虚拟到一个光驱中,然后在虚拟计算机里选择该光驱为启动盘,就可以启动Google Android OS了;或者,如果有刻录机,也不嫌麻烦,当然也可以将这个ISO文件刻录成光盘,放在光驱里,然后重新启动计算机,选择从该光驱启动,也可以进入Google Android OS。很简单——这就是LiveCD!

我使用的是前几天下载的VirtualBox 3.0.2(http://www.virtualbox.org/wiki/Downloads),这是一款开源的虚拟机软件,只有67.8MB。安装、设置、启动,都非常简单,不用说了。我为Android新建的“电脑”配置为内存256MB,硬盘2.0G,呵呵,对于一款手机操作系统而言,这算不算奢侈啊?

然后,从LiveAndroid的站点(http://code.google.com/p/live-android/)下载torrent文件(BT种子)。使用迅雷下载这个liveandroidv0.2.iso,文件大小为174MB,我家是1M的ADSL,用时大约40分钟——这段时间里,我安装VirtualBox并新建了虚拟电脑,而且还在Google Translator Toolkit中简单翻译了一下LiveAndroid的README(自述文件——附后)。

好了,上截图吧。第一张,启动VirtualBox后
android_virtualbox

第二张,启动虚拟电脑
android_virtualbox_startup
查看全文 »

先说明一下,现如今林林总总的外版计算机图书中所提到的大师,大概对应的是英文中的guru,意思是“专家、权威、领袖人物、带头人、导师”;泛指在某一领域中有相当建树,而且其成就为世人所公认的一位牛人。

为什么要推荐Eric Meyer的书呢?因为本身是技术专家,同时写书又能写得很浅显易懂的人并不多见(相反,技术高手,写书写不好的倒是常见得很),而Eric Meyer正是这样一位兼具技术和写作天才的人物。说了半天,Eric Meyer是谁呢?他是最负盛名的世界级HTML和CSS专家,W3C CSS&FP工作组成员W3C CSS测试套件的负责人,拥有10多年Web开发和设计经验。简单地说,他就是CSS标准的制定者之一。如果你知道CSS,但没有看过Eric Meyer写的CSS书,那么你的CSS知识结构一定是不完整的,或者说基础一定是不扎实的——夸张一点讲,就像你自认为掌握了一门技术,但实际上并没有得到真传一样!

如前所述,推荐Eric Meyer的书主要有两点理由:首先,他是CSS的制定者之一,对CSS的各方面细节以及所有属性的来龙去脉都了如指掌,因此他讲起CSS来,可以说是如数家珍、透彻明白。其次,他的写作水平绝对一流,各种复杂、难懂的CSS技术细节,甚至大部分CSS书根本不会涉及到的属性,在他的笔下都被描述得栩栩如生、异常清晰。

但是,Eric Meyer的书也有一个“缺点”,那就是行文不加丝毫粉饰的同时,给自己的书配备的插图却非常简单朴素,没有那么光鲜漂亮。无论是他的权威经典著作CSS: The Definitive Guide(中文版《CSS权威指南(第三版)》),还是以理论与实战结合见长的Eric on CSS(中文版《Eric谈CSS卷一》)及More Eric on CSS(中文版《Eric谈CSS卷二》),亦或他唯一一本面向CSS初学者的CSS Web Site Design(中文版《CSS站点设计手册》),概莫能外,全都是简单、直观的插图——虽然这些插图足以、也能够非常典型地说明、演示上下文所要讲解的技术细节,然而,跟其他年轻CSS技术书作者精心设计的插图相比,确实不那么容易吸引那些喜欢蜻蜓点水、拂光掠影的年轻CSS学习者的眼球。

想想也在情理之中,毕竟CSS是讲表现、外观和样式的,如果CSS书的插图不漂亮、不吸引人,怎么让人相信你讲的技术能做出漂亮的网页来呢?然而,不是有那么句话嘛——真理都是赤祼裸的,Eric Meyer书中那些丝毫没有粉饰的插图,似乎就在那里无言地宣称:喜欢真理的人,请走过来;害怕真理的人,请你走开!

事实上,我翻译过CSS: The Definitive Guide的全书(第2版),看过他的Eric on CSS系列,给我的感觉是,他的书只能用“权威”两个字来形容。换句话说,你所有关于CSS的疑问,都可以在他的书中找到完美的,或者不完美但却很合理的答案。最后,我想对CSS初学者,甚至中、高级水平的CSS技术人员说,如果你还没有看过Eric Meyer的书,我相信你早晚都需要补上这一课;因为即使市面上的CSS书再多,即便网上各类CSS免费教程再丰富,也找不出一本书、一个站点的资源能够与他的书相媲美!

因此,我推荐Eric Meyer的CSS权威著作。

注:最近,陆续收到读者来信,询问《jQuery基础教程》目前是第几次印刷。今在此一并回复:目前市面上销售的《jQuery基础教程》均为第4次印刷。为方便第1次印刷的读者,下面将第3次印刷时添加的“译者附注”公布于下,希望能对读者朋友有所帮助。

第3次印刷译者附注

本书自出版以来,受到了广大读者的热烈欢迎。本次印刷对第1次印刷中发现的错误和不妥之处进行了修订。同时,针对读者反馈中比较有代表性的问题,特作如下说明。

1. jQuery版本变化对本书的影响

本书英文原版在写作时,jQuery的最新版本是1.1。到了中文版出版时,jQuery 1.2已经发布了。由于新版本中的一些特性发生了变化,导致本书少量内容与新版本不一致,而且个别示例在新版本下不能运行。其中,主要是jQuery 1.2取消了对XPath选择符的支持(原因是XPath选择符可能会导致性能问题)。为确保使用新版本jQuery的读者能正常运行本书相关示例,现给出两种解决方案:第一种是继续使用XPath选择符,但必须下载Basic XPath插件,下载地址是http://plugins.jquery.com/project/xpath。插件实际上也是一段jQuery脚本,使用时把它贴到你自己编写的jQuery代码前面即可。这样,你的jQuery代码就可以支持XPath选择符了。第二种就是避免使用XPath选择符。对于本书个别示例中使用的XPath选择符,可以尝试把它们修改为其他等效的选择符——例如,把$(‘tr:not([th])’)修改为$(‘tr:not(:has(th))’)。

2. 阅读本书的背景知识

本书作为介绍流行JavaScript库——jQuery的全球第一部著作,内容丰富、通俗易懂,深受广大读者的喜爱,是学习jQuery的必读图书。但是,由于少数读者对HTML、CSS、JavaScript以及DOM的相关知识掌握还不十分全面,造成了在理解本书个别示例时的困难。如果读者感觉自身还缺少某方面的基础知识,可以结合相关技术书籍和本书共同学习,互为参考,以达到齐头并进的学习效果。在此,推荐人民邮电出版社出版的下列图书。

3. 推荐两个实用的小技巧

(1)有读者反映,在将示例中的提示换成中文时,在某些浏览器中显示不正常——显示乱码。这是一个在学习外版书时普遍存在的问题。由于国外作者保存示例代码文件(.js)或网页文件(.html)时,通常默认采用ANSI编码,而这种编码只支持西方字符。因此,如果要在代码或示例中使用中文,一定要记住把这个文件另存为UTF-8编码格式。

(2)从jQuery 1.2开始,Google为jQuery提供了CDN(Content Delivery Network,内容分发网络)支持,以便用户的浏览器从位于全球各地的Google服务器上就近加载jQuery。这是目前使用JavaScript库的一种最流行、最方便、最快捷的方式。如果读者在试验本书示例时不想把jQuery库下载到本地,也可以使用这种远程加载方式——只要把本书示例页面中的下面这行代码:<script src=”jquery.js”></script>

替换成以下代码即可:

<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js” type=”text/javascript”></script>

当然,还有个前提,就是你的电脑必须连接到了互联网。

你在阅读和学习过程中,有任何问题,欢迎致信contact@turingbook.com

最后,祝你阅读愉快!

首先,sibling翻译成“同辈”,与将parent、child、ancestor、decendant翻译成“父”、“子”、“祖先”、“后代”,可以说是“一脉相承”,属于同一个语境,即都源自family(家族)。

其次,“相邻”是从位置这个“次要”属性上对sibling给出的定义,如果遇有同一句中其他描述位置关系的词,将发生冲突,无法处理。例如下面这句话:

.next([selector])——The sibling imediately following each selected element(Learning jQuery 1.3, Appendix D, DOM traversal methods)

在将sibling译为“同辈”的情况下,很好处理:

.next([selector])——每个选中元素紧邻的下一个同辈元素

否则,如果将sibling译为“相邻”,就不好处理(至少不好理解):

.next([selector])——每个选中元素紧邻的下一个相邻元素