<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hhuai (guange)</title>
    <link>https://ruby-china.org/hhuai</link>
    <description>既然这样了，看来不做个惊天地，泣鬼神的js项目，会被大家瞧不起。</description>
    <language>en-us</language>
    <item>
      <title>Metaprogramming Ruby 中的 An Event Better DSL 写得太纠结了</title>
      <description>&lt;p&gt;不知道是不是作者学 js 太入神，完全是 js 搞法，为了隐藏一个全局变量，却搞出 N 多的全局方法出来了。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;lambda&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;setups&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
  &lt;span class="n"&gt;events&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
  &lt;span class="err"&gt;￼&lt;/span&gt;
  &lt;span class="no"&gt;Kernel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt; &lt;span class="ss"&gt;:define_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:event&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; 
    &lt;span class="n"&gt;events&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;block&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="no"&gt;Kernel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt; &lt;span class="ss"&gt;:define_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:setup&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;setups&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;block&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="no"&gt;Kernel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt; &lt;span class="ss"&gt;:define_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:each_event&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;events&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each_pair&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt; &lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="no"&gt;Kernel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt; &lt;span class="ss"&gt;:define_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:each_setup&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;setups&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;setup&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt; &lt;span class="n"&gt;setup&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="p"&gt;}.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;

&lt;span class="no"&gt;Dir&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;glob&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'*events.rb'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;load&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt;
&lt;span class="n"&gt;each_event&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;env&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="n"&gt;each_setup&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;setup&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_eval&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;setup&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"ALERT: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_eval&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我稍微改了一下，看着顺眼多了，缺点就是调试定不到文件。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Class&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;event&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@events&lt;/span&gt; &lt;span class="o"&gt;||=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
    &lt;span class="vi"&gt;@events&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;block&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@setups&lt;/span&gt; &lt;span class="o"&gt;||=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="vi"&gt;@setups&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;block&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run&lt;/span&gt;
    &lt;span class="vi"&gt;@events.each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
      &lt;span class="vi"&gt;@setups.each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;setup&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
        &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_eval&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;setup&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
      &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"ALERT: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_eval&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_eval&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;instance_eval&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"./test_event.rb"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;
  &lt;span class="n"&gt;run&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>hhuai</author>
      <pubDate>Fri, 24 Jan 2014 19:46:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/16975</link>
      <guid>https://ruby-china.org/topics/16975</guid>
    </item>
    <item>
      <title>谁有 7 牛的 assets 存放经验？</title>
      <description>&lt;p&gt;准备把 assets 全放到 7 牛统一管理，rails 里也有一定的支持，可以配 host.
现在的问题是，如何有效的保持两边的同步，因为每次 applcation.css 和 js 会产生不一样的 hash 名，这样如何去把存在 7 牛的替换成新的很不方便。&lt;/p&gt;

&lt;p&gt;而且貌似 asset 有好多地方没配置，比如.gz 我就不需要了，最好可以 name-hash 这种形式也不需要存在，缓存可以由浏览器自己玩。&lt;/p&gt;

&lt;p&gt;解决：
hash 可以取消
&lt;code&gt;config.assets.digest = false&lt;/code&gt;&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Fri, 26 Jul 2013 10:45:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/12793</link>
      <guid>https://ruby-china.org/topics/12793</guid>
    </item>
    <item>
      <title>这次苹果开发中心和微信都是因为 struts2 吗？</title>
      <description>&lt;p&gt;求正解。
不关心微信，但好几个苹果证书卡在那。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Mon, 22 Jul 2013 14:52:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/12672</link>
      <guid>https://ruby-china.org/topics/12672</guid>
    </item>
    <item>
      <title>[开源] 最近用 rails 做了一个 ios crash 的收集系统</title>
      <description>&lt;p&gt;其实做了一阵了，主要用于收集 ios 的真机上的 crash，目前已经跑了几个月了，有千多个应用在使用，还算稳定。&lt;/p&gt;

&lt;p&gt;地址是：&lt;a href="http://holdbug.com" rel="nofollow" target="_blank"&gt;http://holdbug.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/11bc543720a3a20605601128e13c8923.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;已更新 logo&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Fri, 19 Jul 2013 17:22:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/12621</link>
      <guid>https://ruby-china.org/topics/12621</guid>
    </item>
    <item>
      <title>洋葱白板，iPad 上实时与 web 共享的好帮手。</title>
      <description>&lt;p&gt;洋葱白板是一款在线的实时共享的白板软件，可以用于教学、商务交流，个人娱乐之用。&lt;/p&gt;

&lt;p&gt;ipad 不用越获可以直接在线点击下载：
&lt;a href="http://www.oboard.net" rel="nofollow" target="_blank"&gt;http://www.oboard.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;我又更新了，点击&lt;a href="http://www.oboard.net/paint.html?roomID=406" rel="nofollow" target="_blank"&gt;http://www.oboard.net/paint.html?roomID=406&lt;/a&gt; 可以看到网页端效果。&lt;/p&gt;

&lt;p&gt;在 ipad 的样子
&lt;img src="//l.ruby-china.com/photo/eaf18cd5ed717cbd6721bc6ca451f4f8.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;即时在网页上的样子
&lt;img src="//l.ruby-china.com/photo/9ebc2226635e940bd4b142e38f8537a0.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Fri, 12 Jul 2013 16:41:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/12466</link>
      <guid>https://ruby-china.org/topics/12466</guid>
    </item>
    <item>
      <title>夏天来了，今年还发 T 恤不？</title>
      <description>&lt;p&gt;去年那件很合身，被我穿得老旧了，哈哈哈。。。
坐等各大社区发 T 恤哦。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Fri, 24 May 2013 18:41:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/11217</link>
      <guid>https://ruby-china.org/topics/11217</guid>
    </item>
    <item>
      <title>stackoverflow 不能用中文提问吗？</title>
      <description>&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/16210983/ios-drawrect" rel="nofollow" target="_blank"&gt;http://stackoverflow.com/questions/16210983/ios-drawrect&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;下面有人说必须要用英文，和要我翻译之类，云云。&lt;/p&gt;

&lt;p&gt;我倒是想写英文，可惜别人看不懂。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Thu, 25 Apr 2013 17:31:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/10502</link>
      <guid>https://ruby-china.org/topics/10502</guid>
    </item>
    <item>
      <title>cruby 的实现和 js 引擎 v8 的实现，根本不在同一级别上。</title>
      <description>&lt;p&gt;一、方法的查找。
都是动态语言，属性和方法都是动态，ruby 的就是一些老过时的方法，查找还是优化查找。v8 的，直接 hidden class，放到变量 offset 偏移处，native code 的时候直接调用。&lt;/p&gt;

&lt;p&gt;二、虚拟机
ruby2.0 了还是那个没长进的老虚拟机吧，v8 直接就编成 native code。&lt;/p&gt;

&lt;p&gt;依我看，到 3.0 也不会有太大长进。&lt;/p&gt;

&lt;p&gt;哎，大家下个 express 启动玩一玩，体验一下飞速吧。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Fri, 19 Apr 2013 17:05:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/10345</link>
      <guid>https://ruby-china.org/topics/10345</guid>
    </item>
    <item>
      <title>mc700 升 ssd，求科普。</title>
      <description>&lt;p&gt;搜了一下，发现注意点很多，这里用 mc 的多，想看看是不是有同仁升过&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;sata 到底是 3，还是 2&lt;/li&gt;
&lt;li&gt;不需要 hdd 了，直接换硬盘位置，是否需要托架之类的东东。&lt;/li&gt;
&lt;li&gt;9mm 还是 7mm?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;一堆问题，不敢下手。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Tue, 16 Apr 2013 11:16:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/10236</link>
      <guid>https://ruby-china.org/topics/10236</guid>
    </item>
    <item>
      <title>紧急询问，MBP 的螺丝扭花了咋办。</title>
      <description>&lt;p&gt;想加内存和换 ssd 的，这个螺丝给我扭花了，是完全变圆了的那种，该咋整呀。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Sun, 24 Mar 2013 11:25:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/9709</link>
      <guid>https://ruby-china.org/topics/9709</guid>
    </item>
    <item>
      <title>求教 mongoid 的 embed_many 查询写法</title>
      <description>&lt;p&gt;在 mongodb 的命令行中可以这么查
&lt;code&gt;db.ents.find({"categories._id": ObjectId("513d31ae69aa46135d000002")})&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;在 mongoid 上要怎么查呢，怎么写也不对，文档都翻烂了。&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2.0.0-p0 :049 &amp;gt; Ent.where({"categories._id" =&amp;gt; "513d31ae69aa46135d000002"})
 =&amp;gt; #&amp;lt;Mongoid::Criteria
  selector: {"categories._id"=&amp;gt;"513d31ae69aa46135d000002"}
  options:  {}
  class:    Ent
  embedded: false&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样写是错误的，无法表现出 ObjectId&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Mon, 11 Mar 2013 10:17:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/9314</link>
      <guid>https://ruby-china.org/topics/9314</guid>
    </item>
    <item>
      <title>谁能推荐一款人体工学的椅子。</title>
      <description>&lt;p&gt;现在坐的时间还是比较多，想买把好点的椅子，没这方面经验，求推荐。谢谢。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Thu, 21 Feb 2013 10:56:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/8813</link>
      <guid>https://ruby-china.org/topics/8813</guid>
    </item>
    <item>
      <title>App Store 上的软件能否代购，要的就是 Dash.</title>
      <description>&lt;p&gt;没有购买过，这个软件实在找不着替代品，价格也不贵。
这个是否可以代购，我可以支付宝过来。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Tue, 22 Jan 2013 09:47:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/8250</link>
      <guid>https://ruby-china.org/topics/8250</guid>
    </item>
    <item>
      <title>falcon 补丁宣称的 30% faster 在我机器上无用。</title>
      <description>&lt;p&gt;&lt;code&gt;rvm reinstall 1.9.3-perf --patch falcon --force-autoconf -j 3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;参考在这
&lt;a href="https://gist.github.com/1688857" rel="nofollow" target="_blank"&gt;https://gist.github.com/1688857&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;我测了一下，还变慢了。。。。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Sat, 29 Sep 2012 09:30:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/5819</link>
      <guid>https://ruby-china.org/topics/5819</guid>
    </item>
    <item>
      <title>修改 terminal-table 显示中文对不齐的问题。</title>
      <description>&lt;p&gt;效果
before
&lt;img src="//l.ruby-china.com/photo/ddff9b54caf42d8533941c65d0e6d1f4.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;over
&lt;img src="//l.ruby-china.com/photo/7d0fcb29dbcf3d171e332a0d44efdac9.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;代码，只是思路伟码。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# encoding: UTF-8&lt;/span&gt;

&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'pry-debugger'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s2"&gt;"terminal-table"&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;size&lt;/span&gt;
    &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'gbk'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;bytesize&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;Terminal&lt;/span&gt;
  &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Table&lt;/span&gt;
    &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Cell&lt;/span&gt;
      &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;left&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;" "&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="vi"&gt;@table.style.padding_left&lt;/span&gt;
        &lt;span class="n"&gt;right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;" "&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="vi"&gt;@table.style.padding_right&lt;/span&gt;

        &lt;span class="n"&gt;render_width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;escape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="si"&gt;}#{&lt;/span&gt;&lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}#{&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;align&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alignment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;render_width&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="vi"&gt;@table.cell_padding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'O哈哈123ne'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'明知山有虎'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'TwooTT'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'偏 向'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'中国人'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'土dsfd@email.cxom'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Terminal&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Table&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="ss"&gt;:rows&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;rows&lt;/span&gt;

&lt;span class="c1"&gt;# binding.pry&lt;/span&gt;
&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;table&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>hhuai</author>
      <pubDate>Fri, 28 Sep 2012 00:35:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/5794</link>
      <guid>https://ruby-china.org/topics/5794</guid>
    </item>
    <item>
      <title>可以升 10.8 了，很好很顺畅。</title>
      <description>&lt;p&gt;白天把 macbook 升了 10.8，感觉用得很流畅，
晚上顺手把黑苹果也升了，不错。&lt;/p&gt;

&lt;p&gt;xcode 可以上 4.4.1，ruby 的速度还是那么慢，一切安好。目前没发现不兼容软件。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Wed, 15 Aug 2012 21:08:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/4968</link>
      <guid>https://ruby-china.org/topics/4968</guid>
    </item>
    <item>
      <title>我没火星吧, 测试时用 memory db，可以快很多哦。</title>
      <description>&lt;p&gt;82 个 rspec 的 examples &lt;/p&gt;

&lt;p&gt;用是 13 秒左右，不用是 19 秒左右。
差不多有 32% 的提高&lt;/p&gt;

&lt;p&gt;参考了这里 &lt;a href="http://www.osmonov.com/2011/01/in-memory-sqlite-database-for-testing.html" rel="nofollow" target="_blank"&gt;http://www.osmonov.com/2011/01/in-memory-sqlite-database-for-testing.html&lt;/a&gt;&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Tue, 07 Aug 2012 16:31:23 +0800</pubDate>
      <link>https://ruby-china.org/topics/4786</link>
      <guid>https://ruby-china.org/topics/4786</guid>
    </item>
    <item>
      <title>link_to remote 的 ajax 返回出错。</title>
      <description>&lt;p&gt;使用 Unobtrusive Javascript 绑定了链接的 id 之后，可以 fire ajax:complete 事件，
但 fire 不了 ajax:success。&lt;/p&gt;

&lt;p&gt;我在 firebug 查看了 complete 的状态，其返回确实为 200.
我测了返回 500 的时候，他也不进 failure, 奇怪了这。。。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Sun, 05 Aug 2012 22:32:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/4755</link>
      <guid>https://ruby-china.org/topics/4755</guid>
    </item>
    <item>
      <title>让 sublime text 的测试输出支持 iTerm 吧。</title>
      <description>&lt;p&gt;从 Textmate 一路杀过来的，Sublime Text 的输出窗口太过简陋，诸多不爽。&lt;/p&gt;

&lt;p&gt;干脆直接调用 iTerm 来执行测试算了，好处&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;有色彩&lt;/li&gt;
&lt;li&gt;可以 binding.pry&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;嗯，上图吧。
&lt;img src="//l.ruby-china.com/photo/43bf3189a1f3902d7f39a493e596f2e1.png" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="插件在这里"&gt;插件在这里&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/hhuai/sublime_config" rel="nofollow" target="_blank"&gt;https://github.com/hhuai/sublime_config&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="使用说明"&gt;使用说明&lt;/h2&gt;
&lt;p&gt;1  将&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;run_command.applescript
run_rspec_t.py
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;两个文件拷贝到你的～/Library/Application Support/Sublime Text 2/Packages/User 目录下&lt;/p&gt;

&lt;p&gt;2  定个喜爱的快捷键，如：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{ "keys": ["command+shift+r"], "command": "run_terminal_test" }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3   enjoy.&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Wed, 01 Aug 2012 15:26:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/4677</link>
      <guid>https://ruby-china.org/topics/4677</guid>
    </item>
    <item>
      <title>想在公司做一期 Ruby 推广，谁有好的介绍性 ppt 参考参考。</title>
      <description>&lt;p&gt;rt, 谢谢。&lt;/p&gt;</description>
      <author>hhuai</author>
      <pubDate>Tue, 31 Jul 2012 20:34:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/4665</link>
      <guid>https://ruby-china.org/topics/4665</guid>
    </item>
  </channel>
</rss>
