bookmark_borderTwin Suns

我一直不同意很多人抱怨的:Rebels的卖点就是靠加入电影和TCW里的人物吸引眼球。我喜欢的Rebels一直是Ghost crew的故事。我还记得S1那种space family让我回味到Firefly的感觉。

Twin Suns可能是粉丝最分裂的一集了吧。至少我的感觉是非常分裂。这一集Coffee with Kenobi的Rebels Reaction正巧请了两个观点截然相反的嘉宾,加强了我对这一集非常分裂的感觉。

一位嘉宾是Maul粉,一方面对Maul的结局表示满意,另一方面觉得他出镜太少了,还觉得最后Lars home不是很必要。另一位嘉宾是Luke粉,很高兴Maul终于死了,强调Luke才是Chosen One。大家对这一集都有不满意的地方,但是自己喜欢的地方又都特别喜欢。Tosche Station的Nanci review了这一集评价比较低,比较接近我的观感。大家普遍对于Ezra不满意,而他占了大半集。

而我是Ezra粉,第一遍看完是崩溃的。Dave Filoni一直口口声声说别的角色出场要为Ghost crew角色的故事服务。这一集我感觉他们没有执行好这个原则。Ezra再一次又一次几次三番屡教不改被Maul利用了,而且都不是a big deal,回来认个错就行了。编剧的“我们要关注的是Ghost crew的故事”的承诺执行起来就是给足screen time。然而这一集如果处理得好的话,可以写成Ezra见到Kenobi后得到了成长。我相信编剧总是有能力做到的。在我看来编剧被Kenobi vs Maul的hype冲昏了头脑。然而这并不是Ezra这个角色第一次不连贯。本来,一直倾向于喜欢这种年轻热情充满potential角色的我,一度都喜欢Ezra超过了Luke。看到喜欢的角色没有被好好对待,是fandom最难过的事情了。

然而,当我从Kenobi vs Maul的角度来看这一集,却不得不赞叹这场决斗实在是太精彩,做得太有分寸了。第一印象是觉得打斗太短了。然而这不仅能解释——他俩互相了解得太深了——而且还能顺利过渡到ANH里的打斗风格。战斗的细节都让人赞叹:Maul的taunt,直到威胁到Luke Kenobi才亮剑;”Look what I have risen above.”;Obi-Wan从PT的兰花指form转到OT的form,再转到Qui-Gon的经典姿势;Maul的起跳;Maul用TPM里战胜Qui-Gon的招数进攻(而Obi-Wan用Qui-Gon的姿势迎战似乎是已经看穿了Maul)。这场战斗对两个角色都非常合适。动画的老Ben Kenobi与动画的年轻Kenobi的区别,和电影的区别感觉是一样的。Obi-Wan越老越优雅,越坚定。

这些细节以外,我更觉得,TCW里复活了的Maul在Rebels里的终结,相当于动画从电影那里抢过来了Obi-Wan战胜Maul的情节。对比之下可以看到,TPM里Obi-Wan是带着复仇的情绪腰斩Maul的,而Rebels里他才是真正的Jedi Master,出于defense才动手,到最后,都还对这个杀了师父和爱人的仇敌保持同情心。可以说动画的结局更好;原力给了Obi-Wan一个超越的机会。

这周末就可以看第三季的finale了。好期待。不知24小时之后的我会是什么状态。很有可能是泪流满面抱头痛哭。。。

bookmark_borderThe God of Small Things

跟小伙伴讨论过后补充:

整本书我最大的泪点是Estha对警官说yes。已经发生了那么多悲剧之后,再加上7岁孩子的innocence被夺走。相比之下Velutha的遭遇我感到的更多的是震惊。

同时反观Baby Kochamma,是个从一开始的小虚伪渐渐偏离变得越来越mean。她向警官告发Velutha的时候,把之前游行中羞辱过她的人代入了Velutha,而且越说越相信自己的谎话。这很明显就是虚伪的道路走下去的结果。而被她害的Estha,如果虚伪的话,也可以相信他的伪证。而且那是7岁时被操纵而做的事情。

现实就是,没有人innocent。但我们都可以选择不虚伪,即便那会痛苦。

分割线一下是早上读完后仓促记下的。


1997年布克奖得主。印度作家写的印度背景的故事。

这本书看起来并不是我喜欢的类型,借了中文版想也许可以轻松一点读过去。然而这并不是一本轻松的书。所谓的fiction早已不是仅仅关于情节。中文书怎么也读不下去,就换了英文版来读,至少感觉确定一些了。也许是我对文体的接受度太窄了,我很受不了这个文体,bodering on pretentious.

讲故事的顺序是没有规律的,并不是倒叙或有个主线当中穿插闪回,而是各种不同时期的闪回。有很大一部分是通过儿童的眼光来讲故事。所以有这种语句:

Margaret Kochamma told her to Stoppit.

So she Stoppited.

这种儿童视角从头到尾一直有,出现得太多了我很受不了。

另一个抱怨也许是因为我没有太读懂的关系。书里肯定有很多很多的对历史、宗教、流行文化的reference我没有get。我的抱怨是描写感受太多了,很多地方多于我能感受到的。

That said,后半本书读起来顺利许多,读完后,我觉得这样写出这样一个故事太了不起了。幸好我坚持了一下。

第一次被书里触动到的是Ammu小时候父亲的残忍。这种残忍并不是可以简单归咎于重男轻女什么的。我也不知道怎么说。

父亲对Ammu和Mammachi的残忍给母女两人的影响,也不是简单的反抗or哀其不幸怒其不争。

As she grew older, Ammu learned to live with this cold, calculating cruelty. She developed a lofty sense of injustice and the mulish, reckless streak that develops in SomeoneSmall who has been bullied all their lives by Someone Big.

上面举的例子只是很小很小的一部分。在将关键情节的同时,小说以略随机的顺序讲了这个家里的各个成员的人生各个片段。Mammachi和Pappachi的关系;他们的未婚暗恋神父的姐妹(一点点虚伪就可以build up让人越来越mean);Chacko,以直男癌概括太粗暴了;Ammu,她的两个孩子;Chacko的英国妻子和女儿;比他们家低等的Velutha。

家庭成员之间的复杂感情,习俗的羁绊,还有社会的变革,组成了这个看似略怪异但很丰满的故事。

我也意识到我远不是自己以为的那么宽容的人。在我静不下心读大段描写的时候我会想起以前读《蝴蝶梦》开头部分的时候,也是在读者并不了解故事的情况下,作者抒发了很多情感。为什么后者好读一些?因为我熟悉那难以定义的英国风格的叙事。我需要提醒自己才能让自己同样对待对印度环境的描述。

我很高兴最终这本书让我觉得我支持diversity有更多实际理由,而不是出于坚持政治正确。实际上是出于政治正确让我坚持看到能抓住我的后半本书。

以上是刚读完后很快地杂乱无章地记录一下。。。

bookmark_border理论上没有突破不了的牢笼

最近在想,对我来说,成年的那一刻是大概12年前刚喜欢上星战后不久。那时星战占据了我整个想象力,沉浸在那个世界里。有一天我忽然想起来提醒自己:在我有生之年看到Coruscant那样的未来城市可能性是很小的。人还小的时候,总是会想“长大以后什么都有可能”,那好像是我第一次理智地承认自己的不现实,认清不现实的同时并不放弃。

成年的感觉似乎就是这样,痛苦和快乐,希望和绝望都更深。

曾经有段时间觉得,小时候的痛苦更纯粹,青少年时期的冲动、个性和环境的粗糙摩擦更残酷,而成年人的痛苦会减少(也许是因为未成年的时候以为成年人已经修成了)。事实上,很多时候只是成年人的痛苦无法被完整地顾及,任何无法顾及的痛苦都是没有被完整地对待。你没有过这个关,它就会一直来阻碍你。很多年龄成年的人就缩在一边,用习惯来对付。

如果不逃避,成年的痛苦比儿童的更深。成年后我有过好多让人绝望的自我怀疑、失望。而且,并没有随着年龄增长而减弱的趋势。

很多时候,只有王小波的那句“理论上没有突破不了的牢笼”让我重获一点希望。

bookmark_borderDeep Blue and Teal

为什么随手发一个日志?因为都不好意思发到豆瓣广播。

又买了一支Lamy有什么不好意思的?

厄,不好意思的是我买的原因。那天看到我原来那支有掉漆略心疼,上网搜起了有没有保护套。结果看见这支蓝绿色的,一个念头冒出来就是,蓝色是Ezra,蓝绿色是Kanan,这是他们眼睛的颜色,我一定要凑一对。(其实应该买白色吧orz

IMG_20170227_122644-01_01_20170227125046

还给这篇日志添Star Wars Rebels标签。。

bookmark_border并没有什么组织的想法

在看一个不是很熟悉领域的技术视频(就想见识一下)。不知是什么力量老是在催我记笔记。也许是hoarding的坏习惯,也许是教育留下的。然而我知道我并不太懂的东西,记下来的价值不高。以后要回顾的话,看自己的笔记(假如说我的笔记组织得足够好以后还能找到/想到来找,事实上不是的)不如再找一个专家的解释来重新学习。

所以就想到,虽然学习方法是很重要的,但是关键还是要靠脑力啊。。。

而我的脑力,现在总是觉得力不从心。有一次和读书会讨论问题的时候,想到之前读什么读到说,现代社会,个人很渺小,人对自己工作的结果很隔膜,看到很多不好的事情,总是觉得无力改变。比如说经济问题,可以怪“无形的大手”,这里面所有的人都是被动的。当时读到这个的时候我感觉是醍醐灌顶。我想这段应该是In Praise of Idleness里的。但是问了比我还粉罗素的朋友,她却没印象。。很有可能我记错了。也可能是Fromm的书里的?

就感觉好多印象、想法、概念,在脑中是混合起来了,已经无力理清。

说到In Praise of Idleness,时隔7年重读,感觉当年虽然已经那么惊艳了,如今觉得又比当年懂得多好多。真的好想精读一下,把所有想法记下来。这又回到了记笔记上。读第一篇的时候我把每段话都做了小结。然而重看记下来的那些小结,并没有帮我把思路理得更清楚。

这两年看星战新电影的时候也是。。看完后好几天我都在意识和潜意识层面process看到的东西,时不时就有想法需要记下来。我的观后感博客就是一条一条的,记下来就已经好满足、没有力气继续想了。

这样一想,好像我看星战的专注度远高于看罗素。。。另外,有时候白天工作的时候我会有很多想法。想法就是,冒出来的时候你就知道它是个金子。我有时候会记在小本子上,争取回家好好整理一下。然而到了晚上,逼迫自己进入写日记状,经常写出来的只是:“好晚了我还是洗洗睡吧。”这种时候再去翻小本子找那些金子,有时候会进入不了当时的状态,get不到关键。还有很多时候懒得去翻小本子。。

bookmark_border遗落的南境2,3:《当权者》,《接纳》

在我忘掉之前记一下(剧透):

整个三部曲,情节只有一个:怪异的X区域扩张。第一部《湮灭》从12期勘探队的生物学家视角探索了X区域;第二部《当权者》从新来的主管的视角探索;第三部《接纳》则分别从前局长(pre-Annihilation)、灯塔管理员索尔(pre-Annihilation)、主管、生物学家副本幽灵鸟的视角,从不同的时期来讲更多的关于X区域的故事。当中插有一段生物学家在X区域的笔记。《接纳》中,我们从各个角度来看了X区域,知道了多一点它的属性,但是仍然没有完全解释它。

三本读下来,最喜欢第一本。我好像不止一次喜欢不完整的故事:我最喜欢的科幻小说Rite of Passage,最初读到的是不完整的版本,已经是非常喜欢;另外一本没有解开未知之谜的小说是Rendezvous with Rama。如今的科幻小说和电影非常多,架空设定,或者是真的科幻设定,早就看得不稀奇了。反而我看到这种设定不完整的会觉得喜欢。How you get there is worthier than the destination. 阅读这件事本身是沉浸其中的一段旅途。像《魔戒》这样的作品,我也是从对霍比特人的生活的描述开始才能进入的。如果过程中一直能被吸引,最后还能得到一个神奇的世界,肯定是很rewarding。然而就算没有神奇的大世界,享受过程也是很美好的。特别是,科幻这种类型,就是要打破已知,open our mind to the unknown。

That said,《遗落的南境》三部曲的路程,我并不是都很享受。生物学家no nonsense,不轻信,从小是有点孤僻的孩子,来X区域还想要查自己在上一期勘探后回来变了个人的丈夫。再加上是第一本书,所以读起来挺有兴趣(而且很多地方很惊悚,后两本书好像不那么恐怖了)。第二本书加入了主管这个角色,穿插他的过去,失败的密探工作,外公和妈妈的阴影,艺术家爸爸等等。我对主管这个角色完全没有亲近感,对他没兴趣,跟着他一路走来感觉很累。第二本书还穿插了南境局的其他人。我们看到第一本书里的心理学家其实是局长。新来的主管查看她的笔记、办公室的细节等等。副局长格蕾丝对新主管很排斥,后来我们知道这背后有总部的斗争因素。还有有点不正常的科学家维特比,第三本书里我们看到他其实也去过X区域。第二本书里很多摸不着头脑也没太大兴趣的地方,第三本书都有交待。第三本书里我有点喜欢索尔和局长线。我喜欢这两个角色的关系。然而这点喜欢,也被“为什么不好好研究一下到底发生了什么”给冲淡了一些。索尔讨厌科学降神会的苏珊和亨利,但是在他面对过未知之后,为什么不多盘问一下他们呢?局长担任局长期间,和总部(第一期勘探队唯一幸存者)洛瑞之间有矛盾,但是难道他们不是有共同目标也就是想要搞清楚X区域吗?我很喜欢这个系列里“过去与我们同在”的感觉。但是人物之前的超级不合作我真心看不懂。第一部里,生物学家也是不合作类型,但是她好歹还是把求生放在第一位,读起来感觉合理一些。

另:因为最近我自己写了一个小fic,所以对写故事有点想法。这个想法就是,我还是喜欢以描写细节展开别的东西(情节、议论等等)。你要写的东西在脑子里,该有的细节一定要适时跳出来。

另另:Annihilation将被Alex Garland改编和导演成电影。我很难想象这样不完整的故事被拍成电影。我感觉三部拍一个电影可能性比较大。如果是三本书一部电影的话,我感觉Oscar Isaac大概演(我不太喜欢的)主管。我很喜欢的Jennifer Jason Leigh将演心理学家/局长。目前电影已经进入编辑阶段。但是cast只公布了JJL和Natalie Portman会演生物学家。如果只拍第一本小说的话,那Oscar Isaac大概演生物学家的丈夫(戏份很少而且是个假人啊,感觉不会有什么好看的)。

bookmark_border搬旧文:Rite of Passage

发现自己博客上没有贴。把发在豆瓣上的评论贴过来。(竟然已经是十年前读的这本书了。。06年在科幻世界上读的,08年终于读了完整版。)

我很喜欢这本书。这个故事从一个很少见的角度触动了我。

Rite of Passage的故事从12岁的Mia身边具体的小事说起,说到小小的她的烦恼和快乐,说到她对未来和未知的恐惧。故事的设定是地球消亡之后的人类,部分在它星球上殖民,部分生活在飞船上。飞船人很有理由认为自己比星球人高明:他们保存了地球文明,他们还懂得技术、科学和数学,但是他们的星球人同胞却因为忙于生计已经退化得很蛮荒了。地球的毁灭主要原因是自由生育造成人口过度膨胀,而飞船的空间更加狭小,飞船的政策是严格控制生育,控制着他们的三万人人口不增加。而每个满14周岁的孩子,都会被投放到一个蛮荒的星球上,要靠自己的能力生存一个月,如果能回来,他们就是飞船上的成年公民了,这,也就是非常戏剧化的“成年仪式”。我们的主人公Mia对殖民星球怀着很深的偏见和恐惧。其实她对任何陌生事物都很恐惧,她害怕搬家,害怕离开父亲。于是故事首先围绕着搬家的Mia展开,她渐渐学会摆脱对他人的反感,学会不过于依赖自己已有的资源。

在准备“生存考验”的过程中,Mia身边发生了很多事。我们看到Mia的出发点经常是很偏颇,但是她具有天生的好强精神和自然的同情心,这使她一步一步走向了她自认为正确的方向,而这些方向,经常和她自己原先的相反。

而 “生存考验”期间,一切都和她在飞船上的非常不一样。我们仍然是从Mia的角度看到那些事情的,但是我们能看到,其中很多是超过一个十四岁孩子的理解范围的。Mia还是依赖她的好强精神,度过了可能是飞船史上最残酷的生存考验。这时候,她原本狭隘的小小心灵,终于能包容星球人了。她逐渐一步一步地筑立了自己的思想,自己的世界观。她的心灵一步一步地扩大,一步一步地宽容,但是她一直是一个敏感得有点尖刻的人。最后她不得不开始反对她作为飞船委员会主席的父亲的政治主张。对于这样一个人物的这样一段心路,我真是感到深深的共鸣啊!

这本书的语气非常平实,但很吸引人。整个叙事和讨论的部分穿插非常自然。读来有一种想一直不断地、永远地读下去的感觉,一方面非常想读下面的情节,一方面又非常不希望它结束。

我第一次读这个故事是在2006年的科幻世界译文版上。后来看到很多人评论说这篇小说故事很不完整。(比如开头说了“我现在的丈夫”后面没有明确提到就是Jimmy Dentremont。)我当时天真地以为这样的不完整就是作者的选择,我很满足这个故事被截掉的版本。后来,我在网上看了英文的评论,发现的确提到了我看的版本上完全没有的情节……最后我还是决定买了一本原版来看。

看了完整版之后,我不得不惊呼——虽然情节上,载于科幻世界的版本只剪掉了20%(被剪后看起来还是很连贯),但是由于最关键的最后一部分被剪,整个思想就剪去了70%。整个故事是这样一个特征:越往后面,随着第一人称Mia思想的开阔和成熟,故事的思想和视野也就更broad。看完后最让我惦记的,也是最后一部分尾声。

在作者Alexei Panshin的网站上,他发表了他写这部小说的前后。他年轻时是Robert A. Heinlein的粉丝,他曾经给Heinlein有过一些书信来往。直到有一天他照常第一时间冲去读了海因莱因的某部新作(的广告貌似),他开始怀疑起来。他怀疑的问题是:爱国的热情是否能成为对他国使用那个核武器的正当理由。他把这个问题写信去问海因莱因,这回,海因莱因的夫人代为回信,说大牛在写新书没时间和你通信。Panshin的这种对海因莱因的极度崇拜到不得不反对的态度,和 Mia对飞船的对星球政策的转变是很相似的(而最后的这个转变,才是书中最重要的,从某种意义上来说,前面对小问题的转变都是为此做铺垫的啊!这就是为何我认为原著的思想被削减了70%的原因)。Pashin的这种不断检查既有原则的态度,实在是太深得我心了。

我看到有评论说,该书的政治观过于简单。目前我觉得,有了那些转变,它一点也不简单。多少人抱着固有思想永远不会想到去怀疑它们。这本书获得1968年星云奖的时候,作者 Alexei Panshin只有28岁,我觉得这还是个年轻的年龄,因此我不知过个几十年我再来看,会不会也觉得小说中的观点过于简单。我不知道我以后会怎样改变,但是我知道我会一直改变。

—-

下面是之前发在Goodreads上的评论

I read Alexei Panshin’s Rite of Passage again. For some reason, this story is very close to my heart. It’s a story of a young girl, Mia, living in a floating spaceship, facing the Trial of her society. This Trial is the mark of adulthood in their community of thirty thousand, their ‘Rite of Passage’.

The story began with Mia’s little joys and frustrations. And behind that, she had her fears and prejudices. I always love ‘coming of age’ stories. Usually I just enjoy reading about the growing potential of a young man. But as the story goes on, Rite of Passage becomes much broader than an ordinary coming of age story. I mean broader in the intellectual sense rather than things like epic action with is usually expected of sci-fi stories.

Mia’s growth is a course of continuing discarding her own previous convictions and embracing new. At first She had plenty of reasons to dispise other kids. She gradually came to having peace with this sort of unpleasantness. Likewise, she and other Ship people had plenty of reasons to dispise Planet people. But obviously people as a group comes to a change much slower than an individual does. As an individual, Mia came to her own conclusion of how to deal with planet people. I read with enormous joy about how she became more and more open-minded. All that was required is that she had a vigorous spirit and was naturally compassionate.

I have to say that this change of previous beliefs and gradually opening up the mind is the center of growing up, at least that’s how I have felt. I can’t think of any other fiction that deals with this theme so well. Appearing in sci-fi form gives the story a sense of neutrality, not siding up with anything now in this world. That’s one of the advantages sci-fi as a form can provide, which writers should utilize more.

I even love one of the minor implications of the story. It is implied that living self-content like those in the Ship do, without feeling attatched to their primitive Planet people, the society seems to be going nowhere. Creative activities such as writing a novel, or creating art ceases to happen.

The author Alexei Panshin has put his ‘making of’ this novel on his website Abyss of Wonder. It largely concerns with how he was fancinated by sci-fi because of Robert Heinlein’s early work. And later Panshin had serious problems with them. Panshin says in ‘Robert Heinlein and Rite of Passagethat as a child he read Heinlein and was led to the question, ‘can it be that the present human culture is still in its adolescence phase? do the grown-ups still need to grow up?’. Later he found the answer to those questions is yes as he encountered the problems with Heinlein’s work.

The problems Panshin met was that though the West has plenty of reasons to dispise and feel threatened by the Communists, do they have the right o distroy them by atomic bombs? It’s very like Ship and Planet relationship in Rite of Passage. And in RoP, Panshin made his points more eloquently than I can put here in a review.

Maturity consists of the ability to sort out portions of truth from accepted lies and self-deceptions that you are grown up with. If you never made the effort, whatever you are, you are not mature.

bookmark_border写了一篇文

一天早上躺在床上读了跟的几个博客的”Trials of the Darksaber”的评论。看了那一集之后所有人都爱上了Sabine。我一直希望Rebels的作者能把Ezra的成长写得更丰满一些。然后,各种思绪集中到一起,起床后写下了这个fiction。算是我的第一篇文。

虽然我有过好几个觉得写成fan fiction会很好的点子,但是我的写故事编故事的能力实在太弱。这一篇能写成,我想是因为1)不需要编故事,只是那一集的延伸;2)一直沉浸在星战世界里,有很多细节能在我需要的时候冒出来。

重看的时候发现,他们其实是在外面camp了好几天。所以我的“Ezra回基地放东西”那点plot也站不住脚。不过不管啦(转眼改成那天他们决定回基地)。

下面是文的连接——老少咸宜,和canon无冲突。暴露一下AO3账号。

Ezra’s Revelations (1384 words) by MaraSue
Chapters: 1/1
Fandom: Star Wars: Rebels
Rating: General Audiences
Warnings: No Archive Warnings Apply
Relationships: Ezra Bridger & Sabine Wren
Characters: Ezra Bridger, Sabine Wren, Kanan Jarrus, Fenn Rau
Additional Tags: Post “Trials of the Darksaber”, Canon Compliant
Summary:

Sabine was not the only one who learned a lot from “Trials of the Darksaber”.

bookmark_border意识流工作感想

一直在想要把工作的感想给整理一下。看到这篇文章里写的效率低的开发团队的几个特点/分类,我们公司的膝盖已经戳烂了。(看到“保姆式开发”几乎从不说脏话的我嘴里迸出了卧槽二字。)

工作感想还没整理。现在意识流一篇帮助自己整理。。。

我并不是很想做开发。在逻辑思维方面我比较迟钝。做开发的话我的优点是愿意尝试和不assuming(简直paranoid)。只要有文档和尝试的环境,搞各种script我是没有问题的。我另外的长处是对BI数据库比较有经验。我对Application比较没经验。我们公司的BI产品,还有一部分是application的成分(客户使用界面),想想我在现在公司的5年,最大的收获大概是瞥见一眼application开发,我们公司的开发水准很烂,但看到开头提的那篇文章之后我想我也是得到了一些关于烂的思考。

我喜欢捣鼓script,我更喜欢借用我会技术又会沟通的能力,做一些桥梁工作。工作这么多年来,我见过的人里面,除了极少数人,沟通和技术结合没有我比我强的。当然比我会说话的人多了去了,然而我认为实质的沟通的基础是你要懂你沟通的东西。我也和销售打过交道,有的销售是非常有魅力的人,然而他只负责散发魅力,说实质的东西的时候必须站在他的角度才能沟通。懂数据,懂技术的人,能像我一样沟通的人很少。That said,我加入现在公司的初衷是做这样的桥梁。我加入的是operation部门。我们的operation部门不仅给产品上线、monitor它们的运作,还要保证数据的质量并处理各种客户的咨询。由于我擅长看数据和写脚本,我加入不久就写了一系列脚本帮助monitor我们当时几百个instance(如今已经超过一千个了)。这里对我的技术是有提高的,在之前我只写过ETL的SQL和简单的shell script,连个DB store procedure都没见过。但这家公司的ETL是基于SQL Server的DB SP的,我一边理解产品,一边写出了那些脚本。开发中有些愿意讨论问题的,我也有时候找他们请教。Operation部门工作了两年,我意识到我们产品的问题这么多,其实需要的是开发质量提高。中国办公室的开发老大愿意让我去开发部门继续做更深的技术支持,我就答应了。因为在operation做得再好,也是我已经做了两年的事情了,做得好不再值得骄傲。当时在我看来开发部门有很多事情我可以帮助做好的。比如,开发部门的沟通太烂;大部分开发查数据的技能比我差;大部分开发互相之间都在鸡同鸭讲更不要说和别的部门讲了;大部分开发都不知道operation是怎么deploy和monitor我们的产品的,也不知道客户一般都喜欢干什么。

到了开发部门,我的第一件事是理解release流程。我很惊讶地发现,给定一个特定的时间,在产品环境的某个版本发现了问题,给开发开CR去修复的时候,修复哪些版本这个问题是没有定论的。每一次开CR都需要问release manager,而得到的答复也没有确定的准则。在开头引用的那篇文章里,对此有精确的描述:

配置管理上的问题。对于源代码的配置管理,其实并不是一件简单的事情。配置管理和软件和团队的组构的结构非常有关系。我看到过两种非常没有效率的配置管理,一种是以开项目分支的方式来做项目,同时开很多分支,分支开的时间还很长,导致merge回主干要花大量的时间去解决各种冲突,另一种是N多的团队都在一个代码库中做修改,导致出现很多复杂的问题,比如某团队的改动出现了一个bug,要么所有的团队的功能都得等这个bug被修复才能被发布,要么就是把所有的改动回滚到上一个版本,包括其它团队开发的功能。很明显,软件模块的结构,软件的架构,以及团队的组织形式都会严重影响开发效率。

我们的情况是上面说的很多module在一个库,一个bug会导致所有的无法上线。我们情况的区别是,我们的产品环境压根从来没有回滚上一个版本的功能。很长一段时间我不理解release management对QA提供ETA的要求。ETA方便给客户期待,然而我找QA问ETA的时候经常得到的答复是这样的:如果开发下周二之前把修改提交,那么我们的ETA就是周五。然后周五的ETA就被宣布了。根本不给“开发如果没有来得及修改提交”或者“提交后又测出bug”留余地。

当年我们还有一个非常低级的问题:我们的产品有一个版本号,在部署的server上,代码存在这个版本号为名字的路径下。后来bug越来越多我们变成两周更新一次release,但是版本号不变,这就造成如果不具体看代码你无法知道你面前的版本X是不是最新的版本X。对于DEV和QA来说,只要改好了代码,测试通过,他们就任务完成了——我们deliver了一个修改好的版本X。当时出了一系列问题都是宣布release了但实际上并没有更新到deploy server上。因为DEV和运维之间当时几乎一直在鸡同鸭讲。后来终于认识到需要更新到server上之后,还有很多问题。有些bug需要更新代码后重新deploy,有些bug只要更新代码就好,还有些bug重新deploy后还需要跑一些一次性的脚本。谁来跑脚本这件事一直没定下来。理论上让开发去产品环境deploy是很糟的。但OPS的技术能力有限,让他们跑命令行也经常很危险。还有的时候跑了一次性脚本之后代码没更新,下一次deploy问题又回来了。作为战斗在第一线处理产品问题的我,这样的事情见得太多了,我经常跟老板反应,但是总是‘解决问题更重要’,解决了以后大家就舒一口气又去忙各自的了。

那篇文章里的“保姆式”开发和我们的现状最像。

所谓“保姆式”软件开发就是——我只管吃饭,不管做菜洗碗,就像——衣来伸手,饭来张口的“小皇帝”一样,身边有一堆太监或宫女,不然生活不能自理。这种情况经常见于开发和测试,开发和运维间的关系。很多公司,测试和运维都成了开发的保姆。

我就能看到,很多开发快速写完代码后基本上都不怎么测试就交给QA去测试了,QA一测,我草,各种问题,而只会做黑盒的QA并不能马上就能确定是代码的问题还是环境的问题,所以还要花大量时间排除不是环境问题,才给开发报BUG。很多问题,可能只需要做个Code Review,做个单测就可以发现了,硬要交给QA。运维也是一样的,开发出来的软件根本就没有考虑什么运维的东西,因为有运维人员,所以我才不考虑呢。

我们公司的产品deploy一个的代价非常大,有几百个参数,好多机器需要权限。deploy过程中如果遇到错,需要各种技术能力来分析解决:DB的,java的等等。所以我经常看见开发问QA要环境进行开发。产品环境经常遇到的问题是,你改了一个代码解决了你的问题,但是这个代码在deploy别的类型的instance之后会有问题。当年我做开发的时候非常paranoid(当然因为我技术基础差),我一定要把我想到的所有情况都跑一遍才放心。我们的开发经常会说:“这个改好了让QA去跑一下吧。”,或者在你问他“XXX在YYY的情况会不会有问题”的时候经常得到的答复是,让QA去试试吧。

文章中说的watchdog式开发,我们也是很多。

什么是WatchDog?就是说——为了解决某个系统的问题,我要用一个新的系统去看着它

  • 我的系统架构太复杂,出了问题不好查找。咋办?那就搞个专门的特殊的监控系统吧……
  • 我的系统配置太复杂,容易配错了。咋办?那就加一个配置校验系统吧……
  • 我的系统配置和真实的情况有时候可能会不一性。咋办?那就加一个巡检系统吧……
  • 我的系统测试环境和线上环境有时候会搞混了。咋办?那就为线上环境加一个权限控制系统吧……
  • 我的系统有单点,那就加个负载均衡器吧,负载均衡器的单点呢?那就再加个等价路由器吧……

因为我们的系统很难从整体来把握。整个公司大概只有三个开发能从架构角度了解全局。而其中最重要的一个人,是个asshole。整个公司的人,素质好一些的都在尽力和他合作,素质差一些的整天在骂他。所有人都对他多多少少有点无奈。我曾经被他说哭过好几次。其中有时候的确是我的理解有误,如果我被直接告知我哪里错了,一般我会看我的错误并且觉得很羞愧。但是这个人指出错误的时候从来不说清楚,而且带着很挑衅的不客气语气,说着读不通的英语(印度人的英语其实是很好的,但是他一直散发着一种“我不care发表清楚的沟通”的气场)。

所以呢,开头说了,我来公司的第一件事就是写了个monitor系统,也算是watchdog的一部分,不过这是在产品之外的。我觉得很多真的产品开发,也是对他的整体设计不得要领无法写出integrate到整个产品的好东西,而是尽力保护自己开发的部分,即使冗余也不敢信赖已有的东西。我曾经听一个已经离职的开发经理说过,那个架构师的代码,即使他们看到有可以优化的地方,他们一般也不敢提建议。

虽然我并不下决心想做开发,但是看看coolshell博客,简直觉得振奋。也许我对技术的热情也是有点“希望保持业余兴趣”那样。按照引用的这篇文章,我并不是个合格的开发。我会的技术太少。专攻技术的问题在我们公司的开发中也很突出,甚至明明都是ETL的东西,A开发的东西B就觉得自己没必要去了解。更不要说大部分BI开发不懂java的部分,而绝大部分java开发的SQL水平在我看来简直小儿科。在这个工作中,我也试练了我的学习能力。写SP对我很容易(来自SQL和shell背景);查询MDX对我来说有点难:我按照MSDN上的教程自建了一个cube(当时我要就建cube的权限问题问了一个当时我们的cube专家,他都并不知道根本逻辑,只是建议我都用admin账号)、读了MDX Solutions的前几章;另外学会的是powershell。Powershell我不能完全说学会了,没有官方教程和完整的说明书(MSDN的结构太恶心了,PS的manual是和.NET的混合的),我看了powershell.net上的一个非官方教程,对变量、control flow、function、object等等理解了。但是后来看代码的时候还是看到了我本来不知道的东西。微软的环境很封闭,文档很难懂,依赖微软产品的我们公司应该也是直接间接受了影响。不过PS似乎代表了微软的进步(终于有比较成熟的script语言了)。最近又写了一点点python的脚本。

我愿意学习,也希望在厉害的开发环境工作。然而我更大的能力是沟通和英语水平。我这个没有计算机知识基础的人进入这个行业有一定的巧合,也一部分是因为这个行业发展快,还需要人手。看看我能找到什么机会吧。