:::

把電子報轉成RSS訂閱 / Forward E-mail Newsletter to RSS feed

布丁布丁吃布丁

把電子報轉成RSS訂閱 / Forward E-mail Newsletter to RSS feed

image

E-mail信箱是處理工作要務,而電子報(e-mail newsletter)等促銷訊息應該是閒餘時候來看。我利用Gmail把電子報轉到Blogger上,再用RSS訂閱該Bloggger,就可以做到電子報轉成RSS訂閱的功能了。

I usually use e-mail, like Gmail, to handle my jobs. But I feel annoyed when advertisement newsletter occupy my inbox. I try to convert newsletter e-mails to RSS feeds. So that I can read newsletters at rest.


在不同的工具上,做不同的事情 / Do the right thing by right tool

image

我平時主要工作的集中處是Gmail。平時我的收件匣只存放「尚未處理的工作」,而其他封存的郵件也大多都是「做完的工作」或「重要的通知」。此外,我就不想在Gmail中保存與工作無關的訊息,像是電子報。儘管現在Gmail提供了收件夾自動分類的功能,但對這堆電子報依然會留在Gmail當中,造成往後要搜尋相關工作信件時,反而淹沒在與工作無關的電子報裡,添增資料整理的困擾。

16 - 1

當然,電子報是增加新知的重要資訊來源。我會整理資訊新聞、圖書館新聞、最新文獻等RSS資訊來源,然後在Feedly上訂閱(以前是Google Reader,可惜關了)。平常我坐在電腦前的時間就是工作(開 啟Gmail),但是在外面移動、等車的時間,我就是開啟Android手機上的gReader來閱讀這些RSS。這也是偶爾我會在Plurk上轉貼一些新聞的情形。

跟用E-mail訂閱電子報相比,RSS訂閱電子報有幾個好處:

  • 可以將捲軸瀏覽過的文章自動標示為已讀,不必一一開啟或是手動標示已讀。
  • 依照電子報來源分類管理,或是將RSS分群管理,未來回頭搜尋相關文章時非常方便。
  • 讓Gmail只剩下工作信件,不再被那些無關的電子報干擾。
  • 我可以在自己閒暇之餘再來開啟「政大每日郵件」之類的電子報,不必用寶貴的工作時間忙著幫傳播學院填寫20分鐘的問卷。

最近實在是覺得Gmail被這些排山倒海而來的電子報入侵感到十分困擾,所以興起了我想把這些電子報轉換成RSS訂閱的念頭。

如何從E-mail轉換成RSS訂閱? / How to subscribe RSS feed from E-mail Newsletter

儘管資訊相關的網站大部分都會提供RSS服務,不過小型的機構網站電子報可都還是採用傳統的人工製作電子報來寄送,沒有採用電子報工具來統一管理,自然沒有RSS訂閱(feed)的服務。

目前網路上大部分的服務都是把RSS轉成E-mail,但是相反地,將E-mail電子報轉換成RSS的服務非常少。所以這個轉換工具可能靠不了別人,我想應該還是得自己來想想辦法才行。

摸索了一下,我目前想到的作法很簡單:將信件轉寄到Blogger來典藏,這樣就可以做到將E-mail電子報轉換成RSS訂閱了。

情境說明與事前準備 / Preparing

我現在想要將Gmail中部分郵件自動轉寄到以Blogger建立的電子報Blog,利用Blogger的「使用電子郵件張貼」(Mail2Blogger)功能來張貼電子郵件。最後就用Feedly訂閱電子報Blog,完成訂閱的動作。

因此在以下教學中,我會用到幾個工具:

  • Google Account:使用Gmail、Blogger跟Feedly都會用到的帳戶。如果還沒有Google帳戶,去免費註冊一個吧
  • Gmail:接收電子報的電子郵件地址,並且進行自動轉寄的功能。你也可以用你自己偏好的電子郵件系統,大部分也都有提供轉寄的功能。
  • Blogger:保存電子報,並提供RSS訂閱的免費服務。
  • Feedly:訂閱RSS的閱讀器。我會搭配gReader來讀取在Feedly訂閱的RSS,不過gReader在本教學中不是重點。

準備好的話,請按照以下步驟,一步一步把電子報轉換成RSS訂閱吧。

Step.1 建立電子報Blog / Create Newsletter Blog

image

進入Blogger的首頁,點入左上角的「新增網誌」按鈕。

image

輸入標題與網址就可以建立了。在此我輸入的是「布丁測試電子報」(以下簡稱電子報Blog)與「pulipuli-test-newsletter.blogspot.com」。

image

進入新建立電子報Blog的「設定」功能,進行一下的其他設定。

Step 1-1. 關閉隱私權 / Setup Private

image

在「設定」的「基本」中,將隱私權關閉,因為這只是我私人使用的電子報訂閱位置。如果你不介意公開訂閱的電子報,那也可以把它打開。

Step 1-2. 關閉留言 / Disable Comment

image

在「設定」的「文章和留言」中,把留言功能限定於「僅限此網誌的成員」,再按右上角的「儲存設定」。因為這只是我私人使用的電子報,不希望讓別人留言討論。

Step 1-3. 設定使用電子郵件張貼功能 / Enable Mail2Blogger

image

這一步重要!進入「行動裝置及電子郵件」中,設定「使用電子郵件張貼」的功能。文字框裡面你可以輸入指定的密語(secret words),組成一個只有你知道的電子郵件位置,再按下右上角的「儲存設定」。

舉例來說,我設定的是「test-newsletter」,於是未來任何人寄信到到「pulipuli.chen.test-newsletter@blogger.com」時,他都會直接發佈在Blog當中。當然,這個位置我只是測試用的而已,寫完這篇文章之後我就會刪除了,請不要真的去寄信。

Step 1-4. 關閉「關於我自己」的訊息 / Hide Author Information

image

Blogger預設會在Blog擺放自己的資訊。因為這只是電子報保存,不代表我個人的文章,所以建議把它移除掉。

image

你可以從「版面配置」中找到「關於我自己」,按下「編輯」後再選擇「移除」按鈕,就可以關閉這個訊息。

Step 2. Gmail新增轉寄位置 / Setup Forward in Gmail

image

為了把Gmail轉寄到電子報Blog,必須先在Gmail的設定中新增「轉寄地址」。在Gmaill「設定」的「轉寄和POP/IMAP」中進入「新增轉寄地址」。

image

在此輸入剛剛在電子報Blog新增的電子郵件張貼位置「pulipuli.chen.test-newsletter@blogger.com」,按下一步。

image

確認郵件轉寄,按下「繼續」。

image

回到電子報Blog的首頁上,你會發現有一篇文章被新增了,而且還是Gmail的轉寄確認信。點下信中提供的連接已確認郵件吧。

image

確認成功。

image

接著再回到電子報Blog的管理介面中,刪除剛剛那篇「Gmail轉寄確認」的文章吧。

Step 3. Gmail建立電子報篩選器,自動轉寄到Blog / Use Gmail Filter to Forward Newsletter to Blog

image

在Gmail中,利用篩選器來選擇電子報的寄信來源。

image

以「圖書館」的電子報為例,我可以用寄件者為「fish14@nccu.edu.tw」這位館員的電子信箱作為篩選條件,按「根據這個搜尋條件建立篩選器」來建立篩選器。

image

接著我再篩選器中設定「轉寄給:pulipuli.chen.test-newsletter@blogger.com」跟「刪除它」,以及勾選「略過收件匣(將其封存)」、「永不將其標示為重要」跟「分類為:最新快訊」。以此設定按下「建立篩選器」。

好,到目前為止,我們總算可以把Gmail的電子報轉移到電子報Blog中了。

Step 4. 用Feedly訂閱電子報Blog的RSS / Subscribe RSS feed in Feedly

image

電子報Blog的RSS訂閱位置,預設是在網頁下方的「訂閱: 文章 (Atom)」中。以電子報Blog為例,它的網址是「http://pulipuli-test-newsletter.blogspot.tw/」,那RSS訂閱位置就是「http://pulipuli-test-newsletter.blogspot.com/feeds/posts/default」。記住這個訂閱位置,Feedly就是靠這個位置來訂閱RSS的。

image

接著我們來到Feedly頁面,從「+Add Content」功能中,在搜尋框輸入剛剛的RSS訂閱位置。等一段時間後,Feedly會找到該RSS訂閱的來源(Discover feeds),再按下「+」新增。

這樣子就完成在Feedly中訂閱RSS的動作了。至於要怎麼在Feedly整理RSS訂閱或其他的功能,就請參考電腦玩物寫的「Feedly 完全上手教學,延續 Google Reader 閱讀器體驗」吧。


結語:電子報轉成RSS訂閱之後 / Beyond E-mail to RSS feed

image

儘管經過以上的步驟之後,我把跟工作無關的電子報都改放到Feedly中訂閱,而只在行動裝置上欲閱讀這些電子報。不過遇到重要的文章時,我還是會把它轉存到Evernote供未來參考利用Android的EverClip也可以擷取網頁原始格式),或是放到Pocket中閱讀全文(不過我後來發現幾乎不會回頭去看就是了)。

把電子報放在Blogger之後,我發現我還可以為某些每次都是由不同人寄信、沒有統一系統管理的電子報建置一個數位典藏的集中地。如果小型機構沒有電子報相關的系統,我建議你們也可以採用我上面的教學,以Blogger建立一個專用的電子報訂閱中心。

image

Blogger可以用「小工具」新增以Email訂閱的功能,所以一樣可以提供讀者Email訂閱與RSS訂閱這兩種方案。

image

此外,Blogger也內建了「統計資料」的功能,可以讓你知道電子報的訂閱資訊。如果不關閉隱私權的話,也能夠讓人用搜尋引擎找到電子報的內容,增加傳播影響力。

不過上述的步驟依然有點太過複雜,如果只是要簡單的Email to RSS,似乎可以用更簡單的方式搭配運作。舉例來說,如果可以再寄信時自動依照來源安排不同的標籤(label),那就可以用同一個電子報Blog容納來自多種不同來源的電子報,並且可以依照來源不同個別訂閱所需要的RSS。技術上不難,難的只是做成公開服務提供穩定運作而已。希望未來有心人士可以試著提供這樣的服務,也算是為幾近沒落的RSS作點貢獻吧

(more...)

Zotero中英兼具APA開發記事 / Zotero Chinese-English APA style development note

布丁布丁吃布丁

Zotero中英兼具APA開發記事 / Zotero Chinese-English APA style development note

image

我很久以前寫過一篇「用Zotero輸出中文、英文不同的APA參考文獻」,在「布丁布丁吃什麼?」部落格當中意外地還算是頗受歡迎。

最近在寫計劃書的時候,需要整理大量的引用文獻,於是又開啟了我想要繼續發展中英兼具APA格式的念頭。前天我用很破爛的英文去Zotero論壇詢問CSL語法,才發現原來<layout>標籤可以設定locale屬性,它會參考zotero item的language欄位來設定對應的layout。光是這個功能的發現,又讓我可以往下繼續開發。

文件與功能探索

這段期間最主要的突破是CSL-m Specification Supplement這份文件。它描述了許多CSL原本沒有提供,但是卻十分好用的功能,比起Zotero網站提供的舊版CSL教學來說,這份2013年11月最近才公布的文件有用很多。

為了搭配新的CSL,我也把Zotero升級成4.0.17,不過升級之後並沒有感到什麼差異。最主要還是要靠修改CSL吧。

在撰寫途中我還是遇到很多問題,主要是:

terms的設定:後來發現<locale xml-lang=”zh-tw”>跟<layout locale=”zh-tw”>中的zh-tw必須完全相同才有效。

判斷作者數量的方式:雖然有suppress-minsuppress-max可以用,但是卻不能達到我想要的指定顯示最後一個作者人數,或是在作者人數超越指定數量時顯示我指定的訊息。

機構全名要變成縮寫:CSL-m有新增institution。我才知道原本作者欄的雙欄跟單欄功能中,單欄就是instituion的功能。

image

在中文APA當中會要求第二次引用機構名稱時顯示縮寫。我本來期待會有另外一個欄位可以記錄機構的縮寫名稱,不過似乎是沒有的樣子。算了,就偷懶都用全名吧。

if條件判斷:還是一樣,條件判斷少得可憐。連最基本的從item的varible中比對字串的功能都沒有。

此外還有一些其他的進展,詳述如下:

Zotero Standalone 切換語系的方法

有一點必須要說明,我現在主要使用的Zotero Standalone修改語系的方式跟Firefox的add-on版本有所不同。

image

Zotero Standalone修改語系也是要到about:config功能中修改。不過Zotero Standalone預設鎖定作業系統使用的語系,必須要先將intl.locale.matchOS修改成false,才能在extensions.zotero.export.bibliographyLocale中修改語系。

我建議把extensions.zotero.export.bibliographyLocale修改成en-us,變成英文版本的Zotero。因為英文會考慮複數問題比較多,例如p. 跟pp. ,所以我認為先用英文預設值再來添增中文設定檔,會比較省功。

CSL編輯器

之前在開發CSL時,都是在Word中不斷重新整理引文資料,還要搭配Zotero的開啟與關閉,頗浪費時間。後來發現有CSL編輯器這個強大的工具,可以省下上述的複雜作業,專心在開發上。

image

CSL編輯器在Zotero偏好設定Preference中的Advaced > General 下面的Open CSL Editor。中文介面的使用者可以參考上圖的位置來開啟。

image

剛開啟CSL編輯器時,不會有任何資訊。首先請你在Zotero主視窗中選取任何一筆書目,然後在右上角選單中選擇我們要開發的CSL檔案,如下圖:

image

接著CSL編輯器就會根據你現在指定的書目與格式來顯示預覽結果,如下圖:

image

修改上面的CSL原始碼,下面就會馬上輸出預覽結果。不過他的原始碼只能用純文字進行編輯,比較不方便,所以我通常是在Sublime Text 2中編輯後再複製貼上到CSL編輯器。Sublime Text 2指定XML顯示格式之後的畫面如下:

image

如果要換一筆書目來顯示,或是修改書目資料的話,記得要按左上角的「Refresh」來重新讀取。

image

還有指定範圍(頁數、章節)、省略作者(Suppress author)、引用位置(首次 First或接續 Subsequent)等功能可以使用。甚至一口氣指定多筆書目資料(在Zotero主視窗中按著Shift就可以多選),都會在CSL編輯器中顯示,省下搭配Word運作的困擾,方便很多呢!

中文APA的參考

因為開發中文APA需要有個參考對象,於是我從「圖書館學與資訊科學」借來了APA格式的參考範例當做目標進行開發。

image

並且根據常用的引用情況,建置了對應的模擬書目資料。這樣我就可以標明目標的書目輸出結果,比較跟目前CSL輸出結果的差異。

目前比較了報告(report)、報紙(newspaper)、期刊論文(article-journal)、會議或研討會論文(paper-conference)、圖書(book)跟學位論文(thesis)這幾種。

不過現在想想,還是應該去拿張保隆老師跟謝寶煖老師撰寫的「學術論文寫作:APA規範」來做為參考目標。不過這本書是2006年出版,跟「圖書館學與資訊科學」撰寫的2011年公佈相比,會有時間差異的問題。

在仔細評估之前,中文APA還不算完成吧。

目前的中英APA CSL檔案下載

雖然還不算是完成,不過還是可以提供給大家下載試試看:

轉譯器(translator)更新

因為對應語系要從zh_TW修改成zh-tw的關係,我自己開發的轉譯器也有所更新。下載位置如下:

轉譯器的安裝說明請參考「Zotero安裝自製的轉譯器」。

使用注意事項

由於目前還不算完成,所以使用時必須手動調整幾種狀況:

  • 當一次引用多篇文獻時,開頭的「(」或「(」會重複,要記得手動移除。
  • 八人作者理想上應該是要如下顯示,可是實際上需要手動調整

作者 A、作者 B、作者 C、作者 D、作者 E、作者 F、…作者H等人(1991)。[圖書 04-2. 作者超過 8 人時]。出版地:出版者。

其他問題可以用留言回覆給我點建議,感謝。

(more...)

Pound反向代理伺服器延長等待時間的設定

布丁布丁吃布丁

Pound反向代理伺服器延長等待時間的設定

20091027_itmedia_ie

(圖片來源:ITmediaサイトが見れない・・・「The service is not available. Please try again later.」)

安裝Pound作為反向代理伺服器(reverse proxy)之後,服務就常常遇到以下錯誤訊息:

The service is not available. Please try again later.

這是因為網站運作時間超過了Pound預設的等待時間,所以Pound顯示了錯誤的訊息。以下教大家如何設定Pound的等待時間以避免這個問題。

After using Pound as reverse proxy, it’s very easy encounter this error:“The service is not available. Please try again later.” Following I will show you how to configure Pound’s TimeOut setting to prevent this problem.


Pound設定檔位置 / The path of Pound’s configuration file

要調整等待時間,必須調整Pound的設定檔。

一般Pound設定檔的位置是在 /etc/pound/pound.cfg,但是IPFire中Pound設定檔的位置是 /etc/pound.cfg

若要以vim開啟Pound設定檔的指令如下:

   1: # vim /etc/pound/pound.cfg

原本的pound.cfg的設定大概是:

   1: ## Minimal sample pound.cfg
   2: ##
   3: ## see pound(8) for details
   4:  
   5:  
   6: ######################################################################
   7: ## global options:
   8:  
   9: User            "www-data"
  10: Group           "www-data"
  11: #RootJail       "/chroot/pound"
  12:  
  13: ## Logging: (goes to syslog by default)
  14: ##      0       no logging
  15: ##      1       normal
  16: ##      2       extended
  17: ##      3       Apache-style (common log format)
  18: LogLevel        1
  19:  
  20: ## check backend every X secs:
  21: Alive           300
  22:  
  23: ## use hardware-accelleration card supported by openssl(1):
  24: #SSLEngine      "<hw>"
  25:  
  26: # poundctl control socket
  27: Control "/var/run/pound/poundctl.socket"
  28:  
  29: ## (... Others)

加入TimeOut的設定 / TimeOut configuration

Pound預設的等待時間只有15秒,我建議把它改成300秒,也就是超過5分鐘才顯示錯誤訊息。

那就要在設定檔中加入TimeOut設定:(注意O是大寫)

   1: ## Wait for server respond in X secs:
   2: TimeOut         300

於是設定檔開頭就會是:(注意紅字的部份

   1: ## Minimal sample pound.cfg
   2: ##
   3: ## see pound(8) for details
   4:  
   5:  
   6: ######################################################################
   7: ## global options:
   8:  
   9: User            "www-data"
  10: Group           "www-data"
  11: #RootJail       "/chroot/pound"
  12:  
  13: ## Logging: (goes to syslog by default)
  14: ##      0       no logging
  15: ##      1       normal
  16: ##      2       extended
  17: ##      3       Apache-style (common log format)
  18: LogLevel        1
  19:  
  20: ## check backend every X secs:
  21: Alive           300
  22:  
  23: ## Wait for server respond in X secs:
  24: TimeOut 300
  25:  
  26: ## use hardware-accelleration card supported by openssl(1):
  27: #SSLEngine      "<hw>"
  28:  
  29: # poundctl control socket
  30: Control "/var/run/pound/poundctl.socket"
  31:  
  32: ## (... Others)

重新啟動 Pound / Restart Pound Service

重新啟動的指令為:

   1: # /etc/init.d/pound restart

這樣的話,只要伺服器運作不要超過五分鐘,那就不會出現錯誤訊息了。


結論:利用Pound優雅地處理錯誤訊息 / Conclusion: Handle HTTP error with Pound

許多人用Pound都會覺得預設的錯誤訊息:「The service is not available. Please try again later.」很醜,也很讓使用者難以確定接下來到底該怎麼做好。

其實Pound可以設定在發生錯誤時顯示其他網頁,設定可以參考Pound secure reverse proxy "how to"這篇文章中的The pound config file(這個範例也有設定TimeOut),重點摘錄如下:

   1: Err414 "/var/www/htdocs/error/generic_error_page"
   2: Err500 "/var/www/htdocs/error/generic_error_page"
   3: Err501 "/var/www/htdocs/error/generic_error_page"
   4: Err503 "/var/www/htdocs/error/generic_error_page"

因此當發生414(網址過長)500(內部伺服器錯誤)501(不支援的HTML方法)503(伺服器停止服務)錯誤時,就會顯示「/var/www/htdocs/error/generic_error_page」這個網頁。

image

為此我做了一個實驗室雲端平台的錯誤網頁,下載網址是: http://dl.dropboxusercontent.com/u/717137/20130914-error_page/error_example.html

Pound的功能十分強大,下次我再介紹如何利用Pound製作緊急啟動方案(Emergency)。

(more...)

批次開啟網頁 / Batch of Webpages Opener

批次開啟網頁 / Batch of Webpages Opener


網頁顯示 / Webpage preview

練習寫Angular.JS

(more...)

修復Linux開機啟動程序initrd錯誤的問題 / Fixing a Broken initrd in Linux

布丁布丁吃布丁

修復Linux開機啟動程序initrd錯誤的問題 / Fixing a Broken initrd in Linux

2013-08-20_22-26-51

這篇是解決Linux開機時遇到啟動中找不到開機啟動程序,而出現「mount: could not find filesystem ‘/dev/root’」的解決方法。具體方式都是參考troy’s unix space的「Fixing a Broken initrd in Linux」。以下是記錄我自己的解決方式。

This is the solution when you encounter Linux boot failed with "mount: could not find filesystem ‘/dev/root’". The details are reference "Fixing a Broken initrd in Linux" in troy’s unix space. Following is my problem solved steps.


問題敘述 / Problem

  • 作業系統:CentOS 5 (不確定是5.幾版),編號是CentOS (2.6.18-164.15.1.e15)←注意這個編號,這在開機畫面中會看到,之後我們會用到這個編號喔。
  • 硬碟:使用PATA的IDE硬碟掛載,編號為hda
  • 操作環境:這是我在做P2V當中遇到的問題,修復過程都是在VirtualBox 4.2.6中完成。

我印象中之前是使用Clonezilla把實體機器上的CentOS複製到VirtualBox的VDI,以完成P2V (Physical-toVirtual)的作業。不過不知道是不是Clonezilla複製的過程有些問題,複製到VDI,確認硬碟位置與實體機器相同之後,我把它啟動時遇到了以下的錯誤訊息:

2013-08-20_22-26-51

(上面為止的都是正常啟動訊息)

Unable to access resume device (LABEL=SWAP-hda2)

mount: could not find filesystem ‘/dev/root’

setuproot: moving /dev failed: No such file or directory

setuproot: error mounting /proc: No such file or directory

setuproot: error mounting /sys: No such file or directory

switchroot: mount failed: No such file or directory

Kernel panic – not syncing: Attempted to kill init!

到此為止,系統就不能運作了。

我把錯誤訊息上網Google了一下,馬上就找到「Fixing a Broken initrd in Linux」這篇的解法。以下就是操作的過程。

Step.1 用CentOS光碟進入Linux救援模式 / Ener Linux Rescue Mode By CentOS Installation CD

我之前也有用救援模式(rescue mode)來修復無法啟動的CentOS,不過那時候是用fsck修復檔案系統(filesystem),這次是要修復開機啟動程序(initrd)。

2013-08-20_22-45-39

我這次一樣使用CentOS 5.2安裝光碟,從光碟開機之後看到以上畫面,接著輸入以下指令:

linux rescue

接著設定語系、鍵盤與網路。本次修復不需要用到網路,所以網路我就不開啟了。

2012-04-23_235030 continue

最重要的是選擇如何掛載原本的系統,畫面如上圖(我借用以前我自己修復過程的圖片)。請選擇「Continue」,救援模式會把原本的系統掛載到「/mnt/sysimage/」中。

2013-08-20_22-46-50

接著會進入指令列,輸入以下指令

sh-3.2# chroot /mnt/sysimage/

這樣就進入原本的系統中了。接下來我們要開始修復囉。

Step.2 備份開機映像檔 / Backup Boot Image File

會發生這個問題,是因為CentOS的開機映像檔毀損了。所以這篇文章的目的在於修復CentOS的開機映像檔。

開機映像檔的位置在 /boot 中。依照Linux版本不同,裡面會有不同編號的檔案。我上面有提到要特別注意CentOS的編號「2.6.18-164.15.1.e15」,以這個例子來說,我的檔案就會是「/boot/initrd-2.6.18-164.15.1.e15.img」。

我們在此先備份這個壞掉的開機映像檔,以免待會修壞了無法還原吧。

mv /boot/initrd-2.6.18-164.15.1.e15.img /boot/broken-initrd-2.6.18-164.15.1.e15.img

 

Step.3 建立開機映像檔 / Using “mkinitrd” Create Boot Image File

接著我們要用mkinitrd指令來建立新的映像檔。指令需要輸入兩個參數,一個是建立開機映像檔的位置,另一個是版本的編號。以我需要的編號「2.6.18-164.15.1.e15」來說,指令如下:

sh-3.2# /sbin/mkinitrd /boot/initrd-2.6.18-164.15.1.e15.img 2.6.18-164.15.1.e15

完成建立之後,你可以用指令「ls /boot/initrd*」來確認開機映像檔是否有正確建立。

沒有問題的話,輸入指令「exit」兩次來重新啟動系統。

重新啟動的時候記得要把CentOS光碟拿起來喔。

通過開機程序 / Pass Statup Process

2013-08-20_22-53-48

之後系統就能夠順利開機了。不過來到系統裡面,我發現原本可以運作的Tomcat出了點問題。後來我重新建立一個Apache Tomcat就恢復正常,也設定了自動啟動Tomcat跟PostgreSQL。跟這篇主題不太相關,所以細節我就不多提了。

以上就是整個修復的過程。

(more...)

「布丁布丁吃什麼?」也有Android APP囉! / The Android APP Version of “Pulipuli Blog”

「布丁布丁吃什麼?」也有Android APP囉! / The Android APP Version of “Pulipuli Blog”

image

布丁的blog「布丁布丁吃什麼?」已經登上了Google Play,在此我也聊一下最近自己對於這個blog的一些感想。

The Android APP of my blog "Pulipuli Blog" had been upload to Google Play. Following is my thoughts about this APP and my blog.


Google Play下載「布丁布丁吃什麼?」 / Download APP From Google Play

31 - 2

這個APP就是前幾天我用AppsGeyser製作的結果。製作這個APP其實也沒花很多功夫,也就是把Blogger的行動版網址輸入到AppsGeyser,就能夠下載一個這樣的APP。不過比起用AppsGeyser製作APP這種懶人的作法,設計圖示反而更令我困擾啊。之後也得花點時間來研究如何設計好的圖示囉

總而言之,現在你用Android手機也能夠閱讀「布丁布丁吃什麼?」囉。這還真是自我行銷的一種手段啊。

不過比起推廣「布丁布丁吃什麼?」這件事情,我更把它當作是一個玩具在看待。也許改天有時間了,我也許會拿起PhoneGap與jQueryMobile自己手工製作一個APP,把「布丁布丁吃什麼?」APP加上自己喜歡的功能喔。到時候我也會寫blog跟大家分享這段經驗吧。

對於APP的反思 / My Thoughts of APP

當兵的時候,有一位學長在跟我講他堅持買iPhone的理由:

因為iPhone上有個時尚網站的APP,那是我時常關注的網站,所以我想買iPhone。

我對此感到困惑已久,如果只是想要獲取某個網站的資訊,你為什麼不要用RSS呢?先不論很多人並不知道RSS這個工具的這點,許多資訊提供者(包括圖書館與建置數位典藏的那些人)都抱著「你要資料,請來我這裡」的高傲想法,逼迫使用者必須要用他們設計的介面、用他們建立的瀏覽方式,讀者才能獲得他們的資料。

這種APP也是如此。以「布丁布丁吃什麼?」來說,這個APP也沒有提供什麼功能,只是從最新文章開始往下閱讀、瀏覽而已,連搜尋功能都沒有提供。但如果是某些情況下,大家要取得「布丁布丁吃什麼?」的資料,那就得遵循這個APP的遊戲規則才行。

老實說,我不是很欣賞這種作法。更明白地說,我其實不建議大家去下載目前的「布丁布丁吃什麼?」APP。你可以直接從網頁瀏覽器來開啟「http://pulipuli.blogspot.tw」,也可以用RSS來追蹤「布丁布丁吃什麼?」的最新動態。不過我更推薦的是,用Google搜尋吧。

用RSS來把握「布丁布丁吃什麼?」的最新動態 / Using RSS To Follow Pulipuli Blog

要追蹤「布丁布丁吃什麼?」的最新資訊,我建議用你可以用RSS:

要訂閱這個RSS,你需要選擇一個RSS的工具。在Google閱讀器關閉的現在,你也有其他方案可以選擇:

要在Android上閱讀RSS,除了用Feedly的Android版本之外,我也很推薦好用的gReader:

用社群網站來追蹤「布丁布丁吃什麼?」的最新動態 / Follow “Pulipuli Blog” In Social Website

雖然我很喜歡RSS,不過這年頭似乎趨勢是封殺公開的RSS標準,轉向封閉型的社交網站。為了迎合這股風潮,「布丁布丁吃什麼?」在兩大社交網站上也有自己的粉絲團:

image

赫然發現我忘記用IFTTT把Blogger的訊息轉到Facebook粉絲團中,所以粉絲團資料是空的orz

image

我記得我好像設定了HootSuite,所以Google+專頁上充滿了我的Blog文章以及Plurk發言

用Google搜尋來找「布丁布丁吃什麼?」的文章吧 / Don’t Browse, Search It!

image

嗯,常常看我文章的讀者應該知道,比起追蹤「布丁布丁吃什麼?」的最新動態,我還比較推薦讀者直接用Google等搜尋引擎搜尋你要的資料就好。而且請不要用Blogger提供的搜尋功能,那功能找的資料比Google搜尋還要差得許多。

我寫blog的方式並不是有堅持特定主題,或是以某種組織架構連貫而成。除了少數幾篇我會把文章拆成幾個部分來撰寫之外,大多數文章我都是希望能夠獨立呈現。這篇文章自己就應該是一個完整的論述,而其他相關資訊則以超連結呈現。

關心作者的近況 / Follow Pudding’s Status

如果想要了解國內圖書資訊學的近況,那時常關心中華民國圖書館學會的電子報,那我覺得很合理。不過因為「布丁布丁吃什麼?」是一個個人興趣而撰寫的網誌,除了我自己之外,我想不到有什麼理由需要會讓人需要追蹤最新動態就是。

如果要關心我個人的話,那我會比較建議你看我的Plurk比較直接喔。

image


結語:「能寫blog真是太好了呢」 / Conclusion: “It’s really great that you write blog.”

這顆布丁是在無聊的世界中找尋樂趣的一種不能吃的食物。喜歡動漫畫、喜歡遊戲、喜歡程式、喜歡跟世間脫節的生活步調中,撰寫blog──布丁布丁吃什麼? http://pulipuli.blogspot.tw/

最近幾天,我把這學期應該要分享的資料拿出來分享。這些文章大多都已經是過去的事件,但是他們有分享的價值,所以我會希望能夠在「布丁布丁吃什麼?」這個blog中,分享這些微小、不成熟,但是可能會在哪裡對某些人有所幫助的知識。

因為撰寫「布丁布丁吃什麼?」的緣故,最近也是遇到許多預期之外的好事。更讓我深信,在這不起眼的blog中分享我的所學所得,這是有所價值的行為。

「布丁布丁吃什麼?」從2005年12月25日(居然是聖誕節)

也許哪一天我會無法繼續撰寫文章,也許哪一天我也會離開這個世界。不過至少,我在這個blog中留下了活著的痕跡。「布丁布丁吃什麼?」就是我想要改善這個世界的,小小貢獻。

(more...)

有意義的學習:概念圖介紹 / Meaning Learning: Introduce Concep Map

布丁布丁吃布丁

有意義的學習:概念圖介紹 / Meaning Learning: Introduce Concep Map

image

這是我在個別研究中的報告。為了從建構取向評估閱讀學習的成效,我打算使用概念圖作為評估的工具。這份投影片介紹概念圖的教學與評量的方法,並提出概念圖的延伸應用。

This is my report in "Individual Study". To evaluate the effect of reading from constructivist approach, I intend to use concept map as an evaluation tool. In this slide, I introduced how to use concept map to teach and evaluate, and I propose other application of concept map.


參考書目 / Bibliography

余民寧(1997)。有意義的學習 : 概念構圖之研究。臺北市:商鼎文化。

概念圖介紹 / Introduce Concept Map

        摘要 / Abstract

        影響學習的一個最重要因素即是學習者已經知道的事(what the learner already knows),只要確信「」是什麼,並且以此作為教學的依據即可。

        心理學家Asubel (1968)

        在概念圖的觀點裡面,學習的目的並不是讓學習者達成一個指定的目標,而是讓他們在自身已經有的知識架構上,添增更多學習的成果,讓自己的知識架構更趨完善。余老師將概念圖(即是書中所指的概念圖,或說是心智圖)稱之為有意義的學習。

        這份投影片介紹何謂概念圖,要如何進行教學,以及最後利用概念圖作為評量的方式。其中我覺得評量是最有趣的地方,很多人會利用概念圖來進行教學,但是也很多人都不知道概念圖也可以作為評量的工具。概念圖能夠將非結構化的學習成果以結構化的方式具體呈現,並基於教育理論基礎而規劃出一套計分原則,就能夠將學習成果以量化的方式進行統計。

        最後我基於在概念圖中學到的東西提出幾個發想,也許未來有朝一日可以繼續深入研究。

        心智圖的繪製教學 / Teaching Concept Map

        後來我在進行實驗室製作了一張概念圖的教學投影片。在此我把概念圖稱作現在比較流行的名詞「心智圖」。這份心智圖是以水的三態變化作為主題,不過這樣的教學我自己覺得仍有所不足就是了。


        結論:難以駕馭的概念圖 / Conclusion: Restive Concept Map

        在我看到實驗室的學妹把概念圖作為研究的評估工具時,我就對概念圖充滿興趣。我自己使用XMind畫心智圖來規劃很多事情,包括我的研究論文。因此我知道概念圖的確是強而有力的工具。它簡單上手,又能夠把思緒結構化地呈現,以檢視我們自己的思考是否完整。在教學研究上,概念圖又可以作為評量工具,讓我們用不同的角度來檢驗學習成效。因此,我對於概念圖抱持著相當的期待。

        image

        不過實際開始應用的時候,我發現這是一個難以駕馭的工具。首先,要畫出一張概念圖就不是一個簡單的事情。有結構的學習大家都會,照著1 2 3一步一步地做就好。但是要從無結構的資料中整理出有結構的概念圖,卻不是用一句兩句「畫個節點、連條線」就能夠達到的程度。

        在把概念圖作為評量工具之前,光是教導學生如何使用概念圖,就是一個需要去思考的議題了。簡單來說,概念圖的教學沒有書中寫得那麼簡單啦,你自己畫畫看就知道了。

        儘管如此,我仍認為這是一個值得期待的工具。因為,平常就用概念圖來規劃事物的我自己,就是一個證明概念圖成效的例子了。

        (more...)

        設計研究法介紹 / Introduce Design-based Research

        設計研究法介紹 / Introduce Design-based Research

        image

        這是我在個別研究中的課堂報告。繼上次我提出了建構取向的閱讀教學鷹架之後,這次想要試著以設計研究法(design-based research)的方式來規劃實驗,並且提出這次實驗在我整體研究中的定位。

        This is my report in "Individual Study". Continued the reading scaffolding of constructive teaching, I tried to use design-based research approach to plan a experiment, and presented the progress of my overall research.


        參考文獻 / Bibliography

        翁穎哲、譚克平(2008)。設計研究法簡介及其在教育研究的應用範例。科學教育,(307),15–30。

        設計研究法與研究規劃 / Design-based Research And My Research Planning

        這份投影片先介紹設計研究法跟我們實驗室常見的準實驗研究法的不同。我覺得設計研究法是站在比較大的角度來看待研究的整體歷程,而準實驗研究法則是小部分、但是較為確實的研究方法,兩者的關係是上下位的互補,而非衝突。

        image

        投影片後半部則是介紹我想要如何規畫這份研究,以及後面仍需要進行的工作。


        結論:被誇大的設計研究法 / Conclusion: Exaggerated Design-based Research

        自從CSCL & CSPL 2013聽完翁老師報告設計研究法之後,我的指導老師就開始熱衷於探究設計研究法。基於這股風潮,我也來看一下何謂設計研究法。看了幾篇以設計研究法之名進行的研究,總覺得設計研究法有點被誇大其詞。有些時候只是設計不良、要觀察什麼都不知道的單組實驗研究法,也被說是一種設計研究法。我自己是覺得有點微妙,可能是我對於設計研究法的認識仍不夠透徹。

        設計研究法基於理論建立產品,進行實驗蒐集資料以改善產品的這種研究週期,這是適用於長期、大型、多人的研究方式。也許對希望能夠在兩年之內就能畢業的研究生來說,沒有必要把自己的論文擴大到短時間難以掌控的份量。不過對我來說,用宏觀的角度來看待每一次的研究,的確是有其必要性的。

        (more...)

        閱讀最佳化路徑知識萃取:使用螞蟻演算法 / Extracting the Best Path Of Reading: Using Ant Algorithm

        布丁布丁吃布丁

        閱讀最佳化路徑知識萃取:使用螞蟻演算法 / Extracting the Best Path Of Reading: Using Ant Algorithm

        image

        這是個別研究課堂中的一份報告。我想要用螞蟻演算法來提出推薦閱讀順序的機制,所以我先介紹螞蟻演算法的作法,然後提出應用到閱讀標註學習上的作法。

        This is my report in "Individual Study". I want to develop a method based on ant algorithm to extract the recommend path of reading. In this report, I introduced ant algorithm and design a application of reading.


        參考書目 / Bibliography

        林振展(2008)。應用自然界螞蟻的經驗分享機制萃取個人化推薦知識之研究(未出版之碩士論文)。銘傳大學:銘傳大學資訊工程學系碩士班。

        投影片:閱讀最佳化路徑知識萃取 / Slide: Extracting the Best Path Of Reading

        摘要 / Abstract

        image

        這份投影片先介紹最經典的最佳化路徑問題:旅行銷售員問題(Traveling Salesperson Problem)。再將問題轉換為數位學習教材選擇的路徑,並介紹林振展同學是如何應用螞蟻演算法來求出推薦給學生的最佳教材閱讀順序。然後我再把問題對應到閱讀標註的學習情境中,試著提出以螞蟻演算法推薦文章閱讀順序的作法。這個作法在能夠分析大量閱讀資料的時候會變得相當有價值。

        image

        不過接著我也對此提出了反思:「找出最好的閱讀順序,是教師的責任嗎?」我認為如何安排閱讀文本的責任,應該是落在作者身上。而我們教學者提出閱讀順序的用意,其實是在刺激學習者,讓他們自行能夠找尋屬於自己的閱讀方式。

        簡單來說,我覺得閱讀沒有最佳的固定順序,但是卻有如何促使讀者自行找出最佳順序的方法。這就是從「唯一最佳解」的行為主義演化到「讀者自己的最佳解」的認知主義,也是我接下來要研讀的方向了。


        結論:學無止盡的理論 / Conclusion: Countless Theories

        做研究的時候,我們不只是觀察表面的行為,更重要的是要能夠看到人們背後的認知。要認識這些抽象的認知概念,那就必須要有理論為基礎。心理學用了許多方式解釋人類的認知,而教育理論則是進一步把人類的認知聚焦於學習的意圖。我試著想幫圖書館的館藏資源找到人們使用它的價值,那就是學習。

        然而一旦埋頭下去,就會覺得這是深不可測的領域。認知相關理論已經發展許多年,實證的實驗也從許多方向不斷地深入探討。比起「我這個題目是否已經被做過了」的擔心,我更不願意沒能夠把握認知理論的全貌就貿然進行研究的匆促態度。

        不過後來發生一些事情,讓我對這個想法有所改觀。那就等下次有機會再聊吧。

        (more...)