使用emacs而非普通ide的几个理由

轻便:emacs包括海量的文档也只有28M, 而eclipse一般是100多M,这就算轻便的了,visual studio是以G记的。而且emacs在启动时会占用更小的内存,更小的资源占用意味着更稳定,可以反复启动多次也不觉得浪费时间

支持:ide里eclipse只有对java和c++算是全功能,其他语言支持较少。visual studio因为是微软产品,除了对微软自家东西之外没有任何支持。而对python和ruby等开源语言或者clojure等新兴语言甚至是小众语言。这些ide要对一门新语言支持,等把。而emacs和vim等文本编辑器就好得多。

可定制性:在ide中想增加一个新功能,哪怕比较简单。提交bug报告然后等新版本吧,还不一定有。在emacs里你只要用lisp写新的代码然后hook到已有的模式,甚至直接改写已有模式就行了。

文本编辑功能:在emacs中即使在特定模式一般全局按键都是可用的,比如跳转到行首行尾,按词移动等。eclipse里也有类似特性但是emacs里更多。

因为ide能做的emacs大部分都能做到,而emacs能做的很多ide都无法实现,所以干嘛要用ide呢,无非是要付出时间去学习而已

从官方安装RVM出现编译安装解释器出现错误的解决本办法

RVMRVM = ruby version manager,它本质上是一组shell脚本,通过从官方下载源码编译来获得ruby解释器,通过它可以让多个版本的解释器共存于一个环境下,这是很方便的。

使用rvm,有很多好处,你可以同时拥有多个ruby版本来运行不同的服务,而且每个解释器可以有自己的gems(第三方库)。而且由于是从官方下载源码编译,它可以第一时间拥有最新的解释器版本,而不用苦逼的等包管理器更新,实际上现在apt里也没有1.9.3版本的ruby。而且出于特殊目的用到老版本时,可以放心的安装而不会影响到现有服务。

从官方安装rvm,并且按照rvm requirement安装所有依赖后,编译安装解释器出现错误

Retrieving rubygems-
There is no checksum for 'http://production.cf.rubygems.org/rubygems/rubygems-.tgz' or 'rubygems-.tgz', it's not possible to validate it.
If you wish to continue with unverified download add '--verify-downloads 1' after the command.
There has been an error while trying to fetch the source. 
Halting the installation.

搜索后有人给出答案:
It looks like a bug, but it most likely is fixed already as I can not reproduce it, update RVM and try again:
rvm get stable
rvm rubygems current

升级rvm,然后重新安装rubygems,解释器出现错误的问题就解决了。

关于编程的一些感悟

这几天我在虚拟机里安装了ruby version manager,试图重写自己过去留下的几百行乱成一团的代码(虽然都还能用),并打算进个小步啥的,结果几天下来,一无所获。

于是我想:what the hell are you doing?

然后我试着又去搜索,看库文档,重新翻看编程书籍,但是感觉还是没什么进展。你没找到自己想要的。but why?我躺在床上一遍又一遍想这个问题,后来忽然有种悟的感觉:
那一切都他妈是扯淡。

当然,编程书籍是重要的,文档也是重要的。但是一本书并不能提供你的水平。我甚至购买了O’Reilly出版的ruby编程语言,结果呢,我懂得很多一般开发人员都不知道的细节和诀窍,但是我能独立开发一个web网站吗?显然不能。

书和文档,提供给你的只是零件,怎么把这些乱七八糟的齿轮组装成能用的机器则是你的问题,是人的问题,要解决这个问题,唯有学别人的样——读源代码。

因此一门好学的语言,当然语法简单也很重要,但更重要的是能不能找到好读的项目代码。ruby大部分的gem,都属于web开发领域,少数web无关的也都很陈旧,而他们往往依赖于其他gem,被依赖的gem很多已经升级换代导致api都不兼容了,所以这些web无关的玩意儿可能根本就跑不起来,本身都需要改写,谈不上再从中学习。(我感觉)python和perl就好一点。但更好学的,当然就是javascript,丫几乎无处不在,所有的web网站都有javascript,userscripts.org上有成堆的js脚本,firefox和chrome所有的扩展都用js写成并且可以拆开来看,要获取源码实在是太容易了!而且依赖google的v8引擎,js是现在几乎最快的可媲美c++的脚本语言,用node.js,可以脱离浏览器使用。

所以我将学javascript。其实api,库文档,书籍都不重要,那些标准,三年之后就全变了,干嘛要努力去记住呢?重要的是学习的速度,是结果