<?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>我的技术生活-王炜</title>
	<atom:link href="http://www.aaronw.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.aaronw.cn</link>
	<description>只为成功找方法，不为失败找借口</description>
	<lastBuildDate>Wed, 01 Sep 2010 13:51:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>用自己的邮箱注册MSN ID</title>
		<link>http://www.aaronw.cn/static/674.html</link>
		<comments>http://www.aaronw.cn/static/674.html#comments</comments>
		<pubDate>Wed, 01 Sep 2010 13:51:26 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[WEB]]></category>
		<category><![CDATA[id]]></category>
		<category><![CDATA[msn]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=674</guid>
		<description><![CDATA[https://accountservices.passport.net/reg.srf?id=9&#038;cbid=956&#038;sl=1&#038;lc=2052
]]></description>
			<content:encoded><![CDATA[<p>https://accountservices.passport.net/reg.srf?id=9&#038;cbid=956&#038;sl=1&#038;lc=2052</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/674.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>飞鱼秀在线收听</title>
		<link>http://www.aaronw.cn/static/664.html</link>
		<comments>http://www.aaronw.cn/static/664.html#comments</comments>
		<pubDate>Mon, 02 Aug 2010 02:02:28 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[兴趣]]></category>
		<category><![CDATA[在线广播]]></category>
		<category><![CDATA[飞鱼秀]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=664</guid>
		<description><![CDATA[
不知道什么时候就爱上了这个广播节目，曾找过节目主持人的照片，呵呵！很喜欢主持的随意的风格！
下面中我找的在线收听的地址，分享一下！
飞鱼秀在线收听
mms://live.cri.cn/en4 （网通用户收听速度快） 
mms://enmms.chinabroadcast.cn/fm91.5 （电信用户收听速度快） 
]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://photo.icxo.com/20098/20098318JD.jpg" title="小飞和喻舟" class="alignleft" width="300" height="230" /><br />
不知道什么时候就爱上了这个广播节目，曾找过节目主持人的照片，呵呵！很喜欢主持的随意的风格！<br />
下面中我找的在线收听的地址，分享一下！</p>
<p>飞鱼秀在线收听<br />
mms://live.cri.cn/en4 （网通用户收听速度快） </p>
<p>mms://enmms.chinabroadcast.cn/fm91.5 （电信用户收听速度快） </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/664.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>python 手动生成.pyo文件</title>
		<link>http://www.aaronw.cn/static/662.html</link>
		<comments>http://www.aaronw.cn/static/662.html#comments</comments>
		<pubDate>Fri, 30 Jul 2010 04:10:34 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[编译]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=662</guid>
		<description><![CDATA[每次编写，每次编译都会忘记，每次都要谷歌！没有记性的大脑！
python -O -m py_compile tdsw.py
]]></description>
			<content:encoded><![CDATA[<p>每次编写，每次编译都会忘记，每次都要谷歌！没有记性的大脑！<br />
python -O -m py_compile tdsw.py</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/662.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何花钱让2000元的月收入工资价值最大化？</title>
		<link>http://www.aaronw.cn/static/658.html</link>
		<comments>http://www.aaronw.cn/static/658.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 05:41:18 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[有感]]></category>
		<category><![CDATA[价值，感性]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=658</guid>
		<description><![CDATA[首先，我们将钱分为5份，每份400元。
第一份，用来做生活费。
这么少的生活费，每天只能够分到十几元。早餐一个地瓜，两个鸡蛋，一个苹果。中餐两个鸡蛋，一杯酸奶，一个水果。晚上生的包菜，加南瓜，一根黄瓜。这样只花了4元到5元。你依然有条件吃上一勺蛋白质粉，两个B，两个C，两个钙镁片。不过，如果你还年轻，身体暂时还没有太多问题，这样的食谱，够你数年内不会有健康问题。(当然这是女生顺便用于减肥的办法，男生建议去附近大学的食堂吃饭，4、5元每餐是可以实现的)
第二份，用来交朋友，扩大你的人际圈。
这就宽裕了。你的电话费可以用掉100元。每个月可以请客两次，每次150元。请谁呢？记住，请比你有思想的人，比你更有钱的人，和你需要感激的人。每个月，坚持请客，一年下来，你的朋友圈应该已经为你产生价值了，你的声望、影响力、附加价值正在提升，形象又好，又大方。
第三份，用来学习，每个月可以有50元—100元用来买书。
钱不多，买的书就要认真阅读，学会学了就用的精神。每一本书，看完后，就把它变成自己的语言讲给别人听，与人分享可以提高你的信誉度，并且，提升亲和力。另外的300元存起来，每一年参加一次培训。从不间断。等收入高一些了，或者有额外的积蓄，就参加更高级的培训。参加好的培训，既可以免费结交志同道合的朋友，又可以学习平时难以领悟的道理。
第四份，用于旅游，一年奖励自己旅游至少一次。
生命的成长来自不断地历练。参加那种自由行的旅游，住进青年旅社，地球其实并不大，每年都出门，几年下来，就可以把红旗插到地图上，许多美好的回忆，成为生命的动力，更加有热情和能量，去投入工作。
第五份，用来投资。
先存起来，然后可以投资到股市里，也可以用来做进货的本钱，小本生意很安全，开一个淘宝网帐户，去批发点东西来卖，亏了反正也不多，赚呢，既赚了金钱，又赚了自信和胆量，还赚来做事情的阅历。赚的钱多了，就可以开始购买长期的投资计划，使自己提早获得一份长久的保障，保证自己和家人在将来，不论发生什么事情，都有一份充足的资金来照顾，生活品质不会下降。
好了，这样熬了一年，第二年如果你还在拿2000元的收入，那就是你的不是了，这么不长进，活着也够丢脸的，看看有什么品牌的豆腐比较硬，买一点来，用头去撞吧。

月收入在3000元以下的，一定要兼职赚钱，不要穷，还很有个性，挑三拣四的，这个不愿意做，那个没有兴趣。收入不高，一定要非常勤奋，尽量去找跟销售有关的工作，比如房地产中介，这就是很不错的兼职工作，既可以认识很多有价值的人，又可以锻炼自己的信息收集能力和营销技巧。
衣服啊，鞋子啊，这一年你是得尽量少买了。最好全部通过你的兼职赚的钱去买。当作奖励自己的一种方式。额外多赚钱的时候，记得买个礼物给你的爱人，谢谢他/她支持你的财务计划。很坦诚地告诉他/她，为何你那么勤俭，告诉他/她你的梦想和努力的方向。
到处都有需要帮助的生意人，兼职帮他们做点事情，去磨练自己的意志、口才、和工作能力吧，加上你的理财技巧，第二年，你的收入至少要增加到5000元。最低也应该是3000元，否则你收入的成长还赶不上通货膨胀呢。
无论你的收入是多少，记得分成五份。增加对身体的投资，让身体始终好用，增加对社交的投资，扩大你的人脉，增加对学习的投资，加强你的自信，增加对旅游的投资，扩大你的见闻，增加对未来的投资，增加你的收益。
保持这种平衡，逐渐你就会开始有大量的盈余。这是一个良性循环的人生计划。身体将越来越好，得到更多的营养和照顾。朋友会越来越多，存储许多有价值的人脉关系，同时，你也有条件参加那些非常高端的培训，使自己各方面的羽翼丰满，思维宽阔，格局广大，性格和谐。而你，也就能够逐渐实现自己的各种梦想，购买自己的需要的房子、车子，并且给未来的孩子准备一笔充足的教育基金。
人生是可以设计的，生涯是可以规划的，幸福是可以准备的。现在就可以开始。在你穷的时候，要少在家里，多在外面。在你富有的时候，要多在家里，少在外面。这就是生活的艺术。穷得时候，钱要花给别人，富的时候，钱要花给自己。很多人，都做颠倒了。
穷得时候，不要计较，对别人要好。富的时候，要学会让别人对自己好。自己对自己更好。穷要把自己贡献出去，尽量让别人利用。富，要把自己收藏好，小心别让别人随便利用。这些奇妙的生活方式，是很少人能够明白的。
穷的时候，花钱给别人看。富的时候，花钱给自己享受。穷的时候一定要大方，富的时候，就不要摆阔了。生命已经恢复了简单，已经回到了宁静。
年轻不是过错，贫穷无需害怕。懂得培养自己，懂得什么是贵重物品，懂得该投资什么，懂得该在哪里节约，这是整个过程的关键。别乱买衣服，少买一点，但是可以买几件很有品味的。少在外面吃饭，要吃就请客，要请，就请比自己更有梦想的、更有思想、更努力的人。
一旦生活需要的钱已经够了，最大的花费，就是用你的收入，完成你的梦想，去放开你的翅膀大胆地做梦，去让生命经历不一样的旅程。
这些，就是我自己成长过程的亲身经历，其实我只是做了该做的事情，就有了该有的结果。一切不是偶然，却也不是很难。如果你愿意，现在就可以开始你的幸福、健康、财富之旅。
]]></description>
			<content:encoded><![CDATA[<p>首先，我们将钱分为5份，每份400元。</p>
<p>第一份，用来做生活费。<br />
这么少的生活费，每天只能够分到十几元。早餐一个地瓜，两个鸡蛋，一个苹果。中餐两个鸡蛋，一杯酸奶，一个水果。晚上生的包菜，加南瓜，一根黄瓜。这样只花了4元到5元。你依然有条件吃上一勺蛋白质粉，两个B，两个C，两个钙镁片。不过，如果你还年轻，身体暂时还没有太多问题，这样的食谱，够你数年内不会有健康问题。(当然这是女生顺便用于减肥的办法，男生建议去附近大学的食堂吃饭，4、5元每餐是可以实现的)</p>
<p>第二份，用来交朋友，扩大你的人际圈。<br />
这就宽裕了。你的电话费可以用掉100元。每个月可以请客两次，每次150元。请谁呢？记住，请比你有思想的人，比你更有钱的人，和你需要感激的人。每个月，坚持请客，一年下来，你的朋友圈应该已经为你产生价值了，你的声望、影响力、附加价值正在提升，形象又好，又大方。</p>
<p>第三份，用来学习，每个月可以有50元—100元用来买书。<br />
钱不多，买的书就要认真阅读，学会学了就用的精神。每一本书，看完后，就把它变成自己的语言讲给别人听，与人分享可以提高你的信誉度，并且，提升亲和力。另外的300元存起来，每一年参加一次培训。从不间断。等收入高一些了，或者有额外的积蓄，就参加更高级的培训。参加好的培训，既可以免费结交志同道合的朋友，又可以学习平时难以领悟的道理。</p>
<p>第四份，用于旅游，一年奖励自己旅游至少一次。<br />
生命的成长来自不断地历练。参加那种自由行的旅游，住进青年旅社，地球其实并不大，每年都出门，几年下来，就可以把红旗插到地图上，许多美好的回忆，成为生命的动力，更加有热情和能量，去投入工作。</p>
<p>第五份，用来投资。<br />
先存起来，然后可以投资到股市里，也可以用来做进货的本钱，小本生意很安全，开一个淘宝网帐户，去批发点东西来卖，亏了反正也不多，赚呢，既赚了金钱，又赚了自信和胆量，还赚来做事情的阅历。赚的钱多了，就可以开始购买长期的投资计划，使自己提早获得一份长久的保障，保证自己和家人在将来，不论发生什么事情，都有一份充足的资金来照顾，生活品质不会下降。</p>
<p>好了，这样熬了一年，第二年如果你还在拿2000元的收入，那就是你的不是了，这么不长进，活着也够丢脸的，看看有什么品牌的豆腐比较硬，买一点来，用头去撞吧。</p>
<p><span id="more-658"></span><br />
月收入在3000元以下的，一定要兼职赚钱，不要穷，还很有个性，挑三拣四的，这个不愿意做，那个没有兴趣。收入不高，一定要非常勤奋，尽量去找跟销售有关的工作，比如房地产中介，这就是很不错的兼职工作，既可以认识很多有价值的人，又可以锻炼自己的信息收集能力和营销技巧。</p>
<p>衣服啊，鞋子啊，这一年你是得尽量少买了。最好全部通过你的兼职赚的钱去买。当作奖励自己的一种方式。额外多赚钱的时候，记得买个礼物给你的爱人，谢谢他/她支持你的财务计划。很坦诚地告诉他/她，为何你那么勤俭，告诉他/她你的梦想和努力的方向。</p>
<p>到处都有需要帮助的生意人，兼职帮他们做点事情，去磨练自己的意志、口才、和工作能力吧，加上你的理财技巧，第二年，你的收入至少要增加到5000元。最低也应该是3000元，否则你收入的成长还赶不上通货膨胀呢。</p>
<p>无论你的收入是多少，记得分成五份。增加对身体的投资，让身体始终好用，增加对社交的投资，扩大你的人脉，增加对学习的投资，加强你的自信，增加对旅游的投资，扩大你的见闻，增加对未来的投资，增加你的收益。</p>
<p>保持这种平衡，逐渐你就会开始有大量的盈余。这是一个良性循环的人生计划。身体将越来越好，得到更多的营养和照顾。朋友会越来越多，存储许多有价值的人脉关系，同时，你也有条件参加那些非常高端的培训，使自己各方面的羽翼丰满，思维宽阔，格局广大，性格和谐。而你，也就能够逐渐实现自己的各种梦想，购买自己的需要的房子、车子，并且给未来的孩子准备一笔充足的教育基金。</p>
<p>人生是可以设计的，生涯是可以规划的，幸福是可以准备的。现在就可以开始。在你穷的时候，要少在家里，多在外面。在你富有的时候，要多在家里，少在外面。这就是生活的艺术。穷得时候，钱要花给别人，富的时候，钱要花给自己。很多人，都做颠倒了。</p>
<p>穷得时候，不要计较，对别人要好。富的时候，要学会让别人对自己好。自己对自己更好。穷要把自己贡献出去，尽量让别人利用。富，要把自己收藏好，小心别让别人随便利用。这些奇妙的生活方式，是很少人能够明白的。</p>
<p>穷的时候，花钱给别人看。富的时候，花钱给自己享受。穷的时候一定要大方，富的时候，就不要摆阔了。生命已经恢复了简单，已经回到了宁静。</p>
<p>年轻不是过错，贫穷无需害怕。懂得培养自己，懂得什么是贵重物品，懂得该投资什么，懂得该在哪里节约，这是整个过程的关键。别乱买衣服，少买一点，但是可以买几件很有品味的。少在外面吃饭，要吃就请客，要请，就请比自己更有梦想的、更有思想、更努力的人。</p>
<p>一旦生活需要的钱已经够了，最大的花费，就是用你的收入，完成你的梦想，去放开你的翅膀大胆地做梦，去让生命经历不一样的旅程。</p>
<p>这些，就是我自己成长过程的亲身经历，其实我只是做了该做的事情，就有了该有的结果。一切不是偶然，却也不是很难。如果你愿意，现在就可以开始你的幸福、健康、财富之旅。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/658.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>mysql字符集</title>
		<link>http://www.aaronw.cn/static/656.html</link>
		<comments>http://www.aaronw.cn/static/656.html#comments</comments>
		<pubDate>Mon, 10 May 2010 12:41:59 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[字符集]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=656</guid>
		<description><![CDATA[今天我的同事问我mysql字符集的事，我又被问住了！
关于mysql字符集的问题我自己也遇到了很多次，每次google查了，问题解决了，就认为自己记住是如何解决了！过了几天本问起或遇到的时候才发现我还是忘记了！奶奶说：好记性，不如烂笔头！现在发现长背说的总是没有错的！正好现在有时间就写写吧！后来发现这篇文章连原理都讲了，觉得很不错！由于转的时候没有发现作者，所以这里就不贴原地址了！
基本概念
• 字符(Character)是指人类语言中最小的表义符号。例如’A&#8217;、’B&#8217;等；
•  给定一系列字符，对每个字符赋予一个数值，用数值来代表对应的字符，这一数值就是字符的编码(Encoding)。例如，我们给字符’A&#8217;赋予数值0，给 字符’B&#8217;赋予数值1，则0就是字符’A&#8217;的编码；
•  给定一系列字符并赋予对应的编码后，所有这些字符和编码对组成的集合就是字符集(Character  Set)。例如，给定字符列表为{’A&#8217;,’B&#8217;}时，{’A&#8217;=&#62;0, ‘B’=&#62;1}就是一个字符集；
•  字符序(Collation)是指在同一字符集内字符之间的比较规则；
•  确定字符序后，才能在一个字符集上定义什么是等价的字符，以及字符之间的大小关系；
•  每个字符序唯一对应一种字符集，但一个字符集可以对应多种字符序，其中有一个是默认字符序(Default Collation)；
•  MySQL中的字符序名称遵从命名惯例：以字符序对应的字符集名称开头；以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码 值比较)结尾。例如：在字符序“utf8_general_ci”下，字符“a”和“A”是等价的；

MySQL字符集设置•  系统变量：
– character_set_server：默认的内部操作字符集
– character_set_client： 客户端来源数据使用的字符集
– character_set_connection：连接层字符集
–  character_set_results：查询结果字符集
– character_set_database： 当前选中数据库的默认字符集
– character_set_system：系统元数据(字段名等)字符集
–  还有以collation_开头的同上面对应的变量，用来描述字符序。
•  用introducer指定文本字符串的字符集：
– 格式为：[_charset] ’string’ [COLLATE collation]
–  例如：
• SELECT _latin1 ’string’;
• SELECT _utf8 ‘你好’ COLLATE  utf8_general_ci;
– 由introducer修饰的文本字符串在请求过程中不经过多余的转码，直接转换为内部字符集处理。
MySQL 中的字符集转换过程1. MySQL  Server收到请求时将请求数据从character_set_client转换为character_set_connection；
2. [...]]]></description>
			<content:encoded><![CDATA[<p>今天我的同事问我mysql字符集的事，我又被问住了！</p>
<p>关于mysql字符集的问题我自己也遇到了很多次，每次google查了，问题解决了，就认为自己记住是如何解决了！过了几天本问起或遇到的时候才发现我还是忘记了！奶奶说：好记性，不如烂笔头！现在发现长背说的总是没有错的！正好现在有时间就写写吧！后来发现这篇文章连原理都讲了，觉得很不错！由于转的时候没有发现作者，所以这里就不贴原地址了！</p>
<p><strong>基本概念<br />
</strong>• 字符(Character)是指人类语言中最小的表义符号。例如’A&#8217;、’B&#8217;等；<br />
•  给定一系列字符，对每个字符赋予一个数值，用数值来代表对应的字符，这一数值就是字符的编码(Encoding)。例如，我们给字符’A&#8217;赋予数值0，给 字符’B&#8217;赋予数值1，则0就是字符’A&#8217;的编码；<br />
•  给定一系列字符并赋予对应的编码后，所有这些字符和编码对组成的集合就是字符集(Character  Set)。例如，给定字符列表为{’A&#8217;,’B&#8217;}时，{’A&#8217;=&gt;0, ‘B’=&gt;1}就是一个字符集；<br />
•  字符序(Collation)是指在同一字符集内字符之间的比较规则；<br />
•  确定字符序后，才能在一个字符集上定义什么是等价的字符，以及字符之间的大小关系；<br />
•  每个字符序唯一对应一种字符集，但一个字符集可以对应多种字符序，其中有一个是默认字符序(Default Collation)；<br />
•  MySQL中的字符序名称遵从命名惯例：以字符序对应的字符集名称开头；以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码 值比较)结尾。例如：在字符序“utf8_general_ci”下，字符“a”和“A”是等价的；<br />
<span id="more-656"></span><br />
<strong>MySQL字符集设置</strong>•  系统变量：<br />
– <strong>character_set_server</strong>：默认的内部操作字符集<br />
– <strong>character_set_client</strong>： 客户端来源数据使用的字符集<br />
– <strong>character_set_connection</strong>：连接层字符集<br />
–  <strong>character_set_results</strong>：查询结果字符集<br />
– <strong>character_set_database</strong>： 当前选中数据库的默认字符集<br />
– <strong>character_set_system</strong>：系统元数据(字段名等)字符集<br />
–  还有以<strong>collation_</strong>开头的同上面对应的变量，用来描述字符序。<br />
•  用introducer指定文本字符串的字符集：<br />
– 格式为：[_charset] ’string’ [COLLATE collation]<br />
–  例如：<br />
• SELECT _latin1 ’string’;<br />
• SELECT _utf8 ‘你好’ COLLATE  utf8_general_ci;<br />
– 由introducer修饰的文本字符串在请求过程中不经过多余的转码，直接转换为内部字符集处理。<br />
<strong>MySQL 中的字符集转换过程</strong>1. MySQL  Server收到请求时将请求数据从character_set_client转换为character_set_connection；<br />
2.  进行内部操作前将请求数据从character_set_connection转换为内部操作字符集，其确定方法如下：<br />
•  使用每个数据字段的CHARACTER SET设定值；<br />
• 若上述值不存在，则使用对应数据表的DEFAULT CHARACTER  SET设定值(MySQL扩展，非SQL标准)；<br />
• 若上述值不存在，则使用对应数据库的DEFAULT CHARACTER SET设定值；<br />
•  若上述值不存在，则使用character_set_server设定值。<br />
3.  将操作结果从内部操作字符集转换为character_set_results。</p>
<p><strong>常见问题解析</strong>•  向默认字符集为utf8的数据表插入utf8编码的数据前没有设置连接字符集，查询时设置连接字符集为utf8<br />
–  插入时根据MySQL服务器的默认设置，character_set_client、character_set_connection和 character_set_results均为latin1；</p>
<p>–  插入操作的数据将经过latin1=&gt;latin1=&gt;utf8的字符集转换过程，这一过程中每个插入的汉字都会从原始的3个字节变成6个字 节保存；<br />
– 查询时的结果将经过utf8=&gt;utf8的字符集转换过程，将保存的6个字节原封不动返回，产生乱码……</p>
<p>• 向默认字符集为latin1的数据表插入utf8编码的数据前设置了连接字符集为utf8<br />
–  插入时根据连接字符集设置，character_set_client、character_set_connection和 character_set_results均为utf8；<br />
–  插入数据将经过utf8=&gt;utf8=&gt;latin1的字符集转换，若原始数据中含有\u0000~\u00ff范围以外的Unicode字  符，会因为无法在latin1字符集中表示而被转换为“?”(0×3F)符号，以后查询时不管连接字符集设置如何都无法恢复其内容了。</p>
<p><strong>检测字符集问题的一些手段</strong>• SHOW CHARACTER SET;<br />
• SHOW COLLATION;<br />
•  SHOW VARIABLES LIKE ‘character%’;<br />
• SHOW VARIABLES LIKE  ‘collation%’;<br />
• SQL函数HEX、LENGTH、CHAR_LENGTH<br />
•  SQL函数CHARSET、COLLATION<br />
使用MySQL字符集时的建议•  建立数据库/表和进行数据库操作时尽量显式指出使用的字符集，而不是依赖于MySQL的默认设置，否则MySQL升级时可能带来很大困扰；<br />
•  数据库和连接字符集都使用latin1时虽然大部分情况下都可以解决乱码问题，但缺点是无法以字符为单位来进行SQL操作，一般情况下将数据库和连接字符 集都置为utf8是较好的选择；<br />
• 使用mysql C  API时，初始化数据库句柄后马上用mysql_options设定MYSQL_SET_CHARSET_NAME属性为utf8，这样就不用显式地用  SET NAMES语句指定连接字符集，且用mysql_ping重连断开的长连接时也会把连接字符集重置为utf8；<br />
• 对于mysql  PHP API，一般页面级的PHP程序总运行时间较短，在连接到数据库以后显式用SET  NAMES语句设置一次连接字符集即可；但当使用长连接时，请注意保持连接通畅并在断开重连后用SET NAMES语句显式重置连接字符集。<br />
其他 注意事项•  my.cnf中的default_character_set设置只影响mysql命令连接服务器时的连接字符集，不会对使用 libmysqlclient库的应用程序产生任何作用！<br />
•  对字段进行的SQL函数操作通常都是以内部操作字符集进行的，不受连接字符集设置的影响。<br />
•  SQL语句中的裸字符串会受到连接字符集或introducer设置的影响，对于比较之类的操作可能产生完全不同的结果，需要小心！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/656.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP状态码（HTTP Status Code）</title>
		<link>http://www.aaronw.cn/static/651.html</link>
		<comments>http://www.aaronw.cn/static/651.html#comments</comments>
		<pubDate>Mon, 10 May 2010 12:31:49 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[有感]]></category>
		<category><![CDATA[HTTP，Status，Code]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=651</guid>
		<description><![CDATA[我们做IT的常和web打交道，经常见到http的错误代码，这些代码是什么意思呢？这里有个比较详细的和大家分享一下吧！
一些常见的状态码为：
200 &#8211; 服务器成功返回网页
404 &#8211; 请求的网页不存在
503 &#8211; 服务不可用
详细分解：
1xx（临时响应）
表示临时响应并需要请求者继续执行操作的状态代码。
代码   说明
100   （继续） 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分，正在等待其余部分。
101   （切换协议） 请求者已要求服务器切换协议，服务器已确认并准备切换。 
2xx （成功）
表示成功处理了请求的状态代码。
代码   说明
200   （成功）  服务器已成功处理了请求。 通常，这表示服务器提供了请求的网页。
201   （已创建）  请求成功并且服务器创建了新的资源。
202   （已接受）  服务器已接受请求，但尚未处理。
203   （非授权信息）  服务器已成功处理了请求，但返回的信息可能来自另一来源。
204   （无内容）  服务器成功处理了请求，但没有返回任何内容。
205   （重置内容） 服务器成功处理了请求，但没有返回任何内容。
206  [...]]]></description>
			<content:encoded><![CDATA[<p>我们做IT的常和web打交道，经常见到http的错误代码，这些代码是什么意思呢？这里有个比较详细的和大家分享一下吧！<br />
一些常见的状态码为：</p>
<p>200 &#8211; 服务器成功返回网页<br />
404 &#8211; 请求的网页不存在<br />
503 &#8211; 服务不可用</p>
<p>详细分解：</p>
<p>1xx（临时响应）<br />
表示临时响应并需要请求者继续执行操作的状态代码。</p>
<p>代码   说明<br />
100   （继续） 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分，正在等待其余部分。<br />
101   （切换协议） 请求者已要求服务器切换协议，服务器已确认并准备切换。 </p>
<p>2xx （成功）<br />
表示成功处理了请求的状态代码。</p>
<p>代码   说明<br />
200   （成功）  服务器已成功处理了请求。 通常，这表示服务器提供了请求的网页。<br />
201   （已创建）  请求成功并且服务器创建了新的资源。<br />
202   （已接受）  服务器已接受请求，但尚未处理。<br />
203   （非授权信息）  服务器已成功处理了请求，但返回的信息可能来自另一来源。<br />
204   （无内容）  服务器成功处理了请求，但没有返回任何内容。<br />
205   （重置内容） 服务器成功处理了请求，但没有返回任何内容。<br />
206   （部分内容）  服务器成功处理了部分 GET 请求。<br />
<span id="more-651"></span><br />
3xx （重定向）<br />
表示要完成请求，需要进一步操作。 通常，这些状态代码用来重定向。</p>
<p>代码   说明<br />
300   （多种选择）  针对请求，服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作，或提供操作列表供请求者选择。<br />
301   （永久移动）  请求的网页已永久移动到新位置。 服务器返回此响应（对 GET 或 HEAD 请求的响应）时，会自动将请求者转到新位置。<br />
302   （临时移动）  服务器目前从不同位置的网页响应请求，但请求者应继续使用原有位置来进行以后的请求。<br />
303   （查看其他位置） 请求者应当对不同的位置使用单独的 GET 请求来检索响应时，服务器返回此代码。<br />
304   （未修改） 自从上次请求后，请求的网页未修改过。 服务器返回此响应时，不会返回网页内容。<br />
305   （使用代理） 请求者只能使用代理访问请求的网页。 如果服务器返回此响应，还表示请求者应使用代理。<br />
307   （临时重定向）  服务器目前从不同位置的网页响应请求，但请求者应继续使用原有位置来进行以后的请求。 </p>
<p>4xx（请求错误）<br />
这些状态代码表示请求可能出错，妨碍了服务器的处理。</p>
<p>代码   说明<br />
400   （错误请求） 服务器不理解请求的语法。<br />
401   （未授权） 请求要求身份验证。 对于需要登录的网页，服务器可能返回此响应。<br />
403   （禁止） 服务器拒绝请求。<br />
404   （未找到） 服务器找不到请求的网页。<br />
405   （方法禁用） 禁用请求中指定的方法。<br />
406   （不接受） 无法使用请求的内容特性响应请求的网页。<br />
407   （需要代理授权） 此状态代码与 401（未授权）类似，但指定请求者应当授权使用代理。<br />
408   （请求超时）  服务器等候请求时发生超时。<br />
409   （冲突）  服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。<br />
410   （已删除）  如果请求的资源已永久删除，服务器就会返回此响应。<br />
411   （需要有效长度） 服务器不接受不含有效内容长度标头字段的请求。<br />
412   （未满足前提条件） 服务器未满足请求者在请求中设置的其中一个前提条件。<br />
413   （请求实体过大） 服务器无法处理请求，因为请求实体过大，超出服务器的处理能力。<br />
414   （请求的 URI 过长） 请求的 URI（通常为网址）过长，服务器无法处理。<br />
415   （不支持的媒体类型） 请求的格式不受请求页面的支持。<br />
416   （请求范围不符合要求） 如果页面无法提供请求的范围，则服务器会返回此状态代码。<br />
417   （未满足期望值） 服务器未满足&#8221;期望&#8221;请求标头字段的要求。 </p>
<p>5xx（服务器错误）<br />
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误，而不是请求出错。</p>
<p>代码   说明<br />
500   （服务器内部错误）  服务器遇到错误，无法完成请求。<br />
501   （尚未实施） 服务器不具备完成请求的功能。 例如，服务器无法识别请求方法时可能会返回此代码。<br />
502   （错误网关） 服务器作为网关或代理，从上游服务器收到无效响应。<br />
503   （服务不可用） 服务器目前无法使用（由于超载或停机维护）。 通常，这只是暂时状态。<br />
504   （网关超时）  服务器作为网关或代理，但是没有及时从上游服务器收到请求。<br />
505   （HTTP 版本不受支持） 服务器不支持请求中所用的 HTTP 协议版本。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/651.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>@北京南站</title>
		<link>http://www.aaronw.cn/static/653.html</link>
		<comments>http://www.aaronw.cn/static/653.html#comments</comments>
		<pubDate>Mon, 10 May 2010 12:27:27 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[有感]]></category>
		<category><![CDATA[出差]]></category>
		<category><![CDATA[北京南站]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=653</guid>
		<description><![CDATA[本来今天是其他同事去无锡出差，但是他有事去不了，临时换了我！好久没有出差了，偶尔去一次还是有点兴奋的！￥%……&#038;*，以前出差出的都快吐了！现在算算也快有两年没有出差了！
兴奋的原因有三点：1、大概有两年没有“公费旅游”（虽说这种旅游很累）了。2、这是第一次坐动车，而且还是动车软卧。哈哈！3、来北京快速10年了还没有到过北京南站，说出去都有点丢人，哇咔咔！
买票的时候我还丢了一次人，我问买票的，我问有滑从北京站出发的动车，售票的小姐说动车都在北京南站！票买了，感觉很贵，两人壹仟叁佰伍拾整，都快赶上飞机了，但是公司就不让做飞机（我也不懂这是为什么？），算了，反正我现在是个兵也就不要计较这些了！我们是7：10出发的，出发前我们估计大概做地铁也最多也就一个小时，谁知道30分钟就带了！
来到南站发现南站建设的和飞机场一样，很大也很现代化！感觉耳目一新，这趟来值了！9：31的车我们不到8点就到了！算了，不管先找KFC吧，做下再说！打开我的小四开始记录我的行程！
进站检票的时候发现一件怪事，我本来是打听去无锡在那候车的，可检票的小姑娘让我把票拿出来，然后在我的票上盖了个红色的戳（检），再在她的小本本上把没有写完的正字加了一笔，我问她这是为什么，她说去苏州、无锡都这样，然后就不理我了！我很纳闷，估计是把我们统计成去上海SBH的人了，然后过一几天就出一消息，《据铁道部统计，最近去看世博会的人猛增》。想到这我的心开始凉了！先在这向大家澄清，我去是无锡出差，是绝对不会去看世博会的！先这样吧！手都打累了！哦，对了，我去出差撇下我亲爱的老婆一人在家，有些于心不忍啊！老婆，我爱你！
]]></description>
			<content:encoded><![CDATA[<p>本来今天是其他同事去无锡出差，但是他有事去不了，临时换了我！好久没有出差了，偶尔去一次还是有点兴奋的！￥%……&#038;*，以前出差出的都快吐了！现在算算也快有两年没有出差了！<br />
兴奋的原因有三点：1、大概有两年没有“公费旅游”（虽说这种旅游很累）了。2、这是第一次坐动车，而且还是动车软卧。哈哈！3、来北京快速10年了还没有到过北京南站，说出去都有点丢人，哇咔咔！<br />
买票的时候我还丢了一次人，我问买票的，我问有滑从北京站出发的动车，售票的小姐说动车都在北京南站！票买了，感觉很贵，两人壹仟叁佰伍拾整，都快赶上飞机了，但是公司就不让做飞机（我也不懂这是为什么？），算了，反正我现在是个兵也就不要计较这些了！我们是7：10出发的，出发前我们估计大概做地铁也最多也就一个小时，谁知道30分钟就带了！<br />
来到南站发现南站建设的和飞机场一样，很大也很现代化！感觉耳目一新，这趟来值了！9：31的车我们不到8点就到了！算了，不管先找KFC吧，做下再说！打开我的小四开始记录我的行程！<br />
进站检票的时候发现一件怪事，我本来是打听去无锡在那候车的，可检票的小姑娘让我把票拿出来，然后在我的票上盖了个红色的戳（检），再在她的小本本上把没有写完的正字加了一笔，我问她这是为什么，她说去苏州、无锡都这样，然后就不理我了！我很纳闷，估计是把我们统计成去上海SBH的人了，然后过一几天就出一消息，《据铁道部统计，最近去看世博会的人猛增》。想到这我的心开始凉了！先在这向大家澄清，我去是无锡出差，是绝对不会去看世博会的！先这样吧！手都打累了！哦，对了，我去出差撇下我亲爱的老婆一人在家，有些于心不忍啊！老婆，我爱你！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/653.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[原创]python的web环境搭建</title>
		<link>http://www.aaronw.cn/static/640.html</link>
		<comments>http://www.aaronw.cn/static/640.html#comments</comments>
		<pubDate>Wed, 05 May 2010 17:13:10 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[cx_Oracle]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[flup]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[python2.6.5]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=640</guid>
		<description><![CDATA[最近公司上了个新的项目，该项目的主要语言使用的是python。我学python时间也不长，正好大家一起努力吧！最终我还是把环境搭建好了！使用的软件有：python2.6.5+memcache+flup+django+cx_Oracle+nginx。具体步骤如下：
Python-2.6.5的安装
wget http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
tar xzf Python-2.6.5.tar.bz2
cd Python-2.6.5
./configure &#8211;prefix=/usr/local/python265  &#8211;enable-shared &#8211;with-threads
make &#38;&#38;  make install
cd /usr/local
ln -s  python265 python
nginx-0.8.36的安装
wget http://nginx.org/download/nginx-0.8.36.tar.gz
tar xzf nginx-0.8.36.tar.gz
cd nginx-0.8.36
./configure &#8211;prefix=/usr/local/nginx &#8211;with-poll_module &#8211;with-http_realip_module &#8211;with-http_sub_module &#8211;with-http_gzip_static_module &#8211;with-http_stub_status_module &#8211;with-pcre
make  &#38;&#38; make install

flup-1.0.2的安装
wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz
tar xzf flup-1.0.2.tar.gz
cd flup-1.0.2
python setup.py install
Django-1.1.1的安装
wget http://www.djangoproject.com/download/1.1.1/tarball
tar xzf Django-1.1.1.tar.gz
cd Django-1.1.1
python setup.py install
python-memcached-1.45的安装
wget ftp://ftp.tummy.com/pub/python-memcached/old-releases/python-memcached-1.45.tar.gz
tar xzf python-memcached-1.45.tar.gz
cd python-memcached-1.45
python setup.py install
cx_Oracle的安装
wget http://downloads.sourceforge.net/project/cx-oracle/5.0.3/cx_Oracle-5.0.3.tar.gz?use_mirror=cdnetworks-kr-2
tar xzf cx_Oracle-5.0.3.tar.gz
cd cx_Oracle-5.0.3
python [...]]]></description>
			<content:encoded><![CDATA[<p>最近公司上了个新的项目，该项目的主要语言使用的是python。我学python时间也不长，正好大家一起努力吧！最终我还是把环境搭建好了！使用的软件有：python2.6.5+memcache+flup+django+cx_Oracle+nginx。具体步骤如下：<br />
Python-2.6.5的安装</p>
<div style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">wget http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2<br />
tar xzf Python-2.6.5.tar.bz2<br />
cd Python-2.6.5<br />
./configure &#8211;prefix=/usr/local/python265  &#8211;enable-shared &#8211;with-threads<br />
make &amp;&amp;  make install<br />
cd /usr/local<br />
ln -s  python265 python</div>
<p>nginx-0.8.36的安装</p>
<div style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">wget http://nginx.org/download/nginx-0.8.36.tar.gz<br />
tar xzf nginx-0.8.36.tar.gz<br />
cd nginx-0.8.36<br />
./configure &#8211;prefix=/usr/local/nginx &#8211;with-poll_module &#8211;with-http_realip_module &#8211;with-http_sub_module &#8211;with-http_gzip_static_module &#8211;with-http_stub_status_module &#8211;with-pcre<br />
make  &amp;&amp; make install</div>
<p><span id="more-640"></span><br />
flup-1.0.2的安装</p>
<div style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz<br />
tar xzf flup-1.0.2.tar.gz<br />
cd flup-1.0.2<br />
python setup.py install</div>
<p>Django-1.1.1的安装</p>
<div style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">wget http://www.djangoproject.com/download/1.1.1/tarball<br />
tar xzf Django-1.1.1.tar.gz<br />
cd Django-1.1.1<br />
python setup.py install</div>
<p>python-memcached-1.45的安装</p>
<div style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">wget ftp://ftp.tummy.com/pub/python-memcached/old-releases/python-memcached-1.45.tar.gz<br />
tar xzf python-memcached-1.45.tar.gz<br />
cd python-memcached-1.45<br />
python setup.py install</div>
<p>cx_Oracle的安装</p>
<div style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">wget http://downloads.sourceforge.net/project/cx-oracle/5.0.3/cx_Oracle-5.0.3.tar.gz?use_mirror=cdnetworks-kr-2<br />
tar xzf cx_Oracle-5.0.3.tar.gz<br />
cd cx_Oracle-5.0.3<br />
python setup.py build<br />
python setup.py install</div>
<p>在安装cx_Oracle出了很多问题，只要一执行python setup.py build就回出现一堆错误！后来我把错误重定向后发现缺少很多文件！cx_Oracle安装是需要预先安装oracle客户端，主要是需要libclntsh.so这个文件，客户端安装很大，所以下个基本库就可以，下载连接点<span style="color: #ff0000;"><a href="http://www.oracle.com/technology/software/tech/oci/instantclient/index.html" target="_blank">这里</a></span>，选择你要访问的数据库相对应的版本下载就可了！我下载的是这个oracle-instantclient-basic-10.2.0.4-1.i386.zip解压后放到/opt/instantclient_10_2里面，然后编辑.bashrc文件</p>
<div style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">vi ~/.bashrc<br />
PATH=/usr/local/python/bin:$PATH<br />
export ORACLE_HOME=/opt/instantclient_10_2<br />
export LD_LIBRARY_PATH=$ORACLE_HOME<br />
source ~/.bashrc</div>
<p>还要注意的是你需要把oracle数据库里面的rdbms copy到/opt/instantclient_10_2目录下，不然提示缺少很多.h文件，这样的话你编译就不会报错了，但是会有一些警告，但这是正常的！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/640.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CISCO snmp v3 配置</title>
		<link>http://www.aaronw.cn/static/636.html</link>
		<comments>http://www.aaronw.cn/static/636.html#comments</comments>
		<pubDate>Mon, 29 Mar 2010 03:33:08 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[CISCO]]></category>
		<category><![CDATA[snmp]]></category>
		<category><![CDATA[v3]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=636</guid>
		<description><![CDATA[以前配置cisco的snmp都是内网的，现在外网的为了安全想配v3版本的！没有配置过，google了一下，没有什么结果，都是在问如何配置的！算了还是自己想办法吧！
现在把这个问题解决了，方法如下:
snmp-server view readview internet included
snmp-server group readonly v3 auth read readview
snmp-server user username readonly v3 auth md5 password
]]></description>
			<content:encoded><![CDATA[<p>以前配置cisco的snmp都是内网的，现在外网的为了安全想配v3版本的！没有配置过，google了一下，没有什么结果，都是在问如何配置的！算了还是自己想办法吧！<br />
现在把这个问题解决了，方法如下:</p>
<pre class="brush: bash;">snmp-server view readview internet included
snmp-server group readonly v3 auth read readview
snmp-server user username readonly v3 auth md5 password</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/636.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google退出中国内地</title>
		<link>http://www.aaronw.cn/static/634.html</link>
		<comments>http://www.aaronw.cn/static/634.html#comments</comments>
		<pubDate>Tue, 23 Mar 2010 01:10:33 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[有感]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[谷歌，退出中国]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=634</guid>
		<description><![CDATA[今天早上我打开网页发现一个重大消息，google退出中国内地
北京时间3月23日凌晨3时零3分,谷歌公司高级副总裁、首席法律官大卫·德拉蒙德公开发表声明,再次借黑客攻击问题指责中国,宣布停止对谷歌中国搜索服 务的“过滤审查”,并将搜索服务由中国内地转至香港。
现在你打开www.google.cn自动跳转到www.google.com.hk.对于google的离开我表示出理解和遗憾！在中国的确不适合发展以美国开放标准的互联网企业，中国有自己的历史和文化！纯自由开放在目前的中国是不可行的。但是从技术角度讲我对谷歌的离开表示遗憾，在中国是找不到像google这样的能够以用户为本的企业。
]]></description>
			<content:encoded><![CDATA[<p>今天早上我打开网页发现一个重大消息，google退出中国内地</p>
<p>北京时间3月23日凌晨3时零3分,谷歌公司高级副总裁、首席法律官大卫·德拉蒙德公开发表声明,再次借黑客攻击问题指责中国,宣布停止对谷歌中国搜索服 务的“过滤审查”,并将搜索服务由中国内地转至香港。</p>
<p>现在你打开www.google.cn自动跳转到www.google.com.hk.对于google的离开我表示出理解和遗憾！在中国的确不适合发展以美国开放标准的互联网企业，中国有自己的历史和文化！纯自由开放在目前的中国是不可行的。但是从技术角度讲我对谷歌的离开表示遗憾，在中国是找不到像google这样的能够以用户为本的企业。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/634.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WSGI、flup、fastcgi、web.py的关系</title>
		<link>http://www.aaronw.cn/static/630.html</link>
		<comments>http://www.aaronw.cn/static/630.html#comments</comments>
		<pubDate>Sat, 27 Feb 2010 14:20:17 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[WEB]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[flup]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[web.py]]></category>
		<category><![CDATA[WSGI]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=630</guid>
		<description><![CDATA[最近一直在学习python，了解了python的基本语法和编写规则！想用python写一个网络接口，但是不知道怎么下手！关键是还有很概念没有搞明白，刚看了一篇文章上有这方面的解释，现在转载到这里与大家分享！
Apache/lighttpd: 相当于一个request proxy，根据配置，把不同的请求转发给不同的server处理，例如静态的文件请求自己处理，这个时候它就像一个web server，对于fastcgi/python这样的请求转发给flup这样的Server/Gateway进行处理
flup: 一个用python写的web server，也就是cgi中所谓的Server/Gateway，它负责接受apache/lighttpd转发的请求，并调用你写的程序 (application)，并将application处理的结果返回到apache/lighttpd
fastcgi: apache/lighttpd的一个模块，虽然flup可以作为一个独立的web server使用，但是对于浏览器请求处理一般都交给 apache/lighttpd处理，然后由apache/lighttpd转发给flup处理，这样就需要一个东西来把apache/lighttpd跟flup联系起来，这个东西就是fastcgi，它通过环境变量以及socket将客户端请求的信息传送给flup并接收flup返回的结果
web.py: 应该说有了上面的东西你就可以开始编写你的web程序了，但是问题是你就要自己处理浏览器的输入输出，还有cookie、session、模板等各种各样的问题了，web.py的作用就是帮你把这些工作都做好了，它就是所谓的web framework，另外一个出名的是django，不过感觉太复杂了，web.py差不多就够用了
WSGI : 除了flup Server/Gateway外还有很多其他人的写的Server/Gateway, 这个时候就会出问题了，如果你在flup上写了一个程序，现在由于各种原因你要使用xdly了，这个时候你的程序也许就要做很多痛苦的修改才能使用 xdly server了，WSGI就是一个规范，他规范了flup这个服务应该怎么写，应该使用什么方式什么参数调用你写的程序(application)等，当然同时也规范你的程序应该怎么写了，这样的话，只要flup跟xdly都遵守WSGI的话，你的程序在两个上面都可以使用了，flup就是一个WSGI server
转自豆瓣网
]]></description>
			<content:encoded><![CDATA[<p>最近一直在学习python，了解了python的基本语法和编写规则！想用python写一个网络接口，但是不知道怎么下手！关键是还有很概念没有搞明白，刚看了一篇文章上有这方面的解释，现在转载到这里与大家分享！</p>
<p>Apache/lighttpd: 相当于一个request proxy，根据配置，把不同的请求转发给不同的server处理，例如静态的文件请求自己处理，这个时候它就像一个web server，对于fastcgi/python这样的请求转发给flup这样的Server/Gateway进行处理</p>
<p>flup: 一个用python写的web server，也就是cgi中所谓的Server/Gateway，它负责接受apache/lighttpd转发的请求，并调用你写的程序 (application)，并将application处理的结果返回到apache/lighttpd</p>
<p>fastcgi: apache/lighttpd的一个模块，虽然flup可以作为一个独立的web server使用，但是对于浏览器请求处理一般都交给 apache/lighttpd处理，然后由apache/lighttpd转发给flup处理，这样就需要一个东西来把apache/lighttpd跟flup联系起来，这个东西就是fastcgi，它通过环境变量以及socket将客户端请求的信息传送给flup并接收flup返回的结果</p>
<p>web.py: 应该说有了上面的东西你就可以开始编写你的web程序了，但是问题是你就要自己处理浏览器的输入输出，还有cookie、session、模板等各种各样的问题了，web.py的作用就是帮你把这些工作都做好了，它就是所谓的web framework，另外一个出名的是django，不过感觉太复杂了，web.py差不多就够用了</p>
<p>WSGI : 除了flup Server/Gateway外还有很多其他人的写的Server/Gateway, 这个时候就会出问题了，如果你在flup上写了一个程序，现在由于各种原因你要使用xdly了，这个时候你的程序也许就要做很多痛苦的修改才能使用 xdly server了，WSGI就是一个规范，他规范了flup这个服务应该怎么写，应该使用什么方式什么参数调用你写的程序(application)等，当然同时也规范你的程序应该怎么写了，这样的话，只要flup跟xdly都遵守WSGI的话，你的程序在两个上面都可以使用了，flup就是一个WSGI server</p>
<p>转自豆瓣网</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/630.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;key&#8217; redefined near &#8216;key&#8217;</title>
		<link>http://www.aaronw.cn/static/626.html</link>
		<comments>http://www.aaronw.cn/static/626.html#comments</comments>
		<pubDate>Tue, 23 Feb 2010 02:51:30 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[dns，rndc]]></category>
		<category><![CDATA[key]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=626</guid>
		<description><![CDATA[在我配置dns是时候，用rndc reload出现这样的错误：

rndc: error: /usr/local/named/etc/rndc.key:5: 'key' redefined near 'key'
rndc: could not load rndc configuration
rndc: error: /usr/local/named/etc/rndc.key:5: unknown option 'options'
rndc: could not load rndc configuration

google一下，发现有很多人遇到这样问题，有发贴求助的，也有回帖的！我看了很多帖子，要么是没有结果，要么是发帖人说我搞定了，但就没有说明是怎么搞定的！在这里严重鄙视一下这样的人！后来我自己也解决了这个问题！现在把解决的方法说一下！
一般这个错误的都是用 rndc-confgen生成的rndc.key在rndc reload时候产生的。这里需要说明的 rndc-confgen生成的内容是放到named.conf里使用的，而不能把生产的内容放到rndc.key里面！rndc.key里面永远只放通过rndc重新加载配置文件的key的内容，而这个内容一般都是这样的：
key &#34;rndckey&#34; {
        algorithm hmac-md5;
        secret &#34;aaaaaaaaaaaaaaaaaaaaaa&#34;;
};
只有这样才不会产生上述错误！
]]></description>
			<content:encoded><![CDATA[<p>在我配置dns是时候，用rndc reload出现这样的错误：</p>
<pre class="brush: bash;">
rndc: error: /usr/local/named/etc/rndc.key:5: 'key' redefined near 'key'
rndc: could not load rndc configuration
rndc: error: /usr/local/named/etc/rndc.key:5: unknown option 'options'
rndc: could not load rndc configuration
</pre>
<p>google一下，发现有很多人遇到这样问题，有发贴求助的，也有回帖的！我看了很多帖子，要么是没有结果，要么是发帖人说我搞定了，但就没有说明是怎么搞定的！在这里严重鄙视一下这样的人！后来我自己也解决了这个问题！现在把解决的方法说一下！</p>
<p>一般这个错误的都是用 rndc-confgen生成的rndc.key在rndc reload时候产生的。这里需要说明的 rndc-confgen生成的内容是放到named.conf里使用的，而不能把生产的内容放到rndc.key里面！rndc.key里面永远只放通过rndc重新加载配置文件的key的内容，而这个内容一般都是这样的：</p>
<pre class="brush: bash;">key &quot;rndckey&quot; {
        algorithm hmac-md5;
        secret &quot;aaaaaaaaaaaaaaaaaaaaaa&quot;;
};</pre>
<p>只有这样才不会产生上述错误！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aaronw.cn/static/626.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[原创]bind view master/slave 通过TSIG同步方法</title>
		<link>http://www.aaronw.cn/static/615.html</link>
		<comments>http://www.aaronw.cn/static/615.html#comments</comments>
		<pubDate>Tue, 23 Feb 2010 02:29:07 +0000</pubDate>
		<dc:creator>Aaron.wang</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[master]]></category>
		<category><![CDATA[slave]]></category>
		<category><![CDATA[tsig]]></category>
		<category><![CDATA[view]]></category>

		<guid isPermaLink="false">http://www.aaronw.cn/?p=615</guid>
		<description><![CDATA[我以前写了一篇《bind view master/slave不能同步的解决方法》，当时是给上海一家公司做的dns服务器，用的是在网口上绑定多个子接口比分配不同的IP来实现view同步的！昨天又开始做一个dns服务器，这次使用的是TSIG同步方法，这样就可以不用多个IP了！
TSIG同步方法是这样的：在服务器上定义多个key，每个view使用一个key，ip为同一个ip，备机上就是用key来区分和同步view！直接贴出我的named.conf完整配置吧！
环境如下：
A机：master     172.16.1.1        5个view     4个zone
B机：slave          172.16.1.2

A机配置：

include &#34;/usr/local/named/etc/area_shanghai.cfg&#34;;//这个是华东的acl
include &#34;/usr/local/named/etc/area_chengdu.cfg&#34;;//这个是华南的acl
include &#34;/usr/local/named/etc/area_south.cfg&#34;;//这个是电信的acl
include &#34;/usr/local/named/etc/area_edu.cfg&#34;;//这个是教育网的acl
include &#34;/usr/local/named/etc/area_local.cfg&#34;;//这个是本地的acl
include &#34;/usr/local/named/etc/area_dns.cfg&#34;;//这个是dns是真实IP
include &#34;/usr/local/named/etc/area_key.cfg&#34;;//这个是定义的key
///////////////////////////////////////////////////////////////////////
options {
        directory &#34;/var/named&#34;;
        dump-file            &#34;data/cache_dump.db&#34;;
        statistics-file    [...]]]></description>
			<content:encoded><![CDATA[<p>我以前写了一篇《<a title="Permanent Link to [原创]bind view master/slave不能同步的解决方法" rel="bookmark" href="../static/362.html">bind view master/slave不能同步的解决方法</a>》，当时是给上海一家公司做的dns服务器，用的是在网口上绑定多个子接口比分配不同的IP来实现view同步的！昨天又开始做一个dns服务器，这次使用的是TSIG同步方法，这样就可以不用多个IP了！</p>
<p>TSIG同步方法是这样的：在服务器上定义多个key，每个view使用一个key，ip为同一个ip，备机上就是用key来区分和同步view！直接贴出我的named.conf完整配置吧！</p>
<p>环境如下：<br />
A机：master     172.16.1.1        5个view     4个zone<br />
B机：slave          172.16.1.2<br />
<span id="more-615"></span><br />
A机配置：</p>
<pre class="brush: bash;">
include &quot;/usr/local/named/etc/area_shanghai.cfg&quot;;//这个是华东的acl
include &quot;/usr/local/named/etc/area_chengdu.cfg&quot;;//这个是华南的acl
include &quot;/usr/local/named/etc/area_south.cfg&quot;;//这个是电信的acl
include &quot;/usr/local/named/etc/area_edu.cfg&quot;;//这个是教育网的acl
include &quot;/usr/local/named/etc/area_local.cfg&quot;;//这个是本地的acl
include &quot;/usr/local/named/etc/area_dns.cfg&quot;;//这个是dns是真实IP
include &quot;/usr/local/named/etc/area_key.cfg&quot;;//这个是定义的key
///////////////////////////////////////////////////////////////////////
options {
        directory &quot;/var/named&quot;;
        dump-file            &quot;data/cache_dump.db&quot;;
        statistics-file      &quot;data/named_stats.txt&quot;;
        memstatistics-file   &quot;data/named_mem_stats.txt&quot;;
        also-notify { 172.16.1.2; };
        allow-transfer { area_dns; };
        notify explicit;
        allow-query { any; };
        allow-update { none; };
};

logging {
        channel warning  {
                file &quot;/var/log/dns/named.log&quot; versions 3 size 2048k;
                severity info;
                print-category yes;
                print-time yes;
        };

        channel queries_info {
                file &quot;/var/log/dns/queries.log&quot; versions 3 size 200m;
                severity info;
                print-category yes;
                print-severity yes;
                print-time yes;
        };

        category queries {
                queries_info;
                default_debug;
       };

       category default { warning; };

};
///////////////////////////////////////////////////////////////////////
view &quot;eduward&quot; {
        match-clients { !key shanghai;!key chengdu;!key local;!key southward;!key otherward; area_dns;area_edu; };
        server 172.16.1.2 { keys { eduward; }; };
        recursion no;//不接受非递归查询
zone &quot;.&quot; IN {
        type hint;
        file &quot;named.ca&quot;;
};

zone &quot;localhost&quot; IN {
        type master;
        file &quot;localhost.zone&quot;;
};

zone &quot;0.0.127.in-addr.arpa&quot;{
        type master;
        file &quot;named.local&quot;;
};

zone &quot;168.192.in-addr.arpa&quot;{
        type master;
        file &quot;eduward/192168&quot;;
};

zone &quot;a.com&quot; IN {
        type master;
        file &quot;eduward/a.com.zone&quot;;
};

zone &quot;b.com&quot; IN {
        type master;
        file &quot;eduward/b.com.zone&quot;;
};

zone &quot;c.com&quot; IN {
        type master;
        file &quot;eduward/c.com.zone&quot;;
};

};
///////////////////////////////////////////////////////////////////////
view &quot;chengdu&quot; {
        match-clients { !key shanghai;!key local;!key eduward;!key southward;!key otherward; area_dns;area_chengdu; };
        server 172.16.1.2 { keys { chengdu; }; };
        recursion no;
zone &quot;.&quot; IN {
        type hint;
        file &quot;named.ca&quot;;
};

zone &quot;localhost&quot; IN {
        type master;
        file &quot;localhost.zone&quot;;
};

zone &quot;0.0.127.in-addr.arpa&quot;{
        type master;
        file &quot;named.local&quot;;
};

zone &quot;168.192.in-addr.arpa&quot;{
        type master;
        file &quot;chengdu/192168&quot;;
};

zone &quot;a.com&quot; IN {
        type master;
        file &quot;chengdu/a.com.zone&quot;;
};

zone &quot;b.com&quot; IN {
        type master;
        file &quot;chengdu/b.com.zone&quot;;
};

zone &quot;c.com&quot; IN {
        type master;
        file &quot;chengdu/c.com.zone&quot;;
};

};
///////////////////////////////////////////////////////////////////////
view &quot;shanghai&quot; {
        match-clients { !key local;!key chengdu;!key eduward;!key southward;!key otherward; area_dns;area_shanghai; };
        server 172.16.1.2 { keys { shanghai; }; };
        recursion no;
zone &quot;.&quot; IN {
        type hint;
        file &quot;named.ca&quot;;
};

zone &quot;localhost&quot; IN {
        type master;
        file &q