<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>StephenChan&#039;s Tech Space &#187; Reading</title>
	<atom:link href="http://blog.endlesscode.com/category/reading/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.endlesscode.com</link>
	<description>Stay Hungry. Stay Foolish.</description>
	<lastBuildDate>Tue, 25 Oct 2011 01:15:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>读过《观止》</title>
		<link>http://blog.endlesscode.com/2010/08/11/reading-showstopper/</link>
		<comments>http://blog.endlesscode.com/2010/08/11/reading-showstopper/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 17:19:30 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.endlesscode.com/?p=1047</guid>
		<description><![CDATA[今晚总算把《观止》看完了，看得比较快，基本上是当叙事小说一样看。这个书名看起来像文艺书，但实际上是讲述Windows NT这个操作系统的创造史。为什么Windows NT这么出色，因为在当时它的诞生改变了人们对操作系统的看法，它引入了现在我们看起来很理所当然但当时还没有的技术：抢占式的多任务处理、可安装在通用的硬件平台、支持32位内存寻址、支持大容量文件并具有容错功能的NTFS（NT File System）等等。当然这些系统功能并没有在书上描述，这本书从头到尾都是在讲述整个NT团队是如此在艰苦的进度压力和技术压力之下花了将近5年时间创造出NT。 这个NT团队的领导人就是Dave Cutler，性格独断脾气火爆，技术牛B，现在来说就是一个传奇的程序员，当他领导NT团队的时候已经是个快50岁的人了。有个小插曲或者会更令人记住他是谁，就是当他招聘小秘的时候会问一个问题“How do u think about the word &#8216;fuck&#8217;?&#8221;，只有那个回答了&#8221;Its my favorite word”的MM才拿到了offer。 从1988年10月开始到正式发布的1993年7月23日，历时接近5年时间，团队从开始的20多人到最后的200多人，在这5年时间里面NT团队面对的是各种功能需求的增加、遥遥无期的进度、不断冒出的bug，还有其他非技术问题，如家庭和爱人，可以说是可歌可泣，NT团队的每个成员为Windows NT奉献太多了。 虽然看得比较快，但是一些体会还是想记录一下，以后有时间再翻出来看或者也会有不同的体会。 从本来只有一个内核开发的团队，到后面慢慢增加了图形开发小组和网络开发小组，整个团队大部分人都是物理和数学出身，毕竟从理科出身的容易投入到计算机行业，加上当时计算机行业还远没现在这么热门。由于当时NT的目标定得比较高，因此很多迎合市场的需求都被添加到功能列表中，并要求兼容以前的DOS和Windows程序，不停地添加功能需求以及保证兼容性基本上就直接导致了进度问题，由于领导的Dave Cutler是个基本上为了NT放弃了家庭的人，因此给NT的团队带来的直接影响就是在进度压力之下的疯狂加班，纵然如此，但是在微软的给予的高股票期权和Cutler的压迫之下，团队的成员也是能积极高效地工作，其实这里，我还觉得有个原因是在这种环境之下驱动大家去工作的，就是大家都希望能够创造出一个出色的产品，虽然工作辛苦，但是这种渴望创造的欲望也是驱动团队成员努力工作的一个原因。 程序员、测试员和构建员是组成NT团队的主要3个角色，在那个年代，测试员和构建员的地位并不高，但是慢慢程序不断地被挑出bug并不断地被完善，越显得测试员和构建员的重要性。相比于目前自己所做的项目，哪怕是相差20年，目前我们项目的流程还是比不上那时的NT团队。每个程序员的commit都是基于不会导致构建失败的前提下，当然构建的时机可能是即时也可能是固定某个时候，但是每个程序员的commit都是使构建能正常进行的，整个流程都是井然有序地进行。而且，更让我欣赏NT团队的是，在项目的后期，Dave Cutler甚至是长期定居在构建实验室，来专门看每个程序员提交的各种代码，来保证程序代码的质量，那么多不知道他怎么看得过来。对于程序员犯的错误，Dave Cutler可是不留情面地批评，或者正是这种领导的压迫之下反而提高了团队成员的代码严谨，或者可以说是领导威严的作用。 团队规模变大，可能就增加了成员之间对技术问题的冲突，但是正如书上说，这种冲突有时候会激发对程序代码的改进，其实倒觉得这种冲突是来源于对自己代码逻辑的自信，或者说是个性鲜明，和提倡中庸之道的国内还是有点区别。 到了项目后期，真的可以算得上夺命狂奔，因为有了deadline，所以对bug的分类控制、暂停新功能需求的加入、不停的压力测试、客户的bug反馈和beta版的多次发布等等，各个成员都日以继夜地修正各种showstopper和一等级的bug。 最后Windows NT发布了，微软就站在了操作系统的顶峰了。而从始自终，Gates都没有对NT团队有什么干预，只是定期了解开发进度和进行产品的测试，给了NT团队很大的自由度。 《观止》这本书虽然只是描述了整个NT的创造史，其实更像一本项目管理的书。]]></description>
			<content:encoded><![CDATA[<p>今晚总算把《观止》看完了，看得比较快，基本上是当叙事小说一样看。这个书名看起来像文艺书，但实际上是讲述Windows NT这个操作系统的创造史。为什么Windows NT这么出色，因为在当时它的诞生改变了人们对操作系统的看法，它引入了现在我们看起来很理所当然但当时还没有的技术：抢占式的多任务处理、可安装在通用的硬件平台、支持32位内存寻址、支持大容量文件并具有容错功能的NTFS（NT File System）等等。当然这些系统功能并没有在书上描述，这本书从头到尾都是在讲述整个NT团队是如此在艰苦的进度压力和技术压力之下花了将近5年时间创造出NT。</p>
<p>这个NT团队的领导人就是Dave Cutler，性格独断脾气火爆，技术牛B，现在来说就是一个传奇的程序员，当他领导NT团队的时候已经是个快50岁的人了。有个小插曲或者会更令人记住他是谁，就是当他招聘小秘的时候会问一个问题“How do u think about the word &#8216;fuck&#8217;?&#8221;，只有那个回答了&#8221;Its my favorite word”的MM才拿到了offer。</p>
<p>从1988年10月开始到正式发布的1993年7月23日，历时接近5年时间，团队从开始的20多人到最后的200多人，在这5年时间里面NT团队面对的是各种功能需求的增加、遥遥无期的进度、不断冒出的bug，还有其他非技术问题，如家庭和爱人，可以说是可歌可泣，NT团队的每个成员为Windows NT奉献太多了。<span id="more-1047"></span></p>
<p>虽然看得比较快，但是一些体会还是想记录一下，以后有时间再翻出来看或者也会有不同的体会。</p>
<p>从本来只有一个内核开发的团队，到后面慢慢增加了图形开发小组和网络开发小组，整个团队大部分人都是物理和数学出身，毕竟从理科出身的容易投入到计算机行业，加上当时计算机行业还远没现在这么热门。由于当时NT的目标定得比较高，因此很多迎合市场的需求都被添加到功能列表中，并要求兼容以前的DOS和Windows程序，不停地添加功能需求以及保证兼容性基本上就直接导致了进度问题，由于领导的Dave Cutler是个基本上为了NT放弃了家庭的人，因此给NT的团队带来的直接影响就是在进度压力之下的疯狂加班，纵然如此，但是在微软的给予的高股票期权和Cutler的压迫之下，团队的成员也是能积极高效地工作，其实这里，我还觉得有个原因是在这种环境之下驱动大家去工作的，就是大家都希望能够创造出一个出色的产品，虽然工作辛苦，但是这种渴望创造的欲望也是驱动团队成员努力工作的一个原因。</p>
<p>程序员、测试员和构建员是组成NT团队的主要3个角色，在那个年代，测试员和构建员的地位并不高，但是慢慢程序不断地被挑出bug并不断地被完善，越显得测试员和构建员的重要性。相比于目前自己所做的项目，哪怕是相差20年，目前我们项目的流程还是比不上那时的NT团队。每个程序员的commit都是基于不会导致构建失败的前提下，当然构建的时机可能是即时也可能是固定某个时候，但是每个程序员的commit都是使构建能正常进行的，整个流程都是井然有序地进行。而且，更让我欣赏NT团队的是，在项目的后期，Dave Cutler甚至是长期定居在构建实验室，来专门看每个程序员提交的各种代码，来保证程序代码的质量，那么多不知道他怎么看得过来。对于程序员犯的错误，Dave Cutler可是不留情面地批评，或者正是这种领导的压迫之下反而提高了团队成员的代码严谨，或者可以说是领导威严的作用。</p>
<p>团队规模变大，可能就增加了成员之间对技术问题的冲突，但是正如书上说，这种冲突有时候会激发对程序代码的改进，其实倒觉得这种冲突是来源于对自己代码逻辑的自信，或者说是个性鲜明，和提倡中庸之道的国内还是有点区别。</p>
<p>到了项目后期，真的可以算得上夺命狂奔，因为有了deadline，所以对bug的分类控制、暂停新功能需求的加入、不停的压力测试、客户的bug反馈和beta版的多次发布等等，各个成员都日以继夜地修正各种showstopper和一等级的bug。</p>
<p>最后Windows NT发布了，微软就站在了操作系统的顶峰了。而从始自终，Gates都没有对NT团队有什么干预，只是定期了解开发进度和进行产品的测试，给了NT团队很大的自由度。</p>
<p>《观止》这本书虽然只是描述了整个NT的创造史，其实更像一本项目管理的书。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.endlesscode.com/2010/08/11/reading-showstopper/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>zz 架构师接龙：岳旭强 VS. 杨卫华</title>
		<link>http://blog.endlesscode.com/2010/04/12/architechure-2010-04/</link>
		<comments>http://blog.endlesscode.com/2010/04/12/architechure-2010-04/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 09:55:54 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.endlesscode.com/?p=644</guid>
		<description><![CDATA[主持人 冯大辉，阿里巴巴集团旗下支付宝 （中国）网络科技有限公司数据库架构师，负责支付宝数据库架构规划、解决方案等相关工作。 提问嘉宾 岳旭强，淘宝网资深架构师，在大型交易网站的设计和调优方面有丰富的经验。2004年加入淘宝，见证了淘宝网业务以及技术上完整的发展过程，参与了淘宝几乎所有核心系统改造，并主导了用来支撑淘宝网未来高速发展的核心业务中心的建设。现在负责网站整体业务架构的设计和规划。 回答嘉宾 杨卫华，新浪产品事业部技术经理，专注于开发高并发的分布式应用。对互联网后端技术、分布式、网络编程、XMPP即时通讯等领域感兴趣。曾多次组织广州及珠三角技术沙龙活动。个人Blog：http://timyang.net 岳旭强：企业内部技术产品开源有何好处？需要注意什么？ 杨卫华： 目前不少心态开放的企业已将一些会给业界带来价值的产品进行开源。新浪也在这方面进行了不少尝试，近几年开源了若干产品。根据我们的体会，产品开源一方面 可以促进项目参与人员将技术做得更好，在程序结构、代码风格、代码一致性、代码效率方面会更加谨慎，让源代码及文档达到业内开发人员认可的标准。而业内很 多闭源产品通常只要求项目内部范围的可读性及强调代码执行效率，甚至有不少公司项目只关注实现 功能，对代码质量和技术文档要求甚少，因此开源在一定程度上是对高标准的自我要求。另一方面开源可以提高公司在业界技术人员中的影响力，增强公司的产品在 技术专业人群领域的认可，并有可能吸引潜在的优秀人才加入公司，更重要的是企业的开源产品可以给业界带来价值，减少在相近领域的重复劳动，降低一些同行特 别是小公司的开发成本。 但 是开源产品并不是提供源代码下载之后就一劳永逸，它需要继续进行后续相关的社区引导，需要项目开源的企业安排专人负责后续跟进。首先要有良好的技术说明文 档，如果缺乏文档介绍，感兴趣的开发人员由于对系统缺乏了解而无从下手。可以通过技术文档、博客、技术沙龙等形式将项目向更多的人群介绍，降低开源项目对 潜在用户的使用门槛。其次对有兴趣参与后续源代码贡献的开发人员进行更多的沟通，积极介绍项目的设计思路和值得改进的点，对社区提交的代码进行Review审查及最终接受提交并合并进主干库。另外最好还要有相应的项目讨论组或邮件列表供开发者进行讨论。新浪去年也开源了一个SinaDynamoD项目，这是一个类似Dynamo分布式Key-Value实现，由于目前业界对于分布式NoSQL产 品比较关注，开源之后也在业内爱好者人群当中引起不少反响。但是由于开源项目主要开发人员工作忙的缘故，后续社区支持工作没有及时跟进，一定程度上延缓了 项目向更大范围推广的目标。因此一个开源项目要想赢得长久的生命力，其实需要很多的投入和运营，将源代码开放只是其中很小的一步。 岳旭强：JDK 7给Web带来了什么？协程在老系统上的应用，有哪些挑战？怎么解决？ 杨卫华：在Java 7中值得关注的特性之一是JVM底层增加对动态语言新的支持，这对使用Groovy、Jython、JRuby以及Scala等语言的用户是一个好消息。JDK7中还使用了新一代G1垃圾回收算法，垃圾回收算法对于高并发请求Web服务器至关重要。在Web服务器上，如果单位时间请求数过大，大量临时对象需要创建与销毁，Java性能工程师经常要面临临时对象过多造成的OOM（Out of Memory）故障。目前对OOM故障的解决思路主要是投入大量精力去tuning Java GC参数，对当前应用进行全方面压力测试以衡量在生产环境不会出现OOM错误。新一代G1回收算法在一定程度会给高并发Java应用带来很大稳定性改善，同样的应用在Java7上会获得更好的性能。另外值得关注的还有对closure的支持。虽然在过去很长一段时间内，对于JDK7是否要支持closure存在很多不同意见及实现方案，最终结果还是增加了closure，在不少场合极大地简化了Java编程。 服 务器开发人员比较关注高并发应用性能，高并发请求最简单的实现方法是每个请求一个线程。但是请求会存在不均衡情况，某段时间请求数过高会导致线程数过多， 当线程数超过一定限度后会导致系统出现不稳定现象。目前业界更成熟的做法是使用线程池来处理工作任务，同时用NIO来异步处理网络连接。这种方式的优点是 可以处理大部分高并发请求场景，借助一些NIO框架业务实现起来简单，且运行稳定。但是线程池方式也存在一些缺点，由于线程池的工作队列是固定的，一旦工 作任务发生阻塞，就可能会导致后续任务全部阻塞。我们也曾经在一些后台服务中遇到过这种情况，比如数据库某个时间段负载过大后导致工作线程等待，从而导致 线程池工作线程全部占满，后面新到业务只能等待，从而影响所有业务。虽然数据库访问只是我们所有业务中很小的一部分，但是这一小部分可能最终导致整个系统 全部阻塞。另外线程池工作线程不能设太大，否则会因线程切换过多，导致系统大部分开销都消耗在上下文切换上。 由于线程与线程池都存在一定不足并且消耗系统资源过大，目前业界流行一种新的设计思想，用轻量级进程（LightWeight Process）来实现高并发应用。轻量级进程目前并没有统一名称，在某些编程语言中称为协程（coroutine）或者纤程（Fiber）最早带给大家这一设计思想的是Erlang语言，在业界有个著名的试验，英国Richard Jones曾经用Erlang的Mochiweb Web Server成功支持了100万连接，这个对传统语言来说基本是“不可能的任务”最近搜狐公司白社会产品也在生产环境中成功使用了类似架构。除了Erlang之外，基于Java &#8230; <a href="http://blog.endlesscode.com/2010/04/12/architechure-2010-04/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: 'Times New Roman';">主持人</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';"> </span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-style: italic; font-size: 10.5pt; font-family: 'Times New Roman';">冯大辉</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">，阿里巴巴集团旗下支付宝 （中国）网络科技有限公司数据库架构师，负责支付宝数据库架构规划、解决方案等相关工作。</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';"> </span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: 'Times New Roman';">提问嘉宾</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';"> </span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-style: italic; font-size: 10.5pt; font-family: 'Times New Roman';">岳旭强</span><span style="font-weight: normal; font-style: italic; font-size: 10.5pt; font-family: '宋体';">，</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">淘宝网资深架构师，在大型交易网站的设计和调优方面有丰富的经验。<span style="font-family: Times New Roman;">2004</span><span style="font-family: 宋体;">年加入淘宝，见证了淘宝网业务以及技术上完整的发展过程，参与了淘宝几乎所有核心系统改造，并主导了用来支撑淘宝网未来高速发展的核心业务中心的建设。现在负责网站整体业务架构的设计和规划。</span></span><span style="font-size: 10.5pt; font-family: 'Times New Roman';"> </span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: 'Times New Roman';">回答嘉宾</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';"> </span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-style: italic; font-size: 10.5pt; font-family: 'Times New Roman';">杨卫华</span><span style="font-size: 10.5pt; font-family: '宋体';">，</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">新浪产品事业部技术经理，专注于开发高并发的分布式应用。对互联网后端技术、分布式、网络编程、<span style="font-family: Times New Roman;">XMPP</span><span style="font-family: 宋体;">即时通讯等领域感兴趣。曾多次组织广州及珠三角技术沙龙活动。个人</span><span style="font-family: Times New Roman;">Blog</span><span style="font-family: 宋体;">：</span><span style="font-family: Times New Roman;">http://timyang.net</span></span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: 'Times New Roman';">岳旭强</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">：企业内部技术产品开源有何好处？需要注意什么？</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: 'Times New Roman';">杨卫华</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">： 目前不少心态开放的企业已将一些会给业界带来价值的产品进行开源。新浪也在这方面进行了不少尝试，近几年开源了若干产品。根据我们的体会，产品开源一方面 可以促进项目参与人员将技术做得更好，在程序结构、代码风格、代码一致性、代码效率方面会更加谨慎，让源代码及文档达到业内开发人员认可的标准。而业内很 多闭源产品通常只要求项目内部范围的可读性及强调代码执行效率，甚至有不少公司项目只关注实现 功能，对代码质量和技术文档要求甚少，因此开源在一定程度上是对高标准的自我要求。另一方面开源可以提高公司在业界技术人员中的影响力，增强公司的产品在 技术专业人群领域的认可，并有可能吸引潜在的优秀人才加入公司，更重要的是企业的开源产品可以给业界带来价值，减少在相近领域的重复劳动，降低一些同行特 别是小公司的开发成本。<span id="more-644"></span></span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-size: 10.5pt; font-family: 'Times New Roman';">但 是开源产品并不是提供源代码下载之后就一劳永逸，它需要继续进行后续相关的社区引导，需要项目开源的企业安排专人负责后续跟进。首先要有良好的技术说明文 档，如果缺乏文档介绍，感兴趣的开发人员由于对系统缺乏了解而无从下手。可以通过技术文档、博客、技术沙龙等形式将项目向更多的人群介绍，降低开源项目对 潜在用户的使用门槛。其次对有兴趣参与后续源代码贡献的开发人员进行更多的沟通，积极介绍项目的设计思路和值得改进的点，对社区提交的代码进行<span style="font-family: Times New Roman;">Review</span><span style="font-family: 宋体;">审查及最终接受提交并合并进主干库。另外最好还要有相应的项目讨论组或邮件列表供开发者进行讨论。新浪去年也开源了一个</span><span style="font-family: Times New Roman;">SinaDynamoD</span><span style="font-family: 宋体;">项目，这是一个类似</span><span style="font-family: Times New Roman;">Dynamo</span><span style="font-family: 宋体;">分布式</span><span style="font-family: Times New Roman;">Key-Value</span><span style="font-family: 宋体;">实现，由于目前业界对于分布式</span><span style="font-family: Times New Roman;">NoSQL</span><span style="font-family: 宋体;">产 品比较关注，开源之后也在业内爱好者人群当中引起不少反响。但是由于开源项目主要开发人员工作忙的缘故，后续社区支持工作没有及时跟进，一定程度上延缓了 项目向更大范围推广的目标。因此一个开源项目要想赢得长久的生命力，其实需要很多的投入和运营，将源代码开放只是其中很小的一步。</span></span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: 'Times New Roman';">岳旭强</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">：<span style="font-family: Times New Roman;">JDK</span></span><span style="font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">7<span style="font-family: 宋体;">给</span><span style="font-family: Times New Roman;">Web</span><span style="font-family: 宋体;">带来了什么？协程在老系统上的应用，有哪些挑战？怎么解决？</span></span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: 'Times New Roman';">杨卫华</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">：在<span style="font-family: Times New Roman;">Java</span></span><span style="font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">7<span style="font-family: 宋体;">中值得关注的特性之一是</span><span style="font-family: Times New Roman;">JVM</span><span style="font-family: 宋体;">底层增加对动态语言新的支持，这对使用</span><span style="font-family: Times New Roman;">Groovy</span><span style="font-family: 宋体;">、</span><span style="font-family: Times New Roman;">Jython</span><span style="font-family: 宋体;">、</span><span style="font-family: Times New Roman;">JRuby</span><span style="font-family: 宋体;">以及</span><span style="font-family: Times New Roman;">Scala</span><span style="font-family: 宋体;">等语言的用户是一个好消息。</span><span style="font-family: Times New Roman;">JDK7</span><span style="font-family: 宋体;">中还使用了新一代</span><span style="font-family: Times New Roman;">G1</span><span style="font-family: 宋体;">垃圾回收算法，垃圾回收算法对于高并发请求</span><span style="font-family: Times New Roman;">Web</span><span style="font-family: 宋体;">服务器至关重要。在</span><span style="font-family: Times New Roman;">Web</span><span style="font-family: 宋体;">服务器上，如果单位时间请求数过大，大量临时对象需要创建与销毁，</span><span style="font-family: Times New Roman;">Java</span><span style="font-family: 宋体;">性能工程师经常要面临临时对象过多造成的</span><span style="font-family: Times New Roman;">OOM</span><span style="font-family: 宋体;">（</span><span style="font-family: Times New Roman;">Out</span></span><span style="font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">of</span><span style="font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">Memory<span style="font-family: 宋体;">）故障。目前对</span><span style="font-family: Times New Roman;">OOM</span><span style="font-family: 宋体;">故障的解决思路主要是投入大量精力去</span><span style="font-family: Times New Roman;">tuning</span></span><span style="font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">Java</span><span style="font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">GC<span style="font-family: 宋体;">参数，对当前应用进行全方面压力测试以衡量在生产环境不会出现</span><span style="font-family: Times New Roman;">OOM</span><span style="font-family: 宋体;">错误。新一代</span><span style="font-family: Times New Roman;">G1</span><span style="font-family: 宋体;">回收算法在一定程度会给高并发</span><span style="font-family: Times New Roman;">Java</span><span style="font-family: 宋体;">应用带来很大稳定性改善，同样的应用在</span><span style="font-family: Times New Roman;">Java7</span><span style="font-family: 宋体;">上会获得更好的性能。另外值得关注的还有对</span><span style="font-family: Times New Roman;">closure</span><span style="font-family: 宋体;">的支</span></span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">持。虽然在过去很长一段时间内，对于JDK7是否要支持closure存在很多不同意见及实现方案，最终结果还是增加了closure，在不少场合极大地简化了Java编程。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">服 务器开发人员比较关注高并发应用性能，高并发请求最简单的实现方法是每个请求一个线程。但是请求会存在不均衡情况，某段时间请求数过高会导致线程数过多， 当线程数超过一定限度后会导致系统出现不稳定现象。目前业界更成熟的做法是使用线程池来处理工作任务，同时用NIO来异步处理网络连接。这种方式的优点是 可以处理大部分高并发请求场景，借助一些NIO框架业务实现起来简单，且运行稳定。但是线程池方式也存在一些缺点，由于线程池的工作队列是固定的，一旦工 作任务发生阻塞，就可能会导致后续任务全部阻塞。我们也曾经在一些后台服务中遇到过这种情况，比如数据库某个时间段负载过大后导致工作线程等待，从而导致 线程池工作线程全部占满，后面新到业务只能等待，从而影响所有业务。虽然数据库访问只是我们所有业务中很小的一部分，但是这一小部分可能最终导致整个系统 全部阻塞。另外线程池工作线程不能设太大，否则会因线程切换过多，导致系统大部分开销都消耗在上下文切换上。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">由于线程与线程池都存在一定不足并且消耗系统资源过大，目前业界流行一种新的设计思想，用轻量级进程（LightWeight</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Process）来实现高并发应用。轻量级进程目前并没有统一名称，在某些编程语言中称为协程（coroutine）或者纤程（Fiber）最早带给大家这一设计思想的是Erlang语言，在业界有个著名的试验，英国Richard</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Jones曾经用Erlang的Mochiweb</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Web</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Server成功支持了100万连接，这个对传统语言来说基本是“不可能的任务”最近搜狐公司白社会产品也在生产环境中成功使用了类似架构。除了Erlang之外，基于Java</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">VM的Scala也具有类似轻量级进程（Actor）实现，Twitter的Message</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Queue产品使用Scala代替了最初的Ruby实现。Google新推出的Go语言其中一大特性是Goroutine，它的设计目标也是一种轻量级进程的实现。因此轻量级进程代表了后端高并发应用的一种设计趋势。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Java现有版本不支持轻量级进程，虽然Scala支持Actor，但是它现有版本的底层是基于Java线程来实现的。Java业界也意识到这种欠缺，于是Doug</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Lea在Java</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">7 中设计了一种Fork/Join框架，其基本原理就是轻量级进程设计思想。Fork/Join推出之后，原先基于线程及线程池的应用可以改用Fork /Join来重新实现，编程更简单，系统能处理的并发会更高，任务之间切换的成本将会更低，我们期待这一技术能够早日成熟并得到更广泛的使用。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">岳旭强</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">：Web应用的性能、扩展性是业界比较关注的，但是可用性显然更重要，有什么关键措施和经验可以提高系统的可用性？</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">杨卫华</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">： 很多情况下，性能、扩展性和可用性并不矛盾，提高性能的同时可以提高系统可用性。比如新浪博客产品就非常重视改善前端及后端代码的性能，近期几次版本改进 的一个重点，就是围绕如何通过提高内部模块的性能，来加速用户页面加载以提高系统的可用性。我们使用了很多方法如增加不同业务逻辑层之间的cache，增 加异步处理机制，增加分布式的IDC自治等措施来达成这一目标。提高Web应用的性能及可用性在业界也有很多成熟经验，如《构建可扩展的Web站点》一书 中就提到非常多值得借鉴的实用方法。但在另外一些情况下，一些可用性改进方案可能会对系统的性能造成影响，技术架构师通常会对需要进行系统底层调整的需求 非常谨慎，这种情况下就需要技术架构师与产品架构师加强沟通，相互理解并最终从用户的角度去考虑及实施方案。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">岳旭强</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">：类似Twitter、新浪微博这样的应用，针对第三方开放API接口，如何避免少数应用程序因为用户量激增而对系统带来冲击？对请求数做限制之外有没有更为折衷的办法？</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">杨卫华</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">：目前大部分开放平台的API设计都是使用HTTP</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">REST 方式接口，HTTP接口的特点是单向请求，服务器无法主动推送数据。针对微博类型的应用，请求方如需获取最新微博数据需要不断轮询。另外由于微博产品的技 术特点，用户请求最新数据需要进行一定程度的数据聚合，但由于聚合后的数据经常需要更新也很难有效cache，因此微博接口的请求通常对服务器的资源消耗 较大。HTTP单向的特点造成客户端需要更频繁的请求，但是请求消耗资源过大又造成服务器不能承载过于频繁的刷新，因此需要双方进行折衷。新浪微博即将推 出的开放平台也和类似平台一样做了请求数限制，这个请求数限制只是为了防止客户端对接口进行过多的滥用，通常不会对正常用户使用造成影响。另外我们也在不 断优化技术及架构，希望能不断提高调用上限并最终不加限制。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">从原理上来说，能根本解决请求数限制问题的方法是使用推的机制，即服务器一有新的数据就立即推给客户端，而不是客户端不停的询问是否有新数据。目前比较成熟的推的标准技术有XMPP</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Pub/Sub、Google的PubSubHubbub或类似的HTTP</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Hook回调方案，但HTTPHook方案要求请求方要有固定公网IP，这无法适用于普通客户端调用的场合，从而限制了这种接口方式的推广。而XMPP</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Pub/Sub由于对调用方开发的门槛相对要高，普及使用具有一定难度。所以目前来看，HTTP接口方式虽然降低了开发门槛，但存在对服务器性能消耗过大的缺点，目前也没有合适的技术来迅速改变这一现状。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">为 了防止平台用户激增对系统造成冲击，设计上最好将API平台与Web系统设计成一个相互独立的松耦合体系，避免API用户激增对Web造成影响，而 Twitter中API和Web底层是共用的，一旦出现故障往往是API及Web都会受到影响。另外大部分互联网系统部署的服务器能承载的规模都会比实际 访问用户容量大，即使短时间出现大量用户上升，也不会对系统造成太大影响。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">岳旭强</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">：最近Twitter、Digg等站点从MySQL迁移到Cassandra，你觉得在国内这会成为趋势吗？你眼中的此类迁移的难点和风险（如果有的话）？</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">杨卫华</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">： 根据我们对相关背景的了解及自身的经验，Twitter等公司目前使用MySQL面临的最大问题是数据急速增长带来的运维及后续开发的挑战。虽然对 MySQL使用了Sharding方案，但是在数据每天增长数千万条记录的情况下，每个月甚至每周都需要增加新的数据库服务器，每次增加都面临分表索引信 息的修改，同时由于历史旧数据访问变少，又需将原先多台存放旧数据的服务器进行手工合并，当这些拆分变得越来越频繁但又无法自动化完成时，不停机维护的成 本变得非常高。但成熟的产品不希望系统出现停机，于是数据维护变成一个沉重的负担。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">另 外在开发方面，业务上经常面临新的产品需求要更改数据库字段，但上百台数据库的海量数据让修改字段变得大费周章，大部分情况都是通过增加新表等变通方法实 现新的需求，随着零散表的增多，数据访问的复杂性增大，数据架构设计变得不再简洁，系统可维护性变差。在持续海量数据增长的场景下，MySQL的拆分将变 成系统运维及架构师的一场噩梦。因此需要一个能够支持数据扩展、自动复制、容错、负载均衡的分布式数据存储产品来解决这一难题。Cassandra的开发 人员曾经开发过Dynamo，后来借鉴了BigTable的优点开发了Cassandra，产品完成后经过Facebook在生产环境如Inbox</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">search等产品验证，开源后开发社区非常活跃，是目前解决海量可扩展数据最佳的方案之一。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">但是另一方面，架构师也不应盲目追赶潮流，对于国内大部分应用场景来说，如果数据规模单台服务器可以支撑，或者数据增长规模不需要每个月增加新机器的情况下，用传统的MySQL</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';"> </span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">Sharding方案完全可以满足。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">岳旭强</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">：在业务不十分明确的情况下，技术决策如何进行？</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体';">杨卫华</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">：在业务不明确的情况下，尽量预测各种可能的业务发展方向，找出各个方向的相似点作为技术决策的基本出发点。另外技术架构师也应避免闭门造车，要利用对业界发展方向的一些判断</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">，</span><span style="font-weight: normal; font-size: 10.5pt; font-family: '宋体';">考虑到新的技术架构中，降低将来潜在的业务调整对技术架构带来的影响。另外架构师及项目开发人员需要具备“拥抱变化”的心态，从用户角度出发，当老的产品设计存在问题时，尽可能积极主动地去重构架构以适应新的业务。</span></p>
<p style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 15.6pt; text-align: left; vertical-align: baseline;"><span style="font-size: 10.5pt; font-family: '宋体';">（本文来自《程序员》杂志2010年</span><span style="font-size: 10.5pt; font-family: '宋体';">4</span><span style="font-size: 10.5pt; font-family: '宋体';">月刊）</span></p>
<h3>引用来源：http://www.programmer.com.cn/2767/</h3>
]]></content:encoded>
			<wfw:commentRss>http://blog.endlesscode.com/2010/04/12/architechure-2010-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>读《程序员修炼之道》- 基本工具</title>
		<link>http://blog.endlesscode.com/2010/03/22/basic-tools/</link>
		<comments>http://blog.endlesscode.com/2010/03/22/basic-tools/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 14:56:52 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.endlesscode.com/?p=523</guid>
		<description><![CDATA[“持久地存储知识的最佳格式是纯文本。” “GUI的好处是WYSIWYG－所见即所得（what you see is what you get）。缺点是WYSIAYG－所见即全部所得（what you see is all you get）。” “在shell提示下，你可以调用你的全套工具，并使用管道、以这些工具原来的开发者从未想过的方式把它们组合在一起。通过对shell进行编程，你可以构建复杂的宏命令，用来完成你经常进行的各种活动。” “用好一种编译器。只是依次输入、并使用鼠标进行剪贴是不够的。对于常见的编辑操作，与鼠标或菜单驱动的命令相比，只使用键击效率更高，因为你的手无须离开键盘。” “确保每样东西都处在源码控制之下－文档、电话号码表、给供应商的备忘录、makefile、构建与发布流程、烧制CD母盘的shell小脚本……” “把整个项目置于源码控制系统的保护之下具有一项很大的、隐蔽的好处：你可以进行自动和可重复的产品构建。” “在技术竞技场上，你应该专注于修正问题，而不是发出指责。” “如果你目睹bug或见到bug报告时的第一反应是&#8221;那不可能&#8221;，你就完全错了。一个脑细胞都不要浪费在以&#8221;但那不可能发生&#8221;起头的思路上，因为很明显，那不仅可能，而且已经发生了。要总是设法找出问题的根源，而不只是问题的特定表现。” “找到问题的原因的一种非常简单、却又非常特别有用的技术是向别人解释它。这听起来很简单，但在向他人解释问题时，你必须明确地陈述那些你在自己检查代码时想当然的事情。因为必须详细描述这些假定中的一部分，你可能会突然获得对问题的新洞见。” “bug有可能存在于OS、编译器、或是第三方产品中－但这不应该是你的第一想法。不要因为你&#8221;知道&#8221;它能工作而轻易放过与bug有牵连的例程或代码。” “学习一种文本操纵语言。Unix开发者常常喜欢利用他们的命令shell的力量，并用像awk和sed这样的工具加以增强。偏爱更为结构化的工具的人喜欢Python的面向对象本质。有人把Tcl当作自己的首先工具。我们碰巧喜欢用Perl编写短小的脚本。” “编写能编写代码的代码。比如你有一个schema，你需要定义低级的结构，反映特定的数据库表的布局。使用主动代码生成器，读取schema，使用它生成结构的源码，无论何时schema发生变化，用于访问它的代码也会自动变化。” 读后感：关于调试bug部分写得实在是太细腻了，当别人指出自己的程序有bug的时候，要避免那种bug等于否定自己水平的心态，要从大局出 发，了解bug的根源并把bug修复掉，毕竟在个人水平和各种环境因素影响下，有时候出bug也并不见得是一件令人可耻的事情。Windows下的开发人员习惯用GUI的编辑器，自己以前做.NET开发的时候也是觉得VS很强大，但是当工作之后，接触到了shell之后，才真正领悟到shell之于GUI 的区别，使用shell的时候可以令双手更专注于键盘，令自己更专注于代码。学习文本操纵语言，这个当需要对数据进行快速分析的时候，会体现其强大的价值。至于编写能编写代码的代码，书中的例子是对定义的数据库schema进行分析，生成程序使用的低级数据结构，并保持每次schema修改都会令程序中 使用的数据结构能够自动同步，在项目开发中使用这种方式，能够很好地避免频繁更改所导致的不一致风险。]]></description>
			<content:encoded><![CDATA[<p>“持久地存储知识的最佳格式是纯文本。”</p>
<p>“GUI的好处是WYSIWYG－所见即所得（what you see is what you get）。缺点是WYSIAYG－所见即全部所得（what you see is all you get）。”</p>
<p>“在shell提示下，你可以调用你的全套工具，并使用管道、以这些工具原来的开发者从未想过的方式把它们组合在一起。通过对shell进行编程，你可以构建复杂的宏命令，用来完成你经常进行的各种活动。”</p>
<p>“用好一种编译器。只是依次输入、并使用鼠标进行剪贴是不够的。对于常见的编辑操作，与鼠标或菜单驱动的命令相比，只使用键击效率更高，因为你的手无须离开键盘。”</p>
<p>“确保每样东西都处在源码控制之下－文档、电话号码表、给供应商的备忘录、makefile、构建与发布流程、烧制CD母盘的shell小脚本……”</p>
<p>“把整个项目置于源码控制系统的保护之下具有一项很大的、隐蔽的好处：你可以进行自动和可重复的产品构建。”</p>
<p>“在技术竞技场上，你应该专注于修正问题，而不是发出指责。”<span id="more-523"></span></p>
<p>“如果你目睹bug或见到bug报告时的第一反应是&#8221;那不可能&#8221;，你就完全错了。一个脑细胞都不要浪费在以&#8221;但那不可能发生&#8221;起头的思路上，因为很明显，那不仅可能，而且已经发生了。要总是设法找出问题的根源，而不只是问题的特定表现。”</p>
<p>“找到问题的原因的一种非常简单、却又非常特别有用的技术是向别人解释它。这听起来很简单，但在向他人解释问题时，你必须明确地陈述那些你在自己检查代码时想当然的事情。因为必须详细描述这些假定中的一部分，你可能会突然获得对问题的新洞见。”</p>
<p>“bug有可能存在于OS、编译器、或是第三方产品中－但这不应该是你的第一想法。不要因为你&#8221;知道&#8221;它能工作而轻易放过与bug有牵连的例程或代码。”</p>
<p>“学习一种文本操纵语言。Unix开发者常常喜欢利用他们的命令shell的力量，并用像awk和sed这样的工具加以增强。偏爱更为结构化的工具的人喜欢Python的面向对象本质。有人把Tcl当作自己的首先工具。我们碰巧喜欢用Perl编写短小的脚本。”</p>
<p>“编写能编写代码的代码。比如你有一个schema，你需要定义低级的结构，反映特定的数据库表的布局。使用主动代码生成器，读取schema，使用它生成结构的源码，无论何时schema发生变化，用于访问它的代码也会自动变化。”</p>
<p><strong>读后感</strong>：关于调试bug部分写得实在是太细腻了，当别人指出自己的程序有bug的时候，要避免那种bug等于否定自己水平的心态，要从大局出 发，了解bug的根源并把bug修复掉，毕竟在个人水平和各种环境因素影响下，有时候出bug也并不见得是一件令人可耻的事情。Windows下的开发人员习惯用GUI的编辑器，自己以前做.NET开发的时候也是觉得VS很强大，但是当工作之后，接触到了shell之后，才真正领悟到shell之于GUI 的区别，使用shell的时候可以令双手更专注于键盘，令自己更专注于代码。学习文本操纵语言，这个当需要对数据进行快速分析的时候，会体现其强大的价值。至于编写能编写代码的代码，书中的例子是对定义的数据库schema进行分析，生成程序使用的低级数据结构，并保持每次schema修改都会令程序中 使用的数据结构能够自动同步，在项目开发中使用这种方式，能够很好地避免频繁更改所导致的不一致风险。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.endlesscode.com/2010/03/22/basic-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>读《程序员修炼之道》- 注重实效的途径</title>
		<link>http://blog.endlesscode.com/2010/03/21/a-pragmatic-approach/</link>
		<comments>http://blog.endlesscode.com/2010/03/21/a-pragmatic-approach/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 00:52:25 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.endlesscode.com/?p=504</guid>
		<description><![CDATA[“系统中的每一项知识都必须具有单一、无歧义、权威的表示” “DRY-Don&#8217;t Repeat Yourself  不要重复自己” “代码为什么需要注释：糟糕的代码才需要许多注释。DRY法则告诉我们，要把低级的知识放在代码中，它属于那里；把注释保留给其他的高级说明。否则，我们就是在重复知识，而每一次改变都意味着既要改变代码，也要改变注释。” “如果你觉得受到诱惑，想一想古老的格言：&#8221;欲速则不达&#8221;。其中许多问题是由开发者的懒惰造成的。无耐性的重复是一种容易检测和处理的重复形式，但那需要你接受训练，并愿意为避免以后的痛苦而预先花一些时间。” “在计算技术中，正交性用于表示某种不相依赖或是解耦性。如果两个或更多事物中的一个发生变化，不会影响其他事物，这些事物就是正交的。” “不要依赖你无法控制的事物属性” “让你的代码保持解耦；避免使用全局数据；避免编写相似的函数。养成不断地批判对待自己的代码的习惯。寻找任何重新进行组织、以改善其结构和正交性的机会。这个过程叫重构。” “修正bug也是评估整个系统的正交性的好时候。当你遇到问题时，评估修正的局部化程度。你是否改动了一个模块，或者改动分散在整个系统的各个地 方？当你做出改动时，它修正了所有问题，还是又神秘地出现了其他问题？当你在测试之后、把代码签回时，标记所做的bug修正。随后你可以运行月报，分析每 个bug修正所影响的源文件数目的变化趋势。” “可撤消性：不存在最终决策” “有许多人会设法保持代码的灵活性，而你还需要考虑维持架构、部署及供应商集成等领域的灵活性。不确定市场部门想怎样部署系统？预先考虑这个问题，你可以支持单机、客户端-服务器、或n层模型&#8211;只需要改变配置文件。无论你使用的是何种机制，让它可撤消吧。” “曳光弹告诉你击中的是什么。那不一定总是目标。于是你调整准星，直到完全击中目标为止。这正是要点所在。” “原型制作生成用过就扔的代码。曳光代码虽然简约，但却是完整的，并且构成了最终系统的骨架的一部分。你可以把原型制作视为第一发曳光弹发射之前进行的侦察和情报搜集工作。” “原型制作是一种学习经验。其价值并不在于所产生的代码，而在于所学到的经验教训。那才是原型制作的要点所在。适当地使用原型，可以帮你在开发周期 的早期确定和改正潜在的问题点&#8211;在此时改正错误既便宜、又容易&#8211;从而为你节省大量时间、金钱，并大大减轻你遭受的痛苦和折磨。” “靠近问题领域编程。通过在更高的抽象层上编码，你获得了专心解决领域问题的自由，并且可以忽略琐碎的实现细节。实现小型语言。尽管解析&#8221;真正的&#8221;语言所需要的代码可能更难编写，但它却容易被人理解得多，并且将来用新特性和新功能进行扩展也要容易得多。” “通过代码对进度表进行迭代。你必须帮助他们了解团队、团队的生产率、还有环境将决定进度。通过使其形式化，并把改进进度表作为每次迭代后一部分，你将给予他们你所能给予的最精确的进度估算。” “在被要求进行估算时说什么？你说：我等会儿回答你。如果你放慢估算的速度，并花一点时间仔细检查我们在这一节描述的步骤，你几乎总能得到更好的结果。” 第二章读后感：这一章节讲的内容偏向于需求分析和总体设计方面。重构解耦这些概念不少书籍都会提到，不过我反而觉得无耐性重复这点描述开发者比较到 位，自己就有过这种经历，出于懒，有时候就直接拷贝代码，或没有从设计上考虑避免重复，这样反而容易导致潜在的问题。至于对bug的修正统计，我觉得这样 做很科学，一方面可以对容易出错的知识点进行补充或培训，同时我相信也是对开发者的一种鞭策，但是在国内这些产品压力巨大的情况下，很难做到这一点。其实 我一直想自己实现一门小型语言，这本书的说法反而更肯定了我这个想法，实现小型语言要放到今年的to do list里面。有人说过，“程序的实际开发时间 = 2*程序员估计时间 + 10% 的来历: 一般程序员会过少的估计时间，程序员水平越好，越接近正确值，水平越低偏差越大。考虑到需求变化和其他怪异的情况，常用最好程序员估计时间*2+10%缓 冲。在不系统研究，粗测时间时，比较有效。”，估算考虑到调试、fix bug的时间风险，还要与同类型项目的时间对比，这样可能会容易得到更准确的估算。]]></description>
			<content:encoded><![CDATA[<p>“系统中的每一项知识都必须具有单一、无歧义、权威的表示”</p>
<p>“DRY-Don&#8217;t Repeat Yourself  不要重复自己”</p>
<p>“代码为什么需要注释：糟糕的代码才需要许多注释。DRY法则告诉我们，要把低级的知识放在代码中，它属于那里；把注释保留给其他的高级说明。否则，我们就是在重复知识，而每一次改变都意味着既要改变代码，也要改变注释。”</p>
<p>“如果你觉得受到诱惑，想一想古老的格言：&#8221;欲速则不达&#8221;。其中许多问题是由开发者的懒惰造成的。无耐性的重复是一种容易检测和处理的重复形式，但那需要你接受训练，并愿意为避免以后的痛苦而预先花一些时间。”</p>
<p>“在计算技术中，正交性用于表示某种不相依赖或是解耦性。如果两个或更多事物中的一个发生变化，不会影响其他事物，这些事物就是正交的。”</p>
<p>“不要依赖你无法控制的事物属性”</p>
<p>“让你的代码保持解耦；避免使用全局数据；避免编写相似的函数。养成不断地批判对待自己的代码的习惯。寻找任何重新进行组织、以改善其结构和正交性的机会。这个过程叫重构。”</p>
<p>“修正bug也是评估整个系统的正交性的好时候。当你遇到问题时，评估修正的局部化程度。你是否改动了一个模块，或者改动分散在整个系统的各个地 方？当你做出改动时，它修正了所有问题，还是又神秘地出现了其他问题？当你在测试之后、把代码签回时，标记所做的bug修正。随后你可以运行月报，分析每 个bug修正所影响的源文件数目的变化趋势。”</p>
<p>“可撤消性：不存在最终决策”<span id="more-504"></span></p>
<p>“有许多人会设法保持代码的灵活性，而你还需要考虑维持架构、部署及供应商集成等领域的灵活性。不确定市场部门想怎样部署系统？预先考虑这个问题，你可以支持单机、客户端-服务器、或n层模型&#8211;只需要改变配置文件。无论你使用的是何种机制，让它可撤消吧。”</p>
<p>“曳光弹告诉你击中的是什么。那不一定总是目标。于是你调整准星，直到完全击中目标为止。这正是要点所在。”</p>
<p>“原型制作生成用过就扔的代码。曳光代码虽然简约，但却是完整的，并且构成了最终系统的骨架的一部分。你可以把原型制作视为第一发曳光弹发射之前进行的侦察和情报搜集工作。”</p>
<p>“原型制作是一种学习经验。其价值并不在于所产生的代码，而在于所学到的经验教训。那才是原型制作的要点所在。适当地使用原型，可以帮你在开发周期 的早期确定和改正潜在的问题点&#8211;在此时改正错误既便宜、又容易&#8211;从而为你节省大量时间、金钱，并大大减轻你遭受的痛苦和折磨。”</p>
<p>“靠近问题领域编程。通过在更高的抽象层上编码，你获得了专心解决领域问题的自由，并且可以忽略琐碎的实现细节。实现小型语言。尽管解析&#8221;真正的&#8221;语言所需要的代码可能更难编写，但它却容易被人理解得多，并且将来用新特性和新功能进行扩展也要容易得多。”</p>
<p>“通过代码对进度表进行迭代。你必须帮助他们了解团队、团队的生产率、还有环境将决定进度。通过使其形式化，并把改进进度表作为每次迭代后一部分，你将给予他们你所能给予的最精确的进度估算。”</p>
<p>“在被要求进行估算时说什么？你说：我等会儿回答你。如果你放慢估算的速度，并花一点时间仔细检查我们在这一节描述的步骤，你几乎总能得到更好的结果。”</p>
<p>第二章读后感：这一章节讲的内容偏向于需求分析和总体设计方面。重构解耦这些概念不少书籍都会提到，不过我反而觉得无耐性重复这点描述开发者比较到 位，自己就有过这种经历，出于懒，有时候就直接拷贝代码，或没有从设计上考虑避免重复，这样反而容易导致潜在的问题。至于对bug的修正统计，我觉得这样 做很科学，一方面可以对容易出错的知识点进行补充或培训，同时我相信也是对开发者的一种鞭策，但是在国内这些产品压力巨大的情况下，很难做到这一点。其实 我一直想自己实现一门小型语言，这本书的说法反而更肯定了我这个想法，实现小型语言要放到今年的to do list里面。有人说过，“程序的实际开发时间 = 2*程序员估计时间 + 10% 的来历: 一般程序员会过少的估计时间，程序员水平越好，越接近正确值，水平越低偏差越大。考虑到需求变化和其他怪异的情况，常用最好程序员估计时间*2+10%缓 冲。在不系统研究，粗测时间时，比较有效。”，估算考虑到调试、fix bug的时间风险，还要与同类型项目的时间对比，这样可能会容易得到更准确的估算。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.endlesscode.com/2010/03/21/a-pragmatic-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>读《程序员修炼之道》- 注重实效的哲学</title>
		<link>http://blog.endlesscode.com/2010/03/21/a-pragmatic-philosophy/</link>
		<comments>http://blog.endlesscode.com/2010/03/21/a-pragmatic-philosophy/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 00:51:58 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.endlesscode.com/?p=490</guid>
		<description><![CDATA[“不要留着&#8221;破窗户&#8221;（低劣的设计、错误的决策、或是糟糕的代码）不修。发现一个就修一个。如果没有足够的时间进行适当的修理，就用木板把它钉起 来。或许你可以把出问题的代码放入注释，或是显示&#8221;未实现&#8221;消息，或是用虚设的数据加以替代。采用某种行动防止进一步的损坏，并说明情势处在你的控制之 下” “一辆废弃的轿车放了一个星期，无人理睬。而一旦有一扇窗户被打破，数小时之内车上的设备就被抢夺一空，车也被翻个底朝天” 石头汤：士兵通过煮石头吸引村民共同分享食物。 “今天的了不起的软件常常比明天的完美软件更可取。如果你给用户某种东西，让他们及早使用，他们的反馈常常会把你引向更好的最终解决方案。” “定期为你的知识资产投资：” “定期投资：定期为你的知识资产投资。每年至少学习一门语言，每季度阅读一本技术书籍。” “多元化：计算机技术的面貌变化很快&#8211;今天的热闹技术明天就可能变得近乎无用。你掌握的技术越多，你就越能更好地进行调整，赶上变化。” “管理风险：不要把你所有的技术放在一个篮子里。” “低买高买：在新兴的技术流行之前学习它可能就和找到被低估的股票一样困难，但所得到的就和那样的股票带来收益一样。” “规划你想要说的东西。写出大纲。调整你的交流风格，让其适应你的听众。鼓励大家通过提问交谈，或是让他们总结你告诉他们的东西。把会议变成对话，你将能更有效地阐明你的观点。” “你应该总是对电子邮件和语音邮件做出回应，即使内容只是&#8221;我稍候回复你&#8221;。随时通知别人，会让他们更容易原谅你偶然的疏忽，并让他们觉得你没有忘记他们。除非你生活在真空中，你才不需要交流。交流越有效，你就越有影响力。” “电子邮件的提示：在你按下SEND之前进行校对；检查拼写；让格式保持简单；只在你知道对方能够阅读rich-text或HTML格式的邮件的情 况下使用这些格式，纯文本是通用的；设法让引文减至最小；如果你引用别人的电子邮件，一定要注明出处，并在正文中进行引用（而不是当附件）。” 读后感：“破窗户理论”这点很重要，有时候看到糟糕的设计代码不能因为偷懒或者没所谓而忽略掉，不然很有可能导致系统出现难以预料的问题。石 头汤的故事让我意识到要想他人和自己实现目标，自己首先要有所付出，来引导他人参与，没有原型作为催化剂，别人是难以看到原型背后的重要意义和希望。要多些去国外的网站去了解国外的技术动态，今年打算学的语言是Haskell。我觉得回复他人这一个细节说得很好，以前一直没有意识到，当别人问你问题的时候 （通过IM或者Email），无论你是否忙于其他事情或者为别人提出的这个问题而思考，都要先回复别人一句“我稍后回复你”会让人感觉得到了尊重并且你没 有忽略他。]]></description>
			<content:encoded><![CDATA[<p>“不要留着&#8221;破窗户&#8221;（低劣的设计、错误的决策、或是糟糕的代码）不修。发现一个就修一个。如果没有足够的时间进行适当的修理，就用木板把它钉起 来。或许你可以把出问题的代码放入注释，或是显示&#8221;未实现&#8221;消息，或是用虚设的数据加以替代。采用某种行动防止进一步的损坏，并说明情势处在你的控制之 下”</p>
<p>“一辆废弃的轿车放了一个星期，无人理睬。而一旦有一扇窗户被打破，数小时之内车上的设备就被抢夺一空，车也被翻个底朝天”</p>
<p>石头汤：士兵通过煮石头吸引村民共同分享食物。</p>
<p>“今天的了不起的软件常常比明天的完美软件更可取。如果你给用户某种东西，让他们及早使用，他们的反馈常常会把你引向更好的最终解决方案。”</p>
<p>“定期为你的知识资产投资：”</p>
<ul>
<li>“定期投资：定期为你的知识资产投资。每年至少学习一门语言，每季度阅读一本技术书籍。”</li>
<li>“多元化：计算机技术的面貌变化很快&#8211;今天的热闹技术明天就可能变得近乎无用。你掌握的技术越多，你就越能更好地进行调整，赶上变化。”</li>
<li>“管理风险：不要把你所有的技术放在一个篮子里。”</li>
<li>“低买高买：在新兴的技术流行之前学习它可能就和找到被低估的股票一样困难，但所得到的就和那样的股票带来收益一样。”<span id="more-490"></span></li>
</ul>
<p>“规划你想要说的东西。写出大纲。调整你的交流风格，让其适应你的听众。鼓励大家通过提问交谈，或是让他们总结你告诉他们的东西。把会议变成对话，你将能更有效地阐明你的观点。”</p>
<p>“你应该总是对电子邮件和语音邮件做出回应，即使内容只是&#8221;我稍候回复你&#8221;。随时通知别人，会让他们更容易原谅你偶然的疏忽，并让他们觉得你没有忘记他们。除非你生活在真空中，你才不需要交流。交流越有效，你就越有影响力。”</p>
<p>“电子邮件的提示：在你按下SEND之前进行校对；检查拼写；让格式保持简单；只在你知道对方能够阅读rich-text或HTML格式的邮件的情 况下使用这些格式，纯文本是通用的；设法让引文减至最小；如果你引用别人的电子邮件，一定要注明出处，并在正文中进行引用（而不是当附件）。”</p>
<p><strong>读后感</strong>：“破窗户理论”这点很重要，有时候看到糟糕的设计代码不能因为偷懒或者没所谓而忽略掉，不然很有可能导致系统出现难以预料的问题。石 头汤的故事让我意识到要想他人和自己实现目标，自己首先要有所付出，来引导他人参与，没有原型作为催化剂，别人是难以看到原型背后的重要意义和希望。要多些去国外的网站去了解国外的技术动态，今年打算学的语言是Haskell。我觉得回复他人这一个细节说得很好，以前一直没有意识到，当别人问你问题的时候 （通过IM或者Email），无论你是否忙于其他事情或者为别人提出的这个问题而思考，都要先回复别人一句“我稍后回复你”会让人感觉得到了尊重并且你没 有忽略他。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.endlesscode.com/2010/03/21/a-pragmatic-philosophy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zz 毕业5年决定你的命运</title>
		<link>http://blog.endlesscode.com/2010/02/06/fate-after-5-years-graduate/</link>
		<comments>http://blog.endlesscode.com/2010/02/06/fate-after-5-years-graduate/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 15:53:33 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.endlesscode.com/?p=242</guid>
		<description><![CDATA[正如&#8221;打工皇帝&#8221;唐骏说：&#8221;我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人，头5年千万不要说你能不能多给我一点儿工资，最重要的是能在企业里学到什么，对发展是不是有利……&#8221; 人总是从平坦中获得的教益少，从磨难中获得的教益多；从平坦中获得的教益浅，从磨难中获得的教益深。一个人在年轻时经历磨难，如能正确视之，冲出黑暗，那就是一个值得敬慕的人。最要紧的是先练好内功，毕业后这5年就是练内功的最佳时期，练好内功，才有可能在未来攀得更高。 出路在哪里？出路在于思路！ 其实，没有钱、没有经验、没有阅历、没有社会关系，这些都不可怕。没有钱，可以通过辛勤劳动去赚；没有经验，可以通过实践操作去总结；没有阅历，可以一步一步去积累；没有社会关系，可以一点一点去编织。但是，没有梦想、没有思路才是最可怕的，才让人感到恐惧，很想逃避! 人必须有一个正确的方向，无论你多么意气风发，无论你是多么足智多谋，无论你花费了多大的心血，如果没有一个明确的方向，就会过得很茫然，渐渐就丧失了斗志，忘却了最初的梦想，就会走上弯路甚至不归路，枉费了自己的聪明才智，误了自己的青春年华。 荷马史诗《奥德赛》中有一句至理名言：&#8221;没有比漫无目的地徘徊更令人无法忍受的了。&#8221;毕业后这5年里的迷茫，会造成10年后的恐慌，20年后的挣扎，甚至一辈子的平庸。如果不能在毕业这5年尽快冲出困惑、走出迷雾，我们实在是无颜面对10年后、20年后的自己。毕业这5年里，我们既有很多的不确定，也有很多的可能性。 毕业这5年里，我们既有很多的待定，也有很多的决定。 迷茫与困惑谁都会经历，恐惧与逃避谁都曾经有过，但不要把迷茫与困惑当作可以自我放弃、甘于平庸的借口，更不要成为自怨自艾、祭奠失意的苦酒。生命需要 自己去承担，命运更需要自己去把握。在毕业这5年里，越早找到方向，越早走出困惑，就越容易在人生道路上取得成就、创造精彩。无头苍蝇找不到方向，才会四处碰壁；一个人找不到出路，才会迷茫、恐惧。 生活中，面对困境，我们常常会有走投无路的感觉。不要气馁，坚持下去，要相信年轻的人生没有绝路，困境在前方，希望在拐角。只要我们有了正确的思路，就一定能少走弯路，找到出路！ 成功的人不是赢在起点，而是赢在转折点。 不 少刚刚毕业的年轻人，总是奢望马上就能找到自己理想中的工作。然而，很多好工作是无法等来的，你必须选择一份工作作为历练。职业旅程中的第一份工作，无疑 是踏入社会这所大学的起点。也许你找了一份差强人意的工作，那么从这里出发，好好地沉淀自己，从这份工作中汲取到有价值的营养，厚积薄发。千里之行，始于 足下，只要出发，就有希望到达终点。 起点可以相同，但是选择了不同的拐点，终点就会大大不同！ 毕业这几年，我们的生活、感情、职业等都存在很多不确定的因素，未来也充满了各种可能。这个时候，必须学会选择，懂得放弃，给自己一个明确的定位，使自己稳定下来。如果你不主动定位，就会被别人和社会&#8221;定型&#8221;！ 可以这么说：一个人在毕业这5年培养起来的行为习惯，将决定他一生的高度。我们能否成功，在某种程度上取决于自己对自己的评价，这就是定位。你给自己定位是什么，你就是什么。定位能决定人生，定位能改变命运。丑小鸭变成白天鹅，只要一双翅膀；灰姑娘变成美公主，只要一双水晶鞋。 人的命，三分天注定，七分靠打拼，有梦就&#8221;会红&#8221;，爱拼才会赢。只要不把自己束缚在心灵的牢笼里，谁也束缚不了你去展翅高飞。 现实情况远非他们所想的那样。于是，当优越感逐渐转为失落感甚至挫败感时，当由坚信自己是一块&#8221;金子&#8221;到怀疑自己是一粒&#8221;沙子&#8221;时，愤怒、迷茫、自卑就开始与日俱增。 其实，应该仔细掂量一下自己，你是否真是金子？是真金，手中要有绝活，才能上要有过人之处才行。一句话：真金是要靠实力来证明的，只有先把自己的本领修炼好了，才有资格考虑伯乐的事情 每颗珍珠原本都是一粒沙子，但并不是每一粒沙子都能成为一颗珍珠。 想要卓尔不群，就要有鹤立鸡群的资本。忍受不了打击和挫折，承受不住忽视和平淡，就很难达到辉煌。年轻人要想让自己得到重用，取得成功，就必须把自己从一粒沙子变成一颗价值连城的珍珠。 天气有下雨与日出，人生有高峰与低谷。莫为浮云遮望眼，风物长宜放眼量。只要拂去阴霾，就能亮出朗朗晴空。如果你在工作上有些不如意，要相信自己不会一直处于人生的低谷期，总有一天能冲破重重云层。告诉自己：我并没有失败，只是暂时没有成功！只要在内心点亮一盏希望之灯，一定能驱散黑暗中的阴霾，迎来光明。 的确，论资历，他们是不折不扣的职场菜鸟，业务涉及不深，人脉一穷二白，在工作中经常碰壁。他们的压力并不一定都像千钧大石，而是像大雨来临前的天色，灰色低沉，明明有空间，却被灰色填满每个缝隙，只能等待大雨倾盆之后的晴空。 &#8220;起得比鸡早，睡得比狗晚，干得比驴多，吃得比猪差。&#8221;这是很多刚刚毕业的人喜欢用来调侃自己生活状态的话。虽然有点儿夸张，但是，他们中的很多人的确一直都被灰色心情所笼罩&#8211;心里永远是多云转阴。记得有位哲人曾说：&#8221;我们的痛苦不是问题本身带来的，而是我们对这些问题的看法产生的。&#8221;换个角度看人生，是一种突破、一种解脱、一种超越、一种高层次的淡泊与宁静，从而获得自由自在的快乐。 一位哲人说：&#8221;人生就是一连串的抉择，每个人的前途与命运，完全把握在自己手中，只要努力，终会有成。&#8221;就业也好，择业也罢，创业亦如此，只要奋发努力，都会成功。你是不是准备把生命的承诺全部都交给别人？ 毕业后这5年，是改变自己命运的黄金时期。在最能决定自己命运时，如果还不把握，那你还要等到什么时候呢？我的人生我做主，命运由己不由人。 不要活在别人的嘴里，不要活在别人的眼里，而是把命运握在自己手里。 别说你没有背景，自己就是最大的背景。美 国作家杰克·凯鲁亚克说过一句话：&#8221;我还年轻，我渴望上路。&#8221;在人生的旅途中，我们永远都是年轻人，每天都应该满怀渴望。每个人的潜能都是无限的，关键是 要发现自己的潜能和正确认识自己的才能，并找到一个能充分发挥潜能的舞台，而不能只为舞台的不合适感到不快。要客观公正地看待自己的能力，结合自己的实际 情况和爱好冷静选择，尽可能到最需要自己、最适合自己的地方。 在人力资源管理界，特别流行一个说法，即&#8221;骑马，牵牛，赶猪，打狗&#8221;理论：人品很好，能力又很强的，是千里马，我们要骑着他；人品很好但能力普通的，是老 黄牛，我们要牵着他；人品、能力皆普通的，就是&#8221;猪&#8221;，我们要赶走他；人品很差能力很强的，那是&#8221;狗&#8221;，我们要打击他。 我想，刚刚毕业几年的你，一样胸怀大志，一样想成为一匹被人赏识、驰骋沙场的千里马吧？那么，就好好沉淀下来。低就一层不等于低人一等，今日的俯低是为了明天的高就。所谓生命的价值，就是我们的存在对别人有价值。能被人利用是一件好事，无人问津才是真正的悲哀！ 能干工作、干好工作是职场生存的基本保障。任何人做工作的前提条件都是他的能力能够胜任这项工作。能干是合格员工最基本的标准，肯干则是一种态度。一个职位有很多人都能胜任，都有干好这份工作的基本能力，然而，能否把工作做得更好一些，就要看是否具有踏实肯干、苦于钻研的工作态度了。 在能干的基础上踏实肯干 工作中，活干得比别人多，你觉得吃亏；钱拿得比别人少，你觉得吃亏；经常加班加点，你觉得吃亏……其实，没必要这样计较，吃亏不是灾难，不是失败，吃亏也是一种生活哲学。现在吃点儿小亏，为成功铺就道路，也许在未来的某个时刻，你的大福突然就来了。 能吃亏是做人的一种境界，是处世的一种睿智。 &#8230; <a href="http://blog.endlesscode.com/2010/02/06/fate-after-5-years-graduate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="blogContent">
<p><span style="color: #000000;"><span style="line-height: 1.8em;">正如&#8221;打工皇帝&#8221;唐骏说：&#8221;我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人，头5年千万不要说你能不能多给我一点儿工资，最重要的是能在企业里学到什么，对发展是不是有利……&#8221;</span><br />
<span style="line-height: 1.8em;">人总是从平坦中获得的教益少，从磨难中获得的教益多；从平坦中获得的教益浅，从磨难中获得的教益深。一个人在年轻时经历磨难，如能正确视之，冲出黑暗，那就是一个值得敬慕的人。最要紧的是先练好内功，毕业后这5年就是练内功的最佳时期，练好内功，才有可能在未来攀得更高。<span id="more-242"></span></span><br />
<span style="line-height: 1.8em;">出路在哪里？出路在于思路！</span><br />
<span style="line-height: 1.8em;"> 其实，没有钱、没有经验、没有阅历、没有社会关系，这些都不可怕。没有钱，可以通过辛勤劳动去赚；没有经验，可以通过实践操作去总结；没有阅历，可以一步一步去积累；没有社会关系，可以一点一点去编织。但是，没有梦想、没有思路才是最可怕的，才让人感到恐惧，很想逃避</span><span style="line-height: 1.8em;">!<br />
人必须有一个正确的方向，无论你多么意气风发，无论你是多么足智多谋，无论你花费了多大的心血，如果没有一个明确的方向，就会过得很茫然，渐渐就丧失了斗志，忘却了最初的梦想，就会走上弯路甚至不归路，枉费了自己的聪明才智，误了自己的青春年华。</span><br />
<span style="line-height: 1.8em;">荷马史诗《奥德赛》中有一句至理名言：&#8221;没有比漫无目的地徘徊更令人无法忍受的了。&#8221;毕业后这5年里的迷茫，会造成10年后的恐慌，20年后的挣扎，甚至一辈子的平庸。如果不能在毕业这5年尽快冲出困惑、走出迷雾，我们实在是无颜面对10年后、20年后的自己。</span><span style="line-height: 1.8em;"><span style="line-height: 1.8em;">毕业这5年里，我们既有很多的不确定，也有很多的可能性。</span><br />
<span style="line-height: 1.8em;"> 毕业这5年里，我们既有很多的待定，也有很多的决定。</span><br />
</span><span style="line-height: 1.8em;"> 迷茫与困惑谁都会经历，恐惧与逃避谁都曾经有过，但不要把迷茫与困惑当作可以自我放弃、甘于平庸的借口，更不要成为自怨自艾、祭奠失意的苦酒。生命需要 自己去承担，命运更需要自己去把握。在毕业这5年里，越早找到方向，越早走出困惑，就越容易在人生道路上取得成就、创造精彩。</span><span style="line-height: 1.8em;">无头苍蝇找不到方向，才会四处碰壁；一个人找不到出路，才会迷茫、恐惧。</span><br />
<span style="line-height: 1.8em;">生活中，面对困境，我们常常会有走投无路的感觉。不要气馁，坚持下去，要相信年轻的人生没有绝路，困境在前方，希望在拐角。只要我们有了正确的思路，就一定能少走弯路，找到出路！</span><br />
<span style="line-height: 1.8em;">成功的人不是赢在起点，而是赢在转折点。</span><br />
<span style="line-height: 1.8em;">不 少刚刚毕业的年轻人，总是奢望马上就能找到自己理想中的工作。然而，很多好工作是无法等来的，你必须选择一份工作作为历练。职业旅程中的第一份工作，无疑 是踏入社会这所大学的起点。也许你找了一份差强人意的工作，那么从这里出发，好好地沉淀自己，从这份工作中汲取到有价值的营养，厚积薄发。千里之行，始于 足下，只要出发，就有希望到达终点。</span><br />
<span style="line-height: 1.8em;">起点可以相同，但是选择了不同的拐点，终点就会大大不同！</span><br />
<span style="line-height: 1.8em;">毕业这几年，我们的生活、感情、职业等都存在很多不确定的因素，未来也充满了各种可能。这个时候，必须学会选择，懂得放弃，给自己一个明确的定位，使自己稳定下来。如果你不主动定位，就会被别人和社会&#8221;定型&#8221;！</span><br />
<span style="line-height: 1.8em;"> 可以这么说：一个人在毕业这5年培养起来的行为习惯，将决定他一生的高度。我们能否成功，在某种程度上取决于自己对自己的评价，这就是定位。你给自己定位是什么，你就是什么。定位能决定人生，定位能改变命运。</span><span style="line-height: 1.8em;">丑小鸭变成白天鹅，只要一双翅膀；灰姑娘变成美公主，只要一双水晶鞋</span><span style="line-height: 1.8em;">。</span><br />
<span style="line-height: 1.8em;"><span style="line-height: 1.8em;">人的命，三分天注定，七分靠打拼，有梦就&#8221;会红&#8221;，爱拼才会赢</span></span><span style="line-height: 1.8em;">。只要不把自己束缚在心灵的牢笼里，谁也束缚不了你去展翅高飞。</span><br />
<span style="line-height: 1.8em;">现实情况远非他们所想的那样。于是，当优越感逐渐转为失落感甚至挫败感时，当由坚信自己是一块&#8221;金子&#8221;到怀疑自己是一粒&#8221;沙子&#8221;时，愤怒、迷茫、自卑就开始与日俱增。</span><br />
<span style="line-height: 1.8em;">其实，应该仔细掂量一下自己，你是否真是金子？是真金，手中要有绝活，才能上要有过人之处才行。一句话：真金是要靠实力来证明的，只有先把自己的本领修炼好了，才有资格考虑伯乐的事情</span><br />
<span style="line-height: 1.8em;"><br />
<span style="line-height: 1.8em;">每颗珍珠原本都是一粒沙子，但并不是每一粒沙子都能成为一颗珍珠。</span><br />
</span><span style="line-height: 1.8em;">想要卓尔不群，就要有鹤立鸡群的资本。忍受不了打击和挫折，承受不住忽视和平淡，就很难达到辉煌。年轻人要想让自己得到重用，取得成功，就必须把自己从一粒沙子变成一颗价值连城的珍珠。</span><br />
<span style="line-height: 1.8em;">天气有下雨与日出，人生有高峰与低谷。</span><span style="line-height: 1.8em;">莫为浮云遮望眼，风物长宜放眼量。只要拂去阴霾，就能亮出朗朗晴空。如果你在工作上有些不如意，要相信自己不会一直处于人生的低谷期，总有一天能冲破重重云层。告诉自己：我并没有失败，只是暂时没有成功！只要在内心点亮一盏希望之灯，一定能驱散黑暗中的阴霾，迎来光明。</span><br />
<span style="line-height: 1.8em;">的确，论资历，他们是不折不扣的职场菜鸟，业务涉及不深，人脉一穷二白，在工作中经常碰壁。他们的压力并不一定都像千钧大石，而是像大雨来临前的天色，灰色低沉，明明有空间，却被灰色填满每个缝隙，只能等待大雨倾盆之后的晴空。</span><br />
<span style="line-height: 1.8em;"> &#8220;起得比鸡早，睡得比狗晚，干得比驴多，吃得比猪差。&#8221;这是很多刚刚毕业的人喜欢用来调侃自己生活状态的话。虽然有点儿夸张，但是，他们中的很多人的确一直都被灰色心情所笼罩&#8211;心里永远是多云转阴。</span><span style="line-height: 1.8em;">记得有位哲人曾说：&#8221;我们的痛苦不是问题本身带来的，而是我们对这些问题的看法产生的。&#8221;换个角度看人生，是一种突破、一种解脱、一种超越、一种高层次的淡泊与宁静，从而获得自由自在的快乐。</span><br />
<span style="line-height: 1.8em;">一位哲人说</span><span style="line-height: 1.8em;"><span style="line-height: 1.8em;">：&#8221;人生就是一连串的抉择，每个人的前途与命运，完全把握在自己手中，只要努力，终会有成。&#8221;就业也好，择业也罢，创业亦如此，只要奋发努力，都会成功。</span></span><span style="line-height: 1.8em;">你是不是准备把生命的承诺全部都交给别人？</span><br />
<span style="line-height: 1.8em;"> 毕业后这5年，是改变自己命运的黄金时期。在最能决定自己命运时，如果还不把握，那你还要等到什么时候呢？</span><span style="line-height: 1.8em;">我的人生我做主，命运由己不由人。</span><span style="line-height: 1.8em;"><br />
</span><span style="line-height: 1.8em;"> </span><span style="line-height: 1.8em;">不要活在别人的嘴里，不要活在别人的眼里，而是把命运握在自己手里。</span><br />
<span style="line-height: 1.8em;"> 别说你没有背景，自己就是最大的背景。</span><span style="line-height: 1.8em;">美 国作家杰克·凯鲁亚克说过一句话：&#8221;我还年轻，我渴望上路。&#8221;在人生的旅途中，我们永远都是年轻人，每天都应该满怀渴望。每个人的潜能都是无限的，关键是 要发现自己的潜能和正确认识自己的才能，并找到一个能充分发挥潜能的舞台，而不能只为舞台的不合适感到不快。要客观公正地看待自己的能力，结合自己的实际 情况和爱好冷静选择，尽可能到最需要自己、最适合自己的地方。</span><br />
<span style="line-height: 1.8em;"> 在人力资源管理界，特别流行一个说法，即&#8221;骑马，牵牛，赶猪，打狗&#8221;理论：人品很好，能力又很强的，是千里马，我们要骑着他；人品很好但能力普通的，是老 黄牛，我们要牵着他；人品、能力皆普通的，就是&#8221;猪&#8221;，我们要赶走他；人品很差能力很强的，那是&#8221;狗&#8221;，我们要打击他。</span><br />
<span style="line-height: 1.8em;">我想，刚刚毕业几年的你，一样胸怀大志，一样想成为一匹被人赏识、驰骋沙场的千里马吧？那么，就好好沉淀下来。低就一层不等于低人一等，今日的俯低是为了明天的高就。所谓生命的价值，就是我们的存在对别人有价值。能被人利用是一件好事，无人问津才是真正的悲哀！</span><br />
<span style="line-height: 1.8em;">能干工作、干好工作是职场生存的基本保障</span><span style="line-height: 1.8em;">。任何人做工作的前提条件都是他的能力能够胜任这项工作。能干是合格员工最基本的标准，肯干则是一种态度。一个职位有很多人都能胜任，都有干好这份工作的基本能力，然而，能否把工作做得更好一些，就要看是否具有踏实肯干、苦于钻研的工作态度了。</span><br />
<span style="line-height: 1.8em;"><br />
<span style="line-height: 1.8em;">在能干的基础上踏实肯干</span><br />
</span><span style="line-height: 1.8em;">工作中，活干得比别人多，你觉得吃亏；钱拿得比别人少，你觉得吃亏；经常加班加点，你觉得吃亏……其实，没必要这样计较，吃亏不是灾难，不是失败，吃亏也是一种生活哲学。现在吃点儿小亏，为成功铺就道路，也许在未来的某个时刻，你的大福突然就来了。</span><br />
<span style="line-height: 1.8em;">能吃亏是做人的一种境界，是处世的一种睿智。</span><br />
<span style="line-height: 1.8em;">在工作中并不是多做事或多帮别人干点儿活就是吃亏。如果领导让你加加班、赶赶任务，别以为自己吃了大亏，反而应该感到庆幸，因为领导只叫了你，而没叫其他人，说明他信任你、赏识你。吃亏是一种贡献，你贡献得越多，得到的回报也就越多。乐于加班，就是这样的一种吃亏。</span><br />
<span style="line-height: 1.8em;">舍得舍得，有舍才有得；学会在适当时吃些亏的人绝对不是弱智，而是大智。</span><br />
<span style="line-height: 1.8em;"> 给别人留余地就是给自己留余地，予人方便就是予己方便，善待别人就是善待自己。</span><br />
<span style="line-height: 1.8em;"> 傻人有傻福，因为傻人没有心计。和这样的人在一起，身心放松，没有太多警惕，就能相互靠近。傻在很多时候意味着执着和忠贞，也意味着宽厚和诚实，让人不知不觉站到他一边。傻人无意中得到的，比聪明人费尽心机得到的还多。</span><span style="line-height: 1.8em;">毕 业这几年，你的天空中只飘着几片雪花，这样你就满足了吗？成功需要坚持与积累，与其专注于搜集雪花，不如省下力气去滚雪球。巴菲特说：&#8221;人生就像滚雪球， 最重要的是发现很湿的雪和很长的坡。&#8221;让自己沉淀下来，学着发现&#8221;很湿的雪&#8221;，努力寻找&#8221;很长的坡&#8221;。记住：散落的雪花会很快融化，化为乌有，只有雪球才 更实在，才能长久。</span><br />
<span style="line-height: 1.8em;">在毕业这几年里，你要是能做到比别人多付出一分努力，就意味着比别人多积累一分资本，就比别人多一次成功的机会。</span><br />
<span style="line-height: 1.8em;">什么是职业化呢？职业化就是工作状态的标准化、规范化、制度化，即在合适的时间、合适的地点用合适的方式说合适的话、做合适的事，使知识、技能、观念、思维、态度、心理等符合职业规范和标准。</span><br />
<span style="line-height: 1.8em;">&#8220;</span><span style="line-height: 1.8em;">在每个行业里，都有很多出色的人才，他们之所以能存在，是因为比别人更努力、更智慧、更成熟。但是，最重要的是，他们比一般人更加职业化！这就是为什么我现在能当你老板的原因。</span><span style="line-height: 1.8em;"><span style="line-height: 1.8em;">一个人仅仅专业化是不够的，只有职业化的人才能飞在别人前面，让人难以超越！&#8221;</span></span><span style="line-height: 1.8em;">不要以为我们现在已经生存得很安稳了。对于毕业5年的人来讲，一定要认清即将面临的五大挑战。</span><br />
<span style="line-height: 1.8em;"><br />
<span style="line-height: 1.8em;">一、赡养父母。</span><br />
<span style="line-height: 1.8em;">二、结婚生子。</span><br />
<span style="line-height: 1.8em;">三、升职加薪。</span><br />
<span style="line-height: 1.8em;">四、工作压力。</span><br />
<span style="line-height: 1.8em;">五、生活质量。</span><br />
</span><span style="line-height: 1.8em;">有的人为生存而雀跃，目光总是停在身后，三天打鱼两天晒网，有始无终。</span><br />
<span style="line-height: 1.8em;"> 有的人为发展而奋斗，目光总是盯在正前方，每天进步一点点，坚持不懈。</span><br />
<span style="line-height: 1.8em;"> 毕业这几年，不能没有追求和探索，不能没有理想和目标。人生如逆水行舟，不进则退。甘于现状的生活就是不再前行的船，再也无法追上时代前进的步伐。一定要抓紧每一秒钟的时间来学习，要明白学习不是学生的专利。</span><span style="line-height: 1.8em;">小聪明的人最得意的是：自己做过什么？大智慧的人最渴望的是：自己还要做什么？</span><br />
<span style="line-height: 1.8em;"> 小聪明是战术，大智慧是战略；小聪明看到的是芝麻，大智慧看到的是西瓜。</span><br />
<span style="line-height: 1.8em;"> 在这个世界上，既有大人物，也有小角色，大人物有大人物的活法，小人物有小人物的潇洒，每个人都有自己的生活方式，谁也勉强不了谁。但是，小聪明只能有小成绩和小视野，大智慧才能有大成就和大境界。</span><span style="line-height: 1.8em;">小企业看老板，中企业看制度，大企业看文化。</span><br />
<span style="line-height: 1.8em;">小公司与大企业都有生存之道，没有好坏之分，但对一个人不同阶段的影响会不同。</span><br />
<span style="line-height: 1.8em;"> 小公司肯定想要发展为大企业，这是一种目标，年轻人也要给自己的职业生涯制定目标。</span><span style="line-height: 1.8em;">毕业几年的你，是否经常会怯场或者是感到没有底气？居安思危绝对不是危言耸听！此刻打盹，你将做梦；此刻学习，你将圆梦。在竞争激烈的人生战场上，打盹的都是输家！</span></span></p>
<p><span style="color: #000000;"><span style="line-height: 1.8em;"> 每个人在年轻的时候似乎都豪情万丈，什么都不怕，可是随着年龄的增长，每天想着房子、工作、养家糊口这些俗事儿，再也没有年轻时那种敢于&#8221;上天探星、下 海捞月&#8221;的勇气了。是我们改变了生活，还是生活改变了我们？我们的思想越来越复杂，因为有了越来越多的舍不得、越来越多的顾虑，我们总是在徘徊、总是在犹 豫。</span><span style="line-height: 1.8em;">毕业开始一两 年，生活的重担会压得我们喘不过气来，挫折和障碍堵住四面八方的通口，我们往往在压迫得自己发挥出潜能后，才能杀出重围，找到出路。可是两三年后，身上的 重担开始减轻，工作开始一帆风顺，我们就松懈了下来，渐渐忘记了潜在的危险。直到有一天危机突然降临，我们在手足无措中被击败……毕业这几年，仍然处于危 险期，一定要有居安思危的意识，好好打拼，这样才能有一个真正的安全人生！</span><br />
<span style="line-height: 1.8em;">生于忧患，死于安乐。如果你想跨越自己目前的成就，就不能画地自限，而是要勇于接受挑战。对畏畏缩缩的人来说，真正的危险正在于不敢冒险！</span><br />
<span style="line-height: 1.8em;">年 轻人在社会的重压下，适应能力已变得越来越强，只是他们不自觉地习惯被环境推着走。他们不敢冒险，怕给自己带来终身的遗憾，于是告慰自己：&#8221;我对得起自 己、对得起家人，因为我已竭尽全力。&#8221;其实，人只有不断挑战和突破才能逐渐成长。长期固守于已有的安全感中，就会像温水里的青蛙一样，最终失去跳跃的本 能。</span><br />
<span style="line-height: 1.8em;">经历了这几年社会生活，你应该明白：这个世界上有富也有贫，有阴也有亮，有丑也有美，到底看到什么，取决于自己是积极还是消极。在年轻时学会勤勉地工作，用一种光明的思维对待生活，那么，只要张开手掌，你就会发现，里面有一片灿烂的人生。</span><br />
<span style="line-height: 1.8em;">把感恩刻在石头上，深深地感谢别人帮助过你，永远铭记，这是人生应有的一种境界；把仇恨写在沙滩上，淡淡忘掉别人伤害过你，学会宽容，让所有的怨恨随着潮水一去不复返，这也是一种人生境界。</span><br />
<span style="line-height: 1.8em;">学会倒出水，才能装下更多的水</span><span style="line-height: 1.8em;">。从毕业那天开始，学会把每天都当成一个新的起点，每一次工作都从零开始。如果你懂得把</span><span style="line-height: 1.8em;">&#8220;归零&#8221;当成一种生活的常态，当成一种优秀的延续，当成一种时刻要做的事情，那么，经过短短几年，你就可以完成自己职业生涯的正确规划与全面超越。</span><br />
<span style="line-height: 1.8em;"> 在职业起步的短短道路上，想要得到更好、更快、更有益的成长，就必须以归零思维来面对这个世界。不要以大学里的清高来标榜自己，不要觉得自己特别优秀， 而是要把自己的姿态放下，把自己的身架放低，让自己沉淀下来，抱着学习的态度去适应环境、接受挑战。放下&#8221;身段&#8221;才能提高身价，暂时的俯低终会促成未来的 高就。</span><br />
<span style="line-height: 1.8em;"> 年轻人从校园或者从一个环境进入一个新环境，就要勇于将原来环境里熟悉、习惯、喜欢的东西放下，然后从零开始。我们想在职场上获得成功，首先就要培养适 应力。从自然人转化为单位人是融入职场的基本条件。一个人起点低并不可怕，怕的是境界低。越计较自我，便越没有发展前景；相反，越是主动付出，那么他就越 会快速发展。</span><span style="line-height: 1.8em;">很多今天取得一定成就的人，在职业生涯的初期都是从零开始，把自己沉淀再沉淀、倒空再倒空、归零再归零，正因为这样，他们的人生才一路高歌，一路飞扬。</span><br />
<span style="line-height: 1.8em;"> 在毕业这几年里，我们要让过去归零，才不会成为职场上那只背着重壳爬行的蜗牛，才能像天空中的鸟儿那样轻盈地飞翔。请好好品味一下杰克·韦尔奇说过的一句话：&#8221;纠正自己的行为，认清自己，从零开始，你将重新走上职场坦途。&#8221;</span><span style="line-height: 1.8em;"> 吐故才能纳新，心静才能身凉，有舍才能有得，杯空才能水满，放下才能超越。</span></span></p>
<p><span style="color: #000000;"><span style="line-height: 1.8em;"> 归零思维五大表现：心中无我，眼中无钱，念中无他，朝中无人，学无止境。</span></span></p>
<p><span style="color: #000000;"><span style="line-height: 1.8em;"> 年轻人难免带着几分傲气，认为自己无所不能、所向披靡，其实不然，初入职场的新人还是个&#8221;婴儿&#8221;，正处在从爬到走的成长阶段。在毕业这几年里，一定要让 自己逐步培养起学徒思维、海绵思维、空杯思维，具有这样思维的人心灵总是敞开的，能随时接受启示和一切能激发灵感的东西，他们时刻都能感受到成功女神的召 唤。</span></span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.endlesscode.com/2010/02/06/fate-after-5-years-graduate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zz 韩寒：所谓文化大国</title>
		<link>http://blog.endlesscode.com/2010/02/02/zz-%e9%9f%a9%e5%af%92%ef%bc%9a%e6%89%80%e8%b0%93%e6%96%87%e5%8c%96%e5%a4%a7%e5%9b%bd/</link>
		<comments>http://blog.endlesscode.com/2010/02/02/zz-%e9%9f%a9%e5%af%92%ef%bc%9a%e6%89%80%e8%b0%93%e6%96%87%e5%8c%96%e5%a4%a7%e5%9b%bd/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 09:04:36 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://blog.endlesscode.com/?p=221</guid>
		<description><![CDATA[第二次来到厦门，然后这里的空气很好，难怪大家都喜欢散步啊。嗯，刚才我听邓老师说了一些关于爱国主义的一些东西，那我想到了两句话，我是之前看到的,那是别人说的不是我说的。第一句话是——爱国主义是流氓最后的庇护所；第二句话是——真正的爱国主义就是要保护这个国家,让这个国家不受到政府的迫害。 呃，然后今天我准备了一些说的内容带了一个稿纸，这是为了约束我自己。主要让大家不要受到什么迫害,怕我满嘴跑火车,开始了啊： 各位领导,各位老师,各位同学大家好,大家知道中国为什么成为不了文化大国吗？因为在我们大部分讲话的时候,各位领导永远都是放在第一位的,而各位领导都是没有文化的。不光是这样，他们还是惧怕文化的，是审查文化的，但是呢,他们又能够控制文化,所以说这个国家怎么够成为文化大国呢?各位领导你们说呢？ 其实中国是有成为一个文化大国的潜力的。我给大家讲个故事。我要主编一本杂志,到现在都没有出版。然后呢，咱们宪法上有规定啊，每个公民都拥有出版的自由，但是呢我们的王法又有规定，就是领导有不让你出版的自由。 这个杂志呢很多地方在审查上遇到了一些问题，里面有一副漫画。漫画是一张图，主人公是个男的，他没有穿衣服。当然这是不可以了。因为相关的法律法规规定不能露出那个阴部在公开的出版物上。但这是我认可了，我觉得没有问题。所以把那个杂志特别大的一个LOGO就挡在它那个不合法的部位，然后后来这些出版社的审查人员就告诉我说 这个不可以，你把这个人的中间这个地方啊挡住了，你这是在暗喻“党中央”。 我的反应和大家一样啊，我被雷到了。我当时脑子里就在想,有时候把你这个惊天地泣鬼神的想象力，用在文艺创作上，而不是用在文艺审查上那该有多好。通过这个故事我想告诉大家，其实大家都是很有想象力的啊，但是很多事情我们只能想，我们不能去做,不能写,甚至很多场合不能说啊。呃&#8230;我们的限制太多了，这是一个限制级的国家。在限制级的国家里怎么可能产生非常丰富的文化呢？我已经算是一个自我限制很少的一个同志了，但是在我落笔的时候呢，我就会情不自禁的想，警察不能写，领导不能写，政策不能写，制度不能写,司法不能写，很多历史不能写，西藏不能写，新疆不能写，集会不能写，游行不能写，黄色不能写，低俗不能写，艺术不能写，高雅我又写不出。抱歉啊，我真的写不出甚么高雅的东西，我又不是余秋雨。 在网路上发表的一些文章啊,尺度已经算是比较大的。有很多写剧本的朋友,我一些写剧本的朋友,包括宁财神啊写一些话剧,还有电影剧本编剧,他们非常的痛苦。在这样的一个文化环境下,我就开始想，如何成为一个文化大国？除非全世界就剩下中国,朝鲜还有阿富汗。朝鲜是文化禁地，大家都知道。然后阿富汗是因为国内的局势正在搞不清楚，他们还顾不上文化。但纵然这样,他们都有作家写出了《追风筝的人》。当然比较遗憾的是这不是阿富汗出版的。我想,一旦阿富汗搞清楚了，也不是没有可能去超过中国。 呃&#8230;我们所谓的在国际交流上不能再拿那些四大名著和孔孟之道来说事，这样就像相亲的时候女方问你有没有钱，你说你祖宗十八辈上有钱，这是没用的。这个就悲剧的造成，这个和大家没有任何的关系,虽然说,通往朝鲜的道路，是由每一个沉默的人铺就的。但是,某一方面我们当然要比朝鲜强很多啊，因为大家也都知道朝鲜是什么样子的。另外一方面呢,我相信在座的大家,其实很多人,大家并不沉默啊,大家只是被和谐了。 呃&#8230; 在中国的这个扫黄史上,可能很多同学，我想大家应该都知道，毕竟是大学生，大家都知道虽然现在的一些教材上并没有具体内容，就是邓丽君和刘文正都是黄色的，下流淫秽，但是呢因为听的人多了他们就变成了黄色和下流，他们就不淫秽了，但是呢到最后全国人民都在听，所以他们既不黄色也不下流了。 如果我们都能够来反对文化的审查，让我们的屏蔽词里除了那些反人类的词汇不再有其他词汇，那我们才有可能去创造出一个文化大国，哪怕是在这个过程当中你我的名字都会进入这个屏蔽词库，但我相信一个屏蔽词库是有它的最大载重量的，每一个新增加的词汇都是在加速它的灭亡。 我希望我们的新闻媒体的从业者，我们的学生老师，每一个文化的从业者爱好者，包括我们的管理者，可以努力让我们的屏蔽和审查越来越少。我们的领导们，因为这个领导是和大家分开的啊，所以我们的领导我们的政府可以有足够的自信让文化更加的开放。我知道我们的领导很喜欢向国外输出我们的文化，觉得这是一个强国的象征，但是以现有的文化我觉得实在是输不出去的。我们在创造文化作品的时候，每一个作者每一个从业人员，他们在时刻进行着自我的审查，在这样一个创作环境下，我觉得怎么能产生像样的文化作品呢？在全世界范围内，你把文艺作品阉割得像新闻联播一样给外国人看，然后企图输出中国的文化，你当外国人是外星人啊。 中国是不是在经济上真正的崛起了，这个呢要等我们的房地产业崩盘了以后再看，现在一切都不好说，但是如果一个国家在文化上真正的崛起了，那它真的是一个强国，而且我想应该永远不会有崩盘的危险。 最后说回到我们的屏蔽词库，一个屏蔽词库里的词越势多，我们这个国家的文化就会越势弱。当然我们的政府会给大家很多的解释，他们会告诉你，我们这么做是为了保护青少年，是为了社会的稳定，文化是自由的。所以他们有权屏蔽任何危害青少年，破坏社会稳定的资讯和文化。但是如果你认同了,迟早有一天你会发现，你在控诉你的遭遇的时候，他们会将你屏蔽，罪名是破坏社会稳定。到了最后，凡是不利于统治阶层的，不利于他们获得利益的言论，都是破坏社会的稳定，都是危害青少年。如果我们当时容忍了绿霸花季护航的话，那么我们就会看到绿霸花甲护航，到那个时候就不光光是文化的东西了,所以同学们,我们不能让这一天的到来。否则，在以后，在若干年以后，在你的孙子们，通过卫星接收到的电子课本的历史书上,我们都会是笑料。 所以…谢谢大家。 引用来源 ：http://www.voyagewe.com/blog/post/2080.html]]></description>
			<content:encoded><![CDATA[<p>第二次来到厦门，然后这里的空气很好，难怪大家都喜欢散步啊。嗯，刚才我听邓老师说了一些关于爱国主义的一些东西，那我想到了两句话，我是之前看到的,那是别人说的不是我说的。第一句话是——爱国主义是流氓最后的庇护所；第二句话是——真正的爱国主义就是要保护这个国家,让这个国家不受到政府的迫害。</p>
<p>呃，然后今天我准备了一些说的内容带了一个稿纸，这是为了约束我自己。主要让大家不要受到什么迫害,怕我满嘴跑火车,开始了啊：</p>
<p>各位领导,各位老师,各位同学大家好,大家知道中国为什么成为不了文化大国吗？因为在我们大部分讲话的时候,各位领导永远都是放在第一位的,而各位领导都是没有文化的。不光是这样，他们还是惧怕文化的，是审查文化的，但是呢,他们又能够控制文化,所以说这个国家怎么够成为文化大国呢?各位领导你们说呢？</p>
<p>其实中国是有成为一个文化大国的潜力的。我给大家讲个故事。我要主编一本杂志,到现在都没有出版。然后呢，咱们宪法上有规定啊，每个公民都拥有出版的自由，但是呢我们的王法又有规定，就是领导有不让你出版的自由。<br />
<span id="more-221"></span><br />
这个杂志呢很多地方在审查上遇到了一些问题，里面有一副漫画。漫画是一张图，主人公是个男的，他没有穿衣服。当然这是不可以了。因为相关的法律法规规定不能露出那个阴部在公开的出版物上。但这是我认可了，我觉得没有问题。所以把那个杂志特别大的一个LOGO就挡在它那个不合法的部位，然后后来这些出版社的审查人员就告诉我说 这个不可以，你把这个人的中间这个地方啊挡住了，你这是在暗喻“党中央”。</p>
<p>我的反应和大家一样啊，我被雷到了。我当时脑子里就在想,有时候把你这个惊天地泣鬼神的想象力，用在文艺创作上，而不是用在文艺审查上那该有多好。通过这个故事我想告诉大家，其实大家都是很有想象力的啊，但是很多事情我们只能想，我们不能去做,不能写,甚至很多场合不能说啊。呃&#8230;我们的限制太多了，这是一个限制级的国家。在限制级的国家里怎么可能产生非常丰富的文化呢？我已经算是一个自我限制很少的一个同志了，但是在我落笔的时候呢，我就会情不自禁的想，警察不能写，领导不能写，政策不能写，制度不能写,司法不能写，很多历史不能写，西藏不能写，新疆不能写，集会不能写，游行不能写，黄色不能写，低俗不能写，艺术不能写，高雅我又写不出。抱歉啊，我真的写不出甚么高雅的东西，我又不是余秋雨。</p>
<p>在网路上发表的一些文章啊,尺度已经算是比较大的。有很多写剧本的朋友,我一些写剧本的朋友,包括宁财神啊写一些话剧,还有电影剧本编剧,他们非常的痛苦。在这样的一个文化环境下,我就开始想，如何成为一个文化大国？除非全世界就剩下中国,朝鲜还有阿富汗。朝鲜是文化禁地，大家都知道。然后阿富汗是因为国内的局势正在搞不清楚，他们还顾不上文化。但纵然这样,他们都有作家写出了《追风筝的人》。当然比较遗憾的是这不是阿富汗出版的。我想,一旦阿富汗搞清楚了，也不是没有可能去超过中国。</p>
<p>呃&#8230;我们所谓的在国际交流上不能再拿那些四大名著和孔孟之道来说事，这样就像相亲的时候女方问你有没有钱，你说你祖宗十八辈上有钱，这是没用的。这个就悲剧的造成，这个和大家没有任何的关系,虽然说,通往朝鲜的道路，是由每一个沉默的人铺就的。但是,某一方面我们当然要比朝鲜强很多啊，因为大家也都知道朝鲜是什么样子的。另外一方面呢,我相信在座的大家,其实很多人,大家并不沉默啊,大家只是被和谐了。</p>
<p>呃&#8230; 在中国的这个扫黄史上,可能很多同学，我想大家应该都知道，毕竟是大学生，大家都知道虽然现在的一些教材上并没有具体内容，就是邓丽君和刘文正都是黄色的，下流淫秽，但是呢因为听的人多了他们就变成了黄色和下流，他们就不淫秽了，但是呢到最后全国人民都在听，所以他们既不黄色也不下流了。</p>
<p>如果我们都能够来反对文化的审查，让我们的屏蔽词里除了那些反人类的词汇不再有其他词汇，那我们才有可能去创造出一个文化大国，哪怕是在这个过程当中你我的名字都会进入这个屏蔽词库，但我相信一个屏蔽词库是有它的最大载重量的，每一个新增加的词汇都是在加速它的灭亡。</p>
<p>我希望我们的新闻媒体的从业者，我们的学生老师，每一个文化的从业者爱好者，包括我们的管理者，可以努力让我们的屏蔽和审查越来越少。我们的领导们，因为这个领导是和大家分开的啊，所以我们的领导我们的政府可以有足够的自信让文化更加的开放。我知道我们的领导很喜欢向国外输出我们的文化，觉得这是一个强国的象征，但是以现有的文化我觉得实在是输不出去的。我们在创造文化作品的时候，每一个作者每一个从业人员，他们在时刻进行着自我的审查，在这样一个创作环境下，我觉得怎么能产生像样的文化作品呢？在全世界范围内，你把文艺作品阉割得像新闻联播一样给外国人看，然后企图输出中国的文化，你当外国人是外星人啊。</p>
<p>中国是不是在经济上真正的崛起了，这个呢要等我们的房地产业崩盘了以后再看，现在一切都不好说，但是如果一个国家在文化上真正的崛起了，那它真的是一个强国，而且我想应该永远不会有崩盘的危险。</p>
<p>最后说回到我们的屏蔽词库，一个屏蔽词库里的词越势多，我们这个国家的文化就会越势弱。当然我们的政府会给大家很多的解释，他们会告诉你，我们这么做是为了保护青少年，是为了社会的稳定，文化是自由的。所以他们有权屏蔽任何危害青少年，破坏社会稳定的资讯和文化。但是如果你认同了,迟早有一天你会发现，你在控诉你的遭遇的时候，他们会将你屏蔽，罪名是破坏社会稳定。到了最后，凡是不利于统治阶层的，不利于他们获得利益的言论，都是破坏社会的稳定，都是危害青少年。如果我们当时容忍了绿霸花季护航的话，那么我们就会看到绿霸花甲护航，到那个时候就不光光是文化的东西了,所以同学们,我们不能让这一天的到来。否则，在以后，在若干年以后，在你的孙子们，通过卫星接收到的电子课本的历史书上,我们都会是笑料。</p>
<p>所以…谢谢大家。</p>
<p><span style="border:1px dotted #888;padding:3px;display:block">引用来源 ：http://www.voyagewe.com/blog/post/2080.html</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.endlesscode.com/2010/02/02/zz-%e9%9f%a9%e5%af%92%ef%bc%9a%e6%89%80%e8%b0%93%e6%96%87%e5%8c%96%e5%a4%a7%e5%9b%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

