Friday, April 28, 2006

跟桌面說拜拜, 跟網路說聲 Hi

越來越多的公司投入網路桌面這塊市場, 大部份都有用到 AJAX 技術.
現在這些公司開始加入一些應用程式在產品上, 以後應該也會開放其 APIs 讓大家來寫程式才對. 配合混搭程式的熱潮, 有些創意的程式也許會出現. 有沒有像 Microsoft 發跡及成功的做法, 未來的 WEB OS 應該慢慢有點樣子!

若以後檔案也在網路上(Google Drive project...), 桌面也跑到網路, 我們用的 Widnows/Mac OS 會不會小一點?

Thursday, April 27, 2006

我的 AJAX 為甚麼常常不會動?

開始寫 AJAX 程式的人常常都會說為甚麼我的程式都不會動? 其實原因都出在你很少寫 JavaScript, 造成你的程式有錯誤在裡面. 其實現在寫 AJAX 程式常做的就是 debug, debug, debug, 當然 DOM 也是很煩人的設計. 若你開發的 Rails 有用到 AJAX 出問題時下面的方法對你也很有幫助.

那我們就來教一步一步大家如何解決這個問題:
  • 選個好的 JavaScript library, ex: prototype
  • 開發時一定先用 FireFox 開發安裝 擴充套件 : JavaScript Debugger
    1. 常用的 JavaScript 除錯工具
    2. 安裝 擴充套件 : FireBug
      這是另外一個超好用的工具, 可以看 DOM/CSS, 及 AJAX 傳遞的參數...
    3. Debug 步驟
      • 打開網頁
      • 執行 "工具"/"JavaScript 主控台"
        若出現錯誤, 會給你檔案及行號, 先改吧...
      • 執行 "工具"/"JavaScript Debugger"
        進入 debug 了, 可以設中斷點, step by step 追蹤及觀察變數值. 雖然不是很好用, 但你用 Microsft 會更頭痛
      • 善用 FireBug 來幫助你看 AJAX 傳遞參數, 及收到資料後的處裡對不對, 及你對 DOM 的處理是否正確
      • Ok.
  • 切換到 Internet Exploer
    1. 安裝 Microsoft Script Debugger
      Microsoft 的 JavaScript 除錯工具, 我也不是很會用, 只用來幫我找問題, 超鳥的. 步驟及方法跟上面一樣, Internet Explorer 碰到 JavaScript 錯誤時會讓你叫起除錯工具就是了
    2. 安裝 Internet Explorer Developer Toolbar
      一個 IE 的 toolbar plugin, 可以讓你看 DOM/css 工具, 這個還蠻好用的, 可以幫你查看 網頁 layout 及 CSS 的問題

Wednesday, April 26, 2006

ProgrammableWeb 專門介紹混搭程式的地方

或許大家覺的混搭程式, 不三不四, 沒甚麼了不起, 但是許多很好的應用也慢慢被開發出來. 有些應用還真是想巧妙到不行. 例如: 將 FedEx 的貨物追蹤, 加上 google calendar 在和 google map 的整合功能後真是貼心的設計, 不要小看它未來的潛力.

其實 Microsoft 已經喊了很久的 web service 但確不很成功. 但這一波 web 2.0 風潮, 加上現在的 web 慢慢開放他們的 api, 還有 Rich Client(browser + AJAX) 的技術的進步, 以 iTune 為例子, 雖然它是 client 端程式但它卻也有上網能力, 這塊很有可能是未來 client 端程式的發展方向. 你想看看以前做夢也不可能在你的程式加上 map 功能, 現在確做到了.

ProgrammableWeb 這邊提供不少這類混搭資訊.

AmigoFish :: 大家開始 digg podcast 內容吧!

AmigoFish 是將 digg 的網友社群推薦方法套用在 podcast(audio/video) 內容上, 重要的是, 它是用 Ruby on Rails 開發的!

Tuesday, April 25, 2006

Ning.com 到底是做甚麼?

Ning.com 到底是做甚麼? 答案是: 它希望它甚麼都能作!
Ning create and share your own social web apps!

Ning 希望能提供創造屬於你的 web app, 然後還能大伙分享. 寫 web app 怎麼可能? 那是 programmer 才做的來! 所以它們提供許多預建好的 web app, 然後你可以挑你想要的然後 "Clone App" 再來作調整.

Ning 試圖讓 web app 和其 contents 能區分出來, web app 開發者讓 Ning 來管理你的 contents, 藉由 apps, users, content types, tags 來達到社群共享. 所以它也可以算是讓你 "混搭" 程式的地方. 現在它們還提供不少 web apps, 會 PHP 或一般 programmer 應該很容易上手, 大家就去注冊玩看看!

請看 TechCrunch: Ning launches!

這邊就可以看出混搭, dynamic scripting language 和 AJAX 未來合作的力量, 要是用 ruby 就更好了!!!

Monday, April 24, 2006

digg, technorati, feedburner 當紅的 web 2.0 應用

  1. digg 可發佈任何消息加上使用者評分機制, 讓他們現在超熱門, 創造出來的網路流量也很大, 對非英語系國家較不友善因為網友看不懂, 這是比較麻煩的地方
  2. technorati 專注在 blog 相關消息發佈及強大的收尋功能, 它的功能還滿多的 Favorites, Watchlist, Bookmark..., 也是當紅炸子雞
  3. feedburner 專攻 RSS 方面, 藉由訂閱機制可以得知受歡迎程度
  4. livelocker 將 social bookmark 加入評分機制
這些特色就是經由網友們發佈消息或資料, 因為資料集中在網站上, 然後由社群來參與 tagging, 評分, 建議等工作. 所以網站是最好的收集資料的平臺, 如何利用這些資料就是 web 廠商及社群創意可發揮的地方.

Sunday, April 23, 2006

來看看熱門的 social bookmark 網站

del.icio.us 是最老牌的 bookmark 網站, 將 "我的最愛" 放到 web, 然後用 tag 來做分類, 加上網友的參與, 現在已經是很成功的社群了, 併入 yahoo.
furl 和 del.icio.us 一樣也很受歡迎, 功能比較多一點, 使用上比 del.icio.us 好用一點
jots 跟 del.icio.us 差不多

最近開始出現把 del.icio.us 的概念推廣到更廣的層面上, 反正資料在 web 集中起來, 加上透過社群參與力量, 就有越來越多的創意在上面.
diigo 號稱它們給 del.icio.us 加上大腦(還未公開試用)
koboodle 簡單又方便讓你可以收集及分享網路資訊
stylehive 較專注於 "網購" 上
plum 和上面都差不多, 但有提供像 iTune 這樣的桌面端程式

Saturday, April 22, 2006

"Getting Real" 到底想要告訴我們甚麼?

Getting Real 是 37signals 最近出版的一本電子書, 內容探討開發 web application 的方法及經營策略. 蠻顛覆一般傳統軟體工程所學的. 聽說已經賣了 6000 多本, 大家當做求取新知看看吧!

大致把書上 Table of Content 放上來, 相信看完後你們會有一些新想法!

  1. 起跑線
    • Build Less(少功能, 少人開發, 少廣告…), 了解你的問題? 自己投資
    • 要在時間及預算內完成, 些許的彈性(減少你的功能)
    • 找個敵人給自己. 不要把它當雜務事
  2. 保持苗條
    • 越是苗條越容易改變, 不要混亂. 降低你的變動成本
    • 只要 3 個員工就可開始(RD, designer, sweeper)
    • 要能接受限制, 你的計畫就不會失控, 還有就是樂於當你自己
  3. Priorities
    • What’s the Big Idea, 忽略細節吧
    • It’s a Problem When It’s a Problem
    • Hire the Right Customers, 慢慢擴充, 做個堅持己見的計畫
  4. Feature Selection
    • 一半就夠了, 但要好的那一半
    • 開始說 “No”, 你處理的來嗎?, 讓使用者自己想解決方案, 忘記 Feature Requests 吧!
  5. Process
    • 開始寫程式及 demo 結果, 反覆的修正更改, 開始把想法寫出來, 不要有 “設定/Preference” 功能,
    • “完成啦”, 直接進入網路世界測試
  6. 組織運作
    • Unity, 要有單獨(不被打擾)的時間
    • 開會絕對是毒蘋果, 慶祝你計畫上可能的小小勝利
  7. 員工
    • 僱用少一點人或晚一點開始雇人
    • 做事而不是高談, 不要掩飾你的熱情
  8. 使用者介面設計
    • 一切從使用者介面開始, 從中心畫面開始往外
    • 要考慮正常使用, 新增時空白及錯誤時的畫面, 要有一致性
    • 使用者介面才是你的著作權
  9. 寫程式
    • 用少少的軟體(可以依賴 opensouce), 快樂至上, 讓程式自己說話,
    • 你寫的程式可能是負債, 要小心謹慎
    • 讓資料可以透過 RSS, API 和世界連結
  10. Words
    • 沒有 Functional Spec
    • 不要寫常常過期又沒用的文件,
    • Tell Me a Quick Story, 給你的計畫命個名
  11. Pricing and Signup
    • 免費使用, 使用者容易加入及取消
    • Silly Rabbit, Tricks are for Kids
  12. Promotion
    • Hollywood Launch, 建立一個網站能介紹你的產品
    • 利用 Blog 的力量, 早早提供一些消息吸引大眾, 追蹤你程式內 log
  13. Support
    • 讓開發人員感受 Support 的痛苦, 免訓練即可用(也不用 manual, 只要有 online help & FAQ)
    • 快速回答問題, 不用害怕跟客戶說 “No”
    • 善用 Forum
  14. Post-Launch
    • 每月可以調整一下程式, Keep the Posts Coming, 讓程式更好而不是 Beta
    • 所有 Bugs 要分輕重緩急, Ride Out the Storm, Keep Up With the Joneses, Beware the Bloat Monster, Go With the Flow

軟 體/網站人員應該對這些新看法覺得蠻有趣的, 看到專案市場常常有人在抱怨, 但有一些人已經開始採取另外的作法. 不像現在軟體公司養那麼多人, 都快要進入恐龍級了, 為了獲利只得外包到人工便宜的地方, 不然就是壟斷那塊市場, 或許他們是因為網路公司的背景, 讓他們有如此不同的看法吧! 這些理念及經營手法多少可以從 37signals 及一些新興的 web 2.0 網站看出來

Friday, April 21, 2006

使用 FeedBurner 讓你的 RSS 大放光明

FeedBurner 提供一個新的 service 可以將網站 RSS 內容介紹給大家, 也提供方便的介面讓別人可以輕鬆的將你提供的 RSS 加到眾多 web-based RSS readers 上, 更重要的是它提供統計的功能, 讓你可以了解你的 RSS 有多熱門及使用狀況.

觀察一下使用現況, 它幾乎主宰這塊市場的應用, 且還有不少新的 service 持續推出來.

上手篇
  1. 先到 FeedBurner 上註冊帳號, 點選上面 "Register" 功能.
  2. 用你的帳號登入, 進入 "My Feeds", 然後就可以新增你的 RSS. 它提供的管理介面真的很優秀, 功能齊全, 又方便使用.
  3. 和你的網頁整合
    • 進入你的新增的 RSS 後, 打開 "Publicize" 的內容.
    • 找到 "friendly graphic" 進去, 你可以選擇整合方法, 選完後把下面的 html 放到網頁上就大功告成.

Thursday, April 20, 2006

到底 web 2.0 是甚麼?

最近 web 2.0 喊的越來越大聲, 也越來越多人對它越來越有興趣 ! 比較讓人接受的解釋是 web 2.0 = intelligent web, 那以前的網站就沒有 intelligent 嗎? 你要是親身體驗過這些網站的後, 你可能會
回答, YES!

先列出一些網站比較專注追蹤這個話題給大家參考, 這些話題在國外都已經被討論過了, 你可能要翻一下以前的文章以獲得更多資訊:
  1. Techcrunch
  2. Solution Watch
  3. Planet Web 2.0
  4. O'Reilly Radar
  5. Web 2.0 List
先從 mail 講起, gmail, hotmail, yahoo mail 已經走上這條路, IM 有當紅的 meebo, Google Map 的強大功能, 讓人印像深刻(比較), 更不用說眾多的 RSS Readers 也移到 web 上來了(比較). 還有 digg, livelocker 這類讓大家可以一起參與的新聞網站, 更是熱門到不行.

圖片及影像功能, 從 flickr 以分享為主的網站到最近的 fluxiom 連 iPhoto 相片管理功能都出現了.

在 Office 系列, 競爭就更為激烈
請參考下面專門討論 Ofiice 2.0 專題的討論
漏了 video 嗎? 從 YouTube 的當紅, 有 video 編輯功能的網站也悄悄準備推出中.

今年應該是 web 2.0 振翅起飛元年, 新的世界正向我們到來!!!

Tuesday, April 18, 2006

討論 Ruby on Rails 的 Blogs

整理一下比較專門討論 RoR 的 blogs, 希望對大家有幫助!

  1. ~:caboose Rails hackers
  2. Tampering with Technology David Goodlad's
  3. Relevance Justin Gehtland, 蠻多 AJAX 討論
  4. Nuby on Rails Geoffrey Grosenbach
  5. RealityForge.org
  6. RailsExpress.blog Dr. Stefan Kaes, Rails performance 比較
  7. OnRails.org Daniel Wanja
  8. 6 short of a dozen Bob Silva
  9. Brainspl.at Ezra "ezmobius" Zygmuntowicz, 搞個 Rubuntu
還有遺珠之憾的話記的跟我說!

Ruby on Rails 對 Java Web Framework 的影響

老 Java 人都知道從 J2EE 推出來大家真是對它又恨又愛, Spec
很好但就是難上手難寫又難維護, 這時 opensource 適時伸出援手,
經過幾年的發展 Struts, Spring 及 Hibernate, POJO, JDO 應該是
大家都會參考或用在開發專案上了!

但最近卻殺出個程咬金 Ruby on Rails(或其它宣稱相同精神的 web
framework) 出來後, 又把 Java 這一塊搞的熱鬧滾滾. 一樣是有一派
人是反正該會的都會, 開發上也沒問題何必採納新平台, 另一派又開
始了許多的新 project, 希望達到 Ruby on Rails 宣稱的精神.
  1. Grails
  2. Trails
  3. Waffle
  4. RIFE
  5. Sails
  6. Wicket
其實 Ruby 語言天生的某些特性, 確實讓 Ruby on Rails 不容易實作
和它一模一樣, 但往簡單的目標走應該也是對的, 在商業市場上也沒
人願意花那麼多錢那麼多時間給程式員寫程式了.

後有 ajax 程式要寫, 又有一推新玩意冒出頭, 真是煩燥!

這邊有一篇大老對自己 java web framework 的看法
Java Web Framework Sweet Spots

Monday, March 13, 2006

AJAX and JSON

我們玩 AJAX 有一段很久的時間了, 對於 AJAX 的 "X"(XML) 實在是很受不了, 不同的 browser 間有一些不同結果要處理, 加上 XML 對 programmer 實在是很難搞, 最後 javascript 很不漂亮!

JSON(JavaScript Object Notation) 的出現就是救星了, 以前 programmer 總是喜歡用 XML 來做很多設定或資料交換工具, 但 XML 真的是對人類易讀, 對 programmer 就很難控制它. 開發 j2ee web app 這麼久, 真的是很討厭它, 好像只是證明你寫程式很有功力而已, 那些資料用用 array, map...不就夠了嗎!

請參考 AJAX, JSON and JSON-RPC

Tuesday, February 28, 2006

Rails, Apache, CGI/FastCGI on Windows

安裝 typo 時, 在 apache 2 + windows 上碰到不少問題, 其實 Rails 1.0 產生出來的應該很好設定, typo 可能是比較早開發加上有調整過困擾了我, 把一些細節記錄下來以免忘記!
  1. 安裝 Apache 2, MySQL
  2. 安裝 Ruby, Rails
  3. 開始新的 web app, 打開 Dos Command Prompt
    > rails my_app
    > cd my_app
    > ruby script/server
  4. 請用 http://localhost:3000 看是否運作
  5. 詳細請參考 Rolling with Ruby on Rails
接下來我們進入正題, 當你有了 web app 後, 如何和 Apache 一起工作.

1. CGI 法
  • 打開 rewrite 功能, 移除 "#", 重要!
    LoadModule rewrite_module modules/mod_rewrite.so
  • virtual host 設定
    <VirtualHost *:80>
    ServerName mywww
    DocumentRoot d:/my_app/public/
    ErrorLog d:/my_app/log/server.log

    <Directory d:/my_app/public/>
    SetEnv RAILS_ENV production
    Options +FollowSymLinks +ExecCGI
    AllowOverride all
    Allow from all
    Order allow,deny
    </Directory>
    </VirtualHost>
  • 要設定, my_app/public 下的檔案, 基本上 Rails 1.0 產生出來是不用動.
    • .htaccess
      a) RewriteBase 要關閉
      #RewriteBase /myrailapp
      b) RewriteRule 要用 dispatch.cgi
      RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
    • 確定 dispatch.cgi 及 dispatch.fcgi 第一行, 要指到 ruby
      #!d:/usr/ruby/bin/ruby
  • 打開 c:/WINDOWS/system32/driver/etc/hosts 檔案, 加上
    127.0.0.1 mywww
  • 重新起動 Apache, http://mywww/ 或 http://localhost/

  • Alias 設定, 記得上面都要成功再來試 oh!
    • 加入這一段, 成功後可以移除上面 virtual host 設定
      Alias /myapp "d:/my_app/public"
      <Directory d:/my_app/public/>
      SetEnv RAILS_ENV production
      Options +FollowSymLinks +ExecCGI
      AllowOverride all
      Allow from all
      Order allow,deny
      </Directory>
  • 記得要改 my_app/public 下的檔案
    • .htaccess, 記得要打開 RewriteBase
      RewriteBase /myapp
  • 重新起動 Apache, http://localhost/myapp
2. FastCGI 法
  • 記得請先作完上面方法確定成功後再用 FastCGI 加快, 也比較好找問題
  • 安裝 FastCGI for Apache, 請下載 RubyForApache
    PS. 記得安裝時只要選擇 mod_fastcgi 就好了!!!
  • 設定你的 Apache
    • 加上 FastCGI module 功能
      #FastCGI
      LoadModule fastcgi_module modules/mod_fastcgi.so
      FastCgiConfig -restart-delay 120 -idle-timeout 150 -appConnTimeout 100 -init-start-delay 100 -startDelay 100 -maxProcesses 1 -minProcesses 1 -processSlack 1 -initial-env RAILS_ENV=production
  • 設定你的 my_app/public
    • .htaccess 要改成
      #RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
      RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
  • 重新啟動 Apache, http://localhost/myapp 應該會快一點

Wednesday, February 22, 2006

聊聊 Ruby on Rails

我們來談談一下 Ruby on Rails, 或許可以找到一些新開發 Web 的方法.
  • Rails 是用 Ruby 語言開發, Ruby 是純 OO/SmallTalk like script 語言, 不用管 build 環境, 可以很快上手, 它的相關程式庫發展也很齊全豐富. 例如:
    RubyGems => installer
    REXML => XML library
    Rake => make/ant
    WEBrick => web server like Tomcat
    Test::Unit => unit testing
    XML-RPC => XML-RPC
    SOAP => SOAP
    DRb => Jave RMI, contributed computing
  • Rails 是一套 MVC web framework, 它的設計理念(名言)
    • Convention over Configuration(CoC)
      依照 Rails 定義好的命名規則, Rails 會幫你處理相關運作, 從 url, html page, ORM, 資料庫都套用此一原則
    • Don’t Repeat Yourself(DRY)
      盡量讓大部份的事交給 Rails 處理, 但還要能讓開發者達成目的
  • Rails 和 J2EE
    • Java 陣營: Java + Tomcat + J2EE, Struts, Spring + Hibernate(ORM)
    • Rails 陣營: Ruby + WEBrick(Apache) + Rails
  • Rails 基本是由 Action Pack 及 Active Record 完成
    • Action Pack => Action Control + Action View
      • Action Controller => 處理 URL/HTML Request 的大腦
      • Action View => 產生 html/xml 結果
    • Active Record => 處理資料庫且能將資料庫內容轉成 Object 讓你使用. 也就是一般稱Object Relational Mapping(ORM), like Hibername.
  • Rails 團隊有開發過不少 web apps 經驗, see 37signals. 所以 Rails 很完整又很寫的很讚, 從 cookies, session, filter, error, validate, html page layout, AJAX, testing(unit & function), ORM... 都有考慮, 且都有讓你可以加入設定處理你想要做的事.
  • Rails 不喜歡用 xml 來做設定, 都直接寫在 Ruby 程式裡(這是 Ruby 語言的優勢, 其實那些都是 methods 而已)或用 yaml, 這樣也比較好懂一些.
  • 提供一些簡單的 script 讓你可以快速產生程式
    ex: generate scaffold Product Admin
  • Rails 現在的問題? 你的 web app 要用 Apache(deployment 時). 但用 CGI 慢, 所以要用 FastCGI, 但好像有些安裝問題? Rails 紅了這問題應該會被解決.
  • 多語系處理問題?
  • 雖然現在的不少 web app 用 PHP 開發, 但我覺的 PHP 老了, Ruby + Rails 應該讓不少人眼睛一亮. 自己不是很能習慣 PHP 的直率(自己是開發 J2EE web app)
  • 現在也有不少新的 web framework 冒出頭
  • Java => Trails, Groovy=> Grails
  • Python => Django
  • PHP: => Symfony, CakePHP, Zend Framework, Agavi, PHP on Trax
    Top 10 PHP MVC frameworks

Monday, February 20, 2006

DRb - distributed ruby

DRb, distributed ruby 就像 Java/RMI 角色一般.
  • 參考文件
  • Server
  • require 'drb'

    class HelloServer
    def sayhi
    "Hello to my world!"
    end
    end

    DRb.start_service('druby://localhost:9000', HelloServer.new)
    puts DRb.uri, "Ctrl-Break to stop server!"
    DRb.thread.join
  • Client
  • require 'drb'

    DRb.start_service()
    obj = DRbObject.new(nil, 'druby://localhost:9000')

    # Now use obj
    5.times do
    puts obj.sayhi
    sleep 2
    end

Benchmark - Ruby 測量程式花費時間

Ruby 有提供不錯讓我們得知程式所花費時間
  • 使用 "Benchmark"
  • require 'benchmark'
  • 得知程式執行花費時間
  • COUNT = 500_000
    puts Benchmark.realtime {
    1.upto(COUNT) do
    a = "1"
    end
    }
  • 得知花費時間
  • Benchmark.bm do |x|
    x.report {
    for i in 1..COUNT
    a = "1"
    end
    }
    end
  • 報表格式
  • Benchmark.bm do |x|
    x.report {
    for i in 1..COUNT
    a = "1"
    end
    }

    x.report {
    COUNT.times do
    a = "1"
    end
    }

    x.report {
    1.upto(COUNT) do
    a = "1"
    end
    }
    end

WEBrick - Ruby 下的 web server

WEBrick 是一個完整的 Web 伺服器程式, 用 ruby 寫得蠻簡單易用的.
  • 參考文件
  • 範例
    • 啟動 WEBrick, port 為 2000

    require 'webrick'
    include WEBrick #

    #It's a function stub to start WEBrick
    def start_WEBrick(config = {})
    config.update(:Port => 2000)

    server = HTTPServer.new(config)
    yield server if block_given?

    ['INT', 'TERM'].each do signal
    trap(signal) { server.shutdown }
    end
    server.start
    end

    #To start WEBrick
    start_WEBrick do |server|
    #...see the following...
    end

    • 加入 html document root

    start_WEBrick do |server|
    #document root "/"
    doc_root = File.join(Dir.pwd, 'htdocs')
    server.mount("/", HTTPServlet::FileHandler, doc_root,
    {:FancyIndexing => true})
    end

    • 加入 servelet, 你的 XyzServlet 繼承自 HTTPServlet::AbstractServlet, 處理 do_GET/do_POST
    class HelloServlet < HTTPServlet::AbstractServlet
    def do_GET(req, res)
    res["content-type"] = "text/html; charset=UTF-8"
    res.body = %{
    <html>
    <body>
    Hello Servlet ...
    </body>
    </html>
    }
    end

    alias do_POST do_GET
    end

    class ENVServlet < HTTPServlet::AbstractServlet
    def do_GET(req, res)
    res["content-type"] = "text/html; charset=UTF-8"

    value = ENV[req.query['key']] if req.query['key']

    res.body = %{
    <html>
    <body>
    The server \"#{req.query['key']}\" is \"#{value}\" ...
    </body>
    </html>
    }
    end

    alias do_POST do_GET
    end

    #
    start_WEBrick do |server|
    #document root "/"
    doc_root = File.join(Dir.pwd, 'htdocs')
    server.mount("/", HTTPServlet::FileHandler, doc_root,
    {:FancyIndexing => true})

    #servlet "/hello"
    server.mount("/hello", HelloServlet)

    #servlet "/env"
    #ex. http://localhost:2000/env?key=OS
    server.mount("/env", ENVServlet)
    end
    • 使用
      • 請下載解壓 w.rar
      • 打開 DOS, 執行 ruby w.rb
      • 打開 Browser,
        • http://localhost:2000
        • http://localhost:2000/hello
        • http://localhost:2000/env?key=OS

Ruby 在 Eclipse 下的開發環境設定

Ruby 最近拜 Ruby on Rails(RoR) 紅透半邊天, 其實 Ruby 還真是不錯, 純 OO 又是 script 語言. 要上手並不難, 它基本程式庫也很豐富了, 除了 unicode 支援較不完整之外. 比起 PHP, 個人蠻推薦 Ruby.

開發程式習慣整合開發環境及專案管理, 近來在 Eclipse 下發展, 搭配 subversion/subclipse 做專案管理. 接下來簡單介紹大致開發流程

1. 安裝 java/J2SE50, 下載

2. 安裝 eclipse 下載 (解壓縮到 d:\eclipse 即可)

3. 安裝 ruby & ruby on rails, 這應該是你要玩 ruby 的原因, 參照

4. 開啟 eclipse, 安裝 Ruby Developement Tool(RDT) 參照
[Help]/[Software Updates]/[Find and Install...]/
"Search for new features to install"
"New remote site" 輸入
Name: "Ruby Developement Tool - RDT",
URL: "http://updatesite.rubypeople.org/release"

5. 設定 Ruby Developement Tool(RDT) 環境

  • [Window]/[Open Perspective]/[Other] 開啟 "Ruby" Perspective
  • [Window]/[Preference...]/[Ruby] 下設定 ruby interpreter & Ri/RDoc
    [Installed Interpreters]/[Add]
    Name: "ruby 1.8.2"
    Location: "d:\ruby\bin\rubyw.exe"
    [Ri/rdoc], Rdoc path: "d:\ruby\bin\rdoc", ri path: "d:\ruby\bin\ri"

6. Enjoy it

Subclipse 移除中文化

安裝 Subclipse 後出現中文用起來真是怪怪的...
下面方法可幫你回覆到英文環境

方法 1: eclipse 啟動時加上以下參數: -clean -nl en_US

方法 2: 或者拿掉那些 "zh*.properties" message 檔
到 plugins\org.tigris.subversion.subclipse.ui_0.9.105 目錄下
找到 SVNPluginUI.jar 移除 message_zh*.properties 檔案,
最後再移除 plugin_zh*.properties 即可
PS. 建議你用 WinRAR 蠻方便.