install:
./script/plugin install svn://rubyforge.org/var/svn/nested-layouts/trunk/nested_layouts
doc:
http://nested-layouts.rubyforge.org/
Anyway, it's a little ugly.
Jay Phillips发布了一个叫superators的库,用来添加新操作符到Ruby中
安装
gem install superators
扩展String
require 'superators'
class String
superator "++" do |operand|
upcase + operand.upcase
end
superator "-~+~-" do |operand|
puts "Using pretty superators"
self + operand
end
end
eval
class_eval
module_eval
const_get
instance_variable_get
instance_variable_set
define_method
const_missing
undef
remove_method
undef_method
remove_const
ancestors
constants
class_variables
instance_variables
instance_methods
public_instance_methods
protected_instance_methods
included_module ...
module B
def test
puts "B"
end
end
class A
end
A.extend B
#test成为A的class method
module B
def test
puts "B"
end
end
class A
include B
end
#test成为A的instance method
module B
def test
puts "B"
end
end
class A
class << self
in ...
使用ruby-openid这个gem和open_id_authentication插件做OpenID认证
sudo gem install ruby-openid
ruby script\plugin install open_id_authentication
rake open_id_authentication:db:create
# routes.rb
map.open_id_complete 'session', :controller => "session", :action => "create", :requirements => { :method => ...
办完离职手续回到家,倒头便睡,起来已经是下午6点多
起床冲了个澡,脑子里开始回旋起这首老歌
记得
那天
你坐在我的面前
你的意愿很明显
等我的表现
我说
改天
等我有足够的时间
我一定给你一次完美
爱情的宣言
多想
抓紧每一瞬间
只怕故事已是昨天
才明白
忽略是我最大的缺陷
我真的
好想
再说一次
我爱你
。。。。。。
过去已成历史,即将踏上新的征程
AragonConsultingGroup的好兄弟以及铁杆烟友们在公司楼下送我的情景还未从我眼前消逝,freewheel的新挑战又将是如何的眩人眼帘?
别梦依稀咒逝川,故园三十二年前。
红旗卷起农奴戟,黑手高悬霸主鞭。
为有 ...
- 18:47
- 浏览 (810)
- 评论 (3)
var array:Array = new Array();
array.push("val 1", "val 2");
array[array.length] = "val 3";
array.unshift("z");
trace(array.shift());
trace(array.pop());
for (var i:int = 0; i < array.length; i++) {
trace(array[i]);
}
trace(ArrayUtilities.findMatchIndices(array, "val"));
a ...
restful_authentication是Rails的一个认证插件,基于REST方式,适合RESTful的geek
安装:
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/
ruby script/generate authenticated users sessions
可选择性的修改routes:
# routes.rb
ActionController::Routing::Routes.draw do |map|
m ...
读 RESTful Web Service 第三章
Chapter3, What Makes RESTful Services Different?
Amazon的S3可以让我们以任何格式存储任何数据,并提供Ruby,Python,Java,C#,Perl等多种接口
S3基于两个概念:S3 “buckets”和S3“objects”。
object是命名的数据片段,bucket则是命名的object容器。
看看一个简单的S3 Client:
require 'S3lib'
bucket_name, object_name, object_value = ARGV
unle ...
- 18:24
- 浏览 (617)
- 评论 (0)
ROR培训之北大光华管理学院是上次北京RoR的一次培训活动。
ChinaonRails open course 开源实践项目预览是以一个称为facebook2的由caiwangqin发起的Rails open course计划的一个开源Rails项目实践。
facebook2中很多功能等待大家的参与来开发和实现,希望对该项目感兴趣的RoR fans们不要错过。
原文地址:A taxonomy of Rails plugins
Rails开发人员的一个最大的障碍是学习写插件的基础原则。Ruby的动态性和它所提供的代码重用的多种技术让写插件更复杂。
幸运的是,如果你可以写Rails程序,简单的按照一些基本的模式你也可以写插件。
本文的目的就是使用流行插件常用模式的例子来揭开写插件的神秘面纱。
为什么写插件?
写插件可以:
1,让代码分享更有效,无论是在不同的项目间抑或在同一项目里
2,允许你发布通用代码给社区
3,通过测试一次和重用多次来节省时间和增加你的信心
4,以一个健壮的方式分享功能性,特别是在ActiveRecord里使用名字空间时
使 ...
Chapter2,Writing Web Service Clients
Web Services Are Web Sites
Yahoo!提供了RESTful Web Service,用Ruby来调用该服务非常简单:
require 'open-uri'
require 'rexml/document'
require 'cgi'
BASE_URI = 'http://api.search.yahoo.com/WebSearchService/V1/webSearch'
def print_page_titles(term)
term = CGI::escape( ...
- 13:41
- 浏览 (1014)
- 评论 (0)
《RESTful Web Service》一书的样章试译审阅结果出来了,本人第一次正规翻译英文书籍,结果很多地方翻译错误或润色不够,最终没有通过审阅。从审阅的仔细程度来看,博文视点是非常注重翻译质量的,这是可喜之处。我试译的是第四章--面向资源架构的前半部分,翻译原文如下。
**********************RESTful Web Service**************************
第四章、面向资源架构
我已经向你展示了REST的威力,但是我还没有系统的向你展示这个威力是怎样组织的或者应该怎样暴露它。在本章我概述了一个具体的RESTful架构:面向资源架构(ROA)。 ...
- 19:49
- 浏览 (698)
- 评论 (0)
http://aragonconsulting.grouphub.com是在公司一直用的项目管理和协作系统,原来就是37signals的Basecamp
- 20:03
- 浏览 (546)
- 评论 (0)
Set
初始化
require 'set'
s1 = Set[3,4,5]
arr = [3,4,5]
s2 = Set.new(arr)
s3 = Set.new(arr) {|x| x.to_s}
简单操作
x = Set[1,2,3]
y = Set[3,4,5]
a = x.union(y) # Set[1,2,3,4,5]
b = x | y # Set[1,2,3,4,5]
c = x + y # Set[1,2,3,4,5]
d = x.intersection(y) # Set[3]
e = x & y # ...
显示最近的整数(四舍五入)
Math.round(204.499) // 204
Math.round(401.5) // 402
指定向上或向下
Math.floor(204.99) // 204
Math.ceil(401.01) // 402
控制精确度
Math.round(90.337 / .01) * .01 // 90.34
Math.round(92.5 / 5) * 5 // 95
Math.round(92.5 / 10) * 10 // 90
由此可以写一个Util类
NumberUtil.round(Math.PI) ...
Chapter 1, The Programmable Web and Its Inhabitants
普通Web和可编程Web的区别:普通Web使用HTML,而可编程Web使用XML
Kinds of Things on the Programmable Web
可编程Web基于HTTP和XML。有部分使用HTML、JSON、纯文本或者二进制文件,但大部分使用XML
两种区分可编程Web上的服务的方式:技术(URIs,SOAP,XML-RPC等)或底层架构和设计哲学
HTTP:Documents in Envelopes
HTTP请求的主要部分:HTTP method、path、req ...
- 10:16
- 浏览 (673)
- 评论 (0)
Rake的强大之处你要自己使用才有切身体会。
我们经常用rake db:migrate来做数据库迁移
我们还可以使用rake -T来列出可得到的rake任务
让我们在store这个Rails程序中创建一个自己的Rake任务
我们创建store/lib/tasks/ryanb.rake:
task :greet do
puts "Hello World!"
end
task :ask do
puts "How are you?"
end
我们现在可以使用rake greet或rake ask来运行
对于相关联的rake任务我们可以这样做:
task :gr ...
少年中国说
梁启超
(1900年2月10日)
日本人之称我中国也,一则曰老大帝国,再则曰老大帝国。是语也,盖袭译欧西人
之言也。呜呼!我中国其果老大矣乎?梁启超曰:恶,是何言!是何言!吾心目中有一
少年中国在。
欲言国之老少,请先言人之老少:老年人常思既往,少年人常思将来。惟思既往也,
故生留恋心;惟思将来也,故生希望心。惟留恋也,故保守;惟希望也,故进取。惟保
守也,故永旧;惟进取也,故日新。惟思既往也,事事皆其所已经者,故惟知照例;惟
思将来也,事事皆其所未经者,故常敢破格。老年人常多忧虑,少年人常好行乐。 ...
- 20:50
- 浏览 (571)
- 评论 (2)
杨昌济:
润之 起来了
毛润之:
老师 您这是
杨昌济:
我是晨浴
几十年的老习惯了
清晨即起以井水浴我肉体
以圣贤之言浴我精神
是以精神肉体清清爽爽
方得以全新之我迎接新的一天嘛
毛润之:
老师您不冷吗
杨昌济:
一个人的求学之路上
比冷水更难熬
更严酷者不知有多少
若是连一点寒冷都受不了
还谈什么坚韧不拔
再说读书人静坐过多缺乏锻炼
这也是强健体魄的一种方式嘛
对了 我没有吃早饭的习惯
就不管你的饭了你自便
我要晨诵了
毛润之:
哦
杨昌济:
杨昌济 光阴易逝汝当惜之
先贤至理汝当常忆
子曰 学而时习之 不亦说乎
有朋自远方来 不亦乐乎
人不知而不愠 不亦君子乎
君子不重 则不 ...
- 20:34
- 浏览 (628)
- 评论 (0)
杨昌济:
谭嗣同的仁学你看过吗
仁学对此就做了进一步的阐发
他认为个人奋斗
乃一个人成功的关键
即父子兄弟亦无可依赖
而我认为
个人奋斗的宗旨 就在于两条原则
坚忍
坚者如磐石虽岁月交替而不移
忍者如柔练虽困苦艰辛而不催
坚忍者刚柔相济百折不回
持之以恒也
- 20:14
- 浏览 (372)
- 评论 (0)
杨昌济:
我今天送你四个字
就是让你牢牢记住
修学储能
必须平衡发展
这也是你求学之路上不可或缺的两个方面
毛润之:
那以今日之我
应当以修什么学问
储哪种能力为先呢
杨昌济:
什么学问 哪种能力
润之 你的这种想法首先就是错误的
毛润之:
老师的意思是
杨昌济:
今时今日之毛润之是什么人
一个师范学校的一年级学生而已
你喜欢哲学伦理 也关心时事社会
那是兴趣也是天赋
但我同时担心你走入另外一个误区
那就是知识能力的涉猎之面太窄
润之啊
你的求学之路才刚刚开始
你才掌握了多少知识
拥有多少能力
过早地框死了自己修学储能的范围
而不广泛学习多方涉猎
于你今后是有百弊而无一利
所以在你修学 ...
- 22:07
- 浏览 (449)
- 评论 (0)
本文节选自ORUG的Tyler Hunt的《Advanced Ruby》
Syntax Sugar
if not version.empty?
return version.gsub('_', '.')
end
unless version.empty?
return version.gsub('_', '.')
end
return if version.valid?
return if not version.valid?
return unless version.valid?
if person.xy?
gender = ' ...
本来不习惯在javaeye上面写个人心情的,但是今天晚上不经意的看到很多同龄的同行做的事情,感觉自己的状况很不令人满意。
昨天刚用调侃的语气写了篇Google面试归来的博客,后来推荐我的那位前辈也看到了,跟我总结了两点:
1,对自己缺乏信心
2,缺乏职业规划
当时没有在意,现在突然明白了里面深层的含义
特别是职业规划,其实我给自己做了,我一般是以一年为单位,定一个阶段性目标,但是时间一久,加上一些偶然事情,目标很难完成。
看来我得花点时间再好好审思一下自己了
另外PM老张也给过我很多好的建议,没怎么记在心里。
前段时间还写过一篇PHP的文章,由于自己缺乏深层了解和实践经验,遭到很多朋 ...
- 01:59
- 浏览 (1167)
- 评论 (5)
1,检测用户浏览器安装的Flash Player版本
http://www.adobe.com/software/flashplayer/download/detection_kit
比较搞笑的是ActionScript 3.0有一个flash.system.Capabilities.version属性用来检测Flash Player版本,但是它不能在
Flash Player 8.5之前版本工作,所以这对Flash检测毫无用武之地。
2,检测操作系统
[code]
package {
import flash.display.Sprite;
import flash.syst ...
今天受朋友推荐和Google的hr姐姐电话聊了下
由于自己比较有自知自明,目前根本去不了(不管是学历还是资历还是Google几近变态的招聘),所以没有刻意去准备,当简历发过去才5分钟,hr姐姐就一个电话打过来了。
结果和预料的一样,hr姐姐委婉的说明了我现在不适合在Google工作的几点原因:
1, 英语能力,不光读写,还有听,能说更好
2, 工作经验
3, coding能力。hr姐姐说英语不强,工作经验不够5+ years,如果coding能力好也是有机会的。可是俺没参加过什么coding比赛,这个coding能力就没法衡量了。
另外,hr姐姐说我的简历排版让她不舒服。我自己看着听舒 ...
1,ActionScript 3.0已经完全OO,所有AS代码都必须写在类里
2,AS的package和Java一样是与物理目录对应的,com.hideto.MessageManager类必须保存在com/hideto/MessageManager.as
3,属性声明
private var count:uint;
4,implicit getters and setters
package {
public class Counter {
private var _count:uint;
public function Counter() {
...
最近在看PM老张的《RESTful Web Services》,重新理解了一遍REST,以前的一些迷雾都变清晰了。
1,什么是REST?
"Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems
such as the World Wide Web. "
现实社会中的分布式超媒体系统的例子主要为www,但是我们不使用http、不与www交互也能构建遵循REST风格的软件系统。
REST是针对分布式超媒体系统的软件架构风格,这个前 ...
这次要介绍的是使用Akismet来预防垃圾comment
akismetor是作者写的一个插件:http://svn.railscasts.com/public/plugins/akismetor
使用akismetor需要如下几步
1,给comments表添加几个字段:
add_column :comments, :user_ip, :string
add_column :comments, :user_agent, :string
add_column :comments, :referrer, :string
add_column :comments, : ...
1,使用trace来debug程序
package {
import flash.display.Sprite;
public class ExampleApplication extends Sprite {
public function ExampleApplication() {
var userName:String = "Bill Smith";
trace("My name is " + userName + ".");
}
}
}
2,使 ...
- 浏览: 681828 次
- 性别:

- 来自: BJ

- 详细资料
搜索本博客
我的相册
screenshot
共 1 张
共 1 张
最近加入圈子
最新评论
-
Mnesia用户手册:三,构建 ...
要想创建disc_copies和disc_only_copies类型的表有两个前 ...
-- by hideto -
翻译www.djangobook.com之 ...
有个问题问一下: 我先配置了一个urlpatterns是这样的: r'^myd ...
-- by lyhapple -
Why OO sucks
gigix 写道lyl0035 写道为啥就没人想想,其实在面向对象的代码中也流露 ...
-- by hurd -
Why OO sucks
貌似又回到当年java vs c的年代。两种方式,不管是OO还是FP,仅是人处理 ...
-- by python -
大家可以抛弃Java踹死Djan ...
to phoenixup:1,你还别说,你举的什么Struts,Tapestry ...
-- by hideto






评论排行榜