Mephisto (或是 如何在 dreamhost 下玩 rails)
November 18th, 2006
用 RoR 開發的 Blog 中最著名的應該是 Typo 了吧!
但是最近看到很多著名 Railers 的 Blog 都改用了 Mephisto ,連 Rails 的官方 blog 也是。好奇看了一下才發現,原來這個新的 Blog 程式是由 Rails Core Team 的一員 Rick Olson 所開發的,而且 Typo 的原始開發者 Tobias Lütke 也加入了 Mephisto 的開發行列,讓人不禁要手癢玩一玩。
補一下在 Dreamhost 上面的安裝步驟:
ps. 寫完了才發現這篇超長,基本上說了- 如何沒有 root 的權限下安裝自己的 ruby, gems 和 rails (STEP 1 ~ 6)
- 如何用 fastcgi 和如何「部份」解決 apache2 對上 fastcgi 不是很穩定的問題 (STEP 8,9)
- 如何裝 mephisto ….XD
Rails 的 Component 觀
November 17th, 2006
目前一起當兵的朋友是個 ASP.NET 的高手,所以互相討論的時候也順便看了一下 .Net。
Read the rest of this entry別再做這些事了 Part 2
November 16th, 2006
在 1.2 正式推出之前,Bob Silva 整理了一份將要 Deprecations 的清單
Read the rest of this entry別再做這些事了!
November 9th, 2006
Rails 是個很新的 framework ,隨著它不斷的進步,有一些老東西要記得丟掉。
上一篇提到 Guide: Things You Shouldn’t Be Doing In Rails 幫我們整理了這些該丟的老東西(或是習慣)。
以下是一些筆記:
Read the rest of this entryPagination 的問題
November 9th, 2006
事先聲明,以下全部都是外電報導,我自己還沒有時間用力的測過
giive 兄寫了一篇 Rails 內建的 Pagination 簡介 。不過官方 Rails Blog 推薦 的這篇文章 Guide: Things You Shouldn’t Be Doing In Rails ,強烈的建議不要使用內建的 Pagination。甚至,在 Rails 2.0 還要完全的把 Pagination 移出 core 而獨立成一個 Plugin。究竟這個內建的 Pagination 有什麼問題呢?
Read the rest of this entryRuby 的 thread 問題
November 3rd, 2006
看了 giive 兄的這篇文章
其實我覺得 Ruby 慢的原因和 thread 沒有什麼太大的關係。 之前在 railscn 也和別人吵過相關的問題,不過那時他是說 mongrel 慢(相對於 FastCGI 而言)是因為 Ruby 沒有 native thread 的關係,而我「相當」不以為然。
Read the rest of this entry用 RJS 來寫 Javascript
October 29th, 2006
Ruby 統一全世界!用了RJS 就不用辛苦的刻 Javascript了!
ihower 兄寫了一篇 Rails RJS Templates 初體驗 。可做為入門 RJS 的好教材。
不過後來他又補了一篇 Rails RJS Templates 再探 ,內容提到:“RJS … 其實是 Remote JavaScript 的意思,顧名思義它主要用於 Ajax Request 的遠端回應。不需要用 Ajax 的地方還是應該乖乖用 Javascript 來寫”
這一段話小弟就不是很同意了。
Read the rest of this entry在寫 Google Talk Conference Bot
June 11th, 2006
Google Talk 的 官方用戶程式 gtalk 沒有群組聊天的功能。有人用 xmpppy 寫了一個 bot 。它可以轉發每個人的訊息來達到類似群組聊天。現在 chinaonrails 和 twrug 都有在用這 bot 。 要加入這兩個聊天室,只要將 chinaonrails@gmail.com 或是 ruby.at.tw@gmail.com 加入你的 google talk buddy list 就好了。
Read the rest of this entry重新發明輪子..
May 14th, 2006
上個星期在看 acts_as_taggable plugins 的時候,發現他內建 find_taggable_with 這個 method 在給很多的 tag 的時候,是以 OR 的方式來找尋的。
今天從台中坐車回台北坐了四個小時(瘋狂的母親節!),其中無聊的時間,就寫了一個 find_taggable_with_all 讓他可以用 AND 的方式來找。
剛剛想說 po 上來順便寫個教學,去 wiki.rubyonrails.org 找資料的時候,發現有人在 5 月 11 號的時候就寫了這個功能,而且名稱也取得和我的一樣是 find_taggable_with_all !!
這個故事告訴我們:寫程式前要先上網查資料!
Read the rest of this entryTheory and Practice
April 27th, 2006
沒有銀子彈,只有適用性
April 27th, 2006
看了鳥毅兄的 這篇文章 ,有一點不同的意見:
再重複一次: Syntax Matters !!
現在所有的程式語言都是 Turing equivalent 的,所有的語言都可以說成是 Machine Code 的 Syntax sugar。有誰能說程式語言不重要,通通用 Machine Code 就好了?Syntax sugar 很重要,它不只是節省打字的時間,最主要是邏輯上的整合,幫助人專注在要解決的問題之上。當然執行效率也是很重要,所以的確沒有什麼銀子彈這回事,但是每個工具都有他的適用性。拿 C++ 來寫網站留言版,就和選一個大斧頭來削蘋果皮感覺是一樣的。
RubyOnRails 的 demo 影片 ,並不是要說多短的時間內可以弄出一個功能完整的 blog ,而是在說明使用 Rails 開發程式的 agile method:- 你可以輕易的改變你的 model,因為不需要用 xml 一個一個的 mapping database field。
- 你可以馬上看到所作的改變,因為不用 restart server, compile 和 deploy。
- 你可以手動試驗你寫的 Model ,因為有 scripte/console 。
- 你沒有理由不做 testing,因為需要重複的事情,整個 framework 都幫你做掉了。
熟悉 Java 工具的人可不可能做到這麼快,這麼 agile? 當然可以,但是他要熟悉的工具比用 Rails 的人要多太多了。所以這還是一個適用性的問題:如果你的需求比較固定,有辦法做完整的系統分析,需要支援 legacy 系統等等,Java 就可能比較適用。
最後一點,學習 Ruby 不只是會用這個工具而已,Ruby Way 還打開了我的視野,讓我用不同的方式來看問題。學習新的語言和良好的分析和架構,嚴謹的程式寫作並不會相互衝突,反而是相輔相成的。
RubyBB
April 18th, 2006
熱血青年又一人! jslee 在 rubyforge 上弄了一個 rubybb 的專案。
基本上是想由 rforum 做為基礎來建立一個完整的 forum 程式。目前還在初期規劃階段。
最新的發展可以參考 http://www.rubybb.com
Programming Ruby 中文翻譯
April 16th, 2006
學習 Ruby 的經典之作,Programming Ruby 繁體中文版 翻譯計畫開張了!
在 OSDC.tw 時有遇到主持 http://www.ruby-lang.tw/ 的 sjh 前輩。他說之前和一個朋友也有計畫翻譯尚未此書,可是那個朋友去當兵之後就沒有繼續下去。最慘的是連當初翻譯的資料也沒有留存下來。
現在則是從 簡體中文版 先轉譯過來,以 wiki 的形式希望能吸引更多的人來關注加入。
有興趣加入的朋又請參考 wiki 的討論頁
Rails Template 自己做
April 11th, 2006
f0rth 一直覺得 erb 不是個好東西,美工人員看到會頭痛; wicket 那種全部都是 valid xhtml 才是王道。於是就興起了寫一個自己的 templating system 的想法。
看了一下 Liquid 的原始碼,其實加入一個新的 template plugins 非常的簡單:
1. vendor/plugins/ 下面建一個 joket 目錄 (我們的 plugin 叫 joket)
2. init.rb 的內容加上ActionView::Base::register_template_handler :joket, JoketView
這會和 rails 說:我們有一種新的 templating system ,附檔名叫 .joket ,碰到它時請用 JoketView 這個 Class 的 instance 來處理。
3. JoketView 裡面主要有兩個 method:- initialize 要把 action_view 給存起來
- render rails 會把 template file 的內容傳入這個 method,而我們要做的就是讓它的回傳最後頁面的內容。
看起來蠻乾淨的系統,但是有一個問題。因為 rails 傳入 render 是 template file 的「內容」,而不是檔名。所以如果想要 cache 先前 parse template 的結果的話變得效益不大。(難不成要用整個 file 的內容來做 Hash 的 Key??) erb 自己的處理方式是獨立於外加的 templating system 之外的,真是邪惡啊。
OSDC.tw 的 RoR 投影片
April 9th, 2006
這 是我這次在 OSDC.tw 講 Ruby on Rails 用的投影片。
心得:
- 沒有講 RoR Ajax 的支援好像太可惜了一點..
- Never Live Demo (我只是少打了一個 ”=” 而已啊…. Orz…)