善惡之謂何?

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

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

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

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

答同學關於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