<?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:blogger='http://schemas.google.com/blogger/2008' 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-724035857885774413</id><updated>2024-10-09T13:38:28.262+08:00</updated><category term="Tips"/><category term="Rails"/><category term="Books"/><category term="Linux"/><category term="Ruby"/><category term="Reproductions"/><category term="Blog"/><category term="CSS"/><category term="Jokes"/><category term="CSS_The_Missing_Manual"/><category term="MySQL"/><category term="REST"/><category term="RESTful_Web_Services"/><category term="RailsCasts"/><category term="Source_Code"/><category term="Vi"/><category term="Browser"/><category term="Leben"/><category term="EQ"/><category term="RSpec"/><category term="RadRails"/><category term="Regular_Expression"/><category term="Thinking"/><category term="Gems"/><category term="JS"/><category term="Plugin"/><category term="Rants"/><category term="jQuery"/><category term="BDD"/><category term="Emacs"/><category term="English"/><category term="Architecture"/><category term="HTML"/><category term="InstantRails"/><category term="Mocha"/><category term="Python"/><category term="RMagick"/><category term="Refactoring"/><category term="SVN"/><category term="Std_Lib"/><category term="The_Rails_Way"/><category term="Thunderbird"/><category term="XML"/><title type='text'>生活就是泪奔，哥特就是锅贴</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>161</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-3449980996678072581</id><published>2011-09-21T15:34:00.005+08:00</published><updated>2011-09-21T21:24:00.912+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Source_Code"/><title type='text'>ActiveSupport中的class_attribute</title><content type='html'>看rails guide的时候遇到了Class#class_attribute，怎么使用参见&lt;a href=&quot;http://guides.rubyonrails.org/active_support_core_extensions.html#class-attributes&quot;&gt;guide&lt;/a&gt;和下面两篇文章，这里不做介绍&lt;br /&gt;&lt;a href=&quot;http://blog.obiefernandez.com/content/2010/04/tr3w-highlights-activesupport-class-class-attribute.html&quot;&gt;http://blog.obiefernandez.com/content/2010/04/tr3w-highlights-activesupport-class-class-attribute.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://ihower.tw/blog/archives/4878&quot;&gt;http://ihower.tw/blog/archives/4878&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;在看&lt;a href=&quot;https://github.com/rails/rails/blob/b9281e8e2c8a9955d551c0ec6720e9e342443c4b/activesupport/lib/active_support/core_ext/class/attribute.rb&quot;&gt;源码&lt;/a&gt;的时候，发现第79行怎么都不能理解，为什么是&lt;br /&gt;&lt;pre class=&quot;quote code_bgcolor&quot;&gt;singleton_class.#{name}&lt;br /&gt;&lt;/pre&gt;而不是&lt;br /&gt;&lt;pre class=&quot;quote code_bgcolor&quot;&gt;self.class.#{name}&lt;br /&gt;&lt;/pre&gt;呢？&lt;br /&gt;&lt;br /&gt;由于我看的是&lt;a href=&quot;https://github.com/rails/rails/blob/b9281e8e2c8a9955d551c0ec6720e9e342443c4b/activesupport/lib/active_support/core_ext/class/attribute.rb&quot;&gt;3.0.7的版本&lt;/a&gt;，于是又找到了最新的&lt;a href=&quot;https://github.com/rails/rails/blob/cdc4274931c2d6bafdf2b97f7e4ecedf89a8202e/activesupport/lib/active_support/core_ext/class/attribute.rb&quot;&gt;3.1.0的版本&lt;/a&gt;&lt;br /&gt;看完之后更加迷惑，为什么要定义两个reader instance method，一个用singleton_class，一个用self.class呢？&lt;br /&gt;&lt;br /&gt;查阅了相关资料，翻看了源码提交记录，我找到了答案。&lt;br /&gt;其实本来在3.0.7版本中用self.class代替singleton_class是可以的，但为了支持在singleton_class上调用writer方法&lt;br /&gt;&lt;pre class=&quot;quote code_bgcolor&quot;&gt;klass = Class.new { class_attribute :setting }&lt;br /&gt;object = klass.new&lt;br /&gt;object.singleton_class.setting = &quot;foo&quot;&lt;br /&gt;&lt;/pre&gt;所以用了singleton_class。&lt;br /&gt;&lt;br /&gt;由于object的singleton_class的superclass是klass，singleton_class自己又没定义过setting=()，所以singleton_class.setting=()还是会查找到klass里的定义并调用它。&lt;br /&gt;&lt;br /&gt;实际使用的时候，大部分情况还是object.setting=()而不是object.singleton_class.setting=()，为每个object创建singleton_class开销较大，所以做了&lt;a href=&quot;https://github.com/rails/rails/commit/320382ccd359397f2c83f8c0c622b296dcfb472b#activesupport/lib/active_support/core_ext/class&quot;&gt;优化&lt;/a&gt;：object调用时直接查找self.class，避开了singleton_class。而针对singleton_class另做处理，由于方法查找时singleton_class优先于klass，所以&lt;br /&gt;&lt;pre class=&quot;quote code_bgcolor&quot;&gt;def #{name}&lt;br /&gt; defined?(@#{name}) ? @#{name} : singleton_class.#{name}&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;会覆盖&lt;br /&gt;&lt;pre class=&quot;quote code_bgcolor&quot;&gt;def #{name}&lt;br /&gt; defined?(@#{name}) ? @#{name} : self.class.#{name}&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;最后的问题是，谁引入的对singleton_class的支持呢？翻提交记录的时候找到了&lt;a href=&quot;https://github.com/rails/rails/commit/ab281f511ccb3893ea077fe8a7bb78cdd2db0885#activesupport/lib/active_support/core_ext/class/attribute.rb&quot;&gt;答案&lt;/a&gt;。</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/3449980996678072581/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/3449980996678072581' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/3449980996678072581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/3449980996678072581'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2011/09/activesupportclassattribute.html' title='ActiveSupport中的class_attribute'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-7908682137338026065</id><published>2010-03-14T11:12:00.001+08:00</published><updated>2010-03-14T11:12:59.293+08:00</updated><title type='text'>Welcome home Becks</title><content type='html'>&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs3jWjqhqbskcel5rHh7pdQjYyHA6pJwCBuzTLOClLrEEIhbUEwLaCmKGNpcHOJHtOipBtcPHyhk20TnweEGqJFXNAI2ctXuiMf8ezhciQh3vwLjLw2vQGoX9My4XQEER4hzy4YgJqBokP/s1600-h/61G8KSDR00BV0005-779297.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs3jWjqhqbskcel5rHh7pdQjYyHA6pJwCBuzTLOClLrEEIhbUEwLaCmKGNpcHOJHtOipBtcPHyhk20TnweEGqJFXNAI2ctXuiMf8ezhciQh3vwLjLw2vQGoX9My4XQEER4hzy4YgJqBokP/s320/61G8KSDR00BV0005-779297.jpg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5448322263559744402&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0sR6gXv5Cen8sRwL9mYqhkBqlm7SNi3He_BHayhfRMajrUS4MTzWivNmF8Lh6XfvMmouQ6rfa7virwFaobJ8-QiIhqmn3MdNORpv0Eki0Mv9Rncbk6PPbZOROiHEGD_Po8OAY_OKHTCm6/s1600-h/18783479_32020258-780707.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0sR6gXv5Cen8sRwL9mYqhkBqlm7SNi3He_BHayhfRMajrUS4MTzWivNmF8Lh6XfvMmouQ6rfa7virwFaobJ8-QiIhqmn3MdNORpv0Eki0Mv9Rncbk6PPbZOROiHEGD_Po8OAY_OKHTCm6/s320/18783479_32020258-780707.jpg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5448322268400877762&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwnrXtiy6OfVvxDS7RXo5BUG-QWsCxYLubYznYqbD9umHUhcHHUv1V7fktDhcdYytEnD2HDQirL3EEI4GlS0HmAt-OnBO0DrdyPse6DRlgOfZCF9pXgLGxo5aUC6ljw1KqcFF3_F354IZB/s1600-h/61G8KQMB00BV0005-782106.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwnrXtiy6OfVvxDS7RXo5BUG-QWsCxYLubYznYqbD9umHUhcHHUv1V7fktDhcdYytEnD2HDQirL3EEI4GlS0HmAt-OnBO0DrdyPse6DRlgOfZCF9pXgLGxo5aUC6ljw1KqcFF3_F354IZB/s320/61G8KQMB00BV0005-782106.jpg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5448322275058324498&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTjNSJcFic9hsYsMKyiK9ocmiJOoIMvCizOUmtjFHveRUS9an5zRvxv_xYFFAPChnKdSrvpNFnFmbBr9bxt7sRT4xxnbC6lbpNt0snXP_xjwZd8ggW-5cDle-Bj-Wc5XXjozOOy8NiZ2Mt/s1600-h/61G8KMDQ00BV0005-784627.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTjNSJcFic9hsYsMKyiK9ocmiJOoIMvCizOUmtjFHveRUS9an5zRvxv_xYFFAPChnKdSrvpNFnFmbBr9bxt7sRT4xxnbC6lbpNt0snXP_xjwZd8ggW-5cDle-Bj-Wc5XXjozOOy8NiZ2Mt/s320/61G8KMDQ00BV0005-784627.jpg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5448322283576678706&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcaEKKNo-DISAVb4QYFPZNlSSQv0TWVi208IkO3d-mHAsNYAH2xjZOPOlap7i568KawrQNGsCFS942ZHHqG6d8xidET2ViIFh2f-DPLvFgR6HVSIyZlHvJqtgeLMAScD3pon8MY898fPTr/s1600-h/18785129_31640689-785848.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcaEKKNo-DISAVb4QYFPZNlSSQv0TWVi208IkO3d-mHAsNYAH2xjZOPOlap7i568KawrQNGsCFS942ZHHqG6d8xidET2ViIFh2f-DPLvFgR6HVSIyZlHvJqtgeLMAScD3pon8MY898fPTr/s320/18785129_31640689-785848.jpg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5448322290668742562&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHuTb7b-vkt1jWlQJa4yX9jrJFj3jHlvuP69wNmLOdeKwZeKcTG7wIGeM3AVT1SqYqNeOM-BwbFNGa3omNTFX6B3FWABKX_B41jP8O4XG8x6_Kklg8Mx7y7283LOBJVKdw3KhCrhY8-lf8/s1600-h/18772487_33838185-787137.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHuTb7b-vkt1jWlQJa4yX9jrJFj3jHlvuP69wNmLOdeKwZeKcTG7wIGeM3AVT1SqYqNeOM-BwbFNGa3omNTFX6B3FWABKX_B41jP8O4XG8x6_Kklg8Mx7y7283LOBJVKdw3KhCrhY8-lf8/s320/18772487_33838185-787137.jpg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5448322296599818466&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;mobile-photo&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTyrP0UAU7vrByY3M0wyx8YNMw2BSFGAxTdohoXzmtbikt8hUF0ZIjdMKzcpPKcQUKmF9sEYXkr8U6wFFlMUHm-8fiESVvKU1H3qUhoh02FRklmKTNT1aDUnMolsoGQVrZAhDa8UmzgEBZ/s1600-h/61G8KN9G00BV0005-789034.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTyrP0UAU7vrByY3M0wyx8YNMw2BSFGAxTdohoXzmtbikt8hUF0ZIjdMKzcpPKcQUKmF9sEYXkr8U6wFFlMUHm-8fiESVvKU1H3qUhoh02FRklmKTNT1aDUnMolsoGQVrZAhDa8UmzgEBZ/s320/61G8KN9G00BV0005-789034.jpg&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5448322308194188306&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt; </content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/7908682137338026065/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/7908682137338026065' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/7908682137338026065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/7908682137338026065'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2010/03/welcome-home-becks.html' title='Welcome home Becks'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs3jWjqhqbskcel5rHh7pdQjYyHA6pJwCBuzTLOClLrEEIhbUEwLaCmKGNpcHOJHtOipBtcPHyhk20TnweEGqJFXNAI2ctXuiMf8ezhciQh3vwLjLw2vQGoX9My4XQEER4hzy4YgJqBokP/s72-c/61G8KSDR00BV0005-779297.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-8835759947103498158</id><published>2009-07-22T23:02:00.002+08:00</published><updated>2009-07-22T23:04:14.238+08:00</updated><title type='text'>Secrets of the Rails Console</title><content type='html'>&lt;a href=&quot;http://slash7.com/articles/2006/12/21/secrets-of-the-rails-console-ninjas&quot;&gt;Secrets of the Rails Console Ninjas&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/8835759947103498158/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/8835759947103498158' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8835759947103498158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8835759947103498158'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/07/secrets-of-rails-console.html' title='Secrets of the Rails Console'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-4362716737446508416</id><published>2009-06-30T16:20:00.001+08:00</published><updated>2009-06-30T16:27:05.847+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>irb auto complete</title><content type='html'>在~/.irbrc中加入：&lt;br /&gt;&lt;p class=&#39;quote&#39;&gt;require &#39;irb/completion&#39;&lt;br /&gt;ARGV.concat [ &quot;--readline&quot;, &quot;--prompt-mode&quot;, &quot;simple&quot; ]&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/4362716737446508416/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/4362716737446508416' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/4362716737446508416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/4362716737446508416'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/06/irb-auto-complete.html' title='irb auto complete'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-6199379432227931623</id><published>2009-06-15T13:05:00.003+08:00</published><updated>2009-06-15T13:12:07.888+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>2 issues of VirtualBox on Ubuntu 8.04</title><content type='html'>issue: &quot;VirtualBox No suitable module for running kernel found&quot;&lt;br /&gt;solution: &lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;sudo apt-get install virtualbox-ose-source&lt;br /&gt;sudo m-a update&lt;br /&gt;sudo m-a prepare&lt;br /&gt;sudo m-a a-i virtualbox-ose&lt;br /&gt;sudo /etc/init.d/vboxdrv restart&lt;/p&gt;&lt;br /&gt;issue: &quot;VirtualBox Kernel driver not install&quot;&lt;br /&gt;solution: &lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;sudo /etc/init.d/vboxdrv start&lt;br /&gt;sudo chmod 666 /dev/vboxdrv&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/6199379432227931623/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/6199379432227931623' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/6199379432227931623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/6199379432227931623'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/06/2-issues-of-virtualbox-on-ubuntu-804.html' title='2 issues of VirtualBox on Ubuntu 8.04'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-8866515289689369719</id><published>2009-05-21T23:40:00.000+08:00</published><updated>2009-05-21T23:52:42.458+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browser"/><category scheme="http://www.blogger.com/atom/ns#" term="Vi"/><title type='text'>Vimperator</title><content type='html'>&lt;a href=&quot;http://vimperator.org/trac/wiki/Vimperator&quot;&gt;Vimperator&lt;/a&gt;是Firefox的一个&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4891&quot;&gt;addon&lt;/a&gt;，可以像使用Vim一样来使用浏览器。&lt;br /&gt;&lt;br /&gt;以下是一些命令的备忘&lt;br /&gt;&lt;br /&gt;CTRL-Z&lt;br /&gt;Disable all Vimperator keys except &amp;lt;Esc&amp;gt; and pass them to the next event handler.&lt;br /&gt;If you also need to pass &amp;lt;Esc&amp;gt; in this mode to the web page, prepend it with &amp;lt;C-v&amp;gt;.&lt;br /&gt;&lt;br /&gt;CTRL-V&lt;br /&gt;If you only need to pass a single key to a JavaScript form field or another extension prefix the key with &amp;lt;C-v&amp;gt;.&lt;br /&gt;When Vimperator mode is temporarily disabled with &amp;lt;C-z&amp;gt;, &amp;lt;C-v&amp;gt; will pass the next key to Vimperator instead of the web page.&lt;br /&gt;&lt;br /&gt;Opened with the specified search engine if the token looks like a search string and the first word is the name of a search engine.&lt;br /&gt;The short name of a search engine is automatically guessed from its name. If you want to set a custom name, you can change it with :dialog searchengines.&lt;br /&gt;&lt;br /&gt;T Works like t but preselects current URL in the :tabopen query.&lt;br /&gt;&lt;br /&gt;:tabd[uplicate]&lt;br /&gt;Duplicates current tab.&lt;br /&gt;&lt;br /&gt;:wino[pen]&lt;br /&gt;Just like :tabopen but opens the resulting web page(s) in a new window.&lt;br /&gt;&lt;br /&gt;p&lt;br /&gt;Open (put) a URL based on the current clipboard contents in the current buffer.&lt;br /&gt;&lt;br /&gt;P&lt;br /&gt;Open (put) a URL based on the current clipboard contents in a new buffer. Works like p but opens a new tab.&lt;br /&gt;&lt;br /&gt;:ju[mps]&lt;br /&gt;List all jumps aka current tab&#39;s history aka session history.&lt;br /&gt;&lt;br /&gt;r&lt;br /&gt;Force reloading of the current page.&lt;br /&gt;&lt;br /&gt;R&lt;br /&gt;Force reloading of the current page skipping the cache.&lt;br /&gt;&lt;br /&gt;&amp;lt;C-c&amp;gt;&lt;br /&gt;Stop loading the current web page.&lt;br /&gt;&lt;br /&gt;ZQ&lt;br /&gt;Quit and don&#39;t save the session.&lt;br /&gt;&lt;br /&gt;ZZ&lt;br /&gt;Quit and save the session.&lt;br /&gt;&lt;br /&gt;g&amp;lt;C-g&amp;gt;&lt;br /&gt;Print file information.&lt;br /&gt;&lt;br /&gt;[count]gi&lt;br /&gt;Focus last used input field. If there is no last input field, it focuses the first input field. When used with [count] it directly jumps to the [count]th input field.&lt;br /&gt;&lt;br /&gt;zz&lt;br /&gt;Set full zoom value of current web page. Zoom value can be between 30 and 300%. If it is omitted, full zoom is reset to 100%.&lt;br /&gt;&lt;br /&gt;/{pattern}[/]&amp;lt;CR&amp;gt;&lt;br /&gt;If &quot;\c&quot; appears anywhere in the pattern the whole pattern is handled as though &#39;ignorecase&#39; is on. &quot;\C&quot; forces case-sensitive matching for the whole pattern.&lt;br /&gt;&lt;br /&gt;:noh[lsearch]&lt;br /&gt;Remove the search highlighting.&lt;br /&gt;&lt;br /&gt;:buffers [filter]&lt;br /&gt;B&lt;br /&gt;Show a list of buffers (=tabs) matching [filter]. Without [filter] list all tabs.&lt;br /&gt;&lt;br /&gt;:tab {cmd}&lt;br /&gt;Execute {cmd} and tell it to output in a new tab. Works only for commands that support it, currently:&lt;br /&gt;      :tab help&lt;br /&gt;      :tab prefs[!]&lt;br /&gt;      :tab addons&lt;br /&gt;      :tab downloads&lt;br /&gt;&lt;br /&gt;g0&lt;br /&gt;Switch to the first tab.&lt;br /&gt;&lt;br /&gt;g$&lt;br /&gt;Switch to the last tab.&lt;br /&gt;&lt;br /&gt;u&lt;br /&gt;Undo closing of a tab.&lt;br /&gt;&lt;br /&gt;ExtendedHint mode&lt;br /&gt;{mode} can be one of:&lt;br /&gt;      ;; to focus a link and hover it with the mouse&lt;br /&gt;      ;? to show information about the element (incomplete)&lt;br /&gt;      ;s to save its destination&lt;br /&gt;      ;a to save its destination (prompting for save location)&lt;br /&gt;      ;f to focus a frame&lt;br /&gt;      ;F to follow a sequence of &amp;lt;CR&amp;gt;-delimited hints in background tabs&lt;br /&gt;      ;y to yank its destination location&lt;br /&gt;      ;Y to yank its text description&lt;br /&gt;&lt;br /&gt;:bma[rk]&lt;br /&gt;Add a bookmark.&lt;br /&gt;&lt;br /&gt;:bmarks [filter]&lt;br /&gt;List or open multiple bookmarks. Open the message window at the bottom of the screen with all bookmarks which match [filter] either in the title or URL.&lt;br /&gt;&lt;br /&gt;m{a-zA-Z}&lt;br /&gt;Set mark at the cursor position. Marks a-z are local to the buffer, whereas A-Z are valid between buffers.&lt;br /&gt;&lt;br /&gt;&#39;{a-zA-Z}&lt;br /&gt;Jump to the mark in the current buffer. Marks a-z are local to the buffer, whereas A-Z are valid between buffers.&lt;br /&gt;&lt;br /&gt;:marks&lt;br /&gt;Show all location marks of the current web page.&lt;br /&gt;&lt;br /&gt;q{0-9a-zA-Z}&lt;br /&gt;Record a key sequence into a macro. Available macros are {0-9a-zA-Z} (uppercase to append). Type q to stop recording.&lt;br /&gt;&lt;br /&gt;:mac[ros] [pat]&lt;br /&gt;List recorded macros matching the optional regular expression [pat]. If no regexp is given, list all macros.&lt;br /&gt;&lt;br /&gt;:dialog printpreview&lt;br /&gt;&lt;br /&gt;&amp;lt;C-a&amp;gt;&lt;br /&gt;Increment last number in URL&lt;br /&gt;&lt;br /&gt;&amp;lt;C-x&amp;gt;&lt;br /&gt;Decrement last number in URL&lt;br /&gt;&lt;br /&gt;0&lt;br /&gt;Scroll to the absolute left of the document&lt;br /&gt;&lt;br /&gt;$&lt;br /&gt;Scroll to the absolute right of the document&lt;br /&gt;&lt;br /&gt;gU&lt;br /&gt;Go to the root of the website&lt;br /&gt;&lt;br /&gt;:messages&lt;br /&gt;Display previously given messages&lt;br /&gt;&lt;br /&gt;:restart&lt;br /&gt;Force the browser to restart&lt;br /&gt;&lt;br /&gt;:se[t] all&lt;br /&gt;Show all options.</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/8866515289689369719/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/8866515289689369719' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8866515289689369719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8866515289689369719'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/05/vimperator.html' title='Vimperator'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-5445648103520948137</id><published>2009-03-29T00:01:00.006+08:00</published><updated>2009-04-05T02:17:21.057+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>fastri</title><content type='html'>&lt;p class=&quot;cmd cmd_normal&quot;&gt;sudo gem install fastri&lt;br /&gt;fastri-server -b&lt;/p&gt;&lt;br /&gt;然后就可以&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;qri string&lt;/p&gt;如果显示大于一屏的话&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;qri string|less -r&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/5445648103520948137/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/5445648103520948137' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/5445648103520948137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/5445648103520948137'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/03/fastri.html' title='fastri'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-7634503479933346693</id><published>2009-02-27T12:31:00.009+08:00</published><updated>2009-02-27T12:40:48.420+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Leben"/><title type='text'>和谐</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaFwiLRhhkR8fMopTeMonjbq6YAiU0d37Nq_h5BhxE2bNJPTUmaFN-Wv6X1aDfa102XtqLA8nFzuHpETAas91a-YNDRYiqUROQR2ENnaU-L2bO-UmgVGZUpWwloR2QXYIEf97YgeCpAPOi/s1600-h/m2.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 355px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaFwiLRhhkR8fMopTeMonjbq6YAiU0d37Nq_h5BhxE2bNJPTUmaFN-Wv6X1aDfa102XtqLA8nFzuHpETAas91a-YNDRYiqUROQR2ENnaU-L2bO-UmgVGZUpWwloR2QXYIEf97YgeCpAPOi/s400/m2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307330361213192834&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0h2UEKxE5MDXoYjMYqa2jqegl7D19Ji95_EeoLok-qPlqMQ-QK9Sq4lH4-glsRLuMixVr04uB6HOyudQ28963XeHnFK57vJYve8K7rpfUAW80oA5Vvn35x2XKhy2Ukz5gG8Wlm6tatpVU/s1600-h/m.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0h2UEKxE5MDXoYjMYqa2jqegl7D19Ji95_EeoLok-qPlqMQ-QK9Sq4lH4-glsRLuMixVr04uB6HOyudQ28963XeHnFK57vJYve8K7rpfUAW80oA5Vvn35x2XKhy2Ukz5gG8Wlm6tatpVU/s400/m.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307330548756211058&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwr_4qEBb0QZmmFHvRuPaU0mrf2-X7MP_ACi02Dufk5YyGUCMcefpeGPvMwKlSV0N2qO9wjTqlQULciL74qu8qLsM0x2l50Jggjhch4rz2o79DRmpyoYfc7I03mkh-1c2ae0uIVCrDYVil/s1600-h/m8.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 310px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwr_4qEBb0QZmmFHvRuPaU0mrf2-X7MP_ACi02Dufk5YyGUCMcefpeGPvMwKlSV0N2qO9wjTqlQULciL74qu8qLsM0x2l50Jggjhch4rz2o79DRmpyoYfc7I03mkh-1c2ae0uIVCrDYVil/s400/m8.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307330942104709026&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDXeQ8RWAULcC0RFCgdMkkPyZPkXWOK9RevKtF5E8HAdR47SAzMO138wka-JbX83-rkAQpF0podir7Eey6NHoPIJCzVnLshdUlYuJhYvXSjs8gYbyhbhegx2ejuk3OdkfpsYSlvEpU4D1Y/s1600-h/m9.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 310px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDXeQ8RWAULcC0RFCgdMkkPyZPkXWOK9RevKtF5E8HAdR47SAzMO138wka-JbX83-rkAQpF0podir7Eey6NHoPIJCzVnLshdUlYuJhYvXSjs8gYbyhbhegx2ejuk3OdkfpsYSlvEpU4D1Y/s400/m9.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307330997328012930&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTZCJLcztOIXQ-Dq3RTXCwxcbTjNzBCBI_QzxrJL9HfQQ2UHEjHaewmZ4-Yst1Oeja8_OvKd6eLwbjYB3AOkvWXa-w5k08tOEbA_xAU7xNRSVN_lYlWONq03aLs5lDgcMnSbI6WNl9z36/s1600-h/m3.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 323px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfTZCJLcztOIXQ-Dq3RTXCwxcbTjNzBCBI_QzxrJL9HfQQ2UHEjHaewmZ4-Yst1Oeja8_OvKd6eLwbjYB3AOkvWXa-w5k08tOEbA_xAU7xNRSVN_lYlWONq03aLs5lDgcMnSbI6WNl9z36/s400/m3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307331094756881554&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEugL3-aV7KRJ6Ocjle77GilWGIx3vrp3KyeB3HBfh_IgPVuCg6epkhyphenhyphenGF365Vva-8nDSs5vu9Gp_nssFfc_nLuAys0R0WresowIXIrnEEHo_2JVsT6U6kIGuQGlpTVYjT9VAEVgsVWoTp/s1600-h/m5.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 329px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEugL3-aV7KRJ6Ocjle77GilWGIx3vrp3KyeB3HBfh_IgPVuCg6epkhyphenhyphenGF365Vva-8nDSs5vu9Gp_nssFfc_nLuAys0R0WresowIXIrnEEHo_2JVsT6U6kIGuQGlpTVYjT9VAEVgsVWoTp/s400/m5.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307331164546388418&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;可惜加里不在！&lt;br /&gt;&lt;br /&gt;什么时候能看到Rose大叔和Slash这样站在一起呢？</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/7634503479933346693/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/7634503479933346693' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/7634503479933346693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/7634503479933346693'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/02/blog-post.html' title='和谐'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaFwiLRhhkR8fMopTeMonjbq6YAiU0d37Nq_h5BhxE2bNJPTUmaFN-Wv6X1aDfa102XtqLA8nFzuHpETAas91a-YNDRYiqUROQR2ENnaU-L2bO-UmgVGZUpWwloR2QXYIEf97YgeCpAPOi/s72-c/m2.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-8956630341279833492</id><published>2009-02-19T11:53:00.002+08:00</published><updated>2009-02-19T12:00:04.739+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><title type='text'>SQLyog</title><content type='html'>MySQL 自带的图形工具太难用了。&lt;br /&gt;看到 Woody 同学在用 SQLyog，挺好用的。&lt;br /&gt;&lt;a href=&quot;http://www.webyog.com/en/downloads.php&quot;&gt;http://www.webyog.com/en/downloads.php&lt;/a&gt;&lt;br /&gt;下载 SQLyog MySQL GUI - Community Edition&lt;br /&gt;然后用 wine 来跑:&lt;br /&gt;&lt;a href=&quot;http://www.webyog.com/faq/content/31/71/en/can-i-use-sqlyog-with-the-wine-windows-emulator-on-linux.html&quot;&gt;http://www.webyog.com/faq/content/31/71/en/can-i-use-sqlyog-with-the-wine-windows-emulator-on-linux.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/8956630341279833492/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/8956630341279833492' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8956630341279833492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8956630341279833492'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/02/sqlyog.html' title='SQLyog'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-3618239519291682130</id><published>2009-02-13T11:42:00.002+08:00</published><updated>2009-02-13T12:03:58.257+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Thunderbird"/><title type='text'>Highlighting text in thunderbird</title><content type='html'>Thunderbird 里不能直接 highlight 文字的背景色，这点很不方便。&lt;br /&gt;Google了一下，&lt;a href=&quot;http://kb.mozillazine.org/Highlighting_in_messages&quot;&gt;http://kb.mozillazine.org/Highlighting_in_messages&lt;/a&gt;，NND居然让我自己写HTML来实现。这种粗活应该让下人去做啊，怎么能让我来做呢？&lt;br /&gt;再 google 之，发现了一个插件 &lt;a href=&quot;https://addons.mozilla.org/zh-CN/thunderbird/addon/6509&quot;&gt;Highlight Text&lt;/a&gt;，生活就此完美鸟。&lt;br /&gt;安装完后，在邮件编辑窗口里，View -&gt; Toolbars -&gt; Customize，将Highlight标签拖到toolbar上，然后就可以用了。</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/3618239519291682130/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/3618239519291682130' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/3618239519291682130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/3618239519291682130'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/02/highlighting-text-in-thunderbird.html' title='Highlighting text in thunderbird'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-1072979471000710994</id><published>2009-01-16T16:38:00.001+08:00</published><updated>2009-01-16T16:42:26.363+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Vi"/><title type='text'>用ctags在vim里实现跳转</title><content type='html'>首先安装ctags:&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;sudo apt-get install ctags&lt;/p&gt;&lt;br /&gt;然后在源码的根目录下执行命令：&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;ctags -R&lt;/p&gt;或&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;ctags --recurse&lt;/p&gt;&lt;br /&gt;这会在根目录下生成一个tags文件&lt;br /&gt;&lt;br /&gt;接着在~/.vimrc里加上这两句&lt;br /&gt;set tags=tags;&lt;br /&gt;set autochdir&lt;br /&gt;&lt;br /&gt;然后按Ctrl-]，就可以跳转到方法定义的地方了。&lt;br /&gt;要想跳回去，按Ctrl-t&lt;br /&gt;&lt;br /&gt;参考：&lt;br /&gt;&lt;a href=&quot;http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx&quot;&gt;http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://likeyesterday.spaces.live.com/Blog/cns!A80F5D17DD9D10BF!148.entry&quot;&gt;http://likeyesterday.spaces.live.com/Blog/cns!A80F5D17DD9D10BF!148.entry&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/1072979471000710994/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/1072979471000710994' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/1072979471000710994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/1072979471000710994'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/01/ctagsvim.html' title='用ctags在vim里实现跳转'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-2971250957565344766</id><published>2009-01-09T12:09:00.002+08:00</published><updated>2009-01-09T12:18:09.665+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SVN"/><title type='text'>SVN 忽略文件</title><content type='html'>以前都是给某个具体的目录设置 svn:ignore 属性来忽略其下的某些文件。&lt;br /&gt;可是有些临时文件（比如vim产生的临时文件*.swp和备份文件*~）在很多目录下都可能会产生，而svn 的propedit 命令没有递归到子目录的选项（propset倒是有递归子目录选项，不过它会覆盖原来已有的属性设置），难道要每个目录都设置一次？&lt;br /&gt;&lt;br /&gt;svn有个global-ignores list，打开 ~/.subversion/config，设置如下：&lt;br /&gt;global-ignores = *.swp *~&lt;br /&gt;这样就可以忽略所有目录下的这些文件了。&lt;br /&gt;&lt;br /&gt;这个设置只是local的设置，并不会影响server。换句话说，别人机器上并不会自动忽略这些文件。</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/2971250957565344766/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/2971250957565344766' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2971250957565344766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2971250957565344766'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/01/svn.html' title='SVN 忽略文件'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-5442169275160452921</id><published>2009-01-08T16:01:00.004+08:00</published><updated>2009-01-09T14:12:30.435+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Vi"/><title type='text'>Vim Plugin - TabBar</title><content type='html'>&lt;a href=&quot;http://lebenbeck.blogspot.com/2009/01/vim-project-plugin.html&quot;&gt;上次&lt;/a&gt;用了个叫&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=159&quot;&gt;miniBufExplorer&lt;/a&gt;的插件，已经很好用了，唯一的缺点是不支持Alt+{1,2,3...}来切换。&lt;br /&gt;结果今天发现了另一个插件：&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1338&quot;&gt;TabBar&lt;/a&gt;，它是基于miniBufExplorer的。&lt;br /&gt;&lt;br /&gt;这下可以用Alt+{1,2,3...}和Ctrl+Tab来模拟tab间的切换了。但是在窗口间切换就不方便，要用CTRL+w w，后来google了一下，发现了这篇文章：&lt;a href=&quot;http://www.lousycoder.com/blog/index.php?/archives/97-Vim-+Project-+Tabbar.html&quot;&gt;http://www.lousycoder.com/blog/index.php?/archives/97-Vim-+Project-+Tabbar.html&lt;/a&gt;&lt;br /&gt;按里面的介绍，在~/.vimrc里加上以下的设置：&lt;br /&gt;map &amp;lt;C-H&gt; &amp;lt;C-W&gt;h&lt;br /&gt;map &amp;lt;C-J&gt; &amp;lt;C-W&gt;j&lt;br /&gt;map &amp;lt;C-K&gt; &amp;lt;C-W&gt;k&lt;br /&gt;map &amp;lt;C-L&gt; &amp;lt;C-W&gt;l&lt;br /&gt;然后按Ctrl+{h,j,k,l}就可以在窗口间肆意流窜了。&lt;br /&gt;&lt;br /&gt;默认tab的高度是1,也就是说打开的tab太多超过一行的话，后打开tab就看不见了。当然这时我们可以用鼠标拖动来扩大tab窗口的高度，然而更好的办法是配置一个tab窗口高度的最大值：&lt;br /&gt;let g:Tb_MaxSize = 3</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/5442169275160452921/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/5442169275160452921' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/5442169275160452921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/5442169275160452921'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/01/vim-plugin-tabbar.html' title='Vim Plugin - TabBar'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-8700890929065835736</id><published>2009-01-06T18:52:00.004+08:00</published><updated>2009-01-08T16:13:42.573+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Vi"/><title type='text'>Vim-Project Plugin</title><content type='html'>Project quickstart guide:&lt;br /&gt;(From &lt;a href=&quot;http://wiki.rubyonrails.org/rails/pages/howtousevimwithrails&quot;&gt;http://wiki.rubyonrails.org/rails/pages/howtousevimwithrails&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Here is a quick guide to get you started after installing Project.&lt;br /&gt;   1. Type :Project in Vim to launch the Project plugin.&lt;br /&gt;   2. Type \C to launch the create project routine.&lt;br /&gt;   3. Enter a name for the project (e.g. @RailsApp@)&lt;br /&gt;   4. Enter the directory path (e.g. /Users/me/Development/RailsApp)&lt;br /&gt;   5. Type . as the CD parameter.&lt;br /&gt;   6. Type * as the filter.&lt;br /&gt;   7. Type \r to load all files and directories.&lt;br /&gt;&lt;br /&gt;project中文帮助: &lt;a href=&quot;http://www.cppblog.com/DrMagic/archive/2007/11/19/36964.html&quot;&gt;http://www.cppblog.com/DrMagic/archive/2007/11/19/36964.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;要使用本插件, 只需将其放置到 Vim 的插件目录(~/.vim/plugin)即可. 参见&lt;br /&gt;&quot;|add-global-plugin|&quot;, 在下次打开 Vim 时, 输入如下命令 &gt;&lt;br /&gt;    :Project&lt;br /&gt;或者 &gt;&lt;br /&gt;    :Project filename&lt;br /&gt;&lt;br /&gt;如果没有指定具体的项目文件, 那么会默认使用$HOME/.vimprojects文件.&lt;br /&gt;&lt;br /&gt;命令: [g]vim +Project 可在 Vim 启动时同时自动载入project插件窗口.&lt;br /&gt;（可以在~/.bashrc里加个alias: alias vimp=&#39;vim +Project&#39;）&lt;br /&gt;&lt;br /&gt;在~/.vimrc里设置标志位和热键映射：&lt;br /&gt;&quot; Set project-flags&lt;br /&gt;  let g:proj_flags=&quot;imstg&quot;&lt;br /&gt;&quot; Project-adding-mappings&lt;br /&gt;  nmap &lt;silent&gt; &lt;Leader&gt;P :Project&lt;CR&gt;&lt;br /&gt;g:proj_flags默认的标志位是imst，这里加上g以后，就可以按&lt;F12&gt;关闭和打开左边的项目窗口。&lt;br /&gt;设置了上面那个映射之后，按\P就可以将光标焦点移到项目窗口。&lt;br /&gt;&lt;br /&gt;一些热键：&lt;br /&gt;&lt;br /&gt;&lt;S-Return&gt;(Shift+回车) 或 \s: 打开一个文件，但会水平分割目标窗口. &lt;br /&gt;&lt;br /&gt;\v: 仅仅显示文件内容, 而光标依然停留在项目窗口中.&lt;br /&gt;&lt;br /&gt;&lt;space&gt;: 增加项目窗口的宽度，反复点击则为在原宽度和增加后的宽度之间切换.&lt;br /&gt;&lt;br /&gt;\g: 搜索当前项目层所有文件.&lt;br /&gt;&lt;br /&gt;\G: 搜索项目所有层所有文件.&lt;br /&gt;&lt;br /&gt;当项目窗口因为或开或闭的折叠显得凌乱时, 按 zm 可以关闭所有的展开折叠.&lt;br /&gt;&lt;br /&gt;\r: 根据过滤符更新光标处的项目（也就是刷新该目录）&lt;br /&gt;&lt;br /&gt;\R: 递归执行 \r.&lt;br /&gt;&lt;br /&gt;另一个有用的plugin: &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=159&quot;&gt;miniBufExplorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;把下载的文件copy到~/.vim/plugin/目录下&lt;br /&gt;然后在.vimrc里加上：&lt;br /&gt;&quot; minibufexpl setting&lt;br /&gt;  let g:miniBufExplMapWindowNavVim = 1&lt;br /&gt;  let g:miniBufExplMapWindowNavArrows = 1&lt;br /&gt;  let g:miniBufExplMapCTabSwitchBufs = 1&lt;br /&gt;  let g:miniBufExplModSelTarget = 1&lt;br /&gt;&lt;br /&gt;然后就可以用Ctrl+Tab键来切换tab了。&lt;br /&gt;&lt;br /&gt;要想删除某个文件的打开记录，则先Ctrl+UP切换到上方的MiniBufExplorer窗口，然后将光标移动到要删的文件名上（不是删文件，而是删文件的打开记录），按d就行了。</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/8700890929065835736/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/8700890929065835736' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8700890929065835736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/8700890929065835736'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2009/01/vim-project-plugin.html' title='Vim-Project Plugin'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-4405836546315072051</id><published>2008-11-11T12:59:00.001+08:00</published><updated>2008-11-11T13:04:53.790+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BDD"/><category scheme="http://www.blogger.com/atom/ns#" term="RSpec"/><title type='text'>The RSpec Book</title><content type='html'>终于有 rspec 的书了：&lt;br /&gt;&lt;a href=&quot;http://www.pragprog.com/titles/achbd/the-rspec-book&quot;&gt;http://www.pragprog.com/titles/achbd/the-rspec-book&lt;/a&gt;&lt;br /&gt;2009年4月出版，beta版2008年12月出：&lt;br /&gt;&lt;a href=&quot;http://groups.google.com/group/rspec/browse_thread/thread/832c6ce69b6b8921?pli=1&quot;&gt;http://groups.google.com/group/rspec/browse_thread/thread/832c6ce69b6b8921?pli=1&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/4405836546315072051/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/4405836546315072051' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/4405836546315072051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/4405836546315072051'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/11/rspec-book.html' title='The RSpec Book'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-2833089862464588206</id><published>2008-11-10T13:08:00.002+08:00</published><updated>2008-11-10T13:09:13.908+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Jokes"/><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions"/><title type='text'>Google Chrome浏览器Logo诞生过程（转）</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj5t8it7QdqkXt10f1C_7_v8XvM-2-cwvgiRzQIBplW9KY5hRyjdcON0eLSgXVqCXIkB2XSn85emVEAs8oVmRrNEh1f24QU8Xq5677I2MJsZynXbE6-I56CTXjtmghzxanrPBZrn3GMw_d/s1600-h/2979957129_e01589294c.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj5t8it7QdqkXt10f1C_7_v8XvM-2-cwvgiRzQIBplW9KY5hRyjdcON0eLSgXVqCXIkB2XSn85emVEAs8oVmRrNEh1f24QU8Xq5677I2MJsZynXbE6-I56CTXjtmghzxanrPBZrn3GMw_d/s400/2979957129_e01589294c.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5266891482055202226&quot; /&gt;&lt;/a&gt;&lt;br /&gt;太有才了！</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/2833089862464588206/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/2833089862464588206' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2833089862464588206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2833089862464588206'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/11/google-chromelogo.html' title='Google Chrome浏览器Logo诞生过程（转）'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj5t8it7QdqkXt10f1C_7_v8XvM-2-cwvgiRzQIBplW9KY5hRyjdcON0eLSgXVqCXIkB2XSn85emVEAs8oVmRrNEh1f24QU8Xq5677I2MJsZynXbE6-I56CTXjtmghzxanrPBZrn3GMw_d/s72-c/2979957129_e01589294c.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-2583899914057964324</id><published>2008-11-10T12:57:00.002+08:00</published><updated>2008-11-10T13:02:28.718+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Browser"/><title type='text'>CHM Reader</title><content type='html'>Firefox 的一个插件，可以在浏览器里打开 *.chm 文件，就像浏览网页一样。&lt;br /&gt;&lt;br /&gt;打开 CHM 文件：在工具栏上，文件 -&gt; Open CHM Files&lt;br /&gt;打开左侧目录（书签）栏：查看 -&gt; 侧栏 -&gt; CHM Reader，或 Ctrl + E</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/2583899914057964324/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/2583899914057964324' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2583899914057964324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2583899914057964324'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/11/chm-reader.html' title='CHM Reader'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-7658399746804555777</id><published>2008-10-29T17:19:00.000+08:00</published><updated>2008-10-29T17:20:25.644+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Regular_Expression"/><title type='text'>Regular Expression Basic Syntax Reference</title><content type='html'>&lt;a href=&quot;http://www.regular-expressions.info/reference.html&quot;&gt;http://www.regular-expressions.info/reference.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/7658399746804555777/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/7658399746804555777' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/7658399746804555777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/7658399746804555777'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/10/regular-expression-basic-syntax.html' title='Regular Expression Basic Syntax Reference'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-2357226882326568128</id><published>2008-10-29T17:03:00.000+08:00</published><updated>2008-10-29T17:04:14.128+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions"/><title type='text'>Who Do You Trust（转）</title><content type='html'>有意思的一篇文章：&lt;a href=&quot;http://www.infoq.com/cn/articles/Who-Do-You-Trust-Linda-Rising&quot;&gt;http://www.infoq.com/cn/articles/Who-Do-You-Trust-Linda-Rising&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/2357226882326568128/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/2357226882326568128' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2357226882326568128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2357226882326568128'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/10/who-do-you-trust.html' title='Who Do You Trust（转）'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-2635269294586736364</id><published>2008-10-29T12:07:00.001+08:00</published><updated>2008-10-29T12:08:36.823+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>查看系统是否是64位的</title><content type='html'>&lt;p class=&quot;cmd cmd_normal&quot;&gt;uname -a&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/2635269294586736364/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/2635269294586736364' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2635269294586736364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2635269294586736364'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/10/64.html' title='查看系统是否是64位的'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-6874581820413599584</id><published>2008-10-23T01:31:00.002+08:00</published><updated>2008-10-23T01:39:26.443+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blog"/><title type='text'>再设hosts</title><content type='html'>不知道为什么，以前设的 hosts 不好使了：&lt;br /&gt;72.14.219.190 xxx.blogspot.com&lt;br /&gt;别人的不设也能访问，就是访问不了自己的，难道我人品有问题。&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;nslookup xxx.blogspot.com&lt;br /&gt;&lt;br /&gt;Server:  gjjline.bta.net.cn&lt;br /&gt;Address:  202.106.0.20&lt;br /&gt;&lt;br /&gt;Non-authoritative answer:&lt;br /&gt;Name:    blogspot.l.google.com&lt;br /&gt;Address:  209.85.175.191&lt;br /&gt;Aliases:  xxx.blogspot.com&lt;/p&gt;&lt;br /&gt;把得到的 IP 再设置到 hosts 里：&lt;br /&gt;209.85.175.191 xxx.blogspot.com&lt;br /&gt;又可以访问了</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/6874581820413599584/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/6874581820413599584' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/6874581820413599584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/6874581820413599584'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/10/hosts.html' title='再设hosts'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-6169584299041722217</id><published>2008-10-23T00:03:00.007+08:00</published><updated>2008-10-23T01:30:34.665+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>How To Generate Local RDocs</title><content type='html'>最近 &lt;a href=&quot;http://www.ruby-doc.org/core/&quot;&gt;http://www.ruby-doc.org/core/&lt;/a&gt; 无法访问了，而 ri 用起来始终不习惯。偶然看到了个生成 Local RDocs 的方法。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.mindsifter.com/2008/1/8/generate-local-ruby-core-rdocs&quot;&gt;http://www.mindsifter.com/2008/1/8/generate-local-ruby-core-rdocs&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://weblog.jamisbuck.org/2005/4/8/rdoc-template&quot;&gt;http://weblog.jamisbuck.org/2005/4/8/rdoc-template&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download the template &lt;a href=&quot;http://www.jamisbuck.org/svn/rdoc-templates/jamis.rb&quot;&gt;here&lt;/a&gt;&lt;br /&gt;To use it, copy it into the “rdoc/generators/template/html” directory of your Ruby installation.&lt;br /&gt;Then:&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;rdoc --template=jamis --op &amp;lt;some output dir&amp;gt;&lt;/p&gt;&lt;br /&gt;可能由于我机器上 rubygem 版本的原因，这个模板用不了，不过可以用自带的模板&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;rdoc --template=html --op &amp;lt;some output dir&amp;gt;&lt;/p&gt;&lt;br /&gt;注：执行这个命令时，要先转到 ruby 源代码的目录，默认是生成该目录下所有文件的 rdoc。&lt;br /&gt;也可以指定文件：&lt;br /&gt;&lt;p class=&quot;cmd cmd_normal&quot;&gt;rdoc --template=html --op &amp;lt;some output dir&amp;gt; array.c&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/6169584299041722217/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/6169584299041722217' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/6169584299041722217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/6169584299041722217'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/10/how-to-generate-local-ruby-core-rdocs.html' title='How To Generate Local RDocs'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-132571852513363521</id><published>2008-07-21T17:39:00.002+08:00</published><updated>2008-07-21T17:45:55.989+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Leben"/><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions"/><title type='text'>奇异鸟kiwi（转）</title><content type='html'>&lt;a href=&quot;http://www.youtube.com/watch?v=sdUUx5FdySs&quot;&gt;http://www.youtube.com/watch?v=sdUUx5FdySs&lt;/a&gt;&lt;br /&gt;很感人的视频，以前汉东推荐过的。</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/132571852513363521/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/132571852513363521' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/132571852513363521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/132571852513363521'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/07/blog-post_21.html' title='奇异鸟kiwi（转）'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-1162837401741636826</id><published>2008-07-18T16:04:00.002+08:00</published><updated>2008-07-18T16:07:15.811+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions"/><title type='text'>（单元）测试被高估了（转）</title><content type='html'>讲测试的一篇好文。&lt;br /&gt;&lt;a href=&quot;http://railspikes.com/2008/7/11/testing-is-overrated&quot;&gt;http://railspikes.com/2008/7/11/testing-is-overrated&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/1162837401741636826/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/1162837401741636826' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/1162837401741636826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/1162837401741636826'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/07/blog-post_18.html' title='（单元）测试被高估了（转）'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-724035857885774413.post-2513271840475041941</id><published>2008-07-08T14:37:00.001+08:00</published><updated>2008-07-08T14:40:47.947+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions"/><title type='text'>浅析Ruby on Rails部署方案（转）</title><content type='html'>&lt;a href=&quot;http://docs.google.com/View?docid=ddcvzh74_28f9xppqfh&quot;&gt;http://docs.google.com/View?docid=ddcvzh74_28f9xppqfh&lt;/a&gt;&lt;br /&gt;有数据有分析有结论，图文表并茂，相当强大。</content><link rel='replies' type='application/atom+xml' href='http://lebenbeck.blogspot.com/feeds/2513271840475041941/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/724035857885774413/2513271840475041941' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2513271840475041941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/724035857885774413/posts/default/2513271840475041941'/><link rel='alternate' type='text/html' href='http://lebenbeck.blogspot.com/2008/07/ruby-on-rails.html' title='浅析Ruby on Rails部署方案（转）'/><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXXPQR93Lot_lTHDxTuJAB4KwAz8SmnetYPaV0SJQneQ_2GgywL20g3LMnfICddzK7fvmD_LL6328J7fUcbTjHBucfCX1LiOZSpKjHSJE_unwzWPI73_si16NuwP4fA/s220/view.jpg'/></author><thr:total>0</thr:total></entry></feed>