| 
 
| 
 
 
 
 
 
 
| Blog信息 |  
| blog名称:日志总数:1304
 评论数量:2242
 留言数量:5
 访问次数:7644674
 建立时间:2006年5月29日
 |   
 
 |  | 
 
|  [Ruby on Rails]用ruby创建领域特定语言(DSL)——转载 软件技术
 lhwork 发表于 2007/2/7 8:50:28  |  
| 
| 转自http://uncutstone.blogdriver.com/uncutstone/1196082.html 
 简介:一篇介绍ruby DSL的很好的入门文章
 
 
 by Jim Freeze
 英文原文见:http://www.artima.com/rubycs/articles/ruby_as_dsl.html
 
 摘要:总的说来,有两种创建 DSL 的方法。 一种方法是从零开始发明一个新的语法,并为之构造一个编译器或解释器。另一种方法是裁剪一个现存的通用目的语言, 增加或修改方法(methods), 操作符(operators),以及缺省的行为。本文讲述使用第二种方法来在 Ruby 之上创建 DSL.
 
 
 一个 DSL, 是一个针对相对窄的应用范围设计的编程或描述语言。相对于通用目的语言, 它被设计来处理特定的计算任务, DSL 仅适用于特定领域。 你可以用两种方式创建一个 DSL.
 
 从零开始发明一个新的语法,并为之构造一个编译器或解释
 |  
 |  
 
 
|  [Ruby on Rails]使用ruby解析json 软件技术
 lhwork 发表于 2007/2/7 8:50:03  |  
| 
| rails1.1已经加入对json的全面支持,现在的Array,Hash,String,Object...等等都有一个to_json方法,生成json字符串。反过来,我们该如何解析json呢?查了下http://www.json.org/上面ruby语言的链接,在rubyforge上找到了一个项目。解析json对ruby来说非常简单,只要一行代码: 
 def unsafe_json(json)
 eval(json.gsub(/(["'])s*:s*(['"0-9tfn[{])/){"#{$1}=>#{$2}"})
 end
 
 例子:
 json = '["a", "B", "C"]'
 puts "Unsafe #{unsafe_json(json).inspect}"   #输出Unsafe ["a", "B", "C"]
 
 把上面的json字符串解析成Array。这样的方法并不安全,比如:
 json = 'puts "Danger Will Robinso
 |  
 |  
 
 
|  [Ruby on Rails]ruby实现抽象类和抽象方法 软件技术
 lhwork 发表于 2007/2/7 8:49:20  |  
| 
| ruby语言本身并没有提供abstract class和abstract method机制。这是ruby的spirit所决定的。但如果我们真的需要定义一个公共抽象类(或者抽象方法)来让子类来实现,又该如何做呢? 我们可以通过在调用方法时抛出NotImplementedError来防止方法被调用。如(来自《ruby cookbook》的例子):
 
 class Shape2D
 def area
 raise NotImplementedError.new("#{self.class.name}#area是抽象方法")
 end
 end
 class Square < Shape2D
 def initialize(length)
 @length = length
 end
 &nb
 |  
 |  
 
 
|  [Ruby on Rails]使用ruby备份你的blog 软件技术
 lhwork 发表于 2007/2/7 8:48:04  |  
| 
| 虽然sohu不大可能倒闭,但是我也想导出我所有的文章,备份在自己的数据库中。javaeye的blog系统提供了一个blog导入导出的功能,用起来很酷。其实你自己用ruby写一下也很简单,比如我要读取我的blog的RSS源: 
 require 'rss/2.0'
 require 'open-uri'
 url = 'http://dennnis-zane.blog.sohu.com/rss'
 feed = RSS::Parser.parse(open(url).read, false)
 puts "=== blog名称: #{feed.channel.title} ==="
 feed.items.each do |item|
 puts item.title
 puts " (#{item.link})"
 puts puts item.description
 end
 
 feed.items对应
 |  
 |  
 
 
|  [Ruby on Rails]利用google在线翻译制作自己的翻译程序之ruby版 软件技术
 lhwork 发表于 2007/2/7 8:46:47  |  
| 
| 刚学ruby时写的工具,我自己一直在用,放在桌面上,遇到不懂单词就得问它。发在railscn上,ranchgirl修改的更为ruby way。 
 受blogjava上的帖子启发,实在是个有趣的主意,写了个ruby版本的,对俺这等英语一般的同学来说,google在线翻译经常使用呐,原贴之java版
 http://www.blogjava.net/ekinglong/archive/2006/11/12/80704.html?Pending=true#Post
 
 
 |  |  
 
 
| [Ruby on Rails]ruby on rails应用性能优化之道(转)软件技术
 lhwork 发表于 2007/2/7 8:45:58  |  
| 
| javaeye站长的经验之谈:http://www.javaeye.com/topic/51595 
 这是一篇我们运营JavaEye网站将近半年时间所得到经验的总结。目前在整个rails社区,都极少有运营rails大访问量网站经验的人详细的谈这个话题。至于国内,rails应用都停留在学习和尝试阶段,真正投入商业运营的基本找不到,所以谈这个话题为时太早,颇有对牛弹琴的感觉。所以权当是个人的总结性文章吧,也不会很详细的展开谈论,能对大家有所启发就好。
一、硬件
1、CPU
 ruby解析器相对于JVM,PHP解析器来说,比较低效,可能会导致比较多的context switch,因此提高CPU和内存之间的总线带宽和传输速度会对ruby应用有比较大的性能提升。在目前主流的x86_64 CPU当中,AMD Opteron在CPU芯片内置内存控制器,可以有效提高CPU和内存数据交换速度,提高context switch能力。所以用AMD Opteron比Intel Xeon EM64T性能要好很多。
2、物理内存
 
 |  
 |  
 
 
|  [Ruby on Rails]ROR学习琐记 软件技术
 lhwork 发表于 2007/2/7 8:44:16  |  
| 
| 下载了N久的<Agile web development with rails>英文版,今天开始看,记录下一些看的过程值的记录的东西...俺记忆力一般
1.几个命令:
A.创建一个应用  rails 应用名称,如rails demo
B.启动服务器,在应用目录下:ruby script/server
C.创建controller: ruby script/generate controller hello
 
2.几个函数:
在rhtml页面模板中使用的函数:
h()函数:告诉ROR对字符串不进行任何处理,显示特殊字符,如h(killme6115@sina.com)
link_to()函数: &nb |  
 |  
 
 
|  [Ruby on Rails]Ruby On Rails使用MySQL汉字不出现乱码的设置方法 软件技术
 lhwork 发表于 2007/1/20 14:27:20  |  
| 
| 环境: Ruby 1.8.5
 MySQL 5.0
 Windows 
XP
 
 MySQL设置:
 将MySQL的Character设置成为utf8(或GBK或GB2312,只要和ROR里的Character设置统一就行)。
 修改方法有3种:
 1、用MySQL 
Server Instance Config 
Wizard设置character-set为utf8
 2、修改MySQL的配置文件,改其中的两处default-character-set=utf8(推荐,改完后重启MySQL生效)
 3、在建表时指定表的character-set为utf8
 
 Ruby 
On Rails设置:
 修改application.rb告知MySql使用UTF8
class ApplicationController < 
ActionController::Base
 before_filter :configure_charsets
 &nb
 |  
 |  
 
 
 
 
|  [Ruby on Rails]在Ruby中利用SMTP和POP3收发邮件 软件技术
 lhwork 发表于 2007/1/20 14:04:23  |  
| 
| 如果你想找一个简单文雅的方法来编写网络应用程序,那么你应该看看Ruby(关于Ruby的简介可以看看“A Ruby
Refresher”)。Ruby简单(像Python),完全的面向对象(Smalltalk),强大(像Perl)。另外,Ruby的一个显著的特点
是适合编写网络应用程序。使用Ruby提供的库函数和内建的网络支持,你能轻松的编写网络应用程序(比如email客户端,SOAP服务器,分布式处理
等),并且维护和扩展也很容易。我们来看看Ruby,学习一下Ruby fans已经知道的东西: Ruby really connects. 1。通过SMTP发送Email每星期Holden Glova, Pat Eyler, 和 Phil Thomson都会向Ruby Garden 网站(http://www.rubygarden.org)
提交一个Ruby Weekly News
(RWN
 |  
 |  
 
 
 |