2003年11月26日 星期三

遠端使用CVS的方法最常見的就是使用pserver,使用pserver的話資料並沒有加密。
使用pserver的認證方法預設是讀取系統的帳 號密碼(也就是/etc/passwd),不過可以修改$CVSROOT/CVSROOT/passwd,加入cvs專用的認證帳號密碼,如果有這個檔 案,cvs會先來看看裡頭的帳號密碼對不對,假如帳號不在裡頭,會接著看系統的帳號密碼,要是你不想讓cvs去看系統帳號,那可以在$ CVSROOT/CVSROOT/config裡頭設定SystemAuth=no。
而$CVSROOT/CVSROOT/passwd這個檔案的格式如下:

cvs帳號:密碼:系統帳號

系統帳號是登入後對應到系統cvs帳號的權限,如果沒有設定的話,有可能會出現下面的錯誤訊息
[cvs帳號]: no such system user

這邊有不錯的說明
這裡也不錯

使 用SSH來連接CVS的話就不用管pserver,帳號密碼如同一般使用SSH連線一樣(應該是就跟一般SSH連線一樣,只是進去Server之後就可透 過SSH連線下CVS指令,還不就跟我們先使用SSH進去Server,然後在Server輸入CVS指令沒兩樣... ^^! )
假如你想要設定一個CVS專用的帳號,也就是不想讓這個帳號平時也可以透過SSH連線的話(一般帳號的SHELL必須有設定,不能是/sbin/nologin,要不然會沒辦法使用SSH來連接CVS),這篇文章(Setting up a CVS server for ssh clients )有提到,不過我沒去嘗試過就是了,應該是著重在設定SSH這邊(設定SSH連線後只能執行CVS指令之類的)

PS. 某個版本(分支)的CVSWEB
用Open Source工具開發軟體
http://www.study-area.net/cyril/opentools/opentools/book1.html
http://www.study-area.org/programing/progfr.htm

文章放在Study-Area
http://www.study-area.org/menu1.htm

2003年11月24日 星期一

?報表XML檔案
用iReport可以很容易幫你產生想要的報表格式XML檔案。
一個Report大致會分為background/title/pageHeader/columnHeader/detial/coulmnFooter/pageFooter/summary這幾個部分,分別把你的元件加到想要出現的部分即可。其中title就是第一頁才會出現,summary就是最後一頁才會出現的東西,pageHeader/pageFooter就是每一頁都會出現。
動態資料部分主要分為Fields/Variables/Parameters
表示方法就是$F{變數名稱}/$V{變數名稱}/$P{變數名稱}
  • Fields
  • 主要就是表示成堆資料的欄位,例如從資料庫當中取出的資料
  • Variables
  • 我還沒自訂過,大概是有提供動態運算的欄位吧,內定的$V{PAGE_NUMBER}就是表示頁數,裡頭的Evalution Time就是哪個時候要決定這個變數的值,當選擇Now的話就是會顯示目前的頁數,選擇Report的話就會顯示這份報表全部的頁數,所以可以在保表上弄兩個Variable,Evalution Time一個選Now,另一個選Report就可以做出 [目前頁數]/[總共頁數] 的功能。
  • Parameters
  • 程式執行可以動態傳入的變數,程式執行時丟入一個MAP(name/value)就可以把這些Parameters填上你想要的值。


?程式部分
程式當中會碰到的Class大概只需要下面幾個:
  • dori.jasper.engine.JasperCompileManager
  • 用來將你的XML Report檔案Compile成jasper檔案, jasper檔案就像是template一樣可以重複利用,所以你可以把Compile出來的東西寫成.jasper檔案,以後就不用重複Compile了,在FillManager的地方直接引入jasper檔案就可以了。
  • dori.jasper.engine.JasperFillManager
  • 要正式產生Report的時候就要利用FillManager把你的資料填入那個之前Compile出來的東西,需要填入資料的似乎只有Fields與Parameters,Fields的填入可以使用JRDataSource或是JDBC Connection,我的資料是已經取出來放在Collection當中了,所以我額外寫一個Class implement JRDataSource,來取Collection的資料,JRDataSource需要實作的method只有兩個:
    getFieldValue(JRField jrField) : 這個會在取得該筆資料的某個欄位時候被呼叫
    next() : 這個會在每次要取下一筆資料的時候被呼叫
  • dori.jasper.engine.JasperPrintManager
  • 我還沒用過,大概是寫Application的時候可以直接輸出到印表機,裡頭也有輸出成PDF的method,不過我都是用下面的ExportManager來輸出成不同的格式。
  • dori.jasper.engine.JasperExportManager
  • 從JasperFillManager得到的東西其實就是整個報表了,ExportManager可以協助你將這個報表用不同的格式來呈現,我想最方便呈現的格式就是PDF了,輸出成PDF檔案只要呼叫exportReportToPdfFile就可以了。

  • dori.jasper.view.JasperViewer
  • 一個GUI的介面,用來看你Compile完之後的Jasper檔案Template長啥樣子
  • dori.jasper.view.JasperDesignViewer
  • 一個GUI的介面,用來看你最後資料填入的Report長的什麼樣子


import dori.jasper.engine.JRDataSource;

import dori.jasper.engine.JRException;
import dori.jasper.engine.JRField;
import edocsys_lib.dataObject.edoc.receiveAllDocInfo;
import java.util.Collection;
import java.util.Iterator;
public class ReceiveAllReporField implements JRDataSource{
int index = 0;
Collection receiveAllDocs;
Iterator docIt;
receiveAllDocInfo doc;
public ReceiveAllReporField(Collection docs) {
receiveAllDocs = docs;
docIt = receiveAllDocs.iterator();
}
public boolean next() throws JRException {
if(docIt.hasNext()){
doc = (receiveAllDocInfo)docIt.next();
return true;
}else{
return false;
}
}
public Object getFieldValue(JRField jRField) throws JRException {
if(doc==null) return "";
if ("ReceiveDate".equals(jRField.getName())) { //收文日期
return edocsys_lib.util.DateFormat.dateFormat(doc.getD_receive(), 1);
}
else if ("ReceiveDocId".equals(jRField.getName())) { //總收文號
return doc.getReceive_doc_id();
}
else {
return "";
}
}
}

2003年11月20日 星期四

JasperReports
配合編輯的editor ireport

JasperReport是一個用來產生報表的java library,這個report是用一個xml來表示,然後經過他的Compiler編譯成他的格式,最後透過他的Report Engine與外部的資料產生最後的Report。
看起來很強,不好上手,因為文件真少(網站上頭詳細的文件要錢,真...),配合ireport的編輯器可以幫你產生那個xml檔案,但是我還是不大曉得怎麼在程式裡頭動態產生report,最近是因為電子公文要弄報表所以丁大告訴我這個東西~
額外一提的是他可以多種格式(PDF/HTML/XLS/CSV) PDF的部分他應該是用iText來做的。另外PDF的中文我還沒搞定.... 只要選擇中文字型,在compile的時候就會出垂~

剛剛又看到其他Report library
JFreeReport
DataVision
JReporter(似乎還很菜)
JFreeChart則是用來產生圖表的library,很多report工具應該都有包這個吧~

要錢產品
JRPL - Java Report Printing Library
JGACE - Java Graph and Chart Engine
Quadbase Systems (EspressReport/EspressChart )
i-net Crystal-Clear
inetSoft Style Report
Windward Reports (使用Word當作layout tool)
jFO(XSL-FO??)
Crystal有做商業化的Reporting產品(好像很強的樣子...)

2003年11月16日 星期日

聽說要是有公司用"國防役"這個名稱,會被國防部打屁股;不過國防儲訓OOXX的還真是難念。
我研究所二年級了,假如順利畢業,而我又無法順利變成一隻重達9x公斤的死胖子的話,依照中華民國憲法的規定,我就得去軍中蹲一年多的兵。想到當兵,人人都怕(好此道的還真有人,實在是跟我的理念不合),終於有點能體會以前老哥說啥要吃胖點逃避兵役還被老爸爺爺罵的感覺了。
國防役? 那還不是在當兵,所以我其實也不大想,理由還有另一個,就是找了老半天,一囉拉庫的國防役公司,沒一個我適合去的,說真的我適合去哪個公司我自己會知道嗎? 疑惑中~ 不過我知道的是我專長鮮少出現在國防役徵才單位的需要人才名單中,我想我的專長應該是在Web端的應用吧(這專長看起來還真是很鳥,沒啥屁用,外加很簡單),啥C++寫韌體,無線網路Protocol,一些可以跟資工扯上邊的東西跟我還真是無緣。不過看到一堆東西我直覺就想到一個人,目前人在交大的ycc學弟,他明年一定熱到不知道選哪家公司好,不過我在想他說不一定根本不鳥國防役這東西吧。

我不想當兵 :(
無庸置疑的,老人愛爬山。無論是我老媽,我爺爺,還是現在的實驗室大老闆。
老闆今天下午忽然把實驗室的大家找去爬山,我還以為是爬學校後山,原來是要去爬梅山,不過我還真不知道梅山這麼遠,我以為梅山是學校後山,而我印象的學校後山一直停留在大雄小學的那種後山,只要走路就可以到達的地方。
很久沒運動了,一直想去健身房也因為一些事情的耽擱而作罷;算了,健身房去不成那就去爬爬山吧,在戶外吹吹涼風走走路是不錯的,讓身體有體驗生命的感覺,感覺心臟很強烈的在跳動(今天跳的真是夠多了~)。
爬山的感想就是,梅山多的不是梅子產品,而是一堆沒氣氛沒感覺的咖啡屋~
(其實應該是昨天的事情了,沒想到現在又是夜晚一點半了... 生命的流逝真快)

2003年11月15日 星期六

想要弄個取代Windows的Desktop System, 說實在的,選擇Linux比選擇用FreeBSD要來的輕鬆方便多了,這一陣子看到某人在公司已經完全用Linux取代掉Windows了,(當然回家還是用Windows,畢竟還是有很多東西得用Winodws比較方便)
讓我盟生,我也想換阿~~ 實在是想讓自己對電腦控制的權利自由點,(厲害就是比較自由,當然要是我還不夠厲害,那換成Linux只是自討苦吃阿~)
肥度拉(Fedora)就是我最近先嘗試的一套Linux Distribution,是小紅帽棄養的孤兒,剛灌好真是讓我嚇到~ 完全改變我對以前Linux底下XWindow的印象,現在從安裝到完成,還不用碰啥設定,USB Mouse/螢幕/顯示卡/音效卡/網路卡,通通抓到沒問題不說,1024*768螢幕不閃,真是太驚人了,更驚人的是滑鼠移動的感覺.... 完完全全已經可以媲美在Windows底下的表現了,滑鼠不會太肥也不會太瘦,移動的速度剛剛好。嚇~

接著選單選一下印表機,安裝實驗室遠端用Windows2000分享的印表機,嚇~ 選單有那台EPSON-5900,嚇~ 列印測試頁~ 正常~ 挖挖挖,離我上次用XWindow的時候差別真是大。

不過還是有點小缺點的,某些軟體中文還是不行,內附的XMMS居然把MP3支援拿掉,不曉得頭腦在想啥,GAIM的ICQ中文還是不行...

裝好直接有Support linux的JDK 1.4(跟在FreeBSD底下要裝JDK真是差太多了啦!),嘿嘿,Eclipse也可以跑了,不過滾輪的確變成破輪子。

不過我還是喜歡FreeBSD的Ports,一開始也不會給你裝一堆有的沒有的,(就是還不夠厲害所以只能先選Linux.....ccc)
改天看看能不能把FreeBSD打造成Fedora那樣好了(我看先放棄好了.....)

三點了,睡覺的時間到了......
話說我的偶像是美夢成真,不過松隆子的歌也十分不賴,是哪種雖然我對日文一翹不通,可是光聽旋律就覺得很有感情的歌(說不一定高興的歌我也聽的很難過也說不一定...怪..... 下次去番中文翻譯來看 ,哈)

怪,這麼晚我還不睡覺在做啥~
(心情差咩)
我不記得我有出國阿,就是很奇怪日夜開始顛倒了。
這種病的症狀就是太陽在頭頂上的時候就會昏昏沉沉,必須要等到月光出現精力才會恢復,可能是前陣子晚上弄東西,又好幾天很晚睡的後遺症吧,現在晚上三點睡覺一點也不覺得累.... (早上倒是挺累的...)
還是睡覺去好了..... BBS上頭真多好笑的文章 :p

2003年11月12日 星期三

多人文件管理系統 [PHP4+MySQL]
http://owl.sourceforge.net/
類似資料夾方式的管理文件/URL
Feature:
-Multi-user environment
?Folder and file permissions
?Group permissions
?User Quota
-Version Control
-Email Notification of Document Updates
-File/Folder Monitoring
-Size of the database is limited by your hardware
-Searchable (integrated search tool)
-Easy to use, and sets up very quickly

2003年11月11日 星期二

今天藉申請成績單的「名義」,回東海小遊了一下。
一大早八點就跑去民雄火車站坐墊車上台中,真的是太久沒這麼早起了,一路上昏昏沉沉到台中,到了久違的台中,有種熟悉的感覺。
接著轉坐台中客運到東海大門口,靠~ 東海怎麼這麼美阿!今天天公真作美,藍藍的天,可惜缺少一點白雲。不過還是讓我在門口就去了好幾張底片 ^^a
不爭氣的肚子又開始痛了起來,來到東海第一件事情居然是跑去30棟宿舍解決,喔,廁所怎麼這麼大啦,真的啦,中正輸了~~
沿路拍拍拍,先到成績組申請成績吧,沿著文理大道拍拍拍,拍到圖書館。
「先生,期中考期間沒有學生證管你是總統也不能進去喔」,嚇!東海管理成功了!
只好搬出學姊的大名靠後門~ 哈...
今天遇到了好友不見的幾位同學跟學姊,沿途美景不斷(當然不只建築景色啦,還包括美麗的人群),晚上跑去吃蘭亭拉麵,不過好像改名字了,菜色變好多,不過湯頭一樣式一擊棒,吃了一口麵,喝了一口湯,差點感動的流出眼淚來,好久沒吃了,懷念懷念懷念!
一天的時間很快的溜走,最後做了東方特快車(自強號啦) 先到嘉義,可惡的台鐵又誤點,害我趕不上一班轉車,等快半小時做下班到民雄的~
幸好早有預料所以做到嘉義,要是做到斗六,下一班到民雄的可是要九點以後了,嚇。嚇不到我低~

^^! 很累但很不錯的一天。