12/11 論文報告─FivaTech

這一次閱讀的論文是以前Lab中博班學長與老師所發表的,論文題目是FivaTech:Page-Level Web Data Extraction from Template Pages。目前Lab中的研究還有使用到以本篇論文技術為基礎的系統,但是仍然有些問題需要解決。如果這個系統能夠維護好並擴展改進的話,對未來網頁資料擷取的許多應用相信將很有幫助。

由於往相關領域閱讀論文,因此理所當然的要先了解自己Lab有在使用的系統。另一方面,也正好給大家介紹本篇論文所採用的技術。我第一次看這篇論文時,看的是只有6頁的版本,幾乎很多地方都不能了解。在看了以前學長在相關領域方面的一些研究論文之後,加上老師給了我另一個34頁比較詳盡的版本,多看幾次才總算比較清處的了解整篇論文在講什麼。

最早Web IE採用的是supervised的方式,必須依靠人工標註才能產生擷取資料的規則。後來Dynamic Web的研究往Template-based的推論方向發展,產生了一些unsupervised方式的論文。FivaTech就是其中之一,它可以透過多個擁有相同Template的頁面來推論出其結構,也因此把這樣的方法歸類為Page-Level。

FivaTech以多個網頁作輸入,最後產生共同的Template、Schema及個別的擷取資料。Template及Schema是以樹狀表示,與網頁的DOM Tree形成較一致的表現,其核心過程主要分成兩個較大的部份:Tree Merging以及Schema Detection。Tree Merging部份又可細分出四個小部份:Peer Node Recognition、Multiple String Alignment、Tandem Repeat Mining及Optional Merging,經過這四個步驟後會形成所謂的Pattern Tree,接著利用它來作下一階段的Schema Detection。

Peer Node Recognition主要是用來決定輸入的Tree中第1層(假設root為第0層)Node間的相似程度,相似程度大於某個門檻值以上則給定相同的代表符號(比如用英文字母a、b、c...等),相同代表符號的node則屬於peer node。peer node辯識的準確性可以說是最為關鑑,在同一個DOM Tree中,peer node代表了資料樣式的重覆,可能是data rich區域;在不同DOM Tree中,peer node的意義可以用來推斷Page間共同的Template。不過在論文中並沒有提到門檻值應該設多少,而這個門檻值怎樣設可以產生最好的結果?是否可以適用在所有情況?是我感到比較疑問的地方。因為peer node的判斷直接就影響了後面的所有步驟,只要稍有不同,產生的結果可能就差很多。

決定出peer node後,下一步就是Peer Matrix Alignment。這個階段的工作就是把不同Tree的第1層node依序並排,然後取出每一行(同一個Tree)中兩個相同符號的node(peer node)間距離最大的值,裡面的最大值定義為span。接著對於span值大於0的符號node,盡量將其每一行的距離調整成span的值(最大可能循環長度);剩下部份則盡量把相同的符號在每一列間對齊,node往下移動調整過程中空出的位置可以看成是missing data。要補充說明的部份是,對齊除了可以是相同符號(空出的部份不算),也可以是不同的文字node。

在對齊步驟過後,可以得到一個Node List用來代表不同Page間的共同樣式(Pattern)。接下來就可以對此List作Pattern Mining的運算,將重覆的pattern壓縮起來。最後再根據不同的node在所有DOM Tree中的occurrence vector概念,由vector不一致(值不全為1)的node決定出哪些node是optional(不一定會有的資料),這個過程稱為Optional Node Merging

以上四個步驟從root往下一層層的作下去,最後將會形成一棵fixed/variant Pattern Tree。由此再將tree中的每個node分類並決定其order,則可以得出最終的Schema格式。至於Template的產生部份,先以規則決定出參考點(用來當作template間的分界),再依此劃分出各個小範圍的Template,最後產生出與Schema相對應的一整組Template的表示法。這部份規則就不再說明,有興趣的話請參考投影片。

最後是本次報告論文的投影片:


Semantic Web─從Web 2.0到Web 3.0之路?

今年11月號的科學人雜誌中文版有一篇文章很吸引我,文章的標題是─新興學門:資訊網科學(Web Science)。翻了一下,發現裡面就提到了Semantic Web的研究與應用情境,效果非常強大且完美。最近,在科學人雜誌網站上看到Web 2.0下一步:從群眾智慧到人工智慧這篇文章,讓我對機器與人類在Web上將資訊收集與整合的效用這類問題上,又開始思考了起來。

起初,我對Semantic Web的認識也不深,只大略知道最基本的條件是,在網頁上放進一些所謂的meta data。meta data簡單來講,就是描述或說明資料的資料,而這些描述或說明不僅僅是人類看得懂,還必須是機器可讀的。這樣的好處在於,透過meta data我們便可以賦予資料某些語意;透過這些語意,機器便有可能去作推論。最簡單的例子之一,像是Google Scocial Graph API所支援的XFN描述,就可以很容易的推論關係。

後來,拜這學期Web 2.0課程之賜,對Semantic Web有比較綜合性的介紹,才知道原來對資料作語義上的描述還有很大的學問,並不簡單。這些描述對推論的限制與設計的彈性有直接的關係,由此逐漸發展出了RDF、RDFs以及OWL這些metadata data model。在RDF中,透過一條條的陳述(statement)建構起語意網絡,而每條陳述(statement)由主體(subject)、謂詞(predicate)以及客體(object)三個元素組成。主體(subject)或客體(object)代表Web上的某個resource,藉由URI可以達到唯一性的辨識功能而不會產生混淆。謂詞(predicate)則是用來關聯主體(subject)與客體(object),也可以稱為屬性(property)。RDFs進一步引入了物件的概念,使得語義的表現上更契合於真實世界的情境。OWL則加入了更多的限制與物件間關係的描述如disjunction,可以更有利於語義的萃煉。

在過去Web 1.0的時代,如果要擷取或搜尋網路上的資訊,利用Search Engine的IE(Information Extraction)與IR(Information Retrival)技術似乎是唯一比較可行的方法;到了當今Web 2.0概念當道的時代,可以經由RSS快速的匯集想看的資訊於一處,也可以像Social Bookmark網站一樣採用群眾智慧的過濾機制(推文與收藏)與分類方式(tag)取得資訊,或是從社群關係連結的角度對資料作分析;在邁向未來Web 3.0的趨勢上,也許會在以Semantic Web建設的基礎上,再度利用人工智慧、Data Mining的方式作自動化的資料分析。

不過,Semantic Web的語義描述設計可能需要專門人員,並配合相關領域知識才能建構得好,這恐怕是廣泛存在的一個最大挑戰。然而,這是無可奈何的必須成本。把簡單的工作放在資料產生,把困難的資料收集交給機器去作;或是在資料產生的過程中分擔一點成本,讓資料收集與推論上可以輕鬆一點。我原來很看好Web 2.0與相應的群眾智慧機制,在資料的產生上沒有任何改變,在資料的過濾與收集上也不會太困難。但是群眾的選擇卻很容易形成偏差,很有可能造成少數人的看法決定多數人的意見。

掌握越多資訊才能在競爭下越有利,各種方式的進展,都可以再深思與討論。未來,我們能把資料應用分析到怎樣的程度呢?

學習,並不簡單

有好陣子沒有寫blog了,其實有許多想法與學習心得想一一寫出來。不過寫文章頗花時間,這些時間拿來閱讀豈不更好?由此可以衍生出一個問題,為什麼要花時間在部落格寫文章?當然,對不同的人來說總是有不一樣的原因,但簡單來說可以用兩個字來概括─誘因。比如,互動的樂趣就是其中一個,這也是很多部落客可以一直寫下去的動力。

這一學期對我來說收獲很大,除了對機器學習相關領域與數學方面有更多的認識之外,在論文的閱讀上也逐漸能體會到比較深入的程度。也因此,我越發覺得研究實在不易;當我學習越多,我越感到認知的渺小,甚至在不同時刻對同一件事都可能有很不同的理解。這學期初開始接觸關於IE領域的知識,一開始我讀了自己老師所寫的一篇很經典的survey paper。當時對那方面完全不了解,讀起來遭遇許多困難,只能懂三成左右。後來在讀過一些相關的論文後,現在回過去看,許多以前不解之處終於比較可以體會。經過這學期的修課與論文研讀,我才開始覺得自己在實驗室相關領域比較能夠掌握。

有些時後,我也很訝異於許多同學的自信。往往,他們其實對某些理論並不是很了解,但卻可以很肯定的告訴你就是這樣。這種現像在論文報告時更明顯,我起初不太能夠體會老師在聽報告時的批評,但是隨著理解能力的提昇,我發現某些報告的確是似是而非。最主要的原因在於,對論文沒有真正的深入思考,只是在很表面的文字上作閱讀。也因此,在我聽完這些報告,反而產生許多疑惑,更不了解該論文的精義。另外一些時後,情況正好相反。台下的人跟不上台上報告者的程度,但是卻好像以為自己懂了。我曾在修課時請教過同學問題,他們的回答很篤定且帶著一點輕視,好像這問題很簡單似的。我雖然感到懷疑,但也不能肯定,後來再去找老師請教或花時間去思考後才發覺完全不是那麼一回事。

我告訴自己,確確實實地學習才有助於能力的提昇,我期許自己能持續地在各方面都不斷成長。可能需要花很多時間,但那不會白費功夫,現在回想起老師曾對我說過,我不介意你花很多時間把這個部份弄懂,更能感受到一個過來人對學習新手的懇切建議。

之前在找關於Web Data Extraction方面的paper時,發現一篇與實驗室同學正在作的研究有點關係,不過方法不同。這篇paper出自AIRS 2008,主要是針對Blog Post與Comment的擷取。如果要對Blog上面的意見作分析,或是在改善像某一些Blog垂直搜尋引擎上的準確性,把Blog中的主要內容擷取出來是很有用的。底下對整個內容作簡單的介紹:

首先介紹一個名詞─MainText,它的內容包含post跟comment。本篇paper把擷取post跟comment的任務分成兩個階段:
1.在DOM Tree的概念下,找出包含MainText的最下層Node
2.找出包含Main Text的Node中的一個分割點,將post與comment區隔出來

在第一階段中,主要利用兩個特性來決定出包含MainText的最下層Node。第一個是MainText的寬度與其它同一層區塊相比是最大的;第二個則是MainText的文字數一般來說是很高的。由此決定出MainText所在的Node位置,然後進入第二階段─找出post與comment的分割點。

第二階段裡,引入了information quantity的概念來決定分割點。information quantity在information theory中常見到,它的基本意義是,對於一個事件來說,如果事件發生的機率比較高,則當事件發生時,我們所獲得的information quantity相對來說比較低。也可以說information quantity的高低跟一個事件的確定性有關,當一個事件的確定性越高,那麼可以從中獲得的information quantity則越低。接著,依序選擇MainText Node的每一個child node當作分割點來計算information quantity,擁有最小information quantity的Node即被當成分割點。

最後是我簡單製作的介紹投影片:

View SlideShare presentation or Upload your own.

社群網站靠邊站,PTT才是王道?

在台灣,web 2.0概念下的網站,大概就屬Blog以及YouTube這一類服務最興盛。我認識的人當中,也有很多連blog都沒寫過,更別提其它像Twitter之類的網站了。然而這些人卻至少都上過PTT,其中也不乏花很多時間在上面的。可見PTT對於台灣的網路使用者而言,一定有一股很特別的吸引力,這也是我一直很想了解的。

社群網站這個名詞,好像從Web 2.0被提出之後才開始風行起來。其實社群只不過是一個概念,並不是叫社群網站才有社群。社群網站只是提供了更多的功能,讓上面的使用者在交流上更方便、更緊密。人類原本就是社群的動物,在現實生活中,社交活動非常重要。我們可以透過不同的環境,形成不同的社群團體。比如公司部門、學校班級乃至於一個小家庭,都是不同的社群團體。

反過來看PTT,除了它不是以一個Web形態存在以外,其它不論怎麼看,都與現在Web 2.0的一些精神沒有兩樣。使用者創造內容、分享以及社群等等,沒有一個是PTT所缺少的。從精神上看,我幾乎沒辦法比較PTT和目前的Web 2.0網站。我唯一感受的最大不同,就是它們在介面上的表現。可以這樣說,PTT在台灣的成功,代表了台灣網路使用者對Web 2.0的精神是肯定的。

一個社群網站或是一個BBS,要越來越成功,流量是一個關鍵。所以目前Web 2.0的網站,都是先想盡辦法把流量衝高,之後才開始思考獲利問題。因為在一群相似的網站或bbs站中,人氣越大,對其它競爭者越會有排斥效應,領先的優勢也更明顯。所以bbs中,PTT人氣成為一枝獨秀,美國社群網站中,MySpace、Facebook也各領風騷。但是其它類似的競爭者就很可憐了,例如Mircrosoft支持的社群網站可能因此就倒了,其實一點也不足為奇。但這並不表示我們不需要社群網站,而是我們不需要這麼多不同的類似網站。就如同搜尋引擎,我們頂多也只會用到最常用的那一兩個。

以Web形式存在而與BBS最接近的,大概要算是論壇了。可是PTT可以只用鍵盤就作到非常方便的遊覽功能,而論壇大部份的操作還很依賴滑鼠。所以我在想,PTT歷久不衰的主因可能是它的使用介面讓大部份人很習慣。但是自從我看過RIA的桌面版網路程式功能後,我突然覺得,如果可以透過RIA的技術作出一個桌面版的Web bbs,操作行為完全模擬一般傳統的bbs站一樣,卻還可以有更好的圖片或影片內嵌功能。難道這不是一種RIA技術的另類應用嗎?RIA的好處說不定可以從這個角度切入,讓更多人接受。

雖然我也會上PTT看一些資訊,但是我也常從blog看文章,甚至偶爾還會使用twitter。我發覺,PTT對我而言,娛樂效果遠大於知識吸收的能力。在PTT上,我很少可以得到太多我想知道的或是我覺得真正對我有用的。在沒有接觸blog之前,我以為PTT已經很棒了;在接觸許多優質的blog後,我認為blog上存在許多一流的專家,可以吸收到很多非凡的見解。所以我現在的網路活動,慢慢地從PTT抽離,慢慢地往Web方面深入。

我的想法是,PTT因為人氣與習慣因素使然,所以在台灣形成獨特的現像。但是使用PTT的人不太可能就完全不需要Web上的資訊,反之也是如此。另一方面,你擁抱了PTT,某種程度上也等於你認同了Web 2.0。最大的差別只是在於介面上的呈現,還有可能是另一個重要因素─口碑。也許未來,桌面版Web式的類bbs站的論壇應用可以取代現在PTT的人氣與地位。

最近的學習生活,我很享受

研究所入學的光景仿如昨日,一瞬間回到現實,已經是碩二了。實驗室來了許多新面孔,更添幾分熱鬧新鮮的氣息。陌生的環境已經適應,同學間的相處逐漸熱絡,我,開始把中央當成另一個習慣存在的地方。中央之於我,大部份時後總是,如果我不在實驗室或教室,就是在往實驗室或教室的路上。我打算趁著今年秋天涼爽時刻,或許散步,也許騎著腳踏車,重新感受與體驗每一條我在中大走過的路、沒去過的地方。

這學期只要再選修一門課就達到了該修滿的學分數,為了平衡時間與興趣,我選修了物件導向軟體工程。在現今所使用的語言環境中,大部份都是物件導向式設計。這門課大量介紹了UML工具的使用,讓設計人員可以一種更高階的圖示或描述方法來表達整個設計內容。這不只對維護很重要,在溝通上也很有用,如果把問題用更好的設計方式作表達,將更容易讓別人清處知道你在作什麼。我以為提高這種能力是很必要的,這需要很多因素結合起來,好的工具、對問題的深入了解以及平時訓練有素的文字表達與邏輯思想。

雖然只有選修一門課,但是卻旁聽了許多課程。像我們老師回國後所開的兩門課:最佳化理論與Web 2.0、另一位新老師開的課:統計學習理論以及一門經典課程:高等演算法。這幾門課的內容都很有趣,也都與我們實驗室的研究很相關。由於我們這一屆比較特殊,剛好碰到老師出國,所以這些相關課程反而在之前都沒有學過。但是也因此多修了許多不同領域的課程,加上今年這些旁聽與選修課,這讓我在資訊相關的學習上倍感充實。

在旁聽的兩門課中,統計學習與最佳化更讓我感受到有交互參照的效果。最近的統計學習上到貝氏決策理論,用到機率與貝氏定理的觀念來作分類。我在Data Mining的自修中只讀到這個部份就結束了,我也以為這個分類僅止於此。後來才知道,原來把條件機率用高斯分佈來假設,可以衍生出所謂的LDA(Linear Discriminant Analysis)、QDA(Quadratic Discriminant Analysis),這才讓我開始有點明白老師有時提到的LDA,它的分類原理與數學意義是什麼。更妙的是,LDA或QDA必須用到估計參數的部份,與老師現在的最佳化課程又串連了起來。在給定的機率模型中,求一組參數使得該機率可以達到最大值,這個過程就是目前最佳化正在教的部份。這當中又喚起我之前閱讀CRF(Conditional Random Field)論文裡,所參考的關於MEMM(Maximum Entropy Markov Model)部份中相關數學的印象。

而在論文閱讀方面,我目前大部份都找關於Web Data Extraction的方向。之前看的兩篇Survey到現在還是覺得只能大略地了解,沒有辦法很深刻的去體會其中的差別。但是隨著慢慢的累積一些相關知識,再回頭看會比較能理解。目前我希望多收集一些相關paper,多看幾種不同的作法,去漸漸區別出來整個Web IE在應用上有分成哪些、還有什麼不錯的方式可以改進?它的趨勢或是不錯的進階方向在哪裡等等。其它像是應用或是之後的maintanance還是擷取出來的資訊間作match的部份,我還不是很有感覺,大概要再多看paper然後找老師請教。最近,好像開始才比較能體會到持續在一個方向的閱讀可以慢慢擴散開來的樂趣。

最後,在研究的進度上,我仍在尋找一個構思。我覺得困難的是找一個好的情境與設計,還有在很多已經有的相關研究中去展現出自己獨特的貢獻。資料是分析的重要來源,而從網路上取得資料是第一步關鑑。我思考著,我應該是在前端技術或理論上作研究呢?還是應該利用已有的技術或理論把取得的資料作分析?或是其它不同的應用?這是我接下來必需儘快克服的問題。

Web 2.0課後─RIA Vs AJAX之我見

昨天的Web 2.0課程第一次以助教身份上台介紹相關資料,介紹的內容主要是關於AJAX與RIA,其它還有一些Mashup與OpenSource的資源。我覺得老師開這門課很有意思,因為對於Web 2.0除了技術之外,其它還有許多關於創新、商業模式以及趨勢或反思方面的探討。很多想法,可能都沒有一個標準答案,所有在課堂上參與的人不只是個聽眾,還是個分享者。

我投影片準備的數量並不多,但是卻也整整花了一節課的時間才介紹完,由此可見討論的情況還算熱烈。在透過台下同學的提問與討論後,的確也引出了一些值得思考的問題,也迫使我再度思考:RIA是什麼?到底它跟AJAX的差別在哪裡?它能成為後來的潮流嗎?

我對RIA的想法,最早來自於研一的時後曾報告的過一篇相關paper,但沒有看過實際的例子,其實沒有太多的感受。直到今年暑假,參加Microsoft的MIX08大會後,我開始深刻的體會到,其實這才是真正的RIA,AJAX與其相比還有段蠻遠的距離。可惜的是,我目前找不到更棒的例子或影片,沒有辦法將我的震驚讓其它人感同身受。當然,其中有許多展示都是某些公司的第一手資料,也許還沒那麼快推出市場。

RIA是Rich Internet Application的縮寫,有些人認為當中的I應該也要包括Interactive與Interface的含義在裡頭。目前提到RIA,大致上指的是比較後期相較於AJAX所提出的一套技術,當中最有名的有三個:Adobe AIR、Microsoft Silverligt以及Sun的JavaFX。底下針對昨天台下同學對這部份問題的發問,我試著從資料整理中回答,最後我會提出我整個的想法供大家參考。如果有補充或指正,也歡迎在回應中告知我。

1.AIR後來好像叫Apollo?
A:這部份剛好反過來,AIR是由Apollo更名調整過來的。

2.像AIR或是Silverlight這類RIA技術到底是程式語言還是程式架構或是平台?
A:我個人的看法是,以開發者角度來看,有點像是各家公司所提出的一套整合的Framework。當然也都搭配有各自廠商推出的IDE與language,像AIR的IDE是Flex,Browser client是flash player,語言是MXMLActionScript;Silverlight部份的IDE是Visual Studio,Browser Client是Silverlight 1.1/2,語言則分為圖形表示用XAML+JavaScript,Server端可以用c#或VB.net配合;JavaFX部份的IDE使用NetBeans,Browser Client是Java Plugin with JavaFX extension,語言方面則是JavaFX script與Java。

3.有些Firefox的插件在看某些型態的網頁時也可以作到3D效果,為什麼還需要RIA?
A:根據我在MIX08中看到的資訊,Microsoft在WPF中甚至可以利用到DirectX 3D的功能。事實上,Silverlight在微軟的看法是當成WPF的精簡版,也就是不具備DirectX 3D及其它包含本機端Device控制的功能。那些在FireFox中看起來3D的畫面與真正用到DirectX 3D Engine作出來的效果當然是差很多的,一些光線明暗的計算等細膩部份就沒辦法表現出來了。至於到底需不需要這麼棒的效果?我覺得為何不?如果可以更好的話。我記得MIX08上就舉了一個線上看書的例子,書在翻頁時,連陰影、不同光線的亮度效果都作出來,非常逼真。

4.Google Gears應該不是要當成桌面端軟體的應用吧?
A:嗯...這一點我是有一些自己的看法。一般來說,離線應用是指在沒有連線的情況下也可以透過Web作存取,但是從Google推出Chrome加上Chrome有個功能可以將網頁在本機端建一個捷徑的方式來看,我認為這才是Google想作的最終極應用。況且其它RIA技術也都紛紛支援在offline運作,Google從Gears+Chrome切入到這個戰場我覺得是很有可能的。

我認為現今RIA技術的出現,必然會對AJAX造成一定的影響。AJAX的特色就在於其非同步處理的功能,這實現了在與Server端作資料傳送的交換時不需要把整個網頁作刷新,因此會使人覺得Gmail看起來很像OutLook,但事實上並不是。AJAX在圖形表現上完全受限於Java Script Engine的能力,自然無法跟利用本機端繪圖能力的RIA技術相匹敵。比如說,你要作一個很豐富介面的網站,用AJAX或許可以達到,但那大概要花費極大心力;相對的,使用更好的支持圖形化功能的新一代RIA技術,開發人員應該可以比較容易的作到這些事情。更極端的桌面端網頁程式的應用,AJAX就更談不上了,因其只能限定在Web上。但是AJAX也有其不可取代的優點,那就是不需要額外下載擴充套件,也是現今最普及的應用。

也許把目前一般使用Browser開網頁的習慣轉換成下載一個本機端軟體,然後從本機端軟體透過網路資料交換的應用很難讓人適應或理解。不過這對User並沒有什麼害處,實際上就有許多AIR的這類應用軟體。對User而言,他們只是作出一個選擇而已,並不會因為出現了本機端軟體的應用,就代表Web上的應用會被取代。比如Twitter,就有許多相關的AIR桌面版軟體,看個人喜好作選擇。就如同Web 2.0時代來臨,難道所有Web 1.0時代的網頁就都消失了嗎?對User而言,一樣只是多出了許多的選擇。當某些技術不被市場上的使用者喜愛,它自然會無法普及,如同過去的Java Applet一樣。不過我相信,新的技術總是不斷地出來,目地是更好的改善User的體驗或是開發者的效率。在資訊時代,我們都應該不斷地往前學習,對嗎?

09/19 regular meeting

這一次報告的paper標題是"TOB:Timely Ontologies for Business Model",出自WebDB 2008。主要是關於商業領域的資訊擷取應用,但是裡面所提到的方式其實也可以用在其它領域上。我覺得這種應用蠻有趣的,而且內容並不難懂,又可以了解其它種類的資訊擷取技術。底下是這篇paper的摘要部份:

本體論(Ontology)一語出自哲學領域,主要探討存在的本質。近年來電腦科學家也將其應用在知識表達上,作為描述實體的概念以及實體間關係的模型。本篇作者主要提出一套法方來建立商業關係的本體論模型─TOB,此模型特色是包含了時間的因果關係。這種模型在商業智慧的應用上是很有用的,舉例來說,我們可以問像這一類的問題:微軟公司現在的執行長是誰?Google收購Youtube之後的獲利表現如何?

TOB是基於YAGO模型[1]之上,加入了時間範圍的表達。在商業實體關係的擷取中,主要針對以下幾種:公司與公司之間(比如收購關係)、公司與產品之間以及公司與客戶或買主之間。示範建立模型的資料來源主要有三個部份:Wikipedia Infoboxes、Reuter's news feeds以及Google News pages;分別演示了三種不同的資訊擷取方式:基於結構化資料的pattern matching技術、自然語言文件為主的處理以及由不包含時間元素的句子中推論出時間關係的方法。以下對這三種方式作個別說明:

pattern matching部份─
先前工作(Yago[1]與DBpedia[2])中已經有這種方式的處理,作者使用了29種屬性如公司創立時間、核心人員等來作比對。
自然語言文件方面─
使用基於Link-Grammar的Leila方法(只支援二元關係擷取)再加以擴充為E-Leila來擷取文字間實體及實體間的關係(包含時間的三元關係)。
時間關係推論方式─
又分為ontology-level與page-level。前者是利用模型內已有的實體時間關係來作結合;後者是利用網頁的發佈日期,將原本相對的時間描述(比如上星期)轉換為絕對時間表達(比如某年某月)。

最後 實驗結果顯示在Wikipedia Infoboxes、Reuter's news feeds以及Google news pages的關係擷取上均有不錯的precision。

[1] Fabian M.Suchanek, Gjergji Kasneci and Gerhard Weikum "YAGO:A Core of Semantic Knowledge Unifying WordNet and Wikipedia" WWW 2007, ACM Press,pp.697-706.
[2] Soren Auer,Christian Bizer,Georgi Kobilarov,Jens Lehmann,Richard Cyganiak,Zachary G. Ives:DBpedia:A Nucleus for a Web of Open Data.ISWC/ASWC 2007

下面是本次報告的投影影片:


Google推出瀏灠器Chrome,在想什麼,到底?

Google推出新的瀏覽器─Chrome,最近很多部落格也都紛紛報導這件事。眾所周知,Google一直是有名的瀏覽器─FireFox的贊助者。從過去到現在的歷史來看,瀏覽器之爭一直也沒有停過,從最早的Netscape到微軟的IE。現在FireFox藉Google支持之威輔以開放平台之助,硬是把瀏覽器的市場從IE的一家獨大給打成分庭抗禮的局面,若再算進Safari與Opera,目前這個市場可說是非常熱鬧。Google於此時推出Chrome,到底有什麼用意?

從官方網站的各種說明來看,Chrome的訴求如下:
穩定
採用Multi-Thread的設計,每一個Tab代表一個獨立的process。它的好處是當其中一個tab發生問題或是載入網頁過久,影響不及於其它使用中的Tab。也由於Tab彼此獨立,各自管理專屬的記憶體空間,因此可以更有效的降低memory leak的問題。

快速
Chrome的Web Page Rendering Engine採用WebKit,特色是簡單、快速。在JavaScript DOM的操作上,Google加入JavaScript Virtual Machine的機制─V8計劃來提升這方面的運算。

安全
不允許對本機電腦作檔案的寫入,也不允許讀取本機電腦上私密資料夾的內容。Google還提供類似網站安全性評比的功能,在進入惡意網站時會出現警示。另一個與IE8相同的功能是無痕跡瀏灠模式,在這種模式下將不會紀錄保留瀏灠資訊。

介面
將Tab移到最上方,這使得每個Tab擁有個別的URL輸入框。在URL輸入框中打字時,功能類似Google Suggestion,會列出常用的搜尋結果。另外,也可以把Tab用拖拉的方式拉出來形成另一個視窗。

Gears
與Google Gears整合在一起,可以配合建立應用程式捷徑的功能,在本機桌面上建立捷徑。採用這種方式建立的捷徑,其執行外觀幾乎與傳統的應用程式外觀並無二致。若加上Gears的離線功能,可以說是把Web Page的應用模擬成桌面程式一般,不僅外觀相似還不一定需要連線。

這些改善的確是非常創新,也是目前較有名瀏灠器所缺乏的功能。不過我對Google推出瀏灠器的用意,有不同的想法。Google在資料的收集上一向不遺餘力,而這些資料對Google作搜尋以及使用者行為分析是非常有用的。我的猜想是,Google可能透過瀏灠器將使用者輸入的關鑑字、瀏灠過的網頁等等資訊全部都收集起來。畢竟在不同種類的搜尋上,不一定只使用到Google;而在Google爬蟲程式到達不了的網頁,透過瀏覽器將可以輕鬆辦到。因此,我認為Chrome很有可能是Google在資料收集上的一個利器,也是網路平台整合服務的先鋒應用。在上網比例越來越高的今天,所有通往網頁入口的第一道關卡就是瀏灠器,由此可見其重要性。

其實對於隱私與便利總是讓人兩難,要得到更多的資料作分析,往往需要挖掘別人不一定想公開的秘密。在Web 2.0時代,這種衝突看來是無論如何都無法避免的。站在比較悲觀的看法上是,連上網的隱私都可能曝光;站在比較樂觀的角度是,這有利於讓人們在上網時的行為與現實生活中較一致,網路的隱秘性往往也是造成許多問題的主因之一。

FireFox及其外掛介紹

工欲善其事,必先利其器。對於一個常常需要瀏覽網頁的重度使用者而言,一個好用的Browser絕對能省下許多不必要的時間浪費並且提高效率。在目前的使用經驗上,我覺得FireFox遠勝於其它類似軟體。FireFox目前最新的版本是3.0.1版,在速度上比2.0版略有提升。它與另一個由Microsoft所開發的Browser─IE最大的差別在於:前者是個開放平台,因此有許多的外掛(Add-ons)可以使用。雖然這在某種程度上的確會引起使用者關於安全上的憂心,但是一般而言,如果使用的是知名外掛,風險相對會小很多。在看過IE8的相關介紹之後,我更相信擁抱FireFox的玩家將會越來越多。

FireFox之強,強在外掛軟體。底下列出一些目前我覺得好用的部份:
IE Tab
在某些設計不夠周到的網站上,有時只支援IE Browser。這個外掛能讓Firefox也可以使用IE的核心運作,進而達到相容性瀏灠,這也是讓我幾乎離開IE的主要原因。

FEBE
備份FireFox的重要工具,尤其是使用在不同電腦間的同步。目前我總共有三個地方的電腦─Lab、宿舍還有家裡,這個工具正好用來同步三台電腦的FireFox狀態,省下我不少時間。

SiteAdvisorWOT
這兩套都是很有名的網站安全檢測工具,依照顏色來區分網站的安全等級。對於Google完後的一堆頁面結果,有些網站其實是潛藏著安全危險,基本的安全警告就顯得很重要。

Dr. Web Anti-Virus link checker
有時WOT或是SiteAdvisor也不是萬能的,總是有些網站沒有評測資訊。這時後如果要更確保安全的話,可以用這個工具對Link作掃描。

Split Browser
這個軟體可以把Browser視窗作水平或是垂直分割,有時需要同時對兩個網站內容作比較,或者是,想要在一個視窗中同時觀看幾個不同的網站。

Firebug
一個FireFox中重量級的工具,可以用來輔助網頁開發者作除錯測試的工作。這裡有一個簡易的教學影片:http://www.digitalmediaminute.com/screencast/firebug-js/

Smart Bookmarks Bar
提供常用的書籤工具列按紐,可以更快速的找到最常用的網站。這個工具雖然看起來沒什麼特別,只是作一條工具列可以放bookmarks,但是這個簡單的小功能卻是我使用頻率很高的。它的好處在於把bookmarks用小圖示取代,只要看到圖示就知道這是哪個網站,更方便找尋。

Tab Mix Lite CE
一個很好用的分頁管理軟體,我之前一直在找關於FireFox上與分頁有關的外掛,但是都不是很滿意。像Tab Kit對我而言太複雜了,我只想單純的作一些分頁相關的特性管理。比如設定開新tab的位置、把書籤或是網站上的link自動開在新分頁等等。

Add to Search Bar
雖然Google很強大,但是Google在一些特定領域上的搜尋效率還是不夠好。比如找影片,我會上YouTube;買東西我會上eBay、Yahoo拍賣;查專有名詞我會先找Wikipedia。雖然有這些網站的Link,但是查詢的時後如果可以集合在一處那將可以省下很多功夫。這在IE8也有類似的功能,但FireFox藉由工具可以作得更好更多。

Organize Search Engines
這是用來搭配Add to Search Bar工具使用的,可以把加入的Search Engine作分門別類的管理。像我目前加入的Search網站就有幾十個,如果沒有這個工具,光是要找合適的search engine可能就要花不少時間。

除此之外,FireFox的附加元件還有作推薦功能,也許裡面也可以發現意外好用的小工具。其它找尋好用外掛的地方是Mozilla的官方討論區或是透過一些知名部落格的介紹。其實還有很多很不錯的工具,如果有推薦的也歡迎告訴我。當我從IE轉換到FireFox之後,我真的感到便利許多。重點是,找出合適好用的工具,想出巧妙的使用方式,這將是值得的。

Microsoft MIX 08

今年第一次參加微軟MIX活動,事先透過活動網站的介紹得知,這一次的焦點是SilverLight 2.0。跟我參加Google Developer Day的感覺不太一樣,氣氛比較嚴謹一點,參加的人似乎多是業界的工程師,而且中午也沒提供便當以及其它豐富的零食。活動時間從上午九點報到開始到下午四點半最後一個議程結束為止,前五百名報到的人員可以拿到不同的贈品。其中我覺得最實用的是光學滑鼠,可惜最後我拿到的是一套微軟出品的遊戲。

上午的議程算是SilverLight的介紹,下午則區分為使用者體驗與開發者技術兩個不同的主題。我對於使用者體驗議程中的Surface項目的介紹很有興趣,不過最後還是參加開發者技術部份。Surface是微軟近來大力研究並結合軟硬體的技術,擁有MultiTouch能力,可以直接用手或聲音對營幕作指示。比如底下所顯示的:

我不知道這樣的應在在日常生活中開始會在什麼時後,但我相信這是個趨勢。就好像手機、筆記型電腦以及一些公共場所的觸控式營幕設計一樣,當硬體的成本越來越低,軟體的技術越來越改進,這樣的生活有可能比我們想的更早一點到來。

記得之前曾經報告過的一篇paper─OpenXUP,裡面就提到了藉由本機端的一個thin-client來作到Rich UI的效果。那篇paper是2006年發表的,不過才一兩年,業界如Adobe的AIR技術、Microdost的SilverLight等等就已經往這個方向開始應用了。基本上,兩者同樣都是透過下載一個thin-client到本機端,而SilverLight還搭配了XAML標記語言來作UI的設置。也是因為如此,所以順便藉著這次MIX08的活動來了解一下目前這類技術可以作到怎樣的程度。自從Google大量使用AJAX技術以來,網頁UI的需求就開始產生了革命性的變化。只是沒有想到這個變化竟如此之快,如果不是親眼所見,我還不能想像到原來網頁的UI能力竟然可以達到這麼棒的體驗。比如新加波一家公司SinTel的Heart Race,這個網頁很有趣,透過選擇其中一個女孩,可以看到被選中的女孩開心的表情而其它女孩落選生氣或難過的反應。其它還有像故宮的清明上河圖英文版HardRockDeep Earth等等,更多的範例可以到這裡看。當然,以上這些都是基於SilverLight技術,瀏覽前必需下載並安裝SilverLight套件。

在開發者技術議程裡,有幾個比較值得一提的:
首先,微軟比較了目前所提出的幾個技術─WPF、Windows Forms、SilverLight以及ASP.NET+AJAX。這幾個技術分別適用在不同的情況之下,Windows Forms是目前傳統的Windows應用程式開發所使用的方式;而WPF除了可以使用在windows應用程式上之外,它也可以應用在網頁設計上,如同SilverLight一般作個thin-client來提升UI。從本機資源利用性來看,WPF可以說是最完整,甚至還利用到DirectX 3D的能力。也由於如此,所以跨平台成了WPF最大的缺點。至於SilverLight,雖然只有2D,但是卻成為Web應用最大的優勢,因為其沒有平台限制上的問題。最後一個ASP.NET+AJAX則適合在不需要使用者安裝任何套件的情況下使用,也是目前最普及的應用。此外,微軟還很貼心的提供了一支小程式UXIQ,幫助開發者決定應該使用哪種技術與平台。

其次,微軟為了幫助利用SilverLight作開發的使用者,免費提供了10GB的網站空間作為架設使用SilverLight技術的網站之用。然而,微軟也表示,在之後會提出收費標準,而原來免費的部份則考慮藉由在網站放置廣告的模式來運作。看起來,微軟以另一種business model在目前獲利很大的網站廣告上尋求獲利。另外,微軟還展示了IE8 beta 2版本,更加強調browser在安全與隱私上的加強。但是在使用慣了FireFox的人眼中,IE8雖然比IE7有些改善,但是其便利性仍然還遠遠不足。

相較於google,微軟給我的感覺是以其既有的優勢在技術上加強以因應未來的網路變化。如果說google在web上最大的貢獻是資料的搜尋與平台的提供;微軟則是致力於Web程式技術來加強使用者的網路體驗。不可否認,如果在操作上可以更友善一點、更互動一點,那對於使用網路的效率將會有很大的幫助。畢竟,對於使用的感覺,我們總希望這一切能變得更美好。

PS:最後填寫完問卷,我得到了微軟贈送的一份當期IT電子報以及一雙環保筷。

Web Information Extraction的survey paper閱讀心得

老師回國後,曾找個時間跟老師談了一下。老師對於研究方向的看法,基本上是希望學生能夠找有興趣的方向去作。我在各個領域其實都不會很排斥,只是對social network方面有多一點的接觸,所以對這方面興趣也稍微多一點。不過在跟老師談完之後,知道從web上作data extraction的工作在許多方面的應用上都很需要,加上之前跟學長合作的過程中覺得這部份具有核心技術的地位,因此覺得或許可以往這部份作發展。然而這個領域的理論也不少,老師建議可以先從閱讀survey部份開始入門。

我看的paper主要是以老師在2006發表的"A Survey of Web Information Extraction Systems"這篇paper為主,雖然是survey,但是看起來仍然頗為吃力,因為之前在這部份的接觸並不多。其中有許多不太了解的專有名詞如Tree Edit Distance或是資料結構如Suffix Tree等等,甚至演算法方面像ILP method或是ACME technique之前其實也沒聽過。雖然有上網稍微查了一下,不過在理解程度上還是很膚淺。透過這篇survey的研讀,真的可以感覺到這個領域的理論似乎不少,之後打算跟老師請教一些更細節方面的問題還有相關建議閱讀的paper。

Information extraction的工作在過去主要是針對free-text來作,這部份的技術較多的是使用有關自然語言處理的理論;但是近來Web流行,因此對Web Page上面的data extraction也越來越受到注意,這部份使用的技術比較傾向於machine-learning或是pattern matching。而用來作information extraction的程式,比較廣一點來說,就是所謂的Wrapper。在Web上,就好像一層介面包覆在網站外面提供使用者對頁面資料作抽取的工作。而產生Wrapper的方法則稱為Wrapper Induction,主要分成四個類型:手動方式建立、supervised、semi-supervised以及unsupervised。

站在系統應用的角度上,不太可能靠手動方式去作,畢竟很難要求每個使用者都會寫程式,而且效率也極低。由於這個原因,因此才開始慢慢發展出supervised、semi-supervised到unsupervised的方式。unsupervised的自動化程度最高,將使用者選取所需資訊的行為降到最低,因此這個方法在應用上漸漸成為趨勢。但是自動化所帶來的副作用就是限制性也最高,一般而言都是用在同一個或是類型相似度高的網站上。因此盡量提高應用在不同網站的程度,是這類方法的研究中心。至於supervised的方法雖然需要比較繁複的使用者標記工作,但是藉由加入適當的features可以提高不同種類網站的資料抽取能力。

在閱讀paper的過程中,看到Deep Web(Hidden Web)這個名詞,才明白到原來目前search engine還有大部份的Web Pages是無法收集到的,而無法收集到的Pages數量占所有網路上Pages的大部份比例。也因為這種情況,Wrapper應運而生。Wrapper的主要目的可以說就是把Deep Web背後的資料挖出來,然後抽取並輸出成結構性的格式如XML。關於這部份,Google似乎對其Crawler的設計打算作改善,可以在遇到要輸入查詢字串的Form元素時填入keyword來收集到Deep Web的深層資訊。看來Deep Web的概念將會越來越模糊,而到時從網頁抽取資料的技術與方式不知是否會有所改變?

最後,與從網頁中抽取資料的相關研究還有所謂的semantic web。我目前的理解可能是在網頁中加入一些meta data或是可以讓程式區分資料不同的元素。如果web page依照這樣的方式作設計,那在資料抽取的過程將會比較簡單而且精準。以設計層面來看,我覺得這是一種正確的方式,也是我所喜愛的方式─從根本上解決問題。但以目前的應用層面來看,似乎還有很長的路要走?

今天meeting跟老師談完後,老師很有耐心地回答一些問題,並給了一些選讀paper方向上的建議。我打算先把一些相關的paper收集起來,然後再詢問老師的意見,之後就安排一些研讀進度跟老師報告。這樣可以在報告中讓老師知道我是否有地方不是了解很透徹,如果有問題也可以當面跟老師請教,這樣應該能夠比較快速地在這方面學習到一些背景知識。

群眾智慧真的可靠嗎?

集合眾人的智慧,產生的結果是好或壞,在我心中一直是個很困惑的問題。有一句話說:群眾是盲目的。現實生活中,在各個領域裡我們都是由少數專家所掌舵。甚至連影響西方思想深遠的哲學大師柏拉圖都認為,在一個理想的國度中,國家領導人不應該交由群眾推選而是由專業的哲學家來擔任最好(註一)。

柏拉圖的想法在民主風氣盛行的今日看來也許可笑,但仔細想想卻也不無道理。透過民主選出來的元首不一定是最有能力治理好國家的人,即便是民意代表都可能很有問題。但是從經濟學的角度來看可能不同,在沒有任何人指揮的市場經濟機制的運轉下,似乎顯得一切是這麼的完美。賣場知道應該進多少貨才不會造成損失,廠商也知道該製造差不多剛好數量的產品。這樣複雜的運作,不可能單靠少數的專家就有辦法規劃出來。如今,群眾智慧的巔峰之作─維基百科,在不到幾年時間其內容數量就已經遠遠超出由少數專家編輯所產生的百科權威─大英百科全書了(註二)。

web2.0時代來臨,標榜分享與創造。許許多多的網站提供了平台服務,造成雪球效應,使用者創造與分享的內容也不斷爆增。然而,在很大的程度上,其實大部份都是乏善可陳。一個在YouTube影片上罵人的小男孩可能成為最流行的人物,一個充滿漫畫的部落格可能也是人氣最高的部落格之一。這種現像再透過搜尋引擎與推薦系統的加權效果,可能使冷門但優質的部份反而成為長尾理論中那條無限延長的最末端。你在看誰的部落格?一書中,作者就對所謂網路上的業餘者專家情況進行了很多的探討。

另一個我覺得有意思的現像是關於那些social bookmark類的網站,國外類似的有del.icio.us與digg,國內則有黑米書籤與推推王。del.icio.us只有收藏功能,而digg則只能推薦;黑米與推推王卻是兩者兼備。我一度為了收與推這兩個動作困擾很久,因為在網站上表現出來的形式很相似。畢竟你會收藏難道不代表你也是很推這個bookmark嗎?而你推這個bookmark竟然是不會想收藏嗎?答案果然是─反向真的不一定成立!在推推王很容易看出來推的數量總是遠高於收的數量,這幾乎說明了推的行為是不太值得參考的:可能你真的不是很喜歡它,但是也許為了幫助朋友充高人氣不得已而為之,或是有其它原因等等。

這篇文章比較了一些書籤類網站間流量的差別,很有意思。但是仔細想想不難發現,對於收藏來說,使用者會更想確定是否真的值得收藏,因此會花更多時間在訪問收藏的bookmark上。結果,只是收與推的兩個動作不同,造成使用者行為與參考價值的差別竟也有很大的不同。我想,雖然服務都是免費的,但是收藏牽涉到個人空間管理的問題,因此有了一些誘因使玩家比較認真的去看待這個行為;反之,推的動作只是單純的增加人氣,對玩家而言並沒有損失,因此比較容易去行使這樣的行為,但是也比較不具有價值。

我不太確定放任群眾自由地在網路世界產生並分享內容到底是利大於弊或是弊大於利,因為這是過去歷史上從沒有經歷過的情形。但是我深信群眾智慧在某些方面的確可以作到少數專家或是高明演算法作不到的事,比如訊息的整合。例如這個網站的功能,我想要利用Google收集也不太可能。甚至當我們想尋找影片時,我們可能會去YouTube搜尋而不是直接透過Google找。群眾智慧所產生的結果也許不是最好的,但它卻在某些部份作得比所有已知最好的還要好。

註一:參見柏拉圖的<理想國>。
註二:有些人認為維基百科的內容品質必需抱持存疑的態度,美國有些大學甚至規定論文中不能出現引用維基百科的內容。

07/22 regular meeting

對於社群網站中常見的元素─標籤,我總覺得應該可以有更多利用的方法。我也曾經思考過標籤可以有哪些用途,甚至也想過可能可以代表使用者的興趣取向。可是不知道怎樣去分析,也不知道資料該如何取得。剛好WWW 2008有這一篇題為"Tag-based Social Interest Discovery"的paper,所以我就研讀了一下,學習別人的思考方式。這篇paper是由Yahoo公司的研究員所發表的,由於剛好收購del.icio.us網站,所以不難想像完全採用該網站的資料作分析與研究。底下是摘要部份:

在Web 2.0的概念下,許多社群網站開始發展且越來越受到歡迎。其中主要區分成兩類,一類是以人為核心,如Facebook、MySpace等等;一類是以物件為核心,如YouTube、Flickr與del.icio.us等等。對於社群網站來說,發現使用者群體中的共同喜好是很有用的。一來可以有助於加強使用者間的關係(有共通興趣),二來可以刺激使用者貢獻與分享更多內容。然而目前已經提出的相關解決方法中,都是基於利用使用者在網站上的互動關係來分析,這對於像del.icio.us這類網站來說是不合適的。因此本篇paper提出一個利用使用者自定標籤(tag)的新方法來找出像這類網站中的社群興趣(Social Interest),它的好處是不需要透過使用者間的互動關係來作分析。

分析所需的資料來自del.icio.us資料庫中的一部份(公開的書籤),總共有140萬個URL被20萬個使用者儲存到430萬個書籤上。這些URL對應的網頁利用英文中廣泛使用的stopword list來對文字內容與標籤作過濾,接著將過濾出來的關鍵字與標籤利用Porter stemming algorithm作正規化。結果顯示,平均來說一個URL的註解標籤數量遠小於對應網頁內容的關鍵字數量(大約是100個量)。所以如果能夠以標籤來取代關鍵字作為社群興趣發現的元素,將可以讓工作得到非常大的簡化。

首先,作者們利用實例展示URL中top-10 tf、tfidf 關鍵字和註解標籤的比較,說明標籤比關鍵字更能表達出內容的高階概念。其次,觀察top-10、top-20及top-40的tf、tfidf關鍵字被標籤字彙函蓋的程度,顯示標籤對最重要關鍵字集的函蓋程度是很高的。第三,分析標籤的發散性,其中標籤隨著URL數量的增加不會無限制的成長,而是會趨向穩定的數量。最後,檢視標籤與關鍵字的匹配率,大部份URL中較常被使用的標籤被關鍵字匹配的程度是不錯的。經由以上分析,使用標籤來找出社群興趣是可行的。

此外,作者們還根據分析結果實作了一個稱為ISID(Internet Social Interest Discovery)的系統,可以用來發現共同的使用者興趣以及依據興趣主題對使用者或URL作分群的功能。其原理是對URL中註解標籤運用關連規則(association rule)的方式找出熱門興趣主題,在此將每個張貼書籤(由user、url和tags組合而成)看成傳統上的交易資料,而user+url的組合可以當成唯一key,tags則代表item。

最後,將此系統產生的結果對資料作評估顯示:
1.相同主題群組內的URL間資料的相似度遠高於不同主題群組的URL
2.ISID系統找出的興趣主題函蓋極大多數使用者最常使用的標籤集
3.經人類編輯審查,群組中URL與該主題的相關性是夠高的

因此採用以標籤來代表興趣的方法在效果上是不錯的,同時也不需要使用者間必需有網站上的互動關係或是真實世界中額外的關係資訊。

底下是投影片部份:

Google 2008 Developer Day

之前得知Google 2008 Developer Day在6/14舉行後,就線上報名參加了。雖然有把這個消息告知一些同學跟學長,最後發現卻只有我一個人報名。大概6/14這個時間非常接近期末考,大家都很忙。本來是想帶數位相機去照一些照片,無奈出發前發現電池竟然出問題,結果只好作罷。

整個會議的時間從早上8:30報到開始到下午四點結束,大會地點在台北國際會議中心。由於開幕致詞時間在9:30,所以報到完後還有很多時間。在等待開始的期間,不經意看到旁邊一位老兄用apple的ibook上網在玩twitter,我猜他可能在抱怨怎麼還不開始。另外,現場休息區的佈置真的很Google的感覺,除了有一台wii跟xbox 360可以消磨時間外,還準備了一大堆的飲料跟零食。地上的椅子也都不太正常,有的是大汽球,有的是沙包,我看到有人坐在汽球上時還不小心跌倒。

這一次大會主要分三個廳,主題都不太相同。上午的部份,我選擇參加Google Maps API的主題,下午一小時的實作報告部份我去聽了關於Open Social的成果展示,剩下時間選擇的兩個主題分別是Android簡介跟小工具(Gadget)。開幕致詞跟主題介紹都是由台灣Google研究院院長簡立峰先生演說,還順便談到了Google對未來網路的看法與願景。主要有四大部份:Google Gears、Google Apps Engine、Android與Open Social,可以強烈感覺到Google想要提出一些標準開放平台讓全世界都可以去利用,希望可以更加快速幫助網路上資料的產生與分享。其中,我覺得Apps Engine最有優勢,因為利用到Google強大的主機服務,網站管理的許多問題將可以省下不少力氣。而Android也是備受關注,參加聽講的人也最多,我想手機應用將很快成為主流。

Google Maps API部份主要是介紹如何使用API,以及有哪些功能。比較特別的應用是,地圖的重疊功能。比如有個展示是把高雄現代地圖與古地圖重疊在一起作比較,可以看出古今變化的樣貌。另外一個是Google Earth的介紹,這一部份讓人感到很驚豔。例如可以選擇台灣隨便一個地點看其地形,也可以模擬從台北101的角度俯瞰整個台北市的景觀。目前網站應用最多的大概就是屬於這一類,像台灣的地圖日記就是,還拿到美國demo秀的特別獎。可以說Google的開放式API造就了許多網站成功的機會,而這些開發者的反饋又增加了Google這一類服務的內容,相輔相成。因此當網路上各式各樣的資料越多,搜尋就越顯重要,而Google的競爭優勢也就越強大。

Android部份是由美國Google總部的軟體工程師所演說,大意是Android平台是架在Linux Kernel之上,類似Java Virtual Machine的功能。除此之外也提供像Windows API一樣的程式開發SDK,讓使用者可以更方便地開發手機上的網路應用程式。讓我感到比較印像深刻的部份是Q & A,演講者的電腦功力非常深厚。在面對各式各樣的問題時,不是只由軟體開發的角度去回答,而解決問題的方式也不只一種。聽完之後,我更加覺得各方面綜合能力對一個軟體開發人員在開發設計上是不可或缺的。

感到比較失望的部份是小工具主題,只是簡單照著投影片作解說,教大家怎樣建立一個Gadget,沒有看到什麼更進一步的消息或是未來發展。不過Gadget不是只能放在iGoogle上面,而是可以放在任何網站或是Blog上都可以。這部份讓我覺得其實Gadget也可以結合廣告的配置,而不一定要很死版的依賴Google Adword或是Google Adsense。廣義來說,幾乎可以內嵌的都可以看作是一種Gadget,YouTube也可以看成是一種視訊撥放的Gadget放在網站或網頁中。目前除了個人化入口網站之外,大量的Blog中也會放置Gadget。可以說,以往Web 1.0時代那種統一介面被Web 2.0時代的個人化定制介面所取代的關鑑就在於此。

總體來說,這一次參加的感覺是對Google目前各方面的服務多了一些認識。也體會到,其實在網頁應用的開發上最困難的部份可能是去了解眾多API的使用。也許,Google正在作的就是把眾多API的數量盡量精簡,到最後所有開發者都可以在同一個標準下去作開發,那分享與產生的速度相信就可能會更快了。

關於研究的一些資源整理與想法

該怎麼開始一個研究的方向呢?該如何找一個值得作的研究題目呢?這是我現在最關心的問題,也是最想了解的部份。老師在meeting時告訴我說看的paper太少了,一針見血。老師建議我從幾個最頂尖的Conference裡找有興趣的paper來看,最主要的原因應該是希望我們學習優良品質的paper的研究方法。

一開始我的疑問是:該如何知道那些conference的等級優劣?我起先是問同學,結果發現大家都不知道。其實這個問題的答案並不是很重要,因為老師推薦的幾個就應該很足夠了,並且都是很棒的conference。後來,到網路上去找答案,發覺在電腦科學方面的conference排名資訊還蠻多的,比如這個還有這個,另外也有關於Journal的ranking如這個這個。裡面還按照領域分類,真的蠻方便。

第二個問題是,作研究有沒有一些基本的方法或準則?我個人的感覺是興趣很重要,但是興趣會隨著累積知識的底子深厚而有很大的關係。我有看過一些大師寫的文章,主要是為了鼓勵作研究的學生,我覺得是很值得參考的。比如李遠哲院長寫的文章以及王汎森院士寫的文章。另外一個想法是,多多請教研究上有經驗的學長與老師,跟他們學習作研究的方式。每個人找資訊想題目或是作研究的方式可能都不相同,但我相信那都會是很寶貴的經驗可供學習。我對自己的期望是一點一點地進步,也許現在很多能力是不足夠的,但是絕不能沒有收獲。

關於我協助學長作的GoD系統,我開始並不知道那到底是在作些什麼。雖然老師對於詢問的問題都會很有耐心的解答,但可能是中途加入,整個來龍去脈仍然不是很清處。當然,其中也不乏因為課業與寫程式花掉了許多時間,所以沒能好好地去思考這個系統的好處在哪裡,所以一直也沒有所謂的興趣問題。最近,看到了一篇文章介紹把Web Page轉成RSS的應用,裡面還提到了許多同類的網站工具,其中也包含之前曾接觸過的dapper。這才恍然大悟跟GoD系統的應用有些類似,可以把某個不提供RSS服務的網頁或其中的某部份經由這類網站工具提取出來包成RSS服務。

突然之間,才開始有點意識到樂趣的感覺。感到有意思的地方在於,如果在沒有任何相關知識的情況下,我該怎麼去完成這樣一個網站工具?除了程式技術之外,似乎一個Wrapper是不可或缺的核心關鑑。但是這又讓我想起了一個問題,如果那些網站已經可以運作良好,那代表那些網站的Wrapper部份是很O.K的,而目前GoD系統的最大問題卻是出在Wrapper部份!這到底是為什麼呢?跟學長詢問的回答是:GoD系統的Wrapper可能比較複雜。如果是這樣,那麼比較複雜的好處與目地是什麼?這種複雜對GoD系統來說是必要的嗎?還是GoD系統可以利用這種複雜打敗其它相類似的網站工具?

除此之外,進入Web 2.0時代,使用者成為內容的產生者,諸如blog、youtube以及相關的SNS網站如facebook與twitter等都是這方面的應用。目前正在思考有哪些關於這方面的理論或是技術值得研究,還是有什麼可以改良的地方?可能要先從一些paper的研讀開始,然後慢慢去擴展開來。看來這部份需要好好地加強,期許培養出一個研究生該有的能力。

一兩句話,有時很受用

每一個人在成長過程中,都會有經驗的累積與閱讀而獲得的知識。有時,這些體會在針對某些看法時,常常會被濃縮成一兩句話來表達。然而,大部份情況下,很多聽的人當時可能沒辦法體會。往往要等到時過境遷之後的某一天才能領悟,甚至是可能永遠都不會明白。

最近看淨空老和尚的演講,裡面有一段是他老人家提到當年學佛的過程,那時他很喜歡研究經文,但是一直對佛教裡談戒律的部份不是很有興趣。因為他認為戒律是當時那個年代那個國家所產生的,到了今天這個時代不同的地區上,這些戒律的合適性可能有問題,因此他對戒律這方面一直沒有很在意。但是他的老師每次在指導他的時後,總是會有意無意地提起一句話:"戒律很重要"。他當時只覺得師父可能認為他對戒律看得比較淡,所以才會常常提醒他。

後來,老和尚的師父過世,老和尚在難過之餘想起了師父生前常常對他說的一句話:"戒律很重要"。他越想越不對勁,總覺得師父對他說這句話應該是有別的含意。於是老和尚便去翻察佛經中關於戒律的部份,這一翻查之下讓他終於領悟了當年師父那一句話的意義。原來戒律是為了出世之用,不是給一般人遵守的,是為了讓修行人出世所定下的不可違背的基本精神。這一領悟對老和尚幫助很大,在修行的路上奠下了深厚的基礎。

看完後,我思考著,當我的老師在指導我的時後,是不是有哪一些話其實是我還未能體會的?有時後可能看似簡單平淡的一兩句話,也許在某些時候會發揮其不可思議的效果,甚至可能因此改變了一個人的重大想法。也許,多留意談話中透露的一兩句話,可能會從這短短的一兩句話中發現其中的玄機進而領悟到有重大幫助的想法也說不定呢!

04/29 regular meeting

這一次報告的paper與mobile device比較有關,因為行動裝置上網已經是不可避免的趨勢。但是在目前的畫面尺寸上,除非未來有新技術的產生,否則在小畫面上使用網站是必然的。這方面的應用可能有幾個部份:一個是把原有網頁重建,或是盡可能作到節省操作以達到更便利瀏覽的目地。其中,網頁中image元素的分類是有用的,這也是我選擇這篇paper來看的原因。

這次報告的paper題目是"Image Classification for Mobile Web Browsing",出處是"Proceedings of the 15th international conference on World Wide Web"。不難想像的是,作者是日本人,畢竟在日本,使用手機已經成為非常高頻率的一種活動。底下是摘要部份:

對於只有小畫面的行動裝置使用者來說,瀏覽專為桌上型PC的大畫面所設計的網頁是不方便的。然而,隨著網路技術的提升與行動裝置的普及,這方面的需求也越來越多。目前已經有一些研究與商業產品正嘗試解決這方面的問題,其中,能夠正確地分辨網頁中image的種類是很有用的。舉例來說,去除網頁中某些image來簡化網頁內容以達到更符合小畫面瀏覽的程度。

在這篇paper中,作者們將web imgaes分成11個種類。接著,從40個網站中收集到的3901個images以手動方式分類。其中,選取了能夠有效分類的37個image features。這些image features的擷取方式總共有4種:
1.use HTML source file analysis
2.query web servers
3.exploit the layout information of DOM trees when rendering the pages
4.use image processing

根據這37個image features,作者們使用C4.5演算法來建立Decision Tree Classification。

實驗部份,總共執行40次,每一次選擇其中一個網站的images當作test set而其餘39個網站的images當作training set。結果顯示,採用作者們的分類方式可以達到83.1%的正確率。最後,作者們還實作了一個automatic web page scrolling system作為展示利用image classification方法的一種應用。

最後是這次報告的投影片:


研一下學期的學習心得

一轉眼,已經是研究所一年級下學期過一半了。這學期的時間比上學期還緊湊,除了課程修得比較多以外,在meeting的程式方面也花了非常多的時間。此外還必需加上看書的時間以及定期觀看一些blog資訊的時間,時間真是永遠都不夠用。

目前最讓我感到比較擔憂的部份是找paper來閱讀這一方面,主要是因為不太有sense應該找哪些題目來作有系統的深入閱讀比較好。已經報告過的paper都是不太相關的,也算是在嘗試看許多不同的方向,看有沒有辦法看到某個題目是值得再繼續閱讀或研究下去。一方面也是因為目前meeting的部份比較偏向實務,所以很難有對應的paper可以看;另一方面是關於一些背景知識的缺乏,所以在找paper的時後常不知道該怎麼找比較好,比如有哪些key word可以下。因此這部份目前正開始自修關於data mining的教科書,不過進度沒辦法很快,因為時間實在太少了。另外,許多paper都或多或少談到關於統計學的某些檢驗方式,我想之後可能也要花時間了解一下統計學方面的基本知識。關於研究方向,目前對於social network方面的興趣還蠻大的,其它像是廣告分析或是search engine之類的都蠻有興趣的,未來可能找這一類paper來看跟報告。另外之後可能也要找時間跟老師討論哪些方向可以研究,畢竟研二開始就要對論文下功夫了。

在程式能力方面的加強上,雖然目前meeting有牽涉到一些網頁設計相關方面,但是我負責的部份是比較屬於XML的方面,所以在整體網頁設計的許多能力上我認為其實都還是很不足夠的。也許網頁語言相比桌面應用程式來說是相對簡單的,但是網頁設計的困難點在於廣跟雜。要同時學習許多不同的語言,客戶端有javascript,server端有asp.net,畫面設計上有CSS等。最後整合一起應用,也是需要蠻多時間的。除非原來對這幾種語言都有一定的熟悉程度,否則在網頁設計上真的會進展很慢且頂多可能只是堪用而已。目前實驗室的同學們感覺上都還蠻慘的,程式能力可以說都蠻糟糕的。可能未來比較可行的方式或許是,一個team work一個project,每個人學習某個固定的元素,然後由一個人設計統合起來。

最後是一些希望有時間可以閱讀的書籍─

web 2.0程式設計方面:
資訊架構學建置逐層擴充的web 2.0服務 Professional Web 2.0 Programming以及其它一系列介紹mashup的書籍。

作業系統方面:
Linux kernel、windows internals

數學方面:
機率、統計類

School 2.0

現在好像2.0當道,什麼東西都應該要來個2.0一下才會紅,比如Web 2.0、Office 2.0、甚至台大莊永裕教授在科技來自於生活論壇中提到的所謂Research 2.0。剛好這學期有修一門數位學習導論的課,我覺得大學之間應該也要來個School 2.0。

有時我覺得很納悶,為什麼學校沒有辦法提供每一次書報討論的演講影片?甚至提供一個網站讓同學可以去自由下載?是因為牽涉到什麼法律層面的問題嗎?還是為了保障該演講者可以以同一套內容重覆使用之便?老實說我不知道,但是我覺得生活應該更便利化一點、更效率化一點以及更分享化一點。很多演講的內容很精彩,但是卻沒辦法保留然後分享。一個好的演講竟然只有辦法給只在那間教室裡的人聽到,而沒辦法擴散到只要你想聽就可以的程度,我覺得這真是有點浪廢。推廣來說,許多學校也都有很不錯的演講,假如能夠有一個整合的平台把這些演講影片收集起來,加上如果還有分類與搜索的功能,這樣幾乎就是一個巨大無比的另類學術演講台灣版的YouTube。

關於課程方面,也有樣本可以學習,比如MIT的OpenCourse計劃。如果學校間都可以把專業課程開放出來,甚至連上課內容都有辦法影音分享,這樣在學習上的效率與成果一定很棒。而且我覺得並非作不到而是不願意作,畢竟很多學校都已經有遠距離上課的能力,更何況是影音提供呢?甚至如果這些課程收費的話,我覺得或許也可以作為一種另類的學校收入來源。按老師課程受歡迎的程度統計而分收費標準,也許以經濟學的角度來看,這對於提升老師的教學品質來說是一個很大的正面誘因呢!

當然,感覺似乎有點異想天開,不過我真的覺得很多東西都應該可以更交流與開放,底下是莊永裕教授的演講內容:

對政治人物的殘酷,是偉大人民的力量展現

台灣總統選舉結束,雖然覺得國民黨應該會勝選且或許會贏幾十萬票,但出乎意料之外的是竟大贏了兩百多萬票。也許,對於從黨外時代就一路奮鬥的民進黨來說是個很無情的結果,但是正如帶領英國贏得二次大戰的邱吉爾被人民趕下台時所說的名言:"對政治人物的殘酷,是偉大人民的力量展現"。

這一次的選舉對台灣來說具有很重大的意義,就是把過去無往不利的統獨族群牌徹底毀滅。不過長昌這次的失敗就我看來實在是非戰之罪,他們承擔了過去八年以來陳水扁政府的執政包袱。但是很顯然的民進黨並沒有體會到這一點,所以才會在立委之後再一次慘敗。陳水扁的家人、親信的貪腐形像並沒有受到太多的反省,民進黨包庇的下場就是今日的慘敗。

晚上看陳文茜主持的評論結目,她談到了一段話讓我覺得很值得深思,也替過去這些為台灣民主奮鬥的革命家感到同情,更替在這過程中投機的得利者感到可恥。她說她把女人一生中最青春的歲月都奉獻給了政治,希望能改善這個國家、抗衡專制的國民黨。最後,她的目標實現了,民進黨終於成功。可到頭來她才知道,原來她犧牲的這段青春歲月竟換來了荒唐可笑的八年。

選舉結束後,特別看了謝長廷先生的選後感言。老實說,講得很令人感動,也讓人覺得很不捨。但是也許"對政治人物的殘酷,是偉大人民的力量展現",我期待民進黨能從失去政權的沉痛之中體會到人民的力量,然後再度把黨外時期那股理想找回來給人民看看。

02/19 regular meeting

這一次報告的時間有點糟糕,剛好卡在過完農曆年後不久,開學後的第二天。由於最近在忙的工作與網頁程式設計有關,而近來設計網頁的技術慢慢地講究Rich Client UI效果。因此就找了一篇與這方面相關的paper來報告,目前這部份應用最火紅的當屬AJAX,不過慢慢地Adobe也推出了AIR,而微軟也力捧SilverLight技術。看來,在Client端下載一個thin-client的概念將會是未來網頁設計架構中的主流。

這一次報告的paper題目是"OpenXUP─an Alternative Approach to Developing Highly Interactive Web Applications",出處是:"Proceedings of the 6th international conference on Web engineering",底下是這次報告的本篇paper摘要:

製作更豐富與高互動性的Web Application需求益發增加,目前改善傳統的HTML方式的介面表示方法主要有兩種:一種是利用下載程式到browser中執行的方式如Java Applet或ActiveX;一種是近來很流行的AJAX。但是這兩種方式都有其缺點,前者當UI與程式功能比較複雜時,需要下載的程式碼也變得較多,並且由於程式功能在Client端執行,因此存在有安全性的風險;後者的UI則受限於Browser的JavaScript Engine與DHTML的表現能力。因此作者們提出了另一種可選擇的方式─OpenXUP,一種基於XUP(Extensible User Interface Protocol)的Web User Interface Development Framework。

XUP是一種基於SOAP的Protocol用來處理在web上的使用者介面事件溝通與更新的通知,而且支援非同步的訊息傳送。OpenXUP的組成有兩部份:thin client and server toolkit which offers a set of event-driven APIs。think Client(XUPClient)只有兩個任務:一個是顯示UI與捕捉UI Events;另一個是負責與server間的通訊(傳送與接收Events)。Server(XUPServer)部份負責處理從Client傳送過來的UI更新要求,裡面包含了Application Manager、Event Dispatcher與XUP applications。Application Manager用來選擇對應的XUP application作處理,Event Dispatcher則把Events分派給對應的Event Handler程式處理(在XUP application之中),而XUP application則是Server中程式邏輯的主要部份,利用一組Event-driven APIs來完成其功能。

OpenXUP的特色在於程式功能的執行都在Server端完成,透過XUP將UI的更新結果傳到Client,然後由Client顯示更新後的UI畫面。由於程式功能都在Server端執行,因此Cleint端的環境是安全的,並且在除錯與維護上也較容易。另一方面由於Client端完全利用本地端電腦的GUI toolkit能力(目前以.NET實作)再加上XUP支援非同步的訊息傳送,使得在Client端的介面呈現上展現出了快速的UI反應與豐富高互動的UI可用性。

底下是這次報告的投影片檔:


善惡之謂何?

何謂善惡?這是一個非常難以準確定義的問題,在哲學上有很多討論,宗教上也有各自對善惡的看法。這個問題雖然非常深奧而且也沒辦法三言兩語可以好好解釋明白,但是不論如何,每個人的心中卻都有一套自己的善惡判斷標準。

就在昨天,我看了淨空老和尚的了凡四訓講記,讓我對善惡的解釋又有了新一層的看法,甚至打從心底認同!底下是講記中關於善惡說明的部份內容:

中峰和尚是元朝時後人,那時有一些讀書人去拜訪中峰禪師。
問曰:佛氏論善惡報應,如影隨形。今某人善,而子孫不興;某人惡,而家門隆盛。佛說無稽矣!
中峰云:凡情未滌,正眼未開,認善為惡,指惡為善,往往有之。不憾己之是非顛倒,而反怨天之報應有差乎!
眾曰:善惡何致相反?
中峰令試言其狀。
一人謂詈人毆人是惡,敬人禮人是善。中峰云:未必然也。
一人謂貪財妄取是惡,廉潔有守是善。中峰云:未必然也。
眾人歷言其狀,中峰皆謂不然,因請問。
中峰告之曰:有益於人是善,有益於己是惡。有益於人。則毆人詈人皆善也;有益於己,則敬人禮人皆惡也。是故人之行善,利人者公,公則為真;利己者私,私則為假。

如果以這樣的標準來判斷善惡真假,我想世上若真有絕對的善惡,雖不中亦不遠矣!

答同學關於C/C++問題

最近實驗室有同學正在自修關於C/C++方面的問題,在練習寫函式的時後碰到些小問題,於是在MSN傳訊問我。他正在練習寫一個把c語言字串作反轉的函式,結果執行的時後當掉,他傳給我的函式原始程式碼如下:

char *rev(const char *p)
{
char *q;
int size = sizeof(p);

while((size--)>0)
*(q++) = *(p+size);

return q;
}

這個函式寫法在邏輯上是沒有錯,不過出問題的地方在於將函式中Local變數的位址回傳。當函式返回時,所有Local變數都會被清除,於是造成錯誤。

一個最簡單的方式是,把要回傳的反轉字串宣告成Global變數,這樣在函式返回時,就不會造成因清除而產生的錯誤。但是這種寫法有個很大的缺點,就是程式不具有re-entrant的特性。因為如果使用者程式是multi-thread且都有可能呼叫這個函式的話,那麼由於multi-thread共用相同的全域空間,這將有可能造成問題。

另一個方法是使用動態記憶體配置,這樣函式就具備了re-entrant的特性,也不會在函式返回時產生錯誤。但是使用動態配置在c/c++中是必須要程式自己作釋放記憶體動作的,這會讓函式在使用上很不直覺,而且感覺也不對稱。記憶體配置在函式內,而記憶體釋放在函式外,並且還很可能會不小心忘了把記憶體釋放!

比較折衷也較直覺的方式是參考類似C語言函式庫的設計方式,傳入兩個字元陣列變數,第一個是來源字串,第二個用來作為儲存反轉字串之用,這樣對程式使用者來說應該是比較便利與直覺的一種方式。

民進黨,成也台灣意識,敗也台灣意識

2008年1月12日,立委選舉結果出爐,國民黨立委席次突破罷免總統的門檻2/3,若再加上盟友無黨籍聯盟,則突破修憲門檻3/4。反觀民進黨,卻遭遇創黨以來最大的挫敗,這一次立委席次不到1/4,連修憲提案的門檻都不到,曾幾何時,民進黨淪落到這種程度?無怪乎連馬英九都說經過這次選舉,國民黨已經成為國內唯一的大黨。

自從擁有公民投票權以來,我不曾在選舉中實行這一項國家賦與我的權力。但是這一次立委選舉,我卻一改過去的習慣,堅持要去投出這一票。原因無它,只是為了教訓民進黨。民進黨選舉失利的因素很多,第一家庭的貪腐形像、內閣官員的發言不當、民生經濟問題以及過份操弄族群分裂等。當這些部份一個個的集合起來,最後產生的結果就是:民進黨這次選舉的慘敗。

然而在這一次的選舉過後,我開始認為民進黨的慘敗其實已經沒有逆中求勝的可能性了。民進黨當初在黨外時代能夠成形起來,靠的就是追求台灣人民的權利,但是在這一個過程中,卻把台灣人民分裂成兩個無法融和的族群:一邊是本土政權,一邊是外來政權;一邊是愛台灣的台灣人,一邊是不愛台灣的中國人;一邊是追求台灣獨立,一邊是擁抱終極統一。最後民進黨終於執政成功,也許是執政的勝利讓民進黨沖昏了頭,看不清其實民進黨的勝利並非只靠單純的台灣意識,而是還有來自人民對民進黨的清廉形像與地方施政成果,雖然在民進黨支持者的基本面中有很大的部份是因為台灣意識的關係。

時至今日,民進黨卻因為台灣意識而走入了死胡同,為了對得起支持民進黨的基本死忠派,台灣意識被過份的強調與濫用。但是這樣過份的結果造成了中間選民的反感,可是如果不這樣作,民進黨又會失去台獨深綠的支持者。不過無論是哪一黨,想要贏得勝利,其實都需要那關鍵少數的中間選民。因此,民進黨目前可以說是進退兩難,因為在民進黨分裂族群的台灣意識型態操弄下,民進黨的支持者中,中間選民與泛綠支持者已經開始產生互斥現像。也就是民進黨的選民結構無法從深綠到淺綠最後擴張到中間選民,因為意識型態往往是主觀的、偏激的與不理性的,而中間選民一般都是屬於較為理性的一群人。但是如果訴求理性,那麼那些偏激的支持者將無法認同,因為中間路線不是他們樂於看見的。

我想在目前的情況下,民進黨想要在後面的總統大選贏得勝利是非常困難的,因為選後民進黨仍然持續捍衛台灣意識,仍然繼續滿足非理性的基本票源。但是他們忘了,想要贏得勝利,關鍵都在那少數的中間選民身上。可是中間選民關心的不是意識型態的問題,而是民生、貪腐與施政成果。可以說,民進黨長期操弄族群分裂,到頭來他們終將為此付出失去政權的代價。

新學期選課清單

1/7期末考開始,到1/14號Linux Kernel project 2 Due Date止,這個學期就算結束了。在中央大學的選課系統上,也已經有下學期的選課清單了,從去年的12/31當天就可以開始加選。這個學期的課感覺並不多,加上有些還有衝堂,可以選修的課更少了。

我的想法是把可能想選修的課都先加選,等到時後再看有哪些課程中選再來決定最後要退選的課程。因為有些課開放名額沒有那麼多,但是卻有超額的人去選修;另外有些課名額雖然還蠻多的,但是選修的人卻寥寥可數。除了可能是課程名稱看起來不怎麼吸引人之外,最大的原因大概是修課壓力很重。

因為上學期有選修Linux Kernel,所以這學期我希望可以延續上學期學習的知識,因此我選修了一門現代作業系統核心,這門課重點放在Windows作業系統系列如XP、Server 2003等。另外跟Lab比較有相關的課程我也選修了兩門,分別是機器學習理論與資料庫系統。還有兩門與網路方面比較有關的課程,IPV6與P2P我也選修了。理想的狀況是選修12學分四門課,盡可能在研一把課程修完,研二的時後可以比較專注在準備論文上面。

經歷過一學期的體驗,在課程選修、meeting與paper報告各方面的累積下來,我的感覺是累積背景知識是很重要的。在課程方面很多都與之前考研究所時讀的基本科目的概念有關係,沒有那些基本功,在一些更深入的主題理解上是很難消化的,甚至在程式project上靠以前工作時用到的C/C++語言也得到了很多幫助。而在paper閱讀上,這種感覺可以說更為強烈。往往一篇paper都有許多reference,但是在看paper的過程中很多時後因為時間關係沒辦法去仔細參考,或是沒有相關知識,結果在理解上的感覺差很多或是體會不到樂趣與關鑑的地方。

這個學期即將結束,對下一個學期與寒假的計劃大概是這樣:在寒假中,我希望把老師交待的工作能夠順利完成;下學期的部份,把每一門課扎扎實實地學好,然後盡量自修一些相關的教材與paper以便找出可以有興趣與值得研究的方向。

Blogger Templates by Blog Forum