2008年01月26日
JTrac:Open source的Java Issue Tracking System
如果你的開發小組還沒開始使用Issue/Bug Tracking System的話,現在多了另一個選擇:JTrac。由其Roadmap來看,在功能上似乎會逐步趨近Trac的現有功能。
若你正在學習Java,JTrac使用多種較新的Framework,應該能提供一些參考。
What is the JTrac architecture like?
JTrac is built using the Spring Framework as far as possible and mostly uses Spring WebFlow within the MVC layer apart from Spring MVC. Also the Acegi Security framework for Spring has been used. JTrac is effectively a "light-weight" Java EE application and any version 2.4 compliant servlet engine is sufficient for deployment.
The presentation layer is using the Apache Wicket framework.
Hibernate is used for data persistence. This allows for JTrac to be database neutral and any database supported by Hibernate can be used.
##
若你正在學習Java,JTrac使用多種較新的Framework,應該能提供一些參考。
What is the JTrac architecture like?
JTrac is built using the Spring Framework as far as possible and mostly uses Spring WebFlow within the MVC layer apart from Spring MVC. Also the Acegi Security framework for Spring has been used. JTrac is effectively a "light-weight" Java EE application and any version 2.4 compliant servlet engine is sufficient for deployment.
The presentation layer is using the Apache Wicket framework.
Hibernate is used for data persistence. This allows for JTrac to be database neutral and any database supported by Hibernate can be used.
##
2007年11月2日
[Trac] 幫Trac裝上WYSIWYG編輯器
JeffHung於今日介紹了Trac的「所視即所得」編輯器插件:Trac Wysiwyg Plugin。安裝步驟如下:


##
- 切換目錄到\Python24\share
cd \Python24\share
easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.10
- 如果你已升級到0.11版,只要把最後面的0.10換成0.11即可
- 以admin進入管理網頁,啟動此插件
- 重新啟動Apache Web Server
- 原來的畫面

- 加入WYSIWYG編輯器後的畫面

##
2007年10月31日
[Trac] 把Trac的單欄樣式改成多欄的方法
在Trac的一個頁面裡輸入了越來越多的文字之後,由於有許多的導引連結,結果變成了長條狀的形式,每每為了點選在後方的連結而必須拖動捲軸,實在很麻煩....今天終於找到一個簡單的解決方法了-把內容用<table>分隔成幾個<td>就OK了。示意如下:
原來的內容是單欄式的:
原來的內容是單欄式的:
=== 專案重要任務 ===用<table>變身成兩欄,把垂直發展變成水平延伸。範例中的{{{與}}}為了在網頁顯示而改成全形,真實情況裡是要用半形才可以:
1. [report:1 處理中的任務單]
1. [report:7 指派給我的任務單]
1. [TodoList 待辦事項]
=== 專案文件區 ===
1. [EventMeeting 會議記錄]
1. [PlanningDocuments 專案規劃階段]
=== 專案成員一覽表 ===
1. [OurMembers 乙方成員]
2. [ClientMembers 甲方成員]
=== 開發環境建置 ===
1. [attachment:trac-ticket.doc 任務單操作簡要]
1. [CheckoutSource 取出原始碼及程式開發設定]
1. [TestAccount 測試帳號]
{{{
#!html
<table border="0"><tr valign="top"><td width="40%">
}}}
=== 專案重要任務 ===
1. [report:1 處理中的任務單]
1. [report:7 指派給我的任務單]
1. [TodoList 待辦事項]
=== 專案文件區 ===
1. [EventMeeting 會議記錄]
1. [PlanningDocuments 專案規劃階段]
{{{
#!html
</td><td>
}}}
=== 專案成員一覽表 ===
1. [OurMembers 乙方成員]
2. [ClientMembers 甲方成員]
=== 開發環境建置 ===
1. [attachment:trac-ticket.doc 任務單操作簡要]
1. [CheckoutSource 取出原始碼及程式開發設定]
1. [TestAccount 測試帳號]
{{{
#!html
</td></tr></table>
}}}
##
2007年09月8日
將Trac 0.10.4中文版公佈到Google Code
在推動使用Trac當 做協同專案團隊運作工具的過程中,缺乏中文介面始終是個阻礙。雖然說軟體開發人員對於英文應該比一般行業要熟悉一些,尤其對於電腦英文更應得心順手才對, 但總是三不五時有人反應怎麼沒有中文版...又顧及大陸同仁接受英文的程度更差,索性把Trac常用的詞彙翻譯成中文算了。利用閒暇時間把Trac的樣板 檔逐一修改,再公佈到Google Code上供有興趣的讀者們下載使用。以下是trac-tw專案的詳細資訊:
- 專案代碼:trac-tw
- 專案首頁:http://code.google.com/p/trac-tw
- 取出主幹原始檔:svn checkout http://trac-tw.googlecode.com/svn/trunk/ trac-tw
- 取出本日原始檔:svn checkout http://trac-tw.googlecode.com/svn/tags/TAG-20070908 trac-tw
- 直接下載修改過的樣板檔:http://trac-tw.googlecode.com/files/trac_templates.zip
- 版權:New BSD License (原本Trac是採用Modified BSD License,因此我比照使用BSD License,不知是否妥當?)
如果您也有興趣要強化此中文版的翻譯,請寄信給我,我將開啟存取Subversion檔案的帳號給您。對翻譯有建議或意見者,請直接留言在專案的Wiki上,我會盡速回應。
##
2007年08月24日
Java-based Subversion client登入AD的帳號問題
如同我在Subversion的Apache設定這篇文章裡提到的,在網 域裡透過Active Directory認證權限時,最好以 網域\帳號 的格式來存取Subversion主機,在TortoiseSVN裡 使用此格式皆可容易的做更新、送交等操作。但一遇到Java版的Subversion Client(如SmartSVN 3.0.2與IntelliJ IDEA 7.0M2)時卻遇到下列錯誤:
[Fri Aug 24 16:16:46 2007] [error] [client 10.xx.yy.zz] Access denied: 'DOMAIN\\UserId' PROPFIND svn:/trunk/project1/source登入帳號時試過各種大小寫組合,都無法成功登入,測試許久後才發現Apache裡的權限檔案必須把該帳號網域改成大寫, 否則就是會登入失敗。看來Apache是區分大小寫的,而網域是必須大寫的。真是怪異的情況。
2007年08月21日
TortoiseSVN: 解決TSVNCache佔用CPU過高的設定
竟然被中文介面誤導了這麼久!如果你偶爾在工作管理員裡發覺TSVNCache.exe突 然耗用許多CPU資源(有時會超過50%),那要趕緊去檢查TortoiseSVN的 設定。原來是這個常駐的Process會定時去掃描受Subversion控 管的檔案是否被修改了,掃描到後,這些被修改的檔案、與其所屬的子目錄、目錄等的覆蓋圖示都一併更新,而就是這個動作不僅佔用約10-50 MB記憶體,也會瞬間衝出超過CPU 50%負載。圖示覆蓋與狀態欄更新設定
打開TortoiseSVN的 【設定視窗(Settings)→視覺樣式(Look and Feel)→圖示覆蓋(Icon Overlays)】,右邊第一個Radio Group名稱「圖示覆蓋/狀態列」的英文是「Icon Overlays/Status Columns」,其中的Status Columns應譯成狀 態欄才對,它指的是在檔案總管裡把顯示模式切換成詳細資料時, 標題欄位裡的Subversion欄位是否要同步更新狀態。如果你只會在檔案總管裡操作Subversion狀態的話,應該把「僅在檔案總管中顯示圖示覆 蓋」打勾,以免除另存新檔、開啟檔案等對話窗也更新圖示狀態。但我有時會在Total Commander裡操作Subversion,因此就不能勾選。狀態快取設定
右邊第二個Radio Group名稱譯成「狀態列」,讓人誤解成以為是顯示訊息的狀態列設 定,但其實英文是Status Cache-狀態快取設 定,指的是資料夾與檔案圖示的SVN小圖示的覆蓋狀態的處理模式。Status Cache有3個選項:- Default
預設的快取設定,使用TSVNCache.exe 來定時掃描檔案系統,找到要變動的檔案後發出更新圖示的通知給作業系統
- Shell
在Shell extension裡,只針對目前所在資料夾做圖示異動更新;只佔用1MB記憶體,但因只快取一個資料夾,當Working copy內容較多時會花較多時間才能更新完畢
- None
不做任何圖示覆蓋快取,因此圖示更新速度較慢我特別做了測試把狀態改用Shell,重新開機後工作管理員裡就找不到TSVNCache.exe 了,用檔案總管檢視Working copy資料夾時,圖示覆蓋以較緩慢的速度顯示出來。
磁碟機類型
磁碟機類型是指定讀取Subversion檔案狀態的對象,建議選硬碟,以免別的媒體較慢的讀取速度造成TortoiseSVN效 能低落。在Subversion Forum這篇討論裡也有如下建議:
- 把A:\*、C:\*、D:\*到Z:\*都加到除外路徑裡,表 示每個磁碟都不做異動掃描
- 再把工作中的Working copy加入包含路徑,如c:\NewProject\*、 d:\NewWD
2007年08月18日
「勢不可擋」的Subversion
Guido Haarmans在他的Blog裡發表一篇Unstoppable Subversion,揭露Subversion的成長趨勢。比照以前Oracle的口號:Unbreakable Oracle-堅不可摧的Oracle,我把篇名譯為「勢不可擋的Subversion」。
文中提及E-Soft公佈了Subversion的成長趨勢圖,大約在一年裡有3倍的成長。

以我個人的使用經驗,Subversion確實比CVS優秀不少,Windows裡的TortoiseSVN又提供了很好的整合。如果你還在使用Visual SourceSafe或CVS的話,建議測試一下Subversion吧,相信能「一試成主顧」的。
##
文中提及E-Soft公佈了Subversion的成長趨勢圖,大約在一年裡有3倍的成長。

以我個人的使用經驗,Subversion確實比CVS優秀不少,Windows裡的TortoiseSVN又提供了很好的整合。如果你還在使用Visual SourceSafe或CVS的話,建議測試一下Subversion吧,相信能「一試成主顧」的。
##
開源的專案管理工具:GanttProject與OpenProj
一般最常用來做為專案管理工具的非Microsoft Project莫屬,不僅功能眾多,相關的書籍也多,不過,若你的需求只是畫畫甘特圖、做點小團隊的資源分配等簡單的管理,除了使用Excel或Visio外,或許開源的GanttProject與OpenProj也能符合所需。
GanttProject我用得比較久,是以Java撰寫且有中文介面,它的操作我用起來比較順手。OpenProj在Windows裡是以MSVC運行,但也有*nix的版本,它能直接讀取Microsoft Project的.mpp檔案,但可惜尚無中文介面。
需要做專案管理嗎?除了Excel土法煉鋼外,也試試這兩個Freeware吧。
GanttProject我用得比較久,是以Java撰寫且有中文介面,它的操作我用起來比較順手。OpenProj在Windows裡是以MSVC運行,但也有*nix的版本,它能直接讀取Microsoft Project的.mpp檔案,但可惜尚無中文介面。
需要做專案管理嗎?除了Excel土法煉鋼外,也試試這兩個Freeware吧。
下載
2007年08月10日
幫Trac加上TiddlyWiki的雙擊快速編輯功能
如同我在TiddlyWiki編輯的快速鍵這篇裡提到的:用雙 擊(Double click)就能立即進入編輯狀態,不用捲動網頁尋找編輯按鈕,對於經常要編修內容的使用者而言,應該 能節省不少時間。但這個功能對於同時要操作Trac的wiki 的我而言,偶爾會出現錯亂現象,在Trac網頁按了幾次Double click,突然才意識到這不 是TiddlyWiki,雙擊根本不 能用的呀。為了徹底解決這個狀況,索性修改Trac的樣板,幫Trac也 加上Double click的快速編輯功能。以下是修改的步驟:
##
- 由\Python24\share\trac\templates\取 出Wiki的樣板檔:wiki.cs
- 搜尋accesskey="e"(在Trac 0.10.4裡是第363行),在這個標籤上加上id="btnEdit",給它加上識別ID
- 再到檔案最後面加上以下JavaScript:
<script>這樣就在Trac裡增加雙擊的功能了。
document.ondblclick = function() {
document.getElementById("btnEdit").click();
}
</script>
##
2007年07月26日
於Trac使用IncludeMacro以插入共用網頁
我幫幾個剛開始運作沒多久的專案架上了Trac系統,也希望每個Trac首頁都具有相同的內容,但因為內容仍然會增添修改,導致經常要做內容同步的動作,經過一番搜尋後,發現可以使用IncludeMacro來讓每個Trac來含入(Include)同一個Wiki網頁,屆時只要維護被含入的共用網頁內容,即可讓每個首頁的使用說明部份都是相同的。
安裝IncludeMacro
安裝IncludeMacro
- IncludeMacro說明網頁:http://trac-hacks.org/wiki/IncludeMacro
- 安裝步驟:
cd \Python24\Scripts
easy_install http://trac-hacks.org/svn/includemacro - 使用admin登入Trac,進入Admin選項並啟動IncludeMacro
- 上一步驟也可在trac.ini的[components] 設定 includemacro.macros.includemacro = enabled
- 格式:[[Include(插入網頁)]]
- "插入網頁"可以是http:、ftp:、wiki:等不同來源
- 可再指定第2個參數指定插入網頁的形態,如x-trac-wiki表示為Wiki形態
- 範例:[[Include(wiki:WikiStart)]]、[[Include(http://YourTrac/SharedWiki.txt, x-trac-wiki)]]
