:::

修復Proxmox VE:集叢未啟動 / Fix Proxmox VE: Cluster Not Ready

布丁布丁吃布丁

修復Proxmox VE:集叢未啟動 / Fix Proxmox VE: Cluster Not Ready

2014-08-08_013834

本篇是修復Proxmox VE的集叢(Cluster)中遇到「TASK ERROR: cluster not ready – no quorum?」的錯誤。這個錯誤是因為集叢未正常啟動,以下說明造成錯誤的原因以及解決方法。

This article describes the problem of Proxmox VE Cluster: “TASK ERROR: cluster not ready – no quorum?”. A proposed solution to the problem is executing “pvecm expected 1”. Following are the problem description and solutions.


問題狀況 / Problem Description

2014-08-08_013834

在Proxmox VE是在集叢的狀況下,在節點(Node)操作的時候進行虛擬機器的建立(create)、刪除(remove)、備份(backup)、遷移(migrate)時,有時候會出現以下錯誤訊息:

TASK ERROR: cluster not ready – no quorum?

在這個狀態底下,將不能對虛擬機器進行任何操作。而虛擬機器本身則可以繼續運作,不會中斷。

你也可以用pvecm status指令來查詢看看現在的狀態:

2014-08-08_023200 - 複製

請Proxmox VE節點伺服器上執行以下指令

pvecm status

Proxmox VE會顯示集叢現在的狀態,例如:

Version: 6.2.0

Config Version: 3

Cluster Name: dlll-cias

Cluster Id: 52033

Cluster Member: Yes

Cluster Generation: 144

Membership state: Cluster-Member

Nodes: 1

Expected votes: 3

Total votes: 1

Node votes: 1

Quorum: 2 Activity blocked

Flag:

Ports Bound: 0

Node name: proxmox-02

Node ID: 2

Multicast addresses: 239.192.203.13

 

其中你可以注意到「Quorum: 2 Activity blocked」這段訊息,表示你的集叢是在鎖定的狀態。

問題原因 / Causes of Problem

發生這個問題是因為Proxmox VE的集叢沒有正常運作。quorum是集叢中重要的一個服務元件,如果集叢有任何設定錯誤,都會導致quorum無法正常啟動。因此遇到這個問題時,並不是去啟動quorum,而是要先解決造成集叢錯誤的原因。

2014-08-06_222659

造成集叢錯誤的原因中,最常見的就是節點之間網路的斷線,集叢中節點數量低於2時,集叢就會被鎖住。如果集叢中有pmox1、pmox2、pmox3三臺伺服器,然後把pmox3網路中斷。接著過不久之後,pmox3就會陷入「no quorum」的狀態。這是因為Proxmox VE Cluster預設期待集叢中必須要有2個節點(Node)以上,可是因為網路斷線的緣故,pmox3只能偵測得到一臺Node,這時候集叢就會把pmox3鎖住。因此才會出現「Quorum: 2 Activity blocked」這個狀態。

手動解決方法 / Manual Solution

解決方法是暫時把集叢的期待數量從2降低為1。做法如下:

pvecm expected 1

這個步驟會讓集叢改為只期待1個節點正常運作。

service pve-cluster restart

這個動作會重新載入集叢設定,而虛擬機器不受影響。

2014-08-08_020158

再使用pvecm status查詢時,會發現Quorum已經變成1,而Activity blocked狀態已經解除。接著就能夠進行虛擬機器的新增、刪除、備份、遷移。而當該節點與集叢正常運作時,節點設定不需要任何修改。

自動解決方法 / Automatic Solution

為了避免網路異常時集叢每次都會把自己鎖定,我們可以每天定時去檢查集叢的狀態。如果陷入「Activity blocked」的時候,就自動進行解除的動作。

  1. 建立/root/pulipuli_scripts目錄:
    mkdir /root/pulipuli_scripts
  2. 請把cluster_is_activity_blocked.shcluster_disable_activity_blocked.sh兩個檔案下載到該目錄底下:
    wget http://goo.gl/6gyDnH -O /root/pulipuli_scripts/cluster_is_activity_blocked.sh
    wget http://goo.gl/r37ySO -O /root/pulipuli_scripts/cluster_activity_unblocked.sh
  3. 新增可執行權限:
    chmod +x /root/pulipuli_scripts/*.sh
  4. 加入crontab排程
    crontab -e
    新增以下設定:
    # 定期解除Proxmox VE Cluster鎖定狀態
    0   3  *  *  * /root/pulipuli_scripts/cluster_activity_unblocked.sh

這樣子每天凌晨3點的時候,Proxmox VE都會檢查集叢,然後嘗試解除被鎖定的狀態。

(more...)

自訂小狼毫的注音字典 / How to Custom Weasel’s Bopomofo Dictionary

布丁布丁吃布丁

自訂小狼毫的注音字典 / How to Custom Weasel’s Bopomofo Dictionary

2014-08-07_011259

小狼毫是基於中州韻輸入法引擎(rimeime)所發展的智能輸入法Windows版本,裡面也包含比微軟新注音更好用的「注音·臺灣正體」輸入法。為了讓小狼毫更加順手,做到「我手打我口」,本文教你如何自訂自己的注音字典。

Weael IME is the Windows version of RIMEIME which is better than Microsoft New Phonetic IME. This article describes how to add a Pingyi custom dictionary to your Weael IME.


小狼毫的注音字典 / Weasel’s Bopomofo Dictionary

小狼毫的注音字典是根據萌典來建置,但是建置注音以讀音為主(從文字念出的聲音),而缺乏我們日常口語習慣使用的語音。舉例來說,「」這個字只有著錄讀音「ㄅㄧㄢˋ」(bian4),卻沒有著錄語音「ㄆㄧㄢˋ」(pian4)。因此在打字時會覺得很不習慣,怎麼平常唸的字都打不出來。

雖然事實上是因為自己讀中文字的方式一開始就讀錯了,是個小學生都不如的錯誤國學程度,但我還是希望一個輸入法能夠照自己的習慣來運作,因此嘗試去找尋看看有沒有自訂注音字典的可能性。

最後還是由中州韻輸入法的作者佛振(lotem)為我解惑,所以我想也趁這個機會,把這個方法整理一下,供大家參考。


Part 1. 加入自訂字典配置 / Setup Custion Dictionary

Step 1-1. 開啟用戶文件夾 / Open User Data Directory

2014-08-07_012824 - 用戶文件夾

首先,先打開你的【小狼毫】用戶文件夾。這個資料夾位置會在你安裝小狼毫時設定。你也可以從「開始 > 所有程式 > 小狼毫輸入法 > 【小狼毫】用戶文件夾」找到這個連接。

Step 1-2. 下載自訂字典檔案 / Download Custon Dictionary

2014-08-07_013042

接著我們要在用戶文件夾中存放自訂字典。以下兩個連結請直接按右鍵另存新檔,存到這個資料夾當中:

Step 1-3. 重新部屬小狼毫 / Reconfiguration

2014-08-07_012824 - 重新佈署3

修改小狼毫設定都必須要經過重新部屬才能生效。

重新部屬的位置在「開始 > 所有程式 > 小狼毫輸入法 > 【小狼毫】重新部屬」。點下去之後,稍等個30秒,再切換回小狼毫輸入法,這樣子自訂字典就生效了。

2014-08-07_105157

由於我已經在上面那個自訂字典裡面加入「遍」的語音「ㄆㄧㄢˋ」(pian4),這時候你打「ㄆㄧㄢˋ」應該就會出現「遍」這個字。這樣就表示安裝成功了。


Part 2. 修改自訂字典 / Edit Custom Dictionary

2014-08-04_234031 - 複製

接著是要教大家怎麼自訂使用的注音。

Step 2-1. 用萌典查詢漢語拼音 / Find Pingyi on Moe Dictionary

小狼毫裡面著錄注音的方式,並不是直接使用注音符號的「ㄅㄆㄇㄈ」,而是使用英文拼音來著錄。舉例來說,要新增「遍」的語音「ㄆㄧㄢˋ」,必須先查到「ㄆㄧㄢˋ」的漢語拼音為「pian2」。

2014-08-07_110135

利用萌典,我們可以直接查到「」語音的漢語拼音。只是萌典裡面顯示的漢語拼音是「piàn」(a有加重音),它是以「à」來表示注音符號的聲韻。這時候我們直接取其英文字「pian」(原始的a),然後後面加上聲調四聲「ˋ」的數字「4」,最後完成為「pian4」。聲調與數字的對照請見下表:

名稱 陰平聲 陽平聲 上聲 去聲 輕聲
順序 一聲 二聲 三聲 四聲
符號 不標 ˊ ˇ ˋ ˙
數字 1 2 3 4 5

總結以上做法,摘要順序如下:

  1. 目標設定「遍」的語音「ㄆㄧㄢˋ」 。
  2. 上萌典找到「」的漢語拼音為「piàn」 。
  3. 取其英文字「pian」,最後搭配聲調四聲的數字「4」,組合成「pian4」。

「pian4」就是小狼毫中能夠接受的漢語拼音了。

Step 2-2. 加入到自訂字典中 / Add Pingyi to Custom Dictionary

接著開啟剛剛下載的自訂字典檔案「terra_pinyin.mine.dict.yaml」。

在「# 自定義的字詞」後面加入我們要自訂的設定。每一行單獨一個設定。文字與漢語拼音的對應中間以「tab」隔開。如果是兩個字以上的組合,漢語拼音之間要有一格空格。

格式如下:

[中文](tab)[漢語拼音]

因此設定「遍」的漢語拼音為「pian4」時,設定如下:

如果是兩個中文字「普遍」的漢語拼音為「pu3 pian4」,設定如下:

 

2014-08-07_111742

加入之後,設定檔如上圖,完成之後就儲存吧。

Step 2-3. 重新部屬小狼毫 / Reconfiguration

2014-08-07_012824 - 重新佈署3

一樣的,我們修改設定檔之後,需要重新部屬小狼毫才會生效。不厭其煩地再說一次,重新部屬的位置在「開始 > 所有程式 > 小狼毫輸入法 > 【小狼毫】重新部屬」。點下去之後要等個30秒,然後測試看看剛剛新增的設定能不能打出來吧。


小結:高度自訂的輸入法 / Conclusion: Highly Customizable IME

知道這個方法之後,小狼毫逐漸越用越順手了。

我後來又加入了幾個設定:

  • …    ou ou ou
    打…三個點就會出現一個刪節號標點符號
  • ──    er er
    打橫線兩次就會出現破折號

因此我就可以在打字時同時輸入——跟…,非常方便。

2014-08-07_113512

此外,小狼毫也可以自訂標點符號的輸出位置,細節是要修改「bopomofo_tw.schema.yaml」(雖然教學上似乎是建議修改「bopomofo_tw.custom.yaml」)。

2014-08-07_113547

我把注音符號加入到「`」這個按鍵上,因此可以按`打出ㄅㄆㄇㄈ。

未來希望能夠把這些標點符號跟漢語拼音直接整合,例如打「星」(ㄒㄧㄥ,xīng,xing1)就可以直接輸入「☆」。這個是日文IME輸入法的一個特色,輸入「ほし」出現「☆」,我覺得還蠻好用的。

不知道大家是怎麼自訂你的小狼毫輸入法呢?歡迎一起來討論喔!

(more...)

ownCloud修改上傳檔案大小上限 / Change ownCloud Upload File Max Size

布丁布丁吃布丁

ownCloud修改上傳檔案大小上限 / Change ownCloud Upload File Max Size

2014-08-05_200317

ownCloud預設上傳單一檔案的檔案大小限制只有5GB,如果要上傳大型檔案,就必須修改ownCloud的檔案上傳限制。以下以TurnKey Linux – ownCloud為例,教你如何修改ownCloud單一檔案上傳上限。

In ownCloud’s default configuration, the limit of upload file size is only 5GB. If you want to upload larger file, you can modify the limit of upload file size. This article describe how to modify the configuration in TurnKey Linux ownCloud.


Step 1. 修改.htaccess / Modify .htaccess

2014-06-10_11-28-31

.htaccess的路徑如下:

/var/www/owncloud/.htaccess

如果要用vim編輯器修改的話,則指令為:

vim /var/www/owncloud/.htaccess

Step 2. 調整upload_max_filesize參數 / Modify upload_max_filesize Parameter

2. upload_max_filesize

.htaccess的設定中,我們要調整的參數包括了:

php_value upload_max_filesize 5130M

php_value post_max_size 5130M

php_value memory_limit 5120M

 

如果要調整上傳上限為50GB,那就為這些參數後面多加一個0:

php_value upload_max_filesize 51300M

php_value post_max_size 51300M

php_value memory_limit 51200M

 

Step 3. 完成修改 / Complete

3. 上限提昇

再回到ownCloud網頁,重新讀取之後,你可以發現檔案上傳上限提高為50GB了。


小結:瀏覽器有上傳限制 / Conclusion: The Upload Limit of Browser

調整了上傳上限之後就能夠上傳大檔案了嗎?這個答案是否定的。

根據ownCloud的Dealing with Big File Uploads這篇的介紹,檔案大小會受限於作業系統與上傳的瀏覽器。包括:

  • 伺服器為32位元的作業系統:單一檔案只能在2GB以下
  • 伺服器的ownCloud為4.5以前:單一檔案只能在2GB以下
  • 使用IE6~IE8上傳:單一檔案:單一檔案只能在2GB以下
  • 使用IE9~IE10上傳:單一檔案:單一檔案只能在4GB以下

雖然在此只提到了IE瀏覽器,但是對於Firefox跟Chrome來說,應該也一樣難以上傳4GB的檔案。畢竟瀏覽器本來就不是以上傳大型檔案為主,這部分就難以勉強了。

如果要用ownCloud上傳大型檔案的話,可以參考我另一篇的介紹「ownCloud結合SFTP規劃」來以SFTP上傳大型檔案,這也許是比較好的方案。

(more...)

DLLL-CIAS介紹 / DLLL-CIAS Introduction

DLLL-CIAS介紹 / DLLL-CIAS Introduction

image

這篇發佈我在2014年6月底的「雲端科技與圖書館行動服務研習班」中課程「雲端平台基礎設施建置實務──DLLL-CIAS介紹」的課程投影片。

This article is the slide of my course “Cloud Technology and Library Mobile Service Workshop” in July, 2014. Finally is my thought of this workshop.


DLLL-CIAS是什麼? / What is DLLL-CIAS

DLLL-CIAS是政大圖檔所數位圖書館與數位學習實驗室中我所開發的開放原始碼雲端平台方案。主要目的是希望能夠讓經費不多的中小型單位也能夠用現有伺服器資源架設好用的IaaS雲端平台。其他介紹請看「DLLL-CIAS雲端平台架設與使用專題目錄」。

課程投影片 / Course Slide

Google Drive的原始版本投影片 / Slide Original Version on Google Drive

另外值得一提的是,這篇投影片是一開始是以Google Drive投影片製作。

image

雖然Google Drive投影片製作起來並不如Power Point一般的精緻(另一方面也是因為這個版本是供列印用的,所以特別以高對比黑白相間的範本製作),但是Google Drive投影片製作功能卻是相當足夠使用。更重要的是,Google Drive的協同製作跟註解(comment)完全贏過Windows的OneDrive。

這學期我大量使用Google Drive的協同編輯功能,像是跟人一起編修論文計劃書、規劃投影片內容,這份投影片也是從Google Drive開啟編輯起。我先規劃投影片大綱,記錄每一張投影片欲講述的內容,以及相關參考資料的來源。然後各張投影片的內容則是跟實驗室各位助理一起填寫資料,接著我再重整資料內容。當投影片內容確定之後,最後我再下載成Power Point檔案作進一步的排版美化。

image

最後排版而成的版面就是這樣子了。

Google Drive與Power Point轉換編輯注意事項 / Difference Between Google Drive and Power Point

使用Google Drive製作投影片跟Power Point製作投影片有幾個重點差異需要注意:

  • Power Point匯入到Google Drive時樣式容易跑掉,但相反的從Google Drive匯入到Power Point問題卻不大。
  • Google Drive不支援投影片頁碼、不支援陰影、不支援連接線的折線。這幾種功能都是投影片常用的重要特色,請自行斟酌。
  • 請善加利用「投影片母片」(Power Point用詞)、「主投影片」(Google Drive用詞),可以保持投影片格式一致。

有機會我再詳細聊一下Google Drive協同編輯的心得吧。


結語:終於把研習班課程完成了 / Conclusion: The Experience of Workshop

這份投影片發佈之後,研習班的工作總算是告一段落了。

這次研習班跟其他研習班最大的差異,就是在於有很多實作的內容,而不是一直坐著聽老師授課。這次研習班主要兩個實作課程,一個是KALS合作標註閱讀學習,另一個則是這個DLLL-CIAS實作,這兩個實作都讓我煞費苦心。DLLL-CIAS要架設許多虛擬機器伺服器這點顯而易見,而KALS要弄到讓學員能夠在系統上順利操作,這背後其實也修改了許多細節。之前去IMLF 2014時就已經拖延了許多工作,然後之後投入在這研習班上,課程的部分就有點顧不住了,真是對不起老師啊。

雖然期末與這研習班整個像是災難一樣鋪天蓋地而來,但最後總算能夠過去。上課過程中有些兵荒馬亂,感謝各位助理大力相挺,沒有你們我一個人真的完成不了這些東西,這也包括了之前寫的幾篇DLLL-CIAS的細部操作文章

研習班上課過程中,我本來以為這麼硬的內容,應該會讓大家聽到一片瞌睡。結果時候聽完還蠻多人跑來跟我比較他們圖書館使用的VMware方案之間的差異,也有平時不碰技術的人跟我表達這堂課讓他獲益,有些人甚至想要在自己家裡架起這套方案。即使是客套話,我也覺得很開心。

希望下次能夠吸取這次的經驗,然後再帶給大家更好的課程內容吧。

(more...)

RemoteApp雜記 / Memo About RemoteApp

RemoteApp雜記 / Memo About RemoteApp

2014-08-05_131414

這篇記錄一下最近研究RemoteApp的記事。由於不是很正式的教學,所以格式上比較隨意,請大家見諒。

This article is the memo about RemoteApp research.


為什麼個人要用RemoteApp? / Why I Need RemoteApp?

在講RemoteApp之前,我先講一下什麼樣的情況,個人會須要用到這種方案。

現代人的生活很多時候會跟多臺電腦打交道。以我為例,先不論機房有一堆孩子(伺服器)要顧,我自己在實驗室有一臺桌機、平時在外面移動時則是有一臺筆電,回到宿舍時也還是用那一臺筆電工作。因此我自己就有兩臺電腦在使用。

在這個情景底下,我主要使用的是實驗室效能比較好的桌機,而筆電通常是利用遠端桌面連線回到桌機操作。大部分的檔案也是存放在桌機為主。

Windows的遠端桌面連線是Windows少數幾個偉大的設計之一。在網路頻寬允許的情況下,可以讓你的連線裝置彷彿就像是在遠端操作一樣。

但是實際上,遠端桌面連線因為功能太過龐大,有時候我只是想要使用某個應用程式,像是Photoshop,這時候我還是得連線到整個遠端桌面,然後才能開啟Photoshop操作,說來也是一種麻煩。

這就讓我興起了「我可只連線到遠端其中一個應用程式嗎?」的想法,因此就開始進行RemoteApp的小小研究。

遠端桌面連線的RemoteApp / RemoteApp of Remote Desktop Service

這篇所講的RemoteApp,一開始是指Windows伺服器版本提供的功能。RemoteApp是遠端桌面連線的延伸應用,自從Windows Server 2008 R2之後才能夠使用。RemoteApp的特色在於透過遠端桌面連線的控制,把要顯示的資訊傳送到客戶本地端,由客戶本機端的Windows來負責產生畫面。

實作時是由伺服器端提供RemoteApp連線設定檔.rdp、或是包裝成.msi的安裝檔案,然後交給客戶端去做安裝與配置,例如放在桌面上提供使用者點選。這個RemoteApp連線設定檔本身已經包含了遠端伺服器的連線位置與登入資訊,以及要開啟的應用程式設定。客戶端只要開啟這個連線設定檔.rdp,等待連線,然後就會出現有如本機上運作的RemoteApp。

RemoteApp是伺服器類型的Windows才有提供的功能,但是Windows 7之類的個人電腦也可以作為RemoteApp伺服器。做法是使用RemoteApp Tool

RemoteApp Tool適用於Windows XP SP3、Windows 7、Windows 8,幾乎目前常用的Windows都可以運作。

2014-08-05_134604

RemoteApp Tool不需要安裝,開啟之後就能夠設定要提供連線的應用程式。我自己馬上就建立了一個Line試試看。

image

從Properties裡面可以設定應用程式的執行細節,最主要的是設定應用程式的執行路徑 Path。設定好RemoteApp之後,接著你可以使用Generate RDP file產生.rdp的遠端連線設定檔,再傳送到客戶端來連線。客戶端只要開啟.rdp,就會連線到這臺伺服器,然後開啟Line的應用程式。

雖然設定很簡單,但實際上運作時卻有許多問題。第一個是遠端連線速度不是很通順。開啟RemoteApp的時候,基本上就跟開啟遠端桌面連線一樣,但還要加入開啟應用程式的時間,因此連線時的時間會有不小的延遲。特別是當我們習慣開啟本地端的應用程式之後,再來跟RemoteApp開啟速度相比,就會覺得不甚理想。

然後是我使用Line的時候遇到了不少問題。也許是Line本身用了特殊的框架,導致開啟時不太順暢之外,一使用輸入法就會造成應用程式當機。

此外,這個RemoteApp Tool的另一個問題在於一次只能一個session連線。就跟一般Windows使用遠端桌面連線一樣,RemoteApp連線時就是佔了一個使用名額。當有別人開啟RemoteApp的時候,就算我來到伺服器的本地端,我看到的會是一個需要登入的畫面。而當我登入的時候,別人正在使用的RemoteApp則會被踢出去。

如果這些電腦都只有你個人使用的話,這倒沒什麼問題。但是在企業內希望使用RemoteApp共享安裝軟體的話,這問題就相當致命。由於Windows Server 2008等伺服器版本可以提供同一帳號多重遠端桌面,所以才能夠提供RemoteApp正常使用吧。不過如果Windows 7強制設定單一帳號多重登入的話,那也許也能夠提供一樣的功能也說不定。我稍微找了一下,不同的Windows版本有不同的設定方式:

但是因為RemoteApp感覺還是不太好用,所以我就嘗試找找看有沒有其他的替代方案,然後找到了Winflector

RemoteApp替代方案:Winflector / RemoteApp Alternative Solution: Winflector

2014-08-04_235245

Winflector是一個類似RemoteApp的替代方案。免費版本可以提供兩個客戶端同時連線。

2014-08-05_141446

一開始一樣是先安裝Server版本,安裝完之後要重新開機。然後接著設定應用程式,這些設定類似RemoteApp。再來設定可以登入的使用者的帳號與密碼,這部分跟Windows的帳戶是分開獨立的。另外連接埠要修改掉被佔用的80,改為其他連接埠之後,才能正常連線。

2014-08-05_131414

Winflector並不會產生像是RemoteApp這樣的連線設定檔,客戶端必須開啟Winflector客戶端程式,輸入伺服器端的IP連線資訊,接著就能夠在Applications看到伺服器端提供的應用程式,點選兩下就能夠直接開啟了。

開啟應用程式的速度不僅很快,而且輸入法、剪貼簿、視窗整合等操作都很流暢,彷彿真的就像是在本機端運作的程式一樣。而Winflector的連線也不會佔用遠端桌面連線的名額,不會把本機端使用者踢掉。

只是有幾點要注意的是事情:

  • 應用程式仍然是在遠端伺服器運作,因此檔案存放的「桌面」是伺服器端的「桌面」,而不是客戶端的桌面。如果是RemoteApp的話,會直接開啟網路上的芳鄰來作為檔案交換的途徑,但是Winflector並沒有提供這種功能。
  • 免費的Winfector只能提供兩個連線。

此外,Line開起來會一片空白,還是無法使用。

總而言之,Winfector意外地讓我很滿意,於是我最近會試著在桌機常駐Winfector的服務,讓筆電來連線使用看看。再試試看有沒有什麼問題。


為什麼團隊需要用RemoteApp? / Why Our Team Need RemoteApp?

個人使用的話,Winfector應該就能夠滿足需求了。就算是遠端檔案無法直接儲存在客戶端,也可以利用Dropbox來同步檔案。可是要在團隊裡面使用的話,這樣子的架構還不能算是完整。

為什麼團隊會需要使用RemoteApp?最大的原因仍然是因為軟體授權不足,或是軟體需要在高等級機器上運作,不方便安裝在筆電等效能較差的電腦上。

Citrix的XenApp / Citrix’s XenApp

2014-08-05_150131

現在學校大多是使用Citrix的XenApp方案,這個方案其實也挺不錯的。它類似RemoteApp,但是運作RemoteApp的伺服器是以XenServer建構而成的Windows虛擬機器,而非實體的Windows。在每次要使用XenApp的時候,伺服器端會自動建立一個可以運作應用程式的虛擬機器,提供XenApp連線。然後在關閉XenApp之後把虛擬機器移除掉。因此每次開啟XenApp,看到的都會是預設軟體的樣子,使用者無法自訂軟體。

在檔案傳輸方面,XenApp會在連線時,把使用者本機端的硬碟作為網路上的芳鄰連線過去。使用XenApp開啟檔案時會看到磁碟機有幾個是網路上的硬碟,這才是本機端的硬碟。至於XenApp裡面看到的桌面跟C磁碟機都是虛擬機器本身的裝置,關閉XenApp之後就會消失。

在這樣的架構下,XenApp一樣有連線人數的限制,端看學校購買的授權數量,決定可以同時可以使用的連線人數。另一方面,XenApp的架構也是一個付費方案,所以就不是我的優先選擇。

Linux的X Window / Linux’s X Window

image

說到遠端桌面,大家是不是太專注在Windows上,而忘記了Linux本身就有強大的X Window呢?

其實X Window所提供的X11 Forwarding本身就能達到「只開啟應用程式」的效果。這篇SSH X11 Forwarding介紹的很詳細當然,鳥哥則是對X Window System則有較詳細的介紹鳥哥則是對X Window System則有較詳細的介紹。我也在Ubuntu上運作成功。做法是:

  1. 先在伺服器Ubuntu上安裝SSH:sudo apt-get install –y sshd
  2. 設定好Ubuntu的網路,確認客戶端Windows 7可以連線到Ubuntu
  3. 客戶端Windows 7上安裝Xming,要重開機
  4. 開啟PuTTY,設定連線到Ubuntu,啟用Enable X11 forwarding
    2014-08-05_151611
  5. 登入SSH,進入命令列
  6. 以指令開啟要執行的應用程式,例如gedit
  7. 稍等片刻,客戶端Windows就會出現原本只能執行在Linux上的gedit

image

雖然步驟繁多,但是能在Windows開啟Linux的應用程式這點還是挺令人感到新奇的。不過實際上操作一下,發現問題有幾點:

  • 剪貼簿運作正常,可以在Linux應用程式與Windows應用程式裡面複製貼上
  • 無法使用Windows的輸入法,但可以複製貼上過去
  • 檔案系統依然是Linux上的檔案系統

儘管如此,由於X Window並沒有限制連線數量,只要硬體效能足夠,應該可以提供大量使用者連線操作才是。

在Linux上運作Windows的程式 / Run Windows Application on Linux

如果要走X Window的方式提供遠端應用程式服務,那另一個問題在於,我們平常用的還是Windows的應用程式,而不是Linux的應用程式。

事實上,Linux有許多可以運作Windows應用程式的方法,以下兩個方案是最常見的做法:

  • Wine:GPL開放原始碼軟體
  • CrossOver:付費軟體,有提供限時試用版

這兩種方案都是使用轉換技術,講Windows的架構轉換成可以在Linux執行的環境,以在Linux開啟Windows的應用程式。雖然Wine是開放原始碼的軟體,但是使用上似乎有諸多問題。不同Wine版本、不同的Linux發佈版、不同的Windows應用程式版本之間對應會有許多問題。反觀CrossOver似乎評價就比較正面(也許是因為付費了,稱讚一下也好?)。

如果有這些軟體搭配的話,我在想可能的架構就可以變成:

  • 在Linux伺服器上架設Wine環境
  • 安裝Windows應用程式
  • 客戶端上連線到Linux伺服器,開啟以Wine轉換的Windows應用程式

這樣子理想上就能達到不限人數的遠端應用程式的目標。不過我們還有其他問題還沒解決,一個是輸入法,另一個是檔案傳輸。輸入法的部分,這是另一個世界,我還得去研究看看;但是檔案傳輸的部分則比較簡單,我想可以用SFTP或是ownCloud來解決。

使用SSH交換遠端應用的檔案 / File Sharing with RemoteApp Server By SSH

最簡單的做法是使用SFTP連線到Linux伺服器。也就是說,連線到Linxu伺服器時,我們同時使用了三種服務:

  • SSH command
  • SSH X11 Forwarding
  • SFTP

這三種都是走SSH連線,這樣做最單純。


小結:離實用仍有段距離 / Conclusion: Non-Ideal Solution

總歸上述,目前比較可能可以使用的方案有兩個:

  • Winflector:Windows應用程式支援良好,但是限制人數2人
  • Linux X Windows System:不限制人數,但是Windows應用程式支援堪慮

不論是那一種方案,其實都不甚理想。市面上也有許多付費的VDI應用方案,但我還是希望先能找到以自由軟體發佈的替代方案為主。

再等等看吧。

(more...)

修改XAMPP的登入使用者與登入資訊 / Change XAMPP Security Username & Message

布丁布丁吃布丁

修改XAMPP的登入使用者與登入資訊 / Change XAMPP Security Username & Message

2014-08-04_191405

XAMPP是一個集合Apache、PHP與MySQL等眾多工具的網頁伺服器套裝開放原始碼軟體。XAMPP部分管理功能以Apache的認證鎖定,像是phpMyAdmin、Webalizer網路流量,必須要登入之後才能使用。雖然XAMPP有提供修改密碼的功能,但是卻沒有直接修改登入使用者名稱與登入訊息的功能。因此,以下本文將教你如何修改XAMPP的登入使用者與登入訊息。

XAMPP is a web server which integrated Apache, PHP, MySQL and other tools. XAMPP use Apache to implement server’s security. This article show you how to change the security username and message of XAMPP.


XAMPP網頁的登入畫面 / Login XAMPP Web

安裝好XAMPP之後,你可以在本機端用以下網址開啟XAMPP的管理畫面:

http://localhost/xampp

而這時候XAMPP會跳出一個登入對話視窗,如下:

Authentication-for-directory - 複製

(圖片來自於:XAMPP for Linux in Ubuntu Gutsy – Security Setting,我加上了數字編號)

上面這張登入視窗是使用Internet Explorer,使用Google Chrome或Firefox會有點不同,但主要資訊倒是不會改變。這裡面有三個資訊需要制訂:

  1. User Name 登入帳號:XAMPP採用預設帳號,Windows底下使用xampp;Linux底下使用lampp
  2. Password 登入密碼:許多文章都有針對XAMPP密碼修改的地方進行介紹,例如挨踢路人甲的XAMPP的安全設定
  3. 登入訊息:預設採用xampp user。

雖然網路上大多談的是登入密碼的修改,但卻很少有人在講登入帳號與登入訊息的修改。其實這些設定也都只是使用Apache的內建功能,熟悉Apache的話倒也不難修改啦。以下就介紹如何修改登入帳號與登入訊息吧!

修改XAMPP的登入帳號 / Change XAMPP Security Username

以下我以Linux的環境進行說明。首先請以root的身份登入到Linux指令端操作。如果你的 XAMPP安裝在/opt/lampp底下的話(這是XAMPP教學的預設路徑),登入帳號檔案的位置如下:

/opt/lampp/lib/xampp.users

開啟之後,你會看到檔案訊息:

lampp:AtSURIRINO.bV6

以冒號為分界點,後面藍色的亂碼文字是登入時要輸入的帳號,已經經過加密,請使用XAMPP目錄保護功能修改;前面紅色的lampp則是登入帳號,使用明碼記錄。只要修改這個lampp成為你要登入的帳號,下次登入XAMPP時就用這個使用者帳號即可。附帶一提,這個帳號跟Linux的使用者無關,可以自行設定。

修改XAMPP的登入訊息 / Change XAMPP Security Message

要修改登入訊息的部分,則必須修改XAMPP目錄底下的.htaccess檔案才行(注意,檔案開頭即是一個點「.」,並非錯字)。XAMPP各個管理功能底下都有.htaccess,這也是Apache認證網頁的設定檔案,詳細細節請看鳥哥的介紹。XAMPP有時候使用.htaccess阻擋使用者從網路進入本機的管理檔案,而有三個.htaccess則是提供登入使用的設定檔,路徑如下:

  • /opt/lampp/htdocs/webalizer/.htaccess
  • /opt/lampp/htdocs/xampp/.htaccess
  • /opt/lampp/phpmyadmin/.htaccess

這些檔案的內容都一樣,內容如下:

AuthName "xampp user"
AuthType Basic
AuthUserFile /opt/lampp/lib/xampp.users
require valid-user

其中紅字的xampp user就是登入顯示的訊息。請改成你想提供的訊息,那下次XAMPP就會把這個訊息顯示在登入對話視窗裡面了。

2014-08-04_195433

這樣就完成了,讓你的XAMPP更加安全吧!

(more...)

Zotero如何記錄引用網頁的時間 / How to Find Date of Web Page in Zotero

Zotero如何記錄引用網頁的時間 / How to Find Date of Web Page in Zotero

image

使用Zotero記錄網頁時,Zotero常常不會自動帶入網頁的「日期」,而要我們自己手動輸入。這篇文章教你如何找尋網頁的日期。

When you use Zotero to cite current web page, Zotero usually doesn’t fill the date field. So you have to fill date by yourself. This article teach you how to find the date of web page.


使用Zotero記錄網頁 / How to Cite Web Page With Zotero

2014-08-04_155747

以我的文章「專書「DSpace開放源碼數位典藏系統建置理論與實務」出版了」為例,由於Zotero有內建Blogger的轉譯器(translator),所以我們可以直接點選網址列右邊的圖示把文章匯入到Zotero之中,如上圖所示。但是剛匯入的網頁資料卻仍有許多欄位還是空白的,包括日期欄位。

2014-08-04_160139

一般也可以用Zotero的「image從目前的頁面建立新的項目」,但是建立結果依然是沒有日期。

如果沒有日期的話,Zotero插入引用時就會變成以下這樣,日期的部分被顯示為「無日期」:

專書「DSpace開放源碼數位典藏系統建置理論與實務」出版了 / Developing an Open Source Digital Archive With DSpace: Theory and Practice : 布丁布丁吃什麼?. (無日期). 被取回 2014年8月4日, 從 http://pulipuli.blogspot.tw/2014/08/dspace-developing-open-source-digital.html

 

必須要注意的是,這個日期是指網頁發佈或修改的日期,並不是你保存網頁的「取用日期」(Access Date)。

總之不管用那一種方法,Zotero似乎都不會加入日期的欄位。這個部分就得靠自己來填寫了。

網頁上的日期 / Date from Web Page

要找尋網頁上的日期,一般來說有兩種方法:

2014-08-04_161416

一種是在網頁上直接顯示的資訊,以我的Blog為例,日期會放在文章上面(雖然有點淡),如上圖。

2014-08-04_164110

有些則是會放在網頁下方,例如國家圖書館的當代名人手稿典藏系統下面會註明「國家圖書館著作權聲明Copyright @ 2013 All Rights reserved」,我就會用這個資訊來作為日期的記錄。

image

如果是一般的網頁,通常在網頁上面是找不到日期資訊,例如紀剛的數位典藏計劃。那我們則可以利用Firefox來查詢網頁的最後修改日期。

利用Firefox查詢網頁修改日期 / Use Firefox to Display Web Page’s Last Modified Date

使用Firefox可以顯示網頁最後修改的日期。

做法如下:

  1. 在網頁上按右鍵,選擇「檢視頁面資訊」2014-08-04_164650
  2. 頁面資訊中就會顯示「上次修改: 2014年1月20日 下午 04:08:34」,這就是網頁的日期了。
    2014-08-04_164917
無效的網頁日期 / Invalid Web Page Date

2014-08-04_165151

必須要注意的是,有些網頁是使用動態程式碼產生,因此每次讀取頁面時,上次修改的日期也會隨之變動。以「About DSpace」為例,我開啟網頁的時間是8/4下午4點,而網頁的上次修改日期也是8/4下午4點,這就表示這是一個不能拿來作為日期的時間。

2014-08-04_170334

這時候就要找找看網站中有沒有顯示日期的相關文件了。以下是有可能顯示日期的資料來源:

  • 新聞頁面 News
  • 最新發佈 Latest Release
  • RSS通知訂閱 Feed
  • Twitter或Facebook等社交媒體的最新一則留言日期(代表該網站這時間還有在活動)

結語:正確地引用文獻 / Conclusion: The Importance of Correctly Citing Document

這篇介紹了如何用Firefox來找尋網頁的發佈日期,也就是在引用文件時詳實地記錄文件的內容。雖然本篇所介紹的方法是個人經驗談,而非正式的規範,但是我們依然不可忽略填寫網頁發佈日期的重要性。

有了網頁的發佈日期,讀者在閱讀文章時就能夠知道你所引用資訊的時代背景與新穎性。雖然Zotero在處理網頁時沒辦法幫你記錄日期,但是作為一個為讀者著想的寫作者來說,請務必多花點功夫為你的引用書目填上完整的資訊。

(more...)

專書「DSpace開放源碼數位典藏系統建置理論與實務」出版了 / Developing an Open Source Digital Archive With DSpace: Theory and Practice

布丁布丁吃布丁

專書「DSpace開放源碼數位典藏系統建置理論與實務」出版了 / Developing an Open Source Digital Archive With DSpace: Theory and Practice

20140803-pudding-1-0001_結果

最近終於把以Dspace-DLLL建置數位典藏的專書「DSpace開放源碼數位典藏系統建置理論與實務」完成了。本書不僅可以作為教科書、計畫建置的指導手冊,書中更包含一個可以直接安裝後使用的DSpace-DLLL系統。以下介紹本書的基本資料,作為書本的簡單行銷宣傳。

Recently we had published our book “DSpace開放源碼數位典藏系統建置理論與實務” (Developing an Open Source Digital Archive With DSpace: Theory and Practice). Following are the introduction and table of contents of this book.


書目 / Bibliography

20140803-pudding-1-0001_結果20140803-pudding-1-0002_結果

DSpace開放源碼數位典藏系統建置理論與實務

  • 作者:陳志銘、陳勇汀(布丁布丁吃布丁)
  • 出版社:文華圖書館管理
  • 出版日期:2014/05
  • 語言:繁體中文
  • 附件:1片DVD,內含DSpace-DLLL系統
  • ISBN: 978-986-6182-12-9
  • 定價:850元整

APA引用格式為:

陳志銘、陳勇汀(2014)。DSpace開放源碼數位典藏系統建置理論與實務。臺北市:文華圖書館管理。

書本導讀 / Introduction

本書提供有意建立數位典藏的相關專業人員建置系統的起步,也是為了數位內容、數位典藏學程、圖書資訊及資訊傳播等相關科系進行數位典藏實作教學目的而撰寫。數位典藏發展至今,已有許多以開放源碼釋出的數位典藏自由軟體可供利用,本書所介紹修改自 DSpace 的 DSpace-DLLL 即為其中一種。但是數位典藏系統的建置背後涵蓋著相當廣泛的專業知識,非常需要有一本專業的書籍作為入門學習的基礎。

20140803-pudding-1-0003_結果

為了引導讀者全面性的掌握數位典藏專業知識,本書先揭櫫數位典藏相關理論,包括數位典藏專案規劃、網站資訊架構、後設資料觀念與設計、電子資源管理、電子資源授權與權限控管,讓讀者具備使用 DSpace-DLLL 數位典藏系統的基礎觀念;其次介紹 DSpace-DLLL 系統的安裝、使用與修改,讓讀者能夠以本書所提供的 DSpace-DLLL 系統為基礎,以小幅度修改程式碼方式自行發展成具有特色的數位典藏系統;最後介紹以修改 DSpace 數位典藏系統開發的各類型數位典藏建置成果,以實際的例子說明各類型數位典藏的建置過程。

基於上述考量,本書內容主要分為三個部分,分別是數位典藏導論、DSpace 數位典藏系統實作以及DSpace 數位典藏建置案例介紹,再依據這三個部分區分為若干章節進行詳細介紹,全書共計十三個章節。作者希望透過本書的介紹,能提升讀者以開放源碼系統建置數位典藏的專業能力。

DSC_0054 裁切

本書的附件光碟為作者自行開發的DSpace-DLLL系統,這是基於DSpace1.5 版本以及整合多個開放原始碼自由軟體而成(如表 B所示),且本書修改自 DSpace 的 DSpace-DLLL 系統也以柏克萊軟體套件授權條款(Berkeley Sof-tware Distribution,簡稱BSD)發行。讀者可以自行安裝、架設或修改DSpace-DLLL的原始碼而不須徵求本書作者的同意,我們由衷地期望讀者能夠利用本書的內容與 DSpace-DLLL 系統建立起屬於您自己的數位典藏系統。

目錄 / Table of Contents

本書分成三個部分,包括數位典藏導論、DSpace數位典藏系統實作與DSpace數位典藏系統建置案例。

第一部分 數位典藏導論
  • 第一章 數位典藏概論:介紹數位典藏的各種定義,釐清讀者對於數位典藏的概念,並引領讀者認識數位典藏的相關計畫。
  • 第二章 數位典藏專案規劃:介紹數位典藏發展需要的成員組合,引導讀者瞭解如何從後設資料規劃設計與系統分析,一步一步地規劃建置數位典藏專案的執行細節。
  • 第三章 網站資訊架構:介紹數位典藏系統網站的組織架構原則,包括組織系統、標籤命名系統、導覽系統、搜尋系統、後設資料與控制詞彙等觀念。
  • 第四章 後設資料設計:說明後設資料的原理以及重要性,並介紹數位典藏常用的後設資料規格與參考資源。
  • 第五章 電子資源授權與權限控管:介紹電子資源的授權方式、各種不同的授權條款以及數位典藏系統權限控管的規劃與建議。
第二部分 DSpace 數位典藏系統實作
  • 第六章 DSpace 介紹:介紹 DSpace 的發展背景,帶領讀者瞭解 DSpace 各種功能特色與網頁使用介面,並介紹以 DSpace 發展完成的相關數位典藏應用。
    第七章 DSpace-DLLL安裝與設定:詳細介紹 DSpace-DLLL 安裝與設定程序,讓讀者能夠利用自己的電腦架設 DSpace-DLLL 數位典藏系統。
  • 第八章 資料內容組織架構:介紹 DSpcae 的資料內容組織架構,針對社群(community)、類別(collection)、文件(item)、檔案集(bundle)到檔案(bitstream)各層級與管理進行介紹,讓讀者學習如何制訂典藏的數位內容。
  • 第九章 帳戶、群組與權限設定:介紹如何建立 DSpace 的使用者、群組,以及權限控管的設定。
  • 第十章 遞交作業與工作流程:介紹 DSpace-DLLL 中設計與建立數位典藏的遞交作業與工作流程,其中遞交作業涉及後設資料規範的設定。
  • 第十一章 系統架構與版面修改:剖析 DSpace 的系統架構,並說明如何閱讀 DSpace 系統採用的 Java 程式碼,然後教導讀者修改網頁使用介面。
第三部分 DSpace 數位典藏建置案例
  • 第十二章 臺灣百年圖書館史數位圖書館先導計畫:介紹由政治大學圖書資訊與檔案學研究所依據修改DSpace所發展的「臺灣百年圖書館史數位圖書館」。詳細地描述數位典藏專案的建置程序,以供讀者作為規劃的參考。
  • 第十三章 教育部臺灣通識網課程資料庫:介紹「教育部臺灣通識網」建置的開放式通識課程資料庫成果。臺灣通識網課程資料庫包含典藏完整的優質課程資料庫與集合國內各大專院校通識課程資訊的通識課程基本資料庫。

出版現況 / Publication Status

image

目前「DSpace開放源碼數位典藏系統建置理論與實務」這本書已經在國家圖書館的全國新書資訊網登錄,但這不是銷售平臺,只是為新書記錄而已。

由於本書採用POD (Print On Demand,按需求印製)的方式印製,印量並不大,目前尚未在各通路上架。如果要購買的話,請直接跟文華圖書出版公司聯絡:

印量少加上還有一片DVD的情況下,本書不僅較難在傳統通路上架,價格也比一般書籍昂貴許多。我試著跟文華出版談談看能不能在Google Play等電子書平臺上架,讓想要的讀者更容易拿到本書。

(more...)