用 Nginx 和 Unicorn 部署 Ruby on Rails 应用

最近把博客迁移到 Windows Azure 上,App Server 也从 Passenger 换成了 Unicorn,考虑到 Rails 生产环境的搭建还是比较麻烦的,顺便写个安装手册,备用。

安装 RVM

通常使用 RVM 或 rbenv 来安装 Ruby,这里选用 RVM。

$ curl -sSL https://get.rvm.io | bash -s stable

载入 RVM :

Posted on 2014-01-13

Ruby on Rails 中使用 Markdown 语法,及代码高亮

之前写博客一直采用手写 HTML 的方法,很是繁琐,今天花点时间,给博客添加 Markdown 语法支持,并实现语法高亮。

实现 Markdown 语法和代码语法高亮分别是用的 Redcarpet 和 pygments.rb 两个 Gem:

/Gemfile中添加如下两行:

gem 'redcarpet'
gem 'pygments.rb'

需要说明的是,pygments.rb 依赖于 Python,所以确保机器已经安装了 Python 2.x。

然后在/app/controllers/comments_controller.rb中添加相应 redcarpet 和 pygments.rb 的代码:

Posted on 2014-01-08

尝试一下响应式布局

所谓响应式布局(Responsive Design),就是让网页针对不同设备的浏览器“响应”出不同的显示效果,于是抽了点时间把博客做成了响应式布局,适应一下移动浏览器。

响应式布局主要依赖于 CSS3 的媒体查询特性,其原理就是根据浏览器宽度或高度,适配不同的 CSS,以达到改变页面布局的目的。例如,当浏览器宽度小于 640px 时,将一些不太必要的元素隐藏,在有限的屏幕上显示更多主要的内容。

例如,如下 CSS 只在浏览器宽度小于或等于 640px(iPhone 的屏幕宽度) 的时候才会生效:

Posted on 2013-07-31

为什么要在密码里加点“盐”

盐(Salt)

在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。

以上这句话是维基百科上对于 Salt 的定义,但是仅凭这句话还是很难理解什么叫 Salt,以及它究竟起到什么作用。

Posted on 2013-07-05

博客中如何屏蔽垃圾留言

垃圾留言俗称 Spam,就是到处在留言框里发垃圾广告的那些,相信大多数人都见识过。以前使用 WordPress 的时候,因为装了防 Spam 的插件,可以屏蔽掉绝大多数的 Spam。但是自从上个月从 WordPress 迁移到新的博客平台后,第一天上线就遭遇了几个Spam,全都是国外的推广的广告什么的。博客的访问量本身就很小,如果每天都来几条 Spam,太煞风景了,手工删除也太浪费时间,而且又是自己写的小系统,也不可能有什么插件可选,只能自己想办法解决了。

看到有很多网站都是加个验证码来解决这个问题的,因为 Spam 很难从图片中识别出正确的验证码,但是对于正常的留言者来说,又凭空多了一个步骤,那么除此之外还有什么方法能屏蔽这些 Spam 呢?

Posted on 2013-07-04