﻿<?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>C++博客-Program ABC</title><link>http://www.cppblog.com/asnaper/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 19:05:02 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 19:05:02 GMT</pubDate><ttl>60</ttl><item><title>http://www.cygnus-software.com/papers/precompiledheaders.html</title><link>http://www.cppblog.com/asnaper/archive/2009/06/24/88464.html</link><dc:creator>asnaper</dc:creator><author>asnaper</author><pubDate>Wed, 24 Jun 2009 14:29:00 GMT</pubDate><guid>http://www.cppblog.com/asnaper/archive/2009/06/24/88464.html</guid><wfw:comment>http://www.cppblog.com/asnaper/comments/88464.html</wfw:comment><comments>http://www.cppblog.com/asnaper/archive/2009/06/24/88464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/asnaper/comments/commentRss/88464.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/asnaper/services/trackbacks/88464.html</trackback:ping><description><![CDATA[ <img src ="http://www.cppblog.com/asnaper/aggbug/88464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/asnaper/" target="_blank">asnaper</a> 2009-06-24 22:29 <a href="http://www.cppblog.com/asnaper/archive/2009/06/24/88464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>讲解菜单的一片文章</title><link>http://www.cppblog.com/asnaper/archive/2009/06/20/88179.html</link><dc:creator>asnaper</dc:creator><author>asnaper</author><pubDate>Sat, 20 Jun 2009 09:04:00 GMT</pubDate><guid>http://www.cppblog.com/asnaper/archive/2009/06/20/88179.html</guid><wfw:comment>http://www.cppblog.com/asnaper/comments/88179.html</wfw:comment><comments>http://www.cppblog.com/asnaper/archive/2009/06/20/88179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/asnaper/comments/commentRss/88179.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/asnaper/services/trackbacks/88179.html</trackback:ping><description><![CDATA[<a href="http://www.codeproject.com/KB/toolbars/chevrons.aspx">http://www.codeproject.com/KB/toolbars/chevrons.aspx</a>
<img src ="http://www.cppblog.com/asnaper/aggbug/88179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/asnaper/" target="_blank">asnaper</a> 2009-06-20 17:04 <a href="http://www.cppblog.com/asnaper/archive/2009/06/20/88179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE 浏览器定制  系列讲座</title><link>http://www.cppblog.com/asnaper/archive/2009/06/15/87709.html</link><dc:creator>asnaper</dc:creator><author>asnaper</author><pubDate>Mon, 15 Jun 2009 05:12:00 GMT</pubDate><guid>http://www.cppblog.com/asnaper/archive/2009/06/15/87709.html</guid><wfw:comment>http://www.cppblog.com/asnaper/comments/87709.html</wfw:comment><comments>http://www.cppblog.com/asnaper/archive/2009/06/15/87709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/asnaper/comments/commentRss/87709.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/asnaper/services/trackbacks/87709.html</trackback:ping><description><![CDATA[<a href="http://blog.csdn.net/CathyEagle/category/41312.aspx">http://blog.csdn.net/CathyEagle/category/41312.aspx</a>
<img src ="http://www.cppblog.com/asnaper/aggbug/87709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/asnaper/" target="_blank">asnaper</a> 2009-06-15 13:12 <a href="http://www.cppblog.com/asnaper/archive/2009/06/15/87709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>5%的程序员开发效率是其他95%程序员的20倍 转自:http://timyang.net/programming/mythical-5/</title><link>http://www.cppblog.com/asnaper/archive/2009/06/02/86511.html</link><dc:creator>asnaper</dc:creator><author>asnaper</author><pubDate>Tue, 02 Jun 2009 01:49:00 GMT</pubDate><guid>http://www.cppblog.com/asnaper/archive/2009/06/02/86511.html</guid><wfw:comment>http://www.cppblog.com/asnaper/comments/86511.html</wfw:comment><comments>http://www.cppblog.com/asnaper/archive/2009/06/02/86511.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/asnaper/comments/commentRss/86511.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/asnaper/services/trackbacks/86511.html</trackback:ping><description><![CDATA[<h2 class=posttitle><a title="Permanent Link to 5%的神话(关于开发效率与职业方向)" href="http://timyang.net/programming/mythical-5/" rel=bookmark><u><font color=#800080>5%的神话(关于开发效率与职业方向)</font></u></a></h2>
<div class=entry>
<p><span class=ts>Bruce Eckel(Thinking in Java/C++作者) 在他的 <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=221622" target=_blank><u><font color=#0000ff>5%的神话</font></u></a> (Mythical 5%) 中提到：</span></p>
<h3><span class=ts>5%的程序员开发效率是其他95%程序员的20倍 </span></h3>
<h3><span class=ts>(5% of programmers are 20x more productive than the other 95%)</span></h3>
<p>按照80-20法则,80%的程序员几乎不看书,不读Blog,不参加技术会议，不持续学习。这些人也可能会进入大公司，他们日复一日的做着重复的 工作。另外20%则在专业方面比较主动，他们喜欢阅读，喜欢学习，喜欢参加技术活动。这20%当中又会有80%的人可能不会特别成功，他们仍然走在通往成 功的路上奋斗。剩下20%，也就是总数的5%的开发人员具备20倍的开发效率。</p>
<p>那如何成为这5%中的一员呢</p>
<h3>Bruce Eckel 的观点：阅读，分析，总结，实践</h3>
<p>这5%的人会习惯经常阅读新技术，并喜欢参与各种有潜在价值的新概念的实践，他们会有非常有选择性的参与会议，大部分时间都花在有效率的事情上，将事情做成。</p>
<p>要想比别人效率高出20%，则需要在各个方面达到平衡，而不单只是能将事情搞定那么简单，因此你要使用最好的工具，最优秀的技术，并尽最大的努力。平衡点并 不是从明显的事物上就可以轻松获得，或者是被人告知的经验，或者是大众化的经验。它需要自己摸索并发现事物背后的规律，需要自己去总结并发现。</p>
<p>比如我们通常对各种编程语言优缺点熟记于心，我们通常可以脱口而出比如erlang适合大并发场合等等。但是大部分人不会意识到很多场合语言并不重要。</p>
<p>因此如果你要成为那5你必须持之以恒的坚持学习，多学习编程是有好处的，但是仅仅局限于了解编程是不够的，比如类似以下经验：</p>
<ul>
    <li>代码被阅读的时间比写代码的时间要长，如果你的代码不能被人理解，则没人会去改善或者修改其中的bug
    <li>Code review是最有成效的改善软件缺陷的方法，但在我们却经常&#8220;没有时间来考虑它&#8221; </li>
</ul>
<p>所以除了精通编程之外，最好多看一些编程方法与协作的书，如并不传授编程技巧的《<a href="http://www.douban.com/subject/1477390/" target=_blank><u><font color=#0000ff>代码大全</font></u></a>》之类的书。</p>
<h3>Jeff Atwood (Coding Horror) 的观点：技术博客重要性</h3>
<p>当然也有持不同观点者，如Jeff Atwood(coding horror作者)则认为经常分享自己的技术体会比coding更重要，能写的人才能成为那5%。他曾经横穿北美，从美国西岸San Francisco到加拿大的东岸Montreal去给一个大学的学生讲技术Blog的重要性。他在这篇<a href="http://www.codinghorror.com/blog/files/cusec-2008-presentation-jeff-atwood.zip"><u><font color=#0000ff>Is Writing More Important than Programming</font></u></a>(ppt, 3mb)演讲中提到：</p>
<blockquote>
<p><strong>大部分我景仰的程序员都是通过其blog让我景仰，而不是他的代码</strong></p>
<p>&#8230;&#8230;大部分不写blog程序员的理由有：太忙；写了也没人看；没有合适内容可写；觉得自己不善长表达等。</p>
</blockquote>
<p>Jeff Atwood大部分观点我是深表赞同的，可喜的是身边乐于分享的越来越多。比如<a href="http://blog.developers.api.sina.com.cn/" target=_blank><u><font color=#0000ff>新浪开发者博客</font></u></a>今年2月才开张，现在已经有100多篇高质量文章了。</p>
<p>另外我很敬佩的<a href="https://groups.google.com/group/pongba" target=_blank><u><font color=#0000ff>TopLanguage</font></u></a>创建者刘未鹏也写过一篇很有名的<a href="http://mindhacks.cn/2009/02/15/why-you-should-start-blogging-now/" target=_blank><u><font color=#0000ff>为什么你应该（从现在开始就）写博客</font></u></a>，想必很多朋友都看过。</p>
<h3>其他观点</h3>
<p>国内曾翻译过<a href="http://www.douban.com/subject/3260311/" target=_blank><u><font color=#0000ff>Erlang程序设计</font></u></a>的Trustno1则认为这5%的人必须是钻研paper的人, 而只是看看rss，热衷于参加各种技术会议，搞搞各种可替代性很强的技术的人是不够格的，他在某帖子中提到：</p>
<blockquote>
<p>很简单的两个标准.<br>标准一,你看到一个问题的第一感觉&#8221;这个事情不学3-4年数学算法光靠捣鼓捣鼓API设计模式肯定搞不定&#8221;<br>案例一,老板让你做一个从视频里识别出人脸的程序.<br>标准二,但凡性能Critial又没有现成方案的东西.<br>案例二,老板让你做一个实时的全局照明渲染引擎.</p>
</blockquote>
<p>原讨论在这里 <a href="http://www.javaeye.com/topic/380651" target=_blank><u><font color=#0000ff>http://www.javaeye.com/topic/380651</font></u></a> 其中一些观点也是有争议的，不过话题已经被锁定不让讨论了;)</p>
<h3>总结</h3>
<p>想必看了上面这一系列，你对怎样成为那5%已有自己的见解了。你要的答案或许不在这篇文章里，因为Bruce Eckel提到，大部分成为5%的人的经验是只可意会，不可言传的。</p>
</div>
<img src ="http://www.cppblog.com/asnaper/aggbug/86511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/asnaper/" target="_blank">asnaper</a> 2009-06-02 09:49 <a href="http://www.cppblog.com/asnaper/archive/2009/06/02/86511.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在HTML页中Disable/Enable 一个控件</title><link>http://www.cppblog.com/asnaper/archive/2009/05/27/85914.html</link><dc:creator>asnaper</dc:creator><author>asnaper</author><pubDate>Wed, 27 May 2009 07:27:00 GMT</pubDate><guid>http://www.cppblog.com/asnaper/archive/2009/05/27/85914.html</guid><wfw:comment>http://www.cppblog.com/asnaper/comments/85914.html</wfw:comment><comments>http://www.cppblog.com/asnaper/archive/2009/05/27/85914.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/asnaper/comments/commentRss/85914.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/asnaper/services/trackbacks/85914.html</trackback:ping><description><![CDATA[<p>&nbsp;具有两个input控件和一个submit 按钮的一个HTML 表单:<br><br>&lt;form action="form_action.asp" method="get"&gt;<br>&nbsp; Email: &lt;input type="text" name="email" /&gt;&lt;br /&gt;<br>&nbsp; Country: &lt;input type="text" name="country" value="Norway"<br>&nbsp; readonly="readonly" /&gt;&lt;br /&gt;<br>&nbsp; &lt;input type="submit" value="Submit" /&gt;<br>&lt;/form&gt;<br><br></p>
<h2>Definition and Usage</h2>
<p>The readonly attribute specifies that an input field should be read-only.</p>
<p>A read-only field cannot be modified. However, a user can tab to it, highlight it, and copy the text from it.</p>
<p>The readonly attribute can be set to keep a user from changing the value until some other condition has been met (like selecting a checkbox, etc.). Then, a JavaScript is required to remove the readonly value, and make the input field editable.</p>
<p>The readonly attribute can be used with &lt;input type="text"&gt; or &lt;input type="password"&gt;.<br></p>
<p><br><span style="COLOR: #0000ff">From:<br></span><span style="COLOR: #0000ff"><font color=#002c99>http://www.w3schools.com/tags/att_input_readonly.asp<br></font>Conclusion:<br>Dev can use JS code to add/remove the readonly value to an element dynamically&nbsp;such as "element.readonly = true/false"</span><a href="http://www.w3schools.com/tags/att_input_readonly.asp"><br></a>Sample:<br>&lt;html&gt;<br>&lt;head&gt;<br>&lt;script type="text/javascript"&gt;<br>function updateElementsreadOnly(nodeName, bReadOnly)<br>{<br>&nbsp;var x =document.getElementsByName("myInput");<br>&nbsp;for(var i = 0; x[i]; i++)<br>&nbsp;{<br>&nbsp;&nbsp;x[i].readOnly = bReadOnly;<br>&nbsp;}<br>}<br>&lt;/script&gt;<br>&lt;/head&gt;</p>
<p>&lt;body&gt;<br>&lt;input name="myInput" type="text" size="20" /&gt;&lt;br /&gt;<br>&lt;input name="myInput" type="text" size="20" /&gt;&lt;br /&gt;<br>&lt;input name="myInput" type="text" size="20" /&gt;&lt;br /&gt;<br>&lt;br /&gt;</p>
<p>&lt;button onclick="updateElementsreadOnly('myInput', false)"&gt;去除只读&lt;/button&gt;<br>&lt;button onclick="updateElementsreadOnly('myInput', true)"&gt;添加只读&lt;/button&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</p>
<img src ="http://www.cppblog.com/asnaper/aggbug/85914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/asnaper/" target="_blank">asnaper</a> 2009-05-27 15:27 <a href="http://www.cppblog.com/asnaper/archive/2009/05/27/85914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>