<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>vincent178 (vincent178)</title>
    <link>https://ruby-china.org/vincent178</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>[上海] 你出邮费免费送书</title>
      <description>&lt;p&gt;家里书实在放不下了，免费送一波书。。。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/vincent178/2efe8ad9-607b-49e8-bd8f-34f297a69995.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;微信 aHVhbmdsaWFuZzExMTM= base64&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Sat, 12 Apr 2025 18:20:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/44125</link>
      <guid>https://ruby-china.org/topics/44125</guid>
    </item>
    <item>
      <title>[上海] 急聘 凯业必达招聘一名 Ruby 工程师 有经验 13k-20k*13 无加班</title>
      <description>&lt;p&gt;凯业必达信息技术（上海）有限公司是美国最大的网络招聘公司之一 CareerBuilder 在中国设立的技术支持和研发机构。在全球具有超过 1400 多家的合作伙伴。其中包括 MSN, AOL，和超过 120 家新闻媒体机构。&lt;/p&gt;

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

&lt;ol&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;/ol&gt;

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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;熟练 Ruby on Rails 开发，如有 PHP 相关经验加分&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;有为 Web 开发可扩展的解决方案的经验&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;具有敏捷开发经验&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;熟练使用 GitHub，熟悉代码审查和代码走读&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;熟悉 RESTful API 开发，遵守整体框架开发原则&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;熟悉 MySQL, SQL Server 数据库，同时熟悉非关系型数据库者优先考虑&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;熟悉 AWS Services，并有实际操作经验者，优先考虑&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;本公司于 2008 年在上海陆家嘴建立，团队稳定，技术成熟，外企文化，适合不喜欢官僚作风的小伙伴，公司最大优势在于，绝对没有加班，每周 5 天，每天 9-18，病假 5 天，年假 10 天，5 年以上老员工年假 15 天，上海分公司现有 20 人左右开发团队，无销售/市场人员，纯技术中心，从刚毕业的新人，到工作 20 年的老员工都有，非常注重 work life balance！办公室氛围极其和谐！是一份可以干到退休的互联网工作！&lt;/p&gt;

&lt;p&gt;额外商业保险，体检，学习经费等福利都健全，就等你的加入！&lt;/p&gt;

&lt;p&gt;联系方式：jia.ni@careerbuilder.com&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Mon, 28 Sep 2020 10:17:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/40448</link>
      <guid>https://ruby-china.org/topics/40448</guid>
    </item>
    <item>
      <title>[上海][GOAT] 内推 招聘资深前端 / 后端 (Ruby/Go)/iOS/Android/ 技术经理</title>
      <description>&lt;p&gt;全球最大的正品球鞋交易平台 GOAT 进入中国啦，成立于 2015 年，GOAT 开创了球鞋鉴别加发货的商业模式，为球鞋转售买卖提供安全及可靠的服务，同时提供从日常款式到稀有限量款等多达 40,000 余种的选择。
GOAT Group 旗下品牌 GOAT 和 Flight Club 通过零售店、电商及移动应用程序提供丰富的正品球鞋购买选择。通过创新的技术和服务，GOAT Group 改变了球鞋零售行业的格局，并迅速成为值得信任的正品球鞋交易平台。
薪资福利高于是市场平均水平！&lt;/p&gt;

&lt;p&gt;后端不要求英文，其他最好是有一定的英文书写和表达。
简历可以发给我 vincent.huang@goat.com&lt;/p&gt;

&lt;p&gt;目前招募以下职位：&lt;/p&gt;
&lt;h3 id="Senior Backend Engineer"&gt;Senior Backend Engineer&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://i.loli.net/2019/06/26/5d12f394bc86113983.jpg" title="" alt="271561345878_.pic_hd.jpg"&gt;&lt;/p&gt;
&lt;h3 id="Senior iOS Engineer"&gt;Senior iOS Engineer&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://i.loli.net/2019/06/26/5d12f394df3b716243.jpg" title="" alt="261561345834_.pic_hd.jpg"&gt;&lt;/p&gt;
&lt;h3 id="Senior Android Engineer"&gt;Senior Android Engineer&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://i.loli.net/2019/06/26/5d12f394bce7d20675.jpg" title="" alt="281561345886_.pic_hd.jpg"&gt;&lt;/p&gt;
&lt;h3 id="Senior DevOps Engineer"&gt;Senior DevOps Engineer&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;In this role you will:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Design core infrastructure and platform components for a fast-growing start-up&lt;/li&gt;
&lt;li&gt;Contribute alongside a backend engineer to application development&lt;/li&gt;
&lt;li&gt;Scale for capacity and traffic spikes of 10x normal load during high-volume events&lt;/li&gt;
&lt;li&gt;Implement defenses against security threats, bots, and malicious actors&lt;/li&gt;
&lt;li&gt;Be on call for infrastructure-level issues that haven’t already been automated&lt;/li&gt;
&lt;li&gt;Automate infrastructure so that pager escalations continue to be rare&lt;/li&gt;
&lt;li&gt;Improve performance of China hosted websites and mobile apps communicating with US hosted backends&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;We are looking for:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Education: BS/MS in Computer Science or a related technical field preferred&lt;/li&gt;
&lt;li&gt;5+ years of Software Engineering experience with a focus on infrastructure and cloud architecture&lt;/li&gt;
&lt;li&gt;Extensive experience managing complex technical architecture deployed in the cloud&lt;/li&gt;
&lt;li&gt;Experience building and troubleshooting network connectivity between cloud providers in the US and China&lt;/li&gt;
&lt;li&gt;Experience working with AliCloud and AWS China&lt;/li&gt;
&lt;li&gt;Experience writing and deploying Infrastructure as Code, i.e. Terraform, Cloudformation, Salt, Ansible, etc.&lt;/li&gt;
&lt;li&gt;Strong programming skills, i.e. Ruby, Go&lt;/li&gt;
&lt;li&gt;Experience evaluating and using open source solutions that fit business needs&lt;/li&gt;
&lt;li&gt;Experience working with local Chinese startups a plus&lt;/li&gt;
&lt;li&gt;Excellent personal, verbal and written communication skills in both English and Mandarin&lt;/li&gt;
&lt;li&gt;Understanding of the sneaker market and sneaker culture within China is a plus&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="WeChat Engineer/Frontend Engineer"&gt;WeChat Engineer/Frontend Engineer&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;In this role you will:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Further develop the existing WeChat Mini Program, adding additional features and functionality for the user base&lt;/li&gt;
&lt;li&gt;Collaborate with Engineers, Mobile Designers, and Product Manager to build, implement, test, and deploy more advanced versions of the GOAT WeChat Mini Program across iOS and Android&lt;/li&gt;
&lt;li&gt;Lead the entire software development process, provide input related to the technical design of new applications, systems and architecture&lt;/li&gt;
&lt;li&gt;Develop innovative solutions that meet Chinese market needs with respect to functionality, performance, scalability, and reliability while meeting realistic implementation schedules and adhering to development goals and principles&lt;/li&gt;
&lt;li&gt;Contribute to the innovation, analysis, design, critique and continual improvement of the app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;We are looking for:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bachelor's degree in Computer Science, Technology or related field&lt;/li&gt;
&lt;li&gt;5+ years hand-on coding experience of JavaScript, HTML5, CSS3 and related browser technologies&lt;/li&gt;
&lt;li&gt;Experience in popular Frontend framework and related ecosystem, React is preferred&lt;/li&gt;
&lt;li&gt;Experience creating WeChat Mini Programs from US apps from development to integration&lt;/li&gt;
&lt;li&gt;Understanding of Webpack and related stacks&lt;/li&gt;
&lt;li&gt;Excellent personal, verbal and written communication skills in both English and Mandarin&lt;/li&gt;
&lt;li&gt;Experience with iOS or Android app development is a strong plus&lt;/li&gt;
&lt;li&gt;Understanding of the sneaker market and sneaker culture within China is a plus&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Engineering Manager"&gt;Engineering Manager&lt;/h3&gt;</description>
      <author>vincent178</author>
      <pubDate>Wed, 26 Jun 2019 12:39:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/38747</link>
      <guid>https://ruby-china.org/topics/38747</guid>
    </item>
    <item>
      <title>oauth 应用页面挂了?</title>
      <description>&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2016/6e7c63c2408dc9a1e3e8baf6df4641fe.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Sun, 15 May 2016 13:21:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/30017</link>
      <guid>https://ruby-china.org/topics/30017</guid>
    </item>
    <item>
      <title>React.js 构建的 Ruby China mobile Web App</title>
      <description>&lt;h2 id="我不说话，我先上图"&gt;我不说话，我先上图&lt;/h2&gt;&lt;h5 id="社区页面"&gt;社区页面&lt;/h5&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2016/8a57de7420ae3217db02e03f6c6b6b9c.png" width="480px" alt=""&gt;&lt;/p&gt;
&lt;h5 id="话题详细"&gt;话题详细&lt;/h5&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2016/e7922d18874898f7cb3e266d72af29e5.png" width="480px" alt=""&gt;&lt;/p&gt;
&lt;h5 id="话题回复"&gt;话题回复&lt;/h5&gt;&lt;h2 id=""&gt;&lt;img src="https://l.ruby-china.com/photo/2016/ed2ba239aa989d44c0c23383e51f2e7b.png" width="480px" alt=""&gt;&lt;/h2&gt;&lt;h3 id="Dev Stack"&gt;Dev Stack&lt;/h3&gt;
&lt;p&gt;因为学习 react 还有 redux 写的这个项目，所以这个项目肯定有这两个库，用 react-router 处理 url 的事情，将来准备用 react-motion 做 animation。
开发中用的是 ES6 的 js，webpack 打包所有的资源，css 用到了 postcss，都 超！级! 好！用！&lt;/p&gt;
&lt;h3 id="目的"&gt;目的&lt;/h3&gt;
&lt;p&gt;目的是做一个类似 twitter 样子的 ruby china mobile web 客户端，在这个过程中能够尝试各种新的前端技术。&lt;/p&gt;
&lt;h3 id="进展"&gt;进展&lt;/h3&gt;
&lt;p&gt;开发进展移步 github:  &lt;a href="https://github.com/vincent178/gt" rel="nofollow" target="_blank" title=""&gt;https://github.com/vincent178/gt&lt;/a&gt;，上面有开发的进展
生产环境直接点击：&lt;a href="http://vincent178.github.io" rel="nofollow" target="_blank" title=""&gt;http://vincent178.github.io&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="心得"&gt;心得&lt;/h3&gt;
&lt;p&gt;学习到很多移动端浏览器的处理：
比如 ios 没有 onScroll 事件，要用 onTouch 来模拟&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;handleScroll() {

  console.log("OnScroll");
  if (this.getScrollXY()[1] &amp;gt;=  this.getDocHeight() - window.innerHeight - 100) {
    console.log("[NativeScroll] this.props.dispatch(this.props.scrollFunc())");
    this.props.dispatch(this.props.scrollFunc());
  }
}

handleTouchMove(e) {
  this.handleScroll(e);
}

render() {
  return (
    &amp;lt;div onTouchMove={this.handleTouchMove.bind(this)} onScroll={this.handleScroll.bind(this)}&amp;gt;
      {this.props.children}
    &amp;lt;/div&amp;gt;
  );
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ios 的 click 会有一个延迟（主要是为了判断 tap 还是 double tap）
react 有个库可以去除这个延迟，用法也很简单&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;injectTapEventPlugin();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还有对于我开发 redux 影响很深的一篇文章，对于写 redux 有种 一拍脑袋，嘿，就该这样的感觉 :) &lt;a href="https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.5yz7kvug0" rel="nofollow" target="_blank"&gt;https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.5yz7kvug0&lt;/a&gt; &lt;/p&gt;

&lt;hr&gt;
&lt;h3 id="关键来了，欢迎大家使用http://vincent178.github.io,  围观https://github.com/vincent178/gt 和 star"&gt;关键来了，欢迎大家使用&lt;a href="http://vincent178.github.io" rel="nofollow" target="_blank"&gt;http://vincent178.github.io&lt;/a&gt;,  围观&lt;a href="https://github.com/vincent178/gt" rel="nofollow" target="_blank"&gt;https://github.com/vincent178/gt&lt;/a&gt; 和 star&lt;/h3&gt;</description>
      <author>vincent178</author>
      <pubDate>Wed, 27 Apr 2016 10:53:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/29865</link>
      <guid>https://ruby-china.org/topics/29865</guid>
    </item>
    <item>
      <title>[上海, 陆家嘴] 凯业必达招聘 Rails 开发工程师</title>
      <description>&lt;p&gt;CareerBuilder Shanghai is looking for a self-motivated, intelligent and energetic RoR Developer who is experienced in RoR but also eager to learning new cutting edge development solutions. This opportunity will give you the chance to work with Careerbuilder US and France teams to optimize existing client facing solutions and develop new ideas using the most efficient technologies. Utilizing lean and agile software processes, the team works closely with the business and other technical teams in designing, implementing, and maintaining scalable solutions to meet business needs.&lt;/p&gt;

&lt;p&gt;Requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;     Ruby-required(Rails 3+4, Sinatra, etc) -Experience with RESTful Web services&lt;/li&gt;
&lt;li&gt;     Javascript, HTML/CSS, PHP knowledge preferred.&lt;/li&gt;
&lt;li&gt;     Dedication to TDD &amp;amp; BDD, and XP techniques (paired programming, etc). Versed in unit testing&lt;/li&gt;
&lt;li&gt;     Thorough knowledge of application design best practices&lt;/li&gt;
&lt;li&gt;     Work with Scrum product owners and other business users to ensure that requirements are being met by code produced&lt;/li&gt;
&lt;li&gt;     Are a self-starter who seeks out best solutions for potential problems, communicating them continuously with the team&lt;/li&gt;
&lt;li&gt;     Spoken and Written English required&lt;/li&gt;
&lt;li&gt;     Travel to US and France offices maybe required time to time&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;工程师内推，有出国培训 (美，法) 的机会，有兴趣的话请发邮件给我 liang.huang (a) careerbuilder.com&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Mon, 28 Jul 2014 17:48:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/20717</link>
      <guid>https://ruby-china.org/topics/20717</guid>
    </item>
    <item>
      <title>配合 iTerm2 实现快速 tmux 窗口切换小技巧</title>
      <description>&lt;p&gt;在 tmux 使用的过程中，比较恼人的是切换窗口。&lt;/p&gt;

&lt;p&gt;干活的时候，我一般是 tmux 开 3 个窗口，第一个启动 server, 第二个跑 rspec 测试，第三个开 vim 方便开发，
会在调试和测试的过程中频繁切换窗口，非常痛苦，有个解决方案就是利用 iTerm2 的&lt;code&gt;Send Hex Code&lt;/code&gt; 做 key map.&lt;/p&gt;

&lt;p&gt;我现在使用的 tmux prefix 是 &lt;code&gt;'Ctrl+\'&lt;/code&gt;,  先在下面网站找到相对应的十六进制的值，然后添加 tmux 的命令对应的十六进制代码到 iTerm 里面的 key map 配置。&lt;/p&gt;

&lt;p&gt;我现在的 iTerm2 的 Key Map 的截图，通过这样的设置我就可以使用 command + 1, 2 ,3 来切换 tmux 的窗口了，非常方便.
&lt;img src="https://dl.dropboxusercontent.com/u/102253480/Blog/key-map-screen-shot.png" title="Screen Shot" alt="alt Screen Shot"&gt;&lt;/p&gt;

&lt;p&gt;关于这个技巧的更详细用法，请参考&lt;a href="http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/" rel="nofollow" target="_blank" title=""&gt;这篇&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;两个查询十六进制网站
&lt;a href="http://ascii-table.com/" rel="nofollow" target="_blank" title=""&gt;ASCII code&lt;/a&gt; 
&lt;a href="http://ascii-table.com/control-chars.php" rel="nofollow" target="_blank" title=""&gt;Control characters&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;广告广告：&lt;a href="https://github.com/vincent178/dotfiles" rel="nofollow" target="_blank" title=""&gt;我的 dotfiles&lt;/a&gt;&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Tue, 25 Mar 2014 17:09:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/18159</link>
      <guid>https://ruby-china.org/topics/18159</guid>
    </item>
    <item>
      <title>英语句子翻译求教</title>
      <description>&lt;p&gt;最近在看 ios 文档&lt;code&gt;Concurrency and Application Design&lt;/code&gt;，关于 Dispatch Queues 中的介绍有几句，理解起来很费力，求大神帮忙解释。&lt;/p&gt;

&lt;p&gt;上文是这句：
Dispatch queues have other benefits:&lt;/p&gt;

&lt;p&gt;看不懂这三句：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;They provide the speed of tuned assembly.&lt;/li&gt;
&lt;li&gt;They do not trap to the kernel under load.&lt;/li&gt;
&lt;li&gt;They scale gracefully under contention.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;谢谢&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Tue, 03 Sep 2013 09:22:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/13838</link>
      <guid>https://ruby-china.org/topics/13838</guid>
    </item>
    <item>
      <title>Github 无法登陆了</title>
      <description>&lt;p&gt;500 错误&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Thu, 22 Aug 2013 15:21:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/13521</link>
      <guid>https://ruby-china.org/topics/13521</guid>
    </item>
    <item>
      <title> [解决] 无密码登陆 VPS</title>
      <description>&lt;p&gt;Update:
分享一点东西，学到最多的是楼主呀。谢谢&lt;a href="/yesmeck" class="user-mention" title="@yesmeck"&gt;&lt;i&gt;@&lt;/i&gt;yesmeck&lt;/a&gt; &lt;a href="/046569" class="user-mention" title="@046569"&gt;&lt;i&gt;@&lt;/i&gt;046569&lt;/a&gt;  &lt;a href="/doitian" class="user-mention" title="@doitian"&gt;&lt;i&gt;@&lt;/i&gt;doitian&lt;/a&gt; &lt;a href="/xiaoronglv" class="user-mention" title="@xiaoronglv"&gt;&lt;i&gt;@&lt;/i&gt;xiaoronglv&lt;/a&gt; &lt;a href="/blacktulip" class="user-mention" title="@blacktulip"&gt;&lt;i&gt;@&lt;/i&gt;blacktulip&lt;/a&gt; &lt;a href="/bhuztez" class="user-mention" title="@bhuztez"&gt;&lt;i&gt;@&lt;/i&gt;bhuztez&lt;/a&gt;
论分享的重要性!!!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;我也是边学变弄，折腾服务器的管理，感觉要学东西的好多。学了一点就赶紧记录下来，和大家一起分享。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;通常登陆服务器我们都是通过 SSH 的方式。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SSH 提供了口令和密钥两种用户验证方式，这两者都是通过密文传输数据的，不同的是，口令用户验证方式传输的是用户的账户名和密码，这要求输入的密码具有足够的复杂度才能具有更高的安全性。而基于密钥的安全验证必须为用户自己创建一对密钥，并把共有的密钥放在需要访问的服务器上。当需要连接到 SSH 服务器上时，客户端就会向服务器发出请求，请求使用客户端的密钥进行安全验证。服务器收到请求之后，先在该用户的根目录下寻找共有密钥，然后把它和发送过来的公有密钥进行比较。如果两个密钥一致，服务器就用公有的密钥加密“质询”，并把它发送给客户端。客户端收到质询之后，就可以用本地的私人密钥解密再把它发送给服务器。这种方式是相当安全的。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;通过密钥登陆 SSH 需要两个部分的设置。&lt;/p&gt;
&lt;h3 id="服务器端"&gt;服务器端&lt;/h3&gt;
&lt;p&gt;&lt;del&gt;通过 ssh-keygen 生成一对密钥，-f  是指定 key-file&lt;/del&gt;这部分应该在客户端完成！！！&lt;/p&gt;

&lt;p&gt;deploy@li610-92:~$ ssh-keygen -f ~/.ssh/blog
    Generating public/private rsa key pair.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/deploy/.ssh/blog.
    Your public key has been saved in /home/deploy/.ssh/blog.pub.
    The key fingerprint is:
    24:36:f6:de:92:c0:14:c8:f0:18:3f:0d:94:49:00:15 deploy@li610-92
    The key's randomart image is:
    +--[ RSA 2048]----+
    |.oEB++.          |
    |   ==o .         |
    |  . + B .        |
    |     * =         |
    |      o S        |
    |       o o       |
    |        + .      |
    |         .       |
    |                 |&lt;/p&gt;

&lt;p&gt;一路回车下来，密钥就生成了。然后将生成的公钥加入 authorized_keys 文件中。&lt;/p&gt;

&lt;p&gt;$ cp ~/.ssh/blog.pub ~/.ssh/authorized_keys&lt;/p&gt;

&lt;p&gt;下面就是将私钥传输回你自己的电脑，我一般使用的是 sftp.通过 sftp 登陆你的 VPS，&lt;/p&gt;

&lt;p&gt;$ get ~/.ssh/blog .ssh/&lt;/p&gt;

&lt;p&gt;这样服务器端的设置基本完成了。这时，你可以删除掉~/.ssh/blog 这个文件了。&lt;/p&gt;
&lt;h4 id="客户端"&gt;客户端&lt;/h4&gt;
&lt;p&gt;客户端主要是配置你的 ssh config 文件。&lt;/p&gt;

&lt;p&gt;$ touch ~/.ssh/config
    $ vim ~/.ssh/config
    $ Host demo
        HostName YOUR_HOSTNAME
        User YOUR_HOSTUSERNAME
        IdentityFile ~/.ssh/blog&lt;/p&gt;

&lt;p&gt;这样，大功告成。&lt;/p&gt;

&lt;p&gt;尝试一下&lt;/p&gt;

&lt;p&gt;$ ssh demo&lt;/p&gt;

&lt;p&gt;就可以成功登陆了。&lt;/p&gt;

&lt;p&gt;下一篇应该会涉及 ssh 登陆的其他安全问题。&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Sat, 17 Aug 2013 14:25:30 +0800</pubDate>
      <link>https://ruby-china.org/topics/13397</link>
      <guid>https://ruby-china.org/topics/13397</guid>
    </item>
    <item>
      <title>解决粘贴到终端 Vim 缩进错乱</title>
      <description>&lt;p&gt;当 Vim 的自动缩进打开的时候，你粘贴到终端 Vim 的 code 会出现缩进错乱的情况。当然这个问题只是出现在从其他应用里面复制内容，并且不是用的 MacVim 或者 Gui Vim 的时候。&lt;/p&gt;

&lt;p&gt;原因是在终端的 vim 中没有相应的程序来处理这个从其他应用复制粘贴的过程，所以 Vim 通过插入键盘输入的 buffer 来模拟这个粘贴的过程，这个时候 Vim 会以为这是用户输入的。&lt;/p&gt;

&lt;p&gt;问题就是出在这：当上一行结束，光标进入下一行时 Vim 会自动以上一行的的缩进为初始位置。这样就会破坏原始文件的缩进。&lt;/p&gt;

&lt;p&gt;好在 Vim 提供了 past 和 pastetoggle 选项，你只要把这一行加入你的 vimrc 文件。&lt;/p&gt;

&lt;p&gt;set pastetoggle=&lt;/p&gt;

&lt;p&gt;还有更高级的&lt;/p&gt;

&lt;p&gt;nnoremap &amp;nbsp;:set invpaste paste?
    imap  :set invpaste paste?
    set pastetoggle=&lt;/p&gt;

&lt;p&gt;这样可以在状态栏中显示 paste，不赖吧。。。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://dl.dropboxusercontent.com/u/102253480/paste.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;最后广告时间：我的 vimrc 文件
&lt;a href="https://github.com/vincent178/dotfiles/blob/master/vim/.vimrc" rel="nofollow" target="_blank" title=""&gt;https://github.com/vincent178/dotfiles/blob/master/vim/.vimrc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;谢谢&lt;a href="/Rei" class="user-mention" title="@Rei"&gt;&lt;i&gt;@&lt;/i&gt;Rei&lt;/a&gt; 的 writings.io，很好用。这篇 blog 就是在上面写的。
&lt;a href="http://vincent178.writings.io/articles/9" rel="nofollow" target="_blank"&gt;http://vincent178.writings.io/articles/9&lt;/a&gt;&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Tue, 13 Aug 2013 17:21:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/13307</link>
      <guid>https://ruby-china.org/topics/13307</guid>
    </item>
    <item>
      <title>数据处理</title>
      <description>&lt;h2 id="需求是，我要建立一个图表来展示一周的数据"&gt;需求是，我要建立一个图表来展示一周的数据&lt;/h2&gt;
&lt;p&gt;暂时我的思路是：
时间跨度为&lt;code&gt;2013-6-30&lt;/code&gt;到&lt;code&gt;2013-07-07&lt;/code&gt;,有以下三条数据&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[“2013-07-05”, 12], ["2013-07-01", 24], ["2013-06-30", 34]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题是这边如何建立一个这样的一维数组 [34, 24, 0, 0, 0, 12, 0, 0]&lt;/p&gt;
&lt;h2 id="取值原则，当天有数据则录入数据，当天无数据则为0"&gt;取值原则，当天有数据则录入数据，当天无数据则为 0&lt;/h2&gt;</description>
      <author>vincent178</author>
      <pubDate>Sun, 07 Jul 2013 17:30:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/12317</link>
      <guid>https://ruby-china.org/topics/12317</guid>
    </item>
    <item>
      <title>本地 development 刷新页面报 500 错误</title>
      <description>&lt;p&gt;求助：
今天遇到一个很奇怪的问题，在 Development 模式中，刷新页面会报 nilclass 错误，然后重启 server 后一切正常。&lt;/p&gt;

&lt;p&gt;下面是 log&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Started GET "/en/jobs/Instrument-Software-Architect/JHQ7GJ5XFBJH0YL9T9C" for 127.0.0.1 at 2013-05-15 11:04:21 +0800
Processing by CbIntl::JobsController#detail as HTML
  Parameters: {"locale"=&amp;gt;"en", "title"=&amp;gt;"Instrument-Software-Architect", "did"=&amp;gt;"JHQ7GJ5XFBJH0YL9T9C"}
IP: 127.0.0.1
  Rendered cb_intl/jobs/detail.html.erb within layouts/cb_intl/application (47.0ms)
Completed 500 Internal Server Error in 117ms
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>vincent178</author>
      <pubDate>Wed, 15 May 2013 12:06:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/10992</link>
      <guid>https://ruby-china.org/topics/10992</guid>
    </item>
    <item>
      <title>出行货 filco 茶轴键盘</title>
      <description>&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/71e3b8aed5fa26c8b768de0a34fe0947.jpg" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;13 年 3 月 16 日购入，基本没用，行货 filco，台湾产，现 700 出。&lt;/p&gt;

&lt;p&gt;联系：vincent.007.cn@gmail.com
or qq 759025981&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Mon, 15 Apr 2013 21:04:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/10225</link>
      <guid>https://ruby-china.org/topics/10225</guid>
    </item>
    <item>
      <title>thin server thread 问题</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rails s
Booting Thin
=&amp;gt; Rails 3.2.11 application starting in development on http://0.0.0.0:3000
=&amp;gt; Call with -d to detach
=&amp;gt; Ctrl-C to shutdown server
A server is already running.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;昨晚已经关机，为什么会已经有 server 在跑啊，已经我该怎么找到这个 thread，然后再杀掉呢，大神们，求解！&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Fri, 15 Mar 2013 09:46:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/9437</link>
      <guid>https://ruby-china.org/topics/9437</guid>
    </item>
    <item>
      <title>阅读 PDF 的终端 (小调查)</title>
      <description>&lt;p&gt;面对大量优秀的 Rails 电子文档，一个好的阅读终端真的非常重要。这段时间好纠结用什么看 PDF 的问题。&lt;/p&gt;

&lt;p&gt;我想在这里做个小小的调查，大家都是用什么看电子文档的呢？&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1.电脑（单屏）&lt;/li&gt;
&lt;li&gt;2.电脑（双屏）&lt;/li&gt;
&lt;li&gt;3.IPAD&lt;/li&gt;
&lt;li&gt;4.KINDLE&lt;/li&gt;
&lt;li&gt;5.其他&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, 亮出你的兵器吧～！&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Tue, 05 Mar 2013 14:47:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/9138</link>
      <guid>https://ruby-china.org/topics/9138</guid>
    </item>
    <item>
      <title>升级 Mac 时 SSD 和内存的选择</title>
      <description>&lt;p&gt;准备升级 Macbook，求推荐靠谱的内存和 SSD&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Sat, 23 Feb 2013 13:17:22 +0800</pubDate>
      <link>https://ruby-china.org/topics/8871</link>
      <guid>https://ruby-china.org/topics/8871</guid>
    </item>
    <item>
      <title>Rspec 中有没有 post delete 等方法？</title>
      <description>&lt;p&gt;在用 Rspec 和 Capybara 做测试的时候，我用到了这样一段代码
spec/features/authentication_page_spec.rb&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe "submitting to the create action" do
  before { post micropost_index_path }
  specify { response.should redirect_to(signin_path) }
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;得到了这样的错误信息&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Failure/Error: before { post micropost_index_path }
NoMethodError:
  undefined method `post' for #&amp;lt;RSpec::Core::ExampleGroup::Nested_3::Nested_2::Nested_1::Nested_1::Nested_1:0x007febde8995c8&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;求助，谢谢呀～&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Thu, 21 Feb 2013 15:04:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/8822</link>
      <guid>https://ruby-china.org/topics/8822</guid>
    </item>
    <item>
      <title>has_secure_password 关于 password_confirmation 的疑惑</title>
      <description>&lt;p&gt;各位大大，麻烦看看。
User.rb&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class User &amp;lt; ActiveRecord::Base
  validates :password, presence: true,
                       length: { minimum: 6 }
  has_secure_password
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;user_spec.rb&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe "when password confirmation is nil" do
  before { @user.password_confirmation = nil }
  it { should_not be_valid }
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试不通过，直到在 user.rb 上加上&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;validates :password_confirmation, presence: true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 has_secure_password 的源代码里有&lt;code&gt;validates_confirmation_of :password&lt;/code&gt;,还需要加 password_confirmation 的验证吗？
求解。&lt;/p&gt;</description>
      <author>vincent178</author>
      <pubDate>Mon, 18 Feb 2013 09:43:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/8730</link>
      <guid>https://ruby-china.org/topics/8730</guid>
    </item>
    <item>
      <title>好用的 Vim</title>
      <description>&lt;blockquote&gt;
&lt;p&gt;我是个 vim 小菜鸟，经过了几次删除几度辗转。
中间有 textmate，有 sublime text，现在也算在 vim 下安定下来。
正好和大家交流一下感想和我觉得不错的小技巧。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="Vim起步"&gt;Vim 起步&lt;/h2&gt;
&lt;p&gt;vim 刚上手还是很不习惯的，所以起步很重要。我觉得对新手比较友好的文章，
耗哥的&lt;a href="http://coolshell.cn/articles/5426.html" rel="nofollow" target="_blank" title=""&gt;这篇&lt;/a&gt;算是其中很不错的。
当然还有很重要的就是看 Vim 文档，在网上也可以找到 Vim 中文手册，非常值得推荐。&lt;/p&gt;
&lt;h2 id="Rails开发"&gt;Rails 开发&lt;/h2&gt;
&lt;p&gt;针对 Rails 开发，本站大大有&lt;a href="http://ruby-china.org/topics/4478" title=""&gt;这篇&lt;/a&gt;已经很详细了，相信你看完之后肯定会大有收获。&lt;/p&gt;
&lt;h2 id="Vim插件"&gt;Vim 插件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;pathogen&lt;br&gt;
包管理工具，安装插件只要整个都放在 bundle 文件夹中即可&lt;/li&gt;
&lt;li&gt;autopairs&lt;br&gt;
自动对应 ( ) [ ] { }，只要打左边的括号右边括号自动产生，光标停留在中间，还有一些进阶的功能文档中有说明&lt;/li&gt;
&lt;li&gt;nerdtree
IDE 状的树状文件图，方便查阅文件&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;update
在 nerdtree 中按 r 更新文件&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;snipMate
textmate 上移植来的功能，省心又方便&lt;/li&gt;
&lt;li&gt;rails
用 Vim 开发 Rails 的关键&lt;/li&gt;
&lt;li&gt;zencoding-vim
这个我只能说：妈妈再也不怕我写 html 了，强力推荐!!!&lt;/li&gt;
&lt;li&gt;supertab
用于自动补全&lt;/li&gt;
&lt;li&gt;ctrlp
跳转文件，在命令状态下 ctrl＋p 即可呼出。&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;update
按 F5 更新文件&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;taglist
配合 ctags 使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="其他"&gt;其他&lt;/h2&gt;
&lt;p&gt;1.开发的时候经常会四宫格的 vim 窗口，或者左右窗口边测试边开发，这里有个小技巧，可以把 ctrl + hjkl 映射成窗口跳转，使用的时候会快速不少。
2.我把 F8 映射成开关 Nerdtree，虽然现在已经很少使用了，不过有个快捷键总是个不亏的事。
3.vim 配合 ctags 也是非常棒的组合，浏览代码的利器！我这里做了一个 alias，也可以参考一下&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias cts='ctags -R --fields=+iaS --extra=+q --exclude=.git --exclude=log * --exclude=coverage'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后放上我的 MacVim 的配置，非常简单，没有多做快捷键，但我想起步用应该已经没问题了。
&lt;a href="https://github.com/Vincent178/mvim" rel="nofollow" target="_blank"&gt;https://github.com/Vincent178/mvim&lt;/a&gt;
更新&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* New theme: railscast
   A better theme for RoR development
* New plugin: vim-markdown 
   A better solution for display Markdown file in Vim
* Remove plugin: auto-pairs  
   Conflict with Chinese input
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更新
MacVim 可能会出现无法复制的情况，这个时候需要用 open 命令来代替 mvim。&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias mm='open -a MacVim
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>vincent178</author>
      <pubDate>Thu, 31 Jan 2013 16:07:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/8519</link>
      <guid>https://ruby-china.org/topics/8519</guid>
    </item>
  </channel>
</rss>
