2022-08-20 原《每周读书》系列更名为《枫影夜读》

为什么基于原著改编的电影电视剧总是无法满足书迷读者?为什么看习惯了漫画之后第一次看到动画觉得配音演员的声线好奇怪?当我们阅读小说的时候,我们倾慕于小龙女的清丽脱俗,我们沉湎于黄蓉的古怪精灵,我们惊叹于洛神的柔情绰态,然而我们真的看清了这些倾城美女的容颜了吗?

来自美国 Alfred A. Knopf 出版社的艺术副总监 Peter Mendelsund 通过 What We See When We Read 一书回答了这一问题。?Mendelsund 是一名书籍封面设计师,这部作品的装帧也同样出自其手,在我看来,这本设计多于文字内容的书之所以能在豆瓣拿下 8.1 的高分,在 Good Reads 拿下四星,一部分是出于其设计多于内容的独特,另一部分则是 Mendelsund 的个人魅力所致。

Mendelsund 并不是科班出身的设计师,他原是一名钢琴演奏家,日子过得并不宽裕。后来他因缘际会找到企鹅出版社的封面设计师 Chip Kidd,带着自己设计的音乐专辑封面。没想到 Chip Kidd 很欣赏 Mendelsund,于是他就忽然从一个音乐家转行成为设计师了。他擅长于使用简单的文字、几何图形、明丽的色块来做封面设计,这种独特的风格也给书籍装帧带来一股清丽之风。

至今 Mendelsund 已经为许多书籍做过封面设计,我们可以在 http://covers.petermendelsund.com/ 这里找到他的设计,里面甚至有余华的 China in Ten Words。

Mendelsund 有一个非常重要的原则:封面设计要忠于文字。Mendelsund 喜欢阅读,他会阅读每一本将由他设计封面的书籍,从中找出具有代表性的,能够视觉化表达的东西,然后融入他的涉及。
Reading with a mind to designing a jacket is very different from just reading. When I’m reading for work, I’m looking for something described in the book that will be reproducible visually and that will serve as an emblem for the entire book—a character, or an object, or a scene, or a setting. That’s not the way one reads when one is simply immersed in a book.
于是他在积累设计经验的同时,也阅读了大量的作品。2014 年 Mendelsund 出版了两本书,一本是关于书籍装帧设计的 Covers,另一本就是关于阅读的 What We See When We Read。前者谈设计,后者谈阅读。二者其实有相互印证之处,比如作者喜欢用的抽象图形,为什么不使用真实的人物照片来作为封面设计呢?我记得我第一次看到《孤儿列车》的封面时,我一方面为靠着火车窗的小女孩忧伤的眼神为感染,一方面又为封面把人物的形象过于具体地展现在我面前而感到不舒服。作者认为,我们在阅读的过程中虽然自认为能够认清人物的形象,但是事实上都无法清楚地描绘出人物的体貌,你能够记得人物的性格,人物的动作,以及事件,但是不管小龙女也好黄蓉也好,在你的脑海里她们都是模糊的。而这一点,正是阅读的精彩之处,是阅读提供给读者自由想象的空间,那些以人物照片为封面的设计,反而剥夺了读者想象的权利。
由于阅读的不确定性,作者在给本书设计封面的时候,也采用了简单的文字搭配钥匙孔的图案,仿佛要往钥匙孔中窥视什么。在书中,作者试图以一种新颖的手法,用插画的视觉呈现来表达文字本身无法明确的事情,很有意思。

但是作者是一个优秀的设计师不代表就一定是个优秀的作家,老实说这本书的文字部分有点无聊,有点啰嗦,所以单就内容来说,这本书比较一般,但是设计给这本书加分不少,可以说这本书的重点在设计,而不在内容。
2015.11.21/下午
于自宅
本文译自:http://www.raywenderlich.com/79149/grand-central-dispatch-tutorial-swift-part-1。Github 上有一篇此文 Objective-C 版本的翻译,看完没有什么印象,所以干脆把 Swift 版本的翻译一遍。
尽管 Grand Central Dispatch(或简称 GCD)已经出来好一阵子了,但还是有些开发者没能完全理解 GCD 的原理。这也是可以理解的,并发本来就是开发中比较难懂的部分,GCD 的 API 看起来就像锋利的尖角扎入 Swift 平滑的世界中。
本文将分为两部分,深入浅出地讲解 GCD。第一部分会讲解 GCD 能用来做什么,包括一些基础的用法。第二部分会讲解更多 GCD 的高级用法。
GCD 是 libdispatch 的别称,是 Apple 提供的用于在多核 iOS/OS X 机器上执行并发代码的库。GCD 将带来几个好处:
在了解 GCD 之前,你需要确保完全理解多线程和并发相关的几个概念。这些概念可能比较模糊或者区别不大,容易搞混,所以请花点时间复习一下这几个概念。
这两个词描述的是任务执行时彼此间的关系。串行执行的任务,每次只有一个任务在执行。并发执行的任务则有可能同时执行多个任务。
在本文中你可以把一个任务当作是一个闭包(Closure)。不过实际上在 GCD 里你是可以用函数指针来执行任务的,不过大多数情况下要麻烦的多。直接用闭包就简单多了!
不清楚 Swift 中的闭包是什么?闭包是是指自给的,可以被调用、存储和传递的代码块(Closures are self-contained, callable blocks of code that can be stored and passed around. )。当一个闭包被调用的时候,它们看上去就是个普通的函数,可以传参数进去,也可以有返回值。另外,闭包作用域外的变量如果被闭包使用到了,就会被闭包“捕获”——就是说在闭包内可以看到外部变量并记住外部变量的值。
Swift 的闭包跟 Objective-C 的 block 很像,并且两者是可以互相转换的。唯一的限制就是,ObjC 代码不能使用 Swift 闭包中暴露的 Swift-Only 的特性,比如元组(Tuple)。但是在 Swift 中使用 ObjC 的 block 是没有任何限制的,所以你在本文中看到 ObjC 的 block 的时候,你可以完全可以直接替换成 Swift 闭包。
这两个概念描述的是一个函数何时会把控制权返回(Return)给调用者,当交还的时候,有多少工作已经完成了。
一个同步函数会在它执行的任务完成之后返回。
一个异步函数则不会一直等到任务完成,而是立刻返回,同时执行任务直到结束。因此,异步函数不会阻塞当前线程。
请留意,当你看到同步函数会“阻塞” block 当前线程的时候,请不要和名词 block 混淆。(译者注:中文无此问题,这里省略 100 字…)。
临界区值得是不能被并发执行的代码块,也即不能被两个及以上的线程同时访问。这通常是因为这段代码访问了一份共享资源,而且这个资源在被访问的过程中不能中断。
当软件系统的行为依赖于无法控制的事件的执行顺序时(比如程序并发任务的的执行顺序),我们称这种情况为竞争条件。竞争条件会产生无法预测的结果,通常代码走查也没法发现明显的问题。
如果两个(有时候多个)线程都在等着对方完成任务才能执行自己的任务时,这种情况我们成为死锁。第一个线程要等到第二个线程执行完才能执行,而第二个线程则在等着第一个线程,所以两个都永远无法执行。
线程安全的代码可以被多个线程或者并发任务安全地调用而不会引发任何问题(比如数据损坏,崩溃之类的问题)。没有线程安全的代码同一时间内只能被在一个上下文中运行。举一个线程安全的例子:
这个数组是只读的,所以你可以在多个线程中同时使用而不会有任何问题。相反的,如果你声明一个可变数组:
则这个数组就不是线程安全的,它可以同时被多个线程访问和修改,造成不可预知的后果。可变的变量和数据结构在同一时间只能被一个线程访问。
一次上下文切换是指在一个单核处理器中,保存和恢复不同线程的执行状态的过程。在编写多任务应用的时候,这个切换是很常见的,但是这种切换也会带来额外的开销。
并发和并行经常一起被提及,所以简单解释一下这两者的区别还是很有必要的。
独立的并发代码块是可以被“同时”执行的,但是如何实现“同时”却是由系统决定的——甚至根本就不是“同时”执行也是有可能的。
在多核设备上,多线程可以在多个 CPU 上并行执行;单核设备为了实现并发,就得先运行一个线程,然后做上下文切换(Context Switch),从而实现线程和进程切换。这种切换一般进行得非常快,让用户感觉像是同时在运行多个线程一样。详见下图:

所以,虽然你可以使用 GCD 的接口来编写并发代码,但是 GCD 才是真正决定是否使用并行实现的人。并行要求并发,但是并发并不一定能够保证并行。
更深一层地说,并发设计其实是结构的设计。如果你带着 GCD 的思维去编写代码,你就得小心地设计代码的结构,暴露的接口要考虑可以同时执行和不可以同时执行的代码。如果你想更深入地探究这个课题,你可以参考 Vimeo 上 Rob Pike 的这个演讲。
GCD 提供了多个 dispatch queue (分发队列,由于这里跟代码同名,直接使用英文更容易理解,下文遇到此名词都使用英文) 来处理提交的任务;这些队列负责管理使用 GCD 接口提交的任务,并以先入先出(FIFO)的顺序执行。这就保证了最早加入队列的任务会第一个被执行,第二个添加的则第二个被执行,以此类推。
每一个 dispatch queue 都是线程安全的,也就是说你可以同时在多个线程操作同一个队列。当你理解 dispatch queue 是如何给你自己的代码提供线程安全的时候,GCD 的好处就显而易见了。这里线程安全的关键在于选择正确类型的 dispatch queue,以及分发函数(dispatching function)。
串行队列中的任务每次执行一个,只有等上一个任务执行完了才会开始执行下一个。而且,你并不知道两个任务结束与开始之间的间隔时间你是不知道的,如下图所示:

这些任务什么时候开始执行完全是由 GCD 内部控制的,你唯一能知道的事情就是,GCD 保证了这些任务会按照进队列的顺序执行,而且每次只执行一个。
由于顺序队列里面不可能有两个任务并发执行,所以这个队列的任务就不会有同时访问临界区的风险;这样的实现保证了在这些任务中不会有由于竞争条件产生的临界区问题。所以如果临界区只会被队列中的这些任务访问,你就可以说这个临界区是安全的。
并发队列保证任务开始执行的顺序跟它进入队列的顺序相同……而且,这就是并发队列唯一能保证的事情!所有的任务可以以任意顺序结束执行,而且你完全不知道开始下一个任务之前的时间间隔是多少,甚至不知道任意时刻到底有多少任务在同时运行。所以,这又是一个完全取决于 GCD 的事情。
下图的例子展示了一个由 GCD 执行的有4 个任务的并发队列:

注意到上图中 Task 1 要等到 Task 0 开始执行了好一会儿才开始执行,但是 Task 1, 2 和 3 之间的间隔却很短,一个紧接着另一个。还有,Task 3 在 Task 2 之后才开始执行,但是却比 Task 2 更早结束。
任务什么时候开始执行是完全取决与 GCD 的。当两个任务的执行时间有重叠的时候,GCD 会决定这两个任务是应该分开两个核执行(如果有空闲的 CPU)还是使用上下文切换在一个核中执行两个不同的任务。
有意思的是,GCD 给顺序和并发类型的队列各提供了至少五种特殊的队列供你选择。
首先,系统提供了一个特殊的顺序队列:main queue。跟所有的顺序队列一样,该队列中同一时间只执行一个任务。不同的是这个队列中所有的任务都保证会在主线程中执行,主线程也是唯一一个可以更新 UI 的线程。这个队列也是用来给 UIView 对象发消息(send message,这里的 message 应该理解为 ObjC 的 message),或者发送通知(notifications,这里的通知应该指 NSNotification)。
系统还提供了几个并发队列。这些队列都有他们自己的 QoS 类(Quality of Service)。QoS 类主要用来描述任务的执行目的以便于 GCD 决定这些任务的优先级。以下是 QoS 类:
这里要注意苹果的 API 也会使用这些全局的 dispatch queue,所以你提交的任务并不是这些队列的唯一任务。
最后,你也可以创建你自己的顺序队列和并发队列。也就是说,你至少需要处理五个队列:主队列,其他的四个全局队列,以及你自己创建的自定义队列。
以上就是 dispatch queue 基本的样子。
使用 GCD 的艺术在于如何针对你提交的任务选择合适的队列以及分发函数。而学习这项技能最好的办法就是跟着本教程过一遍接下来的示例项目,我们也会在这个过程中提供一些通用的建议。
由于本教程的目的主要是如何优化以及如何安全地使用 GCD 编写多线程代码,我们的示例教程就由一个现成的项目开始,这个项目叫 GooglyPuff。
GooglyPuff 是一个还没经过优化而且没实现线程安全的应用,这个应用使用 Core Image 的人脸识别 API 把漫画眼睛贴到照片里眼睛的位置上。图片可以从系统相册选择,或者从预设好的 URL 下载。
整个项目可以从这里下载:GooglyPuff_Swift_Start_1
下载解压后,在 Xcode 中打开并运行,你会看到如下界面:

我们注意到点击“Le Intenet”去下载图片的时候,一个 UIAlertController 立刻就弹出一个警告框,后面我们将一起修复这个问题。
这个项目有四个主要的类:
现在让我们回到应用,选择从系统相册或者 Le Internet 下载图片。
留意一下从你在 PhotoCollectionViewController 中点击一个 UICollectionViewCell 到弹出一个新的 PhotoDetailViewController 需要多久;这里我们应该可以注意到有明显的延迟,尤其是当你查看一张很大的图片或者使用的是很慢的机器的时候。
UIViewController 的 viewDidLoad 方法是最容易堆积一大堆代码的地方,经常导致 view controller 需要等很久才能出现。所以我们要尽可能把不重要的任务放到后台去完成。
这听起来是 dispatch_async 可以做的事情!
打开 PhotoDetailViewController,把 viewDidLoad 方法修改成以下实现:
// Resize if neccessary to ensure it's not pixelated
if image.size.height <= photoImageView.bounds.size.height &&
image.size.width <= photoImageView.bounds.size.width {
photoImageView.contentMode = .Center
}
dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_USER_INITIATED.value), 0)) { // 1
let overlayImage = self.faceOverlayImageFromImage(self.image)
dispatch_async(dispatch_get_main_queue()) { // 2
self.fadeInNewImage(overlayImage) // 3
}
}
}
[/sourcecode]
上面的代码到底干了什么呢:
这里要注意我们用了 Swift 的尾随闭包语法(Trailing Closure Syntax),给 dispatch_async 方法传参的时候可以在括号后面直接写闭包的代码,这种写法可以让你的代码看上去更简洁一些。
现在重新编译运行这个工程,选择一张图片,你会发现view controller 展示比之前快多了,过了一会才把动画眼睛加上去。这带来一种很好的体验,你可以感受到照片被修改前后的对比带来的冲击。而且,如果你尝试加载一张特别大的图片,应用也不会在加载 view controller 的时候被卡住,这大大增加了应用的扩展性。
我们上面也提到了,dispatch_async 会把闭包里的任务加到队列里面,然后函数立刻返回。GCD 会决定什么时候执行这个任务。所以对于网络请求或者耗CPU 的任务你应该用 dispatch_async,这样才不会卡住当前线程。
以下是几条关于在使用 dispatch_async 函数时应该选择什么类型队列的建议:
你可能会发现每次使用 dispatch_get_global_queue 还得传一个 QoS 类作为参数来获取对应的队列,这种写法有点累赘。这是因为 qos_class_t 被定义成一个结构体,而且 value 属性是 UInt32 类型,传参的时候还得转成 Int 类型。所以通过给 Utils.swift 文件添加几个 helper 变量我们可以更方便地获取这些全局队列:
var GlobalUserInteractiveQueue: dispatch_queue_t {
return dispatch_get_global_queue(Int(QOS_CLASS_USER_INTERACTIVE.value), 0)
}
var GlobalUserInitiatedQueue: dispatch_queue_t {
return dispatch_get_global_queue(Int(QOS_CLASS_USER_INITIATED.value), 0)
}
var GlobalUtilityQueue: dispatch_queue_t {
return dispatch_get_global_queue(Int(QOS_CLASS_UTILITY.value), 0)
}
var GlobalBackgroundQueue: dispatch_queue_t {
return dispatch_get_global_queue(Int(QOS_CLASS_BACKGROUND.value), 0)
}
[/sourcecode]
回到 PhotoDetailViewController 类的 viewDidLoad 方法,把 dispatch_get_global_queue 和 dispatch_get_main_queue 换成我们刚加的 helper 变量:
这样修改后的代码可读性更好,更容易看出是使用了什么类型的队列。
让我们回想一下这个 App 的用户体验,有可能用户刚打开这个 App 的时候并不知道该怎么操作对吧?所以,如果 PhotoManager 类里面还没有照片的时候,我们可以先展示一个提示页面。而且这个提示不能展示得太快。
延迟一秒钟再展示这个提示页面应该可以满足我们的需求。
把以下代码添加到 PhotoCollectionViewController.swift 文件中:
当 UICollectionView Reload 的时候,viewDidLoad 方法会被触发,从而调用 showOrHideNavPrompt 方法。
编译运行一下,我们将会看到延迟一下之后这个提示页面就弹出来了。
dispatch_after 方法就是一个可以设置延迟调用的 dispatch_async 方法,你始终无法精确地控制真正的调用时间,dispatch_after 函数返回后你也无法取消这次调用。
那么什么情况下用 dispatch_after 方法比较合适呢?
单例,让人又爱又恨的东西,它们就像网上的猫咪一样充斥整个世界 :]
单例最常令人担心的一点就是:它们经常是非线程安全的。而单例又常常是被多个 controller 同时访问的。PhotoManager 就是一个单例,所以我们还得考虑给它加上线程安全的代码。
这里主要有两个时机是需要我们保证线程安全的,一是单例在初始化的时候,另一个就是对单例进行读写操作的时候。
我们先考虑第一个问题。因为 Swift 在全局作用域中初始化变量时的特性,第一点变得很容易解决。在 Swift 中,全局变量是在第一次被访问的时候进行初始化的,而且是保证初始化过程是原子的。就是说,初始化代码是被当做临界区对待的,知道这段代码执行完了,其他的线程才能访问这个变量。Swift 是怎么做到这一点的呢?在我们看不到的代码里面,Swift 是使用 GCD 的 dispath_once 方法来实现的。有兴趣的同学可以看看这篇博客:https://developer.apple.com/swift/blog/?id=7。
dispatch_once 会以线程安全的方式执行闭包,而且只会执行一次。如果有一个线程正在执行临界区代码——这个任务在 dispatch_once 方法中——那么其他线程就会暂时被 block,直到临界区执行完毕。一旦这个闭包执行完毕,其他线程将不会再次执行这个代码。再加上用 let 把单例的实例变量声明成一个全局常量,我们就可以保证在以后的代码中这个实例不会被修改。从这个角度上看,所有的 Swift 全局常量实际上都是单例,而且自带线程安全的初始化方法。
但是我们还是要考虑读写操作的线程安全。Swift 虽然可以用 dispatch_once 保证初始化代码是线程安全的,但是这个方法没法保证它的成员变量都是线程安全的。举个例子,如果一个全局变量是一个类的实例,当这个类在内部操作这个变量的时候,你还是有可能遇到临界区问题。所以我们需要用别的方法来保证这些操作是线程安全的,比如说同步数据访问,下面几个章节我们将会讲到。
实例的线程安全问题并不是只有单例才需要关心。如果一个单例的属性是一个可变的对象,比如说 PhotoManager 的 photos 数组,那么你就得考虑这个对象本身是否线程安全的。
在 Swift 中,所有用 let 关键字声明的变量都是只读的,而且线程安全的。var 关键字声明的则表示可变而且除非这个数据类型的设计本来就是线程安全的,否则都是非线程安全的。Swift 的集合类型如 Array 和 Dictionary,如果声明是可变的就是非线程安全的。那么基础的容器类型呢?比如说 NSArray 这种类型?他们是线程安全的吗?答案是——“恐怕并不是”!Apple 官方维护了一个线程安全与非线程安全类型的列表大家可以瞧瞧。
虽然说多个线程同时读一个 Array 变量是安全的,但是如果有一个线程正在对它做写操作就悲剧了。现在回到我们的示例工程,这里面我们的单例都还没有做这样的保护。
比如我们来看 PhotoManager.swift 中 addPhoto 方法:
因为这个方法修改了一个可变数组,所以这是一个写方法。
然后我们在看 photos 这个属性:
这个属性的 getter 方法反悔了一个可变数组,所以是一个读方法。调用这个方法的人会得到一个 _photos 数组的拷贝,以防被别人不小心修改了,但是如果有一个线程正在修改这个数组,另一个线程正在读这个数据就悲剧了。
注意:为啥上面这段代码里调用者会得到一个 _photos 数组的拷贝呢?因为在 Swift 里面,函数的返回类型要嘛是一个引用要嘛就是一个数值。返回引用就跟 ObjC 里面返回指针是一样的,你可以对原来的对象做任何操作。但是返回一个数值则会得到一个原对象的拷贝,对这个返回值的修改不会印象到原对象。默认情况下,Swift 的类实例会以引用方式或者结构体的值的方式传递与返回。
Swift 的内置数据类型,比如 Array 和 Dictionary,都是以 Struct 结构体的形式实现的,所以当你在代码里面传递这些值的时候,你传递的是一大堆结构体的拷贝。不过你不需要担心由此引起的内存消耗,Swift 对集合类型做了优化,只有在必要的时候才会真的做拷贝。例如,只有当一个数组被当做参数会返回值传递的过程中,第一次被修改的时候,才会做一次拷贝。
这是在软件开发中一个经典的读者写者问题,GCD 提供了一个优雅的解决方案——使用 dispatch barriers 创建读写锁。
Dispatch barriers 是一组方法,它们的表现就像在并发队列遇到串行队列的性能瓶颈一样。使用 GCD 的 barrier API 可以确保提交进队列的闭包代码在被执行的时候只有一个任务在跑。也就是说,所有比 diaptch barrier 先进队列的任务要优先被执行完,然后再会执行这一个闭包。
轮到这个闭包执行的时候,GCD 会确保在执行过程中有且只有这一个任务在跑,直到它执行结束,才会恢复队列原来的实现。GCD 还提供了同步和异步的 barrier 方法。
下图展示了 barrier 方法在异步队列中的表现:

注意到通常情况下这个队列跟普通的并发队列没有两样,但是当 barrier 代码被执行的时候,这个队列看上去就像一个串行队列。换句话说,barrier 是当下唯一被执行的代码。当这个 barrier 结束了之后,队列就又会回到一个普通的并发队列的执行方式。
那你啥时候改用 barrier 方法,啥时候不该用呢?
看起来上面说的唯一正确的选择是自定义并发队列了,所以我们要创建一个自己的并发队列,用来处理 barrier 方法,从而是读写操作分离。这个并发队列将会允许多个读操作同时执行。
打开 PhotoManager.swift 文件,添加以下属性:
这句代码使用 dispatch_queue_create 把 concurrentPhotoQueue 初始化为一个并发队列。第一个参数是一个反向域名风格的命名,确保这个命名的含义有助于我们以后调试。第二个参数用来表示这个队列是串行的还是并行的。
注意: 如果你在网上搜索 dispatch_queue_create 的示例代码,你经常会看到大家用 0 或者 NULL 作为第二个参数。这实际上是用来创建串行队列的一种过时的方法,更好的做法还是把这个类型写清楚。
找到 addPhoto 方法,替换成以下代码:
这个修改解决了写操作问题,接下来我们来看看读操作的问题。
为了确保读写操作都是线程安全的,我们需要把读操作也放进 concurrentPhotoQueue 这个队列里面。但是因为你需要函数的返回值,所以这个地方我们不能用异步调用的形式来写。在这里我们使用 dispatch_sync 方法。
dispatch_sync 会同步地提交当前的任务并且一直等到这个任务执行完毕才把函数返回。当你需要确保这些任务能够与 dispatch barrier 合作时,或者当你需要等待闭包的处理结果,然后才把函数返回时,你可以用 dispatch_sync。
但是使用这个函数要非常小心。试想你把 dispatch_sync 用在一个并发队列上,当这个队列跑起来的时候你就会遇到死锁问题。因为这个同步调用会一直等到前一个闭包执行结束才会返回,但是当前的queue 却在等待 dispatch_sync 的完成才能执行闭包代码,于是造成死锁。这就要求你一定要清楚地知道你是在哪一个队列发起的调用,同时也要搞清楚你是塞进去了哪一个队列。
以下是 dispatch_sync 使用时的概览:
自定义串行队列 Custom Serial Queue: 在这种队列上使用要非常小心。如果你在同一个队列的任务里面使用 dispatch_sync 到同一个队列,那你绝对会遇到死锁问题。
主队列 Main Queue (Serial): 跟上面那个一样要非常小心,也是很有可能造成死锁。
并发队列 Concurrent Queue: 在这种队列中,如果你想要通过 dispatch barrier 来同步任务,dispatch_sync 是一个不错的选择。
下面我们把 PhotoManager.swift 中的 photos 方法修改一下:
恭喜——你的 PhotoManager 单例现在完全线程安全了。不管你是在何时去读或者写,你都能很有自信地说这些操作都是安全的了。
可能大家还没有 100% 地清楚 GCD 的牛逼之处?首先确保一下你已经能够自如地使用 GCD 的基础API 来实现简单的多线程逻辑,最好多用断点和 NSLog 来确保你清楚正在发生什么。
下面我们提供了两个 GIF 动画来帮助你理解 dispatch_async 和 dispatch_sync。请留意 GIF 展示的每一步断点与各个队列的关系。
dispatch_sync(dispatch_get_global_queue(
Int(QOS_CLASS_USER_INTERACTIVE.value), 0)) {
NSLog("First Log")
}
NSLog("Second Log")
}
[/sourcecode]

dispatch_sync 会把任务加入到队列中并且一直等待直到任务执行结束。dispatch_async 也做了一样的事情,唯一的不同时它不会等待任务结束而是立刻就返回。
dispatch_async(dispatch_get_global_queue(
Int(QOS_CLASS_USER_INTERACTIVE.value), 0)) {
NSLog("First Log")
}
NSLog("Second Log")
}
[/sourcecode]

在这个教程中,你已经学会了如何让你的代码实现线程安全,也知道怎么把 CPU 密集的任务从主线程挪出来。
你可以在这里下载这个项目的代码,这份代码是包含了以上所有的优化的:GooglyPuff Project 。本教程的第二部分将告诉你如何持续优化这个项目。
如果你有计划要优化你自己的应用,你需要学会怎么使用 Instruments 里的Time Profile 来测试你的代码。不过如何使用这个工具就不在本教程的讲述范围内了,你可以参考这篇文章 如何使用 Instrcments。
然后记得要用真实的设备来进行测试,用模拟器测出来的结果与真机相差甚远。
在下一篇教程中你将更加深入地了解 GCD 的API,我们将介绍更为强大的工具。
2015.11.22/夜
于自宅
译者注:由于译者太懒,此文花了许多时间来才翻译完,也许内容有些过时,不过 GCD 提供的 API 至今仍然是 iOS/Mac 上使用多线程的首选。
2022-08-20 原《每周读书》系列更名为《枫影夜读》

开始读《安德的游戏》时感觉告诉我这是一部水平很次的作品。作者一开始就直接表明了主角安德是一个很特殊的人,天才中的天才,进度到 10%+ 更直接说明安德就是他们要培养的未来的最高统帅,是要和虫族打仗拯救人类的人。于是乎,小说前半部分就沦为毫无悬念的铺垫,读之甚是乏味。
悬念是小说的驱动力,没有悬念的小说读者是不会有兴趣的。但是后来我知道这部作品写于 1985 年,于是心理预期稍微降了一点,与此同时故事进入战斗学校部分,安德作为一个天才少年,在太空校园里被刻意安排孤立,被迫进行不公平的比赛,于是前期枯燥的铺垫到了战斗学校之后开始慢慢展开,面对教官严苛的要求,安德是否能够顺利晋级?面对其他同学的孤立与排斥,安德怎样去结交好友突破困境?面对不公平的比赛,安德如何扭转劣势拿下胜利?还有最重要的,面对与日俱增的心理压力,安德能否在精神崩溃前成功毕业?
读者是否有一种似曾相识的感觉?没错,就是少年热血漫画的套路。读者如果一路读到了这一部分,很容易就会被代入,对人物的情感投资在安德一次次拿下胜利时得到回报,又在下一次面对更加苛刻的条件时惴惴不安。到了这种地步,读者已经欲罢不能,小说也就成功了一半。
然而驱使我嚼下枯燥的前半部分的动力却不是安德,反而是安德的哥哥与姐姐。这三个小孩都是天才儿童,哥哥彼得性格残暴,姐姐华伦帝则过于柔弱,只有安德兼具二者优点,所以最终是安德被送进战斗学校。对我来说,我反而更喜欢这两兄妹的组合,深觉这两兄妹加一起要远胜于安德。最让我感到震惊的是两兄妹利用互联网(Nets)隐藏自己的年龄,在网上散步自己的言论,逐步建立起各自的追随者,形成巨大的舆论影响力,最后两人政见合一,把彼得推上地球统治者这一壮举。要知道 1985 年互联网还处于理论研究阶段,公众连想到想不到的事情,更不用说准确预测到今日互联网舆论的影响力以及如何操纵网络言论方向了。可惜的是故事的主角始终是安德,作者没有在这两兄妹身上花费太多笔墨。
说回主线,安德在战斗学校的故事就是一般热血漫画的路线:遇到 BOSS,要死了要死了要死了,完了千方百计打赢了 BOSS,获得新技能和一大帮小弟,然后继续下一个数量级增长的 BOSS,不断循环,直到毕业。这一段作者的布置比较合理,故事发展非常流畅。最后以安德终于精神崩溃为契机,让安德毕业,小说推入最终幕大决战。
由于有了前面战斗学校不公平待遇的铺垫,最终幕的展开很自然,结局的反转也出人意料,是个亮点。由于是热血少年故事,安德最后肯定是大团圆结局打败了虫族,还殖民到虫族的星球上去。在那里他听到了来自虫族的遗言,于是著书《Speaker for the Dead》,中译名为《死者代言人》或《安德的代言人》。我一直觉得结局大可以到虫族消灭就结束了,后半段其实有些累赘,直到我翻到《Speaker for the Dead》的序,才晓得原来作者早期是写了《安德的游戏》的短篇,后来他想写《Speaker for the Dead》了,于是就开始构思,结果就构思出了长篇的《安德的游戏》,所以这后半部分就变得必不可少了。
1985 年《安德的游戏》出版后,第二年《死者代言人》就出版了,两部作品连着拿下了雨果奖和星云奖,作者也成为唯一一个连续两年包揽两座大奖的作家。今天再看《安德的游戏》,我觉得算是一部不错的热血小说,不过毕竟有些年头,写的也是近未来的事情,像互联网这样的想象已经成了现实大家不觉新鲜,而写作技巧上过多第三方角色的全知描述也令人乏味。所以此作可以说是不错的休闲读物吧,谈不上上佳之作。
2015.11.18/中午
于 T.i.T
2022-08-20 原《每周读书》系列更名为《枫影夜读》

一直以来救死扶伤都是医生的天职,我们病了就上医院,医生就会把我们治好,大家都认为这是理所当然的事情。但是我们又都清楚有一些病是治不好的,包括绝症,也包括衰老。
但即使罹患绝症,到了医院也还是以“积极治疗”为默认选项,大家仿佛觉得现代的医学这么发达,有什么是治不好的呢?即使是绝症,大不了化疗,以为能再活个十年,二十年。《Being Mortal》的作者 Atul Gawande 是一名医生,他道出了大家也许不知道也许视而不见的真相:绝症的治疗并不一定能把病治好,有时候能帮你延长性命,但多数时候你不但要承受治疗的痛苦,还很可能恶化你的病情。
作者从医生受教育时被灌输的观念开始说起,仿佛全世界都认为医生就是应该要积极地把病治好,无论可能性有多小,都要去努力,仿佛努力了就是好的,而忽略了努力背后的痛苦。比如说化疗,你要躺在一个完全契合你身体的模子里一动不动,眼睛看不见,耳朵旁边就是轰隆隆的放射机器在旋转,移动的方寸不过几毫米,每天要躺上一个小时。比如说吃药,你需要吃各种各样奇怪的药,药都有副作用,你克制了头痛可能就导致呕吐,你控制了呕吐又可能导致昏昏沉沉。再比如治疗的费用,美国已经是一个医疗非常发达的国家,高额的治疗费还是会让人透不过气来,更不用说我们中国,动不动就是倾家荡产的事情。假使这些都不是问题,还有更严重的,你接受了这些对身体伤害特别大的治疗之后,很可能并没能帮你控制病情,你会继续恶化,而且恶化得更快,你会生活不能自理,无法自己上厕所自己洗澡,你会开始感受到作为一个人的基本的尊严已经丧失殆尽。
所有的人都忽视了一个非常重要的问题:如何面对死亡?
一旦你罹患绝症,你就一定要全身上下插满管子躺在病床上痛苦不堪地走完人生的最后阶段吗?“积极治疗”仅仅是医生提供给病人的一个默认选项,也是大家一上来就知道可以选择的一个选项,但是大家有没有想过这个选项是否一定就是最好的呢?很可能大家仅仅是没有考虑过其他的选项,因为太沉重,根本没法去想。即使在开放的美国,《Being Mortal》提到的“姑息治疗”、“善终服务”也仅是刚刚起步。
这样的服务将对病人的病因不做处理,不会提供痛苦的治疗,只是在病人生命的最后阶段,提供各种必要的生活护理服务,以及最重要的——麻醉药与镇痛药。与其在 ICU 里插满管子痛苦地死去,病人更愿意选择在自己的家里,在自己生命的最后时刻与自己的家人一同度过,做着自己还能做的事情,有尊严地死去。
不仅仅是绝症患者,老年人也会遇到同样的事情。老年人的身体由于各种各样的原因会开始日渐无法自理。在现代医疗尚未普及的时代,我们的生命曲线都是非常陡峭的,老年人能活过 50 岁的很少。但是现代医疗发达了起来,我们的曲线开始缓和延长,每次我们开始走陡峭的下坡路的时候,医院总是可以把我们拉回来,于是我们仅仅是离死亡近了一些,却不再会突然之间死去。老年人的问题于是也成为这个还没有准备好的社会急需解决的一个问题。
经过多年的发展我们产生了疗养院这样的解决方案。但疗养院是一个仿如监狱的地方,统一时间睡觉,统一时间起床,不允许某些病人吃饼干巧克力,不允许吃什么什么,要求病人一定要坐轮椅以防摔倒等等。在疗养院一个人感受不到做人的感觉,感受不到自己的价值。因为疗养院的要求是保证“安全”,除此之外都是次要的。这跟大多数人对绝症患者的要求是一样的:活下去,无论多么痛苦多么没有尊严。
人并不总是以活下去为底线的。人还需要活得有尊严,活得开心。假使我们以第三者的身份去考虑事不关己的病人,放弃积极的治疗,让病人能够有尊严,开心地走完最后的日子可能会很容易接受。但是一旦这种事情发生在自己身上的时候,我们肯定还是会手足无措。
作者采访了很多老人与病人之后,终于他自己也面临了这个艰难的问题:他的父亲罹患绝症,是继续治疗还是选择“善终服务”?
现代医学虽然发达,但是也博大精深,作者自己是医生,父母双亲也都是医生,但是面对父亲的绝症,他们依然手足无措。最后作者问父亲:什么才是最重要的?他的父亲表示:如果要我选择治疗并且瘫痪,我宁愿死。于是在手术的关键时刻出现了复杂的情况,医生问作者是否要继续手术的时候,作者第一句话就是:继续与停止,哪一种对瘫痪的可能性更大?最终选择了更具生命风险但是更不会造成瘫痪的——继续。
所以在这些至关重要的节点上,承受病痛的患者本身当然是主角,但是家人在其中扮演的角色也至关重要。如果中止手术而父亲将瘫痪度日,只怕自尊心强的父亲会觉得生不如死。
今天美国的养老与医疗制度非常发达,我们国内的条件不如美国,但是不代表我们就不应该考虑这些问题。事实上无论条件怎么样,我们都会面临这样的问题,我们总有一天会衰老,我们总有一天会面临无能为力的时刻。
在阅读这本书的过程中我一直心惊肉跳战战兢兢地,我曾有两次严重的胃病发作,病痛体虚之外连精神也变得软弱,累及我的家人朋友辛苦照顾。如果可以我当然不愿意再经历一次,但是谁知道呢?人都会老,终有一死。看着书中详述的种种,映照自己,深感恐慌。我庆幸在还算年轻的时候看到这本书,它让我了解到生命除了默认选项之外,还有别的可能。
等我老了,我希望我不至于手忙脚乱。
15.11.13/中午
于 T.i.T
2022-08-20 原《每周读书》系列更名为《枫影夜读》

有许多朋友一提到“文学”两个字就头疼,这其实源自于对“文学”的不理解,今天“文艺”两个字也被许多一知半解装忧郁的小朋友折腾到臭名昭著的地步,有点可惜,文艺本是中性的,指文学与艺术。欣赏“文艺”需要具备一定的背景知识与审美能力,这种能力以我们目前的学校所教授的课程与教授的方式来说很难培养出来。就好像要欣赏一个开源项目的代码,光会写代码还不足够。
许多人觉得“文艺”令人乏味,可能还是由于没有具备足够的鉴赏能力。比如《诗经》,一直以来教科书必备的四书五经之一,由于年代久远,文体也不够成熟,大家读起来都会感到吃力。除了类似《蒹葭》这样的寥寥数作,我觉得大多数也都挺无趣的。这时候老师的讲解就变得十分重要,师者,传道授业解惑也,然而我回忆自己在课堂上听到的《诗经》的讲解,却并没回忆出多少有趣的片段。其实语文这一门课很特别,它是讲授文学的,文学是没有办法和历史、社会、艺术分割的,但是往往教授语文的老师不会多讲历史,教授历史的老师不会多讲文学,于是我们断章取义了许多年,片面理解诗歌了许多年。后来我读到郑振铎版本的《中国文学史》([每周读书 八十五] 郑振铎——《中国文学史》),总算把历史社会背景与文学作品本身稍微联系上了,但是不够。
本周我们要介绍的是蒋勋老师的《蒋勋说文学:从诗经到陶渊明》,蒋老师在书中以独到的见解,平和的语言,结合历史社会背景以及个人的故事经历,把文艺作品讲述得十分生动。蒋老师摒弃一般人讲诗时做注解的方式,转而以审美的目光来分析,比之于严肃文学的解读,蒋老师的讲解要容易接受得多。蒋老师写过一系列讲解中国文学的书籍,本书为《蒋勋说文学》系列中的上册,下册为《从唐代散文到现代文学》。
无论是《中国文学史》还是《蒋勋说文学》,都是从上古的《诗经》开始说起。这不是偶然,《诗经》以前,我们的文字是记录在龟甲上的,多为祷文,卜文,并没有十分成体系的文学作品,《诗经》算是最早的中国文学作品集。所以《诗经》有它特殊的意义在。但是我们都怕读《诗经》,毕竟是两千年前的文字,晦涩难懂,毕竟是两千年前的文明,难以想象,而且课堂中动不动就是翻译、提炼思想,烦不胜烦。
其实《诗经》是无法翻译的,它是可歌的,是民歌的合集,它就是今天的《浏阳河》,就是《康定情歌》,是古人们情之所动而唱出来的东西。但是自从《诗经》被列入四书五经之中成了经典,她就被过分解读了,就好比今天的《圣经》、《红楼梦》,其实哪来那么多密码可以解读。
老师们在讲解的时候往往会为每句诗做注解,然而诗是“情动于中,而形于言”,情才是诗歌中最重要的东西。我自己也写过诗,写诗的时候你会很注重形式,行文会随着情感的流动而跳跃,所以诗歌会朦胧,会不解,可解的是理性逻辑的部分,不可解的是神秘感性的部分,于是在可解与不可解之间产生了美。如果我们非要把诗歌解成一个个清楚的句子,诗歌就失去了它的魅力。
蒋勋老师在讲解《诗经》的时候就不这样,他试图以一个审美者的角度,向读者讲述什么是美,诗经为什么美,美在哪里,又有哪些地方是不美的。比如蒋老师以《国殇》为例,讲解了诗歌上半部无头亡魂对生命的悲叹,又指出下半部分过于政治严肃而不讨喜。
大家上学的时候都会被要求背诗,我当时就在想,为什么《古诗十九首》没有署名?为什么李商隐李白他们风格差那么远?为什么曹操陶渊明的诗看起来都不够温庭筠的词精致但是又被人推崇?其实这些问题都源于对历史背景的不了解。蒋勋老师在讲述《古诗十九首》也好,讲述曹氏父子的诗歌也好,都会试图通过社会环境对于当时人的思想的影响来讲述,品评一个作品的好坏,是一定要放回当时的历史去看的,你不能拿十几年前的 PC 跟今天的手机做比较,十几年前的技术就应该放在当时的环境来做评价。所以要理解“魏晋风骨”要理解“竹林七贤”你就得理解当时的历史背景。
蒋勋老师在讲解的过程中,除了讲述历史背景之外,还常常结合他自身的故事来做比较。我们说《氓》这首诗里的女子常被解释为弃妇,但是蒋老师就不这么认为。他觉得一个人受伤的时候她不是一整个过程都受伤,他们的爱情也有过甜蜜的时候,受伤的是一个时刻,诗歌反映的是那个时刻的心情。所以《氓》里虽然以女子的角度在吐露自己内心的伤感,但是如果以弃妇幽怨的视角去读这首诗,这首诗就狭窄了,如果把它当做是女子一生的倾诉,那就变成了一个美丽而哀婉的故事。蒋老师提到有朋友夫妻俩吵架了来找他诉苦,说对方怎么怎么不好,其实这都是很常见的情感。诉苦的过程中朋友还会清算自己为对方做了多少事情,像每天洗碗,扫地,做家务,指责对方什么都没做。其实是不是这样呢?《氓》里面写到女子每天勤勤勉勉做了很多事情,其实跟今天我们的想法是没有什么两样的。
以这样的方式来讲述《诗经》,是不是比我们刻苦地去背诵每一个艰涩的单字要容易得多了呢?我们说文学体裁是会变化的,词汇语法是会变化的,但是人的情感是永恒的。(至于农业社会的情感基础与现代社会的差别我们暂且不论。)当我们回过头去解读古代文学的时候,我们一定不能以纯粹理性的视角,去为每一个字做注解,我们要做的反而是以轻松的姿态,以审美的角度,去试图理解这些字句之间的美。只有当你理解这些文字的美了,才不会对“文学”二字有畏惧之心。
我们的恐惧来自于未知,但凡因未知而产生的烦忧,我们都可以先静下心来,好好理解清楚问题是什么,理解清楚了问题,我们总有对策。
2015.11.05 / 中午
于 T.i.T
过去八期“每周读书”介绍的书目以小说为主,这堆作品里面东野的《恶意》与马里奥的《教父》比较经典,《人间失格》则相对另类,《吴哥之美》让我第一次认识到蒋勋老师的文笔,不过吴哥真正的美却不在书里,还得亲自去一趟才能体会。
[每周读书 八十九] 东野圭吾——《虚无的十字架》

要求杀人凶手自我惩戒,根本就是虚无的十字架。然而,即使是这种虚无的十字架,也必须让凶手在监狱中背负着。
[每周读书 九十] 东野圭吾——《恶意》

《恶意》以其机巧的反转设计,特别的叙事结构,多元的人物塑造,以及时不时穿插的揶揄讽刺,深深地吸引了读者。从此作我们可以看出东野已跳脱本格派推理的“凶手是谁”的悬念,转而在凶手动机的追查上巧设机簧。
[每周读书 九十一] 伍绮诗——《无声告白》

前半部分很拖沓后半部分很精彩。虽然中国人看来可能就一普通的中国家庭的故事(当然除去严重事件)但美国人应该会为种族歧视、性别歧视等话题感到兴奋吧。还有普通的中国小孩是被寄予全家希望的这种事情。
[每周读书 九十二] Daniel Keyes——《24个比利》

1977 年,比利·米利根美国俄亥俄州立大学发生了三起抢劫强奸案,却被诊断为患有多重人格分裂症而获无罪释放。读完这本书,我感受到了深刻的震撼,不是因为作者的写作技巧与故事情节,而是这个真实的事件令人瞠目结舌。
[每周读书 九十三] Christina Baker Kline——《孤儿列车》

《孤儿列车》是和《无声告白》、《24个比利》一起看的,一口气读了这么多畅销书,深刻地感受到这些套路的定式,不过我还是很喜欢《孤儿列车》里讲故事的老婆婆薇薇安这个角色,同时这部作品的写作技巧也是三部之中最为娴熟的一部。
[每周读书 九十四] Mario Puzo——《教父》

小说中权势斗争的你来我往,人物内心的微妙变化,以及作家时不时冒出来的一两句警语,教父的语录都令读者兴奋不已。
[每周读书 九十五] 太宰治——《人间失格》

读这部小说,最令人震撼的不是主人公诡谲的视角抑或令人切齿的软弱,而是看似不可思议实则被我们熟视无睹的现实,其洞穿世事的目光有如利剑,深深扎进读者胸膛。
[每周读书 九十六] 蒋勋——《吴哥之美》

读《吴哥之美》,我们可以在曾几璀璨的文明与今日废墟的原始之间感受文化冲击的美,也可以跟随蒋老师的文笔去思考生命与时间的意义,去思考一个人的成、住、坏、空,去思考这个千百年前的古老文明在时间长河中的今时往日。感谢蒋老师,给我们带来如此美的体验
2022-08-20 原《每周读书》系列更名为《枫影夜读》

因为各种各样的原因,在国内并没有太多人了解吴哥。这几年随着吴哥旅游的日益发展,越来越多的游客涌入当地,去感受这座千年废墟的美。这是一件很值得高兴的事情,有更多的人去关注她,就意味着有更多的学者去研究她,修复她,人类历史上一个曾经耀眼的文明不至于沉埋在荒烟蔓草之里。
国内对于吴哥王朝的资料不多,其中来自台湾的艺术工作者蒋勋蒋老师的介绍应当是最有名的。他曾十四次造访吴哥,并把自己当时的书信集整理成书,是为《吴哥之美》。蒋老师还在台湾大爱电视台做了一系列介绍吴哥的节目,节目的名字也叫《吴哥之美》。
蒋老师曾经学过一点声乐,他讲话的声音非常好听,亲切而柔和。他讲过美术史,讲过文学,也讲过建筑,他把这些东西揉合在一起,为我们介绍了一个非常全面的吴哥。蒋老师身上还有一种非常难得的谦和,一个人的学识到了他这样的境界还保持着谦逊的态度是很难得的,他讲话的时候是在跟观众、跟读者、跟学生交谈,你完全感受不到来自“授课”的压力,他的谈吐仿佛一股暖风,款款拂入你的胸膛。
关于《吴哥之美》这本书,大家能够阅读的部分也不过纸上的字句,所以我们本周要介绍的重点其实在文字之外,在遥远的吴哥文明里。《吴哥之美》是根据蒋勋在吴哥旅行期间与台湾编舞家林怀民的书信整理而成,他们二位是伴侣的关系,书中没有明确点破这点,所以我开始看的时候还有点困惑。这些书信是写给爱人的,读起来非常温暖平静,蒋老师在书信中给当时在柬埔寨金边教小孩舞蹈的林怀民介绍了吴哥的历史文化,以及吴哥建筑的美丽所在,同时也谈到了个人的体悟与思考。
蒋老师对于许多文艺作品都有自己独到的理解,他在谈《诗经》、《楚辞》的时候就提出过自己的见解,深入人心,同时林怀民也是一位很厉害的艺术家,所以蒋老师可以用高雅的文字书写壮美的风景,镌刻废墟的宁静,舒展心中的感悟,畅谈深奥的哲理,这种精神层面的交流令人无比艳羡。
读《吴哥之美》,我们可以在曾几璀璨的文明与今日废墟的原始之间感受文化冲击的美,也可以跟随蒋老师的文笔去思考生命与时间的意义,去思考一个人的成、住、坏、空,去思考这个千百年前的古老文明在时间长河中的今时往日。感谢蒋老师,给我们带来如此美的体验。

然而有些事情不身临其境是无法体会的。
我们看照片只能看到冰山一角,体会不到吴哥强盛的王朝气度;
我们听故事只能听到只言片语,领悟不到吴哥虔诚的宗教信仰;
我们读文字只能读到井中天地,感受不到吴哥颓美的断壁残垣。
只有当我们真正地走进吴哥,在荷池前静坐等待黎明,在壁画前驻足直到斜阳,在塔顶上俯瞰一览天下,在石寺中静心感受微笑,我们会听到丛林中未名的鸟鸣,看到乡路间好奇的猴子,吹着从赤道来鼓鼓的热风,只有在这种时候,我们的五官全开,我们攀爬陡峻的吴哥寺的高塔,踩上窄窄的石阶战战兢兢,只有在这种时候,我们的心中充满敬畏,只有真正踏上吴哥的土地,我们才真正靠近这个失落了千年的文明。
所以在读《吴哥之美》以外,在看蒋勋老师的电视节目以外,我们还很有必要亲自去一趟柬埔寨,去走一回吴哥,去看看这座千年前金碧辉煌今日已巨木丛生的废墟,王朝有王朝的气度,废墟有废墟的颓美,即使是被世人遗忘多年的破落旧城,在今天看来依然有其雄伟,有其端庄。

如果要在吴哥窟众多建筑之中选择一座令人感受最深的一座,我想还应该是有“高棉的微笑”之称的巴扬寺。
到吴哥旅行的人一定会去的地方有两个,一个是最有名最具代表性的建筑吴哥寺,也称小吴哥,小吴哥荷花池前的日出亦幻亦真,令人迷醉,小吴哥的浮雕壁画体量巨大,令人惊叹,小吴哥的高塔陡峻异常,令人望而生畏。现在你只要在网上搜索吴哥,十有八九都是吴哥的日出。
但是因为她太有名,我反而不太想去谈她,当我徜徉在小吴哥的回廊中,当我凝望着五塔上冉冉的红日,当我一次又一次路过映照蓝天白云的护城河,小吴哥给我的感受是祥和。而拥有 54 座佛塔,216 个巨佛微笑的巴扬寺,却更容易穿越时空投影在游人的心底。
巴扬寺是阇耶跋摩七世修建的,他是一个挺特别的国王,他做的最大的一件事情就是让吴哥从以前的印度教改信了大乘佛教。所以在他之前吴哥的建筑都是印度教建筑,在他之后才是佛教建筑,也是他增修了吴哥城几个城楼上的四面佛像。同时在阇耶跋摩七世在世期间,吴哥王朝的国势也达到了巅峰,往后吴哥就开始衰落,最终灭于暹罗人(泰国人)的入侵,被迫迁徙到今日柬埔寨的首都金边。吴哥城也由此沉埋了几百年直到后来被法国人发现。
站在巴扬寺,面对一座座巨佛的神秘的微笑,那种感觉是很特别的。你知道在几百年前这座石塔被称为“金塔”(记于元朝使者周达观的《真腊风土记》,真腊即吴哥,是现存最完整的吴哥王朝的资料),它的墙壁很可能是铺上了一层金箔的,金碧辉煌,构成佛像的巨石也都是严丝合缝的。但是今天金箔早已不在,石头也都裂开了。完璧有完璧的美,废墟有废墟的美。这些歪斜的石头反而给了微笑各不相同的角度,这些裸露的岩石反而给了佛像原始的质感。
我觉得巴扬寺最美的地方在于,他大胆地采用了佛像的脸这样的形式,来表达佛教的思想。我们说金碧辉煌会褪去,石塔也会倒塌,但是佛像的微笑留下的神秘的感觉,似蒙娜丽莎,它所传达给人类的情感体验是超越时间的。几百年前她以金身俯瞰众生,几百年后她以石面笑对世人。存在只是一种形式,高棉的微笑只是走过了一个轮回,以不同的形式面对同样的世界。
吴哥有太多太多值得书写的东西,它的曾经强盛的历史,它的美的高度,它的今昔分明的冲击,无不萦绕在耳畔久久呢喃。但是这些故事也好,这些品评也好,都不如亲自走一趟吴哥,亲自去看一眼荷池前亦幻亦真的日出,亲自去仰望佛塔上祥和的微笑,我觉得这些亲自的体验比起它人絮絮叨叨的描述要深刻得多。
最后援引蒋老师的话,结束这一期感叹比书写要多的每周读书。
美无法掠夺,美无法霸占,美只是愈来愈淡的夕阳余光里一片历史的废墟。帝国和我们自己,有一天都一样要成为废墟,吴哥使每一个人走到废墟的现场,看到了存在的荒谬。
15.10.28 / 夜
于自宅
2022-08-20 原《每周读书》系列更名为《枫影夜读》

二战对于整个世界文化的影响甚为深远,这场残酷的战争促使日本诞生了许多文艺大师,同时也让这些生而敏感的人相继自戕于生命最绚烂的时刻。这其中包括了我们之前介绍过的三岛由纪夫、川端康成,以及本周读书的太宰治。
太宰治在战后的日本文坛名震一时,《人间失格》是其最具影响力的作品,很多读者即使没读过也有所耳闻,在日语中人间失格即是失去做人的资格的意思。1948 年5 月《人间失格》连载结束,同年 6 月作家携一女读者投水自杀。这部作品极尽阴郁之能事,以第一人称视角给我们展示了一个幽暗可怖的世界。
读这部小说,最令人震撼的不是主人公诡谲的视角抑或令人切齿的软弱,而是看似不可思议实则被我们熟视无睹的现实,其洞穿世事的目光如利剑,深深扎入读者的胸膛。我们所忽略的一切在主人公眼里是那样扭曲,他所做的浮想,所发出的疑问我相信大多数人也都曾想到过,但是要清晰地捕捉这些记忆,把为世人不耻的事情用文字书写下来,不具备过人的勇气,不处于非常的心境是做不到的。
即便是作家自己,也还是在结尾画蛇添足地写上一篇后记,声称小说的三篇手札是自己于某酒馆老板处所得,然而今天我们看太宰治一生的经历,已经可以很清晰地看到主角叶藏就是太宰治自己,叶藏的故事也就是太宰治的生平。小说从主人公青少年时期一直讲述到中年,他酗酒、沉迷女色、参加非法集团、多次自杀未遂,最终被送入精神病院。主人公年少便终日惶惶不安,惧怕世人,靠演戏搞笑来应付人生。“每周读书”在介绍《金阁寺》时曾比喻艺术家能接收到普通人忽略了的信息,于是成就艺术。《人间失格》中给我们的信息就是大量的被我们忽略的苦难。主角年幼时被家里的庸人侵犯的苦难,在大家庭中处于幼子渴望得到父爱的苦难,自闭不敢与任何人交谈的苦难,看到太多“正常人”看不到的信息而惧怕与常人交流的苦难,这些“正常人”根本不会碰到的问题到了主人公那里就是一股洪流,他的一生都在逆流挣扎,在波涛中飘荡。
这就好比正常人只能看到可见光而作家可以看到红外紫外的光线,也因此本书中有很多非常独特而精彩的评论,比如主角参加左翼集团的集会,仅仅是因为其“非法”的性质(“因为世上合法的东西反而可怕”)而不是其理论有多么崇高。“不过在我看来,他讲的那些都是再简单不过的东西,理论诚然不假,人类的内心却比理论复杂、恐怖得多。谓之贪欲,则不足够,谓之虚荣,亦不贴切。将色与欲两者并列再一起,亦不符实。我隐约觉得人世深处,不是只有经济方面的事物,还有鬼怪、奇诡的事物存在。”
又比如作者对世人圆滑处世的批判:“圆滑处世的才能?我简直哭笑不得。我有什么圆滑处世的才能!不过,像我这种恐惧人类、逃避人世,总是敷衍了事的人,是否无意间契合了那些奉行‘明哲保身’之道的精神狡猾之徒的处世论呢?人啊,明明一点也不了解对方,错看对方,却视彼此位独一无二的挚友,一生不解对方的真性情,待一方撒手西去,还要为其哭泣,念诵悼词。”
这些辛辣的文笔总让我想起三岛由纪夫《假面的自白》(每周读书 七十五),尽管三岛在《太阳与铁》中表示自己并不喜欢太宰治的作品,但是很难想象此作完全没有受到太宰治的影响。相较之下,《人间失格》更具故事性,而《假面自白》则自传性质更强,但两部作品都是从我们习以为常的波段中拣出可怕的事实,咯出血一般的疼痛。
15.10.20 / 中午
于 T.i.T
2022-08-20 原《每周读书》系列更名为《枫影夜读》

假期结束了,各位读者假期过得好吗?枫影在假期间又找到可以读的好书了,本来假期前已经写好两篇书评了,但是放假玩到没时间更新了 XD,本周开始陆续补上。
工作后深感自己生活圈子的窄小,每日所见以为是整个世界,其实世界大得很。即连互联网这样的小圈子,也有广袤的深网(Dark Web)领域不为世人所知,何况俗世。1969 年作家马里奥的《教父》写的就是鲜为人知的黑手党世界。此作让作家一举成名,他改编的同名电影亦获奖无数,被世人奉为经典。
《教父》在大框架上围绕核心人物“教父”的几个重要事件展开。要塑造一个具有信服力的人物形象,一定不要让人物亲口说出他有多伟大,作家一开始就使用几个不同的小人物求助教父事件,借配角之口把教父伟岸的形象打造得有血有肉,教父从不废话,只做应该做的事,配角人物的神色与心理让教父的形象更深入人心。
在建立了教父形象之后,作家立刻安排教父遇刺事件把故事推入紧张的第二幕,以家族事业面临倾覆及自身生命遭到威胁推动每一个人物挣扎着向前奔跑,最终更以教父之死为契机发动最终幕的大决战,故事驱动力强劲,高潮迭起。
全书最为读者称道的是作家对黑手党家族权势斗争的描写,作家构建了一个庞大的暗世界,这个世界的基石是意大利人的“缄默规则”(美国法律规定嫌疑人可以保持沉默,如此即使有人被捕也不会供出家族的其他成员,家族会负责入狱者的家庭与出狱后的生活。),这个世界的统治者就是“教父”。作家在写作过程中频频发出警语,刚开始看的时候有种读古龙小说的感觉,两者都擅长人物塑造,都擅长概念上的斗争而不是具体的火拼,往往决战时刻总是一击必杀。为了让这一击有足够的冲击力与信服力,作家需要在决战前做足铺垫,着力于决战双方实力的权衡,让读者为悬念揪心不已,最后在击杀的时刻陡然反转,令人惊呼。
在战斗的描写上,马里奥要比古龙逊色不少,但是马里奥在权势斗争上的写作则比古龙要更合理更具说服力。比如教父白手起家的背景描述,比如教父遇刺后作家能提出“这只是生意上的手段,无关个人恩怨”这样的观点。现实生活中我们都知道法律与政府并不能解决所有的问题,我们的世界很大,通行的法则很多,明面上的法则仅仅是其中一种。教父的法则就是千万看不见的法则之一,它与光明世界的法则是并行的关系,不是非此即彼的关系。但他也得生活在光明世界里,所以教父在非法的赌博生意之外也有正当橄榄油生意,教父的顾问除了协助非法的事务外也是一个正当的律师。可以说《教父》描述的世界如此合理,读到教父如何帮助小人物解决法律无法解决的问题,如何以非法手段威慑权倾好莱坞的大导演而对方不敢骂教父一声的时候,多少读者对教父产生崇拜之情啊!
但是《教父》一作毕竟是黑帮小说,有黑帮就一定有暴力,而此作的遗憾正在于暴力的描写。《教父》里有好几场刺杀与决战场面,对于故事情节的推动至关重要,但是读来总是有一种——“太简单了吧”——的感觉,原因就在于铺垫的不足。比如说开篇一直在极力渲染凶猛过人的打手卢卡布拉齐有多么多么厉害,一个人顶十几个人这样,但是这人最后怎么了呢?被两个敌人骗过去稀里糊涂就被暗算挂了?我去,这么牛逼的人物,放武侠小说里分分钟秒杀一个军队啊。当然卢卡是被暗算加二打一整趴下的,现实世界里再牛逼的人也会趴下,但是这是小说啊!
卢卡布拉齐还好,算是个次要人物,那教父呢?教父可是个山一般的人物啊,说遇刺就遇刺了,还一连被人打了好几枪,虽然说保镖不在身边是吧,但是怎么说也是个教父啊,只有一个保镖怎么够啊?好吧后面的部分作家解释说是因为近几年顺风顺水就疏忽了,但是遇刺前你怎么也得交代一下是吧,真是走在路上突然跑出来俩杀手稀里糊涂就把教父杀得趴医院半年不得动弹。
再往后一点,就是主角,教父之子迈克尔刺杀两个敌人,这里写得还相对比较有悬念,还渲染了非常紧张的气氛,如果失败了怎么办?读者还捏了一把冷汗。但是,但是,真的迈克尔走过去两枪就干掉敌人了啊,敌人可以连最凶猛的打手卢卡布拉齐都干掉的人啊!这么简单就挂掉了?好歹也挣扎一下反抗一下,打他个十来二十分钟嘛?
最值得吐槽的还得是最后一场大决战,随便派了几个小弟就把四大家族干趴下了。我想说,如果四大家族这么容易干趴那早干嘛去了?早点把这些黑帮大佬都干趴下不就完了。这里还是属于铺垫不足,好歹也解释一下教父退隐的几年都准备了些什么,要解释一下这些大佬以前有多么多么牛逼,现在有多么松懈,要解释一下为什么之前不能轻易收拾掉,现在教父一死就随便怎么收拾都没问题了。这些东西基本都是一笔带过,很少给出解释,这样稀里糊涂的战斗就结束了。
虽然吐槽了战斗部分,但《教父》还是看得非常过瘾的一部小说,瑕不掩瑜。其实读者为之兴奋的并不是暴力打斗的描写,这些都不重要,重要的是小说中权势斗争的你来我往,人物内心的微妙变化,以及作家时不时冒出来的一两句警语,教父的语录。光是这些已经足以让这部作品大放异彩,至于对打斗什么的有高要求的读者,嗯,还是看金庸吧,打个过瘾。
P.S. 金庸后期的作品其实也慢慢走向无招胜有招的境界,最后封笔之作《鹿鼎记》因为描写权势斗争比较多,其实也不怎么侧重打斗场面了,韦小宝在这部作品里只会脚底抹油的招式。
2015.09.25/中午
于 T.i.T
2022-08-20 原《每周读书》系列更名为《枫影夜读》

《孤儿列车》是和《无声告白》、《24个比利》一起看的,一口气读了这么多畅销书,深刻地感受到这些套路的定式,以及定式带来的快餐式的空虚。不过我还是很喜欢《孤儿列车》里讲故事的老婆婆薇薇安这个角色,同时这部作品的写作技巧也是三部之中最为娴熟的一部。
1800 年代,美国街头有大量的流浪儿童沦为乞丐,当时年仅 26 岁的美国人 Charles Loring Brace 成立 Children’s Aid Society 组织,并组建了有名的“孤儿列车”(Orphan Train)。Charles 认为只有正当的工作与良好的教育才能使这些流落街头的小孩成长为一个能够自力更生的美国公民。“孤儿列车”就是为了把东部大城市的流浪儿童运送到地广人稀的西部,帮助小孩找到寄养家庭而出现的。
尽管孤儿列车的初衷是以慈善为宗旨,但世事不如意者十有八九,不是每一个寄养家庭都有能力可以负担多一份口粮,也不是每个家庭都能善待小孩。当时有不少小孩在这些家庭受到虐待,家长忽视规定没有送小孩去念书,小孩被迫干苦力活,甚至住在猪圈和马厩,?很难说小孩在寄养家庭就一定比流浪生活过得更好。在 1929 年美国经济大萧条之后,运作了 75 年的“孤儿列车”终告停止。尽管“孤儿列车”一直饱受争议,但是 Charles 仍是无可置疑的慈善先锋,他的孤儿列车直接催生了美国现代的儿童保障制度。
美国现行的儿童保障制度由慈善机构担保每个寄养家庭的资格认证,每个月慈善机构会给寄养家庭一笔钱用于支付寄养儿童的各项开销,现在的制度无疑比起 100 多年前要科学得多。但是是否现行的制度就完美无缺了呢?
英国作家 Christina Baker Kline 挑选了现代儿童保障制度下的不良少女莫莉,与曾经坐过孤儿列车的老婆婆薇薇安这两个人物,通过人物的碰撞为我们讲述了两代孤儿的故事。
莫莉作为故事的引子,因缘际会来到薇薇安家做社区服务以免去因偷书带来的感化院惩罚,从而牵出薇薇安幼时在孤儿列车上的经历。薇薇安来自移民家庭,在一场大火中成为孤儿,从而辗转上了孤儿列车,遭遇了各种悲惨的故事。故事总是一章以明亮幽默的色彩讲述莫莉的故事,下一章则回到黑暗的20 世纪,在阅读的过程中我非常喜欢老年的薇薇安以全知全能的视角,幽默地应对生活的态度,而对进入黑暗世纪的故事感到焦虑。这正是本作精妙之处。
明暗的强烈对比令读者感到深刻的冲击,但是就故事本身来说,由于没有接触过这段历史背景,并没有很强的代入感,主角所遭遇的不幸也是现如今很多影视作品都用滥的桥段,基本上看了开头就能猜到后面会有什么事情发生,而且薇薇安后来终于遇到好人家之后就一路顺风顺水,也有点缺乏波澜。总的来说,《无声告白》与《孤儿列车》都是一个套路,抓住比较符合读者关注点的情感切入点,以常人不曾经历的情感体验来打动读者。但是这两部作品的结尾都比较普通,中后期悬念不足导致结尾无力,比如《孤儿列车》后期过于平稳,《无声告白》则中后期直接阐明了孩子自杀的终极悬念,已经没什么悬念可以再布置了。
三部作品之中应该《24个比利》的故事最好做铺垫,悬念可以轻易就推到顶点——毕竟精神病可以是极不稳定的状态——但是作者为了纪实就放弃了技巧的应用,有点可惜。
15.09.24/中午
于 T.i.T
2022-08-20 原《每周读书》系列更名为《枫影夜读》

1977 年,比利·米利根(原名:William Stanley Milligan)美国俄亥俄州立大学发生了三起抢劫强奸案,却被诊断为患有多重人格分裂症而获无罪释放。这件事情在当时引发群众激烈的争议,有人认为他是演技超凡的罪犯,甚至有人企图谋杀当时还在精神病院接受治疗的比利。事情的真相到底如何呢?作家 Daniel Keyes 与比利经过数百次的谈话,采访了 62 位与比利相关的医生、护士以及亲人朋友,于 1981 年出版《The Minds of Billy Milligan》一书,揭露比利悲惨的一生,试图为比利正名。
2014 年 6 月,作家 Daniel 逝世,同年 12 月,比利因癌症逝世。我想这可能是最近这本书又热门起来的原因。读完这本书,我感受到了深刻的震撼,不是因为作者的写作技巧与故事情节,而是这个真实的事件令人瞠目结舌。比利的一生过得太坎坷,太悲惨,人们的不信任与攻击太冷漠,太残酷。
我们普通人也会有类似多重人格出现的时候,比如情绪低落的时候,比如有反社会情绪的时候,但是普通人与病人的区别就在于:分裂症患者在人格转换的时候并不共享记忆,其中一个人格无法记住另一个人格做过的事情,而且每个独立的人格有自己的名字和生活背景。这一点应当是出于自我保护而演变出来的,因为多重人格分裂的病人大都受到过巨大的心灵无法承受的打击,才分裂出一个用于承受痛苦的人格,而自己的核心人格则可以眼睛一闭忘记痛苦。
比利就是在年幼的时候,遭遇继父的虐待,才分裂出用于承受痛苦的丹尼与戴维两个人格。比利的核心人格的感受就是,一旦继父要虐待他了,他就把眼睛闭起来,等到睁开眼睛的时候,他不知道怎么就到了另一个地方,时间也不对了,但是所有的痛苦就好像没有发生过一样。
什么样的痛苦能够让一个人非得分裂出一个独立的人格来承受呢?比利的继父不仅殴打他,辱骂他,还鸡奸了他,甚至曾经活埋过他,并告诉他如果他跟母亲说起这件事情就会把他杀掉然后跟母亲说他自己跑掉了。继父对比利地狱般的虐待正是比利的心智崩溃的开始。
他早期分裂出的人格是用于承受痛苦的,后来他又相继分裂出许多其他的人格。在医生的帮助下,主要人格都陆续出来与医生交谈,经过长时间耐心的治疗,比利终于开始以核心人格为基础融合其他的人格。当大多数人格成功融合的时候,一个全新的人格“老师”出现了。医生问他除了画画(比利有好几个人格都擅长绘画,曾以卖画维生)还希望做什么,最后他选择让医生认识的作家把他的故事写出来,让更多的人知道虐待儿童的事情。于是有了这部《24 个比利》,大多数完整的记忆与有逻辑的叙述,都是由这个融合的人格“老师”对作家讲述的。
但是事情并不总是美好的。比利虽然被判无罪却需要一直呆在精神病院里接受治疗。一开始他呆的医院都是有学术界权威的医生在主导,大家很快就相信比利确实是人格分裂而不是装出来的,都尽心尽力想要帮助比利康复。但是随着比利可以假释的期限临近,外界的报刊舆论对比利的声讨越来越激烈,什么“强奸犯很快就可以自由出入我市”之类的报道每天都上头条。刚刚才能融合的比利看到这些报道后承受了相当的打击,人格又开始分裂。由于分裂的人格无法记得上一个人格的记忆,他有时候醒来发现自己被人抓住,就开始反抗,造成了医护人员的伤害。这正好应了外界的批评,比利再次接收法院的审判。
最后他被判送入以收治精神病犯人而臭名昭著的利马医院,传说进入这家医院就相当于判了死刑。比利在这家医院遭受了毒打,注射了过量镇静剂(镇静剂不利于多重人格分裂症,会恶化病情),比利在利玛医院期间 Daniel 还与他一直联系,后来把他的抗争的故事写成了本书的续集《比利战争(The Milligan Wars)》。由于各种原因,这本书于 1994 年在日本出版,2000 年于台湾出版,却始终无法在美国出版。
从《24个比利》这本书,我们看不到作者刻意埋伏的悬念与注重情节的轻重安排,分明这是一个非常好的故事题材,只要稍加修剪就能成为一本极好的犯罪小说,但是作者不。从一开始作者就阐明了比利的全部 24 个人格,然后从比利被捕开始,到比利的多重人格被发现,到比利融合开始回忆自己悲惨的一生,到比利被关进利马医院遭受非人的待遇再也找不回融合的人格。作者写这本书以尽量纪实的视角去写,他是为了帮比利发出控诉而写,不是为了写小说而写。说实话,以一部文学作品的视角,书中很多铺陈比利人格切换的故事的地方都可以省略,以使情节更加紧凑,这部作品在写作技巧上可谓平平无奇,但是他道出的故事却惊天动地。
2015.09.05/下午
于自宅
2022-08-20 原《每周读书》系列更名为《枫影夜读》

2014 年 6 月 美籍华裔女作家伍绮诗(Celeste Ng)的首部小说 Everything I Never Told You 在美国出版,迅速受到美国读者关注,成为 Amazon 2014 年最畅销小说。今年(2015年)7 月简体中文版正式登陆中国,于是出版社与各大媒体争相造势,什么“中国女作家跻身美国文坛”、“打败斯蒂芬金成为 2014 年亚马逊最畅销小说第一名”之类的新闻比比皆是。
这些媒体不要脸的吹捧我们且抛下不理,单就《无声告白》一书来说,作者的写作技巧非常成熟,擅长人物塑造与情感描写,通过 6 个各不相同的主要人物把异类、歧视、压力等话题发挥得淋漓尽致。尽管此书水平不错,但是单就一次 Bestseller 并不能代表作者就真的在美国文坛占有地位了,我们拿之前 The Martian (每周读书 七十一 Andy Weir《The Martian》)在 GoodReads 上的数据对比,The Martian 有 176,258 ratings,28,212 reviews 而 Everything I Never Told You 只有 55,435 ratings,6,812 reviews(截至9/3/2015)。已经算很多人关注的小说,但并没到疯狂的地步。
回过来看作品本身。小说第一章展示了一个美好的美国混血家庭,以找不到女儿 Lydia 为契机,使第一章处于纷乱与麻烦之中,最终以警察抽干湖水发现 Lydia 的尸体结束本章,情节非常紧凑,轻描淡写之间描述了由白人母亲与中国父亲结合的家庭,以及家里 Lydia 集所有聚光灯于一身的地位。不得不说,这个开头非常漂亮!
带着“Lydia 死因未明”的主题悬念,作者开始为我们展示父亲 James 的家庭背景:上世纪 60 年代年幼的他随着偷渡打工的父母亲到美国,从小在学校就被视为异类,一直渴望却永远无法融入大家。以及母亲 Marilyn 的家庭:她有位传统的母亲,她自己一直渴望过得与母亲不同,却因为是女性的身份而郁郁不得志。
这些背景故事单独拆分都可以写出不错的情感故事,但是作者拖着“Lydia 死因”这个悬念却一直在讲述她父母亲的故事,回忆的部分太啰嗦,令人感觉情节拖沓,类似火影的“回忆杀”。但是这一部分又是后面情节发展的必要铺垫,不可或缺,如果作者处理得好应该可以更简洁一点,或者处理得更起伏得当一点,就是说:你可以做背景描述,但是不要描述得太无聊。我觉得这一部分当是全书写得最差的地方。
作者为每一个主要人物都准备了大量素材,用于表现他们在社会群体中被排挤,被欺负,被歧视等苦痛,但是过于细碎,作者擅长细节描写,尤其是以小女儿 Hannah 童稚的视角看到的世界,令人叹服,却不怎么擅长组织起所有的细碎的材料,在表现 James 与 Nath 相关背景故事上堆积了诸如泳池、运动会等故事,却没有层次感与递进感,与其堆砌所有的材料,还不如只选择最具有表现力的几个场景。这种琐碎的分散感还体现在几个主要人物的份量上,从故事上来看 Lydia 无疑“应该”是最重的主角,因为她是这部小说的开篇,她的死因是整部小说的主线悬念。但是她的死因与家庭的每个人都有关联,于是作者又花费了大量的笔墨在父母亲与哥哥 Nath 身上,一旦写到父母亲就必须写父母亲各自的家庭,很容易就分不清轻重。如果每个人物都是主角,这本书就没有主角。
而说到本书情节最紧凑,情感起伏最大,每一个人物的表现都有血有肉又哭又笑生动活现的部分,应当是 Marilyn 离家出走去实现自己读完大学成为一生的梦想,但发现自己又有了第三个孩子不得已回归家庭的那一刻。在这个支线中,每个人物的性格、地位与内心的渴望都得到淋漓尽致地表现。
Marilyn 渴望摆脱母亲的命运,渴望与众不同,渴望成为医生,但是与此同时,又与其他普通人一样在医院里看到女医生会觉得奇怪,这种矛盾的心理赋予了 Marilyn 鲜活的人性。
James 则渴望融入社会,渴望别人接纳自己,一生生活在自己受尽排斥的阴霾之中,看到儿子 Nath 逐渐成为自己当年的影子他开始疏离儿子,而妻子 Marilyn 无故地离家出走又让他觉得果然白人是看不起中国人的,跟他结婚就是不应该的,多年的疮疤再度被揭开。
还有女儿 Lydia,脆弱的内心一直单纯地祈祷让母亲回家,只要母亲回来就好,于是这种渴望在母亲回家后成为 Lydia 内心最大的负担。好在有哥哥 Nath,这个习惯了被父母忽视的男生,自立自强,一直坚信有一天能够离开这个令人不开心的家庭,找到自己的自由。
我觉得这一段真是全书写得最精彩的一段,每一个人物都各有牵绊,各有自己的打算,各有自己的悲伤。而 Marilyn 的离家出走以及回归,则使各个人物后面的心理发展成为自然。情感的澎湃在孩子们呆视母亲仿如陌生人,又肆泪拥抱母亲的那一刻达到顶点。
这一段大约在全书 50% 的位置,这个位置是个分水岭,前半部分除了开头之后情节拖沓,但是交代的背景又不可或缺,后半部分有了前面的铺垫,展开来顺风顺水,自然得多,只是还稍微嫌有点太长了。
最后故事的结尾在 Nath 和 Jack 在湖边的打架结束,Nath 沉入湖底,感受了妹妹当时的感受,随后又浮出水面,“太晚了。他已经学会了怎样不被淹死。”
我觉得故事的结尾有些过于平淡。按照作者开篇的悬念来写,如果把 Lydia 的死因放在最后揭示会更令人感动。作者在书中把 Lydia 深夜划小船到湖中央的原因处理成是给自己一个借口,从来不会游泳的她如果能够游到岸边就重新开始新的生活,否则就让一切都结束吧。这种解释始终有点牵强,毕竟带有的乐观成分太高,而 Lydia 给人的感觉是她已经受够了这个高压炉了,她已经完全受不了了。
一个好的开头可以让这本书卖得不错,一个好的结尾可以让你的下一本书卖得不错。这本书的开头不错,中间部分有点拖沓但很令人感动,如果结尾能够再掀高潮就更好了。
15.09.03/夜
于自宅
2022-08-20 原《每周读书》系列更名为《枫影夜读》

自 1985 年出道以来,东野圭吾每年都能保持 3—5 本作品的发行,真不愧是名副其实的高产作家。这本《恶意》是东野 1996 年发行的 5 部作品之一,同年的作品我只读过短篇集《毒笑小说》,那部作品差强人意,并不怎么有趣。
然而《恶意》却以其机巧的反转设计,特别的叙事结构,多元的人物塑造,以及时不时穿插的揶揄讽刺,深深地吸引了读者。从此作我们可以看出东野已跳脱本格派推理的“凶手是谁”的悬念,转而在凶手动机的追查上巧设机簧。
《恶意》一书围绕“校园暴力”的主题展开,这是一个大多数人都非常熟悉的话题,经历过校园暴力的人,无论是欺负者还是被欺负者,都很难忘记那段经历,于是这本书就很容易引起读者的内心共鸣。虽然现实生活中大多数校园暴力并没有小说作品中的严重,但是类似事件还是会给年少的内心留下深刻的阴影。(比如枫影现在还会很清晰地记得中学时被人欺负的场景,泪目。)《恶意》抓住这个特别残忍却又容易被世人忽略的话题,制造了一起极端的事件,发人深省,读罢全书,令我印象最深的不是东野炉火纯青的写作技巧和一波三折的反转,而是这个司空见惯的话题下世人习以为常的冷漠,东野抓住了这个病态的“日常”,笔锋犀利,入木三分。
枫影非常喜欢技巧漂亮的作品,比如独倚望江楼的周邦彦,比如马蹄声洒落在街上如白色小花的何其芳,东野的作品同样漂亮,不在辞藻的雕琢,在故事的结构。
《恶意》九章,各以不同人物自己的手记、回忆、自白来写,翻开此书的第一页我就想起阿加莎的《罗杰疑案》,这部作品也是比较特别的以凶手的第一人称视角来写的,所以看到本书的第一段就已经知道凶手是谁了,好在这本书凶手是谁并不重要(笑)。这样的写法好处非常明显:因为是第一人称视角的手记,可以随意布置盲点?(反正是从我嘴里说出来的,从我的笔下写出来的,做不得真)。基于这一点,作者才得以在本作中自由反转,一层又一层,给读者带来畅快的情感体验。
为了实现多人视角的叙事结构,作者需要倾注相当的精力。虽然凶手与被害人只有那两个固定的名字,但是反转的故事一定有对立的人格,每一个人格都需要相当的思虑与设计,才能成为一个血肉丰满的人物,否则就是空洞的白纸,所以作者至少要设计两个对立性格的凶手,以及两个截然不同的被害人。除了警官加贺恭一郎的性格可以不变外,这本书的三个主要角色就得有五个性格。再加上配角们,加上第七章加贺去调查当事人周边的人的访谈。每一篇简短的访谈都是一个个性鲜明的人物,仅仅从谈话的语气就需要分辨出这是个什么样的人物,虽然相对于长期存在的配角来说,这样的人物只要访谈一结束就可以消失了,但是塑造这些谈话还是需要一定的精力。这是视角切换带来的缺点,作家需要设计的人物变多了,但是可以看到作家在此作中可谓游刃有余,这就需要作家平时有一定的积累。这让我想起《毒笑小说》这本短篇集,当时给我的感觉就是:这大概是作家平时积累的写作素材拿出来热一热就发表了的吧。
除了人物之外,《恶意》中还出现了几处“故事中的故事”这样的设定。由于本作的主要事件与小说作家的作品相关,难免会描述几个作品的内容,这里虽然只是提到故事梗概,但每个故事都十分完整,足见作家平日的构思,尤其是核心作品《禁猎地》,把“校园暴力”的故事以被害人作品这样的形式写出来,比起直接叙述被害人的经历要更令人信服。还有本作中穿插的对教育界的揶揄讽刺也是景上添花的闪光点,比如“老师和学生的关系建立在一种错觉上,但是维持这种错觉对双方而言都是幸福的事情”,类似这样的论点在书中有几处,文笔非常犀利。
自此,我们可以说《恶意》是一部技巧成熟,立意高远的作品,然而,就如书中加贺警官所说:
解释得通和百分百信服是两码事。
推理小说如果逻辑不够缜密则容易给读者留下无法信服的印象。有的读者喜欢追查推理小说的蛛丝马迹找出逻辑漏洞,我对这方面兴趣不大,但是有一点始终觉得不太舒服:就是凶手野野口修的真正动机。
他背负着少年时期“校园暴力”受害者的包袱,又经历过“被迫成为协助强暴同学”的帮凶,这段经历确实足以成为他内心的阴影,再加上被害者日高以德报怨的帮助,他自身的妒忌、癌症等多方面因素的侵扰下,野野口成为真凶的动机可以说是很成熟的。但是,作者刻意采用的多人第一人称视角切换的写法,却恰恰漏了“真实的野野口”这一视角。读完全书,我依然非常好奇真实的野野口修到底是什么样的人物,他的性格应该十分阴沉,善于演技,而且善于写作,而且内心的扭曲应该是世人无法想象的,我们能想象的是,他一定有一套自己发展出来的扭曲但是坚实的三观。这一个视角如果写得好的话,我认为比起以加贺的角度去解读野野口的心理,要更加令人震撼。
但是很可惜作者并没有写下“真实的野野口”这样的视角,连一次以这样身份的对话都没有,说得好听叫“留下悬念”,说得不好听就是“结尾太仓促了”。
最后我想说瑕不掩瑜,这部《恶意》依然是东野圭吾非常优秀的作品,即使带着“没有真实的野野口的叙述”这样的遗憾,也不妨碍它成为与《白夜行》并列的好作品。
15.08.30/下午
于自宅
2022-08-20 原《每周读书》系列更名为《枫影夜读》

我们说东野的作品最大的亮点在于社会问题与人性的探讨,但是他并不是从一开始就写这些话题的。出道作《放学后》就是经典的推理小说,重点在“凶手是谁”这件事情上,到了后来小说《宿命》被称为是创作风格的分水岭,从此以后,凶手不再是小说的主题,“凶手的动机”成为他作品中的主题悬念。以此为契机,东野创作了《白夜行》、《幻夜》、《秘密》、《嫌疑人x的献身》等作品,这一时期的东野可谓是人生巅峰。
这本 2014 年的作品《虚无的十字架》秉承了东野一贯的做法,在推理的形式上,探讨了一个很大的社会话题——死刑。
死刑是古已有之的最高刑罚,在几乎所有的人类社会里都有死刑这种刑罚。近年来废止死刑作为社会话题一直被人反复探讨,并随着各种严重刑事案件的出现成为一时话题,比如药家鑫案就曾引发人们对废止死刑的热烈讨论。其实废止与支持死刑就像一场辩论比赛,正反双方各有道理,没人能说出绝对的黑与白。
东野在《虚无的十字架》这部作品里,从遗族(受害人家属)的角度出发,进行了一系列探讨。探讨的话题也离不开正反双方集中讨论的几个论点:
支持死刑的人认为杀人偿命,天经地义,对于杀人犯来说,死刑是最符合善恶报应的结果。反对者则认为无期徒刑的惩罚性比死刑要高,而且政府本身没有权力剥夺人的生命,法律也不是作为报复的手段,监禁教化犯人是比简单粗暴地死刑更好。
知道罪犯被执行死刑,对于受害人的遗族可以有一定的心理安慰。但是反对者认为死刑事实上并没有实质性的帮助,死者不能复生,把罪犯处死了受害者也没能活过来。
支持者认为死刑可以彻底隔离罪犯,反对者则认为无期徒刑加上不得假释也可以隔离罪犯。
支持者认为如果司法公正严谨,则极少可能会产生误判,反对死刑者认为无法完全避免误判,而一旦冤杀则永远无法补救了。
《虚无的十字架》从遗族的内心出发,作为失去独生女儿的父母,当然希望罪犯接受死刑:
要求杀人凶手自我惩戒,根本就是虚无的十字架。然而,即使是这种虚无的十字架,也必须让凶手在监狱中背负着。
但随着故事的发展,这位坚决的母亲在态度上发生了转变,事实上也就是支持派与反对派的斗争。小说各自挑了一个对支持派与反对派有利的案例来展开,在“是否应该废止死刑”这样一个根本没有答案的话题上,作者非常鸡贼地把诠释地交给主角,以主角的角度含糊地带过。所以是“死刑话题”赋予了东野这部小说不错的思想内涵,同时也是这个话题的无法解答使得这部小说不够深入。作为一个文学作品,不管是正方也好反方也好,只要作者的信念足够坚定,作者本身相信了这个观点,就能灌注给这部作品相当的活力与深度,但是由于作者本身的犹豫导致主角的犹豫,由于主角的犹豫导致作品流于表面。
从《白夜行》探讨孤儿、恋童癖与社会不平等问题,到《红手指》探讨老人赡养问题,到《秘密》探讨性倒错问题,作者在这几个话题上都有明确的个人立场,所以这几部作品给人气场很强,坚不可摧之感,但是《虚无的十字架》由于作者自己也给不出明确的答案,我只能说,故事讲的不错,有东野一贯的水平,但是过几天我肯定会忘了。
15.08.23/下午
于时光 Cafe
今天已经是 2015 年的第 237 天了,今年里你读了几本书呢?最近两个月里,枫影读到了不少好书,其中当首推来自以色列青年才俊的《人类简史》,作者超然物外的三观深深令人折服。然后来自美国女作家 Gabrielle Zevin 的小说《岛上书店》也是不错的读物。
至于莎翁的《四大悲剧》由于年代久远,可能会略显沉闷,却是了解这个英文文学巨匠的不错选择。海子和魏宁格的故事颇为相似,两人都是思想与故事比作品有趣的。
以下是这八周来的书单:
2015-06-27

一开始觉得莎翁作品难读,其实他是16世纪人,用的现代英语,懂得几个thy, thou, thee之后就没有什么问题了,而且他写的是要上演的戏剧,情节紧凑曲折,再且中译本有民国才子朱生豪的版本,通俗易读。所以读莎翁的戏剧就跟读小说一样。
2015-07-09

作者在全书中贯彻这种超然物外的三观,令人叹为观止。而且值得一提的是,中信的这部译本,质量非常高,语言晓畅,而且作者还为中国版做了内容修改,加入了大量跟中国历史相关的资料来印证他的观点,据说他对每一个国家的版本都做过修改,简直神人。
2015-07-16

虽然这本带有很强总结目的书并不值得去读,但是“为你读诗”的出现是一个好的兆头,希望诗歌这种美丽的文体能够重新受到大众的欢迎,催生更多有才华的诗人。
2015-07-23

大多数读者应该都听过《面朝大海,春暖花开》,听说过海子卧轨,实际上,正是 1989 年 3 月 26 日这个沉痛的日子,让海子成为这个时代的神话。
2015-07-30

在课堂上我们往往把作家、作者与他所处的时代孤立了,把活生生一个大文豪讲解得苍白无趣。要欣赏一个作家或者一个作品,一定要放回到当时的大舞台上去,纵观时代变迁给文坛带来的变革,横观百家争鸣山川社稷给作者带来的影响,才能真正体会到作品的精妙之处。
2015-08-06

我们通过阅读知道我们并不孤独,我们阅读因为我们孤独,我们阅读所以我们不孤独,我们不孤独。“No Man Is an Island; Every Book Is a World.”
2015-08-13

几年前我在朋友圈里看到陈坤写了《突然就走到了西藏》这本书,当时我的内心就是这种想法:“一个演员,居然还写起书来,书名还故作文艺。”(其实真正的心理是:一个有名的演员,居然还写起书来,太厉害了,对比之下,我实在太没用了。)
2015-08-20

以前不理解“同性恋”存在的原因,毕竟无法繁殖后代,对物种的延续是致命的,直到读了《性与性格》,按作者的理论来说,其实本来就没有所谓的男女,以绝对男性与绝对女性为两端,人类的每个个体都只是这条线上的某一个点,于是一切就都可解了。

虽然日常阅读以 Kindle 为主,但家里还是攒了很多纸质书,每次搬家都特别痛苦,就想还不如送给有兴趣阅读的人。
有兴趣的读者请回复:我想要+“书名”(公平起见每个人选两本吧)。我会找最先回复的小伙伴要邮寄地址。T.i.T 创意园内可以免费送货,其他地区的小伙伴就邮费自付吧。
周末整理出来的书以设计类(原研哉、隈研吾、田中一光)和小说类为主,共 15 本书。
一、设计类
没看完于是没写书评╮(╯_╰)╭
没看完于是没写书评╮(╯_╰)╭
这本书更像是字典,就完全没写书评了
二、小说类
没看完于是没写书评╮(╯_╰)╭
三、其他
2022-08-20 原《每周读书》系列更名为《枫影夜读》

魏宁格坐在书桌前,昏黄的灯光映在他年轻的脸上,指尖握住的钢笔凝在空中,他此时格外平静。
也就格外纷扰。
唯有心怀平静才能感受纷扰。
今夜无雨,旅馆外的夜空深沉地望着大地,沉默得可怕。魏宁格想起多年前的雷雨夜,就在这家旅馆,一个伟大的人物在病榻上奄奄一息。忽然一声雷响,伟人朝空中怒挥右拳,仿佛扼住命运的交响曲,然后身体跌落尘世,灵魂从此升上维也纳深沉的夜空。
贝多芬。
魏宁格吸一口气,终于下笔,写下两封书信,一封给他的父亲,一封给他的弟弟 Richard。他把信装好,站起来,仔细整理了一下自己的衣装,心中一阵苦笑:“租下这个房间的时候还跟老板娘保证过绝不会闯祸的,对不起了,老板娘。”
抬眼望见镜中人的脸,5 年了,似乎没多大改变。5 年前,魏宁格来到维也纳大学,修习哲学与心理学。他热衷于思考致难的哲学问题,两年前他拿着论文《Eros and the Psyche》去找弗洛伊德的时候还满怀期待,却被泼回一头冷水。后来这篇论文被改写为《性与性格》,凭此成功拿到维也纳大学哲学博士学位。数月前,基于这篇论文的书经过重重阻隔终于面世,但是这本书既没得到强烈的批判,也没有获得预期的轰动。
心静如水。即使这本书没有成功也好,即使被指抄袭被所有人误解也罢,是时候了。
魏宁格整理好自己的衣装,摸了摸手中的枪杆。
第二天被发现的时候,他躺在旅馆的地板上,衣着整齐,一颗子弹穿透了他的心脏。
魏宁格的故事跟海子有点相像,都是非常有才华的人,海子 15 岁进入北大,魏宁格 21 岁写出惊世骇俗的《性与性格》;都是生前不为人所理解的人,海子生前难以出版诗歌,魏宁格多次求出版社出书无果;都是死后声名鹊起的人,海子卧轨而成名,魏宁格自杀而本书轰动一时。这两位都是时代的悲剧。
《性与性格》这本书出现的时代,在中国,正是清朝末年,刚签订《辛丑条约》不久的动荡时代;在欧洲,正是资本主义崛起,列强争夺殖民地的时代;在全球,正是暴风雨前的平静,一战即将爆发的时代;在维也纳,这是被称为“世纪末维也纳”的文化繁荣的时代,是诞生了佛洛伊德,诞生了维也纳分离派的时代。
以前我不理解“同性恋”存在的原因,毕竟无法繁殖后代,对物种的延续是致命的,直到读了这本书,作者认为世界上没有绝对的男性也没有绝对的女性。以这两者为极端,人类的每个个体都是这条线上的某一个点,是 M 因素与 W 因素的混合体。

以作者的这种角度来看,“同性恋”是不存在的,每个人都是“同性恋”,这种“雌雄同体论”在西方学术界的影响很大。魏宁格拿着本书的初稿去找弗洛伊德的时候,弗洛伊德只是否决了他的观点,却并没有说出他自己也在研究雌雄同体论(bisexuality)的事实,这点上弗洛伊德不太厚道。
全书读下来,第一部分最好读也最精彩,这一部分也是作者得以获得博士学位的部分。作者从生物学和心理学的角度层层剖析了男性与女性的区别,最重要的就是上面所述的,一个现实社会认为的男性也会有女性的元素,女性也会有男性的元素。现实社会仅凭生殖系统就对男女强加各种奇怪的社会偏见实在太过粗暴,比如男人一定要凶猛强悍,女人一定要温柔细心,以魏宁格的性别区分法来看,这种粗糙的见解真是太可笑了。更极端一点,对于“性倒错”(有男性生殖系统但认为自己应该是女性的人,或者反之)的群体来说,如果大众都接受这种魏宁格式的性别区分,而不是仅凭生殖系统就妄下断论的话,他们甚至可以不用做出如变性手术这种痛苦的选择。
我们可以说魏宁格的“雌雄同体论”未必正确,但是从他提出的观点出发去解释“同性恋”,去解释“性倒错”,则远比前段时间美国最高法院通过“同性恋”的理由要容易接受的多——一个 M 因素较多的人与一个 W 因素较多的人结婚了,多么正常。
但是这本书也有自相矛盾的地方,魏宁格自己说了男女的区分应该抛弃过去那种粗糙的方法,但是第二部分开始却频频向女人发难。即使我们以“绝对的女性”这种概念来理解他第二部分中所说的“女人”,也会发现很多不对劲的地方,比如”母亲“这个概念,事实上只有日常认为的“女人”才有生育能力,我们很难说魏宁格不是以现实的标准在指称书中的男人女人。
而且第二部分开始大量涉及哲学、逻辑,有许多深奥的概念,作者似乎直接把读者当做哲学系的学生,不做任何解释直接就用上了,读起来非常吃力。而涉及术语的翻译就更加难懂了,事实上第二部分我根本没有耐心全部读完,后半部分都是直接浏览带过。
我觉得《性与性格》这本书在 19 世纪末的出现有它应当轰动的价值,即使没有魏宁格的自杀也是,尤其是第一部分的论述非常精彩,值得一读。但是第二部分就明显感觉到时代带来的局限性,以及学术理论带来的艰涩,所以单就阅读体验来说,读第一部分就差不多了。
在整理魏宁格的资料的时候,我发现这本书的背景故事比它自身还要有趣。一百多年过去了,还有人深受魏宁格的影响,甚至在在法国北部一个小岛上有一位大叔还做了个网站:http://www.theabsolute.net/ottow/,上面有完整的英文版《Sex and Character》。如今魏宁格葬在维也纳新教徒公墓,墓碑上是父亲为他写的墓志铭:
此石碑下躺着一个在世上不曾寻获内心平静的男孩,
当其将己心灵的启示传授之后,在世上已找不到适合的地方。
他不停向有着最伟大思想的死亡国度探寻,
最后在一间屋子停了下来,
结束了凡间肉体的延续

15.08.16/下午
于自宅
2022-08-20 原《每周读书》系列更名为《枫影夜读》

曾走过几次长途自行车骑行,辛苦但是很令人怀念。以前我不明白这种劳累而危险的旅行吸引人的地方究竟是什么,也许是努力过后看到美景时内心的激动,也许是征服一段艰难的路程之后内心的满足,直到读了演员陈坤的这本《突然就走到了西藏》,才知道最美的原来是“简单”。
现代社会人与人之间的关系日趋复杂,这种复杂使人不愿意轻易去相信别人。许多有过长途旅行的朋友,或徒步或骑行,或登山或背包,回到现实社会都表示很难再次融入。其原因就在于:在路上的时候,每个人都是陌生人,人与人之间的关系非常简单,这种简单使得大家对待彼此更加真诚,这种真诚使得旅行的人更加感受到旅行的美好,即使有过一两次不愉快的经历,也还是愿意相信世界是美好的。因为简单,所以真诚。
陈坤的这本书,能吸引读者读下去的,大约就是真诚。
我向来很看不起认为“码农”只能做“写代码”的事情的人,这些人认为“产品经理”写代码是很可笑的事情,就因为人家的头衔是“产品经理”。但其实早期的互联网从业人员很多都是“全栈工程师”(值产品、设计、编程全包的人),后来为了提高效率才出现精细分工。我觉得一个工程师可以不具备“全栈”的能力,但是态度上不能看不起“做着设计的工程师”,或者“写代码的产品经理”。
几年前我在朋友圈里看到过陈坤写了《突然就走到了西藏》这本书,当时我的内心就是这种想法:“一个演员,居然还写起书来,书名还故作文艺。(其实真正的心理是:一个有名的演员,居然还写起书来,太厉害了,对比之下,我实在太没用了。)”当时有这种想法真是可耻,直到最近翻开了本书第一页,就再放不下了。
陈坤是一个有故事的人,没有故事的人写不出这样的书。开始看书的时候我对陈坤了解不多,只知道他演过《金粉世家》是个内地的名人。事实上陈坤在书里也毫不讳言他因为《金粉》成名的事情,他说他自己的人生是幸运的,同朋友去考北影结果别人没考上自己考上了等等。我觉得他的故事“有意思”,事实上他的故事正是这本书最大的亮点。
写本书的起因是陈坤在自己的工作室办了一个公益活动,带领经过层层面试的是个大学生到西藏徒步。这本书是对这场活动的记录,也是陈坤自己自传式的陈述,西藏是一个很艰险也很美丽的地方,陈坤因为自己的“暴发户”式的成名曾经迷茫过,抑郁过,他走过阴影之后决定做公益,去帮助其它人。于是带领大学生去西藏行走,期望能通过这种感受大自然的方式让这些学生对于生命有所领悟,这种艰苦的修行有时候甚至可以改变一个人的一生。而活动的第一天,陈坤就和大家大吵了一架。
陈坤的本职是一名演员,但是这本书写得明白晓畅,这点很难得。读这本书的时候,我一直在与自己的内心做对照,陈坤在书中直言自己的缺点,包括小时候形成自卑与自傲并行的人格,极度渴望被认可,稍微一点小事都可能被自己自卑的内心放大等问题。我想这些问题可能大多数人都有,随着生活的历练有的人寻找到了解决的办法,有的人则持续放大。陈坤的办法是“学会接受”,真正的认可不是来自别人,而是来自自己。
“小时候因为自卑,希望所有人都给我一点掌声,好像是在用别人的鼓励承认自己的存在;现在是,我管你们承不承认我存在,我做我自己,你接不接受无所谓。”
“小时候总是为了证明我很牛而做一件事情;现在是因为这个事本身很牛而做。”
诚然,这本书的鸡汤味很浓,但是真正的鸡汤文是给出或虚构或断章取义的的故事来导向作者的目的,陈坤的文字却能让我感受到他的真诚。
尽管陈坤今天能够说出这些话肯定有声望与财富作为底气,尽管我还是不太喜欢他把现在的自己写得仿佛十分完美,但我还是喜欢他写成名前的小故事,喜欢他写自己的内心成长过程中的小故事,喜欢这些真诚而简单的文字。
如果还有读者认为这本书完全就是鸡汤,那么我只能说,这鸡汤煲得可真好,我喜欢!
15.08.02/下午
于自宅
2022-08-20 原《每周读书》系列更名为《枫影夜读》

读《岛上书店》不觉凌晨,阳光敲醒额头的时候脑袋还在岛上跌跌撞撞,逡巡于书店老板 A.J.F 一生动人的故事,被吸引,被逗乐,被感动。爱伦坡定义短篇小说为“可以一口气读完的小说”,从这个层面上说,《岛上书店》是一部贯穿 A.J.F 一生的短篇小说。
这本书来自 Gabrielle Zevin 2014 年的畅销之作 The Storied Life of A.J. Fikry ,作者很“鸡贼”地选用了“阅读”这一话题,吸引了大批爱书的读者。主角是乡村小岛上唯一一家书店的老板 A.J.F,围绕主角身边的人都喜欢读书,这是一部关于读书的小说。从开篇 A.J.F 毫不客气地揶揄各类文学作品的时候,我已知道今夜注定无眠了。
光是围绕“读书”这件事情,这本已经值得一看,再加上作者娴熟的写作技巧,中文晓畅的翻译,这本书的可读性甚至远超许多本土作品。近年来如《冰与火之歌》、《人类简史》等外文译著,行云流水令人欣喜,可以说外文翻译腔的时代已经过去了。
读《岛上书店》的时候,一直让我回想起 James Scott Bell 的《冲突与悬念》中提及的写作技巧,Zevin 的这部作品简直就是 James 写作技巧的范本!比如典型的三幕剧结构,开场出版社销售代表 Amelia 与书店老板 A.J.F 的冲突给这本书起了个不错的开头,两位主角的形象特点十分鲜明。接着突如其来的遗弃在书店的小孩由于生母的自杀让 A.J.F 不得不收养下她,以此推入第二幕,开始围绕小孩玛雅的各种温情故事。最后以 A.J.F 自小就有的间歇性昏迷症揭开癌症告别的终幕,作者在前面埋下的悬念,比如每章开头的读书见解其实都是 A.J.F 在医院无法讲话的时候写下给玛雅的读书建议,比如玛雅的诞生之谜,玛雅生母自杀之谜,A.J.F 店里被盗之谜,都以贯穿全书的形式一步步解开,可谓深得畅销书写作技巧。
然后是每一个场景,出场的人物都没有闲着,无论是对话还是在做的事情,都是麻烦麻烦,冲突冲突,读者没有一刻喘气的机会,再辅以作者适时地幽默打趣,穿插以温情的画面,有如好莱坞商业片紧凑的节奏,令人沉迷其中不觉时光。
如果说技巧是这本书畅销的基础,那么对于各个作家与作品的见解则是锦上添花。我必须承认书中提到的绝大多数作品与作家我完全没听说过,但是没听过还能觉得点评有理,足见作者的功力。比如开篇的 Lamb to the Slaughter,作者对剧情做了简单的叙述,然后一针见血地指出一旦觉得其中有蹊跷,则整个故事就崩盘了。
这一点也正是本书的缺点:技巧让这本书可读性极佳,但是一旦读者意识到作者在使用技巧,那么沉浸式的阅读体验就会被破坏,也就是技巧太着于痕迹。写作技巧有入门到烂熟于胸再到忘掉技巧写出属于自己的文字这样的过程,一旦作者很露痕迹地去使用各种技巧,读者就会觉得像好莱坞大片一样:刺激但没什么营养,这也是“畅销书”一直为部分读者所不屑的重要原因。
这部作品着露痕迹的地方很多,比如在描写作家丹尼尔车祸的一段,刻意地引用丹尼尔在第一本书中使用现代诗风格描写的车祸场景,读到这里让人觉得作家仿佛在背后偷笑,挤眉弄眼。又比如《迟暮花开》这本贯穿全书串起 A.J.F 与 Amelia 的感情的书,真假作者的出现让人觉得过于突兀,仿佛为了冲突而冲突,为了反转而反转,只是大概觉得应该在这个地方放置一个反转了,就插入了一个真正的作者,在令读者意外之后转身离去,太不负责!
不过只要读者没有意识到这些写作技巧,嗯,那就是一次很不错的阅读体验了,毕竟作者在情感的细腻描写上太过耀眼,很容易掩盖其他的地方。比如在描写两岁的玛雅笨拙但真挚的情感的时候,一个可爱鲜活的小孩在读者面前展现,实在不得不爱。比如在玛雅第一次参加写作比赛,颁奖时既渴望得奖又佯装不屑的矛盾心理,当时我想,假如是自己来写这一段,一定会是很糟糕的平铺直叙,借景移情,因为我根本代入不到一个青春期中学生的内心,做不到以人物的视角来表达,而作者完全掌握了这些情感的细微的不同,每一个人物都有不同的个性与思考,所以可以在被写烂的亲情爱情之间找到令人耳目一新的美好。
一本小说,最重要的是要给读者一场丰富的情感体验,《岛上书店》做到了,而且给予读者关于阅读的思考,关于名作家名作品的思考,我们通过阅读知道我们并不孤独,我们阅读因为我们孤独,我们阅读所以我们不孤独,我们不孤独。
No Man Is an Island; Every Book Is a World.
We read to know we’re not alone. We read because we are alone. We read and we are not alone. We are not alone.
2022-08-20 原《每周读书》系列更名为《枫影夜读》

数月前读张爱玲、张恨水的时候发现有个“鸳鸯蝴蝶派”的派系,想起上学的时候听说过公安派、西昆派、新月派等等,很好奇中国文学派系都是怎么划分的,于是寻思要在“中国文学史”里面找找答案。
推友 @guyii 推荐了文学史的几个版本,包括作为大学教材的袁行霈版,但是 z.cn 没找到 Kindle 版,于是因缘际会开始看起这本郑振铎版的《中国文学史》,甫一开头就被作者科学求实的态度所吸引,待发现作者生活的年代在 1898 - 1958,根本解答不了我的问题时,已深陷本书无法自拔。😂
由于作者年代的关系,这本《中国文学史》实际上涵盖的内容为上古到近代文学史,现当代文学则没有涉及,并且作者讲述的近代(明清)部分有些粗略。谈到中国古代的文学,很多人心中会想起所谓“国学”,所谓古文,所谓诗词歌赋,脑中浮现的人物不过孔孟,不过李杜,“文学”实在迂腐得很,刻板得很。但这本书却出乎意料的有趣。
作者的年代正是我国思想启蒙的年代,古文学者一般被认为“权威至上”、“奉经典为至尊”,但是郑版的文学史一上来就是对前人作文学史的批评,谓“这二三十年间所看不的不下数十部中国文学史,几乎没有几部不是肢体残废,或者患者贫血症的”。谈到上古的《诗经》,作者直言这种远古的材料,“其靠不住的性质,是有常识的人都知道的”。及至后人托苏李诗名以寄烦忧,也是颇有科学论证的味道。
原以为这种类似量子对牛顿的完全颠覆只有科学界才有,没想到钻研文学者亦有此般精神。其实读了此书就知这种求实与颠覆自古已有之,比如韩愈领导的古文运动,就将散文从骈俪文中解放出来,催生了后来的变文、传奇、小说。
郑版的文学史主要集中在最辉煌的“中世文学”(东晋到明正德年间 1200 多年),详述了各个时期诗、赋、词、变文、传奇、小说、曲文体的发展,这期间大文学家很多,风格相近的也不少,但作者博览群书,深知众家之精妙,所作点评笔笔到位,不觉冗复。从上古的诗经楚辞到秦汉的散文骈赋,从沉郁雄健的曹操到高超清隽的嵇康,从深远澹泊的陶渊明到诗中有画的王摩诘,从豪放不羁的李白到艰深险峻的韩愈,从明白晓畅的白居易到暧昧朦胧的温庭筠,我们古代的文人大家留下了太多的文学瑰宝。在课堂上我们往往把作品、作者与他所处的时代孤立了,把活生生一个大文豪讲解得苍白无趣。要欣赏一个作家或者一个作品,一定要放回到当时的大舞台上去,纵观时代变迁给文坛带来的变革,横观百家争鸣山川社稷给作者带来的影响,才能得到立体的画面,才能真正体会到作品的精妙之处。比如《诗经》或古诗十九首,断不可用律诗绝句的角度来审视这些诗体尚未成熟的作品,比如《花间集》,既有开创新文体的深远影响,便不能轻易谓其绮丽浮华,言之无物。
不过限于作者时代,此书颇有些民族主义的意味,而且现当代部分的缺失不免遗憾,但本书的精华部分——中世文学——评点仍然精彩,尤其自唐以来,中国文学深受印度文学的影响,这个观点令人耳目一新,其影响之深,渗透了诗歌散文变文小说,也是学堂与课本所没有强调的。
熟悉“每周读书”的读者可能会发现每周介绍的书多是“没想到出乎意料的好读”,其实主要还是归因于我个人的读书习惯,一本书翻开几页如果不好读一般就放下不读了。人生苦短,书海无涯,选择自己感兴趣的书才是王道。
15.07.29/中午
