<?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>Semon in Node</title>
	<atom:link href="http://flashphp.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://flashphp.org/blog</link>
	<description>Always……working for fun</description>
	<lastBuildDate>Fri, 04 May 2012 12:31:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>对面</title>
		<link>http://flashphp.org/blog/2012/03/%e5%af%b9%e9%9d%a2/</link>
		<comments>http://flashphp.org/blog/2012/03/%e5%af%b9%e9%9d%a2/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 09:13:23 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[无主题]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=696</guid>
		<description><![CDATA[对面, a photo by Semonxue on Flickr. Android上实在没什么好用的拍照应用，试了这个Pixlr-o-malic滤镜光影效果一大堆，足足超过100个，但是问题又来了，选择恐惧症⋯⋯]]></description>
			<content:encoded><![CDATA[<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;"><a href="http://www.flickr.com/photos/semonxue/6992177661/" title="对面"><img src="http://farm8.staticflickr.com/7054/6992177661_c047e743f6.jpg" alt="对面 by Semonxue" /></a><br/><span style="margin: 0;"><a href="http://www.flickr.com/photos/semonxue/6992177661/">对面</a>, a photo by <a href="http://www.flickr.com/photos/semonxue/">Semonxue</a> on Flickr.</span></div>
<p>Android上实在没什么好用的拍照应用，试了这个Pixlr-o-malic滤镜光影效果一大堆，足足超过100个，但是问题又来了，选择恐惧症⋯⋯</p>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2012/03/%e5%af%b9%e9%9d%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FITC(Flash In The Can) 2011 用户票选最终入围名单</title>
		<link>http://flashphp.org/blog/2011/05/fitcflash-in-the-can-2011-%e7%94%a8%e6%88%b7%e7%a5%a8%e9%80%89%e6%9c%80%e7%bb%88%e5%85%a5%e5%9b%b4%e5%90%8d%e5%8d%95/</link>
		<comments>http://flashphp.org/blog/2011/05/fitcflash-in-the-can-2011-%e7%94%a8%e6%88%b7%e7%a5%a8%e9%80%89%e6%9c%80%e7%bb%88%e5%85%a5%e5%9b%b4%e5%90%8d%e5%8d%95/#comments</comments>
		<pubDate>Wed, 11 May 2011 06:29:52 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[网站收集]]></category>
		<category><![CDATA[Flash 3D]]></category>
		<category><![CDATA[Flash/Interactive]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=682</guid>
		<description><![CDATA[一共15个分类，超过40个全球超酷的flash/互动案例，包括采用AR技术的Doodle War 等大量优秀案例。 用户票选入围名单：http://www.fitc.ca/awards/pc/ 年度大奖最终名单：http://www.fitc.ca/awards/ 每个作品都很出色，期待之后有时间我们可以集体进行一下观摩。]]></description>
			<content:encoded><![CDATA[<p>一共15个分类，超过40个全球超酷的flash/互动案例，包括采用AR技术的<a href="http://gekitsuioh.jp/en/">Doodle War</a> 等大量优秀案例。</p>
<table style="background-color: #000000;" border="0">
<tbody>
<tr>
<td><a href="http://www.fitc.ca/"><img src="http://www.fitc.ca/_assets/css/slick/backgrounds/logo.png" alt="" width="417" height="49"></a></td>
</tr>
</tbody>
</table>
<p>用户票选入围名单：<a href="http://www.fitc.ca/awards/pc/">http://www.fitc.ca/awards/pc/</a></p>
<p>年度大奖最终名单：<a href="http://www.fitc.ca/awards/">http://www.fitc.ca/awards/</a></p>
<p>每个作品都很出色，期待之后有时间我们可以集体进行一下观摩。</p>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/05/fitcflash-in-the-can-2011-%e7%94%a8%e6%88%b7%e7%a5%a8%e9%80%89%e6%9c%80%e7%bb%88%e5%85%a5%e5%9b%b4%e5%90%8d%e5%8d%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]流言终结者＃1：“我只要找到一个超级的 idea&#8230;”</title>
		<link>http://flashphp.org/blog/2011/05/i-wanna-a-super-idea/</link>
		<comments>http://flashphp.org/blog/2011/05/i-wanna-a-super-idea/#comments</comments>
		<pubDate>Mon, 09 May 2011 18:17:41 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[摘录]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=677</guid>
		<description><![CDATA[很多时候，我们就是那两个划船的人。 一般人对于“创业”最大的误解，是对“创意”，“创新”的盲目崇拜 ，认为只要找到一个超级的idea，就能够成功创业，变成下一个比尔‧盖茨。这个逻辑最大的问题，在于没有去认知到所谓的“超级idea”，往往是在极度竞争的环境中，一个创业团队经历长时间的尝试，失败，最后碰撞 ，研磨， 变形出来的成果 。身为旁人，你很容易忽略了这个过程的曲折，方便的用最后的结论来认定因果，所以才会上了“idea”的当。 更糟糕的是，很多时候我们不但忽略了创业的艰辛，甚至还会对成功嗤之以鼻：“那个东西我十年前就想到了！” – 。。这句话你一定不是第一次听到碰到这种人，我以前都懒得跟他们解释，反正他们的想法天真，我也就成全他们继续做梦。直到去年出现了“ 社交网络 ”这部讲Facebook创办过程的电影，我才有一个比较容易的说法 – “没错，你就是那两个划船队员！” 大概很少人会反对，Facebook是近年来最成功的网络创业公司。台湾这边的民众大多是在2009年之后才开始使用Facebook的，你知道在那之前他们已经存在多久了吗？答案是整整五年。没错，早在Facebook是Facebook之前，他们可是经历了好几年的辛苦挣扎。看过电影的人就知道，马克扎克伯格刚创办Facebook时，他在想的根本只是“如何让所有哈佛的学生加入这个网站。”要说他当年早就想到，知道，预测到这就是一个“超级idea”，6年后全世界将会有7亿人在使用者个网站，那根本就是痴人说梦。 更重要的是，当马克还只有一个阳春到不行的Facebook，忙着吸引哈佛的1万名学生加入时，那时如日中天的社交网站MySpace早就已经拥有上千万会员。打开电台，电视，每个歌手，艺人，每天在聊得都是谁在MySpace的朋友比较多。不要说一般人，连北美的创投，网络圈的专家，每个人都不看好 Facebook 能够有一天打败MySpace的，更别说统治全世界了。 改变这一切的不是马克的这个Facebook idea有多好，是他团队的“执行力”，不断的更新产品，不断的从使用者的回馈中求进步，找成长，累积用户。 另外，MySpace上卖给新闻集团后，忙着开始营利，因而减缓了进步的速度，也对2008年整个战局的扭转，有着巨大的影响。 这两年热门的iPhone，也是另外一个idea不值钱的好例子。用任何的标准去看，“智能手机”现在听起来都像是一个超级棒的产品种类，每家硬件厂商都抢着推出自有品牌的产品。但是如果你把时空拉回到2007年，苹果CEO乔布斯站到台上宣布iPhone之前，市场上早就充斥着许多不怎么成功的智能手机， 而大家对这个idea其实是半信半疑的，即便是在第一支iPhone（iPhone 2G）推出之后，其实市场上的反应也只是普普 – iPhone上市后15个月的时间中，苹果总共只卖出了600万支手机，这比他们现在一个月卖出的手机还少。 而为什么iPhone能够到达今天的地位，是苹果在第一代iPhone推出后，不断积极的更新软，硬件，陆续加入了应用程序商店，3G上 网，FaceTime等杀手级应用，和全世界的电信商签约，然后才逐渐受到越来越多人喜爱。因此，智能手机这个idea，虽然不是苹果想到的，但是是乔布斯团队把它执行到了极致，才变成了一个超级成功的产品。 而如果连社交网络，智能手机这些“老梗”，都能被Facebook和苹果做成今天的成绩，那只证明了这个世界上没有烂的idea，只有不会执行的团队。所以，如果你有任何创业的想法，我说：“ 那就做吧，别再想了！“ 文章来自36氪。]]></description>
			<content:encoded><![CDATA[<blockquote><p>很多时候，我们就是那两个划船的人。</p></blockquote>
<p>一般人对于“创业”最大的误解，是对“创意”，“创新”的盲目崇拜 ，认为只要找到一个超级的idea，就能够成功创业，变成下一个比尔‧盖茨。这个逻辑最大的问题，在于没有去认知到所谓的“超级idea”，往往是在极度竞争的环境中，一个创业团队经历长时间的尝试，失败，最后碰撞 ，研磨， 变形出来的成果 。身为旁人，你很容易忽略了这个过程的曲折，方便的用最后的结论来认定因果，所以才会上了“idea”的当。</p>
<p>更糟糕的是，很多时候我们不但忽略了创业的艰辛，甚至还会对成功嗤之以鼻：“那个东西我十年前就想到了！” – 。。这句话你一定不是第一次听到碰到这种人，我以前都懒得跟他们解释，反正他们的想法天真，我也就成全他们继续做梦。直到去年出现了“ 社交网络 ”这部讲Facebook创办过程的电影，我才有一个比较容易的说法 – “没错，你就是那两个划船队员！”</p>
<p>大概很少人会反对，Facebook是近年来最成功的网络创业公司。台湾这边的民众大多是在2009年之后才开始使用Facebook的，你知道在那之前他们已经存在多久了吗？答案是整整五年。没错，早在Facebook是Facebook之前，他们可是经历了好几年的辛苦挣扎。看过电影的人就知道，马克扎克伯格刚创办Facebook时，他在想的根本只是“如何让所有哈佛的学生加入这个网站。”要说他当年早就想到，知道，预测到这就是一个“超级idea”，6年后全世界将会有7亿人在使用者个网站，那根本就是痴人说梦。</p>
<p>更重要的是，当马克还只有一个阳春到不行的Facebook，忙着吸引哈佛的1万名学生加入时，那时如日中天的社交网站MySpace早就已经拥有上千万会员。打开电台，电视，每个歌手，艺人，每天在聊得都是谁在MySpace的朋友比较多。不要说一般人，连北美的创投，网络圈的专家，每个人都不看好 Facebook 能够有一天打败MySpace的，更别说统治全世界了。</p>
<p>改变这一切的不是马克的这个Facebook idea有多好，是他团队的“执行力”，不断的更新产品，不断的从使用者的回馈中求进步，找成长，累积用户。 另外，MySpace上卖给新闻集团后，忙着开始营利，因而减缓了进步的速度，也对2008年整个战局的扭转，有着巨大的影响。</p>
<p>这两年热门的iPhone，也是另外一个idea不值钱的好例子。用任何的标准去看，“智能手机”现在听起来都像是一个超级棒的产品种类，每家硬件厂商都抢着推出自有品牌的产品。但是如果你把时空拉回到2007年，苹果CEO乔布斯站到台上宣布iPhone之前，市场上早就充斥着许多不怎么成功的智能手机， 而大家对这个idea其实是半信半疑的，即便是在第一支iPhone（iPhone 2G）推出之后，其实市场上的反应也只是普普 – iPhone上市后15个月的时间中，苹果总共只卖出了600万支手机，这比他们现在一个月卖出的手机还少。</p>
<p>而为什么iPhone能够到达今天的地位，是苹果在第一代iPhone推出后，不断积极的更新软，硬件，陆续加入了应用程序商店，3G上 网，FaceTime等杀手级应用，和全世界的电信商签约，然后才逐渐受到越来越多人喜爱。因此，智能手机这个idea，虽然不是苹果想到的，但是是乔布斯团队把它执行到了极致，才变成了一个超级成功的产品。</p>
<p>而如果连社交网络，智能手机这些“老梗”，都能被Facebook和苹果做成今天的成绩，那只证明了这个世界上没有烂的idea，只有不会执行的团队。所以，如果你有任何创业的想法，我说：“ 那就做吧，别再想了！“</p>
<p>文章来自<a href="http://www.36kr.com/super-idea/">36氪</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/05/i-wanna-a-super-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox上的Flash调试工具——FlashFirebug</title>
		<link>http://flashphp.org/blog/2011/05/flashfirebug/</link>
		<comments>http://flashphp.org/blog/2011/05/flashfirebug/#comments</comments>
		<pubDate>Mon, 02 May 2011 16:03:38 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[DEV]]></category>
		<category><![CDATA[Flash/Interactive]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[firefox-extension]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash-debug]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=668</guid>
		<description><![CDATA[&#160; FlashFirebug是一款可以让开发者在浏览器中直接调试Flash程序的Firefox扩展。通过这款扩展，开发人员可以像在浏览器中调试HTML/JS/CSS那样来直观的进行AS3的调试，操作界面则与Firebug一致。通过这款扩展，Firebug可以覆盖几乎全部的Web开发人员调试需求。 使用Flashfirebug需要安装firefox(当然！)、firebug以及debug版本的flash播放器. FlashFirebug下载地址：https://addons.mozilla.org/en-US/firefox/addon/161670/ 官方网站/使用帮助：http://www.o-minds.com/products/flashfirebug]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a rel="attachment wp-att-669" href="http://flashphp.org/blog/2011/05/flashfirebug/what_is_fff/"><img class="alignnone size-full wp-image-669" title="what_is_fff" src="http://flashphp.org/blog/wp-content/uploads/2011/05/what_is_fff.png" alt="" width="632" height="207" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/161670/">FlashFirebug</a>是一款可以让开发者在浏览器中直接调试Flash程序的Firefox扩展。通过这款扩展，开发人员可以像在浏览器中调试HTML/JS/CSS那样来直观的进行AS3的调试，操作界面则与Firebug一致。通过这款扩展，Firebug可以覆盖几乎全部的Web开发人员调试需求。</p>
<p>使用Flashfirebug需要安装firefox(当然！)、<a href="https://addons.mozilla.org/en-US/firefox/addon/firebug/">firebug</a>以及<a href="http://www.adobe.com/support/flashplayer/downloads.html">debug版本的flash播放器</a>.</p>
<p>FlashFirebug下载地址：<a href="https://addons.mozilla.org/en-US/firefox/addon/161670/">https://addons.mozilla.org/en-US/firefox/addon/161670/</a></p>
<p>官方网站/使用帮助：<a href="http://www.o-minds.com/products/flashfirebug">http://www.o-minds.com/products/flashfirebug</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/05/flashfirebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>软件工程师的十个“不职业”行为</title>
		<link>http://flashphp.org/blog/2011/04/%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b%e5%b8%88%e7%9a%84%e5%8d%81%e4%b8%aa%e2%80%9c%e4%b8%8d%e8%81%8c%e4%b8%9a%e2%80%9d%e8%a1%8c%e4%b8%ba/</link>
		<comments>http://flashphp.org/blog/2011/04/%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b%e5%b8%88%e7%9a%84%e5%8d%81%e4%b8%aa%e2%80%9c%e4%b8%8d%e8%81%8c%e4%b8%9a%e2%80%9d%e8%a1%8c%e4%b8%ba/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 16:25:20 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[无主题]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=663</guid>
		<description><![CDATA[&#160; ■ 文 / 陈尚义 职业化之于软件工程师非常重要。因为：软件是看不见也摸不着的，它的进度也看不见摸不着，需要软件工程师严格自律、善于沟通；软件开发是创造性的劳动，创造性劳动依赖个人主观能动性，没有自我激励是不可能成为出色的软件工程师的；软件在国民经济和人们日常生活中发挥着越来越重要的作用，软件工程师的道德行为规范成为备受关注的问题。 下面是软件工程师十个“不职业”行为。在一些特定领域工作的人们可能会认为这些不具有非常广泛的代表性。例如，IEEE和ACM联合发布的关于软件工程师职业道德规范里，认为软件工程师首先要遵守的是社会公众原则，即所开发的软件要给人类带来福利，不能制造类似于计算机病毒那样的具有危害性的软件。由此，制作病毒显然是最大的“不职业”。然而，在一般的商业型公司里这个问题不是最突出的，因此制作病毒并没有包含在本文列举的十大不职业行为之内。 行为一：对外交付半成品 我们的态度反映在我们的工作上，职业化的人士从不从自己手上交出不合格的工作产品。那些不职业的软件工程师满足于把工作做成半成品，等着让别人来纠正他们的错误。 开发者总是不好好做单元测试，没有确认自己的代码符合不符合要求，就盲目自信地认为没有问题，提交给别人供集成和测试。殊不知，没有经过单元测试的代码，往往在集成和系统测试阶段发现大量的问题，要修复这些问题需要付出更大的代价，这个代价比你自己发现并修复要大得多，给组织造成了巨大损失。 行为二：不遵守标准和规范 职业化的重要特征是遵守行业标准，不能肆意按照自己的想象来发挥。每个行业都有自己的技术规范，软件行业也同样如此，如IEEE发布的国际软件工程标准等；各个软件开发组织也有相应的代码规范、文档模板、代码审查清单等；有一定管理水平的软件开发组织还有相应的过程文件。 这些都是软件工程师在软件开发过程需要遵守的规定。特别强调的是，自人们认识到软件危机以来，无论是学术界还是工业界都在不断地总结出软件开发的失败教训和成功经验，并把他们总结成为最佳实践，进而形成标准，这些最佳实践是在大量实践的基础上提炼而成的，要充分利用这些最佳实践和标准指导自己的行动。 行为三：不积极帮助他人 技术人员最容易犯的错误是“保守秘密”，觉得自己开发的成果属于自己，不喜欢和别人共享。生怕影响自己在组织内的地位。 帮助别人也是帮助自己，这个简单的道理却被高智商的软件开发人士忽视。在其他行业中，帮助别人可能仅仅是一个美德，但在软件开发组织中，帮助别人还能为组织降低成本、缩短开发周期、提高产品质量，所有这些正是软件工程学科所研究、并试图解决的问题。 行为四：版权意识不敏感 我们既是软件的制造者，也是软件最积极的使用者。如果我们自身不遵守版权，就会给其他人造成极大的、负面的示范作用，也是对我们自己劳动成果的不尊重。在实际生活中我们看到太多的例子，大量的软件工程师盗版使用了其他公司的产品，并以此炫耀自己的能力。 不尊重版权的另一个例子是：不认真阅读开源代码的使用限制条款就随意使用；随便找到一个开发包，不问来龙去脉就嵌入到自己的系统；错误地认为它在组织内所做的工作成果是自己的，在离职后转让给他人；看到别人使用盗版软件不制止，而且还继续传播。 行为五：对待计划不严肃 软件工程强调计划性。在软件项目管理里，任何项目都要经过策划（Planning），策划的结果是项目计划。项目管理者跟踪项目计划的执行情况，记录计划执行过程中存在偏差的地方，对任何与计划有出入的想法都要事先经过评审和批准，然后才能付诸行动。 因此计划是严肃的。计划是大家沟通的平台，是检查项目状态（Project Status）的依据，也是控制项目变更的手段。计划还是一种承诺，因为策划过程是所有开发者都参与的，或者是征求过开发者意见的，承认了计划中的各种安排，就意味着你已经对外承诺了这些。 软件计划具有难以精确估计并动态变化的特性，因此需要我们软件工程师更加严肃地对待计划，而不应该成为我们不按计划行事的借口。 行为六：公事私事相混淆 公私分明是职业化的另一个重要特征。利用公司设备做自己的事情；在上班时间浏览自己感兴趣、和工作无关的网站，如上班炒股票，都是不职业化的行为和习惯，属于假公济私。 反过来也一样是不职业的：用自己私人的设备处理公司的事务，用免费的邮箱发送和接收公司的邮件；带个人的电脑来办公室处理公司的业务。这样做，可能给组织的软件安全性造成危害，也可能对组织的工作造成麻烦、惹出版权官司。在公和私之间画上一道红线，做到公私分明，是职业化软件工程师必备的素质。 行为七：不注意更新自己 职业的与非职业的软件工程师一个重要区别就在于职业化的人士经常学习，不断更新自己的知识，保持自己在本行业的竞争能力。 我接触到的很多工程师，他们想走捷径，对技术浅尝辙止；知其然不知其所以然；他们畏难而退：不想在一线战斗，喜欢搞他们想象的所谓的管理；想做测试，因为他们错误地认为测试对技术的要求不高……这些都是和职业化的软件工程师很不相称的。 行为八：不主动与人沟通 沟通，在软件开发领域，是责任问题，不是性格问题。 不主动沟通，其背后隐藏的更为重要的原因是工程师的责任感不够。主动和上级、同行、下属沟通是职业化所必需的，因为软件开发需要团队协作，任何一个工程师的工作都可能会影响别人，进而影响全局。软件工程的实践表明，个别人缺乏主动沟通，往往导致整个团队的技术方案出现偏差，或整个项目的进度受到影响。 报告（Report）是沟通的一个方式，有时显得特别重要。当你承担的任务进展顺利的时候，要报告；特别当任务进展遇到困难、可能会影响别人或引起变更的时候，更要报告。配合项目经理和QA人员跟踪项目的计划执行情况，是每一个工程师分内的职责。 行为九：不遵守职场规则 一些工程师不能很好地遵守软件行业的职场规则。比如：互相告知或打听工资和奖金的多少；离职时带走公司的源代码和文档；或急于到新单位工作而不专心交接等等。 软件计划的不精确性，导致开发任务的分布不均匀，特别是重要里程碑（如产品发布）之前，往往需要一定程度的加班。对此，职业化的软件工程师应给予理解和配合。 行为十： 不够诚实和正直 配合项目经理做好计划是工程师不可推脱的职责。进度的安排是根据任务承担者的经验、水平来确定的，对所安排的任务，工程师本人应该有比较正确的判断。实际工作中，却碰到有些工程师一天能完成的任务故意说成是两天，为自己争取到过分宽松的环境。虽然，也有组织要求软件工程师对工作量和进度有一定的判断和估计能力，但这和故意虚报计划的性质是不一样的，前者是水平问题，后者是诚信问题。 工程师的正直来自于强烈的社会责任感。只有维护行业的道德水准和职业规范，软件行业才能持久健康发展。牺牲职业道德和规范水准，换来了暂时的经济利益，伤害的却是整个软件职业的荣誉和信任度。 作者简介： 陈尚义，1989年毕业于北京航空航天大学计算机系。现任中软通用产品研发中心总经理，北京航空航天大学兼职教授、硕士研究生导师，中科院研究生院硕士生导师，IEEE授权培训结构高级讲师。 （本文来自《程序员》杂志0910期，更多精彩内容敬请关注0910期杂志） &#160;]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<div id="page">
<div id="wrapper">
<div id="container">
<div id="left-col">
<div id="content">
<div id="post-1041">
<div>
<div>
<p>■ 文 / 陈尚义</p>
<p>职业化之于软件工程师非常重要。因为：软件是看不见也摸不着的，它的进度也看不见摸不着，需要软件工程师严格自律、善于沟通；软件开发是创造性的劳动，创造性劳动依赖个人主观能动性，没有自我激励是不可能成为出色的软件工程师的；软件在国民经济和人们日常生活中发挥着越来越重要的作用，软件工程师的道德行为规范成为备受关注的问题。</p>
<p>下面是软件工程师十个“不职业”行为。在一些特定领域工作的人们可能会认为这些不具有非常广泛的代表性。例如，IEEE和ACM联合发布的关于软件工程师职业道德规范里，认为软件工程师首先要遵守的是社会公众原则，即所开发的软件要给人类带来福利，不能制造类似于计算机病毒那样的具有危害性的软件。由此，制作病毒显然是最大的“不职业”。然而，在一般的商业型公司里这个问题不是最突出的，因此制作病毒并没有包含在本文列举的十大不职业行为之内。</p>
<p><strong>行为一：对外交付半成品</strong></p>
<p>我们的态度反映在我们的工作上，职业化的人士从不从自己手上交出不合格的工作产品。那些不职业的软件工程师满足于把工作做成半成品，等着让别人来纠正他们的错误。</p>
<p>开发者总是不好好做单元测试，没有确认自己的代码符合不符合要求，就盲目自信地认为没有问题，提交给别人供集成和测试。殊不知，没有经过单元测试的代码，往往在集成和系统测试阶段发现大量的问题，要修复这些问题需要付出更大的代价，这个代价比你自己发现并修复要大得多，给组织造成了巨大损失。</p>
<p><strong>行为二：不遵守标准和规范</strong></p>
<p>职业化的重要特征是遵守行业标准，不能肆意按照自己的想象来发挥。每个行业都有自己的技术规范，软件行业也同样如此，如IEEE发布的国际软件工程标准等；各个软件开发组织也有相应的代码规范、文档模板、代码审查清单等；有一定管理水平的软件开发组织还有相应的过程文件。</p>
<p>这些都是软件工程师在软件开发过程需要遵守的规定。特别强调的是，自人们认识到软件危机以来，无论是学术界还是工业界都在不断地总结出软件开发的失败教训和成功经验，并把他们总结成为最佳实践，进而形成标准，这些最佳实践是在大量实践的基础上提炼而成的，要充分利用这些最佳实践和标准指导自己的行动。</p>
<p><strong>行为三：不积极帮助他人</strong></p>
<p>技术人员最容易犯的错误是“保守秘密”，觉得自己开发的成果属于自己，不喜欢和别人共享。生怕影响自己在组织内的地位。</p>
<p>帮助别人也是帮助自己，这个简单的道理却被高智商的软件开发人士忽视。在其他行业中，帮助别人可能仅仅是一个美德，但在软件开发组织中，帮助别人还能为组织降低成本、缩短开发周期、提高产品质量，所有这些正是软件工程学科所研究、并试图解决的问题。</p>
<p><strong>行为四：版权意识不敏感</strong></p>
<p>我们既是软件的制造者，也是软件最积极的使用者。如果我们自身不遵守版权，就会给其他人造成极大的、负面的示范作用，也是对我们自己劳动成果的不尊重。在实际生活中我们看到太多的例子，大量的软件工程师盗版使用了其他公司的产品，并以此炫耀自己的能力。</p>
<p>不尊重版权的另一个例子是：不认真阅读开源代码的使用限制条款就随意使用；随便找到一个开发包，不问来龙去脉就嵌入到自己的系统；错误地认为它在组织内所做的工作成果是自己的，在离职后转让给他人；看到别人使用盗版软件不制止，而且还继续传播。</p>
<p><strong>行为五：对待计划不严肃</strong></p>
<p>软件工程强调计划性。在软件项目管理里，任何项目都要经过策划（Planning），策划的结果是项目计划。项目管理者跟踪项目计划的执行情况，记录计划执行过程中存在偏差的地方，对任何与计划有出入的想法都要事先经过评审和批准，然后才能付诸行动。</p>
<p>因此计划是严肃的。计划是大家沟通的平台，是检查项目状态（Project Status）的依据，也是控制项目变更的手段。计划还是一种承诺，因为策划过程是所有开发者都参与的，或者是征求过开发者意见的，承认了计划中的各种安排，就意味着你已经对外承诺了这些。</p>
<p>软件计划具有难以精确估计并动态变化的特性，因此需要我们软件工程师更加严肃地对待计划，而不应该成为我们不按计划行事的借口。</p>
<p><strong>行为六：公事私事相混淆</strong></p>
<p>公私分明是职业化的另一个重要特征。利用公司设备做自己的事情；在上班时间浏览自己感兴趣、和工作无关的网站，如上班炒股票，都是不职业化的行为和习惯，属于假公济私。</p>
<p>反过来也一样是不职业的：用自己私人的设备处理公司的事务，用免费的邮箱发送和接收公司的邮件；带个人的电脑来办公室处理公司的业务。这样做，可能给组织的软件安全性造成危害，也可能对组织的工作造成麻烦、惹出版权官司。在公和私之间画上一道红线，做到公私分明，是职业化软件工程师必备的素质。</p>
<p><strong>行为七：不注意更新自己</strong></p>
<p>职业的与非职业的软件工程师一个重要区别就在于职业化的人士经常学习，不断更新自己的知识，保持自己在本行业的竞争能力。</p>
<p>我接触到的很多工程师，他们想走捷径，对技术浅尝辙止；知其然不知其所以然；他们畏难而退：不想在一线战斗，喜欢搞他们想象的所谓的管理；想做测试，因为他们错误地认为测试对技术的要求不高……这些都是和职业化的软件工程师很不相称的。</p>
<p><strong>行为八：不主动与人沟通</strong></p>
<p>沟通，在软件开发领域，是责任问题，不是性格问题。</p>
<p>不主动沟通，其背后隐藏的更为重要的原因是工程师的责任感不够。主动和上级、同行、下属沟通是职业化所必需的，因为软件开发需要团队协作，任何一个工程师的工作都可能会影响别人，进而影响全局。软件工程的实践表明，个别人缺乏主动沟通，往往导致整个团队的技术方案出现偏差，或整个项目的进度受到影响。</p>
<p>报告（Report）是沟通的一个方式，有时显得特别重要。当你承担的任务进展顺利的时候，要报告；特别当任务进展遇到困难、可能会影响别人或引起变更的时候，更要报告。配合项目经理和QA人员跟踪项目的计划执行情况，是每一个工程师分内的职责。</p>
<p><strong>行为九：不遵守职场规则</strong></p>
<p>一些工程师不能很好地遵守软件行业的职场规则。比如：互相告知或打听工资和奖金的多少；离职时带走公司的源代码和文档；或急于到新单位工作而不专心交接等等。</p>
<p>软件计划的不精确性，导致开发任务的分布不均匀，特别是重要里程碑（如产品发布）之前，往往需要一定程度的加班。对此，职业化的软件工程师应给予理解和配合。</p>
<p><strong>行为十： 不够诚实和正直</strong></p>
<p>配合项目经理做好计划是工程师不可推脱的职责。进度的安排是根据任务承担者的经验、水平来确定的，对所安排的任务，工程师本人应该有比较正确的判断。实际工作中，却碰到有些工程师一天能完成的任务故意说成是两天，为自己争取到过分宽松的环境。虽然，也有组织要求软件工程师对工作量和进度有一定的判断和估计能力，但这和故意虚报计划的性质是不一样的，前者是水平问题，后者是诚信问题。</p>
<p>工程师的正直来自于强烈的社会责任感。只有维护行业的道德水准和职业规范，软件行业才能持久健康发展。牺牲职业道德和规范水准，换来了暂时的经济利益，伤害的却是整个软件职业的荣誉和信任度。</p>
<p>作者简介：</p>
<p>陈尚义，1989年毕业于北京航空航天大学计算机系。现任中软通用产品研发中心总经理，北京航空航天大学兼职教授、硕士研究生导师，中科院研究生院硕士生导师，IEEE授权培训结构高级讲师。</p>
<div id="page">
<div id="wrapper">
<div id="container">
<div id="left-col">
<div id="content">
<div id="post-1041">
<div>
<div>
<p>（本文来自《程序员》杂志0910期，更多精彩内容敬请关注0910期杂志）</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/04/%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b%e5%b8%88%e7%9a%84%e5%8d%81%e4%b8%aa%e2%80%9c%e4%b8%8d%e8%81%8c%e4%b8%9a%e2%80%9d%e8%a1%8c%e4%b8%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>终于用上了linode</title>
		<link>http://flashphp.org/blog/2011/04/%e7%bb%88%e4%ba%8e%e7%94%a8%e4%b8%8a%e4%ba%86linode/</link>
		<comments>http://flashphp.org/blog/2011/04/%e7%bb%88%e4%ba%8e%e7%94%a8%e4%b8%8a%e4%ba%86linode/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 16:13:08 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[无主题]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=657</guid>
		<description><![CDATA[纠结了几天，为了彻底改善南北互通问题，在效率和成本的条件下，终于还是买了口碑不错的VPS——linode，装了一个CentOS+LEMP，跑公司的项目协作平台。由于买的是linode 512，所以资源并不多，也没打算做太复杂的应用，好在需要的东西在Linode library都能找到，安装过程基本就是复制粘贴，所以还没什么负担。跑了几天，对LEMP的性能真的非常喜欢，这几天cpu占用率一般都在10%以下，内存消耗在70M上校，和Dreamhost PS动不动就几百兆内存的消耗量简直不可同日而语。 VPS的好处就是你可以不用考虑硬件的问题，资源随用随买，一般的在线应用和网站基本没什么问题。当然如果有要求比较高的在线服务，或者需要比较大规模的服务的话，还是自己搭比较省钱。 刚开始用，也没什么好分享的，整个注册过程非常简单，交钱开通，选了在Fremont, CA。之前找了半天的linode优惠码，发现都是骗人的，因为只要你一次性交1年就有10%的优惠。觉得没机器玩的时候vps还是不错的选择。 好了，按照惯例要推荐一下，如果有谁需要买，可以点这里，这样我在3个月后可以拿到20美元佣金，当然对你也没什么影响，买完，你也可以这样写篇东西，然后加上自己的推荐链接。最后，欢迎注册完之后告诉我，然后钱到手后找我出来吃夜宵:D &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a rel="attachment wp-att-658" href="http://flashphp.org/blog/2011/04/%e7%bb%88%e4%ba%8e%e7%94%a8%e4%b8%8a%e4%ba%86linode/linode_logo_gray/" target="_blank"><img class="alignnone size-full wp-image-658" title="linode_logo_gray" src="http://flashphp.org/blog/wp-content/uploads/2011/03/linode_logo_gray.png" alt="" width="288" height="65" /></a></p>
<p>纠结了几天，为了彻底改善南北互通问题，在效率和成本的条件下，终于还是买了口碑不错的VPS——<a href="http://www.linode.com/?r=c821ea3d67486565da3caf57eea939061c805101" target="_blank">linode</a>，装了一个<a href="http://library.linode.com/lemp-guides/" target="_blank">CentOS+LEMP</a>，跑公司的项目协作平台。由于买的是linode 512，所以资源并不多，也没打算做太复杂的应用，好在需要的东西在<a href="http://library.linode.com">Linode library</a>都能找到，安装过程基本就是复制粘贴，所以还没什么负担。跑了几天，对LEMP的性能真的非常喜欢，这几天cpu占用率一般都在10%以下，内存消耗在70M上校，和Dreamhost PS动不动就几百兆内存的消耗量简直不可同日而语。</p>
<p>VPS的好处就是你可以不用考虑硬件的问题，资源随用随买，一般的在线应用和网站基本没什么问题。当然如果有要求比较高的在线服务，或者需要比较大规模的服务的话，还是自己搭比较省钱。</p>
<p>刚开始用，也没什么好分享的，整个注册过程非常简单，交钱开通，选了在<a href="http://www.linode.com/speedtest/">Fremont, CA</a>。之前找了半天的linode优惠码，发现都是骗人的，因为只要你一次性交1年就有10%的优惠。觉得没机器玩的时候vps还是不错的选择。</p>
<p>好了，按照惯例要推荐一下，如果有谁需要买，可以点<a href="http://www.linode.com/?r=c821ea3d67486565da3caf57eea939061c805101">这里</a>，这样我在3个月后可以拿到20美元佣金，当然对你也没什么影响，买完，你也可以这样写篇东西，然后加上自己的推荐链接。最后，欢迎注册完之后告诉我，然后钱到手后找我出来吃夜宵:D</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/04/%e7%bb%88%e4%ba%8e%e7%94%a8%e4%b8%8a%e4%ba%86linode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fla to HTML5转换工具Wallaby特性解读</title>
		<link>http://flashphp.org/blog/2011/03/wallaby-features-in-words/</link>
		<comments>http://flashphp.org/blog/2011/03/wallaby-features-in-words/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 18:06:57 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[Flash/Interactive]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=642</guid>
		<description><![CDATA[自昨天Adobe发布Wallaby以来，这个具有潜力的工具就吸引了很多人注意，但是昨天Adobe Labs上并没有多少资料，今天上去翻了一下，发现更新了不少，建议有时间可以上去看看。 昨天同事Fox实验了一下转换几个文件，并不是很理想，很多不支持的功能.许我们已经被一些高级的flash功能养习惯了，毕竟这还是一个雏形，支持的功能还大多是一些解决基本问题的特性。 以下是取自Wallaby Wiki（有几篇不错的教程）里的一个演示Using Wallaby，比较集中和简单的说明了一下，当前Wallaby可以做的和待解决的问题。]]></description>
			<content:encoded><![CDATA[<p>自昨天Adobe发布<a href="http://labs.adobe.com/technologies/wallaby/">Wallaby</a>以来，这个具有潜力的工具就吸引了很多人注意，但是昨天<a href="http://labs.adobe.com/technologies/wallaby/">Adobe Labs</a>上并没有多少资料，今天上去翻了一下，发现更新了不少，建议有时间可以上去看看。</p>
<p>昨天同事Fox实验了一下转换几个文件，并不是很理想，很多不支持的功能.许我们已经被一些高级的flash功能养习惯了，毕竟这还是一个雏形，支持的功能还大多是一些解决基本问题的特性。</p>
<p>以下是取自<a href="http://labs.adobe.com/wiki/index.php/Wallaby:Technical_Tips">Wallaby Wiki</a>（有几篇不错的教程）里的一个演示<a title="Using Wallaby" href="http://my.adobe.acrobat.com/p67805420">Using Wallaby</a>，比较集中和简单的说明了一下，当前Wallaby可以做的和待解决的问题。</p>
<div id="attachment_643" class="wp-caption alignnone" style="width: 510px"><a rel="attachment wp-att-643" href="http://flashphp.org/blog/2011/03/wallaby-features-in-words/snap00000218/"><img class="size-medium wp-image-643" title="Supported Flash features" src="http://flashphp.org/blog/wp-content/uploads/2011/03/snap00000218-500x267.jpg" alt="Supported Flash features" width="500" height="267" /></a><p class="wp-caption-text">Supported Flash features</p></div>
<div id="attachment_644" class="wp-caption alignnone" style="width: 510px"><a rel="attachment wp-att-644" href="http://flashphp.org/blog/2011/03/wallaby-features-in-words/snap00000219/"><img class="size-medium wp-image-644" title="Limitations of Wallaby' export" src="http://flashphp.org/blog/wp-content/uploads/2011/03/snap00000219-500x267.jpg" alt="Limitations of Wallaby' export" width="500" height="267" /></a><p class="wp-caption-text">Limitations of Wallaby&#39; export</p></div>
<div id="attachment_645" class="wp-caption alignnone" style="width: 510px"><a rel="attachment wp-att-645" href="http://flashphp.org/blog/2011/03/wallaby-features-in-words/snap00000220/"><img class="size-medium wp-image-645" title="how to make efficient output" src="http://flashphp.org/blog/wp-content/uploads/2011/03/snap00000220-500x267.jpg" alt="how to make efficient output" width="500" height="267" /></a><p class="wp-caption-text">how to make efficient output</p></div>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/03/wallaby-features-in-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>51张标新立异的名片设计</title>
		<link>http://flashphp.org/blog/2011/03/51-unique-business-cards-that-will-make-your-mind-explode/</link>
		<comments>http://flashphp.org/blog/2011/03/51-unique-business-cards-that-will-make-your-mind-explode/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 16:53:54 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[无主题]]></category>
		<category><![CDATA[摘录]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=630</guid>
		<description><![CDATA[好的设计不仅要美观或是出位，更要兼顾实用，传达价值，创造功能。 立体眼镜名片 饼干名片，真的是能吃的 可以撕开的名片，这样就可以分享联系方式了 查看引用来源 &#8220;51 Unique Business Cards That Will Make Your Mind Explode&#8220;]]></description>
			<content:encoded><![CDATA[<blockquote><p>好的设计不仅要美观或是出位，更要兼顾实用，传达价值，创造功能。</p></blockquote>
<h2>立体眼镜名片</h2>
<p><a rel="attachment wp-att-631" href="http://flashphp.org/blog/2011/03/51-unique-business-cards-that-will-make-your-mind-explode/3d-businesscards/"><img class="alignnone size-full wp-image-631" title="3d-businesscards" src="http://flashphp.org/blog/wp-content/uploads/2011/03/3d-businesscards.jpg" alt="" width="500" height="667" /></a></p>
<h2>饼干名片，真的是能吃的</h2>
<p><a rel="attachment wp-att-632" href="http://flashphp.org/blog/2011/03/51-unique-business-cards-that-will-make-your-mind-explode/edible-business-card-l/"><img class="alignnone size-full wp-image-632" title="Edible-Business-Card-l" src="http://flashphp.org/blog/wp-content/uploads/2011/03/Edible-Business-Card-l.jpg" alt="" width="500" height="800" /></a></p>
<p>可以撕开的名片，这样就可以分享联系方式了</p>
<p><a rel="attachment wp-att-633" href="http://flashphp.org/blog/2011/03/51-unique-business-cards-that-will-make-your-mind-explode/separation_lawyer/"><img class="alignnone size-full wp-image-633" title="separation_lawyer" src="http://flashphp.org/blog/wp-content/uploads/2011/03/separation_lawyer.jpg" alt="" width="500" height="664" /></a></p>
<p>查看引用来源 &#8220;<a href="http://webdesignledger.com/inspiration/51-unique-business-cards-that-will-make-your-mind-explode">51 Unique Business Cards That Will Make Your Mind Explode</a>&#8220;</p>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/03/51-unique-business-cards-that-will-make-your-mind-explode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ZT]虫群版天网：伯克利如何“主宰”了“2010星际争霸人工智能挑战赛”</title>
		<link>http://flashphp.org/blog/2011/02/zt%e8%99%ab%e7%be%a4%e7%89%88%e5%a4%a9%e7%bd%91%ef%bc%9a%e4%bc%af%e5%85%8b%e5%88%a9%e5%a6%82%e4%bd%95%e2%80%9c%e4%b8%bb%e5%ae%b0%e2%80%9d%e4%ba%86%e2%80%9c2010%e6%98%9f%e9%99%85%e4%ba%89%e9%9c%b8/</link>
		<comments>http://flashphp.org/blog/2011/02/zt%e8%99%ab%e7%be%a4%e7%89%88%e5%a4%a9%e7%bd%91%ef%bc%9a%e4%bc%af%e5%85%8b%e5%88%a9%e5%a6%82%e4%bd%95%e2%80%9c%e4%b8%bb%e5%ae%b0%e2%80%9d%e4%ba%86%e2%80%9c2010%e6%98%9f%e9%99%85%e4%ba%89%e9%9c%b8/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 03:54:44 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[摘录]]></category>
		<category><![CDATA[人工智能]]></category>
		<category><![CDATA[StarCraft]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=612</guid>
		<description><![CDATA[喜欢星际的Geek一定要看看，国外大学是怎么把游戏和科学联系在一起的，要是有这样的课程，我也打算去上一下。刚知道还有BWAPI这回事情…… 我们集中在伯克利校区里的一个会议室里，局域网的设备散落在我们周围。桌面上堆满了电脑和披萨，屏幕上投影的是一场《星际争霸》的比赛。Oriol Vinyals，一位计算机科学的博士生，正指挥着他的人族部队和虫族部队进行着殊死的战斗。 Oriol非常强——他曾经参加过WCG，是西班牙赛区的第一名，欧洲赛区的16强。但现在他的处境岌岌可危：他的机器人能够击退虫族的飞龙，但是却没法面面俱到。虫族玩家很狡猾，遇到凶猛的火力就撤退，但并不跑远，而是专捡软柿子捏，保持着对对手的压力。 Oriol犯了一个错误。他的机器人的走位出了一点问题，虽然只有几秒钟。但这就足够了。飞龙立刻做出了反应，由人族防守的间隙鱼贯而入直奔对方脆弱的农民。当Oriol指挥着他的机器人把飞龙赶走时，他的农民已经全部阵亡，经济遭受沉重打击。 Oriol对虫族基地发动了绝望的最后一击，试图在飞龙得到补充之前突破对方的防线，但这已经太迟了。他的大脚机器人一个接一个的被虫族消灭掉。当新一波飞龙从虫卵中孵化出来的时候，他只能认输——向刚刚击败了他的计算机人工智能认输。 我们集中在伯克利校区里的一个会议室里，局域网的设备散落在我们周围。桌面上堆满了电脑和披萨，屏幕上投影的是一场《星际争霸》的比赛。Oriol Vinyals，一位计算机科学的博士生，正指挥着他的人族部队和虫族部队进行着殊死的战斗。 Oriol非常强——他曾经参加过WCG，是西班牙赛区的第一名，欧洲赛区的16强。但现在他的处境岌岌可危：他的机器人能够击退虫族的飞龙，但是却没法面面俱到。虫族玩家很狡猾，遇到凶猛的火力就撤退，但并不跑远，而是专捡软柿子捏，保持着对对手的压力。 Oriol犯了一个错误。他的机器人的走位出了一点问题，虽然只有几秒钟。但这就足够了。飞龙立刻做出了反应，由人族防守的间隙鱼贯而入直奔对方脆弱的农民。当Oriol指挥着他的机器人把飞龙赶走时，他的农民已经全部阵亡，经济遭受沉重打击。 Oriol对虫族基地发动了绝望的最后一击，试图在飞龙得到补充之前突破对方的防线，但这已经太迟了。他的大脚机器人一个接一个的被虫族消灭掉。当新一波飞龙从虫卵中孵化出来的时候，他只能认输——向刚刚击败了他的计算机人工智能认输。 全文点这里 via 译言]]></description>
			<content:encoded><![CDATA[<p>喜欢<a href="http://en.wikipedia.org/wiki/StarCraft">星际</a>的Geek一定要看看，国外大学是怎么把游戏和科学联系在一起的，要是有这样的课程，我也打算去上一下。刚知道还有<a href="http://code.google.com/p/bwapi/">BWAPI</a>这回事情……</p>
<p><a rel="attachment wp-att-622" href="http://flashphp.org/blog/2011/02/zt%e8%99%ab%e7%be%a4%e7%89%88%e5%a4%a9%e7%bd%91%ef%bc%9a%e4%bc%af%e5%85%8b%e5%88%a9%e5%a6%82%e4%bd%95%e2%80%9c%e4%b8%bb%e5%ae%b0%e2%80%9d%e4%ba%86%e2%80%9c2010%e6%98%9f%e9%99%85%e4%ba%89%e9%9c%b8/mutalisks2/"><img class="alignnone size-medium wp-image-622" title="mutalisks2" src="http://flashphp.org/blog/wp-content/uploads/2011/02/mutalisks2-500x283.png" alt="" width="500" height="283" /></a></p>
<blockquote>
<div>
<div id="_mcePaste">我们集中在伯克利校区里的一个会议室里，局域网的设备散落在我们周围。桌面上堆满了电脑和披萨，屏幕上投影的是一场《星际争霸》的比赛。Oriol Vinyals，一位计算机科学的博士生，正指挥着他的人族部队和虫族部队进行着殊死的战斗。</div>
<div id="_mcePaste">Oriol非常强——他曾经参加过WCG，是西班牙赛区的第一名，欧洲赛区的16强。但现在他的处境岌岌可危：他的机器人能够击退虫族的飞龙，但是却没法面面俱到。虫族玩家很狡猾，遇到凶猛的火力就撤退，但并不跑远，而是专捡软柿子捏，保持着对对手的压力。</div>
<div id="_mcePaste">Oriol犯了一个错误。他的机器人的走位出了一点问题，虽然只有几秒钟。但这就足够了。飞龙立刻做出了反应，由人族防守的间隙鱼贯而入直奔对方脆弱的农民。当Oriol指挥着他的机器人把飞龙赶走时，他的农民已经全部阵亡，经济遭受沉重打击。</div>
<div id="_mcePaste">Oriol对虫族基地发动了绝望的最后一击，试图在飞龙得到补充之前突破对方的防线，但这已经太迟了。他的大脚机器人一个接一个的被虫族消灭掉。当新一波飞龙从虫卵中孵化出来的时候，他只能认输——向刚刚击败了他的计算机人工智能认输。</div>
</div>
<div>我们集中在伯克利校区里的一个会议室里，局域网的设备散落在我们周围。桌面上堆满了电脑和披萨，屏幕上投影的是一场《星际争霸》的比赛。Oriol Vinyals，一位计算机科学的博士生，正指挥着他的人族部队和虫族部队进行着殊死的战斗。</div>
<div>Oriol非常强——他曾经参加过WCG，是西班牙赛区的第一名，欧洲赛区的16强。但现在他的处境岌岌可危：他的机器人能够击退虫族的飞龙，但是却没法面面俱到。虫族玩家很狡猾，遇到凶猛的火力就撤退，但并不跑远，而是专捡软柿子捏，保持着对对手的压力。</div>
<div>Oriol犯了一个错误。他的机器人的走位出了一点问题，虽然只有几秒钟。但这就足够了。飞龙立刻做出了反应，由人族防守的间隙鱼贯而入直奔对方脆弱的农民。当Oriol指挥着他的机器人把飞龙赶走时，他的农民已经全部阵亡，经济遭受沉重打击。</div>
<div>Oriol对虫族基地发动了绝望的最后一击，试图在飞龙得到补充之前突破对方的防线，但这已经太迟了。他的大脚机器人一个接一个的被虫族消灭掉。当新一波飞龙从虫卵中孵化出来的时候，他只能认输——向刚刚击败了他的计算机人工智能认输。</div>
</blockquote>
<p><strong><a href="http://article.yeeyan.org/view/48380/167670">全文点这里</a></strong> via <a href="http://www.yeeyan.org/">译言</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2011/02/zt%e8%99%ab%e7%be%a4%e7%89%88%e5%a4%a9%e7%bd%91%ef%bc%9a%e4%bc%af%e5%85%8b%e5%88%a9%e5%a6%82%e4%bd%95%e2%80%9c%e4%b8%bb%e5%ae%b0%e2%80%9d%e4%ba%86%e2%80%9c2010%e6%98%9f%e9%99%85%e4%ba%89%e9%9c%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ZT]风雨20年：我所积累的20条编程经验</title>
		<link>http://flashphp.org/blog/2010/11/zt%e9%a3%8e%e9%9b%a820%e5%b9%b4%ef%bc%9a%e6%88%91%e6%89%80%e7%a7%af%e7%b4%af%e7%9a%8420%e6%9d%a1%e7%bc%96%e7%a8%8b%e7%bb%8f%e9%aa%8c/</link>
		<comments>http://flashphp.org/blog/2010/11/zt%e9%a3%8e%e9%9b%a820%e5%b9%b4%ef%bc%9a%e6%88%91%e6%89%80%e7%a7%af%e7%b4%af%e7%9a%8420%e6%9d%a1%e7%bc%96%e7%a8%8b%e7%bb%8f%e9%aa%8c/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 19:18:07 +0000</pubDate>
		<dc:creator>Semon</dc:creator>
				<category><![CDATA[摘录]]></category>

		<guid isPermaLink="false">http://flashphp.org/blog/?p=613</guid>
		<description><![CDATA[原文作者乔纳森·丹尼可（Jonathan Danylko）是一位自由职业的web架构师和程序员，编程经验已超过20年，涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳 森在文中所言，本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员，或许你在本文中看到自己的身影。 从11岁时，我就一直在编程，并且一直都很喜欢技术和编程。这些年来，我积累了一些艰难又容易的经验。作为一名程序员，你或许还没这些经验，但我会把它们献给那些想从中学到更多的朋友。 我会持续更新这些经验，我可能还会有更多的感想，但就我这20年来看，我想下面这个列表中基本不需要增添额外的东西了。下面就是我至今最难忘的经验。 1. 估算解决问题所需要的时间。不要怕，承认吧！我曾见过一些程序员为了解决一个特殊问题而坐在显示器前面8小时。为自己定一个时间限制吧，1小时、30分钟或甚至15分钟。如果在这期间你不能解决问题，那就去寻求帮助，或到网上找答案，而不是尝试去做“超级堆码员”。 2. 编程语言是一种语言，只是一种语言。随着时光推移，只要你理解了一种语言的原理，你会发现各种语言之间的相似之处 。你所选择的语言，你应该觉得“舒服”，并且能够写出有效（而且简洁）的代码。最重要的，让语言去适应项目，反之亦然。 3. 不要过于注重程序的“设计模式”。 有时候，写一个简单的算法，要比引入某种模式更容易。在多数情况下，程序代码应是简单易懂，甚至清洁工也能看懂。 4. 经常备份代码。在我年轻时，我就有过因硬盘故障而丢了大量代码的经历，这经历很恐怖的。只要你一次没有备份，就应当像有着严格的期限，客户明天就需要。此时就该源码/版本控制软件大显身手了。 5. 承认自己并不是最顶尖的程序员 &#8211; 知不足。我常想，我对编程了解已足够多，但是总有其他人比你优秀。正所谓，“一山总比一山高”。所以，向他们看齐吧！ 6、学习再学习。正如第5点所说，我经常会在手里拿一本计算机或编程相关的杂志或书（不信，可以问我的朋友）。诚然，总有很多你不知道的技术，你可以从中学习以保持不落后。如果你有一种灵巧的方式来获取你需要的新技术，那你每天都应该坚持学习。 7. 永恒的变化。你 对待技术/编程知识，就应像你对待股票一样：多样化。不要在某一特定技 术上自我感觉良好。如果那种技术或语言已经没有足够支持，那你还不如现在就开始更新你的简历，并启动培训新计划。我能保持前行的主要原则是什么呢？至少了 解两到三种语言，所以，如果某种语言过时了，你在学习新技术的时候还可以依靠另一种语言。 8. 提携新人。协助并且培养初级/入门的开发人员学习优秀的编程方法和技巧。也许你还不知道，在帮助他们向更高一层前进时，你自己也在向更高一层提升，你会更加自信。 9. 简化算法。代码如恶魔，在你完成编码后，应回头并且优化它。从长远来看，这里或那里一些的改进，会让后来的支持人员更加轻松。 10. 编写文档。无 论是Web服务的API，还是一个简单的类，你尽量编写相应文档。我曾经引以为豪的代码注释，因过度 注释而有人指责。给三行代码加一行注释，只需要你几秒时间。如果那是一个比较难以理解的技术，千万别担心过多注释。如果你能很好做好自己的工作，大多数架 构师、后备程序员、支持组都会感激你。 11. 测试、测试再测试。我是一名黑盒测试粉丝。当你完成编码后，你“被认可”的时候就开始了。如果你们公司有QA部门，如果你的代码中有错误，那你得到的评论，会比项目经理还多。如果你不彻底测试自己的代码，那恐怕你开发的就不只是代码，可能还会声名狼藉。 12. 庆祝每一次成功。我见过很多程序员在解决编程技术难题后，会和同伴握手、击掌或甚至手舞足蹈。每个人在生命中都会碰到“顿悟”。如果一个程序员高兴地跑来叫你去看他的非凡代码，也许你已经看过这样的代码100遍了，但你也应该为了这个家伙而庆祝第101次。（编者注：《庆祝成功的九种方式》。） 13. 经常检查代码。 在公司，你的代码要经常检查（包括自查和其他同事检查）。不要把别人的检查，看成是对代码风格的苛求。应该把它们看作是有建设性的批评。对个人来说，经常检查你的代码并且自问，“我怎样才能写得更好呢？” 这会让你加速你的成长，让你成为一个更优秀的程序员。 14. 回顾你的代码。在 看到自己以前的代码时，通常会有两种方式：“难以至信，这代码是我写的”和“难以至信，这代码是 我写的”。第一种往往是厌恶的语气，并在想如何改进它。你也许会惊叹，旧代码也能复活成为一种更好的程序，甚至是一个完整的产品。第二种通常带着惊奇和成 就感。开发人员应该一到两个自己完成的项目成果，能让众人不禁而立并注目而观的项目。同样，基于你优越的编程能力，你可以把过去的程序或项目拿出来，把它 们更新为更加优秀的产品或想法。 15. 幽默是不可缺的。在我20年的开发生涯中，我还没有碰到哪位程序员是没有幽默感的。实际上，干我们这行，幽默是一项必备品。 16. 谨防那些无所不知的程序员，不愿分享的程序员，还有经验不足的程序员。当你遇到这几种程序员时，你自己要谦虚。无所不知的程序员，更想当一个英雄而不是团队成员；保守的程序员则是在编写着他们独享的代码；而经验不足的程序员则会每十分钟就来问你一下，当代码完成后，代码已经是你的，而不是他们。 17. 任何项目都不会那么简单。朋 友、家人和同事曾请求我仓促做一些事情，仓促做一个程序或者网站。对于这样的事，应该 [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>原文作者乔纳森·丹尼可（Jonathan Danylko）是一位自由职业的web架构师和程序员，编程经验已超过20年，涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳 森在文中所言，本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员，或许你在本文中看到自己的身影。</p></blockquote>
<p>从11岁时，我就一直在编程，并且一直都很喜欢技术和编程。这些年来，我积累了一些艰难又容易的经验。作为一名程序员，你或许还没这些经验，但我会把它们献给那些想从中学到更多的朋友。</p>
<p>我会持续更新这些经验，我可能还会有更多的感想，但就我这20年来看，我想下面这个列表中基本不需要增添额外的东西了。下面就是我至今最难忘的经验。</p>
<p><strong>1. 估算解决问题所需要的时间。</strong>不要怕，承认吧！我曾见过一些程序员为了解决一个特殊问题而坐在显示器前面8小时。为自己定一个时间限制吧，1小时、30分钟或甚至15分钟。如果在这期间你不能解决问题，那就去寻求帮助，或到网上找答案，而不是尝试去做“超级堆码员”。</p>
<p><strong>2. 编程语言是一种语言，只是一种语言。</strong>随着时光推移，只要你理解了一种语言的原理，你会发现各种语言之间的相似之处 。你所选择的语言，你应该觉得“舒服”，并且能够写出有效（而且简洁）的代码。最重要的，让语言去适应项目，反之亦然。</p>
<p><strong>3. 不要过于注重程序的“设计模式”。</strong> 有时候，写一个简单的算法，要比引入某种模式更容易。在多数情况下，程序代码应是简单易懂，甚至清洁工也能看懂。</p>
<p><strong>4. 经常备份代码。</strong>在我年轻时，我就有过因硬盘故障而丢了大量代码的经历，这经历很恐怖的。只要你一次没有备份，就应当像有着严格的期限，客户明天就需要。此时就该源码/版本控制软件大显身手了。</p>
<p><strong>5. 承认自己并不是最顶尖的程序员 &#8211; 知不足。</strong>我常想，我对编程了解已足够多，但是总有其他人比你优秀。正所谓，“一山总比一山高”。所以，向他们看齐吧！</p>
<p><strong>6、学习再学习。</strong>正如第5点所说，我经常会在手里拿一本计算机或编程相关的杂志或书（不信，可以问我的朋友）。诚然，总有很多你不知道的技术，你可以从中学习以保持不落后。如果你有一种灵巧的方式来获取你需要的新技术，那你每天都应该坚持学习。</p>
<p><strong>7. 永恒的</strong><strong>变化</strong><strong>。</strong>你 对待技术/编程知识，就应像你对待股票一样：多样化。不要在某一特定技 术上自我感觉良好。如果那种技术或语言已经没有足够支持，那你还不如现在就开始更新你的简历，并启动培训新计划。我能保持前行的主要原则是什么呢？至少了 解两到三种语言，所以，如果某种语言过时了，你在学习新技术的时候还可以依靠另一种语言。</p>
<p><strong>8. 提携新人。</strong>协助并且培养初级/入门的开发人员学习优秀的编程方法和技巧。也许你还不知道，在帮助他们向更高一层前进时，你自己也在向更高一层提升，你会更加自信。</p>
<p><strong>9. 简化算法。</strong>代码如恶魔，在你完成编码后，应回头并且优化它。从长远来看，这里或那里一些的改进，会让后来的支持人员更加轻松。</p>
<p><strong>10. 编写文档。</strong>无 论是Web服务的API，还是一个简单的类，你尽量编写相应文档。我曾经引以为豪的代码注释，因过度 注释而有人指责。给三行代码加一行注释，只需要你几秒时间。如果那是一个比较难以理解的技术，千万别担心过多注释。如果你能很好做好自己的工作，大多数架 构师、后备程序员、支持组都会感激你。</p>
<p><strong>11. 测试、测试再测试。</strong>我是一名黑盒测试粉丝。当你完成编码后，你“被认可”的时候就开始了。如果你们公司有QA部门，如果你的代码中有错误，那你得到的评论，会比项目经理还多。如果你不彻底测试自己的代码，那恐怕你开发的就不只是代码，可能还会声名狼藉。</p>
<p><strong>12. 庆祝每一次成功。</strong>我见过很多程序员在解决编程技术难题后，会和同伴握手、击掌或甚至手舞足蹈。每个人在生命中都会碰到“顿悟”。如果一个程序员高兴地跑来叫你去看他的非凡代码，也许你已经看过这样的代码100遍了，但你也应该为了这个家伙而庆祝第101次。（编者注：《<a href="http://www.jobbole.com/entry.php/323">庆祝成功的九种方式</a>》。）</p>
<p><strong>13. 经常检查代码。 </strong>在公司，你的代码要经常检查（包括自查和其他同事检查）。不要把别人的检查，看成是对代码风格的苛求。应该把它们看作是有建设性的批评。对个人来说，经常检查你的代码并且自问，“我怎样才能写得更好呢？” 这会让你加速你的成长，让你成为一个更优秀的程序员。</p>
<p><strong>14. 回顾你的代码。</strong>在 看到自己以前的代码时，通常会有两种方式：“难以至信，这代码是我写的”和“难以至信，这代码是 我写的”。第一种往往是厌恶的语气，并在想如何改进它。你也许会惊叹，旧代码也能复活成为一种更好的程序，甚至是一个完整的产品。第二种通常带着惊奇和成 就感。开发人员应该一到两个自己完成的项目成果，能让众人不禁而立并注目而观的项目。同样，基于你优越的编程能力，你可以把过去的程序或项目拿出来，把它 们更新为更加优秀的产品或想法。</p>
<p><strong>15. 幽默是不可缺的。</strong>在我20年的开发生涯中，我还没有碰到哪位程序员是没有幽默感的。实际上，干我们这行，幽默是一项必备品。</p>
<p><strong>16. 谨防那些无所不知的程序员，不愿分享的程序员，还有经验不足的程序员。</strong>当你遇到这几种程序员时，你自己要谦虚。无所不知的程序员，更想当一个英雄而不是团队成员；保守的程序员则是在编写着他们独享的代码；而经验不足的程序员则会每十分钟就来问你一下，当代码完成后，代码已经是你的，而不是他们。</p>
<p><strong>17. 任何项目都不会那么简单。</strong>朋 友、家人和同事曾请求我仓促做一些事情，仓促做一个程序或者网站。对于这样的事，应该 从双方做计划，才能做出令两方都会满意的东西。如果某人起初只是需要一个使用Microsoft Access的、只有有3个页面的网站，但来就很可能变成一个有15个页面的网站，并使用SQL Server，有一个论坛，还有一个定制的CMS（内容管理系统）。</p>
<p><strong>18. 任何时候不要想当然。</strong>假如你承接一个简单的项目，你可能会认为某个部分可以轻松完成。千万别这样想！除非你有一个类、组件、或者一段已经写好的代码，并且在现有的项目已经测试通过。不要认为这将是很容易的。</p>
<p><strong>19. 没有已经完成的软件。</strong>曾经有一位程序员告诉我，没有软件是已经完成的，它只是“暂时完成了”。这是明智的忠告。如果客户还在使用你写的程序，并经受了时间的考验。如果有机会，你仍在更新它，这并不是什么坏事，这让你不断地前行。</p>
<p><strong>20. 耐心是一种美德。</strong>当 客户、朋友或家庭成员用电脑的时候，他们也许会受挫，进而想砸电脑，或气冲冲地离开。我一直在 告诉他们，“是你掌控电脑，不是电脑掌控你。”对于用作编程的电脑，你要有一定的耐心。一旦程序员知道问题所在后，他们就会站在电脑的角度看问题，并且说 “哦，这就是为什么它是这样做。”</p>
<blockquote><p><strong>编者后话</strong></p>
<p>对本文深有感触！虽然本文没有华丽的辞藻，其中朴实的道理，其实并非只适用程序员，同样可以扩展到其他行业。记得以前练字时，总感觉当时写得很好，但后来回头再看时，也会想“这居然是我写的字！”</p>
<p>在阅读本文的朋友，不知你是否也有看到了自己的身影呢？欢迎你在微博或评论中和大家一起分享感触。</p>
<p>本文出处：<a href="http://www.jobbole.com/">伯乐</a>在线 - <a href="http://www.jobbole.com/blog.php">职场</a>博客<br />
本文链接：<a href="http://www.jobbole.com/entry.php/322">http://www.jobbole.com/entry.php/322</a><br />
Via：<a href="http://www.dcs-media.com/Archive/20-20-top-20-programming-lessons-ive-learned-in-20-years-FH">Jonathan Danylko</a> 编译：伯乐在线 <a href="http://www.jobbole.com/showthread.php/3546">敏捷翻译</a>组 &#8211; @关关</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://flashphp.org/blog/2010/11/zt%e9%a3%8e%e9%9b%a820%e5%b9%b4%ef%bc%9a%e6%88%91%e6%89%80%e7%a7%af%e7%b4%af%e7%9a%8420%e6%9d%a1%e7%bc%96%e7%a8%8b%e7%bb%8f%e9%aa%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

