2007年8月29日 星期三

我使用過的Ruby Library或Rails Plugin

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:

2007年8月27日 星期一

Heartbeat 2.0



在商業服務的Rails HTTP Cluster觀念及測試中,我提到了failover也是cluster的其中一個觀念。幾年前我用heartbeat,只是單純架設pgcluster的load balancer,那個時候也是簡單的active / standby。在那個時候,有這樣的架構已經減輕大部分人所遇到的問題:有一台掛掉另一台可以馬上取代其服務,讓維護者有時間可以救,使用者不會罵,已經是很偷笑的事情了。不然一般的維護者可能要急得像熱鍋上的螞蟻,拼命地輸入指令試著想要拯救資料或服務,而在數小時的工作後,服務還是救不起來,使用者罵聲四起。但是其實對我而言,這些比起硬體的方案,還是多多少少嫌不方便。

參考這個網頁,可以瞭解有那些failover的方式。
http://www.ukingdom.com.tw/pro/lifekeeper/lifekeeper.htm

先不管後面的階層化或是多方向failover,其中提到的active/active及active/standby,為啥要有這些分別呢?我來一個一個介紹。


這一個月來的Google Analytics

好吧,我承認我有發現,其實大家想要看unix的東西有比rails的還要多。這個呢 ....孤狗大神的分析器有告訴我:

blog-keyword.JPG

我只能夠說我感謝大家的抬愛,不過很可惜的是,我可能不會再寫有關php的文章了。
讓我驚訝的是,centos及heartbeat竟然是這樣熱門的話題!
最近才剛完成了full-failover的heartbeat 2.0+rails cluster架設,或許趁記憶還新的時候,趕快再來寫一篇吧。

不過其實只要還有人願意看我的文章我就很高興了啦~^^

2007年8月19日 星期日

商業服務的Ruby on Rails HTTP Cluster觀念及測試

Rails如果運用在正式上線的服務,便是相當需要配置為Cluster(叢集)服務。不過大部分使用Rails來建立Cluster通常都是藉著Apache mod_proxy,但在一些情況之下,他只有好設定的優點而已。另一種方式是利用一些Plugin及設定去模擬Cluster的行為,不過這樣便是消耗CPU的時間。

網路上可以看見許多Cluster的文章,但多半都是介紹單方面的功能,或是許多實做的細節牽扯在一起。這篇文章用商業服務的整體規劃來看Cluster及Rails之間的種種問題與解決方法。文章後面附帶了一節是要解釋如何解讀apache menchmark的數據。而各位如果想要瞭解的是效能,數據上的差異,已經有一篇相當棒的可以參考:
http://blog.kovyrin.net/2006/08/28/ruby-performance-results/


[2007/06/15 - 2007/08/19] Hemidemi書籤摘要

  • 07/13 10:20, 2007
    Streamlined 是一個以meta programming 的方式來撰寫程式碼的rails plugin,而meta programming的意思是說,你只需要「描述」就好,剩下的rails會幫你完成。聽起來很玄,實際上就是他有一個預設的樣版,你只要利用一些簡短的程式碼,如同activerecord撰寫association設定那樣簡單,就可以產生整個app的UI了,基本上不需要動到view。
    (標籤: web rails)
  • 08/02 13:55, 2007
    這個就是將FreeBSD的網路功能發揮到極限,以前我也曾動手做過,不過覺得Linux上的也不賴啊,只是沒那樣快
    (標籤: freebsd 科技)
  • 08/19 14:28, 2007
    有些確實說的很清楚,就是還缺乏編譯器那些的。但是有些我想還是不熟造成的,就算是在javaeye上面的罵一罵,看起來也還像是鄉民的談話。ruby出到現在,廣告到是打了不少,雖然也還是看到有人推出ruby原碼解析(列出),不過這樣又能學到什麼呢?原本一個能夠進步的東西,感覺起來在亞洲環境下,逐漸變成一種話題般的產物,讓人覺得有點小小可悲啊。

    不過我相信還是有人願意去研究pure OO到底是啥,慢不是問題,而是要如何改善。

2007年8月10日 星期五

Ruby on Rails的效能低落

儘管我是寫Rails的,寫了想想也快要一年了。東看西看都覺得這實在是一個好東西,不過反過來,當我們的服務要上線的時候。組長卻說我的benchmark test case不夠好,不能夠測出很準確的數值(或許他心想這太好了,三台準系統可以跑200多個request/sec)。

是的, 我是多半隱藏了這個缺點,甚至很不想要去說「對,他就是一個這樣慢的東西」。當一堆文章都在寫說mongrel或是lighttpd cluster有多快,我心裡總是想著apache+mod_fcgid(你知道我在說哪一個blog...XD),我們的目標是做上萬人使用的系統,總不能真的去跑mongrel吧?那跟跑webrick有啥不同?

2007年8月6日 星期一

在FC6上安裝Ruby on Rails + FastCGI + Apache + mod_fcgid

參考文章:
http://wiki.rubyonrails.com/rails/pages/Rails+on+CentOS+4.4+with+Apache+and+FastCGI+Simply/versions/13

1. 安裝apache module
[bash]
yum install mod_fcgid
[/bash]

2. 安裝fastcgi
因為ruby-fastcgi建置的時候需要fastcgi的header所以得安裝
下載:
http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz

[bash]
tar zxf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make all install
[/bash]

2007年8月1日 星期三

PicasaWeb的Flash相簿

雖然說用Google查一下關鍵字就可以知道,PicasaWeb基本上是英文版才給Flash連接,但這不管怎樣還是Flash的Photo Atom Feed Reader。
所以在你想要的任何網頁貼上這些HTML

<embed src="http://picasaweb.google.com/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" flashvars="host=picasaweb.google.com&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fkiwi0530%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer" height="135" width="180"></embed>

結果就是:
參考這兩篇文章
http://blog.blueshop.com.tw/ajun/archive/2007/03/28/50293.aspx
http://roxytom.bluecircus.net/archives/009894.html如果你要顯示你所有相簿的所有圖片,只需要將feed=後面的數值改成
http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F{使用者帳號}%3Fkind%3Dphoto%26alt%3Drss