Web Application in tempo reale

Ho gi parlato di ci in altri thread, ma dopo qualche giorno di
smadonnamento mi sono rilassato e ho analizzato i miei obiettivi
attuali:

Ho bisogno di realizzare una moderna web application che sfrutti una
tecnologia in “realtime”, non importa che sia in Rails, il mio obiettivo
quello e sono disposto a cambiare rotta per raggiungerlo!

chiedo a voi quindi consiglio e magari inauguro una discussione al
riguardo
per capire la migliore strada da intraprendere…

requisito fondamentale al momento: devo poterla fare a costo zero, sono
venuto a conoscenza di servizi tipo *Pusher *che a quanto pare mi
permettono di rendere la mia Rails App in tempo reale… ma gratis solo
in parte…

Dunque, al momento sto dando uno sguardo alle seguenti soluzioni:

  1. Implementare dei selvaggi setTimeout lato client che ogni tot di
    tempo
    aggiornano la mia app tramite ajax ( davvero cos pesante? Una soluzione
    da deprecare?)
  2. Utilizzare *node.js: *qui ne ho sentite di tutti i colori e forme,
    *ruby
  • node.js*, now.js, rails + node.js!
  1. Utilizzare il framework *Cramp *magari integrandolo in rails…
  2. Eventmachine?
  3. Bhoooooooo!

P.S. non sono molto esperto in reti, quindi cercate di spiegare le cose
+
tecniche, grazie!
P.P.S. avrei dei link da passare riguardo agli argomenti sopra elencati,
ma
al momento sono di fretta, forse + tardi…

Mi viene in mente un punto di partenza (veloce-veloce):

ma non chiedermi di pi (non so). :wink:

Il 06 febbraio 2012 17:23, Luca B. [email protected] ha scritto:

Potresti provare Lift (un webframework scritto in Scala), uno degli
esempi
di partenza sul loro sito ufficiale proprio una chat real time
(utilizzando comet).

Ciao
Stefano

2012/2/6 Carlo P. [email protected]

Cacchio Lift mi sembra un p troppo, dovrei cambiare tutto! Comunque
possibile che nessuno sia interessato all’argomento?

Il giorno 07 febbraio 2012 09:29, Stefano P.
<[email protected]

ha scritto:

Io sto facendo una cosa simile (molto semplice) usando node.js con
socket.io, pi semplice di cos :slight_smile:

2012/2/7 Luca B. [email protected]:

provato a guardare questo esempio di nodejs?

demo: http://chat.nodejs.org/

src: http://github.com/ry/node_chat/

ad ogni modo, non essendo chiaro quello che devi fare, non nemmeno
semplice
affrontare una discussione. se stai studiando, allora comincia dalle
basi e
scrivi un’implementazione funzionante. gioca con il codice, documentati
e
sperimenta nuove strade finch non ti ritieni soddisfatto.

perdona la schiettezza, mi sembra che tu abbia ricevuto diversi spunti,
consigli
e links a riguardo, ma non puoi aspettarti che un argomento pittosto
complesso,
possa essere liquidato con qualche tool/libreria che ti permetta di
scrivere
applicazioni concorrenti senza un minimo sindacale di studio :wink:

ciao,
A.

Il 07/02/2012 14:28, Luca B. ha scritto:

Cacchio Lift mi sembra un p troppo, dovrei cambiare tutto! Comunque
possibile che nessuno sia interessato all’argomento?

Cosa speri di ottenere, finito il progetto?

Ovvero:

  • Lo fai per motivi commerciali e vuoi avere qualosa di funzionante al
    piu presto possibile? Se si, quali sono i requisiti?

  • Lo fai per imparare. Allora, Rails, come hanno spiegato, non e il framework migliore per real time/async, etc.... e ti conviene Node.js (o Lift, Erlang o qualcos altro ma questi sono decisamente piu
    difficili).

  • Lo fai come esperimento con qualcos altro in mente che vuoi
    costruire. In quel caso, bisogna conoscere meglio le esigenze…


David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/

Nono, ma infatti so che complesso come argomento, pensavo solo che
stimolasse di pi la conversazione :smiley:

Allora: io ho un progettino in mente, che per ora non ha scopi
commerciali,
ma se prende piede non mi dispiacerebbe che lo diventasse :smiley:

Cmq mi piacerebbe arrivare ad implementare un architettura che sia
funzionale, che comprenda ajax, tecnologie per il realtime, un ORM (odio
toccare troppo sql :D), l’unico punto fisso sarebbe non cambiare
linguaggio
di programmazione l’ennesima volta: vorrei rimanere con Ruby (che mi
piaciuto!)

Cmq grazie per gli spunti! Stasera me li spulcio per benino :smiley:

Il giorno 07 febbraio 2012 15:01, Andrea P. [email protected] ha
scritto:

Mi sembra di aver capito cmq che node.js sia la soluzione + gettonata

Il giorno 07 febbraio 2012 15:14, David W. [email protected]
ha
scritto:

Cmq mi piacerebbe arrivare ad implementare un architettura che sia
funzionale, che comprenda ajax, tecnologie per il realtime, un ORM (odio
toccare troppo sql :D), l’unico punto fisso sarebbe non cambiare linguaggio
di programmazione l’ennesima volta: vorrei rimanere con Ruby (che mi
piaciuto!)

Potresti scrivere il minimo possibile in Node.js e poi fare il resto
in Rails, comunicando tramite il DB, un API REST o qualcosa del
genere.


David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/

Dai un’occhiata 0mq http://www.zeromq.org che ha un binding per Ruby
GitHub - zeromq/rbzmq: Ruby binding for 0MQ

Immagino un’architettura websocket nel browser mappate sulle socket 0mq,
che collegano il browser bidirezionalmente ai backend che generano i
contenuti. Non è l’architettura tradizionale web ma neppure quello che
vuoi fare tu lo è, quindi un cambio radicale non sarebbe un imprevisto
:slight_smile:

Paolo

2012/2/7 Stefano P. [email protected]:

Potresti provare Lift (un webframework scritto in Scala), uno degli esempi
di partenza sul loro sito ufficiale proprio una chat real time
(utilizzando comet).

se vuoi andare in scala landia, imo scalatra+socketio una curva di
apprendimento venti volte pi facile di Lift, e.g.


twitter: @riffraff
blog (en, it): www.riffraff.info riffraff.blogsome.com
work: cascaad.com circleme.com

Scusa ma cosa intendi per realtime? Ti serve un middleware per gestire
code publish/subscribe? Per realizzare una chat puoi usare faye e non
lasciare ruby.

Il giorno 13 febbraio 2012 18:09, Riccardo T. [email protected]
ha
scritto:

Scusa ma cosa intendi per realtime? Ti serve un middleware per gestire
code publish/subscribe? Per realizzare una chat puoi usare faye e non
lasciare ruby.

S, ma devi lasciare Rails, perch Faye “gira” su EventMachine e Rails non
pensato per andare d’accordo con EM.
Quindi meglio di no.

IMHO il grande vantaggio di Ruby per lo sviluppo web Rails. Toglilo, e
per me molto meglio Nodejs con express e socketio.

Ciao,

Matteo

Infatti sto effettuando un ripassone dalle basi per poi integrare le mie
conoscenze con questo nodejs, per mi scoccia abbandonare del tutto il
Ruby, pensavo di crearmi una specie di framework Sinatra - node.js (se
ho
capito che cos’ Sinatra chiaramente…)

Il giorno 14 febbraio 2012 16:03, Matteo C.
[email protected]ha scritto:

Ciao,
dai un occhio a sinatra-syncrony http://kyledrake.net/sinatra-synchrony/
Gira su eventmachine. Non l’ho provato ma non sembra male.

Se devi scrivere applicazioni web non bloccanti con ruby devi usare
framework che si basino su eventmachine.

Come application server puoi dare un occhio a rainbows o thin.
Come framework esistono goliath, cramp, sinatra-syncrony,
async-sintra,cool.io… e non me ne vengono in mente altri.

Se vuoi andare sul fronte java con jruby, esiste mizuno
(GitHub - matadon/mizuno: Jetty-powered running shoes for JRuby/Rack.) che supporta chiamate asincrone e si
basa su jetty.

Luca B. wrote in post #1046712:

Infatti sto effettuando un ripassone dalle basi per poi integrare le mie
conoscenze con questo nodejs, per mi scoccia abbandonare del tutto il
Ruby, pensavo di crearmi una specie di framework Sinatra - node.js (se
ho
capito che cos’ Sinatra chiaramente…)

Il giorno 14 febbraio 2012 16:03, Matteo C.
[email protected]ha scritto: