<?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>ggarlic的blog</title>
	<atom:link href="http://ggarlic.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://ggarlic.org/blog</link>
	<description>cat ~ggarlic/life &#62; /dev/null</description>
	<lastBuildDate>Sun, 22 Apr 2012 17:28:36 +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>Bonny/The Bonnie Banks o&#8217;Loch Lomond</title>
		<link>http://ggarlic.org/blog/2012/04/bonny-and-the-bonnie-banks-oloch-omond/</link>
		<comments>http://ggarlic.org/blog/2012/04/bonny-and-the-bonnie-banks-oloch-omond/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 17:28:36 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=882</guid>
		<description><![CDATA[AC/DC版：

<object width="257" height="33" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.xiami.com/widget/691994_3428052/singlePlayer.swf" /><param name="wmode" value="transparent" /><embed width="257" height="33" type="application/x-shockwave-flash" src="http://www.xiami.com/widget/691994_3428052/singlePlayer.swf" wmode="transparent" /></object>

原版：
<object width="480" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://player.youku.com/player.php/sid/XMjk0MTQ1NjQ4/v.swf" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><param name="allowscriptaccess" value="always" /><embed width="480" height="400" type="application/x-shockwave-flash" src="http://player.youku.com/player.php/sid/XMjk0MTQ1NjQ4/v.swf" allowfullscreen="true" quality="high" allowscriptaccess="always" /></object>

wikipedia:
<a href="http://en.wikipedia.org/wiki/Bonny_(instrumental)">http://en.wikipedia.org/wiki/Bonny_(instrumental)</a>

<a href="http://en.wikipedia.org/wiki/The_Bonnie_Banks_O%27_Loch_Lomond">http://en.wikipedia.org/wiki/The_Bonnie_Banks_O%27_Loch_Lomond</a>

&#160;

enjoy~]]></description>
			<content:encoded><![CDATA[<p>AC/DC版：</p>
<p><object width="257" height="33" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.xiami.com/widget/691994_3428052/singlePlayer.swf" /><param name="wmode" value="transparent" /><embed width="257" height="33" type="application/x-shockwave-flash" src="http://www.xiami.com/widget/691994_3428052/singlePlayer.swf" wmode="transparent" /></object></p>
<p>原版：<br />
<object width="480" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://player.youku.com/player.php/sid/XMjk0MTQ1NjQ4/v.swf" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><param name="allowscriptaccess" value="always" /><embed width="480" height="400" type="application/x-shockwave-flash" src="http://player.youku.com/player.php/sid/XMjk0MTQ1NjQ4/v.swf" allowfullscreen="true" quality="high" allowscriptaccess="always" /></object></p>
<p>wikipedia:<br />
<a href="http://en.wikipedia.org/wiki/Bonny_(instrumental)">http://en.wikipedia.org/wiki/Bonny_(instrumental)</a></p>
<p><a href="http://en.wikipedia.org/wiki/The_Bonnie_Banks_O%27_Loch_Lomond">http://en.wikipedia.org/wiki/The_Bonnie_Banks_O%27_Loch_Lomond</a></p>
<p>&nbsp;</p>
<p>enjoy~</p>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2012/04/bonny-and-the-bonnie-banks-oloch-omond/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>django middleware的解析顺序</title>
		<link>http://ggarlic.org/blog/2012/04/the-order-ofdjango-middleware/</link>
		<comments>http://ggarlic.org/blog/2012/04/the-order-ofdjango-middleware/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 07:10:54 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=876</guid>
		<description><![CDATA[总是记不住django的middleware的解析顺序，在<a href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs" target="_blank">django的doc</a>看到一张图，以后记图好了。

<img class="aligncenter" src="https://docs.djangoproject.com/en/dev/_images/middleware.png" alt="order-of-middleware" width="502" height="417" />

During the request phases (<a title="process_request" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_request"><tt>process_request()</tt></a> and <a title="process_view" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_view"><tt>process_view()</tt></a> middleware), Django applies middleware in the order it's defined in <a href="https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-MIDDLEWARE_CLASSES"><tt>MIDDLEWARE_CLASSES</tt></a>, top-down. During the response phases (<a title="process_response" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_response"><tt>process_response()</tt></a> and <a title="process_exception" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_exception"><tt>process_exception()</tt></a> middleware), the classes are applied in reverse order, from the bottom up. You can think of it like an onion: each middleware class is a "layer" that wraps the view]]></description>
			<content:encoded><![CDATA[<p>总是记不住django的middleware的解析顺序，在<a href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs" target="_blank">django的doc</a>看到一张图，以后记图好了。</p>
<p><img class="aligncenter" src="https://docs.djangoproject.com/en/dev/_images/middleware.png" alt="order-of-middleware" width="502" height="417" /></p>
<p>During the request phases (<a title="process_request" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_request"><tt>process_request()</tt></a> and <a title="process_view" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_view"><tt>process_view()</tt></a> middleware), Django applies middleware in the order it&#8217;s defined in <a href="https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-MIDDLEWARE_CLASSES"><tt>MIDDLEWARE_CLASSES</tt></a>, top-down. During the response phases (<a title="process_response" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_response"><tt>process_response()</tt></a> and <a title="process_exception" href="https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_exception"><tt>process_exception()</tt></a> middleware), the classes are applied in reverse order, from the bottom up. You can think of it like an onion: each middleware class is a &#8220;layer&#8221; that wraps the view</p>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2012/04/the-order-ofdjango-middleware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>pydiction在vundle下的问题</title>
		<link>http://ggarlic.org/blog/2012/02/problem-when-managing-pydiction-with-vundle/</link>
		<comments>http://ggarlic.org/blog/2012/02/problem-when-managing-pydiction-with-vundle/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 22:11:10 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=870</guid>
		<description><![CDATA[自从arch下换了vundle来管理插件，就经常出现大大小小的问题，还好win下的没有用vundle来管理插件，出了问题对比一下往往能知道原因，比如今天这个问题：
<p style="padding-left: 30px;">arch下编辑c/c++文件的时候，按Tab键出来的不是snipmate而是pydiction。windows下没事</p>
挠头啊，其实解决方法很简单，参考了下windows下的设置。
<p style="padding-left: 30px;">在~/.vim/bundle/Pydiction下新建目录ftplugin，把python_pydiction.vim挪进去就行了</p>
pydiction在vim.org的<a href="http://www.vim.org/scripts/script.php?script_id=850">页面</a>明确提到了放置位置，这件事情告诉我们：RTFM!

以上。]]></description>
			<content:encoded><![CDATA[<p>自从arch下换了vundle来管理插件，就经常出现大大小小的问题，还好win下的没有用vundle来管理插件，出了问题对比一下往往能知道原因，比如今天这个问题：</p>
<p style="padding-left: 30px;">arch下编辑c/c++文件的时候，按Tab键出来的不是snipmate而是pydiction。windows下没事</p>
<p>挠头啊，其实解决方法很简单，参考了下windows下的设置。</p>
<p style="padding-left: 30px;">在~/.vim/bundle/Pydiction下新建目录ftplugin，把python_pydiction.vim挪进去就行了</p>
<p>pydiction在vim.org的<a href="http://www.vim.org/scripts/script.php?script_id=850">页面</a>明确提到了放置位置，这件事情告诉我们：RTFM!</p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2012/02/problem-when-managing-pydiction-with-vundle/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>换64位arch</title>
		<link>http://ggarlic.org/blog/2012/02/change-to-arch64/</link>
		<comments>http://ggarlic.org/blog/2012/02/change-to-arch64/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 15:58:06 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Blah]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=865</guid>
		<description><![CDATA[入了新本子Lenovo Y470,顺便换到了64位Arch。目前感觉良好，没有碰到需要安装32位兼容库的情况。

i5-2450的CPU果然比T2050个渣快不少，从编译mplayer2-git的速度上可以看出来。

安装过程不用赘述，发现现在的Arch不用调xorg.conf真是省下了不少时间。

重装之后的配置也不用废话，基本跟着<a href="https://wiki.archlinux.org/index.php/Beginners%27_Guide#Post-Installation" target="_blank">官方安装指南</a>走一遍就好，一切顺利，没碰到任何问题。

我才发现ALSA已经不用安装了，默认集成到了内核。HAL也已经彻底消失了。
<h3>Notes：</h3>
1, 导出老机子上已安装包的列表，导入新机子并安装，<a href="https://bbs.archlinux.org/viewtopic.php?id=94308" target="_blank">点我</a> 。

2, conky出现了莫名其妙的方块，最后发现因为conkyrc是dos格式的，万恶的换行符，用dos2unix搞定。

3, Y470是N记的GT 550M跟Intel的3000双显卡，windows下有N家的Optimus技术可以切换显卡。Linux下只有可怜的Bublebee可以用了，<a href="https://wiki.archlinux.org/index.php/Bumblebee" target="_blank">详见Arch Wiki</a> 。我没装，因为没有启用N卡的需求，倒是有彻底关闭它的需求。

4,在wiki里闲逛的时候发现个变态的东西：<a href="https://wiki.archlinux.org/index.php/Swap_on_video_ram" target="_blank">Swap on Video Ram 。
</a>

5,GTK3在非GNOME3下丑陋的外观，<a href="https://bbs.archlinux.org/viewtopic.php?id=116451" target="_blank">点我</a>。P.S.：Arch的<a href="https://wiki.archlinux.org/index.php/GNOME_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29" target="_blank">GNOME wiki</a>不错。

6,tint2conf不错，不用一点点手写配置文件了，点两下鼠标搞定。
<h3>未解决的问题：</h3>
1,不进BIOS的情况下彻底关闭550M显卡，我不启用它也照样产热，怎么跟占着茅坑不拉屎的tg似的。

2,acpi识别电池的状态不是charged/charging之类的，而是Unkown 。

各位大大如果谁知道怎么搞，欢迎告诉我。

以上。

&#160;]]></description>
			<content:encoded><![CDATA[<p>入了新本子Lenovo Y470,顺便换到了64位Arch。目前感觉良好，没有碰到需要安装32位兼容库的情况。</p>
<p>i5-2450的CPU果然比T2050个渣快不少，从编译mplayer2-git的速度上可以看出来。</p>
<p>安装过程不用赘述，发现现在的Arch不用调xorg.conf真是省下了不少时间。</p>
<p>重装之后的配置也不用废话，基本跟着<a href="https://wiki.archlinux.org/index.php/Beginners%27_Guide#Post-Installation" target="_blank">官方安装指南</a>走一遍就好，一切顺利，没碰到任何问题。</p>
<p>我才发现ALSA已经不用安装了，默认集成到了内核。HAL也已经彻底消失了。</p>
<h3>Notes：</h3>
<p>1, 导出老机子上已安装包的列表，导入新机子并安装，<a href="https://bbs.archlinux.org/viewtopic.php?id=94308" target="_blank">点我</a> 。</p>
<p>2, conky出现了莫名其妙的方块，最后发现因为conkyrc是dos格式的，万恶的换行符，用dos2unix搞定。</p>
<p>3, Y470是N记的GT 550M跟Intel的3000双显卡，windows下有N家的Optimus技术可以切换显卡。Linux下只有可怜的Bublebee可以用了，<a href="https://wiki.archlinux.org/index.php/Bumblebee" target="_blank">详见Arch Wiki</a> 。我没装，因为没有启用N卡的需求，倒是有彻底关闭它的需求。</p>
<p>4,在wiki里闲逛的时候发现个变态的东西：<a href="https://wiki.archlinux.org/index.php/Swap_on_video_ram" target="_blank">Swap on Video Ram 。<br />
</a></p>
<p>5,GTK3在非GNOME3下丑陋的外观，<a href="https://bbs.archlinux.org/viewtopic.php?id=116451" target="_blank">点我</a>。P.S.：Arch的<a href="https://wiki.archlinux.org/index.php/GNOME_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29" target="_blank">GNOME wiki</a>不错。</p>
<p>6,tint2conf不错，不用一点点手写配置文件了，点两下鼠标搞定。</p>
<h3>未解决的问题：</h3>
<p>1,不进BIOS的情况下彻底关闭550M显卡，我不启用它也照样产热，怎么跟占着茅坑不拉屎的tg似的。</p>
<p>2,acpi识别电池的状态不是charged/charging之类的，而是Unkown 。</p>
<p>各位大大如果谁知道怎么搞，欢迎告诉我。</p>
<p>以上。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2012/02/change-to-arch64/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>我的2011</title>
		<link>http://ggarlic.org/blog/2012/01/my-2011/</link>
		<comments>http://ggarlic.org/blog/2012/01/my-2011/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 17:36:37 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Blah]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=842</guid>
		<description><![CDATA[<div>

2<span style="font-family: 宋体;">号了，还不算太晚</span>

<strong>#hardware#</strong>
--Kindle 3
--HTC Desire Z
--EeePC<em>         /* <span style="font-family: 宋体;">都特么计划一年了，赶紧下手吧孩子 </span><span style="font-family: Georgia;">*/</span></em>
--Nokia N9        <em> /* <span style="font-family: 宋体;">这个继续眼馋中 </span><span style="font-family: Georgia;">*/</span></em>

<strong>#mobile app#</strong>
--Opera Mini       <em>   /* <span style="font-family: 宋体;">无论在</span><span style="font-family: Georgia;">s60</span><span style="font-family: 宋体;">还是</span><span style="font-family: Georgia;">android</span><span style="font-family: 宋体;">上我都几乎只用这个浏览器 </span><span style="font-family: Georgia;">*/</span></em>

<strong>#pc software#</strong>
--Vim/vimwiki
--Evernote

<strong>#website#</strong>
--<a href="http://twitter.com/">Twitter</a>
--<a href="http://news.ycombinator.com/">Hacker News</a>
--<a href="http://jandan.net/">Jandan.net</a>          <em>/* <span style="font-family: 宋体;">睡前和懒床必备，很少留言 </span><span style="font-family: Georgia;">*/</span></em>

<strong>#music#         </strong><em>/* <span style="font-family: 宋体;">竟然全是</span><span style="font-family: Georgia;">J</span><span style="font-family: 宋体;">字辈的 </span><span style="font-family: Georgia;">*/</span></em>
--<a href="http://www.google.cn/music/artist?id=A316910c6ad640de6">Janis Jopin</a>         <em> /* <span style="font-family: 宋体;">忍不住继续推荐她！</span><span style="font-family: Georgia;">*/</span></em>
--<a href="http://www.google.cn/music/artist?id=A034b9b5fc8d7066e">Joan Baez</a>
--<a href="http://www.google.cn/music/artist?id=A82abe9d88a99f644">Journey</a>

<strong>#book#</strong>
--<a href="http://book.douban.com/subject/1144185/">米国宪政历程</a>
--CSAPP
--UNP

<strong>#movie#</strong>
--2011 <span style="font-family: 宋体;">年，看了 </span><span style="font-family: Georgia;">164 </span><span style="font-family: 宋体;">部电影，打出 </span><span style="font-family: Georgia;">7.5 </span><span style="font-family: 宋体;">的平均分。更多的是为了消磨时间</span>

<strong>#dev tools#</strong>
--Vim w/ gcc
--Qt w/ Qt Creator

<strong>#food#</strong>
--<span style="font-family: 宋体;">驴肉火烧        </span><em><span style="font-family: Georgia;">/*</span><span style="font-family: 宋体;">保定的，不是河间的</span><span style="font-family: Georgia;">*/</span></em>
--<span style="font-family: 宋体;">陕西的面食</span>
--<span style="font-family: 宋体;">香蕉</span>

<strong>#time killing#</strong>
--<span style="font-family: 宋体;">煎蛋无聊团</span>
--<span style="font-family: 宋体;">西电推优</span>
--<span style="font-family: 宋体;">文盲委员会</span>
--yaourt -Syua
--<span style="font-family: 宋体;">看电影，无论电影还是小电影 </span><span style="font-family: Georgia;">:D</span>
--<a href="http://www.gamemastertips.com/">一个解谜游戏</a>

<strong>#fml#</strong>
--<span style="font-family: 宋体;">被发卡，不止一张。。。</span>
--<span style="font-family: 宋体;">考研做了分母</span>
--<span style="font-family: 宋体;">关于未来，各种纠结与迷茫</span>
--<span style="font-family: 宋体;">以上可以</span><span style="font-family: Georgia;">fml</span><span style="font-family: 宋体;">归结为：</span><span style="font-family: Georgia;">fuck </span><span style="font-family: 宋体;">本命年</span>

<strong>#disease#</strong>
--TMD<span style="font-family: 宋体;">，全称是</span><span style="font-family: 'Times New Roman';">“</span><span style="font-family: 宋体;">颞下颌关节功能紊乱综合症</span><span style="font-family: 'Times New Roman';">”          </span><em><span style="font-family: Georgia;">/*</span><span style="font-family: 宋体;">这条抄自</span><a href="http://notimportant.org/2012/01/01/2011/">病友的年终总结</a>*/</em>
--<span style="font-family: 宋体;">急性牙髓炎</span>

<strong>#misc#</strong>
--<span style="font-family: 宋体;">第一份实习，第一次辞职，第一次工资</span>
--<span style="font-family: 宋体;">大伯</span>
--Android sucks

以上

&#160;

</div>]]></description>
			<content:encoded><![CDATA[<div>
<p>2<span style="font-family: 宋体;">号了，还不算太晚</span></p>
<p><strong>#hardware#</strong><br />
&#8211;Kindle 3<br />
&#8211;HTC Desire Z<br />
&#8211;EeePC<em>         /* <span style="font-family: 宋体;">都特么计划一年了，赶紧下手吧孩子 </span><span style="font-family: Georgia;">*/</span></em><br />
&#8211;Nokia N9        <em> /* <span style="font-family: 宋体;">这个继续眼馋中 </span><span style="font-family: Georgia;">*/</span></em></p>
<p><strong>#mobile app#</strong><br />
&#8211;Opera Mini       <em>   /* <span style="font-family: 宋体;">无论在</span><span style="font-family: Georgia;">s60</span><span style="font-family: 宋体;">还是</span><span style="font-family: Georgia;">android</span><span style="font-family: 宋体;">上我都几乎只用这个浏览器 </span><span style="font-family: Georgia;">*/</span></em></p>
<p><strong>#pc software#</strong><br />
&#8211;Vim/vimwiki<br />
&#8211;Evernote</p>
<p><strong>#website#</strong><br />
&#8211;<a href="http://twitter.com/">Twitter</a><br />
&#8211;<a href="http://news.ycombinator.com/">Hacker News</a><br />
&#8211;<a href="http://jandan.net/">Jandan.net</a>          <em>/* <span style="font-family: 宋体;">睡前和懒床必备，很少留言 </span><span style="font-family: Georgia;">*/</span></em></p>
<p><strong>#music#         </strong><em>/* <span style="font-family: 宋体;">竟然全是</span><span style="font-family: Georgia;">J</span><span style="font-family: 宋体;">字辈的 </span><span style="font-family: Georgia;">*/</span></em><br />
&#8211;<a href="http://www.google.cn/music/artist?id=A316910c6ad640de6">Janis Jopin</a>         <em> /* <span style="font-family: 宋体;">忍不住继续推荐她！</span><span style="font-family: Georgia;">*/</span></em><br />
&#8211;<a href="http://www.google.cn/music/artist?id=A034b9b5fc8d7066e">Joan Baez</a><br />
&#8211;<a href="http://www.google.cn/music/artist?id=A82abe9d88a99f644">Journey</a></p>
<p><strong>#book#</strong><br />
&#8211;<a href="http://book.douban.com/subject/1144185/">米国宪政历程</a><br />
&#8211;CSAPP<br />
&#8211;UNP</p>
<p><strong>#movie#</strong><br />
&#8211;2011 <span style="font-family: 宋体;">年，看了 </span><span style="font-family: Georgia;">164 </span><span style="font-family: 宋体;">部电影，打出 </span><span style="font-family: Georgia;">7.5 </span><span style="font-family: 宋体;">的平均分。更多的是为了消磨时间</span></p>
<p><strong>#dev tools#</strong><br />
&#8211;Vim w/ gcc<br />
&#8211;Qt w/ Qt Creator</p>
<p><strong>#food#</strong><br />
&#8211;<span style="font-family: 宋体;">驴肉火烧        </span><em><span style="font-family: Georgia;">/*</span><span style="font-family: 宋体;">保定的，不是河间的</span><span style="font-family: Georgia;">*/</span></em><br />
&#8211;<span style="font-family: 宋体;">陕西的面食</span><br />
&#8211;<span style="font-family: 宋体;">香蕉</span></p>
<p><strong>#time killing#</strong><br />
&#8211;<span style="font-family: 宋体;">煎蛋无聊团</span><br />
&#8211;<span style="font-family: 宋体;">西电推优</span><br />
&#8211;<span style="font-family: 宋体;">文盲委员会</span><br />
&#8211;yaourt -Syua<br />
&#8211;<span style="font-family: 宋体;">看电影，无论电影还是小电影 </span><span style="font-family: Georgia;">:D</span><br />
&#8211;<a href="http://www.gamemastertips.com/">一个解谜游戏</a></p>
<p><strong>#fml#</strong><br />
&#8211;<span style="font-family: 宋体;">被发卡，不止一张。。。</span><br />
&#8211;<span style="font-family: 宋体;">考研做了分母</span><br />
&#8211;<span style="font-family: 宋体;">关于未来，各种纠结与迷茫</span><br />
&#8211;<span style="font-family: 宋体;">以上可以</span><span style="font-family: Georgia;">fml</span><span style="font-family: 宋体;">归结为：</span><span style="font-family: Georgia;">fuck </span><span style="font-family: 宋体;">本命年</span></p>
<p><strong>#disease#</strong><br />
&#8211;TMD<span style="font-family: 宋体;">，全称是</span><span style="font-family: 'Times New Roman';">“</span><span style="font-family: 宋体;">颞下颌关节功能紊乱综合症</span><span style="font-family: 'Times New Roman';">”          </span><em><span style="font-family: Georgia;">/*</span><span style="font-family: 宋体;">这条抄自</span><a href="http://notimportant.org/2012/01/01/2011/">病友的年终总结</a>*/</em><br />
&#8211;<span style="font-family: 宋体;">急性牙髓炎</span></p>
<p><strong>#misc#</strong><br />
&#8211;<span style="font-family: 宋体;">第一份实习，第一次辞职，第一次工资</span><br />
&#8211;<span style="font-family: 宋体;">大伯</span><br />
&#8211;Android sucks</p>
<p>以上</p>
<p>&nbsp;</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2012/01/my-2011/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>练习写驱动，眼高手低什么的</title>
		<link>http://ggarlic.org/blog/2011/12/my-first-driver/</link>
		<comments>http://ggarlic.org/blog/2011/12/my-first-driver/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 15:09:49 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=837</guid>
		<description><![CDATA[<pre>Write a driver which include following features:
    provide read/write functions. app can write/read a string(32 bytes length) to/from driver
    provide an integer variable storage in memory, and an ioctl function to set the value of
     this integer variable.
    provide a status display by using /proc filesystem. the proc status should contain
        the current string data
        the current value of integer variable
You also needs to write the application to test this driver

我的代码在这里：<a href="https://github.com/ggarlic/embedded-linux-homework/tree/master/drivers">https://github.com/ggarlic/embedded-linux-homework/tree/master/drivers</a>
热切期待各种板砖，我真的觉得写得很不专业，求教诲。

平时自己看驱动教材的时候很明白，轮到自己写的时候就各种不知如何下笔跟犯错。
索性参考<a href="http://ganquan.org/blog/2009/06/%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AAlinux%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F/">ganquan两年前写的第一个驱动</a>，他实现的一个自增器，我改来改去（其实动了大手术，只保留了骨架），还别说，真成了～
再回头一看，也不过如此么，一点都不难，至于憋那么长时间么，还是好记性不如烂笔头。动动手就知道哪不会了。

PS：开发板真是个好玩具，我为什么现在才知道</pre>]]></description>
			<content:encoded><![CDATA[<pre>Write a driver which include following features:
    provide read/write functions. app can write/read a string(32 bytes length) to/from driver
    provide an integer variable storage in memory, and an ioctl function to set the value of
     this integer variable.
    provide a status display by using /proc filesystem. the proc status should contain
        the current string data
        the current value of integer variable
You also needs to write the application to test this driver

我的代码在这里：<a href="https://github.com/ggarlic/embedded-linux-homework/tree/master/drivers">https://github.com/ggarlic/embedded-linux-homework/tree/master/drivers</a>
热切期待各种板砖，我真的觉得写得很不专业，求教诲。

平时自己看驱动教材的时候很明白，轮到自己写的时候就各种不知如何下笔跟犯错。
索性参考<a href="http://ganquan.org/blog/2009/06/%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AAlinux%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F/">ganquan两年前写的第一个驱动</a>，他实现的一个自增器，我改来改去（其实动了大手术，只保留了骨架），还别说，真成了～
再回头一看，也不过如此么，一点都不难，至于憋那么长时间么，还是好记性不如烂笔头。动动手就知道哪不会了。

PS：开发板真是个好玩具，我为什么现在才知道</pre>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2011/12/my-first-driver/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>我最近在干什么</title>
		<link>http://ggarlic.org/blog/2011/12/what-i-did-recently/</link>
		<comments>http://ggarlic.org/blog/2011/12/what-i-did-recently/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 11:18:48 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Blah]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=832</guid>
		<description><![CDATA[偷偷冒个泡更新一下

魔方的CFOP方法：<a href="http://www.rubik.com.cn/fridrich.htm">http://www.rubik.com.cn/fridrich.htm</a>

一个消磨了我很多时间的网页解密游戏：<a href="http://www.gamemastertips.com">http://www.gamemastertips.com</a>

迷上了英年早逝的Janis Joplin：<a href="http://www.google.cn/music/artist?id=A316910c6ad640de6">http://www.google.cn/music/artist?id=A316910c6ad640de6</a>

能当枕头能档子弹能防身的UNP：<a href="http://kohala.com/start/unpv12e.html">http://kohala.com/start/unpv12e.html</a>

一步步写嵌入式操作系统：<a href="http://book.douban.com/subject/5404177/">http://book.douban.com/subject/5404177/</a>

乔布斯传，放在kindle里磨了很久才看了14%，每次一开就瞌睡：<a href="http://book.douban.com/subject/6809266/">http://book.douban.com/subject/6809266/</a>

还有什么？看了点Qt，用着十分舒服。实习单位现在做Android，搞了一堆书，学习中。

PS:Koss PP回到了手上，其实我宁愿它永远别回来（这是另外一个故事了，miserable one，T_T）。]]></description>
			<content:encoded><![CDATA[<p>偷偷冒个泡更新一下</p>
<p>魔方的CFOP方法：<a href="http://www.rubik.com.cn/fridrich.htm">http://www.rubik.com.cn/fridrich.htm</a></p>
<p>一个消磨了我很多时间的网页解密游戏：<a href="http://www.gamemastertips.com">http://www.gamemastertips.com</a></p>
<p>迷上了英年早逝的Janis Joplin：<a href="http://www.google.cn/music/artist?id=A316910c6ad640de6">http://www.google.cn/music/artist?id=A316910c6ad640de6</a></p>
<p>能当枕头能档子弹能防身的UNP：<a href="http://kohala.com/start/unpv12e.html">http://kohala.com/start/unpv12e.html</a></p>
<p>一步步写嵌入式操作系统：<a href="http://book.douban.com/subject/5404177/">http://book.douban.com/subject/5404177/</a></p>
<p>乔布斯传，放在kindle里磨了很久才看了14%，每次一开就瞌睡：<a href="http://book.douban.com/subject/6809266/">http://book.douban.com/subject/6809266/</a></p>
<p>还有什么？看了点Qt，用着十分舒服。实习单位现在做Android，搞了一堆书，学习中。</p>
<p>PS:Koss PP回到了手上，其实我宁愿它永远别回来（这是另外一个故事了，miserable one，T_T）。</p>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2011/12/what-i-did-recently/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>报应</title>
		<link>http://ggarlic.org/blog/2011/10/what-goes-around-comes-around/</link>
		<comments>http://ggarlic.org/blog/2011/10/what-goes-around-comes-around/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 08:18:01 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Blah]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=827</guid>
		<description><![CDATA[今天在CB上看到了一则有趣的新闻，这新闻糟点太多我就不说什么了，想看犀利喷子的可以点过去：<a href="http://www.cnbeta.com/articles/157829.htm" target="_blank">央视主持人张泉灵：百度是骗子温床</a>

她的<a href="http://weibo.com/1671342103/xs4q7EbMp" target="_blank">微博原文</a>：
<blockquote>@张泉灵:百度了AO史密斯的维修电话，让来清理水垢。来人告知需要换5根镁棒，总共收费2460，还说3年必须换。气晕我，当年买的时候没说耗材这么贵啊！晚上我咆 哮着致电客服，居然发现来的维修是假的！正常保养100多点就行！强烈鄙视下百度，您骗子温床啊！还好昨天家里现金不够，今天坐等骗子上门收钱！</blockquote>
然后我就手贱地搜了一下当年张泉灵大姐主持的抹黑google的节目，当年的您真是义正严词啊：
<object width="480" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.tudou.com/v/8J2Q3V6hX74/v.swf" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><param name="wmode" value="opaque" /><embed width="480" height="400" type="application/x-shockwave-flash" src="http://www.tudou.com/v/8J2Q3V6hX74/v.swf" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" /></object>

<span style="font-size: large;"><strong>多行不义必自毙，自重~</strong></span>]]></description>
			<content:encoded><![CDATA[<p>今天在CB上看到了一则有趣的新闻，这新闻糟点太多我就不说什么了，想看犀利喷子的可以点过去：<a href="http://www.cnbeta.com/articles/157829.htm" target="_blank">央视主持人张泉灵：百度是骗子温床</a></p>
<p>她的<a href="http://weibo.com/1671342103/xs4q7EbMp" target="_blank">微博原文</a>：</p>
<blockquote><p>@张泉灵:百度了AO史密斯的维修电话，让来清理水垢。来人告知需要换5根镁棒，总共收费2460，还说3年必须换。气晕我，当年买的时候没说耗材这么贵啊！晚上我咆 哮着致电客服，居然发现来的维修是假的！正常保养100多点就行！强烈鄙视下百度，您骗子温床啊！还好昨天家里现金不够，今天坐等骗子上门收钱！</p></blockquote>
<p>然后我就手贱地搜了一下当年张泉灵大姐主持的抹黑google的节目，当年的您真是义正严词啊：<br />
<object width="480" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.tudou.com/v/8J2Q3V6hX74/v.swf" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><param name="wmode" value="opaque" /><embed width="480" height="400" type="application/x-shockwave-flash" src="http://www.tudou.com/v/8J2Q3V6hX74/v.swf" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" /></object></p>
<p><span style="font-size: large;"><strong>多行不义必自毙，自重~</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2011/10/what-goes-around-comes-around/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>archlinux使用ctags生成c/c++标准库tags</title>
		<link>http://ggarlic.org/blog/2011/09/generating-standard-library-tags-for-ctags-in-archlinux/</link>
		<comments>http://ggarlic.org/blog/2011/09/generating-standard-library-tags-for-ctags-in-archlinux/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 06:21:53 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[archlinux]]></category>
		<category><![CDATA[ctags]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=809</guid>
		<description><![CDATA[之前为了限制tags文件的体积，用脚本(修改后的脚本见本文最后)遍历的/usr/include/*.h和/usr/include下sys, bits,  asm, asm-generic,  netinet, arpa, c++4.6.1 以及 gtk-2.0， glib2.0几个目录。

但是当自动补全提示某些系统函数的原型时，比如write，无法正常找到，总是找到pth.h下的
<pre class="brush:c">#define write pth_write</pre>
即使在生成的tags文件中确实有一句也不行：
<pre class="brush:plain">write	/usr/include/unistd.h	/^extern ssize_t write (int __fd, __const void *__buf, size_t __n) __wur;$/;"	p	signature:(int __fd, __const void *__buf, size_t __n)</pre>
诸位有知道答案的求赐教，先拜谢了。

被这恶心玩意逼疯了快，索性用pacman直接搜索glibc包含的标准库头文件，去掉一切用不到的东西。
<pre class="brush:shell">pacman -Ql glibc &#124; awk '/include\//{print $2}'

#for cpp， 后面的脚本中没有使用它
pacman -Ql gcc &#124; awk '/\/usr\/include/{print $2}'</pre>
这里是修改之后的脚本，原脚本是在chinaunix找到的，那个页面的地址找不到了<del>，作者名字也没记住</del>。 <del>如果你看到这个页面， 希望您告知下名字。</del>

UPDATE: <strong>感谢原作者BSDC</strong>
<pre class="brush:shell">#!/bin/bash
#tags cscope生成文件路径
sysTagsDir=~ggarlic
tmpfilename="/tmp/asdfvisctagstmpfilename123.filesT%$"
tmp4glibc="/tmp/qwertyuiop987.filesT%$" 

rm -f $tmpfilename
if [ $# -ne 1 ]; then
    echo "please specify a dir: sys or ."
    exit 1
fi
if [ "$1" = "." ]; then
    #只对当前目录下递归
    rm -f cscope.*
    rm -f tags
    find . -type f \
        -a \( -name "*.h" -o -name "*.cpp" -o -name "*.c" -o -name "*.cc" -o -name "*.java" -o -name "*.pc" \) &#62; $tmpfilename
elif [ "$1" = "sys" ]; then
    scanPath=(
    #基本没有使用这几个目录
    #而是使用pacman生成的列表来处理c标准库头文件
    #不然会找不到某些函数定义，而且生成的文件很大
    #"sys"
    #"bits"
    #"asm"
    #"asm-generic"
    #"netinet"
    #"arpa"
    #"glib-1.2"
    #"gtk-1.2"
    "glib-2.0"
    "gtk-2.0"
    "c++/4.6.1"
    #"boost"
    #"glibmm-2.4"
    #"gdkmm-2.4"
    #"gtkmm-2.4"
    #"opencv"
    #"opencv2"
    #"openssl"
    #"xorg"
    #"AL"
    #"GL"
    #"SDL"
    #"libxml2"
    )

    # get file list to be operating
    for dir in ${scanPath[*]}; do
        scanDir=$scanDir" /usr/include/"$dir
    done

    cd $sysTagsDir
    rm -f cscope.*
    rm -f tags

    pacman -Ql glibc &#124; awk '/include\//{print $2}' &#62;&#62; $tmp4glibc
    #去掉生成列表里的文件夹行，只保留.h行
    grep h$ $tmp4glibc &#62;&#62; $tmpfilename

    find $scanDir -type f \
        -a \( -name "*.h" -o -name "*.cpp" -o -name "*.c" -o -name "*.cc" -o -name "*.java" -o -name "*.pc" \) &#62;&#62; $tmpfilename
fi

ctags -I "__THROW __nonnull __attribute_pure__ __attribute__ G_GNUC_PRINTF+ __wur" \
    --c++-kinds=+px --c-kinds=+px --fields=+iaS -a -f tags --extra=+fq --langmap=c:+.h --languages=c,c++ --c-kinds=+px --c++-kinds=+px -L $tmpfilename 

#-k means kernel mode: don't parse /usr/include
#-q: large project use this
#cscope -Rqkb -i $tmpfilename
cscope -Rb -i $tmpfilename
rm -f $tmpfilename
rm -f $tmp4glibc
echo "Done!"</pre>]]></description>
			<content:encoded><![CDATA[<p>之前为了限制tags文件的体积，用脚本(修改后的脚本见本文最后)遍历的/usr/include/*.h和/usr/include下sys, bits,  asm, asm-generic,  netinet, arpa, c++4.6.1 以及 gtk-2.0， glib2.0几个目录。</p>
<p>但是当自动补全提示某些系统函数的原型时，比如write，无法正常找到，总是找到pth.h下的</p>
<pre class="brush:c">#define write pth_write</pre>
<p>即使在生成的tags文件中确实有一句也不行：</p>
<pre class="brush:plain">write	/usr/include/unistd.h	/^extern ssize_t write (int __fd, __const void *__buf, size_t __n) __wur;$/;"	p	signature:(int __fd, __const void *__buf, size_t __n)</pre>
<p>诸位有知道答案的求赐教，先拜谢了。</p>
<p>被这恶心玩意逼疯了快，索性用pacman直接搜索glibc包含的标准库头文件，去掉一切用不到的东西。</p>
<pre class="brush:shell">pacman -Ql glibc | awk '/include\//{print $2}'

#for cpp， 后面的脚本中没有使用它
pacman -Ql gcc | awk '/\/usr\/include/{print $2}'</pre>
<p>这里是修改之后的脚本，原脚本是在chinaunix找到的，那个页面的地址找不到了<del>，作者名字也没记住</del>。 <del>如果你看到这个页面， 希望您告知下名字。</del></p>
<p>UPDATE: <strong>感谢原作者BSDC</strong></p>
<pre class="brush:shell">#!/bin/bash
#tags cscope生成文件路径
sysTagsDir=~ggarlic
tmpfilename="/tmp/asdfvisctagstmpfilename123.filesT%$"
tmp4glibc="/tmp/qwertyuiop987.filesT%$" 

rm -f $tmpfilename
if [ $# -ne 1 ]; then
    echo "please specify a dir: sys or ."
    exit 1
fi
if [ "$1" = "." ]; then
    #只对当前目录下递归
    rm -f cscope.*
    rm -f tags
    find . -type f \
        -a \( -name "*.h" -o -name "*.cpp" -o -name "*.c" -o -name "*.cc" -o -name "*.java" -o -name "*.pc" \) &gt; $tmpfilename
elif [ "$1" = "sys" ]; then
    scanPath=(
    #基本没有使用这几个目录
    #而是使用pacman生成的列表来处理c标准库头文件
    #不然会找不到某些函数定义，而且生成的文件很大
    #"sys"
    #"bits"
    #"asm"
    #"asm-generic"
    #"netinet"
    #"arpa"
    #"glib-1.2"
    #"gtk-1.2"
    "glib-2.0"
    "gtk-2.0"
    "c++/4.6.1"
    #"boost"
    #"glibmm-2.4"
    #"gdkmm-2.4"
    #"gtkmm-2.4"
    #"opencv"
    #"opencv2"
    #"openssl"
    #"xorg"
    #"AL"
    #"GL"
    #"SDL"
    #"libxml2"
    )

    # get file list to be operating
    for dir in ${scanPath[*]}; do
        scanDir=$scanDir" /usr/include/"$dir
    done

    cd $sysTagsDir
    rm -f cscope.*
    rm -f tags

    pacman -Ql glibc | awk '/include\//{print $2}' &gt;&gt; $tmp4glibc
    #去掉生成列表里的文件夹行，只保留.h行
    grep h$ $tmp4glibc &gt;&gt; $tmpfilename

    find $scanDir -type f \
        -a \( -name "*.h" -o -name "*.cpp" -o -name "*.c" -o -name "*.cc" -o -name "*.java" -o -name "*.pc" \) &gt;&gt; $tmpfilename
fi

ctags -I "__THROW __nonnull __attribute_pure__ __attribute__ G_GNUC_PRINTF+ __wur" \
    --c++-kinds=+px --c-kinds=+px --fields=+iaS -a -f tags --extra=+fq --langmap=c:+.h --languages=c,c++ --c-kinds=+px --c++-kinds=+px -L $tmpfilename 

#-k means kernel mode: don't parse /usr/include
#-q: large project use this
#cscope -Rqkb -i $tmpfilename
cscope -Rb -i $tmpfilename
rm -f $tmpfilename
rm -f $tmp4glibc
echo "Done!"</pre>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2011/09/generating-standard-library-tags-for-ctags-in-archlinux/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Learning Python 4e</title>
		<link>http://ggarlic.org/blog/2011/08/learning-python-4e/</link>
		<comments>http://ggarlic.org/blog/2011/08/learning-python-4e/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 12:31:02 +0000</pubDate>
		<dc:creator>ggarlic</dc:creator>
				<category><![CDATA[Blah]]></category>

		<guid isPermaLink="false">http://ggarlic.org/blog/?p=798</guid>
		<description><![CDATA[太冗长了，我看啊看啊看啊看啊，老半天一抬头，才增加了1%，目前只看到36%，没有比这再郁闷的事情了，极度没有成就感，林达的近距离看美国系列我差不多一天多一本呢。kindle显示26231页，实体书1214页。

作为一本教材来说，写得有点过于，怎么说呢，啰嗦了。经常一个问题啰嗦一大篇外加好几遍，起码我认为这本书不太适合有一定编程基础的人，倒是没一点编程基础的人挺合适的。

但是作者态度足够诚恳，很耐心，讲的很细，我也就忍了，哎~~

PS:林达的《近距离看美国》系列写得真不错，除了辛普森案那部分，我总觉得这种冤假错案应该作为司法耻辱来处理，而不是洋洋得意地当做宣扬程序正义的范本来写，何况审理过程本身也不见得多正义，比如煽动种族仇恨等。我总觉书里这部分透着一股恶心的自得。

PSS：刚刚找到了白名单的教室上网的方法。firefox再次立功了，refcontrol扩展完美突破白名单。额，其实不是完美，https没戏]]></description>
			<content:encoded><![CDATA[<p>太冗长了，我看啊看啊看啊看啊，老半天一抬头，才增加了1%，目前只看到36%，没有比这再郁闷的事情了，极度没有成就感，林达的近距离看美国系列我差不多一天多一本呢。kindle显示26231页，实体书1214页。</p>
<p>作为一本教材来说，写得有点过于，怎么说呢，啰嗦了。经常一个问题啰嗦一大篇外加好几遍，起码我认为这本书不太适合有一定编程基础的人，倒是没一点编程基础的人挺合适的。</p>
<p>但是作者态度足够诚恳，很耐心，讲的很细，我也就忍了，哎~~</p>
<p>PS:林达的《近距离看美国》系列写得真不错，除了辛普森案那部分，我总觉得这种冤假错案应该作为司法耻辱来处理，而不是洋洋得意地当做宣扬程序正义的范本来写，何况审理过程本身也不见得多正义，比如煽动种族仇恨等。我总觉书里这部分透着一股恶心的自得。</p>
<p>PSS：刚刚找到了白名单的教室上网的方法。firefox再次立功了，refcontrol扩展完美突破白名单。额，其实不是完美，https没戏</p>
]]></content:encoded>
			<wfw:commentRss>http://ggarlic.org/blog/2011/08/learning-python-4e/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

