﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-枫子的IT博客-随笔分类-技术心得</title><link>http://www.cnitblog.com/ihack520/category/7613.html</link><description>枫子</description><language>zh-cn</language><lastBuildDate>Thu, 29 Sep 2011 12:16:11 GMT</lastBuildDate><pubDate>Thu, 29 Sep 2011 12:16:11 GMT</pubDate><ttl>60</ttl><item><title>常用正则表达式</title><link>http://www.cnitblog.com/ihack520/archive/2010/03/16/64677.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Tue, 16 Mar 2010 10:49:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2010/03/16/64677.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/64677.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2010/03/16/64677.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/64677.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/64677.html</trackback:ping><description><![CDATA[正则表达式用于字符串处理、表单验证等场合，实用高效。现将一些常用的表达式收集于此，以备不时之需。<br>
<p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br>评注：匹配中文还真是个头疼的事，有了这个表达式就好办了</p>
<p>匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br>评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>
<p>匹配空白行的正则表达式：\n\s*\r<br>评注：可以用来删除空白行</p>
<p>匹配HTML标记的正则表达式：&lt;(\S*?)[^&gt;]*&gt;.*?&lt;/\1&gt;|&lt;.*? /&gt;<br>评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力</p>
<p>匹配首尾空白字符的正则表达式：^\s*|\s*$<br>评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，<a href="http://www.01wt.com/">www.01wt.com</a>&nbsp;非常有用的表达式</p>
<p>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br>评注：表单验证时很实用</p>
<p>匹配网址URL的正则表达式：[a-zA-z]+://[^\s]*<br>评注：网上流传的版本功能很有限，上面这个基本可以满足需求</p>
<p>匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br>评注：表单验证时很实用</p>
<p>匹配国内电话号码：\d{3}-\d{8}|\d{4}-\d{7}<br>评注：匹配形式如 0511-4405222 或 021-87888822</p>
<p>匹配腾讯QQ号：[1-9][0-9]{4,}<br>评注：腾讯QQ号从10000开始</p>
<p>匹配中国邮政编码：[1-9]\d{5}(?!\d)<br>评注：中国邮政编码为6位数字</p>
<p>匹配身份证：\d{15}|\d{18}<br>评注：中国的身份证为15位或18位</p>
<p>匹配ip地址：\d+\.\d+\.\d+\.\d+<br>评注：提取ip地址时有用</p>
<p>匹配特定数字：<br>^[1-9]\d*$　 　 //匹配正整数<br>^-[1-9]\d*$ 　 //匹配负整数<br>^-?[1-9]\d*$　　 //匹配整数<br>^[1-9]\d*|0$　 //匹配非负整数（正整数 + 0）<br>^-[1-9]\d*|0$　　 //匹配非正整数（负整数 + 0）<br>^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$　　 //匹配正浮点数<br>^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$　 //匹配负浮点数<br>^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$　 //匹配浮点数<br>^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$　　 //匹配非负浮点数（正浮点数 + 0）<br>^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$　　//匹配非正浮点数（负浮点数 + 0）<br>评注：处理大量数据时有用，具体应用时注意修正<a href="http://www.cnfeiya.com/"><u><font color=#800080>www.cnfeiya.com</font></u></a></p>
<p>匹配特定字符串：<br>^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串<br>^[A-Z]+$　　//匹配由26个英文字母的大写组成的字符串<br>^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串<br>^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串<br>^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串<br>评注：最基本也是最常用的一些表达式</p>
<img src ="http://www.cnitblog.com/ihack520/aggbug/64677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2010-03-16 18:49 <a href="http://www.cnitblog.com/ihack520/archive/2010/03/16/64677.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>善友哥，咱就靠吹牛皮过冬吗？</title><link>http://www.cnitblog.com/ihack520/archive/2009/01/15/53778.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Wed, 14 Jan 2009 23:10:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2009/01/15/53778.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/53778.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2009/01/15/53778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/53778.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/53778.html</trackback:ping><description><![CDATA[<div class=INTRO>胡总教导我们：不动摇，不懈怠，不折腾。习惯性的看了几眼百度新闻，又见酷溜口水战，折腾，真折腾，看来冬天不需要融资，靠牛皮就行了。 谁会吹牛?为什么吹牛? 在媒体圈混久了明白，位置不同的人炒作目的是为了掩人耳目、混淆视听，自觉炒作的都是位置低的</div>
<div class=CONTENT>　　
<p>　　胡总教导我们：&#8220;不动摇，不懈怠，不折腾&#8221;。习惯性的看了几眼百度新闻，又见酷溜口水战，折腾，真折腾，看来冬天不需要融资，靠牛皮就行了。</p>
<p>　<strong>　谁会吹牛?为什么吹牛?</strong></p>
<p>　　在媒体圈混久了明白，位置不同的人炒作目的是为了掩人耳目、混淆视听，自觉炒作的都是位置低的，这大家应该很容易明白。哪个老大会主动去和老二动嘴皮子呢?</p>
<p>　　百度百科&#8220;吹牛这一俗语，来源于陕甘宁和内蒙古一带。以前，这些地方的人过河，靠的是皮筏子，皮筏子有羊皮的，也有牛皮的，用的时候，往里面吹气，扎好口后，作为渡河的工具，把小筏子连在一起，可以成为大筏子，大筏子连在一起，可以承载数千斤的重物过河。&#8221;</p>
<p>　　善友哥吹牛目的也大概如此吧，让外界看着酷溜是第一梯队的，这样在投资人估值的时候可以更多估算。这应该给予理解，但是一直没完没了就不好了，敢情儿谁也不能去酷溜查看真实流量，所以说对手数据有问题，优酷有问题、土豆有问题，难道youtube、dailymotin、hulu们都是流量做假?</p>
<p>　<strong>　善友哥，你们的公关策略忽视了两个很重要的问题：</strong></p>
<p>　　第一：中国网民数量是巨大，视频浏览量是巨大的，造假这么大流量需要多少钱?中国网民的流量难道就比国外少?所以，酷溜不回避直击对手的先入为主公关策略自身就有问题，因为强词否定对手的同时也否定了视频分享行业，容易造成劣币驱逐良币的恶果。</p>
<p>　　第二：alexa、google trends都显示酷溜自从2008年六七月份开始被对手落下很快，既然善友认为自己是老大，那么<strong>您这个老大为什么不把曲线变过来</strong>。</p>
<center><a href="http://news.techsir.com.cn/uploads/090113/1_144937_1.jpg" target=_BLANK><img height=320 alt="" src="http://news.techsir.com.cn/uploads/090113/1_144937_1.jpg" width=603 border=0></a><br>google trends&nbsp; 从上图看到，酷溜直到2008年7月中下旬才追上被关闭一个月的56<br></center>
<p>&nbsp;</p>
<center><a href="http://news.techsir.com.cn/uploads/090113/1_145020_1.jpg" target=_BLANK></a>
<center><a href="http://news.techsir.com.cn/uploads/090113/1_145546_1.jpg" target=_BLANK><img height=402 alt="" src="http://news.techsir.com.cn/uploads/090113/1_145546_1.jpg" width=512 border=0></a><br>看看这前六个月酷溜的排名大起大落，善友能否解释一下<br></center><br>alexa&nbsp; <br></center>
<p>　　<strong>投资人傻?不傻!业界人士傻?更不傻!</strong></p>
<p>　　吹牛真的能让大家改变观点吗?错!自欺欺人而已，这是被滥用的一种公关策略，曝光率高不等于就是明星了，反而是入了陷阱，欲张狂欲暴露，善友哥在激昂文字的背后多少难言之苦悄然流露。理解万岁，没有见到几个口水战的京东商城又融到2300万美元，口水战有啥用？酷溜的融资什么时候到？</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>这个冬天是寒冷的，把体力留着过冬吧，阿门！</strong></p>
</div>
<img src ="http://www.cnitblog.com/ihack520/aggbug/53778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2009-01-15 07:10 <a href="http://www.cnitblog.com/ihack520/archive/2009/01/15/53778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>seo 关键字的选择</title><link>http://www.cnitblog.com/ihack520/archive/2008/12/20/52847.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Fri, 19 Dec 2008 16:42:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/12/20/52847.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/52847.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/12/20/52847.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/52847.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/52847.html</trackback:ping><description><![CDATA[<a href="http://www.seo-cs.cn/hunan-seo/187/">http://www.seo-cs.cn/hunan-seo/187/</a><br>根据潜在客户或目标用户在搜索引擎中找到你的网站时输入的语句，产生了关键字&nbsp;&nbsp;<br>（Keywords）的概念，<a href="http://www.seo-cs.cn/"><u><font color=#800080>湖南SEO</font></u></a>认为这不仅是<a href="http://www.seo-cs.cn/tag/%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e/"><u><font color=#0000ff>搜索引擎</font></u></a>优化的核心，也是整个搜索引擎营销都必须围绕的<br>核心。&nbsp;&nbsp;
<p>&#160;</p>
<p>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.seo-cs.cn/tag/%e5%85%b3%e9%94%ae%e8%af%8d/"><u><font color=#0000ff>关键字</font></u></a>的选择&nbsp;&nbsp;</p>
<p>首先确定你的核心关键字，再围绕核心关键字进行排列组合产生关键词组或短句。对企业、<br>商家而言，核心关键字就是他们的经营范围，如产品/服务名称、行业定位，以及企业名称<br>或品牌名称等。总结起来，选择关键字有以下技巧：&nbsp;&nbsp;</p>
<p>1、站在客户的角度考虑&nbsp;&nbsp;<br>潜在客户在搜索你的产品时将使用什么关键词？这可以从众多资源中获得反馈，包括从你的<br>客户、供应商、品牌经理和销售人员那里获知其想法。&nbsp;&nbsp;</p>
<p>2、将关键词扩展成一系列词组/短语&nbsp;&nbsp;<br>毋用单一词汇，而是在单一词汇基础上进行扩展，如：营销&#8594;网络营销&#8594;网络营销管理。英<br>文关键词可以<a href="http://www.97-xxoo.org.cn/"><u><font color=#800080>97xxoo</font></u></a> (<a href="http://www.97-xxoo.org.cn/"><u><font color=#800080>http://www.97-xxoo.org.cn/</font></u></a>) 采用搜索引擎 overture 的著名工具 Keyword Suggestion Tool 对这些关键词<br>组进行检测，可查看你的关键词在过去 24 小时内被搜索的频率，最好的关键词是那些没有<br>被广泛滥用而又很多人搜索的词。中文工具可以通过百度的&#8220;相关搜索&#8221;和 Google 提供的<br>KeywordSandbox 工具进行关键词匹配和扩展。&nbsp;&nbsp;</p>
<p>工具推荐：&nbsp;&nbsp;<br>Google AdWords 关键字工具：查询特定关键词的常见查询及扩展匹配&nbsp;&nbsp;<br>[url]https://adwords.google.com/select/KeywordSandbox[/url]&nbsp; &nbsp;<br>百度关键字工具：查询特定关键词的常见查询、扩展匹配及查询热度&nbsp;&nbsp;<br>[url]http://www2.baidu.com/inquire/dsquery.php[/url]&nbsp;&nbsp;</p>
<p>3、进行多重排列组合&nbsp;&nbsp;<br>改变短语中的词序以创建不同的词语组合。使用不常用的组合。组合成一个问句。包含同义<br>词、替换词、比喻词和常见错拼词。包含所卖产品的商标名和品名。使用其它限定词来创建<br>更多的两字组合，三字、四字组合。&nbsp;&nbsp;</p>
<p>4、 毋用意义太泛的关键字。&nbsp;&nbsp;<br>如果你从事<a href="http://www.uusee5.org.cn/"><u><font color=#800080>uusee下载</font></u></a>网络电视，则选择&#8220;网络电视&#8221;作为你的核心关键字就无益于吸引到目</p>
<img src ="http://www.cnitblog.com/ihack520/aggbug/52847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-12-20 00:42 <a href="http://www.cnitblog.com/ihack520/archive/2008/12/20/52847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SEO中关键字的设置</title><link>http://www.cnitblog.com/ihack520/archive/2008/12/20/52846.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Fri, 19 Dec 2008 16:41:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/12/20/52846.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/52846.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/12/20/52846.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/52846.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/52846.html</trackback:ping><description><![CDATA[<a href="http://www.seo-cs.cn/changsha-seo/185/">http://www.seo-cs.cn/changsha-seo/185/</a><br>
<div class=t_msgfont id=postmessage_32144711>标客户。<br>实际上，<a href="http://www.seo-cs.cn/"><u><font color=#800080>SEOER</font></u></a>为了准确找到需要的信息，搜索用户倾向使用具体词汇及组合寻找信息（尤其是二<br>词组合），而不是使用那些大而泛的概念。此外，使用意义太广的关键字，也意味着你的网<br>站要跟更多的网站竞争排名，难以胜出。&nbsp;&nbsp;
<p>&#160;</p>
<p>5、用自己的品牌做关键词&nbsp;&nbsp;<br>如果是知名企业，则别忘了在关键词中使用你的公司名或产品品牌名称。&nbsp;&nbsp;</p>
<p>地理位置对于服务于地方性的企业尤其重要。如果你的业务范围以本地为主，则在关键词组<br>合中加上地区名称如&#8220;<a href="http://www.seo-cs.cn/"><u><font color=#800080>长沙网站优化</font></u></a>&#8221;。&nbsp;&nbsp;</p>
<p>7、回顾竞争者使用的关键词&nbsp;&nbsp;<br>查寻竞争者的关键词可让你想到一些你可能漏掉的词组。但不要照抄任何人的关键词，因为<br>你并不清楚他们如何要使用这些关键词——你得自己想关键词。寻找别人的关键词只是对你<br>已经选好的关键词进行补充。&nbsp;&nbsp;</p>
<p>8、不用与自己无关的关键字&nbsp;&nbsp;<br>总是会有人将热门的词汇列入自己的 META 关键字中——尽管这个热门关键字跟自己网站内<br>容毫不相干。甚至有人把竞争对手的品牌也加入到自己的关键字中，这不仅侵权，可能被起<br>诉（国外多起类似案例<a href="http://www.yueyu98.cn/"><u><font color=#800080>越狱酒吧</font></u></a>&nbsp; (<a href="http://www.yueyu98.cn/"><u><font color=#800080>http://www.yueyu98.cn/</font></u></a> )），并且由于这些所谓&#8220;热门&#8221;词汇并未在网站内容中出现，因此对<br>排名并无实质帮助，过多的虚假关键词还可能受到处罚降低排名。&nbsp;&nbsp;</p>
<p>9、控制关键词数量&nbsp;&nbsp;<br>一页中的关键词最多不要超过 3 个为佳，然后所有内容都针对这几个核心关键词展开，才能<br>保证关键词密度合理。搜索引擎也会认为该页主题明确。如果确实有大量关键词需要呈现，<br>可以分散写在其它页面<a href="http://www.97gan.ac.cn/"><u><font color=#800080>97gan</font></u></a> (<a href="http://www.97gan.ac.cn/"><u><font color=#800080>http://www.97gan.ac.cn/</font></u></a> )并针对性优化，让这些页面也具有&#8220;门页（entry）&#8221;的效果。这也是<br>为什么首页和内页的关键词往往要有所区分的原因。最典型的情况是拥有不同的产品和服务<br>的情况下，对每个产品进行单网页优化，而不是罗列在一个首页上。&nbsp;&nbsp;</p>
<p>附：查看竞争对手关键词的方法：在浏览器中打开目标网页&#8594;点击&#8220;查看&#8221;&#8594;点击&#8220;源文件&#8221;<br>&#8594;&#8220;&lt;meta name=&#8221;keywords&#8221; content &#8221;后面的文字即该网站关键词&nbsp;&nbsp;</p>
<p>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 关键字密度&nbsp;&nbsp;</p>
<p>在确定了自己的关键字之后，需要在网页文本中适当出现这些关键字。比如一个<a href="http://www.uusee5.org.cn/"><u><font color=#800080>uusee网络电视下载</font></u></a>站的关键字在网页中<br>出现的频次，即关键字密度 (Keyword Density) ，就是在一个页面中，占所有该页面<br>中总的文字的比例，该指标对搜索引擎的优化起到重要作用。关键字密度一般在 1% 到&nbsp;&nbsp;<br>7% 较为合适，超过这一标准就有过高或过低之嫌。&nbsp;&nbsp;</p>
<p>切记避免</p>
</div>
<img src ="http://www.cnitblog.com/ihack520/aggbug/52846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-12-20 00:41 <a href="http://www.cnitblog.com/ihack520/archive/2008/12/20/52846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国内博客营销是如何的</title><link>http://www.cnitblog.com/ihack520/archive/2008/10/12/50117.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Sat, 11 Oct 2008 20:00:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/10/12/50117.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/50117.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/10/12/50117.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/50117.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/50117.html</trackback:ping><description><![CDATA[<p>本来这篇准备写几个<strong><font color=#ff0000>博客营销</font></strong>做的比较好的案例，不过欣欣提醒我说除了广告商之外，部分博客的不认真对待是更主要的问题，因此我这里从参与话题广告的博客的角度再谈一谈自己的一些看法。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在我所见的<strong><font color=#ff0000>话题广告</font></strong>文章中，的确有部分用户只是敷衍了事，比如把广告的相关介绍抄上，然后随便写两句无关痛痒的评价了事。我在上一篇文章中强调广告主应该努力去与博客交流与对话，不过前提是建立在博客认真了解并使用相关产品，表达自己独到的见解与观点之后。只有这样，广告主与博客之间的交流与对话才有产生的条件。那怎么成为一个合格的参与话题广告的博客，个人觉得应该注意以下几点：</p>
<p>1、选择自己感兴趣的广告。不用接受一个自己毫不了解的广告然后无病呻吟一番，那样不但你写着不舒服，让你的读者看着也不舒服。</p>
<p>2、认真了解与使用产品。至少你应该看看产品的 FAQ，帮助文档，了解该产品到底有些什么功能与特点，然后试用每一项功能。因为只有这样，你的评论才是有价值的。</p>
<p>3、写文章之前先用搜索看看其他人怎么说。当然这并不是要求每一个博客都有独到的见解，不过当你尽可能多的了解其他人的评论，对自己的评论质量也是有帮助的。</p>
<p>4、按照广告要求完成文章。其实这一点是很多博客忽视的，比如加相关的申明图片和链接，达到字数要求等等，而最终导致文章得不到通过。永远记住，你参与的是一场商业活动，既然参与，你就得遵守游戏规则。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 博客与广告商应该做的我都说到了，那让我们再来看看夹在中间的 <strong><font color=#ff0000>Feedsky</font></strong> 做得怎样。前段时间 Feedsky 对所有参与话题广告的博客进行了重新定价并开始收取 50% 的手续费，很多定价降低的博客表达了强烈的不满，特别是那些数据很高，唯独在 Feedsky 中订阅数很少的博客影响最大。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我在前面提到广告商不要关心博客营销中的点击数据，而要重视与博客的交流与对话。从另一方面讲，博客的各项数据不应该成为对博客定价的唯一标准。广告商需要的是一个典型的用户，有见解的用户，能提供有价值意见的用户，而对产品的传播是次要的。而 Feedsky 应该将博客在每次参与话题广告中的表现加入到定价的考虑因素之内，而且权重要高才行。简单点说，就是写得好的，不管博客的其他数据怎样，定价会越来越高；写得差的，即便博客其他数据高，定价也会调低。而 Feedsky 已经投放了不少的话题广告，相信在这一点上也是有条件做到的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我始终都是看好话题广告的，不过这需要在这条关系链上的各方共同完善，哪一个环节出了问题影响都会很大。当然以上不管对广告商、博客还是 Feedsky 提出的意见都是个人不成熟的看法，如有不妥之处，还请大家多多指证。</p>
<p>转载：<a href="http://www.uusee5.org.cn/"><font color=#0c3785>UUSee下载</font></a>：<a href="http://www.uusee5.org.cn/"><font color=#0c3785>http://www.uusee5.org.cn/</font></a></p>
<img src ="http://www.cnitblog.com/ihack520/aggbug/50117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-10-12 04:00 <a href="http://www.cnitblog.com/ihack520/archive/2008/10/12/50117.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>有助于你编程而立即要做的10件事</title><link>http://www.cnitblog.com/ihack520/archive/2008/09/24/49515.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Wed, 24 Sep 2008 15:57:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/09/24/49515.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/49515.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/09/24/49515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/49515.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/49515.html</trackback:ping><description><![CDATA[<p>中午看到这篇文章，觉得道理的，推荐给大家看看。<br>很多IT人，都在忙碌着搞代码，却不知道，除了单纯的写代码，还要关注很多相关的东西。不然，你的代码，本身就是一个问题。<br>转载自：<a href="http://www.yiludu.cn/"><u><font color=#810081>http://www.yiludu.cn/</font></u></a>&nbsp;</p>
<p>1．升级单元测试</p>
<p>你的编程没有测试？你应当随时进行测试，即TATFT ( testing all the fucking time )。当然你应当选择比仅是单元测试更好的方式。RSpec和Shoulda是两个可以选来使用的工具。</p>
<p>2．试用TDD</p>
<p>既然你在测试，那你就应当记录下这些测试。不要记录代码并用后来的测试覆盖它，而应当是方法的记录。TDD ( Test Drive Development ) 可以使你编出更好的代码，TATFT最重要的基础就是 TDD。进行TATFT并不难，首先你写下你所能做的最简单的测试并运行，观察测试的失败，然后写出执行语句以便使测试通过，不停地重复这样的过程就可以了。</p>
<p>3．自动化部署</p>
<p>自动化是你最好的朋友，想要实现自动Capistrano是相当好用的工具。在你配置部署好你的项目后，第一个要装的东西就应当是Capistrano。从第一天起就可以自动化部署将会节约你大量的时间。</p>
<p>4．安装 SCM</p>
<p>安装 SCM并学习使用它，这样做的好处是可以使那些超重的库中的代码不再那么冗繁，目前有大量的工具可以选择，我每天使用的是Git。Git是一款很特别的分布式SCM，即DSCM。DSCM是很有前景的，它可以同有其他库的用户们协同工作。</p>
<p>5．审查持续集成</p>
<p>现在我们已经测试了代码并将其安全的存放在库内。比起不停地测试，什么是更好的方式？自动测试是个不错的选择。很感激有cruisecontrol.rb的存在，这个应用工具自动运行了那些琐碎的测试。</p>
<p>6．了解你的代码</p>
<p>写代码是一回事，但是更重要的事情是了解代码。可以用四种自动化工具来帮助你了解代码：flog、 tarantula、rcov 和saikuro。这些工具分别有其独到之处，我很乐意向你介绍它们。<br>Flog，可以按字母排列的顺序来记录复杂的结果。</p>
<p>Tarantula，根据相关性原则和一些灵活的创意设计的。它所做的是spider 你的Rail应用以便去搜索坏链接。这真是令人得到解脱，使我受益匪浅。</p>
<p>Rcov，这是一个在Ruby界相当受欢迎的工具。它是一个C0范围工具，换言之，它精确的测定出你的代码中哪些部分在被测试，哪些部分没被测试。唯一的缺陷是它不能测试诸如：&#8220;if condition_a &amp;&amp; condition_b || condition_c&#8221;. 这样的语句。</p>
<p>Saikuro，可以测量出你代码环的复杂性，即可以计算出你代码branche 和path的数量。当然你代码的复杂性越低，它运行的越容易。</p>
<p>7．升级你的Fixtures </p>
<p>Fixtures 是看起来很有创意的事物之一，但有诸多的弊端。对于Fixtures，只有极少的替代，我选择使用Rails Scenarios，原因是它在测试中工作起来像Fixtures一样，但是允许我做比YAML更好的DSL。我也可以在一个文件内指定多重的 Scenarios，这将使事情变得更有组织性。</p>
<p>8．收集分析对象</p>
<p>在Rail平台上搭建新的系统。每周都会有新的监控工具出现，这样我们有很多的选择，在这里我介绍我已经使用过的工具：HopToad 和 TuneUp。</p>
<p>HopToad对于异常报文有不错的能力，它可收集间断应用并用简便的方式显示收集结果。还有，这是一个免费软件~</p>
<p>TuneUp用另外一种方式获取数据，它计算每一处分别花费多长时间去组合自身。你的页面是不是花费了很长时间去组建？但你又不知道是因为什么缘故花费了这么久，使用TuneUp来查一下吧，你会发现一些你以前从未想到过的事情。另外，TuneUp是一款开源软件，你可以登陆进他们的托管服务分享你的结果。</p>
<p>9．阅读其他人的代码</p>
<p>你想成为更优秀的程序员吗？那一定要多读代码，这包括好的、坏的、你自己的、其他人的代码等。阅读代码是一项很多程序员都不重视的技能，但其实能够快速阅读他人的代码并理解其中的含义是一种极其需要的能力。</p>
<p>10．写博客的习惯</p>
<p>就我个人来说，当我阅读博客的时候我可以找到所有的信息。大部分时候我是会撰写跟技术相关的要点，偶尔讨论点轻松的话题。写博客是出于分享的原因，你可以写下能够帮你节约时间的技术技巧，也可以是一些你想要记住的技术难点和命令之类。</p>
<img src ="http://www.cnitblog.com/ihack520/aggbug/49515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-09-24 23:57 <a href="http://www.cnitblog.com/ihack520/archive/2008/09/24/49515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>有关BIOS的二十四个解答</title><link>http://www.cnitblog.com/ihack520/archive/2008/09/24/49514.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Wed, 24 Sep 2008 15:53:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/09/24/49514.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/49514.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/09/24/49514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/49514.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/49514.html</trackback:ping><description><![CDATA[<p>文章来源：<a href="http://www.cnblogs.com/fengzi520/admin/www.yiludu.cn"><u><font color=#0000ff>一路读</font></u></a> <a href="http://www.yiludu.cn/"><u><font color=#810081>www.yiludu.cn</font></u></a></p>
<p>1.&nbsp;什么是可擦写(Flash)的BIOS&nbsp;?&nbsp;<br><br>BIOS的发音是"bye-ose,"&nbsp;是基本输入/输出系统的缩写。BIOS是机器的硬件自带的、<br><br>在电脑没有访问磁盘上程序之前决定机器基本功能的软件系统。就PC而言，BIOS&nbsp;包含了<br><br>控制键盘、显示屏幕，磁盘驱动器，串行通讯设备和很多其它功能的代码。<br><br>一般地，BIOS存储在主板上的ROM&nbsp;芯片（所以通常叫&nbsp;ROM&nbsp;BIOS），这确保了BIOS的<br><br>一般可用性和不会因为磁盘的问题而损坏。它也确保了机器能够启动。因为RAM&nbsp;比ROM的<br><br>速度快,&nbsp;很多的机器制造商设计的BIOS在机器启动时能从ROM被拷贝到RAM去运行，这项技<br><br>术也叫shadowing。<br><br>当今，很多PC的主板都有flash&nbsp;BIOS,&nbsp;意味这BIOS&nbsp;是存储在可重新改写的flash&nbsp;内<br><br>存芯片,&nbsp;如果需要的话改写毫不费力。<br><br>PC机的BIOS是标准化的，所有的PC在BIOS这一级别上是类似的(尽管因为生产商不同<br><br>，BIOS的版本非常多)。而常说DOS功能是通过磁盘上的软件实现的，&nbsp;所以不用更换BIOS<br><br>，你可以很简单地升级你的DOS系统。<br><br>能够处理Plug-and-Play&nbsp;(PnP)&nbsp;设备的BIOS叫&nbsp;PnP&nbsp;BIOS,&nbsp;或PnP-aware&nbsp;BIOS。一般<br><br>而言，flash&nbsp;BIOS都是PnP&nbsp;BIOS。<br><br><br>2.&nbsp;怎么确定我的系统里是可擦写的BIOS（Flash&nbsp;Bios&nbsp;chip）&nbsp;?&nbsp;<br><br>很简单，把机箱打开，揭开BIOS&nbsp;芯片上(一般是28&nbsp;或&nbsp;32脚的双列直插式集成电路，<br><br>上面是贴的是印有BIOS生产商的封条）的封条，可以看到芯片的型号。对照下面，你就可<br><br>以确定系统里是否包含可擦写的BIOS。<br><br>Am29F010:&nbsp;AMD&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>Am28F010,&nbsp;Am28F010A:&nbsp;AMD&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>AT28C010,&nbsp;AT28MC010,&nbsp;AT29C010,&nbsp;AT29LC010,&nbsp;AT29MC010:&nbsp;Atmel&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>CAT28F010V5,&nbsp;CAT28F010V5I:&nbsp;Catalyst&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>CAT28F010,&nbsp;CAT28F010I:&nbsp;Catalyst&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>28F010:&nbsp;Fujitsu（富士通）&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;或&nbsp;ISSI&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>HN58C1000:&nbsp;Hitachi（东芝）&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>HN28F101,&nbsp;HN29C010,&nbsp;HN29C010B,&nbsp;HN58C1001,&nbsp;HN58V1001:&nbsp;<br>Hitachi&nbsp;（东芝）12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>A28F010,&nbsp;28F001BX-B,&nbsp;28F001BX-T,&nbsp;28F010:&nbsp;Intel&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>M5M28F101FP,&nbsp;M5M28F101P,&nbsp;M5M28F101RV,&nbsp;M5M28F101VP:&nbsp;<br>Mitsubishi&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>MX28F1000:&nbsp;MXIC&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>MSM28F101:&nbsp;OKI&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>KM29C010:&nbsp;Samsung&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>DQ28C010,&nbsp;DYM28C010,&nbsp;DQM28C010A:&nbsp;SEEQ&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>DQ47F010,&nbsp;DQ48F010:&nbsp;SEEQ&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>M28F010,&nbsp;M28F1001:&nbsp;SGS-Thomson&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>28EE011,&nbsp;29EE010:&nbsp;SST&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>PH29EE010:&nbsp;SST&nbsp;ROM&nbsp;Chip&nbsp;-&nbsp;可擦写（Flashable）&nbsp;<br>TMS29F010:&nbsp;Texas-Instr.&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>TMS28F010:&nbsp;Texas-Instr.&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>W29EE011:&nbsp;Winbond&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>W27F010:&nbsp;Winbond&nbsp;12&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>X28C010,&nbsp;X28C010I,&nbsp;XM28C010,&nbsp;XM28C010I:&nbsp;XICOR&nbsp;5&nbsp;伏的&nbsp;flash&nbsp;ROM&nbsp;<br>29LVxxx&nbsp;-&nbsp;3V&nbsp;Flash&nbsp;memory&nbsp;(较少见)&nbsp;<br>28Cxxx&nbsp;-&nbsp;EEPROM,&nbsp;和Flash&nbsp;memory&nbsp;相似<br>27Cxxx&nbsp;-&nbsp;With&nbsp;window.&nbsp;EPROM:&nbsp;只读,&nbsp;一次性写入。<br><br>其它型号开头的字母不是28或29的芯片可能就是普通的ROM。<br>3.&nbsp;我需要升级BIOS吗&nbsp;?&nbsp;<br><br>升级BIOS有很多的理由，其中有重要的，也有不太重要的。就我们PC用户而言，最重<br><br>要的原因就是和Windows&nbsp;有关。如果在一台机器上的BIOS过时了，Windows&nbsp;的配置就不会<br><br>达到最佳状态。<br><br>现在市场上出售的硬盘容量都会远大于528M，为了支持这些大容量硬盘，BIOS必须支<br><br>持LBA&nbsp;(Logical&nbsp;Block&nbsp;Addressing，逻辑块寻址)&nbsp;的技术。如果你的&nbsp;BIOS&nbsp;不支持，而<br><br>你又想使用硬盘的全部容量，就必须使用能&#8220;欺骗&#8221;BIOS的专用软件。而这些专用软件的<br><br>使用会让Windows访问硬盘时采用兼容模式，造成性能的降低。<br><br>为了让Windows能充分支持Plug&nbsp;'n&nbsp;Play&nbsp;的设备，你也需要&nbsp;PnP-BIOS。这也是升级<br><br>BIOS的重要原因。<br><br>第三个重要原因就是升级BIOS可以解决以前BIOS的错误（bugs）。<br><br>其它不太重要的原因包括：BIOS有新的设置，从光驱启动机器，从SCSI设备上启动等<br><br>等。<br><br>4.&nbsp;从哪儿下载Flash&nbsp;BIOSs&nbsp;?&nbsp;<br><br>a、各大主板厂商的BIOS更新数据相关网址&nbsp;<br><br>1）华硕ASUShttp://www.asus.com.tw&nbsp;<br><br>486电脑BIOS升级程序网址（&nbsp;http://www.asus.com.tw/Products/Bios/bios-486.html&nbsp;;<br><br>）<br>Pentium电脑BIOS升级程序网址（&nbsp;http://www.asus.com.tw/Products/Bios/bios-<br><br>p54.html&nbsp;）<br>Pentium&nbsp;pro和PentiumⅡ电脑BIOS升级程序网址（&nbsp;<br><br>http://www.asus.com.tw/Products/Bios/bios-p6.html）<br><br>2）技嘉GIGABYTEhttp://www.giga-byte.com&nbsp;;）<br><br>Beta&nbsp;BIOS系列http://www.giga-byte.com/gigabyte-web/sw_bata.htm）<br>AGP&nbsp;BIOS系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swagp.htm&nbsp;;）<br>Intel&nbsp;440GX&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swgx.htm&nbsp;;）<br>Intel&nbsp;440BX&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swbx.htm&nbsp;;）<br>Intel&nbsp;440ZX&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swzx.htm&nbsp;;）<br>Intel&nbsp;440EX&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swex.htm&nbsp;;）<br>Intel&nbsp;440LX&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swlx1.htm&nbsp;;）<br>Intel&nbsp;430TX&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swtx.htm&nbsp;;）<br>VIA&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swvia.htm&nbsp;;）<br>ALi&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swali.htm&nbsp;;）<br>SiS&nbsp;系列（&nbsp;http://www.giga-byte.com/gigabyte-web/swsis.htm&nbsp;;）<br>其他旧型号主板（&nbsp;http://www.giga-byte.com/gigabyte-web/swother.htm&nbsp;;）<br><br>3）微星MSIhttp://www.ecs.com.tw）<br><br>MS-41系列主板（&nbsp;http://www.msi.com.tw/chinese/bios/486.htm&nbsp;;）<br>MS-51系列主板（&nbsp;http://www.msi.com.tw/chinese/bios/51.htm&nbsp;;）<br>MS-61系列主板（&nbsp;http://www.msi.com.tw/chinese/bios/61.htm&nbsp;;）<br><br>4）升技&nbsp;[ABIT]&nbsp;http://www.abit.com.tw/html/cload.htm)&nbsp;<br><br>5）联尚&nbsp;[AIR]&nbsp;http://www.airwebs.com/download.html)&nbsp;<br><br>6）浩鑫&nbsp;[SHUTTLE]&nbsp;(&nbsp;ftp://ftp.spacewalker.com/bios/)&nbsp;<br><br>7）建基&nbsp;[AOPEN]&nbsp;http://w3.aopen.com.tw/tech/biosdrv.htm)&nbsp;<br><br>8）映泰&nbsp;[BIOSTAR]&nbsp;http://192.72.144.27/service.htm)&nbsp;<br><br>9）艾崴&nbsp;[IWILL]&nbsp;http://www.iwill.com.tw/csupport/index_bios.html)&nbsp;<br><br>10）捷邦&nbsp;[J-BOND]&nbsp;http://www.jbond.com/companyf.html)&nbsp;<br><br>11）迈科&nbsp;[MICRONICS]&nbsp;http://www.micronics.com/)&nbsp;<br><br>12）梅捷&nbsp;[SOYO]&nbsp;http://www.soyo.com.tw/chinese/product/biosup.htm)&nbsp;<br><br>13）丽台&nbsp;[SUPERMICRO]&nbsp;http://www.supermicro.com/download/dlframe.htm)&nbsp;<br><br>14）磐英&nbsp;[EPOX]&nbsp;http://www.epox.com/support/bios.html)&nbsp;<br><br>15）忆华&nbsp;[EFA]&nbsp;http://www.efa.com.tw/elec/efa/c-service.html)&nbsp;<br><br>16）友通&nbsp;[DFI&nbsp;]&nbsp;http://components.dfiweb.com/support/downloads.asp)&nbsp;<br><br>17）精英&nbsp;[ECS]&nbsp;http://www.ecs.com.tw/ecs/ecs/spp-m.htm)&nbsp;<br><br>18）大众&nbsp;[LEO]&nbsp;http://www.fic.com.tw/techsupport/bios/index.htm)&nbsp;<br><br>19）迈肯&nbsp;[MYCOMP]&nbsp;http://www.mycomp-tmc.com/BIOS.htm)&nbsp;<br><br>20）福扬&nbsp;[FYI]&nbsp;http://www.fyi.com.tw/download-c.htm)&nbsp;<br><br>21）中凌&nbsp;[ATREND]&nbsp;http://www.atrend.com.tw/download/frame-bios.html)&nbsp;<br><br>22）海洋&nbsp;[OCTEK]&nbsp;http://www.oceanhk.com/drivers/others/biso)&nbsp;<br><br>23）宏基&nbsp;[ACER]&nbsp;http://www.aopenamerica.com/tech/mainbd/default.htm)&nbsp;<br><br>24）联想&nbsp;[QDI]&nbsp;http://www.qdigrp.com/driver.htm)&nbsp;<br><br>25）宏鹰&nbsp;[PCCHIPS]&nbsp;http://www.pcchips.com.tw/BIOS.html)&nbsp;<br><br>26）捷波&nbsp;[JETBOARD]&nbsp;http://www.jetway.com.tw/evisn/jwd/jwd01/index.html)&nbsp;<br><br>27）联讯&nbsp;[DATAEXPERT]&nbsp;http://www.dataexpert.com.tw/service/)&nbsp;<br><br>28）皇朝&nbsp;(&nbsp;http://megastar.kamtronic.com&nbsp;&nbsp;<br><br>29）承启(&nbsp;http://www.chintech.com.tw&nbsp;&nbsp;<br><br>30）钻石(&nbsp;http://www.dfiweb.com&nbsp;&nbsp;<br><br>31）致福(&nbsp;http://www.gvc.com.tw&nbsp;<br><br>32）英特尔(&nbsp;http://www.intel.com&nbsp;&nbsp;<br><br>33）华基(&nbsp;http://www.zida.com&nbsp;&nbsp;<br><br>34）麒麟(&nbsp;http://www.pcchips.com&nbsp;&nbsp;<br><br>b、主要&nbsp;BIOS&nbsp;生产公司网站<br><br>Award&nbsp;BIOS&nbsp;公司&nbsp;(美国)&nbsp;http://www.award.com/）<br>Award&nbsp;BIOS&nbsp;公司&nbsp;(台湾)&nbsp;http://www.award.com.tw/）<br>Award&nbsp;技术咨询中心&nbsp;（只限email，mailto:support@unicore.com&nbsp;）<br>AMI&nbsp;BIOS&nbsp;公司&nbsp;http://www.amibios.com/）<br>Microid&nbsp;Research&nbsp;http://www.mrbios.com/）<br>Micro&nbsp;Firmware&nbsp;,&nbsp;开发并发行Phoenix&nbsp;BIOS及升级BIOS数据文件&nbsp;<br><br>http://www.firmware.com/）<br>Phoenix&nbsp;BIOS&nbsp;公司&nbsp;http://www.phoenix.com/）<br>Unicore&nbsp;（提供BIOS升级数据文件&nbsp;，只限Award&nbsp;BIOS。&nbsp;http://www.unicore.com/<br>5.&nbsp;主板的名称不知道怎么办&nbsp;?&nbsp;<br><br>如果你的BIOS是Award&nbsp;BIOS,&nbsp;你可以向award888@ms1.hinet.net或<br><br>support@unicore.com发封邮件，里面附上你的BIOS的1)&nbsp;版本号&nbsp;2)&nbsp;系列号(part&nbsp;<br><br>number)&nbsp;3)&nbsp;发布日期。award的系列号包含了它所支持芯片的信息。这个信息出现在机器<br><br>启动后，屏幕显示正在进行内存检验的时刻。这时按PAUSE键，就可以读系列号，BIOS的<br><br>日期和版本了。不过，有的主板生产商把这个信息去除了，你只有向他们查询。<br><br>6.&nbsp;如何升级我的BIOS&nbsp;?&nbsp;<br><br>升级BIOS需要1)&nbsp;BIOS的读写程序（&nbsp;flasher）&nbsp;和&nbsp;2)&nbsp;BIOS的最新数据文件。读写程<br><br>序将把这个数据文件写入到BIOS的芯片里。下面是不同BIOS的升级命令：<br><br>awdflash&nbsp;xxx.bin&nbsp;(对&nbsp;Award&nbsp;BIOSs)<br>amiflash&nbsp;xxx.bin&nbsp;(对&nbsp;AMI&nbsp;BIOSs)<br>mrflash&nbsp;xxx.bin&nbsp;(对&nbsp;MRBIOSs)<br><br>注意：<br><br>a、&nbsp;在读写器要求你存储当前的BIOS时，选&#8220;YES&#8221;，这样在升级BIOS时如果出现问<br><br>题了还可以恢复原来的BIOS。<br><br>b、有些主板生产商提供自己的升级软件程序（一般不能拷贝），注意在升级前在<br><br>BIOS里把&#8220;System&nbsp;BIOS&nbsp;Cacheable&#8221;的选项设为NO。<br><br>c、千万不要使用错误的BIOS数据文件，否则你的机器就不能启动了。<br><br>7.&nbsp;升级Award&nbsp;BIOS时出现提示&#8220;Insufficient&nbsp;memory&nbsp;（内存不足）&#8221;怎么办？<br><br>解决方法有：<br><br>a.&nbsp;在CMOS&nbsp;的&#8220;Chipset&nbsp;Features&#8221;的设置里，&nbsp;Disable掉&#8220;&nbsp;Video&nbsp;Bios&nbsp;<br><br>Cacheable&#8221;。<br><br>b.&nbsp;按&nbsp;Esc,F10,存储退出。<br><br>c.&nbsp;重启动，在出现"Windows&nbsp;Starting"&nbsp;时按Ctrl+F5,这可以不加载Drvspace.bin，<br><br>省了大约108K&nbsp;的内存空间。<br><br>d.&nbsp;开始升级BIOS&nbsp;，重启动。<br><br>e.&nbsp;重进入CMOS的&#8220;Chipset&nbsp;Features&#8221;的设置里，&nbsp;Enable&#8220;&nbsp;Video&nbsp;Bios&nbsp;<br><br>Cacheable&#8221;。按&nbsp;Esc,F10,存储退出。<br><br>9.&nbsp;如何恢复损坏的BIOS&nbsp;?&nbsp;<br><br>方案一：利用根区BIOS（Boot-block&nbsp;BIOS）<br><br>当今大多数基于AWARD&nbsp;BIOS的主板里都有根区BIOS，这是个在升级BIOS时不会被覆盖<br><br>的一小部分BIOS。它只支持很基本的硬件如：软盘等。如果你的显卡是PCI的，在BIOS被<br><br>损坏后你的屏幕将是漆黑一片，因为根区BIOS只支持ISA&nbsp;的显卡。<br><br>根区BIOS&nbsp;可以执行可引导软盘上的AUTOEXEC.BAT。这样我们可以把Award&nbsp;flasher&nbsp;<br><br>和正确的&nbsp;BIOS&nbsp;文件（*.bin&nbsp;）放在软盘上并在AUTOEXEC.BAT&nbsp;里加入BIOS升级命令。<br><br>方案二:&nbsp;得到新的BIOS芯片<br><br>a、联系主板生产商，看是否他们能提供BIOS芯片。有些生产商是免费提供的。<br><br>b、联系卖相关芯片的电脑公司，如Unicore&nbsp;Softwarehttp://www.unicore.com/）&nbsp;<br><br>或&nbsp;Midco&nbsp;Computers&nbsp;(以前的&nbsp;RC&nbsp;Systems公司http://www.midcocomputers.com/)。下<br><br>面是Midco的一段广告:&nbsp;<br>"我们向公众提供BIOS的更换芯片。请访问&nbsp;www.midcocomputers.com&nbsp;，我们将乐意帮助<br><br>你。&nbsp;"<br><br>方案三：热交换<br><br>注意：本人不对本方法导致的任何问题负责，风险自负。<br><br>用另外一块可以正常使用的BIOS芯片来更换当前损坏的芯片，而正常BIOS芯片的主板<br><br>必须尽量和损坏的一致。在正常芯片的机器上先把&#8220;System&nbsp;BIOS&nbsp;cacheable&#8221;设为<br><br>ENABLE，进入DOS后，把正常的芯片拔掉，用损坏的芯片来替代，然后正确地升级BIOS即<br><br>可。<br><br>注意：建议使用MRBIOS的读写程序，他们的产品名声最好。可以访问<br><br>ftp://ftp.mrbios.com找相关软件。<br><br>方案四:&nbsp;(适用于INTEL主板)&nbsp;<br><br>把Flash&nbsp;Recovery&nbsp;的跳线放在recovery&nbsp;mode的位置，把可启动的BIOS升级软盘放入<br><br>，启动机器。<br>因为没被覆盖的根区BIOS不支持PCI的显卡，这时屏幕上什么都没有。你可以通过鸣笛声<br><br>和软盘LED来观察。当机器响了一下，接着软盘的LED亮时，系统就正在升级你的BIOS。当<br><br>软盘的LED灯灭时，说明恢复已完成，关机。把跳线恢复到缺省位置，重启动继续恢复。<br><br>10.&nbsp;如果我的BIOS有问题而目前又找不到升级文件怎么办？<br><br>可以试着找到主板型号不同但BIOS生产商相同的BIOS。下面的文字是从新闻组里摘录<br><br>的：<br><br>&#8220;最近我在本人的Triton&nbsp;芯片组的主板上进行了一系列的BIOS的测试，是为了检验<br><br>一种主板能否使用不同主板生产商提供的BIOS。结论是：大多数是可以的。所以，即使是<br><br>不同生产商提供的BIOS也可以一定限度地通用。<br><br>实验内容：我想升级我的Amptron&nbsp;PM7700B&nbsp;主板的BIOS，版本号从v4.50PG&nbsp;BIOS&nbsp;到<br><br>v4.51PG，希望能纠正电源管理方面的错误（显示器随机空白，硬盘老处于&#8220;睡眠&#8221;状态<br><br>）。我的机器配置是：Maxtor&nbsp;1.6GB&nbsp;硬盘（IDE0的master模式）,&nbsp;Aztech的&nbsp;4x&nbsp;CD-ROM&nbsp;<br><br>（IDE1的Slave模式）,&nbsp;SB16声卡,&nbsp;AMD&nbsp;5x86-75&nbsp;超频到90MHz&nbsp;(老式的SSA-5&nbsp;版本).&nbsp;<br><br>实验里所使用的BIOS有：ASUS（华硕）460FX主板使用的Award&nbsp;v4.51PG，FIC的PT-<br><br>2003&nbsp;430FX主板使用的Award&nbsp;v4.50PG，ECS&nbsp;TR5510主板使用的&nbsp;Award&nbsp;v4.51PG，还有<br><br>Shuttle&nbsp;HOT-541&nbsp;主板使用的Award&nbsp;v4.51PG。<br><br>请注意，如果主板生产商提供的BIOS升级程序和其他的不同（比如华硕），它就不能<br><br>被用来升级别的主板的BIOS。所以，除了华硕的主板，AWDFLASH&nbsp;v5.2&nbsp;都能顺利地升级其<br><br>他主板BIOS。<br><br>笔者还发现，MR-BIOS的29C010.EXE&nbsp;(请使用和你的主板芯片组相符合的软件）能更<br><br>新所有主板的BIOS。ftp://ftp.mrbios.com里你可以找到29C010.EXE&nbsp;和&nbsp;28F010.EXE&nbsp;<br><br>，在那里长度大于60k的zip文件里有不少好的东西。<br><br>结果：<br><br>a、华硕（&nbsp;ASUS&nbsp;）BIOS&nbsp;工作正常,&nbsp;但内存只检测到8MB（实际上有16MB），因为内<br><br>存的原因，&nbsp;Win95还&#8220;发现&#8221;了不少新的设备。<br><br>b、升级了FIC&nbsp;430FX&nbsp;BIOS,&nbsp;机器不能访问软盘（尝试后，系统死机），但硬盘正常<br><br>启动和工作。<br><br>c、ECS&nbsp;TR5510&nbsp;BIOS&nbsp;表现最好，最终我也采用了它。它解决了电源管理的错误，还<br><br>解决了以前按SHIFT-F5不能直接进入纯DOS模式的问题。（该问题估计是Amptron的&nbsp;BIOS<br><br>和AMD&nbsp;5x86&nbsp;CPU不兼容的缘故）同时，在WinTune96的测试下内存和硬盘的访问速度也增<br><br>加了几个MB/S。<br><br>d、Shuttle&nbsp;HOT-541&nbsp;BIOS和ESC的BIOS一样，解决了同样的问题。但在win95下，不<br><br>能直接检测到光驱。<br><br>结论：<br><br>a、所有实验用的BIOS都没有导致永久性的、不可恢复性的错误，90-100%&nbsp;的功能都<br><br>正常(ECS的甚至解决了原Amptron&nbsp;BIOS的问题)。<br><br>b、如果你也想尝试这样的作法，请记住一定要使用相同芯片组的BIOS升级文件，输<br><br>入/输出（I/O）的芯片也要和你自己的相同。我主板上所使用的I/O&nbsp;芯片是UM8669&nbsp;。如<br><br>果你的I/O芯片不同，升级后可能会导致串口不工作或更糟的结果。<br><br>c、在硬盘里保存一份完好的BIOS文件和升级软件。避免如果软盘不能启动，恢复不<br><br>了BIOS的情况。&nbsp;<br><br>d、实验用的BIOS没有一种让我的机器变得彻底毁坏，不过你的运气就不一定这么好<br><br>了。<br><br>e、一般初学者不要使用不同生产商提供的BIOS，除非<br><br>1)&nbsp;你有EPROM烧录器，写片BIOS芯片对你来说非常容易。<br>2)&nbsp;你有同种类型的芯片，能非常熟练地*作&#8220;热插拔&#8221;技术。<br>3)&nbsp;你有冒险的勇气。<br><br>11.&nbsp;在Award或AMI的网站里为何没有我的BIOS的升级文件&nbsp;?&nbsp;<br><br>Award&nbsp;和AMI会为特定的主板生产商提供符合特定主板和芯片组的BIOS升级文件，然<br><br>后生产商再利用Award/AMI提供的工具,&nbsp;对这些BIOS文件作出最后的修改和优化。<br><br>也就是说，生产商比Award/AMI更了解他们的主板，能提供更好的BIOS升级。<br><br>注意：http://www.award.com.tw/download/bios/里包括了好多主板如ali、cyrix&nbsp;<br><br>、intel、opti、sis&nbsp;、via的BIOS升级文件。不过你最好先在主板生产商自己的网页里找<br><br>升级文件，如果没有的话，才来此处下载。<br><br>12.&nbsp;在哪儿能找到我的BIOS的技术帮助&nbsp;?&nbsp;<br><br>在你主板的网站上（如果有的话），有问题也可以向他们发电子邮件。<br><br>13.&nbsp;PROM,&nbsp;EPROM,&nbsp;EPROM&nbsp;这些名词代表什么&nbsp;?&nbsp;<br><br>PROM&nbsp;(可编程只读存储器&nbsp;programmable&nbsp;read-only&nbsp;memory)&nbsp;是数据只可写入一次的<br><br>存储器芯片。一旦数据写入到PROM,&nbsp;就永久保存。不象PC系统里的内存，PROM在关机时里<br><br>面的信息依然保存。<br><br>PROM&nbsp;和&nbsp;ROM&nbsp;(只读存储器)&nbsp;的差异是PROM&nbsp;生产出来后是空白的存储器，而ROM在生<br><br>产出来后就已经被写入信息了。要想写入到PROM&nbsp;，需要特殊的设备--PROM&nbsp;编程器或PROM&nbsp;<br><br>烧录器。<br><br>EPROM&nbsp;(可擦除可编程只读存储器erasable&nbsp;programmable&nbsp;read-only&nbsp;memory)属于特<br><br>殊的一种&nbsp;PROM，内部的信息可以用紫外线来擦除。一旦擦除后，就可以被写入信息。<br><br>而EEPROM和PROM类似,&nbsp;但擦除时需要电而不是紫外线。EEPROM(电擦除可编程只读存<br><br>储器&nbsp;electrically&nbsp;erasable&nbsp;programmable&nbsp;read-only&nbsp;memory)和PROM一样，关机后信<br><br>息不会消失，没有RAM快。<br><br>一种特殊的EEPROM,&nbsp;称之为flash&nbsp;EEPROM,&nbsp;在电脑里可以被重写，不再需要特殊的烧<br><br>录器。我们常说的可读写式BIOS的芯片就是有它们构成的。<br><br>14.&nbsp;Award&nbsp;Flasher&nbsp;5.33&nbsp;有什么新的功能?&nbsp;<br><br>Award&nbsp;BIOS&nbsp;的二进制数据文件的文件名一般是和BIOS系列号一致的。因为文件名的<br><br>类似，用户可能偶然失误使用错误的数据文件。<br><br>为了避免这个问题，在新版的&nbsp;AWDFLASH.EXE&nbsp;version&nbsp;5.33增加了检测的功能，如果<br><br>它发现用户使用的数据文件和主板的型号不符就报警，报警信息是：&#8220;The&nbsp;program&nbsp;<br><br>file's&nbsp;part&nbsp;number&nbsp;does&nbsp;not&nbsp;match&nbsp;with&nbsp;your&nbsp;system&nbsp;&#8221;<br><br>如果你认为自己不会犯这样的错误，可以用&#8220;/Py&#8221;PASS掉检测功能：Awdflash&nbsp;<br><br>2Axxxxxx.BIN&nbsp;/Py&nbsp;<br><br>15.&nbsp;为何在网站里不再有MRBIOS&nbsp;的软件&nbsp;?&nbsp;<br><br>因为他们不再属于共享软件了，需要请ftp://ftp.mrbios.com里找找。最新MRBIOS<br><br>的版本是3.42&nbsp;。<br><br>16.&nbsp;在DEBUG里如何恢复BIOS的出厂值？<br><br>a、针对AMI/Award&nbsp;BIOS:<br><br>C:\DEBUG&nbsp;(在纯DOS下，不是windows里的DOS窗口)<br>-O&nbsp;70&nbsp;17<br>-O&nbsp;71&nbsp;17<br>Q<br><br>b、针对Phoenix&nbsp;BIOS:<br><br>C:\DEBUG&nbsp;(在纯DOS下，不是windows里的DOS窗口)<br>-O&nbsp;70&nbsp;FF<br>-O&nbsp;71&nbsp;17<br>Q<br><br>17.&nbsp;我的密码忘了，如何破解BIOS里的密码保护?&nbsp;<br><br>a、针对&nbsp;Award&nbsp;BIOS:<br><br>试试下面的密码:&nbsp;AWARD_SW,&nbsp;j262&nbsp;,&nbsp;HLT,&nbsp;SER,&nbsp;SKY_FOX,&nbsp;BIOSTAR,&nbsp;ALFAROME,&nbsp;<br><br>lkwpeter,&nbsp;<br>j256,&nbsp;AWARD?SW,&nbsp;LKWPETER,&nbsp;Syxz,&nbsp;aLLy,&nbsp;589589,&nbsp;589721,&nbsp;awkward,&nbsp;CONCAT<br><br>也可在网上下载有关的破解程序。<br><br>b、针对AMI&nbsp;BIOS:<br><br>试试下面的密码:AMI,&nbsp;BIOS,&nbsp;PASSWORD,&nbsp;HEWITT&nbsp;RAND,&nbsp;AMI?SW,&nbsp;AMI_SW,&nbsp;LKWPETER,&nbsp;<br><br>A.M.I.<br><br>也可在网上下载有关的破解程序。<br><br>18.&nbsp;AMI&nbsp;BIOS&nbsp;的鸣笛有何含义？<br><br>除去8声鸣笛，其他的都会造成机器不能启动：<br><br>1&nbsp;声鸣笛&nbsp;刷新失败<br>2&nbsp;声鸣笛&nbsp;奇/偶校验错误<br>3&nbsp;声鸣笛&nbsp;基本64K&nbsp;内存错误<br>4&nbsp;声鸣笛&nbsp;定时器失效<br>5&nbsp;声鸣笛&nbsp;处理器错误<br>6&nbsp;声鸣笛&nbsp;8042&nbsp;的&nbsp;A20信号错误<br>7&nbsp;声鸣笛&nbsp;处理器特殊中断错误<br>8&nbsp;声鸣笛&nbsp;显存读/写错误<br>9&nbsp;声鸣笛&nbsp;ROM&nbsp;校验错误<br>10&nbsp;声鸣笛&nbsp;CMOS&nbsp;关闭寄存器读/写错误<br>11&nbsp;声鸣笛&nbsp;Cache&nbsp;内存损坏<br><br>19.&nbsp;如何解决上述的鸣笛错误？<br><br>对1&nbsp;、&nbsp;2、3&nbsp;声鸣笛，可以试着重安装内存条，如果错误仍然存在，更换好的内存条<br><br>。<br><br>对4、5、7&nbsp;、10声鸣笛，到经销商处更换主板。<br><br>对6声鸣笛，重新安装键盘控制器芯片。如果错误继续，更换该芯片。如果错误继续<br><br>，检查和键盘有关的部件，如更换好的键盘，检查主板上是否有键盘保险丝。<br><br>对8声鸣笛，&nbsp;更换显卡或显存。<br><br>对9声鸣笛，更换BIOS芯片。<br><br>如果没有任何鸣笛，而显示器上漆黑一片，先检查电源，连接主板上的POWER&nbsp;LED到<br><br>LED上，如果LED亮，而驱动器有转动的声音就说明电源是好的。<br><br>接着，检查主板上有没有松动的部件。松动的处理器，BIOS芯片，晶振或芯片组都能<br><br>导致主板不工作。<br><br>接着，除了显卡，把所有的插卡都拔掉。这时系统至少能加电并出现显卡信息。然后<br><br>，再一次一个地插卡，直到问题出现。<br><br>上述方法失效的话，只有到经销商更换主板了。<br><br>20.&nbsp;如何在MRBIOS里插入NCR&nbsp;SCSI&nbsp;BIOS&nbsp;v3.07&nbsp;或&nbsp;4.03&nbsp;？<br><br>其实很简单，不过针对不同版本的mr&nbsp;bios方法也不同。<br><br>首先，到Windows95.com&nbsp;下载'Hex&nbsp;Workshop'，它能在二进制状态下编辑文件。插入<br><br>SCSI&nbsp;BIOS的原理就是把&nbsp;mr&nbsp;bios前面没用的空间删除，在附加上NCR&nbsp;的flash&nbsp;BIOS，然<br><br>后存储文件。<br><br>尽管mr&nbsp;bios&nbsp;网站上说它的BIOS大小是92k，可下载后文件长度要大于这个值。用上<br><br>述的二进制编辑软件把它前面的空格删除，以保正长度为92k。再将NCR&nbsp;v3.07&nbsp;的BIOS&nbsp;追<br><br>加上，这样文件长度就是108k&nbsp;(92k&nbsp;+&nbsp;16k&nbsp;NCR&nbsp;v3.07&nbsp;)，&nbsp;也可追加32k的&nbsp;NCR&nbsp;v4.03，<br><br>长度是124k.&nbsp;<br><br><br>21.&nbsp;如何对INTEL&nbsp;OEM主板升级它的Intel&nbsp;AMI&nbsp;BIOS？&nbsp;<br><br>比如：想把1.00.xx.CB0H&nbsp;升级到1.00.xx.CB0。"1.00.xx.CB0H"里的H表示这是INTEL<br><br>为其他主板生产商（此处代表VOBIS公司）制造的OEM主板，所以下面的方法也适用于任何<br><br>使用AMI&nbsp;BIOS的INTEL&nbsp;OEM主板&nbsp;，比如从1.00.xx.BC0R升级到1.00.xx.BC0。<br><br>背景资料：<br><br>"1.00.xx.CB0"的BIOS是AMI为Intel的主板芯片组特制的(也叫"Advanced-E/V"主板)<br><br>，然后主板生产商VOBIS再对它作稍微的修改，称之为"1.00.xx.CB0H"。很可能字母"H"代<br><br>表&nbsp;他们生产PC上标注的"HIGHSCREEN"&nbsp;。所以，我们可以使用常见的AMI的BIOS来升级它<br><br>。<br><br>你可以ftp://download.intel.nl/design/motherbd/ev/里下载"1.00.xx.CB0"的<br><br>BIOS版本，版本号为02,&nbsp;03,&nbsp;04,&nbsp;05&nbsp;和&nbsp;06&nbsp;。如果你现在试着用这些BIOS，就会有错误<br><br>信息：&nbsp;"the&nbsp;data&nbsp;are&nbsp;corrupt&nbsp;or&nbsp;you&nbsp;are&nbsp;using&nbsp;a&nbsp;wrong&nbsp;BIOS"（数据错误或BIOS文<br><br>件有误）。原因就是INTEL提供的BIOS的ID字符串只是1.00.02.CB0，与机器中现有的<br><br>1.00.02.CB0H不符,所以升级程序不执行，升级失败。<br><br>解决方法：<br><br>a.&nbsp;下载和目前机器里版本号相同的1.00.02.CB0&nbsp;和最新版本号的1.00.06.CB0。<br><br>b.&nbsp;按照网页"http://developer.intel.com/design/motherbd/genbios.htm";的指令<br><br>，创建2张启动盘，一个版本号一个。<br><br>c.&nbsp;在1.00.02.CB0的软盘里，有文件"1002cb0_.bio"&nbsp;和"1002cb0_.bi1"。用文本编<br><br>辑器把里面的"CB0&nbsp;"&nbsp;(注意CB0后面的空格不能省略)&nbsp;替换为&nbsp;"CB0H"。每个文件只有一个<br><br>，只能替换一处。<br><br>d.&nbsp;用修改的启动盘引导机器，令人惊奇的是现在机器的BIOS-ID&nbsp;变成了1.00.02.CB0&nbsp;<br><br>，而不是1.00.02.CB0H。<br><br>e.&nbsp;用另一张启动盘（1.00.06.CB0）引导，并升级成功，当前的BIOS版本是<br><br>1.00.06.CB0。<br><br>注意：<br><br>a.&nbsp;Intel提供的升级软件有保存当前BIOS的功能，应该使用它并创建一启动盘。这样<br><br>升级出现问题时，可以利用主板提供的BIOS-recovery跳线，来恢复原来的BIOS。<br><br>b.&nbsp;有可能直接修改06版本号的启动盘，而升级成功。<br><br>c.&nbsp;如果VOBIS不仅往BIOS里添加了他们的公司名，还作了功能性的修改，上述的*作<br><br>就有一定的风险。<br><br>22.&nbsp;如何对INTEL&nbsp;OEM主板升级它的Intel&nbsp;Phoenix&nbsp;BIOS&nbsp;？<br><br>a、到INTEL的网站上下载针对该主板的最新的BIOS，把它放在一张可启动的软盘里。<br><br>b、进入BIOS，&nbsp;enable选项'Check&nbsp;for&nbsp;User&nbsp;Flash&nbsp;ROMS'&nbsp;，并关机。<br><br>c、把主板上的BIOS跳线设置为RECOVERY模式。将启动盘放入引导机器，它将自动进<br><br>入恢复程序，并加载软盘里最新的BIOS。<br><br>d、关机，恢复BIOS跳线到正常模式，开机即可。<br><br>23.&nbsp;如何更换Award&nbsp;BIOS启动时的EPA&nbsp;logo&nbsp;画面？<br><br>a、首先，要有BIOS数据文件（&nbsp;*.BIN&nbsp;）用来先编辑再写入BIOS里，要确认该文件和<br><br>你主板是对应的。<br><br>b、http://members.aol.com/mrosenb257/下载BMPtoEPA，&nbsp;BMPtoEPA是个自由软件<br><br>，运行于Windows9x下，能把BMP&nbsp;文件转换为EPA&nbsp;。<br><br>c、有了需要的EPA&nbsp;文件后，要找到专用软件CBROM&nbsp;或&nbsp;CBROM6，它能把EPA文件放在<br><br>*.BIN文件里，格式为：cbrom&nbsp;*.BIN&nbsp;/EPA&nbsp;savedEPA.epa&nbsp;（*.BIN&nbsp;是BIOS数据文件，<br><br>savedEPA.epa是需要的EPA文件）。另外，CBROM&nbsp;适用于Award&nbsp;V4.51&nbsp;，而CBROM6适用于<br><br>Award&nbsp;V6.0&nbsp;。<br><br>d、现在就可以升级你的BIOS了，成功后EPA&nbsp;logo画面就变成你需要的了。<br><br>24.&nbsp;如何在windows里避免&#8220;IRQ&nbsp;Routing&nbsp;Table&nbsp;errors&#8221;？<br><br>如果你主板使用的是VIA芯片组，就需要安装最新的VIA&nbsp;IRQ&nbsp;Routing的补丁软件<br><br>http://www.via.com.tw/）。<br><br>如果还不行，就在BIOS里disable掉&nbsp;'OnChip&nbsp;USB'。如果成功的话，就应和主板生产<br><br>商联系获得最新的BIOS。（比如，Shuttle&nbsp;HOT591P&nbsp;主板就有这种情况，升级BIOS后就没<br><br>问题了。）</p>
<img src ="http://www.cnitblog.com/ihack520/aggbug/49514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-09-24 23:53 <a href="http://www.cnitblog.com/ihack520/archive/2008/09/24/49514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些著名的大公司面试题目-java</title><link>http://www.cnitblog.com/ihack520/archive/2008/09/22/49353.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Sun, 21 Sep 2008 18:16:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/09/22/49353.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/49353.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/09/22/49353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/49353.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/49353.html</trackback:ping><description><![CDATA[<font color=#666666><font color=#000000>文章来源：</font><a href="http://www.yiludu.cn/"><font color=#000080>一路读</font></a><font color=#000000>&nbsp; </font><a href="http://www.yiludu.cn/"><font color=#000080>http://www.yiludu.cn</font></a><br>一、Java基础知识<br>1. Java有那些基本数据类型，String是不是基本数据类型，他们有何区别。<br>Integer literals,Floating-point literals,character literals,Boolean literal,String iteral.<br>String 不是基本数据类型<br>2. 字符串的操作：<br>写一个方法，实现字符串的反转，如：输入abc，输出cba<br>public static String reverse(String s){<br>int length=s.length();<br>StringBuffer result=new StringBuffer(length);<br>for(int i=length-1;i&gt;=0;i--)<br>result.append(s.charAt(i));<br>return result.toString();<br>}<br>写一个方法，实现字符串的替换，如：输入bbbwlirbbb，输出bbbhhtccc。<br>3. 数据类型之间的转换<br>如何将数值型字符转换为数字（Integer，Double）<br>如何将数字转换为字符<br>如何去小数点前两位，并四舍五入。<br>4. 日期和时间<br>如何取得年月日，小时分秒<br>Date dat=new Date();<br>dat.getYear();dat.getMonth();dat.getDay();dat.getHours();...<br>如何取得从1970年到现在的毫秒数<br>long now=dat.getTime();<br>如何获取某个日期是当月的最后一天<br>如何格式化日期<br>DateFormate df=DateFormate.getInstance();<br>df.Format(dat);<br>5. 数组和集合<br>6. 文件和目录（I/O）操作<br>如何列出某个目录下的所有文件<br>如何列出某个目录下的所有子目录<br>判断一个文件或目录是否存在<br>如何读写文件<br>7. Java多态的实现（继承、重载、覆盖）<br>8. 编码转换，怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。<br>9. Java中访问数据库的步骤，Statement和PreparedStatement之间的区别。<br>10. 找出下列代码可能存在的错误，并说明原因：<br>二、JSP&amp;Servlet技术<br>1. 描述JSP和Servlet的区别、共同点、各自应用的范围<br>2. 在Web开发中需要处理HTML标记时，应做什么样的处理，要筛选那些字符（&lt; &gt; &amp; ""）<br>3. 在JSP中如何读取客户端的请求，如何访问CGI变量，如何确定某个Jsp文件的真实路径。<br>4. 描述Cookie和Session的作用，区别和各自的应用范围，Session工作原理。<br>5. 列出Jsp中包含外部文件的方式，两者有何区别。<br>6. 说明Jsp中errorPage的作用，应用范围。<br>7. 介绍在Jsp中如何使用JavaBeans。<br>8. 简单介绍JSP的标记库<br>9. Jsp和Servlet中的请求转发分别如何实现。<br>三、J2EE相关知识<br>1. 介绍J2EE、J2SE、J2SE的区别。<br>2. J2EE是一种技术还是一种平台，他提供了那些技术。<br>3. 什么是Application Server，它有什么功能和优点。<br>4. 简单介绍连接池的优点和原理。<br>5. Web.xml的作用<br>四、其他<br>1. Web安全性的考虑（表单验证、浏览器Basic方式的验证，应用程序的安全性，SSL，代码考虑）<br>2. 简单介绍您所了解的MVC。<br>3. 简单介绍所了解的XML。<br>4. 文档和编码规范<br>5. Java中的分页、效率考虑。<br>6. 简单介绍您所了解的structs。<br><br><br>找出以下程序错误。<br>Class Test{<br>private String par1;<br>private String par2;<br>Test(){<br>}<br><br>public static void main(String[] arg){<br>int a ;<br>if(a){<br>System.out.println("par1="+par1);<br>}else{<br>System.out.println("par2=" + par2);<br>}<br>}<br>}<br><br>==================================<br><br>public class Test <br>{ <br>public static int a = 5; <br>public static void main(String[] args) <br>{ <br>Test test = new Test(); <br>test = null; <br>System.out.println(test.a); <br>} <br>} <br>答案是5，a为静态变量；不依赖对象，即使为空。<br><br><strong>J2EE初学者需要理解的问题 </strong><br><br>一、J2EE提出的背景 <br>1、 企业级应用框架的需求 <br><br>在许多企业级应用中，例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块，这些模块如果每次再开发中都由开发人员来完成的话，将会造成开发周期长和代码可*性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。 <br><br>2、 为了通用必须要提出规范，不然无法达到通用 <br><br>在上面的需求基础之上，许多公司都开发了自己的中间件，但其与用户的沟通都各有不同，从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。 <br><br>注：中间件的解释 中间件处在操作系统和更高一级应用程序之间。他充当的功能是：将应用程序运行环境与操作系统隔离，从而实现应用程序开发者不必为更多系统问题忧虑，而直接关注该应用程序在解决问题上的能力 。我们后面说到的容器的概念就是中间件的一种。 <br><br>二、相关名词解释 <br>容器：充当中间件的角色 <br><br>WEB容器：给处于其中的应用程序组件（JSP，SERVLET）提供一个环境，使JSP,SERVLET直接更容器中的环境变量接口交互，不必关注其它系统问题。主要有WEB服务器来实现。例如：TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。 <br><br>EJB容器：Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器，马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。 <br><br>WEB容器和EJB容器在原理上是大体相同的，更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节，直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制，直接由容器来完成。 <br><br>RMI/IIOP:远程方法调用/internet对象请求中介协议，他们主要用于通过远程调用服务。例如，远程有一台计算机上运行一个程序，它提供股票分析服务，我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。 <br><br>JNDI:JAVA命名目录服务。主要提供的功能是：提供一个目录系统，让其它各地的应用程序在其上面留下自己的索引，从而满足快速查找和定位分布式应用程序的功能。 <br><br>JMS:JAVA消息服务。 主要实现各个应用程序之间的通讯。包括点对点和广播。 <br><br>JAVAMAIL:JAVA邮件服务。提供邮件的存储、传输功能。他是JAVA编程中实现邮件功能的核心。相当MS中的EXCHANGE开发包。 <br><br>JTA：JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。 <br><br>JAF:JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。 <br><br>EAI:企业应用集成。是一种概念，从而牵涉到好多技术。J2EE技术是一种很好的集成实现。 <br><br>三、J2EE的优越性 <br>1、 基于JAVA 技术，平台无关性表现突出 <br><br>2、 开放的标准，许多大型公司已经实现了对该规范支持的应用服务器。如BEA ,IBM,ORACLE等。 <br><br>3、 提供相当专业的通用软件服务。 <br><br>4、 提供了一个优秀的企业级应用程序框架，对快速高质量开发打下基础 <br><br>四、现状 <br>J2EE是由SUN 公司开发的一套企业级应用规范。现在最高版本是1.4。支持J2EE的应用服务器有IBM WEBSPHERE APPLICATION SERVER,BEA WEBLOGIC SERVER,JBOSS,ORACLE APPLICATION SERVER,SUN ONE APPLICATION SERVER 等。 <br><br><br><strong>学习Java的30个基本概念 </strong><br><br>Java概述:<br>目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出.<br><br><br>Java的白皮书为我们提出了Java语言的11个关键特性.<br><br>(1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb.<br><br><br>(2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet.<br><br><br>(3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型.<br><br><br>(4)健壮特性:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能性。<br><br><br>(5)安全:Java用来设计网路 　 和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的比较好.<br><br>(6)中立体系结构:Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释执行.<br><br><br>(7)可移植性:Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植性很好.<br><br><br>(8)多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一<br><br><br>(9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的.<br><br><br>基本概念:<br><br><br>1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率.<br><br><br>2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)<br><br><br>3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)<br><br><br>4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍.<br><br><br>5.对象的3个主要特性 <br><br>behavior---说明这个对象能做什么. <br><br>state---当对象施加方法时对象的反映.<br><br>identity---与其他相似行为对象的区分标志.<br><br>每个对象有唯一的indentity 而这3者之间相互影响.<br><br>6.类之间的关系:<br><br>use-a :依赖关系<br><br>has-a :聚合关系<br><br>is-a :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中)<br><br><br>7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化.<br><br>例:Data类的构造器叫Data<br><br>new Data()---构造一个新对象,且初始化当前时间.<br><br>Data happyday=new <br><br>Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用.<br><br>构造器特点:构造器可以有0个,一个或多个参数<br><br>构造器和类有相同的名字<br><br>一个类可以有多个构造器<br><br>构造器没有返回值<br><br>构造器总是和new运算符一起使用.<br><br><br>8.重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载.编译器必须挑选出调用哪个方法.<br><br><br>9.包(package)Java允许把一个或多个类收集在一起成为一组,称作包,以便于组织任务,标准Java库分为许多包.java.lang java.util java,net等,包是分层次的所有的java包都在java和javax包层次内.<br><br><br>10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段.<br><br><br>11.扩展类:扩展类充分体现了is-a的继承关系. 形式为:class (子类) extends (基类).<br><br><br>12.多态:在java中,对象变量是多态的.而java中不支持多重继承.<br><br><br>13.动态绑定:调用对象方法的机制.<br><br>(1)编译器检查对象声明的类型和方法名.<br><br>(2)编译器检查方法调用的参数类型.<br><br>(3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法.<br><br>(4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本.<br><br>(5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码.<br><br><br>14.final类:为防止他人从你的类上派生新类,此类是不可扩展的.<br><br><br>15.动态调用比静态调用花费的时间要长,<br><br><br>16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract例: public abstract string getDescripition<br><br><br>17.Java中的每一个类都是从Object类扩展而来的.<br><br><br>18.object类中的equal和toString方法.equal用于测试一个对象是否同另一个对象相等.toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法)<br><br><br>19.通用编程:任何类类型的所有值都可以同object类性的变量来代替.<br><br><br>20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小.<br><br><br>21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类.<br><br><br>22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具.能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大.<br><br>1.在运行时分析类的能力.<br><br>2.在运行时探察类的对象.<br><br>3.实现通用数组操纵代码.<br><br>4.提供方法对象.<br><br>而此机制主要针对是工具者而不是应用及程序.<br><br>反射机制中的最重要的部分是允许你检查类的结构.用到的API有:<br><br>java.lang.reflect.Field 返回字段.<br><br>java.reflect.Method 返回方法.<br><br>java.lang.reflect.Constructor 返回参数.<br><br>方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案.<br><br><br><br>23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface.<br><br><br>24.接口不是一个类,而是对符合接口要求的类的一套规范.若实现一个接口需要2个步骤:<br><br>1.声明类需要实现的指定接口.<br><br>2.提供接口中的所有方法的定义.<br><br>声明一个类实现一个接口需要使用implements 关键字class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口.<br><br><br>25.一个类只有一个超类,但一个类能实现多个接口.Java中的一个重要接口Cloneable<br><br><br>26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法.例:ActionListener 接口监听.<br><br>类似的API有:java.swing.JOptionPane<br><br>java.swing.Timer<br><br>java.awt.Tookit<br><br><br>27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它.<br><br><br>28.内部类:一个内部类的定义是定义在另一个内部的类<br><br>原因是:1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据<br><br>2.对于同一个包中的其他类来说,内部类能够隐藏起来.<br><br>3.匿名内部类可以很方便的定义回调.<br><br>4.使用内部类可以非常方便的编写事件驱动程序.<br><br>29.代理类(proxy):1.指定接口要求所有代码 2.object类定义的所有的方法(toString equals)<br><br>30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于Unicode编码中的字符,布尔型.</font><br>
<center></center>
<script type=text/javascript><!--
google_ad_client = "pub-8980998233372889";
/* 728x15, 创建于 08-4-20 */
google_ad_slot = "9633098788";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript>
</script>
<script> window.google_render_ad(); </script>
<img src ="http://www.cnitblog.com/ihack520/aggbug/49353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-09-22 02:16 <a href="http://www.cnitblog.com/ihack520/archive/2008/09/22/49353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些IT开发工程师的悲哀 </title><link>http://www.cnitblog.com/ihack520/archive/2008/09/22/49352.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Sun, 21 Sep 2008 18:13:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/09/22/49352.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/49352.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/09/22/49352.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/49352.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/49352.html</trackback:ping><description><![CDATA[文章来源：<a href="http://www.yiludu.cn/"><font color=#000080>一路读</font></a>&nbsp; <a href="http://www.yiludu.cn/"><font color=#000080>http://www.yiludu.cn</font></a><br>本文所指的开发工程师，仅指程序开发人员和以数字电路开发为主的电子工程师。当你选择计算机或者电子、自控等专业进入大学时，你本来还是有机会从事其它行业的，可你毕业时执迷不悟，仍然选择了开发做为你的职业，真是自做孽不可活。不过，欢迎你和我一样加入这个被其它人认为是风光无限的&#8220;白领&#8221;吧。如果你不是特别的与人世隔绝，我想你一定看过金老先生的名著《笑傲江湖》吧，里面有一门十分奇特的武功叫做"辟邪剑法"，你看这个小说第一次看到这种功夫的练法时，我想你当时一定笑歪了牙&#8220;呵呵，真好玩！&#8221;，可是现在我很痛心的告诉你：你选择的开发工作就是你人生路上的"辟邪剑法"，而你现在已经练了，并且无法再回头。 <br>　　 <br>　　相对同时刚出校门同学从事其它行业而言优厚的薪水，以及不断学习更新的专业知识不仅仅让你感到生活的充实，更满足了你那不让外人知的虚荣心。在刚出校门的几年中，你经常回头看看被你落在后面的同学们，在内心怜悯他们的同时，你也会对自已天天加班的努力工作感到心里平衡：&#8220;有付出才会有回报&#8221;这句话在那几年中你说的最多，不管是对自已的朋友们还是自已的爱人。第二句最常说的话是对公司的领导：&#8220;不行我就走人！&#8221;，实际上你也真的走过几回。对了，在这几年中，因为你的经济条件不错，你开始买房、开始谈恋爱、结婚、开始有了自已的小孩。有时候你会对自已说再过两年就去买车。当然其中可能有许多大件是需要分期付款的，但你对前途充满了信心，你确信认为这种日子会永远的持续下去，即使不是变得更好的话。 <br>　　 <br>　　日子总是在这种平淡中一天天的过去，就在那么不经意间，你突然发现自已已经快30岁了，或者已经30了，莫名的，你心里会漫延着一种说不清楚的不安情绪，你好像觉得前途并非像前几年那样变得越来越好，你也忽然发现你以前所瞧不起的同学里好像已经有不少开着车的了，也有几个人住着比你还大的房子，好像房款还是一次付清的，你突然明白你现在的生活比起你的同学来最多是中游偏上了。工作中最让你感到心里不舒服的是，你越来越不敢对你的领导说不了，即使比你来的晚的同事升职或提薪，你也只是在私下与朋友们一起喝酒时才敢发发牢骚，在头的面前你的声间越来越小、笑脸是越来越温柔。 <br>　　 <br>　　你终于开始迷茫&#8220;再过几年我会是在干什么呢？&#8221;，这句话常常出现在你的心里。计算机开发工作，是一种以年轻为资本的工作，说句通俗点的话是&#8220;吃青春饭的&#8221;，嗯，这句话好像在一种特别的行业也听到过。其标志就是一：工作的时间性非常强，一个开发项目被定的时限通常是很紧张的，更有甚者，有些号称开发管理的书里面还非常卑鄙的号召将一个项目切成多个小片，每个小片都定一个叫&#8220;里程碑&#8221;的东东来严格跟踪开发进度，加班加点在其它行业是需要加班工资的，而在开发行业，加班工资好像还没见到几个公司发过，是啊，反正有时间限制着，你干不完我再找你算账.所以开发工作通常有着其它工作所没有的精神上的压力。 <br>　　 <br>　　一旦一个人步入而立之年，因为家庭和孩子的负担，加上精力上面的衰退，加班工作时间变得越来越少，这点让很多老板们感到：这些人已经老了，不好用了。指示人事部门：&#8220;以后招开发人员限制在30岁以下！&#8221;，相对而言硬件开发会年龄方面限制会稍好一点点，但也是五十步笑百步。还有一个很重要的一点就是：计算机这个烂东东实在是进步的太快了，前两年买的顶级配置电脑，现在怎么看怎么像废品，这还是小事，更可气的是好像每天都需要学习新的知识，刚毕业时只会书本上的PASCAL，学会了用腐蚀的办法来做电路板，一上班就开始学习TURBOC和TANGER2.0，刚刚学会，还没来得及高兴，马上开始学Borland &nbsp; C＋＋和Protel3.0，好不容易学会了，却发现需要学习VC和Protel98了。单片机也是啊：Z80的指令背的很熟，工作中没来得及用就要学8031，好好学吧，本来想着这辈子就吃它了，又发现又出来什么PIC、DSP、CPLD、FPGA、ARM等等....这还不包括中间要学一大堆74系列、4000系列、XX系列...IC卡居然里面还有CPU卡..如果学习的知识里每个字都能变成一分钱，我想所有的开发工程师都是腰缠万贯的富翁。 <br>　　 <br>　　一眼看去，这种日子好像见不到头，年轻时乐此不彼，但现在你一定对自已能坚持到什么时候感到怀疑了。我们都玩过像仙剑奇侠传这样的RPG游戏，刚开始时你只是一个一名不文的少年，随着你去打怪物、捡宝贝、学秘芨，最后终于有一天你会变成一个大英雄！那么你在实际生活中过得比那些小侠们还辛苦，为什么成不了一个生活中的大侠呢？呵呵，原因在这里：因为开发工作是邪门功夫，它虽然可以让你速成的变成小资，但它最大的特点是经验不积累！日新月异的知识更新，让你总是感到自已在退步，你就像在RPG中的主人公，开始时就给了你一把好剑和好盔甲，而且让你的级别很高，但让你的经验不累积，虽然刚开始打小怪物时你觉得自已很爽，但越到后来，你会发现你会死的很惨！比较一下你与其它非开发行业的同学你就可以知道了，例如和你学医的同学比起来。套用岳不群他老人家说华山剑宗和气宗的区别那段话：前十年你比你那些学医的同学收入和地位要好的多，但十年以后你和他基本上各方面都会持平，而二十年以后你的各方面远远不能与你学医的同学相提并论！嗯，你已经开始不笑辟邪剑法了吧。 <br>　　 <br>　　&#8220;敢问路在何方？路在脚下...&#8221;，不过猴兄和八戒兄这么认为是可以的，你呢？总结了许多开发朋友在30岁以后的生活之路，让我们一起看看开发人员&#8220;路在何方？&#8221;那么开发人员在30岁以后都干些什么呢？ <br>　　 <br>　　其路一：继续做你这个很有&#8220;前途&#8221;的职业吧！ <br>　　偶掰着脚指头仔细数了数，发现还真的有很多朋友在30岁以后还在从事开发工作，我这里说的从事，是指你还需要天天在电脑边上编程序和画电路板，与你手下是否有几个小兵无关，也与你是否头上顶着什么项目经理、主任工程师的帽子无关，只要你还需要亲自开发，你就属于这一类。其中有个年龄最大的朋友是63年的，从事医疗仪器的开发工作，35岁左右还在从事软硬件开发工作的仍有一大堆，分析这些仍然从事开发的朋友，基本上都有以下特点： <br>　　1痴迷工作或者痴迷电脑，晚上八点到十二点的这段时间，基本上是在电脑桌或工作台前渡过的。 <br>　　2不喜欢与人交住，朋友很少，常联系的人不超过五个。 <br>　　3与朋友交往时谈工作多，但一般不主动谈钱。 <br>　　4体型偏胖或偏廋，不在正常区间。 <br>　　5无未来计划，对五年后自已生活怎么样、从事什么工作说不清楚。 <br>　　6俭省，从不乱花钱。 <br>　　即使你是还不到30岁的开发人员，你也可以看看自己对以上几条是否符合，是否会在30岁后还从事开发职业，四条疑似，五条以上基本确诊你也是这类型的人。这些朋友们通常报着过一天是一天的态度生活，到了这个年龄，也不敢再轻易的换工作了，年轻时的锐气慢慢的也消退了。唯一不变的希望是有一天从天上掉下来一大堆钱把自己砸伤。说实在话因为他们的性格所限，基本上可以确定他们以后不可能在职场上获得更好的发展，当个小头头，带几个人开发已经是他们发展的顶点。至于以后的人生之路，不仅他们自己迷茫，可能上帝也正在头痛。不过像这类朋友，偶很奇怪的发现：他们的小孩都是儿子！不知是偶然还是有什么其它说法。 <br>　　简单建议：要改变命运，先改变性格：坚持半年晚上不从事工作、游戏及电视，用此时间与人交往，你的人生会有改变。 <br>　　 <br>　　其路二：转行从事技术支持、行政或生产等工作 <br>　　还有一些朋友，从事了几年的开发工作，因为自已并非特别的爱好，或者领导上面的强制工作安排，他们转到了技术支持、服务或行政等工作，至少当时从表面上看起来，他们的薪水较开发要少一些，但真正的统计这些人，发现他们之中有半数的人获得了更好的发展，升职为服务部经理或行政经理等职，最历害的一个朋友已升职为总经理助理，进入高层。这类朋友当时转行通常并非自已志愿，属被逼无奈或者其它原因，但显然，拥有专业知识技术的他们显然在非技术部门中鹤立鸡群，遇到什么事情他们均可从专业的角度提出建言，久而久之，他们获得更多的升职和加薪机会也就不足为奇。因为不从事开发，所以经验开始积累，这类的职业通常会给你一个很安定的感觉，你到30多岁后会发现这类职业反而比开发工作更容易获得新的工作机会。 <br>　　简单建议：你如果确定在开发部无法获得很好的发展机会，不妨转到其它几个部门试试，换个活法，钱少点就少点吧，机会多。 <br>　　 <br>　　其路三：开发管理 <br>　　如果你现在已经是总工或开发部经理，或者你眼看就有机会被提升为这类职务，那么恭喜你，你走的是从&#8220;弼马温&#8221;到&#8220;斗战胜佛&#8221;这条金光大路，你不仅拥有很高的专业技能，而且很显然，你也有着很强的人际交往能力，你这类人根本不需要对未来有着任何的担心，你在即使一无所有的时候也很容易白手起家。你这种人算是练辟邪剑法练成了仙，嗯，我无话可说。你是不是这类人也很容易区别，就像围棋二十岁不称国手终身无望一样，你应该在工作三、四年以后，也就是说二十七岁左右就会发现自已工作中指手划脚的时间比亲自开发的时间要多了，而且大多数这类人在这个年龄手下应该有&#8220;兵&#8221;了，相反的，如果你快30岁了还天天埋头于电脑前编程序和画板子，或者30多岁了你还没升到部门经理（虽然你总是觉得自已很有希望），基本上可以确定你不是这类人。好了，如果你确定你是这类人，那么你唯一的想法就是尽快爬上中层和高层，因为有时候人生偶然性太大，不占住坑的萝卜很有可能被人拔出来！ <br>　　简单建议：天天去你的老板家里面拖地和擦桌子！ <br>　　 <br>　　其路四：出国或考研 <br>　　有两个搞开发后出国的朋友，其中一个甚至打工打到了一个小公司总工的位置，数据库和软件方面水平巨牛，但仍感觉心里不踏实，于是将自己工作多年的钱忍痛掏出来，出国费加上机票大概将自已辛苦所攒的银子花完，然后又借了一些钱，在02年身上揣着一万美元跑去了加拿大，在加拿大不停的重复找工作，换工作，然后再找工作的循环，找的工作基本上与计算机无关，不过工资总是在1500加元左右，呵呵，折成人民币与他在国内打工拿的基本上差不多，不过租个地下室就花了300加元，然后吃吃喝喝，再买个电脑上上网这类的，基本每月平均还要倒贴一点。前段时间给我的邮件里说，现在身上花的差不多只有5、6000美元了，准备开个小公司，看看能不能往国内倒腾点东东，做最后一搏。另外一个朋友去澳州，时间稍早一些，先是大概摘了一年多的葡萄，后来总算找了个技术工作，每天的工作是画机械图纸，收入还算不错将近3000澳元，买了个旧车，也算是过上了资本主义生活。不过前年回来一趟，唯一的感叹就是：在国外拿2000美元的生活，绝对不如在国内拿5000人民币的生活舒服。 <br>　　也有两个考研的朋友，不过其中一个严格的说不是做开发的出身，偏重于市场方面的工作性质，不过我的朋友里面考研的不多，只好凑两个人说说，一个考研后在北京找了个工作，每个月5、6000元钱，但还是做开发，生活仍然与没考研之前没有任何的改变，前途仍然没见到什么大亮的光，还是搞不清楚以后再干些什么，标准的过一天算一天了。另外一个考研后在大学里面找了个工作，工资虽然比他原来打工少了不少，但毕竟终身有靠，稳定了下来，也算修成了正果，这位哥们心情一放松下来，也开始有时间琢磨着业余时间自已做点什么，好像现在慢慢的也开始有了点眉目。 <br>　　简单建议：这两条路，对开发人员来说都不算是很好，出国十年前是好事，现在难说，考研能成功转行的概率恐怕也不是很大，多半仍然去搞开发，只不过研究生可以多干几年罢了。 <br>　　 <br>　　 <br>　　其路五：转行到市场 <br>　　绞尽脑汁的想想，我所知道的人之中只有两个开发人员去了市场，这两个人都不能说是朋友，认识而已。他们都是主动要求去了市场，结果是这两个人均在市场都是干到一年左右，然后都自已开公司了。呵呵，很奇怪，极高的转行成功率！不过仔细想想，我对这两个人的思路佩服的五体投地。能下决心仍掉每月5、6000元的开发职位，从事一个自已并不熟悉的岗位，每月拿个2000多元＋提成，但提成那是说不清楚的事情，这个决定，只能让人感觉到他们对自已前途清晰的把握和老谋深算的心机。而且他们不去服务不去生产，挖空心思说服领导去市场（市场部门与开发部门通常是一个公司的核心部门，进入其实并不容易），可以说是有着长远的考虑的。有技术了，再与客户交成朋友，马上就会产生很大的机遇应该是正常的事情。 <br>　　有实力，有心机，也有着很强的决心力，这种人恐怕早在大学毕业时或更早的时候就已经决定了自已的人生之路，他们的每一步路在若干年前早就计划周全，现在看起来：学会技术－＞进入市场－＞寻找商机－＞开公司，一条多么清楚的人生之路。但就像我们上小学中学时，所有人都知道上大学是我们最清楚的人生路一样，最后只有少数人才能真正达到目标（当然，现在扩招的历害是另外一回事，我是说我们那个时候，也就是：&#8220;很久很久以前，当我像你那么大的时候&#8221;）。 <br>　　简单建议：你若是这类人，我的建议是：...嗯?....那个你.你，你别走啊，我还有个事想请你赞助一下啊..... <br>　　 <br>　　 <br>　　其路六：开公司自已干 <br>　　呵呵，看到这一条，发现你的眼睛已经圆了，你肯定千百次的想过这个事情吧，咳咳，其实我从事开发的时候也是天天梦想着这种事情。总想着过两年找个机会就自已干，这个梦想一年又一年的折磨着你也给着你希望。看看吧，开发后来开公司的还真的不少，里面有成功的也有很多失败的，通常开公司都是几个人合伙开始的，有做技术的，有做市场的，几个人一拍即合、狼狈为奸，共同策划了这一个大活动。一般说来能让这几个人下决心走出这一步，产品肯定是先进的，甚至是国内独一无二的，市场也是很大的，负责市场的那个哥们通常会拍着胸保证可以卖出去，并悄悄地告诉你他在某主管领导是他小舅子的同学的二叔，肯定没问题。于是你们几个人找地点、注册执照、买了几个破桌子，再攒了两台电脑，每个人又凑了几万银子，公司开张了！ <br>　　产品很快出来了，市场的哥们也不负重望，有几个客户表示要试用了，一切看起来都是如此的正常，&#8220;.......你坐在老板桌前，不停的有人来汇报工作或者找你签字...人进人出中...你又想起公司再穷也不能只有一把椅子的故事.....&#8221;你在梦中笑出声来。是如此的顺利，你们很快就有单子了，很快的单子让你们凑的那点钱不够了，你们很高兴的每个人又增加了投入，拿出钱时你眼泪汪汪的数着钱说：&#8220;这就是我那生蛋的 <br>　　母鸡啊&#8221;。你们的产品确实不错，市场也经营的很好，客户慢慢的多了起来，单子来的时候一笔接着一笔，你每天都处于兴奋之中，唯一美中不足的是好像客户回款总是会拖一些日子，不过客户给你保证说：过几天，过几天就付给你们，因为回款总是在计划外，所以你们为了资金的流畅运行又凑了一些钱，这个时候你有一些心事了，因为你的存款折上面的数字已经快趋向于零了。&#8220;没事，过两个月等回款了一切都OK了，谁干事业不吃点苦呢？&#8221;你这么安慰着自已又投入到工作中去，资金总是在回款和生产经营费用之间走着一个窄窄的小木桥，你的账上总是没有太多的钱，扩大了的公司规模和许多意外情况，使你又一次、二次、三次的与合作者们再次投入了自已的资金，当然，后来的钱你可能已经是借的了..... <br>　　终于有一天，你的会计再一次告诉你，老板啊，账上又没现金了，吃过多次苦头的你终于下决心开始重视资金的运行了，你裁掉了一些不必要的人手，减少了开发的投入，要求市场人员签单的时候必须予付XX%的款，回扣也必须等收过款后再付，同时也开始对产品的生产成本开始进行控制。时间一天一天的过去，因为竟争对手的产品也对你的产品进行了仿造，你的产品慢慢变得不再先进，市场人员开始埋怨公司的合同资金方面规定太严格，不好签单，生产成本的下降通常也导至产品毛病的增多，客户也开始埋怨你的服务人员不能及时进行服务。 <br>　　终于有一天，你重新走进了人才交流中心，以前你是来招人的，现在你拿着自已的简历开始寻找一个工作......公司的成功与否，与产品有关，与市场有关，但更重要的是与资金有关，产品与市场都可以通过资金来弥补，而却没有任何东西可以代替资金，凡是倒下的公司，99%与资金链的断裂有关。在你决定要开公司以前，先估计一下你公司支持一年所需要的资金数额，包括人工费，生产，场地，广告宣传、市场费用、甚至电、水费等等等等，把你所想到的一切加在一起，得出的值就是..慢..如果你没有实际的开过公司的经验，你需要将此数字乘3，然后就是你开公司一年最少需要的费用，呵呵，公司的实际运营所需要的钱是你想像的3倍以上，你要是不信我也没办法。 <br>　　简单建议：开公司前最重要的是先确立你后续的资金来源！也就是说钱不够了怎么办？－－－因为你投入的钱肯定会不够的。 <br>　　 <br>　　其路七:第二职业 <br>　　这类的朋友有不少,他们没有脱离开发工作,但是在业余时间又不停的接项目或者在卖产品,在单位里面他们显得并不出众,比起其它人来说他们属于最不愿意加班的一类.为此他们白天通常工作很勤奋.这类人也许不一定可以挣很多钱,但平均下来他们一年之中通常都可以比同事们多挣个几万元.有时候比上班拿得还多.但令人疑惑的是,这类人在生活中更加注重稳定,基本上没见到他们跳过蹧,即使私下里面已经开了个小公司,他们通常也不会辞职. <br>　　你的旁边有没有这类人呢?分辨他们很容易:--电话很多,而且更愿意来电话时离开办公室找个没人的旮旯通话.神秘兮兮给人一种"这家伙是不是有二奶啊?"的感觉的人，通常是这类人。这类人是女性最佳的选择对象：很顾家，不象那些富人容易花心，而比起一般人来说，他们收入相对要高得多。但总结了一下几位这类的开发朋友：也得出了一个令人沮丧的结论：这种人通常个子不高，体形类似桶状..... <br>　　简单建议：这好像是开发人员最佳的出路了，但比较丰厚的收入通常让这类人不愿意去冒风险....到现在为止我所认识的这类人还没有一个真正算是成功的。 <br>　　 <br>　　好了，虽然偶的经历远远说不上丰富，也没有什么成功之处可以自满的，但或许因为比其它朋友痴长了几岁，见过的人可能会稍多一些，所以斗胆写出了以上的一些文字，让您掉牙了。下面是偶走过开发这条路上总结出来的一点心得，你可以不看，但看了就千万别把嘴咧的太大： <br>　　 <br>　　一、不管是给别人打工还是自已干，都要全心全意的工作，因为你所做的任何一点工作都会让自已的人生多一点筹码，这一点最最重要!这样的例子我至少可以举出两起，优秀的开发人员被其它新公司挖走，并给一定的股份，成为新公司的股东的例子。当时与这样的开发人员一个部门同时工作或更早工作的有许多人，他们平时经常偷点懒，能少干点工作就少干点，有时候还笑话那个平时努力工作的人傻，几年过去了，究竟谁比谁傻？ <br>　　 <br>　　二、多与市场人员交朋友，你接触他们时可能总会觉得他们知识比你少，甚至素质比你低，可能比你还有点黄。但实际上他们比你更懂这个社会！参加到他们这个圈子中去，和他们一起赌赌钱、一起聊聊天、一起洗洗桑拿、一起.....你会通过他们接触到另外一个世界。 <br>　　 <br>　　在网上或其它地方，如果有机会参与到除本职工作外的一些项目或产品的开发中（包括你的朋友拉你去做点小生意之类的非开发性质的工作），那怕是帮忙的性质，也要积极介入，至少你会交到很多的朋友，这样你的人生会多出很多的机会
<img src ="http://www.cnitblog.com/ihack520/aggbug/49352.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-09-22 02:13 <a href="http://www.cnitblog.com/ihack520/archive/2008/09/22/49352.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初用Google Gears 有感</title><link>http://www.cnitblog.com/ihack520/archive/2008/09/21/49327.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Sat, 20 Sep 2008 17:12:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/09/21/49327.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/49327.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/09/21/49327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/49327.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/49327.html</trackback:ping><description><![CDATA[<p>文章来源：<a href="http://www.yiludu.cn/"><font color=#000000><u>一路读</u></font></a> <a href="http://www.yiludu.cn/"><font color=#000000><u>http://www.yiludu.cn/</u></font></a> </p>
<p>做了一些年的web开发，见到了一些web技术的革新和进步.作为从事b/s开发的人来说，是很欣慰的。<br>以前出现了一种ajax技术，应该是很有革新意义的，<br>Ajax应用程序的优势在于：<br>　　1. 通过异步模式，提升了用户体验<br>　　2. 优化了浏览器和服务器之间的传输，减少不必要的数据往返，减少了带宽占用<br>　　3. Ajax引擎在客户端运行，承担了一部分本来由服务器承担的工作，从而减少了大用户量下的服务器负载。<br><br>今天我说的google gears,我想也是一个技术革新.<br><br>最近的项目遇到一个问题，使用cdma网络，对某一个数据的输入需要实现google那样输入快速连动显示的功能，<br>而数据量又有点大，要快速连动，几乎不可能.<br><br>所以只能考虑一些新的技术，这就是google gears了。将数据库本地化.<br>http://code.google.com/apis/gears/sample.html<br>这里有简单详细的例子，试用的感觉的确是不错的。<br><br>他含有3个重要的模块。<br>1，Database module就是本地数据，可以使用标准的sql语法操作，比如建表查询删除等等。<br>这样很多常用数据我们都可以本地化存储，不用每次都从server端下载，<br>提升了用户体验,减少不必要的数据往返.<br>特别是对网络环境不好的。如果用户在操作的时候断网络，就可以把输入的数据现保存到本地库，<br>后期网络正常后在同步。<br><br>2，LocalServer module就是本地服务器，大家都知道b/s的文件都是存放在server端的，<br>不存在什么客户端，如果网络出了什么问题，那么系统也就不能访问了,<br>LocalServer module就是为让断网的时候依然可以使用b/s系统，他将server端的一些文件存储到本地.<br>比如我们要登记一个资料，以前没有b/s的系统断网了肯定不行，录入的界面打不开，打开了也无法录入提交到服务器.<br>用了LocalServer module,我们就可以在断网的情况下打开录入界面，然后录入，然后使用Database module存储，<br>网络好了的时候在同步，我们也不用总是担心数据没及时录入以免以后就忘记录入了。<br>(这一点我们暂时没有使用，和界面的设计有些关系，对我们的系统不太容易应用，有些界面暂时没办法本地化)<br><br>3,WorkerPool module.工作者池，这是一个最重要的模块，用过pool技术的都知道，<br>就是pool中的各个主体独自工作，这里的pool是实现了让多个js在后台异步运行互不干涉.<br>这样用户在使用系统的时候，是感受不到有js在运行的，以前js运行的时候，界面都是不可操作的，<br>必须要等js运行完了，才能做其他操作，使用WorkerPool module就可以解决这个问题，<br>比如在我们的系统中，要把服务器的数据库（某个表）本地化，大概需要1个小时，<br>如果使用传统的js来操作，界面就要运行一个小时(可能没有响应)，ie基本都是白屏.<br>这显然是行不通的了，所有我们只能用WorkerPool module,在用户没有感觉的情况下，<br>在后台通过ajax分段获取到服务器的数据，然后启动WorkerPool module写入，效果感觉非常的不错。<br><br><br>以上就是自己试用(也算是正式的用了)后的一点感受，和大家一起分享。<br><br>web开发，真的是其乐无穷。感谢哪些技术牛人。</p>
<img src ="http://www.cnitblog.com/ihack520/aggbug/49327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-09-21 01:12 <a href="http://www.cnitblog.com/ihack520/archive/2008/09/21/49327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>真正技术高手是如何炼成的? </title><link>http://www.cnitblog.com/ihack520/archive/2008/09/21/49326.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Sat, 20 Sep 2008 17:08:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/09/21/49326.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/49326.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/09/21/49326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/49326.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/49326.html</trackback:ping><description><![CDATA[<p>在由CSDN和《程序员》杂志联合举办的第三届中国软件技术英雄会(上海站)上，由主持人CSDN首席分析师孟岩，上海群硕大中华区软件开发总监邵荣，阿里软件技术总监叶伟，盛大游戏首席技术官朱继盛， 趋势科技(中国)有限公司技术总监蔡昇钦，巨人网络集团首席技术官CTO宋仕良，淘宝网首席架构师王文彬共同参与的CTO论坛上，就有关CTO是否必须为技术高手，从程序员到技术高手成长之路，知名互联网公司如何招聘人才等问题与参会者进行了深入的交流。</p>
<p>精彩观点：<br>我觉得CTO并不必须是技术大拿，大家今天可以看到，从CTO的定义来看，CTO的角色是用技术服务公司的商业模式。从这个定义，只要你对技术有相当性的掌握，其实你可以不必从底层做起。——王文彬</p>
<p>CTO很重要的目标是在于它能够整合公司的商业能力，成为一个CTO的重点，是你对公司核心技术的了解度跟掌握度，还有公司主要的核心业务的掌握度。——蔡昇钦</p>
<p>技术高手和CTO这两个角色，打个比方，像一个乐队里面，技术高手像小提琴演奏者，或者是一个钢琴演奏者，但是CTO相当于一个乐队的总指挥，乐队的指挥需要有对音乐的整体感觉，这方面肯定更拿手。——朱继盛</p>
<p>CTO还是应该是一个内功高手，还是要有点内功，这说明什么，你在技术方面，应该有技术的洞察力，要看到商业和技术的结合。——叶伟</p>
<p>跟技术团队，尤其跟程序员，跟工程师，你要有共同语言，我觉得如果说没有一定技术深度的话，其实很难能够融进整个的团队。——邵荣</p>
<p>如果作为一家创业型的公司，特别是互联网，特别是软件行业，CTO必须是一个技术高手，因为你是一家创业公司，技术平台应该是公司的核心业务，如果CTO不是技术高手，这个公司很难在商业上有大的作为。——宋仕良</p>
<p>程序员或高手容易犯的错误是什么，或者我觉得做得不够的地方，是程序员容易觉得我做的这个东西很好，很牛，我这个东西别人应该喜欢用，由我来推演别人。——邵荣</p>
<p>要成为高手，就像练功一样，你必须能耐得住寂寞，要关在研究室里面，像大家一样，晚上写代码，有时候这种东西不是平常人可以做到的，假如你可以呆过这段期间的话，我相信你练到功成了以后，这些东西你就可以发挥出来了，我想这是成为高手很重要的因素。——王文彬</p>
<p>我建议大家去尝试做产品经理或者系统分析师，架构师很多人误解为纯技术的，其实许多的架构师对商业的分析是非常擅长，对于系统分析师，因为系统分析师是非常清晰地要描绘出商业的目标在什么地方，分解成什么东西，跟技术有关联。——叶伟</p>
<p>首先在于留住人才，我们让工程师知道，工程师他不是低于管理者的，也就是说，你一个经理，他所拿到的整个薪资，不一定要大于他所管理的工程师。——蔡昇钦</p>
<p><br>以下为论坛实录：</p>
<p>主持人：在正式开始之前想先做一个小调查，我想请问一下，在座的六位CTO都是技术管理者，都是技术大拿，你们谁认为成为一个技术管理的高手，或者CTO，成为技术高手是必经之路，想成为一个CTO必须先成为一个技术高手吗？</p>
<p>淘宝网首席架构师王文彬：先说明一下，我是假CTO，我的职位其实是做技术，在淘宝做品牌架构，说实在的，我有一个技术背景，但我觉得CTO并不必须是技术大拿，大家今天可以看到，从CTO的定义来看，CTO的角色是用技术服务公司的商业模式。从这个定义，只要你对技术有相当性的掌握，其实你可以不必从底层做起，我们今天讲的是CTO是不是一定要从底层的技术人员干起，假如从这个角度，我觉得做CTO不一定经过必须这个角色，当然现在业界很多CTO，我想在座很多CTO是从技术出身，这是现实，但是理论上我不觉得是一定的事实。</p>
<p>趋势科技技术总监蔡昇钦：我认为CTO有很重要的目标是在于它能够整合公司的商业能力，成为一个CTO的重点，是你对公司核心技术的了解度跟掌握度，还有公司主要的核心业务的掌握度，所以不一定说非要从底层干起，当然CTO也可以是掌握技术最高的那个人，但是这不是一个唯一的一个对应关系。</p>
<p>盛大游戏首席技术官朱继盛：技术高手和CTO这两个角色，打个比方，像一个乐队里面，技术高手像小提琴演奏者，或者是一个钢琴演奏者，但是CTO相当于一个乐队的总指挥，乐队的指挥需要有对音乐的整体感觉，这方面肯定更拿手，但是你说他，说到他必须是一个小提琴高手，或者必须是一个钢琴高手，这不一定，也说明作为一个CTO的话，不一定是从一个技术高手成长过来的，作为一个CTO，他最主要的职能在于整体的协调，对于音乐整体的把握，或者技术整体的把握上。</p>
<p>阿里软件技术总监叶伟：这个问题很难回答，是不是一定要成为一个高手，我曾经发现自己技术上好像也有点高，但是很快发现自己不高了，因为高手太多，刚才盛大的朱总也谈到了，你不可能样样都精通，我本来想打这个比喻也差不多，不过总的感觉，还是应该是一个内功高手，还是要有点内功，这说明什么，你在技术方面，应该有技术的洞察力，要看到商业和技术的结合。我还得补充一点，我们就从CTO的词上来说，最后一个词是officer，officer什么意思，实际上是个管理者，你真正的本事是把一个团队凝聚在一起，并且服务于商业，如果你没有那方面的能力，你今天编程越厉害，或者某个方面精通的，根本不能把你放到CTO这个位置上面，越放到上面越危害，你带着一帮人不知道往哪方面奔，你纯粹只是兴趣，无法为给公司带来商业价值，大家都知道公司其实是要产生这个价值。</p>
<p>群硕大中华区软件开发总监邵荣：我更倾向于必须成为技术高手才能成为CTO。刚刚几位的观点我是认同的，但是还有一些不同的想法。第一个就是自己大言不惭来讲，我自己是走技术这条路过来的，然后在这个过程里面，我自我感觉，就是说你跟技术团队，尤其跟程序员，跟工程师，你要有共同语言，我觉得如果说没有一定技术深度的话，其实很难能够融进整个的团队，尤其，当这个团队，比如说从很小规模，你很可能在前面做很高指点的话，能够落地，给他们一些帮助，所以说在整个我觉得成为一个技术主管的过程当中，如果说有相关的比较深的这样一个经验的话，我想应该会有一定的帮助，整个到后面真正成为CTO，或者成为技术的主管的时候，那个时候是不是技术还是跟原来一样重要，不是，它只是属于在整个的过程当中，其中一环吧。</p>
<p>巨人网络集团首席技术官宋仕良：刚才几位的观点我是同意的，我之所以更倾向于必须成为技术高手才能成为CTO，其实我自己也是一个从技术的底层干起来，我也是写程序的，我为什么觉得这个问题可能要分两个部分来看，如果作为一家创业型的公司，特别是互联网，特别是软件行业，CTO必须是一个技术高手，因为你是一家创业公司，你的公司要创业，技术平台应该是公司的核心业务，如果CTO不是技术高手，我觉得这个公司可能是很难在商业上有大的作为，如果像一些传统的公司，或者做金融那些公司，它来有一个做IT的部门，就不一定是一个技术高手，更重要的是偏重管理，或者是对业务流程的熟练，并不一定是对技术要专注。</p>
<p>主持人：不管怎么说，台上的六位都是我们心目中公认的技术高手，我想问其中几位，台下有很多人，有的人已经是高手了，有的人还在成为高手的路上，我想你们跟大家分享一下，如何才能成为一名技术高手，成为一个技术高手一个最重要的经验是什么，我想邵荣首先与大家分享一下你的观点。</p>
<p>邵荣：先简单说说我自己的一个成长经历，其实我在95年、96年左右的时候，我在操作系统上玩java，我的导师要求我在一个月之内掌握当时的内容，其实就在那个时间开始做很多事，凭着狂热，后面我在DOS里面写自己的Windows的驱动，去驱动整个的鼠标、键盘，再到后面，帮那个研究所做过一个，大家不知道南极星，我自己做了一个，帮香港的一个公司做了一个斯托尼方。我那个时候真的有点不知天高地厚，就想走出苏州，我以前在苏州大学里面，自己也做了老师，还教软件工程，教C++，当时我走出苏州的时候，我讲了一句话，在整个苏州可能没有人在C++上超过我，最多只能跟我沟通交流，过了多少年才知道自己错得多厉害，当时自己的自信心很膨胀，我那时候基本上把白天黑夜倒过来干，基本上是每天吃完早饭回去睡觉，然后别人吃中饭，我吃早饭，连续很多年，大概是最起码4、5年时间一直这么来干活和工作的。但事实上随着时间推移，号称自己觉得还可以，慢慢开始有不同的理解，当中有一个关于互联网，我不知道有多少人知道&#8220;白云黄鹤&#8221;这个BBS，这是在教育网里面仅次于清华的，我当过两年版主，通过在里面解决问题，带来很多思索，之后我又开始疯狂看软件工程，后面又开始看管理，在市面上的管理方面的书我都看过，事实上一步一步走过来，到今天我思索很多东西，很多时候在里面思索一些商业模式，思考整个团队的建设，思考很多东西三年之后会发生什么事情，客户那边是什么东西，那这么多年里面，我觉得有一个词，就是我影响很深刻的，可能对大家有些启发，叫EMPATHY，这个词的中文含义叫移神，那么我把它去更形象化来讲，就是将心比心，我觉得这么多年过来了，从技术高手转到现在为止，可能很多时间是负责技术的方向，甚至于是整个业务方向，从原来的执行者变到现在的一个布局者，我觉得很多很多时候，EMPATHY这个词给我自己很大的一个促进或启迪吧，程序员或高手容易犯的错误是什么，或者我觉得做得不够的地方，我做的这个东西很好，很牛，我这个东西别人应该喜欢用，由我来推演别人，EMPATHY这个东西，我做这个东西首先站到别人的角度看，我想要带团队，我会站到团队角度看这个问题，你必须在很早的时候预估到很多部分，我觉得很多程序员应该了解，但是最后没有做的事情是尝试性的一些东西，所以随着时间推移，我觉得做真正的技术高手，或者想成为技术高手，我觉得应该往一些更软性的东西想，讲句实话，我往管理方向做的时候，看了很多哲学和心理学的书，这些东西对拟人生有非常多的促进，不要走太多刚硬的路。</p>
<p>主持人：邵总很性急，一下把我后面要问的问题全都回答了。我们接着往下问问叶总，我知道您的技术非常好，思路也很活跃，所以您走上技术这条路，但是我有一个问题是，您后来为什么没有走上创业的路线，您觉得怎么评价一个技术人员的价值，跟着人干也算成功，还是我非要自己创业呢？</p>
<p>叶伟：这个问题相信很多人都面临着，不管你曾经或者将来，你最终选择了什么，你有可能选择了去创业，也可能这时候没有想创业，我个人认为呢，有几个方面，一个是来自于客观上，比如说跟人的性格有关系，有些人可能性格上并不善于冒风险，大家都知道创业是非常冒风险的。第二个，你的知识结构能力方面可能有局限性，你创业，所有的责任都是你在承担，你要考虑是否能得到成功，你会考察你的特长在什么地方，从性格方面说，可能有的人说我希望去宁为鸡头，不为牛尾。我另外有一个观点，这也是我自己的，可能我没有去创业的很重要的想法，我真正想创造社会价值，这个价值要摆在舞台上，这个舞台如果适合你发展，而且它也很大，而且我们大家都知道互联网可以把全世界都联合起来，你有没有智慧，你跟着英明的道路走，这是你可以考虑的。说实在的，我自己的经历，我开始的时候，没有进外企，为什么呢，我读书的时候去打工，所以我在民营企业，很快做大了，那时候我做CTO，管理几十个人，后来我觉得这个行业比较小，我做ERP，我也不再做CTO了，ERP大家知道会影响很多的企业，OK，我去做这个东西，我进了金蝶，在行业里比较大，然后后来我进了互联网行业，阿里巴巴，因为我们要去做电子商务，电子商务它将影响更大范围的人，所以我觉得这个能够创造更大的社会价值。</p>
<p>主持人：我昨天去巨人访问的时候，巨人的同事向我们说，宋总其实是一个不善于言词的人，但是我想问的问题是，您这样典型的技术人员的个性，怎么样管理一个团队呢。</p>
<p>&nbsp;宋仕良：确实我平时在工作中是不善言词的，因为我应该说比较喜欢做技术工作，我在学校里面天天钻研技术，工作之后也遇到一些朋友，然后朋友都是一些技术高手，因为我工作的时候去一家公司，那家公司的同事也是技术高手，在清华BBS上被评为中国十大黑客之一，那不是贬义的，是软件高手或者技术高手，是做输入法的一个作者，我从他的身上看到一个真正的技术高手，是一个什么样的人，就是说平时不去太追逐一些功名这些东西，回到刚才说的话题，我一个不善言词的人如何把100多人的团队带下来，主要还是靠朋友，可能我会跟我的另一个搭档，他的沟通能力比较强，然后他在从事人际交往，在管理当中会比较擅长一点，我专注于做技术这块，相当于一个黄金组合了。</p>
<p>主持人：王文彬先生是我们淘宝网的首席架构师，我知道您在淘宝网上扮演两种角色，一种是带领团队的角色，另外一种是掌管整个淘宝的架构。您觉得这两种角色，CTO带团队的角色和做架构师是什么关系?您是如何协调好这两者的关系的？</p>
<p>王文彬：的确有点挑战，我老板每次跟我说你架构为什么没有做好，我说我一个人扮演两个角色(笑)，但是这个角色里面是有相关的，比如我下面的同仁，其实大家都关注架构，所以其实我今天在带领淘宝团队做架构的时候，会依赖他们实行部分的架构设计，因为淘宝这么大的网站不是一个人就可以做得出来的，这也需要大家通力合作。这样自然就有一个团队，我想我只是起带头作用，带这个团队成本比较小，这也是为什么我两方面能够兼顾的原因吧。其实我再补充一点，刚刚主持人问怎么去变成技术高手，需要什么调整，我也一直在思考，其实我同意邵总的讲法，今天你做程序，技术上的东西最需要的是热情，这个热情也需要你具备一定的条件，我总结我自己的经验来看，当然我也有一点运气，加入了一流的团队，我想这会刺激一个人潜力的发挥，假如我今天没有遇到这群人，我不觉得我今天的看法能够到这种程度，但是另外一点，我觉得你今天要走技术这条路，有一点，要成为高手，就像练功一样，你必须能耐得住寂寞，要关在研究室里面，像大家一样，晚上写代码，有时候这种东西不是平常人可以做到的，假如你可以呆过这段期间的话，我相信你练到功成了以后，这些东西你就可以发挥出来了，我想这是成为高手很重要的因素。现在在中国，很多公司都在征才，其实大家对技术高手的需求是非常大的，只要把握这几点，相信大家有机会成为一个技术高手。</p>
<p>主持人：叶总好像有什么想补充的？</p>
<p>叶伟：是的，我想补充的是说，管理这个东西，它是你的工具，你的手段，对一个CTO来说，或者对负责技术研发的总监来说，实现这个目标，这是你的责任，管理是你的手段之一，你搭好架构，也是你的手段之一，这些东西你都要去管，没有一项可以落下来。另外一方面，这些责任不见得是跑在最顶上的人才有责任，其实我们的一个技术主管，经理他都会有责任，你说他当经理不要管团队，也要，只是CTO更专注在商业和技术架构之间形成桥梁，他需要把商业的东西分解成技术解决方案，反过来又要用我们的技术驱动创新，形成商业上的一些想法，所以我觉得是说，管理它是一个工具，帮助我们，你不要去忽略它，然后我想补充一下，刚才邵总前面谈的问题，怎么样成为一个CTO，一个是说你要以终为始，你看CTO核心的能力点在什么地方，我们刚才谈到是说，它是在跨越商业和技术，所以你要有这个技术，第二个你要组得起团队来搞攻坚战，这两方面都要，你要练很多东西，我今天讲不完，我提两个主要的，你可以同时去尝试，可能你距离CTO就近一些，第一个是做项目经理，没有丰富的项目经理，你根本就不知道怎么样跟人家合作，怎么样取舍，怎么样排列优先顺序，怎么样控制你的资源，前面我说CTO是个officer，第二个方面，他更多要有站得高看得远的角色，所以我建议大家去尝试做产品经理或者系统分析师，我谈架构师，因为谈架构师很多人误解为纯技术的，许多的架构师对商业的分析是非常擅长，所以我还是谈一谈系统分析师，因为系统分析师是非常清晰地要描绘出商业的目标在什么地方，分解成什么东西，跟技术有关联，我建立大家在这两个角色方面尝试一下。</p>
<p>主持人：谢谢叶总，我们还有一位没发言。我知道趋势科技有一个特别优良的传统，你们在培养人才，以及留住人才这件事情上很有功力，我想了解一下，您怎么在您的技术团队里面培养人才，留住人才，这是一个大家现在很关心的话题。</p>
<p>蔡昇钦：培养人才在趋势科技的做法，就是你给他舞台，然后他就是自己的编剧，他就是自己的导演，用这样的方式来做，我们在培养技术高手的层面上，在公司的框架当中，我们是把人才分成两个方面来看，在技术这条路上走的话，首先在于留住人才，我们让工程师知道，工程师他不是低于管理者的，也就是说在趋势，你一个经理，他所拿到的整个薪资，不一定要大于他所管理的工程师，因为我们必须让公司的团队知道，你喜欢钻研技术，那是因为你的兴趣所在，你喜欢管理团队，你喜欢跟人打交道，那是你的兴趣所在，从一个公司角度看，我们鼓励人基于自己的兴趣做好他的发展，所以从这样的情况了解员工后段的需求，然后安排他去他有可能的位置，很自然而然员工就会跟公司走得很近。像我通常会跟我的团队的人员讲，不管是资深的还是资浅的，我每年会问他们一个问题，你有没有想过你5年后干嘛，我会记得他们2006年跟我讲什么，2007年跟我讲什么，2008年跟我讲什么，他有没有改变他人生的五年规划，三年规划，我们尽可能在公司的范畴满足员工的需要，我想这样子，员工就会成长，就会跟公司走在一起。</p>
<p>主持人：人才的问题其实是现在大家都很关心的，我在主持这个会之前，有人特意给我发消息，建议我多问在座的CTO一些关于怎样招募团队，保留团队的问题，由于我们现在人才培养存在一些问题，导致我们市场上优秀人才的数量有限，就带来保留人才和争夺人才之间的矛盾，我想问一下宋总，我昨天去巨人的时候，听说你们团队相当稳定，你觉得除了巨人的收入高以外，这个当然是很重要的因素，你还有什么诀窍吗？</p>
<p>宋仕良：应该还是说公司重视技术人员，首先你重视人才，你应该是要尊重人才，一个技术人员，他有他自己的想法，而且每个人的想法都是不一样的，你要重视他的想法。&nbsp;&nbsp;&nbsp; </p>
<p>主持人：这种想法跟公司的目标不一致怎么办。</p>
<p>宋仕良：目标不一致的话，那应该是给他做工作，就找他谈心，这个肯定要统一目标的，如果目标不一致，大家肯定走不到一起来，首先你在组建这个团队的时候，在选人方面，应该是物以类聚，我觉得至少应该选大家有兴趣，或者有共同拼搏方向的，或者是大家奋斗的方向是一致的，至少奋斗的目标一致的话，才能够很好地沟通，不会说我提出一个观点，另外一个人会有很大的反驳，首先你在组建团队的时候，每个人虽然达不到完全一致，但是大家的目标是一致，中间团队在磨合的过程中，肯定会出现这样那样的问题，这些问题我想都是可以解决的，因为公司或者通过一些协调，或者是互相的理解，互相的支持。</p>
<p>主持人：朱总您觉得盛大在保持人员不流失方面如何。</p>
<p>朱继盛：我觉得核心的思想只有一点，给相应的人自己的舞台，施展他自己的东西。可以举一些例子，比如说我们盛大集团的副总裁是80后的，他能作为一个上市公司的总裁。再举一个例子，去年盛大有很优秀的员工离职了，这个离职并没有任何人劝他，他自己有这个意愿，要自己创业，盛大有机制，让他自己编一个游戏，他在盛大的周围去工作，这样的例子，实际上在盛大有非常多这样的例子。</p>
<p>主持人：谢谢台上的嘉宾和底下的观众。</p>
<p>嘉宾：谢谢大家。(付江/整理)</p>
<p>&nbsp;</p>
文章来源：<a href="http://www.yiludu.cn/"><u><font color=#000000>一路读</font></u></a> <a href="http://www.yiludu.cn/"><u><font color=#000000>http://www.yiludu.cn/</font></u></a> 
<img src ="http://www.cnitblog.com/ihack520/aggbug/49326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-09-21 01:08 <a href="http://www.cnitblog.com/ihack520/archive/2008/09/21/49326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java多态初体验</title><link>http://www.cnitblog.com/ihack520/archive/2008/09/20/49297.html</link><dc:creator>枫子</dc:creator><author>枫子</author><pubDate>Fri, 19 Sep 2008 21:20:00 GMT</pubDate><guid>http://www.cnitblog.com/ihack520/archive/2008/09/20/49297.html</guid><wfw:comment>http://www.cnitblog.com/ihack520/comments/49297.html</wfw:comment><comments>http://www.cnitblog.com/ihack520/archive/2008/09/20/49297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/ihack520/comments/commentRss/49297.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/ihack520/services/trackbacks/49297.html</trackback:ping><description><![CDATA[<p>Java多态初体验本文面向Java初学者，我们在教材上经常会看到Java是多态的，可是一般的教科书只停留在理论上，很少有实际操作。现在把多态个概念用代码简单描述一下，由于本人水平有限，所以难免有不足之处。 <br>&nbsp;&nbsp;&nbsp; 首先我们有这样几个类，电脑，个人电脑，笔记本电脑。</p>
<p>java 代码<br>class Computer{&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public void turnOn(){&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>}&nbsp;&nbsp; <br>现在有了电脑这个类，那么个人PC，笔记本都是继承他。</p>
<p>java 代码<br>class PC extends Computer{&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public void turnOn(){&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("PC has turn on");&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>}&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; <br>class NB extends Computer{&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public void turnOn(){&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("NB has turn on");&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>}&nbsp;&nbsp; <br>我们看到，每个类都有一个 turnOn()方法，而在父类中这个方法是空的，子类中各自有不同的实现，到这里可能还不太明显。如果有另外一个方法，要接受这些类作为参数，就像这样</p>
<p>java 代码<br>class Test{&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public void go(Computer computer){&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; computer.turnOn();&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>}&nbsp;&nbsp; <br>这个方法接收的是基类参数，当然我们是可以把子类传递给方法的，也应该这么做。</p>
<p>java 代码<br>go(new PC());&nbsp;&nbsp;&nbsp; <br>go(new NB());&nbsp;&nbsp; <br>这样他就会去调用具体子类的turnOn()方法，所以这两次调用的输出是不一样的.如果不用基类作为参数,我们想调用每个子类的turnOn()方法，那么就要些两个方法体一样的go()而接收不同的参数的重载。</p>
<p>java 代码<br>public void go(PC computer){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; computer.turnOn();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; <br>public void go(NB computer){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; computer.turnOn();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; <br>这样些也是正确的，但是这样会产生很多重复代码，而且也不易维护，当然这只是多态中最基本的一个部分，Java多态机制还有很多特性，关于这些建议大家看看 java编程思想(think in java)这本书，里面讲的很详细，这里只是很简单的描述了一下，还望个各位高手不要见笑。<br></p>
<img src ="http://www.cnitblog.com/ihack520/aggbug/49297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/ihack520/" target="_blank">枫子</a> 2008-09-20 05:20 <a href="http://www.cnitblog.com/ihack520/archive/2008/09/20/49297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>