<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.biaodianfu.com/styles/feedsky0.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.biaodianfu.com" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/biaodianfu" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 09 May 2012 16:34:08 GMT</lastBuildDate><title>标点符的博客</title><description>这是一个SEO初学者、PHP初学者、JS初学者、CSS初学者的博客。这里记载的是一些学习中遇到的一些浅显问题的方方面面。</description><image><url>http://www.feedsky.com/feed/biaodianfu/sc/gif</url><title>标点符的博客</title><link>http://www.biaodianfu.com</link></image><link>http://www.biaodianfu.com</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Wed, 09 May 2012 16:34:08 GMT</pubDate><item><title>软件开发中的火车模型发布模式</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441418/4215915/1/item.html</link><content:encoded>&lt;p&gt;《启示录：打造用户喜爱的产品》这边说第一张就讲到了“许多成熟的互联网公司都在使用火车模型发布模式”，对于火车模型发布模式具体是什么意思不太清楚，于是上网找资料，发现网上很好又介绍火车模型发布模式的，可能是翻译不一致导致的结果。对于火车模型发布模式其实也是很好理解的，下面就是我找的一个关于火车发布模式的案例，来自于FireFox开发团队。&lt;/p&gt;
&lt;p&gt;Firefox目前正在采用的开苏发布过程其实就是火车模型发布模式，使用心得模式后一个新特性从实现并且进入mozilla-central分支到发布到用户手里只需要12-18周，并不向IE浏览器的更新以用一样要几年的时间。如此的快速发布过程给整个项目带来了更好的敏捷性和更强的稳定性。在每个发布周期的测试和稳定阶段可以覆盖更多的用户来帮助FireFox的开发人员更早的发现和解决问题，保持在每次发布质量上的信心。&lt;/p&gt;
&lt;p&gt;下面就要介绍下Firefox的发布流程。每个独立的发布火车（新的发布过程采用火车模型，固定的“发车”时间，特性的发布取决于该特性是否赶上最近的火车发车时间）包括6周的开发时间加上12周的稳定时间：&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;rrprocess1-267x300&quot; src=&quot;http://www.biaodianfu.com/wp-content/uploads/2012/05/rrprocess1-267x300.png&quot; alt=&quot;&quot; width=&quot;267&quot; height=&quot;300&quot; /&gt;&lt;/p&gt;
&lt;p&gt;新的开发成果不会直接发布到Aurora和Beta分支上。这些分支需要被开发人员和社区测试人员共同测试完方可，如果发现开发中存在程序问题或者BUG，就需要先解决问题。如上图所示，您能够看出发布周期基本上是稳定的18个星期。&lt;/p&gt;
&lt;p&gt;Aurora和Beta分支基本上完全关注于稳定性和测试，同时，很多的工程师也在同步开始新的开发工作，所以，如果看更大的一张图表的话，下面是真正进行的过程：&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;rrprocess2&quot; src=&quot;http://www.biaodianfu.com/wp-content/uploads/2012/05/rrprocess2.png&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;471&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在Aurora和Beta分支上经历的12周时间里，Mozilla开发社区并没有在闲着。他们会继续为后面的发布开发新的特性和bug fix。每六个星期，他们的工作会被选择性的合并到Aurora分支，继而合并到Beta分支上。观察上面的图表，您会发现很重要的一点，就是：&lt;strong&gt;每六个星期就会有一个新版本的Firefox发布，而不是12周或者18周。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;参考地址：&lt;a href=&quot;http://blog.mozilla.org/channels/2011/07/18/every-six-weeks/&quot;&gt;http://blog.mozilla.org/channels/2011/07/18/every-six-weeks/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/ie-png-fix-2-0.html' rel='bookmark' title='IE PNG Fix 2.0'&gt;IE PNG Fix 2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/data-model.html' rel='bookmark' title='数据分析中常用的数据模型'&gt;数据分析中常用的数据模型&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/mysql-for-beginners.html' rel='bookmark' title='MySQL 初级教程（一）'&gt;MySQL 初级教程（一）&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441418/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441418/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/release-train.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>《启示录：打造用户喜爱的产品》这边说第一张就讲到了“许多成熟的互联网公司都在使用火车模型发布模式”，对于火车模型发布模式具体是什么意思不太清楚，于是上网找资料，发现网上很好又介绍火车模型发布模式的，可能是翻译不一致导致的结果。对于火车模型发布模式其实也是很好理解的，下面就是我找的一个关于火车发布模式的案例，来自于FireFox开发团队。 Firefox目前正在采用的开苏发布过程其实就是火车模型发布模式，使用心得模式后一个新特性从实现并且进入mozilla-central分支到发布到用户手里只需要12-18周，并不向IE浏览器的更新以用一样要几年的时间。如此的快速发布过程给整个项目带来了更好的敏捷性和更强的稳定性。在每个发布周期的测试和稳定阶段可以覆盖更多的用户来帮助FireFox的开发人员更早的发现和解决问题，保持在每次发布质量上的信心。 下面就要介绍下Firefox的发布流程。每个独立的发布火车（新的发布过程采用火车模型，固定的“发车”时间，特性的发布取决于该特性是否赶上最近的火车发车时间）包括6周的开发时间加上12周的稳定时间： 新的开发成果不会直接发布到Aurora和Beta分支上。这些分支需要被开发人员和社区测试人员共同测试完方可，如果发现开发中存在程序问题或者BUG，就需要先解决问题。如上图所示，您能够看出发布周期基本上是稳定的18个星期。 Aurora和Beta分支基本上完全关注于稳定性和测试，同时，很多的工程师也在同步开始新的开发工作，所以，如果看更大的一张图表的话，下面是真正进行的过程： 在Aurora和Beta分支上经历的12周时间里，Mozilla开发社区并没有在闲着。他们会继续为后面的发布开发新的特性和bug fix。每六个星期，他们的工作会被选择性的合并到Aurora分支，继而合并到Beta分支上。观察上面的图表，您会发现很重要的一点，就是：每六个星期就会有一个新版本的Firefox发布，而不是12周或者18周。 参考地址：http://blog.mozilla.org/channels/2011/07/18/every-six-weeks/ Related posts: IE PNG Fix 2.0 数据分析中常用的数据模型 MySQL 初级教程（一）&lt;img src=&quot;http://www1.feedsky.com/t1/636441418/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441418/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>发布模式</category><category>产品经理</category><pubDate>Thu, 10 May 2012 00:34:08 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/release-train.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4817</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/release-train.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441418/4215915</fs:itemid></item><item><title>如何进行更好的进行代码注释</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441419/4215915/1/item.html</link><content:encoded>&lt;p&gt;代码注释本身就能透露出许多的信息，代码维护记录、开发工具、开发者的联系信息甚至其个人品好。有过就是因为代码注释造成公司信息泄露，导致公司受损的案例。&lt;/p&gt;
&lt;p&gt;1、逐层注释&lt;/p&gt;
&lt;p&gt;使用统一格式对每一个语句块进行注释，如：&lt;/p&gt;
&lt;p&gt;* 类：简单描述、作者、最后修改时间等&lt;br /&gt;
* 方法：关于该方法的目的、函数、参数、返回值的描述&lt;/p&gt;
&lt;p&gt;在团队工作中，使用统一的注释规范显得尤为重要。当然，也推荐使用一些专门用来添加代码注释的工具，如C#中的XML、Java中的Javadoc等。&lt;/p&gt;
&lt;p&gt;2、使用段落型注释&lt;/p&gt;
&lt;p&gt;将代码分割成能完成独立任务的段落，并在其前后添加注释，告诉读者程序将要做什么。&lt;/p&gt;
&lt;pre class=&quot;brush: csharp; gutter: true&quot;&gt;// 检查所有的记录是否正确
 foreach (Record record in records)
 {
 if (rec.checkStatus()==Status.OK)
 {
 . . .
 }
 }
 // 现在开始进行事务处理
 Context ctx = new ApplicationContext();
 ctx.BeginTransaction();
 . . .&lt;/pre&gt;
&lt;p&gt;3、对齐连续的行注释&lt;/p&gt;
&lt;p&gt;若对多行添加行末注释，应将注释进行对齐，以便于阅读。&lt;/p&gt;
&lt;pre class=&quot;brush: csharp; gutter: true&quot;&gt;const MAX_ITEMS = 10; // 数据包的最大数量
const MASK = 0x1F; // TCP标志位&lt;/pre&gt;
&lt;p&gt;有些程序远使用制表符来进行对齐，有些则使用空格。建议使用空格来对齐，因为不同的代码编辑器对制表符的处理会不一样。&lt;/p&gt;
&lt;p&gt;4、不要侮辱读者的智商&lt;/p&gt;
&lt;p&gt;不要用这样的注释：&lt;/p&gt;
&lt;pre class=&quot;brush: csharp; gutter: true&quot;&gt;if (a == 5) // 如果a等于5
counter = 0; // 就将counter的值赋为0&lt;/pre&gt;
&lt;p&gt;这样做只会浪费你的时间，而且读者的注意力会被从代码中转移。&lt;/p&gt;
&lt;p&gt;5、注意礼貌&lt;/p&gt;
&lt;p&gt;避免使用无礼的注释，如：注意有些蠢蛋会输入一个负数；这修复了程序最初版本遇到的问题，那个无个救药的笨蛋。这样的注释会反映作者的素质，而且你不知道将来谁会读到你的程序：你的老板、顾客，或者是你刚才辱骂过的那个程序员。&lt;/p&gt;
&lt;p&gt;6、讲重点&lt;/p&gt;
&lt;p&gt;不要在写冗余的注释，也不要用所谓的字符艺术、玩笑、小诗等。总之要保持注释的简单和直接。&lt;/p&gt;
&lt;p&gt;7、坚持统一风格&lt;/p&gt;
&lt;p&gt;有些人认为代码注释应该简单到让不会编程的人也能看懂，另一些人则认为代码注释只要让程序员看懂就可以了。不管怎样，正如《撰写代码注释的成功策略》中所提到的，代码注释的风格应该是固定的，是为同一个观众准备的。而且我个人认为不太会有非程序员来阅读代码，所以代码注释应该只是针对其他程序员的。&lt;/p&gt;
&lt;p&gt;8、使用内部统一规定的标签&lt;/p&gt;
&lt;p&gt;在进行团队开发时，可以在注释中使用一些特殊的标签。比如在一些团队中使用“TODO:“标签来表示这里还需要完成其他的一些任务。&lt;/p&gt;
&lt;pre class=&quot;brush: csharp; gutter: true&quot;&gt;int Estimate(int x, int y)
 {
 // TODO: 实现这项计算
 return 0;
 }&lt;/pre&gt;
&lt;p&gt;这里所使用的标签注释并不是用来解释代码，而是引起读者注意并传递一些信息。如果你的团队确实在使用这类注释，就要保证会依此进行作业。&lt;/p&gt;
&lt;p&gt;9、边写代码边注释&lt;/p&gt;
&lt;p&gt;在写代码的时候，乘脑中记忆还清晰，及时写上注释。如果你想在程序编写完之后再添加注释，也许就会花费你两倍的时间。“我没有时间添加注释”、“我很忙”、“这个项目已经有所拖延了”都将会是你的借口。有些程序员认为你应该在编写代码之前就写好注释，以为你的最终方案作出计划。如：&lt;/p&gt;
&lt;pre class=&quot;brush: csharp; gutter: true&quot;&gt;public void ProcessOrder()
 {
 // 保证这些产品是可以购买得到的
 // 检查用户时候合法
 // 向商店发出订单
 // 生成账单
 }&lt;/pre&gt;
&lt;p&gt;10、就当是为自己写注释（事实上的确是让你自己看的）&lt;/p&gt;
&lt;p&gt;在添加代码注释时，要想到这些注释不仅是为将来维护代码的程序员而写，也是为你自己而写。用伟大的Phil Haack的话来说：“当一行代码写好并出现在屏幕上时，你就变成了一名维护人员。”所以，我们自己将会成为代码注释的第一个受益人或受害者。&lt;/p&gt;
&lt;p&gt;11、更新代码时同时更新注释&lt;/p&gt;
&lt;p&gt;如果注释不随着代码的改变而修改，那在准备的注释也是没有用的。代码和注释应该始终保持同步，否则这些文不对题的注视将使维护人员摸不着头脑。对于那些自动添加注释的工具要格外注意，不要让它忽略更新注释。&lt;/p&gt;
&lt;p&gt;12、黄金准则：写可读的代码&lt;/p&gt;
&lt;p&gt;有一条基本准备叫“让代码解释它自己”。虽然有人认为这个倡议是由一个懒得写注释的程序提出的，但不可否认的是一条可以自我解释的代码可以让其变得更为易懂，并让注释显得不那么重要。如，在我的Fluid Interfaces文章中有一些可以自我解释的代码的例子：&lt;/p&gt;
&lt;pre class=&quot;brush: c; gutter: true&quot;&gt;Calculator calc = new Calculator();
 calc.Set(0);
 calc.Add(10);
 calc.Multiply(2);
 calc.Subtract(4);
 Console.WriteLine( “Result: {0}”, calc.Get() );&lt;/pre&gt;
&lt;p&gt;在这个例子中，代码不需要注释，否则会违反本文的第四条贴士。要写出可读的代码，你应该考虑使用恰当的名称（在Ottinger’s Rules中有所叙述），确保标识正确，并根据代码规范来撰写。如果没有遵循此条建议，注释可能会被看作是代码的一种“道歉”。&lt;/p&gt;
&lt;p&gt;13、和你的同事分享这些贴士&lt;/p&gt;
&lt;p&gt;虽然第10条贴士说我们自己将是代码注释的第一个受益者，但如果把这些贴士分享给你的同事，尤其是在同一个团队中工作的同事，你就会发现你们写出的代码注释会更为易懂和易于维护。&lt;/p&gt;
&lt;p&gt;参考地址：&lt;a href=&quot;http://www.devtopics.com/13-tips-to-comment-your-code/&quot;&gt;http://www.devtopics.com/13-tips-to-comment-your-code/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;分享一个代码注释的负面案例，来自淘宝：&lt;a href=&quot;http://a.tbcdn.cn/apps/snstaoshare/widget/ts/ts.js&quot; target=&quot;_blank&quot;&gt;http://a.tbcdn.cn/apps/snstaoshare/widget/ts/ts.js&lt;/a&gt;，请读者自行找出不可取之处。&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/goo-gl.html' rel='bookmark' title='Goo.gl的使用方法'&gt;Goo.gl的使用方法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/php-6-and-mysql-5-for-dynamic-web-sites.html' rel='bookmark' title='《PHP 6与MySQL5基础教程》英文版PDF下载'&gt;《PHP 6与MySQL5基础教程》英文版PDF下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/css-quanweizhinan.html' rel='bookmark' title='《CSS权威指南》中文版[PDF]电子书下载'&gt;《CSS权威指南》中文版[PDF]电子书下载&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441419/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441419/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/tips-to-comment-your-code.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>代码注释本身就能透露出许多的信息，代码维护记录、开发工具、开发者的联系信息甚至其个人品好。有过就是因为代码注释造成公司信息泄露，导致公司受损的案例。 1、逐层注释 使用统一格式对每一个语句块进行注释，如： * 类：简单描述、作者、最后修改时间等 * 方法：关于该方法的目的、函数、参数、返回值的描述 在团队工作中，使用统一的注释规范显得尤为重要。当然，也推荐使用一些专门用来添加代码注释的工具，如C#中的XML、Java中的Javadoc等。 2、使用段落型注释 将代码分割成能完成独立任务的段落，并在其前后添加注释，告诉读者程序将要做什么。 // 检查所有的记录是否正确 foreach (Record record in records) { if (rec.checkStatus()==Status.OK) { . . . } } // 现在开始进行事务处理 Context ctx = new ApplicationContext(); ctx.BeginTransaction(); . . . 3、对齐连续的行注释 若对多行添加行末注释，应将注释进行对齐，以便于阅读。 const MAX_ITEMS = 10; // 数据包的最大数量 const MASK = 0x1F; // TCP标志位 有些程序远使用制表符来进行对齐，有些则使用空格。建议使用空格来对齐，因为不同的代码编辑器对制表符的处理会不一样。 4、不要侮辱读者的智商 不要用这样的注释： if [...]&lt;img src=&quot;http://www1.feedsky.com/t1/636441419/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441419/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>程序设计</category><category>编程规范</category><pubDate>Sun, 06 May 2012 09:47:27 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/tips-to-comment-your-code.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4809</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/tips-to-comment-your-code.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441419/4215915</fs:itemid></item><item><title>加密服务学习笔记</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441420/4215915/1/item.html</link><content:encoded>&lt;p&gt;公共网络（如 Internet）不提供实体间安全通信的方法。这种网络上的通信容易被未经授权的第三方读取甚至修改。加密有助于防止他人查看数据，它提供了检测数据是否已被修改的方式，同时有助于在非安全信道上提供安全的通信方式。例如，可以使用加密算法对数据进行加密，在加密状态下传输数据，然后由预定的接收方对数据进行解密。如果第三方截获了加密的数据，解密数据是很困难的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一、加密基元&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在使用加密的典型场合中，双方（Alice 和 Bob）在不安全的信道上通信。Alice 和 Bob 想要确保任何可能正在侦听的人无法理解他们之间的通信。而且，由于 Alice 和 Bob 相距遥远，因此 Alice 必须确保她从 Bob 处收到的信息没有在传输期间被任何人修改。此外，她必须确保信息确实是来自 Bob，而不是来自模仿 Bob 的人。&lt;/p&gt;
&lt;p&gt;加密用于达到以下目的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;保密性：帮助保护用户的标识或数据不被读取。&lt;/li&gt;
&lt;li&gt;数据完整性：帮助保护数据不被更改。&lt;/li&gt;
&lt;li&gt;身份验证：确保数据发自特定的一方。&lt;/li&gt;
&lt;li&gt;不可否认性：防止特定的一方否认发送过消息。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为了达到这些目的，您可以使用算法和惯例的组合（称作加密基元）来创建加密方案。下表列出了加密基元及它们的用法。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;私钥加密（对称加密）- 对数据执行转换，使第三方无法读取该数据。此类型的加密使用单个共享的机密密钥来加密和解密数据。&lt;/li&gt;
&lt;li&gt;公钥加密（不对称加密）- 对数据执行转换，使第三方无法读取该数据。此类加密使用公钥/私钥对来加密和解密数据。&lt;/li&gt;
&lt;li&gt;加密签名 - 通过创建对特定方唯一的数字签名来帮助验证数据是否发自特定方。此过程还使用哈希函数。&lt;/li&gt;
&lt;li&gt;加密哈希 - 将数据从任意长度映射为定长字节序列。哈希在统计上是唯一的；不同的双字节序列不会哈希为同一个值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;二、私钥加密&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密您的数据，或加密他们自己的数据并声称该数据源自您，因此必须保护密钥不被未经授权的代理得到。&lt;/p&gt;
&lt;p&gt;私钥加密又称为对称加密，因为同一密钥既用于加密又用于解密。私钥加密算法的速度非常快（与公钥算法相比），它特别适用于对较大的数据流执行加密转换。从数学角度而言，非对称加密算法（例如 RSA）在可加密的数据量方面存在限制。对称加密算法一般则没有这些问题。&lt;/p&gt;
&lt;p&gt;有一种私钥算法称为分组加密，它用于一次加密一个数据组。分组加密（例如数据加密标准 (DES)、TripleDES 和高级加密标准 (AES)）可将 n 字节的输入组通过加密转换为由加密字节构成的输出组。如果要加密或解密字节序列，必须逐组进行。由于 n 很小（DES 和 TripleDES 为 8 字节；AES 为 16 字节 [默认值]、24 字节或 32 字节），因此如果数据值大于 n，则必须一次加密一组。如果数据值小于 n，则必须将其扩展为 n 才能进行处理。&lt;/p&gt;
&lt;p&gt;有一种简单的分组加密称为电子密码本 (ECB) 模式。一般认为，ECB 模式并不安全，因为它并不使用初始化向量初始化第一个纯文本组。对于给定的私钥 k，一个不使用初始化向量的简单组密码会将相同的纯文本输入分组加密为相同的密码文本输出组。因此，如果输入纯文本流中存在重复的组，则输出密码文本流中也将存在重复的组。这些重复的输出组会使未经授权的用户察觉数据可能采用了不可靠的加密算法，进而想出可能的攻击模式。因此，ECB 密码模式十分易于分析，因此最终会被他人发现密钥。&lt;/p&gt;
&lt;p&gt;基类库中提供的分组加密类使用一种称为密码组链 (CBC) 的默认链模式，但您可以根据需要更改此默认设置。&lt;/p&gt;
&lt;p&gt;通过使用初始化向量 (IV) 加密第一个纯文本组，CBC 密码克服了与 ECB 密码关联的问题。每个后续纯文本组都会在加密前与前一个密码文本组进行按位“异或”(XOR) 运算。因此，每个密码文本组都依赖于它前面的所有组。采用这种系统时，即使未经授权的用户可能已知道公共消息头，也无法将其用于对密钥进行反向工程。&lt;/p&gt;
&lt;p&gt;使用 CBC 密码加密数据时，危及数据安全的一种做法是对每个可能的密钥执行穷举搜索。根据执行加密时使用的密钥大小，即便使用最快的计算机，这种搜索也可能极为耗时，因而此做法并不可行。使用较大的密钥大小将使解密更加困难。从理论上说，加密并不能防止对手检索到加密的数据，但它确实增加了这样做的成本。如果执行穷举搜索需要三个月才能检索到只在几天内有意义的数据，那么穷举搜索方法就并不实用。&lt;/p&gt;
&lt;p&gt;私钥加密的缺点是它假定双方已就密钥和 IV 达成协议，并且互相传达了密钥和 IV 的值。一般认为，IV 并不安全，且可以在消息的纯文本中传输。但是，密钥必须对未经授权的用户保密。由于存在这些问题，因此通常将私钥加密与公钥加密配合使用，以秘密地传达密钥和 IV 的值。&lt;/p&gt;
&lt;p&gt;假定 Alice 和 Bob 是希望在非安全信道上通信的双方，他们可以按如下方式使用私钥加密：Alice 和 Bob 同意对特定的密钥和 IV 应用一种特定的算法（例如 AES）。Alice 撰写一条消息并创建要在其上发送该消息的网络流（可能是一个命名管道或网络电子邮件）。接下来，她使用该密钥和 IV 加密文本，并通过 Intranet 向 Bob 发送该加密消息和 IV。Bob 在收到该加密文本后，可使用 IV 和预先商定的密钥对它进行解密。即使传输的内容被人截获，截获者也无法恢复原始消息，因为他并不知道密钥。在此方案中，只有密钥必须保密。在一个实际方案中，将由 Alice 或 Bob 生成私钥并使用公钥（不对称）加密将私钥（对称）传递给对方。有关公钥加密的更多信息，请参见下一节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;三、公钥加密&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥在数学上是关联在一起的；用公钥加密的数据只能用私钥解密，而用私钥签名的数据只能用公钥验证。公钥可以提供给任何人；公钥用于对要发送到私钥持有者的数据进行加密。公钥加密算法又称为非对称算法，原因是需要用一个密钥加密数据，而用另一个密钥来解密数据。基本的加密规则禁止密钥重用，并且对于每一个通信会话公钥和私钥都应该是唯一的。但实际上，非对称密钥通常可持续使用。&lt;/p&gt;
&lt;p&gt;双方（Alice 和 Bob）可以按照下列方式使用公钥加密：首先，Alice 生成一个公钥/私钥对。如果 Bob 想要给 Alice 发送一条加密的消息，他将向她索要她的公钥。Alice 通过非安全网络将她的公钥发送给 Bob，Bob 接着使用该密钥加密消息。Bob 将加密的消息发送给 Alice，而 Alice 使用她的私钥解密该消息。如果 Bob 通过非安全信道（例如公共网络）接收 Alice 的密钥，则 Bob 可能会受到“中间人”攻击。因此，Bob 必须与 Alice 验证他收到的公钥副本是否正确。&lt;/p&gt;
&lt;p&gt;在传输 Alice 的公钥期间，未经授权的代理可能会截获该密钥。而且，同一代理可能截获来自 Bob 的加密消息。但是，该代理无法用公钥解密该消息。该消息只能用 Alice 的私钥解密，而该私钥并没有被传输。Alice 不使用她的私钥加密给 Bob 的答复消息，原因是任何具有公钥的人都可以解密该消息。如果 Alice 想要将消息发送回 Bob，她将向 Bob 索要他的公钥并使用该公钥加密她的消息。然后，Bob 使用与他相关联的私钥来解密该消息。&lt;/p&gt;
&lt;p&gt;在此方案中，Alice 和 Bob 使用公钥（非对称）加密来传输私钥（对称），并对其会话的其余部分使用私钥加密。&lt;/p&gt;
&lt;p&gt;下表对公钥加密算法和私钥加密算法进行了比较：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公钥加密算法使用固定的缓冲区大小，而私钥加密算法则使用长度可变的缓冲区。&lt;/li&gt;
&lt;li&gt;公钥算法无法像私钥算法那样将数据链接成流，原因是它只能加密少量数据。因此，不对称操作不使用与对称操作相同的流模型。&lt;/li&gt;
&lt;li&gt;公钥加密比私钥加密具有更大的密钥空间（或密钥的可能值范围）。因此，公钥加密不太容易受到对每个可能的密钥都进行尝试的穷举攻击。&lt;/li&gt;
&lt;li&gt;由于公钥不需要保密，因此只要可通过某种方式来验证发送方的身份，分发公钥会十分容易。&lt;/li&gt;
&lt;li&gt;某些公钥算法（例如 RSA 和 DSA，但 Diffie-Hellman 除外）可用于创建数字签名，以此来验证数据发送方的身份。&lt;/li&gt;
&lt;li&gt;与私钥算法相比，公钥算法的速度很慢，不适合用来加密大量数据。公钥算法仅对传输很少量的数据有用。公钥加密通常用于加密一个私钥算法将要使用的密钥和 IV。在传输密钥和 IV 后，将对会话的其余部分应用私钥加密。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;四、数字签名&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;公钥算法还可用于构成数字签名。数字签名验证发送方的身份（如果您信任发送方的公钥）并帮助保护数据的完整性。使用由 Alice 生成的公钥，Alice 的数据的接收者可以通过将数字签名与 Alice 的数据和 Alice 的公钥进行比较来验证是否是 Alice 发送了该数据。&lt;/p&gt;
&lt;p&gt;为了使用公钥加密对消息进行数字签名，Alice 首先将哈希算法应用于该消息以创建消息摘要。该消息摘要是数据的紧凑且唯一的表示形式。然后，Alice 用她的私钥加密该消息摘要以创建她的个人签名。在收到消息和签名时，Bob 使用 Alice 的公钥解密签名以恢复消息摘要，并使用与 Alice 所使用的相同的哈希算法来散列消息。如果 Bob 计算的消息摘要与从 Alice 那里收到的消息摘要完全一致，Bob 就可以确定该消息来自私钥的持有人，并且数据未被修改过。如果 Bob 相信 Alice 是私钥的持有人，则他将知道该消息来自 Alice。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt;由于发送方的公钥为大家所共知，并且它通常包含在数字签名格式中，因此任何人都可以验证签名。此方法不保守消息的机密；若要使消息保密，还必须对消息进行加密。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;五、哈希值&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;哈希算法可将任意长度的二进制值映射为固定长度的较小二进制值，这个小的二进制值就称为哈希值。哈希值是一段数据的数值表示形式。散列一段纯文本时，即使只更改段落中的一个字母，随后的散列计算都会产生不同的值。如果哈希已进行强加密，其值将发生显著更改。例如，如果更改了消息的一个位，强哈希函数就可能生成相差 50% 的输出。很多输入值可能会散列为相同的输出值。但是，要找到散列为同一个值的两个不同的输入，在计算上是不可行的。&lt;/p&gt;
&lt;p&gt;双方（Alice 和 Bob）可以使用一个哈希函数来确保消息的完整性。他们将选择一个哈希算法来签署其消息。Alice 将写一条消息，然后使用选定的算法创建该消息的哈希。然后他们将采用以下方法之一：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alice 向 Bob 发送纯文本消息和哈希消息（数字签名）。Bob 接收该消息并对它进行哈希运算，将他的哈希值与从 Alice 那里接收的哈希值进行比较。如果这两个哈希值相同，则说明消息未被更改。如若不同，则说明该消息在由 Alice 撰写后已被他人更改。遗憾的是，此方法并没有确立发送方的真实性。任何人都可以模拟 Alice 向 Bob 发送消息。他们可以使用同一哈希算法来签署消息，Bob 能够确定的只是该消息与其签名匹配。这是中间人攻击的一种形式。&lt;/li&gt;
&lt;li&gt;Alice 通过非安全公共通道向 Bob 发送纯文本消息。她通过一个安全的专用通道向 Bob 发送哈希消息。Bob 接收纯文本消息并对它进行哈希运算，将该哈希与私自交换的哈希进行比较。如果两个哈希匹配，则 Bob 可确定两点：
&lt;ul&gt;
&lt;li&gt;该消息没有被篡改。&lt;/li&gt;
&lt;li&gt;消息的发送方 (Alice) 是可信的。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为了使此系统发挥作用，Alice 必须对除 Bob 外的所有人保密其原始的哈希值。&lt;/li&gt;
&lt;li&gt;Alice 通过非安全公共通道向 Bob 发送纯文本消息，并将哈希消息置于她的公开网站上。该方法通过防止任何人修改哈希值而防止了消息被篡改。尽管任何人都可以读取消息及其哈希，但只有 Alice 能够更改哈希值。要模拟 Alice 的攻击者将需要访问 Alice 的网站。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;由于 Alice 的消息是以纯文本形式传输的，因此前面的任何方法都无法防止他人读取 Alice 的消息。完整安全性通常需要数字签名（消息签名）和加密。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt;1996 年，人们发现了 MD5 的设计缺陷，并建议改用 SHA-1。2004 年，人们又发现了 MD5 的其他缺陷，因此认为这种算法已不再安全。另外，SHA-1 算法也暴露出不安全的方面，现在已建议改用 SHA-2。&lt;/p&gt;
&lt;p&gt;六、随机数生成&lt;/p&gt;
&lt;p&gt;随机数生成是许多加密操作不可分割的组成部分。例如，加密密钥需要尽可能地随机，以便使生成的密钥很难再现。加密随机数生成器所生成的输出必须满足以下条件：用优于二分之一的概率来预测从计算上而言是不可行的。因此，任何预测下一输出位的方法都不得优于随机猜测法。&lt;/p&gt;
&lt;p&gt;参考网址：&lt;a href=&quot;http://msdn.microsoft.com/zh-cn/library/92f9ye3s.aspx&quot;&gt;http://msdn.microsoft.com/zh-cn/library/92f9ye3s.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/python-hashlib.html' rel='bookmark' title='Python模块学习之hashlib'&gt;Python模块学习之hashlib&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/jquery-validate-js.html' rel='bookmark' title='jQuery plugin: Validation 表单校验'&gt;jQuery plugin: Validation 表单校验&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/patterns-for-sign-up-ramp-up.html' rel='bookmark' title='《Patterns for Sign Up &amp;amp;Ramp Up》下载'&gt;《Patterns for Sign Up &amp;#038;Ramp Up》下载&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441420/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441420/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/encryption.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>公共网络（如 Internet）不提供实体间安全通信的方法。这种网络上的通信容易被未经授权的第三方读取甚至修改。加密有助于防止他人查看数据，它提供了检测数据是否已被修改的方式，同时有助于在非安全信道上提供安全的通信方式。例如，可以使用加密算法对数据进行加密，在加密状态下传输数据，然后由预定的接收方对数据进行解密。如果第三方截获了加密的数据，解密数据是很困难的。 一、加密基元 在使用加密的典型场合中，双方（Alice 和 Bob）在不安全的信道上通信。Alice 和 Bob 想要确保任何可能正在侦听的人无法理解他们之间的通信。而且，由于 Alice 和 Bob 相距遥远，因此 Alice 必须确保她从 Bob 处收到的信息没有在传输期间被任何人修改。此外，她必须确保信息确实是来自 Bob，而不是来自模仿 Bob 的人。 加密用于达到以下目的： 保密性：帮助保护用户的标识或数据不被读取。 数据完整性：帮助保护数据不被更改。 身份验证：确保数据发自特定的一方。 不可否认性：防止特定的一方否认发送过消息。 为了达到这些目的，您可以使用算法和惯例的组合（称作加密基元）来创建加密方案。下表列出了加密基元及它们的用法。 私钥加密（对称加密）- 对数据执行转换，使第三方无法读取该数据。此类型的加密使用单个共享的机密密钥来加密和解密数据。 公钥加密（不对称加密）- 对数据执行转换，使第三方无法读取该数据。此类加密使用公钥/私钥对来加密和解密数据。 加密签名 - 通过创建对特定方唯一的数字签名来帮助验证数据是否发自特定方。此过程还使用哈希函数。 加密哈希 - 将数据从任意长度映射为定长字节序列。哈希在统计上是唯一的；不同的双字节序列不会哈希为同一个值。 二、私钥加密 私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密您的数据，或加密他们自己的数据并声称该数据源自您，因此必须保护密钥不被未经授权的代理得到。 私钥加密又称为对称加密，因为同一密钥既用于加密又用于解密。私钥加密算法的速度非常快（与公钥算法相比），它特别适用于对较大的数据流执行加密转换。从数学角度而言，非对称加密算法（例如 RSA）在可加密的数据量方面存在限制。对称加密算法一般则没有这些问题。 有一种私钥算法称为分组加密，它用于一次加密一个数据组。分组加密（例如数据加密标准 (DES)、TripleDES 和高级加密标准 (AES)）可将 n 字节的输入组通过加密转换为由加密字节构成的输出组。如果要加密或解密字节序列，必须逐组进行。由于 n 很小（DES 和 TripleDES 为 8 字节；AES 为 16 字节 [默认值]、24 字节或 32 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/636441420/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441420/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>程序设计</category><category>加密</category><pubDate>Sun, 06 May 2012 02:41:25 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/encryption.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4805</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/encryption.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441420/4215915</fs:itemid></item><item><title>如何处理好项目管理中的那些会议</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441421/4215915/1/item.html</link><content:encoded>&lt;p&gt;会议已经成为项目经理的一项重要工作内容，它提供交换和分享信息与观点的手段。项目经理和团队成员在项目会议上花费了大量时间。在项目环境中，会议作为管理沟通的一种方式是否经济和有效，常因项目经理的沟通技能不同而有差异。会议需要许多时间和精力，因而只有必需时才召集会议。然而，许多会议并非富有成效，这些会议准备得不够充分，主持得也毫无章法。因此，懂得召开什么类型的项目会议，什么时候需要召开会议和召开多少次会议，以及如何有效地主持项目会议是非常重要的。项目会议的类型及其目标项目经理可能需要召集许多不同类型的会议。这些会议包括：项目启动会议、项目计划会议、项目状态/评审会议和问题解决会议等。每一种会议需要达到特定的目标，因而要有相应的会议内容。下面就每一类项目会议分别论述其目标和内容。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1．项目启动会议&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;根据项目的来源，&lt;strong&gt;项目启动会议&lt;/strong&gt;又可分为内部项目启动会议和外部&lt;strong&gt;项目启动会议&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;(1)内部项目启动会议是指承包商的项目经理在承包合同签署后召开的&lt;strong&gt;项目启动会议&lt;/strong&gt;。一般由内部项目发起人(来自管理层)、客户经理、项目经理和项目团队成员参加。&lt;/p&gt;
&lt;p&gt;内部项目启动会议的主要目的是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;定义项目及其主要团队成员；&lt;/li&gt;
&lt;li&gt;使团队成员明确他们在项目中的职责和角色；&lt;/li&gt;
&lt;li&gt;概要地讨论项目的相关内容。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在内部项目启动会议上主要讨论的内容有：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;项目概述；&lt;/li&gt;
&lt;li&gt;项目的范围和可交付成果；&lt;/li&gt;
&lt;li&gt;项目的总体计划及项目的进度规划；&lt;/li&gt;
&lt;li&gt;项目的组织结构；&lt;/li&gt;
&lt;li&gt;项目假设及风险；&lt;/li&gt;
&lt;li&gt;项目文件保存、存档要求。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(2)外部&lt;strong&gt;项目启动会议&lt;/strong&gt;是由承包商的项目团队和客户的项目团队共同参加的项目启动会议。一般由承包商的项目经理召集和主持。启动会议后，承包商项目团队将着手编制详细的项目计划。&lt;/p&gt;
&lt;p&gt;外部&lt;strong&gt;项目启动会议&lt;/strong&gt;的主要目的是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;明确双方对项目的期望；&lt;/li&gt;
&lt;li&gt;确定客户和团队成员的角色和职责；&lt;/li&gt;
&lt;li&gt;在进入计划阶段前，再次确认客户的项目需求，并确保双方对项目需求理解一致；&lt;/li&gt;
&lt;li&gt;将承包商的团队成员介绍给客户，以便在项目中更好地合作。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这个会议使客户成为项目团队的成员，从而增加客户对项目的承诺。这对项目成功来说是至关重要的。&lt;/p&gt;
&lt;p&gt;在外部项目启动会议上，项目经理向客户介绍的主要内容包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;项目概述；&lt;/li&gt;
&lt;li&gt;项目对客户的价值；&lt;/li&gt;
&lt;li&gt;项目范围和可交付成果；&lt;/li&gt;
&lt;li&gt;项目团队；&lt;/li&gt;
&lt;li&gt;项目时间表；&lt;/li&gt;
&lt;li&gt;项目实施方法(风险及假设)；&lt;/li&gt;
&lt;li&gt;项目所应达到的质量；&lt;/li&gt;
&lt;li&gt;结论。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;2．项目计划会议&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目计划会议&lt;/strong&gt;是由项目经理召集和主持，项目团队成员参加的项目会议。项目经理要根据项目的大小及项目对组织的重要性来决定项目计划的详细程度。项目计划会议主要目的是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;编制详细的项目计划；&lt;/li&gt;
&lt;li&gt;项目任务分配：将工作任务明确分配给特定的团队成员。对于每一项任务，必须注明负责人及预&lt;/li&gt;
&lt;li&gt;计完工的日期，并要求负责人当面做出承诺；&lt;/li&gt;
&lt;li&gt;使团队成员对项目有一个整体的了解。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;项目计划会议的主要内容包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;根据WBS确定里程碑，进一步定义项目活动和任务；&lt;/li&gt;
&lt;li&gt;预测完成活动和任务的历时，将活动和任务分派给团队成员；&lt;/li&gt;
&lt;li&gt;讨论完成活动和任务的方法；&lt;/li&gt;
&lt;li&gt;确定活动和任务的相互关系和顺序，并根据项目时间表制定项目进度计划；&lt;/li&gt;
&lt;li&gt;制定项目成本计划、项目质量计划、项目沟通计划、风险控制计划和项目采购计划等。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;3．项目状态/评审会议&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;项目状态/评审会议通常由项目经理召集和主持。参加会议的成员一般包括全部或部分项目团队成员、客户和来自高层的项目负责人。项目状态/评审会议应定期召开。例如，内部项目状态/评审会议可每周召开一次。与客户进行的项目状态/评审会议可长一些，如每月或每季度召开一次。这应根据项目的持续时间和合同要求而定。&lt;/p&gt;
&lt;p&gt;项目状态／评审会议的主要目的是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;介绍项目进展情况；&lt;/li&gt;
&lt;li&gt;项目是否偏离进度计划，若偏离，应采取什么样的措施；&lt;/li&gt;
&lt;li&gt;说明造成进度偏离计划的原因和如何在今后的工作中防止偏差；&lt;/li&gt;
&lt;li&gt;汇报在项目执行中发现的问题及潜在的问题，如何解决所发现的问题及如何防止潜在的问题发生；&lt;/li&gt;
&lt;li&gt;应引起客户或项目负责人注意的事项，如客户可能尚未签署某一文件等。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在项目状态／评审会议上，需要讨论的主题有：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自上次会议以来所完成的工作，明确已实现的关键项目里程碑；&lt;/li&gt;
&lt;li&gt;项目成本、进度和范围情况：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;▲进展情况：将工作完成情况与基准计划加以比较，工作完成情况必须是最新的；&lt;/li&gt;
&lt;li&gt;▲预测：根据目前的进展情况和需要完成的项目任务，预测项目完工日期和项目完工成本，并将它们与项目目标和基准计划进行比较；&lt;/li&gt;
&lt;li&gt;▲差异：明确项目成本和进度的实际情况与基准计划的差异，差异可能是正的——如提前完成计划，也可能是负的——如没能按时完成计划或超过预算，要找出造成负面差异的问题。纠正措施：有些情况下，可以在项目状态／评审会上提出纠正措施以获得客户或管理层的批准，如获得加班的授权，以便使项目赶上进度。在另外一些情况下，项目经理要求单独召开解决问题的会议，专门探讨纠正措施。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4．解决问题会议&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当项目团队成员在项目中发现问题或潜在问题时，项目经理应根据项目之初设立的准则(根据问题的大小、可能对项目造成的影响等)来决定是否召集相关人员开一个问题解决会议。如需召开，项目经理要决定会议应由哪些人参加。这些问题不应等到下一次项目状态/评审会议解决。尽早地发现和解决问题对于项目的成功非常关键。&lt;/p&gt;
&lt;p&gt;解决问题会议的内容主要涉及采用一个好的解决问题的方法。&lt;/p&gt;
&lt;p&gt;解决问题的方法包括以下几个步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;描述问题；&lt;/li&gt;
&lt;li&gt;找出并确定产生问题的原因；&lt;/li&gt;
&lt;li&gt;找出可能解决的方案；&lt;/li&gt;
&lt;li&gt;评价各个可行方案；&lt;/li&gt;
&lt;li&gt;确定最佳解决方案；&lt;/li&gt;
&lt;li&gt;修订项目计划，要注意解决&lt;/li&gt;
&lt;li&gt;方案对项目其他领域的影响；&lt;/li&gt;
&lt;li&gt;实施解决方案；&lt;/li&gt;
&lt;li&gt;确定问题是否得以解决。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;除了每一种会议可以达到其特定目的外，通过这些会议，项目经理还可以达到以下目的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提供机会改正、更新和增加项目团队的知识，从而制定出更为准确的成本和进度计划及绩效状态报告。&lt;/li&gt;
&lt;li&gt;帮助团队成员识别他们的个人努力方向，如何使他们的个人努力成为实现项目目标的一部分，并了解他们的个人成功将如何增加团队的成功。&lt;/li&gt;
&lt;li&gt;增加团队成员对项目的承诺。当团队成员在会议中参与决策时，他们更有可能接受这些决定，并为之而努力。通常，人们反对某一决定，并非是因为决定内容本身，而是因为他们没有被征询有关决定的意见。此外，比起个人所做的决定，团队决定更不容易被质疑。木增加团队的凝聚力，使人们感受到项目团队的存在，并确实作为团队一起工作。&lt;/li&gt;
&lt;li&gt;使项目团队意识到，在管理当前项目中，项目领导作用的存在。&lt;/li&gt;
&lt;li&gt;在特定环境下，为团队成员提供一个展示他们在解决项目问题时的创造性。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在召开会议之前，项目经理必须要定义会议目标。这些目标要具体、可测量、可实现和以结果为导向。项目经理要明确所有项目团队成员在会议中的角色，甚至轮换这些角色，以便每个成员都有机会得到锻炼和获得主持会议的经验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5、项目会议的频率&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在项目会议的频率与其潜在的利益之间，应保持合理的平衡。会议的频率与项目的生命周期相关。在概念和可行性阶段，应召开更多的计划会议，以便在原则上就最终目标和达到这些目标的方法达成共识。在这一阶段，客户的需求要得到充分满足。但是，概念一旦被最后确定，团队成员便进行详细设计，实施计划和开发产品，会议的数量要减少。然而，状态/评审会议的频率可能在实施计划、开发产品和项目接近收尾时增加，因为此时有许多事情需要协调。通常，评审会议有益于在项目实施和后期工作中避免使用过多的时间和资源。&lt;/p&gt;
&lt;p&gt;下面是一些减少会议数量的实用指南。&lt;/p&gt;
&lt;p&gt;在召集会议之前，项目经理应先回答下面问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;需要召开会议的主要事项(问题或机会)是什么?&lt;/li&gt;
&lt;li&gt;引起问题的事实或假定是什么?可能的机遇是什么?&lt;/li&gt;
&lt;li&gt;潜在的备选方案是什么?他们的成本和收益如何?&lt;/li&gt;
&lt;li&gt;可以给与会者提供什么样的建议来处理眼前的问题?&lt;/li&gt;
&lt;li&gt;如果不召集会议，可能的结果会怎样?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;回答上述问题，可能使你意识到根本就没有必要召开会议。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6、如何管理项目会议&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;管理会改是一项很重要的管理功能。这包括计划、组织、指导和控制。一个管理良好的会议是分享信息、明确方向和消除模糊的有效方式。它有益于协调团队成员的努力和对项目事项获得即时反馈，提供了一种集体解决项目问题和获得机遇的方式。会议主持人通过计划、主持和引领会议，创造适当的团队气氛。他／她必须明确对会议的期望。依据项目要达到的目标，主持人必须指导、阐明、控制、总结和评估会议结果。如果主持人在会上讲得过多，会议可能会低效。主持人的影响取决于与会者对他／她要达到会议目标努力的认可度和他／她帮助与会者达到这些目标的技能和效率。&lt;/p&gt;
&lt;p&gt;会议可能是低效的或完全是浪费时间的，特别是项目经理犯下面一些常见的错误时：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;召集太多或太少的会议；&lt;/li&gt;
&lt;li&gt;在会前忽视分发会议日程；&lt;/li&gt;
&lt;li&gt;没能邀请有决策权的管理人员；&lt;/li&gt;
&lt;li&gt;没能与在会上做主要发言的人员协调；&lt;/li&gt;
&lt;li&gt;在琐碎的事情上花费太多的时间；&lt;/li&gt;
&lt;li&gt;没能将活动任务分配给具体人员。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;项目会议是否成功依赖干各种不同因素。这包括会议类型(严肃的还是自由的)、会议形式(正式的还是非正式的)、提前计划的程度和主持人表现的权力水平。项目经理必须意识到达些因素，并恰当地利用这些因素，以便有效地管理会议。&lt;/p&gt;
&lt;p&gt;下面就如何有效管理会议提供一些实用性指南。&lt;/p&gt;
&lt;p&gt;充分计划和良好管理的项目会议，可能会非常富有成效。就像下面将要讨论的那样，有效的会议管理发生在会议之前、会议期间和会议之后。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(1) 会议前。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;按前面所论述的问答程序，决定会议是否确实需要。如需要，那么就要：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确定会议目标，要把项目进展或状态评审会议与问题解决会议分开举行；&lt;/li&gt;
&lt;li&gt;为会议讨论设定基本规则；&lt;/li&gt;
&lt;li&gt;确定谁确实要参加，并只邀请这些人员；&lt;/li&gt;
&lt;li&gt;尽早通知与会者会议的目标、地点和时间；&lt;/li&gt;
&lt;li&gt;事先分发会议日程；&lt;/li&gt;
&lt;li&gt;列出要在会上涉及到的事项，并预演会上的发言；&lt;/li&gt;
&lt;li&gt;按时开始和结束会议。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;(2)会议期间。 &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;为了使会议尽量简短，且富有成效，项目经理应做到以下几点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;制定具体时间限制，并坚持这一时限；&lt;/li&gt;
&lt;li&gt;会议一开始，就要明确会议的具体目标；&lt;/li&gt;
&lt;li&gt;多从与会者处了解情况(听应多于讲)；&lt;/li&gt;
&lt;li&gt;使会议按日程进行，防止与会者“跑题”；&lt;/li&gt;
&lt;li&gt;利用直观教具帮助说明你的观点，鼓励其他与会者效仿；&lt;/li&gt;
&lt;li&gt;就是否达成一致意见或仍然存在分歧，定时总结讨论结果；&lt;/li&gt;
&lt;li&gt;当工作需要进一步完成时，将工作分配给团队成员。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;(3)会议后。 &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;当然，绝大多数工作要在会议之外完成。因此，要跟踪团队成员所分配的工作和分发准确的会议记录，并在下次会议上使用会议记录，检查工作结果。&lt;/p&gt;
&lt;p&gt;要保留会议记录，特别是项目计划、组织和评估会议的记录。这些记录要简洁、清楚和具体。会议记录可以包括下面内容：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;下次会议的时间、地点和说明；&lt;/li&gt;
&lt;li&gt;这次会议的时间和地点，与会者名单及其在项目中担任的角色；&lt;/li&gt;
&lt;li&gt;讨论的会议事项；&lt;/li&gt;
&lt;li&gt;已达成一致的决定和需要进一步研究的问题；&lt;/li&gt;
&lt;li&gt;活动事项和负责跟踪及在下一次会议上向团队汇报的人员。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;美国的统计数据表明，一个项目经理一生中，平均大约用8年的时间开会。在项目环境中，时间通常是很紧迫的，因此使用一些能使会议重点突出和富有成果的特殊方法是重要的。这可以通过确保主持人和与会者都能很好地扮演其角色来实现。下面是一些能使团队会议更富有成效的建议：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;主持人的角色是设定期望，确保团队集中讨论会议主题和避免偏离主题，并鼓励团队成员积极参与。参与会增加团队成员对项目的接受和承诺。&lt;/li&gt;
&lt;li&gt;与会者的角色是做好准备，表现出自信和兴趣，发言时不要“垄断”讨论。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;幽默的角色是活跃会议气氛，并可提升和指明团队的道德水准。幽默要健康，即不要讽刺和指向任何团队成员。任何时候都要避免使用种族和性别偏见的幽默。中国的读者和美国读者文摘上的幽默是为大众广泛接受的，可供参考。&lt;/p&gt;
&lt;p&gt;如果要参加由别人召集的会议，项目经理和职能经理一样可能都不喜欢这类会议。毫无疑问，良好组织的项目会议为项目成功提供了有效工具。但是，项目经理有时可以利用电话，与团队成员私下讨论或召开简短的特别会议来解决一些很重要的问题。&lt;/p&gt;
&lt;p&gt;项目经理必须记住，好的项目会议本身并不是沟通的终点。项目经理必须通过增加他们对结果的承诺水平，使团队成员遵从他们的承诺。可以通过下表中所介绍的技巧来激励这样的承诺，以便能召开GREAT会议，即会议能使团队成员更有效和更富有成果。&lt;/p&gt;
&lt;p&gt;本文章系转载，原文出处未知。&lt;/p&gt;
&lt;p&gt;No related posts.&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441421/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441421/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/pm-meeting.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>会议已经成为项目经理的一项重要工作内容，它提供交换和分享信息与观点的手段。项目经理和团队成员在项目会议上花费了大量时间。在项目环境中，会议作为管理沟通的一种方式是否经济和有效，常因项目经理的沟通技能不同而有差异。会议需要许多时间和精力，因而只有必需时才召集会议。然而，许多会议并非富有成效，这些会议准备得不够充分，主持得也毫无章法。因此，懂得召开什么类型的项目会议，什么时候需要召开会议和召开多少次会议，以及如何有效地主持项目会议是非常重要的。项目会议的类型及其目标项目经理可能需要召集许多不同类型的会议。这些会议包括：项目启动会议、项目计划会议、项目状态/评审会议和问题解决会议等。每一种会议需要达到特定的目标，因而要有相应的会议内容。下面就每一类项目会议分别论述其目标和内容。 1．项目启动会议 根据项目的来源，项目启动会议又可分为内部项目启动会议和外部项目启动会议。 (1)内部项目启动会议是指承包商的项目经理在承包合同签署后召开的项目启动会议。一般由内部项目发起人(来自管理层)、客户经理、项目经理和项目团队成员参加。 内部项目启动会议的主要目的是： 定义项目及其主要团队成员； 使团队成员明确他们在项目中的职责和角色； 概要地讨论项目的相关内容。 在内部项目启动会议上主要讨论的内容有： 项目概述； 项目的范围和可交付成果； 项目的总体计划及项目的进度规划； 项目的组织结构； 项目假设及风险； 项目文件保存、存档要求。 (2)外部项目启动会议是由承包商的项目团队和客户的项目团队共同参加的项目启动会议。一般由承包商的项目经理召集和主持。启动会议后，承包商项目团队将着手编制详细的项目计划。 外部项目启动会议的主要目的是： 明确双方对项目的期望； 确定客户和团队成员的角色和职责； 在进入计划阶段前，再次确认客户的项目需求，并确保双方对项目需求理解一致； 将承包商的团队成员介绍给客户，以便在项目中更好地合作。 这个会议使客户成为项目团队的成员，从而增加客户对项目的承诺。这对项目成功来说是至关重要的。 在外部项目启动会议上，项目经理向客户介绍的主要内容包括： 项目概述； 项目对客户的价值； 项目范围和可交付成果； 项目团队； 项目时间表； 项目实施方法(风险及假设)； 项目所应达到的质量； 结论。 2．项目计划会议 项目计划会议是由项目经理召集和主持，项目团队成员参加的项目会议。项目经理要根据项目的大小及项目对组织的重要性来决定项目计划的详细程度。项目计划会议主要目的是： 编制详细的项目计划； 项目任务分配：将工作任务明确分配给特定的团队成员。对于每一项任务，必须注明负责人及预 计完工的日期，并要求负责人当面做出承诺； 使团队成员对项目有一个整体的了解。 项目计划会议的主要内容包括： 根据WBS确定里程碑，进一步定义项目活动和任务； 预测完成活动和任务的历时，将活动和任务分派给团队成员； 讨论完成活动和任务的方法； 确定活动和任务的相互关系和顺序，并根据项目时间表制定项目进度计划； 制定项目成本计划、项目质量计划、项目沟通计划、风险控制计划和项目采购计划等。 3．项目状态/评审会议 项目状态/评审会议通常由项目经理召集和主持。参加会议的成员一般包括全部或部分项目团队成员、客户和来自高层的项目负责人。项目状态/评审会议应定期召开。例如，内部项目状态/评审会议可每周召开一次。与客户进行的项目状态/评审会议可长一些，如每月或每季度召开一次。这应根据项目的持续时间和合同要求而定。 项目状态／评审会议的主要目的是： 介绍项目进展情况； 项目是否偏离进度计划，若偏离，应采取什么样的措施； 说明造成进度偏离计划的原因和如何在今后的工作中防止偏差； 汇报在项目执行中发现的问题及潜在的问题，如何解决所发现的问题及如何防止潜在的问题发生； 应引起客户或项目负责人注意的事项，如客户可能尚未签署某一文件等。 在项目状态／评审会议上，需要讨论的主题有： 自上次会议以来所完成的工作，明确已实现的关键项目里程碑； 项目成本、进度和范围情况： ▲进展情况：将工作完成情况与基准计划加以比较，工作完成情况必须是最新的； [...]&lt;img src=&quot;http://www1.feedsky.com/t1/636441421/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441421/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>产品经理</category><category>会议</category><pubDate>Sun, 06 May 2012 01:43:50 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/pm-meeting.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4803</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/pm-meeting.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441421/4215915</fs:itemid></item><item><title>时间管理：如何高效的控制会议</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441422/4215915/1/item.html</link><content:encoded>&lt;p&gt;很久之前写了：&lt;a href=&quot;http://www.biaodianfu.com/brain-storming.html&quot;&gt;如何开展头脑风暴会议&lt;/a&gt;，今天要探讨的是如何高效的去组织会议，在公司工作，很多时候都是被会议牵着鼻子走，一天下来4-5个会议成为家常便饭，很多时候你会觉得会议是在浪费时间，如何让会议变得更加高效，下面是网上的一些方法，大家一起研究学习。&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;alignnone size-full wp-image-4799&quot; title=&quot;the-22-minute-meeting&quot; src=&quot;http://www.biaodianfu.com/wp-content/uploads/2012/05/the-22-minute-meeting.png&quot; alt=&quot;&quot; width=&quot;517&quot; height=&quot;495&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;制定22分钟的会议 &lt;/strong&gt;- 谁规定会议时间应该是半小时或1小时的？这样的会议时间是不是有数据支撑？当然没有。30分钟或者60分钟这点时间要是留给每个人去阐述、辩论自己的观点显然不够，平均每个人需要1小时才能把思路理清。实际上不是所有的会议都可以控制在22分钟内，但是很多会议是可以控制的，我们可以尽可能的尝试将会议的时间控制的越短越好。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有一个基于目标的议程&lt;/strong&gt; - 有个明确目标的议程将会使会议锦上添花、有的放矢。可以考虑在白板上写出议程的内容，同时加粗相应的关键点，由此不断提醒大家我们这个会议需要达到什么样的目标。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提前3天发送会议邀请&lt;/strong&gt; - 虽然这可能是会议组织者的负担，但这能为组员降低尽可能小的成本。千万不要让会议变成大家先一起熟悉文档，这样做是对会议有准备的那些人的惩罚。（备注：个人任务提前24小时也是足够的）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;准时开始&lt;/strong&gt; &amp;#8211; 准时开始的会议到底有多少？答案是几乎没有。部分情况可能是因为Outlook等程序没有设置多个会议时间间隔的功能。为了偿还每天的会议时间债务，把时间控制在22分钟内可以让你有足够的时间来缓冲和休息。&lt;/li&gt;
&lt;li&gt;站着开会 &amp;#8211; 站着开会可以提醒大家不要染会议变得复杂或者引导到另外一个目标上去。发表你的观点或需求，否则就要保持安静。如果会上产生分歧，可以将分歧留到会后进行处理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不要带笔记本电脑，只要一个主持人和会议记录者&lt;/strong&gt; &amp;#8211; 如果你能保证会议是在22分钟内搞定，那么你就不需要带任何无关的东西进去，你需要做的是专心聆听。会议中只需一个人主持、一个人记录即可。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;没有电话，以及其他&lt;/strong&gt; &amp;#8211; 理由同上&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意会议重点！阻止议题蔓延&lt;/strong&gt; - 如果你有议程，会议主持人就要让所有参会者遵守议程。如果议程已经OK，那么开会的时候要确保会议讨论离议题太远。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;尽可能快的发送会议记录&lt;/strong&gt; &amp;#8211; 如果会议控制在了22分钟，那么就需要在第二次会议前尽快的将会议内容和决议发出来。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;参考地址：&lt;a href=&quot;http://www.scottberkun.com/blog/2010/the-22-minute-meeting/&quot;&gt;http://www.scottberkun.com/blog/2010/the-22-minute-meeting/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No related posts.&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441422/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441422/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/management-the-22-minute-meeting.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>很久之前写了：如何开展头脑风暴会议，今天要探讨的是如何高效的去组织会议，在公司工作，很多时候都是被会议牵着鼻子走，一天下来4-5个会议成为家常便饭，很多时候你会觉得会议是在浪费时间，如何让会议变得更加高效，下面是网上的一些方法，大家一起研究学习。 &amp;#160; 制定22分钟的会议 - 谁规定会议时间应该是半小时或1小时的？这样的会议时间是不是有数据支撑？当然没有。30分钟或者60分钟这点时间要是留给每个人去阐述、辩论自己的观点显然不够，平均每个人需要1小时才能把思路理清。实际上不是所有的会议都可以控制在22分钟内，但是很多会议是可以控制的，我们可以尽可能的尝试将会议的时间控制的越短越好。 有一个基于目标的议程 - 有个明确目标的议程将会使会议锦上添花、有的放矢。可以考虑在白板上写出议程的内容，同时加粗相应的关键点，由此不断提醒大家我们这个会议需要达到什么样的目标。 提前3天发送会议邀请 - 虽然这可能是会议组织者的负担，但这能为组员降低尽可能小的成本。千万不要让会议变成大家先一起熟悉文档，这样做是对会议有准备的那些人的惩罚。（备注：个人任务提前24小时也是足够的） 准时开始 &amp;#8211; 准时开始的会议到底有多少？答案是几乎没有。部分情况可能是因为Outlook等程序没有设置多个会议时间间隔的功能。为了偿还每天的会议时间债务，把时间控制在22分钟内可以让你有足够的时间来缓冲和休息。 站着开会 &amp;#8211; 站着开会可以提醒大家不要染会议变得复杂或者引导到另外一个目标上去。发表你的观点或需求，否则就要保持安静。如果会上产生分歧，可以将分歧留到会后进行处理。 不要带笔记本电脑，只要一个主持人和会议记录者 &amp;#8211; 如果你能保证会议是在22分钟内搞定，那么你就不需要带任何无关的东西进去，你需要做的是专心聆听。会议中只需一个人主持、一个人记录即可。 没有电话，以及其他 &amp;#8211; 理由同上 注意会议重点！阻止议题蔓延 - 如果你有议程，会议主持人就要让所有参会者遵守议程。如果议程已经OK，那么开会的时候要确保会议讨论离议题太远。 尽可能快的发送会议记录 &amp;#8211; 如果会议控制在了22分钟，那么就需要在第二次会议前尽快的将会议内容和决议发出来。 参考地址：http://www.scottberkun.com/blog/2010/the-22-minute-meeting/ No related posts.&lt;img src=&quot;http://www1.feedsky.com/t1/636441422/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441422/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>时间管理</category><category>产品经理</category><category>会议</category><pubDate>Sun, 06 May 2012 00:58:46 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/management-the-22-minute-meeting.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4798</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/management-the-22-minute-meeting.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441422/4215915</fs:itemid></item><item><title>管理学习：俞军的百度离职演讲</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441423/4215915/1/item.html</link><content:encoded>&lt;p&gt;&lt;strong&gt;以文取人——所有选手站在同一个起跑线&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如何选人？选什么样的人？很多经理都会面临这样的问题。选对一个人，会大大提升团队的“战斗力”，而选错一个人，会给团队带来可能很严重的“伤害”。俞军说，在搜索引擎领域，我们在选人时，不会特别看重这个人的相关经验，所有人都是在一个起跑线上。至于今后的个人发展也和是否有相关工作经验无关，而是这个人是否投入到了这个领域，在认真的学习这个领域，是否具有潜力。俞军告诉我们，用有经验的人可能一时轻松，但如果他不能再跟着产品成长，将来你会更累；用有潜力的人，现在你可能要多付出一点来带他，可是将来他会加速成长，比你对产品的理解更深。&lt;/p&gt;
&lt;p&gt;产品部门在选人这一点上，可以用四个字概括——以文取人。我们不看重简历上的背景，性别，血型，而是根据他写的产品分析看这个人&lt;strong&gt;对于产品和用户的感觉&lt;/strong&gt;，这些感觉是从文字上可以感觉到的。而判断力是源于自己对于产品和用户的感觉积累，当你读过一千个或者更多的产品分析后，再读到一篇产品分析的时候就会一下子给这个分析打一个准确的分数。另外从产品分析里的方法运用上可以看出这个人发现问题和分析问题的逻辑能力。&lt;/p&gt;
&lt;p&gt;“以文取人”之后，还要看这个人是否喜欢并能够投入的做这个工作。&lt;strong&gt;喜欢的投入&lt;/strong&gt;，和没有感觉的投入呈现的效果完全是两码事。俞军举了一个赛车的例子，他说，有些人开车，就是开车，把车作为一个工具把自己送到目的地，所以开了一辈子车，还是一样的开车。但是赛车手会琢磨怎样把车开的更好更快，所以也许赛车手开一个月的车，就已经比开一辈子车的人开的好的多了。我们需要选的人，就是喜欢并愿意投入的人，在又酷又炫的搜索引擎领域，这样的人可能并不难找。&lt;/p&gt;
&lt;p&gt;俞军在总结选人经验时，特别强调了要选择和公司，团队的价值观一致的人，这样会大大提升工作的效率。更应该遵循“宁缺毋滥”的原则，宁可人少，每个人累一点或是少做一些事，也不要盲目扩充人力，种下不良的种子。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;给他成功与犯错的机会——用人的关键在于授权&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;选对人之后就要考虑如何用好他（她），培养他（她），不能浪费人才资源，这也是本次讲座的重点和意义，引起了在场同学的广泛关注。俞军说首先的一个大原则就是要——&lt;strong&gt;充分授权，目标管理。&lt;/strong&gt;充分授权能够提高人的主观能动性，而目标一定是协调后达成一致的目标。对于产品部门而言，和不同的产品团队合作，就会做出不同的东西，因此依赖于脑力劳动的工作，能动性是非常重要的。&lt;/p&gt;
&lt;p&gt;另外就是要营造平等的工作氛围，有试错的心态，并能够不断总结。平等的氛围有助于发挥个人能动性。对于试错的心态，俞军分享自己带团队的经验，他说当自己和团队的成员出现意见不一致的时候，要尽量在把控关键点前提下&lt;strong&gt;将“试错”的机会留给团队成员&lt;/strong&gt;。因为如果这个成员的想法此次被证明是错的，那他（她）就会从“错”中学到最多的经验，从而尽快成长。如果领导的意见被证明是错的，那团队成员将没有机会获得“错事经验值”。最后总结尤为重要，总结要有开放的心态，多总结不好的方面，下次可以得到更好的改善。之后再与团队成员互相分享，整体成长会很快。&lt;/p&gt;
&lt;p&gt;俞军提到应该“助理比经理更懂，经理比总监更懂”，&lt;strong&gt;越专注细致的了解一件事情的人最有发言权&lt;/strong&gt;。&lt;strong&gt;最差的方式就是向上分享，单线汇报。&lt;/strong&gt;真正需要做的是和自己的团队商量，得出什么样的结论，基于事实本身推出结论。需要培养&lt;strong&gt;个人持续否定自我的精神&lt;/strong&gt;，最终的结论是靠发现更多的不足找到，而不是推销观点，永远站在事实的一边，结论会越来越正确。&lt;/p&gt;
&lt;p&gt;用人时一门学问，需要大处着眼，小处着手，就像下一盘棋。人才培养，是一个厚积薄发的过程，需要高瞻远瞩，也正如一盘棋局。培养人才，用好人才，才能赢得这盘棋，做好这个项目。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;愿景清晰，赏罚分明——薪酬之外的留人之道&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;用心培养的人才，应该怎样留住？最后俞军总结了吸引人才最重要的三个条件，一是公司的愿景，是否足够吸引人才留下；二是工作空间，是否能够提供发展和上升的空间；三是个人待遇。对于每一个在百度工作的同学来说，我们其实正在合力做一件非常有意义的事情，做中国最好的搜索引擎，降低人们获得知识的成本，填补人们信息的鸿沟，每一个百度人都有理由骄傲和自豪！&lt;/p&gt;
&lt;p&gt;其实俞军自己的例子就证明了这一点，他告诉我们，其实他并不喜欢在北京生活，8年来无日无夜不想着回上海老家，正是为了做出中国最好的搜索引擎这个愿景，才使他留了下来。&lt;/p&gt;
&lt;p&gt;两个小时悄然滑过。抓住难得的与俞军可以交流的机会，大家也开始在人才选择培养之外踊跃提问有同学问：“你认为百度成功的原因是什么？”俞军说：“是在正确的时间做了正确的事情，那个时候，如果没有百度，也一定会有另一个中文搜索引擎兴起，而百度在这个最佳的时机选择了这个领域，且做得最好，所以这种成功可以说是天时地利的必然。&lt;/p&gt;
&lt;p&gt;继而有同学问，那么只要百度不犯错，是否就不会被其他搜索引擎超过了？俞军说非常坦诚地说：“如果是与百度同质的产品，在这个领域想要超越已经几乎不可能了，但是并不排除新的满足人们信息需求的领域上，出现能颠覆搜索引擎的产品或公司。&lt;/p&gt;
&lt;p&gt;他告诉我们他的思考——产业生命周期的更迭总是从具有颠覆性的新技术开始的，聚光灯曾经照耀过一个个新兴的产业，使他们成为增长最快的经济引擎，如今这个焦点正是搜索引擎，但如果有一天，搜索引擎不能带给用户更多的价值——无论怎么努力去改进，其对于用户体验的提高已经微乎其微了的话，其光芒与风头被另一种产业替代，也将是一种必然。&lt;/p&gt;
&lt;p&gt;那么我们怎么保持我们的领先地位呢？俞军再次强调了百度做产品的用户导向原则。以用户需求为导向，只做有需求，我们有优势和有利益的产品。“对于用户需求，请记住，我们永远是发现者，而不是创造者。”俞军说。&lt;/p&gt;
&lt;p&gt;No related posts.&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441423/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441423/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/leijun-resignation-speech.html/feed</wfw:commentRss><slash:comments>2</slash:comments><description>以文取人——所有选手站在同一个起跑线 如何选人？选什么样的人？很多经理都会面临这样的问题。选对一个人，会大大提升团队的“战斗力”，而选错一个人，会给团队带来可能很严重的“伤害”。俞军说，在搜索引擎领域，我们在选人时，不会特别看重这个人的相关经验，所有人都是在一个起跑线上。至于今后的个人发展也和是否有相关工作经验无关，而是这个人是否投入到了这个领域，在认真的学习这个领域，是否具有潜力。俞军告诉我们，用有经验的人可能一时轻松，但如果他不能再跟着产品成长，将来你会更累；用有潜力的人，现在你可能要多付出一点来带他，可是将来他会加速成长，比你对产品的理解更深。 产品部门在选人这一点上，可以用四个字概括——以文取人。我们不看重简历上的背景，性别，血型，而是根据他写的产品分析看这个人对于产品和用户的感觉，这些感觉是从文字上可以感觉到的。而判断力是源于自己对于产品和用户的感觉积累，当你读过一千个或者更多的产品分析后，再读到一篇产品分析的时候就会一下子给这个分析打一个准确的分数。另外从产品分析里的方法运用上可以看出这个人发现问题和分析问题的逻辑能力。 “以文取人”之后，还要看这个人是否喜欢并能够投入的做这个工作。喜欢的投入，和没有感觉的投入呈现的效果完全是两码事。俞军举了一个赛车的例子，他说，有些人开车，就是开车，把车作为一个工具把自己送到目的地，所以开了一辈子车，还是一样的开车。但是赛车手会琢磨怎样把车开的更好更快，所以也许赛车手开一个月的车，就已经比开一辈子车的人开的好的多了。我们需要选的人，就是喜欢并愿意投入的人，在又酷又炫的搜索引擎领域，这样的人可能并不难找。 俞军在总结选人经验时，特别强调了要选择和公司，团队的价值观一致的人，这样会大大提升工作的效率。更应该遵循“宁缺毋滥”的原则，宁可人少，每个人累一点或是少做一些事，也不要盲目扩充人力，种下不良的种子。 给他成功与犯错的机会——用人的关键在于授权 选对人之后就要考虑如何用好他（她），培养他（她），不能浪费人才资源，这也是本次讲座的重点和意义，引起了在场同学的广泛关注。俞军说首先的一个大原则就是要——充分授权，目标管理。充分授权能够提高人的主观能动性，而目标一定是协调后达成一致的目标。对于产品部门而言，和不同的产品团队合作，就会做出不同的东西，因此依赖于脑力劳动的工作，能动性是非常重要的。 另外就是要营造平等的工作氛围，有试错的心态，并能够不断总结。平等的氛围有助于发挥个人能动性。对于试错的心态，俞军分享自己带团队的经验，他说当自己和团队的成员出现意见不一致的时候，要尽量在把控关键点前提下将“试错”的机会留给团队成员。因为如果这个成员的想法此次被证明是错的，那他（她）就会从“错”中学到最多的经验，从而尽快成长。如果领导的意见被证明是错的，那团队成员将没有机会获得“错事经验值”。最后总结尤为重要，总结要有开放的心态，多总结不好的方面，下次可以得到更好的改善。之后再与团队成员互相分享，整体成长会很快。 俞军提到应该“助理比经理更懂，经理比总监更懂”，越专注细致的了解一件事情的人最有发言权。最差的方式就是向上分享，单线汇报。真正需要做的是和自己的团队商量，得出什么样的结论，基于事实本身推出结论。需要培养个人持续否定自我的精神，最终的结论是靠发现更多的不足找到，而不是推销观点，永远站在事实的一边，结论会越来越正确。 用人时一门学问，需要大处着眼，小处着手，就像下一盘棋。人才培养，是一个厚积薄发的过程，需要高瞻远瞩，也正如一盘棋局。培养人才，用好人才，才能赢得这盘棋，做好这个项目。 愿景清晰，赏罚分明——薪酬之外的留人之道 用心培养的人才，应该怎样留住？最后俞军总结了吸引人才最重要的三个条件，一是公司的愿景，是否足够吸引人才留下；二是工作空间，是否能够提供发展和上升的空间；三是个人待遇。对于每一个在百度工作的同学来说，我们其实正在合力做一件非常有意义的事情，做中国最好的搜索引擎，降低人们获得知识的成本，填补人们信息的鸿沟，每一个百度人都有理由骄傲和自豪！ 其实俞军自己的例子就证明了这一点，他告诉我们，其实他并不喜欢在北京生活，8年来无日无夜不想着回上海老家，正是为了做出中国最好的搜索引擎这个愿景，才使他留了下来。 两个小时悄然滑过。抓住难得的与俞军可以交流的机会，大家也开始在人才选择培养之外踊跃提问有同学问：“你认为百度成功的原因是什么？”俞军说：“是在正确的时间做了正确的事情，那个时候，如果没有百度，也一定会有另一个中文搜索引擎兴起，而百度在这个最佳的时机选择了这个领域，且做得最好，所以这种成功可以说是天时地利的必然。 继而有同学问，那么只要百度不犯错，是否就不会被其他搜索引擎超过了？俞军说非常坦诚地说：“如果是与百度同质的产品，在这个领域想要超越已经几乎不可能了，但是并不排除新的满足人们信息需求的领域上，出现能颠覆搜索引擎的产品或公司。 他告诉我们他的思考——产业生命周期的更迭总是从具有颠覆性的新技术开始的，聚光灯曾经照耀过一个个新兴的产业，使他们成为增长最快的经济引擎，如今这个焦点正是搜索引擎，但如果有一天，搜索引擎不能带给用户更多的价值——无论怎么努力去改进，其对于用户体验的提高已经微乎其微了的话，其光芒与风头被另一种产业替代，也将是一种必然。 那么我们怎么保持我们的领先地位呢？俞军再次强调了百度做产品的用户导向原则。以用户需求为导向，只做有需求，我们有优势和有利益的产品。“对于用户需求，请记住，我们永远是发现者，而不是创造者。”俞军说。 No related posts.&lt;img src=&quot;http://www1.feedsky.com/t1/636441423/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441423/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>雷军</category><category>产品经理</category><pubDate>Sat, 05 May 2012 13:15:00 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/leijun-resignation-speech.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4790</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/leijun-resignation-speech.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441423/4215915</fs:itemid></item><item><title>产品经理学习：俞军的PM12条</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441424/4215915/1/item.html</link><content:encoded>&lt;div&gt;俞军的PM12条&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;PM首先是用户&lt;/li&gt;
&lt;li&gt;站在用户角度看待问题&lt;/li&gt;
&lt;li&gt;用户体验是一个完整的过程&lt;/li&gt;
&lt;li&gt;追求效果，不做没用的东西&lt;/li&gt;
&lt;li&gt;发现需求，而不是创造需求&lt;/li&gt;
&lt;li&gt;决定不做什么，往往比决定做什么更重要&lt;/li&gt;
&lt;li&gt;用户是很难被教育的，要迎合用户，而不是改变用户&lt;/li&gt;
&lt;li&gt;关注最大多数用户，在关键点上超越竞争对手，快速上线，在实践中不断改进&lt;/li&gt;
&lt;li&gt;给用户稳定的体验预期&lt;/li&gt;
&lt;li&gt;如果不确定该怎么做，就先学别人是怎么做的&lt;/li&gt;
&lt;li&gt;把用户当作傻瓜，不要让用户思考和选择，替用户预先想好&lt;/li&gt;
&lt;li&gt;不要给用户不想要的东西，任何没用的东西对用户都是一种伤害&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;俞军崇尚的Google十戒：&lt;a href=&quot;http://www.biaodianfu.com/google-ten-things.html&quot;&gt;http://www.biaodianfu.com/google-ten-things.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/google-wrong.html' rel='bookmark' title='Google也是会犯错的'&gt;Google也是会犯错的&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/fragment-urls.html' rel='bookmark' title='URL中井号的作用'&gt;URL中井号的作用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/google-search-appliance.html' rel='bookmark' title='Google Search Appliance'&gt;Google Search Appliance&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441424/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441424/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/leijun-pm.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>俞军的PM12条 PM首先是用户 站在用户角度看待问题 用户体验是一个完整的过程 追求效果，不做没用的东西 发现需求，而不是创造需求 决定不做什么，往往比决定做什么更重要 用户是很难被教育的，要迎合用户，而不是改变用户 关注最大多数用户，在关键点上超越竞争对手，快速上线，在实践中不断改进 给用户稳定的体验预期 如果不确定该怎么做，就先学别人是怎么做的 把用户当作傻瓜，不要让用户思考和选择，替用户预先想好 不要给用户不想要的东西，任何没用的东西对用户都是一种伤害 俞军崇尚的Google十戒：http://www.biaodianfu.com/google-ten-things.html Related posts: Google也是会犯错的 URL中井号的作用 Google Search Appliance&lt;img src=&quot;http://www1.feedsky.com/t1/636441424/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441424/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>雷军</category><category>产品经理</category><pubDate>Sat, 05 May 2012 12:47:55 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/leijun-pm.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4787</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/leijun-pm.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441424/4215915</fs:itemid></item><item><title>产品经理学习：Google对产品经理的要求</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441425/4215915/1/item.html</link><content:encoded>&lt;p&gt;&lt;strong&gt;1）对产品以及所有相关的问题负责。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这会让你积极主动，你是第一个寻找bug的人，第一个与用户沟通的人，以及第一个担心产品是否合格的人。你总是第一个自愿为产品或团队做各种任务的志愿者，像是做会议记录、给客户发邮件、填补临时的空缺、为bug确定优先级，或是快速做出一个实体模型。始终持有这样一个想法：这不是别人的责任，这就是你的责任。当你这么做的时候，你会发现第2条会更容易。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2）具备难以置信的说服力。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你希望把事情完成，但你不是负责人，所以只能去说服别人。没有哪个团队向你汇报，也没有任何人会按照你的说法行事。你需要通过使别人信服而不是发号施令来完成事情。如果你正在做第1条，事情会变得简单，因为每个人都知道如果有人攻击这个产品，你和他们会位于同一个战壕。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3）成为一名工程师。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我并不是说你真的需要为产品编写代码。我想说的是，你应当像一名工程师那样对产品的构造过程具有好奇心。你应该了解产品功能在开发过程需要的成本，以及为什么开发成本会变得这么高。那个特性使用的是什么算法？为什么这个页面会呈现得很慢？大的架构变动对产品会产生影响，团队中的每个工程师都会对此非常重视，你也应该如此。如果你遇到项目的负责人，他们想要知道一些具体的事情，你应该能够为他们解释一些主要的工程方面的决定以及之前的利弊权衡。最好的的产品经理都会尽可能地变得更加技术化并乐此不疲。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4）积极，再积极一点。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你的团队很可能全部由工程师组成，并且中的一些可能非常愤世嫉俗。一个非常积极向上的产品经理能够在团队中创造一种包容的氛围。尽管每时每刻都保持积极看上去很可笑，但是积极是有传染性的，你的团队会依赖上它。请记住，你和主要的工程师可能会列出百万种让你沮丧的事情，但是团队中的其他人不应该知道这一切。因为你是产品经理，所以不应该沉浸在自己的担心中，这样会帮助他们更好地完成工作。你就是团队面向整个公司其他部门的窗口和信使。如果你变得消极，团队就会因此认为公司里其他人也是这么看待他们的工作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5）不要自我推荐。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这是显而易见的，如果你这么做了，不但非常无聊而且对自身也有害。赞美团队中的其他人，你和技术负责人已经是项目的主要联系人，因而不要做任何的推荐。如果你拿别人的辛苦劳动用来为自己博得赞赏，你不仅错了而且不会得逞。要心胸宽广。无论是撰写项目博客，还是产品新特性的午餐视频发布会，最优秀的产品经理都应该推荐团队的其他成员。看看谷歌最优秀的产品博客，你就会发现这些博客的作者并不总是由产品经理，反而会是团队中的各个成员。产品经理会积极推荐其他人。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6）无所畏惧。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这个名词如果是作家来解释可能会更好，但请你不要被字面意思所迷惑。最好的产品经理向领导汇报的内容和给团队中的工程师或设计师讲述的内容应该是一样的。如果你在被领导质问产品设计所作的决定时默不作声，你肯定不会成功。做出简洁明了的回答，并无所畏惧地为你团队的创意辩护。&lt;/p&gt;
&lt;p&gt;No related posts.&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441425/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441425/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/google-pm.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>1）对产品以及所有相关的问题负责。 这会让你积极主动，你是第一个寻找bug的人，第一个与用户沟通的人，以及第一个担心产品是否合格的人。你总是第一个自愿为产品或团队做各种任务的志愿者，像是做会议记录、给客户发邮件、填补临时的空缺、为bug确定优先级，或是快速做出一个实体模型。始终持有这样一个想法：这不是别人的责任，这就是你的责任。当你这么做的时候，你会发现第2条会更容易。 2）具备难以置信的说服力。 你希望把事情完成，但你不是负责人，所以只能去说服别人。没有哪个团队向你汇报，也没有任何人会按照你的说法行事。你需要通过使别人信服而不是发号施令来完成事情。如果你正在做第1条，事情会变得简单，因为每个人都知道如果有人攻击这个产品，你和他们会位于同一个战壕。 3）成为一名工程师。 我并不是说你真的需要为产品编写代码。我想说的是，你应当像一名工程师那样对产品的构造过程具有好奇心。你应该了解产品功能在开发过程需要的成本，以及为什么开发成本会变得这么高。那个特性使用的是什么算法？为什么这个页面会呈现得很慢？大的架构变动对产品会产生影响，团队中的每个工程师都会对此非常重视，你也应该如此。如果你遇到项目的负责人，他们想要知道一些具体的事情，你应该能够为他们解释一些主要的工程方面的决定以及之前的利弊权衡。最好的的产品经理都会尽可能地变得更加技术化并乐此不疲。 4）积极，再积极一点。 你的团队很可能全部由工程师组成，并且中的一些可能非常愤世嫉俗。一个非常积极向上的产品经理能够在团队中创造一种包容的氛围。尽管每时每刻都保持积极看上去很可笑，但是积极是有传染性的，你的团队会依赖上它。请记住，你和主要的工程师可能会列出百万种让你沮丧的事情，但是团队中的其他人不应该知道这一切。因为你是产品经理，所以不应该沉浸在自己的担心中，这样会帮助他们更好地完成工作。你就是团队面向整个公司其他部门的窗口和信使。如果你变得消极，团队就会因此认为公司里其他人也是这么看待他们的工作。 5）不要自我推荐。 这是显而易见的，如果你这么做了，不但非常无聊而且对自身也有害。赞美团队中的其他人，你和技术负责人已经是项目的主要联系人，因而不要做任何的推荐。如果你拿别人的辛苦劳动用来为自己博得赞赏，你不仅错了而且不会得逞。要心胸宽广。无论是撰写项目博客，还是产品新特性的午餐视频发布会，最优秀的产品经理都应该推荐团队的其他成员。看看谷歌最优秀的产品博客，你就会发现这些博客的作者并不总是由产品经理，反而会是团队中的各个成员。产品经理会积极推荐其他人。 6）无所畏惧。 这个名词如果是作家来解释可能会更好，但请你不要被字面意思所迷惑。最好的产品经理向领导汇报的内容和给团队中的工程师或设计师讲述的内容应该是一样的。如果你在被领导质问产品设计所作的决定时默不作声，你肯定不会成功。做出简洁明了的回答，并无所畏惧地为你团队的创意辩护。 No related posts.&lt;img src=&quot;http://www1.feedsky.com/t1/636441425/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441425/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>Google</category><category>产品经理</category><pubDate>Sat, 05 May 2012 11:19:57 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/google-pm.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4784</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/google-pm.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441425/4215915</fs:itemid></item><item><title>Python模块学习之hashlib</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441426/4215915/1/item.html</link><content:encoded>&lt;p&gt;hashlib是个专门提供hash算法的库，里面包括md5, sha1, sha224, sha256, sha384, sha512，使用非常简单、方便。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MD5&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;MD5的全称是Message-Digest Algorithm 5（信息-摘要算法）。128位长度。目前MD5是一种不可逆算法。&lt;/p&gt;
&lt;p&gt;具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SHA1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5，加密后的数据长度更长，&lt;/p&gt;
&lt;p&gt;它对长度小于264的输入，产生长度为160bit的散列值。比MD5多32位。因此，比MD5更加安全，但SHA1的运算速度就比MD5要慢了。&lt;/p&gt;
&lt;p&gt;下面就来看看hashlib的使用方法：&lt;/p&gt;
&lt;pre class=&quot;brush: python; gutter: true&quot;&gt;import hashlib

a = &amp;quot;a test string&amp;quot;

print hashlib.md5(a).hexdigest()

print hashlib.sha1(a).hexdigest()

print hashlib.sha224(a).hexdigest()

print hashlib.sha256(a).hexdigest()

print hashlib.sha384(a).hexdigest()

print hashlib.sha512(a).hexdigest()&lt;/pre&gt;
&lt;p&gt;参考链接：&lt;a href=&quot;http://docs.python.org/library/hashlib.html&quot;&gt;http://docs.python.org/library/hashlib.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/python-uuid.html' rel='bookmark' title='Python模块学习之UUID'&gt;Python模块学习之UUID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/smarty-intercept-chinese-char.html' rel='bookmark' title='Smarty截取中文乱码的解决办法'&gt;Smarty截取中文乱码的解决办法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/python-mssql.html' rel='bookmark' title='使用Python连接MSSQL方法'&gt;使用Python连接MSSQL方法&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441426/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441426/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/python-hashlib.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>hashlib是个专门提供hash算法的库，里面包括md5, sha1, sha224, sha256, sha384, sha512，使用非常简单、方便。 MD5 MD5的全称是Message-Digest Algorithm 5（信息-摘要算法）。128位长度。目前MD5是一种不可逆算法。 具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。 SHA1 SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5，加密后的数据长度更长， 它对长度小于264的输入，产生长度为160bit的散列值。比MD5多32位。因此，比MD5更加安全，但SHA1的运算速度就比MD5要慢了。 下面就来看看hashlib的使用方法： import hashlib a = &amp;#34;a test string&amp;#34; print hashlib.md5(a).hexdigest() print hashlib.sha1(a).hexdigest() print hashlib.sha224(a).hexdigest() print hashlib.sha256(a).hexdigest() print hashlib.sha384(a).hexdigest() print hashlib.sha512(a).hexdigest() 参考链接：http://docs.python.org/library/hashlib.html Related posts: Python模块学习之UUID Smarty截取中文乱码的解决办法 使用Python连接MSSQL方法&lt;img src=&quot;http://www1.feedsky.com/t1/636441426/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441426/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>python</category><category>程序设计</category><category>MD5</category><pubDate>Sat, 05 May 2012 10:56:38 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/python-hashlib.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4737</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/python-hashlib.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441426/4215915</fs:itemid></item><item><title>如何给网站增加“添加到收藏夹”</title><link>http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441427/4215915/1/item.html</link><content:encoded>&lt;p&gt;给网站添加“添加到收藏夹”理论上应该是很简单的事情，但是受到各种浏览器和操作系统的不一致的问题，使得这个问题异常的繁琐啊。&lt;/p&gt;
&lt;p&gt;下面是梳理的一些资料，仅供参考。&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;alignnone size-full wp-image-4775&quot; title=&quot;add-to-favorites-icon&quot; src=&quot;http://www.biaodianfu.com/wp-content/uploads/2012/05/add-to-favorites-icon.png&quot; alt=&quot;&quot; width=&quot;256&quot; height=&quot;256&quot; /&gt;&lt;/p&gt;
&lt;p&gt;首先是使用快捷键进行添加，如我们熟知的“Ctrl+D”，但是并不是说有的电脑都支持这么操作。键盘快捷键：&lt;strong&gt;Ctrl+D &lt;/strong&gt;仅适用于 Windows 和Linux）；&lt;strong&gt;⌘-D &lt;/strong&gt;才适用于苹果机（苹果机上没有Ctrl键）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方案一：使用Javascript模拟键盘操作&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;brush: javascript; gutter: true&quot;&gt;BookmarkApp = function () {
    var isIEmac = false;
    var isMSIE = (-[1,]) ? false : true;
    var cjTitle = &amp;quot;Welcome to CodeCTO.com&amp;quot;;
    var cjHref = location.href;

    function hotKeys() {
        var ua = navigator.userAgent.toLowerCase();
        var str = &amp;#039;&amp;#039;;
        var isWebkit = (ua.indexOf(&amp;#039;webkit&amp;#039;) != - 1);
        var isMac = (ua.indexOf(&amp;#039;mac&amp;#039;) != - 1);

        if (ua.indexOf(&amp;#039;konqueror&amp;#039;) != - 1) {
            str = &amp;#039;CTRL + B&amp;#039;; // Konqueror
        } else if (window.home || isWebkit || isIEmac || isMac) {
            str = (isMac ? &amp;#039;Command/Cmd&amp;#039; : &amp;#039;CTRL&amp;#039;) + &amp;#039; + D&amp;#039;; // Netscape, Safari, iCab, IE5/Mac
        }
        return ((str) ? &amp;#039;Press &amp;#039; + str + &amp;#039; to bookmark this page.&amp;#039; : str);
    }

    function isIE8() {
        var rv = -1;
        if (navigator.appName == &amp;#039;Microsoft Internet Explorer&amp;#039;) {
            var ua = navigator.userAgent;
            var re = new RegExp(&amp;quot;MSIE ([0-9]{1,}[\.0-9]{0,})&amp;quot;);
            if (re.exec(ua) != null) {
                rv = parseFloat(RegExp.$1);
            }
        }
        if (rv &amp;gt; - 1) {
            if (rv &amp;gt;= 8.0) {
                return true;
            }
        }
        return false;
    }

    function addBookmark(a) {
        try {
            if (typeof a == &amp;quot;object&amp;quot; &amp;amp;&amp;amp; a.tagName.toLowerCase() == &amp;quot;a&amp;quot;) {
                a.style.cursor = &amp;#039;pointer&amp;#039;;
                if ((typeof window.sidebar == &amp;quot;object&amp;quot;) &amp;amp;&amp;amp; (typeof window.sidebar.addPanel == &amp;quot;function&amp;quot;)) {
                    window.sidebar.addPanel(cjTitle, cjHref, &amp;quot;&amp;quot;); // Gecko
                    return false;
                } else if (isMSIE &amp;amp;&amp;amp; typeof window.external == &amp;quot;object&amp;quot;) {
                    if (isIE8()) {
                        window.external.AddToFavoritesBar(cjHref, cjTitle); // IE 8
                    } else {
                        window.external.AddFavorite(cjHref, cjTitle); // IE &amp;lt;=7
                    }
                    return false;
                } else if (window.opera) {
                    a.href = cjHref;
                    a.title = cjTitle;
                    a.rel = &amp;#039;sidebar&amp;#039;; // Opera 7+
                    return true;
                } else {
                    alert(hotKeys());
                }
            } else {
                throw &amp;quot;Error occured.\r\nNote, only A tagname is allowed!&amp;quot;;
            }
        } catch (err) {
            alert(err);
        }

    }

    return {
        addBookmark : addBookmark
    }
}();&lt;/pre&gt;
&lt;p&gt;如果嫌上面的方案比较麻烦，可以采用jQuery来快速搞定。具体实现如下： &lt;/p&gt;
&lt;pre class=&quot;brush: javascript; gutter: true&quot;&gt;var evt = jQuery.Event(&amp;quot;keypress&amp;quot;);
evt.keyCode = 100; // d
evt.ctrlKey = true;
$(document).trigger(evt);&lt;/pre&gt;
&lt;p&gt;方案二：采用Javascript来添加书签&lt;/p&gt;
&lt;p&gt;以下是一段能自动把当前页面添加到浏览器书签的JavaScript 脚本，支持 FireFox，Opera 和 IE，Webkit 核心的 Safari 和Chrome 暂时没有实现类似功能的方法。&lt;/p&gt;
&lt;pre class=&quot;brush: javascript; gutter: true&quot;&gt;function bookmark(url, title){
    if (window.sidebar) // firefox
        window.sidebar.addPanel(title, url, &amp;quot;&amp;quot;);
    else if(window.opera &amp;amp;&amp;amp; window.print){ // opera
        var elem = document.createElement(&amp;#039;a&amp;#039;);
        elem.setAttribute(&amp;#039;href&amp;#039;,url);
        elem.setAttribute(&amp;#039;title&amp;#039;,title);
        elem.setAttribute(&amp;#039;rel&amp;#039;,&amp;#039;sidebar&amp;#039;);
        elem.click();
    }
    else if(document.all) // ie
        window.external.AddFavorite(url, title);
    else
        alert(&amp;#039;Your browser does not support this function.&amp;#039;);
}&lt;/pre&gt;
&lt;p&gt;同样的，也提供另外的jQuery方案：&lt;/p&gt;
&lt;pre class=&quot;brush: javascript; gutter: true&quot;&gt;$(document).ready(function(){
$(&amp;quot;a.jQueryBookmark&amp;quot;).click(function(e){
e.preventDefault(); // this will prevent the anchor tag from going the user off to the link
var bookmarkUrl = this.href;
var bookmarkTitle = this.title;

if (window.sidebar) { // For Mozilla Firefox Bookmark
window.sidebar.addPanel(bookmarkTitle, bookmarkUrl,&amp;quot;&amp;quot;);
} else if( window.external || document.all) { // For IE Favorite
window.external.AddFavorite( bookmarkUrl, bookmarkTitle);
} else if(window.opera) { // For Opera Browsers
$(&amp;quot;a.jQueryBookmark&amp;quot;).attr(&amp;quot;href&amp;quot;,bookmarkUrl);
$(&amp;quot;a.jQueryBookmark&amp;quot;).attr(&amp;quot;title&amp;quot;,bookmarkTitle);
$(&amp;quot;a.jQueryBookmark&amp;quot;).attr(&amp;quot;rel&amp;quot;,&amp;quot;sidebar&amp;quot;);
} else { // for other browsers which does not support
alert(&amp;#039;Your browser does not support this bookmark action&amp;#039;);
return false;
}
});
});&lt;/pre&gt;
&lt;p&gt;相应的HTML代码如下：&lt;/p&gt;
&lt;pre class=&quot;brush: html; gutter: true&quot;&gt;&amp;lt;a href=&amp;quot;http://www.biaodianfu.com&amp;quot; title=&amp;quot;标点符的博客&amp;quot; class=&amp;quot;jQueryBookmark&amp;quot;&amp;gt;标点符&amp;lt;/a&amp;gt;&lt;/pre&gt;
&lt;p&gt;Related posts:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/php-spider-log.html' rel='bookmark' title='PHP版记录蜘蛛爬行历史'&gt;PHP版记录蜘蛛爬行历史&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/simple-javascript-templating.html' rel='bookmark' title='Javascript模板引擎分享'&gt;Javascript模板引擎分享&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.biaodianfu.com/dangdang-click-page-tracker.html' rel='bookmark' title='流量跟踪系统：当当网用户行为跟踪系统'&gt;流量跟踪系统：当当网用户行为跟踪系统&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/636441427/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441427/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.biaodianfu.com/add-to-favorites.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>给网站添加“添加到收藏夹”理论上应该是很简单的事情，但是受到各种浏览器和操作系统的不一致的问题，使得这个问题异常的繁琐啊。 下面是梳理的一些资料，仅供参考。 首先是使用快捷键进行添加，如我们熟知的“Ctrl+D”，但是并不是说有的电脑都支持这么操作。键盘快捷键：Ctrl+D 仅适用于 Windows 和Linux）；⌘-D 才适用于苹果机（苹果机上没有Ctrl键）。 方案一：使用Javascript模拟键盘操作 BookmarkApp = function () { var isIEmac = false; var isMSIE = (-[1,]) ? false : true; var cjTitle = &amp;#34;Welcome to CodeCTO.com&amp;#34;; var cjHref = location.href; function hotKeys() { var ua = navigator.userAgent.toLowerCase(); var str = &amp;#039;&amp;#039;; var isWebkit = (ua.indexOf(&amp;#039;webkit&amp;#039;) != - 1); var isMac [...]&lt;img src=&quot;http://www1.feedsky.com/t1/636441427/biaodianfu/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/biaodianfu/~8673487/636441427/4215915/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>JavaScript</category><pubDate>Thu, 03 May 2012 20:33:33 +0800</pubDate><author>标点符</author><comments>http://www.biaodianfu.com/add-to-favorites.html#comments</comments><guid isPermaLink="false">http://www.biaodianfu.com/?p=4774</guid><dc:creator>标点符</dc:creator><fs:srclink>http://www.biaodianfu.com/add-to-favorites.html</fs:srclink><fs:srcfeed>http://www.biaodianfu.com/feed</fs:srcfeed><fs:itemid>feedsky/biaodianfu/~8673487/636441427/4215915</fs:itemid></item></channel></rss>
