

I've been working on infinite streaming in Rails 3.1, here is my work so far.  - tenderlove
http://www.youtube.com/watch?v=AyRjFolajfE

======
tenderlove
Oops, I forgot to add "<3 <3 <3 <3" to the title!

Edit: I tried to add "<3 <3 <3" to the title, but it did not accept it.

------
derrickpetzold
Maybe instead of that music someone could be explaining what is going on
because I for one I have no idea.

------
jschuur
Advice for people making screencasts: If you're not confident about your
narrating abilities, at least include text bubble explaining the major points
and steps you're trying to bring across.

Unfortunately, the music backtrack overshadowed any easy learning experience
here.

~~~
grimen
Do the happy dance. ;)

------
funkyfortune
Saw the 1.9.3dev at the end. New hotness required for what you did or just for
giggles?

~~~
tenderlove
The JSON streaming stuff is in 1.9.3, but you can do the same thing with yajl.
:-)

~~~
funkyfortune
Good stuff. Let me know if you need any testers. :)

------
dam5s
That is soooo cool! Can't wait to try some realtime apps with that! :)

------
PatrickTulskie
Sweet. Do the normal one connection per app instance rules apply?

~~~
bradhe
Was going to ask something similar. Seems like single-threaded apps might have
a tough time with this approach, but probably outside the bounds of this
discussion.

~~~
bad_user
This kind of app is perfect for non-blocking I/O.

I don't know what he does there, or what would be the equivalent for
Ruby/Rails (that time.sleep(1) doesn't look good), but in Python one could use
something like Gevent for long-pooling, which uses livevent to implement
micro-threads: <http://www.gevent.org/>

Here's a sample that uses Gevent/Django:
[https://bitbucket.org/denis/gevent/src/tip/examples/webchat/...](https://bitbucket.org/denis/gevent/src/tip/examples/webchat/chat/views.py)

It's not the same thing, because when server finally sends a response, the
connection is then closed. But it's trivial to write a custom WSGI middleware,
that sends a chunk of stuff, then releases the thread for other requests.

And doing it this way, you could have thousands of connections open with a
single server instance.

~~~
tenderlove
I just added the sleep to simulate "work". It's not really needed.

