• 已经在线上用 2.0 了?大家都很酷啊

  • 顶一下曹晓刚

  • #5 楼 @limpid 北京这边的团队不是用 ruby 的,业务系统基于 java,引擎基于 C++,如果你有兴趣,gtalk 上联系我一下,我们详细了解 [email protected]

  • #3 楼 @limpid 我们有北京团队,如果你觉得可以,我也能帮忙推荐

  • #1 楼 @zw963 可能有些同学担心自己级别不够,不过尝试一下也无妨的

  • unix 和 linux 上的各种命令小工具一个很烂的地方就是参数太多,第二烂的是参数风格不一致,第三烂的是作为协同主要方式的管道缺少约束,所以用法千奇百怪......

  • #7 楼 @jjym email 是大小写不敏感的,看相关规范

  • #6 楼 @ihlayy 只要你决定在缓存中忽略大小写敏感,那么这两种做法对用户是等价的,所以没什么客户不客户的,我说的不是折衷办法,就应该这么做。 追求完美的人会再添加一个字段用于记录用户登录时输入的名称,但那仅仅是为了展现,验证等逻辑还是用统一最小化后的 email 信息

  • 当然是所有用户输入直接变为小写了,登录也不例外,用户不需要知道太多

  • 所有 email,注册时直接转换为小写,不要浪费其它地方的时间了

  • 可能是最酷的 github-page at 2013年02月21日

    我承认这是我见过最酷的,求辟谣

  • Rspec 不清空数据库问题 at 2013年02月21日

    #1 楼 @lgn21st 这个和 rails2、3 应该关系不大吧,use_transactional_fixtures 这个设定是用于基于事务进行数据库回滚的,如果设为 false,那要明确你的 cleanup 方式(可能是某个第三方库完成的,检查一下你的 spec_helper.rb 的内容)

  • 大部分都中了......

  • 一直在用,挺不错

  • mongoid 是支持 locale 的吧

  • 大神发布 Discourse 了 at 2013年02月11日

    #6 楼 @Rei 不能说挑刺吧,前几天我也试了一下功能,也给人推荐了它的亮点,但是不好的地方也没必要掩饰,评价产品不是非黑即白

  • 大神发布 Discourse 了 at 2013年02月11日

    #4 楼 @xiaolai 我还没看过代码,不过仅从帖子上的代码看,xdite 说的一点也不为过啊,不过我们也可以学习一些交互式设计的点子

  • 大神发布 Discourse 了 at 2013年02月11日

    xdite 在推上评价说这个代码是对 RoR 不熟悉的人写的

  • 求教服务端 ajax 问题 at 2013年02月09日

    slim is ok. just remove your script tag. like this

    alert("hello")
    
  • 手工完毕(果然很多没更新)

    $ gem source
    *** CURRENT SOURCES ***
    http://ruby.taobao.org/
    $ gem install mime-types
    Fetching: mime-types-1.20.1.gem (100%)
    Successfully installed mime-types-1.20.1
    1 gem installed
    Installing ri documentation for mime-types-1.20.1...
    Building YARD (yri) index for mime-types-1.20.1...
    Installing RDoc documentation for mime-types-1.20.1...
    ~[1.9.3]
    $ gem install rack-ssl
    Fetching: rack-ssl-1.3.3.gem (100%)
    Successfully installed rack-ssl-1.3.3
    1 gem installed
    Installing ri documentation for rack-ssl-1.3.3...
    Building YARD (yri) index for rack-ssl-1.3.3...
    Installing RDoc documentation for rack-ssl-1.3.3...
    
  • 春节到了,要回家过年了,我先手工更新一下吧

    [PS: 刚才看了一下,似乎是 crontab 的问题,手工更新完毕以后如果有空我再研究一下]

  • ruby 线程使用举例 at 2013年02月07日

    #2 楼 @guyanbiao 执行完了自然就结束(也就是你说的关闭),至于是真是假取决于你对”真“、”假“的定义,如果你指的是是否是操作系统分配的线程,那么不同的 ruby vm 各有不同,cruby 1.8 是”假“的,cruby1.9、jruby 是”真“的

  • 编程语言像什么车 at 2013年02月05日

    我是专门去看 ruby 的,看过以后改为专门看 VB 了......

  • 这段代码怎么去重复? at 2013年02月05日

    在公司里提这个问题,一个哥们用 scala 给了答案:

    trait Mapper {
      def apply[A, B](coll: Collection[A])(fun: A => B): B 
    }
    
    class Serial extends Mapper {
      def apply[A,B](coll: Collection[A])(fun: A => B): B = coll map { fun } 
    }
    
    class Parallel extends Mapper {
      def apply[A,B](coll: Collection[A])(fun: A => B): B = coll par map { fun } 
    }
    
    val map = if (current) parallel else serial
    map (db_specs) { build_db (_, _)}
    

    看来我的思路走歪了,其实判断 concurrent 的 if...else 是少不了的,关键是让这个结构独立出来,与具体的 array 和 block 无关,这样才能复用。

    ruby 版本

    def whenever args
      if concurrent?
        args.map{ |arg| Thread.new{yield arg} }.map(&:value)
      else
        args.map{|arg| yield arg}
      end
    end
    
    whenever(db_specs) do |label,options|
      build_db label, options
    end
    

    其实骨子里相当于 @fredwu 的方案进行了简化和抽象化

  • 我这里:

    $ uname -a
    Linux John-ThinkPad-X220 3.5.0-23-generic #35-Ubuntu SMP Thu Jan 24 13:15:40 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
    $ gem install triez
    Fetching: triez-0.2.gem (100%)
    Building native extensions.  This could take a while...
    ERROR:  Error installing triez:
        ERROR: Failed to build gem native extension.
    
            /home/john/.rvm/rubies/ruby-1.9.3-p327-falcon/bin/ruby extconf.rb
    creating Makefile
    gcc -O3 -std=c99 -Wall -pedantic -c -I.. ../hat-trie/murmurhash3.c ../hat-trie/hat-trie.c ../hat-trie/ahtable.c
    ar -r libtries.a murmurhash3.o hat-trie.o ahtable.o
    ar: 正在创建 libtries.a
    
    make
    compiling hat-stub.c
    compiling triez.cc
    cc1plus: 警告: command line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ [默认启用]
    cc1plus: 警告: command line option ‘-Wimplicit-function-declaration’ is valid for C/ObjC but not for C++ [默认启用]
    linking shared-object triez.so
    /usr/bin/ld: build/libtries.a(hat-trie.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
    build/libtries.a: 无法读取符号: 错误的值
    collect2: 错误: ld 返回 1
    make: *** [triez.so] 错误 1
    
    
    Gem files will remain installed in /home/john/.rvm/gems/ruby-1.9.3-p327-falcon/gems/triez-0.2 for inspection.
    Results logged to /home/john/.rvm/gems/ruby-1.9.3-p327-falcon/gems/triez-0.2/ext/gem_make.out
    
  • #6 楼 @tank 这年头内存真是白菜价,但是在 vps 上还是很金贵,不过这也有好处——可以强迫程序员对运行环境投入更多关注。 楼主要是有钱耗硬件的话就当我没说,其他人如果想提高自己的手艺,还是建议多登到 vps 上看看细节,比如启动完整的应用需要多少内存,cpu、内存和网络主要消耗在哪个环节等等,有时间也可以多更换几个部署方案比较比较,学到的知识会很有用,前人说“艺多不压身”

  • 最近没用过,不太确定了

  • 好用的 Vim at 2013年02月01日

    今天清理了一下我的 vim 插件,vundle 已经不用了,目前是 NERDTree, bufferexplorer, taglist, ctrlp 再加上一个搜索函数和一些快捷键设定,感觉速度会快一些。

  • 我承认,吸引我的是标题,这种工作有意义啊

  • 如果当天不加班可以帮忙答疑(俗称聊天 :-))