<?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>进化的测试 &#187; 计算机技术</title>
	<atom:link href="http://magustest.com/blog/category/computer/feed/" rel="self" type="application/rss+xml" />
	<link>http://magustest.com/blog</link>
	<description>关注软件测试，白盒测试，自动化测试，性能测试</description>
	<lastBuildDate>Tue, 31 Aug 2010 16:19:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>代码中的注释</title>
		<link>http://magustest.com/blog/computer/code-comment/</link>
		<comments>http://magustest.com/blog/computer/code-comment/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 16:12:11 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[概念术语]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=661</guid>
		<description><![CDATA[我第一个实习的公司，是一个美资公司，在印度设立研发中心可能都已经有超过10年的经验了，那时候一些前辈们告诉我，印度人写的代码可能不如中国人那么聪明，但是他们的注释实在是非常详细，有时候甚至达到了1:1的比例，试想想，100行代码就有100行注释，这是多么的恐怖啊。 经常听到会有人抱怨道，怎么这段代码没有注释啊，这是为什么这样写的啊，如此云云。仿佛没有注释，这个世界就不转了。类似的事情也经常发生在QA们的身边，只不过注释换成了文档。 刚毕业的时候做白盒测试，现在回想起来，那时候的我测试的代码大部分都是不包含注释的，不过我测试起来并没有太大的困难，总结一下，应该有以下几点原因： 有意义的函数名、变量名。函数的命名让人一看就大概知道在做什么，例如PostBlog就是发布一篇博客，如果遇到一个叫SaveProfile的方法但做的却是加好友，那我想再多的注释我也会头晕 代码不会说谎。根据经验，如果一段代码理解起来很费劲，那么通常里面都会隐藏着问题。代码就是最好的注释，一些过时的注释，设置会对阅读代码的人产生误导 充分的沟通。虽然游走于几个项目组，跟不同的开发人员打交道，但是每当遇到问题的时候总会主动跟相关的人沟通，一个活生生的人坐在那里不问，却迷信什么文档，这真是本末倒置 注释，能不写就别写，实在要写，写WHY而不是WHAT。 联系一下最近在Team内写的一个新的回归测试工具，里面基本没有注释，希望过几个月以后，自己还能够看看代码就知道当时那段代码为什么这样写。 Share and Enjoy: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>我第一个实习的公司，是一个美资公司，在印度设立研发中心可能都已经有超过10年的经验了，那时候一些前辈们告诉我，印度人写的代码可能不如中国人那么聪明，但是他们的注释实在是非常详细，有时候甚至达到了1:1的比例，试想想，100行代码就有100行注释，这是多么的恐怖啊。</p>
<p>经常听到会有人抱怨道，怎么这段代码没有注释啊，这是为什么这样写的啊，如此云云。仿佛没有注释，这个世界就不转了。类似的事情也经常发生在QA们的身边，只不过注释换成了文档。</p>
<p>刚毕业的时候做白盒测试，现在回想起来，那时候的我测试的代码大部分都是不包含注释的，不过我测试起来并没有太大的困难，总结一下，应该有以下几点原因：</p>
<ol>
<li>有意义的函数名、变量名。函数的命名让人一看就大概知道在做什么，例如PostBlog就是发布一篇博客，如果遇到一个叫SaveProfile的方法但做的却是加好友，那我想再多的注释我也会头晕</li>
<li>代码不会说谎。根据经验，如果一段代码理解起来很费劲，那么通常里面都会隐藏着问题。代码就是最好的注释，一些过时的注释，设置会对阅读代码的人产生误导</li>
<li>充分的沟通。虽然游走于几个项目组，跟不同的开发人员打交道，但是每当遇到问题的时候总会主动跟相关的人沟通，一个活生生的人坐在那里不问，却迷信什么文档，这真是本末倒置</li>
</ol>
<p>注释，能不写就别写，实在要写，写WHY而不是WHAT。</p>
<p>联系一下最近在Team内写的一个新的回归测试工具，里面基本没有注释，希望过几个月以后，自己还能够看看代码就知道当时那段代码为什么这样写。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&amp;title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A&amp;annotation=%E6%88%91%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%AE%9E%E4%B9%A0%E7%9A%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E6%98%AF%E4%B8%80%E4%B8%AA%E7%BE%8E%E8%B5%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E5%9C%A8%E5%8D%B0%E5%BA%A6%E8%AE%BE%E7%AB%8B%E7%A0%94%E5%8F%91%E4%B8%AD%E5%BF%83%E5%8F%AF%E8%83%BD%E9%83%BD%E5%B7%B2%E7%BB%8F%E6%9C%89%E8%B6%85%E8%BF%8710%E5%B9%B4%E7%9A%84%E7%BB%8F%E9%AA%8C%E4%BA%86%EF%BC%8C%E9%82%A3%E6%97%B6%E5%80%99%E4%B8%80%E4%BA%9B%E5%89%8D%E8%BE%88%E4%BB%AC%E5%91%8A%E8%AF%89%E6%88%91%EF%BC%8C%E5%8D%B0%E5%BA%A6%E4%BA%BA%E5%86%99%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8F%AF%E8%83%BD%E4%B8%8D%E5%A6%82%E4%B8%AD%E5%9B%BD%E4%BA%BA%E9%82%A3%E4%B9%88%E8%81%AA%E6%98%8E%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BB%96%E4%BB%AC%E7%9A%84%E6%B3%A8%E9%87%8A%E5%AE%9E%E5%9C%A8%E6%98%AF%E9%9D" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&amp;title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A&amp;bodytext=%E6%88%91%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%AE%9E%E4%B9%A0%E7%9A%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E6%98%AF%E4%B8%80%E4%B8%AA%E7%BE%8E%E8%B5%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E5%9C%A8%E5%8D%B0%E5%BA%A6%E8%AE%BE%E7%AB%8B%E7%A0%94%E5%8F%91%E4%B8%AD%E5%BF%83%E5%8F%AF%E8%83%BD%E9%83%BD%E5%B7%B2%E7%BB%8F%E6%9C%89%E8%B6%85%E8%BF%8710%E5%B9%B4%E7%9A%84%E7%BB%8F%E9%AA%8C%E4%BA%86%EF%BC%8C%E9%82%A3%E6%97%B6%E5%80%99%E4%B8%80%E4%BA%9B%E5%89%8D%E8%BE%88%E4%BB%AC%E5%91%8A%E8%AF%89%E6%88%91%EF%BC%8C%E5%8D%B0%E5%BA%A6%E4%BA%BA%E5%86%99%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8F%AF%E8%83%BD%E4%B8%8D%E5%A6%82%E4%B8%AD%E5%9B%BD%E4%BA%BA%E9%82%A3%E4%B9%88%E8%81%AA%E6%98%8E%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BB%96%E4%BB%AC%E7%9A%84%E6%B3%A8%E9%87%8A%E5%AE%9E%E5%9C%A8%E6%98%AF%E9%9D" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&amp;title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A&amp;notes=%E6%88%91%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%AE%9E%E4%B9%A0%E7%9A%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E6%98%AF%E4%B8%80%E4%B8%AA%E7%BE%8E%E8%B5%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E5%9C%A8%E5%8D%B0%E5%BA%A6%E8%AE%BE%E7%AB%8B%E7%A0%94%E5%8F%91%E4%B8%AD%E5%BF%83%E5%8F%AF%E8%83%BD%E9%83%BD%E5%B7%B2%E7%BB%8F%E6%9C%89%E8%B6%85%E8%BF%8710%E5%B9%B4%E7%9A%84%E7%BB%8F%E9%AA%8C%E4%BA%86%EF%BC%8C%E9%82%A3%E6%97%B6%E5%80%99%E4%B8%80%E4%BA%9B%E5%89%8D%E8%BE%88%E4%BB%AC%E5%91%8A%E8%AF%89%E6%88%91%EF%BC%8C%E5%8D%B0%E5%BA%A6%E4%BA%BA%E5%86%99%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8F%AF%E8%83%BD%E4%B8%8D%E5%A6%82%E4%B8%AD%E5%9B%BD%E4%BA%BA%E9%82%A3%E4%B9%88%E8%81%AA%E6%98%8E%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BB%96%E4%BB%AC%E7%9A%84%E6%B3%A8%E9%87%8A%E5%AE%9E%E5%9C%A8%E6%98%AF%E9%9D" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&amp;t=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&amp;title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F&amp;title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A&amp;body=%E6%88%91%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%AE%9E%E4%B9%A0%E7%9A%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E6%98%AF%E4%B8%80%E4%B8%AA%E7%BE%8E%E8%B5%84%E5%85%AC%E5%8F%B8%EF%BC%8C%E5%9C%A8%E5%8D%B0%E5%BA%A6%E8%AE%BE%E7%AB%8B%E7%A0%94%E5%8F%91%E4%B8%AD%E5%BF%83%E5%8F%AF%E8%83%BD%E9%83%BD%E5%B7%B2%E7%BB%8F%E6%9C%89%E8%B6%85%E8%BF%8710%E5%B9%B4%E7%9A%84%E7%BB%8F%E9%AA%8C%E4%BA%86%EF%BC%8C%E9%82%A3%E6%97%B6%E5%80%99%E4%B8%80%E4%BA%9B%E5%89%8D%E8%BE%88%E4%BB%AC%E5%91%8A%E8%AF%89%E6%88%91%EF%BC%8C%E5%8D%B0%E5%BA%A6%E4%BA%BA%E5%86%99%E7%9A%84%E4%BB%A3%E7%A0%81%E5%8F%AF%E8%83%BD%E4%B8%8D%E5%A6%82%E4%B8%AD%E5%9B%BD%E4%BA%BA%E9%82%A3%E4%B9%88%E8%81%AA%E6%98%8E%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BB%96%E4%BB%AC%E7%9A%84%E6%B3%A8%E9%87%8A%E5%AE%9E%E5%9C%A8%E6%98%AF%E9%9D" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fcode-comment%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/computer/code-comment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>用PDB库调试Python程序</title>
		<link>http://magustest.com/blog/python/use-pdb-debug-python/</link>
		<comments>http://magustest.com/blog/python/use-pdb-debug-python/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 13:17:49 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[计算机技术]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=640</guid>
		<description><![CDATA[如果使用过微软技术的朋友应该体会过微软的Visual Studio系列IDE给debug程序带来的方便，换了个工作就没有Visual Studio了，对于我这种从未在非GUI环境下调试过程序的人来说实在有点不爽，今天花了点时间看了一下Python自带的pdb库，发现用pdb来调试程序还是很方便的，当然了，什么远程调试，多线程之类，pdb是搞不定的。 用pdb调试有多种方式可选： 1. 命令行启动目标程序，加上-m参数，这样调用myscript.py的话断点就是程序的执行第一行之前 python -m pdb myscript.py 2. 在Python交互环境中启用调试 &#62;&#62;&#62; import pdb &#62;&#62;&#62; import mymodule &#62;&#62;&#62; pdb.run(&#8216;mymodule.test()&#8217;) 3. 比较常用的，就是在程序中间插入一段程序，相对于在一般IDE里面打上断点然后启动debug，不过这种方式是hardcode的 if __name__ == &#34;__main__&#34;: a = 1 import pdb pdb.set_trace&#40;&#41; b = 2 c = a + b print &#40;c&#41; 然后正常运行脚本，到了pdb.set_trace()那就会定下来，就可以看到调试的提示符(Pdb)了 常用的调试命令 h(elp)，会打印当前版本Pdb可用的命令，如果要查询某个命令，可以输入 h [command]，例如：“h l” &#8212; 查看list命令 l(ist)，可以列出当前将要运行的代码块 (Pdb) l 497 pdb.set_trace() [...]


Related posts:<ol><li><a href='http://magustest.com/blog/uncategorized/python-comment-multiline/' rel='bookmark' title='Permanent Link: Python多行注释技巧'>Python多行注释技巧</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>如果使用过微软技术的朋友应该体会过微软的Visual Studio系列IDE给debug程序带来的方便，换了个工作就没有Visual Studio了，对于我这种从未在非GUI环境下调试过程序的人来说实在有点不爽，今天花了点时间看了一下Python自带的pdb库，发现用pdb来调试程序还是很方便的，当然了，什么远程调试，多线程之类，pdb是搞不定的。</p>
<p>用pdb调试有多种方式可选：</p>
<p>1. 命令行启动目标程序，加上-m参数，这样调用myscript.py的话断点就是程序的执行第一行之前<br />
python -m pdb myscript.py</p>
<p>2. 在Python交互环境中启用调试<br />
&gt;&gt;&gt; import pdb<br />
&gt;&gt;&gt; import mymodule<br />
&gt;&gt;&gt; pdb.run(&#8216;mymodule.test()&#8217;)</p>
<p>3. 比较常用的，就是在程序中间插入一段程序，相对于在一般IDE里面打上断点然后启动debug，不过这种方式是hardcode的</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    a = <span style="color: #ff4500;">1</span>
    <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">pdb</span>
    <span style="color: #dc143c;">pdb</span>.<span style="color: black;">set_trace</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    b = <span style="color: #ff4500;">2</span>
    c = a + b
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: black;">&#40;</span>c<span style="color: black;">&#41;</span></pre></div></div>

<p>然后正常运行脚本，到了pdb.set_trace()那就会定下来，就可以看到调试的提示符(Pdb)了</p>
<p>常用的调试命令</p>
<ul>
<li>h(elp)，会打印当前版本Pdb可用的命令，如果要查询某个命令，可以输入 h [command]，例如：“h l” &#8212; 查看list命令</li>
</ul>
<ul>
<li>l(ist)，可以列出当前将要运行的代码块</li>
</ul>
<p><span style="color: #008080;">(Pdb) l<br />
497             pdb.set_trace()<br />
498             base_data = {}<br />
499             new_data = {}<br />
500             try:<br />
501                 execfile(base_file_name,{},base_data)<br />
502  -&gt;             execfile(new_file_name,{},new_data)<br />
503             except:<br />
504                 logger.writeLog(&#8220;error! load result log error!&#8221;)<br />
505                 print &#8220;load cmp logs error!&#8221;<br />
506                 raise Exception, &#8220;load cmp logs error!&#8221;<br />
507 </span></p>
<ul>
<li>b(reak)， 设置断点，例如 &#8220;b 77&#8243;，就是在当前脚本的77行打上断点，还能输入函数名作为参数，断点就打到具体的函数入口，如果只敲b，会显示现有的全部断点</li>
</ul>
<p><span style="color: #008080;">(Pdb) b 504<br />
Breakpoint 4 at /home/jchen/regression/regressionLogCMP.py:504</span></p>
<ul>
<li>condition bpnumber [condition]，设置条件断点，下面语句就是对第4个断点加上条件“a==3”</li>
</ul>
<p><span style="color: #008080;">(Pdb) condition 4 a==3<br />
(Pdb) b<br />
Num Type         Disp Enb   Where<br />
4   breakpoint    keep yes at /home/jchen/regression/regressionLogCMP.py:504<br />
stop only if a==3</span></p>
<ul>
<li>cl(ear)，如果后面带有参数，就是清除指定的断点（我在Python2.4上从来没成功过！！！）；如果不带参数就是清除所有的断点</li>
</ul>
<p><span style="color: #008080;">(Pdb) cl<br />
Clear all breaks? y</span></p>
<ul>
<li>disable/enable，禁用/激活断点</li>
</ul>
<p><span style="color: #008080;">(Pdb) disable 3<br />
(Pdb) b<br />
Num Type         Disp Enb   Where<br />
3   breakpoint    keep no  at /home/jchen/regression/regressionLogCMP.py:505</span></p>
<ul>
<li>n(ext)，让程序运行下一行，如果当前语句有一个函数调用，用n是不会进入被调用的函数体中的</li>
</ul>
<p><span id="more-640"></span></p>
<ul>
<li>s(tep)，跟n相似，但是如果当前有一个函数调用，那么s会进入被调用的函数体中</li>
</ul>
<ul>
<li>c(ont(inue))，让程序正常运行，直到遇到断点</li>
</ul>
<ul>
<li>j(ump)，让程序跳转到指定的行数</li>
</ul>
<p><span style="color: #008080;">(Pdb) j 497<br />
&gt; /home/jchen/regression/regressionLogCMP.py(497)compareLog()<br />
-&gt; pdb.set_trace()</span></p>
<ul>
<li>a(rgs)，打印当前函数的参数</li>
</ul>
<p><span style="color: #008080;">(Pdb) a<br />
_logger =<br />
_base = ./base/MRM-8137.log<br />
_new = ./new/MRM-8137.log<br />
_caseid = 5550001<br />
_toStepNum = 10<br />
_cmpMap = {&#8216;_bcmpbinarylog&#8217;: &#8216;True&#8217;, &#8216;_bcmpLog&#8217;: &#8216;True&#8217;, &#8216;_bcmpresp&#8217;: &#8216;True&#8217;}</span></p>
<ul>
<li>p，最有用的命令之一，打印某个变量</li>
</ul>
<p><span style="color: #008080;">(Pdb) p _new<br />
u&#8217;./new/MRM-8137.log&#8217;</span></p>
<ul>
<li>！，感叹号后面跟着语句，可以直接改变某个变量</li>
</ul>
<ul>
<li>q(uit)，退出调试</li>
</ul>
<p>发现在命令行下调试程序也是一件挺有意思的事情，记录下来分享一下</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&amp;title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F&amp;annotation=%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%E8%BF%87%E5%BE%AE%E8%BD%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E6%9C%8B%E5%8F%8B%E5%BA%94%E8%AF%A5%E4%BD%93%E4%BC%9A%E8%BF%87%E5%BE%AE%E8%BD%AF%E7%9A%84Visual%20Studio%E7%B3%BB%E5%88%97IDE%E7%BB%99debug%E7%A8%8B%E5%BA%8F%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%96%B9%E4%BE%BF%EF%BC%8C%E6%8D%A2%E4%BA%86%E4%B8%AA%E5%B7%A5%E4%BD%9C%E5%B0%B1%E6%B2%A1%E6%9C%89Visual%20Studio%E4%BA%86%EF%BC%8C%E5%AF%B9%E4%BA%8E%E6%88%91%E8%BF%99%E7%A7%8D%E4%BB%8E%E6%9C%AA%E5%9C%A8%E9%9D%9EGUI%E7%8E%AF%E5%A2%83%E4%B8%8B%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B%E5%BA%8F%E7%9A%84%E4%BA%BA%E6%9D%A5%E8%AF%B4%E5%AE%9E%E5%9C%A8%E6%9C%89%E7%82%B9%E4%B8%8D%E7%88%BD%EF%BC%8C%E4%BB%8A%E5%A4%A9" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&amp;title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F&amp;bodytext=%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%E8%BF%87%E5%BE%AE%E8%BD%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E6%9C%8B%E5%8F%8B%E5%BA%94%E8%AF%A5%E4%BD%93%E4%BC%9A%E8%BF%87%E5%BE%AE%E8%BD%AF%E7%9A%84Visual%20Studio%E7%B3%BB%E5%88%97IDE%E7%BB%99debug%E7%A8%8B%E5%BA%8F%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%96%B9%E4%BE%BF%EF%BC%8C%E6%8D%A2%E4%BA%86%E4%B8%AA%E5%B7%A5%E4%BD%9C%E5%B0%B1%E6%B2%A1%E6%9C%89Visual%20Studio%E4%BA%86%EF%BC%8C%E5%AF%B9%E4%BA%8E%E6%88%91%E8%BF%99%E7%A7%8D%E4%BB%8E%E6%9C%AA%E5%9C%A8%E9%9D%9EGUI%E7%8E%AF%E5%A2%83%E4%B8%8B%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B%E5%BA%8F%E7%9A%84%E4%BA%BA%E6%9D%A5%E8%AF%B4%E5%AE%9E%E5%9C%A8%E6%9C%89%E7%82%B9%E4%B8%8D%E7%88%BD%EF%BC%8C%E4%BB%8A%E5%A4%A9" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&amp;title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F&amp;notes=%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%E8%BF%87%E5%BE%AE%E8%BD%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E6%9C%8B%E5%8F%8B%E5%BA%94%E8%AF%A5%E4%BD%93%E4%BC%9A%E8%BF%87%E5%BE%AE%E8%BD%AF%E7%9A%84Visual%20Studio%E7%B3%BB%E5%88%97IDE%E7%BB%99debug%E7%A8%8B%E5%BA%8F%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%96%B9%E4%BE%BF%EF%BC%8C%E6%8D%A2%E4%BA%86%E4%B8%AA%E5%B7%A5%E4%BD%9C%E5%B0%B1%E6%B2%A1%E6%9C%89Visual%20Studio%E4%BA%86%EF%BC%8C%E5%AF%B9%E4%BA%8E%E6%88%91%E8%BF%99%E7%A7%8D%E4%BB%8E%E6%9C%AA%E5%9C%A8%E9%9D%9EGUI%E7%8E%AF%E5%A2%83%E4%B8%8B%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B%E5%BA%8F%E7%9A%84%E4%BA%BA%E6%9D%A5%E8%AF%B4%E5%AE%9E%E5%9C%A8%E6%9C%89%E7%82%B9%E4%B8%8D%E7%88%BD%EF%BC%8C%E4%BB%8A%E5%A4%A9" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&amp;t=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&amp;title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F&amp;title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F&amp;body=%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%E8%BF%87%E5%BE%AE%E8%BD%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E6%9C%8B%E5%8F%8B%E5%BA%94%E8%AF%A5%E4%BD%93%E4%BC%9A%E8%BF%87%E5%BE%AE%E8%BD%AF%E7%9A%84Visual%20Studio%E7%B3%BB%E5%88%97IDE%E7%BB%99debug%E7%A8%8B%E5%BA%8F%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%96%B9%E4%BE%BF%EF%BC%8C%E6%8D%A2%E4%BA%86%E4%B8%AA%E5%B7%A5%E4%BD%9C%E5%B0%B1%E6%B2%A1%E6%9C%89Visual%20Studio%E4%BA%86%EF%BC%8C%E5%AF%B9%E4%BA%8E%E6%88%91%E8%BF%99%E7%A7%8D%E4%BB%8E%E6%9C%AA%E5%9C%A8%E9%9D%9EGUI%E7%8E%AF%E5%A2%83%E4%B8%8B%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B%E5%BA%8F%E7%9A%84%E4%BA%BA%E6%9D%A5%E8%AF%B4%E5%AE%9E%E5%9C%A8%E6%9C%89%E7%82%B9%E4%B8%8D%E7%88%BD%EF%BC%8C%E4%BB%8A%E5%A4%A9" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E7%94%A8PDB%E5%BA%93%E8%B0%83%E8%AF%95Python%E7%A8%8B%E5%BA%8F%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fpython%2Fuse-pdb-debug-python%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Related posts:<ol><li><a href='http://magustest.com/blog/uncategorized/python-comment-multiline/' rel='bookmark' title='Permanent Link: Python多行注释技巧'>Python多行注释技巧</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/python/use-pdb-debug-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>在Lua中实现简单的StringBuffer</title>
		<link>http://magustest.com/blog/computer/stringbuffer-in-lua/</link>
		<comments>http://magustest.com/blog/computer/stringbuffer-in-lua/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 09:12:08 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[Lua]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=596</guid>
		<description><![CDATA[在Lua中，字符串是一个常量，如果用字符串连接符“..”把2个字符串连接起来，例如first_str = first_str .. second_str，那么原来的first_str和second_str就会作为垃圾等待回收，first_str引用的是一个新的字符串，如果在程序里面有大量的字符串连接操作的话，性能会十分低下。Lua是一个很简洁的语言，他没有StringBuffer的实现，但是其实我们可以动手写一个简单的StringBuffer实现，来避免性能的问题。 首先定义一个叫StringBuffer的table，使得这个StringBuffer被调用的时候看起来像是面向对象的样子 ：） 然后分别定义两个方法append和tostr，实现的原理就是：append用table来保存所有字符串，tostr把保存了字符串的table用concat转成真正的字符串。 StringBuffer = &#123;&#125; StringBuffer.append = function&#40;t, str&#41; if t and str then table.insert&#40;t, str&#41; end end StringBuffer.tostr = function&#40;t&#41; if t then return table.concat&#40;t&#41; end end StringBuffer.new = function&#40;&#41; return &#123;&#125; end 调用的时候大概如下，摘录了一段代码。。。 all_assets = StringBuffer.new&#40;&#41; for asset in ctx:allassets&#40;&#41; do StringBuffer.append&#40;all_assets, asset:id&#40;&#41;&#41; StringBuffer.append&#40;all_assets, ', '&#41; end [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>在Lua中，字符串是一个常量，如果用字符串连接符“..”把2个字符串连接起来，例如first_str = first_str .. second_str，那么原来的first_str和second_str就会作为垃圾等待回收，first_str引用的是一个新的字符串，如果在程序里面有大量的字符串连接操作的话，性能会十分低下。Lua是一个很简洁的语言，他没有StringBuffer的实现，但是其实我们可以动手写一个简单的StringBuffer实现，来避免性能的问题。</p>
<p>首先定义一个叫StringBuffer的table，使得这个StringBuffer被调用的时候看起来像是面向对象的样子 ：）<br />
然后分别定义两个方法append和tostr，实现的原理就是：append用table来保存所有字符串，tostr把保存了字符串的table用concat转成真正的字符串。</p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;">StringBuffer <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>
StringBuffer.append <span style="color: #66cc66;">=</span>  <span style="color: #b1b100;">function</span><span style="color: #66cc66;">&#40;</span>t, str<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">if</span> t <span style="color: #b1b100;">and</span> str <span style="color: #b1b100;">then</span>
    <span style="color: #b1b100;">table.insert</span><span style="color: #66cc66;">&#40;</span>t, str<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">end</span>
<span style="color: #b1b100;">end</span>
StringBuffer.tostr <span style="color: #66cc66;">=</span>  <span style="color: #b1b100;">function</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">if</span> t <span style="color: #b1b100;">then</span>
    <span style="color: #b1b100;">return</span> <span style="color: #b1b100;">table.concat</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">end</span>
<span style="color: #b1b100;">end</span>
StringBuffer.new <span style="color: #66cc66;">=</span> <span style="color: #b1b100;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">end</span></pre></div></div>

<p>调用的时候大概如下，摘录了一段代码。。。</p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;">all_assets <span style="color: #66cc66;">=</span> StringBuffer.new<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">for</span> asset <span style="color: #b1b100;">in</span> ctx:allassets<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">do</span>
    StringBuffer.append<span style="color: #66cc66;">&#40;</span>all_assets, asset:id<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    StringBuffer.append<span style="color: #66cc66;">&#40;</span>all_assets, <span style="color: #ff0000;">', '</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">end</span>
result <span style="color: #66cc66;">=</span> StringBuffer.tostr<span style="color: #66cc66;">&#40;</span>all_assets<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">print</span> <span style="color: #66cc66;">&#40;</span>result<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>在Lua中实现这样的一个StringBuffer，既可以避免潜在的性能问题，又可以使得代码看起来更加易懂~好了，重构以前的代码去了。。。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&amp;title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer&amp;annotation=%E5%9C%A8Lua%E4%B8%AD%EF%BC%8C%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B8%B8%E9%87%8F%EF%BC%8C%E5%A6%82%E6%9E%9C%E7%94%A8%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E7%AC%A6%E2%80%9C..%E2%80%9D%E6%8A%8A2%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E8%B5%B7%E6%9D%A5%EF%BC%8C%E4%BE%8B%E5%A6%82first_str%20%3D%20first_str%20..%20second_str%EF%BC%8C%E9%82%A3%E4%B9%88%E5%8E%9F%E6%9D%A5%E7%9A%84first_str%E5%92%8Csecond_str%E5%B0%B1%E4%BC%9A%E4%BD%9C%E4%B8%BA%E5%9E%83%E5%9C%BE%E7%AD%89%E5%BE%85%E5%9B%9E%E6%94%B6%EF%BC%8Cfirst_str%E5%BC%95%E7%94%A8%E7%9A%84%E6%98%AF%E4%B8%80%E4%B8%AA%E6%96%B0%E7" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&amp;title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer&amp;bodytext=%E5%9C%A8Lua%E4%B8%AD%EF%BC%8C%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B8%B8%E9%87%8F%EF%BC%8C%E5%A6%82%E6%9E%9C%E7%94%A8%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E7%AC%A6%E2%80%9C..%E2%80%9D%E6%8A%8A2%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E8%B5%B7%E6%9D%A5%EF%BC%8C%E4%BE%8B%E5%A6%82first_str%20%3D%20first_str%20..%20second_str%EF%BC%8C%E9%82%A3%E4%B9%88%E5%8E%9F%E6%9D%A5%E7%9A%84first_str%E5%92%8Csecond_str%E5%B0%B1%E4%BC%9A%E4%BD%9C%E4%B8%BA%E5%9E%83%E5%9C%BE%E7%AD%89%E5%BE%85%E5%9B%9E%E6%94%B6%EF%BC%8Cfirst_str%E5%BC%95%E7%94%A8%E7%9A%84%E6%98%AF%E4%B8%80%E4%B8%AA%E6%96%B0%E7" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&amp;title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer&amp;notes=%E5%9C%A8Lua%E4%B8%AD%EF%BC%8C%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B8%B8%E9%87%8F%EF%BC%8C%E5%A6%82%E6%9E%9C%E7%94%A8%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E7%AC%A6%E2%80%9C..%E2%80%9D%E6%8A%8A2%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E8%B5%B7%E6%9D%A5%EF%BC%8C%E4%BE%8B%E5%A6%82first_str%20%3D%20first_str%20..%20second_str%EF%BC%8C%E9%82%A3%E4%B9%88%E5%8E%9F%E6%9D%A5%E7%9A%84first_str%E5%92%8Csecond_str%E5%B0%B1%E4%BC%9A%E4%BD%9C%E4%B8%BA%E5%9E%83%E5%9C%BE%E7%AD%89%E5%BE%85%E5%9B%9E%E6%94%B6%EF%BC%8Cfirst_str%E5%BC%95%E7%94%A8%E7%9A%84%E6%98%AF%E4%B8%80%E4%B8%AA%E6%96%B0%E7" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&amp;t=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&amp;title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F&amp;title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer&amp;body=%E5%9C%A8Lua%E4%B8%AD%EF%BC%8C%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B8%B8%E9%87%8F%EF%BC%8C%E5%A6%82%E6%9E%9C%E7%94%A8%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E7%AC%A6%E2%80%9C..%E2%80%9D%E6%8A%8A2%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5%E8%B5%B7%E6%9D%A5%EF%BC%8C%E4%BE%8B%E5%A6%82first_str%20%3D%20first_str%20..%20second_str%EF%BC%8C%E9%82%A3%E4%B9%88%E5%8E%9F%E6%9D%A5%E7%9A%84first_str%E5%92%8Csecond_str%E5%B0%B1%E4%BC%9A%E4%BD%9C%E4%B8%BA%E5%9E%83%E5%9C%BE%E7%AD%89%E5%BE%85%E5%9B%9E%E6%94%B6%EF%BC%8Cfirst_str%E5%BC%95%E7%94%A8%E7%9A%84%E6%98%AF%E4%B8%80%E4%B8%AA%E6%96%B0%E7" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E5%9C%A8Lua%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%AE%80%E5%8D%95%E7%9A%84StringBuffer%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fstringbuffer-in-lua%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/computer/stringbuffer-in-lua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>介绍一个格式化XML文档（自动缩进）的工具</title>
		<link>http://magustest.com/blog/computer/formatting-xml-auto-indent/</link>
		<comments>http://magustest.com/blog/computer/formatting-xml-auto-indent/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 02:27:08 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=580</guid>
		<description><![CDATA[有时候会遇到这样的一种情况，我们的数据以XML格式发送HTTP请求到服务器，然后服务器的相应也是XML格式的数据，那么我们看这堆XML数据的时候就会比较费劲，因为这些XML的显示格式是乱的，也就是没有做缩进的。网上有好几种方法可以对XML文档进行缩进输出。现在介绍一个免费的工具：Firstobject&#8217;s free XML editor。该工具用C++编写，短小精悍，格式化XML文档起来也非常快，它可以帮我们格式化XML文档，实现自动缩进，提高工作效率。 Share and Enjoy: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>有时候会遇到这样的一种情况，我们的数据以XML格式发送HTTP请求到服务器，然后服务器的相应也是XML格式的数据，那么我们看这堆XML数据的时候就会比较费劲，因为这些XML的显示格式是乱的，也就是没有做缩进的。网上有好几种方法可以对XML文档进行缩进输出。现在介绍一个免费的工具：<a href="http://www.firstobject.com/dn_editor.htm" target="_blank">Firstobject&#8217;s free XML editor</a>。该工具用C++编写，短小精悍，格式化XML文档起来也非常快，它可以帮我们格式化XML文档，实现自动缩进，提高工作效率。</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fformatting-xml-auto-indent%2F&amp;t=%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E6%A0%BC%E5%BC%8F%E5%8C%96XML%E6%96%87%E6%A1%A3%EF%BC%88%E8%87%AA%E5%8A%A8%E7%BC%A9%E8%BF%9B%EF%BC%89%E7%9A%84%E5%B7%A5%E5%85%B7" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fformatting-xml-auto-indent%2F&title=%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E6%A0%BC%E5%BC%8F%E5%8C%96XML%E6%96%87%E6%A1%A3%EF%BC%88%E8%87%AA%E5%8A%A8%E7%BC%A9%E8%BF%9B%EF%BC%89%E7%9A%84%E5%B7%A5%E5%85%B7" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fformatting-xml-auto-indent%2F&title=%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E6%A0%BC%E5%BC%8F%E5%8C%96XML%E6%96%87%E6%A1%A3%EF%BC%88%E8%87%AA%E5%8A%A8%E7%BC%A9%E8%BF%9B%EF%BC%89%E7%9A%84%E5%B7%A5%E5%85%B7&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E6%A0%BC%E5%BC%8F%E5%8C%96XML%E6%96%87%E6%A1%A3%EF%BC%88%E8%87%AA%E5%8A%A8%E7%BC%A9%E8%BF%9B%EF%BC%89%E7%9A%84%E5%B7%A5%E5%85%B7&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fformatting-xml-auto-indent%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fformatting-xml-auto-indent%2F&amp;title=%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E6%A0%BC%E5%BC%8F%E5%8C%96XML%E6%96%87%E6%A1%A3%EF%BC%88%E8%87%AA%E5%8A%A8%E7%BC%A9%E8%BF%9B%EF%BC%89%E7%9A%84%E5%B7%A5%E5%85%B7" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E6%A0%BC%E5%BC%8F%E5%8C%96XML%E6%96%87%E6%A1%A3%EF%BC%88%E8%87%AA%E5%8A%A8%E7%BC%A9%E8%BF%9B%EF%BC%89%E7%9A%84%E5%B7%A5%E5%85%B7&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fformatting-xml-auto-indent%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E6%A0%BC%E5%BC%8F%E5%8C%96XML%E6%96%87%E6%A1%A3%EF%BC%88%E8%87%AA%E5%8A%A8%E7%BC%A9%E8%BF%9B%EF%BC%89%E7%9A%84%E5%B7%A5%E5%85%B7%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fformatting-xml-auto-indent%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/computer/formatting-xml-auto-indent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>在SQL Server2005中查找包含特定字符的存储过程</title>
		<link>http://magustest.com/blog/computer/retrieve-procedures-in-particular-words/</link>
		<comments>http://magustest.com/blog/computer/retrieve-procedures-in-particular-words/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 08:24:08 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[计算机技术]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=353</guid>
		<description><![CDATA[select p.name, m.definition from sys.procedures p inner join sys.sql_modules m on p.object_id = m.object_id where m.definition like &#8216;%特定字符%&#8217; 测试的过程中在数据库里面找到一张表，还知道一个GET这张表的数据的存储过程，想找一下有没有其他操作这张表的存储过程要怎么办呢？运行上面的存储过程就可以了。例如说某张数据表的名字是“UserRankStatus”，那么就用“UserRankStatus”替换了上面的“特定字符”就好了。这个存储过程是偶然在网上找到，出处是“怡红公子”，也就是我们公司的DBA。世界真小，囧…… Share and Enjoy: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>select p.name, m.definition<br />
from sys.procedures p inner join sys.sql_modules m<br />
on p.object_id = m.object_id<br />
where m.definition like &#8216;%<strong><span style="color: #ff0000;">特定字符</span></strong>%&#8217;</p>
<p>测试的过程中在数据库里面找到一张表，还知道一个GET这张表的数据的存储过程，想找一下有没有其他操作这张表的存储过程要怎么办呢？运行上面的存储过程就可以了。例如说某张数据表的名字是“UserRankStatus”，那么就用“UserRankStatus”替换了上面的“特定字符”就好了。这个存储过程是偶然在网上找到，出处是“怡红公子”，也就是我们公司的DBA。世界真小，囧……</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&amp;title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&amp;annotation=select%20p.name%2C%20m.definition%0Afrom%20sys.procedures%20p%20inner%20join%20sys.sql_modules%20m%0Aon%20p.object_id%20%3D%20m.object_id%0Awhere%20m.definition%20like%20%27%25%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%25%27%0A%0A%E6%B5%8B%E8%AF%95%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%9C%A8%E6%95%B0%E6%8D%AE%E5%BA%93%E9%87%8C%E9%9D%A2%E6%89%BE%E5%88%B0%E4%B8%80%E5%BC%A0%E8%A1%A8%EF%BC%8C%E8%BF%98%E7%9F%A5%E9%81%93%E4%B8%80%E4%B8%AAGET%E8%BF%99%E5%BC%A0%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9A%84%E5%AD%98%E5%82%A8%E8" title="Google Bookmarks"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&amp;title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&amp;bodytext=select%20p.name%2C%20m.definition%0Afrom%20sys.procedures%20p%20inner%20join%20sys.sql_modules%20m%0Aon%20p.object_id%20%3D%20m.object_id%0Awhere%20m.definition%20like%20%27%25%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%25%27%0A%0A%E6%B5%8B%E8%AF%95%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%9C%A8%E6%95%B0%E6%8D%AE%E5%BA%93%E9%87%8C%E9%9D%A2%E6%89%BE%E5%88%B0%E4%B8%80%E5%BC%A0%E8%A1%A8%EF%BC%8C%E8%BF%98%E7%9F%A5%E9%81%93%E4%B8%80%E4%B8%AAGET%E8%BF%99%E5%BC%A0%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9A%84%E5%AD%98%E5%82%A8%E8" title="Digg"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&amp;title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&amp;notes=select%20p.name%2C%20m.definition%0Afrom%20sys.procedures%20p%20inner%20join%20sys.sql_modules%20m%0Aon%20p.object_id%20%3D%20m.object_id%0Awhere%20m.definition%20like%20%27%25%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%25%27%0A%0A%E6%B5%8B%E8%AF%95%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%9C%A8%E6%95%B0%E6%8D%AE%E5%BA%93%E9%87%8C%E9%9D%A2%E6%89%BE%E5%88%B0%E4%B8%80%E5%BC%A0%E8%A1%A8%EF%BC%8C%E8%BF%98%E7%9F%A5%E9%81%93%E4%B8%80%E4%B8%AAGET%E8%BF%99%E5%BC%A0%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9A%84%E5%AD%98%E5%82%A8%E8" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&amp;t=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&amp;title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F&amp;title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&amp;body=select%20p.name%2C%20m.definition%0Afrom%20sys.procedures%20p%20inner%20join%20sys.sql_modules%20m%0Aon%20p.object_id%20%3D%20m.object_id%0Awhere%20m.definition%20like%20%27%25%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%25%27%0A%0A%E6%B5%8B%E8%AF%95%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%9C%A8%E6%95%B0%E6%8D%AE%E5%BA%93%E9%87%8C%E9%9D%A2%E6%89%BE%E5%88%B0%E4%B8%80%E5%BC%A0%E8%A1%A8%EF%BC%8C%E8%BF%98%E7%9F%A5%E9%81%93%E4%B8%80%E4%B8%AAGET%E8%BF%99%E5%BC%A0%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9A%84%E5%AD%98%E5%82%A8%E8" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E5%9C%A8SQL%20Server2005%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fretrieve-procedures-in-particular-words%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/computer/retrieve-procedures-in-particular-words/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>认证和授权的区别 Authentication vs. Authorization</title>
		<link>http://magustest.com/blog/computer/different-between-authentication-and-authorization/</link>
		<comments>http://magustest.com/blog/computer/different-between-authentication-and-authorization/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 03:40:51 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[概念术语]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=129</guid>
		<description><![CDATA[简单来说，认证（Authentication ）是用来回答以下问题： 用户是谁 当前用户是否真的是他所代表的角色 通常来说，一个登陆系统，就是一个认证的系统。那么授权（Authorization）又是什么呢？授权通常是用来回答以下问题： 用户A是否被授权访问资源R 用户A是否被授权执行P操作 常见的例如密码相册那些应用，就是应用到了授权系统。 Share and Enjoy: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 宋体;">简单来说，认证（Authentication ）是用来回答以下问题：</span><br style="font-family: 宋体;" /></p>
<ul style="font-family: 宋体;">
<li>用户是谁</li>
<li>当前用户是否真的是他所代表的角色</li>
</ul>
<p><span style="font-family: 宋体;">通常来说，一个登陆系统，就是一个认证的系统。</span><br style="font-family: 宋体;" /><br style="font-family: 宋体;" /><span style="font-family: 宋体;">那么授权（Authorization）又是什么呢？授权通常是用来回答以下问题：</span><br style="font-family: 宋体;" /></p>
<ul style="font-family: 宋体;">
<li>用户A是否被授权访问资源R</li>
<li>用户A是否被授权执行P操作</li>
</ul>
<p><span style="font-family: 宋体;">常见的例如密码相册那些应用，就是应用到了授权系统。</span></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F&amp;title=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization&amp;notes=%E7%AE%80%E5%8D%95%E6%9D%A5%E8%AF%B4%EF%BC%8C%E8%AE%A4%E8%AF%81%EF%BC%88Authentication%20%EF%BC%89%E6%98%AF%E7%94%A8%E6%9D%A5%E5%9B%9E%E7%AD%94%E4%BB%A5%E4%B8%8B%E9%97%AE%E9%A2%98%EF%BC%9A%0A%0A%09%E7%94%A8%E6%88%B7%E6%98%AF%E8%B0%81%0A%09%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%E6%98%AF%E5%90%A6%E7%9C%9F%E7%9A%84%E6%98%AF%E4%BB%96%E6%89%80%E4%BB%A3%E8%A1%A8%E7%9A%84%E8%A7%92%E8%89%B2%0A%0A%E9%80%9A%E5%B8%B8%E6%9D%A5%E8%AF%B4%EF%BC%8C%E4%B8%80%E4%B8%AA%E7%99%BB%E9%99%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%B0%B1%E6%98%AF%E4%B8%80%E4%B8%AA%E8%AE%A4%E8%AF%81%E7%9A%84%E7%B3%BB%E7%BB%9F%E3%80%82%E9%82%A3%E4%B9%88%E6%8E%88%E6%9D%83%EF%BC%88Authorization%EF%BC%89%E5%8F%88%E6%98%AF%E4%BB%80%E4%B9%88%E5%91" title="del.icio.us"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F&amp;t=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F&title=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F&title=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F&amp;title=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F&amp;title=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization&amp;body=%E7%AE%80%E5%8D%95%E6%9D%A5%E8%AF%B4%EF%BC%8C%E8%AE%A4%E8%AF%81%EF%BC%88Authentication%20%EF%BC%89%E6%98%AF%E7%94%A8%E6%9D%A5%E5%9B%9E%E7%AD%94%E4%BB%A5%E4%B8%8B%E9%97%AE%E9%A2%98%EF%BC%9A%0A%0A%09%E7%94%A8%E6%88%B7%E6%98%AF%E8%B0%81%0A%09%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%E6%98%AF%E5%90%A6%E7%9C%9F%E7%9A%84%E6%98%AF%E4%BB%96%E6%89%80%E4%BB%A3%E8%A1%A8%E7%9A%84%E8%A7%92%E8%89%B2%0A%0A%E9%80%9A%E5%B8%B8%E6%9D%A5%E8%AF%B4%EF%BC%8C%E4%B8%80%E4%B8%AA%E7%99%BB%E9%99%86%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%B0%B1%E6%98%AF%E4%B8%80%E4%B8%AA%E8%AE%A4%E8%AF%81%E7%9A%84%E7%B3%BB%E7%BB%9F%E3%80%82%E9%82%A3%E4%B9%88%E6%8E%88%E6%9D%83%EF%BC%88Authorization%EF%BC%89%E5%8F%88%E6%98%AF%E4%BB%80%E4%B9%88%E5%91" title="Ping.fm"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E8%AE%A4%E8%AF%81%E5%92%8C%E6%8E%88%E6%9D%83%E7%9A%84%E5%8C%BA%E5%88%AB%20Authentication%20vs.%20Authorization%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdifferent-between-authentication-and-authorization%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/computer/different-between-authentication-and-authorization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>什么是死锁，死锁的四个必要条件以及处理死锁的策略</title>
		<link>http://magustest.com/blog/computer/deadlock-condition-and-how-to-prevent/</link>
		<comments>http://magustest.com/blog/computer/deadlock-condition-and-how-to-prevent/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 18:44:14 +0000</pubDate>
		<dc:creator>magus</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[死锁]]></category>

		<guid isPermaLink="false">http://magustest.com/blog/?p=103</guid>
		<description><![CDATA[什么是死锁？如果一个进程集合里面的每个进程都在等待只能由这个集合中的其他一个进程（包括他自身）才能引发的事件，这种情况就是死锁。 这个定义可能有点拗口，一个最简单的例子就是有资源A和资源B，都是不可剥夺资源，现在进程C已经申请了资源A，进程D也申请了资源B，进程C接下来的操作需要用到资源B，而进程D恰好也在申请资源A，那么就引发了死锁。这个肯定每个人都看过了。然后套用回去定义：如果一个进程集合里面（进程C和进程D）的每个进程（进程C和进程D）都在等待只能由这个集合中的其他一个进程（对于进程C，他在等进程D；对于进程D，他在等进程C）才能引发的事件（释放相应资源）。 这里的资源包括了软的资源（代码块）和硬的资源（例如扫描仪）。资源一般可以分两种：可剥夺资源（Preemptable）和不可剥夺资源（Nonpreemptable）。一般来说对于由可剥夺资源引起的死锁可以由系统的重新分配资源来解决，所以一般来说大家说的死锁都是由于不可剥夺资源所引起的。 死锁的四个必要条件 互斥条件（Mutual exclusion）：资源不能被共享，只能由一个进程使用。 请求与保持条件（Hold and wait）：已经得到资源的进程可以再次申请新的资源。 非剥夺条件（No pre-emption）：已经分配的资源不能从相应的进程中被强制地剥夺。 循环等待条件（Circular wait）：系统中若干进程组成环路，改环路中每个进程都在等待相邻进程正占用的资源。 处理死锁的策略 忽略该问题。例如鸵鸟算法，该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢，因为传说中鸵鸟看到危险就把头埋在地底下，可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。 检测死锁并且恢复。 仔细地对资源进行动态分配，以避免死锁。 通过破除死锁四个必要条件之一，来防止死锁产生。 Share and Enjoy: No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>什么是死锁？如果一个进程集合里面的每个进程都在等待只能由这个集合中的其他一个进程（包括他自身）才能引发的事件，这种情况就是死锁。</p>
<p>这个定义可能有点拗口，一个最简单的例子就是有资源A和资源B，都是不可剥夺资源，现在进程C已经申请了资源A，进程D也申请了资源B，进程C接下来的操作需要用到资源B，而进程D恰好也在申请资源A，那么就引发了死锁。这个肯定每个人都看过了。然后套用回去定义：如果一个进程集合里面（进程C和进程D）的每个进程（进程C和进程D）都在等待只能由这个集合中的其他一个进程（对于进程C，他在等进程D；对于进程D，他在等进程C）才能引发的事件（释放相应资源）。<br />
<span id="more-103"></span><br />
这里的资源包括了软的资源（代码块）和硬的资源（例如扫描仪）。资源一般可以分两种：可剥夺资源（Preemptable）和不可剥夺资源（Nonpreemptable）。一般来说对于由可剥夺资源引起的死锁可以由系统的重新分配资源来解决，所以一般来说大家说的死锁都是由于不可剥夺资源所引起的。</p>
<p>死锁的四个必要条件</p>
<ol>
<li>互斥条件（Mutual exclusion）：资源不能被共享，只能由一个进程使用。</li>
<li>请求与保持条件（Hold and wait）：已经得到资源的进程可以再次申请新的资源。</li>
<li>非剥夺条件（No pre-emption）：已经分配的资源不能从相应的进程中被强制地剥夺。</li>
<li>循环等待条件（Circular wait）：系统中若干进程组成环路，改环路中每个进程都在等待相邻进程正占用的资源。</li>
</ol>
<p>处理死锁的策略</p>
<ol>
<li>忽略该问题。例如鸵鸟算法，该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢，因为传说中鸵鸟看到危险就把头埋在地底下，可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。</li>
<li>检测死锁并且恢复。</li>
<li>仔细地对资源进行动态分配，以避免死锁。</li>
<li>通过破除死锁四个必要条件之一，来防止死锁产生。</li>
</ol>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://magustest.com/blog/feed/" title="RSS"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdeadlock-condition-and-how-to-prevent%2F&amp;t=%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%BB%E9%94%81%EF%BC%8C%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E5%BF%85%E8%A6%81%E6%9D%A1%E4%BB%B6%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E6%AD%BB%E9%94%81%E7%9A%84%E7%AD%96%E7%95%A5" title="Facebook"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdeadlock-condition-and-how-to-prevent%2F&title=%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%BB%E9%94%81%EF%BC%8C%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E5%BF%85%E8%A6%81%E6%9D%A1%E4%BB%B6%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E6%AD%BB%E9%94%81%E7%9A%84%E7%AD%96%E7%95%A5" title="豆瓣"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdeadlock-condition-and-how-to-prevent%2F&title=%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%BB%E9%94%81%EF%BC%8C%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E5%BF%85%E8%A6%81%E6%9D%A1%E4%BB%B6%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E6%AD%BB%E9%94%81%E7%9A%84%E7%AD%96%E7%95%A5&n=1" title="豆瓣九点"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/douban9.png" title="豆瓣九点" alt="豆瓣九点" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%BB%E9%94%81%EF%BC%8C%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E5%BF%85%E8%A6%81%E6%9D%A1%E4%BB%B6%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E6%AD%BB%E9%94%81%E7%9A%84%E7%AD%96%E7%95%A5&amp;link=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdeadlock-condition-and-how-to-prevent%2F" title="FriendFeed"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdeadlock-condition-and-how-to-prevent%2F&amp;title=%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%BB%E9%94%81%EF%BC%8C%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E5%BF%85%E8%A6%81%E6%9D%A1%E4%BB%B6%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E6%AD%BB%E9%94%81%E7%9A%84%E7%AD%96%E7%95%A5" title="Live"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<img src="http://magustest.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://shuqian.qq.com/post?jumpback=1&title=%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%BB%E9%94%81%EF%BC%8C%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E5%BF%85%E8%A6%81%E6%9D%A1%E4%BB%B6%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E6%AD%BB%E9%94%81%E7%9A%84%E7%AD%96%E7%95%A5&uri=http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdeadlock-condition-and-how-to-prevent%2F" title="QQ书签"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/qq.png" title="QQ书签" alt="QQ书签" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%BB%E9%94%81%EF%BC%8C%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E5%BF%85%E8%A6%81%E6%9D%A1%E4%BB%B6%E4%BB%A5%E5%8F%8A%E5%A4%84%E7%90%86%E6%AD%BB%E9%94%81%E7%9A%84%E7%AD%96%E7%95%A5%20-%20http%3A%2F%2Fmagustest.com%2Fblog%2Fcomputer%2Fdeadlock-condition-and-how-to-prevent%2F" title="Twitter"><img src="http://magustest.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://magustest.com/blog/computer/deadlock-condition-and-how-to-prevent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
