• Rails3.2.8 Route 源码分析 at 2012年10月07日

    #6 楼 @xds2000 探索式的方法, 我们的目标很简单, 弄清楚 route 的实现流程, 那么以后写 route 会更有帮助.

    如果时间不多的话, 可以直接看总结, 然后将核心方法看一下. 应该说对我们构建 DSL 有很大的帮助. 我这里忽略了不少细节, 希望大家在看的时候动手一下, 有问题可以一起讨论. 每个地方基本都写有代码行数.

  • Rails3.2.8 Route 源码分析 at 2012年10月06日

    #1 楼 @xiaolai 我学习了~

  • 你们的编辑器背景是什么 at 2012年10月05日

    用标准的 desert

  • require rubygems 问题 at 2012年10月05日

    #3 楼 @bpw11320 我不知道你说 gem 命令是指什么. 这里分两种情况, gem 在 Ruby 代码中, 即方法. gem 作为单独命令.

    1. gem 方法, 不加载 rubygems 就无法使用 gem xx .

    2. gem 作为单独命令, 由 rubygems 提供支持. 你可以打开 RubyRoot/bin/gem 查看 ( RubyRoot 为你的 Ruby 安装目录.

  • require rubygems 问题 at 2012年10月05日

    Ruby1.9.3 缺省加载 rubygems, rubygems 是采用重写 require 实现包管理的. 默认下, 已经 require 的话, 返回值为 false. 此 false 不代表问题, 仅表明加载成功但已经在之前加载过了.

  • betterspecs.org at 2012年10月05日

    @leomao10 good, 各种最佳实施, 不过需要过墙了

  • @happypeter 我基本上都是自己瞎看的. 这里有一个官方的资料, 应该非常全面: https://developers.google.com/chrome-developer-tools/

    支持你讲这个, 我想内容可以包括, 如何定位元素, 查看修改样式, js 调试, 最简单的性能调优. 我自己就用这些.

  • 浅色表示 等待时间 , 即发出请求后服务器开始响应时间, 可以认为是 网络延迟 + 服务器处理请求时间.

    深色表示 接收时间, 即服务器响应到接收完毕数据的时间, 可以认为是 整个网页的接收时间

  • ruby thread deadlock detected at 2012年10月04日

    #5 楼 @nuclearkitten @jjym 已经发现问题了, 你在 t.wakeup 前面加上 sleep 2 试下. 原因如 2 楼所示

  • ruby thread deadlock detected at 2012年10月04日

    #2 楼 @jjym 观察仔细. 也跟 Ruby 的线程模型有关系.

  • ruby thread deadlock detected at 2012年10月04日

    你需要贴出来你的 Ruby 版本, 用的什么环境.

    直观从代码看, 用法是没有问题的.

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #26 楼 @fsword 缺省的返回值不那么靠谱~所以在 DRb 中要小心对待。

    ps: 照你的钻研法,可不是一般人能比的,呵呵。

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #24 楼 @fsword 刚才看了一下 @chucai 的 xmpp_server, push 默认返回的是 #<Thread:0x00000102a06ce0 所以会报错。这里跟 threadqueue 是不一致的。

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #22 楼 @fsword push 返回是原始对象数组, 所以会回传给 client 序列化作为客户端对象, 这样就报错了.

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #19 楼 @chucai 嗯, 这也完全可以. DRb 的目标是让你最简单方便使用对象代理, 如果你用 http 就需要设计方法调用, http 容器, 相比而言, DRb 更简单些.

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #17 楼 @chucai 这没有所谓好不好的解决方案, 在这里这就是你的正确解决方案.

    如果想使用分布式代理, 才会用到 start_service.

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #15 楼 @chucai Good~ 动手能力很强, 用 DRb 最重要的就是理解对象是 DRbObject 还是本地对象, 如果不需要客户端知道这个对象, 两个事情可以解决:

    • 加入 DRbUndumped
    • 返回一个客户端也存在的对象, 比如 nil

    这是它的关键理解点.否则, 可能会出现 DRbUnknownError, 这就是 DRb 向你报怨无法序列化对象的证词.

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #13 楼 @chucai 看了你的 xmpp_server 感觉用法存在一些问题导致, 在 push.rbXmppServer::QUEUE.push m 后加上 return nil 试下. 这样防止返回一个服务端对象.

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #10 楼 @chucai 我与我之前的同事有用过 DRb 与 Rails 的整合, 但不建议是直接使用. 你这里可以简单处理, 因为看你的需求应当是类似于 RPC 的方式, 所以客户端代码不需要 DRb.start_service ( 这个会打开一个线程监听, 与现在的 Rails 单线程处理不对应 ), 你可以去掉试下.

    如果还有问题,你再回复我.

  • 分布式 Ruby 解决之道 - DRb at 2012年09月29日

    #8 楼 @chucai 没有遇到过类似问题, 能否将相关的错误贴出来, 比如 initializer 里的关键代码. 包括你的集成思路

  • 你想 puts 出 caller 的方法堆栈么?那为什么不用 puts

  • 关于 Rails 命令的问题 at 2012年09月28日

    #3 楼 @chucai 等飞机,无聊就看了下,其实还可能有些细节有出入,有兴趣的人可以纠正或补充~

  • 关于 Rails 命令的问题 at 2012年09月28日

    这个问题有些意思,我大概分析了下加载 rails 的过程,在 Rails Project 下的 rails 是用来加载当前项目下的服务的,而 bin/rails 会加载 gems/railties-3.2.7 下的 application.rb 最终根据参数加载 server.rb generator.rb 等。。。

    总结下输入 rails 后的动作:

    • rvm 下缺省 ruby 版本下的 bin/rails
    • 加载 railties 下的 rails, 如果是在 Rails Project 下执行,则使用 exec 替换执行 script/rails 以下的不再执行,以提高速度。
    • 加载 railties 下的 rails,它加载整个 rails 环境,比如 active_support, 设定模块常量。
    • 根据 cli 参数加载指定的操作,如 server, generator 等
    • 进入初始化后流程,结束
  • #4 楼 @fsword 使用 rake 来管理一些脚本的调用,其实关键还是在于依赖的解决,你可以试试 net-ssh

  • 建议试试 hudson. 加上 rake。