<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>chancedoor (多多尔斯基)</title>
    <link>https://ruby-china.org/chancedoor</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>请问有在硅谷的朋友吗？</title>
      <description>&lt;p&gt;下个月要去硅谷逛逛 听说没有车哪都去不了？请问能够租自行车什么的吗？&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Tue, 21 Oct 2014 11:43:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/22157</link>
      <guid>https://ruby-china.org/topics/22157</guid>
    </item>
    <item>
      <title>来个带图像的音乐~</title>
      <description>&lt;p&gt;受不了电子噪音的注意调低音量
&lt;a href="http://www.bilibili.tv/video/av862814/" rel="nofollow" target="_blank"&gt;http://www.bilibili.tv/video/av862814/&lt;/a&gt;&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Thu, 12 Dec 2013 22:43:06 +0800</pubDate>
      <link>https://ruby-china.org/topics/16170</link>
      <guid>https://ruby-china.org/topics/16170</guid>
    </item>
    <item>
      <title>我去 难道只有我不能回复吗？</title>
      <description>&lt;p&gt;不好意思 因为我不能回复 只能新发帖 
什么状况啊？
编辑可以哎~
 &lt;a href="/quakewang" class="user-mention" title="@quakewang"&gt;&lt;i&gt;@&lt;/i&gt;quakewang&lt;/a&gt; 你可以回复啊 我都看到客户端提示了&lt;/p&gt;

&lt;p&gt;heeeeeeeeelllllp~ 我好想回 sony debug 那个帖子哇~ &amp;gt;&amp;lt;&lt;/p&gt;

&lt;p&gt;&lt;a href="/Rei" class="user-mention" title="@Rei"&gt;&lt;i&gt;@&lt;/i&gt;Rei&lt;/a&gt; 
302 Found
utf8:✓
reply[body]:测试&lt;/p&gt;

&lt;p&gt;直接就跳到社区首页了 啥也没&lt;/p&gt;

&lt;p&gt;貌似是 js 的问题
Uncaught SyntaxError: Unexpected token this app-021806516f29a55c422621221b34d01e.js:2
Uncaught ReferenceError: App is not defined (index):709&lt;/p&gt;

&lt;p&gt;我删下 cookie 试试&lt;/p&gt;

&lt;p&gt;还是一样……&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Wed, 13 Nov 2013 15:18:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/15513</link>
      <guid>https://ruby-china.org/topics/15513</guid>
    </item>
    <item>
      <title>怎么不能回复了？</title>
      <description>&lt;p&gt;关注收藏都不行
别闹了大家~~&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Wed, 13 Nov 2013 14:53:13 +0800</pubDate>
      <link>https://ruby-china.org/topics/15511</link>
      <guid>https://ruby-china.org/topics/15511</guid>
    </item>
    <item>
      <title>Devise 登录和注册怎么写对应 json 的请求？？？？</title>
      <description>&lt;p&gt;查了好久也查不出个结果 主要是 Session 的 create 这里要怎么写啊~~~跪求 T T&lt;/p&gt;

&lt;p&gt;登录已经可以啦&lt;/p&gt;

&lt;p&gt;参考：&lt;a href="http://stackoverflow.com/questions/4522069/rails-3-devise-how-to-get-devise-to-respond-with-json" rel="nofollow" target="_blank"&gt;http://stackoverflow.com/questions/4522069/rails-3-devise-how-to-get-devise-to-respond-with-json&lt;/a&gt;&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Sun, 20 Oct 2013 23:00:56 +0800</pubDate>
      <link>https://ruby-china.org/topics/14893</link>
      <guid>https://ruby-china.org/topics/14893</guid>
    </item>
    <item>
      <title>怎么验证访问速度慢的原因是什么？以及如何优化？</title>
      <description>&lt;p&gt;阿里云用了几个月了，网站很多时候访问速度慢，间歇性 Bad Gate 一下，因为还在开发中，所以没有花时间去解决，现在网站要开始推广使用了，这种稳定性实在太糟糕了，想知道到底是我程序没优化好？还是服务器没维护好？还是阿里云的速度问题？&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;对于小网站来说 阿里云本身的性能还不至于拖慢访问速度 所以应当先从优化的角度入手&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;请问该怎样去排查呢？&lt;/p&gt;

&lt;p&gt;1.磁盘 IO：我用&lt;code&gt;dd if=/dev/zero of=test bs=64k count=4k oflag=dsync&lt;/code&gt; 测试了下，在 3~4.5m/s，这能说明问题嘛？
2.数据库存取：用的 mysql，网站数据量小，应该没问题。不过要想查看数据库操作的耗时该怎么做呢？是看 log 里的 ActiveRecord 耗时吗？
3.网站优化：这基本都没做，就是 rails 默认那些……nginx+unicorn 请问基本的优化应该从哪做起？这一块的监测是看 log 中的 Views 耗时吗？&lt;/p&gt;
&lt;h2 id="监测   "&gt;监测   &lt;/h2&gt;
&lt;p&gt;1.使用 newrelc &lt;a href="http://newrelic.com" rel="nofollow" target="_blank"&gt;http://newrelic.com&lt;/a&gt; ，可以监测程序性能也可监测服务器性能，记得在 My preferences 里把时区改了。
2.Chrome：虽然 newrelic 有 Browser 数据，但毕竟和实际感受不同，建议打开 Chrome 的开发者工具 查看 network 中的时间&lt;/p&gt;
&lt;h2 id="优化   "&gt;优化   &lt;/h2&gt;
&lt;p&gt;1.开启 Gzip：在 nginx 中开启 Gzip 压缩 &lt;a href="http://wiki.nginx.org/HttpGzipModuleChs" rel="nofollow" target="_blank"&gt;http://wiki.nginx.org/HttpGzipModuleChs&lt;/a&gt; 压缩率 60% 多 感觉速度确实快了 至少到现在为止没有再出现之前那么慢
2.把 js 的 include_tag 放到末尾：感觉一般 &lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Wed, 16 Oct 2013 22:19:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/14801</link>
      <guid>https://ruby-china.org/topics/14801</guid>
    </item>
    <item>
      <title>移动 App 可否使用现有网站的接口?</title>
      <description>&lt;p&gt;请问已有的网站增添移动 App 接口 在 controller 里加 respond_to json 可以吗？&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Sun, 18 Aug 2013 23:54:56 +0800</pubDate>
      <link>https://ruby-china.org/topics/13421</link>
      <guid>https://ruby-china.org/topics/13421</guid>
    </item>
    <item>
      <title>百度 API MIME type 错误</title>
      <description>&lt;p&gt;&lt;del&gt;&lt;code&gt;Resource interpreted as Image but transferred with MIME type application/octet-stream&lt;/code&gt;&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;del&gt;&lt;code&gt;Resource interpreted as Image but transferred with MIME type text/html: "about:blank".&lt;/code&gt;&lt;/del&gt;
&lt;del&gt;请问该如何解决？&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;其实是 css 没设好才看不到的....&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Wed, 14 Aug 2013 14:43:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/13323</link>
      <guid>https://ruby-china.org/topics/13323</guid>
    </item>
    <item>
      <title>有没有人参加了渣打的编程马拉松啊?求组队</title>
      <description>&lt;p&gt;上海 ruby 一个也没有啊 ?
分享一下我的初试代码&lt;/p&gt;
&lt;h2 id="题目"&gt;题目&lt;/h2&gt;
&lt;p&gt;输入文件 input.txt 的内容可分为两部分：&lt;/p&gt;

&lt;p&gt;不同单位和标准长度米的转换规则，比如
1 mile = 1609.344 meters，代表 1 英里等于 1609.344 米；&lt;/p&gt;

&lt;p&gt;转换前或者计算前的单位，比如 1.2 miles // 一个长度 1.2 miles + 1 fath - 0.2 meters // 单位可能不同的长度之间的加减运算&lt;/p&gt;

&lt;p&gt;您要做的是一个长度单位转化和计算工具，能够把不同的长度单位转换为标准长度（米），并且可以在不同单位之间进行加减运算。&lt;/p&gt;

&lt;p&gt;输出文件的格式共有 12 行，并严格遵守以下规则：&lt;/p&gt;

&lt;p&gt;第 1 行是您在渣打编程马拉松官网上报名时的注册邮箱，比如 myName@gmail.com&lt;/p&gt;

&lt;p&gt;第 2 行是空行&lt;/p&gt;

&lt;p&gt;第 3 行至第 12 行，每行显示 1 个计算结果，比如 1931.21 m&lt;/p&gt;

&lt;p&gt;计算结果要求精确到小数点后两位&lt;/p&gt;

&lt;p&gt;计算结果均以字母 m 结尾，请注意数字和字母 m 之间有一个空格。&lt;/p&gt;
&lt;h2 id="input文件"&gt;input 文件&lt;/h2&gt;
&lt;p&gt;1 mile = 1609.344 m
1 yard = 0.9144 m
1 inch = 0.00254 m
1 foot = 0.03048 m
1 fath = 1.8288 m
1 furlong = 201.17 m&lt;/p&gt;

&lt;p&gt;1.2 miles
0.15 yard
32.7 inches
127.93 feet
22 faths
0.032 furlong
1 furlong + 2.5 feet
0.9 miles - 18 inches
1 fath - 1 foot + 12.5 inches
3.02 miles + 17.5 yards - 0 fath&lt;/p&gt;
&lt;h2 id="我的代码"&gt;我的代码&lt;/h2&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Worker&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@in&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;
    &lt;span class="vi"&gt;@p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="vi"&gt;@rule&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
    &lt;span class="vi"&gt;@result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"xxx@xxx.com&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&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;def&lt;/span&gt; &lt;span class="nf"&gt;run&lt;/span&gt;
    &lt;span class="vi"&gt;@in.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;line&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="vi"&gt;@p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vi"&gt;@p&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
      &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="n"&gt;factor&lt;/span&gt;&lt;span class="o"&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;split&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="k"&gt;case&lt;/span&gt; &lt;span class="vi"&gt;@p&lt;/span&gt;
        &lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
          &lt;span class="vi"&gt;@rule&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;factor&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="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;factor&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="k"&gt;when&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
          &lt;span class="n"&gt;equation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
          &lt;span class="n"&gt;factor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each_with_index&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;array&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;/^[a-z]+$/&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;/\+|\-/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
              &lt;span class="n"&gt;unit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;singularize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;factor&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&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;equation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_f&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="vi"&gt;@rule&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;unit&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;to_f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;end&lt;/span&gt;
            &lt;span class="n"&gt;equation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;/\+|\-/&lt;/span&gt;
          &lt;span class="k"&gt;end&lt;/span&gt;
          &lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;equation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
          &lt;span class="vi"&gt;@result.push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"%.2f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;" m&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&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="vi"&gt;@result&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;singularize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;dic&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"s$"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"es$"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"ee"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'oo'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@rule&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;dic&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;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;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;gsub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&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="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@rule&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="n"&gt;s&lt;/span&gt;  
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="vi"&gt;@rs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Worker&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="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;"input.txt"&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nf"&gt;run&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;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"output.txt"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"w"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;puts&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@rs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>chancedoor</author>
      <pubDate>Tue, 13 Aug 2013 18:24:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/13308</link>
      <guid>https://ruby-china.org/topics/13308</guid>
    </item>
    <item>
      <title>Active_admin 前后台做在一起 后台登陆后跳转到前台了</title>
      <description>&lt;p&gt;我在 application_controller.rb 里改了 after_sign_in_path_for 没用 
在 registrations_controller.rb 改了 after_sign_up_path_for 也没用 
请问应该上哪改，怎么改？&lt;/p&gt;

&lt;p&gt;=====================&lt;/p&gt;

&lt;p&gt;额 已经搞定了 不知道怎么回事 可能是卡了没更新修改的缘故 
devise 的登陆和 activeadmin 走的都是 application_controller.rb 里的 我写了个判断
devise 注册走的是 registrations_controller.rb 里的&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Sat, 10 Aug 2013 20:52:38 +0800</pubDate>
      <link>https://ruby-china.org/topics/13230</link>
      <guid>https://ruby-china.org/topics/13230</guid>
    </item>
    <item>
      <title>刚买了阿里云的服务 求指点</title>
      <description>&lt;p&gt;买的最便宜的那种，690 一年 20g 系统盘 1m 带宽 512 内存 杭州节点 debian6 
打算先放两个 ror 的网站 nginx+passenger  postgreSQL 
请问接下来应该怎么搞比较好？就跟虚拟机上一样来么？分区啥的都不用弄了？&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Sun, 23 Jun 2013 16:54:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/11922</link>
      <guid>https://ruby-china.org/topics/11922</guid>
    </item>
    <item>
      <title>可有人用 rails 搭手机 app 服务器?</title>
      <description>&lt;p&gt;效率如何？用云服务够么？开发阶段用 heroku 的免费服务够吗？&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Thu, 20 Jun 2013 21:45:25 +0800</pubDate>
      <link>https://ruby-china.org/topics/11860</link>
      <guid>https://ruby-china.org/topics/11860</guid>
    </item>
    <item>
      <title>hg 如何不合并解决多 heads？</title>
      <description>&lt;p&gt;hg 有个 head 是不小心删除了很多有用文件 然后也提交了。。
现在我要怎么把这个 head 去掉？merge 的话好像没有冲突的文件还是会删除&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Tue, 04 Jun 2013 16:17:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/11480</link>
      <guid>https://ruby-china.org/topics/11480</guid>
    </item>
    <item>
      <title>昨天发生的灵异现象</title>
      <description>&lt;p&gt;昨天我去一个咖啡馆装 13 写代码 连的他们无线 然后写自己的项目，测试的时候发生了一件非常恐怖的事情！&lt;/p&gt;

&lt;p&gt;当我双击账号输入框时！！！！
下拉的记录里出现了不该有的东西！！！！！&lt;/p&gt;

&lt;p&gt;居然出现了我在公司项目输入的那些账号！！！
而这些账号以及公司的项目我百分之百完全没有在自己的机子上用过！！！！！&lt;/p&gt;

&lt;p&gt;大家能想到是怎么回事吗！！！？&lt;/p&gt;

&lt;p&gt;我已经想到一个合理的解释了&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Mon, 03 Jun 2013 14:40:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/11452</link>
      <guid>https://ruby-china.org/topics/11452</guid>
    </item>
    <item>
      <title>大家前瞻一下穿戴式设备应用开发的前景吧</title>
      <description>&lt;p&gt;今天跟我表哥聊了聊 国内一个很牛的穿戴式设备就是他做的 突然觉得我现在做的网站什么的弱爆了！
上网查了下穿戴式设备的应用开发 没找到多少信息 &lt;/p&gt;

&lt;p&gt;各位有了解的吗？用这个去创业应该蛮好的吧！比如 Pebble 应用开发，拿这个概念去谈投资，会有很高的成功率吧&lt;/p&gt;

&lt;p&gt;重量级当然是 Google Glass 啦 还有传说中的 iWatch 三星的智能手表&lt;/p&gt;

&lt;p&gt;查到的消息：
国外：为了便于第三方 app 的开发，4 月份的时候 Pebble 首次发布其软件开发工具包（SDK）PebbleKit，Pebble 官网显示预购要 150 刀……&lt;/p&gt;

&lt;p&gt;国内：盛大果壳智能手表 可能在 6 月 17 发布&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Mon, 03 Jun 2013 13:02:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/11447</link>
      <guid>https://ruby-china.org/topics/11447</guid>
    </item>
    <item>
      <title>gem install helios 淘宝怎么 404 了？</title>
      <description>&lt;p&gt;是我的问题还是大家都这样了？
看样子是 helios 的问题&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Fri, 31 May 2013 15:31:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/11375</link>
      <guid>https://ruby-china.org/topics/11375</guid>
    </item>
    <item>
      <title>Node.js 的 Rails -  sails</title>
      <description>&lt;p&gt;&lt;a href="http://balderdashy.github.io/sails/" rel="nofollow" target="_blank"&gt;http://balderdashy.github.io/sails/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Node.js 攻势挺猛 
能不能用 ruby 写个前端框架啊&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Thu, 30 May 2013 10:30:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/11338</link>
      <guid>https://ruby-china.org/topics/11338</guid>
    </item>
    <item>
      <title>如何使用未编译的图片？</title>
      <description>&lt;p&gt;程序运行中从网上抓下来的图片，在 development 模式下是可以调用的，在 production 模式下就不行了，用的还是 webrick，是不是搭个 Nginx 就行了？或者把图片保存在 public 下可以吗？反正什么方法最简便最好！
谢谢大家~&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Fri, 24 May 2013 16:51:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/11215</link>
      <guid>https://ruby-china.org/topics/11215</guid>
    </item>
    <item>
      <title>Mechanize 怎样才能让 agent 存活到下一次提交？</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;search_result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;image_with&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;'Image1'&lt;/span&gt;&lt;span class="p"&gt;)&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;img&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
          &lt;span class="n"&gt;dest&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;"/app/assets/images"&lt;/span&gt;
          &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt; &lt;span class="n"&gt;dest&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;"//0.gif"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在的问题是 怎么才能把页面保存住？输入验证码后提交，怎么才能让 agent 还是提交前的那个页面
到底要怎样才能让 agent 存活到下一次提交呢！&lt;/p&gt;

&lt;p&gt;我的需求是这样一个流程：
填写表单-&amp;gt;提交-&amp;gt;是否返回验证码错误提示
是-&amp;gt;抓取验证码并返回验证码图片以及输入框-&amp;gt;填写验证码-&amp;gt;提交&lt;/p&gt;

&lt;p&gt;所以用户那里就是填写表单-&amp;gt;验证码错误-&amp;gt;填写验证码-&amp;gt;成功&lt;/p&gt;

&lt;p&gt;======================================================&lt;/p&gt;

&lt;p&gt;可能有人也会遇到这个问题，我把我的解决放在这里吧。
就是把 cookies 里面的 sessionid 记录并赋给第二次提交验证码时生成的这个 agent，这样就对应上次 agent 里获取的验证码了。&lt;/p&gt;</description>
      <author>chancedoor</author>
      <pubDate>Thu, 23 May 2013 11:29:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/11175</link>
      <guid>https://ruby-china.org/topics/11175</guid>
    </item>
    <item>
      <title>个人开发记录</title>
      <description>&lt;p&gt;2013 年 3 月接触的 Rails，觉得非常幸运能接触到 ROR，这 2 个月学到的东西和对 IT 行业看法的改变，让我对计算机科学及其发展有了全新的认识和感观。
      同时也觉得自己落后别人太多了，本身又是记性很差，不适合光靠看书来学习的人，所以想开个博客，边实践边记录边学习。但是我发现还是 RubyChina 更吸引我……而且这里改起来也很方便，改了内容帖子也不会上浮，这样不会打扰大家，而且更让我诧异的是，不论是回帖还是发帖，内容居然是会保留的！我离开了这个页面，去别的帖子跟个帖，再回来还可以继续写！我就喜欢这种酷毙又低调，在不经意间提供方便的设定！&lt;/p&gt;
&lt;h2 id="1.开发环境的选择"&gt;1.开发环境的选择&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;本人是穷屌丝，只有一台很烂的笔记本，WindowsXP；&lt;/li&gt;
&lt;li&gt;首先选择虚拟机软件——Oracle VirtualBox，因为是免费的（至少目前是）；&lt;/li&gt;
&lt;li&gt;然后选择服务器系统——Debian，因为工作用的是这个，Ubuntu 就是他的衍生版喔，下载更新软件用 apt-get 很方便；&lt;/li&gt;
&lt;li&gt;文本编辑器——VIM，因为习惯用 vi；&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;先作好这些最基本的选择，然后就可以进入实践啦！&lt;/p&gt;
&lt;h2 id="2.安装基本环境"&gt;2.安装基本环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;新建虚拟机，选择下载好的 Debian 镜像（写这个的时候 Debian7 刚出，果断装之），最好不要装图形界面，安装过程会非常慢，内存 512MB，硬盘 8G，分区全部默认....root 和另一个用户名都认真设置密码，安装完成后用普通用户登陆，然后 su，安装 vim、sudo。&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;配置 sudo：sudo 这个软件真的值得研究，因为在多人使用同一系统的情况下管理用户非常方便，但我目前只是一个人（-_-莫名的忧桑感）。所以简单配置下就好——打开/etc/sudoers 可以看到注释说：
&lt;code&gt;Please consider adding local content in /etc/sudoers.d/ instead of directly modifying this file.&lt;/code&gt; 
那么&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~&lt;span class="nv"&gt;$ &lt;/span&gt;vi /etc/sudoers.d/cduo &lt;span class="c"&gt;#新建一个文件,名称可以是这个文件所设置的用户的名字，我是cduo&lt;/span&gt;
~&lt;span class="nv"&gt;$ &lt;/span&gt;cduo &lt;span class="nv"&gt;ALL&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;ALL&lt;span class="o"&gt;)&lt;/span&gt; ALL &lt;span class="c"&gt;#输入内容，按顺序是:指定用户 来自=(可获得什么身份) 可执行什么命令&lt;/span&gt;
~&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;400 cduo &lt;span class="c"&gt;#更改文件权限&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样就可以用 cduo 的登录密码进行 sudo 操作了，更多包括群组管理等可以参考  &lt;a href="http://hi.baidu.com/danghj/item/ec645a0992104ce0ff240d8f" rel="nofollow" target="_blank"&gt;http://hi.baidu.com/danghj/item/ec645a0992104ce0ff240d8f&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;为了让虚拟机可以与主机通信，同时可以上网，把连接方式设置为 NAT，端口转发新增一条规则，然后下个 putty，输入主机 ip 和转发的端口，远程连接到虚拟机上。用远程连接的方式去操作不仅速度快，而且稳定安全，复制粘贴滚屏也方便。&lt;/li&gt;
&lt;li&gt;进入 RubyChina 的 Wiki 第一条，从步骤 0 一路复制粘贴即可。
&lt;code&gt;~$ sed -i .bak 's!ftp.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db&lt;/code&gt;
这步似乎不行，我是手动备份，把 .bak 去掉的&lt;/li&gt;
&lt;li&gt;好了，这样一台具有基本开发功能的虚拟机就完成了，新手学习的话可以直接下载我的虚拟机，系统登录名：cduo 密码：111222 用户目录下的 README 中有 root 密码&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://pan.baidu.com/share/link?shareid=524120&amp;amp;uk=1647788315" rel="nofollow" target="_blank"&gt;http://pan.baidu.com/share/link?shareid=524120&amp;amp;uk=1647788315&lt;/a&gt; &lt;/p&gt;
&lt;h2 id="3.安装部署环境"&gt;3.安装部署环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;选择 passenger+Nginx
&lt;code&gt;bash
~$ gem install passenger
~$ passenger-install-nginx-module  
&lt;/code&gt;
这里我用/home/cduo/opt/nginx 替换了默认路径。
按照提示选择自动配置，安装完后&lt;code&gt;~$sudo opt/nginx/sbin/nginx&lt;/code&gt;运行 nginx
因为默认是 80 端口，所以虚拟机的端口转发要加一条指向 80 端口的（比如 3080），建议再加一条指向 3000 的。
在浏览器输入主机 IP：3080 就会看到 Nginx 的欢迎界面啦&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4.安装数据库、新建Rails应用、配置Git并配置Nginx"&gt;4.安装数据库、新建 Rails 应用、配置 Git 并配置 Nginx&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;数据库选择 Mongoid，因为我选择 RailsApp 里的 Device，Mongoid 这个例子来实作。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~$sudo apt-get install mongod&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;个人开发其实 Git 用 http 就可以了，不过为了省去输帐密的麻烦，还是用 ssh 吧.GitHub help 里有步骤。&lt;/li&gt;
&lt;li&gt;然后 clone repo，并且在自己的 github 上新建一个 repo:
&lt;code&gt;bash
~$ git remote add origin git@github.com:account/reponame.git
~$ git push -u origin master
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;给 repo 建立一个 develop 分支:
&lt;code&gt;bash
~$ git branch develop
~$ git checkout develop
~$ git commit -m "Created develop branch."
~$ git push origin develop
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;起了 Rails3 Mongoid Devise 看了下 真是很适合用来二次开发啊 不错&lt;/li&gt;
&lt;li&gt;接下来配置 nginx.conf，把 server 块的 root 行改为/home/cduo/edu/public，下面加一行：passenger_enabled on;然后 nginx -s reload 就可以访问了。默认是 production 模式，需要先 rake assets:precompile，在配置中加&lt;code&gt;rails_env development;&lt;/code&gt;就可以开发模式启动了。&lt;/li&gt;
&lt;li&gt;passenger 报错找不到 gem 的话 &lt;code&gt;bundle --deployment&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="5.部署到阿里云"&gt;5.部署到阿里云&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;阿里的关系型数据库目前只有 mysql 和 mssql，所以为了以后方便，还是选择用 mysql 了。&lt;/li&gt;
&lt;li&gt;记得先跟着教学视频把 swap 建了，当然也可以自己手动&lt;/li&gt;
&lt;li&gt;因为不再是免费的了，就要开始考虑静态文件放哪，cache 怎么做之类的了。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="6.开发-一个主要用于移动平台的应用"&gt;6.开发 - 一个主要用于移动平台的应用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;前端：首页直接完全用 bootstrap 的静态页面&lt;/li&gt;
&lt;li&gt;用户系统:devise&lt;/li&gt;
&lt;li&gt;后台管理:active_admin&lt;/li&gt;
&lt;li&gt;图片上传:carrierwave&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>chancedoor</author>
      <pubDate>Thu, 16 May 2013 23:26:46 +0800</pubDate>
      <link>https://ruby-china.org/topics/11048</link>
      <guid>https://ruby-china.org/topics/11048</guid>
    </item>
  </channel>
</rss>
