Monday, November 30, 2009

尸位素餐 洪蘭教授 的漣漪

最近這個成語被洪蘭教授給鋪陳後備媒體炒作的沸沸揚揚,於是給他查了一下出處與原由:"漢書"中的"朱雲傳"提到"今朝廷大臣,上不能匡主,下亡以益民,皆尸位素餐。",當中的"尸位"首見於《書經.五子之歌》中的"太康尸位,以逸豫滅厥德。",用來比喻只領薪水不做事的人,正如古代祭禮中的尸,一個代表神像端坐其上,而不須做任何動作的角色;"素餐"則首見於《詩經.魏風.伐檀》,詩歌內容是在諷刺在上位者不勞而食,無功食祿。

關於洪教授之前我可是拜讀過她很多的文章,其中有很多都是令人感同身受,然而這次我看到洪老師在天下雜誌裡面的這份文章"不想讀,就讓給別人吧!"卻誘發了我想探究一番的心境,中提到洪老師在評鑑台大醫學院時,"發現上課秩序極不好,已經打鐘了,學生才姍姍來遲,進來後,有人吃泡麵、有人啃雞腿、有 人打開電腦看連續劇、有人趴在桌上睡大覺。打手機、傳簡訊的就更不用說了。遲到的同學不是悄悄在後面找個位子坐,而是大剌剌走到他座位的那一排,叫坐在外 面的同學起來讓他進去,絲毫不尊重同學的上課權。",我曾經在升高中的補習班當過教師,對某些現象,如上課吃飯或睡覺這樣的事件有不同的看法,所以來給他討論討論。

記得在補習班上課的那段日子,學生剛趕來上課的時候,我通常是給予空間與時間讓同學可以把他們的晚餐或麵包先吃下肚,原因無他,因為大家都知道台灣的升學壓力大,學校下課後,學生就要趕著去補習,這中間通常只有半小時的時間,要是要在上課前把晚餐吃完,那就不免遲到,如果不吃,又要餓肚子,這對發育中的國家未來棟樑可不是什麼好事,所以在我的課堂上前半小時通常是允許同學吃些東西的,而大部分的同學也都能知道老師的苦心,儘快的把食物吃完;至於睡覺,我也有個類似的理論,因為台灣的國高中生真是太可憐,每天被升學壓力逼著跑,你常會聽到學生晚上要寫作業或唸書到深夜12點,隔天一早7點又要到校,是想發育中的孩子,怎能經得起如此的摧殘,所以一整天的課上下來,晚上還要來補習,尤其這個時段常常是同學精神不濟的時候,打起瞌睡在所難免,課堂上要是看到同學忍不住打起瞌睡,心中常是百般不忍,所以我的處理方式通常是不會打斷他,而是暗暗記住這些同學可能漏聽到的片段,在後續的課程中在重複教授或者是課後等他們精神好些在給予加強,我想這是我的作法提出來作個參考。

在此提到這些陳年往事只是想做個對照,因為初看到洪老師的文章時雖然有些認同,但是想了想卻又不是那麼認同,於是我就去給他訪問了幾位台大醫學院的學生,他們給我的意見跟我前段描述的雷同,大家都知道醫學院的學生都處於極大的課業壓力,此外還有實習也會穿插其中,讓他們分身乏術,所以有些早上或是下午第一堂的課,有時候剛好學生從實習的醫院或是從其他院區趕來上課,授課老師也會給予同學方便,讓這些醫學院的學生可以吃個早餐或午餐,我想這份體貼的心意,是不容許被抹滅的,尤其在台灣目前這麼拜金的環境中,我們常常希望我們的醫生能多些醫德,如果這些授課老師的體貼能潛移默化給這些未來的醫師們,不也是很好得醫德教育。此外,我們討論這個話題的時候 ,又引發了另一種可能性,就是洪老師看到的真的是台大醫學院的學生嗎?所以我就給他又去查證了一下,卻發現原來那天洪老師評鑑的課堂是台大社會系副教授吳嘉苓在醫學系開設的課程,應該屬於通識教育的課程,然而在通事教育的課程中常會有其他系所的學生來修課,這又引發了一些連鎖的問題,如果這些被指為尸位素餐的學生並不是醫學系的,是否有可能呢?若是如此,洪老師的指責,對這些醫學院的學生可就相當的不公平,我還蠻想知道這些洪老師是否有求證過,畢竟身為大學評鑑委員又在媒體上寫了這樣的文章,事實上是需要被公評的。在此提出的淺見與觀察,並非要造成任何的爭議,只希望給大家更多的面象與司考空間...

最後,還是覺得要給大學生一點建議,"蹉跎莫遣韶光老,人生惟有讀書好。",或許難免陳腔濫調,但是卻是金玉良言,在現在這樣高度國際化又日新月異的地球村,打好自己的底子真是很重要的,大家共勉之。

這樣的討論事實上一陣子就會在媒體上炒作一次,深深地希望台灣這塊土地上的人們認真的來思考教育,畢竟樹人可是百年大計,希望在有志之士的努力下,教育在台灣能夠紮根。

對 洪蘭教授 有興趣可以參考洪蘭教授的首頁
對 洪蘭教授 在天下雜誌的文章有興趣可以參考天下雜誌 洪蘭

Friday, November 20, 2009

VC下面使用RS-232

這陣子在搞一些Z-wave的東東,需要透過RS-232跟Z-wave module上面的UART來作溝通,因此寫了一段小程式來連接RS-232與Z-Wave module上面的UART,在這裡作點小紀錄...

//所需要用到的變數宣告
#define BUFF_SIZE 1024*10
HANDLE hSerial;
HANDLE hWaitEvent;
DCB dcbSerialParams = {0};
OVERLAPPED osStatus = {0};
DWORD dwBytesWrite = 0;
DWORD dwBytesRead = 0;
char szBuff[BUFF_SIZE];
char szBuff_R[BUFF_SIZE];

//開啟需要的Serial Port
//com_str = COM1, COM2, ...
hSerial = CreateFile( com_str, GENERIC_READ | GENERIC_WRITE, 0, 0,
                                     OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

dcbSerialParams.DCBlength=sizeof(dcbSerialParams);
//使用GetCommState來取得目前Serial Port的配置
if (!GetCommState(hSerial, &dcbSerialParams)) {
        //error getting state
}
dcbSerialParams.BaudRate=CBR_115200;
dcbSerialParams.ByteSize=8;
dcbSerialParams.StopBits=ONESTOPBIT;
dcbSerialParams.Parity=NOPARITY;
//使用SetCommState來設定所要的Serial Port的配置
if(!SetCommState(hSerial, &dcbSerialParams)){
       //error setting serial port state
}


//對Serial Port來說,必須配置timeout值,
//否則可能陷入到無窮循環來等待來自Serial Port的資料
COMMTIMEOUTS timeouts={0};
timeouts.ReadIntervalTimeout=50;
timeouts.ReadTotalTimeoutConstant=50;
timeouts.ReadTotalTimeoutMultiplier=10;
timeouts.WriteTotalTimeoutConstant=50;
timeouts.WriteTotalTimeoutMultiplier=10;
if(!SetCommTimeouts(hSerial, &timeouts)){
     //error occureed. Inform user
}
hWaitEvent = CreateEvent( NULL, true, false, NULL );
ZeroMemory( &osStatus, sizeof( OVERLAPPED ) );
osStatus.hEvent = hWaitEvent;

//開個thread來執行下面的迴圈收取Serial Port過來的資料
while(1)
{
    retCode=ReadFile(hSerial, szBuff_R, BUFF_SIZE, &dwBytesRead, &osStatus);
    if (!retCode)
    {
        DWORD lasterror=GetLastError();
        switch(lasterror)
        {
            // 假使IO Pending 中,則等待直到被通知可讀為止,
            //換句話說 , block 在這裡的 thread 會先交出控制權 , 避免 busy-loop
            case ERROR_IO_PENDING:
                  WaitForSingleObject ( hWaitEvent , -1 ); //  -1 = no timw-out
                  break;
            default:
                  WaitForSingleObject ( hWaitEvent , -1 );
                  break;
         }
     }
     retCode = GetOverlappedResult ( hSerial , &osStatus , &dwBytesRead, FALSE );
     if(retCode)
     {
        //收到資料在szBuff_R中,收到的資料長度為dwBytesRead
     }
}

//如果要寫資料到Serical Port,可以透過下面的函數在任何地方呼叫
WriteFile(hSerial, szBuff, dwBytesWrite, &dwBytesWrite, &osStatus);

Monday, November 16, 2009

4th of July - Women's Murder Club 04 - James Patterson

在追緝虐殺嫌犯的過程中,Lindsay為了自衛與保護隊友,槍殺了姐弟檔嫌犯的姊姊,並槍傷了弟弟造成他終身癱瘓,姐弟兩的父親提出了不當使用槍枝的控訴,Lindsay面對接踵而來的指控將會如何呢?書中對於警察使用武力的界線提出了質疑,有讓讀者有所省思,只是在鋪陳的過程一直被打趴的被告,最後卻大獲全勝,讓人有些意外,雖然達到了戲劇性的效果,但是我卻認為對於省思警察過度使用武力的議題打了個大折扣,如果官司的結局能改為陪審團做出6比4的判決,我想在這個議題上會更發人省思;本集中Lindsay雖然被停職待查,他辦案的熱忱還是讓他在妹妹的休假小屋捲入了偵辦該地的夫妻連續殺人事件,兇手犯案的手法跟Lindsay十多年前剛該使辦案時遇到的懸案一致,也引發了她契而不捨的追緝;最後兇手的動機與身份著實有讓我覺得意外,覺得讀起來的張力比起前一集好太多了,對本系列作品有興趣的話,本集一定不要錯過;本書中幫Lindsay辯護的女律師Yuki作者極力鋪陳他聰明凌厲的形象,讓人覺得作者就是要她來補上Jill的缺成為Women's Murder Club的成員,是我覺得本書中的小缺點,但是整體而言還算暇不掩瑜...

3Rd Degree - Women's Murder Club 03 - James Patterson

接二連三的恐怖炸彈攻擊事件,威脅著舊金山的民眾安危,恐怖份子更是直指即將開幕的G-8高峰會將是他們的目標;Lindsay在本集中結識了來自國土安全局的Joe,在追緝恐怖份子的過程逐步發展出情侶關係;她與Joe以及Women's Murder Club的成員必須在緊迫的壓力下儘快找出恐怖份子以杜絕即將在G-8高峰會引爆的危機,沒想到就在此時,檢察官成員Jill在承受了老公的家暴,後卻離奇失蹤,Lindsay如何在一連串的紛亂中裡出頭序,找出好友Jill的下落並揪出恐怖份子?本書的結構是我看James Patterson這一系列感覺比較單薄的一本,關於恐怖份子的動機與背景鋪陳略嫌薄弱;Lindsay與Joe的愛情進展好像是在是速食愛情;還好Jill這部份讓人有震撼的效果,果然撒狗血是最有效的強心針。看完本書有點食之無味棄之可惜的感覺,反正看都看完了,有興趣有閒的人還是建議你可以看看。

Saturday, November 14, 2009

2Nd Chance - Women's Murder Club 02 - James Patterson

教會唱詩班的兒童槍擊案開啟了震撼的序幕,看似無關的鄉間老婦謀殺案,膽大妄為的殺人魔甚至謀殺了舊金山警局的員警與局長,唯一的線索就是留在現場的Chimera圖騰及被害者都是黑人,一切似乎都指向種族的仇殺,但就在此時Lindsay及他Women's Murder Club的好友也幾乎招到毒手,最後在Lindsay抽絲剝繭下,真相終於在千折百轉後大白,讓人直呼過癮;當中,作者依舊採用第一人稱描述兇手行兇的過程,讓人真實感受到殺人魔內心的仇恨與現場的驚悚感,想像中要是透過鏡頭來呈現小說的內容,應該更是引人入境;除了緊湊的劇情,作者在本集裡也刻劃了Lindsay失聯已久的父親再度現身,讓女主角重新感受到父親的溫暖,此外檢察官好友Jill懷孕之後流產,作者對其內心從喜悅到哀傷的深刻描述,亦讓人動容...

Friday, November 13, 2009

1st To Die - Women's Murder Club 01 - James Patterson

這是我讀James Patterson的第一本書,對這位美國作家有興趣是我在5月初到希臘旅行的時候在機場看到的,回家一查原來James Patterson可是鼎鼎大名呢,他的作品往往是紐約時報暢銷書排行榜的常客,想當然爾我的興趣大增,馬上就從他驚悚系列作品Women's Murder Club開始下手。Patterson果然也名不虛傳,這本書馬上讓我著迷,幾乎停不下手來;主角Lindsay在SFPD專門偵辦謀殺案,在偵辦新婚殺人狂的案件過程中結識了擅長追緝分析的記者Cindy,還有與膽大心細的法醫Claire,以及聰明且嫉惡如仇的檢察官Jill共同組成Women's Murder Club,運用他們的智慧要來找出連續殺人魔;過程中,女主角Lindsay與男主角Chris的相識與相戀,最後卻出現令人意外的結局,還有女主角面對生死疾病的描述,都令人動容;當中,作者更是以殺人魔的第一人稱來寫實犯案過程,讓人有身歷其境的驚悚感;整體來說,1st to Die真是引人入勝,在我看完了後,忍不住的就抓起Women's Murder Club系列的下一集2Nd Chance想要繼續享用呢!

失落的符號 The Lost Symbol - Dan Brown

前陣子花了些時間把Dan Brown的Angels & Demons給看完,對於書中對羅馬教廷的教宗遴選糾雜現代量子科技陰謀論的鋪陳,著實讓讀者會著迷其中,所以當The Lost Symbol這本新書問世,很快的就想一探究竟;本書的開端還是以作者一貫謎樣吸引人的手法切入,讓人停不下來的往下翻閱,故事發展圍繞在Freemason及美國的開國精神,只是這樣的背景對我這個對美國歷史沒有偏好的人來說,對故事背景的感覺單薄了些,感覺上比不上The Da Vinci Code與Angels & Demons背景為歐洲那樣的吸引我,故事裡紋身怪物對Freemason所傳承下來的神秘智慧的追求到最後讓人感覺有些空虛,似乎太虛無飄渺了些;整個來說,故事張力還是挺充足的(本書2/3後對紋身怪物來歷的描述感覺是典型Dan Brown式的蜿蜒曲折),但是比起The Da Vinci Code與Angels & Demons,個人還是覺得前兩本比較精彩刺激,不過還是很推薦給大家(不過現在只有原文書,練練英文吧,呵呵)。

PS. 在閱讀本書的同時,很巧的剛好在讀"碼書"這本介紹編解碼歷史的科普書籍,剛好看到Freemason使用的Pigpen Cipher(豬圈密碼),覺得還挺有趣的,有興趣可參考http://en.wikipedia.org/wiki/Pigpen_cipher