﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Cat in dotNET</title><link>http://www.cnblogs.com/cathsfz/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 01:20:20 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 01:20:20 GMT</pubDate><ttl>60</ttl><item><title>Apple 谈论产品 vs Microsoft 谈论技术</title><link>http://www.cnblogs.com/cathsfz/archive/2010/02/07/1665314.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Sun, 07 Feb 2010 13:02:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2010/02/07/1665314.html</guid><description><![CDATA[<p>阅读: 1485 评论: 25 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2010-02-07 21:02 <a href="http://www.cnblogs.com/cathsfz/archive/2010/02/07/1665314.html" target="_blank">原文链接</a></p><p>看了一下 Jeff 的《<a target="_blank" href="http://www.cnblogs.com/JeffreyZhao/archive/2010/02/03/twitter-talk-about-ms-dev-at-20100201.html">李笑来激起千层浪，赵姐夫力拒众强敌</a>》，回顾了一下之前 Twitter 上的讨论。我个人觉得， Apple 观点和 Microsoft 观点是不同的，所以才造成了如此之多的争论。很多人在使用 Microsoft 技术的同时，由于 Microsoft 铺天盖地的宣传信息，自然而然地也接纳了 Microsoft 观点。使用这种观点去跟持有 Apple 观点的人争论是没有意义的，因为大家根本就是站在不同的角度来看到同一个事物。</p>
<p>看看 Jeff 整理的对话记录，里面有多少 Microsoft 技术名词？ .NET 、 COM 、 DDE 、 OLE 、 CLR 、MFC &#8230;&#8230;这就是 Microsoft 观点&#9472;&#9472;我们每天都有众多的技术革新，通过这些技术革新让技术人员感受到震撼（ Microsoft 在推 .NET 初期确实很喜欢用 ROCK 这个词）。当然， <a target="_blank" href="https://twitter.com/virushuo">@virushuo</a> 和 <a target="_blank" href="https://twitter.com/tinyfool">@tinyfool</a> 被震撼多了，就说自己被强奸了。就算是在博客园里，也每天有人抱怨 Microsoft 技术更新太快，没办法跟上技术革新的速度。这就是 Microsoft 观点，满眼都是技术名词，名词刷新速度越快，越 Microsoft 。</p>
<p>再看看对话记录里面有多少 Apple 的技术名词。能看到的也就是 Carbon 和 Cocoa 两个，连 Cocoa Touch 也不提。是因为大家觉得 Cocoa Touch 和 Cocoa 就是足够相似，所以在讨论 iPhone 时没必要提及 Cocoa Touch 吗？显然不是。你看 Microsoft ，除了炒作 .NET ，还炒作 .NET CF 、 .NET MF 。就凭这一点，你就能察觉到 Apple 观点是和 Microsoft 观点不同的。 Apple 观点并不看重技术名词。</p>
<p>那么 Apple 观点看重的是什么？我们可以来对比一下 <a target="_blank" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?i=55718676&amp;id=275834665">WWDC 2009 Keynote</a> 和 <a target="_blank" href="http://microsoftpdc.com/Sessions/KEY01">PDC 2009 Keynote</a> 。在看完 PDC Keynote 之后，我来问你一个问题：这段视频中的哪些信息给你留下了印象？可能你会说，有 Windows Azure ，有 Silverlight 4，等等一堆技术名词。那么我再问你： Silverlight 4 是什么啊？我想你会用更多的名词来解释它比 Silverlight 3 多了什么新增功能。回头来看看 WWDC Keynote ，给你留下印象的是什么。那可能是「 Safari 4 比 IE 8 快7.8倍」，以及 Grand Central Dispatch 。那么 Grand Central Dispatch 又是什么？它可以让应用程序更有效地利用线程，从而提高响应速度，不需要提及更多的技术细节就能把重点说清楚。</p>
<p>Apple 看重的是产品，特别是用户使用产品时的体验。幕后的技术？就跟爱一样，是做出来的，而不是说出来的。最近我读了一篇文章，叫做《 <a target="_blank" href="http://robertmao.com/2010/01/24/revolution-vs-evolution/">Revolution vs Evolution</a> 》。文章里面说到，用户接触到的人机交互界面应该是 evolution 的，用户原有的使用习惯得到了保持，同时很多细微的地方又有所改进，而这些改进所依赖的正是背后技术的 revolution 。留意 WWDC 中关于 Snow Leopard 内置应用改进的部分，第一个提到的就是 Finder ，其中第一句话就是「我们都爱 Leopard 中的 Finder ，因此我们没有改变 Snow Leopard 中的 Finder ，至少用户界面没有发生变化」。然后才说到， Snow Leopard 中的 Finder 其实是基于 Cocoa 完全重写的，带来的好处包括「更快地绘制图标」、「更快地清空 Trash 」等等。 Finder 背后的技术由 Carbon 转变为 Cocoa ，这是 revolution ，而 Finder 用起来的感觉则只是 evolution 。</p>
<p>既然说到产品，我们再来对比一下 <a target="_blank" href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?i=80469507&amp;id=275834665">iPad 发布会</a> 和 <a target="_blank" href="http://www.microsoft.com/presspass/presskits/windows7/">Windows 7 发布会</a>。在 iPad 发布会上， Steve Jobs 把 iPad 拿出来，然后坐在沙发上摆弄了12分钟。这12分钟里面，他没有介绍任何的新特性，只是把内置的应用逐一打开，使用一下，然后关掉。为什么他不需要介绍新特性？因为这里面根本就没有新特性，任何一个熟悉 Mac 或者 iPhone 的人都能轻易理解 iPad 的用户界面，这正好符合上面所说的「用户界面只能做 evolution 」。当然，这12分钟也不是白白浪费的， Steve Jobs 就是要让所有人看到，作为一个普通用户，使用 iPad 是多么流畅的一件事，常用的功能触手可及，无需进行任何学习。至于 Windows 7 的发布会？请问这里有多少人能够说出 Homegroup 跟一般 Windows 共享有什么区别的？我想没多少人能够说清楚，但 Microsoft 偏要为此创造出一个新名词，以及一种需要重新学习的交互方式。</p>
<p>Microsoft 不仅仅不断地为技术创造新名词，还不断地为产品创造新名词。有很多程序员都抱怨， .NET 3.5 带来一堆诸如 WPF 、 WCF 、 WF 的东西，根本没时间去学。我觉得这没什么好抱怨的，受害的又不仅仅是程序员，最终用户一样面对一堆搞不明白的新概念，例如我就不知道 Homegroup 有什么特别的。最终用户是上帝，犯错的当然不可能是最终用户。类推可得，程序员也没有犯错。在这个问题上，犯错的只可能是 Microsoft 了。</p>
<p>正是这两种观点之间的差异，使得持有 Microsoft 观点的程序员每天都在忙于追逐那些英文里叫做「 buzzword 」的东西，觉得弄懂了某个 buzzword 就是某种进步，而持有 Apple 观点的程序员则在围绕着产品谈论「 how does it look and feel 」。这让我想起了一幅<a target="_blank" href="http://www.smbc-comics.com/index.php?db=comics&amp;id=1777">漫画</a>，说的是如何区分科学粉丝与科学家。同样是问「你记得住圆周率的多少位」，科学粉丝会说出一个很大的数字来，而科学家则会说他只记得住1位。或许我们应该思考一下，宣称自己懂得多少种技术，这到底有没有意义。</p>
<p>正所谓「每一个优雅的接口，背后都有一个龌龊的实现」。这个接口（ Interface ）可能是用户界面（ UI ）也可能是编程接口（ API ），这不重要，重要的是它是否优雅，也就是 <a target="_blank" href="https://twitter.com/xiaolai">@xiaolai</a> 所说的「表面功夫一定要做足」。至于背后的实现是否龌龊，这也不重要，重要的是它必须站在幕后。就算它比接口更优雅，它也不能跑到台前来喧宾夺主。该做的，老老实实地做了，没必要拿出来说；该说的，说到每一个人都心动了，但不一定去做。</p><img src="http://www.cnblogs.com/cathsfz/aggbug/1665314.html?type=1" width="1" height="1" alt=""/><p>评论: 25　<a href="http://www.cnblogs.com/cathsfz/archive/2010/02/07/1665314.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2010/02/07/1665314.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>欢迎加入 iPhone / iPad 开发小组</title><link>http://www.cnblogs.com/cathsfz/archive/2010/02/03/1662957.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Wed, 03 Feb 2010 11:35:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2010/02/03/1662957.html</guid><description><![CDATA[<p>阅读: 1503 评论: 7 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2010-02-03 19:35 <a href="http://www.cnblogs.com/cathsfz/archive/2010/02/03/1662957.html" target="_blank">原文链接</a></p><p>刚刚看到博客园的 <a href="http://kb.cnblogs.com/zt/ipad/">iPad 专题</a>上线了，于是我就跟 <a href="http://dudu.cnblogs.com/">dudu</a> 讨论要不要开一个 iPhone / iPad 开发小组或者团队博客。 dudu 说，先开个小组并发到首页推广一下吧，于是就有了 <a href="http://space.cnblogs.com/group/iphone/">iPhone / iPad 开发小组</a>。如果小组人气足的话，我们就再开一个团队博客。</p>
<p>小组里欢迎讨论与 iPhone / iPad 开发相关的问题，包括 Objective-C 和 Cocoa 相关的问题。同时小组也很欢迎大家晒晒自己写的 App ，或者是相关的技术博客文章。如果是一般的 iPhone 使用问题，请移步至 iPhone 使用论坛，谢谢。</p>
<img src="http://www.cnblogs.com/cathsfz/aggbug/1662957.html?type=1" width="1" height="1" alt=""/><p>评论: 7　<a href="http://www.cnblogs.com/cathsfz/archive/2010/02/03/1662957.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2010/02/03/1662957.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>程序员的品味</title><link>http://www.cnblogs.com/cathsfz/archive/2010/02/01/1660909.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Mon, 01 Feb 2010 04:04:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2010/02/01/1660909.html</guid><description><![CDATA[<p>阅读: 3607 评论: 87 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2010-02-01 12:04 <a href="http://www.cnblogs.com/cathsfz/archive/2010/02/01/1660909.html" target="_blank">原文链接</a></p><p>上个月跟刘江以及一些《程序员》的热心作者读者吃了一顿饭，刘江让大家谈谈《程序员》的内容以及未来的方向。在激烈的讨论之后，我觉得我应该把自己的想法写下来，但那篇文章在我的草稿箱里躺了一个月了，就是无法结尾。</p>
<p>那篇文章想要表达的意思很简单，我认为《程序员》应该提供一流的阅读体验。至于作者和编辑手上的内容，就如同程序员手上的代码一样，都只是为了实现特定体验的手段而已。就拿《Avatar》来做例子吧，它的内容值多少钱？先别说它内容做得怎么样，就算做得再好，在中国消费者眼里也就值一张盗版光盘的价格。但是大家都原意花钱去电影院看《Avatar》，而且非 IMAX 不看，这说明大家花钱买的是体验，而非内容。</p>
<p>文章写到最后，我认为《程序员》的阅读体验相对于一般 IT 杂志而言，就应该如同 IMAX 跟家里电视机的区别一样大。价格不是问题，大家天天都在家里看电视也不是问题，只要体验是值回票价的，大家就原意排队买票看 IMAX 。然而为什么《程序员》应该去扮演 IT 杂志中 IMAX 的角色，为什么《程序员》就不能老老实实地做电视机，这个问题我无法解答，因此那篇文章也无法发布。</p>
<p>最近我重看了一次 <a target="_blank" href="http://en.wikipedia.org/wiki/Paul_Graham">Paul Graham</a> 那篇《<a target="_blank" href="http://apple4.us/2009/07/taste-for-makers.html">创造者的品味</a>》，并且花了些时间去看<a target="_blank" href="http://www.paulgraham.com/taste.html">原版</a>。然后周末在 <a target="_blank" href="http://www.beijing-open-party.org/">Open Party</a> 上有和 Tin 聊了一下如何培养程序员的品味，我想我已经知道如何回答上面那个问题了。</p>
<h4>什么构成品质</h4>
<p>对于博客园这样的草根媒体来说，有高品质的博客，也有低品质的博客，这是可以容忍的。高品质的博客，说的不仅仅是文章内容质量好。就拿 <a target="_blank" href="http://jeffreyzhao.cnblogs.com/">Jeff</a> 的博客来说，模板源自一个漂亮的 WordPress 模板，然后 Jeff 根据他的需求对细节作出了调整。 Jeff 还选择了一个视觉效果比较贴近 Visual Studio 的代码着色器，这使得代码块的整体视觉效果不会太糟糕。而且 Jeff 自己写的代码通常都很简介很清晰，这保证了他在文章中嵌入一些代码块后，可读性还是十分高的。此外，清晰的逻辑结构和小节的划分，使得读者能够快速跳扫描一遍文章，然后认真阅读自己想要深入理解的段落。</p>
<p>至于《程序员》，你随便找一本翻开，和屏幕上 Jeff 的博客对比一下，你可能会觉的 Jeff 的博客才是专业媒体。就拿版式来说，《程序员》和同等价位的时尚、美食、旅游杂志实在没得比。文章中内嵌大量的代码块，而且为了不破坏分栏结构，大多数原本一行的代码必须分作两行写，第二行还不能有缩进，因为缩进了可能就要分作三行写。至于插入 UML ，往往就意味着破坏分栏结构了，最终导致文字环绕的出现。我想任何一个看过《写给大家看的设计书》的人，都能指出这些版式设计的错误。</p>
<p>我知道作为一本程序员的杂志，插入代码和图表是必须的，就如同时尚杂志必须出现服饰、美食杂志必须出现食物、旅游杂志必须出现景点一样。区别在于，凡是出现在杂志上的服饰、食物、景点，展示的都是事物最美好最让人向往的一面，然而《程序员》杂志上的代码和图表并非如此，你看到这些代码后只会感到厌恶，并且心里想着，「我用 TextMate 随便打开一份我写下的代码都比你这要好看」。</p>
<p>说到品质，有一个对比效果非常强烈的例子，那就是2009年10月《时尚先生》上的 IT 企业家李开复，和2009年12月《程序员》上的 IT 民工李开复。我真的很想知道，如果把这两张照片剪下来，然后拿去小学做访谈，问小学生想要长大后成为这两个人当中的哪一个，最终的统计结果会是怎样的。这个统计的结果，或许可以通过类比猜出来。在《程序员》中找到《架构师接龙》这篇文章，把你大脑里对架构师的认识先抹掉，看着文章开头两位架构师的照片问自己一个问题，「我想要成为架构师吗？我想要成为这两个人当中的任何一个吗？」</p>
<p>选择符合自己审美观的事物，是人的天性。这种选择，同时也就是对品质的选择。这种审美观，源自长期的积累，就如同熟练的程序员能够无意识地一下子嗅出代码中坏味道，而无需刻意去思考「这段代码违反 DRY 原则了吗？」</p>
<h4>品质影响品味</h4>
<p>有人说，「北京有西直门换乘，就不可能有一流的设计师」。因为如果一位设计师每天都要经过西直门换乘，他就必须学会容忍别人的恶心设计，久而久之，他也就学会了忍自己的恶心设计。同样地，如果你每天看在线版的 MSDN ，你就会习惯了里面一些反模式的示例代码，习惯了这种满眼内容但就是找不到你所需信息的文档，习惯了 MSDN 网站打开的龟速。接下来，你就会觉得自己的代码偶尔反模式不是什么问题，自己的文档没人能读懂也不是什么问题，自己的 ASP.NET 网站比 MSDN 网站还慢更不是什么问题。</p>
<p>因此，品味是可以被引导的。你每天使用 Visual Studio 的体验（打开速度、键入代码便捷程度），查阅 MSDN 的体验（搜索多少次才能找到你要的信息），浏览技术博客的体验（文字是否容易理解、代码排版与着色是否易读）&#8230;&#8230;这一切都会影响你的品味。在你写程序写文章时，你的大脑里会呈现出「一个优美的程序应该是这样子的」，或者是「一篇优美的文章应该是这样子的」。这个具体的想象，源自于你平时阅读到的程序和文章。正所谓「 Garbage in. Garbage out. 」，输入的品质决定了输出的品质。</p>
<p>程序员每天都要接触大量的信息源。聪明的程序员会选择那些高品质的信息源，同时避免在低品质的信息源上浪费时间。如果我从博客园首页打开一篇文章，然后看到作者在模板上乱改，例如插入拍得不怎么样的个人照片、消耗我 CPU 的 Flash 时钟等等影响视觉效果的东西，又或者是把 CSS 改得完全没有美感连裸奔都不如，我都不会再去看文章的具体内容，直接把窗口关掉。至于 CSDN 的博客，看到链接我就绕开了，因为我知道那个链接背后的页面有多恶心，右下角还一定会弹一个小窗口出来。这样做的原因很简单，如果你不在乎博客给人的第一印象如何，我不相信你对文章质量能有多在乎。</p>
<h4>有品味才有品质</h4>
<p>为什么有些杂志能够有如此高的品质，来迎合读者对品味的追求？我觉得这是因为那些杂志的背后有一群有品味的作者、摄影师、编辑&#8230;&#8230;最最重要的是，有一位有品味的 CEO 。尽管我对杂志行业了解不多，但这个道理在软硬件行业是普遍存在的。</p>
<p><a target="_blank" href="http://en.wikipedia.org/wiki/Jonathan_Ive">Jonathan Ive</a> ， Apple 负责工业设计的高级副总裁，在 Steve Jobs 回归 Apple 之后带领着设计团队创造了一系列突破性的产品，包括拯救了 Apple 的 iMac 、美国人手一部的 iPod 以及最近发布的 iPad 。那么在他加入 Apple 之后到 Steve Jobs 回归之前的这段时间里，他又做了什么呢？在这段时间里， Apple 一直在下滑， CEO 换了两任， Jonathan Ive 没能造出任何能拯救 Apple 的产品来。 Steve Jobs 和 Jonathan Ive ，谁的品味更重要一些？</p>
<h4>有品质自然会有面包</h4>
<p>我一直不明白，为什么博客园要把资源浪费在小组、问答、招聘这类项目上。在我看来，博客园有比这重要得多的问题有待解决。举个例子，文章编辑器和评论编辑器。尽管有不少人用 Windows Live Writer 之类的客户端，但编辑器依然显著地影响着作者和评论者的写作体验，而这个体验决定了最终的文章质量、评论质量。</p>
<p>为什么 Mac 软件的界面设计往往比 Windows 的要好？仅仅是因为 Apple 有 <a target="_blank" href="http://developer.apple.com/Mac/library/documentation/UserExperience/Conceptual/AppleHIGuidelines/index.html">HIG</a> （人机交互指引）吗？这是因为 Interface Builder 会引导你把控件放到符合 HIG 的位置上去。如果你把一个 <code>Label</code> 和一个 <code>TextFiled</code> 放到一行， Interface Builder 会提示你按照文本的基线对齐，而非按照控件边框对齐。回头看看 Visual Studio ，我相信不少人遇到过 <code>Label</code> 和 <code>TextBox</code> 难以对齐的问题，调来调去都不好看，最后索性就不调了。</p>
<p>写文章的人其实也会遇到同样的问题。谁不希望自己随手写出来的文章就很美观呢？但能够花时间去折腾模板和对每一篇文章进行细节调整的毕竟是少数人。这时候，编辑器能够达到什么样的品质，往往也就决定了文章和评论能够达到什么样的品质。</p>
<p>或许有人会说，问答很重要，因为工作上的问题解决不了我就会被炒掉。类似地，应该也有人会说，招聘很重要，如果连工作都找不到我哪里有闲情来写博客。这样的想法太过短视了。如果你有一个高品质的博客，你不可能没有好工作。不相信的话，你可以看看那些业界大牛的网站，有哪一个品质不高的？对自己的代码有什么样的品质要求，对自己的网站也就有什么样的品质要求。反过来，企业通过看网站的品质，也就能看出你的品质。</p>
<p>我知道，并不是每一个程序员都懂前端开发，也不是每一个程序员都懂视觉设计，但你必须意识到一点&#9472;&#9472;那些大牛也不是天生下来就懂这些的，他们也必须经历学习的过程，只是他们为了把自己的网站做到符合自己的品味，不得不学习更多的知识而已。 Jeff 在做模板的时候，也问过我一些前端开发的问题，因此我觉得关键不在于你是否懂前端开发，而在于你是否真的想要把事情做好。（当然，你心目中「好」的定义由你的品味决定。）</p>
<p>对于网站和杂志来说，同样的道理是成立的。有些时候，不是覆盖越广的人群和满足越多的需求，就是越好的商业策划。如果能力有限，就用心做好一件事情。做到品质完全超越所有同行，钱自然会找上门来。</p>
<p>我最近读了一篇对 P1.cn 创始人王宇的<a target="_blank" href="http://www.mobinode.com/2010/01/12/p1-the-highest-quality-social-network-in-china/">采访</a>。 P1.cn 是一个面向高消费人群的 SNS 。王宇说， P1.cn 用户的家庭月均收入为 ￥8000 ，开心的这数字是 ￥3000 ，人人的则是 ￥2000 ， QQ 就更低了。尽管这是未经第三方证实的数据，但至少 P1.cn 上的广告能够说明问题&#9472;&#9472;我想你不可能在 P1.cn 以外的 SNS 见到这些广告：轩尼诗的酒、佳能的数码单反、宾利的汽车&#8230;&#8230;道理很简单，你去开心投放这类广告，回报率不可能高。</p>
<p>最后，用 Steve Jobs 的一句名言来结束这篇文章。在《 Macworld 》的 Mac 20周年采访中，记者问到了关于 Mac 市场份额的问题， Steve Jobs 的回答是：</p>
<blockquote>Apple 的市场份额比宝马、奔驰或者保时捷在汽车市场中所占的份额都要大。成为数字领域的宝马或奔驰有什么不好的吗？</blockquote>
<img src="http://www.cnblogs.com/cathsfz/aggbug/1660909.html?type=1" width="1" height="1" alt=""/><p>评论: 87　<a href="http://www.cnblogs.com/cathsfz/archive/2010/02/01/1660909.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2010/02/01/1660909.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>能承载移动 Web 应用的唯一浏览器： Mobile Safari</title><link>http://www.cnblogs.com/cathsfz/archive/2010/01/30/1660004.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Sat, 30 Jan 2010 06:02:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2010/01/30/1660004.html</guid><description><![CDATA[<p>阅读: 1825 评论: 9 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2010-01-30 14:02 <a href="http://www.cnblogs.com/cathsfz/archive/2010/01/30/1660004.html" target="_blank">原文链接</a></p><p>最近拿 iPhone 、 Android 、 Windows Mobile 这三个平台上的内置浏览器来做了一番对比，结果是只有 iPhone 的 Mobile Safari 能够承载现代化的移动 Web 应用，其他移动浏览器的设计思路还停留在上个世纪&#9472;&#9472;能看网页就行，不存在移动应用一说。</p><p>我用来做对比的平台是 iPhone 2.0 、 Android 2.0 、 Windows Mobile 6.5 。 iPhone 之所以选择 2.0 ，是因为 3.0 的浏览器跟 2.0 是一样的，尽管我的测试是在 3.0 上做的，但对 2.0 来说也是适用的。 Windows Mobile 6.5 则是在 Windows Mobile 系列中的唯一选择，因为只有它的浏览器是 IE6 内核的，再往前的 Windows Mobile 6.1 都是 IE4 内核的。</p><h4>拖放</h4><p>iPhone 对拖放的支持是完美的，使用 touch 系列事件监控触击及拖动，然后使用 <code>preventDefault</code> 禁用浏览器的默认行为（也就是拖动页面显示区域），这就搞掂了。</p><p>Android 也支持拖放，具体方案我没有研究过，估计是改用 mouse 系列事件监控触击及拖动，然后使用 <code>preventDefault</code> 禁用浏览器的默认行为。</p><p>Windows Mobile 让人很绝望，连拖放也不支持。估计因为这是一个对 IE6 的封装，封装的时候就把浏览器默认行为写死了，所以你不能够通过 mouse 事件监控到任何东西，也无法禁用浏览器默认行为。</p><h4>手势</h4><p>最简单的手势，就是通过两个手指靠进和远离来实现放大和缩小，如果这个手势都实现不了，别的手势也就不用测试了。</p><p>iPhone 对手势的支持也是完美的，你可以直接使用 gesture 系列事件监控手势操作，也可以用 touch 系列事件监控手势中每一个触点的活动。 <code>preventDefault</code> 同样可以禁用浏览器默认行为（也就是缩放页面显示区域）。</p><p>Android 的浏览器不支持多点触击，尽管 Android 的另一些内置应用是支持的，这估计是因为 Google 和 Apple 纠缠不清的多点触击专利官司。因此，如果你要在 Web 应用上支持缩放，就只能在界面上放两个按钮来实现了。</p><p>Window Mobile 就不用说了，你不能期望一个缩小版的 IE6 能做什么针对移动 Web 应用的优化。</p><h4>定位</h4><p>iPhone 可以使用 W3C 的 <a target="_blank" href="http://www.w3.org/TR/geolocation-API/">Geolocation API</a> 进行定位，而且可以跟踪定位（也就是定位变化时通过事件调用你的函数）。</p><p>Android 内置的地图可以定位，但是浏览器就是不提供这个接口，这只能说 Android 就设计为不考虑移动 Web 应用。</p><p>Windows Mobile 在安装 Google Gears 后，理论上可以支持定位。这个 ActiveX 嘛，能让你扩展浏览器，实现任何其他浏览器上难以实现的东西。唯一的问题是，这会让人产生疑问&#9472;&#9472;我到底是在 Web 应用开发还是在做客户端应用开发？ Microsoft 背负了太多的历史包袱，使得开发者要从客户端应用开发转向 Web 应用开发也不容易。</p><h4>绘图</h4><p>iPhone 同时支持 SVG 和 Canvas 。如果你需要面向对象的图形组合方式，你可以选择 SVG 。如果你需要命令式（类似 GDI ）的绘图接口，你可以选择 Canvas 。</p><p>Android 只支持 Canvas ，这能够满足大多数绘图需求，唯一的问题是你不能把已经绘制的形状如同对象般删除，需要的话只能全部重绘，这就是 Canvas 跟 SVG 在使用上的主要区别。</p><p>至于 Windows Mobile ，不仅仅 SVG 和 Canvas 这样的公开标准不支持，连 VML 这样的私有标准也不支持，基本上也就无法绘图了。</p><h4>样式</h4><p>iPhone 支持大部分的 CSS3 特性。这是因为 iPhone 1.0 并不支持客户端应用， Apple 为了让开发者能在 Web 上实现跟客户端应用一样的视觉效果， Mobile Safari 必须做到跟 Safari 一样，支持大多数的 CSS3 特性。</p><p>Android 支持的 CSS3 特性要少一些。尽管它的浏览器用的也是 Webkit 内核，但 Webkit 管的是布局而不是渲染，在样式渲染方面 Google 的实现总是比 Apple 要慢一步。</p><p>Windows Mobile 的话&#8230;&#8230;跟一个 IE6 核心的浏览器讨论 CSS3 ，这不是纯粹浪费口水吗？</p><h4>体验</h4><p>上面列举了一大堆的功能，但这一切只是为了实现特定的体验，所以我们真正应该关注的是一款移动浏览器设计为满足怎样的体验目标。</p><p>iPhone 上的 Mobile Safari 拥有最高的体验目标设定。在 iPhone 1.0 的时候， Apple 禁止开发人员开发本地应用，只允许开发 Web 应用，因此 Apple 必须为开发人员提供最好的 Web 应用开发平台。</p><p>此外， Apple 拥有业界最好的 <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html">HIG</a> （人机交互指引），对比之下 Microsoft 的 <a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=e49820cb-954d-45ae-9cb3-1b9e8ea7fe8c">UX Guide</a> 连 Windows Mobile 都覆盖不到，而 Android 的 <a target="_blank" href="http://d.android.com/guide/practices/ui_guidelines/index.html">UI Guildlines</a> 则显得十分山寨。由于 Apple 鼓励开发者按照 HIG 进行 iPhone 应用程序的交互设计，所以 Mobile Safari 当初就设计为帮助开发者实践 HIG 。至于其他移动浏览器，它们的设计目标则简单得多&#9472;&#9472;只要用户能够在上面流畅使用面向桌面设计的网站就可以了。</p><p>正是由于设计目标的差异，使得最终产出的产品存在着巨大的差异。只有 Mobile Safari 能够承载移动 Web 应用，其他移动浏览器只是桌面浏览器在移动设备上的延伸。</p><img src="http://www.cnblogs.com/cathsfz/aggbug/1660004.html?type=1" width="1" height="1" alt=""/><p>评论: 9　<a href="http://www.cnblogs.com/cathsfz/archive/2010/01/30/1660004.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2010/01/30/1660004.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>看对的书 (Part 0 - 何谓对错)</title><link>http://www.cnblogs.com/cathsfz/archive/2009/12/21/1628540.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Sun, 20 Dec 2009 16:02:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2009/12/21/1628540.html</guid><description><![CDATA[<p>阅读: 2235 评论: 11 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2009-12-21 00:02 <a href="http://www.cnblogs.com/cathsfz/archive/2009/12/21/1628540.html" target="_blank">原文链接</a></p><p>在《<a target="_blank" href="http://www.cnblogs.com/JeffreyZhao/archive/2009/05/06/recommended-reading-1.html">老赵书托</a>》里面，Jeff把人脑比喻为「寄存器」，而我则更倾向于把人脑比喻为「神经网络」。但是「神经网络」的定义本身就源自人脑啊，这不是循环引用了吗？其实我的意思是，我们应该参考训练神经网络的方式来优化人脑的思维方式。</p><p>我们都知道，训练神经网络应该用对的数据，这样才能让神经网络逼近于我们期望的行为模式。如果使用错的数据进行训练，结果将是不可预知的，而且往往意味着偏离我们期望的行为模式。基于同样的道理，书必须选择对的，因为读错书不仅仅浪费时间，还有副作用，比不读书还糟糕。基于这一点，我推荐的书都是观点导向型的，而非知识导向型的。尽管其中一部分可能也包含大量关于「怎么做」的知识，但是我看重的是「站在什么立场思考」的观点，因此后者才会是我推荐一本书的原因。</p><p>如果你关心的是「get the right thing」，你可以来看看我的推荐；如果你关心的是「get the thing right」，你可以去看看Jeff的推荐。当然，绝大多数人都会同时追求这两者，所以我并不反对把我们的推荐书籍混合起来看。但是我必须提醒你注意一件事情，不要尝试在一本观点导向型的书里面刻意寻找知识，这只会让你感到迷茫和挫败。很多观点导向型的书并不会告诉你具体「怎么做」，或者作者介绍的「怎么做」并不适合你的情况，因为书的重点在于「怎么思考」，你必须自行摸索适合你的「怎么做」。</p><p>最后，跟Jeff一样，我无法保证推荐的周期，也无法保证书的来源。我提供的只是观点，做法请自行摸索，或参考他人（如《老赵书托》中的最后一句注释）。</p><img src="http://www.cnblogs.com/cathsfz/aggbug/1628540.html?type=1" width="1" height="1" alt=""/><p>评论: 11　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/21/1628540.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/21/1628540.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>《程序员羊皮卷》书评</title><link>http://www.cnblogs.com/cathsfz/archive/2009/12/19/1627885.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Sat, 19 Dec 2009 11:03:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2009/12/19/1627885.html</guid><description><![CDATA[<p>阅读: 2741 评论: 14 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2009-12-19 19:03 <a href="http://www.cnblogs.com/cathsfz/archive/2009/12/19/1627885.html" target="_blank">原文链接</a></p><p>拿到Leo送来的《<a target="_blank" href="http://www.douban.com/subject/4025390/">程序员羊皮卷</a>》，看到封面上写着的话，确实让我很崩溃&#8212;&#8212;</p><blockquote>是不是困惑自己投的简历石沉大海，找到好工作的总是另有他人？<br />是不是痛苦自己每天工作闷闷不乐，像所有的人都在和自己作对？<br />是不是不解自己努力工作好似黄牛，别人却加薪升职或另有高就？<br />是不是苦恼自己每天工作重复单调，只见曲折现在不见美好未来？<br />如果上述问题的答案都是&#8220;否&#8221;，请您把这本书直接放回书架；否则，请您把它带回家，拥有它，读懂它，快乐地工作，快乐地生活！</blockquote><p>我确实全部都回答「否」哦，那么这本书我还用不用看下去&#8230;&#8230;最终我决定还是读一读，因为我觉得Leo的经验还是有值得学习的地方的。况且，我认识Leo，我知道他很乐于分享经验和帮助他人，尽管封面这段话显得它很装畅销书，但我相信内容的风格一定是跟Leo平时说话一样，以朋友的角度来跟大家一起探讨职业发展的问题。</p><p>在仔细读了一遍整本书之后，我的看法是这样的：如果你遇到了上述封面所列举的问题，又或者是其它一些职业发展上的问题，那么我建议你找这本书中对应的章节来阅读一下；如果你是学生，还不知道将来会遇到什么问题，那么我建议你好好地按照前两章所说的去做，做好了这本书余下大部分的内容你都不用读了，做不好我相信你很快又要回头来翻书。</p><p>为什么这样说呢？因为我觉得，与其说这是一本关于「职业发展」的书，还不如说这是一本关于「职业健康」的书。就如同身体健康一样，如果你的身体处于亚健康状态（我相信大多数程序员都是），并且你不做点什么，状况将会持续，甚至可能恶化，这时候你可能就会选择去看一些养生的书了，然后调节一下自己的生活状态。如果你选择头痛医头脚痛医脚的做法，你的健康状态是不会得到改善的，一段时间后又会遇到新的问题。</p><p>对于「职业健康」来说也是如此，如果你在学校里就好好按照这本书前两章去做，那就如同培养了良好的生活习惯一样，之后不容易出问题，自然你也不需要回头来看这本书了。对于已经遇到问题的人来说，当然你应该看看书，然后作出调整，只有你拥有了健康的心态以及正确的处事方式以后，问题才可能被彻底解决。</p><p>最后，正所谓「有病就要去看医生」，如果你觉得你的问题严重到必须Leo亲自指导的地步了，那么我建议你还是写信给<a target="_blank" href="http://blog.csdn.net/jobchanceleo">Leo</a>，让他帮你把把脉好了。</p><img src="http://www.cnblogs.com/cathsfz/aggbug/1627885.html?type=1" width="1" height="1" alt=""/><p>评论: 14　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/19/1627885.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/19/1627885.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>China MVP Open Day 2009</title><link>http://www.cnblogs.com/cathsfz/archive/2009/12/16/1625687.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Wed, 16 Dec 2009 07:58:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2009/12/16/1625687.html</guid><description><![CDATA[<p>阅读: 2102 评论: 21 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2009-12-16 15:58 <a href="http://www.cnblogs.com/cathsfz/archive/2009/12/16/1625687.html" target="_blank">原文链接</a></p><p>又是一年一度的MVP Open Day，<a target="_blank" href="http://chinese.catchen.biz/2007/10/china-mvp-open-day.html">前年在三亚</a>，<a target="_blank" href="http://chinese.catchen.biz/2008/10/china-mvp-open-day-2008.html">去年在北京</a>，今年还在北京，明年能不能换个地方啊？我觉得两岸三地是个很好的主意，让我能认识到平时接触不到的港台MVP。不过，也请容我私下阴谋论一下，是不是好像TechEd裁减预算三场合办为一场那样，MVP Open Day也用两岸三地的预算合办了啊？</p><p>去MVP Open Day的路上，第一感觉是会务安排的失职（CSDN，又在说你呢！）&#8212;&#8212;活动地点写的是「北京东方嘉宾国际酒店」，建议行车路线写的则是如何达到「东方太阳城」。说实在的，参会者谁知道「北京东方嘉宾国际酒店」就在「东方太阳城」里面呢，整份文档又没有提及过这个事情，行车路线描述得又非常不清晰。最搞笑的是，4条路线里面有3条都是到潮白河大桥后往南走的，这条路线非常饶，告诉人家走机场高速不就好了吗？之后从酒店往返微软利星行的大楼都是走机场高速嘛。</p><p>我到酒店check-in后，发现同房的衣明志已经到了，他刚刚去找吃的回来。接着我们就好好欣赏了一下酒店房间里的「开放式浴室」&#8212;&#8212;把浴室和房间之间的窗户打开，浴缸基本上就贴着床了，非常有趣的设计，可惜当时忘记拍照留念了。之后就是聊天时间喇，尽管我想上网看看，但是发现酒店的网络用不了（第二天才明白到，酒店的网络必须狂刷DHCP，然后才可能分到一个IP）。</p><p>Day 1的开场keynote，感觉就是讲给新来的MVP听的，因为这部分keynote几乎每年一样（除非有人想要站出来提及一下那个敏感的$150问题）。下午我先回酒店睡了个觉，然后再跑出来听breakout session，尽管没有哪个题目是特别吸引我的，不过跟MVP参与session是和参加TechEd session不同的，因为大家提出的问题要更深入一下，而且speaker解答不了的问题或许别的MVP能解答。</p><p>跟speaker聊得比较好的一个session是Windows Home Server的那个。尽管session上演示的是Windows Home Server第一代产品，并且论存储跟Drobo没得比，论备份也跟Time Capsule没得比，不过如果价格能够降下来，功能更加模块化，我觉得还是有市场的。我相信现在有很多人买家用电脑已经不是为了买一部样样都不精的机器，他们要的是一个大容量存储器，或者是一个高清电影播放器，又或者是家庭网络服务器之类的。</p><p>相比之下，Day 2下午的MSPY见面会就惨烈得多咯&#8212;&#8212;上次见面会提出的众多high priority需求都未能在Beta 2中实现，也不可能在MSPY 2010中加入，只可能等到下一个版本才能看到。举例来说，衣明志最看重的就是数据同步功能，不仅仅词库要能同步，调整后的词频也要同步。这个功能其它输入法都做了几年了，MSPY却说要下一个版本才能支持，这使得MSPY足足落后别人两个大版本啊。</p><p><a target="_blank" href="http://www.flickr.com/photos/45201686@N00/4189499400" title="View 'From Day 2 Party of #mvpopenday' on Flickr.com"><img alt="From Day 2 Party of #mvpopenday" src="http://static.flickr.com/2770/4189499400_801bfb3370.jpg" border="0" height="" width="" /></a></p><p>Day 1晚上有个名义上的party，不过party这个词本土化之后就成了「文艺晚会」，各位「被报名」的MVP上台唱歌，最终获得前三的三位MVP分别来自台湾、内地、香港。上台的港台MVP算是100%获奖的（因为港台分别只有一位MVP上台），这不是说评比顾及平均性什么的（因为我们的是外籍评为团），而是说港台MVP确实更懂得娱乐，看来内地忙于工作的MVP应该多多学习哦。</p><p>Day 2参观微软办公室，对于我们这些长期在北京的MVP来说就比较无聊喇，因为我们经常去，也没什么好参观的。比较有价值的是，在往返的大巴上跟香港的MVP聊聊天，顺便了解一下大家去Global Summit的意向。晚上的session我选择了王洪超讲的「面向技术人员的演讲技巧」，详情可以看我的<a target="_blank" href="http://www.cnblogs.com/cathsfz/archive/2009/12/15/1624229.html">另一篇文章</a>。</p><p>Day 3是最无聊的一天了，来参加颁奖的人本来就少，大家都自行去市区活动了，或者提前离开了。keynote讲的是Office的内容，对Developer MVP来说十分无趣。总体来说，今年的MVP Open Day是比去年要好的，包括在会务安排上（除了没提供详细路线这点外），还有两岸三地联合举办的做法。吃饭是的餐桌主要还是按专长和按地区来划分，希望以后能够再鼓励一下跨界的MVP交互。</p><p>最后，今年很高兴认识了<a target="_blank" href="http://blog.miniasp.com/">Will</a>、<a target="_blank" href="http://msmvps.com/blogs/martinpoon/">Martin</a>等港台MVP，跟张欣等MVP玩杀人也很开心（原来那么多MVP不懂玩杀人啊，搞得我很有优势呢），跟衣明志聊天则注定让我缺乏睡眠 @.@</p><img src="http://www.cnblogs.com/cathsfz/aggbug/1625687.html?type=1" width="1" height="1" alt=""/><p>评论: 21　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/16/1625687.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/16/1625687.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>程序之外的事情 (Part 1 - Speech)</title><link>http://www.cnblogs.com/cathsfz/archive/2009/12/15/1624229.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Mon, 14 Dec 2009 17:18:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2009/12/15/1624229.html</guid><description><![CDATA[<p>阅读: 2977 评论: 42 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2009-12-15 01:18 <a href="http://www.cnblogs.com/cathsfz/archive/2009/12/15/1624229.html" target="_blank">原文链接</a></p><p>相信大家最近都看到了有一篇题为《<a target="_blank" href="http://www.zhuoqun.net/html/y2009/1394.html">程序员需要培养企业家式的能力</a>》的热文吧。在我首次读到这篇文章时，我并不太同意文章开头的几段话&#8212;&#8212;&#8220;程序员在公众面前讲话会脸红，不能很好地表现自己&#8221;，你开玩笑吧？在我熟悉的程序员当中，没几个是这样子的，我很喜欢跟他们聊各种各样的事情，从而获得更多有趣的观点，也激发自己的创意。后来想想，或许仅仅是我所在的圈子如此吧，我熟悉的都是那些拥有良好沟通能力的程序员。</p><p>还记得2007年第一次参加MVP Open Day的时候，我所认识的MVP不超过5个，看别人都是连任好几届互相认识好几年的老朋友了，在酒店大堂里一起聊天，我实在不知道怎么融入进去。随后在游泳池边的自助晚宴上，<a target="_blank" href="http://ugoer.cnblogs.com/">Bean</a>对我说了这样一番话：</p><blockquote>MVP主要包括三种人：搞线上活动的，例如写博客、回答问题；搞线下活动的，例如各地.NET俱乐部主席；还有就是企业中的职业讲师。其中第一种人很容易辨认出来，那些拿着一杯饮料一个人站在那儿的就是。</blockquote><p>没错，我就是第一种人，生活在与世隔绝的校园里，天天上网写文章回答问题。站在游泳池的边上，看着别人都三五成群地在聊天，我知道如果没有Bean介绍我认识其它MVP的话，我也会拿着一杯饮料孤零零地一个人站在那里。我当时唯一的想法就是，我不要永远这样子下去，我需要作出改变。</p><p>后来，我成为了微软广州.NET俱乐部的讲师，到北京后又活跃于各种Ajax交流活动，再到今年成为TechEd的讲师，在这个过程当中有沟通技能的提升，但更多的是心态上的改变。我觉得，要跟陌生人说话并不是难事，我知道什么就说什么。如果是我说错了，我很欢迎别人指出来。如果双方立场不一样，而不存在绝对的对与错，那就互相包容好了。</p><p>在今年的MVP Open Day上，我参加了王洪超的一个session，题目是「面向技术人员的演讲技巧」。这个session提到了一些演讲方面经验与技巧，当然也鼓励现场的MVP们多进行演讲，并从中锻炼自己的自信心与沟通能力。到最后，现场的一位MVP提出了这样一个问题，他说他可以面对上千人做演讲，但在面对官员做演讲时仍然会感到紧张，并且觉得这是无法改变的。我跟他说，「你可以拥有一万个理由来解释为什么这对你来说是无法改变的，但关键问题其实在于你是否真的想要改变」。</p><p>是的，很多程序员总能列出一堆的理由来，说明为什么自己不适合学习或者不需要掌握某项与程序无关的技能，例如说演讲、英语、设计等等。但其实问题并没有那么复杂，你需要考虑的只是多学一项技能是否对你的职业发展更有利，只要你愿意，没什么是不能改变的。</p><p>「关键问题就在于你是否真的想要改变」&#8212;&#8212;这是我必须放在这个文章系列首篇末尾的一句话。这是一个关于程序以外各项技能的文章系列，我们在这里不再讨论某个技术点应该如何设计与实现，我们所做的也就是分享一下学习某项技能过程当中的经历而已。如果你对这方面的话题感兴趣，可以留言分享你的经历，也欢迎订阅我的博客：</p><ul><li><a href="http://dotnet.catchen.biz/" target="_blank">Cat in dotNET</a> (<a href="http://feeds.feedburner.com/catchen/dotnet" target="_blank">feed</a>)</li><li><a href="http://chinese.catchen.biz/" target="_blank">Cat in Chinese</a> (<a href="http://feeds.feedburner.com/catchen/chinese" target="_blank">feed</a>)</li></ul><img src="http://www.cnblogs.com/cathsfz/aggbug/1624229.html?type=1" width="1" height="1" alt=""/><p>评论: 42　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/15/1624229.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2009/12/15/1624229.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>编写 iPhone Friendly 的 Web 应用程序 (Part 7 - 多点触击)</title><link>http://www.cnblogs.com/cathsfz/archive/2009/11/24/1609883.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Tue, 24 Nov 2009 14:33:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2009/11/24/1609883.html</guid><description><![CDATA[<p>阅读: 2096 评论: 8 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2009-11-24 22:33 <a href="http://www.cnblogs.com/cathsfz/archive/2009/11/24/1609883.html" target="_blank">原文链接</a></p><p>这个系列的上一篇文章差不多是两年之前的事情了，在这两年里Mobile Safari并非停滞不前，从iPhone 2.0开始Mobile Safari就加入了对多点触击的支持，现在我们就来看一下我们可以利用它来干什么。</p><p>相信很多人都看过WPF为Surface设备做的一个简单demo，也就是在桌面上显示若干张照片，你可以通过单点触击拖放，也可以通过多点触击缩放和旋转。这在iPhone上能够做到，甚至在Mobile Safari里面也能做到，因为Mobile Safari提供了一套专门用于多点触击的JavaScript接口。现在我们就来看看如何利用这套接口吧。</p><p>我们都知道，Mobile Safari自身会处理多点触击，默认行为包括滚动和缩放。我们可以接管相应的事件，同时使用<code>e.preventDefault()</code>禁用浏览器默认行为，使得我们的Web应用程序能够如同WPF桌面应用一样处理多点触击。下面我们来深入看看Mobile Safari提供的多点触击事件。</p><h4>单点触击</h4><p>首先我们要处理的是单点触击事件，禁用浏览器的滚动行为，同时为我们的照片（一个<code>img</code>元素）增加拖动行为。在这里，我们需要用到<code>touchstart</code>、<code>touchmove</code>、<code>touchend</code>事件。在这三个事件里，我们可以通过<code>e.targetTouches</code>获取到用户点击的坐标，从而计算相对的位置变化。</p><p>首先，我们要在<code>touchstart</code>事件里面记录下初始坐标：</p><p><code>var transform = {<br />&nbsp; x: 0,<br />&nbsp; y: 0,<br />&nbsp; rotation: 0,<br />&nbsp; scale: 1<br />};<br /><br />var startX;<br />var startY;<br />var touching = false;<br /><br />element.addEventListener("touchstart", function(e){<br />&nbsp; e.preventDefault();<br />&nbsp; startX = e.targetTouches[0].clientX;<br />&nbsp; startY = e.targetTouches[0].clientY;<br />&nbsp; touching = true;<br />});</code></p><p>接着，我们要在<code>touchmove</code>事件里面计算相对位置变化，并且更新<code>element</code>坐标：</p><p><code>element.addEventListener("touchmove", function(e){<br />&nbsp; e.preventDefault();<br />&nbsp; if (!touching) return;<br />&nbsp; transform.x += e.targetTouches[0].clientX - startX;<br />&nbsp; transform.y += e.targetTouches[0].clientY - startY;<br />&nbsp; updateTransform();<br />&nbsp; startX = e.targetTouches[0].clientX;<br />&nbsp; startY = e.targetTouches[0].clientY;<br />});</code></p><p><code>updateTransform</code>做了什么？现在先不讨论，我们只要把事件相关数据正确地更新到<code>transform</code>的四个属性即可，如何把这些属性反映到界面上稍后再说。</p><p>最后，我们还要在<code>touchend</code>事件里面处理一下标志位：</p><p><code>element.addEventListener("touchend", function(e){<br />&nbsp; e.preventDefault();<br />&nbsp; touching = false;<br />)};</code></p><p>就这么简单？是的。关键点也就在于<code>touchmove</code>时跟踪e.targetTouches的变化，并更新<code>transform</code>里面的信息。</p><h4>CSS3变换</h4><p>接下来我们看看如何将<code>transform</code>里面的信息作用到界面上。在没有CSS3的时代，这是极之痛苦的事情，我们需要修改元素的多个样式属性才能实现这部分的功能，并且还没办法实现旋转。现在有了CSS3，只需要修改一下transform属性就可以了：</p><p><code>var updateTransform = function(){<br />&nbsp; element.style.webkitTransform =<br />&nbsp; &nbsp; "translate(" + transform.x + "px, " + transform.y + "px) " +<br />&nbsp; &nbsp; "rotate(" + transform.rotation + "deg) " +<br />&nbsp; &nbsp; "scale(" + transform.scale + ")";<br />}</code></p><p>一句代码就把位置、旋转、缩放都设置好了！尽管我们现在还没用到旋转和缩放属性，那就让它们保持默认值吧，我们在多点触击的事件里面会设置它们的。</p><h4>多点触击</h4><p>多点触击涉及到三个事件：<code>gesturestart</code>、<code>gesturechange</code>、<code>gestureend</code>。这三个事件跟单点触击的三个事件非常类似，使用起来甚至可以说是更简单一些：</p><p><code>var startRotation;<br />var startScale<br />var gesturing = false;<br /><br />element.addEventListener("gesturestart", function(e){<br />&nbsp; e.preventDefault();<br />&nbsp; startRotation = transform.rotation;<br />&nbsp; startScale = transform.scale;<br />&nbsp; gesturing = true;<br />});<br /><br />element.addEventListener("gesturechange", function(e){<br />&nbsp; e.preventDefault();<br />&nbsp; if (!gesturing) return;<br />&nbsp; transform.rotation = startRotation + e.rotation;<br />&nbsp; transform.scale = startScale * e.scale;<br />&nbsp; updateTransform();<br />});<br /><br />element.addEventListener("gestureend", function(e){<br />&nbsp; e.preventDefault();<br />&nbsp; gesturing = false;<br />});</code></p><p>代码确实比之前的还要少一些，重点就是正确设置<code>transform</code>的两个属性，随后调用一下<code>updateTransform</code>就能把最近的状态更新的界面上。</p><h4>小结</h4><p>在这篇文章里，我们了解到了Mobile Safari的6个特有事件，以及如何利用这6个特有事件处理多点触击。</p><p>如果你直接使用我的代码去实现开头所说的照片拖放应用，你会发现一个小问题&#8212;&#8212;在进行多点触击操作时，旋转与缩放都是很自然的，就是拖动不自然，好像拖动只跟随第一个触点似的。原因很简单，在多点触击时，管理触点移动的还是<code>touchmove</code>事件，但上述代码只处理<code>e.targetTouches[0]</code>，所以拖动只跟随第一个触点。</p><p>如果需要同时跟随两个触点，你需要对代码稍作改动，使得移动距离为<code>e.targetTouches[0]</code>和<code>e.targetTouches[1]</code>的平均值。为什么呢？如果一个触点往上移动30px，另一个触点往下移动10px，除去旋转与缩放效果外，照片的中点应该是往上移动10px的，也就是两个移动的平均值。那么我如何知道当前有多少个触点呢？看看<code>e.targetTouches.length</code>就知道了。</p><p>最后，如果你关注移动设备上的Web开发，欢迎订阅我的博客：</p><ul><li><a target="_blank" href="http://chinese.catchen.biz/">Cat in Chinese</a> (<a target="_blank" href="http://feeds.feedburner.com/catchen/chinese">feed</a>)</li><li><a target="_blank" href="http://dotnet.catchen.biz/">Cat in dotNET</a> (<a target="_blank" href="http://feeds.feedburner.com/catchen/dotnet">feed</a>)</li></ul><img src="http://www.cnblogs.com/cathsfz/aggbug/1609883.html?type=1" width="1" height="1" alt=""/><p>评论: 8　<a href="http://www.cnblogs.com/cathsfz/archive/2009/11/24/1609883.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2009/11/24/1609883.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>不看《时尚先生》的你竟然看《程序员》？！</title><link>http://www.cnblogs.com/cathsfz/archive/2009/11/23/1609104.html</link><dc:creator>Cat Chen</dc:creator><author>Cat Chen</author><pubDate>Mon, 23 Nov 2009 15:26:00 GMT</pubDate><guid>http://www.cnblogs.com/cathsfz/archive/2009/11/23/1609104.html</guid><description><![CDATA[<p>阅读: 3329 评论: 42 作者: <a href="http://www.cnblogs.com/cathsfz/" target="_blank">Cat Chen</a> 发表于 2009-11-23 23:26 <a href="http://www.cnblogs.com/cathsfz/archive/2009/11/23/1609104.html" target="_blank">原文链接</a></p><p>我的博客订户有多少人看《时尚先生》的，举手来看看？博客园里又有多少人是看《时尚先生》的，喊出来听听？我相信绝大多数程序员都是不看《时尚先生》的，尽管它定位为男性杂志，但不看的人不会因此而觉得自己不够男人，也不会去指责一本男性杂志的编辑为何不考虑男性程序员。（为了表示我没有性别歧视的倾向，请女程序员自行将本文的《时尚先生》替换为《时尚》，将<em>Esquire</em>替换成<em>Cosmopolitan</em>。）我们都明白一个道理，一本男性杂志的目标受众往往只是一小部分的男性而已，自己不属于这个群体并不是什么大不了的事情。我相信<a href="http://www.cnblogs.com/Jax/archive/2009/11/11/1600597.html">包包</a>也懂这个道理，只是他没有尝试用同样的思维方式去理解《程序员》而已。</p><p><a href="http://www.flickr.com/photos/45201686@N00/4112085416" title="View 'Looking into commons between these two magazines.' on Flickr.com"><img src="http://farm3.static.flickr.com/2626/4112085416_db90c2ccc1.jpg" alt="Looking into commons between these two magazines." border="0" width="500" height="375" /></a></p><span>2009年11月的《程序员》（感谢CSDN赠送）与《时尚先生》</span><p>在我眼里，《程序员》和《时尚先生》是目标受众不同但定位相似的两本杂志。《时尚先生》中国内地版遇到的问题（相对美国版的<em>Esquire</em>而言），《程序员》或多或少地也会遇到。</p><h4>谁为杂志买单？</h4><p>你上街买份¥1的报纸，搞不好还送你一瓶水，你觉得这份报纸的制作成本是谁买单的？难道是你买单的？除非你想着的是，报纸是国有的，国家是人民的，你也有一份。准确来说，你在报摊看到的各种报刊杂志都是由广告主买单的，你支付的价格只是个象征性收费，这些钱根本不足以回本，没有广告主也就没有这些报刊杂志。因此，一本杂志要活下来，首先要有广告主为它的生存买单。</p><p>广告主为何要为《程序员》的生存买单？肯定是因为广告主能够有所收益嘛，例如说使得读者购买广告主的商品，或者是使得读者试用广告主的服务，也可能是为广告主建立特定的品牌形象。无论如何，《程序员》总得为广告主带来收益，否则广告主没理由要养着它。</p><p>现在设想一下，假如你是广告主，你选择投放广告到Google还是Baidu？当然是哪个效果好投放到哪个啊！<a href="http://www.cnblogs.com/AndersLiu/archive/2009/11/11/1600747.html">Anders Liu</a>提到《程序员》曾经还有两个兄弟叫做《CSDN开发高手》和《MSDN开发精选》。假如你是广告主，你要在这三本杂志中选一本投放广告，你会如何作出选择？我想答案还是一样的，哪本的投放效果好就投哪本。</p><p>《程序员》上面曾经有过Visual Studio、DB2的广告，也曾经有过不少控件组件的广告。然而，作为程序员的你是否真的有购买过Visual Studio、DB2以及第三方控件组件，又或者建议公司购买？我想绝大多数程序员都不会选择个人购买，建议公司购买的也甚少。因此，无论《程序员》能够覆盖到多少真正的程序员，都不能为广告主带来真正的价值。与其将发行量浪费在购买力低下的程序员身上，不如直接瞄准有权左右公司购买行为的高管。</p><p>回到刚才的问题，如果摆在面前的是面向高管的《程序员》和面向程序员的《CSDN开发高手》和《MSDN开发精选》，作为广告主的你会怎样选择？答案应该简单得不能再简单了吧。</p><h4>杂志做给谁看？</h4><p>《时尚先生》是做给哪些男性看的？当然是做给有购买力的男性看的，否则为何能有那么多的广告主愿意向它投放汽车服饰广告，没有这些广告又如何支撑起一本杂志的制作成本。《程序员》是做个哪些程序员看的？当然是做给有购买力的程序员看的，道理是类似的，我就不再复述了。</p><p>那么到底哪些程序员有购买力？有购买力的前提是有可供支配的资金，这既可能是公有的，也可能是私有的。例如说，假设你能够影响公司的采购策略，服务器选用HP还是Dell，个人桌面选用Windows、Linux还是Mac，开发平台选择.NET还是Java，那么你就是有购买力的，《程序员》也就是做给你看的。这也正是《程序员》现在瞄准的市场。</p><p>相对来说，私有财产的购买力是无法跟公有财产比的。你不可能指望程序员个人去购买Visual Studio，你甚至不能指望程序员个人去购买控件，程序员在职业发展方面的消费通常也就覆盖到图书市场，偶尔有人好像<a href="http://jeffreyzhao.cnblogs.com/">Jeff</a>这样的会买Kindle和原版书，也有少数人会自费参加一些行业性大会。</p><p>在这里面有一个有趣的现象，程序员收入越高越不需要把自己的收入投入到职业发展里面去，因为高收入的程序员都在大公司的重要岗位上，公司都愿意为他们的职业发展做投资。因此，说到底，与程序员职业相关的各项支出大多由公司支付，Windows服务器是公司买的，Visual Studio也是公司买的，去参加TechEd的门票是公司买的，书架上的那本《代码大全》也是公司买的。</p><p>综上所述，《程序员》就是做给那些决定怎么把公司的钱花掉的人看的。如果你不属于这部分人，你是否阅读《程序员》，阅读之后有什么想法，都不会对杂志本身产生什么实质性影响。</p><h4>杂志为谁而做？</h4><p>Andres Liu说《程序员》借人物提高知名度，同时也帮助人物提高知名度，这个模式就跟时尚杂志一样嘛。李开复登上《时尚先生》封面，对谁有利？当然是对双方都有利啊——李开复在这个时候需要出镜来促进自己的新事业，《时尚先生》也需要这个话题来满足读者的需求，甚至吸引潜在读者中的李开复粉丝。</p><p>举个更遥远的例子，<em>Playboy</em>也是采用同样的模式，所以才有那么多名人愿意接受采访，所以才有那么多美女愿意接受拍摄，自然<em>Playboy</em>本身也很出名。你看到<em>Playboy</em>上的美女，会觉得她们是在沽名钓誉吗？你根本就不在乎这是不是沽名钓誉，你在乎的只是美女本身。因此，如果包包觉得《程序员》上的人物都是为了沽名钓誉，这只能怪他自己没站对角度来看问题。站在看美女的角度来看这些人物，他们是否沽名钓誉与我有何关系呢？</p><p>我相信，美国的电视电影导演不会在乎美女上<em>Playboy</em>是否为了沽名钓誉，能通过试镜的都是合适的演员，<em>Playboy</em>只是提供了一种第三方认可外加选拔来源而已。我也相信，中国的公司不会在乎程序员上《程序员》是否为了沽名钓誉，能通过面试的都是合格的员工，《程序员》的作用自然是和<em>Playboy</em>一样。</p><h4>小结</h4><p>为什么我选择在包包跟Andres Liu的争论过后那么久还来讨论这件事？我只是希望大家明白，看待问题的角度是多种多样的。程序员往往比较理想化，因为代码总能按照理论的方式运作，但把这种理想化套在《程序员》的真实运作上就不可行了，或者套在一些更复杂的商业场景上就很容易出错。</p><p>举个例子，你觉得CCTV为什么喜欢曝光Baidu和Google的搜索结果问题呢？有很多人很单纯地认为，在竞争对手之间，一方受损肯定使得另外一方获利，因为这是个零和竞争。但在这不是一个封闭的零和竞争，把视觉锁定在这样一个竞争之内得出的结论不一定是对的。不信？我可以提供一些信息来拓宽你的思路。国内的传统媒体都喜欢负面新闻，当别人陷入公关危机的时候，就打个电话给对方的公关部门，“我们已经写好了整版你们的负面新闻准备付印，你们有计划增加明年的广告预算吗？”这使得一些公司投放广告只是为了跟媒体建立共同利益关系，限制媒体无法作出伤害自己的行为，否则媒体自己也会受到伤害（我营收减少股价下跌还哪有那么多广告预算给你）。</p><p>尝试换个角度看问题，你自然能够得出不同的结论。在你想要对一个你觉得很简单的问题下定论的时候，为什么不尝试换个角度再看看呢？</p><img src="http://www.cnblogs.com/cathsfz/aggbug/1609104.html?type=1" width="1" height="1" alt=""/><p>评论: 42　<a href="http://www.cnblogs.com/cathsfz/archive/2009/11/23/1609104.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cathsfz/archive/2009/11/23/1609104.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56799/" target="_blank">百度第四季度净利润6270万美元 同比增48.2%</a><span style="color:gray">(2010-02-10 09:10)</span><br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>