What have you found for these years?

2009-06-10

event-driven rails? (2)

(累積了不少想說的,先提這個好了,因為.. 比較正式?
不過右手相當酸痛,不知道能不能打完...)

沒想到這篇會有第二回,因為我看到這個:
Pusher & Async With Thin

其實我是先看到他的 Pusher
http://github.com/macournoyer/pusher
覺得好像滿有趣,看了一下發現看不太懂,查資料後才看到原來他自己有介紹。
簡單地說,thin 利用 eventmachine 做了 asynchronous 的 response,
(怪不得我一直看不懂他 http status -1 是啥鬼意思...)
利用這點,加上一些 javascript 和 AMQP, 這邊又是 eventmachine,
雖然目前我還不是很確定到底有多少個 server/client...

但總之看到這幾句話:
.
And you remember not to use any blocking calls, right?
.
這讓我想到 ruby stomp gem, 居然全是 blocking network i/o,
讓我相當傻眼.... 害我必需重新包一次,而且試到後來覺得,重寫可能比較快....
不然可能變成一定要用 thread 之類的方式了。所以是希望能用其他 client...
.
Using that in combination with other EventMachine based libraries,
you’re sure to scale to the moon running your website on a Pentium II.
.
關於這點,則覺得可能有些印證我之前的想法吧?
畢竟 thread/process 似乎都不是什麼良好的方式...
優點就是直覺也比較好設計就是了。同時 scale to the moon
讓我想到 Chrono Cross 裡 Kid 的這句話...
.
I'm gonna kick yer arse so hard you'll kiss the moons!
.
咳,總之 rack 算 ruby http server 標準的話,
eventmachine 大概也算是某種程度的標準吧?
做 event driven 的 networking, 不管 server or client.

不過他的介面我不是很喜歡,這點稍微可惜了點。

(yahoo 輸入法本土化(呃,還是這是O化)到連「科科」都是詞彙...)

==
順便測試 twilight theme 用在這裡如何?
新首頁用的招牌 hello world..? 等會再仔細講這個。
#!/usr/bin/env ruby
# encoding: utf-8
%w[ Class <<self Symbol ].each{ |klass|
eval <<-RUBY.split(/真常/).join
class #{klass}
真常 define_method(:method_missing, &:say)
end
RUBY
}
Class.send(:define_method, :const_missing,
&lambda{ |c| cry c.to_s[0..-2] })
def say s = nil
print s, ' ' if s
self
end
public :say
sing Hello.World!
puts
__END__
Apache License 2.0

0 retries:

Post a Comment

Note: Only a member of this blog may post a comment.



All texts are licensed under CC Attribution 3.0