• #98 楼 @lgn21st 如果能做出 ruby 预配置的 vm 镜像自然是首选了,不过实用性上可能会有一些问题,让众多多的 vps 厂商支持这个不是个简单的事情啊;我觉得现阶段如果可以的话集中社区的力量能维护出一套可用的傻瓜化同时又能灵活选择配置的安装脚本是个不错的选择,有了这个之后工作就完成一大半了,后续如果要支持像 linode 的那种 StackScript 也很简单

  • 也许可以集中社区的力量来构建和维护一个 rails 环境搭建的整套脚本? 只针对特定的 linux 发行版如 ubuntu;做得像 rvm 的安装脚本一样;同时提供各种安装选项可以自定义的,然后脚本搞定所有的安装和设置

    大家有没有兴趣?

  • 今晚有通宵看 WWDC 的吗 at 2012年06月12日

    siri 和 3dmap 国内用处不大,信息不够。带 retina display 的 macbook pro 很吸引我

  • #28 楼 @googya 谢谢,前不久已经升级了

  • 因为要手机号所以还没有注册。。。期望早日取消

  • 《Web 开发敏捷之道——应用 Rails 进行敏捷 Web 开发 (第 4 版)》作者还不是用的 3.2

  • 背着 iPad,带着无线蓝牙键盘,去星巴克敲代码?????

  • mongo 中如果一条数据 embed 的数据很多会出问题的,比如我们以前就碰到过单条 document 超过 16m 的问题。。。还有其他一些问题

  • Sublime Text 2 主题分享 at 2012年05月18日

    我的是这个,似乎叫 Made of Code

  • 一直等着呢,现在这台都用了三年了

  • Redmine 2.0 - 基于 Rails 3.2 at 2012年05月15日

    终于升级了。。。从 08 年开始用它,最怕升级折腾它。。。。

  • 呵呵,我现在凡是要用手机号的网站都不敢注册了。。。

  • Sublime Text 2 扩展工具 at 2012年05月14日

    这个现在是用 sublime text2 必装的,基本上所有的插件都支持这种方式安装;毕竟自己 checkout 源码安装还是不放

    除了楼主这个,顺便推荐几个插件:Git,Gist,Sublime Code Intel,Side Bar Enhancements,Zen Coding,JQuery

  • 为什么要手机号???

  • 所谓 ROA 这个 R 是可以更抽象的,并不是说一个 model 和 controller 是一一对应的关系;将你的操作抽象成另一种资源。比如常见的用户登陆与登出,就被抽象成了 session 这样一种资源的创建与销毁,sns 里面常用的用户之间的 follow 动作可抽象成一种 relationship 的创建和销毁,等等。。。

  • 没有乱码

  • 现在都集成到 Xcode 里了,见 1 楼,主要的麻烦是证书那一块,发布得用正确的证书,并且在程序里面要配置对

  • 我试了一些,发现有些很强大但是确实太复杂了,最后选用了 Wunderlist,因为它一简单,二免费,三可以在 mac 和 iOS 之间同步,呵呵

  • #19 楼 @jjym @fsword 哦,如此说,就是简单应用了 ruby 中一切都是对象这个基础,可能是我把问题想复杂了;我是在因为看到 groovy 里面的闭包支持,而 groovy 是以编译成 java class 的方式在 java 之上运行的,而 java 里面是基本类型不是对象,所以就想了解下闭包的实现

    多谢两位

  • @fsword 刚才仔细搜索了下,http://www.hokstad.com/how-to-implement-closures.html 这篇文章里面给出了可能的几种实现方式,确实有说明闭包对堆栈的特殊要求,也给出了类似你所说的复制式的方法,但是这是作者自己说实现一个 ruby 编译器的几种方法,仍然不清楚 ruby 自己是怎么做的

    哎,有点底层。。。也许不应该深究了

  • #15 楼 @fsword Java 我很熟,呵呵,java 里面没有闭包,匿名内部类在引用外部变量时必须 final,这个很好理解,因为不能在匿名内部类里面修改外部定义变量的值;但是闭包刚好是突破了这个限制,所以肯定不是简单的复制,如果是复制的话是做不到闭包执行完毕之后原外部对象的值也被修改了的(就像传值调用一样)

    class A
    
        def closure_method
            @x = 1
            lambda do
                @x += 1
            end
        end
    
        def x
            @x
        end
    
    end
    
    a = A.new
    m = a.closure_method
    m.call
    p a.x     =>  2
    
    
    
    
    

    所以任何语言中 closure 最大的魔力在这,我猜这跟底层堆栈的实现相关,跟一般方法不一样,不过一直没有找到确却的资料

    至于 ruby 中一切皆是对象,只是说可能提供了某种方便而已;毕竟闭包除了这点还有那复杂的上下文,跟传统的确实不太一样

  • #7 楼 @hooopo 因为 rest,所以基本上大部分时候都会和 id 相关,每次都要 to_i 一下,有时候确实会忘记一下。。。

  • #8 楼 @fsword 对了,我想继续请教个问题,ruby 中 closure 的变量绑定这些我基本清楚,但是我一直想知道闭包中这种延长外部变量的生命周期甚至在闭包中直接修改外部变量的值是怎么实现的。这个可能不单纯涉及 ruby,其他支持 closure 的应该也是一样;就我的理解,closure 的代码在执行时应该在一个新的对象中(或者说上下文)执行的,那么它是如何能够修改另外一个对象的某个变量甚至是方法中的局部变量的值的?我猜跟方法执行时的底层实现例如 stack 相关?一直想把这个弄明白。

  • #8 楼 @fsword 因为上面已经有热心人帮解答了闭包 binding 的问题,所以就只是告诉楼主另一种对付重名问题了,呵呵

  • #7 楼 @cantin 不好意思,先前把你的问题看错了,不是变量重名的问题。。。。 另外 block local variables 是为了解决 closure 内的局部变量和外部变量重名的问题,你这个闭包里面没有定义局部变量 x

    x = 2
    show { |;x| 
        x=1
        puts x 
    }
    
    
    
    

    更多资料可 google“ruby 1.9 block local variables”

  • 正好顺路问一下,大家有没有什么好的方法处理这个每次都要 params[:id].to_i 的问题?虽然 http 协议使得传回来的参数都是 string,但是 rails 有没有什么好方法来处理一下?

  • 闭包的变量是在声明时候绑定的。 另外为了解决在闭包中使用与其外部 scope 重名的变量这个问题,ruby1.9 中增加了新的语法,支持其只使用闭包内部声明的变量

    x = 1
    proc { |;x|   #注意这个新语法,使用";"就让闭包不使用外部x而使用内部x
        x = 2
    }
    
    
    

    所以楼主这个问题确实是一个问题,ruby 自己也看到了

  • PS3 - GT

  • 代码和注释的关系 at 2012年05月03日

    呵呵,我不会在需要使用一个 api 的时候去看源代码