小松鼠嚇了一跳,有了魔法眼鏡後,這世界看起來完全不一樣了

顯示具有 電視 標籤的文章。 顯示所有文章
顯示具有 電視 標籤的文章。 顯示所有文章

2013年12月27日 星期五

The Time of The Doctor 語錄


蒐集一些 Doctor who 2013 聖誕特輯的對白
Everybody's naked underneath.

Works two out of three times, guaranteed
Number ten once regenerated and kept the same face - I had vanity issues at the time.   
講實話的時候,總是比較好笑一點。
Boss of the psycho space nuns. So you!   
不曉得,總是覺得上面這句好像該收進來。
Oh, Doctor, fixing toys and fighting monsters.
如果不常常修理玩具,那怎麼打怪呢? 因為根本分不清誰才是怪物啊。
We all change... when you think about it. We're all different people all through our lives.
And that's OK, that's good, you've got to keep moving, so long as you remember all the people that you used to be.
沙烏地阿拉伯諺語說, 「若是在沙漠中迷路 就只能尋原路折返」。我們會不斷改變。像是學了很多魔術之後,往往會忘了當初還不了解魔術時的那種感覺,甚至會感覺過去的自己很陌生。當然不只魔術,學其他很多東西到了一個程度之後,都會有種重生(regenerated )成不一樣的人的感覺。但不要忘了最初的感動。
I saw him on a pier on a rainy day.
I'd seen him before, lots of times. But he just looked so beautiful standing there.
I wanted everything to stop. I wanted nothing to change ever again.
If he could just keep standing there, so beautiful...
每個人都有希望時間靜止的時候(......不是那一種),有那種希望感動的剎那能夠變成永恆的經驗(或者將會有這種經驗),有時在那個當下,有失去時間感的錯覺。這也就是很多人不知怎麼,就是喜歡拍照的原因。

I will not forget one line of this. Not one day. I swear. I will always remember when the Doctor was me.
Better than "I don't want to go".
對於 11th 的結局,不管是遺憾、不捨還是滿足,套句沙烏地阿拉伯的諺語總結:「無論如何旅行仍有得不到的財富」

2013年4月2日 星期二

沒國際觀是因為媒體很爛,那然後呢?

最近你可能看到不少人在轉這篇清大彭明輝教授部落格的文章:台灣有一種病,很深,深到…………。內容大致上是說,台灣人欠缺國際觀,並非因為英文很差,而是因為媒體太爛。

我並非不同意他觀察到的現象。如果媒體增加國際新聞以及有深度的報導,的確會提升整體民眾的國際知識。

當然很多人會開始轉台,轉去看新聞龍捲風、台灣龍捲風或者狂愛龍捲風之類的東西。
但至少,看新聞鬼扯節目可以增加星際觀,還能訓練資訊過濾的能力。
本土長壽劇裡早晚會有跨國企業鬥爭,然後牽扯到國際政治軍事角力的劇情。順帶還可以介紹一些醫療科技,比方電子義肢、電子眼、換臉、複製人之類的,對劇情鋪陳應該很有幫助。
偶像劇也可以有像是與 CIA 情報頭子的浪漫邂逅,相知相遇、進而定情的故事。當然中間會穿插許多跟國際情勢息息相關的劇情,比方男主角有一筆征討利比亞的私人軍費無法兌換的落難情節,獲得女主角援助後,主角擊敗格達費,然後駕著直升機前來求婚。

所以我完全同意如果媒體增加國際深度,就會增加整體國民的國際觀的這個因果關係。
但全世界最沒用的就是這個「如果」。
這樣的說法,就像說:你被曬傷,並非因為你沒擦防曬油就出門,而是因為太陽太大。如果太陽沒有那麼大,就不會被曬傷了。

有用的是,要怎麼讓如果不再是如果。

媒體太爛已經是常識了。但原因呢?要怎麼改善?
媒體中並非沒有外國新聞的資訊,如文茜世界週報、公視新聞、還有一些時段比較少的國際新聞。但為什麼這麼少?是財團控制?還是民眾口味的問題?還是市場太小?
我不知道,但有很大的機會是,暫時很難改變這個情況。

就像我們知道地球與太陽的關係並非宇宙中星球的常態,但我們就是生活在地球上啊。

就是因為台灣媒體很爛,才要加強英文或其他外文能力,特別是聽讀能力。這樣,才能突破限制,得到需要的資訊。

當然我們也許會希望很多人來翻譯資訊,但我們真的願意讓這麼多有用人力來做這些事嗎?還是讓他們做些更有創造力的事情?這是需要計算的。

要改變媒體,並非不可能,而且是持續要做的事。但對個人來說,加強英文能力是現階段就可行,可以突破媒體限制的作法。

在你還沒想到怎麼讓太陽不要發出紫外線之前,看到別人宣導擦防曬油或著撐傘,其實不用憂慮別人不知道真正的原因是太陽太熱。
畢竟,如果不知道太陽太熱,為什麼要擦防曬油或撐傘?

2012年3月2日 星期五

How I Met Your Mother 的明星臉

去年才開始看 How I Met Your Mother,總覺得劇中的角色都有點似曾相識感。
飾演 Lily 的 Alyson Hannigan,因為 Buffy The Vampire Slayer 和美國派本來就很有名。演 Marshall 的 Jason Segel 因為演過的電影 Forgetting Sarah Marshall, Knocked Up,眼熟也不足為奇。倒是其他幾個主角,明明確定沒看過他們,卻又覺得眼熟。


2012年3月1日 星期四

IU You & I 與 Doctor Who 河流之歌


2011年5月15日 星期日

Python: 下載 youtube 上的台灣電視節目

在坐月子中心,老婆想追一下之前連續劇的進度。月子中心裡的網路有限制,用 p2p 軟體不但佔用頻寬,而且不太可行的。雖然 cattail 在 android 上推出 台灣連續劇 app,但沒帶 hdmi 線,而且用我之前寫的 acer stream hdmi test,解析度不夠。雖說如此,既然影片已經在 youtube 上了,就有辦法看得到。
簡單看了一下,發現影片資料庫的網址。下載了 drama.db 後,用 sqlite database browser 檢視一下後,簡單寫個 python script 來生成 m3u8 檔。 現在的 VLC 已經能直接播放像是 http://youtube.com/watch?v=XXXXX 的 URL 。所以生成的 m3u8 也的卻能播放,不過由於網路速度太慢,播放斷斷續續的,無法盡如人意。所以乾脆寫個程式來下載 youtube 的影片。雖然 youtube-dl 很成熟,但用殺牛的大刀來切雞肉,有點太大材小用了,況且放入自己的程式碼中,還要花點時間讀程式碼。Youtube 的 HTML 碼改過不少,網路上一下也搜尋不到怎麼解析來源 flv 或者 mp4 的方式,所以乾脆就直接看 HTML source,配合上 regexp 來擷取影片 URL,也可以選擇自己想要的解析度。
雖然也可以配合 vlc 的 python binding 來播放,但是下載並且產生 m3u8 檔已經符合我的需求。
程式在 windows 7 下的 python 2.6 及 Ubuntu 的 python 2.7 測試過。在不同的機器下,除了一開始的幾個 path 外,也許檔名(drama_m3u8 和 fn)和 sys.argv[1]   的 encoding 也可能因為系統而不同也需要更改。
****
 2011-09-27補充
該資料庫已經不再繼續更新
*******

最後寫出的 python script 如下:

# -*- coding: utf8 -*-
import sqlite3
import re
import urllib
import sys
import time
import locale

DB_FILENAME=r'./drama.db'
OUT_DIR=ur'./'
PREF_FMTS=["35","34","5"] # youtube format: flv 480, flv 360, flv 240

def best_url(fmt_dict):
    k=filter(fmt_dict.has_key, PREF_FMTS)
    return fmt_dict[k[0]] if k else None

def try_to(f, n=1, message="do the work"):
    for i in range(n):
        try:
            return f()
        except:
            print "failed to %s (#%d)"%(message,i)
    return None

def get_fmts(v):
    url="http://youtube.com/watch?v=%s"%v
    read_url=lambda :urllib.urlopen(url).read()
    parse_fmt=lambda s: (s[0],urllib.unquote(s[1].decode('unicode_escape'))
                                     .replace(r'\/','/'))
    try:
        s=re.compile('"fmt_url_map": "([^"]*)"')\
            .search(try_to(read_url, 10, "read %s"%url))
        return dict(parse_fmt(x.split("|")) for x in s.group(1).split(","))
    except:
        print "failed to parse formats"
        return {}

def get_episodes(drama_name, ep_list=None, part_list=None):
    pbar=lambda p,k,t:"#"*int(p/2+0.5)+"."*(50-int(p/2+0.5))\
          +" %5.1f%% %6.1fKB/s %3d:%02d\r"%(p,k,t/60,t%60)
    def report():
        sec0=time.time()
        return lambda n, bs, size: sys.stdout.write(
                     pbar(min(n*bs*100.0/size,100.0),
                          n*bs/1024.0/max(1.0,time.time()-sec0),
                          int(time.time()-sec0)))
    conn=sqlite3.connect(DB_FILENAME)
    c=conn.cursor()
    query='''select pltitle, plvids from playlisttable
                                    where pltitle like ?
                                    order by plds'''
    c.execute(query, (u"%%%s%%"%drama_name,))
    enum_eps=((i+1,row) for i,row in enumerate(c) 
                        if not ep_list or i+1 in ep_list)
    for ep,row in enum_eps:
        print "[ep=%d]"%ep, row[0]
        drama_m3u8=OUT_DIR+ur'%s.m3u8'%row[0]
        vids=row[1].split(",")
        allparts=range(len(vids))
        vidnames=[row[0]+u" (%d).flv"%i for i in allparts]
        open(drama_m3u8,"w").write(u"\n".join(vidnames).encode("utf-8")+"\n")
        pl=set(allparts)&set(part_list) if part_list else allparts
        for part in pl:
            fn=OUT_DIR+vidnames[part]
            print fn
            url=best_url(get_fmts(vids[part]))
            if not url:
                continue
            if try_to(lambda :
              urllib.urlretrieve(url, fn, report()), 3, "get %s"%url):
                print "\nDone"
            else:
                print "\nFailed"
    conn.close()
    
if __name__ == "__main__":
    enc=locale.getpreferredencoding()
    try:
        drama_name=sys.argv[1].decode(enc) if len(sys.argv)>1 else u"犀利人妻"
        ep_list=map(int,sys.argv[2].split(",")) if len(sys.argv)>2 else None
        part_list=map(int,sys.argv[3].split(",")) if len(sys.argv)>3 else None
    except:
        print """Usage: tvshow_download showname [ep_list [part_list]]
Example: tvshow_download 犀利人妻 3,4,5  #download episode 3,4,5
         tvshow_download 犀利人妻        #donwload all episodes
         tvshow_download 犀利人妻 13 0,1 #download part 0,1 of episode 13
""".encode(enc)
    print "args:",drama_name, ep_list, part_list
    get_episodes(drama_name, ep_list, part_list)

2007年12月14日 星期五

小龐也是人

"Jerry was a man" 是 Robert A. Heinlein 在 1947 年寫的短篇小說,內容是探討一個經過基因改造過的黑猩猩 Jerry,是否能夠被視為人?這個故事 ABC 在 2007 年時,將他拍成一集電視劇,收在 Master of Science Fiction 科幻大師系列中。
其實有一個說法是,我們的基因有 99.4% 和黑猩猩相同(反方論點通常是,那麼我們也是 50% 的蘿蔔了),這個數字代表什麼意義很模糊,類似還有 98% 99% 之類的也很常見。總之,是說我們和猩猩其實沒有本質上的差異。
BBC 做了一個專題,叫做 "Chimps are people too"。
網站在這裡:
Danny and a chimp

在 Youtube 上你可以找到許多節目片段,但由於版權的關係,我不能嵌入放在 Blog 上,可以直接連到 Youtube: Chimps Are People Too 的 Playlist 上看
網站中還辦了一個投票 How Chimp Are You? ,其中有七條是非題。目前的結果是60% 的人是"99.4% 的猩猩",40%的人是 "100% 人類"。
或者說 People are chimps too,人也是小龐。
The Great Ape Project 是個宣揚猩猩權的組織。
但是反面來說,黑猩猩是很兇暴的動物,成年雄性黑猩猩的力量超過人類數倍,人類根本不是對手。黑猩猩不但會吃猴子,還會殺人。由於黑猩猩已經智慧到有同理心了,所以也會像人類一樣,有可能以虐待、殘殺同類或其他動物為樂(而不只是為了飢餓)。黑猩猩攻擊人類的新聞時有所聞,就連長期照顧黑猩猩,視黑猩猩為朋友的人,也一樣有可能被攻擊(注意的話,每幾年就會有這樣的新聞)。

2007年10月23日 星期二

私人基金必勝法

昨天上午在電視上看到一小段「大學生了沒」,裡面一位學生提到,他幫別人投資,保障本金,但是超過 10% 的獲利則算他厲害,他會拿走。
不清楚這個 10% 是多久的投資,當成是一年好了。這樣從投資人的觀點來看,好像不錯,穩賺不賠,但事實上,套句詐欺遊戲的話,經理人有必勝法。
當然你會問,投資人看起來是穩賺不賠啊?如果經理人有必勝法,那麼錢從哪裡來?
其實錢是從投資人的機會成本裏面來的。
我們假設銀行的年利率是 2.5% 好了,如果投資人把錢拿去存,一年後他會得到 2.5% 的利息。
等而下之的經理人可以欺騙投資人賠錢,偷竊利息。但這樣就沒意思了,我們假設經理人守規矩。
假設這個經理人受到五個投資人委託,每個人投資一千萬,這個經理人可以將這五千萬放入銀行,然後拿回一百二十五萬利息,所以每個投資人目前各有一千零二十五萬。然後呢,經理人將這五筆錢投資一場「賭博」,五個人只有一個贏家,四個輸家每人付給贏家五十萬,總共兩百萬。所以呢,變成一個人有一千兩百二十五萬,四個人有九百七十五萬。
經理人可以很講信用替那四個輸家吞下虧損,還給那四個人的本金一千萬。但是對於獲利的那個投資人呢,他給他一千一百萬。結算下來,經理人不費吹灰之力就賺到了二十五萬。
定存加上「賭博」只是為了說明起見,簡化的模型,技術上呢,可以操作一些市面上的投資工具達到類似的效果。
二十五萬也有點少,不過一來反正無本,增加規模數字就會變大。二來呢,其實一般經理人應該很容易讓平均的投資報酬率超過 2.5%。
假設經理人預計一年的獲利期望值為 7% 好了,然後我們也不要浪費精神去像上面那樣弄歪機率分佈,我們假設獲利的機率分佈是對稱的,比方自然分佈。那麼如果改成虧損和超過 13%之後算經理人的,那麼經理人的獲利會剛好是零。但是現在 10% 之後就算是經理人的,所以這中間的差距就是經理人賺的。多少不論,因為跟機率分佈有關,但這是無本的。
但是只要操作到年平均報酬率 7% 就能拿錢,我覺得是個好工作。
當然,經理人的確替投資人負擔了許多風險,但是這個值不值得投資人損失的利潤,就見仁見智了。

2007年8月2日 星期四

演化獎勵生產力....某方面來說

...
以上是一部不太成功的電影 Idiocracy 的開場。這部電影其實站在開場這個說法,加上老科幻片 Buck Rogers In The 25th Century(惡搞、致敬、諧仿)。這部影集早年也在台灣播過,主要也是說 20 世紀的人到 25 世紀去解救有點退化的未來人。這種公式還挺常見的,某處的平凡人,到了另外一處則成了奇人,像是超人、FarscapeEureka,還有很多回到過去、跑道幻境之類的奇幻故事。
回到開頭提出的論點,這個論點當然並不太新鮮,不算太久前我就聽過某大學老師站在類似的論點講話。
這個現象跟很多人的經驗符合,學術上也有一些研究可以佐證,性行為與智能這篇也提出一些數據和文獻,主要是說明 IQ 高或低的人開始性行為的時間比較晚,性行為比較早的,主要集中在IQ中間偏低的人。
簡單的說就是當人類變成有(物資)生產力的人來保障有(後代)生產力的人的情形之下,後者會慢慢取得數量上得優勢。
當然上面所提到的研究結果,嚴格來說是IQ在中間偏低的青少年,回答有過性行為的比例比較高。所以可能原因是 IQ 高的人覺得沒有必要說謊,IQ 低的人不知道要說謊。有點類似「太上忘情、太下不及情,情之所鍾,正在我輩」的感覺。這句話是古人說的,一般的看法是情比性的層級要高一點,所以這也許已經代表了我們已經比古代人要低級一點了,現在人看的音樂劇、電視劇,古代的人可能覺得只是 jackass 等級的。古代人可是聽歌劇、京劇的。
這樣講其實有點武斷,比來比去也許只是看誰比較會說謊。比方這個研究的研究者,就認為一般公認的「男人性感,女人感性」是沒有根據的說法。
回到那個「有(物資)生產力的人來保障有(後代)生產力的人」的觀點。大學老師或者研究者算不算有生產力的人呢?當然是,只是生產的東西是技術和知識,這些產生出來的技術和知識,可以間接產生物資;因為有人生產技術和知識,所以現在的城市中普通人過得比三千年前的國王還要舒適。但話又說回來有些知識比另外一些更間接一點,但是不管怎麼樣,都是間接的。生產知識的人的生存條件,還是那些生產物資的人提供的。某種意義上來說,生產知識的人來批評生產後代的人有點站不住腳。生產後代的人,也是生產了「人力」這種資源,雖然大量生產也許不見得能保障品質,但畢竟還是有貢獻。就像生產出來的知識一樣,多一個人,就多一分潛力。
這樣說起來,也許只有生產食物的人才有資格做出這樣的批評。不過農夫也會冷,也會想要吃肉,所以他願意和蓋房子、養豬、賣衣服的人交換物資。這樣,這些人也算是有資格了。
賣衣服的人有時也會無聊,願意和提供音樂的人交換。這樣連下去,其實又可以連到那些生產知識以及生產後代的人了。
總之其實就是這樣,也許真的人類會弱智化,也許五百年太短,那就五千或一萬年。也許沒那麼嚴重。也許到某個程度就直接滅亡也說不定。總之就是這樣,覺得不滿意這樣的結果,那可以努力嘗試去改變。但其實沒有人有力量能改變這種潮流的,而且也很公平,反正沒有人能活到那麼久。
假設你能活到那麼久,因為你那麼聰明,那麼未來就有聰明人了,所以這種現象就不會發生了。
上面提到的 Eureka,算是一種反過來的狀況。一個普通人,跑去一個充滿高 IQ 科學天才的小鎮。這個普通人用他的 street smart 來解決很多高 IQ 的人不能解決的問題。雖然可以看成有點市井小民自嗨的幻想,但是很現實的是,這個世界本來就是物以稀為貴,當然全世界只有一個廢物的時候,那個廢物還是不見得會貴的,稀不稀是相對於需求來說的。一個社會中當然不可能光是充滿科學家的,很明顯的科學家無法滿足所有人類的需求。只是小鎮裡面連餐廳老闆都要是個 Geek,有點太誇張了。在這種誇張的環境之下,普通人自然會變成英雄。