善用 Google Chrome 瀏覽器提供的小工具,解決你英文閱讀的困擾;讓菜英文,不再是你學習新知的絆腳石。
2014-07-20
2014-07-19
《信任》沈雁
作詞:王家麟 作曲:洪小喬
陰雨裡 陰雨裡 我信任晴天
黑夜裡 黑夜裡 我信任明天
雪地冰天的季節 我期待春天
晴天裡 晴天裡 望不見一片雲
光明裡 光明裡 有多少理想
人心不古的世界 我信任 只有你
陰雨裡 陰雨裡 我信任晴天
黑夜裡 黑夜裡 我信任明天
雪地冰天的季節 我期待春天
晴天裡 晴天裡 望不見一片雲
光明裡 光明裡 有多少理想
人心不古的世界 我信任 只有你
2014-07-16
「洋蔥筆記本」讓你找到原初的感動
文采不夠好?無法寫出感人,讓人掉淚的文字嗎?
來、來、來、來、來..........
趕快來用這款 Onion Note
別懷疑,我沒打錯,你也沒看錯,就是「洋蔥筆記本」! U_U
洋蔥筆記本裡面,真的有洋蔥。筆記本內的每一頁,都塗有厚度達 0.024mm ,可催淚的「烯丙基化合物」(allyl propyl compounds),書寫時,筆與紙的磨擦,會令塗在紙上的微粒子不斷散發出來,因此寫越多,淚也催的更多。
即便你在筆記本寫下:「布丁要放在冰箱裡冷藏」,這麼無聊的記事,同樣也能讓人「淚流滿面」,不能自己! U_U"
2014-07-12
7月11日遊行天宮
週五的午後,來到了行天宮。
看到人來人往,眾多的人羣,心裡著實訝異!此刻,不是所謂的上班時間嗎?怎麼還是有這麼多的人聚集此處?
信步胡逛,不自覺來到了近大殿旁側的長廊,因為天熱,覺得有點渴,於是就在石階坐了下來,飲水。
從這裡望去,看見想要收驚的人們,排著長長的人龍,一個接著一個,好多好多啊!
再往前看向大殿的正前方,許多的人們在那裡或拈香,或雙手合十,祈禱著。
更有好幾個人,長跪在地,口裡一直唸唸有詞,許久不間斷;其中,有一男子的祈禱頗為懇切,合十的雙掌好像很用力,拜著、拜著,身子一直不停往前傾;最後,整個人俯伏在地,點頭如搗蒜般。
不知這朋友,現在是什麼樣的狀況?又是為了什麼,祈求要如此迫切?
心中滿是疑問號,正不停冒出的時候,沒想到,原先跪在男子後頭的一位女性,也是同樣伏身,一直不停在磕頭......
為何人間總有這麼多的折磨與苦難?人們總要如此,在紅塵俗世間,不停地掙扎?眼前的這情景,看著、看著,心想好難受;感覺好想哭。
每當我不自覺地歎氣之時,我兒子總是告訴我:「不要歎氣,要趕快找到你的『快樂基地』」。
不認識的朋友啊!祝福你,希望你的困難能儘快移轉;心靈更能早日離苦得樂......
看到人來人往,眾多的人羣,心裡著實訝異!此刻,不是所謂的上班時間嗎?怎麼還是有這麼多的人聚集此處?
信步胡逛,不自覺來到了近大殿旁側的長廊,因為天熱,覺得有點渴,於是就在石階坐了下來,飲水。
從這裡望去,看見想要收驚的人們,排著長長的人龍,一個接著一個,好多好多啊!
再往前看向大殿的正前方,許多的人們在那裡或拈香,或雙手合十,祈禱著。
更有好幾個人,長跪在地,口裡一直唸唸有詞,許久不間斷;其中,有一男子的祈禱頗為懇切,合十的雙掌好像很用力,拜著、拜著,身子一直不停往前傾;最後,整個人俯伏在地,點頭如搗蒜般。
不知這朋友,現在是什麼樣的狀況?又是為了什麼,祈求要如此迫切?
心中滿是疑問號,正不停冒出的時候,沒想到,原先跪在男子後頭的一位女性,也是同樣伏身,一直不停在磕頭......
為何人間總有這麼多的折磨與苦難?人們總要如此,在紅塵俗世間,不停地掙扎?眼前的這情景,看著、看著,心想好難受;感覺好想哭。
每當我不自覺地歎氣之時,我兒子總是告訴我:「不要歎氣,要趕快找到你的『快樂基地』」。
不認識的朋友啊!祝福你,希望你的困難能儘快移轉;心靈更能早日離苦得樂......
2014-05-22
在 Visual Studio 2013 使用 Git 做程式碼的版本控管
自 Microsoft Office 2013 全力支援 Office Online 之後,昨夜,自近日專案合作的夥伴那裡聽說,現在就連開發軟體專用的 Visual Studio 2013 ,也是支援雲端的 Visual Studio Online 產品!! @..@
Visual Studio Online 最讓我感動的地方,有兩個:(1)它把 TFS 也雲端化了,以前安裝 TFS Server 搞死人的安裝及設定工作,軟體開發者完全可以不用搭理了。只要專心在你的「軟體技術」領域裡即可;不必再向以往一樣,軟體工師也要兼當「系統工程師」,讓你的 Focus 沒完沒了。 ==“
(2)雖然原先的 TFS 已內建「版本控管(Version Control)」的功能;可是沒想到現在的 Visual Studio Online 及 Visual Studio 2013 ,竟也支援非出自 Microsoft 本家的 Git 。 Y *^^* Y
在 Visual Studio 2013 測試一下,自 BitBucket 網站提供的 Git 雲端服務,下載原始程式碼,如下網址所示,成功! ^^y

2014-05-20
Java 注入相依的妙用
軟體專家告訴哦棉,好的程式設計,要寫成「耦合鬆綁(decouple)」,這樣,每個程式單元,才能隨時利用,任意組合。
But................. How?!
這裡,有一個例子。假設,我們需要開發一個「腳踏車出租管理系統」,供腳踏車店做出租服務。
第一個想開發的功能是:「在螢幕列出店裡所有的腳踏車」。
對於這個功能,我們可以這樣做。
先開發一個: Bike(腳踏車)的 Entity 類別,其程式碼如下。
Bike 類別
再開發一個:RentABike (租台腳踏車)的類別,用來管理腳踏車出租店的租借業務。在此類別先實作了 2 個方法(method),(1)getBikes:取得店裡所有的腳踏車;(2)getBike :依「序號」取得某一台特定的腳踏車,其程式碼如下。
RentABike 類別
為了在螢幕上顯示店裡所有的腳踏車,我們又多開發了一個:「CommandLineView」類別,其程式碼如下。
CommandLineView 類別
CommandLineView 類別
一般的寫法,我們會很自然地在 CommandLineView 這個類別裡,先用 RentABike 類別建立一個 rentABike 物件。
然後,再利用 rentABike 物件,呼叫方法 - getBikes() ,取出店裡所有的腳踏車。接著在 CommandLineView 類別中,利用迴圈,在螢幕列示出所有的腳踏車。
以上的作法,既簡單,又直覺。但....... 它沒有達到「耦合鬆綁」所要求的程式架構之美!因 CommandLineView 類別與 RentABike 類別,十指緊扣,關係密切啊! ^^"然後,再利用 rentABike 物件,呼叫方法 - getBikes() ,取出店裡所有的腳踏車。接著在 CommandLineView 類別中,利用迴圈,在螢幕列示出所有的腳踏車。
那該怎麼辦咧?!
《Spring 程式高手秘笈》這書,在 Page 1 ~ 9 處,教人如何利用 Interface ,進行「相依注入(Dependency Injection)」,讓 CommandLineView 類別,呼叫 getBikes() 方法的這檔事 ,不是寫死在 CommandLineView 類別中,而是由另一個類別,在 Run Time 時期,負責相依關係的相注入,使 CommandLineView 物件,能呼叫 getBikes() 這方法!
這麼神奇的事,是如何做到的?
- 原先 RentABike 類別,能提供其它類別使用的 method ,將它當成是 service ,全包進一個名為 RentABike 的 Interface 中。
- 另新增一個「service 類別」 ( ArrayListRentABike ) ,須實作 (implements) 上一個 RentABike Interface 。
- 要使用「service 類別」,呼叫其中 method 的這種類別,稱作:「client 類別」, 以此例子而言,就是 CommandLineView 類別,它在類別中,須有一個 property ,用來指向「 service 類別」所產生的物件。
- 建立一個類別,負責在 Run Time 時期,執行「相依注入」的工作,這種作法,一般被稱作為 assembler 或 container 機制。在這個例子中,由 RentABikeAssembler 類別擔綱。
此相依注入的作法,可用以下的「類別圖」,來說明各個類別之間的相互關係。
最後,各類別的程式碼,分述如下。
將 RentABike 類別改成 Interface
提供 method 的「Service 類別」:ArrayListRentABike.java
使用 method 的「Client 類別」:CommandLineView.java
注入相依的 Assembler 類別:RentABikeAssembler.java
Run Time 時期,由 RentABikeAssembler 類別,負責「注入相依關係」這檔事。
首先,建立一個「Client 物件」: CommandLineView 物件;然後,建立一個「Service 物件」:ArrayListRentABike。
接著令「Client 物件」- CommandLineView 的 property 指向「Service 件件」 - ArrayListRentABike。最後, CommandLineView 這個「Client 物件」,可以使用 「Service 物件」- ArrayListRentABike ,提供的 getBikes() 方法,取出店裡所有的腳踏車,丟給類別內的方法處理,顯示在螢幕上 。
透過以上「相依注入」的作法,可達成「耦合鬆綁(decouple)」的目標。軟體開發中所使用的各個類別,就能任意組合,隨時依自己的需要來變化及使用。
程式碼下載處: https://github.com/AlanJui/BPANDSVC
程式碼下載處: https://github.com/AlanJui/BPANDSVC
2013-12-28
升級到 Mac OS X 10.9 後讀卡機不能用了
每個月的月底,我需要向銀行繳交信用卡消費。繳款的方式,我習慣使用玉山銀行的 Web ATM ,透過網路來進行轉帳。
使用玉山銀行的 Web ATM ,需要這些工具:(1)MacBook Pro 電腦(作業系統 OS X 10.8);(2)讀卡機;(3)Chrome 瀏覽器。
接在 Mac 電腦的讀卡機(Smart Card Reader),是源自 Windows XP 時代,就擁有的。
在 11 月初,Apple 發佈新版的 Mac OS X 10.9 ,我將 Mac 電腦的作業系統,升級。
到了月底,我一如往常,再次使用 Web ATM 進行轉帳,但那次的轉帳,玉山銀行 Web ATM 的應用系統(網站),一直認定我的電腦並沒有安裝讀卡機。
原本以為,我那台服務多年的讀卡機,不耐歲月的催殘,終於壽終正寢,回歸天家了。因此,只好掏出銀兩,請購了以下這台新的讀卡機 GoodTec CR-508 。
照著玉山銀行,如下網址處的操作指引,執行安裝及檢驗程序,結果還是「失敗」。
https://netbank.esunbank.com.tw/webatm/Q&A_017.htm#02
使用玉山銀行的 Web ATM ,需要這些工具:(1)MacBook Pro 電腦(作業系統 OS X 10.8);(2)讀卡機;(3)Chrome 瀏覽器。
接在 Mac 電腦的讀卡機(Smart Card Reader),是源自 Windows XP 時代,就擁有的。
到了月底,我一如往常,再次使用 Web ATM 進行轉帳,但那次的轉帳,玉山銀行 Web ATM 的應用系統(網站),一直認定我的電腦並沒有安裝讀卡機。
原本以為,我那台服務多年的讀卡機,不耐歲月的催殘,終於壽終正寢,回歸天家了。因此,只好掏出銀兩,請購了以下這台新的讀卡機 GoodTec CR-508 。
會買這台讀卡機的原因,是因為看到包裝盒上印有「適用 MAC 10.6.4 以上版本」的規格說明。
可是......結果,還是被玉山銀行認定「沒有完成讀卡機安裝」,哇嘞.......
照著玉山銀行,如下網址處的操作指引,執行安裝及檢驗程序,結果還是「失敗」。
https://netbank.esunbank.com.tw/webatm/Q&A_017.htm#02
實在不甘心,寫 e-mail 及打電話到 GoodTec 公司,尋求技術支援,想找出問題根源及可能的解決方法。
最後的答案,竟然是讀卡機驅動程式 PCSCD ,在 OS X 10.9 版本後,變成不認識 RealTec 晶片,以致作業系統無法認定讀卡機已安裝。(據那工程師的講法,台灣製造的讀卡機,都是用這款晶片)
每次作業系統升級都要經歷的痛,這次,最叫人@!#$%^&*#
趁著這次找問題導因的事件,順便整理出-「如何在 Mac 安裝讀卡機的操作程序」,如以下影片所示。這程序也適用於「玉山銀行 Web ATM」的安裝。