• #23 楼 @huacnlee #24 楼 @hooopo

    原来是这个原因,一直用 copytruncate 配置 logrotate, 没想到日志文件被一直打开的问题.:)

  • #19 楼 @huacnlee 为什么 lastaction 要 kill unicorn 的进程?

  • 那个帖子的沙发回复“但是日本的 Emcas 用户很多,怎么说?”真是高端黑啊

  • 可以使用 upyun 的表单 API 上传功能,相当于客户端直接上传到 upyun 的服务器,用 callback 来通知自己的服务器,这样不占用服务器的上行带宽。

  • 翻 sinatra 的源码吧,在 base.rb 里面对 rack request 的 params 做了处理

  • ActiveRecord::Base => ActiveRecord::Model => ActiveRecord::Core private relation method

  • shuffle 的效率真让人惊讶~~ at 2012年08月16日

    sort_by 是先给每个元素生成一个用于排序的值,然后再调用 sort,将该值做 x <=> y 的比较得出结果,而 shuffle 直接用 Fisher Yates 洗牌算法,效率差很多的。

  • 自从 thinkpad 被联想毁了以后,就没有什么好的 windows 笔记本可以推荐了。

    我目前在用 acer AS5750G, 3500 左右,再自己配个 8G 内存,安装 ubuntu, 用来做开发足够用了。

    windows 下的独立显卡,全屏高画质跑 diablo3 也很流畅。

    缺点是电池不给力,不过我是长插电源当作台式机来用。

  • 今天很受伤 at 2012年08月13日

    这个问题我早就骂过,如果不能升级内核,默认的镜像就应该将内核版本锁定,而不是弄个提示在那边,从诸多细节可以看出整个平台是否靠谱。

  • 顺路推荐一下 git flow 比如#14 楼 @happypeter 的情况,就可以: git flow hotfix start xxx

    git flow 就是通过命令将 hotfix/feature/release 等流程规范化,很适合团队开发。

  • Ruby 不讲究切面编程吗? at 2012年08月02日

    #16 楼 @ruohanc 如果用 Java 的 AOP profile log 例子来对应,简化后的 ruby 代码如下:

    class Object
      def self.profile(method)
        _prof_method = "prof_#{method}".to_sym
        alias_method _prof_method, method
    
        self.send(:define_method, method.to_s) do |*args|
          start = Time.now
          result = self.send(_prof_method, *args)
          p "#{method} runs " + (Time.now - start).to_s
          return result
        end
      end
    end
    

    然后你给需要做 profile 的方法声明一下:

    class Hello
       def world
        p "world"
      end
    
      profile :world
    end
    

    如果你想要做得更容易调用,不想侵入 Object root class,就用 module/include 的 mixin 方式来做。 如果你想运行期间添加,就 open class。

    不过我还是要多说一句,这种只能用来做玩具例子,实际上要做 profile log 的情景比这个要复杂很多,AOP 不适合做这个。

  • Ruby 不讲究切面编程吗? at 2012年08月01日

    java 里面的各种设计模式在 ruby 里面在语言层面就已经解决了。 比如 Iterator,比如 Mixin,比如 Singleton,比如 Observer...

    像日志这种用 AOP 做示例能够解决的需求,都是伪需求,以前写 Java 的时候,写过的 AOP Logging,现在回头看看都是玩具。

  • 看你们讨论那么热烈,我反复看了 2 次,还没明白具体需求是什么。开始怀疑我的阅读能力了...

  • sunspot 分词问题 at 2012年07月31日

    试试看将 solr/conf/schema.xml 文件的 index 和 query 的 analyzer 分开,然后给 query 添加一个 PositionFilterFactory

    <fieldType name="text" class="solr.TextField" omitNorms="false">
      <analyzer type="index">
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dict"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dict"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PositionFilterFactory" />
      </analyzer>
    </fieldType>
    

    这个配置是很早之前写的,具体的配置得咨询熟悉 solr 的人或者查配置了,好久没有用 java,都记不起来了。

  • sunspot 分词问题 at 2012年07月31日

    是因为搜索的关键字没有经过分词缘故?

  • #31 楼 @hooopo 你可以将 build 好的 sunspot_solr_mmseg4j 目录移动到任意地方,只要在这个目录下执行 java -jar start.jar 就可以了

  • 吐嘈一下盛大云 at 2012年07月26日

    当事人跑过..., 这个域名备案关机不通知太恐怖了,难道我可以随便注册个域名,指向竞争对手,然后举报一下,对方就歇菜了?看来得在 nginx 上严格配置域名啊,不能随便用个 localhost ...

  • t.column :country_code, "char(2)"
    
  • 还有种做法是加个 force:

    create_table :xxx, :force =>true

  • 数字转数组 at 2012年07月26日

    ruby 1.9

    1428.to_s.each_char.map(&:to_i)
    
  • 小贴士 1, 我作为果黑来说,Ruby 开发最好的环境是 Ubuntu, :) 2, Slim 是比 erb 更好用的 html 模板 3, 对于开源项目,最好的共享是 fork and send pull request 4, Git flow 是规范团队开发和版本控制的利器

  • 月薪只有 5K 的含泪飘过,而且还被拖欠了 2 个月工资

  • RSpec 到底好用在哪? at 2012年07月22日

    #3 楼 @Rei 我是指 rspec 可以直接在文件后面跟上 line number: rspec xxx_spec.rb:88

    这样在第几行出错的时候,debug 之后,可以直接用这个行数重跑,而 unit test 还得回头去看这行对应的方法名

  • RSpec 到底好用在哪? at 2012年07月22日

    rspec 和 unit test 都用过,个人还是比较喜欢 unit test 的简洁,rspce 比较方便的是可以单独执行一个 spec 文件里面的一小段,而 unit test 没有找到对应的方法。

  • 这种属于运维的脚本,推荐使用 puppet,对 puppet 不了解的可以看一下这篇: http://mudge.github.com/2011/08/11/managing-web-application-servers-with-puppet.html

    puppet 是基于 ruby 的,很易用。

  • #5 楼 @lulalala 可能和你在 index analyzer 里面添加的 EdgeNGramFilterFactory 有关系,导致相邻分词结果的 index position 改变,试试看在 analyzer type="query"添加:

    <filter class="solr.PositionFilterFactory" />
    
  • search 里面应该是用 fulltext 吧,你在 console 里面用的是 keyword

    Post.search { fulltext 'blah' }
    
  • a.created_at.to_date == b.created_at.to_date

  • 不喜欢圆形,喜欢的用户自己上传圆形头像就好了啊

  • 基于 snmp 协议的开源监控软件一大把,nagios, cacti, zabbix, zenoss 等等,看你的需求自己试用吧。