因為下週要考試了,所以溫習了一些基本概念,準備考試囉。事實上,在計算機的領域中有許多東西,我常常忘了又看,看了又忘,150個專有名詞中有許多不常用的概念幾乎沒有什麼映像,還好翻一翻書,我總算恢復了一點點記憶,下面只列了部份資料,這些資料是我看完教課書之後所濃縮的一些概念,可以說是我自己做的心得筆記,有些概念可能只是很簡單的陳述,若想知道詳細內容,還是得自己去翻一翻教課書。因為專有名詞實在太多,目前暫時只先研究關於硬體方面的一些基本概念。
 

CJY0503 發表在 痞客邦 留言(1) 人氣()

 
 
 
Hash是一個很好用的資料結構,很多程式語言多可以看到它的存在,Hash的結構是由Key-Value所組成的資料,設計者只要根據Key值就可以取得資料,是一個相當方便好用的資料結構。

Perl Hash(Associative Array)

CJY0503 發表在 痞客邦 留言(0) 人氣()

 
 
 這是一個小小的遊戲程式,該遊戲程式包含了兩種模式。第一個是"遊戲設計"模式,另一個是"遊戲測試"模式。在"遊戲設計"模式中,遊戲設計者可以加入一些遊戲物件(如:小紅人和其他物品),並且利用滑鼠拖曳的功能在畫面中擺設這些物品。因為我不擅長於美工設計,所以我產生了一些英文字的圖片當做遊戲的物品。這個遊戲是利用小紅人這個角色去收集散落於畫面中的物品,只要集滿9個物品就算是遊戲結束。另外遊戲中有一個叫Energy(能量),這個東西會隨著小紅人的移動而減少,一但這個數值變成0,而小紅人尚未收集到9個物品,就算是任務失敗,並且結束遊戲。Energy這個數值,我們根據小紅人的移動方向的不同,而給予不同的數值。因為向上爬比較費力,所以減少的比較多,向下走比較省力,所以減少的比較少,左右移動減少的數值為兩者之間。Eq1所表示的資料就是上下左右所會減少的Energy值,目前這個數值並未提供設計設去變更,如果要讓遊戲設計者可以變更此設定值,需要撰寫一個介面供設計者變更當中的資料,如果有需要可以花時間撰寫。另外關於物品方面,目前只提供增加物品到螢幕畫面的功能,並沒有提供將某項物品從遊戲中移除的功能,如果有需要可以考慮撰寫此功能,這樣會使整個遊戲設計介面更加完善。Eq2所表示的資料結構為所有物品存放的結構,裡面的資料包含物品的名稱、顯示的圖示資料與擺設的座標位置。Eq3中所顯示的資料為小紅人的基本資料,包含位置、狀態(面向何方)、收集到的物品、他目前的Energy值。因為我怕物品還沒收集完畢,Energy值就歸0,所以將這個值設成10000。
 
self.energy_cost={'up':50,'down':10,'left':20,'right':20}                                                                                 (Eq1)

CJY0503 發表在 痞客邦 留言(4) 人氣()

 
 
 
 
 

CJY0503 發表在 痞客邦 留言(2) 人氣()

 
 
人的頭腦真是一部優秀的處理器,只要是學過的語言幾乎都能分析的出來,只不過有的人聯想力強,反應比較快,有的人聯想力差,但是只要多給一些提示仍舊可以知道句中隱含的意義。生活在多國語言環境的中國人,常常會聽到一些中英文混雜在一起的語言,如果只是中英文混雜在一起的句子,對於國中畢業的學生(只要英文單字學的不錯)大致上都可以知道對方到底想要跟你說什麼。我這裡所說的中文指的是國語,英文指的是美式英語。例如:我電腦的hard disk是100G。像上面我電腦的hard disk是100G這個例子一般人應該相當容易解讀與了解裡面的意思。在台灣有不少人喜歡說台語,尤其在職場上,為了拉進彼此之間的關係或其它理由,會以台語來溝通,但是他們也不完全使用台語,而是將台灣語、國語和英語三種語言混合起來講,相信這樣的語言要利用電腦的語音辨識技術來辨識裡面的內容時在相當不容易,一種語言的語音辨識對電腦來說就已經不容易了。如果是利用文字辨識的技術或許比較容易一些,因為不同的語言有不同的文字集合,雖然有些語言的文字會和其他語言的文字集合產生交集,但應該比語音訊號好處理一些吧。例如:我們 Dau din ki Taipei,意思是我們一起去台北。"我們 Dau din ki Taipei"這句話中,黑色字體表示國語,藍色字體表示台語,綠色字體表示英語。在台灣,母語教學的風氣越來越興盛,相信將來還會有一些山地同胞的母語加入其中。目前國小已經開始實施母語教學,這裡指的母語是台語,如果照這種情況來看,在台灣所有的國中畢業生對於這樣國語、英語以及台語三種語言混雜的句子應該也不是問題才對。感覺上好樣有點像日本,在日本外來與他們都不翻譯而直接取他們的發音,利用他們的50音直接拼出來,或許台灣的注音符號"ㄅㄆㄇ..."在將來會比方塊文字更有用。
 
現在有不少年輕的台灣人對日本或韓國的語言和文化頗感興趣,因此也將該語言容入他們平常的說話當中,例如:"你去給我拿蘋果和葡萄",他們不僅使用了國語、台語、英語,更加入了日語,關於台語、客語(客家話)以及日語,我用拼音方式表示,所以原來的那句話就變成: ki ga wa lin kuo and ku tou,在這篇文章中,我們只探討說話發音,並不在意各種語言的文字寫法。 ki ga wa lin kuo and ku tou這句話當中,黑色字體表示國語,藍色字體表示台語,橘色字體表示日語,綠色字體表示英語,紅色字體表示客語。我將這句話中所代表的個個東西翻譯中國語,表示"你", ki ga wa 表示"去給我", 表示"拿", lin kuo 表示"蘋果", and表示"和", ku tou表示"葡萄"。

CJY0503 發表在 痞客邦 留言(0) 人氣()

 
 
 
這個程式應該是目前我寫過最大的Python的視窗程式,雖然大但是卻沒做什麼事情,只是控制幾個不起眼的按鈕,跳出幾個設定的視窗介面。這個程式比較令人頭大的是販賣機的"找錢系統",應為販賣機只能給付一定數量的銅板和紙鈔,而且所找回的金額只能由特定面額的紙鈔與銅板來給付,所以比較麻煩。關於視窗介面我們是使用Boa Constructor這個工具軟體來協助建立,利用這個工具幫我們產生販賣機的使用者介面,並完成所有的程式設計。目前已經初步完成這個程式,功能上大致是正常的,"找錢系統"應該能正常工作,程式的進入點是MainApp.py,請點選MainApp.py這個程式執行(因為太多檔案,怕有人不知主程式是哪一個,在此說明),尚須改進的地方:
 

CJY0503 發表在 痞客邦 留言(2) 人氣()

 
之前,我們已經使用BOA Constructor撰寫過幾個簡單的視窗程式介面,計算機的小程式讓我們知道如何控制視窗上的按鈕,只繪畫直線的那支程式讓我們簡單的學會如何在視窗上面畫圖,接下來我們將學習一些簡單的IO控制,如何使用文字方塊來得知使用者輸入的資料,如何做出確認對話盒,讓使用者確認是否要執行動作,並且在這個範例中,我們會將使用者所設定的資料儲存起來,並且在下次需要時,重新載入資料。大部分的介面可以利用BOA Constructor來幫我們產生,產生完介面之後在加入部分的程式碼來控制程式,相信大家應該很熟悉這樣的程式設計方式。
 
儲存資料設定的程式碼
    def OnSaveDataButton(self, event):

CJY0503 發表在 痞客邦 留言(0) 人氣()

 
利用XMLRPC套件可以完成電腦間資料的傳遞,正如之前所提到的文章,Java程式可以透過XMLRPC的方式將資料傳送給Python程式,讓Pyhton程式來處理並回傳資料給Java程式。今天要跟大家分享的東西並不是這個,如果對這項技術有興趣請參閱之前的文件。現在要跟大家討論的是如何將同樣的一個工作分散到不同機器或者是分散到不同的處理程序(Process不是Thread)進行資料處理,所應用的技術是XMLRPC。假設大家對Pyhotn程式語言有基本的認識,Python內建函式庫中有一個xmlrpcLlb的函式庫可以使用,利用這個函式庫就可以達到資料分散處理的目的。當然你也可以找到Python的SOAP函式庫同樣可以達到目的。
 
程式內容很簡單,包含一個主程式跟數個分散處理資料的子程式,主程式的名稱叫clientMain.py,其他子程式依據所開的port number來命名,60000.py表示port number=60000,以此類推,要執行這個程式,首先先將60000.py、60001.py....依序執行啟動,最後啟動clientMain.py的主程式,這個主程式會呼叫port number=60002下的echo這個函式,而port number=60002下的echo會叫用port number=60001下的echo,這樣往下叫下去,將原本的大問題拆解成數個小問題,個別擊破,當然你可以將60000.py放在一台電腦中執行,60001.py放在另一台電腦中執行,以達到分散處理的好處。
 

CJY0503 發表在 痞客邦 留言(0) 人氣()

 

你曾經趴在地上看這個世界嗎?或許用這樣的角度看東西會使你輕鬆一點,因為你不必在去擔心上與下所發生的事情,只需去憂心左與右、前與後,如同在地上爬行的螞蟻一樣,,螞蟻永遠只會往前、往後、向左、向右努力的過著生活,他們不用去理會從上方或從下面所產生的壓力,因為這是他們無法控制與想像的一個領域。活在當下,許多事情不斷的發生,無論在求學階段、工作,都有自己該做的一個任務,也會有許多來自上面或來自於下面的命令與請求,來自下面的請求永遠不知上面統治者的困擾,下位者只憂心上面的人無法聽到他們的聲音。猶如一隻快渴死的螞蟻希望找到一些水來喝,但是上面始終沒有降下半滴雨水,地面上又哪來的水,所以這隻螞蟻就不斷的向上帝乞求與水的降臨,因為天空一直沒有降下雨水,這隻螞蟻以為上帝沒有收到它的訊息,因此就集結更多的螞蟻向上帝乞求,希望透過多數的力量將訊息傳達給上帝知道。原本螞蟻永遠只會往前、往後、向左、向右努力的過著生活,為什麼他們要向在他們上面的天空要水?原因是當他們在地面上找不到水時,會從一個他們所無法到達的地方降下他們所需要的水,所以他們開始擔心天空是否降下水。這次螞蟻真的快渴死了,但是天空仍然未降下一滴雨水,他們開始埋怨天空與上帝,但是他們萬萬想不到,天空早已經悄悄向下許多的雨水,而且已經下了好幾天了,上帝早已經聽到他們的請求賜給他們需要的雨水,但是,因為這群螞蟻正好位在一個大棚子裡面,所以所需要的水一直沒有出現在他們的眼前。或許身為旁觀的第三者很清楚的知道事情發展,但是那群螞蟻卻十分的怨恨天空。

來自上面的命令永遠不知下面執行者的回應,上位者只煩惱下面的人無法遵守他所制定的規則,造成下位者的損失與不滿,上帝規定工蟻要負責尋找食物以及水,以免造成其他螞蟻的死亡,但上位者並不知這些工蟻是否有認真的尋找食物雨水,最後因為他聽到工螞們對他發出降雨的請求,於是便答應該請求而降雨,也認為降了幾天的雨應該可以提供這些 工蟻足夠的水源,怎知這些工蟻仍然在要求降雨,於是上位者又再度降雨,但工蟻仍天天請求,而且呼聲似忽越來越大,上帝認為這些工蟻們並不認真尋找水並且貪得無饜,因此定出了另一條規則工蟻若不盡其義務將褫奪工蟻所具有的特權,因此雙方越靠越疆,造成這一群螞蟻的死亡。上位者豈知這些工蟻受困於棚中,所以找不到水,即使棚外的螞蟻都被淹死了他們仍舊找不到水。上面者只聽到下位者部分的聲音卻不了解造成的原因,下位者只知埋怨上位者的壓迫,卻不信任上位者所做的事,認為他們聽不見也不理他們。

CJY0503 發表在 痞客邦 留言(1) 人氣()

 
Currently, the web phenomenon that is driving the best developers and captivating the best entrepreneurs is Web 2.0. Web 2.0 encompasses some of today’s most exciting web-based applications: mashups, blogs/wikis/feeds, interface remixes, and social networking/tagging systems. Although most Web 2.0 applications rely on an implicit, lightweight, shared semantics in order to deliver user value, by several metrics (number of startups funded, number of "hype" articles in the trade press, number of conferences), Web 2.0 technologies are significantly outdistancing semweb technologies in both implementation and mindshare. Hackers are staying up late building mashups with AJAX and REST and microformats, and only rarely including RDF and OWL. This panel will consider whether semantic web technology has a role in Web 2.0 applications, in at least the context of the following areas:
  1. Web 2.0 and Semantics: What unique value can semantic web technologies supply to Web 2.0 application areas? How do semantic web technologies match up with the semantic demands of Web 2.0 applications?
  2. Semantics and Web "Ecosystems": Web 2.0 applications often strive to build participatory ecosystems of content that is supplied and curated by their users. Can these users effectively create, maintain, map between, and use RDF/OWL content in a way that reinforces the ecosystem?
  3. Semantic Web in Practice: Does semantic web technology enable the cost-effective creation of Web 2.0 applications that are simple, scalable, and compelling for a targeted user community? Can semantic web technology genuinely strengthen Web 2.0 applications, or will it just be a footnote to the Web 2.0 wave?
最近許多人在談論Web 2.0的技術,到底Web 2.0要達到什麼目的?為什麼有Web 2.0的誕生?Web 2.0是否真的有存在的必要性?最近Web 2.0的應用以及所使用的技術,或許是一個不錯的研究方向。

CJY0503 發表在 痞客邦 留言(0) 人氣()

 
這個程式很簡單,比之前的計算機範例程式還要小,計算機的程式主要是讓我們練習如何控制按鈕,如何使用Python的GUI工具,並熟悉其開發環境。BOA Constructor是一個相當好用的Pyhton圖形整合工具,這一次我練習了如何控制滑鼠的動作與如何在視窗上面畫圖,程式的內容很短,功能也相當簡單。關於畫直線的程式需要注意的一點就是視窗資料的重繪,如果視窗中的圖形沒有重繪,當你改變該視窗的大小時,之前所繪製的直線都消失了,所以必須重繪。
 

CJY0503 發表在 痞客邦 留言(0) 人氣()

 

現在所有程式設計都脫離不了視窗程式設計,不管是電腦上的程式設計甚至是手機上的程式設計都需要親合力高的使用者介面,但是這些介面有時候並不是那麼容易製作,在JAVA程式設計中使用Swing來設計使用者介面,有的人使用IDE整合工具幫我們產生這些介面(如JBuilder,讓程式設計者省了不少力氣),微軟的Visual Stdio C++也提供畫面設計的輔助工具讓程式設計者更容易產生使用者介面,VB程式設計也提供了一些基本的物件(如文字方框、下拉式選單等)減輕程式設計者對畫面設計的負擔。Borland C++ Builer在這些介面物件的提供比Visual Stdio C++還要豐富,使用上更為方便,因此有許多程式設計者喜歡是用這樣的開發工具來設計他們的程式,其他如Delphi也提供方便的工具讓程式設計者可以利用拖曳與點選的方式來擺設需要的按鈕物件。沒有提供方便的視窗介面的開發工具,讓程式設計者再開發親合力高的使用者介面花上許時間。Python程式設計也提供方便的視窗環境讓使用者方便開方視窗成程式,並且能夠對程式進行除錯的動作,BOA Constructor這個工具時一個不錯的選擇,其他當然還有許多類似的工具,但是測試了這麼多,以及使用了這麼久,我覺得這個工具使用起來最好用。我利用這個工具撰寫一個簡單的計算機程式,只要花5分鐘的時間就可以搞定,程式設計者只需要對每個按鈕做好設定,並且把必要的物件放置到適合的位置,並加以控制就完成你的設計。使用BOA Constructor開啟MainApp.py就可以管理簡易計算機的視窗專案。
 

CJY0503 發表在 痞客邦 留言(0) 人氣()

 
中秋國慶一連五天連假,今天是假期的第四天,和家人去坪林遊玩。坪林並不是很大,今天街上的旅客沒有很多,三三兩兩的遊客輕鬆的在坪林老街上閒晃著。我們一家人今天去坪林參觀了茶博物館,博物館中介紹中國人的飲茶文化,從唐朝、宋朝、清朝直到現在有關茶的一些故事。什麼是甩茶,這個是古代中的一種表演, 將茶水放在茶杯中,將茶杯放在竹籃中,竹籃上綁上一條繩子,從高高的舞台上將茶水甩到台下,茶水不從茶杯溢出,竹籃不沾到任何茶水,這樣的表演就叫做甩茶。何謂鬥茶,所謂的鬥茶就是在比誰的茶最好喝,參賽者每人準備好自己的茶具,在街上互相較勁,看看誰的茶煮出來最好喝。博物館中有不少蠟像作品表現古代人的飲茶習慣和狀況,當然God of Tea陸羽也一定會出現在博物館中,其他關於個類與茶相關的書籍與器具在這個博物館都有展出。比較奇怪的事就是根據博物館中的統計資料中顯示,台灣地區茶的產量好像至今有日益減少的趨勢,但是出口與喝茶人口卻日益增長,不知是否資料有誤,還是有情他原因。在那個博物館中,我們也看到茶的各種保存方式和製作方法,從古代的人工製作到現代的機器製作所需的各種道具都有詳細的說明。茶的分類一發酵程度大致上可以分成三種,有全發酵、半發酵與無發酵。茶的種類與名稱也有400~500種之多,熟悉常聽有烏龍茶、龍井茶、普爾茶、鐵觀音(聽說台灣北部奧萬大一帶,而且是唯一夏季採收的茶種)...等等。古代人把茶存放於甕中,製作成茶磚,有些會做成條狀,看上去就像是樹幹一樣。今天中午在合歡茶宴風味餐廳品嘗了所謂的茶料理,我們所吃的每道菜一定都有茶葉,相當特別用茶葉做菜,茶不只能拿來沖泡,也能拿來調味做菜。各式各樣的茶料理讓我和我的父母享受一頓豐盛的午餐,最後的茶凍也十分好吃。下午我們跑去喝茶,坪林應該可以算是台灣產茶的產地之一,除了鹿谷中南部一帶的茶盛名,坪林每年也產出相當多的茶葉,然而坪林茶的特色就是,它的茶葉不是捲的,而是呈現直條狀(所謂的文山包種茶),這種長條狀的茶葉與一般常見捲狀的烏龍茶不同,當然氣味也不一樣。今天在坪林喝了不少坪林所產的茶,吃茶料理,在茶博物館中看到不少有關茶的故事、文物、器具與製作方式,中國古代喝茶的風氣很盛,幾乎每各階層的人都喝茶,所以許多的茶樓茶館林立,甚至傳說達摩當年為了能夠達成靜坐9年的諾言,曾在嘴中含著葉子,避免中途睡著,傳說達摩曾經兩次9年靜坐,第一次時前三年很順利,但是後來卻熟睡了六年,等他醒來後發現自己竟然睡著了。

CJY0503 發表在 痞客邦 留言(0) 人氣()

 
今天早上起床後閒來無事,無意識下,隨手拿了一本書開始閱讀,這本書是說明自然語言處理技術的書籍,介紹了從1970年那個時候的人到今天為止的研究,對自然語言的處理方式以及他們所使用的一些技術。我隨便翻了一個章節來閱讀,雖然這本書從前也閱讀過,但總是片片段段的零星閱讀,似乎我也沒有一次將這本書從頭到尾仔細看過,每次都隨手翻開這本書,匆匆閱讀幾個章節後又去忙別的事情了,這次的情況也是如此。這次閱讀了Part-of-Speech Tagging這一個章節,以前好像也曾經讀過,就當作是複習,又將這個章節讀一次。自然語言處理的過程中有一個步驟是做Part-of-Speech Tagging,這一個步驟的主要目的就是將所要處理的資料做分類,根據書中所提到的資料以及其他文獻中的資料,在執行這個步驟時需要一部字典來當做分類的參考依據,從字典中獲取某個單詞的詞性資料和線索,這些分門別類的詞性組成的集合叫做tagsets,世界上存在許許多多的tagsets,而且這些tagsets的數量也不固定,從40個到200個,有多有少,主要目的就是將文字的詞性分類。一般而言一個字不可能只有一個詞性這麼單純,通常都會有一個以上的詞性存在,既然有一個以上的磁性存再就會造成處理時發生混淆的現象,舉例來說:英文中的Book這個單字,可以當作名詞來使用,也可以當作動詞來使用,當作名詞他的中文解釋叫做書,當作動詞其中文翻譯叫做訂(如:訂房間)。不同的詞性造成的語意上的差異很大,如何消除這個混淆現象從1970年到今天人有不少人在研究。主要的方法有三種:第一種方法是定一些文法規則來辨別詞性,例如:英文中to 後面可能接動詞,字尾有s可能是名詞,當然這些規則一定有例外,遇到例外時要額外定義例外的規則處理,不是很方便。第二種是使用機率的方式來處理,從文章中統計出各詞性所會發生的機率,例如:p(V|book) =0.2, p(N|book) =0.8,上面的意思是說book這個英文單字出現時有20%的機會是當動詞,有80%的機會是當名詞,憑藉著這些機率數字我們來猜一猜到底book這個單字應該是動詞還是名詞。第三種方法是結合第一種和第二種方法所產生的方法,根據事先所撰寫的規則中判斷該單字的詞性,並使用HMM的方法來計算哪個詞性在此規則出現的機率比較高,並使用學習的演算法來調整這些結果,這類的學習演算法都需要人的介入去調整並修正這些錯誤的資料。另外在Part-of-Speech Tagging的另一個問題就是該字的詞性無法再字典中找到時應該如何解決?換句話說就是如果這個字是新創造應該如何給定它的詞性。是要根據某些規則來賦予他詞性呢?還是應用統計機率的方式來決定,如果是用機率的方式來決定他到底是屬用均勻分部還是其他哪一種分布。如果是均勻分部每種詞性出現的機率都一樣,所以新創造出來的字可能屬於任一種以定的詞性。這類的問題相當有趣,但至今似乎也沒有一個比較好的解決方式,如果有一個比較好的方式來解決這個問題,自動翻譯,無論是中翻英或英翻中,應該會比目前翻譯機翻出來的句子通順一些。

CJY0503 發表在 痞客邦 留言(1) 人氣()

 
昨天和家人一起去礁溪,途中經過一個超長的隧道(雪山隧道),這條隧道連接了台北與宜蘭兩個都市,讓這兩地的往返更為方便,相信以後要從台北到花東去玩,走這條路應該是最快的,從南投或走北宜公路繞過去都應該很花時間,如果真的趕時間,坐飛機當然只要半個小時降可以到達花蓮。這次去礁溪玩的主要目的是去泡湯,我們一家人到川湯春天溫泉飯店去泡水,那邊有SPA、溫水池、熱水池、冰水池和蒸氣室,冰水池與熱水池的溫差有38度之多,從冷水池跳入熱水池中很溫暖也很舒服,但是從熱水池跳入僅僅6度的冷水池中,雙腳似乎塊麻痺了。最特別的那邊的石板烤鴨,將剛出生的小鴨子放在石版上,一出生就享受幸福的溫暖,當然這個石板並不會很燙,躺上去吹著涼涼的微風,相當舒服。

CJY0503 發表在 痞客邦 留言(0) 人氣()