查看英文原文:  在旧金山上个月的上,Opscode CTO Chris Brown 就 ,声称:Chef 这个基础设施管理工具,已经可以用于复杂的企业环境中,跑在多种平台之上。  与 Windows Active Directory 整合的用户管理,非 Linux 平台的原生安装包(多种 AIX 和 Solaris 版本),使用 MySQL/PostgreSQL 作为数据存储,这些是 Opscode 公布的一些新功能,要推广 Private Chef 作为企业级工具,管理复杂的基础设施。  从 CouchDB 转而使用 MySQL 和 PostgreSQL,是为了解决性能问题,因为针对数据库的读写操作非常频繁。不过,很多企业的运维团队不熟悉 NoSQL,这也是迁移的一个原因。  在 Chef 的安装过程中,原生安装程序将会部署一个“嵌入”环境,将 Chef 的软件依赖和系统的其他依赖隔离开来,因此解决一些典型问题,比如,同时让 Opscode 的支持团队更加轻松(不管是私有基础设施,还是在云中,Chef 的运行环境完全相同)。  在演讲中,还提到以下报表和非 Ruby 脚本使用功能:

编者按:在计算机领域,每隔 30 年,就会卷起一场计算运用新浪潮。上世纪 50 年代,人们为物质世界建模;80年代,人们设法利用计算机增强的彼此的联系;在新世纪的 2010 年,计算应用翻开了与物质世界交互利用的新篇章。未来的计算机科学发展将为我们带来什么?它又需要什么样的设备、方法和技术的支持?看图灵奖获得者 Butler Lampson 对这些问题的思考。本文译自 在的发言稿“What Computers Do: Model, Connect, and Engage”译者:任艳The first uses of computers, around 1950, were to  or simulate other things. Whether the target is a nuclear weapon or a payroll, the method is the same: build a computer system that behaves in some important ways like the target, observe the system, and infer something about the behavior of the target. The key idea is abstraction: there is an ideal system, often defined by a system of equations, which behaves like both the target system and the computer model. Modeling has been enormously successful; today it is used to understand, and often control, galaxies, proteins, inventories, airplanes in flight and many other systems, both physical and conceptual, and it has only begun to be exploited.  1950年左右,计算机最初用来对事物“建模”或者模拟事物。无论对象是核武器还是工资单,方法都是一样:创建一个和目标对象在某些重要方面相似的电脑系统,然后观察这个系统,根据对象的行为作出推断。这样做的核心概念是提取:这里有一个理想的系统,常常由方程组来定义,它既像是目标系统,又像电脑模型。建模取得了巨大的成功,现在它已经用来理解,甚至常常用以控制物质和概念上的系统,比如银河系、蛋白质、目录清单、飞行中的飞机等系统,而且建模才刚刚开始被利用。Models can be very simple or enormously complex, quite sketchy or very detailed, so they can be adapted to the available hardware capacity even when it is very small. Using early computers to connect people was either impossible or too expensive, compared to letters, telephones and meetings. But around 1980 Moore’s law improvements in digital hardware made it economic to use computers for word processing, e-mail, mobile phones, the web, search, music, social networks, e-books, and video. Much of this communication is real time, but even more involves stored information, often many petabytes of it.  模型可以很简单,也可以非常复杂,可能很粗糙,也可能要求非常详细,所以就算非常小,它们也能够配合可利用的硬件容量。和书信、电话还有面谈相比,利用早期计算机来“联系”人们,要么无法实现,要么费用昂贵。但是在 1980 年左右,摩尔定律在数字硬件方面的进步让计算机变得经济实用,可用于文字处理、电子邮件、移动手机、网络、搜索、音乐、社交网络、电子图书、视频等领域。很多这样的通讯都是实时的,但更多涉及到信息存储,数量常常达到许多 PB (petabyte)。 So modeling and connection are old stories—there must be little more to do. Not so. Both the physical and the conceptual worlds are enormously complex, and there are great opportunities to model them more accurately: chemical reactions, airplane wings, disposable diapers, economies, and social networks are still far from being well understood. Telepresence is still much worse than face-to-face meetings between people, real time translation of spoken language is primitive, and the machine can seldom understand what the user doing a search is actually looking for. So there’s still lots of opportunity for innovations in modeling and connection. This is especially true in education, where computers could provide teachers with power tools.  所以建模和连接都有些过时了——它们看似已经没有发展空间了。但其实并非如此。物质世界和虚拟世界都极为复杂,我们现在有很大的契机做更精确的建模:化学反应、机翼、纸尿裤、经济以及社交网络都还远远未被充分理解。远程呈现仍然没有面对面交谈的效果好;口语的实时翻译还比较粗糙;机器很难明白用户真正想搜索的是什么……所以建模和连接仍然还有很多创新的机会,特别是在教育领域,因为计算机能为老师们提供功能强大的工具。Nonetheless, I think that the most exciting applications of computing in the next 30 years will engage with the physical world in a non-trivial way. Put another way, computers will become embodied. Today this is in its infancy, with surgical robots and airplanes that are operated remotely by people, autonomous vacuum cleaners, adaptive cruise control for cars, and cellphone-based sensor networks for traffic data. In a few years we will have cars that drive themselves, prosthetic eyes and ears, health sensors in our homes and bodies, and effective automated personal assistants. I have a very bad memory for people’s names and faces, so my own dream (easier than a car) is a tiny camera I can clip to my shirt that will whisper in my ear, “That’s John Smith, you met him in Los Angeles last year.” In addition to saving many lives, these systems will have vast economic consequences. Autonomous cars alone will make the existing road system much more productive, as well as freeing drivers to do something more useful or pleasant, and using less fuel.   然而,我认为,在未来的 30 年中,最激动人心的计算应用莫过于与物质世界不寻常的交互利用了。换句话说,计算机将会变得更形象具体。如今这一应用还处于萌芽阶段:人们远程操控的外科手术机器人和飞机、自动吸尘器、车辆巡航控制、还有针对交通数据开发的基于手机的传感器网络等。几年后,我们也许开发出自动驾驶的汽车、人工眼睛和耳朵、在家里和人体内放置的健康传感器、以及高效的自动化私人助理等。我很难记住人们的名字和容貌,所以我个人的梦想(比拥有一辆自动驾驶的汽车更容易)就是有一台微型照相机,可以别在我的衬衫上轻轻提醒我,“这是约翰∙史密斯,你去年在洛杉矶见过他。”除了治病救命,这些系统还能带来巨大的经济效应。自动驾驶的汽车会让现存的道路系统更高效,同时还把驾驶者解放出来,去做更多有用或者愉快的事情,而且节约了能源。What is it that determines when a new application of computing is feasible? Usually it’s improvements in the underlying hardware, driven by Moore’s law (2× gain / 18 months). Today’s what-you-see-is-what-you-get word processors were not possible in the 1960s, because the machines were too slow and expensive. The first machine that was recognizably a modern PC was the Xerox Alto in 1973, and it could support a decent word processor or spreadsheet, but it was much too small and slow to handle photographs or video, or to store music or books. Engagement needs vision, speech recognition, world modeling, planning, processing of large scale data, and many other things that are just beginning to become possible at reasonable cost. It’s not clear how to compare the capacity of a human brain with that of a computer, but the brain’s 1015 synapses (connections) and cycle time of 5 ms yield 2×1017 synapse events/sec, compared to 1012 bit events/sec for a 2 GHz, 8 core, 64 bit processor. It will take another 27 years of Moore’s law to make these numbers equal, but a mouse has only 1012 synapses, so perhaps we’ll have a digital mouse in 12 years (but it will draw more power than a real mouse).  当一个计算应用可能实现时,什么是决定性的因素呢?通常在于基础硬件的提高,根据摩尔定律,硬件性能每 18 个月提升一倍。在 20 世纪 60 年代,“所见即所得”的文字处理器还没有开发出来,因为那时的机器运行速度太慢,价格太高。第一台被公认为现代计算机的机器是 1973 年研发的 Xerox Alto,它可以完成不错的文字处理或者电子表格,但是它太小太慢,不能处理图片、视频,或者存储音乐、图书。交互利用需要场景、语音识别、世界建模、规划、大规模的数据处理、以及很多工作,这些技术才刚开始在合理的成本下变得可能。现在还不清楚如何比较人脑和电脑的容量,但大脑的 10次神经键(连接)和 5 毫秒的循环时间能处理每秒2×10次神经键事件,而一台 2GHz 内存、8核、64位处理器的电脑能达到每秒 10 比特的处理速度。根据摩尔定律,这些数据还需要 27 年的时间才能对等,但是一只老鼠只有 10次神经键,那么也许在 12 年内我们可以研发一只数字鼠(但是它可比一只真正的老鼠消耗更多的能量)。Hardware is not the whole story, of course. It takes software to make a computer do anything, and the intellectual foundations of software are algorithms (for making each machine cycle do more useful work) and abstraction (for mastering complexity). We measure a computer or communication system externally by its bandwidth (jobs done per unit time), latency (start to finish time for one job) and availability (probability that a job gets done on time). Internally we measure the complexity, albeit much less precisely; it has something to do with how many component parts there are, how many and how complex are the connections between parts, and how well we can organize groups of parts into a single part with only a few external connections.  当然硬件只是一方面,软件可以让电脑做任何事,而算法(让每次的机器工作周期完成更多有用的工作)和提取(用以掌控复杂性)又是软件的智力基础。要从外部衡量一台电脑或通讯系统的性能,我们会看它的带宽(每单位时间完成的工作)、延时(完成一件任务的时间)以及可利用性(及时完成工作的概率)。从内部看,我们衡量复杂性,虽然不太精确。它涉及到组成部分的多少、各部分间连接的多少和复杂程度,还有利用少数的外部连接将组件编为单个部分的完善程度。There are many methods for building systems, but most of them fit comfortably under one of three headings: Approximate, Increment, and Divide and conquer—AID for short.  我们有许多建立系统的方法,但大多数都可归到三类:近似(Approximate),增量(Increment),分治(Divide and conquer)—— 缩写为 AID。An approximate result is usually a good first step that’s easy to take, and often suffices. Even more important, there are many systems in which there is no right answer, or in which timeliness and agility are more important than correctness: internet packet delivery, search engines, social networks, even retail web sites. These systems are fundamentally different from the flight control, accounting, word processing and email systems that are the traditional bread and butter of computing.  得出一个近似值往往是容易踏出的第一步,而且也经常能够满足需求。更重要的是,很多系统没有正确的答案,或者时效性和灵活性比正确性更重要:网络数据包传输、搜索引擎、社交网络、甚至零售网站。比起传统和主要的计算,这些系统和飞行控制、统计、文字处理以及电子邮件系统有着本质的不同。Incrementally adjusting the state as conditions change, rather than recomputing it from scratch, is the best way to speed up a system (lacking a better algorithm). Caches in their many forms, copy on write, load balancing, dynamic scale out, and just in time compilation are a few examples. In development, it’s best to incrementally change and test a functioning system. Device drivers, apps, browser plugins and JavaScript incrementally extend a platform, and plug and play and hot swapping extend the hardware.  当情况变化时,比起重新抓取信息,重新计算,通过增量调整状态是加快系统速度的最佳方法(缺乏一个更好的算法)。比如,各种形式的缓存:写时拷贝(Copy on write)、负载平衡(load balancing)、动态扩容(dynamic scale out)、即时编译(just in time compilation)。在开发中,最好是通过增量来改变和测试一个功能系统。设备驱动、(应用程序)、浏览器插件以及 JavaScript 这些组件增量式地扩展了平台,而且即插即用、热调接等技术也扩展了硬件。Divide and conquer is the best single rule: break a big problem down into smaller pieces. Recursion, path names such as file or DNS names, redo logs for failure recovery, transactions, striping and partitioning, and replication are examples. Modern systems are structured hierarchically, and they are built out of big components such as an operating system, database, a browser or a vision system such as Kinect.  分治是最好的单一原则:将一个大问题拆成很多小部分,例如,递归、文件或 DNS 的路径名称、记录前次更新失败的日志、硬盘的分区、复制等。现代系统分层明确,它们有由操作系统等大组件、数据库、浏览器或视觉系统(如 Kinect)构成。For engagement, algorithms and abstraction are not enough. Probability is also essential, since the machine’s model of the physical world is necessarily uncertain. We are just beginning to learn how to write programs that can handle uncertainty. They use the techniques of statistics, Bayesian inference and machine learning to combine models of the connections among random variables, both observable and hidden, with observed data to learn parameters of the models and then to infer hidden variables such as the location of vehicles on a road from observations such as the image data from a camera.  对于交互利用来说,算法和提取就不够了。概率也是根本,因为机器对于物质世界的建模必然是不确定的。我们才刚刚开始学习写程序去处理这种不确定性。他们利用很多方法在随机的变量中合并连接模型,包括统计学、贝叶斯推断和机器学习技术。这些变量有的可见,有的隐藏。人们利用可见的数据学习模型的参数,然后推断隐藏的变量,例如,通过观察如相机拍摄的图片数据,来推断道路上车辆的位置。Some applications of engagement are safety critical, such as driving a car or performing sur-gery, and these need to be much more dependable than typical computer systems. There are methods for building dependable systems: writing careful specifications of their desired behav-ior, giving more or less formal proofs that their code actually implements the specs, and using replicated state machines to ensure that the system will work even when some of its components fail. Today these methods only work for fairly simple systems. There’s much to be learned about how to scale them up, and also about how to design systems so that the safety critical part is small enough to be dependable.  关于交互利用的一些应用对安全性至关重要,如驾驶汽车或者做外科手术,相比典型的计算机系统,这些应用需要更安全可靠。有一些方法可以构建可靠的系统:为想要的行为撰写细致的规范说明;给出或多或少的形式证明他们的代码确实落实了那些说明;利用复制状态的机器来保证系统即使在某些组件停止工作的情况下也能运作。如今,这些方法仅仅适用于相对简单的系统。如何才能扩容?怎样设计系统才能尽量减少安全性瓶颈,从而提高可靠性?关于这些问题我们还要不断学习。Engagement can be very valuable to users, and when it is they will put up with a lot of hassle to get the value; consider an artificial eye for a blind person, for example. But other applications, such as a system that tells you which of your friends are nearby, are examples of ubiquitous computing that although useful, have only modest value. These systems have to be very well engineered, so that the hassle of using them is less than their modest value. Many such systems have failed because they didn’t meet this requirement.  对于用户来说,交互利用可以变得非常重要,而且当他们想要得到这种价值的时候,需要应对许多困难,如人造眼之于盲人。其他的应用就是随处可见的计算,虽然有用,但价值有限,如一个可以告诉你哪个朋友在附近的系统。这些系统必须要构建得很好,才能让其有限的价值多过使用它们的争论。许多这样的系统都失败了,因为没能满足用户的需求。The computing systems of the next few decades will expand the already successful application domains that model the world and connect people, and exploit the new domain that engages computers with the physical world in non-trivial ways. They will continue to be a rich source of value to their users, who will include almost everyone in the world, and an exciting source of problems, both intellectual and practical, for their builders.   未来几十年的计算系统将扩大现有已成功的应用领域:为世界建模,联系人们以及利用新的领域从而让计算机与物质世界进行不寻常地交互利用。这些系统将继续为用户和创建者提供丰富的价值源泉,而这里的用户几乎包括了世界上的每一个人、每一个激动人心的问题,不论是智力上的还是实际存在的问题。  作者简介:Butler Lampson,知名计算机科学家,1992年图灵奖获得者。现任微软技术院士(Technical Fellow)。他是 Xerox PARC 的创始人之一,参与设计了 SDS 940 分时系统、Alto 个人分布式计算系统、Xerox 9700 激光打印机、两阶段提交协议、Autonet 局域网、网络安全的 SPKI 系统、微软公司台式计算机软件、微软公司的 Palladium 高保证堆栈存储器以及多种编程语言。他从事的工作内容包括计算机体系结构、局域网、光栅打印机、页面描述语言、操作系统、远程程序通话、编程语言及其语义、大规模编程、容错计算、事务处理、计算机安全、所见即所得编辑程序以及台式计算机等。曾获 1984 年美国计算机协会软件系统奖,1996年 IEEE 计算机先驱奖,2001年获得冯·诺依曼勋章,2004年国家工程院的德雷珀奖等众多表彰与荣誉。

  记者/陈粲然  丁香园 CTO 冯大辉曾透露自己是因为身体不好才萌生做健康产品的念头而离开支付宝的。接受《程序员》采访时,冯大辉说这一半实情一半是玩笑话。他选择加入丁香园最主要的是认同丁香园做的事情,认同丁香园团队。2011年,丁香园团队也紧跟移动互联网浪潮,推出了移动应用——《丁香园用药助手》,这款在 7 月推出的产品,发布 5 个月,下载量约为 75 万,在 App Store 排名最高上升到中国区免费榜第三名。    丁香园一直是以话题为主的医学论坛,网站会员大部分是医生。丁香园 CEO 张进认为,在移动互联网时代浪潮袭来之时,作为一个以关系为基础的产品,丁香园必须拥有各种移动互联网设备的客户端。这些产品将提升丁香园的医生社会化媒体属性,为医生的交流带来更大的便利。  产品需求大多来自其目标用户的反馈。丁香园曾做过一个非常简陋的 Web 版用药查询平台,出乎意料的是,这个工具的用户却非常多,很多用户打电话来希望丁香园能够提供移动终端的产品。在做过用户调查以后,丁香园认为这是一个非常好的切入医疗移动互联网的机会。所以在 2011 年 3 月,丁香园技术团队提出了移动端应用的设计方案,希望推动这个产品来迈入这个领域。于是,丁香园专门成立了 6 人的移动团队,在产品经理李宁的带领下开始尝试移动应用的开发,这也是这是他们第一次在移动中做的尝试。产品从 3 月份开始设计,8月份全面上线。   在一开始,李宁他们主要希望通过这款产品解决医生在实际工作应用中的问题。比如,他们发现平时医生在用药时,需要处方,或者药典,或者借鉴国外已经成熟的产品,所以他们想在这个方面做尝试,希望为医生提供一个更便捷的软件。于是《丁香园用药助手》的计划就应运而生了。  李宁说,由于国内很缺乏类似应用的开发经验,所以在早些时候,丁香园技术团队成员也走访了美国一些专注于手机医疗应用的创新上市公司,对国外医药行业的移动应用做了一些分析,他们的成功经验给了团队不少启示。但因为中美国情和医药政策的差异,药物信息在各个国家都有其专有的特殊性,美国市场上医疗相关的优秀软件未必适合中国用户。所以丁香园将出发点定为为中国医生临床诊治提供用药参考工具,其主要特点还是在医疗方面的专业性——只有立足专业性,才会为用户创造价值。  因为一开始就有明确定位,所以丁香园网站的用户就成了《丁香园用药助手》的第一批用户。2011年 6 月份软件第一版上线,团队就邀请了网站的专业医生安装使用。应用的功能都是针对医生的需求进行设计的,也直接给用户带去了方便。随之而来的就是不断地口碑传播,用户量也不断得到增长。据统计,丁香园的用户中有 40%~50% 的用户是医生,这些用户基本上都是丁香园的会员。     有了清晰的定位和思路,并不意味着一帆风顺。冯大辉表示,作为一款面对医生群体的应用,在开发用药助手时,丁香园技术团队主要需面对两个方面的挑战。  第一个挑战是数据的准确性:因为用药助手的使用对象有很大一部分都是医生,使用场景是临床诊治过程,因此数据必须准确无误,而国内很少有这类用户行为的调研数据。因此他们成立了数据处理团队,并且在数据源上做了非常严格的把控,只采用经过 SFDA 批准的正式临床药品说明书中的数据,由数据处理团队进行编辑,摒弃了一些“药典”中的脏数据,做到实用、准确。  第二个挑战是针对医生这个特定的用户群的 App 交互设计:与 IT 人士和极客相比,医生可能会对通用的设计元素感到陌生,也不愿意花时间来学习应用如何使用。另外,在临床诊治过程这样的使用场景之下,用户需要用非常少的步骤在非常短的时间内找到需要的信息。而在产品研发初期,很多用户的使用习惯都只能按照行业传统的方式去揣摩。为了解决这些问题,应用交互设计和前端工程师做了大量用户研究和测试。    与大多数国内开发者一样,《丁香园用药助手》的成长路上,不仅仅存在自身的问题,整个环境同样为丁香园的前行之路设置了很多障碍。  在李宁眼里,智能移动终端让个人健康管理的数据采集和监控变得快捷方便,给慢性疾病健康管理和突发事件的医疗救助带来很多便利。比如血压监控,设备根据便携和通用,从测量到数字化存储的时间缩短了一半,接入互联网后,信息可被医疗机构或健康管理机构事实获取和监控。可目前,虽然软件和硬件的开发,在国内已经不存在技术障碍,但国内还没有能够提供较好健康管理的机构,因此即便是个人的健康数据信息可及时采集,但无人监控、挖掘和服务,之前的数据采集也就失去了意义。  另外,虽然近些年来 WiFi 已经迅速普及,但国内很多用户依然在用速度较慢的 GPRS 网络,甚至有不少地区的营运商对用户访问的网络进行了限制。  李宁说,在产品上线之初多少有一种试水的心态。但在第一个版本发布之后,整个开发团队收到了来自各方面的积极反馈,正是这些用户反馈让他们坚定了对产品的信心。    虽然目前产品取得的成绩不错,但李宁坦言,用药助手在各方面都还不够完美,目前最急需改进的问题是其产品的迭代节奏仍不够快。移动应用在功能和使用习惯上都跟 Web 应用差别很大,把控开发周期和迭代速度十分关键。并且,作为一款以数据为核心的搜索类应用,如何在确保数据全面准确的情况下,让用户既能实现本地搜索,又能尽量控制软件体积大小,也是团队当前正在着手解决的问题之一。  他们发现,在医院有很多患者会拿着正在吃的药片去看病,这个场景让他们想到了按外观找药品的功能。因为很多药品在外观表面都会有一些特点,他们就从颜色、形状、剂型等几个关键点入手,对药品属性进行了标注,进而实现了图片搜功能。但同时,大量数据的整理耗时耗力,给数据支持团队带来了很大挑战。  《丁香园用药助手》提供了普通版和专业版,普通版涵盖了大部分常用药品,能基本满足药物信息查询的需要。专业版包括了更多药品信息、专业用药指南、医学常用计算工具。专业版用户还可以发送免费短信对患者进行用药指导。而在张进眼里,《丁香园用药助手》只是迈入移动领域的第一步,团队正在为刚刚推出的《丁香客》研发相对应的客户端,他希望丁香园基于以上应用,延展到医患互动的社交应用。

谷歌称应用商店下载量突破 200 亿次   北京时间 6 月 28 日凌晨消息,谷歌 2012 年I/O开发者大会今天开幕,谷歌在会上宣布,谷歌应用商店 Google Play 的下载总量达到 200 亿次。  谷歌介绍称,Google Play 应用商店目前已有 60 万款应用,应用安装量达 200 亿次,在 132 个国家提供付费应用,190个国家和地区提供免费应用。  今年 5 月初,谷歌发言人吉娜·约翰逊(Gina Wakley Johnson)对外表示,谷歌应用商店 Google Play 的应用下载量已于数周前突破 150 亿次。  谷歌今年 1 月表示,其应用商店的应用下载量达到 110 亿次。谷歌应用商店当时仍名为 Android Market。  谷歌应用商店目前的应用程序总量及下载总量仍然落后苹果 App Store,但是双方的差距已经在逐渐缩小。  6月 12 日,苹果在 2012 全球开发者大会上宣布,其 App Store 下载量目前已经突破 300 亿次,应用程序数量达到 65 万款。

  5月 17 日消息,据国外媒体报道,Facebook 移动开发者关系负责人在接受美国著名的读写网(ReadWriteWeb)采访时曾表示 Facebook 的移动应用表现不佳,并称如果 Facebook 是今天建立的,那么它一定会是一个移动应用程序。  Facebook 的移动应用不但无聊而且还很笨重。对于一个每月活跃移动用户人数多达4.88亿的网站来说,趋势已经表明越来越多的人在意他们的移动用户体验,因此这是一个值得注意的问题。    一、应用程序大且运行缓慢。因为使用了 HTML5 技术,Facebook 应用程序缓存数据的方式与其它应用程序不同。每次用户启动应用程序的时都会从零开始下载数据。  二、没有第三方应用程序支持。目前,仍然还有一些忠实的玩家在玩 FarmVille 和黑帮战争(Mafia Wars)。尽管他们把 Facebook 作为平台来看待,但是 Facebook 的移动应用并不支持第三方开发的应用程序。  三、照片上传功能表现不佳。主要为上传速度缓慢,操作复杂;当用户想要上传照片之前会首先被引导到个人信息页面再进行后续操作。  四、移动广告业务体验差。今年年初,为了获取更多收入 Facebook 推出了赞助故事(Sponsore d Storie s)广告,主要是基于用户喜好来进行推荐。从用户反馈的消息来看,该广告降低了本就糟糕的用户体验。并且,如果用户没有在 Facebook 上“赞”任何东西,那么广告将很少会出现,这直接影响了移动广告业务的增长。  Facebook 于 2004 年诞生于大学寝室,在那时还没有人考虑移动互联网应用。Facebook 移动开发者关系主管自己也对其应用程序的表现不满意。随着 Facebook 公司 IPO 日期的临近,改善移动应用程序用户体验这一问题显得尤为重要。

分类:兴趣

时间:2016-05-06 13:01:06