<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>1272729223 (dlo021)</title>
    <link>https://ruby-china.org/1272729223</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>想找一份前端的兼职，必须是 part-time 合同形式。</title>
      <description>&lt;p&gt;至少 3 个月以上，如果按年签最好。&lt;/p&gt;

&lt;p&gt;我在杭州，工作会是 remote 形式。因为朝九晚五 10:00 - 6:00，双休，单身，有较充裕的个人时间。&lt;/p&gt;

&lt;p&gt;熟悉语义化 html，css(scss,less)，非常熟悉 bootstrap3，javascript(目前在写 react,redux，曾经写过 angular 一年多)，expressjs 也略懂 (正在学习中)。曾经负责过前端架构，当然现在也是。对于前端整个流水线都比较熟悉。(可以一人独挡)&lt;/p&gt;

&lt;p&gt;英语阅读无障碍，曾经也同老外一起工作过，熟悉 git，mac os（命令行），以前自学 (写过 ror，现在只还留有一个 mvc 的印象)，目前只专注 JavaScript 这条路。&lt;/p&gt;

&lt;p&gt;比较喜欢写跟数据相关的应用，但是不是很熟悉 (也不太喜欢) 写 DOM 相关的插件，虽然之前也写过一些 (&lt;a href="https://github.com/jodo4x/scrollerjs/blob/master/scroller.js" rel="nofollow" target="_blank"&gt;https://github.com/jodo4x/scrollerjs/blob/master/scroller.js&lt;/a&gt;)。&lt;/p&gt;

&lt;p&gt;比较喜欢造轮子（虽然没有什么自己的开源项目）。&lt;/p&gt;

&lt;p&gt;如果有彼此符合的单位欢迎联系我：qq:  2375-96-7707   &lt;/p&gt;

&lt;p&gt;感谢。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Tue, 31 May 2016 17:33:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/30175</link>
      <guid>https://ruby-china.org/topics/30175</guid>
    </item>
    <item>
      <title>Terminal + Screen + ... </title>
      <description>&lt;p&gt;打开您的 Terminal。也可以&lt;code&gt;control ＋ command + f&lt;/code&gt;最大化，当然这仅是个人喜好而已。&lt;/p&gt;

&lt;p&gt;输入&lt;code&gt;screen&lt;/code&gt;命令：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;you@yourMacBook: screen
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这时候，会出现一个界面，你按照底部的提示，按&lt;code&gt;return&lt;/code&gt;键 (也叫 enter 键) 就可以了。进来之后，就可以开始你的工作了。&lt;/p&gt;

&lt;p&gt;当然，可能你需要一个窗口实时看服务器 log，然后一个窗口操作数据库，然后一个窗口写代码，或许还要一个窗口敲 git 等其他命令行。&lt;/p&gt;

&lt;p&gt;这样至少需要 3-4 个窗口，这时，你可以先按组合键&lt;code&gt;control + a&lt;/code&gt;(记得是先按住&lt;code&gt;ctrl&lt;/code&gt;键再按&lt;code&gt;a&lt;/code&gt;键，然后同时松开)，之后再按&lt;code&gt;c&lt;/code&gt;键，这将会为你新建一个新的 session。重复这个动作，直到你创建了足够的窗口 (sessions)，在这里算上敲命令行的窗口一起是 4 个。&lt;/p&gt;

&lt;p&gt;如果你只是照做的话，现在你正处在&lt;code&gt;session 3&lt;/code&gt;或&lt;code&gt;session 4&lt;/code&gt;。为了统一场景，我们在接下去的下文中都假设你是启用了 4 个 session。&lt;/p&gt;

&lt;p&gt;不过这时候，你看不到你的 session 所处的位置，因为他们都在背后运行。不过暂时继续跟着我做下一步，晚点再告诉你如何查看你的当前 session 位置。&lt;/p&gt;

&lt;p&gt;插入一句，我们开始约定好&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;代表&lt;code&gt;control + a&lt;/code&gt;组合键。&lt;/p&gt;

&lt;p&gt;继续按&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;组合键，然后按&lt;code&gt;shift + a&lt;/code&gt;(也就是大写 A)，这时你会在底部看到一行文字，仅仅照做吧。对的，它是让你给当前的 session 起一个&lt;code&gt;title&lt;/code&gt;，作为练习，我们这里统一起&lt;code&gt;qux&lt;/code&gt;(聪明的人应该会知道我为什么在这里输入的是 qux，而不是 foo 了？)。输入完&lt;code&gt;qux&lt;/code&gt;之后，接着按&lt;code&gt;return&lt;/code&gt;键。&lt;/p&gt;

&lt;p&gt;接下去我们继续为其他的 session 起名字。先按&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;，再按&lt;code&gt;0&lt;/code&gt;。如你所料，这时候你进入了 session 0。然后按照上面的教程，你继续给它起&lt;code&gt;title&lt;/code&gt;，这时候应该是起&lt;code&gt;foo&lt;/code&gt;了 (当然，这不是强制的，你现在当然可以自己想怎么起就怎么起)。重复这个动作，给&lt;code&gt;session 1&lt;/code&gt;, &lt;code&gt;session 2&lt;/code&gt;, &lt;code&gt;session 3&lt;/code&gt;都起好名字。当然，别忘了，在&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;组合键之后，输入的不再是&lt;code&gt;0&lt;/code&gt;, 而是&lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;，这你总知道吧？&lt;/p&gt;

&lt;p&gt;好了，是时候揭晓如何查看你当前所在 session 的位置了。按&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;然后按&lt;code&gt;"&lt;/code&gt;(在键盘上你需要按的是&lt;code&gt;shift + "&lt;/code&gt;)。看到了吧？ &lt;code&gt;0 foo&lt;/code&gt;,&lt;code&gt;1 bar&lt;/code&gt;,&lt;code&gt;2 baz&lt;/code&gt;,以及你最先起的&lt;code&gt;3 qux&lt;/code&gt;4 个 sessions。然后你可以按&lt;code&gt;j&lt;/code&gt;,&lt;code&gt;k&lt;/code&gt;键 (这对于熟悉 vim 的人而言是再欢喜不过了) 上下选择你需要选择的 session，然后按&lt;code&gt;return&lt;/code&gt;键进入。&lt;strong&gt;最后提醒一下，别忘了，查看 session 就按&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;组合键再按&lt;code&gt;"&lt;/code&gt;&lt;/strong&gt;。不过，你也可以自己试试&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;＋w，&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt; + &lt;code&gt;n&lt;/code&gt;(next), &lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt; + &lt;code&gt;p&lt;/code&gt;(prev)。&lt;/p&gt;

&lt;p&gt;这个时候，我想听点音乐。没关系，我只是按一下&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;然后&lt;code&gt;c&lt;/code&gt;新建一个 session，然后输入&lt;code&gt;cmus&lt;/code&gt;打开我的播放器，选择 bon jovi 的 keep the faith 按&lt;code&gt;return&lt;/code&gt;就开始听音乐了。然后继续切回到我工作的 session 去。&lt;/p&gt;

&lt;p&gt;继续告诉你一个小技巧，试试看按&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt; + &lt;code&gt;x&lt;/code&gt;。天啦，我还可以创建一个密码，锁定我的 sessions。这对于我工作区域的保护及隐私而言真是太棒了！&lt;/p&gt;

&lt;p&gt;当然也许有人还可以使用&lt;code&gt;control + z&lt;/code&gt;键，让 screen 运行在后台。比如：对于&lt;code&gt;project 1&lt;/code&gt;我使用了&lt;code&gt;screen&lt;/code&gt;来协助我管理 sessions，对于&lt;code&gt;project 2&lt;/code&gt;我也用 screen 协助。然后从&lt;code&gt;project 1&lt;/code&gt;到&lt;code&gt;project 2&lt;/code&gt;，就通过&lt;code&gt;control + z&lt;/code&gt;键来前后切换。&lt;/p&gt;

&lt;p&gt;如果你已经兴奋的按了&lt;code&gt;control + z&lt;/code&gt;的话，我就不得不继续再说一下，如何让你从这不知所措的慌乱中解脱出来 (你的音乐还在播放，而你的工作也都保存着，可是你无法进入到之前的 sessions 了，OMG)。&lt;/p&gt;

&lt;p&gt;试试在命令行中输入&lt;code&gt;jobs&lt;/code&gt;吧，这时候你应该可以看到你的&lt;code&gt;screen&lt;/code&gt;程序正在后台运行，并且应该会看到带有一个&lt;code&gt;[1]&lt;/code&gt;符号。对的，这时候你可以输入&lt;code&gt;fg 1&lt;/code&gt;回到喜悦中来吧。当然如果仅仅是按照上面的教程来做的话，你直接输入&lt;code&gt;fg&lt;/code&gt;按&lt;code&gt;return&lt;/code&gt;就可以，因为你最近的后台运行程序就是它。&lt;/p&gt;

&lt;p&gt;差不多了，我想出去玩了，现在你可以继续自己练习几遍。在使用&lt;code&gt;screen&lt;/code&gt;的时候遇到问题你就按&lt;code&gt;&amp;lt;C + a&amp;gt;&lt;/code&gt;然后按&lt;code&gt;?&lt;/code&gt;(确保你当前已经进入 screen 中)。当然这只是使用 screen 来协助你工作而已，事实上，有的人仅仅是用&lt;code&gt;fg, bg&lt;/code&gt;加&lt;code&gt;nohup, &amp;amp;&lt;/code&gt;等也能较好的协调好多个 sessions。&lt;/p&gt;

&lt;p&gt;谢谢，希望对你有些许帮助。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Sun, 29 May 2016 12:08:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/30151</link>
      <guid>https://ruby-china.org/topics/30151</guid>
    </item>
    <item>
      <title>谁有一份 CODE 和 NAME 对应的 json 格式的国家列表</title>
      <description>&lt;p&gt;应该是遵守 &lt;a href="http://data.okfn.org/data/core/country-list" rel="nofollow" target="_blank" title=""&gt;ISO 3166-1-alpha-2 codes&lt;/a&gt;的。&lt;/p&gt;

&lt;p&gt;如：&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;...&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;code&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;AF&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Afghanistan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;code&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;AX&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Åland Islands&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;code&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;AL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Albania&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;...&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;code&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;CN&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;China&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="p"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然上面这份是英文对照的，需要中文对照的。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Wed, 11 May 2016 09:48:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/29975</link>
      <guid>https://ruby-china.org/topics/29975</guid>
    </item>
    <item>
      <title>请教关于同一个 domain 下面部署 2 个应用 (静态和动态)</title>
      <description>&lt;p&gt;现在我的情况是：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;首页、文档等页面是用&lt;em&gt;jekyll&lt;/em&gt;生成的静态页面 - &lt;strong&gt;APP1&lt;/strong&gt;；其余的是一个用&lt;em&gt;node&lt;/em&gt;跑的 JavaScript SPA 应用 - &lt;strong&gt;APP2&lt;/strong&gt;。然后想把两个应用部署在同一个域名下。e.g. &lt;a href="" title=""&gt;http://example.com&lt;/a&gt;。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;现在，我想的是用&lt;code&gt;nginx&lt;/code&gt;来部署这两个应用。我搜了一些教程，只是告诉如何部署&lt;em&gt;两个应用&lt;/em&gt;在&lt;em&gt;不同&lt;/em&gt;的&lt;em&gt;域名&lt;/em&gt;或&lt;em&gt;端口&lt;/em&gt;下。但是我想要的结果可能跟它还是有一点区别。&lt;/p&gt;

&lt;p&gt;因为&lt;strong&gt;APP1&lt;/strong&gt;的访问路径是：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;example.com/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;example.com/documentations&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;example.com/documentations/1&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;而&lt;strong&gt;APP2&lt;/strong&gt;的路径会是：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;example.com/#/login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;example.com/#/signup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;example.com/#/dashboard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>1272729223</author>
      <pubDate>Mon, 09 May 2016 12:07:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/29955</link>
      <guid>https://ruby-china.org/topics/29955</guid>
    </item>
    <item>
      <title>各位能否把 JavaScript 这个板块搞活跃起来？</title>
      <description>&lt;p&gt;爱好 JS 的各位大大？&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Thu, 05 May 2016 12:51:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/29916</link>
      <guid>https://ruby-china.org/topics/29916</guid>
    </item>
    <item>
      <title>Redux 里面如何正确的设计 reducer？</title>
      <description>&lt;p&gt;我感觉 reducer( state) 的设计非常伤脑经，想用&lt;code&gt;combineReducers()&lt;/code&gt;来拆分，但是有些&lt;strong&gt;全局的变量&lt;/strong&gt;又在个个子&lt;code&gt;reducer&lt;/code&gt;的外部。&lt;/p&gt;

&lt;p&gt;比如 我的&lt;code&gt;state&lt;/code&gt;中&lt;code&gt;isFetching&lt;/code&gt;和&lt;code&gt;isAuthenticated&lt;/code&gt;显然是希望全局的，然而我想把&lt;code&gt;user&lt;/code&gt;和&lt;code&gt;posts&lt;/code&gt;单独拿出去用子&lt;code&gt;reducer&lt;/code&gt;写，这样一来，在&lt;code&gt;user&lt;/code&gt;和&lt;code&gt;posts&lt;/code&gt;的异步操作中，我就没办法去更改全局的&lt;code&gt;isFetching&lt;/code&gt;变量了？&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;initState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;isFetching&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;isAuthenticated&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;posts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问的不是很好，大致就是这么个意思。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Thu, 21 Apr 2016 18:21:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/29810</link>
      <guid>https://ruby-china.org/topics/29810</guid>
    </item>
    <item>
      <title>分享一个吊炸天的玩意。</title>
      <description>&lt;h2 id="cathode"&gt;cathode&lt;/h2&gt;
&lt;p&gt;本来想找个 Terminal 的替代品，&lt;strong&gt;真的真的仅仅因为 El capitan 之后 Terminal 字体渲染问题无法解决&lt;/strong&gt;这个原因，&lt;a href="http://apple.stackexchange.com/questions/127351/is-there-a-way-to-make-the-terminals-font-less-blurry" rel="nofollow" target="_blank" title=""&gt;http://apple.stackexchange.com/questions/127351/is-there-a-way-to-make-the-terminals-font-less-blurry&lt;/a&gt;  当然，我更喜欢 Yosemite 及之前的。然后又不想用 iterm2，没有什么原因，只是想找个简简单单的 terminal。然后 google 搜啊搜，终于搜到这厮。我擦，真是亮瞎我的眼了，目前已经用上，还可以定制效果，一句话说到底就是 1GB(1024)！！我是有打算完全替换 Mac 内置的 Terminal.App，作为我的主要工具。&lt;/p&gt;

&lt;p&gt;现在在 Cathode 里面敲打命令行，VIM 写代码更神奇了。同事都来围观，我擦！哈哈哈。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.secretgeometry.com/apps/cathode/" rel="nofollow" target="_blank" title=""&gt;http://www.secretgeometry.com/apps/cathode/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.secretgeometry.com/media/screenshot13.jpg" title="" alt="pic"&gt;&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Fri, 15 Apr 2016 15:12:25 +0800</pubDate>
      <link>https://ruby-china.org/topics/29724</link>
      <guid>https://ruby-china.org/topics/29724</guid>
    </item>
    <item>
      <title>设计师设计的尺寸，怎么跟 CSS 写出来的完全不一样。</title>
      <description>&lt;p&gt;比如，她们给我的软件自动抓取的属性，字体大小 16 号，或者 28 号；又或者矩形高度 70px，但是 css 写了个 70px，我擦，丑一比，大小相差也忒大了。&lt;/p&gt;

&lt;p&gt;刚才稍微搜了一下，感觉跟 dpi 什么什么的有关系，看起来是一门大学问，有没有简单粗暴点的经验可以分享？&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Mon, 21 Mar 2016 18:04:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/29406</link>
      <guid>https://ruby-china.org/topics/29406</guid>
    </item>
    <item>
      <title>谁能讲解一下 Angular 的内部实现？</title>
      <description>&lt;p&gt;实在不想用 angular 了，只是想尽快弄明白它的内部实现，&lt;strong&gt;然后赶紧找个机会抛弃它&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;比如从 angular 启动一个应用之后，背后做了什么工作？只要大致的流程即可，但是官方的文档看的头晕，以前以膜拜的态度来看待来自 google 的程序员，但是现在也开始怀疑有些无非也就是些瞎折腾完的小青年。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Tue, 22 Sep 2015 10:53:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/27429</link>
      <guid>https://ruby-china.org/topics/27429</guid>
    </item>
    <item>
      <title>遇到一个奇怪的问题求助</title>
      <description>&lt;p&gt;&lt;a href="https://github.com/dfd07d/angular-amd-seed" rel="nofollow" target="_blank"&gt;https://github.com/dfd07d/angular-amd-seed&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;master 分支，和 compare 分支。两份代码完全一样 (除了注释吧)，我校对了好几遍。 &lt;/p&gt;

&lt;p&gt;但是在 master 分支下跑就报错，&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:modulerr] Failed to instantiate module core due to:
Error: [$injector:nomod] Module 'core' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;在 comapre&lt;/strong&gt;分支下就 ok。我擦！&lt;/p&gt;

&lt;p&gt;谁能帮我看看么？ &lt;/p&gt;

&lt;p&gt;我觉得主要的问题应该是出在这几个文件中，但自己已经看不出来了。&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;js/
|-- app.js
|-- main.js
|-- core/core.js
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="main.js"&gt;main.js&lt;/h3&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;

    &lt;span class="c1"&gt;// 设置`alias`&lt;/span&gt;
    &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/bower_components/angular/angular&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular.route&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/bower_components/angular-route/angular-route&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular.resource&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/bower_components/angular-resource/angular-resource&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular.cookies&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/bower_components/angular-cookies/angular-cookies&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ui.bootstrap&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/bower_components/angular-ui-bootstrap-bower/ui-bootstrap&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;

    &lt;span class="na"&gt;shim&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

        &lt;span class="c1"&gt;// 由于angular并非`define()`定义的模块&lt;/span&gt;
        &lt;span class="c1"&gt;// 所以手动导出为AMD支持的格式&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;exports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;

    &lt;span class="c1"&gt;// 引入启动应用的模块`./bootstrap`&lt;/span&gt;
    &lt;span class="na"&gt;deps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./bootstrap&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="p"&gt;}())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="bootstrap.js"&gt;bootstrap.js&lt;/h3&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 这里并非定义AMD模块&lt;/span&gt;
&lt;span class="c1"&gt;// 仅仅使用`require()`方法作为模块加载器&lt;/span&gt;
&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;angular&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="nx"&gt;angular&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;element&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ready&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

        &lt;span class="c1"&gt;// 等待DOM READY之后,手动启动应用&lt;/span&gt;
        &lt;span class="nx"&gt;angular&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;bootstrap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="app.js"&gt;app.js&lt;/h3&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;define&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./core/core&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./ui/ui&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./prj/prj&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;angular&lt;/span&gt; &lt;span class="cm"&gt;/*core, ui, prj*/&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;// 虽然我们这里得到了`core`,`ui`,`prj`模块的对象,&lt;/span&gt;
                                           &lt;span class="c1"&gt;// 但angular在定义module依赖的时候并不需要直接的对象&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;angular&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;module&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;

    &lt;span class="c1"&gt;// 这时候,module`core`,`ui`,`project`已经可以使用&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;core&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ui&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;project&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;// 配置`./app`模块&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;$routeProvider&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;$routeProvider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;otherwise&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="na"&gt;redirectTo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/projects&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;// 导出`./app`模块&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt;

&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="core/core.js"&gt;core/core.js&lt;/h3&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;define&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;require&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;angular&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;core&lt;/span&gt;

&lt;span class="c1"&gt;// 因为`angular.route`等并非标准AMD模块,&lt;/span&gt;
&lt;span class="c1"&gt;// 所以仅仅使用`require()`预加载进来,&lt;/span&gt;
&lt;span class="c1"&gt;// 然后导出返回值作为导出的`./core`模块&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular.route&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular.resource&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;angular.cookies&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="c1"&gt;// 创建module`core`&lt;/span&gt;
    &lt;span class="nx"&gt;core&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;angular&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;module&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;core&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ngRoute&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ngResource&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ngCookies&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;])&lt;/span&gt;

    &lt;span class="c1"&gt;// 返回给`require()`方法作为结果&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;core&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;跪谢！&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Thu, 13 Aug 2015 11:23:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/26905</link>
      <guid>https://ruby-china.org/topics/26905</guid>
    </item>
    <item>
      <title>关于 AngularJS 的一个问题</title>
      <description>&lt;p&gt;这是我个人对于 angular*&lt;em&gt;模块&lt;/em&gt;*设计的思路，然后遇到一些问题，当然如果我的思路不理想，然后期待您给我建议，谢谢。&lt;/p&gt;

&lt;p&gt;我把&lt;code&gt;projects&lt;/code&gt;打包成一个模块：&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="c1"&gt;// 创建我的应用下面的`project`模块&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;projectModule&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;angular&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;module&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;myApp.project&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;myApp.config&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;// 路由&lt;/span&gt;
&lt;span class="nx"&gt;projectModule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$routeProvider&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;routes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
           &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/projects&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;templateUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;components/projects/list.html&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ProjectListCtrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                      &lt;span class="na"&gt;projects&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;   &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;projectService&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                              &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;projectService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;$promise&lt;/span&gt;
                      &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
           &lt;span class="p"&gt;},&lt;/span&gt;
           &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/projects/:id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;templateUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;components/projects/show.html&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ProjectCtrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt;
                     &lt;span class="c1"&gt;// ...&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
           &lt;span class="p"&gt;}&lt;/span&gt;
     &lt;span class="p"&gt;}&lt;/span&gt;

     &lt;span class="nx"&gt;angular&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;routes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;route&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nx"&gt;$routeProvider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;when&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;route&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;// 服务&lt;/span&gt;
&lt;span class="nx"&gt;projectModule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;factory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;projectService&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$resource&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;API&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/projects/:id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
     &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;$resource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@_id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;// 项目列表&lt;/span&gt;
&lt;span class="nx"&gt;projectModule&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ProjectListCtrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;projects&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;projects&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;projects&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;directive&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;projectListDirective&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;// `project list`指令, 因为我把它关联到`ProjectListCtrl`成为一个组件单元&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;transclude&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
               &lt;span class="na"&gt;projects&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;&amp;lt;div projects="{{ctrl.projects}}"&amp;gt;&amp;lt;h1&amp;gt;项目列表&amp;lt;/h1&amp;gt;&amp;lt;div ng-transclude&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ProjectListCtrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;controllerAs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ctrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;link&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;attrs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ctrl&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
               &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;


&lt;span class="c1"&gt;//  项目详情&lt;/span&gt;
&lt;span class="nx"&gt;projectModule&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ProjectCtrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;project&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;project&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;project&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;directive&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;projectDiretive&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;&amp;lt;h1&amp;gt;{{ctrl.project.title}}&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;{{ctrl.project.description}}&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ProjectCtrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;controllerAs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ctrl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;link&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;attrs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ctrl&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                 &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;components/projects/list.html&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;project-list-directive&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
         &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;ng-repeat=&lt;/span&gt;&lt;span class="s"&gt;"project in $parent.projects"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;ng-href=&lt;/span&gt;&lt;span class="s"&gt;"/projects/{{project.id}}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{{project.title}}&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
         &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/project-list-directive&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;components/projects/show.html&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;project-directive&amp;gt;&amp;lt;/project-directive&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不过，基于我以上的思路，在 console 里面看到报错，实际上&lt;code&gt;ProjectListCtrl&lt;/code&gt;被 call 了两次，一次是&lt;strong&gt;渲染&lt;code&gt;components/projects/list.html&lt;/code&gt;&lt;/strong&gt;模板的时候，然后在编译&lt;code&gt;&amp;lt;project-list-directive&amp;gt;&lt;/code&gt;指令的时候又调用了一次。而，这个错误就是在编译指令的时候调用&lt;code&gt;ProjectListCtrl&lt;/code&gt;，然后找不到&lt;code&gt;porjects&lt;/code&gt;这个注入依赖。&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Error: [$injector:unpr] Unknown provider: projectsProvider &amp;lt;- projects &amp;lt;- ProjectListCtrl
http://errors.angularjs.org/1.3.15/$injector/unpr?p0=projectsProvider%20%3C-%20projects%20%3C-%20ProjectListCtrl
    at REGEX_STRING_REGEXP (http://localhost:3000/bower_components/angular/angular.js:63:12)
    at http://localhost:3000/bower_components/angular/angular.js:4015:19
    at Object.getService [as get] (http://localhost:3000/bower_components/angular/angular.js:4162:39)
    at http://localhost:3000/bower_components/angular/angular.js:4020:45
    at getService (http://localhost:3000/bower_components/angular/angular.js:4162:39)
    at Object.invoke (http://localhost:3000/bower_components/angular/angular.js:4194:13)
    at $get.extend.instance (http://localhost:3000/bower_components/angular/angular.js:8493:21)
    at http://localhost:3000/bower_components/angular/angular.js:7739:13
    at forEach (http://localhost:3000/bower_components/angular/angular.js:331:20)
    at nodeLinkFn (http://localhost:3000/bower_components/angular/angular.js:7738:11) &amp;lt;div ng-view="" class="ng-scope"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>1272729223</author>
      <pubDate>Mon, 08 Jun 2015 19:32:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/25931</link>
      <guid>https://ruby-china.org/topics/25931</guid>
    </item>
    <item>
      <title>ruby-china 的 seo 怎么做的？这么牛！</title>
      <description>&lt;p&gt;我刚发的文章，在 google 里面搜索里面某个关键字，立马就搜到而且还在第一页。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Tue, 28 Oct 2014 15:00:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/22307</link>
      <guid>https://ruby-china.org/topics/22307</guid>
    </item>
    <item>
      <title>一篇关于《精神为逻辑起点的物理公理体系》受到牛津大学出版社顾问甘迪博士的研究赞助邀请。</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;这些天没有看邮件，刚刚打开邮箱，看到一封10月24日的国外来信。发邮件者是甘地博士（Dr. Gandhi），应该是印度裔学者，牛津大学出版社的数学顾问（ resource person in Math for Oxford University Press），国际前沿科学学会主席（ President of International Society of Frontier Science (ISFS)），想要我的研究计划，我哪里有什么研究计划？

较早前，应该是8月份，我在 vixra.org 贴出了英文版的论文 “A physical axiom system based on the spirit”，后来发现这个 vixra.org 并不是 arxiv.org ，大概属于山寨版的，也就没放在心上，尤其是贴出的论文仍旧包含需要修改的地方，更新了一次后就再也没更新，想不到也有人看，并且很感兴趣。

自己的论文能够得到关注当然很高兴，不过还是在想，我一直都在国内宣传自己的理论，为什么国内的学术界根本不感兴趣，那些不懂装懂的人更是起劲地胡搅蛮缠，反而是国外（虽然这个 ISFS 并不知名）的学者率先关注呢？

Dr. Gandhi 在邮件中说，如果我的研究计划审核通过，就能够得到每年33000美元的研究经费，持续三年。我自己并不是太愿意接受国外机构的资助，真希望是国内的某些机构能够认可我的观点。不过我不是太担心，或许是自信吧，这个理论的方向是正确无疑的，它打开了一个新的研究方向的大门，任何试图进入这个研究领域的学者都不可能绕开它。

正在思考如何回复甘地博士。

邮件原文如下：

Research GRANT USD 33,000 per year- call for research proposal

To

Zhang Yunfan 

databit@sina.cn 

Dear Author,
I am very glad to introduce myself as Dr. Gandhi, resource person in Math for Oxford University Press and President of International Society of Frontier Science (ISFS). I have seen your paper on A physical axiom system based on the spirit which is really impressed me as well as my Editorial board members of www.bmsa.us www.isfs.org.in and www.e-tet.org

Due to our own interest on your work as well as to promote research in Mathematics, we are calling research proposal from any individual. If you are interested, please prepare research proposal as per the following format and total number of pages not less than 8.


1. SHORT BIODATA

Name :
Date of Birth :
Category :
Educational Qualification :
Designation :
Correspondence Address :
Email :

2. PROPOSED RESEARCH WORK:

a) Project Title
b) Introduction: (Including Origin of the research problem.):
c) Objectives:
d) Abstract
e) Methodology:
f) Project significance:
g) Litteraturereview:
h) Literature national and international scenario
i) Social benefits and others
j) The bibliography



3. DECLARATION

I hereby declare that I have read the guidelines of Research Project Scheme of the ISFS. In the event of a project being awarded, I undertake to engage myself for research work on the subject. I further declare that to the best of my knowledge and belief, the particulars given in the form are correct.

Date :

Signature (digital):

Please copy the cited above on separate MS word and fill all the questions with relevant information. If your proposal is selected we will fund USD 33, 000 per year and up to 3 years. You have to publish all the results in any one of our journals. This work you can carry in your own place and at your own time. In case if you have any further questions, please let me know.
Awaiting your proposals,
All the best
Dr. Gandhi.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;原文：&lt;a href="http://blog.tianya.cn/post-4728668-69332639-1.shtml" rel="nofollow" target="_blank" title=""&gt;http://blog.tianya.cn/post-4728668-69332639-1.shtml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“若人欲了知。三世一切佛。应观法界性。一切唯心造”。世界真的是如佛教所言的“唯心所现。唯识所变“吗？&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;欢迎讨论。 &lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Tue, 28 Oct 2014 14:40:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/22304</link>
      <guid>https://ruby-china.org/topics/22304</guid>
    </item>
    <item>
      <title>转载一篇关于物理世界量子化的文章</title>
      <description>&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;======（这部分内容摘自网络）&lt;/p&gt;

&lt;p&gt;原文:
&lt;a href="http://www.xiaohonghua.net/posts/2014/10/21/wei-shen-me-wu-li-shi-jie-bi-ran-shi-liang-zi-hua-de/" rel="nofollow" target="_blank" title=""&gt;http://www.xiaohonghua.net/posts/2014/10/21/wei-shen-me-wu-li-shi-jie-bi-ran-shi-liang-zi-hua-de/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;随缘转载。随喜功德。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Thu, 23 Oct 2014 13:46:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/22213</link>
      <guid>https://ruby-china.org/topics/22213</guid>
    </item>
    <item>
      <title>如何有效的阻止 Chrome 缓存</title>
      <description>&lt;h2 id="Chrome的缓存怎么解决?"&gt;Chrome 的缓存怎么解决？&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Developer Tools &amp;gt; Disable Caching&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;搜索了很多问题，添加&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;'Expires'&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;'-1'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;'Pragma'&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;'no-cache'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;'Cache-Control'&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;'no-cache'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Chrome Plugin &amp;gt; &lt;code&gt;Cache Killer&lt;/code&gt;&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;scripts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementsByTagName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;script&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&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="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;scripts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;scripts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;scripts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;?=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;getTime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Command&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;r&lt;/code&gt; 一直按都没用。&lt;/p&gt;

&lt;p&gt;最后搜到一条 tweet: &lt;/p&gt;
&lt;h3 id="FUCK YOU GOOGLE CHROME AND YOUR GOD DAMNED CACHING."&gt;FUCK YOU GOOGLE CHROME AND YOUR GOD DAMNED CACHING.&lt;/h3&gt;</description>
      <author>1272729223</author>
      <pubDate>Fri, 27 Jun 2014 20:22:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/20205</link>
      <guid>https://ruby-china.org/topics/20205</guid>
    </item>
    <item>
      <title>一个 Git 的问题</title>
      <description>&lt;p&gt;比如说我的项目有两个分支&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git branch
  master
* dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在&lt;code&gt;dev&lt;/code&gt;分支下面有两个 3 个文件夹是 ignore 的：&lt;code&gt;bower_components/&lt;/code&gt;, &lt;code&gt;node_modules/&lt;/code&gt;, &lt;code&gt;build/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;现在我在&lt;code&gt;dev&lt;/code&gt;下面提交之后，切换到&lt;code&gt;master&lt;/code&gt;分支去，结果把&lt;code&gt;bower_components/&lt;/code&gt;, &lt;code&gt;node_modules/&lt;/code&gt;, &lt;code&gt;build/&lt;/code&gt;这些目录也带过去了。如何忽略他们呢？&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Thu, 24 Apr 2014 10:05:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/18814</link>
      <guid>https://ruby-china.org/topics/18814</guid>
    </item>
    <item>
      <title>感觉于人相处都是罪恶,到处在害人。</title>
      <description>&lt;p&gt;我好难过。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Tue, 25 Feb 2014 19:53:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/17488</link>
      <guid>https://ruby-china.org/topics/17488</guid>
    </item>
    <item>
      <title>关于 app/assets 和 vender/assets 以及 lib/assets, public/assets</title>
      <description>&lt;p&gt;现在有个问题&lt;/p&gt;

&lt;p&gt;我想把前端和 rails 完全分离出来，因为我用前端的工具&lt;code&gt;npm&lt;/code&gt;和&lt;code&gt;bower&lt;/code&gt;来管理 javascript 资源，然后用&lt;code&gt;grunt&lt;/code&gt;去监听和预编译前端静态文件 (js,css).&lt;/p&gt;

&lt;p&gt;rails 默认的结构：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── app
│&amp;nbsp;&amp;nbsp; ├── assets
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── images
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── javascripts
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── application.js
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── stylesheets
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── application.css
│&amp;nbsp;&amp;nbsp; ├── controllers
│&amp;nbsp;&amp;nbsp; ├── helpers
│&amp;nbsp;&amp;nbsp; ├── mailers
│&amp;nbsp;&amp;nbsp; ├── models
│&amp;nbsp;&amp;nbsp; └── views
│&amp;nbsp;&amp;nbsp;     └── layouts
│&amp;nbsp;&amp;nbsp;         └── application.html.erb
├── bin
├── config
├── db
├── lib
│&amp;nbsp;&amp;nbsp; ├── assets
│&amp;nbsp;&amp;nbsp; └── tasks
├── log
├── public
│&amp;nbsp;&amp;nbsp; ├── 404.html
│&amp;nbsp;&amp;nbsp; ├── 422.html
│&amp;nbsp;&amp;nbsp; ├── 500.html
│&amp;nbsp;&amp;nbsp; ├── favicon.ico
│&amp;nbsp;&amp;nbsp; └── robots.txt
├── tmp
├── vendor
│&amp;nbsp;&amp;nbsp; └── assets
│&amp;nbsp;&amp;nbsp;     ├── javascripts
│&amp;nbsp;&amp;nbsp;     └── stylesheets
├── Gemfile
├── Gemfile.lock
├── README.md
├── Rakefile
└── config.ru
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我想把他们分离出来管理的结构：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── app
│&amp;nbsp;&amp;nbsp; ├── assets
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── images
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── javascripts
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── application.js
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── stylesheets
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── application.css
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── node_modules/#在这里
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── grunt/
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── .../
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── bower_components/#在这里
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── angular/
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── angular-route/
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── Gruntfile.js#污染rails默认的app/assets结构
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── package.json#污染rails默认的app/assets结构
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── bower.json#污染rails默认的app/assets结构
│&amp;nbsp;&amp;nbsp; ├── controllers
│&amp;nbsp;&amp;nbsp; ├── helpers
│&amp;nbsp;&amp;nbsp; ├── mailers
│&amp;nbsp;&amp;nbsp; ├── models
│&amp;nbsp;&amp;nbsp; └── views
│&amp;nbsp;&amp;nbsp;     └── layouts
│&amp;nbsp;&amp;nbsp;         └── application.html.erb
├── bin
├── config
├── db
├── lib
│&amp;nbsp;&amp;nbsp; ├── assets
│&amp;nbsp;&amp;nbsp; └── tasks
├── log
├── public
│&amp;nbsp;&amp;nbsp; ├── 404.html
│&amp;nbsp;&amp;nbsp; ├── 422.html
│&amp;nbsp;&amp;nbsp; ├── 500.html
│&amp;nbsp;&amp;nbsp; ├── favicon.ico
│&amp;nbsp;&amp;nbsp; └── robots.txt
├── tmp
├── vendor
│&amp;nbsp;&amp;nbsp; └── assets
│&amp;nbsp;&amp;nbsp;     ├── javascripts
│&amp;nbsp;&amp;nbsp;     └── stylesheets
├── Gemfile
├── Gemfile.lock
├── README.md
├── Rakefile
└── config.ru
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还是：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── app
│&amp;nbsp;&amp;nbsp; ├── assets
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── images
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── javascripts
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── application.js
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── stylesheets
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── application.css
│&amp;nbsp;&amp;nbsp; ├── controllers
│&amp;nbsp;&amp;nbsp; ├── helpers
│&amp;nbsp;&amp;nbsp; ├── mailers
│&amp;nbsp;&amp;nbsp; ├── models
│&amp;nbsp;&amp;nbsp; └── views
│&amp;nbsp;&amp;nbsp;     └── layouts
│&amp;nbsp;&amp;nbsp;         └── application.html.erb
├── bin
├── config
├── db
├── lib
│&amp;nbsp;&amp;nbsp; ├── assets
│&amp;nbsp;&amp;nbsp; └── tasks
├── log
├── public
│&amp;nbsp;&amp;nbsp; ├── 404.html
│&amp;nbsp;&amp;nbsp; ├── 422.html
│&amp;nbsp;&amp;nbsp; ├── 500.html
│&amp;nbsp;&amp;nbsp; ├── favicon.ico
│&amp;nbsp;&amp;nbsp; └── robots.txt
├── tmp
├── vendor
│&amp;nbsp;&amp;nbsp; └── assets
│&amp;nbsp;&amp;nbsp;     ├── javascripts
│&amp;nbsp;&amp;nbsp;     └── stylesheets
├── Gemfile
├── Gemfile.lock
├── README.md
├── Rakefile
└── config.ru
└── node_modules/#开始污染rails默认的根结构
└── bower_components/#污染rails默认的根结构
└── Gruntfile.js#污染rails默认的根结构
└── package.json#污染rails默认的根结构
└── bower.json#污染rails默认的根结构
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还是？??&lt;/p&gt;

&lt;p&gt;粗略的看了一下 rails 的&lt;code&gt;assets pipline&lt;/code&gt;中关于&lt;code&gt;app/assets&lt;/code&gt;和&lt;code&gt;vendor/assets&lt;/code&gt;, &lt;code&gt;lib/assets&lt;/code&gt;, &lt;code&gt;public/assets&lt;/code&gt;的使用情况。&lt;/p&gt;

&lt;p&gt;现在我想用前端的工具来生成&lt;code&gt;build&lt;/code&gt;之后的文件匹配到&lt;code&gt;app/assets&lt;/code&gt;中，然后由 rails 的 assets pipline 去管理已经生成的文件，包括在生产环境去生成&lt;code&gt;public/assets&lt;/code&gt;下面的文件。&lt;/p&gt;

&lt;p&gt;可是这样，我不知道我该把&lt;code&gt;node_modules/&lt;/code&gt;和&lt;code&gt;bower_components&lt;/code&gt;这样的文件夹放在哪里比较合适，我希望&lt;code&gt;完全不要&lt;/code&gt;污染 rails 默认的任何结构。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Tue, 04 Feb 2014 21:18:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/17080</link>
      <guid>https://ruby-china.org/topics/17080</guid>
    </item>
    <item>
      <title>奇怪的问题 rails -v</title>
      <description>&lt;p&gt;发现一个奇怪的问题，我安装完 rails 之后，但是隔一段时间 (具体不知道)。再次运行就提示 rails 没有安装，当我再&lt;code&gt;rails -v&lt;/code&gt;的时候，把当前的窗口给关了。这是怎么回事？&lt;/p&gt;

&lt;p&gt;我重新打开一个新的窗口再输入&lt;code&gt;rails -v&lt;/code&gt;就提示&lt;u&gt;Rails 4.0.2&lt;/u&gt;  也就是已经安装了。&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Tue, 14 Jan 2014 13:25:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/16786</link>
      <guid>https://ruby-china.org/topics/16786</guid>
    </item>
    <item>
      <title>Github 的 Pygments 是如何判断代码语言然后应用不同的 lexer 的？</title>
      <description>&lt;p&gt;如题&lt;/p&gt;</description>
      <author>1272729223</author>
      <pubDate>Sun, 03 Nov 2013 10:27:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/15259</link>
      <guid>https://ruby-china.org/topics/15259</guid>
    </item>
  </channel>
</rss>
