我學懂寫SQL已經很多年,但我從來沒有正式地學習如何設計一個database,大多數只是隨便地上網找些SQL例子現炒現賣。這本課本是database設計的天書,已經有二十五年歷史出版至第四版。整本書內沒有教一句SQL語法,若果連SQL還未懂的話,恐怕這本書太過艱深了。
有三分一本書的篇幅,談論應該如何訪問database的用家,在開始設計database之前,先找出database需要儲存的資料和要做什麼類型的query。現在看完書後回顧重溫,覺得這部份有點是想當然爾的常識,但我初次閱讀那些章節時,很有增廣見聞的新鮮感。我工作上寫了程式幾十年,那些系統需求的規格,自問見過不少亦做過不少,但我始終是邊做邊學紅褲子出身,第一次接觸如此有系統寫系統需求的方法。
Relational database是什麼,說到底就是一個個table,寫著一行行的資料,每筆資料有很多field載著data,而每個table之間用key去互相連系。在看這本書前,我連什麼是normal form也不知道,不過看完書,其實我還是一知半解,因為normal form實在太深了。作者教用另一個設計方法,一步步把資料的fields組合為不同的tables。由細到大一層層建築上去,比起從一個大table開始,然後用normal form去分拆成不同的tables,雖然工序更多步驟更費神,但初學者比較容易明白。
Database設計最重要是資料的可靠性,「唯一」就是設計的關鍵,每一項資料只存在一個地方,每一個地方只儲存一項資料。可以計算出來的資料,就不要浪費地方去存放,有需要加速就建立view來暫存。聽起來好像很容易,實際設計database時,要很有耐心去逐項逐項校對,才不會不小心產生設計上的缺陷。
很多年來我一直只懂SQL,沒有學習其他database,早十年NoSQL還是剛冒起,我還有點看輕它,覺得它冇用。俗語有云,當你手拿著鎚子,所有的問題都變成釘子。只懂SQL,很自然習慣把所有問題都用Relational Database去解決,儘管要花更加多的氣力,有時殺雞亦要用牛刀,因為只得一把刀。
這本書2018年出版,已經是第二版,很多年前第一版時已經想看。只不過是短短三年,書中有些code已經過時了,新版本database的syntax有點不一樣,不過基礎理論沒有改變,仍然合用。NoSQL有太多選擇,想學習也老鼠拉龜無從入手。這本書介紹最熱門的七個database,從傳統SQL的Postgres為起點開始,然後逐一講解其他NoSQL DB的優劣trade-off,什麼情況適合應用。比起每次只教一種database的書,讓讀者有宏觀的視野。
因為一本書要教七個DB的關係,這本書的內容非常壓縮,簡單的基本操作甚至略過不談,直接叫讀者去看官方document。每個DB的教程分為三部份,讓讀者可以連續七個星期,每個週用三日學完。我一口氣一次過看完,一章大約要用四個小時,不過我只是跟著example打code玩下個DB,沒有個每日的功課,若果做埋功課,大約要兩倍時間。
第一章Postgres是溫習SQL,我以前用開MySQL同SQLite,也算是學新野。第二章教HBase是columnar database,沒有隨意search的功能,要靠index去讀data,但是非常scalable,是Google Cloud Bigtable的開源版。第三章教MongoDB是document DB,search JSON的功能很強大,不用寫schema很方便。第五章教couchdb,與MongoDB一樣都是寫JSON object,但couchdb的read要事先建立views,另外監視change的功能也很好用。
第六章教是我最有興趣的Neo4J,但書中教了graph DB的很皮毛,連Cypher語法如何閱讀也沒有教,我要上網再找資料自學。Graph DB同SQL很大分別,完全是另一個類型的應用,學了大開眼界。第七章教AWS DynamoDB,個database本身很平平無奇,強大是AWS後台的支援,連著AWS其他功具一起教,學習寫data pipeline,提升用DB的另一個層次,真正的big data。最後一章教redis,簡單易用夠方便,我認為redis應該早些教,in memory key-value store都啱做一些quick and dirty job。
這是一本不適合新手的入門書,教的東西很廣闊但很膚淺,主要是給讀者一個perspective,之後讀者就要靠自己去看document了。若果要看完一本書就能立即上手揼project,拖著一步步教導如何建站,這本書並不適合你。反而這本書更像是sampler,淺嚐每種DB的味道,並例一起觀察它們的異同,然後覺得那個DB有用,就再上網去找資訊深造。讀這本書有一個好處,讀完後基礎理論打了底,讀official document快很多,可以直接跳過不用看其他書,反正去到最後都係要翻查參考official document。
自疫情爆發各國央行狂印銀紙,股市瘋狂大上大落,吸引不少人進場投資投機。買賣股票總不能盲模模亂信網上貼士,要自己做功課研究市場資訊,發掘價格波動的趨勢。Python是最流行的程式語言,因為方便好用又多library,差不多日常寫程式都用它。以前研究股票會用Excel,pandas基本上就是Python的Excel,Excel做到的功能,試算表統計數字畫表等等,pandas全部都可以做到。
看pandas我最初只是上Towards Data Science 看tutorial,基本大致明白matrix計算的原理和如何寫程式,然後不知怎樣信手貼來這本Mastering pandas for Finance來看。這本書多code多圖少字,可以當成跟著做的練習,簡單地示範如何用panads製作,所有睇市要用的分析工具。由最簡單的下載價格資訊,畫股票圖計算平均線,到計算期權的各種greek,計算portfolio風險管理,甚至電腦自動操盤也有教。
這是一本入門級的書,有個應用目標去學pandas,比起其他書的虛構例子較沒那麼枯燥。書中關於股票計算知識的簡介,亦是一個很好的溫習。書中的程式例子只是一個起步階,像菜單一樣為讀者介紹有什麼項目可以做。到真正自己寫工具去分析股市場時,基本上完全不到書中的範例,因為有其他更加好用library。本書只有三百多頁,照書中的練習打入電腦執行一次,大約一兩天就做完,就算不懂pandas也很簡單容易上手,不過就需要有Python的基本知識。
有時看網上直播見投資專家用Metastock,幾百美元一個分析股票軟件,左看右看python加pandas有齊所有功能,還更加flexible更加powerful。
因工作上的需要,去年我才開始學習Python,寫了Python程式接近一年,寫起來漸漸得手應手。Python不愧為近年冒起得最快的語言,它集傳統OOP語言如C++和快速interpret語言如Perl兩家之大成,syntax簡潔易用,dynamic typing和duck typing寫起來更輕鬆自由,若果對typing不放心還可以optional type check。我久不久要回去寫C++,寫開Python忽然要寫上一代language,很不習慣,然後就咒罵為什麼C++沒有那些好用的功能,當然鬧了兩句後,就會記得C++比Python運行速度快很多倍,static type是有其存在的原因。
學習一個程式語言,除了學習syntax學習使用不同library外,若果要學得深入學的精專,就要明白程式語言的運作原理。C++只要有C的基礎,而C只要有Assembly的基礎,只要弄懂pointer其他就很易明。Python也是一樣,只要明白它任何東西也是object的核心,它的variable和funciton scope是如何resolve,其他所有「進階」syntax只是飾裝的外衣。
市面上有很多Python課本,亦有不少online tutorial,絕大部份都是教你應用Python去寫code,沒有真正講解Python的內部結構。Python official document有提及,我由頭到尾叫做看過一篇,不過寫得太枯燥無味,內容零碎沒有系統,不適合一般人閱讀。這本《Programmer’s Python: Everything is an Object》是進階讀物,並不適合初學者,甚至不會你寫Python,而是從程式語言設計的層面,去解釋Python內裏的運作原理,換一句話說就是解釋那些double underscore builtin attributes有什麼作用。
這本書是I Programmer 網頁的作者出版,這個網頁是我follow開講computer science專業級知識的網頁。網站上有這本書的試看版 ,差不多也有半本書的內容,因為實在寫得太好,所以一定要賣回來看全本的內容。這本書非常冷門,不要說一般書店或網上書店沒有得賣,連加拿大Amazon也沒有入貨,更不要說網上沒有盜版pdf,我要特地去美國Amazon訂購回來。
這本書有沒有實際用處?很難講。日常寫Python程式,其實不需要理會它如何運作。看完這本書後,讓我懂得欣賞Python設計的巧妙。若果對程式語言設計有興趣,這本書亦講述很多程式語言設計理論,對日後學習其他語言會很有幫助。
說到要學電腦程式語言,Python相信是近年最炙手可熱的語言了,一來Syntax易學易用,二來library支援眾多,更是近期最熱門人工智能的主要語言,我最近因工作需要也要學Python。以前我讀大學時程式入門課教C,然後過幾了年進化為教Java,不過最近陸續轉為教Python了。公司新請回來的大學生個個都懂Python,吾等老海鮮也要與時並進才不會被淘汰。
原本公司內部個兩不同部門使用不同語言,chip testing和apps那邊以前用tcl,貪tcl不用compile方便操作,我們software testing那邊則以C++為主,因為需要OOP和static type來架構軟件測試系統。兩個部門有很多基礎的應用程式功能重壘,不過因為使用不同語言,同一個功能需要寫兩次。高層認為一code兩寫很沒有效率,下令我們統一使用同一語言,在雙方列出對語言的要求後,Python成為很自然的選擇。Python是interpreter language不用compile,同時又支援OOP和type checking,一次過滿足我們兩個部門的願望。
學習新程式語言,很多人喜歡讀網上課程,不過我比較傳統喜歡看書,我嫌網上課程看影片太嘥時間,看書容易明的部份可以速讀,難明的部份可以花多此時間重看幾遍。學習寫程式最重要是落手落腳寫code,跟課本的練習做同做網上課程的功課分別不大,反正程式寫得好就work有bug就唔work,沒有需要改功課對答案的問題。在芸芸眾多本Python書中,我挑選了這本《Head First Python》,看電腦書不是大大本很厚多字就好,最重要是把應用慨念解釋清楚,有時一張圖或一個例子可以抵得上三版紙枯燥的文字。這本書開宗明義不是教寫程式,而是寫給已懂其他語言的人學習Python語法。這本書最優勝之處的單元的編排,整本書就是寫一個有趣的小小網上應用程式,每章都教一些新東西為程式加上新功能,看書就好似一路做project咁不會悶。最怕有些程式書只是把語法由頭到尾列出來,再口水多過茶地加鹽加醋地長篇大論講解。
最初看Python很不習慣那個indent style,寫了咁多年程式都係用curly bracket, 唯有Python別樹一格強迫indent,不過寫幾個星期習慣了就不再覺得礙眼。同C++或Java比,Python同Ruby算是第四代的程式語言,去年學過Ruby所以Python很快上手,兩者的設計理念不同,不過最核心的本質其實一樣,明白了個背後用C寫的Ruby/Python個interpreter,睇埋個interpreter入面的internal data-structure,咁成個語言就一理通百理明。Ruby就乜都係object,Python雖然有人都係咁講,但我認為Python的真蒂其實乜都係callable,連class declaration都係一個function。明白了這一點後,Python所有新feature concept,如generator,declaration,context manager,future, asyncio等等就能清楚理解明白。
睇完本書跟住它做完個project仔,再上Python官網看一次官方tutorial,把standard library的所有API係咁意睇一次,大慨知道有乜function乜library可以用,遇到問題就問stack overflow大神求救,還有功能強大的PyCharm相助,其實Python很容易上手。越寫越覺得Python好使好用,大有相逢恨夜的感覺。現在學了用了Python兩個多月,自問至少追上公司新仔的水平,review佢地寫的code也不會失禮問白痴問題。
在PC上安裝Linux很簡單,上網下載個今期最新最流行的distribution,然後跟著畫面步驟照做就可以,基本上與安裝Windows同樣方便快捷。在embedded system上安裝Linux,就沒有這樣簡單了,embedded system規格千萬化,就算是使用同一塊晶片做CPU,不同的開發板也有不同設備。若果是熱門多人用的開發板(如Raspberry Pi, BeagleBoard等)還好,用家社群可以找到不同package的Linux系統,有些冷門的開發板就只有廠家提供的package,若果不適合或廠家不再更新,就要自已落手落腳去compile合用的Linux。
這本書2011年出版,當年Linux kernel版本還是2.6,現在已經去到4.14。在科技日新月異的電腦界,三四年已經面目全非,看這本六年前出版的「舊書」,內容會不會過時?其實作業系統的轉變非常緩慢,雖然每個版本的Linux也有新功能,但始終都是建立在UNIX架構基礎上,所有接近CPU硬件的低階知識都是累進的,畢竟CPU架構十多年來也沒有大變化呀。說到要從source code開始去compile Linux,網上料資一是太零碎一是太深,除非付費報名上堂去學,否則要靠這本書當指路明燈。不過這本書並非入門書,對讀者程度有頗高的要求,一是要對Linux作業環境有一定認識,二是要有寫程式和搞硬件的經驗,除非是工作需要或電腦科的學生,應該沒有人會自己compile Linux。
這本書的內容比之前看那本How Linux Works 更低階,首兩章講什麼是embedded system,其實會看這本書又怎會不知道,不過開場白總不能避免。第三章正式進入戲肉,講解kernel的source code的架構,粗略介紹如何config。這本不是講kernel的專題書,大部份compile Linux的人都不會改動個kernel,所以不用講太深入。之後兩章分別講kernel init同user space init,平時開機見kernel印一大堆message出來,終於知道那些message是什麼。這本書解釋root file system十分好,之前看其他地方了幾次解釋都看不明白,今次終於睇得明。另一章是教寫device driver亦是本書重點,用一個dummy drive做例子,可以跟著書照做自己試下寫。
之後的章節很有系統介紹整個embedded Linux需要用到的各種工具,從compiler到debugger到build system,讓讀者知道有什麼東西可供使用,然後可以自己google更進一步的資料,如何連名稱也不知道,想google也無從查起。原本我打算用Yocto去compile,不過經這本書提醒,再看看網上的比較資料,初學者還是用Buildroot較容易上手。
之前只是跑其他人寫落的script去compile kernel,感覺很不實在,完全不知道自己在做什麼,如果有什麼事唔work,只能叫人幫手整,自己完全幫不上忙。睇完這本書,我才覺得有足夠的知識,去應付工作上可能遇到問題。我有自知之明,我還未夠料親自落手落腳去fix問題,不過至少填寫bug report時,不用好白癡咁乜都只係識話唔work,至少識話俾人邊度唔work有乜野要fix。
接觸Linux大大話話都有廿幾年,從最初唔知買乜鬼雜誌送CD,自已裝來裝去到搞唔掂個graphics driver,到後來Linux一統江湖,日日返工都在Linux上寫code,到最近因工作需要自己compile Linux,才發覺我從來沒有認真學習過Linux。日常使用Linux跑程式,砌機灌OS裝Linux那些手板眼見功夫,遇到難題上網Google答案輕易過關,基礎打不好,現在書到用時方恨少,要有系統地重新認識Linux。
這本《How Linux Works》雖然美其名是入門書藉,不過除了第一章的Linux簡介,第二章日常使用的commands外,第三章打後難度三級跳,從Filesystems,到Kernel Bootup,systemd執行先後次序,每一個題目都超過一般用家要知道的知識,可以說是Linux admin的指南索引。這本書不太厚只有不到四百頁,所以每個題目都不會講得太深入,反而是系統化地把Linux的內容例出來,讀者大約知道有什麼題目,然後自己再找上網找資料。
這本書的內容,大慨有八成我以前看過,所以看過本書非常快,很多章節只是粗略翻看。剩下來的兩成新知識非常有用,補完我對Linux認知的缺漏,有些很簡單的基礎慨念,一般網上速食解答沒有講解,例如/usr其實同user無關,新process如何fork出來,shell script可以開subshell,X系統server同client的分功等等。很多東西我懂得用但不求甚解,現在學好了基本知識,開始看通Linux的設計邏輯,很多疑問便一理通百理明。
不過看完這本書,雖然對Linux的認識是完整了,對於compile Linux的幫助不大,頂多在我執package時至少知道放了什麼入去個build度,但解決不了kernel開不到機的燃眉之急,還要繼續找其他書看。
這篇不是書評,這本書亦不是一般自學程式設計的電腦書,是一本涉及非常專門的知識,只有設計晶片才會用得上的技術課本。非行內人完全看不明白,這篇只是我學習formal verification(形式化驗證)的心得和筆記,所以我亦不期望有什麼讀者。
什麼是Formal Verification?首先要講什麼是dynamic verification,設計晶片不同寫程式,寫程式有bug很簡單,除錯出patch沒有什麼大不了。晶片有bug就很大件事,因為要更正問題,就要重新tape-out多一次,去做一個全新的mask。可以想像製造晶片好印黑膠碟,先要整有一張母碟,然後才可以覆印,mask就是silicon的母碟。傳統上測式晶片設件主力用simulation(即dynamic verification),要花很多人力物力寫個testbench出來,然後模疑晶片所有的input同output。這是一個非常嚴格的工序,因為一個bug也不可以走漏。晶片出了街之後,fix一個bug的成本是幾百萬美元。寫testbench同寫普通software沒有太大分別,只不過測試硬件比測試軟件嚴格很多。Formal Verification則是用另一個方法去測試硬件,不用寫code,寫formal specification,再用數學邏輯理論,去證明硬件的設件必定等於那個specification。完全不同的思考方法,完全不同的用途。Formal Verification可以測試出simulation找不出來的bug,始終simulation並不是exhaustive,不過formal有很多限制,設計不能太大不能太深,始終formal proof係一個NP-complete problem。
多年來formal一直只是學術研究,真正的商業應用,大約五六年前才開始。早期的formal tool非常難用,常常被戲說要博士才懂用,很多designer聽見便敬而遠之。直至JasperGold的推出,formal才開始普及化,這些年來JasperGold手執牛耳,一枝獨秀差不多等同於formal的代名詞。早兩年我也嘗試過學formal,不過當年JasperGold的license太貴,我們細公司買不起,只好用了一個很差很難用的IFV,結果學師未成不了了之。去年我公司被一個大公司收購了,economy of scale讓我們有多好多tools用,今個project終於有機會用到JasperGold,同IFV相比簡直是天堂和地獄,「工欲善其善,必先利其器」,其實formal一點也不難,我花了兩星期便滿師,可以學懂簡單的formal specify,去proof我個design不會有dead lock。如果要用simulation作同樣測試,因為太多corner cases,是一件非常痛苦的差事。現在用formal去做,幾行code寫完,是一件很好玩的玩意。
我一直都有follow開formal的paper和tutorial,雖然沒有實戰經驗但formal理論大至明白,用新tool不過是學syntax,很快上手。我公司的formal expert介紹我看這本《Formal Verification》課本,這本書是三位Intel工程師編寫的,由淺入深講解很有系統地如何應用formal verification,真正的hard-core技術含量不多(技術東西可以自已看document),反而更像是過來人分享心得和經驗。這本書九成是老生常談,平時睇tutorial睇paper都學過聽過,不過餘下的一成非常有用,讓我茅塞頓開,很多看已paper不明白人家為什麼一定要這樣做的地方,經他一解釋完全明白,一理通,百理明。這本書可以說是我formal的啟蒙老師,任何一個初學formal者必定要看。市面上formal的textbook一隻手數得完,因為formal是太專門的技術,譎想想學就要交很貴學費請consultant去教,不過我認為這本書比consultant教得更好,因為作者有真正的實戰經歷,不似consultant般大多紙上談兵。
以下是我認為書中有用的formal「心法」:
cover和assert是同一塊鏡子的兩面。同一個property,cover就是not左個property的assert的counter example。assert就係not左個cover既unreachable proof
Formal engine係一個breath-first咁去行所有的state space。assume同assert就係cut細個state space,cut走左illegal state,如果行到去specification果個state,咪就proof度囉。
一開波不要立即寫full proof,先由cover開始玩。唔用assume,剩係寫你想睇乜output,睇下formal engine可不可以back trace你想要的input,然後再慢慢fine-tune那些assume
用cover整好晒assume,就可以上去bug hunting,專心搵assert的counter example,最後才整full proof。用之前兩個steps的assume
唔好load太多code,太多assert同cover,要divide and conquer。有些tricks可以用,如cutpoint,abstraction,free variable等等
在很多大學中,電腦系不是附屬於工程學院,便是附屬於科學院。我以前讀的大學很奇怪,電腦系是附屬於數學院,當年我不明白原因,電腦可以用來計數,但電腦和數學有什麼關係呢?我是讀電腦工程系出身的硬件人,當年與電腦科學的同學談起,聽他們說電腦理論很難明高呼救命,天真的我以為讀電腦科學不就是學寫程式嘛,有多難?直至很多年以後,某次去印度工幹買了這本《電腦理論入門》,丟在書架上又過了幾年,然後某天心血來潮打開來看看,前後繼繼續續花了兩年多才看完,終於我明白原來電腦理論不等於電腦,而是數學上如何械械式解答問題的定律。
這本Daniel I.A. Cohen的《Introduction to Computer Theory》,是電腦理論的經典課本。某種意義上,這本書非常沉悶,全本書就好似中學讀數學不停學proof。從最簡單的regular expression開始proof,一路到finite automata,到context-free grammer和pushdown automata,最後就是頂頂大名的萬能電腦原形Turing Machine。證明什麼類形的電腦可以接受什麼類形的language,某notation又可以如何與某graph等同互換。最精彩的章節是詳細解釋Turing Machine,以前上堂聽過這個term,記得教授說過TM是萬能電腦,看完這本書後,終於明白為什麼TM可以計到任何可以計得到的數,即可以解答任何能找出答案的問題。再一次佩服Alan Turing的天材,TM的構造極其簡單,可是沒有任何機械能超越TM的解題能力。
最初開始讀這本書時,我不明白language同電腦有什麼關係,不就是一串串不同的string,起個state machine去判斷一個input是否屬於language之內,程序上是有點麻煩不過也不是很複雜,要用咪call library囉。去到context-free grammer開始看到有點關係,至少寫compiler的第一步就是要parse個syntax tree。一直以無比的耐心閱讀著,逐步逐步follow書中的proof,然後有一天開竅了,忽然間看到language和solve problem之間的關係,任何能夠解答的問題都是一個數學題,電腦就只是從機械化地處理input,然後給一個output的系統,output可以是答案,但更多時間只是一個yes/no answer,又或者更基本的halting problem。找出一個問題的答案,只是最表面那層,找出一問題有沒有可能有答案,如果有答案的話,有限時間內能否找到,那些bounding的meta問題,才是電腦理論的核心。至於如何寫個行得快些慳位些的algorithm去解題,已經是應用層面上技術性的次要問題。
若果不打算理會那些proof,這張圖表大慨是全書內容的總結。老實說那些proof讀完大部份都忘記了,能夠記得大慨就只有這圖表的內容。不過讀proof的最大得著,是讀proof會潛移默化你腦袋的思路,看完知道的東西和未看差不多,但再遇同類問題時會有一份直覺。
初版pdf下載 ,我看的是第二版實體書。
買了Pixel電話,沒有理由不買Daydream View。Daydream未推出時已經預定,美國出了好幾個星期,等到頸到長終於收貨。急不及待,馬上開來玩。身在公司,為免玩VR的傻樣被拍下來公諸於世,當然不能在座位玩,book間會議室躲起來玩。返工時玩耍倒沒有所謂,在高科技公司工作,只要準時交到貨,基本上不返工也沒有問題。開盒沒有什麼驚喜,未到手前上網早已看過不少開盒報告,不過VR這玩意,讀他人的文字完全不能身同感受,要自己試過才有知好壞。
布織VR眼罩和遙控器
可以把遙控器放入眼鏡收藏
外觀有點像滑雪鏡
除了在商場試過三叔的VR Gear幾分鐘外,我沒有玩過其他VR,所以無從比較優劣。Daydream眼鏡十分輕盈,初戴時覺得對焦不準,後來上網看正確的戴法,才知那條帶不是放在耳仔上,而是要像戴滑雪鏡般放在額旁。下載Daydream的App後,把部電話放入去作螢幕。我的Pixel不是XL,解像度不是最高,放入去看VR會看到LCD點陣的網紋,看多一陣眼睛自動適應,除非特別去留心看,玩時腦袋會自動無視網紋。據網上說用XL也會看到網紋,只是網點細些比較難察覺。玩VR原來是要帶眼鏡,雖然個電話放得很近,但那塊鏡片把焦距拉遠,大約等於平時看書的距離。如果你近視深,不帶眼鏡看不到字,那玩VR時就要帶眼鏡。由於Daydream用布做,可以在VR內戴普通眼鏡,戴時有少少技巧,把眼鏡放入VR對正才戴上面,就不會不舒服。那其他用硬膠殼的VR系統,是否要戴隱形眼鏡才可以玩?由於Daydream用布做,VR眼罩鼻位有空隙會漏光(大慨設計要照顧鬼佬的高鼻樑),解決方法很簡單,把房間的燈關掉了就可以,反正玩VR都係一個人自己玩。
系統教學模式
VR Home Page
初次使用時有教學模式,基本上是在show off技術。把玩家放在一個虛擬森林內,叫玩家轉頭追看蝴蝶飛夢,抬頭看天上的星星,又把遙控器當電筒用,照森林中的各種動物。畫面非常流暢,轉頭時完全感覺不到有lag,同三年前用Nexus 5玩Cardboard有天淵之別,當年lag到頭暈。遙控器手感還可以,主要是用來指畫面當mouse用,靈敏度大慨和Wii控制器差不多。目前Google的VR平台並只有很少app,最失策是不支援舊有的Cardboard apps。我看了不少Youtube VR的360影像,下載了幾個免費VR App來玩,還買了一個恐怖類遊戲,然後趕在半小時內退貨不收錢。玩了個多小時,眼睛便已十分疲累,好像開通宵長途車般辛苦,該是時候休息回去工作了。玩VR十分食電,電話非常溫暖,不過這都是意料中事。有點意外是玩VR不能用藍芽耳機,因為藍芽同樣食電,玩了十幾分鐘後Daydream自動提示電話過熱,要我轉回用有線耳筒。
虛擬博物館
360度看球賽
BBC的怪獸VR遊戲
親身深度試玩過VR後,我預測VR將會是另一個3D,在一輪hype過後,市場便會尋找更新奇好玩的東西。事實上VR有著3D相同的死症,就是看得長時間眼睛會很累。有些所謂的「大屏幕」的VR app簡直是除褲放屁,戴著VR眼罩文字或2D影片很辛苦,我寧可在廿四吋大芒看得舒服。看360度影像很有趣,頭鱷鱷可以看鏡頭後面,但新鮮感過後,其實鏡頭後面沒有什麼好看。例如看球賽當然是向前望看比賽,擰轉頭看其他觀眾來幹什麼。VR唯一的生存空間是打機,開賽車,揸飛機用VR玩很有代入感。恐怖遊戲與VR簡直完美結合,坐在梳化對著電視玩不會太驚,始終你知道電視入面是另一個世界, 用VR玩則完全不同感覺,真的以自己處身遊戲之中,好驚驚。至於其他遊戲類別,我想不到VR有什麼優勢,電子競技類的講操控準確,VR對一心求勝的玩家只是分心負累。運動類遊戲走Wii和Kinect的老路,新鮮感過後不能留著玩家。戴VR的膠樣和眼罩的衛生問題,VR也吃不到Wii和Kinect的party game市場。至於動作射擊類遊戲,對於玩開實彈射擊的我,射擊遊戲根本是個笑話,感覺與現實相差太遠了。只靠模擬和恐怖類遊戲,市場夠不夠養起VR開發商呢?我不太樂觀。
Oculus,Vive和PS4 VR那些獨立VR系統,除非真是深度玩家發燒友,買了回來若覺得不好玩,幾百美元就浪費了。用手機為平台的VR,過多兩年入門級手機也合乎Daydream的規格,Daydream View一百美元不到,遲些第三方廠商或山寨貨肯定更平,如果手機技援VR的話,不妨平平地買個VR眼罩回來試玩。只要每次不玩多過半小時,玩VR應該不會傷眼吧。
Posts navigation
蘋果日報作者 – 陳馬:書評,影評,動漫,旅行,哲學筆記