:::

Gmail開新視窗撰寫郵件 / Composing Gmail with new Window in Gmail

布丁布丁吃布丁

Gmail開新視窗撰寫郵件 / Composing Gmail with new Window in Gmail

Image 10

Gmail上自改版之後,撰寫新郵件就會用一個小小的視窗嵌在Gmail當中的方式進行。後來我發現到按住Shift鍵再按下放大按鈕之後,就可以用獨立視窗撰寫郵件了。

In Gmail, we usually compose email in a small embed window. But this small window could be enlarged as a pop-up window by using hotkey “shift”. This article will show you how to do it.


嵌在網頁內的郵件撰寫功能 / Composing email within Gmail webpage

Gmail是我主要使用的網路信箱,我通常都是用它來撰寫郵件。早期Gmail撰寫郵件時,可以用獨立視窗來進行。我個人比較偏好用一個視窗做一件工作,而不喜歡目前Gmail將郵件當做即時通訊的形式呈現。

Image 10

現在的Gmail中,在解析度這張解析度為950*629的網頁中,撰寫視窗會遮掉Gmail的大部分。被遮蓋的地方無法觀看,而佔用了撰寫視窗的大半部分。

Image 12

即使按下放大按鈕,也只是在視窗中變大而已。被遮住的地方依然是一種浪費。

開新視窗編輯郵件 / Composing email with new window

2014-03-04_085657

最近我才發現放大視窗的功能按鈕上有個提示:「全螢幕(按Shift鍵顯示彈出式視窗)」。

2014-03-04_085447

按著Shift鍵放大視窗之後,就能就用獨立網頁來撰寫郵件。是不是清爽許多了呢?

我一直在想,這功能這麼實用,可是卻很少看到有人介紹,乾脆自己寫一篇好了。這就是這篇產生的由來。

(more...)

解決Proxmox VE KVM虛擬機器硬碟與光碟常見問題 / The solution for KVM virtual machine’s hard drive and ISO mount misconfiguration in Proxmox VE

解決Proxmox VE KVM虛擬機器硬碟與光碟常見問題 / The solution for KVM virtual machine’s hard drive and ISO mount misconfiguration in Proxmox VE

proxmox-logo

最近我們在大規模地遷移Proxmox VE中的虛擬機器,其中KVM類型的虛擬機器在轉移時常常會遇到許多各種不同的問題,像是硬碟設定或是光碟設定錯誤。我將這些問題的處理方式記錄如下。

When I migrated KVM virtual machines at Proxmox VE, I encountered many problems, such as hard drive or CD/DVD drive misconfigured. This article I describe the solutions for those problems.


硬碟驅動錯誤 / Hard Drive Misconfigured

Image 3

最常見的就是硬碟驅動配置錯誤。有段時間我常常先在VirtualBox建立虛擬機器,再轉移到Proxmox VE。這種轉移方式通常只是上傳最重要的硬碟映像檔,像是vmdk或是qcow2 (但是在VirtualBox上運作qcow2的效率其差無比就是了)。

從VirtualBox到Proxmox VE的配置 / Configuration From VirtualBox to Proxmox VE

如果只是轉移硬碟映像檔的話,必須特別注意他們的硬碟驅動設定必須一致。如果當初建立的時候使用IDE,在轉移之後建立也就必須使用IDE。

2014-03-04_063543

舉例來說,這是VirtualBox的操作介面,你可以看到這台虛擬機器的硬碟是被設定成SATA

Image 5

但是在Proxmox VE上,這臺虛擬機器的硬碟卻被設成了IDE。在Windows XP或是Linux卻使用LVM的情況下,往往會造成開機失敗。

Image 6

因此,在建立虛擬機器的硬碟時,必須特別注意其使用的硬碟驅動器。

解決方式:修改硬碟控制器 / Solution: Modify Hard Drive Controller

如果你已經將硬碟安裝成錯誤的硬碟驅動器,那Proxmox VE網頁介面上是無法直接修改。我建議是使用SFTP直接操作伺服器的檔案系統,作法如下:

  1. 先以正確的硬碟驅動器新增一個硬碟映像檔,檔案大小不拘。
  2. 以SSH登入Proxmox VE:預設連接埠22。
  3. 進入KVM的硬碟擺放位置:以VMID為260的虛擬機器為例,路徑位置就是/var/lib/vz/images/260
  4. 新建立的硬碟映像檔檔名通常會是「vm-260-disk-2.vmdk」,而用錯誤方式建立的硬碟映像檔通常會是「vm-260-disk-1.vmdk」。
  5. 記住新映像檔檔名,把新的硬碟映像檔刪除,再把舊的硬碟映像檔換個名字
  6. 回到Proxmox VE網頁介面,刪除舊硬碟映像檔的設定,只留下新建立正確的硬碟設定

這樣就完成了。


CD/DVD光碟掛載錯誤 / CD/DVD Drive ISO Mount Misconfigured

Image 7

前一種情況大多是只轉移硬碟映像檔的時候,這一種情況則是使用Proxmox VE的備份功能vzdump匯出虛擬機器之後、再匯入新的Proxmox VE的情況。細節作法可以看我寫的另一篇「Proxmox VE用備份(vzdump)與還原(restore)複製虛擬機器」。

使用vzdump的時候,虛擬機器的設定會鉅細靡遺地被保留,並還原到新的虛擬機器環境中。問題是在於新的環境中可能使用的Storage ID(儲存空間名稱)不一樣,就會導致無法正常開機的問題。

Image 8

以上圖為例,當Storage設定錯誤時,發生錯誤訊息就會是:

TASK ERROR: storage 'proxmox-nas' does not exists

這是因為這個Proxmox VE虛擬機器環境下沒有名為「proxmox-nas」的Storage的緣故。

解決方式:取消掛載映像檔 / Solution: Unmount ISO

Image 9

解決方式很簡單,就是把掛載的映像檔取消掉就好了。

  1. 指定該硬碟,按下Edit
  2. 設定Do not use any media,或是重新掛載正確的ISO映像檔,按下OK即可

這個問題警惕了我們,如果虛擬機器設定完畢之後,記得取消掛載安裝時使用的映像檔設定。


結論:不要害怕使用虛擬機器 / Conclusion: Embrace Virtual Machine

每次遇到虛擬機器的各種問題,我常常聽到的抱怨都是:「為什麼要用這種東西?你就不能裝在實體機器上嗎?」就我個人來看,這種抱怨是一種誤解。

如果你仔細看看這篇敘述的兩種問題,其實是很容易類比到實體機器上──就像是拿著SATA線去接一顆IDE硬碟,或是在光碟機裡面指定放進一片不存在的光碟。儘管實體機器操作中,有些常識的網管可能不會卡在這麼奇怪的問題上,但這的確是可以從實體機器類推到虛擬機器上的情況。

我想說的是,其實虛擬機器的設定跟實體機器沒有這麼大的差別,但比實體機器設定更為容易。以硬碟控制器的問題來說,實體機器的情況可能是一顆舊的IDE硬碟要裝到新的伺服器上,如果伺服器只剩下SATA線,那要裝IDE硬碟還必須搭配張SATA to IDE的轉接卡才能使用,安裝時還得考量到轉接卡阻礙線材空間等問題,處理起來挺費工夫的。但是虛擬機器只要設定幾項參數即可完成調整,方便許多。

虛擬機器除了有助於網管之外,快速還原的能力還能夠用於程式開發上。在「成为一个PHP专家:缺失的环节」一文中建議PHP時使用虛擬機器建立個Linux,以方便隨時重新開始或還原到程式開發的某個狀態。這些都是非常有用的功能。

因此,我會對VirtualBox、Proxmox VE、OpenVZ、KVM等多種開放自由的技術抱持最高的敬意,並繼續擁抱虛擬機器。

(more...)

不太好用的Vento MW-96 E指鼠 / The problem of Vento MW-96 wireless mouse

布丁布丁吃布丁

不太好用的Vento MW-96 E指鼠 / The problem of Vento MW-96 wireless mouse

DSC_1346

為了讓筆電帶來帶去時不要讓體積過大,我特別挑了一隻小型的無線滑鼠來作為筆電的配件。這種小隻好攜帶的滑鼠是我長久以來關注的重點,不論是前一代的e指鼠或是這一代的Vento MW-96都讓我很心動,網路上也看不太到什麼負面評價。後來決定購買造型比較好看的Vento MW-96 E指鼠(以下簡稱MW-96)。

DCAN2G-A61784839000_4f5dc6dc6bc3b

MW-96大概是在2010年上市,上市至今已經很難找到購買的地方,我是在露天拍賣上找到賣家的。購買時上網看到的大多是廣告文宣,實際使用報告並不多,但是買來之後一陣子,我才發現MW-96最大的問題:材質

DSC_1347

上圖是最近放在包包一段時間之後的MW-96。體積小不好握、電池續航力大概只能擺包包擺個半個月,這都不是我在意的問題。問題是MW-96兩旁的黑色塑膠材質非常容易變質,容易變得黏黏的,沾滿各種污塵。這樣握起來感覺很差,手指一直感到黏黏的。

因此,激發我寫下這一篇負面評價的文章,警惕因為造型而想要購買的人,趕快打退堂鼓吧。

(more...)

修復Proxmox VE Cluster無法備份的問題 / Repair Proxmox VE Cluster cannot backup problem

修復Proxmox VE Cluster無法備份的問題 / Repair Proxmox VE Cluster cannot backup problem

2014-03-02_215010

最近我處理的Proxmox VE因為Cluster眾多功能異常,導致很多功能都無法正常使用。這次遇到的問題是備份時被鎖住的問題,解決方法是重新啟動Proxmox VE所有的服務,然後將該節點設為expected。

When Proxmox VE Cluster cannot work properly, the backup function maybe disabled,  due to permission is locked to read-only. This article describes how to repair this problem.


錯誤訊息 / Error Message

我在node(Proxmox VE Cluster中運作的一台伺服器,稱為node)名為「proxmox-master-c」為KVM類型的VMID 260虛擬機器進行備份。遇到的錯誤如下:

INFO: starting new backup job: vzdump 260 --remove 0 --mode snapshot --compress gzip --storage <STORAGE ID> --node <NODE>
INFO: Starting Backup of VM 260 (qemu)
INFO: status = stopped
INFO: update VM 260: -lock backup
INFO: unable to open file '/etc/pve/nodes/proxmox-master-c/qemu-server/260.conf.tmp.3682' - Permission denied
ERROR: Backup of VM 260 failed - command 'qm set 260 --lock backup' failed: exit code 2
INFO: Backup job finished with errors
TASK ERROR: job errors

關鍵在於紅字的地方。要備份時,Proxmox VE會寫一個暫存檔在虛擬機器設定檔的目錄,但是錯誤訊息顯示該目錄有權限問題,只能讀取不能寫入(read-only)。

為什麼被設定成只能讀取的權限了 / Why Permission is Read-only Permission?

這是因為Proxmox VE加入了Cluster中,並啟用了Proxmox Cluster file system (pmxcfs)。pmxcfs的特色其中有一項:

read-only when a node looses quorum

意思是,當Proxmox VE運作喪失了quorum元件時,Proxmox VE節點的虛擬機器設定會被轉換成read-only。儘管虛擬機器本身是可以正常運作的,但是卻不能進行任何設定,包括備份。因為權限備份被鎖起來了。

而這個問題另一篇Wiki中有敘述。簡單來說,因為Cluster異常,quorum無法順利讀取,讓整個Cluster中的node彼此之間無法正常連線,導致每個node都只能看到自己的運作狀態,這時候node就會自動鎖起來。

警告 / Warning

以下方法是我摸索解決方案的一個過程,很多細節我不清楚,有幾台node可以如此解決,可是有幾台不行。我還沒有了解整個原因細節,在此只是記錄一下目前的解決方法。

Wiki的解決方式 / The solution from Wiki

根據wiki的介紹,最簡單的方式是在有問題的node上輸入指令:

# pvecm expected 1

但是當我要這樣做的時候,卻又有另一個錯誤訊息發生,告訴我cman並沒有正常啟動。我嘗試想要用「service cman start」,但是卻依然不能執行「pvecm expected 1」。

我的解決方式 / My solution

因此我決定參考Re-installing a cluster node的方法,先關掉所有相關服務,再開啟相關服務,最後再執行expected指令。我將這些指令建置成了expected.sh,可以從GitHub上下載,檔案內容細節如下:

#!/bin/sh

service pvestatd stop
service pvedaemon stop
service cman stop
service pve-cluster stop

service pve-cluster start
service cman start
service pvedaemon start
service pvestatd start

pvecm expected 1

執行的時候依然會遇到很多問題,quorum等待過時(time-out)的問題依然沒有改變,如下圖:

2014-03-02_215458

儘管如此,執行完之後,有一定機率可以正常啟用整個Cluster。

其他注意事項 / Other Note

說是一定機率的原因是,有時候可能要重開機之後再執行一次expected.sh。但是這不一定每次都會成功,我試了好幾台,結果都不一樣。必須注意的是,重開機之後,虛擬機器不會正常地Start on boot,需要手動開啟。

其中有幾台因為網路交換器出了問題(ASUS的,真是堅若磐石)而導致quorum無法正常運作。更換交換器之後就正常運作了。

目前我手邊已經沒有需要做這樣修復的node,所以我接下來就不會繼續深入探究了。就做到這邊吧。

(more...)

資訊視覺化的演進 / The challenge of information visualization evaluation

資訊視覺化的演進 / The challenge of information visualization evaluation

image

書目 / Bibliography

Plaisant, C. (2004). The Challenge of Information Visualization Evaluation. In Proceedings of the Working Conference on Advanced Visual Interfaces (pp. 109–116). New York, NY, USA: ACM. doi:10.1145/989863.989880

摘要 / Abstract

這一篇2004年文章的介紹了資訊視覺化(Information visualization)的定義、特色以及理論基礎,並描述未來資訊視覺化發展的方向,包括人類與人工智慧的多方互動(Mixed-Initiative Interaction)、合作式與社群網絡的視覺化(Collaborative and Social Visualization)、演算法的改進等等。

其中個人覺得最有意思的地方是討論資訊視覺化跟科學視覺化(scientific visualization)的差異,並點出了資訊視覺化的目標「洞見」(insight)的意涵。

閱讀筆記 / Reading Note

(Google Drive, OneDrive, Bot.net)

(more...)

Proxmox VE集叢重新加入節點 / Proxmox VE Cluster re-add (decluster) node

布丁布丁吃布丁

Proxmox VE集叢重新加入節點 / Proxmox VE Cluster re-add (decluster) node

proxmox_logo2configuration2

因為原本Proxmox VE集叢(Cluster)中有些節點(node)故障了,我想要移除該節點再重新加入,可是加入的手續卻沒這麼單純。參考sigxcpu的說明,我將作法摘要再這篇供大家參考。

This article will introduce how to re-add node in Proxmox VE Cluster.


不能直接用pvecm操作 / pvecm delnode & add not work

image

原本我的想法是先做delnode,再將自己加入。原本想像的指令如下:

pvecm delnode <self-node>

pvecm add <another-node>

可是實際上,雖然delnode不會顯示錯誤訊息,但是卻也無法順利從集叢中移除自己的節點。而且在用add加入節點時,也會發生以下錯誤訊息:

authentication key already exists

重新加入節點的腳本 / Script for Re-add node

在Proxmox論壇找了一下,才發現sigxcpu寫的解法

Step 1. 移除節點設定 / Delete Cluster Configuration (Decluster)

首先要停止服務、移除相關設定,然後重新開機。我撰寫了腳本上傳到github,你也可以直接用此腳本來操作。

decluster.sh檔案內容如下:

#!/bin/bash

service cman stop
killall -9 corosync cman dlm_controld fenced
service pve-cluster stop
rm /etc/cluster/cluster.conf
rm -rf /var/lib/pve-cluster/* /var/lib/pve-cluster/.*
rm /var/lib/cluster/*
reboot
Step 2. 重開機後加入節點 / Add to Cluster

重開機之後再正常執行加入節點的指令即可:

pvecm add <another-node>

這個節點必須是已經是目標集叢中的一員,可以用IP指定。大致上這樣就完成了。


小結:隱憂? / Conclusion: Something Strange…

今天下午我按照這個作法重新加入節點之後,集叢中的其他節點就無法正常運作了,整個集叢無法連線,但各別機器可以正常提供服務。

我現在還不清楚原因為何,是不是跟我重新加入節點有所相關。總之之後有其他發現的話,我會再介紹其他解決的方法。

(more...)

WordPress定期管理debug.log / Reducing oversized WordPress’s debug.log

布丁布丁吃布丁

WordPress定期管理debug.log / Reducing oversized WordPress’s debug.log

image

WordPress的debug.log會在不知不覺的時候無限增加。本文章介紹如何定期壓縮debug.log以避免容量暴增。

In WordPress, it's very easy to have a oversized debug.log. This article is aim to reduce the oversized debug.log in Linux.


前言 / Profile

最近我在管理WordPress的時候,赫然發現WordPress的目錄異常巨大,但是明明沒有上傳什麼大型檔案。查看之下才發現是debug.log的異常檔案過多,該檔案的路徑位於:

[WordPress安裝路徑]/wp-content/debug.log

網路上查了一下,發現大家並沒有什麼徹底解決該問題的方法。所以我決定自己撰寫Linux的Shell Script來壓縮debug.log。

解法流程 / Solution

我的解法如下:

  1. 配置compress_debug.log.sh腳本檔。
  2. 每天早上1點執行腳本檔。
  3. 腳本檔檢查debug.log容量是否大於100MB。
  4. 如果大於100MB,則壓縮到archive_debug_log目錄底下,依照日期命名,例如「debug.log-2014-02-18.zip」。然後清空debug.log。

以下介紹安裝的流程。

Step 1. 配置compress_debug.log.sh腳本檔 / Setting compress_debug.log.sh

腳本檔已經上傳到GitHub了,請從此連結下載。該檔案放置路徑如下:

[WordPress安裝路徑]/wp-content/compress_debug.log.sh

接著開啟該檔案的執行權限:

# chmod +x compress_debug.log.sh

你可以執行該檔案,看看archive_debug_log底下是否有出現備份檔案。

Step 2. 設置排程 / Setting crontab

修改排程檔案:

# vim /etc/crontab

加入以下設定

0 1 * * * root [WordPress安裝路徑]/wp-content/compress_debug.log.sh

其中的1就是指早上1點執行。


結語 / Conclusion

最近常常在處理備份檔的事情。這次備份腳本跟以往最大的不同在於加入了檔案大小的測試。很多每日備份檔案的行程,其實檔案大小並沒有大到值得備份的程度。這次加入了測試檔案大小來減少備份檔案的數量,也算是比以前更進步一些吧。

(more...)

Acer Aspire S7電池異常復原方法 / Acer Aspire S7 Battery Failure Recovery

布丁布丁吃布丁

Acer Aspire S7電池異常復原方法 / Acer Aspire S7 Battery Failure Recovery

20140217_221405

Acer Aspire S7(簡稱S7)最近電視廣告打很大,可是過保固之後就整個怪怪的。

我的S7最近常常關機後無法正常開機。即使電量充飽了,可是按下電源鍵卻仍無反應。後來發現是電池異常的緣故,要做電池重置的動作才能正常開機。

image

電池重置作法如下:

  1. 拔掉S7電源線,讓S7由電池供電
  2. 按下S7的電池重置按鈕。重置按鈕在底部風扇旁邊。如上圖紅圈圈。
  3. 按著10秒左右再拿出來。
  4. 按下S7電源鍵。如果順利重置就能夠正常開機。

20140217_222448

圈圈非常小,我是用鑰匙圈轉開之後才能戳進去,真的是非常麻煩。現在幾乎三天兩頭關機一次就會再起不能,必須要一直作電池重置的動作。哪天連電池重置都無效的話就得送修了吧。


以下附贈別人的S7遇到的問題:搖搖筆電。

我想應該也是電池的問題吧。

(more...)

OpenVZ掛載NFS的虛擬機器設定 / OpenVZ container configuration to mount NFS

OpenVZ掛載NFS的虛擬機器設定 / OpenVZ container configuration to mount NFS

image

如果要讓OpenVZ架設的Linux虛擬機器掛載NFS(Network File System),Host端必須先設定虛擬機器(container)的"nfs:on"。以下介紹詳細作法。

If you want to let OpenVZ container to mount NFS (Network File System), you have to enable "nfs:on" feature on host server first. Following is the details.


不能掛載NFS:mount.nfs: No such device / Mount NFS Error

image

如果NFS用戶端設定正確(可以參考鳥哥的NFS用戶端設定教學),可是仍出現錯誤訊息:(Debian上的)

mount.nfs: No such device

或是錯誤訊息:(CentOS上的)

mount: wrong fs type, bad option, bad superblock on 10.9.5.95:/raid0/data/_NAS_NFS_Exports_/email-km,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

這時候可能是因為OpenVZ尚未開啟NFS的功能的關係。

包括Proxmox VE在內,大部分OpenVZ虛擬機器(OpenVZ Container)在建立時都沒有開啟NFS的功能。如果要讓虛擬機器本身能夠掛載NFS目錄,請依照以下方法來開啟。

開啟虛擬機器的NFS功能 / Enable Container’s NFS Feature

Step 1. 將虛擬機器關機 / Shutdown Container

要進行設定之前必須先將虛擬機器關機。關機指令為:

# halt
Step 2. 進入Host端命令列 / Enter Host Shell

首先先進入Proxmox VE的網頁管理介面,預設連接埠為8006,必須用https進入。

image

登入之後,找到該虛擬機器的Host伺服器,進入右上角的「Shell」介面。

image

Proxmox VE提供了Java Applet連線的主控介面(console),可以在此直接以root身分操作Host端伺服器。

Step 3. 設定"nfs:on" / Setting "nfs:on"

接下來要照OpenVZ的說明設定虛擬機器。該機器的VMID若是101,那麼開啟NFS的指令如下:

vzctl set 101 --features "nfs:on" --save; vzctl start 101

image

設定完成之後,虛擬機器會一起啟動。

Step 4. 完成掛載設定

image

這時候再開啟虛擬機器,掛載NFS的時候,指令就能正常執行。


NFS掛載指令與設定 / NFS Mount Configuration

參考鳥哥的Linux私房菜中NFS客戶端的教學,OpenVZ要使用NFS,通常必須先做以下設定:

Step 1. 安裝nfs-common / Install nfs-common

Debian或Ubuntu系列請用apt-get安裝:

apt-get install nfs-common

CentOS或RedHat系列請用yum安裝:

yum install -y nfs*
Step 2. 測試NFS掛載指令 / Test NFS Mount Command

NFS的掛載位置必須參考NFS伺服器的設定。每一台NFS伺服器設定都不一樣,特別是現在各家NAS使用自家作業系統之後,提供的路徑千奇百怪,我在這邊卡了許久,後來升級NAS的韌體才知道NFS掛載路徑。

舉例來說,NFS伺服器設定如下:

  • IP網址:10.9.5.95
  • NFS的掛載路徑:/raid0/data/_NAS_NFS_Exports_/cluod-rstudio-2013
  • 本機的掛載路徑:/tmp/nfs(請預先用mkdir建立好該目錄)

那麼NFS掛載的指令就是:

mount -t nfs 10.9.5.95:/raid0/data/_NAS_NFS_Exports_/cluod-rstudio-2013 /tmp/nfs

試著執行看看。如果沒有任何訊息,那就是順利成功了。

Step 2-1. 錯誤: rpc.statd / Mount Error: rpc.statd

我在CentOS遇到以下錯誤訊息:

mount.nfs: rpc.statd is not running but is required for remote locking.

mount.nfs: Either use '-o nolock' to keep locks local, or start statd.

mount.nfs: an incorrect mount option was specified

那麼就必須先開啟rpcbind,指令為:

service rpcbind start

Step 2-2. 錯誤:mount.nfs: Connection refused / Mount Error: Connection refused

舊版本的CentOS會遇到這個問題。掛載時遇到的錯誤訊息如下:

mount.nfs: Connection refused

這版本的CentOS不是用rpcbind,而是用portmap。所以要先開啟portmap服務:

service portmap start

這樣就能夠正常掛載

Step 3. 開機自動掛載 / NFS Mount On Boot

修改 /etc/rc.local,加入剛剛測試成功的設定:

mount -t nfs 10.9.5.95:/raid0/data/_NAS_NFS_Exports_/cluod-rstudio-2013 /tmp/nfs

或是加上額外設定需要的「service rpcbind start」或「service portmap start」。

這樣就完成了。

(more...)

一小時的朋友 / One hour friends

布丁布丁吃布丁

一小時的朋友 / One hour friends

這個年假沒有幫到跳跳床的忙而只是在顧家,反而讓我懷念起之前寫的跳跳床打工的經驗。找了老半天才在噗浪中找出來,那我就在此備份一下吧:


時間:2012-01-28 15:24:51

 

這個年假如同往常一樣,我幾乎每天都在認識「一小時的朋友」。

 

***

 

「Hello~」瞪圓著的眼睛面對著打招呼的我,他一臉茫然。這是一位剛穿越氣墊床的越野叢林、準備爬階梯上到溜滑梯的四歲左右的小男孩。看他就這樣楞在那邊不接話,我就乾脆主動問他:「你知道怎麼爬嗎?」他看了看我,又看了看階梯,然後一整個身體撲上了階梯。

這種階梯類似繩梯,氣墊床本身是用帆布組成,而且軟趴趴的,所以小男孩撲上去倒也不會受傷。我看著他兩手抓著階梯的踏階,一階的高度大概是他的三分之二高,然後墊起腳尖、努力伸手想要抓到上面一階的階梯。伸了好久終於抓住了,他藉此攀爬了一階。但當他要在爬到更上層一階時,左腳一滑,他全身趴著階梯滑了下來。我趕緊用雙手扶住他,讓他站穩最下面的階梯。他仍然是一臉茫然,他不知道我是誰,也不知道到底要怎麼往上爬。

「我教你怎麼爬,來看著喔。」我扶著他的右手去抓著階梯旁邊的繩索,「抓緊右邊的繩繩。」他沒有回我,但是小小的右手確實地抓住了繩索。「然後是左邊的繩繩。」我一樣帶著他的左手抓住了階梯左邊的繩索。「就這樣,右邊、左邊、右邊、左邊,」我一邊扶著他,一邊指引他繼續往上爬,「繩繩抓得越高,你就越爬越高喔。」

小小的身體用上了全身的力氣,小男孩一階一階地往上攀爬。最後,終於坐上了階梯的頂端。「好棒喔,你成功了!」面對我的稱讚,他依然只是呆呆地看著我。「好,溜下去喔~」隨著我的話語,他也轉頭溜下滑梯,消失在我的視線範圍內。

 

***

 

過幾分鐘,小男孩穿越叢林來到了樓梯前。

 

「Hello~又看到你了。」「Hello!」他很開心地回應了我的問候,我想,這應該是溜滑梯魅力的效果。

這次他馬上抓住了繩索,兩三下就爬上了階梯。不過,「小心!」我又接住了腳滑的他,然後扶他爬上階梯。階梯頂端的他看著我,看起來十分期待待會溜下去的快感。「掰掰~」我對他揮揮手,「掰掰」他也笑著回應我,然後往另一邊溜了下去,伴隨著開心的大叫。

 

「Hello~我又看到你囉!」「Hello,嘻嘻嘻。」

過了幾分鐘,他又出現在我面前。而這次非常順利地爬上了階梯,然後「掰掰~」「叔叔掰掰~」地消失在另一端。

 

***

 

「Hello~你幾歲?」「5歲~」

 

「Hello~你要讀國小了嗎?」「幼稚園~」

 

「叔叔你有Angry Bird嗎?我有好多隻喔。」「真的喔,下次帶給我看吧。」

 

隨著見面次數越多,雙頰通紅的他越來越開心,而我們每次在攀爬階梯時的對話也越來越多。

 

***

 

不知道見了第幾次的時候,外面響起了來自櫃檯的廣播:

 

「手環上寫著10點30的小朋友,10點30的小朋友,你們的時間到囉,請到櫃檯剪票離開。」

 

他又是一臉茫然地看著我,我對他笑了笑,說:「來,可不可以讓我看看你的手環呢?」掀開他的左手袖子,綁在左手上、作為售票證明的手環上,有著黑色簽字筆寫的10:30。

「你的時間到囉,你去跟爸爸媽媽說。」「嗯。」他轉身打算從叢林離開,不過我拉住了他,跟他說「再溜最後一次吧?」他臉上綻放出了笑容,點點頭,然後一下子就爬上了階梯。

「叔叔掰掰~」他在階梯頂端叫我,一邊開心地揮著手。我也一樣,對他揮著手,笑著跟他說聲「掰掰」,並目送他溜下滑梯。
然後,我就再也沒有看到他穿越叢林來到階梯前了。

 

***

 

不過即使如此,

 

「Hello~是新來的呢。」下一位沒見過的小朋友很快地就出現在我面前。

 

而我又會微笑著問他:

 

「你會爬嗎?」

 

走了一位小朋友,我又很快地認識下一位。這就是我在年假時結交的,「一小時的朋友」們。

(more...)

回家

布丁布丁吃布丁

回家

DSC_0963

人家常說,「家家有本難念的經」。春節回家的時候,往往會聽到周遭朋友在抱怨回家所遇到的大小事。要嘛就是親戚嘮叨,老是在問交往、婚姻、工作、學歷;要嘛就是跟家人處不合,爸媽吵架、兄弟姊妹脾氣差;要嘛就是過年在家也一刻不得嫌,不光是打掃煮飯,還要去擺攤搶賺過年錢潮

要說的話,我回家的時候,也是有令我感到難過的事情。不過倒不是家人難相處、也不是討厭家事幫忙,而是生理上的難過──過敏。而這個過敏原不是貓狗、不是食物(是的,其實我吃海鮮也不會過敏),而是壁癌

我的鼻子呼吸道不太好,主要原因是因為從小就待在過敏。現在這個家大概是國中時候遷入的,從那開始之後,我的鼻子就變得很糟。開始帶手帕的原因也是因為常常會擤鼻涕擤到變成鼻血,因此嚇到周遭不少人。到了高中學校念得比較遠,就越來越不想回家──因為一回家,就會覺得很不舒服。直到上了大學來到台北,我才知道到底原來造成我鼻子的問題,就是因為壁癌。

DSC_0423

不光是我自己,我家人也多少因為壁癌的關係,不僅常常久病難瘉(幾乎都是鼻子的問題),甚至嚴重到氣喘的程度。得知原因之後,爸媽很辛苦地將整間房子有問題的地方打掉,發現不少排水溝滲水、水管破裂導致壁磚潮溼的地方,然後想辦法弄乾、水管重接、排水溝重鋪、防水油漆努力補強,工程浩大。那段期間我一直沒幫上什麼忙,真是感謝家人的辛勞。

但是,儘管這個大工程已經經過了快兩年,我在家裡還是會覺得很不舒服。年假這段期間,只要家事做完告一段落,我總是揹起筆電就躲到j附近的7-11去工作。每天晚上聽到爸爸因為鼻涕倒流導致咳嗽不止的慘狀,我覺得睡覺也像是在賭運氣一樣,要嘛就是因為呼吸不順、睡眠不佳而昏迷到中午,要嘛就是過敏嚴重到因為鼻子痛而醒來。

心疼孩子的媽媽老師拿屋子老舊讓大家過敏這點來唸爸爸,而爸爸總是開玩笑地說:「好啦好啦,那我出門去買房子就是。」然後騎摩托車前去彩券行。可惜我們家沒偏財運,房子還買不起,倒是先捐了一堆錢做公益。

隨著初五年假結束,我也回到了台北。但這時候身體總是像奇蹟般地自動痊癒。鼻子不塞了,鼻涕不濃了,喉嚨不咳了,呼吸也正常多了。這時候我總是覺得非常諷刺,這個身體就這麼討厭我家嗎?

雖然身體不太老實,不過我還是很喜歡我家人啦。這個年假沒幫上家人什麼忙,就只有一些打掃、幫忙煮個飯、收收碗筷,跟家人聊聊天而已。

即使是這樣,這也是我很重要的小小幸福。能跟大家在一起的時間不多,有機會就要好好把握啊。

(more...)

論文獲得了「The Electronic Library 2013 Highly Commended Paper Award」 / Receving The Electronic Library 2013 Highly Commended Paper Award

論文獲得了「The Electronic Library 2013 Highly Commended Paper Award」 / Receving The Electronic Library 2013 Highly Commended Paper Award

20131225-pudding-2-0003

陳志銘老師、其他老師以及我在內大家合力在2012年發表的論文「基於臺灣百年圖書館史DSpace平台發展讀者知識典藏與分享機制」獲得了Emerald出版社底下The Electronic Library期刊的高度推薦論文獎

My teacher, Prof. Chih-Ming Chen, other teachers and I published a paper “Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform” in 2012. And we got “The Electronic Library 2013 Highly Commended Paper Award” this year.


獲獎經過 / Receiving the Award

今年5月的時候,我收到來自Emerald Literati Network的得獎通知信件。那時候我還在想說,文章審查意見的事情主要是先由老師決定如何處理,而忽略這封信。隔幾天老師跟我報喜,我發現原來是這是獲獎通知。

信中還寫到有機會可以到國外研討會去領獎,我還挺興奮的,可惜後來並沒有如期成行。最後只有將獎狀寄出,大概12月才收到這張獎狀,就是文章開頭的那張圖片。

最後記錄一下得獎的網頁:

獲獎論文 / Awarded Paper

elcover

獲獎的論文原文是「Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform」,完整的APA引用文獻是:

Chen, C.-M., Chen, Y.-T., Hong, C.-M., Liao, C.-W., & Huang, C.-M. (2012). Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform. Electronic Library, The, 30(3), 426–442. doi:10.1108/02640471211241681

文章網址:

摘要 / Abstact

image

研究目的 / Purpose

本研究係在台灣圖書館史數位圖書館中,發展一基於Web 2.0技術、可在HTML網頁進行標註的閱讀標註與知識分享工具。

研究方法 / Design/methodology/approach

本研究調整了DSpace──一個開放原始碼的機構典藏系統──以此建置臺灣百年圖書館史數位圖書館,並加上讀者標註工具以支援讀者知識典藏與分享機制。本研究採用準實驗研究設計,將受試者隨機分成實驗組與控制組,以該系統進行閱讀學習並評估閱讀理解成效。統計分析顯示使用閱讀標註工具的實驗組學習成效明顯較高。

研究結果 / Findings

本研究發現具閱讀標註之數位文本提供讀者有用的知識。標註的價值在於可以輔助讀者獲取深度知識與進行有效閱讀。此外,對於數位圖書館來說,數位圖書館的內容也可以隨著讀者知識典藏而動態成長。更重要的是,來自不同讀者的標註資訊將有高度潛力,可以利用資料探勘技術進行更進一步的知識加值探勘。

研究價值 / Originality/value

在圖書資訊學領域中,蒐集讀者產生的內容是一種嶄新的研究議題,而且鮮少研究發展出有效的工具以支援讀者在數位圖書館中貢獻他們的知識。本研究描述了如何實作此數位圖書館系統以及如何利用標註工具促進數位典藏的成長,並影響讀者學習成效的提昇。

系統平台 / Platform

THL Project

論文提到的系統還可以使用喔:

關於百年圖書館史,可以參考我之前的「臺灣百年圖書館史」介紹。本系統在今年被我轉移到OpenVZ上,現在是以虛擬機器的形式在運作。不過這是我早期使用DSpace的系統,所以很容易當機。如果有問題的話可以在下面反應一下。


小結:得獎不敢居功 / Can't Take The Credit for This Award

這篇論文能得獎,還是得歸功於老師們,我主要做的只有系統功能的結合而已。能跟老師們沾點光,我就覺得很幸運了。在此僅是推銷一下這篇論文的內容與系統,做個記錄而已。

不過,未來我還是希望能靠自己的寫作來得獎,到時候才能夠真的抬頭挺胸地跟大家分享這份驕傲吧。

(more...)

關閉NetBeans的滑鼠中鍵字體縮放功能 / Disable NetBeans Zoom Text In / Out Keymap

關閉NetBeans的滑鼠中鍵字體縮放功能 / Disable NetBeans Zoom Text In / Out Keymap

image

NetBeans上用滑鼠中鍵滾動捲軸時,往往會不小心因為按著中鍵滾動而導致觸發了文字縮放功能。本文章參考stackoverflow中fivedigit的解答,以圖文說明如何關閉這個功能。

To prevent from triggering off zooming text function in NetBean, this article aims to disable this function by modifying keymap configuration.


作法指導 / Guiding

Step 1. 進入Tools > Options

image

Step 2. 進入Keymap分頁進行調整

image

此處動作比較複雜。進入Keymap分頁之後,你會發現有很多快捷鍵的設定。請先在Search輸入「Zoom」,以找到我們要修改的Zoom Text In與Zoom Text Out。然後按下右邊的「…」按鈕,選擇「Clear」。兩個功能都要做「Clear」喔。

Step 3. 按下OK

image

這樣就完成囉。

請使用NetBeans的人先把這個功能關掉吧,不然每次滾動捲軸時真的是常常誤觸呢!

(more...)