:::

探究數位共讀:資訊分享行為理論的觀點 / Toward Digital Collaborative Reading: Information Sharing Behavior Introduction

布丁布丁吃布丁

探究數位共讀:資訊分享行為理論的觀點 / Toward Digital Collaborative Reading: Information Sharing Behavior Introduction

image

這是資訊行為與資訊服務課程的期末報告。未來我希望往基於閱讀活動的合作學習社群──我稱之為數位共讀(Digital Collaborative Reading)方向研究,因此在期末的時候就先從資訊分享行為(Information Sharing Behavior)著手,想為數位共讀累積一些理論基礎。

This is a final report of my course “Information Behavior and Information Service”. I am interesting about digital collaborative reading, but little related literature. So by reviewing Information Sharing Behavior literature, I want to connect the theories of  digital collaborative reading and Information Sharing Behavior in this report.


報告文件檔案 / Report Document

image

檔案下載:OneBoxGoogle DriveBox

由於時間不夠,其實這份報告並沒有完成預期想要寫的東西。本來打算寫的主題是:

  1. 從數位閱讀到數位共讀
  2. 資訊分享行為的相關研究
  3. 資訊分享行為的研究範疇
  4. 資訊分享行為的理論
  5. 從資訊分享、知識分享到知識建構
  6. 結論:數位共讀未來的研究方向

其中欠缺了第5小節「從資訊分享、知識分享到知識建構」,這節本來是打算納入合作學習理論,讓資訊分享轉換成知識分享,而應用到數位閱讀上則變成數位共讀。有機會再把它完成吧。

摘要投影片 / Abstract Slide

檔案下載:OneBoxGoogle DriveBox

這份投影片是在報告繳交之後才製作,方便meeting時跟大家介紹用的。


報告全文 / Report Fulltext

壹、 從數位閱讀到數位共讀

數位閱讀已經深入現在人們的日常生活當中。Eden及Eshet-Akkalai (2013) 對於人們的閱讀行為現況調查研究中發現,現今世代的年輕閱讀者已經逐漸轉向於使用諸如手機、平板電腦及閱讀器等數位工具的輔助來進行閱讀,意味著傳統的紙本閱讀已逐漸轉變為數位閱讀。數位閱讀具有互動性、非線性閱讀、資訊存取立即性與資訊利於傳播分享等特性,此外數位文本亦可同時包含文字、圖片、聲音與視訊多媒體元素等傳統紙本閱讀難以達到的優勢(莊智明、張基成,1997;Rovai, 2000)。舉例來說,在傳統紙本的閱讀中,常常使用筆或鉛筆在紙本書籍上標註或記錄相關的閱讀補充、標示重點、整理心得與歸納知識。而這種閱讀標註策略也逐漸帶入到數位閱讀的系統功能中,成為數位閱讀載具的基本功能之一。

近年來,數位閱讀的研究從強化閱讀載具功能逐漸轉移到了整合閱讀者之閱讀知識的「數位共讀」(collaborative digital reading)議題上。藉由資訊與通訊技術的無遠弗屆,原本各自閱讀書本的閱讀者可以在數位共讀中產生關聯。透過整合閱讀者的閱讀評論、閱讀時在書本上添增的重點強調、撰寫筆記等標註知識,不僅可以為書本本身增加了價值,也進一步重新定義了閱讀知識的分享與閱讀學習的樣貌 (Chen, Chen, Hong, Liao, & Huang, 2012; Mendenhall & Johnson, 2010; Su, Yang, Hwang, & Zhang, 2010)。

目前的電子書數位閱讀載具不僅僅只是展示書本內容,更提供了數位共讀的閱讀標註分享功能,Amazon所推出的電子書閱讀器Kindle即是一例。Kindle背後有著Amazon龐大的電子書庫帶來的豐富內容,閱讀者可以操作Kindle撰寫閱讀標註,2011年的新版本Kindle中更推出了「公開筆記」(Public Notes)的功能。公開筆記功能可以讓閱讀者在新購買的書本上顯示其他閱讀者所撰寫的標註筆記與重點標亮。若閱讀者特別喜歡某位閱讀者的筆記,也透過設定追蹤(follow)來訂閱該位閱讀者撰寫的筆記內容。閱讀者撰寫筆記時,可以選擇公開筆記,也可以隨時關閉公開的權限 (Walters, 2011)。Amazon Kindle線上書店網站展示了公開標註的統計資料,包括所有時間內最常被標亮的書籍與段落(如圖 1所示)、最近常被標亮的書籍與段落、以及最多公開筆記的書本排行榜 (Amazon.com, 2013)。

 

image

圖1 Amanzon Kindle上最多人標亮的段落

Note. From "Most Highlighted Passages of All Time," by Amazon.com, 2013, Amazon Kindle, Retrieved July 20, 2014, from https://kindle.amazon.com/most_popular.

 

數位圖書館也有結合數位共讀的應用研究。圖 2是Chen等人(2012)在臺灣百年圖書館史數位圖書館中結合合作式數位閱讀標註功能所提供的數位共讀功能。讀者能夠針對數位圖書館內容的任意文字進行標亮與補充筆記,也可以撰寫將閱讀內容內化後的閱讀心得。透過數位共讀所帶來的益處,臺灣百年圖書館史數位圖書館能夠隨著時間動態累增之大量讀者所貢獻的閱讀標註知識,達到累積閱讀知識、分享與傳播之效益。

 

image

圖2 在臺灣百年圖書館史數位圖書館中撰寫標註

Note. From "Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform," by Chen, C.-M., Chen, Y.-T., Hong, C.-M., Liao, C.-W., & Huang, C.-M., 2012, The Electronic Library, 30(3), 426-442, doi:10.1108/02640471211241681.

 

數位共讀不僅僅是在電子書載具與數位圖書館中呈現,許多閱讀教學研究也開始應用數位共讀來輔助閱讀學習。Steimle、Brdiczka及Mühlhäuser (2009)運用數位筆讓演講課堂中的投影片可以進行閱讀標註,並進一步發展紙本上的共讀工具,提供閱讀者進行私密、小組與公開等三種閱讀標註分享,允許閱讀者自由地與其他小組成員進行基於閱讀標註內容的分享與討論。最後研究結果證實,結合數位筆與紙本的輔助標註與合作共讀是有效的教學方法。Su等人(2010)也提出了一種個人化的標註管理系統 (personalized annotation management system, PAMS),可以針對閱讀標註進行管理,並分享個人與多人的標註,以營造一個多人數位共讀的環境,作為促進小組合作學習討論的機制。該研究指出,使用PAMS系統中的共享機制可以有效的提昇閱讀者的閱讀學習成效。同樣的,Mendenhall及Johnson (2010)應用HyLighter線上標註系統,讓大學生可以輕易地分享閱讀標註,結果顯示HyLighter有助於培養與發展批判性思維與閱讀能力。

相較於建構數位共讀環境的其他研究,Chen等人(2014)將閱讀鷹架的教學策略應用於數位共讀的環境中,發展具閱讀標註與互動討論鷹架之合作式數位閱讀標註系統 (collaborative reading annotation system with reading annotation and interactive discussion scaffolding, CRAS-RAIDS)。藉由結合7種閱讀標註鷹架與6種互動討論鷹架,用以在數位共讀環境中輔助閱讀者進行有效性學習。研究結果顯示,相較於傳統以紙本閱讀標註與面對面討論的閱讀學習方式,結合閱讀策略鷹架的CRAS-RAIDS確實能夠提升閱讀者的閱讀理解成效。

 

image

圖 3 CRAS-RAIDS之互動討論鷹架介面

Note. From "A Collaborative Reading Annotation System with Reading Annotation and Interactive Discussion Scaffolding for Enhancing Digital Reading Performance," by Chen, C.-M., Chen, Y.-T., & Chen, F.-Y., 2014, In CSCL & CSPL 2014.

 

這些閱讀教學的相關研究皆證實了數位共讀在學習上的效果。總和上述來看,數位共讀可讓閱讀標註與閱讀知識的歸納行為從個人拓展到團體,以達到有效的知識分享與傳播的目的。而數位共讀也有助於彼此之間分享閱讀觀點、資訊與知識,也有助於針對閱讀內容的批判與修正,同時也能夠增加閱讀者之間的關係與溝通能力,並促使閱讀者產生更高層次的思考能力 (Balkcom, 1992; Hilke, 1990)。

另一方面,數位閱讀帶來的影響並不見得都是正面的效果。Liu (2005)指出閱讀是一種結合了認知與行為等多重因素組成的複雜動作,因此閱讀者在閱讀不同型態的文本時,往往會因為不同的閱讀情境、閱讀需求與閱讀目標,而產生不同的閱讀行為。對於習慣在紙本上進行閱讀、使用筆畫撰寫標註的閱讀者來說,數位共讀的操作介面勢必對其閱讀行為有相當大的影響。數位載體所具備的超文本(hypertext)與超媒體(hypermedia)的非循序與非線性等特性,會為閱讀者帶來迷失感與認知負荷等負面影響(Müller-Kalthoff & Möller, 2003)。而即使是習慣數位載體的數位原民,基於閱讀標註資訊分享行為的數位共讀環境對閱讀者的影響,仍是目前研究者亟欲釐清的重要議題。

資訊分享行為是將數位閱讀提升至數位共讀的關鍵因素。資訊分享行為係指不同閱讀者之間藉由合作交換彼此的閱讀標註等資訊,以滿足個人目標或是分享共同的興趣(Bao & Bouthillier, 2007)。然而閱讀者是為何會想要分享閱讀標註?分享的內容是什麼?這些分享對閱讀者帶來什麼意義?閱讀者看到其他人的公開標註筆記的感覺為何?閱讀者與其他閱讀者之間究竟是如何互動?數位共讀如何影響閱讀學習?這都是現今研究尚未解密的黑盒子。因此,為了更深入數位共讀對閱讀者帶來的影響,必須要對數位共讀核心的資訊分享行為有所瞭解。

本文章欲藉由探討社會學的資訊分享行為觀點以開拓數位共讀的研究面向,為有效詮釋閱讀者在數位共讀環境中的閱讀行為與學習成效提出具理論基礎的研究方向。以下將從先探討資訊分享行為的相關研究,並歸納資訊分享行為的三大範疇,揭示整理資訊分享行為的六種相關理論,揭示進行資訊分享行為的研究議題。最後本文章將歸納數位共讀的未來研究議題,以作為深入探究數位共讀的創新研究方向。

壹、 資訊分享行為的相關研究

近年來,資訊分享行為受到許多圖書資訊學的研究者與館員的注意,而其實在研究者的探討資訊行為的議題中,有許多研究都已經涉及了資訊分享行為的探討。

Constant、Kiesler與Sproull (1994)是資訊分享行為相關研究中的先驅者。他們研究人們對於分享專業技術知識的態度,發現性格差異、工作經驗與學校教育雖然會影響分享行為,但是對組織中的工作主控權卻可以鼓勵分享的態度。研究歸納發現,分享專業資訊可以營造個人的形象以及自我表現;Erdelez與Rioux (2000) 研究人們偶遇來自他人的資訊 (encountering information for others, EIFO),並提出資訊偶遇(information encountering)概念;Talja (2002)發現研究者的學術資訊尋求行為中,最重要的資訊獲取方式即是資訊分享行為。資訊分享行為被認為是非正式的學術傳播方式,但是這種非正式的溝通卻具備了節省時間與精力的特色,而成為研究者主要仰賴的資訊資源與溝通管道中的一種途徑。Talja將資訊分享行為比喻為一把大傘,認為資訊分享行為的概念含括了資訊偶遇以及團隊合作進行資訊獲取與過濾的合作式資訊行為(collaborative information behavior, CIB);Rioux (2005) 將資訊分享行為劃分成資訊獲取與資訊分享兩個階段,認為資訊分享行為是個人將獲取的資訊分享給其他人,而兩者結合即成為資訊分享行為;Sonnenwald (2006) 認為資訊分享行為應著重於團體的發生情境,資訊分享的目的係基於成員的資訊需求以及資訊本身會對成員有所影響,為了促進團體合作的成功,成員必須不斷地分享、理解並使用資訊,亦即資訊分享行為是團體合作不可或缺的重要管道;Savolainen (2007)發現環境保育者的資訊行為中可以從歸納、辨識與理解來分析資訊分享行為的分享面向;Hersbrger等人(2007)在解釋學習虛擬社群資訊交換概念時,對社群、社會網絡、資訊交換、資訊分享行為建立了理論架構;戈立秀(2007)則是發現人們在蒐集資訊的同時也會進行分享,強調資訊蒐集行為與資訊分享行為之間的相互影響;Fulton (2009)強調資訊分享行為的社會面向,闡述資訊分享行為對於團體的好處。

隨著資訊分享行為相關研究文獻逐漸成熟,部分研究者開始用全面的角度整合其他研究中的零星發現。Hersberger等人(2005)據此提出了虛擬社群資訊分享行為分析架構;Bao與Bouthillier (2007)為了建構產業供應鏈的資訊分享評估指標,歸納了資訊分享行為的範疇;古必鵬(2008)歸納資訊分享行為的重點包括基於他人的資訊需求、發生與特定團體中、主要用於問題解決、資訊分享往往同時特定目的、資訊分享行為可促進團體成員關係密切;O'Farrell 與Bates (2009)比較學生合作學習團體中資訊分享行為相關研究,而Peel與Rowley (2010)接著也比較了政府部門的資訊分享行為相關研究;蔡至欣與賴玲玲(2011)同樣從虛擬社群經營的角度,歸納資訊分享行為相關文獻;Pilerot (2012) 則是以空缺結構(open texture)與語言遊戲(language games)的分析方法,將資訊分享行為的相關理論進行分類。藉由上述研究的歸納,現今資訊分享行為的研究範疇與理論已經逐漸成形,以下將各別介紹資訊分享行為的研究範疇與相關理論。

貳、 資訊分享行為的研究範疇

資訊分享行為的定義各說紛紜,其中Bao與Bouthillier (2007)對資訊分享行為提出了較完整的定義:「資訊分享行為係指不同類型的角色之間,透過某種關聯進行合作交換資訊,以達成個人或共同目的的一種資訊行為」。Bao與Bouthillier將資訊分享行為的範疇歸納為互動性、互惠性與社交性三種面向,以下介紹這三種資訊分享行為的範疇。

一、 互動性觀點

從合作性的觀點來看,資訊分享行為是發生於兩種不同類型團體的角色之間,例如資訊提供者與資訊接受者。圖書資訊學以往的研究通常聚焦於資訊的使用者以及使用者的資訊需求,然而卻甚少著眼於資訊提供者的角色上。一般來說,資訊提供者通常被簡化為「資訊來源」或「資訊系統」,但實際上,資訊分享行為中,資訊提供者不僅是不可或缺的角色,甚至往往扮演促進資訊分享行為的起始者。

另一方面,兩種類型的成員會持續進行資訊提供行為與資訊接收行為,除了將資訊從一方傳遞到另一方之外。資訊提供者與資訊接收者之間的互動有多種形式,常見的資訊分享行為中,成員會同時扮演著資訊傳播者與資訊接收者的角色,並彼此相互交換資訊。

Bao與Bouthillier從互動性的觀點,將資訊分享行為區分成三種不同的等級,如表 1所示。在等級1中,資訊分享行為的角色之間並不需要達成共同的目標,而資訊分享行為往往是偶然地、隨機地或是非正式地進行,例如同事之間分享最近遇到的事情、學術研討會中學者意見的交換等等;在等級2中,資訊分享行為是為了完成共同的目標,因此資訊通常是正規管道定期地進行交換,例如不同單位的研究者為了共同合作的計劃所進行的討論、或是團體間藉由交換意見來進行決策;在等級3中,為了促進合作的效率,要分享的資訊會經過篩選與彙整,以有效完成共同的目標,此等級的資訊分享行為通常會用於長期正式的協議中。然而必須注意的是,資訊分享行為並一定只會有一種互動的層次,也可能會同時為了多種類型的互動而進行資訊分享的動作。

表1 資訊分享行為的互動等級

image

Note. From "Information Sharing: As a Type of Information Behavior," by Bao, X., & Bouthillier, F., 2007, McGill University Canada.

二、 互惠性觀點

從互惠性觀點來看,資訊分享行為是基於雙方彼此的興趣或是利益上。進行分享行為的參與者是為了達到他們個人或是共同的興趣。許多研究會基於動機理論來分析資訊尋求者的資訊需求,但相對的,卻鮮少研究探討人們分享資訊的動機。在許多資訊分享行為發生的場合中,資訊提供者的行為並非被動地來自某人的資訊需求,而若缺乏分享的動機,也往往不會形成資訊分享行為。

對於分享資訊的動機來說,有不同的觀點。Talja (2002)認為資訊分享是雙向過程,可讓資深與資淺的學者彼此受惠,若缺乏互惠性,資訊分享行為只能說是一種資訊提供;Constant等人(1994)以社會交換理論(social exchange theory)來分析資訊分享行為,認為資訊分享行為是作為一種社會交換行為,其動機來自於理性的利己意識與相互依賴;Kalman等人(2002)則是從組織承諾、溝通效率、組織功能與資訊自我效能的四種態度來分析企業中的合作式資訊尋求行為,發現組織承諾對於資訊分享的動機有所影響。綜合上述研究來看,資訊分享行為的動機可說是基於追尋經濟效益與對於心理或社會利益上的興趣。

資訊分享行為的目的在於對某一方帶來利益,也可說是一種資訊加值或創造的程序。Bao與Bouthillier歸納了相關文獻,將資訊分享行為所帶來的價值歸納為三種類型,如表 2所示:

  1. 程序相關價值,其意義在於促進資訊交換的效率,像是降低使用門檻、減少干擾、提升資訊分享的品質。程序價值一般是來自於資訊提供者,但可以透過傳播管道或系統,或是利用有效的傳播模式來達成;
  2. 使用相關的價值主要用於資訊使用上,例如能夠幫助使用者更容易使用資訊、或是使用資訊之後帶來的好處。前者屬於用於決策或問題解決的價值,後者則是資訊本身的價值;
  3. 社交建立的價值係指資訊分享行為可用於建構團體間的關係,並維持社群網絡的關係。社交建立的價值是來自於資訊分享行為的本身,而往往與資訊的內容或是使用資訊帶來的效果無關。

值得注意的是,社交價值可為資訊提供者與資訊接受者兩方帶來利益,但是程序價值與使用價值往往僅有助於資訊接收者一方。

表2 資訊分享行為的加值

image

Note. From "Information Sharing: As a Type of Information Behavior," by Bao, X., & Bouthillier, F., 2007, McGill University Canada, Retrieved.

三、 社交性觀點

從社交觀點來看,資訊分享是一種強化社交關係、聯絡不同團體成員間的一種行為,這種社交關係是資訊分享行為主要的環境因素。社交關係的強度差異取決於互動等級的差異。舉例來說,在1等級的互動關係進行資訊分享不需要太過正式的機制;但是在等級2的互動中,資訊分享行為需要以專案團隊、研究團隊、小組會議等形式進行;而3等級則需要更更正式的機構間長期交流的互動形式。

另一方面,資訊分享行為本身即會對角色之間的社交關係有所影響,換句話說,資訊分享行為本身就是一種社交關係與社群建立的行為。Talja (2002)發現到單從資訊尋求行為的架構是難以捕捉個人的社交面向;Marshall與Bly(2004)分析人們每天的資訊分享行為,發現人們比起分享資訊的內容本身,更加重視社群關係間的建立,而他們所歸納的社交價值包括了建立彼此身份的知覺、發展共同興趣、促進知識增長、或是展現博學知識以取得接收者的注意。

Hersberger、Rioux與Cruitt(2005)則強調資訊分享行為是建立虛擬社群的關鍵要素,進而提出一種分析虛擬線上社群的架構。該架構包含四個層次,如圖 4所示。最底層是分析McMillan與Chavis (1986)提出來的社群模型(成員關係、影響、整合、需求滿足、分享情感);第二層則是基於社群之上,探究社群成員之間的社會網絡構成;第三層則是以資訊行為理論分析資訊交換;最後一層則基於Lasorsa與Rice-Lively (2004)所提出的資訊獲取與分享概念,著重於分析資訊分享行為。

image

圖4 分析虛擬社群的概念架構

Note. From "Examining information sharing and relationship building in online social networks: An emergent analytic framework," by Hersberger, J. A., Rioux, K. S., & Cruitt, R. O., 2005, In Annual Conference of the Canadian Association for Information Science (CAIS), held with the Congress of the Social Sciences and Humanities of Canada, June, (pp. 2–4)

肆、 資訊分享行為的理論

為了進一步釐清資訊分享行為的研究方式,Pilerot (2012)以空缺結構(open texture)與語言遊戲(language games)的分析方法,分析資訊分享行為的相關文獻,藉以釐清資訊行為、合作式資訊行為、資訊傳播、資訊交換與資訊分享之間的差異,並將資訊分享相關研究理論歸納為社會網絡分析、共享資訊、資訊基礎、小世界、社會資本與實用理論這六個分類。必須強調的是,這六種資訊分享行為理論分類並非相互獨立,研究時往往會採用多種理論,而有些理論也來自於相同的理論背景。其中社會網絡分析常常被用來描述研究對象,是資訊分享行為中廣泛使用的研究工具。

一、 社會網絡分析 (Social network analysis, SNA)

社會網絡分析法的研究主要著重於資訊在網絡中的轉移,因此擅於用來分析資訊傳輸與資訊交換的概念。社會網絡分析在資訊分享研究中是常見的研究方法。然而,不同的研究對於社會網絡的注重程度有所不同。Haythornthwaite (1996)將資訊視為可以在網絡中傳遞的無形物質,而社會網絡研究重於描述環境中資訊的傳遞與接收模式,以及人們在資訊流動過程中所扮演的角色。Haythornthwaite認為資訊傳遞可以透過兩種方式進行,一種是由個體傳遞到另一個個體,或是共同經驗上的分享。而在後來的研究中,Haythornthwaite的資訊傳遞概念則被視為是一種資訊分享行為。社會網絡分析的核心概念是「行為者」(actor)與「連結」(tie)。資訊在不同行為者之間流動,而流動的強弱則是透過連結的粗細表示(Granovetter, 1973)。

除了使用網絡的概念來形容資訊分享行為之外,還有其他用來描述的方式。舉例來說,Hall等人(2010)也使用「資訊分享生態」(information sharing ecology)來研究學生的網誌;Hersberger (2003)則是使用質性分析的方式進行社會網絡分析,用以調查遊民家長之間的資訊交換、資訊轉移與資訊擴散。

二、 資訊共識 (Common ground)

針對資訊共識的研究主要著重於擁有共同興趣或共同信念的團體,透過瞭解研究團體成員之間的共同之處,以瞭解資訊分享行為的基礎。資訊共識的理論基礎來自於Sonnenwald (2006) 和Hertzum(2008)的研究。Clark(1996)對於資訊共識的定義為「兩個人的共享資訊,係指他們的彼此共同或結合的知識、信念和定位的整體」;透過團體成員之間嘗試瞭解彼此的信念,進而促成資訊共識,而這個過程稱之為「共識」(grounding) (Clark & Brennan, 1991);Hertzum(2008)認為資訊共識是合作的基本要素,資訊分享行為也必然經過共識的過程;Sonnenwald (2006)更主張應該以資訊共識的架構來瞭解資訊分享行為;而Veinot (2009)則贊同Hertzum的看法,認為資訊分析行為也可以促進團體成員發展資訊共識。

三、 資訊場域 (Information ground)

資訊場域的研究方式著重於關注團體中的行為者是如何佔據資訊場域以進行資訊分享行為。資訊場域的概念來自於Fisher等人(2006),係指一種人們為了完成共同任務所暫時建立的環境,而在資訊場域中會出現自發性和意外性的資訊分享行為。即使人們在資訊場域的主要目的並不是為了分享資訊,但資訊分享行為依然被視為資訊場域的重要活動(Fisher, Durrance, & Hinton, 2004)。從資訊分享行為的觀點來看,建構資訊場域的重點在於提供人們分享和交換資訊的機會(Fisher, Landry, & Naumer, 2007)。

四、 小世界 (Small Worlds)

在資訊分享行為的分析上,小世界的研究方式注重與共同興趣、分享規範與協同創造等社會面向的分析,而較不探討實體的環境。在圖書資訊學領域中,Chatman(1999)是小世界的主要研究者。相較於「社會」這種大型的環境概念,「小世界」則是係指一種較小型的社會環境。「世界」是指藉由共同的規範與價值所建構,並透過社會控制與社交關係連結在一起,而最後讓人們居住在相同的位置之中。根據Chatman的定義,小世界是一種社群中成員共同的意見,而成員的語言與文化則構成這個小世界的價值觀。因此,小世界的研究目的在於找尋對於社群成員具有共同意義的線索,像是經歷、社交規範或是信任,後兩者的關係對於資訊分享行為有相當大的影響(Huotari & Chatman, 2002; Jaeger & Burnett, 2005);跟注重資訊傳播機會的資訊場域相比,小世界則更著重分析社交規範上的限制(Savolainen, 2009)。

五、 社會資本 (Social capital)

採用社會資本理論的研究注重以社會關係作為資訊分享或資訊交換的動機與回饋,進而啟發了資訊交換與相互資訊分享的概念。社會資本的相關研究是由Wide´n-Wulff(2007)所開始。社會資本經常視為是一種橋接(bridging)或聚合(bonding),前者係指行為者與其他行為之間的外部關係,後者則是指在機構中行為者團體的社會結構。與Erickson (2008)更進一步地釐清社會資本的概念,將社會資本定義為「一種用以瞭解社會元素貢獻用以廣泛個人和合作行為的典範」。社會資本理論常用經濟相關的隱喻,資本一詞即呈現了成本和價值、財富、投資和資金、商品,期待的報酬、價值的累積、衡量、比較和組織的優點。另一方面,「社會」在社會資本中則是用以強調人與人之間的關係、互惠和信任。

六、 實用理論 (Practice theories)

實用理論的研究注重與人之間的連結,分析人們的行為、話語以及活動發生地點的環境,以探究資訊分享行為的細節。Talja和Hansen(2005; Sanna Talja, 2002)、Pilerot和Limberg(2011)的研究皆深入地建構了實用理論導向的資訊分享。Talja等人基於「合作資訊行為」,結合行動學習理論與工作場域的相關研究,並應用了Kling等人(2003)的社會科技互動網絡模型等多種理論,將資訊分享行為的本質視為是一種以行動者的實務活動為主的社會性概念。Bourdieu(1977)與Giddens(1984)將實用理論帶到了圖書資訊學,而Pilerot和Limberg(2011)也基於Schatzki (2002)的論點,認為實用理論的資訊分享行為由「透過學習語言、規範、貢獻與互動所形塑的行為」。實用理論更加注重物質層面的影響,例如資訊通訊科技、傳播設備與環境的實體配置或產生的規則、限制與影響。

七、 資訊分享行為理論分類

表3將以上敘述進行整理,分別列出社會網絡分析、資訊公式、資訊場域、小世界、社會資本、實務理論這六種資訊分享理論的研究實例、聚焦重點與相關概念,供未來探究資訊分享行為的參考。在各種研究中,可以發現資訊分享行為理論著重於三個問題:

  • 分享的是什麼?大多所指的是資訊,以及資訊的轉移和流動;
  • 誰和誰分享,以及他們的社會關係?這牽涉到人們的共同之處,例如共同的興趣、信念和規範,這也是資訊分享行為的基礎。
  • 在哪裡進行分享?發生分享行為的位置或地點,著重於同時存在的其他物理狀態或物質特色。

表 3 資訊分享行為理論分類

image

Note. From "LIS research on information sharing activities – people, places, or information," by Pilerot, O., 2012, Journal of Documentation, 68(4), 559-581, doi:10.1108/00220411211239110.

伍、 結論:數位共讀未來的研究方向

數位閱讀的研究已經從逐漸從載具技術上轉移到對於閱讀社群互動的重視,數位共讀是未來數位閱讀研究的重要方向。閱讀者在數位文本上以閱讀標註進行知識分享的行為,可利用資訊分享行為理論中的不同觀點進行分析,有助於協助研究者從社會層面分析閱讀者之間的互動模式,歸納數位共讀的資訊分享行為模式。

基於對於資訊分享行為的探討,將數位共讀的未來研究方向可以歸納為以下三點:

  1. 應用資訊分享行為理論,深入探究閱讀者內在認知與互動狀態:資訊分享行為的理論不僅可為數位共讀發展的機制帶來理論上的基礎,例如基於社會資本發展激勵機制,也可以基於資訊分享行為理論,從實用理論與小世界觀察數位共讀的物質環境與分享規範等細節。
  2. 結合學習理論,促進知識分享行為:許多研究強調在資訊分享過程中結合學習的應用,進而強調知識分享的過程。數位共讀的目的與行為與學習息息相關,未來有必要更進一步結合學習理論,以擴大資訊分享行為在數位共讀中的範疇。
  3. 營造閱讀者共讀社群,建構數位書香圖書館:資訊分享行為強調資訊提供者在資訊分享中的重要性,而作為資訊主要來源的圖書館,更應該重新思考自身在與閱讀者的互動過程中應扮演的角色。藉由鼓勵圖書館與閱讀者、閱讀者彼此之間的資訊分享互動,利用資訊分享行為帶來的社交價值,將可有效營造數位圖書館中的書香氣息。

參考文獻

  • 古必鵬(2008)。網路社群資訊分享行為之探討:以GOGOBOX網路社群平臺為例。社教雙月刊,93,22–25。
  • 戈立秀(2007)。部落客之資訊蒐集與分享行為之研究(碩士論文)。臺灣大學圖書資訊學研究所,臺灣大學。上網日期:2014年7月21日,檢自:https://ndltd.ncl.edu.tw/cgi-bin/gs32/gsweb.cgi/ccd=lzplt1/record?r1=1&h1=0
  • 莊智明、張基成(1997)。科技化企業訓練新趨勢下的網路化訓練 (WBT)–網際網路與全球資訊網在企業教育訓練上的應用。遠距教育,8。上網日期:2013年12月12日,檢自:http://tkuir.lib.tku.edu.tw/dspace/handle/987654321/27054
  • 蔡至欣、賴玲玲(2011)。虛擬社群的資訊分享行為。圖書資訊學刊,9(1),161–196。上網日期:2014年7月18日,檢自:http://jlis.lis.ntu.edu.tw/article/v9-1-6.pdf
  • Amazon.com. (2013). Most Highlighted Passages of All Time. Amazon Kindle. Retrieved July 20, 2014, from https://kindle.amazon.com/most_popular
  • Balkcom, S. (1992). Cooperative learning. United States: Office of Educational Research and Improvement. Retrieved from http://purl.access.gpo.gov/GPO/LPS61857
  • Bao, X., & Bouthillier, F. (2007). Information Sharing: As a Type of Information Behavior. McGill University Canada. Retrieved from http://www.cais-acsi.ca/proceedings/2007/bao_2007.pdf
  • Bourdieu, P. (1977). Outline of a theory of practice. Cambridge, U.K.; New York: Cambridge University Press.
  • Chatman, E. A. (1999). A theory of life in the round. JASIS, 50(3), 207–217.
  • Chen, C.-M., Chen, Y.-T., & Chen, F.-Y. (2014). A Collaborative Reading Annotation System with Reading Annotation and Interactive Discussion Scaffolding for Enhancing Digital Reading Performance. In CSCL & CSPL 2014.
  • Chen, C.-M., Chen, Y.-T., Hong, C.-M., Liao, C.-W., & Huang, C.-M. (2012). Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform. Electronic Library, The, 30(3), 426-442. doi:10.1108/02640471211241681
  • Clark, H. H. (1996). Using language. Cambridge [England]; New York: Cambridge University Press.
  • Clark, H. H., & Brennan, S. E. (1991). Grounding in communication. Perspectives on Socially Shared Cognition, 13(1991), 127–149. Retrieved from http://www.cs.cmu.edu/~illah/CLASSDOCS/Clark91.pdf
  • Constant, D., Kiesler, S., & Sproull, L. (1994). What’s Mine Is Ours, or Is It? A Study of Attitudes about Information Sharing. Information Systems Research, 5(4), 400-421. doi:10.1287/isre.5.4.400
  • Eden, S., & Eshet-Alkalai, Y. (2013). The effect of format on performance: Editing text in print versus digital formats. British Journal of Educational Technology, 44(5), 846–856. doi:10.1111/j.1467-8535.2012.01332.x
  • Erdelez, S., & Rioux, K. (2000). Sharing Information Encountered for Others on the Web. New Rev. Inf. Behav. Res., 1(January), 219–233. Retrieved from http://dl.acm.org/citation.cfm?id=568022.568036
  • Fisher, K. E., Durrance, J. C., & Hinton, M. B. (2004). Information grounds and the use of need-based services by immigrants in Queens, New York: A context-based, outcome evaluation approach. Journal of the American Society for Information Science and Technology, 55(8), 754–766. Retrieved from http://onlinelibrary.wiley.com/doi/10.1002/asi.20019/full
  • Fisher, K. E., Landry, C. F., & Naumer, C. (2007). Social spaces, casual interactions, meaningful exchanges:’information ground’characteristics based on the college student experience. Information Research, 12(2).
  • Fisher, K. E., & Naumer, C. M. (2006). Information grounds: Theoretical basis and empirical findings on information flow in social settings. In New directions in human information behavior (pp. 93–111). Springer. Retrieved from http://link.springer.com/content/pdf/10.1007/1-4020-3670-1_6.pdf
  • Fulton, C. (2009). Quid Pro Quo: Information Sharing in Leisure Activities. Library Trends, 57(4), 753-768. doi:10.1353/lib.0.0056
  • Giddens, A. (1984). The constitution of society: outline of the theory of structuration. Berkeley: University of California Press.
  • Granovetter, M. S. (1973). The strength of weak ties. American Journal of Sociology, 1360–1380. Retrieved from http://www.jstor.org/stable/2776392
  • Hall, H., Widén, G., & Paterson, L. (2010). Not what you know, nor who you know, but who you know already: Examining Online Information Sharing Behaviours in a Blogging Environment through the Lens of Social Exchange Theory. Libri, 60(2), 117–128. doi:10.1515/libr.2010.011
  • Haythornthwaite, C. (1996). Social network analysis: An approach and technique for the study of information exchange. Library & Information Science Research, 18(4), 323-342. doi:10.1016/S0740-8188(96)90003-1
  • Hersberger, J. (2003). A qualitative approach to examining information transfer via social networks among homeless populations. The New Review of Information Behaviour Research, 4(1), 95-108. doi:10.1080/14716310310001631462
  • Hersberger, J. A., Murray, A. L., & Rioux, K. S. (2007). Examining information exchange and virtual communities: an emergent framework. Online Information Review, 31(2), 135-147. doi:10.1108/14684520710747194
  • Hersberger, J. A., Rioux, K. S., & Cruitt, R. O. (2005). Examining information sharing and relationship building in online social networks: An emergent analytic framework. In Annual Conference of the Canadian Association for Information Science (CAIS), held with the Congress of the Social Sciences and Humanities of Canada, June (pp. 2–4). Retrieved from http://libres.uncg.edu/ir/uncg/f/J_Hersberger_Examining_2005.pdf
  • Hertzum, M. (2008). Collaborative information seeking: The combined activity of information seeking and collaborative grounding. Information Processing & Management, 44(2), 957-962. doi:10.1016/j.ipm.2007.03.007
  • Hilke, E. V. (1990). Cooperative learning. Bloomington, Ind.: Phi Delta Kappa Educational Foundation.
  • Huotari, M.-L., & Chatman, E. (2002). Using everyday life information seeking to explain organizational behavior. Library & Information Science Research, 23(4), 351–366. Retrieved from http://www.sciencedirect.com/science/article/pii/S0740818801000937
  • Jaeger, P. T., & Burnett, G. (2005). Information Access and Exchange among Small Worlds in a Democratic Society: The Role of Policy in Shaping Information Behavior in the Post-9/11 United States. The Library, 75(4). Retrieved from http://www.jstor.org/stable/10.1086/502787
  • Kalman, M. E., Monge, P., Fulk, J., & Heino, R. (2002). Motivations to resolve communication dilemmas in database-mediated collaboration. Communication Research, 29(2), 125–154. Retrieved from http://crx.sagepub.com/content/29/2/125.short
  • Kling, R., McKim, G., & King, A. (2003). A bit more to it: scholarly communication forums as socio-technical interaction networks. Journal of the American Society for Information Science and Technology, 54(1), 47–67. Retrieved from http://onlinelibrary.wiley.com/doi/10.1002/asi.10154/full
  • Lasorsa, D., & Rice-Lively, M. L. (2004). Information acquiring-and-sharing in Internet-based environments: An exploratory study of individual user behaviors. Retrieved from http://www.library.utexas.edu/etd/d/2004/riouxks042/riouxks042.pdf
  • Lin, N., & Erickson, B. H. (2008). Theory, measurement, and the research enterprise on social capital. Social Capital: An International Research Program, 1–24.
  • Liu, Z. (2005). Reading behavior in the digital environment: Changes in reading behavior over the past ten years. Journal of Documentation, 61(6), 700-712. doi:10.1108/00220410510632040
  • Marshall, C. C., & Bly, S. (2004). Sharing encountered information: digital libraries get a social life. In Proceedings of the 2004 Joint ACM/IEEE Conference on Digital Libraries, 2004 (pp. 218-227). doi:10.1109/JCDL.2004.240018
  • McMillan, D. W., & Chavis, D. M. (1986). Sense of community: A definition and theory. Journal of Community Psychology, 14(1), 6–23. Retrieved from http://mc7290.bgsu.wikispaces.net/file/view/McMillan_1986.pdf
  • Mendenhall, A., & Johnson, T. E. (2010). Fostering the development of critical thinking skills, and reading comprehension of undergraduates using a Web 2.0 tool coupled with a learning system. Interactive Learning Environments, 18(3), 263-276. doi:10.1080/10494820.2010.500537
  • Müller-Kalthoff, T., & Möller, J. (2003). The Effects of Graphical Overviews, Prior Knowledge, and Self-Concept on Hypertext Disorientation and Learning Achievement. Journal of Educational Multimedia and Hypermedia, 12(2), 117-134. Retrieved from http://editlib.org/p/14576
  • O’Farrell, M., & Bates, J. (2009). Student information behaviours during group projects: A study of LIS students in University College Dublin, Ireland. Aslib Proceedings, 61(3), 302-315. doi:10.1108/00012530910959835
  • Peel, M., & Rowley, J. (2010). Information sharing practice in multi-agency working. Aslib Proceedings, 62(1), 11-28. doi:10.1108/00012531011015172
  • Pilerot, O. (2012). LIS research on information sharing activities – people, places, or information. Journal of Documentation, 68(4), 559-581. doi:10.1108/00220411211239110
  • Pilerot, O., & Limberg, L. (2011). Information sharing as a means to reach collective understanding: A study of design scholars’ information practices. Journal of Documentation, 67(2), 312–333. Retrieved from http://www.emeraldinsight.com/journals.htm?articleid=1911715&show=abstract
  • Rioux, K. (2005). Rioux’s information acquiring-and-sharing framework. In K. E. Fisher, S. Erdelez, & L. McKechnie (Eds.), Theories of information behavior (pp. 169-173). Medford, N.J.: Published for the American Society for Information Science and Technology by Information Today.
  • Rovai, A. P. (2000). Building and sustaining community in asynchronous learning networks. The Internet and Higher Education, 3(4), 285-297. doi:10.1016/S1096-7516(01)00037-9
  • Savolainen, R. (2007). Motives for giving information in non-work contexts and the expectations of reciprocity. The case of environmental activists. Proceedings of the American Society for Information Science and Technology, 44(1), 1-13. doi:10.1002/meet.1450440210
  • Savolainen, R. (2009). Small world and information grounds as contexts of information seeking and sharing. Library & Information Science Research, 31(1), 38–45. Retrieved from http://www.sciencedirect.com/science/article/pii/S0740818808001369
  • Schatzki, T. R. (2002). The site of the social: a philosophical account of the constitution of social life and change. University Park: Pennsylvania State University Press.
  • Sonnenwald, D. H. (2006). Challenges in sharing information effectively: Examples from Command and control. Retrieved from http://bada.hb.se:80/handle/2320/2693
  • Steimle, J., Brdiczka, O., & Muhlhauser, M. (2009). Collaborative Paper-Based Annotation of Lecture Slides. Educational Technology & Society, 12(4), 125-137.
  • Su, A. Y. S., Yang, S. J. H., Hwang, W.-Y., & Zhang, J. (2010). A Web 2.0-based collaborative annotation system for enhancing knowledge sharing in collaborative learning environments. Computers & Education, 55(2), 752-766. doi:10.1016/j.compedu.2010.03.008
  • Talja, S. (2002). Information sharing in academic communities: Types and levels of collaboration in information seeking and use. New Review of Information Behaviour Research, 3, 143–160.
  • Talja, S., & Hansen, P. (2005). Information sharing. In A. Spink & C. Cole (Eds.), New directions in human information behavior (pp. 113-134). Dordrecht, the Netherlands: Springer. Retrieved from http://public.eblib.com/EBLPublic/PublicView.do?ptiID=303350
  • Veinot, T. C. (2009). Interactive acquisition and sharing: Understanding the dynamics of HIV/AIDS information networks. Journal of the American Society for Information Science and Technology, 60(11), 2313–2332. Retrieved from http://onlinelibrary.wiley.com/doi/10.1002/asi.21151/full
  • Walters, C. (2011, February 11). How Kindle’s new Public Notes could change the way we read ebooks. TeleRead: News and views on e-books, libraries, publishing and related topics. Retrieved from http://www.teleread.com/paul-biba/how-kindles-new-public-notes-could-change-the-way-we-read-ebooks/
  • Widén-Wulff, G. (2007). The challenges of knowledge sharing in practice: a social approach. Oxford: Chandos Pub.
(more...)

看第四台不買液晶電視的理由 / The Reason Why Not Use LCD TV to Watch Cable TV

布丁布丁吃布丁

12 Comments

看第四台不買液晶電視的理由 / The Reason Why Not Use LCD TV to Watch Cable TV

image

最近在跟家人討論是否要把家裡老舊的映像管電視換成支持Full HD的液晶電視。幾經考量之後,由於我們家仍是以看第四台為主,因此最後仍決定繼續看映像管電視,不買液晶電視。

Recently, I discussed with my family whether to replace our old CRT TV by high resolution LCD TV. The final decision is that, because we want to watch low resolution cable TV, it's the best to use CRT TV, not LCD TV.


映像管電視與液晶電視 / CRT TV vs. LCD TV

每個家庭大多都會有一臺電視。傳統家庭大多擁有的是映像管電視。但隨著科技發展,液晶電視的價格越來越便宜。液晶電視可以支持更大的解析度、更大的可視畫面(但可視角度不一定大)、省電,而且薄型的液晶電視比肥胖的映像管電視還要省空間。詳細的比較可以參考travis0501所整理的LCD與CRT的比較

由於我的電腦使用液晶螢幕已經好幾年了,我很喜歡液晶螢幕不閃爍的感覺,看起來很舒服。而每次回家跟家人一起看電視時,總覺得很不習慣映像管電視的閃爍與低解析度。尤其現在電影大多採用IMAX格式拍攝,比例通常是1.44:1或是1.78:1,傳統的4:3電視下左右畫面都會被切掉,讓我覺得看起來一直覺得很奇怪。

因此我就打算去了附近的店家看一看液晶電視,考慮看看是否要不要買一臺液晶電視回來。

智慧型液晶電視的無用功能 / LCD TV with Unused Features

1366994620-3089104739

(圖片來自於羅技HD網路攝影機 for TV結合大畫面液晶電視 讓電視不再只能看電視 還是視訊通話零時差的最佳互動管道)

現在許多電視逐漸從單純的影片播放轉型成為家庭娛樂中心。以往電視只負責播放影片,是個單純的顯示器。可是現在電視有逐漸取代電腦的趨勢,不僅要可以上網、可以裝APP擴充功能、還可以視訊連線,讓你接個無線滑鼠與鍵盤來把它當電腦用。

各家販賣店的店員一聽我要買液晶電視,馬上就會推上述的各種功能。這時候要注意了,其實這些廣告臺詞有很多問題。如果是對電腦不熟悉的人來說,恐怕很容易搞混。

多餘功能1:上網 / Unused Feature 1: Internet Browser

我媽很久以前就常常搞不懂,以前拿傳統手機可以用WAP上網,那為何我還是堅持要用能安裝Opera或是Firefox之類的智慧型手機上網。那是因為這不是能不能連上網際網路的問題,而是瀏覽器能不能瀏覽標準網頁的問題。

mobileadswap

以上圖中在Nokia手機上瀏覽Google的例子來說,你可以發現這個畫面跟我們一般在電腦上看到的Google界面差很多。除了這是因為配合小螢幕或是降低傳輸資料量之外,最主要的因為手機上的網頁瀏覽器通常都只提供了最低限度的網頁功能,所以Google網頁也只好閹割成不同的畫面。

為什麼手機只提供簡易版瀏覽器呢?這是因為傳統手機的CPU跟記憶體與桌上型電腦相比小了許多,不太可能做到跟桌上型電腦用Google Chrome或Firefox來看網頁一樣的效果。

那用簡易版的瀏覽器上網有什麼問題嗎?如果你只是用Google查關鍵字,瀏覽純圖文的普通網頁,那還沒啥問題。但如果你對「上網」的意義在於用一些複雜的應用,特別是使用了大量的AJAX、或是以Web APP為目標的網頁服務,例如Facebook網頁版,那是完全不能指望簡易版的瀏覽器能夠正常開啟這些網頁

那手機上的簡易版瀏覽器跟液晶電視有什麼關係?關係也很大,因為現在的液晶電視上網的模式就跟當初用手機上網差不多,裡面裝得十之八九也都是簡易版的瀏覽器。儘管技術的進步,液晶電視上的瀏覽器看起來也許比當初用WAP看網頁的手機來說好得多,但是這還是很難保證液晶電視的瀏覽器可以順利開啟你要的網頁。

不然保險起見,你也可以把「我的最愛」書籤整理一下,然後到展示區一一測試看看,似乎比較安心一點。

多餘功能2:APP / Unused Feature 2: APP

有一點很恐怖的事情是,許多人都以為「APP」這個字是直接對應到iPhone或Android的APP。聽到「可以安裝APP」就以為是「可以安裝我在iPhone上使用的那些APP」,但這是天大的誤會

Samsung-Apps-1024x516

(圖片來自News24 launches Samsung Smart TV app)

以上面來自Samsung Smart TV上的TV APP來說,這臺Samsung Smart TV就只能裝Samsung Smart TV的TV APP,不能裝iPhone或Android的APP;這些TV APP就是特別為了Samsung Smart TV而設計,你也不能裝在LG或Sony的智慧型電視上——不管它們誰比較智慧。

回頭說到這個APP,他本來就只是一種在作業系統上安裝應用程式的行為,可以幫既有的作業系統增加一些額外的功能。Windows 7上可以安裝遊戲擴充娛樂功能、Android上可以安裝Google注音輸入法改善輸入功能,智慧液晶電視也提供了類似的擴充功能,大多不外乎是可以看YouTube、上Twitter。

乍看之下可以擴充功能似乎很不錯,可是若你仔細一看,會發現跟iPhone的App Store或Android的Google Play相比,智慧型電視的APP數量完全只是小巫見大巫。可是每一家都說自己是APP,這也造成許多人都以為每一種APP都是像iPhone或Android那樣的APP。這是一個很大的誤會。

那為什麼智慧型液晶電視上的APP不像是智慧型手機的APP這麼多呢?這是開發環境的問題。APP,其實也就是一種作業系統開放環境、供開發者撰寫應用程式、好安裝在作業系統上的做法。不過複雜的作業系統通常是用在電腦上,以應付各種功能需求。而電視的主要任務在於播放,我們很難要求電視能扮演好一個複雜的作業系統,因此電視上能夠安裝的APP通常功能有限。其次,iPhone與Android能夠擁有這麼多的APP,這是因為這些平臺的盛行與開放供人開發,才會有這麼多人願意考慮在智慧型手機上開發各式各樣的APP。液晶電視並沒有採用通用的作業系統,也不一定有開放供人開發APP,而大多是由製造商自己開發。少數人開發一些電視的零星價值,又只是提供使用者免費安裝,那當然不能期待液晶電視上的APP有多好用啦。

總結上述,不要看到電視可以裝APP就心動,這個APP跟你想像的有很大的不一樣啊!

更智慧的選擇:使用Android電視棒 / Android TV Stick

20130730151644655_300

與其考慮智慧型電視提供的不太智慧的作業系統環境,我還比較建議使用現在智慧型手機使用的Android作業系統。以上圖這個BenQ 電視上網精靈Android電視棒為例,它主要把電視當作HDMI的顯示器,內裝的是Android的作業系統,電源採用USB供電,可外接無線鍵盤滑鼠來操作。簡單來說,它就像一臺電腦或智慧型手機,但是是把液晶電視當作螢幕來顯示而已。

買電視棒可以解決上述的幾個問題:

  1. 上網可以安裝各種支援標準網頁的瀏覽器,包括Google Chrome。可惜依然不支援IE。
  2. 可以使用Google Play的各種APP,但是要注意是否真的有安裝Google Play。
  3. 鍵盤輸入法可以使用更好用的輸入法,像是Google注音輸入法

但是相對的,購買這種電視棒也需要注意幾個問題:

  1. 是否有為電視螢幕做版面調整:智慧型手機是小螢幕,可是電視是大螢幕。不同螢幕所使用的DPI不同,這是需要注意的地方。
  2. Android的版本:早期的電視棒大多是Android 2.3,可是現在主流的Android是4版以上。Android 4為大螢幕做了不少的調整,比起Android 2.3好用很多。而且現在的APP也大多限定在Android 4以上才能安裝,在選擇時務必特別注意。
  3. 是否內建Google Play:有安裝Google Play、能夠從Google Play下載APP的電視棒需要多付一點錢給Google,所以會賣比較貴。未安裝Google Play的電視棒雖然也可以安裝APP,但是會有很多APP無法支援,而且操作複雜度會麻煩許多。

因此購買電視棒也是一門學問,需要仔細比較、評估再來購買。現在很多賣場會把電視棒跟電視綁在一起賣,價格雖然比較便宜,但若一個不堪用的電視棒,那等於是花了更多冤枉錢,不得不慎。

其他的電視棒 / Other TV Stick

Game-Stick

你也可以考慮買像是GameStick遊戲專用的電視棒。內容一樣裝Android,而且界面有為遊戲設計特別調整過,還有一個無線操作器,非常的酷。但不能當作是普通的Android看待,它似乎不能像一般的Android一樣使用各種APP。把它當作是類似PS3或XBox這樣的電視遊樂器來使用吧。

112022762

另外讓我期待的是Firefox OS的電視棒 MatchStick。雖然Firefox OS前景依然不明,但我還是很支持基於Web網頁技術開發的任何開放標準應用

 

不過話說回來,上述這些智慧型電視的考量問題都跟我家無關。我家要的只是有台電視看第四台而已,其他的功能都是多餘的啦。

為什麼要看第四台? / Why We Need Cable TV?

在繼續談液晶電視之前,我想先回歸到一個基本問題,那就是前提是我們要看第四台

臺灣俗稱的第四台是指以同軸電纜連接的有線電視,並以多頻道月組的方式提供服務。租了第四台之後,家裡就可以看到上百台不同的節目。儘管原本第四台是因為有別於早期的中視、臺視、華視的第四種選擇,而在民視出來之後,無線電視早就不只四臺了,可是我們還是習慣以第四台稱呼。

第四台的缺點 / Cable TV’s Problems

傳統的第四台採用的仍是早期的NTSC影像格式,僅有提供640*480的解析度。而當時的映像管電視也是以支援這種解析度為主而設計。然而640*480其實並不是很清晰,因此早期的字幕做的很大,就是為了讓觀眾在不清晰的解析度下看清楚文字。

10-26-35-97

時代來到了1080p大螢幕盛行的現代,越來越多影片是特別為了高解析的顯示器設計。像是這個PS4的介面設定,在僅支援640*480解析度的映像管電視底下觀看,你完全看不清楚文字的內容。

由於同軸電纜提供的資料量有其極限,近年來以光線網路提供更高品質的視訊來源越來越盛行。最有名的就是中華電信的MOD,而MOD提供的高品質Full HD也是許多人更換電視的主要原因。MOD是以隨選視訊的方式提供服務,意思是你要看哪一個節目或影片,就在你想看的時候臨時從網路上下載來播放,而不是跟傳統第四台是持續播放不同節目這種模式。好處是你想看的節目可以隨時從頭或是你想要的地方看起,壞處是只有少部分節目或影片免費、大部分節目都是要收費的。

另一方面,傳統的有線電視台也開始提供高品質清晰的數位頻道,採額外付費的方式讓使用者購買。但是這個問題在於,即使是聲稱有線電視數位化,仍然只有少數幾個頻道是高品質清晰畫面,例如公視與那些額外付費的頻道,大部分仍是跟傳統的第四台一樣的畫質。而且數位電視訊號來源必須要以光纖網路來傳輸,不見得所有社區都有鋪線、支持數位有線電視。要確認的話還是打一通電話比較保險。

第四台的優勢 / Advantage of Cable TV

好吧,我們知道第四台清晰度比不上數位有線電視、也沒有像MOD一樣的隨選視訊,那為什麼我們還是要看第四台?原因當然是因為有想看的節目囉。

第四台雖然提供了很多我們不會想看的節目,但是仍然有各種電影臺跟娛樂節目,這也是我們家人主要收看的頻道。而這些頻道目前MOD有些並沒有提供,或著是還需要額外加價購買之後才能看。儘管高畫質可能值得多花點錢,但對於娛樂花費斤斤計較的家人來說,這可能不是什麼好選擇。

有些年輕人可能會跳出來說:「什麼綜藝節目或電影的我可以下載啊?」但是對於懶得找尋去哪裡下載的家人來說,能在指定時間內打開電視觀看,那就是最好的娛樂來源了。看個電視何苦還要強迫家人學習下載影片呢?

液晶電視能看第四台嗎? / Can Cable TV display on LCD TV?

在確定要看第四台的前提之下,我們來看看液晶電視看第四台的問題。

a4608ea94dca0d44a15574a529a65e2e

(圖片來自於DIY:第四台 CATV (Cable TV 有線電視)同軸電纜線(Coxial Cable)剝線製)

基本上現在以「液晶電視」為名的產品都可以支援以同軸電纜輸入視訊訊號的接頭。因此現在液晶電視可以看第四台,但是可以看、跟好看是兩回事

解析度問題 / Resolution Problem

第四台僅提供640*480低解析度的影像來源,而這在高解析度的液晶電視上看起來非常地傷眼。以現在液晶電視支援原生的Full HD 1080p來說,他的解析度是1080*1920,跟第四台的640*480相比大概差了快7倍左右。這個意思是說,原本在映像管電視上會看到的一點色塊,會被直接放大快7倍之後成為一個大馬賽克。而電視尺寸越大,你看到的馬賽克也就越大。

為了方便大家理解,我借用訊號分接共享該如何弄清楚畫面? 及 電視卡/電視盒產品畫質的選擇這篇教學的電視圖片作為例子來解釋。

4b5142647f282

這是電視的原圖。

4b5142647f282a

若你在映像管電視上看,差不多是這種感覺。

4b5142647f282b

你在液晶電視上看,差不多是這種感覺。

這並不是什麼放大鏡細看的問題,而是實際上就是會「清楚地看到那些模糊的畫面」。

好吧,畢竟第四台先天上影像訊號就沒有那麼高畫質,不能期待他清楚是合情合理的。但問題還沒完,還有另一個大問題需要注意。

螢幕比例 / Display Aspect Ratio

01_faking_it

(圖片來自於Faking It : Making 4:3 footage work in 16:9 projects)

現在的液晶電視幾乎都只剩下16:9寬螢幕的樣式,但是第四台的視訊來源比例卻是4:3。從上圖中你可以發現寬螢幕跟普通螢幕相比是有相當大的差距。為了讓寬螢幕電視能夠顯示4:3的第四台訊號,液晶電視會提供幾種選擇:

  • 最大化拉寬:把4:3拉大到吻合液晶電視的比例,比例看起來最奇怪。
  • 左右拉寬:中間保持比例,只有左右兩邊拉特別寬。這樣可以讓觀眾看起來不會覺得特別奇怪。
  • 稍微上下裁掉之後拉寬:由於上下畫面被裁掉一點,所以拉寬時比例比較不會差距太大。
  • 上下裁掉,維持相同比例:犧牲大量上下畫面,維持畫面比例不變。但是這樣看不到的區域很大之外,馬賽克會被放得更大。
  • 保留左右黑邊,維持相同比例:這可能是顯示4:3比例畫面來源最理想的方法。

雖然畫面比例上有這些選擇,但是很遺憾的是,並不是所有液晶電視都會提供比例的調整。就我那時候看的幾款產品,便宜的只有大同提供螢幕比例調整,其他的液晶電視都是比較貴的品牌才有提供這個功能。

沒有適合看第四台的液晶電視嗎? / Which LCD TV is Suitable to watch Cable TV?

我跑了幾家店親自看了幾臺液晶電視,發現大多數液晶電視播放第四台的時候看起來都很糟糕。特別是店家通常會展示的都是高畫質影片,相較之下第四台更是慘不忍睹。

144393_M

不過看到最後,赫然發現SAMSUNG的UA40H5100AWXZW在第四台這種低解析度的畫面時,硬是要比Sony的高價液晶電視還要漂亮一點。而且SAMSUNG的操作按鈕採用十字加點選來控制,跟其他液晶電視相比起來順手許多,當時我看了還蠻心動的。

不要用液晶電視看第四台 / Don’t Watch Cable TV on LCD TV

可是回家後又看了一下映像管電視,然後靜下心想一想,赫然驚覺一個事實:

 

就算液晶電視調整的再好,看起來也不過跟映像管電視差不多,為什麼我還要花大錢去買呢?

 

事實上,這個問題也早就被人討論已久。像是kreties的[心得] 只看第四台 大家怎麼都推CRT? 液晶錯了嗎? 或是 LED背光的液晶電視看有線電視時畫質變差? 

許多人的模式都是:

  1. 原本看第四台
  2. 聽說液晶電視大螢幕很炫,來換液晶電視好了
  3. 第四台看起來好模糊
  4. 改換MOD,花更多的錢,但看不到第四台的節目

有些人為了第四台在液晶電視上看起來很模糊的問題發問,還會被回嗆說去拿藍光來看,想來發問者心中應該是百般無奈:我就是想看第四台,第四台錯了嗎?orz

 

這個問題非常地嚴重,但是電視銷售員的介紹方式卻通常是:

「液晶電視也可以看第四台啦,只是比較模糊而已。」

卻不是:

「要用液晶電視看第四台,你不如去買映像管電視。」

 

為了賺錢,在商言商,這也是沒辦法的事情。我們消費者自己要多做功課,別太輕易相信銷售員囉。


結論:內容為王 / Conclusion: Content is King

好吧,姑且不討論那些因為被液晶電視大螢幕騙到而買來看第四台的可憐消費者。我們還是為這篇已經超過5000字的文章做個總結。

為什麼不選擇液晶電視?我的主要理由在於因為我們想看第四台上的節目,而這些節目並沒有的提供高畫質格式,液晶電視並不適合在看低畫質的影片,因此繼續看映像管電視即可。

如果有朝一日MOD或其他有線電視提供了我們想看節目的高畫質版本,到時候再來考慮採購液晶電視也不遲。

為了想看的內容而選擇適合的電視,而不是追逐潮流換電視,這點希望跟大家共勉之。

 

最後我想澄清一下,其實我從大學搬到宿舍之後就不太看電視了,大多都是用電腦來看影片,而現在逐漸改成用平板電腦來看影片。電視播什麼節目我也不太在意就是了XD

(more...)

我讓CKEditor也可錄音了:Recordmp3js插件 / Recordmp3js Plugin: Record Voice in CKEditor

我讓CKEditor也可錄音了:Recordmp3js插件 / Recordmp3js Plugin: Record Voice in CKEditor

2014-09-06_004725

我做了CKEditor的插件Recordmp3js,這是以HTML5的新功能為基礎,建構在Recordmp3js專案上實作的插件。以下介紹這個套件的功能。

I developed a CKEditor pluing: Recordmp3js. This is based on HTML5 audio function and Recordmp3js project. You can use Recordmp3js plugin to record voice in CKEditor. This article introduce Recordmp3js and some development memo.


CKEditor插件:Recordmp3js / CKEditor Plugin: Recordmp3js

recordmp3js的特色如下:

  • 使用HTML5的錄音功能,不需要Flash或Java Applet等其他插件。
  • 錄音功能旁有個音量顯示器,可以知道自己的麥克風有沒有啟用或收到聲音。
  • 限制錄音長度:最短3秒,最長60秒。
  • 錄音檔案可以壓縮成MP3,而不是預設產生WAVE。
  • MP3檔案預設以Base64編碼儲存,也可以儲存到PHP File Host專案上。

安裝說明請看專案的README

使用介紹 / Usage

2014-09-06_005312

安裝好之後會看到一個麥克風的圖示gentleface.com free icon set

2014-09-06_012542 - copy

開啟視窗之後,要先按瀏覽器的「允許」麥克風。

PicPick 2014-09-06 01-23-32 2

然後主要操作介面才能正常啟用。左邊是錄音的按鈕,右邊是音量的顯示器,未開始錄音時是以單色顯示。讓我們按下錄音按鈕。

PicPick 2014-09-06 01-00-52 1

開始錄音。你可以看到限制錄音時間,右邊的音量顯示器變成彩色了。

PicPick 2014-09-06 01-36-14 5

停止錄音之後,要等待系統轉檔與上傳。大致上錄音1分鐘就需要1分鐘轉檔。

2014-09-06_004725

轉檔完成,下面會出現音樂播放界面。按下音樂下載圖示則可以下載錄音檔MP3music_down。錄音檔案的時間長度比實際錄音的時間還要長,這是已知的正常BUG (參考Known issues那段),目前沒有解決方法。

2014-09-06_014012

按下「確定」之後,就可以在編輯器內插入<audio>標籤了。

開發感想 / Development

萬用的Base64編碼 / Amazing Base64 Encoding

2014-09-06_100638

其實前一篇開發的PHP File Host專案是為了保存這篇的錄音檔而開發,規劃上是最後才實作。不過真的摸到Recordmp3js之後,才發現原來保存二進位MP3檔案的方式竟然是用Base64編碼!

Base64編碼是一種將二進位檔案以字串的方式編碼的方法。一般HTML網頁是以純文字的方式保存,因此網頁上面的圖片、聲音檔案等二進位資料通常是另外儲存,再以<img>、<audio>標籤嵌入到HTML網頁中。可是這個動作是撰寫HTML網頁初學者的第一個難關:為什麼網頁跟圖片要分開儲存?這也造成了複製網頁檔案的困難,不能只有複製HTML網頁檔案本身,還得複製相關使用的二進位圖片檔案。

Base64編碼可以讓圖片以字串的方式保存在HTML網頁中,而不需要額外保存一個檔案。我以前也介紹過以Base64編碼保存圖片這件事情。在寫這個Recordmp3js插件時,也因為覺得還要另外找地方插入麥克風圖示很麻煩,所以直接用Base64編碼的圖片來插入。可是我還真沒想到原來Recordmp3js的MP3聲音檔案也是用Base64來儲存!

以前只是單純地使用Base64編碼的檔案,但是到這時候我才意識到Base64的麻煩之處。一般是使用file類型表單欄位來上傳檔案,例如:

<input type=”file” name=”file” />

但是由於Base64編碼是字串資料形態,所以用普通的text類型表單欄位來遞交:

<input type=”text” name=”file” />

這兩者的name雖然都是file,但是對伺服器來說卻是不一樣的。在PHP當中前者是要用$_FILES[“file”]來取用、後者是要用$_POST[“file”]。此外,由於Base64編碼並沒有指定檔案名稱,所以還需要用另一個text欄位來傳送檔案名稱。

而即使Base64編碼是字串形式,也不能用JSONP的方式來做跨網域傳輸。因為JSONP實際上是將資料輸入在網址上,而Base64編碼的結果通常很容易超過網址的2083字元限制

這造成我得改寫PHP File Host的檔案接收方式,又花了我一番功夫。到最後索性乾脆讓Recordmp3js預設使用Base64編碼來儲存,讓PHP File Host變成選擇性支援。雖然這會造成插入CKEditor的資料變得超級長,但不需要額外架設伺服器保存MP3檔案這點還是蠻容易讓人使用的。

MP3轉檔 / MP3 Convert

一開始研究HTML5錄音功能時,最讓我困擾的地方在於HTML5預設的錄音結果是WAVE格式。WAVE是沒有壓縮的聲音檔案,因此聲音檔案的大小非常大,讓我難以直接使用HTML5的錄音功能來儲存錄音檔案。

本來還在考慮是否要在PHP File Host加上檔案轉檔功能,在上傳檔案之後轉檔成MP3或amr格式。可是後來意外發現Recordmp3js居然在Recorderjs專案之上加上了MP3轉檔libmp3lame.js的功能,讓MP3轉檔的工作直接就在客戶端瀏覽器上完成。這真的是太方便了。

當然,對很多網頁開發者來說,這是風險很高的事情。因為客戶端使用的瀏覽器跟電腦效能不一,因此完全不能寄望IE6或是在行動裝置上的瀏覽器能夠正常執行。我剛剛拿了Android的Chrome跟Firefox來玩玩看,的確是無法開啟。

不過我的應用場景比較特殊,我可以要求使用者以Chrome或Firefox來使用我的系統,這個顧慮就暫時不在我的考量之中。

其他的轉檔格式? / Other Better Audio Format?

這也讓我想到是否可能用更有效率的amr格式來為語音聲音檔案編碼,赫然發現GitHub上的確有amr.js專案,真是厲害。然而選用編碼格式也要顧慮到瀏覽器的支援,根據w3schools.com的HTLM5 Audio介紹,<audio>標籤只支援MP3、Wav跟Ogg格式,大部分瀏覽器都支援MP3,除了Opera。支援細節如下:

Browser MP3 Wav Ogg
Internet Explorer YES NO NO
Chrome YES YES YES
Firefox YES YES YES
Safari YES YES NO
Opera NO YES YES

 

HTML5的錄音元件 / Audio in HTML5

Recorderjs將HTML5的錄音元件包裝的非常好用,但是實際上使用之前,還是需要經過非常多的設定。你可以看看Recordmp3js的範例網頁程式碼,JavaScript設定那邊就一長串了,一開始研究的時候還真讓人感到困擾。Recordermp3js也具備了錄音完成之後上傳的功能,可是這功能卻寫死在Recordmp3js檔案裡面,而非開放設定的功能,讓我到最後還跑到Recordmp3js裡面去研究,也花了不少功夫。

在研究的過程中,越來越覺得audio真是有趣的應用。藉由結合多個音訊來源,我們可以動態控制各種聲音播放,就可以自行製作各種樂器。Web Audio Demos展示了很多聲音的應用,Web Audio Vocoder是其中一種強調混音的功能,這激起了很多不同應用的可能性。而我則是參考了AudioRecorer華麗的音量顯示器,做到Recordmp3js當中,讓錄音介面感覺漂亮一點。

錄音功能需要的Worker / Recorder and Worker

使用HTML5錄音跟MP3轉檔時,Recordmp3js都使用到了HTML5新元件Worker。一般來說,這個Worker必須是獨立的JavaScript程式碼,而且受限於同網域下執行的安全性問題。在跨網域應用中,這是一個很大的門檻。

但是我參考使用web workers這篇文章的說明,撰寫了worker_manger.js,將worker要執行的程式碼事先插入到目標網頁中,然後在以該網頁上的worker程式碼作為worker物件執行,就能夠保持在同網域執行的限制,迴避跨網域的問題。

雖然這個小功能我只用了很短的時間來做,但其實應該對很多人來說是很重要的功能吧?有機會再來正式發佈好了。

如何允許瀏覽器錄音 / How to Allow Browser Enable Microphone

使用HTML5錄音元件的另一個重點在於「允許」錄音檔案的事件。實際上啟用Recordmp3js的時候,跟HTML5元件宣告我要使用麥克風的時候,不是所有的瀏覽器就會跳出提示問你要不要啟用麥克風。

Firefox會在使用時直接跳出是否允許啟用,一個網頁只會問一次,Chrome有些版本也是如此。但是我電腦的Chrome卻不會在Recordmp3js載入時跳出來詢問,而是要離開網頁、再回到網頁時才會詢問。我索性加入一個<iframe>標籤,讓網頁觸發讀取事件,好讓Chrome問我要不要允許使用麥克風。但是離開網頁又回來時,Chrome還是會問我要不要允許麥克風,還好這動作也只要問一次而已。

很多使用者應該會忘記做「允許」麥克風這個動作。Chrome跟Firefox的介面都不太容易讓人理解,我可以預期這個動作應該是最讓人感到困擾的地方吧。

播放介面與<audio>標籤 / Audio Controller <audio> Tag

至於播放介面,我就直接使用HTML5的<audio>標籤。雖然<audio>標籤提供了播放/暫停、時間、播放進度條、聲音控制等功能,但是各個瀏覽器上<audio>長得都不太一樣,因此網路上大多建議是自行重寫<audio>的操作介面。但想到這個<audio>是要插入到CKEditor當中使用,寫得太複雜也不利於編輯。所以我還是選用最基本的<audio>標籤來顯示。

CKEditor插件開發 / About CKEditor Plugin Development

最後來講講CKEditor插件的開發。

一開始我是看为CKEditor在线编辑器增加一个自定义插件這篇,一步一步來實際操作看看。但是做到最後並沒有如期地做出可以用的CKEditor插件。我也去翻了CKEditor的Plugin教學跟它的API,但後來還是覺得乾脆直接複製既有的Plugin開始做起好了,所以就打開被壓縮的程式碼來看,直接從可以運作的功能中找尋我需要的程式片段。

雖然並不是什麼正規的學習方式,但這樣也在一片混亂中寫完了這個插件。有多混亂呢,看看插件的程式碼就知道了orz

總之最後還是完成了,也發佈到CKEditor的Add-on頁面去,也算是對這份研究有個交待啦!

話說回來,一開始會全部都重頭製作的原因就是因為在CKEditor與TinyMCE上找不到這種錄音的插件。現在我可以用這種方式來製作錄音插件的話,那其實像是webcam拍照與錄影等各種應用應該都沒問題才是。有機會再來研究看看吧。

(more...)

如何閱讀JavaScript/CSS壓縮程式碼?快使用程式碼格式化工具 / How to Maxify/Parsing/Format Minified Code

如何閱讀JavaScript/CSS壓縮程式碼?快使用程式碼格式化工具 / How to Maxify/Parsing/Format Minified Code

image

為了閱讀被壓縮(minify)的JavaScript與CSS程式碼,我們可以使用線上工具Code Formatter或是NetBeans的format指令來為程式碼進行排版。

You can use some tools to maxify/parse/format the minified JavaScript or CSS codes, for example, Online Code Formatter or NetBeans.


關於壓縮程式碼 / Minify Code

JavaScript與CSS程式碼的特性在於必須下載到使用者客戶端才能執行,因此降低程式碼的大小是很常見的方式。JavaScript跟CSS通常是以壓縮(minify)的形態發佈給大家使用。被壓縮的程式碼檔案名稱通常會加上「.min」,而原始碼通常會加上「.src」,舉例來說:

image

這是jQuery 1.11.1原始碼的樣子。檔案大小是276KB。

image

這是jQuery 1.11.1壓縮程式碼的樣子。檔案大小是93.5KB,幾乎是原始碼的1/3大小。

壓縮程式碼中會移除註解、刪除空白與換行、縮短變數名稱(例如變數用了var book,會縮短成var a)。我之前也介紹過使用YUI CompressorMinify壓縮程式碼的方法。而現在壓縮JavaScript跟CSS已經是主流用法,像是Fat-Free Framework中也直接內建了壓縮工具,非常方便。

為什麼要閱讀被壓縮的程式碼? / To Read Minified Code

雖然像是jQuery這種知名的函式庫會提供非壓縮的原始碼供大家閱讀研究,但是還是很多專案並沒有提供解壓縮的原始碼,而只有被壓縮的程式碼可以看。

我最近在研究如何撰寫CKeditor的plugin,可惜他的教學跟文件寫的並不是很好。後來我覺得比起研究文件,不如直接修改程式碼,說不定還比較快。

2014-09-05_164627

可惜的是,大部分CKeditor中plugin的程式碼都是壓縮後的結果,閱讀起來不太容易,我們需要一些解壓縮(maxify)工具來輔助我們閱讀這些程式碼。

在此介紹兩種格式化被壓縮程式碼的方便工具:NetBeans的format指令跟線上工具


NetBeans的格式化指令 / “Format” in NetBeans

我使用的是NetBeansIDE 8.0。要格式化被壓縮的JavaScript程式碼的做法如下:

  1. 開啟JavaScript檔案
    2014-09-05_170730
  2. 開啟Source > Format 
    2014-09-05_170801
  3. 變成了漂亮的排版
    2014-09-05_170855

不過你可以注意到下面還是有一團程式碼沒有解壓縮到,這似乎是NetBeans的限制。此外,NetBeans也不能解壓縮CSS程式碼,使用範圍有限。

使用Code Formatter解壓縮 / Maxify Code on Online Code Formatter

這個工具名稱叫做「Format, Beautify, Maxify, Unpack or Deobfuscate JavaScript/jQuery/HTML/JSON/CSS Codes」,有點長,還是用網址上的Code Formatter來稱呼好了。

image

這工具用法很簡單。首先先把壓縮的程式碼貼在框框中,然後按下下面的按鈕「Click here to Format/Beautify/Maxify Your JavaScript/jQuery/JSON//HTML Codes」。

image

程式碼就以漂亮的版面排版好了,而且NetBeans沒解開的後面部分也排版的漂漂亮亮,這樣就能夠更輕易地閱讀程式碼了,真是令人開心呢。

希望這些工具能夠幫助程式開發者更容易閱讀程式碼。學程式的第一步就是模仿別人怎麼寫,加油!

(more...)

PHP File Host 檔案上傳專案 / PHP File Host Project

PHP File Host 檔案上傳專案 / PHP File Host Project

圖片1

最近我完成了一個用PHP做的檔案上傳專案「PHP File Host」,順便學習了PHP框架Fat-Free Framework、PHP資料庫函式庫RedBeanPHP、前端檔案上傳工具jQuery File Upload跟前端界面Bootstrap等技術。以下說明這個專案內容。

I wrote a PHP project “PHP File Host” for cross origin file uploading. In this project, I try some new technology include Fat-Free Framework, RedBeanPHP, Bootstrap and jQuery File Upload. Following is introduction of this project.


專案由來 / Project Introduction

原本我的KALS專案並不具備檔案上傳功能(其實一開始規劃時有啦,但是一直沒有實作),但最近開始有了這方面的需求。然而檔案上傳乍聽之下很簡單,但是在跨網域(Cross Origin)的情境中,卻不太容易實作。

另一方面,簡單的檔案上傳應用實作常常會有幾個問題:

  1. 實體檔案管理的問題:檔案存放在哪哩?伺服器空間足夠嗎?
  2. 檔案重複問題:如何有效率地降低檔案的使用空間?
  3. 檔案名稱問題:遇到不支援的檔案名稱編碼,存到伺服器的檔案系統時會造成亂碼的問題。

因此我想要做一個簡單的檔案上傳應用網站。這個只做一件事情:支援跨網域的檔案上傳、然後的到一個下載網址。這樣就夠了。這就是PHP File Host的由來。

專案內容 / Project

圖片2

我把最近對PHP File Host的報告彙整成為一個投影片,裡面有簡單的功能介紹:

特色 / Features

PHP File Host的特色在於:

  • 運作環境:以PHP架設,資料庫預設使用SQLite,但是不需要額外配置資料庫。
  • 跨網域檔案上傳:支援以JSONP上傳jQuery File Upload上傳
  • 避免儲存重複檔案:以MD5特徵碼來辨識檔案內容,避免儲存相同檔案。
  • 完整保留檔案名稱:以資料庫儲存檔案名稱,並由程式負責從header指定下載檔案名稱,因此不會下載到亂碼的檔名。

相關技術 / Technology

裡面主要用到幾種技術,在此我也聊一下使用這些技術的心得。

Fat-Free Framework (F3)

Fat-Free Framework (F3)是一個PHP框架。不過在講F3之前,我想先聊一下CodeIgniter。

在開發KALS時,我主要使用的PHP框架是CodeIgniter (CI)。CI大量參考Ruby on Rails的理念,大量遵守「約定優於配置」(convention over configuration)的準則。特別是對於routing功能來說,要連到指定網址就得在特定的檔案結構中撰寫相對應的PHP類別。

一開始我覺得這也不錯,大家的都能遵守約定的話,開發就能夠維持一致性。但事實上是為了這這個約定,CI限制了大量的靈活性。常常會發現要接手專案的新手要花很多時間來瞭解routing的邏輯,而且無法自由指定routing中的變數與類別也很令人覺得限制很大。最致命的就是不能支援JSONP的呼叫模式,難以跟jQuery.getJSON()搭配運用。

雖然KALS的CI被我大改之後變得可以支援JSONP,但我不覺得這是一種理想的做法。所以當我這次要開發這個專門支援跨網域檔案上傳的PHP File Host時,我就毅然決然換了另一個PHP框架。

我花了一點時間嘗試不同的PHP框架,不過後來找到了F3。這個專案特色是檔案看起來不會太複雜,特別是與龐大的CodeIgniter相比。

image

F3一些零星的功能不多,但是主要功能卻比CI好用很多。

F3的routing是由設定檔控制,寫法跟Node.js的express框架很像。這符合我們一般使用的概念:從URI追溯檔案位置。而不是像CI那樣,得先瞭解約定才能知道檔案的位置。使用配置設定來規範routing這點看起來像是違反了「約定優於配置」,但是從另一個角度來看,這也是讓「使用者」(利用URI使用系統)跟「開發者」(使用伺服器上的檔案配置)脫鉤的一種好方法。CI那種routing規範實在是太過糾結,用起來綁手綁腳的。

而F3的routing也支援分辨GET (查詢)、POST (新增)、PUT (更新)、DELETE (刪除)等REST API會使用的四種方法。不過要注意到,若針對同一URI使用GET跟POST等多種方法,最後變數只會取得使用GET這個而已。這是比較令人困擾的地方,我得再研究看看。

此外,我喜歡F3用擴增HTML標籤的方式來建立樣板,輸出的樣板能夠直接指定MIME Type為JavaScript這點也很不錯,這對JSONP支援良好,也可以輕易使用現在流行的Markdown程式語言。相較之下,CI的樣板只能說是原始人。不過F3預設限制「同源使用」(same-origin),為此得額外宣告以下header才行讓其他網站跨網域開啟F3專案:

header('X-Frame-Options: ');

CI提供了大量零星的函式(helper),讓我們能夠簡單地處理很多小東西。F3並沒有這麼多helper,但是它把很多常用的系統與環境資訊都寫在框架的系統變數裡面。習慣之後也還算好用,但我比較喜歡helper的函式形式。

在資料庫的使用上,F3的資料庫也跟CodeIgniter的Active Record一樣,都是使用ORM (Object-Relation Mapping)的方式操作資料庫。而F3多了一些NoSQL資料庫的支援,像是MongoDBJig

雖然這些ORM用起來不錯,但是我這次更想使用另一種資料庫函式庫更感興趣,那就是RedBeanPHP。

RedBeanPHP

RedBeanPHP是一個PHP資料庫函式庫,使用時只要導入它一個PHP主要檔案即可。

他在使用上跟很多ORM函式庫一樣,可以把資料表當作一個類別,裡面的一列當作是一個物件來使用。但是最大的差別在於,RedBeanPHP是不需要預先設定資料表(schemaless)的架構。

舉例來說,今天我們有一種類別叫做Book,那我們就用RedBeanPHP建立一個類別叫做「Book」的物件,然後設定其中的屬性「title」跟「author」後儲存,這樣子資料庫中就會自動幫我們把相關的table與field都設定好,連field的資料形態都會與物件屬性的形態直接相對應。

未來如果這個Book想要增加第三種屬性「price」,那就在程式中加入「price」,儲存,這樣子資料表就會多一個price的欄位。

這樣子的好處在於,我們不需要在配置程式碼之餘還要煩惱如何配置資料庫。RedBeanPHP預設採用SQLite,但也可以支援主流的關聯式資料庫,如PostgreSQL跟MySQL。

我使用RedBeanPHP在PHP File Host中儲存檔案資料,操作起來非常容易上手,而且令人驚訝地好用。

有人抱怨RedBeanPHP的資料庫查詢速度過慢,這點可能要謹慎評估。但PHP File Host少量應用看來是沒有這個問題。

Bootstrap

這次我也一併改進了前端的界面。跟以往一樣,比起重頭開始設計網頁界面,我比較偏好從既有的網頁範本開始修改。難得這次機會,我也就從知名的客戶端技術Bootstrap的範本Landing Page開始改起。

使用Bootstrap的目的包括:

  • 支援RWD (Responsive Web Design):不論電腦、平板、手機等不同螢幕大小的裝置,網頁都應該自動最佳化調整版面。這點可以靠Bootstrap的Grid system來調整。
  • 一致且美觀的元件:Bootstrap的選單、按鈕、讀取條非常好看。我還蠻喜歡它的Default、Primary、Success、Info、Warning、Danger、Link的通用分類與對應顏色。
    image
  • 豐富的圖示:不光是Bootstrap本身提供了大量的圖示(Glyphicons),Landing Page範本還用了更多元的Font Awesome圖示,基本功能操作真的是不需要額外在準備其他圖片了。

圖片1

最後完成的結果在Am I Responsive?上看起來就是這樣,開頭的圖片會按照視窗畫面去做調整,頂端選單列也會在小螢幕中自動縮成一個按鈕,成果很不錯。

雖然我老是做一些伺服器端的專案,但是作為網頁相關的程式設計師,前端界面技術自然也不能生疏。PHP File Host雖然只是一個小小的網站,但是做起來還是令我挺開心的。

jQuery File Upload

我這次也加入了jQuery File Upload來改善檔案上傳的介面。這個套件可以用簡單的方式來設定檔案上傳的功能,讓我們輕易加入以下功能:

  • 點選按鈕、選擇檔案、馬上上傳
  • 上傳進度條
  • 拖曳至指定區域上傳
  • 剪貼上傳

我很喜歡這些方便的操作,傳統點選檔案按鈕的方式實在是太過麻煩。

另一方面,我本來還蠻煩惱怎麼用jQuery File Upload來進行跨網域傳送檔案,卻意外發現jQuery File Upload使用了HTML5元件postMessage來傳輸檔案的方式,比我以前提出的JSONP跨網域檔案上傳還要好用很多,真讓我驚豔。

不過最後我要在其他專案使用jQuery File Upload設定上傳功能時,卻發現它使用的是jQuery 1.11,與KALS專案的jQuery 1.4有很大的差別。加上jQuery File Upload也要使用jQuery UI等工具,導致它與其他功能互相衝突,最後我還是放棄在KALS專案使用jQuery File Upload而使用原本的JSONP跨網域檔案上傳方式。

向DSpace致敬 / Salute to DSpace

最後也提一下PHP File Host內部檔案儲存的方式,這部分我大量地參考了DSpace保存檔案的方式。

DSpace依照檔案的MD5特徵碼作為檔案名稱與實體位置的設定,因此每個檔案都長得像是「01f7b24e629cc23e369983994d0b8fbe」。檔案的名稱、MIME Type等相關資訊則是寫在資料庫中,連同上傳者、上傳時間等操作記錄也一併分開儲存。

這樣做可以改善檔案重複儲存、避免檔案名稱編碼不支援等問題,但是檔案管理 (特別是刪除)跟下載就成為另一個技術上的重點。目前PHP File Host還沒有做的刪除功能,就只是一直擺放資料,然後以供人下載而已。

利用Base56面碼縮短網址 / Shorten URL by Base56 Encoding

喔對了,為了避免網址過長,我還特別用了Base56將數字ID以「0123456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ_-.~」等網址允許的字元進行編碼。即使檔案的編號很大,網址長度仍然不會很誇張地漲大。這種做法我也挺喜歡的。

這些大致上就是PHP File Host使用到的技術。


結語:過時的技術? / Conclusion: Outdated Technology?

剛好最近也看到一篇分析報導:「AngelList 分析:越好的公司越喜歡用 Python,越差的公司越愛用 PHP」。該分析將公司分成Okay、Good、Great三級,然後看公司使用的程式語言。

其中伺服器端PHP排行第三、客戶端Bootstrap排行第五(但是RoR我不認為是客戶端技術)、資料庫SQLite榜上無名。雖然直接看圖表起來也沒啥不好,但我現在才學這些技術,的確是比很多人慢了許多。

之後有機會的話,我想要研究伺服器端的Node.js,然後在單一頁面應用上繼續精進AngularJS (之前寫了一個批次開啟網頁的小應用,蠻好上手的)。久違地學習新的技術,真的很令人開心呢。

(more...)

為何Power Point插入圖片變得模糊了?勾選不要壓縮檔案中的影像 / Disable Power Point’s Image Compression Configuration to Avoid Blurring Images

布丁布丁吃布丁

為何Power Point插入圖片變得模糊了?勾選不要壓縮檔案中的影像 / Disable Power Point’s Image Compression Configuration to Avoid Blurring Images

2014-09-03_095441

如果你在Power Point插入圖片時,發現圖片變得模糊不堪使用,那就得啟用選項中的「不要壓縮檔案中的影像」來避免這個問題。

In Power Point, if you get a blurred image after inserting it, you should enable “Do Not Compress Images in File” at Power Point Options.


圖片模糊的問題 / Problem when Inserting Images

本文使用的是Power Point 2013,不過我在Power Point 2010上也會遇到相同的問題。

image

在做投影片的時候使用插入圖片時……

2014-09-03_095417

插入一張電腦截圖,可是圖片卻很小。

2014-09-03_095441

圖片放大之後模糊不堪使用。

網路上找了以下,從plumdumplings的回答中才知道原來是因為Power Point啟用了圖片壓縮的緣故。以下說明解法。

解決方法 / Solution

  1. 開啟Power Point的選項
    image
    image
  2. 到「進階」中,取消勾選「捨棄編輯資料」,並勾選「不要壓縮檔案中的影像」。
    2014-09-03_095557

這樣子重新插入圖片時,圖片解析度就不會被壓縮了。

2014-09-03_095642

這問題困擾了我好一陣子,不過網路上好像很少看到有人提起。在此跟大家分享。

(more...)