Posted by njuxjy on August 1, 2010
原文地址:http://www.developer.com/open/article.php/3883891/Top-10-Android-22-Features-Developers-Cant-Wait-to-Use.htm======================================================================= Android2.2(开发代号:Froyo)是个次要SDK版本,但它仍然很有影响力,给开发者及用户提供了一些期待已久的特性。在参加了Google I/O会议,见证了Froyo的宣告之后,我们认为有10个特性(排名不分先后)是开发者最迫不及待跃跃欲试的。 1.Flash10.1及AIR支持对于手机上Flash的可行性可能有一些争议,但它即将登陆Android手机。未来是否属于Flash真的不重要,眼下看来,Flash在web上相当流行,因此排斥Flash实际上就相当于排斥了许多用户已经乐在其中的动态web应用。从Froyo版本开始,Android用户将能够从Android市场下载Flash10.1及AIR支持(以Android应用程序的形式)的公开测试版。这个决定实质上扩大了Android用户可访问的web应用和站点的数量,扩大了Android开发社区的队伍。然而这也可能成为Android开发者的一把双刃剑。这将如何改变Android市场的内容呢?外面有那么多的Flash应用(如德州扑克,每个人都有吧?),谁还会去创建一个本地Android应用版本呢?好吧,理由当然是能想出来的,但是我们认为这样一来,很多公司要有足够的理由才会去创建本地应用了,因为本地应用需要他们针对不同平台满足客户要求。也许Flash应用可以帮助清除掉那些写得糟糕的本地Android应用程序的竞争,但它能够增强Android开发社区的整体实力吗?让我们拭目以待吧。 2.推送消息开发者现在可以利用谷歌的另一项服务了,即Android Cloud to Device Messaging(C2DM) 框架。这个框架提供了一项服务可以通过谷歌的服务(负责发送至设备的轻量级消息的排队以及安全交付)使Android设备支持有限的推送功能。在解决框架问题的同时,开发者可以在Google Labs网站上注册。谷歌的一些应用程序,例如Web版的Android Market将很快使用这个特性把用户通过Web购买的Android应用程序通过无线电推送至手机上。这项技术能帮助解决目前由Android应用程序产生的严重的轮询拥堵问题(导致电池寿命减少、性能降低等问题)。 3.全新的企业级特性Android终于将自身定位于重要的企业级应用了。Android2.2 SDK包括了全新的设备管理API,用于远程设备管理和设备的安全管理。你可以看到用来管理设备安全的API,包括密码策略实施、远程锁定及抹除设备的能力。举个例子,如果有员工丢失了他或她的带有敏感数据及凭证的手机,手机会迅速锁定并清除掉那些数据。Froyo还引进了健壮性更强的Microsoft Exchange支持(见第9个特性)。我们也听到了一些关于类似Android市场的企业及部署方案的声音,但这些特性可能以后会有的(Froyo中没有)。 4.性能提升开发者和用户能够从Froyo巨大而深远的性能提升中受益。谷歌的那些极度追求质量和性能的极客们似乎曾经把这个平台贬作“垃圾”(这个词是从谷歌哥们那里听来的,意味着很差的性能和响应性),并在后台内置了很多性能的测量仪和基准。这种急需的性能大检查最终诞生了一个更为流畅简洁的活跃平台,以及一份保持平台今后也同样简洁快速的计划。性能的提升部分原因是Dalvik虚拟机中包括了一个JIT编译器。据谷歌Android团队所说,Froyo运行时的性能比之前的Android平台快了2到5倍。你可以在应用程序的Android清单文件中关闭JIT优化。Android浏览器由于使用了V8 Javascript引擎,速度也显著提升,比起Android2.1浏览器在性能提升了2到3倍(见第10个特性)。 5.声音和媒体API改进随着Froyo版本的发布,人们也提出了很多关于Android媒体API的问题。举个例子,其中加入了声音聚焦API来管理竞争应用间的声音播放规范。声音池API也进行了更新,其中加入了一个回调函数当某项加载完毕时调用,也融入了暂停和继续所有流的能力,这样应用程序不再需要跟踪每个流的状态,也不需要在单独的流上进行操作。这些改进简化了实现,提高了效率。 6.全面的SDK改进许多Android API加进了2.2发布版中。图像和游戏开发者们将为OpenGL ES2.0及ETC1向量纹理压缩的支持而欢呼雀跃。像语音识别(android.speech)这样的服务取得了实质性的进展,其他一些如支持拍照和摄像的API也改进很多。全新的UI模式管理器(android.app.UIModeManager)服务能将设备的配置调整为支持夜间模式、汽车模式以及桌面模式(停靠状态)。(译者注:最后一句不会翻)从Android2.2开始,应用程序不光可以安装在主设备上,还可以安装在SD卡等外部存储上。Android应用还可以使用全新的通用数据备份服务让用户无缝地在Android设备间迁移。就合理但令人沮丧的API变更来说,布局属性fill_parent已重命名为match_parent(是的,目前还不会影响你原有的那些应用程序)。通过使用按照DropBoxManager的形式且基于blob的“logcat”风格的数据队列,调试功能甚至也得到了改进。这份列表还会继续。(译者注:猜想意思是还有很多SDK的改进之处,就先不列举了) 7.Android市场更新随着Froyo版本的发布,Android市场也有不少更新。对发布者而言最有用的新特性之一便是内建的错误报告了。如果你的应用程序在用户的手机里崩溃了,用户可以选择是否将错误报告通过Android市场发回给相应的发布者。这样开发者和用户之间便形成了一个反馈的良性循环,使得发布者可以设法解决问题(可以收到有价值的崩溃诊断信息,比如设备配置和堆栈跟踪),避免被打低分。 让我们始终把Android开发者和用户放在心上。除了大家所期待的性能改进以及加入到Froyo平台中的“Chrome”浏览器外,Froyo中还有很多让人欲罢不能的用户特性,比如: 8.数据系链及便携式热点Froyo发布了USB数据系链和将Android设备变为便携式Wi-Fi热点的功能。这是个很酷的特性,但我们不清楚有多少使用者/携带者会隐藏且/或关闭此功能,因为有些人已经在竞争者的平台上实现了类似的特性。如果不得不让我们来猜的话,我们觉得这是个迷人的特性,也许能够增加Android的使用者数量(尽管每天增加100000个新用户,对Android来说还不算太差),但如果这群用户无法在他们的航程中使用这个特性的话,也很有可能让他们感到失望。我们走着瞧吧。 9.Microsoft Exchange支持没有人会喜欢根据工作用途还是私人用途等不同的使用目的来在不同的手机间捣腾。有相当一类人由于他们公司的IT需求–显而易见是对Microsoft Exchange的支持,在选择他们的手机时觉得捉襟见肘。(坦白说,如果手机不支持Microsoft Exchange的话,我们都不好意思称之为“智能手机”,但这仅仅是我们的观点。)Android2.2包括许多新的Microsoft Exchange特性,比如: 增强的安全特性,允许管理员强制密码策略 对Exchange管理员来说,在设备丢失或被盗时可以远程抹除其数据 Exchange日历支持目前已和Android日历应用相兼容 使用自动发现简化账户建立及同步 使用Microsoft Exchange Global Address Lists使Android Email支持自动补全收信人姓名及地址 10.“世界上最快的移动浏览器”在Google I/O主题会上,谷歌全球副总裁Vic Gundotra宣布Android2.2使用了全球最快的移动浏览器。他用行动来证明一点,他让iPad浏览器和Android浏览器在一个基于SunSpider JavaScript标准的比赛中“赛跑”(之后甚至让iPad浏览器先跑,在这里可以尝试下)。不管这是不是一个公平的比较,大家都接受了这么一个观点:对Froyo的性能改进使它变得速度奇快。Android浏览器的性能让大家都很开心(好吧,竞争对手除外…),随着HTML5的成熟会得到大家的认可。 好啦!这些就是让我们迫不及待想得到的Android2.2特性了。你们的看法呢?新的SDK可以通过更新机制来下载,更多的信息可以在Android2.2平台主页上找到。
Posted by njuxjy on August 1, 2010
原文网址:http://www.developer.com/mgmt/article.php/11085_3848981_1/The-7-Rules-for-Writing-World-Class-Technical-Documentation.htm ================================================================= 简介撰写技术文档比较困难,而阅读一份糟糕的技术文档就更加困难了,甚至可能比写文档还要痛苦。写出一份清晰准确、引人入胜的技术文档是要投入很多精力的。因而为了让人们省点事儿,我将与你们分享我在创作一份技术文档时遵循的7条规则。我并非自个儿想出了这些规则,而是得益于我与许多有才华的技术文字编辑长达十多年的共事。我所理解的这些都源自于他人为我指明了道路,我万分感谢他们。我希望在读完这篇文章以后,你在自己的技术写作工具箱里又多了一些利器,它们能帮助你创作出更清晰、更吸引人、更易懂和更有趣的技术文档。我还为大家在结尾额外附送了一段内容,介绍了我创作一篇技术文档的过程。好吧,下面就是这7条规则: 枯燥即糟糕 在开始之前,搞清楚你想要你的读者读完你的文章后能做什么 始终按照形式良好的提纲来写 避免不明确的代词 清晰性=图示+文字 当处理概念时…逻辑图示及例子,逻辑图示及例子 拥抱修改 1.枯燥即糟糕这也许是最难成文的一条规则,也是最重要的一条。当今的因特网世界有太多的东西可以抢走你读者的目光。乏味、平淡的文章是不行的。不论好坏,你的读者在长见识的同时需要被娱乐。因此,如果你的文章难以理解且了然无趣,读者便会直接点那个传说中的“下一页”按钮,去看另一个网页、另一个电视节目或者他或她的Facebook页面。我发现能娱乐读者的最简单的方法是先娱乐自己。为了总能写出一篇我自己想读的文章,我做了很多努力。我写作时力求做到心情愉悦。如果我感到厌倦,读者也会厌倦。如果我感到困惑,扶着也会困惑。如果我不真正在意手边的话题,读者也不会在意。就是这么简单。我喜欢幽默,所以在力保清晰性的同时我尽量使我的文章有幽默感。我在文中尽量和读者对话,而不是向他们喋喋不休。我写的话题都是自认为重要的。为了避免使读者困惑,我大量使用图解说明。再说一次,我尽量使阅读体验总是有趣。我一直清楚自己是在一个充满竞争的环境里写作。外面充斥着大量内容,会分掉我的一杯羹——读者。因此,对于规则1我的建议是,如果你的文章对你来说是有趣的,那么对读者来说也是。 2.在开始之前,搞清楚你想要你的读者读完你的文章后能做什么技术文章是要对读者阅读后的行为产生影响的。读者之所以花时间来阅读你的作品是因为他或她想在阅读之后有能力做某些事。这些事可能是学着制作手工巧克力曲奇,关闭一个核反应堆或者启动Hadoop cluster。你要记住的是,读者把你的文章作为实现他目的的一种手段。你的文章是通往另一个定义良好的行为的媒介。因而,搞清楚你想要你的读者读完你的文章后能做什么,你会从中获益的。在开头便说明你的意图,不要让读者来猜。你可以像这样来简洁明了地声明:“在读完本文后,你将能够[在此填空]。”如果很清楚你想要你的读者读完你的文章后能做什么,你写起文章来就会觉得越发容易。 3.始终按照形式良好的提纲来写形式良好的提纲是你文档的骨架。写技术文档如果不用提纲,就像不用地图在纽约地铁系统里寻找方向。你可能最终到达任何一个你并不想去的地方。按照形式良好的提纲来写并没有增加你的工作量,反之能帮你省事儿。当你按照提纲来写,你很清楚你已经写了什么以及你将要写什么。我有两个一直使用的写提纲的规则: 子层次的话题至少需要两个。 任意一个提纲层次至少需要两句话。 请允许我娓娓道来。下面的列表1是一个提纲示例,它违反了规则1:子层次的话题至少需要两个。 列表1:一个形式糟糕的提纲1.制作一个Orange Cranberry Tangerine Fizzle(译者注:某种饮料,不会翻译,下同)1.1.制作Fizzle的步骤1.1.1.准备配料1.1.2.混合Fizzle1.1.3.端上Fizzle 注意,在列表1中,层次1有单一的子层次1.1-制作Fizzle的步骤。这种结构违反了规则1。为了使子层次形式良好,必须至少还有一个对等的话题。换句话说,这意味着任何一个给定的层次必须有至少两个子层次。请看下面的列表2。注意现在层次1有了三个子层次,其中,混合Fizzle这个子层次现在有了其对等层次。制作Fizzle的步骤这一单一层次现在被删除了。你可能会问:“制作Fizzle的步骤这一话题去哪里了?”答案是该话题已经不再是提纲项了,而是其父话题的内容了,如下面的列表2所示。 列表2:一个形式良好的提纲,但违反了两句话规则1.制作一个Orange Cranberry Tangerine Fizzle下面的段落描述了制作orange cranberry tangerine fizzle需要遵循的过程。1.1.准备配料1.2.混合Fizzle1.3.端上Fizzle 请注意,虽然列表2展示了有正确子层次结构的提纲,但层次1的话题内容只有一句话。提纲的话题内容只有一句话违反的是列提纲的第二条规则,任意一个提纲层次至少需要两句话。下面的列表3展示了将Orange Cranberry Tangerine Fizzle这部分调整到支持两句话规则以后的样子。 列表3:一个形式良好的提纲,且支持两句话规则1.制作一个Orange Cranberry Tangerine Fizzle在炎炎夏日,Orange Cranberry Tangerine Fizzle是招待朋友的必备。该饮料取材天然,不加人工香料。Orange Cranberry Tangerine Fizzle不光味道好,对身体同样有益!下面的段落描述了制作orange cranberry tangerine fizzle需要遵循的过程。1.1.准备配料1.2.混合Fizzle1.3.端上Fizzle 为什么我要如此强调恰当的提纲结构以及每个层次至少两句话呢?首先,遵循子层次规则迫使我对自己文章的逻辑分段做到心中有数。子层次规则也可以确保我的文章以一种有意义且简单的方式传达出我的观点。其次,两句话规则迫使我创作出引人入胜、详尽而有意义的文章。“一句话”文章常常缺少细节。并且,除了俏皮话喜剧之外,“一句话”风格的文章读来不会是最有趣的。 4.避免不明确的代词不明确代词的引用可能是技术写作实践中造成困惑的最典型的原因了。考虑列表4中的段落。 列表4:一个有不明确代词的段落Trafalgabors(译者注:故意没翻译,也没法翻译)是Weebietatas(同上)框架的基本组件。本文将介绍它们是什么,以及如何使用它们。 上面这个段落看起来有些可笑,但说明了一些要点。首先,此段落尝试把你放到一个读者的位置上。读者想要理解发生了什么事,但他对语言不熟悉。并且因为对语言不熟悉,读者感到自己既无知又脆弱,想要一些新的信息,他或她要变得更聪明些。但是读者同样有些焦虑。承认自己的无知,即使是对自己,即使在潜意识里,也会令读者感到不安。读者的认知能力是经不起折腾的。一些对作为作者的你来说理所当然的概念和单词可能对于读者完全陌生。一个解释得糟糕的概念或一个没有正确说明的单词就可能使读者感到厌烦。(译者注:作者这段不知道有没有逻辑,反正我是没看懂)。至于上面的那个段落,我不奇怪有人会问:“什么是Trafalgabor?什么是Weebietata?这一段说的是什么?怎样使用Trafalgabors?怎样使用Weebietatas?它们两者怎么使用?太难以理解了,我还是回去看我的Facebook主页吧。”如果读者要从阅读你的文章中抽出时间来想你究竟要表达什么,那么说明你解释得不够,读者很可能会陷入困惑。一旦你使读者困惑了,你就输了。世界上其他需要读者注意的东东便趁虚而入,抢走读者对你作品的注意力。因此,他们按下“下一页”按钮,你的作品便无人问津了。在上面的列表4的例子里,困惑是由不明确地使用了代词——第二句中的“它们”造成的。“它们”指代的是Trafalgabors,是Weebietatas或者是两者?请记住,读者对Trafalgabors或Weebietatas一无所知。(请见下面的图1。) 图1:使用不明确的代词使得技术文章令人困惑 解决该问题的办法很简单。请看下面的列表5。不明确代词移除了。段落又恢复了清晰性。 列表5:不明确代词的改进方案Trafalgabors是Weebietatas框架的基本组件。本文将介绍Trafalgabors是什么,以及其如何使用。小心!不明确地使用代词是通往难以理解的技术文档的地标。 [...]
Posted by njuxjy on August 1, 2010
原文地址:http://www.rbgrn.net/content/215-light-racer-3d-development-journal ================================================ 如果你有兴趣为Android平台开发游戏,有很多你需要了解的东西。我是Light Racer,Light Racer 3D以及Wixel的开发者,这些游戏目前在Android Market上有售。我以前也开发过游戏,但Light Racer是我的第一个Android应用程序,我从中学到了很多Android游戏开发知识,也愿意与诸位分享。我甚至写了一本在线的书详细介绍了Light Racer3D的开发,内容全是教你怎样做以及有用的代码片段。如果你有过游戏开发经验,那么转移到移动平台上来将不是特别困难。你主要只需学习其架构以及API就行了。如果你是一名游戏开发新手,我总结了一张列表,上面有你必需知道的东西,供你起步用。这些知识适用于很多类型的游戏,包括动作类、策略类、模拟类和益智类。 Android是一个基于Java的环境。这对初学者来说是个好消息,因为相对于C++,Java被广泛认为是一门更容易上手的语言,它是移动开发的规范。Google也做了一件出色的工作,它将API文档化并提供示例代码供使用。其中有个叫做API Demos的示例几乎展示了所有API的功能。如果你熟悉Java并且用过Eclipse,要让你的第一个应用跑起来那是相当简单。如果你以前从没写过代码,在你前进路上还要学习很多,但别气馁。 获取SDK 新手上路的第一步便是获取Android SDK(软件开发工具包)。SDK里有一个核心类库,一个模拟器,一些工具和示例代码。我强烈建议使用Eclipse和Android Eclipse插件。如果你玩Android的话,Eclipse IDE对Java开发者来说很好用。如果这是你第一次开发Java项目,你可能会需要下载全套JDK,它里面包括签名和部署你的应用程序的一些工具。 学习应用程序架构 别急着一头扎进开发的海洋里,理解Android应用程序架构是很重要的。如果你不学一下,你设计出来的游戏在线下将很难调试。你将需要理解Applications、Activities、Intents以及它们怎样相互联系。Google提供了很多有用的架构信息。真正重要的是要理解为什么你的游戏需要多于一个的Activity,以及什么才是设计一个有良好用户体验的游戏。要理解这些,首先要了解什么是Activity生命周期。 学习Activity生命周期 Activity生命周期由Android操作系统来管理。你的activity创建、恢复、暂停、销毁都受操作系统的支配。正确处理这些事件是很重要的,这样应用程序才能表现良好,做用户认为正确的事。在你设计你的游戏之前了解所有这些是如何工作的是件好事,因为以后你可以为自己节省调试时间和昂贵的重新设计时间。对大多数应用来说,默认的设置将工作正常,但对于游戏,你可能需要考虑将SingleInstance标志打开。当设置为默认时,Android在它认为合适时会创建activity的新实例。对于游戏来说,你可能只需要一个游戏activity的实例。这对于你要怎样管理事务的状态有些影响,但对于我来说,这解决了一些资源管理的问题,应予以考虑。 主循环 根据你写的游戏的类型,你可能需要也可能不需要一个主循环。如果你的游戏不依赖于时间或者它仅仅对用户所做的加以回应,并且不做任何视觉上的改变,永远等待着用户的输入,那么你就不需要主循环。如果你写的是动作类游戏或者带有动画、定时器或任何自动操作的游戏,你应该认真考虑下使用主循环。 游戏的主循环以一个特定的顺序通常尽可能多的在每秒钟内“滴答”提醒子系统运行。你的主循环需要在它自己的线程里运行,原因是Android有一个主用户界面线程,如果你不运行自己的线程,用户界面线程将会被你的游戏所阻塞,这会导致Android操作系统无法正常的更新任务。执行的顺序通常如下:状态,输入,人工智能,物理,动画,声音,录像。 更新状态意思是管理状态转换,例如游戏的结束、人物的选择或下一个级别。很多时候你需要在某个状态上等上几秒钟,而状态管理应该处理这种延迟,并且在时间过了之后设置成下一个状态。 输入是指用户按下的任何键、对于滚动条的移动或者用户的触摸。在处理物理之前处理这些是很重要的,因为很多时候输入会影响到物理层,因而首先处理输入将会使游戏的反应更加良好。在Android里,输入事件从主用户界面线程而来,因此你必须写代码将输入放入缓冲区,这样你的主循环可以在需要的时刻就从缓冲区里取到它。这并非难事。首先为下一个用户输入定义一个域,然后将onKeyPressed或onTouchEvent函数设为接到一个用户动作就放到那个域里,有这两步就够了。如果对于给定游戏的状态,这是一个合法的输入操作,那么所有输入需要在那一刻做的更新操作都已经定下来了,剩下来就让物理去关心怎样响应输入吧。 人工智能所做的类似于用户在决定下一个要“按”哪个按钮。学习怎样写人工智能程序超出了这篇文章的范围,但大体的意思是人工智能会按照用户的意图来按按钮。这些也有待物理去处理和响应吧。 物理可能是也可能不是真正的物理。对于动作类游戏来说,关键点是要考虑到上一次更新的时间、正在更新的当前时间、用户输入以及人工智能,并且决定它们朝着什么方向发展和是否会发生冲突。对于一个你可视化地抓取一些部件并滑动它们的游戏来说,物理就是这个游戏中滑动部件或者使之放入合适的位置的部分。对于一个小游戏来说,物理即使这个游戏中决定答案是错还是对的部分。你可能将其命名为其他东西,但每个游戏都有一个作为游戏引擎的红肉部分(译者注:可能是主体部分的意思),在这篇文章里,我把这部分称为物理。 动画并非像在游戏里放入会动的gif图片那样简单。你需要使得游戏能在恰当的时间画出每一帧。这并没有听起来那么困难。保留一些像isDancing、danceFrame和lastDanceFrameTime那样的状态域,那样动画更新便能决定是否可以切换到下一帧去了。动画更新真正做的事就那么多。真正来显示动画的变化是由录像更新来处理的。 声音更新要处理触发声音、停止声音、音量变化以及音调变化。正常情况下当写游戏的时候,声音更新会产生一些传往声音缓冲区的字节流,但是Android能够管理自己的声音,因而你的选择将是使用SoundPool或者MediaPlayer。它们都需要小心处理以免出错,但你要知道,因为一些底层实现细节,小型、低比特率的声音文件将带来最佳的性能和稳定性。 录像更新要考虑游戏的状态、角色的位置、分数、状态等等,并将一切画到屏幕上。如果使用主循环,你可能需要使用SurfaceView,并做一个“推”绘制。对于其他视图,视图本身能够调用绘制操作,主循环不必处理。SurfaceView每秒产生的帧数最多,最适合于一些有动画或屏幕上有运动部件的游戏。录像更新所要做的工作是获取游戏的状态,并及时地为这个状态绘制图像。其他的自动化操作最好由不同的更新任务来处理。 代码看起来是什么样的?这儿有个例子。 1: public void run() { 2: while (isRunning) { 3: while (isPaused && isRunning) { 4: sleep(100); 5: } 6: update(); 7: } 8: [...]
Posted by njuxjy on August 1, 2010
原文地址:http://www.timesonline.co.uk/tol/news/world/asia/article6918320.ece 奥巴马总统与中国上海的学生以不同寻常的现场问答形式进行了一场对话,批评了网络审查制度,并告诉这个拥有世界上最多上网人数的国家的人们,信息的的自由流动是力量的源泉。 在他正式访华的第一天里,奥巴马先生小心翼翼地校准着自己的言论,以避免使中国民众感到尴尬。尽管如此,当他在强调中美这两个太平洋巨人必须合作而非冲突的时候,他确信他的回答触及到了中国国内的一些敏感话题,如言论自由的普世价值以及信息的自由传播。 经过了长达十一个小时艰辛的争论,奥巴马先生才得以在上海登上舞台,手持麦克风,从520名大学生中挑选出提问者。中方对于美方要求现场直播和在线流媒体直播感到局促不安。最终,这场市政厅式的会议仅在上海电视台直播,但文字部分则由新华社进行更新。 所提问题一部分来自现场观众,其余的则从中国或美国驻华大使馆的网站上提交的几千个问题里挑选。 奥巴马先生被问到是否了解“GFW”——一款防火墙的通俗术语,中国政府用其加在网络上来阻挡那些审查员认为不合适的内容。奥巴马先生说:“我一向是开放互联网使用的坚定支持者。我非常支持不设置审查制度。我认识到不同的国家有不同的传统。” 在某个回答中,他微妙地批评了中国,他说他认为拥有指责国家领导人的自由可以帮助加强民主。“老实说,我也曾经有好几次希望信息不能那样自由流动,那样的话我就不必一直听着人们批评我。人们当权时自然而然会想‘那人怎么会这样说我?太不负责任了’。” 但奥巴马先生认为就是这样的开放环境使他成为一个更好的领袖,迫使他倾听他不愿听到的意见。中国的领导人很少需要或有机会接受公众的批评。GFW把几乎所有这样的评论都过滤掉了,极少有人敢发表评论贬低共产党的领导,怕遭报应。 他尽量避免和中共的审查者产生意见分歧,因为他们认为网络是需要监管的,要保护民众免受伤害。“好处是远远多于坏处的。这也是我为什么对互联网成为本次论坛一部分感到很高兴的原因了。” 本次论坛标志着他对中国民众的首次直接评论,也可能是他在紧张的四天行程中的唯一一次机会,这项行程包括与胡锦涛主席会面以及参观长城。 奥巴马先生利用这次接触中国三亿五千万网名的机会为中国民众争取被剥夺的自由。他说个人表达并非美国的理想,而是一项所有人都有的普遍权利。“我们不寻求把任何政治体制强制给任何国家,但是我们也不认为我们所支持的这些原则是我们国家所独有的。” 他谈话中的这份理想明天能否传达到北京的中共领导人耳朵里还是个未知数,而在周三,他的行程又将被排满,贸易分歧、北朝鲜的核问题、中国对伊朗货币政策价值的争端这些问题等待他去处理。 奥巴马先生希望这次为期四天的行程能有一个有好的开端。他说:“大国之间合作,而不是冲突,我们能收获更多。” 总统承认他用起Twitter来笨手笨脚的,无法掌握这项技术,这在中国引起了迅速反应。“他怎么能骗我们?他Twitter主页上有260万跟随者呢!” 中国的聊天室里很快便人声鼎沸,纷纷对奥巴马的表现作出回应。有人仅仅说了句:“好帅啊!”
Posted by njuxjy on August 1, 2010
原文地址:http://www.cringely.com/2009/10/why-windows-7-costs-so-much/ 我用Windows7已经好几天了,跟Vista和Xp比起来它当然进步许多,相比之下,它需要更少的资源(比Vista少得多),启动的更快,可用性非常好。恩,但它为什么那么贵呢?我知道原因。 为了形成鲜明对比,让我们比较Windows7和可能的竞争对手Mac OS X10.6雪豹。我在这里并非要争论他们谁将谁视为竞争对手,还是两者皆是。然而在市场上,雪豹的升级版是49.95美元 29.95美元(对于五台机器的家庭装来说是99.95美元 49.95美元),而可供用户选择的20种不同的Windows7的版本里最流行的一种(Windows7家庭高级版)要119.95美元。 Windows7是真的要比雪豹贵70美元90美元吗? (这价格定的明显是在扯淡嘛——Bob说) 问得更好一点应该是为什么微软要把价格设定在以往那么高的标准上?这个问题的答案非常简单:微软压根就没想要你升级到Windows7。 微软是想要你去买一台全新的装有Windows7的电脑。 把价格设定在119.95美元是微软一次成功的运作。他们不希望用户来升级系统,所以通过将价格定得很高这一手段,微软实质上将Windows7的升级税强加在了用户头上。在斯台普斯买一台新的Windows7电脑,软件价格便降到了49.95美元,跟雪豹一样。 从Windows7的税来看,微软热衷于赚钱,但他们将价格定那么高的主要原因是能让我们都去买新电脑。那会使得微软在每个小单元上收入减少一些,但是在整体业务上会带来跟多的收入,例如用户将会决定升级为新电脑上的整套Office软件,而不是单单为了一个新软件在每台机上花费119.95美元。对微软来说,卖一台新的电脑比零售一个软件升级在支持服务上花费少得多。这种定价策略使得微软受到广泛欢迎,同样受益的还有其原始设备制造商,像惠普、戴尔以及其他上百家厂商。 这里还有一个证据可以说明微软的意图:你确实做过Windows7的升级吗?我升级用了七个钟头!这原本不应该要花那么长时间,除非这其中有一部分意图是要阻碍用户升级。雪豹的升级花了我20分钟,但是苹果公司没有取悦任何一家员原始设备制造商(这是关键),并且甚至定价在49.95美元的情况下还是在升级上赚了很多钱。 当Windows95刚刚引进的时候(那时我正在拍摄《书呆子的胜利》),比尔盖茨和杰雷诺那天的部分表演是将一台486/66机器从Windows3.1升级到Windows95。升级过程用了半个钟头。而如今有了更为现代的处理器、内存、磁盘驱动器和声称精简而平凡的新型操作系统,为什么升级Windows7要比其他的多花那么多时间? 不应该是这样的,除非一开始并没有把升级的速度放在特性列表上加以考虑。
Posted by njuxjy on August 1, 2010
原文地址:http://www.appscanadian.ca/archives/peopleware-describing-the-best-office-youll-never-work-in/ 有一两个读者可能还依稀记得在我开这个博客不久后,我花了好些钱用来买和软件相关的书籍上。我很快便发现当时我从事的工作并没有给我带来一种“我马上就要回家了,可以读好多技术类书籍”的感觉,因而读书这事并没有如我预期那样进展顺利。我读了一些《代码大全》,但随着时间的推移我没继续读下去。我想我现在也只读完那本书的三分之一,尽管我早在一年多以前就开始读了。 大约一个月以前,决定先不读《代码大全》了。我开始阅读《人件》:富有成效的项目和团队。我花了三个礼拜读完了,主要是在公交车上用来消磨时间,但这本书确实有点意思。 对那些不熟悉本书的人来说,本书不过是作者Tom DeMarco和Timothy Lister写他们管理智慧的区区两百页纸而已。这两人在软件开发领域摸爬滚打了多年,也给各种不同公司提供过咨询,他们有好多关于怎样最好地构建以及怎样带一个富有成效的软件开发团队方面的心得要说。 本书很明显针对的是那些已经是(和有希望成为)软件产品项目经理的人。然而我无法从那个角度来审视这本书,因为我刚从大学毕业三年,我的职业生涯还稳定在“IT民工”的阶段。说实话我希望我永远都不要做一个管人的人,因为我有限的使用权力的经验告诉我那并不适合我。除此之外,我知道既然我喜欢舞弄权力,这是一个不让我这么做的绝好的理由。说了这么多,我试着从我自己的非管理的视角来审视这本书。 我简单(带玩笑意味的)建议那些对他们工作环境不满意的人们(我上一份工作也是这样):不要读这本书;它只会是你沮丧。 读这本书的时候,我不禁注意到了书中描述的很多东西能反映出我对前雇主的不满情绪。书中所引用的书、研究报告和合法的来源都使得这情绪愈加强烈!我发现有确凿证据显示不仅我的工作环境本可以变得更好些,而且我所曾经拥有的东西事实上都对我不利! 很多人读这本书时也许都会有这个根本问题。没有哪个工作环境,甚至是广受好评的谷歌办公室,可以达到书中所描绘的那样高的标准。我想关键之处在于:很多好的开发者都努力做得更好,那么一个好的雇主也应该努力改进自己。 作者解释道,一个优秀的知识型工人(举例说这些人的主要任务是思考问题,和那些进行某些体力劳动的人相对)需要三种东西来获得成功: 1.知识型工人理应得到那些能使他们成功的东西。意思是像给他们一个安静的工作环境。开放式办公环境看似能节省成本,还能通过简化沟通方式培养团队精神,但这使人无法集中注意力,从而浪费了工人的时间,事实上导致不能按时完成工作。2.知识型工人需要被单独对待,几乎每个人都有着和一些或者大多数同事不一样的需求。这意味着尽管一开始要建立开放式办公环境,以确保普通的成功(基于真实的研究和统计数据,而不是感觉到的成本效益),然而能很方便的满足个人的需求也是很重要的。3.经理的职责是支持知识型工人的工作,因为是他们,而不是其他什么东西,可以直接影响到项目的期限。这意味着一个好的经理必须在门口丢下他或她的自负心理,意识到他或她可能存在的任何“大哥大”倾向,努力把分心减到最低限度。 能同时拥有这三样东西是极其困难的。甚至能接近于使这三样东西完美结合也可以被视作是巨大的成功了。因此如果你确实决定要读这本书,试着不要由于书中所描绘的看似乌托邦一样的工作环境而心急如焚。你可能并非工作在一个完美的环境中,但根本没有人的工作环境是完美的。然而通过一点点的工作,你可以开始实现工作环境的一点点改变,然后一步步接近于完美的办公环境。 旁注: 我决定我下一个任务是读《计算机程序的构造和解释》。 我计划读完整本书,包括所有的练习和项目。我意识到这是个远大的目标,但我肯定是会尝试的。在我读书期间,我将努力写博客分享我的进展,一节一节,直至整本书结束。 祝我好运吧!
Posted by njuxjy on August 1, 2010
原文地址:http://sivers.org/1pct 一个音乐家邀请我的朋友来帮他做一间发送CD邮件的大房间。 这个音乐家已经堆放了一万份他CD的拷贝,预计着通过那个礼拜可以收到一万份的订单。 他在一份拥有一百万忠实读者的杂志的封底买下了四分之一版的广告。 他不停的说:“只要这份杂志的读者中有百分之一买了我的CD…那么就有一万份了!而且这仅仅只是百分之一!” 他买了一万个带衬垫的邮包和邮件标签,把他的车库变成了一个大的邮寄中心。 他不停的说:“可能会有百分之十呢!那就是十万份!但最坏的情况,如果只有百分之一的话…那还是棒极了!” 杂志出版了,并且… 什么也没发生。他买了一本。上面有他的广告。但却没有收到任何订单!难道出什么错了么?没有。他检查了一遍,一切都很正常。 在接下来的几个星期里,他一共收到了四份订单。CD一共卖出了:四份。 跟我说这个故事的朋友最后加了一句最好的注解:“他忘了还有比百分之一更小的数字。” 每当我听到商业计划里这样说道”只要卖出了超过三千万台iPhone,我们的应用程序铁定能…”的时候,我总会想起这个故事。
Posted by njuxjy on August 1, 2010
转载一篇译言上别人翻的,对比下发现自己翻的有些地方真是不堪入目啊。 ================================== 地址:http://www.yeeyan.com/articles/view/48380/65813 获得顶级大学的计算机学位从来不需要学习最简单的软件开发工具,不需要团队协作,任何一门课都会因为你和其他人合作而直接给你打F,这是多么惊人的一件事。很多计算机学院还停留在八十年代,其中所教授的课程早已被现代软件开发所完全抛弃。 学生应该在何处学习版本控制、缺陷跟踪、团队合作、项目的计划和评估、调试、可用性测试以及文档呢?他们如何才能学会写超过20行的程序呢? 很多大学都在骗自己,认为课程距离现实越遥远,他们便越是精英。这简直是行为艺术。把造就码农的工作交给那些职校、大专或者夜校吧,常青藤联校只想教学生线性代数、计算理论或者Haskall程序设计。所有向他们看齐和靠拢的学校提高自身水准的方式就是将课程中所有的实践性内容通通换成理论课。 当然,不要误会我的意思, 这未必是一件坏事 。至少他们用Scheme换掉了Java,虽然这么做的理由仅仅是”MIT就是这么干的“。(太晚了!)他们限制了学生的思维。鉴于一般计算机教授对真实的软件工程的了解程度,我宁可让这些孩子通过Fog Creek的实习学到更多的东西。 Greg Wilson是多伦多大学的助理教授。在多伦多举行的StackOverflow开发者大会上他进行了一次演讲。他的演讲很风趣,让人获益良多。会后我和他聊了起来,他给我讲了他最近的一个点子,UCOSP,即”所有的好名字都被用完了“。 这是一个由十五所高校所组成的一个联盟,他们大部分都来自于加拿大。这个联盟组织了一个由各高校高年级本科生参与的Capstone项目。这些来自不同大学的学生五六个人组成一支队伍进行合作,向一个开源项目贡献代码。他们的回报既有学校的学分,也有社区的赞誉。当我听到这个计划时,我自愿赞助一支队伍为Mercurial项目进行开发,这包括赞助这支队伍的成员前往多伦多的机票以及为他们提供一名程序员为他们的开发提供指导和帮助。 在浏览UCOSP的博客时,我想起了”为什么大家都赞同学生参与真实的项目开发,但学生项目却经常毫无产出 “这个问题。”这门课的意义在于给学生一个机会,自己为自己立下目标并努力完成它“Greg写道。“最终的效果非常明显:在许多情况下,在学到相同内容的情况下,学生每星期在这门课上的工作量要小于普通的结构化课程。” 大学最后一年的学生大都有了十几年的最后一刻完成那些小作业的经验了。在你成为大学高年级学生之前,你都不太可能遇到一个通宵搞不定的作业。 计算机学院的作业一般都只让学生完成”有趣“的那部分代码(学术界的称法)。本科生从来不需要写其余90%的那些使产品达到”真实可用“级别的代码,因为修正bug和处理现实情况一点都不”有趣“,也因为大多数计算机教员从来没有在真实环境中工作过,他们根本不知道如何写出用户可用的软件。 时间管理通常是难辞其咎。一个由四个学生组成的小组,即使有一两个有进取心的学生会早早开始,其他学生可能会拖他们的后腿,因为他们还有其他课程的作业明天就要交了。有进取心的学生只能作出选择,要么早早开始并多做一些,要么等等其他人然后在最后一天晚上才完成工作。你觉得他会怎么选? 学生对长期的、团队的项目计划完全没有任何经验。因此,在完全自己支配时间的情况下去完成一个长期任务时,他们的工作总是很糟糕。 如果你希望这些项目能有些成果,那么每个周末都必须是最后期限,而且你要认识到,项目的所有工作都会是在最后期限前一天晚上完成的。似乎所有人都是这样,没有短期目标的长期任务总是无法完成的。 这可能是使用Scrum的一个很好的机会。每个星期,小组的所有人聚在一起回顾上一周的工作(面对面的,或者在线的)。然后大家一起决定下一周的工作。FogBugz很适用于这种情形。如果你们是Capstone项目的一员并希望使用FogBugz,请告诉我们,我们很高兴为你们提供免费服务。我们还可以向你们发放kiln的测试账号,这是我们的在线Mercurial版本控制服务,集成了代码走查功能。 这里我总是在责怪学生,总是拖延,没有完成长期项目的纪律性。当然,这种现象在上班族之中也广泛存在。我花了很长时间才认识到,即使对于专业程序员,长期目标(或者完全没有目标)也是没有意义的,你需要用规律和计划来保持长期的生产率。现实中人们能够把事情做好的唯一原因是经理的存在,经理会设定短期目标;但学生都是平等的,做不到这一点。
Posted by njuxjy on August 1, 2010
原文地址:http://www.joelonsoftware.com/items/2009/10/26.html 令人吃惊的是,现在的学生要顺利从一所顶尖大学拿到计算机学位是多么的容易,他们没有学习过如何使用软件开发人员的基本工具,没有在团队里工作过,没有上过一门需要团队合作的课。许多计算机系还是用80年代的老套路,老是教那么几个一样的课程,这些课在现在看来已经完全和现代软件开发脱离开来了。 学生们该在哪里学习版本控制、缺陷跟踪、团队协作、时间安排、估算、调试、可用性测试和写文档呢?他们要在哪才能学写超过20行的程序呢? 许多大学已成功地说服自己,课程越是和现实世界脱钩,它们就越牛。这是在走文科学习的路子。就把确确实实在产出程序员的任务留给那些技术职业学院、红砖大学和各地的小学校(“北西南佛罗里达大学”)吧。全世界的长春藤联盟大学要教的是线性代数、计算理论和哈斯科尔编程,所有努力地提升他们层次的计算机系都这么做,从课程体系里去除掉那些需要实践的部分,取而代之的是更多的理论。 不要误会我的意思,这并不一定是件坏事。至少他们正把教Java换成教Scheme语言,仅仅是因为“MIT就是这么做的”。(太晚了!)他们也在教学生们用某种方式思考。但即使一个计算机系教授对现实世界软件开发懂得再多,我也情愿让我的孩子们通过在Fog Creek公司里实习来学习那些知识。 多伦多大学的助理教授Greg Wilson在多伦多举行的StackOverflow开发者日会议上发表了演说,他的报告有趣,信息量丰富,很有影响力。我们聊了一会,他跟我说了他最新的创意UCOSP,代表的含义是“所有的好名字都被人取了”。 有一个由15个大学组成的财团,这些大学大多数来自加拿大,这个财团正在为所有的高年级学生筹备一个尖端项目。他们从各类学校中挑选出本科生,让他们六个人一组来合作完成一个开源项目,作为荣誉也作为成绩。我一听说有这么一个项目便自愿赞助了其中一个团队来为Mercurial项目做出贡献。赞助某个团队包括支付组织这些本科生到多伦多的旅途的费用,以及提供一名程序员来指导该团队。 在UCOSP博客上浏览的时候,我想起了一篇文章:《为什么学生的项目受到赞扬却还是常常没有什么用途》。“这门课中一个关键点是让你有机会去发现要设置什么样的目标,然后实现你自己的目标。”Greg写道,“明白了这一点,最终的结果是很明显的:在很多情况下,学生们每周花在这门课上的时间比以前花在同样内容的一门更有条理的课程上的时间更少了。” 大学里的毕业生大约有16年的做短期作业并且喜欢拖到截止日期最后才做的经验。直到你成了大学里的高年级生,你还没有碰到过有哪个作业是你熬夜做不完的。 比较典型的计算机科学作业都只要求学生完成作业里写代码这一比较“有趣”的活(用这个词的学术意义来说)。作业其余的百分之九十对于本科生从不作要求,因为改错和处理真实世界的情况并无乐趣,大多数的计算机系教职人员也从来没有真刀真枪地做过软件,他们几乎不知道怎样才能做出能满足用户需求的软件,然而正是这百分之九十无趣的工作可以将代码带到一个“有实际用途,成为现实世界中的代码”的层次。 时间管理也是遭受非议的一个方面。在一个四名学生组成的小组中,即使有一到两个有进取心的学生想要早点开始项目,其他学生很有可能拖他们后腿,因为他们有着更为紧急的其他课的任务等着明天要交。有进取心的学生(们)必须作出选择,是他(们)自己先做起来并且做比他(们)应分担的任务更多的工作,还是和其他人一起等到要交项目的前夜,猜猜他会怎么选择。 学生对于长期的以团队为基础的时间安排表完全没有经验。因此,一旦接到了一个长期的项目并且被告知他们自己管理自己的时间时,他们几乎总是做不出什么像样的东西。 如果真要这些项目有什么有益的东西产出,你就必须按照星期制定最后期限,并且你必须意识到在每周期限到来的前夜,该项目的所有工作都要完成。如果不把完成项目的这段时间分成一个个短期里程碑的话,极少能在最后期限前完成这个项目,这似乎是人的固有性质决定的。 这可能是一个使用Scrum的好机会。每周一次整个团队会聚在一起,无论是亲自到场还是虚拟会议,他们会审查上一周的工作。然后他们会决定下周要完成哪些部分和任务。FogBugz在跟踪方面做的不错:如果你正在做一个尖端项目需要访问FogBugz,请让我们知道,我们很乐意免费为你安装。我们还能为你安装kiln的测试版本,这是Mercurial的托管版本,包括代码审查的功能。 我在这里抱怨学生们缺少在某个时间段里做长期项目的训练,而并非他们故意拖拉耽搁,但这个问题在非学生群体中当然也存在。我花了一定时间,但最终还是明白了长期的期限(或根本没有期限)对职业程序员来说没有效果,在这么长一个时间段里,你要有一个定期经常发布有益产品的时间表。现实世界正确地做到了这点,而所有的大学生团队失败了,其原因是在现实世界里有经理,他们可以设置最后期限,而在学生团队中,大家都是平等的,不能这样做。
Posted by njuxjy on August 1, 2010
原文网址:http://www.nytimes.com/2009/10/25/business/25ping.html?_r=1&hpw 当一架美国航空公司的飞机一月份降落在哈德逊河畔的时候,Twitter上第一张图片诞生了。在六月份,Twiiter的用户赶在各大新闻媒体报导迈克尔杰克逊的死讯之前就已经开始为他哀悼了。就在这个月,随着全国大多数人的目光聚焦在一个载着6岁男童的热气球上,这起事件每一次的转折瞬间都会在Twitter上掀起一番“推”和”转推”的浪潮,几乎将网站上其他所有的信息都淹没了。 随着大事件的发生,Twitter,Facebook和其他相似的服务正越来越成为这个国家的虚拟水冷却器(译者注:许多公司都有水冷却器,员工喜欢在工作之余在旁边讨论一些问题)。它们能快速传播信息,有时能赶在大众媒体之前,并且他们爆发增长文字和链接瞬间记录下了美国人集体的当务之急。 难怪学者和投资者对有一种有效的手段来搜索这类信息的前景会如此垂涎三尺了。当然Twitter有它自己的搜索引擎,但还有其他一些如OneRiot、Collecta和Topsy也在竞争成为实时搜索领域的Google。 为了不被淘汰,谷歌和微软分别在上周与Twitter达成协议,将Twitter发布的信息融合到他们的搜索引擎中去。 在纷繁的讨论声中,然而有一个问题始终没有得到解答:到底实时搜索转变成现金有多难呢? 没有人会怀疑帮助用户在网上发现新鲜、最新的内容是有价值的。但许多其他有价值的Web服务——包括内容网站、免费的Web电子邮件以及社交网络——也在挣扎着寻找有效的商业模式。 分析家说Twitter也许可以寻找除了搜索以外的其他方法来从流经它的系统的海量数据中盈利。 但是Twitter的总裁Evan Williams说收入并非它与谷歌和微软签订协议的重点。 还有,这两家公司都没有马上计划在Twitter搜索上投放广告,尽管他们以后可能会这么做。并且Facebook上周也称自己并有从与微软签订的把一些用户的更新放到实时搜索中的协议里赚到钱。 “我们不知道到底能从实时搜索里赚到多少钱。”资深搜索行业分析师、搜索引擎大陆的编辑、行业博客写手Danny Sullivan说。 传统的Web搜索是个实践中能赚钱的生意,有两个原因。其一,如果没有谷歌、雅虎、必应或Ask,Web就是一坨不可思议的比特的混杂。这些服务极为重要,以至于根据comScore的统计结果,单单在美国一天就要被使用超过四亿五千万次。 其二,同样重要的一点是,搜索引擎广告也许是曾发明过的最有效的市场营销形式了。因为搜索查询精准地泄露了用户的意图,这使得在对的时间用对的广告吸引用户成为了可能。其结果是,登广告的人愿意出大笔钱在那些在谷歌里输入“iPhone交易”或者“毛伊酒店”的人面前兜售他们的商品。 为了使得商人们能准确找出用户的兴趣,在网络上跟踪用户需求的技术已经花费了数十亿美元,所有形式的在线广告——或者相对的离线广告——在有效性方面跟搜索引擎广告比起来都差了一大截。 如果实时搜索要取得同样神奇的成果,首先就需要有大量的查询结果,还需要可以跟搜索引擎广告相匹敌的用广告来满足用户需求的能力。Sullivan先生说他希望实时搜索查询结果更一般的搜索结果比起来数量更少,内容更专一。 内容更为专一,有可能就意味着不那么好赚钱。实时搜索还是个新技术,与之相关的信息很难获得。但是最近的检查报告显示,仅有一小部分实时的交谈是明显关于商业的。举个例子,在最近的某个早晨,Twitter上10个话题里仅有两个——万圣节前夕和苹果笔记本电脑——是关于商业的。 实时搜索企业家们对此意见并不一致。 Collecta的总裁Gerry Campbell说,最多只有所有流经系统的百分之二十的查询可以轻易转为收入来源。举例来说,这个月Collecta查询中有一个激增的关键词,那就是Viper——一款新的iPhone应用,它能够远程启动一辆汽车。 还有人说查询跟广告匹配的例子比比皆是:在twitter里搜下雪情况,可能意味着对滑雪胜地来说是个广告的机会;搜关于手机信号差的内容,可能会吸引到网络竞争对手的广告;搜关于饭店的内容,可能会和某个显示地方熟食店最新座位情况的广告相匹配。 “很明显用户在显露他们的意图,那样你就有机会来匹配他们。”Campbell先生说。 微软搜索技术的总经理Sean Suchter说,他期待实时搜索最终能赚大钱。但他现在加了这么一句,“我们的目标就是要驱动用户的价值。” 与之类似的,谷歌说实时搜索很有价值,尽管并非不可或缺,因为普通的搜索也能赚同样多的钱。 “我们并不清楚人们针对实时数据会做出什么样的查询,所以并不了能赚多少钱。”谷歌搜索产品部和用户体验部的副总裁Marissa Mayer说。 谷歌需要Twitter的数据主要是由于谷歌的任务是要获得全面的数据:谷歌想要整合全世界所有的信息,包括网络上短暂的实时交谈。 “我们很清楚全面性对于我们业务会带来商业上的好处。”她说。换句话讲,全面性使得人们始终在谷歌上进行搜索。