對抗垃圾信!請您點這裡:

我的E-mail:
我的Skype:My status

2006年8月21日

如何進去網站後就轉到指定的Controller?

嗯.. 關於這點..
呵~cookoo大哥先在這邊謝過拉XD
雖然你忘記要作最後一個動作...

ok...

  1. edit config/routes.rb
  2. add map.connect '', :controller => "ctrl_name"
  3. save it and remove or rename public/index.html
cookoo大哥忘記說哪一點呢?
沒錯...
第三點="=

害我昨天測試了老半天阿阿阿阿阿阿阿阿阿!!!!!!!

2006年8月14日

set_primary_key

在Rails,如果你想要使用自訂的Primary Key Name(主鍵)的話(如果你用Migrate產生,預設就會建立一個叫作id的主鍵)可以使用set_primary_key
set_primary_key好像還要搭配set_table_name使用,不然會出錯!
因為我在作補習班網站的案子時,僅僅加入set_primary_key就出錯,加上set_table_name才正常,因此我想set_primary_key一定要有set_table_name的輔助吧?不過反之我想應該不同!
請在Model裏面編輯
set_table_name “tbl_name”
set_primary_key “pk_name
但是請注意!如果自訂Primary Key的話,在編輯的欄位內請不要讓那個欄位可以編輯!假設我...
set_table_name "people"
set_primary_key "uid"
此時就別讓uid可以編輯,像是出現:
<%= text_field "person", "uid" %>
這樣會產生錯誤!
詳情可以參考:
Agile Web Development with Rails書中第14章第三節的部份,雖然繼續使用uid還是可以的,但是會比較麻煩點!
而該節最後一句話:When you need to set the primary key, use id. At all other times, use the actual column
感謝China on Rails群組中的darren.hoo!
相關討論請看:
Ruby on Rails on Google Groups

2006年8月6日

"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 網站看出來

讓Ubuntu上網速度加快

我想大家都知道上網時,電腦會透過DNS要求遠端IP
拿到IP後才可以進行連線
而通常連線到DNS的這段時間其實是可以不需要的
只要自己的主機架設DNS,或者在/etc/hosts上手動設定網域名稱跟IP
就可以加快網路速度!
可是,手動設定網域名稱跟IP不是每個人都會,而且設定繁瑣,更新困難
乾脆就裝個輕便型的DNS吧:P

$ sudo apt-get install dnsmasq

$ sudo vim /etc/dnsmasq.conf

把listen-address=127.0.0.1
弄好後存檔離開

接著設定dhclient.conf

$ sudo vim /etc/dhcp3/dhclient.conf

確定這幾行的樣子是跟以下一樣:

#supersede domain-name "fugue.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;

尤其是prepend domain-name-servers 127.0.0.1;這行,這行如果是註解就請去掉。
存檔離開

打開/etc/resolv.conf吧

在nameserver的第一行加上自己主機
存檔離開後就可以restart dnsmasq
$ sudo /etc/init.d/dnsmasq restart

OK,來試試看是否正常運行

$ dig google.com
看看Query time
第一次可能會超過10
第二次試試看,應該不會超過3 :)



如果你是xDSL使用者,可以參考下面的其他設定
打開/etc/dnsmasq.conf
尋找
#resolv-file=
註解取消,加上
/etc/resolv.dnsmasq.conf

存檔離開後把/etc/resolv.conf複製一份,路徑名稱是:/etc/resolv.dnsmasq.conf

編輯/etc/resolv.conf
確定檔案內只有一行
nameserver 127.0.0.1

存檔離開,修改/etc/ppp/peers/dsl-provider
把usepeerdns給註解掉

OK~ 成功!


2006年8月1日

工具發佈: CharArray

呼.. 為了EasyURL,剛剛花了點時間自己搞了個產生亂碼的程式
程式碼在這邊
想看的請用Shift + 左鍵點選(或者右鍵開新視窗;如果是Firefox使用者建議使用”用新分頁開啟”)
class CA
def generate times=1
times = 1 if times <= 0
return (1..times.to_i).to_a.collect{|x| (('a'..'z').to_a+('A'..'Z').to_a+('0'..'9').to_a)[rand(62)]}.join
end

def gen times=1
generate times
end
end

程式碼修正:
心得:被GSR用一行嗆明.. 我真的該檢討>"<

2006年7月31日

Ajax Scaffold -- 真是帥阿

昨晚在逛Railscn時看到AJAX Scaffold
當時在想:”AJAX腳手架?不會吧… ” 看過Rails的scaffold後感覺到真的很恐怖
因此就在想… 該不會真的這麼棒?只要幾個步驟就可以搞定了嗎?
點進去後,發現只要五個步驟就可以搞定… “嘿!挺有趣的說!”
網址是:

我簡單的寫個步驟好了…

1. 當然是先建立一個Rails專案拉!記得要去設定config/database.yml
  • rails ajax
2. 產生一個model
  • script/generate model member
3. 編輯db/migrate/001_create_members.rb
  • 請根據下面去修改
    class CreateMembers < ActiveRecord::Migration
    def self.up
    create_ table :members do |t|
    t.column :name, :string
    t.column :email, :string
    t.column :address, :string
    end
    end
    def self.down
    drop table :members
    end
    end
4. 好!開始rake migrate
  • rake migrate
5. 產生AJAX Scaffold
  • script/generate ajax_scaffold member

好拉!去看看吧!

script/server -p 3000

http://localhost:3000/members

哈哈!
在這邊可以看到範例

2006年7月28日

嗯.. 第二個Rails程式完成 -- Bookmanager

哇呼.. 雛形是出來了
版面不能看(!)

大致上是還好
在開發的過程中,沒有遇到太大的問題
而且在這次開發的過程中我又釐清了很多東西
對Rails的操控又更加熟悉了

其實Rails的開發真的很簡單
一個rails project建立好後
修改config
建立Controller
連去Database建立Schema、Tables
建立Model
使用Scaffold
OK~ 基本的東西出來了

接著再修改一些東西
還有rhtml的修改、版面配置
這樣就完成一個Web Application

其實在這整個過程中
寫的程式碼真的不多
我相信比用PHP還要節省更多時間

過幾天再丟到網路上吧...