<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>wangping (jack p)</title>
    <link>https://ruby-china.org/wangping</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>【上海】上海均瑶科创公司教育产品线招人啦！</title>
      <description>&lt;p&gt;坐标上海青浦区，某知名民办学校内办公，均瑶科创为上市公司均匀集团旗下的科技公司。&lt;/p&gt;
&lt;h2 id="学历是硬性指标！！"&gt;学历是硬性指标！！&lt;/h2&gt;
&lt;p&gt;【职位】Ruby  on Rails 工程师（1-2 名，薪资待遇：15K-20K)&lt;/p&gt;

&lt;p&gt;要求： &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;学历 全日制本科&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;3-5 年以上 Ruby on Rails 一线开发经验，或者 多年其他语言服务端开发经验，一年以上 rails。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;前后端分离项目，Rails 主做服务端，具备一定的阿里云/aws 等主流云服务相关的处理能力，k8s 会者更佳。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;后端熟悉主流的 Gem，最为关键的具备一定的逻辑思维能力，算法能力。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitLab 作为项目管理软件，期望你可以熟练的使用 git，能用 Rspec 等主流方式进行 TDD 开发。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mysql 作为主要数据库，redis 作为主要 nosql。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;有自己的技术博客、Github Repository 并可以展示者优先。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;品质上要求：能吃苦，遵守公司纪律，服从上级领导，具备一定主观能动性。&lt;/p&gt;

&lt;p&gt;最后：不接受兼职，公司相对而言比较稳定，也喜欢稳定的你。&lt;/p&gt;

&lt;p&gt;有意向的可以发我邮件详谈：jackping@shwfl.edu.cn&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Thu, 07 Mar 2024 22:55:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/43618</link>
      <guid>https://ruby-china.org/topics/43618</guid>
    </item>
    <item>
      <title>新版的 cap  看着感觉好多了</title>
      <description>&lt;p&gt;我就直接上图了：
&lt;img src="https://l.ruby-china.com/photo/2016/ae3f65b51ec9f6c51230cf81ab7a5b46.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;清晰了很多吧&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Wed, 01 Jun 2016 14:25:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/30182</link>
      <guid>https://ruby-china.org/topics/30182</guid>
    </item>
    <item>
      <title>写自己第一个 Gem - alidayu_sms - 阿里大鱼短信服务平台</title>
      <description>&lt;p&gt;年了，才开始写自己第一个 gem,  阿里大鱼短信服务平台&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'alidayu_sms'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;缘起于上周 高的地图 api 开发者的一封 email，说是送 110 元阿里大鱼短信服务平台的代金券，然后就报着试试看的心态进去看了一下～
然后就发现价格还不错，挺便宜的，而且送达率真是 3s 内。
然后就去尝试写了下，发现走通了之后。&lt;/p&gt;

&lt;p&gt;我就在想，自己也搞了 ruby and rails 2 years 了，居然没自己写个 gem，太尼玛。。。。不说了。
于是就决定去写了个。。。&lt;/p&gt;

&lt;p&gt;顺便附上：&lt;a href="https://rubygems.org/gems/alidayu_sms" rel="nofollow" target="_blank" title=""&gt;gem 链接&lt;/a&gt;
写的还是比较简陋的，欢迎大家指正&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Mon, 01 Feb 2016 17:41:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/28928</link>
      <guid>https://ruby-china.org/topics/28928</guid>
    </item>
    <item>
      <title>关于 API 项目，版本迭代，兼容旧的版本</title>
      <description>&lt;p&gt;用 grape 部署的独立的 api 项目，怎么样的迭代比较好呢？&lt;/p&gt;

&lt;p&gt;比如从 v1 升到 v2. etc:  /v1/main_page  to /v2/main_page&lt;/p&gt;

&lt;p&gt;其实有很多的接口可能不会变，可能就是改了几个接口，加了几个接口，但是对于整个项目几百个接口来说可能只是很少的一部分。
那么是否有必要全部接口升为为 v2, 也就是备份一份，还是不变，只是有变化的去增加。
（我们现在的做法是 androoid 和 ios 各一份，然后 不增加版本号，每次在接口用代码的手段进行兼容，不行的时候加接口，感觉不是很妙～～～）&lt;/p&gt;

&lt;p&gt;还有有一个兼容旧版本，一般兼容多少个版本呢，有经验的聊聊呗～～～&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Sun, 06 Sep 2015 11:58:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/27204</link>
      <guid>https://ruby-china.org/topics/27204</guid>
    </item>
    <item>
      <title>报错  Zlib::BufError (buffer error) ，求救！！！！！</title>
      <description>&lt;p&gt;问题描述：
用&lt;a href="https://dn-ikcrm-files-dev.qbox.me/attachments/files/9/issues.csv" rel="nofollow" target="_blank"&gt;https://dn-ikcrm-files-dev.qbox.me/attachments/files/9/issues.csv&lt;/a&gt; 会报错：Zlib::BufError (buffer error)。
其他的不会。&lt;/p&gt;

&lt;p&gt;代码如下，大神们可以 try 一下。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt; &lt;span class="n"&gt;http_download_with_words&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'https://dn-ikcrm-files-dev.qbox.me/attachments/files/9/issues.csv'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'temp.csv'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;http_download_with_words&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;bytes_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;
    &lt;span class="nb"&gt;binding&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pry&lt;/span&gt;
    &lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="ss"&gt;read_timeout: &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="ss"&gt;:content_length_proc&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;content_length&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
          &lt;span class="n"&gt;bytes_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;content_length&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="ss"&gt;:progress_proc&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;bytes_transferred&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;bytes_total&lt;/span&gt;
            &lt;span class="c1"&gt;# Print progress&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\r&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;bytes_transferred&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;bytes_total&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
          &lt;span class="k"&gt;else&lt;/span&gt;
            &lt;span class="c1"&gt;# We don’t know how much we get, so just print number&lt;/span&gt;
            &lt;span class="c1"&gt;# of transferred bytes&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\r&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;bytes_transferred&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; (total size unknown)"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
          &lt;span class="k"&gt;end&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="nb"&gt;open&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wb'&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;io&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
        &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each_line&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
          &lt;span class="n"&gt;io&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt;
        &lt;span class="k"&gt;end&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;自己想了一个解决方案：&lt;/p&gt;

&lt;p&gt;file.write(&lt;code&gt;curl #{attachment.file.url}&lt;/code&gt;)
it is work!&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Thu, 11 Jun 2015 18:08:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/25986</link>
      <guid>https://ruby-china.org/topics/25986</guid>
    </item>
    <item>
      <title>File 创建新文件，如何赋予最大权限</title>
      <description>&lt;p&gt;做了很多尝试：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;full_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wb+'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;生成的文件，权限为-rw-r--r--&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"newfile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;CREAT&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;TRUNC&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;RDWR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mo"&gt;0777&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;结果生成了--wxr------&lt;/p&gt;

&lt;p&gt;如何可以-rwxrwxrwx 呢？求教&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Fri, 20 Mar 2015 12:20:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/24748</link>
      <guid>https://ruby-china.org/topics/24748</guid>
    </item>
    <item>
      <title>[上海] 触易通科技有限公司招聘 Rails、ios、安卓工程师</title>
      <description>&lt;p&gt;&lt;strong&gt;我们是一家怎样的公司&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;我们（上海触易通科技发展公司）不是一家纯粹的互联网高科技公司，我们现在在做的就是用互联网的思维去运作一些原本是传统的线下实业，因此，你在开发一些产品的时候，会感觉特别接地气。我们拥有强大的线下资源，因此我们线上的要么不做，要做直接具有无法比拟的优势&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;原本做实业的人都比较低调，但是在互联网，大家都挺张扬的，所以也要慢慢改改这个毛病&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;公司 2012 年就已经拿到央行发的第三方支付牌照，并且与政府单位，银行有着很好的合作关系。我们将要做的一些产品和项目，都具有实际的应用场景和社会应用价值。也就是其实就产品和项目本身来说都挺靠谱的&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;公司现有产品 有 App-&lt;a href="http://www.one-pass.cn/index-2.html" rel="nofollow" target="_blank" title=""&gt;触易付&lt;/a&gt; 和 预付卡业务 &lt;a href="http://www.jg365.cn" rel="nofollow" target="_blank" title=""&gt;www.jg365.cn&lt;/a&gt; ，新的项目和产品在不断打造中。。。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;靠谱的项目，我们需要靠谱的人来做&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;ul&gt;
&lt;li&gt;如果你已经厌烦了不停的做一些类似的项目，感觉自己的能力没有办法得到提高&lt;/li&gt;
&lt;li&gt;如果你有很好的想法，而你实际对产品的功能设计没有多大的发言权&lt;/li&gt;
&lt;li&gt;&lt;p&gt;如果你还没有开发一个让你自己也满意的产品&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;也许，我们这里可以，因为：&lt;/p&gt;

&lt;p&gt;1. 我们喜欢有想法的人
                2. 我们喜欢有想法，并能去讨论论证，最后能实现的人
                3. 我们喜欢懂业务的技术人员
                4. 我们喜欢把产品当做自己的孩子一样来要求，来关心的人&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;p&gt;&lt;strong&gt;我们是这样的团队&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cloud thinking&lt;/li&gt;
&lt;li&gt;快速与专注&lt;/li&gt;
&lt;li&gt;澎湃的互联网血液&lt;/li&gt;
&lt;li&gt;Geek 精神&lt;/li&gt;
&lt;li&gt;一流的技术与运营团队，培训与工作并重&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2014/2affa3d2b6c74d9d61bcaac48d209ff2.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/263ed2b1c54fab6b142cae4a3379bff5.jpg" title="" alt=""&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;strong&gt;我们需要什么样的人？&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ruby 工程师&lt;/li&gt;
&lt;li&gt;IOS 开发工程师&lt;/li&gt;
&lt;li&gt;Android 开发工程师&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;p&gt;&lt;strong&gt;关于 Ruby 工程师&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;你是一个有独立见解、有一定经验的 Ruby 开发员，愿意与其他成员深入探讨技术问题，敢于承担工作，能够与产品负责人或管理层沟通。&lt;/li&gt;
&lt;li&gt;乐于与其他程序员共同工作，适应快速的业务和产品开发流程&lt;/li&gt;
&lt;li&gt;能够对进行中的项目有所贡献，能够立刻着手任何阶段的开发工作&lt;/li&gt;
&lt;li&gt;能够适应并参与 Scrum 敏捷导向的项目开发&lt;/li&gt;
&lt;li&gt;能够对建议的方案以及技术问题进行研究和试验&lt;/li&gt;
&lt;li&gt;是一个主动自发的人，能够寻求最优化的方案，并与团队保持交流&lt;/li&gt;
&lt;li&gt;有过 OO 开发经验&lt;/li&gt;
&lt;li&gt;能够进行软件产品的单元/行为/综合测试&lt;/li&gt;
&lt;li&gt;及时交付&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;任职条件&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;致力于 TDD，BDD 以及极限开发模型（比如协同开发）&lt;/li&gt;
&lt;li&gt;熟悉 Ruby 及 Ruby 框架（Rails 3+4，Grape 等等），精通 RESTful Web 服务&lt;/li&gt;
&lt;li&gt;对 JavaScript 有全面的知识和热情&lt;/li&gt;
&lt;li&gt;精通关系数据库和 NoSQL 数据库（PostgreSQL，MongoDB 等等）&lt;/li&gt;
&lt;li&gt;熟悉 Git&lt;/li&gt;
&lt;li&gt;熟悉 HTML5，CSS3，精通扩展库（SASS 或 LESS）优先考虑。OO 分析和设计&lt;/li&gt;
&lt;li&gt;精通单元测试（RSpec，Cucumber，Jasmine，Selenium，等等）——对于测试方法有自己的见解，能够快速地学习、客观地判断&lt;/li&gt;
&lt;li&gt;对于 application 设计有全面的知识&lt;/li&gt;
&lt;li&gt;&lt;p&gt;对于手头的工作有一种真正的热情&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;职位薪资:10k-20k&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;p&gt;&lt;strong&gt;关于福利&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;靠谱的公司当然有靠谱的福利。具有竞争力的薪资，舒适的工作环境，五险一金，年假，饭贴该有的我们都有。聚餐，teambuilding，员工活动，节假日，生日福利我们也有。当然，时不时的我们再来点小惊喜。&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;strong&gt;联系方式&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;公司地址：上海浦东民生路 上海信息大厦&lt;/li&gt;
&lt;li&gt;公司网址：&lt;a href="http://app.one-pass.cn/" rel="nofollow" target="_blank"&gt;http://app.one-pass.cn/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;简历投递至 hr@cyt-tech.com&lt;/li&gt;
&lt;li&gt;同时注明：姓名 + 应聘职位+Ruby China&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>wangping</author>
      <pubDate>Fri, 05 Dec 2014 10:33:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/23039</link>
      <guid>https://ruby-china.org/topics/23039</guid>
    </item>
    <item>
      <title>关于 rainbows + grape 的返回数据的编码</title>
      <description>&lt;p&gt;项目使用 rainbows + grape，然后返回数据的数据类型是 json
可是问题是：&lt;/p&gt;

&lt;p&gt;项目里面： &lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="ss"&gt;:test&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;str&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'中文'&lt;/span&gt;
  &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encdoing&lt;/span&gt;   &lt;span class="c1"&gt;#utf-8&lt;/span&gt;
  &lt;span class="n"&gt;a&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输出的是 utf-8，但是
当其他有调用这个接口的时候，收到的返回值的数据类型不是 utf-8
求解答啊！！&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Fri, 28 Nov 2014 14:58:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/22912</link>
      <guid>https://ruby-china.org/topics/22912</guid>
    </item>
    <item>
      <title>关于身份证认证接口，或者相关供应商</title>
      <description>&lt;p&gt;如题，关于身份证的认证，谁知道哪里有接口提供的？收费的也行，除了那个一次五元的&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Fri, 31 Oct 2014 17:33:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/22384</link>
      <guid>https://ruby-china.org/topics/22384</guid>
    </item>
    <item>
      <title>Ruby 也能进行 iOS 开发了，很牛逼的样子啊</title>
      <description>&lt;p&gt;不小心在   &lt;a href="https://ruby-china.org/topics/21782" rel="nofollow" target="_blank"&gt;https://ruby-china.org/topics/21782&lt;/a&gt; 看到 RubyMotion 这个东东，感受到也许以后 ios 再也不用看到那么头疼的东西了，很长的一些命名，繁琐的格式。
下面是一个对 RubyMotion 之父的采访
&lt;a href="http://www.csdn.net/article/2012-08-15/2808701" rel="nofollow" target="_blank"&gt;http://www.csdn.net/article/2012-08-15/2808701&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.csdn.net/article/2013-02-27/2814277-why-i-choose-rubymotion-but-not-objc-for-ios-dev" rel="nofollow" target="_blank"&gt;http://www.csdn.net/article/2013-02-27/2814277-why-i-choose-rubymotion-but-not-objc-for-ios-dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;RubyMotion 出来的不久，对于他的未来我想还是很值得期待的，可以并且值得关注一下哦。&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Sat, 04 Oct 2014 07:25:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/21837</link>
      <guid>https://ruby-china.org/topics/21837</guid>
    </item>
    <item>
      <title>有没有啥爬虫案例可供参考的啊？</title>
      <description>&lt;p&gt;有没有啥爬虫案例可供参考的啊？，我想写写爬虫，目前不知道如何下手&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Sun, 21 Sep 2014 17:31:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/21644</link>
      <guid>https://ruby-china.org/topics/21644</guid>
    </item>
    <item>
      <title>rails 开源的可以写日报的系统，求推荐啊！！</title>
      <description>&lt;p&gt;大家推荐推荐写日报系统吧。恩，可以供内部使用就行了。&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Fri, 19 Sep 2014 20:09:04 +0800</pubDate>
      <link>https://ruby-china.org/topics/21621</link>
      <guid>https://ruby-china.org/topics/21621</guid>
    </item>
    <item>
      <title>[上海] 触易付诚聘诚聘 Ruby 攻城狮，前端工程师，绝对靠谱！</title>
      <description>&lt;p&gt;&lt;strong&gt;公司简介&lt;/strong&gt;
   上海触易通科技发展有限公司是一家专业从事移动支付平台技术研究开发及运营的高科技公司，拥有 IT、互联网、金融、支付等各类相关行业的精英人才团队作为技术储备和研发支撑，具备现代化的高效管理制度保障。
    公司以创新先进的技术、前瞻性的行业分析预见眼光、具有潜力的商业模式、极强的社会责任感，赢得了国内各大金融机构及商业零售单位等合作伙伴的高度认同。国内各大商业银行、证券基金公司、保险机构以及餐饮、娱乐、商场、超市、美容美发、休闲健身等各大商户均与公司建立了深度的战略合作关系
    公司研发运营的“触易付”移动支付平台将为用户提供安全、便捷、时尚的手机支付应用，为商家提供可靠、迅速、新颖的收银结算渠道。
    在互联网时代中，移动互联网应用的发展开始进入爆发式增长的时期，移动支付必将成为支付行业的趋势。公司将立足于移动支付行业，不断创新，诚信服务，专业、专注为广大消费者和商户建设安全可靠、便捷高效的移动支付平台。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ruby 工程师&lt;/strong&gt;
职位描述
工作性质：全职   职位类别：软件工程师
你是一个有独立见解、有一定经验的 Ruby 开发员，愿意与其他成员深入探讨技术问题，敢于承担工作，能够与产品负责人或管理层沟通。 
乐于与其他程序员共同工作，适应快速的业务和产品开发流程 
能够对进行中的项目有所贡献，能够立刻着手任何阶段的开发工作 
能够适应并参与 Scrum 敏捷导向的项目开发 
能够对建议的方案以及技术问题进行研究和试验 
是一个主动自发的人，能够寻求最优化的方案，并与团队保持交流 
有过 OO 开发经验 
能够进行软件产品的单元/行为/综合测试 
及时交付 
任职条件
  致力于 TDD，BDD 以及极限开发模型（比如协同开发） 
熟悉 Ruby 及 Ruby 框架（Rails 3+4，Sinatra，等等），精通 RESTful Web 服务 
对 JavaScript 有全面的知识和热情 
精通关系数据库和 NoSQL 数据库（PostgreSQL，MongoDB，等等） 
熟悉 Git (DVCS)，持续整合的工作流和工具（TeamCity，etc) 
熟悉 HTML5，CSS3，精通扩展库（SASS 或 LESS）优先考虑。OO 分析和设计，有 SDLC 开发实践 
精通单元测试（RSpec，Cucumber，Jasmine，Selenium，等等）——对于测试方法有自己的见解，能够快速地学习、客观地判断 
对于 application 设计有全面的知识 
对于手头的工作有一种真正的热情&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;web 前端工程师&lt;/strong&gt;
职位职能：Web 前端开发&lt;br&gt;
职位描述:
岗位职责：
1.根据需求完成 HTML5 移动应用编程方面的工作
2.配合后台工程师一起研讨技术实现方案，进行应用及系统整合
3.持续的优化前端体验和页面响应速度，并保证兼容性和执行效率&lt;/p&gt;

&lt;p&gt;任职条件：
1、计算机或相关专业本科学历，2 年以上 web 前端，webapp 开发经验；
2、精通 html5、Css3 等主流前端技术；&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;能够高效进行切图，编写 html，div，css，js 文件；并对各种主流浏览器做兼容调试与修改；
4、熟悉使用 iScroll,Jquery Mobile、Sencha Touch Bootstrap 等一种或者几种框架；&lt;/li&gt;
&lt;li&gt;对移动设备的操作特性有了解，包括手机和平板；&lt;/li&gt;
&lt;li&gt;较强的团队合作意识；&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;加分项：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;有 html5 web app 开发经验优先；&lt;/li&gt;
&lt;li&gt;有基于 Titanium 或 PhoneGap 开发经验者优先；&lt;/li&gt;
&lt;li&gt;了解微信开放平台，有微信订阅号、服务号、微站点开发经验者优先。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ps:我们的工作环境，有兴趣的大牛可以投递简历到 &lt;strong&gt;hr@cyt-tech.com&lt;/strong&gt; 或者 qq：525399584～～
公司 party
&lt;img src="https://l.ruby-china.com/photo/2014/e471661d6ef1f1af629445845fbf30fc.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/4e0714f48a708c12ccc56a94c72635ca.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/9042fd4373dc3ca06ece4fafa108a4d2.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/484734c40b2dc6cb421b56517c24181a.jpg" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;新照片
&lt;img src="https://l.ruby-china.com/photo/2014/4e1900f94a750d7c779e1364ccccce5f.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/b7b2e9993b267301e95c86d0ec70631f.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/e8e172e39055cbba583f17af1f9ae83f.jpg" title="" alt=""&gt;
新出炉的植物~~！~
&lt;img src="https://l.ruby-china.com/photo/2014/967993dc783ebcb50c0cd1e2d4cc75f2.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/ed4b6562696b28ad83c34c1205f68c25.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/613ebd8afece643b672e28bb3d80b425.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/fe0c0df1ee5dba1fa430cc14310cd5e0.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/6dde124e4a147df119918a413307cddc.jpg" title="" alt=""&gt;
&lt;img src="https://l.ruby-china.com/photo/2014/cd751023f1aeac0a583db72f1cbc7289.jpg" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Wed, 17 Sep 2014 19:59:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/21575</link>
      <guid>https://ruby-china.org/topics/21575</guid>
    </item>
    <item>
      <title>Rainbows 怎么开守护进程？</title>
      <description>&lt;p&gt;rainbows 怎么开守护进程？&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Thu, 21 Aug 2014 20:53:04 +0800</pubDate>
      <link>https://ruby-china.org/topics/21167</link>
      <guid>https://ruby-china.org/topics/21167</guid>
    </item>
    <item>
      <title>手机通过 api 访问服务器的类似 session 的机制该怎么处理？</title>
      <description>&lt;p&gt;如题，手机通过 api 访问服务器的类似于 session 的会话机制该怎么处理？据我所知，手机访问是不保存 session 和 cookies，那有什么比较好的处理方式了，我想到的就是利用数据库。&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Wed, 06 Aug 2014 15:34:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/20870</link>
      <guid>https://ruby-china.org/topics/20870</guid>
    </item>
    <item>
      <title>.dll 文件在 ruby 里面如何调用？</title>
      <description>&lt;p&gt;.dll 文件在 ruby 里面如何调用？&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Wed, 23 Jul 2014 17:41:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/20644</link>
      <guid>https://ruby-china.org/topics/20644</guid>
    </item>
    <item>
      <title>ruby 里面有 DES/ECB/PKCS5Padding 模式的 DES 的实现不？</title>
      <description>&lt;p&gt;ruby 里面有 DES/ECB/PKCS5Padding 模式的 DES 的实现不？&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Mon, 21 Jul 2014 17:58:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/20609</link>
      <guid>https://ruby-china.org/topics/20609</guid>
    </item>
    <item>
      <title>rainbows 有相当于 rails -d 的命令吗</title>
      <description>&lt;p&gt;如题所问？？&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Fri, 18 Jul 2014 17:08:46 +0800</pubDate>
      <link>https://ruby-china.org/topics/20578</link>
      <guid>https://ruby-china.org/topics/20578</guid>
    </item>
    <item>
      <title>OpenSSL::PKey::PKey 的例子，求解惑</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Sign me!'&lt;/span&gt;
&lt;span class="n"&gt;digest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Digest&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SHA256&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;span class="n"&gt;pkey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;PKey&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;RSA&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;signature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pkey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;pub_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pkey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;public_key&lt;/span&gt;
&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;pub_key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# =&amp;gt; true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如上是 ruby-doc 的 example，我只想知道 digest 的作用是什么？也就是摘要的作用？&lt;/p&gt;

&lt;p&gt;我看它加密的时候是随机生成的话，那解密的话还得把这个拿过去解密&lt;/p&gt;

&lt;p&gt;网上的说法：
对于长度小于 2^64 位的消息，SHA1 会产生一个 160 位的消息摘要。当接收到消息的时候，这个消息摘要可以用来验证数据的完整性。在传输的过程中，数据很可能会发生变化，那么这时候就会产生不同的消息摘要。SHA1 有如下特性：不可以从消息摘要中复原信息；两个不同的消息不会产生同样的消息摘要&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Mon, 14 Jul 2014 10:10:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/20478</link>
      <guid>https://ruby-china.org/topics/20478</guid>
    </item>
    <item>
      <title>关于 ruby socket，编码的问题</title>
      <description>&lt;p&gt;直接贴代码：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TCPSocket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hostname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml&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="n"&gt;r_xml&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readlines&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;x&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;r_xml&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;r_xm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打印的结果里面由于有中文：&lt;/p&gt;

&lt;p&gt;&amp;lt;?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\" ?&amp;gt;12312312WLPT_Err1003\xBD\xE2\xCE\xF6\xB7\xFE\xCE\xF1\xC6\xF7\xB7\xB5\xBB\xD8\xCA\xFD\xBE\xDD\xB3\xF6\xB4\xED1\xA3\xA8\xC8\xE7\xB9\xFB\xB8\xC3\xB1\xCA\xBD\xBB\xD2\xD7\xCE\xAA\xD5\xCA\xCE\xF1\xBD\xBB\xD2\xD7\xA3\xAC\xD4\xF2\xB4\xA6\xC0\xED\xBD\xE1\xB9\xFB\xB2\xBB\xC8\xB7\xB6\xA8\xA3\xAC\xC7\xEB\xCF\xC8\xBA\xCB\xB6\xD4\xC3\xF7\xCF\xB8\xA3\xA1\xA3\xA9\r\n&lt;/p&gt;

&lt;p&gt;然后这个的编码被制定为虚拟编码 ASCII-8BIT&lt;/p&gt;

&lt;p&gt;这个如何还原为中文，各种转码都试过了&lt;/p&gt;</description>
      <author>wangping</author>
      <pubDate>Fri, 11 Jul 2014 17:18:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/20445</link>
      <guid>https://ruby-china.org/topics/20445</guid>
    </item>
  </channel>
</rss>
