<?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>ShowTime&#039;s Blog</title>
	<atom:link href="http://www.bisoe.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bisoe.com</link>
	<description>◆Base☆Important★Standard☆Optional★Extra◇</description>
	<lastBuildDate>Thu, 17 May 2012 14:20:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Python中的全局变量</title>
		<link>http://www.bisoe.com/archives/363.html</link>
		<comments>http://www.bisoe.com/archives/363.html#comments</comments>
		<pubDate>Thu, 17 May 2012 03:43:34 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[个人日志]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=363</guid>
		<description><![CDATA[最近由于项目使用node.js，然后去看了下javascript，同时顺便看了html、css、ajax、jquery等一系列web相关的内容，最大的感觉是web水好深，内容太庞大了。其实我真正想说的是：昨天在查找一个文本文件中重复字符串的个数时，想到了用荒废一段时间的python来做，结果就掉进了一个坑里，下面是坑的详细情况。 假设我们有如下一段代码： 123456789testvar = 1 def changevar&#40;&#41;: &#160; &#160; &#160; &#160; print&#40;testvar&#41; &#160; &#160; &#160; &#160; testvar += 1 &#160; &#160; &#160; &#160; print&#40;testvar&#41; changevar&#40;&#41; print&#40;testvar） 运行有如下的错误：UnboundLocalError: local variable 'testvar' referenced before assignment. 但如果我们去掉“testvar += 1”这条语句，代码运行正常。这说明：在函数内部可以正常访问全局变量，但是不能修改全局变量的值。 如果我们就是要修改全局变量的值，怎么办呢？ 换成如下代码，加上global，就能达到目的。 12345678910testvar = 1 def changevar&#40;&#41;: &#160; &#160; &#160; &#160; global testvar &#160; &#160; &#160; &#160; print&#40;testvar&#41; &#160;<a href="http://www.bisoe.com/archives/363.html" class="read-more">Continue Reading</a>]]></description>
			<content:encoded><![CDATA[<p>最近由于项目使用node.js，然后去看了下javascript，同时顺便看了html、css、ajax、jquery等一系列web相关的内容，最大的感觉是web水好深，内容太庞大了。其实我真正想说的是：昨天在查找一个文本文件中重复字符串的个数时，想到了用荒废一段时间的python来做，结果就掉进了一个坑里，下面是坑的详细情况。</p>
<p>假设我们有如下一段代码：</p>
<pre>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">testvar <span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">def</span> changevar<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span>testvar<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; testvar +<span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span>testvar<span style="color: black;">&#41;</span><br />
<br />
changevar<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span>testvar）</div></td></tr></tbody></table></div>
</pre>
<p>运行有如下的错误：UnboundLocalError: local variable 'testvar' referenced before assignment.</p>
<p>但如果我们去掉“testvar += 1”这条语句，代码运行正常。这说明：在函数内部可以正常访问全局变量，但是不能修改全局变量的值。<br />
如果我们就是要修改全局变量的值，怎么办呢？<br />
换成如下代码，加上global，就能达到目的。</p>
<pre>
<div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">testvar <span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">def</span> changevar<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">global</span> testvar<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span>testvar<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; testvar +<span style="color: #66cc66;">=</span> <span style="color: #ff4500;">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span>testvar<span style="color: black;">&#41;</span><br />
<br />
changevar<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span>testvar<span style="color: black;">&#41;</span></div></td></tr></tbody></table></div>
</pre>
<p>到这里，还很正常，也不算完，如果我们将testvar换成是列表（list），然后在函数内部不声明global，使用如append的方法修改列表中的数据，完全可以，不会报前面的错误，这才是我真正被坑的原因。</p>
<p>原来：对于列表、字典这些可变数据类型，内部赋值会改变外部变量的值，相反，字符串、元组这些不可变类型则必须添加global，当然也可以不添加，如果在函数内部直接声明同名变量，则只会在该函数内部有效，不会改变外部变量的值。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/363.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>清明，先埋葬我们逝去的青春岁月</title>
		<link>http://www.bisoe.com/archives/361.html</link>
		<comments>http://www.bisoe.com/archives/361.html#comments</comments>
		<pubDate>Tue, 03 Apr 2012 07:39:42 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[个人日志]]></category>
		<category><![CDATA[thinking]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=361</guid>
		<description><![CDATA[在腾讯微博的热门话题中看到一个“一句话祭奠青春”的话题，点进去看是“清明，祭奠我们逝去的岁月”，突然拉近了宅男和清明的距离，本以为不扫墓，清明压根与我就没关系的。在周末的白天，可以肆无忌惮的开着音箱而不用担心会吵到别人，在箱子里翻夏天衣服的时候，找到一个信封，看了一下落款日期，真有点白驹过隙的感觉了，难得伤感。 我以为祭奠既然有追念、缅怀的意思，总得先主观上认为失去了它吧，而且在时间上应该是过去已经失去了的东西。但我一直未正式的承认失去了它，为了弄清楚什么时候才算真正失去了它，特意去百科了一下“青春”，排在首位的竟然是韩寒最新的杂文集，有点意外。往下继续找青春的年龄底限，没发现有确定的期限定义，却发现了这段： 唐司空曙《送曹同椅》诗：“青春三十馀，众艺尽无如。”《水浒传》第六三回：“‘将军青春多少？’ 关胜答道：‘小将三旬有二。’” 三十馀？三旬有二？竟然有点小小的安慰，大限未至嘛，现在动手还来得及，至少明年就可以祭奠了。偶尔经历的一些事情之后，老会觉得自己不够成熟，但“成熟”究竟怎么定义？需要满足什么条件呢？发现这个比青春更难定义，但无论是生物学还是心理学，都表明了是一个阶段向另一个阶段的转变，成熟指人的思想观念的转变，从幼稚向更高一级的转变，虽然青春并不代表幼稚，但我还是选择先动手埋葬我的青春，然后，沉下来……]]></description>
			<content:encoded><![CDATA[<p>在腾讯微博的热门话题中看到一个“一句话祭奠青春”的话题，点进去看是“清明，祭奠我们逝去的岁月”，突然拉近了宅男和清明的距离，本以为不扫墓，清明压根与我就没关系的。在周末的白天，可以肆无忌惮的开着音箱而不用担心会吵到别人，在箱子里翻夏天衣服的时候，找到一个信封，看了一下落款日期，真有点白驹过隙的感觉了，难得伤感。</p>
<p>我以为祭奠既然有追念、缅怀的意思，总得先主观上认为失去了它吧，而且在时间上应该是过去已经失去了的东西。但我一直未正式的承认失去了它，为了弄清楚什么时候才算真正失去了它，特意去百科了一下“<a title="百度传送门" href="http://baike.baidu.com/view/5699.htm" target="_blank">青春</a>”，排在首位的竟然是韩寒最新的杂文集，有点意外。往下继续找青春的年龄底限，没发现有确定的期限定义，却发现了这段：</p>
<blockquote><p>唐司空曙《送曹同椅》诗：“青春三十馀，众艺尽无如。”《水浒传》第六三回：“‘将军青春多少？’ 关胜答道：‘小将三旬有二。’”</p></blockquote>
<p>三十馀？三旬有二？竟然有点小小的安慰，大限未至嘛，现在动手还来得及，至少明年就可以祭奠了。偶尔经历的一些事情之后，老会觉得自己不够成熟，但“<a title="百度传送门" href="http://baike.baidu.com/view/9232.htm" target="_blank">成熟</a>”究竟怎么定义？需要满足什么条件呢？发现这个比青春更难定义，但无论是生物学还是心理学，都表明了是一个阶段向另一个阶段的转变，成熟指人的思想观念的转变，从幼稚向更高一级的转变，虽然青春并不代表幼稚，但我还是选择先动手埋葬我的青春，然后，沉下来……</p>
<p><img class="aligncenter" title="逝去的青春" src="http://public.blu.livefilestore.com/y1pGQNddUoMj_An5ltub-4Ql3mJ3vM0Z63BCS05uF_i8cQ4H_vc7E663yACNFuMGJeGeYGpyR_TskvAzZGGckyl3g/2012-04-03T14-35-24.jpg" alt="" width="968" height="1296" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/361.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《做正确的事》摘录</title>
		<link>http://www.bisoe.com/archives/360.html</link>
		<comments>http://www.bisoe.com/archives/360.html#comments</comments>
		<pubDate>Thu, 29 Mar 2012 15:43:36 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[个人日志]]></category>
		<category><![CDATA[读过的书]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=360</guid>
		<description><![CDATA[这本书是春节期间在路途中看完的，现在看书对于我来说非常艰难而奢侈，每本书大概都要一到两个月才能看完（技术类书籍倒是很快）。拖的太久，发现写不出来读后感了，书也还给木灰了，只好写写摘录，代表曾经看过，有摘录便于自己回忆。刚去豆瓣搜索了下，豆瓣果然够本土化，第一次搜索使用的是英文名称“Do the right thing”，结果搜出来一大堆书，却没有我看过的那个封面，然后改用中文名称搜索，第一个就是。发现没有评论，没有笔记，没有发言，差点就有了当第一个的冲动，想想还是老老实实在自己博客写摘录吧，其实还是值得一读的，浅显易懂，至少比我现在正在看的《卓有成效的管理者》流畅多了。摘录如下： 按照人们希望被对待的方式去对待他们 员工——客户——股东 我们到底在从事什么样的行业？ 一个公司的事业最终成功与否依赖于整个公司上下所有人能达到的优秀程度。 好的组织到处都有好领导。现实中，一线员工的日常工作和最终成绩更依赖于他们和直接领导的关系，而不是他们从总裁那里得到的模糊印象。 优秀的工作技巧并不能保证他们一定会成为优秀的领导。对领导岗位来说，对本职工作的知识无疑至关重要，然而，一个领导必须牢记，整个团队最终的成功取决于所有人，这些人必须有获得成功必需的技巧、知识和工具，同时也必须得到鼓舞和激励，这样才能成为一个高效的团队。换句话说，领导的成功依赖于员工是怎样工作的，领导的工作就是促进和激励员工工作。 优秀的领导都会： 对他们所领导的工作充满激情； 认为他们所领导的工作以及他们的个人成就，最终取决于被领导者的表现； 深切关心每个人的福利，关心他所领导的人所取得的成就； 最终每个人及他所从事的工作； 永远公平和真诚地对待每个人； 拥有教导和指导别人的耐心； 善于发现人才，并拥有人尽其才的本领； 拥有勇于承担责任的坚强性格，面对失败时不寻找替罪羊； 面对成功，能够保持谦虚并与人分享； 表现自然，不做作，善于发挥自身才能和个性上的优点。 人们会认清每一个位君子 人们会跟随他们信任的人 我们聘用态度，我们培训才能 每个人都记得他们的面试： 描述这项工作的职能和职责 描述公司的使命 描述这份工作的重要性及其对整个公司使命的贡献 在面试中设定现实的期待 讲一讲公司的好处，人们为什么愿意到这里来工作 像老板一样思考 明确目标，给人们追求成功的空间 成功的方法不同，但道理永远一样 摘录完还总有点碎碎念，老想着加个总结神马的，却又写不出来，其实正如书中所说，做对的事情，而不是把事情做对，一句“Do the right thing”已经是最好的总结了。]]></description>
			<content:encoded><![CDATA[<p>    这本书是春节期间在路途中看完的，现在看书对于我来说非常艰难而奢侈，每本书大概都要一到两个月才能看完（技术类书籍倒是很快）。拖的太久，发现写不出来读后感了，书也还给木灰了，只好写写摘录，代表曾经看过，有摘录便于自己回忆。刚去豆瓣搜索了下，豆瓣果然够本土化，第一次搜索使用的是英文名称“Do the right thing”，结果搜出来一大堆书，却没有我看过的那个封面，然后改用中文名称搜索，<a title="豆瓣传送门" href="http://book.douban.com/subject/4203996/" target="_blank">第一个</a>就是。发现没有评论，没有笔记，没有发言，差点就有了当第一个的冲动，想想还是老老实实在自己博客写摘录吧，其实还是值得一读的，浅显易懂，至少比我现在正在看的《卓有成效的管理者》流畅多了。摘录如下：</p>
<blockquote>
<ol>
<li>按照人们希望被对待的方式去对待他们</li>
<li>员工——客户——股东</li>
<li>我们到底在从事什么样的行业？</li>
<li>一个公司的事业最终成功与否依赖于整个公司上下所有人能达到的优秀程度。</li>
<li>好的组织到处都有好领导。现实中，一线员工的日常工作和最终成绩更依赖于他们和直接领导的关系，而不是他们从总裁那里得到的模糊印象。</li>
<li>优秀的工作技巧并不能保证他们一定会成为优秀的领导。对领导岗位来说，对本职工作的知识无疑至关重要，然而，一个领导必须牢记，整个团队最终的成功取决于所有人，这些人必须有获得成功必需的技巧、知识和工具，同时也必须得到鼓舞和激励，这样才能成为一个高效的团队。换句话说，领导的成功依赖于员工是怎样工作的，领导的工作就是促进和激励员工工作。</li>
<li>优秀的领导都会：</li>
<ol>
<li>对他们所领导的工作充满激情；</li>
<li>认为他们所领导的工作以及他们的个人成就，最终取决于被领导者的表现；</li>
<li>深切关心每个人的福利，关心他所领导的人所取得的成就；</li>
<li>最终每个人及他所从事的工作；</li>
<li>永远公平和真诚地对待每个人；</li>
<li>拥有教导和指导别人的耐心；</li>
<li>善于发现人才，并拥有人尽其才的本领；</li>
<li>拥有勇于承担责任的坚强性格，面对失败时不寻找替罪羊；</li>
<li>面对成功，能够保持谦虚并与人分享；</li>
<li>表现自然，不做作，善于发挥自身才能和个性上的优点。</li>
</ol>
<li>人们会认清每一个位君子</li>
<li>人们会跟随他们信任的人</li>
<li>我们聘用态度，我们培训才能</li>
<li>每个人都记得他们的面试：</li>
<ol>
<li>描述这项工作的职能和职责</li>
<li>描述公司的使命</li>
<li>描述这份工作的重要性及其对整个公司使命的贡献</li>
<li>在面试中设定现实的期待</li>
<li>讲一讲公司的好处，人们为什么愿意到这里来工作</li>
</ol>
<li>像老板一样思考</li>
<li>明确目标，给人们追求成功的空间</li>
<li>成功的方法不同，但道理永远一样</li>
</ol>
</blockquote>
<p>摘录完还总有点碎碎念，老想着加个总结神马的，却又写不出来，其实正如书中所说，做对的事情，而不是把事情做对，一句“Do the right thing”已经是最好的总结了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/360.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian限制SSH用户使用Sftp协议</title>
		<link>http://www.bisoe.com/archives/358.html</link>
		<comments>http://www.bisoe.com/archives/358.html#comments</comments>
		<pubDate>Fri, 23 Mar 2012 16:48:05 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Sftp]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=358</guid>
		<description><![CDATA[由于sftp模式的强大，只要具有ssh权限，就能使用相同的用户权限通过sftp模式传输文件，但在某些时候，我们通常希望具有ssh权限的用户不能直接下载服务器上的文件，很显然用防火墙禁用端口的方法无效，因为2者使用相同的端口，禁用之后ssh也无法进入。网上查了下资料，貌似都没能给出有效的解决方案。抱着测试的心态，我自己尝试出了一种解决方案，目前还没有发现该方案有什么副作用。方案如下： 在/etc/ssh/sshd_config这个文件中，有如下一行配置： 1Subsystem sftp /usr/lib/openssh/sftp-server 虽然不太明白其作用，但很显然指明了sftp所需要访问的一个路径，打开/usr/lib/openssh/sftp-server这个文件，是类似密钥一样的文件，不管什么意思，很显然进入sftp模式需要使用该文件，然后我尝试着将该文件设置为root可读写，其他用户无任何权限。现在使用sftp客户端登录： 由此，间接实现了限制某些具有ssh权限的用户使用sftp模式，如果根据Linux文件系统的属组权限控制该文件的读写，将有很多灵活的实施方案。]]></description>
			<content:encoded><![CDATA[<p>由于sftp模式的强大，只要具有ssh权限，就能使用相同的用户权限通过sftp模式传输文件，但在某些时候，我们通常希望具有ssh权限的用户不能直接下载服务器上的文件，很显然用防火墙禁用端口的方法无效，因为2者使用相同的端口，禁用之后ssh也无法进入。网上查了下资料，貌似都没能给出有效的解决方案。抱着测试的心态，我自己尝试出了一种解决方案，目前还没有发现该方案有什么副作用。方案如下：</p>
<hr />
<p>在/etc/ssh/sshd_config这个文件中，有如下一行配置：</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Subsystem sftp /usr/lib/openssh/sftp-server</div></td></tr></tbody></table></div>
<p>虽然不太明白其作用，但很显然指明了sftp所需要访问的一个路径，打开/usr/lib/openssh/sftp-server这个文件，是类似密钥一样的文件，不管什么意思，很显然进入sftp模式需要使用该文件，然后我尝试着将该文件设置为<span style="color: #0000ff;">root可读写，其他用户无任何权限</span>。现在使用sftp客户端登录：<br />
<div class="warning shortcodestyle">root:登录正常，功能正常使用；<br />
非root用户：登录提示输入用户密码，回车即会报错，sftp客户端异常退出。</div></p>
<p>由此，间接实现了限制某些具有ssh权限的用户使用sftp模式，如果根据Linux文件系统的属组权限控制该文件的读写，将有很多灵活的实施方案。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/358.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011年度总结</title>
		<link>http://www.bisoe.com/archives/357.html</link>
		<comments>http://www.bisoe.com/archives/357.html#comments</comments>
		<pubDate>Sun, 01 Jan 2012 06:53:31 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[个人日志]]></category>
		<category><![CDATA[年度总结]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=357</guid>
		<description><![CDATA[为了应景，也为了应付宅生活，我还是决定抽空写下年度总结，在写之前，我特意搜了下我之前的总结文章，结果一篇没有发现，因此，我决定增加一个标签——“年度总结”，希望以后每年能更新一篇。 之前本打算在昨天写的，发现完全不在状态，然后决定在新年第一天写，重点希望在“迎新”上，因为……往事不堪回首。看网易今年的年终策划《最好的生活》，开篇的一段文字正好概括了我的纠结： 我们习惯总结过去的一年，但每年都是一样的。我们拼命工作，为了生活，一成不变。 过去的一年，果然稳定到一成不变，过程中不觉得，回过头来看，确认像什么事情都没发生过，但我已经又在这个陌生的城市孤独地生活了一年。这一年，我用急噪的情绪在不停的计划着，不断的设定想象中的目标，最后却还是没心没肺地活着，没有留下任何值得纪念的东西。真正触动的，却是参加鸟网的婚礼，看他略显声嘶力竭的吼《老男孩》，虽然唱的颠覆了我对他唱功的看法，但我们这一代真的老了，才发现其实谁都无法与世俗和生活抗争，那些青年时代的理想和目空一切的洒脱，在现实面前，我们不约而同的偷偷将一切掩饰起来，这也许就是成长的代价。 毕业5年+了，那些我曾对不同年龄的人讲过的“毕业5年内”与“毕业5年后”的一切一切，转眼就需要在我身上得以证实了，但我还没完全准备好。在这个被传为毁灭之年的2012的第一天，我以“早上从中午开始”的计划迎接了它的到来，并发现理想一年比一年难以计划，坦然接受生活的不完美真的很难！与其骄傲的活在幻想中，还不如低调的计划一些不得不面对的事情：]]></description>
			<content:encoded><![CDATA[<p>为了应景，也为了应付宅生活，我还是决定抽空写下年度总结，在写之前，我特意搜了下我之前的总结文章，结果一篇没有发现，因此，我决定增加一个标签——“年度总结”，希望以后每年能更新一篇。<span id="more-357"></span></p>
<p>之前本打算在昨天写的，发现完全不在状态，然后决定在新年第一天写，重点希望在“迎新”上，因为……往事不堪回首。看网易今年的年终策划《最好的生活》，开篇的一段文字正好概括了我的纠结：</p>
<blockquote><p>我们习惯总结过去的一年，但每年都是一样的。我们拼命工作，为了生活，一成不变。</p></blockquote>
<p>过去的一年，果然稳定到一成不变，过程中不觉得，回过头来看，确认像什么事情都没发生过，但我已经又在这个陌生的城市孤独地生活了一年。这一年，我用急噪的情绪在不停的计划着，不断的设定想象中的目标，最后却还是没心没肺地活着，没有留下任何值得纪念的东西。真正触动的，却是参加鸟网的婚礼，看他略显声嘶力竭的吼《老男孩》，虽然唱的颠覆了我对他唱功的看法，但我们这一代真的老了，才发现其实谁都无法与世俗和生活抗争，那些青年时代的理想和目空一切的洒脱，在现实面前，我们不约而同的偷偷将一切掩饰起来，这也许就是成长的代价。</p>
<hr />
毕业5年+了，那些我曾对不同年龄的人讲过的“毕业5年内”与“毕业5年后”的一切一切，转眼就需要在我身上<del>得以</del>证实了，但我还没完全准备好。在这个被传为毁灭之年的2012的第一天，我以“早上从中午开始”的计划迎接了它的到来，并发现理想一年比一年难以计划，坦然接受生活的不完美真的很难！与其骄傲的活在幻想中，还不如低调的计划一些不得不面对的事情：<br />
<div class="task shortcodestyle"></p>
<ol>
<li>一定拿到驾照，这个被一拖再拖的计划；</li>
<li>争取花掉9块钱，而且希望一生只花这一次；</li>
<li>默默为自己的理想而努力，哪怕还是“为了生活，一成不变”！</li>
</ol>
<p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/357.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Debian使用scp传输文件时不需输入密码的简单实现方法</title>
		<link>http://www.bisoe.com/archives/355.html</link>
		<comments>http://www.bisoe.com/archives/355.html#comments</comments>
		<pubDate>Sun, 16 Oct 2011 10:00:11 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=355</guid>
		<description><![CDATA[新安装的debian系统传输文件，相对于nfs/samba等文件服务器来说，scp无疑是最简便快捷的，但是在自动化脚本中使用就不怎么方便了，因为scp传输文件，默认是需要输入密码的，无论你当前使用的用户是否设置密码，都会弹出输入密码的提示，这就给自动化脚本造成了一点小小的障碍，我们要解决的就是去掉这个输入密码的提示，以前我一直照着别人给的方法依葫芦画瓢，总感觉繁琐，而且不理解原理，记忆起来也比较困难。其实只要建立2台主机的信任关系就达到目的了，以下是个最简单的实现方法： 另外附带说明一个问题，该问题我以前一直没仔细看，一直采用的是暴力方式，这次重装系统偶然发现了。假设我们按以上方法成功配置了，后来B机器重装了系统，这时候在A机器输入scp命令时，会出现warning开头的一大串命令，意思大致就是远程主机的身份信息发生变化了，并提示修改known_hosts文件，由于该文件里面信息复制混乱，基本无法区分哪条是哪个主机，我的笨办法就是全部删掉，当然这样会很麻烦，其他主机跟着倒霉，都要重新生成。以下是一个典型的提示信息示例： 1234567891011121314@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ &#160; &#160;WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! &#160; &#160; @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by<a href="http://www.bisoe.com/archives/355.html" class="read-more">Continue Reading</a>]]></description>
			<content:encoded><![CDATA[<p>新安装的debian系统传输文件，相对于nfs/samba等文件服务器来说，scp无疑是最简便快捷的，但是在自动化脚本中使用就不怎么方便了，因为scp传输文件，默认是需要输入密码的，无论你当前使用的用户是否设置密码，都会弹出输入密码的提示，这就给自动化脚本造成了一点小小的障碍，我们要解决的就是去掉这个输入密码的提示，以前我一直照着别人给的方法依葫芦画瓢，总感觉繁琐，而且不理解原理，记忆起来也比较困难。其实只要建立2台主机的信任关系就达到目的了，以下是个最简单的实现方法：<span id="more-355"></span><br />
<div class="buy shortcodestyle"><br />
目标：A机器使用scp命令直接向B机器传输文件，且不需要输入密码。</p>
<p>方法：</p>
<p style="padding-left: 30px;"><strong>A机器需要进行的设置</strong>：</p>
<p style="padding-left: 30px;">执行ssh-keygen命令，然后一路回车，最后会显示一个虚线框框起来的不规则字符，这时候去到当前用户目录查看，发现多了一个.ssh的目录，进入该目录，能看到一个id_rsa.pub的文件，这个文件就是公钥证书，打开它复制里面的内容到剪切板；</p>
<p style="padding-left: 30px;"><strong>B机器需要进行的设置</strong>：</p>
<p style="padding-left: 30px;">进入A机器scp传输文件时所使用的B机器的用户名对应的用户目录，新建一个.ssh目录（如果有直接进入），在该目录里新建一个文件authorized_keys，将刚才复制的剪切板的内容粘贴进入，保存退出。</p>
<p>验证：在A机器输入，scp 文件名 用户名@B机器IP：/目标目录 回车，不用输入密码，文件直接传输过去了。<br />
</div></p>
<p>另外附带说明一个问题，该问题我以前一直没仔细看，一直采用的是暴力方式，这次重装系统偶然发现了。假设我们按以上方法成功配置了，后来B机器重装了系统，这时候在A机器输入scp命令时，会出现warning开头的一大串命令，意思大致就是远程主机的身份信息发生变化了，并提示修改known_hosts文件，由于该文件里面信息复制混乱，基本无法区分哪条是哪个主机，我的笨办法就是全部删掉，当然这样会很麻烦，其他主机跟着倒霉，都要重新生成。以下是一个典型的提示信息示例：</p>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
@ &nbsp; &nbsp;WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! &nbsp; &nbsp; @<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!<br />
Someone could be eavesdropping on you right now (man-in-the-middle attack)!<br />
It is also possible that the RSA host key has just been changed.<br />
The fingerprint for the RSA key sent by the remote host is<br />
b8:bd:72:c0:02:32:b0:ac:b4:ab:c0:da:0f:b6:f1:87.<br />
Please contact your system administrator.<br />
Add correct host key in /home/showtime/.ssh/known_hosts to get rid of this message.<br />
Offending key in /home/showtime/.ssh/known_hosts:1<br />
RSA host key for 192.168.0.177 has changed and you have requested strict checking.<br />
Host key verification failed.<br />
lost connection</div></td></tr></tbody></table></div>
</pre>
<p>偶然发现了，其实不用暴力方法的，请看这句（第11行）</p>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Offending key in /home/showtime/.ssh/known_hosts:1</div></td></tr></tbody></table></div>
</pre>
<pre>已经明确提示了是哪一行了，因此编辑该文件，把对应行删除掉，然后再次连接时，会自动生成新的。</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/355.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testlink升级至1.9x开启图片上传功能的完整说明</title>
		<link>http://www.bisoe.com/archives/352.html</link>
		<comments>http://www.bisoe.com/archives/352.html#comments</comments>
		<pubDate>Sat, 24 Sep 2011 16:19:16 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fckeditor]]></category>
		<category><![CDATA[Testlink]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=352</guid>
		<description><![CDATA[使用testlink很长一段时间了，从1.7到1.8.4，但一直没怎么仔细研究过，只是使用而已。最近有人说在Reports里的自定义查询中，以执行者为检索条件检索出来的结果还是全部，不方便单独查询某个人的执行结果。然后我去了官网准备找一下是否有这个bug，以及修复的办法，却发现testlink的版本已经到了1.9.3，而且还是release版本，体验了下Demo，感觉还可以，于是决定升级。升级步骤非常简单，因为直接提供了从1.8x升级到1.9的数据库脚本，根据提示简单经过几个步骤就好了，非常人性化、便捷。我在升级时，由于将环境从原来的windows2003迁移到debian上，准备环境花了一些时间，不然的话，5分钟之内完全可以轻松搞定升级。 升级完发现杯具了，上传图片功能不可用，而我们的使用需求决定了必须要有这个功能，然后照样去网上找下相关的修改资料拿来直接用，血泪史开启了啊，各种重复的资料啊，N多网站把同一篇文章转来转去，都没一丁点自己的实践经验，垃圾站真多。如此折腾了好几个小时，淡定不了了，决定自行研究，将代码下载到了windows机器上，开始一个一个变量搜索，最终搞定了，以下是完整攻略，保证让你轻松搞定，神马重启机器等几小时后才生效的都是浮云，绝对即时生效，发现不灵的可以留言给我。 1.testlink使用的编辑器一直是第三方的fckeditor，但最新版本据说是出于安全考虑，默认关闭了图片上传功能，我们所要做的工作就是将其重新开启，看似简单，但不下载下来它的代码查看，还真是有不少陷阱； 2.进入testlink主目录，编辑third_party/fckeditor/editor/filemanager/connectors/php/config.php 这个文件的3个位置： 1）开启图片上传功能：查找 $Config['Enabled'] = false; 将false改为 true； 2）设置图片上传路径：查找 $Config['UserFilesPath'] = '/userfiles/' ; 将userfiles替换为testlink的图片上传路径，如 '/testlink/TestLink_upload/'； 3）设置图片上传绝对路径：查找$Config['UserFilesAbsolutePath'] = '' ;将空值改为 '/home/www/testlink/TestLink_upload/' ;记得与上面的目录保持一致； 4）设置该目录的文件读写权限，由于是内网，直接chmod  777  TestLink_upload赋予了所有权限。 3.同样进入testlink主目录，编辑third_party/fckeditor/fckconfig.js文件， 1// FCKConfig.ProtectedSource.Add( /&#60;\?[\s\S]*?\?&#62;/g ) ; // PHP style server side code 将行首的// 去掉，让他从注释变成启动； 4.最重要的一步，新版本才有的配置文件目录cfg，用于存放自定义配置文件，编辑cfg/tl_fckeditor_config.js： 12FCKConfig.ImageBrowser = false FCKConfig.ImageUpload = false 将2个false都改为true。 大功告成，最后将apache重启一下，现在去测试，图片上传功能已经可以使用了。另外在解决这个问题的过程中发现很多人在环境搭建上还不熟悉，等有空写个testlink安装及使用的完整新手教程，注意是“完整”，不是转载的七零八落的文章。]]></description>
			<content:encoded><![CDATA[<p>使用testlink很长一段时间了，从1.7到1.8.4，但一直没怎么仔细研究过，只是使用而已。最近有人说在Reports里的自定义查询中，以执行者为检索条件检索出来的结果还是全部，不方便单独查询某个人的执行结果。然后我去了官网准备找一下是否有这个bug，以及修复的办法，却发现testlink的版本已经到了1.9.3，而且还是release版本，体验了下Demo，感觉还可以，于是决定升级。升级步骤非常简单，因为直接提供了从1.8x升级到1.9的数据库脚本，根据提示简单经过几个步骤就好了，非常人性化、便捷。我在升级时，由于将环境从原来的windows2003迁移到debian上，准备环境花了一些时间，不然的话，5分钟之内完全可以轻松搞定升级。<span id="more-352"></span></p>
<p>升级完发现杯具了，上传图片功能不可用，而我们的使用需求决定了必须要有这个功能，然后照样去网上找下相关的修改资料拿来直接用，血泪史开启了啊，各种重复的资料啊，N多网站把同一篇文章转来转去，都没一丁点自己的实践经验，垃圾站真多。如此折腾了好几个小时，淡定不了了，决定自行研究，将代码下载到了windows机器上，开始一个一个变量搜索，最终搞定了，以下是完整攻略，保证让你轻松搞定，神马重启机器等几小时后才生效的都是浮云，绝对即时生效，发现不灵的可以留言给我。</p>
<p>1.testlink使用的编辑器一直是第三方的fckeditor，但最新版本据说是出于安全考虑，默认关闭了图片上传功能，我们所要做的工作就是将其重新开启，看似简单，但不下载下来它的代码查看，还真是有不少陷阱；</p>
<p>2.进入testlink主目录，编辑third_party/fckeditor/editor/filemanager/connectors/php/config.php 这个文件的3个位置：</p>
<p style="padding-left: 30px;">1）开启图片上传功能：查找 $Config['Enabled'] = false; <span style="color: #0000ff;">将false改为 true</span>；</p>
<p style="padding-left: 30px;">2）设置图片上传路径：查找 $Config['UserFilesPath'] = '/userfiles/' ; 将userfiles替换为testlink的图片上传路径，如 '/testlink/TestLink_upload/'；</p>
<p style="padding-left: 30px;">3）设置图片上传绝对路径：查找$Config['UserFilesAbsolutePath'] = '' ;将空值改为 '/home/www/testlink/TestLink_upload/' ;记得与上面的目录保持一致；</p>
<p style="padding-left: 30px;">4）设置该目录的文件读写权限，由于是内网，直接chmod  777  TestLink_upload赋予了所有权限。</p>
<p>3.同样进入testlink主目录，编辑third_party/fckeditor/fckconfig.js文件，</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">// FCKConfig.ProtectedSource.Add( /&lt;\?[\s\S]*?\?&gt;/g ) ; // PHP style server side code</div></td></tr></tbody></table></div>
<p>将行首的// 去掉，让他从注释变成启动；</p>
<p>4.最重要的一步，新版本才有的配置文件目录cfg，用于存放自定义配置文件，编辑cfg/tl_fckeditor_config.js：</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">FCKConfig<span style="color: #339933;">.</span>ImageBrowser <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><br />
FCKConfig<span style="color: #339933;">.</span>ImageUpload <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span></div></td></tr></tbody></table></div>
<p><span style="color: #0000ff;">将2个false都改为true。</span></p>
<p>大功告成，最后将apache重启一下，现在去测试，图片上传功能已经可以使用了。另外在解决这个问题的过程中发现很多人在环境搭建上还不熟悉，等有空写个testlink安装及使用的完整新手教程，注意是“完整”，不是转载的七零八落的文章。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/352.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Debian时区设置</title>
		<link>http://www.bisoe.com/archives/344.html</link>
		<comments>http://www.bisoe.com/archives/344.html#comments</comments>
		<pubDate>Wed, 21 Sep 2011 15:31:51 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=344</guid>
		<description><![CDATA[公司有台服务器时间一直被指各种异常，由于需要经常调整系统时间，因此禁用了ntp同步，一直将就这用着，后来有人说用date显示的时间跟数据库里显示的unixtime老不一致，刚好差8小时，对比起来非常不方便。第一反应就是时区问题，下面开始调整： 第一步:more /etc/timezone，显示Asia/Hong_Kong，没问题； 第二步：ls -al /etc/localtime，软链接指向了/usr/share/zoneinfo/Asia/Hong_Kong，也没问题； 第三步：带着侥幸的心理去查 more /etc/default/rcS ,UTC=yes!相当疑惑，完全没招。 尝试着cp /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime，然后重启，还是不行，百思不得其解，找了另外台机器对比以上跟时区相关的位置，终于发现了原来是文件权限问题，哪位仁兄把文件全给改成了770，读的权限都没，按正常的权限配置，一切ok。 最近倒腾webpy和python，在公司写了个操作数据库的脚本，在家运行时import MySQLdb错误，没安装这个模块，然后去下了个MySQL-python-1.2.3，安装失败，按照别人的方法将site.cfg里的关于数据库版本的配置registry_key改成了5.1，刷的一下，我以为安装成功了，最后出现个错误： 1error: Unable to find vcvarsall.bat 试了几个方法都不灵光，最后有人说安装VS可以解决问题，新电脑上的VS没装，趁着装的时间无聊来码字，等着看装完能不能解决问题。]]></description>
			<content:encoded><![CDATA[<p>公司有台服务器时间一直被指各种异常，由于需要经常调整系统时间，因此禁用了ntp同步，一直将就这用着，后来有人说用date显示的时间跟数据库里显示的unixtime老不一致，刚好差8小时，对比起来非常不方便。第一反应就是时区问题，下面开始调整：</p>
<p>第一步:more /etc/timezone，显示Asia/Hong_Kong，没问题；</p>
<p>第二步：ls -al /etc/localtime，软链接指向了/usr/share/zoneinfo/Asia/Hong_Kong，也没问题；</p>
<p>第三步：带着侥幸的心理去查 more /etc/default/rcS ,UTC=yes!相当疑惑，完全没招。<span id="more-344"></span></p>
<p>尝试着cp /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime，然后重启，还是不行，百思不得其解，找了另外台机器对比以上跟时区相关的位置，终于发现了原来是文件权限问题，哪位仁兄把文件全给改成了770，读的权限都没，按正常的权限配置，一切ok。</p>
<p>最近倒腾webpy和python，在公司写了个操作数据库的脚本，在家运行时import MySQLdb错误，没安装这个模块，然后去下了个MySQL-python-1.2.3，安装失败，按照别人的方法将site.cfg里的关于数据库版本的配置registry_key改成了5.1，刷的一下，我以为安装成功了，最后出现个错误：</p>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">error: Unable to find vcvarsall.bat</div></td></tr></tbody></table></div>
</pre>
<p>试了几个方法都不灵光，最后有人说安装VS可以解决问题，新电脑上的VS没装，趁着装的时间无聊来码字，等着看装完能不能解决问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/344.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>局域网ssh和mysql连接缓慢的解决方法</title>
		<link>http://www.bisoe.com/archives/302.html</link>
		<comments>http://www.bisoe.com/archives/302.html#comments</comments>
		<pubDate>Sun, 08 May 2011 14:58:06 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=302</guid>
		<description><![CDATA[局域网内ssh连接目标主机，无论是什么ssh工具，都需要10多秒才会出现密码输入提示框，原因我在之前的一篇文章中引用过mysql的说明，这段时间就在做域名检测，之前我是在目标主机的hosts文件里添加源主机的IP地址，并随意解析到一个域名名称，这样做虽然简单，但如果有多台源主机，添加起来就比较麻烦，以下有一个一劳永逸的办法： vi /etc/ssh/sshd_config，在里面添加一行： UseDNS no 然后/etc/init.d/ssh restart重启服务即可。 mysql连接缓慢的解决方法类同： vi /etc/mysql/my.cnf，在[mysqld]下方添加一行： skip-name-resolve 然后/etc/init.d/mysql restart即可。]]></description>
			<content:encoded><![CDATA[<p>局域网内ssh连接目标主机，无论是什么ssh工具，都需要10多秒才会出现密码输入提示框，原因我在之前的一篇文章中引用过mysql的说明，这段时间就在做域名检测，之前我是在目标主机的hosts文件里添加源主机的IP地址，并随意解析到一个域名名称，这样做虽然简单，但如果有多台源主机，添加起来就比较麻烦，以下有一个一劳永逸的办法：<span id="more-302"></span></p>
<p>vi /etc/ssh/sshd_config，在里面添加一行：</p>
<p><span style="color: #0000ff;">UseDNS no</span></p>
<p>然后/etc/init.d/ssh restart重启服务即可。</p>
<p><strong>mysql连接缓慢的解决方法类同：</strong></p>
<p>vi /etc/mysql/my.cnf，在[mysqld]下方添加一行：</p>
<p><span style="color: #0000ff;">skip-name-resolve</span></p>
<p>然后/etc/init.d/mysql restart即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/302.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL无法drop数据库出现1010错误的解决方法</title>
		<link>http://www.bisoe.com/archives/288.html</link>
		<comments>http://www.bisoe.com/archives/288.html#comments</comments>
		<pubDate>Sun, 20 Mar 2011 07:02:12 +0000</pubDate>
		<dc:creator>ShowTime</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.bisoe.com/?p=288</guid>
		<description><![CDATA[我们在判断数据库里的数据是否需要更新的方法，是在该库中建立一张表，表里有个字段专门记录数据库的版本号，每次执行数据库更新程序时，先读取该字段值，来决定要执行哪些更新脚本，更新成功后修改该字段值为最新版本号。在测试过程中，经常手动创建一些异常数据，测试完成之后执行清空，结果有一次问题来了，不小心把记录版本号的这个表也清空了，更新程序读不到该字段值直接报错，无法执行更新，为图简便直接删除数据库重来，以下便是遇到的问题： 命令：drop database game; 错误提示： ERROR 1010 (HY000): Error dropping ;"&#62;game (can’t rmdir ‘.\game\’, errno: 17) 仔细检查发现在该数据库路径下有一些后缀为.txt的文本文件, cd至数据库路径目录下，rm -rf *.txt 删除这些文件 重新执行 drop database game; Query OK, 31 rows affected (0.29 sec) 成功了]]></description>
			<content:encoded><![CDATA[<p>我们在判断数据库里的数据是否需要更新的方法，是在该库中建立一张表，表里有个字段专门记录数据库的版本号，每次执行数据库更新程序时，先读取该字段值，来决定要执行哪些更新脚本，更新成功后修改该字段值为最新版本号。在测试过程中，经常手动创建一些异常数据，测试完成之后执行清空，结果有一次问题来了，不小心把记录版本号的这个表也清空了，更新程序读不到该字段值直接报错，无法执行更新，为图简便直接删除数据库重来，以下便是遇到的问题：<span id="more-288"></span></p>
<p>命令：<span style="color: #0000ff;">drop database game;</span></p>
<p>错误提示：<br />
<span style="color: #ff0000;">ERROR  1010 (HY000): Error dropping ;"&gt;game (can’t rmdir  ‘.\game\’, errno: 17)</span></p>
<p>仔细检查发现在该数据库路径下有一些后缀为.txt的文本文件,<br />
cd至数据库路径目录下，<span style="color: #0000ff;">rm -rf *.txt</span> 删除这些文件</p>
<p>重新执行 <span style="color: #0000ff;">drop database game;</span><br />
Query  OK, 31 rows affected (0.29 sec)</p>
<p>成功了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bisoe.com/archives/288.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

