• 这个可以去看 bundler 的文档:http://bundler.io/v1.3/gemfile.html

  • 我用了 Puppet 有一年多。也是在 Vagrant 里面搭环境用。Puppet 代码 + 配置模板大概上千行。是从自己对 Puppet 一无所知开始写起。所以借题扯个蛋吧。

    需要强调的是 Chef 我一点都没用过... 所以下面出现的 Chef 信息可能有误。

    最开始接触 Puppet 和 Chef 的时候感觉一下子要学好多陌生的概念,好讨厌。当时 Puppet 的文档比 Chef 亲切得多,陌生概念也比 Chef 看上去要少一点,"快使用 Vagrant" 的欲望又十分强烈,就先从 Puppet 用起来了。虽然 Puppet 和 Chef 默认的设计都是 Master-Agent 的架构,但也都可以在单机内使用。我的使用方式就是 Vagrant 提供的 puppet provisioner, 由 Vagrant 替我 ssh 进虚拟机然后跑 puppet apply. Chef 的等价物是 chef-solo.

    用到现在,对 Puppet 比较恼火的有以下两点

    • 执行顺序不确定 (non-deterministic). 虽然说正确的做法是开发者应该显式声明依赖关系,但 Puppet 的问题是当我犯了错误没能正确声明依赖关系的时候,不一定会在测试中出错... Chef 就不存在这个问题。以及,当我需要在一个 puppet class (Chef 方面的等价物好像是叫 recipe?) 里序列化地部署几个资源时,本来是一目了然的自上而下的顺序,却还要手动声明这几项之间的依赖关系。另一个小问题是后来我需要在部署完成时打印一条成功提示,由于 Puppet 没有执行顺序这回事,所以需要用某种不整洁的 hack 才行。甚至 Puppet 后来又引入 Stages 机制用来解决此类问题......

    • Puppet 自己的语法始终觉得不习惯。而 Chef 完全是 Ruby 语法。似乎也存在有 Ruby 语法版的 Puppet, 这个没有仔细深究。

    如果现在给我再选择一次的话,估计会坚持把 Chef 啃下来。不过现在这样说实在是这山望着那山高...

    至于说"能在 Vagrant 中使用"这件事,一方面要看 basebox 里是否预先安装了 Chef / Puppet. 另一方面要看 Vagrant 是否安装了 provisioner 整合支持。官方文档里列出 Ansible, Chef, Puppet 这几个意味着内置支持。以及 vagrant-omnibus 这个插件会帮你在虚拟机里安装 / 更新虚拟机里的 Chef. 我用的 basebox 里的 Puppet 至今还没更新过。

  • #11 楼 @assyer 为生产部署做准备的话,建议在虚拟机里装上和生产环境一样的系统,然后在虚拟机里折腾。毕竟现在在 Mac 上积累的知识到了生产环境里未必用得上。

  • 我猜 LZ 应该不会是在拿 Mac 当生产环境使用。如果只是为了满足开发环境需要,直接用 Unicorn / Puma 就可以 (这两个都是 HTTP server, 可以 i 与浏览器直接通信). 没必要折腾 nginx.

  • 多种语言协作的环境很常见。

    另:http://www.paulgraham.com/pypar.html

  • Zsh. 配置是 SAVEHIST=2000 # 后面是 alias

    218 vim
    180 rm
    147 cat
    109 l # ls
    97 p # pacman
    83 g # git
    66 pa # packer
    63 s # sudo
    56 cd
    47 man
    

    在开发虚拟机里的结果是

    435 g # git
    151 vim
    127 gl # 某格式的 git log 
    84 s # sudo
    83 l # ls
    70 ag
    62 rm
    61 cat
    52 fab
    51 cd
    

    你们的 cd 用得都好多 - -

  • 趁热 bump 一下... 目前觉得最大的问题是不支持页面缩放。上了年纪的人用着不方便... (这是要自己重写一个的节奏...)

  • #4 楼 @greatghoul 哦原来你的意思是离线 & web 版.... 那就不知道了 - -

  • #2 楼 @greatghoul Web 版的替代品也存在:

    http://start.gotapi.com/ http://doks.io/

    速度上肯定是离线的更好些。

  • Warning 所说的意思是从文件系统里找到的 libxml 和编译时的 libxml 版本不符。把 nokogiri 删了重装试试?

  • 很难在几句话之内说清楚。

    只说一个问题严重的:1.8.7 已经不再被 Ruby core team 支持了。即使曝出有致命的安全漏洞,也不会发布新版来修复。所以最好不要用。

  • 肯定是只剩老板了...

  • 话说回来,现在写 JS 的也未必要用 for 循环。有 ES5 环境的直接用 Array#each, 被迫兼容旧 IE 的话也可以用 jQuery.each, underscore 的 _.each 等。就不用担心这个问题了。

  • def create_functions
      result = []
      for i in 0..9
        result[i] = lambda { i }
      end
      result
    end
    
    puts create_functions[0].call
    

    EDIT: 忽略了 i++ 的问题。见 #2 楼

  • 读取 EXCEL 问题 at 2013年06月19日

    建议换个方案:https://github.com/Empact/roo 不需要装 office, 甚至不需要在 windows 上运行。

  • 假如我能起得来床,就去...

  • Arch 用户表示升级要勤快... 而且注意跟进一下官网新闻就不会出事故。

  • 看一眼 /etc/gemrc 的内容,是不是有 --user-install 之类的设置,如果有,那么这会把 gem 安装到 ~/.gem/ruby, 在 /usr/lib/ruby/gems/ 自然就找不到。目测 bundler 对 --user-install 是不太友好的。

    Archlinux 希望通过 pacman 安装的 rubygems 包与用户自己通过 gem install 安装的包互不冲突,所以把这个配置写死在 /etc/gemrc 里。

    解决办法是... 我也说不好。干脆直接用 rvm / rbenv 可能是个比较彻底的方案吧。

  • #2 楼 @Ryan 严格来说,Flash 是 session 的一部分。而目前你选择的 Session 的储存机制是 CookieStore.

  • Fedora14 下 如何安装 rails3? at 2013年06月07日

    呃。那我只能说无法帮忙了... Fedora 系统完全没有用过,不知道这坑还有多深 - -.

  • Fedora14 下 如何安装 rails3? at 2013年06月07日

    呃。日志的大意是能找到 gcc 但认为 gcc 不能工作... 看下这个文件所在的目录里是否还有个 config.log 文件?里面可能有更详尽的错误信息。

  • Fedora14 下 如何安装 rails3? at 2013年06月07日

    #8 楼 @zhangyuxiu 默认的安装方式只会为当前用户安装 rvm, 以后使用 rvm 也不再需要 sudo. 所以我觉得这个并不算是错误。

    再试一下 rvm install 2.0.0? 感觉应该是已经装好依赖了 - -. 再不行的话,按照 #4 楼 的截图中倒数第二行的指示看一眼那个 log 文件的内容。

  • Fedora14 下 如何安装 rails3? at 2013年06月07日

    #6 楼 @zhangyuxiu 没错。确实是编译 Ruby 的过程出错了。猜测应该是某些所需的依赖不存在,按照官方文档:https://rvm.io/rvm/prerequisites/ 的说法,执行 rvm requirements 可以指示你安装这些所需依赖。

  • #3 楼 @oicuicu 需要提问题的话单独发个帖吧。顺便最好看一下发帖界面右侧的帮助提示,看应该能怎样更好地贴代码。实际上一般在论坛贴代码都很难读,最好发到 http://gist.github.com/

  • Fedora14 下 如何安装 rails3? at 2013年06月07日

    #3 楼 @zhangyuxiu 这张截图给出的信息稍微有点少,比如说你之前执行过的完整命令不在截图里。可否把完整的输出贴出来?最好把文字复制粘贴到 https://gist.github.com/ 而不是截图发论坛。

    另外,#4 楼 这个错误的原因是 beginrescueend.com 这个域名已经不再为 rvm 项目服务了。所以访问失败。而且我非常不建议把两个教程中的命令混合起来执行,尤其当你自己觉得自己还是新手的时候。