:::

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...)

考試懶得做弊

布丁布丁吃布丁

考試懶得做弊

「考試不做畢業,明年當學弟」、「寧願沒人格,不可不及格」這幾句話大家耳熟能詳,考試課業壓力重,看看雙修的學弟妹隨隨便便都在挑戰一學期修30學分,那麼讀書讀不完是家常便飯的事情。

不知道是不是我在文學院的關係,總覺得身邊很少看到作弊的情景,但是偶爾還是會聽到某個同學這次作了弊,作了小抄什麼的事情,不管再怎樣都要臨時抱佛腳(?)一下。

看著他們作弊的事蹟,我就會覺得,他們真拼。

以前看過一部日本電影,叫做「史上最大作弊戰爭」(原來是安室奈美惠的電影處女作),裡面用了各種手法來作弊,甚至看起來比背整晚講義還認真的多。

如果是我的話:「讀多少就寫多少就好啦。」說好聽一點叫做坦然接受自己的能力上限,說難聽一點就是沒讀到什麼書也不想做弊,已經連掙扎也都不想做了。這麼沒有鬥志的想法,真不知道是好事還是壞事?


20080130補充:不作弊的結果

難得考這種分數,紀念一下

(more...)

Zoundry Raven 0.8.185 Alpha發佈,但問題還在

布丁布丁吃布丁

Zoundry Raven 0.8.185 Alpha發佈,但問題還在

就如之前的介紹中所說的,Zoundry Raven是個不錯的部落格離線寫作軟體。官方的討論區在2008年1月22日公佈了Alpha測試版的0.8.185,但我遇到的問題似乎還是無法解決。因此我想趁這個機會把遇到的問題記錄一下,看未來是否能夠改善。

過長的開啟時間

Zoundry Raven開啟時似乎要載入相當多的程式,特別是載入zoundry.blogapp.service.mediastorage時異常地久,而且還非常吃CPU跟記憶體資源(請見上圖),這中途我連打字都會停頓很久,電腦大概會停頓在此狀態三分鐘左右。

平行線仍然不能使用

我不太能懂為什麼這個看起來應該在裝入這個所見即得編輯器之後就能夠使用的功能,到現在還是不能使用。讓我得到XHTML編輯模式下自己輸入<hr />,感覺真奇怪。

Template Manager仍無法完全解析我的部落格樣板

我得先承認這是因為我在樣板裡面使用了一些非Blogger標準規定的JavaScript,但一般在瀏覽器開啟的時候不會發生錯誤,卻在Zoundry Raven裡面就一直顯示錯誤訊息,這還真讓我頭大。

因為沒有時間去研究怎樣修改我樣板中的JavaScript才能夠適應到Zoundry Raven裡面,所以只好繼續等待有朝一日它能夠解析成功吧。

強行修改XHTML原始碼

所見即得編輯器強行修改原始碼不是第一天見到,但是只要模式切換他就立刻修改,逼的我得發佈之後在自行到Blogger上修改內文,就還是第一次看到了。

特別麻煩的是,插入的縮圖前後一定要加<p>標籤,不然縮圖馬上變成失效的程式碼,這真是頭大。

首次Publish(發佈)一定會失敗

這次的版本有改善,但第一次發佈仍然失敗。上傳圖片到一半,就跳出了上面的錯誤訊息。雖然看起來像是int()的錯誤,但我也無從著手修正,只能期待作者改進吧。

諷刺的是,雖然失敗了,但我的Blog裡面卻出現了該篇文章,所以還有下面這個問題。

無法偵測發佈錯誤的文章

注意到上圖,我的Blog出現了發佈錯誤的文章,但是Zoundry Raven卻沒有偵測到。也就是說,當我發佈第二次而且順利發佈成功之後,我的Blog上便會出現兩篇文章,讓我得手動刪去發佈錯誤的首篇。這動作讓我覺得我還蠻蠢的,你說呢?

這是發佈之後的比較圖,最新文章莫名其妙地重複發佈,真是麻煩啊。有人可能會說,為什麼不要僅發佈第一篇錯誤的就好?因為我常常在做發佈後修改的動作,也就是說幾乎都會做第二次發佈,演變成兩篇新舊發佈文章的情況難以避免啊。


如果能改善上述的缺點的話,我想我一定更喜歡Zoundry Raven吧。不然換到可以用WLW的環境,我應該還是會繼續用WLW才是。

(more...)

青春譜新店唱歌記行

布丁布丁吃布丁

青春譜新店唱歌記行

青春譜日文卡拉OK歡唱天地自2007年年中遷店之後,這是我第一次到新店的位置光顧。新店內部明顯地花了大筆銀兩裝潢,但是外面卻連招牌都沒有,讓我朋友看著門牌找了好一陣子。

新店分成大廳與四間包廂,但目前只開放15人包廂一間。入門右手邊是店長小六的櫃檯,進去之後映入眼簾的便是長方形開放式的大廳。再往裡面走進走廊,轉角處是15人包廂入口,走廊再進去則是廁所。整個店的感覺不太大,而且卡拉OK陰暗的氣氛也有點壓迫感,我們還自己開玩笑地說:「趕快確認逃生出口!」

我們這次訂位的是15人包廂,ㄇ字型的沙發圍繞著兩個長方形桌子併起來的大桌子,前方還有不小的舞臺空間可供表演,旁邊也有廁所。雖說是15人包廂,我認為10人左右應該是比較合宜的人數,應該比好樂迪的包廂還要大,加上折價卷大家攤一攤的價格也還算可以接受。包廂內的運作方式跟一般的KTV一樣,由我們自己操作遙控器點歌,所以像是卡歌、調key什麼的,都相當地自由。

有趣的是,不知道是不是在這些店唱久了的習慣使然,我們點歌一樣是一個一個輪流點,唱完一輪再點下一輪。許多人(包括我)事先都有準備歌單,點歌的時候也不會出現像其他在KTV時翻歌本翻老半天的情況。不過那時候來的人只有7人,每個人都唱了超過10首歌,唱到最後連歌單都沒了,大家開始翻歌本找要唱的歌。

新店採用了新的cyber DAM G50機種,可以開啟此網頁查詢歌單,機種選擇cyber DAM G50。目前青春譜的網頁上公告是更新到2007年3月,雖然跟現在差了快一年,但還是有許多讓人喜愛的經典歌曲可點。日本流行的JPOP就不說了,JAM Project的歌曲、I've(KOTOKO川田まみ島みやえい子等)的歌曲、近期的動畫、甚至連倫Game的歌也有,真讓人目不暇給、難以抉擇。

因為沒有很多時間練歌的關係,所以這次都是練唱舊歌。看到社團朋友們的歡樂表演、精湛的唱功,真的是相當地感動。雖然一學期大概只有一次的時間能跟大家一起唱歌,我還是相當地珍惜、把握,並期待下次地聚會。

(more...)

校內公車刷悠遊卡的話會怎樣?

布丁布丁吃布丁

校內公車刷悠遊卡的話會怎樣?

政治大學因為校區內有山坡,雖然大部分的學院跟女生宿舍都在山下,但是也有少部分的學院跟男生宿舍在山上,其中我所在的圖檔所就是在山腰的文學院,而宿舍則是山頂上。

因此政大校內設有公車,分成學生乘坐的普通公車跟教職員專用的綠色小型公車。普通公車就跟外面街道在跑的沒什麼兩樣,應該也是定期改換跑政大校內的班次。校內公車只需要投一塊錢便可搭乘,所以學生常常會保留一元錢幣在身上,不過有時候沒帶錢不投好像也不會有人介意。

在台北公車上一定會有的東西,就是上圖的那個悠遊卡感應器。搭了一個學期的公車,我一直很好奇那個感應器有沒有作用。每次上車的時候,別人都只有投錢,沒人刷悠遊卡。問了其他同學,大家似乎也都是跟著別人做,沒嘗試去刷過。

如果能用悠遊卡刷一塊錢的話,那不是很方便嗎?不用再找零錢了耶。可是大家都不刷,代表刷了要不是非一塊錢,就是沒有效果。

昨晚搭車上山時,車內人少,司機在旁邊跟乘客聊天,我就拿出悠遊卡來刷刷看。「嗶嗶!」學生票的聲音,而且螢幕上面也顯示著「學生 12元」的訊息。

「唉呀!你怎麼刷悠遊卡呢?」司機驚訝地轉過頭看著我說:「你這樣讓我賺了五毛錢耶。」聽到這句話,我笑了出來。司機補充說道:「按下這個『查詢』可以抵掉你剛剛刷的12元喔?要不要按啊。」我想了想,自己很多次都是沒帶錢就坐霸王車,那這次補刷了12塊應該算補足前面的缺額吧,所以就跟司機說沒關係。

事後想想,我應該對司機跟乘客們,用很帥的語氣說「沒關係,那這些錢就當作請接下來坐車的人吧!」才對。那就留到下次投10元的時候再說吧。

(more...)