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<Body:>
<div class="publicaciones">((_wall.publicaciones > publicacion))
</div>
<publicacion:>
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 originalready(function(model) {
exports.publicar = function () {
// lo que se va a publicar
var texto = view.htmlEscape(model.get('_nuevaPublicacion'));
// agregar al principio
model.insertBefore('_wall.publicaciones', 0, {
texto: texto,
// formato bonito
fecha: dias[hoy.getDay()]+', '+hoy.getDate()+' de '+meses[hoy.getMonth()]+' a las '+hoy.getHours()+':'+hoy.getMinutes()
});
};
});
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