前言
有幾件事促使我寫了這本書。我是個超級科幻迷,我癡迷于奇幻的用戶界面,就是電影和電視節(jié)目中常被用作情節(jié)設計的界面。如果做得很好,它們會完美地滿足演員的需要,一目了然地傳達一個狀態(tài),一個轉變,然后是一個新的狀態(tài)。我花了幾年的時間尋找工具包來幫助我制作更像這些的真實界面。隨著我在編程方面做得越來越好,我意識到不能只依賴于主題化的通用工具包,為美學和情節(jié)專門設計界面是非常有意義的。我也不得不承認,我要尋找的工具包并不會馬上出現(xiàn)。
當我將奇幻的界面分解成通用的組件和邏輯時,我意識到它們并不是那么復雜,而且很多組件是通用的。然而,這些奇幻的界面確實打破了許多規(guī)則。為了表現(xiàn)情節(jié)中的轉變,它們展示的內(nèi)容也會發(fā)生變化。數(shù)據(jù)流入并影響狀態(tài)。整個部分以我們通常在儀表板中不會做的方式移動或轉換。Stephen Few 等人對于儀表板的傳統(tǒng)觀點是它們應該一眼就能傳達出現(xiàn)狀。當所有東西同時在運動和變化時,這是很難做到的。在儀表板基本功能的傳統(tǒng)觀點之外,儀表板真正的價值在于它滿足了不同的需要。如果我們不再將我們的接口只局限于與現(xiàn)有用途的儀表板進行比較,那么我們可以設置新的規(guī)則。
最近的一個例子可以在 HBO 的《西部世界》的奇幻世界中看到(見圖1)。劇中的模擬用戶界面,代表了技術的未來,并顯示了與閾值和規(guī)范相比較的當前信息。它看起來很神奇,并且在工作系統(tǒng)實現(xiàn)也是一個令人鼓舞的目標。
至今,我大部分時間都在從事技術工作。我看到很多問題是通過查看原始數(shù)據(jù)流解決的,但是在過去的 20 多年里,我并沒有看到這方面有什么變化。日志、事件或消息都在控制臺中被處理成流,最多被過濾并高亮顯示在內(nèi)聯(lián)信息中。你必須在顯示內(nèi)容的時候看著屏幕,如果錯過了,它可能就會出現(xiàn)在明天的日報中。對于控制臺中每分鐘一行信息的系統(tǒng)來說,這是可以接受的,但是對于今天的系統(tǒng)來說,這是行不通的,因為現(xiàn)在通常每秒鐘有數(shù)千行信息。即使是在這種量級下,我仍看到通過瀏覽流日志來解決問題的情況,這些日志不會出現(xiàn)在日報中,因為在這些報告中,信息過于抽象和聚合。經(jīng)過多年的觀察,我希望做一個可行的解決方案,它介于控制臺日志和一目了然的儀表板之間。
技術本身并沒有進步。我真正想要的是與系統(tǒng)更加互動。增強現(xiàn)實感的東西是實用的、不引人注目的、有幫助的。當我想到需要做什么的時候,我會一直關注阻礙我前進的東西,在到達目的地之前必須跨過的墊腳石。需要克服的一個主要技術難題是理解系統(tǒng)做了什么決定。當人工智能為我做決定時,我想知道為什么這么做。我越是研究某件事為什么被決定并且能夠糾正這些假設時,我就越信任這個系統(tǒng)。Netflix 在推薦節(jié)目方面做得很好,它會告訴你為什么推薦某個節(jié)目,以及推薦的可信度是多少,但你無法糾正這個算法,這不是互動。它觀察,施魔法,然后你看到結果。
我們?yōu)榱丝缭郊夹g的某個點,將不得不后退幾步,并糾正這一點。我們必須重新設計一些東西,讓人們在這些決策中更多地成為合作伙伴。這在今天是很困難的,因為大多數(shù)系統(tǒng)都集中為你做出決定。算法是通用的。如果類型和語言是推薦相似電影的關鍵因素,那么它就是為每個人做的。在我知道的任何地方,我都無法增加令人驚嘆的奇幻用戶界面和新穎的宇宙飛船設計的權重,來幫我找到可能讓我感興趣的電影。這種級別的定制要求智能更個性化或多層次。
能夠理解并改變機器決策的重要性遠遠超出了娛樂。人工智能算法通過你看到的信息徹底影響你的觀點,它們決定了你的互聯(lián)網(wǎng)搜索結果。當你在線訪問信息時,安全設備會決定哪些信息是安全的(對“安全”的定義非常寬松但不靈活)。為了保證物理方面的安全,我們有算法來決定誰在監(jiān)視名單上,誰可能犯罪。類似的復雜算法在信用評分評估中是不被允許的,因為它們必須在法庭上很容易辯護。這就是問責和理解所有自動化決策需要達到的程度。
最后,我開始開發(fā)自己的工具和組件,以適應我一直在運行的數(shù)據(jù)展示領域。經(jīng)過多年的思考,我意識到這是一個很少被探索的問題。我遇到的大多數(shù)組織都被他們每天的報告搞得不知所措。他們并沒有思考如何通過更快地應對某些事件和取得進展來改善工作。從新想法到實際解決方案需要一些新的想法、案例研究,以及更多類似的東西。我希望本書有助于推動這一進程。
本書面向讀者
如果你是一名設計師或開發(fā)人員,基于事件的數(shù)據(jù)對你的目標有重要意義,你會在這里找到一些感興趣的內(nèi)容。這些主題介于設計和開發(fā)之間,因為它們在展示可理解的數(shù)據(jù)時是不可或缺的。
如果你已經(jīng)嘗試在控制臺中滾動來查看數(shù)據(jù),或者你已經(jīng)放棄在控制臺中滾動數(shù)據(jù)因為它不起作用,本書將給你提供一些探索的方法。
如果你有興趣為你的需求創(chuàng)建一個系統(tǒng),以揭示在不透明過程中發(fā)生的事情,本書將讓你了解如何提高系統(tǒng)的可見性。
本書的組織結構
本書是從“如何構建它”的角度來組織的。本書的寫作有很多可能的出發(fā)點。如果你已經(jīng)準備好了要顯示的格式化的流數(shù)據(jù),那么可以跳過關于展示的章節(jié)。許多組織還沒有達到這一點。它們的數(shù)據(jù)本質(zhì)上是基于事件的,但沒有很好的連接方式。本書也貫穿了這些要點,以及它們之間的一切。一些主題,如機器學習,只是互補和可選的。圖2 代表了組件和過程的邏輯進展,這些組件和過程涉及將流數(shù)據(jù)可視化到集成分析人員,并在復雜系統(tǒng)中進行自動處理。這個工作流就是本書章節(jié)的順序。
本書內(nèi)容約定
本書使用以下排版約定:
斜體(Italic)
表示新術語、網(wǎng)址、電子郵件地址、文件名和文件擴展名等。
等寬字體(Constant width)
表示程序代碼以及段落內(nèi)用于引用的代碼內(nèi)容,如變量或函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、聲明語句和關鍵字等。
使用代碼示例
更多補充資料(包括示例代碼、練習等)可以從這里下載https://github.com/SuddenDevelopment/Visualizing-Streaming-Data。
本書的目的是幫助你完成工作任務。通常,對于書中提供的示例代碼,你可以直接在自己的程序和文檔中使用,無須聯(lián)系我們獲取授權,除非你要再次分發(fā)大量示例代碼。舉例來說,如果你在編寫程序時使用了本書提供的一部分代碼,不用擔心授權問題;但如果你要以CD-ROM 等方式銷售或分發(fā)O’Reilly 系列圖書中的示例代碼,則需要獲得我們的授權;在解答問題時如需引用本書提供的代碼,你不需要取得授權;但如果你在自己的產(chǎn)品文檔中使用本書的任意代碼,則必須獲得授權。
我們不強制要求版權聲明,但我們感謝你能夠引用本書。引用格式一般包含書名、作者、出版商和ISBN,例如:“Visualizing Streaming Data by Anthony Aragues(O’Reilly)。Copyright 2018 Anthony Aragues,978-1-492-03185-7 ”。
如果你認為在使用示例代碼時超出了合理范圍或上述許可范圍,請隨時與我們聯(lián)系: permissions@oreilly.com。
O’Reilly 在線學習平臺(O’Reilly Online Learning)
近40 年來,O’Reilly Media 致力于提供技術和商業(yè)
培訓、知識和卓越見解,來幫助眾多公司取得成功。
我們擁有獨一無二的專家和革新者組成的龐大網(wǎng)絡,他們通過圖書、文章、會議和我們的在線學習平臺分享他們的知識和經(jīng)驗。O’Reilly 的在線學習平臺允許你按需訪問現(xiàn)場培訓課程、深入的學習路徑、交互式編程環(huán)境,以及O’Reilly 和200 多家其他出版商提供的大量文本和視頻資源。有關的更多信息,請訪問http://oreilly.com。
聯(lián)系我們
歡迎向出版社反饋有關本書的評論和問題:
美國:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術咨詢(北京)有限公司
我們?yōu)楸緯峁┝藢iT的網(wǎng)頁,用于發(fā)布內(nèi)容勘誤、范例和其他相關信息。
你可以通過這里訪問http://bit.ly/visualizing-streaming-data。
有關本書的任何評論或技術問題,請發(fā)送電子郵件至bookquestions@oreilly.com。
了解與本書相關的更多信息、課程、會議和新聞,請訪問我們的網(wǎng)站http://www.oreilly.com。
我們的Facebook: http://facebook.com/oreilly。
我們的Twitter: http://twitter.com/oreillymedia。
我們的YouTube: http://www.youtube.com/oreillymedia。
致謝
Bob Page 仔細審閱了我在這個主題上的所有細節(jié),并將他在大型企業(yè)數(shù)據(jù)方面的專業(yè)知識提供給我。他還把我介紹給對這份材料有重大影響的人。
Antonio Figueiredo 在流數(shù)據(jù)處理和可視化方面有很多實際經(jīng)驗。他對這個主題的熱情以及愿意討論一切相關問題的意愿對我初期的工作產(chǎn)生了巨大的鼓勵。
Sven Krasser 是一位老同事,也是著名的機器學習專家。通過與他的合作,我認識到有必要讓人們在機器學習過程中更具互動性。
Brett Meyer 幫助我探索了將流數(shù)據(jù)可視化應用到機器學習上的各種方法。他的專業(yè)知識幫助我找到正確的術語,并理解它們在這方面的作用。
Georges Grinstein 是著名的數(shù)據(jù)可視化專家,包括實時數(shù)據(jù)和流數(shù)據(jù)。他對我以前沒有考慮過的一些事情有著學術觀點,并給我看了一些我自己也找不到的相關的有趣的項目。
Casey Rosenthal 創(chuàng)建了一個最有用、最相關的案例研究,我可以從自己的經(jīng)驗之外學到一些東西。他樂于分享這些經(jīng)驗,并討論這個小眾領域應該走向何方。
Weidong Yang 基本上就是不以本書為主題的。他的公司創(chuàng)建了互動裝置,以創(chuàng)造性的方式收集和呈現(xiàn)數(shù)據(jù)。他幫助我分享這些經(jīng)驗,也有助于驗證這個話題在當前有市場。
Raffael Marty 無意中成為我寫本書的催化劑。我參加了他的安全數(shù)據(jù)可視化研討會,我很喜歡,我希望有一天我也能教類似的課。