谢谢分享,现在的 web 项目慢慢都变得复杂了,都不在仅仅是一个独立 Rails 应用了。
foreman 在开发环境作为 process 的 manager 工具非常便利,我已经逐渐把自己本地的各个项目切换到用 Procfile+foreman 来管理。
关于生产环境,ruby-china 的生产环境目标服务器是 Linux,Linux 或者其他 OS 都有自己的 process manager,upstair, system-v, 或者 OSX 的 launched,只要能用系统提供的就应该尽量用,如 mongodb 和 redis,不能直接用系统的就可以考虑 foreman。
@fredwu 谢谢分享!
从你的信息,我判断不出 rails31 这个 gemset 是否已经创建好了。
试试看 rvm use 1.9.2@rails31 --default --create
不管你怎么学,遇到多大的困难,不管如何挫折,一定要有信心,信心很重要! 不要因为复杂难以理解的业务和诡异的 bug 打击而失去信心,不要因为枯燥晦涩的英文文档而失去信心,不要因为身边高手众多而自己进步缓慢而失去信心,只要这一点能把持住,始终抱持信心,那么你的这些问题都是时间问题,而且过一段时间回头看,你会发现自己是处于螺旋上升的。加油,好运!
哇,这个招聘信息太带感了,支持!
我们的项目中也遇到这个问题,我们的方法是参照 Twitter 的做法,Twitter 有个开源项目叫做 twitter-text-rb https://github.com/twitter/twitter-text-rb
里面有个 autolink 方法,考虑的比较全面,也附有测试用例,你试试看提取这个 autolink 的实现是否符合你的需求:https://github.com/twitter/twitter-text-rb/blob/master/lib/autolink.rb
#3 楼 @lululau 嗯,我看在线文档多一些,大多数的常用 gem 的文档在这里都能找到 http://rubydoc.info/
另外我的习惯是,如果我用到某一个 gem,我更喜欢去 github 上 clone 一份源码到本地,遇到问题直接查源码,这样对 gem 的原理和实现把握更大,遇到问题更容易找到核心根源问题。
好像我答非所问了,ri 和 rdoc 在 ror 社区中根本没有流行起来,很多人都默认不为 gem 自动生成 ri 的本地索引,所以如果有兼容问题也不会及时修复。
如果你不用 ri 来查 ruby 的 class,modules 和 methods,你大可不必为每个 gem 按照 ri 和 rdoc,只需要在~/.gemrc
里面添加一行
gem: --no-ri --no-rdoc
贴一个不用 zsh,而是默认 shell 的 screenshot simple and just enough.
仅仅在.bash_profile
里面添加
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
PS1="\w\$(parse_git_branch) $ "
Capistrano 以工具的方式封装了很多领域知识,包括命令行,远程登陆,以及部署方面的很多最佳实践,并且定制灵活,这里有一个 2008 年 10 月份的 railscast 视频,虽然有点老,但是很多概念方面的东西至今依然适用: http://railscasts.com/episodes/133-capistrano-tasks
我回想自己当年第一次学习 Capistrano 的情形,我也是看着 deploy.rb 和文档依旧感觉稀里糊涂的。于是我用了整整一个周末,弄明白了项目中用的 deploy.rb 的每一行代码的意图,原理,背后的方法学,每个 cap 命令映射成 shell 的命令具体是什么... 用了整整两天弄明白了很多背后的领域知识后,对 capistrano 的理解就立即变得清晰,自然了。我至今认为每个有 deploy.rb 相关问题的朋友,都应该用一两天时间好好的深入挖掘 capistrano 背后的原理,补上关于系统管理方面的知识和经验,有了这些经验之后,对日后开发,部署,运维会带来非常多的好处,是一件投资回报率十倍百倍的事情。
Mac 的 MySQL 和 Linux 下的配置是有区别的,而 MySQL 默认使用 Linux 的配置。 建议你观察以下具体错误信息中说的那个找不到 mysql.sock 的那个地方的目录到底是否存在 这里贴一个最小的,但是能让 mysql 工作的配置文件 配置文件的位置 /etc/my.cnf 或者 /usr/local/etc/my.cnf 你检查一下,如果你的 /etc/my.cnf 不存在这个文件,你放一个在那里也行
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
init-connect ='SET NAMES utf8'
max_allowed_packet = 64M
bind-address = 127.0.0.1
port = 3306
socket = /tmp/mysql.sock
如果你用 brew install mysql 安装的,那么 brew 装好以后,把这些配置放到/usr/local/etc/my.cnf
,然后执行下面命令就完成了 mysql 安装了
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
关于如何启动 mysql 和设置开机自动启动,可以通过brew info mysql
查看。
因为作者是 @josevalim 引起了我极大的兴趣,我对 @josevalim 非常敬仰啊。
举个 JavaEye.com 的例子。 早期的 JavaEye 就有一个新手区(虽然我觉得有点歧视),一些管理员认为质量不高的帖子被管理员或者用户投票新手贴,超过一定的阈值后就自动被转入新手区,有时甚至删帖量达到了 90%,(无从考证)JavaEye 以这样的手法来保证整站的质量。虽然被不少人诟病,但是也成就了后来的 JavaEye,直到前两年,JavaEye 的访问量上升到另外一个层次的规模后,管理员已经没有能力/精力也无法管理好了,JavaEye 水贴泛滥,核心会员流失,最终跟 CSDN 合并(当然你也可以理解为抱大腿)。从这个过程中,有什么值得我们借鉴或者反思的么?
我翻墙直接用官方源安装的
~ $ gem install bcrypt-ruby
Building native extensions. This could take a while...
Successfully installed bcrypt-ruby-3.0.1
1 gem installed
#2 楼 @dexterdeng 就用 ruby 写逻辑代码啊,然后把 php 的 sdk 封装一下,提供命令行方式调用或者其他基于文本调用的方式都可以(Restful?)然后两个语言环境井水跟河水嘛。
php 的 sdk?是否暴露出命令行接口以及参数呢? 对象直接操作?可行吗?参考 MacRuby。
不知道 ruby 官网是由谁在维护,希望这位不知名的维护者能看到这条消息。 请将这里 http://www.ruby-lang.org/zh_cn/community/ 的 ruby-lang.org.cn 也改成 ruby-china.org 吧。
cool!
worker_processes 1;
events {
worker_connections 1024;
}
http {
passenger_root /Users/Daniel/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.10;
passenger_ruby /Users/Daniel/.rvm/wrappers/ruby-1.9.2-p290/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name awesome_project.local;
root /Users/Daniel/awesome_project/public;
passenger_enabled on;
rails_env development;
}
}