Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
Zete
@luikore
高级会员
第 2880 位会员 / 2012-07-16

55 篇帖子 / 3422 条回帖
245 关注者
6 正在关注
32 收藏
GitHub Public Repos
  • triez 140

    fast, efficient, unicode aware HAT trie with prefix / suffix support for Ruby

  • rsec 78

    Parser / Regexp Combinator For Ruby

  • regexp_optimized_union 11

    Regexp.optimized_union(word_list, regexp_options) generates optimized regexp for matching union o...

  • zscan 9

    Improved string scanner

  • stimulus-bind 9

    Enable simple data binding for stimulusjs

  • vscode-hypertab 3

    The Missing Tab Completion for VS Code

  • property-list 1

    Property list (plist) library with all formats support

  • keycap 1

    1.5u keycap for Kailh low profile switch

  • ffi-clang 0

    Ruby FFI bindings for libclang 3.4+.

  • llvm-node 0

    Node LLVM 4.0+ Bindings

More on GitHub
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • 如何实现这样的迭代器 at 2013年01月27日

    要弄清楚局部变量的作用域啊,而且 self.next 那里无限循环了

    def topics
      1.upto 100000 do |page|
        url = "http://bbs.gfan.com/forum-274-#{page}.html"
        @agent.get url do |page|
          page.search('tbody[id^=normalthread] a.xst').each do |a|
            yield a
          end
        end
      end
    end
    
    o.topics{|a| ... }
    
  • d at 2013年01月27日

    小明缺乏的是力量和荣耀,只有比邻居更野蛮才能对付野蛮的邻居,明天锻炼身体去 lok'tar oga !

  • 3-15 个字符,可以用 [a-z0-9_\-] 字符,必须用数字或者字母开头,且不能是纯数字 at 2013年01月27日

    编程就是将自然语言需求写成形式语言的过程... 程序员之所以存在的一个理由就是客户说不清楚...

    楼主用肯定断言表达 "不能全是数字" 是经过了一次逻辑运算的结果: ¬(∀c, c 是数字) => ∃c, ¬(c 是数字)

    按照要求直接用否定断言 (?!) 也可以:

    /\A
      (?! \d+\z)
      (?! [_-])
      [[:alnum:]_-]{3,15}
    \z/x
    
  • 请教 postgresql 测试数据库错误问题 at 2013年01月27日

    用 seed 或者 fixture 放手动档数据

    或者你已经有一个内容丰富,舍不得搞掉的测试数据库了,可以在测试环境下跑 migration 更新表结构再跑测试

    RAILS_ENV=test rake db:migrate
    rake test
    
  • 3-15 个字符,可以用 [a-z0-9_\-] 字符,必须用数字或者字母开头,且不能是纯数字 at 2013年01月26日

    另外... 没几种写法还能称作回字吗?

    /\A
      (?= .*\D)
      (?! [_-])
      [[:alnum:]_-]{3,15}   # alnum = alpha + number
    \z/x
    

    正则里的断言就和 prolog 的 rule 差不多啦 各种预定义好的 unicode character class 就和 prolog 里的类型差不多?

  • 3-15 个字符,可以用 [a-z0-9_\-] 字符,必须用数字或者字母开头,且不能是纯数字 at 2013年01月26日

    #6 楼 @bhuztez 需求,往往只是一个眼神,写成文档太不解风情了...

  • 3-15 个字符,可以用 [a-z0-9_\-] 字符,必须用数字或者字母开头,且不能是纯数字 at 2013年01月26日

    #4 楼 @mvj3 正则有个 x 参数,可以无视空格添加注释的

    /\A
      (?=.*[a-z_\-])    # 不能全是数字
      [0-9a-z]          # 必须用数字或者字母开头
      [a-z0-9_\-]{2,14} # 3-15个字符,可以用[a-z0-9_\-]字符
    \z/xi
    

    另外注意 ^ 和 $ 是行首和行末,匹配字符串头尾应该用 \A 和 \z, 测试用例:"\nabc"

  • 请问有人遇到在内网开发时,rails 通过反向代理运行在 nginx 后端,调用 request.remote_ip 无法获取客户端 IP 或者报错吗? at 2013年01月26日

    #4 楼 @zhangyuan request.headers['X-Real-IP'] || request.remote_ip ?

  • 请问有人遇到在内网开发时,rails 通过反向代理运行在 nginx 后端,调用 request.remote_ip 无法获取客户端 IP 或者报错吗? at 2013年01月26日

    为啥不直接用 request.headers['X-Real-IP'] 呢?

  • 蛋疼,用 Objective-C 重写一个 MacRuby app at 2013年01月25日

    我嵌的 rvm 安装的 ruby, dylib 位置全部用 install_name_tool 改一遍就好了

  • 如何托管子进程 at 2013年01月25日

    #12 楼 @lgn21st

  • 如何托管子进程 at 2013年01月25日

    #9 楼 @lgn21st 原来是这样... 经常 kill 就连同子进程一起消灭了,我就想当然的以为父进程里能退子进程... 但其实 kill 是给整个进程组发的信号,exit / abort 只退出当前进程

    windows 里进程没有树形关系,进程组好像就是个摆设,能处理的信号太少... 但是创建进程的 api CreateProcess 却又巨复杂,学起来极其浪费人参...

  • 如何托管子进程 at 2013年01月25日

    #6 楼 @dreamskyvt 知道为什么 windows 叫 windows 么?就是因为程序都必须有一个窗口... 所谓后台程序只是把窗口隐藏了而已... 你可以用 win32api GetConsoleWindow() 获得控制台窗口句柄,然后用 ShowWindow(hwnd, SW_HIDE) 把它隐藏了...


    用户懒得装 gem 有各种绕过去的办法,例如你可以在脚本里

    begin
      require '...'
    rescue LoadError
      system "gem install ..."
    end
    

    或者用 OCRA 把 ruby 和 gem 和脚本打包成一个可执行文件 (以前室友给游戏汉化组做的打包工具就是这么干的...), 或者你可以写一个 msi installer 在里面拷文件,各种奇技淫巧都有...

  • 请问有谁能谈谈,在 migration 里 decimal 和 float 的具体区别呢? at 2013年01月25日

    #19 楼 @jimrokliu 用 BCD 存还是字符串存看数据库的实现吧,如果是 mongo 或者 sqlite 肯定是字符串

  • 如何托管子进程 at 2013年01月25日

    @lgn21st 应该说只有 windows 的子进程不受父进程影响...

    但是 system, exec 都是等待子进程完成才结束的

    创建独立进程可以用 win32-process http://rubydoc.info/gems/win32-process/0.7.1/frames

    1.9 用 Process.spawn http://rubydoc.info/stdlib/core/Process.spawn

  • 请问为什么我的 ruby 在计算时会出现了奇怪的错误了! at 2013年01月25日

    貌似有 3 方面的问题:


    stock_fitting.amount 赋了 -1 应该是 update_attributes! 在更新数据库之前做的,因为 update_attribute 要调用 model 的 validation, 而 validation 需要新的值哦. 事务出错应该回滚,但是内存中模型属性人家不负责给你回滚的...

    stock_fitting.reload
    "#{stock_fitting_amount},#{stock_fitting.amount}, #{pro_out_stock.amount}"
    # 是 -1, 0, 1 应该就对了
    

    至于算出 -1 的原因,可能是 transaction 开始后,又卖出了一件?或者是 pro_out_stocks 里面对应两个相同的 fitting_id ? 出错然后回滚是正确的处理,但如果想少出错,可以优化一下 transaction, 或者加入一次重试


    最后一个问题好像挺严重:你在 transaction 里面把异常吞了,事务回滚不了吧?rescue 最好在 transaction 外面做

  • 请问为什么我的 ruby 在计算时会出现了奇怪的错误了! at 2013年01月25日

    .amount 有调用 sql? 请求内缓存不?是不是脏数据?

  • 请问有谁能谈谈,在 migration 里 decimal 和 float 的具体区别呢? at 2013年01月25日

    #8 楼 @QueXuQ decimal 或者 乘 100 用整数都可以吧

    我说的格式化是 '%.2f' % 1 #=> "1.00" 的意思,好像没什么关系...

  • 请问有谁能谈谈,在 migration 里 decimal 和 float 的具体区别呢? at 2013年01月25日

    #6 楼 @QueXuQ 如果是需要显示".0", 最后格式化一下就好了... 如果商品的量是诸如千克之类的,有 3 位小数,改成用克 + 整数保存可能更方便

  • 请问有谁能谈谈,在 migration 里 decimal 和 float 的具体区别呢? at 2013年01月25日

    #4 楼 @QueXuQ 整数的话用 int 就可以了,完全没这类问题

  • 我为什么想要转到ROR at 2013年01月25日

    所有的性能优化都是有代价 (空间/时间,编译时/运行时,复杂实现/简单实现...) 的,人们都倾向于说 benchmark 如何快,但却没告诉你代价是什么。

    例如一般都说 java gc 性能很好,但是 semi-space 分代 GC 的代价就是 native 调用很难写,和 native 代码交互的 object 要手动 pin 住,无法在堆中移动,使得 JNI 效率大打折扣,不能用就重造轮子,最终全部在 c/c++ 里已经有的东西都要用 java 重造一遍... 这也造成了 "java 库很丰富" 的假象... 用 java 会有一些让人 "wtf" 的地方,例如 "你可以建议 gc 收集但不能确实让它开始收集", 这个就是多线程 gc 的代价之一...

    ruby 虚拟机性能已经很好了,系统调用效率比 java 高 (写个 echo server hello world 测测就知道了), 模板引擎渲染速度比 go 快...

  • 请问有谁能谈谈,在 migration 里 decimal 和 float 的具体区别呢? at 2013年01月25日
    1.4+1.7
    => 3.0999999999999996
    

    如果是工程计算,这个结果精度是非常高的,但如果是算钱,这个结果是 3.1 才对:

    require 'bigdecimal'
    (BigDecimal('1.4') + BigDecimal('1.7')).to_s 'F'
    => "3.1"
    
  • 请问有谁能谈谈,在 migration 里 decimal 和 float 的具体区别呢? at 2013年01月25日

    decimal 是用字符串存的,或者说是 10 进制,占用空间大,运算速度慢,精度可定制 float 是按照 ieee 标准存的,或者说是 2 进制,占用空间小,运算速度快,精度固定

    只是 10 进制有限小数在 2 进制里可能是无限循环小数,存储空间的长度是固定的肯定要截断

  • 关于具体技术与业务,在使用 rails 过程中,你是如何操作的? at 2013年01月25日

    做 rails 基本是两三下就把业务搞定了,然后大量的精力在调整 UI 上...

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

    #10 楼 @fsword 那就 map(&:value) ...

  • 新站测试上线,欢迎拍砖…… at 2013年01月24日

    就等评测 leap motion 了

  • 同时写两个 gem 太痛苦了 at 2013年01月24日

    -I 参数的重要性... 假设目录结构是这样

    A/
      lib/
      test/
        a_test.rb
    B/
      lib/
      test/
        b_test.rb
    
    cd A/test
    ruby -I../../B/lib -I../lib a_tests.rb
    cd B/test
    ruby -I../../A/lib -I../lib b_tests.rb
    

    或者写个 rake 任务一次过搞定

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

    Ruby 2.0 的话可以用奇技淫巧...

    (concurrent? ? db_specs : db_specs.lazy).map do |label, options|
      Thread.new do
        build_db label, options
      end
    end.each(&:join)
    
  • rails hash 表的访问出错问题,请教大神 at 2013年01月24日

    #2 楼 @shlallen 我也犯过这样错所以才怀疑是...

  • rails hash 表的访问出错问题,请教大神 at 2013年01月24日

    问题肯定在 a["credentials"] 赋值时给了一个字符串 (用了to_json吧?) 而不是 hash, 所以你取值时还得 parse 成 hash: JSON.parse(a["credentials"])["node_id"]

    json 标准里没有 symbol 类型,所以转成 json 时 key 就变成 string 了

  • 上一页
  • 1
  • 2
  • …
  • 95
  • 96
  • 97
  • 98
  • 99
  • …
  • 111
  • 112
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English