代码改变世界

英语阅读推荐:海明威写作技巧 & UpdatePanel为何失灵

2006-12-15 01:25  Cat Chen  阅读(4518)  评论(6编辑  收藏

Random Clippings作为一个英语阅读推荐栏目,目标是让大家多读好文章,从而提高自己的英语阅读水平,不过却不一定要限制在英文技术文章内吧,所以我这次尝试推荐点别的东西。

海明威写作技巧 (Ernest Hemingway’s Top 5 Tips for Writing Well)

这篇文章来自copyblogger,这是一个有趣的博客,它的理念是好像写广告文案(copywriting)那样写博客,并且向读者推广这种写作方法。因为现在大企业都明白到传统广告的覆盖能力是有限的,而博客上的宣传在一定程度上能弥补这种缺陷,所以纷纷开展企业博客,然而企业博客要如何写才能够达到促进产品销售效果呢?这正是copyblogger讨论的主题。

回到这篇文章上来,文章说的是海明威的写作技巧,文章开篇说到“很多商务人士在面对写作市场目标的任务时第一反应就是‘喂,我可不是海明威’。但说真的,除了海明威还是谁更值得仿效呢。”

"Rather than embracing the flowery prose of the literati, he chose to eschew obfuscation at every turn and write simply and clearly",这句的意思是,海明威每次都选择了避免混乱难懂并且简单清晰的写作,而非拥抱文人华丽的散文。其中"eschew obfuscation"这个词我翻译得很痛苦,这个词常用于英语写作课程上讲解“混乱难懂的写作”,因为而它自身就是最好的例子。

接下来,文章列举了海明威有关高校写作的几个要点:

  1. Use short sentences - 使用短的句子,这是海明威著名的写作风格。
  2. Use short first paragraphs - 使用短的首段,我引用的这篇文章的开场白就是个很好的例子。
  3. Use vigorous English - 使用充满激情的英语,中文应该也是同样的道理。
  4. Be positive, not negative - 要肯定,不要否定。例如使用“经济的”代替“不昂贵的”。
  5. Never have only 4 rules - 永远不要仅有4条规则。海明威其实只有4条规则,而且是他1917年刚刚成为记者时所接受的规则,然而大家都知道4条规则是不够的。

那么到底最后一条规则是什么呢?

"I write one page of masterpiece to ninety one pages of shit. I try to put the shit in the wastebasket."
“我每写一页的杰作,都伴随着九十一页的垃圾,只不过我尝试把垃圾扔进垃圾筐里。”

这让我想起了Dflying曾经有一帖提到“厚积薄发”的,91页的垃圾也算是厚积了,相对于真正能够发表出去的1页来说。写博客也一样,草稿中堆积着不少垃圾,它们的命运通常也就是被删掉,或者其中只有很少一小段能用于另一篇发表的文章,这样才能保证发表出来的质量。

UpdatePanel为何失灵 (What's up with UpdatePanels and how come nothing works)

这篇属于提高性质的阅读训练文章,我不会详细解释,但要说清楚如何以最快的速度扫过去抓住你要的信息。

首先看一次各小节的标题,有讲Atlas CTP和ASP.NET AJAX Beta,估计这是介绍一个Atlas功能改进的。因为改进有很多所以先看第一小节Intro,也就是简介。"The biggest change ...",提到“最大的改变”,这应该就是这篇文章主要内容了,要仔细看后半句,"related to script registration during async posts",“和异步回送的脚本注册有关”,这时候你已经抓到文章的中心了。如果你已经对这方面的技术有所了解,那么你就很清楚接下来要看的是什么了。

然后看CTP小节,好像阅读中文那样去扫关键的动词名词,你应该看到"... special response writer ... parse the render contents ... look up ... <script> ... <input> ...",也就是有一个特别的Response的Writer,解释呈现的内容,查找<script>、<input>这样的标签。查找来干什么?当然是修正了,再结合技术背景知识,你就会想到UpdatePanel更新时它并不知道新发来的页面中的某一个脚本是否要执行,因为原页面已执行的脚本也会重发,但页面没在浏览器中重新呈现,接着你就可以估计这个处理与此有关。

文章既然说是改进,肯定是因为这个处理无法做到十全十美,往下看Beta小节。"... overcome problem ... blindly reexecuting script ... we came up ... explicit registration ...",要克服问题,什么问题?盲目重新执行脚本的问题,我们通过显式注册的方式。好,英语理解过程中断,然后再把你的技术背景调出来思考,显式注册脚本也就是我在代码中明确声明哪些脚本是这次异步回送后要客户端执行得啦,这确实是个解决盲目重新执行脚本的好办法。"... UpdatePanel ... known exactly ...",UpdatePanel能够准确知道(哪个脚本何时执行),这证明上面通过技术背景的猜测没错。

看到调用代码的对比,这应该是文章中最容易看懂的部分了。无论你是否发现改进后的脚本注册方式多传递了一个this,文章后面都会将此指出来。后面的部分我就不解释了,你可以尝试用上面说的方式去阅读,也就是抓关键字,然后结合你的技术背景来理解,有时候你的技术背景能够对阅读提供很大的帮助,所以千万不要一看到英文就抓字典然后扎到单词堆了免去了。

交互式Ruby教程 (try ruby! (in your browser))

这属于超值赠送部分,如果你仅仅看到标题而不点进来看就错过了哦。希望以后不要错过这类好东西的话,我还是建议你订阅Cat in dotNET,这样你都能够看到全部内容。如果你使用Email订阅的话,某些邮箱可能会接受到乱码的更新邮件,所以我建议你使用GMail或Hotmail订阅。

这是一个很好的Ruby教程,而且是交互式的,也就是在页面上呈现一个可直接输入Ruby代码的控制台,然后你可以随着教程一步一步做下去。教程的文字说明通俗易懂,也是一个练习英语阅读的机会,别忘记了阅读时要利用你的技术背景来帮助理解。

这期的Random Clippings就要结束了,还记得我希望你注意到的事情吗?第一是“厚积薄发”,第二是“利用技术背景来帮助理解”。下期再见啦。