<?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>男单 618 &#187; 软件</title>
	<atom:link href="http://www.ai7.org/wp/html/category/%e8%bd%af%e4%bb%b6/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ai7.org/wp</link>
	<description>生活象筒装的卫生纸，开始的时候怎么扯都不觉得在转，后来转的越来越快。</description>
	<lastBuildDate>Tue, 17 Aug 2010 04:19:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>调用u.nu的api缩短网址</title>
		<link>http://www.ai7.org/wp/html/778.html</link>
		<comments>http://www.ai7.org/wp/html/778.html#comments</comments>
		<pubDate>Sun, 04 Jul 2010 12:13:20 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[u.nu]]></category>
		<category><![CDATA[缩短网址]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=778</guid>
		<description><![CDATA[Python语言: 调用u.nu的api缩短网址
 #!/usr/bin/python #coding: utf-8
 import sys import urllib2
 api_address = &#39;http://u.nu/unu-api-simple?url=&#39;
 for org_url in sys.argv[1:]: &#160;&#160;&#160; request = urllib2.urlopen(api_address + urllib2.quote(org_url)) &#160;&#160;&#160; short_url = request.read() &#160;&#160;&#160; if short_url.startswith(&#39;http&#39;): &#160;&#160;&#160;&#160;&#160;&#160;&#160; print org_url, &#39;&#8211;&#62; &#39;, short_url &#160;&#160;&#160; else: &#160;&#160;&#160;&#160;&#160;&#160;&#160; print &#39;Error&#39;
]]></description>
			<content:encoded><![CDATA[<div style="background:#fdfdfd;color:black;"><u>Python语言</u>: <a href="http://fayaa.com/code/view/11910/">调用u.nu的api缩短网址</a></div>
<div class="source" style="font-family: None; color: rgb(0, 0, 0); background-color: rgb(249, 247, 237); "> <span style="color: rgb(170, 170, 170); font-style: italic; ">#!/usr/bin/python</span><br /> <span style="color: rgb(170, 170, 170); font-style: italic; ">#coding: utf-8</span></p>
<p> <span style="color: rgb(0, 0, 0); ">import</span> <span style="color: rgb(0, 170, 170); text-decoration: underline; ">sys</span><br /> <span style="color: rgb(0, 0, 0); ">import</span> <span style="color: rgb(0, 170, 170); text-decoration: underline; ">urllib2</span></p>
<p> <span style="color: rgb(0, 0, 0); ">api_address</span> <span style="color: rgb(0, 0, 0); ">=</span> <span style="color: rgb(170, 85, 0); ">&#39;http://u.nu/unu-api-simple?url=&#39;</span></p>
<p> <span style="color: rgb(0, 0, 170); ">for</span> <span style="color: rgb(0, 0, 0); ">org_url</span> <span style="color: rgb(0, 0, 170); ">in</span> <span style="color: rgb(0, 0, 0); ">sys</span><span style="color: rgb(0, 0, 0); ">.</span><span style="color: rgb(0, 0, 0); ">argv</span><span style="color: rgb(0, 0, 0); ">[</span><span style="color: rgb(0, 153, 153); ">1</span><span style="color: rgb(0, 0, 0); ">:]:</span><br /> &nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 0); ">request</span> <span style="color: rgb(0, 0, 0); ">=</span> <span style="color: rgb(0, 0, 0); ">urllib2</span><span style="color: rgb(0, 0, 0); ">.</span><span style="color: rgb(0, 0, 0); ">urlopen</span>(<span style="color: rgb(0, 0, 0); ">api_address</span> <span style="color: rgb(0, 0, 0); ">+</span> <span style="color: rgb(0, 0, 0); ">urllib2</span><span style="color: rgb(0, 0, 0); ">.</span><span style="color: rgb(0, 0, 0); ">quote</span>(<span style="color: rgb(0, 0, 0); ">org_url</span>))<br /> &nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 0); ">short_url</span> <span style="color: rgb(0, 0, 0); ">=</span> <span style="color: rgb(0, 0, 0); ">request</span><span style="color: rgb(0, 0, 0); ">.</span><span style="color: rgb(0, 0, 0); ">read</span>()<br /> &nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 170); ">if</span> <span style="color: rgb(0, 0, 0); ">short_url</span><span style="color: rgb(0, 0, 0); ">.</span><span style="color: rgb(0, 0, 0); ">startswith</span>(<span style="color: rgb(170, 85, 0); ">&#39;http&#39;</span><span style="color: rgb(0, 0, 0); ">):</span><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 170); ">print</span> <span style="color: rgb(0, 0, 0); ">org_url</span><span style="color: rgb(0, 0, 0); ">,</span> <span style="color: rgb(170, 85, 0); ">&#39;&#8211;&gt; &#39;</span><span style="color: rgb(0, 0, 0); ">,</span> <span style="color: rgb(0, 0, 0); ">short_url</span><br /> &nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 170); ">else</span><span style="color: rgb(0, 0, 0); ">:</span><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 170); ">print</span> <span style="color: rgb(170, 85, 0); ">&#39;Error&#39;</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/778.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用lxml解析html文件</title>
		<link>http://www.ai7.org/wp/html/773.html</link>
		<comments>http://www.ai7.org/wp/html/773.html#comments</comments>
		<pubDate>Sat, 26 Jun 2010 16:00:15 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/773.html</guid>
		<description><![CDATA[之前一直搞错了，实际上只需要使用lxml.html模块，读入html文件后，直接调用xpath定位所需要的内容就行了，不再需要etree什么的了。具体看下面的例子： 
Python语言: 使用lxml解析html文件
 
01 #coding: utf-802 03 from lxml import *04 import lxml.html as H05 import urllib206 07 def getart(url):08 &#160;&#160;&#160; f = urllib2.urlopen(url)09 &#160;&#160;&#160; content = f.read()10 &#160;&#160;&#160; 11 &#160;&#160;&#160; art = []12 &#160;&#160;&#160; doc = H.document_fromstring(content)13 &#160;&#160;&#160; p = doc.xpath(&#8216;/html/body/div[2]/div[2]/div/div/ul/li/div[2]/p&#8217;)14 &#160;&#160;&#160; for i in p:15 &#160;&#160;&#160;&#160;&#160;&#160;&#160; tmp = i.text_content()16 &#160;&#160;&#160;&#160;&#160;&#160;&#160; tmp = tmp.encode(&#8216;utf-8&#8242;)17 [...]]]></description>
			<content:encoded><![CDATA[<p>之前一直搞错了，实际上只需要使用lxml.html模块，读入html文件后，直接调用xpath定位所需要的内容就行了，不再需要etree什么的了。具体看下面的例子：<br /> 
<div style="background: none repeat scroll 0% 0% rgb(253, 253, 253); color: black;"><u>Python语言</u>: <a href="http://fayaa.com/code/view/11796/">使用lxml解析html文件</a></div>
<p> 
<div style="font-family: &quot;None&quot;,&quot;Courier New&quot;,&quot;monospace&quot;,&quot;Verdana&quot;;" class="source"><span class="lineno">01</span> <span class="_c">#coding: utf-8</span><span class="_"></span><br /><span class="lineno">02</span> <br /><span class="lineno">03</span> <span class="_kn">from</span><span class="_"> </span><span class="_nn">lxml</span><span class="_"> </span><span class="_kn">import</span><span class="_"> </span><span class="_o">*</span><span class="_"></span><br /><span class="lineno">04</span> <span class="_kn">import</span><span class="_"> </span><span class="_nn">lxml.html</span><span class="_"> </span><span class="_kn">as</span><span class="_"> </span><span class="_nn">H</span><span class="_"></span><br /><span class="lineno special">05</span> <span class="_kn">import</span><span class="_"> </span><span class="_nn">urllib2</span><span class="_"></span><br /><span class="lineno">06</span> <br /><span class="lineno">07</span> <span class="_k">def</span><span class="_"> </span><span class="_nf">getart</span><span class="_p">(</span><span class="_n">url</span><span class="_p">):</span><span class="_"></span><br /><span class="lineno">08</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">f</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">urllib2</span><span class="_o">.</span><span class="_n">urlopen</span><span class="_p">(</span><span class="_n">url</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">09</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">content</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">f</span><span class="_o">.</span><span class="_n">read</span><span class="_p">()</span><span class="_"></span><br /><span class="lineno special">10</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><br /><span class="lineno">11</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">art</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_p">[]</span><span class="_"></span><br /><span class="lineno">12</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">doc</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">H</span><span class="_o">.</span><span class="_n">document_fromstring</span><span class="_p">(</span><span class="_n">content</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">13</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">p</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">doc</span><span class="_o">.</span><span class="_n">xpath</span><span class="_p">(</span><span class="_s">&#8216;/html/body/div[2]/div[2]/div/div/ul/li/div[2]/p&#8217;</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">14</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_k">for</span><span class="_"> </span><span class="_n">i</span><span class="_"> </span><span class="_ow">in</span><span class="_"> </span><span class="_n">p</span><span class="_p">:</span><span class="_"></span><br /><span class="lineno special">15</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_n">tmp</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">i</span><span class="_o">.</span><span class="_n">text_content</span><span class="_p">()</span><span class="_"></span><br /><span class="lineno">16</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_n">tmp</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">tmp</span><span class="_o">.</span><span class="_n">encode</span><span class="_p">(</span><span class="_s">&#8216;utf-8&#8242;</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">17</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_n">tmp</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">tmp</span><span class="_o">.</span><span class="_n">replace</span><span class="_p">(</span><span class="_s">&#8216;</span><span class="_se">\r</span><span class="_s">&#8216;</span><span class="_p">,</span><span class="_"> </span><span class="_s">&#8216;</span><span class="_se">\n</span><span class="_s">&#8216;</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">18</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_n">art</span><span class="_o">.</span><span class="_n">append</span><span class="_p">(</span><span class="_n">tmp</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">19</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_k">return</span><span class="_"> </span><span class="_n">art</span><span class="_"></span><br /><span class="lineno special">20</span> <br /><span class="lineno">21</span> <span class="_k">if</span><span class="_"> </span><span class="_n">__name__</span><span class="_"> </span><span class="_o">==</span><span class="_"> </span><span class="_s">&#8216;__main__&#8217;</span><span class="_p">:</span><span class="_"></span><br /><span class="lineno">22</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">urls</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_p">[</span><span class="_s">'http://www.douban.com/group/topic/12018319/'</span><span class="_p">,</span><span class="_"></span><br /><span class="lineno">23</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_s">'http://www.douban.com/group/topic/12018319/?start=100'</span><span class="_p">]</span><span class="_"></span><br /><span class="lineno">24</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">outfile</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_nb">open</span><span class="_p">(</span><span class="_s">&#8216;zheda.txt&#8217;</span><span class="_p">,</span><span class="_"> </span><span class="_s">&#8216;w&#8217;</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno special">25</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_k">for</span><span class="_"> </span><span class="_n">url</span><span class="_"> </span><span class="_ow">in</span><span class="_"> </span><span class="_n">urls</span><span class="_p">:</span><span class="_"></span><br /><span class="lineno">26</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_n">art</span><span class="_"> </span><span class="_o">=</span><span class="_"> </span><span class="_n">getart</span><span class="_p">(</span><span class="_n">url</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">27</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_k">for</span><span class="_"> </span><span class="_n">item</span><span class="_"> </span><span class="_ow">in</span><span class="_"> </span><span class="_n">art</span><span class="_p">:</span><span class="_"></span><br /><span class="lineno">28</span> <span class="_">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="_n">outfile</span><span class="_o">.</span><span class="_n">write</span><span class="_p">(</span><span class="_n">item</span><span class="_o">+</span><span class="_s">&#8216;</span><span class="_se">\n</span><span class="_s">&#8216;</span><span class="_p">)</span><span class="_"></span><br /><span class="lineno">29</span> <span class="_">&nbsp;&nbsp;&nbsp; </span><span class="_n">outfile</span><span class="_o">.</span><span class="_n">close</span><span class="_p">()</span><span class="_"></span></div>
<p>附：浙大夜惊魂6月26日更新至101章<br />hotfile: <a href="http://hotfile.com/dl/50704792/39ca85e/626101.txt.html">http://hotfile.com/dl/50704792/39ca85e/626101.txt.html</a><br />xun6: <a href="http://www.xun6.com/file/8452e0f25/%E6%B5%99%E5%A4%A7%E5%A4%9C%E6%83%8A%E9%AD%82%EF%BC%886%E6%9C%8826%E6%97%A5%E6%9B%B4%E6%96%B0%E8%87%B3101%E7%AB%A0%EF%BC%89.txt.html"></a><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 文泉驿微米黑; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: Tahoma,Arial,Helvetica,sans-serif; font-size: 17px; line-height: 25px; text-align: left;"><span class="Apple-converted-space"> </span><a href="http://is.gd/d4Ym0" target="_blank" style="word-wrap: break-word; color: rgb(44, 98, 158); text-decoration: none;">http://is.gd/d4Ym0</a></span></span></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=d7e0929a-7936-84de-a0c2-1968317d78c0" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/773.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用Firebug+XPather进行手工采集</title>
		<link>http://www.ai7.org/wp/html/771.html</link>
		<comments>http://www.ai7.org/wp/html/771.html#comments</comments>
		<pubDate>Sat, 26 Jun 2010 13:28:02 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/771.html</guid>
		<description><![CDATA[Firebug和XPather都是Firefox的插件。用Firebug查找页面内容的xpath路径，复制后，到XPather中执行，提取页面中其他内容，然后，在“Web Clipping”页中复制所有内容即可。
上面的方法对于提取连载的小说特别管用。

]]></description>
			<content:encoded><![CDATA[<p>Firebug和XPather都是Firefox的插件。<br />用Firebug查找页面内容的xpath路径，复制后，到XPather中执行，提取页面中其他内容，然后，在“Web Clipping”页中复制所有内容即可。</p>
<p>上面的方法对于提取连载的小说特别管用。</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=42ea5706-f0c7-88f4-b209-e9a4f65d5e3a" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/771.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pdf文件自动剪裁（自动切白边）</title>
		<link>http://www.ai7.org/wp/html/754.html</link>
		<comments>http://www.ai7.org/wp/html/754.html#comments</comments>
		<pubDate>Mon, 24 May 2010 16:43:52 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[切白边]]></category>
		<category><![CDATA[剪裁]]></category>
		<category><![CDATA[自动]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/754.html</guid>
		<description><![CDATA[可能用到的环境、工具：Ubuntu 10.04+TeXLive 2008+pdfcrop+CUPS打印驱动，用Windows的兄弟就不用看了，这些工具理论上在Windows下也有，但是还要另外装不少东西。
下面假设原文件（也就是打算切白边的文件）叫abc.pdf

pdfcrop abc.pdf，默认会生成abc-crop.pdf文件，这个已经是切掉白边的了，要是你不嫌它大（或者它确实不大）的话，就完成了。
用阅读器（如evince）打开abc-crop.pdf，并通过CUPS打印到文件，打印时注意关闭所有和页面缩放有关的命令，并选中“使用文档的页面尺寸作为页面尺寸”。打印，完成。

说明：

pdfcrop其实是TeXLive自带的。本质上是一个perl脚本。
pdfcrop要调用gs(ghostscript)确定每页的白边大小。对于空白页，会报错，忽略即可。
pdfcrop还可以在切的时候留若干像素，具体请&#8211;help。
pdfcrop要调用pdftex以生成切白边后的文件。
pdfcrop本质上（猜想，没有阅读源码）是先将abc.pdf展开成单页的pdf，调用gs切白边，再用tex文件直接调用pdf页面，最后用pdftex生成输出。
pdfcrop直接生成的文件一般是原文件的20倍以上（本人测试的几个文件均是如此），虚拟打印到新的文件后，基本可以恢复到与原文件同样数量级的尺寸。
测试都是使用的内嵌字体的中英文PDF。扫描版的没试，估计够呛。


5月27日更新：
使用这个脚本PDF压缩脚本-Compress PDF，代替上面的第2步。简单，效果不错。
]]></description>
			<content:encoded><![CDATA[<p>可能用到的环境、工具：Ubuntu 10.04+TeXLive 2008+pdfcrop+CUPS打印驱动，用Windows的兄弟就不用看了，这些工具理论上在Windows下也有，但是还要另外装不少东西。</p>
<p>下面假设原文件（也就是打算切白边的文件）叫abc.pdf</p>
<ol>
<li>pdfcrop abc.pdf，默认会生成abc-crop.pdf文件，这个已经是切掉白边的了，要是你不嫌它大（或者它确实不大）的话，就完成了。</li>
<li>用阅读器（如evince）打开abc-crop.pdf，并通过CUPS打印到文件，打印时注意关闭所有和页面缩放有关的命令，并选中“使用文档的页面尺寸作为页面尺寸”。打印，完成。</li>
</ol>
<p>说明：</p>
<ol>
<li>pdfcrop其实是TeXLive自带的。本质上是一个perl脚本。</li>
<li>pdfcrop要调用gs(ghostscript)确定每页的白边大小。对于空白页，会报错，忽略即可。</li>
<li>pdfcrop还可以在切的时候留若干像素，具体请&#8211;help。</li>
<li>pdfcrop要调用pdftex以生成切白边后的文件。</li>
<li>pdfcrop本质上（猜想，没有阅读源码）是先将abc.pdf展开成单页的pdf，调用gs切白边，再用tex文件直接调用pdf页面，最后用pdftex生成输出。</li>
<li>pdfcrop直接生成的文件一般是原文件的20倍以上（本人测试的几个文件均是如此），虚拟打印到新的文件后，基本可以恢复到与原文件同样数量级的尺寸。</li>
<li>测试都是使用的内嵌字体的中英文PDF。扫描版的没试，估计够呛。</li>
</ol>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=e4f182aa-766f-85f9-a535-5542816210e4" alt="" /></div>
<p>5月27日更新：<br />
使用这个脚本<a href="http://www.ubuntuhome.com/compress-pdf.html">PDF压缩脚本-Compress PDF</a>，代替上面的第2步。简单，效果不错。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/754.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜索进程——新的搜索方式</title>
		<link>http://www.ai7.org/wp/html/740.html</link>
		<comments>http://www.ai7.org/wp/html/740.html#comments</comments>
		<pubDate>Tue, 27 Apr 2010 02:14:09 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=740</guid>
		<description><![CDATA[在使用搜索引擎查找资料时，很难一下子找到想要的东西，通常会尝试不同的关键词及其组合。
比如，查“关键词1”，得到若干页的结果，翻看了前5页，有一些有用的资料，打开另外的页面查看，多数是没有用的。输入“关键词2”继续搜索，又得到若干页的结果，但是某些内容已经在刚才搜索关键词1时得到的前5页结果中出现过，而这些内容我都已经浏览过了，确定有或者没有我要的资料。搜索引擎为什么不把这些资料隐藏掉？
我希望Google能够提供一个我暂时称为“搜索进程”的功能。在同一个搜索进程中，无论搜索哪个关键词，都不显示之前用户之前已经查看过的条目。如果同一用户的两次搜索的间隔小于某个事先设定的值（如1小时），则认为是同一个搜索进程。用户也可以手工开启一个新的搜索进程。如果搜索引擎更聪明一点，能够根据两个关键词间的相关度，提醒用户是否开启新的进程的话，那就更好了。
]]></description>
			<content:encoded><![CDATA[<p>在使用搜索引擎查找资料时，很难一下子找到想要的东西，通常会尝试不同的关键词及其组合。</p>
<p>比如，查“关键词1”，得到若干页的结果，翻看了前5页，有一些有用的资料，打开另外的页面查看，多数是没有用的。输入“关键词2”继续搜索，又得到若干页的结果，但是某些内容已经在刚才搜索关键词1时得到的前5页结果中出现过，而这些内容我都已经浏览过了，确定有或者没有我要的资料。搜索引擎为什么不把这些资料隐藏掉？</p>
<p>我希望Google能够提供一个我暂时称为“搜索进程”的功能。在同一个搜索进程中，无论搜索哪个关键词，都不显示之前用户之前已经查看过的条目。如果同一用户的两次搜索的间隔小于某个事先设定的值（如1小时），则认为是同一个搜索进程。用户也可以手工开启一个新的搜索进程。如果搜索引擎更聪明一点，能够根据两个关键词间的相关度，提醒用户是否开启新的进程的话，那就更好了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/740.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MySql数据库导出时指定编码</title>
		<link>http://www.ai7.org/wp/html/735.html</link>
		<comments>http://www.ai7.org/wp/html/735.html#comments</comments>
		<pubDate>Wed, 17 Mar 2010 14:55:14 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqldump]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/735.html</guid>
		<description><![CDATA[导出低版本MySql数据库时，通常会遇到乱码的问题。应在导出时加上指定编码的参数，比如：mysqldump &#8211;default-character-set=latin1 -u 用户名 -p 数据库名 &#62; old.sql再用iconv等转码工具转换编码类型。
]]></description>
			<content:encoded><![CDATA[<p>导出低版本MySql数据库时，通常会遇到乱码的问题。应在导出时加上指定编码的参数，比如：<br />mysqldump &#8211;default-character-set=latin1 -u 用户名 -p 数据库名 &gt; old.sql<br />再用iconv等转码工具转换编码类型。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/735.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rename-批量重命名命令</title>
		<link>http://www.ai7.org/wp/html/732.html</link>
		<comments>http://www.ai7.org/wp/html/732.html#comments</comments>
		<pubDate>Tue, 09 Mar 2010 12:41:32 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[LaTeX相关]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[rename]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/732.html</guid>
		<description><![CDATA[原来还很麻烦的用for循环（Ubuntu下批量重命名），其实只用rename就够了。比如，要把所有的文件名改为小写：rename &#8216;tr/A-Z/a-z/&#8217; *把所有文件的后缀由rm改为rmvbrename &#8217;s/.rm$/.rmvb/&#8217; *替换时，只匹配第一次找到的子串，如果要替换所有匹配到的子串，需要添加g，比如有以下文件：1.txt，11.txt，111.txt命令rename &#8217;s/1/a/&#8217; *.txt得到的结果是a.txt, a1.txt, a11.txt而，命令rename &#8217;s/1/a/g&#8217; *.txt得到的结果是a.txt, aa.txt, aaa.txt
]]></description>
			<content:encoded><![CDATA[<p>原来还很麻烦的用for循环（<a href="http://www.ai7.org/wp/html/577.html">Ubuntu下批量重命名</a>），其实只用rename就够了。比如，要把所有的文件名改为小写：<br />rename &#8216;tr/A-Z/a-z/&#8217; *<br />把所有文件的后缀由rm改为rmvb<br />rename &#8217;s/.rm$/.rmvb/&#8217; *<br />替换时，只匹配第一次找到的子串，如果要替换所有匹配到的子串，需要添加g，比如有以下文件：<br />1.txt，11.txt，111.txt<br />命令<br />rename &#8217;s/1/a/&#8217; *.txt<br />得到的结果是<br />a.txt, a1.txt, a11.txt<br />而，命令<br />rename &#8217;s/1/a/g&#8217; *.txt<br />得到的结果是<br />a.txt, aa.txt, aaa.txt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/732.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Reader可以订阅任何网页——好消息？坏消息？</title>
		<link>http://www.ai7.org/wp/html/705.html</link>
		<comments>http://www.ai7.org/wp/html/705.html#comments</comments>
		<pubDate>Tue, 26 Jan 2010 14:03:39 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[Google Reader]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/705.html</guid>
		<description><![CDATA[之前，对于没有提供RSS输出的网站，我一直使用Page2RSS订阅网页的更新，现在Google Reader直接提供了这一功能。应该说是好消息，但是谁知道呢。

]]></description>
			<content:encoded><![CDATA[<p>之前，对于没有提供RSS输出的网站，我一直使用Page2RSS订阅网页的更新，现在Google Reader直接提供了这一功能。应该说是好消息，但是谁知道呢。</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=d006f6a8-5739-8b82-a3ca-c84f30369ced" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/705.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql乱码问题（备忘）</title>
		<link>http://www.ai7.org/wp/html/692.html</link>
		<comments>http://www.ai7.org/wp/html/692.html#comments</comments>
		<pubDate>Fri, 15 Jan 2010 17:52:41 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/692.html</guid>
		<description><![CDATA[升级网站的时候，php版本高了，mysql的版本也高了，再加上原来没经验，用的都是GBK，没用UTF8，数据库导过去经常乱码。
两次成功的经验如下。
先保证phpmyadmin中看到的字符是正确的，再在mysql_connect语句之后加一句mysql_query(&#8220;SET NAMES &#8216;GBK&#8217;&#8221;)，差不多就可以了。

]]></description>
			<content:encoded><![CDATA[<p>升级网站的时候，php版本高了，mysql的版本也高了，再加上原来没经验，用的都是GBK，没用UTF8，数据库导过去经常乱码。<br />
两次成功的经验如下。<br />
先保证phpmyadmin中看到的字符是正确的，再在mysql_connect语句之后加一句mysql_query(&#8220;SET NAMES &#8216;GBK&#8217;&#8221;)，差不多就可以了。</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=6c1d8054-ecef-80d0-a94b-9fc59df71b43" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/692.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sage 4.3今日发布</title>
		<link>http://www.ai7.org/wp/html/668.html</link>
		<comments>http://www.ai7.org/wp/html/668.html#comments</comments>
		<pubDate>Sat, 26 Dec 2009 12:56:56 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[Palm]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[sage]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/668.html</guid>
		<description><![CDATA[Sage 4.3今日发布，二进制版本已经可以下载。具体可以到主页查看：http://www.sagemath.org。还不清楚这次有哪些更新。

]]></description>
			<content:encoded><![CDATA[<p>Sage 4.3今日发布，二进制版本已经可以下载。具体可以到主页查看：<a target="_blank" href="http://www.sagemath.org">http://www.sagemath.org</a>。还不清楚这次有哪些更新。</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=67ec8863-66a2-8a73-8732-5e1fda474f4a" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/668.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>看图不说话20091224</title>
		<link>http://www.ai7.org/wp/html/664.html</link>
		<comments>http://www.ai7.org/wp/html/664.html#comments</comments>
		<pubDate>Thu, 24 Dec 2009 13:39:50 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[maTHμ]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=664</guid>
		<description><![CDATA[
==============================================

]]></description>
			<content:encoded><![CDATA[<p><a href="http://img2.pict.com/a6/5e/e3/2288494/0/1.png"><img class="alignnone" title="1" src="http://img2.pict.com/a6/5e/e3/2288494/0/800/1.png" alt="" width="480" height="834" /></a></p>
<p style="text-align: center;">==============================================</p>
<p><a href="http://img2.pict.com/d7/34/81/2288497/0/2.png"><img class="alignleft" title="2" src="http://img2.pict.com/d7/34/81/2288497/0/800/2.png" alt="" width="480" height="1085" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/664.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>翻译Sage文档的准备工作</title>
		<link>http://www.ai7.org/wp/html/658.html</link>
		<comments>http://www.ai7.org/wp/html/658.html#comments</comments>
		<pubDate>Wed, 23 Dec 2009 09:10:59 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[sage]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=658</guid>
		<description><![CDATA[打算翻译一下Sage的文档。Sage的文档完全是用reStructuredTEXT写成的，由Sphinx管理，对应的翻译就行了，但是为了与原文档保持相同的风格，还是折腾了好久。这里记录一下。
环境是：Ubuntu+Sage 4.2.1+CTeXLive 2008。以翻译Sage Tutorial为例，需要做以下准备工作。（下面用$SAGE代替sage的主目录）


转到$SAGE/devel/sage-main/doc/目录；
在common目录中的builder.py文件中，找到
LANGUAGES = ['en', 'fr']
修改为：
LANGUAGES = ['en', 'fr', 'zh']

新建zh子目录，并将en子目录下的tutorial目录复制到刚才新建的zh目录中 （如果是翻译其他文档，复制相应的目录）；
修改zh目录下的conf.py文件：


在
import sys, os
这一行后 添加 两行：
reload(sys)
sys.setdefaultencoding('utf8')

在conf.py文件最后添加：
latex_preamble='\usepackage{ctex}'
latex_premble+='\usepackage{ctex}\n\punctstyle{CCT}'




修改$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/texinputs/Makefile文件，将其中的“pdflatex”全部替换为“xelatex”（共有5处）；
将$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/writers/latex.py中的“\\usepackage[utf8]{inputenc}”中的“utf8”修改为“latin1”，即“\\usepackage[latin1]{inputenc}”。

如果上述操作正常的话，就可以开始翻译了。将zh/tutorial下的所有.rst 文件翻译为中文后，即可进行编译。编译的方法如下:

转到$SAGE目录；
查看所有文档列表：
./sage -docbuild -D
此时应该可以看到“zh/tutorial”选项；
编译：
./sage -docbuild zh/tutorial html

./sage -docbuild zh/tutorial pdf
编译结果会在编译信息最后一行提示。


2010年6月21日更新：
以上是基于Sage 4.3所做的修改，今天下载了4.4.3，情况有些变化：

以上的第4、6步完全不需要了，因为相关的配置转移到其他文件中去了
修改$SAGE/devel/sage-main/doc/common/conf.py文件中两个地方：


latex_elements['inputenc'] = &#8216;\\usepackage[utf8x]{inputenc}&#8217;
改为
latex_elements['inputenc'] = &#8216;\\usepackage[latin1]{inputenc}&#8217;

latex_elements['preamble']那一行下面再添加一行：
latex_elements['preamble'] += &#8216;\usepackage{ctex}\n\punctstyle{CCT}\n&#8217;




]]></description>
			<content:encoded><![CDATA[<p>打算翻译一下<a href="http://www.sagemath.org" target="_blank">Sage</a>的文档。Sage的文档完全是用reStructuredTEXT写成的，由Sphinx管理，对应的翻译就行了，但是为了与原文档保持相同的风格，还是折腾了好久。这里记录一下。</p>
<p>环境是：Ubuntu+Sage 4.2.1+CTeXLive 2008。以翻译Sage Tutorial为例，需要做以下准备工作。（下面用$SAGE代替sage的主目录）</p>
<div>
<ol>
<li>转到$SAGE/devel/sage-main/doc/目录；</li>
<li>在common目录中的builder.py文件中，找到
<pre>LANGUAGES = ['en', 'fr']</pre>
<p>修改为：</p>
<pre>LANGUAGES = ['en', 'fr', 'zh']</pre>
</li>
<li>新建zh子目录，并将en子目录下的tutorial目录复制到刚才新建的zh目录中 （如果是翻译其他文档，复制相应的目录）；</li>
<li>修改zh目录下的conf.py文件：<br />
<blockquote>
<ul>
<li>在
<pre>import sys, os</pre>
<p>这一行后 <strong>添加</strong> 两行：</p>
<pre>reload(sys)
sys.setdefaultencoding('utf8')</pre>
</li>
<li>在conf.py文件最后添加：
<pre><span style="text-decoration: line-through;">latex_preamble='\usepackage{ctex}'</span></pre>
<pre>latex_premble+='\usepackage{ctex}\n\punctstyle{CCT}'</pre>
</li>
</ul>
</blockquote>
</li>
<li>修改$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/texinputs/Makefile文件，将其中的“pdflatex”全部替换为“xelatex”（共有5处）；</li>
<li>将$SAGE/local/lib/python2.6/site-packages/Sphinx-0.6.3-py2.6.egg/sphinx/writers/latex.py中的“\\usepackage[utf8]{inputenc}”中的“utf8”修改为“latin1”，即“\\usepackage[latin1]{inputenc}”。</li>
</ol>
<p>如果上述操作正常的话，就可以开始翻译了。将zh/tutorial下的所有.rst 文件翻译为中文后，即可进行编译。编译的方法如下:</p>
<ol>
<li>转到$SAGE目录；</li>
<li>查看所有文档列表：
<pre>./sage -docbuild -D</pre>
<p>此时应该可以看到“zh/tutorial”选项；</li>
<li>编译：
<pre>./sage -docbuild zh/tutorial html

./sage -docbuild zh/tutorial pdf</pre>
<p>编译结果会在编译信息最后一行提示。</li>
</ol>
</div>
<p><font color='red'>2010年6月21日更新：</font><br />
以上是基于Sage 4.3所做的修改，今天下载了4.4.3，情况有些变化：</p>
<ul>
<li>以上的第4、6步完全不需要了，因为相关的配置转移到其他文件中去了</li>
<li>修改$SAGE/devel/sage-main/doc/common/conf.py文件中两个地方：
<ol>
<li>
latex_elements['inputenc'] = &#8216;\\usepackage[utf8x]{inputenc}&#8217;<br />
改为<br />
latex_elements['inputenc'] = &#8216;\\usepackage[latin1]{inputenc}&#8217;
</li>
<li>latex_elements['preamble']那一行下面再<font color='red'>添加</font>一行：<br />
latex_elements['preamble'] += &#8216;\usepackage{ctex}\n\punctstyle{CCT}\n&#8217;
</li>
</ol>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/658.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用grep在子目录中指定的文件类型中查找</title>
		<link>http://www.ai7.org/wp/html/653.html</link>
		<comments>http://www.ai7.org/wp/html/653.html#comments</comments>
		<pubDate>Mon, 21 Dec 2009 16:08:01 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[grep]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/653.html</guid>
		<description><![CDATA[grep -r abcd  *.py
这样的命令得不到你期待的结果，而
grep -r abcd *
这样得到的结果又太多，仍然不是你想要的。
正解是：
find . -name *.py&#124;xargs grep asdf
注：这是一个困惑我很久的问题，今天在 这里看到 一种解决方案 。 有人在留言中给出另外一种方法
find . -iname ‘*.cc’ -exec grep -nH ‘{}’ \;
但是看上去比较复杂，我不喜欢。
]]></description>
			<content:encoded><![CDATA[<blockquote><p>grep -r abcd  *.py</p></blockquote>
<p>这样的命令得不到你期待的结果，而</p>
<blockquote><p>grep -r abcd *</p></blockquote>
<p>这样得到的结果又太多，仍然不是你想要的。</p>
<p>正解是：</p>
<blockquote><p>find . -name *.py|xargs grep asdf</p></blockquote>
<p>注：这是一个困惑我很久的问题，今天在 这里看到 <a class="reference external" href="http://www.joyloft.net/?p=1219">一种解决方案</a> 。 有人在留言中给出另外一种方法</p>
<blockquote><p>find . -iname ‘*.cc’ -exec grep -nH ‘{}’ \;</p></blockquote>
<p>但是看上去比较复杂，我不喜欢。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/653.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>reStructuredTEXT输出为LaTeX以及公式的问题</title>
		<link>http://www.ai7.org/wp/html/646.html</link>
		<comments>http://www.ai7.org/wp/html/646.html#comments</comments>
		<pubDate>Sun, 20 Dec 2009 14:36:50 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[reStructuredTEXT]]></category>
		<category><![CDATA[公式]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=646</guid>
		<description><![CDATA[中文的rst文件，输出为LaTeX文件：
在home目录下编辑.docutils文件，内容如下：
[latex2e writer]
documentclass: article
documentoptions: 12pt a4paper
output-encoding: utf-8
stylesheet: /home/username/docutils.tex
前几行没什么可说的，最后一行所指定文件的内容如下：
\usepackage[slantfont,boldfont,CJKaddspaces,CJKchecksingle]{xeCJK}
\CJKlanguage{zh-cn}
\setmainfont{Times New Roman}
\setCJKmainfont{Adobe Song Std}
\usepackage{CJKfntef}
我这是想用xelatex，如果是用CCT或者CTEX，语句相对少些。大家自己改吧。
公式的话，在文件头添加
.. role:: raw-math(raw)
    :format: latex html
行内公式这样写：
If :raw-math:`$x=5 \times 3$` then :raw-math:`$x$` is
注意，冒号后面没空格！
独立公式这样写：
.. raw:: latex html

    $$ W \approx \sum{f(x_k) \Delta x} $$
    $$ W = \int_{a}^{b}{f(x) dx} $$
参考源：

Docutils Configuration: http://docutils.sourceforge.net/docs/user/config.html
reStructured Text tips and tricks: http://www.programmerq.net/rsttricks.html
[tip] python-docutils: rst2latex create [...]]]></description>
			<content:encoded><![CDATA[<p>中文的rst文件，输出为LaTeX文件：</p>
<p>在home目录下编辑.docutils文件，内容如下：</p>
<p>[latex2e writer]<br />
documentclass: article<br />
documentoptions: 12pt a4paper<br />
output-encoding: utf-8<br />
stylesheet: /home/username/docutils.tex</p>
<p>前几行没什么可说的，最后一行所指定文件的内容如下：</p>
<p>\usepackage[slantfont,boldfont,CJKaddspaces,CJKchecksingle]{xeCJK}<br />
\CJKlanguage{zh-cn}<br />
\setmainfont{Times New Roman}<br />
\setCJKmainfont{Adobe Song Std}<br />
\usepackage{CJKfntef}</p>
<p>我这是想用xelatex，如果是用CCT或者CTEX，语句相对少些。大家自己改吧。</p>
<p>公式的话，在文件头添加</p>
<pre class="literal-block">.. role:: raw-math(raw)
    :format: latex html</pre>
<pre class="literal-block">行内公式这样写：</pre>
<pre>If :raw-math:`$x=5 \times 3$` then :raw-math:`$x$` is</pre>
<pre>注意，冒号后面没空格！</pre>
<pre>独立公式这样写：</pre>
<pre>.. raw:: latex html

    $$ W \approx \sum{f(x_k) \Delta x} $$
    $$ W = \int_{a}^{b}{f(x) dx} $$</pre>
<pre>参考源：</pre>
<ol>
<li><a href="http://docutils.sourceforge.net/docs/user/config.html">Docutils Configuration</a>: http://docutils.sourceforge.net/docs/user/config.html</li>
<li><a href="http://www.programmerq.net/rsttricks.html#math-and-equations">reStructured Text tips and tricks</a>: http://www.programmerq.net/rsttricks.html</li>
<li><a href="http://kalug.linux.org.tw/~lloyd/bblog/archives/2009/11/09/%5Btip%5D_python-docutils:_rst2latex_create_chinese_pdf/">[tip] python-docutils: rst2latex create chinese pdf</a>（繁体中文）: http://kalug.linux.org.tw/~lloyd/bblog/archives/2009/11/09/%5Btip%5D_python-docutils:_rst2latex_create_chinese_pdf/</li>
</ol>
<p>注：</p>
<p>如果是使用<a href="http://sphinx.pocoo.org/" target="_blank">Sphinx</a>，那么对于公式的支持就不用这么麻烦了，可以直接使用:math:和.. math::这样的命令，因为<a href="http://sphinx.pocoo.org/" target="_blank">Sphinx</a>支持rST扩展，用上面的方法，反而会出很多问题。</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">1 [latex2e writer]</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">2 documentclass: article</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">3 documentoptions: 12pt,a4paper</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">4 output-encoding: utf-8</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">5 stylesheet: /home/mzy/docutils.tex</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">~</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">&#8211; 可视 行 &#8212;                                                 5,1          全部</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/646.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imagemagick 合并两个图像</title>
		<link>http://www.ai7.org/wp/html/635.html</link>
		<comments>http://www.ai7.org/wp/html/635.html#comments</comments>
		<pubDate>Tue, 08 Dec 2009 13:22:05 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[imagemagick]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=635</guid>
		<description><![CDATA[composite基本用法示例：
composite -gravity southwest 1.png 2.jpg 3.jpg
gravity原意是重力，这里可以理解为对齐的方式。上面命令中中左下角对齐。1.png是前景图，2.jpg是背景图，3.jpg是输出结果。
btw: 有人说GraphicsMagick效率比Imagemagick效率更高，不知道真假。
]]></description>
			<content:encoded><![CDATA[<p>composite基本用法示例：</p>
<p>composite -gravity southwest 1.png 2.jpg 3.jpg</p>
<p>gravity原意是重力，这里可以理解为对齐的方式。上面命令中中左下角对齐。1.png是前景图，2.jpg是背景图，3.jpg是输出结果。</p>
<p>btw: 有人说GraphicsMagick效率比Imagemagick效率更高，不知道真假。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/635.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>纪念Opera Mini</title>
		<link>http://www.ai7.org/wp/html/627.html</link>
		<comments>http://www.ai7.org/wp/html/627.html#comments</comments>
		<pubDate>Sat, 21 Nov 2009 16:39:53 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=627</guid>
		<description><![CDATA[（无正文）
]]></description>
			<content:encoded><![CDATA[<p>（无正文）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/627.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Imagemagick将PDF文件转为图片</title>
		<link>http://www.ai7.org/wp/html/623.html</link>
		<comments>http://www.ai7.org/wp/html/623.html#comments</comments>
		<pubDate>Sat, 21 Nov 2009 15:05:28 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=623</guid>
		<description><![CDATA[convert -density 150  aaa.pdf aaa.png
-density 参数指定的是DPI，也就是分辩率。一般屏幕显示用72就足够了，150适用于大多数场合，300以上的分辩率就很高了。不清楚最高可以到多少。当然了，这些都只在原PDF是矢量的情况下才有比较好的效果，如果原PDF是点阵的，比如扫描的图书，那么更大的DPI造成的结果就是颗粒变大。
如果PDF有多页，那么上述命令会将所有的页都转出来，存成多个文件。如果只想转其中某几页，可以在PDF文件名后加页码范围，象这样：
convert -density 150  aaa.pdf[0-3,20-25] aaa.png
注意，convert都是从0计数的，也就是说Imagemagick把PDF文件的第一页叫作第0页。不管上面哪种情况，只要是转换多页，Imagemagick都会自动在原文件名中加序号，以0开始，连续编号，形如aaa-0.png、aaa-1.png、aaa-2.png……，而与原页码没有任何联系。
当然了，转换的时候，还可以指定-resize这些参数。
]]></description>
			<content:encoded><![CDATA[<p>convert -density 150  aaa.pdf aaa.png</p>
<p>-density 参数指定的是DPI，也就是分辩率。一般屏幕显示用72就足够了，150适用于大多数场合，300以上的分辩率就很高了。不清楚最高可以到多少。当然了，这些都只在原PDF是矢量的情况下才有比较好的效果，如果原PDF是点阵的，比如扫描的图书，那么更大的DPI造成的结果就是颗粒变大。</p>
<p>如果PDF有多页，那么上述命令会将所有的页都转出来，存成多个文件。如果只想转其中某几页，可以在PDF文件名后加页码范围，象这样：</p>
<p>convert -density 150  aaa.pdf[0-3,20-25] aaa.png</p>
<p>注意，convert都是从0计数的，也就是说Imagemagick把PDF文件的第一页叫作第0页。不管上面哪种情况，只要是转换多页，Imagemagick都会自动在原文件名中加序号，以0开始，连续编号，形如aaa-0.png、aaa-1.png、aaa-2.png……，而与原页码没有任何联系。</p>
<p>当然了，转换的时候，还可以指定-resize这些参数。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/623.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VIM编辑文件实例</title>
		<link>http://www.ai7.org/wp/html/617.html</link>
		<comments>http://www.ai7.org/wp/html/617.html#comments</comments>
		<pubDate>Thu, 19 Nov 2009 17:15:33 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=617</guid>
		<description><![CDATA[假设有以下文件
1234567
甲甲大学
张三
李四
王五
2222222
乙乙大学
张三三
李四四
王五五
3333333
丙丙大学
张三四
李四五
王五六
……
简单讲，每个队的信息被分成了5行，报名号、学校、队员1、队员2、队员3。我们主要的工作是要删除多余的回车符，将每一队的信息集中到一行。

删除多余的空白：“:%s/ //g”；
因为总共是1430行，也就是286个组，这个数记下来，下面要用。
合并每组的5行：在normal模式下，光标停在报名号这一行，直接输入“5J”，注意，是大写的J，也就是shift+j。可以看到，每一组的5行信息已经合并成一行了，并且以空格分隔。其中，5表示执行后面的命令5次，J表示合并两行。这一步是基础，并不需要，按“u”，退回到第2步的状态，并按“gg”，将光标停在第一行。
录制宏：开始录制以a为名字的宏，“qa”，之后依次按下面的键，“5Jjq”，其中5J的作用已经解释了，j跳到第二行，q结束录制宏。
这时候你的光标应该在第二行，并且是normal模式，依次按下面的键，“285@a”，其中@就是shift+2，@a的意思是执行宏a，也就是执行@a共285次。这时，每组的信息已经集中到一行了。
其实我们的任务基本上已经完成了，下面是先转成csv格式，再导入Excel，还是直接转成html表格，都是很容易的事情了。下面的命令就不再解释了。
:%s/ /&#60;\td&#62;&#60;td&#62;/g
:%s/^/&#60;tr&#62;&#60;td&#62;/g
:%s/$/&#60;\/td&#62;&#60;\/tr&#62;/g
文件最前面加上&#60;html&#62;&#60;body&#62;&#60;table&#62;，文件最后面加上&#60;/table&#62;&#60;/body&#62;&#60;/html&#62;，大功告成。（表格加线，加标题这些自己看着办吧）

btw：
当你不了解一种工具（特别是像VIM这种强悍的工具）时，你可能根本想不到活儿还可以这么干，而且干的这么漂亮。
]]></description>
			<content:encoded><![CDATA[<p>假设有以下文件</p>
<p>1234567<br />
甲甲大学<br />
张三<br />
李四<br />
王五<br />
2222222<br />
乙乙大学<br />
张三三<br />
李四四<br />
王五五<br />
3333333<br />
丙丙大学<br />
张三四<br />
李四五<br />
王五六<br />
……</p>
<p>简单讲，每个队的信息被分成了5行，报名号、学校、队员1、队员2、队员3。我们主要的工作是要删除多余的回车符，将每一队的信息集中到一行。</p>
<ol>
<li>删除多余的空白：“:%s/ //g”；</li>
<li>因为总共是1430行，也就是286个组，这个数记下来，下面要用。</li>
<li>合并每组的5行：在normal模式下，光标停在报名号这一行，直接输入“5J”，注意，是大写的J，也就是shift+j。可以看到，每一组的5行信息已经合并成一行了，并且以空格分隔。其中，5表示执行后面的命令5次，J表示合并两行。这一步是基础，并不需要，按“u”，退回到第2步的状态，并按“gg”，将光标停在第一行。</li>
<li>录制宏：开始录制以a为名字的宏，“qa”，之后依次按下面的键，“5Jjq”，其中5J的作用已经解释了，j跳到第二行，q结束录制宏。</li>
<li>这时候你的光标应该在第二行，并且是normal模式，依次按下面的键，“285@a”，其中@就是shift+2，@a的意思是执行宏a，也就是执行@a共285次。这时，每组的信息已经集中到一行了。</li>
<li>其实我们的任务基本上已经完成了，下面是先转成csv格式，再导入Excel，还是直接转成html表格，都是很容易的事情了。下面的命令就不再解释了。</li>
<li>:%s/ /&lt;\td&gt;&lt;td&gt;/g</li>
<li>:%s/^/&lt;tr&gt;&lt;td&gt;/g</li>
<li>:%s/$/&lt;\/td&gt;&lt;\/tr&gt;/g</li>
<li>文件最前面加上&lt;html&gt;&lt;body&gt;&lt;table&gt;，文件最后面加上&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;，大功告成。（表格加线，加标题这些自己看着办吧）</li>
</ol>
<p>btw：</p>
<p>当你不了解一种工具（特别是像VIM这种强悍的工具）时，你可能根本想不到活儿还可以这么干，而且干的这么漂亮。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/617.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RapidShare</title>
		<link>http://www.ai7.org/wp/html/614.html</link>
		<comments>http://www.ai7.org/wp/html/614.html#comments</comments>
		<pubDate>Thu, 19 Nov 2009 16:03:29 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[RapidShare]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=614</guid>
		<description><![CDATA[RapidShare上好东西比较多，但是对免费用户的限制也比较多。倒计时还可以找软件跳过去，但流量限制不好办。不知道ADSL断线再拨号的方式是否可行。试了几个在线代理都不能正常下载。最后发现下面两种方式可行：

http://fanyi.cn.yahoo.com/
Opera的Turbo

再加上自己本身IP可以下一部分，应该够了。
btw：不要成为下载狂
]]></description>
			<content:encoded><![CDATA[<p>RapidShare上好东西比较多，但是对免费用户的限制也比较多。倒计时还可以找软件跳过去，但流量限制不好办。不知道ADSL断线再拨号的方式是否可行。试了几个在线代理都不能正常下载。最后发现下面两种方式可行：</p>
<ol>
<li>http://fanyi.cn.yahoo.com/</li>
<li>Opera的Turbo</li>
</ol>
<p>再加上自己本身IP可以下一部分，应该够了。</p>
<p>btw：<a href="http://www.ai7.org/wp/html/537.html" target="_blank">不要成为下载狂</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/614.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu下使用md5sum计算字符串的MD5值</title>
		<link>http://www.ai7.org/wp/html/606.html</link>
		<comments>http://www.ai7.org/wp/html/606.html#comments</comments>
		<pubDate>Tue, 17 Nov 2009 15:22:09 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=606</guid>
		<description><![CDATA[echo -n string&#124;md5sum
注：之前只会用md5sum计算文件的MD5值，想计算个字符串的MD5值，试了很多办法都不行，今天无意中看到。看来对Linux的软件哲学理解的还是不到位。
]]></description>
			<content:encoded><![CDATA[<p>echo -n string|md5sum</p>
<p>注：之前只会用md5sum计算文件的MD5值，想计算个字符串的MD5值，试了很多办法都不行，今天无意中看到。看来对Linux的软件哲学理解的还是不到位。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/606.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TEX THE WORLD</title>
		<link>http://www.ai7.org/wp/html/595.html</link>
		<comments>http://www.ai7.org/wp/html/595.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 11:45:49 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[latex]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=595</guid>
		<description><![CDATA[TeX THE WORLD是一个FireFox插件，它的作用是在浏览器的输入中很方便的加入TeX公式。在[; 和 ;]之间直接按照TeX语法写公式，就可以了。如果编辑器是支持HTML的（比如Gmail），那么结果可以实时显示（有一点点延迟，基本可以忽略），如果是纯文本的编辑器，结果需要在结果提交之后才能显示。比如：
[;F(x)=\int_a^x f(t)dt;]
公式实际上是保存在远程服务器上的图片，这和原来用LaTeXRender实现的LaTeX公式编辑器本质上是一样的，只是用起来更方便。
另外，基于Chrome的插件也已经出来了，在这里。安装和使用方法请自行Google之。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://thewe.net/tex/" target="_blank">TeX THE WORLD</a>是一个FireFox插件，它的作用是在浏览器的输入中很方便的加入TeX公式。在[<span>;</span> 和 <span>;</span>]之间直接按照TeX语法写公式，就可以了。如果编辑器是支持HTML的（比如Gmail），那么结果可以实时显示（有一点点延迟，基本可以忽略），如果是纯文本的编辑器，结果需要在结果提交之后才能显示。比如：</p>
<p>[;F(x)=\int_a^x f(t)dt;]</p>
<p>公式实际上是保存在远程服务器上的图片，这和原来用LaTeXRender实现的LaTeX公式编辑器本质上是一样的，只是用起来更方便。</p>
<p>另外，基于Chrome的插件也已经出来了，在<a href="http://www.chromeextensions.org/other/tex-the-world-for-chromium/" target="_blank">这里</a>。安装和使用方法请自行Google之。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/595.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VIM快捷键：J</title>
		<link>http://www.ai7.org/wp/html/592.html</link>
		<comments>http://www.ai7.org/wp/html/592.html#comments</comments>
		<pubDate>Sat, 14 Nov 2009 13:31:53 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=592</guid>
		<description><![CDATA[Normal模式下按J，可将下一行合并到当前行最后。
]]></description>
			<content:encoded><![CDATA[<p>Normal模式下按J，可将下一行合并到当前行最后。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/592.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vlookup函数</title>
		<link>http://www.ai7.org/wp/html/587.html</link>
		<comments>http://www.ai7.org/wp/html/587.html#comments</comments>
		<pubDate>Sun, 08 Nov 2009 15:28:48 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Vlookup]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=587</guid>
		<description><![CDATA[设想这样一种情况：
某一门选修课的老师想了解选这门课的学生的性别分布，但是他手里只有这些学生的姓名和学号信息，比如：
张三，1234
李四，5678
……
而所有学生的基本信息在花名册上，比如：
张一，男，1989-12-3……
张二，男，1990-4-13……
张三，女，1990-1-11……
……
这时候，老师就需要从表2中找出表1学生的性别信息。Excel，OpenOffice Calc或者WPS表格中都有Vlookup这样一个函数来做这件事情。具体用法请Google之。
]]></description>
			<content:encoded><![CDATA[<p>设想这样一种情况：<br />
某一门选修课的老师想了解选这门课的学生的性别分布，但是他手里只有这些学生的姓名和学号信息，比如：<br />
张三，1234<br />
李四，5678<br />
……<br />
而所有学生的基本信息在花名册上，比如：<br />
张一，男，1989-12-3……<br />
张二，男，1990-4-13……<br />
张三，女，1990-1-11……<br />
……</p>
<p>这时候，老师就需要从表2中找出表1学生的性别信息。Excel，OpenOffice Calc或者WPS表格中都有Vlookup这样一个函数来做这件事情。具体用法请Google之。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/587.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>一句话减肥JPEG文件</title>
		<link>http://www.ai7.org/wp/html/576.html</link>
		<comments>http://www.ai7.org/wp/html/576.html#comments</comments>
		<pubDate>Sun, 01 Nov 2009 12:10:54 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[jpeg]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/576.html</guid>
		<description><![CDATA[使用Imagemagick。convert -quality 80 org.jpg&#160; new.jpg如果还想同时调整一下大小：convert -quality 80 -resize 50%x50% org.jpg new.jpg如果是想处理目录下的所有jpg文件（如果是Win平台，可以写个bat文件）：for i in *.jpg; do convert -quality 80 &#8220;$i&#8221; &#8220;sm-$i&#8221;; done


]]></description>
			<content:encoded><![CDATA[<p>使用Imagemagick。<br />convert -quality 80 org.jpg&nbsp; new.jpg<br />如果还想同时调整一下大小：<br />convert -quality 80 -resize 50%x50% org.jpg new.jpg<br />如果是想处理目录下的所有jpg文件（如果是Win平台，可以写个bat文件）：<br />for i in *.jpg; do convert -quality 80 &#8220;$i&#8221; &#8220;sm-$i&#8221;; done</p>
<p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=528c6ef5-94ff-8c52-a66d-a25fbc306e71" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/576.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用cos-html-cache插件后的两个问题</title>
		<link>http://www.ai7.org/wp/html/569.html</link>
		<comments>http://www.ai7.org/wp/html/569.html#comments</comments>
		<pubDate>Tue, 20 Oct 2009 09:17:38 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[cos-html-cache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/html/569.html</guid>
		<description><![CDATA[1、WordPress内置的搜索功能不能使用。2、搜索引擎没有更新，所收录的页面还是http://www.yoursite.com/?p=23这样的格式，无法正确跳转。
对于第一个问题，网上有一些讨论，主要是建议使用google搜索代替内置的搜索，或者修改源文件。使用Google搜索的话，当然有一些好处，但是搜索结果不如内置的准确。修改源文件的话，有几个地方都有可能涉及到这行代码，比如当前模板目录下的searchform.php，wp-includes下的general-template.php等，具体是哪一个文件在起作用，取决于使用的模板和WordPress版本。而且修改源文件这种方法在版本升级的时候，很容易失效，还要重新改一次。
而对于第二个问题，网上好象没有什么讨论。可能很多人不像我这么懒，一开始就将默认的永久链接格式改掉了。
其实这两个问题有一个共同解决方法，就是在.htaccess文件中加一句:DirectoryIndex index.php index.html
这句话的作用是指定index.php的优先级比index.html高，也就是说，如果访问http://www.yousite.com/的话，会先访问index.php文件。在使用cos-html-cache插件之前，由于没有index.html文件，所以不存在优先级的问题。使用了这个插件之后，index.html的优先级通常比较高，问题就来了。
btw: .htaccess是个好东西。

]]></description>
			<content:encoded><![CDATA[<p>1、WordPress内置的搜索功能不能使用。<br />2、搜索引擎没有更新，所收录的页面还是http://www.yoursite.com/?p=23这样的格式，无法正确跳转。</p>
<p>对于第一个问题，网上有<a target="_blank" href="http://www.yysonline.com/html/y2009/m09/446.html">一些讨论</a>，主要是建议使用google搜索代替内置的搜索，或者修改源文件。使用Google搜索的话，当然有一些好处，但是搜索结果不如内置的准确。修改源文件的话，有几个地方都有可能涉及到这行代码，比如当前模板目录下的searchform.php，wp-includes下的general-template.php等，具体是哪一个文件在起作用，取决于使用的模板和WordPress版本。而且修改源文件这种方法在版本升级的时候，很容易失效，还要重新改一次。</p>
<p>而对于第二个问题，网上好象没有什么讨论。可能很多人不像我这么懒，一开始就将默认的永久链接格式改掉了。</p>
<p>其实这两个问题有一个共同解决方法，就是在.htaccess文件中加一句:<br />DirectoryIndex index.php index.html</p>
<p>这句话的作用是指定index.php的优先级比index.html高，也就是说，如果访问http://www.yousite.com/的话，会先访问index.php文件。在使用cos-html-cache插件之前，由于没有index.html文件，所以不存在优先级的问题。使用了这个插件之后，index.html的优先级通常比较高，问题就来了。</p>
<p>btw: .htaccess是个好东西。</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=1f58a6ba-be6c-87b9-bd23-0ae9fc60c7ef" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/569.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>google docs是不是有问题？</title>
		<link>http://www.ai7.org/wp/html/551.html</link>
		<comments>http://www.ai7.org/wp/html/551.html#comments</comments>
		<pubDate>Wed, 07 Oct 2009 17:41:13 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[google docs]]></category>
		<category><![CDATA[问题]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=551</guid>
		<description><![CDATA[前两天，google docs间歇性的不能访问，今天好了一些，但是还是有问题。
另外一个变化是，原来无论文档还是电子表，都是https地址，现在都改成了http。感觉有问题。
]]></description>
			<content:encoded><![CDATA[<p>前两天，google docs间歇性的不能访问，今天好了一些，但是还是有问题。</p>
<p>另外一个变化是，原来无论文档还是电子表，都是https地址，现在都改成了http。感觉有问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/551.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CaR，GCLC，TikZ</title>
		<link>http://www.ai7.org/wp/html/488.html</link>
		<comments>http://www.ai7.org/wp/html/488.html#comments</comments>
		<pubDate>Sat, 15 Aug 2009 02:33:44 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[LaTeX相关]]></category>
		<category><![CDATA[免费软件推荐]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[C.a.R. GCLC]]></category>
		<category><![CDATA[CaR]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[PGF]]></category>
		<category><![CDATA[TikZ]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=488</guid>
		<description><![CDATA[C.a.R.和GCLC都可以算做类似几何画板的所谓动态几何软件，这里是维基百科上关于这类软件的一个比较。那张表并不完整，至少缺了是否跨平台这一栏。而这两个软件都具备以下特点：
	
免费
	
跨平台
	
支持LaTeX

另外，C.a.R.可以将动态结果输出至网页形式，只要装了Java的机器，可以直接在浏览器中操作。GCLC则有机器证明的功能，并可以将做图脚本输出为TikZ格式。
而TikZ是LaTeX上的一个宏包，可与Beamer很好的配合。
缺点是这三个软件都非常小众，无论国内还是国外，用户似乎都不多。
8月15日补充：
关于TikZ/PGF的好站（强力推荐）：http://www.texample.net
]]></description>
			<content:encoded><![CDATA[<p>C.a.R.和GCLC都可以算做类似几何画板的所谓动态几何软件，<a href="http://zh.wikipedia.org/wiki/%E5%8B%95%E6%85%8B%E5%B9%BE%E4%BD%95%E8%BB%9F%E9%AB%94" target="_blank">这里</a>是维基百科上关于这类软件的一个比较。那张表并不完整，至少缺了是否跨平台这一栏。而这两个软件都具备以下特点：
<ol>	
<li>免费</li>
<p>	
<li>跨平台</li>
<p>	
<li>支持LaTeX</li>
<p></ol>
<p>另外，C.a.R.可以将动态结果输出至网页形式，只要装了Java的机器，可以直接在浏览器中操作。GCLC则有机器证明的功能，并可以将做图脚本输出为TikZ格式。</p>
<p>而TikZ是LaTeX上的一个宏包，可与Beamer很好的配合。</p>
<p>缺点是这三个软件都非常小众，无论国内还是国外，用户似乎都不多。</p>
<p>8月15日补充：</p>
<p>关于TikZ/PGF的好站（强力推荐）：<a href="http://www.texample.net" target="_blank">http://www.texample.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/488.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evince支持类Vim的快捷键</title>
		<link>http://www.ai7.org/wp/html/484.html</link>
		<comments>http://www.ai7.org/wp/html/484.html#comments</comments>
		<pubDate>Thu, 13 Aug 2009 14:49:05 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[Evince]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=484</guid>
		<description><![CDATA[今天在用Evince时想查个东西，顺手按了一下“/”，被弹出来搜索框吓了一跳。赶快试试j,k,h,l，都行！帮助里面只提到了“/”，不知道还有没有其他类似的快捷键。
]]></description>
			<content:encoded><![CDATA[<p>今天在用Evince时想查个东西，顺手按了一下“/”，被弹出来搜索框吓了一跳。赶快试试j,k,h,l，都行！<br />帮助里面只提到了“/”，不知道还有没有其他类似的快捷键。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/484.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Reader一处微调</title>
		<link>http://www.ai7.org/wp/html/482.html</link>
		<comments>http://www.ai7.org/wp/html/482.html#comments</comments>
		<pubDate>Thu, 13 Aug 2009 08:57:47 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[软件]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Reader]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=482</guid>
		<description><![CDATA[原来的“全部标为已读”只是一个按钮，现在增加了选项：所有条目，一天之前的条目，一周之前的条目，两周之前的条目。


]]></description>
			<content:encoded><![CDATA[<p>原来的“全部标为已读”只是一个按钮，现在增加了选项：所有条目，一天之前的条目，一周之前的条目，两周之前的条目。</p>
<p><img style="max-width: 800px;" src="http://www.ai7.org/wp/wp-content/uploads/2009/08/screenshot-004.png" /></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/482.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia N800 网页输入法-郑码</title>
		<link>http://www.ai7.org/wp/html/466.html</link>
		<comments>http://www.ai7.org/wp/html/466.html#comments</comments>
		<pubDate>Sun, 26 Jul 2009 15:26:22 +0000</pubDate>
		<dc:creator>amao</dc:creator>
				<category><![CDATA[Nokia N800]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[N800]]></category>
		<category><![CDATA[输入法]]></category>
		<category><![CDATA[郑码]]></category>

		<guid isPermaLink="false">http://www.ai7.org/wp/?p=466</guid>
		<description><![CDATA[修改自sinosure的0.6版，在这里的29楼：http://www.myhtpc.com.cn/viewthread.php?tid=810&#38;extra=page%3D1%26amp%3Bfilter%3Ddigest&#38;page=3
主要变化：
	
增加郑码输入法。词库来自龙文输入法（其实是用winzm.mb转出来的）。Input.htm是拼音输入法，Inputzm.htm是郑码。
	
相应的，在界面上增加了两种输入法的切换按钮。
	
增加了两个“1”键。本来是希望加一个空格，来与PC上的输入习惯一致，但考虑到可能很多人是用大姆指输入，所以就在下面增加了两个“1”键，方便选字。

已知问题：
	
龙文这个词库不知道怎么那么多两字母的字和词，所以这些词的排序是个问题。现在这个版本是用根据龙文自己的词频排的序，可能与习惯不太一致。
	
响应有点慢。这个和词库大小以及查找算法都有关系，要改起来比较麻烦。
	
背景图片没有修改。

btw：
	
还有多少人在用Nokia N800？
	
还有多少人在Nokia N800上用的是网页输入法？
	
还有多少人用郑码？


下载：imzm
]]></description>
			<content:encoded><![CDATA[<div style="font-size: 12px;">修改自sinosure的0.6版，在这里的29楼：<a href="http://www.myhtpc.com.cn/viewthread.php?tid=810&amp;extra=page%3D1%26amp%3Bfilter%3Ddigest&amp;page=3" target="_blank">http://www.myhtpc.com.cn/viewthread.php?tid=810&amp;extra=page%3D1%26amp%3Bfilter%3Ddigest&amp;page=3</a></p>
<p>主要变化：
<ol type="1">	
<li>增加郑码输入法。词库来自龙文输入法（其实是用winzm.mb转出来的）。Input.htm是拼音输入法，Inputzm.htm是郑码。</li>
<p>	
<li>相应的，在界面上增加了两种输入法的切换按钮。</li>
<p>	
<li>增加了两个“1”键。本来是希望加一个空格，来与PC上的输入习惯一致，但考虑到可能很多人是用大姆指输入，所以就在下面增加了两个“1”键，方便选字。</li>
<p></ol>
<p>已知问题：
<ol type="1">	
<li>龙文这个词库不知道怎么那么多两字母的字和词，所以这些词的排序是个问题。现在这个版本是用根据龙文自己的词频排的序，可能与习惯不太一致。</li>
<p>	
<li>响应有点慢。这个和词库大小以及查找算法都有关系，要改起来比较麻烦。</li>
<p>	
<li>背景图片没有修改。</li>
<p></ol>
<p>btw：
<ol type="1">	
<li>还有多少人在用Nokia N800？</li>
<p>	
<li>还有多少人在Nokia N800上用的是网页输入法？</li>
<p>	
<li>还有多少人用郑码？</li>
<p></ol>
<p></div>
<p>下载：<a href="http://www.ai7.org/wp/wp-content/uploads/2009/07/imzm.zip">imzm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ai7.org/wp/html/466.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
