% sudo make 上線

by ihower

你的腦海裡是否曾經出現這樣的聲音:

「這東西太酷了,誰趕快來做一下。」

你是否有很多點子,卻又沒有做事的動力?

sudomake.com 這個地方,每個人都可以成為英雄。無論是需要超人來幫你,亦或你行有餘力能夠助人,都可以來此。

不如就用這則漫畫來解釋它的功能吧:

sudo make(出處)

還是不懂嗎?沒關係,立刻登入開始玩玩看,一切都很簡單明瞭。

前往 http://sudomake.com

本篇文章共同發佈於Handlino網站

知名的 Web design 線上雜誌 A List apart No.257期少見地刊出 Rails 入門介紹,心血來潮來做翻譯,斷斷續續翻潤了好幾次,覺得文章看起來沒什麼,翻起來好長啊。
終於再度體會 text.plain 果然是最難寫的格式。寫投影片,做翻譯比寫程式還辛苦…orz

以下翻譯自 Creating More Using Less Effort with Ruby on Rails by MICHAEL SLATER

如果你開發網站,想必應該聽過 Ruby on Rails (RoR) 的大名。但是如果是網頁設計師或前端工程師,或除了PHP沒有用過其他框架,那麼採用 Ruby on Rails 方案似乎會是一個很大的改變。在這篇文章中,我希望能夠除去 Ruby on Rails 神秘的面紗,並說服你採取行動,這將會非常值得如果你的需求符合下述的 Ruby on Rails 甜蜜點。

學新方法去做本來就會做的事情,還要同時學新觀念和新技巧,確實會花你一點時間。直接了當地說,即使是 Ruby on Rails,轉換技術都將會摧毀你的生產力。然而,我相信網站開發者如果開始採用 Ruby on Rails,將變得更有生產力做出更好的網站,以及從中獲得更多的樂趣。

Rails樂趣

Ruby on Rails(簡稱Rails)是一個完整的框架,意思是說他包含了前端跟後端。它讓 “要做多種不同工作的人” 開發者能擁有極強有力的工具。即使基本上你只是前端或後端工程師,你仍可以有效率的使用 Ruby on Rails。我們可以清楚定義前端(瀏覽器HTML、CSS和JavaScript)和後端(Ruby和Rails框架)的介面,所以如果你只想要專注在其中一端的話,不需要全盤了解。

如果你是網頁設計師或前端工程師,你會學到如何使用 Ruby on Rails 樣板系統,而且學一點內嵌Ruby程式碼在 View 檔案。這將讓你成為後端開發者更好的夥伴,因為你可以直接操作 Rails 應用程式,而不是讓某人去整合HTML和CSS。

因此無論你用前端或後端工程師的角度採用 Ruby on Rails,可以想想看有哪些專案可以考慮採用?

Read more…

Update(2008/6/25): 提昇 MacOS 開發爽度請裝 Pane Putting the pane back into deployment
Update(2008/5/24): 更多參考連結 28 mod_rails / Passenger Resources To Help You Deploy Rails Applications Faster

mod_rails(學名是 Passenger) 出來一段時間了,陸續開始有些使用經驗分享出來,在 production 上還蠻適合RAM有限的 VPS 環境,而這篇 Ask Your Doctor About mod_rails則介紹 mod_rails 也十分適合拿來當做 development 環境,也讓我十分心動:

  1. 厭倦每次都得 mongral_rails start 或 script/server?而且還要佔 terminal tabs。像我手上同時間好幾個案子(?!),常常要切來切去還挺麻煩的。有了 mod_rails 設定好之後,每個網站都隨時 ready 可以用。(怕 memory 浪費?mod_rails 可以經由設定 RailsPoolIdleTime, RailsMaxPoolSize 來限制 process 存在的時間跟數量)
  2. 單一 mongrel process 沒辦法平行處理 requests,當網站圖片東西比較多的時候,速度就慢了。而 mod_rails 在有額外的 request 需求時,會 new process 來支援。
  3. 有 Apache 就可以設定 SSL,只用 mongrel 沒辦法測試 HTTPS 連線。

心動了當然得馬上行動,參考了這篇 Using Passenger on OSX for Rails development,我很順利地在我的 Mac Leopard 上架了起來:

1.安裝 Passenger:

gem install passenger
passenger-install-apache2-module

2.設定 Apache,編輯 /etc/apache2/httpd.conf 或 /etc/apache2/users/ihower.conf,以下是一個範例 (前三行請參考執行 passenger-install-apache2-module 時顯示的訊息) :


LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.1/ext/apache2/mod_passenger.so
PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-2.0.1
PassengerRuby /opt/local/bin/ruby
PassengerMaxPoolSize 3
PassengerPoolIdleTime 300
RailsEnv development

<Directory "/Users/ihower/RailsCode">
Order allow,deny
Allow from all
</Directory>

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot "/Users/ihower/RailsCode/project1/public"
ServerName project1.local
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/Users/ihower/RailsCode/project2/public"
ServerName project2.local
</VirtualHost>

3. 設定 /etc/hosts 指定本地端 domain:

127.0.0.1 project1.local
127.0.0.1 project2.local

4.打開 Mac 上的 System Preferences ➔ Sharing ➔ Web Sharing,啟動 Apache。
5.打開你的瀏覽器,輸入 project1.local, project2.local 順利的話就可以看到啦。

問: 修改了 /vendor/ 下面的東西要重新載入怎麼辦?
答:mod_rails 的用法挺有趣的,請執行:

touch tmp/restart.txt

如果要一直修改 vendor 的話(在寫plugin嗎?),可以下載 Automation with RStakeout,然後執行:

ruby rstakeout.rb "touch tmp/restart.txt" "vendor/**/*"

這樣一有更動就會reload了,cool。

Next Page »