2012/09/07

[douzi] 我與豆子的相遇

小豆子剛做完結紮手術
小豆子害怕烏龜
2001年時,我姊在台大哲學系校園,撿到一隻全身米黃色的小狗,叫「小豆子」。一開始,我不喜歡小豆子,我覺得他好笨,他都學不會在正確地方便便尿尿。因為一直教不會,我就用最嚴厲的方式教他,他一尿錯地點我就把他抓到前陽台鎖起來,他想逃離我又把他抓回去。結果,小豆子好害怕,兩隻黑不溜丟的小眼睛望著我,坐在前陽台都不敢動。

直到有一次,我帶小豆子在秀山國小運動慢跑,在愛買量販店前面的台階時,我看到豆子一邊跑步,一邊帶著純真無邪的笑容,剎那間,我被豆子萌到了。我發誓,我從此要為了守護豆子純真的笑容而活。我要給他無微不至的照顧,讓他幸福。








江波與小豆子
我晚上睡覺時,小豆子都會伴我身旁,在床腳旁邊睡。有一次,他半夜睡不著一直咳嗽,我帶去給醫生看,醫生聽診後說豆子是心臟瓣膜有問題。從此我就一直不斷買寵特心寶,每天給豆子服用保養心臟。











小豆子吐出的牙結石
小豆子由於不愛吃硬硬的乾狗糧,只愛吃軟軟的白米飯,長久下來有嚴重的牙結石。我想帶去給醫生洗牙,但醫生說他年紀老,怕他麻醉後會一覺不起。從此我就每天用手指套每天給他刷牙,刷了一年後,有一次他很興奮地叫時,竟然把牙結石吐出來了。











小豆子耳後的瘤
我每次都親自幫小豆子洗澡,有一次竟在他右耳後方摸到一顆瘤,我很害怕是癌症,不斷地帶去給成蹊動物醫院做觀察,不過瘤沒有變大,我就安心了。
 

我怕小狗們在家無聊,就去買訓練小狗的書來看,現學現賣。我已經用響片訓練教會小豆子做:坐下、趴下、站起來、巴庫(倒退)、轉圈圈。

草地上打滾
週末有空時,我們家喜歡帶小狗們去河堤公園。小豆子一看到綠草如茵,就高興得瘋了似,不斷地在草地上打滾。小豆子一定是太愛綠草了,希望讓身上抹夠所有綠草的氣味才甘心。








眼周明顯年老的豆子
不過我儘管我做了那麼多的照顧,只要小豆子身體一出現異狀就立刻帶去醫院,黑天鵝總是在意想不到的地方出現。








昨天早上,小豆子很意外地不想喝牛奶,連他最愛玩的響片訓練也不玩,零嘴也不想吃,只是躺在地上噯氣。我覺得很奇怪,小豆子昨晚完全沒有吃晚餐。我馬上帶小豆子去看醫生,醫生檢查一下牙齦,發覺牙齦非常蒼白,我想到我昨晚給他刷牙時竟然沒有發現到。抽血檢查後,發現豆子的鈉鉀離子非常低,白血球很高,可能是身體某部份發炎。我那時直覺想到2005年黑皮是腎臟炎過世。我認為幸好我及早發現救了小豆子一命,應該只要在醫院打點滴,傍晚我就可以接小豆子回家了。
住院打點滴

我安心去上班後,在兩點五十分突然接到電話,說小豆子哀嚎一聲後休克了,我十萬火急趕到醫院,就只看到小豆子趴在診療台上,醫生說小豆子在兩點五十分逝世了。雖然打了點滴,但仍然趕不上離子流失的速度,所以就休克身亡。



喜歡吃野草的豆子
我實在不敢相信,小豆子在家中是最年輕的弟弟,而他的身體是照顧得最好,我前一晚還在跟小豆子開心地玩遊戲,他是那麼地投入,怎麼會突然過世呢?醫生說這症狀可能是重金屬中毒,可能是除草劑中毒。我想到,我爸下午時常帶小豆子去逛街,而小豆子很喜歡咬路邊雜草,把雜草當做口香糖來嚼,可能是不知不覺吃到。而那劑量又低,所以就慢慢地侵蝕他的身體。

今天早上,我們家三姊妹帶小豆子去寵物火葬場火化,我途中只流了少許眼淚。雖然小豆子離開了很可惜,可是我覺得無愧於心,我在小豆子每次最重要的時刻都陪伴在他身邊,我盡力地照顧他,沒有虧欠他。



小豆子!無論你之後要往何處,你都是我好的弟弟。我也會記住,跟你相遇的每一次的快樂時刻。

2012/08/18

[Calcutta Indian Food] 加爾各答印度料理餐廳搬家了

我本來喜歡吃的西門町美食--加爾各答印度料理,本來是在昆明街誠品大樓對面,前兩星期臨時想去吃時,竟然不見了,變成中華電信門號店了。



回家上網一找,原來他搬到萬年大樓地下美食街了。今天看完電影後到萬年大樓來,逛一下陪伴我高中歲月時的動漫精品店,以及地下室的印度咖哩店。



進去點菜時,菜單的菜色以及價格都沒有變化,他的香料羊肉咖哩還是一樣又香又好吃,可是怎麼餐廳的客人少了一半?以前常在這兒常看到外國客人來吃,現在四桌中只有一桌是外國人,而且還是本國人帶領進來。

結帳時問老闆,果然,又是店租漲價的問題。他原本在昆明街一樓的店租是一個月十萬,但中華電信想要搶他的那地點,就向房東出兩倍的價錢。老闆的小餐廳無法負擔一個月二十萬店租的成本,所以只好搬到萬年大樓地下室。萬年大樓的地下美食街,雖然人潮很多,但大多是學生族群,他們的消費多在一百元上下,而加爾各答最便宜的套餐也要220。難怪很多學生族群在店門口前觀望一下菜單就離開了。

我在萬年大樓四樓逛時,再也找不到以前那些動漫精品店。取而代之的是iPad、iPhone手機包膜、韓國偶像精品,唯一剩上跟動漫有關的是賣模型。沒想到蘋果、三星這些手機帝國不僅打垮了台灣的電子業,連看似跟手機毫無瓜葛的餐廳、動漫精品店也受到影響!

網路、手機等行業的興起,不只是音樂產業受影響,連不相干的餐廳也受池魚之泱。如果這些人因經濟結構轉型而失業,政府又不可能輔導全部的人都去寫手機APP,這該怎麼辦呢?

Two weeks ago in XingMengDing, I planned to go to Calcutta Indian Food, to enjoy their mutton masala curry, but the restaurant was gone! The original site on No 126, KunMing street is replaced by ChungHwa TeleCom store. I returned home, and searched for the information of the Calcutta Indian restaurant. I found the store is moved to Basement of WanNian Building, in XiMengDing.

This evening, I went to the restaurant in the basement of WanNian Building. Their mutton masala curry is still delicious and yummy. However, the number of guests coming here is reduced to only half of the past. While paying the bill, I asked restaurant owner. As I expected, the landlord raised the rent. ChungHwa Telecom coveted their past site, and bid the rent to double, as two hundred thousand NT dollars per month. Therefore, the owner can't offer such higher rent, and moved their restaurant to the basement of WanNian building.

The confluence of crowds in WanNian seems large, but most of them are students, whose levels of consumption are around one hundred NT dollars. The lowest price of Calcutta Indian Food is two hundred and twenty NT dollars, which is not an affordable price for crowds of students.

I browsed the fourh floor of WanNian Building, and I couldn't find any merchandising of the Anime and Manga which I've seen during my youth ages. Most of them are replaced by merchandising of iPhone and iPad. The rest of stores, that at most can be categorized as Anime, are selling model figures. I can't imagine, even the restaurants and the anime merchandising sotre, which were thought as the most unlikely victims, are also suffered by the invasion of Apple/Samsung smartphone empires.


2012/07/18

[Moe-Economics]每個人都需要萌物

我小時候喜歡看日本動畫,尤其是裡面有著美少女,如亂馬、福星小子、綾波零。但為何,我長大之後(約23歲後),我漸漸熱忱消退,萌物對我的吸引力越來越低?

有可能是我喜歡上照顧我們家的小狗,如小豆子、江波。但為何我不是更早之前就喜歡上寵物?(江波是在我21歲就來我家)對此的解釋是變性、荷爾蒙的轉變。

我曾經看過有人做過實驗佐證男女大腦真的有別,男人比較偏愛無機物,女人喜歡活的生物。有人給才剛出生的嬰兒看照片,發現男嬰比較愛看機器人,女嬰比較喜歡看人臉。

不論怎麼樣,每個人都需要萌物的陪伴,活生生的寵物也好、Love Plus 的虛擬情人也好。不管是小孩子、成年人、老年人,都需要有萌物陪伴。不論是腦海中想像出來的,還是實際生存的生命。

我在國小三年級前,常幻想有一隻迪斯尼小木偶中的小蟋蟀陪伴我,在我寂寞地躺在床上望著天花板時,他會出現在天花板,跟我聊天講話。這隻小蟋蟀陪伴我到了四年級後就漸漸消失了。之後陪我的是雪子姬與亂馬。
我也常偷觀察別人喜好什麼,辦公室大部份男同事都是動畫美少女、韓系偶像、日系偶像,女生則喜歡Kitty貓、米老鼠,有些人則不明顯,我猜可能是因為家中有生小孩了,小孩就是他們最值得寵愛的萌物。這更佐證了我提出的理論「每個人都需要萌物」,每個人都需要有個更柔弱的對象,可以保護、可以陪伴、可以寵愛。

[Self-Discipline]自律學習 vs 他律學習

最近左腳跟又痛,可能是穿了鞋墊太薄的鞋子引發的足底筋膜炎。

我在清晨提早起來,做瑜珈拉筋來伸展左腿。最近太少練瑜珈,左側筋肉又開始孿縮起來。我關掉冷氣、電風扇,關掉一切的噪音,一邊做瑜珈一邊回想老師是怎麼教我的。

筋肉是怎麼越拉越長的呢?一般人想到的就像折斷一根壓克力棍一樣,用外力向前彎、向後彎、向左彎、向右彎,這樣子各種方向都來回彎過,棍子就斷掉了。

如 果只是想到「用外力」來拉長,我發覺就算肌肉拉長了還是一樣羸弱。肌肉不是棍子,肌肉是隨意肌,是可以自己靠意志伸展的,外力只能當做輔助力量,最重要還 是靠肌肉自主的伸展。用外力輕輕地推、微微地拉,讓肌肉感覺有一點酸痛,外力若是操之過猛,不僅無法拉長筋肉,反而可能拉傷筋肉導致孿縮。

這讓我想到「揠苗助長」以及學習理論。


在史金納的操作制約箱子裡,可以讓鴿子學會開門、按按鈕、各種機關。史金納並不是用手強拉著鴿子的喙去碰開關,而是讓鴿子自行去探索,等待它做出正確行為時再它獎勵。
教小狗學會新把戲也是一樣,你的口令一講出來,不能總是強壓著小狗的身體要他坐下、趴下。你要有耐心,給小狗一點時間去探索各種可能,允許給小狗犯錯的空間,這樣小狗才學得會把戲。

自 律學習是好的,我們都說小孩子自動自發去讀書是最好的。但自律還是有分,是因為恐懼、害怕被老師打而去學習,還是因為了自己的好奇心、求知欲,因為知識是 對自己最好的獎勵而去學習的?如果只是內在的恐懼驅趕自己去學習,這方法用久了會得憂鬱症。為求知而求知,知識就是最好的報酬,這種「正增強」法則,才是 自律學習最健康的實踐法。

2012/07/11

[Revolt for You]「我幫你反叛」-為什麼有時我們會想贊助別人,卻不求回報?

人世間有很多經濟行為無法以單純的市場規範來理解: 銀貨兩訖,一手交錢,一手交貨(或服務)。

法國社會學家Mauss有本書「The Gift」談人世間的饋贈行為。好比說我們去親友家婚宴場所,要送紅包禮金去。雖然表面上我們是不求回報,並不期待說對方在我或我小孩結婚時要連本帶利還 我,但多少我們會希望藉此機會跟對方打好關係,以後在外打拼時能貴人多相助。

但人世間還是有些饋贈行為是我們不期待對方欠我們恩情的,比如說親情。我有個朋友很節儉,沒買車沒買房,都搭大眾運輸工具上下班。但最近卻為了能讓自己養的小狗多到戶外玩,而買了一輛車。


還有一種饋贈行為是-「我幫你反叛」。因為你幫我達成了我所處位置、所受困體制中不好達成的事,所以我送錢給你、贊助你。比如說龐克搖滾樂團「性手槍」,他的音樂也沒多好聽,但為何我們在台下力 竭聲嘶,無怨無悔要送錢給他?因為他唱出了我們的怨氣。他敢衝敢撞,幫膽小的我們達成了心願。雖然他的訴求是要反叛資本主義、消費主義,但我們用買他專輯、 演唱會票方式來表示對他的熱情與支持,卻無形中又被消費主義給招降納叛。

又比如說大陸知名作家韓寒,許多大陸網友們盡管對中共的體制不滿,但也只敢在網路上寫短句、用同音字、縮寫諷刺一下。但韓寒文章組織能力好,文筆尖銳,有勇氣敢指名道姓,幫許多文章寫的不夠好、話語權不夠強的網友一吐怨氣,所以網友希望用付錢、成為粉 絲的方式來贊助他。

2012/06/12

[Shyness] 狗狗會害羞嗎?

狗狗也會害羞嗎?

自從我買了Dog-it這個狗玩具後,我發現只有江波在玩,我要給小豆子玩時他就嚇得逃掉。我覺得很奇怪這個玩具又不會發出怪聲或蹦出怪物,小豆子為何會害怕?我一開始想說可能是每次都江波搶著玩,而小豆子在團體中地位低於江波,他不敢跟江波搶,所以就會避之危恐不及。

昨晚因為一直打雷,江波嚇得躲起來,正好可以有機會給小豆子玩。我把零食雞肉條放在狗玩具上,引誘小豆子來吃。小豆子本來見我手上有零食被引誘過來,但一看到零食掉到玩具上就嚇跑了。所以我只能一步一步來,零食先放在手上,但很靠近狗玩具。總算小豆子敢去玩具中的凹洞中撿零食了。

撿玩具上的零食吃,本應是易如反掌之事,為何小豆子卻做不來?這個玩具並不曾給他痛苦的回憶,例如噴水、發出怪聲、繃出怪物嚇他,為何他會害怕?這似乎只有「害羞」才能解釋。

有很多事情,比如上台報告、唱歌、表演、跟人閒聊,在旁人看來是易如反掌,我們卻受害羞之苦做不出來。我們雖然能意識到害羞,卻無法用理性來解釋害羞。我認為害羞可能得用行為主義心理學來解釋,而治療它也得用認知行為主義。

2012/03/31

[Simulacrum]因為初音未來是假的歌手,我們不該把她當成真人來迷戀?談布希亞的擬像理論

5分17秒的小女孩說「我受夠了,人是假的,歌也是假,我不想再聽了!」

讓.布希亞 (Jean Baudrillard)提出的Simulacrum擬像理論的四個階段
  1. 第一階段,影像是實物完整地呈現,看山是山
  2. 第二階段,影像夾雜了超出實物的意義,這時看山不是山。我們看到影像中的奧黛麗.赫本,我們不只是想到她本人,還聯想到一種清新脫俗的概念。
  3. 第三階段,影像包含了實物無法呈現之物。如韓國偶像團體少女時代,日本偶像團體AKB48,在媒體中表現出一般女生平常不會做的嬌柔造作、不會穿的衣服。
  4. 第四階段,影像已不再與實物有任何關係,虛擬之物已有了自己的生命,她不再從屬於真實之物。這就是初音未來。
我們嘲笑初音未來的粉絲,把虛擬當真實,假的與真的傻傻分不清。但你迷戀的少女時代,又有真實多少?她們在綜藝節目裡當來賓時的嗲聲嬌氣,嫵媚動作,你當成了她們的日常生活的真實呈現。這種「傻傻分不清」可能比已知初音未來是假人的粉絲還嚴重。

因為一個東西是假的,所以我們就沒有動真情的價值了嗎?想像我們看電影時,為劇中的主角高興、緊張、憤怒、落淚,我們也沒人深究這故事是真的還是假的,也沒人鄙視為虛構故事動真情的人,那為何只鄙視初音未來呢?

2012/03/18

為何現代藝術讓人看不懂?


有人戲稱,藝術的演進史是:
「這畫得真美」--在看梵谷「星空」時,你心有領會發出了讚嘆。

「這畫得是什麼?」--在看畢卡索「亞維農少女」時,有點不懂為何人臉會歪七扭八。

「這也能叫藝術?」--在看Andy Warhol「康寶罐頭」時,納悶怎麼廣告也成了藝術。

「藝術在哪裡?」--在看比罕「踢腳板」時,以為自己進入了未佈置的展場。

為何藝術越來越讓人看不懂,甚至到了最後,藝術已經消失掉讓人看不到了?


傳統的藝術就是做得跟真實的一樣,任何沒有經過教育的人,一看就懂。但到十九世紀,攝影術的發明,及之後各種科技發明,威脅到了傳統藝術家的地位。「藝術家要花幾天才能畫出栩栩如生的畫,照相機三秒鐘就拍好了」如果藝術家仍只是要求真實,那他們不管如何都比不過照相機。印象派畫家開始嘗試將自己主觀感受放入畫中,就是反擊科技「可再現性」的第一步。「客觀的影像你照相機能拍出來,但至少主觀的感受你就不可能拍出來了吧?」試圖把這些科技「不可再現」的抽象物「再現」出來,就是早期現代藝術的奮力一博。


將無法表現的抽象概念表象出來,所以有了俄國的「構成主義」 的「紅軍擊倒白軍」 
以及Piet Mondrian「新造型主義」,將輕快、憂鬱等,如同聽爵士樂的感受以視覺表現出來。
當藝術從畢卡索走到純抽象的地步,能夠了解它的大眾越來越少了,它的「合法性危機」(Legitimacy)也就來了。傳統的藝術如蒙娜麗莎,大家都看得懂,都能體會她的美,大家都愛她,所以她是藝術,這幅畫本身就有「Aura」(靈光)。

但現代藝術,沒人能了解她,到底誰能夠判斷她是藝術呢?這時,畫廊老闆、經紀人、交易商就來了,他們說只有他們能了解什麼是藝術,這幅畫是不是藝術品,只有他們說了算。這時Aura就在他們這些人身上,而不是藝術品身上。這些人具有「點石成金」的能力,一幅畫是垃圾還是藝術,全靠他們的話語權。一般大眾沒有「美學素養」,是沒資格評斷的。這就像「國王的新衣」故事一樣,害怕被嘲笑沒品味的人,都相信自己看到了「美」。

藝術家為了奪回定義藝術的話語權,藝術家不斷做出反藝術的「概念藝術」,所以後來有了Hirst的「藥店」


以及Manzoni的「100% Pure Artist's Shit」
藝術的不斷進化,最終是消滅自己。就如同馬克思所言下層結構(科技)的進化,將破壞上層結構(政治社會)的傳統意識型態。


那麼現在,真正的藝術到底在哪裡?難道真正的藝術就只能憑這一小撮掌握話語權的人來判斷?一般的大眾沒有自己的權力去判斷真正的藝術嗎?

如果我們大眾想要奪回自身的話語權,那就是憑民主投票,而一件作品的投票數,就是從產品銷售量可看出。漫畫遊戲的銷量、電影票房、Youtube上的觀看次數與評價, 就是我們賦予這作品的Aura。

在傳統藝術的年代因為科技不發達,無法大量複製,藝術品只能收藏在富人的私人展覽室或是博物館。但現在的科技進步,使得藝術品能夠大量複製,收藏在一般庶民的房間。我們無法再回到過去那年代了,認為要看藝術只能到博物館去朝聖膜拜。藝術已經溶入商業之中,真正藝術是可以去商店、電影院、網路上去尋找的。


文章為閱讀「後現代主義」 的感想

2012/02/14

為什麼上廁所要躲起來,吃飯卻可以正大光明地吃?


梁文道在介紹「廁神.廁所的文明史」這本書中,提到十七世紀時的法國國王「太陽王」路易十四,會邀請群臣們觀賞他上廁所。能夠享有這項殊榮可不是人人有獎,不是親近路易十四的王公貴族,就是得花了上萬元的法朗金幣,才有這份榮幸觀賞陛下露出尊貴的屁股坐馬桶,而陛下會在坐馬桶時與圍繞在一旁的大臣們共商國是。

從路易十四的故事,我懷疑「上廁所必須躲起來」這觀念,是最近這二百多年才建立起來。在現在,就算是親如家人、夫妻,你也不太可能會想讓對方觀賞自己出恭。就算你興奮地邀請伴侶「要不要看我表演上廁所?」對方十之八九也可能會回「神經病」。

有人懷疑這可能只是路易十四獨自擁有的癖好,但從王公貴族們也踴躍報名,看來並不是國王一人沒有隱私觀念,國王身邊的人也一樣沒有隱私觀念。之前讀「孤獨的性.手淫文化史」中也曾提到,隱私的觀念是十八世紀啟蒙運動後才漸漸建立起來的。我們回想一下,一些前現代遺留下來的有兩百多年的建築,屋內的隔間就是沒隱私權的觀念:由於沒有走廊,當你要進爺爺房間時,你還得要穿過哥哥的房間、爸媽的房間、丈母娘的房間。他們不能將房門鎖起來,不然爺爺就出不了房門了。

若你對一個前現代的人說「我想要一點隱私空間」,他們會無法理解「你又不是幹什麼作奸犯科之事,為什麼要躲起來猥猥瑣瑣?」「是沒錯,撒尿、拉屎之事凡人皆會有,但我不想被別人看到」「我不懂,你的屎尿、你的身體跟其他人有何不同?為何要害羞怕被別人看?」

大陸鄉下某些地方,到現在仍然廁所沒有門。我媽媽說這是因為文革時怕有人躲在廁所幹壞事,所以要把門拆掉。但我懷疑並不是文革造成的,而是「上廁所要躲起來」這觀念在中國也是最近這幾十年才漸漸建立的。很多人常抱怨家中長輩上廁所不關門。想想看我們自己小時候,上小學校的時候,為什麼明明學校有廁所,仍然要憋著大便回到家再上?並不是學校的廁所太骯髒,而是當你一進廁所關起門來蹲馬桶,就有某位好管閒事的同學大喊「某某某在大便!」吆喝一群同伙去圍觀,甚至有人爬上牆壁偷看上廁所,這種現象一直到了上五六年級依然存在。上廁所必須躲起來,不只是一種文明規訓、社會建構,看來對文明社會的小孩子,也是長大後才形成的觀念。


「上廁所要躲起來」這觀念也不是一蹴可及,我認為還得先經過兩個階段:把屎尿看做污穢、把廁所從生活空間隔離出來,最後才能學到「上廁所要躲起來」。

把屎尿看做污穢,這件事並非人的天生本能,對小孩子來說是須要後天學習的。佛洛伊德說小孩子在二歲到四歲會經歷一段「肛慾期」,小孩子會將自己排泄出來的糞便「視為己出」,想像成是自己生產出來的「寶寶」。停留在肛欲期不成熟的小孩會過度忍住肛門,造成便秘;或是把玩糞便,將床褥弄髒。直到他學會拋棄糞便,視糞便為污穢,他就成熟了,並脫離這一時期。竇文濤曾經在「鏘鏘三人行」中聊到,他小時候愛玩的遊戲是,撒尿在沙土上,沙土被浸溼成尿泥,他就可以把尿泥當做黏土,塑造成動物形狀。而我跟媽媽提起此事,媽媽說她小時候的男生們,也會這樣玩。但女生們覺得很髒,都不會靠近。看來把玩尿泥並不是竇文濤所獨有,而是那一輩共同記憶。

我們常說「生活不外乎是『吃喝拉撒睡』」,既然拉屎撒尿都是生活的一部份,為何我們須要將廁所從生活空間隔離出來?為何要蓋另外一個獨立的房間做這件事?為何我們不能直接拉屎在書桌下的垃圾桶?垃圾與屎尿同樣都是髒的,那為何我們可以暫存垃圾在我們的臥室內,卻不能暫存屎尿?中國古代雖然在屋外建有茅廁,但在房內另會準備便桶、尿壺,那時代的人並不覺得在臥室上廁所有何髒。

在「廁神.廁所文明史」一書中有記載,法蘭西王儲因為厭惡了貴族在聖.日耳曼宮內隨處大小便造成宮內臭氣沖天,於1606年8月頒佈諭令,「嚴禁在宮內大小便,如果是在自攜的便桶內拉屎則不在此限」。但先破壞了這道禁令,不是別人,而是他自己,他在自己的臥室牆壁上撒尿。而這諭令也形同虛設,無人遵守。

下次看到小狗在自己的房間內亂便便,先別發怒。畢竟人類也是經過了幾百年的摸索才學到「上廁所要到房間外上」,更何況是才幾歲大的小狗呢?

最後講到「上廁所要躲起來」,這可能是為了避免暴露性器官等私密部位,所以必須要躲起來。但有沒有想過,為何女子更衣室並不是每人一個密閉的房間,而是同性別的人一同更衣。雖然說換衣服不太會暴露性器官,所以不須要給每個人私密空間,但上廁所若是著裙子、洋裝,也不太會露出性器官啊?

上廁所要躲起來,不只是要遮掩私密部位,更是為了視覺上的乾淨。我們覺得糞便骯髒,所以連帶得覺得蹲馬桶這動作也骯髒,我們為了顧及他人視覺上的感受,所以要躲起來上廁所。但最後,「上廁所」這件事被我們內化為一件羞恥的行為,我們會因為上廁所被人看到會而感到害羞。

但到最後,我們甚至連「蹲在地上」都視為骯髒的行為,就算我們並沒有真的脫下褲子。香港人看到大陸人因為站累了,所以蹲在地上休息,而恥笑大陸人不文明、像是隨地拉屎。這有沒有可能只是一種維多利亞式的虛偽?

2012/01/22

[python] 鳳凰網站自動抓視頻

檢視html 原始碼,是看不出任何mp4或flv的link。
經過Firefox CacheViewer以及 Firefox Video Download Helper調查,原理大致如下:
它是先餵給 flash player 一組 guid 號碼。 flash player 依此guid下載一份xml檔案,在xml 檔案中有mp4或flv 的 link。

[python]用eyeD3 + xml.dom.minidom 給mp3 自動標名,支援iTunes

毛豆工作室下載下來的「開卷八分鐘」的mp3們,沒有 idv3 的 title,沒有lyrics,把它們放入iTunes再下載到 iPhone的話,這樣不方便。

毛豆工作室有xml 可以下載,先用 xml.dom.minidom 分析取出 fileName + title + description ,之後用 eyeD3 (python 模組) 將mp3 加tag。

總共有一千多個mp3,很難確保第一次就寫程式就OK,保險點是第一步驟的結果先暫存在 txt 檔,之後再讀 txt檔用 eyeD3。或是先對一兩個mp3試驗,之後再擴展之。再者,從xml中抽取出的description裡面有時夾雜不想要的廣告文字或html控制碼,先暫存輸出到txt檔,各別修改之。這樣子做至少比在程式一開始寫時就全盤考慮來得簡單、有效率的多了。現在的text editor的 find/replace都很強大,有regular expression功能,做起來不比用python程式遜色。

這個xml 結構是有兩百多個item,每個item描述每個mp3,每個mp3有 title、description、link等 nodes。
dom1 = xml.dom.minidom.parse('8minsreading_2010.xml')
items = dom1.getElementsByTagName('item')
for item in items:
    title = item.getElementsByTagName('title')[0].\
            firstChild.nodeValue
    link = item.getElementsByTagName('link')[0].\
            firstChild.nodeValue
    fileName = link.split('/')[-1].split('.')[0]
    description = item.getElementsByTagName('description')\
            [0].firstChild.nodeValue


Unicode 簡体中文的問題:第一個問題是python在print到 stdio的時候,簡中會變成亂碼(文字化け),就算用了
sys.stdout = codecs.getwriter('UTF-8')(sys.stdout)
偶爾某些印出還是亂碼,所以不要太在意console output,還是先印出到暫存的 utf-8 text 檔。

第二個問題是 iTunes 用的IDv3 是 eyeD3.ID3_V2_3 ,是UCS-2 little endian,也就是前綴要加上
tag.encoding='\x01'
不保險的話,要對tag的每個frame.encoding都設好
for frame in tag.frames: frame.encoding='\x01'

為了要讓下載到iPhone的mp3,在聆聽時點一下螢幕會出現歌詞。這個mp3必須要加一個tag 叫「UNSYNCED LYRICS」。從foobar2000上看到tag名是 UNSYNCED LYRICS,但其實對eyeD3只要一個簡單的addLyrics即可:
tag.addLyrics(description)

以下python code全文,是邊做邊改邊試的,只是為了一次性工作而做的。你可以取出copy paste對你有幫助的code片段,比如 xml 的讀取,eyeD3 tag的寫入。
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, sys, codecs, glob, re
import xml.dom.minidom
from xml.dom.minidom import parse
import eyeD3

sys.stdout = codecs.getwriter('UTF-8')(sys.stdout)

def read_xml():
    xmlFileName = '8minsreading_2010.xml'
    dom1 = parse(xmlFileName)

    txtFileName = xmlFileName.split('.')[0] + '.txt'
    fout = codecs.open(txtFileName, mode='w', \
            encoding='utf-8')

    items = dom1.getElementsByTagName('item')
    for item in items:
        title = item.getElementsByTagName('title')[0].\
                firstChild.nodeValue
        link = item.getElementsByTagName('link')[0].\
                firstChild.nodeValue
        fileName = link.split('/')[-1].split('.')[0]
        description = item.getElementsByTagName(\
                'description')[0].firstChild.nodeValue
        description = description.split(' ')[0]
        description = description.strip()
        fout.write(fileName + '\t' + title + '\t' + \
                description + '\n')

    fout.close()

def sum_all():
    pat = re.compile(r'\d\d\d\d\d\d\t')
    table = {}
    txtFiles = ['8minsreading_2011.txt',
            '8minsreading_2010.txt',
            '8minsreading_2009.txt',
            '8minsreading_2008.txt',
            '8minsreading_2007.txt']
    for txtFile in txtFiles:
        fin = codecs.open(txtFile, mode='r',
                encoding='utf-8')
        for line in fin:
            line = line.strip()
            if not line:
                continue
            if pat.match(line):
                comps = line.split('\t')
                fileTitle = comps[0]
                title = comps[1]
                description = ''.join(comps[2:])
                table[fileTitle] = (fileTitle, title,
                        description)
            else:
                (fileTitle, title, description) = \
                        table[fileTitle]
                description += line
                table[fileTitle] = (fileTitle, title,
                        description)
        fin.close()

    fout = codecs.open('all.txt', mode='w',
            encoding='utf-8')
    keys = table.keys()
    keys.sort()
    for k in keys:
        fileTitle, title, description = table[k]
        fout.write( fileTitle+'\t'+ title +'\t'+
                description +'\n' )
    fout.close()

table = {}
fin = codecs.open('all.txt', mode='r', encoding='utf-8')
for line in fin:
    comps = line.split('\t')
    fileTitle, title = comps[0], comps[1]
    description = ''.join(comps[2:])
    table[fileTitle] = (title, description)
fin.close()

mp3Files = glob.glob('*.mp3')
for mp3File in mp3Files:
    fileTitle = mp3File.split('.')[0]
    title, description = table[fileTitle]
    tag = eyeD3.Tag()
    tag.link(mp3File)
    tag.setVersion(eyeD3.ID3_V2_3)
    tag.encoding='\x01'
    tag.setTitle(fileTitle+title )
    tag.setAlbum(u'開卷八分鐘')
    tag.setArtist(u'梁文道')
    tag.addLyrics(description)
    for frame in tag.frames: frame.encoding='\x01'
    tag.update()