Hozaka

March 17, 2013

之前一直在蹭着 Weston 的虚拟主机,这次到期了,干脆就换一个 VPS 了。

只是放一个博客,考虑价格,选了 Digital Ocean 这家,5刀一个月,价格还不错。花了点时间折腾了一下软件和 WordPress,就是访问速度有点慢……

闲聊 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 实例)

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.

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

在这里不直接使用 :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 很灿烂