2010-12-31

祝福臉書的朋友們,新年快樂唷!!

今夜,民國九十九年的最後一夜,再過10分鐘後的明天,又將是新的一年-民國100百年。

感謝這一年來,臉書朋友的伴隨。因為有你們,我發現了好多新奇有趣的東東,也看到了這世界許多美好的事物;更常因為大家分享的笑話,圖片,讓我笑到不行,趴倒在地;常常能從大家的留言,學得日常知識,懂得怎麼過生活。

在臉書這裡,見到有朋友意氣風發,在職場上發熱發光;也看到有朋友在感情道上,遇著令人難堪的情境;更有看到朋友如何年長的親人相處,讓親情與個人生活兼顧.......。看著各位的喜怒憂傷悲,我這才知道,原來大家一樣,我們都差不多,各自都有問題要面對、處理、放下;各有都有自己的生命課題,需要體悟、學習。

明年是民國100年,“100” 這個數字,不論是看;或是聽,感覺就是圓滿,讓人覺得好運就要到來,好事即將發生。民國100年,真是一個叫人感到有期待的一年。

祈禱,祈禱各位來年都能健康,平安,快樂!什麼事都難不倒,天天常歡笑!

 

2010-12-30

《路要自己走》秀蘭瑪雅



詞/曲/編曲/製作人:吳嘉祥
演唱:秀蘭瑪雅

我知道對你來說 這世界有一點複雜
我知道你肯付出 卻不懂該如何表達
我知道你不喜歡 成人世界的偽裝
我知道關於未來 你有自己的想法

天地萬物都有存在這世上的意義
沒有一個人有放棄的權利

我會牽著你的手 但是路要自己走
面對選擇的時候 聽聽心底寧靜的角落

有一天我會放手 因為路要自己走
失去方向的時候 記得抬頭仰望 清澈的天空

2010-12-29

對於電子付費交易的期待

現在我出門時,一定要攜帶的卡,不是門禁卡,也不是信用卡,而是「悠遊卡」。因為這個「卡」好用。搭公車,乘捷運可用它。到台北市的公有停車場,停車、繳費也可用它。甚至,現在到 OK、7-Elven、全家便利商店購物付費也可以用它。

每天出門帶這張卡,就像帶著電子錢包出門。消費付款,不再會有拿出千圓大鈔要求找零錢,遭店方白眼的狀況;或是店方找不開零錢,大家都冏在那。我再也不用隨時都得留心,注意錢包裡是否備有百元鈔票,以便支付小額購物款。

把悠遊卡當作電子錢包,將它視作現金,用來支付交易金額的付款方式,對我而言,感覺可真是便利極了。

只是,現在能用的範圍還屬有限。不知會不會有一天,即便是小攤販也可以使用類似下圖,能夠隨身帶著走的收錢裝置(收取放在電子錢包的「錢」),這樣一來,出門時可以不用準備零錢,只要帶著我那薄薄一片的電子錢包,就可以到處走,隨處購物、消費了。

老天爺的服務還真好

昨天早上,一如往常,我開著汽車,自汐止進入台北市,將小孩送進學校;把太座送到公司。

然後,我也一如往常,將車停在路旁,進入每天會去的7-Elven便利店,購買早餐。

當我在櫃檯結完帳,那位熟識的店員先生,也一如往常的遞給我發票,說「謝謝」;但今天卻還外加一句「新年快樂哦!」的話。

那時我心中OS:「不會吧!現在才12月28日,星期二。今天就跟我說新年快樂,那明天您要跟我說什麼?該不會您的意思,是明天起到過完新年前,我們都不會再見面了吧?!」

離開便利店後,我還是…….,一如往常,驅車往回汐止的路走。未料…………………

在某十字路口,因見交通號誌黃燈閃起,所以我將車煞住停下。結果,竟被後方的來車給追撞了!!

好里加在的是對方跟我都沒受傷,但是車車可就遭秧了。送進Toyota的汽車保養廠修理,技師估算維修所需時間,說要10天後才能取車。

挖里勒~!怎麼會這樣!店員先生脫口而出的話語,竟是對我近日時運的預言?!

哇~~~!在天上面的那位老爺爺,Service做得還真好,事情要發生前,還會找個代言人讓我預知,可惜我就是沒慧根,未能從話中聽出話語的玄妙之意。

唉……!天意難料啊!

酒醉的心聲

够了~~!够了~~!別再喝啦~~!
天崖何處無芳草?你要振作啊...................... ^^

在陽明山上的創意素食料理店-陽明春天

image
 image
陽明春天的介紹參考資料:
TVBS介紹-【一步一腳印】熬碗素湯大挑戰 中年開發創意素食

【陽明春天蔬食創作料理地點及聯絡資訊】:
陽明春天網站

陽明山店 ( 總店 ) 台北市陽明山菁山路119-1號
電話:(02)2862-0178~9
忠孝店
台北市忠孝東路四段98號10樓
電話:(02)8772-1829
中華旗艦店 台北市中華路一段74號
電話:(02)2370-9288
明水禪悅蔬食創作料理 (大直店)
台北市明水路575號地下一樓(綺麗館)
電話:(02)8509-2992
和芽蔬食咖啡 (蘆洲店)
台北縣蘆洲市中山二路162號2樓之一
電話:(02)2288-5970

2010-12-28

玉山銀行 Web ATM 令人激賞的多重支援(Ubuntu & Chrome)

今天又需要繳交信用卡的消費金額了。以前因為工作忙,沒時間到銀行或是找ATM轉帳,向來,我都是透過Web ATM來轉帳。以這種方式轉帳,基本的需求要有:(1)電腦;(2)符合PC/SC規格的讀卡機;(3)銀行的IC金融卡。

除了上述的基本硬體需求外,電腦尚需安裝與作業系統相關的驅動程式(Device Driver),及Web瀏覽器所需之擴充功能元件(Plug-in),如此才能透過Web瀏覽器查帳戶餘額與轉帳。也就是說,Web ATM在軟體的需求,還會與作業系統,驅動程式,瀏覽器擴充元件(Plug-in)相關。

在今天之前,我己能在 Windows Server 2008 R2 ,64位元版的作業系統,透過IE 8 (32位元)使用玉山銀行Web ATM轉帳。但是今天開始,Google Chrome瀏覽器也可以使用了,因為玉山銀行的Web ATM也己支援。



另外,還有一個更令我興奮的發現,就是玉山銀行的Web ATM也支援Ubuntu作業系統。關於這方面的訊息,有興趣的人可以參考以下這個玉山銀行的說明網頁。
玉山Web ATM首創支援Linux作業系統

經過我以下列兩種情境試用,發現結果如下:

1. Ubuntu Desktop 10.04 x86(32位元)
  • 若是使用Firefox 作為Web瀏覽器:結果OK!
  • 若是想用Google Chrome作為Web瀏覽器:因現在還沒有支援Chrome的Plug-in,結果無法達成心願  = = !!!
2. Ubuntu Desktop 10.10 AMD64(64位元)
    因為在作業系統層級,驅動程式的安裝,就己無法成功完成,所以,結果就是:失敗!
    = = !!!


2010-12-27

值得一用的作業系統 Ubuntu 10.10

在2007年,我買了一台Acer Aspire 5720G的筆電,雖然這筆電的CPU己是64位元 (Intel Core2 Duo T7300 (2.0GHz)),可是我還是只能使用32位元的Windows Vista Home當筆電的作業系統。

由於這台筆電係用於職場日常工作,所以,我需要安裝很多軟體,同時,更需要在開機之後,同時啟動多個應用軟體,以便瀏覽資料;或是在不同的應用軟體間切換,透過複製/貼上功能共享資料。

可是Vista在效能的表現,可真是叫人失望透頂。後來,我更不惜花大錢,將筆電的記憶體擴充到這台電腦的極限-4GB,然而,結果卻是效能的改善有限。後來,即便換到64位元版的Vista Home,仍然不見有什麼叫人驚艷的改善成效。最叫人感到氣結的是,常常見到系統有事沒事就窮忙著在做硬碟 I/O動作,至於我所下的操作指示,系統則置若罔聞,實在叫人氣結。

最近,我將這台筆電改裝Ubuntu 10.10 AMD64(64位元),把它當成開發Java Web應用系統專用的電腦。結果,原先讓我覺得效能奇差無奇的電腦,現在卻變得頭好壯壯,系統的運作可是順暢的很。


不過......,代價也不是沒有啦!原先在Windows環境早己熟悉的JDK安裝,系統環境變數設定,甚至是Apache Tomcat 6,MySQL Server 5與GUI管理介面的安裝,還有Java IDE -- NetBeans / Eclipse 的安裝與設定,通通都得重新摸索。因為,原先本以為己無法再使用,該得淘汰的筆電,現在再度有了第二春,而且更加生龍活虎,看在這個份上,這個代價還是值得啦!

所以,朋友們如果您手中也有Intel Core 2的電腦,同時也感覺它似乎 “老了” ,其效能表現無法滿足你對 “快” 速度的要求時,不妨試著改用Ubuntu 10.10,也許你也會與我一樣,有著意外的驚喜。

參考資訊:
  • 下載Ubuntu 10.10網址:由於Ubuntu有許多的版本,在下載時,針對[發行版]選擇,請選[Ubuntu 桌面版本];對[電腦架構]請針對自己電腦的CPU,選擇32/64位元版本。
  • Ubuntu 10.10安裝程序:此處有Ubuntu官方網站提供的繁體中文說明,指導您如何安裝,同時也有硬碟如何切割,如何將Ubuntu與Windows 7安裝在同一硬碟的指引





2010-12-26

The Prayer



1998年11月,義大利傳奇盲人男高音Andrea Bocelli (安德烈。波切利),參加天后級女歌手Celine Dion (席琳。狄翁) 的聖誕音樂會,與她合唱了《The Prayer (祈禱) 》 ,使他在美國迅速走紅。

席琳。狄翁這樣評價安德烈·波切利:「如果上帝會歌唱,那末他的歌聲應該像波切利那樣。」

2010-12-06

結婚真得是很開心的事哦



結婚真得是很開心的事。

不信?!

你看那新娘笑到不行耶! ^^

能「狗」多勞



想跟好友們分享Office文件檔案嗎?

今天因為有事需要用MSN跟位老同事聯絡,詢問一些事情。結果,正打歪著,發現了現在的 Windows Live 也提供了類似 Google 文件 (或稱:Google Docs)的服務。

原先 Microsoft 為 Hotmail 使用者所提供,附屬在 Windows Live 的 SkyDrive 服務,現已更名為「Windows Live SkyDrive」了。

這個改名的後服務,現已升級。可令使用者在網路上擁有25GB的免費儲存空間;您更可以在此使用「Microsoft Office Web Apps」功能。有了這功能的支援,使用者就可以透過 Web 瀏覽器,直接操作如 Word / Excel / PowerPoint 等 Microsoft Office 應用軟體的功能。

我還沒有做過深入的使用,無法確定這服務是否有執行平台的限制,如:只支援的 Web 瀏覽器。初步的測試,好像 Web 瀏覽器沒被設限,一定得使用 Microsoft 的 IE,我現在使用的 Google Chrome 似乎也能正常操作。

想要享用這功能的朋友們,可以申請個新的 Hotmail 帳戶;或是到已有的 Hotmail 帳戶,透過其網頁的指示做升級。

以下是一個我已分享出來的「PPS檔案 (由 PowerPoint 製作出來的簡報檔)」。粗略試了一下功能,雖然簡報仍可依照原先的設定,按時自動播放;但是,原先應用的背景音樂卻仍聽不到,有些令人失望。

分享的檔案:十分幸福車站.pss

不過........,畢竟是免 $ 的東東,也無法要求太多囉!  
^^!!

2010-11-20

《因為相信》翁倩玉



白雲清風,怎麼可能擁有
只有今天握在我手
讓生活讓愛情講我左右
為一個值得的理由

該做的事,做的毫無保留
該走的路,不再回頭
一個人兩個人總歸要走
即使有孤獨的時候

因為我相信,所以我追求
不該屬於我的一切我不想擁有
在花花世界裡甚麼才是不朽
曾經付出也是一種成就

該做的事,做的毫無保留
該走的路,不再回頭
一個人兩個人總歸要走
即使有孤獨的時候

因為我相信,所以我追求
不該屬於我的一切我不想擁有
在花花世界裡甚麼才是不朽
能夠隨心所欲也是一種成就

只要我相信,所以我追求
不該屬於我的一切我不想擁有
在花花世界裡甚麼才是不朽
能夠隨心所欲也是一種成就

因為我相信 所以我追求
不該屬於我的一切我不想擁有
在花花世界裡甚麼才是不朽
能夠隨心所欲也是一種成就

2010-11-18

《誰叫我是韓籍》

[亞運] 楊淑君事件過後......

台灣掀起了一股前所未有的反韓熱潮。

政府決定下令將國內的所有韓貨驅逐回國......

在碼頭邊,韓貨們排隊等著搭上遣返他們回國的船。

三星電視和LG電視手牽著手排在最前面,現代汽車跟在後頭,韓式泡菜也在隊伍之中。

韓式泡菜發現,台灣地瓜竟然也在隊伍之中,大為驚訝之於,趕忙過去問台灣地瓜。

韓式泡菜:「地瓜兄,你怎麼也來啦?」

台灣地瓜嘆了口氣,語重心長的說:「.....沒辦法,誰叫我是『韓籍』。」

2010-11-09

《黃昏的故鄉》孫建平&音樂磁場

作詞:愁人/文夏 作曲:橫井弘

叫著我 叫著我 黃昏的故鄉不時地叫我
叫我這個苦命的身軀 流浪的人無厝的孤鳥

孤單若來到異鄉 不時也會念家鄉
今日又是來聽見著喔~ 親像塊叫我~

叫著我 叫著我 黃昏的故鄉不時地叫我
懷念彼時故鄉的形影 月光不時照落的山河

彼邊山 彼條溪水 永遠抱著咱的夢
今夜又是來夢著伊喔~ 親像塊等我~

叫著我 叫著我 黃昏的故鄉不時地叫我
含著悲哀也有帶目屎 盼我轉去的聲叫無停

白雲啊~你若嘜去 請你帶著阮心情
送去乎伊我的阿母喔~ 不倘來忘記~

2010-11-07

《帶我飛》林志玲 (刺陵主題曲)



作詞:林志玲    作曲:周杰倫

你說我     像個孩子愛耍賴
風無須     逞強因為雨不在
羽毛飛     飄舞在靜止沙漏中
思念     傻傻地水中游

剪不斷     彷佛墜落萬塵空
理還亂     浮雲但添愁外愁
難將息     躲於乍暖還寒之際
帶我飛     因為你我們可以

尋尋覓覓     浮浮沉沉
無邊無際     應不應該
一字一語     愛是千種姿態
無罣無礙     到現在才明白

你說我     像個孩子愛耍賴
風無須     逞強因為雨不在
羽毛飛     飄舞在靜止沙漏中
思念     傻傻地水中游

剪不斷     彷佛墜落萬塵空
理還亂     浮雲但添愁外愁
難將息     躲於乍暖還寒之際
帶我飛     因為你我們可以

尋尋覓覓     浮浮沉沉
無邊無際     應不應該
一字一語     愛是千種姿態
無罣無礙     到現在才明白

尋尋覓覓     浮浮沉沉
無邊無際     應不應該
一字一語     愛是千種姿態
無罣無礙     到現在才明白

無罣無礙     到現在才明白

2010-11-06

《我們》(世界不會同時下著雨)

 

詞:陳克華、梁弘志、楊立德
曲:陳志遠、陳復明、鈕大可、曹俊鴻、梁弘志
唱:陳復明、梁弘志、曹俊鴻、鈕大可

當你迷失在黑暗裡 一切的希望離你而去
就在需要的時候 我會出現在你的身邊
當你再次展開笑顏 溫暖的歌聲流過你心田
就在相逢的時候 請你請你握著我雙手

路是不會永遠那麼孤寂 我是方位相同的伴侶
世界不會同時下著雨 也會有陽光照耀在心底
路是不會永遠那麼孤寂 我是方位相同的伴侶
世界不會同時下著雨 也會有陽光照耀在心底

什麼樣的夢該要清醒 什麼樣的夢值得繼續
雨後總要天晴 黑夜總會過去(哦……總會過去)

路是不會永遠那麼孤寂 我是方位相同的伴侶
世界不會同時下著雨 也會有陽光照耀在心底
路是不會永遠那麼孤寂 我是方位相同的伴侶
世界不會同時下著雨 也會有陽光照耀在心底
路是不會永遠那麼孤寂 我是方位相同的伴侶
世界不會同時下著雨 也會有陽光照耀在心底

2010-11-03

善行一定是對的嗎

今天讀到一篇白話文版的「說苑」。其中有段故事,如此說道:

春秋時的魯國規定,用錢贖回在外國當奴隸的魯國人,可到國庫領取贖金。孔子的門生-子貢贖回了人,卻退還了贖金。

孔子知道這件事後,說:「子貢錯了啊!聖人做事,可以移風俗,教化可以施予人民,但僅適於自己。現在魯國富有的人少,貧窮的人多,往後再有人贖回奴隸,而領取贖金,跟子貢相比就顯得不廉潔了。不能再領取贖金,就沒有人願意再贖人了。所以,以後魯國人不會再贖人了。」

作者下的眉批為:「要鼓勵多數人有能力做到的行為。不要樹立多數人可望而不可及的榜樣」。

子貢的善心、善行,到底是做對了?還是立下壞榜樣?善行一定是對的嗎?唉….!真是值得再三深思的故事。

2010-11-02

《出外人》凌峰



作詞:游國謙 作曲:游國謙

*不通問我 不通問我 阮是出外的人
 你有你的 我有我的 度合無共款

#艱苦著愛打拼 風雨也著行 為著好名聲
 賺錢著愛勤儉 菜脯罔咬鹼 央望會晟人
 若是成功 倒返故鄉 父母有笑容
 若無成功 也免怨歎 阮是漂泊的出外人

2010-10-30

「高逸峰」豪邁人生的故事

一首感人的歌,一個真實的故事......

一個曾擁有一千多名員工,千萬的富翁。在破產後,轉變成普通的包子鋪老板。真正人生豪邁的勇者。


 
高逸峰在節目中所唱的歌,其歌名為《從頭再來》。以下,為整首歌的歌唱影片及其歌詞。


《從頭再來》劉歡

昨天所有的榮譽,已變成遙遠的回憶。

勤勤苦苦已度過半生,今夜重又走入風雨。

我不能隨波浮沉,為了我致愛的親人。

再苦再難也要堅強,只為那些期待眼神。

心若在,夢就在,天地之間還有真愛。

看成敗,人生豪邁,只不過是從頭再來。

小狗

《Ready for The Storm》Deanta




The waves crash in and the tide pulls out
It's an angry sea but there is no doubt
That the lighthouse will keep shining in the night
To warn the lonely sailor

The lightning strikes and the wind cuts cold
Through the sailor's bones, to the sailor's soul
'Till there's nothing left that he can hold
Except the roaring ocean

But I am ready for the storm, yes oh ready I'm
I'm ready for the storm, I'm ready for the storm

Give me mercy for my dreams, 'cause every confrontaion
Seems to tell me what it really means to be a lonely sailor
But when the sky begins to clear and the sun it melts away my fear
I cry a silent, weary tear at those that mean to love me

And I am ready for the storm, yes oh ready I'm
I'm ready for the storm, I'm ready for the storm

Distance it is no real friend, and time will take its time
And you will find that in the end it brings you near a lonely sailor
But when you take me by your side, you love me warm, you love me
And I should've realized I had no reason to be frightened

2010-10-27

如何在Eclipse使用Spring Framework

跟同學閒聊時,知道有人想在 Eclipse  IDE 中使用 Spring Framework 。

拜了一下古狗大神,找到下列三篇文件。因為近日有別的事須先忙,所以,我還沒照著文件的說明試過是否可行。所以,若有不適用的問題可別怪我哦!

最後,記錄 Spring Framework 的下載網址:

【連結】:
http://sourceforge.net/projects/springframework/files/

2010-10-22

了解什麼是 Spring Web MVC

 

循前例,我還是自NetBeans的官網,取用如下之教學指引,以為自修研習用教材,開始了我對 Spring 的初步探究--「Spring是什麼東東啊?」

Introduction to Spring Web MVC

 

文件導讀

 

上述教材研讀及實作完畢後,摘錄心得如下,當成是自己的讀書筆記,也希望對需要了解Spring的朋友,能提供那麼一點助益。

根據教材內容的說明,可知此處所探討的只是Spring Web MVC的運作原理,可能這教材裡的說明,只是讓我們了解在 Spring Framework 下,Controller、View、Model 三種類別是如何協同運作,還不能算是給了 Spring Framework 的總體概述。

此教材主要的章節架構如下:

  • Setting up a New Project with Spring Web MVC Support
  • Overview of the Application
  • Implementing a Service
  • Implementing the Controller and Model
  • Implementing the Views
  •  

    對於以上之章節,可將「Setting up a New Project with Spring Web MVC Support」章節視為本文章的第一篇。

    至於「Overview of the Application」到「Implementing the Views」的章節,則屬於本文章的第二篇。

     

    第一篇內容摘要

     

    認識DispatcherServlet

    指導NetBeans的使用者,如何透過專案建置精靈,建立一個支援Spring Framework 3.0的NetBeans專案資料夾。

    完成了上述專案建置工作後,即可依據教材中的指示,體驗一下,Spring有什麼樣的特性。

    第一件要了解的事,偉大的DispatcherServle從web.xml檔案內容的描述,可以發覺在Spring Framework有著一個神奇的Servlet,它的名字叫DispatcherServlet。從以下自web.xml節錄的內容,可以看出,只要有使用者對伺服器發出讀取.htm檔案的Request時,往後的處理工作,皆由偉大的DispatcherServlet來負責操盤。

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

     

    第二件要了解的事,網站的首頁是如何被找到的:別懷疑,同時,我也沒有侮辱您的專業。本來網站的首頁用腳指想也知,不是index.hm;就是index.jsp檔案。

    可是,從下列web.xml的設定,可知以上皆非,預設為redirect.jsp。

    <welcome-file-list>
        <welcome-file>redirect.jsp</welcome-file>
    </welcome-file-list>

     

    當redirect.jsp檔案打開後,可以看到如下的內容:

    <% response.sendRedirect(“index.htm”); %>

     

    結果.....,才知,這網站的首頁仍由index.htm擔綱。但是.....,在Web Pages之下,根本沒有index.htm這個檔案啊!

    image

     

    可是......,這個網站在執行時候,明明可以看到如下的網頁內容,同時,在Web瀏覽器中的URL網址,也出現了index.htm啊!

    image

     

    如果你不死心到處找,可以在路徑「Web Pages\WEB-INF\jsp\」處,找到一個最最最標準的首頁檔案index.jsp。

    image

     

    把這個網頁檔案打開後,可以查覺其內容,跟前述網站首頁內容是相同的。

    image

     

    啊......!現在是怎麼回事?怎麼會這樣?

    謎題的解答dispatcher-servlet.xml

    其實在網站所見的首頁內容,其來源正是出自index.jsp。但是,從要進入index.htm網頁,卻是顯示index.jsp的「無中生有」過程,是怎麼回事?以下我們來一一分解詳述:

    由於redirect.jsp檔案,說要將網頁轉到index.htm。所以,根據web.xml的設定,只要是*.htm檔案,通通交由DispatcherServlet負責。

    當DispatcherServlet這個血統純正的Java Servlet,聽說有人要求瀏覽index.htm網頁的內容時,便會查閱dispatcher-servlet.xml檔案中的設定,並嚴格遵循當中的規矩,照章行事。

    當DispatcherServlet讀到 id 為 urlMappingbean 設定,它知道若有人要看 "/index.htm" 的檔案時,它要以 indexController 頂替 。

    於是DispatcherServlet,再到dispatcher-servlet.xml檔案尋找 name 為 indexController 的 bean 。結果,自 p:viewName 的屬性查出,indexController 要找主要檔名叫 index 的檔案。

    最後,DispatcherServlet藉由 id 為 viewResolver 的 bean ,其中的 p:prefixp:suffix,查出主檔名為 index 的檔案,要到路徑為「/WEB-INF/jsp/」處尋找;找到這個檔案後,再配以 jsp 的副檔名。

    image

    經過上述無中生有的過程,DispatcherServlet終於完成解讀,知道有人要看 index.htm 時,就給它 /WEB-INF/jsp/index.jsp 的檔案。

    瞭了嗎?!

    只是.....,不過是要喝杯牛奶,幹啥要自行蓋個牧場來養牛,生產年奶。為什麼要把事情搞得這麼大,如此複雜?別問我,我那知!

     

    第二篇內容摘要

     

    Spring Web MVC運作架構

    這篇教材真正的重點,從此處開始。它用了如下的應用例子,說明在 Spring Framework 下MVC是怎樣運作的。

    假設您的網站要提供一個功能,這功能會透過一個網頁向使用者詢問其姓名。當使用者輸入了姓名之後,則會用另一個網頁向使用者說聲嗨!

    有了上述初步的功能需求後,在設計上我們需使用 2 個 View,以 nameView.jsp 網頁來向使用者詢問,要求輸入姓名。使用者輸入的姓名,經過系統的處理後,再透過名為helloView.jsp 的網頁,向使用者 Say Hello。且此功能的啟動執行點,設計成「當使用者瀏覽 /hello.htm 網頁便執行」。

    在 Spring Web MVC 的設計模式下,View (可以直接想成網頁) 之間的切換係由 Controller 的類別 (亦即 MVC 中的 Control) 來控制。所以,依據上述的設計規格,我們需要有個名為 helloController ,屬 Controller 的類別,以便有人想瀏覽 /hello.htm 網頁時,便提供 nameView.jsp 給他;待取得使用者輸入的姓名後,則再顯示 helloView.jsp 網頁給使用者。

    關於使用者在 nameView.jsp 輸入的資料,可以使用一名為 Name ,屬 Model 的類別,用以接收輸入的結果。

    至於從使用者接收到的資料,該做什麼處理,完成什麼樣的輸出,這活就由屬 Service (亦即一般所謂之 Business Logic) 的類別來幹。因此,根據設計,需要一名為 helloService 的類別,以便能將使用者輸入的姓名進行加工處理。

    綜合上述,整個功能的運作過程,所需使用的網頁及類別,其設計可以用以下,UML 的穩建圖來表示:

    image

    上圖的 dispatcher-servlet.xml ,用於表示 helloController 類別須在這個檔案內做登記。同樣,helloService 類別的存在,亦須記錄相關設定在 applicationContext.xml 檔案之中。 如此,helloController 類別才能正常運作。甚至說得更白點,非得這樣做,Web Container 才有辦法,遇到有人要瀏覽 /hello.htm 時, 知道該怎麼做。

    根據上述設計,需要撰寫製作的網頁及各個類別(class),在專案資料夾的放置處,則如下圖所示:

    image

     

    研習須細讀重點

    有了上述 Spring Web MVC 在架構上的認知後,請再加強下列事項的研習。

    HelloController.java 的建構子:細讀其程式碼,了解 Controller 啟動後,怎麼知道該先顯示那個網頁,然後又該顯示那個網頁。網頁輸入的資料,要用那個類別去接收;當靜態的類別(class)變成可執行的物件(object)時,要用什麼作為變數名稱

    HelloController.java 的 onSubmit 方法:當第一個網頁完成輸入 (nameView.jsp),onSubmit 事件發生後,Controller 要如何接收第一個網頁所傳來的輸入;然後又如何透過 Service ,對輸入的資料進行加工,完成輸出;最後又如何將加工後輸出,餵給第二個網頁 (helloView.jsp)。

    nameView.jsp網頁:研究網頁中,屬 Spring 專用的 Tag 如何自 Controller 接收由 Name 類別所產生的 name 物件。而使用者的輸入,如何以 Spring Tag ,將之存入 name 物件中的 value 屬性。

    helloView.jsp網頁:研究網頁中欲輸出的內容,如何能透過 EL 表示式  ${helloMessage}  顯示出來。EL 表示中的變數 helloMessage , 與 HelloController 類別中的 onSubmit 方法,有什麼互為因果的關係。

     

    總結

     

    哇!好棒!終於寫完了。這篇文章花了我 5 小時,才搞定。可是這篇文章的內容,我花了一天讀完,又再花了三天反覆思考 Spring Web MVC 運作的架構;網頁、Controller類別、Service類別、Model類別各個之間的互動關係;三個設定檔 web.xml 、 dispatcher-servlet.xml 、applicationContext.xml 各個的作用。

    這個研習過程,對我而言有些吃力。因此,希望我這研究心得報告,可以幫大家減少一些學習過程的障礙。

    2010-10-21

    夏川りみ 子守唄(ファムレウタ)




    ¸¸.•*¨*•♫♪•.¸¸.•♫´*¨¯`♪•.¸¸ ♩♪♫♬

    子守唄 (ファムレウタ) 可以直接翻成"子守歌",意思是"守護孩子之歌"。子守唄就是小孩子要睡覺的時候,大人們會唱歌來讓他們快點睡,對照台灣通用的名詞,可以翻成搖籃曲或催眠曲。

    【中譯歌詞】:

    在海邊玩耍的孩子們 笑聲清亮難以言喻
    退潮時 拍打過來的潮聲 彷彿扶養我長大的母親的搖籃曲一般

    在我耳邊溫柔的低吟著
    咻啦 咻啦 希望心願
    咻啦 咻啦 能夠實現

    布要染深或染淺 取決於人心
    海洋的未來就像塊白布 會怎樣也繫於人心
    咻啦 咻啦 希望心願
    咻啦 咻啦 能夠實現

    對於島與故鄉的眷戀 島民的熱情對海洋的感謝
    我會深深染印在心中 絕不會忘卻
    深深的 深深的 染印心中

    認識 Struts Web Framework

    這年頭找頭路時,如果徵才的公司係使 Java 技術,常會在應徵的條件裡頭,加上一項「熟 Struts」。

    為了方便找頭路,身為使用 Java 技術的人員,最好還是了解 Struts 係蝦米碗糟。如果,您也是 NetBeans IDE 的愛用者。那麼恭喜您!因為我們不用花銀子,就可以自 NetBeans 的網站上,取得精彩的指引教材。我照著教材,跟著上機實作,果然可以對 Struts Frameworks 有個概括性的了解。

    為了克盡 IBM (Internet Big Mouth / 中譯:網路大嘴巴) 成員的職責,趕緊跑來這裡,跟大家們獻寶!

    如果您已使用 JSP Model 2 在撰寫網頁;或是您想要讓自己的網路應用應用系統,遵循良好的 MVC 設計模式,那麼以下這篇是您不可錯過的好文章。 ^^


    體驗一下,什麼是 GWT

    什麼是 GWT ?它能做什麼?

    GWT 係 Google Web Toolkit 的縮寫。GWT 本身就是一個 Web Client 端開發工具。

    使用 Java 技術,開發 Java EE 網路應用系統的朋友,即便您對 Web Client 端的技術不是很熟 (如:JavaScript、AJax) 。只要有了 GWT ,就可以使用早就熟悉的 Java Server Site 技術,開發可在 Web Client 端執行 AJAX 功能。

    或許您會說:「慢著!要用 AJAX ,只需在 Web Client 端的網頁中,使用 JavaScript 來實作, 不就得了?」 

    話是沒錯啦!不過!使用 AJAX 的重要基礎,我們需要透過 Web 瀏覽器建立 XMLHttpRequest 物件,然後才可以使用非同步的傳輸技術。但......,這可不是什麼瀏覽器都可以順利搞定的;還有,程式開發的過程,總難免有臭蟲滋生,傳統的 AJAX 開發方式,要對程式碼 Debug ,實在不是很方便;更別說,為了要能善用 AJAX ,在此之前,還得先對 JavaScript 進行深入的探究與了解。

    GWT 最神奇之處,便是不熟悉 Web Client 端技術的開發人員,一樣可以運用原先早已熟悉的 Java 語言,實作 AJAX 技術。使用 GWT 實作的「Java 類別」,會被編譯成可用於 Web Client 端的 JavaScript & HTML 程式碼。不僅如此,更棒的是這程式碼可與各家 Web 瀏覽器完全相容 。

    對於想要在 NetBeans IDE 運用 GWT 的朋友們,以下這篇文章,有著非常詳盡的介紹與實作的指引。 更重要的是,看這篇文章,還可以順便複習一下 Swing、Inner Class、集合(Collections)、泛型等 Java 程式語言該有的重要概念。所以咧.....,研習此文章,真是好處多多。

    祝大家學習愉快!Web 功力步步高!   ^^


    2010-10-20

    《My Precious One》Celine Dion




    【英文歌詞與中譯】:

    My precious one, my tiny one, lay down your pretty head.
    我珍貴的寶貝,我小小的寶貝,放下你那漂亮的頭頭。

    My dearest one my sleepy one, its time to go to bed
    我親愛的寶貝,我昏昏欲睡的寶貝,是該上床睡覺的時間囉!


    Just lie your head and give your cares to me.
    放下你的頭頭,把你的煩憂給我。

    Just close your eyes and fall into the sweetest dream, cause in my loving arms.
    在我滿滿是愛的臂膀中,閉上你的眼睛,進入甜甜的夢鄉。

    My precious one my darling one don't let your lashes weep.
    我珍貴的寶貝,我親愛的寶貝,別再哭哭弄濕了你的睫毛。

    My cherished one my weary one it's time to go to sleep.
    我疼惜的寶貝,我疲憊不堪的寶貝,是該好好睡覺覺的時間囉!


    Just lie your head and give your cares to me.
    放下你的頭頭,把你的煩憂給我。

    Just close your eyes and fall into the sweetest dream, cause in my loving arms.
    在我滿滿是愛的臂膀中,閉上你的眼睛,進入甜甜的夢鄉。

    Your safe as you will ever be so hush my dear and sleep.
    你要安然入夢,我的寶貝。

    And in your dreams you'll ride on angels wings.
    在睡夢中,你將乘著天使之翼而飛。

    That's when the stars will touch the face of God...
    如同高掛天上的星辰般,如此接近,可以觸摸到上帝的臉龐。

    And if you should awake I'll send you back to sleep.
    要是你醒過來,我會哄你再入夢中。




    2010-10-16

    《黃昏三鏢客》


    美國西部電影《黃昏三鏢客》的場景,用口技與樂器就能忠實呈現哦!

    2010-09-19

    《What Is A Youth》

    Romeo and Juliet 1968


    1968年的電影,Romeo and Juliet,台灣的片名譯作「殉情記」。看這電影時,那年我還是「省左高中」的高中生。記得初次聽到這首歌時,當場雞皮疙瘩掉滿地,超感動一把的。

    當時,觀看這部片子的戲院,正是左營海軍的「中正堂」。那時,中正堂只要花費 20 元的票價,就能看到二輪的電影。花小錢就能擁有這種天大的享受。在我們那個年代,左營軍區的「中正堂」、「中山堂」,是我這種窮學生的最愛,更是我高中時代難以忘懷的兩大「景點」。

    雖然中正堂的票價,已夠便宜的,只是......,那電影票的錢,還是得瞞著父母,自一週的午餐費,省吃儉用榨出來。為這看片子,可得犠牲肚子。

    在一個週六的下午,學校放學後,我與班上的死黨,兩個大男生相約,一起去看殉情記這部片子。

    雖然覺得片子很是很感人,同時,劇中女主角也超正的,讓我又想在「夢中情人」名單再添一名。然而,看這麼有羅曼蒂克 Fu 電影的時候,身旁坐的卻不是漂亮美眉;而是一個男同學.....。

    唉!人生總是「求不得」;總有「無法盡如人意」處!看到 YouTube 的這段影片,不禁又想起這段陳年老事。 ^^

    What is a youth?
    Impetuous fire,
    What is a maid?
    Ice and desire,
    The world wags on.

    A rose will bloom,
    It then will fade,
    So does a youth,
    So does the fairest maid.

    Comes a time when one sweet smile.
    Has it season for a while,
    Then love’s in love with me,

    Some they think only to marry,
    Others will tease and tarry,
    Mine is the very best parry,
    Cupid he rules us all,

    Caper the caper, but sing me a song,
    Death will come soon to hush us along,
    Sweeter then honey and bitter as gall,
    Love is a task and it never will pall,
    Sweeter then honey and bitter as gall,
    Cupid he rules us all….


    青春是什麼?
    激烈燃燒的火,
    少女是什麼?
    冰霜和欲望的結合,
    年華如此遷移下去。

    玫瑰會盛開,
    然後會凋萎,
    青春也是,
    最美的少女亦復如此。

    當那時,臉上是甜美的微笑,
    那就是愛的季節,
    我心裡充滿了依戀。

    有人只想到結婚,
    有的人卻不屑且猶豫,
    我的藉口最是高超:
    邱比特牽著我們的鼻子走。

    儘管嬉戲去吧,並為我唱一首歌,
    死神不久將來臨,叫我們都閉住嘴,
    比蜜還甜,比膽還苦,
    愛雖磨人,卻永不走味,
    比蜜還甜,比膽還苦,
    邱比特牽著我們的鼻子走。

    2010-07-11

    攀上雲端記要

    週四的Java訓練課程,看到毛老師成功地將會員管理套件中的 “加入會員" 功能,成功地部署到了 Google App 雲端,心中真是興奮極了。因為我想既然老師己成功地達陣,那我只要照著做,也就可以跟著攀上 Google 雲,享受漫步雲端的成就感。

    奈何,結果卻是執行的結果像月亮--初一、十五不一樣。我就是做不出跟老師一樣的結果。從週四 5:00 PM 下課後,到週五整天,甚至在整個週末,我的雲端攀爬記,總是摔倒在地。好不容易,到了週日的 4:57 PM ,我終於有了具體的成果。

    這幾天的奮鬥,屢有奇怪的遭遇,有些可以解釋;但也有到現在仍覺費解。現在將這幾天所碰到的各種怪現象,及目前己能正常運作的種種,做一彙整記要,希望對被問題包圍,無法突破的同學們能提供一點的幫忙。

    曾發生過的怪症狀

    這幾天曾碰過的各種疑難雜症大致條列如下:

    • 完成程式撰寫,使用 “Deploy” 功能,欲將已完成的程式放上 Google 雲端時,總是碰到 Eclipse 會發出錯誤訊息,大意說 “JSP 檔案無法通過編譯 (compile) ” 
    • 有時可以順利地將程式 Deploy 到 Google 雲端,但是在表單按下 [送交] 鈕 (Submit) 時,卻又遇到了 “500 Server Error” 的錯誤,在瀏覽器中看到如下之錯誤訊:
      "Error: Server Error
      The server encountered an error and could not complete your request.
      If the problem persists, please report your problem and mention the error message and the query that caused it."
    • 有時則是,在Eclipse看到 Deploy 到 Google 雲端的成功訊息,理論上己完成的JSP網頁、HTML網頁與Servlet均己可以正常運作了,但結果卻是,在瀏覽器只能觀看 HTML 網頁;JSP 網頁則是完全無法顯示
    • 使用 Google App Engine SDK 內附的 Web Server 瀏覽網站的首頁,卻看到如下之錯誤訊息:
      HTTP ERROR: 503
      Problem accessing /. Reason:
      SERVICE_UNAVAILABLE

      --------------------------------------------------------------------------------
      Powered by Jetty://
    • 無法對 Package, Class 做 Rename ,否則會得到因 SVN 而發出的錯誤訊息

    使用Google App Engine SDK 注意事項

    上述的各種問題,現在有些我仍搞不清楚究竟是如何發生的。只是,在解決問題的過程中,個人發覺有許多問題均是導因於 Eclipse 的組態 (Configuration) 出了差錯,現在將這些曾遇過的問題整理如下:

    我的Eclipse組態環境

    我使用 Eclipse JEE 3.6 x64 版本,至以下之網址下載 Google Plugin for Eclipse http://dl.google.com/eclipse/plugin/3.6為了要能在 Eclipse 中使用SVN Client功能,我亦自 http://subclipse.tigris.org/update_1.6.x 網址處,安裝了 Subclipse Plugin。

    最近Google釋出了新版本

    在週四上午出門前,發覺Google 釋出了以下的新本:

    • Google App Engine SDK 1.3.5 (前一版本為:1.3.4)
    • Google Web Toolkit (GWT) 2.0.4 (前一版本為:2.0.3)

    對於這個新版本,我選擇了立即更新。這個決定,似乎正就是我災難的開始。這話的意思,並不是說這個新版有什麼重大的臭蟲,而是更新之後,整個 Eclipse 的配置環境就亂成了一片。

    以下,將告訴大家如何檢查 Eclipse 的配置環境,以免被亂掉的配置環境給搞個半死。

    檢查環境變數的設定

    image

    確定 JAVA_HOME 環境變數之設定。對於先前使用 Eclipse 3.5 x86 (32位元) 版本,後來改用 Eclipse 3.6 x64 (64位元) 版本的人,尤其需要特別注意,務必要讓此處的設定為 “C:\Program Files\Java\jdk1.6.0_20” ,設定使用之 JDK 亦為 64 位元版本,而不是使用 32 位元之版本。

    檢查Eclipse的預設配置環境

    image

    確認JRE的路徑設定

    確認 JRE 路徑設定,落在 JDK 所在資料夾位置;而不是一般的 Java Run Time 位置。

    image

    確認以下 Google App Engine 的路徑設定。

    image

    確認以下 Google Web Toolkit (GWT) 的路徑設定。

    image

    確認 Project Properties 中的設定

    image

    確認 Java Build Path 設定

    image

    確認 Google App Engine SDK 設定

    image

    確認 Goolgle Web Tookkit (GWT) 沒做設定

    image

    確認 war 資料夾中的 lib 設定

    image

    在 Google Web Application Project 中,於 war/WEB_INF 路徑下的 lib 資料夾,會有10個檔案。其中的前 3 個檔案與 Google App Engine 有著極大的關係,我曾發生莫名其妙的怪事,在 Project Properties 所見之 Google App Engine SDK 的版本為 1.3.5 ,但是此處的前 3 個檔案之版本竟然都為 1.3.4 。

    這樣的問題,導致 Google App Engine SDK 內附的 Web Server 無法正常執行。

    總結

    經過了 3 天 3 夜的奮戰,我發覺無法將 Eclipse 己完成開發的軟 Deploy 到雲端,其問題竟然大都發生在 Eclipse 配置環境的問題。所以,如果大家仍有與我類似的問題,請先依據這裡的描述,完成相關的檢查與修正。以便讓己完成開發的軟體能上得了 Google 雲端,能有初步的執行功能。

    至於程式碼中那些錯誤,將致物件無法透過 JDO 寫入 Google 雲端的 Data Store ,請容下回再行補上。

    2010-07-04

    Hope Has a Place


    兩天的週末假期,很快地又過了。今天沒做多少事,但是轉眼間,夜又將深了。看著剛入睡的小祖宗,心中很是抱歉,這個禮拜又跟上個禮拜、上上個禮拜、上上上個禮拜.....,全都是一個樣,沒有帶他出去走走。

    在週末帶小祖宗出去走走,已是連續六週來,每個週日夜都要發出的心願。想到這裡,不禁要搖頭苦笑,希望啊!希望 ~~~ Hope Has a Place!!

    簡介SCRUM軟體開發流程

    對於軟體開發人員而言,如何將對軟體期待的需求,轉化為設計規格,並能依規格完成程式設計,交付令客戶滿意的產品,以便開心的客戶,甘心付錢讓自己口袋麥克、麥克,這是極為重要的大事。

    為了達到這個軟體開發的終極目標,有許許多多的人提出各種、各式的軟體開發流程 (Software Development Process) 。軟體開發流程之多,多到令人眼花。
    我沒有什麼本事,所以不想、也無法評論各種軟體開發流程的好、壞。但是如果您的軟體開發專案有下列之特性,也許該考慮SCRUM軟體開流程:
    • 專案的成員大致為:3 - 5人
    • 專案開發的時期不是很長 (約 3 - 6 個月)
    • 應用系統的開發,採反覆(Iterative)與漸增(Incremental)的方式,分期交付客戶
    • 使用UML做為OOAD的分析與設計技術
    • 程式設計開發使用OOP的電腦程式語言
    如果以上的這些說明,讓您覺得 "很虛" ,很想對我說「你公蝦?」,那麼我們且來觀賞以下的SCRM摘要介紹影片。


    觀看上面這段影片對SCRUM的介紹,若在配合以下的這張圖,可以使您快速地對SCRUM有個概觀的了解。


    800px-Scrum_process.svg[1]
    以上圖片出處,其網址為:http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Scrum_process.svg/800px-Scrum_process.svg.png


    但是......,如果僅是這樣,無法滿足您打破沙碢問到底的求知慾,個人推薦可再閱讀以下的這本書。

    Head First Software Development
    書名:
    深入淺出軟體開發
    作者:Dan Pilone, Russell Miles
    編譯:楊仁和
    書號:A232
    ISBN:978-986-6840-21-0
    頁數:500頁
    出版日期:2008年06月
    售價:680

    雖然上述的這本書,從頭到尾都看不到SCRUM的字眼,出現在該書中。但是,您可從本書學到SCRUM軟體開發流程的精神,例如:如何以測試驅動開發(TDD)的方式開發軟體應用系統;如何讓軟體的建置(Build)工作自動化;為程式做版本控制(Version Control);為軟體進行重構(Refactor) .....。

    SCRUM軟體開發流程,談的是 "流程的架構" 。至於如何讓SCRUM軟體開發流程,能夠真正地運轉起來,則需有 "工具" 來支撐,這樣SCRUM的威力才能真正發揮。如果,您軟體開發所使用的程式語言正好為Java;您不希望因大而無當的 "文件" ,壞了專案的生產力;但也不想,因毫無文件可供參考,致使後續的維護變成 "災難" 。那麼,這應該是值得您好好研讀的一本好書。

    eclipse – Java IDE 開發工具筆記彙整

    常言道:「工欲善其事,必先利其器」。許多使用Java程式語言的朋友,係以eclipse做為Java IDE工具。對於使用eclipse做為Java應用系統開發工具的人,免不了需要下載eclipse、或是專為它設計的各種plug-in工具。以下彙集整理的重點,希望在您需要下載的時候,能有上那麼一點幫助。

    關於eclipse的近況

    eclipse在2010年6月23日,發行了3.6 (Helios) 版本。對於這個版本,我最感高興的事為:在Windows平台執行的版本,終於有了64位元的版本。關於eclipse下載的網址 (URL) 條列如下:
    image
    首次進到eclipse下載網站的朋友,大概都會對著那一拖拉古可供下載的項目看儍眼,不知該從何處著手。對於您該下載那個版本的指引,說明如下:
    • Eclipse IDE for Java EE Developers:對於需要開發Java應用程式,同時亦需開發Serverlet與JSP網頁的朋友,請下載這個企業級版本。
    • Eclipse IDE for Java Developers對於只需要開發傳統Java應用程式的朋友,則請下載這個標準版本。
    由於eclipse基本上就有Java EE Developers與Java Developers兩種版本。而每種版本,在Windows平台亦各有32位元與64位元兩種版本。對於已經完成檔案下載的朋友,有時可能會分不清自己所擁有的究竟是那一個版本,下列之表格,以eclipse 3.6 (Helios) 為例,教您如何自檔案名稱,辨識所下載的eclipse究竟是那一個版本。
    Windows 32 位元
    Windows 64 位元
    Eclipse IDE for Java EE Developereclipse-jee-helios-win32.zipeclipse-jee-helios-win32-x86_64.zip
    Eclipse IDE for Java Developerseclipse-java-helios-win32.zipeclipse-java-helios-win32-x86_64.zip

    綜合上述各種版本之檔案名稱,可歸納eclipse各個版本的規則如下:
    eclipse-<<識別一>>-<<識別二>>-<<識別三>>.zip
    • 識別一:若為jee表Java EE企業級版本;java表標準版。
    • 識別二:helios表3.6版;galileo表3.5版。
    • 識別三:若為win32表可在Windows平台執行的32位元版,如:Windows XP、Windows Server 2003;win32-x86_64表可在Windows平台執行的64位元版,如:Windows 7 (x64) Windows Server 2008 R2。

    關於eclipse的plug-in


    使用eclipse的朋友,可能需要讓eclipse能夠化為SVN Client,在eclipse的IDE環境中,就能直接執行Java程式碼的簽入 (Check-in) /簽出 (Check-out) ;或是希望在eclipse開發Google雲端應用系統。對於這些常用的eclipse plug-in,其下載網址,整理條列如下:
    • Sublipse plug-in for eclipse –- 可令eclipse化身為SVN Client。撰寫本文時最新版本為1.6.x,經過個人的測試,這個版本的plug-in可在eclipse 3.4, 3.5, 3.6 (32位元)版本執行。雖然這個版本亦可在3.6 (64位元) 版本執行,但很容易看到JavaHL的錯誤警示。
    • Google App Engine plug-in for eclipse -- 使eclipse可開發Google雲端應用系統。不論您是使用eclipse 3.4, 3.5, 3.6的那一個版本,皆可在這找到適合您使用的plug-in版本。
    走筆至此,報告完畢,希望各位在eclipse使用愉快,開發出偉大的軟體 -- 是幸。 ^^

    2010-06-27

    甲你攬牢牢


    週五晚上回到家,打開我的 YouTube 頻道,看見有人分享江蕙的《甲你攬牢牢》MV。
    這首歌早已聽過 N 遍,但就從來不曾去細聽歌中的歌詞是在寫什麼,MV 則更是從未看過。也許是因為整週下來,人已累到不行,需要音樂,來轉換心情,於是我對著該影片來個 click ,當然,影片也就跟著播放。

    雙眼盯著螢幕看,耳朶聽著江蕙那如泣如訴的歌聲,心情則隨隨著 MV 的劇情,跟著起伏、翻騰。

    聽過一遍之後,我立即又再重播一次、兩次、三次......。隨後,更是立即在 Facebook 分享這段 YouTube 的 MV 。並在留言如此寫道:
    ¸¸.•*¨*•♫♪•.¸¸.•♫´*¨¯`♪•.¸¸
    每個靈魂,總有軟弱的時候。
    給個施無畏的熱情擁抱吧,那將是久旱後的甘霖,能讓人再度堅強,擁有面對艱難的勇氣。生命將如同黑夜看見黎明的曙光,可因此再度成長、茁壯。

    不過是一首歌,幹啥我要有這麼大的反應?事情的緣由是因為這樣而起的......

    週五下午,約莫是四點多的時刻,我帶著些許的倦意,一下子記錄 Java 程式語言老師所傳授的重點筆記;另一下子則是忙著在電腦實作 Java 的程式碼......。此時,在我座位左邊的同學,突然低吼了一聲。他這突然的舉動,讓我嚇了一跳,並且有些莫名其妙,心中立即有個 OS --「啊~現在是花生了什麼素啊?」。

    我的頭這麼一轉,看見我那同學眼睛盯著他電腦上的網頁,神情頗是激動,右手更是拳頭緊握地揮舞著。接著,我再細瞧他那螢幕上的網頁,倒底有什麼內容,可以讓一個平常靜默不語的人,竟也會有如此令人難以意料的舉動。

    待細看後,才知原來同學在看的網頁,係 "捷運局員工招募的榜單" ,同學被錄取了。在這不景氣的時候,能有工作,同時又是政府單位的職位,真是好事一椿,我也真得很替他高興。不過,這正也意味著,我們這 "職業技能訓練 -- Java 程式設計班" 的同學又將少一人了。
    這個禮拜的初期,班上有同學因為覺得跟不上進度,所以要求退訓。對於同學的離去,心裡不禁這麼想:為什麼想不開?為何不能再多撐點?班上像我這樣老芋仔以及其它上了年紀的同學,即便是學習覺得腦力感到吃力,體力覺得難以負荷,但我們都能設法撐下去。反觀,年輕力壯的少年郎,為何卻不願再多撐點?!

    為了同學的撐不過,而我們其它的同學又沒能及時幫上忙,拉他一把,這事著實令我難過一陣子。

    《甲你攬牢牢》MV 中有歌詞如此唱道:「世事乎人 想袂曉,需要一個肩甲頭」。打從大學畢業,步入社會工作後,我的工作時間,一直是平均12個小時左右,通宵、 在公司打地鋪過夜更是常有的事,有陣子甚至是午夜十二、一點入睡,清晨五、六點起床再戰。手頭有錢,就是買電腦設備; 上補習班學習 IT 技術、軟體工程、品質管理與專案管理。本以為只要隨時充事自己的技能;更新自己的專業知識,「沒有頭路」的這等事,是不可能會掉在我頭上。然而,2009 年的金融海潚餘波,所帶來的不景氣,這才讓我終於知道 -- 我錯了。

    回想在 5 月 13 日進入這 Java 程式設計班之前,我一直排徊在兩邊 --「是該堅守在 IT 界,繼續努力闖出一片天」;還是應該「全盤放棄以前的所學與經歷,轉入其它行業,再創另一個天」。為此,一直傍惶不已。

    但是,經過了這些時日的訓練,雖然在腦力與體力感到辛苦,但也因著這些帶著苦味的訓練,讓我漸漸拾起信心。這個轉折,固然要感謝授課的老師們。但更要感謝幫我解決房貸壓力的老爹;另外,一直飽受生活壓力的太座上人。為人子、為人夫,不能作為他們背後的支柱,反倒成了他們要安慰、要擔心的對象,常令我感到自責。

    不過,說真地,我現在需要的只是一個 "信任" -- 相信我,給我一些時間,我一定會設法再度站起。 如果在 10 月份結訓後,我可以再度回到職場;或是用另一種型式,以自己的專業技能謀得收入。說真地,這不是因為我有多利害,而是因為在我最軟弱的時候,有人給了我一個 "肩甲頭" ,讓我有辦法渡過這個生命的灰暗時刻。

    對於佛家所說的 "施無畏" ,在我的體認則是 "對於不如意的人,給些關懷,給個擁抱,給個可以讓他暫時倚靠的肩甲頭。"

    在人世浮沈的朋友啊,失意時,可以抱頭痛哭一個晚上,但明朝太陽升起時,請再奮起,不要讓一時的不順,這麼容易擊倒你。

    同學們,為了自己、為了 Money Way (前途) ,請不要輕言放棄,大家加油哦!

    2010-06-20

    《阿媽比較口連》

    近日,我家小祖宗過他的七歲 "大壽" 。阿公、阿婆疼這個小孫。紛紛給錢,當他的生日賀禮。這孩子樂壞了,回家的時候對我訴說此事。

    小祖宗:「把拔,把拔。我過生日,阿公、阿媽今天都有給我錢錢哦!」

    我:「哇!怎麼這麼好?!」

    小祖宗:「阿公給了我1千塊錢!」

    我:「好好哦.....!」

    小祖宗:「可是....!可是......!阿媽比較可憐,她給了我2千塊」

    我:「.........」
    PS:久久無語,一隻烏鴉從我腦後飛過去,啊~!啊~!啊~! ...... = = !!!

    2010-06-19

    《落雨聲》江蕙



    《寄語白雲》李雅芳 1971



    《堆積》林瓊瓏



    《好想你》金瑞瑤



    《愛的路上千萬里》陳蘭麗



    《海誓山盟》甄妮



    《夏之旅》蔡幸娟



    《世界像一座彩屋》陳蘭麗



    《茫茫天涯路》方晴



    《滄海一聲笑》黃霑 【電影笑傲江湖片中曲】



    Cugetari despre viata

    2010-05-27

    使用 Arrays.binarySearch() 須注意的小細節

    使用 Arrays.binarySearch() ,若發生 "怪怪" 的問題,請先檢查一下,陣列內的元素是否已先做過排序。

    根據 Java API 的說明文件,使用 "binarySearch" 方法前,須對陣列先行 "排序" 。 (Ref: The array must be sorted prior to making this call......)

    所以,陣列內各元素的值,若未先排序,就直接做 "搜尋" ,很容易就發生 "意外" 囉!

    ********************** [ Begin ] **********************
    binarySearch

    public static int binarySearch(int[] a,
                                   int key)

        Searches the specified array of ints for the specified value using the binary search algorithm. The array must be sorted (as by the sort(int[]) method) prior to making this call. If it is not sorted, the results are undefined. If the array contains multiple elements with the specified value, there is no guarantee which one will be found.

        Parameters:
            a - the array to be searched
            key - the value to be searched for
        Returns:
            index of the search key, if it is contained in the array; otherwise, (-(insertion point) - 1). The insertion point is defined as the point at which the key would be inserted into the array: the index of the first element greater than the key, or a.length if all elements in the array are less than the specified key. Note that this guarantees that the return value will be >= 0 if and only if the key is found.

    ********************** [ End ] **********************
    以下用程式碼來示範  Arrays.binarySearch() "錯誤及正確" 的作法。

    /********************************************************************
      示範程式碼
    ********************************************************************/
    import java.util.Arrays;

    public class Array_binarySearch_VV {

        /**
         * @param args
         */
        public static void main(String[] args) {
            System.out.println("[陣列未先排序,就做搜尋]\n");
            CanNotWork();

            System.out.println("===========================\n");
            
            System.out.println("[陣列已先排序,再做搜尋]\n");
            sortBeforeSearch();
        }
        
        /*
         * 有問題的寫法
         */
        static void CanNotWork() {
            int i = 0;
            int iSearch = 6;
            int iNumbers[] = { 3, 4, 10, 12, 6, 15 };

            // 排序前陣列內各元素的值
            System.out.println("排序前陣列內各元素的值:");
            System.out.println(
                    Arrays.toString(iNumbers)
            );

            // 執行 binarySearch,結果找不到
            System.out.println("\n搜尋 [" + iSearch + "] 在陣列中的位置?");
            i = Arrays.binarySearch(iNumbers,iSearch);
            System.out.println("搜尋的結果值:" + i);
        }
        
        /*
         * 正確的寫法
         */
        static void sortBeforeSearch() {
            int i = 0;
            int iSearch = 6;        
            int iNumbers[] = { 3, 4, 10, 12, 6, 15 };

            // 排序前陣列內各元素的值
            System.out.println("排序前陣列內各元素的值:");
            System.out.println(
                    Arrays.toString(iNumbers)
            );

            // 執行 sort
            Arrays.sort(iNumbers);
            
            // 排序後陣列內各元素的值
            System.out.println("排序後陣列內各元素的值:");
            System.out.println(
                    Arrays.toString(iNumbers)
            );
            // 執行 binarySearch,結果找得到
            System.out.println("\n搜尋 [" + iSearch + "] 在陣列中的位置?");
            i = Arrays.binarySearch(iNumbers,iSearch);
            System.out.println("搜尋的結果值:" + i);
        }
    }

    2010-05-26

    Google Site 網站示範例

    一談起 Google 的協作平台 (Google Site) ,很多人都會說這是適用於 "協同運作用" 的網站平台。當您有 "架設網站" 的需求,很可能就會有人認為 "宜用 Google Blogger";不宜用 Google Site" 。

    對於以上這樣的觀點,我個人則持保留態度。以下彙整一些使用 Google Site 建置的網站,各位可透過這些網站範例,做一了解、比較,也許會有不一樣的新觀點哦。


    美士多公司網站
    http://www.maximol.com.tw/

    Google Fans Club 社群網站
    http://gfc.googlapps.com.tw/

    Google 提供的協作平台範例
    以下的範例介紹置於 Facebook 的網站中,所以您需要有登入 Facebook 的帳號,才能看到這些介紹內容。
    http://www.facebook.com/posted.php?id=262395110204&share_id=104275199607266&comments=1#!/gfc.sites?v=app_4949752878

    雲端運算商機簡介

    以下彙整與「雲端運算」相關的介紹資料。

    什麼是「雲端運算」?
    http://www.youtube.com/watch?v=Z5f2FQkLfdo


    小妹大之雲端運算-1/2
    http://www.youtube.com/watch?v=RYm1wE3RTLw&feature=related


    小妹大之雲端運算-2/2
    http://www.youtube.com/watch?v=HMzFgwdf5WE&feature=related