<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>mr_night (徐敏科)</title>
    <link>https://ruby-china.org/mr_night</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>OS X 翻墙，ss 配合 proxychain &amp; polipo</title>
      <description>&lt;p&gt;###shadowsocket
&lt;a href="http://www.bandwagonhost.com/" rel="nofollow" target="_blank" title=""&gt;搬瓦工&lt;/a&gt;上买个便宜的主机，一键安装 ss 服务，然后下个 ss 客户端配置一下，
简单轻松，平时浏览网页之类的，够用！&lt;/p&gt;

&lt;p&gt;###proxychain
如果想要在命令行下下载或者安装一些必须翻墙的工具，那 ss 可能就不够用了。
proxychain 可以胜任大部分这些需求，&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;proxychains-ng
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后配置一些 config&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
localnet 127.0.0.0/255.0.0.0
quiet_mode
[ProxyList]
socks5  127.0.0.1 1080
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用的时候&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;proxychains4 &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
eg:
&lt;span class="nv"&gt;$ &lt;/span&gt;proxychains4 curl https://www.google.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;###polipo
某次需要安装 go 的一些依赖，&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;proxychains4 &lt;span class="nb"&gt;source &lt;/span&gt;tools.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;发现居然不好用了，报错说 no such file,
同事推荐用 polipo，相当于架了一个 http 代理链接到 socks&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;polipo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按照提示设置开机启动
然后在~/目录下面新建.polipo&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;proxyAddress = "0.0.0.0"
proxyPort = 8123
allowedClients = 127.0.0.1, 10.0.1.0/24
allowedPorts = 1-65535
tunnelAllowedPorts = 1-65535
proxyName = "localhost"
cacheIsShared = false
socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5
# chunkHighMark = 33554432
# diskCacheRoot = ""
# localDocumentRoot = ""
disableLocalInterface = true
disableConfiguration = true
dnsUseGethostbyname = yes
disableVia = true
censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe
# maxConnectionAge = 5m
# maxConnectionRequests = 120
# serverMaxSlots = 8
# serverSlots = 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后就能用普通代理一样使用了。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;http_proxy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://127.0.0.1:8123
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;https_proxy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$http_proxy&lt;/span&gt;
curl https://www.google.com
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>mr_night</author>
      <pubDate>Wed, 25 May 2016 16:18:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/30124</link>
      <guid>https://ruby-china.org/topics/30124</guid>
    </item>
    <item>
      <title>自己写一个 lib 或者 gem，附带 config 的模版类</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;Demo&lt;/span&gt;
  &lt;span class="nb"&gt;attr_accessor&lt;/span&gt; &lt;span class="ss"&gt;:configuration&lt;/span&gt;

  &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;
    &lt;span class="nb"&gt;attr_accessor&lt;/span&gt; &lt;span class="ss"&gt;:public_key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:private_key&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&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;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configuration&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;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configuration&lt;/span&gt;
    &lt;span class="vi"&gt;@configuration&lt;/span&gt; &lt;span class="o"&gt;||=&lt;/span&gt; &lt;span class="no"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&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;blockquote&gt;
&lt;p&gt;initialize/demo.rb&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Demo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&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;config&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;public_key&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'xxx'&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;private_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="s1"&gt;'xxx'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;参考：&lt;a href="http://brandonhilkert.com/blog/ruby-gem-configuration-patterns" rel="nofollow" target="_blank" title=""&gt;http://brandonhilkert.com/blog/ruby-gem-configuration-patterns&lt;/a&gt;&lt;/p&gt;</description>
      <author>mr_night</author>
      <pubDate>Tue, 24 May 2016 10:52:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/30104</link>
      <guid>https://ruby-china.org/topics/30104</guid>
    </item>
    <item>
      <title>Order by count on has_many</title>
      <description>&lt;h4 id="最近在做一些数据排序的需求，以前都没有接触过按照关联关系的计算结果排序，这次正好做到，对SQL不熟，查了一些资料，加上自己的测试，整理一翻，留给自己以后参考。"&gt;最近在做一些数据排序的需求，以前都没有接触过按照关联关系的计算结果排序，这次正好做到，对 SQL 不熟，查了一些资料，加上自己的测试，整理一翻，留给自己以后参考。&lt;/h4&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:articles&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Article&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:user&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id="如果需要查询所有的用户，并且按照用户的文章数量进行排序。"&gt;如果需要查询所有的用户，并且按照用户的文章数量进行排序。&lt;/h5&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:articles&lt;/span&gt;

  &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:by_articles_count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;joins&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:articles&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"users.id"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"count(articles.id) DESC"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;by_articles_count&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="但是很快发现了一个问题，就是说如果没有article的用户，是不在结果集之中的。想了半天，发现是jions的问题，joins是inner join 如果要让这些article为0的用户也在结果集中，需要left join， includes正好是干这个事情。"&gt;但是很快发现了一个问题，就是说如果没有 article 的用户，是不在结果集之中的。想了半天，发现是 jions 的问题，joins 是 inner join 如果要让这些 article 为 0 的用户也在结果集中，需要 left join，includes 正好是干这个事情。&lt;/h4&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:articles&lt;/span&gt;

  &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:by_articles_count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:articles&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"users.id"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"count(articles.id) DESC"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;by_articles_count&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="这样所有的user都在结果集中了。当然，这边只是写了最基本的，如何根据需要变化，碰到再研究。"&gt;这样所有的 user 都在结果集中了。当然，这边只是写了最基本的，如何根据需要变化，碰到再研究。&lt;/h4&gt;&lt;h4 id="附上一些参考资料："&gt;附上一些参考资料：&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/8696005/rails-3-activerecord-order-by-count-on-association" rel="nofollow" target="_blank" title=""&gt;stackoverflow-order-by-count-on-association&lt;/a&gt;
&lt;a href="http://stackoverflow.com/questions/16996618/rails-order-by-results-count-of-has-many-association" rel="nofollow" target="_blank" title=""&gt;stackoverflow-order-by-count-on-association2&lt;/a&gt;
有个现成的 gem:
&lt;a href="http://nerde.github.io/posts/a-better-left-join-with-active-record/" rel="nofollow" target="_blank" title=""&gt;left_join&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="其中的各种加载方法释疑："&gt;其中的各种加载方法释疑：&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://blog.bigbinary.com/2013/07/01/preload-vs-eager-load-vs-joins-vs-includes.html" rel="nofollow" target="_blank" title=""&gt;Preload, Eagerload, Includes and Joins&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;有理解不对的地方，希望大家不吝指正～&lt;/p&gt;</description>
      <author>mr_night</author>
      <pubDate>Sun, 14 Feb 2016 14:20:16 +0800</pubDate>
      <link>https://ruby-china.org/topics/28978</link>
      <guid>https://ruby-china.org/topics/28978</guid>
    </item>
    <item>
      <title>Incomplete response received from application</title>
      <description>&lt;p&gt;给自己的 Tips：
部署 Rails 服务时，碰到
“Incomplete response received from application”
服务器：Nginx＋Passenger&lt;/p&gt;

&lt;p&gt;原因：忘记修改 production 下的 secret_key_base&lt;/p&gt;

&lt;p&gt;步骤：
1.执行 rake secret
2.把输出写入 config/secrets.yml，替换掉&amp;lt;%= ENV["SECRET_KEY_BASE"] %&amp;gt;&lt;/p&gt;

&lt;p&gt;搜索至：
&lt;a href="http://stackoverflow.com/questions/29241053/incomplete-response-received-from-application-from-nginx-passenger" rel="nofollow" target="_blank"&gt;http://stackoverflow.com/questions/29241053/incomplete-response-received-from-application-from-nginx-passenger&lt;/a&gt;&lt;/p&gt;</description>
      <author>mr_night</author>
      <pubDate>Wed, 14 Oct 2015 15:36:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/27672</link>
      <guid>https://ruby-china.org/topics/27672</guid>
    </item>
    <item>
      <title>Rails 4.2.4 与 Mysql2</title>
      <description>&lt;p&gt;给自己的 Tips：
在使用 Rails 4.2.4 时碰到如下问题：
在&lt;code&gt;Gemfile&lt;/code&gt;里面已经声名来&lt;code&gt;gem ‘mysql2’&lt;/code&gt;结果还是提示你需要增加&lt;code&gt;mysql2&lt;/code&gt;.
原因貌似是 Rails 4.2.4 所使用的 adapter 还不能支持 mysql2 gem 的最新版？&lt;/p&gt;

&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/22932282/gemloaderror-specified-mysql2-for-database-adapter-but-the-gem-is-not-loade" rel="nofollow" target="_blank"&gt;http://stackoverflow.com/questions/22932282/gemloaderror-specified-mysql2-for-database-adapter-but-the-gem-is-not-loade&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;解救办法按照帖子中说的：
&lt;code&gt;gem 'mysql2', '~&amp;gt; 0.3.18'&lt;/code&gt;&lt;/p&gt;</description>
      <author>mr_night</author>
      <pubDate>Wed, 14 Oct 2015 15:24:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/27671</link>
      <guid>https://ruby-china.org/topics/27671</guid>
    </item>
    <item>
      <title>一个奇怪的问题，关于 rails -v</title>
      <description>&lt;p&gt;环境：cent OS 6.5
背景：rails 的部署环境安装中，rvm 安装完毕，ruby2.0.0 安装完毕
接着安装 rails：gem install rails -v 3.2.21 安装完毕&lt;/p&gt;

&lt;p&gt;然后尝试 rails new testapp 来建新一个空的 project，测试环境是否能用。
至此一切 ok，
接下来，提示一些 gem 需要 install，。。。。
提示 sass－rails 需要安装，当时直接用 gem install sass-rails 来安装来，看起来也 ok，
但是问题来了，安装 sass-rails 时没有指定版本，结果装了最新的 5.0.4 然后还安装了一系列依赖，
忽然看到一些 gem 被升级了，比如 actionview,railities,activesupport 都被装了一个 4.2.4 版本（其中大部分是 2 个版本共存 4.2.4 和 3.2.21）。。。心里一惊。。
但是 rails 这个 gem 还是 3.2.21&lt;/p&gt;

&lt;p&gt;用 rails －v 测试了一下，果然，妥妥的 4.2.4.。。。
但是奇怪的是进到 app 目录下面 rails －v 结果居然还是 3.2.31.。。。。这是为何？
难道目录下如果有 Gemfile, rails 的版本直接是 Gemfile 里的版本号咩？猜测》。。。。&lt;/p&gt;
&lt;h5 id="如下"&gt;如下&lt;/h5&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[root@iZ235ixh971Z tester]# pwd
/home/tester
[root@iZ235ixh971Z tester]# rails -v
Rails 4.2.4
[root@iZ235ixh971Z tester]# which rails
/usr/local/rvm/gems/ruby-2.0.0-p647/bin/rails
[root@iZ235ixh971Z tester]# cd hoge/
[root@iZ235ixh971Z hoge]# rails -v
Rails 3.2.21
[root@iZ235ixh971Z hoge]# which rails
/usr/local/rvm/gems/ruby-2.0.0-p647/bin/rails
[root@iZ235ixh971Z hoge]#
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>mr_night</author>
      <pubDate>Wed, 09 Sep 2015 17:51:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/27255</link>
      <guid>https://ruby-china.org/topics/27255</guid>
    </item>
    <item>
      <title>奇怪的需求：直接把剪贴板的 image 粘贴进 Textarea</title>
      <description>&lt;p&gt;需求如下，貌似和 rails 不太相关，但是正是一个 rails3.2 的小项目遇到的需求，
希望能够和 QQ 或者 word,excel 之类的类似，能够再截图后直接在富文本编辑框内直接 Ctrl+v 把剪贴板里面的图像黏贴进去，并且能够把图像随其他的表单内容一起提交给 rails 后台。
希望我把需求讲清楚了，
希望能有一个专门让我粘贴 image 来上传的富文本控件，&lt;/p&gt;

&lt;p&gt;主要是想省略保存图片这一步骤，不知道能否实现。多谢各人能给个思路或者有类似的解决经验的。&lt;/p&gt;</description>
      <author>mr_night</author>
      <pubDate>Tue, 17 Dec 2013 17:45:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/16254</link>
      <guid>https://ruby-china.org/topics/16254</guid>
    </item>
  </channel>
</rss>
