Tema: Real Time
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2011, 15:02
Avatar de dual3nigma
dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 8 meses
Puntos: 122
Real Time

Que tal compañeros!!!!!

Les traigo mi último experimento que estoy por subir a github http://bit.ly/uMoGyi Prueben abrirlo en dos navegadores diferentes (webkit y gecko porfavor) y publicar algo.

Me ha interesado mucho este tema de las aplicaciones realtime, gracias a tecnologías como HTML5 y nodejs pronto podemos esperar que todas nuestras aplicaciones sean en tiempo real. Hasta ahora con lenguajes como python y ruby es posible obvio, pero un tanto doloroso...

Derby http://derbyjs.com/ es un framework MVC muy interesante, al principio lo probe y debo de confesar que me molesto un poco su actitud "mágica" de funcionar. Derby utiliza Racer https://github.com/codeparty/racer para mantener sincronizados los datos, ósea que también se encarga de resolver los conflictos que pueden surgir, etc. Derby utiliza Redis http://redis.io/ uno de los nuevos populares NoSQL o "data structure server".

En fin, el punto es que con este framework pude tener en un par de horas una aplicación real time, de forma sencillisima, suficiente de hablar, les muestro el código.

Empecemos con la "vista":

Código HTML:
Ver original
  1. <Body:>
  2.   <div class="container">
  3.     <div class="principal">
  4.       <div class="publicaciones">((_wall.publicaciones > publicacion))</div>
  5.     </div>
  6.   </div>
  7.  
  8. <publicacion:>
  9.     <p>{{.texto}}</p>
  10.     <small>{{.fecha}}</small>

Para los que están familiarizados con los sistemas de templates modernos no será difícil apreciar la lógica, lo importante es que en Derby tenemos "Bindings" como en Flex ✝, Windows Presentation Foundation, etc. que se utiliza de esta forma ((_wall.publicaciones)), con esto las publicaciones se sincronizaran automáticamente en todos los lugares, estúpidamente sencillo no creen?

Algo que destaca mucho aquí es que con nodejs podemos compartir código, de echo en Derby escribes el código del frontend en el backend.... en cierta forma....

Vean por ejemplo mi "controlador":
Código Javascript:
Ver original
  1. ready(function(model) {
  2.   exports.publicar = function () {
  3.     // lo que se va a publicar
  4.     var texto = view.htmlEscape(model.get('_nuevaPublicacion'));
  5.  
  6.     // agregar al principio
  7.     model.insertBefore('_wall.publicaciones', 0, {
  8.       texto: texto,
  9.       // formato bonito
  10.       fecha: dias[hoy.getDay()]+', '+hoy.getDate()+' de '+meses[hoy.getMonth()]+' a las '+hoy.getHours()+':'+hoy.getMinutes()
  11.     });
  12.   };
  13. });

Estoy utilizando el modelo que funciona de manera transparente tanto en el backend como en el front end.


Bueno, prueben la app y me cuenta, yo mientras me apuro a subir el código a github para contarles mas.

Preguntas, comentarios? Que opinan? Creen que este tipo de tecnologías sustituirán a los apenas crecientes Ext.JS, SproutCore, Backbone.js??

Saludos

Última edición por dual3nigma; 09/12/2011 a las 15:09