﻿<?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>μ &#187; Other</title>
	<atom:link href="http://www.icyfire.me/category/programmer/other/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.icyfire.me</link>
	<description>太阳底下没有新鲜事。</description>
	<lastBuildDate>Sun, 08 Aug 2010 05:42:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[转]关于Twitter信息结构的思考</title>
		<link>http://www.icyfire.me/2010/03/thinking-of-twitter-msg-structure/</link>
		<comments>http://www.icyfire.me/2010/03/thinking-of-twitter-msg-structure/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 06:59:40 +0000</pubDate>
		<dc:creator>icyfire</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.icyfire.me/?p=918</guid>
		<description><![CDATA[使用Twitter一段时间了。作为一个比较懒的Bloger，Twitter带来的改变是革命性的。毕竟不是每一点感受都值得去花上时间去洋洋洒洒的写 一篇文章的。而Twitter却能保留下这些思想的火花，并与人分享。
不过我在使用过程中，也感觉到Twitter的一些不足之处。

<img width="528" src="http://www.icyfire.me/wp-content/uploads/2010/03/twitter/thinking_twitter_03.png" alt="" />]]></description>
			<content:encoded><![CDATA[<div style="font-size:14px;">
使用Twitter一段时间了。作为一个比较懒的Bloger，Twitter带来的改变是革命性的。毕竟不是每一点感受都值得去花上时间去洋洋洒洒的写 一篇文章的。而Twitter却能保留下这些思想的火花，并与人分享。<br />
不过我在使用过程中，也感觉到Twitter的一些不足之处。</p>
<h3>一.Twitter与Blog的内向信息结构对比</h3>
<p>这里所说的内向信息，指的是Twitter或Blog作者个人的数据。Twitter基於一个概念Timeline，也就决定了Twitter的数据是一 维的，直线型的。 </p>
<p><img src="http://www.icyfire.me/wp-content/uploads/2010/03/twitter/thinking_twitter_01.jpg" alt="" /></p>
<p>然而Blog的结构，却一般是树状的。Blog产生之初，也只有一个Timeline，但後来加入了分类和Tag，单页面等，变成了树状甚至网状结构:</p>
<p><img src="http://www.icyfire.me/wp-content/uploads/2010/03/twitter/thinking_twitter_02.jpg" alt="" /></p>
<p>由上图可见，Blog在处理个人内部数据上结构清晰。有多种分类和索引方法。因此，Blog在数据定向和搜索所需的资源和时间等成本上要远优於 Twitter。</p>
<h3>二.Twitter和Blog的外部数据结构对比</h3>
<p>我们都知道Twitter通过互相Follow，加强了个体之间的信息联系。同时由於Retweet和Reply的存在，使得Twitter的信息结构更 加复杂。但这些只是数据的"联系"。也就是说，Twitter加强了信息的联系，并将它展示出来，可惜是杂乱无章的。 </p>
<p><img src="http://www.icyfire.me/wp-content/uploads/2010/03/twitter/thinking_twitter_03.png" alt="" /></p>
<p>如上图所示，我们以3个用户为例。Twitter突出了信息之间的联系，但是如果用户2想要查看自己和用户3之间关於Tweet3之间的谈话时。如果以自 己的Timeline为线索，则会被前後的信息干扰。如果他用#tag进行搜索时，又会被毫无关联的用户1的Tweet4干扰。基於现行的 Twitter搜索机制。他还会被众多其他使用相同标签的用户信息干扰，完全淹没在信息的海洋中。</p>
<p>因为这种情况，Twitter用户自行发明了非官方的RT。即用"RT @用户一 信息"的方式发表回复。但这种方式也有弊端，因为Twitter的140字限制。在RT来RT去之後，原有的源头信息已被截断。以至於後来的用户看到的完 全是摸不着头脑的一条垃圾信息。即使能够保留。也会是"RT @用户一 RT AAA @用户二 BBB RT @用户三CCCCCCCCC"这样让人眼花缭乱的信息。</p>
<p>而Blog方面。除了使用率和结合性都不甚高的Trackback之外，Blog用户们几乎都在各自为战，无法形成有效的信息链接和集合。除非 BSP对各类信息进行整合。但也仅限於本站内的。这是天生的缺陷。</p>
<h3>三.Twitter中的信息爆炸，环流和碎片</h3>
<p>每当有重大新闻事件发生，大家都会感受到Twitter的信息传播速度的恐怖。每个用户都有自己的跟随者，形成一个圈子，一个圈子的信息又透过圈内用户迅 速传播到另N个圈子。象链式反应一样，迅速成几何级的传播。我想称之为信息爆炸并不为过。</p>
<p>我们知道，如果把交换机的两个端口连线，会形成环流和局域网广播风暴。其实Twitter上的信息流也一样如此。自己发的信息被铺天盖地的反推回来也很常 见。这也是信息爆炸的结果。</p>
<p>在Twitter上，如果你跟随了某个人，那麽他推送的任何信息你都会接收到。哪怕他只是发了一条"今天吃了一个苹果"这样对你来说毫无意义的"垃圾信 息"，我称之为"信息碎片"。</p>
<p>这三种现象都是Twitter自身的特性引起的。有好处，也有坏处。好处在於信息的传播速度和广度。坏处嘛，就是<strong>使得读Twitter变成一件很困难的事。你Follow的人越多，这个难度就越大</strong>。</p>
<h3>四.解决Twitter的问题！</h3>
<p><strong>1.首先要优化个体数据结构</strong><br />
要解决Twitter造成的问题，首先要解决Twitter相对单个用户自身的结构问题。这是基础。<br />
引入Category和Tag并不是难事。问题在於必须是要针对用户自身的数据的。现行的Tag并非是针对用户自身的，而是向整个Twitter所有用户 的信息发起搜索。这使得用户难以查看自己曾经的数据，更不用说其他人了。何况这也加重的资源和时间的消耗。我们可以如下做: </p>
<p><img src="http://www.icyfire.me/wp-content/uploads/2010/03/twitter/thinking_twitter_04.jpg" alt="" /></p>
<p>这样。我们<strong>把标签和用户名结合起来，就可以做到数据结构的清晰化</strong>。并且不要求对现行Twitter的数据库的大的改造。</p>
<p>其它用户在Follow用户1时，可以根据其标签进行选择，比如我认为User1对Web技术比较在行，但在音乐欣赏方面却和我爱好完全不同。那麽我就只 Follow @User1#web。这样组织起来的数据更加有效。可以避免上文所说的信息碎片。</p>
<p>当然，也有可能有用户不按牌理出牌，不能有效的组织好自己的信息，但这样的用户的信息，必然会被淘汰。大多数用户需要的还是有效的信息。我在这里把 Twitter工具化了，并不把它当成一个吐槽打屁的玩具，我从来没有这样看过Twitter。</p>
<p>这样结构化的信息所能做到的，是把多个用户的信息再细化并重新组织，以保证用户接收到的信息内容的有效性。它和现有的List功能是可以达到互相辅助的。 并没有冲突。实际上，它比List要有意义得多。</p>
<p><strong>2.信息筛</strong></p>
<p>经过上面的对碎片的整理，我们还要面对信息环流和爆炸的问题。在玩WOW的时候，我们知道有一种可以屏蔽垃圾代练广告的插件。它最常用的一个功能是，把短 时间内重复的信息视为垃圾信息，只显示第一条。那麽我们可以借用它的机制:</p>
<p><strong>对内容高度相似的信息进行过滤，不显示。仅在第一条上显示相似信息的数目，并可以展开。</strong><br />
这样做不但可以再次过滤掉大量垃圾信息，而且还会带来一个副产品:那就是消灭RT。因为非官方的RT除了少量RT @用户名之外，一般并无更多的有效内容。如果这样做会被过滤，自然会被放弃使用。</p>
<p><strong>3.除了TimeLine之外，Twitter还需要InfoLine</strong></p>
<p>基於上面的思考，我认为Twitter想要改进用户体验，除了在上面的结构化下功夫之外，还需要有效的组织起信息链。为什麽用户会使用非官方的RT？我认 为这就是一种形成信息链的方式。它的目的在於"使我的 Follower也看到话题的起点"。让跟随者看到我在回复什麽，我们在讨论什麽。</p>
<p>因此。必须要让信息形成链条。让後来者只要抓住链条的一节，便能够顺着链条，闚得它的全貌。怎麽做呢？SNS网站通常有一个"发起一个话题"的功能。这也 类似论坛中发起一个主帖，後面大家跟帖的形式。只要我 Follow了某一个在这个话题中进行了回复的用户，我便能展开整个信息链，查看大家都说了什麽。这并不需要改变现行的Reply机制。只需要加上一个方 法就行:</p>
<p><strong>在Reply的Tweet中，显示信息链源头的内容。</strong> </p>
<p><img src="http://www.icyfire.me/wp-content/uploads/2010/03/twitter/thinking_twitter_05.jpg" alt="" /></p>
<p>如上图所示各个用户之间的数据是交错的，它们的关联在於源头。<strong>只要源头能够显示并且关联，我们就能有效的组织起一个信息链了。</strong></p>
<p>举例说明。如上图。如果user3跟随了user2而没有跟随user1，他看到的usr2对user1的回复就是这样的:</p>
<p>user2:@user1 真的麽？</p>
<p>这样做是完全无法得到有效的信息的。如果我们能够这样显示:</p>
<p>user2:@user1 真的麽？ *@user1:A企业的产品被曝有质量问题</p>
<p>对於同样只跟随了user3而没有跟随user1，user2的user4来说，他看到的信息是这样的</p>
<p>user3:@user2 我找到官方报导网址了XXX *@user1:A企业的产品被曝有质量问题</p>
<p>在这里略去了中间过程。用*代表并引出信息链的源头。即使user4看user3的回得并不能得知他回覆内容在说什麽，但他起码可以得知这个信息的源头， 主要是在讨论什麽内容。并且我们可以使"*@user1:A企业的产品被曝有质量问题"成为一个链接。可以点击展开，查看到众多没有跟随的用户所发表的回 复。用树状的结构组织起信息。</p>
<h3>五.Twitter，加油！</h3>
<p>Twitter给我们带来的改变是巨大的，说它是一场信息革命我认为并不为过。 尽管它的起点很简单。Twitter也在不断成长，从它开放度看来，它可挖掘的潜力仍然巨大。以上只是我个人对Twitter的一点想法。具体是否可行还 请大家探讨。</p>
<p>写到这里，忽然想到，一个具有巨大潜力和能量的东西，在带给我们力量和益处的同时，同样也可能带来巨大的伤害。可能都不是所谓"众口烁金，积毁销骨"这麽 简单的了。也许下一次，我们该探讨一下Twitter的控制问题，确保它只给大家带来好处，而不是恶果了。</p>
<p>原文：<a href="http://windspeaker.appspot.com/?p=10001" target="_blank">關於Twitter的信息結構的思考</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.icyfire.me/2010/03/thinking-of-twitter-msg-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google广告 - 巴黎之爱(Parisan Love)</title>
		<link>http://www.icyfire.me/2010/02/google-parisan-love/</link>
		<comments>http://www.icyfire.me/2010/02/google-parisan-love/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:39:49 +0000</pubDate>
		<dc:creator>icyfire</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">http://www.icyfire.me/?p=906</guid>
		<description><![CDATA[<div style="width:528px;text-align:center;">
<embed src="http://player.youku.com/player.php/sid/XMTUxMDUwMjky/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed>
</div>
挺有创意的一个广告，从搜索内容来看，应该是他去法国留学，然后在咖啡店认识了她，然后喜欢上了她，最后去法国工作
并且跟她结婚生子的故事。话说，还有三天，情人节兼春节就到了……]]></description>
			<content:encoded><![CDATA[<div style="width:528px;text-align:center;">
<embed src="http://player.youku.com/player.php/sid/XMTUxMDUwMjky/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed>
</div>
<p>挺有创意的一个广告，从搜索内容来看，应该是他去法国留学，然后在咖啡店认识了她，然后喜欢上了她，最后去法国工作并且跟她结婚生子的故事。话说，还有三天，情人节兼春节就到了……</p>
<p>看看主角的搜索词：</p>
<p>1.study abroad paris<br />
他想去法国留学。</p>
<p>2.cafes near the louve<br />
查找卢浮宫博物馆附近的咖啡店。不过louve打错了，应该是louvre，Google给出了修正。</p>
<p>3.translate tu es très mignon<br />
翻译法语tu es très mignon。翻译结果是：你真可爱。应该是在咖啡店里遇到一个女孩子这么说他吧。</p>
<p>4.impress a french girl<br />
怎么给一个法国女孩子留下好印象。他开始追求她了。</p>
<p>5.chocolate shops paris<br />
查找法国的巧克力店。他想送巧克力给她。</p>
<p>6.what are truffles<br />
松露巧克力，法国产的最出名。</p>
<p>7.who is traffaut<br />
法国新浪潮代表导演，应该是她喜欢这个导演，然后他约她去看这个导演的电影了。</p>
<p>8.long distance relationship advice<br />
长距离异地恋建议。他大概留学完回国了。</p>
<p>9.jobs in paris<br />
他准备在法国找一份工作，这样就能和她在一起了。</p>
<p>10.AA120<br />
查找飞机航班。</p>
<p>11.churches in paris<br />
查找教堂。求婚成功，找地方举行婚礼了……</p>
<p>12.how to assemble a crib<br />
查找组装婴儿床的方法。生孩子。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icyfire.me/2010/02/google-parisan-love/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用UNetbootin安装Puppy Linux到U盘</title>
		<link>http://www.icyfire.me/2009/10/%e7%94%a8unetbootin%e5%ae%89%e8%a3%85puppy-linux%e5%88%b0u%e7%9b%98/</link>
		<comments>http://www.icyfire.me/2009/10/%e7%94%a8unetbootin%e5%ae%89%e8%a3%85puppy-linux%e5%88%b0u%e7%9b%98/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 03:56:49 +0000</pubDate>
		<dc:creator>icyfire</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.icyfire.me/?p=879</guid>
		<description><![CDATA[<img src="http://www.icyfire.me/wp-content/uploads/2009/10/puppy_linux.jpg" alt="" />

很少玩Linxu系统，但今天看到了<a href="http://distrowatch.com/table.php?distribution=puppy" target="_blank">Puppy Linux</a>的介绍，于是也凑凑热闹弄一个到U盘玩玩，顺便当移动系统。用本身自带的Puppy universal installer嫌太麻烦了，还要自己刻盘。用Flashboot制作结果又启动不了，最后还是使用UNetbootin搞定。

详情见正文。]]></description>
			<content:encoded><![CDATA[<p>很少玩Linxu系统，但今天看到了<a href="http://distrowatch.com/table.php?distribution=puppy" target="_blank">Puppy Linux</a>的介绍，于是也凑凑热闹弄一个到U盘玩玩，顺便当移动系统。用本身自带的Puppy universal installer嫌太麻烦了，还要自己刻盘。用Flashboot制作结果又启动不了，最后还是使用UNetbootin搞定。</p>
<p><strong>准备工作：</strong><br />
<strong>下载UNetbootin：</strong><a href="http://unetbootin.sourceforge.net/" target="_blank">http://unetbootin.sourceforge.net/</a><br />
当前Windows版的最新文件是：unetbootin-windows-372.exe。不需要安装，直接点击就能运行了。<br />
<strong>下载Puppy Linux：</strong><a href="http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.3.1" target="_blank">http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.3.1</a><br />
这里用的是当前最新版本：4.3.1正式版。下载那里一共提供了5个ISO下载，其中一个在根目录，其他四个在special-puppies里。我这里使用的是pup-431-small.iso，只有96M的大小。<br />
<strong>准备U盘：</strong>确保有足够剩余空间，最好自行格式化一下。</p>
<p><strong>安装步骤：</strong><br />
<img src="http://www.icyfire.me/wp-content/uploads/2009/10/unetbootin-puppy-linux-usb_1.jpg" alt="" /></p>
<p>1.运行UNetbootin。从界面可以看到UNetbootin提供了多种的途径进行制作。因为我使用的是下载回来的ISO，所以选择磁盘镜像（Disk Image）的方式，类型选"ISO"，然后选择镜像文件的位置。</p>
<p>2.最下面的类型选择“USB设备”，然后在旁边的驱动器列表选择U盘的盘符，UNetbootin会检测你U盘的盘符，但是并不是总是对的，有时你U盘的盘符并不在里面(例如我这次……)，这时你要点击上面的“显示所有驱动器”列出所有的盘符，然后再选择。</p>
<p>3.当确定一切设定无误后，点击确定就开始制作了。</p>
<p>4.完成后，你U盘里的文件应该会如下图：</p>
<p><img src="http://www.icyfire.me/wp-content/uploads/2009/10/unetbootin-puppy-linux-usb_2.png" alt="" /><br />
其中pupsave-icyfire.2fs为第一次运行系统后退出系统时保存的session文件，所以应该排除出这个列表。<br />
发现用UNetbootin制作出来的文件比用Flashboot制作出来多不少。</p>
<p><strong>修改配置文件：</strong><br />
系统安装到U盘后并不是直接就能用了，还需要对配置文件syslinux.cfg进行一点修改。用编辑器打开syslinux.cfg，把最后那句：<br />
<strong>append initrd=/initrd.gz pmedia=cd</strong><br />
改为：<br />
<strong>append initrd=/initrd.gz pmedia=usbflash</strong><br />
最后配置文件应该如下：<br />
default vesamenu.c32<br />
prompt 1<br />
menu title UNetbootin<br />
timeout 100</p>
<p>label unetbootindefault<br />
menu label Default<br />
kernel /ubnkern<br />
append initrd=/ubninit pmedia=cd</p>
<p>label ubnentry0<br />
menu label puppy<br />
kernel /vmlinuz<br />
append initrd=/initrd.gz pmedia=usbflash<br />
事实上里面的另外一个启动是多余的，可以自行删掉，只留下Puppy Linux。</p>
<p>重启电脑，启动方式改为USB HDD，没有意外的话就能进入Puppy Linux系统了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icyfire.me/2009/10/%e7%94%a8unetbootin%e5%ae%89%e8%a3%85puppy-linux%e5%88%b0u%e7%9b%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[WP]清理WordPress日志的修订版</title>
		<link>http://www.icyfire.me/2008/11/wp%e6%b8%85%e7%90%86wordpress%e6%97%a5%e5%bf%97%e7%9a%84%e4%bf%ae%e8%ae%a2%e7%89%88/</link>
		<comments>http://www.icyfire.me/2008/11/wp%e6%b8%85%e7%90%86wordpress%e6%97%a5%e5%bf%97%e7%9a%84%e4%bf%ae%e8%ae%a2%e7%89%88/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 10:47:12 +0000</pubDate>
		<dc:creator>icyfire</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.onlyif.cn/?p=652</guid>
		<description><![CDATA[最近写日志，发现日志的id跟上一篇不是连续的，有时甚至相差10。莫名其妙下我就去数据库查询下日志的主表wp_posts 了，一看还真吓了一跳，发现里面很多类似重复的记录。当然它们不是重复，不过只有一条才是日志的本体，其他只是它的修订版（revision）。就是说，你每修改一次，就会增加一个修订版。怪不得日志的id数突然到了600多……冗余的记录比真正用到的记录足足多了几倍，这对网站的性能明显会带来或多或少的影响。不否认修改版具有一定的用处，但是对我来说这用处几乎是零……

很明显，我会把这些冗余记录删掉，最傻的做法就是直接执行sql删掉(删除前记得备份下数据库……)。sql语句如下：
<pre lang="sql">
DELETE FROM wp_posts WHERE post_type = 'revision';
</pre>
但是这明显不是个什么好方法，我可不想整天登录PhpMyAdmin。于是今天上Wordpress中文论坛时看到一篇帖子，说的就是WP的Revision问题，里面介绍了一个清理Revision的插件：Revision Manager。下载回来装上，轻松就完成了Revision的清理^^

详情可以查看以下地址：
<a href="http://blog.gohsy.com/topics/delete-revision-plugin.html">http://blog.gohsy.com/topics/delete-revision-plugin.html</a>

<a href="/wp-content/uploads/2008/11/del_revision_001.gif"><img src="/wp-content/uploads/2008/11/del_revision_001_t.gif" alt="" width="500" /></a>

<a href="/wp-content/uploads/2008/11/del_revision_002.gif"><img src="/wp-content/uploads/2008/11/del_revision_002_t.gif" alt="" width="500" /></a>

<a href="/wp-content/uploads/2008/11/del_revision_003.gif"><img src="/wp-content/uploads/2008/11/del_revision_003_t.gif" alt="" width="500" /></a>

<a href="/wp-content/uploads/2008/11/del_revision_004.gif"><img src="/wp-content/uploads/2008/11/del_revision_004_t.gif" alt="" width="500" /></a>

事实上，如果你真的不需要这些Revision，你只需要在配置文件里把这个功能关掉就行了。
打开wp-config.php，增加如下一句：
<pre lang="php">define('WP_POST_REVISIONS', false);</pre>
好了，世界清静了。

2.7版本出来后，发现上面那个方法没用了……
但是还是找到新的方法，把之前wp-config.php里的那句改为：
<pre lang="php">define('WP_POST_REVISIONS', 0);
define('AUTOSAVE_INTERVAL', 600);</pre>
但是为什么要设置AUTOSAVE_INTERVAL这点我就不太清楚了。

另外还可以使用Revision Control这个插件对 revision进行控制。详情可以到<a href="http://wordpress.org/extend/plugins/revision-control/">这里</a>看看。]]></description>
			<content:encoded><![CDATA[<p>最近写日志，发现日志的id跟上一篇不是连续的，有时甚至相差10。莫名其妙下我就去数据库查询下日志的主表wp_posts 了，一看还真吓了一跳，发现里面很多类似重复的记录。当然它们不是重复，不过只有一条才是日志的本体，其他只是它的修订版（revision）。就是说，你每修改一次，就会增加一个修订版。怪不得日志的id数突然到了600多……冗余的记录比真正用到的记录足足多了几倍，这对网站的性能明显会带来或多或少的影响。不否认修改版具有一定的用处，但是对我来说这用处几乎是零……</p>
<p>很明显，我会把这些冗余记录删掉，最傻的做法就是直接执行sql删掉(删除前记得备份下数据库……)。sql语句如下：</p>

<div class="wp_syntax"><div class="code"><pre class="sql"><span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">FROM</span> wp_posts <span style="color: #993333; font-weight: bold;">WHERE</span> post_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'revision'</span>;</pre></div></div>

<p>但是这明显不是个什么好方法，我可不想整天登录PhpMyAdmin。于是今天上Wordpress中文论坛时看到一篇帖子，说的就是WP的Revision问题，里面介绍了一个清理Revision的插件：Revision Manager。下载回来装上，轻松就完成了Revision的清理^^</p>
<p>详情可以查看以下地址：<br />
<a href="http://blog.gohsy.com/topics/delete-revision-plugin.html">http://blog.gohsy.com/topics/delete-revision-plugin.html</a></p>
<p><a href="/wp-content/uploads/2008/11/del_revision_001.gif" rel="lightbox"><img src="/wp-content/uploads/2008/11/del_revision_001_t.gif" alt="" width="500" /></a></p>
<p><a href="/wp-content/uploads/2008/11/del_revision_002.gif" rel="lightbox"><img src="/wp-content/uploads/2008/11/del_revision_002_t.gif" alt="" width="500" /></a></p>
<p><a href="/wp-content/uploads/2008/11/del_revision_003.gif" rel="lightbox"><img src="/wp-content/uploads/2008/11/del_revision_003_t.gif" alt="" width="500" /></a></p>
<p><a href="/wp-content/uploads/2008/11/del_revision_004.gif" rel="lightbox"><img src="/wp-content/uploads/2008/11/del_revision_004_t.gif" alt="" width="500" /></a></p>
<p>事实上，如果你真的不需要这些Revision，你只需要在配置文件里把这个功能关掉就行了。<br />
打开wp-config.php，增加如下一句：</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'WP_POST_REVISIONS'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>好了，世界清静了。</p>
<p>2.7版本出来后，发现上面那个方法没用了……<br />
但是还是找到新的方法，把之前wp-config.php里的那句改为：</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'WP_POST_REVISIONS'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'AUTOSAVE_INTERVAL'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>但是为什么要设置AUTOSAVE_INTERVAL这点我就不太清楚了。</p>
<p>另外还可以使用Revision Control这个插件对 revision进行控制。详情可以到<a href="http://wordpress.org/extend/plugins/revision-control/">这里</a>看看。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icyfire.me/2008/11/wp%e6%b8%85%e7%90%86wordpress%e6%97%a5%e5%bf%97%e7%9a%84%e4%bf%ae%e8%ae%a2%e7%89%88/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
