bundle在ruby的世界里是个好东西,它可以用来管理应用程序的依赖库。它能自动的下载和安装指定的gem,也可以随时更新指定的gem。

rvm则是一个命令行工具,能帮助你轻松的安装,管理多个ruby环境。每个环境可以指定一系列的gem。它允许你为每一个项目指定其ruby的版本,需要的gem的版本。这能最大限度的避免由于ruby环境的差异,或者不同版本的gem造成的各种问题。

当我在项目中引入了rvm后,使用rake命令时,每次都会出现这样的异常。

1
2
3
4
5
6
7
8
rake aborted!
You have already activated rake 10.0.0, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.3/lib/bundler/runtime.rb:31:in `block in setup'
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.3/lib/bundler/runtime.rb:17:in `setup'
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.3/lib/bundler.rb:116:in `setup'
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.3/lib/bundler/setup.rb:7:in `<top (required)>'
/Users/twer/sourcecode/octopress/Rakefile:2:in `<top (required)>'
(See full trace by running task with --trace)

Read More

2012年12月18日,第11期TWI在中国西安举行了。这次参加培训的角色有admin,有hr,有Ux,当然更多的是QA和Dev,估计是最齐全的一届。

虽然TWI已经过去好几天了,但是我还在回味那培训中的一幕幕。

关于这几天的经历,我可以用几个关键字来形容。

吃:

虽然我们来到西安是学习滴,但是也不能委屈了自己的胃。刚到西安就先吃了羊肉泡馍,外加一个肉夹馍才感觉有些饱。第一天中午办公室定的凉皮和肉夹馍,典型的北方特色,符合我的胃口。第二天晚上我们team building,去的小杨烤肉,刚开始打不到车,气氛有些低落,但是到了饭馆气氛慢慢火热起来,最后吃完了大家大摆龙门阵,海量重量级八卦被爆出,气氛异常火热。


Read More

《JavaScript语言精粹》这本书句句是精华。如果你想只读一本书了解JavaScript,这本是你的不二选择。

这么薄的一本书讲JavaScript的特点介绍的非常清楚,是我对JavaScript的认识更加的深入。以前总觉得函数式编程很难理解,但是看了这本书以后我觉得对其有了一个新的认识。严格意义上说JavaScript并不仅仅是一门函数式编程语言,书中有一句话对它的特性做了一个精彩的描述:JavaScript的许多特性都借鉴自其他语言。语法借鉴自java,函数借鉴自Scheme,原型继承借鉴自Self,而JavaScript的正则表达式特性则借鉴自Perl。

Read More

在今年的的ThoughtWorks China away day上,我见到了这本书的作者neal ford, 我们还有过简单的交流,并一起去爬了长城。惭愧的是当时我并没有读过他写的这本书。直到今天我拿到了这本书,并花了大半天的时间通读了一遍。看完以后,我觉得这本书真是太好了,非常值得一读。

但是,我想读这本书的读者,大体会分为两个反应。一种是看了一下前面,觉得没有意思,大概翻了翻,发现作者真是太罗嗦了,就丢到了一边。另一种是爱不释手的从头看到尾,看到有些段落会会心一笑,有些段落则加上重重的标记,并决定马上就要开始实践。

如果换做半年前的我,我是第一种反应,而现在,我当然是第二种反应。主要是这半年在ThoughtWorks的历练,使我变得越来越有成效。列举一个真实的例子。在我的前一个项目中,我们做的产品是一个提交保险单的系统,用户要讲过一个一个的page
flow直到完成一个保单。如果我要开发的或者测试的feature在第7页上,我每次都需要输入大量的数据,点击大量的按钮从第一页走到第7页。试想每天要重复N次真让人崩溃。后来有人就写了一个JavaScript脚本,可以一次填充一页的数据,并自动跳到下一页。我们把这个脚本保存到一个bookmark上,每次只要点击6下就能到第7页。

也许你们说这样已经简化很多了,但是追求卓越的我们并没有止步。我后来了解了selenium IDE这个在firefox下的插件。这个插件作者在书中有提到过。我用selenium IDE录制了一个脚本,只需要点击一个按键,程序就会自动的走到第7页。这样比手动输入速度至少提高了10倍以上。正如作者所说,我们这样的尽量实现自动化操作节省时间不是第一目标,最重要的目标是不要让程序员在一遍遍的手动操作中变傻,而是让我们精力变的更加集中,focus到更具有价值的地方上去。

我觉得每个程序员都想变得高效,但是面对新的方法,新的工具总是或多或少有点畏惧心理,这是因为他们无法体会到采用一种新方法或者新工具带来的震撼的效果。所以对于我们程序员来说绝对要勇于尝试,勇于突破现状。

回顾了一下作者在书中列举的自己感兴趣的东西,顺便对自己做一个总结。(本人使用的是mac pro,所以tool和plugin只关心mac上的。)

Read More

从5月份加入ThoughtWorks到今天,已经接近3个月了。这3个月对我来说意义重大,时间虽然很短,但是我学到了很多很多的东西。我感到需要对自己做一番总结,使自己能够持续快速的进步。
先说说这2个多月在ThoughtWorks中我的改变。

  1. 行为意识的改变,变得更加积极主动。在ThoughtWorks是没有Title的,每天没有人会强迫你干什么,而自己要非常的积极主动来做事情,为团队的发展贡献出自己的力量。

  2. 思考方式的改变,多问为什么,而不盲从。ThoughtWorks的每个人都很健谈,尤其是谈论技术来滔滔不绝,这些都是建立在对目标了解透彻的基础上。所以我在思考问题的时候,应该抓住重点,往深处挖掘,而不是停留在表面浅尝辄止。

  3. 学习能力的改变。一个人能力有多大,很大一部分取决于他的自我学习能力。学习能力强,接收新事物快,他的知识会源源不断的涌来。在公司这段时间,我发现大家的自我学习能力都很强,一个新技术、新工具很快就能上手使用。我在平时注意收集和观察别人的学习方式,并且尝试使用到自己身上,收到了一定的效果。

Read More

当我们想查询git某条指令如何使用时,git官网有详尽的文档供我们查看。在命令行下我们也可以随时通过 git –help的方法查看某条命令的详细帮助。

相对于在Terminal中内置的帮助文档,HTML格式更清晰,更详尽。

但是如果我想在无法上网的情况下也能查看git官网的详尽的帮助文档,有没有办法那?当然有了,下面就教大家如何在本机搭建git的HTML帮助文档。

在Windows上设置很简单,主需要安装Msysgit,就会自动为你设置起本地的HTML帮助文档。所以这篇文章主要讲在Mac和Linux下该如何实现。

Read More