2014年1月28日 星期二

Google APP Engine開發簡介

Google APP Engine簡介
Google App Engine(GAE) 讓使用者可以在Google的基礎架構之上執行網路應用程式。在這個基礎建設之上,可以很容易的建立與維護,以及當流量與儲存需求增加時可以容易擴增規模。在Google APP Engine 的環境中,使用者不需要維護伺服器,只需要將網路應用程式上傳,然後其他的使用者就可以使用該應用程式所提供的服務。對於該應用程式,你可以使用自己的網址 (例如http://www.example.com/) ,或是使用 appspot.com領域之下的免費網址。該網路應用程式可以公開讓所有的人使用,或是限制只有組織內的成員才可以存取。Google App Engine 支援以數種常用之程式語言所開發的app,例如Java, Python, PHP,或GO等。
在GAE上佈署APP並不需要費用,也沒有經常性的費用,而是依據APP所使用的頻寬與記憶體,以GB為單位計費。APP的發佈者可以設定資源的最大使用量,使得APP所消費的費用控制在預算之內。App Engine上的APP沒有初始費用,所有的應用程式可以免費使用1GB的儲存空間,足夠的CPU時間,以及可以支援一個月5百萬次的網頁瀏覽數的足夠頻寬。使用者一旦開通計費機制,則免費的額度也會增加,而且只需支付超過免費額度的部分。
Google有一套完整的幾費機制,有興趣者可以參考Google APP Engine網站的說明。

Google APP Engine使用說明

1. 進入GAE首頁
首先進入Google APP Engine首頁,https://appengine.google.com/‎。若是你尚未有Google APP Engine的帳戶,則第一次使用需先申請帳號

圖1 Google APP Engine首頁
2. 申請APP帳號的程序
參考圖2的範例,勾選 I accept these terms,然後點選Submit就可以完成註冊。

圖2 申請帳號時的條款
3. APP資訊看板
Google提供10個免費的APP應用程式,建立APP專案會列在資訊看板中,在資訊看板中會顯示每一個APP專案的名稱,標題,儲存架構,以及狀態等。

4. 建立新的APP
點選Create Application可以進入建立新APP的畫面。在新建APP時需要輸入下列資料:
APP識別子(Application Identifier)
APP識別子基本是需要是一個唯一的名稱,其中不可以使用Google帳戶名稱,或是某些Google的商標等。

APP標題(Application Title)
當使用者存取這個APP時會顯示的名稱。

認證選項(Authentication Options):
對於使用佈署在Google APP Engine平台上的APP,Google提供三種認證使用者的方法:
1. 所有具有Google帳戶的使用者都可以存取(內定)
2. 限定某一Google App領域的使用者才可以存取
3. 開放給所有具有OpenIG的使用者存取

Google APP Engine提供AppCfg工具,讓使用者可以上傳與規劃APP的程式碼與內容,管理資料索引與下載記錄檔。AppCfg具有下列版本的SDK:
Python Runtime - appcfg.py.
Java Runtime - appcfg.
至於 PHP的 runtime則尚處於實驗階段

就架設網站來說,PHP大概是最多人使用的,所以就由PHP下手。
PHP SDK的下載點
https://developers.google.com/appengine/docs/php/gettingstarted/installing
這個 SDK 包含可以讓你在自己的電腦上,測試所開發之PHP程式的網站伺服器,以及完成開發後要上傳所開發的應用程式到APP Engine時所需要的軟體,下列為需要安裝的軟體套件:
Python 2.7,下載點: http://www.python.org/download/
App Engine PHP SDK,下載點: http://googleappengine.googlecode.com/files/GoogleAppEngine-1.8.9.msi

因為開發伺服器是一個Python伺服器,所以使用App Engine PHP SDK需要安裝Python 2.7。此 PHP SDK PHP 5.4 runtime包含所需的擴增資料的二進位檔, 因此若只是基於開發之目的,則不需要另外PHP套件,只需要Python就夠了。
將此SDK下載之後,依據軟體安裝說明,安裝此SDK。
大多數的PHP使用的資料庫為MySQL,App Engine SDK並沒有包含這個資料庫,則需要自行下載使用。MySQL有數個不同的版本,下載Community Server"版本就足以使用。http://dev.mysql.com/downloads/mysql/
在安裝SDK之前要先安裝Python,完成後即可以繼續'安裝SDK。此PHP SDK包含在將所開發的APP Engine應用程式上架到GAE之前,在本地端進行開發與測試時所需要的發展環境。

第一個範例

所有程式開發的第一個範例都是Hello, World,因此也不免俗的以這個範例開場。首先創建一個用來放置所有與此專案相關的目錄,並將之稱為helloworld,在這個目錄內先建立一個新的程式,並且命名為helloworld.php,在這個檔案內輸入下列內容:

<?php
  echo 'Hello, World!';

每一個AGE的應用程式都需要一個稱為app.yaml的規劃檔,在這個規劃檔中,除了其他事項外,也說明了處理腳本(handler scripts)應該用於哪些個URL。這個app.yaml檔案一樣位於helloworld目錄內,並輸入下列內容:

application: helloworld
version: 1
runtime: php
api_version: 1

handlers:
- url: /.*
  script: helloworld.php

在這個範例的規劃檔中,說明了下列資訊:
這個應用程式的識別子(identifier)為helloworld,在AGE的每一個新的應用程式都有一個唯一的識別子,在下一個步驟中,當註冊此APP時需要指定識別子。不過在開發階段倒是無所謂,就先使用這個helloworld即可
第二行的version: 1,說明目前的版本。當在上傳到AGE時,你有變動版本名稱,則AGE會保留舊有的版本,以便有需要時可以使用AGE的管理介面回復到先前的版本
runtime: php表示這個應用程式使用PHP執行環境
api_version: 1表示目前的API版本為1
handlers表示符合下列正規表示法(handlers:)的url請求,都是由helloworld.php腳本程式處理

實際執行:
測試環境
OS : Windows 8.1
Python 2.7.6
Google AppEngine SDK release : 1.8.9
日期:1/26/2014
Python內定安裝在 C:\Python27\
Google AppEngine SDK內定安裝在C:\Program Files (x86)\Google\google_appengine
Windows 8.1是x86 64位元版本,不過windows版的SDK是32位元版,所以在下載時要留意版本

A. 開啟 Google App EngineLauncher


B. 新增一個專案 File->Create New Application

參數:
Application name : APP的名稱,可以自由設定,但是最好與GAE上的app識別子一致,在此為htlintc03
 Parent Diectory :此專案的目錄,本例子為桌面
Runtime :執行環境選擇PHP
Port :在本地端測試時的通訊埠號,可以自由指定,直接使用系統給定的值 8081
Admin Port:在本地端測試時的管理通訊埠號,可以自由指定,直接使用系統給定的值8001

C. 建立一個新的應用程式專案,並且在桌面上新增一個資料夾,內部有三個檔案,分別為php檔,yaml設定檔,以及icon檔


此main.php檔為一個簡單的程式會在螢幕上印出hello world字樣,程式內容如下:

<?php
    echo 'Hello world!';

而app.yaml為設定檔,內容如下:

application: htlintc03
version: 1
runtime: php
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.php

測試APP:
點選該APP (反白)
點選run

觀看結果
若是Stop選項正常顯示,而Run選項無效,且Browse選項顯示正常,則點選 Browse

在內定的瀏覽器(此範例為Google Chrome)會帶出結果,http://localhost:8081/,其中8081為剛剛系統內定的通訊埠號

至此大功告成,一個可以發布到GAE的APP開發完成。

接下來在GAE中新增一個APP。

點選Create Application


Application Identifier:APP識別子,必須是網路上唯一的,本例子為htlintc03
Application Title:應用程式的表頭標題
Authentication Options (Advanced): 認證的選項,可以是
Open to all Google Accounts users (default):Google帳戶使用者(內定)
Restricted to the following Google Apps domain:某一限定領域的用戶
(Experimental) Open to all users with an OpenID Provider:有OpenID的用戶

完成後回到管理畫面,可以看到新增一個htlintc03 APP,狀態(Status)為None Deployed(尚未佈署)

上傳在Google App EngineLauncher建立的新專案htlintc03到GAE
點選Deploy
輸入Google 帳號與密碼

經過一番的程序

回到GAE的管理畫面,Status變成Running,佈署成功

在瀏覽器中輸入此APP的網址 http://htlintc03.appspot.com,可以看到結果,大功告成

問題排除
在開發過程中,於Google App EngineLauncher中Run APP時一直出現UnicodeDecodeError的錯誤,導致無法進行測試。這個問題主要是出自unicode、utf-8和ASCII之間的轉碼問題,但是不知道如何下手修改。在網路上找到一篇文章提到這個問題的解決方法,將Python目錄的Lib目錄內的mimetypes.py檔案中做修正
將所有的 except UnicodeEncodeError:
換成 except UnicodeError:
在Python 2.7.6中,有兩個地方需要修改,在經過修改後果然成功。

2014年1月27日 星期一

聚奎居

分段徒步環島第一天由豐原步行到彰化,途中經過烏日區便行巷時,發現一棟年代久遠的占地寬廣的巴洛克建築,後來一查才知道佔地有四百多坪,而且正確的地址是台中市烏日區學田路405巷36號。
全景圖
雖然由豐原走到這裡,腳已經開始不聽使喚,還是被這棟建築物吸引。這棟建築物正面看來還好,但是外面貼有危險的警示,告知遊客不要入內。
 由正面可以看出當年的宏偉景象。
但是因為年久失修,屋旁的榕樹竟然穿入室內,破壞土造的結構,壓垮幾乎整個房間。


 
由後面可以清楚看到榕樹入侵屋內的情形。

由便行巷看到的實際上是此建築物的背面。
由另一側的後面可以看出,連天花板幾乎都快要坍塌,看來門口的警示不是唬人的。
離開時發現旁邊有一群當地居民在閒聊,趨前詢問房子的狀況。原來興建這棟建築物的主人翁幾乎是與霧峰林家同期,也是當地的仕紳,擁有的土地曾經高達數百甲。後來政府來台後實施375減租,因此這家主人的很多土地也被徵收,導致主人鬱鬱而終,也導致這棟建築物的現況。依據當地居民告知,市政府曾經來勘查是否可以修復,不過好像因為因為傾圮的太嚴重,因此似乎沒有要修復,而且好像已經轉手賣給他人了。依據我實際的觀察,似乎可以了解市政府的決定,因為室內坍塌的太嚴重了。

2014年1月22日 星期三

虎頭柑


最近在爬山時發現一棵長得很茂盛,專門用於拜拜的大橘子,但是一直不知道這種橘子的名稱,只知道好像是用於過年期間置於神明桌上的橘子,而且好像不能吃。Google了一下,原來這種橘子叫做虎頭柑。它可以持續放上1個月不會變壞,因此擺在供桌上敬神祭祖討個吉利好運。由於虎頭柑皮厚且果肉較酸,因此較少直接食用,早期客家人會取出虎頭柑果肉,並將之和茶葉混合作成酸柑茶。


這些照片是過年前一個星期拍的,大概這兩天就會被採收了。

參考資料
黃進恭,客家過年習俗 虎頭柑保平安,中央社,102年2月12日,http://history.n.yam.com/cna/life/20130212/20130212215582.html

2014年1月20日 星期一

建構時光機器

Jack Snell/Flickr
擔任瑞士洛桑聯邦理工學院(Ecole Polytechnique Federale de Lausanne (EPFL))數位人文實驗室(Digital Humanities Lab)主任的 Frederic Kaplan博士,帶領實驗室團隊應用於人文相關的研究。他在TED演講中分享最近從事一個稱為威尼斯時光機(Venice Time Machine)研究的內容, 這個計畫試圖典藏紀錄過去1000年來,與威尼斯歷史相關的約80公里長的文獻。這個計畫的目標是要建立一個可以將上述典藏內容,地圖化並且可以搜尋的資訊系統,例如可以在Google Map上栩栩如生地呈現過去1000年的威尼斯歷史。

 
這個由由EPFL與威尼斯大學共同合作的計畫,是要探討可否建立已經逝去的Google Map,可否重建過去的社群網絡,換言之是否可以建立時光機。要將過去1000年來的文獻資料數位化,需要大量的文件與熟知這些文件的傑出領域專家。此計畫預計以10年的時間將約有80公里長度的文獻典籍,全數進行數位化並且編列索引,以及萃取當中的意義。他們規劃每天數位化450冊典籍,也預估可以由這些典籍中萃取100億個事件,這些事件可以告訴我們在1321年時誰住在Palazzo,或是在1434年時在Rialto的一條海魚需要多少錢等。他們也預計依據所擁有的航海途徑資訊,建構一個地中海的模擬器。然後嘗試在Google Map或是類似的地圖系統上,呈現某一個區域以時間軸為依據的動態資訊。
主講者以稱為資訊蘑菇的圖形來表示創世紀以來數位資料的數量,由表示圖形看出來確實是有蘑菇的樣子,但是若是將文史典籍數位化,以及透過模擬方式數位化,則這個蘑菇狀換變成類似三角形,換言之可以豐富歷史所呈現的內容。這是一件浩大的工程,重要的部分不是數位化,而是如何將這些數位化的資料變成資訊,可以進行索引、搜尋、與編輯等。特別是在文獻的年代解讀更是大工程。這個是一個跨領域且需要眾多專長人員投入的計畫,主講者也點出這個計畫的最大挑戰,是如何處理整個計畫執行過程中,每一個步驟執行的品質、量化、與表達時,所存在的不確定性與不一致性。因為 Frederic Kaplan博士是人工智慧領域專家,所以在演講中也提出一些應用人工智慧技術來處理上述問題的可能途徑。
資訊時代,俯首可得的數位裝置都是可以用來建構未來時光機器的裝置,每一個時刻瞬間變成歷史,站在同一個地點,時刻都在改變,前一瞬間的未來變成這一瞬間的現在,然後下一瞬間變成過去。用影片是最能呈現時光機器的方式,但是就浩瀚的時間長河中,一般人比較關心的是事件。例如一個人站在一個定點30分鐘文風不動,則雖然這30分鐘可以化成無數個瞬間,但是就紀錄來說,它就是一個事件一個人在這個地方站立了30分鐘。若是這其中有一隻蚊子飛進來,停留了5分鐘,然後又飛出去。那就多了幾個關於這個蚊子的事件。因此需要一個可以捕捉事件然後取得影像或是相關資料的裝置,Microsoft的SenseCam其實就是嘗試要做這個事情。
人生紀錄多年來一直都是一個研究議題多,自己投入這個議題的研究也有幾年,這期間也有一些實際的小成果出現,不過今年(2014)開春在CES展上大放異彩的穿戴式裝置,將會為這個領域的研究注入非常多的幫助。
主講者最後提到,這是一個對於人文的典範轉移(paradigm shit),而且需要培育"數位人文"新世代,以迎接這個典範轉移。

2014年1月16日 星期四

2013年歲末登山界不平靜

SNappa2006/Flickr
2013年歲末登山界不平靜:
1. 2013年12月4日退休教師歐仁欽(57歲)與顏桂香(56歲)夫婦,攀登雪山聖稜線失蹤
2. 2013年12月22日男子黃啟涵(32歲),輕裝攻頂大劍山後,跟同行的隊友表示想在山頂多待留2分鐘,結果遇上濃霧就此迷路失聯。
3. 2013年12月31日31日登山客陳佑竹、張芸茜攀登雪山攻頂時,因濃霧而迷路。所幸三天之後,2014年1月3日自行走到三六九山莊脫險。

值得警惕之事:
1. 高山氣候瞬息萬變,濃霧是最大殺手,最好不要脫隊,攜帶可以告知自己方位的東西,哨子,火
2. 陳佑竹帶的衛星定位機(GPS)、無線電都沒電,因此依靠電力的裝備有風險
3. 高海拔的雪山,夜間氣溫降到零下6度,夜間可以凍死人,需要保暖裝備
4. 依手表的定位高度約海拔2700公尺,溫度大約零度,傳統登山裝備還是比較可靠
5. 有攜帶冰斧、穿冰爪鞋,也攜帶指北針,裝備越齊全越好
6. 只有2條曼陀珠可喫,嚴格糧食分配,每隔一段時間只喫1顆曼陀珠;第2天開始必須餓到難以忍受,才能喫1顆,保留最後一滴水一食物
7. 陳佑竹摸出2個打火機,引燃衛生紙,再燒枯枝,生起2個小火堆取暖。生火裝置不可少,最好也帶火種

參考資料
張瑞楨,雪山迷路凍3天 靠打火機 曼陀珠活命,自由電子報,2014-1-4,http://www.libertytimes.com.tw/2014/new/jan/4/today-so4.htm

2013年12月10日 星期二

生態保育與送貨的無人飛機

聽到尼泊爾,第一個印象是喜馬拉雅山以及由無盡白雪所覆蓋的高。不過在不為人知的喜馬拉雅山腳下,其實是較為溫暖,而且有蠻豐富的植披,也有豐富的野生動物,包含單角犀牛(one-horned rhinoceros),亞洲象與老虎(Bengal tiger)等。但是很不幸的這些野生動物正飽受盜獵者的荼害,雖然尼泊爾政府派出相當人力,仍無法有效嚇阻這些盜獵的活動。
蘇黎世的助理教授Lian Pin Koh,在TED演講中分享了他與團隊所開發,可以用來打擊這些盜獵行為的利器-無人飛機(Drones)。這些無人飛機不只具有打擊森林犯罪的潛力,也可以用來監控這些野生動物的數量與健康情形。
他談到會想到無人飛機的理由,這個無人飛機配備很簡單,具有內建微型電腦的自動駕駛系統,GPS,羅盤,氣壓式高度計,以及少量的感測器。這個無人飛機也可以攜帶一些裝備,比如攝影機或是照相機。自動駕駛系統內的電腦內也可以安裝用來規劃航行路徑,以及只是飛機如何運作的軟體。
一般人聽到他描述完飛機的配備之後,通常會驚訝於只有四個組件,就可以組成Conservation drone。而當他們聽完整個系統花費不到美金1500元,更是不可置信。
設備費用

路徑規劃軟體

無獨有偶,最近電子商務巨頭亞馬遜、快遞巨擘UPS以及德國郵政均發布新聞,正進行採用無人飛機送貨的可行性?以亞馬遜Amazon為例子,該公司CEO Jeff Bezos 在美國「六十分鐘」節目裡,宣布推出Amazon Prime Air無人飛機(Drone)運輸系統。
資料來源:Yahoo TW

此飛機的最大承載的重量是 5 磅(約 2.26 公斤),飛行距離大約 10 英里(約 17 公里)為因為亞馬遜所販售的商品中大部分都低於這個重量,因此可將大部分的產品透過它運送到府。Amazon Prime Air事實上是四旋翼直升機的改良,不過它具備八具螺旋槳,透過下方的運送盒裝載傳遞物品。
看來天空會越來越熱鬧。
參考資料

  1.  Lian Pin Koh: A drone's-eye view of conservation http://www.ted.com/talks/lian_pin_koh_a_drone_s_eye_view_of_conservation.html?utm_source=newsletter_daily&utm_campaign=daily&utm_medium=email&utm_content=button__2013-11-18
  2.  The Mission Planner utility https://code.google.com/p/ardupilot-mega/wiki/Mission?wl=en
  3.  http://plane.ardupilot.com/


「夠好」的人生選擇

原本從事音樂行業,後轉行為包含演說等行業的Derek Sivers,在TEDx Taipei 2012,人生是什麼為題,分享了他的看法。問10個人至少會得到11個答案,因為有人可能會有多個不同的看法,譬如Derek Sivers提出了至少5個看法。不只不同際遇的人對於人生的看法不同,即便是同一個人在不同時期也會有不同的看法。頗同意Derek Sivers的看法,他由不同角度提供了人生是什麼的看法,也提出,若確定人生是什麼之後,應該要如何豐富它的見解。
1. 人生是選擇(life is a choice)
每一天每個人都會做出若干的選擇,少則數十個,多則數百個,例如早餐吃甚麼。人的一生則是由若干個重大的選擇所決定,所以說人生是選擇。若人生是選擇,那要如要做選擇?
試著降低對邏輯的依賴,相信自己內在的感官力量
學會知足常樂,不可能永遠做出最佳的選擇,因此試著去傾聽,學會放下和取捨
學會珍惜當下,因為生命中做選擇一定有得失,我們其實更喜歡別人幫我們做決定,特別是重大的決定
學著去選擇真正重要的而非緊急(urgent)的,電子郵件、簡訊、電話是緊急,但是要不要花個幾位元學一項有助於日後職場的新技能是重要的
2. 人生是時間(life is time)
人生等於出生到死亡之間兩者的時間所構成,那該如何巧妙地運用時間?
(1)記得時間是有限的,想像只有30天可以活,那你會如何安排時間?(2)放眼未來是很重要的(3)沉溺其中
3. 人生是記憶(life is memory)
人生一定和記憶有關,否則若是無法紀錄自己的人生,人生就會是一片空白。那該如何打造新的記憶?
4. 人生是溝通(life is communication)
人生若是溝通,那該如何跟別人溝通,因為我們人生總是需要和別人溝通交流。
5. 人生是幸福(life is happiness)
若人生是幸福,要如何才能得到幸福?
6. 人生是學習(life is learning_
人生若是學習,那要如何讓學習更有效率?
另外也有人認為人生是受苦(life is suffering)或人生是愛( life is love)等
Derek Sivers認為人生其實就是人生(life just a life),人生本身不具備意義,只不過是把任何適合的意義套用在自己身上。
上述的觀點都說得通,至於我的觀點是快快樂樂的活在當下,即便無法時時刻刻如此,至少也要讓期間盡可能的長。至於何謂快快樂樂?每人觀點不同,只要不逾越道德倫理,法理,以及造成他人困擾就可以。一個腰纏萬貫的億萬富翁,每天快快樂樂看著數著自己合法賺得的萬貫財富,一個窮人每天只夠溫飽但是快快樂樂享受山川美景,或是每天快快樂樂服務他人的志工,在快快樂樂過生活的程度上沒有不同。
個人認為人生最大的快樂來自於滿足,而最大的不幸與悲哀來自於不滿足。由Robert Skidelsky與Edward Skidelsky父子兩者合著,多少才滿足? 決定美好生活的7大指標(How Much Is Enough? Money and the Good Life),也是在探索類似的問題。這一部分其實沒有什麼祕訣,就是要自己調整心態,跟前面的敘述一樣,滿足點因人而異。

參考資料

  1. The "good enough" life choice : Derek Sivers at TEDxTaipei 2012, https://www.youtube.com/watch?v=MX7xb7Hj2ng
  2. 兩者多少才滿足? 決定美好生活的7大指標, http://www.eslite.com/product.aspx?pgid=1002149592180970#


日月潭向山遊客中心附近

已經很久沒到日月潭,對於這裡的印象一直不好,因為這裡是陸客大量聚集之地。不過上週日到向山遊客中心,看到附近的景象,完全顛覆自己的印象。
向山遊客中心的建築物本身就具有特色,全清水模結構體,具現代感的外型,加上在周圍適度引入水的元素,真是令人讚賞。
以往來日月潭大部分是在水社碼頭或是教師會館等附近,印象所及好像沒有來過這裡,頂多也是只是經過而沒有下來。這裡的景象多了一份悠閒,少了喧嘩,真是一個適合度假的好地方,不過自行車與行人共用一個步道,險象環生。








六個書寫可以促進健康的意想不到途徑

圖片來源:Flickr/Bright Meadow
資訊時代特別是個人化智慧裝置普及以來,人們手寫文章的機會減少了,還記得上一回用筆寫文章是多久以前的事情?美國Huffington Post最近有一篇報導提到書寫對人的健康有意想不到的六大好處:

1.書寫可以提高記憶力
因為在書寫過程中,雙手會向大腦發送信號,因此用筆將事物寫在紙上,有助於大腦記住你所寫下的信息,換言之可以增強記憶力。
2.書寫能加快傷口癒合速度
寫日記對於傷口的癒合是否有影響,是一般人不會想到的問題,不過紐西蘭的研究人員則針對此問題進行研究,他們將參與者分為實驗組與控制組兩組,他們要求實驗組寫日記,以記錄下最深刻、最深處的想法和感受;而控制組則被要求記錄除了感情或信念以外的其他事物;兩週後,研究人員對他們的皮膚進行了活體組織檢查,在手臂上留下了一個小傷口,之後對他們進行追蹤採訪,直到傷口癒合。研究結果顯示:透過日記表達真情實感的實驗組人員,傷口的癒合速度與控制組的快。
3.書寫有助於舒緩癌症患者的情緒
2008年發表在腫瘤學家期刊上的一項研究顯示,僅僅是單次的、20分鐘的寫作練習,就能讓一些癌症患者對疾病的思考方式發生積極轉變,讓他們心態更平和,因此態度決定一切,這句話對癌症患者再真實不過了。。
4.書寫可以讓人更樂觀
在日記上書寫感恩的內容,會讓人感覺更快樂嗎?美國加州大學戴維斯分校和邁阿密大學的學者在共同合作的研究中發現,參與實驗的人每週寫一次感恩日記,持續兩個月後,他們對生活的態度更為樂觀,也增多了所參加的體育鍛鍊量。
5.書寫可以改善睡眠
在應用心理學:健康與幸福研究上發表的一項研究成果顯示,每晚僅花15分鐘的時間寫下讓你感激的事情,就能顯著改善睡眠狀況,既延長睡眠時間,又提高睡眠質量。
6.書寫能全面提高健康狀態:
精神疾病治療進展期刊2005年發表的一篇研究結果顯示,寫字的好處不僅會在短期內顯現,而且也能讓人獲得長期回報,如改善情緒、提升幸福感、減輕壓力等,一些研究顯示,寫字還有助於創傷後應激障礙患者的恢復。

參考資料
  1. Amanda L. Chan, 6 Unexpected Ways Writing Can Transform Your Health, The Huffington Post, 11/12/2013,  http://www.huffingtonpost.com/2013/11/12/writing-health-benefits-journal_n_4242456.html
  2. 財經網生活,书写的好处:提高记忆改善睡眠,11/26/2013,http://life.caijing.com.cn/2013-11-26/113611559.html