2007年11月12日
2007年10月7日
原文地址
下午无聊翻译一下,看看ruby官方怎么和java对比
相同点:
类似于java,在ruby中:
内存管理都是由GC(garbage collector)负责。
都是强类型语言。
都有public,private,protected的方法可见性之分。
都有嵌入式文档工具(ruby的叫做RDoc)。rdoc生成的文档看起来非常像由javadoc生成的。
不同:
于java不同的是,在ruby中:
你不必编译代码,你只需要直接运行代码。
Gui开发包不同。比如,ruby的用户会尝试WxRuby,FXRuby,Ruby-GNOME2,或者基于Ruby Tk库。
你要在定义任何事物(像class)后面加上关键字end,而不是用花括号({})来包围代码块。
使用了require代替了import。
所有的成员变量(属性)都是private级的。在类外访问任何事物要通过方法调用。
什么都是对象,包括2和3.14159。
没有静态类型检查。
变量名都只是标签,它们没有与类型相关。
不用声明变量类型,你只需要赋值给新的变量名就可以了(例子,a = [1,2,3] 相当于 int[] a = {1,2,3};)。
没有类型强制转换这个概念,只管调用方法就好了。
用 foo = Foo.new( "hi") 取代这样新建对象的方法 Foo foo = new Foo( "hi" )。
构造方法一直都叫“initialize”,不是和class同名的方法。
使用“混入” 代替 “接口”。
YAML 比 XML 更受欢迎。
这里用nil代替null。
==和equals()方法处理方法不同。当你想要测试相等性时就使用 == 操作符(就像Java的equals()方法)。当要想要知道两个对象是否是同一个时就使用equal?()方法(就像Java中的==)。
2007年10月3日
摘要: 早上看了Ruby论坛中有人(blackanger)写的TDD by Ex这本书里的资金例子,自己也想写一写。和他不同,我是全过程详细写出来。第一次用Ruby写代码,第一次用Ruby的Unit框架,而且下午睡醒后迷迷糊糊写的,可能有很多错误,请多多指正。
阅读全文
2007年8月31日
在Ubuntu下通过apt包管理器安装ror环境是很方便的。我自己写了一个脚本:
sudo apt-get install build-essential gcc g++ libssl0.9.8 libssl0.9.8-dbg libssl-dev build-essential
sudo apt-get install ruby
sudo apt-get install libzlib-ruby rdoc ri irb ruby1.8-dev
sudo apt-get install libzlib-ruby
sudo apt-get install rubygems
sudo gem update --system
sudo gem install rails -y
sudo gem install rails --include-dependencies
sudo gem install mongrel -y
sudo gem install mongrel_cluster --include-dependencies
sudo apt-get install libopenssl-ruby
sudo apt-get install libgd-ruby1.8 libyaml-ruby libzlib-ruby
sudo apt-get install imagemagick
sudo apt-get install libmagick9-dev ruby1.8-dev
sudo gem install RMagick -y
直接把上面的一串保存在一个文本文件中,然后用sh命令执行就可以一步安装完成了。
我发现网上很多在安装gem的命令都是错的,在Ubuntu里gem包不是ruby的gem,ubuntu下gem包的解释如下:
Graphics Environment for Multimedia - PureData library
Gem is a loadable library for puredata, which adds OpenGL graphics rendering
and animation to Pd. Pd is a graphical programming language and computer
music system.
这个包和ruby一点关系都没有。正确的应该是rubygems包。不知道为什么到处有人都是写
sudo apt-get install gem的,很多都是转载,有的连转载都不声明,直接试都不试把错的东西直接贴出来。
另有人说源里的gem很过时,其实也不会。
2007年8月28日
转载自:http://blog.csdn.net/bvbook/archive/2007/08/20/1751786.aspx
一、148 页
英文: We check that the name is present and unique
原文:我们首先检查用户名与密码都不为空
二、148页
英文:We check that the name is present and unique
原文:我们首先检查用户名与密码都不为空
改为:我们首先检查用户名不为空
三、153页
代码中 flash[:notice] 应为flash.now[:notice]
四、310页
列表中第二个“使用save方法时”应为“使用save!方法时“
五、407页
英文:Instead, they provide a regular (and simple) interface to a set of resources.
原文:它们只要为一组资源提供一个普通(并且简单)的接口就行了
改为:它们只要为一组资源提供一个规则(并且简单)的接口就行了
六、408页
两处的 /article/1 应为/articles/1
七、456页
原文:默认配置下,cache 只有在产品环境下才生效
改为:默认配置下,cache 只有在生产环境下才生效
八、535页
原文:这个辅助方法就是把 remote_function 一个remote_function
改为:这个辅助方法就是把一个remote_function
九、554页
原文:表单可以这些方法交互以提交用户输入的内容
改为:表单可以与这些方法交互以提交用户输入的内容
十、106页 代码
@product = Product.find(params[:id])
应为
product = Product.find(params[:id])
110、117相应的代码也需要改正。
我自己还发现了:
P119
代码
<%= form_remote_tag :url => { :action => :add_to_cart, :id => product } %>
<%= submit_tag "Add to Cart" %>
<% end %>
应为:
代码
<%= form_remote_tag :url => { :action => :add_to_cart, :id => product } %>
<%= submit_tag "Add to Cart" %>
<%= end_form_tag %>
106页
代码
@product = Product.find(params[:id])
应该是
product = Product.find(params[:id])
2007年8月22日
用了Ubuntu7.04一个多星期了觉得挺很不错,很多方面比在windows下好很多。方便的硬盘安装。一开始是在家里的电脑安装的,之后把硬盘拿到学校的电脑一插上去就可以用了,只需在命令行界面配置显卡和校园网就OK了。Ubuntu的硬件的兼容性真是没得说,还有人还制作了一个可以放在U盘的精简版本。Linux的整个系统加上所有的常用软件比windows加上所有常用软件的磁盘占用小很多。
记得刚刚接触电脑的时候就用了一段时间的RH9,觉得很神秘很帅。后来来到学校后发现校园网上不到网,用xrgsu要么掉线要么上不到,试了sesu和fc都是这样。因为万恶的锐捷又不能用虚拟机上网。这次是因为有个师兄用ubuntu7.04成功的上到了所以我又用回了Linux,用回了久违的VI。我不知为什么学了vi和emacs两个编辑器,但是一直都用不惯emacs,vi就用得很顺手。Linux下的编辑器就好在可以双手不离开键盘,不用去用到鼠标,不过太久没有用了,时不时手还是会想去摸鼠标,然后想一想手又缩回来按快捷键。
Ubuntu的中文社区很活跃,中文的资料又多得不得了,一般有什么问题搜索一下就可以查找到。
Ubuntu下用得最爽的是FireFox,好像没有windows下的内存泄漏现象。Linux下的BT软件就不怎样,还是用wine+比特精灵比较好。相对于bt,linux下的电驴软件就很厉害了,MLDonkey很快,最高能过1M/s。
下载安装软件,Ubuntu继承了Debian系的apt-get系列的方便,很大得方便了我这类懒人。只要一个命令就可以简单地在非图形界面安装软件,而且自动安装软件源中最新的版本,一并安装配置。只是把软件安装到哪里要自己去查找,有时是挺麻烦的,比如在安装后要修改配置文件的时候,特别是安装时文件分得很散,在配置radrails时要求输入rails和rake的路径。不过用了一段时间后熟悉了目录的配置之后就要找程序文件就简单多了,程序文件一般放在/usr/bin下。
不过有时一些软件还是自己手动安装好。第一有个权限问题,我的电脑还是主要用来做开发和学习的,而且又是我自己一个人用,对于Linux系统一向来的用户安全机制对我来说有点多余。自动安装的一些软件,有时要设置权限,比较麻烦。第二就是版本问题,软件源里的软件虽说都是稳定版本,但是我有时想要新一点的版本,比如Eclilpse3.3,NetBeans6。
在开发时最大的好处就是编码问题在Linux下对utf-8的支持很好。还有好像一些ide在Linux下好像速度快一点,还有ruby也是,反应快了很多。正在试着Gvim+rails.vim的感觉。不过还是习惯eclipse。Linux下的软件,要么是gtk的,要么是Qt,要么java的,感觉上至少比win32程序用起来觉得舒服一点,完全是心理作用。
最后有两件事让我不爽,一个是特效开不到,我的显卡是Ati 的X1650,万恶的ati官方驱动不支持XGL,开源驱动又不支持X1650。另一件事是我用eva和QQ2006上了几天之后登录的时候竟然说我“您的IP不能用低版本的QQ”,真是万恶的腾讯。我最后找了飘云版的QQ2007(因为不带键盘锁)才能用wine跑QQ2007。用wine+qq的时候发现打字那个提示框很快会不见,我用的是fcitx,还有我不能发起语音请求,发起时qq会崩溃,别人发起我接受就正常。
Ubuntu好好玩。
2007年8月14日
这个暑假过了一大半了,过得比较郁闷。
今天是暑假第一次在家上网,因为家里电脑坏了,主板拿去保修,修了20天后拿回来发现坏得更严重,又要不知道修到什么时候。(体验了华硕的售后实在不敢恭维)只好上个星期叫同学在网上帮我买了块二手主板,现在终于有电脑用一下。
暑假前已经计划好了要做什么,就是要把这个学期还没有做好的几个应用做好它,把picocontainer的1.0版的代码分析和文档汉化做完(在期末考试前因为无聊所以就做了这个事),还有再写一些有趣的代码,比如一个简单的XML仓库。
读书的计划提前完成了,看完了《领域模型驱动》,《web开发敏捷之道》(新鲜热辣),《Ruby for rails》。看了一半《对象设计》,还有把《重构》又看了一遍。
还好带了一些英语资料,手机里也存了一些英语的对话,每天背一篇短文,没事练习听着英语大声念几句。感觉还好。
今天看了一下敏捷大会的消息,又看了一下Thoughtworks里的强人的博客,觉得毕业后去那里的希望很渺茫。英语又差,技术和那些强人差了几个数量级,看来要更加更加努力。
2007年8月13日
今晚想update一下rails,结果在升级gem时出现错误。搜索了一下找到答案
升級Rubygems到0.9.2时,會產生一個Error:
ERROR: While executing gem ... (NoMethodError)
undefined method `refresh' for #<......>
解决方法:
删除掉source_cache文件,win是在$ruby安装目录\lib\ruby\gems\1.8,linux是在/usr/local/lib/ruby/gems/1.8/source_cache下。
运行gem update --system升级
转载自:http://www.cnzxh.net/blog/Index.php?do=readArticle&articleId=145
2007年5月10日
摘要: JCreator是个轻量级的JAVA开发工具,对JAVA文件,JSP文件和XML文件编辑有比较好的支持。因为真的是很轻量级,所以功能也很弱,没有 JUnit集成,也没有代码格式化。我自己也是用管了eclipse,其中的JUnit当然是最常用的功能,其余常用功能还有重构和代码整理和格式化。有时要改一点代码或者实验一些代码又不可能打开一个eclipse那么笨重的工具,但是用比如JCreator,又太弱。所以我就想着把JUnit和代码格式化功能集成到JCreator中。
......
阅读全文