December 19, 2012
Javascript 的 Object 與 Function
雖然說只要翻兩下書看幾個網站就能開始寫 code,而且看了這些東西也不見得對於寫程式有一日千里的幫助。出於阿宅很純粹的好奇心,我還是花了點時間看了 ECMAScript Q___Q
程式寫了一段時間,有時會對某一句天經地義的話沉思很久,總感覺此中有真意,欲辯「不知言」 - 不知道該怎麼解釋它,當然也有可能是庸人自擾,痴人發夢。往往好奇心就在此時被挑起,追尋了半天終於得到了一個原本就知道而且跟大家一模一樣的結論。或許此時只能用「過程比結果重要」來安慰自己。
從來沒想過自己會寫 javascript,剛碰 javascript 就讀到了不少讓人「津津樂道」的特色。好比 Hoisting 或 Closure 這種沒有在 spec 裡面出現,而是在實務中衍生出來的概念,又或著惡名昭彰的全域變數,一不小心就會跟它打上交道,看到不少說法都是因為 spec 定得不好。
這就有意思了,究竟是什麼樣的 spec 可以把一個語言搞成這樣?平常會用觀察的方式去理解一個語言的行為,但是 Javascript 的「出名」讓我有點擔憂,害怕自己觀察到的是某一個實作獨有的現象。因此才會去翻 ECMAScript 順便滿足好奇心。
好奇心被挑起之後,想要釐清以下幾個問題
接下來是一點閱讀的心得與筆記,若有疏誤請不吝指教
在 Overview 的部份對一些常見且富含多種意義的名詞做了稍微明確解釋,先記起這些名詞往後會比較順利
[[Get]] 指向一個 internal method,這個 method 需要一個參數叫 propertyName,執行的結果是回傳一個 property 的 value。
而 [[Prototype]] 就是 __proto__,至於它的值後面再說明。
此外,某些物件還有這些 internal properties
接下來更深入地看一下產生 Function object 的過程
產生 Function object 的時候,也會並為該物件設定一些 properties。好比把 [[Call]], [[Constructor]] [[Code]]。Code 的內容是 FunctionBody,[[Call]] 跟 [[Constructor]] 指向 internal method。
執行這個 function 的時候(call function),就會 invoke [[Call]],[[Call]] 指向了 built-in function,作用是拿 [[Code]] 的值來執行。
如果用 new 來執行 function,就會 invoke [[Constructor]]。spec 說 [[Constructor]] 也會去 inkvoke [[Call]],但是多了一些動作,譬如說設定 prototype,而且在 invocke [[Call]] 的時候會把 'this' 指到一開始產生的物件。
所以 new 跟平常的 function call 各自執行不同的 internal method,前者會多做一些事情,譬如說把 this 指向剛剛產生的物件,以及設定 prototype。
prototype property 跟 [[Prototype]] 是不一樣的東西。*.prototype 僅是一個 property,它什麼都可以指。而 [[Prototype]] 是 internal property,會指向 Constructor 的 prototype property,或是內建物件的 prototype property,總之就是會指向某一個物件,查找 property 的時候才有一個 chain 可以用。謹記這兩者的分別,閱讀 jQuery core 的時候會有幫助。
程式寫了一段時間,有時會對某一句天經地義的話沉思很久,總感覺此中有真意,欲辯「不知言」 - 不知道該怎麼解釋它,當然也有可能是庸人自擾,痴人發夢。往往好奇心就在此時被挑起,追尋了半天終於得到了一個原本就知道而且跟大家一模一樣的結論。或許此時只能用「過程比結果重要」來安慰自己。
從來沒想過自己會寫 javascript,剛碰 javascript 就讀到了不少讓人「津津樂道」的特色。好比 Hoisting 或 Closure 這種沒有在 spec 裡面出現,而是在實務中衍生出來的概念,又或著惡名昭彰的全域變數,一不小心就會跟它打上交道,看到不少說法都是因為 spec 定得不好。
這就有意思了,究竟是什麼樣的 spec 可以把一個語言搞成這樣?平常會用觀察的方式去理解一個語言的行為,但是 Javascript 的「出名」讓我有點擔憂,害怕自己觀察到的是某一個實作獨有的現象。因此才會去翻 ECMAScript 順便滿足好奇心。
好奇心被挑起之後,想要釐清以下幾個問題
- 什麼叫做物件
- 什麼叫做 function
- 什麼是 function call, new,constructor
- 產生新物件的過程為何
- 產生的新物件與 constructor 的關係為何
接下來是一點閱讀的心得與筆記,若有疏誤請不吝指教
4.2 Language Overview
4.2 指的是 spec 裡面的 4.2 章節,後面還會重複出現類似的數字。
在 Overview 的部份對一些常見且富含多種意義的名詞做了稍微明確解釋,先記起這些名詞往後會比較順利
- ECMAScript program
一群可以相互溝通的物件(is a cluster of communicating objects),程式就是在物件的互動之中完成功能。 - ECMAScript object 帶有一些 properties 的集合。(is a collection of properties each with zero or more attributes that determine how each property can be used)
- Properties
容器,可保有物件、函式或是 primitive value(are containers that hold other objects, primitive values, or functions.) - Primitive value
- Undefined
- Null
- Boolean
- Number
- String
- Object
內建型別 Object 的成員(is a member of the remaining built-in type Object)
- Function 可以呼叫的 object (is a callable object.)
- Method
物件的 property 如果是個 function,稱之為 method(A function that is associated with an object via a property.)
- Object object
- Function object
- Array object
- String object
- Boolean object
- Number object
- Math object
- Date object
- RegExp object
- JSON object
- Error object
- Error
- EvalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError
8.6.2 Object Internal Properties and Methods
這一章節指出,所有的物件都一定帶有某些 internal properties,這邊僅列出幾項- [[Prototype]]
- [[Class]]
- [[Get]]
- [[GetOwnProperties]]
[[Get]] 指向一個 internal method,這個 method 需要一個參數叫 propertyName,執行的結果是回傳一個 property 的 value。
而 [[Prototype]] 就是 __proto__,至於它的值後面再說明。
此外,某些物件還有這些 internal properties
- [[Constructor]] new operator 會用這個 property
- [[Call]] 單純的 function call 會使用這個 property
- [[Code]] 只有 Function Object 會有這個屬性
接下來更深入地看一下產生 Function object 的過程
13.2 Creating Function Object
先定義名詞- FormalParameterList - 參數 list
- FunctionBody - function 的內容
- 產生 native ECMASCript object, 令其名為 F
- 除了 [[Get]] 之外設定所有的 internal methods
- 把 F 的 internal property [[Class]] 設成 "Function"
- 把 F 的 internal property [[Prototype]] 設成 Function.prototype,即 built-in object Function 的prototype 屬性所指向的物件
- 把 [[Code]] 設成 FunctionBody
- 設定許多 internal properties,其中一些 property 會指向特定的 internal method,以下這兩個與 function 的行為有關
- internal method [[Call]] 被 invoke 時這一次執行的狀態放入 funcCtx。[[Code]] 這個 internal property 就是 FunctionBody,執行之後的結果回傳,且把之前的執行狀態 restore 回來。
- internal method [[Constructor]] 被 invoke 時
- 產生新的 ECMAScript object(假設叫 obj),並且設定一些 internal methods。
- 把 obj 的 [[Class]] 設成 "Object"
- 對 F 呼叫 [[Get]] property,參數是 "prototype",假設呼叫的結果叫做 proto
- 如果 proto 是一個 Object,把 obj 的 [[Prototype]] 指向該物件
- 如果 proto 不是一個 Object,把 obj 的 [[Prototype]] 指向 built-in Object 的 prototype 屬性
- 回傳值是 invoke [[Call]] 的結果並且把 this 指向新產生的 Obj 。因為 [[Call]] 其實是執行 Code,所以Constructor 與 Call 都同樣是去跑一遍 Code
Function 也是物件,只是這個物件帶的屬性有點不一樣,因此成為一個可以呼叫(callable)的物件。
產生 Function object 的時候,也會並為該物件設定一些 properties。好比把 [[Call]], [[Constructor]] [[Code]]。Code 的內容是 FunctionBody,[[Call]] 跟 [[Constructor]] 指向 internal method。
執行這個 function 的時候(call function),就會 invoke [[Call]],[[Call]] 指向了 built-in function,作用是拿 [[Code]] 的值來執行。
如果用 new 來執行 function,就會 invoke [[Constructor]]。spec 說 [[Constructor]] 也會去 inkvoke [[Call]],但是多了一些動作,譬如說設定 prototype,而且在 invocke [[Call]] 的時候會把 'this' 指到一開始產生的物件。
所以 new 跟平常的 function call 各自執行不同的 internal method,前者會多做一些事情,譬如說把 this 指向剛剛產生的物件,以及設定 prototype。
prototype property 跟 [[Prototype]] 是不一樣的東西。*.prototype 僅是一個 property,它什麼都可以指。而 [[Prototype]] 是 internal property,會指向 Constructor 的 prototype property,或是內建物件的 prototype property,總之就是會指向某一個物件,查找 property 的時候才有一個 chain 可以用。謹記這兩者的分別,閱讀 jQuery core 的時候會有幫助。
December 11, 2012
Dupcility 備份檔案
前言
寫在最前面希望比較多人看到大學時代經常看到有人在痛哭實驗室的電腦在畢業前夕失竊,心血結晶的論文一併消失。其實只要有備份的習慣就能夠將傷害降到最低,要維持備份的習慣最重要的是備份的流程要很簡單
另外,一顆隨身硬碟一千多元,比起丟失重要資料的風險,這筆成本幾乎可以忽略不計。
正文
我們用相機拍攝許多數位照片並存進電腦裡,一不小心因為硬碟的毀損或失竊,人生的重要回憶就不見了。老婆現在用 Ubuntu 當成日常使用的桌面環境(真的!),當然要為老婆找出備份的解決方案,這樣才能長久保存美美的照片。
找了一個看起來最簡單的工具就是 Deja-Dup,不論在 debian 或 ubuntu 底下一個指令就能裝起來了。
$ sudo aptitude install deja-dup
這個工具簡單到應該不需要再寫什麼,注意 Deja-dup design 的 screenshot 頁面說,開頭那個美美的保險箱畫面只會在第一次顯示(到底為什麼啊!?)
Deja-dup 只是一個前端工具,後端使用的是很棒的 duplicity,duplicity 有以下特點
- 備份的檔案會打包成一個 tar.gz 檔,因此備份的東西不會綁死在 duplicity 上面
- 漸進式的備份,存下有差異的部份
- 可以用密碼或 gpg 加密
附帶一提
- Deja-dup 僅提供密碼的對稱式加密
- Deja-Dup 在 restore 的時候,有時候顯示成功卻看不見還原的檔案,介面顯示的錯誤訊息不夠。此時通常是權限問題,譬如說要還原一個備份檔,備份檔裡面包含需要 root 權限的路徑,或是解開還原檔案的目錄本身權限有問題,檢查一下應該都可以成功
Duplicity
因為 Deja-dup 太簡單不需介紹。這邊簡述一下 duplicity 的指令用法,熟悉的阿宅直接看 man page 吧。duplicity 的 man page 可以看到兩個參數 URL 與 Directory。URL 代表的是備份檔要放置的位置,Directory 就是要被使用的目錄,兩者前後調換就會有 backup/restore 的功能。
不加密
# 不加密,把 /home/foo/files 備份到 /tmp/foo 底下
$ duplicity --no-encryption /home/foo/files/ file:///tmp/foo
# 把不加密的 /tmp/foo 備份還原到 /home/bar/files
$ duplicity --no-encryption file:///tmp/foo /home/bar/files
如果備份檔放置的目錄,有許多份 full tarball,會選擇日期最新的解開。
備份多個目錄
利用 include 與 exclude,似乎一定要兩者都有才會動。放在前面的優先權比較高,相關的解釋看 man page 的 ‘FILE SELECTION’$ duplicity --include /tmp/pathA --include /tmp/pathB --exclude '**' /tmp file:///tmp/backup
甚至可以寫到檔案裡面,globbing 指的是 pattern 能夠使用「* ** ?」這些特殊字元
$ cat list
/tmp/pathA
/tmp/pathB
$ duplicity --include-globbing-filelist list --exclude '**' /tmp file:///tmp/backup
對稱式加密
# 備份或還原時都需要輸入同一組密碼
$ duplicity /home/foo/files/ file:///tmp/foo
$ duplicity file:///tmp/foo /home/bar/files
非對稱式加密
使用 gpg 來做非對稱式加密$ gpg --list-secret-keys 先列出有哪些 key 可用,選一組如果該 key 有設定 passphrase,備份的時候不會問你 passphrase,因為是使用 public key 加密。但是在還原解開的時候會用到 private key,因此會需要 passphrase。
$ duplicity --encrypt-key THEKEYID /home/foo/files/ file:///tmp/foo
$ duplicity --encrypt-key THEKEYID file:///tmp/foo /home/bar/files
刪除過久的備份
備份多次以後會有數不清的檔案。可以再備份一次 full 然後刪除舊的檔案$ duplicity full YOUR_BACKUP_COMMAND幾個指令配合起來,寫個小 script。真的要備份的時候,只要把外接硬碟接上,執行 script 再出去喝口飲料,回來就可以把硬碟拔掉,應該夠簡單了吧?
$ duplicity remove-all-but-n-full 1 file:///path/to/repository # 列出可能會被刪除的檔案
$ duplicity remove-all-but-n-full 1 --force file:///path/to/repository # 真正刪除
Update
duplicity 備份的時候也會透過 gzip 壓縮,因此時間會長一點。如果不需要壓縮就加上參數 --no-compression。預設以 25 MB 為大小弄成一包,如果要改變這個大小就利用參數 --volsize,後接 100 就是以 100MB 為大小分割。
October 13, 2012
赤壁 之讚!
本文是舊文複製貼上,鞋櫃關閉之後這些文章找不到 cache。剛剛在逛 WallaGroup 的時候想起這部電影,想要為他備份一下以表達我對此電影的熱愛,原文於 2008-07-11 12:14:25 發表
----------------------- 分隔線 -----------------------
今天午夜前趕去看了這部電影,我想用我最近學到的單字來形容它。
很久沒有這麼一部片使我久久不能自己。猶記得上一部感動我如此之深的片子是 [功夫無敵]。
首先,在寫我的白爛影評前先替大家回憶一下歷史背景:赤壁在哪裡?
赤壁在箭頭所指之處,一張圖片勝過千言萬語。
還沒看過片子的人一定會問:該不該去看呢?
施主呀,這個問題要問你自己!
我們先來做個小測驗吧。
我決定要開罵了,我才不管有沒有雷,不要攔我!不要攔我!
選角
首先是選角問題,老實說我一開始知道是金城武演諸葛亮,我的心就涼了一半。以前看過壹週刊採訪伍佰時,問到伍佰對金城武的看法,他是這個回答:像是空殼子一樣的人。
金城武演孔明一點都沒有聰明睿智的感覺!!
我覺得梁朝偉很帥,真的。帥歸帥,跟美男子還是有差距。
周瑜是美男子不是帥哥啊!
要是找個帥哥就能演,布萊特彼得也是帥到掉渣啊!
演技
記得曾經看過金城武的某部片,我覺得演得不錯。但在赤壁一戲中完全失敗。
別說金城武了,就連梁朝偉都演得不怎麼樣。
一個好的演員,會讓你忘了他是誰。忘了他本來叫什麼,是什麼個性。之前是不是演過法官、強姦犯、低能兒,你全都記不起來。你只感覺到一個「真實」的角色。
赤壁呢?金城武還是金城武、小燕子還是小燕子、志玲姊姊還是在演第一名模。我完全感覺不到螢幕上的人是偉大的政治家、還是迷倒周郎的絕世美人。
江東小霸王去哪裡了?我只看到一個一公尺高的鞭毛蟲啊!
亂世奸雄去哪裡了?那明明是一個目光短淺的老頭啊!
志玲姊姊的音質我本身是沒什麼意見,這就跟蘿莉一樣有人喜歡有人不喜歡。
但是讓我受不了之處在於:毫無感情!
我一直覺得她在戲中說話的方式就是林志玲。
當我意識到這一點時,仔細一聽其他人的對話才發現。
怎麼一堆人的情緒是乾的?
(尤其一開始在為百姓生命擔憂的時候,我難過到眼淚都快掉下來了:怎麼可以演得這麼爛)
我記得這種表達方式通常只會出現在英文課、園遊會、還有營火晚會的小隊表演時間。
我看著手上用錢買來的電影票,突然有種時空錯亂的感覺。
戰爭
戰你娘親!
連八卦陣都出來,我還以為我在玩吞食天地 II 諸葛孔明傳。
這是什麼鬼八卦陣,他們在玩貪食蛇嗎?
戰爭的規則是不是不能撞到牆?所以他們就乖乖地繞著陣型跑。
就在對方中計之時(手下都是低能兒,曹操你註定吃敗仗)
正義的將軍們開始一個一個出來放大絕,儼然是真三國無雙赤壁之戰加強版。
尤其張飛出來放無雙的時候,讓我想到這傢伙。
格鬥天王裡的鐵球大暴走!
我記得周瑜是軍事家,我記得周瑜是美男子,我記得周瑜足智多謀。
但我不記得周瑜是戰神啊!
難道因為影帝擔綱演出,就要來段以一挑百的打雜魚畫面嗎?
用箭刺穿脖子那一幕,我想有看火鳳的人都會有熟悉的感覺。
講到這我才想起來,他媽的戰場上還有人用輕功!
運鏡
因為平常有拍一點照片,看電影時我也順便看看導演怎麼取鏡。
奇怪,怎麼一大堆的臉部特寫?鏡頭好到你可以清楚看見誰的痘痘用妝也遮不住。可是,怎麼這種鏡頭一大堆?這是戰爭片吧?怎麼都只拍臉?怎麼都只拍臉?
而且吳宇森在這部片中很喜歡模仿駭客任務的子彈,不過把彈頭換成箭矢,湯換了藥倒是沒換。
公瑾跟小喬纏綿的片段,很明顯是要給觀眾一點殺必死。
但是雨水濺濕宣紙那個畫面是怎樣?是想用蒙太奇手法表現濕掉了嗎?
這不是史詩巨片嗎?怎麼變成二流不露點 R 片?
這時候插個火箭發射的畫面絕對不突兀!
老虎就別說了,我還以為我在看那種野外遇上猛獸的 B 級電影:幾乎沒有怪獸的全身鏡頭。是有那麼一兩個畫面,但是攝影機想用低畫質加晃動製造緊張的氣氛,最後搞得像是素人自拍。
老虎也有幾個局部鏡頭,很棒,我以為我在看十年前的霹靂布袋戲。
特效
我不想提了,每當我認真看,就對特效感到失望。
怪異
這部在官網上說是史詩大片,但內容很明顯不喜歡三國志
想走三國演義路線?我可以接受,沒關係。
可是三國演義中的瑜亮情節總要描寫出來吧!
但你瞧瞧他們一起談首曲子之後不斷惺惺相惜的樣子
要說周瑜會在晚上摸黑把諸葛亮推倒我都不意外。
孫尚香不但會給馬兒點穴,在那個女權卑微的年代,她可以當眾弄倒劉備,還給江東小霸王難堪。這已經不是無禮,不只白目,根本就不合邏輯!
結果諸葛亮還開始跟孫尚香談心,這個禽獸,她是你主子的妞耶!
還有劉備明明說不續弦眼睛還直盯著孫尚香,嘴巴說不要身體倒是挺誠實的。
我知道吹笛子那段是要表現出公瑾的親和力,以及擅長音律。但是安插在練兵的時間點整個就貽笑大方。就像演習視同作戰,練兵亦是嚴謹之事,怎能讓鄉民隨便走近。
都可以開音樂會了,要不要順便擺小吃攤?
就在我好奇編劇是誰的時候,把「赤壁 編劇」丟進 Google 就看到「匹女有責」這句話被揶揄一番。但我另有一個不解,「一時瑜亮」這句成語是指兩個才華洋溢不分軒輊的人擺在一起,但是帶有相互比較之意,在劇中使用的時機點非常奇怪!
還有一大堆想罵的,但是我也懶得打字了。
總之我能確定這不是一部史詩巨片,片中太多不合理讓人失望。
我明白赤壁之戰的故事龐大,想要在短時間內完整體現幾乎是不可能,他們選擇了上下集,卻依然做得很差。故事怎麼說由他們決定,但很明顯地他們說得很爛。
想要表現每一個細節卻又過度壓縮,使得情節不倫不類,突兀到我都不好意思看下去。有幾段我甚至摀住自己的臉忍不住叫一聲:天啊......
人說少不讀水滸,老不讀三國。因為三國故事精彩之處就是在謀略、在政治、在勾心鬥角。但是這些完全沒有在本片中有任何描寫。人物立場被過度簡化成兒童卡通。
除了戲份最多的瑜亮兩人之外,只剩下曹操的荒淫,以及小霸王的懦弱。其他人物的個性根本就是一張白紙,鏡頭帶過去就算了。
片中有不少笑點,幾乎是由周瑜、諸葛亮扛起捧艮與逗艮的角色,卻也讓我更加感覺到諸葛亮是一個有著小聰明油頭小子,
片中的戰爭畫面就像兩個小孩在互拼龜派氣功
「我打到你了!」
「啊,我被你打到了」還要自己演出飛走的樣子。
所有的對話就像套好招一樣不自然,而且還要故意中招。
最後我悟道了,這不是一部戰爭片。
這是一部有很多臨時演員的武俠英雄片!(演得好不好是另外一回事)
----------------------- 分隔線 -----------------------
今天午夜前趕去看了這部電影,我想用我最近學到的單字來形容它。
Awesome!! Awesome!!
很久沒有這麼一部片使我久久不能自己。猶記得上一部感動我如此之深的片子是 [功夫無敵]。
首先,在寫我的白爛影評前先替大家回憶一下歷史背景:赤壁在哪裡?
赤壁在箭頭所指之處,一張圖片勝過千言萬語。
還沒看過片子的人一定會問:該不該去看呢?
施主呀,這個問題要問你自己!
我們先來做個小測驗吧。
□ 我玩過光榮製作的三國志系列如果你拿了很多勾勾,那我強烈建議你不要去看,千萬不要!
□ 我玩過吞食天地系列
□ 我看過火鳳燎原
□ 我看過環珠格格
□ 這是一部史詩大作
□ 這是一部戰爭片
□ 我相信有精彩的鬥智
我決定要開罵了,我才不管有沒有雷,不要攔我!不要攔我!
選角
首先是選角問題,老實說我一開始知道是金城武演諸葛亮,我的心就涼了一半。以前看過壹週刊採訪伍佰時,問到伍佰對金城武的看法,他是這個回答:像是空殼子一樣的人。
金城武演孔明一點都沒有聰明睿智的感覺!!
我覺得梁朝偉很帥,真的。帥歸帥,跟美男子還是有差距。
周瑜是美男子不是帥哥啊!
要是找個帥哥就能演,布萊特彼得也是帥到掉渣啊!
演技
記得曾經看過金城武的某部片,我覺得演得不錯。但在赤壁一戲中完全失敗。
別說金城武了,就連梁朝偉都演得不怎麼樣。
一個好的演員,會讓你忘了他是誰。忘了他本來叫什麼,是什麼個性。之前是不是演過法官、強姦犯、低能兒,你全都記不起來。你只感覺到一個「真實」的角色。
赤壁呢?金城武還是金城武、小燕子還是小燕子、志玲姊姊還是在演第一名模。我完全感覺不到螢幕上的人是偉大的政治家、還是迷倒周郎的絕世美人。
江東小霸王去哪裡了?我只看到一個一公尺高的鞭毛蟲啊!
亂世奸雄去哪裡了?那明明是一個目光短淺的老頭啊!
志玲姊姊的音質我本身是沒什麼意見,這就跟蘿莉一樣有人喜歡有人不喜歡。
但是讓我受不了之處在於:毫無感情!
我一直覺得她在戲中說話的方式就是林志玲。
當我意識到這一點時,仔細一聽其他人的對話才發現。
怎麼一堆人的情緒是乾的?
(尤其一開始在為百姓生命擔憂的時候,我難過到眼淚都快掉下來了:怎麼可以演得這麼爛)
我記得這種表達方式通常只會出現在英文課、園遊會、還有營火晚會的小隊表演時間。
我看著手上用錢買來的電影票,突然有種時空錯亂的感覺。
戰爭
戰你娘親!
連八卦陣都出來,我還以為我在玩吞食天地 II 諸葛孔明傳。
這是什麼鬼八卦陣,他們在玩貪食蛇嗎?
戰爭的規則是不是不能撞到牆?所以他們就乖乖地繞著陣型跑。
就在對方中計之時(手下都是低能兒,曹操你註定吃敗仗)
正義的將軍們開始一個一個出來放大絕,儼然是真三國無雙赤壁之戰加強版。
尤其張飛出來放無雙的時候,讓我想到這傢伙。
格鬥天王裡的鐵球大暴走!
我記得周瑜是軍事家,我記得周瑜是美男子,我記得周瑜足智多謀。
但我不記得周瑜是戰神啊!
難道因為影帝擔綱演出,就要來段以一挑百的打雜魚畫面嗎?
用箭刺穿脖子那一幕,我想有看火鳳的人都會有熟悉的感覺。
講到這我才想起來,他媽的戰場上還有人用輕功!
運鏡
因為平常有拍一點照片,看電影時我也順便看看導演怎麼取鏡。
奇怪,怎麼一大堆的臉部特寫?鏡頭好到你可以清楚看見誰的痘痘用妝也遮不住。可是,怎麼這種鏡頭一大堆?這是戰爭片吧?怎麼都只拍臉?怎麼都只拍臉?
而且吳宇森在這部片中很喜歡模仿駭客任務的子彈,不過把彈頭換成箭矢,湯換了藥倒是沒換。
公瑾跟小喬纏綿的片段,很明顯是要給觀眾一點殺必死。
但是雨水濺濕宣紙那個畫面是怎樣?是想用蒙太奇手法表現濕掉了嗎?
這不是史詩巨片嗎?怎麼變成二流不露點 R 片?
這時候插個火箭發射的畫面絕對不突兀!
老虎就別說了,我還以為我在看那種野外遇上猛獸的 B 級電影:幾乎沒有怪獸的全身鏡頭。是有那麼一兩個畫面,但是攝影機想用低畫質加晃動製造緊張的氣氛,最後搞得像是素人自拍。
老虎也有幾個局部鏡頭,很棒,我以為我在看十年前的霹靂布袋戲。
特效
我不想提了,每當我認真看,就對特效感到失望。
怪異
這部在官網上說是史詩大片,但內容很明顯不喜歡三國志
想走三國演義路線?我可以接受,沒關係。
可是三國演義中的瑜亮情節總要描寫出來吧!
但你瞧瞧他們一起談首曲子之後不斷惺惺相惜的樣子
要說周瑜會在晚上摸黑把諸葛亮推倒我都不意外。
孫尚香不但會給馬兒點穴,在那個女權卑微的年代,她可以當眾弄倒劉備,還給江東小霸王難堪。這已經不是無禮,不只白目,根本就不合邏輯!
結果諸葛亮還開始跟孫尚香談心,這個禽獸,她是你主子的妞耶!
還有劉備明明說不續弦眼睛還直盯著孫尚香,嘴巴說不要身體倒是挺誠實的。
我知道吹笛子那段是要表現出公瑾的親和力,以及擅長音律。但是安插在練兵的時間點整個就貽笑大方。就像演習視同作戰,練兵亦是嚴謹之事,怎能讓鄉民隨便走近。
都可以開音樂會了,要不要順便擺小吃攤?
就在我好奇編劇是誰的時候,把「赤壁 編劇」丟進 Google 就看到「匹女有責」這句話被揶揄一番。但我另有一個不解,「一時瑜亮」這句成語是指兩個才華洋溢不分軒輊的人擺在一起,但是帶有相互比較之意,在劇中使用的時機點非常奇怪!
還有一大堆想罵的,但是我也懶得打字了。
總之我能確定這不是一部史詩巨片,片中太多不合理讓人失望。
我明白赤壁之戰的故事龐大,想要在短時間內完整體現幾乎是不可能,他們選擇了上下集,卻依然做得很差。故事怎麼說由他們決定,但很明顯地他們說得很爛。
想要表現每一個細節卻又過度壓縮,使得情節不倫不類,突兀到我都不好意思看下去。有幾段我甚至摀住自己的臉忍不住叫一聲:天啊......
人說少不讀水滸,老不讀三國。因為三國故事精彩之處就是在謀略、在政治、在勾心鬥角。但是這些完全沒有在本片中有任何描寫。人物立場被過度簡化成兒童卡通。
除了戲份最多的瑜亮兩人之外,只剩下曹操的荒淫,以及小霸王的懦弱。其他人物的個性根本就是一張白紙,鏡頭帶過去就算了。
片中有不少笑點,幾乎是由周瑜、諸葛亮扛起捧艮與逗艮的角色,卻也讓我更加感覺到諸葛亮是一個有著小聰明油頭小子,
片中的戰爭畫面就像兩個小孩在互拼龜派氣功
「我打到你了!」
「啊,我被你打到了」還要自己演出飛走的樣子。
所有的對話就像套好招一樣不自然,而且還要故意中招。
最後我悟道了,這不是一部戰爭片。
這是一部有很多臨時演員的武俠英雄片!(演得好不好是另外一回事)
October 12, 2012
Walla Group
最近寫了一個小網站叫做 Walla Group :by movie fans, for movie fans
簡單來說,這個網站用來給你紀錄自己看過什麼電影,也可以寫下一些對某部電影的心得。
使用方法很簡單,就是點了右上角的 Login,允許 WallaGroup 存取 Facebook 帳號的部份權限之後,回到網站找到自己看過的電影就放入收藏櫃,找到想看的電影就放入待看清單,看到討厭的電影就給它一顆星,看到熱愛的電影就洋洋灑灑寫個五百字心得。
緣起
因為好友 John 跟楚楚這對因為金馬影展不小心走在一起的情侶,是徹頭徹尾電影迷。他們一直很想要有一個網站可供他們紀錄自己看過的電影與心得,才開始了 Walla Group 的想法。
我則是得了一種吃宵夜一定要看電影的病,大概每天午夜的時候就會煮一碗麵坐在電視機前亂轉,把一部完全不知道來歷的電影看完,才趕快上網查一下片名,接著在 G+ 或是 Facebook 隨手寫個心得。恰好老婆也是喜歡看電影又會忘記自己什麼時候看過的人,我就跳下去跟 John 一同做這個網站了。
莫名其妙
認識我跟 John 的人都知道,我們的領域比較偏向嵌入式系統。說要做網站還真的是沒啥經驗。細數我寫網站的經驗大概是
半年前我真的想不到自己會碰 bootstrap, jquery, javascript 這些東西,果真是世事難料。
第一次真正寫網站,許多 convention 或 best pratice 都沒有概念,還望各位先進給予指導。
此外
關於 Walla Group 有幾點小事情想說明
希望這個小網站可以帶給大家一點歡樂,也希望老婆可以開開心心地做電影筆記
簡單來說,這個網站用來給你紀錄自己看過什麼電影,也可以寫下一些對某部電影的心得。
使用方法很簡單,就是點了右上角的 Login,允許 WallaGroup 存取 Facebook 帳號的部份權限之後,回到網站找到自己看過的電影就放入收藏櫃,找到想看的電影就放入待看清單,看到討厭的電影就給它一顆星,看到熱愛的電影就洋洋灑灑寫個五百字心得。
緣起
因為好友 John 跟楚楚這對因為金馬影展不小心走在一起的情侶,是徹頭徹尾電影迷。他們一直很想要有一個網站可供他們紀錄自己看過的電影與心得,才開始了 Walla Group 的想法。
我則是得了一種吃宵夜一定要看電影的病,大概每天午夜的時候就會煮一碗麵坐在電視機前亂轉,把一部完全不知道來歷的電影看完,才趕快上網查一下片名,接著在 G+ 或是 Facebook 隨手寫個心得。恰好老婆也是喜歡看電影又會忘記自己什麼時候看過的人,我就跳下去跟 John 一同做這個網站了。
莫名其妙
認識我跟 John 的人都知道,我們的領域比較偏向嵌入式系統。說要做網站還真的是沒啥經驗。細數我寫網站的經驗大概是
- 高中電腦課老師教什麼是 html
- 大學的時候自己架的 Blog,弄個超簡單的 php 頁面來下載檔案
- 0xLab 的網頁 --- 在此之前這是我做過最複雜的網頁了 (汗)
半年前我真的想不到自己會碰 bootstrap, jquery, javascript 這些東西,果真是世事難料。
第一次真正寫網站,許多 convention 或 best pratice 都沒有概念,還望各位先進給予指導。
此外
關於 Walla Group 有幾點小事情想說明
- 只需要 facebook 帳號就能登入了。我們討厭註冊新帳號,這是我們目前想到最簡便的方式。至於 G+ 等等的其他帳號?未來有力氣再考慮吧 :P
- 我們跟 IMDB 定位完全不一樣,IMDB 的核心是「電影」,WallaGroup 的核心是「我看了哪些電影」。
- 我們用的資料庫叫 TMDB,相較於 IMDB 對於社群使用比較友善。但是缺點就是資料沒那麼好。
- 我們希望 User 在 WallaGroup 的更動可以貢獻回去 TMDB,不過左看右看現今是 TMDB 沒有提供一個比較好的機制。未來會努力跟他們談談看「拜託讓我們貢獻吧!」XD
- 身為一位阿宅,我很在意「資料能不能打包回家」。我一定會做一個功能出來,讓你可以打包自己寫過的資料 (應該會是 json 檔吧)
- 除了比較隱私的個人資料,大多數內容我們都盡量保持公開
- 在 alpha 版的時候有許多朋友協助測試、試用,非常感謝你們的幫忙,你們的意見我們都有確實記錄下來,只是在更新的進度上可能沒那麼快 (淚)
- 還有很多功能想做,我們會繼續努力的!
希望這個小網站可以帶給大家一點歡樂,也希望老婆可以開開心心地做電影筆記
July 3, 2012
JJ’s Studio
最近將會與合作許久的朋友 John[1] 一同以工作室的方式提供 Android 以及 Embedded Linux 的相關服務。工作室的名字就叫 JJ's studio。
從退伍後第一份工作以來,就持續過著賣命完成上級命令的生活,一直到了去年終於有機會喘口氣稍微休息,找回比較正常的社交生活,並且接觸一些自己從來沒有想過的領域。
這幾個月裡的走走停停,使得自己對於「目標」一事有更清晰的執著,更幸運的是有個認識許久的朋友擁有相同的目標。為了凝聚彼此的動能,我們兩個這幾天經過討論,打算以工作室的角色,用我們累積的技術與經驗為公司提供服務。
由於我們兩人在 openmoko 與 0xlab 的經驗之故,目前為止想要先將範圍鎖定在
- Embedded Linux
- Android app
- Android framework
若有相關的需求,歡迎寫信給 john@0xlab.org 洽談,John 會與我同步討論。
[1] JJ's Studio - http://asleepfromday.wordpress.com/jjs-studio/
從退伍後第一份工作以來,就持續過著賣命完成上級命令的生活,一直到了去年終於有機會喘口氣稍微休息,找回比較正常的社交生活,並且接觸一些自己從來沒有想過的領域。
這幾個月裡的走走停停,使得自己對於「目標」一事有更清晰的執著,更幸運的是有個認識許久的朋友擁有相同的目標。為了凝聚彼此的動能,我們兩個這幾天經過討論,打算以工作室的角色,用我們累積的技術與經驗為公司提供服務。
由於我們兩人在 openmoko 與 0xlab 的經驗之故,目前為止想要先將範圍鎖定在
- Embedded Linux
- Android app
- Android framework
若有相關的需求,歡迎寫信給 john@0xlab.org 洽談,John 會與我同步討論。
[1] JJ's Studio - http://asleepfromday.wordpress.com/jjs-studio/
Subscribe to:
Posts (Atom)




