<?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; common</title>
	<atom:link href="http://www.ooso.net/category/common/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ooso.net</link>
	<description>Linux + Apache + Mysql + Php + Flash</description>
	<lastBuildDate>Thu, 11 Mar 2010 17:54:31 +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>LightCloud的设计原理</title>
		<link>http://www.ooso.net/archives/549</link>
		<comments>http://www.ooso.net/archives/549#comments</comments>
		<pubDate>Thu, 11 Mar 2010 17:37:16 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tokyocabinet]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=549</guid>
		<description><![CDATA[LightCloud是最近看到的一个比较轻巧的分布式key-value数据库，尽管这类软件已经让人觉得审美疲劳，但我仍然觉得它的设计思路值得一提。
特色
除开其项目主页上列出来的特点不提，我觉得还能数得上的特色有：


				<span class="readmore"><a href="http://www.ooso.net/archives/549" title="LightCloud的设计原理">阅读全文（1472字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>LightCloud是最近看到的一个比较轻巧的分布式key-value数据库，尽管这类软件已经让人觉得审美疲劳，但我仍然觉得它的设计思路值得一提。</p>
<h2>特色</h2>
<p>除开其项目主页上列出来的特点不提，我觉得还能数得上的特色有：</p>
<ul>
<ol>
<li>理论上可以用任意key-value数据库做为底层存储，现在支持以<a href="http://1978th.net/tokyotyrant/">tokyo tyrant</a>或者<a href="http://code.google.com/p/redis/">redis</a>作为底层的存储，如果使用redis可以获得更好的性能（大概提升30%~50%）</li>
<li>没有定制服务器端，基本上靠客户端语言来实现键值查找。优点是部署起来比较简单，缺点也是显而易见的，效率会有损失。</li>
<li>可以很方便的移植到其它语言上，我已经在github上找到一个ruby版本，甚至还有个php版本的实现。</li>
<li>可以方便的增加节点。</li>
<li>结构简单，方便hack</li>
</ol>
</ul>
<h2>LightCloud的设计原理</h2>
<h3>Hash ring</h3>
<p>LightCloud不能免俗的使用了一致性hash算法（Consistent Hashing），这是为了避免新增数据节点时发生集体拆迁事件。Consistent Hashing算法的原理请参考<a href="http://www.yeeach.com/2009/10/02/consistent-hashing%E7%AE%97%E6"%B3%95/>这里</a>。</p>
<p>last.fm的工作人员写的ketama算法算是比较常见的一致性算法，在libmemcached里大量使用。而LightCloud的作者当时还没发现合适的ketama python版，所以干脆自己捋起袖子写了个python版本的hash_ring，不到50行。这个是量身定制的，所以效率也还过得去，但是兼容ketama就别想了。</p>
<p>献上hash圈圈一个以明志：<br />
<img alt="" src="http://static1.139js.com/system/picture/10528302/600x600/memcached000404-thumb.jpg" title="一致性hash算法原理示意图" class="alignnone" width="600" height="472" /></p>
<h3>LightCloud的hash环有什么与众不同？</h3>
<p>其它分布式key-value数据库采用的办法是复制数据到多个节点上，例如<a href="http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf">Amazon Dynamo</a>的复制策略图：<br />
<a href="http://www.ooso.net/wp-content/uploads/2010/03/dynamo_replication.png"><img src="http://www.ooso.net/wp-content/uploads/2010/03/dynamo_replication.png" alt="" title="dynamo_replication" class="alignnone" /></a></p>
<p>Dynamo用了许多办法解决consistent问题，系统相当复杂。而LightCloud直接使用tokyo tyrant的master-master复制功能，大幅简化了这部分的逻辑。所以在它的hash环上，单个节点其实是一对master-master的tokyo tyrant，焦不离孟不离焦。</p>
<p><a href="http://www.ooso.net/wp-content/uploads/2010/03/lc_replc.png"><img src="http://www.ooso.net/wp-content/uploads/2010/03/lc_replc.png" alt="" title="lc_replc" class="alignnone" /></a></p>
<p>在新增数据节点时，如果没有路由服务找到正确的服务器，可能会损失数据。那么LightCloud继续采用流氓手段解决这个问题，他又给上了个环，保证不会发生意外。这两个hash环里的节点仍然是之前提到的tokyo tyrant双人组，一个环叫<strong>lookup</strong>，记录了每一个key保存在哪个storage节点上；另外一个环叫<strong>storage</strong>，这是真正存放数据的地方。于是它的结构图变成了下面这个样子：</p>
<p><a href="http://www.ooso.net/wp-content/uploads/2010/03/storage_lookup.png"><img src="http://www.ooso.net/wp-content/uploads/2010/03/storage_lookup.png" alt="" title="storage_lookup" class="alignnone" /></a></p>
<p>这部分比较难以理解，试着就上图阐述一下：</p>
<ul>
<ol>
<li>一个名叫A的家伙，住在storage_SB地区(storage ring)。同时，我们还告诉记性好的lookup_B(lookup ring)，A君的地址为storage_SB。</li>
<li>很不幸或很幸运，咱们的数据膨胀到需要扩容了，于是新增了一个违章建筑storge_X，这个该死的建筑正好影响了我们找到A君。这时候，我们还可以问起记性好的lookup_B，A君住在哪个角落里啊？ —— lookup_B日道：他就住在sotrage_SB一带~</li>
<li>lookup这群家伙记性虽然好，但是也架不住人多，再也记不住这么多人的住址，所以又新来了几个记性好的lookup。这个会影响咱们找到storage住哪吗？答案是不会，因为没有新增别的违章storage建筑，咱们不需要问路也能找着人。</li>
</ol>
</ul>
<p>按照以上推论，一定要避免出现同时增加lookup和storage节点，这很可能会损失数据。</p>
<h2>参考网页</h2>
<ul>
<li><a href="http://opensource.plurk.com/LightCloud/">http://opensource.plurk.com/LightCloud/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/549/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git的代码review工具</title>
		<link>http://www.ooso.net/archives/539</link>
		<comments>http://www.ooso.net/archives/539#comments</comments>
		<pubDate>Thu, 11 Feb 2010 15:34:19 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=539</guid>
		<description><![CDATA[facebook在GitHub上托管了大量的开源项目，足足有26个。其中hiphop-php以及xhp在这阵子炒的比较热，的确是让人印象深刻的东西。顺手把别的项目翻出来看，也有很实用的工具，比如git-review。
git-review为git新增了一个很方便的代码review途径，利用这个命令，可以调用别的工具比如vimdiff来review代码的改动。下面简单记录一下使用的过程：
下载并安装
首先确认已经装好了git，剩下的事情比较简单。

				<span class="readmore"><a href="http://www.ooso.net/archives/539" title="git的代码review工具">阅读全文（750字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/facebook">facebook在GitHub上</a>托管了大量的开源项目，足足有26个。其中hiphop-php以及xhp在这阵子炒的比较热，的确是让人印象深刻的东西。顺手把别的项目翻出来看，也有很实用的工具，比如<a href="http://github.com/facebook/git-review">git-review</a>。</p>
<p>git-review为git新增了一个很方便的代码review途径，利用这个命令，可以调用别的工具比如vimdiff来review代码的改动。下面简单记录一下使用的过程：</p>
<h2>下载并安装</h2>
<p>首先确认已经装好了<a href="/?tag=git">git</a>，剩下的事情比较简单。</p>
<div class="igBar"><span id="lcode-4"><a href="#" onclick="javascript:showCodeTxt('code-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">git clone git:<span style="color:#FF9933; font-style:italic;">//github.com/facebook/git-review.git</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">cd git-review</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">python setup.<span style="">py</span> install </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>这几步为git新增了一个review命令。</p>
<h2>git-review的使用</h2>
<h3>查看指定版本的改动</h3>
<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showCodeTxt('code-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-5">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">git review 58e2fb834793f5c6c1fdd900a1c0224a44735962 </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>出现提示</p>
<blockquote><p>
Now processing modified file foo.php<br />
foo.php [diff]&gt;
</p></blockquote>
<p>由于我配置了diff工具为vimdiff，所以接下来就可以用vimdiff查看foo.php在58e2fb834793f5c6c1fdd900a1c0224a44735962这个版本与最新版本之间有什么不同。</p>
<h3>查看两个版本之间的改动</h3>
<div class="igBar"><span id="lcode-6"><a href="#" onclick="javascript:showCodeTxt('code-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-6">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">git review 5b744bdc5f5bcbcfd6bb65f815aebe6bdce8c427 58e2fb834793f5c6c1fdd900a1c0224a44735962 </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>在review每个代码之前，都可以使用help查看git review命令的帮助，如果放弃review，那么直接敲退出就可以了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/539/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用git从svn里clone最后几个版本</title>
		<link>http://www.ooso.net/archives/523</link>
		<comments>http://www.ooso.net/archives/523#comments</comments>
		<pubDate>Sun, 13 Dec 2009 02:44:03 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=523</guid>
		<description><![CDATA[一般情况下git svn clone这个操作会从第一个版本开始同步，如果版本号已经到了好几万（或更高？），这个操作会相当的费时。
当时还想着能不能hack一下git-svn脚本，其实后来看看文档，clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码，因此，更好的步骤应该是这样：



				<span class="readmore"><a href="http://www.ooso.net/archives/523" title="用git从svn里clone最后几个版本">阅读全文（302字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>一般情况下<a href="http://www.ooso.net/archives/520#comment-29022">git svn clone这个操作</a>会从第一个版本开始同步，如果版本号已经到了好几万（或更高？），这个操作会相当的费时。</p>
<p>当时还想着能不能hack一下git-svn脚本，其实后来看看文档，clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码，因此，更好的步骤应该是这样：</p>
<ol>
<ul>
<li>svn info http://your-svn, 并记录最后的版本号，假设是260</li>
<li>假设要检出最后10个版本，做个简单的减法： 260 - 10 = 250</li>
<li>开始clone操作了<br />
		<code>git svn clone -r250:HEAD --prefix=svn/ http://your-svn</code>
	</li>
</ul>
</ol>
<p>按这个办法，clone的时间的确是减少了许多。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/523/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>subcon使用笔记</title>
		<link>http://www.ooso.net/archives/530</link>
		<comments>http://www.ooso.net/archives/530#comments</comments>
		<pubDate>Thu, 10 Dec 2009 00:24:25 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=530</guid>
		<description><![CDATA[在温习flickr的ppt时，看到里面提到了一个叫subcon的工具。由于这个工具已经在google code上开源，所以我毫不客气的下载回来细细端详：


这工具用python写的

				<span class="readmore"><a href="http://www.ooso.net/archives/530" title="subcon使用笔记">阅读全文（745字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>在温习flickr的ppt时，看到里面提到了一个叫<a href="http://code.google.com/p/subcon/">subcon</a>的工具。由于这个工具已经在google code上开源，所以我毫不客气的下载回来细细端详：</p>
<ol>
<ul>
<li>这工具用python写的</li>
<li>用svn保存配置文件，用subcon比较容易的部署到多台服务器上</li>
<li>既然是用svn保存，那么回滚到指定版本也是支持的</li>
<li>SystemImager工具的集成是做为添头附送的，理论上你可以利用这个工具做到一步安装服务器</li>
</ul>
</ol>
<p>初印象就是如此，实际的使用时，你首先要在svn上创建两个目录</p>
<ol>
<ul>
<li>base</li>
<li>roles</li>
</ul>
</ol>
<p>然后可以试着提交一些服务器配置文件例如/etc/hosts到base下,再通过简单命令把配置同步到服务器上<br />
<code>subcon -n</code></p>
<p>也可以指定别的类型的配置文件例如www或者memcache，以服务器apache配置文件/etc/httpd为例：</p>
<ol>
<ul>
<li>创建目录roles/www</li>
<li>提交/etc/httpd目录到roles/www目录下</li>
<li>十来个字符就可以部署这些文件到服务器上
<div class="igBar"><span id="lcode-8"><a href="#" onclick="javascript:showCodeTxt('code-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-8">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">subcon -n -owww </div>
</li>
</ol>
</div>
</div>
</div>
<p></li>
</ul>
</ol>
<p>同样的道理，只要在roles路径下新增各种类型的配置文件，就能比较快捷的部署到服务器上。还有些小功能，需要使用中自己挖掘了:</p>
<ol>
<ul>
<li>更改某个配置文件之后，自动执行指定的命令行，参看/etc/subcon.conf</li>
<li>回滚配置文件到指定版本的功能，这功能一般是在悲剧发生时才会使用吧？所以这个功能也很悲剧的有bug，手工hack一下才能使用。提示：在代码中找到revision字样，用int转换一下类型，命令行参数到了python里面估计都算string了。</li>
<li>如果有多个服务器共用部分配置文件，可以利用svn:externals属性创建一个链接</li>
<li>subcon实际上是python的svn客户端 + rsync</li>
</ul>
</ol>
<p>工具很简单，也有些bug,但是足够用了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/530/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git-svn on cygwin</title>
		<link>http://www.ooso.net/archives/520</link>
		<comments>http://www.ooso.net/archives/520#comments</comments>
		<pubDate>Thu, 09 Apr 2009 22:55:21 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=520</guid>
		<description><![CDATA[开始试用最近比较红的git，我看中的是它的本地版本库功能，即便网络比较烂的时候，也可以在本地提交，等到了合适的时候一并传上去。由于以前的代码版本控制使用的是svn，所以我用git-svn过渡一下。
目前在windows下，最好的git客户端恐怕就是装一个cygwin。鼓捣了一个时辰，整理好一些可用的配置文件，陈列一下以备下次使用：
~/.bash_profile
偶尔还会使用svn验证一下check in的情况，刚转过来不放心啊，下面的配置是为了防止svn命令行乱码。命令行git-svn在/usr/sbin/git-core/路径下，是一个perl脚本，为了方便，我把这个路径加入了PATH环境变量。

				<span class="readmore"><a href="http://www.ooso.net/archives/520" title="Git-svn on cygwin">阅读全文（867字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>开始试用最近比较红的<a href="/?tag=git">git</a>，我看中的是它的本地版本库功能，即便网络比较烂的时候，也可以在本地提交，等到了合适的时候一并传上去。由于以前的代码版本控制使用的是svn，所以我用git-svn过渡一下。</p>
<p>目前在windows下，最好的git客户端恐怕就是装一个cygwin。鼓捣了一个时辰，整理好一些可用的配置文件，陈列一下以备下次使用：</p>
<h2>~/.bash_profile</h2>
<p>偶尔还会使用svn验证一下check in的情况，刚转过来不放心啊，下面的配置是为了防止svn命令行乱码。命令行git-svn在/usr/sbin/git-core/路径下，是一个perl脚本，为了方便，我把这个路径加入了PATH环境变量。</p>
<div class="igBar"><span id="lcode-12"><a href="#" onclick="javascript:showCodeTxt('code-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-12">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">export PATH=$PATH:/usr/sbin/git-core/</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">export SVN_EDITOR=vim</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">export LC_ALL=en_US.<span style="">UTF</span>-<span style="color:#800000;color:#800000;">16</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">export LC_CTYPE=en_US.<span style="">UTF</span>-<span style="color:#800000;color:#800000;">16</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">export LANG=en_US.<span style="">UTF</span>-<span style="color:#800000;color:#800000;">16</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">export XMODIFIERS=@im=Chinput3</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">stty cs8 -istrip</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">stty pass8</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">export LESSCHARSET=latin1 </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>~/.inputrc</h2>
<p>去掉注释即可</p>
<div class="igBar"><span id="lcode-13"><a href="#" onclick="javascript:showCodeTxt('code-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-13">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set meta-flag on</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set convert-meta off</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set input-meta on</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set output-meta on </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>~/.gitconfig</h2>
<div class="igBar"><span id="lcode-14"><a href="#" onclick="javascript:showCodeTxt('code-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-14">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#91;</span>user<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">name = muhaha</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">email = aa@bb.<span style="">cc</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#91;</span>color<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">diff = auto</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">status = auto</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">branch = auto</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#91;</span>alias<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">st = status</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">rb = svn rebase</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ci = commit -a</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">co = checkout </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>常用操作</h2>
<table border="1">
<tr>
<td>clone一个svn</td>
<td>git svn clone -s svn://xxx.xxx.com</td>
</tr>
<tr>
<td>类svn up操作？</td>
<td>git svn rebase</td>
</tr>
<tr>
<td>添加文件</td>
<td>git add xfile</td>
</tr>
<tr>
<td>check in</td>
<td>git ci</td>
</tr>
<tr>
<td>往svn库提交</td>
<td>git svn dcommit</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/520/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>trac使用经验两则</title>
		<link>http://www.ooso.net/archives/443</link>
		<comments>http://www.ooso.net/archives/443#comments</comments>
		<pubDate>Fri, 28 Nov 2008 10:01:36 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=443</guid>
		<description><![CDATA[最近开始使用trac进行项目管理，和svn同步。使用过程中解决了两个并不常见的问题，贴出来和大家分享。

如何修改trac的assign to下拉列表
让trac的ticket和bugzilla有同样的状态

				<span class="readmore"><a href="http://www.ooso.net/archives/443" title="trac使用经验两则">阅读全文（1527字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近开始使用<a href="http://www.edgewall.org">trac</a>进行项目管理，和svn同步。使用过程中解决了两个并不常见的问题，贴出来和大家分享。</p>
<ul>
<li><a href="#droplist">如何修改trac的assign to下拉列表</a></li>
<li><a href="#bugzilla">让trac的ticket和bugzilla有同样的状态</a></li>
</ul>
<h2 id="droplist">如何修改trac的assign to下拉列表</h2>
<p>trac ticket的assign to下拉列表中的名单，没有保存在配置文件里头。读一下TracFaq有下面发现：</p>
<blockquote><p>This will change the Assign To ticket filed into a select box that only contains existing users. However as it says on the TracTickets page, the user must have logged, in at least once, and set their email address.</p>
<p>If you run multiple Trac sites, and have a set of common users across all Trac sites, it gets annoying to have to log into each one and set the email.</p>
<p>So, what is one to do? Well, there are two things that need to be entered into the database: a session record, and an email record.
</p></blockquote>
<p>所以我们只需要对trac的session表做操作就可以修改assign to的下拉菜单列表。session的表结构如下:</p>
<pre>
Table "session"
Column         | Type    | Modifiers
---------------+---------+-----------
sid            | text    | not null
authenticated  | integer | not null
last_visit     | integer |
</pre>
<h2 id="bugzilla">让trac的ticket和bugzilla有同样的状态</h2>
<p>缺省配置下，trac ticket的状态和bugzilla的bug状态不一样，只有new,fixed,invalid,wontfix,duplicate,worksforme这几种。在trac 0.11之后，可以自己定义workflow，只需要将trac.ini的[ticket-workflow]章节修改一下，就可以支持verify状态：</p>
<p><code><br />
accept = new -> assigned<br />
accept.operations = set_owner_to_self<br />
accept.permissions = TICKET_MODIFY<br />
leave = * -> *<br />
leave.default = 1<br />
leave.operations = leave_status<br />
reassign = new,assigned,reopened -> new<br />
reassign.operations = set_owner<br />
reassign.permissions = TICKET_MODIFY<br />
reopen = resolved,verified,closed -> reopened<br />
reopen.operations = del_resolution<br />
reopen.permissions = TICKET_CREATE<br />
resolve = new,assigned,reopened -> resolved<br />
resolve.operations = set_resolution<br />
resolve.permissions = TICKET_MODIFY<br />
verify = resolved -> verified<br />
verify.permissions = TICKET_MODIFY<br />
close = verified -> closed<br />
close.permissions = TICKET_MODIFY<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/443/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>memcached Binary协议的ppt</title>
		<link>http://www.ooso.net/archives/471</link>
		<comments>http://www.ooso.net/archives/471#comments</comments>
		<pubDate>Tue, 23 Sep 2008 12:35:09 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[memcache]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/471</guid>
		<description><![CDATA[memcached 1.3将开始支持Binary Protocol，下面是一篇介绍的ppt。

大概看了一遍，可以认为memcache的binary协议相对原来基于文本的协议，略快一些。key的长度可以到65536(2 bytes)。而memcache 1.3将仍然保持向后兼容，同时支持文本协议和binary协议。
]]></description>
			<content:encoded><![CDATA[<p>memcached 1.3将开始支持Binary Protocol，下面是一篇介绍的ppt。</p>
<p><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=memcachednighttokyo-1221916987381523-9&#038;stripped_title=memcached-binary-protocol-in-a-nutshell-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=memcachednighttokyo-1221916987381523-9&#038;stripped_title=memcached-binary-protocol-in-a-nutshell-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></p>
<p>大概看了一遍，可以认为<a href="/?tag=memcache">memcache</a>的binary协议相对原来基于文本的协议，略快一些。key的长度可以到65536(2 bytes)。而memcache 1.3将仍然保持向后兼容，同时支持文本协议和binary协议。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/471/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wget的亲戚 &#8211; wput</title>
		<link>http://www.ooso.net/archives/468</link>
		<comments>http://www.ooso.net/archives/468#comments</comments>
		<pubDate>Sat, 20 Sep 2008 11:22:50 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[免费软件]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/468</guid>
		<description><![CDATA[世界上最远的距离，是网通到电信 —— 这简直是赤果果的真理！
俺这个狗窝host在南方某个电信机房里，从北京访问页面，速度也还凑合着能过。但是要想通过ftp上传几个文件，几乎是不可能，只有三种情况会发生：

timeout!

				<span class="readmore"><a href="http://www.ooso.net/archives/468" title="wget的亲戚 &#8211; wput">阅读全文（431字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><b>世界上最远的距离，是网通到电信</b> —— 这简直是赤果果的真理！</p>
<p>俺这个狗窝host在南方某个电信机房里，从北京访问页面，速度也还凑合着能过。但是要想通过ftp上传几个文件，几乎是不可能，只有三种情况会发生：</p>
<ol>
<li>timeout!</li>
<li>timeout!</li>
<li>timeout!</li>
</ol>
<p>这天我打算把wordpress升级到最新版本，更新文件就成了个大难题。那么只好找了个server做跳板，用wget的亲戚 - wput来解决文件批量上传的问题：</p>
<div class="igBar"><span id="lcode-16"><a href="#" onclick="javascript:showCodeTxt('code-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-16">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">wput -B wordpress<span style="color:#008000;">/* ftp://xxxxxx.net/xxxx/ </span></div>
</li>
</ol>
</div>
</div>
</div>
<p> </p>
<p>这样一行命令就能把整个wordpress上传到ftp指定目录下。</p>
<h2>wput的参数</h2>
<blockquote><p>
Usage: wput [options] [file]… [url]…<br />
url ftp://[username[:password]@]hostname[:port][/[path/][file]]
</p></blockquote>
<p>注：如果username和password有:, @之类的字符，可以用urlencode编码</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/468/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>sphinx新建索引的一般流程</title>
		<link>http://www.ooso.net/archives/466</link>
		<comments>http://www.ooso.net/archives/466#comments</comments>
		<pubDate>Sat, 20 Sep 2008 09:19:37 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[sphinx]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/466</guid>
		<description><![CDATA[在sphinx中新建索引(不是新增数据)的一般流程：

在sphinx.conf中增加index配置项
手工重建索引，不要使用--rotate参数，例如

				<span class="readmore"><a href="http://www.ooso.net/archives/466" title="sphinx新建索引的一般流程">阅读全文（196字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>在sphinx中新建索引(不是新增数据)的一般流程：</p>
<ul>
<li>在sphinx.conf中增加index配置项</li>
<li>手工重建索引，不要使用--rotate参数，例如
<div class="igBar"><span id="lcode-18"><a href="#" onclick="javascript:showCodeTxt('code-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-18">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.<span style="">conf</span> --all </div>
</li>
</ol>
</div>
</div>
</div>
<p></li>
<li>重启searchd</li>
</ul>
<p>这样才不会产生<a href="/?tag=shpinx">sphinx</a>索引的临时.new.*文件</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/466/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>从memcache中dump所有key的patch</title>
		<link>http://www.ooso.net/archives/465</link>
		<comments>http://www.ooso.net/archives/465#comments</comments>
		<pubDate>Sat, 23 Aug 2008 04:27:41 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[memcache]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=465</guid>
		<description><![CDATA[在邮件组里看到这个补丁，能够将memcache中所有的key dump出来。
I have just finished a patch to dump all keys from memcached.
And I am glad to share this patch to anyone who wants to use it.
In the attachment, there are two python scripts which are used for dump all keys from a memcached server,

				<span class="readmore"><a href="http://www.ooso.net/archives/465" title="从memcache中dump所有key的patch">阅读全文（343字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>在邮件组里看到这个补丁，能够将<a href="/?tag=memcache">memcache</a>中所有的key dump出来。</p>
<blockquote><p>I have just finished a patch to dump all keys from memcached.<br />
And I am glad to share this patch to anyone who wants to use it.</p>
<p>In the attachment, there are two python scripts which are used for dump all keys from a memcached server,<br />
you can find the usage in the example.py script.</p>
<p>Any  questions or advice can mail  to  we_2002 at 163.com </p></blockquote>
<p>用法见example.py</p>
<p>下载:  <a href="http://customcode.googlecode.com/files/memcached-hack.zip">memcached-hack.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/465/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>改用Paint.net</title>
		<link>http://www.ooso.net/archives/427</link>
		<comments>http://www.ooso.net/archives/427#comments</comments>
		<pubDate>Mon, 30 Jun 2008 00:58:38 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[免费软件]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=427</guid>
		<description><![CDATA[曾经我是一个firework用户（firework是当年号称的网页三剑客之一），然而在两年前，脑门子进水开始全部使用免费软件。
当时给firework物色的替代者是gimp，因为gimp也是一款听起来不错的作图软件。两年过去了，我没有成功利用gimp画出一张图片，这个软件功能应该是很强劲的，只是使用习惯上始终无法适应，我可能用windows自带画板的次数还要多一点。
从此改用paint.net，彻底抛弃gimp。


				<span class="readmore"><a href="http://www.ooso.net/archives/427" title="改用Paint.net">阅读全文（374字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>曾经我是一个firework用户（firework是当年号称的网页三剑客之一），然而在两年前，脑门子进水<a href="http://www.ooso.net/index.php/archives/178">开始全部使用免费软件</a>。</p>
<p>当时给firework物色的替代者是gimp，因为gimp也是一款听起来不错的作图软件。两年过去了，我没有成功利用gimp画出一张图片，这个软件功能应该是很强劲的，只是使用习惯上始终无法适应，我可能用windows自带画板的次数还要多一点。</p>
<p>从此改用<a href="http://www.getpaint.net">paint.net</a>，彻底抛弃gimp。</p>
<p><img src="http://www.getpaint.net/screenshots/pdn310_car_thumb.jpg" alt="paint.net" /></p>
<blockquote><p>Paint.NET是一个图像和照片处理软件，它由华盛顿州立大学的学生开发和维护并由微软公司提供项目指导，早期定位于MS Paint的免费替代软件，现在逐渐发展为一个功能强大且易用的的图像和照片处理软件，支持图层，无限制的历史记录，特效，和许多实用工具，并且开放源代码和完全免费，界面看起来有点像Photoshop。该软件的开发语言是C#。 </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/427/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>diablo3终于是露脸了</title>
		<link>http://www.ooso.net/archives/434</link>
		<comments>http://www.ooso.net/archives/434#comments</comments>
		<pubDate>Sat, 28 Jun 2008 11:05:08 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[diablo]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=434</guid>
		<description><![CDATA[blizzard终于不再遮掩，即将发布的游戏的确是暗黑破坏神3.进入暴雪首页之后，就是这样一张大大的flash。
试玩视频中可以看到熟悉的野蛮人(但是已是满头白发)，还是让人看着舒心的第三人称视角，这实在是太好了，babarian面对大群怪物，照旧是咆哮几下以壮士气，打击方式，仍然是傻傻的挥砍，还有跳跃攻击:)
目前可以确认一共有五种角色，公布了两种角色野蛮人以及巫医
barbarian

				<span class="readmore"><a href="http://www.ooso.net/archives/434" title="diablo3终于是露脸了">阅读全文（593字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>blizzard终于不再遮掩，即将发布的游戏的确是暗黑破坏神3.进入<a href="http://www.blizzard.com">暴雪首页</a>之后，就是这样一张大大的flash。</p>
<p>试玩视频中可以看到熟悉的野蛮人(但是已是满头白发)，还是让人看着舒心的第三人称视角，这实在是太好了，babarian面对大群怪物，照旧是咆哮几下以壮士气，打击方式，仍然是傻傻的挥砍，还有跳跃攻击:)</p>
<p>目前可以确认一共有五种角色，公布了两种角色野蛮人以及巫医</p>
<h3>barbarian</h3>
<p>野蛮人barbarian仍然是强力的坦克兼近战输出角色，有部分技能沿袭了diablo2，比如跳跃攻击，现在的跳跃攻击看上去有群攻的效果，可惜攻击频率较低，还有野蛮人的终极技能旋风斩也没落下。在20分钟的试玩视频中，可以看到野蛮人新的远程攻击技能，以及类似魔兽世界中战士的冲撞技能。</p>
<h3>Warlock doctor</h3>
<p>巫医类似于前作的死灵法师，可以召唤傀儡攻击，但是攻击方式又不尽相同，傀儡似乎不仅仅是肉盾，还能被击破作为肉弹使用。另外一个没啥特色攻击技能就是抛火蛋，这个技能是不是法师丢出来更靠谱一些？</p>
<h3>从暴雪官方的FAQ来看</h3>
<ol>
<li>所有的角色都可以选择男，女性别</li>
<li>前作中的部分角色会被延续</li>
<li>diablo3的最低配置以及价格尚未确认，要到发布前夕才会透露</li>
<li>将会尽可能的同时出各个语言的版本</li>
<li>除了可以上Battle.net联机游戏以外，也可以在局域网内和朋友一起游戏</li>
</ol>
<p><img src="http://www.ooso.net/wp-content/uploads/2008/06/diablo3.jpg" alt="" title="diablo3" width="500" height="442" class="alignnone size-full wp-image-435" /></p>
<p><a href="http://bbs.viewc.com/forum.php?id=8">diablo3讨论区</a></p>
<p>刚开始玩暗黑2的时候，我大概是20岁的愣头青。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/434/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>使用yahoo pipes烧制RSS集合</title>
		<link>http://www.ooso.net/archives/420</link>
		<comments>http://www.ooso.net/archives/420#comments</comments>
		<pubDate>Wed, 11 Jun 2008 23:13:37 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=420</guid>
		<description><![CDATA[看着Google Reader里日益庞大的rss清单，大量的内容一个个浮上来，却没得时间一一细看，这里头实在是有很多我不希望看到的内容存在。若是取消订阅，又显得可惜。
因此我是迫切希望有一个RSS过滤网，滤掉部分内容再仔细阅读。前阵子也花了点时间写了个小小的rss过滤程序，写了一半因为时间关系暂时搁置。这时候想起pipes.yahoo.com似乎能实现类似功能，下边就用pipes烧了几个平常看的rss，然后用Google Reader重新订阅，效果倒也不错。
pipes
http://pipes.yahoo.com/fronend/devel

				<span class="readmore"><a href="http://www.ooso.net/archives/420" title="使用yahoo pipes烧制RSS集合">阅读全文（453字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>看着Google Reader里日益庞大的rss清单，大量的内容一个个浮上来，却没得时间一一细看，这里头实在是有很多我不希望看到的内容存在。若是取消订阅，又显得可惜。</p>
<p>因此我是迫切希望有一个RSS过滤网，滤掉部分内容再仔细阅读。前阵子也花了点时间写了个小小的<a href="/?tag=rss">rss</a>过滤程序，写了一半因为时间关系暂时搁置。这时候想起<a href="http://pipes.yahoo.com">pipes.yahoo.com</a>似乎能实现类似功能，下边就用pipes烧了几个平常看的rss，然后用Google Reader重新订阅，效果倒也不错。</p>
<h3>pipes</h3>
<p><a href="http://pipes.yahoo.com/fronend/devel">http://pipes.yahoo.com/fronend/devel</a></p>
<p>pipes现在可以支持自定义url了，所以你才可以看到这么短的一个pipes url。根据我的观察，发现要输出较短的rss url也不是难事，如下：</p>
<p><a href="http://pipes.yahoo.com/fronend/devel?_render=rss">http://pipes.yahoo.com/fronend/devel?_render=rss</a></p>
<p>BTW:在烧制rss的过程中，有部分utf-8的内容显示为乱码，只要用feedsky先处理一遍，然后加到pipes里头就正常了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/420/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>facebook平台真的开源了</title>
		<link>http://www.ooso.net/archives/413</link>
		<comments>http://www.ooso.net/archives/413#comments</comments>
		<pubDate>Tue, 03 Jun 2008 01:04:13 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/413</guid>
		<description><![CDATA[facebook平台开源了，这次开源的部分是API infrastructure, FQL parser, FBML parser以及FBJS。facebook真是超级彪悍，不需要解释。开放的很彻底，绝对步兵——无码。比某些公司口里喊着开放，实际上还遮遮掩掩要好上百倍。
正在下载中，呆会好好端详一下。
This release includes the API infrastructure, the FQL parser, the FBML parser, and FBJS, as well as implementations of many common methods and tags. We've included samples and some dummy data to help you get started fast.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://developers.facebook.com/fbopen/">facebook平台开源</a>了，这次开源的部分是API infrastructure, FQL parser, FBML parser以及FBJS。facebook真是超级彪悍，不需要解释。开放的很彻底，绝对步兵——无码。比某些公司口里喊着开放，实际上还遮遮掩掩要好上百倍。</p>
<p>正在下载中，呆会好好端详一下。</p>
<blockquote><p>This release includes the API infrastructure, the FQL parser, the FBML parser, and FBJS, as well as implementations of many common methods and tags. We've included samples and some dummy data to help you get started fast.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/413/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>测试feedsky的ping功能</title>
		<link>http://www.ooso.net/archives/412</link>
		<comments>http://www.ooso.net/archives/412#comments</comments>
		<pubDate>Mon, 02 Jun 2008 06:38:22 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/412</guid>
		<description><![CDATA[自从开始使用feedsky的来烧制feed之后，更新就成了一个问题。我很早就添加了feedsky的ping服务，但是好像一直没有生效，往往在发布了1小时之后，还没有看到feedsky上的feed更新，最后还得去手工更新一把。
小小的调整了一下，这篇blog算是对ping功能的再次测试，希望能够奏效。
今天开始rss改成全文输出。
update

				<span class="readmore"><a href="http://www.ooso.net/archives/412" title="测试feedsky的ping功能">阅读全文（510字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>自从开始使用feedsky的来烧制feed之后，更新就成了一个问题。我很早就添加了feedsky的ping服务，但是好像一直没有生效，往往在发布了1小时之后，还没有看到feedsky上的feed更新，最后还得去手工更新一把。</p>
<p>小小的调整了一下，这篇blog算是对<a href="/?tag=ping">ping</a>功能的再次测试，希望能够奏效。</p>
<p>今天开始rss改成全文输出。</p>
<h2>update</h2>
<ul>
<li>feedsky抽风了，根本不更新 6.4</li>
<li>也许是发牢骚有被人知道了，抓取频率貌似提高了很多，看来不爽就要喊出来啊
<pre>
正常 :      2008-06-03 05:46:56     [200] : 已更新
正常 :      2008-06-03 05:13:49     [304] : 客户端通知未更新
正常 :      2008-06-03 04:46:59     [304] : 客户端通知未更新
正常 :      2008-06-03 04:31:51     [304] : 客户端通知未更新
正常 :      2008-06-03 03:46:58     [304] : 客户端通知未更新
正常 :      2008-06-03 03:13:50     [304] : 客户端通知未更新
正常 :      2008-06-03 03:09:13     [304] : 客户端通知未更新
正常 :      2008-06-03 02:56:14     [304] : 客户端通知未更新
</pre>
</li>
<li>ping失败了 17:00</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/412/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>如何去除雅虎通9.0 beta自带的广告</title>
		<link>http://www.ooso.net/archives/388</link>
		<comments>http://www.ooso.net/archives/388#comments</comments>
		<pubDate>Sun, 06 Apr 2008 00:55:48 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[ntfs]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=388</guid>
		<description><![CDATA[不请自来的广告总是不招人待见的，在安装了雅虎通9.0 beta之后，越发对这东东最下方的广告感到厌恶，所以我想方设法找一些能去掉广告的办法。虽然说总是能搜到一些去除广告的patch，但是莫名其妙的来自某个山寨的patch可能比不请自来的广告更加危险，所以我还是希望能手动解决这个问题。
For Windows XP用户

确定你的雅虎通安装目录所在的磁盘是ntfs格式

				<span class="readmore"><a href="http://www.ooso.net/archives/388" title="如何去除雅虎通9.0 beta自带的广告">阅读全文（597字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>不请自来的广告总是不招人待见的，在安装了雅虎通9.0 beta之后，越发对这东东最下方的广告感到厌恶，所以我想方设法找一些能去掉广告的办法。虽然说总是能搜到一些去除广告的patch，但是莫名其妙的来自某个山寨的patch可能比不请自来的广告更加危险，所以我还是希望能手动解决这个问题。</p>
<h3>For Windows XP用户</h3>
<ul>
<li>确定你的雅虎通安装目录所在的磁盘是<a href="/index.php?tag=ntfs">ntfs</a>格式</li>
<li>确保雅虎通不在运行状态</li>
<li>
编辑<strong>C:\Program Files\Yahoo!\Messenger\Cache\</strong>下的<strong>urls.xml</strong>，删除其中的广告行（Messenger Ad和Idle Messenger Ad），保存并关闭。</li>
<li>右键点击urls.xml，查看属性，设置为只读</li>
<li>选择安全->高级(若文件夹属性窗口中没有发现“安全”选项卡时，你只要在资源管理器窗口中，选择“工具→文件夹选项”命令，在弹出的窗口中选择“查看”选项卡，然后将“高级设置”列表中的“使用简单文件共享”复选框的勾选标记去掉即可。)</li>
<li>去除所有用户的全部权限，保证urls.xml是只读的</li>
<li>启动雅虎通，这个时候应该没有广告了</li>
</ul>
<h3>For Windows Vista x32用户</h3>
<p>未经测试，但是觉得很有趣，围死它用户可以试试。</p>
<p>删除<strong>C:\Program Files\Yahoo!\Messenger\Cache</strong>目录下的<strong>urls.xml</strong>文件，然后创建一个名为<strong>urls.xml</strong>的空目录，重新启动<a href="http://www.ooso.net/?tag=yahoo">雅虎</a>通就没有广告了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/388/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>如何把磁盘fat32转ntfs格式</title>
		<link>http://www.ooso.net/archives/387</link>
		<comments>http://www.ooso.net/archives/387#comments</comments>
		<pubDate>Sat, 05 Apr 2008 09:25:29 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[ntfs]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=387</guid>
		<description><![CDATA[首先我认为磁盘fat32转ntfs格式这不是一个需要什么高深技术的问题，因为解决方案很早就存在，随便搜索一下都能找到一大把无比正确的解决办法，例如：
在命令提示符下键入convert [driver] /fs:ntfs即可
其中driver是想转换的盘符convert [driver] /fs:ntfs之间有空格
Win 2000/XP 自带了将FAT或FAT32分区转换成NTFS分区的一个小程序—Convert.exe，它不但转换速度快、简单易用，而且原来该分区上的数据还可以继续保存下来

				<span class="readmore"><a href="http://www.ooso.net/archives/387" title="如何把磁盘fat32转ntfs格式">阅读全文（588字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>首先我认为磁盘fat32转ntfs格式这不是一个需要什么高深技术的问题，因为解决方案很早就存在，随便搜索一下都能找到一大把无比正确的解决办法，例如：</p>
<blockquote><p>在命令提示符下键入convert [driver] /fs:ntfs即可<br />
其中driver是想转换的盘符convert [driver] /fs:ntfs之间有空格</p>
<p>Win 2000/XP 自带了将FAT或FAT32分区转换成NTFS分区的一个小程序—Convert.exe，它不但转换速度快、简单易用，而且原来该分区上的数据还可以继续保存下来<br />
在win运行窗口，输入“Convert C: /fs:ntfs”；如果要转换D盘，只要将“C:”改成相应的“D:”即可。转换完成后，它会向你报告你所转换的磁盘分区情况。<br />
注意事项:<br />
1、建议先执行磁盘扫描、磁盘碎片整理程序。<br />
2、如果你要转换的FAT或FAT32分区上面有文件正被系统使用，那么在转换时，转换程序将会询问你是否卸下要转换的卷（即分区），这时最好选择“否”，最后它就会询问你是否在下一次计算机启动时转换分区，选择“是”并重新启动机器即可完成转换。</p></blockquote>
<p>但是今天在家里的老本本(Evo N610c)上，遇到了史无前例的挫折。俺企图把c盘的fat32转成<a href="/index.php?tag=ntfs">ntfs</a>，相当的失败，每次都是转换了一半自动关机，重新开机又会自动进入转换状态，如此循环，直至俺崩溃为止。也许我该换个更人性化的工具来实现这一阶段性目标。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/387/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>推荐一个16进制编辑器</title>
		<link>http://www.ooso.net/archives/385</link>
		<comments>http://www.ooso.net/archives/385#comments</comments>
		<pubDate>Thu, 03 Apr 2008 10:47:24 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[免费软件]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=385</guid>
		<description><![CDATA[因为机器上的非免费软件已经被清理出局了，所以我在寻找一个ultraedit的替代品，这个编辑器能直接编辑16进制文件(比如xxx.exe)。
搜索的结果是： HxD - Freeware Hex Editor and Disk Editor，大小只有747k，免安装，很小巧的绿色软件。 
HxD is a carefully designed and fast hex editor including raw disk editing, modifying foreign RAM and handling files of any size. Its clear interface offers searching/replacing, exporting, checksums/digests, insertion of byte patterns, a file shredder, concatenation or splitting of files, statistics and more.

				<span class="readmore"><a href="http://www.ooso.net/archives/385" title="推荐一个16进制编辑器">阅读全文（941字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>因为<a href="http://www.ooso.net/index.php/archives/178">机器上的非免费软件已经被清理出局了</a>，所以我在寻找一个ultraedit的替代品，这个编辑器能直接编辑16进制文件(比如xxx.exe)。</p>
<p>搜索的结果是： <a href="http://mh-nexus.de/hxd/">HxD - Freeware Hex Editor and Disk Editor</a>，大小只有747k，免安装，很小巧的绿色软件。 </p>
<blockquote><p>HxD is a carefully designed and fast hex editor including raw disk editing, modifying foreign RAM and handling files of any size. Its clear interface offers searching/replacing, exporting, checksums/digests, insertion of byte patterns, a file shredder, concatenation or splitting of files, statistics and more.</p></blockquote>
<p>再贴一点feature list</p>
<blockquote><p>    *  RAM-Editing with data-folding<br />
    * Disk-Editing (Hard disk, Zip-disk, CD, ...)<br />
      (Win9x, WinNT and higher)<br />
    * flexible and fast searching and replacing of strings (including Unicode), hex-values, integers and floats<br />
    * File compare (simple)<br />
    * view data in Ansi, DOS, EBCDIC, Macintosh charsets<br />
    * Checksum-Generator: Checksum, CRCs, Custom CRC, SHA-1, SHA-512, MD5, ...<br />
    * exporting of data to source code (Pascal, C, Java) or as formatted output (plain text, HTML, Richtext, TeX)<br />
    * basic data analysis (statistics)<br />
    * no file size limit<br />
    * byte grouping<br />
    * hex only or text only modes<br />
    * highlighting of modified data<br />
    * unlimited Undo</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/385/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>话说“yahoo低价域名”的续费</title>
		<link>http://www.ooso.net/archives/369</link>
		<comments>http://www.ooso.net/archives/369#comments</comments>
		<pubDate>Thu, 09 Aug 2007 00:49:31 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/369</guid>
		<description><![CDATA[去年在Yahoo的small business以低价购入一个域名，当时的打折价是1.9$，觉得非常超值。
一转眼，一年的时间过去了。早在一个月以前，我就开始琢磨过续费的事情怎么处理。有三条出路：



				<span class="readmore"><a href="http://www.ooso.net/archives/369" title="话说“yahoo低价域名”的续费">阅读全文（376字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>去年在<a href="http://www.ooso.net/index.php/archives/216">Yahoo的small business以低价购入一个域名</a>，当时的打折价是1.9$，觉得非常超值。</p>
<p>一转眼，一年的时间过去了。早在一个月以前，我就开始琢磨过续费的事情怎么处理。有三条出路：</p>
<ul>
<ol>
<li>放弃域名，不要了</li>
<li>转到国内的某些域名机构，享受中国国情的域名待遇</li>
<li>直接在yahoo续费</li>
</ol>
</ul>
<p>第一个法子那是开玩笑，当不得真。如果选第二条，大概续费的费用会少一些，一年的费用是60￥，但是随之而来的问题就是备案啊，如果有论坛程序，就得被和谐啦，这也是很让我抓头的一件事情。第三个，最简单，Yahoo会直接从信用卡里扣除续费的费用，大概是10$左右，是要贵上那么一点，但是考虑到最近的人民币升值，这个压力似乎也不是太大，而且关键是很省心，无限二级域名，备案嘛，这个事情以后再说。</p>
<p>小九九算了老半天，最后还是选择了第三个方案。今天上网上银行看了看，10$被自动扣除，一点也不心疼。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/369/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>BT是什么意思</title>
		<link>http://www.ooso.net/archives/349</link>
		<comments>http://www.ooso.net/archives/349#comments</comments>
		<pubDate>Thu, 05 Jul 2007 22:48:41 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[bt]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/349</guid>
		<description><![CDATA[我想，小日本可能很难理解BT这一词的具体含义。这个网络词汇本身就具有BT精神，大家就是乐见这样一种情形 —— 当我嘴里吐出一个新名词，而对方却茫然不知所谓，只能陪着傻笑。
上面的感叹是因为无意中看到一个反向链接：［シナ］日本人が才能の無駄づかいをしている件について，大概是上次的“小日本果然BT”引发的讨论。
“搞” == “fuck”
文中使用机器翻译了俺的部分文字以及评论

				<span class="readmore"><a href="http://www.ooso.net/archives/349" title="BT是什么意思">阅读全文（382字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>我想，小日本可能很难理解<strong>BT</strong>这一词的具体含义。这个网络词汇本身就具有BT精神，大家就是乐见这样一种情形 —— 当我嘴里吐出一个新名词，而对方却茫然不知所谓，只能陪着傻笑。</p>
<p>上面的感叹是因为无意中看到一个反向链接：<a href="http://ikketushugi.info/blog/2007/06/post_87.html">［シナ］日本人が才能の無駄づかいをしている件について</a>，大概是上次的“<a href="http://www.ooso.net/index.php/archives/340">小日本果然BT</a>”引发的讨论。</p>
<h2>“搞” == “fuck”</h2>
<p>文中使用机器翻译了俺的部分文字以及评论</p>
<blockquote><p>
“God, 搞不好哪天BTs用HTML标记code个即时渲染web anime.”</p></blockquote>
<p>这段话居然被翻译为：</p>
<blockquote><p>“神ktkr!　FuckなHentaiがhtmlタグcodeを使ってすごい勢いで web anime を描く.”</p></blockquote>
<p>很让人啼笑皆非的一件事情。</p>
<h2>BT != BitTorrent</h2>
<h3>补充</h3>
<p><b>BT的解释一</b><br />
BitTorrent的缩写，一种p2p下载的简称，特点是下载的人越多，下载速度越快。</p>
<p><b>BT的解释二</b><br />
“变态”的拼音缩写，最早见于猫扑</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/349/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>小日本果然BT</title>
		<link>http://www.ooso.net/archives/340</link>
		<comments>http://www.ooso.net/archives/340#comments</comments>
		<pubDate>Wed, 27 Jun 2007 01:42:43 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[bt]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/340</guid>
		<description><![CDATA[你可能不知道，table还能这样用...
]]></description>
			<content:encoded><![CDATA[<p>你可能不知道，table还能这样用...</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/NqFOB77jLaE"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/NqFOB77jLaE" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/340/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>优化AWSTATS性能的7个建议</title>
		<link>http://www.ooso.net/archives/331</link>
		<comments>http://www.ooso.net/archives/331#comments</comments>
		<pubDate>Fri, 22 Jun 2007 23:15:19 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[awstats]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/331</guid>
		<description><![CDATA[对于一个访问量巨大的网站来说，使用awstats来分析其日志是一件很痛苦的事情，这往往需要耗费很多时间才能得到一个结果，偶尔还会让机器内存耗尽。在awstats的文档中，找到几个关于性能优化的建议，如下：

关掉DNSLookup(DNSLookup不能设置为1). 虽然这样你会丢失一些关于访问者的国家信息，但是我觉得这无关紧要，大部分网站的访问者集中在国内。这样能给awstats性能带来小小提升。
小心使用这三个参数： URLWithQuery, URLReferrerWithQuery ,URLWithAnchor (如果你不知道它们有什么作用最好设置为0) 

				<span class="readmore"><a href="http://www.ooso.net/archives/331" title="优化AWSTATS性能的7个建议">阅读全文（623字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>对于一个访问量巨大的网站来说，使用<a href="http://awstats.sf.net">awstats</a>来分析其日志是一件很痛苦的事情，这往往需要耗费很多时间才能得到一个结果，偶尔还会让机器内存耗尽。在awstats的文档中，找到几个关于性能优化的建议，如下：</p>
<ul>
<li>关掉DNSLookup(DNSLookup不能设置为1). 虽然这样你会丢失一些关于访问者的国家信息，但是我觉得这无关紧要，大部分网站的访问者集中在国内。这样能给awstats性能带来小小提升。</li>
<li>小心使用这三个参数： URLWithQuery, URLReferrerWithQuery ,URLWithAnchor (如果你不知道它们有什么作用最好设置为0) </li>
<li>使用最新版本的perl (例如Perl 5.8比5.6要快上5%) 。另外比较重要的一点，用标准版本的perl代替ActiveState版本的perl，因为ActiveState 5.006有内存泄漏方面的问题，它在解析日志的时候会越来越慢最终一行日志也跑不动。</li>
<li>回卷日志。尽可能的把日志分成更小的一份，这样awstats能处理的快一些，可以适当提高awstats解析频率.</li>
<li>确认HostAliases参数是完整的</li>
<li>使用最新版本的AWStats (例如AWStats 6.0比5.9快15%).</li>
<li>某些geeks,你可以考虑采用不同的参数来重新编译perl，例如使用"use64bitint=define usemymalloc=y"编译perl,这样perl的速度能提升10%. </li>
</ul>
<p>原文见<a href="http://awstats.sourceforge.net/docs/awstats_benchmark.html#ADVICES">awstats benchmark</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/331/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何用imagemagick在图片上写中文</title>
		<link>http://www.ooso.net/archives/322</link>
		<comments>http://www.ooso.net/archives/322#comments</comments>
		<pubDate>Wed, 20 Jun 2007 23:33:40 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[imagemagick]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/322</guid>
		<description><![CDATA[如何用imagemagick在图片上写中文？在帮助文档中找到的最简单的例子：
convert -background lightblue -fill blue \
           -font SimSun -pointsize 48 label:@chinese_words.utf8 \
           label_utf8.gif

				<span class="readmore"><a href="http://www.ooso.net/archives/322" title="如何用imagemagick在图片上写中文">阅读全文（414字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>如何用imagemagick在图片上写中文？在帮助文档中找到的最简单的例子：</p>
<p><code>convert -background lightblue -fill blue \<br />
           -font SimSun -pointsize 48 label:@chinese_words.utf8 \<br />
           label_utf8.gif</code></p>
<p>需要把中文或多字节文字以utf-8编码写在chinese_words.utf8中，就可以用convert命令在图片上画出中文来。也可以直接在命令行中写中文，但是必须是utf-8编码，如：</p>
<p><code>convert -background lightblue -fill blue \<br />
           -font SimSun -pointsize 48 label:'某人的栖息地' \<br />
           label_utf8.gif</code></p>
<p>最后还要注意的是，-font参数后面必须是中文字体，可以是中文字体文件的绝对路径。</p>
<h1>imagemagick参考文档</h1>
<p><a href="http://www.imagemagick.org/Usage/text/">http://www.imagemagick.org/Usage/text/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/322/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>运行pietty并让它自动最大化</title>
		<link>http://www.ooso.net/archives/332</link>
		<comments>http://www.ooso.net/archives/332#comments</comments>
		<pubDate>Tue, 19 Jun 2007 00:04:27 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[pietty]]></category>
		<category><![CDATA[免费软件]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/332</guid>
		<description><![CDATA[还记得曾经列举了一些“正在用的免费软件”，其中俺最常用的软件当属pietty了。
这个pietty打开后就是一张黑脸，谈不上赏心悦目，俺每天就要对着这张黑脸打一些花花绿绿的字母。pietty存在一个小小的问题，在打开后不能放大到全屏，虽说它能够记住上次被拖拽后的窗口大小，但是这个大小一来不太稳定，二来每次新增一个session可能都要鼓捣一遍，所以最后我就习惯了双击窗口最上方的蓝条——windows下标准的窗体最大化操作。按照每天登录两次pietty算，一个月需要登录pietty高达60次，为了让窗体最大化，我额外花费的点击就是60x2=120次，一年下来差不多1500次。这个时间说多不多，说少不少，最可恨的还是重复性的劳动。

				<span class="readmore"><a href="http://www.ooso.net/archives/332" title="运行pietty并让它自动最大化">阅读全文（417字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>还记得曾经列举了一些“<a href="http://www.ooso.net/index.php/archives/178">正在用的免费软件</a>”，其中俺最常用的软件当属<a href="http://www.csie.ntu.edu.tw/~piaip/pietty/">pietty</a>了。</p>
<p>这个pietty打开后就是一张黑脸，谈不上赏心悦目，俺每天就要对着这张黑脸打一些花花绿绿的字母。pietty存在一个小小的问题，在打开后不能放大到全屏，虽说它能够记住上次被拖拽后的窗口大小，但是这个大小一来不太稳定，二来每次新增一个session可能都要鼓捣一遍，所以最后我就习惯了双击窗口最上方的蓝条——windows下标准的窗体最大化操作。按照每天登录两次pietty算，一个月需要登录pietty高达60次，为了让窗体最大化，我额外花费的点击就是60x2=120次，一年下来差不多1500次。这个时间说多不多，说少不少，最可恨的还是重复性的劳动。</p>
<p>好在万恶的windows功能强大，偶然间让俺发现了让pietty自动最大化的办法。这个办法其实很简单：</p>
<ul>
<li>给pietty.exe创建一个快捷方式到桌面 </li>
<li>右键点pietty快捷方式-&gt;属性</li>
<li>将运行方式修改为<strong>最大化</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/332/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>郁闷死的flickr pro用户</title>
		<link>http://www.ooso.net/archives/324</link>
		<comments>http://www.ooso.net/archives/324#comments</comments>
		<pubDate>Sun, 10 Jun 2007 00:03:43 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[flickr]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/324</guid>
		<description><![CDATA[啥也不说了，眼泪花花的，俺就是那可怜的pro用户之一 -_- 北京地区终于也看不到图了，这该死的GFW
BTW:俺使用的是北京歌华电视宽带..
]]></description>
			<content:encoded><![CDATA[<p>啥也不说了，眼泪花花的，俺就是那可怜的pro用户之一 -_- 北京地区终于也看不到图了，这该死的<strong>GFW</strong></p>
<p>BTW:俺使用的是北京歌华电视宽带..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/324/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
