Rails 2.1 Release
Over the past six months, we’ve had 1,400 contributors creating patches and vetting them. This has resulted in 1,600+ patches. A truly staggering number. And lots of that has made it into this release.
New features
The new major features are:
-
Time zones (by Geoff Buesing): Tutorial | Introdction | Railscast
-
Dirty tracking: Introduction (partial updates) | Railscast
-
Gem Dependencies: Introduction | Railscast
-
Named scope (by Nick Kallen): Introduction | Railscast
-
UTC-based migrations: Introduction | Railscast
-
Better caching: Introduction
Partial Updates 大期待,其实原来一直以为 Rails 里面早就有了这个功能
,没想到现在才有,想想现在更新文章的浏览计数,就要把整篇文章再保存一遍,真让人不爽。
正好 Chito 1.0.6 刚完工,1.0.7 就迁移到 Rails 2.1 上去。
Chito 1.0.6 更新摘要
终于把 is-Programmer 换成了 Chito 1.0.6,以后 is-Programmer 也完全基于 Chito,随着 Chito 更新而更新了。
以下是更新摘要:
核心
- 大幅提高了边栏和导航栏的生成速度。
- 支持插件 js 和 css 缓存。
- 改善了插件视图结构。
- 多语言 ( 目前: 英文 & 简体中文,根据浏览器默认语言偏好设置来改变)。
- 用户密码 salt 加密。
功能
- 保存并继续编辑。
- 边栏和导航栏的浮动窗口设置。
- 指定永久链接后,将生成带有日期的文章地址,例如: http://liyanrui.is-programmer.com/2008/5/30/context-mkiv-zh-typescript.3062.html
- 用户登录,不必再跳转到首页。
- 评论
- 评论审核机制。
- 过滤链,支持对评论的多重过滤。
- 不再用 alert 提示评论错误信息,改用更平滑的 ajax 效果。
- 评论的表单外观改善。
- 验证码转移到插件,可以选择是否启用。
修正
- 大写扩展名文件缩略图不生成的问题。
- 评论换行丢失的问题。
- IE 下 image resize 的 js 错误警告问题。
- IE 下管理界面菜单的显示问题。
- IE 下删除草稿、留言后的跳转错误问题。
- 文章自动生成的简介中带有 %nbsp 的问题。
插件 & 皮肤
- 高亮搜索的关键词插件。
- Scribbish 皮肤。
配置了下双显示器
当初安装服务器的时候,买了一个 14 吋的小显示器,晚上突发奇想,决定发挥一下这个显示器的余热。
本来做好要折腾一番的心理准备,结果却发现双显示器的配置异常的简单,倒是趴在地上插显示器线费了半天劲
。
直接在 xorg.conf 中打开 Nvidia 卡的 TwinView 功能就可以了,不知道 A 卡有没有这么简单:
-
Option "TwinView" "True"
其实还要在 xorg.conf 里设置第二显示器相对位置之类的,但是完全可以启动后用 nvidia-settings 来完成,如下图,拖动显示器到你想要的位置即可,然后把改动保存到 xorg.conf 就可以了,不要忘记用 root 用户运行 nvidia-settings:

用来放一些 Screenlets 最合适了,也可以放个终端监测某些任务。
最大化窗口的话,窗口只会充满当前的显示器,非常方便~ 
Chito 1.0.6 收工
断断续续的终于完工了 1.0.6, Chitolog.org 已经换上了 1.0.6,如果没有什么问题,就可以发布了。
这次也要把 is-Programmer 升级到 1.0.6 上来
。
更新的内容不少,过两天再总结,vym 的草图最能说明问题,相比之前的
那个小列表
,不知不觉间确实是长了不少
。
移植了 Scribbish 主题
貌似不少基于 Rails 的 Blog,都是用的 Scribbish 这个主题,风格简洁明了,适合技术 Blog。
于是这次也顺便移植到了 Chito 上来,和 Typo 一样,Chito 1.0.6 默认也将包含这个主题。

实现了 Akismet 插件
既然实现了评论过滤,那么实现 Akismet 插件就是理所应当的了
。
Akismet 官方有开发手册,接口非常简单,你也可以参考 RailsCasts 上的 Akismet 教学视频,注意参数名称,还有不要遗漏必要的参数就可以了。
由于是多用户 Blog,每个人想要使用 Akismet 之前要设置自己的 Akismet API key,注册一个 WordPress 帐号就会拥有一个 key,完全免费,然后把这个 key 填写到设置中即可。

中国,加油
Firefox 3 CSS Hack
Firefox 3 RC1 终于横空出世,试用了一下,感觉不错,页面渲染速度提升非常明显,js 的执行速度也有很大的提升,cpu 和内存占用率也下降不少,对此我已经相当满意了~ 
中文版上还有个粗心的笔误
:
![]()
Firefox 2 和 Firefox 3 在 CSS 的渲染在某些细节上还是有点差异,毕竟 Firefox 3 完全通过了Acid2。比如,这次 Chito 1.0.6 里面就碰到了,下面第一张是 Firefox 2 下期望的外观,到了 Firefox 3 下就变成了后面的样子:

所以有些时候确实需要 Firefox 3 的 CSS Hack,网上搜了一圈,好不容易看到了个:
-
#hack, x:-moz-any-link, x:default {
-
/* Firefox 3 style here */
-
}
这样 #hack 这个 id 的样式,只有 Firefox 3 可以解析,不去深究这样写的意义是什么,尝试了一下确实有效。
Chito 也支持浮动窗口了
Chito 边栏的功能是插件提供的,虽然在 “外观 -> 边栏" 下可以调整边栏的位置,但是想要调整某个边栏项的设置,就得跑到 “插件” 下去找,非常麻烦。
同样处境的,还有导航栏的设置,还有将来的评论过滤器的设置,所以搞个像 WP 那样的浮动设置很有必要。
正好看到了 Prototype Window,这个不错的窗口库,构建于 prototype 和 script.aculo.us 库之上,对于 Rails 项目来说很合适。
还附带了 Rails 的 Helper 文件,方便到家~ ![]()

拆分数组
Ruby 中的 Array 类提供了非常实用的 select 和 reject 方法,可以方便的从数组中挑出或剔除符合条件的元素:
-
a = [1,2,3,4,5,6,7,8]
-
a.select {|x| x % 2 == 0}
-
>> [2,4,6,8]
如果想要把数组拆分成两个集合,一个符合某个条件,一个不符合,要怎么办呢?
可以先写一个 select 然后再来个 reject:
-
a = [1,2,3,4,5,6,7,8]
-
even = a.select {|x| x % 2 == 0}
-
odd = a.reject {|x| x % 2 == 0}
-
>> even = [2,4,6,8]
-
>> odd = [1,3,5,7]
这样的话,不仅条件要重复写两遍,数组中的元素也要遍历两遍
。
可以利用 Ruby 可以返回多个值的特性,来写个 separate 函数:
-
class Array
-
def separate
-
yes, no = [], []
-
-
self.each do |x|
-
yield(x) ? yes << x : no << x
-
end
-
-
return yes, no
-
end
-
end
这样,数组拆分一次就可以搞定了
:
-
even, odd = a.separate {|x| x % 2 == 0}