Archive for 十一月, 2009

落户GitHub

星期一, 十一月 30th, 2009

在完成了GitBar和RubyMine Extensions后,决定在GitHub上落户,接下来会做几个小型的应用,打算部署在Heroku上,主要是和大家进行交流。我在GitHub上的静态Blog: http://linux-china.github.com

关闭Book Shelf链接服务

星期天, 十一月 29th, 2009

这段时间,不少会员告诉我,网站已经无法访问,有时非常慢,主要原因是网络负载高。周末的时候,发现有不少非法用户对Book Shelf进行滥载,造成了正常的业务无法运行,拟定关闭Book Shelf连接服务,仅提供浏览和查询,希望大家谅解。 Maven Repository还会继续提供,方便大家开发。

如何判断Ruby中的函数返回类型

星期天, 十一月 29th, 2009

在Ruby中,你很难知道函数的返回类型,理由很简单,Ruby不是强类型语言,再加上Meta Programming,那就更难确定啦。当然啦,程序员是能确定的,要不程序就无法运行啦。但是IDE工具就没有人这么智能啦,它需要明确知道函数的返回类型,然后才能做相关的代码提示和导航。那么如何处理这种关系?RubyMine通过Extension机制可以让IDE工具明确了解函数的返回类型。下图就是Rio的一个实例:
通过简单的设置,rio函数就知道其返回类型为RIO::Rio,然后就可以代码提示啦,这样代码提示和导航就精准多啦。RubyMine的扩展脚本我已经放在 http://github.com/linux-china/rubymine_extensions ,目前主要包括Rio和Hpricot,陆续会再增加。安装很简单,git clone后,打开RubyMine,选择”Extensions”,然后执行clone的目录,这样就可以啦,以后每天定时pull就可以啦。

NetBeans和RubyMine代码提示对比

星期天, 十一月 29th, 2009

一直在使用RubyMine,也没有接触过NetBeans Ruby版本,安装了一个,进行了一个代码提示的基本对比,如下: NetBeans Ruby Edition:
RubyMine:

就代码提示的智能性方面,还是差别挺大的。可能我对NetBeans不太了解,可能有其他方法进行智能过滤。在RubyMine中可以通过Extensions Ruby脚本实现某些方面的智能。

山寨SSD

星期五, 十一月 27th, 2009

看到这些参数: 1. SSD SATA 2.5寸 SLC 32G 2. 连续读取平均速度 215.1 MB/Sec(206.5 -216.2 MB/Sec) 3. 连续写入平均速度 202.9 MB/Sec(173.6-211.5 MB/Sec) 如果是Intel的SSD,如果你没有3500大洋,估计搞不定,但是这款SSD目前在淘宝的售价是1180元,当然你还可以砍一些价,价格会再低一些。这些低价的SSD硬盘通常称之为为山寨SSD,内幕:SSD制造技术不比温氏硬盘要求没有这么高,一个电子厂都可以生产。 个人也在用一些山寨货,看来我要考虑这个山寨SSD啦。

Lucene 3.0发布

星期四, 十一月 26th, 2009

Lucene 3.0正式发布,主要特性还不得而知,不过之前讨论的都是关于性能的提升,3.0的性能将会有很大的提升。详细情况请访问: http://lucene.apache.org

关于空指针异常(NPE)处理的一些个人意见

星期四, 十一月 26th, 2009

空指针在Java中是最常见的错误啦,通常我们很难消除,个人有一些意见,如果使用得当,可以消除大部分空指针异常: 1 函数的返回类型如果是集合类,不要返回null值,应该返回Collections.emptyList()等,这里有一个约定,返回类型为集合类不应该返回null 2 如果返回对象值可能为空,一定要加上@Nullable,这个是IDEA的一个annotation,可以帮助你进行空指针判断。如果你的返回对象不可能为空,添加一个@NotNull 3 使用IntelliJ IDEA的External Annotation功能,如一些第三方包,你是无法修改其源码的,但是External Annotation机制可以让你给这些包虚拟添加annotation,所以同样能进行空指针检查 4 最后还是要留心一下,annotation不可能加到每一个对象上,结合业务,自己要留意一下。

IDEA 9.0下编写html文件小技巧:快速添加双引号

星期四, 十一月 26th, 2009

在一些HTML文件时,发现tag的属性值经常会没有使用双引号,有的时候要添加双引号,这个发现很麻烦,输入一个双引号后,然后光标移到属性值末尾,输入下一个双引号。在IDEA 9.0下,添加一个智能匹配双引号的功能,你使用Ctrl+W选择属性值后,然后按下双引号,这个时候IDEA会自动添加匹配的双引号,这样就便捷多啦。这个功能对xml属性值,Java的String变量值都适用。 选中98,然后双引号键,会有惊喜! 这一个特性在RubyMine中体现更为明显,如果对Ruby有兴趣可以去RubyMine中体验一下。