承續上一次Rails On Slicehost #1未完成的工作。
基本上,無論在一般Debian 4.0環境或任何一家跑Debian的VPS上安裝Ruby on Rails應該都大同小異,甚至在Ubuntu上安裝Ruby on Rails也差不到哪去。
先從ssh登入:
承續上一次Rails On Slicehost #1未完成的工作。
基本上,無論在一般Debian 4.0環境或任何一家跑Debian的VPS上安裝Ruby on Rails應該都大同小異,甚至在Ubuntu上安裝Ruby on Rails也差不到哪去。
先從ssh登入:
Ruby on Rails的架構組合實在太多了,但Mongrel的確是Ruby on Rails平台的主力Server,因為這傢伙又穩又可以做Cluster,甚至連Django那群人都很想要擁有一台。
Mongrel夠穩,但是臨時出狀況怎麼辦?
有沒有辦法隨時監控著?可不可以設定條件自動發email通知?可不可以設定條件自動重開?萬一流量暴增,可不可以在他佔系統資源過多的時候自動通知或自動重開?
有了monit,一切都好辦,那就看看monit可以怎樣幫Mongrel的忙。
七年前讀過教堂與市集嗎?軟體開發需要精細雕琢如建構教堂,還是草莽紛沓如市集呢?
你今年讀過微軟已死嗎?誰說微軟已死?那不過是百足之蟲,死而不僵罷了。
網路是未來,唯有具世界觀的網路事業值得一搏。
那麼要如何跟全球網路公司比拼呢?唯有科學。因為他們都崇尚科學。
什麼是科學?Linux那一套就是科學,商業軟體只是魔法,而魔法總會成為過去式。
要是你的機器上同時跑好幾支Rails程式,而每支程式都透過proxy轉換不同port,當你常常需要開關不同程式時該怎麼辦?通常都是start或stop Mongrel server。
stop就是切換到rails project目錄,然後下mongrel_rails stop:
cd ~/projects/myrails mongrel_rails stopstart可麻煩了,你得先去proxy設定檔查出對應哪個port:
cat /etc/lighttpd/conf-enabled/10-proxy.conf
--
$HTTP["host"] == "myrails.pbg4.org" {
proxy.server = (
"" => (
"myrails" => (
"host" => "127.0.0.1",
"port" => 6100)))
}
當你有很多小功能需要修修補補的時候,是不是該找個地方寫下來?
寫在記事本上?太遜了吧。用Jira?太麻煩了吧。
如果你喜歡在命令列底下辦事的話,來來來,先把Tracker這顆寶石裝起來吧。
請輸入以下指令安裝:
你灌一台Linux要多久?兩、三個小時還是四、五個小時?用Slicehost只要幾秒鐘搞定。
Slicehost是最近流行起來的虛擬主機服務,一個月花20美元左右,就可以擁有一台屬於你自己的,而且具備完整root權限的主機,每一位在LAMP上開發系統的人都應該要擁有一台。
Slicehost跟以往的虛擬主機有何不同?當然不同,以往的虛擬主機其實大家共用同一台主機、共用同一個Apache、共用同一個MySQL。因為使用人數超賣的情形很嚴重,一但你佔用太多系統資源,對不起,系統商馬上把你踢掉。
現在透過Xen技術,可以在一台實體主機上切割記憶體、CPU而模擬數台虛擬主機,並跑不同的作業系統。只要主機商規劃的好,就等同擁有一台真實的主機。
Slicehost提供五種主流Linux系統任君挑選,而且隨時可以換成別的系統,按一下Rebuild按鈕,立刻給你一台灌好的主機,你說這是不是很方便呢?
Ruby on Rails在測試這一塊領域可說相當完整,在架構面有三種不同環境的設計,加上超方便的單元測試、功能測試、整合測試,搭配自動測試ZenTest、瀏覽器體驗測試Watir、連續整合CruiseControl.rb,當然還有最棒的RSpec,整體而言相當精巧、方便、簡單且務實。
如果要問還有沒有可以改進的空間,當然有,而且又是免費的Open Source。
當專案規模大或是同時進行多個專案的時候,一定需要整體性的報表,需要一份可以立即掌控整個測試狀況的報表。Tesly Jr.所提供的就是這種性質的免費服務,它本身也是用Ruby on Rails寫的Open Source軟體,所以你可以下載回去裝在自己家裡,或者也可以直接使用它所提供的免費服務,甚至也有需要付費的進階服務。
我最近聽過對於Ruby/Rails最有趣的評論是: Ruby/Rails除了簡潔之外,看不出還有什麼優點。
好吧,那就捲起袖子從最簡潔、最可愛的Dynamic Finder以及衍伸的例外處理來看好了。
因為Dynamic Finder實在是太可愛了,所以無處不在,例如:
# Very simple example
def show
@bug = Bug.find(params[:id])
@page_title = "About this bug"
end這段程式看起來不錯,實則不然,萬一找不到蟲,那怎麼辦呢?這有幾種處理方式:
最近透過某些私人管道拿到了CodeGear的RubyIDE,由於簽署保密協定的關係,這裡還不能揭露太多相關的畫面細節。
聽說今年第三季正式推出時將有Win32、Linux以及MacOSX等三種版本,剛好他們家在Mac平台上並無太多的人手可做安裝、測試,於是我就拿來玩玩看,並回饋一些心得給他們。
由於是以Java為基礎,安裝起來並無太大的問題,起碼比JBuilder好裝多了。但我始終搞不清楚,好端端的一個Ruby IDE為什麼非要跑在Java上頭不可呢?
目前釋出的版本還是測試版,大致上是以Eclipse加DLTK為核心,畫面什麼的當然比元祖Eclipse要美觀些,就Rails的支持度而言,整體的完成度並沒有比IntelliJ IDEA加Ruby Plugin來的好。
什麼是User Page?也許每個User都有一個自己的首頁,沒特別加工處理的話,網址多半像這樣:
http://demo.rails.org/user/show/1234 # 1234 means a user id.這不是很容易完成嗎?那還有什麼問題呢?
當然有,這種網址太長、太醜、太不User Friendly,而且揭露了許多不該揭露的訊息。例如: 為什麼要讓別人知道處理User的controller叫做user?為什麼要顯示重要的user.id?這樣一來變成必須去擋user/edit/1234或user/delete/1234這類的處理。
如果可以進一步把網址上的controller、action都給扔了,直接顯示成user name應該很不錯吧,例如:
http://demo.rails.org/winson # winson means a user name.那怎麼做呢?要改這幾個小地方: