<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34840056</id><updated>2011-12-15T10:53:55.936+08:00</updated><category term='豆瓣'/><category term='创业'/><category term='google blogger beta'/><category term='douban'/><category term='web2.0'/><category term='rails'/><category term='rewrite'/><title type='text'>sub学习rubyonrails</title><subtitle type='html'>本blog主要包括ruby,RubyonRails(RoR),ajax,css的学习经验和sub的web2.0观察,主要关注社会书签(social bookmarking)和链接挖掘和管理(links digging and management)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34840056.post-8205130847603072153</id><published>2006-10-25T12:47:00.000+08:00</published><updated>2006-10-25T12:59:28.934+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='豆瓣'/><category scheme='http://www.blogger.com/atom/ns#' term='douban'/><title type='text'>豆瓣类网站</title><content type='html'>我看来中国目前做得最好的web2.0网站就是&lt;a href="http://www.douban.com"&gt;豆瓣&lt;/a&gt;和&lt;a href="http://www.dianping.com"&gt;大众点评网&lt;/a&gt;,姑且称他们为web2.0网站吧&lt;br /&gt;豆瓣对中国web2.0的意义更是重大&lt;br /&gt;豆瓣是基于这么一个模式&lt;br /&gt;大家一起来分享 我读 我看 和 我听,现在更多了我去&lt;br /&gt;读的书,看的电影,听的音乐,去的地方&lt;br /&gt;大家可以对这些进行交流&lt;br /&gt;这是对这四种资源的分享&lt;br /&gt;现在豆瓣类的网站继续对可以分享的资源进行探索&lt;br /&gt;其中有&lt;a href="http://www.duolo.com"&gt;堕落&lt;/a&gt;:有我吃,我玩,我游...就是一个分享吃喝玩乐的地方,这是一个湖北的网站:)&lt;br /&gt;还有&lt;a href="http://www.iam2ya.com/"&gt;我是二丫&lt;/a&gt;:对护符,彩妆,香水进行分享&lt;br /&gt;我看好我是二丫,虽然这个名字有点二...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-8205130847603072153?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/8205130847603072153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=8205130847603072153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/8205130847603072153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/8205130847603072153'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/blog-post.html' title='豆瓣类网站'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-6490431617941724670</id><published>2006-10-18T23:24:00.000+08:00</published><updated>2006-10-18T23:27:57.959+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='创业'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>20061018--web2.0创业应该如何取名</title><content type='html'>&lt;a href="http://www.websnapr.com/" title="websnapr.com"&gt;websnapr.com&lt;/a&gt;&amp;nbsp; 这个地方支持把一个网页的图片做出来(Screenshot Thumbnails),还提供了一个&lt;a href="http://www.websnapr.com/previewbubble/" title="javascript的接口"&gt;javascript的接口&lt;/a&gt;&lt;br/&gt; &lt;a href="http://go2web20.net/" title="go2web20.net/"&gt;go2web20.net/&lt;/a&gt;&amp;nbsp; 是一家列出了一堆web2.0网站logo的网站&lt;br/&gt; &lt;a href="http://www.folksonomy.org/" title="folksonomy.org/"&gt;folksonomy.org/&lt;/a&gt; 是一家web2.0式的关于互联网界的文章和访谈的网站&lt;br/&gt; &lt;br/&gt; &lt;a href="http://www.folksonomy.org/2006/10/7_tips_for_naming_your_startup.html" title="这儿提到"&gt;这儿提到&lt;/a&gt; web2.0创业起名的7个原则:&lt;br/&gt; 1.取尽量短的名字,比如ask比askjeeves好....作者经常到cnn看新闻是因为他好敲&lt;br/&gt; 2.选一个同用或有创意的名字,你模仿&lt;a href="http://www.flickr.com" title="flickr"&gt;flickr&lt;/a&gt; 趣一些bookmarkr,zoomr之类的名字雅虎也不会收购你的&lt;br/&gt; 3.好读的名字,一个错误的示范是著名的PriceWaterhouseCoopers&lt;br/&gt; 4.用.com域名,不要用其它的域名去迁就你的名字...比如很多人敲&lt;a href="http://www.digg.com" title="digg.com"&gt;digg.com&lt;/a&gt; 敲到了disney的&lt;a href="http://www.dig.com" title="dig.com"&gt;dig.com&lt;/a&gt; (我觉得这个例子的hint是应该取一个和已由的不同类型的公司域名相类似的名字....:p),比如thefacebook买了&lt;a href="http://www.facebook.com" title="facebook.com"&gt;facebook.com&lt;/a&gt;&lt;br/&gt; 5.不要使用这个符号-,这个符号读做hyphen&lt;br/&gt; 6.不要做&lt;a href="http://Del.icio.us" title="delicious"&gt;delicious&lt;/a&gt; 那样玩分割词&lt;a href="http://del.icio.us/"&gt;Del.icio.us&lt;/a&gt;...是很容易打错...如果一定要这样,最好把delicious.com也买了&lt;br/&gt; 7.保持名字的意义,比如Feed/Burner, You/Tube, Hot/Mail, Tech/Crunch&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-6490431617941724670?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/6490431617941724670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=6490431617941724670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/6490431617941724670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/6490431617941724670'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/20061018.html' title='20061018--web2.0创业应该如何取名'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-5877620317071181774</id><published>2006-10-07T02:54:00.000+08:00</published><updated>2006-10-07T03:00:53.949+08:00</updated><title type='text'>web2.0观察--web2.0网站digg</title><content type='html'>这里不是要说一个叫digg的web2.0网站，这里是说一个digg web2.0的网站的web2.0网站&lt;br /&gt;&lt;a href="http://www.newnew.cn/"&gt;新新网&lt;/a&gt;，它可以让你发现分享和点评一个web2.0网站&lt;br /&gt;ps1:有人做了一个digg和delicious的简单混合&lt;a href="http://www.digglicious.com/"&gt;digglicious&lt;/a&gt;&lt;br /&gt;ps2:还真有人做了电影这个方向的digg网站，叫&lt;span id="dlTuWen"&gt;&lt;span&gt;              New21电影，不过现在挂掉了&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-5877620317071181774?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/5877620317071181774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=5877620317071181774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/5877620317071181774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/5877620317071181774'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/web20-web20digg.html' title='web2.0观察--web2.0网站digg'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-4252518455498976497</id><published>2006-10-05T16:21:00.000+08:00</published><updated>2006-10-18T23:31:37.765+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rewrite'/><title type='text'>undefined method `rewrite'</title><content type='html'>在rails中,你不能建立一个叫url的model(uby script/generate model url),否则scaffold :url后会报错:&lt;br /&gt;NoMethodError in Admin#new&lt;br /&gt;Showing usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller&lt;br /&gt;/templates/scaffolds/new.rhtml where line #4 raised:&lt;br /&gt;undefined method `rewrite' for #&lt;url:0xb7408b38&gt;&lt;br /&gt;这位兄弟也提到了&lt;a href="http://nutrun.com/weblog/rails-naming-gotcha/"&gt;这个问题&lt;/a&gt;&lt;/url:0xb7408b38&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-4252518455498976497?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/4252518455498976497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=4252518455498976497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/4252518455498976497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/4252518455498976497'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/undefined-method-rewrite.html' title='undefined method `rewrite&apos;'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-7252611954925736579</id><published>2006-10-05T14:32:00.000+08:00</published><updated>2006-10-05T14:56:49.925+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google blogger beta'/><title type='text'>blogger beta</title><content type='html'>我的blogger终于也可以升级到beta了&lt;br /&gt;beta的改动主要有&lt;br /&gt;1.增加了标签的功能(label即tag)&lt;br /&gt;2.增加了访问控制&lt;br /&gt;ms那些被大公司收购了的网站都没有被很好的整和和改进&lt;br /&gt;身为google的blog系统居然现在才有这两个功能...&lt;br /&gt;google最近的动作有:&lt;br /&gt;&lt;a href="http://www.google.com/codesearch"&gt;google代码搜索&lt;/a&gt;&lt;br /&gt;&lt;a href="http://groups-beta.google.com/"&gt;google group改版&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.google.com/literacy/index.html"&gt;The Literacy Project&lt;/a&gt; google素养工程&lt;br /&gt;&lt;a href="http://www.gseeker.com/50226711/google_earthmapscie103ie_44756.php"&gt;Google Earth/Maps升级&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gseeker.com/50226711/matt_cuttseegoogle_pagerank_44731.php"&gt;PageRank调整&lt;/a&gt;&lt;br /&gt;&lt;a href="http://searchmash.com/"&gt;推出searchmash.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gseeker.com/50226711/google_basecec_43471.php"&gt;Google Base升级&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gseeker.com/50226711/google_basecec_43471.php"&gt;Google Reader升级&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-7252611954925736579?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/7252611954925736579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=7252611954925736579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/7252611954925736579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/7252611954925736579'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/blogger-beta.html' title='blogger beta'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-116002862989133627</id><published>2006-10-05T14:05:00.001+08:00</published><updated>2006-10-05T14:10:29.896+08:00</updated><title type='text'>ruby的api</title><content type='html'>&lt;a href="www.ruby-doc.org"&gt;www.ruby-doc.org&lt;/a&gt;被盾掉了&lt;br /&gt;可以使用&lt;br /&gt;&lt;a href="http://corelib.rubyonrails.org/"&gt;http://corelib.rubyonrails.org/&lt;/a&gt; 这个是for ruby 1.8.4的&lt;br /&gt;&lt;a href="http://stdlib.rubyonrails.org/"&gt;http://stdlib.rubyonrails.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-116002862989133627?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/116002862989133627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=116002862989133627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/116002862989133627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/116002862989133627'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/rubyapi.html' title='ruby的api'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115998032489068251</id><published>2006-10-05T00:27:00.000+08:00</published><updated>2006-10-05T03:27:05.343+08:00</updated><title type='text'>web2.0观察--社会书签-1</title><content type='html'>国外有这么一些社会书签型网站:&lt;br /&gt;&lt;a href="http://www.backflip.com/"&gt;Backflip&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blinklist.com/"&gt;Blinklist&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blogmemes.net/"&gt;Blogmemes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt; :这个可能是最出名的,因为被yahoo收购了,但是yahoo最近又莫名其妙的做了一个&lt;a href="http://myweb.yahoo.com/"&gt;myweb&lt;/a&gt;,这个和美味书签定位略微不同的服务&lt;br /&gt;&lt;a href="http://www.feedmelinks.com/"&gt;Feedmelinks&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.furl.net/"&gt;Furl&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jots.com/"&gt;Jots&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linkroll.com/"&gt;Linkroll&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.looklater.com/"&gt;Looklater&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ma.gnolia.com/"&gt;ma.gnolia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.maple.nu/"&gt;Maple&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.markaboo.com/"&gt;Markaboo&lt;/a&gt; :这个兄弟野心勃勃,做blog,podcast,学习组(可以上传讲义,notes等),相片薄,分享playlist,还准备把系统&lt;a href="http://rubyforge.org/projects/markaboo"&gt;开源&lt;/a&gt;(暂时还没有源码放上去...),我非常不看好,这些东西当前即使google来把他们做到一起都可能失败&lt;br /&gt;&lt;a href="http://www.rawsugar.com/"&gt;Rawsugar&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.shadows.com/"&gt;Shadows&lt;/a&gt;&lt;br /&gt;&lt;a href="http://simpy.com/"&gt;Simpy&lt;/a&gt; :这个我很喜欢,界面清爽,有cache功能,感觉社会性比较好&lt;br /&gt;&lt;a href="http://www.spurl.net/"&gt;Spurl&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.wink.com/"&gt;Wink&lt;/a&gt;&lt;br /&gt;是不是觉得已经多得让人发指了呢&lt;br /&gt;更让人发指的是有人做了一个应用可以吧一个url提交到这所有的地方,这个地方叫&lt;a href="http://www.onlywire.com/"&gt;onlywrite&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115998032489068251?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115998032489068251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115998032489068251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115998032489068251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115998032489068251'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/web20-1.html' title='web2.0观察--社会书签-1'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115979065465757655</id><published>2006-10-02T19:54:00.000+08:00</published><updated>2006-10-02T20:04:14.666+08:00</updated><title type='text'>web2.0观察--理财帐务</title><content type='html'>&lt;a href="http://www.ytji.com/"&gt;盐糖记&lt;/a&gt;是其中做得最大的,一看名字就很广东&lt;br /&gt;其官方解释:&lt;br /&gt;盐糖记是什么？&lt;br /&gt;    * 盐糖记是一个简单、易用、免费的网上记账平台。&lt;br /&gt;    * 盐糖记是一部动态生活消费指南。&lt;br /&gt;    * 盐糖记是一个以生活消费、理财为主题的社区。&lt;br /&gt;同样是一帮标榜草根和人在创业,我觉得是有前途的&lt;br /&gt;其实做一个web2.0一点的&lt;a href="www.55bbs.com"&gt;我爱打折网&lt;/a&gt;也是还可以做的&lt;br /&gt;一堆理财帐务的web2.0网站已经被别人&lt;a href="http://www.kuangfeng.cn/blog/?p=758"&gt;观察&lt;/a&gt;了&lt;br /&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115979065465757655?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115979065465757655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115979065465757655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115979065465757655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115979065465757655'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/web20.html' title='web2.0观察--理财帐务'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115978734405496776</id><published>2006-10-02T19:07:00.000+08:00</published><updated>2006-10-03T13:45:16.840+08:00</updated><title type='text'>ruby-note1</title><content type='html'>1.缩进2个字符是ruby事实上的标准&lt;br /&gt;2.字符串,双引号比单引号做更多的工作,比如处理\n,处理#{expression}等&lt;br /&gt;3.modules有两个作用:&lt;br /&gt;  a.用做命名空间&lt;br /&gt;  b.可以用在类间共享"功能",如果一个类mix in一个模块,那么模块的实例方法都变得存在,就像他们在类中定义了一样.&lt;br /&gt;  在rails中,modules用来处理helper方法,比如:&lt;br /&gt;&lt;pre class="codebox"&gt;&lt;font color="#ff40ff"&gt;module &lt;/font&gt;&lt;font color="#00ff00"&gt;StoreHelper&lt;/font&gt;   &lt;br /&gt;&lt;font color="#ff40ff"&gt;def &lt;/font&gt;&lt;font color="#00ffff"&gt;capitalize_words&lt;/font&gt;(string)&lt;br /&gt;    string.gsub(&lt;font color="#ff40ff"&gt;/&lt;/font&gt;&lt;font color="#ff40ff"&gt;\b&lt;/font&gt;&lt;font color="#ff6060"&gt;\w&lt;/font&gt;&lt;font color="#ff40ff"&gt;/&lt;/font&gt;) { &lt;font color="#00ffff"&gt;$&amp;amp;&lt;/font&gt;.upcase }&lt;br /&gt;  &lt;font color="#ff40ff"&gt;end&lt;/font&gt;&lt;br /&gt;&lt;font color="#ff40ff"&gt;end&lt;/font&gt;&lt;/pre&gt;4.Marshaling对象,把对象转化为byte流,在需要的时候读入,rails用此来处理session data&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115978734405496776?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115978734405496776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115978734405496776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115978734405496776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115978734405496776'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/10/ruby-note1.html' title='ruby-note1'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115958523637749337</id><published>2006-09-30T10:50:00.000+08:00</published><updated>2006-09-30T11:01:05.473+08:00</updated><title type='text'>web2.0观察--Dzone</title><content type='html'>&lt;a href="http://www.dzone.com/"&gt;Dzone&lt;/a&gt;的口号是fresh links for developers&lt;br /&gt;是一个链接的分享和管理类网站,对每个链接有vote的功能(digg的翻版),是专门针对开发人员的&lt;br /&gt;界面比较友好,每个链接都对映一个小的缩略图,鼠标点在上面后会出来一个大图&lt;br /&gt;网站的营利模式比较明显,开发相关的广告,先在首页上就有intelliJ IDEA和网豆(netbeans)的广告&lt;br /&gt;&lt;a href="http://zbw25.spaces.live.com/Blog/cns%21BD4EFBFAF436336C%211227.entry"&gt;有人&lt;/a&gt;认为blog+&lt;a href="http://www.digg.com"&gt;digg&lt;/a&gt;+&lt;a href="www.dzone.com"&gt;dzone&lt;/a&gt;的模式有做头&lt;br /&gt;做全还是做专,that is a question...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115958523637749337?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115958523637749337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115958523637749337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115958523637749337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115958523637749337'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/09/web20-dzone.html' title='web2.0观察--Dzone'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115958398079194443</id><published>2006-09-30T10:20:00.000+08:00</published><updated>2006-09-30T10:39:40.800+08:00</updated><title type='text'>web2.0观察--什么是web2.0</title><content type='html'>我定义的web2.0是基于ajax技术的能带来丰富的用户体验的web应用&lt;br /&gt;前几天去参加sun的大学科技日,sun的一位叫李涛的人通俗的解释了web2.0(大意):web2.0就是将以前的桌面应用做到web上来,让浏览器可以访问,所以说以后ms会被慢慢的架空....&lt;br /&gt;当然最后一句有点夸张,ms也在急剧的往web上发展,比如最近的&lt;a href="http://www.donews.com/Content/200609/673f1892a00c4145b8bd9bb381b761b9.shtm"&gt;soapbox&lt;/a&gt;所谓ajax最早出现并广为人知大概是基于这篇文章&lt;a href="http://adaptivepath.com/publications/essays/archives/000385.php"&gt;Ajax: A New Approach to Web Applications&lt;/a&gt;&lt;br /&gt;,里面有一张图可以很好的解释这种技术,很多人觉得这个是旧瓶装新酒,这个评价颇有点贬低这这极具创新的想法的意思.发掘已由技术的潜在能力和创造一个新的技术的解决方案一样nb&lt;br /&gt;按照将桌面应用迁移到web应用的观点,我看来最成功的并最能说明这种趋势的便是&lt;a href="www.writely.com/"&gt;writely&lt;/a&gt;这个已经被google招入麾下的web应用&lt;br /&gt;web2.0出来前,web的表现力是平庸的,web2.0提供了丰富的用户交互能力,让web变得依然饭特西&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115958398079194443?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115958398079194443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115958398079194443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115958398079194443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115958398079194443'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/09/web20-web20.html' title='web2.0观察--什么是web2.0'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115945794407874625</id><published>2006-09-28T23:38:00.000+08:00</published><updated>2006-09-30T10:18:40.083+08:00</updated><title type='text'>what is use cases</title><content type='html'>From:&lt;a href="http://www.pragmaticprogrammer.com/title/rails/"&gt;Agile Web Development with rails&lt;/a&gt;&lt;br /&gt;Use Cases&lt;br /&gt;A use case is simply a statement about how some entity uses a system.&lt;br /&gt;Consultants invent these kinds of phrases when they want to charge more&lt;br /&gt;money—it’s a perversion of business life that fancy words always cost more&lt;br /&gt;than plain ones, even though the plain ones are more valuable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115945794407874625?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115945794407874625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115945794407874625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115945794407874625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115945794407874625'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/09/what-is-use-cases.html' title='what is use cases'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115927913490035088</id><published>2006-09-26T21:58:00.000+08:00</published><updated>2006-09-30T10:19:15.736+08:00</updated><title type='text'>rails运行环境的安装</title><content type='html'>&lt;a href="http://www.pragmaticprogrammer.com/title/rails/"&gt;Agile Web Development with rails&lt;/a&gt;的作者说这一部分可能是整本书中最难的一部分...&lt;br /&gt;书中说mac比windows安装麻烦一点,但是Mac用户可以欢呼的是主要的Rails core team成员都用的是Mac...(Mac上有传说中的video上编辑器TextMate...)&lt;br /&gt;我的os是linux(ubuntu 6.06 Dapper Drake distro),按照这个过程:&lt;br /&gt;&lt;a href="http://fo64.com/articles/2005/10/20/rails-on-breezy"&gt;http://fo64.com/articles/2005/10/20/rails-on-breezy&lt;/a&gt;&lt;br /&gt;非常完美,除了最后重启了X才出来结果(我也不知道为什么...)&lt;br /&gt;还可以参考官方&lt;a href="http://wiki.rubyonrails.com/rails/pages/RailsOnUbuntuDebianTestingAndUnstable"&gt;wiki&lt;/a&gt;&lt;br /&gt;需要安装的有ruby,rails,一种数据库(MySql),一个服务器(Apache+FastCGI)&lt;br /&gt;安装玩后跑了我的第一个rails应用,按照fo64.com上的例子,那个应用的名称是pleasework&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115927913490035088?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115927913490035088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115927913490035088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115927913490035088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115927913490035088'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/09/rails.html' title='rails运行环境的安装'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115894571950166433</id><published>2006-09-23T01:18:00.000+08:00</published><updated>2006-09-23T01:21:59.503+08:00</updated><title type='text'>My first ruby experiencs</title><content type='html'>&lt;a href="http://www.ruby-lang.org/"&gt;ruby主页&lt;/a&gt;上对ruby的定义是&lt;br /&gt;A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.&lt;br /&gt;什么是动态语言呢,wikipedia上的定义是&lt;br /&gt;In computer science, a dynamic programming language is a kind of programming language in which programs can change their structure as they run: functions may be introduced or removed, new classes of objects may be created, new modules may appear. As a side effect of this dynamism, most dynamic programming languages are dynamically typed, which static typing advocates consider a drawback.According to advocates of dynamic programming languages, however, the flexibility of dynamic languages offsets these drawbacks, and even provides advantages so considerable as to make this an essential feature, for example for interactive programming.&lt;br /&gt;简单的理解,可能可以是动态类型的语言是动态语言&lt;br /&gt;什么是动态的类型呢,大概可以理解为不需要静态的指定变量类型&lt;br /&gt;&lt;br /&gt;看了ruby主页上的&lt;a href="http://www.ruby-lang.org/en/documentation/quickstart"&gt;Ruby in Twenty Minutes&lt;/a&gt; ,一点感觉:&lt;br /&gt;1.常见的elseif被缩写成elsif,非常不习惯&lt;br /&gt;2.一个类被定义后,还可以为该类定义新的方法,非常动态吧&lt;br /&gt;3.一个非常impressive的tricky:if __FILE__ == $0,其中__FILE__是代码所在文件名的变量,$0是启动程序的文件名,如果当前文件==启动程序的文件,说明在执行这个文件,那么就继续执行下面的代码&lt;br /&gt;这种情况是比如说比如这个文件被编成库,运行的程序名肯定不等于这个文件名,那后面的代码就不用执行&lt;br /&gt;这个后面可以放一些单元测试的代码&lt;br /&gt;4.借鉴的lisp中的closure:&lt;br /&gt;@names.each do&lt;br /&gt;        |name|&lt;br /&gt;        puts "Hello #{name}!"&lt;br /&gt;这句的意思是说,对@name中的每个元素,执行puts "Hello #{name}!",(#{}是把括号里的量转化为字符串),简化for(i=1;i&lt;=@names.length;i++) dosomething这种写法&lt;br /&gt;当然还有更加强大的用法,见&lt;a href="http://www.martinfowler.com/bliki/Closure.html"&gt;MartinFlower写的closure&lt;/a&gt; ,MartinFlower将其认为是很多rubyist喜欢ruby的一个原因&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115894571950166433?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115894571950166433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115894571950166433' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115894571950166433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115894571950166433'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/09/my-first-ruby-experiencs.html' title='My first ruby experiencs'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34840056.post-115894550987240053</id><published>2006-09-23T01:15:00.000+08:00</published><updated>2006-09-23T01:56:32.623+08:00</updated><title type='text'>Ruby不完全读书指南(zt)</title><content type='html'>发信人: dev (无间※伤城), 信区: Ruby&lt;br /&gt;标  题: Ruby不完全读书指南(zt)&lt;br /&gt;发信站: 水木社区 (Tue Sep 19 19:02:38 2006), 站内&lt;br /&gt;&lt;br /&gt;verycd上有&lt;br /&gt;&lt;br /&gt;Programming Ruby（2nd Edition）&lt;br /&gt;&lt;br /&gt;这似乎已经不是怪事：关于一种编程语言的经典教材，作者不是这门语言的创造者。就像Stan Lippman之于C++、Joshua Bloch之于Java、Martin Fowler之于UML一样，DaveThomas也许是这个世界上最善于向别人讲解Ruby语言的人——至少超过Matsumoto是毫无问题的。也许正是因为自己也经历了“不懂到懂”的学习过程，有时候“旁观者”反倒比“创造者”更清楚学习者们需要什么。&lt;br /&gt;　　所以这本书就是Ruby的经典教材。关于Ruby的基本语法和常用工具，书中第一部分和第二部分做了详细的介绍。第三部分“Ruby Crystallized”更加阐述了Ruby语言的一些细节和设计理念，其中第23章“Duck Typing”是刚从Java或者.NET平台走出来的读者不可错过的，因为对于类型与契约的理解、对于类与类型的理解，正是Ruby这种动态语言与Java/C#等静态语言最大的区别之一。随后的第四部分提供了Ruby基础类库的速查手册。&lt;br /&gt;　　Dave Thomas和Andy Hunt这两个“Pragmatic Programmer”并非浪得虚名：这本rogramming Ruby虽然不是一本称职的参考手册，却足够帮助一个初学者步入Ruby世界而不致误入歧途，并且能够在很少见的一些情况下——譬如说忘了yield的用法——给有经验的Ruby程序员提供帮助。在我看来，这也就足够奠定它作为经典教材的地位了。由于封面上有一柄丁字镐，这本书也被昵称为“镐头书”——它正是你发掘“红宝石”（Ruby）宝藏的必备工具。&lt;br /&gt;&lt;br /&gt;Agile Web Development with Rails&lt;br /&gt;&lt;br /&gt;Rails的作者David Heinemeier Hansson说过一句大实话：“我从来不会为了学语言而学语言。”大多数人在大多数时候学习一种新的语言不是为了比较语言的优劣，而是因为这个语言底下的某个工具能给他的工作带来帮助。Ruby世界里的这个“杀手应用”，让Ruby在短短一年时间里成为焦点的这个工具，就是Rails。&lt;br /&gt;　　这是第一本介绍Rails的图书，又是由Rails的作者DHH和前面提到的Dave Thomas共同撰写，其价值可谓不言而喻了。许是两位作者有太多的“乾货”想要交给读者，这本书的第一版被他们——不幸地——写到了558页之厚。书中首先展示了一个规模不大的在线购物网站，让读者亲身体验用Rails进行敏捷开发的感受；然后针对Rails框架的各个组件和安全、部署等延伸话题展开了深入的讨论。其内容之全面、探讨之深入，令人叹为观止。看起来，和Matsumoto不同，DHH很清楚应该怎么介绍自己的作品——不管是“浅出”还是“深入”。&lt;br /&gt;　　值得中国读者高兴的是，这本书的第一版已经由林芷薰翻译，电子工业出版社付梓。Rails仍然处在高速发展的阶段，从本书第一版截稿至今，Rails已经发生了相当大的变化，因此这本中译本甫一面世便已经有很多过时之处。但这本书毕竟不是参考手册，作者更多地是在其中阐述Rails的设计理念和最佳实践。对于英文阅读无法达到最快速度的读者来说，这个译本未尝不可以是一个称职的向导。&lt;br /&gt;&lt;br /&gt;Rails开发者助手两种&lt;br /&gt;&lt;br /&gt;　　不难想象，有很多性急的程序员会——就像我一样——草草了解Ruby语法之后就一头扎进Rails的绚丽宫殿，体验快速开发web应用的成就感，却不得不时时因为缺乏对Ruby语言的深入了解而感到迷惑：这个类里什么都没有，它为什么会工作？那个地方写的代码是什么意思？可是，要全面系统地学习Ruby，又实在令人望而生畏。还好，我们有这本Ruby for Rails。书中介绍了一些Ruby语言特性——既有普通的也有高级的，都是Rails中使用到的。简而言之，这就是一本专门为Rails应用开发者提供的Ruby指南。更有趣的是，书中还用了一章（第17章）篇幅专门介绍“如何探索Rails源代码”，真可谓是“授人以渔”的典范了。&lt;br /&gt;　　另一个“助手”则是Chad Fowler——他也是Programming Ruby的合着者——的Rails&lt;br /&gt;Recipes。和任何一本“菜谱”（recipe）一样，这本书不会教你如何使用菜刀与炒勺、如何把蔬菜切片——你可以从别的很多地方学到这些技巧。这本RailsRecipes教给读者的，是如何在 Rails环境下急就章地完成一个你需要的功能。譬如说“用户登录与身份验证”这件事，每个网站、每个开发者都曾经做过不止一次，这本书中就给了读者一个简单而可靠的解决方案，读者只要抄抄改改，几分钟就可以完成这个功能。对于初接触Rails（以及Web2.0）、面对很多问题尚且无从下手的新兵来说，这本书确实可以帮助他们解决一些实际问题。&lt;br /&gt;　　不过这本书的局限也同样明显：如果你需要的菜色超出了这份菜谱的范围，它就只好爱莫能助了；而且，仅仅给出解决问题的代码，却没有对应的单元测试，也让习惯了TDD的读者多少有些忐忑。在我看来，这本书对“授人以鱼”的专注恰好和前一本Ruby for Rails构成了一对“可怕的对称”，也让这两本书有理由共存于Rails开发者的案头。&lt;br /&gt;&lt;br /&gt;Ruby In A Nutshell&lt;br /&gt;&lt;br /&gt;　　作为Ruby语言的缔造者，Yukihiro Matsumoto只能写一本“果壳书”，这本身就是一件耐人寻味的事情。O’Reilly的“果壳书”系列历来褒贬不一：有人认为它们缺乏深度，也有人认为它们是快速入门的好帮手。但Matsumoto最大的问题在于：他创造了Ruby，却没有真正意识到这种语言到底有多大的威力——后来他经常在Ruby on Rails讨论组活动，从中了解一些精妙的Ruby用法。其结果也很自然：这本Ruby In A Nutshell作为语言参考中规中矩，但对于实际应用中的妙处——例如在DSL方面的应用——却语焉不详。再加上它所针对的Ruby版本是略显过时的1.6版，也让这本书的地位略显尴尬。&lt;br /&gt;&lt;br /&gt;Ruby 奇书两种&lt;br /&gt;&lt;br /&gt;　　称它们为“奇书”，因为它们的主题实在偏颇。先看这本Enterprise Integration with Ruby：虽说脚本语言常常被称为“胶水”，有多少人会当真想到用Ruby去做企业应用集成？不过细看之下，这本书多少有些名不副实之嫌，因为它真正介绍的无非只是如何访问数据库、如何操作XML、如何通过SOCKET通信之类比较底层的技术而已。在一个生僻的题目之下写着另一些生僻的内容，尽管这些内容算得上有趣，但我还是要对那些没有读过这本书的Ruby程序员说：你没有错过太多——尽管这本书与你想象的并不一样。&lt;br /&gt;　　最后要介绍的这本书更是备受争议：有人盛赞它是“精通Ruby的必经之路”，也有人批评它沉溺于奇技淫巧缺乏实用价值。但无论褒贬，更多的读者正在逐一挑战其中的谜题——这本书就是James Edward Gray所着的Best of Ruby Quiz。这本书（目前出版的是第一卷）列举了25道题目，读者大多可以想出一种办法来解决这些问题，往往还能 通过思考和重构找到第二种优雅的设计，但这本书却给你列出了第三种、第四种真正精巧的解决方案——充分利用Ruby技巧才能得出的解决方案。这些题目的最终解法之巧妙，常常令人拍案叫绝（或是破口大骂）。不过这些“奇技淫巧”也并非全无用处，例如书中很多题目在解答时都用到了正则表达式，理解这些解答对于深入学习正则表达式的用法是很有帮助的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34840056-115894550987240053?l=studyrubyonrails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://studyrubyonrails.blogspot.com/feeds/115894550987240053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34840056&amp;postID=115894550987240053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115894550987240053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34840056/posts/default/115894550987240053'/><link rel='alternate' type='text/html' href='http://studyrubyonrails.blogspot.com/2006/09/rubyzt.html' title='Ruby不完全读书指南(zt)'/><author><name>subdragon</name><uri>http://www.blogger.com/profile/12692212642811339593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://mprc.pku.edu.cn/~chenyin/sub.jpg'/></author><thr:total>0</thr:total></entry></feed>
