tag:blogger.com,1999:blog-75164864310147042952009-06-29T08:12:25.439+08:00正體中文 Ruby 同好網誌map.connect ':lang/:type/:name', :lang => "chinese", :type => "group", :name => "ruby"<br /> 目前的部落格成員都是分散在各地的Ruby愛好者<br /> 如果您也想加入我們一起撰寫文章的話,請跟我們連絡,謝謝<br /> <br /> 我們撰寫的文章都是與Ruby有關的:)<br />CFChttp://www.blogger.com/profile/14467370100858961268noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-7516486431014704295.post-67143477403543224022008-04-17T00:53:00.001+08:002008-04-17T00:53:36.248+08:00Yahoo-LifeType-API (Yahoo!奇摩生活+ Ruby API)今天剛看到生活+釋出API(其實早就釋出了,API網址:<a href="http://tw.developer.yahoo.com/lifestyle_api.html">http://tw.developer.yahoo.com/lifestyle_api.html</a>)後,就開始把NetBeans打開來寫程式了XD<br />現在RubyForge的專案還沒開,倒是GoogleCode的已經開了(網址:<a href="http://code.google.com/p/yahoo-lifetype-api/">http://code.google.com/p/yahoo-lifetype-api/</a>)<br />程式是BSD授權,忘記怎樣包裝Gem檔,等到哪天想起來再包XD<br />程式使用範例(列出生活+的分類):<br /><blockquote><pre class="prettyprint"><a id="Example_(Traditional_Chinese)">#!/usr/bin/env ruby<br />APPID = &quot;NhYX9XjV34FPxdq7zD8T7wwc4QGI5VWu_48NHh03zbPYUfPpcWrpZzhcVDKFQsH9dQ--&quot;<br />require 'lifetype'<br />require 'rexml/document'<br />include REXML<br /><br />puts &quot;獲取生活+類別中... 請稍後&quot;<br />doc = Document.new(LifeType::Class.new(APPID).listClasses)<br />puts &quot;獲取類別結束&quot;<br />puts &quot;類別總數: &quot; + doc.get_elements(&quot;//rsp/ClassList&quot;)[0].attribute(&quot;count&quot;).to_s<br />puts &quot;列出類別中... 請稍後&quot;<br />doc.elements.each(&quot;//rsp/ClassList/Class&quot;) do |ele|<br /> puts &quot;ID: #{ele.attributes[&quot;id&quot;]} -- #{ele.get_elements(&quot;Title&quot;)[0].text}&quot;<br />end<br />puts &quot;列出類別結束&quot;<br /></a></pre></blockquote><pre class="prettyprint">很簡單的就可以使用了,還有doc喔!<br />有Bug可以丟到GoogleCode的Issues或者丟到我信箱內<br />謝謝^^</pre><br /><!-- CFC added for G00g13 4n4ly+!cs --><br /><script src='http://www.google-analytics.com/urchin.js' type='text/javascript'><br /></script><br /><script type='text/javascript'><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-6714347740354322402?l=blog.rubyonrails.org.tw'/></div>CFChttp://www.blogger.com/profile/14467370100858961268noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-8148906957164160632007-12-16T11:50:00.000+08:002007-12-16T11:52:09.636+08:00看似遞迴..<!-- CFC added for G00g13 4n4ly+!cs -->actionpack-1.13.6/lib/action_controller/routing.rb<br /> 465 # Write the real recognition implementation and then resend the message.<br /> 466 def recognize(path, environment={})<br /> 467 write_recognition<br /> 468 recognize path, environment<br /> 469 end<br /><br />實驗:<br /><br />$ cat ~/a.rb<br />o = Object.new<br />def o.foo<br /> puts "1"<br /> instance_eval("def foo; puts 'hi'; end")<br /> puts "2"<br /> foo<br /> puts "3"<br />end<br />o.foo<br />puts "==========="<br />o.foo<br /><br /><br />$ ruby a.rb<br />1<br />2<br />hi<br />3<br />===========<br />hi<br /><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-814890695716416063?l=blog.rubyonrails.org.tw'/></div>LCamelhttp://www.blogger.com/profile/17322637380810346171noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-46747117190690259412007-11-21T19:50:00.000+08:002007-11-21T19:51:48.504+08:00Ruby Predefined Variable $0 v.s. __FILE__<!-- CFC added for G00g13 4n4ly+!cs --><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><div class="msgcontent"> <p>這是網友在<span style="font-family:文鼎PL中楷Uni,serif;">irc</span>上面的問題,網友問說怎麼知道自己所在的檔案的 <span style="font-family:文鼎PL中楷Uni,serif;">path?</span>另一位網友的回答是<span style="font-family:文鼎PL中楷Uni,serif;">__FILE__</span>,可是如果你用<span style="font-family:文鼎PL中楷Uni,serif;">irb</span>去取得<span style="font-family:文鼎PL中楷Uni,serif;">__FILE__</span>的值,結果是<span style="font-family:文鼎PL中楷Uni,serif;">"irb"<br /></span><br /></p> <p><span style="font-family:文鼎PL中楷Uni,serif;">irb(main):001:0> __FILE__<br />=> "(irb)"<br /><br /></span>如果用一個檔案來執行,我們說是<span style="font-family:文鼎PL中楷Uni,serif;">a.rb</span>,在<span style="font-family:文鼎PL中楷Uni,serif;">a.rb</span>中就簡單的放 <span style="font-family:文鼎PL中楷Uni,serif;">p __FILE__</span>,結果也不對<span style="font-family:文鼎PL中楷Uni,serif;"><br /><br />$ruby a.rb<br />>" a.rb"<br /><br /></span>後來在靠<span style="font-family:文鼎PL中楷Uni,serif;">Google</span>大神找到線索:<span style="font-family:文鼎PL中楷Uni,serif;"><br />require 'pathname'<br />puts(Pathname.new($0).realpath)<br /><br /></span>這樣就可以取出目前檔案的真實路徑嗎?答案是有時候可以,可是有時候不行。問題出在他用的是<span style="font-family:文鼎PL中楷Uni,serif;">$0</span>這個<span style="font-family:文鼎PL中楷Uni,serif;">Predefined Variables</span>。<span style="font-family:文鼎PL中楷Uni,serif;"><br /><br /></span>我們來看看<span style="font-family:文鼎PL中楷Uni,serif;">$0</span>與<span style="font-family:文鼎PL中楷Uni,serif;">__FILE__</span>有甚麼不一樣:<span style="font-family:文鼎PL中楷Uni,serif;"><br />$0 : The name of the top-level Ruby program being executed. Typically this will<br />be the program’s filename. On some operating systems, assigning to this<br />variable will change the name of the process reported (for example) by the<br />ps(1) command.<br /><br />__FILE__ : The name of the current source file. [r/o]<br /><br /></span>基本上<span style="font-family:文鼎PL中楷Uni,serif;">$0</span>取出的是最上層執行的檔案,而<span style="font-family:文鼎PL中楷Uni,serif;">__FILE__</span>才是目前執行的檔案。做個小實驗:<span style="font-family:文鼎PL中楷Uni,serif;"><br />#a.rb<br />require "b"<br /><br />#b.rb<br />print "$0 value is "<br />puts $0<br /><br />print "__FILE__ value is"<br />puts __FILE__<br /></span><br /></p> <p>執行的結果</p> <p><span style="font-family:文鼎PL中楷Uni,serif;">$ ruby a.rb </span></p> <p><span style="font-family:文鼎PL中楷Uni,serif;">>$0 value is a.rb </span></p> <p><span style="font-family:文鼎PL中楷Uni,serif;">>__FILE__ value is ./b.rb </span></p> <p><br /></p> <p>所以如果我們要取出目前執行的檔案的絕對路徑,那我們可以用:</p> <p><span style="font-family:文鼎PL中楷Uni,serif;">require 'pathname'<br />puts(Pathname.new(__FILE__).realpath)</span></p> <p><br />另外:<br />從<span style="font-family:文鼎PL中楷Uni,serif;">$0</span>的解釋來看,在某些<span style="font-family:文鼎PL中楷Uni,serif;">OS</span>中,我們可以重新指定<span style="font-family:文鼎PL中楷Uni,serif;">$0</span>的值,例如說我的檔名是<span style="font-family:文鼎PL中楷Uni,serif;">a.rb</span>,可是我就在程式中把<span style="font-family:文鼎PL中楷Uni,serif;">$0</span>的值改為<span style="font-family:文鼎PL中楷Uni,serif;">top.rb</span>,到底有甚麼用途,我實在看不太出來,不過好像有很有意思。</p> <p><br /><span style="font-family:文鼎PL中楷Uni,serif;">reference: Programming Ruby 2rd</span></p> </div><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-4674711719069025941?l=blog.rubyonrails.org.tw'/></div>Wei Jenhttp://www.blogger.com/profile/00239280008646002239noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-64134449906772585482007-09-21T23:26:00.000+08:002007-09-21T23:28:46.623+08:00開發 Rails plugin 的心得與筆記<!-- CFC added for G00g13 4n4ly+!cs --><br /><script src='http://www.google-analytics.com/urchin.js' type='text/javascript'><br /></script><br /><script type='text/javascript'><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><br />為我開發的 <a href="http://rubyforge.org/projects/jq4r/" target="_blank">jq4r</a> 作個記錄。<br /><br /><!--more-->開發 Rails plugin 其實很簡單,在 Rails app 裡的 script 就有一個 <code>generate</code> 的指令可以幫忙產生 plugin 的目錄結構,只要直接執行:<br /><code><br /># ruby script/generate plugin foo<br /></code><br />就會在 <code>$RAILS_ROOT/vendor/plugins</code> 下建一個 <code>foo</code> 目錄(<code>$RAILS_ROOT</code> 指的是你 rails app 的目錄),像這樣:<br /><code><br /> create vendor/plugins/foo/lib<br /> create vendor/plugins/foo/tasks<br /> create vendor/plugins/foo/test<br /> create vendor/plugins/foo/README<br /> create vendor/plugins/foo/Rakefile<br /> create vendor/plugins/foo/init.rb<br /> create vendor/plugins/foo/install.rb<br /> create vendor/plugins/foo/uninstall.rb<br /> create vendor/plugins/foo/lib/foo.rb<br /> create vendor/plugins/foo/tasks/foo_tasks.rake<br /> create vendor/plugins/foo/test/foo_test.rb<br /></code><br />如果你沒有要作特別的事,其實只需要編輯 <code>init.rb</code> 及 <code>lib/foo.rb</code> 這兩個檔案就可以了,這兩個檔案負責的事情分別是:<br /><ul><br /> <li><span style="font-weight: bold;">init.rb</span> - 當你 Rails app 的環境啟動了之後(使用 <code>script/console</code> 或是打開 server),都會去執行 plugin 目錄中的 init.rb 檔,所以你必須在這個檔案裡做<span style="font-weight: bold;">「插入」</span>的動作,才能讓插件(plug-in)插進去。(怎麼聽起來怪怪的...XD)</li><br /> <li><span style="font-weight: bold;">lib/foo.rb</span> - 預設是用來放你主要程式碼的地方,當然,只要你放在 <code>lib</code> 目錄下,要起什麼名字都沒關係,但記得要在 <code>init.rb</code> 裡 <code>require</code> 就對了。</li><br /></ul><br /><br />看起來重點就在於 <code>init.rb</code> 的插入動作了,這裡如果你很熟悉 Ruby 這個程式語言的話,你應該很快就猜到一般常見的作法,就是用 Mix-in 的方式塞進去(我之前有寫過<a href="http://blog.ericsk.org/archives/561">介紹 Mix-in 概念的文章</a>),大多數程式語言都沒有 Mix-in 的設計,像在 Java 裡面也許大家就會採用 abstract class 的方式來作,而 Ruby's way 則是--<br /><blockquote>寫一個 module,然後在「要被插」的 class 裡去 extend/include 這個 module</blockquote><br />但是...但是,像我的 <a href="http://rubyforge.org/projects/jq4r/" target="_blank">jq4r</a>,它今天是要插進 <code>ActionView.Base</code> 裡面,總不會這麼「厚工」去改 actionpack 裡 action_view 的程式碼吧!?當然啦,你要的話也是可以,但這樣一點都沒有 agile 的感覺,這時候就可以請出邪惡的 <code>send</code> method,所以 jq4r 的 init.rb 就會寫成這樣:<br /><blockquote><br /><code><br />require 'jq4r'<br />ActionView::Base.send(:include, ActionView::Helpers::JQueryHelper)<br /></code><br /></blockquote><br />也就是利用 <code>send</code> 來叫該 class 執行 <code>:include</code> 的動作,至於為什麼說 <code>send</code> 邪惡呢?因為至少在 Ruby 1.8 裡, send 可以直接呼叫 protected/private method,這樣根本就是對 OOP 基本教義派來說是「逆天」呀!<br /><br />這樣一來就差不多沒什麼事要做了,如果要使用 plugin 的開發者必須先作一些動作的話,你可以寫在 install.rb 裡叫他執行,或是像我一樣寫成一個 rake task 叫他先 rake 一下。<br /><br />看吧!開發 Rails plugin 根本就非常簡單呀!希望大家多多來寫更多實用的 plugins 吧~<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-6413444990677258548?l=blog.rubyonrails.org.tw'/></div>Lin-Chieh Shangkuanhttp://www.blogger.com/profile/18370675023130925184noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-71831525919799588372007-09-17T23:39:00.000+08:002007-09-19T22:09:29.085+08:00[活動] 9/22 高雄Ruby/Rails Installfest很開心啊!<br />南區終於有機會辦Ruby/Rails的活動了!<br />這次的主題是 <span style="font-weight: bold; color: rgb(153, 0, 0);">Ruby/Rails的介紹與安裝,還有Q&amp;A</span><br />歡迎大家一同共襄盛舉:)<br /><br />時間:2007/09/22 13:30<br />地址:(東京咖朵-武廟店) 高雄市苓雅區武廟路118-8號<br />2F(有預先定區了, 提供免費上網.)<br />地圖:<a href="http://rubyurl.com/M69" target="_blank">http://rubyurl.com/M69</a><br /><script type="text/javascript" src="http://maps.yam.com/api/getapi.jsp"></script><br /><script type="text/javascript" src="http://mymap.yam.com/mapmkr/sharemap.php?location_id=8237&amp;map_name=%E9%AB%98%E9%9B%84%E6%9D%B1%E4%BA%AC%E5%92%96%E6%9C%B5%E6%AD%A6%E5%BB%9F%E5%BA%97&amp;map_url=http%3A%2F%2Fmymap.yam.com%2Fplace%2Fpoint%2Fzusocfc%2F8237%2F&amp;map_maker=zusocfc&amp;wp=200&amp;hp=200&amp;zm=10&amp;dt=3"></script><br /><!-- CFC added for G00g13 4n4ly+!cs --><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-7183152591979958837?l=blog.rubyonrails.org.tw'/></div>CFChttp://www.blogger.com/profile/14467370100858961268noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-31499897876037130052007-09-13T22:04:00.000+08:002007-09-13T22:08:05.456+08:00偵測DNS是否還活著.. 用Ruby有鑒於某台主機的DNS常常掛掉.. 所以就寫了這個小程式..<br /><br /><blockquote>while true<br />&nbsp; `ps aux | grep named`.split(&quot;\n&quot;).each{|line|<br />&nbsp;&nbsp;&nbsp; user, pid, cpu, mem, vsz, rss, tty, stat, start, time, *command = line.split(&quot;\s&quot;)<br />&nbsp;&nbsp;&nbsp; flag = true if command[0] == &quot;/usr/sbin/named&quot;<br />&nbsp;&nbsp;&nbsp; `/etc/init.d/named start` unless flag<br />&nbsp; }<br />&nbsp; sleep 300<br />end</blockquote><br /><!-- CFC added for G00g13 4n4ly+!cs --><br /><script src='http://www.google-analytics.com/urchin.js' type='text/javascript'><br /></script><br /><script type='text/javascript'><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-3149989787603713005?l=blog.rubyonrails.org.tw'/></div>CFChttp://www.blogger.com/profile/14467370100858961268noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-39915647010778279702007-09-13T01:54:00.000+08:002007-09-13T02:07:40.826+08:00IRC 宅男日誌-20070913<!-- CFC added for G00g13 4n4ly+!cs -->今晚的IRC充滿了樂趣, 記錄一下今天大家分享的 link<br />給其它人點創意思維...<br /><br /><a href="http://www.artweb-design.de/2007/9/12/javascript-css-asset-bundling-a-prominent-feature-in-rails-2-0" title="Permalink to: Javascript/CSS asset bundling a prominent feature in Rails 2.0">Javascript/CSS asset bundling a prominent feature in Rails 2.0</a><br /><br />這篇說明了二者間存在互補與互斥的部份...<br /><a href="http://202.99.120.116:82/gate/big5/tech.it168.com/j/n/2007-02-06/200702061037751.shtml">專訪:Java開源沒能阻擋Ruby前進的腳步</a><br /><br />成長的快速...<br /><a href="http://www.tiobe.com/tpci.htm">TIOBE : Ruby 成長趨勢圖</a><br /><br />幽默的對話表演, 比較不同語言間的差異<br /><a href="http://www.rubytips.org/2007/09/12/rails-envy-videos-on-ruby-on-rails/" rel="bookmark" title="Permanent Link: Rails envy videos on Ruby on Rails">Rails envy videos on Ruby on Rails</a><br /><br /><a href="http://www.historylink.org/essays/output.cfm?file_id=3999">李小龍@@"</a><br /><br /><a href="http://henku.info/2007/09/11/re-add-on-that-picasaweb/" rel="bookmark" title="Permalink to 《Re-关于那个picasaweb插件》">Re-关于那个picasaweb插件</a><br /><br /><a href="http://www.ruby-doc.org/docs/ProgrammingRuby/html/builtins.html">Ruby Class</a><br /><br /><a href="http://lookstory.blogspot.com/2007/07/blog-post_30.html">奇妙新聞網』不可思義的 網路認證圖片</a><br /><br /><a href="http://fourdollars.blogspot.com/2007/09/virtualbox-seamless-mode.html">VirtualBox Seamless Mode</a><br /><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-3991564701077827970?l=blog.rubyonrails.org.tw'/></div>郭朝益(ChaoYi, Kuo)http://www.blogger.com/profile/16615231812854206332Kuo.ChaoYi@gmail.com0tag:blogger.com,1999:blog-7516486431014704295.post-68809322009708672512007-09-11T17:06:00.000+08:002007-09-11T20:14:53.447+08:00NetBeans Ruby IDE codetemplatesNetBeans Ruby IDE 對應的快速鍵一覽表<br /><br />去 SVN 挖出來的 xml 然後在處理過<br /><br /><iframe src="http://evillon.googlepages.com/codetemplate.html" width="100%" height="500" scrolling="auto"<br /></iframe><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-6880932200970867251?l=blog.rubyonrails.org.tw'/></div>jinghttp://www.blogger.com/profile/06909353414669576419noreply@blogger.com1tag:blogger.com,1999:blog-7516486431014704295.post-73522133265182427042007-09-11T14:56:00.000+08:002007-09-11T15:00:29.850+08:00我想寫 Ruby on Rails (Windows 篇)<!-- CFC added for G00g13 4n4ly+!cs --><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><br /><p>本文同步發表於 <a href="http://blog.ericsk.org/archives/755" target="_blank">ericsk's blog</a></p><br /><br />隨著<a href="http://www.rubyonrails.org/" target="_blank">鐵道迷</a>的增加,愈來愈多 Web 開發者想要投入 <abbr title="Ruby on Rails">RoR</abbr> 的開發,這篇文章主要是分享我在 Windows 上開發 RoR 的環境配置,供想入門的朋友作為參考。<br /><br /><h4>準備要安裝的軟體</h4><br />為了在 Windows 上開發 RoR,我會安裝下列幾個軟體:<br /><ol><br /> <li><a href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">JDK 6</a><br /> <p>Netbeans 一定要你裝 <abbr title="Java Development Kit">JDK</abbr>,我也不太喜歡它為什麼一定要 JDK,只裝 <abbr title="Java Runtime Environment">JRE</abbr> 還不行咧....</p></li><br /> <li><a href="http://www.netbeans.info/downloads/dev.php" target="_blank">Netbeans 6 Ruby (Development version)</a><br /> <p>這是為了有一個整合式開發環境(IDE),除了免去初學者害怕的一連串指令操作之外,也有一些 syntax highlight、code completion 及 code snippets 等等功能,更重要的是,它能夠支援 UTF-8,更免去一些人在 Windows 上開發時搞不清字元編碼問題的煩惱。</p></li><br /> <li><a href="http://dev.mysql.com/downloads/mysql/5.0.html" target="_blank">MySQL 5.0 Database Server Community Edition</a><br /> <p>開發 Web application 幾乎都會用到資料庫,所以這裡選擇大家很常用的 MySQL,Windows 版本,透過 Installer 還能幫你把 MySQL Database Server 作成 Windows 服務,開機後就會自動執行了。</p></li><br /> <li><a href="http://dev.mysql.com/downloads/gui-tools/5.0.html" target="_blank">MySQL GUI Tools</a><br /> <p>資料庫的管理工具,裝了這個才不用在命令列下指令來管理你的 MySQL Database Server。</p></li><br /> <li>(optional) <a href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91" target="_blank">Subversion</a><br /> <p>這是用來作版本控制的軟體,Netbeans 6 有內建 svn 的介面,不過機器上還是需要有執行檔。另外,如果你想要有整合到檔案總管的 svn ,可以考慮使用 <a href="http://tortoisesvn.tigris.org/" target="_blank">TortoiseSVN</a>。</p></li><br /> <li>(optional) <a href="http://www.ruby-lang.org/en/downloads/" target="_blank">MRI(所謂的 native 版本) Ruby</a> on Windows<br /> <p>這是官方版本的 Ruby,如果你不喜歡 JRuby,Netbeans 6 也可以讓你換用 native 的 Ruby,不過這樣你還得去下載 <a href="http://rubyforge.org/projects/rubygems/" target="_blank">RubyGems</a> 回來安裝。</p></li><br /></ol><br />接下來就介紹這些軟體的安裝步驟。<br /><br /><h4>軟體安裝步驟</h4><br /><br /><h5>JDK 6</h5><br /><br />到 Sun 的 Java 官方網頁,下載最「純」的 JDK,不需要其它的 bundle(如果你想要也可以啦)<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3209080_70b2c56932_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209080_f71ed2a2cb_m.jpg" alt="下載 JDK"/></a></div><br /><br /><h5>Netbeans 6 Ruby</h5><br />首先,連結到 <a href="http://www.netbeans.info/downloads/dev.php" target="_blank">Netbeans Development Downloads</a> 的網頁,因為 Netbeans 6 還沒有正式 release,所以現在只能先用 Development version,進入 latest 目錄後可以看到有許多種類的 Netbeans 6 可以下載:<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3209065_7702be2c5b_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209065_a9edb3a8b5_m.jpg" alt="選擇下載的 Netbeans 版本" /></a></div><br /><br />這裡我們就選擇精簡的 Ruby 版本就可以了,除非你還想要開發 Java。<br /><br />下載回來,開始安裝,它就會檢查你的 JDK 以及要你設定安裝的目錄,然後就等它安裝好:<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3209210_aa57bf33d6_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209210_8b37158527_m.jpg" alt="安裝 Netbeans" /></a></div><br /><br /><h5>MySQL 5.0 Database Server Community Edition</h5><br /><br />到 MySQL 的官方<a href="http://dev.mysql.com/downloads/mysql/5.0.html#downloads" target="_blank">下載 Community Edition 的網頁</a>,然後根據你的 Windows 平台選擇含 Installer 版本的安裝檔。<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3209105_64eb8460a8.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209105_64eb8460a8_m.jpg" alt="選擇下載的 MySQL 版本" /></a></div><br /><br />下載回來解壓縮後,執行 Setup.exe 就會開始安裝 MySQL Database Server 了,安裝時 type 請選擇 <span style="font-weight: bold;">Complete</span>,安裝完畢後,Installer 會要你開始設定 (Configure) MySQL,以下是 step by step:<br /><ol><br /> <li>選擇 Detailed Configuration,Next &raquo;<br /> <div style="text-align: center;"><a href="http://static.zooomr.com/images/3209421_ef59a9e8ec_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209421_fd96976680_m.jpg" width="240" height="188" alt="conf_mysql" /></a></div><br /> </li><br /> <li>因為是開發用途,所以選擇 Developer Machine,Next &raquo;<br /> <div style="text-align: center;"><a href="http://static.zooomr.com/images/3209539_ea39769d38_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209539_a0f4c90149_m.jpg" width="240" height="188" alt="conf_mysql2" /></a></div><br /> <li>資料庫的用途,沒特別偏好就選 Mutifunctional Database,偏好會對 Transaction 最佳化的話,則選擇 Transactional Database。(Ruby-MySQL 在 create_table 時預設會用 transaction-based 的 InnoDB storage engine)<br /> <div style="text-align: center;"><a href="http://static.zooomr.com/images/3209624_24f149d385_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209624_3cbdfd86ca_m.jpg" width="240" height="188" alt="conf_mysql2" /></a></div></li><br /> <li>接下來就是設定 Database 的資料檔要放在哪裡、估計會有多少個連線,這些就可以自由設定。然後 TCP/IP 及 Strict Mode 都要勾選。</li><br /> <li>再來就是語系的部份,選擇 Best Support 這個選項,因為它會採用 UTF-8 作為預設的字元編碼。<br /> <div style="text-align: center;"><a href="http://static.zooomr.com/images/3209789_ab7a917b6b_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3209789_d8a3e40a54_m.jpg" width="240" height="188" alt="選擇字元編碼" /></a></div></li><br /> <li>接下來則是問你要不要裝 MySQL 裝成 Windows Service,以便 Windows 啟動後就直接啟動 MySQL Database Server。還有就是在 CMD 下加入 mysql 的執行目錄到 $PATH 變數中,如果你會在 CMD 下指令操作 MySQL 的話,就勾選吧!</li><br /> <li>然後設定一個 root 密碼,最後按下 Execute 就會開始設定了。</li><br /></ol><br /><br />剩下的安裝就沒什麼好介紹的了(介紹下去有灌水嫌疑),反正就是安裝點一點,一直 Next 就裝好了。<br /><br /><h4>建立資料庫</h4><br />為了給之後建立的 RoR 專案使用資料庫,在 MySQL Database Server 及 GUI Tools 都安裝好後,執行 <span style="font-style: italic;">MySQL Administrator</span> ,輸入剛才設定的 root 密碼,就可以進入 MySQL 的管理介面了!然後選擇 <span style="font-weight: bold;">Catalogs</span> 類別,在下方的視窗中按右鍵選擇 <span style="font-weight: bold;">Create New Schema</span>... 來建立新的資料庫:<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3210952_461ecc5975_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3210952_206e50c320_m.jpg" width="240" height="195" alt="建立 db" /></a></div><br /><br />先輸入個 <span style="font-weight: bold;">foo</span> 作為資料庫的名稱,然後建立一個使用者來使用這個資料庫。在 <span style="font-weight: bold;">User Administration</span> 的地方建立一個名為 foo 的使用者,然後設定它的密碼,接著在 Schema Privileges 的 tab 中,把 foo 的權限全部給使用者 foo:<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3211035_f6a955cd43_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3211035_8fb78e8baa_m.jpg" width="240" height="195" alt="建立 db" /></a></div><br /><br />最後再 Apply Changes 就好了。<br /><br /><h4>啟動 Netbeans 6</h4><br /><br />在啟動 Netbeans 6 之前,有一個地方一定要修改一下,這是為了讓 Windows 上的 Netbeans 6 會使用 UTF-8 作為預設的字元編碼,所以請在桌面上或是程式集選單中的 Netbeans 捷徑按右鍵 &raquo; 內容,在<span style="font-weight: bold;">目標</span>處改成:<br /><blockquote style="text-align: left; font: 13px monospace;">"C:\Program Files\NetBeans 6.0 200709101200\bin\netbeans.exe" -J-Dfile.encoding=UTF-8</blockquote><br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3210051_7b7f386e44_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3210051_9c6c2aa3b8_m.jpg" width="190" height="240" alt="加入 UTF-8 支援" /></a></div><br /><br />啟動 Netbeans 之後,寫 RoR project 的部份就可以參考我的前作「<a href="http://blog.ericsk.org/archives/580">用 Netbeans 開發 Ruby on Rails 程式</a>」。然後在設定 database.yml 前,別忘了到 Ruby Gems 裡去安裝 mysql 這個函式庫。<br /><br />若沒有下文,本篇應該會被認為是灌篇數的文章,所以要來多介紹一點東西啦~<br /><br /><h4>設定 Ruby 的部份</h4><br />在 Netbeans 選單上 <span style="font-weight: bold;">Tool &raquo; Options</span> 裡,有個 Ruby 的分類,如果你電腦裡同時有 MRI Ruby 及 JRuby 的話,Netbeans 還會提醒你要選擇用哪個 Ruby:<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3210309_c9a1e3abd2_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3210309_19e6e5e546_m.jpg" width="240" height="138" alt="which_ruby" /></a></div><br /><br />當然,之後也可以在更改設定就是了:<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3210381_3674f73cec_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3210381_b0f6a6ea77_m.jpg" width="240" height="208" alt="conf_ruby" /></a></div><br /><br /><h4>安裝 Ruby Gems</h4><br /><br />在選單中的 <span style="font-weight: bold;">Tool &raquo; Ruby Gems</span> 裡,可以直接透過 GUI 介面來安裝所需要的函式庫。<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3210432_1eb890b1e9_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3210432_61b2eb0e40_m.jpg" width="240" height="175" alt="nb_rubygems" /></a></div><br /><br />值得一提的是,在 Windows 上,即便是用 JRuby 作為主要的 Ruby Interpreter,但因為 Ruby-MySQL 的函式庫已經有編好的 Windows 版本可以下載,所以也可以直接裝 ruby gems 裡的 mysql 函式庫來用。<br /><br /><h4>IDE 的幫助...</h4><br /><br />當我們用 Netbeans 建立一個 Ruby on Rails 的專案後,可以在 project 上面按右鍵,看看這個 IDE 究竟把怎樣的功能整合進來呢?<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3210547_e88dd5a886_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3210547_66aad2e592_m.jpg" width="125" height="240" alt="NB_IDE" /></a></div><br /><br />最主要的,它能夠直接按右鍵來作 Generate 的動作,還有包裝好可以使用的 Rake tasks、Migrations,而且也能直接在這選單中啟動 Console 及安裝 plugin,當然,要直接啟動 RoR server 來進行測試也可以在選單中直接 Run,能有 IDE 的支援真是太幸福了!<br /><br />另外,Netbeans 也支援在 Mac 上頗受歡迎的 TextMate 中 Code Snippet 的功能。簡單地說,就是可以設定打幾個字、按下 tab 就幫忙完成一整個段落的 code。你可以在選單上 <span style="font-weight: bold;">Tool &raquo; Options</span> 裡的 Editor 區,有個 Code Template 的 tab ,進去之後你就可以在裡面設定針對不同類型的檔案可以使用怎樣的 code snippet,比方說我就在 RHTML 檔案裡面設定了 <code>doctype</code> 這個 code template:<br /><br /><div style="text-align: center;"><a href="http://static.zooomr.com/images/3211146_8716e2bdb0_o.jpg" rel="lightbox"><img src="http://static.zooomr.com/images/3211146_266d80ebec_m.jpg" width="240" height="208" alt="NB_IDE" /></a></div><br /><br />如此一來,我只要在 RHTML 檔裡打入 doctype 再按下 tab 就會幫我展開我設定好的 template 了!<br /><br />這篇文章就先介紹到這裡,之後對於用 Netbeans 寫 RoR 還有什麼心得的話,再寫文章來分享吧!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-7352213326518242704?l=blog.rubyonrails.org.tw'/></div>Lin-Chieh Shangkuanhttp://www.blogger.com/profile/18370675023130925184noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-29657616752192499982007-09-10T08:52:00.000+08:002007-09-10T08:55:05.125+08:00線上Ruby Regular Expression EditorRuby/Rails寫到一半.. 忽然需要用到RegExp來驗證某個東西(Ex: E-mail),卻臨時找不到工具可以測試自己寫的RegExp是否正確該怎辦?<br />沒關係!這邊有個網站:<a href="http://www.rubular.com/">http://www.rubular.com/</a><br />這個網站可以讓您線上測試RegExp是否正確唷:)<br />可以試試看!<br /><br />資料來源:China on Rails <a href="http://chinaonrails.com/topic/view/723/1.html">http://chinaonrails.com/topic/view/723/1.html</a><br /><!-- CFC added for G00g13 4n4ly+!cs --><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-2965761675219249998?l=blog.rubyonrails.org.tw'/></div>CFChttp://www.blogger.com/profile/14467370100858961268noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-15950021183618172262007-08-30T11:58:00.000+08:002008-12-12T01:58:24.454+08:00Ruby on Rails - Web 應用架構說明圖<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Sx-9Cwd1BEg/RtZAx-wDKUI/AAAAAAAAAY0/RcejvRLDXzc/s1600-h/1174984639.png"><img style="cursor: pointer;" src="http://3.bp.blogspot.com/_Sx-9Cwd1BEg/RtZAx-wDKUI/AAAAAAAAAY0/RcejvRLDXzc/s400/1174984639.png" alt="" id="BLOGGER_PHOTO_ID_5104338455073335618" border="0" /></a><br /><br /><!-- CFC added for G00g13 4n4ly+!cs --><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-1595002118361817226?l=blog.rubyonrails.org.tw'/></div>郭朝益(ChaoYi, Kuo)http://www.blogger.com/profile/16615231812854206332Kuo.ChaoYi@gmail.com0tag:blogger.com,1999:blog-7516486431014704295.post-41405066318978223522007-08-27T22:22:00.000+08:002008-12-12T01:58:24.549+08:00簡易教學:透過 screen + irssi 方式上 irc最近身旁許多在上 <a href="http://zh.wikipedia.org/wiki/IRC">irc</a> (Internet Relay Chat)的朋友都問我哪個 irc client 比較好用?其實,只要問過我的,而且又是 unix like 的系統使用者時,基本上都會被我推薦 <a href="http://www.irssi.org/">irssi</a> 這個 command mode 的純文字 irc 程式。如果還有 server 可使用的朋友們,更是會被我力推 screen + irssi 的組合。好處是,可以遠端持續掛著 irc ,到哪邊都可以 ssh 進去繼續看 irc log ,這樣真的很方便,也不用擔心因為沒開自己的電腦,就看不到別人的對話或別人要留給自己的訊息。<br />以下是針對 irssi 這軟體所寫的簡易基本介紹與使用和一些需要使用到 irc 與 screen 的基本指令,如需 irc 或 screen 的其他更詳細指令與資料,文末會補上相關連結,如有不足,歡迎幫補。<br /><br /><br />irssi 的程式安裝就不在這邊贅述,可從 apt-get 或 yum 等套件庫裡面找尋。<br /><br />先在這邊建立第一次使用 screen + irssi 上 irc 的朋友們觀念,確定遇到的問題跟操作,該是由 screen 還是由 irssi 的程式部份來處理,或者本身只是 irc 上面的指令操作罷了。screen 只是方便讓使用者可以利用 server 不關機的優勢,讓 irssi 可以連續開著不中斷,使得下次再透過 screen 來接軌回到上次開啟還未被關閉的 irssi 來繼續 irc 這樣子。所以,這樣看下面的簡介操作後比較不會搞混狀況,如果請教朋友也比較能問到問題處。<br />以下例子皆以 irssi 0.8.10 或以上版本,經實驗都可順利執行,且都以在 FreeNode 上的 rug-tw channel 為例子。<br /><br />(如果不掛 screen 者,這一段請直接跳過)<br />首先 ssh login 到 server 後,請輸入<br /><blockquote><code>screen -RD</code><br />-R Reattach if possible, otherwise start a new session.<br />-D (-r) Detach and logout remote (and reattach here).</blockquote><br />然後會進入到新開啟的 screen ,並且 screen 會自動開啟一個新的 window 讓我們使用,<br />接下來直接輸入<br /><code>irssi</code><br />就會在 screen 底下的第一個視窗執行 irssi 這隻程式。<br /><br />如果沒有要掛著 screen 執行 irssi 的朋友,那直接輸入<br /><code>irssi</code><br />就可以直接執行 irssi 這隻程式。<br /><br />進入 irssi 後,直接在提示輸入字元處輸入<br /><code>/connect irc_server</code><br />就會直接連到該個 irc server ,例如:<br /><code>/connect irc.freenode.net</code><br />這樣就會直接連接到 freenode 的 irc server 上,此時,可以先在這邊修改自己要在該 irc server 上的暱稱,如果要修改,則輸入以下格式<br /><code>/nick you_want_nickname</code><br />例如當我輸入<br /><code>/nick lzy</code><br />時,那我顯示出來的暱稱將會是「lzy」的字樣( irssi 預設的暱稱會是 login 的使用者名稱)。<br />搞定暱稱後,接著我們就可以加入其他頻道了。<br />只要輸入<br /><code>/j #channel_name</code><br />就可以直接加入了,例如:<br /><code>/j #rug-tw</code><br />這樣就完成加入 #rug-tw 這個 irc channel ,如果該 irc channel 需要 key/password 的話,則輸入:<br /><code>/j #channel_name password</code><br />如果要離開單一個 irc channel ,則直接輸入<br /><code>/wc</code><br />就可以離開這個 irc 頻道。<br />若是要離開一個 irc server 的連線,則輸入<br /><code>/disconnect irc_server_name</code><br /><br /><br /><br />剛剛是教如何連線,現在則是教一些常用的熱鍵與功能。<br />先來看圖說故事一下:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_x5o1j9FQcgw/Rsk_lUem-ZI/AAAAAAAAAFQ/wODG29cBd1k/s1600-h/irssi.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_x5o1j9FQcgw/Rsk_lUem-ZI/AAAAAAAAAFQ/wODG29cBd1k/s400/irssi.png" alt="" id="BLOGGER_PHOTO_ID_5100677963358599570" border="0" /></a><br /><br />上面的這張圖,我們在<br /><code>[Act: 1,2,4,6,9,10]</code><br />這邊發現了幾個不一樣的標示數字,Act 這一欄位會提示你在第幾編號的 channel 上對話狀況,而你還沒切換到該 irc channel 上觀看。<br />灰色一般體的是代表有人登入或登出此 irc channel(如 1,9,10)。<br />白色粗體的是代表有人正在此 irc channel 上談話(如 4,6)。<br />灰色粗體的則是有人在對話中提起你的名字或者呼叫你,總之就是有出現你的名字(如 2)。<br />這是基本識別,再來是知道哪個 channel 有什麼狀況後,就是切換到該 irc channel 上查看<br /><blockquote>Alt + 1~0 對應 1~10 的 irc channel 編號;<br />Alt + q~p 對應 11~20 的 irc channel 編號;<br />Ctrl + n/p 可切換 上/下 一個 irc channel;<br />然後按鍵盤上的 PageUP/PageDn 可以直接切換 上/下 頁訊息。</blockquote><br /><br />如發現有編碼上的問題,需要轉編碼的話,則可輸入<br /><code>/recode add #channel_name code_type</code><br />例如要把 rug-tw 的 utf8 格式加入,則輸入<br /><code>/recode add #rug-tw utf8</code><br />即可加入此頻道的編碼格式。<br />然後輸入<br /><code>/recode</code><br />就可以看到加入的編碼列表。<br />(註:因 /recode add 會寫入到設定檔裡,所以僅需要寫入一次即可。)<br /><br /><br /><br /><br />Q&A TIME:<br />Q:如何同時有連接多個IRC server呢?又該怎樣切換不同IRC server來加入該server的IRC channel呢?<br />A:<blockquote>請直接再下一次<code> /connect irc_server </code> 就可以再連接一個新的 irc server ,然後按<code>Alt + 1</code>切換到第一個的特殊頻道上,再按 <code>Ctrl + x</code>來切換目前要下達指令的 IRC server名稱。</blockquote><br /><br />Q:如何查看該頻道的所有人呢?<br />A:<blockquote>請下達 <code>/who</code> 的 irc 指令即可,然後也是一樣按 <code>Alt + 1</code> 切換到第一個伺服器狀態頻道上觀看</blockquote><br /><br />Q:如何查看單一網友的基本連線資料呢?<br />A:<blockquote>請下達 <code>/whois nickname</code> 的 irc 指令即可,然後也是一樣按 Alt + 1 切換到第一個伺服器狀態頻道上觀看</blockquote><br /><br />Q:如何傳送私人訊息到指定的朋友暱稱呢?<br />A:<blockquote>請下達 <code>/msg nickname</code> 即可開啟一個名為指定暱稱的訊息頻道,一樣用 <code>alt + 1~0/q~p</code> 來選擇(注意:有些 irc server 會限制此功能,傳訊前請先確認是否有權限)。</blockquote><br /><br />Q:已經使用上面所講的方式 screen + irssi 了,那我離開時,是否得下達任何參數或指令?又下次 ssh login 後,需要打什麼指令呢?<br />A:<blockquote>為了簡化登入與記憶上的方面,採用 -RD 的參數,所以每次要離開 irssi 時,直接關閉該視窗就好,不需下達任何參數或指令。然後下一次 ssh login 後,只要打 <code>screen -RD</code> 這樣就可以接軌回上次開啟的 irssi 了。</blockquote><br /><br />Q:如果遠端連線到 big5 的主機掛 screen + irssi 時,那 client 端是 utf8 時,編碼的亂碼問題如何處理?<br />A:<blockquote>首先,先處理 screen 的編碼問題,從 utf8 端要檢視 big5 server 時,先 <code>Ctrl + a</code>,然後輸入 <code>:encoding big5 utf8</code> ,把從 server 將送出的 big5 編碼先轉成 utf8 後再送出,然後輸入 <code>"/recode"</code> 觀看頻道編碼是否指定正確,照上述設定,理應能順利顯示。</blockquote><br /><br />Q:如果不小心按到 <code>Ctrl + z</code> 或鍵盤上的 Pause 時, irssi 被 suspend 了,如何恢復?<br />A:<blockquote>請直接輸入 <code>fg</code> 後按 enter ,就可以把剛剛被 suspend 的 irssi 給喚醒。</blockquote><br /><br />Q:如果我要關閉一個 irssi ,該如何下達指令?<br />A:<blockquote>請直接關閉開啟 irssi 的 screen ,請按 <code>Ctrl + k</code> 來關閉 screen window ,然後可以再重新開啟一個全新的 irssi 出來。</blockquote><br /><br />Q:要如何自動儲存 irc log ?<br />A:<blockquote>在需要 auto irc log 的 irc channel 上輸入 <code>/SET autolog ON</code>,即可打開 autolog 功能。</blockquote><br /><br />Q:要如何指定當開啟 irssi 後,自動連接 irc server 與自動連接 irc channel ?<br />A:<blockquote>直接看例子會比較快,先假設我要讓他自動用 lzy 的暱稱連接到 Freenode 的 irc server 上的 #rug-tw<br /><code>/network add -nick lzy Freenode<br />/server add -auto -network Freenode irc.freenode.net 7000<br />/channel add -auto #rug-tw Freenode</code><br />如果是需要 key/password 的 irc channel 的話,則把最後一行改為<br /><code>/channel add -auto #irc_channel_name irc_server_name password</code><br />也就是直接把密碼接在後面就可以了<br />如果需要自動對註冊的暱稱進行認證登入的話(設口令為abcde):<br /><code>/network add -autosendcmd "/^msg nickserv ident abcde;wait 2000" Freenode</code></blockquote><br /><br /><br />Q:如何讓 irssi 發出有人提起自己暱稱時的訊息警告(或響鈴)?<br />A:<blockquote>在 irssi 裡輸入以下指令,讓 irssi 適時發出聲音訊號:<br /><code>/set beep_when_window_active ON<br />/set beep_when_away ON<br />/set beep_msg_level MSGS NOTICES DCC DCCMSGS HILIGHT<br />/set bell_beeps ON</code><br />在 screen 中按下 <code>Ctrl +a</code> , <code>Ctrl + g</code> 的按鍵,讓 screen 把 irssi 發出來的聲音訊號傳出來<br />或參考絕地大濕的 blog 一文 <a href="http://jedi.org/blog/archives/003191.html"><會響的 PuTTY + screen + irssi></a></blockquote><br /><br />Q:如何更換 irssi 的 theme ?<br />A:<blockquote>把抓好的 theme (可從<a href="http://irssi.org/themes">官網</a>撈喜歡的),然後複製該 theme 的檔案到 ~/.irssi/ 資料夾路徑,並下達 <code>/SET theme theme_name</code> 來更改該 theme 。</blockquote><br /><br />Q:如何自訂 irssi 的 irc 訊息熱鍵?<br />A:<blockquote>因為設定比較繁雜,故只提供<a href="http://irssi.org/documentation/tips">官網網址</a>,讓有興趣的朋友可以自己去翻閱。</blockquote><br /><br /><br /><br />提供幾個額外補充的網站,沒標示語言者,皆為中文<br /><a href="http://www.ircle.com/reference/commands.shtml">irc 指令介紹 (英文)</a><br /><a href="http://irssi.org/documentation/startup">irssi startup (英文)</a><br /><a href="http://wiki.shsh.ylc.edu.tw/index.php/Screen">screen 基本觀念與操作介紹</a><br /><br /><br /><br /><br />※本文另有較鄉民版本 <a href="http://lzy-blah.blogspot.com/2007/08/screen-irssi-irc-q.html">用 screen + irssi 上 irc 之鄉民版教學 (含Q&A)</a><br /><br /><!-- CFC added for G00g13 4n4ly+!cs --><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-4140506631897822352?l=blog.rubyonrails.org.tw'/></div>lzyhttp://www.blogger.com/profile/04728542796614839731noreply@blogger.com0tag:blogger.com,1999:blog-7516486431014704295.post-2121480449360883332007-08-27T05:08:00.000+08:002008-12-12T01:58:25.131+08:00Ruby 這把火也開始延燒到 PostgreSQL 開發團隊<!-- CFC added for G00g13 4n4ly+!cs --><span style="font-weight: bold; color: rgb(204, 0, 0);">RoR(Ruby on Rails)</span>最近真的大火燒到各地...<br /><br />(PostgreSQL <span style="font-weight: bold; color: rgb(51, 51, 255);">8.3</span> 版新增的自動下載附加套件庫程序)<br />測試版中唯一被加入的 Web 開發架構.<br /><span style="font-weight: bold; color: rgb(153, 0, 0);">Application stack builder (點圖放大)<br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Sx-9Cwd1BEg/RjnlZWNfxOI/AAAAAAAAASc/x24nT9CSTE0/s1600-h/002.png"><img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Sx-9Cwd1BEg/RjnlZWNfxOI/AAAAAAAAASc/x24nT9CSTE0/s320/002.png" alt="" id="BLOGGER_PHOTO_ID_5060327879949141218" border="0" /></a><br /><br />Ruby 在今年程序語言排名進了前10名之後,<br />SUN 公司的 JRuby 也即將進入 1.0 版 Release 階段,<br />前幾天 Microsoft 公司也即將 join Ruby...<br /><br />沒想到這把大火也燒進了 PostgreSQL 開發者的天地...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Sx-9Cwd1BEg/RjnpKWNfxQI/AAAAAAAAASs/9T-kwmpG5o4/s1600-h/RoR001.png"><img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Sx-9Cwd1BEg/RjnpKWNfxQI/AAAAAAAAASs/9T-kwmpG5o4/s320/RoR001.png" alt="" id="BLOGGER_PHOTO_ID_5060332020297614594" border="0" /></a><br /><br />甚至有開發者打算改寫原本以 Perl 撰寫的 PostgreSQL 程序入 Core...<br /><span style="font-weight: bold; color: rgb(153, 0, 0);">PL/Ruby<br />(一種可以用 Ruby 在 PostgreSQL 中寫預儲程序的分支語言)</span><br /><br />前天安裝最新的 PostgreSQL 8.3 開發測試版,<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Sx-9Cwd1BEg/RjnpfGNfxRI/AAAAAAAAAS0/gXMxz5i3UZ0/s1600-h/RoR002.png"><img style="cursor: pointer;" src="http://3.bp.blogspot.com/_Sx-9Cwd1BEg/RjnpfGNfxRI/AAAAAAAAAS0/gXMxz5i3UZ0/s320/RoR002.png" alt="" id="BLOGGER_PHOTO_ID_5060332376779900178" border="0" /></a><br /><br />竟也名正言順的進了 PostgreSQL 的附屬分支首選自動下載軟件庫之中<br /><span style="font-weight: bold; color: rgb(153, 0, 0);">pgRails (由 EnterpriseDB 公司回饋社群整合)<br />會自動安裝在本地一個以 PostgreSQL 為後端的 RoR</span>...<br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-212148044936088333?l=blog.rubyonrails.org.tw'/></div>郭朝益(ChaoYi, Kuo)http://www.blogger.com/profile/16615231812854206332Kuo.ChaoYi@gmail.com0tag:blogger.com,1999:blog-7516486431014704295.post-81580497955517595512007-08-27T05:06:00.000+08:002007-08-27T05:07:25.478+08:00Ruby on Rails - PostgreSQL for Debian/Ubuntu 安裝這是篇基礎的安裝教學, 總是有學生問到,<br />阿益整理分享給需要的朋友們:<br /><br /><span style="font-weight: bold; color: rgb(153, 0, 0);">GNU/Debian & Ubuntu</span> 是個很棒的自由系統,<br />安裝的方式雷同, 唯一必需留意的是<br />Ubuntu 必須是 root 來進行以下的工作過程 (<span style="font-weight: bold; color: rgb(153, 0, 0);">sudo</span>)<br />APT: aptitude 亦可替換成其它套件管理程式, 例如 apt-get<br /><ol><li><span style="font-weight: bold; color: rgb(153, 0, 0);">Ruby</span><br />早已經進了Debian/Ubuntu的套件庫中<br />細節: <a href="http://packages.debian.org/testing/interpreters/ruby1.8">http://packages.debian.org/testing/interpreters/ruby1.8</a><br />所以基本上安裝很簡易, 只要執行 APT 工具即可完成:<br />#<span style="font-weight: bold; color: rgb(0, 102, 0);">aptitude install ruby1.8</span><br />相依性自動也幫你安裝了 irb1.8, rdoc1.8<br /><br /></li><li><span style="font-weight: bold; color: rgb(153, 0, 0);">RubyGems</span><br />是 Ruby 專屬的套件管理程式, 同 Ruby 也在官方套件庫裡了<br />細節: <a href="http://packages.debian.org/testing/interpreters/rubygems">http://packages.debian.org/testing/interpreters/rubygems</a><br />安裝方式也同Ruby, 且是目前最新的版本:<br />#<span style="color: rgb(0, 102, 0); font-weight: bold;">aptitude install rubygems</span><br />rubygems 相依性依賴著 ruby1.8, 安裝後會即有 gem 命令工具存在.<br /><br /></li><li><span style="color: rgb(153, 0, 0); font-weight: bold;">Rails</span><br />是 Ruby MVC網頁開發快速建構的強項,<br />必須使用RubyGems套件管理程式來進行安裝與後期的更新管理,<br />使用 gem 命令來進行:<br />#<span style="font-weight: bold; color: rgb(0, 102, 0);">gem install -y rails</span><br />參數 -y 亦可改寫成 --include-dependencies 意同自動安裝相依性套件,<br />安裝後即可使用 rails 命令來創建 rails project.<br /><br /></li><li><span style="font-weight: bold; color: rgb(153, 0, 0);">PostgreSQL for Ruby</span><br />這點可能不同與其它平台的方式, 在其它的OS必須使用<br />#gem install ruby-postgres 或者 #gem install postgres<br />(二者結果相同)來進行安裝 <span style="font-weight: bold; color: rgb(0, 0, 153);">PostgreSQL libpg C 函數庫</span>的連結.<br />但在 GNU/Debian & Ubuntu 更可以輕易的使用如下方式安裝:<br />#<span style="font-weight: bold; color: rgb(0, 102, 0);">aptitude install libpgsql-ruby</span><br />效果同等上述其它OS的操作方式.<br />細節: <a href="http://packages.debian.org/unstable/interpreters/libpgsql-ruby">http://packages.debian.org/unstable/interpreters/libpgsql-ruby<br /></a>細節: <a aiotitle="http://packages.qa.debian.org/libp/libpgsql-ruby.html" href="http://packages.debian.org/unstable/interpreters/libpgsql-ruby">http://packages.qa.debian.org/libp/libpgsql-ruby.html<br /><br /></a></li><li><span style="font-weight: bold; color: rgb(102, 0, 0);">測試 PostgreSQL for Ruby 的有效性</span><a href="http://packages.debian.org/unstable/interpreters/libpgsql-ruby"><br /></a><span style="font-weight: bold; color: rgb(0, 102, 0);">irb</span> 命令是 Ruby 互動式的命令列環境, 透過它可快速測試 RoR<br /># <span style="font-weight: bold; color: rgb(0, 102, 0);">irb</span><br />irb(main):001:0> <span style="color: rgb(0, 102, 0); font-weight: bold;">require 'postgres'</span><br /><span style="font-weight: bold; color: rgb(51, 51, 153);">=> true</span><br />irb(main):002:0> exit<br /></li></ol><!-- CFC added for G00g13 4n4ly+!cs --><br /><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"><br /></script><br /><script type="text/javascript"><br />_uacct = 'UA-2483298-1';<br />urchinTracker();<br /></script><br /><!-- 3nd --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7516486431014704295-8158049795551759551?l=blog.rubyonrails.org.tw'/></div>郭朝益(ChaoYi, Kuo)http://www.blogger.com/profile/16615231812854206332Kuo.ChaoYi@gmail.com1