<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-85135250382973506</id><updated>2011-11-27T17:15:35.663-08:00</updated><category term='编程'/><category term='未分类'/><category term='互联网'/><category term='娱乐'/><category term='网络技术'/><category term='Linux'/><category term='软件'/><category term='IT'/><title type='text'>Idlecat：别跑偏</title><subtitle type='html'>一个程序员，主攻Linux，网络协议，互联网等一百多个方向，无一精通...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default?start-index=101&amp;max-results=100'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>120</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2772169787901262801</id><published>2009-07-06T19:45:00.000-07:00</published><updated>2009-07-06T20:03:07.379-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='软件'/><title type='text'>用synergy来共享鼠标键盘</title><content type='html'>我工作的地方有两个台式机，一台Windows，一台Linux，各有一个显示器，一套鼠标键盘。我偏偏需要经常在两台机器上频繁切换，因而经常会盯着B机器的显示器却拿着A机器的鼠标猛击。&lt;br /&gt;&lt;br /&gt;很烦！&lt;br /&gt;都要精神分裂了！&lt;br /&gt;想共享鼠标和键盘！&lt;br /&gt;（此处采用梨花体）&lt;br /&gt;&lt;br /&gt;搜了一下，竟然（or当然）有现成的软件，synergy，开源的，支持Windows, Linux。看一下最近一次更新，是在06年，这一般有两个可能：&lt;br /&gt;1. 这个项目已经挂了&lt;br /&gt;2. 这个项目已经足够用了，原作者认为没必要再改进了&lt;br /&gt;&lt;br /&gt;按我一般评估软件的方法，又在Ubuntu的repository里搜了一下，在里面。这说明这软件还比较靠谱。&lt;br /&gt;&lt;br /&gt;然后在两台机器上都安装了，把Windows作为server，Linux做Client，搞定！&lt;br /&gt;&lt;br /&gt;使用效果很好，鼠标可以在两个屏幕间自由移动，鼠标所在的屏幕就是键盘输入的当前屏幕。而且两台机器间可以拷贝、粘贴文本（别的没试过）。现在的感觉就像是一台电脑带两个显示器！&lt;br /&gt;&lt;br /&gt;要是显示器也能共享那就爽了，两个X的话应该没问题，碰到Windows就不好说了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2772169787901262801?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2772169787901262801/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2772169787901262801' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2772169787901262801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2772169787901262801'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2009/07/synergy.html' title='用synergy来共享鼠标键盘'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8057360849606086414</id><published>2009-05-13T20:05:00.000-07:00</published><updated>2009-05-13T20:42:34.542-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><category scheme='http://www.blogger.com/atom/ns#' term='软件'/><title type='text'>长江后浪推前浪，前浪死在沙滩上</title><content type='html'>这话不假啊，前些天过了30岁，感觉又往前站了一站，离沙滩更近了。&lt;div&gt;不过这篇博文不是在这伤怀的，其实这是篇技术相关的Blog，点评一下最近的前浪和后浪。&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Debian用eglibc换掉了glibc，原因是glibc的maintainer太有型了。&lt;/li&gt;&lt;li&gt;FreeBSD将要用CLang替换掉GCC。很早之前俺就说过llvm很有前途的，这不，基于llvm的CLang已经要把GCC拍死在沙滩上了。编译同样程序CLang需要的时间和空间比起GCC有着成倍成倍的提高，更不要说对代码有更多优化了。&lt;/li&gt;&lt;li&gt;Ubuntu和Fedora用upstart换掉了init，Fedora用DeviceKit换掉了HAL。&lt;/li&gt;&lt;li&gt;Ext4文件系统眼见就要替掉Ext3，不过黄雀捕蝉，螳螂在后，btrfs好像才是Linux真正的下一代文件系统。&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;其他还有很多，就不列了。前浪、后浪，只因世界在进步，倒也不需关心前后位次，享受向沙滩前进的过程吧:)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8057360849606086414?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8057360849606086414/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8057360849606086414' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8057360849606086414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8057360849606086414'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2009/05/blog-post.html' title='长江后浪推前浪，前浪死在沙滩上'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5948444095986877203</id><published>2009-05-13T19:53:00.000-07:00</published><updated>2009-05-13T20:03:50.313-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>QObject的删除</title><content type='html'>&lt;div&gt;GGL的用户报了几个Bug，其中有一个相当的严重，Debian sid里的ggl-qt在没有网络连接的情况下会Crash，屡试不爽（看来偶在开发的时候从来没断过网，汗）&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;终于有时间研究这个Bug，发现原来是删除QHttp的方式不对，文档曰，QObject（注：QHttp的基类）的删除在某些情况下（具体去看the F**K Document)不能用delete，而要用QObject::deleteLater。修改之后，Bug即被Fix。再查看剩下的Bug，有几个是竟然这个Bug的马甲，爽，kde那边有几个Bug也是马甲，更爽。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;进而暴汗，自从开发GGL以来觉得对Qt有一定了解了，竟不知QObject::deleteLater。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;特著文以记之！&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5948444095986877203?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5948444095986877203/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5948444095986877203' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5948444095986877203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5948444095986877203'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2009/05/qobject.html' title='QObject的删除'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1946000328480577802</id><published>2009-02-26T06:27:00.000-08:00</published><updated>2009-02-26T06:43:53.748-08:00</updated><title type='text'>压缩相机拍摄视频的简单办法</title><content type='html'>我常跟我老婆说的一句话就是，这事，要放在Linux下我一个命令就全搞定了。&lt;div&gt;现实情况是，大部分时间我都没空去折腾这一个命令。不过最近因为拿相机（松下FZ5，索尼T100）拍了不少视频，眼看就要把硬盘占满了，我不得不考虑在Windows下把这些视频给压缩了。&lt;/div&gt;&lt;div&gt;Google了一下也没找到啥好用的软件，不如自己DIY吧，事实证明，很简单很绿色也很好用，步骤如下：&lt;/div&gt;&lt;div&gt;1. 下载&lt;a href="http://www.mplayerhq.hu"&gt;mplayer&lt;/a&gt;安装之；&lt;/div&gt;&lt;div&gt;2. 将mplayer的安装路径加到PATH里；&lt;/div&gt;&lt;div&gt;3. 创建“压缩.bat"，放到mplayer的安装目录下，内容如下：&lt;/div&gt;&lt;div&gt;mencoder %1 -oac mp3lame -ovc lavc -o %1.avi&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. 右键点击要压缩的视频文件，选择"打开方式"，然后选择刚才创建的"压缩.bat"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;这就OK了，松下FZ5的视频文件会被压缩到1/3，索尼T100的会被压缩1/10。虽然离一条命令就全搞定还差点，但基本够用了，先这样吧！&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1946000328480577802?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1946000328480577802/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1946000328480577802' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1946000328480577802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1946000328480577802'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2009/02/blog-post.html' title='压缩相机拍摄视频的简单办法'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2703981851646733105</id><published>2009-02-24T07:42:00.000-08:00</published><updated>2009-02-24T07:53:12.436-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>我是如何从my.donews.com搬到这里来的</title><content type='html'>my.donews.com用的是wordpress，可以把blog导出到一个xml文件，但是格式blogger不支持。Google一下找到了解决办法，有位仁兄用ruby写了段脚本可以把wordpress格式的xml文件转成blogger的文件。试了一下，就OK了。&lt;br /&gt;网址附上：&lt;a href="http://www.caiwangqin.com/2008/12/import-wordpress-export-file-into.html"&gt;&lt;br /&gt;http://www.caiwangqin.com/2008/12/import-wordpress-export-file-into.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;顺便道一声，谢谢了啊:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2703981851646733105?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2703981851646733105/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2703981851646733105' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2703981851646733105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2703981851646733105'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2009/02/mydonewscom.html' title='我是如何从my.donews.com搬到这里来的'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1541528992302167184</id><published>2009-01-23T18:04:00.000-08:00</published><updated>2009-02-24T07:27:58.878-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='未分类'/><title type='text'>用谷歌趋势(Google Trends)盘点一下即将过去的鼠年</title><content type='html'>&lt;div class="postText"&gt;   &lt;p&gt;明天是大年三十，在年末的时候让我们用谷歌趋势(&lt;a href="http://trends.google.com/"&gt;http://trends.google.com&lt;/a&gt;) 来盘点一下2008年吧，去认识一下这个虽身在其中却不能得其全貌的世界。&lt;/p&gt; &lt;p&gt;先看看Linux有没有从Windows手里抢点份额：&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=windows,+Linux,ubuntu,+fedora,vista&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2008&amp;amp;sort=0"&gt;2008&lt;/a&gt;&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;windows&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;linux&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="18"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.26&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;ubuntu&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="10"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.15&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;fedora&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="2"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.03&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;vista&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="37"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.54&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=windows,+Linux,ubuntu,+fedora,vista&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2007&amp;amp;sort=0"&gt;2007&lt;/a&gt;&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;windows&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;linux&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="21"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.30&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;ubuntu&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="9"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.13&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;fedora&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="2"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.03&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;vista&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="35"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.50&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;恩，没啥起色，倒是Ubuntu相对其他Linux版本的领先优势在拉大。&lt;/p&gt; &lt;p&gt;再看看KDE和Gnome的竞争有啥变化：&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=gnome,kde&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2008&amp;amp;sort=0"&gt;2008&lt;/a&gt;： &gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;gnome&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;kde&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="60"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.87&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://www.google.com/trends?q=gnome,kde&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2007&amp;amp;sort=0"&gt;2007&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;gnome&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;kde&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="59"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.85&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;恩，变化也不大。&lt;/p&gt; &lt;p&gt;看看三大游戏主机的变化吧（拉上ps2和xbox做参考，xbox360名字太长，可能结果不甚准确）。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=ps3,wii,xbox360,xbox,ps2&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2008&amp;amp;sort=0"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;2008&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;ps3&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="53"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;wii&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="69"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.30&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;xbox360&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="7"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.14&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;xbox&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="64"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.20&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;ps2&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="41"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.78&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=ps3,wii,xbox360,xbox,ps2&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2007&amp;amp;sort=0"&gt;2007&lt;/a&gt;:&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;ps3&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="38"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;wii&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="61"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.62&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;xbox360&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="8"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.22&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;xbox&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.84&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;ps2&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="52"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.38&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;看看Google几个服务的流行程度（Yahoo的flickr被拉进来供参考）：&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=gmail,+youtube,+picasa,+google+maps,flickr&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2008&amp;amp;sort=0"&gt;2008&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;gmail&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="13"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;youtube&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;5.15&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;picasa&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="1"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.05&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;google maps&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="3"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.25&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;flickr&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="1"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.05&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://www.google.com/trends?q=gmail,+youtube,+picasa,+google+maps,flickr&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2007&amp;amp;sort=0"&gt;2007&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;gmail&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="24"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;youtube&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="69"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;2.86&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;picasa&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="1"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.04&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;google maps&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="4"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.18&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;flickr&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="1"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.04&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;Youtube的增长喜人呀，即使参照gmail不变，youtube也增长了80%。&lt;/p&gt; &lt;p&gt;看看几个web2.0网站发展如何（脑子短路，只想到3个)。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=digg,twitter,reddit&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2008&amp;amp;sort=0"&gt;2008&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;digg&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="51"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;twitter&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.36&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;reddit&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="10"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.20&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://www.google.com/trends?q=digg,twitter,reddit&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2007&amp;amp;sort=0"&gt;2007&lt;/a&gt;： &gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;digg&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;twitter&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="22"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.32&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;reddit&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="8"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.12&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;再看看社交网站吧：&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=myspace,+facebook,+orkut&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2008&amp;amp;sort=0"&gt;2008&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;myspace&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="38"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;facebook&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="69"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.80&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;orkut&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="13"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.34&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://www.google.com/trends?q=myspace,+facebook,+orkut&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2007&amp;amp;sort=0"&gt;2007&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;myspace&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;facebook&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="28"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.40&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;orkut&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="22"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.32&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Facebook增长得很快呀。&lt;/p&gt; &lt;p&gt;看完IT，来看看咱们中国在08年的影响力是不是增长了，请原谅我这点民族主义好面子情绪:)&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.google.com/trends?q=new+york,+paris,+beijing,china,+tokyo&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2008&amp;amp;sort=0"&gt;2008&lt;/a&gt;：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;new york&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;paris&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="64"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.92&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;beijing&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="18"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.26&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;china&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="32"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.46&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;tokyo&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="8"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.12&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://www.google.com/trends?q=new+york,+paris,+beijing,china,+tokyo&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=2007&amp;amp;sort=0"&gt;2007&lt;/a&gt;:&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;new york&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="68"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;paris&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="69"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.02&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;beijing&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="2"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.04&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;china&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="28"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.42&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;tokyo&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="8"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.12&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;八月份北京的关注度暴涨，之后回归平静，通过以上数据我决定咱们还是先绝不称霸:)&lt;/p&gt; &lt;p&gt;再来关注一下民生，&lt;/p&gt; &lt;p&gt;2008：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;food&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="13"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;sex&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="69"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;5.10&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;house&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="25"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.85&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;travel&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="12"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.90&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;security&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="7"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.55&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;2007：&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;food&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="14"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;sex&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;4.75&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;house&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="27"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.85&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;travel&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="14"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;security&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="8"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;0.55&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;继续以food为参照系：&lt;/p&gt; &lt;p&gt;2008:&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;food&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="28"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;movie&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;2.48&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;sport&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="35"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.26&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;book&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="44"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.56&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;car&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="58"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;2.08&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;2007:&gt;   &lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4684ee;"&gt;&lt;strong&gt;food&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="29"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4684ee"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.00&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#dc3912;"&gt;&lt;strong&gt;movie&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="70"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#dc3912"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;2.40&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#ff9900;"&gt;&lt;strong&gt;sport&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="33"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#ff9900"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.14&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#008000;"&gt;&lt;strong&gt;book&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="38"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#008000"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;1.32&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;span style="font-size:-1;color:#4942cc;"&gt;&lt;strong&gt;car&lt;/strong&gt; &lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;table class="bar" cellspacing="0" width="61"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td bgcolor="#4942cc"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt; &lt;td&gt;&lt;span style="font-size:-2;"&gt;2.12&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;呵呵，整体变化不大，好像全球人民对sex、book的兴趣有较显著的增长。&lt;/p&gt; &lt;p&gt;恩，整了这么多，感觉有点无聊了，到此为止，给各位拜年啦。&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1541528992302167184?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1541528992302167184/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1541528992302167184' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1541528992302167184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1541528992302167184'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2009/01/google-trends.html' title='用谷歌趋势(Google Trends)盘点一下即将过去的鼠年'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5731490131030649018</id><published>2008-08-02T10:18:00.000-07:00</published><updated>2009-02-24T07:19:04.784-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>强力推荐一下谷歌的iGoogle和浏览器插件Yoono</title><content type='html'>用了很长时间iGoogle，一直是暗爽，今天开机选了一个新主题，看着赏心悦目、神清气爽，感觉有必要向各位推荐一下。&lt;br /&gt;&lt;br /&gt;iGoogle 是Google的个性化首页，上面除了有搜索框之外，你还可以放置各种Gadget，这些Gadget有不同的功用，比如查看Email，收藏书签，订阅 Rss Feed，看股票，看天气，等等。它还有一个超赞的功能，就是主题。通过选择一个主题，你的首页马上就变个模样，时常保持新鲜。&lt;br /&gt;最后补充一点，不论是iGoogle上的Gadget，还是iGoogle的主题，都非常容易开发，如果你有想法，又有一定的动手能力，不妨制作一个和大家分享哦。&lt;br /&gt;最后的最后，就是今天选的中国风格主题，这是连接：&lt;br /&gt;http://www.google.com/ig/directory?hl=en&amp;amp;url=skins/teahouse.xml&amp;amp;type=themes&lt;br /&gt;&lt;br /&gt;自己汗一个～～～写到后面有点像枪手文章了。&lt;br /&gt;&lt;br /&gt;再说说Yoono（这个不是Google的产品啦），它是一个浏览器插件，平时蹲在浏览器的侧边栏上，可以完成很多强大功能哦，比如，可以充当MSN、 Yahoo、AOL和GTalk的聊天工具，可以查看、编写Twitter，可以访问Facebook，随时查看好友的更新。&lt;br /&gt;&lt;br /&gt;自从注册FB之后从来没正而八经用过，有了Yonoo，才逐渐开始跟老同学老同事在FB上Social起来。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5731490131030649018?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5731490131030649018/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5731490131030649018' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5731490131030649018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5731490131030649018'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/08/igoogleyoono.html' title='强力推荐一下谷歌的iGoogle和浏览器插件Yoono'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3461848035457739874</id><published>2008-08-02T10:14:00.000-07:00</published><updated>2009-02-24T07:19:04.779-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='娱乐'/><title type='text'>奥运快来了</title><content type='html'>恩，不管怎么说，08年奥运会都是咱们向全世界人展示中国的好时机。相信奥运之后世界人民对咱们中国会有更多的了解。&lt;br /&gt;&lt;br /&gt;作为普通北京（暂住）市民，我也享受了一些奥运的好处，实行单双号之后有一次从单位打车回家仅耗时14分钟，要知道平时这段路走一个小时是很正常的。&lt;br /&gt;&lt;br /&gt;10号线也通车了，坐10号线上班比13号线单程节省大约20分钟，但是10号线基本没座，而且还要换乘一次，不爽，现在还是改坐13号线，肯定有座，路上看看《辛普森》也是很爽的。&lt;br /&gt;&lt;br /&gt;至于看奥运比赛，最后一轮售票的时候散步去售票处瞅了一眼，那人...海了去了。看见路边那一长排人了吗？那还不是排队买票的，那只是排队上厕所的。&lt;br /&gt;&lt;br /&gt;俺也不是那么热心要看啥比赛，唯一感兴趣的是篮球，但小布已经跟老胡要票了，我还怎么好意思开口呢？得，在家看吧，除了气氛差点，视觉效果还更好。邀三五个朋友一块，也很爽。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3461848035457739874?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3461848035457739874/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3461848035457739874' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3461848035457739874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3461848035457739874'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/08/blog-post.html' title='奥运快来了'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7190133780227886603</id><published>2008-07-07T23:51:00.000-07:00</published><updated>2009-02-24T07:19:04.775-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='未分类'/><title type='text'>对股市的一点思考</title><content type='html'>嘘，大家不许笑。从去年入市到现在，在交了高昂的学费之后，应该要反省一下这门功课的得失，欢迎大家补充：&lt;br /&gt;&lt;br /&gt;为什么要有股市？股市让上亿中国股民从大喜到大悲，从天堂到地狱，可能90%的股民在过去一年多时间中损失了他们的相当大部分的财富。这种截贫济富的机制要它干嘛呢？在以前计划经济的时候，是不需要股市的，资源是由国家统一分配的；后来大家认定计划经济不能有效的工作，于是转到市场经济，成立了股市，希望能通过市场手段能达到资源的合理分配。&lt;br /&gt;&lt;br /&gt;但是中国股市可能从来也没执行过这个职能，在最近的这一两年，我所看到的股市就是个庄家恒胜的赌场，是大鱼吃小鱼的渔场，是一茬茬韭菜成长起来、然后被一茬茬收割的菜地（BTW：哪个天才发明的韭菜这个说法，真是太形象了）。资源并没有通过股市合理地分配到社会的相关产业，相反，实业所需要的资金、人才都转投来钱更快的金融行业了。&lt;br /&gt;&lt;br /&gt;现在中国人前所未有的关心金融，关心理财，关心投资，这不见得是件好事情。大部分中国人应该安心做自己的工作就能享受经济增长的好处，但是目前在中国没有这个条件，房价暴涨、股价暴涨都是在赤裸裸的抢劫，国人所做的只是想拼命守住自己的钱袋子。&lt;br /&gt;&lt;br /&gt;可是，事实证明，这种大环境下，他们只能做韭菜。我们国家的经济不应该由某些邪恶的国际银行家来控制，也不应该由一些既得利益者控制。但是如果世界真如《货币战争》所描述的那样险恶，我们应该怎么对策呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7190133780227886603?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7190133780227886603/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7190133780227886603' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7190133780227886603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7190133780227886603'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/07/blog-post_4153.html' title='对股市的一点思考'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-428486016884117722</id><published>2008-07-07T23:10:00.000-07:00</published><updated>2009-02-24T07:19:04.770-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='娱乐'/><title type='text'>马里奥银河不错</title><content type='html'>果然是Wii的看家游戏，不论是画面还是创意都达到了一个更高的境界。&lt;br /&gt;&lt;br /&gt;花了n天时间下了个欧版的马里奥赛车，结果除了给我的Wii添加了两个不能用的频道之外（玩世界大战的时候已经添了两个了），再就是黑屏错误。看来还是下美版或日版靠谱一点，欧版的不太对我的Wii的胃口。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-428486016884117722?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/428486016884117722/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=428486016884117722' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/428486016884117722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/428486016884117722'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/07/blog-post_3343.html' title='马里奥银河不错'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2978928120367368620</id><published>2008-07-07T22:53:00.000-07:00</published><updated>2009-02-24T07:19:04.765-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='娱乐'/><title type='text'>推荐一下“辛普森一家”</title><content type='html'>一年前推荐过《南方公园》，事实证明，这不是一部适合广大人民群众的动画片，片中的粗口和美国式的厕所笑话很容易引起不适反应，我也不能幸免，即使吐啊吐啊也习惯不了。只因为推荐的时候碰巧是看了比较经典的几集，比如关于魔兽的那集，和关于Wii的那集。&lt;br /&gt;&lt;br /&gt;今天要推荐的《辛普森一家》相信不会再失手了，这部已经热播了18年的动画片内容涉及了美国家庭生活中的方方面面，其中很多是中国家庭同样会面对的，比如家庭、感情、子女教育、电视暴力。不论是什么样的话题，《辛普森一家》都能以轻松幽默的方式诠释，并始终保持着一个积极乐观的态度和主流的价值观念。&lt;br /&gt;&lt;br /&gt;作为心智健全、已经成年、具有一定英语听力的你，一定不要放过这部动画长片哦！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2978928120367368620?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2978928120367368620/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2978928120367368620' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2978928120367368620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2978928120367368620'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/07/blog-post_07.html' title='推荐一下“辛普森一家”'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1067690296898306799</id><published>2008-07-02T18:18:00.000-07:00</published><updated>2009-02-24T07:19:04.761-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>Google快讯，被低估的Google服务</title><content type='html'>Google提供了很多服务，其中有一个很好用很有价值的服务被严重低估了，那就是Google快讯。&lt;br /&gt;&lt;br /&gt;应用场景：&lt;br /&gt;&lt;br /&gt;1. 我想买房，看上的几个楼盘一直死撑着不降价，我又害怕它们偷偷降价了自己不知道，怎么办。分别定制几个Google快讯，关键字就是这几个楼盘的名字。只要互联网上出现这几个楼盘的新消息，Google就会第一时间通知你。&lt;br /&gt;&lt;br /&gt;2. 我想买车，是买速腾还是买凯旋呢？在论坛里泡了很久，帖子差不多都看遍了，可还忍不住没事去潜一下水，太耽误时间了。还是让Google快讯来帮助我，定俩快讯，关键字分别是速腾和“凯旋 汽车”（不加“汽车”会收到有太多无关内容哦），你就可以把网上最新的有关速腾和凯旋的消息尽收邮箱中。&lt;br /&gt;&lt;br /&gt;3. 我是名人，虽然我生活很检点，既不膀大款，也不包二奶，但互联网上坏人太多，总有人造我的谣，搞得我心神不定，时不时要去Google上搜索一下有没有自己的负面新闻。用了Google快讯就简单了，定制一个快讯，快讯关键字就是你的名字和你二奶（准确地说是二奶嫌疑人）的名字，嘿嘿，有负面新闻第一时间发现，把影响控制在最小范围内。如果你有多个二奶，那就使用多条快讯吧，不要懒省事用一条快讯把所有二奶名字都输进去。&lt;br /&gt;&lt;br /&gt;4.  我很八卦，最近在关注某xxTV主持人的八卦。为了能更省力地收集更多最新的线索，你该定制一条快讯，这样保证你不会漏过任何一条相关新闻。&lt;br /&gt;&lt;br /&gt;通过上面几个应用场景分析，大家可以看到，通过简单地定制几条快讯，Google就可以把你关心的新闻第一时间送到你的信箱，省却了你满世界找新闻的麻烦，实乃居家必备的优秀服务啊。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1067690296898306799?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1067690296898306799/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1067690296898306799' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1067690296898306799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1067690296898306799'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/07/googlegoogle.html' title='Google快讯，被低估的Google服务'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5580743377185357583</id><published>2008-07-02T15:27:00.000-07:00</published><updated>2009-02-24T07:19:04.757-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='娱乐'/><title type='text'>可乐的事真多</title><content type='html'>有人因为状告垃圾短信被判1年徒刑：&lt;a href="http://news.21cn.com/domestic/shiyong/2008/07/02/4902861_1.shtml"&gt;http://news.21cn.com/domestic/shiyong/2008/07/02/4902861_1.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;有人因为从出问题的取款机里多取了钱被判无期（后被改判5年），对比一下高干们的待遇，就知道这事有多搞笑了。&lt;br /&gt;&lt;br /&gt;（对上面事件的当事人给予充分的同情，但是这事还真是很搞笑啊）&lt;br /&gt;&lt;br /&gt;今天最搞笑的是武警部队的新型装备，奥运期间的安全就靠它们了，这玩意据说一个5、6万呢，执行任务的时候被地上的火柴棍绊倒，摔得七零八落，肯定能把歹徒笑背过气去。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mil.news.sina.com.cn/p/2008-07-03/0818508503.html"&gt;http://mil.news.sina.com.cn/p/2008-07-03/0818508503.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i0.sinaimg.cn/jc/p/2008-07-03/U2142P27T1D508503F3DT20080703091352.jpg" width="570" height="370" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5580743377185357583?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5580743377185357583/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5580743377185357583' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5580743377185357583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5580743377185357583'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/07/blog-post.html' title='可乐的事真多'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3210388673469482904</id><published>2008-06-29T21:17:00.000-07:00</published><updated>2009-02-24T07:19:04.754-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>用Ext改写了ReadCode的界面</title><content type='html'>花了几个周末的时间，学习了Ext，然后把整个&lt;a href="http://code2.readcode.org/code"&gt;ReadCode&lt;/a&gt;的界面重写了，顺带也修改了一些bug，虽然还没最终完成，但是基本的功能都有了，比上一版本要好用了不少。&lt;br /&gt;&lt;br /&gt;遗憾的是：&lt;br /&gt;&lt;br /&gt;1.本来打算用GWT来重写界面的，但是因为不太懂Java，而Ext看十分钟就能比葫芦画瓢开始做了。这次改动其实也就是因为三、四周前的一个周末，没事看Ext的Demo，然后就立刻决定拿它重写UI了。后来才知道Ext有些License的问题，而且个头也很大，说不定以后还会拿GWT来写一次。&lt;br /&gt;&lt;br /&gt;2. 后端的源码分析还是没有重写，无法实现我希望的一些效果，对C++的处理更是有问题。这个得更往后放了。&lt;br /&gt;&lt;br /&gt;3.新版本上线后访问数骤降，为啥啊 :( 大家去捧捧场吧。&lt;br /&gt;&lt;br /&gt;连接在此：&lt;a href="http://code2.readcode.org/code"&gt;http://code2.readcode.org/code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;项目的源码我放在Google Code上了，也欢迎大家一起来改进这个项目。连接在此：&lt;a href="http://code.google.com/p/readcode/"&gt;http://code.google.com/p/readcode/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3210388673469482904?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3210388673469482904/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3210388673469482904' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3210388673469482904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3210388673469482904'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/06/extreadcode.html' title='用Ext改写了ReadCode的界面'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8030854554225120101</id><published>2008-06-22T18:08:00.000-07:00</published><updated>2009-02-24T07:19:04.749-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>一些值得关注的开源软件</title><content type='html'>开源软件是个宝库，里面有很多东西值得公司、程序员、科研人员、计算机专业的学生和技术狂热者关注。其中有一些已经不需要再多提了，太多人再用了，比如gcc，比如python，比如firefox；还有一些名气不那么大，但是默默地在后端支撑了很多其他产品，比如Sqlite，比如gtk；再有一些开源软件，诞生时间不长，但是俨然将／已经成为一颗巨星，这样的软件各位得关注关注哦&lt;br /&gt;&lt;br /&gt;1. Webkit&lt;br /&gt;&lt;br /&gt;新一代浏览器的基础，包括苹果的Safari，Google的Android，Nokia的手机都使用了在Webkit基础之上开发的浏览器。Webkit年纪虽轻，但是来势凶猛，明日浏览器的王者或许就是它哦，拭目以待吧！&lt;br /&gt;&lt;br /&gt;PS. Webkit和KDE的浏览器（包括Javascript engine）有深厚的渊源，要是算上KDE 的话，Webkit的份额就更大了。&lt;br /&gt;&lt;br /&gt;2. LLVM&lt;br /&gt;&lt;br /&gt;用GCC这么多年，大家有点审美疲劳了吧，表急，编译器领域里也有黑马杀出，这就是LLVM。LLVM本是大学的研究项目，被Apple看中，选作它的编译器。Apple甚至在iphone上用LLVM来执行硬件不支持的OpenGL命令。网上的一些评测表明，LLVM能生成比GCC好很多的代码。而且，LLVM更优良、更现代的设计保证了它有更大的潜力。&lt;br /&gt;&lt;br /&gt;当然，LLVM并不是马上就要取代GCC，更有可能是逐步的融合。&lt;br /&gt;&lt;br /&gt;Webkit和LLVM在两个已经有big player的领域里迅速崭露头角，势必会有蓬勃的应用，大家不可放过。&lt;br /&gt;&lt;br /&gt;最后，开源宝库，有取有给，大家自觉:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8030854554225120101?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8030854554225120101/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8030854554225120101' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8030854554225120101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8030854554225120101'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/06/blog-post_22.html' title='一些值得关注的开源软件'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-94395451232731237</id><published>2008-06-19T11:26:00.000-07:00</published><updated>2009-02-24T07:19:04.744-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='未分类'/><title type='text'>据说是高考零分作文</title><content type='html'>题目:“细雨湿衣看不见，闲花落地听无声”是唐朝诗人刘长卿在《别严士元》中的诗句。曾经有人这样理解这句诗：&lt;br /&gt;1、这是歌颂春天的美好意境。&lt;br /&gt;2、闲花、细雨表达了不为人知的寂寞。&lt;br /&gt;3、看不见、听不见不等于无所作为，是一种恬淡的处世之道。&lt;br /&gt;4、这种意境已经不适合当今的世界……&lt;br /&gt;根据你的看法写一篇作文。题目自拟，体裁不限。字数800以上。&lt;br /&gt;&lt;br /&gt;盛夏，夜，深夜。&lt;br /&gt;&lt;br /&gt;景山山颠。&lt;br /&gt;&lt;br /&gt;山上有人，两个人，一男一女。&lt;br /&gt;&lt;br /&gt;这两人就是当今武林名声最响的两位杀手，男的名秋细雨，女的叫叶闲花，江湖人称“细雨闲花”。&lt;br /&gt;&lt;br /&gt;诗人刘长卿曾用“细雨湿衣看不见，闲花落地听无声”来描述这两个可怕的杀手。细雨湿衣，湿衣的是鲜血；闲花落地，落地的是人头。这两人杀人来无影去无踪，如果他们想杀你，当你还没看到他们人影没听到他们声音的时候，你就已经死了。&lt;br /&gt;&lt;br /&gt;秋细雨三天前接到一份帖子，指名要杀叶闲花。事成之后，不但有三百万两冥币，更可以让他在“红楼梦中人”选秀节目中担任曹雪芹的角色！&lt;br /&gt;&lt;br /&gt;但是杀死叶闲花比杀死比尔还要困难得多。&lt;br /&gt;&lt;br /&gt;江湖中没有一个人清楚叶闲花的武功来历，性格脾气，但是每个人都知道叶闲花的故事。&lt;br /&gt;&lt;br /&gt;叶闲花有一双迷人的大眼睛，据说她曾一动不动地瞪死过赵薇和高圆圆，而那一年她才十七岁。&lt;br /&gt;&lt;br /&gt;叶闲花声音有如黄莺般幽婉醉人，传说听过她说话后林志玲身体酥麻了整整一年，你说要不要命？&lt;br /&gt;&lt;br /&gt;叶闲花轻功独步武林，踏雪无痕，落地无声，号称超过当年青翼蝠王韦一笑。有人见她上星期在高速公路上偷了刘翔奥运会入场证，刘翔追出一万公里最后被活活累倒。&lt;br /&gt;&lt;br /&gt;一般人听到叶闲花的故事早就吓得去买尿不湿了，但是秋细雨没有去买。&lt;br /&gt;&lt;br /&gt;秋细雨不是一般人。&lt;br /&gt;&lt;br /&gt;他知道，杀人不但要靠技术，还要拼人品！&lt;br /&gt;&lt;br /&gt;秋细雨很镇定，他正用一把指甲刀修整着手指甲，他的手指修长有力。&lt;br /&gt;&lt;br /&gt;他要等待，等待对方先沉不住气。高手相争，不允许一丝一毫的失误，先沉不住气的人就会露出破绽。&lt;br /&gt;&lt;br /&gt;致命的破绽！&lt;br /&gt;&lt;br /&gt;因此秋细雨一言不发，只是静静地玩弄着指甲刀。&lt;br /&gt;&lt;br /&gt;没想到叶闲花更是好整以暇，自己悠然自得地涂口红，喷香水。&lt;br /&gt;&lt;br /&gt;秋细雨只好先发制人，道：“你知道我找你出来是为什么。”&lt;br /&gt;&lt;br /&gt;叶闲花温柔道：“在我们动手之前，不能先谈谈么？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“我是来杀人的，不是来聊天的。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“你有把握杀我？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“我从不做没有把握的事情。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“我要提醒你一件事。”&lt;br /&gt;&lt;br /&gt;秋细雨道：“你说。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“百晓生作杀手谱，小女子是杀手榜排名第一，阁下区区第二，你真能杀得了我么？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“我也要提醒你一件事。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“你说。”&lt;br /&gt;&lt;br /&gt;秋细雨道：“论杀手实力，我本在你之前，只是那次排名百晓生采用了短信投票系统，中国‘花痴’人数过于庞大才让你得了第一。”&lt;br /&gt;&lt;br /&gt;叶闲花的脸色一变，道：“我更要提醒你，我的粉丝团叫‘花粉’，不叫‘花痴’！”&lt;br /&gt;&lt;br /&gt;秋细雨道：“我最后要提醒你，你的那些‘花粉’全都是花痴。还有，我们已经跑题了。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“我们这样拼命厮杀，你难道不怕麻烦么？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“你以后再也不用怕麻烦了，天下只有一种人永远不怕麻烦，死人！”&lt;br /&gt;&lt;br /&gt;叶闲花道：“这么说你非逼我出手不可？”&lt;br /&gt;&lt;br /&gt;秋细雨没有回答，他已不用回答。&lt;br /&gt;&lt;br /&gt;秋细雨道：“亮兵器！”&lt;br /&gt;&lt;br /&gt;叶闲花道：“我用刀。”&lt;br /&gt;&lt;br /&gt;秋细雨道：“你用刀？刀在何处？”&lt;br /&gt;&lt;br /&gt;叶闲花道：“我就是刀！”&lt;br /&gt;&lt;br /&gt;叶闲花露出甜甜的笑容，忽然间褪下了自己的衣服，全身上下只剩下蕾丝比基尼和黑色丝袜。&lt;br /&gt;&lt;br /&gt;叶闲花的脸美得让人窒息，再配上这样的身材，这样的服饰，充满了一种原始的诱惑力。&lt;br /&gt;&lt;br /&gt;她的眼睛会说话，她的媚笑会说话，她的手，她的胸膛，她的腿……她身上每分每寸都会说话。&lt;br /&gt;&lt;br /&gt;她知道，只要是个不瞎的男人，现在肯定会被她迷得神魂颠倒。&lt;br /&gt;&lt;br /&gt;秋细雨是个男人，而且是个不瞎的男人。&lt;br /&gt;&lt;br /&gt;可他现在却偏偏好像瞎了一样，完全无动于衷。&lt;br /&gt;&lt;br /&gt;他知道，美丽的女人是一把刀，当你沉醉的时候，刀就会切进你的胸口。&lt;br /&gt;&lt;br /&gt;秋细雨沉吟道：“我只想问你一件事。”&lt;br /&gt;&lt;br /&gt;叶闲花娇笑着：“请讲。”&lt;br /&gt;&lt;br /&gt;秋细雨道：“大夏天的，穿这么少你丫不怕蚊子叮啊？”&lt;br /&gt;&lt;br /&gt;叶闲花沉默了半晌，幽幽地道：“你一定以为刚才我在喷香水，是不是？我告诉你，我喷的是六神花露水！”&lt;br /&gt;&lt;br /&gt;叶闲花又道：“不过这不是普通的六神，是我特别提炼的药水，无色无味无毒，不过却会慢慢扩散在空气中，闻到它的人会四肢麻痹不能动弹。”&lt;br /&gt;&lt;br /&gt;秋细雨一惊，忽然觉得身体已经麻木不听使唤，不由得一身冷汗。&lt;br /&gt;&lt;br /&gt;叶闲花又道：“你以为我和你扯淡是因为我害怕，以为我脱掉衣服是想色诱你，其实这都是为了拖延时间让药水能扩散到你周围。”&lt;br /&gt;&lt;br /&gt;秋细雨面上不动声色，道：“难道你自己不怕药水的厉害？”&lt;br /&gt;&lt;br /&gt;叶闲花得意地道：“一开始我涂的口红就是解药，所以我仍然可以自由行动。”&lt;br /&gt;&lt;br /&gt;叶闲花逼视着秋细雨，问道：“现在你还认为你能杀了我么？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“我能。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“你不能动而我能动，你却能杀了我，这不是很好笑么？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“是很好笑，但是你一定会被我杀死。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“为什么我会被你杀死？”&lt;br /&gt;&lt;br /&gt;秋细雨忽然反问道：“飞刀能不能杀人？”&lt;br /&gt;&lt;br /&gt;叶闲花道：“好像能。”&lt;br /&gt;&lt;br /&gt;秋细雨道：“我有没有手？”&lt;br /&gt;&lt;br /&gt;叶闲花道：“的确有。”&lt;br /&gt;&lt;br /&gt;秋细雨道：“我手上有没有刀？”&lt;br /&gt;&lt;br /&gt;叶闲花道：“你手上好像只有指甲刀。”&lt;br /&gt;&lt;br /&gt;秋细雨道：“足够了。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“足够了？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“就能置人死地。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“指甲刀也能杀人？实在可笑！”&lt;br /&gt;&lt;br /&gt;秋细雨道：“以前江湖中有七十三个人觉得我这把指甲刀很可笑。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“现在呢？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“现在人都已死了，死在这把刀下。”&lt;br /&gt;&lt;br /&gt;叶闲花道：“你的手还能动？”&lt;br /&gt;&lt;br /&gt;秋细雨道：“你要不要试试？”&lt;br /&gt;&lt;br /&gt;叶闲花脸上的笑容渐渐凝固，忽然间，她已出手！&lt;br /&gt;&lt;br /&gt;一招“冒牌九阴白骨爪”直逼秋细雨天灵盖，这一招她已练过七年四个月零二十九天，她完全有把握相信没有任何人可以抵挡得了这一招。&lt;br /&gt;&lt;br /&gt;可这一次她错了。&lt;br /&gt;&lt;br /&gt;刀光一闪，“盗版小李飞刀”已插入她的咽喉。&lt;br /&gt;&lt;br /&gt;她到死也不相信，一把指甲刀可以要了她的命！&lt;br /&gt;&lt;br /&gt;闲花终于落地！&lt;br /&gt;&lt;br /&gt;三个时辰后，药水的药效渐渐淡去，秋细雨终于可以动弹了。&lt;br /&gt;&lt;br /&gt;望着叶闲花的尸体，秋细雨道：“虽然你已经死了，但是我还要告诉你两件事。第一，我一直用甲刀修整着手指甲是为了调整手和刀之间的同步率，说白了就是找手感。第二，我杀你的真正目的不是为了钱或者名利。”&lt;br /&gt;&lt;br /&gt;一边说，秋细雨一边从叶闲花衣服的口袋里搜出了刘翔的奥运会入场证。&lt;br /&gt;&lt;br /&gt;秋细雨坚定地说：“我爱北京，我要看奥运！”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-94395451232731237?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/94395451232731237/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=94395451232731237' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/94395451232731237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/94395451232731237'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/06/blog-post.html' title='据说是高考零分作文'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-425716735063586275</id><published>2008-05-29T11:43:00.000-07:00</published><updated>2009-02-24T07:19:04.736-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Google发布Gadgets for Linux</title><content type='html'>昨天晚上，Google发布了Gadgets For Linux，现在你就可以在Linux上运行大部分的Google Gadgets了。特别值得一提的是，Google Gadget for Linux是一个开源项目，有兴趣的朋友可以参与进来一块开发啊。&lt;br /&gt;&lt;br /&gt;闲话少说，上图，上网址：&lt;br /&gt;&lt;br /&gt;http://code.google.com/p/google-gadgets-for-linux/&lt;br /&gt;&lt;br /&gt;&lt;img src="http://google-gadgets-for-linux.googlecode.com/svn/images/ggl-standalone.jpg" height="418" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://google-gadgets-for-linux.googlecode.com/svn/images/ggl-sidebar.jpg" height="428" width="110" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-425716735063586275?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/425716735063586275/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=425716735063586275' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/425716735063586275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/425716735063586275'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/05/googlegadgets-for-linux.html' title='Google发布Gadgets for Linux'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8509772524183540315</id><published>2008-05-04T10:27:00.000-07:00</published><updated>2009-02-24T07:19:04.731-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='未分类'/><title type='text'>土鳖的奥运网上订票系统</title><content type='html'>忽悠了全世界人民。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8509772524183540315?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8509772524183540315/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8509772524183540315' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8509772524183540315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8509772524183540315'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/05/blog-post.html' title='土鳖的奥运网上订票系统'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-9022743047090019385</id><published>2008-04-18T21:29:00.000-07:00</published><updated>2009-02-24T07:19:04.727-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>修改了readcode用户注册、登录的问题</title><content type='html'>很久没时间打理readcode了，今天在google了一下，把用户注册、登录的bug给改了，这个bug也是rails升级到2.0引起的。本来想上传点新代码的，结果我的笔记本系统太新了，生成的BDB文件在虚拟主机上使用不了，没辙，改天再说吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-9022743047090019385?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/9022743047090019385/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=9022743047090019385' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/9022743047090019385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/9022743047090019385'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/04/readcode.html' title='修改了readcode用户注册、登录的问题'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3869505617569224469</id><published>2008-01-04T20:39:00.000-08:00</published><updated>2009-02-24T07:19:04.723-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='未分类'/><title type='text'>wii玩腻了:(</title><content type='html'>去年5月买的wii，跟一帮帮朋友happy过好几个周末，打爆了疯狂兔子、激情卡车等几个游戏之后，发觉没啥好玩的了：（&lt;br /&gt;&lt;br /&gt;wii的开发商们，赶紧开发一个架子鼓的游戏吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3869505617569224469?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3869505617569224469/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3869505617569224469' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3869505617569224469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3869505617569224469'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2008/01/wii.html' title='wii玩腻了:('/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3174080504558497615</id><published>2007-12-14T13:36:00.000-08:00</published><updated>2009-02-24T07:19:04.718-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='未分类'/><title type='text'>闲扯一下</title><content type='html'>最近太忙，一点都没有闲扯的欲望，这是不是说明我正在摆脱IDLE状态，向成功人士迈进呢？:)稍微扯一下吧，不然还食不食人间烟火了。&lt;br /&gt;&lt;br /&gt;先说说俺们这旮旯的房价，自从去年3、4月以来就节节攀升。我每次路过家门口的中介公司的时候都会瞄眼房价，眼看着6位数上蹭蹭往上涨，终于有一天全线蹦 上7位数。7位数要还这么蹭蹭涨就悬了，果然以后就很消停了。突然有一天一瞅房价，霍，又回6位数了，难不成北京房价真下跌了不成。揉揉眼镜再看（没错， 是拿衣服角揉了揉眼镜上的灰），不到90万诶。&lt;br /&gt;&lt;br /&gt;凑近再看，房价边上有俩小字：首付！&lt;br /&gt;&lt;br /&gt;再说说这物价上涨，猪肉这一年涨了多少，有没有100％啊，去商场买衣服，据我老婆说价格也涨了不少，结果要给我买的衬衣就在五道口服装市场解决了。你还 别说，五道口服装市场的物价还算稳定，我2000年在那买50块一条的牛仔裤，我老婆现在在那也能买到50块一件的衬衣：）。&lt;br /&gt;&lt;br /&gt;央视2套的节目很有深度的探讨了当前物价上涨是不是通货膨胀。刚开始学写议论文的小学生都知道，对一个问题要正反两面论述。央视2套很有才的选择了电器价 格下跌和北京交通费用下跌作为反面论据。我想他们遮遮掩掩想要告诉大家的还是：当前还不是通货膨胀，是结构性调整。nnd，这真是一个人才辈出的年代啊， 为了把A说成B，得发明多少新词啊！结构性调整跟通货膨胀有啥区别呢？这才真是对汉语的污染啊。不过也许若干年后，有心人会出个对照表，帮助后人理解这个 有点荒诞的时代。&lt;br /&gt;&lt;br /&gt;再说说广东企业的倒闭。从我自己的经历来说，我为此是感到欢欣鼓舞的。广东那些工厂的工人们，他们的生存状况真是惨啊。国家经济繁荣带给他们的只是温饱和 肉体心灵上的无限痛苦。这是我亲眼看到的，我见过十几岁的小姑娘因为连续上班24小时，在生产线上流着眼泪干活；高档住宅区对面就是如同窝棚一样的民工宿 舍。也有我外出打工的亲戚告诉我的，每天4、5个小时的休息时间，连续一个月的高强度工作。&lt;br /&gt;&lt;br /&gt;这些企业所带了的是什么呢？资本家巨大的财富，国家巨额的外汇储备(恩，外汇多得都发愁了），供应全世界其他国家人民的低价产品。这产品当然也供应国内，不过因为工人们工资太低，这些产品对他们来说也还是太贵了，工人们消费不起自己制造的商品。&lt;br /&gt;&lt;br /&gt;沉重了沉重了，就扯到这吧:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3174080504558497615?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3174080504558497615/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3174080504558497615' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3174080504558497615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3174080504558497615'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/12/blog-post.html' title='闲扯一下'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5561385016337708055</id><published>2007-12-14T13:04:00.000-08:00</published><updated>2009-02-24T07:19:04.712-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>有关wii最牛的创意</title><content type='html'>毫无疑问，wii本身就是一个非常有创意的产品，它的手柄则是它最有创意的部分。&lt;br /&gt;&lt;br /&gt;如果在两天前，这么说一点问题都没有。但是两天前看到cmu的一个学生所作的东西，我就后悔上面的“最”用早了。&lt;br /&gt;&lt;br /&gt;大家自己去看这个连接上的视频吧：&lt;a href="http://www.cs.cmu.edu/%7Ejohnny/projects/wii/"&gt;http://www.cs.cmu.edu/~johnny/projects/wii/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5561385016337708055?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5561385016337708055/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5561385016337708055' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5561385016337708055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5561385016337708055'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/12/wii.html' title='有关wii最牛的创意'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4500182870979186128</id><published>2007-12-02T23:51:00.000-08:00</published><updated>2009-02-24T07:18:36.500-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Java “Program once, Run everywhere”理念的google实现</title><content type='html'>都说Sun发明了Java，却没能从Java上面赚到什么钱，大头都让IBM、Oracle赚去了。如今，悄无声息地，Google也推出了几项跟Java相关的技术，以另外一种方式实现了Java的理念：Program Once， Run Everywhere。&lt;br /&gt;&lt;br /&gt;第一项技术是Google Web Toolkit，用写普通Java的方式编写Web 2.0时代的Web应用程序，或者叫做RIA。&lt;br /&gt;第二项技术是Google刚推出的Android平台，同样是用写Java程序的方式编写手机应用程序。&lt;br /&gt;第三项技术也许看上去不那么相关，那就是Google推出的为浏览器提供离线浏览功能的插件。有了它，Web应用程序和本地应用程序的界限就不那么清楚了。&lt;br /&gt;&lt;br /&gt;利用这些技术，你就能做到（理想情况下），写一个程序，既能像本地应用程序一样运行，也能通过浏览器来使用，甚至可以在手机上运行。这真是很Cool的一件事情:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4500182870979186128?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4500182870979186128/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4500182870979186128' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4500182870979186128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4500182870979186128'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/12/java-program-once-run-everywheregoogle.html' title='Java “Program once, Run everywhere”理念的google实现'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4835870480252285598</id><published>2007-11-18T22:42:00.000-08:00</published><updated>2009-02-24T07:18:36.496-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>关于X</title><content type='html'>X不是叉，X是一套很久远的Window系统。自从我上次关注它以来（1998年左右在图书馆翻阅了一套关于X的书），它变化很大，都快把我搞糊涂了，这 两天在xorg的网站和Keith Packard 的网站上看了一些文章，勉勉强强把一些概念具体化了些，彼此间的关系稍微有点头绪，下一步要看看具体的代码，写写程序。&lt;br /&gt;&lt;br /&gt;今天在看Composite的时候，做了个实验，不妨跟大家分享一下，也算给这个冷清的blog添点人气。&lt;br /&gt;&lt;br /&gt;1. 在一台Thinkpad T61p笔记本上，没有安装ATI的驱动，X就用vesa跑的，开了composite manager（KDE自带的那个）。在term里用"ps -eo ’%mem command‘|grep X“来查看X的内存占用。结果发现当我最大化一个窗口的时候，X的占用会增加个300K左右，如果把这个窗口卷起，X的占用就减少300K，屡试不爽。&lt;br /&gt;&lt;br /&gt;当我关掉composite manager之后，窗口的大小变化就不影响X的内存占用了。&lt;br /&gt;&lt;br /&gt;这说明X用主机内存实现了off screen的pbuffer。&lt;br /&gt;&lt;br /&gt;2. 然后回到家在一台使用Nvidia显卡，并且安装了nvidia驱动的台式机上，重复这个实验，发现窗口变大变小对X内存占用有影响，但是小很多， 100k的样子。按理说，家里显示器的分辨率是1680x1050，比笔记本的1450x1080要大不少，内存占用应该多一些才是。&lt;br /&gt;&lt;br /&gt;这是不是可以说明，nvidia用显存（至少部分）实现了offscreen的pbuffer呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4835870480252285598?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4835870480252285598/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4835870480252285598' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4835870480252285598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4835870480252285598'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/11/x.html' title='关于X'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3691258825670662913</id><published>2007-08-27T20:05:00.000-07:00</published><updated>2009-02-24T07:18:36.492-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Readcode支持History了</title><content type='html'>因为使用Ajax的缘故，浏览器的“backward”和“forward”按钮在&lt;a href="http://www.readcode.org/"&gt;Readcode.org&lt;/a&gt;上一直是不能工作的。这对看代码的人来说，是不能接受的。&lt;br /&gt;还好，解决这个问题并不那么难，我只需要用javascript在每次click一个href的时候记录当前页面状态，然后就能实现一个简单但是足够好用的History功能了。&lt;br /&gt;现在，history功能结合上google gears提供的离线浏览，一个快速方便的看代码工具就基本完备了:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3691258825670662913?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3691258825670662913/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3691258825670662913' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3691258825670662913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3691258825670662913'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/08/readcodehistory.html' title='Readcode支持History了'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7136340112133577864</id><published>2007-08-07T16:00:00.000-07:00</published><updated>2009-02-24T07:18:36.488-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>有关Gnome的未来</title><content type='html'>恩，各位Gnome的fans们，饭KDE的我要开始挖苦一下Gnome了，如果担心引起不适，请不要继续阅读了:)&lt;br /&gt;&lt;br /&gt;写这篇文章的动机是今天看到的一篇Blog：&lt;a href="blogs.gnome.org/desrt/2007/08/07/im-excited-about-the-future-of-gnome/"&gt;i’m excited about the future of gnome&lt;/a&gt;。虽然其作者看上去跟Gnome是一个阵营的，我却禁不住觉得他在反话正说。毕竟，他所列出让他激动的Gnome的feature与刚刚发布Beta1的KDE4比起来，实在不值一提。&lt;br /&gt;&lt;br /&gt;也许他在开头的那段话才是真正的主题：&lt;br /&gt;“about half a year ago i was looking around me and seeing stagnation in the gnome community. ”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7136340112133577864?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7136340112133577864/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7136340112133577864' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7136340112133577864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7136340112133577864'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/08/gnome.html' title='有关Gnome的未来'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1631184672353478635</id><published>2007-08-01T23:37:00.000-07:00</published><updated>2009-02-24T07:18:36.484-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>找到Linux系统中的电老虎</title><content type='html'>最近在我的T60p上装了Ubuntu7.10，以前的系统是Windows XP，结果发现电池使用时间从5个小时锐减到3个小时不到，很郁闷。&lt;br /&gt;&lt;br /&gt;可巧听说了一个工具，powertop，可以找到系统里最费电的程序（严格说来，是导致CPU离开idle状态的程序），就拿来跑了一跑，发现powertop不光可以列出系统内的耗电大户，还能给出优化系统能源消耗的指导，并且只需一个按键就是实施，很不错。&lt;br /&gt;&lt;br /&gt;比如现在，因为用的是有线网，系统就提示说可以按I键关掉无线；还比如提示可以设置文件系统的属性为noatime等等。&lt;br /&gt;&lt;br /&gt;观察了一下，我的系统里，不肯让CPU闲着的竟然有pcmcia的驱动，我并没有用pcmcia设备，rmmod之。还有uhci_hcd，我也没用usb设备，rmmod之；还有thinkpad_keys，如果不需要那几个功能键，也可以kill之。&lt;br /&gt;&lt;br /&gt;当然干掉这几个电老虎，也不见得有啥效果。毕竟对于Linux而言，节能还是个比较新的话题，像刚才被我干掉的应用程序／驱动，在设计上根本就没有考虑节能的问题，他们考虑更多的是功能，性能。&lt;br /&gt;&lt;br /&gt;还需要假以时日啊！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1631184672353478635?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1631184672353478635/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1631184672353478635' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1631184672353478635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1631184672353478635'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/08/linux.html' title='找到Linux系统中的电老虎'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-649532811675711740</id><published>2007-07-26T02:11:00.000-07:00</published><updated>2009-02-24T07:18:36.479-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>读sqlite，理解数据库实现原理</title><content type='html'>开源的一个好处就是让大家能看到一些优秀的源代码，深刻的了解一些计算机原理。&lt;a href="http://www.sqlite.org/"&gt;Sqlite&lt;/a&gt;就是其中之一。&lt;br /&gt;&lt;br /&gt;Sqlite是一个轻量级的c库，实现了一个自包含的，可嵌入的，零配置的SQL数据库引擎（翻译自其网站首页：&lt;br /&gt;SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine。）近来，Sqlite以其独具一格的特性，在很多领域里得到了广泛的应用。&lt;br /&gt;&lt;br /&gt;Sqlite的代码简洁清晰，注释极其详尽，看过之后感觉以前在学校学的那点数据库皮毛得到了质的提升:) 大致说来，Sqlite分为3个模块（我姑且这么一分，大家自己去看吧）：&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;Btree模块：这个模块实现了一个基于磁盘存储的，支持多种高级特性的BTree。该模块是数据库的基础，大家大可以直接使用该模块，实现自己的数据库，当然就不支持SQL语句了。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;SQL语句编译优化模块：从SQL语句生成能在SQL虚拟机上执行的目标代码&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;SQL虚拟机：真正在Btree上执行操作的就是它了。&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;我只花了点时间看了下Btree的实现，顺带因为好奇，写了一个小程序解读sqlite数据库文件的内部结构，了解了数据库的一张表映射到Btree上是什么样的查找结构，很有意思哦。&lt;br /&gt;&lt;br /&gt;恩，强烈推荐大家阅读Sqlite的源码。当然，看代码已经很简单了，只需要点这里就OK了（嘿嘿，赤果果的广告）：&lt;br /&gt;&lt;a href="http://www.readcode.org/code#sqlite-3.4.1"&gt;www.readcode.org/code#sqlite-3.4.1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-649532811675711740?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/649532811675711740/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=649532811675711740' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/649532811675711740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/649532811675711740'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/07/sqlite.html' title='读sqlite，理解数据库实现原理'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6017974682276907127</id><published>2007-07-19T01:26:00.000-07:00</published><updated>2009-02-24T07:18:36.475-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>ReadCode.org的更新</title><content type='html'>&lt;a href="http://www.readcode.org"&gt;Reacode.org&lt;/a&gt;这段时间以来又增加了些功能，自己感觉比较好用了。现在自己有时候要查看下代码就用这个网站，还是很顺手的。大致的功能包括，&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;支持Google Gears，实现离线浏览，经常看的代码就不用再从网站上取了。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;文件搜索&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;各种Identifier（函数/变量)的定义、引用的查找&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;最近查看的文件&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;写注释&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;书签&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;还在设想其他一些功能，最主要的就是call trace，目标是在代码阅读的过程中，随时可以看到自己是从哪里到这里来的，会走到哪里去。不过具体如何实现还没确切的想法。&lt;br /&gt;&lt;br /&gt;另外，把建站软件整理好之后，会提供下载。&lt;br /&gt;&lt;br /&gt;恩，就这么多，大家用用吧，希望能看到大家的意见建议 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6017974682276907127?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6017974682276907127/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6017974682276907127' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6017974682276907127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6017974682276907127'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/07/readcodeorg.html' title='ReadCode.org的更新'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2525447921678071850</id><published>2007-04-21T10:15:00.000-07:00</published><updated>2009-02-24T07:18:36.468-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Debian or Ubuntu?</title><content type='html'>多年来，作为一个Debian的忠实用户，我在我所有的电脑上都安装Debian，并向所有的人推荐Debian。不过在使用了一段时间Ubuntu之后，我在向别人推荐Debian的同时也捎带推荐一下Ubuntu。&lt;br /&gt;最近，Debian和Ubuntu都发布了最新版本。相比之下，Ubuntu发布所吸引的注意力似乎远胜Debian。选择Debian还是Ubuntu，现在似乎成了一个问题。&lt;br /&gt;为了解决这个问题，我在虚拟机（VirtualBox）里分别安装了Debian（KDE）和Ubuntu（Gnome），然后感觉Debian下的KDE更加清爽，速度似乎也更快。&lt;br /&gt;我承认，这个测试非常不严谨，非常主观，尤其是对一个从来没有喜欢过Gnome的人来说。但是它解决了我的这个问题，我想我以后还是会向大家推荐Debian，捎带推荐一下Ubuntu。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2525447921678071850?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2525447921678071850/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2525447921678071850' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2525447921678071850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2525447921678071850'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/04/debian-or-ubuntu.html' title='Debian or Ubuntu?'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1936607251858125814</id><published>2007-04-21T02:16:00.000-07:00</published><updated>2009-02-24T07:18:36.462-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>在线看代码，写注释</title><content type='html'>弄了一个网站，&lt;a href="http://www.readcode.org/"&gt;www.readcode.org&lt;/a&gt;。&lt;br /&gt;可以在上面看代码，为代码写注释，查看别人写的注释。下一步要做的功能是书签，笔记功能。然后是函数调用分析。&lt;br /&gt;另外，注释信息最终是要存放到GoogleBase上，这个功能有时间也给做了。建站软件打算以开源的方式发布，不过现在还没时间整理，是用Ruby on Rails做的。&lt;br /&gt;&lt;br /&gt;恩，大家去看看吧：&lt;br /&gt;&lt;br /&gt;ps:有精通CSS的高手把我重新设计一下layout吧:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1936607251858125814?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1936607251858125814/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1936607251858125814' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1936607251858125814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1936607251858125814'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/04/blog-post.html' title='在线看代码，写注释'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-9222002088264362639</id><published>2007-04-01T18:10:00.000-07:00</published><updated>2009-02-24T07:18:36.451-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>SWIG:脚本语言与C/C++混合编程的强大工具</title><content type='html'>前些天发现了这个工具，推荐给同事，据他说很好用，很强大。&lt;br /&gt;&lt;a href="http://www.swig.org/"&gt;http://www.swig.org/&lt;/a&gt;&lt;br /&gt;另外有个很简洁的教程：&lt;br /&gt;&lt;a href="http://www.swig.org/tutorial.html"&gt;http://www.swig.org/tutorial.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;可以很方便的从各种脚本语言包括python，perl，ruby，tcl以及java，C#调用C/C++编写的模块。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-9222002088264362639?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/9222002088264362639/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=9222002088264362639' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/9222002088264362639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/9222002088264362639'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/04/swigcc.html' title='SWIG:脚本语言与C/C++混合编程的强大工具'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2216454895956041476</id><published>2007-03-26T13:30:00.000-07:00</published><updated>2009-02-24T07:18:36.445-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>Google新的搜索引擎？</title><content type='html'>&lt;a href="http://www.searchmash.com/"&gt;www.searchmash.com&lt;/a&gt;&lt;br /&gt;在用户体验上有很大的改动。搜索结果和直接google到的也有区别（不过试验了几个差别不大）。&lt;br /&gt;各位不妨试试&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2216454895956041476?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2216454895956041476/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2216454895956041476' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2216454895956041476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2216454895956041476'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/03/google.html' title='Google新的搜索引擎？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4380866140787751032</id><published>2007-03-26T13:19:00.000-07:00</published><updated>2009-02-24T07:18:36.439-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>微软的互联网好像做得不咋的</title><content type='html'>上周六参加同学婚礼，碰到一个在微软工作的同学，调侃他说：“你们的Live做得太烂了，把微软的脸都丢尽了“。这哥们说：”微软没把重点放在中国，国外做得还是很好的”。&lt;br /&gt;他这一竿子指到国外，我也没话说了，没用过没发言权呀。不过今天一早看到一则新闻，看起来微软不光在中国，在美国做得也不咋的。原文链接如下：&lt;br /&gt;&lt;h2 class="single"&gt;&lt;a href="http://internet.seekingalpha.com/article/30668"&gt;Microsoft Continues to Lose Online Popularity&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt;这个图表更直观，微软在美国在线广告市场的份额下降得很厉害：&lt;br /&gt;&lt;img src="http://seekingalpha.com/wp-content/seekingalpha/images/msft1.gif" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4380866140787751032?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4380866140787751032/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4380866140787751032' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4380866140787751032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4380866140787751032'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/03/blog-post_26.html' title='微软的互联网好像做得不咋的'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8730131983613915035</id><published>2007-03-18T23:54:00.000-07:00</published><updated>2009-02-24T07:18:36.433-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>打造一台客厅里的计算机</title><content type='html'>占领客厅，其实早已列入了包括微软、Intel、Sony、苹果甚至Google等IT巨头的战略部署。在它们的厮杀结果出来之前，我现在就想diy一个客厅电脑，放在客厅电视边上，这样我回家的时候就能躺在沙发上，而不用继续面对电脑了。OK，下面开始YY。&lt;br /&gt;&lt;br /&gt;先列下功能，家庭网关，无线接入，P2P下载，各种多媒体的播放，各种即时聊天软件，上网浏览新闻，连接打印机、扫描仪、数码相机、摄像机，摄像头，Voip，游戏功能（对我来说，可选），文件服务器，Web服务器，远程控制。而且这些功能都要能用遥控器很方便的操作，可以考虑加入声控功能。&lt;br /&gt;&lt;br /&gt;再看一下硬件规格，要美观小巧（太丑太大可不好往客厅放），耗电小（24小时开着呢），噪音低。在市面上找找，有如下几种方案：&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;XBox360，微软的游戏机，游戏功能强劲，带硬盘，外观也不错。可惜目前好像还难以顺利安装Linux，因此被一票否决。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;PS3，Sony的游戏机，游戏功能更强，带硬盘，而且对Linux的支持非常好，缺点是价格还是太高，给我这种不太玩游戏的人用，有点暴殄天物。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Wii，任天堂的游戏机，对它的全新游戏方式很感兴趣，如果能加装硬盘能安装Linux，会是不错的选择。Hacker们，加油啊！&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;EPIA，VIA的产品，在17cm x 17cm (Mini ITX)或12cm x 12cm（Nano ITX）的主板上集成了显卡声卡网卡CPU和各种外围接口包括视频输出、S端子，接上电源内存和硬盘就是一台x86的电脑。爱装嘛装嘛，爱咋整咋整。CPU的功耗相当低，C7是9w－20w，Eden是2.5w－7w。这样的功耗风扇都有可能省掉，绝对的安静。打听了一下&lt;a href="http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=399"&gt;EPIA EN&lt;/a&gt;这个型号（CPU是C7 1.5G）的价格，1700，把各种东西配齐2500应该差不多可以搞定，成本还可以接受。自己再DIY一个机箱，绝对够Cool。不过CPU计算能力较弱，不知道能不能流畅播放较高分辨率的视频。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Mac Mini，苹果的产品，外观没的说，功耗也很低，就是贵了点。如果银子充足又懒得DIY，那Mac Mini绝对是完美之选。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;龙芯，哈哈没想到吧。前段时间龙芯电脑以1590的价格出了1000台给大家试用，目前看来CPU还弱了点，各种外围芯片还不成熟。不过不管怎么说是咱们自己的娃，如果正式开卖，我会考虑买一台的。&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;硬件的选型差不多就这些了。再说说软件，软件不用选，我只用Linux:)不过目前Linux下好像还没有适合用遥控器操作的图形环境，也没有专为客厅电脑定制的发行版，可以考虑发起一个项目来弄一个，应该是非常Cool的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8730131983613915035?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8730131983613915035/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8730131983613915035' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8730131983613915035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8730131983613915035'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/03/blog-post.html' title='打造一台客厅里的计算机'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6086604787059120567</id><published>2007-03-07T14:30:00.000-08:00</published><updated>2009-02-24T07:18:36.426-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>把ATOM转成RSS</title><content type='html'>有些时候，你不得不做一大堆事情，结果发现有很简单的办法。&lt;br /&gt;&lt;br /&gt;我在blogger.com上开了一个博客，发布到我自己的一个虚拟主机上。几天前blogger.com还能向我的FTP上传rss和atom两种格式的feed。而我的这个网站的首页是要从rss格式的feed中提取内容，重新生成的。&lt;br /&gt;&lt;br /&gt;前天晚上我写完一篇帖子，昨天一早虚拟主机的cron发信告诉我生成首页失败。一检查，发现blogger.com生成的rss.xml和atom.xml都是ATOM格式的了。对此我明智的采取了以下措施：&lt;br /&gt;&lt;br /&gt;1.试图利用atom生成首页，可惜我所用的脚本语言，ruby，还未能提供atom的parser，失败&lt;br /&gt;&lt;br /&gt;2.在blogger.com上找配置选项。 失败&lt;br /&gt;&lt;br /&gt;3.在blogger.com的讨论组上叫骂，未果&lt;br /&gt;&lt;br /&gt;到此，已经耽误了昨晚的全部时间，拖到今天早上了。然后就发现了这篇文章，然后一切就很简单了！&lt;br /&gt;&lt;br /&gt;&lt;a href="http://atom.geekhood.net/"&gt;http://atom.geekhood.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6086604787059120567?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6086604787059120567/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6086604787059120567' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6086604787059120567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6086604787059120567'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/03/atomrss.html' title='把ATOM转成RSS'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8328725914818127733</id><published>2007-02-20T17:35:00.001-08:00</published><updated>2009-02-24T07:18:36.422-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>在Linux下安装IE，一步搞定</title><content type='html'>最多三步:)话说回来，在Linux上装IE，我也是一万个不愿意啊，谁让做个网页还要兼顾天杀的IE呢！大家还是多多转向Firefox，Konqueror和Opera，这样世界会美好得多。&lt;br /&gt;&lt;br /&gt;闲话少说，如果你也有不得已的苦衷，必须要用IE的话，告诉你，已经很简单了。&lt;br /&gt;&lt;br /&gt;第一步，安装wine和cabextract。debian/ubuntu用户只需apt-get install wine cabextract&lt;br /&gt;第二步，点击&lt;a href="http://www.tatanka.com.br/ies4linux/download.html"&gt;此处&lt;/a&gt;下载安装脚本，解开执行之。&lt;br /&gt;&lt;br /&gt;第三步，回答一些问题，按几次回车，然后耐心的等待...&lt;br /&gt;&lt;br /&gt;OK，你的Linux桌面上应该会出现一个IE的图标，点击运行吧。&lt;br /&gt;&lt;br /&gt;&lt;img alt="IE on Linux" src="http://my.donews.com/idlecat/files/2007/02/snapshot1.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8328725914818127733?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8328725914818127733/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8328725914818127733' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8328725914818127733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8328725914818127733'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/02/linuxie.html' title='在Linux下安装IE，一步搞定'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6684149483474225572</id><published>2007-02-20T17:35:00.000-08:00</published><updated>2009-02-24T07:18:36.411-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='未分类'/><title type='text'>IE on Linux</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6684149483474225572?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6684149483474225572/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6684149483474225572' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6684149483474225572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6684149483474225572'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/02/ie-on-linux.html' title='IE on Linux'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2091618472839585959</id><published>2007-02-09T20:55:00.000-08:00</published><updated>2009-02-24T07:18:36.404-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>kvm试用，淘汰了vmware</title><content type='html'>Linux内核2.6.20出来以后，一直想要试用下KVM，却总没得空。今天碰巧需要用到IE，就索性花点功夫，在Debian下用KVM装了下windowsXP。结果竟然是如此简单，效果如此得好。步骤如下：&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;编译linux-2.6.20的内核并用新内核启动机器，记得在配置内核编译选项的时候把KVM的支持打开&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;安装kvm，qemu。Debian unstable的repository里面就有&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;创建一个虚拟硬盘：&lt;code&gt; qemu-img create hda.img -f qcow 6G&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;开始安装：&lt;code&gt; kvm -no-acpi -m 256 -cdrom winxpsp2.iso -hda hda.img -boot d&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;系统很快就装好。启动一些应用程序，速度很快。网络自动配好，大概是NAT的方式。Linux系统上CPU占用率一般在10％以下，用IE打开“news.sina.com.cn"的时候，最高达到70％。&lt;br /&gt;&lt;br /&gt;本来还惴惴不安，现在初步感觉KVM取代VMware没有问题，看来，能进Linux内核的软件还是信得过的。&lt;br /&gt;&lt;br /&gt;我参考了这篇&lt;a href="http://linux.inet.hr/finally-user-friendly-virtualization-for-linux.html"&gt;文章&lt;/a&gt;，里面除了安装还有一些性能评测的结果，有兴趣的可以看一下。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2091618472839585959?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2091618472839585959/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2091618472839585959' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2091618472839585959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2091618472839585959'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/02/kvmvmware.html' title='kvm试用，淘汰了vmware'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8442073453044478807</id><published>2007-02-05T12:41:00.000-08:00</published><updated>2009-02-24T07:18:36.393-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>linux kernel 2.6.20发布了，集市开发模式的胜利！</title><content type='html'>恩，比官方消息稍微滞后了些。（BTW：不喜欢用口号式的标题，不过吸引下眼球嘛！）&lt;br /&gt;&lt;br /&gt;前段时间Linus在澳大利亚接受采访的时候，说他自己也非常惊讶于2.6内核的弹性。确实，2.6系列的内核在不断稳定不断提高性能的同时，许多非常Cool的特性也可以非常方便的加入。单就看看2.6.20为我们带来些什么吧：&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;支持sony ps3 （用Linux在PS3上打造一个超级家用媒体网络服务器，cool吧）&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;内核级的虚拟技术kvm （让Windows象一个普通程序一样跑在Linux上）&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;UDP-Lite，新的传输层协议，适合用于在无线网络上传输多媒体信息&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;此处略去n条，详情请见&lt;a href="http://my.donews.com/idlecat/wp-admin/kernelnewbies.org/Linux_2_6_20"&gt;这里&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;在Linux内核的开发中，很多工作并不是实现某种可见的功能，而是重构。这也是集市开发的特点，我看这段代码不顺眼，我就可以改，只要改得合理就会被采用。正因为不断的重构，Linux内核的结构越来越合理，接口越来越清晰，开发越来越容易，这是一个非常良性的循环。&lt;br /&gt;&lt;br /&gt;对比俺目前的工作，只求能Work，风险小，时间短，严重依赖测试，代码越来越rotten，大量不知所谓的代码留在那谁也不想动。相信很多商业软件开发都面临同样的问题吧。Windows Vista闭门造车数年，能弄出个什么东东呢，还有待观察，反正SP已经出来了~~~&lt;br /&gt;&lt;br /&gt;唉，还是想做开源的开发！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8442073453044478807?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8442073453044478807/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8442073453044478807' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8442073453044478807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8442073453044478807'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/02/linux-kernel-2620.html' title='linux kernel 2.6.20发布了，集市开发模式的胜利！'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5092506218234804346</id><published>2007-02-05T02:05:00.000-08:00</published><updated>2009-02-24T07:18:36.386-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>rails的vim插件，rails.vim</title><content type='html'>不小心从youtube上看到这段&lt;a href="http://www.youtube.com/watch?v=30P8DSNOZuU"&gt;video&lt;/a&gt;，立马安装试了一下，棒极了。&lt;br /&gt;这些天写rails程序，最烦的就是在layout，view，controller，helper之间切来切去。现在简单了，":Rlayout xxx"就能打开xxx的layout，":Rcontroller xxx"就能打开叫xxx的controller，"Rview xxx"就能打开当前context下对应的view文件。&lt;br /&gt;爽，这回才真的ride on the rails了:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5092506218234804346?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5092506218234804346/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5092506218234804346' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5092506218234804346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5092506218234804346'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/02/railsvimrailsvim.html' title='rails的vim插件，rails.vim'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6470865893910450723</id><published>2007-01-23T12:46:00.000-08:00</published><updated>2009-02-24T07:18:36.377-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>这么cool的桌面，你见过没？</title><content type='html'>首先声明，这个标题纯属哗众取宠，以求增加点击率，呵呵。&lt;br /&gt;&lt;br /&gt;大家仔细看看底下这张图，图的左边是现在的KDE桌面，右边也许会是未来的KDE桌面。详细的说明&lt;a href="http://dot.kde.org/1169588301/"&gt;在这 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img width="800" height="600" align="middle" src="http://static.kdenews.org/jr/vol4_mockup.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6470865893910450723?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6470865893910450723/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6470865893910450723' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6470865893910450723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6470865893910450723'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/01/cool.html' title='这么cool的桌面，你见过没？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6333064907282056332</id><published>2007-01-17T12:04:00.000-08:00</published><updated>2009-02-24T07:18:36.369-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Sandisk推出基于.NET和Linux的mp3播放器</title><content type='html'>&lt;p&gt;大家注意这款SanDisk出的&lt;a href="http://my.donews.com/idlecat/wp-admin/tirania.org/blog/archive/2007/Jan-17.html"&gt;MP3播放器&lt;/a&gt;，它是基于.NET的，同时它也是运行在Linux上的。如果你还不知道为什么.net能跑在Linux上，那现在是时候了，那就是因为Mono，一个开源的.net实现。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;昨天下班路上还在跟同事侃mono，很多人可能还不知道它，或许知道它但是不知道它已经有很高的完成度并被广泛的采用，简单列举几个：&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Gnome的桌面搜索beagle&lt;/li&gt;&lt;br /&gt;&lt;li&gt;看图软件F-spot&lt;/li&gt;&lt;br /&gt;&lt;li&gt;wiki便箴tomboy&lt;/li&gt;&lt;br /&gt;&lt;li&gt;国外火爆的网游secondlife&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;如今，mono甚至运用在对健壮性要求甚高的嵌入式环境中，足见mono已经到了一个很完善的程度了。&lt;img src="http://primates.ximian.com/~miguel/pictures/sansa-connect.jpg" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6333064907282056332?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6333064907282056332/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6333064907282056332' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6333064907282056332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6333064907282056332'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/01/sandisknetlinuxmp3.html' title='Sandisk推出基于.NET和Linux的mp3播放器'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7222116370712887892</id><published>2007-01-15T12:10:00.000-08:00</published><updated>2009-02-24T07:18:36.363-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>微软的Home Server或许将推动Linux的普及</title><content type='html'>有专家&lt;a href="http://www.zdnet.com.au/news/software/soa/Vista_launch_will_boost_desktop_Linux/0,130061733,339273059,00.htm"&gt;分析&lt;/a&gt;说Windows Vista将推动桌面Linux的普及。最近Gates又要推Home Server，我觉得这对Linux来说倒真是个很好的机会。&lt;br /&gt;Linux在Home Server领域有很强的竞争力，远远胜过Windows。Home Server能干嘛？打印服务器、文件服务器、多媒体中心、网络接入服务器、下载服务器，专业点的用户再起个web服务器、FTP服务器什么的，再连接一 些外设比如扫描仪、数码相机什么的，可以通过电视来看各种文档。&lt;br /&gt;这些功能，Linux都可以完成的非常好，甚至好过windows。而长期以来Linux相对于Windows的弱点，即用户界面、使用习惯的不一致，在这个领域又不是很明显，毕竟这里没有Office那样复杂的运用。&lt;br /&gt;因此可以预见，一旦微软催生了Home Server市场，一定会有一大批基于Linux的低成本高性能的产品涌现出来，也肯定会有很多用户开始在自己的PC甚至xbox、xbox360、ps3上安装Linux，DIY一个home server。&lt;br /&gt;对于Linux而言，这其实是件很简单的事情，而且越来越简单。只是微软把事情搞复杂了，没办法，不弄复杂点怎么收钱呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7222116370712887892?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7222116370712887892/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7222116370712887892' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7222116370712887892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7222116370712887892'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/01/home-serverlinux.html' title='微软的Home Server或许将推动Linux的普及'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8500902128595594791</id><published>2007-01-10T00:32:00.000-08:00</published><updated>2009-02-24T07:18:36.357-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>linux下读写ntfs已经这么简单了</title><content type='html'>步骤如&lt;a href="http://howtoforge.org/ubuntu_edgy_eft_ntfs_ntfs_3g"&gt;此文&lt;/a&gt;! 采用的是ntfs-3g和fuse。&lt;br /&gt;我的系统是ubuntu6.10，并不需要像文中那样修改sources.list就能安装所需要的软件包。&lt;br /&gt;相信这个方法对debian一样适用，还没来得及试！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8500902128595594791?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8500902128595594791/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8500902128595594791' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8500902128595594791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8500902128595594791'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2007/01/linuxntfs.html' title='linux下读写ntfs已经这么简单了'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7777871271229259308</id><published>2006-12-21T18:04:00.000-08:00</published><updated>2009-02-24T07:18:36.350-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>推荐一篇有关CPU的文章</title><content type='html'>&lt;h1&gt;&lt;a href="http://www.informit.com/articles/article.asp?p=663085&amp;amp;rl=1"&gt;The Future of CPUs: What's After Multi-Core?&lt;/a&gt;&lt;/h1&gt;&lt;br /&gt;可以结合下列新闻一块看（没有链接，有兴趣自己去找：）：&lt;br /&gt;AMD要把显卡的功能也集成到CPU里&lt;br /&gt;AMD和Intel都推出了4核的CPU&lt;br /&gt;虚拟计算大行其道&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7777871271229259308?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7777871271229259308/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7777871271229259308' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7777871271229259308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7777871271229259308'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/12/cpu.html' title='推荐一篇有关CPU的文章'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5764139935823826912</id><published>2006-12-13T23:03:00.000-08:00</published><updated>2009-02-24T07:18:36.342-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>虚拟技术的一种应用形式</title><content type='html'>虚拟技术已经火了一段时间了，在未来几年还将继续火下去，成为广大群众喜闻乐见的，被广泛采用的技术。究其原因，可以参考&lt;a href="http://my.donews.com/idlecat/2006/05/23/linux%e9%9c%80%e8%a6%81%e5%be%ae%e5%86%85%e6%a0%b8%e5%90%97%ef%bc%9f/"&gt;Linux需要微内核吗&lt;/a&gt;。&lt;br /&gt;前一阵子开会听到一个想法，挺不错。以后不都是虚拟机了吗？比如未来一台nb的服务器上，运行Oracle数据库和Weblogic的 Application Server，出于健壮性安全性的考虑，把这二位分别运行在各自的虚拟机上。虚拟机上可以跑Linux或者Windows，whatever（中文怎么说 来着？武林外传里的大嘴说过的）！&lt;br /&gt;但是你想过没，既然虚拟机就只跑一个程序，那还要这通用的操作系统干吗？通用操作系统因为要顾及方方面面的需求，性能必然会有所损失。现在没有这么多需求要满足，就不要这些通用操作系统了。甚至应用程序自带一个简单的能满足自己需要的操作系统就够了。&lt;br /&gt;像Java，Python，Ruby这些运行在VM上的语言，把VM做成一个操作系统，捆在应用程序上，放在虚拟机上跑就OK了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5764139935823826912?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5764139935823826912/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5764139935823826912' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5764139935823826912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5764139935823826912'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/12/blog-post.html' title='虚拟技术的一种应用形式'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-208680802261304091</id><published>2006-12-13T22:42:00.000-08:00</published><updated>2009-02-24T07:18:36.337-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>又一种虚拟技术，KVM</title><content type='html'>记得个把月前Xen和VMware还拼命想把各自的虚拟技术塞进Linux内核，可前两天蹦出一新闻，一种叫做&lt;a href="http://www.heise.de/english/newsticker/news/82344/from/rss09"&gt;KVM&lt;/a&gt;的Virtualization技术已经进入Linux内核的下一个版本2.6.20，不日就要和大家见面了。&lt;br /&gt;&lt;br /&gt;KVM好像是一夜之间长大的一样，之前偶从来没听说过（也许是偶孤陋寡闻了，不应该呀:），比当年Xen的突然蹿红还要快，简直是迅雷不及掩耳盗铃。能进Linux的内核，那看来品质上没得问题了。&lt;br /&gt;&lt;br /&gt;KVM需要运行在支持VT的Intel CPU或者是支持SVM的AMD CPU之上，能运行Windows和Linux。KVM还支持VMware的虚拟disk，说不定VMWare的虚拟系统它能直接拿来用哦！&lt;br /&gt;&lt;br /&gt;KVM已经进了Debian的repository（这小子什么时候进村的！！），使用Debian的用户直接apt就得了。赶快试试吧！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-208680802261304091?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/208680802261304091/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=208680802261304091' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/208680802261304091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/208680802261304091'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/12/kvm.html' title='又一种虚拟技术，KVM'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6451738054172242291</id><published>2006-12-13T22:20:00.000-08:00</published><updated>2009-02-24T07:18:36.330-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>linux在服务器和桌面</title><content type='html'>前几天在一个会议得到一些数字，BEA卖出的软件所运行的平台排在第一位的是Solaris，比例达到35%，但是比例在逐年下降；第二位是Linux，占到20%，上升势头迅猛；第三位是HPUX；第四位是Windows，占8%。&lt;br /&gt;&lt;br /&gt;Linux在服务器领域里的良好上升势头毋庸置疑，这里既有广大开发者的功劳，几家力推Linux的公司也功不可没，其中也包括那家背后捅Redhat刀子的数据库公司。没有商业支持做后盾，Linux是不可能在行业内被广泛采用的。&lt;br /&gt;&lt;br /&gt;相比之下，Linux在桌面领域却没什么新意思 。缺乏商业因素的Linux桌面，看起来不太好融入这个现实的商业社会。对于大多数人来说，他们并不愿意去hacking，而是愿意花点钱一个让他们放心的软件。实际上，相当多大公司会严格禁止这种hacking，他们需要所有软件都是有support的。谁说Ubuntu不是冲着这一点而诞生的呢？&lt;br /&gt;&lt;br /&gt;最好能多一些像Firefox那样能赚钱的开源项目！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6451738054172242291?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6451738054172242291/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6451738054172242291' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6451738054172242291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6451738054172242291'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/12/linux.html' title='linux在服务器和桌面'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8273768745585892158</id><published>2006-12-07T01:32:00.000-08:00</published><updated>2009-02-24T07:18:36.324-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>MIT和Harvard的学生看007电影</title><content type='html'>今天看一&lt;a href="http://tirania.org/blog/archive/2006/Dec-06.html"&gt;blog&lt;/a&gt;，有点意思。作者（一很有名的开源社区开发者）去波士顿看电影，身边一左一右分别坐着MIT和Harvard的大学生。电影是007系列的新片。MIT的学生自然不修边幅，而Harvard的自然是衣冠楚楚。&lt;br /&gt;当片中第一发子弹射出的时候，MIT的学生就开始发表评论了，内容无非是“子弹这样角度射入的话，人不应该那样倒下”这样的技术问题。而Harvard的人大部分时间保持了应有的安静，只不过在邦女郎跑火的时候会从喉咙里鼓囔出“yeah, baby", &lt;em&gt;"I want some of that"&lt;/em&gt;这样短小精悍的评论。&lt;br /&gt;好玩乎？冷乎？:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8273768745585892158?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8273768745585892158/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8273768745585892158' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8273768745585892158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8273768745585892158'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/12/mitharvard007.html' title='MIT和Harvard的学生看007电影'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5460621830855294429</id><published>2006-12-07T01:16:00.000-08:00</published><updated>2009-02-24T07:18:36.318-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>在Windows上编译GTK，尚未完成</title><content type='html'>一直打算这么做，用mingw，完全从源代码编译出一套Windows下的GTK开发环境／运行环境，然后编译gtk-sharp，Port一些基于 GTK或者是gtk-sharp的应用程序到Windows上来。为此，偶特意升级了系统，把p4 2.6G换成了酷睿E6300，终于在几天前，开始了尝试。&lt;br /&gt;需要编译的软件包很多，大致的列一下有：pkgconfig，libiconv，gettext，libjpeg，libtiff，libpng， zlib，freetype，glib，cairo，atk，libxml，fontconfig，pango，libgtk。前几个包都还算顺利，有一 些configure脚本出错，但稍微修改一下也过了。但是有几个软件包没有正确的生成动态连接库，以致于到后面编译gtk的时候无法通过 configure的检查。&lt;br /&gt;然后因为冲动重装了系统。重新搭好环境，结果遇到诡异的问题，目前还没有时间调查。等抽出时间我会把这些问题和解决办法（如果找到的话）整理出来。&lt;br /&gt;有这方面经验的朋友，交流一下哦。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5460621830855294429?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5460621830855294429/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5460621830855294429' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5460621830855294429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5460621830855294429'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/12/windowsgtk.html' title='在Windows上编译GTK，尚未完成'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6364928423112884753</id><published>2006-11-29T08:00:00.000-08:00</published><updated>2009-02-24T07:23:14.022-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='娱乐'/><title type='text'>wii的Party！</title><content type='html'>周五晚上，一帮同学玩wii，玩得太high，浑然不知已经过了11点，要不是其中一个的老婆打电话过来，不知要玩到几点。&lt;br /&gt;&lt;br /&gt;周六起了床，又背着我的wii到另一个同学家里再战，马不停蹄的玩到7点多。&lt;br /&gt;&lt;br /&gt;总之这个周末的后果：一帮在周二周三进股市抄底结果被套的人把股市抛在脑后，玩到胳膊酸痛；我要赶紧买液晶电视；我的同学要赶紧买wii。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6364928423112884753?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6364928423112884753/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6364928423112884753' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6364928423112884753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6364928423112884753'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/1999/11/wiiparty.html' title='wii的Party！'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5863423906210023194</id><published>2006-11-12T12:58:00.000-08:00</published><updated>2009-02-24T07:18:36.310-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='软件'/><title type='text'>跑在Windows上的KDE，截图！</title><content type='html'>看这里：&lt;a href="http://people.mandriva.com/~lmontel/screenshot-kde4"&gt;http://people.mandriva.com/~lmontel/screenshot-kde4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;期待一场开源软件大举占领Windows平台的浪潮，呵呵！     凭心而论，Windows下的软件很多做得非常专业，优化得也非常好。开源软件如果能进军Windows平台，接触到更多的用户群，对其自身的健康成长将非常有帮助。&lt;br /&gt;&lt;br /&gt;一直打算做这么一件事情，为Windows平台搭建一套类似debian apt的开源软件仓库repository。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5863423906210023194?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5863423906210023194/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5863423906210023194' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5863423906210023194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5863423906210023194'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/11/windowskde.html' title='跑在Windows上的KDE，截图！'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1885854518116274106</id><published>2006-11-06T00:20:00.000-08:00</published><updated>2009-02-24T07:18:36.304-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>在lighttpd上配置Rails</title><content type='html'>在这篇&lt;a href="http://help.textdrive.com/index.php?pg=kb.page&amp;amp;id=250"&gt;tutorial&lt;/a&gt;的帮助下，我在一台破破的tp600上，配置好了lighttpd ＋ Rails。&lt;br /&gt;&lt;br /&gt;lighttpd是个轻量级的http server，比我以前用的apache2-mpm-prefork快很多。具体快多少&lt;a href="http://www.lighttpd.net/benchmark/"&gt;这里&lt;/a&gt;有测试数据，据称youtube就是用的lighttpd，而且它也是《Agile Web Development with Rails》一书推荐的web服务器。&lt;br /&gt;&lt;br /&gt;btw：我用的系统是debian unstable，没有自己编译源代码。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1885854518116274106?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1885854518116274106/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1885854518116274106' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1885854518116274106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1885854518116274106'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/11/lighttpdrails.html' title='在lighttpd上配置Rails'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1126259265472316313</id><published>2006-11-02T00:05:00.000-08:00</published><updated>2009-02-24T07:18:36.299-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Screen: 字符界面的VNC</title><content type='html'>远古时代，分布在世界各地的原始人各自独立的学会了使用火，进而学会了做陶器，又发明了轮子。于是文明就蓬蓬勃勃的发展起来了。即使到了近代，微积分也是由英吉利海峡两岸的莱布尼兹和牛顿几乎同时独立创建的。&lt;br /&gt;&lt;br /&gt;可是短短100年之后，生活在互联网时代的人们突然发现很难再有独创了，有一点想法上网一google就发现有人做了，或者是埋头做了一段时间，发现有人先做出来了。生在这个不需要“重新发明轮子”的时代，真说不清这是种幸运还是不幸;)&lt;br /&gt;&lt;br /&gt;四、五年前，偶在登录到服务器上工作时，萌生过一个想法：要是能有个字符界面的VNC就好了。就好比我telnet到一台服务器工作，启动了一堆程序，设置了一堆环境变量，下班后关掉telnet client端，第二天上班telnet上来，什么都没变，还能接着工作。就跟VNC似的，除了不是GUI的。&lt;br /&gt;&lt;br /&gt;最近才发现这个软件早几百年前（八十年代）就有了，这就是 screen。它不光具有我所说的功能，还是更多贴心的功能。&lt;br /&gt;&lt;br /&gt;登录（telnet or ssh都OK）到一台装有screen的服务器，运行screen。然后粗暴的关掉你的client端，再重新连上，执行screen -d -R。哈，你的终端又回来了。继续工作吧。下面是最常用的screen快捷键。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;Ctrl+a,c  创建一个新的终端&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Ctrl+a,A  为当前终端起个名字，当你开了10个终端的时候，这个功能就非常必要了。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Ctrl+a,"   显示终端列表&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Ctrl+a,a   切换到前一个终端&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;现在我在一台服务器上起个screen，开10来个终端，连到美国中国的5，6台服务器，每个终端上跑着自己的程序。自己的电脑想关就关，符合集约型社会的要求，既不怕掉电，也不怕断网，就怕自己掉链子，hoho!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1126259265472316313?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1126259265472316313/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1126259265472316313' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1126259265472316313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1126259265472316313'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/11/screen-vnc.html' title='Screen: 字符界面的VNC'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7664601355655786465</id><published>2006-10-21T03:50:00.000-07:00</published><updated>2009-02-24T07:18:36.292-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Shell, Sqlite，date和awk</title><content type='html'>上周写了有生以来最复杂的Shell程序，这个程序的目的是从一个文本文件生成各种统计信息。文本文件有1000多行，每行对应一条记录，每条记录有10来个域。统计的信息很多，比如一个长时间段内，某个域发生某种变化的记录总数的变化趋势。统计信息的种类最终是8项。&lt;br /&gt;&lt;br /&gt;我决定拿Sqlite来作这个事情。Sqlite是个轻量级的数据库，它提供一个sqlite的命令行，通过它就能完成创建数据库、插入数据、查询等各种操作。我所要做的就是：&lt;br /&gt;1.从原始数据文件，也就是那个文本文件，生成一个sql语句文件，进而用sqlite生成数据库；&lt;br /&gt;2.生成查询统计信息的sql语句文件，然后用sqlite命令行进行查询。&lt;br /&gt;&lt;br /&gt;在shell程序中使用sqlite很方便，首先需要生成这样的sql语句文件&lt;br /&gt;sql语句文件sql.txt：&lt;br /&gt;.output Somefile    // 这句话告诉sqlite把sql执行的结果输出到文件&lt;br /&gt;create tab ...        // 正常的sql语句&lt;br /&gt;insert into ....&lt;br /&gt;.quit                // 告诉sqlite退出&lt;br /&gt;然后，cat sql.txt | sqlite data.db。这样，sqlite就会执行sql.txt中的sql语句，并把结果保存到Somefile中。&lt;br /&gt;&lt;br /&gt;从原始数据生成创建数据库的sql.txt，当然是awk最胜任了。我也是这次才发现awk如此的好用。在计算平均值的时候也只能求助于它，因为它不会把商取整。&lt;br /&gt;echo "$a $b"|awk '{ print $1/$2 }'    #计算a/b的值&lt;br /&gt;&lt;br /&gt;最后说说shell编程，如果能有选择的话，我肯定会挑python、tcl甚至ruby，这样代码至少会让减少70％，看起来也会更elegant。一开始在Linux上写这个脚本，把对日期的处理完全交给date命令了，但是最终脚本运行在solaris上时，才发现solaris上的date傻得可以，只好自己处理日期的增减变化。不过提醒一下各位如果你们在Linux山写脚本要涉及日期的处理时，大可以把这份脏活交给date命令来作。&lt;br /&gt;比如你想看某个特定日期，比如说2005年10月1日，的前20天的日期，这么做就可以了：&lt;br /&gt;date "+%D" --date="10/01/2005 20 days ago"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7664601355655786465?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7664601355655786465/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7664601355655786465' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7664601355655786465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7664601355655786465'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/10/shell-sqlitedateawk.html' title='Shell, Sqlite，date和awk'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6240806777377450052</id><published>2006-10-20T23:20:00.000-07:00</published><updated>2009-02-24T07:18:36.286-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Ruby的特性之四，MIXIN</title><content type='html'>好久没写了，Ruby和Rails也很久没碰了，不过我还是想把一开始学习Ruby和Rails的感觉写完。今天就是最后一个特性，Mixin。&lt;br /&gt;先说C++的多重继承，这个东西不论是从逻辑上还是从实际运用上都容易把人搞晕，所以后来Java和C＃都取消了多重继承，换之以接口。但是接口有个缺点，就是，它只是接口，不包括具体实现，继承接口的类需要自己实现接口定义的各种方法，很多时候这些方法的实现是大同小异的，程序员不得不一次次重复自己，repeat yourself已经是很痛苦的事情了，更不用说以后扩展维护的难度。&lt;br /&gt;所以又出现了范型，generic programming。范型还不错，实现了数据类型无关的编程，这对很大一类问题都是很简单直接的解决办法，但是范型并没有很直接的解决继承接口无法继承实现的问题。并且，Ruby这样的动态语言本身就是数据类型无关的，并不需要范型这种东西，所以范型只是用来解救Java，C＋＋和C＃程序员的。&lt;br /&gt;Ruby提供的Mixin可以说是最直接的解决了接口继承的缺点。Mixin就是带有实现的接口。举个最简单的例子吧。&lt;br /&gt;&lt;br /&gt;module Mixin1&lt;br /&gt;def fun1&lt;br /&gt;print "I am fun1 from Mixin1"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def fun2&lt;br /&gt;print "I am fun2 from Mixin1. I'll call a member function of the class which includes me"&lt;br /&gt;mem_fun&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def fun3&lt;br /&gt;print "I am fun3 from Mixin1. I'll print out a member variable of the class which includes me"&lt;br /&gt;print mem_var&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class A&lt;br /&gt;include Mixin1&lt;br /&gt;def mem_fun&lt;br /&gt;print "I am a member fun of class A"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def initialize&lt;br /&gt;@mem_var ="I am a member varaible of class A&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;a = A.new&lt;br /&gt;a.fun1&lt;br /&gt;a.fun2&lt;br /&gt;a.fun3&lt;br /&gt;&lt;br /&gt;That's it！其实对于动态语言来说，实现这一点并不难，做到前面三点也不难，难的是Ruby把这些做的这么贴心，这么顺手，真难怪其异军突起。好了好了，我就不在这放马后炮了，希望各位have fun with it。下一篇我得讲讲shell编程了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6240806777377450052?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6240806777377450052/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6240806777377450052' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6240806777377450052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6240806777377450052'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/10/rubymixin.html' title='Ruby的特性之四，MIXIN'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2119441275064328765</id><published>2006-08-31T11:24:00.000-07:00</published><updated>2009-02-24T07:18:36.278-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Ruby的特性之三，Block</title><content type='html'>另外一个不得不说的特性应该是Block，Block是一段代码，可以看作是一种简洁明了的回调函数的实现方式。&lt;br /&gt;比如下面这段代码：&lt;br /&gt;def do_it_three_times ()&lt;br /&gt;yield&lt;br /&gt;yield&lt;br /&gt;yield&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;do_it_three_times { puts "hello" }&lt;br /&gt;&lt;br /&gt;上面这段代码定义了一个函数do_it_three_times，它的功能是调用传给它的block三次。所以这段代码的输出是：&lt;br /&gt;hello&lt;br /&gt;hello&lt;br /&gt;hello&lt;br /&gt;&lt;br /&gt;跟iterator配合起来使用也非常方便，比如：&lt;br /&gt;［"cat", "dog", "pig"].each {|pet| puts "I love "+pet}&lt;br /&gt;它的输出是：&lt;br /&gt;I love cat&lt;br /&gt;I love dog&lt;br /&gt;I love pig&lt;br /&gt;&lt;br /&gt;Block在实现某些功能时异常方便，比如对于一个GUI程序中的所有按钮，点击后程序做相应动作。最愚蠢的办法是为每个按钮定义Button的子类，重载on_button_click成员函数；还可以用add_listener或者signal_connect之类的办法，将按钮点击事件与某个action关联起来。这种方法在大部分时候有些overkill。如果用block则可以这样写：&lt;br /&gt;start_button = Button.new { player.start; }&lt;br /&gt;stop_button = Button.new { player.stop; }&lt;br /&gt;这是不是更加简单清晰呢！？&lt;br /&gt;&lt;br /&gt;Block还可以用来实现Transaction，看这个例子：&lt;br /&gt;class File&lt;br /&gt;def File.my_open(*args)&lt;br /&gt;result = file = File.new(*args)&lt;br /&gt;# If there's a block, pass in the file and close&lt;br /&gt;# the file when it returns&lt;br /&gt;if block_given?&lt;br /&gt;result = yield file&lt;br /&gt;file.close&lt;br /&gt;end&lt;br /&gt;return result&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;这里定义的my_open除了可以像普通的open函数那样打开文件并返回打开文件对应的对象外，如果调用时提供了Block，它会调用这个block来处理该文件，然后将文件关闭，实现了&lt;br /&gt;事务的完整性（打开的文件被确保关闭）。两种调用方式如下：&lt;br /&gt;&lt;br /&gt;# 普通的调用方式，得到打开文件对应的对象&lt;br /&gt;my_file = File.my_open("/path/to/somefile");&lt;br /&gt;&lt;br /&gt;# Transaction的调用方式，得到处理结果&lt;br /&gt;res = File.my_open("/path/to/somefile") do |file|&lt;br /&gt;#some code to process the file&lt;br /&gt;...&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;说明：以上例子来自Programming Ruby: The Pragmatic Programmer's Guide。这本书写得非常好。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2119441275064328765?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2119441275064328765/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2119441275064328765' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2119441275064328765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2119441275064328765'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/rubyblock.html' title='Ruby的特性之三，Block'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8897491918504368578</id><published>2006-08-19T13:29:00.000-07:00</published><updated>2009-02-24T07:18:36.272-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Ruby的特性之二，module_eval</title><content type='html'>利用module_eval，Ruby可以读入一段代码，把它加入到正在运行的系统之中。这简直太dynamic了。如下面的例子：&lt;br /&gt;&lt;br /&gt;#定义一个类&lt;br /&gt;class TestClass&lt;br /&gt;end&lt;br /&gt;＃定义一字符串&lt;br /&gt;code = %q{ def hello() " Cool, isn't?" end }&lt;br /&gt;#让code立刻生效&lt;br /&gt;TestClass.module_eval(code)&lt;br /&gt;TestClass.new.hello()&lt;br /&gt;&lt;br /&gt;这段代码将输出“Cool, isn't?”。module_eval在RoR中得到广泛的运用，比如下面这段在RoR中常见的代码&lt;br /&gt;&lt;br /&gt;class WeblogController &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8897491918504368578?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8897491918504368578/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8897491918504368578' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8897491918504368578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8897491918504368578'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/rubymoduleeval.html' title='Ruby的特性之二，module_eval'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3262120375561460974</id><published>2006-08-19T12:31:00.000-07:00</published><updated>2009-02-24T07:18:36.265-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Ruby的特性之一，类的修改</title><content type='html'>Ruby语言本身有很多有趣的特性，比如可以将类重新打开进行修改，对类的修改会立刻反映到该类已经生成的对象上。举个例子：&lt;br /&gt;&lt;br /&gt;#定义一个类&lt;br /&gt;class TestClass&lt;br /&gt;def initialize()&lt;br /&gt;puts "initialize Ver 1"&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#初始化一个对象，输出是：initialize Ver 1&lt;br /&gt;a = TestClass.new&lt;br /&gt;&lt;br /&gt;#打开TestClass，进行修改：重新定义构造函数initialize，增加一个函数fun1&lt;br /&gt;class TestClass&lt;br /&gt;def initialize()&lt;br /&gt;puts "initialize Ver 2"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def fun1()&lt;br /&gt;puts "fun1 invoked"&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#初始化一个对象，输出是：initialize Ver 2&lt;br /&gt;b = TestClass.new&lt;br /&gt;&lt;br /&gt;#对a和b调用fun1，得到同样的输出：fun1 invoked&lt;br /&gt;a.fun1&lt;br /&gt;b.fun1&lt;br /&gt;&lt;br /&gt;借助这种动态特性，可以实现很多有趣的功能。比如实现ORmapping时，在运行中为一个表生成一个类，并且生成了若干对象。如果表发生了变化，只需要利用这个特性对类进行修改，就可以确保对象与表的同步。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3262120375561460974?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3262120375561460974/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3262120375561460974' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3262120375561460974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3262120375561460974'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/ruby.html' title='Ruby的特性之一，类的修改'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3785207619646327952</id><published>2006-08-19T12:08:00.000-07:00</published><updated>2009-02-24T07:18:36.259-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>开始学习Ruby和Ruby on Rails</title><content type='html'>前几天在一个J2EE的项目中打下手。简简单单一个网站，却需要用到Hibernate，Spring，Struts等一堆框架，写无数配置文件，到头来还是需要写很多冗余的代码，做很多本可以让计算机自动完成的维护工作。很不以为然。&lt;br /&gt;之所以出现这种原因，我以一个无知者的身份妄加揣度，是因为J2EE在一开始设计的时候，就走了学院派那套大而空的路子，这跟Sun的JXTA如出一辙。&lt;br /&gt;不过J2EE比JXTA要好一些，它得到了广泛的运用。在这其中，大部分人痛并快乐着的学习使用复杂的J2EE，并以征服各种不易用性而颇有成就 感（在J2EE里面找这类东西真是太多了）；另有些聪明人不堪忍受J2EE拿牛刀杀鸡（且杀不死）的缺点，整出一堆框架来解决J2EE的各种实际问题。&lt;br /&gt;然而，即使在这么多人做了这么多的努力之后，J2EE离一个完美的架构还差得很远。这个差距在Ruby on Rails出现之后就显得更加明显（我想，RoR的作者一定没有学过J2EE，否则就被毒害了），也许J2EE永远也追不上RoR。&lt;br /&gt;我花了些时间看了&lt;a href="http://www.rubyonrails.org/docs"&gt;http://www.rubyonrails.org/docs&lt;/a&gt; 上的Tutorials，就立刻决定摒弃以前对ruby的成见和对J2EE诚惶诚恐的敬畏，投身Ruby和RoR的怀抱。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3785207619646327952?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3785207619646327952/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3785207619646327952' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3785207619646327952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3785207619646327952'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/rubyruby-on-rails.html' title='开始学习Ruby和Ruby on Rails'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8464829537465746847</id><published>2006-08-18T23:48:00.000-07:00</published><updated>2009-02-24T07:18:36.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>kde下自动mount usb硬盘</title><content type='html'>我用的是debian unstable。需要安装usbmount这个包，并对它的配置文件稍作修改：&lt;br /&gt;&lt;br /&gt;打开/etc/usbmount/usbmount.conf，在"FILESYSTEMS"这个选项里增加vfat（如果你的u盘是ntfs格式，你自然还要加入ntfs），在FS_MOUNTOPTIONS这个选项里加入""-fstype=vfat,iocharset=utf8,codepage=936,umask=000,users"。其中iocharset要根据你的locale具体定。&lt;br /&gt;&lt;br /&gt;随后重新启动udev：#/etc/init.d/udev restart&lt;br /&gt;&lt;br /&gt;这样就OK了，插入U盘试试吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8464829537465746847?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8464829537465746847/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8464829537465746847' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8464829537465746847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8464829537465746847'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/kdemount-usb.html' title='kde下自动mount usb硬盘'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4651353083326878721</id><published>2006-08-07T14:49:00.000-07:00</published><updated>2009-02-24T07:18:36.246-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络技术'/><title type='text'>ISP提供Cache支持，p2p的新方向？</title><content type='html'>周末跟一个做p2p的朋友聊天，他提到一个新的市场机会。&lt;br /&gt;最近几年，类似BT、电驴这样的P2P应用在互联网流量中所占的比例越来越高，这让电信运营商非常头疼。以往普遍的做法是封杀，但是对于P2P这样有生命 力的应用，封杀无法取得好的效果。实际上，bt已经被用来发布正版软件、电影，基于P2P的语音软件skype正大行其道，P2P已经成为主流的互联网应 用。封杀不行了，那是不是可以采用疏导的方式呢？&lt;br /&gt;朋友描述的就是这样一种电信设备，它大量部署在运营商的网络中，缓存热门的内容。当一个计算机要通过p2p获取某个内容时，它可以从距它最近的缓存有该内容的设备中取得，这样就降低了对核心网的带宽占用。当然要实现这种效果，需要P2P协议的支持。&lt;br /&gt;我对此持怀疑态度，对于解决P2P占用过多网络资源的问题，我始终觉得应该从改进协议着手，实现对运营网络友好的P2P协议，而不是由运营商来提出一种标准，让强制推行；并且这种机制不应当由路由器来完成，不应当要求替换或升级现有网络设备。&lt;br /&gt;这可能就是长期存在的两类观点，互联网的观点和电信的观点，的区别:)&lt;br /&gt;但是不管怎么样，从技术的角度来说，这样一种机制总是会对网络的性能有所提升。可巧的是，今天一大早就看到slashdot的新闻：BitTorrent的开发者和CacheLogic公司合作，提供这样一种解决方案。有兴趣的朋友可以看看：&lt;br /&gt;&lt;br /&gt;&lt;a href="http://slashdot.org/article.pl?sid=06/08/07/214259&amp;amp;from=rss"&gt;http://slashdot.org/article.pl?sid=06/08/07/214259&amp;amp;from=rss&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cachelogic.com/home/pages/news/pr070806.php"&gt;http://www.cachelogic.com/home/pages/news/pr070806.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4651353083326878721?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4651353083326878721/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4651353083326878721' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4651353083326878721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4651353083326878721'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/ispcachep2p.html' title='ISP提供Cache支持，p2p的新方向？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7113433205725647145</id><published>2006-08-07T13:37:00.000-07:00</published><updated>2009-02-24T07:18:36.241-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='软件'/><title type='text'>Tomboy，支持wiki的便箴</title><content type='html'>又到了新软件推介时间，这次带给大家的是&lt;a href="http://www.beatniksoftware.com/tomboy"&gt;tomboy&lt;/a&gt;， 一个支持wiki的便箴软件。以前跟大家介绍过zim，也是一个用wiki的方式记录note的软件，不过那个软件相当的糙，用了一段时间我就放弃了。而 这次的tomboy却是非常的好用。实际上，前一段时间我打算把zim改进一下，基本上tomboy就是我想要的样子（还缺一些feature），甚至是 用gtk#写的，跟我的想法一致。大家可以试试能不能在windows上运行，应该问题不大。&lt;br /&gt;前几天，tomboy成为gnome的一个标准模块，这标志着mono/.net技术将在gnome的未来占有一席之地，赞！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7113433205725647145?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7113433205725647145/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7113433205725647145' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7113433205725647145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7113433205725647145'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/tomboywiki.html' title='Tomboy，支持wiki的便箴'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6240258231260150136</id><published>2006-08-07T12:25:00.000-07:00</published><updated>2009-02-24T07:18:36.230-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>用yacc（bison）分析c代码</title><content type='html'>这些日子花了不少时间在一个c语言的语法分析程序上，这个程序要能识别变量、函数的定义、声明和引用，简而言之就是找出sourceinsight所能提供的信息（比si还要精确）。&lt;br /&gt;分析代码和编译代码一样，都要做语法分析。但是因为分析代码不做预处理，所以就会遇到一些麻烦，比如处理一些定义的稀奇古怪的宏，无法判断一个identifier是变量还是类型。这么一来，严格的用C语言语法来分析代码就没法通过。&lt;br /&gt;考虑到这个问题，一开始决定用lex作词法分析，生写语法分析。进行到中间，代码复杂度越来越高，感觉力不从心。又决定通过修改标准的C语言语法规则，用bison（yacc的GNU实现）来完成语法分析。&lt;br /&gt;所谓“工欲善其事，必先利其器”，bison在做语法分析上，果然很方便。但是很快就遇到上面所说的问题：不做预处理，无法得到一个token的类型。标准的yacc支持的是LALR语法，LALR语法只预读一个token，无法解决这个问题。&lt;br /&gt;好在GNU的Yacc实现bison支持GLR语法，GLR没有只预读一个token的限制，它用状态分裂来解决无法判断token类型的问题。采用GLR，写语法规则就基本上没有什么限制了。&lt;br /&gt;但是GLR有个问题，它用状态分裂解决问题，如果所有分裂的状态只有一个能分析成功，那自然OK；如果不能，就叫产生了ambiguity（不确定），分析就失败了。&lt;br /&gt;解决ambiguity，可以用%dprec来指定规则的优先级。当两个状态发生ambiguity时，根据它们对应的reduce规则的优先级，选择优先级高的那个状态。&lt;br /&gt;但还有一类ambiguity的情况，用%dprec也没发解决。那就是两个产生ambiguity的状态它们对应的reduce规则是同一条。这类问题 很棘手，我只好采用重写规则来避免。但这就导致规则的可读性很差，而且往往是解决一个ambiguity又引入另外一个。&lt;br /&gt;无奈，往bison的mail list里发了一封信求救，第二天收到一哥们回信，信中说：&lt;br /&gt;“用merge啊。我也遇到过类似的问题。”&lt;br /&gt;merge是啥呢？merge就正好是处理上面这类问题的，相当于把多个状态合并。因为是比较新的特性，在bison的文档里并没有很明显的提及。&lt;br /&gt;这样，用bison分析c代码就基本没有问题了;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6240258231260150136?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6240258231260150136/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6240258231260150136' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6240258231260150136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6240258231260150136'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/08/yaccbisonc.html' title='用yacc（bison）分析c代码'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4263431041410949480</id><published>2006-07-28T13:22:00.000-07:00</published><updated>2009-02-24T07:18:36.224-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>google提供source hosting的幕后</title><content type='html'>原来subversion的开发者们都被google网罗过去了(&lt;a href="http://tirania.org/blog/archive/2006/Jul-27-1.html"&gt;出处&lt;/a&gt;)。google到底想干嘛？我真是越来越猜不透你了。我猜不透没关系，微软肯定很担心。我倒是希望google能更多的支持开源世界，加快开源软件的进步。&lt;br /&gt;&lt;br /&gt;有时想的发散一点，公司跟国家有相似的地方。为什么美国能从建国到现在几百年稳健的发展？为什么日本的明治维新能迅速的富国强兵？为什么微软能独领软件行 业风骚10几年（从95年算起吧）？为什么google能迅速异军突起，俨然成为一个新帝国？这恐怕不是几个政治家或CEO做做秀就能办到的。值得思索 啊！美国和日本的历史值得研究。&lt;br /&gt;&lt;br /&gt;BTW：中国人对帝国这个词有本能的抵触心理，其实帝国也有邪恶、正直或中性之分，google帝国？我能接受；美帝国？也还好啦；日本帝国？No way;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4263431041410949480?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4263431041410949480/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4263431041410949480' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4263431041410949480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4263431041410949480'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/googlesource-hosting.html' title='google提供source hosting的幕后'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5874657328394983396</id><published>2006-07-28T13:11:00.000-07:00</published><updated>2009-02-24T07:18:36.217-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>gettext的用法的补充</title><content type='html'>developerwork上出了一篇文章，挺不错，有兴趣的可以看看。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/cn/aix/library/au-internatlgtk/index.html?ca=dwcn-newsletter-aix"&gt;使用 GTK+ 进行健壮的国际化&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5874657328394983396?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5874657328394983396/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5874657328394983396' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5874657328394983396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5874657328394983396'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/gettext_28.html' title='gettext的用法的补充'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-224568035364175197</id><published>2006-07-24T17:30:00.000-07:00</published><updated>2009-02-24T07:18:36.211-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux下纯软件的多头显示</title><content type='html'>我有一个破笔记本，一直没什么用处。我一直觉得我的显示器太小，梦想着能有两个显示器多头显示，但那需要两个显卡或者是支持多头显示的显卡，我都没有。&lt;br /&gt;今天我才知道，原来用软件，就能利用这台笔记本的显示器实现多头显示。&lt;br /&gt;这里有很详细的&lt;a href="http://www-128.ibm.com/developerworks/cn/opensource/os-mltihed/index.html"&gt;步骤说明&lt;/a&gt;。&lt;br /&gt;补充一点，因为现在大部分系统缺省X server都是不做TCP监听的，所以如果用文中的方法，就需要打开TCP监听。也许用ssl forward也可以，我还没有试。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-224568035364175197?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/224568035364175197/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=224568035364175197' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/224568035364175197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/224568035364175197'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/linux.html' title='Linux下纯软件的多头显示'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3019725088264845180</id><published>2006-07-18T11:43:00.000-07:00</published><updated>2009-02-24T07:18:36.203-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Gnome, Mono和.Net</title><content type='html'>一大早起来就看见这样&lt;a href="http://mail.gnome.org/archives/desktop-devel-list/2006-July/msg00298.html"&gt;一封信&lt;/a&gt;，信中对Gnome开发社区对.Net，对High Level语言的抵制表示了强烈的不满。作者的观点跟我的很相似，而且更深入。他指出，如果Gnome开发社区还把c语言作为主要的开发语言，就会失去大部分新生代开发人员。呵呵，我不是新生代，但是打死我我也不想用c来写GUI程序。&lt;br /&gt;软件就是一层层的封装。在理想世界中，每个程序员只需要在满足他需求的层上工作，而他的工作是给出刚刚好足够的信息，向系统描述这个软件的特征。&lt;br /&gt;这么多年的技术发展在很大程度上是朝着这个方向前进的，比如各种High level的编程语言，再比如ruby on rails，再比如.Net。&lt;br /&gt;我以前说过，.net是个好技术。上帝因为害怕人类修成通往天堂的高塔，而让人类说不同的语言以限制人类的合作。在软件世界里，多种语言的存在也一直是知识积累再利用的巨大障碍。.Net在很大程度上解决了这个问题。&lt;br /&gt;所以说，开源世界更需要.Net，一旦丰富的开源资源借助.Net的方式，可以方便快捷的使用，其力量真是不可估量。说不定这次微软养出的孩子最终要将微软送入坟墓了。&lt;br /&gt;话说回来，目前开源世界的两个重量级桌面环境对新技术的支持、采用还相当欠缺，Gnome如此，KDE也好不到哪去。不过这并不妨碍大家现在就采用mono，来写你们的程序。&lt;br /&gt;别犹豫了，赶快下载mono和monodevelop吧，用gtk sharp来写你们的程序，那可是在Windows，Unix，linux和MacOSX都能运行的哦:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3019725088264845180?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3019725088264845180/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3019725088264845180' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3019725088264845180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3019725088264845180'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/gnome-mononet.html' title='Gnome, Mono和.Net'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-505308358119489412</id><published>2006-07-16T19:54:00.000-07:00</published><updated>2009-02-24T07:18:36.197-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>gettext的用法</title><content type='html'>gettext是GNU世界里用来实现i18n的标准方式，下面用一个小例子来演示它的用法。&lt;br /&gt;源文件gettext_demo.c&lt;br /&gt;#include&lt;br /&gt;&lt;br /&gt;#include&lt;br /&gt;#include&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;//    设置程序的locale&lt;br /&gt;setlocale(LC_ALL, "");&lt;br /&gt;//  为你的程序选择一个domain&lt;br /&gt;textdomain("gettext_demo");&lt;br /&gt;//    为这个domain绑定一个目录，就用当前目录吧&lt;br /&gt;bindtextdomain("gettext_demo", ".");&lt;br /&gt;//  指定输出所用的编码，通常你不需要用它&lt;br /&gt;bind_textdomain_codeset("gettext_demo", "UTF－8");&lt;br /&gt;&lt;br /&gt;//  来，跟大家say hello一下&lt;br /&gt;printf(gettext("Hello\n"));&lt;br /&gt;return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;编译执行之：&lt;br /&gt;$gcc gettext_demo.c&lt;br /&gt;$./a.out&lt;br /&gt;Hello&lt;br /&gt;&lt;br /&gt;好像没什么变化，别急，让我们看看底层发生了什么!&lt;br /&gt;$strace ./a.out&lt;br /&gt;....(略去无关输出）&lt;br /&gt;open("/workspace/learn/gettext/./zh_CN.UTF/LC_MESSAGES/gettext_demo.mo", O_RDONLY) = -1 ENOENT (No such file or directory)&lt;br /&gt;open("/workspace/learn/gettext/./zh_CN/LC_MESSAGES/gettext_demo.mo", O_RDONLY) = -1 ENOENT (No such file or directory)&lt;br /&gt;open("/workspace/learn/gettext/./zh.gb2312/LC_MESSAGES/gettext_demo.mo", O_RDONLY) = -1 ENOENT (No such file or directory)&lt;br /&gt;open("/workspace/learn/gettext/./zh/LC_MESSAGES/gettext_demo.mo", O_RDONLY) = -1 ENOENT (No such file or directory)&lt;br /&gt;....(略去无关输出）&lt;br /&gt;&lt;br /&gt;看起来，程序在试图找到一个叫gettext_demo.mo的文件。这个文件里保存了"Hello"在当前locale下应该被翻译成什么的信息。下面让我们来生成这个文件。&lt;br /&gt;$xgettext gettext_demo.c    // 从源文件里获取要翻译的字符串，得到一个叫message.po的文件&lt;br /&gt;打开这个文件看看，稍微有点脑子的人就知道是怎么回事。你当然可以用vi之类的编辑器来编辑，不过还有专门的工具像poedit,kbabel，推荐使用这些工具，把msgid "Hello\n"对应的msgstr设成"你好\n"就算翻译完了。然后执行：&lt;br /&gt;$msgfmt message.po&lt;br /&gt;这样你得到一个message.mo的文件（po是potable object的意思，mo是machine object的意思），这个东东就是上面程序在找的gettext_demo.mo。下一步把message.mo放到合适的位置就行了。&lt;br /&gt;$mkdir -p zh_CN.UTF/LC_MESSAGES&lt;br /&gt;$mv message.mo zh_CN.UTF/LC_MESSAGES/gettext_demo.mo&lt;br /&gt;再执行./a.out，程序就会输出“你好”了。&lt;br /&gt;&lt;br /&gt;课外习题：&lt;br /&gt;1. 研究一下bind_textdomain_codeset的用处&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-505308358119489412?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/505308358119489412/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=505308358119489412' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/505308358119489412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/505308358119489412'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/gettext.html' title='gettext的用法'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7497196489278481852</id><published>2006-07-16T18:48:00.000-07:00</published><updated>2009-02-24T07:18:36.190-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>介绍两个开源的软件：blender和solfege</title><content type='html'>开源的软件多啊，说不准哪些就是你需要的。今天给大家介绍两个。&lt;br /&gt;一个是&lt;a href="http://www.blender.org/"&gt;blender&lt;/a&gt;，这是我见过的界面最cool、最好用、最有 创意的软件。它是用来做3D动画的，我曾经拿它做了新房的模型，效果惨不忍睹。不过这不能怪blender，它可是专业级的3D动画创作软件，《蜘蛛人》 就用过它，《elephants dream》更是完全用blender完成的。&lt;br /&gt;还有一个是&lt;a href="http://www.solfege.org/"&gt;solfege&lt;/a&gt;，这是个音乐学习软件，可以拿来练练耳朵;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7497196489278481852?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7497196489278481852/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7497196489278481852' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7497196489278481852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7497196489278481852'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/blendersolfege.html' title='介绍两个开源的软件：blender和solfege'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8035630697549305463</id><published>2006-07-16T17:38:00.000-07:00</published><updated>2009-02-24T07:18:36.184-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>python，gtk和多线程</title><content type='html'>前几天用python和Gtk写了个测试监控程序，主线程是GTK的图形界面，另外还起了一个后台线程定时运行测试脚本，检查测试结果。&lt;br /&gt;写完一跑，发现后台线程没有运行。要是在主线程进入图形界面之前sleep一会，后台线程就能运行，但是主线程一醒，后台线程又停了。&lt;br /&gt;先google一下，发现2003年有个哥们在python的mail list里问了同样的&lt;a href="http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=3&amp;amp;url=http%3A%2F%2Fmail.python.org%2Fpipermail%2Fpython-list%2F2003-July%2F175867.html&amp;amp;ei=3T67RLPWI6iusALJzYz7BA&amp;amp;sig2=Hed9WoUzXwniWzkYvBZb0Q"&gt;问题&lt;/a&gt;，可惜没人回答。再接着google就没有相关的内容了。这种迹象表明，该问题可能是个很傻的问题。从各方面看，这个问题都和GTK相关，于是就查pygtk的文档，果然找到这么个函数：&lt;br /&gt;&lt;br /&gt;gtk.gdk.threads_init&lt;br /&gt;&lt;br /&gt;这个函数可以让多个线程使用python解释器。这个函数要在gtk.main之前调用，如果不调用这个函数就调用gtk.main，那gtk.main所在的线程就会独占python解释器，使其他线程无法执行。&lt;br /&gt;&lt;br /&gt;OK，加入这个函数，运行，两个线程跑得钢钢的。文档不余欺也。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8035630697549305463?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8035630697549305463/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8035630697549305463' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8035630697549305463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8035630697549305463'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/pythongtk.html' title='python，gtk和多线程'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7432082365025502622</id><published>2006-07-16T17:02:00.000-07:00</published><updated>2009-02-24T07:18:36.155-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>使用glade生成图形界面的一个例子</title><content type='html'>&lt;p&gt;胖胖同学问如何在一个glade文件里描述多个窗口，如何只描述窗口的一部分。我写了下面这个例子，希望能有所帮助。&lt;br /&gt;&lt;br /&gt;源文件forpp.cpp：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;#include&lt;/p&gt;&lt;br /&gt;&lt;p&gt;#include&lt;br /&gt;&lt;br /&gt;int main(int argc, char** argv)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;Gtk::Main kit(argc, argv);&lt;br /&gt;&lt;br /&gt;Glib::RefPtr refXml   = Gnome::Glade::Xml::create("forpp.glade", "window1");&lt;br /&gt;&lt;br /&gt;Gtk::Window* pWnd = NULL;&lt;br /&gt;&lt;br /&gt;Gtk::HPaned* pHP = NULL;&lt;br /&gt;&lt;br /&gt;refXml-&amp;gt;get_widget("window1", pWnd);&lt;br /&gt;&lt;br /&gt;refXml-&amp;gt;get_widget("hpaned1", pHP);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;refXml = Gnome::Glade::Xml::create("forpp.glade", "frame1");&lt;br /&gt;&lt;br /&gt;Gtk::Frame* pFr = NULL;&lt;br /&gt;&lt;br /&gt;refXml-&amp;gt;get_widget("frame1", pFr);&lt;br /&gt;&lt;br /&gt;pHP-&amp;gt;add2(*pFr);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Gtk::Main::run(*pWnd);&lt;br /&gt;&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;因为在这贴XML文件很麻烦，我就不把glade文件贴出来了。这个glade文件对应的窗口如下图：&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/56/186978554_96fa4c8222.jpg?v=0" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7432082365025502622?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7432082365025502622/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7432082365025502622' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7432082365025502622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7432082365025502622'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/glade.html' title='使用glade生成图形界面的一个例子'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5262047404076199926</id><published>2006-07-01T19:18:00.000-07:00</published><updated>2009-02-24T07:16:33.404-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>KDE抛弃autotools，转投cmake</title><content type='html'>来自LWN的&lt;a href="http://lwn.net/Articles/188693/"&gt;文章&lt;/a&gt;&lt;br /&gt;KDE4.0的编译配置系统不再使用automake、autoconf这一套工具，转而使用cmake。在cmake的支持下，kdelibs可以在Windows，Mac OS X，Linux，Unix上编译成功。&lt;br /&gt;显然，KDE4的目标是要支持更多的平台，连Windows都在List上;)&lt;br /&gt;另外，既然KDE4的开发者已经选择了cmake，被autotools弄得焦头烂额的诸位大可尝试一下。&lt;br /&gt;&lt;br /&gt;PS：&lt;br /&gt;早些日子，KDE的版本管理从cvs转向了svn。个人觉得，如果没有特殊的理由，现在已经没有必要使用CVS来管理版本了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5262047404076199926?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5262047404076199926/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5262047404076199926' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5262047404076199926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5262047404076199926'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/kdeautotoolscmake.html' title='KDE抛弃autotools，转投cmake'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8562590810823636967</id><published>2006-07-01T18:17:00.000-07:00</published><updated>2009-02-24T07:16:33.397-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>Google Trends的Missing feature</title><content type='html'>首先感谢Google，为我们提供了如此众多的惊人的工具。&lt;br /&gt;然后再表达一下对Google的憎恨，因为它的存在，给我这样希望靠创意来谋生的人很大的压力:(&lt;br /&gt;最后给Google提个意见：&lt;br /&gt;&lt;a href="http://www.google.com/trends"&gt;Google Trends&lt;/a&gt;是个好东东，能找出某个关键词被世界各地搜索的次数、频数、变化趋势等，但是它缺少一个很重要的功能，即提供一个关键词的关联关键词列表。&lt;br /&gt;很多时候用户想知道与某个关键词关联的关键词中哪个最Hot，而不是这个关键词本身。比如，我在Trends里搜索Game，并不是想看“Game”被大 家检索的统计信息，而是想知道大家都是用什么词＋game一块搜索的，是“DOOM＋game“还是”SIMS＋game“。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8562590810823636967?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8562590810823636967/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8562590810823636967' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8562590810823636967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8562590810823636967'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/07/google-trendsmissing-feature.html' title='Google Trends的Missing feature'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-6086602379669129293</id><published>2006-06-28T18:10:00.000-07:00</published><updated>2009-02-24T07:16:33.390-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>10位过气的IT人物</title><content type='html'>CNN网站上的一篇&lt;a href="http://money.cnn.com/popups/2006/biz2/peoplewhodontmatter/frameset.exclude.html"&gt;文章&lt;/a&gt;，罗列了10位IT人物，称其为“10 people who don't matter”。因为这些人大部分以前都是很matter的，所以不妨称其为10位过气人物。&lt;br /&gt;这10位仁兄依次是：&lt;br /&gt;微软公司CEO Steve Ballmer&lt;br /&gt;Vonage公司主席 Jeffrey Citron。这家公司IPO的头一天市值就缩水12％，而且还因为欺诈惹上了官司。&lt;br /&gt;Netflix公司的CEO，这家公司提供DVD租赁服务的生意本来很红火，但是受在线内容冲击，已经成了昨日黄花。&lt;br /&gt;Sony的总裁，Ken Kutaragi。本文编辑认为Sony在蓝光DVD和PS3上战略失误。&lt;br /&gt;HD-DVD Promotion Group的高级顾问，Warren Lieberfarb。入选原因同上面类似，在广大用户都开始从网上获得多媒体资源的时代，还投入重金去争夺不知道有没有人买帐的高容量光盘存储，不知道有多少意义。&lt;br /&gt;Slashdot的创始人Rob Malda。digg已经在访问量上超过slashdot了。&lt;br /&gt;沃达丰的CEO，Arun Sarin。这家全球最大的移动运营商最近日子不好过。谁让它不在中国呢，这厢还双向收费呢。&lt;br /&gt;Sun的CEO，Jonathan Schwartz。作者对他能否挽救Sun的颓势表示悲观。&lt;br /&gt;Linux的创始人，Linus。作者的意思并不是Linux过气了，而是Linus对Linux发展的影响力越来越小。&lt;br /&gt;Facebook的创始人Mark Zuckerberg。曾经有一个7.5亿美元的收购价格摆在他面前他没有珍惜，而以5.8亿美元卖掉的MySpace势头比他更猛，现在估计没有人愿意出这个价钱买他的Facebook了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-6086602379669129293?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/6086602379669129293/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=6086602379669129293' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6086602379669129293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/6086602379669129293'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/06/10it.html' title='10位过气的IT人物'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8130849916848634052</id><published>2006-06-28T18:09:00.000-07:00</published><updated>2009-02-24T07:16:33.382-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>苹果为啥不把血汗工厂开在印度？</title><content type='html'>前一阵子国内沸沸扬扬的苹果血汗工厂的事，不过是揭开了新社会包身工悲惨生活的一角。今天businessweek上又有一则&lt;a href="http://www.businessweek.com/magazine/content/06_25/b3989058.htm"&gt;新闻&lt;/a&gt;吸引了我的注意力，这则新闻的标题是：&lt;font&gt;India: Why Apple Walked Away.&lt;br /&gt;&lt;/font&gt;&lt;font&gt;文章中说，由于印度经济增长迅速，上季度增长了9.3%，这使得印度的劳动力不再像以前那么便宜，以致于苹果放弃了在07年以前在印度雇佣3000人的计划，转而寻找能提供更便宜劳动力的其他国家。&lt;br /&gt;印度媒体对此反应强烈，因为外包为印度带来巨额的经济收入（每年有170亿美元），并且提供了70万的就业机会。&lt;br /&gt;相比印度，我们国家在经济高速增长20多年之后，还能为世界人民提供数量巨大的、每天工作15个小时、拿50美元月薪、几乎不需要任何福利、住在猪圈里的劳动力，这不能不称之为一个经济发展的奇迹。&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8130849916848634052?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8130849916848634052/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8130849916848634052' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8130849916848634052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8130849916848634052'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/06/blog-post_28.html' title='苹果为啥不把血汗工厂开在印度？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4042513338620647276</id><published>2006-06-27T15:05:00.000-07:00</published><updated>2009-02-24T07:16:33.377-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>用tor来应对国内网络的种种故障，顺带推荐一个firefox插件</title><content type='html'>这阵子国内网络老出问题，先是hotmail信箱打不开，然后是gmail信箱打不开，再就是google搜索也经常掉链子。这种时好时坏的状况姑且不说，像wikipedia这样的好网站国内访问不了已经成了一个长期困扰中国人民的问题。&lt;br /&gt;好在有一个叫Tor的工具，在&lt;a href="http://my.donews.com/idlecat/wp-admin/tor.eff.org"&gt;这里&lt;/a&gt;可以下载。通过它就能神奇的解决国内的网络问题。各位抓紧下载，以防这个网站也出问题。&lt;br /&gt;顺带推荐一个firefox的插件，&lt;a href="https://addons.mozilla.org/firefox/2464/"&gt;FoxyProxy&lt;/a&gt;。有了它，Firefox就能很方便的使用Tor提供的神奇功能了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4042513338620647276?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4042513338620647276/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4042513338620647276' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4042513338620647276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4042513338620647276'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/06/torfirefox.html' title='用tor来应对国内网络的种种故障，顺带推荐一个firefox插件'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3061154855979637148</id><published>2006-06-07T16:33:00.000-07:00</published><updated>2009-02-24T07:16:33.372-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>跟算法复杂度干上了</title><content type='html'>&lt;p&gt;最近设计了两个算法，一个是IP规则匹配算法，另一个是连接管理算法。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;第一个算法中每个规则是一个五元组（源IP、目的IP、源端口、目的端口、协议）外加一个标签，五元组的任意一个域可以为wildcard，但不支持mask，规则存放在一个几兆大的高速存储器内，同时对查找速度要求比较高。&lt;br /&gt;&lt;br /&gt;参考了一下&lt;a href="http://www.hipac.org/"&gt;nf-hipac&lt;/a&gt;的算法思路，设计了一个很简洁的算法。我 这里的情况比nf-hipac所面对的情况要简单一点，不需要支持mask（没有看nf-hipac的源码，但是相信它在解决mask问题的时候会遇到严 重的空间爆炸），但是在支持wildcard的时候还是遇到了空间爆炸的问题。好在牺牲了点时间，解决了这个问题。最终算法每个IP包只需要做大约26次 32bit比较就可以了，而且10万条规则所占用的存储空间也只有4兆多。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;第二个算法跟第一个算法有点类似，是一个连接数据库管理算法，提供对一个连接数据库的查找、删除、增加操作。与第一个算法不同的是，不需要支持wildcard，但是要求高速的查找和比较快速的插入和删除，并且同样要求较小的存储空间。&lt;br /&gt;&lt;br /&gt;原先采用的查找树空间浪费严重，在恶劣情况下16兆空间只能支持几万的连接。设计了一种路径压缩算法，可以在恶劣情况下存储45万以上的连接。但是这个算 法目前在删除操作中会产生碎片（可以避免产生碎片，但是算法复杂度较高），在频繁的增加、删除操作中，占用空间会微弱的上升。&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3061154855979637148?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3061154855979637148/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3061154855979637148' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3061154855979637148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3061154855979637148'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/06/blog-post.html' title='跟算法复杂度干上了'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3992326542900882162</id><published>2006-05-30T15:18:00.000-07:00</published><updated>2009-02-24T07:16:33.366-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络技术'/><title type='text'>Private: 开放而且资源共享的p2p平台</title><content type='html'>&lt;a href="http://www.donews.com/Content/200605/781ab01a32234a37af6a7398930cef3d.shtm"&gt;据说&lt;/a&gt;微软在Vista中集成了p2p功能，这丝毫不奇怪，更不出人意料。2005年3月10日，微软买下了一家名叫&lt;a href="http://www.groove.net/"&gt;Groove networks&lt;/a&gt;的公司，而这家公司的创始人&lt;a href="http://www.microsoft.com/presspass/exec/ozzie/default.mspx"&gt;Ray Ozzie&lt;/a&gt;则 成为了微软的CTO。Ray Ozzie何许人也，竟有如此能耐？大名鼎鼎的办公套件Lotus Notes的创始人是也。该牛人在1997年创立了Groove Networks，致力于新一代的协作办公套件的开发，而新一代协作办公套件的特点就是建立在P2P基础之上的虚拟办公环境（Virtual Office）。&lt;br /&gt;&lt;br /&gt;P2P相对于传统C/S模式有非常多的好处，简单罗列之：&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;健壮&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;易于部署&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;成本低&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;由智能节点组成的P2P网络更适合建立起协作的应用环境，包括协同办公、在线游戏、流媒体播放等&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;P2P这种分布式的智能网络能更有效的利用带宽（大家对P2P过分占带宽资源的认识，不能说是个误解，但也只能归咎于一些P2P实现的不合理）&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;微软买下Groove，自然是看中P2P在Office软件中巨大应用前景，而且我相信微软对P2P的应用远不止与此，很快就会推出基于P2P的游戏软件、通讯软件和多媒体软件。近年来，国内有很多公司进入P2P领域，微软涉足这一领域对这些公司将是很大的冲击。&lt;br /&gt;&lt;br /&gt;我在03年攒毕业论文的时候，因为“研究”应用层组播的关系，看了些P2P的论文。当时就产生了一个想法，即搭建一个开放的、资源共享的P2P平台。简单 的想法就是，底层的P2P平台完成路由、寻址、会话功能；上层可以开发各种应用，包括协同办公、网络游戏、电话会议、内容共享等等。底层平台如同现在的 TCP／IP网络一样，是开放而且共享的。&lt;br /&gt;&lt;br /&gt;在这个框架下，不论是skype、迅雷，还是电驴、BT，还是最近流行的P2P视频软件，都共享同一个P2P的平台，而不需要自己维护邻居信息、路由信 息。而很多聊天室（这个例子是不是有点无聊），联众的在线游戏，都不再需要高性能的服务器，而是通过P2P的方式来实现。&lt;br /&gt;&lt;br /&gt;当时花了些时间考察Sun的JXTA，发现其不过本身不过是一个大而空的框架。本人对这种框架很反感，一上来就来个蒸汽锤（还不是实物，是个图纸），其实我只是需要一个改锥来钉个螺丝钉。&lt;br /&gt;&lt;br /&gt;后来因为种种缘故，这个想法就一直放在那（一方面也实在是因为其工作量浩大，不是我等熬夜几个月能弄出来的）。但我始终认为这件事情很有意义，而且有其历史的必然性，即使不是我来做，也会有人做，而且会很快。&lt;br /&gt;我想，也许用不了三年，就会有我今天所说的这种平台出现。空口无凭，撰blog为据。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3992326542900882162?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3992326542900882162/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3992326542900882162' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3992326542900882162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3992326542900882162'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/private-p2p.html' title='Private: 开放而且资源共享的p2p平台'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4331033368944296357</id><published>2006-05-30T15:17:00.000-07:00</published><updated>2009-02-24T07:16:33.359-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络技术'/><title type='text'>架个wiki服务器，你用哪个软件？</title><content type='html'>以前用&lt;a href="http://moinmoin.wikiwikiweb.de/"&gt;moinmoin&lt;/a&gt;架过wiki服务器，它 是用python写的。这次打算找一个php的wiki软件（毕竟php用得更广泛）。和往常一样，这次又面临选择，在debian下随便一找就发现了两 个php的wiki server，一个是mediawiki，另一个是phpwiki。值得一提的是wikipedia用的就是mediawiki，光凭这一点就足以说服我 用它了。在Debian下把这俩都装上试了试，从速度、配置方便性以及外观这几个方面，第一感觉wikipedia都做得好一些。&lt;br /&gt;在网上搜了一下，有一篇&lt;a href="http://www.wikimatrix.org/compare/DokuWiki+MediaWiki+PhpWiki"&gt;文章&lt;/a&gt;很细的比较了三种wiki server。感兴趣的可以看一下。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4331033368944296357?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4331033368944296357/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4331033368944296357' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4331033368944296357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4331033368944296357'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/wiki.html' title='架个wiki服务器，你用哪个软件？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5927826881491197216</id><published>2006-05-25T13:56:00.000-07:00</published><updated>2009-02-24T07:16:33.353-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>热核聚变还遥遥无期呀，wii便宜卖了</title><content type='html'>早上起来照例拿手机看看RSS，有篇&lt;a href="http://hardware.slashdot.org/article.pl?sid=06/05/25/1235210"&gt;新闻&lt;/a&gt;是说中国、欧盟、美国、俄国等几个大国/组织决定联合起来在法国建一座热核聚变反应堆，预计07年开工，将成为投入第二大的科技合作项目（第一大是啥？国际空间站？）。&lt;br /&gt;文章最后说，如果一切顺利的话，到2040年有希望建成一座热核电站。看来想用上热核能源我还得注意点身体，多撑几年。&lt;br /&gt;&lt;br /&gt;还有篇&lt;a href="http://games.slashdot.org/article.pl?sid=06/05/25/1314204"&gt;新闻&lt;/a&gt;挺鼓舞人心地，任天堂公布了他们的下一代游戏机wii在日本的发售价格，25000日元!算不上白菜价，但比PS3实惠多了。弄一个放卧室或者客厅还是蛮爽的，盛大的盒子得抓紧卖了，不然真拼不过人家啊。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5927826881491197216?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5927826881491197216/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5927826881491197216' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5927826881491197216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5927826881491197216'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/wii.html' title='热核聚变还遥遥无期呀，wii便宜卖了'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5052473430920845382</id><published>2006-05-22T18:55:00.000-07:00</published><updated>2009-02-24T07:16:33.346-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>一部动画片的诞生，Elephants Dream</title><content type='html'>这部10分钟长的动画片最近很热，它并不是来自梦工厂、迪斯尼，而是几位艺术家在荷兰历时7个月制作的开源动画片。&lt;br /&gt;开源动画片？这是头回听说吧。在软件业开源运动如火如荼的时候，艺术家同志们也不甘示弱，用开源的软件制作了这部开源的动画片，这部动画片的音轨、动画人物等所有素材都是开放的、免费使用的（可能也存在像GPL那样对用于商业目的的限制，这个不太清楚）。&lt;br /&gt;粗看了一下这部动画片，欧洲风格十足，画面和音效都挺棒，不过情节没看很明白，挺灵异的反正。我想这部片子论证了这么两种可能：&lt;br /&gt;1.利用开源的工具也能制作出优良的动画片&lt;br /&gt;2.动画片也可以采用集市的方式来制作。&lt;br /&gt;&lt;br /&gt;顺带提一下制作这部动画片所用到的开源软件（来自动画片的片尾）：&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://blender.org/"&gt;Blender&lt;/a&gt;，完成了这部电影的3D建模、动画制作、渲染和合成&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt;，类似photoshop的软件&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.python.org/"&gt;python&lt;/a&gt;，优秀的脚本语言&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;twisted，如果没弄错的话，指的是python的twisted库，基于事件的网络程序框架&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.openexr.com/"&gt;OpenEXR&lt;/a&gt;，一种图片格式和相关的工具，&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.kde.org/"&gt;KDE&lt;/a&gt;，两个最流行的开源桌面环境之一&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Verse，好像是在每次登录系统的时候显示一段圣经的软件，ft！&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.gnome.org/"&gt;Gnome&lt;/a&gt;，两个最流行的开源桌面环境之一&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://cinepaint.sourceforge.net/"&gt;CinePaint&lt;/a&gt;，以前叫做Film Gimp，顾名思义一把就是制作电影用的Gimp:)&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;DrQueue，分布式渲染系统&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.inkscape.org/"&gt;InkScape&lt;/a&gt;，制作svg的软件&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;，版本管理软件&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5052473430920845382?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5052473430920845382/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5052473430920845382' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5052473430920845382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5052473430920845382'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/elephants-dream.html' title='一部动画片的诞生，Elephants Dream'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3903411595803316989</id><published>2006-05-22T18:53:00.000-07:00</published><updated>2009-02-24T07:16:33.337-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Linux需要微内核吗？</title><content type='html'>这个问题我回答不了。外面几个大佬还在为这事吵呢，其中有两个早几年就吵过一回，他们一个叫Linus，一个叫Andrew S.Tanenbaum。这两位大牛外加一位博士的文章如下，大家有兴趣的可以仔细看看：&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.computer.org/portal/site/computer/menuitem.5d61c1d591162e4b0ef1bd108bcd45f3/index.jsp?&amp;amp;pName=computer_level1_article&amp;amp;TheCat=1005&amp;amp;path=computer/homepage/0506&amp;amp;file=cover1.xml&amp;amp;xsl=article.xsl&amp;amp;"&gt;Tanenbaum：Can We Make Operating Systems Reliable and Secure?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.mirrordot.org/stories/3f6b22ec7a7cffcf2847b92cd5dec7e7/index.html"&gt;Linus的Email&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;&lt;a href="http://www.coyotos.org/docs/misc/linus-rebuttal.html"&gt;Dr. Jonathan Shapiro：Debunking Linus's Latest&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;泰老（Tanenbaum）在他文章的开头就强调：之所以再次挑起microkernel的事端，是因为时过境迁，系统稳定可靠正在成为超过系统性能的更重要的需求。泰老在文章中列举了4种提高系统稳定性和可靠性的技术，分别是：&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;Nooks： 目前是基于Linux的改进，特点是让驱动程序运行于沙箱之中，可以防止因为驱动程序bug导致的系统崩溃，可以恢复崩溃的驱动程序。因为驱动程序的代码 量占Linux内核代码的70％左右，并且代码质量低于其他部分代码，所以如果Nooks能达到其目标，整个系统的稳定性将会有很大的提高。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Paravirtual Machine：虚拟机（Virtual Machine）是最近比较火的技术（其实已经是非常老的技术了），相信很多人都玩过Vmware或者任天堂的模拟器，这些都算是虚拟机。虚拟机技术不光 是玩玩而已，它在降低企业的IT投入、提高稳定性和可维护性上都有重要的意义，Intel和AMD的新一代CPU中就会在指令级提供对虚拟技术的支持。 Paravirtual与一般虚拟机的不同在于，要对虚拟运行的系统做一定的修改。像UML（User mode linux）和Xen都算此类。泰老举的例子是L4，在L4上运行多个Linux系统，其中一部分专门运行驱动程序，一部分专门运行应用程序，哪个挂了都 不碍事。&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;按泰老所说，使用L4所带来的性能开销在3％到8％之间。这个数字跟&lt;a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/performance.html"&gt;Xen&lt;/a&gt;的性能相仿。&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;MULTISERVER OPERATING SYSTEMS：代表系统Minix3，也就是泰老自己设计的系统，典型的微内核设计，就不多说了。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;微 软的Singularity：来自微软的最激进的技术创新。在Singularity里，所有进程在同一个虚拟地址空间里运行，防止一个进程不适当的访问 另外一个进程的数据不是依靠硬件，而是依靠编译时的检查（这样上下文切换的开销就省掉了哦）。除了核心的部分代码由C＃，C＋＋和汇编写成外，其他部分都 是用一种被称为Sing#的类似C＃的语言编写的。另外，在Singularity好像是采用了基于contract的开发。&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;在泰老发表了他的文章之后，Linus也毫不客气的再次把microkernel更稳定的论调称之为“crap“，不过不等泰老出招，一位从事微内核研究开发的博士就驳斥了Linus。具体如何大家看我在前文给出的链接。&lt;br /&gt;孰是孰非，还是让我来说句公道话吧，Linus是一位技术天才，泰老则是学富五车著作等身的学术泰斗。从Linus的角度来说，他可能不太希望自己的系统 被翻天覆地的修改（每个做技术的人都有这种倾向，天才也不能幸免）；而泰老当然看的更远。Linux的内核能在现有架构上支撑100年吗？显然不可能， 20年都难。总有一天，现在的Linux内核会以某种方式进入历史的回收站，而新的内核，可能已经不叫Linux了，将会建立在新的设计思路之上。&lt;br /&gt;创新，永远都是一件好的事情。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3903411595803316989?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3903411595803316989/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3903411595803316989' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3903411595803316989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3903411595803316989'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/linux_22.html' title='Linux需要微内核吗？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2752096062815975116</id><published>2006-05-22T18:52:00.001-07:00</published><updated>2009-02-24T07:16:33.333-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux下清晰的中文字体</title><content type='html'>If 不想看我罗嗦 then goto HERE；&lt;br /&gt;&lt;br /&gt;我终于在我的Linux下看到满意（基本）的中文显示了。&lt;br /&gt;说来也是，用Linux这么多年（9年？），只在刚开始的时候倒腾过中文的显示，那时候上网不方便，电脑也很菜，很多技术不成熟，尝试一种方法，要先吭哧 吭哧下载半天，再吭哧吭哧编译半天，最惨的是，弄完后发现效果很差。难怪当年有人用了蓝点的中文Linux，号称流下了眼泪...&lt;br /&gt;后来俺再也没在字体上多花过超过10分钟的时间。&lt;br /&gt;转眼就跨了世纪，眼看第一个十年又过去一大半了，我琢磨着时代总该进步了，也该重新倒腾一下中文了。于是就在网上搜了搜。果然就有好的方法，果然就一试不爽。&lt;br /&gt;&lt;br /&gt;HERE：&lt;br /&gt;我找到的方法在这里：&lt;a href="http://www.coolcode.cn/?p=55&amp;amp;pp=1"&gt;http://www.coolcode.cn/?p=55&amp;amp;pp=1&lt;/a&gt;。&lt;br /&gt;不过我在操作时后没那么麻烦，就下载了字体解压扔到/usr/share/fonts/truetype下，然后执行fc-cache（注，在哪个目录下执行这个命令都行），然后把local.conf拷贝到/etc/fonts/下。&lt;br /&gt;因为我用的是kde，运行“kcmshell fonts“把字体设成Vera sans Yuanti就OK了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2752096062815975116?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2752096062815975116/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2752096062815975116' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2752096062815975116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2752096062815975116'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/linux.html' title='Linux下清晰的中文字体'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-1355256256496947373</id><published>2006-05-22T18:52:00.000-07:00</published><updated>2009-02-24T07:16:33.327-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>用手机看rss，免费的哦</title><content type='html'>当然，你得用联通新时空。联通新时空收email是不要钱的（这年头不要钱的东西不多，不要钱的手机服务更少），拿你的手机信箱在&lt;a href="http://www.rssfwd.com/"&gt;rssfwd.com&lt;/a&gt; 这样的网站上注册一下，订阅你要看的RSS。这样一旦有新贴，rssfwd.com就会转发到你的手机上了。&lt;br /&gt;以后上下班路上不会无聊了，小心别累着眼睛。&lt;br /&gt;&lt;br /&gt;说道联通，有个有名的笑话是“孙子才用联通新时空”，可气的是作者在刚刚换到新时空的时候，老手机上收到高中同学（在移动工作）的短信，就是这个笑话。 我只好不动声色的发短信告知我的新号码。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-1355256256496947373?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/1355256256496947373/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=1355256256496947373' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1355256256496947373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/1355256256496947373'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/rss.html' title='用手机看rss，免费的哦'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2342256129254864488</id><published>2006-05-22T18:49:00.001-07:00</published><updated>2009-02-24T07:16:33.323-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>大数运算，你用哪个库？</title><content type='html'>linux下有两个常见的大数运算库，libgmp和openssl所带的BN。它们的性能如何呢？作者写了两个小程序，分别利用这两个库，使用相同的RSA密钥（2048位），对相同的数据进行加/解密操作，用time比较性能，结果如下：&lt;br /&gt;&lt;br /&gt;用私钥加密&lt;br /&gt;gmp_imp：    real 0m47.169s    user 0m47.143s  sys  0m0.004s&lt;br /&gt;bn_imp：        real 0m28.140s    user 0m28.122s    sys  0m0.004s&lt;br /&gt;用公钥加密&lt;br /&gt;gmp_imp：     real 0m0.182s    user 0m0.168s  sys  0m0.000s&lt;br /&gt;bn_imp：        real 0m0.131s    user 0m0.112s    sys  0m0.000s&lt;br /&gt;&lt;br /&gt;基本上，在使用私钥的时候，gmp的性能是openssl所带大数运算库的性能的60％。使用公钥时，性能差别不大，但gmp仍然慢于bn。&lt;br /&gt;该测试是在debian unstable上完成的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2342256129254864488?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2342256129254864488/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2342256129254864488' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2342256129254864488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2342256129254864488'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/blog-post_22.html' title='大数运算，你用哪个库？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7487369082909327374</id><published>2006-05-22T18:49:00.000-07:00</published><updated>2009-02-24T07:16:33.316-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>实战valgrind来优化程序</title><content type='html'>&lt;p&gt;前一阵子写了一个gzip的解压程序，因为是用在嵌入式环境，而且是用于demo的目的，所以就一味的压缩空间，没有太多考虑优化性能。最终实现的程序目标代码8K左右，解压一个2M的gzip文件，我的程序myzip和系统自带的zcat性能如下：&lt;br /&gt;&lt;br /&gt;myzip： real    0m0.439s  user    0m0.408s  sys     0m0.008s&lt;br /&gt;&lt;br /&gt;zcat：    real    0m0.195s  user    0m0.148s  sys     0m0.028s&lt;/p&gt;&lt;br /&gt;&lt;p&gt;myzip的性能瓶颈一个是读取bit流的函数，另一个是huffman解码。出于节省空间的考虑，huffman树的设计相当紧凑，解码性能的优化空间不大，于是想对第一个瓶颈做点工作。在优化开始之前，先用valgrind侦察一下敌情。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;首先把程序用-g参数重新编译。然后先看看程序有没有什么bug，按如下方式运行：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;$valgrind --tool=memcheck ./myzip file.gz&lt;/p&gt;&lt;br /&gt;&lt;p&gt;运行结束时，valgrind打印如下信息（stripped）：&lt;br /&gt;&lt;br /&gt;==5111== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 11 from 1)&lt;br /&gt;&lt;br /&gt;==5111== malloc/free: in use at exit: 0 bytes in 0 blocks.&lt;br /&gt;&lt;br /&gt;==5111== malloc/free: 537 allocs, 537 frees, 239,144 bytes allocated.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;恩，看来内存操作方面没啥问题，那接着profile一下：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;$valgrind --tool=cachegrind ./myzip file.gz&lt;/p&gt;&lt;br /&gt;&lt;p&gt;运行完毕后，valgrind打印出程序运行的一些统计信息，并在当前目录生成一个文件cachegrind.out.xxxx。（xxxx是4个“随机"数字）。虽然这个文件是human readable的，但是有更好的工具来看 －kcachegrind。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;用kcachegrind打开这个文件，窗口显示如下：&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/43/124567681_c8bda7c22c.jpg?v=0" /&gt;&lt;br /&gt;&lt;br /&gt;果不其然，读取bit流的函数get_bits占用了66.37%的cycles，huffman解码函数get_code占用了14.75%。那下面就拿get_bits开刀。&lt;br /&gt;&lt;br /&gt;$%#^*&amp;amp;^*&amp;amp;，搞定。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;再profile一下，kcachegrind的截图如下：&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/50/124567680_ec07ea93cc.jpg?v=0" /&gt;&lt;br /&gt;&lt;br /&gt;get_bits的比例下降到45.78%，get_code上升到22.64%。&lt;br /&gt;&lt;br /&gt;再用-O3编译的程序解压上面的压缩文件结果如下：&lt;br /&gt;&lt;br /&gt;real    0m0.361s    user    0m0.340s    sys     0m0.004s&lt;/p&gt;&lt;br /&gt;&lt;p&gt;总结：&lt;br /&gt;&lt;br /&gt;本文的情况是作者非常了解程序的瓶颈，在大部分情况下，这种信息并不明显（特别是如果程序不是自己写的）。通过valgrind的cachegrind功 能，可以直观的得到这些信息。这些定量的信息，对于优化程序很有帮助。即使是对于本文所列的情况，作者知道这两个瓶颈，但要分析出这两个瓶颈哪个更堵，以 及优化后可能达到的最佳效果，valgrind提供的信息仍然很有价值。&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7487369082909327374?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7487369082909327374/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7487369082909327374' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7487369082909327374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7487369082909327374'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/valgrind_22.html' title='实战valgrind来优化程序'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5660316946020865644</id><published>2006-05-22T18:48:00.001-07:00</published><updated>2009-02-24T07:16:33.309-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>mono，kaffe和Novell</title><content type='html'>今早看rss feed，有下面几则新闻值得关注。&lt;br /&gt;&lt;a href="http://osnews.com/story.php?news_id=14172"&gt;&lt;font size="2" face="Arial"&gt;Miguel De Icaza访谈＠osnews&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;此人是gnome的创始人，也是mono的创始人。作为微软.net技术的开源实现，mono很有希望获得更广泛的使用（比如Fedora Core5中加入了mono）。这篇访谈透露了一些mono的开发进展，比如定于4月发布beta1的mono1.2将提供Windows Forms的完整实现。&lt;br /&gt;&lt;a href="http://supreetsethi.net/drupal/node/86"&gt;Kaffe1.1.7的性能评测&lt;/a&gt;&lt;br /&gt;kaffe是一个开源的java虚拟机（jvm），开源世界一直试图实现一整套java开发运行环境。&lt;br /&gt;&lt;a href="http://searchopensource.techtarget.com/columnItem/0,294698,sid39_gci1176440,00.html"&gt;对Novell的分析&lt;/a&gt;&lt;br /&gt;Novell放弃Netware，彻底的转向了Linux。最近频频看到有关Novell、SLED10的新闻。SLED10（Suse Linux Enterprise Desktop）是Novell进军企业级桌面系统的武器。当然Novell决不是个一般的Linux公司，作为一个曾经辉煌过的大公司，Novell拥 有很多杀手级的企业应用软件，有大量在Netware时代积累下的用户关系。微软声称Novell转向Linux使得大量Netware用户转向 Windows，而Novell最近声称Vista的延期是SLED的机会。&lt;br /&gt;顺便提一句，Miguel De Icaza受雇于Novell，Novell对mono的支持力度很大，所以微软和Novell的竞争可以说是相当直接。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5660316946020865644?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5660316946020865644/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5660316946020865644' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5660316946020865644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5660316946020865644'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/monokaffenovell.html' title='mono，kaffe和Novell'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5614116565734442388</id><published>2006-05-22T18:48:00.000-07:00</published><updated>2009-02-24T07:16:33.302-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>让自己的驱动支持udev</title><content type='html'>从linux内核2.6的某个版本之后，devfs不复存在，udev成为devfs的替代。相比devfs，udev有很多优势，在此就不罗嗦了，提醒一点，udev是应用层的东东，不要试图在内核的配置选项里找到它;)&lt;br /&gt;加入对udev的支持很简单，以作者所写的一个字符设备驱动为例，在驱动初始化的代码里调用class_create为该设备创建一个class，再为每个设备调用class_device_create创建对应的设备。大致用法如下：&lt;br /&gt;&lt;br /&gt;struct class *myclass = class_create(THIS_MODULE, "my_device_driver");&lt;br /&gt;class_device_create(myclass, NULL, MKDEV(major_num, 0), NULL, "my_device");&lt;br /&gt;&lt;br /&gt;这样的module被加载时，udev daemon就会自动在/dev下创建my_device设备文件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5614116565734442388?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5614116565734442388/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5614116565734442388' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5614116565734442388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5614116565734442388'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/udev.html' title='让自己的驱动支持udev'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-8050988721536333510</id><published>2006-05-22T18:47:00.001-07:00</published><updated>2009-02-24T07:16:33.298-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>pc上最快的发包工具？</title><content type='html'>昨天做了个实验，测试了三种发包方式所能达到的最快速度。测试平台是一台双至强、1G内存的服务器，操作系统为Linux，内核版本2.6.15.3，网卡为Intel e1000光口网卡。使用一台smartbit来记录发包速度。&lt;br /&gt;所使用的三种方法分别是：&lt;br /&gt;tcpreplay：常用的发包软件，可以重发tcpdump所捕获的报文。&lt;br /&gt;pktgen：linux内核自带的发包工具。&lt;br /&gt;修改的e1000驱动：在驱动里直接写网卡的发送缓冲区&lt;br /&gt;下面是测试结果：&lt;br /&gt;&lt;table width="560" cellspacing="1" cellpadding="1" border="1"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;tcpreplay ，64字节报文&lt;/td&gt;&lt;br /&gt;&lt;td&gt;pkggen，64字节报文&lt;/td&gt;&lt;br /&gt;&lt;td&gt;e1000，64字节报文&lt;/td&gt;&lt;br /&gt;&lt;td&gt;tcpreplay，512字节报文&lt;/td&gt;&lt;br /&gt;&lt;td&gt;pktgen，512字节报文&lt;/td&gt;&lt;br /&gt;&lt;td&gt;e1000，512字节报文&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;pps&lt;/td&gt;&lt;br /&gt;&lt;td&gt;298725&lt;/td&gt;&lt;br /&gt;&lt;td&gt;600000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;610000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;232382&lt;/td&gt;&lt;br /&gt;&lt;td&gt;234091&lt;/td&gt;&lt;br /&gt;&lt;td&gt;234000&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Mbps&lt;/td&gt;&lt;br /&gt;&lt;td&gt;146&lt;/td&gt;&lt;br /&gt;&lt;td&gt;266&lt;/td&gt;&lt;br /&gt;&lt;td&gt;270&lt;/td&gt;&lt;br /&gt;&lt;td&gt;908&lt;/td&gt;&lt;br /&gt;&lt;td&gt;857&lt;/td&gt;&lt;br /&gt;&lt;td&gt;850&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;说明一下，统计数据的值不算精确，因为只花了半个小时时间测了一下，但是拿来参考还是有说服力的。&lt;br /&gt;可以看出，当发送小包时，tcpreplay的性能较差。发送大包时，三者性能接近。&lt;br /&gt;有点出乎意料的是，通过e1000驱动发包，在64字节小包的时候也只达到不到300Mbps的速度。驱动修改的方式是在预先设置好e1000的4096个发送缓冲区，通过在中断处理函数里设置e1000的发送首尾指针来发包，相信这种方式是软件所能做到的最快的方式了。&lt;br /&gt;如果继续深入测试，可以通过调整控制e1000中断产生的几个参数看能不能达到更高的吞吐率。但也可能e1000发包的上限就是这样了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-8050988721536333510?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/8050988721536333510/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=8050988721536333510' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8050988721536333510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/8050988721536333510'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/pc.html' title='pc上最快的发包工具？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-416487845872467813</id><published>2006-05-22T18:47:00.000-07:00</published><updated>2009-02-24T07:16:33.292-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>在ps3上跑linux…</title><content type='html'>今天看到的好消息，SONY已确认PS3将推迟发布，硬盘将成为PS3的标配，并且预装Linux。&lt;br /&gt;我看不管是盛大的盒子，还是微软的Media Center，都不如这招狠，强劲的主机加上无限生命力的软件，套用一句广告，真是“nothing is impossible"。&lt;br /&gt;不过我现在最想用我的手柄控制我的电脑（Linux系统），完成上网看新闻之类的简单工作。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-416487845872467813?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/416487845872467813/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=416487845872467813' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/416487845872467813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/416487845872467813'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/ps3linux.html' title='在ps3上跑linux…'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5731596490702938812</id><published>2006-05-22T18:45:00.001-07:00</published><updated>2009-02-24T07:16:33.287-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>GTK＋编程FAQ之一</title><content type='html'>&lt;h6&gt;开场白：&lt;/h6&gt;&lt;br /&gt;GTK＋是非常流行的GUI库，可以运行在Windows， XWindow（各种Unix环境），Framebuffer（各种嵌入式设备）和MacOS之上。很长时间以来，我用GTK＋写一些简单的程序，所用语 言一般是c++或python，但我一直没有系统的看过GTK＋的文档，所以有时候想实现一些功能却不知如何做。相信很多使用GTK＋的朋友也遇到过类似 的情况，当然这些问题大多并不难，如果细细找一下文档，一般都能很快找到答案。&lt;br /&gt;从本文开始，我将记录这些问题，希望能节省各位的时间，对各位有所帮助。&lt;br /&gt;&lt;h6&gt;问题1：我想用GTK＋，但是我不喜欢用C来写GUI程序，没有别的选择吗？&lt;/h6&gt;&lt;br /&gt;GTK＋有很多语言的binding，除了使用各种脚本语言外，你还可以使用它的C++ Binding，gtkmm。实际上本文作者也非常讨厌用c来写gtk+程序，强烈推荐使用gtkmm。&lt;br /&gt;&lt;h6&gt;问题2：如何提高编译的速度，特别是在使用gtkmm的时候？&lt;/h6&gt;&lt;br /&gt;这个问题并不局限于gtk+的开发，很多人抱怨gcc的编译速度，实际上使用预编译头文件可以大大提高编译速度。见作者《使用预编译头文件大大提高g++编译速度》一文。&lt;br /&gt;&lt;h6&gt;问题3:没有可视化的界面设计工具吗？&lt;/h6&gt;&lt;br /&gt;glade是gtk＋的可视化界面设计工具，它生成的glade文件是界面信息的xml描述。程序通过glade库加载xml文件就能声称界面。&lt;br /&gt;&lt;h6&gt;问题4：如何产生异形的窗口（非矩形窗口）？&lt;/h6&gt;&lt;br /&gt;使用gtk_widget_shape_combine_mask函数来指定一个widget要显示的区域。&lt;br /&gt;区域是由一个GdkBitmap定义，可以用gimp绘制你所需的形状，存成xdm图形文件，然后直接在源程序里include该文件，用gdk_bitmap_create_from_data来生成对应的GdkBitmap。&lt;br /&gt;&lt;h6&gt;问题5：如何在系统托盘里放置图标？&lt;/h6&gt;&lt;br /&gt;&lt;h6&gt;问题6：如何设置主题？&lt;/h6&gt;&lt;br /&gt;&lt;h6&gt;问题7：如何使窗口没有title bar，不出现在任务栏里？&lt;/h6&gt;&lt;br /&gt;在XWindow下，窗口的title bar（包括最大化最小化按钮等等）是由窗口管理器（window manger，wm）负责绘制的。如果你不想让wm多管闲事，可以使用gtk_window_set_decorated（false）来通知wm。&lt;br /&gt;同样，使用gtk_window_set_skip_taskbar_hint（false），你的窗口就不会出现在任务栏里了。&lt;br /&gt;你也可以在使用glade创建界面文件的时候指定窗口的这些属性。&lt;br /&gt;&lt;h6&gt;问题8:如何使用Gtk on framebuf&lt;/h6&gt;&lt;br /&gt;即将发布的2.10版gtk+带有对framebuf的支持（此前的版本需要额外的补丁）。&lt;br /&gt;Debian SID的用户可以直接安装libgtk+2.0-directfb-dev这个包。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5731596490702938812?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5731596490702938812/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5731596490702938812' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5731596490702938812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5731596490702938812'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/gtkfaq.html' title='GTK＋编程FAQ之一'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-3267591697316104887</id><published>2006-05-22T18:45:00.000-07:00</published><updated>2009-02-24T07:16:33.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>Linux下如何把IO空间映射到用户进程空间？</title><content type='html'>其实是个蛮简单的问题。在LDD3的第15章上有写（见“Remapping Specific I/O Regions”这一节）。不过当时作者选择了一个错误的做法：先把这块IO空间用ioremap映射到了内核空间，然后在用户进程访问被映射的地址所产 生的缺页中断里，用vmalloc_to_page得到page，返回给用户进程。&lt;br /&gt;然而，vmalloc_to_page没法用在ioremap所得到的地址上，因为IO空间根本就没有对应的Page结构，返回的page指针自然是不对的。&lt;br /&gt;正确的做法是在mmap函数里，使用remap_pfn_range函数。代码如下。注意要设置一下vma-&amp;gt;vm_pgoff为你要map的io空间的物理地址对应的页。&lt;br /&gt;&lt;br /&gt;static int filter_mmap(struct file *filp, struct vm_area_struct *vma)&lt;br /&gt;{&lt;br /&gt;vma-&amp;gt;vm_page_prot = pgprot_noncached(vma-&amp;gt;vm_page_prot);&lt;br /&gt;vma-&amp;gt;vm_pgoff = ( (u32)map_start &amp;gt;&amp;gt; PAGE_SHIFT);&lt;br /&gt;&lt;br /&gt;if (remap_pfn_range(vma,&lt;br /&gt;vma-&amp;gt;vm_start,&lt;br /&gt;vma-&amp;gt;vm_pgoff,&lt;br /&gt;vma-&amp;gt;vm_end-vma-&amp;gt;vm_start,&lt;br /&gt;vma-&amp;gt;vm_page_prot))&lt;br /&gt;return -EAGAIN;&lt;br /&gt;return 0;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-3267591697316104887?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/3267591697316104887/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=3267591697316104887' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3267591697316104887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/3267591697316104887'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/linuxio.html' title='Linux下如何把IO空间映射到用户进程空间？'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-2272554833514391528</id><published>2006-05-22T18:44:00.000-07:00</published><updated>2009-02-24T07:16:33.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络技术'/><title type='text'>继续讨论van的channel</title><content type='html'>目前有三处相关的信息，一个是Van自己的&lt;a href="http://www.lemis.com/grog/Documentation/vj/lca06vj.pdf"&gt;presentation&lt;/a&gt;，在lwn上一篇比较深入的&lt;a href="http://lwn.net/Articles/169961/"&gt;文章&lt;/a&gt;，另外还有一个&lt;a href="http://vger.kernel.org/%7Edavem/cgi-bin/blog.cgi/2006/01/27#vj_channels"&gt;blog&lt;/a&gt;讨论了这个问题。&lt;br /&gt;Van的channel在提高linux TCP/IP协议栈的性能方面做了这样的工作：打破传统分层的TCP/IP设计架构，将IP包直接送达至目的地，好象是一条快速通道，Channel因此 而得名（但据lwn说，channel是指一种设计良好的环形buf，对它的读写不需要锁，而且对Cache非常友好，这么说也有道理，显然这么一种 buf是这个新框架所必须的）。这么做消除了多种开销，包括：&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;当channel在应用层实现时，数据包从内核空间到用户空间的拷贝不再需要，而是通过内存映射将内核收到的数据直接映射到应用程序的地址空间。（这个buf的实现很有点意思）&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;当channel在驱动实现时，不再需要skbuf（文物啊）来保存收到的报文，而是直接把报文丢到一个channel（一个环行buf）里。&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;各种运行环境切换的开销（硬中断、软中断、系统调用）&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;Cache不命中的概率大幅降低，对smp更加友好&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;还有一点是不太明显的。有个“端到端原则”这样说道：要尽量把工作在网络的边界完成，网络本身只做尽可能少的工作。TCP就是这个原则的体现，可靠传输、流量控制、拥塞控制由连接的两个端点完成，网络只负责传输包，仅此而已。&lt;br /&gt;但是诸位可能没注意到，我们目前的tcp协议栈并没有彻底贯彻这一原则，数据包被交给了协议栈，而不是交给了需要该数据包的程序，而这个程序才是真正的边 界。由于协议栈的处理所引入的包括延迟、丢包等情况使得应用程序无法看到真实的网络状况，这将导致无法有效的实施控制。比如TCP协议对RRT的计算会因 为报文在协议栈各层的排队、softirq的延迟而失真，会导致TCP吞吐量的下降。所以当Channel把报文直接送到应用程序时，才有可能实现高性能 的网络协议。&lt;br /&gt;&lt;br /&gt;请注意有趣的一点，当channel一直通到应用程序时，需要在应用层实现TCP协议。&lt;br /&gt;&lt;br /&gt;Channel对传统TCP协议栈性能的提升是巨大的，但同时对框架的改动也是根本性的，一些依赖于传统架构的应用不得不改写，包括被广泛使用的netfilter。&lt;br /&gt;还有一个问题，就目前Channel的信息被遮遮掩掩的情况来看，这东西的license肯定有问题。而lwn上也有人向Van证实了这一点。 Channelized Driver和Channelized socket都会以GPL形式开放出来，但是channelized Application所需要的应用层TCP协议栈却由于某种原因无法GPL之。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-2272554833514391528?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/2272554833514391528/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=2272554833514391528' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2272554833514391528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/2272554833514391528'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/vanchannel.html' title='继续讨论van的channel'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-4626281943249316713</id><published>2006-05-22T18:43:00.001-07:00</published><updated>2009-02-24T07:16:33.269-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='编程'/><title type='text'>valgrind，好东西，一般人我不告诉他~~</title><content type='html'>今天dot.kde登了一篇对valgrind的作者&lt;strong&gt; &lt;a href="mailto:"&gt;Jonathan Riddell&lt;/a&gt; &lt;/strong&gt;的&lt;a href="http://dot.kde.org/1140466742/"&gt;访谈&lt;/a&gt;。我作为valgrind的老用户，当年调程序时获益很多，在这篇访谈里进一步长了见识，深感有必要把这个优秀的开发工具介绍给诸位。以下内容多翻译自该访谈（意译啦）。&lt;br /&gt;&lt;h4&gt;啥是valgrind&lt;/h4&gt;&lt;br /&gt;Valgrind是帮助程序员寻找程序里的bug和改进程序性能的工具。程序通过valgrind运行时，valgrind收集各种有用的信息，通过这些信息可以找到程序中潜在的bug和性能瓶颈。&lt;br /&gt;Valgrind现在提供多个工具，其中最重要的是Memcheck，Cachegrind，Massif和Callgrind。&lt;br /&gt;&lt;h4&gt;Memcheck：&lt;/h4&gt;&lt;br /&gt;这个工具可以用来寻找c、c++和fortran程序中内存管理的错误。写c或c++程序时，很多隐藏很深的bug是内存操作上出了问题。而这些在 Memcheck面前都无处遁形（偶当年用的就是这个功能）。Memcheck可以检查出下列几种内存操作上的错误（大家自查一下有没有犯过;）：&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;	&lt;li&gt;读写已经释放的内存&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;读写内存块越界（从前或者从后）&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;使用还未初始化的变量&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;将无意义的参数传递给系统调用&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;内存泄漏&lt;/li&gt;&lt;br /&gt;	&lt;li&gt;（笔者补充一条，同一个malloc的内存块释放多次。当年这么个bug让我找翻天）&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h4&gt;Cachegrind：&lt;/h4&gt;&lt;br /&gt;这个工具可以提供详尽的profiling信息。它不光对指令、内存访问进行计数，更能针对每条指令、每行源代码、每个函数和每个程序统计cache的不 命中次数。大家应该知道，cache对目前系统的性能有决定性的影响。因此这些信息可以指导程序员调整代码，最大限度的提高程序性能。&lt;br /&gt;访谈中提到，valgrind自身利用该工具在过去几个月内使性能提高了25%-30%。据早先报道，kde的开发team也对valgrind在提高kde性能方面的帮助表示感谢。&lt;br /&gt;&lt;h4&gt;Massif：&lt;/h4&gt;&lt;br /&gt;Massif对内存的分配和释放做profile。程序开发者通过它可以深入了解程序的内存使用行为，从而对内存使用进行优化。这个功能对C++尤其有用（因为C++有很多隐藏的内存分配和释放）。&lt;br /&gt;&lt;h4&gt;Callgrind：&lt;/h4&gt;&lt;br /&gt;Callgrind是一个复杂的工具（复杂到笔者没看太明白有关它的介绍）。它基于Cachegrind，除了具有Cachegrind的功能外，还可以统计调用带来的开销。&lt;br /&gt;&lt;h4&gt;用法：&lt;/h4&gt;&lt;br /&gt;Valgrind使用起来非常简单，你甚至不需要重新编译你的程序就可以用它。当然如果要达到最好的效果，获得最准确的信息，还是需要按要求重新编译一下的。比如在使用memcheck的时候，最好关闭优化选项。&lt;br /&gt;&lt;a href="http://kcachegrind.sourceforge.net/cgi-bin/show.cgi"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kcachegrind.sourceforge.net/cgi-bin/show.cgi" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-4626281943249316713?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/4626281943249316713/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=4626281943249316713' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4626281943249316713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/4626281943249316713'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/valgrind.html' title='valgrind，好东西，一般人我不告诉他~~'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5829068850730792310</id><published>2006-05-22T18:43:00.000-07:00</published><updated>2009-02-24T07:16:33.262-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>linux下的widget - Superkaramba</title><content type='html'>&lt;p&gt;晚上花了点时间在Debian下尝试了一下superkaramba，安装完后运行出现窗口如下图（第一次运行只有两个选项，每安装一个“宝物”就会增加一个对应选项）。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/38/102156798_ee9b3b7984.jpg?v=0" /&gt;&lt;br /&gt;&lt;br /&gt;选择“新建宝物”的选项，出现另一个窗口，在这个窗口里，你可以看到最新、最热门和下载次数最多的宝物排名，选中一项可以获得预览和简要介绍，点击安装即 可下载安装（这种模式是kde3.x之后添加的一个很cool的feature，我以前只知道可以用来下载墙纸），&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/36/102156802_ec54808557.jpg?v=0" /&gt;&lt;br /&gt;&lt;br /&gt;随便安装了几个，show下截图：&lt;img width="800" height="NaN" src="http://static.flickr.com/19/102156803_2f1592e964.jpg?v=0" /&gt;&lt;br /&gt;&lt;br /&gt;试用感觉：&lt;br /&gt;&lt;br /&gt;总体上，宝物数量和质量还不够高。比如那个控制播放器的软件还不能正确显示中文目录（唉，这种问题在开源世界里太常见了），那个记事本做得也忒糙了。不过天气预报软件做得很好，动画特效都很cool，那个系统monitor也做得不错。&lt;br /&gt;&lt;br /&gt;另外，种类也不够多，面向web的应用不多，比如blog、rss reader、p2p。感觉人气还不够高，推出这么多年了，不如firefox的插件那么热火，也许随着kde4的推出会有所改观，在kde4里， superkaramba会以plasma的面目重新夺取世人的注意力。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;但是。。。&lt;br /&gt;&lt;br /&gt;但是局限于kde的plasma并不是一个针对widget的好的解决方案。开源世界应该推出一个标准的widget接口，提供诸如网络、 html/xml渲染、多媒体等功能，利用该接口写的widget可以无缝的运行于gnome、kde、xfce、fvwm等众多的窗口管理器/桌面环境 之中，甚至运行于windows上也不是不可能。&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5829068850730792310?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5829068850730792310/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5829068850730792310' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5829068850730792310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5829068850730792310'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/linuxwidget-superkaramba.html' title='linux下的widget - Superkaramba'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-5801472005764788704</id><published>2006-05-22T18:42:00.001-07:00</published><updated>2009-02-24T07:16:33.257-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='互联网'/><title type='text'>yahoo的widget</title><content type='html'>今天装了yahoo的widget，嗯，很华丽也比较实用。所谓widget就是一些完成特定功能的小窗口，象下面的抓图里就有Rss Reader，Clock，yahoo信箱监视器，天气预报，相册，yahoo信箱的地址本，搜索窗口等等。还可以从网上下载其他各种各样的 widget。&lt;br /&gt;&lt;img width="800" height="600" align="middle" src="http://static.flickr.com/42/101199507_419817801e.jpg?v=0" /&gt;&lt;br /&gt;这一阵子流行web2.0，流行RIA（rich internet application），很多RIA还需要寄生在浏览器的窗口里，并不见得方便。用widget就摆脱了这个限制。当然基于浏览器的RIA也有其优势，比如易于部署之类。&lt;br /&gt;开源世界也有类似的东东。KDE下很早就有一个很cool的软件叫superkaramba，能实现类似的功能，可惜一直没有被广泛的使用。如今 superkaramba改头换面叫做plasma，成为即将发布的kde4.0的重要组成部分。kde4.0计划在今年底或明年初发布beta版，相信 届时必然是很轰动的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-5801472005764788704?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/5801472005764788704/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=5801472005764788704' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5801472005764788704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/5801472005764788704'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/yahoowidget.html' title='yahoo的widget'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-601035920257417117</id><published>2006-05-22T18:42:00.000-07:00</published><updated>2009-02-24T07:16:33.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>zim, 桌面wiki</title><content type='html'>zim是一个桌面wiki软件，我现在拿它来做工作记录，因为它秉承了wiki的特点，可以很容易的创建page，并且把page关联起来，所以用起来感觉条理很清晰。虽然现在还做得有点粗糙，但是已经足够用了，推荐之。&lt;br /&gt;zim用的是GTK，不知道有没有被port到Windows上。&lt;br /&gt;另：&lt;br /&gt;有兴趣的朋友可以把zim改进一下，比如可以和web服务器同步，增加模板，增加协作功能。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-601035920257417117?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/601035920257417117/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=601035920257417117' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/601035920257417117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/601035920257417117'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/zim-wiki.html' title='zim, 桌面wiki'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-85135250382973506.post-7682473913575602979</id><published>2006-05-22T18:41:00.001-07:00</published><updated>2009-02-24T07:16:33.245-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络技术'/><title type='text'>Van Jacobson的Channel</title><content type='html'>Van Jacobson何许人也？Cisco的前任首席科学家，因为发明了TCP的慢启动和拥塞控制机制而被称作“拯救Internet的人”。最近Van又有 动作，这次不是对TCP协议本身的改进，而是对TCP/IP协议栈实现的优化，这个从架构上对TCP/IP实现所做的修改被称作Channel。&lt;br /&gt;目前能找到的第一手资料只有Van在Linux.conf.au 2006上对此所做的Presentation。Van在Linux上实现了他的Channel，测试表明性能取得了惊人的提升。下表是从该Presentation中摘出的测试结果。&lt;br /&gt;&lt;img align="middle" src="http://static.flickr.com/26/99527110_8fb2869b77.jpg?v=0" /&gt;&lt;br /&gt;Van的测试环境是两台采用双至强2.4GCPU的Dell服务器，通过两块e1000网卡直接连接，操作系统是Linux，内核为2.6.15，e1000驱动版本为6.3.9。测试软件用的是netperf。&lt;br /&gt;“1CPU”表示启用了CPU Affinity，“2CPU”表示未启用CPU Affinity，“drvr”表示采用了修改后的网卡驱动，即“Channelized Driver”，“sock”表示采用了“channelized socket”，“App”表示采用了“Channelized app”。“Busy”是CPU占用率，“Intr”和“Softint”是中断和软中断发生次数，&lt;br /&gt;“Socket”、“Locks”、"Sched"和“App”代表相应的CPU占用率。&lt;br /&gt;从此表可以看出，2CPU的性能要远小于2 x 1CPU，由于cache对系统性能的影响越来越大，增加CPU所带来的Cache开销会大大抵消新加CPU所提供的计算能力。通过采用 channelized driver可以很大程度的消除这种影响。随着对Socket和App的进一步优化，性能进一步提升，对比1CPU，2CPU和APP的数据，其结果是惊 人的。&lt;br /&gt;可惜Van的Presentation里没有更多介绍改进的细节，我将在另外一篇blog里与大家讨论这个问题。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/85135250382973506-7682473913575602979?l=idlecat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idlecat.blogspot.com/feeds/7682473913575602979/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=85135250382973506&amp;postID=7682473913575602979' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7682473913575602979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/85135250382973506/posts/default/7682473913575602979'/><link rel='alternate' type='text/html' href='http://idlecat.blogspot.com/2006/05/van-jacobsonchannel.html' title='Van Jacobson的Channel'/><author><name>Tiger Dong</name><uri>http://www.blogger.com/profile/11084976519804606150</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
