Ruby Advent 2008連載完畢,來繼續整理完下集。

  1. GUIfy your Ruby apps with Shoes
    介紹 Shoes 這套有趣的跨平台 GUI 小型開發工具。
  2. Ansuz: Rails based CMS for the Masses
    介紹 Ansuz 這套 Rails-based CMS。裝起來玩了一下,看起來功能蠻多的。不過我個人還是推薦 Radiant 這套比較精簡些。
  3. A Collection of Rack middlewares
    Rack 幾乎要變成 Ruby 社群要做 web framework/apps 標準規格了,Edge Rails 最近在做的 Metal 就是在 Rails 裡也可以撰寫低階的 Rack 操作(效能++)。這篇文章則介紹幾套基於 Rack 的 middleware 函式庫,任何基於 Rack 的 Web framework/apps 都可以使用。也就是對將採用 Rack 的 Rails 來說,這些 Rack middleware 都無需經過 Rails router 和 Action Controller path 就可以把事情做完,真是太厲害了。
  4. Rails 2.2 Internationalization
    介紹及經驗分享 Rails 2.2 的 i18n 功能。有興趣可以看看我之前在 Ruby Tuesday 分享的投影片
  5. Prawn and the future of Ruby PDF generation
    傳統上 Ruby 要產生 PDF 文件,會考慮使用 PDF Writer 等等工具,不過現在有執行速度更快、API設計更好的選擇了(而且 PDF Writer 也不會再出新版了),那就是 Prawn,這是一套 pure Ruby 的 PDF Generator,內建支援 UTF-8,預計2009年中就會推出穩定的正式版。
  6. Full-Cycle Feature Development in Merb
    作者分享他使用 BDD 開發功能的流程:1. 點子 2. 用 Cucumber 寫出規格 3. 用 RSpec 寫 model specs
  7. Ruby Graphs and Java Monitoring with JRuby
    介紹如何使用 RMagick4J,一個 ImageMagick/RMagick 在 JRuby 上的實做品,以及搭配 Gruff 工具。下段介紹 Java Management Extensions (JMX)

  8. Easy Dependency Management for Git with Braid
    如何管理外部程式碼一直是個頭痛的問題,最常見的處理方式就是 copy 一份回來,但是萬一碰到自己有修改,加上這個套件升級了,就會很麻煩。在 Git 流行之前大家推薦用 Piston 來管理,不過現在又多了不少選擇:

    這篇文章介紹 braid 這套管理 vendor dependencies 版本的工具,支援 git 跟 svn。

    其他選擇可以參考這篇 Easy Git External Dependency Management with Giternal 所介紹的有 Tim Dysinger 的 rake tasks、37signal 的 cached_externals、Pat Maddox 的 giternal 等等,也許更適合你。

  9. Jump Start Credit Card Processing
    製作精美 PDF 介紹信用卡金流及 Active Merchant。看起來很棒可是台灣的金流公司都沒有… XD
  10. Dance in the Clouds with PoolParty
    PoolParty 是一套以雲端運算平台為目標的佈署工具,目前支援 Amazon EC2。
  11. HTML Scraping with scRUBYt! for Fun and Profit
    介紹 scRUBYt! 是一套基於 HpricotMechanize 的多功能 web scraping 工具。
  12. Life Beyond Code
    耶誕夜的這最後一篇連載跟技術不太有關係… XD

Ruby Advent 2008 到耶誕節有一系列的 Ruby 連載:

  1. Simple Blog Engine in Ruby
    介紹 Scanty 這套由 Sinatra 做的 Blog 系統
  2. Deploying Ruby Apps with Passenger
  3. Passenger 其實不只支援 Rails,任何支援 Rack 的 web framework 都可以使用。

  4. Hoptoad for better Exception Notification

    Hoptoad之前有介紹過,是 ThoughtBot 出的網路服務,用來追蹤 Rails 的 exception notifications,最近也剛推出收費版支援 SSL。

  5. Cool as a Cucumber

    Cucumber 是一套基於 Rspec 的 Acceptance Testing Framework。這種驗收測試的作法是用純文字的方式把規格文件(feature documentation)寫出來,然後用這套工具來寫一個可以執行它(parse)它的測試程式。

  6. Machinist for your Test Data Factory

    因為 fixtures 實在不惹人喜愛,所以有些人改用工廠機制,例如 Factory Girl 這套 plugin 可以預先定義好資料形式,方便隨時建立出測試假資料。我的經驗是程式會漂亮不少,但代價是如果假資料量大的話,執行會花不少時間。

    而這裡介紹的 Machinist 也是概念類似的一套實作品(算是 Factory girl 的重新發明)。

  7. SOA with Merb?

    要做 REST calls 目前有幾種 library 可以用 Net::HTTP、RestClient、HTTParty 和 ActiveResource。其中 Net::HTTP 太基本了,而 ActiveReource 太肥不適合搭配 Merb,所以這裡推薦的是 RestClient

  8. Generating (Real) Fake Content

    開發網站的時候,常有要塞滿一些假資料來 Demo 的需求,這裡介紹了 Faker gem 可以產生假文字。

  9. A Simple Distributed Queue in Ruby

    使用 DRb 用九行 Ruby code 就實作出一個 Shared Queue。

  10. Git it done, Rubyists

    介紹 Git 跟一些 Ruby 工具,對 Git 還不太知道的朋友可以看看 Why Git is Better than X (有中文翻譯)

  11. Listening to Your Specs

    這篇長文蠻深入的講解 RSpec 的 BDD(Behavior-Driven Development) coding style。

  12. Thinking out of the Box with Enumerable#inject

    火力展示 Ruby Enumerable#inject 的進階用法,雖然我覺得還挺難懂的。

  13. Meet the Splat

    介紹 Ruby splat operator (也就是asterisk *) 的用法,可以將陣列展開成參數列。

各位喜愛 Ruby 的朋友們,Ruby Tuesday 復出首場開始報名囉,詳細資料請前往報名網頁,時間地點是 2008/12/23(二) PM7~9 台北市蛙咖啡。

這次的題目非常難得,godfat 介紹的 Rubinius 和 contagious 介紹的 Merb 都是 Ruby 社群中非常看好其發展的兩套 Open Source Projects,相信可以帶給大家不一樣的視野跟想法。

Update(2008/12/12): 上課的網頁在這裡 http://ihower.idv.tw/course/rails.html,投影片在這裡

感謝 OSSF 自由軟體技術教學工作坊 的邀請,下週四我會在台北開一堂 Ruby on Rails 稍微進階一點的上機實做課程(主辦人不忘提醒我這是推廣教學課程,盡量簡單一點),詳細內容請參考課程介紹

  • 如果從未寫過 Ruby,建議可以看看Ruby Programming Language 網站的 Get Started 部份,或是 Learn to Program,大概了解一下語法。
  • 如果從未接觸過 Ruby on Rails,建議可以一起報名參加另一堂 Ruby on Rails 導覽 (講師不是我,不過內容應該比較簡單)。
  • 如果您有看過、簡單用過 Rails,但是對於 Rails 2 開始採用的 RESTful 設計不明瞭(例如為什麼Rails一代的 scaffold 用的好好的,但是升級二代之後的 scaffold 就看不懂了?為什麼照市面上的Rails書打範例都是地雷沒辦法執行?因為市面上的中文書都太舊了沒講 Rails2 啊。),建議可以來聽聽看。
  • 如果這份投影片的內容您已經會了,就不用來佔人位子囉。