<?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-4028224625408831561</id><updated>2011-04-22T08:32:08.063+08:00</updated><category term='firefox'/><category term='yahoo'/><category term='gossip'/><category term='javascript'/><category term='java'/><category term='Ruby'/><category term='Rails'/><category term='uml'/><category term='cookbook'/><category term='jruby'/><category term='RubyWeaver'/><category term='cheatsheet'/><category term='ruby-uml'/><category term='hpricot'/><category term='Dreamweaver'/><category term='IDE'/><category term='greasemonkey'/><category term='gems'/><title type='text'>血鑽石：Ruby on Bleeding Edge</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://evillon.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://evillon.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>jing</name><uri>http://www.blogger.com/profile/06909353414669576419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4028224625408831561.post-1706849219237394471</id><published>2007-07-10T22:16:00.000+08:00</published><updated>2007-07-10T22:40:19.327+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='RubyWeaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Dreamweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>RubyWeaver，好用快速的 Ruby and Rails IDE。</title><content type='html'>話說今天想要將 depot 砍掉重練，因為我是 Java programer，&lt;br /&gt;我把 Rails 忘光光了 :D&lt;br /&gt;&lt;br /&gt;於是我又翻開 AWDwR2，裡面時常會穿插一些作者的話（灰色區塊），&lt;br /&gt;看到一個老調重彈的標題 Where's My IDE?&lt;br /&gt;&lt;br /&gt;既然是老調，也不必多說，網路上自行搜尋自然有很多方案。&lt;br /&gt;&lt;br /&gt;但是後面的一段話說的滿有道理，所以我去搜尋相關 Dreamweaver 的 plugins，&lt;br /&gt;找到一個不錯用的 plugins 安裝也方便，比&lt;a href="http://www.bdcsoftware.com/blog/entry/8/Dreamweaver_8_and_Ruby_on_Rail"&gt;舊方法&lt;/a&gt;好很多，&lt;br /&gt;這個 plugins 叫做 &lt;span style="font-size:100%;"&gt;&lt;a href="http://rubyweaver.gilluminate.com/"&gt;RubyWeaver&lt;/a&gt; 。&lt;br /&gt;&lt;br /&gt;裝完之後，對 &lt;/span&gt;.rb, .rhtml, .rxml, .yml, and .sql 皆有支援，&lt;br /&gt;syntax highlight and code hints 也有支援（中文windows 可以修改一下 程式碼提示熱鍵，因為中文 windows 的 Ctrl+Space 被輸入法搶去用）。&lt;br /&gt;&lt;br /&gt;如果不喜歡寫 ruby or rails 還要開笨重的 Java IDE，&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://rubyweaver.gilluminate.com/"&gt;RubyWeaver&lt;/a&gt; 是不錯的選擇。 &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4028224625408831561-1706849219237394471?l=evillon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evillon.blogspot.com/feeds/1706849219237394471/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4028224625408831561&amp;postID=1706849219237394471' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/1706849219237394471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/1706849219237394471'/><link rel='alternate' type='text/html' href='http://evillon.blogspot.com/2007/07/rubyweaver-ruby-and-rails-ide.html' title='RubyWeaver，好用快速的 Ruby and Rails IDE。'/><author><name>jing</name><uri>http://www.blogger.com/profile/06909353414669576419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4028224625408831561.post-3534670406625848380</id><published>2007-06-22T15:01:00.000+08:00</published><updated>2007-06-22T16:05:04.207+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jruby'/><category scheme='http://www.blogger.com/atom/ns#' term='hpricot'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='gems'/><title type='text'>在 Java 中使用 JRuby &amp; Gems</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;此篇文章鎖定的目標是，想在&lt;/span&gt;&lt;span lang="EN-US"&gt; Java &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;中，使用強大的&lt;/span&gt;&lt;span lang="EN-US"&gt; Ruby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;語法，以及其他&lt;/span&gt;&lt;span lang="EN-US"&gt; Gems&lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;。&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;換句話說，就是拿&lt;/span&gt;&lt;span lang="EN-US"&gt; Java &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;當飯吃，卻又想要偷吃&lt;/span&gt;&lt;span lang="EN-US"&gt; Ruby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的工程師們～囧&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.headius.com/jrubywiki/index.php/Java_Integration"&gt;http://www.headius.com/jrubywiki/index.php/Java_Integration&lt;/a&gt;&lt;br /&gt;JRuby wiki 中提到，要在 java 中使用 gems 需要注意兩件事。&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -24pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b style=""&gt;&lt;span lang="EN-US"&gt;jruby.base&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US"&gt;, &lt;b style=""&gt;jruby.home&lt;/b&gt;, &lt;b style=""&gt;jruby.lib&lt;/b&gt;, &lt;b style=""&gt;jruby.shell&lt;/b&gt;, and &lt;b style=""&gt;jruby.script&lt;/b&gt;. You can look in &lt;b style=""&gt;jruby.bat&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;。&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;wiki &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;中是這麼說，但是我並沒這麼做。我只做了底下這件事。&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;Ruby runtime = Ruby.getDefaultInstance();&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;runtime.setJRubyHome(JRUBY_HOME); // &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;需先設定好&lt;/span&gt;&lt;span lang="EN-US"&gt; JRUBY_HOME &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;環境變數&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span style="font-family:新細明體;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -24pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family:新細明體;"&gt;這個就必須要乖乖照做，就是先觀察&lt;/span&gt;&lt;span lang="EN-US"&gt; jirb &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;底下&lt;/span&gt;&lt;span lang="EN-US"&gt; $: &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的&lt;/span&gt;&lt;span lang="EN-US"&gt; load path&lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;。&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;["D:/JRuby/jruby-bin-1.0/jruby-1.0/lib/ruby/site_ruby/1.8",&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;"D:/JRuby/jruby-bin-1.0/jruby-1.0/lib/ruby/site_ruby",&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;"D:/JRuby/jruby-bin-1.0/jruby-1.0/lib/ruby/1.8",&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;"D:/JRuby/jruby-bin-1.0/jruby-1.0/lib/ruby/1.8/java",&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;"lib/ruby/1.8",&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;"."]&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt;"&gt;&lt;span style="font-family:新細明體;"&gt;乖乖做吧&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span  lang="EN-US" style="color:black;"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span  lang="EN-US" style="color:black;"&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"$: &lt;&lt; '"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt; + JRUBY_HOME + &lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"/lib/ruby/site_ruby/1.8'"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt;);&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span  lang="EN-US" style="color:black;"&gt;&lt;span style=""&gt;                &lt;/span&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"$: &lt;&lt; '"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt; + JRUBY_HOME + &lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"/lib/ruby/site_ruby'"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt;);&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span  lang="EN-US" style="color:black;"&gt;&lt;span style=""&gt;                &lt;/span&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"$: &lt;&lt; '"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt; + JRUBY_HOME + &lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"/lib/ruby/1.8'"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt;);&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span  lang="EN-US" style="color:black;"&gt;&lt;span style=""&gt;                &lt;/span&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"$: &lt;&lt; '"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt; + JRUBY_HOME + &lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"/lib/ruby/1.8/java'"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt;);&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-US" style="color:black;"&gt;&lt;span style=""&gt;                &lt;/span&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);" lang="EN-US"&gt;"$: &lt;&lt; 'lib/ruby/1.8'"&lt;/span&gt;&lt;span  lang="EN-US" style="color:black;"&gt;);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-US" style="color:black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;以上狀況，皆為理想情況下，就能在&lt;/span&gt;&lt;span lang="EN-US"&gt; java &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;中使用&lt;/span&gt;&lt;span lang="EN-US"&gt; gems&lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;。&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;但是，都沒提到，&lt;/span&gt;&lt;span lang="EN-US"&gt;windows &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;需要注意的問題。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(255, 0, 0);" class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Windows &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;使用者，另外需要注意，目錄分隔符號。&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;問題出在底下程式碼&lt;/span&gt;&lt;span lang="EN-US"&gt; ( rubygems.rb )&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;# gem directories must come after -I and ENV['RUBYLIB']&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;      &lt;/span&gt;$:.insert($:.index(&lt;/span&gt;&lt;span lang="EN-US"&gt;sitelibdir&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;), *require_paths)&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;稍微解釋一下&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;問題出在&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; $:.index(&lt;/span&gt;&lt;span lang="EN-US"&gt;sitelibdir&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;sitelibdir &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;是&lt;/span&gt; &lt;span style="" lang="EN-US"&gt;sitelibdir = Config::CONFIG['sitelibdir']&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;是從&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; require ‘rubygems’ &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;去&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; require ‘rbconfig’ &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;定義好的&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;  $jruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']"&lt;br /&gt;D:/JRuby/jruby-bin-1.0/jruby-1.0/lib/ruby/site_ruby/1.8&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;因為通常我們設定&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; windows &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的環境變數，目錄分隔符號通常都是使用左上右下&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; =&gt; \&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;但是&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; rbconfig &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;所用的是&lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;右上左下&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; =&gt; /&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;所以我們在定義&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; load path &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;之前，需要先把目錄分隔符號轉成&lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;右上左下&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; =&gt; /&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;blockquote&gt;String JRUBY_HOME = System.getenv().get("JRUBY_HOME").replaceAll("\\\\", "/");&lt;/blockquote&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;接下來安裝&lt;span style="color: rgb(255, 0, 0);"&gt; 台中邪惡&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);" lang="EN-US"&gt; Ruby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;團&lt;/span&gt; 最常用的&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; gem – hpricot&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;因為&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; ruby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;許多東西為了增加效能或其他目的，某些部份可能會使用&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; C code&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;hpricot &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;也是如此，所以&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; hpricot &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;作者有改寫一個&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; JRuby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;版本&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;參考&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; Ola Bini &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的&lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;a href="http://ola-bini.blogspot.com/2007/02/hpricot-goodness.html"&gt;Hpricot goodness&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;blockquote&gt;$jruby bin/gem install hpricot --source http://code.whytheluckystiff.net&lt;/blockquote&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;然後在&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; Java &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;中測試&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;"require 'rubygems'"&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;);&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;"require 'hpricot'"&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;"doc = Hpricot(open(\"http://redhanded.hobix.com/index.html\"))"&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;);&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;runtime.evalScript(&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;"puts doc"&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;或是跳過那難用的&lt;/span&gt;&lt;span style=""&gt; &lt;span lang="EN-US"&gt;Java Regexp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;使用&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; Ruby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; Regexp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;RubyString str = (RubyString) runtime.evalScript(&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;"$1 if 'a1b&lt;st1:chmetcnv unitname="C" sourcevalue="2" hasspace="False" negative="False" numbertype="1" tcsc="0" st="on"&gt;2c&lt;/st1:chmetcnv&gt;3' =~ /(\\d)/"&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;);&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;System.&lt;/span&gt;&lt;i&gt;&lt;span style="" lang="EN-US"&gt;out&lt;/span&gt;&lt;/i&gt;&lt;span style="" lang="EN-US"&gt;.println(str.toString() + &lt;/span&gt;&lt;span style="" lang="EN-US"&gt;" = str"&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;);&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;/span&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;以上程式碼，聰明的你應該想到該怎麼使用 Ruby 去載入 .rb 吧！&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;才不會像上面那麼難閱讀。&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;還有 過一陣子再來討論一下，為何不把&lt;/span&gt;&lt;span lang="EN-US"&gt; .rb &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;包成&lt;/span&gt;&lt;span lang="EN-US"&gt; jar &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;檔使用。&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4028224625408831561-3534670406625848380?l=evillon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evillon.blogspot.com/feeds/3534670406625848380/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4028224625408831561&amp;postID=3534670406625848380' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/3534670406625848380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/3534670406625848380'/><link rel='alternate' type='text/html' href='http://evillon.blogspot.com/2007/06/java-jruby-gems.html' title='在 Java 中使用 JRuby &amp; Gems'/><author><name>jing</name><uri>http://www.blogger.com/profile/06909353414669576419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4028224625408831561.post-5233002307001071883</id><published>2007-06-22T14:20:00.000+08:00</published><updated>2007-06-22T14:37:17.954+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby-uml'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='uml'/><category scheme='http://www.blogger.com/atom/ns#' term='jruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Can your Java do this?</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;呼應一下&lt;/span&gt; &lt;span lang="EN-US"&gt;Ola Bini &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的&lt;/span&gt;&lt;span lang="EN-US"&gt; blog &lt;a href="http://ola-bini.blogspot.com/2007/04/can-your-ruby-do-this.html"&gt;Can your Ruby do this?&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://ola-bini.blogspot.com/2007/04/can-your-ruby-do-this.html"&gt;  &lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;今天來介紹，用&lt;/span&gt; &lt;span lang="EN-US"&gt;&lt;a href="http://rubyforge.org/projects/ruby-uml/"&gt;ruby-uml&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;來畫&lt;/span&gt;&lt;span lang="EN-US"&gt; Java &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的&lt;/span&gt;&lt;span lang="EN-US"&gt; UML &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;首先使用&lt;/span&gt;&lt;span lang="EN-US"&gt; JRuby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;安裝&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;a href="http://rubyforge.org/projects/ruby-uml/"&gt;ruby-uml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;$jruby -S gem i ruby-uml&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'uml/class_diagram'&lt;br /&gt;&lt;br /&gt;require 'java'&lt;br /&gt;include_class 'java.util.Random'&lt;br /&gt;&lt;br /&gt;filename = "Random.dot"&lt;br /&gt;puts filename&lt;br /&gt;cd = UML::ClassDiagram.new :show_private_methods =&gt; false,&lt;br /&gt;:show_protected_methods =&gt; false,&lt;br /&gt;:show_public_methods =&gt; true,&lt;br /&gt;:cluster_packages =&gt; true,&lt;br /&gt;:include =&gt; [/^Java/]&lt;br /&gt;&lt;br /&gt;cd.include Java::JavaUtil::Random&lt;br /&gt;Random.new(123)&lt;br /&gt;&lt;br /&gt;File.open( filename, 'w' ) { |file|&lt;br /&gt;file.write cd.to_dot&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;此處也呼應一下&lt;/span&gt;&lt;span lang="EN-US"&gt; thegiive &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;的&lt;/span&gt; &lt;a href="http://lightyror.thegiive.net/2007/06/jruby.html"&gt;&lt;span lang="EN-US"&gt;JRuby &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;安裝方式&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://lightyror.thegiive.net/2007/06/jruby.html"&gt;  &lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;在上面程式碼當中，我們選擇使用&lt;/span&gt;&lt;span lang="EN-US"&gt; Class Diagram&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;:include =&gt; [/^Java/] # Java &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;開頭的我們才把他轉出&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;cd.include Java::JavaUtil::Random # &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;將&lt;/span&gt;&lt;span lang="EN-US"&gt; Random &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;列入觀察物件&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;# &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;以下動作會繪製出相關的&lt;/span&gt;&lt;span lang="EN-US"&gt; Class Diagram&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;# &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;此處我們只把&lt;/span&gt;&lt;span lang="EN-US"&gt; Random &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;物件生成的相關&lt;/span&gt;&lt;span lang="EN-US"&gt; Class &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;列出來&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Random.new(123)&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;執行完之後，會產生&lt;/span&gt; &lt;span lang="EN-US"&gt;Random.dot &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;檔&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;dot &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;檔是一種描述階層或是有層次的指向圖形&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;又興趣的人可以用文字編輯器打開看看&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;接下來&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;請安裝&lt;/span&gt; &lt;a href="http://graphviz.org/"&gt;&lt;span lang="EN-US"&gt;Graphviz&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;當中有個工具可以將&lt;/span&gt;&lt;span lang="EN-US"&gt; dot &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;檔轉換成圖形&lt;/span&gt;&lt;span lang="EN-US"&gt; (ex: png …)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;在 程式集&lt;/span&gt;&lt;span lang="EN-US"&gt;&gt;&gt;Graphviz&gt;&gt;dot&lt;/span&gt;&lt;/p&gt;   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_wNkPjZpNu7k/Rntr6szDxBI/AAAAAAAAAHE/9-H526cSfLk/s1600-h/2007-06-22_141328_.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_wNkPjZpNu7k/Rntr6szDxBI/AAAAAAAAAHE/9-H526cSfLk/s320/2007-06-22_141328_.png" alt="" id="BLOGGER_PHOTO_ID_5078771660992267282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;四個步驟就能把&lt;/span&gt;&lt;span lang="EN-US"&gt; dot &lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;檔轉換成圖形&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;轉出結果如下&lt;/span&gt;&lt;/p&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_wNkPjZpNu7k/RntsXMzDxCI/AAAAAAAAAHM/NiUc862qyT8/s1600-h/Random.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_wNkPjZpNu7k/RntsXMzDxCI/AAAAAAAAAHM/NiUc862qyT8/s320/Random.png" alt="" id="BLOGGER_PHOTO_ID_5078772150618539042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:新細明體;"&gt;相關文章：&lt;/span&gt;&lt;span lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-family:新細明體;"&gt;這不是打廣告&lt;/span&gt;&lt;span lang="EN-US"&gt; XD)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://blog.xuite.net/jameschih/java/10184758"&gt;&lt;span lang="EN-US"&gt;http://blog.xuite.net/jameschih/java/10184758&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://blog.xuite.net/jameschih/java/10185011"&gt;http://blog.xuite.net/jameschih/java/10185011&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4028224625408831561-5233002307001071883?l=evillon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evillon.blogspot.com/feeds/5233002307001071883/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4028224625408831561&amp;postID=5233002307001071883' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/5233002307001071883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/5233002307001071883'/><link rel='alternate' type='text/html' href='http://evillon.blogspot.com/2007/06/can-your-java-do-this.html' title='Can your Java do this?'/><author><name>jing</name><uri>http://www.blogger.com/profile/06909353414669576419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_wNkPjZpNu7k/Rntr6szDxBI/AAAAAAAAAHE/9-H526cSfLk/s72-c/2007-06-22_141328_.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4028224625408831561.post-5319550721086088528</id><published>2007-05-01T11:11:00.000+08:00</published><updated>2007-05-01T16:57:50.420+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='greasemonkey'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><title type='text'>用 Firefox 的 greasemonkey 移除 Yahoo 的 Flash 廣告</title><content type='html'>大家都知道 Yahoo 的 Flash 廣告很吃資源&lt;br /&gt;打開 Yahoo 之後一堆廣告在那邊閃阿閃&lt;br /&gt;CPU 就在那邊哭&lt;br /&gt;尤其用 Firefox 使用分頁的時候&lt;br /&gt;發現 Firefox 的使用程度是 100%&lt;br /&gt;&lt;br /&gt;早上閒來無事&lt;br /&gt;就寫了一小段 javascript&lt;br /&gt;來移除惱人的 Yahoo Flash AD&lt;br /&gt;&lt;br /&gt;姑且先叫他 &lt;a href="http://evillon.googlepages.com/yahooadsblocker.user.js"&gt;YADB (Yahoo ADs Blocker)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;原先是用 parentNode.removeChild 去處理&lt;br /&gt;但是我發現 yahoo 很過份&lt;br /&gt;一個 node 不止一個廣告&lt;br /&gt;所以改用 parentNode.innerHTML = 'Replaced By YADB';&lt;br /&gt;&lt;br /&gt;看一下使用結果&lt;br /&gt;&lt;img src="http://evillon.googlepages.com/YADB1.PNG" /&gt;&lt;br /&gt;使用 yahoo 查單字，右邊的 flash 廣告被疑除了&lt;br /&gt;&lt;br /&gt;所以只要是 yahoo 網域內所有的 &lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;FLASH 廣告&lt;/span&gt; 都會被移除&lt;br /&gt;* 只有 FLASH 喔，因為他吃資源，其他的例如 gif 我則沒將他們移除。&lt;br /&gt;&lt;br /&gt;在看看 yahoo blog&lt;br /&gt;&lt;img src="http://evillon.googlepages.com/YADB2.PNG" /&gt;&lt;br /&gt;右邊廣告區被取代了&lt;br /&gt;&lt;br /&gt;您是不是覺得 yahoo 網頁常常讓您的電腦跑不動呢？&lt;br /&gt;試試看 &lt;a href="http://evillon.googlepages.com/yahooadsblocker.user.js"&gt;YADB (Yahoo ADs Blocker)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;點此安裝： &lt;a href="http://evillon.googlepages.com/yahooadsblocker.user.js"&gt;YADB&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4028224625408831561-5319550721086088528?l=evillon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evillon.blogspot.com/feeds/5319550721086088528/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4028224625408831561&amp;postID=5319550721086088528' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/5319550721086088528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/5319550721086088528'/><link rel='alternate' type='text/html' href='http://evillon.blogspot.com/2007/04/firefox-greasemonkey-yahoo-flash.html' title='用 Firefox 的 greasemonkey 移除 Yahoo 的 Flash 廣告'/><author><name>jing</name><uri>http://www.blogger.com/profile/06909353414669576419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4028224625408831561.post-4853981569530132510</id><published>2007-04-03T23:35:00.000+08:00</published><updated>2007-04-03T23:44:33.616+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='cookbook'/><category scheme='http://www.blogger.com/atom/ns#' term='cheatsheet'/><title type='text'>PLEAC - Programming Language Examples Alike Cookbook</title><content type='html'>發現好物！&lt;br /&gt;&lt;br /&gt;http://pleac.sourceforge.net/&lt;br /&gt;&lt;br /&gt;提供程式語言範例，簡單說就是 cookbook 啦！&lt;br /&gt;且自由軟體主流語言完成度相當高，&lt;br /&gt;可以算是 OpenSource Programming Language Hacks 了～囧&lt;br /&gt;不僅是學習語言的好網站，也可當作是 cheatsheets 吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4028224625408831561-4853981569530132510?l=evillon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evillon.blogspot.com/feeds/4853981569530132510/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4028224625408831561&amp;postID=4853981569530132510' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/4853981569530132510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/4853981569530132510'/><link rel='alternate' type='text/html' href='http://evillon.blogspot.com/2007/04/pleac-programming-language-examples.html' title='PLEAC - Programming Language Examples Alike Cookbook'/><author><name>jing</name><uri>http://www.blogger.com/profile/06909353414669576419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4028224625408831561.post-236772420283773563</id><published>2007-03-15T10:12:00.000+08:00</published><updated>2007-03-15T10:14:03.903+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gossip'/><title type='text'></title><content type='html'>撒狗血的 blog 成立～囧&lt;br /&gt;歡迎一起探討 Ruby 或 Rails&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4028224625408831561-236772420283773563?l=evillon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evillon.blogspot.com/feeds/236772420283773563/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4028224625408831561&amp;postID=236772420283773563' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/236772420283773563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4028224625408831561/posts/default/236772420283773563'/><link rel='alternate' type='text/html' href='http://evillon.blogspot.com/2007/03/blog-ruby-rails.html' title=''/><author><name>jing</name><uri>http://www.blogger.com/profile/06909353414669576419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
