2015年10月30日 星期五

python3中使用http.server撰寫web server的感想

感想很簡單:好像不太穩定,頻繁連線後、開啟超過一天,似乎都容易發生回應速度變超慢的情形。如果要長期開啟,還是使用django吧。

2015年10月25日 星期日

二二八事件與南京大屠殺

幾十年來,很多二二八事件(民國36年初)之後才出生的人,說國民黨在二二八事件殺了很多人。最近,也有一些人在網路上,說日本南京大屠殺(民國26年底)是國民黨假造的歷史。

電腦科技的發達,讓有心人更容易在網路上製造分身,大量的造謠、按贊、和攻擊。其實仔細想想,南京大屠殺當中的生還者現在78歲以上,而二二八生還者68歲以上,扣掉年紀太小沒記憶的,加個5歲分別是83和73歲,把他們找出來問一問,就可以拼湊出發生了什麼事。

正好,我有同學的父親,在南京大屠殺發生時,就在南京。他辛苦的東躲西藏,保住小命,二戰結束之後來到台灣;另外,我也有親戚在二二八事件時,是留在台灣的外省人,差點被殺;還有別的親戚,民國38年才來台灣,問起台灣的本省人什麼是二二八,得到的答覆是「我們本省人在二二八,殺了很多你們外省人」,而這些人目前的年紀大約80左右。

以二二八的死傷來說,應該是有些外省平民被本省平民殺害,而有些本省平民被國民黨軍殺害。沒出事的外省人家庭,之後才敢繼續留在台灣;沒出事的本省人家庭,也可以拿外省人被殺來說嘴;最可憐的是家裡有人出事的家庭,他們至少一兩代會陷入長期的悲痛中。

不過,我們的歷史課本沒有忠實的寫下二二八當中,外省族群受害的事實。課本就將這事忽略了,原因在另一篇「歷史課本的舊課綱與新課綱:舊課綱究竟暗藏了什麼手段?」中再詳述。

歷史課本的舊課綱與新課綱:舊課綱究竟暗藏了什麼手段?

從去年年底開始,就有一連串反黑箱課綱的行動。他們名目上是反黑箱課綱,實際上他們更反的是新課綱當中,加入了一些明顯給國民黨好評的句子。最後,教育部以新舊課綱並行來解決爭議。

新課綱為什麼急著美化國民黨呢? 我們不妨先來看看舊課網作了什麼事。

直接一點來說,我認為舊課綱的主要目的,就是破壞國民黨形象,以謀求長遠政治利益和選舉勝利。怎麼說呢? 舊課綱當中,先假藉以台灣土地為出發點,講了很多日據或日治時期的建設,然後提到中華民國時期的二二八和白色恐怖。整個課本看起來好像都說了「事實」,但是那些厲害的學者們藉由隱藏另一些事實來打擊國民黨。例如日本人對本省人的暴行,還有二二八一開始時,本省人殺外省人的暴行。我們的孩子們唸了這些教科書,心中就會有國民黨不好的印象,等到長大有投票權時,票就比較不會投給國民黨。

整個操作手法,就是多提日本人和本省人的好事、多提國民黨的壞事、少提日本人和本省人的壞事,久而久之,孩子們就容易因為對比,而有反國民黨的傾向。這也是為什麼有些人會宣稱慰安婦不是受迫的,因為塑造日本的好印象,就可以對比出國民黨的壞印象。那些操作舊課綱的人,就是利用這種「隱我之惡,揚你之惡」,「隱你之善,揚我之善」的手法。

舊課綱有沒有達到效果? 有的,看到一堆高中生出來反對新課綱,就知道他們已經被舊課綱嚴重洗腦了。

當年國民黨應該是中計了,才會讓這所謂的舊課綱通過。將二二八、白色恐怖列在課本上,只要用「承認有利於族群和解」的堂皇理由就好,但是他們沒有更仔細的想想,這個課本究竟是什麼史觀。這是「台灣土地史觀」,還是「本省人史觀」?

一個國家的歷史課本,常會有些「隱我之惡,揚我之善」的操作。單一族群國家比較容易有全國共識,而多族群、彼此以前有衝突的國家比較難。例如西班牙,到現在國歌歌詞還搞不定。我們的課本史觀,是「利用台灣土地史觀偽裝的本省人史觀」。有心者利用台灣土地之名,不提二戰台灣是戰勝國還是戰敗國;而有心者在提二二八時,就切換到本省人史觀,故意忽略本省人殺外省人的事,另外也不提祖先來台灣殺原住民的事。

明眼人看這事,當然知道在搞什麼把戲。王曉波可能發現了,所以新課綱想那麼改。他的手法太差,應該要以族群融合為由,將以前本省人作的壞事一起列入,讓歷史課本變成互掀瘡疤的課本,大家把帳一次攤開來才有真正和解機會,也可沖淡對比效應。

最後,我個人是覺得,國民黨和民進黨都要倒一倒,台灣才可能會更好。利用歷史課綱,對國民黨已經有些效應出來,但是這個手段即使打倒了國民黨,也會製造更多的族群對立,瓦解大家基於台灣土地上的團結。長遠來看,符合某方的政治利益,但是可能不會符合台灣的整體利益。天祐台灣囉。

2015年10月24日 星期六

蔣渭水的中國思維與抗日證據

蔣渭水先生,是台灣宜蘭人。在日據時期推動台灣文化運動,爭取台灣人政治地位。他的行動是階段性的抗日,他想藉由推動台灣文化和參政,避免台灣人全盤被日本化。先維持不被日本化,將來再趕走日本人。


如果趕走日本人了,蔣渭水先生是想台灣獨立,還是想回歸中國? 他應該是想回歸中國的,在Wikipedia上有證據。他所成立的台灣民眾黨,兩個版本的黨旗和中國民國國旗的相似度極高(Wikipedia連結,如果失效表示有人去破壞了):







如果說這兩面旗子和中華民國國旗只是巧合、撞旗,那就像是說吾黨所宗的「吾黨」是吾輩、吾人,而非國民黨。也因此,日本人容不下他,他的企圖太明顯了,根本就是抗日親中。

2015年10月16日 星期五

python:正在執行的script如何取得自己的檔案名稱


在python script當中:
  1. 可以用 __file__ 來取得script的檔名
    • 比較新的版本會取得完整路徑,比較舊的版本有可能會取得相對路徑,可以呼叫 os.path.realpath(__file__) 來轉成完整路徑檔名。
  2. 可以用 sys.argv[0] 來取得 script 的檔名
兩者的差別在哪呢? 以下是一例,假設我們寫了一個 main function 如下:
  • A.py
#!/usr/bin/python3
# encoding: utf-8
import sys

def main(argv):
    print(__file__)
    print(argv[0])

if __name__ == '__main__':
    main(sys.argv)
後來,在另一個B.py中,我們發現可以直接使用 A 的 main(本例過於簡化):
  • B.py
#!/usr/bin/python3
# encoding: utf-8
import sys
from A import main


if __name__ == '__main__':
    main(sys.argv)
執行結果,A.py會印出 A.py、A.py,而B.py會印出 A.py、B.py,這就是兩者的差別。在寫重覆使用的模組時,要根據所需要的效果來挑選正確的用法。

2015年10月9日 星期五

Python 的一些 list 操作

  • append, extend, 和 +

>>> a = [1,2,3]            # 將 a 設為 list
>>> a.append(4)         # 將 4 附加到 a,a被修改了,呼叫之後回傳None。
>>> a
[1, 2, 3, 4]
>>> a + [4]                 # 呼叫之後回傳「4 附加到 a」,不會更改a。
[1, 2, 3, 4, 4]
>>> a                         # a沒被修改
[1, 2, 3, 4]
>>> a + [4,5,6]           # 會回傳「4,5,6 附加到 a」,不會更改a。
[1, 2, 3, 4, 4, 5, 6]
>>> a
[1, 2, 3, 4]
>>> a.extend([4,5,6])   # 效果和 extend 類似。不過extend也是直接修改a、呼叫時回傳None。
>>> a
[1, 2, 3, 4, 4, 5, 6]
>>> print(a+[7,8])                   # 直接要將list合併之後的結果當參數時,要用+
[1, 2, 3, 4, 4, 5, 6, 7, 8]
>>> print(a.extend([7,8]))       # 如果誤用extend,會變成傳入None。
None
>>> print(a)         # 事情也不嚴重,先extend再傳入就可以了。關鍵在你想要a之後保留哪個值。
[1, 2, 3, 4, 4, 5, 6, 7, 8]