:::

壞掉的伸縮筆電電源線 / Broken Extendable Power Supply Adapter Cord

布丁布丁吃布丁

壞掉的伸縮筆電電源線 / Broken Extendable Power Supply Adapter Cord

DSC_2256

我之前買了筆電用的三孔伸縮式電源線,但是用沒多久它就快斷掉了。因為覺得很擔心,所以在此提醒大家不要購買。

I bought a extendable notebook power cord, but it was broken after 3 months. I have to warn you that don’t buy this extendable cord.


粗大的電源線 / Heavy Power Cord

現代的筆電雖然做得很輕薄,可是變壓器卻是一直瘦不下來。雖然最近的筆電變壓器是有逐漸變小,至少已經不再像是一個磚頭,但是電源線卻還是非常粗大。

65a90f44a5d6388718c68efc8bc304ba

T客邦的無敵小恩恩也寫過一篇「貼紙、充電器,那些筆電還需要進步的事」中,也剛好拿了我現在在用的Acer Aspire S7作為例子。他這樣敘述S7的電源線:

「Acer Aspire S7 雖然充電器機身變小,但還是有兩條線材,收納頗佔空間。」

Free-shipping-Power-Supply-60W-font-b-Charger-b-font-Cord-for-font-b-Apple-b

筆電的電源線就不能做得像是Mac一樣纖細好帶嗎?

於是我就花了點時間,找找看有沒有其他電源線可以取代那條厚重的電線。

露天的伸縮電源線 / Extendable Power Cord from Ruten

image

在露天搜尋一下,居然發現了有伸縮式的筆電電源線。這種電源線是用捲軸伸縮,需要時拉長、收納時縮短,線的尺寸也比原來筆電的電源線細了許多,讓我看了心動不已。價格含運費不到200元,我很快就下單買回來,取代了原本的筆電電源線。

雖然黑色的伸縮電源線跟白色的變壓器色調不搭,但是無所謂,這條線真的讓我覺得筆電好帶許多。不僅重量比較輕,線材收納也很容易。當時我真的很高興我買了一個實用的產品,只是沒想到,這段高興的日子也不過三個月而已。

壞掉的電源線 / Broken Power Cord

買來三個月左右,我在一般情況下接著電源線使用筆電時,赫然發現筆電居然是使用電池,不是用供電器的電源。

DSC_2259

我檢查看看到底是什麼問題的時候,竟然發現伸縮電源線的線居然裂開,裡面的銅線不僅斷掉,還都跑出來了。我大驚失色,這未免也太危險了。碰到的話可真的是會被電到啊。之前電源線大多都是擺在桌下或是筆電後面,沒有仔細觀察電源線的狀況,沒想到它居然在不知不覺間都壞成這樣了。

因為覺得很恐怖,所以我馬上把伸縮電源線拿掉,換回原本的粗重電源線。雖然粗重了一點,但也是令人安心許多。

這次的經驗告訴我們,電源的東西真的不要亂買,還是乖乖配合原廠的產品吧。(不想要粗厚電源線的話,那就考慮原廠的Mac……?)

(more...)

解決Android上Google日曆同步錯誤問題:安裝Google的Googlde日曆 / How to solve Google Calendar sync error in Android: Install Google Calender APP

布丁布丁吃布丁

解決Android上Google日曆同步錯誤問題:安裝Google的Googlde日曆 / How to solve Google Calendar sync error in Android: Install Google Calender APP

image

我最近發現我的Android裝置都發生了Google日曆同步錯誤的問題,讓我無法把電腦上新增的時間同步到手機與平板上。但是安裝了Google自己推出的Google日曆之後,日曆同步就恢復正常了。

Recently my Android devices got calendar sync error. But after I installed Google Calendar APP, calendar sync is going working.


4 - 1

我習慣用電腦或平板電腦編輯行事曆,然後手機負責當鬧鐘。平時使用的行事曆管理工具是Digical,因為它介面簡單好操作,也可以設定通知或電子郵件提醒,一直很深得我心。

Screenshot_2015-01-04-16-21-51

可是最近在電腦上跟平板上設定的事件,卻奇怪地沒能同步到手機上。檢查了「設定 」→「帳號」→「Google」→我的帳號→「同步化行事曆」的時候,卻發現行事曆同步出現了異常的符號。同步的時間也跟其他服務有明顯的落差,我的平板最後同步時間甚至是到一個月以前。即使我手動啟動同步,行事曆也無法順利更新,非常奇怪。

Screenshot_2015-01-07-09-01-20

後來看網路上的建議是說需要安裝Google自己推出「Google日曆」,這樣行事曆才能正常同步。

4 - 2

我抱著半信半疑的心態安裝了Google日曆,並跳過簡單的使用操作,進入到了Google日曆操作畫面。由於行事曆尚未順利同步,所以這時候Google日曆上也沒有我完整的行事曆。

Screenshot_2015-01-07-08-57-12

接著再回到設定同步化行事曆畫面,手動進行同步。這次同步時不會馬上就發生異常而停止,而是會持續連線好長一段時間。過了許久之後,行事曆就正常同步了

不能移除Google日曆 / If Uninstall Google Calendar

4 - 3

後來我想說我平時不習慣Google日曆太過花俏的介面,還是主要使用Digical,索性乾脆把Google日曆移除掉好了。

結果移除掉之後,行事曆又無法同步了!真的是非得要安裝Google日曆不行。Google現在的同步服務做的真的很奇怪啊。

還是不能同步? / Still Sync Error?

用了幾天之後,即使安裝著Google日曆,赫然發現還是有同步失敗的問題。最後我參考「簡單解決 Android 裝置無法與 Google 帳戶同步」這篇文章,到 Android的 設定 > 應用程式 > 全部 > 儲存行事曆,清除行事曆的快取即可。

最近這件事情真讓我感到頭大啊……

(more...)

將CSV與XLSX轉換成Solr XML格式 / Convert CSV and XLSX to Solr XML format

將CSV與XLSX轉換成Solr XML格式 / Convert CSV and XLSX to Solr XML format


2014-12-12_010659
Apache Solr要匯入資料的格式預設是使用XML,但這跟我們習慣使用的Excel有很大的差別。因此我利用js-xlsx套件作了一個可以在線上將Excel的XLSX格式轉成Solr XML格式的工具,方便大家把Excel資料匯入Solr。您可以在這個網頁直接使用此工具,而更新的程式碼則是典藏在GitHub上。
This tool is used to convert Excel XLSX format file to Apache Solr’s data import XML format. Following is online tool and you can download whole JavaScript codes on GitHub.


如何製作Excel檔案? / Prepare Excel Data

2014-12-12_010632 - Copy
規則只有一項:Excel的第一列是欄位名稱,第二列之後才是資料。
本程式在轉換的時候,會過濾掉&之類的XML脫逸字元。如果轉換後的檔案匯入Solr時發生異常,請在下面的留言中回覆給我知道即可。



Source code from: JS-XLSX (XLSX/XLSB/XLSM) Live Demo

Configuration


Upload XLSX
  • Example XLSX data: example-data.xlsx
  • 如果無法下載,請直接複製XML檔案,貼上到Notepad++,另存成為data.xml即可。
Drop an CSV / XLSX / XLSM / XLSB / ODS file here to see sheet data
... or click here to select a file
Advanced Demo Options: Use Web Workers: (when available) Use Transferrables: (when available) Use readAsBinaryString: (when available)
(more...)

漂流了將近半年的峇里島明信片

布丁布丁吃布丁

2 Comments

漂流了將近半年的峇里島明信片

DSC_2110

今天有件意外的事情,在這邊跟大家聊聊。那就是我以為已經從峇里島寄不回臺灣的明信片,今天居然出現在我桌上了。


DSC_2344

事情是這樣的。

我六月時到印尼峇里島參加IMLF 2014研討會時,只要一逮到時間就狂寫明信片,最後寄了好幾張回到臺灣。有地址的朋友,我就直接寫他的地址。沒有地址的朋友,我就先寄回宿舍,改天有機會再親自交給他。可是奇怪的是,其他朋友的明信片都寄到了,唯獨宿舍的明信片卻不知去向。

在六月中到七月之間,我把學校可能收發郵件的單位都問了一遍,但奇怪的是,並沒有任何的未知郵件記錄,也沒有應該送到我信箱的郵件。問了老半天也沒什麼發現,最後我也只好索性放棄,也一併對學校宿舍的郵寄系統留下了很深的壞印象。

過了五個月,來到了今天11月中的時候。我的桌上忽然出現了遺失已久的明信片。送來的學妹笑嘻嘻地跟我說明,我才知道原來這些明信片居然經過了一串離奇又曲折的旅程。


要說罪魁禍首,其實並不是學校的郵寄系統有問題,而是因為我在慌忙之際沒把收件地址寫好。宿舍寫了房號,卻沒有寫到大樓代號。明信片上面除了收件者大多寫本名之外,寄件者我也只寫了綽號「布丁」而已。

在六月時明信片就寄到了宿舍,由宿舍管理員將信件擺置信箱。看我這個「布丁」像是女性綽號,宿舍管理人員也不疑有他,就直接把這對明信片放到了隔壁女宿的信箱中。很巧的是,這是一間空房間。因此這五個月之間,明信片就就這樣默默地躺在一個無主信箱中,也沒人覺得奇怪。

直到最近宿舍出現了一些事件,導致附近房間的房客統統主動遷出,那件房間的樓層就因此淨空。但是政大女生非常多,許多學生宿舍都是一位難求,很快地就有下一批學生要求進駐。而這時候明信片所在信箱的房間,也就這樣剛好有位女同學成了他的主人。

女同學搬進去之後,發現信箱裡面竟然躺著一堆明信片。而這明信片顯然不是寄給剛搬進去的她,那就竟是誰的呢?她翻了翻,雖然不知道寄件者「布丁」是誰,但是收件者之中卻有一位名字是她熟悉的,就是她的同系所學姐。

她把那堆明信片拿給學姐看看,學姐立刻笑了出來,然後在晚上來到所上meeting時把這堆明信片放到他們原本的主人身上──哪個人就是我,而這位學姐就是我學妹。

因此到最後明信片總算完成了它們的奇幻旅程,不僅送到了我的手上,我也終於把它們拿給了真正的寄件者手中。真是不可思議,世界上果然有很多事情只能用緣分來解釋的啊。

(more...)

Weka的BayesNet分類器操作說明 / A Tutorial on BayesNet Classifier with WEKA

布丁布丁吃布丁

Weka的BayesNet分類器操作說明 / A Tutorial on BayesNet Classifier with WEKA

Title-Bird-Header

這是資料探勘工具Weka中以BayesNet來做分類的操作教學。BayesNet實作了以條件機率為原理的貝氏分類法,其特色在於可以繪製出條件機率的樹狀圖形。

This is a tutorial on BayesNet Classifier by using data mining tool: WEKA. BayesNet is based on Bayes Network learning algorithms and provides network structure with conditional probability distributions.


Weka下載與安裝 / Weka Download And Install

Weka是紐西蘭懷卡托大學機器學習實驗室(Machine Learning Group at the University of Waikato)發展的資料探勘工具,並以GUN授權發佈,是資料探勘領域中重要的自由軟體。Weka實作了許多發表於學術論文上的重要演算法。不僅適合作為學生學習資料探勘的好工具,也是進行演算法改良研究的平臺。

2013年該實驗室推出了5週的線上教學課程MOOC「Data Mining with Weka」,有志學習資料探勘的同學可以試著進來上課看看。

安裝Weka的時候,要特別注意的是記得安裝Java Run Environment (JRE),不然Weka無法開啟喔。

由於我之前就對於貝氏分類法感到很有興趣,雖然他在分類器中的成效一直不是很突出,但是可擴增性與簡易實作的理論等特色,讓我覺得貝氏分類法應該還有很多可以應用的潛力。這次剛好找到了李明昌老師的教學投影片,我也就來練習操作看看BayesNet這個貝氏分類法的分類器,並在此跟大家分享。

STEP 1. 開啟Explorer / Open “Explorer”

2014-10-28_144712

開啟Weka的時候,先選擇使用Explorer吧。

STEP 2. 開啟檔案 / Open file

2014-10-28_144728 - Copy

進入Explorer之後,我們這次要用的檔案是範例檔案中的iris.arff。檔案位置在[Weka]\data\iris.arff。

2014-10-28_144817

image

STEP 3. 開啟分類器 / Open ”Classify”

image

開啟檔案之後,接下來會回到Explorer上。接下來我們要開啟Classify分類器。

2014-10-28_144919

在分類器上按下Choose選擇。

2014-10-28_144950

選擇分類法中的 weka/classifiers/bayes/BayesNet

這樣子就可以準備來開始跑囉。

STEP 4. 預設的BayesNet探勘結果 / BayesNet Mining Result with Default Options

image

測試方式用預設的交互驗證(Cross-validation) 10層,然後分類的目標是 (Nom) play,按下「Start」。

最後結果看可以看到其中一行:

Correctly Classified Instances 139 92.6667%

這意思是,預設的BayesNet分類法下來,正確率只有92%左右。

image

我們在結果集上按下右鍵,選擇「Visualize graph」。

image

接著會跳出BayesNet建置的樹,每個節點都是造成不同種類的條件機率。其中我們在「sepallength」上面按下左鍵。

image

左邊直欄class底下有Iris-setosa / Irisversicolor / Iris-virginica,第一欄則是'(-inf-5.55]'、'(5.55-6.15]'、'(6.15-inf)'。意思是說:

  • 如果是品種setosa的話:花萼長度小於5.5的機率為0.922;長度介於5.55-6.15的機率為0.068;長度大於6.15的機率為0.01。
  • 如果是品種versicolor的話:花萼長度小於5.5的機率為0.223;長度介於5.55-6.15的機率為0.456;長度大於6.15的機率為0.32。
  • 如果是品種virginic的話:花萼長度小於5.5的機率為0.029;長度介於5.55-6.15的機率為0.204;長度大於6.15的機率為0.767。

因此這就是貝氏分類法其中一個條件下的模型。

除了基本參數之外,我們可以還調整BayesNet的參數設定讓正確率再提高一些。


BayesNet的參數設定 / BayesNet’s Properties

2014-10-28_152519

在BayesNet那一條欄位上按下右鍵,選擇「Show properties」。

2014-10-28_165428

接下來我們來看看關於BayesNet的介紹:

貝氏網路學習法(Bayes Network learning)使用了各種搜尋演算法與品質測量法。

Weka的文件並不完全,底下的設定光看名字也看不懂。細節都是要靠More裡面的介紹。讓我們按下More繼續看看。

介紹 / Information
  • 名稱:weka.classifiers.bayes.BayesNet
  • 概要:貝氏網路學習法使用了各種搜尋演算法與品質測量法。基於貝氏網路分類器。提供了資料結構(網路結構、條件機率分佈等等)以及使用貝氏網路學習演算法常見的工具,例如K2或B。更多細節請看http://www.cs.waikato.ac.nz/~remco/weka.pdf (可是找不到資料啦)。
能力 / Capabilities
  • 資料類型 (Class):名義資料(Nominal Class)、二元資料(是否)、遺失值的資料(Missing class values)。
  • 屬性(Attributes):二元屬性、數值屬性、空的名義屬性、遺失值(Missing values)、名義屬性、單一元素屬性(Unary attribute,什麼意思呢?)。
  • 其他說明:最小的案例編號為0。
參數 / Options
  • BIFFile:可設定一個以BIF XML格式建立的檔案名稱。可用於比較從BIF檔案中的貝氏網路結果、以及使用貝氏網路學習法學習結果的差別。統計計算為o.a.,遺失值(the number of missing)以及額外弧度(extra arcs,我真的看不懂這是什麼)
  • debug:設定true,分類器會顯示額外的資訊,以供偵錯。
  • estimator (評價器):選擇評價器演算法來找尋貝氏網路條件機率表,預設值是SimpleEstimator。
  • searchAlgorithm (搜尋演算法):選擇搜尋網路架構的方法,預設值是K2。
  • useADTree (使用AD樹):使用AD樹一般而言可以降低學習時間。然而,由於AD樹佔用大量記憶體
    ,這可能會造成記憶體不足的問題。關閉這個選項可能會讓結構學習演算法變慢,但消耗記憶體較少。預設會使用AD樹。必須要注意的是,這裡的AD樹是指一種資料架構,用於增加計數的速度,不要跟同名分類器搞混了。

五個參數中的三個參數還算好理解,其中estimator (評價器)跟searchAlgorithm (搜尋演算法)就有很多選擇。讓我們一一來看一下有那些評價器跟搜尋演算法吧。

參數:評價器 / Option: estimator

可選用的評價器共有4種。首先我們先看一下預設使用的SimpleEstimator,然後再看看其他評價器。但是除了SimpleEstimator可以應用於多層條件機率的評價之外,其他評價器限制都很大。因此最後我還是用SimpleEstimator。

簡易評價器 / SimpleEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.SimpleEstimator
  • 概述:SimpleEstimator是用於評估貝氏網路中學到的條件機率表格。評估機率是直接來自於資料本身。

參數只有一個:

  • alpha:Alpha是用來評估機率表格,可以用於解釋每個數值的起始值。預設值是0.5。
貝氏網路評價器 / BayesNetEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.BayesNetEstimator
  • 概述:BayesNetEstimator是一種用於評估貝氏網路中學到的條件機率表格的基本用法。

參數只有alpha一個,解釋同SimpleEstimator。

BMA評價器 / BMAEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.BMAEstimator
  • 概述:BMAEstimator是用貝氏模型平均法(Bayes Model Averaging, BMA)來評估貝氏網路中學到的條件機率表格。

參數除了alpha之外,還有一個useK2Prioir,但是More裡面沒有說明。

多項式BMA評價器 / MultiNomialBMAEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.MultiNomialBMAEstimator
  • 概述:多項式的BMA Estimator。

參數除了alpha之外,還有一個useK2Prioir,但是More裡面沒有說明。

參數:搜尋演算法 / Option: searchAlgorithm

搜尋演算法很多,Weka提供了ci、fixed、global跟local這四種。預設使用的是local當中K2。我試著用不同的搜尋演算法來計算看看,赫然發現GeneticSearch的正確率挺高的。所以以下我介紹GeneticSearch這個搜尋演算法。

基因搜尋演算法 / GeneticSearch
  • 名稱:weka.classifiers.bayes.net.search.local.GeneticSearch
  • 概要:這個貝氏網路學習演算法使用了基因搜尋演算法來找尋良好的貝氏網路結構。基因搜尋是基於蒐集貝氏網路結構的族群(population),再以突變(mutate)與交配(get offspring)來運作。最後結果會產生貝氏網路結構。

基因演算法是傳說中只要有無限時間,就可以計算出最佳解法的超強演算法。這也是資料探勘必定會教的經典演算法。在此我就不介紹這麼多了,想要細節請看GA基因演算法介紹。

參數可多著了,共有9個:

  • descendantPopulationSize:設定每一代產生子孫族群(the population of descendants)的數量。
  • markovBlanketClassifier:預設為false,當設定為true的時候,每次學到一個網路結構時,馬可夫毯校正(Markov Blanket correction)就會用於網路結構上。這可以確保網路中的所有節點都屬於分類器節點的馬可夫毯的一部分。(抱歉,我知道馬可夫鏈的模型,但還真不知道這是如何運作的)
  • populationSize:設定每一代的網路結構族群的數量。
  • runs:設定基因演算法要運作的回數。
  • scoreType:分數類型決定如何測量網路結構的品質。可用的選項包括預設的Bayes、BDeu、Minimum Description Length (MDL)、Akaike Information Criterion (AIC)以及Entropy。
  • seed:亂數產生世代的初始值。設定seed可以允許實驗的可複製性(Setting the seed allows replicability of experiments. 我不會翻譯)。
  • useCrossOver:決定是否可以交配(cross-voer)。交配是網路結構以位元呈現後,再隨機挑選k個位元、保留其他位元來組合。交配或突變至少必須要使用其中一項。
  • useMutation:決定是否要使用突變(mutation)。突變將反轉網路結構的一個位元資料。突變或交配至少必須要使用其中一項。
  • useTournamentSelection:決定選擇族群的方法。當設為true的時候將會使用競賽選擇(tournament selection),亦即選擇其中最高的數值以及隨機兩個來進行。當設為false時只會選擇成效最好的網路結構。

STEP 6. 使用基因搜尋的探勘結果 / Mining Result with GeneticSearch

image

我換了基因搜尋演算法再來跑跑看,正確率提升至94%,比預設的K2還要高1.3%。

2014-10-28_221618

基因搜尋演算法是使用上面介紹的weka.classifiers.bayes.net.search.local.GeneticSearch。

image

其他參數都沒有調整。事實上我嘗試用了幾種不同的組合,但是結果都一樣。基因演算法的突變跟交配是隨機的,因此理論上每次跑的結果應該都不太一樣。不過我跑了幾次結果都差不多,可能是因為runs=10已經夠多的關係吧。

image

讓我們來看看結果模型。跟K2跑出來的結果差別非常大。我們在意的是class的機率,點左鍵來看看:

image

結果如上。以第一列為例子來解釋,如果花辦長度(petallength)小於2.45、花瓣寬度(petalwidth)小於0.8,屬於品種setosa的機率為0.981、versicolor的機率為0.01、virginica的機率為0.01。其他列的解釋則可以依此類推。

與其他分類器的比較 / Compare with Other Classifiers

不過我也跑了一下其他演算法。

image

J48的決策樹正確率為96%。以上是建樹結果。

lazy.IBk正確率為95.333%。

SVM的funcitions.MultilayerPerception則是97.333%。

大多數演算法都能夠輕鬆勝過BayesNet啊。

(more...)

誰把 /var/log/secure 清空了?是logrotate! / Who clean /var/log/secure? Is logrotate

布丁布丁吃布丁

誰把 /var/log/secure 清空了?是logrotate! / Who clean /var/log/secure? Is logrotate

ways-hackers-hack-your-website-e1371080108770

/var/log/secure是Linux中記錄登錄資訊的重要記錄檔,當懷疑有駭客登入伺服器時,我們可以檢查secure來看看有沒有異常登錄的資訊。但是如果啟用logrotate的話,secure會定期被清空。

In Linux, logrotate will clean /var/log/secure regularly. It may not hacker's trick.


我被駭客了嗎? / Have Server been hacked?

昨天因為被網路組警告伺服器有釣魚資訊,所以我就檢查了一下伺服器的權限問題。

一般來說,伺服器的登入資訊都會寫在 /var/log/secure 中 (詳細可以看鳥哥)。因為我懷疑可能伺服器帳號可能已經被猜透了,讓外部駭客直接登入了這臺伺服器,因此我急忙查看 /var/log/secure 檔案。可是讓我很驚訝的是:

2014-10-23_102847

secure跟其他secure.1到secure.4的檔案大小居然是0! 只有secure記錄這我這幾次登入的資訊,都是我本人的電腦無誤。

 

我接下來很緊張地查看root以及常用帳號的history,看一下之前該帳號的操作指令是否有異常。但是那裡面的動作也都是我個人的操作,沒有問題。

網路上也有人在問這個問題,到底是為什麼 /var/log/secure 被清空了呢?

logrotate的工作 / logrotate’s Job

當我找到cron排程工作的時候,我才發現問題在哪裡。

2014-10-23_104231

查看cron.daily的時候,赫然發現有個不太熟悉的logrotate套件。根據鳥哥的說明,logrotate是一種定期打包、清空登錄檔的工具。

image

我查了一下 /etc/logrotare.conf,發現logrotate的確也如設定檔地運作。因此 /var/log/secure 被清空,這可能是由logrotate做的事情。

雖然無法保證這不是駭客的入侵,但至少又更瞭解了Linux的系統運作。

(more...)

與病一起生活 / Live with Illness

布丁布丁吃布丁

2 Comments

與病一起生活 / Live with Illness

2014-10-21_194417

(圖片來源:麵包超人1227集(2))

最近我對於自己身上的疾病有了些不同的想法,就用這一篇跟大家聊聊。


生病的人生

我是一個平凡的人,雖然沒有四肢殘缺,但也不能說是健康完美。就像是每位平凡人一樣,我自己的身體也是有些毛病。對我來說,最令我困擾的,大概就是鼻子的毛病了。

我的鼻子很容易過敏——就跟大多數住在濕熱氣候的臺灣人一樣都會有的疾病。雖然說這不是什麼立即致死、無藥可醫的絕症,但也足夠讓我用一生去為它傷透腦筋。

過敏的症狀是會讓鼻子覺得很癢,而且不是外面癢,是鼻腔深處大概接近喉頭的地方在癢。這些地方基本上是無法靠手指抓得到,而且擤也只有一定程度的止癢。

因為鼻腔過敏癢個不停,接下來鼻子就會分泌透明的鼻涕來排除異物。很遺憾的是,這招只是徒勞無功,不管鼻涕怎麼擤,依然無法防止鼻子持續過敏。接著就是因為擤太多造成鼻腔摩擦出血,也就是流鼻血;或是鼻腔內部遭受細菌感染,鼻涕從透明轉黃轉綠,然後接下來因為鼻腔塞太多東西而造成鼻塞,鼻塞導致呼吸不流暢,缺乏足夠呼吸而氧氣不足人就會頭暈、難以集中注意力。加上鼻腔細菌感染的發炎擴散到喉嚨,也就是所謂的鼻涕倒流,這導致喉嚨開始發炎,然後演變成發燒。

這樣子的流程從鼻子開始癢到發燒,大概只需要一天的時間。
因為已經不知道體驗過多少回了,每次都用身體確確實實地記下這整個流程,讓我印象十分深刻。

 

許多人都把鼻子過敏視為是一種病。所謂的病,就是有辦法可以「治好」,讓我可以回到「正常人」的生活。因此以前大多時候,家人為了治好我鼻子過敏這個病,實在是傷透了腦筋。

治病

直到最近以前,家人都還在努力想辦法治好「鼻子過敏」這個病。

很小的時候,由於我鼻子過敏的症狀最明顯的就是鼻水直流,這看起來很像是感冒,所以我媽就會一直帶我去看醫生、吃感冒藥,然後在悶熱不通風的房子中給我加了厚重的衣服。結果鼻子過敏加上悶熱頭暈,到最後還真的變成感冒。

既然對症下藥只是治標不治本,那就得要靠吃中藥、營養品來養生、補身體,讓虛弱的身體變得強壯,鼻子應該就可以不藥而癒。可是吃到最後整個人都胖得像是氣球一樣,鼻子還是照樣過敏。

吃中藥、西藥、鍼灸什麼的,治的都是感冒,而不是鼻子過敏。後來才知道有三伏貼這一招,但是也沒機會去試過。

因為鼻子過敏這個症狀,居然在我到台北去唸書、住進學校宿舍之後,竟然不藥而癒了。

壁癌

雖然我在台北念書期間鼻子很健康,可是回到家之後,馬上又舊病復發。

重複好幾次之後,我們家才知道,造成我鼻子過敏、甚至是家人氣喘的兇手,是因為家裡的壁癌

我們家距離921地震的震央不遠,雖然房子在大地震下沒有太大的損傷,但是牆壁內的水管則是早已殘破不堪。

破裂的水管會導致水流往牆壁滲透,而累積在牆壁磚頭細縫間的水會造成房子的陰濕環境,進而在牆壁內部滋長黴菌。黴菌在累積到一定數量之後,會從牆壁內部向外冒出,於是牆壁會看起來到處都有凸起。更嚴重一點,黴菌會直接穿過牆壁的塗漆或壁貼,在牆壁上冒出頭來,這就是明顯且嚴重的壁癌。而與外界空氣接觸的黴菌會隨風飄散在室內,這就是造成家裡眾多呼吸道疾病的主要元兇之一。

DSC_0423

家人發現家裡有壁癌這個問題時,我仍在台北唸書。在媽媽極力的要求下,家裡開始了大幅度的整修。這個整修並不是外觀上的裝潢,而是為了揪出壁癌兇手的源頭。多虧爸爸強大的水電技能,他停止了牆壁裡面水管的水流,改以外接水管接水。牆壁與地板也全部打掉,把發霉以久的水泥與磚頭統統丟掉,然後再重上水泥與貼磁磚。最後還發現地下的排水溝居然有側漏,導致整個房子的地底就是一個大水窪,難怪一樓總是如此的濕冷。家人花了好大的力氣來重新建造排水溝的管線,總算是解決了這個難題。

這些工程雖然有聘一位師父,但是大多時候都是我爸在處理,而不肖孩兒如我也只能在抽空回家時幫他點忙,做些像是拿電鑽打掉牆壁或是搬搬水泥的事情。這些繁重且看起來永無止盡的事情還曾經造成家裡多次的爭執,好在現在總算是修整完成,重貼的磁磚與覆蓋在水溝上重做的地板也看起來相當賞心悅目,隔了好久總算是又回到了那個熟悉的家。

可惜的是,即使是如此,我的鼻子過敏仍然沒有康復。

難以根治的壁癌

這番辛苦的整修之後,家裡的確沒有以前那樣的濕冷。然而壁癌之所以會被稱之為壁癌,就是因為它難以根治。

即使水管外接了,牆壁不知為何還是會冒出壁癌。但是現在也沒有心力再打掉檢查。

對我來說這種感覺非常強烈。一踏入家門、呼吸家裡的空氣,鼻腔內部馬上就癢了起來。然後再待一陣子,癢的感覺就會逐漸深入鼻腔,完全無法阻止,癢到最後我常常會有種巴不得拿刀子把鼻子割掉的想法。接著在家裡睡一個晚上,已經可以預期明早過敏的淒慘程度了。

CIMG0829

(圖片來源:台灣製 N95防塵口罩  E520C)

之前曾經會在家裡戴口罩,來試圖阻止過敏源的入侵,可是袋普通口罩效果不大,戴個N95則是造成呼吸困難。

空氣濾清器兼除濕機在多年之前早就是家裡固定運作的家電,但成效依然有限。

由於回到家就會造成鼻子嚴重過敏,我大學時候甚至因此不太想回家,寧願待在台北的宿舍。

雖然家人花了很多心力把房子整個裝修,但依舊無法根治我鼻子過敏的問題,我一直覺得很對不起他們,也不知道該怎麼去面對這個令人絕望的鼻子過敏問題。

但是最近因為幾件事情,讓我重新思考對於鼻子過敏這個老毛病的觀點。

與疾病相處

我在當兵時與一位上士班長一起在辦公室工作。這位班長由於身體有些問題,無法執行太過勞動的勤務,所以大部分的時候都是在辦公室處理文書業務。

有一次我跟他聊到身體殘疾的問題時,他只是笑笑地說,雖然很令他困擾,但他的應對策略只有一個:

 

「跟疾病一起相處。」

 

那時候我不太懂,疾病不是敵人嗎?我們不是應該努力對抗疾病,讓自己成為一個健康的正常人嗎?為什麼要放棄掙扎,讓疾病持續對自己帶來困擾呢?於是我開始仔細觀察了班長的日常生活。

 

我所在的單位的主要任務大多都是勞力活,因此不能視為一個有效勞動力的班長,想必是無法獲得很高的評價。舉例來說,當時要求軍人必須進行的體能要求,班長就只能申請病故,體能成績一直是在底線。

儘管如此,班長仍然在辦公室中找到了他的一片天。在處理行政事務上,班長很有他的一套方法,讓許多業務都能夠默默地順利運作。雖然對一般在前線的士兵來說並不會發覺其中的差異,不過對同在一個辦公室工作的我來說,的確是有很多值得我學習的地方。

這就是班長所謂的「與疾病一起生活」嗎?

 

後來我開始觀察身邊的人,赫然發現,大家都是與疾病一起生活。儘管大家看起來都跟正常人沒甚麼兩樣,但是總是會有一兩個故疾在身上。有人眼睛不太好,不太能久看;有人胃不太好,一旦吃多肯定會消化不良;有人膝蓋受過傷,長短腳的症狀讓他常常走路跌倒。但是即使如此,大家還是能夠找尋其他方法,把身體故疾帶來的困擾降到最低。

bk0005182

(圖片來源:乙武洋匡 - 五體不滿足)

以往我以為「接受自己身上的不完美」這句話是給身體四肢有殘疾的人的話,但是現在想想,其實這種態度可以適用於我們任何人——因為這世上沒有完美的人,大家都是努力與疾病和平相處。

我在想,面對疾病這件事情,也許不是只有「對抗」這種方式。

疾病不是敵人?

很久以前在輕小說狼與辛香料上看到一個發人深省的橋段。

17 - 3 - Copy

為了進入教堂躲雨時不被人發現女主角隱藏在斗篷底下的狼耳朵,男主角以「她不想讓人看見自己臉上的灼傷。」為理由跟守衛解釋。

事後女主角笑著稱讚男主角的機靈,如果是她的話絕對想不到這個理由。

17 - 4 - Copy

她摸著尾巴,驕傲地說: 「如果臉上有灼傷,那也是咱的證明。

對她來說,灼傷並不是什麼令人羞恥的事情,反而是證明自己的一種手段。這個觀點讓我開始思考,所謂的疾病,真的是我們的敵人嗎?

 

然後我看了一部備受爭議的漫畫:醫界風雲(Say Hello to Black Jack)。其中一篇在講癌症的問題。

17 - 2 - Copy

第四外科的主任一開始就提出一個反面思維:「癌症,根本不是一種病。」跟以往的醫學故事相比,這是一個相當罕見的觀點。

故事一開始也就跟大部分醫學故事一樣,相信癌症可以對抗,必須要鼓起勇氣、以意志力進行療程。在外科當道的醫學故事中,外科的確可以治好很多外傷,可惜在對於治療癌症來說,這是完全不一樣的戰場。

醫界風雲對於一開始信心滿滿地接受癌症療程卻造成的嚴重副作用、醫生與病人對於無藥可醫的癌症所帶來的絕望與無力有著相當深刻的描述。但是令我意外的是,實習醫生主角在經歷了這一連串的悲慘過程之後,卻發現了癌症的另一個意義:

17 - 1 - Copy

「癌症是一種讓人面對死亡……在死亡之前,還有時間跟活下來的人告別的一種病……」

我非常驚訝。即使是所有人都厭惡的癌症,竟然也有它存在的意義。

這讓我不禁開始重新思考起,疾病,真的是我們的敵人嗎?

這不是科幻小說,人類並沒有能力完全地戰勝疾病。我們活著的是現實,我們能做的事情,除了對抗疾病之外,也許還有其他的選擇。

與疾病共處

由於待在家裡會讓自己鼻子過敏,因此以前我不太喜歡回家,寧願在外面亂晃,也不想待在家裡。

然而,我內心卻一直覺得,待在家裡跟家人一起生活,是一項重要且有意義的事情。特別是在外住宿多年之後,更是會覺得家人的確是我們應該珍惜的寶物。而從上面的描述也可以看到,我對於我家人一直是抱著欽佩的態度,我很喜歡我的家人。

即使如此,我的身體(特別是鼻子)可無法長時間待在家裡,面對這種心有餘力不足的情況,在我正式打算與鼻子過敏這個疾病共同相處之後,我有了不同的想法。

 

快過敏的時候,離開家裡就好了。

 

1411658392-1074147931_n

(圖片來源:365-255【食記】難得一見的OK便利商店霜淇淋)

因此,後來在家裡讓我覺得過敏症狀開始嚴重時,我會選擇稍微出去外面的便利商店坐坐,而不是戴口罩加吃藥。而睡覺時一整晚都待在家裡所累積的過敏原,也可以藉由一早出去外面公園做做運動,就可以舒緩不少過敏的症狀。

我可以因為過敏而暫時離開家裡,但我仍會回來與家人一同生活。

這就是我與疾病一同相處的方法。

後話: 行動部落格

21 - 1

附帶一提,這整篇跟之前的「作為博士班學長」都是用Evernote、以手機和平板在移動中,這次更是分了快十次左右來撰寫。

這種文章跟其他學術或技術性文章不同,不需要時常引用或參考其他資源,因此很適合利用零碎時間來撰寫。以往這種日記我都得花上三四個小時來寫,但是又有種匆促完成的遺憾。

以後的日記或感想我可能會更偏好使用Evernote來進行mobile blog,也許這會比待在電腦前面寫還要有效率的多吧。

(more...)