<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>loveky (loveky)</title>
    <link>https://ruby-china.org/loveky</link>
    <description>我不生产代码，我只是Github和StackOverFlow的搬运工</description>
    <language>en-us</language>
    <item>
      <title>能推荐一款在线代码阅读平台吗？</title>
      <description>&lt;p&gt;希望能有以下功能：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;web 端&lt;/li&gt;
&lt;li&gt;支持以行级别添加 comment，这样一边看一边可以写下自己的理解，方便以后回顾，或分享给其他人。&lt;/li&gt;
&lt;li&gt;语法高亮。。这个应该是必备的。。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;其他的比如 文件数，多文件同时预览之类的能有就更好了。。。&lt;/p&gt;

&lt;p&gt;有人见过这种服务吗，求推荐&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Fri, 24 Apr 2015 09:39:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/25287</link>
      <guid>https://ruby-china.org/topics/25287</guid>
    </item>
    <item>
      <title>[分享] 一份关于 AngularJS 的文档大全</title>
      <description>&lt;p&gt;&lt;a href="http://www.planningforaliens.com/angular/ginormous-unstoppable-angular-resource-list/" rel="nofollow" target="_blank"&gt;http://www.planningforaliens.com/angular/ginormous-unstoppable-angular-resource-list/&lt;/a&gt; &lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Thu, 18 Dec 2014 09:24:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/23262</link>
      <guid>https://ruby-china.org/topics/23262</guid>
    </item>
    <item>
      <title>canvas 牛刀小试，写了个 Flappy Bird</title>
      <description>&lt;p&gt;200 行代码实现了个简单的 Flappy Bird。比一开始自己想象中的简单些。&lt;/p&gt;

&lt;p&gt;感觉下来碰撞检测应该是游戏编程中的复杂的地方。尤其是涉及到不规则形状的时候。&lt;/p&gt;

&lt;p&gt;代码在 &lt;a href="https://github.com/loveky/FlappyBird-in-pure-JavaScript" rel="nofollow" target="_blank"&gt;https://github.com/loveky/FlappyBird-in-pure-JavaScript&lt;/a&gt;&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Sat, 13 Dec 2014 14:19:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/23180</link>
      <guid>https://ruby-china.org/topics/23180</guid>
    </item>
    <item>
      <title>要给同事介绍 Ruby，有没有推荐的 PPT 可以用</title>
      <description>&lt;p&gt;同事都是做 Java 的，只是给他们介绍一下 Ruby，并不打算转到 Ruby 上。&lt;/p&gt;

&lt;p&gt;有没有内容比较有趣的 PPT 可以使用。&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Fri, 21 Feb 2014 09:59:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/17387</link>
      <guid>https://ruby-china.org/topics/17387</guid>
    </item>
    <item>
      <title>Want to get into fisticuffs at a Rails conference?</title>
      <description>&lt;p&gt;Ask people whether they believe routes should be nested more than one layer deep.&lt;/p&gt;

&lt;p&gt;The Rails 4 Way 中看到的一句话。。。&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Tue, 14 Jan 2014 14:54:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/16789</link>
      <guid>https://ruby-china.org/topics/16789</guid>
    </item>
    <item>
      <title>基于 AngularJS 的番茄时间工具</title>
      <description>&lt;p&gt;一个基于 AngularJS 的 SPA，给&lt;a href="http://baike.baidu.com/link?url=bRRHZ4OGchHR6Yb-r9oD1NhRPAaUKIfW-2hVYYBfQAGIFkgFmJUu5Kdc9h_81_ZJxkDZbLqLevIjgBPPEZDMf_" rel="nofollow" target="_blank" title=""&gt;番茄工作法&lt;/a&gt;记时的小工具。&lt;/p&gt;

&lt;p&gt;基于 AngularJS，no jQuery
支持声音提醒和桌面提醒。
在 Chrome/FF/Safari 下测试过。&lt;/p&gt;

&lt;p&gt;顺便用 Jasmine 写了一些&lt;a href="https://github.com/loveky/pomodoro-time/tree/master/test/controllers" rel="nofollow" target="_blank" title=""&gt;测试代码&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;在线使用 &lt;a href="http://loveky.github.io/assets/pomodoro-time/" rel="nofollow" target="_blank"&gt;http://loveky.github.io/assets/pomodoro-time/&lt;/a&gt;
项目地址 &lt;a href="https://github.com/loveky/pomodoro-time" rel="nofollow" target="_blank"&gt;https://github.com/loveky/pomodoro-time&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PS：非专业 Web 开发人员。。。UI 勿喷。。。&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Fri, 13 Dec 2013 14:45:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/16181</link>
      <guid>https://ruby-china.org/topics/16181</guid>
    </item>
    <item>
      <title>搭建属于自己的 Travis Pro 服务</title>
      <description>&lt;p&gt;最近尝试为小伙伴们搭建一个持续集成环境，由于使用了 GitHub 的 private repo，所以 travis 的免费版本就不能用了。于是自己利用 Jenkins 自己搭了一个，使用效果跟 travis 差不多。搭建过程记录成文。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://loveky.github.io/2013/12/06/travis-pro/" rel="nofollow" target="_blank"&gt;http://loveky.github.io/2013/12/06/travis-pro/&lt;/a&gt;&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Fri, 06 Dec 2013 16:34:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/16040</link>
      <guid>https://ruby-china.org/topics/16040</guid>
    </item>
    <item>
      <title>你可能不知道的 git rerere</title>
      <description>&lt;h2 id="rerere 是啥的缩写？"&gt;rerere 是啥的缩写？&lt;/h2&gt;
&lt;p&gt;rerere = reuse recorded resolution&lt;/p&gt;
&lt;h2 id="rerere是干啥用的？"&gt;rerere 是干啥用的？&lt;/h2&gt;
&lt;p&gt;它会让 Git 记住你是如何解决某个文件的两个版本之间的 conflict，这样在下次 Git 遇到同样的文件在相同的两个版本间发生冲突时，可以自动帮你使用相同的方法解决冲突。&lt;/p&gt;
&lt;h2 id="如何启用rerere？"&gt;如何启用 rerere？&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;git config --global rerere.enabled true&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;或是&lt;/p&gt;

&lt;p&gt;在 repo 目录里&lt;code&gt;mkdir .git/rr-cache&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;不过推荐前者。&lt;/p&gt;
&lt;h2 id="能举例说明吗？"&gt;能举例说明吗？&lt;/h2&gt;
&lt;p&gt;参考 inline 的注释。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git init git-rerere-test
Initialized empty Git repository &lt;span class="k"&gt;in&lt;/span&gt; /cygdrive/e/test/git-rerere-test/.git/

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;git-rerere-test

&lt;span class="nv"&gt;$ &lt;/span&gt;git config rerere.enabled &lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="c"&gt;# 开启rerere功能&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"What fruit do you like?"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; question

&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"initial drop"&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;master &lt;span class="o"&gt;(&lt;/span&gt;root-commit&lt;span class="o"&gt;)&lt;/span&gt; af9fdf9] initial drop
 1 files changed, 1 insertions&lt;span class="o"&gt;(&lt;/span&gt;+&lt;span class="o"&gt;)&lt;/span&gt;, 0 deletions&lt;span class="o"&gt;(&lt;/span&gt;-&lt;span class="o"&gt;)&lt;/span&gt;
 create mode 100644 question

&lt;span class="nv"&gt;$ &lt;/span&gt;git branch &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="c"&gt;# 创建test分支&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"I like orange"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; question

&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"answer in master"&lt;/span&gt; &lt;span class="c"&gt;# 在master上commit 1次&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;master 3b48cca] answer &lt;span class="k"&gt;in &lt;/span&gt;master
 1 files changed, 1 insertions&lt;span class="o"&gt;(&lt;/span&gt;+&lt;span class="o"&gt;)&lt;/span&gt;, 0 deletions&lt;span class="o"&gt;(&lt;/span&gt;-&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout &lt;span class="nb"&gt;test
&lt;/span&gt;Switched to branch &lt;span class="s1"&gt;'test'&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"I like apple"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; question

&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"answer in test"&lt;/span&gt; &lt;span class="c"&gt;# 在test分支上commit 1次制造conflict&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;test &lt;/span&gt;cda9dab] answer &lt;span class="k"&gt;in &lt;/span&gt;&lt;span class="nb"&gt;test
 &lt;/span&gt;1 files changed, 1 insertions&lt;span class="o"&gt;(&lt;/span&gt;+&lt;span class="o"&gt;)&lt;/span&gt;, 0 deletions&lt;span class="o"&gt;(&lt;/span&gt;-&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout master
Switched to branch &lt;span class="s1"&gt;'master'&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git merge &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="c"&gt;# 在master上merge test&lt;/span&gt;
Auto-merging question
CONFLICT &lt;span class="o"&gt;(&lt;/span&gt;content&lt;span class="o"&gt;)&lt;/span&gt;: Merge conflict &lt;span class="k"&gt;in &lt;/span&gt;question
Recorded preimage &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="s1"&gt;'question'&lt;/span&gt; &lt;span class="c"&gt;# 多了这一句，表示Git已经开始track你的操作了&lt;/span&gt;
Automatic merge failed&lt;span class="p"&gt;;&lt;/span&gt; fix conflicts and &lt;span class="k"&gt;then &lt;/span&gt;commit the result.

&lt;span class="nv"&gt;$ &lt;/span&gt;vim question

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;question &lt;span class="c"&gt;# 修改文件内容，解决冲突&lt;/span&gt;
What fruit &lt;span class="k"&gt;do &lt;/span&gt;you like?
I like orange &amp;amp; apple

&lt;span class="nv"&gt;$ &lt;/span&gt;git status &lt;span class="nt"&gt;-s&lt;/span&gt;
UU question

&lt;span class="nv"&gt;$ &lt;/span&gt;git add question

&lt;span class="nv"&gt;$ &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"merge test"&lt;/span&gt; &lt;span class="c"&gt;# commit合并&lt;/span&gt;
Recorded resolution &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="s1"&gt;'question'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="c"&gt;# Git记录了这次解决冲突的方法&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;master 0b55608] merge &lt;span class="nb"&gt;test&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; HEAD^ &lt;span class="c"&gt;# 重置这次合并，再次merge看看rerere的效果&lt;/span&gt;
HEAD is now at 3b48cca answer &lt;span class="k"&gt;in &lt;/span&gt;master

&lt;span class="nv"&gt;$ &lt;/span&gt;git merge &lt;span class="nb"&gt;test
&lt;/span&gt;Auto-merging question
CONFLICT &lt;span class="o"&gt;(&lt;/span&gt;content&lt;span class="o"&gt;)&lt;/span&gt;: Merge conflict &lt;span class="k"&gt;in &lt;/span&gt;question
Resolved &lt;span class="s1"&gt;'question'&lt;/span&gt; using previous resolution. &lt;span class="c"&gt;# Git已经用记录的方法解决冲突了&lt;/span&gt;
Automatic merge failed&lt;span class="p"&gt;;&lt;/span&gt; fix conflicts and &lt;span class="k"&gt;then &lt;/span&gt;commit the result.

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;question &lt;span class="c"&gt;# 查看文件内容，已经修改&lt;/span&gt;
What fruit &lt;span class="k"&gt;do &lt;/span&gt;you like?
I like orange &amp;amp; apple

&lt;span class="nv"&gt;$ &lt;/span&gt;git status &lt;span class="nt"&gt;-s&lt;/span&gt;
UU question

&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"merge test"&lt;/span&gt; &lt;span class="c"&gt;#再次commit合并&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;master ea6a966] merge &lt;span class="nb"&gt;test&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; HEAD^ &lt;span class="c"&gt;# 最后看一下对rebase的支持&lt;/span&gt;
HEAD is now at 3b48cca answer &lt;span class="k"&gt;in &lt;/span&gt;master

&lt;span class="nv"&gt;$ &lt;/span&gt;git branch
&lt;span class="k"&gt;*&lt;/span&gt; master
  &lt;span class="nb"&gt;test&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="c"&gt;# 切换到test分支&lt;/span&gt;
Switched to branch &lt;span class="s1"&gt;'test'&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git rebase master
First, rewinding &lt;span class="nb"&gt;head &lt;/span&gt;to replay your work on top of it...
Applying: answer &lt;span class="k"&gt;in &lt;/span&gt;&lt;span class="nb"&gt;test
&lt;/span&gt;Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging question
CONFLICT &lt;span class="o"&gt;(&lt;/span&gt;content&lt;span class="o"&gt;)&lt;/span&gt;: Merge conflict &lt;span class="k"&gt;in &lt;/span&gt;question
Resolved &lt;span class="s1"&gt;'question'&lt;/span&gt; using previous resolution. &lt;span class="c"&gt;# 同样，Git使用历史记录解决了冲突&lt;/span&gt;
Failed to merge &lt;span class="k"&gt;in &lt;/span&gt;the changes.
Patch failed at 0001 answer &lt;span class="k"&gt;in &lt;/span&gt;&lt;span class="nb"&gt;test

&lt;/span&gt;When you have resolved this problem run &lt;span class="s2"&gt;"git rebase --continue"&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
If you would prefer to skip this patch, instead run &lt;span class="s2"&gt;"git rebase --skip"&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
To check out the original branch and stop rebasing run &lt;span class="s2"&gt;"git rebase --abort"&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;git status &lt;span class="nt"&gt;-s&lt;/span&gt;
UU question

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;question
What fruit &lt;span class="k"&gt;do &lt;/span&gt;you like?
I like orange &amp;amp; apple

&lt;span class="nv"&gt;$ &lt;/span&gt;git add question

&lt;span class="nv"&gt;$ &lt;/span&gt;git rebase &lt;span class="nt"&gt;--continue&lt;/span&gt;
Applying: answer &lt;span class="k"&gt;in &lt;/span&gt;&lt;span class="nb"&gt;test&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="使用场景？"&gt;使用场景？&lt;/h2&gt;
&lt;p&gt;假设你有如下的 history&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          o---*---o topic
         /
o---o---o---*---o---o master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;*&lt;/code&gt;表示的 commit 同时修改了同一个文件的同一块代码。这时你想测试一下两处修改有没有破坏 build/功能。你可能会&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git checkout topic
$ git merge master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;结果是生成了如下的历史树：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          o---*---o---+ topic
         /           /
o---o---o---*---o---o master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你解决了冲突并生成了&lt;code&gt;+&lt;/code&gt;这个 commit。测试完成后，你继续在 topic 分支上工作，同时 master 分支上也有了新的 commit。最终，你在 topic 分支上的工作完成，merge 回 master 分支。你执行了：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git checkout master
$ git merge topic
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最终的历史树看起来像这样：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          o---*---o---+---o---o topic
         /           /         \
o---o---o---*---o---o---o---o---# master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你的 topic 分支会存活很长时间，你可能多次从 master 分支 merge 到 topic 进行测试。那么你可能会看到很多&lt;code&gt;+&lt;/code&gt;的 commit(从 master 分支到 topic 的线)，这会让历史树看起来不那么直观。&lt;/p&gt;

&lt;p&gt;其实你还有其他选择，在每次 merge 完成测试以后，丢弃掉这次 merge(但是 rerere 已经帮你记录了如何解决冲突，不用担心日后再次费劲心思的处理)，继续原来的历史开发。直到最终 topic 分支完成任务，被 merge 到 master(这时 rerere 会帮你处理掉 merge conflict)，这样你的历史树看起来就像：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          o---*---o-------o---o topic
         /                     \
o---o---o---*---o---o---o---o---+ master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;干净多了。。。&lt;/p&gt;
&lt;h2 id="rerere帮我自动处理了conflict，但我已经忘了这个文件conflict的时候是啥样子了。。。能看看conflict的时候的样子吗？"&gt;rerere 帮我自动处理了 conflict，但我已经忘了这个文件 conflict 的时候是啥样子了。。。能看看 conflict 的时候的样子吗？&lt;/h2&gt;
&lt;p&gt;执行&lt;code&gt;git checkout --conflict=merge &amp;lt;path&amp;gt;&lt;/code&gt;即可&lt;/p&gt;
&lt;h3 id="更多详情可参考git help rerere"&gt;更多详情可参考&lt;code&gt;git help rerere&lt;/code&gt;
&lt;/h3&gt;</description>
      <author>loveky</author>
      <pubDate>Tue, 26 Nov 2013 15:31:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/15809</link>
      <guid>https://ruby-china.org/topics/15809</guid>
    </item>
    <item>
      <title>Learning Advanced Javascript</title>
      <description>&lt;p&gt;&lt;a href="http://ejohn.org/apps/learn/" rel="nofollow" target="_blank"&gt;http://ejohn.org/apps/learn/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;刚看了第一章，涨了好多姿势&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Mon, 05 Aug 2013 17:04:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/13067</link>
      <guid>https://ruby-china.org/topics/13067</guid>
    </item>
    <item>
      <title>[JSConfUS 2013] JavaScript Masterclass (如何成为一个更好的程序猿 / 媛)</title>
      <description>&lt;p&gt;定义了初级/中级/高级程序猿/媛，并分析了如何成为一个更棒的程序猿&lt;/p&gt;

&lt;p&gt;&lt;span class="embed-responsive embed-responsive-16by9"&gt;&lt;iframe class="embed-responsive-item" src="//www.youtube.com/embed/v0TFmdO4ZP0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Mon, 05 Aug 2013 11:17:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/13049</link>
      <guid>https://ruby-china.org/topics/13049</guid>
    </item>
    <item>
      <title>明天 (7 月 23 号) 上海有 Ruby Tuesday 吗？</title>
      <description>&lt;p&gt;RT&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Mon, 22 Jul 2013 10:01:46 +0800</pubDate>
      <link>https://ruby-china.org/topics/12662</link>
      <guid>https://ruby-china.org/topics/12662</guid>
    </item>
    <item>
      <title>10 rules for Rails view</title>
      <description>&lt;p&gt;地址 &lt;a href="http://www.therailsview.com/rules.pdf" rel="nofollow" target="_blank"&gt;http://www.therailsview.com/rules.pdf&lt;/a&gt;&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Tue, 16 Jul 2013 22:54:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/12550</link>
      <guid>https://ruby-china.org/topics/12550</guid>
    </item>
    <item>
      <title>字符串替换可否只提前几次出现？</title>
      <description>&lt;p&gt;举例有一个时间字符串&lt;code&gt;2012:02:02 09:09:09&lt;/code&gt;，其中你年月日部分应该使用&lt;code&gt;-&lt;/code&gt;连接，而不是&lt;code&gt;:&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;有没有方法可以只替换前两次出现的&lt;code&gt;:&lt;/code&gt;成&lt;code&gt;-&lt;/code&gt;？&lt;/p&gt;

&lt;p&gt;PS: 现在想到的就是把字符串拆成 2 部分，替换完在接起来，有没有更简单的方法呢？&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Sat, 13 Jul 2013 15:01:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/12478</link>
      <guid>https://ruby-china.org/topics/12478</guid>
    </item>
    <item>
      <title>GitHub Flow in the Browser</title>
      <description>&lt;p&gt;传送门  &lt;a href="https://github.com/blog/1557-github-flow-in-the-browser" rel="nofollow" target="_blank"&gt;https://github.com/blog/1557-github-flow-in-the-browser&lt;/a&gt;&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Fri, 12 Jul 2013 08:38:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/12446</link>
      <guid>https://ruby-china.org/topics/12446</guid>
    </item>
    <item>
      <title>大家的 Code to Test Ratio 是多少？</title>
      <description>&lt;p&gt;大家的项目中这个值是多少？有没有建议值？&lt;/p&gt;

&lt;p&gt;开发过程中会去留意这个比例吗&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Fri, 17 May 2013 11:02:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/11054</link>
      <guid>https://ruby-china.org/topics/11054</guid>
    </item>
    <item>
      <title>Ruby 有没有模拟键盘操作的 gem？</title>
      <description>&lt;p&gt;比如模拟用户按下了 ctrl+c?&lt;/p&gt;

&lt;p&gt;linux 下有无类似的系统命令？&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Sat, 27 Apr 2013 11:01:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/10565</link>
      <guid>https://ruby-china.org/topics/10565</guid>
    </item>
    <item>
      <title>如何禁用 sinatra 默认在 console 里打出的 log？</title>
      <description>&lt;p&gt;如下行这种 log&lt;/p&gt;

&lt;p&gt;10.254.155.252 - - [20/Feb/2013 20:36:59] "POST /deploy HTTP/1.1" 200 - 0.2873&lt;/p&gt;

&lt;p&gt;用了 disable :logging，但好像不起作用啊&lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Thu, 21 Feb 2013 13:08:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/8817</link>
      <guid>https://ruby-china.org/topics/8817</guid>
    </item>
    <item>
      <title>优酷 土豆合并。。。广大群众又开始相信爱情了。。</title>
      <description>&lt;p&gt;大家怎么看？  &lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Mon, 12 Mar 2012 19:19:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/1814</link>
      <guid>https://ruby-china.org/topics/1814</guid>
    </item>
    <item>
      <title>ruby 中的浅拷贝</title>
      <description>&lt;p&gt;正在看《The Ruby Programming Language》，书中说到 clone 是浅拷贝，于是做了如下测试&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;irb(main):007:0&amp;gt; class Klass
irb(main):008:1&amp;gt; attr_accessor :str
irb(main):009:1&amp;gt; end
=&amp;gt; nil
irb(main):010:0&amp;gt; s1 = Klass.new
=&amp;gt; #&amp;lt;Klass:0x7f301a290d50&amp;gt;
irb(main):011:0&amp;gt; s1.str = "Hello"
=&amp;gt; "Hello"
irb(main):012:0&amp;gt; s2 = s1.clone
=&amp;gt; #&amp;lt;Klass:0x7f301a281e90 @str="Hello"&amp;gt;
irb(main):013:0&amp;gt; s1
=&amp;gt; #&amp;lt;Klass:0x7f301a290d50 @str="Hello"&amp;gt;
irb(main):014:0&amp;gt; s2
=&amp;gt; #&amp;lt;Klass:0x7f301a281e90 @str="Hello"&amp;gt;
irb(main):015:0&amp;gt; s2.str[1,4] = "i"
=&amp;gt; "i"
irb(main):016:0&amp;gt; s1
=&amp;gt; #&amp;lt;Klass:0x7f301a290d50 @str="Hi"&amp;gt;
irb(main):017:0&amp;gt; s2
=&amp;gt; #&amp;lt;Klass:0x7f301a281e90 @str="Hi"&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上 s1 的内容随着 s2 的改变而改变，说明 clone 是一个浅拷贝&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;irb(main):018:0&amp;gt; a = Array.new
=&amp;gt; []
irb(main):019:0&amp;gt; a.push(1).push(2).push(3)
=&amp;gt; [1, 2, 3]
irb(main):020:0&amp;gt; a
=&amp;gt; [1, 2, 3]
irb(main):021:0&amp;gt; b = a.clone
=&amp;gt; [1, 2, 3]
irb(main):022:0&amp;gt; a
=&amp;gt; [1, 2, 3]
irb(main):023:0&amp;gt; b
=&amp;gt; [1, 2, 3]
irb(main):024:0&amp;gt; b.push(4)
=&amp;gt; [1, 2, 3, 4]
irb(main):025:0&amp;gt; a
=&amp;gt; [1, 2, 3]

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题：为什么这里 a，b 两个数组的内容不一样？  &lt;/p&gt;</description>
      <author>loveky</author>
      <pubDate>Thu, 08 Mar 2012 17:05:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/1712</link>
      <guid>https://ruby-china.org/topics/1712</guid>
    </item>
  </channel>
</rss>
