<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ca01ei (ca01ei)</title>
    <link>https://ruby-china.org/ca01ei</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>新建一个 application helper 方法出现错误</title>
      <description>&lt;p&gt;我想新建一个 helper 方法用来添加带有链接的图片，类似于
&lt;code&gt;&amp;lt;a href="http://www.mysite.com"&amp;gt;&amp;lt;img src="path/to/image.png"/&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;我是这么写的&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# app/helpers/application_helper.rb&lt;/span&gt;
&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;ApplicationHelper&lt;/span&gt;
  &lt;span class="c1"&gt;# a helper method for&lt;/span&gt;
  &lt;span class="c1"&gt;# &amp;lt;a href="http://www.mysite.com"&amp;gt;&amp;lt;img src="path/to/image.png"/&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;link_to_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options_img&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt; &lt;span class="n"&gt;target_link&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options_link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{})&lt;/span&gt;
    &lt;span class="n"&gt;link_to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_tag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options_img&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;target_link&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options_link&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;/code&gt;&lt;/pre&gt;
&lt;p&gt;运行时出现错误&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;SyntaxError &lt;span class="o"&gt;(&lt;/span&gt;....app/helpers/application_helper.rb:4: syntax error, unexpected &lt;span class="s1"&gt;'='&lt;/span&gt;, expecting &lt;span class="s1"&gt;')'&lt;/span&gt;
...&lt;span class="o"&gt;={}&lt;/span&gt;, target_link, &lt;span class="nv"&gt;options_link&lt;/span&gt;&lt;span class="o"&gt;={})&lt;/span&gt;
..../app/helpers/application_helper.rb:7: syntax error, unexpected keyword_end, expecting end-of-input&lt;span class="o"&gt;)&lt;/span&gt;:

app/helpers/application_helper.rb:4: syntax error, unexpected &lt;span class="s1"&gt;'='&lt;/span&gt;, expecting &lt;span class="s1"&gt;')'&lt;/span&gt;
app/helpers/application_helper.rb:7: syntax error, unexpected keyword_end, expecting end-of-input

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不知道问题出在哪？是因为 helper 方法的定义出问题了么？&lt;/p&gt;</description>
      <author>ca01ei</author>
      <pubDate>Sun, 11 Dec 2016 12:57:44 +0800</pubDate>
      <link>https://ruby-china.org/topics/31876</link>
      <guid>https://ruby-china.org/topics/31876</guid>
    </item>
    <item>
      <title>Rails 5.1 会提供对 Yarn 和 Webpack 的官方原生支持</title>
      <description>&lt;p&gt;&lt;a href="https://github.com/rails/rails/pull/26836#issuecomment-263860213" rel="nofollow" target="_blank" title=""&gt;Github 原文链接&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;我来圈一下重点
&lt;img src="https://l.ruby-china.com/photo/2016/fee5e80f49ac5f38d9762414ae6909e0.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2016/eb66ab7837571f862fe8cb9c9f98ba93.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2016/a7aa744c692f3cbeb050fbcce225a420.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;已经启动开发了。。
&lt;a href="https://github.com/rails/webpacker" rel="nofollow" target="_blank" title=""&gt;Webpacker&lt;/a&gt;&lt;/p&gt;</description>
      <author>ca01ei</author>
      <pubDate>Fri, 09 Dec 2016 09:16:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/31850</link>
      <guid>https://ruby-china.org/topics/31850</guid>
    </item>
    <item>
      <title>The Rails 5 way beta 版，今天出版了。</title>
      <description>&lt;p&gt;在 leanpub 上销售中，现在最低价 15 刀可以购买，作者说随着内容的更新会涨价。链接在这里 &lt;a href="https://leanpub.com/tr5w" rel="nofollow" target="_blank"&gt;https://leanpub.com/tr5w&lt;/a&gt; &lt;/p&gt;</description>
      <author>ca01ei</author>
      <pubDate>Thu, 10 Nov 2016 15:20:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/31567</link>
      <guid>https://ruby-china.org/topics/31567</guid>
    </item>
    <item>
      <title>小菜鸟刷 LeetCode，第一道题就栽了。不过我怀疑是 LeetCode 解释器的问题</title>
      <description>&lt;p&gt;本人菜鸟一枚，今天刚刚开始刷 LeetCode 的算法题。打算从通过率最高的题开始刷，于是就选择了&lt;a href="https://leetcode.com/problems/battleships-in-a-board/" rel="nofollow" target="_blank" title=""&gt;这一道：&lt;/a&gt;
把题目描述粘贴如下：&lt;/p&gt;

&lt;hr&gt;
&lt;h3 id="419. Battleships in a Board"&gt;419. Battleships in a Board&lt;/h3&gt;
&lt;p&gt;Given an 2D board, count how many different battleships are in it. The battleships are represented with &lt;code&gt;'X'&lt;/code&gt;s, empty slots are represented with &lt;code&gt;'.'&lt;/code&gt;s. You may assume the following rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You receive a valid board, made of only battleships or empty slots.&lt;/li&gt;
&lt;li&gt;Battleships can only be placed horizontally or vertically. In other words, they can only be made of the shape &lt;code&gt;1xN&lt;/code&gt; (1 row, N columns) or &lt;code&gt;Nx1&lt;/code&gt; (N rows, 1 column), where N can be of any size.&lt;/li&gt;
&lt;li&gt;At least one horizontal or vertical cell separates between two battleships - there are no adjacent battleships.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Example:
X..X
...X
...X
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the above board there are 2 battleships.&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Invalid Example:
...X
XXXX
...X
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is not a valid board - as battleships will always have a cell separating between them.
Your algorithm should not modify the value of the board.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;我一开始用了很多层 if 嵌套，大概写了 50 多行，通过了测试。后来转换思路，改进了一下程序，改进之后的代码如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;count_battleships&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;board&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
  &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;board&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt;
  &lt;span class="n"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
  &lt;span class="n"&gt;board&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;str&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&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;to_s&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;times&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;i&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;str&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"X"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&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="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;"X"&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&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="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;y&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="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;"X"&lt;/span&gt;
      &lt;span class="n"&gt;count&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;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;count_battleships&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;"X..X"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"...X"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"...X"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;奇怪的事情就在这时发生了，LeetCode OJ 上得到的结果是错误的，但是我在本地跑没问题，更奇怪的是，在 LeetCode 上 stdout 结果也是正确的，但是返回的结果就会自动乘以 2，我试了几个测试都是这样。截图如下。
&lt;img src="https://l.ruby-china.com/photo/2016/0ab59e3a37f885cf0da7256139872aa9.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;我现在完全懵逼了，不知道是哪儿的问题，请大神指点。。&lt;/p&gt;</description>
      <author>ca01ei</author>
      <pubDate>Thu, 27 Oct 2016 02:04:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/31445</link>
      <guid>https://ruby-china.org/topics/31445</guid>
    </item>
    <item>
      <title>The Well-Grounded Rubyist 中文版《Ruby 程序员修炼之道》已经印刷完毕，今天开始发货了。</title>
      <description>&lt;p&gt;九月份就预定了这本书，本来预计是九月底发货，现在都快十月底了，终于发货了。虽然还没收到书，但是已经很期待了。&lt;/p&gt;

&lt;p&gt;这本书本身的质量不必多说，有意思的是，本书的两位翻译是一对夫妻，其中一人是旅居海外多年的专职程序员，他的妻子是一位英语翻译硕士，因此我相信，整本书的翻译质量应该是有保障的。&lt;/p&gt;

&lt;p&gt;放出第一章的试读链接在这里：&lt;a href="http://www.epubit.com.cn/article/742" rel="nofollow" target="_blank"&gt;http://www.epubit.com.cn/article/742&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;购买链接我就不放了，友情提示一下，&lt;strong&gt;在某宝搜一下，比某东便宜将近 20 块。&lt;/strong&gt;&lt;/p&gt;</description>
      <author>ca01ei</author>
      <pubDate>Fri, 21 Oct 2016 10:24:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/31395</link>
      <guid>https://ruby-china.org/topics/31395</guid>
    </item>
    <item>
      <title>Mac 下怎样设置终端，可以让 $ 符号前面显示当前的所在文件夹，而不是用户名？</title>
      <description>&lt;p&gt;小菜鸟正在跟着 rails tutorial screencast 学习。
发现视频中的 iTerm $前面显示的是当前所在文件夹名称，或者当前调用程序的名称，而我的电脑上$前面一直显示的是自己的用户名。。我记得 lynda 的一个课程里教过怎么该，可是现在记不起来了。&lt;/p&gt;

&lt;p&gt;请大神帮忙，谢谢。。&lt;/p&gt;</description>
      <author>ca01ei</author>
      <pubDate>Wed, 06 Mar 2013 09:42:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/9172</link>
      <guid>https://ruby-china.org/topics/9172</guid>
    </item>
  </channel>
</rss>
