:::

從日曆上看RSS:RSS轉換成iCalendar格式

布丁布丁吃布丁

從日曆上看RSS:RSS轉換成iCalendar格式

 

20121231-003507

許多網站服務都提供資訊饋送RSS Feed的服務,可供Google Reader之類的RSS閱讀器來訂閱。大部分的RSS閱讀器都是以一篇一篇的形式瀏覽文章,但是如果能從日期來回溯看過的RSS文章,那RSS就不只能當做新聞閱讀,還能典藏資訊供之後的調閱。

現在的日曆軟體也有訂閱功能,例如Google Calendar,可惜它訂閱的是iCalendar格式,跟RSS的XML格式差別很大。今天我找到了Yahoo Pipes這個有趣的程式化Feed改造服務,作了一個RSS to iCalendar服務供大家使用。

這篇是教大家如何使用RSS to iCalendar服務,並放你的Google Calendar的方法。


1. 準備你要轉換的RSS Feed網址

首先,你應該會有一個想要轉換成可在日曆上看到的資訊來源。Blog是一個很好的例子,如果可以從日曆上看到你是什麼時候寫的Blog,那不就像是日記一樣地實用嗎?

image

以下我就用你現在看到的這個Blog「布丁布丁吃什麼?」的RSS來介紹。我想把最新發表的文章放到日曆中,那麼我透過一些調查知道這個RSS Feed網址是:

記好這個網址,待會會用到喔。

2. 進入RSS to iCalendar設定資料

20121231-005109

請開啟RSS to iCalendar網頁,網址如下:

請在中間兩個欄位輸入資料,這兩個欄位各別是:

image

  • 請輸入RSS/ATOM網址 (Feed URL):輸入剛剛查到的RSS Feed網址「http://pulipuli.blogspot.tw/feeds/posts/default
  • 請輸入標題的前贅詞,以方便分辨RSS/ATOM來源 (Prefix of every item title):這個日曆我希望標題開頭都帶有容易分辨的標籤,所以填入「[BLOG]」

接著按下右邊的「Run Pipe」,等待Yahoo Pipes擷取你的Feed資料吧。

image

如果順利的話,下面的List會列出我的Blog文章標題與內容,也就是Feed的資料。你可以發現標題都被加入了[BLOG]字串

3. 取得iCal網址

20121231-001955

接著我們要取得可以匯入日曆的iCal網址,它的位置是在List上面那排分享工具列最右邊的「More options」裡面的「image Get as iCal」,請按右鍵來「複製連結網址」。這些位置不太好找,請參考上圖來操作。

最後取得到iCal網址為:

http://pipes.yahoo.com/pipes/pipe.run?_id=2f8dc3f91998456a835b5c86d91e9ce1&_render=ical&feed=http%3A%2F%2Fpulipuli.blogspot.com%2Ffeeds%2Fposts%2Fdefault&prefix=%5BBLOG%5D

4. 匯入到Google Calendar中

20121231-001706

日曆軟體很多,在此我是以最常用的Google Calendar來說明。在Google Calendar左下角有個「其他日曆」的位置,它的標題右邊有個下拉式三角形箭頭按鈕image ,開啟選單進入「輸入網址以新增」。操作位置請參考上圖。

image

接著請輸入剛剛取得的iCal網址,按下「新增日曆」,然後稍待一下。

image

如果順利的話,Google Calendar會建立一個「RSS to Calendar (iCal)」的日曆。

20121231-001857

如果不幸出現了「無法為 …… 於 http://pipes.yahoo.com/pipes/pipe.run?_id=2f8dc3f91998456a835b5c86d91e9ce1&_render=ical&feed=http%3A%2F%2Fpulipuli.blogspot.com%2Ffeeds%2Fposts%2Fdefault&prefix=%5BBLOG%5D 中新增匯入的日記」這種訊息,請試著換台電腦再操作看看吧,你可能被Google Calendar擋下來了。

6. 設定RSS to iCalendar(iCal)日曆

image

接著教你如何修改RSS to iCalendar (iCal)的名稱跟顏色。請按下該日曆右邊的箭頭開啟選單 image,你可以在此選擇日曆的顏色,然後進入「日曆設定」。

image

在日曆設定中,你可以設定日曆名稱。現在我們把「RSS to iCalendar(iCal)」改成「布丁布丁吃什麼?」,然後按下上面的「儲存」按鈕吧。

image

日曆名稱改成「布丁布丁吃什麼?」囉。

這樣子你要新增下一個RSS to iCalendar的時候,就不會因為日曆名稱一樣而被搞混了。


結語:用日曆來「彙整」日記

用日曆來寫日記這種概念很多人都有過,但是用日曆來「彙整」日記這想法似乎就很少人提過。

傳統對於日記的概念大多是撰寫成一份供人閱讀的文件,但是在網路時代中,我們的日常記錄卻常常是以不同的形式分散在網路的各個地方:在Blogger寫的文章、在Plurk發的牢騷、在Picasa建立的相簿、在Facebook舉辦的活動、在Evernote保存的網頁。

有些網站服務是專門彙整你在網路上活動的社群網站記錄,但是卻很少看到這些服務是以日曆的方式來保存。

最近一天,我忽然發現我想要找三年前某一天的活動照片跟聊天討論時,我開始驚覺到用日期來找尋日記這件事情有多麼的重要。所以現在才會著手研究RSS轉成iCalendar保存在Google Calendar的方法。

當然,放在Google Calendar的日曆不僅可以從日期來瀏覽,也支援全文搜尋的功能,讓你更方便找到以前的日記喔。

(more...)

Proxmox修復OpenVZ虛擬機器使用Ubuntu 12.04/10.04無法在console顯示的問題

Proxmox修復OpenVZ虛擬機器使用Ubuntu 12.04/10.04無法在console顯示的問題

image

Proxmox VE是虛擬機器運作環境的一種平台,其特色是支援了容器虛擬化技術OpenVZ。OpenVZ可以用較少(比起VMware之類的全虛擬化)的檔案建立一個高效能的獨立虛擬機器。然而OpenVZ並非是一種全虛擬化的技術,在運作各個系統時難免會遇上一些問題,需要手動修正。

這篇是講以OpenVZ建置Ubuntu 12.04/10.04虛擬機器時,修復console (控制台)無法順利使用的問題。問題的解法是來自於Proxmox的說明網頁,基本上照著它的作法並沒有錯,我只是增加一些額外的說明而已。


問題敘述:console卡死在apache2

20121221-230506

這次我在Proxmox VE 2.2版中安裝ubuntu-12.04-standard_12.04-1_i386.tar.gz樣板建立起Ubuntu虛擬機器。建置過程順利,但是卻無法順利進入console(控制台)。如上圖所示,畫面卡在以下訊息:

* Starting web server apache2                   [ OK ]

看監控表,虛擬機器是有正常運作,可是實際上卻不能使用,怎麼會這樣呢?我找了好久才發現原來這是Ubuntu的桌面無法配合console顯示的問題。

解決方法:調整Ubuntu的tty1.conf

首先,先登入Proxmox VE伺服器,我們從伺服器來進入Ubuntu虛擬機器修改。

查詢Ubuntu虛擬機器編號

你必須先知道Ubuntu虛擬機器的編號,你可以輸入vzlist指令來查詢:

proxmox-ve:~# vzlist
     CTID      NPROC STATUS    IP_ADDR         HOSTNAME
      108         23 running   192.168.9.20    ubuntu-1204.proxmox.com
      109         18 running   192.168.9.21    centos63-64.proxmox.com
      111         15 running   192.168.9.23    centos5-64.proxmox.com
      114         14 running   192.168.9.30    deb6-32.proxmox.com
      115         15 running   192.168.9.31    deb7-32.proxmox.com
      122         14 running   192.168.9.36    deb5.proxmox.com

從上面的例子中你可以看到ubuntu1204.proxmox.com的編號是108

進入Ubuntu並修改tty1.conf

接著輸入vzctl enter 108來進入Ubuntu虛擬機器:

proxmox-ve:~# vzctl enter 108

順利的話,你就可以看到以下訊息:

root@ubuntu-1204:

這表示你進到Ubuntu虛擬機器了,接著來修改tty1.conf吧。tty1.conf的檔案路徑位於「/etc/init/tty1.conf」:

root@ubuntu-1204:/# vim /etc/init/tty1.conf

你會看到以下畫面:

image

現在要把這個檔案的內容改成以下設定:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
 
start on stopped rc RUNLEVEL=[2345]
 
stop on runlevel [!2345]
 
respawn
exec /sbin/getty -8 38400 tty1

儲存該檔案,然後重新啟動Ubuntu伺服器吧。

root@ubuntu-1204:/# reboot

然後你就可以在console看到Ubuntu虛擬機器順利啟動了。

20121221-230123

(more...)

從散步到跑步

布丁布丁吃布丁

從散步到跑步

Screenshot_2012-12-21-18-22-45

最近回到政大的時候,也想要試著養成每日運動的習慣。今天也是沿著景美溪河岸跑跑看,感覺還不錯。不過跟之前當兵相比,這種程度的跑步量還真是相差很多啊XD

這篇想要記錄一下我對於跑步這件事情的一些想法,純粹閒聊而已。


在山路散步

262671_1771953106347_3676212_n

在政大的期間,由於工作的地方是位於山腰上的百年樓、住的地方又是位於山頂的自強宿舍,所以大部分的時候我都是走路上下山。

政大有校內公車,車資1元,非常受學生歡迎。但是我覺得比起在公車上人擠人,我更喜歡像是烏龜一樣,一步一步地踏著傾斜的山路上山。

DSC_0305

我喜歡悠閒地在路上慢慢地晃著,偶爾抬頭看看天空、夕陽與晚霞,偶爾看看四周綠意盎然的山林,偶爾也可以沉浸於手上的手機、平板電腦或PSP(←不良示範)。

總覺得,這樣子在山路上散步,就已經算是一種運動了。可是在軍中,正常體位如我,徒手三千公尺跑步只是基本要求。

新訓的跑步訓練

剛入伍的時候要經過新兵訓練,簡稱新訓。新訓會格外要求各位阿兵哥的基本體能,對此進行嚴格的訓練。

我聽過許多人為了怕當兵時跑不了三千公尺,在入伍前就開始訓練。但是我進去之後才知道,軍中也不會要你馬上就跑三千公尺,而是從一千二百公尺左右的長度逐漸增長,最後才是跑完整的三千公尺。

嗯?一千兩百公尺大概有多長呢?比較一下今天跑步的地圖,我想一千兩百公尺大概就是從政大前門水平移動到蔣公銅像的後門這麼長吧。儘管政大因為是山路的關係,並沒有像是直接跑在平地那麼輕鬆,但是以前從前門到後門都要騎車的距離,居然新訓時就要做到了!

而且很遺憾的,因為種種誤會,直到我真正跟大家進行跑步訓練的時候,大家已經從兩千公尺起跳了。兩千公尺大概又有多長呢?差不多就跟我今天跑的距離一樣,從百年樓往後門跑、下景美溪河岸、一路跑到道南橋這樣的程度。

平常沒在跑步的我,第一次就跟大家帶隊跑步兩千公尺,實在是非常地吃力。帶隊跑步的意思是,一百二十幾人排成四路隊形,必須腳步劃一地進行跑步訓練。不光是跑步,我們也要藉由大聲喊出口號來維持隊形與統一步伐,以避免跑步時造成混亂、採到別人的腳步。

一邊跑步、一邊跟上大家的腳步、還要一邊喊口號,跑步結束之後走路緩衝的時候,我是直接被班長扶到救護車去休息,整個人完全撐不下去。

 

但是,那的的確確是個新奇的體驗

「加油!撐下去!」

老實說,雖然身體沒辦法完全地跟上大家的腳步,但是我不但不討厭帶隊跑步,反而覺得這是很有趣的一項活動。這麼多人跟你一起跑步,這大概也是只有當兵時才會經歷的體驗了。

新訓時並不特別強調速度,只要大家都能順利跑完,帶隊者也不會刻意刁難。跑個幾天之後,就算不運動如我也逐漸地能夠適應。甚至有種如果不是刻意要求速度的話,似乎不管跑多遠我都做得到的感覺。

更讓我覺得有趣的地方,是在於一起跑步的同袍們。

帶隊跑的用意不僅僅是管理方便,由於大家要彼此配合奔跑,有時候你會有種「被隊伍帶著跑」的感覺,而激勵自己跑得比原本的狀況還要好。

另一種情況不是「被隊伍帶著跑」,而是「在隊伍中往前跑」。儘管帶隊跑會要求隊形,但是跟不上的人終究也只能逐漸脫隊,此時後面的人就會在隊伍中慢慢地往前推進。那種超越別人的瞬間,也算是自己一個鼓勵。

不過,比起超越其他人,「加油,撐下去!」地鼓勵快要撐不下去的同袍是我更常作的事情。

 

我們要一起跨越終點線,加油!

下部隊之後的跑步訓練

新訓之後我又被分發到二階段訓。雖然那時候也是要求每天下午跑步,但是距離大概只有兩千公尺,與新訓時的三千公尺有相當大的差別。

那時候就開始有種不跑一下身體難以舒展的感覺,在跑完基本要求的兩千公尺之後,我偶爾也會自己再去多跑個一陣子。那時候也認識了幾位喜愛跑步的朋友,有人一起跑步、聊天,感覺也不錯。

儘管新訓與二階段訓對於體能要求都是照表抄課,但是下部隊之後的體能訓練,則是端看上面長官的重視程度。

我剛下去的時候剛好遇到體能鑒測,那時候也是下午要求統一集合帶操、跑步。之後的體測要求、聯隊對體能的重視等等,也都會引起一陣跑步訓練的風潮。

不過除此之外,大部分時候在路上跑步的人都是少數。平常工作已經很累了,下班之後更是不會想要訓練體能。因此下部隊之後,不僅帶隊跑的機會不多,種種業務工作纏身的情況下,下班之後要跑步也很困難。

觀賞不同的景色

有陣子,我幾乎覺得自己退回到跑不了三千的程度了。還好,跟我同辦公室的同梯,他是個喜歡運動的人──比起在辦公室工作來說更喜歡運動XD

有一次在他的推薦之下,我跟他一起沿著機場外圍的道路跑步。跟以前繞著固定道路跑個三四圈的情況不同,外圍道路道路寬敞、人車稀少,也不會有種一直在原地打轉的感覺。我們就是只跑一圈,但是是非常大的一圈,光這樣跑下來就已經快要四千公尺了。

我們並沒有刻意在意速度,一邊聊天一邊慢慢跑地跑完全程。

 

「比起跑固定的地方,」同梯他說,「我更喜歡在這邊跑步,可以一邊觀賞不同的景色。」

 

他說的這番話,讓我印象十分深刻。

即使在這個營區中服兵役已過半載,我卻還有許多地方尚未涉足。像是這外圍道路,要不是他找我來這跑步,我自己可能從來不會想要來這邊看看。

經他點醒之後,跑步對我來說,已經不只是一項單純的體能訓練,而包括了擴大視野的這層意義。

找尋政大的景色

退伍之後,我離開了平坦的營區,回到位於山上的政大校園。

我十分質疑自己是否能夠維持軍中跑步運動的習慣。畢竟在當兵時都是跑平地,很少會在傾斜的路上跑步。綜合學院旁操場的人又實在是太多,跑起來也不太順暢的感覺。而適逢寒流與東北季風,這季節台北雨天的日子比晴天還要多。別說在山路上跑步了,甚至是不想出門被雨淋呢。

 

有一次,終於天晴了。

我下定決心,試著走出百年樓跑跑看山路。不過才剛開始跑,就被藝文中心那邊新蓋好的水岸電梯吸引了過去。

DSC_0103

看到新玩意兒當然是先來參觀一下了,二話不說立馬跑過去坐個電梯下樓看看。

DSC_0107

透明外牆的水岸電梯上,可以看到景美溪河岸旁的水岸道路,平坦地綿延到前門。

 

這時候我忽然想起了同梯的話。

對喔,政大並不是只有山路跟操場,它還有像是景美溪河岸這樣的平路呢。

開始每一場冒險

unnamed

剛好,最近又發現到Google推出了Android APP「我的足跡」,可以越來記錄我每次跑步的過程。

Screenshot_2012-12-21-20-36-40

看著APP上寫著「開始記錄您的下一場冒險」,激起了我對於四處跑步的興趣。

今天下午我就開著它,從政大後門沿著景美溪河岸跑到了前門,並上傳到了我的Google地圖。這樣跑下來約2.19公里,花了16分鐘。以當兵時三千公尺要求15分鐘(因年紀而調整)的標準來說,這成績是完全拿不上檯面。但比起跑步訓練體能這件事情,四處觀看不同景色卻能給我帶來更多樂趣。

今天在跑步的時候,我發現景美溪對面似乎也是不錯的一條路線。每次跑步時都能開發出不同的路徑,未來又會有更多的冒險可以進行,真是令人期待啊。


結語:運動的樂趣

如果說當兵讓我學到最重要的東西,我想應該就是「運動的樂趣」吧。

流汗是一種舒爽的感覺、喘氣是一種活著的證明,而在挑戰體能的極限之餘,我又學到了從跑步中欣賞更多周圍景色的樂趣。對我來說,當兵是很有價值的一段經驗。

做運動是很有趣的,希望大家都能多多跑步、或至少散散步,欣賞一下週圍的景色吧。

本週的布丁通信,就到此為止囉。

(more...)

XAMPP啟用PostgreSQL功能

布丁布丁吃布丁

XAMPP啟用PostgreSQL功能

20121220-205618

XAMPP是一套以Apache、PHP、MySQL組成的開發用套裝伺服器,但它並沒有內建PostgreSQL,在設定PostgreSQL的連線上也不是這麼直覺。

最近在架設開發環境的期間遇到了XAMPP無法順利啟用PostgreSQL連線的問題。經過一番研究,總算找出了解法。這篇就是介紹如何在XAMPP中啟用PostgreSQL的方法。


作業系統說明

image

我目前使用的作業系統是Windows 7 企業版,64位元。這篇的問題主要都是發生在Windows之中,Linux使用者應該不太容易遇到這個問題喔。

XAMPP與PostgreSQL的安裝

image

XAMPP使用的是XAMPP Portable 1.8.1

必須特別註明的是,儘管這是Portable可攜版本,但是目錄必須為「xampp」並放置在磁碟分割的根目錄下,例如「C:\xampp」或「D:\xampp」。我因為想嘗試不同版本而將資料夾命名為「xampp 1.8.1」之類的名詞,xampp就無法順利啟動。

PostgreSQL使用的是9.2.2版。網路上討論這個問題時通常看到的是8.x版本,所以我想版本應該不是問題。

XAMPP的部份

20121220-223634

剛安裝好XAMPP與PostgreSQL的時候,XAMPP裡面的PHP是無法順利連上PostgreSQL的,因為它預設並沒有打開pg_sql模組。

設定php.ini

php.ini是PHP的主要設定檔,它位於以下路徑:

[xampp]\php\php.ini

請以任意的文字編輯器開啟,並找到以下兩個PostgreSQL模組的選項:(兩者位於不同行,但很相近)

;extension=php_pdo_pgsql.dll
;extension=php_pgsql.dll

開啟模組的方法就是移除前面的註解符號「;」,修改之後如下:

extension=php_pdo_pgsql.dll
extension=php_pgsql.dll

20121220-205754

修改完成,請重新啟動Apache。

用XAMPP Control Panel來啟動XAMPP

image

最近幾版的XAMPP都有一個方便的控制版:XAMPP Control Panel,位於以下路徑:

[xampp]\xampp-control.exe

開啟之後就可以看到上圖的畫面。

如果要開啟Apache,點下Apache後面的「Start」按鈕就可以了。

缺少libpq.dll的問題

照理來說,照上面的步驟啟用PostgreSQL模組之後就能正常運作。但是實際上卻遇到了錯誤訊息:

20121220-205618

無法啟動程式,因為您的電腦遺失 LIBPQ.dll。請嘗試重新安裝修正這個問題。

不僅如此,還連帶地出現以下的錯誤警告:

20121220-205650

這個錯誤就是因為XAMPP沒有載入PostgreSQL重要的函式庫libpq.dll。

找到libpq.dll的位置

我安裝的時候,赫然發現XAMPP其實已經內建了libpq.dll。檔案位置如下:

[xampp]\php\libpq.dll

但是在Windows中就是無法自動載入,必須要手動設定才行。

在httpd-xampp.conf中載入libpq.dll

要載入libpq.dll則必須在Apache設定檔中加入LoadFile選項。

20121220-222657

網路上大部分都建議修改Apache的主要設定檔httpd.conf。但是httpd.conf很長、也有一定結構,我找了幾個地方塞進LoadFile,開啟Apache時都會發生錯誤,如上圖。

後來我發現XAMPP也在他們自己的設定檔httpd-xampp.conf使用了LoadFile,我們也可以在此設定載入libpq.dll。httpd-xampp.conf的檔案位置如下:

[xampp]\apache\conf\extra\httpd-xampp.conf

找到這一行設定:

LoadFile "/xampp/php/php5ts.dll"

在前面插入載入libpq.dlll的設定:

LoadFile "/xampp/php/libpq.dll"
LoadFile "/xampp/php/php5ts.dll"

20121220-223702

設定完的httpd-xampp.conf就如上圖。

image

這樣再開啟就不會出錯了。

檢測PHP是否啟用了PostgreSQL的功能

phpinfo()

image

要知道PHP到底有沒有啟用PostgreSQL,最簡單的方式就是來看phpinfo()的訊息。XAMPP內建一個網頁專門顯示phpinfo()資訊,開啟Apache之後請開啟以下網址:

搜尋看看「pg_sql」,應該可以看到模組的相關資訊,那就表示順利啟用。

用函式檢測是否有啟用PostgreSQL

另一個方法就是檢查PostgreSQL的函式能不能使用,能夠使用就表示PostgreSQL模組有順利啟用。PHP檢查函式的語法如下:

$postgresql_is_enable = function_exists("pg_connect");

我們就能透過$postggresql_is_enable來得知PostgreSQL是否有順利啟用。


結語:PostgreSQL真是小眾

postgresql_logo-1979px

作為知名的開發環境,XAMPP在支援PostgreSQL上卻是意外地薄弱。這個問題在網路上查詢的結果,有不少人都是叫你關掉pg_sql就好,實在是令人為PostgreSQL的小眾難過。

比起流行的MySQL,我仍然覺得PostgreSQL才是大型系統應該要使用的資料庫。不光是可以用於商業行為的BSD授權(MySQL商業使用要付費的啊,希望大家要有授權的觀念),transaction功能與豐富的資料型態也都是讓人愛不釋手。

在此還是呼籲一下PostgreSQL的重要性,希望大家多多重視這個重量級的資料庫吧!

(more...)

Sublime Text 2中文化的安裝方式

布丁布丁吃布丁

Sublime Text 2中文化的安裝方式

image

Sublime Text 2是一個強大的文字編輯器,原始介面是英文的,官方沒有提供中文介面。網路上提供的中文化檔案很多,不過安裝方法都不夠詳細,沒有那麼簡單。我稍微摸索了一下,整理成這篇教學。



Sublime Text 2中文化語系檔下載

網路上許多中文化都是簡體中文,我們當然要用的是正體中文囉。令人高興的是ptt的R+在版上提供了他的Sublime Text 2中文化語系檔

下載解壓縮之後,你會看到9個以sublime-menu為副檔名的檔案,這就是Sublime Text 2的介面語系檔。這些語系檔也都是純文字,你也可以自行編輯成你習慣的用語。

安裝語系檔

由於作業系統跟安裝方式不同,語系檔要放置的位置也不盡相同,所以網路上大家的教學也都不太一樣。照我的觀察,現在Sublime Text 2似乎是統一將語系檔放在Packages資料夾中的Default資料夾裡。一般的安裝包與Portable的綠色可攜包的Packages也都在系統的不同位置,不過其實他們都可以透過Preferences > Browse Packages…來開啟Packages資料夾。

image

Browse Packages選項的位置如上圖所示。請原諒我已經中文化了,懶得改回來XD

image

接著它會開啟系統的檔案總管,你可以找到裡面的「Default」資料夾。

image

裡面也有一些副檔名為sublime-menu的檔案。此時請將剛剛下載的中文化語系檔覆蓋掉這些檔案,然後重新啟動Sublime Text 2,就可以看到中文化後介面了。

image

之後如果要調整語系檔的話,我想應該直接編輯這邊的檔案就行囉。

(more...)

PostgreSQL的備份與復原

布丁布丁吃布丁

PostgreSQL的備份與復原

120_120823175057_1

最近又回來做標註系統了,這次一樣要先建構環境。當初我寫KALS標註系統的時候使用的資料庫是PostgreSQL,它沒辦法透過檔案系統來備份跟復原,必須仰賴它的工具。這篇稍微記錄怎麼備份與還原PostgreSQL資料庫。其實不是很複雜,只是備忘而已。


備份:pg_dump

pg_dump是PostgreSQL的標準備份工具,其主要用法為:

pg_dump [資料庫名稱] -U [帳號] -f [備份檔案名稱.backup.sql]

備份檔案名稱後面的附檔名.backup.sql只是我自己的習慣而已。

舉例來說,我現在要輸出「kals」資料庫,帳號為「kals」,輸出到檔名「kals-db-20121218.backup.sql」,那麼指令如下:

pg_dump kals -U kals -f kals-db-20121218.backup.sql

你會獲得一個「kals-db-20121218.backup.sql」檔案,這個就是你整個資料庫的備份檔了。

復原(備份回存):psql

因為上面我們匯出的是sql檔案,所以這邊用psql來復原備份的資料。

psql是PostgreSQL主要的管理工具,可以執行各種工作。在這裡我們要復原SQL檔案,其用法是:

psql -f [備份檔案名稱.backup.sql] [資料庫] [帳號]

現在我們要將備份檔「kals-db-20121218.backup.sql」復原到「kals」,使用「kals」帳號進行,那麼指令如下:

psql -f kals-db-20121218.backup.sql kals kals

Windows注意路徑問題

在Windows操作的時候,要特別注意到路徑的問題。直接在命令提示字元執行「pg_dump」或「psql」都會發生錯誤,因為Windows不知道這兩個工具的位置。

一般來說,PostgreSQL工具的位置會擺在以下位置:

C:\Program Files\PostgreSQL\[PostgreSQL版本]\bin\

以9.2版的pg_dump工具來說,它的路徑就是:

C:\Program Files\PostgreSQL\9.2\bin\pg_dump.exe

指定備份檔案的時候,也要注意你的路徑是否正確喔。

備份跟還原時放棄使用pgAdmin跟phpPgAdmin吧

image

一開始我是想要用phpPgAdmin來備份,可是卻發生以下錯誤訊息:

Export error: Failed to execute pg_dump (given path in your conf/config.inc.php : /usr/bin/pg_dump). Please, fix this path in your configuration and relog.

奇怪的是,設定檔本身並沒有錯:/usr/bin/pg_dump的確是在那個位置沒錯。這個問題也有人提出來,似乎尚未解決。

然後我想用pgAdmin來連線,但PostgreSQL要從外面連進去必須做許多設定,進行的不是很順利。後來直接放棄pgAdmin,改用指令比較快。


結語:未來考慮使用SQLite

雖然大型系統需要PostgreSQL這種重量級資料庫來支援,但是這大神實在是我們小小研究者難以搬動的對象。

sqlite370_banner

比起控管嚴格以致於難以駕馭的PostgreSQL,未來我考慮使用SQLite作為主要開發的資料庫,可能會比較適合不斷調整、修改、搬移的小型研究環境吧。

(more...)

yum遇到「thread.error: can’t start new thread」錯誤的處理方法

布丁布丁吃布丁

yum遇到「thread.error: can’t start new thread」錯誤的處理方法

20121218-150819

這篇是參考Aditech Blog的Fix 'thread.error: can’t start new thread' error while yum update [Tips]作法,發現的確可行,在此做個記錄。

問題原因

這個錯誤似乎是因為yum運作的時候記憶體不足,因此fastest-mirror plugin (挑選最快站台的插件)發生錯誤。解決的方式就是關閉fastest-mirror plugin,雖然這會造成使用yum的時候會花比較多時間,但總比不能用還好。

這也是因為我是在OpenVZ虛擬機器上使用yum,所以容易遇到記憶體不足的緣故吧!

處理方式:修改fastestmirror插件的設定檔

Adithya Uday提供了兩種方式來關閉fastest-mirror plugin,一個是修改plugin的設定檔,另一個是在yum指令中加入參數「--disableplugin=fastestmirror」。

前者是一勞永逸的方法,要修改的檔案在「/etc/yum/pluginconf.d/fastestmirror.conf」:

[root@linux /]# vim /etc/yum/pluginconf.d/fastestmirror.conf

修改「enable」參數,原本是「1」

enable=1

改成「0」

enable=0

如果要再度啟用fastest-mirror plugin,再改成1就好了。

(more...)

XAMPP遇到需要驗證時該怎麼辦?

布丁布丁吃布丁

XAMPP遇到需要驗證時該怎麼辦?

20121214-133209 需要驗證 - mosic

XAMPP是一個開發用的伺服器環境,它包括PHP、MySQL、SQLite、ProFTPD等等網頁伺服器該有的伺服器都一應俱全,是我很常使用的套裝伺服器。

要進入XAMPP的管理畫面時,大多時候會跳出需要驗證的資訊,像是:「伺服器要求提供使用者名稱和密碼,伺服器訊息:xampp user」,然後要你輸入使用者名稱和密碼。

在Linux底下,XAMPP預設的帳號叫做「lampp」,密碼預設記得好像是空白。你可以用指令列來設定Linux中XAMPP的密碼,如果你的XAMPP(在Linux下叫做lampp)放在「/opt」底下,那麼指令如下:

[root@server ~]# /opt/lampp/lampp security

然後XAMPP會問你是否要修改密碼,選yes然後。接著會問你MySQL跟ProFTPD的密碼。

20121214-133250 pietty

這樣就能重新設定XAMPP的密碼了。

在Windows中的設定也是大同小異,請自行應變吧。

(more...)

mRemoteNG使用PieTTY與安裝XULrunner

mRemoteNG使用PieTTY與安裝XULrunner

mRemoteNG - mosic

作為一位網管,我時常需要遠端連線到各種伺服器。有的伺服器是Windows,那就用遠端桌面連線(Remote Desktop Protocol,RDP);有的是Linux,那就用SSH (Secure Sheel Protocol);有的則是用網頁形式操作,GUI的操作介面也很方便。

最近發現mRemoteNG可以整合上述三種連線方式,不僅可以幫我記錄各個不同伺服器的帳號密碼,也可以用資料夾將站台分門別類。

mRemoteNG有一些部分可供自訂。像是可以把SSH連線從原始的PuTTY換成國人客製化的PieTTY;網頁引擎也可以不使用IE而用Firefox的Gecko。以下我就介紹一下mRemoteNG,然後說明上述兩種自訂功能如何使用。


mRemoteNG特色

  • 支援多種連線方式:RDPVNCSSH (Version 1 & 2)Telnet、Rlogin、RAW、HTTP、HTTPS、ICA、Ext. APP
  • 伺服器資料除了記錄伺服器連線位置之外,還能夠記錄密碼、設定顯示方式等等細節。
  • 用資料夾將伺服器分門別類,方便整理。
  • 頁籤顯示各連線資料,也可以將頁籤拉出來成為獨立視窗。讓你一口氣連很多伺服器時不容易混亂。

PieTTY:替換PuTTY的SSH連線工具

PieTTY是改自於PuTTY,並做了亞洲多國語系字元的調整。以下是PieTTY網頁的介紹:

PuTTY 是個小巧方便的 Telnet/SSH 安全遠端連線程式, 但用於非英語系文字時有非常多的問題, 而且它對於初學者來說過於複雜的使用界面也為人詬病已久。 PieTTY 則是源自於 PuTTY ,修正與完整支援亞洲等多國語系字元、 並在使用界面上大幅改進、易學易用的版本。

下載PieTTY
擺放PieTTY

下載PieTTY的之後,請放到以下資料夾:

  • <mRemoteNG-Portable下載位置>\

放置之後PieTTY會在以下路徑:

  • <mRemoteNG-Portable下載位置>\pietty0400b14.exe

20121207-170157 下載pietty - draw

舉例來說,我的mRemoteNG擺在D:\ Program Files (x86)裡面,實際路徑就會變成:

  • D:\Program Files (x86)\mRemoteNG-Portable\pietty0400b14.exe

Gecko:替換Internet Explorer的Firefox使用排版引擎

mRemoteNG預設使用Internet Explorer來開啟網頁,可是我個人比較偏好使用Firefox的網頁排版引擎Gecko(當然,如果有Google Chrome的WebKit就更好了)。

下載XULrunner

要讓mRemoteNG使用Gecko開啟網頁,你必須下載XULrunner

擺放XULrunner

下載XULrunner的之後,請放到以下資料夾:

  • <mRemoteNG-Portable下載位置>\xulrunner

放置之後PieTTY會在以下路徑:

  • <mRemoteNG-Portable下載位置>\xulrunner\xulrunner

舉例來說,我的mRemoteNG擺在D:\ Program Files (x86)裡面,實際路徑就會變成:

  • D:\Program Files (x86)\mRemoteNG-Portable\xulrunner\xulrunner

    設定mRemoteNG

    20121207-170632 options - draw

    將檔案就定位之後,接下來我們回到mRemoeNG設定。請到Tools裡面的Options,打開左邊導覽的Advanced,你會看到上圖的畫面。

    接著勾選「Use custom Putty path:」,輸入PieTTY的位置:「<mRemoteNG-Portable下載位置>\pietty0400b14.exe」(例如:D:\Program Files (x86)\mRemoteNG-Portable\pietty0400b14.exe)

    然後在「XULrunner path:」輸入XULrunner的位置:「<mRemoteNG-Portable下載位置>\xulrunner\xulrunner」(例如:D:\Program Files (x86)\mRemoteNG-Portable\xulrunner\xulrunner)

    檢查設定是否成功

    image

    首先我們先來檢查PieTTY是否設定妥當。當你連線到SSH網站時,如果發現上面多一排「連線(C) 編輯(E) 檢視(V) 視窗(W) 選項(O) 說明(H)」,那就是已經是在PieTTY底下連線囉。

    image

    然後我們來看看XULrunner是否設置成功。回到mRemoteNG一開始的Components Check,按下右下角的「Refresh」,你就會看到Gecko (Firefox) Rendering Engine (HTTP/S) Check變成綠色的,表示設定妥當。

    使用Gecko開啟網頁

    20121207-171849 Gecko - draw

    就算安裝好Gecko,mRemoteNG預設依然是用Internet Explorer來連線。你必須在建立HTTP或HTTPS站台的時候,在左下角的Rendering Engine改成「Gecko (Firefox)」才行,請參見上圖。


    結語:mRemoteNG不足之處

    支援的連線方式不夠全面

    雖然mRemoteNG已經支援許多種連線方式,但是對我們來說仍有幾個不足之處,像是不支援FTP、SFTP檔案傳輸(現在我主要依賴FileZilla Portable在使用FTP);不支援流行的遠端連線TeamViewer。另外一個類似mRemoteNG的工具軟體 Remote Desktop Manager就有支援上述的功能,可惜是收費軟體就是。

    網頁沒有密碼記憶功能

    mRemoteNG雖然提供了HTTP/HTTPS網頁開啟的連線方式,可是沒有記憶密碼的功能,所以每次都要重新輸入。

    缺乏中文化

    另一方面就是mRemoteNG並沒有中文化語系,而且他的語系檔編譯成了dll動態連結檔,要自行中文化並沒有這麼簡單。這都是比較可惜的地方。

    儘管mRemoteNG不盡完美,但對於一個開放原始碼的工具來說,已經算是幫得上許多忙了,在此推薦給大家!

    (more...)

    SSD固態硬碟使用感想

    布丁布丁吃布丁

    SSD固態硬碟使用感想

    DSC_0062

    SSD固態硬碟,這可能是近年來個人電腦最為革命性的元件。跟傳統內建磁盤的硬碟不同,固態硬碟SSD(Solid State Disk、Solid State Drive)的構成更類似記憶卡之類的記憶體技術。SSD改善傳統機械磁盤硬碟速度上的限制,以電子傳輸大幅提高存取的效率,而且沒有任何噪音。

    現在SSD發展蓬勃,不僅速度上已經完全超越傳統硬碟,而儲存容量與價格更是低到一般人所能接受的程度。就在各家3C新聞雜誌都在大力鼓吹換上SSD改善老電腦的風氣下,我也趁著退伍在家的期間把家裡電腦裝上了SSD。

    這一篇來記錄這段期間裝上SSD的一些使用感想,作為大家換裝SSD的參考。


    我對SSD的選擇

    一開始選擇SSD的時候,我就將預算限制在2000元以內。這個選擇有幾個考量:

    1. 不需要大硬碟我會將系統與個人資料分離,所以60GB的大小已經足夠。
    2. 不需要高速:高速SSD多標榜支援SATA3等級(6Gb/s)的傳輸速度,但對舊電腦來說,通常都只有支援到SATA2(3Gb/s)或甚至是SATA1(1.5Gb/s),買SATA3來裝在舊電腦上也只是浪費。(儘管如此,還是比傳統硬碟PATA最高用的133MB/s高得多)

    在這個條件下,走訪NOVA店家詢問之後,大致上有兩顆硬碟可以選擇:

    選擇出乎意外地比我想像中的少。其他大部分的SSD都是在兩千以上,或是容量只有32GB,不能達到我的最低需求。

    最後我選擇的是Kingston V+200,理由是主要是價格低,其他的條件都能滿足我的基本需求,我也不奢求太多了。

    2.5吋轉3.5吋的硬碟支架:40元

    現在的SSD多做成2.5吋硬碟的尺寸,無法直接裝在桌上型電腦的3.5吋機架中,它需要額外的一個2.5吋轉成3.5吋的硬碟支架。

    11091030785139_275

    (圖片來源:klkl_725的露天賣場

    這又是另一個意外:轉接架的選擇非常多,而價位從40元到近300元都有。店家販售SSD的時候也會一併搭售轉接架,但是價位居然要90元!還不如到隔壁電腦零件店去購買,功能最基本的轉接架也只要40元而已,別買貴了。

    作為系統碟,60GB一不注意就捉襟見肘

    我的第一台實驗品是家裡的電腦,2010年初購買,Intel Core i3、12GB DDR3記憶體,雖然說不上是最新等級,但也還算好用了。在換上SSD之前,操作的時候常常會感到硬碟讀寫上的延遲,這也是我想靠SSD改善的主因。

    經過簡單的重灌、安裝成Windows 7之後,現在這台電腦用起來是相當順暢的。順暢到我甚至連Office 2010都灌在SSD上,跑起來非常地流暢。但是使用一段時間之後,幾個問題就浮現出來了:

    休眠佔用大量硬碟空間

    在大記憶體的電腦中使用休眠功能,會在硬碟裡面寫入與記憶體同樣大小的暫存檔。我的電腦安插了12GB的記憶體,所以SSD馬上就被佔用了12GB的大小。

    除非不用休眠,不然這個限制無解。

    安裝的軟體佔用硬碟空間

    雖然我會將軟體安裝指定到D磁碟中,以避免佔用SSD的C磁碟,但仍是有些軟體無法指定安裝位置,必須強制佔用C磁碟。

    另一個就是iPhone在iTune上的備份預設就是存在C磁碟中,必須要靠Junction連結才能騙過iTune。許多人都深受系統碟被iPhone備份塞爆的困擾,我也是受害者之一。

    硬碟空間不足的時候,速度就會變慢

    以上幾個問題下來,60GB的SSD逐漸面臨空間不足的難處。到了這時候,系統就會在一些存取的時候變得比較慢,讓人有種頓一下的感覺。

    然而這比起傳統硬碟來說還是非常地快,只是用習慣了流暢的系統,你就會覺得這個頓一下真是特別的礙眼。

    小結:SSD還是很好用

    就這邊為止,SSD還是非常地好用。不僅開關機速度快,許多電腦操作也幾乎感覺不到硬碟讀寫的延遲。特別是使用Google Chrome的時候,再也不會因為我開啟大量二十幾個網頁的時候而遲緩了。

    SSD不見得能夠改善舊電腦的效能

    因為Core i3電腦裝上SSD之後改善的幅度相當大,這就讓我食髓知味地為另一台老電腦裝了同樣一顆的SSD。

    DSC_0058

    這台老電腦大概是2006年購買的,Pentium 4 2.6G、2GB DDR400,這等級跟第一台裝的Core i3可說是天差地遠。它跑起來本來就不能期待說有多快,但是換上SSD之後,是否會比較好用呢?

    一開Chrome,CPU就紅字

    一開始我安裝Windows 7時跑起來還算是順暢,不過當我一開啟Google Chrome的時候,問題就來了。Chrome不僅僅只是存取硬碟,它還要連網路、大量計算等工作,讓CPU三不五時就跑到100%,電腦整個就變得很慢。

    我懷疑這是不是Windows 7的問題,畢竟老電腦安裝Windows 7總是令人有點不安。後來我又把它灌為原本的Windows XP,但是使用Google Chrome時依然碰到了同樣的問題。每次一開大量網頁,電腦就很頓。雖然不能說是無法工作的程度,但是每個動作都要等待的耐性還是要有的。

    問題不在於SSD,在於整個硬體

    這個節骨眼已經很明顯了,SSD就算改善了硬碟存取的問題,仍然無法提昇CPU運算跟記憶體速度上的瓶頸。當然,就算裝了SSD,遊戲也不見得會比較流暢。

    這次賭在SSD能改善舊電腦效能這點明顯是壓錯寶了,不過既來之則安之,就這樣用下去吧。

    調教SSD

    將SSD作為一般硬碟一樣地安裝,其實是無法發揮SSD原有的功能。這是因為作業系統預設還是給傳統硬碟使用,而預設不支援SSD的一些特性。

    T客邦有一連串的SSD新手使用新知,在安裝SSD的時候最重要的就是兩個工作:開啟AHCI與4K對齊。

    開啟AHCI

    詳細原文請看SSD 進階調校須知:開啟AHCI,改善讀取效率,以下我摘述重點:

    SATA2以上的硬碟可以藉由開啟電腦的AHCI(Advanced Host Controller Interface,進階主機控制器介面)來大幅提昇硬碟在讀取細碎檔案時的效能。這個動作最好是在安裝作業系統前就先開啟喔!

    4K對齊

    詳細原文請看SSD 新手使用須知:4K 對齊調教實戰,提昇 SSD 效能,以下我摘述重點:

    傳統硬碟儲存單位是512Byte,但是SSD則是4KB。當作業系統用傳統硬碟的儲存方式來存放SSD時,往往會因為空間不對齊而一次寫入兩個block,導致系統效能下降。

    Windows 7安裝光碟內建了對齊工具,不然也可以靠Paragon Alignment Tool來對齊──只是這是付費工具就是了。

    使用SSD的隱憂:不適合存放重要資料

    在使用SSD的時候,你一定要知道SSD有著壽命的限制。雖然傳統硬碟也是有磁區壞掉而無法讀取的問題,但是大部分的技術看來還是有挽救的可能。而SSD有的先天上的記憶體讀寫次數限制,次數一到就無法再使用,當然也無法救回這些資料。

    所以SSD的保固一般都不長,上述兩顆硬碟也都只有保固3年。在使用的時候請務必注意到。

    不過就我來看,這個隱憂不算是隱憂。這主要是因為我會將個人資料存放在另一顆硬碟,作為系統碟的SSD就算壞掉了,我也能夠很簡單地再還原一顆一樣的環境。

    系統碟裡面不要保存重要的個人資料,希望大家能夠養成這個觀念。


    結語:SSD還是很值得作為系統磁碟

    現在我回到實驗室配置工作環境的時候,也為電腦裝上了SSD。換完之後現在操作起來很流暢、很好用,但只是這是對新電腦而言。至於對舊電腦(像是上述P4等級的電腦)來說,你可能就沒必要花錢幫他換上SSD。

    換上SSD之後,又會面臨到多年前使用80GB硬碟常見的空間限制問題。許多人都被現在動輒1TB以上的傳統硬碟養大了胃口,回到這種一不小心就捉襟見肘的小容量SSD時,你需要更用心地管理硬碟空間。

    而SSD本身也有些小撇步可以使用,希望你在換上SSD之前可以先讀過T客邦那幾篇SSD新手須知再行下手。

    至於SSD的購買選擇上,因為SSD發展如日中天、一日千里,過沒多久我猜同樣價位又能買到更大、更快的SSD。有需要、有時間安裝的話,那就買吧。

    對新電腦來說,系統碟安裝SSD更是不二選擇。至於你還要第二顆的傳統硬碟,不妨購買拍賣上的二手品即可,不一定要買新品。我一顆80GB賣你139元,夠便宜了吧XD

    (more...)