2008-05-13

Alaways Think about Your Customers/Clients

最近上了一次有關「客戶服務」的課程,再加上又看了How To Design A Good API and Why it MattersKeynote)這一段教學,其實這都是在說明一件事情,就是不管發生什麼事情,都該要讓你的客戶高興。

身為軟體工程師,在設計與製作API的時候,就要一直思考一件事,因為API就是要讓其他的developer使用的,當然得致力於要讓API簡單、好用、不容易誤用、容易維護,而且一旦產出了錯誤的API,又已經交給客戶使用了,這個錯誤可能會影響好一陣子。但即使看過這個影片,要能身體力行也是很難,也痛苦的,回想去年曾經花了很久製作的ACL API,雖然這個API運作得不錯,也適當地簡化了ACL的開發,一直用到現在沒出問題,但其實這個API是很容易被誤用的,但短時間內就只能以code review的方式,盡量能在開發期間就發現錯誤。

在專案上,就是要面對所有stakeholders,這包含了sponsers, project team memebers與end users,在專案上的努力,最終都得要面對並滿足所有stakeholder的需求與期待,讓大家都高興。講很容易,但做起來就很難了,並不是有了技術一切都能解決的。

「客戶服務」那堂課給我最重要的概念,就是要以「利他」的方式,跟客戶/主管或是其他人溝通,也就是說,講話的時候與說明的角度,假裝自己就是客戶,提出的建議,以客戶的客戶為依歸,這樣客戶就比較容易接受你的建議與意見。例如這樣的說明:如果要修改這項功能,因為這個修改,我們必須同步檢查並修改其他五個地方,這個修改要花上一點時間,可能會影響到你的使用者上線測試的進度。或許我們先以另外一種比較快速能解決問題的方式處理,這樣專案比較能符合上線的時程。

上課很輕鬆,聽課很容易,看看教學影片也不難,但實際接到客戶抱怨電話的時候,如果遇到了蠻不講理的客戶,就會非常容易因為情緒的影響,而擦出火花,失去冷靜判斷的態度。這樣的錯誤即使是事後的道歉,可能都會造成了某一部份永不磨滅的嫌隙,引以為戒。

2008-05-02

MDM (Master Data Management) 主資料管理 的概念

Master Data (主檔資料) 是企業內部最主要的資料檔,例如客戶資料、產品資料、員工資料等等,為了改善資料品質與一致性需求,提昇Master Data被運用與維護的效率,所以需要一個MDM的total solution。以一個小企業來說,一開始導入系統,應該是視情況與當時的需要,購入某些特定功能,跟主要業務有關的資訊系統,接下來企業慢慢地成長,資訊系統增加,這些資訊系統之間的資料轉換與溝通問題,就會慢慢地浮現。

對所有的資訊系統來說,一開始要面對的就是帳號跟權限,所以員工帳號應該是符合Master Data條件又最常見的一種資料,MIS遇到越多系統就有越多帳號得要整合,要整合帳號,就會想到帳號同步與SSO的產品,但如果公司的規模不夠大,或是業主無視於帳號同步的需求與重要性,SSO會是非常難推行的一種產品。

MDM所要面對的資料,是企業內部跟業務有關的核心資料,雖然用起來可能會跟帳號同步的概念很像,但得要更一般化地將所有可能的狀況,都規劃到產品的功能上,然而產品的規模越大,能夠運用的企業就越少,因為他們並沒有足夠的資訊人員能量可以撐住整個MDM的solution維護。

SUN的Mural將 MDM 解釋成,Master Index Studio (index -> search)、Data Integrator (資料整合與收集) 、Data Quality、Data Mashup (展示與使用)、Data Migrator (轉移)這五個子專案。Microsoft的roadmap中,則是將MDM product codename稱為 Bulldog,但還沒看到整體的產品線,如何整合出一個完整的MDM solution,目前只有在Roadmap中舉例,他會以PerformancePoint, Dynamics, MS Office Excel, Office SharePoint Server整合出整套solution。

資訊產品如何能夠將產品的進入門檻降低,又能解決企業主關鍵的業務問題,就是成功的唯一要件。雖然SUN以開放程式碼的系統,作為產品的行銷策略,但對企業主來說,如果真的有這樣的需求,有個方便又好用的產品,又能讓資訊人員快速上手,才是重點。這個部份,相信未來最會包裝產品的微軟,會提出最厲害又簡便的軟體工具。

Master_Data_Management in wikipedia
The What, Why, and How of Master Data Management November 2006
微軟將進入主檔資料管理領域 2007/7/20
嶄新Teradata MDM 2.0方案問世,隨即贏獲首張客戶訂單 2008-03-26
美商甲骨文宣佈推出資料整合套裝軟體 三月 26, 2008
Sun Microsystems Announces Mural: Open Master Data Management
Mural - Open Data Management Community
MDM (CDI, Data Governance) Vendor Products
Master Data Management - Microsoft

2008-04-29

cursor bug in FF

當我們在使用yui的dialog的時候,卻意外發現一個奇怪的問題,只有在Firefox才會發生,就是dialog裡面的input的cursor,在dialog放在一個iframe網頁上面的時候,即時用滑鼠點了一下input,但是cursor還是不會出現,經google後發現,這是firefox的一個bug,而且沒有一個適當的解決辦法。

Cursor disappears in Firefox這篇文章建議以調整 overflow 的style解決,我試過了沒有用。Infamous Firefox cursor bug - Info and possible workaroundsCursor (caret) sometimes fails to appear in input text fields這邊有人建議以 position:fixed 還有 overflow:auto; position:absolute的方式解決,但是dialog的位置就沒辦法任意地拖動了,目前的結論還是無解。

群 der Schwarm

水是萬物之母,地球上有2/3的地方是水,有4/5的地方是深海,另外又只有平方公里的海底地殼,人類曾經考察過。以往的科幻作品,多是往太空發展,描述太空中的其他高等智慧生物,或是人類前往另一個星系發展,這部作品卻往海水發展,內容不但引述了具體的事證,再加上作者個人的想像,成就了這部特別的作品。

有部描述海底未知生物的電影叫「無底洞The AbyssThe Abyss/無底洞」,電影的內容細節我記不得了。另外有一部電影,記得比較清楚,是Dustin Hoffman、Samuel Jackson主演的Sphere,一個特別的圓球,讓他們因著幻想成真的東西,而互相殘殺。

海水裡的東西,對我們來說,未知遠大於已知,「群」並沒有從外星生物下手,而是很特別地,將演化分成兩條大異其趣的進程,一種是人類,一樣的DNA產生不同的細胞與功能,每一個人各自獨立,另一種是單細胞生物(Yrr),DNA雖然類似但不一樣,另外他們有辨識彼此的獨特方法,為了求生存,他們必須要透過女王的協調,讓大家團結在一起抵禦外侮,他們的目標也是要消滅人類。

故事一開始是從甲烷冰水合物講起,為了解決石油能源危機,人類尋找替代能源方案,最後找到了甲烷冰,但在挖掘的過程中,卻發現了許多蟲子,後來才知道這些蟲子,是為了利用甲烷冰水合物的噴發,要讓整個大陸棚下陷,另外在賞鯨的聖地上,卻發現有鯨魚群聚攻擊遊艇,另外就是餐廳裡面,因為龍蝦帶來了液態毒物,滲透進入了下水道,影響了整個城市。

為了解決問題,美國派黎找了團隊,研究這項問題,原本團隊的目的是要跟這些未知的生物接觸,希望能要求他們和平共處,但後來,卻是黎一廂情願,決定要以散佈病毒的方式,讓這些單細胞生物,互相傳染疾病。

作者薛慶創造的Yrr,一開始看起來非常地厲害,因為要求生存,會想各種特別的辦法對付人類,而且看起來都像是了解人類的行為後,所對應產生的報復方法,包括以虎鯨等鯨魚直接攻擊、海嘯、以龍蝦木馬屠城、讓甲烷冰噴發等等途徑,但在故事的後面,Yrr的思考模式,變成了類似蜜蜂的方法,大家都以女王的思考為依歸,有異樣的個體就會被其他個體消滅。

約翰遜與安納瓦克提出的方法,讓Yrr女王辨識到了一個說要跟他結合的敵人,讓他學會尊重一個獨立的個體,進而學會尊重另一種生命體,因為了解人類而提出有效攻擊人類的方法,又因為不了解人類,想要把人類消滅,似乎是有點衝突。

書本前面一大半的部份,主角們從一無所知,到無能為力的狀態,一直再想辦法了解Yrr,最後才能產生對策,這整個過程雖然敘述有點冗長,但卻是能讓人想要把結局看完的一本好書。

der Schwarm 群(下)
[閱讀筆記簿]《群》

CEPA的開放態度

撇開政治與民族問題不談,CEPA(Closer Economic Partnership Arrangement)代表著香港與大陸之間的經濟開放互動,2004年的CEPA,帶來香港民生經濟的榮景,這個議題的答案在四年後的今天看來,應該能給予正面的肯定。最近看了謝金河先生的評論,他認為台灣將會遵循著香港的模式,有一波經濟復甦的榮景,我認同他的說法,所以也買了一點點的股票。

我根本不是經濟方面的專家,也不想對政治有太多評論。但我可以看到的結論是,開放的態度,活絡了經濟,帶來了更大的商機。這不就是自由軟體一貫的理念嗎?對不同於微軟策略的軟體產品來說,自由開放的態度,的確能讓軟體活得更健康而且更有價值,這是很多想要以小博大的軟體產品策略。

以香港跟台灣這種彈丸之地,天然資源不豐的地點來說,對應於一個資源不豐厚的軟體開發團隊,或許兩者都應該以開放的態度,面對自己的商品,期望能帶來更大的經濟效益。為了賺錢,大家都是機會主義者,哪裡有機會,就會往哪裡鑽,錢就會往哪裡跑,除了營造一個吸金的環境外,還有別的方法嗎?

以下是網路上有關CEPA的文章,按照時間順序排列:

兩岸簽訂CEPA須有前題 2004/1/9
經濟回春看今年? 2004/2/28
面對國家第27集
CEPA對台灣的影響 2004/4/27
CEPA的影響
CEPA:香港與長三角合作更緊密 2004/1/15
香港專家:CEPA存有風險 且等於矮化台灣 2005/4/28
中國將進一步充實與香港CEPA內容 2006/6/20
台商掀起赴港上市熱潮 2007年4月號
唐英年:CEPA是內地與香港雙贏的安排 2007/6/22
CEPA推動香港經濟高速增長,今後重點是服務貿易 2007/6/25
從台灣看香港 蕭萬長:CEPA是歷史轉捩點 2007/6/26
CEPA加持,經濟回溫 香港,猛掏陸客荷包 2007/6/28
CEPA為香港創意工業帶來商機 2007/8/30
08年營建資產類股~受惠兩岸關係解凍,投資價值提升 2008
壓抑10年 金融股長期價值爆發 今周刊 2008/01/24 第579期
中國商務部摸底CEPA,香港商求國民待遇 2008/4/11

Tomcat 5.5.26 6.x的 cookie problem

最近原本程式在Tomcat 5.5.25可以運作正常的Cookie,最近在Tomcat 5.5.26上測試卻發現出了問題,原因在我們在Cookie的數值上,是以Base64編碼,然而base64的編碼結果會在最後面產生多個 = 字元,這個等號,在Tomcat 5.5.26取得cookie value時,被視為cookie規格中的等號。

舉例來說 cookie1=value= ,應該取到有個cookie1,數值為value=,但在Tomcat5.5.26上卻是,有個cookie1,數值為value。在Cookie V0的規格中,他告訴我們cookie裡面的資料必須要自己用URL style %XX 的方式編碼。

我懶得再用java.net.URLEncoder去轉換,直接replace所有的 = 為 $,取到cookie資料時再把 $ replace 成 = 就可以解決了。

至於 V1 的cookie,應該是不要用,相容性可能會有點問題。

New: Tomcat 5.5. 26 - cookie with colon in name is parsed incorrectly
Cookies behave differently between Tomcat 5.5.25 and Tomcat 5.5.26
Cookies are broken in 6.0.16?