<?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>Swarm&#039;s Blog</title>
	<atom:link href="http://stevewang.info/feed" rel="self" type="application/rss+xml" />
	<link>http://stevewang.info</link>
	<description>VICTORY LOVES PREPARATION</description>
	<lastBuildDate>Fri, 17 Feb 2012 07:22:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Programming Pearls（编程珠玑）读书笔记之COLUMN 7：The Back of the Envelope</title>
		<link>http://stevewang.info/programming-pearls-column-7%ef%bc%9athe-back-of-the-envelope/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-pearls-column-7%25ef%25bc%259athe-back-of-the-envelope</link>
		<comments>http://stevewang.info/programming-pearls-column-7%ef%bc%9athe-back-of-the-envelope/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 13:11:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[读书笔记]]></category>
		<category><![CDATA[编程珠玑]]></category>

		<guid isPermaLink="false">http://stevewang.info/?p=98</guid>
		<description><![CDATA[这篇文章讲了一种方法：<strong>估算</strong>。（The back of the envelope 实际上就说随手拿一张小纸条就可以做一些比较大概的估算，比如没事算算中国有多少个加油站之类的这种）

美国人的数学基本运算确实不大如国人的，其中提到了两种验算估算结果是否正确的方法：

1. Test by Dimension。 也就说看看前后运算的单位是否一致，这个是中小学阶段就学过的。

2. The technique of <a href="http://en.wikipedia.org/wiki/Casting_out_nines" target="_blank">"casting out nines"</a>. 也就说我们说的去九法。这是一种可以用来快速验算加、减、 乘的方法。<a href="http://en.wikipedia.org/wiki/Casting_out_nines" target="_blank">详细解释在此。</a>

<strong>另外还提到了一个很有意思的规则：“<a href="http://en.wikipedia.org/wiki/Rule_of_72" target="_blank">Rule of 72</a>”：</strong>

大意就是说如果你把一笔钱存y年，每年的年利率是r，那么当r * y =72 时，你的钱就会double～ 这就是<a href="http://en.wikipedia.org/wiki/Rule_of_72" target="_blank">72规则</a>。

还有一个很有用的rule，经常可以用来在估算时间上：<strong>π seconds is a nanocentury</strong>。这个其实不难推算出，因为一年有3.155 * 10<sup>7</sup> 秒。但是这条规则确实很实用。

<strong> Safety Factors (安全系数)</strong>

简单地讲，就是我们作为软件工程师，在设计的时候也要像那些结构工程师一样，to know what we didn't know，一定要考虑到那些可能的未知的情况。所以我们要乘以安全系数来弥补自己的失误。

<strong>Little's Law</strong>

这个没什么难懂的，“Little's Law states that  the average number of things in the system is the product of the average rate at which thing leave the system an the average time each one spends in the system”。看他的定义写的很绕口，结果看了下面的例子，一下子就懂了，这里不再赘述。

最后的<strong>Principles</strong>:

作者引用了爱因斯坦的名言：“Everything should be made as simple as possible, but no simpler.”

全文完。EOF

/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm's Blog</a>*/]]></description>
			<content:encoded><![CDATA[<p>这篇文章讲了一种方法：<strong>估算</strong>。（The back of the envelope 实际上就说随手拿一张小纸条就可以做一些比较大概的估算，比如没事算算中国有多少个加油站之类的这种）</p>
<p>美国人的数学基本运算确实不大如国人的，其中提到了两种验算估算结果是否正确的方法：</p>
<p>1. Test by Dimension。 也就说看看前后运算的单位是否一致，这个是中小学阶段就学过的。</p>
<p>2. The technique of <a href="http://en.wikipedia.org/wiki/Casting_out_nines" target="_blank">&#8220;casting out nines&#8221;</a>. 也就说我们说的去九法。这是一种可以用来快速验算加、减、 乘的方法。<a href="http://en.wikipedia.org/wiki/Casting_out_nines" target="_blank">详细解释在此。</a></p>
<p><strong>另外还提到了一个很有意思的规则：“<a href="http://en.wikipedia.org/wiki/Rule_of_72" target="_blank">Rule of 72</a>”：</strong></p>
<p>大意就是说如果你把一笔钱存y年，每年的年利率是r，那么当r * y =72 时，你的钱就会double～ 这就是<a href="http://en.wikipedia.org/wiki/Rule_of_72" target="_blank">72规则</a>。</p>
<p>还有一个很有用的rule，经常可以用来在估算时间上：<strong>π seconds is a nanocentury</strong>。这个其实不难推算出，因为一年有3.155 * 10<sup>7</sup> 秒。但是这条规则确实很实用。</p>
<p><strong> Safety Factors (安全系数)</strong></p>
<p>简单地讲，就是我们作为软件工程师，在设计的时候也要像那些结构工程师一样，to know what we didn&#8217;t know，一定要考虑到那些可能的未知的情况。所以我们要乘以安全系数来弥补自己的失误。</p>
<p><strong>Little&#8217;s Law</strong></p>
<p>这个没什么难懂的，“Little&#8217;s Law states that  the average number of things in the system is the product of the average rate at which thing leave the system an the average time each one spends in the system”。看他的定义写的很绕口，结果看了下面的例子，一下子就懂了，这里不再赘述。</p>
<p>最后的<strong>Principles</strong>:</p>
<p>作者引用了爱因斯坦的名言：“Everything should be made as simple as possible, but no simpler.”</p>
<p>全文完。EOF</p>
<p>/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm&#8217;s Blog</a>*/</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-7%25EF%25BC%259Athe-back-of-the-envelope%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-7%25EF%25BC%259Athe-back-of-the-envelope%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-7%25EF%25BC%259Athe-back-of-the-envelope%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/11/19/11087711.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pealscolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-7%25EF%25BC%259Athe-back-of-the-envelope%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 7：The Back of the Envelope" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals%25EF%25BC%2588%25E7%25BC%2596%25E7%25A8%258B%25E7%258F%25A0%25E7%258E%2591%25EF%25BC%2589%25E8%25AF%25BB%25E4%25B9%25A6%25E7%25AC%2594%25E8%25AE%25B0%25E4%25B9%258Bcolumn-7%25EF%25BC%259Athe-back-of-the-envelope%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-7%25EF%25BC%259Athe-back-of-the-envelope%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 7：The Back of the Envelope</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/programming-pearls-column-7%ef%bc%9athe-back-of-the-envelope//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>保存一下这段文字～</title>
		<link>http://stevewang.info/just-t/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=just-t</link>
		<comments>http://stevewang.info/just-t/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 08:33:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[杂七杂八]]></category>
		<category><![CDATA[杂]]></category>

		<guid isPermaLink="false">http://stevewang.info/?p=67</guid>
		<description><![CDATA[<pre>我是不会选择做一个普通人的
如果我能够做到的话
我有权成为一位不寻常的人
我寻找机会
但我不寻求安稳
我不希望在国家的照顾下
成为一名有保障的国民
那将被人瞧不起
而使我感到痛苦不堪
我要做有意义的冒险
我要梦想
我要创造
我要失败
我也要成功
我的天性是挺胸直立
骄傲而无所畏惧
我勇敢地面对这个世界
自豪地说
在上帝的帮助下
我已经做到了</pre>
全文完。EOF

/*这个不是原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请随便要不要注明转自: <a href="http://stevewang.info/">Swarm's Blog</a> 啦*/]]></description>
			<content:encoded><![CDATA[<pre>我是不会选择做一个普通人的
如果我能够做到的话
我有权成为一位不寻常的人
我寻找机会
但我不寻求安稳
我不希望在国家的照顾下
成为一名有保障的国民
那将被人瞧不起
而使我感到痛苦不堪
我要做有意义的冒险
我要梦想
我要创造
我要失败
我也要成功
我的天性是挺胸直立
骄傲而无所畏惧
我勇敢地面对这个世界
自豪地说
在上帝的帮助下
我已经做到了</pre>
<p>全文完。EOF</p>
<p>/*这个不是原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请随便要不要注明转自: <a href="http://stevewang.info/">Swarm&#8217;s Blog</a> 啦*/</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="被盛大鄙视之后" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fafter-being-into-contempt-by-shanda%2F&from=http%3A%2F%2Fstevewang.info%2Fjust-t%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">被盛大鄙视之后</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fjust-t%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fjust-t%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fjust-t%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/11/19/11087711.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals%25EF%25BC%2588%25E7%25BC%2596%25E7%25A8%258B%25E7%258F%25A0%25E7%258E%2591%25EF%25BC%2589%25E8%25AF%25BB%25E4%25B9%25A6%25E7%25AC%2594%25E8%25AE%25B0%25E4%25B9%258Bcolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fjust-t%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/just-t//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>moodle中view X submitted assignments后nothing to display的问题</title>
		<link>http://stevewang.info/the_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle</link>
		<comments>http://stevewang.info/the_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle/#comments</comments>
		<pubDate>Mon, 02 May 2011 07:25:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[一些问题]]></category>
		<category><![CDATA[moodle]]></category>

		<guid isPermaLink="false">http://stevewang.info/moodle%e4%b8%adview-x-submitted-assignments%e5%90%8enothing-to-display%e7%9a%84%e9%97%ae%e9%a2%98/</guid>
		<description><![CDATA[今天做毕业设计，发现了这个以前一直没有在意的问题，即教师在Moodle中发布了一个作业（assignment），然后学生如果enrol in该课程后，可以提交自己的作业，学生也可以查看到自己提交的内容。

但是，教师在该作业的页面中中可以看到有几个人提交了该作业，即通过右上角的view X submitted assignments（X即为提交的学生数），点击进去后，居然没有显示，页面上只有一个Nothing to display！

这真是一个头疼的问题。

上网搜了半天，都没有结果。<strong>中文网页自然是搜不到的，资料少之又少。</strong>

用关键词moodle Nothing to display 总算搜到了（<strong>技术问题总是在国外网站上比较容易找到答案</strong>），一个法国人给出了原因，问题居然是mysql 5.5的问题，在moodle的mod/assignment/lib.php中的大约842行左右的sql查询语句触发了这个越界的问题（COALESCE(SIGN(SIGN(s.timemarked) + SIGN(s.timemarked - s.timemodified)), 0) AS status '），<strong>Mysql 对于这个问题也在官网上给出了解释：</strong><a href="http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html"><strong>http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html</strong></a><strong>。</strong>

一个可行的解决方案是在mysql的my.ini的mysqld部分加下面这个语句：
<pre>sql-mode = 'NO_UNSIGNED_SUBTRACTION'</pre>
然后重启Mysql即可。

【参考文献】：

1.  <a href="http://moodle.org/mod/forum/discuss.php?d=161121" target="_blank">Assignment submissions not available after database export/import</a>

2. <a href="http://moodle.club.tw/moodle/mod/forum/discuss.php?d=2303" target="_blank">【分享】作業 - Nothing to display ( 更新至MySQL 5.5遇到的問題 )</a>

3. <a href="http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html" target="_blank">10.6 Out-of-Range and Overflow Handling</a>

&#160;

全文完。EOF

/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm's Blog</a>*/

&#160;]]></description>
			<content:encoded><![CDATA[<p>今天做毕业设计，发现了这个以前一直没有在意的问题，即教师在Moodle中发布了一个作业（assignment），然后学生如果enrol in该课程后，可以提交自己的作业，学生也可以查看到自己提交的内容。</p>
<p>但是，教师在该作业的页面中中可以看到有几个人提交了该作业，即通过右上角的view X submitted assignments（X即为提交的学生数），点击进去后，居然没有显示，页面上只有一个Nothing to display！</p>
<p>这真是一个头疼的问题。</p>
<p>上网搜了半天，都没有结果。<strong>中文网页自然是搜不到的，资料少之又少。</strong></p>
<p>用关键词moodle Nothing to display 总算搜到了（<strong>技术问题总是在国外网站上比较容易找到答案</strong>），一个法国人给出了原因，问题居然是mysql 5.5的问题，在moodle的mod/assignment/lib.php中的大约842行左右的sql查询语句触发了这个越界的问题（COALESCE(SIGN(SIGN(s.timemarked) + SIGN(s.timemarked &#8211; s.timemodified)), 0) AS status &#8216;），<strong>Mysql 对于这个问题也在官网上给出了解释：</strong><a href="http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html"><strong>http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html</strong></a><strong>。</strong></p>
<p>一个可行的解决方案是在mysql的my.ini的mysqld部分加下面这个语句：</p>
<pre>sql-mode = 'NO_UNSIGNED_SUBTRACTION'</pre>
<p>然后重启Mysql即可。</p>
<p>【参考文献】：</p>
<p>1.  <a href="http://moodle.org/mod/forum/discuss.php?d=161121" target="_blank">Assignment submissions not available after database export/import</a></p>
<p>2. <a href="http://moodle.club.tw/moodle/mod/forum/discuss.php?d=2303" target="_blank">【分享】作業 &#8211; Nothing to display ( 更新至MySQL 5.5遇到的問題 )</a></p>
<p>3. <a href="http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html" target="_blank">10.6 Out-of-Range and Overflow Handling</a></p>
<p>&nbsp;</p>
<p>全文完。EOF</p>
<p>/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm&#8217;s Blog</a>*/</p>
<p>&nbsp;</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals%25EF%25BC%2588%25E7%25BC%2596%25E7%25A8%258B%25E7%258F%25A0%25E7%258E%2591%25EF%25BC%2589%25E8%25AF%25BB%25E4%25B9%25A6%25E7%25AC%2594%25E8%25AE%25B0%25E4%25B9%258Bcolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
        </tr>
        <br/>
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">来自无觅网络的相关文章：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="从一个病例看解决问题的方式" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.zhangby.com%2Farticles%2F%25E4%25BB%258E%25E4%25B8%2580%25E4%25B8%25AA%25E7%2597%2585%25E4%25BE%258B%25E7%259C%258B%25E8%25A7%25A3%25E5%2586%25B3%25E9%2597%25AE%25E9%25A2%2598%25E7%259A%2584%25E6%2596%25B9%25E5%25BC%258F.html&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/09/03/27609016.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">从一个病例看解决问题的方式 (@zhangby)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="观察 制药企业新媒体face to face——百度新闻搜索 | 商业故事" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.bstory.cn%2F%25E8%25A7%2582%25E5%25AF%259F-%25E5%2588%25B6%25E8%258D%25AF%25E4%25BC%2581%25E4%25B8%259A%25E6%2596%25B0%25E5%25AA%2592%25E4%25BD%2593face-to-face%25E2%2580%2594%25E2%2580%2594%25E7%2599%25BE%25E5%25BA%25A6%25E6%2596%25B0%25E9%2597%25BB%25E6%2590%259C%25E7%25B4%25A2-%25E5%2595%2586%25E4%25B8%259A%25E6%2595%2585%2F&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2012/02/10/15186960.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">观察 制药企业新媒体face to face——百度新闻搜索 | 商业故事 (@bstory)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="观察 制药企业新媒体face to face——百度新闻搜索" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.bstory.cn%2F%25E8%25A7%2582%25E5%25AF%259F-%25E5%2588%25B6%25E8%258D%25AF%25E4%25BC%2581%25E4%25B8%259A%25E6%2596%25B0%25E5%25AA%2592%25E4%25BD%2593face-to-face%25E2%2580%2594%25E2%2580%2594%25E7%2599%25BE%25E5%25BA%25A6%25E6%2596%25B0%25E9%2597%25BB%25E6%2590%259C%25E7%25B4%25A2%2F&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2012/02/10/15186960.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">观察 制药企业新媒体face to face——百度新闻搜索 (@bstory)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Nothing..." style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fleotm.blogbus.com%2Flogs%2F35259179.html&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Nothing... (@blogbus)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Auto stereo scopic Display 无需佩戴眼镜/3D裸眼立体显示器的类型" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fblog.cd3d.com.cn%2F3d2009%2F328.html&from=http%3A%2F%2Fstevewang.info%2Fthe_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Auto stereo scopic Display 无需佩戴眼镜/3D裸眼立体显示器的类型 (@cd3d)</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/the_problem_of_nothing-to-display_when_view-x-submitted-assignments_in_moodle//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Pearls（编程珠玑）读书笔记之COLUMN 6：Perspective on Performance</title>
		<link>http://stevewang.info/programming-pearls-column-6%ef%bc%9aperspective-on-performance/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-pearls-column-6%25ef%25bc%259aperspective-on-performance</link>
		<comments>http://stevewang.info/programming-pearls-column-6%ef%bc%9aperspective-on-performance/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 14:14:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[读书笔记]]></category>
		<category><![CDATA[编程珠玑]]></category>
		<category><![CDATA[面试]]></category>

		<guid isPermaLink="false">http://stevewang.info/programming-peals%ef%bc%88%e7%bc%96%e7%a8%8b%e7%8f%a0%e7%8e%91%ef%bc%89%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0%e4%b9%8bcolumn-6%ef%bc%9aperspective-on-performance/</guid>
		<description><![CDATA[接下来三个专栏都是围绕如何提升性能来讲的。

这个专栏讲了几个方面：系统结构（System Structure），算法和数据结构（Algorithms and Data Structures)，代码调优（Code Tuning），系统软件（System Software），硬件（Hardware）。并给出了一个建议：如果只想加速一点，在最佳的层次优化；如果想要很大的性能优化，那就从很多个层次入手。（If you need a little speedup, work at the best level. If you need a big speedup, work at many levels.）

基本上这次专栏就讲了这么多。

<hr />

由于这次专栏没什么好写的，我就放几道最近看到的一些好玩有趣的面试题目在后面吧：

1. 有三个盒子，这三个盒子里各装有八角糖，薄荷糖，和混合的糖。遗憾的是标签全部都错了。请问至少要拿出几颗糖才能确定三个盒子里各装的是什么 ？

2.在一个密封的房间，有一个灯泡，门外有三个开关，只有一个开关是有效的。当门关上时，你可以随意开关，当门开启时，你必须判断哪个开关是有效的，如何判断？

3. 妈妈比儿子大21岁，再过六年他会比妈妈年轻五倍，问这时候爸爸在干什么？

4.有8颗小石头和一架托盘天平。有7颗石头的重量是一样的，另外一颗比其他石头略重；除此之外，这些石头完全没有分别。你不得假设那颗重头到底比其他的石头重了多少。请问：最少要称量几次，你才能把那颗较重的石头找出来？

5.现有100把锁是开着没锁上的，1，把2的倍数的锁switch。2，把3的倍数的锁switch。3，以此类推，到100时，有多少把锁是开着的？（注：switch表示开与关状态的互换，即把开着锁上，锁上的锁打开）

进一步问：若有K把锁，进行K次这样的操作，有多少锁是打开的？（由此可见，此问题是有很巧妙地解法的！）

答案我自己都清楚了，就不写上来了。

全文完。EOF

/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm's Blog</a>*/]]></description>
			<content:encoded><![CDATA[<p>接下来三个专栏都是围绕如何提升性能来讲的。</p>
<p>这个专栏讲了几个方面：系统结构（System Structure），算法和数据结构（Algorithms and Data Structures)，代码调优（Code Tuning），系统软件（System Software），硬件（Hardware）。并给出了一个建议：如果只想加速一点，在最佳的层次优化；如果想要很大的性能优化，那就从很多个层次入手。（If you need a little speedup, work at the best level. If you need a big speedup, work at many levels.）</p>
<p>基本上这次专栏就讲了这么多。</p>
<hr />
<p>由于这次专栏没什么好写的，我就放几道最近看到的一些好玩有趣的面试题目在后面吧：</p>
<p>1. 有三个盒子，这三个盒子里各装有八角糖，薄荷糖，和混合的糖。遗憾的是标签全部都错了。请问至少要拿出几颗糖才能确定三个盒子里各装的是什么 ？</p>
<p>2.在一个密封的房间，有一个灯泡，门外有三个开关，只有一个开关是有效的。当门关上时，你可以随意开关，当门开启时，你必须判断哪个开关是有效的，如何判断？</p>
<p>3. 妈妈比儿子大21岁，再过六年他会比妈妈年轻五倍，问这时候爸爸在干什么？</p>
<p>4.有8颗小石头和一架托盘天平。有7颗石头的重量是一样的，另外一颗比其他石头略重；除此之外，这些石头完全没有分别。你不得假设那颗重头到底比其他的石头重了多少。请问：最少要称量几次，你才能把那颗较重的石头找出来？</p>
<p>5.现有100把锁是开着没锁上的，1，把2的倍数的锁switch。2，把3的倍数的锁switch。3，以此类推，到100时，有多少把锁是开着的？（注：switch表示开与关状态的互换，即把开着锁上，锁上的锁打开）</p>
<p>进一步问：若有K把锁，进行K次这样的操作，有多少锁是打开的？（由此可见，此问题是有很巧妙地解法的！）</p>
<p>答案我自己都清楚了，就不写上来了。</p>
<p>全文完。EOF</p>
<p>/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm&#8217;s Blog</a>*/</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 6：Perspective on Performance" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals-column-6%25EF%25BC%259Aperspective-on-performance%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-6%25EF%25BC%259Aperspective-on-performance%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 6：Perspective on Performance</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-6%25EF%25BC%259Aperspective-on-performance%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-6%25EF%25BC%259Aperspective-on-performance%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/11/19/11087711.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-6%25EF%25BC%259Aperspective-on-performance%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-6%25EF%25BC%259Aperspective-on-performance%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/programming-pearls-column-6%ef%bc%9aperspective-on-performance//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</title>
		<link>http://stevewang.info/programming-pearls-column-5%ef%bc%9aa-smaller-matter-of-programming/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-pearls-column-5%25ef%25bc%259aa-smaller-matter-of-programming</link>
		<comments>http://stevewang.info/programming-pearls-column-5%ef%bc%9aa-smaller-matter-of-programming/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 15:50:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[读书笔记]]></category>
		<category><![CDATA[编程珠玑]]></category>

		<guid isPermaLink="false">http://stevewang.info/programming-peals%ef%bc%88%e7%bc%96%e7%a8%8b%e7%8f%a0%e7%8e%91%ef%bc%89%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0%e4%b9%8bcolumn-5%ef%bc%9aa-smaller-matter-of-programming/</guid>
		<description><![CDATA[这个专栏继续深入讲解了assertion，同时也强调了Scaffolding的重要性。

实在也没什么好说的了，不过专栏最后关于Debug的一个小故事倒是挺有意思：讲的是IBM的Yorktown Heights研究中的一段轶事，有一个程序员刚刚装了一个新的工作站，当他坐着的时候所有的一切都正常，但是他站着的时候就不能登录到系统中去。而且这种行为可以百分百地重复：他总是坐着的能够登陆，站着的时候从来不能。

大多数人对于这个故事只有惊叹奇异的份了：“工作站到底是怎么知道这个家伙到底是坐着还是站着呢。。”一个好的debugger，却知道这其中一定有某种原因。最先想到的假设应该是电路的问题，可能地毯下面的接触不良，只有坐着的时候能够正常。但是，问题就在于这个行为可以百分百重复，那应该可以排除是电路问题了。

最后终于找到了问题的原因：两个键的字母交换了（the tops of two keys were switched）。当他坐着的时候，他打字不会注意到这个问题；而当他站起来后，他就会误入歧途，输入错误的键。。

所以说，一个优秀的debugger往往是能够透过问题的表象看到本质的。

<a href="http://stevewang.info/wp-content/uploads/2011/04/debug.png"><img class="alignnone size-full wp-image-55" title="debug" src="http://stevewang.info/wp-content/uploads/2011/04/debug.png" alt="" width="450" height="430" /></a>

全文完。EOF

&#160;

/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm's Blog</a>*/

&#160;]]></description>
			<content:encoded><![CDATA[<p>这个专栏继续深入讲解了assertion，同时也强调了Scaffolding的重要性。</p>
<p>实在也没什么好说的了，不过专栏最后关于Debug的一个小故事倒是挺有意思：讲的是IBM的Yorktown Heights研究中的一段轶事，有一个程序员刚刚装了一个新的工作站，当他坐着的时候所有的一切都正常，但是他站着的时候就不能登录到系统中去。而且这种行为可以百分百地重复：他总是坐着的能够登陆，站着的时候从来不能。</p>
<p>大多数人对于这个故事只有惊叹奇异的份了：“工作站到底是怎么知道这个家伙到底是坐着还是站着呢。。”一个好的debugger，却知道这其中一定有某种原因。最先想到的假设应该是电路的问题，可能地毯下面的接触不良，只有坐着的时候能够正常。但是，问题就在于这个行为可以百分百重复，那应该可以排除是电路问题了。</p>
<p>最后终于找到了问题的原因：两个键的字母交换了（the tops of two keys were switched）。当他坐着的时候，他打字不会注意到这个问题；而当他站起来后，他就会误入歧途，输入错误的键。。</p>
<p>所以说，一个优秀的debugger往往是能够透过问题的表象看到本质的。</p>
<p><a href="http://stevewang.info/wp-content/uploads/2011/04/debug.png"><img class="alignnone size-full wp-image-55" title="debug" src="http://stevewang.info/wp-content/uploads/2011/04/debug.png" alt="" width="450" height="430" /></a></p>
<p>全文完。EOF</p>
<p>&nbsp;</p>
<p>/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm&#8217;s Blog</a>*/</p>
<p>&nbsp;</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals%25EF%25BC%2588%25E7%25BC%2596%25E7%25A8%258B%25E7%258F%25A0%25E7%258E%2591%25EF%25BC%2589%25E8%25AF%25BB%25E4%25B9%25A6%25E7%25AC%2594%25E8%25AE%25B0%25E4%25B9%258Bcolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
        </tr>
        <br/>
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">来自无觅网络的相关文章：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Tori Amos个人专辑- Night of Hunters" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.ycy8.net%2F2011_11464.html&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/09/18/31920233.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Tori Amos个人专辑- Night of Hunters (@ycy8)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="The Kooks个人专辑- Junk Of The Heart" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.ycy8.net%2F2011_11446.html&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/09/18/31891281.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">The Kooks个人专辑- Junk Of The Heart (@ycy8)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="收藏2008：大热大火 慧眼识珠" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.bstory.cn%2F%25E6%2594%25B6%25E8%2597%258F2008%25EF%25BC%259A%25E5%25A4%25A7%25E7%2583%25AD%25E5%25A4%25A7%25E7%2581%25AB-%25E6%2585%25A7%25E7%259C%25BC%25E8%25AF%2586%25E7%258F%25A0%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">收藏2008：大热大火 慧眼识珠 (@bstory)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="新生代万用下载器—iDown" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fendlessroadexplorer.com%2Farchives%2F55&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/05/04/7469018.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">新生代万用下载器—iDown (@endlessroadexplorer)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="一个命令解决“能上Q，不能上网”的问题" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fendlessroadexplorer.com%2Farchives%2F38&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5492550.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">一个命令解决“能上Q，不能上网”的问题 (@endlessroadexplorer)</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/programming-pearls-column-5%ef%bc%9aa-smaller-matter-of-programming//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</title>
		<link>http://stevewang.info/programming-pearls-column-4%ef%bc%9awriting-correct-programs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-pearls-column-4%25ef%25bc%259awriting-correct-programs</link>
		<comments>http://stevewang.info/programming-pearls-column-4%ef%bc%9awriting-correct-programs/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 15:52:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[读书笔记]]></category>
		<category><![CDATA[编程珠玑]]></category>

		<guid isPermaLink="false">http://stevewang.info/programming-peals%ef%bc%88%e7%bc%96%e7%a8%8b%e7%8f%a0%e7%8e%91%ef%bc%89%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0%e4%b9%8bcolumn-4%ef%bc%9awriting-correct-programs/</guid>
		<description><![CDATA[这个专栏主要强调了写出正确无误的程序。

看了一个很有趣的故事：原来写出一个正确的二分搜索的算法是这么地难，作者曾经给一些专业的程序员布置了二分搜索的题目，允许他们选择自己的语言甚至高级的伪代码，而结果却是几乎所有的程序员（90%）交上的代码都有错误，只有不到10%的程序员能够准确无误地写出这个小程序。我也震惊了，当然下面一个小故事也很有趣：<strong>Knuth指出来二分搜索最开始是1946年被发表的，但是第一个发表出的没有bug的二分搜索直到1962年才出现。。</strong>

回到宿舍，我也尝试了一下用C++实现了一个二分搜索的小程序：

&#160;

可惜的是，我倒不是算法出错了，倒是在其他一些小细节上犯错。。可见长时间不写代码真的真的会生疏啊！！！

其实呢，这段代码就是传说中的典型的错误的二分搜索的代码，出错的地方在于其中的整数溢出：<strong>mid = (low+high)/2；</strong>

low+high这里极易导致整数溢出，因此这句话最好写成这样：<strong>  mid = low + (high-low)/2;</strong>

这个二分搜索还可以更一步的挖掘，<a href="http://blog.csdn.net/hexinuaa/article/details/6600885">一些思考在这里可以看到。</a>

<a href="http://stevewang.info/wp-content/uploads/2011/04/77652a03fda8.gif"><img style="display: inline;" title="喂，你写代码的" src="http://stevewang.info/wp-content/uploads/2011/04/thumb.gif" alt="喂，你写代码的" width="158" height="120" /></a>

文章的后来主要是在强调断言（assertion）和程序的verification。

断言也是个好东西，因为它可以保证你在程序出错时能够理解代码同时不会陷入那种消极的状态：即只要不断地修改代码直至运行为止（understand the code at all times, and resist those foul urges to “just change it until it works”）。

全文完。EOF

&#160;

/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm's Blog</a>*/]]></description>
			<content:encoded><![CDATA[<p>这个专栏主要强调了写出正确无误的程序。</p>
<p>看了一个很有趣的故事：原来写出一个正确的二分搜索的算法是这么地难，作者曾经给一些专业的程序员布置了二分搜索的题目，允许他们选择自己的语言甚至高级的伪代码，而结果却是几乎所有的程序员（90%）交上的代码都有错误，只有不到10%的程序员能够准确无误地写出这个小程序。我也震惊了，当然下面一个小故事也很有趣：<strong>Knuth指出来二分搜索最开始是1946年被发表的，但是第一个发表出的没有bug的二分搜索直到1962年才出现。。</strong></p>
<p>回到宿舍，我也尝试了一下用C++实现了一个二分搜索的小程序：</p>
<p>&nbsp;</p>
<p>可惜的是，我倒不是算法出错了，倒是在其他一些小细节上犯错。。可见长时间不写代码真的真的会生疏啊！！！</p>
<p>其实呢，这段代码就是传说中的典型的错误的二分搜索的代码，出错的地方在于其中的整数溢出：<strong>mid = (low+high)/2；</strong></p>
<p>low+high这里极易导致整数溢出，因此这句话最好写成这样：<strong>  mid = low + (high-low)/2;</strong></p>
<p>这个二分搜索还可以更一步的挖掘，<a href="http://blog.csdn.net/hexinuaa/article/details/6600885">一些思考在这里可以看到。</a></p>
<p><a href="http://stevewang.info/wp-content/uploads/2011/04/77652a03fda8.gif"><img style="display: inline;" title="喂，你写代码的" src="http://stevewang.info/wp-content/uploads/2011/04/thumb.gif" alt="喂，你写代码的" width="158" height="120" /></a></p>
<p>文章的后来主要是在强调断言（assertion）和程序的verification。</p>
<p>断言也是个好东西，因为它可以保证你在程序出错时能够理解代码同时不会陷入那种消极的状态：即只要不断地修改代码直至运行为止（understand the code at all times, and resist those foul urges to “just change it until it works”）。</p>
<p>全文完。EOF</p>
<p>&nbsp;</p>
<p>/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/">Swarm&#8217;s Blog</a>*/</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals%25EF%25BC%2588%25E7%25BC%2596%25E7%25A8%258B%25E7%258F%25A0%25E7%258E%2591%25EF%25BC%2589%25E8%25AF%25BB%25E4%25B9%25A6%25E7%25AC%2594%25E8%25AE%25B0%25E4%25B9%258Bcolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/11/19/11087711.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/programming-pearls-column-4%ef%bc%9awriting-correct-programs//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs</title>
		<link>http://stevewang.info/programming-pearls-column-3%ef%bc%9adata-structures-programs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-pearls-column-3%25ef%25bc%259adata-structures-programs</link>
		<comments>http://stevewang.info/programming-pearls-column-3%ef%bc%9adata-structures-programs/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 14:28:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[读书笔记]]></category>
		<category><![CDATA[数据结构]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[编程珠玑]]></category>

		<guid isPermaLink="false">http://stevewang.info/programming-peals%ef%bc%88%e7%bc%96%e7%a8%8b%e7%8f%a0%e7%8e%91%ef%bc%89%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0%e4%b9%8bcolumn-3%ef%bc%9adata-structures-programs/</guid>
		<description><![CDATA[这个专栏顾名思义，着重讲了<strong>数据的结构化对程序的重要性</strong>。

开头就讲了一个很浅显的例子如下：

&#160;

很显然应该用数组重新考虑这个问题。

另一个例子是Form-Letter Programming，一种常见的初级的输出语句可能如下所示：

&#160;

这种方式不用动脑筋但是看起来很罗嗦，而且不够灵活。

如果要写出更加优雅的代码，首先要依赖于一个如下所示的form letter schema：
<blockquote>Welcome back,$1
We hope that you and all the members
of the $0 family are constantly
reminding your neighbours there
on $5 to shop with us.
As usual,we will ship your order to
$3 $1 $2. $0
$4 $5
$6, $7 $8
…</blockquote>
<span style="background-color: #f1f5f6;"><strong>然后写一个通用的表格信件生成器(form letter generator)：</strong></span>

&#160;

这样一来，就<strong>把数据和控制分离开来</strong>，如果信件需要重新改动的话，只需要改动form letter schema即可，而不需要改动生成器。

文章最后提出了一些很有用的建议：

1. Rework repeated code into arrays. 实例可以参见第一个例子，此建议也就是常说的<a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself" target="_blank"><strong>D.R.Y.（Don’t Repeat Yourself</strong></a><strong>）</strong>。

2. Encapsulate complex structures. 当需要一个成熟的数据结构时，定义一个抽象的，然后扩展成类使用它。

3. Let the data structure the program. 这个专栏的主题就是数据可以使用合适的数据结构替换掉复杂的代码从而来结构化一个程序。<strong>因此在写代码之前，一个好的程序员会透彻地理解输入、输出和中间文件的数据结构。</strong>

<strong><a href="http://stevewang.info/wp-content/uploads/2011/04/bintree.gif"><img class="alignnone size-medium wp-image-45" title="bintree" src="http://stevewang.info/wp-content/uploads/2011/04/bintree-300x231.gif" alt="" width="300" height="231" /></a>
</strong>

全文完。EOF

/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info" target="_blank">Swarm's Blog</a>*/]]></description>
			<content:encoded><![CDATA[<p>这个专栏顾名思义，着重讲了<strong>数据的结构化对程序的重要性</strong>。</p>
<p>开头就讲了一个很浅显的例子如下：</p>
<p>&nbsp;</p>
<p>很显然应该用数组重新考虑这个问题。</p>
<p>另一个例子是Form-Letter Programming，一种常见的初级的输出语句可能如下所示：</p>
<p>&nbsp;</p>
<p>这种方式不用动脑筋但是看起来很罗嗦，而且不够灵活。</p>
<p>如果要写出更加优雅的代码，首先要依赖于一个如下所示的form letter schema：</p>
<blockquote><p>Welcome back,$1<br />
We hope that you and all the members<br />
of the $0 family are constantly<br />
reminding your neighbours there<br />
on $5 to shop with us.<br />
As usual,we will ship your order to<br />
$3 $1 $2. $0<br />
$4 $5<br />
$6, $7 $8<br />
…</p></blockquote>
<p><span style="background-color: #f1f5f6;"><strong>然后写一个通用的表格信件生成器(form letter generator)：</strong></span></p>
<p>&nbsp;</p>
<p>这样一来，就<strong>把数据和控制分离开来</strong>，如果信件需要重新改动的话，只需要改动form letter schema即可，而不需要改动生成器。</p>
<p>文章最后提出了一些很有用的建议：</p>
<p>1. Rework repeated code into arrays. 实例可以参见第一个例子，此建议也就是常说的<a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself" target="_blank"><strong>D.R.Y.（Don’t Repeat Yourself</strong></a><strong>）</strong>。</p>
<p>2. Encapsulate complex structures. 当需要一个成熟的数据结构时，定义一个抽象的，然后扩展成类使用它。</p>
<p>3. Let the data structure the program. 这个专栏的主题就是数据可以使用合适的数据结构替换掉复杂的代码从而来结构化一个程序。<strong>因此在写代码之前，一个好的程序员会透彻地理解输入、输出和中间文件的数据结构。</strong></p>
<p><strong><a href="http://stevewang.info/wp-content/uploads/2011/04/bintree.gif"><img class="alignnone size-medium wp-image-45" title="bintree" src="http://stevewang.info/wp-content/uploads/2011/04/bintree-300x231.gif" alt="" width="300" height="231" /></a><br />
</strong></p>
<p>全文完。EOF</p>
<p>/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><abbr>BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info" target="_blank">Swarm&#8217;s Blog</a>*/</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pealscolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
        </tr>
        <br/>
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">来自无觅网络的相关文章：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="刘海华：百度分享按钮是否影响百度算法?" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.dedeadmin.com%2F%3Fp%3D3556&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://www.dedeadmin.com/wp-content/blogwumi.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">刘海华：百度分享按钮是否影响百度算法? (@dedeadmin)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="宋连军:网站结构优化之目录的设计思路" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.dedeadmin.com%2F%3Fp%3D3725&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://www.dedeadmin.com/wp-content/blogwumi.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">宋连军:网站结构优化之目录的设计思路 (@dedeadmin)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="剖析最新站群手法 预测2012百度算法调整方向" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.dedeadmin.com%2F%3Fp%3D3342&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2012/01/15/13981775.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">剖析最新站群手法 预测2012百度算法调整方向 (@dedeadmin)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="将DedeCMS根目录下的data目录迁移到web以外目录方法 | 织梦(Dedecms)管理员之家" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.dedeadmin.com%2F%3Fp%3D2990%26cpage%3D2&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/11/23/11309527.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">将DedeCMS根目录下的data目录迁移到web以外目录方法 | 织梦(Dedecms)管理员之家 (@dedeadmin)</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="宋连军:网站结构优化之文本链接的构建" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.dedeadmin.com%2F%3Fp%3D3543&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://www.dedeadmin.com/wp-content/blogwumi.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">宋连军:网站结构优化之文本链接的构建 (@dedeadmin)</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/programming-pearls-column-3%ef%bc%9adata-structures-programs//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</title>
		<link>http://stevewang.info/programming-pearls_column-2%ef%bc%9aahaalgorithms/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-pearls_column-2%25ef%25bc%259aahaalgorithms</link>
		<comments>http://stevewang.info/programming-pearls_column-2%ef%bc%9aahaalgorithms/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 16:21:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[读书笔记]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[编程珠玑]]></category>

		<guid isPermaLink="false">http://stevewang.info/?p=26</guid>
		<description><![CDATA[算法是一个程序员的基本功，在面对一个问题的时候，如果用常规的思维来思考，往往只能得到一个中规中矩甚至效率十分低下的解法。<strong>这个时候如果稍加思考，或者think out the box，就会灵光乍现，得到算法的aha! insights，想出十分巧妙的解法。</strong>这个专栏主要讲的就是思考后得到的aha! algorithms（巧妙的算法）。<a href="http://en.wikipedia.org/wiki/Martin_Gardner" target="_blank">Martin Gardner</a>说过：“<strong>A problem that seems difficult may have a simple,unexpected solution</strong>”。

提出了三个问题：

1. <strong>有一个文件包含有至多40亿个32位整数，找出一个文件中没有的32位整数。如果内存只有几百字节，但是可以使用几个外部文件，你怎么解决这个问题？</strong>

这个问题可以用<strong><a href="http://en.wikipedia.org/wiki/Binary_search_algorithm" target="_blank">二分搜索（Binary Search</a>）</strong>来解决。（要记住，二分搜索是非常有用的算法，以后会经常用到，人家的时间复杂度可是logn啊！！！非常牛×啊！！）这一题的主要思路就是先遍历所有的32位整数，然后把0开头的放到一个顺序文件中，1开头的放到另一个文件中。如下图所示：

<a href="http://stevewang.info/wp-content/uploads/2011/04/aha-algorithm.jpg"><img class="alignnone size-full wp-image-28" title="aha-algorithm" src="http://stevewang.info/wp-content/uploads/2011/04/aha-algorithm.jpg" alt="" width="397" height="192" /></a>

然后，我们使用那个最多有20亿个整数的文件，然后重复以上的步骤，不过这次从第二位开始看起，以此类推，缺少的那个整数就可以通过排序和扫描找到。

<strong>2. 一个非常经典的移位问题：把一个n个元素的一维向量左移i位，例如，n =8,i = 3。把向量abcdefgh左移3位成 defghabc，通常的简单的办法是使用一个n元素的中间向量在n步内做完。那么如何使用更少的空间更快地完成呢？</strong>

<strong> </strong>第一种方法有点Juggling的意味，写成伪代码可以表示如下（rotdist表示左移的位数）：

<script type="text/javascript" src="https://gist.github.com/912357.js">// <![CDATA[


// ]]&#62;</script>

第二种方法叫reversal，反转法。

只需要三步即可(reverse(a,b)表示a到b沿中间轴反转)：

reverse(0,i-1)       /* cbadefgh */

reverse(i,n-1)      /* cbahgfed */

reverse(0,n-1)     /* defghabc */

<strong>3. 给定一个英文单词的字典，找出所有的回文单词。例如："pots" "stop" "tops"。</strong>

英文单词这么多，大概二十几万个，全部遍历一遍一个一个进行比较肯定是不现实的，书上算了下大概需要14.7个小时。问题的关键就在于需要了解到回文的各个单词之间拥有相同的signature（签名）。只要找到拥有同样签名的单词即可。例如这里可以把签名设定为把单词的字母按照字典排序，pots stop tops这三个的签名均为opst。问题便迎刃而解。实现一个回文程序大概是三个步骤：sign -&#62; sort -&#62; squash。sigh就是给字典里的单词增加签名，sort就是把签名按照字典序排列，squash就是把相同签名的单词输出到同一行。

<strong>感想：</strong>

<strong>/* Binary Search</strong> 在一个排好序的表中查找一个元素时非常有效，唯一的缺点是需要知道整个表，而且要事先排好序<strong> */</strong>

/* 签名（<strong>Signatures</strong>）在划分一类事物时候非常有用 */

/* A Problem Solver's Perspective.<strong> Good programmers are a little bit lazy: they sit back and wait for an insight rather than rushing forward with their idea</strong> */

全文完。EOF

<span style="text-decoration: underline;">/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="nofollow external"><abbr title="署名-非商业性使用-相同方式共享">BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/programming-peals_column-2%EF%BC%9Aahaalgorithms">Swarm's Blog</a>*/</span>]]></description>
			<content:encoded><![CDATA[<p>算法是一个程序员的基本功，在面对一个问题的时候，如果用常规的思维来思考，往往只能得到一个中规中矩甚至效率十分低下的解法。<strong>这个时候如果稍加思考，或者think out the box，就会灵光乍现，得到算法的aha! insights，想出十分巧妙的解法。</strong>这个专栏主要讲的就是思考后得到的aha! algorithms（巧妙的算法）。<a href="http://en.wikipedia.org/wiki/Martin_Gardner" target="_blank">Martin Gardner</a>说过：“<strong>A problem that seems difficult may have a simple,unexpected solution</strong>”。</p>
<p>提出了三个问题：</p>
<p>1. <strong>有一个文件包含有至多40亿个32位整数，找出一个文件中没有的32位整数。如果内存只有几百字节，但是可以使用几个外部文件，你怎么解决这个问题？</strong></p>
<p>这个问题可以用<strong><a href="http://en.wikipedia.org/wiki/Binary_search_algorithm" target="_blank">二分搜索（Binary Search</a>）</strong>来解决。（要记住，二分搜索是非常有用的算法，以后会经常用到，人家的时间复杂度可是logn啊！！！非常牛×啊！！）这一题的主要思路就是先遍历所有的32位整数，然后把0开头的放到一个顺序文件中，1开头的放到另一个文件中。如下图所示：</p>
<p><a href="http://stevewang.info/wp-content/uploads/2011/04/aha-algorithm.jpg"><img class="alignnone size-full wp-image-28" title="aha-algorithm" src="http://stevewang.info/wp-content/uploads/2011/04/aha-algorithm.jpg" alt="" width="397" height="192" /></a></p>
<p>然后，我们使用那个最多有20亿个整数的文件，然后重复以上的步骤，不过这次从第二位开始看起，以此类推，缺少的那个整数就可以通过排序和扫描找到。</p>
<p><strong>2. 一个非常经典的移位问题：把一个n个元素的一维向量左移i位，例如，n =8,i = 3。把向量abcdefgh左移3位成 defghabc，通常的简单的办法是使用一个n元素的中间向量在n步内做完。那么如何使用更少的空间更快地完成呢？</strong></p>
<p><strong> </strong>第一种方法有点Juggling的意味，写成伪代码可以表示如下（rotdist表示左移的位数）：</p>
<p><script type="text/javascript" src="https://gist.github.com/912357.js">// <![CDATA[</p>
<p>// ]]&gt;</script></p>
<p>第二种方法叫reversal，反转法。</p>
<p>只需要三步即可(reverse(a,b)表示a到b沿中间轴反转)：</p>
<p>reverse(0,i-1)       /* cbadefgh */</p>
<p>reverse(i,n-1)      /* cbahgfed */</p>
<p>reverse(0,n-1)     /* defghabc */</p>
<p><strong>3. 给定一个英文单词的字典，找出所有的回文单词。例如：&#8221;pots&#8221; &#8220;stop&#8221; &#8220;tops&#8221;。</strong></p>
<p>英文单词这么多，大概二十几万个，全部遍历一遍一个一个进行比较肯定是不现实的，书上算了下大概需要14.7个小时。问题的关键就在于需要了解到回文的各个单词之间拥有相同的signature（签名）。只要找到拥有同样签名的单词即可。例如这里可以把签名设定为把单词的字母按照字典排序，pots stop tops这三个的签名均为opst。问题便迎刃而解。实现一个回文程序大概是三个步骤：sign -&gt; sort -&gt; squash。sigh就是给字典里的单词增加签名，sort就是把签名按照字典序排列，squash就是把相同签名的单词输出到同一行。</p>
<p><strong>感想：</strong></p>
<p><strong>/* Binary Search</strong> 在一个排好序的表中查找一个元素时非常有效，唯一的缺点是需要知道整个表，而且要事先排好序<strong> */</strong></p>
<p>/* 签名（<strong>Signatures</strong>）在划分一类事物时候非常有用 */</p>
<p>/* A Problem Solver&#8217;s Perspective.<strong> Good programmers are a little bit lazy: they sit back and wait for an insight rather than rushing forward with their idea</strong> */</p>
<p>全文完。EOF</p>
<p><span style="text-decoration: underline;">/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="nofollow external"><abbr title="署名-非商业性使用-相同方式共享">BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/programming-peals_column-2%EF%BC%9Aahaalgorithms">Swarm&#8217;s Blog</a>*/</span></p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-3%25EF%25BC%259Adata-structures-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/11/19/11087711.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 3：Data Structures Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pealscolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/programming-pearls_column-2%ef%bc%9aahaalgorithms//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</title>
		<link>http://stevewang.info/programming-pearls_column-1%ef%bc%9acracking-the-oyster/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-pearls_column-1%25ef%25bc%259acracking-the-oyster</link>
		<comments>http://stevewang.info/programming-pearls_column-1%ef%bc%9acracking-the-oyster/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 16:16:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[读书笔记]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[编程珠玑]]></category>

		<guid isPermaLink="false">http://stevewang.info/?p=11</guid>
		<description><![CDATA[<a href="http://book.douban.com/subject/1910326/" target="_blank">《编程珠玑》(Programming Peals)</a>这本书买了很久了，买回来看了第一栏之后就一直没看过，这次决定每天看一个专栏（column），争取在这个月内看完。

今天从Column 1看起，这次专栏讲了一个很简单的问题：How do I sort a disk file?

<span style="font-size: medium;">问题经过一番分析后可以描述如下：</span>

<em>输入：</em>一个包含有最多n个正整数的文件，每一个数都小于n，而n = 10<sup>7</sup>，输入中任意整数都不会出现两次，同时每个数都没有其他的数据与之关联。

<em>输出：</em>一个升序排列的列表

<em>限制条件：</em>内存中最到只有1 Mb的存储容量可用，磁盘容量是足够的。运行时间必须最多不超过几分钟，10秒的运行时间即足够了。

<span style="font-size: medium;">一般来讲，可以想到两种方法：</span>

1. Merge Sort（归并排序）

归并排序需要使用额外的Work Files，而且需要对它读写很多次，尽管只读过一次输入文件。（如下图所示）

<a href="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-1.jpg"><img class="alignnone size-full wp-image-12" title="Cracking_the_oyster-1" src="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-1.jpg" alt="" width="424" height="147" /></a>

2. 40-pass 算法

我们把每个数字表示成一个32位的整数，那么就可以在1Mb里面存放250,000个数字了。但是这样我们还是要读取输入文件40次（make 40 passes）。第一次，把0到249,999之间的数字读取到内存中，对其进行排序然后写到输出文件中。第二次，排序250,000到499,999的数字，就这样一直到最后第40次，从9,750,000到9,999,999进行排序。排序是用<a href="http://en.wikipedia.org/wiki/Quicksort" target="_blank">快速排序(quick sort)</a>进行的。（如下图所示）

<a href="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-2.jpg"><img class="alignnone size-full wp-image-13" title="Cracking_the_oyster-2" src="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-2.jpg" alt="" width="442" height="71" /></a>

那么，为什么不把两者的优点结合起来呢，<strong>也就是说仅读取一次输入文件，而且不使用中间文件！</strong>

<strong><a href="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-3.jpg"><img class="alignnone size-full wp-image-14" title="Cracking_the_oyster-3" src="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-3.jpg" alt="" width="451" height="76" /></a></strong>

&#160;

&#160;

&#160;

<span style="font-size: medium;">答案就是使用<strong>bitmap</strong>或者<strong>bit vector</strong>：</span>

我们可以用一个20位的string来表示小于20的所有非负整数，例如，{1,2,3,5,8,13}可以表示成:

0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0

1所在的位置表示数字。

这个问题同样可以用这种思路，那么伪代码可以写成：

&#160;

这样就可以很巧妙地解决了拥有如此巨大数目的问题。

文章后面介绍了几个解决问题的原则：

1. The Right Problem.解决正确的问题，问题分析清楚了就是成功的开端

2. The Bitmap Data Structure. 这个数据结构在每个元素最多出现一次而且没有其他关联数据时候非常管用。

3. Multiple-Pass Algorithms. 这些算法通常会对输入数据读取好多次

4. A Time-Space Tradeoff and One That Isn't. 时间与空间的交换是算法中永恒的话题，不过有的时候并不是必然的，例如空间的减少也会导致时间的减少，因为需要更少地时间处理更少的数据，同时少量的数据可以放在内存中而不用读取磁盘！

5. A Simple Design. 简单的程序通常比复杂的更加可靠、安全、健壮、有效，而且易于建立与维护！

<span style="color: #99cc00;">/***************************花絮******************************/</span>

在专栏的课后习题中的最后一题，提到了已经被传遍了的在太空中使用铅笔和太空笔的故事，原来那仅仅是个传说，真实的情况是美国人最开始也是用的铅笔，后来太空笔发明之后卖给了NASA和俄国佬，可见传说并不可信，<a href="http://zh.wikipedia.org/wiki/%E5%A4%AA%E7%A9%BA%E7%AD%86" target="_blank">真相可猛击这里</a>。

<span style="color: #00ff00;">/***************************花絮******************************/</span>

<span style="color: #00ff00;"><span style="color: #000000;">全文完。EOF</span>
</span>

<span style="text-decoration: underline;"><span style="background-color: #ffffff; color: #000000;">/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="nofollow external"><abbr title="署名-非商业性使用-相同方式共享">BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/programming-peals_column-1%EF%BC%9Acracking-the-oyster">Swarm's Blog</a>*/</span></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://book.douban.com/subject/1910326/" target="_blank">《编程珠玑》(Programming Peals)</a>这本书买了很久了，买回来看了第一栏之后就一直没看过，这次决定每天看一个专栏（column），争取在这个月内看完。</p>
<p>今天从Column 1看起，这次专栏讲了一个很简单的问题：How do I sort a disk file?</p>
<p><span style="font-size: medium;">问题经过一番分析后可以描述如下：</span></p>
<p><em>输入：</em>一个包含有最多n个正整数的文件，每一个数都小于n，而n = 10<sup>7</sup>，输入中任意整数都不会出现两次，同时每个数都没有其他的数据与之关联。</p>
<p><em>输出：</em>一个升序排列的列表</p>
<p><em>限制条件：</em>内存中最到只有1 Mb的存储容量可用，磁盘容量是足够的。运行时间必须最多不超过几分钟，10秒的运行时间即足够了。</p>
<p><span style="font-size: medium;">一般来讲，可以想到两种方法：</span></p>
<p>1. Merge Sort（归并排序）</p>
<p>归并排序需要使用额外的Work Files，而且需要对它读写很多次，尽管只读过一次输入文件。（如下图所示）</p>
<p><a href="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-1.jpg"><img class="alignnone size-full wp-image-12" title="Cracking_the_oyster-1" src="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-1.jpg" alt="" width="424" height="147" /></a></p>
<p>2. 40-pass 算法</p>
<p>我们把每个数字表示成一个32位的整数，那么就可以在1Mb里面存放250,000个数字了。但是这样我们还是要读取输入文件40次（make 40 passes）。第一次，把0到249,999之间的数字读取到内存中，对其进行排序然后写到输出文件中。第二次，排序250,000到499,999的数字，就这样一直到最后第40次，从9,750,000到9,999,999进行排序。排序是用<a href="http://en.wikipedia.org/wiki/Quicksort" target="_blank">快速排序(quick sort)</a>进行的。（如下图所示）</p>
<p><a href="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-2.jpg"><img class="alignnone size-full wp-image-13" title="Cracking_the_oyster-2" src="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-2.jpg" alt="" width="442" height="71" /></a></p>
<p>那么，为什么不把两者的优点结合起来呢，<strong>也就是说仅读取一次输入文件，而且不使用中间文件！</strong></p>
<p><strong><a href="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-3.jpg"><img class="alignnone size-full wp-image-14" title="Cracking_the_oyster-3" src="http://stevewang.info/wp-content/uploads/2011/04/Cracking_the_oyster-3.jpg" alt="" width="451" height="76" /></a></strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;">答案就是使用<strong>bitmap</strong>或者<strong>bit vector</strong>：</span></p>
<p>我们可以用一个20位的string来表示小于20的所有非负整数，例如，{1,2,3,5,8,13}可以表示成:</p>
<p>0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0</p>
<p>1所在的位置表示数字。</p>
<p>这个问题同样可以用这种思路，那么伪代码可以写成：</p>
<p>&nbsp;</p>
<p>这样就可以很巧妙地解决了拥有如此巨大数目的问题。</p>
<p>文章后面介绍了几个解决问题的原则：</p>
<p>1. The Right Problem.解决正确的问题，问题分析清楚了就是成功的开端</p>
<p>2. The Bitmap Data Structure. 这个数据结构在每个元素最多出现一次而且没有其他关联数据时候非常管用。</p>
<p>3. Multiple-Pass Algorithms. 这些算法通常会对输入数据读取好多次</p>
<p>4. A Time-Space Tradeoff and One That Isn&#8217;t. 时间与空间的交换是算法中永恒的话题，不过有的时候并不是必然的，例如空间的减少也会导致时间的减少，因为需要更少地时间处理更少的数据，同时少量的数据可以放在内存中而不用读取磁盘！</p>
<p>5. A Simple Design. 简单的程序通常比复杂的更加可靠、安全、健壮、有效，而且易于建立与维护！</p>
<p><span style="color: #99cc00;">/***************************花絮******************************/</span></p>
<p>在专栏的课后习题中的最后一题，提到了已经被传遍了的在太空中使用铅笔和太空笔的故事，原来那仅仅是个传说，真实的情况是美国人最开始也是用的铅笔，后来太空笔发明之后卖给了NASA和俄国佬，可见传说并不可信，<a href="http://zh.wikipedia.org/wiki/%E5%A4%AA%E7%A9%BA%E7%AD%86" target="_blank">真相可猛击这里</a>。</p>
<p><span style="color: #00ff00;">/***************************花絮******************************/</span></p>
<p><span style="color: #00ff00;"><span style="color: #000000;">全文完。EOF</span><br />
</span></p>
<p><span style="text-decoration: underline;"><span style="background-color: #ffffff; color: #000000;">/* 原创文章，本文采用 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="nofollow external"><abbr title="署名-非商业性使用-相同方式共享">BY-NC-SA</abbr></a> 协议进行授权. 转载请注明转自: <a href="http://stevewang.info/programming-peals_column-1%EF%BC%9Acracking-the-oyster">Swarm&#8217;s Blog</a>*/</span></span></p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals%25EF%25BC%2588%25E7%25BC%2596%25E7%25A8%258B%25E7%258F%25A0%25E7%258E%2591%25EF%25BC%2589%25E8%25AF%25BB%25E4%25B9%25A6%25E7%25AC%2594%25E8%25AE%25B0%25E4%25B9%258Bcolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 7：The Back of the Envelope" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-7%25EF%25BC%259Athe-back-of-the-envelope%2F&from=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 7：The Back of the Envelope</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/programming-pearls_column-1%ef%bc%9acracking-the-oyster//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world！</title>
		<link>http://stevewang.info/hello-world/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hello-world</link>
		<comments>http://stevewang.info/hello-world/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 14:34:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[杂七杂八]]></category>

		<guid isPermaLink="false">http://stevewang.info/?p=1</guid>
		<description><![CDATA[欢迎使用 WordPress。这是系统自动生成的演示文章。编辑或者删除它，开始您的博客！

从这次起好好经营这个博客。]]></description>
			<content:encoded><![CDATA[<p>欢迎使用 WordPress。这是系统自动生成的演示文章。编辑或者删除它，开始您的博客！</p>
<p>从这次起好好经营这个博客。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals_column-2%25EF%25BC%259Aahaalgorithms%2F&from=http%3A%2F%2Fstevewang.info%2Fhello-world%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5420988.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 2：Aha!Algorithms</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls-column-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fhello-world%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pealscolumn-4%25EF%25BC%259Awriting-correct-programs%2F&from=http%3A%2F%2Fstevewang.info%2Fhello-world%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/11/5468837.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 4：Writing Correct Programs</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-peals-column-5%25EF%25BC%259Aa-smaller-matter-of-programming%2F&from=http%3A%2F%2Fstevewang.info%2Fhello-world%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/12/5508365.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Peals（编程珠玑）读书笔记之COLUMN 5：A Smaller Matter of Programming</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fstevewang.info%2Fprogramming-pearls_column-1%25EF%25BC%259Acracking-the-oyster%2F&from=http%3A%2F%2Fstevewang.info%2Fhello-world%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/04/10/5421039.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Programming Pearls（编程珠玑）读书笔记之COLUMN 1：Cracking the oyster</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></content:encoded>
			<wfw:commentRss>http://stevewang.info/hello-world//feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

