:::

DSpace教學講座(二):JSPUI修改

布丁布丁吃布丁

DSpace教學講座(二):JSPUI修改

image

要怎麼把DSpace醜醜的介面改成像百年圖書館史那樣美美的介面呢?我假設你懂前端網頁版面怎麼呈現(包括HTML、CSS、JavaScript等等),但是要怎麼從後端的JSP去修改呢?我想應該很多人學過PHP,而JSP跟Servlet的架構又不太一樣。

本課堂希望讓大家瞭解DSpace的運作架構,從而頗析Servlet跟JSP的運作流程。再教導大家怎麼修改DSpace的JSP UI,使用一些基本的語法與連接到PostgreSQL資料庫的JDBC

這份投影片大部分都是個人經驗,沒有受過正規JAVA教育的我,可能會哪裡寫錯,請大家多多包含。

投影片下載(Google Page Creator)

投影片下載(政治大學研究生空間)

本投影片的參考附件請按此下載。裡面包含文件、程式碼以及一個草稿用的心智圖(請用FreeMind開啟)。

(more...)

幫MediaWiki設定防止外連

布丁布丁吃布丁

幫MediaWiki設定防止外連

image

MediaWiki提供了權限設定的功能,但卻不能擋住上傳檔案的下載。由於有些文件我不希望別人直接從連結就下載,最好請他們從MediaWiki首頁開始點進去才能觀看,所以我需要一個控管這方面權限的功能。

MediaWiki預設是將檔案上傳到安裝目錄的/images資料夾當中,因此我只要設定Apache,如果要存取/images資料夾下的檔案時,必須要從MediaWiki的首頁過來,這樣就可以解決外連問題了。

請在Apache的httpd.conf設定檔裡面加入以下設定:

#以下是允許連結的網站
SetEnvIf Referer "^http://xxx\.xxx\.xx\.xxx/mediawiki/" local_ref
SetEnvIf Referer "^http://localhost/mediawiki/" local_ref
SetEnvIf Referer "^http://127\.0\.0\.1/mediawiki/" local_ref
#禁止使用者使用wget
SetEnvIfNoCase User-Agent "^Wget" banned_useragent
<Directory "C:/AppServ/www/mediawiki/images">
    Order Deny,Allow
    Deny from all
    Allow from env=local_ref
</Directory>

以下解釋各設定:

  1. http://xxx\.xxx\.xx\.xxx/mediawiki/:你允許的網址,就是你MediaWiki的安裝位置。通常會隨著每台伺服器的設定而有所不同,該部份的設定都要調整過喔。
  2. C:/AppServ/www/mediawiki/images:MediaWiki的images資料夾在伺服器裡的實體位置,要注意Windows路徑必須要改成「/」而不是「\」

再重新啟動Apache,設定就生效了。使用者只能從MediaWiki的首頁進去才能看得到上傳的圖片,而不能直接用網址連結!

(more...)

雨,與紅色的沙發

布丁布丁吃布丁

雨,與紅色的沙發

PIC022

如果之後要我回味在政大的生活的話,我一定會很懷念假日空無一人的百年樓中,坐在這張紅色沙發,聆聽午後雷陣雨的時光。


是的,在這美好的週末假日,我把幾乎所有時間都泡在百年樓的實驗室當中。

大概是因為實驗室裡面越來越多人進來了,假日的百年樓格外地幽靜。最近每天下午都是雷陣雨,為山腰上的百年樓更添山中別墅的清幽感。

我在這邊玩SSH伺服器、又來玩xrdp、接著又要回來玩Apache的mod_auth_mysql,也是如此的快樂。


那張由於所辦整修而清出來的沙發,被擺在走廊之中。

想出去實驗室走走的時候,那就變成一個休憩的地方。

不管怎麼說,我還是很喜歡那張沙發。


因為買了新手機ASUS P750,就順便拍幾張照片來測試吧。

PIC018

從背後看百年樓。但是知道這角度的學生,應該不多。

PIC014

晚上的風雨走廊,老舊的磁磚、老舊的地板,以及走廊旁邊公佈欄貼著凌亂的活動宣傳單,是我對風雨走廊的印象。

(more...)

用Windows的遠端桌面操作Linux——xrdp與VNC Server搭配

布丁布丁吃布丁

用Windows的遠端桌面操作Linux——xrdp與VNC Server搭配

image

在之前我介紹過用VNC Server做到遠端連線的功能,但老實說,這VNC遠端桌面實在是不太好用,不僅操作上總是會有延遲的感覺,更讓人頭痛的是,VNC Server免費版本是沒有加密功能,很容易遭人竊取!

在網路上找來找去,總算找到一個解決方案:xrdp,開放原始碼的遠端桌面通訊協定(remote desktop protocol)伺服器。

image

使用xrdp,你就可以用Windows上的「遠端桌面連線」來看到Linux上的桌面喔!

網路上很多人都是用Ubuntu的apt-get來安裝xrdp,但這對RedHat家族的CentOS來說可就沒有apt-get這個方便的工具了。因此這一篇則是記錄著在CentOS 4.3上安裝設定xrdp與vnc server的方法,可惜最後我無法開機自動啟動VNC Server,這部份就得手動用SSH來開啟了。


1. 安裝xrdp

CentOS要安裝xrdp可以用簡單的rpm來安裝。請到DAG: xrdp RPM packages for Red Hat, CentOS and Fedora裡面下載xrdp-0.4.0-1.rh9.rf.i386.rpm(注意到自己OS的版本)。

執行rpm安裝指令:

# rpm -ivh xrdp-0.4.0-1.rh9.rf.i386.rpm

這個rpm檔案安裝完畢之後,大部分設定檔是擺在「/etc/xrdp/」之中,在本文裡面我們並沒有特別要去變動的設定,在這邊就只稍微提一下而已。

2. 啟動xrdp,並設定開機自動啟動

xrdp啟動指令如下:

# /etc/rc.d/init.d/xrdp_control.sh start

最後的「start」改用「stop」跟「restart」則會是停止、重新啟動的指令。

到這裡為止,你已經可以用遠端桌面來連到該伺服器了,但還不能順利執行遠端桌面喔。

為了讓伺服器在開機時就自動啟用xrdp,我們得要設定/etc/rc.local。編輯/etc/rc.local:

# vim /etc/rc.local

在最後加入以下指令

/etc/rc.d/init.d/xrdp_control.sh start

這樣開機就會自動啟動xrdp了。

p.s. 我後來在CentOS 5 Final上面安裝rpm檔案,卻會套件相依性的錯誤。用yum install那些套件之後,在安裝rpm,卻也會有錯誤訊息,而且到最後找不到xrdp_control.sh的位置。總之就是安裝失敗,真是讓人遺憾。

3. 用VNC Server來登入遠端桌面

xrdp只是一個通訊協定,真正進行遠端桌面的還得依賴其他軟體,在此我們使用的是VNC Server。

VNC Server的啟動與設定方法我在之前VNCserver初始設定與自動啟動裡面有敘述過,這邊再簡單把作法帶過:

  1. 以root修改vncservers啟動設定: # vim /etc/sysconfig/vncservers如果你要以dspace帳號登入,登入桌面為1024x768,那麼加入以下設定:
    VNCSERVERS="1:dspace"
    VNCSERVERARGS[1]="-geometry 800x600"
  2. 以root啟動vncserver # /etc/init.d/vncserver start
  3. 切換到dspace帳號 # su dspace 執行vncpasswd來設定密碼 #vncpasswd
    Password: //輸入 VNC 密碼
    Verify: //再輸入一次 VNC 密碼以確認
    修改~/.vnc/xstartup (如果沒有這個檔案,那代表之前2個步驟沒有完成) # vim ~/.vnc/xstartup該檔案的內容如下,請將SESSION_MANAGER與exec /etc/X11/xinit/xinitrc開頭的#註解拿掉,其他行則加上註解。參考如下: #!/bin/sh
    # Uncomment the following two lines for normal desktop:
    unset SESSION_MANAGER
    exec /etc/X11/xinit/xinitrc

    #[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    #[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    #xsetroot -solid grey
    #vncconfig -iconic &
    #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    #twm &
  4. 回到root # exit 重新啟動VNC Server # /etc/init.d/vncserver restart修改/etc/rc.local,把啟動的命令加進去# vim /etc/rc.local在最後加入以下指令/etc/init.d/vncserver start

這樣就大功告成了。而VNC Server預設是會被防火牆擋住,所以只能靠xrdp進到本機端來連線。

根據之前在CentOS 5 Final安裝VNC Server的經驗,照理說在/etc/rc.local增加「service vncserver start」的指令應該就能夠開機自動啟動VNC Server,但嘗試多種設定方法之後依然失敗。VNC Server有在執行中,但並沒辦法開啟遠端桌面。

因此最後我的解決方案是,在需要用遠端桌面的時候,先以SSH登入Linux「service vncserver start」,再用遠端桌面登入Linux。

4. 用Windows的遠端桌面連到Linux

image

「遠端桌面連線」通常在「開始→所有程式(程式集)→附屬應用程式→通訊→遠端桌面連線」可以找到。

image

請在「電腦」的地方輸入該伺服器的IP或Domain Name,按下「連線」。

image

使用者名稱跟密碼隨便輸入,按下「確定」。

image

Module選擇「console」(本機操作),密碼則輸入在設定vncpasswd時的密碼。按下ok。

image

如果沒有出現錯誤訊息的話,那就可以順利進入到Linux的桌面囉!

如果出現error - connect problem,那得要用SSH登入Linux將vncserver restart囉。


這一篇從昨天晚上寫到今天下午,而且還不算是很完美的解決方案,有點讓人灰心啊。

(more...)

Windows上的SSH伺服器——cwRsync Server

布丁布丁吃布丁

Windows上的SSH伺服器——cwRsync Server

image

Windows跟Windows之間可用網路上的芳鄰(NetBIOS)來傳輸資料,Linux跟Linux之間則常用SSH,Windows跟Linux之間則就得另找方法。

SSH是目前較為可靠、專為遠端操控和其他網路服務提供安全性的通訊協定,可以取代不夠安全的TelnetFTP。此外,Linux備份最常用的工具rsync也是支援SSH,之前我在玩的CloneZilla Live也有用SSH來儲存硬碟映像檔的能力。

由於我還是覺得管理上Windows 2003 Server是比較方便的,因此我選擇在Windows上架設SSH伺服器,提供其他伺服器備份、傳輸資料。


Windows上的SSH伺服器「cwRsync Server」是自由軟體,安裝過程簡易,但我在操作的時候遇到了點問題,想說乾脆在這邊記錄一下整個安裝過程。

1. 下載cwrsync server

請選擇cwRsync_Server_2.1.4_Installer.zip這樣的檔名來下載喔!

2. 安裝

image

解壓縮檔案之後,只有一個安裝檔,開啟執行。安裝過程中會花時間建立檔案,請耐心等待。

3. 建立使用者

由於在Windows 2003 Server上建立檔案時是使用Windows的格式去寫入,而不是使用UNIX的格式,造成程式無法讀取。建立使用者的時候會使用到activate-user.sh就會有這個問題。我把activate-user.sh轉換成UNIX檔案提供下載:Google Page Creator空間,請取代安裝目錄裡面的\bin\activate-user.sh(預設是C:\Program Files\cwRsyncServer\bin\activate-user.sh)。

image

然後進入「開始→所有程式(程式集)→cwRsync Server→05. Start a Unix BASE Shell」。

新開出來的命令提示字元畫面會顯示以「$」開頭的命令列,此時請輸入「/bin/activate-user.sh」執行,系統時會出現訊息:

Do you want to activarte a (l)ocal or a (d)omain user [l/d]?

此時請按 l (小寫L)。如果系統沒有出線上面的訊息,而是出現「line 4: $'echo \r ': command not found」之類的訊息,那麼就得把activate-user.sh轉換成UNIX格式替換掉。

接著畫面最下方會出現:

Enter a user account for activation:

可輸入 Administrator 或是其他帳號。

然後,接下來出現的訊息都可直接按 Enter 跳過了。

4. 啟動Openssh SSHD跟RsyncServer服務

image

在「我的電腦」上按右鍵,進入「管理」。

image 

選擇左邊最下面的「服務及應用程式→服務」,再到右面找到「Openssh SSHD」跟「RsyncServer」兩個服務,按右鍵選擇「內容」。

image

啟動類型選擇「自動」,並按下「啟動」。RsyncServer也是一樣的作法。

5. 測試連線

我使用FileZilla Portable,伺服器型態使用「SFTP使用SSH2」來連線,確定上傳下載都沒問題,就大功告成囉。

image

至於cwRsync其他的設定我還沒研究,目前只碰到這邊而已,有興趣的話可以看看下面appleboy的Blog以獲得更多的資訊。


參考資料:

(more...)

DSpace教學講座(一):DSpace的資料結構與Metadata設計

布丁布丁吃布丁

DSpace教學講座(一):DSpace的資料結構與Metadata設計

image

根據之前的經驗與理解,我把DSpace的結構與該怎麼設計DSpace Metadata的方法整理成了一份投影片,以方便講解。

在研習班時,許多人仍然不能理解DSpace的資料結構為何要這樣設計,但其實這種資料結構方式在數位典藏系統當中隨處可見。如果拿交通大學雲門舞集舞作數位典藏來比對之下,會發現其實他們的設計概念跟DSpace不謀而合。這份投影片搭配著雲門舞集實例講解DSpace的架構,應該更讓人容易理解。

Metadata的概念被說到爛了,但是能夠設計一份漂亮的Metadata,這仍是很多人都做不到的事情。我列了一下在DSpace裡面設計Metadata要考慮到問題,但是由於DSpace受限於平面結構的Metadata,難以支援Metadata靈活的樹狀結構,這該如何解決,目前仍沒個定案。

此份投影片僅供參考,並不完全正確就是。

投影片下載(Google Page Creator)

投影片下載(政治大學研究生空間)

(more...)

中華民國圖書館學會97年數位典藏實務與加值服務研習班順利結束

布丁布丁吃布丁

中華民國圖書館學會97年數位典藏實務與加值服務研習班順利結束

0810_124544

在一片兵荒馬亂的混亂中,中華民國圖書館學會97學年度「數位典藏實務與加值服務研習班」終於順利落幕。

陳老師計畫以DSpace作為本次研習班的特色之一,有參與台灣大學機構典藏IR30相關學校的館員也過來一探究竟。第二天的「數位典藏系統與平台設計」課程中,我希望能盡量把DSpace的知識教給學員們,但是卻誤認了學員的需求與認知,因此課堂中發生的混亂情況讓我頗為自責。儘管如此,不少學員們透過自我摸索或請教的方式,在最後的成果發表時依然看到了不少亮眼的表現,實在是很欣慰。

舉辦這種研習班與一般的研討會並不一樣,每位學員都背負著所屬單位的期許與任務:「我們館內有好珍貴的館藏,年底我們就要開始數位典藏計畫,所以我才來這邊學習。」「我也用過DSpace,但還是有很多問題,這次來想把他搞懂。」為了能呼應他們的期望,我們這邊也是盡全力地提供最好的課程與服務。但仍是得感慨時間太少,上到最後一天仍還是覺得有很多沒教完的知識,總有遺珠之憾。

感謝各學員的配合與努力,儘管這次研習班所學內容與實際建構數位典藏系統還有好大一大段的距離要走,但DSpace這麼難用的系統你們都用起來了,那由廠商設計的系統想必更容易上手吧。


0810_124608

話說回來,我明明名牌上掛著是自己的本名,為什麼到最後好多學員都叫我「布丁」呢?叫著叫著大家好像就開始熟了起來,教著教著還聊起他們單位的趣事,真是有趣。

「你在這次研習班裡面賺到了人脈」,同學如玉如是說。雖然我腦袋裡面只有裝著「該怎樣才能讓學員學到東西,好讓他們帶回去交差」的事情,不過這種收穫還真是意料之外的事情,我就虛心收下了。


接著談談工作人員的情況。

這次有三門實作課程,其中又有DSpace作為數位典藏平台的實作課業,學員們使用電腦教室及設備的次數相當頻繁,而且操作時候遇到的問題也是源源不絕的來。由於懂得使用DSpace的學生不多,為了能幫學員解惑,所以我很多時間都待在電腦教室中。

令人高興的是,本次來幫忙的新生們,雁農、于璇、浚維、憶珊等等都相當地盡職且努力,幫我分擔了不少工作。這次工作任務的分配上我們太過小看工作的份量,實際上應該一個時段得配兩個人才足夠。

別忘了,設備組一直都是在最前線服務老師與學員們!如果設備組的人只要一不在場,很多時候就容易陷入混亂。希望設備組的學弟妹們都能夠盡自己的努力去提供最好的服務,如果表現很好的話,也能夠在大家面前增加些人脈分數也說不定喔!

期許這次研習班的經驗,能成為未來學弟妹在舉辦相關活動時的助力。


在製作DSpace教學時、幫學員解答問題時、以及跟學員們討論他們計畫的數位典藏架構時,再再地都讓我對DSpace有更多地認識與省思。

DSpace作為一個機構典藏系統還可以接受,但要做到數位典藏系統,在資料結構層次上太過單薄而不足以應付(數位典藏的Metadata是要樹狀結構的啊!),畫面呈現更是讓人不知道該從何改起才好。當然,DSpace實際上還是有很多功能我們還沒有完全探究,這也是現在教育部計畫當中我們正在努力的部份。

一點一滴地發掘出DSpace的潛力,實在是很有樂趣的一件事情。

只是,我的論文什麼時候才要開始寫呢......(遠目)

(more...)

FTP伺服器大量運載測試:zFTP Server V.S. Rainbow FTP Server 4.0家用版

布丁布丁吃布丁

FTP伺服器大量運載測試:zFTP Server V.S. Rainbow FTP Server 4.0家用版

先說結論:zFTP Server獲勝!

測試都在同一台伺服器等級的電腦上,使用學校區域網路傳輸5G以上的大檔案。

由於所上的FTP需求有「使用者可自行更換密碼」的這一項,因此我主要只選擇具備這種功能的FTP伺服器。這次看的zFTP Server Suite(簡稱zFTP)與Rainbow FTP Server(簡稱彩虹FTP)的企業版都具有這種功能,但是各有優劣。以下一一說明。

zFTP Server Suite 2008-05-29 05:59

zftp

簡稱zFTP,自由軟體免付費可使用,權限控管功能完整。可支援IE的ftp模式,但遇到中文檔名時會因為亂碼而失敗。

五台電腦同時傳輸,速度大約都有1MB/S以上,狀況好的情況甚至可以到3MB/S以上。

zFTP可使用PHP網頁來修改使用者密碼,可以參考實用技巧說明網頁

上傳中文檔名時有時候檔案會消失,可能是某些中文字導致zFTP無法辨識。但我質疑是伺服器的問題,現在重灌之後繼續使用看看狀況。

Rainbow FTP Server 4家用版

rainbowftp

家用版是不需要錢的,但比起企業版或是zFTP便少了很多功能,還好還支援最基本的上傳下載。預設開啟不支援IE瀏覽,就連Rainbow FTP-G 也一樣,要另外改成。

四台電腦同時傳輸,速度大約有500KB/S左右,狀況好的情況可以到1MB/S。

imageRainbow FTP Server企業版有使用者自行修改密碼的功能,需要下載免安裝用戶端工具才能使用。如右圖,詳情請看簡易用戶端工具說明。此工具也具備FTP上傳下載的功能,但不能直接拖曳、一次上傳下載也只能一個檔案,只能算是堪用。


zFTP的確是很厲害的一套軟體,雖然他之後的版本廣告開始打的很兇,讓我有點感到反感就是。

(more...)

數位典藏系統與平台設計—以DSPACE為例

布丁布丁吃布丁

數位典藏系統與平台設計—以DSPACE為例

image

在日前中華民國圖書館學會九十七學年度「數位典藏實務與加值服務研習班」當中,我根據老師的指示製作了兩份對於DSpace介紹的投影片。

數位典藏系統與平台設計--以DSpace為例

整個DSpace的簡介,看完這份投影片,可對DSpace整體架構與功能有所瞭解。

DSpace實作教學

從Community、Collection到Item的建立,並介紹如何修改DSpace的Metadata,最後在教兩種修改版面的簡單功能。儘管研習班當中我是社計好許多簡化的步驟,這跟平常直接安裝好原始的DSpace還是有些差異,但投影片當中也有註明那些省略步驟的位置。

對於DSpace有任何問題,也歡迎大家一起來討教討教。

(more...)

連接VirtualBox主端介面的網路橋接器,讓網路不能連線的問題

布丁布丁吃布丁

連接VirtualBox主端介面的網路橋接器,讓網路不能連線的問題

VBox_connect

我在電腦教室裡面安裝了VirtualBox 1.6.2版本,並先安裝好「VirtualBox主端介面」、設定網路橋接器,再對網路橋接器的設定IP,以讓電腦可以上網。詳細的設定步驟,可以參考VirtualBox用網路橋接器設定虛擬機器的固定IP這篇。

設定完畢了一台電腦之後,接著用CloneZilla Live複製到多台電腦上面。

整個動作完成之後,卻發現其他電腦無法順利上網。

後來發現是那個「VirtualBox主端介面」的問題,移除掉、並重新設定網路橋接器,便可以順利上網。

此篇作為一個記錄,給後面用VirtualBox又做硬碟複製的管理者一個參考。

(more...)

學術研討會的奧妙

布丁布丁吃布丁

學術研討會的奧妙

在於茶敘時間的點心,又多又不用你花錢。

0704_112314

上圖來自於某次成果發表會時,點心訂購太多,叫我們來幫忙帶些回去的戰果。

(more...)

生病、開會、責任感

布丁布丁吃布丁

生病、開會、責任感

一早起來,身體就怪怪的。

「我覺得喉嚨熱熱的,怪怪。」在實驗室裡面一邊跟小頭閒聊,一邊趕著設定Apache。小頭回問:「下午還要開會耶,撐得下去嗎?」

「不知道。」

腦袋裡面想的只有Apache的httpd.conf設定檔。


本來以為只是跟往常一樣,鼻液倒流導致喉嚨發炎與中耳炎。噴了鼻子噴劑之後,想說一下子就可以恢復吧。

只是沒想到,下午越來越嚴重。

大概是因為會議中講的話還蠻多的,回神過來,喉嚨已經像火燒起來一樣。


「所以我們的需求是這樣子的,子4你們可以做到嗎?」

他們提問了,我得趕快想個解決的方法。

可惡,腦袋越來越混亂了。

光是要理解他們的問題,都不是這麼容易。

其他人也快想想辦法啊。

不要都不說話啊。

好吧,只好再努力點了。

撐下去。

「......我想應該可以這樣做......」

 

0726_212735

(more...)

DSpace 1.5統計功能無法開啟的問題

布丁布丁吃布丁

DSpace 1.5統計功能無法開啟的問題

參考資料來自於這篇:DSpace statistics(统计问题) - 上善若水.class - CSDNBlog

如果你下載的DSpace 1.5版無法正常啟用統計功能(statistic),可能是因為原始碼的API寫錯了。

請修改LogAnalyser.java,可以善用locate幫忙搜尋:

#vim [dspace-source]/dspace-api/src/main/java/org/dspace/app/statistics/LogAnalyser.java

將1216行多餘的「"FROM metadatavalue " +」註解掉,結果如下:

dateQuery.append("FROM metadatavalue " +
                  //"FROM metadatavalue " +
                  "WHERE metadata_field_id = (" +
                  " SELECT metadata_field_id " +
                  " FROM metadatafieldregistry " +
                  " WHERE element = 'date' " +
                  " AND qualifier = 'accessioned') ");

然後重新打包,請參考DSpace System Documentation_ V1.5 - May 2008.pdf 84頁的rebuild the DSpace Web application:

#cd [dspace-source]/dspace
#mvn package

等待mvn打包結束之後,再執行ant佈署:

#cd [dspace-source]/dspace/target/dspace-[version].dir
#ant -Dconfig=[dspace]/config/dspace.cfg update

等待ant佈署結束之後,再複製新的war到tomcat的webapps目錄:

#\cp -rf /dspace/webapps/ /opt/apache-tomcat-6.0.16/webapps/

這樣用以下指令執行統計功能就不會出現問題了。

#[dspace]/bin/stat-initial
#[dspace]/bin/stat-general
#[dspace]/bin/stat-monthly
#[dspace]/bin/stat-report-initial
#[dspace]/bin/stat-report-general
#[dspace]/bin/stat-report-monthly
image
(more...)