2007年12月18日星期二

《色戒》赏析

google, 新浪上可以看到很多专业精彩影评,肯定很有助于加深理解和回味这部经典作品。看完电影和影评,费点时间记录一些我个人认为非常重要的情节的理解(电影完整版):
1. 王佳芝和自己的同学第二次性交,王佳芝采取的是主动的姿势,身体很兴奋,但脸上毫无享受兴奋之情,有嫖妓经验的同学老实的说“你这次好像有点反应”,王佳芝无不气恼的说“我现在不想和你讨论这个”。

这个情节重要在非常隐蔽的写实,虽然不如影片中另外几次裸戏那么紧张细致,但这是影片写实风格的一个标记,这为王佳芝最后不得不死的结局进行了一个隐喻。就像《红楼梦》于大梦幻处写人物在社会环境中的必然命运一样,黛玉不得不死,不是黛玉多病,而是黛玉可怜。王佳芝就是这么可怜,她是一个花样年华的女大学生,有着对浪漫爱情的向往,对国家民族的诚挚的爱和忠诚,可是看到她在机械的性交的时候,这一次根本没人强迫她,但没人关心她重视她,这和黛玉葬花是完全一样的可怜处境,所谓字字见血,无一字可删,因此,你可以跟着导演大哭一场了。
好的作品就是这样,笔力深厚,于小藏大,于不经意处扼住精魂,如同上乘兵法,春秋巨力,看多了脂砚斋重评石头记和牡丹亭,就能熟悉这种对社会、时代进行反思的艺术技巧,虽说属于技巧,其实就是魅力。

2. 在日本餐馆,汉奸头子也能体会到那时日本人的歌舞如哀嚎,其实他们杀得人越多越恐惧。
这是侵略者和伪政府的内心恐惧,那为什么还要继续杀人呢,因为越恐惧越要杀人!在这里你看到的是无助的历史结局,又一次,点明了王佳芝不能冷酷的执行任务——作为业余级特务的悲惨结局,不论易先生是否可怜爱惜这个娇好性感可爱的女性。痛恨汉奸或者王佳芝的人大可不必在乎王佳芝的死活,但是这个杀人的地狱式循环是所有依赖暴力方式生存的人无法挣脱的紧箍咒。

3. 关于最后毒药一幕,好像很多影评都说王佳芝此时犹豫了,还对生存抱有一线希望或者易先生会特殊关照她,我认为这个大大的误解,是以超然的姿态对王佳芝的侮辱。仔细看那一幕,王佳芝冒着同志和她自己生死攸关压力给汉奸头子告警泄密,那一刻她真的在乎那已饱受摧残的生命么?事败后道路立刻被封锁,在人力三轮车上,她听到人群中一个师奶着急回去烧饭的对话很自然而木然的一笑,很平静的取出毒药-——可是还有必要吞服么,他们这帮sb学生已经没有任何情报价值,等待他们的就是简单例行的询问、行刑、处死,死于自己伪政府的法场上。而她死之前还可以看到她曾有好感的男同学——她一下子回忆起在香港学校剧场里的那一幕——和她的几个同学一起死,至少尸体不孤单。

好片~李安,向你敬礼!

2007年5月21日星期一

牡丹亭上三生路

终于看过了一遍完整的青春版昆剧《牡丹亭》,发文纪念自己祝贺一下。
着迷牡丹亭的“原来姹紫嫣红开遍,似这般都付与断井颓垣”还是因为央视87版红楼梦电视剧第十集“听曲文宝玉悟禅机”结尾的那一段乐曲——就是林妹妹与之共鸣的那首“游园 [皂罗袍]”。详见《脂批石头记》第二十三回“西厢记妙词通戏语 牡丹亭艳曲警芳心”。
当时我根本没注意到也不知道牡丹亭这出明代戏曲,上网搜了歌词才知道的,果然是让人感觉“满口余香”。立刻上土豆网看相关视频,好啊,妙啊。听了好多遍,可就是那“水磨调”的昆曲实在难学出来。
很快,我就弄到了DVD版的青春版牡丹亭来看,称它青春版就是因为主要演员很年轻,里面小生俞玖林的演唱很出彩,网上有人说他真假声转换技巧很高超。他的老师石小梅在新浪有个博客,里面有她唱的《玉簪记》琴挑里的一句(短短一句十来个字,足足唱了2分47秒,呵呵),反正我不懂怎么评赏,只会由衷佩服,叫一个“好!”。
这部DVD实际演出分三天演完,主要演员来自苏州昆剧团,舞美、灯光、剧本、出品等都是台湾的,是我见过的最全的,最多还原汤显祖原戏本的牡丹亭昆剧。而这“全”,就是该部剧最有价值的贡献。说实话,我这几天,听了看了多个版本的牡丹亭,这青春版的表现虽然非常靓丽,但是旦角的唱功和身段——特别是最出名的《游园》一段还是不如我看到的一个江苏昆剧团厅堂版折子戏(就是在传统方形的戏台里表演)水平高、韵味足、动作繁密精巧(虽然我也是不折不扣的门外汉,只能凭感觉欣赏)。
其实,舞台版全本的《牡丹亭》,即使因为演员年轻功力尚未炉火纯青(据说昆剧里旦角都是30来岁才能出师)相对有些稚嫩,却也能让观众如痴如醉,随着剧情变化或哭或笑。可见出品人“忠实”于原著的高明!
作为作品的观众,最讨厌导演编剧自以为是或者迫于外部干预对剧本大肆删改了,如果是因为时间、经费、艺术形式等关系精简当然无可厚非,但是如果把观众当作小孩子,呈现另一个风味的牡丹亭,还说是“全本牡丹亭”的话,那就已经不是汤显祖的“牡丹亭”了。我现在就特别想看到讲述宝玉的好朋友秦钟的央视87红楼梦被删掉那部分!

谢谢出品人白先勇呈献给现代中国人的全本牡丹亭!

呵呵,我现在特别习惯昆剧里的柳梦梅用特别高的声音对这杜丽娘喊” ji~jie~!”(姐姐)。

2007年5月2日星期三

wget离线下载

这里谈的方法比用-m参数稍复杂一点,主要是为了绕过一些服务器用referer这个http header防止离线下载的限制,用此方法请注意不要公开传播下载的文件,应该尊重站长和原作者为大家提供高质量的资源的劳动。

1. 先用wget下载首页,比如index.html,查看源代码,把里面藏有密码的url拷贝下来待用,比如我看到一个首页里藏着“http://59.42.71.245:88/ndatin.aspx?param=ABdXNlcm5hbWU9....",肯定是密钥无疑了。
2. 用wget 加-m参数,再加--referer=URL参数来离线下载资源,URL就是第1步获得的那个地址。

好了,这个方法的确比用cookie限制来的隐蔽。不过看来wget的作者早就碰到这样的问题了。不得不服!

2007年3月24日星期六

看红楼须看脂砚斋评

这两天湖北台在黄金时间重播87版红楼,有几集看得过瘾,有的对话没给出字幕,便去寻原文来对。因记得有人说“脂砚斋”是该书的审校者,因此搜的就是那大名鼎鼎的“脂砚斋评石头记”──《红楼梦》流传最好的版本。
找了对应回目,一路看下来,才发现我们这些现代人要欣赏红楼,一定要结合脂砚斋评语才能尽可能多的领略创作的细节和绝妙处,当然也能看到她认为某些值得作者再推敲的地方。

总之,感觉就像有个博学通古的读伴一样。怪不得有的人就靠写评注出成果的,呵呵,朱熹?

不过,即便是审校者,也并不一定明白知道作者的用意,性别和成长环境差别必然影响对事物的看法,女人总是容易陷得过于细微,何况是个才女。

2007年3月18日星期日

旧日志备份

Sunday Feb 11, 2007

习题6 上下文无关文法

形式语言与自动机,王柏 杨娟,北京邮电大学出版社 第二章习题6
构造上下文无关文法产生L={w|w属于{a,b}* , 且a的个数是b的两倍}








答: S->aXaXb, S->bXaXa, S->aXbXa,
X->aXaXb, X->bXaXa, X->aXbXa, X->e (e表示空串)
思路:S中任意位置可以是a或b或e(开始,中间,结尾),且a的个数是b的两倍——注意S不能为e,故引入非终结符X。

右线性文法习题

形式语言与自动机,王柏 杨娟,北京邮电大学出版社 第二章习题5

找出右线性文法,能构成具有奇数个a和奇数个b的所有a和b组成的字符串。

答:右线性文法的形式是A->wB或A->w, 所以从S开始,第一个字母是a或b:


S->aA, (1)

S->aB, (2)

因为S只能包含奇数个a,所以A中只能有偶数个a,限于右线性文法,需引入非终结字符X:

A->aX, (3)

X->aA, (4)

X->a, (5)

A->e, (e表示空串) (6)

同时A也可以包含奇数个b,因为S有奇数个b,根据(2)构造:

A->S, (7)


同理构造B:
B->bY, (8)

Y->bB, (9)

Y->b, (10)

B->S, (11)

B->e (12)


综合(1)~(12),就是所求文法的生成式P。

能不能再精简呢?



Saturday Dec 23, 2006

最近装的Firefox插件

  • Firefox showcase:一个添加各个tab页缩略图的超有用插件,试想一下,你已经打开了20+个tab,而你又像我一样从来不爱关掉工作用的PC,于是打开 的tab越积越多,要快速找到某个标签页或者整理一下,你一定会抓狂的,直到你安装了showcase...
  • POW 不是战俘,是Plain Old Web server,这是个运行在浏览器里的Web Server,货真价实,而且还能编服务器端脚本(没错,就是javascript)。干嘛用,别人我不知道,我用来做自动配置proxy,只要你喜欢编 程,你会喜欢这个小玩意的,你可以玩AJAX!

POW 0.07有个中文化的bug,导致你打不开option,没关系很容易改,看这儿

javascript API ref: http://linuxmafia.com/faq/Web/autoproxy.html

Tuesday Dec 19, 2006

wget with cookie

去otn下载软件还要登录,下载又断断续续,不得已请出wget,看看他的功力:

wget -b -t0 -c --cookies=on --load-cookies cookies.txt http://download-west.oracle.com/otn/linux/oracle10g/10201/XXXX.cpio.gz

嘻嘻,搞定!和去sun下载不同的是,sun在url里直接放了sessionid,所以不用那个cookie.txt(我从firefox的目录里拷出来放到另一台wget实际运行的机器里,空间大,又有UPS)。

Monday Dec 18, 2006

我有多怪异"nerdy"?

虽然不知道nerd的确切来源,但说一个有理工科背景的人有多怪异,基本上就可以用nerdy来形容。我有多nerdy,我是不是nerd,我不知道,在一个留美博士研究生的一个weblog里,看到一个测试你有多nerdy地链接,犹豫了一下,对题目忍不住好奇就点进去做了测试,没想到,比那个博士生的分还高,还怪异。

I am nerdier than 72% of all people. Are you nerdier? Click here to find out!



后记:实际上,分数越高越不nerdy.

Friday Dec 08, 2006

用touch解决make的问题

make的时候部分文件修改时间比系统时间晚,导致出现死循环,把所有文件重新touch一下:

find . -depth -print0 | xargs -0 touch -mc

命令串起来就像文字串起来,跟计算机说话的感觉不错 :)

Sunday Nov 26, 2006

tor+privoxy设置

真的很讨厌,ubuntu 610下privoxy的默认设置不会自己加上使用tor,需要手动设置。按照tor的README.privoxy修改/etc/privoxy/config即可。 没有tor查资料还真麻烦,很不爽!



补充一个小技巧,适用于netscape/mozilla/firefox/iceweasel系列浏览器:

  • 为了自动使用proxy来访问某个网站,其它网站使用直接连接,在自动配置proxy的选项中可以指向一个自动配置文件:



这个文件是个javascript脚本,内容如下:

function FindProxyForURL(url, host)
{
if (dnsDomainIs(host, ".wikipedia.org"))
return "PROXY localhost:8118";
else
return "DIRECT";

}
具体语法参看我google到的一个网页

Monday Nov 06, 2006

Sybase and Tomcat Configuration Notes

测试需要,为Roller配置使用Sybase数据库。这里是我创建的wiki页。 http://rollerweblogger.org/wiki/Wiki.jsp?page=Roller2.3InstallationWithSybase

Tuesday Oct 31, 2006

飘飘飘

2007年3月11日星期日

单侧浆划艇

名词解释
单侧浆:只在艇的一侧划浆。
划艇:不是划船,因为划船特指背对前进方向,呵呵。

与同事争论过能否单侧浆划艇,按照简单的物理知识,这是办不到的──船只会打转转嘛!

可是我亲眼见过一个年轻的渔民这么干过,一个人飞快的划船冲到湖中央把我老爸的鱼钩从渔网上解下来,呵呵,帅呆酷毕了,崇拜到死!电视里也放过一个缅甸还是泰国(抑或老挝?)的少数民族,就生活在湖上,男人们都用一只“脚”非常娴熟的摇浆划独舟,浆靠近舟尾,但还是架在侧边的。

昨天,终于有机会尝试了一把,如果你看到莫愁湖上有个人用一只浆笨拙的划艇,那就是我啦。我摸索的结果(可能不科学,但已经可以比较熟练的驾驭方向和速度,停靠码头等):
1. 动作一:坐船尾最后一排座位,正常划桨,划到末端要靠近船侧。可锻练腹外斜肌或背阔肌。
2. 动作二:转浆面,用力把浆向外拨出水面,这个动作其实就是摇橹。可锻练背阔肌暴发力。

上面两个动作有很多小技巧,都可以锻练到肱二头肌,说起来太麻烦,呵呵,可以免费面授切磋 :-) 物理上分析,两个动作产生的力距在前进方向上的垂直分量可以是相反的。

还有个新体会:和游泳一样,水上运动必须熟悉水性,也就是水上运动的节奏,回想一下,蛙泳的动作即使正确,但如果呼吸和连接的节奏不对,你要么呛水,要么游上几米就没力气了。划艇也是有节奏的,要体会船本身的摇摆,在恰当的时机发力和做动作才能稳定前行,或者及时根据风速、浪、水流来控制方向和速度。

免责申明:注意安全,湖水无情,我不保证上述动作的安全性,不承担由此可能带来的生命财产或任何其它损失的责任。

2007年3月9日星期五

带和不带epsilon转换的NFA的等价

以希腊字母epsilon作为空字符的符号(下面简写为e),带e转换的NFA(不确定有限状态自动机)和不带e的NFA可以通过形式化证明它们的等价性,以下分别记为e-NFA、NFA,他们的转换函数分别记为ed和d。北邮出版的《形式语言与自动机》在这个证明上让我看得不清不楚(一方面是证明步骤不够清楚,但主要是我自己理解的原因),google帮我找到另一个说的很清晰的证明, 只是这个网页是从其它文档转过来的,一些数学符号转换错了,但可以猜出来。

这里想用我自己的理解来说明证明的最后一个步骤:
若 d'(q0,wa)包含q0, 由转换函数的相等性,ed'(q0,wa)也包含q0条件1),初始状态q0如果被NFA最终状态集F1所包含( q0属于 F1)但q0如果又不属于e-NFA的终止状态集F( q0不属于F)──F与F1不等(F1=F U {q0})。需要证明,F一定有状态被ed'(q0,wa)包含。

此时,由e-NFA转换函数的性质和条件1,q0的epsilon闭包(记为 e*(q0))一定包含于 ed'(q0,wa),因此 e*(q0) 与F的交集A必然在ed'(q0,wa)中。而根据F1定义知,此时集合A非空,即F一定有状态被ed'(q0,wa)包含。此时,结论也成立。

好笑的是,我在南京新华书店看到电子科技大学一位老师写的《形式语言与自动机》里的同一个问题的证明有低级字误,证明里分别讨论“q0不属于F”和“q0不属于F”的“两个”情况,呵呵,而且后面一个步骤的证明居然赫然推导出:其实q0不可能属于F,我的天哪,瞬间晕倒!

google, 我的大学的门。

2007年2月28日星期三

debian的日志循环

我发现一台debian里的某个日志文件总被截断并重新创建,而且每次创建的文件的访问权限不是我所希望的,于是我检查了logrotate的配置,测试ok后到第二天发现,权限设置又不是我所预期的,气得我牙痒痒。重新检查发现:
debian sid下sysklogd自带了管理系统日志文件的循环备份的功能,具体配置文件在/etc/cron.daily/sysklogd。(实际上是使用了debianutils包里的savelog命令)
但大家更加熟悉的是logrotate所提供的日志循环功能。按照UNIX的简单哲学,我更倾向于用logrotate来管理所有的日志文件的循环备份。
用logrotate要注意的是,如果程序在不断的写日志文件,应该用copytruncate参数来保证原始日志文件不动。这时create参数会被忽略。
同时,要避免savelog干预我的日志文件,可修改/etc/cron.daily/sysklogd和/etc/cron.weekly/sysklogd,在用到syslogd-listfiles命令时加 -s 参数来过滤掉特定的日志,比如我的:
for LOG in `syslogd-listfiles -s ha` # Do not handle HA logs. --lanyufeng