• Rails3.2.8 Route 源码分析 at October 07, 2012

    #8 楼 @xds2000 源码分析到这里就基本 OK 了,我们来个回顾。从这里应该说是整个的总结。

  • Rails3.2.8 Route 源码分析 at October 07, 2012

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

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

  • Rails3.2.8 Route 源码分析 at October 06, 2012

    #1 楼 @xiaolai 我学习了~

  • 你们的编辑器背景是什么 at October 05, 2012

    用标准的 desert

  • require rubygems 问题 at October 05, 2012

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

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

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

  • require rubygems 问题 at October 05, 2012

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

  • betterspecs.org at October 05, 2012

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

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

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

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

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

  • ruby thread deadlock detected at October 04, 2012

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

  • ruby thread deadlock detected at October 04, 2012

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

  • ruby thread deadlock detected at October 04, 2012

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

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

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

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

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

  • 分布式 Ruby 解决之道 - DRb at September 29, 2012

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

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

  • 关于 Rails 命令的问题 at September 28, 2012

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

  • 关于 Rails 命令的问题 at September 28, 2012

    这个问题有些意思,我大概分析了下加载 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。

  • #3 楼 @lgn21st 嗯~赞

  • 想学习 RUBY at September 08, 2012

    @edwardchan12 welcome, 以 just for fun 的心态学习最高效了。 具体的方法可以直接看 wiki

  • 理论上(算法导论可以找到其说明),每种尾递归都可以用一个迭代过程来替换。

    递归之所以经典,是因为可理解性与简洁性,即符合人类的思维,又与宇宙的递归设计层层相扣。

    我以为,Ruby 里面大可以多用递归,符合它的设计哲学:For Funny.

  • @happypeter master 是完全 clean 的,当时只是在 github 上 push 到别处的请求,后面时间一长,再 merge 就一堆冲突了。