Friday, December 22, 2006

西洋文化主導的社會?

報上提到許多中國的教育界人士跨校發表聯合聲明,抵制西方耶誕節。聲明中表示,慶祝耶誕是『是國人在文化上陷入集體無意識的表現』。「而消除西方文化影響當務之急,是先向兒童大力普及傳統文化,將讀經納入學校教育,從國民觀念入手」。

很多人把『現代化』與『國際化』還有『商業化』跟西方文化入侵混為一談。

首先,用西方文化一網打盡,根本是駝鳥的想法。西方,包括東歐與中東嗎? 同樣是美洲,光是中美洲與北美洲就有極大的文化差異,更不用說在歐洲水火不容的英國與法國了。再者,耶誕節在亞洲是跑出去玩的日子,沒有幾個人是真的在感念耶穌的。說穿了就是找個藉口出來購物唱歌跳舞,頂多了不起就是肥了開店促銷的老闆們打折扣戰罷了。若要抵制,是抵制百貨公司呢,還是抵制教堂?

個人認為,與其抵制西方文化,不如先抵制自己。中國從使用簡化字那天開始,就已經與珍貴的傳統價值脫鉤了。在全面使用簡化字的情況之下,想要說服下一代愛惜自己文化,那就只能讀前幾年才寫出來,專門避開正體字的中華字經。當年為了取得無教育革命大眾的支持而造成文字低俗化,到今天就只落得一個藉口: 十三億人都在用,所以不能改。什麼叫向下沉淪,全國使用錯別字,低俗字,就是向下沉淪。

你若是愛中華文化,請給正體字一個機會。

Thursday, December 14, 2006

Java求職者要當心的錯誤

首先是一般面試準備的部份

一、沒有辦法回答的問題請不要寫在履歷表上

這在台灣聽起來好像是廢話,但是在這裡卻經常發生。原因是人力仲介公司多半知道在大公司裡履歷表會經過職員篩選之後才會到面談人員的手上。為了能過第一關,這些仲介公司都會提醒你盡可能把現在流行的字全部寫進去。根據目前來看,五個人之中至少有一個會寫一些不存在的工作經驗。我的看法是,千萬不要上了人力仲介的當。如果你寫出來了,你就要真的能回答。等談到一半發現履歷表上是掰的,這樣後面就很難繼續了。

二、答錯時不要害羞,也請不要發脾氣

再厲害的資訊人員也是會寫出有錯的程式,更何況是回答問題。如果面試人員明確告知答案可能有誤,不要害羞,您有權力問正確的答案,也可以提出一些討論。但是很重要的一點,請避免出現防衛過當的情況。如果對方認為答錯,必然有其原因。這個時候絕不能想著要扳回面子而強行辯解,僅就問題解答提出簡單討論即可。滔滔雄辯在正式工作時或可發揮效益,然而在求職時打口水戰卻可能贏了面子,輸了裡子。當然,更要避免發脾氣而大罵面試人員問這什麼無聊沒人用的東西答不出來。

接下來是技術的部份

三、Pass by value

Java在傳遞參數的時候是傳值的,這個答案不能錯。如果怕被搞混,就乾脆背下來: All parameters are "pass by value". 細節可以參考Ken Arnold The Java Programming Language, 2.6.1.
這個答案通常是有老經驗的C語言程式設計師容易答錯。

四、cookie不是session

如果是找web相關程式工作,請避免把cookie跟JSP/Servlet session object搞混。cookie是放在瀏覽器的;session object是活在伺服器裡的。在session裡面放一萬個超大的圖檔,會先搞掛伺服器,不是瀏覽器。截至目前為止Java沒有人在搞view state這一套,所以這個答案能模糊的空間也不是很大。

五、Design Pattern: Singleton

很多人會順手寫上Design Pattern,而且第一個回答的就是Singleton。Singleton是用來保證在執行環境裡只有一個物件instance的技術。請小心,Singleton是個陷阱,因為大部份人所知道的Singleton都是抄自GoF的書。GoF的Singleton對於單程單緒的程式是可以的,但是放到Java上面,GoF Singleton有兩個大問題:
1. 當你有多個JVM的時候,Singleton作不到single instance(因為每個vm有一個instance)
2. 那怕只有一個JVM,Singleton也不能保證多執行緒安全。安全的Singleton看起來一點都不酷。細節分在另外一篇文章裡。

六、資料庫的Connection Pool用完了還是要還的

你如果用完不還,JDBC是不會自動把它回收的。這跟Garbage Collection一點關係都沒有。稍微有一些工作經驗的人應該都受過這種教訓。

七、如果是應徵程式設計師,請小心避免熱門關鍵字SOA

老實說,SOA根本是分析師或是決策人員在玩的東西。如果提到SOA,請確定您沒有把它與Web Service和Enterprise Service Bus(ESB)搞混在一起。

八、不懂EJB一點關係都沒有,不要硬寫上去

說真的,不懂EJB一點都不影響面試結果。反正EJB2現在是過街老鼠,企業避之唯恐不及,所以大可放心的說你不用EJB。今年開始不少人看到EJB3變簡單了,忙著寫在履歷表上。請小心,因為EJB3只是開發的時候變簡單,真正放在機器上跑,還是要面對原來的問題,還是要得和serialization/rmi/iiop/tcp/ip/ethernet搏鬥。如果您寫上EJB的經驗,至少要曾經deploy ear到真正的機器上跑過才算。還有,Message-driven EJB是用來『接收』的,不是用來送訊息的。

九、你職業生涯裡最有成就的例子

凡是有主管在的時候,主管最常問這個問題。準備這個答案的時候,有量化的資料最好了,例如,『因為我寫了這個工具,公司員工平均一周省下四個小時』,或是『本來系統反應時間是九十二秒,經過refactoring之後只需十六秒,快了將近600%』主管們不在乎你會不會程式語言,但是很在乎你想不想解決問題。

其餘的就真的看運氣了。

Sunday, December 10, 2006

春天大拜拜

跑去參加了Spring Experience 2006。這是Spring framework的年度大會,三天要收千餘美金。過去幾年,大企業裡的人覺得EJB的員工價錢太貴,找到了還整天跳槽,所以當Spring把自己行銷成一套便宜的企業解決方案時,一時之間許多學不會JEE的企業便趨之若鶩地貼上Spring。現在,學不會EJB的朋友終於可以大聲的喊 我們不用EJB。

儘管所有的資訊人都知道,這世界上沒有一顆神奇的銀色子彈可以同時打到鮪魚肚與膝蓋(扯遠了),但是Spring卻不能免俗的想要當一顆銀色子彈,學Java EE把所有商業規格吃下來。這就像蝙蝠俠的編劇一樣,凡是看到什麼,加上蝙蝠兩個字,就成為新產品,例如蝙蝠飛機,蝙蝠書包之類的。看起來Spring也學會了蝙蝠俠的這幾招。這三天下來,什麼東西前面通通都加上Spring: Spring OSGi, Spring JMS, Spring Weblogic, Spring Mule, 到最後還來個Spring.NET, 聽得我真的快吐了。我一直覺得dependency injection是對的觀念,而且Spring與Pico Container一樣, 是不錯的設計。只是說,真的有必要用這個方式把所有東西都沾到邊來賣嗎?

Tuesday, December 05, 2006

周杰倫出現在iTunes Store


終於在國外也有機會可以買華人的音樂
雖然我已經買過了cd 但還是會稍微支持一下

Monday, December 04, 2006

新聞是平的

一場寧靜革命要開始了。
雅虎與路透社合作 首次採用網友自行投稿之目擊照片作為新聞內容
自己寫 自己編 自己看 的時代就要來臨了
當年著名的Googlezon 2014預言 一步一步地實現當中

Saturday, December 02, 2006

核一: 核二: 核三: 核四


不是核電場。是講前幾周開打的四核心CPU大戰與伺服器虛擬化與軟體授權。

其實伺服器虛擬化已經在IBM的商業系統有好一陣子了。不但可以把一台機器當成多台來跑,也可以把多顆CPU合在一起當成一個來用,且記憶體大小也可以隨時增減。早年的IBM系統只跑專門寫給IBM的程式,因此很少有人注意到它們用了什麼軟體授權。直到這幾年,Linux與Windows伺服器虛擬化的技術成熟,企業才發現了這個新的省錢漏洞:買一套當n套用。

不僅是虛擬化影響到軟體授權方式,多核心技術也是。原本很多軟體依CPU的數量來計價。去年出現雙核心的處理器之後,只要買一個CPU的軟體就可以當兩個cpu來跑。這些軟體公司在去年紛紛更改他們的Licensing Model來因應雙核心處理器帶來的改變。算幾個CPU來計價的時代已經過去了。算安裝在硬碟幾套的時代也已經過去了。新的Licensing Model,算的是在記憶體裡存在的數目與核心數目。不管你在硬碟裡裝了幾次,每載入記憶體一套,就算一套的錢。如果你關掉一個vm,再開一個,這樣也只算一套。

前幾天打電話去Windows XP Pro的啟動熱線。接電話的印度女服務員很明顯是聽不太懂什麼是虛擬化,拼了命問我是幾台電腦。嗯。一台。

Tuesday, November 21, 2006

Java平台將在2009年自行毀滅

這兩星期Java平台的新聞焦點是: Java決定以GPL方式開放原始碼。如此一來,所有的Linux系統都可以自行在出廠時安裝JVM,不需要讓每個用戶自己上網去下載。消息一出,各方面的佳評如潮,可以說是前途一片大好。興奮的我跑進去看了原始碼,才發現JVM是用C語言寫的,看起來如同天書,有點失望,可真是C到用時方恨少啊。

然而在另一方面,Java社群其實正面臨一個全面崩潰的危機。這個危機來自OSGi組織與Java Community Process之間的衝突。Java開發者都知道,編譯好的程式可以包裝成*.jar檔案,然後就可以透過classpath把程式庫載入JVM執行。jar說穿了就是一個zip檔案,只不過裡面的目錄要按照規定排好位置罷了。因為程式庫都是在執行時期才會載入,所以從JVM的classloader結構上來看,只要有個起動程式把classloader發動起來,剩下的程式庫要用的時候再去網路上下載就行了。從這個想法來看,Java平台其實理論上不需要很大的硬碟空間,可能比Flash player稍大一點點就夠了。

Java 7 考慮採用這種模式來減低下載大小。其實同時間早已有很多人在進行同樣的計畫。OSGi希望能在嵌入式系統裡採用同樣的架構,而且已經進行了五年。另一方面,Apache Maven也已有類似的想法來解決jar dependency。這兩個計畫之外,又有兩群人很瞎的寫了兩個重疊的提案,還有某公司很瞎的兩個案子都參加了。恕我無知,但真的這幾個案子好像很多地方可以合在一起。更慘的是,有人寫信去告訴他們這個情況,但兩造都假裝聽不到。大概是在占地盤吧。

如果這樣搞下去,加上開放源碼,那麼Java 7就會步上C++與CORBA的後塵: 出現一大堆類似但不相容的產品。如果是這樣,那麼Java 7就會是最後一個讓人記得的版本了。

Saturday, November 11, 2006

六年前


整理房間的時候挖掘到六年前第一次在大家面前畫uml的紀念。
當 時正好趕上.com的尾巴 在紐約上班。 公司燒錢燒得猛,買了一台可以掃描的白板,畫完之後一按 就有一個的掃描頭從右到左從板上走,然後就印出來。現在聽起來有點好笑,但幸虧有它,生平第一次畫圖給大家看的經驗就這樣被存下來了。現在看來這圖有點畫 得莫名其妙,不過總是有個大概就是了。
後來當然公司垮了,摸摸鼻子又回到原來的豬籠城寨去上班。後來豬籠城寨也因為撐不下去被德州人買走了。

Wednesday, November 08, 2006

蘿蔔糕複製技術




之前看我媽作過,上星期因為看到在來米粉快過期了,就去買了一支白蘿蔔回家作實驗。在結帳的時候老外看不懂蘿蔔,問我蘿蔔怎麼說,我告訴他叫做daikon,可是他找了半天找不到價錢,一群店員研究半天之後決定免費送給我。於是我就用這支免費的蘿蔔參考網路上愛在廚房的食譜,複製出蘿蔔糕來。製作成功後有以下心得

1. 臘肉臘腸用拌沙拉的燻培根肉乾加三明治火腿代替即可
2. 蘿蔔炒熟後稍微去一下水
3. 抹油。容器裡要抹多一點油,不然倒出來會裂掉,很醜

Friday, November 03, 2006

CEO 2.0?

Steve Ballmer的新策略把SuSE Linux也劃進了微軟的雷達範圍裡。感覺上幾年前軟體公司梟雄爭霸的局面已經過去了,取而代之的是更開放的產品策略。昇陽的新老闆上來也是如此。有傳言說,今年底昇陽就會釋出Java的原始碼

或許軟體業的紅海戰術時代真的結束了. 希望如此.

Tuesday, October 17, 2006

64-bit 的時代來臨 麻煩大了

Intel今年火力全開,今年還沒結束,就從Core Solo到Core Duo,再從Core Duo到Core 2 Duo。今年底幾乎所有的桌上型處理器都支援EM64T。隨著明年初Windows Vista王牌登場,我想這一次是真的要進入64位元記憶定址的時代了。記憶體暴增,如果你認為這表示你的程式會因此變得飛快,你可能會失望。

今年初在IBM的midrange平台上跑64-bit的JVM。由於JVM的設計規範是以三十二位元為假設,所以一開始我根本沒想到這世上還有64-bit的JVM。當同事告訴我說JVM當掉後在硬碟裡寫了200GB的core dump,一開始還被我嗤之以鼻,還算二的三十二次方給他看。書上明明有讀過的,理論值是4GB,實際heap大小是2GB。如果系統記憶體需求量大,可以起動多個JVM分散負荷。這書上都有寫的。

同事堅持要我進去看core dump。看過這不可思議的memory dump後Google了一下,才開始冒出冷汗,原來IBM一直都在他們的midrange平台上用64-bit的JVM。趕緊跟同事道歉並道謝之後,想說這下子爽了,放在64位元JVM上面跑,一定快到不行。

上線後才知道,因為記憶體大到看不見邊,反而是系統最大的地雷。問題出在Java平台本身是靠Garbage Collection管理記憶體。通常系統會等到真的沒地方存東西了才會一次把垃圾清乾淨。因此在一般JVM上面會定期隔幾分鐘看到系統慢一下下,然後記憶體就降下來的情況。同樣的情況搬到64位元上面,就不是慢一下下了。在夜闌人靜的時候,系統開始清理垃圾,因為量實在太大。清了半天還是沒清完,於是系統決定再清一次。幾分鐘之內系統就出現類似潔癖的強迫官能症,不停的清理垃圾。

對於系統最佳化我還是外行。回去把程式重新寫過以後目前是閃過了這個問題。然而進入六十四位元定址時代,似乎程式設計者也開始要用不同的方式去想事情。嗯,希望有一天我能學會這些東西。

Monday, October 16, 2006

台灣起飛

看到這則不太起眼的新聞,但這可能是華人歷史上最關鍵的一天。
提供音樂下載現在是正當行業了。
加油。華人音樂的首都。

Wednesday, October 11, 2006

Tuesday, October 10, 2006

意思到了就好吧

到底紅衫軍要鬧到什麼程度才會滿意,我越看越模糊。

施先生是從街頭運動起家的,反政府活動是他的舞台。施先生不怕流血,扁先生也不怕別人流血,紅衫軍這樣繼續下去,最後就會傻傻的跟著人家流血。

如果你有耐心,等他下台不過就是一年多的事。
如果你沒耐心,要罷免護扁者,現在就可以做,為什麼還要等二次罷免?

民主政治應該是個妥協的結果吧,如果大家永遠各說各話拼人氣,最後就會弄成內戰了。

Tuesday, September 26, 2006

為什麼是我

到這個工作已經快兩年了。

兩年來常常會想,我的對於資料庫程序不是很強,也不懂as/400系統,對於系統管理一知半解,也不會用英文講笑話,看看身邊的人,每個人都有特殊的生存技能,我怎麼有機會到這個地方跟大家一起工作?

這兩個月開始被老闆找去幫他選人,負責電話篩選與面試。從來沒有作過這種事,一開始不知道該從那裡下手。尤其大家都是在外面混的,總覺得面試之後斷了別人的飯碗是件很內疚的事情,況且又不是要幫自己組找人,所以也沒有很認真在問。幾個面談下來,被老闆抓去精神訓話。

老闆說,『是這樣的。我希望你問點有鑑別度的東西,不要都弄些很簡單或很難的,搞得大家都看起來差不多。像早上這一位,你跟我說這個人還不錯,為什麼其他兩個人都說他不行? 』

這一問把我嚇到了。原來放水放太兇影響到的是我個人的信用,這不是個小事情。我不懂as/400系統,對於系統管理一知半解,也不會用英文講笑話,若信用再破產,那就比阿扁總統還麻煩了。

接下來趕快調整方向,開始認真問問題。慢慢步伐調整過來以後,幫老闆從將近二十個人裡挑到了兩個(其實是三個,有一個最後決定留在原公司),老闆放心了很多,我也了解到,其實找人不是光是看程度,還要看態度。凡事設身處地去想,如果這個人到我組裡工作,會不會弄到大家瘋掉。作這一行,最重要的是說話與聽話(辦公室裡最常聽到的一句話就是:『你什麼時候改的?我怎麼不知道!』)。如果在面談的時候就感覺到這個人真的很難溝通,或者沒有什麼熱誠,那接下來的風險就很大了。

慢慢了解到一個不懂as/400系統,對於系統管理一知半解,也不會用英文講笑話的人,為什麼能有這樣好的運氣。或許每個為什麼都有個答案。

Wednesday, September 20, 2006

惱羞成怒

惱羞成怒,這是程式設計師到中年最常出現的狀況。

常會聽到有些同事在改程式改來改去改不好,弄得心浮氣燥,乾脆怪科技不好。『想當年用某某技術的時候,我一個人寫就寫出來了』『為什麼不趕快發明一種電腦語言簡單又能做事的就好了。』說也奇怪,機器越來越進步,照理說人要管的事情應該是越來越少才對,怎麼每年各行業在資訊科技上的支出還年年增加呢?

這是一個完全停不下來的產業。跟著跑,跑不動了就要認了。希望十年後我不會是在後面邊追邊罵的中年人。那種狀況蠻醜的。

其實好像不只是程式設計師,在街上很多中年人好像都會這樣,想來想去找不到施力點,怪到總統不好。巧得是總統也是中年人,找不到施力點,最後就怪施明德不好。

Wednesday, September 06, 2006

台灣走出去的第一人

我看到這個簡直快瘋了
http://en.wikipedia.org/wiki/George_Psalmanazar
這個人十七世紀在歐洲自稱是台灣人在貴族之間騙吃騙喝

Tuesday, August 29, 2006

超搞怪的外掛程式

http://ietab.mozdev.org/
讓你在火狐裡面執行IE
台灣榮譽出品

Tuesday, August 15, 2006

SOX: 資訊部門的頭痛話題


Sarbanes-Oxley, 簡稱SOX,是這幾年來美國資訊部門最頭痛的話題。故事源自公元兩千年的恩龍案(Enron),靠著自己給自己錢報出了空前的業績,然後一夕之間垮台。政府一見情況不對介入查帳,誰知為時已晚,資料多被銷毀。恩龍案之後,政府才驚覺原來所有的企業都可以用自己的方式『闡述』業績,你說是賺就是賺,說是賠就是賠,就算你查也查不出是真的還是假的。因為這樣,美國政府迅速推動了一套法案,強迫所有與營利有關的系統,全都要留下記錄。

很不幸的,大多數的資訊系統都是有關於錢的(否則也不會發薪水給我們)。因為這樣,所有跟美國沾到邊的東西都要符合SOX的規定。因為有了這些規定,哪怕只是在訊息裡多個句點,都要寫報告呈上級批示。因為當年一小撮人的貪婪,造成我們多少軟體工程師在水深火熱裡寫報告。

如果總統府當年也好好留紀錄,大概就不用麻煩李慧芬女士跑半個地球拿著裝發票信封回來倒扁了。不知道下一代的陽光法案,會不會讓台灣的企業軟體工程師也陷入這樣的無間道?

Tuesday, August 01, 2006

冰原歷險記



其實是沒有歷險啦。但走到冰原上倒是真的。
搭直昇機俯瞰冰河邊界,沿著飛到上游冰河上面降落,原來人是可以活在冰上的。哈士奇犬的體力相當驚人,而且我本來很擔心要狗狗拉雪橇,會對不起可愛的狗狗們。很讓我意外的是,當我們靠近時,每隻狗都搶著要拉雪橇,連想叫它們停都不容易。或許人的天性就是好吃懶作,也相對以為自己的寵物也像我們一樣。這讓我聯想到我自己。好幾次晚上在公司作到深夜,接到朋友打來的電話。明明作得還滿專心/開心的,朋友卻二話不說就認為我『很可憐』。嗯,似乎哈士奇犬比某些人對生命更要有熱忱。

Friday, July 28, 2006

阿拉斯加之旅


我爸媽從台北出發,我從邁阿密經紐約跟他們在安哥拉治會面,展開我們家難得一起出國的旅行。遊輪的中文名稱是『海洋燦爛號』。船從阿拉斯加往東南開,經過冰河區七天,然後在溫哥華下船。從安哥拉治機場到碼頭的路上,看到山谷裡一大片一片白色的區域,冰冰的好像河一樣,從來沒有在夏天見過這麼多雪的我,以為那就是冰河,後來才知道我很土。山谷裡面那些白白的,只是積雪。

直到船開到冰河出海口,我才了解原來真正的冰河是藍色的。

Thursday, June 22, 2006

拒絕服務

已經第四天了,系統還是在『上線中』。

一路上不停的踢到鐵版。

資料轉移在延誤兩天之後順利結束,大家興奮極了,急忙把系統放上去打開來玩。其實第一天的資料轉移是個警訊,是系統強度的縮影。會延誤兩天不是沒有原因的,上線後幾分鐘,就看到CPU利用率暴增,IO暴增,連線逾時被踢出去的問題。這是我這輩子第一次親眼看到Denial of Service拒絕服務。原本大家興奮的心情一瞬間盪到谷底,開始悶著頭找問題。基本上這就像是你開了一家超市,員工就位,收銀機起動,但卻因為顧客太踴躍,大家還沒有到門口就互相踐踏掛掉了。任憑你店裡再美,員工再好,進不來就是進不來。

老實講我以為大家會像我以前的單位那樣,靜靜地看這我們計畫死掉。然而這七天,全公司相關的主管都動員起來,輪流照顧我們的伙食,一天一夜後,我們重寫了三分之一的stored procedures,系統開始有了起色。OS/400對我來講完全是個神秘的系統,還好公司裡的專家們不停的進來我們戰情報告室幫忙,十二個小時不停的輪班分析是IO太重還是CPU太重,甚至還請出了幾個原廠資料庫的設計大師出來解題,所以幾乎每天都看得到成長。兩個DBA輪流上陣抓瓶頸,兩個系統管理員輪流坐鎮,還有兩個作業系統專家輪流調整設定,更不用說我們程式開發小組全天候待命了。

在最艱困的那幾天,一頭白髮的副總裁在半夜驅車來IT部門為我們加油。每一次重新起動就是一次新記錄。七天後,我們的系統終於百分之百運轉上線。我從來不知道一個計畫的成功背後會有這麼多的力量,除了感謝,還是感謝。真的很幸運,能與這樣的同事一起工作。

Sunday, June 18, 2006

我要勇敢

系統上線日。

籌備長達五年的系統終於到了上線的時候,前幾年一直系統難產的低氣壓也因此漸漸有了變化。最初計畫剛成立時,閃亮到登上雜誌裡面。一年一年過去,計畫承諾越來越大,完工卻遙遙無期,最大的計畫成了最大的笑話。環繞在中大型主機系統與微軟平台的我們,就成為樓裡最低調的一群人。

後來公司調來一位專案經理,這位經理上來之後,把計畫的範圍明確的畫出來,沒在範圍內的一律幫我們推掉。幾個月的時間,計畫開始有了轉機,甚至出乎意料地在今年上半年就能上線。

我們系統今天上線,目的是要取代原本的舊系統。既然要取代,就要把舊系統的資料轉移到新平台上。因為設計觀念與商業需求的增加,新舊系統的資料模型有很大的不同,因此不是說把表格轉一轉就能解決的。也就是因為這樣,我們必需要先把舊資料匯入新系統,再轉存成新資料。我知道這聽起來很遜,但資料轉移真的是很大的工程,只要漏報一筆,就會讓大家擔心是否轉換有瑕疵。這還不是最慘的。最慘的是,別人的計畫資料是死的,例如上個月的帳目這個月還是不變,所以可以在上線之前提早處裡。而我們的資料不能作這種假設。因為這樣,我們必須要在系統維護期四十八小時內把用戶導出去,然後把熱資料完整轉移上線,否則就要退回原點。

這就是一切問題的來源。在這四十八小時裡,我們遇到了想像中與想像外的各種狀況。系統比預期的轉移速度要慢了好幾倍,而且,就在接近一半的時候,報出了核對結果有誤的惡耗,原資料品質有問題,而且不只一處。一路上找出了好幾種修正程式,想辦法補救轉移後的資料。這時有了兩種不同的聲音。

一派人主張先完成,再回來修整。我的師父認為要往回退,從第一次出錯的那點起,重頭開始。既然前三十六小時累積了資料品質的經驗,後面要重新開始應該不是難事。兩派人爭議不斷,我卻沒有勇氣挺身而出。我是贊成重新開始的,但卻不敢承擔丟掉三十六小時的風險。對於自己的不夠勇敢,我覺得很遺憾。

我丟掉七年的時光找到自己最喜歡的工作,卻因為擔心喜歡的工作而捨不得三十六個小時。妥協的人永遠只是笑話。希望我能夠勇敢一點,不要再作一個妥協的人。

Monday, June 12, 2006

大船入港




上星期全世界最大的遊輪開到邁阿密來了
趁著公司之便參加了一個小時的快速導遊
這船還真是大到有點扯
裡面還有一條商店街 好像捷運地下街那樣

Friday, June 02, 2006

VB6回來了

今年的Java One研討會跑出來一個怪東西:Project Semplice

這個計畫使用Visual Basic 6來寫Java,想必是要吸引還沒有轉換到的系統改用Java。

想來有點好笑,先是Java帶走了VC++的程式員
然後是C#帶走了Java程式員。現在Java再想要帶走另外一批VB6。然而根據目前的計畫進度,我想,要能吸引VB6程式員還很早。VB會受歡迎,不是因為他語言本身有多優雅,而是廣大的OCX/VBX元件。如果不能面對現實讓它運行Windows的元件。那麼就不可能有人願意轉換。這是最難的一部份。

不管怎麼樣,還是覺得有這些點子也蠻好的。

Saturday, May 20, 2006

炸彈開花





炸彈開花這個詞大概你也很久沒聽過了吧。小時候記得國慶閱兵的時候都會有這個,還有花木蘭與金馬自衛隊。
前幾天跑去看藍天使中隊表演F-18特技飛行,人山人海。不禁讓我想到小時候軍容壯盛的中華民國時光。
老媽說,軍容壯盛犧牲很多人,不值得。
說得也是,但我還是蠻懷念當年的台灣。起碼孩子們的心裡很驕傲自己的國家。

Saturday, May 13, 2006

美她‧帶她

"Metadata"
同事跑來聊說什麼是web2.0。
似乎大部份人對web2.0的第一印象就是AJAX,Asynchronous Javascript and XML。對我來說,AJAX只是前端技術與後端通訊的自然演進。web2.0其實主力在於semantic web。

Semantic web的想法很簡單。平常我們常會上傳一些照片,日記,或自己家人的影片在網上。如果能適當的提供一些註解,那麼看照片的人就會有更多的心得。同樣的,讀一篇文章如果能先看到題目,會讓人更容易進入狀況。這些註解題目等等不只是一般人可以讀,更重要的是可以由機器判讀,進而分類,整理,搜索。這些在本文之外的資料稱作metadata。

第一次聽到semantic web這個字是在學校裡,我們資科所的一個老師在做這個研究。當時是1998年,也是.com的全盛時期,因此沒有太多人注意這個題目。這些研究在兩千年左右陸續有人發表,然而不幸的是到了兩千年.com垮了,一夕之間做這一行的被大家當成詐財集團,所以研究歸研究,並沒有立刻被用上。直到後來rss受到大家歡迎,semantic web才得以重見天日。W3C標準組織旗下現在有一大堆的相關研究,而且許多網站也都開始加入這個概念。最典型的例子就是podcast,每個作者在上傳mp3網路廣播的同時,也要提供文字標題,長度,作者,以及其他連結。還有就是目前最強照片網站flickr,加入後用一次就會知道metadata的意義。

網路是死的,人是活的。很高興web現在越來越接近人。

Tuesday, May 09, 2006

免錢的PDF文件產生器

有Word檔案,想要轉成pdf格式嗎?

http://www.thinkfree.com/

免費的線上軟體,可以讀取所有的office檔案。

Tuesday, April 25, 2006

麥當勞加入食品成份標示的行列


今天發現麥當勞的新包裝
上面明顯標示了熱量與各種成份
蠻好的
雖然一樣在吃
但看著標示吃 好像有比較健康的感覺。
吃到一半想一想,決定切一半留著明天吃,這樣就只有兩百八十大卡。
當年瘦下來就是靠著切一半達成的。。。

Sunday, April 23, 2006

Beyond Java



『Java已經死了』
這是我當年開始學這個程式語言就想像得到的評論。回想一九九九年報出Java就找得到工作的人,志得意滿的宣佈C++的死亡。同樣在幾年之後又有一票人宣布BASIC的死亡。有趣的是,通常宣布某種語言死亡的朋友,過不久又會從他那裡聽說另一種語言的死訊。

今天在書店站著翻完了Bruce Tate的書"Beyond Java"。這本書的作者是一位Java暢銷書作家。書裡很中肯的指出Java平台面臨的問題,以及將來不可避免的衰退。Java在第五個版本時作了很大的改變,最明顯的就是meta programming與Generic。Generic的出現,引起極大的雜音,包括當年撰寫第一本Java程式語言書的Ken Arnold都跳出來警告大家

書裡面提到一個有趣的論點: 其實Java的未來,最大的變數不是Generic,也不是什麼Virtual Machine。Java未來最大的變數是:Sun Microsystem,也就是Java的發明公司。Java語言或許會永遠存在,但Sun卻不一定。這一點可以從IBM主導所有Java商業規格看得出來。

接下來,作者開始介紹下一波是什麼,然後我就不敢領教了。作者說,下一波不是.net,因為那只是微軟版的Java,沒有本質上的不同。那麼,下一波是什麼呢?是Ruby。喔。啊。原來,作者要改行寫Ruby的書了,趁機利用Java最後的剩餘價值,狠狠的踩它幾下,以呈現Ruby清新的形象。我個人認為Ruby是不錯的程式語言,也解決了很多Java當年的矛盾(primitive vs object and boxing),不過,要說這就是下一代的語言,我倒是蠻失望的。新的程式語言最喜歡強調幾行內就可以寫出一個什麼什麼。說真的,要比這個,那Visual Basic早就是冠軍了。


我堅定的相信每一種語言的存在都有其意義,也堅定的相信所謂落伍的語言通常有深刻的內涵。宋詞,元曲,這種語言夠老的吧,也是有人能從這種古老之中找到深意,找到工作,還養大了一個小孩。老爸老媽給我最大的啟示就在這裡。如果你看得到語言的內涵,語言便不朽。中文,英文,BASIC, Pascal, C++, Lisp, 從來不曾,也永遠不會落伍。

觸不到的珊卓布拉克

還有觸不到的基努里維。
韓片『觸不到的戀人』在美國翻拍了

這星期去看了一部叫American Dreamz的電影。商業電影的陣容加上獨立電影式的劇本,我很喜歡這部電影。在電影放映前的預告片看到珊卓布拉克放信到信箱,然後基努里維就開信箱,馬上出現熟悉的韓片場景。電影名稱是THE LAKE HOUSE.

Wednesday, April 19, 2006

Tiger on Tiger 老虎的畢業典禮

終於等到這一天了...Java SE 5 (Tiger) is finally the official Java VM on Mac OS X Tiger. 其實在Mac OS X Tiger發行的時候,Java SE 5 (Tiger)就已經在Mac上有第一版了。IBM的伺服器也有類似的抵抗。WebSphere系列到目前為止還是建議使用Java 1.4。可能是顧慮到相容性,所以Java SE 5 (Tiger)一直沒有在mac上成為主要的jvm。感謝蘋果終於讓tiger畢業了。

Monday, April 17, 2006

不可思議的中時電子報


經過長期閱讀中時電子報之後,我發現它竟然比百慕達三角洲更不可思議。可以說是當代最牛頭不對馬嘴的一份幻覺媒體。是的,這就是那個把黑道偷拍硬說成是于冠華上賓館的報業。

台灣委託美國發射衛星(見圖)。同一天的報導,一個說"美方卻不同意台灣在火箭上噴上...象徵台灣的字樣和圖案",並照了一張美國國旗的照片。另一則新聞,注意囉,講的是同一支火箭,嘿嘿,這則照片說:"台灣,GO!GO!GO!",照片上看到大大的台灣字樣。同一份報紙的同一則新聞主題,兩個完全相反的訊息。

今天引用中央社的消息就更離譜了。這篇報導談到台北市的人口統計數據:"大安區,有三百一十二萬人,南港區最少,有一百一十三萬人"這樣換算回來取中間值兩百萬乘以十二個行政區,台北市應有兩千四百萬人左右,比全國家起來還要多,因此外縣市就會有負人口出現。正人加負人等於沒有人,這就是真正的百慕達三角洲呀!

怎麼中央社會寫出這種東西,又中時電子報怎麼會就這樣照登?

中時電子報原本就不適合在上班時間看,因為會在背景跳出會唱歌的廣告,很丟臉,而且會把Mac搞到當掉。現在恐怕連回家也不適合看了。這樣的新聞品質,也難怪蘋果日報之流能在台灣稱霸。

已將中時從我的書籤裡刪去。剩下聯合電子報一家了。

Thursday, April 13, 2006

狗就狗...叫什麼谷歌

今天看到報紙,Google決定取名叫『谷歌』。

...頭皮忽然一陣麻

天啊~ 好土啊~ 救命啊~ 啊哈哈~

奇怪人家雅虎聽起來就不會那麼彆扭。Google這個字本來就是創來搞怪的,取一個那麼端莊的名字真的太沒有創意了。是因為這樣比較能得到農民的支持嗎?

中國的網友反應如下:
http://www.noguge.com/

Friday, April 07, 2006

蘋果自己來

蘋果前天發表了Boot Camp測試版,(新生訓練營,蠻可愛的名字)
boot camp讓現在的Core Duo Mac可以灌Windows XP。因為新的麥金塔電腦根本就是一台PC,所以只要驅動程式到手,其他都不是問題。我想今年底如果Leopard作業系統如期發行,我就會考慮買一台來玩玩。畢竟這個聖誕節沒有PS3,沒有Vista,又不想買xbox360,大概就會用這個犒賞自己一下。不過是不是要買來灌xp倒不一定。

Saturday, April 01, 2006

電影 第七感追緝令

剛剛跑去看了莎朗史東第六感追緝令續集。

本周首映,現場座不滿一半,而且多半是老人。明明女主角只抽煙沒喝酒,但是講出來的話卻顛三倒四的,開演之後全場笑聲不斷,大家都快被裡面的對白給搞瘋了。我雖然錯過了開場的十分鐘,但還是可以體會出本片與首集一樣的糟糕。相信這部電影一定能為莎姐贏得金酸莓獎的提名。

Thursday, March 30, 2006

寫程式還是寫日記


不知道是什麼道理,想到自己的程式第一次放到投影機上的那一刻(這裡我指的是平常上班被趕著寫的程式,不是指那些特別寫來展示的程式)忽然有一種日記被公開的尷尬。這種感覺有點類似被叫起來唱歌給別人聽,或是老師要你在班上唸自己作文那樣。不過這種心情只會發生一次。後來體會到原來大家寫程式都是這樣的,也就不會那麼擔心了。很多程式師愛自己的程式跟愛兒子一樣,要是看到在裡面被年輕的同事加了幾行字,馬上拿起電話打來罵人。老實說領人薪水寫程式,就算寫得再好也不是你的。為了幾行字動氣真的太辛苦了。

一直想找機會試試pair programming,也就是兩個人用同一個螢幕寫同一段程式。我的好主管最近安排了一位同事跟我一起工作,這位同事住在離我兩千兩百哩的新墨西哥州,用vpn連上公司上班。我利用這個機會來實驗,用VNC共用同一個畫面來寫程式。

這位同事是非常優秀的大型電腦程式員,對於公司的運作也很熟悉,但是對於Java則完全是新手。一開始我也懷疑這樣在頻譜兩端的兩個人在一起會有什麼交集,而且看到她改我的程式,改得有點平,心裡是有點在滴血的。不過這個疑慮很快就打破了。有趣的是,當你知道有另一個人盯著你的程式看的時候,你會用不一樣的思考方式看自己的程式。尤其在程式出狀況的時候,找個人一起看,最後往往還是自己找到錯,但是若一個人關起門找,可能會花更多時間。

個人感覺pair programming最大的貢獻的是:把程式員的面子擺在一旁,讓寫程式不再像寫日記那樣隱密。

Tuesday, March 28, 2006

瀑布式開發者 Waterfall 2006


這是Waterfall 2006超級大瀑布軟體工程研討會的連結。是一個介紹如何能運用瀑布開發提升職員工作保障,增進工作時數的研討會。


看完了嗎

這個網站是上來惡搞的,但是我之前在通訊業工作的老同事們似乎都不太能理解。我寄給六個老同事,只有一個人覺得好像是怪怪的。

其實瀑布式的開發週期已經根深柢固,這個方法在工程界已經用了幾百年。就包括IBM前幾年熱炒的Rational Unified Process(RUP)說穿了也就是個超大的尼加拉瓜瀑布,加上幾個小漩渦而已。說也奇怪,不管是用什麼工程方法,似乎永遠都有人失敗,有人成功。

柯波帝與曾志偉

看完了柯波帝;冷血告白
男主角是本屆奧斯卡影帝得主
但是看完以後一頭霧水
他 演得一點也不像故事本人啊
好像在模仿曾志偉
這樣也會得影帝?

Monday, March 27, 2006

Sega遊戲機從棺材裡爬出來了

自從Dreamcast慘敗在Playstation之後,Sega就像Commodore一樣,成為五六年級老人的代名詞。
不過今天看到這則消息:
http://biz.yahoo.com/ap/060323/nintendo_old_games.html?.v=2
買任天堂Revolution,就可以玩Sega的老遊戲。讓我想起當年Dreamcast在經典遊戲"莎木"之中藏著Genesis古代的遊戲,要去遊戲裡的雜貨店買,然後插到遊戲裡的遊樂器裡玩。啊,那美好的十五歲。

Thursday, March 23, 2006

Vista延遲上市

昨天大概是PC相關產業今年度最悶的一天了。微軟宣佈,新版的作業系統不會趕在耶誕節購物季上市。要買到內建Vista的電腦,等明年吧。此話一出,微軟的股價立刻趴在地上一整天,順便拖垮了所有相關產業股價。

其實我覺得延後上市對微軟的影響應該是不大。可惜手上沒有足夠現金,不然這是買微軟股票的好時機。以微軟在家用作業系統市場上的地位,他說延後,你能怎麼樣。

何況送耶誕節禮物目的是為了換來對方的一聲"哇",這個時代會對著PC哇的人應該不多了吧。對於vista會影響耶誕節買氣,我很懷疑。如果是那種超小的UMPC,我倒是願意哇一下。要買一台實用的UMPC恐怕要到後年了。

今年耶誕節我猜Sony會在店裡擺出他們的Playstation3『樣本』,鎖在玻璃櫃後面造成缺貨的氣氛,重演當年用缺貨打垮Dreamcast的戲碼。如果Sony擺不出樣本來,那麼今年耶誕節仍舊是微軟XBOX 360的天下。所以,微軟賺到你的錢只是遲早的事。當然,若干人會因此選擇蘋果(例如我)。不過我並不覺得這樣的人會很多。

乖乖的等吧。

Tuesday, March 21, 2006

微軟老闆

點這裡看微軟老闆的訪問內容

平常看到他都是在台上發表新產品 或是在電視上接受記者連線
很少有這種在場邊坐下來訪問的
感覺不錯 不會聽到太多冠冕堂皇的話
http://news.com.com/1606-2_3-6051773.html?part=rss&tag=6051773&subj=news

Sunday, March 12, 2006

卡崔娜颶風紀念

這是去年吹垮紐奧良的卡崔娜颶風。當時風還沒來,不過已經看到天上的異象。雲裡面出現彩虹。可惜照片不夠明顯。

Saturday, March 04, 2006

終統? 沒人理你

連續幾天國內的報紙以大篇幅報導陳總統終止國統會的運作,還有什麼大規模的反制,以及中國發表強硬的聲明等等,好像這真是件大事一樣。然而在美國的媒體,沒有一家在追蹤報導。只有幾家大報在小小的角落裡寫了幾行,報導篇幅比越南發現禽流感要小得多了。

這表示什麼? 是表示終統進行順利嗎? 不是。這只證明了台灣在國際的政治影響力已經到了完全可以忽略的地步。國家真的很弱了,修憲改國號恐怕也上不了國外的媒體。政治人物一個一個都得了大頭症,自己幻想在進行著不朽的功業,其實只是在後院挖地瓜。專心拼產業吧,沒了半導體,台灣只是另一個菲律賓。

兩百億台幣的專利


轟動全美的黑莓專利侵權案昨天在終於以兩百億台幣的價格達成和解了。

我先來解釋一下黑莓(Blackberry)是什麼東西。那是一個有小鍵盤的通訊設備。兩千年的時候他們作雙向文字呼叫器,很受到華爾街上班族的青睞。後來市場慢慢擴大,也開始進入電話市場。後來變成每個高層人士的必需品。
當開會的時候,你常聽到老闆的大拇指在那裡很認真的按來按去。據估計美國有三百多萬的用戶。這個數字聽起來沒什麼,但是在無線通訊完全落伍的美國來看,算是相當多的了。

它有自己的伺服器push傳送技術,也提供了與domino或Exchange server整合的解決方案。就在這個業績成長的時候,有一家專門收購專利的公司說,我手上擁有黑莓伺服器的核心專利,我要告你。

其實這家公司把專利放在手上好幾年了,明知道黑莓侵權,卻不急著點破。慢慢等到豬養肥了再宰。從法律上來看這是站的住腳的。但是想一想,一個公司拿著一份專利晾在那裡十幾年不作任何事,這樣的行為究竟對人類社會有什麼幫助? 這樣的專利法,究竟在保護什麼?

另外也聽說一家相當知名的作業系統公司,在市場上大舉收購了與Linux相關的專利,等待生存受到威脅時做最後的反撲,讓企業對Linux卻步。

凡法律必有漏洞,但是這個漏洞已經開始影響的科技的發展了。智慧財產權真正保護到的,只是律師與法官的飯碗。

Friday, February 24, 2006

地球是平的

公司裡一位資深程式員最近自栩為系統架構師,接掌兵符,對於公司資訊系統進行所謂的總體檢,希望能帶領公司走向服務導向架構(SOA)。這位大哥推動SOA第一件事,是要建立統一的資料架構。他拿個了一個試算表把所有的資料庫欄位都列出來一個一個對,然後試著取最大集合,弄出一個超大表,可以裝下所以人需要的內容。

比如說,小狗。系統A只需要小狗名字跟主人名字。系統B需要該種小狗物種分布區域,易發生之傳染病等等。你説這兩個東西能湊成一張大表嗎?

再者,統一模型跟SOA有什麼關係?

這年頭的程式員工作遇到瓶頸大概都是走這條路:去Google抓兩篇SOA的圖片看一看,然後就可以自栩為系統架構師。開會時只需不停的説Pattern即可。需要說服上級時,則不停提到SOA。一但喊出SOA,哇,那簡直就是號令天下無所不從。

第一,這位大哥在推的是資料庫合併,不是SOA。
第二,這位大哥想像的SOA,其實只是遠端的DAO,remote Data Access Object。

回去打聽了一下,才知道這個大哥是做mid range系統出身的。在mid range裡面,不是buffer就是file/member。很自然的他的一切想法從資料出發。想法並不是錯,只是不要老什麼東西都說成SOA,那會讓我很高血壓。

SOA是一個企業策略,不是一個程式語言,程式庫,產品或平台。很難跟程式員解釋為什麼。

Wednesday, February 22, 2006

從藝伎回憶錄往外看

老實說,一本美國人杜撰的日本故事能夠有人讀就已經是奇蹟了,何況是找中國人拍成電影。

藝伎回憶錄在美國上映之後,可能是我認識的朋友們太沒有藝術氣質吧,個人身邊沒有一位朋友認為好看。一個女性要吸引男性,不得搔首弄姿,更不可以說出來,要間接拐彎抹角把敵方給鬥垮還要假裝純真,放火燒房子後還要一臉驚喜的迎接心上人,這真是要看醫生了。

該片在中國當然是一陣躂伐。聽說在日本也引起許多雜音,甚至傳出日本籍顧問要控告製作單位亂拍。

在台灣,我認識的朋友們則是佳評如潮。

電影本身是無辜的。它不會因為放映地點的不同而改變原創的企圖。然而從觀眾的反應來看,我們卻可以發現台灣觀眾對外來文化的獨特見解。相較於所謂大國強國,其實台灣最美的地方就在於它失去了自己的形狀。因為沒有形狀,台灣可以接受任何詭異的文化融合產物。從這裡我感覺到台灣海洋文化的包容性,也看到下一代的希望。也許,台灣真的有那大和解的潛力。

Sunday, February 19, 2006

謝謝孫運璿院長

今天花了一個小時看了孫運璿傳。
http://www.hichannel.hinet.net/media/75/15188.htm
台灣什麼時候才能再看到工程師擔任領袖人物呢? 或許在民主發展以後再也不可能出現了。
謝謝孫先生。若不是您當時的堅持,台灣不一定會有今日的資訊與半導體產業。
永遠的領導典範─孫運璿

Thursday, February 16, 2006

Google又打了我一耳光

Gmail信箱旁邊最近出現了一個框。框上面寫著我可以點這裡在瀏覽器裡面跟其他gmail的朋友即時聊天。不用安裝通訊軟體,也不用外掛或內嵌程式。

用dhtml做即時聊天? 「不要鬧了。這技術上有根本的困難嘛。」想不到一試才發現,Google真的又作到了。沒有使用新的虛擬機器,沒有使用新的程式語言,用的就是那一套大家都懂的東西,做出大家都作不到的事情。

Saturday, February 11, 2006

小強怕拖鞋 程式員怕xml

最近這個星期發現一個怪現象:XML真可怕。

前幾天一場簡報,向資深的資訊部門大頭們報告我們設計的核心系統。這些人都是有很久經驗的Java開發者,也都是帶領程式團隊的人。核心系統是用平凡物件(POJO)為底,配合適當的design pattern,可選擇使用ejb或是web service做為傳輸層。因為採用低耦合設計,所有實作都是在執行期才載入,使用xml做為設定。

講到ejb,design pattern,大家點頭如搗蒜。
一說到執行期(runtime),還有xml,忽然現場大亂。

第一網站部門的組長率先發難。『執行期連結最爛。沒有靠編譯器檢查,很危險。你(指我)很沒概念。』雖然做這行也很久了,但新公司我加入才不到一年,有點被這樣忽然的狀況唬住。『沒錯,黃組長說得對。』第二網站部門的組長立刻呼應。『還有,用xml設置軟體根本就是一場惡夢。當年我們系統開發的時候,幾十個人一起搶web.xml,簡直是亂成一團。你(當然還是我)真是搞什麼。』

總架構師是個好好先生,出來當合事佬,對著我說,『對對對,這真不是個好方法。』

會議結束,回去的路上我在想,可能我之前在黑鴉鴉幾千人的大恐龍資訊部門作久了,對於軟體寫好要做單元測試,整合測試,系統測試,使用者接受測試,作業準備測試等等當成常態。怎麼可能會有『runtime沒設置好,很危險』的問題。這不是在整合測試就會看到的問題嗎? 在者,什麼樣的管理與設計會去讓幾十個人搶一個XML呢?

下午,另一個同事找我去幫他弄J2EE的安全設置,當然這又是XML。同事的炮火猛烈。『這真是個爛東西,還要改XML。你看那微軟產品就只要下一頁,點點點』。

身為程式員,多希望這世界上只有一種科技就好了。新科技不斷給新人製造機會,真是可怕。帶頭的怕,底下的更怕,我想,我也該多怕一點才好。