Nov 16, 2010

糖兄妹

真是夠可愛的組合與歌詞.

http://www.youtube.com/watch?v=mej6xn7cje8&feature=recentlik



今天晚上在系辦吃龍姐牌電鍋加熱的午餐便當

今天早上學校辦消防演練, 中午有便當, 打羽球打完就回去睡覺了.

佳惠把便當放冰箱, 還好龍小姐有小電鍋, 不然我也沒東西可以加熱....
雖然看起來跟狗食有那麼幾分相似, 但是吃起來也還OK啦.

Nov 9, 2010

軟體

軟體公司注重的不是科學, 是工程。

如何利用流程的最佳化與軟體架構, 在最短的時間內做出bug最少的產品,

並且減少未來維護的成本, 利用行銷技術銷售到全世界, 才是公司要注重的事情。



微軟的技術一直都不是最新的, 這也沒什麼好質疑的, 也不算什麼錯誤,

最新的技術不表示穩定, 採取保守作法以換取穩定, 是很合理的策略。


有一個很老的故事,

在一個房間裡發生火災, 數學家被火災警鈴驚醒, 動腦想了一想,

「用水就能解決這個問題了」, 然後他想完了, 很開心, 就回去睡覺了。

隔壁房間的科學家也被驚醒, 他衝過來搖醒數學家, 數學家告訴他用水就能解決,

然後科學家計算出如何用最少的水滅掉火災, 花了一個小時,

中間不斷進行修正, 最後順利把火給滅了, 而且床是乾的, 他回頭繼續睡。

再隔壁房的工程師的房間也起火了, 工程師也去問數學家要怎麼滅火,

然後他在三分鐘內, 用幾乎把房間淹沒的水把火給滅了,


然後收拾一下, 把能帶的東西都塞進濕掉的包包, 就跑到別的房間去睡了。


數學家做的一向是基礎工作, 能不能實作並不在他們的考量中,

科學家利用基礎, 研發出可以解決問題的最佳解,

而對於工程師, 我們相信他一定能解決問題。


軟體的好或不好, 對消費者而言看不太出來, 重點是好不好用,

消費者不關心背後的科學基礎是什麼。

我要連PTT, 那我用來連PTT的軟體只要能連上去, 基本上這個軟體就合格了,

我到去年都還是用Netterm 3.41, 後來是因為pcman可以拷貝彩色字串才換....

也許某個連BBS的軟體佔用的頻寬是最少使用量的兩倍, so what,

不要讓使用者知道就好了啊。



回到原問題, 微軟在很久以前就有研究院, 這並不表示微軟會拿研發成果應用在產品上,

第一, 實用性高不高?

在Office裡內建情書產生器有沒有搞頭?

在MSN裡內建地圖引擎有沒有搞頭?

第二, 實作的成本高不高?

做下去會不會托延到產品上市日期?

後續的bug會不會很難維護?

軟體的體積受影響的程度如何?

第三, 和合作廠商的合作關係?

什麼東西都給你做出來了是要怎樣, 別人還要不要活啊?



所以有些產品的功能是屬於夠用就好,

用excel的繪圖跟origin的繪圖來當例子, excel沒必要實作那麼多種繪圖模式,

有需要的人自然會去買別的軟體來用。方程式編輯器跟MathType也是一例.

反正別人做, 自己做, 都是based on windows.


Office系列基本上是有需求才有供給, 因為客戶需要, 所以我們提供這個功能,

而不是我們提供這個功能, 再去推銷給客戶。

是因為你要交報告你才去用Word, 而不是因為你用了Word, 老師才要你交報告。

(如果你的報告是「Word使用心得」....那另當別論....)

微軟沒必要在Word上套用最新科技, 客戶要客機, 沒必要去做一艘太空船。


遊戲剛好相反, 是先有遊戲才有玩家, 很少有遊戲是為玩家的需求或配備量身訂做的,


所以最新的3D引擎最快的render技術都可以用在遊戲上,

跑不動就不給你玩.


最好用的軟體, 最好賣的軟體, 應用最新科學理論的軟體,

為什麼會把這三種東西扯在一起看呢?


每一家公司都要注重電腦科學。懂了原理之後, 在最短時間內實作出來並且

讓客戶願意掏錢來買的那家公司, 就是成功。

不懂電腦科學, 只能土法鍊鋼拉長研發期, 還不一定做的出來,

不懂行銷你賣不出去, 只懂技術不適合開公司。


===============================================

電腦科學的價值在於發現未知的可能,

電腦工程的價值在於實現已知的可能.


基本上, 你買的到的軟體都是透過電腦工程來實現的.

DB2是以電腦工程實做出來的, 裡面的Data Mining功能是基於電腦科學的理論實做.


研究電腦科學的人只提出一個模型一個理論, 或是一支可以驗證其想法的小程式,

怎麼把這些模型應用在解決商業界的問題? 是MIS的事情, not CS.

怎麼把這些模型實作出來並上市? 是苦命工程師的事, not CS.

修改原始碼, 讓程式跑更快, 也不是CS的事。

在32bit的年代去思考64bit或128bit能帶來什麼樣的好處, 是CS.


研究在不考量成本時如何讓無線網路速度更快、傳輸距離更遠, 是CS.

新的加密方法, 癌症預測的模型, 是CS.

流浪博士

在版上的同學們會有人擔心自己變成流浪博士嗎?

不是很喜歡流浪博士這種稱呼,失業有很多理由很多原因,

研究所不是職業訓練班,學校也不是職業介紹所,


唸博士為什麼一定會有工作?這邏輯怪怪的。


讀書是為自己讀的,怎麼會去擔心別人也唸博士?

如果大家都是紮實的博士,那台灣的競爭力一定無敵強,

如果有人擔心博士水準不一,何必為打混的人擔心那麼多?

如果有人擔心自己的博士光環不再物以稀為貴,那這些人不適合唸博班。

要賺錢去業界比較快。

覺得博士太多是沒意義的,自己有幾兩重不只自己清楚,別人也很清楚,

與其擔心博士太多,不如自己努力一點,

有實力就不怕別人來搶。



研究作的好不好

project接的多, 表示他在寫計劃書的能力上有一定水準,

而且也表示他以前的project完成度有一定的評價,

如何將project的成果發表成paper又是另外一回事,

這跟接的計劃的性質比較有關.

如果只是用苦幹實幹或人海戰術完成一個project,

要說這個主持人很會做研究, 我想很多人不會同意,

project是用來養學生的, paper才是養學術地位的.

如果paper都是用英文寫的, 英文書寫能力當然有差.

editor/reviewer看不懂你在寫啥, 懶得管你就直接 reject,

比較心軟一點的, 或是對你的論文內容真的有興趣的, 才會考慮revise.

就我的經驗, 一個研究成果寫成好幾篇是不太可能啦,

倒是有看過classification跟feature selection分別投在

IEEE trans. evolutionary computation跟IEEE trans. SMC part B的.

用的是同一個multi tree genetic programming方法,

解決的問題不同, 就發到不同的期刊去.


基本的研究流程是

1. 發現問題

2. 尋找現有解決方法

3. 現有方法能把問題順利解決, 回到1

4. 現有方法能把問題解決, 但是有更好的方法, 跳到6

5. 無現有方法可用

6. 想一個新的方法

7. 想不出來, 跳到1

8. 實做

9. 評估理論與實作結果

10. 寫成論文

11. 尋找合適期刊

12. 投稿

13. reject, 依reviewer意見修改, 回到11

14. revise, 依reviewer意見修改, 回到12

15. 請大家吃飯, 回到1

所謂研究成果其實很模糊, 不考慮一稿多投的情況下,

用不同的方法解決同一個問題, 是多個研究成果.

用一個方法解決多個問題, 也是多個研究成果.

做到一半發現有一些其它問題值得大書特書, 那是另外的研究成果.

否則, 我覺得都算是一稿多投.

中文論文跟英文論文

寫中文論文跟英文論文的差異其實不大.

雖然很多人都以為中文論文就應該像中文文章一樣要起承轉合,

但是在科技論文中, 切成一段一段的中文論文, 起承轉合並不明顯, 也不需明顯.

所謂英文論文的思維, 我不知道是不是指 topic sentence, support sentences,

conclusion sentence之類的東西. 有不少中文論文的確是用這種方式來撰寫.

那都不是什麼問題. 畢竟想表達的東西有明確表達出來就好.

但是研究生寫中文論文最大的問題並不在結構與組織, 而是在遣詞用字上.

「因此, 我們計劃以XXX技術為基礎來建立一個YYY模型.」而不是

「因此我們打算用XXX來做出YYY」

「將擷取後的網頁內容以XXX進行第一步的處理, 再進行斷詞切字」而不是

「把網頁內容丟進去XXX, 然後把結果做斷詞切字」

「而轉換後的資料之特徵值, 經由還原處理後, 其誤差值將控制在0.1%以下」而不是


「轉換後的資料的特徵值的還原誤差會小於0.1%」

我也看過「說不定可以得到很好的結果」這種句子,

太多口語化的用字, 保證會被指導教授打槍.

還有, 有些人喜歡用驚嘆號....

這些東西應該是指導教授要教的, 怕被教授電的話, 就先請學長姐幫忙潤稿吧.

另外, 像是「此data之features經由pre-processing的結果, 將會反應出blogger

之間的relationship的強度, 由formula 1所定義出的fuzzy membership function

可以計算出...」

不要過份中英夾雜, 有些字的確很難翻, 但是中英夾雜的論文真的是很怪異的論文.

研究生

說實在的, 當過研究生之後就不會想帶研究生了....

我碩班老闆盯很緊, 改我的論文英文改到整篇都快變成他在寫的了,

還會在我後面看我寫程式, 跑出數據給他看....

博班老闆就是放牛吃草, 畢不了業自己看著辦, 要休學要幹嘛都沒問題,

反正時間到了, 沒辦法達到學校要求的畢業標準, 那就bye bye.

跟過兩個完全不同走向的老闆, 的確學到不少東西.

一般碩班學生才22歲左右, 如果你把他放牛吃草, 又不教他正確的實驗流程,

他當然天馬行空, 拿雜草當靈芝, 做出自己以為是對的卻是錯誤的資料,

像一個小故事說的, 好像是費曼的書裡寫的吧,

問一百個路人"皇帝的鼻子有多長", 然後求平均值,


最後算出來的就是鼻子長度的估計值.

但是這一百個人沒有人見過皇帝, garbage in garbage out,

算出沒意義的值卻誤以為是答案.

指導教授的價值就在他的"指導", supervise學生的實驗, 所以是 supervisor,

當然大部份的都是advisor, 被動的認為學生有需要時就會來問問題,

也不是說這是不對的, 只是現在的學生並沒有那麼積極,

而比較滑頭的學生就會自己動手搞一些東西以免指導教授以為他沒做事....



即使是研究生, 也還只是一個年輕的學生, 而且他們都抱著兩年"就"可以畢業的心態.

指導教授要花費的心力實在太多了....

競爭力跟生產力不是考進去研究所就會有, 要教啊.