<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
  <title>于今夕之何夕，唯读书以自省</title>
  <link>http://bearwhisper.blogbus.com</link>
  <description><![CDATA[]]></description>
  <generator> by blogbus.com </generator>
  <lastBuildDate>Wed, 23 Nov 2011 11:06:01 +0800</lastBuildDate>
  <image>
									<url>http://public.blogbus.com/profile/8/0/9/4185908/avatar_4185908_96.jpg</url>
									<title>于今夕之何夕，唯读书以自省</title>
									<link>http://bearwhisper.blogbus.com</link>
								</image>  <item>
   <title>用Wave完成实时博客发布</title>
   <description><![CDATA[<p>Testing Live blogging using wave

</p>
<p>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript"><!--
google.load("wave", "1");
google.setOnLoadCallback(initialize);
function initialize() {
  var waveframe = document.getElementById("waveframe");
  var embedOptions = {
    target: waveframe,
    header: true,
    toolbar: true,
    footer: true
  };
  var wavePanel = new google.wave.WavePanel(embedOptions);
  wavePanel.loadWave("googlewave.com!w+CiHSaaUqA");
}
// --></script>
</p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F64640567.html&title=%E7%94%A8Wave%E5%AE%8C%E6%88%90%E5%AE%9E%E6%97%B6%E5%8D%9A%E5%AE%A2%E5%8F%91%E5%B8%83">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/64640567.html</link>
   <author>小熊</author>
   <pubDate>Sun, 30 May 2010 09:04:46 +0800</pubDate>
  </item>
  <item>
   <title>如何成为合格的技术传道士？</title>
   <description><![CDATA[<p>Simone Brunozzi是Amazon AWS分部的Technology Evangelist(技术传道士)，在他的<a href="http://www.brunozzi.com/" target="_blank">博客</a>上有一篇<a href="2010/03/05/letter-to-a-technology-evangelist/" target="_blank">关于如何成为技术传道士的文章</a>，在此摘要记录。
</p>
<ul>
<li>了解自己要推广的技术，知道客户的需求，了解你的竞争对手。</li>
<li>做到井井有条，尽量找到将自己与各种活动主办方的联系沟通自动化的方法，并在路上调整、优化这些办法。</li>
<li>学习如何在公共场合沟通，使用强有力的视觉、声音和身体语言。</li>
<li>联系自己的演示技巧，准备学习新东西、新方法。</li>
<li>了解你的观众和听众，向他们展示自己的尊重、人性的一面、激情和沟通诚意。</li>
<li>要做公司的口舌，还有耳朵；灵活使用各种在线工具跟踪客户的意见和看法，构建强有力的关系网。</li>
<li>注意团队合作。</li>
<li>组合使用多种反馈方式衡量工作效果。</li>
<li>学习使用身体语言，学习使用声音，找到自己的风格并坚持下去。</li>
<li>让观众有一个新鲜的体验，展示你的尊重。感觉他们的感受。以最高的尊重对待他们。他们会因此而爱戴你的。</li>
</ul>
<p>在这篇博客中还提供了很多善于演讲和公众沟通的人士的网址，有意者可以深入了解。</p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F61322570.html&title=%E5%A6%82%E4%BD%95%E6%88%90%E4%B8%BA%E5%90%88%E6%A0%BC%E7%9A%84%E6%8A%80%E6%9C%AF%E4%BC%A0%E9%81%93%E5%A3%AB%EF%BC%9F">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/61322570.html</link>
   <author>小熊</author>
   <pubDate>Mon, 29 Mar 2010 23:00:32 +0800</pubDate>
  </item>
  <item>
   <title>Rework阅读笔记</title>
   <description><![CDATA[<p><a style="margin:5px;float:left;" href="http://book.douban.com/subject/3889178/" target="_blank"><img style="border:none;" src="http://img2.douban.com/mpic/s4217614.jpg" alt="" /></a>
<p>&nbsp;</p>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>用了大概4个小时左右的时间，把DHH的这本Rework看完了，同时做了笔记，录于此以记之。 </p>
<p>Chapter First<br /><br />The New Reality: 如今，人人都能开创事业。<br /><br />Chapter Takedowns<br />Ignore the real world: &ldquo;在现实中行不通&rdquo;只是在为不去尝试找借口，与你，想开创事业的你，无关。<br /><br />Learning from mistake is overrated: 失败不是成功她妈，让其他人失败去吧。要知道自己应该做什么，从成功走向成功。<br /><br />Planning is guessing: 计划等于是让过去驱动未来，要学会即兴演出&mdash;&mdash;知道当下最应该做什么，而不是盲目遵循计划。<br /><br />Why Grow?: 很多公司死于过早雇人。&ldquo;小&rdquo;不只是阶段，也可以是目的。成功事业的核心特性是可持续、能赢利，与大小无关。<br /><br />Workaholism：工作狂最愚蠢，不动脑子的工作狂只能创造出笨重的方案，甚至是危机。工作狂会影响其他人的士气，同时自己也将会无法分辨轻重，效率也未见得高。<br /><br />Be a starter, enough with "entrepreneurs": 只要有想法、自信和推动力，任何创建新事业的人都可以是starter，不需要MBA、认证、西装、公文包。。。<br /><br />Chapter Go<br /><br />Make a dent in the universe: 要有改变世界、乃至宇宙的豪情，而不是做另一个copycat。<br /><br />Scratch your own itch:&nbsp; 解决自己遇到的实际问题，你自己知道问题所在&mdash;&mdash;机会所在，你自己可以作为用户&mdash;&mdash;不必等待反馈。<br /><br />Start making something：主意人人有，想法多得是。赶紧动手做，考验执行力。<br /><br />No time is no excuse: 没有时间只是保护自我的借口，很多人只是没有那么想要。。。没有完美的时机，这只是借口。。。 <br /><br />Draw a line in the sand: 前进时要记得自己为什么要做自己在做的事情，还要为其而辩护。不要指望能讨所有人的欢心，要坚守自己的目标，即使减少某些临时的收入也没有关系，因为树立起了更好的形象和品牌。<br /><br />Mission statement impossible: 让空洞无物的企业宗旨去死，真正相信自己做的事情，并以之为生活方式。<br /><br />Outside money is Plan Z: 花别人的钱会：<br />&nbsp;&nbsp;&nbsp; &bull; 失去控制力。<br />&nbsp;&nbsp;&nbsp; &bull; 投资人只想折现，不想打造长远的高品质事业。<br />&nbsp;&nbsp;&nbsp; &bull; 花别人的钱容易上瘾。<br />&nbsp;&nbsp;&nbsp; &bull; 时机太早，通常都是不好的交易。<br />&nbsp;&nbsp;&nbsp; &bull; 只满足投资人，没满足客户。 <br />&nbsp;&nbsp;&nbsp; &bull; 融资超级耗费精力。<br />趁着还没后悔，还是花自己的吧。<br /><br />You need less than you think:&nbsp; 由俭开始，你不需要那么多，慎着花。<br /><br />Start a business, not a startup: 无法盈利的事业不是事业，是嗜好。<br /><br />Building a filp is building a flop: 用承诺策略替代退出策略，思考如何成长和成功。不要把自己的事业拱手卖人。<br /><br />Less mass：轻装上阵，不管是业务模式、优先级、产品、关注点，都会易于改变，最重要的是思维方式。<br /><br />Chapter Progress<br /><br />Embrace constraints: 少是好事，创意从少中激发。<br /><br />Build half a product, not a half-assed product: 伟大从砍掉刚刚好的部分开始。<br /><br />Start at the epicenter:&nbsp; 从应该做的核心开始，倾尽全力，将其做好，未来成功的基础来源于此。<br /><br />Ignore the details early on: 过早执着于细节只会浪费时间和精力。<br /><br />Making the call is making progress: 早作决定，加快进度。<br /><br />Be a curator: 去粗取精，留下最精华的部分。<br /><br />Throw less at the problem: 减少投入，少就是多。<br /><br />Focus on what won't change:&nbsp; 发现万变中的不变。<br /><br />Tone is in your fingers: 别做工具控，想法和内容最重要。<br /><br />Sell your by-products: 注意你的副产品，也许可以卖。。<br /><br />Launch now: 让核心功能提早上线。 <br /><br />Chapter Productivity<br /><br />Illusions of agreement: 去掉抽象描述，Get Real!!<br /><br />Reasons to&nbsp; quit：提问，确保有意义的思考和回答。<br /><br />Interruption is the enemy of productivity: 集中注意力，减少中断。 <br /><br />Meetings are toxic：让无意义的会议去死，好会议要遵守规则。<br /><br />Good enough is fine:&nbsp; 不要过早优化/完美化。<br /><br />Quick wins: 积跬步以致千里，积小流以成江海。<br /><br />Don't be a hero: 如果预先估算出现问题，也不要打持久战、逞英雄。有时三十六计走为上。<br /><br />Go to sleep：好的休息能带来更好的工作。缺少睡眠带来：老顽固、没创意、低士气、火脾气、<br /><br />Your estimates suck: 人类不善于给大项目做估算，解决方法：化大为小，逐个击破。<br /><br />Long lists don't get done: 同样地，化大为小，逐个击破。在设定优先级时，将最上面一个作为优先级最好的任务，以此下推，不做具体定义。<br /><br />Make tiny decisions: 小决策易于调整后果，灵活机动。 <br /><br />Chapter Competitors<br /><br />Don't copy: 只能复制表象，缺乏深层次的理解无法持续，何况总是只能跟在人家屁股后头。<br /><br />Decommoditize your product(Pour yourself into your product)：把自己投入到自己的产品中去，没有人能够复制你的思维方式在产品及其周边服务的投射。<br /><br />Pick a fight: 找到你的敌人，让人们注意到你，点燃人们的激情。<br /><br />Underdo your competition: 减少功能，将其做好。<br /><br />Who cares what they're doing? :用心做好自己，不去管别人，不要让别人定义你的产品。<br /><br />Chapter Evolution<br /><br />Say no by default: 不可能做到让所有人满意，盲目妥协只会给自己带来麻烦。<br /><br />Let your customers outgrow you: 不要被大客户牵着鼻子走，满足最基本、最简单、最下的需求集合。<br /><br />Don't confuse enthusiasm with priority: 好主意层出不穷，当下的好主意过一段时间再看就不一定了。 <br /><br />Be at-home good: 用核心功能留住用户，打动用户，让他们帮你传播。<br /><br />Don't write it down: 重要的功能客户会反复提醒你，不用写下来。<br /><br />Chapter Promotion<br /><br />Welcome obscurity: 在还没什么人注意你的时候，先小范围发布，让用户尝试，这样有助于积累自信和激励。<br /><br />Build an audience: 使用各种web 2.0手段，培养真正关心你、倾听你的用户。<br /><br />Out-teach your competition：让人们从你这里学到点什么，培养他们的忠诚度。<br /><br />Emulate chefs：像大厨一样分享你的成功&ldquo;秘方&rdquo;。<br /><br />Go behind the scenes: 让人们看到你的事业的内部运作，让他们的好奇心培养他们的忠诚。<br /><br />Nobody likes plastic flowers：你不必完美，让大家看到你的问题，看到你在改善方面做出的努力。<br /><br />Press Releases are spam: 新闻稿平庸无聊，采取个人化的沟通方式。<br /><br />Forget about the Wall Street Journal: 小企业没钱，别指望重量级媒体关注你，让利基网站和博客来关注你们吧，发掘社区的力量。<br /><br />Drug dealers get it right: 拿出你最好的功能，让人们免费试用，吸引他们。<br /><br />Marketing is not a department:&nbsp; 你的一举一动都会对市场和客户产生影响，注意与客户相关的一切。<br /><br />The myth of the overnight sensation: 别指望一夜成名，好品牌与顾客的关系是长期经营的结果，像婚姻一样。<br /><br />Chapter Hiring<br /><br />Do it yourself first: 自己先做，然后再招人，保证对工作全景的了解。 <br /><br />Hire when it hurts: 只有应付不过来、并因此而影响到产品质量的时候才招人<br /><br />Pass on great people: 别看着好人都想要，别看着美女都想娶，你管不过来。<br /><br />Strangers at a cocktail party: 不要一下招聘很多人，大家会碍于面子无法深入沟通。<br /><br />Resumes are ridiculous: 简历都是忽悠人的，相信你在看简历时的直觉。<br /><br />Years of irrelevance: 工作年限不重要，重要的是工作能力。<br /><br />Forget about formal education: 正式的教育不重要，学院派教育出来的人倾向于表现僵化。扩大你的待选招聘范围。<br /><br />Everybody works：不要招聘喜欢发号施令、自己不干活的人。<br /><br />Hire managers of one: 招聘能够自我驱动、完成工作的人，评选标准：找曾经从头至尾做过一件事情、一个项目的人。<br /><br />Hire great writers: 好的写作者能够理清自己的思路，知道如何沟通，让事物易于理解，能够站在别人的角度考虑问题。在今天，写作是好主意的流通货币。<br /><br />The best are everywhere: 牛人遍布世界各地，不必非得坐在一起。每天要有时间定期沟通，每年定期面对面交流。<br /><br />Test-drive employees：招人后，要让其做个小项目看看真正的工作状态。<br /><br />Chapter Damage Control<br /><br />Own your bad news: 自己首先发布对自己不利的消息，反面典型请参考天朝政府。<br /><br />Speed changes everything:&nbsp; 要表现得像快速反应部队一样。。。<br /><br />How to say you're sorry: 道歉必须真诚，去掉空话套话。具体情况具体分析。<br /><br />Put everyone on the front lines: 让所有的人都能上到客户第一线。<br /><br />Take a deep breath: 发布新特性后，不要急于回应客户的负面反应，稍微等等。<br /><br />Chapter Culture<br /><br />You don't create a culture: 文化来自于日常做事的方式，就像好酒要慢慢酿制。<br /><br />Decisions are temporary: 快决策，更灵活。如今的市场，想得太远等于杞人忧天。<br /><br />Build a rockstar environment, skip the rock stars:&nbsp; 用环境培养人，平凡的人做不平凡的事。 <br /><br />They're not thirteen: 相信你的员工，给他们自我放松和调整的时间。<br /><br />Send people home at 5: 工作时间不重要，工作效率更重要。<br /><br />Don't scar on the first cut: 有人犯错，不要急着定制度，等有人频繁犯错再说。<br /><br />Sound like you: 用亲和力替代所谓的&ldquo;商业化&rdquo;、&ldquo;职业化&rdquo;语言。<br /><br />Four-letter words: 讨论中不要预设立场、不要绝对化。<br /><br />ASAP is poison: 所有的事情都是高优先级等于没有优先级。<br /><br />Chapter Conclusion<br /><br />Inspiration is perishable: 有创业冲动？赶紧动手！<br /><br /><br /></p>
<p>&nbsp;</p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F61006279.html&title=Rework%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/61006279.html</link>
   <author>小熊</author>
   <pubDate>Tue, 23 Mar 2010 20:47:40 +0800</pubDate>
  </item>
  <item>
   <title>基本规则5：不要用逗号连接两个独立从句</title>
   <description><![CDATA[<p>如果两个或更多从句在语法上各自都很完整，而且没有用连词连接在一起构成一个复合的句子，那么这些从句之间应该用分号。</p>
<p>Mary Shelley's works are entertaining; they are full of engaging ideas.</p>
<p>It is nearly half past five; we cannot reach town before dark. </p>
<p>当然，将两个从句分开写成两个独立的句子也是对的，不过是用句号替换分号。</p>
<p>Mary  Shelley's works are entertaining. They are full of engaging ideas.</p>
<p>It is nearly half past five. We cannot reach town before dark. </p>
<p>如果插入连词，那么用逗号是正确的做法。（参见基本规则4）</p>
<p> Mary Shelley's works are entertaining, for they are full of engaging ideas.</p>
<p>It is nearly half past five, and we cannot reach town before dark. </p>
<p>对比上面的三种方式，可以清晰地发现第一种的优势。至少从例子中看来，这种形式要比第二种好，因为它体现了两个句子间的紧密关系，而第二种形式没有体现出来；它比第三种好，是因为要更简短，因此更有力。的确如此，这种表示句子关系的简单方法是写作最有用的工具之一。如上所示，句子之间的关系常常是因果关系。</p>
<p>要注意，如果第二个从句由副词引导，比如accordingly、besides、then、therefore或是thus，而不是连词引导，那么分号还是需要的。</p>
<p>I had never been in the place before; besides, it was dark as a tomb.</p>
<p>这里要指出的是：分号规则有一个例外。当从句都很短，而且形式上很像时，或是句子的语调、语气简单、类似于对话时，选用逗号更合适。</p>
<p>Man proposes, God disposes.</p>
<p>The gates swung apart, the bridge fell, the portculls was drawn up.</p>
<p>I hardly knew him, he was so changed. </p>
<p>Here today, gone tomorrow.</p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F53149504.html&title=%E5%9F%BA%E6%9C%AC%E8%A7%84%E5%88%995%EF%BC%9A%E4%B8%8D%E8%A6%81%E7%94%A8%E9%80%97%E5%8F%B7%E8%BF%9E%E6%8E%A5%E4%B8%A4%E4%B8%AA%E7%8B%AC%E7%AB%8B%E4%BB%8E%E5%8F%A5">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/53149504.html</link>
   <author>小熊</author>
   <pubDate>Tue, 08 Dec 2009 00:35:29 +0800</pubDate>
  </item>
  <item>
   <title>基本规则4：在连词引导的独立从句前要使用逗号</title>
   <description><![CDATA[<p>在连词引导的独立从句前要用逗号</p>
<p>The early records of the city have disappeared, and the story of its first years can no longer be reconstructed. </p>
<p>The situation is perilous, but there is still one chance of escape. </p>
<p>由两部分构成的句子，当第二部分由as（表达&ldquo;因为&rdquo;的意思）、for、or、nor、或是while（表达&ldquo;与此同时&rdquo;的意思）引导时，在这些连词前需要加一个逗号。</p>
<p>如果是一个依赖从句，或是需要由逗号引起的介绍性短语，第二个依赖从句前不需要在连词后添加逗号。[译注：本句存疑，为什么说在连词后加入逗号？]</p>
<p>The situation is perilous, but if we are prepared to act promptly, there is still one chance of escape. </p>
<p>当两个从句的主语相同而且仅表达一次时，如果连接词是but，就可以用逗号。如果连词是and，而且两个句子之间的关系非常接近或是时间上非常靠近时，逗号可以省略。</p>
<p>I have heard the arguments, but am still unconvinced. </p>
<p>He has had several years' experience and is thoroughly competent. </p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F52991641.html&title=%E5%9F%BA%E6%9C%AC%E8%A7%84%E5%88%994%EF%BC%9A%E5%9C%A8%E8%BF%9E%E8%AF%8D%E5%BC%95%E5%AF%BC%E7%9A%84%E7%8B%AC%E7%AB%8B%E4%BB%8E%E5%8F%A5%E5%89%8D%E8%A6%81%E4%BD%BF%E7%94%A8%E9%80%97%E5%8F%B7">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/52991641.html</link>
   <author>小熊</author>
   <pubDate>Sat, 05 Dec 2009 16:21:03 +0800</pubDate>
  </item>
  <item>
   <title>基本用法规则3:用逗号分隔插入语表达方式</title>
   <description><![CDATA[<p>The best way to see a country, unless you are pressed for time, is to travel on foot.</p>
<p>这个规则可不好实行。因为很难判断一个单词，比如however，或者一个短语是否是插入语。如果对于整句的语气打断很轻微，省略逗号应该没有问题。但不管对语气的打断是轻微还是比较重，决不要留一个逗号，忽略一个都好。下面这样的标点符号试用方式完全错误：</p>
<p>Marjories husband, Colonel Nelson paid us a visit yesterday.</p>
<p>还有这种：</p>
<p>My brother you will be pleased to hear, is now in perfect health.</p>
<p>日期通常包含隶属插入语的单词或数字。标点符号使用方法如下：</p>
<p>February to July, 1992</p>
<p>April 6, 1986</p>
<p>Wednesday, November 14, 1990</p>
<p>注意下面这种忽略逗号的方式只是习惯用法：</p>
<p>6 April 1988</p>
<p>这种形式用来写日期是非常好的，数字之间用一个单词隔开，因此，很容易就能领会。</p>
<p>直接称呼的姓氏或头衔也属于插入语。</p>
<p>If, Sir, you refuse, I cannot predict what will happen.</p>
<p>Well, Susan, this is a fine mess you are in.</p>
<p>缩略语etc.、i.e.和e.g.，学位的缩略语，跟在名字之后的头衔也是插入语，应该注意正确使用标点符号。</p>
<p>Letters, packages, etc., should go here.</p>
<p>Horace Fulsome, Ph.D., presided.</p>
<p>Rachel Simonds, Attorney</p>
<p>The Reverend Harry Lang, S.J.</p>
<p>不过，不要对表明身份的限定语使用逗号。</p>
<p>Billy the Kid</p>
<p>The novelist Jane Austen</p>
<p>William the Conqueror</p>
<p>The poet Sappho</p>
<p>尽管Junior和其缩略语Jr.常被看作缩略语，然而，逻辑上将其看作限定语，因此不需要逗号。</p>
<p>James Wright Jr.</p>
<p>非限定的关系从句算是插入语，由连词引导的、表示时间或地点的从句与之类似。因此需要逗号。非限定性的从句无法对前面的名词起到标示或定义的作用。</p>
<p>The audience, which had at first been indifferent, became more and more interested.</p>
<p>In 1769, when Napoleon was born, Corsica had but recently been acquired by France.</p>
<p>Nether Stowey, where Coleridge wrote The Rime of the Ancient Mariner, is a few miles from Bridgewater.</p>
<p>在上面这些句子中，由which、when和where引导的从句是非限定性从句，它们不会做出限定或定义，仅仅是补充一些内容。在第一个例子中，由which引导的从句无法指明提到的是哪些可能的观众，而是假定读者对此已经知晓。从句以插入语的形式加入了一个句子，对主句形成补充。上面这三句话都是两个句子构成的，可以分开表述。如下：</p>
<p>The audience was at first different. Later it became more and more interested.</p>
<p>Napoleon was born in 1769. At that time Corsica had but recently been acquired by France. </p>
<p>Coleridge wrote The Rime of the Ancient Mariner at Nether Stowey. Nether Stowey is a few miles from Bridgewater.</p>
<p>相对而言，限定性从句不是插入语，不应用逗号隔开。因此，</p>
<p>People who live in glass houses shouldn't throw stones.</p>
<p>此句中由who引导的从句可以指出修饰的是哪些人。这一句与上述句子不同，无法分成两个独立的句子。这里的逗号使用规则也可用于分词短语和同位语。</p>
<p>People sitting in the rear couldn't hear. （限定性作用）</p>
<p>Uncle Bert, being slightly deaf, moved forward. （非限定性作用）</p>
<p>My cousin Bob is a talented harpist. （限定性作用）</p>
<p>Our oldest daughter, Mary, sings. （非限定性作用）</p>
<p>当一个句子的主从句由一个短语或是附属从句作为前缀时，要用逗号隔开这些语法元素。</p>
<p>Partly by hard fighting, partly by diplomatic skill, they enlarged their dominions to the east and rose to royal rank with the possession of Sicily.</p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F52798894.html&title=%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95%E8%A7%84%E5%88%993%3A%E7%94%A8%E9%80%97%E5%8F%B7%E5%88%86%E9%9A%94%E6%8F%92%E5%85%A5%E8%AF%AD%E8%A1%A8%E8%BE%BE%E6%96%B9%E5%BC%8F">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/52798894.html</link>
   <author>小熊</author>
   <pubDate>Mon, 30 Nov 2009 22:00:01 +0800</pubDate>
  </item>
  <item>
   <title>克服在公共会议上做演讲的障碍</title>
   <description><![CDATA[<p>在公共会议做演讲，需要克服两大障碍：如何从会议主办方获得许可、如何在会议上做好演讲。</p>  <p>对于第一个障碍，<a href="http://frazzleddad.blogspot.com/" target="_blank">Jim Holmes</a>的博客文章<a href="http://frazzleddad.blogspot.com/2009/10/writing-good-session-abstract.html" target="_blank">“编写优秀的演讲摘要”</a>给出了几点建议：</p>  <ul>   <li>让你的演讲内容与活动目标相符合 </li>    <li>避免过于宽泛的演讲 </li>    <li>标题非常重要，真的 </li>    <li>说明听众能从你的演讲中得到哪些收获 </li>    <li>给出讨论的实际例子 </li>    <li>展示该演讲以前获得的反馈 </li>    <li>编写简洁的摘要 </li>    <li>编写内容紧凑的摘要 </li>    <li>一审再审，让人复审 </li> </ul>  <p>第二个障碍，可以参考<b><a href="http://headrush.typepad.com/" target="_blank">Kathy Sierra</a>（她是Head First系列书籍的作者之一）</b>的博客文章：<a href="http://headrush.typepad.com/creating_passionate_users/2005/10/how_to_speak_at.html" target="_blank">如何在技术会议上演讲</a></p>  <ul>   <li>坚决不要等待邀请！ </li>    <li>坚决不要指望别人提出建议议题邀请！ </li>    <li>知道会议的主题 </li>    <li>选择好的标题 </li>    <li>从听众的角度思考 </li>    <li>不要害羞，不要充斥市场宣传之词 </li>    <li>真正的工作实践远胜过抽象的思考 </li>    <li>回答该问题：我的演讲如何才能让听众解决实际问题？ </li>    <li>花时间研究会议手册，阅读每个摘要 </li>    <li>提供引人注目的个人介绍 </li>    <li>以前的演讲经验会有所帮助 </li>    <li>实际参加会议 </li>    <li>提交多个议题 </li>    <li>不要放弃，不管怎样，要是被拒绝了，不要将其视为个人恩怨 </li>    <li>寻求帮助 </li> </ul>  <p>&#160;</p>  <p>P.S.:本文动机来自infoq新闻：<a href="http://www.infoq.com/cn/news/2009/10/diversity-IT-women-conferences" target="_blank">《女士们：请递交你们的议题吧！》</a></p>  <!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F48658953.html&title=%E5%85%8B%E6%9C%8D%E5%9C%A8%E5%85%AC%E5%85%B1%E4%BC%9A%E8%AE%AE%E4%B8%8A%E5%81%9A%E6%BC%94%E8%AE%B2%E7%9A%84%E9%9A%9C%E7%A2%8D">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/48658953.html</link>
   <author>小熊</author>
   <pubDate>Sun, 18 Oct 2009 16:37:09 +0800</pubDate>
  </item>
  <item>
   <title>为测试，保护独立性——用stub来打破对象之间的依赖关系</title>
   <description><![CDATA[<p>现在来看<a href="http://www.douban.com/subject/3874333/"><strong><em>The Art of Unit Testing With Examples in .NET</em></strong></a>的第三章&ldquo;Using Stubs to Break Dependencies&rdquo;</p>
<ul>
<li>作者使用了三种定义来指向测试中的伪造关系：fakes, stubs 和 mocks。 </li>
<li>&ldquo;除了间接层次过多这样的问题之外，没有哪种面向对象的问题是不能通过添加间接层次解决的。&rdquo;然而，单元测试的诸多精妙之处就在于：如何找到正确的地方添加或使用间接层次，以测试目标代码。 </li>
<li>加入间接层次的三个步骤：      <ol>
<li>找到待测试方法依赖的&ldquo;接口&rdquo;。这里的接口不单单是指面向对象中的接口，还包括与其他类协作需要调用的方法或类。 </li>
<li>如果&ldquo;接口&rdquo;与待测方法有&ldquo;直接关系&rdquo;（比如直接调用等等），就可以通过向接口加入间接层次，使得待测方法可以被测试。 </li>
<li>将交互接口的&ldquo;潜在<strong>实现&rdquo;</strong>用可以控制的东西替换。 </li>
</ol>   </li>
<li>对于Seam（接缝）的定义： </li>
</ul>
<blockquote>
<p>Seams are places in your code where you can plug in different functionality, such as stub classes. (可参考Michael Feathers的《修改代码的艺术》)</p>
</blockquote>
<ul>
<li>打破依赖的5种方法：      <ol>
<li>抽离出接口，以替换潜在实现。 </li>
<li>向待测类中注入stub实现。 </li>
<li>在构造器中接收接口作为函数。 </li>
<li>将接口作为属性，进行设置或读取。 </li>
<li>在调用方法前得到stub。 </li>
</ol>   </li>
</ul><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F46742194.html&title=%E4%B8%BA%E6%B5%8B%E8%AF%95%EF%BC%8C%E4%BF%9D%E6%8A%A4%E7%8B%AC%E7%AB%8B%E6%80%A7%E2%80%94%E2%80%94%E7%94%A8stub%E6%9D%A5%E6%89%93%E7%A0%B4%E5%AF%B9%E8%B1%A1%E4%B9%8B%E9%97%B4%E7%9A%84%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/46742194.html</link>
   <author>小熊</author>
   <pubDate>Sat, 19 Sep 2009 00:50:52 +0800</pubDate>
  </item>
  <item>
   <title>测试方法命名基本规则和state-based testing</title>
   <description><![CDATA[<p>在<a href="http://www.douban.com/subject/3874333/"><strong><em>The Art of Unit Testing With Examples in .NET</em></strong></a>的第二章“A first unit test”中，提出了一些unit test应该注意的初步细节，比如测试方法命名的基本规则：</p>  <p align="left">待测试对象：Project , 例如：项目名为Logan</p>  <p align="left">测试代码中的对应对象：创建项目名称为<strong>[ProjectUnderTest].Tests；</strong>上例对应项目名为：Logan.Tests</p>  <p align="left">待测试对象：Class，例如：类名为LogAnalyzer</p>  <p align="left">测试代码中的对应对象：对于每个class，至少创建一个对应class，命名为<strong>[ClassName]Tests；</strong>上例对应类名为：LogAnalyzerTests</p>  <p align="left">待测试对象：Method，例如：期待名为IsValidLogFileName的方法，输入合法的文件名，希望返回true</p>  <p align="left">测试代码中的对应对象：对于每个方法，创建至少一个测试方法，命名规则为<strong>[MethodName]_[StateUnderTest]_[ExpectedBehavior]. </strong>上例对应方法名为：IsValidFileName_valideFile_ReturnsTrue()</p>  <p align="left">此外，还提到了针对状态的间接测试——state-based testing，其定义如下：</p>  <blockquote>   <h5>State-based testing (also called state verification) determines whether the exercised method worked correctly by examining the state of the system under test and its collaborators (dependencies) after the method is exercised.</h5></blockquote>  <!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F46742036.html&title=%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95%E5%91%BD%E5%90%8D%E5%9F%BA%E6%9C%AC%E8%A7%84%E5%88%99%E5%92%8Cstate-based+testing">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/46742036.html</link>
   <author>小熊</author>
   <pubDate>Sat, 19 Sep 2009 00:44:32 +0800</pubDate>
  </item>
  <item>
   <title>什么是好的unit test？</title>
   <description><![CDATA[<p>根据<a href="http://www.douban.com/subject/3874333/"><strong><em>The Art of Unit Testing With Examples in .NET</em></strong></a>，好的unit test应该具备如下特点：</p>  <ul>   <li>It should be automated and repeatable. </li>    <li>It should be easy to implement. </li>    <li>Once it’s written, it should remain for future use. </li>    <li>Anyone should be able to run it. </li>    <li>It should run at the push of a button. </li>    <li>It should run quickly. </li> </ul>  <p>如果这还不够，请回答下列问题，足以判断一个测试是否是好的unit test：</p>  <ul>   <li>Can I run and get results from a unit test I wrote two weeks or months or years ago? </li>    <li>Can any member of my team run and get the results from unit tests I wrote two months ago? </li>    <li>Can I run all the unit tests I’ve written in no more than a few minutes? </li>    <li>Can I run all the unit tests I’ve written at the push of a button? </li>    <li>Can I write a basic unit test in no more than a few minutes? </li> </ul>  <p>有任何一个问题的回答是“no”，对不起，您的测试不是unit test，而是integration test，书中对于此类测试定义如下：</p>  <blockquote>   <p>Integration testing means testing two or more dependent software modules as a group. </p> </blockquote>  <p>因此，unit test的定义如下：</p>  <blockquote>   <p>A unit test is an automated piece of code that invokes the method or class being tested and then checks some assumptions about the logical behavior of that method or class. A unit test is almost always written using a unit-testing framework. It can be written easily and runs quickly. It’s fully automated, <font color="#ff0000"><strong>trustworthy, readable, and maintainable.</strong></font></p></blockquote>  <!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fbearwhisper.blogbus.com%2Flogs%2F45598389.html&title=%E4%BB%80%E4%B9%88%E6%98%AF%E5%A5%BD%E7%9A%84unit+test%EF%BC%9F">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://bearwhisper.blogbus.com/logs/45598389.html</link>
   <author>小熊</author>
   <pubDate>Wed, 02 Sep 2009 03:07:50 +0800</pubDate>
  </item>
 </channel>
</rss>

