2007年11月8日 星期四
『人月神話』讀後心得〈二〉
作者說--『有創造的樂趣』
這點我蠻同意的,寫程式可以憑空創造一些東西,或是改變一些東西,讓自己「自我滿足一下」。(這可能是『宅男』的最大樂趣所在)
作者說--『創造出來的東西,居然有人用』
這就又比上面說的樂趣更上一層樓了,至少不是「孤芳自賞」,可是有人會欣賞我的程式,最好是花大錢來買,可就是樂翻啦!
作者說--『寫程式時類似推理、解迷的過程令人著迷』
年輕時候的我野蠻沈迷於此的,喜歡幫別人DEBUG,或是看一些很艱深的程式書,可以很專注、很持久、並且得到很大的樂趣。但是年紀漸長,腦力退化,專注力便由細節轉化為『架構』、『概念』、『結構』這些說說就好,不必實作的東西了。
作者說--『在如此容易操作的介質上工作的快樂』對應到第一項的樂趣,容易操控便有利於創造,宅男就更多啦!
不過話說回來,台灣的六、七年級生能夠體會這些樂趣的人就少多了,反而是對岸的同胞投入寫程式的人排山倒海般蜂擁而至,實在驚人!有幾個例子:
1. 之前有介紹到一家軟體公司 ASPOSE (http://www.aspose.com),這是一家澳洲公司,公司6個TEAM中有3個TEAM是在大陸(長沙、廣州、南京)。
2. 我之前的公司外包程式給長沙的軟體公司,一台PC分成3班給3組人作CODING用,因為CODING很趕也很好賺。
3. 寫程式的技術文章居然在大陸可以賣錢(例如、如何寫像GOOGLE查詢介面的AJAX程式),雖然不多(大約十幾元台幣左右),但積少成多、不無小補。
台灣不僅是傳統產業要關門了,連軟體業都快要被對岸吃掉了(或許早就陣亡了)!
2007年11月6日 星期二
『人月神話』讀後心得〈一〉
首先,電腦其實蠻笨的,至少目前來看大概只有人類1-6歲的水準,很多時候不知道變通,因此需要很精準的指令才可以指揮電腦,這就是寫程式的用途所在。也因為如此,就造就了許許多多的龜毛程式設計師,許多地方要求完美,這也不是他的本意,實在是電腦要求的。
此外,test/debug也是讓人氣到吐血的事情。雖然依照常理bug應該是越改越少,但是,寫過程式的人都知道,修改完一個bug通常會引發另外兩個bug,實在是越改越多,永無止境。怪不得現在WEB 2.0有人提倡永遠的beta版,看似非常有責任感,其實背後的辛酸是無人知道的。
作者還說,總體來看是『樂多於苦』,但是我想這可能是作者的那個年代(1974),會寫程式就像民航機飛行員一樣稀少,寫程式可以賺大錢的年代,如果寫程式可以月入NTD$30萬(或許15萬我就滿足啦!),我也會覺得樂多於苦。
軟體工程師--總結一句話:生不逢時啊!
人月神話
讀完之後會有一些心得報告。
人月神話
原文:The Mythical Man-Month--Essays on Software Engineering
作者:Frederick P. Brooks, Jr.(IBM OS/360的專案經理)
初版:1974年10月(超過30年了,對於軟體工程而言有點嚇人)
博客來的連結: http://www.books.com.tw/exep/prod/booksfile.php?item=0010254508
Amazon的連結: http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/ref=pd_bbs_sr_1/103-8672678-0383055?ie=UTF8&s=books&qid=1194335570&sr=8-1
2007年6月15日 星期五
[軟體]Subversion Client--SmartSVN
http://www.syntevo.com/smartsvn/index.jsp
特點:
- UI很簡潔
- 以專案為單位瀏覽
- 整合WORKING COPY與REPOSITORY資訊
- 功能齊全,就算是免費的版本就有很多好用的功能
- 內建DIFF功能,可以比對差異並座雙向MERGE變更
缺點:
- 需安裝JAVA VM
- 有時候執行反應很慢
整體來說,這套軟體比小烏龜好用,尤其是在COMMIT/UPDATE/RESOLVE CONFLICT(衝突解決)方面是方便多了
V4 Release了,效能好多了
2007年6月5日 星期二
Subversion + TortoiseSVN 使用上的一些問題
在開發階段,遇到的問題較少,但是RELEASE/DEPLOYMENT時就有較多的問題。
若是系統的特性不是PACKAGE,也就是說不是一大包,而是單一檔案為單位,在部署時就會遇到困難。
如果將正式SITE視為一個WORKING COPY來管理,由其便利性,但是有一些缺點:
- 會產生.svn目錄
- UPDATE無法批次檢查、逐一更新(只能批次檢查、批次更新),為了安全起見,只能選擇逐一檢查、逐一更新
解決之道--找其他CLIENT TOOL
目前找到一個還不錯的,正在測試中,至少解決了上面第二個問題。以下請參考:
SYNCRO SVN CLIENT V2.3 http://www.syncrosvnclient.com USD$59
2007年5月30日 星期三
[小玩意] Proxy Switcher
介紹一個好用又免費的工具:Proxy Switcher
http://www.proxyswitcher.com/
主要功能:
再桌面狀態列就可以換PROXY SERVER設定
自動更換anonymous surfing,定時更換PROXY設定,主要是為了保密(付費版才有的功能)
支援 Internet Explorer, Firefox, Opera and others
Proxy list管理測試 Proxy server是否存活 (付費版才有的功能)
2007年5月28日 星期一
程式版本管理的輔助工具--WinMerge
當版本管理遇到衝突時(conflict只兩個人以上修改同一個CODE),這時候就需要人為的方式來解決衝突,這時候WinMerge就派上用場。
WinMerge可以:
- 有比對功能,比較檔案的不同處可以(Diff功能)
- 將兩個不同版本的檔案並列,並逐一『調整』不同之處,此處調整可以作雙向任一方的更新(Merge功能)
- 支援整個DIRECTORY的比對
其他特色:
- 支援UNICODE
- 中文OK
- 壓縮檔也可以比對
- Freeware
- 介面蠻人性化
- 有中文UI PATCH可下載
其實不僅小組可以使用,個人開發專案時,只要有關版本管理的方面都可使用。可以有效避免以前使用檔案覆蓋時造成的悲劇,改用逐行檢閱更新的方式,確實風險降低不少。
UML Modeling Tool
挑選時請注意以下幾點:
1. 支援的UML版本:UML目前公布的正式版本是V2.0,但是V2.1也在討論中即將公布,V2.0與V1.X在圖形/符號上差異很大,要注意。
2. Forward/Reverse Engineering(正/反向工程)的支援,也就是由UML產生程式碼&由程式碼反向產生UML,這牽涉到各位使用的程式語言及相關軟體開發平台。
3. XMI支援
4. 小組支援(Teamwork)。
介紹如下:
1. JUDE(Java and UML Developers' Environment):
http://jude.change-vision.com/jude-web/index.html
2. Enterprise Architech:from SPARX System
http://www.sparxsystems.com.au/
3. Visual Paradigm for UML
http://www.visual-paradigm.com/product/vpuml/
4. Rational Software Architect 7.0
http://www.rational.com
5. 其他參考資料: http://www.umlchina.com/Tools/Newindex1.htm 蒐集蠻多的資料
2007年5月25日 星期五
ASP Upload
支援ASP網頁的UPLOAD元件
http://www.aspupload.com
雖然ASP已經是發展很久了,但是因為簡單,所以還是很多人使用。
這個元件是可以幫助你在ASP程式中達成UPLOAD的功能,而且只要經由80PORT即可,不需要開放其他PORT,十分方便。
網站中還有其他元件,也還不錯,可以下載來試一試。
XUPLOAD: 還不錯用
JUPLOAD
ASPJpeg
ASPPDF
ASPUser: 還不錯用
ASPGrid
ASPEmail
ASPEncrypt
網站上有使用說明及SAMPLE。
行動裝置控制器
http://www.soti.net
Pocket Controller
主要功能是當你的行動裝置經由ActiveSync與PC連線後,啟動這個程式,就可以在PC上建立一個與行動裝置畫面相同的視窗,兩邊可以如同『Remote Control』程式一樣同步,主要是如果你的行動裝置的輸入介面不方便,用這個程式就可以簡單許多。
使用上安裝也很簡單,連線後啟動此程式,會自動偵測行動裝置並安裝軟體至行動裝置,然後就可以看到同步的畫面了。
MobiControl
Mobile device 的集中式遠端管理系統,透過網路,集中管理行動裝置。
需要一個控管中心,幫忙解決所有的疑難雜症。
看VIDEO DEMO -- http://www.soti.net/video/soti_corp_content.html
軟體工程相關軟體
1. Subversion + TortoiseSVN: 目前使用中
http://subversion.tigris.org/ & http://tortoisesvn.net/
2. Visual SourceSafe: studio與MS VS 有整合
http://msdn2.microsoft.com/en-us/vstudio/aa718670.aspx
3. IBM Rational Clear Case
第二類: Defect 控制(Defect Control)
1. OnTime: http://www.axosoft.com
2. Perforce P4: http://www.perforce.com/
3. IBM Rational Clear Quest
通常第一類與第二類的工具有整合,整合的方式有相互支援或是具有兩種功能(如Perforce P4)
第三類: 塑模工具(Modeling Tool)
一般以支援UML 2.0以上為主流
1. Enterprise Architech(EA):
http://www.sparxsystems.com.au/
2. IBM Rational Unified Process (RUP)
原則上各類工具是依照各人喜好度來排列的,當然有許多外在因素會影響我的判斷,詳細的使用心得會在以後陸續推出。
2007年2月16日 星期五
文件產生器--ASPOSE (2)
當初我會找這個產品是有一段故事的,大概很多公司都有許多制式的文件需要產生,如報價單、各式報表、月報等等,每個都大同小異,但是就是某些地方不同,我的公司也是如此。每次手工製作及修改這些文件就傷透腦筋,因此,就有了文件產生器的構想。
第一代的文件產生器就是使用文件套版+VBA的方式,這種方式並不理想,只適合變動部分比較小的,例如抬頭、住址等。
第二代的文件產生器就是使用Office Web Component(OWC),這個方法就是在WEB SERVER上由OWC啟動一個OFFCE執行緒,協助產生OFFICE文件。乍看之下還OK,測試時也可以(只是常會讓WEV SERVER卡死),但是,正式上線之後便徹底毀了。因為,每個USER執行的時候,都產生一個OFFCE執行緒,有時程式錯誤OFFCE執行緒也不會自動結束,沒多久SERVER就掛了。
這個OWC的方案主要有幾個缺點:
1. 由client啟動server端程式,有安全的顧慮
2. 效能不佳,每次執行就會產生OFFCE執行緒,會拖垮server
3. 死掉的執行緒沒人收屍(沒有garbage collector機制)
4. OWC的指令(methods & properties)有版本的問題,SERVER裝啥版本的OFFICE,就只能用啥版本,而且各版本之間不甚相容,例如OFFICE 2000與XP的指令就不同。
第三代就是ASPOSE的解決方案:
主要優點有:
1. SERVER只需裝ASPOSE元件,不必裝OFFICE,可以省下一些錢
2. 產出的文件可以不限版本,OFFICE 2000、XP、2003均可(2007還未支援)
3. 執行時使用資源很少,執行效能比OWC好很多
主要缺點有:
1. 只支援.NET及JAVA(部分產品),不『太』支援ASP
2. 並未完整支援OFFCE全部的功能,或是作法和OWC不太相同
3. 使用需要對元件有基本的認識,當然,這點和使用OWC是一樣的
以下是相關產品列表:
1. Aspose.Cells: 可以產生EXCEL文件,目前正在使用,可以達到EXCEL XP幾乎全部功能
2. Aspose.Words: 可以產生WORD文件,還在測試中
3. Aspose.Slides: 可以產生PowerPoint文件,目前沒有使用的計畫
4. Aspose.Tasks: 可以產生Project文件,目前沒有使用的計畫
如果有相關問題,可以留言討論,或是參考該公司的網站 http://www.aspose.com 。
文件產生器--ASPOSE (1)
網址: http://www.aspose.com
主要產品:
可供.NET與JAVA使用的元件,主要分為以下幾類
1. MS OFFICE類的文件產生器:不必買OFFICE就可以產生OFFICE文件了。
2. PDF 文件產生器:可以由程式產生PDF文件。
3. FLASH產生器:可以由程式產生FLASH檔。
這些產品都有提供下載測試,幾乎都是全功能的,只是會在產出的文件上加上浮水印/版權頁等已標示你是使用無版權的版本。如果各位有相關需要,可以立刻抓下來測試一下。