2015年12月28日 星期一

DXL (Domino XML Language) 的應用

Notes的開發者都很清楚,Notes不像其他程式語言可以將元件個別存成不同檔案,而是將程式邏輯權限資料附檔全都打包成一個NSF檔案,且只有在安裝Notes後才可開啟。
其他語言在一個專案下可以切割成多個檔案維護

但最麻煩的,就是把所有程式資料綁在一起,造成切割困難,今天如果要將其中一個表單或一支代理程式分享,也只能打包成一個NSF檔後寄出,收件者再自行複製所需元件至目標資料庫,這過程實在太搞缸了,且在實現單一元件的版本安控來說是個很大的漏洞。
Notes在一個NSF檔中包含了所有的設計元件

再則另一個問題,雖然Notes程式對資料的控制十分完備,但對設計元件的控管卻相對荒蕪,除了開啟designer幾乎別無他法,而造成在設計時的彈性不足。

這困擾其實還是有改善空間的。為了加強對設計元件的控制,Notes很早就推出DXLDomino xml language),以XML為資訊交換的標準格式,進而加強了對文件及設計元件的新增修改功能,如前所提,文件控管其實沒有太多額外需求,所以我們將重心放在設計元件。

白話的說法就是,在程式執行時,要如何視需要而動態地新增agentformview甚至field

首先在安裝Notes時,安裝目錄下,lotus/notes/xmlschemas的資料夾路徑,便已包含了各個版本副檔名為.dtd的定義檔和.xsd的schema檔存放路徑的名稱便已透露了玄機,包含的是安裝版本以降的所有版本定義檔,在解析XML檔案時的前提就是,解析時的版本至少要高過匯出DXL時的版本,才能有對應的定義檔。這定義檔和Schema中所存放的,就是判別及解讀匯出的DXL的結構及定義。

以,正確的程序是,將要增加或修改的設計元件匯出為DXL格式,再將此DXL經由對應的DTD判讀後匯入,產生新的Notes設計元件。
範例為版本8.5.2,若版本為9.0.1則會包含9.0.1, 9.0, 8.5.3的版本

在這我們至少就碰到二個課題。該如何匯出DXL,以及該如何將DXL匯入。

我先假意地誇讚Notes,它貼心地提供了便利的匯出DXL工具,見下圖,以DXL匯出器直接匯出,以後如果有Notes只交付部分元件時,多了另一種選擇,可以直接傳送單一檔案供換版者匯入。

但接下來又引發了幾個問題,接收者該用什麼工具匯入DXL?以及最小的元件單位為何?這就算是敗筆了。Notes並未提供匯入工具,且最小匯入單位僅為表單(form)。Notes雖然沒有提供匯入工具,但好在不管是用JavaLS,都不是太困難,且若要動態新增或修改時,也不可能是由designer手動匯入,所以除非是如前面所提的,要將部分元件匯出再轉入,否則就算有匯入工具,大多也只是感受上的問題。

DXL的類別主要就是NotesDXLExporterNotesDXLImporter二個Class,分別為匯出及匯入,至於parser則是NotesDOMParserNotesSAXParser,差別在DOM將整份XML一次Load並暫存於記憶體來存取,效能自然比逐行循序讀取的SAX要高些,但還得視產出的XML檔案大小,來決定效能或資源之間的取捨。而DXL匯入的關鍵在,
Set importer = session.CreateDXLImporter(stream, db)
importer.Process

但匯出匯入讓人頭疼的重點肯定不在Code,而是若不使用Exporter時,該如何產生DXL檔?

提個簡單的範例,

這個簡單的表單,包含FormDescription_1二個欄位和一個TEST按鈕。我們試著如上面的DXL匯出器,可以得到以下的DXL檔案結果。

斷行整理一下(或可直接以browser開啟更容易閱讀),第一行代表了XML的宣告和編碼,接著<!DOCTYPE>是指定引用的DTD,用來規範及解讀匯出匯入的DXL檔案,如果在匯出和匯入有版本差異時,可以在此去修改解讀的DTD檔案版本。

宣告後的部份是Notes DB的屬性,有些無法以程式達成的DB屬性變更,也都可以在匯入DXL時直接取代。粗框圍起來的地方代表的是Notes的表單內容,全都包含在<body><richtext>的標記中。裡面的三個細框,分別是Form Description_1欄位,以及TEST按鈕。

而我現在想做手腳的是Description_1列,假設在匯出時,把Description依實際需求變動的狀況,動態產生新欄位XML Tag,Description_2欄位,如下圖。

接著再將此DXL欄案匯入,重新在Designer裡去開啟表單,會發現有些變化,多了一個Description_2的欄位了。
執行匯入後表單產生新的欄位Description_2

匯入時要小心的是,DXL匯入時是以NoteIDKey去取代,執行匯入時,並不會像Designer一樣貼心地提示將產生衝突文件,或因相同名稱而產生備存元件,而是毫不留情地立即取代現有的表單。這是因為DXL新增元件只能到表單,而不是欄位。但我們可以應用此方法,在XML對應欄位的地方,用程式加以判斷來新增欄位的XML tag,要幾個欄位就在DXL中加幾個tag

甚至在選擇產生新元件的部份,做個彈性的選項專用的子表單,讓使用者不需透過Designer,決定要新增幾個欄位、欄位名稱為何、欄位屬性,又或者更擴大範圍,可以決定新增或修改哪些View、呈現哪些Column、表單、頁面、子表單、共用欄位。。。等。這些在web上原本就能夠以HTML輕易達成,但HTML上的欄位只是個愰子,並不真的具備Notes的元件屬性,更別提Notes Client了。
Notes的欄位,就可以想成是HTML 的欄位,在迴圈中的
|<input type="text" name="Field_| + CStr(i) + |" value=.......
再加上能彈性地對應資料庫中的欄位Field_1, Field_2, Field_3.....等的綜合結論,這樣看來是不是就覺得比較厲害些?而這目標能以DXL輕易達成。

但我們的困難仍停留在如何隨心所欲地產生DXL檔案,以人力去比對dtd & xsd來產生DXL肯定會讓人消化不良,但我們可以參考一些簡單的定義及屬性,或更偷懶的方法是,在執行程式前,就先將原生表單(在尚未新增欄位前)先行以匯出器或檢視器做一DXL範本文字串存於Profile中,在程式執行時會先取得文字串,再加上程式判斷而加入欄位的tag,最後再加以XML的收尾,組合成完整的新DXL後,再重新匯入,而匯入後自然就取代了原來的表單。

因為是直接取代,如果重覆執行只會有相同的結果,並不會將變動的元件累加。所以在這表單到底現在已經有幾個欄位了,各是什麼屬性,程式是無法判讀的,必須記錄在Profile中,每次執行時才能夠一再地累加上去,不會永遠都只有一次新增的欄位。

這方法說穿了也挺傻眼,就像魔術被看穿一樣,但做大事不拘小節,拿出來嚇唬人是「挫挫有餘」。當然,這動作也要在點選後、存檔前能即時顯現,才能顯出其高大深遠及氣宇非凡。

可惜,講了半天,我的範例還是失敗了!!!!

所有的理論都能實現,唯獨即時顯現變動的元件這點,若是查看欄位屬性,其實我在Debug狀態可看到,UI已經產生Description_2了,但表單即使關閉再重新開啟欄位也未顯現,問題徵結隱藏在前面提過的, 

必須「重新在Designer裡開啟表單」或是「重新開啟資料庫」,設計才會被顯示,如下圖:

再說一次,不是重開文件,而是重新在Designer裡開啟表單,或重新開啟資料庫。

重新在Designer裡開啟表單,或重新開啟資料庫。

這麼機歪所以說了三次,有點無奈,還在思考其他的解決方法。未來有結果再陸續更新。

2015年9月30日 星期三

Combo box, Checkbox, Radio button disabled後值被清空的解決方法

這是前幾天開發時同事發現的問題,我覺得這問題還挺嚴重,也很重要,所以把過程和結果記錄下來和有需要的朋友分享。

Domino Server version: 8.5.3 FP6

在Web表單中有些Combo box, Checkbox, Radio button,若將其disable,於存檔後,欄位值將被清空,原先在8.5.2時並無此問題!

一般的建議為以隱藏條件取代使用HTML的Disabled屬性,但公司有使用集中安控控管,無法一一修改所有表單欄位,因此開始查看發生原因為何。

最後同事幫忙找到了解決方法,原來是8.5.3在FP2後才提供,但必須在Notes.ini中加一DominoDisableKeywordReset參數,連結如下:

http://www-10.lotus.com/ldd/nd85forum.nsf/DateAllFlatWeb/c5ceb75f77158a4a85257ab000741dc0?OpenDocument

若disabled則顏色反灰,無法編輯,但也導致submit後欄位值將被清空
我實地將表單以HTML格式另存在桌面執行,發現若是disabled則等如無此選項,也不會有值,不是只有在domino上執行會如此。

在設定Notes.ini後,結論如下,

DominoDisableKeywordReset=3

1. 若為新表單,如果此欄位無預設值,手動選擇後再disabled存檔,則欄位值仍會被清空。

2. 若為新表單,如果此欄位有預設值,手動選擇後再disabled存檔,則欄位值為預設值,手動選擇值無效。

3. 若為已存檔之文件,開啟後若disabled再存檔,並不會清空欄位值,也不會變更欄位值。

因此若有新文件不希望讓user自行選擇,但又不能固定給預設值的,除了以上的Notes.ini設定外,我提供一個方法和大家分享,測試程式如下:

在onLoad,Combo欄位給了值後,把其他不需要的值disabled

document.forms[0].fdcombo.options[2].selected = true;

for(j=0; j<document.forms[0].fdcombo.length;j++) {
if (document.forms[0].fdcombo.options[j].selected==false){
document.forms[0].fdcombo.options[j].disabled=true
}
}


checkbox, radio button欄位,radio同combo,未選擇的就disabled。checkbox和另外二者不同的是,再點取自身使可修改為空值,所以不適用上面的方法,但可以將onclick事件改為return false, 在按下時就不會有任何變動。

radio當然也可以改為return false, 但若有不同的event觸發也都要一併更改, 比較麻煩。

document.forms[0].fldCheckBox[2].checked = true;
document.forms[0].fldRadio[1].checked = true;

var Ele = document.getElementsByTagName("input");
for(i=0; i<Ele.length;i++) {
if (Ele[i].type=='checkbox') {
var x=Ele[i];x.onclick=function x() {return false;}
}else if (Ele[i].type=='radio' && Ele[i].checked==false) {
Ele[i].disabled=true;
}
}

這種作法和原來直接將欄位disabled的差別,除了不會有欄位值被清空的疑慮,且只將未選擇的欄位反灰,已選或設定值仍為黑色,反差效果更為明顯。

而Checkbox則仍為黑色只是再去勾選是無效的,能有效避開現有值被修改。

2015年7月20日 星期一

青梅竹馬的祝福(四) 彥智篇

這兩天 ,從我那小學兩年 初中一年 高中三年 大學四年同學(無良木)得知妳在奮鬥人生的大關卡;會持續為妳祈福!加油~ 身為"哥"字輩的妳,我絶對相信妳會過關的!

因為 待字閨中的我 需要
"空姐趴"
"空姐趴"
"空姐趴"

説正格,自從移民外地後;和小時候的玩伴,減少許多的碰面的機會;而這幾天,好像時光倒轉,好多好多歡樂 無厘頭的回憶,反覆廻盪腦海中~

還記得第一天見到妳時,只有一個印象 哇噻!確定彭爸爸沒有跑過船? 說是姊妹 怎麼差這麼多;一個頂著像米粉頭的黑眼鏡姊姊,外加和男孩子般的性格 談吐;另一個則像隻小貓,不僅輕聲細語,還不時用無辜的大眼望著人 (不是妳眼睛不太;是眼鏡太大)

小時候,我是比較害羞的人(現在還是),再加上五下參加了"台北市兒童話劇"比賽,直到六下;所以和妳的互動,大多只有在老師家補習時! 而對我的感覺,妳始終是"哥"們!

青少年時期,我們之間的交流更加少;因為笨拙的我,大多數是在努力唸書~。直到那天,印象很深刻~

鮮少遇到我的隔壁間樓友,告知要一起吃飯,順便介紹女朋友給我認識;基於兄弟情,在忙碌的社團生活中,找到空檔,答應了那次碰面!

對天發誓!直到那天,駑鈍的我,才真正懂得 啥叫"女大十八變"。 還記得在褔園前,那無良木告知妳是他女朋友時,心中只有一個OS: 看~ 我想轉商學院! 無良木這斯的女朋友好正~ ;若連無良木都可以交到美女女友,我們應該可能也可以!(蘋果,我明白妳的委屈;辛苦妳了,委屈二十幾年)

這兩人明知小弟天真善良,竟連手拐我!但真相大白時,那衝擊更大~。惹人厭的黑眼鏡不見了,像米粉頭的頭髮,也變成俏麗短髮;滿滿的笑容,再加上廋身有成⋯⋯ 真是正妹一枚!還記得那天,我們聊天聊好久~~~

出社會後,我因為從事"流浪狗"服務業;移民到"新跪"都市,彼此之間,皆經由無良木得知妳的狀況! 上次同學會時,妳的爽朗笑容依舊,也可能大家都成熟多了;感受到妳的另外一面,貼心 善解人意~,雖然比較多在聊妳妹的情況;但那無良木卻不時透露妳那令人羨慕的情事~~ 還記得妳用哈哈大笑 回應我關於炸彈的事!

雖然稱他無良木,但他的細心,是我應該要學習的!我們會一直持續為妳祈福,也希望妳加油,跨過這難關,用妳爽朗的笑聲,回應上天的安排_這群瘋子,再給我好好修行五十年!

2015年7月19日 星期日

青梅竹馬的祝福(三) 建華篇

我不是上下樓的鄰居,也不是30巷友,但是這一切的緣分來自於林美老師的小型家教班。我的青梅竹馬應該是指小學五年九班的同班同學。林美老師在一次家庭訪問時,媽媽希望老師多教一點,而我就成為這家教班中較資淺的成員(胡椒好像比我更晚進來)。小時候妳戴著黑色鏡框的眼鏡,儼然是正義使者的化身(地下老師),除了詹魯蛋被妳踹屁股的神舉外,身為班長的我,也常常和妳(風紀股長)一起在詹魯蛋的秩序表下方,硬是畫了不能再多畫的'正'字,好讓老師好好的處罰,至今我都為當年的惡行而耿耿於懷。

高中時,偶有見到妳妹妹在南陽街補習外,幾乎和妳是沒什麼交集,直到林老師告別式後,才有更多的接觸,不過那已是進社會的事情了。那時候去過@Live的pub,去過搖頭pub,去過妳的南崁新家,去過很多很多的餐廳,聊天、聊地、聊是非、聊八卦。記憶較深的是,我在華碩時,還特別和妳到行天宮旁的命理店算命,當時算出來我38歲會結婚,想想還真的很準,而妳的部分說是緣分會比較晚,現在看起來,這些副機長的出現,都是妳的選項之一,只是妳選擇不選。但每次聚會,除了聒噪喬木之外,鮮少聊到妳內心的想法,而妳我都是比較內斂的性格,不會隨意的表達出來,通常都是會心一笑。

易經提到:"天行健,君子以自強不息",天道運行,萬物循環變滅有一定的道理,生命亦然。各種宗教信仰,就是在追求永不磨滅的輪迴,無非是另一種生命的延續。自從周遭的親友陸陸續續都生了重病,就連我自己的身體也因壓力而出現一些問題。我去看過許達夫醫師的努力過程,自己也嘗試去了解去調整,的確讓身體狀況改善不少,我深深去相信了解正向能量是可以幫忙自己的狀況。這些正能量,大都由意志、信仰、堅持所產生出來的能量。我的氣功老師也曾提到,練氣功不是用來長命百歲,而且加速生命的循環,坦然面對生命的轉變。我深信,這是每個人都必須歷練的過程。

我站在榮總中正樓,看著來來往往的人,我猶豫思考了許久,現在的妳,急需要這些正能量的幫助,而不是不速之客的我,妳要繼續努力加油,我也會默默的迴向正能量給妳,讓妳能更堅強去面對。而我仰望天上的繁星,久久不能自語,暗自約定,明年春天,不管東方文華下午茶,不管華航空姐趴,妳都一定要參加哦!

2015年7月18日 星期六

青梅竹馬的祝福(二) 喬木篇

我也有青梅竹馬,從有意識開始,妳就住我樓上,還沒上學就一起在門前廣場、馬路及樓梯口走跳。剛升小學時,在陽台拿著湯匙吃飯,妳從樓上陽台看到,先是例行地嘲笑了一下,就說要來我家玩,在妳跑下來時,我趕緊去廚房換成了筷子,從此改掉了湯匙,算是我轉大人的小小關鍵!

小學六年同班了四年,妳們姐妹倆個性差異很大,妳缺少了女生特有的羞澀和衿持,在我們,喔,不是,在那些壞同學霸凌其他人時,妳可是巾幗不讓鬚眉,一個飛踢就對著魯蛋屁股踹下去,啊,我怎麼說出來了。接著我們當然又被處罰了!

在林美眼中,建華胡椒總是包辦了成績排名前二名,是不折不扣的好學生,而妳我卻被歸為頑劣學生的個中翹楚,又愛講話,在座位還是男女分開時,我們可是超有幸破例坐在一起,那是個處罰,雖說是想要使我們難堪,但林美畢竟太嫩,低估了我們的恥度,羞愧感根本不滿一天,馬上又開心地玩在一起,還更方便!

小學後我和建華胡椒等一票損友又幹盡了壞事,雖然沒再拖妳下水,但命運的青紅燈讓我們在大學又見了面,約妳一起去騙了彥智,還在妳的見證下遇到玲鳳,她以為妳是我女朋友,我說不是,但心想,我們的關係比這還長遠呢。接下來的大學生活,我們又是各自靡爛,偶遇時揮揮手寒暄,卻甚少交集,直到多年後參加了林美的告別式。在那之後,我們的聚餐總少不了妳,妳問我,很後悔當初為什麼那麼不懂事去欺負同學,這可嚇壞我們,馬上苦口婆心接力式地把妳拉回原本惡劣的水平才鬆了口氣!

我們一起去了吵到無法聊天的Pub,去了妳的新屋,也彼此分享世界各地帶回來的不值錢紀念品,還見識了妳那帥到不行的副機長x-男友,喔,對了,妳幫我買的志玲娃娃還躺在書房地上,甚至捨不得拆開。我想應該是林美的安排吧,要我們不可放棄這段難得的情誼。

網路上看到一個實驗,驗證人的靈魂重量為21g這實驗很無厘頭,但將靈魂實體化的想法卻也挺有趣,我們無法確實得知那未知的領域,若將它實體化便可確保生命將永恆地存在,這也許是個取巧的辦法,卻讓我有了另一種想法。

在藤子不二雄的短篇集中有一篇故事,年輕人看著豪宅,幻想有一天能晉升富豪,富翁便和他談條件交換人生,他以為這是不可能實現,便和富翁簽了契約。沒想到就真的被抓去一個儀器前,二人的靈魂便交換了。

後續就不多談,但重點在所謂的靈魂交換,不在於二道白煙跑到對方鼻孔,而是記憶的交換。一個人出生後的記憶、思考、感覺、行為模式,把這些組合起來就是完整的靈魂,把記憶交換就是靈魂交換了,就像硬碟資料般地傳輸取代,不需實體轉移,當記憶交換,二人的所有感受就移轉了。

我忽然領悟,所謂的靈魂及生命,就是我們每天睜眼發生的大小事,就是我們對世間冷暖的憤恨喜悅,就是我們對道德及信仰的推崇,對愛情友情的每一次心跳,對青梅竹馬的所有交集細節。

電腦機殼是沒有記憶的,原來生命就存在於每一筆記憶資料中,只要有人記得我,只要能對他人產生影響,只要能傳承下去,生命就是記憶,記憶就是生命,這就是永恆,也是我們彼此存在的證據。

這不是勵志文,我知道妳現在還艱苦地和病魔奮戰,我不會告訴妳很快就會好起來,那是醫生的工作。如果生命的苦痛是人生不可避免的課題,那麼,我們的難題並不在如何消弭它,而在面對它,人生本來就不免讓人流淚,而我們都在共同的道路上,沒有人例外。

妳生病後我們總想著該怎麼幫助妳,取悅妳,胡椒提議去醫院看妳,我覺得不好,我們的力量太微薄,我不想只是用矯情的水果雞精來欺騙自己已經盡了朋友的義務,我希望用文字。用文字來表達心中的憂傷與關懷,用文字來傳遞我最善意純情的希求,用文字來敍述與妳相關或讓妳開心感動的故事。文字會拉近我們的距離,即使我不在妳身邊,也告訴自己及所有的朋友們,這世界的確存在著永恆的東西。

這種體認似乎很難精準地傳達,但我相信妳懂的。我們都有很多回憶往事、青春年少,卻總得匆匆無奈地離開;有無限的未來可能,卻沒有一步可以回頭。明年,就是明年,妳一定得幫我們辦成華航空姐的聯誼趴,而我也答應妳,用春天的鮮花,做為明年見面的禮物。

2015年7月17日 星期五

青梅竹馬的祝福(一) 胡椒篇

我們非常關心妳的近況請放寬心靜養也請以堅強的意志力戰勝此挑戰加油加油!
無義華
鄭龜龜
義氣椒

本想在 Line 上面寫上述的話想不到鄭龜龜竟立即打槍說太官話了

無義華就想到寫張小卡片給妳希望能傳達我們的關懷並為妳打氣鄭龜龜就想在部落格寫些東東。。。果然三人成唬連到底要不要去看妳也莫衷一是妳知道的鄭陳二龜老想太多了,要不然10多年前我說合買華碩股票到現在應已股子股孫滿堂了

我們有時真的想太多了哪有鎮多官話不就單純的想想去看看妳為妳加油打氣但是擔心造成妳的體力負擔不敢貿然前去

幾年前我們家胡阿謙因聽損問題幸虧妳幫忙介紹了榮總蕭主任,蕭主任的確是仁醫我那時去看診也沒將你哥的名號搬出來他也是親切仔細的問診並回答我們的種種疑問,當我憂心忡忡時,蕭主任一句臭ㄚ謙聽力沒有100分也有90分,才讓我放下心中大石,這件事很汗顏的我未曾好好的當面感謝妳而我心中的確感激萬分現在妳正與病痛博鬥我卻未能介紹良醫幫助妳但是乞求老天爺垂憐並祝禱妳能度過難關

鄭龜龜看了又要說我官話連篇為什是官話因為我背負著官二代的原罪ㄚ。。。只因我媽是鄰長這樣會不會影響下一任逮丸總統的競選ㄚ。。。怪了鄰長又沒薪水只有一份報紙這樣也能算是官不如當個祖國的街坊鄰居調解委員會書記該卡有賺頭

對了鄭龜龜在我們家少爺跟小姐面前粉討喜的他現在可是納豆叔叔不知這是不是對納豆的一種侮辱。。。

小學時妳帶著黑框巫婆眼鏡欺負詹魯蛋同學的影像歷歷在目建華對春美同學眉目傳情的豬哥樣也彷彿是昨日一晃眼我們頂上應都有白髮了除了不愁吃喝的富二代,納豆王彥智聽說去念了EMBA,不知現在是否已成親了不過可以確定的是蔡阿勳同學已是癡肥的老伯了。陳龜龜從小就帶壞我們突然想到他曾帶我們從林美家二樓樓梯口跳到一樓果然光陰比箭快也突然想到華好久沒請客了我上個月去倫敦出差為大家買的義氣禮物早已到港請快來領取ㄚ陳龜龜現在窮的只剩下錢應該會請我們文華東方下午茶吧。。。祈求上蒼恩澤。。。

2015年4月9日 星期四

歧視

http://www.wetalk.tw/thread-25762-1-1.html

原文如上,這哪有扯,扯的是就業服務法吧?

就業服務法 第 5 條        
為保障國民就業機會平等,雇主對求職人或所僱用員工,不得以種族、階級、語言、思想、宗教、黨派、籍貫、出生地、性別、性傾向、年齡、婚姻、容貌、五官、身心障礙或以往工會會員身分為由,予以歧視

有沒有看到哪裡不對勁?

我今天開公司,想花錢請人來工作,需要交代為什麼我不錄用他嗎?

不用吧?

我想找個英文翻譯,來了個法文體系的,我可不可以和他說,對不起,我不需要會法文的人?

蛤?這是違法吔!

我今天想找個男生來搬重物,結果來個瘦弱無力的女生,我可不可以和他說,對不起,我需要的是男生?

幹,這樣也違法!

我想去美國擴廠,先找個美國人,因為他對美國的人事物比較了解,行嗎?

靠,這樣也不行!

這根本是惡法來著,凡是以不合理的法律限制人民的,全都是惡法。這種齊頭式的假平等,是你們想要的嗎?

現在沒發生是因為,大家把真正的原因放心裡不敢說出來,但,為什麼不敢說?

你們想想,如果沒了這條法律,人們會有什麼影響?

沒有,什麼影響也沒有。

公司不會因為沒了這條法律,就不錄取該錄取的人。如果他因政治立場、性傾向而不錄用你,那也是他的自由,那麼,大家就用道德、輿論或經濟來扺制他吧

我要再強調的,道德從來就不該是攤在法律上對別人加以審判的規範,今天因為擔心傾斜,就用個條文來平衡,日子久了,勢必又造成反向的傾斜。

就像原住民保障名額或加分制度,或婦女保障名額,這全是不合邏輯的惡法啊。

你要想的,應該是讓原住民擁有更多的基本資源,使他們不再弱勢,還是不管根源只要幫他們加分?

難道他們會因為加分而使得底層更有競爭力?加分難道不會削弱他們的自尊心?

而保障當選的,是一個能力不如其他候選人,卻只是因為她是女人就安全保送?

這些是真公平嗎?當你立法支持這些人,或這種現象時,是不是又是促成另一種壓迫及不平等?

回到原來的議題上,什麼是歧視?歧視就是不接受和自己不同的人,有可能是種族、階級、語言、思想、宗教、黨派、籍貫、出生地、性別、性傾向。。。

本來就都有可能啊,青菜豆腐每個人的喜好都不同,為什麼一定得接受?

如果我去應徵,老闆一臉色相,我可不可以說我不想做這份工作?老闆可以告我嗎?

如果我去應徵,老闆看我政治傾向和他一樣,一高興就錄取,這可不可以?可以因為一樣而錄用,卻不能因為不同而不錄用?為什麼?

用歧視的字眼太過強烈,這麼說吧,我喜歡D奶正妹,她喜歡有錢型男,這是個人自由啊,那未達標準的,可以控告我歧視嗎?可以嗎?可以嗎?

既然我們可以依著自己的喜好加以選擇,那別人。為。什。麼。不。行?

我支持同性婚姻合法化,但不贊同將同性戀寫進特例的法條中,去助長同性戀的優勢,可不可以就像柯P說的,各取所需,井水不犯河水,你愛選什麼就選什麼,我們樂觀其成,他們就像我們一樣正常,只是選擇不同罷了。

我在想,又有人要說我是歧視,或是如果哪天我被歧視就知道了。。。這種話聽多了真的很沒營養,總之,我所追求的,是真的公平正義,是沒有加以粉飾的真正民主。That's all~

2015年3月8日 星期日

泰國之旅有感

和我熟識的朋友們也都該認識胡椒,他是損友界的佼佼者,能和他出遊的條件頗為嚴苛。但用過一次也都知道,我是個不錯的玩伴,吃苦耐勞又隨和。幾年前胡椒找我去海螺溝,食髓知味,再次邀約過年前前往曼谷及清邁一遊。


五六年前換工作的空檔時,也曾和老楊到曼谷自助旅行,那時還沒有紅黃暴動,Central World也還沒被燒掉重練,我不打算在部落格寫些介紹景點的遊記,一方面白雲蒼狗,且那不是我的初衷,我更希望在文字間能適時傳達些理念和價值觀。所以,就談談我所知道的泰國吧!

(還未燒掉前的Central World)


泰國去年雖因政經變動而使旅客卻步,但在觀光人數上仍突破三千萬人次,這數量相當驚人,且幾乎集中在知名景點或都市,也使得泰國的國際化及城鄉差距更為極端,這種差距不僅表現在曼谷和其他地區的比較,即使是第二大城清邁,也有如台北及台東的硬體差距並不誇張。

以前申請泰國簽證費用為850,上次去時因推行觀光而免費,當天早上辦下午領件,相當方便。泰銖和台幣的兌換大約是一比一,比價容易,不用再花心思轉換。現在費用漲為1,200,亦提供落地簽,別說觀光客帶來多少經濟效應,光簽證收入每年就從天上灑下數百億,這應該就是躺在家裡被錢壓得喘不過氣的寫照吧。

身為官二代的胡椒(胡母官拜中華民國鄰長一職),對吃的衛生相當重視,我也因此失去許多品嚐在地美食的機會,但我的委屈絕對不止於此,出發當日為情人節,且再隔天為胡椒生日,這讓我背負了來自胡家商女的不小壓力,根據胡椒轉述,胡家商女不滿地抱怨,「為什麼情人節你和喬木手牽手去泰國旅館開房間?」這誤會可大了,但顯然不是只有她這麼想,貼心的旅館人員在我們外出時,在床上放了浪漫的花朵,我仿佛又聽見來自2500公里外商女輕輕吟唱的後庭花!

泰國的宗教色彩很濃厚,男生當兵是抽籤決定,但出家卻是必要,可能因為篤信佛教,治安比想像中好很多。和尚在泰國擁有超凡的地位,不但可以結婚生子,在捷運上看到和尚還得讓座,聽說即使泰皇也不例外。在Taxi上我和胡椒解釋泰皇如果掛了,可能會引發的政治衝突,胡椒這小孬孬張大眼睛瞪著我,緊張地說,說這話是犯法的,我心想,這廝留在台灣實在可惜了!



泰國土地為台灣十多倍不止,但人口只有台灣的三、四倍,且大多集中在曼谷。打聽了一下,小資上班族每月所得約7000左右,即使Cost of living 較低,要過揮霍的日子仍不可得。但因失業率十分低,最近剛出爐的全球幸福感指數,泰國竟高居世界第一,而第二名才是我們不會覺得驚訝的瑞士。

政黨大致可依顏色區分為紅黃二派,和台灣有些類似,分別是以支持塔克辛和其親信及妹妹盈拉等的紅衫軍,及反對的黃衫軍。曼谷的天龍國中產菁英有很大比例的黃軍,掌握國家的軍政經資源。但更大比例的外圍農民全是塔克辛的信徒,在公平選舉下塔克辛等人理所當然地陸續進軍殿堂,提供了底層人民醫療及優惠貸款等德政,即使被指控貪污罪證確鑿,仍是履戰履勝。但黃軍挺沒品,想盡辦法驅逐出境或找莫需有的罪名硬是把當選的領袖拉下台。這樣好像覺得我們和泰國又更近了些。

然後,和大家所想的差不多,泰國的性產業相當發達,夜晚路旁的七彩霓虹燈透露著人類底層的真實慾望,我們看到許多熟門熟路的歐美勇者,酒吧裡甚至還有等待恩客的小男孩,這估計是泰國最大的外匯收入了吧。這時又開始扼腕,繁衍知識的啟蒙宗師缺席(內行的就知道是誰了),我們只敢站在遠處偷偷地評評比照照相,且雌雄難辯,此趟旅行就遇到了三四位變性人,包括一位飯店服務人員,可能因為那小小的誤解,所以幫我們把房間升等了。這也可側寫出泰國人對性多元方面可是相當包容及開放。 

曼谷的天氣幾乎沒有四季分別,在夏天時近40度高溫也不稀奇,要塗點防曬,天熱時只要走一個早上就可明顯看出皮膚色差。但冬天竟也高達28度,有時會下短陣雨,但很快就停,像沒發生過一樣。所以去曼谷是不需要帶外套的,也幾乎沒看到人在賣冬裝,只要帶短袖短褲和夾腳拖就夠了。若去大皇宮參觀,雖會要求著長褲,但也可付100元押金租借公用的長褲。但位置較北的清邁就顯得清爽些,白天溫度比曼谷低三至四度,以居住條件來看,似乎更為宜人。

曼谷女生性感指數完敗台灣,走在地鐵站看到女生事業心都十分強烈,且OL流行窄裙,泰國人幾乎沒看到胖子,可能和飲食文化及天氣有關,窄裙雖稱不上時尚但曲線普遍還蠻好看的。泰國大學生也得穿制服,且似乎每間學校的款式都相同,白色薄襯衫,帶著青春洋溢的生嫩感。我接著又想到七八年前看的泰國電影「愛上暹羅」,那種帶點清新的哀愁,其實和我對泰國的印象是相符的,有興趣的朋友可以去找來看看。

泰國最讓我印象深刻的就是便宜又大碗的泰式按摩,之前曼谷二小時只要250,但這次找不到門路,路上撞見的硬是都貴了一倍,但二小時500仍是台北一半不到的價格,相當划算。清邁物價較便宜,按摩每小時也少了50元。但不論是曼谷或清邁,我覺得按摩的力道和手法,卻比不上在台北來得深入我心,可能是我們搭配台式按摩加以改良了吧。

在物價低廉的表現上還有一個明顯的例子。曼谷幾乎沒有門牌,找路十分困難,這時就更突顯Taxi為最好的代步工具。駕駛為右駕,起跳35元,每次加跳2元,若是四人自助旅行,完全用Taxi代步是最划算的方式,比捷運還便宜。清邁Taxi雖為喊價,但有類似的Red Roof(紅車頂),車價硬是又比Taxi再少了一半,而三輪的嘟嘟車價格介於二者中間,是觀光客的最愛。或是在曼谷還有用機車載送,以短程單人為主,每趟十或二十元。
(這是Red Roof,只是被飯店改成綠色的了)



(專給觀光客坐的嘟嘟車)

可惜有一好,沒兩好,交通有個致命的問題。 高速公路速限120公里,一般道路80公里,但不可能,因為隨時都在塞車的狀態,這時不得不誇曼谷的駕駛耐性超好,可能是太習慣塞車,幾乎不亂按喇叭,有次塞得太嚴重,車子竟然整排自動調撥車道,對方來車也習以為常地避開那線,這種法制外的協調性真的是太強大,也太超過了。

接著說捷運,曼谷捷運有分MRTBTS二種,MRT是地下化的,就像我們的板南線。而BTS是高架,就像我們不會抛錨的文湖線,這些和台北都差不多,分佈範圍卻不如台北的廣泛及便利,且二個系統沒有直接連結,若要換系統則需先從出口離開再去買票進入另一系統,很不方便。但值得一提的是BTS在精華區裡還結合空橋,這種人車分離的概念十分值得推廣。
BTS下方設為sky walk,隱約可看見後面馬路永遠都在塞車)

大城市幾乎都依偎著大河流孕育而生,曼谷也不例外,湄南河流貫其中,水上巴士也因而成為重要的交通工具,雖然不會塞車,但班次不夠密集,且標示不清,我就坐錯過一次,好吧,也許不是他們的錯。

曼谷的機場是「蘇旺納蓬」,比起桃園機場,實在忍不住想給它按一個讚字。但另一間廉價航空專用的舊機場「廊曼機場」就叫人不敢恭維了。廊曼機場最神奇的,倒和硬體無關,而是在二個跑道中間,竟然有個高爾夫球場,這到底是怎麼樣的概念?但其實我還蠻好奇這種打球時卻在紅燈等飛機開過的感覺。
  

(這是上次去時硬體很棒的蘇旺納蓬,廊曼就不放圖了)

以上說的大多還是以曼谷為主,再談一些關於清邁,一般人對清邁的印象可能都浮現出古城、夜市、大象等景象,但這幾年來清邁發展速度加快,陸續出現了幾間大型購物中心,並發展出特色商圈,成為宜古宜今、有叢林有水泥的多面貌都市。之前去清邁住的是最高檔的清邁四季酒店,強調的是與自然結合的住宿環境,住一天房的list price幾乎就相當我整月薪水。好笑的是最貴的房間竟是面對梯田,而這梯田還真找了些農民來下田耕作當做人肉佈景,可能對好牙的阿多仔而言,晨興理荒穢,戴月荷鋤歸的生存景象,才是最美的畫面吧!
(超奢華的回歸自然,清邁四季酒店)

(清邁七百年古城)

(路邊小吃的賣相也都很好)

(清邁新興區「尼瑪漢明路」附近的店都很有趣)

(清邁「尼瑪漢明路」附近的咖啡店也都很有個性)

(清邁「尼瑪漢明路」)

(泰國食物口味和台灣其實蠻接近的)

原來的廉價航空亞航停駛台灣泰國航線後,泰國機票一路飆漲,直到今年開始有二家新的廉價航空(威航和虎航)直飛曼谷和清邁後,清邁因而翻身成為台灣人度假的最佳選擇之一。我順便來做個不負責評比,亞航停飛一點也不可惜,先別提不久前才發生的飛安事故,不論服務或各項硬體看來,亞航絕對是敬陪末座。三家都是Airbus,亞航和虎航為A321,目測旅客約為210人,而威航A320雖然機身略小,約180人上下,個人座位卻寬敞許多,且服務方式一反制式化的老航空,反而成為醒目的獨家特色。虎航也是主打年輕化,且在機上還直接來場抽獎贈機票的活動也是挺歡樂的。
(威航熊熊航空的空姐都穿著七分袖七分褲,還加霹靂腰包,走年輕路線)

(虎航一上機有當場抽獎活動)

泰國人給我的感覺是溫和有禮,亂中有序,自尊心強,生活雖不如台灣富裕卻相當有骨氣。泰國的勞力輸出在台灣是重要的來源,我們習慣以泰勞或泰傭等帶貶詞語稱呼,以致看待這民族的眼光都帶些偏移,但這景象在未來三年內應成絕響。下次去泰國,別只忙著逛街血拼,也許,關了燈光,才看得見那從未停止閃爍的螢火之燭!
(泰拳觀眾幾乎都是為了賭注而去)