<?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>yanghao&#039;s blog</title>
	<atom:link href="http://yanghao.org/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://yanghao.org/blog</link>
	<description>这是一个wordpress博客</description>
	<lastBuildDate>Fri, 18 May 2012 11:15:09 +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>设置safari总是显示标签（tab）</title>
		<link>http://yanghao.org/blog/archives/251</link>
		<comments>http://yanghao.org/blog/archives/251#comments</comments>
		<pubDate>Fri, 18 May 2012 11:15:09 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[标签]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=251</guid>
		<description><![CDATA[在chrome和safari之间换来换去，最近又开始使用safari，但总是被他的跳跃感到恶心，只有一个标签的时候不显示标签栏，多个标签（2个以上）时候显示标签栏，这就造成内容在不断的跳跃。在偏好设置中找来找去，找不到这个的设置，郁闷，后来发现apple原来给了这个“总是显示标签”的设置的，只是没有给界面接口而已，要设置“总是显示标签”，在终端里面执行下面内容： defaults write com.apple.Safari AlwaysShowTabBar -bool YES 如果你不知道什么是终端，请你点击右上角放大镜的图表，然后输入“终端”（不带引号），回车]]></description>
			<content:encoded><![CDATA[<p>在chrome和safari之间换来换去，最近又开始使用safari，但总是被他的跳跃感到恶心，只有一个标签的时候不显示标签栏，多个标签（2个以上）时候显示标签栏，这就造成内容在不断的跳跃。在偏好设置中找来找去，找不到这个的设置，郁闷，后来发现apple原来给了这个“总是显示标签”的设置的，只是没有给界面接口而已，要设置“总是显示标签”，在终端里面执行下面内容：</p>

<pre><code>defaults write com.apple.Safari AlwaysShowTabBar -bool YES
</code></pre>

<p>如果你不知道什么是终端，请你点击右上角放大镜的图表，然后输入“终端”（不带引号），回车</p>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/251/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yiiframework简单介绍</title>
		<link>http://yanghao.org/blog/archives/242</link>
		<comments>http://yanghao.org/blog/archives/242#comments</comments>
		<pubDate>Thu, 03 May 2012 10:38:08 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[yiiframework]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=242</guid>
		<description><![CDATA[快速，安全和专业的PHP框架。 Yii是一个高性能的PHP框架，它是专为Web 2.0应用程序而设计的PHP框架。 Yii的自带丰富的功能的MVC，DAO/ActiveRecord，I18N/L10N，缓存，身份验证和基于角色的访问控制，scaffolding，测试等，它可以显着缩短开发时间。 快速 Yii框架只加载你所需要的功能。它具有强大的缓存支持。它的设计种融合了AJAX的功能。 安全 安全是Yii框架基本功能。它包括输入验证，输出过滤，SQL注入和跨站点脚本预防。 专业 Yii框架帮助您开发简单和可重用的代码。它遵循MVC模式，确保清晰的逻辑和页面分离。]]></description>
			<content:encoded><![CDATA[<p>快速，安全和专业的PHP框架。</p>

<p>Yii是一个高性能的PHP框架，它是专为Web 2.0应用程序而设计的PHP框架。</p>

<p>Yii的自带丰富的功能的MVC，DAO/ActiveRecord，I18N/L10N，缓存，身份验证和基于角色的访问控制，scaffolding，测试等，它可以显着缩短开发时间。</p>

<p>快速</p>

<p>Yii框架只加载你所需要的功能。它具有强大的缓存支持。它的设计种融合了AJAX的功能。</p>

<p>安全</p>

<p>安全是Yii框架基本功能。它包括输入验证，输出过滤，SQL注入和跨站点脚本预防。</p>

<p>专业</p>

<p>Yii框架帮助您开发简单和可重用的代码。它遵循MVC模式，确保清晰的逻辑和页面分离。</p>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/242/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mongo查询语言</title>
		<link>http://yanghao.org/blog/archives/240</link>
		<comments>http://yanghao.org/blog/archives/240#comments</comments>
		<pubDate>Tue, 24 Apr 2012 05:38:15 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[Mongodb]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[查询]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=240</guid>
		<description><![CDATA[Mongo使用JSON(BSON)表示一个查询，这相当于SQL语法的WHERE子句： db.users.find( { x : 3, y : "abc" } ).sort({x:1}); #select * from users where x=3 and y='abc' order by x asc; 上面语法是被包装过的，实际上下面代码更底层一些(同上面代码执行结果一样)，但是我们用上面代码即可： db.users.find( { $query : { x : 3, y : "abc" }, $orderby : { x &#8230; <a href="http://yanghao.org/blog/archives/240">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mongo使用JSON(BSON)表示一个查询，这相当于SQL语法的WHERE子句：</p>

<pre><code>db.users.find( { x : 3, y : "abc" } ).sort({x:1});
#select * from users where x=3 and y='abc' order by x asc;
</code></pre>

<p>上面语法是被包装过的，实际上下面代码更底层一些(同上面代码执行结果一样)，但是我们用上面代码即可：</p>

<pre><code>db.users.find( { $query : { x : 3, y : "abc" }, $orderby : { x : 1 } } );
</code></pre>

<p>find参数：</p>

<ul>
<li>$query &#8211; 等同于WHERE子句</li>
<li>$orderby &#8211; 排序结果集</li>
<li>$hint &#8211; 查询优化，强制使用索引</li>
<li>$explain &#8211; 如果是true，返回解析查询语句的内容，并非查询结果</li>
<li>$snapshot &#8211; 如果true，“快照模式”</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/240/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X安装Mongodb</title>
		<link>http://yanghao.org/blog/archives/232</link>
		<comments>http://yanghao.org/blog/archives/232#comments</comments>
		<pubDate>Mon, 23 Apr 2012 16:32:39 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Mongodb]]></category>
		<category><![CDATA[环境变量]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=232</guid>
		<description><![CDATA[系统环境 Mac OS X 10.7.3 下载 直接官网下载Mongodb os x 64bit，目前最新的是2.0.4，官方文档给出的下载地址是： http://downloads.mongodb.org/osx/mongodb-osx-x86_64-x.y.z.tgz 替换x.y.x为当前稳定版本号之后为： http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.0.4.tgz 在Mac OS X中直接双击解压即可得到编译好的二进制文件 安装 既然是下载的二进制文件了，安装就很简单了，按照官方文档写的只需要创建/data/db目录即可，之后运行bin/mongod 为了使用方便，创建/usr/local/mongodb的软链接到你的mongodb目录，再增加/usr/local/mongodb/bin到环境变量 [shell] # 创建/data/db目录 sudo mkdir -p /data/db # 设置/data/db目录权限 sudo chown -R 你的系统登录用户名 /data # 创建/usr/local/mongodb软链接 sudo ln -s ~/Downloads/mongodb-osx-x86_64-2.0.4 /usr/local/mongodb &#8230; <a href="http://yanghao.org/blog/archives/232">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>系统环境</h2>

<pre><code>Mac OS X 10.7.3
</code></pre>

<h2>下载</h2>

<p>直接官网下载Mongodb os x 64bit，目前最新的是2.0.4，官方文档给出的下载地址是：</p>

<pre><code>http://downloads.mongodb.org/osx/mongodb-osx-x86_64-x.y.z.tgz
</code></pre>

<p>替换x.y.x为当前稳定版本号之后为：</p>

<pre><code>http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.0.4.tgz
</code></pre>

<p>在Mac OS X中直接双击解压即可得到编译好的二进制文件</p>

<h2>安装</h2>

<p>既然是下载的二进制文件了，安装就很简单了，按照官方文档写的只需要创建<code>/data/db</code>目录即可，之后运行<code>bin/mongod</code></p>

<p>为了使用方便，创建<code>/usr/local/mongodb</code>的软链接到你的mongodb目录，再增加<code>/usr/local/mongodb/bin</code>到环境变量</p>

<pre><code>[shell]
# 创建/data/db目录
sudo mkdir -p /data/db
# 设置/data/db目录权限
sudo chown -R 你的系统登录用户名 /data
# 创建/usr/local/mongodb软链接
sudo ln -s ~/Downloads/mongodb-osx-x86_64-2.0.4 /usr/local/mongodb
</code></pre>

<p>增加环境变量，修改<code>~/.bash_profile</code>文件,增加下面代码</p>

<pre><code>PATH="/usr/local/mongodb/bin:${PATH}"
export PATH
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/232/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用gpart给freebsd分区</title>
		<link>http://yanghao.org/blog/archives/225</link>
		<comments>http://yanghao.org/blog/archives/225#comments</comments>
		<pubDate>Mon, 23 Apr 2012 12:54:30 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[gpart]]></category>
		<category><![CDATA[分区]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=225</guid>
		<description><![CDATA[freebsd 9.0开始默认使用gpart进行磁盘分区，如果你还在使用fdisk，也是应该使用gpart的时候了。 创建磁盘分区 gpart create -s GPT da1 如果你的磁盘已经有分区文件系统，gpart会返回失败 gpart: geom 'da1': File exists 销毁磁盘分区 gpart destroy -F da1 添加一个新的分区 -s参数指定分区大小，为指定-s为全部磁盘空间 -t参数指定分区类型 -l参数指定分区标签 -b参数指定开始分区的逻辑卷地址 gpart add -t freebsd-ufs -l data da1 查看分区方案 gpart show -lp da1 =&#62; 34 1172123501 da1 &#8230; <a href="http://yanghao.org/blog/archives/225">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>freebsd 9.0开始默认使用gpart进行磁盘分区，如果你还在使用fdisk，也是应该使用gpart的时候了。</p>

<p>创建磁盘分区</p>

<pre><code>gpart create -s GPT da1
</code></pre>

<p>如果你的磁盘已经有分区文件系统，gpart会返回失败</p>

<pre><code>gpart: geom 'da1': File exists
</code></pre>

<p>销毁磁盘分区</p>

<pre><code>gpart destroy -F da1
</code></pre>

<p>添加一个新的分区</p>

<ul>
<li>-s参数指定分区大小，为指定-s为全部磁盘空间</li>
<li>-t参数指定分区类型</li>
<li>-l参数指定分区标签</li>
<li><p>-b参数指定开始分区的逻辑卷地址</p>

<p>gpart add -t freebsd-ufs -l data da1</p></li>
</ul>

<p>查看分区方案</p>

<pre><code>gpart show -lp da1
=&gt;        34  1172123501  da1  GPT  (558G)
          34  1172123501    1  freebsd-ufs  (558G)
</code></pre>

<p>创建文件系统</p>

<pre><code>newfs da1p1
</code></pre>

<p>挂载文件系统，要确保/data目录存在</p>

<pre><code>mount /dev/da1p1 /data
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/225/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>web.py中获取当前url路径</title>
		<link>http://yanghao.org/blog/archives/183</link>
		<comments>http://yanghao.org/blog/archives/183#comments</comments>
		<pubDate>Sat, 31 Mar 2012 07:02:40 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=183</guid>
		<description><![CDATA[web.ctx.homepath + web.ctx.fullpath 如果只使用web.ctx.fullpath的话，在有subapplications的应用中就不对了，在subapplications中web.ctx.fullpath是相对于当前的subapplications的，不是全部的路径 看看web.py的源代码就清楚了，下面是web.ctx的初始化代码： ctx.homedomain = ctx.protocol + '://' + env.get('HTTP_HOST', '[unknown]') ctx.homepath = os.environ.get('REAL_SCRIPT_NAME', env.get('SCRIPT_NAME', '')) ctx.home = ctx.homedomain + ctx.homepath ctx.realhome = ctx.home ctx.ip = env.get('REMOTE_ADDR') ctx.method = env.get('REQUEST_METHOD') ctx.path = env.get('PATH_INFO') # http://trac.lighttpd.net/trac/ticket/406 requires: if env.get('SERVER_SOFTWARE', &#8230; <a href="http://yanghao.org/blog/archives/183">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre><code>web.ctx.homepath + web.ctx.fullpath
</code></pre>

<p>如果只使用web.ctx.fullpath的话，在有subapplications的应用中就不对了，在subapplications中web.ctx.fullpath是相对于当前的subapplications的，不是全部的路径</p>

<p>看看web.py的源代码就清楚了，下面是web.ctx的初始化代码：</p>

<pre><code>ctx.homedomain = ctx.protocol + '://' + env.get('HTTP_HOST', '[unknown]')
ctx.homepath = os.environ.get('REAL_SCRIPT_NAME', env.get('SCRIPT_NAME', ''))
ctx.home = ctx.homedomain + ctx.homepath
ctx.realhome = ctx.home
ctx.ip = env.get('REMOTE_ADDR')
ctx.method = env.get('REQUEST_METHOD')
ctx.path = env.get('PATH_INFO')
# http://trac.lighttpd.net/trac/ticket/406 requires:
if env.get('SERVER_SOFTWARE', '').startswith('lighttpd/'):
    ctx.path = lstrips(env.get('REQUEST_URI').split('?')[0], ctx.homepath)
    # Apache and CherryPy webservers unquote the url but lighttpd doesn't. 
    # unquote explicitly for lighttpd to make ctx.path uniform across all servers.
    ctx.path = urllib.unquote(ctx.path)

if env.get('QUERY_STRING'):
    ctx.query = '?' + env.get('QUERY_STRING', '')
else:
    ctx.query = ''

ctx.fullpath = ctx.path + ctx.query
</code></pre>

<p>对于subapplications有下面的代码：</p>

<pre><code>def _delegate_sub_application(self, dir, app):
    """Deletes request to sub application `app` rooted at the directory `dir`.
    The home, homepath, path and fullpath values in web.ctx are updated to mimic request
    to the subapp and are restored after it is handled. 

    Any issues with when used with yield?
    """
    web.ctx._oldctx = web.storage(web.ctx)
    web.ctx.home += dir
    web.ctx.homepath += dir
    web.ctx.path = web.ctx.path[len(dir):]
    web.ctx.fullpath = web.ctx.fullpath[len(dir):]
    return app.handle_with_processors()
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/183/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python requests处理cookie中的一个bug</title>
		<link>http://yanghao.org/blog/archives/181</link>
		<comments>http://yanghao.org/blog/archives/181#comments</comments>
		<pubDate>Tue, 27 Mar 2012 04:06:09 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[requests]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=181</guid>
		<description><![CDATA[最近使用pyhton requests库，还不错，很好用，不过在处理cookie的时候有个问题，害我折腾半天 如果一个页面写了2个同名的cookie，但是path是不一样的，python requests只会保留最后一个cookie，也就是说requests不能处理这种同名cookie但path不一样的情况，这是由于requests在保存cookie的时候是使用dict，我想使用cookiejar的话就不会有这种问题了]]></description>
			<content:encoded><![CDATA[<p>最近使用pyhton requests库，还不错，很好用，不过在处理cookie的时候有个问题，害我折腾半天</p>

<p>如果一个页面写了2个同名的cookie，但是path是不一样的，python requests只会保留最后一个cookie，也就是说requests不能处理这种同名cookie但path不一样的情况，这是由于requests在保存cookie的时候是使用dict，我想使用cookiejar的话就不会有这种问题了</p>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/181/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://yanghao.org/blog/archives/177</link>
		<comments>http://yanghao.org/blog/archives/177#comments</comments>
		<pubDate>Thu, 22 Mar 2012 01:36:09 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=177</guid>
		<description><![CDATA[昨天是正是失业的日子，从昨天起就不用上班了，3月21号，休息休息]]></description>
			<content:encoded><![CDATA[<p>昨天是正是失业的日子，从昨天起就不用上班了，3月21号，休息休息</p>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/177/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>fast, tp-link, 水星, d-link, netgear, linksys, 我选择了netgear</title>
		<link>http://yanghao.org/blog/archives/174</link>
		<comments>http://yanghao.org/blog/archives/174#comments</comments>
		<pubDate>Wed, 21 Mar 2012 12:17:57 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[fast]]></category>
		<category><![CDATA[netgear]]></category>
		<category><![CDATA[路由]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=174</guid>
		<description><![CDATA[一直用着fast fw54r路由，也挺好，没啥问题，但最近需要频繁的adsl断网再拨号，在这个过程中，这个路由经常宕机，害得我得一会看一下电脑，晚上更是别提了，一早上发现程序终止运行，网络不通，所以决定换一个路由 经过比较fast, tp-link, 水星这3个品牌还真是一家的，出了外观不一样外，其它多是一样一样的，web管理界面也只是换了个logo而已，不过他们的外观做工还是有区别的，fast最次 最后选择了netgear WGR614v10，又是经过比较，在amazon.cn下单，今天收到，做工比之前的fast强多了，换上之后摸索一会，发现软件方面比fast少了个功能，断开后自动连接，fast的软件设置一下，断开之后可以自动连接网络，这个就不行了，必须还的再点连接，这样，我的软件实现断开连接就多了一步，额，改改去]]></description>
			<content:encoded><![CDATA[<p>一直用着fast fw54r路由，也挺好，没啥问题，但最近需要频繁的adsl断网再拨号，在这个过程中，这个路由经常宕机，害得我得一会看一下电脑，晚上更是别提了，一早上发现程序终止运行，网络不通，所以决定换一个路由</p>
<p>经过比较fast, tp-link, 水星这3个品牌还真是一家的，出了外观不一样外，其它多是一样一样的，web管理界面也只是换了个logo而已，不过他们的外观做工还是有区别的，fast最次</p>
<p>最后选择了netgear WGR614v10，又是经过比较，在amazon.cn下单，今天收到，做工比之前的fast强多了，换上之后摸索一会，发现软件方面比fast少了个功能，断开后自动连接，fast的软件设置一下，断开之后可以自动连接网络，这个就不行了，必须还的再点连接，这样，我的软件实现断开连接就多了一步，额，改改去</p>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/174/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>urllib2.urlopen处理gzip数据</title>
		<link>http://yanghao.org/blog/archives/171</link>
		<comments>http://yanghao.org/blog/archives/171#comments</comments>
		<pubDate>Tue, 13 Mar 2012 02:25:57 +0000</pubDate>
		<dc:creator>vvpick</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[urllib2]]></category>

		<guid isPermaLink="false">http://yanghao.org/blog/?p=171</guid>
		<description><![CDATA[某些网站不管的请求头部带不带 Accept-Encoding:gzip 他都返回gzip压缩过的内容，也就是返回的头部都带有 Content-Encoding:gzip 对于这种网站在使用urllib2.urlopen获取数据时候由于urlopen不会自动处理gzip，得到的都是乱码，让人难以看懂的内容 对付这种情况就需要我们单独处理 f = urllib2.urlopen(url) headers = f.info() rawdata = f.read() if ('Content-Encoding' in headers and headers['Content-Encoding']) or \ ('content-encoding' in headers and headers['content-encoding']): import gzip import StringIO data = StringIO.StringIO(rawdata) gz = gzip.GzipFile(fileobj=data) rawdata = &#8230; <a href="http://yanghao.org/blog/archives/171">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>某些网站不管的请求头部带不带</p>

<pre><code>Accept-Encoding:gzip
</code></pre>

<p>他都返回gzip压缩过的内容，也就是返回的头部都带有</p>

<pre><code>Content-Encoding:gzip
</code></pre>

<p>对于这种网站在使用urllib2.urlopen获取数据时候由于urlopen不会自动处理gzip，得到的都是乱码，让人难以看懂的内容</p>

<p>对付这种情况就需要我们单独处理</p>

<pre><code>f = urllib2.urlopen(url)
headers = f.info()
rawdata = f.read()
if ('Content-Encoding' in headers and headers['Content-Encoding']) or \
    ('content-encoding' in headers and headers['content-encoding']):
    import gzip
    import StringIO
    data = StringIO.StringIO(rawdata)
    gz = gzip.GzipFile(fileobj=data)
    rawdata = gz.read()
    gz.close()
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://yanghao.org/blog/archives/171/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

