Skip to content

{ Author Archives }

[原创]Rails中用AASM实现工作流与多步骤向导

ruby有一个act as state machine的插件,可以实现工作流或者多步骤向导的功能。 state machine,是计算机科学里面一种模型,这个插件主要实现的是finite state machine,既有限状态自动机。 首先,AASM的安装: config.gem "rubyist-aasm", :source => "http://gems.github.com", :lib => ‘aasm’ 安装好之后需要在你的Model里面加入 include AASM 下面是一个简单的例子。来介绍AASM的使用。 加入我们有一个person的model,一个person可以处于三种状态,sleeping, working 还有eating. 初始状态是sleeping, 从sleeping只可以通过eat事件,转到eating,不可以转到working.(吃了饭才能工作)。 从working只可以通过eat事件,转到eating,不可以转到sleeping. (不能空肚子睡觉)。 然后从eating可以通过work事件转到working,或者sleep转到sleeping. 这些可以转化成下面的代码 class Person < ActiveRecord::Base   include AASM     aasm_column :current_state #定义那个字段来储存当前状态   aasm_initial_state :sleeping #定义初始状态     #定义三个不同的状态   aasm_state :sleeping   aasm_state :eating [...]

MacPorts迁移到homebrew

一直用MacPorts但是不喜欢,像不喜欢cygwin一样不喜欢macports,因为他们喜欢在你的系统内倔强的自成一体,不看环境就装很多额外的依赖库。 看了很多人介绍homebrew之后决定试一下。 准备工作,安装好了Xcode, 没有MacPorts的可以跳过第一步。 第一步,删除MacPorts sudo port -f uninstall installed sudo rm -rf \ /opt/local \ /Applications/DarwinPorts \ /Applications/MacPorts \ /Library/LaunchDaemons/org.macports.* \ /Library/Receipts/DarwinPorts*.pkg \ /Library/Receipts/MacPorts*.pkg \ /Library/StartupItems/DarwinPortsStartup \ /Library/Tcl/darwinports1.0 \ /Library/Tcl/macports1.0 \ ~/.macports 第二步: 无git安装 homebrew curl -L http://github.com/mxcl/homebrew/tarball/master | tar xz –strip 1 -C /usr/local 第三步: 装好了,第三步就是用了 brew install wget brew install git 需要升级的话,就 [...]

Ruby 1.8.7 和1.9.1 Windows手动安装

Windows的ruby installer给出各种各样的怪异错误,实在是受不了了,于是手动装了,其实很简单,就是解压一个文件夹,但是很多库需要装一下. 第一步:安装所需的lib 包都是ruby主页推荐的,我不用tk装,列表可以在此找到:http://jarp.does.notwork.org/win32/ zlib 里面的dll openssl -找到“libeay32.dll”, 复制到 ruby\bin. . -找到 “libssl32.dll”, 复制到 ruby\bin 然后改名为ssleay32.dll readline 复制readline.dll iconv 里面的dll pdcurses 里面的dll gdbm 里面的dll 不想这么麻烦,可以下载我已经单独取出来的dll文件,全部放倒ruby/bin 文件:rubylib 第二步:将ruby/bin加入PATH 第三步:安装gem – 下载rubygem – 解压缩 – 到里面的目录,运行ruby setup.rb 完成

Zoom Zoom

Zoom Zoom是Mazda的理念. 翻开Mazda用户手册,扉页上写着: Zoom Zoom 秋千,自行车,还记得小时候的快乐么. 孩子们本能上就能体验到的快乐. 成长,更多的责任,让许多成人渐渐遗忘了Zoom Zoom. 一个独特的汽车公司,帮你找回童年的乐趣. 用大人的话说,这种乐趣就是速度与动感带来的愉悦和自由. 用孩子的话说,就是Zoom Zoom. 刚来加拿大的时候,主在Homestay, 也没有那么多钱装宽带。 闲下来的时间,上网少,看电视多,看各种广告,练习听力。 让我印象最深刻的就是马自达的广告,Zoom~ Zoom~ Zoom~的音乐伴随着每一款车的广告。 转眼9年,要挑选自己第一辆全新的车(之前的都是旧车)。 虽然思考过很多车型,网上查看了各种技术参数。 但其实心中回响的,还是Zoom Zoom的音乐。 而且我一直认为,汽车外观设计上,Mazda都走在其他品牌前面。 2010 新款Mazda 3外观更是超前于时代。 终于,趁我的心还年轻,我也有了自己的Zoom Zoom,等着以后沉稳了,可能就要选Venza了。

203 Routing in Rails 3

203: Routing in Rails 3 (From asciicasts.com and Railscast ) Translated by Yinghai. Please contact zyinghai at gmail.com regarding this translation. 翻译的比较急,如有问题,请联系zyinghai at gmail.com 这一集我们继续研究Rails的新特性, 这次我们看一下Rails 3的路由. Rails 3提供了一些新的API和新的功能来定义路由. 为了更好的演示,我们先建立一个detour应用。 rails detour 建立好应用之后,我们可以打开config/routes.rb文件看一下. 默认的文件包含了一些演示新API的文档和例子,当你有空的时候,这些都值得一看。 我们先删掉自带的文档,换上老的格式,再来对比一下Rails 3新的用法。 /config/routes.rb Detour::Application.routes.draw do |map|   map.resources :products, :member => { :detailed => :get }   map.resources :forums, :collection => [...]

Dreamhost部署 Ruby on Rails

建好数据库,用git在dreamhost账号里面clone一个项目目录。 然后添加域名,目录指向public子目录。 钩上ROR选项后,点fully host domain。 不幸的是,启动总有问题。 于是我做了下面几件事情。 1 把rails 2.3.5 冷冻进项目目录 rake rails:freeze:gems 2 设置数据库 database.yml production: adapter: mysql encoding: utf8 database: waimai_hailizi host: mysql.*******.net username: ******** password: ************ 3 建立数据库表 rake –trace db:migrate RAILS_ENV=production 4 配制环境 config/environment.rb RAILS_GEM_VERSION = ’2.3.5′ unless defined? RAILS_GEM_VERSION ENV['RAILS_ENV']=’production’ if ENV['RAILS_ENV'] == ‘production’ # don’t bother on dev ENV['GEM_PATH'] [...]

Ubuntu 9.10

D-Link DWA 140: Add blacklist rt2800usb to /etc/modprobe.d/blacklist.conf Compiz: apt-get install compizconfig-settings-manager Terminus: apt-get install xfonts-terminus Extras: sudo apt-get install ubuntu-restricted-extras 英文环境中文配置: cd /etc/fonts/conf.d/ sudo ln -s /etc/fonts/conf.avail/69-language-selector-zh-cn.conf sudo ln -s /etc/fonts/conf.avail/99-language-selector-zh.conf

两年多

自从07年不写东西到现在,已经过了两年多了: 两年前,我可以四舍到20来岁的,两年后,我只能五入到30来岁。 两年前,我还是无忧无虑的大学生,两年后,我成了终日碌碌的工薪族。 两年前,我有加拿大的暂住证,两年后,我拿了加拿大的户口本。 两年前,是独行,两年后,是人夫。

我开的不是Yinghai.Org, 是寂寞

“哥们,你抽得不是烟,是寂寞” 不知道从什么时候,网络开始流行这句话.山寨版应声而起, “你X的不是XX,你X的是寂寞” 我也山寨一下流行的话吧。 Yinghai.Org其实4,5年前就被我买了,用WordPress, 断断续续的码字,也写了不少东西。 那个时候想写一个自己的blog程序,于是关了网站,自己闷头闭门造车。 东拉西扯的学了不少新东西,各种语言,技巧,构架,库。。。 从头开始做了一个,觉得不好,有用Liferay构建了一个,又觉得受制于平台。 两年过去了,自己还没用上自己写的blog。 原因很简单,就算我是诸葛亮,也比不过WordPress得千千万万个臭屁匠。 何况我自己本身是臭屁匠,开源社区人人都是诸葛亮。 虽然在这个过程中,学到了不少东西, 可是回头一看,WP已经长足发展。 于是长叹,我写得不是程序,是寂寞。。。 Yinghai.Org重新开了,转了一大圈,还是用的WP. 希望新朋友老朋友还能常来看看。 注:当然,我不寂寞,老婆一直闹着让我写她,一点都不寂寞。

Tagged

20年最强对话

2007,史蒂夫乔布斯和比尔盖茨的对话。