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

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

最近,总部位于挪威奥斯陆的、国际领先的浏览器制造商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>

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

你在阅读和学习过程中,有任何问题,欢迎致信[email protected]

最后,祝你阅读愉快!

首先,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])——每个选中元素紧邻的下一个相邻元素

得知Karl Swedberg和Jonathan Chaffer共同编写这本jQuery教程的消息后,我深感荣幸。作为第一本jQuery图书,本书为其他jQuery——实际上,也为其他JavaScript——图书,树立了一个新标杆。从第一版面世以来,本书始终高居最畅销JavaScript图书榜首,究其原因,概源自其内在的高品质和对细节的关注。

我尤其高兴是Karl和Jonathan共同执笔写的这本书,因为我对他们非常了解,也知道他们是写这方面书的最佳人选。作为jQuery开发团队的核心人员,我在过去的几年间对Karl有了充分的了解,特别是对他编写本书的情况十分熟悉。看看最终作品就会知道,作为开发人员和曾经的英文教师,由他来完成这个写书任务简直是老天的巧妙安排。

我还有机会与他们两位见过面——对于从事分布式的开源项目工作的我们来说,这种见面机会应该算是极为难得的事情了。当然,他们目前依旧是jQuery社区的中坚分子。

jQuery社区中有许许多多不同的人在使用jQuery,其中包括设计人员、开发人员、有编程经验的人和没有编程经验的人。即使是jQuery团队内部,也有很多不同背景的人为这个项目的发展提供各自的建议。但是来自五湖四海的jQuery用户却有着同样一个目标,即我们这个由开发人员和设计人员组成的社区,其宗旨就是让JavaScript开发变得越来越简单。

此时此刻,重申开源项目是社区导向的,或者说开源项目的目标就是帮助新用户快速上手,好像总有几分陈词滥调的意味。然而,这些宗旨对jQuery而言绝非表面上做做姿态,这些理念恰恰正是项目本身绵绵不绝的动力源泉。在jQuery团队中,除了维护核心代码的人之外,实际上还有更多的人在负责管理社区、撰写文档和编写插件。虽然库本身的稳定性至关重要,但代码背后的社区也绝对不容忽视。一个项目是等闲平庸、举步维艰,还是处处都能够满足甚至超出用户的期许,可以说完全取决于社区。

我们如何运营项目,用户如何使用我们的代码,是jQuery与大多数开源项目(以及大多数JavaScript库)的根本差异所在。jQuery项目及其社区是具有高度智慧的。我们深知是什么让jQuery带给了用户不同的编程体验,并且也在竭尽全力把这些知识和智慧传递给我们的用户。

袖手旁观永远不会理解jQuery社区,只有参与其中,潜心钻研,才能获得切身体验。我们衷心希望本书读者有朝一日都能够加入jQuery社区。无论是加入我们的论坛、邮件列表还是博客,jQuery社区都能为你更好地利用jQuery提供各方面帮助。

对我个人而言,jQuery绝不仅仅就是一些代码块那么简单,它是这几年来,为了让这个库更有价值,社区成员日积月累的所有经验的大汇聚。其中蕴涵着一次次惊心动魄的起起落落,一次次开发过程中的奋斗挣扎,当然还有看着它不断成长和成功带来的喜悦。它贴近用户和团队成员,反映他们的需求,并且日益成长完善。

我一开始看到这本书将jQuery作为一个统一的工具来讨论时,第一感觉是书中介绍的jQuery跟我印象中汇聚各种经验的jQuery不太一样,但吃惊之余,更多的还是心潮澎湃。能够看到别人通过学习、理解进而塑造出的jQuery,作为项目创始人而言,其创造之乐也莫过如此了!

我决不是唯一一个超越工具-使用者关系层面去欣赏jQuery的人。我不确定能否准确地逻辑出原因,但我已经多次看到这样的场面——当用户恍然领悟到jQuery的效力时,他们的脸上会情不自禁地流露出会心的微笑。

还有一个特别的时刻,也只有jQuery用户才能体会到——有一天,他们突然意识到自己使用的工具,实际上远远不是一个简单的工具,他们将顿悟原来可以彻底换个思维方式来编写动态Web应用程序。想想吧,那个时刻将会多么美妙,而我认为这绝对是jQuery项目最大的价值所在。

希望手捧本书的读者朋友,也能够体验到那美妙的时刻。

John Resig

jQuery创建人,Mozilla公司技术推广专家,畅销书Pro JavaScript Techniques作者[①]


[①] 中文版《精通JavaScript》已经由人民邮电出版社出版。——译者注

Foreword
I feel honored knowing that Karl Swedberg and Jonathan Chaffer undertook the task of writing Learning jQuery. As the first book about jQuery, it set the standard that other jQuery — and, really, other JavaScript books in general — have tried to match. It’s consistently been one of the top selling JavaScript books since its release, in no small part due to its quality and attention to detail.
I’m especially pleased that it was Karl and Jonathan who wrote the book since I already knew them so well and knew that they would be perfect for the job. Being part of the core jQuery team, I’ve had the opportunity to come to know Karl quite well over the past couple years, and especially within the context of his book writing effort. Looking at the end result, it’s clear that his skills as both a developer and a former English teacher were perfectly designed for this singular task.
I’ve also had the opportunity to meet both of them in person, a rare occurrence in the world of distributed Open Source projects, and they continue to be upstanding members of the jQuery community.
The jQuery library is used by so many different people in the jQuery community. The community is full of designers, developers, people who have experience programming, and those who don’t. Even within the jQuery team, we have people from all backgrounds providing their feedback on the direction of the project. There is one thing that is common across all of jQuery’s users, though: We are a community of developers and designers who want JavaScript development to be made simple.
It’s almost a cliché, at this point, to say that an open source project is community-oriented, or that a project wants to focus on helping new users get started. But it’s not just an empty gesture for jQuery; it’s the liquid-oxygen fuel for the project. We actually have more people in the jQuery team dedicated to managing the jQuery community, writing documentation, or writing plugins than actually maintaining the core code base. While the health of the library is incredibly important, the community surrounding that code is the difference between a floundering, mediocre project and one that will match and exceed your every need.
How we run the project, and how you use the code, is fundamentally very different from most open source projects — and most JavaScript libraries. The jQuery project and community is incredibly knowledgeable; we understand what makes jQuery a different programming experience and do our best to pass that knowledge on to fellow users.
The jQuery community isn’t something that you can read about to understand; it’s something that you actually have to participate in for it to fully sink in. I hope that you’ll have the opportunity to partake in it. Come join us in our forums, mailing lists, and blogs and let us help guide you through the experience of getting to know jQuery better.
For me, jQuery is much more than a block of code. It’s the sum total of experiences that have transpired over the years in order to make the library happen. The considerable ups and downs, the struggle of development together with the excitement of seeing it grow and succeed. Growing close with its users and fellow team members, understanding them and trying to grow and adapt.
When I first saw this book talk about jQuery and discuss it like a unified tool, as opposed to the experiences that it’s come to encapsulate for me, I was both taken aback and excited. Seeing how others learn, understand, and mold jQuery to fit them is much of what makes the project so exhilarating.
I’m not the only one who enjoys jQuery on a level that is far different from a normal tool-user relationship. I don’t know if I can properly encapsulate why this is, but I’ve seen it time and time again — the singular moment when a user’s face lights up with the realization of just how much jQuery will help them.
There is a specific moment where it just clicks for a jQuery user, when they realize that this tool that they were using was in fact much, much more than just a simple tool all along — and suddenly their understanding of how to write dynamic web applications completely shifts. It’s an incredible thing, and absolutely my favorite part of the jQuery project.
I hope you’ll have the opportunity to experience this sensation as well.
John Resig
Creator of jQuery

20090720

朗诵:丁建华方明许还山肖雄吴京安严晓频凯丽剧雪康庄薛飞

伴奏:爱乐女室内乐团
篇 目(以演出现场为准) 作 者 朗 诵

序 《有一个字,与生俱来,排山倒海》画外音 丁建华

1.《孩子眼中的爱》佚 名 童声朗诵
2.《孩子,请听我说》 佚 名 王建新
3.《父爱》 佚 名 吴京安
4.《致橡树》 舒 婷 丁建华
5.《雨巷》 戴望舒 康 庄
6.《我喜欢你是寂静的》 聂鲁达[智利] 严晓频
7.《当你老了》 叶 芝[爱尔兰] 肖 雄
8.《选择》 邓康延 剧 雪
9.《祖国啊,我亲爱的祖国》 舒 婷 凯 丽
10.《大堰河,我的媬姆》 艾 青 薛 飞
11.《生活是美好的》 契诃夫[俄] 许还山
12.《爱心创造的奇迹》 伊丽莎白•恩斯[美] 丁建华

结束语:《爱是不能忘记的》
主持:方 明 解说词撰写:邓康延
演奏: 北京驱动管弦乐团

[iframe http://ditu.google.com/maps?f=d&source=s_d&saddr=%E5%8C%97%E4%BA%AC%E5%B8%82+(%E7%AB%8B%E6%B0%B4%E6%A1%A5%E7%AB%99B2%E4%B8%9C%E5%8D%97%E5%87%BA%E5%8F%A3%EF%BC%88%E5%9C%B0%E9%93%815%E5%8F%B7%E7%BA%BF%EF%BC%89)&daddr=%E5%8C%97%E4%BA%AC%E5%B8%82%E8%A5%BF%E5%9F%8E%E5%8C%BA%E8%A5%BF%E7%9B%B4%E9%97%A8%E5%A4%96%E5%A4%A7%E8%A1%97135%E5%8F%B7+(%E5%8C%97%E5%B1%95%E5%89%A7%E5%9C%BA)&hl=zh-CN&geocode=FaMnYwIdyFDwBiHtWj9xPHD8tQ%3BFWZtYQId9krvBiG3BWwn8VRLSA&mra=pe&mrcr=0&sll=39.995758,116.376065&sspn=0.205679,0.308647&ie=UTF8&ll=39.995797,116.376457&spn=0.11363,0.0674&brcurrent=3,0x35f05137c865ad63:0xd348af83c67dc389%3B5,0&output=embed 600 500]

2005年,一组前端技术的组合由于被命名为Ajax而广为人知。此后,随着Ajax应用的迅速普及,新Web时代的帷幕也徐徐拉开。仅仅几年间,各种“桌面般的”Web应用程序和新Web应用平台层出不穷。从Google Maps、Flickr、Netflix到Google Docs、Yahoo! Mail、Gmail,再到Twitter、Facebook、Digg……。在21世纪第一个10年临近尾声之际,现代Web发展的成果已经蔚为大观。

界面,不仅是现代Web应用程序与传统Web应用程序的分水岭,曾经也是横亘于传统Web应用程序与桌面应用程序之间的一道难以逾越的“鸿沟”。然而,Ajax及其框架技术突飞猛进的发展,不仅让一个或者少数几个HTML页面中容纳整个Web应用程序(或复杂功能组件)成为可能,而且也让现代Web应用程序的界面,展示出了堪与桌面应用程序媲美的耀眼风姿。

读者手中拿着的这本书,是两位出色的UI设计专家Bill Scott和Theresa Neil,在他们多年潜心研究、深入实践的基础上,结合现代认知心理学的最新发展成果和流行Web应用程序的界面设计实例,以六大设计原理为依托,以最佳设计实践为着眼点,奉献给我们的一本精彩绝伦的现代Web界面设计权威指南。

从译者的角度来看,本书既是一本Web界面设计手册,又是一本Web界面实例参考,它基本上涵盖了现代Web界面设计的普遍规则和最佳实践。Web界面设计人员通过阅读本书,可以迅速在当前或将来的项目中发现最合适的应用场景;开发人员通过阅读本书,能够轻松地将丰富的示例映射为自己头脑中的编码要点;Web项目的管理人员通过阅读本书,就有了在与客户商讨界面设计方案时的“共同语言”。哪怕你购买本书只是出于对其中漂亮Web界面的好奇,甚或只是想通过本书了解目前最流行的Web站点,相信在阅读本书之后,你会发现本书为你揭开了现代Web应用程序为什么如此令人着迷的奥秘。

感谢金照林、柳安意在对本书中耕时付出的努力,感谢徐定翔为译者翻译本书提供支持,感谢本书编辑陈元玉指出或纠正本书译稿中存在的问题。翻译本书的过程中,译者尽最大努力确保术语统一、准确,也尽最大努力以简洁、地道的中文为读者重现原书的意境和风貌。但是,囿于个人的水平,书中的问题和疏漏之处在所难免,敬请读者朋友给予批评指正。译者邮箱是lsf.email[at]gmail.com,个人网站是http://www.cn-cuckoo.com。

译者 2009年6月14日于北京

豆瓣上的《Web界面设计》