2010年3月22日

千騙、萬騙,不離ATM!

歹徒各式各樣的詐騙手法在新聞電台不斷的播出,要大家小心詐騙,勿聽信電話指示操作自動提款機!

最近同事說道又有歹徒謊稱是司法人員查案, 要她去"處理"; 其他同事則告知不要隨之起舞, 並且講述歹徒慣用的方法, 而其中的一個方法也是多年前我太太所經歷過的: 騙當事人持金融卡至 ATM 以「英文模式」進行操作, 索性沒有得逞。

不過, 好同學近來轉寄了一則更令人咋舌的新聞片斷-大陸犯罪新手法:


也是提款機犯罪的手法。看來歹徒善長人的心理(學), 一直在人家的背後施壓或語言操控。

我們可以在內政部警政署165反詐騙網站查看相關案例來做警惕。小心為上!

2010年3月21日

三種有幫助的人

人的一生中大多時候是需要幫助的。有三種人對自己會有幫助:

榜樣:
每個人需要榜樣, 別人的成就可以供自己觀察、分析和遵循。可以發現大多數成功的人都有模仿的對象, 他們「複製」對方成功的方法。

教練:
每個人至少需要一位教練。百分之九十九的成功人士都有教練。如果想在短時間內濃縮別人或甚至更多人的成功和經驗, 就需要一個好教練。

如何找到好教練?如何與教練相處?
(1)寫下為什麼需要教練的理由?自己能為教練作什麼?需要好理由和熱情。
(2)展現耐性。好教練會先測試。
(3)想清楚要問什麼?教練會激勵人家的長處, 而不是解決問題。
(4)與教練保持聯繫。尊重教練的時間。
(5)展現自己廣納意見的態度。贏得教練的心。立刻反應教練提出的訊息。
(6)回饋教練。用成功來報答他。
(7)模仿教練, 但也要保有自己的風格。

專家網路:
需要一個由專家組成的環境, 他們應該是可以和自己一同前進的人, 是了解責任準則的人。而且在自己的領域裡, 他們是把責任準則發揮到極致的人。



成功人士遵循以下準則:
1. 自己沒有完成某件事的人, 沒有權力提供別人建議; 所以不需要去聽取這種建議。
2. 和成功人士交往, 要成功就比較簡單。
3. 想要致富, 必須先讓自己習慣與財富相處。最簡單的方法就是與成功人士交往。
4. 判斷一個人智商的方法, 就是觀察他周遭的人。
5. 儘早尋找好的意見。
6. 只聽取自己欽佩的人的意見。

2010年3月17日

Groovy 中 Map 的鍵值型別

當了解到 Groovy 的 String 與 GString 物件的同時, 同時也要學到 Collection 物件的應用。

通常會用到 Map 物件來做資料存查(cache); 當資料存入 map 時, 會將 key 自動轉成物件, 而且一般會使用 字串 物件做為資料的識別(key)。理想上來說:
def key1 = 'aKey'
def key2 = "$key1"
def map1 = [:]
def map1[key1] = "some thing"

// key1 與 key2 等義(雖然型別不同)
assert map1."$key2" == map1[key1]

map1.remove("aKey")
assert map1.size() == 0

不過, 同時使用 groovy 語法又使用 Java Map 的 API 進行資料的操作 (在一處 code block 設值, 另一處 code block 取值或移除), 往往會稍不留意 key 的型別或自動轉換後的型別, 結果是存得進去卻取不出來; 也就是說:
// object_of_String 與 object_of_GString 值相同下
assert someMap[object_of_String] != someMap[object_of_GString]

此時, key 要保持型別的一致才能順利存取。目前的實際程式測試結果是如此, 得再進一步驗證。

2010年3月9日

認識 OPCs

說到非細菌性慢性疾病的發生, 多數人可能認為人體是隨著時間而衰老所引發的。在看過「活得更健康、更長久--OPCs神奇保健功效背後的科學」一書後, 其中提到已有大量的自由基病理學的研究指出, 很多致命性和衰弱性疾病與一類非常活躍的化學物質有關﹣自由基

多數自體因素的氧化過程或環境所引起的自由基, 會傷害人體的細胞膜、細胞蛋白質、DNA、RNA等, 而加速衰老以及有關衰老方面的疾病或引發癌症。

由於資訊的發達, 讓多人數知道"營養素"不僅能夠預防這些疾病的發生, 而且還能幫助那些已經患有這些疾病和障礙的人獲得改善。不像過去, 因為營養素沒有專利限制, 使得靠產品專利來回收利潤的醫藥公司不會加以宣傳營養素的好處。

從事水果生意的親戚告訴我: 水果皮最營養、選葡萄要挑深色的...等。除了有了這些觀念, 也從這本書瞭解到了深色蔬果富含生物類黃酮原花色素(Oligomeric Proanthocyanidins Complexes), 簡稱OPCs; 它會活化維生素C並間接活化維生素E, 用以阻止或減緩氧化過程, 來預防衰老、心臟病及其他慢性退化性疾病。OPCs的幫助有:
1.增強免疫系統
2.抵抗自由基
3.幫助維他命C、E的吸收利用
4.增強夜視力及保護眼睛
5.調節控制神經傳導物質的酵素
6.抗發炎
7.抗組織胺
8.抗癌
9.改善精液結構,增加生育率
10.促進血管暢通、皮膚健康
11.改善過動症、注意力不集中
12.增進循環系統
13.降低LDL膽固醇
14.減少紫外線的傷害
15.強化膠原蛋白
16.保護心臟
17.改善退化性老年癡呆症(可通過血腦屏障,故可以保護腦細胞)
18.改善靜脈曲張及水腫
19.減少行經前症狀
20.阻礙黑色素形成,有美白效果

OPCs對人體抗氧化的目標不在於延年, 益壽才是目的。

在使用了美X的OPC-3約5個月後, 十多年長期電腦工作的我, 因加班造成記憶力衰退、注力意不集中而耽憂了3年的情形, 逐漸好轉; 對於家中兩個小孩常在早晨打噴涕、流鼻水等過敏性鼻炎的情形, 也獲得改善。

OPC-3它的原料來自於專利產品: 碧蘿芷(Pycnogenol®), 並且擁有臨床研究證實的六大專利(USA Patent 4,698,36 / USA Patent5,720,95 / USA Patent 6,372,266 B1 / USA Patent 5,719,178 / USA Patent 6,565,851 B2 / ZL 00 1 30133.0); OPC-3主要萃取自葡萄籽法國西南部特有的海岸松樹皮紅葡萄酒等高活性的成分, 以及山桑(越橘)柑橘類等複合配方、純天然不含任何西藥成份, 加上等滲透(Isotonix)專利的飲用型式, 有效提高了抗氧化的能力。

2010年3月8日

看看別人、想想自己

蘋果日報2010年03月06日報導了《富比士》亞洲48慈善英雄 台東賣菜阿桑最棒, 一個在台東市中央市場靠賣菜為生的婦人-陳樹菊, 一輩子省吃儉用, 將辛苦賺的錢都存起來行善, 她近20年來捐出千萬元, 台東市仁愛國小圖書館更是她捐了450萬元蓋的。亞洲《富比士》(Forbes)雜誌公布亞洲慈善英雄榜, 其中陳樹菊最受矚目, 與億萬富豪蔡宏圖、企業家林宏裕和潘思源, 並列台灣四慈善家。

看到這裡, 想起了美X的夥伴們提過他們的人生夢想, 很多都是有大愛的; 無論是受崇高的宗教教化的、小時候曾聽過的、看到的一些事而感動的, 或受到很大的幫助而發顯的, 在在地看到很多台灣人是有愛心的。讓為了區區四口人生活費用而大傷腦筋的自己, 自嘆弗如!

我沒記錯的話, 像從事IT工作的恆毅教育中心講師蔡先生, 他就是默默貢獻所學所有, 持續支助偏遠小學的學童一些電腦設備; 更讓人覺得慈善不一定是財力雄厚的富人才能做到的, 而是跟我們一樣的是平民小百姓; 他們發光發熱照亮別人, 也因此, 陳樹菊的故事才令人如此折服感動。

看看別人、想想自己。

2010年3月4日

Spring UrlPathHelper 物件的第一次接觸

一般而言, 在 Java web-app 中要取得 browser HTTP 的 request URI [或 query string], 第一個念頭就是使用 Servlet API:

    HttpServletRequest 介面的 getRequestURI() [或 getQueryString()] method

索性, Grails framework 在 Groovy MOP 的支援下, 使得使用這些標準 API(getter) 是輕鬆、直觀的:

    request.requestURI [或 request.queryString]

而且同 JSP 的 EL 一樣, 在 GSP 中可以像 EL 一樣來取值:

    ${request.requestURI} [或 ${request.queryString}]

然而, 該取用 request.requestURI ? 還是取用 request.uri 或者是 request.request.requestURI 才正確呢?
一般的理解, 相較於 servlet API 來說, 直覺會使用 request.requestURI。但, 在 Jetty(開發環境) 與 WebLogic 10.2(執行環境) 兩者 web container 中, 實作上所回應的結果卻不一致, 真出乎我意料之外。

此時, 可以請出 UrlPathHelper class 來解決這樣子的情形:
def helper = new org.springframework.web.util.UrlPathHelper()

def reqURI = helper.getOriginatingRequestUri(request)
def qryString = helper.getOriginatingQueryString(request)

因此, 為避免使用 groovy/Java 與 web container 上實際結果的差異, 經由不斷測試、驗證而得到結果。
軟體開發的解決之道, 仍是老話一句: 測試再測試。這也就是為什麼 TDD(Test-Driven Development) 那麼重要。