Sonntag, 29. März 2009

catalina.bat startup script is missing

EE4216/EE5816 Internet Client-Server Computing


catalina.bat startup script is missing.

解決使用 Netbeans時 出現 tomcat找不到catalina.bat問題

Problems in installing Tomcat in NetBeans:

Do NOT use the installer to install Tomcat.
Use the Zip version of Tomcat.

then , set the admin user. eg

user: admin
password : 12345

The experience is very painful.



javascript alert box

EE4216/EE5806 Internet Client-Server computing

The use of javascript alert box.

function formSubmit()
{
window.event.returnValue =false;
// To find out which radio button is selected

var com;
if (myform.Command[0].checked)
com = "Search";
else if (myform.Command[1].checked)
com = "Update";
else if (myform.Command[2].checked)
com = "Delete";
//document.write(" Command is : " + com);

while ( window.event.returnValue !=true)
{
switch (com)
{
case "Search":
if (myform.Lastname.value.length == 0)
{
window.alert("Search Command : \nLast name is
Missing! ");
return;
}
else
window.event.returnValue =true;
break;

case "Update":
if (myform.Lastname.value.length == 0)
{
window.alert("Update Command: \nLast name is missing! Please Fill in!");
return;
}
else if (myform.Firstname.value.length == 0)
{
window.alert("Update Command : \nFirst Name name is missing! Retry!! ");
return;
}
else if (myform.PhoneNum.value.length == 0)
{
window.alert("Update Command : \nPhone Number is missing! Try again!! ");
return;
}
else
window.event.returnValue =true;
break;

case "Delete":
if (myform.Lastname.value.length == 0)
{
window.alert("Delete Command :\n Last name is Missing! ");
return;
}
else if (myform.Firstname.value.length == 0)
{
window.alert("Delete Command :\n First Name name is missing! Retry!! ");
return;
}
else
window.event.returnValue =true;
break;
default:
break;
}
} // while
}






Donnerstag, 26. März 2009

戰國秦漢間人的"造假 "

戰國秦漢間人的 "造假 "
中國文化

秦漢的方士與儒生

顧頡剛

"清代學者 本來 只是為了 反抗 空談心性 的宋、明理學 而 信仰漢代 學術,但經 他們 深刻研究“漢學”的 結果,竟使 我們約略看出 那時代的 黑暗 的內幕,知道 所謂 權威 的漢代學術的 大部分 只 是統治階級 麻醉民眾 和 欺騙民眾 的工具,它的基礎建立 在宗教 迷信上。"


<<古史辨自序 >>
與錢玄同 先生論古史書
答劉胡倆 先生書
《古史辨 》第一册自序

戰國 秦漢間人的造僞 與辨僞
一、古人缺乏 歷史觀念
二、戰國秦漢間 好古者的 造僞
三、孔子對于 歷史的見解
四、戰國以前 的古史是“民神發糅 ”的傳説。
五、墨子的托古
六、種族融合 過程中 造成了兩個大偶像
七、孟子的 托古
八、陰陽五行説 所編排的古史系統
九、道家的托古
一○、戰國與 西漢的疑古
一一、司馬遷 與鄭玄的整齊故事
一二、東漢的 疑古
一三、結論
附言
後記
三皇考
五德終始説 下的政治 和歷史



Dienstag, 24. März 2009

顧頡剛--與錢玄同先生論古史

轉貼: 古史辨

顧頡剛---層累地做成的中國古史

<<與錢玄同先生 論古史 >>


1. 我二年以來,蓄意 要辨論 中國的古史,比崔述 更進一步。崔述的《 考信錄》確是一部極偉大 又極細密 的著作,我是 望塵莫及的。我自知 要好好的讀十幾 年書,才可追 得上他。但他的 著作有二點 我覺得不滿意。

第一點,他著書的目的 是要替古聖人 揭出他們的聖道王功,辨偽 是手段。他只知道戰國以後的話 足以 亂古人的真,不知道 戰國以前的話 亦足以亂古人的真。他只知道 楊、墨的話是有意裝點 古人,不知道孔們的話 也是有意裝點古人。所以他只是 儒者的辨古史,不是史家的 辨古史。

第二點,他要從古書 上直接整理出古史 跡來,也不是 妥穩的辦法。因為古代的文獻可徵的已很少,我們 要否認偽史是可以比較各書而判定的,但要承認信史便沒有實際的證明了。崔述 相信經書是是信史,拿經書上的話做標準,合的為真,否的為偽,所以 整理的結果,他 承認的史跡亦頗楚楚可觀。

但這在我們看來,終究是立腳不住的:因為 經書 與傳記及是 時間的先後,並沒有截然不同的 真偽區別;假使在 經書之前還有書,這些經書又要降做傳記了。我們 現在既沒有 " 經書即信史 "的成見,所以我們要辨明古史,看史跡的整理還輕,而看 傳說的經歷卻重。凡是一件史事,應當看它最先是怎樣的,以後逐步逐步的變遷是怎樣的。我們 既沒有實物上的證明,單從書籍上入手,只有 這樣做才可得一確當的整理,才可盡 我們整理的責任。

2. 我很想做一篇《 層累地做成的 中國古史》,把傳說的 古史的經歷詳細說一篇。這有 三個意思。

第一,可以說明「時代越後,傳說的古史期 愈長。」如這封信裏說的,周代人心中 最古的人是禹,到孔子時有堯舜,到戰國 時有黃帝神農,到秦有三皇,到漢以後有 盤古等。

第二,可以說明「時代越後,傳說中的中心人物 越放越大。」如舜,在孔子時只是一個「無為而治」的聖君,到《堯典》就成了一個「家齊而後國治」的聖人,到孟子時就成了個孝子的模範了。
第三,我們在這上,即不能知道某一件事的 真確的狀況。我們即不能知道東周時的東周史,也至少能知道 戰國時 的東周史;我們即 不能知道 夏商時的夏商史,也至少能知道東周時的夏商史。

3 但這個題目 的範圍太大了,像我這般沒法做專門研究的人,簡直做不成功。因此,我想分了三個題目做去:一是《戰國以前的古史觀》,二是《戰國時的古史觀》,三是《 戰國以後 的古史觀》。後來又覺得這些題目的範圍也廣,所以想一部書一部書的做去,如《 詩經中的古史》,《 周逸書 的古史》,《 論語 中的古史》……我想,若一個月讀一部書,一個月做一篇文,幾年之後自然也漸漸地 做成了。崔述 的學力我固是追不到,但換了一個方法做去,也足以補他的缺陷了。

4. 這回適之 先生到上海來,因為不及做《 讀書雜志》的文字,囑我趕做一篇。我當下就想 做一篇《 論語中的古史》,因為材料較少,容易做成。但今天一動筆 之後,又覺得趕不及,因為單說《論語》自是容易,但若不與他書比較看來,就顯不出出它的地位,而與他書一比較之後,範圍 又大了,不是一二天 內趕得出的。因此,想起 我兩月前曾與玄同先生一信,論起這事,固然是信筆寫下,但也足以說出 一點大綱。所以就把這篇 信稿鈔 在這裏,做我發表研究 的起點。我自己 知道既無 學力,又無時間,說不上研究;只希望因了發表這篇,又起了閱者的 教導和 討論,使我可以把這事上了軌道去,那真是快幸極了!

十二,四,二十七。



玄同先生:

(上略)

1. 先生囑我為《國學季刊》作文,我也久有這個意思。我想做的文是《 層累地造成的 中國古史》。現在先對先生說一個 大意―我這些 意思從來沒有寫出,這信恐怕寫得 凌亂沒有條理。

2. 我以為 自西周以至春秋初年,那時人對於古代 原沒有悠久的 推測。《商頌》說,「天命玄鳥,降而生商。」《大雅 》說,「民之初生,自土沮漆」;又說「厥初生民,時維姜嫄。」可見 他們只是把 本族形成時 的人作為始祖,並沒 有很遠的 始祖存在他們的 意想之中。他們只是認定一個民族的始祖,並沒有許多民族 公認的始祖。

3. 但他們在 始祖之外,還有一個「禹」。《商頌.長發 》說:「洪水芒芒,禹敷下土方;……帝立子生商。」禹的見於載籍以此為最古。《 詩》、《書》裏的「帝」都是 上帝,(帝堯、帝舜等不算,詳見後。《尚書》裏可疑的只有一個帝乙,或是殷周的後王尊他的祖,看他和上帝一樣,加上的尊號,也說不定。)這詩的意思 是說商 的國家是 上帝所立的。上帝建商,與 禹有什麼闋係呢?看這詩 的意義,似乎在 洪水芒芒 之中,上帝 叫禹下來布土,而後建商國。然則禹是 上帝派下來的神,不是人。《 小旻篇》中有「旻天疾威,敷於下土」之句,可見「下土」是對「上天」而言。

4. 《商頌》,據 王安靜先生 考定,是 西周中葉 宋人所作的(《樂詩考略》、《說商頌下》)。這是對於 禹的觀念是一個神。到 魯僖公時,禹確是人了。《閟宮》說,「是生后稷... 俾民稼穡,... 奄有下土,纘禹之緒。」(按,《生民篇》敘后稷事 最詳,但只有說他是受上帝的保護,沒有說他「纘」某人的「緒」。因為照《 生民》作者的 意思,后稷 為始事種植的人,用不到繼續前人之業。到《 閟宮》作者就不同了,他知道禹為最古的人,后稷應應該繼續他的功業。

在此,可是《生民》是西周作品,在《長發》之前,還不曾有禹的觀念。)這詩的意思,禹是先「奄有下土」的人,是后稷之前的一個王國,后稷是後起的一個王國。他為什麼不說后稷纘黃帝的緒,纘堯舜的緒呢?這很明白,那時並沒有 黃帝堯舜,那時最古的人王 (有天神的性)只有禹,所以說 后稷繼禹之緒。商族 認為 禹是下凡的 天神,周族 認禹 為最古的人王,正與現代人對於 盤古的 觀念一樣。

5. 在這上,我們 應該注意的「禹」和「夏」並沒有 發生了怎麼 關係。《長發》一方面說,「洪水 茫茫,禹敷下土方」,一方面 又說「韋顧既伐,昆吾夏桀」,若照顧 來人說 禹是桀 的祖先,如何 商國 對於 既感他敷土的恩德,對於禹 的祖先就會 翻臉殺伐 呢?按《長發》云,「玄王桓撥,受小國是達。受大國 是達」,又云,「相土 烈烈,海外有截」,是商 在湯以前國勢本發達,到湯 更能建一番 武功,把韋、顧、昆吾、夏桀 打倒罷了。禹是他們 認為開天辟地 的人,夏桀 是被湯征伐的一個,他們二人 莫不相關,很是明白。

6. 至於 禹從何來?禹與桀 為何發生關係?我以為 都是從九鼎 上來的。禹,《說文》云「虫也,從x(史徒按:古字,外"几"內"ム",以x代表),象形」x,《說文》云:「獸 足蹂地也」以 虫而有 足蹂也,大約是 蜥蝪之類。我以 為禹或是九鼎上鑄的 一種動物,當時鑄鼎象物,奇怪的 形狀一定很多,禹 是鼎上動物最有力者;或者有 敷土的樣子,所以就算 他是開天辟地的人。(伯祥云,禹或即是 龍,大禹治水的 傳說與 水神祀龍王事 恐相類) 流傳到 後來,就成了真的 人王。

7. 九鼎 是夏鑄的,商滅 了夏搬到商,周滅了 商搬到周。當時 不過因為它是寶物,所以搬了來,並沒有多大的意味;但經過了 長時間的 保存,大家對它就有了 傳統的 觀念,認為凡是 興國都應取 九鼎為 信物,正如後世的「傳國璽」 一樣。有了傳統 的觀念,於是要追朔 以前的統,知道 周取自商,商取 自夏,自然夏商周 會連成一系。成了 一系,於是商 湯不由得 不做夏桀的臣子。周文王 不由得不做殷紂的 臣子。他們 追朔出於 夏鼎,就以為禹 是最古的人,應做夏 的始祖。( 書中最早把「夏」「禹」二字聯屬成文的,我尚沒有找到。)

8. 東周 的初年只有禹,是從《詩經》上可以 推知的;東周期的 末年更有堯舜,是從《論語》上可以 看到的。( 堯舜 的故事從何說起,這個問題 很難解決:《左傳》是 戰國的著作;《尚書》中的《堯典》,《皋陶謨》也靠不住;《論語》較為可靠,所以取它)
《論語》中二次稱 堯舜 (堯舜其 獶病諸),一次連稱 舜禹( 巍巍乎!舜禹之有天下也),又接連 讚美 堯舜 (大哉堯之為君-舜有 臣五人而天下治- 禹磿無間然矣 ),可見 當時確以 堯舜在禹 之前。於是禹 之前有更古的堯舜了。

9. 但堯與舜,舜與禹 的關係還沒 有提起,或者當時人 心目中以 為各隔數百年的古王,如禹 和湯,湯和文王 之類,亦 未可知。 (《論語.堯曰篇》雖說明他們的 傳授關係,但《論語》經崔述 的考定,《季氏》至《堯曰》五篇是後人續入的。《堯曰篇》的首章,在文體上 可見出有意摹古 的樣子,在宗子上很可見 出秉著”王道”和”道統” 兩個主義,是 戰國時的 禹家面目。)

10. 在《論語》之後,堯舜 的事蹟造得 完備了,於是有《堯典》,《皋陶謨》,《禹貢》等篇出現。有了 這許多篇,於是 堯與舜有 翁婿的關係,舜與禹有君臣 的關係。《堯典》的靠不住,如 梁任公先生 所舉的「蠻夷猾夏」,「金作贖到」都是。即以《詩經》証之,《閟宮》說后稷「奄有下國」,明明是 做國王的,它卻說成是 舜的臣子,(后稷的”后”字原已 有國王之義,《堯典》上舜對稷說「汝后稷」,實為 不辭)《閟宮》說 后稷「纘禹之緒」,明明 是在禹後,它卻 說成是禹 的同官。

11. 又以《論語》証之,(1)《論語》上門人 問孝的很多,舜既「克諧以孝」,何以孔子 不舉他做例?(2)《論語》上說「舜有臣五人」,何以 堯典上會有九人?(3) 南宮適說「禹稷 躬身稼而有天下」,可見 禹稷都是 有天下的,為怎麼《堯典》上都是 臣而非君? (4)孔子 說舜「無為而治」,《堯典》上說「五載 一巡守,群後四朝」,又說他 「三載考績,三考,黜陟幽明」,不相 沖突嗎?

這些 問題,都可証明《堯典》出於《論語》之後。(我意,先有了 襌讓的學說 而後有《堯典》,《皋陶謨》出來,當作了 襌讓的証實,襌讓之說 本是儒家 本了尊賢 的主義 鼓吹出來的。) 作《論語》時,對於 堯舜的觀念 還是 空空洞洞,只推尊 他們做兩個 道德最高,功績最大的古王,作了《堯典》等篇,於是 堯舜的 ”文章”都有 實事 可舉了。

12. 從戰國到 西漢,偽史 充份的 創造,在堯舜 之前更加上了 多少古皇帝。於是 春秋初 年號最古 的禹,到這時真是 近之又近了。自從 秦靈公 於吳陽作 上畤,祭 黃帝( 見《漢書.交祀志》,秦國 崇奉的神最雜,名目 也最詭),秦文公夢了 黃(虫也) 作鄜畤,拾得 了一個 石頭作 陳寶祠,實在 還是 拜物教。黃帝之祀 起於秦國。說不定 黃帝即是「 黃龍地(虫寅)」之類),經過了 方士的 鼓吹,於是黃帝 立在堯舜 之前了。自從 許行一輩人 拾出了神農,於是神農 有立 在 黃帝 之前了。

13. 自從《易.系辭》拾出了 庖犧氏,於是 庖犧氏 又立在 神農之前。自從李斯 一輩人說「 有天皇、有地皇、泰皇,泰皇最貴」,於是 天皇、地皇、泰皇更立在 庖犧氏之前了。 自從《世本》 出現 硬替古代名人 造了個象樣子的 世系,於是 沒有一個 人 不是皇帝 的子孫了。自從 《春秋.命歷序》 上說「天地 開闢,至《春秋》獲麟 之歲,凡二百二十 六萬年」,於是天皇 十二人 各立了一 萬八千歲了,自從 漢代交通 了苗族,把苗族 的始祖傳了過來。於是 盤古 成了開 天闢地的人,更在 天皇之前了。

時代越後,知道的 古史越前;文籍 越無徵,知道的古史 越多。汲黯說:「辟如積薪,後來居上」,這是造史很好 的比喻。看了這些 胡亂偽造的史,《堯典》那得不成了 信史!但看了《詩經》上稀疏 的史,更那 得不懷疑 商以前的史呢?

14. 這些意見如果充 分發揮,准可著 成數十卷書。古代 的史靠得住 的有幾,崔述所謂「信」又何嘗 是信!即如后稷,周人 說是他們 的祖但有無是人也不得 而知。因為在《詩》《書》上看,很可見出 商的民族 重游牧,周的民族 重耕稼,所謂「后稷」,也不過 因為他們 的耕稼為生,崇德報 功,追尊創造者 的稱號。

實際上, 周人的 后稷和 許行的神農氏 有什麼分別?這兩個 倡始耕稼 的古王,很可見 出造史人的 重複。他們造史 的人為什麼要重複?原來禹 的上面堆積 的人太多了,后稷的 地位不尊重了,非得創 一個神農氏,許行 一輩人就不足以 召號召了!

(下略)

顧頡剛 .十二,二,二十五.

http://www.angelfire.com/la/kenlai/chhist/eassy/eassy2.html



轉貼: 張五常: 受教的經歷——為老師的課本序

轉貼: 張五常
中國文化
( 2009.03.24)受教的經歷——為老師的課本序 (2009-03-23 13:45:55)
標簽:張五常 價格理論 赫舒拉發 財經
分類:五常談學術


老師 赫舒拉發(Jack Hirshleifer)的課本——《價格理論及 其應用 》——的中譯 終于出版了。是英語 原著的第七版,老師 謝世前一年(二○○四)定了稿,由我選兩位 懂經 濟的翻譯,搞了幾年,工程可真不小。這本教科書的英語本初版于一九七六,逾三十年冠于美國的同級課本的市場。第五版加進了A. Glazer(也是經濟學 教授)為合著者;第六版由赫師的兒子D. Hirshleifer(是金融學 教授)合著;今天的第七版 是三者合著了。美國的經濟學 傳統,是得享大名的 課本到後來都加上合著者的安排,希望可以不斷地 傳諸後世。從風格、内容、處理手法 這幾方面看,第七版 還是第一版的面目,但題材增加了不少,書是厚了的。

一九七六初版之前,赫師寄文稿給我提供意見。我一看就知道自己不可能賺教科書的 錢!需要的苦心經營嚇倒了我。一九六三年左右,赫師開始詳盡地寫下他的講義筆記。這些講義 整理得 非常用心,逐個學期加上去,打字、手寫密密麻麻,例子個案 有程有序,脚注、重點等皆作了記號。後來赫師 把厚厚的講義一分為二,比較深而專的關于投資理論那部分先出一本書,那是一九七○。六年後的《價格理論及其應 用》是另一本較厚的,遠為全面,調校淺了。

我是一九六一年 的秋季進入洛杉磯加大的經濟研究院的。當時每年兩個學期,高級價格 理論分兩科,兩個學期,是規定要修的。前者教資源使用,後者教收入分配。赫師當時成了名的 投資理論屬後者。他出自哈佛,在芝大教過,轉到加大 時已經是名頭 不小的價格理論人物了。他把 費沙(Irving Fisher)的利息理論 發揚光大,後來被認為是今天金融學 説的開山鼻祖。我對費沙理論的掌握,全部來自赫師的闡釋。

必須修的兩科高級 價格理論,我的老師是 Robert Baldwin。此師也出自哈佛,教得非常清楚。讀物作者主要是 馬歇爾(Alfred Marshall)、魯賓遜夫人(Mrs. Joan Robinson)、希克斯(John Hicks)、森穆遜(Paul Samuelson)、史德拉(George Stigler)等人。修過的科目不能再修學分,只能旁聽。一九六二的秋季我開始旁聽赫師的價格理論,一連聽了六個學期(即三年)。一九六三年的秋季加進旁聽 艾智仁(Armen Alchian)的價格理論,也是聽了六個學期。赫師的主要讀物出自 費沙與 佛利民(Milton Friedman)。艾師之課是 没有讀物的!他的「貴客自理」的要求,是我决定住進圖書館的一個原因。我的博士論文 是在赫師與 艾師的指導下寫成的。

有兩件瑣事重要,這裏要對同學們説一下。第一件是一九六五的秋天,我走進赫師的辦 公室,他説:「史提芬,有一件事我要問你很久了。你的成績那麽好,博士試早就考過了,為什麽還要繼續旁聽 我的課呢?不要誤會,我喜歡你坐在那裏,但坐了那 麽久,難道我的經濟學你還没有學全嗎?」我回應:「你的經濟學 我早就從你的 論著中學得通透,繼續旁聽你的課是 要學習你的思考方法。」他聽得高興。今天我要 對同學們説,讀赫師的《 價格理論》,要跟着書中的思路去想。

第二件事是一九七五年,赫師到我任職的西雅圖華盛頓大學講話,過後幾位同事對我 説:「大家都知道你是 赫舒拉發的學生,他喜歡用數,你不用,其它風格也毫無相似之處,所以大家 也認為你不可能是赫舒拉發的學生。究竟是怎麽一回事?」同學 們可以想象嗎?跟足 赫師五年,竟然毫無相似之處,怎麽可能呢?我當時打趣地回應:「我是他歷來最好的學生,所以不同!」是説笑,雖然老生常談:赫師喜歡對 人説我是他教過的 最好的學生,而有一次他發了神經,在推薦信中把我與費沙相比。但上帝知道,偉大的可不是我,而是赫師。一位老師能教出一個毫無相似之處的 學生,古往今來很少見。炎黄子孫學書法、學國畫,其風格不是永遠與 老師相近嗎?西方的文化没有那麽大的约束力,但佛利民、貝加等 教出來的學生,明顯地有老 師的痕迹。張五常與赫舒拉發的 風格毫無 相近之處,主要 是赫師用的是放開的教法。他没有成見,永遠鼓勵,站在旁邊讓 我走自己的路,見路 向不對才提點一下。

同學們今天讀 赫師的《價格理論》,不要 相信書中 説的任何話。赫師 當年没有這様 要求 過。他只是要求 同學考慮,要求 同學衡量。他永遠是説,這裏有一個觀點,邏輯 推理是如此這般,支持的假設例子 是這様,實例是那様,反證 的例子同學可以想到 嗎?在課堂上 他喜歡提問:「這裏有 一個問題不知你們 怎様看?」問題 提出後,他游目四顧 地等回應。見不到回應,會問我:「史提芬,你有意見嗎?」答得對他鼓 勵,答得新奇他贊賞,認為答錯了他要你多想一下。永遠不會像我那様,説:「蠢到死!」

有一次,赫師教 投資風險,他問:「資料顯示,結了婚的人較多購買 人夀保險,那是為 什麽?」當時在座的 同學不少是上上之選,知道結了婚 的人責任增加,風險 的代價上升了,所以偏于買 保險。我見赫師 問得那様傻,要跟他搞笑一下,説:「因為 出 售人夀保險的經紀 不斷地到 婚姻注册處查詢,知道 你新婚 就來麻煩你!」同學們大笑。赫師 等笑聲停下來,評曰:「你説的 有理,保險經紀真 的很麻煩。」同學們又 再笑起來了。是這様的氣氛教出一個 張五常。同學們 今天讀赫師的《 價格理論》,不要相信,要考慮,要衡量,而更重要 的是不停地提出 問題,找其它同學 或老師出 氣吧。

價格理論 的正確意義是 選擇理論(theory of choice)。這是假設每個人的任何行為都是個人選擇 的結果。是武斷 的假設,英語稱 postulate或axiom,任何科學 的起點皆如是,意思是大家 不要 在這出發點争議,把理論的含意推了出來大家才不妨針鋒相對。永遠是個人的選擇:經濟學没有集體選擇 的理論。是自由 選擇嗎?經濟學不管絶對 自由,也没有 完全不自由。經濟學的 整個範疇,是以局限下 的「自由」選擇 來解釋人的行為,而所有經濟現象 皆受到 這範疇的 约束。從那所謂 自由社會 到 暴君專政,人的行為一律 是局限下 的 選擇結果。選擇理論 之所以被稱為 價格理論,因為局限是 價。價 的變動 導致的行為 變動 要有理論 的约束,這理論的 重心就是 需求定律了。没有市場 當然没 有市價,但局限 的轉變 還可以用代價 的方法處理,需求定律 還在。所以 價格或 選擇理論 適用于任何 經濟制度,只是 離開了 市場的分析,同學 可能要 在博士之後 才有機 會自我發揮。

赫舒拉發 的經濟學問的重點,是任何問 題他永遠從局限條件 的指定起筆 處理。他稱為 opportunity set(中譯「機會集」,有點怪 )。這一詞 很可能是赫師發明的,今天流行,我在一九六二就聽到赫師 用過多次。我稱之為「局限條件」,簡稱「局限」,英語的 constraints是也。

《價格理論 及其應用》來來去去 都是局限 的變化對 選擇行為的 影響,其思維與 推理清 晰。同學們 不要多 花時間去找書中 的邏輯有 没有錯,而是要考慮 每個局限變化 的處理 手法,衡量 這些變化與 真實世界的 關系,提出問題,不斷地到 處跑,嘗試找 推翻 《價格理論 》的實例。我用例子 的方法,是從 赫師的教誨 學回來的。奇怪 當年華大 的同事看不出這個 重要的 秘密。

同一教科書,教師 怎様評價 與學生怎様 吸收,了解作者的 意圖有很大 的决定性。希望 這個簡單的「序」説清楚了 赫師當年教我,只着 重引導與 啓發,從來 没有要求 過我同意 他。我可以在 上帝面前 作證,赫舒拉發 是個没有 一絲成見的人。

張五常

按:《價格理論 及其應用 》在國内由機械工業出版社出版。

http://blog.sina.com.cn/s/blog_47841af70100csyq.html

Montag, 23. März 2009

Meno’s Paradox

Meno’s Paradox

The “Meno’s Paradox” can be reformulated as follows:

1. If you KNOW what you’re looking for, inquiry is unnecessary.
2. If you DON'T know what you’re looking for, inquiry is impossible.
3. Therefore, inquiry is either unnecessary or impossible.

An implicit premise:
Either you know what you’re looking for or you don’t know what you’re looking for.

And this is a logical truth. Or is it? Only if “you know what you’re looking for” is used unambiguously in both disjuncts.

Platonically speaking, if you believe in "platonic love", then "platonic sex" is also platonically valid.

Reference:

THE DIALOGUES of Plato: TRANSLATED INTO ENGLISH WITH ANALYSES AND INTRODUCTIONS by B. JOWETT

Meno, Euthyphro, Apology, Crito, Phaedo, Gorgias...

mp3,ogg

http://www.archive.org/details/DIALOGUES-OF-PLATO-BJ-V2-3ED

http://faculty.washington.edu/smcohen/320/menopar.htm



Samstag, 21. März 2009

EE4216/EE5816 --Assignment 2

EE4216/EE5816 Internet Client-Server Computing
Java network Programming
Assignment 2

Due date: 31 March 2009 (Tue), 11:55PM

This assignment is an extension of tutorial 5. Please take note of the following requirements, otherwise the grader will not be able to execute your programs and marks will be deducted.

1. The database file is PhoneDB.mdb, and the DSN used in your application should be PhoneDB.
2. The welcome page of your application should be called PhoneDir.html, and the servlet for handling the HTML-form request is called DBservlet.java

3. On the welcome page, the user are provided with the option for the following 3 operations:

Search : Search for the telephone numbers that match the given name(s) in the database. In this operation, the Lastname field should not be unspecified, but the Firstname field can be left empty.

The search is based on prefix-match of the name(s). For example, if the user only enters “Ch” in the Lastname field, then the following phone records will match the specified name:

Chan Tai Man
Chan Tin Ming
Cheung Chi Keung

If the user has entered “Ch” in the Lastname field, and “T” in the Firstname field, then the search result should only contain

Chan Tai man
Chan Tin Ming

The Search result is not shown on the TelNum field in the current browser window, instead the names and phone numbers are shown on a new browser window.

Update : Update the phone record. In this operation, the user is expected to enter the full name, i.e. both the Lastname and Firstname, and the phone number. If the user misses out any one of the required fields, the browser will pop up an alert dialog to remind the user to enter the missing information.

If a phone record with the given names (exact match of the names) already exists in the database, the existing record will be replaced. If there is no phone record with the given name exists in the system, then a new record will be added to the database.

The user is notified of the result of the update operation, i.e. whether an existing record has been modified or a new record
has been added, via an alert dialog.

* Delete : Delete the phone record that matches the given Lastname and Firstname (Exact match willbe used in the Delete operation). The user is notified of the result of the delete operation, i.e. whether the operation is successful or not (record not found), via an alert dialog.

4. You are free to (i) modify the html file (with embedded JavaScript), (ii) modify DBservlet.java, and (iii) include other JSPs in your application.


EE4216/EE5816 Internet Client-Server Computing

EE4216/EE5816 Internet Client-Server Computing

Java Network Porgramming

Tutorial on Java Servlet and JSP :

<< Core Servlets and JavaServer Pages >>

by Marty Hall and Larry Brown

The second edition of Core Servlets and JavaServer Pages is now available for free access in PDF.

http://pdf.coreservlets.com/

EE4216/EE5816 Internet Client-Server Computing

EE4216/EE5816 Internet Client-Server Computing

Java Network Porgramming

Essential Reading:

An Introduction to Network Programming with Java

Publisher: Springer London

You cannot search this e-book with the author name. The libray staff forgot to input it in the system.

Montag, 16. März 2009

攻殼機動隊--〈謠Ⅲ〉的翻譯

攻殼機動隊--〈謠Ⅲ〉的翻譯

先大略說說 <<謠 >> 這首歌

這首歌,可說貫穿了整個 <<攻殼機動隊>> 動畫場景,在原聲帶上呢,也就分為《謠I》《謠II》《謠III》等三首歌曲,然而只有在 最後片終的《謠III》有唱出『遠神惠賜』這句;因為 最後傀儡師 終於與草薙素子 結合,也於最後 交流完成的那一刻,衛星狙擊 貫穿了他們所在的 義體腦殼,跟詩句(歌詞的文體是日文古詩)時間緊迫 的感覺 相與對應,真是令人愉快 又緊張。

起舞的,當然 就是對應了 傀儡師,而麗女 自然就是 草薙了,短短歌詞 完整表現了 傀儡師的高傲與無奈,以及草薙的 靈性提升之後 對現世的 期待與挑戰性……嗯,這樣的詩,真可媲美屈原 九歌的國殤,而且配上 日本民謠歌手的高唱,真是百聽不厭!

《謠III 》

吾が舞えば 麗し女酔いにけり
吾が舞えば 照る月響むなり
結婚に神降りて

夜は明け鵺鳥鳴く
遠神惠賜
=================

我若舞 麗女亦沉醉
我若舞 映月亦暉矇
天神降臨 私許婚

鵺鳥鳴啼 近夜明
遠神惠賜

翻譯重點紀要 :
1. <麗し女>是日本古事紀中的神名,所以應該屬於專有名詞,且已經有漢字,因此直譯。

2. <照る月響むなり> 翻譯為<映月亦暉矇>的典故,先看<照る月>的部分,用了映月的道理很簡單,因為月光是反射日光而來;再來看<響む> 除了發出 聲響之外,還有 喧嚷騷動之意,原文重點應該是在騷動上,然而為了什麼而騷動?自然是跳舞者了,也就是說 這個跳舞的人 跳到連月光都 騷動了。
不過 <映月亦暉矇>的暉字 事實上 指的是 太陽光,例如 落日餘暉,如果用了映月卻單只給他個朦朧,那還不至於有騷動的 感覺,因為 朦朧的月亮 並不難見,台北市區長久空氣污染所看到的都是朦朧之月,而顧慮到後面的 <夜は明け>,就必須 襯托黎明那看不見太陽 卻充滿日光的 時刻,因此用了<暉>。

3 <結婚に> 是個很特殊的 動詞,較偏向日本 古時的用法,換句話說是句 文言文(其實整首詩都是 文言文),是指私會或說是偷情的意思,所以並不能翻譯為 結婚。

4 <鵺> 是日本神道系統的 妖怪,借取中國山海經中的怪物<虎鶇>,傳說鵺曾經再狂風暴雷中嚇壞近衛天皇,故又稱為雷獸,能劇也有名為<鵺>的舞台(戲碼),一樣屬於專有名詞,故以漢字直譯;詩中加上鳥成為鵺鳥,是為了象徵黎明最後,天將要明那一刻的鳴啼。

http://www.youtube.com/watch?v=8b4XmI_QfRo

http://nakama666.spaces.live.com/blog/cns!5B455976CD98A4AD!136.entry



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Java Chat Room 聊天室/ Java Socket Programming

Assignment :

http://dev.rdxx.com/Java/Socket/2002-04/12/093027744.shtml

http://www.digilife.be/quickreferences/PT/Java%20sockets.pdf



攻殼機動隊--謠Ⅲ-Reincarnation

攻殼機動隊 《 Ghost In The Shell 》O.S.T〈謠Ⅲ-Reincarnation〉


http://www.youtube.com/watch?v=8b4XmI_QfRo


<< 謠Ⅲ--Reincarnation >>

若吾起舞時
麗人亦沉醉
若吾起舞時
皓月亦鳴響

神降合婚夜
破曉虎鶇啼

遠神惠賜 

————————————————————————————

這是押井守導演《攻殼機動隊--Ghost In The Shell》(第一集電影版) 的片尾主題歌。

在Bluescreen(電影筆記)藍祖蔚 發表的相關文章回應裡,網路名寫手銀色快手對這首歌和虎鶇(努威)都做了解釋,也翻譯了美麗的歌詞。

PS:我轉貼的歌詞便是銀色快手翻譯的,但我因為偏愛將「努威」改成「虎鶇」。

————————————————————————————

以下是銀色快手的回應文:

關於努威 原始出處:妖怪煉成陣

日本的平安時代,也有類似的 合體妖怪,名叫「努威」。很久以前的妖怪電影海報上曾有過「努威啼叫的夜晚恐怖喲!」的文案,一般漢字也寫成「夜鳥」(合為一字)或「虎鶇」,他是一種叫聲極為悲愴的鳥,也被當作召魂鳥,如果有人靈魂出竅 回不來的時候,就可以利用「努威」的力量,把飄流在外四散的魂魄召喚回來。

國學者 阿部正路 教授表示,一邊發出悲哀的聲音 的同時,連接黃泉 和人世的努威是「虛空之魔」。平安朝的《太平記》記載著這種鳥 的模樣:陰曆八月十七日,皓月當空的 夜晚,突然 從山邊飄來一大片的 烏雲,接著有怪鳥開始 不停地啼叫,啼叫時 會從口中噴出 火焰。閃電 也伴隨著出現,那炫目的光貫穿宮殿的 竹簾,天皇嚇得 不敢睡覺,命令武將們 想辦法討伐妖怪。

後來,隱歧地方有一位武士 勇敢地挺身而出,將這個妖怪 用弓箭射下,仔細一瞧嚇了一大跳,有著人面、蛇身、鳥喙、尖牙利齒的妖怪樣貌 極其駭人,雙腳類似 老鷹有爪,像刀刃般銳利,羽翼 張開的寬幅將近有 五公尺長。

但是, 這樣的 描述卻和《平家物語》中所記載 的妖怪有所出入,武將 源三位賴政射下來的 妖怪努威,頭似猿,身體像狸、尾巴像蛇,四隻腳像老虎,不管怎麼說,它也是綜合了四種動物 的特徵形成 所謂「異體共構」的妖怪。

押井守的動畫電影「攻殼機動隊」第一集 的主題曲〈謠〉(模仿神道教中 巫女祭祀用的 謠詞)整首歌的 內容在祝福 草薙素子 (複製人)【註】與傀儡師(一支有自我思想的 程式) 之間的合婚,將產生了新的 合體。

歌詞最後一句也提到「努威」的啼叫,意謂「異變的前兆」,生命的系譜可能因此而改寫,我很喜歡這段 歌詞,有一種說不出的神祕 和安定人心 的力量,或許妖怪一直都存在 人世間,只是形態 隨著時代變化 而有所改變吧。


【anarch註】銀色快手可能誤解了,草薙素子不是複製人,而是除了人腦外都被改造成義體的生化改造人。



Freitag, 13. März 2009

CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java

notes on p.160

State-dependent action designs:

1. liveness-first design vs safety-first design

2. Optimisitc: try-and-see() methods can always be tried when invoked, but DO NOT always succed, and thus may have to deal with failure.

3. Conservative: check-and-act() methods REFUSE to proceed unless preconditions hold. When preconditions do hold, the actions always succeed.

4. Optimistic approaches rely on the existence of exceptions and related mechanism that indicate when postconditions DO NOT hold.

5. Conservative approaches rely on the avaliability of guard constructions that indicate when preconditions HOLD and guarantee that they continue to hold across the course of an action relying on them.



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java

notes on p.105

Using ThreadLocal

1. ThreadLocal allows thread-specific variables to be added in an Ad-Hoc fashion to just about any code.

2. The ThreadLocal class internally maintains a table associating data ( ie, Object references ) with Thread instances. ThreadLocal supports set() and get() methods to access data held by the current Thread.

3. The java.lang.InheritableThreadLocal class extends ThreadLocal to automatically propogate per-thread variables to any threads that are in turn created by the current thread.

4. Most designs employing ThreadLocal may be seen as extensions of the Singleton pattern.

5. Rathe than constructing ONE instance of a resource per program, most applications of ThreadLocals construct ONE instance per thread.

6. ThreadLocal variables are normally declared as static, and usually have package-scoped visibility so they may be accessed by any of a set of methods running in a given thread.



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java

notes on p.159

State Dependence

1. Exclusion techniques are mainly concerned with maintaining invariants.

2. State-dependent concurrency control imposes additional concerns surrounding preconditions and postconditions.

3. Actions may have state-based preconditions that need NOT always HOLD when clients invoke methods on the host object.

4. Conversely, actions may have postconditions that are Unattainable:
a) when the host object is NOT in a proper state;
b) when the actions of other objects it relies on FAIL to achieve their own postconditions; or
c) when the acations of other threads have changed the states of other objects being relied on.

5. Most design issues for classes with state-dependent actions revolve around the
considerations necessary to "complete " a design so that you take into account all possible combinations of messages and states.



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java

notes on p.159

State Dependence

1. Exclusion techniques are mainly concerned with maintaining invariants.

2. State-dependent concurrency control imposes additional concerns surrounding preconditions and postconditions.

3. Actions may have state-based preconditions that need NOT always HOLD when clients invoke methods on the host object.

4. Conversely, actions may have postconditions that are Unattainable:

a) when the host object is NOT in a proper state;
b) when the actions of other objects it relies on FAIL to achieve their own postconditions; or
c) when the acations of other threads have changed the states of other objects being relied on.

5. Most design issues for classes with state-dependent actions revolve around the considerations necessary to "complete " a design so that you take into account all possible combinations of messages and states.



Dienstag, 10. März 2009

The Design Patterns Smalltalk Companion

The Design Patterns Smalltalk Companion

excerpts:
http://stephane.ducasse.free.fr/FreeBooks/SmalltalkDesignPatternCompanion/

page 223

Behavioral Patterns

1. Chain of Responsibility : Avoid coulping the sender of a request to its receiver by giving more than ONE object a chance to handle the request. chain the receiving objects, and pass the request along the chain until an object handles it.

2. Command : Encapsulate a request or operation as an object, thereby letting you parameterize clients with different operations, queue or log requests, and support un-doable operations.

3. Interpreter : given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.

4. Iterator : Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.

5. Mediator : Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.

6. Memento : Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.

7. Observer : Define a one-to-many dependency between objects so that when ONE object changes state, ALL its dependents are notified and updated automatically.

8. State : Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.

9. Strategy : Define a family of algorithms, encapsulate EACH one in a separate class, and define EACH class with the SAME interface so they can be interchangeable.

Strategy lets the algorithm vary independently from clients that use it.

10. Template Method : Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses RE-define certain steps of an algorithm without changing the algorithm's structure.

11. Visitor : Represent an operation to be performed on the elements of an object structure in a class separate from the elements themselves.

Visitors lets you define a NEW operation WITHOUT changing the classes of the elements on which it operates.



滙控「 大插水 」胡孟青 淚灑直播室

匯控挫至$33 青姐嚇到喊 -- 財經資訊台《交易所直播室》09 Mar2009

滙控「 大插水 」胡孟青 淚灑直播室

滙控 ( 0005 ) 今日( 9 Mar 2009) 被拋售 ,在競價時段 股價更直線 「 插水 」 , 收報 33 元 , 急跌 24.13% , 跌 10.5 元 。

股評人 胡孟青 在競價時段做 直播股評,目擊 滙控 (0005 ) 暴挫後,突然悲從中來,哭着說:「跌得好慘!」身旁的主持人出言 安慰:「青姐 唔好咁樣啦!」。其後一段時間 胡孟青都未有發言 。

E can pull up the curtain!!


http://www.inmediahk.net/node/1002543



Montag, 9. März 2009

CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java

ThreadLocal and Singleton

Notes on page 86

1. Consider using ThreadLocal rather than a Singleton in situations where it is more appropriate to create ONE instance of a class PER thread than one instnace per program.

http://www.ibm.com/developerworks/java/library/j-threads3.html



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java

Notes : page 93, 97

volatile fields

1. In terms of atomicity, visibility, and ordering, declaring a field as volatile is nearly identical in effect to using a little fully synchronized class protecting ONLY that field via get or set methods.

2. A field CANNOT be both final and volatile. Declaring a field as volatile differs only in that NO locking is involved. In particular, COMPOSITE read/write operations such as "++ " operation on volatile variables are NOT performed atomically.

3.Also, ordering and visibility effects surround ONLY the SINGLE access or update to the volatile field itself. Declaring a reference field as volatile does NOT ensure visibility of NON-volatile fields that are accessed via this reference.

4. Declaring an field field as volatile does NOT ensure visibility of its elements. Volatility CANNOT be manually propagated for arrays because array elements themselves CANNOT be declared as volatile.

5. Accesses and updates to the memory cells corresponding to fields of any type EXCEPT long or double are guaranteed to be atomic. This includes fields serving as references to other objects. Additionally, atomicity extends to volatile long and volatile double.



Sonntag, 8. März 2009

CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java

Notes : page 49-51

Systems design trade-offs

1. Perfect static information about objects, threads and iteractions tells you not only what can happen, but also what CANNOT happen.

2. While closed sub-systems are tractable, they can also be brittle. When the constraints and assumptions governing their internal structure change, these components are often thrown away and redeveloped from scratch.

3. Unbounded openness is usually as unattainable and undesirable as complete closedness: If everything can CHANGE, then you CANNOT program anything. But most system require at least some of this flexibility.

4. While inducing greater closedness allows you to optimize for performance, inducing greater openness allows you to optimize for future change.



Donnerstag, 5. März 2009

CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Assignment 2: Distributed Discussion Forum

Due date: 20/4/2009, 11:30am.

1. Aim and objective:

The objective of this assignment is to develop a distributed Discussion Forum (DDF) which provides
bulletin board service to users. Users can create / view /
reply posts in the system.

The services are provided by a group of collaborative
servers and should be available even some servers are crashed. In general, the system should provide location, failure and replication transparencies to its users.

2. Requirement:
Basic features (40%)
a) A set of identical server works together and provide discussion forum services.

b) User may connect to any of them to create/view/reply posts. The system should provide an integrated and consistent view of all posts stored in the system to any
user.
c) Optionally, a generic name server can be setup and act as the entry point of the system. The naming server should only provide naming service, i.e. provide server address to newly connected client / servers, and its failure should not affect any existing users.

d) For load balancing, each server should manage the post it created and handle all requests related to the post. In other word, posts are not duplicated to all servers. Location transparency should be provided to the user.

3. Enhanced features (30%)
a). Enhance the availability and fault tolerance of the system by mean of replica. Posts may be replicated on different servers so that even the master copy is crashed, the post is still available to public.

b). Enhance the performance of the system by mean of caching. In addition to part 1, the replica could be updated individually and the system will coordinate the updates and make all cached copies in consistence. Inter-process communication cost should be minimized.

4. Other features (10%): Graphics User Interface / Degree of transparency

5. Bonus feature (20%+)
Any meaningful features that can enhance the efficiency of the system

6. Implementation
Programming : Java 2 Development Kit 1.6.x, PC/Unix (Must be compatible environment: with the running environment of tutorial)

7. Team structure: 4 students / group

Suggested Tasks Division:
Student A:
Network Communication Protocol, Name resolution
Student B:
Server Program (Generic, Multi-Threading and networking)
Student C: Server Program
Post management, coordination, caching
Student D: Replication Algorithm
Demonstration: Week 13. During Tutorial


8 Deliverable:

a) Program with GUI for create/view/reply posts Approach/logic used in managing post and coordinating
the replicated copies (for enhanced features only).

b)Text Report with (no limited to) following content :

- Requirements and challenges analysis -System design with Petri Net Model
- Algorithm designs
- Test plan
- Transparencies support
- Comment on the assignment
(Due: 20-Apirl-2009, 11:30am.
Submit to Assignment Collection box outside CS department)

9. Assessments:
The assignment will be assessed by following criteria:
Criteria CILO Assessed by
1 Clearly identify the requirements and challenges of DS Report
the developed system. E.g. the transparencies
provided by the system. (CILO-DS)

2 Design and implement appropriate DC Report,
algorithms/approaches to fulfill the requirements and Program
tackle the challenges in part 1 (CILO – DC).

3 Provide system specification and test plan of the SDT Report
developed system. (CILO-SDT)

4 Provide reliable and efficient implementation of the MT Report, designed system, featured with multithreading and SP Program
socking programming. Provide analysis and
justification on the implementation and possible
alternative.(CILO-MT, CILO SP)



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming


Java Concurrency in Practice

本書作者系Java 標准化組織 (Java Community Process) JSR 166專家組 (Concurrency Utilities) 的主要成員。 JSR-166是來自於 Doug Lea 編寫的 util.concurrent包。

http://www.blogjava.net/chenpengyi/archive/2007/10/18/153977.html



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java
notes on page 13, and 17

Thread Vocabularies:

1. A thread is a call sequence that executes "independently " of others, while at the same time possibly SHARING underlying system resources such as files, as well as accessing other objects constructed within the SAME program.

2. Every Thread is constructed as a member of a ThreadGroup, by default the same group as that of the Thread issuing the constructor for it. ThreadGroups nest in a tree-like fashion. When an object constructs a new ThreadGroup, it is nested under its current group.

3. The method getThreadGroup() returns the group of any thread. The ThreadGroup class in return supports method such as enumerate() that indicate which threads are currently in the group.

http://gee.cs.oswego.edu/dl/cpj/mechanics.html



Dienstag, 3. März 2009

Java 線上遊戲 伺服器實作教學

Java 線上遊戲 伺服器實作教學

MMORPG 系統架構分析與 Java 開發設計之研究

Java Concurrency 共時運作

http://sites.google.com/site/aionjtw/gs-game-server/concurrency

Java 網路資源

http://docs.google.com/View?docid=ddgj2m37_1068c954b7c5


http://oss-tw.blogspot.com/




CS4282/CS6282--Thread Objects

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java
notes on page 9

Thread Objects:

new Thread(aRunnableObj ).start();

1. The most commonly used constructor in class Thread accepts a Runnable object as an argument, which arranges to invoke the Runnable's run method when the thread is started.

2. Whle any class can implement Runnable, it often turns out to be both convenient and helpful to define a Runnable as an anonymous inner class.

eg :

public Thread makeThread( Particle p) {

Runnable runloop = new Runnable() {
public void run() {
try {
while (true) {
p.move();
canvasPanel.repaint();
Thread.sleep(100);
} // while
} // try
catch( InterruptedExceprion ex)
{
return;
}
}
}; // anonymous inner class
return new Thread(runloop);
}





CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming

Doug Lea : Concurrent Programming in Java
notes on page 9

Why use interface?

1. An interface encapsulates a coherent set of services and attributes (broadly, a role) without assigning this functionality to any particular object or code.

2. Interface are more abstract than classes since they say nothing at all about representations or code.

3. All they do is describe the signatures (names, argument, result types, and exceptions) of public operations, without even pinning down the classes of the object that can perform them.

4. The classes that can support Runnable typically have nothing in common except that they contain a run method.



CS4282/CS6282 Internet and Distributed Systems Programming

CS4282/CS6282 Internet and Distributed Systems Programming


Doug Lea : Concurrent Programming in Java

Study guide by Nik Boyd

http://www.educery.com/papers/concurrent/concurrent.guide.htm



Montag, 2. März 2009

The Design Patterns Smalltalk Companion

The Design Patterns Smalltalk Companion

excerpts:
http://stephane.ducasse.free.fr/FreeBooks/SmalltalkDesignPatternCompanion/

notes on page 103

Structural Patterns

1. Adapter : Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.

2. Bridge : Decouple an abstraction from its implementation so that the two can vary independently.

3. Composite : Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.

4. Decorator : Attach additional responsibilities and behavior to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.

5. Facade : Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.

6. Flyweight : use sharing to support large numbers of fine-grained objects efficiently.

7. Proxy : Provide a surrogate or placeholder for another object to control access to it.