:::

NDSL充電於XBOX360之前

布丁布丁吃布丁

NDSL充電於XBOX360之前

當我要測試新買的NDSL USB充電線時,店員大哥把線往XBOX360的USB插槽插上去,而NDSL也亮起了紅色的充電指示燈時,我瞬間為了那任天堂與微軟因為USB標準攜手合作的景象小小地感動到,可惜忘了拍照。

後來借了Wii,也拿來插插看。不過都是自家人的產品,就沒這麼有趣了。

(more...)

延伸式桌面到Power Point放映

布丁布丁吃布丁

延伸式桌面到Power Point放映

許多用過筆電來播放簡報的人,都是把筆電的螢幕跟投影機的螢幕畫面用的一樣畫面(雙顯示複製畫面,Dual View),然後再把投影片印成備忘稿(如右圖)、以方便做筆記,報告時則拿備忘稿看著報告。

實際上Power Point也幫你想好這個方法了,powerpoint簡報時在自己的螢幕秀出備忘稿這篇照片與文字的教學簡單明瞭,在此我想寫一些更深入的細節。

以下的操作畫面是Windows XP以及Power Point 2003,不過Power Point XP(2002)也應該是一樣的操作方式。


外接螢幕到延伸式桌面

筆電接上投影機的時候,投影機就成了筆電的第二個螢幕。電腦的顯示可以調整成三種模式:單一螢幕顯示、雙顯示複製畫面、延伸式桌面,而雙顯示複製畫面是我們最常用的。

但是現在我們則是要使用的是「延伸式桌面」,得先把畫面保留在單一螢幕顯示。

你可以從桌面上按右鍵選擇內容,或是在控制台裡面找到顯示。

到設定值的那一頁,在上方兩個螢幕中選擇到投影機的那一個螢幕(通常會在右邊),調整螢幕解析度,然後打勾「將我的Windows桌面延伸到這個監視器」。

你可以移動上面的兩個螢幕,以調整相對的位置。

完成確定之後,你可以把滑鼠往右移看看,超過筆電螢幕之後,就會跑到投影機的螢幕去喔。

我拿外接式LCD來做示範,注意到兩個螢幕中間有個視窗被切開了,可以同時顯示在兩個螢幕,就像螢幕延長了一樣,這就是延伸式桌面喔!


Power Point 多重螢幕

設定好延伸桌面之後,就可以來用Power Point 2003內建的多重螢幕功能囉!

打開[投影片放映] > [設定放映方式]。

注意到右下角的[多重螢幕]那區,如果有打開延伸式桌面,該區就可以使用。選擇顯示投影片放映於另一個螢幕(像我的就是「監視器2」)。

設定好多重螢幕之後,按下開始放映投影片,就可以看到投影機的畫面是放映的畫面,但是筆電的主螢幕依然是普通的畫面。

你可以在每張投影片的下方寫下備忘稿,此時就可以拿來做講解。

接著你可以把滑鼠移到投影機的螢幕上操作投影片,當切換投影片的時候,筆電螢幕裡面投影片也會跟著切換。

如果你只切換筆電螢幕的Power Point,是不會影響到放映中的投影片的。(上圖中,兩個螢幕顯示的投影片是不一樣的喔)

此時筆電的Power Point還可以開其他的視窗來看,並不會影響到投影片的放映。

你也可以把其他檔案拉到投影片的放映螢幕(前一張的網頁被我拉到放映中的螢幕去了),讓你甚至不需要結束放映還能夠繼續錄影啊!


結語

這種方法可以讓你保有電腦文件的機動性,也可以繼續放映投影片,而且你要調整電腦的時候,觀眾看到的投影片依然不會改變,真的是十分好用。但是相對的操作上就比較複雜了,常常會忘記滑鼠移到哪個螢幕上喔。

可惜的是,Open Office 2.0的Impress似乎沒有這個進階的功能。其實Open Office一直都是這樣,基本使用的話都跟Microsoft Office差不多,可是進階功能就差很多了,再繼續努力吧。

最後感謝勞苦功高的投影機大哥!照片都沒拍到你,現在來補拍一張XD

(more...)

伸縮三節筷&旋轉二節筷使用心得

布丁布丁吃布丁

伸縮三節筷&旋轉二節筷使用心得

最近好像越來越流行自行攜帶環保筷了,週遭朋友幾乎都有一雙環保筷。雖然我在宿舍也有一雙從國中營養午餐用到現在的筷子湯匙組,但是因為體積過大不方便帶出門,因此我決定選擇可以縮短的二節甚至是三節環保筷。

以下就先從二節環保筷開始介紹吧。


旋轉二節環保筷

優點:

  • 塑膠材質
  • 可拆成二節,縮小體積
  • 結合後筷子牢固
  • 筷身設計佳,好夾又好掌握
  • 便宜,家樂福35元購得

缺點:

  • 不容易使用旋轉來接合二節筷身(理由後述)
  • 盒子質感不足

長13cm*寬4cm*高1.5cm,跟國父百元鈔比比看,大概可以佔了快一半的大小。

塑膠外殼與筷身,不重,我也沒有磅秤可以秤重。我喜歡塑膠的質感,相對的,總覺得金屬就是會有種味道,而且又冰又滑不是很好用的感覺。

如上圖所示,筷身是由兩節所構成,中間是以螺絲齒痕的方式連接。問題是齒痕跟另一邊的洞感覺容易囤積髒物,而且不好清理。注意到塑膠的筷身中間還是金屬材質,所以應該蠻牢靠的。

二節筷光靠單之手就可以結合了,但是這仍然有著相當嚴重的問題:手會碰到前半筷身。為什麼這是問題呢?吃飯的時候使用筷子,因此前半的筷身就會很油或是很黏。綜使在吃完之後我們會用衛生紙做簡單的清理,但是油膩的前半筷身依然是不太想去碰。更何況,要抓住前半筷身旋轉的接合或分離的時候,也會因為油膩的關係不好掌握。這是二節旋轉環保筷的致命缺點。

接著來看看筷子的其他部分。這是前半筷身的圓型尖頭,可以看到有刻痕幫助夾食物時較為牢靠,實際用起來也不錯。

後半筷身的尾端,是呈現方形的,以方便掌握筷子本體,手感很好。

因為目前這支二節筷不使用,就乾脆拿前半筷身來當作泡麥片粥的攪拌筷,長度略短,但比整個筷子長還好的多,也不算白買啦。

盒身是單面打開的形式,注意到下半部有擺置前半筷身的架子,讓筷子在收納之後不會因為晃動而滾來滾去發出聲音。

盒身雖然薄,但是面積龐大,對我來說不便攜帶,所以就沒有帶著走了。


伸縮三節環保筷

優點:

  • 體積更小,有質感
  • 伸縮較為方便
  • 拆裝清理容易

缺點:

長8.5cm*寬2.1cm*高1.15,佔了國父紙鈔1/4不到的面積,相當迷你。

先來看看盒身,上方的蓋子旁有鑰匙圈的吊勾,方便吊在包包上。中間有個不太明顯的凹痕,那是用來當筷子架時,筷子會集中在凹槽不容易跑掉的設計。另外,照片上的水漬是因為剛洗過的關係XD

來看看背面,除了凹痕沒有之外,基本上跟正面是一樣的。

蓋子打開的圖片,兩個金色的球狀的東西是筷子的尾端。

蓋子也是單方向開闔的形式,而且有凹槽方便打開,卡住時也蓋得很緊,筷子不會輕易掉落。盒身也跟筷子的尺寸吻合,放在裡面不會因為晃動發出聲音。但是這麼小的盒身要清理也不太容易。

拿出筷子,來看看筷身跟盒子的比例吧。

可以看到三節伸縮的原理,它是三節直徑不同的筷身。

把尾部的金球部份拆開,就可以把筷子拆成三節。注意到上面第二張圖片,這是依照拿出來的順序,所以最後一節的筷身擺在左下角,而第一節的尖端筷身擺在右上角,方向是左下方的。

第一節筷身前端也有刻痕,讓夾食物時比較穩固。

最後一節筷身也有刻痕,但是我覺得這對握筷子的手感幫助不大。而且因為伸縮構造的關係所以是圓的,我也不太喜歡。尾端則是上面提到的金球蓋子部份。

接著來看看他的伸縮。廣告台詞寫的「一甩即出」是真的,但甩出來卻還不能用,還要「順勢的把筷身往外拉一下」。他沒有內建彈簧,所以用甩出來的筷身,還是很容易縮回去。所以必須要抓著第一節筷身拉一下才比較穩固,然而,卻是單隻手無法做到的動作(因為左手要拍照,所以照片只有右手),而且拉過頭的話筷身還會被拉出來。

伸縮三節筷也有跟二節筷一樣的問題:要用手去碰油膩的第一節筷身,就是一種不方便!更何況是當吃飯吃到一半,筷子不小心戳太用力而縮回去,那要再拉出來簡直是一種痛苦且不雅觀的動作。

這是收回去的方式,第一節筷子朝著盒內,用力一插就進去了,也不會弄髒手,我很喜歡。

而且因為攜帶體積小,所以目前是帶著這一組在外面跑。

最後拿這兩組筷子的比較圖來看看,可以看到二節筷比三節筷還要長,實際用起來的時候其實感覺差異不大就是。


結語

在這邊我不講什麼環保概念,主要是厭煩了劣質竹筷容易刺到手、以及怕竹筷會有漂白水不乾淨的問題,所以才想弄個環保筷來用用。

實際上這兩組用起來並不是非常滿意,伸縮三節筷也只能說是堪用的程度。

使用完畢之後,會拿衛生紙擦拭再回收,然而是沒辦法完全清理筷子,筷身依然會油油的。這造成了第二次就不想拿出筷子來使用的問題,因為要拿著油膩的筷身往外拉,覺得不是很舒服。就算是包著衛生紙往外拉,也會怕衛生紙黏到筷子上面,待會一起吃進去。

雖然有點吹毛求疵的感覺,不過在意這些小細節,才能夠設計出好用的產品,繼續努力吧。

(more...)

DSpace系統安裝及設定指南

布丁布丁吃布丁

2 Comments

DSpace系統安裝及設定指南

邱偉嘉
政大圖檔所百年圖書館數位典藏計畫的系統開發維護小組
(2008/1/14)

此文件內容由政大圖檔所百年圖書館數位典藏計畫的系統開發維護小組撰寫,內容包含DSpace所有需具備的環境、安裝程序、後續維護及系統開發建議。



一、管理及開發人員

DSpace網站管理人員需要基礎的linux操作技能,如果你已經具備UNIX-like OS的管理經驗更好。系統開發人員需要具備Java/Jsp/Tomcat/PostgreSQL(or other database)基礎知識,如果你已經具備OOP (Object-oriented programming)、MVC (Model-View-Controller,模型-視圖-控制器模式)、ORM (Object-Relational mapping)的知識更好。

二、DSpace安裝及設定

安裝環境需求

DSpace在UNIX-like OS上有比較好的支援度,也比較穩定,以下將以Step by step的方式說明關於DSpace的安裝及設定。DSpace安裝的環境需求包括:

  • UNIX-like OS (CentOS, RHEL, SUSE etc)
  • Java 1.4 或者更新的版本(SDK即可不需要J2EE)
  • Apache Ant 1.6.2或者更新的版本
  • PostgreSQL 7.3 或Oracle 9或者更新的版本
  • Jakarta Tomcat 4.x/5.x 或者其他類似的Jsp server像是Jetty或Caucho Resin

CentOS

在UNIX-like OS中,我們有很多的選擇,包CentOS (Community ENTerprise Operating System)、RHEL (Red Hat Enterprise Linux)、SUSE等,其中RHEL是需付費的企業用linux發行版,是受到肯定最穩定的distribution,而CentOS是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放原始碼規定釋出的原始碼所編譯而成。由於出自同樣的原始碼,因此有些要求高度穩定性的伺服器以CentOS替代商業版的Red Hat Enterprise Linux使用 (維基百科, 2007)。兩者的不同,在於CentOS並不包含封閉原始碼軟體,也沒有Red Hat公司的服務,但是CentOS是不需要付費的。通常伺服器的RAID (Redundant Array of Independent Disks,磁碟陣列)都受到RHEL/CentOS的支援,而在我們的例子中支援RAID是必須的,以提高伺服器的安全機制,所以最終我們選擇CentOS作為我們的OS。

CentOS安裝說明

在下面幾個地方可以下載到安裝ISO檔。

到BIOS設定「使用光碟開機(Boot from CD-ROM)」,將光碟放入並且重新啟動電腦,即可進入安裝畫面,按照電腦的指示一步一步完成安裝。需要注意的是如果你也想要使用RAID來安裝你的伺服器,你必須選擇你的伺服器支援RAID的RHEL/CentOS版本,過高或過低都不行,否則可能會有驅動程式無法支援的問題。如果你需要更詳細的說明請參照 http://apt.nc.hcc.edu.tw/web/student_server_centos/student_server_centos.html

Java安裝

安裝完CentOS之後,一般都已經內建Java SDK,如果你想要升級你的Java到更新的版本,你可以透過CentOS帶的Yum指令來升級,指令如下。

yum update java

關於Yum指令更詳細的說明請參照http://linux.vbird.org/linux_server/0220upgrade.php#yum

你可以通過Java -version指令來檢查你的Java版本以及是否安裝成功。

Apache Ant

Ant是一套方便Java佈署應用程式的軟體,而DSpace便是採用Ant來佈署,這樣你就不必自己手動安裝佈署DSpace。

Apache Ant安裝及設定

  1. 你可以在http://ant.apache.org/下載到最新的binary版本。一般我們會將下載回來的檔案解壓縮至/opt。
  2. 設置環境變數。指令如下

    vim /etc/profile

    加入以下設定(請注意版本與路徑要以你的設定為主)

    ANT_HOME=/opt/apache-ant-1.7.0
    JAVA_HOME=/usr/java/jdk1.6.0_02
    PATH要加入$ANT_HOME/bin。

  3. 你可以通過ant -version指令來檢查你的ant版本以及是否安裝成功。
    更詳細的Ant安裝及使用說明可以參照http://ant.apache.org/

PostgreSQL

DSpace支援的資料庫有PostgreSQL及Oracle,而Oracle是需要付費的資料庫,PostgreSQL則不用,所以我們採用PostgreSQL作為DSpace的支援資料庫。

PostgreSQL安裝

CentOS已經內建PostgreSQL。如果你想要升級你的PostgreSQL到更新的版本,你可以透過CentOS帶的Yum指令來升級,指令如下。

yum update postgresql

PostgreSQL設定

安裝完PostgreSQL之後我們還需要做一些基本設定,才能夠讓DSpace使用PostgreSQL。

開啟PostgreSQL的TCP/IP的連線,編輯postgresql.conf通常會放在 (/var/lib/pgsql/data或者/usr/local/pgsql/data) Linux操作如下。

vim postgresql.conf
加入tcpip_socket = true
加入listen_addresses = 'localhost' #限定只能localhost連線
vim pg_hba.conf
加入host dspace dspace 127.0.0.1 255.255.255.255 md5

如果你想要開放所有的對外連線來查看你的資料庫(ex. pgAdmin),則你修改的內容必須更改為

vim postgresql.conf
加入tcpip_socket = true
加入listen_addresses = '*' #限定任何IP皆可連線
vim pg_hba.conf
加入host dspace dspace 127.0.0.1 0.0.0.0 md5

(注意,開放所有對外連線是不安全的,你必須明確的了解你做什麼事情。)

最後重新啟動PostgreSQL。

Tomcat

Java/Jsp有很多的伺服器選擇,其中Tomcat是最多人使用的伺服器,且將來若考慮到與Apache(在linux中穩定性最高的網頁伺服器)結合也有比較好的支援度。所以我們採以Tomcat作為我們的Java/Jsp伺服器。

Tomcat安裝

你可以在http://jakarta.apache.org/下載最新的Tomcat development版本,將它放到/opt底下,用tar解開。

tar zxvf apache-tomcat-deployer-6.0.13.tar.gz

執行後會安裝到/opt/apache-tomcat-6.0.13。一樣我們還要設置環境變數。

vim /etc/profile

加入

CATALINA_HOME=/opt/apache-tomcat-6.0.13
CLASSPATH=$CATALINA_HOME/common/lib/servlet-api.jar

將Java加入PATH路徑

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ANT_HOME/bin

export變數

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME ANT_HOME CATALINA_HOME

設定以utf-8來啟動Tomcat,加入

JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"

編輯[tomcat]/ config/server.xml ([tomcat]是你tomcat的安裝路徑)

vim [tomcat]/ config/server.xml

在下面類似的位置加入URIEncoding="UTF-8"

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" />

執行下面程式碼,來重新啟動Tomcat。

[tomcat]/bin/stratup.sh

DSpace快速安裝

前置作業及設定

  1. 在CentOS建立DSpace的帳號

    useradd -m dspace

  2. http://www.dspace.org/下載最新的DSpace source code(本計劃是使用DSpace 1.41版本),放在/opt,並解壓縮。

    gunzip -c dspace-source-1.x.tar.gz | tar -xf -

  3. 複製PostgreSQL JDBC driver (.jar file)到[DSpace-source]/lib,你可以在/usr/share/java/postgresql-jdbc2.jar找到,或者到PostgreSQL JDBC site下載你支援你PostgreSQL版本的JDBC2。
    1. JDBC:Java Database Connectivity,Java資料庫連接,請參考Wikipedia http://zh.wikipedia.org/w/index.php?title=JDBC&variant=zh-tw
    2. [DSpace-source]:你的DSpace原始安裝檔的位置
  4. 建立DSpace在PostgreSQL的帳號:

    createuser -U postgres -W -d -S -P dspace

  5. 建立一個名為DSpace的database:

    createdb -U dspace -E UNICODE dspace

  6. 然後輸入你要設定的密碼
  7. 編輯[DSpace-source]/config/dspace.cfg:

    vim [DSpace-source]/config/dspace.cfg

    下面是你會用到的欄位

    • dspace.dir -- must be set to the [DSpace] (installation) directory.
    • dspace.url -- complete URL of this server's DSpace home page.
    • dspace.hostname -- fully-qualified domain name of web server.
    • dspace.name -- "Proper" name of your server, e.g., "My Digital Library".
    • db.password -- the database password you entered in the previous step.
    • mail.server -- fully-qualified domain name of your outgoing mail server.
    • mail.from.address -- the "From:" address to put on email sent by DSpace.
    • feedback.recipient -- mailbox for feedback mail.
    • mail.admin -- mailbox for DSpace site administrator.
    • alert.recipient -- mailbox for server errors/alerts (not essential but very useful!)

使用Ant來佈署你的DSpace

  1. 在跟(root)目錄建立一個DSpace目錄

    cd /
    mkdir dspace

    (/dspace這個安裝路徑以下以[DSpace]取代)
  2. 變更DSpace目錄的擁有者(chown是改變擁有者的指令):

    chown dspace dspace

  3. 編譯並且安裝DSpace:

    cd [DSpace-source]
    ant fresh_install

  4. 複製DSpace Web application archives (.war files)到你的Tomcat目錄。

    cp [DSpace-source]/build/*.war [tomcat]/webapps

  5. 建立administrator(管理者)帳號:

    [DSpace]/bin/create-administrator

  6. 重新啟動Tomcat。透過URL檢查你安裝是否成功

    http://[伺服器的IP]:8080/dspace (8080 port是tomcat預設連接埠)

如果能夠看到DSpace初始畫面,恭喜你已經安裝成功,若否,請檢查你是否有遺漏的設定,或者聯絡:chiu.wei.jia@gmail.com

三、進階系統設定

在安裝DSpace之後你可能還會需要一些設定讓你的管理工作更輕鬆,以下介紹幾個簡單的功能。

cron-建立週期性自動執行指令

在linux上我們可以使用crontab指令來編輯我們所需要的例行性工作。以下是我們所建議的設定,你可以依據你的需求來建立屬於你的DSpace例行性任務。使用方法如下:

crontab -e

加入以下設定

# Run the media filter at 02:00 every day
0 2 * * * [DSpace]/bin/filter-media

你可以依照你的需求增加與修改,更多個功能情可以查看http://zh.wikipedia.org/w/index.php?title=JDBC&variant=zh-tw

開機時自動啟動服務

如果你想要開機就啟動一些功能(ex: Tomcat伺服器),那你可以修改/etc/rc.d/rc.local檔:

vim /etc/rc.d/rc.local

加入以下設定

#啟動tomcat
/opt/apache-tomcat-6.0.13/bin/startup.sh

備份

如果你想要讓DSpace可以有自動備份的機制,你可以寫一個shell檔(.sh file)裡面寫著備份的程式碼,然後再以先前介紹的方法加入周期性執行。Shell程式碼如下:

dt=`date +%Y%m%d`
mkdir /home/backup/dspace/$dt
chmod 755 /home/backup/*

#備份/DSpace
tar -zcvf /home/backup/dspace/$dt/dspace.tar.gz /dspace

#備份source code
tar -zcvf /home/backup/dspace/$dt/dspace-1.4.1-source.tar.gz /opt/dspace-1.4.1-source

#備份DSpace資料庫
pg_dump dspace > /home/backup/dspace/$dt/dspace_sql.backup

四、總結

上面所介紹的安裝及進階功能都可以依照你自己的需求及情況作調整,無需照抄。若有不明白的部分可以連絡我們。

五、參考資料與網站

(more...)

DSpace中文化專用utf-8轉碼程式

布丁布丁吃布丁

DSpace中文化專用utf-8轉碼程式

要轉換的文字


已經轉換的UTF碼

備註:

  • 英文字及標點符號不會轉換而直接輸出,以免造成DSpace讀取錯誤
  • 轉換方法是前置詞「\u」與uft-8碼的16進位組合而成
  • 如果有「\」會造成錯誤!
(more...)

DSpace的PostgreSQL資料庫架構與操作

布丁布丁吃布丁

DSpace的PostgreSQL資料庫架構與操作

前言

PostgreSQL是個專業但卻免費開放原始碼的資料,選擇他做為DSpace的資料庫是很穩定的。即使由於它過於複雜的架構讓我們沒辦法把它像MySQL這樣地簡單操作,在本文件當中我們依然要求你具備關聯式資料庫的概念,並且熟知SQL語法的操作。特別是SQL語法,這是所有資料庫的共通語言,所以一定要知道。
PostgreSQL有pdAdmin III資料庫管理介面可供使用,GUI圖形化且中文的操作介面也容易使用。但是在DSpace裡面操作資料庫的時候,除了要知道怎麼看JAVA程式來操作物件,還會使用到SQL指令。看完本文件,希望讓你對於操作PostgreSQL有個概念。

第一章 PostgreSQL簡介

PostgreSQL 是由散佈在全球的數百名開發者(包含非營利組織團體,學術研究機構及國際企業體)志願貢獻與共同開發的專案成果,歷今22年來持續發展。長久以來被用於要 求極端嚴謹的商業應用/科學研究環境及政府組織中。PostgreSQL 為 BSD 版權協議發佈,允許您在商業或非商業應用的兩種環境下均能享有自由取得且不受限制的使用權。PostgreSQL 具有高度擴展性,且完整遵從國際 ISO-SQL 規範的開發方向,是當前全球最先進的開放源始碼(OSS)的物件關聯型資料庫管理系統(ORDBMS)。更詳細的介紹可以參考PostgreSQL ::國際中文社群網誌:: http://postgresql-chinese.blogspot.com/

PostgreSQL與其他資料庫類似,使用SQL語言來執行資料的查詢。它的特色在於資料庫的可程式性,對於使用資料庫資料的實際應用,PostgreSQL 讓開發與使用的工作,變得更加容易。

我們在建構DSpace的過程中,只需要透過DSpace的API來操控資料庫,你只需要擁有操控SQL語言的能力即可,不需要深入研究PostgreSQL的功能。由於它的架構十分複雜,我們不建議用SQL或pgAdmin手動新增、刪除或修改資料庫的任何資料或架構,請盡量使用DSpace設計好的物件(object)中的方法(method)來執行。

第二章 PostgreSQL安裝

有些Linux發行版已經內建PostgreSQL,在DSpace的建立過程中,我們使用的CentOS作業系統已經內建,因此我們不需要另外安裝。

如果你想要開放所有的對外連線來查看你的資料庫(ex. pgAdmin),則你需要編輯postgresql.conf (通常會放在/var/lib/pgsql/data或者/usr/local/pgsql/data),並且在Linux之中修改為:

vim postgresql.conf
加入tcpip_socket = true
加入listen_addresses = '*' #限定任何IP皆可連線
vim pg_hba.conf
加入host dspace dspace 127.0.0.1 0.0.0.0 md5

(注意,開放所有對外連線是不安全的,你必須明確的了解你做什麼事情。)

第三章 DSpace資料庫架構說明

透過pgAdmin III可以看到DSpace整個架構。pgAdmin III詳細的操作方法在稍後章節會提到。

以下是DSpace在安裝的過程中會自動建立的表格架構,由於PostgreSQL本身架構太過複雜,與其撰寫把完整的資料庫架構細節寫上來,不如請直接參考輸出的備份檔。在此我將各表格與各欄位的用處及注意事項寫下來,未確認的表格與欄位,註釋則是空白。灰色背景表示是表格名稱與註釋,白色背景表示是該表格底下的欄位名稱與註釋。

第四章 透過pgAdmin操作資料庫

第一節 pdAdmin簡介

pgAdmin III是一個針對PostgreSQL的通用並且具有豐富特性的開放源碼管理和開發工具,可以用在Linux、FreeBSD、Solaris、Mac OSX和Windows平臺上管理運行於任何平臺的PostgreSQL 7.3以及更高級的版本,也包括商業版本例如EnterpriseDB、Mammoth PostgreSQL、Bizgres 和 Greenplum database。詳細網址是http://www.pgadmin.org/index.php?lang=zh_CN,目前最新的版本是pgAdmin III 1.8.1版本(2008年1月23日),適用於Windows平台的pgAdmin III下載位置在http://www.pgadmin.org/download/windows.php,左方可以選擇其他的平台。

第二節 新伺服器登錄

安裝完pgAdminIII並開啟之後,首先你要做的便是將DSpace的連線資料登錄,以便之後的連線。欄位的填寫資料可以參考上圖,但要確定你的PostgreSQL是否有開啟TCP/IP連線,並且允許任何IP連線管理。

第三節 pgAdminIII操作環境簡介

PostgreSQL是有嚴謹架構的資料庫,而pdAdminIII也提供了相當完整且複雜的功能。在此我僅介紹管理DSpace時可能會使用的操作部分。

查詢資料庫中的資料表

如上圖的路徑中,可以找到DSpace所有的資料表。

查詢資料表當中的欄位

資料表可繼續往下打開,即可看到該資料表的所有欄位資料。

查詢資料表當中的資料列

資料表按右鍵,選擇「檢視資料」,當中有

  • 「檢視頂部100筆資料列」:最前面100筆資料的意
  • 「檢視全部資料列」:注意,檢視的資料量過大將會導致伺服器負荷過大,不建議開啟此項
  • 「檢視已篩選資料列」:以where的條件來篩選資料。但也要注意是否篩選結果資料量會過大的問題

直接輸入SQL指令

點選主視窗的SQL查詢工具,可使用此工具快速測試你的SQL語法。如上圖所示,上方是輸入SQL的地方,下方則是輸出的結果處,但不能像「檢視資料」這樣直接修改。除了select查詢之外,你也可以使用update、delete等其他指令,而下方結果輸出處會顯示有幾筆欄位受到影響。

第五章 透過DSpace的API來操作資料庫

DSpace大部分的物件使用方式,你都可以在原始安裝檔的src目錄下找到。其中src/org/dspace/content目錄裡面皆擺放著常用的物件及方法,例如你要操作item的話,那麼可以查詢src/org/dspace/content/Item.java。當然,要記得在文件開頭import檔案。

詳細的物件使用方法我想再另外一個Dspace操作手冊裡面說明,在此就省略。

然而,Dspace提供的物件並不能滿足設計所需,有時候我們仍需要以純粹的SQL語法來進行查詢。src/org/dspace/storage/rdbms中的DatabaseManager.java、TableRow.java跟TableRowIterator.java裡面的物件可以幫助你這樣做。以下詳細說明這些物件的操作方式。

  1. 必須在開頭輸入需要的檔案路徑。在JAVA跟JSP的輸入方法不同,看你要在哪邊操作資料庫。
    JAVA:
    import org.dspace.storage.rdbms.DatabaseManager;
    import org.dspace.storage.rdbms.TableRow;
    import org.dspace.storage.rdbms.TableRowIterator;
    JSP:
    <%@ page import="org.dspace.storage.rdbms.DatabaseManager" %>
    <%@ page import="org.dspace.storage.rdbms.TableRow" %>
    <%@ page import="org.dspace.storage.rdbms.TableRowIterator" %>
  2. Context context = new Context(); //context是DSpace定義的情境,如果你之前的文件裡面沒有context的話,那麼請用此方法建立一個空的context。當然,要記得在開頭import檔案。

  3. TableRow row = DatabaseManager.querySingle(context, "select * from collection"); //querySingle第二個參數是sql語法

  4. String temp = row.getStringColumn("name"); //這樣就能取得第一列的name欄位的值。再執行一次則是取得下一列,依此類推。

DatabaseManager.java中的操作方法有很多種,除了查詢之外也有刪除(delete)、更新(update),也有搜尋或新增等方法,相當地實用,請務必好好讀過一遍。

第六章 透過JDBC連接操作資料庫

JAVA程式語言本身也有提供連接資料庫的應用介面,Java Database Connectivity,簡稱JDBC。開始之前必須再次,DSpace的API具有錯誤回報與紀錄log的功能,而且似乎較不會使系統出現問題,建議不要使用原始的JDBC進行連線。由於早期尚未熟悉DSpace的API前,我先使用了JDBC的方式,導致現在系統時常因為資料庫連線而無法回應,並不是好事。

要使用的JDBC API包裝在java.sql(之後的延伸版本則是擺在javax.sql)之中,因此在使用之前必須要import這個檔案:

JAVA:

import java.sql.*

JSP:

<%@ page import="java.sql.*" %>

接著是與資料庫進行連線。注意以下來自於ConfigurationManager的三個參數,個別代表著資料庫位置、帳號及密碼,這是使用Dspace內建的ConfigurationManger來取得與Dspace同樣設定的方法。當然,要記得import:

Class.forName("org.postgresql.Driver").newInstance();
String db_url = ConfigurationManager.getProperty("db.url");
String db_user= ConfigurationManager.getProperty("db.username");
String db_password= ConfigurationManager.getProperty("db.password");
Connection conn= DriverManager.getConnection(db_url,db_user,db_password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

接著便可以對stmt輸入sql、傳回查詢結果,並且取出。以下是範例,請注意到sql跟rs的類型宣告:

String sql="SELECT * FROM item LIMIT 10 OFFSET 0";
//修改這邊的SQL語法!
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
%><br />
欄位1: <%=rs.getString(1)%>/
欄位2: <%=rs.getString(2)%>/
欄位3: <%=rs.getString(3)%>/
欄位4: <%=rs.getString(4)%>/
<%
}

在while迴圈中,你可以注意到取出rs資料的方法是用getString,而且參數是從1開始而非常見的0。

(more...)