前言
有几件事促使我写了这本书。我是个超级科幻迷,我痴迷于奇幻的用户界面,就是电影和电视节目中常被用作情节设计的界面。如果做得很好,它们会完美地满足演员的需要,一目了然地传达一个状态,一个转变,然后是一个新的状态。我花了几年的时间寻找工具包来帮助我制作更像这些的真实界面。随着我在编程方面做得越来越好,我意识到不能只依赖于主题化的通用工具包,为美学和情节专门设计界面是非常有意义的。我也不得不承认,我要寻找的工具包并不会马上出现。
当我将奇幻的界面分解成通用的组件和逻辑时,我意识到它们并不是那么复杂,而且很多组件是通用的。然而,这些奇幻的界面确实打破了许多规则。为了表现情节中的转变,它们展示的内容也会发生变化。数据流入并影响状态。整个部分以我们通常在仪表板中不会做的方式移动或转换。Stephen Few 等人对于仪表板的传统观点是它们应该一眼就能传达出现状。当所有东西同时在运动和变化时,这是很难做到的。在仪表板基本功能的传统观点之外,仪表板真正的价值在于它满足了不同的需要。如果我们不再将我们的接口只局限于与现有用途的仪表板进行比较,那么我们可以设置新的规则。
最近的一个例子可以在 HBO 的《西部世界》的奇幻世界中看到(见图1)。剧中的模拟用户界面,代表了技术的未来,并显示了与阈值和规范相比较的当前信息。它看起来很神奇,并且在工作系统实现也是一个令人鼓舞的目标。
至今,我大部分时间都在从事技术工作。我看到很多问题是通过查看原始数据流解决的,但是在过去的 20 多年里,我并没有看到这方面有什么变化。日志、事件或消息都在控制台中被处理成流,最多被过滤并高亮显示在内联信息中。你必须在显示内容的时候看着屏幕,如果错过了,它可能就会出现在明天的日报中。对于控制台中每分钟一行信息的系统来说,这是可以接受的,但是对于今天的系统来说,这是行不通的,因为现在通常每秒钟有数千行信息。即使是在这种量级下,我仍看到通过浏览流日志来解决问题的情况,这些日志不会出现在日报中,因为在这些报告中,信息过于抽象和聚合。经过多年的观察,我希望做一个可行的解决方案,它介于控制台日志和一目了然的仪表板之间。
技术本身并没有进步。我真正想要的是与系统更加互动。增强现实感的东西是实用的、不引人注目的、有帮助的。当我想到需要做什么的时候,我会一直关注阻碍我前进的东西,在到达目的地之前必须跨过的垫脚石。需要克服的一个主要技术难题是理解系统做了什么决定。当人工智能为我做决定时,我想知道为什么这么做。我越是研究某件事为什么被决定并且能够纠正这些假设时,我就越信任这个系统。Netflix 在推荐节目方面做得很好,它会告诉你为什么推荐某个节目,以及推荐的可信度是多少,但你无法纠正这个算法,这不是互动。它观察,施魔法,然后你看到结果。
我们为了跨越技术的某个点,将不得不后退几步,并纠正这一点。我们必须重新设计一些东西,让人们在这些决策中更多地成为合作伙伴。这在今天是很困难的,因为大多数系统都集中为你做出决定。算法是通用的。如果类型和语言是推荐相似电影的关键因素,那么它就是为每个人做的。在我知道的任何地方,我都无法增加令人惊叹的奇幻用户界面和新颖的宇宙飞船设计的权重,来帮我找到可能让我感兴趣的电影。这种级别的定制要求智能更个性化或多层次。
能够理解并改变机器决策的重要性远远超出了娱乐。人工智能算法通过你看到的信息彻底影响你的观点,它们决定了你的互联网搜索结果。当你在线访问信息时,安全设备会决定哪些信息是安全的(对“安全”的定义非常宽松但不灵活)。为了保证物理方面的安全,我们有算法来决定谁在监视名单上,谁可能犯罪。类似的复杂算法在信用评分评估中是不被允许的,因为它们必须在法庭上很容易辩护。这就是问责和理解所有自动化决策需要达到的程度。
最后,我开始开发自己的工具和组件,以适应我一直在运行的数据展示领域。经过多年的思考,我意识到这是一个很少被探索的问题。我遇到的大多数组织都被他们每天的报告搞得不知所措。他们并没有思考如何通过更快地应对某些事件和取得进展来改善工作。从新想法到实际解决方案需要一些新的想法、案例研究,以及更多类似的东西。我希望本书有助于推动这一进程。
本书面向读者
如果你是一名设计师或开发人员,基于事件的数据对你的目标有重要意义,你会在这里找到一些感兴趣的内容。这些主题介于设计和开发之间,因为它们在展示可理解的数据时是不可或缺的。
如果你已经尝试在控制台中滚动来查看数据,或者你已经放弃在控制台中滚动数据因为它不起作用,本书将给你提供一些探索的方法。
如果你有兴趣为你的需求创建一个系统,以揭示在不透明过程中发生的事情,本书将让你了解如何提高系统的可见性。
本书的组织结构
本书是从“如何构建它”的角度来组织的。本书的写作有很多可能的出发点。如果你已经准备好了要显示的格式化的流数据,那么可以跳过关于展示的章节。许多组织还没有达到这一点。它们的数据本质上是基于事件的,但没有很好的连接方式。本书也贯穿了这些要点,以及它们之间的一切。一些主题,如机器学习,只是互补和可选的。图2 代表了组件和过程的逻辑进展,这些组件和过程涉及将流数据可视化到集成分析人员,并在复杂系统中进行自动处理。这个工作流就是本书章节的顺序。
本书内容约定
本书使用以下排版约定:
斜体(Italic)
表示新术语、网址、电子邮件地址、文件名和文件扩展名等。
等宽字体(Constant width)
表示程序代码以及段落内用于引用的代码内容,如变量或函数名、数据库、数据类型、环境变量、声明语句和关键字等。
使用代码示例
更多补充资料(包括示例代码、练习等)可以从这里下载https://github.com/SuddenDevelopment/Visualizing-Streaming-Data。
本书的目的是帮助你完成工作任务。通常,对于书中提供的示例代码,你可以直接在自己的程序和文档中使用,无须联系我们获取授权,除非你要再次分发大量示例代码。举例来说,如果你在编写程序时使用了本书提供的一部分代码,不用担心授权问题;但如果你要以CD-ROM 等方式销售或分发O’Reilly 系列图书中的示例代码,则需要获得我们的授权;在解答问题时如需引用本书提供的代码,你不需要取得授权;但如果你在自己的产品文档中使用本书的任意代码,则必须获得授权。
我们不强制要求版权声明,但我们感谢你能够引用本书。引用格式一般包含书名、作者、出版商和ISBN,例如:“Visualizing Streaming Data by Anthony Aragues(O’Reilly)。Copyright 2018 Anthony Aragues,978-1-492-03185-7 ”。
如果你认为在使用示例代码时超出了合理范围或上述许可范围,请随时与我们联系: permissions@oreilly.com。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近40 年来,O’Reilly Media 致力于提供技术和商业
培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
联系我们
欢迎向出版社反馈有关本书的评论和问题:
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书提供了专门的网页,用于发布内容勘误、范例和其他相关信息。
你可以通过这里访问http://bit.ly/visualizing-streaming-data。
有关本书的任何评论或技术问题,请发送电子邮件至bookquestions@oreilly.com。
了解与本书相关的更多信息、课程、会议和新闻,请访问我们的网站http://www.oreilly.com。
我们的Facebook: http://facebook.com/oreilly。
我们的Twitter: http://twitter.com/oreillymedia。
我们的YouTube: http://www.youtube.com/oreillymedia。
致谢
Bob Page 仔细审阅了我在这个主题上的所有细节,并将他在大型企业数据方面的专业知识提供给我。他还把我介绍给对这份材料有重大影响的人。
Antonio Figueiredo 在流数据处理和可视化方面有很多实际经验。他对这个主题的热情以及愿意讨论一切相关问题的意愿对我初期的工作产生了巨大的鼓励。
Sven Krasser 是一位老同事,也是著名的机器学习专家。通过与他的合作,我认识到有必要让人们在机器学习过程中更具互动性。
Brett Meyer 帮助我探索了将流数据可视化应用到机器学习上的各种方法。他的专业知识帮助我找到正确的术语,并理解它们在这方面的作用。
Georges Grinstein 是著名的数据可视化专家,包括实时数据和流数据。他对我以前没有考虑过的一些事情有着学术观点,并给我看了一些我自己也找不到的相关的有趣的项目。
Casey Rosenthal 创建了一个最有用、最相关的案例研究,我可以从自己的经验之外学到一些东西。他乐于分享这些经验,并讨论这个小众领域应该走向何方。
Weidong Yang 基本上就是不以本书为主题的。他的公司创建了互动装置,以创造性的方式收集和呈现数据。他帮助我分享这些经验,也有助于验证这个话题在当前有市场。
Raffael Marty 无意中成为我写本书的催化剂。我参加了他的安全数据可视化研讨会,我很喜欢,我希望有一天我也能教类似的课。