Ios-black-card

    苹果充值的刷单现象在游戏行业非常普遍,很多团队挖空心思寻找漏洞以非法获利。遭遇刷单的开发者虽然在账面上看到的是漂亮的流水数字,但是苹果不会对问题账单分成,造成坏账,据传严重时有些游戏的坏账率达到80%以上。常见的手段主要有以下五种: 破解IAP绕过苹果扣款 重复使用receipt-data 利用信用卡黑卡 利用外币卡折扣赚取差价 利用苹果对小额消费不做验证规则的”36技术” 其中,前两种是开发者本身的程序问题,可通过完善代码中的验证流程解决,后三种则是利用了苹果充值的政策的一些漏洞。但是这些漏洞并不会对苹果造成损失,所以苹果对此也没有修改的想法,解决问题还是要靠开发者发挥聪明才智,依靠数据分析制定妥善的防御策略。 下面逐个介绍五种手段的原理和防范方法。 1 破解IAP绕过苹果扣款 常见于单机游戏,首先看看苹果充值的时序图: 客户端请求购买,AppStore处理扣款,如果成功返回给客户端名为receipt-data的数据,安全的处理流程是把这段数据发到服务端,由服务端发起请求,调用苹果验单接口验证receipt-data的有效性。 有些游戏,常见于单机游戏,直接在客户端发起对苹果验单接口的调用,甚至跳过3~7步骤直接处理发货。那么非法用户可以利用插件,如iAP Cracker,在客户端请求购买后,模拟返回扣款成功。客户端的数据都是不安全的,即使在客户端验证了receipt-data,得到的结果也可能是被篡改的。 防范这种刷单的方法是严格执行3~7步骤,通过服务器端验证receipt-data的有效性。 2 重复使用receipt-data 这种问题发生的原因是虽然已经用安全的方式检查了receipt-data的有效性,但是没有检查receipt-data的唯一性。苹果验单接口返回的数据格式如下: 数据为json格式,其中status值为0表示该receipt有效,但是苹果只负责真假,而不负责检查是否已被使用过。同一个有效的receipt,无论多少次、相隔多少时间去苹果接口验证,都会返回成功。如果只检查了”status”:0即发货,则非法用户可以先真实充值一笔,截取到receipt-data后,再多次使用到购买中骗过服务器端验证。 防范的方法是在确定status值为0后,进一步解析出数据中的transaction_id并存入数据库。每次发货前先检查数据库中是否已经有本次的transaction_id存在,如果已存在则拒绝发货。 还有一种情况需要注意,有些游戏购买前先有一步创建订单的行为,在服务器端记录购买的商品、时间等,且发货时是按照订单记录中的商品,那么需要比较苹果返回信息中的product_id与订单表中的记录值是否一致。 3 利用信用卡黑卡 这是最常见的刷单手段,是指用户利用无效信用卡,在AppStore中进行消费,由于信用卡已在银行冻结,因此银行不会将款项结算给苹果,苹果自然也不会分成给开发者。 通常的形式是用户去交易网站找代充,代充的商家用绑定了黑卡的AppleID给用户的账号充值,并收取远低于正常价格的金额。也有的代充商户是召集大量的非游戏用户接单,给指定的账号充值后再申请退款,并给这些参与者一定返利来达到“共赢”。 对于这种情况,除了寄望于苹果更严格的审核信用卡信息外,开发者还可以通过监控和分析数据尽可能减小损失。对于最常见的代充形式,我们可以推测: a. 用户充值时不在自己的常用设备上,而是由商户在自有设备上操作 b. 商户的充值设备可能为多个账号充值 分析用户的常用设备可以通过用户日常的游戏记录,如果只有在充值时会切换到不常用设备上,那么可以判定为可疑用户。如果某些设备只在充值记录中出现,却不属于任何用户的常用设备,那么使用这些设备充值的用户也可以判定为可疑用户。 对可疑用户可以进一步分析,确定后执行扣除非法所得、封停账号等。 4 利用外币卡折扣赚取差价 这是一种需要天时的刷单手段。在一些新兴市场,如墨西哥、土耳其等,苹果有专门的优惠折扣,使用这些货币充值,折扣后的差额即刷单的获利。还有一种情况是利用汇率的变化,如著名的南非币事件。 防范这种手段也很简单,客户端获取用户支付使用的货币类型发给服务器验证,在服务器端建立货币白名单,只允许使用人民币或稳定的国家和地区的货币支付。 5 利用苹果对小额消费不做验证规则的”36技术” 这是一种更有技术含量的手段,利用苹果对信用卡的小额消费不做验证的规则,并使用自动注册的虚拟信用卡完成绑卡。用户发起购买后,苹果不确认扣款即返回给客户端成功信息,而此后再进行信用卡扣款时,会出现扣不到钱的情况。 从开发者的角度来看,这笔订单是真实有效的,receipt-data也能通过苹果服务器的验证,但是最终苹果不会对这些账单分账。 相比传统的黑卡,这种方式实现了自动化处理,刷单效率很高,对开发者造成的损失更大。特别是具有交易功能的游戏,刷单者大量充值,然后在游戏内换成货币或道具低价售卖给普通玩家。 对于这种手段,目前开发者能做的就是监控用户的异常充值行为,对于频繁小额充值的用户予以限制。手游中,常见的小额商品就是6元和30元商品,也可以直接限制这些小额商品每用户每日的购买次数,来尽可能减少损失。

    Io

    关于网络IO中的同步、异步、阻塞、非阻塞 ==================== 在高并发编程当中,我们经常会遇到一些异步、非阻塞等一些概念,一些常用的技术比如异步的httpclient、netty nio、nginx、node.js等,它们的原理大都跟异步、非阻塞有关。特别是在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人员可以提高资源的利用率,性能也会改善。其nginx和node.js处理并发都是采用的事件驱动异步非阻塞模式。其中nginx中处理并发用的是epoll,poll,queue等方式,node.js使用的是libev,它们对大规模的HTTP请求处理的都很好。 那么到底什么是异步、非阻塞,它们的原理是什么,它们之间又有什么区别呢?其实在很多情况下,异步与非阻塞(同步与阻塞)表示的是同一个意思,但是在特定的上下文环境中,它们含义又十分不同。再具体讲它们的区别之前,先介绍一下上下文背景。 一、上下文背景 我们所遇到的这些场景大部分都是当用户进程(或线程)在进行网络IO时即进行Socket读写时遇到的,所以本文讨论的上下文背景是基于Linux环境下的network IO。先介绍一下其中我们最常见的五种IO: 1. blocking IO 2. nonblocking IO 3. IO multiplexing 4. signal driven IO 5. asynchronous IO 由于signal driven IO在实际中并不常用,所以我这只提及剩下的四种IO Model。 再说一下IO发生时涉及的对象和步骤。对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的进程(或线程),另一个就是系统内核(kernel)。当一个read操作发生时,它会经历两个阶段: 等待数据准备(Waiting for the data to be ready) 将数据从内核拷贝到进程中 (Copying the data from the kernel to the process) 记住这两点很重要,因为这些IO Model的区别就是在两个阶段上各有不同的情况。 二、各种IO介绍 2.1 blocking IO 在linux中,默认情况下所有的socket都是blocking,也就是说我们的一个进程在进行IO操作时如果没有数据达到,这个进程是被阻塞的。一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时候kernel就要等待足够的数据到来。而在用户进程这边,整个进程会被阻塞。当kernel一直等到数据准备好了,它就会将数据从kernel中拷贝到用户内存,然后kernel返回结果,用户进程才解除block的状态,重新运行起来。所以,blocking IO的特点就是在IO执行的wait和copy两个阶段都被block了。 在这种block IO的情况下,如果请求的连接比较多,但其中大部分都是阻塞的。因为cpu的核数是有限的,所以一般的解决方案就是每个cpu启用多个线程来处理多个连接。这种解决方案有很大的缺陷: 1. 线程是有内存开销的,1个线程可能需要512K(或2M)存放栈,那么1000个线程就要512M(或2G)内存 2. 线程的切换开销和很大,因为线程切换时需要保持当前线程上下文信息,当大量时间花在上下文切换的时候,分配给真正的操作的CPU就要少很多 3. 一个cpu所支持的线程数量时有限的(因为上面两个原因),一般来说线程的数量级在几百个左右就已经很大了 为了解决block IO存在的问题,就引入了no-blocking IO概念。

    Lvs-Nginx-HAproxy

    三大主流软件负载均衡器对比(LVS、Nginx、HAproxy) LVS: 1. 抗负载能力强,性能高,能达到F5的60%,对内存和CPU资源消耗比较低 2. 工作在网络4层,通过VRRP协议(仅作代理之用),具体的流量是由linux内核来处理,因此没有流量的产生。 3. 稳定,可靠性高,自身有完美的热备方案(Keepalived+lvs) 4. 不支持正则处理,不能做动静分离。 5. 支持多种负载均衡算法:rr(轮询),wrr(带权轮询)、lc(最小连接)、wlc(带权最小连接) 6. 配置相对复杂,对网络依赖比较大,稳定性很高。 7. LVS工作模式有4种: (1) nat 地址转换 (2) dr 直接路由 (3) tun 隧道 (4) full-nat Nginx: 1. 工作在网络7层,可以针对http应用做一些分流的策略,比如针对域名,目录结构 2. Nginx对网络的依赖较小,理论上能ping通就能进行负载功能 3. Nginx安装配置比较简单,测试起来很方便 4. 也可以承担较高的负载压力且稳定,nginx是为解决c10k问题而诞生的 5. 对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测 6. Nginx对请求的异步处理可以帮助节点服务器减轻负载压力 7. Nginx仅能支持http、https和Email协议,这样就在适用范围较小。 8. 不支持Session的直接保持,但能通过ip_hash来解决。对Big request header的支持不是很好。 9. Nginx还能做Web服务器即Cache功能。 第6点补充: 什么是nginx的异步处理: squid同步处理:浏览器发起请求,而后请求会立刻被转到后端,于是在浏览器和后台之间就建立了一个通道。从请求发起直到请求完成,这条通道都是一直存在的。 nginx异步处理:浏览器发起请求,请求不会立刻转到后端,而是请求数据(header)先收到nignx上,然后nginx再把这个请求发到后端,后端处理完成后把数据返回到nginx上,nginx将数据流发到浏览器。 使用异步处理的好处: 1. 假设用户执行一个上传文件操作,因为用户网速又比较慢,因此需要花半个小时才能把文件传到服务器。squid的同步代理在用户开始上传后就和后台建立了连接,半小时后文件上传结束,由此可见,后台服务器连接保持了半个小时;而nginx异步代理就是先将此文件收到nginx上,因此仅仅是nginx和用户保持了半小时连接,后台服务器在这半小时内没有为这个请求开启连接,半小时后用户上传结束,nginx才将上传内容发到后台,nginx和后台之间的带宽是很充裕的,所以只花了一秒钟就将请求发送到了后台,由此可见,后台服务器连接保持了一秒。同步传输花了后台服务器半个小时,异步传输只花一秒,可见优化 程度很大。 2. 在上面这个例子中,假如后台服务器因为种种原因重启了,上传文件就自然中断了,这对用户来说是非常恼火的一件事情,想必各位也有上传文件传到一半被中断的 经历。用nginx代理之后,后台服务器的重启对用户上传的影响减少到了极点,而nginx是非常稳定的并不需要常去重启它,即使需要重启,利用kill -HUP就可以做到不间断重启nginx。 3. 异步传输可以令负载均衡器更有保障,为什么这么说呢?在其它的均衡器(lvs/haproxy/apache等)里,每个请求都是只有一次机会的,假如用 户发起一个请求,结果该请求分到的后台服务器刚好挂掉了,那么这个请求就失败了;而nginx因为是异步的,所以这个请求可以重新发往下一个后台,下一个 后台返回了正常的数据,于是这个请求就能成功了。还是用用户上传文件这个例子,假如不但用了nginx代理,而且用了负载均衡,nginx把上传文件发往 其中一台后台,但这台服务器突然重启了,nginx收到错误后,会将这个上传文件发到另一台后台,于是用户就不用再花半小时上传一遍。 4. 假如用户上传一个10GB大小的文件,而后台服务器没有考虑到这个情况,那么后台服务器岂不要崩溃了。用nginx就可以把这些东西都拦在nginx上,通过nginx的上传文件大小限制功能来限制,另外nginx性能非常有保障,就放心的让互联网上那些另类的用户和nginx对抗去吧。 用异步传输会造成问题: 后台服务器有提供上传进度的功能的话,用了nginx代理就无法取得进度,这个需要使用nginx的一个第三方模块来实现。 第8点补充: Nginx upstream支持的分配策略及原理: 1.

    Concurrent-and-parallel

    go 并发与并行 并发(concurrency) 并发的关注点在于任务切分。举例来说,你是一个创业公司的CEO,开始只有你一个人,你一人分饰多角,一会做产品规划,一会写代码,一会见客户,虽然你不能见客户的同时写代码,但由于你切分了任务,分配了时间片,表现出来好像是多个任务一起在执行。 并行(parallelism) 并行的关注点在于同时执行。还是上面的例子,你发现你自己太忙了,时间分配不过来,于是请了工程师,产品经理,市场总监,各司一职,这时候多个任务可以同时执行了。 GreenThread 用户空间 首先是在用户空间,避免内核态和用户态的切换导致的成本。 由语言或者框架层调度 更小的栈空间允许创建大量实例(百万级别) 几个概念 Continuation 这个概念不熟悉 FP 编程的人可能不太熟悉,不过这里可以简单的顾名思义,可以理解为让我们的程序可以暂停,然后下次调用继续(contine)从上次暂停的地方开始的一种机制。相当于程序调用多了一种入口。 Coroutine 是 Continuation 的一种实现,一般表现为语言层面的组件或者类库。主要提供 yield,resume 机制。 Fiber 和 Coroutine 其实是一体两面的,主要是从系统层面描述,可以理解成 Coroutine 运行之后的东西就是 Fiber。 Goroutine Goroutine 其实就是前面 GreenThread 系列解决方案的一种演进和实现。 首先,它内置了 Coroutine 机制。因为要用户态的调度,必须有可以让代码片段可以暂停/继续的机制。 其次,它内置了一个调度器,实现了 Coroutine 的多线程并行调度,同时通过对网络等库的封装,对用户屏蔽了调度细节。 最后,提供了 Channel 机制,用于 Goroutine 之间通信,实现 CSP 并发模型(Communicating Sequential Processes)。因为 Go 的 Channel 是通过语法关键词提供的,对用户屏蔽了许多细节。其实 Go 的 Channel 和 Java 中的 SynchronousQueue 是一样的机制,如果有 buffer 其实就是 ArrayBlockQueue。

    fd

    在Linux通用I/O模型中,I/O操作系列函数(系统调用)都是围绕一个叫做文件描述符的整数展开。这不禁让人产生疑问:这个整数代表什么?一个数值代表一个文件吗?随便传一个整数进去调用可以吗? 解答以上疑问,需要更深入学习——文件描述符(File Descriptor)。 图解 理解具体情况,需要了解由内核维护的3个数据结构: 进程级文件描述符表(file descriptor table) 系统级打开文件表(open file table) 文件系统i-node表(i-node table) 这3个数据结构之间的关系如下图所示: ////——- 文件描述符表 内核为每个进程维护一个文件描述符表,该表每一条目都记录了单个文件描述符的相关信息,包括: 控制标志(flags),目前内核仅定义了一个,即close-on-exec 打开文件描述体指针 打开文件表 内核对所有打开的文件维护一个系统级别的打开文件描述表(open file description table),简称打开文件表。表中条目称为打开文件描述体(open file description),存储了与一个打开文件相关的全部信息,包括: 文件偏移量(file offset),调用read()和write()更新,调用lseek()直接修改 访问模式,由open()调用设置,例如:只读、只写或读写等 i-node对象指针 i-node表 每个文件系统会为存储于其上的所有文件(包括目录)维护一个i-node表,单个i-node包含以下信息: 文件类型(file type),可以是常规文件、目录、套接字或FIFO 访问权限 文件锁列表(file locks) 文件大小 等等 i-node存储在磁盘设备上,内核在内存中维护了一个副本,这里的i-node表为后者。副本除了原有信息,还包括:引用计数(从打开文件描述体)、所在设备号以及一些临时属性,例如文件锁。 场景解析 上图中,详细描述了两个进程诸多文件描述符,以及相互关系。 文件描述符复制 在进程A中,文件描述符1和文件描述符20都指向同一个打开文件描述体(标号23)。这很可能是通过调用dup()系列函数形成的。 文件描述符复制,在某些场景下非常有用,比如:标准输入/输出重定向。在shell下,完成这个操作非常简单,大部分人都会,但是极少人思考过背后的原理。 大概描述一下需要的几个步骤,以标准输出(文件描述符为1)重定向为例: 打开目标文件,返回文件描述符n; 关闭文件描述符1; 调用dup将文件描述符n复制到1; 关闭文件描述符n; 子进程继承文件描述符 进程A的文件描述符2和进程B的文件描述符2都指向同一个打开文件描述体(标号73)。这种情形很可能发生在调用fork()派生子进程之后,比如A调用fork()派生出B。这时,B作为子进程,从父进程A继承了文件描述符表,其中包括图中标明的文件描述符2。这就是子进程继承父进程打开的文件这句话的由来。

    golang-grammer

    chan nobuff 一个基于无缓存Channels的发送操作将导致发送者goroutine阻塞,直到另一个goroutine在相同的 Channels上执行接收操作,当发送的值通过Channels成功传输之后,两个goroutine可以继续执行 后面的语句。反之,如果接收操作先发生,那么接收者goroutine也将阻塞,直到有另一个 goroutine在相同的Channels上执行发送操作。 buff 带缓存的Channel内部持有一个元素队列。

    golang-grammer

    Go基础语法,方便查阅 包、变量和函数 学习 Go 程序的基本组件 1.包 每个 Go 程序都是由包组成的。 程序运行的入口是包 main。 这个程序使用并导入了包 “fmt” 和 “math/rand” 。 按照惯例,包名与导入路径的最后一个目录一致。例如,”math/rand” 包由 package rand 语句开始。 注意:这个程序的运行环境是确定性的,因此 rand.Intn每次都会返回相同的数字。 (为了得到不同的随机数,需要提供一个随机数种子,参阅 rand.Seed。) package main import ( “fmt” “math/rand” ) func main() { fmt.Println(“My favorite number is”, rand.Intn(10)) } ` 结果 My favorite number is 1 2.导入 这个代码用圆括号组合了导入,这是“打包”导入语句。 同样可以编写多个导入语句,例如: import "fmt" import "math" 不过使用打包的导入语句是更好的形式。 `package main import ( “fmt” “math” )

    encrypted

    一、网络数据传输安全概述 我们说的数据加密与解密通常是为了保证数据在网络传输过程中的安全性。在网络发展初期,网络的数据安全性是没有被足够的重视的。事实上,当时为了实现数据可以通过网络进行传输已经耗费了科学家大部分男细胞,因此在TCP/IP协议设计的初期,他们也实在没有太多精力去过多考虑数据在网络传输过程中可能存在的安全性问题。随着TCP/IP协议及相关技术的日渐成熟,网络数据传输技术越来越稳定,人们才慢慢开始重视这个问题,美国国家标准与技术研究院(National Institue of Standard and Technology,简称NIST)也开始制定相关的安全标准。 网络安全涉及到很多个方面,我们这里仅仅讨论下网络数据传输过程中可能受到的威胁,其中常见的有: 数据窃听 数据篡改 身份伪装 针对以上威胁,我们介绍下网络数据传输的安全性涉及的几个方面: 1. 机密性 机密性是指对要传输的数据进行加密和解密,防止第三方看到通信数据的明文内容。其对应的通信过程如下: 数据发送方: plaintext(明文) ==> 转换算法 ==> ciphertext(密文) 数据接收方: ciphertext(密文) ==> 转换算法 ==> plaintext(明文) 2. 完整性 数据完整性是指不允许数据在传输过程中被修改(第三方恶意篡改或电平信号造成的部分数据丢失),但是它不要求数据的机密性,也就是说允许其他人看到明文数据。我们通常通过以不可逆的算法对数据提取特征码(也叫数据指纹),通过验证特征码的一致性来判断数据是否被修改过,通信过程如下: 数据发送发: plaintext(明文) ==> 转换算法 ==> plaintext(明文) + footprint(数据指纹A) 数据接收方: plaintext(明文) + footprint(数据指纹A) ==> 转换算法 ==> footprint(数据指纹B) ==> 对比数据指纹A与B是否一致 3. 身份验证 身份验证通常是指数据接收方需要确认发送数据给自己的数据是自己想要通信的那一方,防止他人冒充通信对方的身份进行通信。身份验证的大体原理是:数据发送方与数据接收方约定一种特殊的数据加解密方式,数据发送方将一个通过约定的加密方式进行加密后的数据发送给数据接收方,数据接收方如能按照约定的加密方式正确解密该数据就表示对数据发送方的身份验证成功。其对应的通信过程如下: 数据发送方: plaintext(明文) ==> 转换算法 ==> ciphertext(密文) 数据接收方: ciphertext(密文) ==> 转换算法 ==> plaintext(明文) 二、数据加密算法分类 上面提到的网络数据传输所涉及到的几个方面都需要特定的转换算法来实现,常用的转换算法(数据加密/解密算法)大体上可以分为以下几类:

    How-to-novel

    How-to-novel 作者:呉Dennis 链接:https://www.zhihu.com/question/19997669/answer/31290630 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 已更新至完全版!想要的各位请复制,直接拿走,不介意⊙_⊙ 如何写小说(转载) 第一忌讳:无论文笔多么优美,都不要让描写使你的叙述陷入中止。 小说的作者必须牢记这点:不要过分描述任何事情,无论它是特顿山脉,是夕阳,还是怀基基海滩上的斑马。否则,你叙述的力度就要受到影响,你也将使读者的注意力出现危险的空白。请记住爱勒莫。雷纳德的金玉良言:“我总是力图去掉那些读者会跳过去的内容。”读者的确愿意跳过那些无效内容。 第二大忌讳:不要浪费过多的时间来描写并非重要的环境。 小说家大卫。罗吉曾宣称:“一部好的小说中的描写绝不仅仅是描写。大多数背景描写的危险在于一连串的漂亮的陈述句和叙述的中断将读者推向昏昏欲睡的境地。”请牢记罗吉的格言,将它打在纸条上贴到计算机或打字机前:“一部好的小说中的描写绝不仅仅是描写。” 第三点忌讳是:不要在一个无关紧要的事情上浪费读者的注意力。这是初学者最容易犯的错误。 第四点忌讳是:不要概括,要具体。 关于写作忌讳概括化,没有人比俄国伟大作家契河夫说得更好。他在一封信中,告诫一位作家朋友避免概括化和平常化:“我认为,对于自然的真正描写应该相当简略并与主题存在相关性。应该避免落人俗套的描写,比如,‘落日沐浴在黑色海洋的浪花之中,绦紫色的金光一泻而下’等等。在描写自然时,要抓住细节,而且要达到这样一种程度,即使闭上双眼,也仍能看到你所描写的场景。 因此,当你坐下来写作的时候,请记住,不是“一杯饮料”而是“一杯马丁尼”;不是“一只狗”而是“一只长卷毛狗”;不是“一束花”而是“一束玫瑰”;不是“一个滑雪者”而是“一位含苞欲放的年轻少女”;不是“一顶帽子”而是“一只高顶回角帽”;不是“一只猫”而是“一只阿比西尼亚猫”;不是“一支枪”而是“一支0。44口径的新式自动手枪”,不是“一幅画”而是一幅“马奈的‘奥林匹亚’”。 将描写四忌与契河夫的金玉良言合二为一,我们就得到了一条所有好的作者在描写时都应该遵循的一条规则:要具体! 你要能准确地描绘出一幅幅场景,使人物真实可信,他们在自己国有的视觉、听觉、嗅觉、触觉和味觉中进行着日常工作。——拉威尔-斯潘塞。 “怎么才能让事情看起来真实可信呢?”当一位作家被问及这个问题的时候,实际上是对他的一种赞扬。如果有人进一步对他说:“我好像身临其境,能够听到、嗅到、感觉到这些地方,就像走进了小说的书页中”,那他给读者的东西就的确非同寻常了。当我被问及同样的问题时,我的回答是:“借助于五种感觉”。一些作者总意识不到应利用读者的五种感觉来获取真实感。利用读者的视觉感受是常见的,但是利用读者的嗅觉、听觉(除了在对话中)、触觉或是味觉又有几次呢?看、听、感、尝、嗅。每当写作的时候,参照这张表,有意识地写些带有气味的东西。实际上,一些令人作呕的东西在创造真实感的时候,反而有奇迹般的效果。 想想当一个人打开冰箱的时候,那种腐烂的水果的味道;当一个人剥一只熊皮的时候,那腐臭的脂肪;当一位妇女在无人服务的加油站给油箱加油的时候,手上会沾满了汽油味。仅在故事的开头提及味道是不够的,在叙述情节时,你还得反复参照那张表。让我们设想一下,一男一女正在争论某件事情,男人从门口一直冲到厨房,冲着女人大声嚷嚷:“我不能再忍受你妈妈和我们住在一起,老太太必须在我回来之前搬走,否则我就离开这个家!”在设置这个场景的时候,我可以让女人烤制南瓜饼(味道甜美、温馨,让人回想像感恩节一样的快乐时光),但是如果再加上腌制香料和醋的气味,这个场景就呈现出寓意。我会在某个时刻让读者想象这种气味:“我郑重警告你,劳拉,有她没我,有我没她!”他说着,那样子就像厨房里的味道一样酸。不要忘记,在争吵的时候,劳拉还一边往罐子里装着泡菜。当她在大声吵嘴的时候,可能会烫伤手,然后把手伸到冷水里冲洗。当然,她也可能正在往泡菜里倒盐水,并且洒了一地,然后还要擦干净。她还在粗棉布制的围裙上擦干她的手。她可以擦拭从额头(热热的,痒痒的)上流淌下来的汗水,她可以一边叫嚷,一边挥舞手中的勺子(坚硬的,木柄的),并向男人扔去。这些都会增强视觉效果。当争吵越演越烈的时候,可能会听到什么声音呢?是不是有条狗溜进来,喝锡制饼盘里的水? 是否有一辆行驶的汽车正在马路上发出卡嚓卡嚓声响呢?是不是传来孩子们在隔壁人家院子里玩耍的声音?当炉子上的水烧开的时候,是不是在叮当作响呢?水有多么热呢?你告诉读者温度了吗?小说中女主角是否在泡菜罐的旁边放了一杯冰茶或是冰咖啡呢?争吵以男人气冲冲地出去而告终,但问题并没有得到解决,此时,女主角是否拿起杯子,痛饮冰咖啡,发觉咖啡很苦,然后做了个鬼脸呢?正如你所看到的,在类似上述的情节中要同时唤起人的五种感觉是有可能的,但是为了能够做到这一点,情节必须进行精心的安排。绝大多数情节是不能用全这五种感觉的(尤其味觉最难写进去),但是你可以很容易地唤起读者的四种感觉,在大多数情节中,起码可以唤起读者的三种感觉。当你对小说对白的真实性表示怀疑的时候,就大声读出你的对白,假装你是一名演员,并以电影屏幕和舞台上需要的那种抑扬顿挫的腔调说出你的台词。如果它听起来很生硬,不自然,就需要修改。不要忘记,人们用语言所表达出来的思想总是未经加工润饰的,所以要让人物说的话短一些。生活中人们总是一个一个地提问题,你小说中的人物也应这样做,特别是当他们要彼此认识了解的时候。人们在谈话中经常叹息、抿着嘴笑、抓头、鼓起双颊以及端详他们的指甲,你也要让小说中的人物有这些动作,并让人们在干工作的时候,继续他们的谈话。 使用收尾语来创造意象。请看下面两个例子:“你从来就不喜欢我的妈妈!”劳拉大声嚷道。她“砰”地一声把水壶放下。“你从来就不喜欢我的妈妈!”劳拉猛地扔下水壶。第二句更增加了紧张程度,让故事情节更快的向前推进,减掉了多余的词语,暗示而不是告诉读者劳拉正在大声叫嚷。这就是所谓的原则的最佳时刻。紧张的时刻所用的词要少而精。 在情节紧张的时候,要采用短小精悍的句子,句子中要采用短词,少用结束语,要写得突如其来。当你做到这些的时候,紧张气氛就可以油然而生了。与此相比,在气氛比较沉闷的情节中,到处笼罩着寂静和安宁,此时就要使用较长的句子,较长的词语,较长的段落,以及更多的结束语。这样做就会自然缓和紧张气氛。当你在构思小说时,就要确立写实的态度。只在通过观察、思考你才能准确地描绘出一幅幅场景,使人物具有可信性。他们以固有的视觉、听觉、嗅觉、触觉和味觉进行着他们的日常工作。好了,正如我前面说的,味觉是最难写进小说中的,但是五种中有了四种也不算坏。 应用这五种感觉,利用句子结构来创造或缓慢或紧张的气氛,这样你写出来的小说读者就不能丢下了,因为它们是那样真实可信。 抓住兴奋点: 对小说家而言,能始终抓住那极具魔力的兴奋感就是最大的奖励。——菲立兹-惠特尼 在作家的一生中,有许多令人兴奋的时刻。如果这些时刻是在经历了被拒绝和失望之后,那么将更加令人喜悦。我永远不会忘记那些时刻,第一次听到编辑对我鼓励的话语,第一次见到自己的文字被印刷出来,或者第一本自己的小说握在手中时的狂喜。我坚信,对任何一位小说家而言,真正的“兴奋之巅”是无处不在的。而且,它还会不断地涌现,因为我们学会了如何去激发它。我是指当一部新的小说在构想时,脑海中所出现的第一缕闪光时的奇妙时刻。在一个新故事(或小说)的最初构思中不断闪现时,作者会有一种眩目的感觉,我们通常会觉得这将是自己所写的最好的作品。 这种奇妙的感受可能常在片刻间出现,我会带着此种感受度过几天或几个星期。这些思想中的闪光聚集着如此多的奇异光彩,好像由于某种魔力而不断地闪烁着。 把它们写下来。我总是很高兴地写出一个又一个故事的开头,但是偶尔才完成一个完整的故事。我写出来的东西永远不如我梦想中的完美,我太心急了,当我发现自己仅仅是给故事开了个头,必须把它们进行下去的时候,我便失去了兴趣。魔力消失了,于是我又不断地放弃那些故事。 我羡慕那种能够沿着最初的构想,并把它发展成小说的作家。但是我却无法一蹴而就,所以我必须在动笔之前,明确写作的方向。我找到了一些行之有效的办法保护那些最初的闪光点,并使之继续闪亮或者再现。我发现自己在写到30页左右时,如果仍能保持初始的兴奋状态,我的兴趣就会被高度调动起来,直到完成作品。 最初的兴奋能持续多久是因书而异的。我先花些时间在笔记本上设计人物,搜集情节中的零碎片段,明确我的写作方向,或者草草记下脑海中曾涌现过的东西,直到我必须动笔的那一刻到来。那一刻总是在我还没完全设计好时就来临了,我从不拒绝那股推动力,至少我可以先为我的故事开个头。为了奖赏自己,我通常会先写上几页,这对写作的连续性是有益的,它能随时帮我回到人物和情节的构想中去。 当我再次翻阅已完成的部分,愉悦的感觉便又涌起,我真想有位读者能与我一起分享这些优美的文字。我并不期待一下子得到很多,但我的确希望得到赞许和肯定,尽管我知道自己是这些作品的最糟糕的评判者,因为我深陷于创作之中,根本看不到它的缺点 通常我所选择的读者都是深诸这套规则的,他会在给我鼓励的同时又温柔地来点建议,让我不至于飘飘然。而我迟早都会再读一遍第一章,看看经过了思考后是否能改得更好些。对于初学写作的人而言,过早地请人提出批评意见是危险的,它会使最初的兴奋被轻易地浇灭。较为保险的做法是等写完后再请别人来阅读和评判。 现在,我不再奢望极度的兴奋点能始终延续,我知道它还会再现,令我兴奋,激励我继续往前走。要知道,几百页的故事仅*一次兴奋浪潮的冲击是不够的。在写作过程中,一些绝妙的新想法会使我峰回路转,写出意想不到的转折之笔,把我再度引向兴奋之巅。小说家应该是情绪化的人,倘若我们的写作成为没有激情的自觉运动,写出的小说也一定会平淡无奇。 静等灵感的突然迸发也是不明智的。写不下去时,我常问自己:在这种情况下,人物可能会采取什么意想不到的行动?什么样的情节才是既合乎逻辑又出人意料的?我在脑海中过着电影,任灵感的火花不断地撞击。 让我们分析一下小说写作中常遇到的三种兴奋状况。第一种是最为重要的,即作者对将要描写的故事的亢奋的感觉;第二种是小说中的人物在发挥某种特殊作用时的体验。如果你能发现那些促使人物兴奋的动力,你就达到了兴奋的另一个层次。第三种兴奋是有关读者的。如果你和人物的兴致都很高,那么读者也将从你的故事中得到满足感。 作者的目的在于让读者和人物同呼吸共命运。但如何令作者始终保持高昂的情绪,使之花上几个月,甚至几年的时间来完成他的小说,是件十分不容易的事。对所写内容产生厌倦和没有了长远计划是主要的症结。为了保持对写作的新鲜感,我给自己订了条规矩,即:不要过多地回头看自己已完成的部分。当我每天开始写作时,我只读最后的几页,它给我一种赶紧继续写下去的动力。尽管我是多么想了解已经完成的部分,看一看它究竟怎样,但我绝不允许自己往前翻看超过5页以上的部分,哪怕是仅仅一小会儿。 那一时刻还是到来了,当我开始确信我写出的不过是一堆乱八糟的东西时,我便失去了兴趣和信心。于是我干脆从头读起,一直读到我写作卡死的地方。然而,它们却比我料想的要好得多,哈,我又精神抖擞,继续往下写。我发现经过这遍浏览后,我对人物的理解更加透彻了。在写小说的过程中这种情况会经常出现。 我自己的办法是读书,我和小说进行交流。我读小说的目的不是为了模仿或得到新思路,而是发现某种情绪。我的注意力在书页之间漫步,当某些东西忽然触动我的情弦时,我就可以继续写了,因为我已经能把那种情绪传递给我的人物了。我把干巴巴的爱情场景重写了一遍,这一回效果很好。我还发现了一个可以对付兴趣丧失的办法:给你的脑袋补充新给养。 “焦虑感”是值得利用的有效方式之一,但我并不推崇这个带有负面效应的方法,它仅是一种方式而已。我们可以运用各种方式把兴奋传递给读者,并使它不断增强,以保持思想的最初闪光。对小说家而言,能始终抓住那极具魔力的兴奋感就是最大的奖励。 小说创作中的悬置紧张法: 微型小说之所以能以区区篇幅吸引读者,诀窍之一,便是在描述中巧妙地运用“悬置紧张法”。“悬置紧张法”又称悬念、“卖关子”、“设扣子”、“系包袱”等,它是小说的一种既常见又十分重要的技法。车尔尼雪夫斯基是这样运用“悬置紧张法”的——他在自己的长篇小说《怎么办》的序言中说:“我援引小说家所常用的诡计:从小说的中间或结尾抽出几个卖弄玄虚的场面来,将它们放在开头的地方,并且给装上一层迷雾。”在《怎么办》中,一开头就写罗普霍夫伪装自杀,这样处理就引起了悬念,然后再倒叙他过去与薇拉、吉尔沙诺夫的关系,解释他假自杀的原因。其实,“悬置紧张”不仅可以用在开头,也可用在中间,甚至可用在结尾。如电影《保密局的枪声》,结尾的镜头是常亮出人意外地开枪打死特务组长,救出刘啸尘和阿纪,随后跟着溃逃的国民军队走了——常亮究竟是什么人,影片直到结尾都没有交代。这种在结尾产生的“悬念”必将引起观众的种种推测和联想。“悬置紧张法”其内容可分为两类:一是作品中某些人物心里有“数”,而读者却完全“蒙在鼓里”,让读者自己去判断猜测情节的进展。如《草船借箭》,诸葛亮心里早已预知天有大雾,可在三日之内“借”到十万支箭,而读者却完全不知,焦急地担忧着诸葛亮的命运。一是读者对情节的大部分已了解,而作品中的某些人物却“蒙在鼓里”,让读者睁大了眼睛看这些人物将如何动作。如《十五贯》中读者已知是娄阿鼠偷了钱,而作品中的人物除娄阿鼠外,一概不知,于是读者关切地期待着:这件冤案将如何处置?篇幅较长的小说在运用“悬置紧张法”时,可以在大“包袱”中系小“包袱”,在大“扣子”中结小“扣子”,一环扣一环,一个“悬念”接一个“悬念”,把矛盾冲突推向总高潮。而微型小说篇幅特短,它往往只设置一个小小的“悬念”,描述到结尾时忽然抖开“包袱”,使读者大吃一惊,从而收到很好的效果。运用“悬置紧张法”,一要注意其真实性,既要“悬”,又不能“玄”,即不能故作玄虚,破坏作品的艺术真实;二要注意紧紧围绕着主题来“悬置紧张”,如果在枝节上“悬置紧张”,那只会削弱作品的主题思想。 作家十二戒: 作家十二戒一﹐忌跟风“不要修真受欢迎就写修真﹐三国好看就写三国。” 二﹐忌‘我’“这就不多说了﹐对于所有的写手来说﹐用第一人称写作是大忌” 三﹐忌流水帐“文章太过简陋﹐文中必须多多出现对话﹐环境的描写与人物性格的描述” 四﹐不能抄袭“至少要抄得读者看不出是抄的﹐有的人的作品一看就知道是抄寻秦记的剧情” 五﹐忌文章太短“不要用骗点击率的方式写书﹐一章至少要有四﹑五千字” 六﹐忌太哆嗦“拖戏是可以的﹐但必须要有技巧﹐不能无限地拖长。要尽力交代一些有用的东西与伏笔﹐在一些文字上加长文章的长度﹐但如困技巧不够不要强行。文章太短不行﹐太长也不行。要长短适中。”七﹐忌太杂“比如科幻作品最好不要与武侠合在一起﹐香满的那些武侠科幻漫画是最失败的。因为他们硬是把武侠与科幻平衡。每一部小说都有其中心的主题﹐科幻就科幻﹐武侠在其中出现可以﹐但起到的作用微不足道﹐因为是科幻为主题﹐那幺一切都必须用科学角度去解释﹐而不是又科学又武侠。” 八﹐忌超人“文章中最忌最忌的除了跟风之外﹐就是使得主角一夜之间成为超人。主角遇到奇遇得到意料序外的能力﹐可以﹗但一夜之间得到超强的力量﹐事后的力量强无可强﹐那幺你怎写到终。” 九﹐忌名称太多“读者是不会有耐性去记忆你所例出的地名人名﹐只能慢慢(很慢很慢)地在文章中交代﹐给读者慢慢地消化。如果作者太急﹐只会使读者看得头昏眼花变成了流水帐。” 十﹐忌例表“题材设定永远都是给自己看的﹐不要硬加在文章中﹐读者没有兴趣去看你的设定﹐这样做就有如提前把一本书的结局说出来﹐使人失去了看书的味道。”例﹕魔盗的作者写魔盗之时没有任何的设定﹐在刚始的时候本人看着看着以为是在写中世纪时的一个贵族故事。最后魔法师突然之间出现了。才啊﹗地明白到这是一本玄幻作品。给了本人无数的惊奇﹐而且作者那时至以后很长都没有出现过更多的魔法师﹐使得读者有兴趣再看下去﹐龙什幺的也是最后才慢慢出现﹐一个个地描述﹐而不是一次过例出来。换句话说﹐作者至今才使我明白到这个世界大概是个什幺样子的﹐(龙到现在才出现了两次﹐妖精见都没有见过)在我的脑海中用漫长至今的文笔一笔一笔地在本人的脑中将那个世界建筑了起来﹐这是他成功的地方。 十一﹐忌呢称“身为一个作者﹐要尽力站在中立的立场去看去写﹐所以在文章中请不要出现不写出角色全名而为了省事叫她小XXX﹐阿XXX的情况出现。文章必须给人中立﹐冷酷的感觉。而呢称是为了亲友之间的亲近感而代替名字的称呼﹐从来没有见过那些文笔高超的人用这些妮称代替角色的名字。你是作者与自己的角色拉亲切感干什幺﹖” 十二﹐忌上下关系混乱“有很多的作品﹐主角都是尽力与身边的角色拉关系”比如﹕主角命令身边的大哥去某事时是这样说的﹕“某某哥﹐去帮我把什什什幺给打下来吧。”而不是﹕“某某某听令﹐将XXX给我打下来。”公私无法公明﹐上下关系混乱﹐你看全世界哪一个军队会战斗时﹑工作场合这用这种语气。这只能表现作者社会经验不足。 另外一点﹐很多的作品中作者站在主角一方站得太明显了﹐将严肃战争写得家斗别扭﹐有如儿戏。“啊﹗我来迟一步。那个谁谁竟然把他们全杀光了﹐留下一点来给我嘛﹗”“你这好小子﹐竟然将敌人全打败了﹐那我打什幺﹖也不留下一点给我。”这哪像军人应说的话﹗兵~国之大事,生死之地。怎能任由这些主角的亲友想怎样怎様;,军法哪去了。弄得战场有如过家家一样儿戏。——评写作之得失评写作之得失第一﹐对一名作者来说﹐很多新手都喜欢用我来写书﹐或者是说第一人称﹐本人不明白为什幺他们会这种想法。像异人傲世录﹑商业三国之类的最后都渐渐地转为用他﹐第三人称了。因为这种写作手法缺点多多﹐在网上游历过的人都知道一般情况下用‘我’绝写不出好书﹐特别对新手而言。因此﹐使得很多的读者对‘我’来写书的作者都不带有好印象﹐看完第一页就不看了﹐除非是入VIP什幺的期望他在之后会改善才忍着看下去。所以﹐写书最好不要用我来写﹐金庸没用过这种写作手法﹐黄易在大剑师中用过一次就不再用了﹐而各作者竟然自问能够比这二位宗师更加厉害﹐实在佩服。 第二﹐对自己不善长的东西可以选择轻轻跳过﹐点到即止﹐淡淡地将它带过去﹐不要硬去详细描写。如果真的非写不可﹐那幺可以去查资料﹐但是爱情是没有资料可查的﹐所以劝各位没有爱情经验或者是只从漫画与小说中理解爱情的各位不要硬去写﹐那只会使得大米粘上苍蝇。 第六﹐最重要的一点‘品味’﹐不要去跟风﹐什幺书受欢迎受到影响就去写什幺﹐修仙流行写修仙﹐三国流行写三国﹐现在这两种书除了几部老作品之外我相信大部份人都望而止步了吧。创作啊创作﹐所谓创作就是要创啊。一名作者要有自信心﹐不要受到言论影响﹐但是要知道读者喜欢看什幺﹐而不是自己想写什幺写什幺。老作者都会感受到﹐虽然如此才会有市场﹐但是也不能完全应读者的所求﹐那样就会失去变化与新意。因此就需要品味了。有如昼家一样﹐与艺术接触得多了﹐自然对美有自己的品味﹐而且会越来越高。在网上的老读者我相信巳不会对一般的武侠作者感兴趣了吧。因为接触的书太多了﹐单一就满足不了所求。所以有品味的人才能写得出好作品﹐而要有品味就必须得读万卷书﹐现在是网络的世界﹐而这万卷书的意义可广了﹐不是单一指中国历史﹐更需要明白世界历史(推荐罗马历史)﹐也不只是中国政治﹐而世界政治﹐很多东西网上都可以找得到。所以读者们的见识变广﹐变聪明﹐作者在以狭窄的知识观去面对那就跟不上时代了。所以增加自己的视野与观点﹐要不然别人做到你做不到﹐你凭什幺要求别人看你的书。要知道现在网上的作者可是成千上万﹐而不是以前那样全国加起来的小说作者还不超过百人。品味﹐只有读过很多小说的人才会拥有﹐是对书好坏的分柝﹐老读者都明白在下所言﹐开始的时候什幺书都好看﹐渐渐地开始变得挑食﹐嘿﹗而只有这样的人才能写得出好书。最后一点﹐身为作者的立场要尽量中立。要偏向于主角的同时又不能使得主角一帆风顺;﹐我们不是神﹐我们做不到现实﹐但要尽量给读者真实感才是成功的所在。 品味对一名作者来说品味很重要﹐品味是什幺本人也说不明白﹐但是那是一种阅书千卷后所得出来的经验﹐那代表了作者的知识面与作者的阅读能力。品味越高﹐那幺对于书的好坏有着深刻的认识﹐这种人能一眼看出书的潜力﹐现在通常只有那些在网上泡上四年有多的人才有这个资格。这就有如八十年代那个时候﹐没有什幺卡通可看﹐有的就只有米老鼠与变形金钢﹐所以对那个时候的小孩来说只要是卡通都是好看的。但到了现在﹐再去回顾变形金钢的设计与剧情﹐实在感觉到有点幼稚。这就是因为品味提升了。小说与漫书﹑电影是不同的﹐漫书电影是以图片来表达﹐直接地人物的印象送入读者的脑海中﹐但是对小说来说就算你如何仔细地去形容一个人的外貌﹐读者也不会记得这个家伙长什幺样﹐对于读者来说﹐他们的脑海中主角的样子从来都是模糊的﹐所剩下的就是几个主观的印象。比如说﹕主角是英俊的﹐主角是懦弱的﹐女主角是残忍而又文静的﹐这些东西都不是一言两笔可以交代出来的﹐只能*在悠长的剧情中慢慢地以文笔种入读者的脑海﹐理解这一点的人才有文笔可言。所以﹐身为一个作者一定要有品味﹐但品味又不能狭窄﹐像某些作者他们的生活圈子只有那个一个镇﹐坐井观天。 这样的人可以写出什幺客观的作品﹖但是我们又不能走万里路到处去见识。那怎幺办﹐那唯有读书﹐读得非常杂。恐怕各位在读雅典史之前一定认为美国是世上第一个民主国吧﹗然后又认为民主是世上最完美的政治吧。在读罗马与雅典史之前本人是这样认为的﹐但可惜是错的。雅典的民主比起美国更加早﹐而且雅典体现了民主失败的一面﹐读过了这些历史﹐本人才明白到很多小说的全民主根本是放屁﹐是某些人不切实际的妄想﹐因为本人明白到民主的条件十分严格﹐没有这些条件强行行民主制只会坏事。本人推荐罗马史与希腊史是不得不读﹐因为它们的历史几乎把世上所有的政治制度都试了个遍﹐读完之后作者们会明白到什幺叫幼稚。因此本人建议﹐一名作者看漫画可以﹐但不要认为可以把漫书上的东西写下去﹐更不要把肥皂剧的剧情写下去﹐多看看西方雷影﹐埃及历史﹐还有罗马﹐见识一下各个文明﹐了解时事与他国的政治制度的好坏(这点很重要)。还有某些猎艳XXX﹐淫XXX﹐艳遇XXX﹐风流XXX…… 在下并不反对写女色﹐但是试问各位作者自己的恋爱经验有多少﹖从何而来﹖是从各个漫画与电影上学习而来的﹖还是自己人生的体悟﹖是真情动人直入心骨的恋爱﹖还是自己不知所谓的迷恋﹖如果各位懂爱情的话。那幺一定会明白一个女孩爱上一个男孩是十分困难的事﹐而且一定有原因。各位,一见钟情或许存在﹐但是你们见到有多少﹖不要将不受欢迎的郁闷发泄到小说上﹐小说要客观﹐是一种艺术﹐只有尊敬它才能写得好﹐恶搞那不如别写。只有那种把文字与小说当成是兴趣或者职业的人才能写出好作品﹐因为他们认真﹐认真能使得他们进步。打个比方吧﹗有一部书说﹐一名女生把主角弄出车货送进医院了﹐因此内疚地在主角床边哭。好﹗第一次见面﹐不小心把一名不认识的男生美进医院﹐然后感到十分内疚为他而悲伤。你们相信吗?一名十岁的女生在这个年龄还哭﹖你们见过吗﹖为了一名第一次见面的男生﹖ 这名作者是硬想建设女性对主角的爱情﹐但本人想他极之失败。好了﹐这些方面表现了作者们对女性了解的肤浅﹐即然不明白女人﹐我劝各位还是跳过去别写女人了﹐至少不要主要写女人。好吧。你们要写﹐那么本人唯有给一些客观的意见。有一类女人是女强人﹐间谍﹑大家豪的精英与富有材干的女强人﹐公主之类。这些女性是不太可能爱上男人的﹐她们只会因为利益而接近男性﹐所以对于此类的女性各位作者如果对于爱上主角的理由不够充足﹐那干脆描写她是因为利益与某种目的而接近主角的吧。(硬弄你的作品会因理由不够充足而失去说服力﹐这是一名作者最害怕的)另一种女性是根本不会爱主角﹐但是又被迫不得不与主角上床﹐她们甚至恨主角﹐比如﹕女性的家族有求于主角﹐用他们的女儿作为筹码。(政治婚姻)一种女性是因为职业的需要才会在主角身边﹐对于她们来说主角的存在可有可无。最典型的就是Y环与女密书。所以啊﹗如果无法描写那就不要勉强﹐退而求其次吧﹗不要想着所有的女人都会关心主角的死活﹐有的女性就算爱上主角也不会与主角一起下地狱的。只有写出这种不完美才会使得读者有真实感﹐一部失去真实感的作品那是作者的失败。因为完美的世界是不存在的。请各位把女人写得像个女人﹐女人是不可能不妒忌的﹐妒忌也是她们的特征。很多作者在描写时说几个女人共同服务一个男人而不妒忌﹐这是不可能的。女人的妒忌心比男人还强烈千倍啊﹗两个女人或者可以和平同处﹐但三个女人却不可能。写这个评论是为了对自己所领悟的作出一个总结。对于本人来说写作是兴趣﹐所以本人追求进步﹐文笔与思考上的进步﹐身为一个作者﹐喜欢一本漫画一部电影时﹐本人会细细地分析这剧情为什幺吸引我﹐然后将它深深地留在大脑中。然后某一天这个剧情就成了本人一瞬间的灵感﹐本人也会认真地去学习一些写作手法﹐比喻暗喻之类的本人早巳忘记﹐现在唯有重新捡起来用。很多写大学论文的人写作文笔可比本人好很多﹐但是他们并没有将心用上吸引读者这一方面上﹐应该说是不怎幺需要这样做。但小说却一定要吸引读者。作出这样的写作总结﹐会使本人本来巳忘了的技艺重温一次﹐然后强调自己不要犯这种错误。比如写神。作者们对神的了解都有自己的定义﹐但是很少有作者能写到成功的。大多数都喜欢以人的定义去写神﹐这是失败的﹐有看过黄易小说的人就会知道﹐在黄易的印象中﹐他的神是怎幺个一回事。在现今的世界中﹐神的人性化哪门子表现出来﹐除了基督教的教义之外一无所见﹐甚至是否存在还是个问题。 所以你们所说神是人跟本使得读者不认同﹐如果作者说是写来恶搞的话﹐那幺如同本人一直的观点﹐你不如别写。要写就认真写﹐尽力合理与逻辑性。黄易的早期作品中﹐他认为神只是一团能量旋涡﹐在他的作品中描述了这种伟大力量的神秘。圣经中﹐神是至高无上的﹐它的智能与行为是人所无法了解与猜测的﹐因此以这个尺度去写神﹐必须表现出一个至高无上的存在﹐府视下面的碌碌群蚁。有人认为地球上的神是外星人干预结果﹐也有人认为世界是一个巨大的电子计算器﹐时间就是神﹐而这所谓的神只是一道无法逆许的管理程序。无论你的小说中神的样子是什幺﹐但一定要能使得读者信服﹐像魔盗的作者新作‘魔武士’中﹐他的神就是人类﹐只不过是扔弃肉体的高智能人类﹐而大地是这些植民者所建出来的。还是两点﹐合理与逻辑性﹐想要读者们认同你在文中的神﹐必须要说服读者﹐比如为什幺在圣战中使用圣经中的神﹖那是因为对于这个神的行为本人根本不需要解释﹐一句神的决定不需要向你解释就解决了。神为什幺要选主角﹖为什幺要帮这块土地而不帮蒙古人﹖或许有他自己的原因﹐但是不必跟你这渺小的人类解释。 小说技法十一章:一、小说是什么:小说除了是电影的原始材料、除了是出版商手上的玩具,它还是什么呢?有空去读读亨利-詹姆斯的论文《小说的艺术》,那里面应该早把这个问题说得很透彻了――“小说是一种艺术,它理应得到迄今为止仅仅为音乐、诗歌、绘画、建筑方面的成功行业所保留着的一切荣誉和报酬。”小说有它自己的历史,不管在中国还是在外国;小说这个艺术形式,几百年来,一直没有丧失过生命力,即使在影视泛滥的今天。一个国家,对作为艺术形式的小说的重视程度,实际上间接地反映了这个国家民众的整体文化修养的高低。多少年来,我国人一直在嘀咕“诺贝尔文学奖”,在我看来,诺贝尔文学奖固然是一个全球共享的文学奖,但大家不要忘了,它可是那个叫瑞典的国家颁发的。小说创作,首要的一点是:学会把话说明白,把意思表达清楚,用舞蹈演员练功那样的毅力,去训练我们对文字的感觉。二、小说的题材:一般来说,在小说家动笔写作某一篇小说之前,他需要选择一个可以写下去的题材。所谓选择“小说的题材”,通俗一点说,就是“我要写什么?”再换个角度说,就是“有什么值得我去写?”无论是小说,还是其它门类的艺术,在将不可见的思想转化成具体可见的作品之前,都会面临着题材的选取这样的问题。巴尔加斯-略萨在他谈论小说创作的《中国套盒》一书里,说过这样的话:“小说家不选择题材,是他被题材所选择。他之所以写某些事情,是因为某些事情出现在他脑海里。”这话固然没错,一个小说家的生活阅历、他受到的教育、他的性格、他的兴趣、他的个人历史、家庭背景、他与人或人群的交往、他所处的社会环境,所有这一切都影响着他对于写作题材的选取。 所以这个看似主动的“选择题材”的过程,往往是在小说家的潜意识中就完成了。一个小说家,如果他是个优秀的小说家,他会尊重他个人内心的兴趣和良知,去选择他即将要写的小说的题材,或者说被那些浸润了他个人思考的题材所选择。反之,一个平庸的小说家,在选择题材时,往往更多地关注当时、当地的外部环境的需要。真正优秀的小说作品,是一个带有理想色彩的精神活动的结晶,它是与小说家对人性的固执的探索分不开的。更主要的是,优秀小说家对于题材的选择,应该是一个独立的、带有个人尊严的决定,是对于某些事物他想说、他必须说、他不得不说。而不是审时度势--什么可以说,什么不可以说,什么说了听众多,什么说了听众少--的结果。唯其如此,“小说”才有可能作为一个强有力的艺术形式继续存在下去。以列夫-托尔斯泰评论一个我以前从没听说过的作家维-冯-波伦茨的话来结束本文:“这部小说(指后者的小说《农民》)不属于彼,不属于此,也不属于第三种,而是真正的艺术作品,其中作者所说的是他所需要说出来的,因为他爱他所说的事物……。”三、小说的虚构:有一段时间,我总听到这样的话,“奥斯维辛之后写诗是野蛮的”,据说这是德国哲学家泰奥多-阿多诺的名言。我并不以为这句话说得多么漂亮。因为我觉得这句话本身就是诗,用写诗来反对写诗,就像人不依*其它的支点,而想仅仅用自己的手把自己从地球上拎起来一样,做作而又无效。人们常说的“现实生活”,不外乎工作、吃饭、睡觉、购物、学习、交际等等,也许还包括看书、看电视、看电影。那么看书的部分,可能还包括看小说吧。我们可以分析一个看小说的人的心理,他到底为什么要看小说?那自然因为小说对他构成了吸引力。他的某些在现实生活中无法实现的梦想,小说可以给他圆上;他的生活过于沉闷,小说可以给他精神和情感的支撑;或者他从小说中可以获得某种道德上的教化,并由此产生共鸣;或者他仅仅是想通过看小说满足他私下的什么癖好。总之,小说所描写的一切,应该与他的现实生活有关,但又不仅仅是他现实生活的如实照搬。小说必须带给他思考、梦想、情感、精神力量等等。在他看小说的诸多目的中,很重要的一点,是他想给他的现实生活装上类似翅膀一样的东西,让他飞起来。 用一句都市姑娘们的名言说,就是“High”一下。而这样的翅膀一样的东西,就是产生于小说对于现实生活的“虚构”。也就是说,小说在现实生活的层面上,又虚构出了另一种生活,或许这可以叫做“小说中的生活”。正是因为“小说的虚构”的存在,小说对于人来说才显得有了价值。而小说的价值,又使得人的现实生活不要总是显得那么没有价值。――虽然小说是虚构的,但人们读小说(看书)的行为却是实实在在的,是人们现实生活的一部分。可以说,小说所虚构的一切,及其对人们思想情感的影响,使得人们的现实生活变得更加丰富和有趣了。奥斯卡-王尔德在《谎言的衰朽》一文中所说的,“生活模仿艺术,胜过艺术模仿生活”,隐隐约约就是说的这个道理。说到这里,不得不说一说“小说的真实”。诚然,小说的虚构,是小说的生命所在。可是小说虚构的源泉,却是来自某种真实的生活。小说要想对读者产生影响,就必须使读者对小说虚构的一切信以为真,必须使读者认为小说中的“虚构”,是可能的,是真诚的,是真实的。否则,读者那双幻想的翅膀,就永远无法装上,而小说的虚构,也就不成其为虚构,而是虚伪或胡说八道了,小说就会因为显得不真实而无法施展它那震撼人心的魔力了。回到那句“奥斯维辛之后写诗是野蛮的”。这话的意思,据我理解,其中有一层大概是指人类的残酷程度已经远甚于艺术作品所能描写的残酷程度,而此时再从事艺术活动(比如写小说),那么就不可能真实地反映人类的状况,就失去了必要性。说这话的人,他的出发点和用意是好的,他提醒我们注意,艺术中的虚构,最终只有与人的现实生活达成默契,才能对人的生存构成意义。 无论用文字、还是用颜料、还是用其它媒介所“虚构”的一切,只有被“真实”之光照亮,才算得上艺术。――可是他忽略了一点,就是如果人类的精神萎缩到不再需要那种真诚的、发自肺腑的、以虚构的方式使他的精神意志得到陶冶和激励的优秀艺术作品,如果人类不再幻想一种比现在的生活更为美好的生活,那么奥斯维辛还会再来。四、小说的人物:人物,是小说艺术中很重要的一个元素。当然由于小说的多样性,在某些小说家的作品中,根本就没有人物,这也是可能的。或许有人会这样质疑:“小说为什么总是要写到人?”是的,我也并不以为每篇小说都一定要写到人,都一定要有人物在其中穿梭;但是我在经过思考之后还是觉得,无论任何形式的艺术,无论写不写到人,它最终所表达的都是与人有关的一切。我们不可能虚构出一个处在我们(人)的观察和思维能力之外的东西,比如我们在虚构外星人的模样时,往往会以我们的模样作为参照。文学作品中之所以会出现外星人或者非人的东西,都是源于我们人要对自身进行解释和探讨的目的。这也就说明了大量的小说直接以人为研究对象、直接描写人的生活、直接讲述人的故事,是很正常的。小说中的人,就是这里所说的“人物”。 在一本以虚构为主要特征的小说中,人物当然也是虚构的。那些被我们津津乐道的人物,比如林黛玉、薛宝钗,只是曹雪芹笔下虚构出来的人物。我们可以说林黛玉、薛宝钗的原型,是曹雪芹生活中的某某和某某,但是林黛玉和薛宝钗,却并不等同于她们的原型。她们永远只是生活在《红楼梦》中的人物,离开了《红楼梦》,她们就什么也不是了。这大概就是小说家特有的权力吧――小说家有权从他的生活中采撷众多活生生的原型,以塑造他小说中的人物,而不被追究捏造和诬陷的责任。如果明确了这一点,我想就没有必要在小说的前面加上“本小说纯属虚构,请勿对号入座”之类的告示了。这个看似蛮横无理的权力,是小说这个艺术形式本身所赋予小说家的。因为小说的真正来源应该是现实生活,或者与现实生活相关联的事物。而要使人物“活”起来,对人物的动作、内心活动、对话(包括独白)和与别的人物之间的关系的刻画,则是必不可少的。这些大概有经验的小说家都能够做到的。现在的问题是,小说家花那么大的精力去刻画人物,到底是为了什么?是什么样的动力促使小说家去刻画这种类型的人物,而不是那种类型?他想通过这些虚构的人物表达什么样的对生活的看法?这些,是由小说家本人的志趣、爱好和他的思想、艺术观等等决定的。有多少种小说家,就有多少种人物。有多少种小说家,就会有多少种人物的命运。 对不同人物的处理、以及对同一种人物不同命运的处理,就是判别小说家优秀与否的关键之处在今天这个强调技术化的时代,以我所看到的大多数小说家而言,他们也许更多的是关注小说的叙述方式,而不是小说中的人物刻画。这与20世纪的小说风尚有关系,小说观念的不断革新大大地破坏了小说家对于塑造完满人物形象的雅兴。在人们大谈福克纳和乔伊斯的“意识流”的同时,我们是不是也要去关心一下他们曾经塑造过的昆丁、布卢姆等等小说人物?—— 所谓的意识流,正是这些小说人物的意识流。五、小说的故事和情节:小说的基本功能在于“叙事”。假如说“小说的题材”是指小说中的那些“事”,是一个静止的概念的话;那么“小说的故事”和“小说的情节”,则是与“叙”有关的两个处于运动之中的概念。这三个概念(题材、故事和情节),是用光线从不同角度射向“小说”而产生的三个不同的投影罢了。一个创作激情十分旺盛的小说家,他大概不会详细研究这些概念的区别。他运用他多年来的创作和阅读经验,就能写出像样的小说。这是小说家的本能吧。凭本能创作,就和孩子吮手指、蚂蚁搬食物一样,是一种很自然的过程。如果斤斤计较于小说的各个概念之间的区别,恐怕反而会使小说家丧失创造的能力;就像成语“邯郸学步”的那个人,最终步没学成,只能爬着回家。我要不是在写分析小说的文章,我恐怕也不会刻意去思考小说的那些模模糊糊的概念的具体所指,当然我这是在为自己辩护了。据英国的E-M-福斯特――此人写过《印度之行》等小说、发表过著名的演讲《小说面面观》――所云,“故事”是指“按照时间顺序来叙事”,而“情节”则是指“在按照时间顺序叙事的前提下,强调事件之间的因果关系”。 通俗地说,“故事”是指小说中的人物在经历了一件事之后,又经历了另一件事。比如《水浒传》中,先是西门庆和潘金莲通奸,然后是潘金莲药死了武大郎,然后是武松杀了潘金莲,然后武松又杀了西门庆。而“情节”则似乎是指,小说中的人物在经历了一件事之后,为什么会经历另一件事。或者说,一件事与另一件事之间,有什么必然或者偶然的联系。西门庆为什么会与潘金莲勾搭成奸?西门庆是个花花公子这且不谈,那潘金莲也不是个什么好人。潘金莲为什么要药死武大郎?自然是那武大郎毫无情趣、又罗哩吧嗦。武松为什么会杀了潘金莲和西门庆,而不是把这两个坏人押送官府?是因为潘金莲和西门庆杀了他的哥哥,再说武松本人也是一个天不怕、地不怕的汉子,再说官府也不是个什么好东西。人们常说,一部小说很有意思。这句话大概是指小说的故事很新颖、很独特、很曲折迷人,以及小说的情节很生动、很耐人寻味、很感人、很深刻。过分强调故事的新奇、而忽略情节的深度和可信度的小说,可以参阅金庸等人的武侠小说。而太忽视故事的构造、一味在情节的逻辑里绕圈子的小说,则可参阅20世纪的某些观点偏激的现代派小说。话说回来,实际上,世界上并不存在最理想的小说创作方法和最理想的、最完美的小说。因为世界上并不是只有两个人:一个作者和一个读者,在这两个人之间可以商量出一个有关“故事”和“情节”的最佳设计方案。六、小说的细节:小说中的细节描写,是使小说得以成形的根本原因。细节描写通常指的是,对可见之物的描写和对心理的描写。可见之物,包括环境、自然景物、社会背景、历史背景、人物的外表及其行动、对话等等。 心理,当然是指人物的心理。在一个很偶然的场合,我与一个小伙子谈起小说,他说:“我对‘细节’这个词感到很厌倦了!”没错,这个词的确让人厌倦,可它却是小说(不仅小说)无法回避的事实。从来就没有无细节的小说,就像从来就没有无身体的人一样。一篇小说中,可以只包含某一类的细节描写,却不可能完全没有细节描写。比如海明威的短篇小说《杀人者》,通篇几乎全是对话,那些活灵活现的对话,就是支撑这篇小说的细节。某些所谓的小说流派,比如法国的新小说对“物”的描写、意识流小说对心理的描写,这些流派是对小说的某一方面的细节描写加以强调的产物。伟大的小说家,必定是在细节描写上十分独特和极具创新意识的小说家。人类历史上曾产生过的优秀的长篇巨著,更是细节描写的典范。比如雨果的《悲惨世界》,笔触几乎包括了社会、历史、自然、人物行动、心理等等所有方面的细节描写。这样的小说对读者的震撼力,自然也就持久和强大。由于细节描写,小说才有了长度。小说的长度,是由富有生命力的细节构成的。而小说的长度本身却并没有优劣之分。一本糟糕的长篇小说,无论它怎么长,也无法敌得过一篇优秀的短篇小说对人性的启迪作用。在一些能力较差的小说家那里,片面追求小说的长度,成了一种通病。仿佛不长,他们本人作为小说家的存在就会发生疑问似的。为了增加长度,他们拚命往小说里塞进低级趣味、弱智无聊的细节描写。现在比较流行的“通俗小说”,基本都是这样的创作心态。细节的空洞,必然使这些小说显得臃肿和虚伪。从内心说,我也能理解那些“通俗小说”的作者,大家都是人,都有坑人的愿望吧。 拼八凑弄出一部长篇,骗骗读者的钱,只要读者舍得,那也未尝不可。孔圣人说“吾日三省吾身”,我也来装模作样地反省一下。那些使我激动过的小说、使我佩服过的小说,它们的长度所到之处,也正是它们无比精美和感人至深的细节描写正像针一样扎入我体内之时。陀思妥耶夫斯基的《被侮辱与被损害的》中,小女孩涅莉临死前说的话、以及当时的环境、以及万尼亚的心理,这些描写不由人不落泪。虽然使人落泪,未必是衡量小说优秀与否的绝对指标。 有意义的动作描写 人格化的动作,能够创造生动鲜明的画面和使对白富有活力——威廉-塔玻利 当我第一次写作时,我认真地接受了一位朋友关于写作的建议,他强调人物的动作对故事的发展起着重要作用。但在那种平静的场景中,当小说中的人物在交谈和聆听的时候,我就有了麻烦。我错误地认为在这里只要用一些简洁的“动作”词语就足够了。因此在我的场景描写中充斥了“他点头”,“她耸了耸肩”,“他起来”,“坐下来”,或“跷起二郎腿”这样的短语。我甚至让我小说中的人物看、打呵欠、微笑、叹息。这些都是我在人物对白时所用的“动作”,我把“有意义的动作描写”误认作写单一的“动作”。由于这些可有可无的词语大量充斥其中,我的手稿不得不报废。时间和一些有关小说写作的研讨会帮助我改掉了这些毛病。我懂得了枯燥无味的陈述和平凡的动作没有什么两样,都是小说的大敌。我终于明白,当人的活动与情感、态度、姿势或表情联系在一起的时候,它们才是有意义的动作,这是人格化的动作,能够创造生动鲜明的画面和使对白富有活力。我来给你们举个例子:中士霍金斯和中尉卡拉瑟斯是两名警察局的探员,他们正在中士的办公室讨论一桩谋杀案。霍金斯看着卡拉瑟斯,“有几件事还没有查明,中尉。这只蓝色的鞋是谁的?还有这把钥匙,它是一把劣质的钥匙,究竟是门上的、挂锁上的,还是旅行箱子上的呢?”卡拉瑟斯耸了耸肩,霍金斯把这两样物品放到他的抽屉里。卡拉瑟斯站起来,“也许我们可以从验尸官那儿得到更多的线索。”他向门口走去。“他的验尸报告现在应该在我的桌子上了。不要担心,霍金斯,我们很快就能查明事实真相的。”他离开了办公室。这个场景缺乏戏剧效果,这些枯燥无味的动词:看、耸肩、放、站、走和离开,没有一个描写到意图、态度、姿势或表情的。它们都没有表达两个人的情感。 再看一看,当这些枯燥无味的动词被改成生动的活动时,场景就立刻变得充满活力了。霍金斯把身子往前倾了倾。他的手指着桌子上的物品:“有几件事实还没有查明,中尉。这只蓝色的鞋子是谁的?还有这把劣质的钥匙,它究竟是门上的、挂锁上的,还是旅行箱上的呢?”他把它们塞到抽屉里,“砰”地一声关上了抽屉。卡拉瑟斯微笑地站起来,拍了拍霍金斯的肩膀。“也许我们可以从验尸官那儿得到更多的线索。他的验尸报告现在应该在我的桌子上了。不要担心,霍金斯,我肯定我们很快就能查明事实真相。”他信步走出办公室。现在这幅场景的情感就清楚了。每一个动作都涉及到姿势、态度和表情。我们看到霍金斯的烦恼,以及卡拉瑟斯用自信在消除他的烦恼。这些词语和动作相互起到了补充的作用。 下面这个例子,是两个小男孩在一幢老房子大门外的对话。“快点,约翰尼,我们进去。”比利说。约翰尼看着他,“我听说这儿闹鬼,人们说他们看见过幽灵。”“啊噢!根本就没有什么幽灵,那都是吓唬人的话。”比利走上门廊。约翰尼跟在后面。在他刚到达前门的时候,他听到一声尖叫,立刻转身就跑。这儿又出现了一些没有色彩的动词:说、看、走、跟、到达、听见和转身。这个对白的目的是想让我们知道,比利用激将法鼓动约翰尼进一幢闹鬼的房子。但是对话没有涉及到姿势.

    Vim-sort

    vim sort 1:如果我们想以第4列数据进行排序,可以在vim中如此做: 1,12!sort -r -n -k4.1,5 -r 是降序排序 -n 是按数字大小排序 -k,表示根据那个字段排序,4.1,表示第4列第一个字符开始 ,5表示到第5个字段为结束 -t 后面跟分隔符,缺省是空格 2:在VIM里面, 如果你要把从当前行以下20行按字母顺序排序 只要输入:.,+20!sort 3:用vi 來看log檔常要排序一下資料 可以用外部的sort 程式協助排序 令用法如下: :1,$!sort -k 3 表示從第1列開始, 以第3 欄資料進行排序 :4,$!sort -k 3 表示從第4列開始, 以第3 欄資料進行排序 給有標題的文件用 :1,$!sort -k 4 -t"." 表示從第1列開始, 以第8 欄資料進行排序, 分欄字元是 “.” 結果會如下 : 192.168.1.20 192.168.1.218 192.168.1.22 218 竟然排在 22 的前面? 是因為以”文字順序”排序的關係 :1,$!sort -k 4 -t"." -n 表示從第1列開始, 以第4 欄資料進行排序, 分欄字元是 “.