八月 29
Ruby Library:
- REXML。寫XML的話也沒有別的更好用了 http://www.germane-software.com/software/rexml/
- ROXML。這個可能對我自己的特殊應用比較有意義吧,如果是撰寫standalone rails app而又不想用sqlite的話,其實另一個選擇就是效能更好的XML Database。但是在這個技術尚未真正成熟的情況下,XQuery + ROXML也是不錯的選擇。http://roxml.rubyforge.org/
- Gettext。這個真是牌子老信用好的東西,不過我或許還會想要選擇用更簡單語法撰寫語系檔的函式庫。http://manuals.rubyonrails.com/read/chapter/105
- Ruport。一剛開始接觸Rails的時候還以為會像php一樣報表函式庫一直都沒有高度整合性的,心裡最想用的大概會是有點像crystal report吧。不過好在有這個,已經相當完整了,pdf,cvs該有的都有,使用上也很方便。http://rubyreports.org/
- Chart Director。這個雖然是商業的,圖的顏色也不是挺漂亮的,不過因為想要畫的圖比較複雜只好勉為其難。
- UUIDTools。這個也是特殊應用,有可能你對一筆資料所對應的URL想要複雜到讓使用者無法猜,或是想要試試看分散式資料庫,或許你會需要這個。http://www.cnblogs.com/funjackyone/archive/2007/06/01/768275.html
- RJB。雖然jruby內建連結java的語法相當直接,不過jmongrel+rails的效能可不敢想像,我看我還是耐心的等到明年好了。可是我的專案還是得整合Java…唉,這個時候還是乖乖靠這個老牌子吧。http://rjb.rubyforge.org/
Rails Plugin:
- acts as authenticated。
- file column。搭配RMagick來resize或是crop實在是讓圖片很漂亮,速度又很快。
- acts as stripped。當初想說只是要清掉一些亂打的html tag,其實用acts as sanitized也是可以。http://offtheline.net/2007/6/14/acts-as-stripped-auto-stripping-html-from-a-field
- acts as ferret。本來我是想要用acts as tsearch,不過還要多一些欄位,DB也要有些前置動作。但反過來說acts as ferret有時候還是會有memory leak的情況,我還在嘗試看要怎樣解決。http://projects.jkraemer.net/acts_as_ferret/wiki, http://code.google.com/p/acts-as-tsearch/
-
Jsonifier。原來的to_json其實是不太能用的,說起來就算是換上jsonifier,也還是得改encoder.rb,加上Time所使用的to_json才行。http://blog.codefront.net/2007/07/11/better-json-output-from-rails-with-the-jsonifier-plugin/
- respond to parent。這個要搭配iframe使用,不過看他的javascript程式碼還真覺得虧他想得到。http://sean.treadway.info/articles/2006/05/29/iframe-remoting-made-easy
- respond to format。這個其實是kuso,在網路上根本找不到這個plugin~~XD。這是我因為懶惰所使用簡單REST plugin,當然也只是用respond_to do |format| 寫的。對於同一個action,要求html的時候傳回rhtml,js的時候就傳回js,json的時候就執行controller裡寫的程式而已,需要搭配javascript template及自行撰寫的js程序。這是個人專用的,大家看看就好啊XD。
八月 29th, 2007 at 4:47 下午
Rjb之前就聽你講,但是沒仔細去看,剛剛看你的說明思考一下,那我好像可以用Rails利用Rjb來呼叫之前用java寫好的model部份,這樣就可以拋棄Struts,果然仔細看Rjb的use case,就有這一種情況,感覺可以來玩玩看。
另外比較感到興趣的是UUIDTools,對一筆資料所對應的URL想要複雜到讓使用者無法猜,這是不是可以防止像是xdite在說明一些資料竊取的問題,我看到你的說明直覺的聯想。
然後,分享的力量果然是很大。
八月 29th, 2007 at 6:16 下午
是啊,不過這種防法見仁見智啦,如果要做到最高等級的,就像google那樣基本上資料的ID都是UUID弄出來的,有些比較短的我想也是hash過的亂七八糟字串。要猜到鄉民上傳的私人自拍,下一張的ID是啥應該很難吧XD。參考UUID可以知道,UUID基本上是用不完的。
當然xdite那篇文章我看了之後,是覺得問題的重點應該是大家對安全性設計不瞭解,也沒有人規定params[:id]一定要傳id啊(真的覺得詞義對不上,就去改route.rb)。他說九成以上有這種問題,應該也真的是因為框架新大家都照抄。如果我會用id的話,一定是這個資料就是想要人看的東西,如blog,論壇文章等。不過有一點我很贊同,要是使用者人數站方有意要假造的話,還要小心別被人掃啊XD。
而我對於安全性的設計觀念是這樣,就像正式主機在用的防火牆一樣,預設就是要「全部擋掉」,要用的功能在打開通路。所以我的rails app最複雜的地方應該是before_filter,而如果是非公開網頁,就一定要每個action都乖乖通過測試才能真的進行動作。而現在的社群網站多半推或是發文都有些限制,真的要spam的話我想也會被管理員抓到的,這個情況在wiki上一樣也有。如果他今天寫了一個parse html的程式,一直守株待兔地去掃所有連結,那總有一天確實是會給他全部掃出來,不過要拿來幹嘛呢?
稍微多碎碎念一兩句…
其實最近接觸一些鄉民,還真的覺得他們滿閒的,搞破壞的不少,可是說出具體建議的根本沒幾個。反過來我比較擔心未來開始有人針對rails進行DDOS或是真的抓到一些overflow,大量猛灌資料後就可以破台這種情況…