27 12月 2010

MySQL 5.5 on Mac OSX

送修的Mac回來,原來的硬碟有些問題,只好重裝系統。

剛好Oracle剛發佈新版的MySQL,就順便換裝看看,沒想到一直無法正常起動。

查了下說明,原來要手動改/usr/local/mysql/support-files/mysql.server

basedir=
datadir=

改為

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

即可

14 12月 2010

MarsEdit Test

MarsEdit Test

excel12.png

Redmine Mylyn Connector

個人覺得,工程師在工作時,所有要處理的事最好都能在IDE裡完成,這樣比較不易被其他事情中斷,因為每次的Switch一定是要花些成本的。
工作的分派也是,今天有什麼Task要處理或是Bug要修,如果可以在IDE裡取得,完成後也在IDE裡回報,這應該是比較理想的。Redmine Mylyn Connector 就提供Eclipse 這樣的 Plugin,讓我們將Redmine當做Mylyn的repository,方便我們回報各種工作情況。

要將Redmine與Eclipse兩方連結,必需在兩方都加點東西,Redmine要加個vendor plugin,而Eclipse 也要加plugin。
1. Redmine方面:
執行下列statement

cd /usr/share/redmine
sudo ruby script/plugin install git://redmin-mylyncon.git.sourceforge.net/gitroot/redmin-mylyncon/redmine-mylyn-connector

然後要將redmine 的REST功能加打,登入redmine的administration後將"Enable REST web service"打勾儲存。

 

 

 

 

 

 

 

 

2. Eclipse方面:
加個新的Eclipse Plugin Repository
http://redmin-mylyncon.sourceforge.net/update-site/N/

然後就可以試試兩邊的整合

 

 

 

 

 

 

 

 

 

 

 

 

 

3. 加個新的issue吧

注意這個Task的Status是"New", Assigned 給"lab engineer"

4.回到Eclipse,先在"Task"上選擇新增一個Repository

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

然後Eclipse會列出目前可用的Repository型態,因為我們有多裝了Redmine的Connector,所以會較原來多個選項

 

 

 

 

 

 

 

 

 

 

當然是選Redmine這類型囉


再來會要求我們填入Redmine Server相關的資料,主要是"Server","User ID","Password","Save Password"也不要忘了勾起來,再按下“Validate Settings“確認無誤後按下“Finish“即可

 

 

 

 

 

 

 

 

 

 

 

 

5.建立Repository Query
經過Step 4後,Redmine Plugin會詢問是要要建立一個Task Query,這時當然是選"Yes",

 

 

 

 

 

接下來就輸入Query名稱及選取要篩選的條件後按下“Finish“

 

 

 

 

 

 

 

 

 

 

 

 

我們就能在Task List看到符合條件的Task了

 

 

 

 

 

 

 

 

 

6. Task處理完後只要填入適當資料,然後按下"Submit"就會回傳給Redmine Server囉

 

 

 

 

 

 

 

 

 

 

 

看看Redmine Server上task的status,

 

 

 

 

 

 

 

 

 

已經隨我們剛才的更動而更新

 

 

 

 

 

 

 

 

 

 


Redmine on Ubuntu 10.10

個人覺得,每間軟體公司應該都要有一個Issue Tracking System,有了Issue Tracking System,專案才方便進行Planning、Development及Evaluation的流程管理。當然也有人覺得,用Microsoft Project或Excel等工具也就夠了,這點我也沒什麼特別的意見,但也許考慮嘗試使用一下Open Source的Issue Tracking System後,可以發現這類工具的助益遠大於你一開始的想像。

以往我個人認為比較好用的Issue tracking system大概只有JIRA,其他如Trac、Mantis或Bugzilla之類的,通常是公司或專案已經在使用,就跟著用就是。雖然我也不是對JIRA有什麼特別的喜好,因為我再怎麼用也不過就是基本的工作指派或是問題回報;不過JIRA額外提供了設定專案不同階段(version)所應該完成的功能(future),而且也能與多種SCM結合,分析member每次的commit是與哪個issue相關,再加上這是由Java寫的,格外有親切感...喔,不,有親切感的原因是許多Java Open Source 也都使用JIRA做為issue tracking system,所以用起來相當容易上手。但JIRA最大的缺點是-它要收費,而且還不便宜。

之前因緣際會地開始寫起了Ruby,這才接觸到Redmine這個用ruby寫成的issue tracking system,使用過後真的是驚為天人!對我而言,我在JIRA上最常用到的功能,Redmine幾乎都能提供,而且也有人提供了Eclipse Mylyn的plugin,幾乎是在試用過的當下就決定要將Redmine納入我往後專案,做為開發的Issue Tracking System。

以往安裝Redmine實在有相當的難度,但是感謝Ubuntu將複雜的事簡單化,彈指間就能完成Redmine的安裝。
Redmine本身wiki有提供兩種方式設定,可以先參考

http://www.redmine.org/wiki/redmine/HowTo_Install_Redmine_in_Ubuntu
,第一種是透過mod_cgi,這方式我試了,無論是mod_cgi與mod_fcgi都無法成功...第二種是透過passenger,這就容易多了,簡單操作指令如下
0.安裝redmine前請先確認apache2與mysql(postgresql 或 sqlite也OK)都能正常操作

1.安裝redmine、redmine-mysql及libapache2-mod-passenger

sudo apt-get install redmine redmine-mysql libapache2-mod-passenger

2.建立redmine Symbolic Link
sudo ln -s /usr/share/redmine/public /var/www/redmine

3.修改apache2 site的設定,加入Directory
sudo vim /etc/apache2/sites-available/default

<Directory /var/www/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>

重起apache2後以browser連結http://${host}/redmine,登入帳號密碼預設為redmine:redmine,接下來就可以新建User及Project,看看Redmine的功能囉。


03 12月 2010

Maven3 and Site Plugin

Maven3 的 maven-site-plugin已將關於reporting的邏輯移除,所以如果用原先給maven2用的pom.xml,雖然可以執行,但除了用Doxia的report可以跑出結果來,其餘的report都不會產生。

要跑出先前的report就必需修改下pom.xml,Maven的report主要有分兩類,一是Project Information、另一則是Project Report,Information就是專案成員名單、使用的library、Issue Tracking等相關資訊,而Report則是其他外掛的Changelog、Unit test Surefire、CodeCoverage Emma等report,maven2的是將其分為兩部份控制,information是內建的,只要敲個mvn site就一定有,其他的report就必需在<reporting />中掛上plugin,而maven3的設定則希望全部在maven-site-plugin中加以控制,這是兩者比較大的分別。

直接看看maven3的設定項目吧,請記得下列所有report的<version />皆可以不指定

<project>
 <build>
  <plugins>
   <plugin>
    <groupid>org.apache.maven.plugins</groupid>
    <artifactid>maven-site-plugin</artifactid>
    <version>3.0-beta-3</version>
    <configuration>
     <reportplugins>
      <!-- maven-project-info-reports-plugin即是指供project information的plugin -->
      <plugin>
       <groupid>org.apache.maven.plugins</groupid>
       <artifactid>maven-project-info-reports-plugin</artifactid>
       <!-- 可不指定version -->
       <version>2.2</version>
       <!-- dependencyDetailsEnabled 及 dependencyLocationsEnabled 設為false
       時會讓 dependencies report 少產生部份資訊-->
       <configuration>
        <dependencydetailsenabled>true</dependencydetailsenabled>
        <dependencylocationsenabled>true</dependencylocationsenabled>
       </configuration>
       <!-- 基本的information report都在下面了,若有不需要看的就mark掉就好 -->
       <reports>
        <report>cim</report>
        <report>dependencies</report>
        <report>index</report>
        <report>issue-tracking</report>
        <report>license</report>
        <report>mailing-list</report>
        <report>plugin-management</report>
        <report>plugins</report>
        <report>project-team</report>
        <report>scm</report>
        <report>summary</report>
       </reports>
      </plugin>
      
      <!-- 以下為其他外掛的report plugin 設定處,version可以拿掉 -->
      <plugin>
       <groupid>org.apache.maven.plugins</groupid>
       <artifactid>maven-surefire-report-plugin</artifactid>
       <version>2.6</version>
      </plugin>
      <plugin>
       <groupid>org.apache.maven.plugins</groupid>
       <artifactid>maven-changelog-plugin</artifactid>
       <version>2.2</version>
      </plugin>
     </reportplugins>
    </configuration>
   </plugin>
  </plugins>
 </build>
</project>
</project>