發表文章

目前顯示的是有「Eclipse」標籤的文章

增加兩篇Eclipse RCP開發筆記

如果要開發跨Linux , Mac, Windows, 等Rich Client端程式, RCP是個不錯的選擇, 寫了兩篇簡單的howto 建立RCP開發環境 建立一個RCP專案

使用ECF實現Pair Programming

圖片
在 Extrem Programing 中有一個scenario--> Pair programming , 我想這一個scenario要實現是有點困難的, 基本上辦公室的Layout就不是為Pair programming所設計的,還有如果我旁邊就坐一個我的同事,說真的, 我可能連一行程式都寫不出來, 今天在Eclipse Live看到一個Demo, 使用 ECF(Eclipse Communication Framework) 來實現線上同時編輯程式碼, 這個應用很早就在Mac上看過, 不過是具有線上同時編輯的純文字編輯器, ECF則是基於Eclipse平台, 所以對於使用Eclipse的Developer要實現Pair Programming就容易多了. ECF是基於 XMPP/Google Talk, Skype, 詳細設定可參考 這裏 , 實際範例可看 這裏 , 以下是Real Time的demo Cola: Real-Time Shared Editing from Mustafa K. Isik on Vimeo .

Context Switch與Mylyn

圖片
作業系統有Context Switch, Programmer也會有Context Switch問題(可以參考蔡學鏞的 無所不在的Context Switch 一文), 作業系統的Context Switch可以達到多工的效果, 但是Programmer的Context Switch確會讓工作失焦, 並且降低生產力. 我自從開始當Programmer就有這樣的困擾,PM跑來問工作進度, 同事寫程式遇到問題求助, Release的軟體在客戶端發生了問題, Sales接到新的客戶Request ...... 不知您是否跟我一樣, 當這些外部的Interrupt產生後, 要再回到原本進行的工作, 原本快寫好的程式, 確要再review一次重新整理思緒再繼續未完成的工作, 這個重新整理思緒的時間會隨著所處理的code size增加而增加, 所以Programmer的Context Switch對於專案的進行實在不是什麼好事. 不過自從接觸過了 Mylyn (原本專案名稱為Mylar), 這個工具簡單說來就是在解決Programmer Context Switch的問題, 我用現在正在進行的CBGanttProject專案為例, 如下圖示 當Task 1047為Active時,Mylyn以這個Task為Active Session, 在開發階段,Mylyn就在背景開始紀錄你所做的每件事, 包括你點過的Class, member function, 修改過的function,檔案等等, 所以當Programmer突然工作被中斷, 要去處理其它事務時, Mylyn等於像是OS的Context switch一樣,已經幫Programmer的Task Session紀錄起來, 當Programmer再度回到這個工作時並將這個工作設為Active, Mylyn就會很快喚醒Programmer的記憶,開啟之前為這個工作所修改的function or files. 聽起來很神奇, 不過Mylyn真的做到了. Mylyn目前只能support Eclipse IDE這是比較可惜的一件事,不過Eclipse在目前軟體開發也算是有一席之地,Google的Android開放手機平台,Eclipse就是Google官方指定開發工具,還有未來低價電腦當道,目前兩大低價電腦EeePC與O...

軟體開發競賽與協同作業

自從Google宣佈了 Android 平台並懸賞1000萬美元做為Android平台上的軟體設計比賽獎金, 身為程式設計好手的你想必也是摩拳擦掌,躍躍欲試, 或是呼朋引伴組一個團隊一起參加比賽為程式設計生涯留一個美好的回憶. 如果你有時間也有一些志同道合的夥伴, 我很鼓勵你們去參加這樣的比賽, 最主要的是Google舉辦的這個比賽跟我們以往所見到的程式設計比賽有許多不同, 我大致摘要如下: 沒有年齡限制: 所以只要你會寫程式(最好寫過Java)都可以參加. 不是採用圍場的方式: 所以你可以用最輕鬆的方式寫程式, 穿著睡袍, 躺著,臥著,趴著 .... 沒有限定題目: 只要在Android可以跑就可以, 所以Google建議的Topic最後一條是 Whatever you're excited about! 任何讓你感到興奮的題材都可以, 只要你爽就好:-) Google是目前唯一可以挑戰微軟的國際級軟體公司, 當你的軟體進入決賽, 除了Google的巨額獎金, 同時你與你的團隊也受到全世界的關注. 看到這裏您的熱血開始沸騰了嗎? 不過Google有限定的交件日期, 從2008/1/2~ 2008/3/3, 算起來剩下3個多月的時間. 所以如何在這3個多月的時間內與你的夥伴更有效率的一起合作以贏得這項比賽? 我在這邊有些建議與想法 使用既有的OpenSource協同作業平台例如 JavaForge , OpenSource@JavaWorld , SourceForge , Google Code , 因為當你的團隊是分散在各地的情況跟OpenSource開發模式是非常相似的,運用協同作業平台讓軟體文件分享例如UML, 或是Idea透過Forum來討論與溝通都非常的方便,而且這些協同作業平台對於OpenSource專案都已經得到許多成功經驗. 儘量使用 Eclipse 內建的團隊協同工具, 例如 Mylyn 做工作管理,可以縮短你工作被中斷並再Warm up的時間, 而且Mylyn可以與 JavaForge 與 OpenSource@JavaWorld 中的Tracker做很好的整合, 詳細功能請看 這裏 使用版本控制如 SubVersion , CVS . Eclipse跟SubVersion, CVS的整合相當好, 團隊協同開發如果不採用S...

關於Google的Android手機開發平台

Google已經正式宣布GPhone(Sorry! Gphone是不存在的, 但是我覺得Gphone比較容易記與發音, Android念起來舌頭會打結:-))的開發平台 Android ,讓人驚訝的是Android目前僅提供Java開發程式語言, C/C++還沒有支援, 在Android的Forum已經引起 熱烈討論 , 我直覺是C/C++最後還是會支援,只不過要讓C/C++可以在不同的CPU執行則必需先搞定Cross compiler,GCC目前支援MIPS,ARM,等CPU已經是很成熟, 這部份應該也不成問題才對, Anyway, 如果是使用Java, 那麼IDE使用 Eclipse 就一點也不令人意外, Google還開發一個ADT的Eclipse plugin 以協助Developer建立與執行,偵錯可在Gphone上執行的軟體. 既然是使用Java, 那麼JRE呢? 是J2ME嗎? 這一部份就令人驚豔了, Google使用自己的JRE名為 Dalvik, 我用google search了一下Dalvik關鍵字, 找到一篇另人耐人尋味的文章 Google如果繞過Sun在Java ME的IP-Based授權限制 , Sun並沒有開放對J2ME的授權限制, 所以只要是做手機的都知道, 手機要支援J2ME平台,都要支付給Sun授權費. 但是Google在Android建立了自己的Java Virtual Machine而且是以 Apache License v2 釋出source code(但是我還沒有在Android看到Dalvik的source code, 這篇文章這樣說還有待考證), 如果是這樣, 這對於嵌入式系統開發廠商是一大利多, 而且對於Sun無疑是一種傷害. 但是也許事實並沒有這麼糟, 畢竟Dalvik不是J2ME, 如果手機開發廠商想利用Dalvik取代J2ME來節省成本, 市面上所有的J2ME程式勢必要再重新compile或是改寫, 我想這樣的改變要看Gphone有多成功而定, 不過無論如何,Dalvik對於Sun猶如芒刺在背, Sun的未來不禁令人擔心.