Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
@night_song
VIP
NO. 182 / 2011-11-23

5 Topics / 125 Replies
2 Followers
0 Following
1 Favorites
GitHub Public Repos
  • triez 140

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

  • rsec 77

    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
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • rake stats 一般需要多久 at April 17, 2012

    用 cygwin zsh 的话⋯⋯

    wc -l **/*.{rb,slim,coffee,sass}
    
    
  • [杭州][2012年04月17号] Ruby Tuesday 在大浪 at April 17, 2012

    +1

  • [杭州] The Plant 招人 at April 15, 2012

    广东的,实验室有着落了!

  • 发起一个算法讨论, 取得素数. at April 15, 2012

    标准库不是内建了么?

    require 'mathn'
    123454321.prime?
    123454321.prime_division
    
    
    
    

    只是实现比较 naive,大一些就搞不定了

    筛法,试除法,23 生成器都有 ...

    Prime.take(20).drop(10)
    
    
    
    

    rubinius 那样写是因为要用 ruby 实现 ruby,而 each, range 什么的都还没有⋯⋯

    附带一个 1 进制的低效实现:

    def prime? n
      '1' * n !~ /^(11+)\1+$/
    end
    
    
    
    
  • 我的 linode 今天打不开了, 大家有出现吗? at April 12, 2012

    哎,等 central 稳定下来再干活吧,今天放假算了

  • 用 brew 更新 git 出现了一个警告,帮忙看看。 at April 06, 2012

    貌似是新 brew 加的警告而已,不理它

  • Ruby 纪念 T-Shirt 设计反馈 at April 04, 2012

    失败教训:有 ruby 程序员在衬衫印了 sex symbol:

    :sex
    
    

    但其他人念 colon sex ...

  • Java 的这种 DSA 加密算法用 Ruby 改如何写? at March 30, 2012

    DSS 就是 SHA, DSS1 就是 SHA1, 用不用是没关系的

    DSA 是对 digest 进行签名的算法,不能给它传很大的数据

    private key 可以进一步用 DES / 3 重 DES / AES 加密码 (例如楼主的 ca.key),不过和 pkcs8 没什么关系

  • Java 的这种 DSA 加密算法用 Ruby 改如何写? at March 30, 2012

    我挺蛋疼的⋯⋯

    OpenSSL::PKey 对应的 private key 格式不是 PKCS#8.

    PKCS#8 的格式是:

    sequence { version, sequence { "DSA", sequence { p, q, g } }, private_key }
    
    

    OpenSSL::PKey::DSA 需要的格式是:

    sequence { version, p, q, g, (p, q, g, y) , x }
    
    

    什么是 p, q, g, y, x 就涉及到 DSA 算法了,细节不表。。。

    所以呢,可以用 ASN1 转换成它认得的格式,和楼主给的 java 代码对应的 ruby 代码是:

    # coding: utf-8
    
    require "openssl"
    require "base64"
    
    # 转换 PKCS8 到 OpenSSL 认识的格式
    def convert_der pkcs8
      der = OpenSSL::ASN1.decode(pkcs8).value
      version = der[0]
      p, q, g = der[1].value[1].value
      x = OpenSSL::ASN1::Integer.new OpenSSL::BN.new(der[2].value[2..-1], 2).to_i
      y = g.value.mod_exp(p.value, x.value)
      pub_key = OpenSSL::ASN1::Integer.new [p.value, q.value, g.value, y].map{|i|i.to_i.to_s(2)}.join.to_i(2)
      OpenSSL::ASN1::Sequence.new([version, p, q, g, pub_key, x]).to_der
    end
    
    digest = 'whatever'
    
    # 签名
    der = Base64.decode64 "MIIBSgIBADCCASsGByqGSM44BAEwggEeAoGBAMMai0rQ+0dTbXjJhesuXbnAIX8bOQAWPG3cv5VDjSUPK5alJWKqtlDrkR2qn+gOKHZELZEhUNX+Zej0x2fRfYMaQ8/GoCm/PUZ79irt/+dg9pkkhUBQ+gPAcpt8vGA/VJHlExgd/vTXiCJyslJFlP6W34rnAnO9lZTIAwF9kXNFAhUA8I+b9ZS1MoHketM8YGPLqR/s3uECgYA+ZqrPhRW5BwOpb46c0x11tAOryfGWrByYYWb6ONjTTKCA1vVcCYEdBr6gNr8noO+xRsUtvlZ2Mar0xi9kwYr2CWBr/bFcvhvjRx7e24s6oC0AGpuwgTFjUkb7LkYcM7tyemLOmCs+Ir8gx+OXjC3ukFWawFnJtbB4BfH81Tk5ZAQWAhQwJA67UTJSe4Ft6eg7bEKGOQx/OA=="
    priv_dsa = OpenSSL::PKey::DSA.new convert_der der
    # puts priv_dsa.private? #=> true
    sig = priv_dsa.syssign digest
    
    # 验证
    pub = Base64.decode64 "MIIBtjCCASsGByqGSM44BAEwggEeAoGBAMMai0rQ+0dTbXjJhesuXbnAIX8bOQAWPG3cv5VDjSUPK5alJWKqtlDrkR2qn+gOKHZELZEhUNX+Zej0x2fRfYMaQ8/GoCm/PUZ79irt/+dg9pkkhUBQ+gPAcpt8vGA/VJHlExgd/vTXiCJyslJFlP6W34rnAnO9lZTIAwF9kXNFAhUA8I+b9ZS1MoHketM8YGPLqR/s3uECgYA+ZqrPhRW5BwOpb46c0x11tAOryfGWrByYYWb6ONjTTKCA1vVcCYEdBr6gNr8noO+xRsUtvlZ2Mar0xi9kwYr2CWBr/bFcvhvjRx7e24s6oC0AGpuwgTFjUkb7LkYcM7tyemLOmCs+Ir8gx+OXjC3ukFWawFnJtbB4BfH81Tk5ZAOBhAACgYAtBXiK0XxLdhqhk2u/lh/xMpGIzlgAp+recKY9DHZI+DQidhFMNrAxzw3ptlKfV4jZeDallOMWe55m/Dn6EmP74BPzot1i+Pcz3VvQ0W5ts1QrR6A1w/STwP9RXKWERnV+YjMhyzWx39E9cDxeZMo0zonlqTjYAPI4+kDVhjU4uQ=="
    pub_dsa = OpenSSL::PKey::DSA.new pub
    # puts pub_dsa.private? #=> false
    p pub_dsa.sysverify(digest, sig)
    
    
    
    
  • 假如让我开发 Vim 的话,我就用 wasd 作为上下左右 at March 27, 2012

    一定要支持单手打字

  • sinatra 的扩展机制. at March 25, 2012

    jruby 也就跑 benchmark 快一些⋯⋯

  • Emacs 开发 Rails 应用之 --- 自动补全与 snippet 输入 at March 23, 2012

    个人觉得 snippet 也就 def, cla, mod, if, do 这些补全 end 的最好用

    另外把所有 assertxxx 都改成了 as 触发,所有 validatexxx 都改成 va 触发 ...

  • 用 Bootstrap,IE6 下悲催了 at March 21, 2012

    IE 只支持 10 或以上的飘过...

  • 大家升级到 xcode4.3.1 了吗?还有大家用 macport 还是 homebrew?? at March 14, 2012

    最新 xcode 完全没问题,homebrew 装不上的加参数 --use-gcc 就可以了

  • [杭州][2012-03-13] Ruby Tuesday 活动公告 (并求主题) at March 13, 2012

    @yedingding 出手要快啊

  • [杭州][2012-03-13] Ruby Tuesday 活动公告 (并求主题) at March 13, 2012

    http://rubyeventmachine.com/

    最近裸跑速度已经比 google go 快了... 还有一个 www.gaug.es 也用 eventmachine 做 tracking server

    http://twitter.github.com/bootstrap/ 的页面就是用 gaug.es 追踪的

  • [杭州][2012-03-13] Ruby Tuesday 活动公告 (并求主题) at March 13, 2012

    @asobuwjcat 因为 19:00 好像有点早,19:30 好像有点晚,就随意写了时间 ..

  • 请用一句话证明你用过 ruby on rails! at March 03, 2012

    如果说 "zed shaw 把我拉黑了" 之类的我就信

  • 選擇 oh-my-zsh 讓 Terminal 更好用 at January 05, 2012

    @camel 就是不喜这种 alias...和我自己的 alias 和函数冲突了...

  • 選擇 oh-my-zsh 讓 Terminal 更好用 at January 05, 2012

    oh-my-zsh 除了 alias 和 theme 没多少东西... completion 都是用的 zsh 自带的,如果只要 completion 不要 alias, 就得自己把整个插件拷到 custom 里改

  • 選擇 oh-my-zsh 讓 Terminal 更好用 at January 05, 2012

    zsh 还是很棒的,oh-my-zsh 过犹不及,git 状态自己写一个更好...

    另外显示 git stash 状态:

    git_prompt_stash() {
      if [[ -n $(git stash list 2> /dev/null) ]]; then
        echo "%{$fg[cyan]%}$"
      fi
    }
    RPROMPT="$(git_prompt_stash)"
    
  • 为什么你们用 Vim 和 Textmate 而不用 IDE at December 29, 2011

    IDE 的很多功能都是从 vim, emacs, textmate 的插件移植过去的...

    查文档之类的功能,vim 和 textmate 默认的 ruby 包就自带了

    编辑器内 debug vim, emacs, textmate2 都可以...

    自动完成盯着弹出菜单按上下键太慢了,90% 情况都是 vim 和 textmate 局部完成更好使

    我从 eclipse 还是 IBM 的时候 (8 年前?) 就在用,它的可编程性太弱了。vim 插件和 textmate bundle 都可以随改随用的,eclipse 下面开发个插件蛋都要疼碎了...

  • 为什么你们用 Vim 和 Textmate 而不用 IDE at December 29, 2011

    binding.pry 那个自动完成比 eclipse 的完成好用多了...

  • 天涯 4000w 用户泄露,咱来谈下数据分析 at December 27, 2011

    就算 grep 也只有几秒吧,几分钟是怎么做到的...

  • 哥搞 Rubygems 镜像,跑最后补的 gem generate_index 一直失败 at December 23, 2011

    其实去年我也整了个全下载的镜像... 那机器估计已经被你们 SA 收拾了

  • 哥搞 Rubygems 镜像,跑最后补的 gem generate_index 一直失败 at December 23, 2011

    一定要全部下完才能搞镜像么?

    我的 lazy download 镜像超简单: https://github.com/luikore/gems.mirror

  • 什么 truncate_html gem 适合中文? at December 23, 2011

    最佳方案还是这个吧:

    text-overflow: ellipsis;
    

    IE 6 支持 http://msdn.microsoft.com/en-us/library/cc351024v=vs.85).aspx(

    只有旧版本的 Firefox (6 或者以下) 有问题 http://stackoverflow.com/questions/802175/truncating-long-strings-with-css-feasible-yet

  • 弱弱的想請教一下用 Linode 的朋友們,關於配置與效能 at December 23, 2011

    64 位 ubuntu 一个 worker 50M 内存的飘过... 你可以检查一下:

    • 是否在 production 环境
    • 是否用了某些很吃内存的库 (如纯 ruby 版 mmseg 就能吃 50M ...)

    有些程序是看见有空闲内存就先占着的,不用白不用,说不定多开几个 worker 它就释放了。

    64 位系统吃内存多,但是几乎消灭了 ext-lib 内存泄漏,有得有失。

    另外... 加内存不贵吧?

  • 弱弱的想請教一下用 Linode 的朋友們,關於配置與效能 at December 22, 2011

    你的 CentOS 是不是 32 位的?

  • 请问 devise 的密码默认的加密算法是什么? at December 22, 2011

    bcrypt 的好处是:

    • 可以自定义复杂度,用 sha512 之类的可能过几年就不安全了。
    • 每次加密结果都不同所以不用加盐。
    • 只能验证不能解密,数据库被盗也不会丢密码。
  • Prev
  • 1
  • 2
  • 3
  • 4
  • 5
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English