状态转移

0. 引言

昨天遇到一个问题,就是关于对象状态转移的问题,我姑且这样命名吧。简要描述一下就是:对于一个人,他有进食,帮助他人,恋爱等功能,但是这些功能是有先后顺序的,对于刚出生的人,他要先学会进食,然后随着他的成长,他逐渐学会帮助他人,在这个过程中他学会了爱与被爱,当他遇到一个合适的女孩,他就坠入了爱河。整个过程反映到程序上就是,必须按照下面的顺序调用方法:

man=Human.new
man.feed
man.fall_in_love   # Error
man.help_people
man.fall_in_love

如果你调用某个功能时没有完成前面的事情,就像上面的例子这样,一个人尚未学会帮助他人的人,我们是不希望他去恋爱的,这样一个不懂得互助互爱的人怎么可能珍惜自己的爱人呢?

所以,对象状态转移就是:某个对象随着状态转移获得调用新方法的能力或权限,未达到某个状态前无法调用该状态下的方法。

Read on →

初识jruby之入门

首先,Jruby的官方站点是http://jruby.org/ ,最详尽的资料都在那里。至于为什么选择JRuby,官方站点上列举了诸如jvm的普及以及性能等等优点,但我想最简单的回答就是,我喜欢用ruby编程,而大多数不再充电的老板还固守着java,对他们来说,相对于ruby,java这个词本身先产生了50%的安全感,所以这可能是比较贴近现实的选择。不过我今天想去倒腾倒腾这个东西,则完全是为了了解ruby的方方面面。

Read on →

Ruby常用的迭代操作

ruby是一门可以用sexy来形容的语言,下面就列举几个sexy的迭代操作。

Read on →

Ruby Webdriver

前言

Watir Webdriver是用ruby操作webdriver的很酷的方式,通常被用来做一些rails app的测试。

Read on →

Rails为paperclip上传文件添加访问控制

0 前言

由paperclip上传的文件默认是放在rails项目的public目录下的,也就是说,只要能得到该文件的URL,就可以直接访问/下载该文件,如果要对该文件添加访问控制,就需要更改paperclip的默认上传位置。

Read on →

Rails使用bootstrap及bootswatch

1.简介

Twitter-bootstrap是一个功能强大的前端web框架,使用它可以快速地开发出漂亮的web UI。而thomas-mcdonald/bootstrap-sass是rails sass版本的bootstrap。其他类似的gem还有jlong/sass-twitter-bootstrap,metaskills/less-rails-bootstrap,seyhunak/twitter-bootstrap-rails,前一个也是sass版本,后两个是less版本的。另外,jasny-twitter-bootstrap是bootstrap的一个很好的拓展,添加了文件上传等漂亮的插件。

而Bootswatch是基于bootstrap的主题资源站,提供了很多收费和免费的主题,利用这些现成的主题能够在bootstrap的基础上更进一步加快网站开发,制作出精美的页面。

Read on →

在CentOS上搭建git服务器

0.定义

这里的示例中出现的主机有三台:localhost是一台centos主机,也是git服务器;ubuntu是git服务器管理员的workstation;linux是某个git用户jason的workstation。

localhost即git服务器上有两个账户test和git,test是用来搭建git服务器的已存在账户, git是为git服务器创建的专有账户。

ubuntu是git服务器管理员的workstation,该管理员在自己的这台workstation上的账户是user。

linux是jason的workstation。

  • git server: [test@localhost] [git@localhost]
  • git administrator: [user@ubuntu]
  • git user: [jason@linux]

文中省略了ssh在各主机间的登录命令及scp复制公钥的过程,注意观察命令前的用户及主机名提示即可。

Read on →
git

Ruby类和模块的关系

学习ruby入门的时候,很容易被其类和模块的小trick给迷惑住了,这里为了整理自己的理解,就写出来看看吧。

Read on →

Install and Deploy Rails on CentOS

prerequisites:

I cover all these operations on CentOS 6.4 and with root, so if you encounter some privilege problem, try sudo. And, if using Ubuntu, you needn’t worry about SELinux.

Read on →

Git常用操作

Read on →
git