闲聊 Google Me

最近传闻 Google 即将退出自己的 SNS 平台,以和 Facebook 抗衡。撇开传言的真假,来看看 Google 目前有什么

  • Buzz – 粗略理解为微博、个人状态
  • Contacts – 联系人,天天同步的那个(我连 Mac OS X 地址簿都同步)
  • Gmail – 最好的邮件服务
  • Google Talk – 不解释
  • Profile – 个人档案(不知道的看 这里
  • Maps – 地图服务,延伸至 Latitude
  • Reader – 阅读器,信息分享
  • Groups – 讨论组
  • Sites – 敏感词
  • Search – 看家的,附赠 bookmarks。人家 Facebook 已经通过 Like 按钮开始索引整个互联网了
  • YouTube – 视频分享
  • Calendar / Docs / Picasa – 敏感词

现在把这些互相用线连起来,然后一起方到 http://google.com/profile 页面里,你能看到什么?LinkedIn ?应该不止。再用 OpenSocial 胶一下,Orkut 可以靠边站了

P.S. 好久没写博客,懒,以后尽量更新

推荐一个console插件

前几天在看 screencasts,发现一好插件:Hirb 。这是个扩展命令行的插件,可以以更加易读的形式展现方法返回的内容(比如以 mysql 输出的形式展现 ActiveRecord 实例)

gem install cldwalker-hirb --source http://gems.github.com/ # Append the following lines into ~/.irbrc require 'rubygems' require 'hirb' Hirb::View.enable 

Screenshot of Hirb

发现“里克”

睡觉之前,习惯性的打开 google reader 看看国外有没有最新的 feed。空白的列表,唯有推荐中小字一行:里克的自习室,关注Ruby和Rails学习与开发

发现里克。

发现了一位创业者,一个普通的程序员,一个与生活做斗争的坚强的父亲。我无法描绘出心里的感受,所能做的,只是默默的记下这些,在心底祝福。

里克,一切都会好的!

生活并不平台,里克在努力

生活并不平坦,里克在努力

清明

清明时节。
雨。
纷纷路上行人,
欲断魂。
借问酒家何处?
有牧童,
遥指杏花村。

iDeneb 蓝屏

在 PC 上安装 iDeneb 1.4 – Leopard 10.5.6,显卡 9600GT 512MB,调整分辨率、刷新率都会导致蓝屏,其原因在于 leopard 默认输出至主输出端口(出现这个问题的显卡都有两个输出端口),而蓝屏实际上就是第二个显示屏的内容。

解决办法:把显示器插在主输出端口上,一般靠近金手指的为主输出。

Messenger:Mac with Safari 4

更新了 safari 4 以后 microsoft messenger:mac 出现一个奇怪的问题,每次发送一条消息以后,输入框都会失去焦点,就是说没办法连续输入第二条消息,只能tab一下或者是点击一下。很 suck 的 bug!

在 apple 和 microsft mac 论坛都查了一下,都是更新 safari 4 以后引起的,还不确定是因为 webkit 的关系,还是 security update 的关系。回到 safari 3.2 可以解决问题,但是,谁舍得?作为一个优秀的浏览器,即使是 beta 版本也给所有 mac 用户带来震撼的体验,我想没什么人会舍得降级。

那么,就等待 ms 或者 apple 发布 bug fix 补丁吧,相当的无奈 :-(

扩展 Paperclip

Paperclip 是 Rails 的一个处理 attachment 的插件,相对于以往的 FileColumn 在灵活性和效率上更胜一筹,而且代码也比较好看。这个视频 简单的介绍了 Paperclip 的使用方法。

默认的设置,URL 的占位符中与模型本身相关的只有 id,但是一些情况下,你可能会更希望以其他形式来组织你的附件目录 – 比如以 SKU 来代替数据库记录的 id。这里我们暂不讨论这种做法的好坏,双方面的,好处是目录结构更具有维护性,坏处是万一以后升级数据库,SKU 加个前缀什么的……

Here we go!

使用 paperclip 需要在 model 中调用 has_attached_file 方法,检查文档,有一些简单的使用样例,但是没有我们需要的。通过方法描述我们知道这个方法建立了一个 Paperclip::Attachment 对象,我们继续看文档。对象的方法很少,首先思考:应为我们需要配置的是 attachment 的 url 规则,那么应当是对应整个类而不是单个实力,因此我们只关注 Peperclip::Attachment 的类方法,只有两个。default_options 没有描述,而且展开代码发现并不是我们需要的。

# Paperclip::Attchment.interpolation

A hash of procs that are run during the interpolation of a path or url. A variable of the format :name will be replaced with the return value of the proc named “:name”. Each lambda takes the attachment and the current style as arguments. This hash can be added to with your own proc if necessary.

这正是我们需要的,接下来的扩展就非常方便了:


# app/models/product.rb
class Product < ActiveRecord::Base
  has_attached_file :photo,
    :style => { :thumb => '64x64>' },
    :url => '/images/products/:to_param.:extension'

  def to_param
    return self.sku
  end
end

# config/initializers/paperclip.rb
Paperclip::Attachment.interpolations.merge!(
  :to_param => lambda { |attachment, style| attachment.instance.to_param }
)

在这里不直接使用 :sku 作为占位符而使用 :to_param 是为了在其他模型中更加的灵活。

Rails 之一月动态

一个多月之前,Rails 2.2.2 发布了,同时,官方紧接着发表声明,称 Rails 2.3 正在开发中。看到这个消息,一边感叹于 Rails Core Team 进度之紧凑,同时开始做一件很有意思的事情:在接下来的事件里,每天都检查一次 http://github.com/rails/rails/tree/master 上的所有 commit。除了常规的性能优化调整、更独立的代码结构之外,的一系列提交揭示了 Rails 的下一步:

  • Joshua Peek 初次提到 middleware (commit),接下来似乎是他一直负责这部分的开发
  • 官方博客的每周更新,Rack integration 开始与 Rack 整合的步伐,middleware 开始频繁出现在以后的代码中
  • 紧接着的 This Week in Edge Rails,开始移除与 CGI 相关的代码
  • 官方博客介绍 Rails Metal
  • Session Storage 也迁移至 Rack (commit, commit)
  • 随后的几个大 commits 将 Rails 从 CGI 解放
  • Merb 将与 Rails 3 合并

可以看出,高扩展性会是 Rails 2.3 的卖点之一,同时,开发团队似乎有想法把 Rails 设计的更加“热插拔”,通过引入 middleware,在将来会有更多的选择;而与 Merb 的整合,则可以借鉴其中优秀的设计思想,在更高的版本中加以实现和整合。

于此同时,Ruby 1.9.1 也在紧密开发之中,不过道路并不平坦,RC1 的发布延迟到 09 年的 1 月份。正如 Robbin 所说,09 年的 Rails 很灿烂

Merb 将合并至 Rails 3!

原文地址:Merb gets merged into Rails 3!

一直一来,关于 Merb 与 Rails 之间的优劣与取舍之间的争论,伴随着两个框架的不断发展而没有停息。终于,在圣诞前夕,Merb 终于要于 Rails 3 合并了!

原文同时指出,这次的合并不是大规模的 Rails 代码重写(This is not a big bang rewrite),相对的,作为第一个合并的版本,两个团队更倾向于让两者并存,用户可以根据实际需求选择适合的组件(比如 ActiveRecord / Sequel / DM 作为 ORM)。无论如何,我个人都觉得这是一个非常好的开端,Rails 有了 Rails 以外的思想,将来必定会更加精彩!

最后,在 timeline 安排上,目前开发团队的主要精力还是在 Rails 2.3(我自己连续 3 个星期在关注于 Rails 2.3 Edge 的 commits,准备了另一篇博文),2.3 将会在 09 年的 1 月份放出,then all eyes will be on Rails 3!

Rails 2.2 正式发布

Rails 2.2 从 RC1 到 RC2,终于发布了正式版(版本号 2.2.2),需要 gem 1.3.1。带来的新特性包括 I18N / Thread Safety / Connection Pool / Ruby 1.9 Compatibility 等等。

自己从 edge 一路紧跟 rails 步伐研究过来,随后会发表一些个人的实践和看法。

前段时间的热点:DHH 回应 Mongrel 作者的质疑,撰写系列文章:The Rails Myths 。原本打算一同翻译这6篇博文以及 rails 2.2 的新特性,因为种种原因不了了之……

Rails 2.2 官方博客:http://weblog.rubyonrails.org/2008/11/21/rails-2-2-i18n-http-validators-thread-safety-jruby-1-9-compatibility-docs