2013年8月19日星期一

关于“乱讲”

  • 关于“乱讲”


有一天,小明和小红一起出去游玩。边走边聊,有说有笑的……中间小明(不小心)说了一句“乱讲,我觉得是这样的……”,小红突然就不高兴了,不理小明了,并挤着眼吐着嘴自己一人先行离开了……

好,简单的故事讲完了。观众朋友们,你们知道为什么小红不理小明了吗?很简单,因为小明说了“乱讲”,不小心冒犯了小红。为啥小红因“乱讲”而不高兴,更具体原因详见下文剖析。

显然,这是一段虚构的小故事,小小情侣的俏皮故事。呵呵,听听就好不必认真,只是给“乱讲”的话题做个引子。

乱讲可能有误会,可能有冲突,更深的探讨就可能还包括自尊的心理活动。

乱讲,最直接理解就是否定对方前面的陈述。平时生活中,或许你经常会听到“乱讲”这词,比如有些人喜欢在否定对方观点并陈述自己时顺口随口曰,乱讲。这情况,往往可以被人们理解为口头禅(乱讲)。不知道你是否遇到过没有,反正我认识的一些人确实有这样的。当然了我没有这样的口头禅,可是却有位姑娘(一位重要的姑娘)指着我说,我有这样的口头禅了!为了表示反驳表示我没有这样的口头禅,所以我想写写这篇文章,关于“乱讲”。哈哈,当然这是一种带着调侃口吻而全无冒犯姑娘的说辞,不必当真:-) 

随口一句,“乱讲,我是说……”,或“乱讲,不是那样的……”,或“乱讲,其实是……”等等,诸如这些简单的话语其实多多少少暗藏着不友好的态度,当然对于那帮损友们来说天天互损而又相处融洽的情况且另当别论,这里只讲一般认识一般交情或彼此自尊自重分量有足的情况。我要说的“乱讲”二字很容易另对方产生歧义或困惑,怀疑是否没有得到尊重,甚至怀疑说话人的谈吐礼仪或素养。因为直接两字“乱讲”,足以赤裸裸地把对方的先前的观点给否定了,而且还带着一种意思指明对方在胡说八道的感觉。不管说者是否有带着这个意思,反正听者很可能就自然有着那样的感觉了。“言者无心,听者有意”,也差不多就是这个意思了。

或许有人会说,“不就两字嘛至于去反感吗?至于那么脆弱心灵吗?”,“乱讲,少误会了,全没那意思,就觉得顺口好玩,而且有点带着台湾味道的口语啊,好玩!”。那我只能说,“还真的是有些人那么敏感,不喜欢这,特在乎自尊,与心灵强弱无关”,“好玩的多了去了,如此可能伤人,这台湾味道的有啥好稀罕的。”

如上阐述,可以说“乱讲”二字只可能有带来误解或更深的误会情况,其他别无一处(益处)。既然如此那么有这样口头禅的,劝你尽快改掉改掉再改掉。少说的或没说过的,建议尽量避免得了,干净。少一句是省一句的事儿,别不信。

好了,此话题到这里讲完了,就此打住足矣。我想表达的意思已融汇在其中了。
最后附上一句:你若安好,便是晴天。另,携手同行
(完)



2013年5月6日星期一

时间紧迫症


时间紧迫症
  -- 时间紧迫的恐惧感

 昨夜至今天(20130421)我深刻反省自己,并勇敢地认识到:近几日得了时间紧迫症,内心反复触发起恐惧感。缘由来自最近工作的项目,一个对先前设计方案不断优化与改进的项目,这是之前出自我手的一个分享文件的设计方案(程序)。这段时间(10 天左右)关于项目优化的细节占据着我思维的大部分(80%),除了工作时间几乎占用全部之外,早晨睡醒脑子里第一件事情就是它或者说它把我从睡梦中叫醒,午休时候同样如此,晚上睡觉前最后一件事考虑的事情同样也是关乎方案的优化细节。

这些日子,优化细节不断从思绪中涌出,而且我总能很快付诸行动去编码、测试、观察性能、改动继续编码(反复)……如此反复的情况正是不断尝试调优的过程。这些日子,我的精力如此旺盛,在前面的日子丝毫不感疲倦……终于在昨天下午我深感累了,这种感觉似的来的异常快速,快速的令我不得不去反思回味前面的过程……其实,我应该更加理性一下,有些时候过于投入容易出现无法自拔的境地。

至此,项目的调优效果明显已达到原来预期的效果(甚至有点惊喜),至少可以满足领导们现在的期望了。因为所采用的优化方案不会对原来的设计结构大动干戈,而且经测试验证其效果理想,这样我们可以松了好几口气,可以暂缓下来去做其他比较紧急的另一个事情了,按理说现在我应该内心放缓轻松下来,不必为此事而费神了。但是,对于源源不断涌现出来的优化细节,我却抑制不住放缓不下来而是内心莫名紧迫起来恨不得立刻付诸行动去尝试……还有其他的工作事务安排所以容不得我去放纵。所以,后面这几天我的内心常常自我矛盾。最后深深发现自己累了,在网上搜索了解到“时间紧迫症”,与我的情况最相近了。

最后,我想简单地总结一句表达我想说的:由于最近工作的项目在不断地调优过程:思考、编码、测试、验证、改进、思考、编码……如此反复,导致近几日内心默默产生一种紧迫感,即一旦有思绪恨不得一蹴而就,立马付诸行动得以理想的优化结果,竟然一段时间乐此不疲精力旺盛。与如此情况最相近的就是时间紧迫症。累了,今日深刻自省,已放缓过来。
关于时间紧迫症,从网上捞到的定义(参考互动百科的时间紧迫症 ):
  时间综合症是指人们对时间的反应过于关注而产生的情绪波动、生理变化现象。时下,快节奏的现代生活,使都市白领感到时间越来越不够用,对事业的专注使人对紧迫的时间感到焦躁不安、紧张过度,这样会引发心率加快、血压升高、呼吸急促等症状。

咳咳……如上这些的表达都是为了尝试另我放松下来,我歇息歇息,满血再战!

记于20130421(完)

成功的老板都善于讲故事

成功的老板都善于讲故事
 -- 20130221 听Big boss 说价值观


刚好(20130221)今天是我第一天上班,中午就恰逢老板CEO(还有看看公司的CEO付总)请蜘蛛网兄弟们吃饭,前面说是老板与我们互相交流,而事后看来其实不如说是大家听他(们)讲故事,灌输一些价值观给我们,在此谈不上洗脑,毕竟老板说的那些事情我们相对比较认可的,而且也有类似娱乐新闻的趣味故事,笼统的回想回想,掐指算算聊到的话题,有:

1,聊自组网应用前景。嵌入在快传、手雷提供组网与数据传输服务,搭建平台。具体应用于文件分享、游戏平台等。

2,小团队作战能力精悍,反应敏捷效果突出。举了个例子几年前迅雷对手网际快车的第一作者(侯延堂),当时单枪匹马可以把软件设计的很好,但是后来交手给了十多人的团队反而没把握好方向了,慢慢做得不行了(落后了)。

3,迅雷也一直努力站在用户的利益。老板做迅雷牵扯的利益要面对股东、ZF、还有网民(用户)。老板技术出身一直崇尚技术但毕竟也是位商人,在当年中国环境办公司做生意必须学会与ZF妥协,要做好迅雷最终面对的是用户所以一直放用户利益至上。需要在股东与ZF面前争夺用户的利益。

4,在国内的互联网公司,老板最佩服的公司是阿里巴巴,在IT业界电商方面它不仅把技术、服务做得第一,还给中国提供了无数就业机会与商机。

5,在当今中国经商不得不与官员打交道,需要懂很多门道,还有老板风趣说趣事比如,有时某位官员觉得迅雷不听话想找茬,最后迅雷常常先找到了他的上司,这样就安然无事了。

6,迅雷碰到最多的官司关于版权问题……常常很难与好莱坞那边谈拢合作起来,可恶的美国人表面很斯文实际上都是很强势的(老板在美国生活了十年时间深有体会)。迅雷与好莱坞那边有过几次官司谈判,结果都不是很愉快。最后迅雷找到了好莱坞的爸爸(默多克)作为靠山,通过华人邓文迪(默多克第?任妻子)加盟了迅雷股东,这会迅雷在谈判上就有了足够的底气了。

7,老板说到自己一段不孝子的故事。2011年迅雷在香港、美国路演筹备上市(虽然最终未果),其年迈的父亲也一直跟随之儿子,但老父一直有个吐痰的习惯,当时在路演过程儿子正因此(不良)习惯而在父亲身上感到过羞愧……事后老板认真反省过,羞愧自己不孝,更应该体谅老父年老。日后要努力做好孝子。

记于20130221(完)

关于C++ 静态成员对象的一段小故事

关于C++ 静态成员对象的一段小故事
  -- 20130322 静态对象做单例的危险


  • 微博吐槽
(引用)近几天遇到一工作问题令我困惑不已,且又不是我所熟悉过的,直观体验完全感觉不出问题存在,但从大量测试统计能微微发现问题确实是存在的。诸多排除法之后还是觉得无从下手,甚至有违常理的感觉...一遍一遍review代码是件痛苦事情,最后靠着一点点改动希望接近问题所在,再得以解决。[睡觉][汗][吐] 附图:

btw. 吐槽不是重点,重点的是作为经验告诫提醒自己或他人。还有,吐槽了让我明天继续满血(激情动力)查问题。

  • 故事细节
今天,Review代码时发现一个比较重要线索,线索不是最终问题(即下载速度变慢)但也是问题是程序存在的漏洞,但是很可能两者关系紧密。要知道在查“莫名”问题的整个过程是相当枯燥乏味的,还得顶着上面人的催赶压力,所以发现一丝可疑线索是足够令人兴奋起来的,何况该线索又是看似比较重要。发现了线索、解决问题并验证、提交测试验证跑速度对比,这个过程是轻快的,之后就等测试对比结果。由于晚上十点钟才提交开始部署测试,只能等到明早上班时间才能出结果。所以,先不管了安心回家睡觉,静待明日结果,如上图。

线索(问题)描述:DLL模块存在两个单例对象,都是数据量比较大的类型,这两个单例对象都是以全局的static静态对象存在的。所以,只要DLL被LoadLibrary加载起来了,即使什么事情也不做,这两个静态对象也被生成了(包括构造函数做的具体操作也统统被执行到了),直至DLL被FreeLibrary卸载掉它们才会被析构的。具体情况详见如下示例。
  • 示例说明
 class A {
private:
   A() {
     ... ...
   }
   static A _s_a;

 public:
   static A* get_instance() {
     return &_s_a;
   }
   void do_work() {
   }
 }
 int main() {
  A *a = A::get_instance();
  a->do_work();
  ... ...
 }
> 问题在哪里?
 当程序还未执行到main()的A *a = A::get_instance();这行代码,对象_s_a已经被构造出来了,构造函数A()的逻辑也被执行了。
 当程序逻辑出现比较多这样的类型的静态成员对象,而且之间存在依赖关系的话,程序很可能在启动时候出现莫名其妙的问题。

  • 安全的单例
> 更好的单例解决方案是什么?
*** 简单的单例模板:
template < class _Type >
class singleton
{
public:
    static _Type* get_instance()
    {
        // 通过观察汇编代码,static 变量初始化在多线程下并不安全,
        // 多个线程同时首次调用 get_instance,可能导致 instance 被初始化多次
        // 所以,强烈建议在进入程序时显式调用一次 get_instance。
        static _Type instance;
        return &instance;
    }
}
推荐在进入程序时,显式调用一下 get_instance
线程安全,dll 被 Load 多次时安全
singleton 的缺点是,对象只在程序退出时被析构,
所以无法控制它的析构时机,不安全!

*** 扩展的单例模板:
template < class _Type >
class singleton_ex {
public:
    static void create_instance();
    static _Type* get_instance();
    static void destroy_instance();
};
安全性最高,但是需注意其特殊用法,要求:
在进入程序时,必须调用 create_instance
在退出程序时,必须调用 destroy_instance
线程安全,即使dll 被 Load 多次时也是安全的。
只给出单例声明的模板,对于具体的实现细节在此不必给出,请自行YY脑补。另,强烈推荐在create_instance用从堆数据动态分配内存并构造(即new操作)单例对象。

(引用)singleton与singleton_ex的对比
一般简单的单子,可以考虑使用 singleton
但是正因为它简单,所以忽略了一个问题,那就是多个单子类的析构顺序问题
如果多个单子的首次 get_instance 调用顺序是不确定的,那么它们的析构
顺序同样也是不确的。如果多个类的析构互相依赖,那么就肯定会存在问题。

所以,当有多个互相依赖的单子时,有两个解决方案:
1.使用 singleton_ex,进入程序时,按照期望的顺序调用 create_instance,
  在退出程序时,按照相反的顺序调用 destroy_instance。
2.使用 singleton,进入程序时,按照期望的顺序调用 get_instance,这样可以
  保证在 dll 被卸载时,多个单子按照与构造相反的顺序被析构。

所谓的“进入程序”,在 Dll 中,就意味着 DllMain 函数中的 DLL_PROCESS_ATTACH 分支
所谓的“退出程序”,在 Dll 中,就意味着 DllMain 函数中的 DLL_PROCESS_DETACH 分支


所谓的“dll 被 Load 多次”:dll 中的单子会面临一个问题,例如某个进程中,dll 被多
个模块分别 LoadLibrary 多次。因为单子的实质是 static 变量,故在整个进程中只有一个,
这可能是设计者期望的,也可能是设计者不期望的,所以必须要注意。
singleton_ex 中的 create_instance 和 destroy_instance 就设计了 _ref() 来处理被
多个模块多次调用。当然,singleton 不存在该问题。
>>>>> 对于更加牛逼的单例实现方案,参见Loki库的Singleton。还有,可参考我之前的另一篇关于单例的文章“单例安全性”

(完)

2013年2月27日星期三

Fwd: Android(程序)性能分析 Traceview



Android(程序)性能分析 Traceview



  • 介绍Traceview
     “Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形界面的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。”
     Traceview程序是(Eclipse)android开发环境自带工具存在...\android-sdks\tools\;
     Traceview图形界面如下: 
     
图1. Traceview界面
   

    •      a. 时间轴面板
          显示不同线程的执行情况,线上有不同颜色部分是代表线程执行不同函数。右上角显示时间轴的时间总长,左上角显示当前选中时间点的性能数据。
          注:在图形上点击鼠标拖拽就可以有放大效果,恢复原图只要双击最上面的时间轴横线即可。


    •      b. Profile面板
          纵轴显示程序执行到的不同函数。横轴显示对应函数的性能数据,包括这些字段:Incl Cpu Time %,Incl Cpu Time,Excl Cpu Time %,Excl Cpu Time,Incl Real Time %,Incl Real Time,Excl Real Time %,Excl Real Time,Calls+RecurCalls/Total,Cpu Time/Call,Real Time/Call。
          大体上介绍一下以上字段含义:
          Incl是Inclusive(包含的),表示该函数的调用包括所有子函数的调用。
          Excl是Exclusive(独有的),表示该函数的调用仅包括基本操作,不包括子函数的调用。
          Cpu Time,就是真正在占用CPU的时间,Elapsed Real Time = CPU Time + Wait Time。详细参考http://en.wikipedia.org/wiki/CPU_time
          Real Time,就是时钟计时的时间(时长)。
          "Elapsed real time is always same or more than CPU time for computer program which use only one CPU for processing. If no wait is involved for I/O or other resources, elapsed real time and CPU time are very similar."
          %,占有的百分比。
          所以,字段“Incl Cpu Time %”就表示对应函数的Cpu Time在整个时间轴的函数调用中占的百分比。


    •      c. 搜索框

     搜索框根据函数名称搜索显示对应的性能数据。

还有,可以参考Traceview 官网说明 http://developer.android.com/tools/debugging/debugging-tracing.html


  • 抓取分析数据
     上面内容介绍了Traceview工具,光有工具而没有分析数据,哪来的性能分析。所以这部分内容讲述抓取分析数据。
    该部分说明如何抓取分析数据,即创建分析数据文件(Trace File)。其方法有三种:

    •      1. 使用Eclipse的DDMS功能
         该方法是最简便也最实用,没有之一。而且不需要去修改代码也不管程序是否有读写SDCard权限(如方法2)。具体操作如下:
          a. Eclipse切换至DDMS页面,选中需要分析的程序(如xlwireless.wirelessadhocnetwork),点击右上角按钮“Start Method Profiling”,如下图:

          
图2. DDMS启动Traceview

          b. 停止操作时点击同一按钮,则Eclipse会自动弹出中Traceview图形界面,直接显示了Trace(文件)的分析结果。
          c. 若想保持分析数据(trace文件),只要操作Eclipse菜单File -> Save As ... 即可。
          的确是实在太简洁的操作吧!

          注意:该方法不支持Android 1.5设备,Android 2.1或更早版本需SDCard机器权限,而Android 2.2之后即使没有SDCard也行。(引用自官方说明)
    • If you are using DDMS, Android 1.5 devices are not supported.
    • If you are using DDMS, Android 2.1 and earlier devices must have an SD card present and your application must have permission to write to the SD card.
    • If you are using DDMS, Android 2.2 and later devices do not need an SD card. The trace log files are streamed directly to your development machine.


    •      2. 使用Debug Class代码添加功能
         MainActivity的OnCreate方法添加:
  Debug.startMethodTracing("xl-adhoc-trace");
         MainActivity的OnDestory方法添加:
  Debug.stopMethodTracing();
         或者,你也可以换成在MainActivity的OnStart与OnStop方法。有人出现这样情况:“但是在实际的测试时发现这种方式其实并不好用,因为通常情况下我们的activity的onDestroy()是由系统决定何时调用的,因此可能等了很长时间都不会得到这个trace文件。因此决定在onStop()中来调用Debug.stopMethodTracing()。这样当我们切换到其它activity或者点击home键的时候onStop()就会被调用,我们也就可以得到完整的trace file。”

        使用该方式获取trace数据需注意:程序须有SD卡读写权限,当然还有代码权限。
        程序运行结束后,会在SD卡下生成对应trace文件(如xl-adhoc-trace.tracing),使用adb pull命令拉取trace文件或其他可视化拷贝都可以。


    •      3. adb 命令行启动
        命令如下:
         adb shell am profile start
         adb shell am profile stop
        但该方法没有去做过尝试。



  • 分析性能
     工具 + 数据 = 分析结果

     通过已保存有的trace文件,用命令行启动Traceview分析程序性能。
     1. 把Traceview目录添加到系统的环境变量Path,如c:\users\<user-name>\android-sdks\tools\;
     2. CMD命令行:traceview  ***.trace (注意:全路径的trace 文件,否则可能不行)。
     3. 自动弹出traceview图形界面,通过这个图形界面就开始分析程序的性能。

     结合图形,做简单的示例分析:
     a. 日志版的自组网程序刚启动时间(2s左右)的性能结果:
         
         从上图分析结果:打印日志的逻辑占了程序性能很大比例。

     b. 非日志版分享文件时的性能结果:
          
          从上图分析结果:可以优化的地方包括Wifi列表更新操作的refreshWifiScanResult,文件分享(发送方)的onRequestFileRange。


  •      具体函数的分析
          针对分享文件数据(上图的)详细分析一下,查找refreshWifiScanResult与onRequestFileRange函数在具体地方占用其性能比例在哪里?
          见下图显示,用红圈标注出了性能的关键地方。
          
          
          
          

     
(完)

2013年2月26日星期二

Fwd: 2013春节故事2(图文)

2013春节故事2(图文)


  • 溪边洗涤.逝去的农村生活习惯

20130207 往外公家,路过小溪,在拱桥上看到桥下一位不识的老妇在溪边洗衣,竹篓、木槌、肥皂。顿然,感慨这种农村以前的陈旧生活习惯,小时候比较常见农村妇人在溪边洗涤,而随着生活水平提高妇女们早已方便在家洗涤。久违这样的画面了。


  • 奖状.向五老同志致敬

20130207 "革命传统发扬光大,四化建设再展宏图",外公的奖状,其年纪比我大。外公曾说过以前他是某团重要通信员,后来回家与外婆结婚就没有再回去参军也就没了更好发展了,一直在老家当农民(村干部),再后来都成了地方的高级领导……是不是说,那年代的淳朴的战士,或许现在有人说憨厚无知,今非昔比,如今物欲横流。

  • 枯黄芭蕉叶.季节的痕迹

20130209 (图,外公家门前的枯黄芭蕉叶)十月那会鲜绿的芭蕉叶,短短数月,如今枯黄凋零。岁月,一把无形杀猪刀。冬天已来过,留下了烙印,春天还远吗?


  • 残墙断壁.岁月的痕迹


20130209 (残墙断壁) 外婆家门前的"残墙断壁",谁说岁月无痕?小时候还是一座完好的小土(圆)楼,二十年前的一场火灾狠狠摧残了它,再经过人们这么多年的摈弃,如今这般只剩一面断墙...


  • 桃花朵朵开.好运相随


20130212 (图,桃花花开好时节) 春风习习,桃花朵朵开。看,春天的脚步已悄悄到来...


  • 鸭子与炮竹碎纸.新年氛围


20130212 (图,鸭子与炮竹碎纸) "春江水暖鸭先知"人过年,它也过年,新年快乐!


  • 乡村画面.自然美


20130212 一幅乡村景色画面。在乡村,这样的景色很自然而常见,美。黑云、白云、一线蓝天、群山、雾气、水泥路、一条公狗……


  • 红艳艳三角梅.红红火火


20130214 某伯伯院里的三角梅,正是花开好时节,红红火火。补充(20130216):刚好,那天是情人节,都过了两天了,我才知道,真是无情人便空情调了!顺祝新年好运,桃花朵朵开。


  • 祠堂祭拜.光宗耀祖


20130213 我在老家祠堂祭拜,纯属打酱油般摆摆Pose!"光宗耀祖"
20130213 中午,父亲把我叫到单独的地方,带着比较严肃表情说:"前天晚上我做了个梦...就想你这几天还是不要出门了好!",我被惊讶到了,他没具体说什么梦,我也没再问什么但大概明白意思,就以简单的"嗯噢"答应了他。正好也就不再考虑这两天外出游玩的打算...好像从来没直面过父亲迷信的一面,唉天下父母心,顺其心意,彼此安然。顺祝新年一家幸福安康! 


  • 公路上2B大兵.童趣无邪


20130213 年度最佳2B小弟,大马路上冒充大兵,话说装备齐全!

  •  翠绿的嫩叶.茁壮成长


相濡以沫或相忘江湖,也就就那么一念之间。


Fwd: 2013春节故事1(图文)

2013春节故事1(图文) 


回家车票.过年回家难能可贵
20130205 过年回家汽车票,深圳回厦门而路过漳州即下车回家。


  • 回到漳州.蹊跷的故事 
20130206 今天漳州的雾气真大,能见度估计不超过50m,直接导致高速封路了,汽车半路下高速走国道了,这事正好帮我促成一个蹊跷。该用何种心情表达呢?暗自偷着笑说"运气有加"。蹊跷...
放假回家,买的回厦门车票,坐过几次都可在漳州下车。不知何故这次情况有变,俩司机都说不行了就不让下了,苦求了也没用,人家态度还不友好(希望高铁顺利开通吧还有争取自己早日有四轮的)。算了死心了就麻烦点呗,心想"到了厦门再折回家吧",然后安心睡...六点半醒来一看,居然下高速了??
 
 



  • 回到漳州.我在姑妈家
20130206 姑妈家,香榭花都。
 



  • 锯木头.孝顺的外孙

20130206 回到老家芦溪那天傍晚,探望外公,老人家今年八十七,我从他手中抢过锯子,在外公家帮忙锯木头。
 


  • 微波肉肠.乡村过节美食

20130206 晚上家里帮忙老妈在家坐肉肠。农村家乡习俗,过年挨家挨户都做自己的肉肠,原材料肉、番薯粉、蒜、高粱酒、胡椒等其他调料。其实,比较简单但美味,尤其刚刚正数出炉时候,不过吃多了当然也会厌的!



  • 打鸭血.过节打鸭血打鸡血
20130218 (图,打鸭血过年回家,各种打鸡血打鸭血的,满满的,老家的习俗杀鸡宰鸭的。大年三十、春节,正月初九,元宵都是老家农村在大节,节前的一两天到处流行各种打鸡血,打鸭血。不要说残忍,^_^ ...



  • 贴门对联.一帆风顺蛇年大吉

20130209 除夕,过大年贴春联。图,堂弟阿辉贴横批一帆风顺。去年开始就过年贴春联的差事就开始交给阿辉阿升两小弟了。以前十几年时间都是我跟阿森在忙活这事,曾经有玩得开心也有枯燥无味。




  • 窗户对联.浓浓过年气氛  

20130211 正月初二出门做外甥外孙探亲,初二探亲是悠久习俗。图,小窗户的小对联,农村老人家(外公家)的春节气氛。

2013年1月30日星期三

玉帝帝国衰亡史(转)

转《西游记》的豆瓣一书评,是最近在豆瓣上看到的,好像是最热门(之一?)的一帖
看完(评论)之后,倍感《西游记》乃一部巨著啊。评论内容主要围绕它乃仙界,佛界,三清系统(道家)斗争的一场巨大阴谋论。

呵呵,刚好最近工作之余,我稍微重温了《西游记》的一些故事章节。所以,借此机会侃侃而谈一两句,如下:
(个人浅见)其实嘛,关于《西游记》 ……
表面看,师傅四人西天取经的故事,神采而励志。
深点看,仙界,佛界,三清系统博弈的故事,阴谋与险恶。
更深看,借助神话揭露与讽刺现实丑恶的故事,腐朽与斗争。

注:以上的“现实”,可以代指写书那久远年代,额或许也可囊括一些当代的东西。

好了,回到开始说起的那篇评论吧……如此有趣而尖锐的评论不该错过呀。所以,特此转发评论如下:
------------------------ 转载开始 ------------------------
History of the Decline and Fall of the Yudi Empire    (译名:玉帝帝国衰亡史) 

  ——孙悟空先生访谈录(未删节全文翻译版) 

  问:你好,孙先生。 
  孙:你好。 
  问:孙先生,大家都知道您是西天世界最负盛名的军事家,所以对您突然流亡基督教世界感到很奇怪。您可以说一下大致的理由么? 
  孙:很简单,西天世界是如来的专制帝国。基督教世界现在是多个教会并存,个人自由有充分保证。我是来投奔自由的。 
  问:您能具体说说么?据我们了解,您在西天世界的爵位是‘佛’,应该享有很高的自治权。 
  孙:嗯……这个问题说起来很复杂。就这样说吧,西天世界本质上是建立在如来的独裁之上的,如来的地位又是通过阴谋和各种拉拢手段来巩固的,所以非常的黑暗。你们千万不要被他们表面上的宣传所迷惑。比如说,你刚才说我是最负盛名的军事家,表面上看,我曾经是西天世界军委副主席,国防部长,但是,这其实是一个各方面妥协的结果,和我本人的战斗能力不成正比,我本人也常因为夹在各种势力之间,而战战兢兢,如履薄冰啊。 
  问:您刚才说您战斗能力和您的职务不成正比,您的意思是…? 
  孙:我的意思是,我能力很弱,这是非常明白的一个事实。 
  问:但是,您当年曾经率领花果山反抗组织打败过玉帝帝国军,并最终瓦解了玉帝帝国对东胜神州,也就是现在大中华区的统治啊。您是不是太自谦了? 
  孙:玉帝帝国军不是我打败的。 
  问:啊?但是,据我们DNN的纪录来看,您在第一次花果山战役中,不是彻底击败了玉帝帝国军么? 
  孙:你说的那个第一次花果山战役,根本就不是真的打仗。 
  问:您能更具体些么? 
  孙:玉帝军当时的总司令李天王,根本就没有想要打仗,据我后来的了解,他在那个时候就已经在私下和如来接触,讨论武装政变,投向如来的事宜了。 
  问:这个消息非常的震撼阿,孙先生。您有把握您的消息来源么?如果您说的属实,这将会改写仙界的近代史。 
  孙:当然有把握。第一,他的二儿子,就是木叉,就曾经在观音姐姐那里做事,我有确凿消息,战前观音姐姐把他派到玉帝军紧急磋商。还有,你看那个巨灵,就是一个小军官,李天王派他带一个小分队过来,明显是装样子的。那个时候我们有6大反抗组织,72洞妖王,全部都聚集在花果山前线,明显他就是来送死的么。 
  问:那么哪吒将军呢?后来您和哪吒将军的决战呢?您不是取得大胜了吗? 
  孙:记者先生,说实话,我认为我和哪吒将军之间打得那场仗,完全是哪吒将军故意败给我的。论部队的士气和指挥官素质,哪怕是个人战斗能力,我和哪吒将军都不分彼此。 
  问:但是,哪吒将军的回忆录说,您是他军事生涯中唯一一个不可战胜的对手。 
  孙:记者先生,你想,哪吒是李天王的儿子,那个时候又是李天王的总参谋长,他的行动,完全是依照李天王的指示来的。我举个例子来说,哪吒和二郎神的战斗力,应该不相上下吧?我和二郎神的战斗,就是打败的,里面的窍开你应该知道了吧? 
  问:那二郎神为什么能在战斗中打败您呢?他不是李天王的将军么? 
  孙:哈哈。二郎神是玉帝的亲戚,记者先生,您不会连这个都忘记了吧?还有一点就是,二郎神一向都是地方军事寡头,李天王从来都管不到他的。 
  问:那么说来,为什么在玉帝帝国崩溃的时候,二郎神不能起作用呢? 
  孙:这个问题问得好!记者先生,你想,在第一次花果山战争之前,二郎神都是干什么的?他是地面军军区的。第一次花果山战争之后呢?他成了天宫军的。但是,天宫军就是李天王的私人部队,又是就在李天王眼皮底下,二郎神能干啥? 
  问:您的意思是明升暗降? 
  孙:对的。不仅是明升暗降,而且分寸把握得非常好。你想,我做战俘本来就不可避免,但是,在二郎神马上要得胜的时候,我军突然遭到老君的金刚型导弹袭击,这是为什么? 
  问:为了占功? 
  孙:不错。二郎神要是在第一次花果山战争中独揽战功,玉帝就有理由把他提拔为帝国军总司令,那么,李天王就不能做内应了。 
  问:等等,孙先生,您的意思是,老君老皇爷也是这个阴谋的一部分?但是,老君是帝国太上皇,他没有理由这么干吧? 
  孙:太上皇?哼哼。老君很早以前就被架空了。玉帝和他又没血缘关系,香火财政收入老君根本就分不到多少。反而是帝国崩溃以后,根据释道分治协议,老君可以独得道家香火,玉帝小朝廷的开支必须从三清衙门领取。你想,这里面多少利益在里面啊? 
  问:您的意思是,老君复辟是通过两次花果山战争进行的? 
  孙:也不尽然。那个时候佛教东传,西天的势力扩张的很快,所以版图需要重新规划。我认为,即使老君不参与这个事件,他也可以分一杯羹,至少,不会比以前差。 
  问:但是现在老君还是道教联盟主席… 
  孙:是的。通过花果山战争,老君事实上是在对西天展示实力。据我后来了解,那时,西天原来派遣的是观音姐姐的净瓶导弹部队,但是,你知道的,一方面观音姐姐和我的关系……还有一方面,就是老君坚持使用他的金刚型导弹部队。 
  问:对了,孙先生,关于您的私生活,我们的观众也很有兴趣。您可不可以透露一下,您和观音女士的近况? 
  孙:(凝视远方)观音姐姐也是受害者… 
  问:对不起?您是说您的突然流亡给观音女士带来了政治压力? 
  孙:你能不能在正式发表时删除这一段? 
  问:可以的。我会在定稿前发给您,您可以把不适合的内容去掉。 
  孙:那就好(如释重负状)。你知道,观音姐姐在西天势力正式开始瓜分东胜神州区之前,就已经在东胜神州的人界和仙界有影响力、有独立的香火收入了。我那个时候就劝她,不如独立,她不肯……唉。你看,后来如来果然把她架空了,还取消了她的独立香火权,连吐蕃的香火收入也没收了,把她软禁在普陀山……你肯定你会把我上面说的删掉? 
  问:孙先生您不用担心,我们做新闻有职业道德的。 
  孙:好的……我们刚才说到哪里了? 
  问:您说老君通过两次花果山战争夺取了主导地位。 
  孙:对的。实际上,我认为,两次花果山战争本来就是老君的策划! 
  问:您这样说是不是有点危言耸听了? 
  孙:怎么会呢?绝对没有的。记者先生,你知不知道花果山战争期间玉帝军队和反抗军的联络官是谁? 
  问:太白金星啊。 
  孙:正是!你想想,太白金星啊,启明,太白主杀伐,这是小孩子都知道的,为什么在花果山战争期间他一直主张和谈呢?记者先生,你再去翻一下玉帝朝廷的会议记录,关于和谈以后我本人和反抗组织的待遇问题,也是一直由太白金星在操弄这个议题的。就是因为这个待遇问题,我们反抗组织遭到了不公正的对待,所以才会有两次花果山战争啊! 
  问:这难道是因为太白金星是属于老君的人? 
  孙:不错,他就是三清系统的人!事实上,玉帝下野之前,政教分离原则已经在玉帝朝廷里不能维持了,到处都有三清系统的人,以及西天派遣到玉帝朝廷的内应。比如说,玉帝的内卫部队,四大天王,就是如来的老同乡。在西天攫取了东胜的大半香火之后,他们马上摇身一变,变成了西天国防军的将军! 
  问:孙先生,那样的话,您如何解释花果山战争反抗组织的正义性?据我们DNN的历史学顾问介绍,花果山战争完全是由于玉帝朝廷垄断了帝国的仙界晋升权,使得广大凡间修行者无法进入仙界。即使进入了仙界,也不能得到重用,所以才使豪强并起…… 
  孙:(打断)记者先生,你这个说法只有一部分对。连我们水帘洞共和国军在内,7支部队,再加上72个洞主的独立游击队,你认为怎么可能在玉帝帝国军的眼皮底下集结? 
  问:难道不是因为孙先生您高超的个人魅力和卓越的指挥能力? 
  孙:哈哈,记者先生,您就不要给我戴高帽子了。7支部队,其实里面两支最有战力的分别都是老君和如来的直辖部队。你看,大鹏王,就是如来的亲舅舅,狮驮王,是三清系统内卫部队,归太乙天尊管辖。再说,花果山就那么大地方,我自己的军队还要艰苦奋斗、自给自足,一下子来那么多兵马,给养如何保证?还不是靠外部势力?名义上,各个大教团自愿供给给养,但是你能保证这背后没有under table 的交易?你想想战后传教垄断权是怎么分配的,不就明白了吗?我当时虽然大概知道背后的推手,但是那个时候年少啊,too simple, too naive啊……所以说,之所以反抗组织可以迅速扯起大旗,完全是因为老君和如来的大力支持。 
  问:孙先生,那样说来,您打的实际上是一场代理战争?那您能不能透露一下,为什么如来,按照您的说法就是在利用花果山战争迫使玉帝接受西天宗主权和驻军之后,马上就把您投入监狱呢? 
  孙:这里面有两个问题。第一个,他要掩人耳目,所以如来最好巴不得把我马上灭口,可惜他做不到,这是因为,玉帝虽然向西天屈服了,但是如来不可能马上派部队进驻。这样一来,要灭口,必定要先把我送到军事法庭——我名义上还仍旧是齐天大圣,至少在法理上和玉帝是帝国的共主么!但是,一送到军事法庭,资金、人员这些东西,不久统统曝光了?所以,如来的策略就是无限期关押在五行山监狱,这个战后由如来一手建立的监狱其实就相当于关塔那摩,虽然位于东胜地区,但是玉帝根本管不到。第二个么,问题还是出在法理上,因为我战前是帝国的军事将领,那么,花果山战争就是一场内战,如来的干涉就变成了干涉他国内政,这样不就和他自己宣称的不干涉主义矛盾了么? 
  问:没错,孙先生,我国的仙际法专家就是这么说的…… 
  孙:所以说啊,如来只能以关押恐怖分子的名义,把我无限期扣留。这样子,他才能名正言顺的以反恐名义来瓜分帝国在东胜的香火!就连我后来的获释,也与此有关…… 
  问:是的,关于您后来的获释,这也是我们的观众急于了解的。我们知道,第二次花果山战争结束的时候,西天已经玉帝帝国变成附庸了,但是,为什么时隔500年,如来会同意把做政治犯的孙先生您从五行监狱释放出来呢?这是不是说明您刚才的说法有误呢? 
  孙:这个么,当时我也很奇怪的,直到我再次遇见东海龙王,才弄清楚其中关节。 
  问:您是说,您传记里写过的,您去东海看三进履画的那次? 
  孙:没错,你记得很仔细么。 
  问:孙先生您是说这里面还有别的含义? 
  孙:嘿嘿。记者先生,你知道唐僧取经故事发生在什么时候么? 
  问:孙先生,这个问题小孩子都知道啊。唐僧取经当然发生在唐朝啊。 
  孙:好了,记者先生,你不会忘记了,中土的唐朝,印度的佛教势力开始衰退,西天的财政收入开始变得依赖于东胜区。 
  问:孙先生,我明白了。东海龙王的意思是,西天和老君势力的争夺,已经类似于中国历史上的楚汉之争了,所以需要您这样像张良一样的人物? 
  孙:说我是张良是抬举我了。记者先生,你要知道,在唐朝的时候,老君曾经试图在法理上确立三清系统的统治权,使用了托梦这种下三滥手段,迫使人界统治者提升三清系统的主体地位。但是,结果你也知道的,一方面从合法性角度讲,玉帝帝国还是东胜天庭的法理正统,这是绕不开的,另一方面,三清系统以前都是干政工工作出身的,所以,不仅地方大员不买账,天界的实力人物也不买账!但是,这个时候,西天的形势也很差,特别是印度次大陆香火收入锐减,中土的部分地盘又遭到老君蚕食。 
  问:所以您的作用就体现出来了? 
  孙:是的。如来就是在这个条件下发现了我的利用价值。因为我是齐天大圣么,是玉帝帝国的两寡头之一,在法理上,只要以我的名义,那么对玉帝帝国的任何行动都是合法的。 
  问:就像小活佛? 
  孙:没错,记者先生,你理解得很对。东胜人界有一句俗话,叫做‘挟天子以令诸侯’,就是这个意思。如来要把统治重心东移,就要借助玉帝帝国残留的统治权威,但是,玉帝本人和他的朝廷,对如来本来就敬而远之,没有办法,他才能来找我。 
  问:孙先生,那么,您是说,您和如来之间达成了某种……协议? 
  孙:没错,记者先生,你放心好了,我不忌讳投降这个词的。你要理解,一个被关押了五百年的政治犯,想要自由的心情是多么的迫切啊。你想啊,我的师傅是伟大的犬儒主义仙人,菩提祖师,我为了自由,连师傅都可以重新认一个丝毫不值得敬重、出身可疑的陈姓和尚,连这样苛刻的条件都接受了,还有什么不可以接受呢? 
  问:孙先生,您能这样坦率,实在是太好了。那么,您能谈一下您在之后的取经过程中的实际作用吗?因为据您的说法,似乎这里面的疑问很大。 
  孙:是的。所谓的取经,其实就是剿灭地方豪强、震慑天界巨头和老君,从而达到如来一统东胜目的的幌子。说取经,连三岁小孩都骗不过,就这几部书,我一天之内,就能来回搬个它几十套了。记者先生,你再看看取经的路线,都是绕弯的,搞什么啊,又不是长征打日本鬼子!明显就是要故意经过这些人的地盘,再找个借口打击他们么! 
  问:但是,孙先生,您也知道,最后西天并没有能够统一东胜,相反,是三清系统和玉帝帝国的其他重臣实行了重组,代替了玉帝帝国…… 
  孙:是的,我认为,如来在这一事件上非常失败,就是捞过界了,引起了仙界的反弹。如来以我和取经的名义,疯狂实行打砸抢,对道家系统仙人的代理人们实行迫害,最后道家仙人反而认识到了软弱的玉帝朝廷无法依靠,团结起来和三清系统实现了香火共享。最终,反过来迫使如来撤回了他的人界代理人。 
  问:您说的是狮驮国事件? 
  孙:对。狮驮国事件是一个分水岭。首先,狮驮国是西天在人界的前哨据点,他在编制上直接隶属于西天,当年花果山战争的大鹏王军,就是来自于这里。如来被迫取消狮驮国,这是东胜群仙直接施压的结果,也标志着如来的扩张到此为止。其次,狮驮国事件也是统治东胜仙界长达万年的玉帝帝国最终灭亡、被道教联盟取代的标志。 
  问:孙先生,那您对玉帝帝国是否抱有留恋呢?毕竟,您是见证过玉帝帝国最后辉煌,并且,您的个人遭遇与玉帝帝国的最后一段日子有着密切的关系。 
  孙:往事不堪回首(停住)。玉帝帝国的灭亡,是墙倒众人推,也是释道两大宗教势力对仙俗政治的干涉之结果,我孙某在很多时候只是看客,或者棋子,作用并非如你们想象的那么大。记者先生,月如霜、最凄凉,其实我最为痛心的,是观音姐姐,她为了帮我主持正义,多少年冷落窗前啊…… 
  问:最后一个问题。孙先生,您对您的传记《西游记》一书如何评价?您知道的,由于西天采取信息封锁,对网络使用金刚盾防火墙,所以我们大多数人对您的了解都来自于这本书。 
  孙:我觉得吧,我的传记作者采取的是春秋笔法,就像你说的,因为西天的信息封锁,还有出版管制,不这样搞这本书根本就通不过西天佛治局、仙闻署的出版审核么。 
  问:谢谢孙先生。谢谢你接受我们DNN的采访。 
  孙:不用谢,向大众揭露真相是我的义务。 
------------------------ 转载结束 ------------------------
(完)