在Ubuntu 10.04上安装Rails3

1. 准备安装时使用的库
$ sudo apt-get install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev linux-headers-generic

2. 下载Ruby1.9.2源码编译安装
$ wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
$ tar -xvzf ruby-1.9.2-p0.tar.gz
$ cd ruby-1.9.2-p0/
$ ./configure –prefix=/usr/local/ruby
$ make && sudo make install

3. 准备环境变量
$ sudo gedit /etc/environment
添加环境变量
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ruby/bin"
修环境变量生效
$ source /etc/environment

4. 检查Ruby安装情况
$ruby -v

5. 创建关联
$ sudo ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby
$ sudo ln -s /usr/local/ruby/bin/gem /usr/bin/gem

6. 安装Rails
$ sudo gem install tzinfo builder memcache-client rack rack-test erubis mail text-format bundler thor i18n sqlite3-ruby
$ sudo gem install rack-mount –version=0.4.0
$ sudo gem install rails –version 3.0.0

7. 检查Rails安装情况
$ source /etc/environmen
$ rails –v

8. 创建应用测试
$ rails new myproject
$cd myproject
$rails server

(完)

第二届RubyconfChina大会

Blog Author With Marts

 

迫于世俗压力,我也与Ruby之父松本行弘来张合影。

第二届 RubyconfChina大会总得来说,无论是大会组织还是演讲内容都很不错,同时,我也很高兴在这次活动中看到了一些这个圈子的大牛(由于一直潜水,我认识他们,他们都不认识我,这个有点杯具:|)。

先谈谈自己的在这次大会的收获

我们知道Ruby的成功很大程序度上依赖于Rails的成功,所以Ruby on Rails是其最大的亮点。而基于JVM引擎的另外两个开源项目Groovy + Grails与其非常相似,但后都有着三大必杀技:

  • Java语法兼容
  • 现有的众多的基于Java资源
  • 与企业级应用,尤其是J2EE的天然集成能力 虽Grails明显模仿了Rails,但从使用的角度来看,这也无伤大雅。所以,我一直很纠结是学习前者还是后者。

在与社区成员交流过后,我觉得我找到了选择Rails的原因:

  • 从项目创始人来说,Rails的作者显然更具实力,所以相信强人,选择Rails
  • 从社区情况来看,尤其是在中国,RoR社区活力也明显强于Grails
  • Rails的成熟度要高于Grails
  • JRuby很好的打通了Ruby与Java的通道
  • Rails有更多的大规模应用的案列,其中有包括:JavaEye

最近NoSQL正火,而这次的活动中正有此主题。我虽然对于NoSQL比较有兴趣,但我也只是知道点皮毛,我很想知道NoSQL的应用场景与适用领域。另外,由于现有的NoSQL实现实在太多,我也很想知道应该选择哪个实现下手。虽然我努力的举手想问庄表伟几个问题,但是主持人一直忽略我的存在,对于这个我比较火大。对于NoSQL的认识有以下几点:

  • NoSQL实现基本都是以键值的方式,NoSQL系统关注于数据组织与管理,对于如何使用这些数据没有过多观注。我们即可以象使用Hash一样使用数据,也可以在其上建立适配器用SQL的方式访问数据。
  • 好象MongoDB是个不错的选择
  • 根Brewer的CAP理论,一致性、可用性、分区容忍性在分布式环境中不能鼎力,一个分布式系统只能有限的实现两者要求。

我很想知道RoR能否用于大规模系统,以及如何构建。坦白讲,这方面的内容我没怎么听懂,主要是由于架构中所用的技术我不太了解。我个人对此问题的看法是:

  • RoR可以用于大规模系统,但是要借助众多的辅助技术与开源项目,其项目本身好象并未提供很好的支持
  • 要提高RoR处理能力,一方面要从RoR本身下手,例如:更好的架构设计,另一方面还要分析系统瓶颈,例如:使用NoSQL而非RDBMS来提高数据处理能力。
  • RoR也并非所有应用场景通吃,从参加活动的技术人员得知,国内大部分公司还只是将Ruby或RoR用于一些辅助系统或网站系统,很少将其应用在企业核心或关键系统。

技术以外的几点看法

给技术人员讲业务和给业务人员讲技术都是正确的做法。演讲者中有几位老外所讲的主题显然是忽悠为主的,对于技术人员的帮助不大,虽然象我这种从事忽悠行业的人员看来其实一般(主要是文化问题,要知道忽悠也是要有相同的文化背景才能下手的,就象你很难给老外讲笑话是一个道理),但是好象很多技术人员觉得很受用,这也从另一个方面说明,广泛的知识背景比深入的专业研究更容易从事忽悠行业。

几位演讲者还是有很多改进空间的。首先是衣着,我觉得这种大型活动,作为演讲者要么就个性点,张扬点;要么就是中规中矩,西服革履。显然有几位演讲者没有做到这点,很难想象一位演讲者居然不扎衬衫(好象也没有烫过),不带领带就上台。这还真不如老庄那样,穿个大裤衩加T-Shirt效果更好些。

其次是演讲技巧的问题,有些演讲者缺乏演讲激情与感染力,这很难产生与听众的共鸣。还有就是演讲缺乏明确主题与重点,也就是说缺乏Key Point。一个片子那么长,作为一个演讲者应该心中明确什么是我真正要传达给听众的,哪些是要听众记住的,哪些是让听众知道就成了。如果通篇都是一种声调,一种信息传递方式,加上杂乱的观点组织,这就很难让人不睡觉了。

最后就是语言问题了,很多演讲者的英文并不过关,尤其是日本人朋友。如果会议中又没有同声翻译,那么演讲者再有激情也是无用的,这让演讲效果大打折扣。与其这样,我倒觉得演讲者不如多做点功课,哪怕把演讲要讲的内容先写下来让听众有得看也好呀。

总得来说,这次活动还是非常成功的,如果时间允许,我还是会来参加的!