关于霏昀

☑80后 ☑双鱼 ☑猫 ☑技术男 ☑Web前端 ☑秋裤男 ☑窝囊废 ☑内拉祖里 ☑弃机从文中 ☑右派 ☑开放社会敌人的敌人

二月读书笔记


叫魂——1768年中国妖术大恐慌(Soulstealers: The Chinese Sorcery Scare of 1768)》,孔飞力(Philip A. Kuhn),1990年著。陈兼/刘昶译,上海三联书店,1999年。

寒假期间写了四篇长文,其中叫魂的书评是我觉得其中立意最好的,全不似三体苍井空那两篇纯为调笑。可惜从结果上看,叫魂这篇却写得最差。托辞说不走心,比如回头看如果当初的大段摘抄全改成复述,文章的感觉会很不同。不过另一方面,心里清楚自己的浅薄,一写起这样的东西,短板就曝露无疑。真让人扰恼。

这本书的妙处有二。一是阐明了所谓的“君主官僚制度”内部君主与官僚、专制权力与常规权力的互动方式,这有助于理解清朝乃至帝制中国的朝廷为何以及如何处理事件。二来本书最后一章从全局角度阐述了君主、知识分子、民众之间的结构,特别是其中引入“受困扰社会”这一概念。我认为这个概念或多或少地揭示了中国社会时至今日依然存在的一些系统性缺陷。这是中国社会近两个多世纪来,某些灾难频繁发作的根本原因,也是我们在未来不得不面对的重要问题之一。

“一旦官府认真发起对妖术的清剿,普通人就有了很好的机会来清算宿怨或谋取私利。这是扔在大街上的上了膛的武器,每个人——无论恶棍或良善——都可以取而用之。在这个权力对普通民众来说向来稀缺的社会里,以‘叫魂’罪名来恶意中伤他人成了普通人的一种突然可得的权力。对任何受到横暴的族人或贪婪的债主逼迫的人来说,这一权力为他们提供了某种解脱;对害怕受到迫害的人,它提供了一块盾牌;对想得到好处的人,它提供了奖赏;对妒嫉者,它是一种补偿;对恶棍,它是一种力量;对虐待狂,它则是一种乐趣。”


潘达雷昂上尉与劳军女郎(Pantaleón y las visitadoras)》,巴尔加斯·略萨(Mario Vargas Llosa),1973年著。孙家孟译,人民文学出版社,2009年。

我们读小说序言评论时,常能看到一个说法叫“小说的可能性”,对作家很nb的评价之一就是“扩展了小说的可能性”。这种说法多少有一些玄的东西在里面,比如人们特喜欢说博尔赫斯扩展了小说的可能性。我们第一次读博尔赫斯一定会觉得这和我们读的那些小说不同,但是究竟为什么不同就不是一两句话能说清楚的了。

当然这个例子举得未必好,因为此处的玄更可能是博尔赫斯小说本身的玄,而不是“小说可能性”这一说法的玄。吴晓东老师就曾经说博尔赫斯写的是“玄想小说”。比如《秘密的奇迹》里,我们没法简单说这是一个结构上的实验,因为有一些东西藏在克莱门蒂诺图书馆的四十万册藏书中某一卷某一页的某一个字母里——你会发现即使脱离了不同的故事时间、叙述的嵌套,这一说法依然保持着它固有的魅力。

扯远了,其实我是想说,某些时候我们还是会在读一部小说的时候,特别直白地体会到“原来小说还可以这样写”,而略萨的《潘达雷昂上尉和劳军女郎》就是这样的小说。

你看,我甚至不能从这部小说中截出一句话来作为摘抄,因为所有碎片结合成了如此完整的整体。


地铁》,韩松著,上海人民出版社,2010年。

韩松一直是有争议的作家,批评他的人(安替算是最新一个)直言不知道他在写什么。

这里的奇妙之处在于,很多人读小说时,如果这小说不是现实的,就一定要确认出它是现实的某种反映——比如地铁反映工业文明、地铁惊变就反映工业文明下人的异化。然而这是一种多么无聊阅读方法呀。小说的魅力不恰恰藏在它与现实之间那些晦暗不明的隐喻中嘛?作为读者,我们该去试着理解那些隐喻,因为这样我们才不会面对完全的无意义。然而另一方面,我们是否应该把模糊的隐喻落实呢?一旦落实,小说还是活的小说嘛?我想,这就是为什么我们不该问,像韩松这样的小说到底在讲什么,因为这个问题本身就犯有谋杀的企图。

写到这,我倒是又想到了另一种小说的读法——某种“逻辑病”。患有“逻辑病”的人特别喜欢用完整的逻辑链条去取代小说中模糊的隐喻。我想到的例子倒不是小说。押井守电影版“空中杀手”的观众就特别喜欢挖掘Teacher的含义(宽恕那些科幻宅吧),他们一会儿发展处Teacher是AI的理论,一会儿又搞出一套Teacher是水素老情人的说辞。实际上他们并不是在挖掘Teacher的含义,而只想要把Teacher从一个隐喻变成实在人物。也许对他们来说,故事里每一个名词都必须有实在的意义。这好无趣。

“他们以蚁的形态,以虫的形态,以鱼的形态,以树的形态,成群结队、熙熙攘攘向不同的中转口蜂拥而去。在无数的站台上,一组组的列车,正整装待命,预备向不同的世界进发。”


智血(Wise Blood)》,弗兰纳里·奥康纳(Flannery O’Connor),1952年著。蔡亦默译,新星出版社,2010年。

这本读得偏快了,没抓住太多东西。

有意思的地方是,故事中的视点曾聚焦到其中几个主要人物——黑兹尔、伊诺克、萨巴思、女房东等等。但是叙述里的聚焦既不是内聚焦也不是外聚焦。比如当视点转移到黑兹尔时,它不仅仅描述黑兹尔的行动,而是包含了一定量的心理活动——黑兹尔做决定的原因,甚至还为此追溯到回忆中。但是另一方面如果我们分析这些想法的话,又会发现这些想法并没有真正进入人物的内心,理由背后更深层次的意念是隐而不显的。因此虽然我们看似了解了人物的动机,但是又不理解这些人物。

不过写完上面那段之后,晚上听了一点课(这本书是“1945年后的美国小说”第二本阅读书目),我才发现可能是我的阅读背景有问题。“1945”上重点谈到了奥康纳的天主教背景,这让我意识到缺乏必要基督教文化背景——对赎罪、基督、圣心这些概念的无反应——可能才是我认为人物深层次动机不明的真正原因。

错误的理解会不会催生一种有趣的写法?

“‘我喜欢他那双眼睛,’她观察得很仔细,‘总是一种视而不见的样子。’”


床笫之间(In Between the Sheets)》,伊恩·麦克尤恩(Ian McEwan),1978年著。周丽华译,上海译文出版社,2010年。

这本读得也颇失望,不知道是不是因为我静下心读。

两碎片。背景知识问题,一开始我没读懂这是一篇末世小说,发现之后重读还算读出点味道来。但这就是唯一一篇……

色情和既仙即死,让我觉得除了畸恋之外就没有东西了。宠猿好一些,因为除了畸恋之外还能剩下一点点什么——面对打字机把自己的作品重新敲一篇,但这和畸恋有毛关系…… 心理之城就是那种你看了开头就知道结尾的东西。一来一去?干脆没看。

段子是:床笫之间,床第之间,我不认识字……

“现在我在这里,但要她在椅子里转过身并注意到我,似乎是一个不可能的想法。”


文学批评导引》,王先霈/胡亚敏著,高等教育出版社,2005年。

看这种书就和看谭浩强的《C程序设计》差不多。虽然未来你很可能看不起这样的书,甚至隐约羞于承认自己从这样的书读起,但是你却不得不承认,现阶段这书看起来还真有用处。

“批评家必须以马克思主义、毛泽东思想、邓小平理论作为提高思想修养的依据和指导,切实用社会主义先进思想武装自己的头脑和指导批评理论和实践活动,提高思想觉悟和思想水平。”


内裤从哪里来?——从一包内裤看中国(Where Underpants Come From)》,乔·本尼特(Joe Bennett),2008年著。吕博译,中国轻工业出版社,2010年。

作者的动机很有意思:因为在新西兰超市发现一包6.5新元五只装的内裤,作者很诧异如此廉价的货品是如何成为可能的。所以作者期望回溯产业链条,查看内裤的生产过程,进而从这个角度去了解中国。

遗憾的是,作者最后并没能找到一种有效的回溯产业链的手段,因为其中涉及一些商业秘密,所以并不是所有人都对作者包有配合的态度。结果严格意义上讲,作者并没能完成他在开篇提出的构想。于是这本书也有些虎头蛇尾,更像一个从未接触中国的老外初到中国的游记。当然作者的写作不乏有趣的地方,但也就是仅此而已吧。

“当地铁到站停车后,车门和隔离墙上的自动门简直是正好同时开启,而且两层门对得很精确。即刻有两股人流,上车的和下车的,之间只相隔半米站台,直接朝着对方走过去,混成一团。几秒钟后,人们之间的对立结束。两股人流交换了位置。车门和自动门同时关闭,我就这样错过了这趟车。”


坦克猫 No.07 – 2011.02

导言

我该谈点什么呢?

谈谈今天的雪?谈谈 2 月 20 号那糟糕的天气?亦或是谈谈我很喜欢的格非和我一直记得的《褐色水边》中的棋?

可是你看,我其实什么也谈不出。

所以你还是看看他们的文字吧。

—— 2011.02.26

目录

格非: 平人的潇湘(人物)
徐友渔:昆德拉、哈维尔和我们(哲学)
推倒柏林墙:放开那个乞丐(社会)
芦笛:一个大汉奸的忠诚观(社会)
张大军:中国对外开放时代的终结及其原因和后果(政治)

下载

坦克猫 No.07 – 2011.02.pdf
坦克猫 No.07 – 2011.02 (大字体 for ipad).pdf

往期下载

蒼井そら为什么重要

“你工作上的同事,你原来在工作之中只认识他工作这一面,但是你上他Facebook,你发现他原来喜欢狗,你发现他还喜欢养花,你发现他很讨厌苍井空,我怎么老说苍井空呢……” —— “开卷八分钟”,梁文道

你看,忽然那么一天,到处都开始讲苍井空。仿佛人人都怕落了后,忙不迭地把“苍老师”挂到嘴边,夹带“苍老师”的段子也随着横飞。结果先有百万的微博关注,接着便是国内外媒体的报道,最后连那一帮“现象家”们都开始分析起“苍井空现象”了。

这时候,你,对,就是你——一位读纯文学、看艺术电影、听古典、登山徒步、玩单反、品红酒、熟读弗洛伊德荣格拉康,特立独行、卓尔不群、品位出众、散发浑然天成气质的非凡人物——当有人开始当着你的面,大谈“苍老师”、“空姐”时,你该怎么办?

什么?你说你打算随声附和,平易近人地讲几个不知从哪看到的“苍老师”的段子,或者干脆放下身段提提你更耳熟能详的兰兰?我的天哪!我看你还不如给大家讲讲你那个装满低质量rm的隐藏文件夹,直接把自己变成大家茶余饭后的笑料算了。

不要犯上面那种错误。记住,你是有品味的高雅人士,放弃任何彰显自己个性的机会都可能使你丧失社交圈核心的地位——试想一下,以后每一次话题引向苍老师时,你的隐藏文件夹都会被重新提及,多么可怕!

卓尔不群的你不可能喜欢已经泛滥的苍井空。事实上,当有人斗胆在你面前提起“德艺双馨的苍老师”,你通常会不动神色地听完,然后露出你那招牌式的略带鄙夷的微笑,“你指的是蒼井そら(不要用苍井空,而用日文发音Aoi Sora)?(此处轻笑两声)什么时候这位一年6片、演艺界吃不开反倒靠发片维持关注度的大bei儿头也算德艺双馨了?”接下来是斩钉截铁的语气,“蒼井そら的态度决定她的演技从06年开始就不再进步了。”如果此时还有人不识时务地开腔,你只消说,“去看她最新的soe523!”对方显然已经被你震住了,这时你再带点说教口气地补充,“拍这个系列的都是S1的当家花旦,你可以对比一下Akiho的286以及Yuma的386。”

就这样,对方恍惚间幻听486和586时,你已经完全掌握了话题的主动。当然,这只是一个开始,为了继续表现你出众的品味,你还应该参考以下建议:

首先,你不喜欢任何一个人人皆知的现役大牌。当有人提起她们时,你要趁势无情地奚落。这包括但不限于:蒼井そら、吉沢明歩(你欣赏她的敬业态度,但追求完美的你不接受任何填充物)、Rio(你对柚木 ティナ表示一定程度的认可,但看看Rio的锥子脸)、松島かえで(她冷淡的表演对注重演技的你毫无吸引力,你还可以从容不迫地点评她复出后惨淡的皮肤状况,如果有人赞美她的身材,你就不失时机地指出其实她只有5尺3)、西野翔(指出她的早稻田出身是中文世界一些毫无根据的以讹传讹,事实上她的出身和身材一样单薄)、麻美ゆま(你不喜欢她老气的长相,毫不留情地嘲笑她的斗鸡眼)…… 除此之外,你也不喜欢任何传说中隐退的人物,那是一份很长的列表,但你只需遗憾地指出她们“太多借位演出”,就轻易将其逐出讨论范围。

褒扬一些2008年前后出道的中生代相对安全,比如“初音みのり在soe289和363中重新定义了激情演出”、“冬月かえで矫正过牙齿后容貌无懈可击,而pdg438简直是演技弥补身材劣势的典范”。需要注意的是,有时候你提及的人刚巧被旁人所知,那你就要果断地痛下杀手:“我刚才指的是h.m.p的明日花キララ,她移籍prestige后的片子惨不忍睹”。考虑上面这一情况,提及一些年代久远并且演出不久即隐退的无名之辈往往更加可靠,“是芹沢遥奠定了digital channel早期的风格”——你通常不必为此类的胡说八道担心。

虽然这个领域中女性才是焦点。不过一些针对男士的发言更容易让人“察觉”你的渊博,“论相貌南佳也的确出众,但是清水健更能激发对方的潜能”,“即使不像周杰伦,东尼大木也有其引人瞩目之处”。

煞有介事地使用影片编号而不是冗长的片名:“对比hodv20574和575,你该发现同时期的雨音レイラ更为出色”,没人知道你在说什么,不过这不妨碍他们觉得你“真的懂”。另外,按系列讨论片子,这好比从影片序列的角度分析电影,可以增加你的专业感,“09年1月开始digital channel系列停摆了近6个月,此后的supd060较之前作风格全然不同”。联系不同片商的同风格作品则更好,“对比iptd625、646和pdg438,无疑premium更好地抓住了S1的精髓”。

讨论作品而不是片商,因为后者争论和不确定的地方太多,加之人员流动大,错误观点、过时信息都容易脱口而出。如果必须讨论,你厌恶巨无霸北都和SOD,更喜欢规模小独立性强的JHV和prestige。

不谈论步兵,用你的招牌微笑招呼所有和你讨论步兵的人。万不得已,和他们谈sky angel或者步兵厂牌的海外注册地,以此表明你不是不懂只是不屑。

关注剑大的博客,以免错过やまぐちりこ这类大事件,但如果被问及是否关注该博客,则要做出很少看并对一剑和夜影(此处不可用敬称)的品味不苟同的样子。

以上,你已经可以击败大部分的“中低端玩家”。

最后,万一你碰到了真正的高手,请记住一定避免和他谈论任何实质性的话题。目前可信赖的救命三招是:首先和他聊聊阅片无数导致的冷淡(虽然你可能毫无障碍,但不排除他对此感同身受);接着和他谈当下的“苍老师”热,缅怀过去为看片而看片的纯洁时光 (他大概和你一起唏嘘不已);最后,分析人们争相谈论“蒼井そら”的心理动机和社会背景,指明这种以“蒼井そら”为标签武装自己的行为,源于集体无意识对官方“高雅”的反抗,再将这一行为与以“阿伦特”为标签对抗“极权”的行为相联系,笑谈自己正在写一篇名为《蒼井そら为什么重要》的文章,藉此把整个话题导向人文社科领域。

而那儿不正是你最手到擒来的阵地嘛?

叫魂的幽灵

叫魂妖术:术士们从受害者(多为妇女儿童)的发辫末端剪去一绺,再作法于这些毛发,便可使受害人发病死去。

一、 1768

“1768年,中国悲剧性近代的前夜。…… 一个幽灵——一种名为“叫魂”的妖术——在华夏大地上盘桓。”

1768年(乾隆三十三年)8月,36岁乞丐张四携其11岁的儿子秋儿到达宿州。此时张四还无法预见正波及全国的“叫魂案”即将给他带来的厄运。12日,父子二人来到宿州赵家楼。他们与另两名乞丐一同在庄首赵某的门前卖唱乞食。赵某的吝啬引发乞丐们的愤怒和辱骂。本就对这几个外乡人有所怀疑的赵某警告他们,“近日这里有剪辫(叫魂)犯,你们最好快滚。” 张四气不过又骂了一回,这才离去。没行出多远,赵家的雇工便将四人抓回,私刑打成重伤。赵某又将一绺头发混入张四等人的随身物品,接着便向县府告发了这些“叫魂犯”。

其时,全国的官僚机构正为乾隆的盛怒所驱动,焦头烂额地搜寻叫魂案的主犯——其中一名正是活动在距赵家楼三四百里苏北地区的张四儒。官府很快注意到了这一案情“重大突破”——张四必然是张四儒的化名。地方官府获得张四口供的过程未被史书记载。无论如何,对剪辫叫魂一事“供认不讳”的张四父子随后被解往北京由军机大臣亲自审问。10月11日,到达北京的张四已经奄奄一息。但他在随后的审讯中当堂翻供。军机大臣将供出张四儒的案犯靳贯子带来对质。靳贯子却忽然改称张四儒的名字系属他遭遇逼供时捏造的。军机大臣为这混乱供词所困扰,只得命令各省进一步的调查并等待结果。

然而死神从不等待。10月25日,张四死于狱中。11月1日,乾隆降旨停止了对叫魂案的清缴——因为不断的证据证明叫魂事件始于一些荒谬的谣言。

以上是孔飞力教授的著作《叫魂——1768年中国妖术大恐慌》中的故事。这部著作中,张四的遭遇并非个案。而除却这些有名有姓的“重犯”,书中还不断出现类似“被愤怒的乡众殴毙”的字句。

在全书的第九章,孔飞力教授通过叫魂这一全国性运动对清朝皇帝与官僚机构之间的协作制衡进行了精妙地解剖与构建。然而我注意到在对本书的诸多评论中最常被引用的是结尾的第十章中对于普通民众为何投身于叫魂事件的分析——通过指控叫魂犯,指控者可以获得某种权力的幻觉:

“一旦官府认真发起对妖术的清剿,普通人就有了很好的机会来清算宿怨或谋取私利。这是扔在大街上的上了膛的武器,每个人——无论恶棍或良善——都可以取而用之。在这个权力对普通民众来说向来稀缺的社会里,以‘叫魂’罪名来恶意中伤他人成了普通人的一种突然可得的权力。对任何受到横暴的族人或贪婪的债主逼迫的人来说,这一权力为他们提供了某种解脱;对害怕受到迫害的人,它提供了一块盾牌;对想得到好处的人,它提供了奖赏;对妒嫉者,它是一种补偿;对恶棍,它是一种力量;对虐待狂,它则是一种乐趣。

“我们在这里所瞥见的,是否是一个已被人口过度增长、人均资源比例恶化、社会道德堕落所困扰的社会所遭遇到的一种道德报应?在这样一个倍受困扰的社会里,人们会对自己能够通过工作或学习来改善自身的境遇产生了怀疑。这种情况由于腐败而不负责任的司法制度而变得更加无法容忍,没有一个平民百姓会指望从这一制度中得到公平的补偿。在这样一个世界里,妖术既是一种权力的幻觉,又是对每个人的一种潜在的权力补偿。……人们可以通过指控某人为叫魂者、或以提出这种指控相威胁而得到这一权力。施行妖术和提出妖术指控所折射反映出来的是人们的无权无势状态。对一些无权无势的普通民众来说,弘历的清剿给他们带来了慷慨的机会。”

二、 1966

“我们不能预见未来。然而,构成未来的种种条件就存在于我们周围。”

孔飞力教授在全书的结尾,为中国的士大夫精神奏起某种挽歌:

“但在某些极不寻常的情况下,处于最高层的官员们显然仍可能运用某些为任何政府都必须遵守的最高准则来限制君主的专制权力。要做到这一点,他们就不能把自己仅仅看作是为某一特殊政权服务的臣仆。这样的自信,只会存在于那些相信自己是文化传统当仁不让的继承者的人们身上。在中国帝制后期的政治生活中,即使在最高的行政层次,具有这种胆识的人士已属凤毛麟角。一个半世纪后,当帝制垮台而滋养这种精英自信的社会和文化制度也随之崩溃以后,这样的胆识也就变得更为稀缺了。

“没有人会哀悼旧中国的官僚制度。即使按照当时的标准,它所造成的社会伤害也已超出了仅仅压碎几个无依无助的游民踝骨的程度。但不论是好事还是坏事,它的特性却可以阻挡任何一种狂热。没有这样一个应急的锚碇,中国就会在风暴中急剧偏航。在缺乏一种可行的替代制度的情况下,统治者就可以利用操纵民众的恐惧,将之转变为可怕的力量。生活于我们时代的那些异见人士和因社会背景或怪异信仰而易受指控的替罪羊,便会成为这种力量的攻击目标。

“没有什么能够伫立其间,以阻挡这种疯狂。”

我相信全书以这样的方式结尾,其矛头直指1966年的“全民狂欢”。然而200年后的浩劫较之前身仅仅区别于中国失去了士大夫精神这个锚碇?

200年后的最高领袖拥有帝国皇帝无法想象的能力。和后来者相比,乾隆就像被囚禁在官僚系统的罗网中——任何皇帝的圣意都需要通过官僚系统转达到民间,而民间信息的收集汇总也为官僚系统所控制。这种缓冲使官僚机构有机会将事态导向自身集团希望的方向。纵然乾隆拥有秘密的信息来源,但这与200年后被科技武装的宣传机构无法相提并论。

宣传的力量使最高领袖的旨意可以在一夜之间抵达民间每个角落,而且旨意必然原封不动,丝毫不为官僚机构所过滤或者歪曲。最极端的情况下,在官僚集团了解领袖意图之前,旨意已经抵达民间。这彻底打破了孔飞力教授所论述的“官僚君主制”中游戏双方的力量对比。

于是乌合之众发现领袖亲自“丢弃在街头的武器”,官僚系统不能进行有效的阻拦。同时,同样是乾隆无法想象的场面,百万狂热的民众可以在几天时间内涌向皇宫,聚集到领袖面前。面对这样的觐见,谁又能不陶醉于自身的力量?正向反馈的机制中官僚系统被挤压地无处容身。无论是否存在古老中国的士大夫精神,所有逆潮流而动的人都将被粉身碎骨。

当乌合之众的躁动和领袖的狂热引燃吞没一切的火焰时,那一点点人性的光辉如此黯淡。

三、 2011

“任何人——无论贵贱——都可以指称别人为叫魂犯。其实,把僧人和乞丐当作替罪羊是朝廷和民间的某种共谋。”

优秀的历史书写既是对过去的解读,又是对未来的精妙预言。

RT @色色猴奔走相告:丢失的陕西孩子找到了!前方的志愿者传来好消息!经过网友@今年2011 在珠海随手拍的一张照片,@到 @随手拍照解救乞讨儿童,经过转发,引起了孩子母亲@佳县明明 的注意,确认就是他的孩子。昨晚上21点,志愿者@GJ的微博 会同当地志愿者,星夜赶到珠海,今11点左右,孩子找到了。现等孩子母亲 (2011年2月7日)
RT @GJ的微博经过珠海市公安局司法鉴定中心DNA检验:2月7日晚一网民在珠海市景山公园门前所拍摄一男童乞讨照片中的男童,与该照片中其身后成年男子之间具有父子遗传关系;目前,该男童母亲亦已找到,两者是否具有母子遗传关系,仍在进一步检验中。(2011年2月8日)

当所有最高意志都已消失在历史的长河中,叫魂这个幽灵却从未离开这片土地。当民众不再对宣传机构保有任何信任,互联网却又赋予了一般人前所未见的机会。微博模拟了“口口相传”的渠道,但降低了信息传递的成本,加快了信息传播的速度。于是不需要完整的证据、细致的调查,当一些精致的似是而非以及煽动的叙述进入传播渠道后,民众便又会开始新一轮对“叫魂”的清缴。

这里有着同样的随取随用的武器,并且更先进地贴上“道德”、“正义”、“公民行动”的标签。于是狂热分子可以肆无忌惮地开火,而后又不必背负任何良心上的谴责,甚至还能获得惩恶扬善的快感——这也是如今这个社会中稀缺。有意无意间,这些武器像200多年前一样,依然以保护孩子的名义指向这个社会最边缘的群体。

RT @mozhixu我儿子跟你儿子长得像,加上我是穷人,所以你们就可以要求我们一家三口做DNA测试,而不需要任何法定程序,这样的国家不可能是自由和法治的国家,赞同这么做的人也不会是权利的拥护者

孔飞力教授在某种程度上阐明了中国社会几百年来不变的本质。

“‘受困扰社会’的特殊政治就是在这种情况下产生的。在帝制后期的中国,绝大多数人没有接近政治权利的机会,也就不能以此通过各自的利益相较去竞争社会资源。对普通臣民来说,仅仅是组成团体去追求特殊的社会利益便构成了政治上的风险。……对大多数人来说,权力通常只是存在于幻觉之中;或者,当国家清剿异己时,他们便会抓住这偶尔出现的机会攫取这种自由飘浮的社会权力。只有非常的境况才会给无权无势者带来突然的机会,使他们得以改善自己的状况或打击自己的敌人。即使今天,让普通民众享有权力仍是一个还未实现的许诺。毫不奇怪,冤冤相报(这是‘受困扰社会’中最为普遍的社会进攻方式)仍然是中国社会生活的一个显著特点。”

我们就置身于这样一个受困扰的社会中——愤怒而无权的人聚集在一起。今天,新的传播媒介又太容易煽动“叫魂恐慌”。

一夜之间我们可能不是成为“指控者”,就是沦为“剪辫犯”。

也许没有人能逃脱这一宿命。

阅读与书写

上个月末豆瓣上线了名曰“读书笔记”的新功能,刚巧自己每个月也有写所谓的“读书笔记”。然而几番试用下,发现两者虽同名,却全然不同。为此,我尝试思考阅读时我究竟写了哪些?便有此文。

近一年来我每个月会读5-10本书,读罢所写的东西包括:一是每月末的“读书笔记”,这份笔记列出书目并逐一简短评述;二是有想法时,我也会写一些长的评论,并同步到自己的豆瓣上。

虽是日常写就,但对这“笔记”和“评论”的区别,之前我心中也未必了然。起初我曾以长度区分,毕竟评论较笔记为长,但这显然只得其形。后来我一度认为差异在于写作时的态度——笔记是每月向自己交差,不免忙时熬粥闲时焖饭;反观评论,一旦立意,便要稳扎马步架势十足。这一区分方法用作书写时的指导十分清晰,但作为定义却有因果倒置之嫌。因为我最终以为,笔记之潦草因其为自观之物;而评论严谨则是时时在意他人目光之结果。套用最近读到的一组传播学概念:笔记多为“自我中心性”,而评论则是“社交性”。

称评论为社交性,因为其目的在于向读者传递观点,意图获得认同或者被反驳后的完善。若为抒情,旦求文辞优美;若为议论,旦求逻辑严密。评论写作,时时有一假想的读者在旁,丝毫马虎不得,故而费时费力,但成文也因此紧致。成文之后,有人击节叫好固然欣喜,如有人能指出文中谬误,那更是一大幸事,但若了无声息,那便悲哀了。

反观笔记,多是记录自己的三言二语、片段想法。书写出来,一是备忘,二在想法变身文字,本身就是一种梳理。这梳理未必一蹴而就,笔记也是常写常新。以我个人为例,月末笔记之外,我每读完一本书,也会在豆瓣收藏时即时写上一两句。待到月末,再依着当时这百十来字,加之翻阅回忆,重新写上几百字的一段。有时写到中途,我会发现新的评论立意,进而激发新的评论构思,但这绝不是经常之事。笔记写罢,多半就弃置一旁。未来读到相关书籍时,则可能依迹寻回,于是未来的笔记便在这笔记上再度翻新。这每一度翻新,思路便更成型,离评论就又近了些许。至于这笔记有无人观看,是否为人认同,大抵不在考虑范围之内——虽然若有讨论也不排斥。此所谓的自我中心性。

       评论   <------   笔记 <- 笔记
于人 <---------------|---------------> 于己

豆瓣之读书笔记,依旧附着在社区讨论、推荐、广播等诸多媒介管道上,未必符合我私人笔记之本意。此两“笔记”不合之一。但这一不合却不至说两笔记“全然不同”。君不见很多人以豆瓣评论功能行私人笔记之实。因此心态放正,这书写到底是于人或于己,也全在自己一念之间。我说豆瓣笔记全然不同还另有其因。豆瓣的每条笔记之上必须标一页码,此处其文案中有所解说,“如果你是对一大段内容做的总结笔记,可以填该内容最后一页的页码”。但在我看来这很难自圆其说。若笔记写于读完整本书后,莫非页码之处该记录全书最后一页?所以这第二处不合更为要紧。

事实上与页码相连的记录另有其名——“批注”。批注与笔记、评论的区别,一是形式上批注附着在书页内,无论记录还是查阅都必须与书页内容紧密联系。比如金圣叹夹批“那雪正下得紧”为“写雪妙极”,这一记录离开书页内容就毫无意义了。评论与笔记绝无此限制。第二点,批注在时序上是在阅读同时进行的记录。而评论笔记则是在阅读完毕后根据记忆辅以查阅写就的。这第二点使我以为批注对阅读有害。因为阅读和书写是两个完全不同的过程。一方面,阅读对环境的要求更低,只要随身一只手、一本书,即使是拥挤的地铁、吵闹的街头都可以进行阅读。相反书写则需要笔、纸、两只手以及一个稳定的平面。而批注要求书写同时进行,这提高了阅读的门槛,降低了阅读的舒适程度。另一方面,批注的书写是对阅读的打断——把伴随阅读的零星想法变成文字并非易事。经常性的批注会进一步降低阅读快感。所以我个人在粗读书籍或者读一遍即弃的书时几乎不做批注,而需要精读的书,在第一遍时最多也只是简单地勾画,(正襟危坐地)重读时才有可能做详细的批注(笔记?)整理。

当然说豆瓣笔记是批注也未必一击即中。一来我以为批注是页内记录,但豆瓣笔记和书页分离。虽然其提供页码和引文功能来定位记录,但无论如何在第二遍阅读时,用户不能方便地查看既有记录——除非一边翻书一边不断查看豆瓣上是否存在相关记录,很难想象有人如此阅读。二来我说批注是书写共时的活动,门槛本就不低,但豆瓣笔记进一步抬高门槛。事实上我也很难想象有人一边翻书一边在竖直的屏幕上“批注”——这一点豆瓣笔记与Kindle、iPad上各种 阅读程序的批注功能是有区别,后者虽然不能减少书写对阅读打断,但至少降低了书写对环境的要求。最后我以为批注是私人的——名家批注另当别论,否则一页文本千百批注,这岂不是又一出白首太玄经?

                    页外
                     |
          评论       |       笔记
于人 <---------------|---------------> 于己
                     |       批注
                     |
                    页内

那么豆瓣笔记究竟适合何种记录?以我看到目前真正和页码关联的记录更接近于某种“摘抄”——或曰名言警句分享。这一类型的记录从书中抄录某种妙语,所以与页码相关,但又无个人印记,所以不需查阅。而摘抄虽为页内记录,但只需折角或者指甲划痕即可完成,其后再誊写与豆瓣笔记之上,成本不高。最后这类摘抄有一定的分享性质,可以利用豆瓣的媒介。于是有下图。

                    页外
                     |
          评论       |       笔记
于人 <---------------|---------------> 于己
          摘抄       |       批注
                     |
                    页内

零敲碎打,无斟无酌。所以如果你坚持看到这,那我再补一句。

阅读绝对私人。假如你觉得我完全在胡说八道,这简直是再正常不过的事情了。

动态语言中的设计模式

今儿迁主机的时候,顺便把旧文档分类整理了一下。发现自己在04年还写过这么一篇…… 居然还投给了《程序员》…… 那时候真是太有闲情逸致了,我操……

读了读,除了“检视”这种港台腔外。发现我那会儿就有把简单事写复杂的天赋…… 恩,以下愿者上钩……

——时光倒流的分割线———

动态语言中的设计模式

Grady Booch在为《Design Patterns》一书所写的序言中谈到,“软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径”。 从设计模式出现的那一天起,这众多的模式就成为面向对象软件开发过程中一笔宝贵的财富,而对设计模式的总结工作也从来没有停止过。先是GoF的《Design Patterns》中23种经典模式的编目和命名,而后广大开发人员在此基础上不断扩充。这种种工作都为人们积累了重要的设计经验。

然而尽管设计模式本身应该与具体语言实现无关,但设计模式是从实践中总结而来的,因此在成文过程中它又不可避免的与特定的语言相关联。目前由于在工业中C++、Java等静态语言占据主导地位,所以人们总结出来的设计模式通常也是基于这些语言的。

如今计算机硬件仍然依照摩尔定律所提出的趋势飞速发展,软件的复杂度也越来越高,相对而言软件开发效率却一直没有质的飞跃。因此执行效率相对低下但开发效率较高的动态语言愈发受到人们的关注。但是想在动态语言中使用目前总结出的大量设计模式却存在一定的困难,因为静态语言与动态语言的语义差异很大,如果只是照搬目前这些设计模式并不能充分发挥动态语言的语言特性,有时候把某些静态语言的模式运用到动态语言上甚至是作茧自缚、画蛇添足了。

Python作为一种完全面向对象的动态语言,因为其简洁、易用、灵活的特点已经越来越受到开发人员的青睐。以下行文中就将用Python实践几种简单的模式,以此来逐步展示Python作为动态语言所具有的语言特性对于设计模式实现的影响。

1.    运用动态类型特性实现灵活性更高的Abstract Factory

不妨让我们从《Design Patterns》中所提到的第一种模式Abstract Factory开始。

实际上同样是面向对象的语言,把C++的代码翻译成Python的代码并不难。下面Python代码就是由《Design Patterns》中提供的用于创建迷宫相关产品的抽象工厂类MazeFactory翻译得到:


class MazeFactory:
  def makemaze(self):
    return Maze()
  def makewall(self):
    return Wall()
  def makeroom(self, n):
    return Room(n)
  def makedoor(self, r1, r2):
    return Door(r1, r2)

这个类就可以用于创建Maze的基本产品了,同时我们可以继承这个类已得到其他系列产品的工厂,比如魔法迷宫EnchantedMaze的抽象工厂:


class EnchantedMazeFactory(MazeFactory):
  def makeroom(self, n):
    return EnchantedRoom (n)
  def makedoor(self, r1, r2):
    return EnchantedDoor (r1, r2)

这样我们就不再需要将有关Maze风格的代码硬编码到具体Maze的创建过程中,而当创建不同风格的Maze时只需要替换不同的Factory就行了。
不过这么简单的翻译C++代码很无趣,而且也不能充分体现Python作为动态语言为编程人员带来的便利。下面让我们来看一看Python语言中的动态特性能为我们做些什么。

略加察看后我们就会发现这样实现的MazeFactory具有一个不足之处:很难向MazeFactory里添加新种类的产品。当需要支持新类型的产品时(比如一个陷阱产品Trap以及EnchantedTrap),我们需要修改MazeFactory以及它的所有子类,这是一件很枯燥的事情。而且我们还不得不改变MazeFactory的接口,这更是我们不愿意看到的。

对于这个问题GoF的书中向我们介绍了一个比一般Abstract Factory更灵活的解决办法,即只实现一个统一的make函数,通过传递给make不同的参数来确定要创建的产品的类型。

然而对于C++这样的静态语言,实现这种解决方法很困难。因为为了确定make返回值的类型,我们不得不将所有的产品继承自一个公共基类。但是Abstract Factory考虑的只是产品的风格系列,而同一系列不同类型的产品间逻辑上可能不存在明确的公共基类——比如Maze和Wall。而且即使使用公共基类也会有导致大量的向下强制类型转换出现。这些都是我们编程时希望避免的。

此时动态语言中动态类型特性的优势充分体现出来。动态类型允许一个变量在运行时刻绑定到不同类型的对象上,也就是说所有变量——包括函数的参数和返回值——都可以是任意类型的。因此我们不必要求Maze、Room等不同类型产品具有公共基类,也能很容易就能实现这种拥有统一make函数的工厂:


class Maze:…
class Wall:…
class Room:…

…

class MazeFactory(object):(注1)
  def make(self, typename, *args):
    if typename == 'maze': return Maze()
    elif typename == 'wall': return Wall()
    elif typename == 'room': return Room(args[0])
    else typename == 'door': return Door(args[0], args[1])

class EnchantedMazeFactory(MazeFactory):
  def make(self, typename, *args):
    if typename == 'room': return EnchantedRoom (args[0])
    elif typename == 'door': return EnchantedDoor (args[0], args[1])
    else: return super(EnchantedMazeFactory, self).make(typename, args)

而创建Maze的代码可能是:


mf = EnchantedMazeFactory ()
mz = mf.make('maze')
r1 = mf.make('room', 1)
mz.addroom(r1)

make函数第三个参数*args表示把从第三个开始以后所有的参数接受为一个list,产品的构造函数从这个list中取出相应的参数用于构造对象。super是内置函数,用于返回一个变量的基类对象。

这样利用Python动态类型的特性(注2),我们用很小的代价实现了一个具有更多灵活性的MazeFactory了。现在当我们要支持新的产品类型时,我们只需要添加标示新产品的参数,而保持了MazeFactory接口的稳定。

不过估计你看到这一堆if、else会感到很不爽(其实就是个switch),我也是。更好的做法是编制一个产品的字典,利用这个字典来索引要产生类型,后面的部分我们将具体介绍这个方法。

动态类型是动态语言的一个基本特性,它能简化类层次、去除不必要的强制类型转换,提高语言表达能力以及自由性。实际上有很多模式都因为静态类型检查的限制造成了不必要的类层次和强制类型转换。比如一个用于遍历包含许多不同类型元素容器的Iterator,就可能要求所有的元素都继承自同一基类以便实现getCurrentItem,而实际上这些不同类型的元素逻辑上并不需要一个公共基类。利用动态类型特性可以使这种模式的实现更加简单灵活。

2.    动态语言不需要一些静态语言中的设计模式

前面提到我们需要编制一个产品的字典,利用这个字典索引要产生类型,这样我们就可以通过类似index['room']的代码来创建产品了。同时我还希望赋予这个MazeFactory动态配置产品类型的能力。用什么模式?Prototype?没错,这的确是运用Prototype的地方,让我们来实现它:


import copy
class MazeFactory:
  def __init__(self):
    self.index = {'maze': Maze(),
      'wall': Wall(),
      'room': Room(),
      'door': Door()}
  def make(self, typename,):
    return copy.deepcopy(self.index[typename])
  def registtype(self, typename, instance):
    self.index[typename] = instance
  def unregisttype(self, typename):
    del self.index[typename]

copy是Python的一个内部模块,其中包含deepcopy函数用于深拷贝对象。registtype、unregisttype函数则用来动态增删产品类型。
似模似样,还不错。不过Python中有没有更好的做法呢?

首先检视一下Prototype的初衷。因为C++并不提供类一级的对象——也就是说类本身不是对象,这就给生成产品以及动态控制产品类型造成了一定的困难,Proto Type模式的出现就是为了解决这个问题。然而像Smalltalk一样,对于Python来说类本身(也包括函数,模块)也是一个对象——type类的对象,可以对对象进行的每样操作都可以使用到类上。利用这点便利,我们不使用Prototype模式就可以实现这个MazeFactory:


class MazeFactory:
  def __init__(self):
    self.index = {'maze': Maze,
      'wall': Wall,
      'room': Room,
      'door': Door}
  def make(self, typename, *args):
    return apply(self.index[typename], args)
  def registtype(self, typename, type):
    self.index[typename] = type
  def unregisttype(self, typename):
    del self.index[typename]

apply是一个内置函数,它接受两个参数一个函数、一个参数list,它的作用是把args作为参数传给类构造函数运行。

现在当我们要添加新的产品类型时,在字典中添加新的索引值对即可。比如我要在MazeFactory中添加一个新产品Trap,只需要在index里加入:'trap': Trap。而动态添加类型时也只需要传入相应的类即可:mf.registtype('trap', Trap)

可以看到我们已经得到了一个静态、动态都比较容易管理产品类型很灵活的工厂。

设计模式中一部分模式的作用就是让程序更灵活,拥有更多的动态特性。而动态语言可能在语言一级就已经支持了这些特性,所以这部分模式也就不需要了。Prototype是一个例子,类似的还有Template Method。实际上因为上面提到的动态类型特性,任何函数都可以接受任意类型的变量做参数,所以Template Method模式也就没有任何价值了。

3.    运行时刻修改类结构来实现Singleton

Singleton是一个非常有用的模式(注3),比如前面的MazeFactory就很有可能需要做成一个单件。让我们来尝试实现这个模式。首先还是按照C++的方法来实现一下:


class Singleton(object):
  instance = None
  def __new__(cls):
    if cls.instance is None:
      cls.instance = object.__new__(cls)
    return cls.instance

类的__new__方法是一个特定的函数,它在对象创建前被执行返回一个cls类的对象。instance则负责保存单件对象。

依循C++的思路,这个程序完全正确,但是看起来缺少一点感觉。让我们查看一下Singleton对象创建的过程,第一次构造对象时创建一个新的对象,以后构造时则不再创建而只是返回第一次创建的结果。

可以看到这是一个典型的运行时刻修改类结构的例子。Python来做自是手到擒来:


class Singleton(object):
  def __new__(cls):
    cls.instance = object.__new__(cls)
    cls.__new__ = cls._new
    return cls.instance
  def _new(type, cls):
    return cls.instance
    _new = classmethod(_new)(注4

classmethod函数的作用是把一个成员方法变成一个类方法。

整个类的代码很简单,第一次进行构造时创建对象,同时用_new函数替换__new__函数,而以后__new__(实际上就是_new)只是返回第一次创建的对象。

能够在运行时刻修改程序结构是动态语言区别于静态语言的一个重要特点,Python中它主要表现在可以动态添加、删除、修改对象(包括类和函数)的方法和变量。这个特性可以用来帮助实现Singleton、Decorator、Strategy等一些要求运行时刻动态改变对象职能的模式。

4.    用Functional Programming简化Command模式

最后要谈到的一点就是Functional Programming。在设计模式里谈到FP可能不很切合。如果我们注意一下会发现GoF《Design Patterns》的副标题是“Elements of Reusable Object-Oriented Software”(可复用面向对象软件的基础)。实际上我们日常谈到的设计模式主要是针对OO Programming来说——因为工业中主要应用的是面向对象编程语言。而FP是区别于OOP的另一种编程风格。

但是Python作为一种面向对象的动态语言,它对FP和OOP的编程都提供了良好的支持。在OO的设计模式中运用一些Functional Programming的思想也会收获一定的好处。下面以Command模式为例讲述这一点。

因为有时候请求操作的对象不知道被请求操作对象的任何信息(打开文档的按钮对象不会知道任何文档对象的信息)。Command模式用以解决这个问题,根本目的在于把被调用操作的对象与实现该操作的对象解耦。而Command模式的实现方式是“把函数层面的任务提升到了类的层面”(注5)。因为FP中函数本身就是第一类对象,所以我们不必再像C++中那样运用继承组合来迂回地实现这一点。FP实现Command模式是非常简单的。


class Button:
  def click(self):pass

这样我们就已经有了一个Button类。看起来什么都没有?别急,先让我们实现一个用于打开文档的Button看看:


opendoc = Button()
opendoc.click = doc.open

现在当opendoc这个按钮被点击时,仅仅需要执行opendoc.click,就等价调用了doc.open这个函数了。这段代码看似简单,但观察下会发现Button和Document已经被很好地解耦,只是FP的实现中间没有那么多迂回,而思路、效果与Command模式是一样的。

再来看看MacroCommand。MacroCommand的目的在于一次执行一系列的Command——也就是函数。有了FP的办法,我们也不必再用Composite模式搞得很复杂,而是利用匿名函数lambda关键字和内置FP函数map实现为:

marcocommand = lambda commands: map(lambda command: command(), commands)

map依次把commands中每个的command传给第一个参数lambda command: command(),而这个参数本身也是一个函数,用来执行传入的command。现在如果我们要实现一个Find & Replace的Button,我们只要这么写:


findreplace = Button()
findreplace.click = lambda: marcocommand([doc.find, doc.replace])

当然Function Programming本身是很复杂的,仅仅在设计模式中一些简单的运用不能充分体现FP的思维方法和能力。但FP作为区别于OOP的编程风格,将其适当用在设计模式中,的确可以优雅简单地实现一些原本复杂的模式。而不同编程风格的尝试和融合也有利于拓宽我们的思路。

结语

通过Python的模式实践,我们可以看到动态语言的种种特性对各种设计模式的实现方式的影响,它们在简化了部分模式实现的同时更带来了较大的灵活性。当然天下没有免费的午餐,动态语言在语言一级提供更大灵活性是以执行效率的下降为代价的,个中的利弊还要广大开发人员去权衡。

本文只是浮光掠影地进行了一些简单的讲述,其中不免有许多疏漏。要想更好地掌握动态语言中设计模式的应用,必须要对各种设计模式以及动态语言的特性有着清晰的了解,并在实践中不断尝试才能做到。

注1: Python中继承自object的class表示一个type,否则是一个classobj。一些特定的操作必须是type类型才能执行,比如super函数要求传入一个type类型的参数、__new__函数也只有type类型才支持。如果需要用到这样操作,则必须让你的class继承自object。

注2: 值得注意的是Python实际上是一种强类型动态类型的语言,而不是弱类型的语言。关于强弱类型的具体解释可以参考这篇文章《Typing: Strong vs. Weak, Static vs. Dynamic》By Aahz。

注3: 实际上由于Singleton模式不能很好地适用于多线程环境,多线程环境中使用更多的可能是Singleton的变种Double-checked locking模式。不过理解了Python中Singleton实现,DCL也是大同小异,所以这里仍然用基本的Singleton模式来解说。

注4: Python2.4中提供新的语法Decorators for Functions and Methods来使类似操作更容易的实现。具体的语法和相关说明见PEP 318

注5: 语自《Agile Software Development》By Robert Martin

2004-11-25左右成稿

一月读书笔记

就在写这篇的当口,豆瓣上线了一个叫做“读书笔记”的新功能。这倒让我思考起每个月花时间写这么多到底为什么。至于结论,有时间再单写一篇吧,这里算是留个包袱。


写作这回事(On Writing)》,斯蒂芬·金(Stephen King),2000年著。张坤译,上海译文出版社,2009年。

斯蒂芬·金的小说我就只读过一本《四季奇谭(Different Seasons)》(“肖申克的救赎”是其中春的故事)。电影改编方面,除了著名的救赎,就剩下《Dreamcatcher》。惭愧。

这本书前半部分是King的回忆,后半则是写作谈,写作的部分中又分为“工具箱”和“论写作”。不过因为不是教科书,所以内容稍给人想到哪写到哪的感觉。一遍读下来,印象比较深的是“避免副词滥用”以及“让故事自由发展避免刻意设计”这两点。其他部分还需要花时间去整理消化——这里有一个他人的摘抄

总之这是非常好的通俗(一定要加上的话)小说写作书籍,来自畅销作家在生死边缘的由衷之言,值得反复读。

“Long live the King.”


我的西域,你的东土》,王力雄著,大塊文化出版社,2007年。

民族。面对民族主义煽动起的狂热,我一直怀疑:统一的“中华民族国家”究竟来自何处?或者说为什么汉民族和其他民族(维吾尔、藏等等)的“统一”是某种最高的原则?抛开“大汉族主义”,有什么理由去阻止这些具有自己独特文化的民族建立自己民族国家?

读完这本07年出版的书,再想想75和310。年复一年,这个将合法性寄托于民族主义的党,让中国在法西斯和军国主义的道路上越走越远。然而这是一旦越过某个临界值就无法回头的道路。也许我们已经越过了那个临界值?未来的对外扩张或者种族屠杀已经不可避免了?很多时候我并没有那种“谨慎的乐观”。

本书最后给穆合塔尔的第三封信,王力雄先生希望利用他自己提出的“递进民主”方案来和平地转向民族自治。我还没有读那部他《递进民主》,而这封信中的三言两语无法说服我。且不论这种全民自下而上的民主实践几乎无法启动,单就这种“递进民主”实现后形成的金字塔组织结构,就已经让人感到窒息了。王力雄先生认为广场式的民主容易被野心家煽动,但纵观历史这乌托邦意味的层级结构创造的灾难不是更可怖嘛?当然我可能误解了这一政治设计的本意,等有时间再去研究吧。

“未来不能靠自然而然,也不能指望车到山前自有路,因为那种自然而然走下去的路,现在已经能看到逃不过流血和灾难。要想避免那种惨烈的未来,只能在今天就开始寻找另外的道路。既然不能自然而然,那就唯有靠我们用自己的头脑去思考,然后怀抱希望往下走,鼓起勇气,绕开血光,去走出通途。”


新中国三十年》,唐德刚著,电子版结集,非正式书籍。

这该是唐德刚先生某个专栏亦或讲演的结集,被人们结集成电子版,冠以这个名字,我未曾找到正式出版的成书。唐先生的书,我曾试着读《晚清七十年》,但无奈那本书一开始他便不厌其烦地讲述所谓的“历史三峡论”。恰逢其时,我也正读着波普的《历史决定论的贫困》,对这“三峡”论是由衷厌烦,这《七十年》便放下了。

这次的《红朝三十年》,唐先生依然把“三峡”挂在嘴边。谈及共党专制时,总不免加一句,这是中国未出“三峡”之必然结果。此时我对这“三峡论”不再如初时那般抵触,但仍不免对唐先生所划定的200年这一期限,存些反感。依唐先生所言,中国之民主转型于30年后必然完成。我虽也期待乃至相信如今这倒行逆施无法再久长,但一旦划定年限再冠之“必然”二字,便会有人以此为理据言说今日之不平不公全该安之若素甚至同流合污,只待时日一到,天下大同矣——我曾亲耳听闻此等言论。

所谓自我催眠,恐怕莫过于此。


12类悬幻——世界科幻小说选粹》,阿西莫夫等著。施咸荣、董乐山等译,中国书籍出版社,2007年。

Ray Bradbury的《霜与火(Frost and Fire)》我最早还是小学时在一套叫做《世界科幻名著故事》的丛书中读的。当时除了这篇《霜与火》,印象比较深的还有《我,机器人》、《大战火星人》、《陶威尔教授的头颅》、《人猿星球》以及雪莱的《科学怪人》(小时候看被吓疯了),算是我的科幻阅读的启蒙篇目。不过知道《霜与火》是Bradbury写的,还是读完《华氏451》之后去查作者的背景资料时看到的。

接下来的巧合是,某天去逛王府井新华书店,瞥到一套类似董乐山先生小说译文选集的书,随手翻下,发现者《霜与火》原是董先生翻译过,只是名字成了《冰霜与烈火》。回来到豆瓣上七找八找,没找到那本译文选,倒是发现了这本书中有收录。图书馆借到手,这月底空闲随手翻完了。

虽然《霜与火》一如既往的好,但考虑著者(阿西莫夫、布拉德雷德、冯尼古特、阿尔弗雷德·贝斯特……)以及译者(董乐山、傅惟慈、施咸荣……)的大牌程度,这本集子难以让人满意。比如阿西莫夫的两篇完全不及格,比如《欧福问题》只算得上最基本的冯尼古特。最重要的是,我觉得大约一半篇幅几乎算不上是科幻小说——难怪“科幻小说选”却被有个“12类悬幻”这个不伦不类的名字。每篇开头施咸荣先生那又是剧透又是意识形态的前言又是怎么回事……

最后读的《绕呀绕》算是于无聊中一点挽回分数的惊喜吧。

“他轻轻地按着操作面盘。飞船升了起来,飞到了太空。西穆的话不错。噩梦终于醒了。”


生命的清单:关于来世的40种景象(Sum: Forty Tales from the Afterlives)》,大卫·伊格曼(David Eagleman),2009年著。赵海波译,中信出版社,2010年。

哲理小品。写得蛮有意思,但是腰封上又挂上了卡尔维诺、博尔赫斯的名字。

有时候我也会觉得自己读书读得太快太粗,应该花时间做做精读的功课,仔细研究一下为什么《看不见的城市》让我觉得如梦如幻,而同样一本有着机智的小册子,留下的只是会心一笑后的寡淡。聪明和智慧之间的秘密也许就隐藏在这儿。

八卦一句,作者算个帅哥。

“上帝的生活和我们的生活非常接近——我们不仅是按照他的形象创造的,而且是按照他自己的社会处境创造的。上帝用了自己大部分的时间来寻找幸福。他读书,努力想实现自我突破,找各种事情做来消除无聊和寂寞,努力去和情义日渐淡漠的朋友保持联系,猜想是不是可以做其他更有意思的事情。在跨越千年之际,上帝变得愈加痛苦。任何事情,都无法继续让他从中获得满足。无尽的漫漫岁月让他窒息。人类白驹过隙的短暂声明让他嫉妒不已。只有那些他不喜欢的人,才会遭受‘永生’的惩罚。”


1988:我想和这个世界谈谈》,韩寒著,国际文化出版公司,2010年。

我一直不怀好意地觉得《独唱团》的目的就是为这本书做宣传。这本勉强算作不好不坏的小书,如果因为其中的几个隐喻和段子就“无限上纲”出某种反抗的意味,这离文字狱也不太远了。读一读豆瓣上的评论,会发现人们并不真正关心韩寒在写什么。人们读韩寒的小说,更多只为了挖掘或者仅仅等待那些隐喻的出现——因为那些隐喻几乎不是隐藏的。然后人们以为自己读懂了,心有灵犀了,这样就披上了韩寒的外衣,意味着自己深刻地揭穿了“他们”的谎言。

其实仅仅在不久之前,在谎言成为谎言之前,人们还称它为“真理”。“韩寒教会了我独立思考”,再没有比这更可笑的了。

“‘不知道朝鲜的大学好不好,朝鲜留学回来当公务员的话对不对口……’ 我情不自禁地插了一句,对口。”


坦克猫 No.06 – 2011.01

导言

时间的恐怖催生出那头名为“年”的怪兽。人类让“年”撕咬时间,妄图在时间上留下痕迹。然而他们忘却了时间如水,浪花又怎能改变河流?于是“新”“旧”之交也并不比任意两个时刻的转换更有意义。

时间在上,我们在此,绝望地期待未来,希望着迎接死亡。

—— 2011.01.26

目录

思郁:黑暗时代的“启明”(哲学)
翟明磊:财富与良心债(历史)
冉云飞:恶魔如何统治国家?(历史)
推倒柏林墙:李登辉其人其事(历史)
李炜光:写给中国的纳税人(社会)

下载

坦克猫 No.06 – 2011.01.pdf
坦克猫 No.06 – 2011.01 (大字体 for ipad).pdf

往期下载