lunes, 15 de febrero de 2010

Comet ó Ajax

INTRODUCCIÓN

Hace casi cuatro años (aproximadamente) se hablaba de una nueva técnica de programación Web que utiliza el objeto XMLHttpRequest, muy similar a Ajax, por algunos llamada Comet. Está técnica también es conocida como Reverse Ajax, Ajax Push, Server Push, HTTP Push , Two-way-web, HTTP Streaming y HTTP server push entre otros.

HISTORIA

En el año 1994 Netscape Navigator 1.1 introdujo la posibilidad de realizar un "server push" a través de un tipo de contenido HTTP multipart / x-mixed-replace.  Una ejecución CGI mantenía una conexión TCP abierta en el navegador, con la que se podía realizar el envío de nuevos contenidos a intervalos arbitrarios, sin una solicitud del cliente.

Esta técnica tenía algunas aplicaciones interesantes, pero se adelantó a su tiempo y se empleó raramente. El soporte multipart / x-mixed-replace nunca fué agregado a Internet Explorer, así que cuando Netscape perdió la guerra de los navegadores en la década de los 90, esta técnica fue en su mayoría abandonada.

         Con la incorporación de ajax en el contexto de la programación web se comenzaron a presentar nuevos retos de desarrollo, lo que ha permitido el resurgimiento de esta vieja tecnología que data de hace más de 25 años.

                Alex de DojoToolkit.org fué el primero en definir esta técnica hacia el año 2006, y Dojo es el primer framework que implementa Comet.

EN QUE CONSISTE

Comet (Push Ajax) nos permite establecer una conexión abierta de larga duración entre el cliente y el servidor web, en este caso, es el servidor el que se encargará de enviar información al cliente cuando se genere algún evento en este.

Esta tecnología difiere del modelo original de la web, en el que un navegador solicita una página web completa o trozos de datos para actualizar una página web. En la práctica, las aplicaciones Comet usan tradicionalmente programación AJAX con una petición prolongada para detectar nueva información en el servidor.

Esto no quiere decir que el cliente no envía información al servidor, al contrario, si envía información al servidor, pero en este caso, el servidor no le responde al cliente con un bloque de datos, espera a que se suscite algún evento para informar al cliente de su nuevo estado.

Diagrama COMET


QUIENES USAN Comet

  • Chat en GMail
  •  Meebo
  •  Facebook
  •  Twitter
  •  Entre otros.

EJEMPLOS Y DOCUMENTACIÓN

En los siguientes enlaces se puede conseguir bastante información sobre la implementación de esta no tan nueva tecnología llamada COMET.

Español

http://www.ribosomatic.com/articulos/como-implementar-comet-con-php-y-prototype/

http://component-showcase.icefaces.org/component-showcase/showcase.iface

Ingles

http://cometdaily.com/

http://cometdproject.dojotoolkit.org/

http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/

http://www.ape-project.org/demos/1/ape-real-time-chat.html

http://www.lightstreamer.com/?gclid=CNjqupv39J8CFRKenAod8QL7-g

 

CONCLUSIONES

Como palabras finales, son innumerables las aplicaciones que se pueden servir de esta tecnología, que si bien no es nada nueva, hasta hace poco tiempo no se le prestaba la debida atención y que indudablemente está marcando una nueva era en la prestación de servicios vía web, lo que representa un crecimiento cada vez mayor de este mercado.

Por otro lado cabe destacar, que si bien esta tecnología hace uso en algunas implementaciones de otra tecnología tal como lo es ajax, no se debe confundir, pues puede ser aplicada sin el uso de esta.

                Se recomienda el uso de la terminología Push ajax para esta tecnología.

REFERENCIAS

http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/

http://www.openjsan.org/doc/f/fu/fuzzynerd/HTTP/Push/0.04/lib/HTTP/Push.html

http://es.wikipedia.org/wiki/Comet

miércoles, 27 de enero de 2010

No se ejecuta código javascript o archivo .js

Programando una página web a un cliente, se me presento un problema al momento de hacer algunos códigos en javascript.

Realmente nunca se me había presentado un error así, pero siempre hay una primera vez. Por falta de experiencia en el tema (muy poco programo con javascript y solo hago validaciones muy sencillas), pero esta vez tuve la necesidad de hacer cosas un poco más complejas.

El problema de los errores radica en los errores sintácticos, que son el común denominador en la programación, porque nadie es infalible, pero que a veces por no entender porque falla nuestro código, el estrés se vuelve el peor enemigo del programador porque nos nubla el entendimiento. 

Pero bien, como dije anteriormente el problema son los errores y si tenemos uno o varios de ellos, nuestro código javascript no se ejecutará y nos coloca en un dilema mayor cuando hacemos llamados a otros archivos bien sean js, php, jsp, html, java, xml, txt, css o asp (por nombrar algunos) y perdemos el enfoque del error, por supuesto que los errores logicos son mas difíciles de detectar y un editor no lo resuelve, pero al depurar los errores sintácticos ya es mucho peso el que nos quitamos de encima.

En fin la solución que conseguí para evitar errores sintácticos en la programación con javascript es trabajar con un editor para este lenguaje, mis problemas se redujeron en un 75% y eso es mucho en términos de tiempo.

Conseguí uno muy bueno llamado JavaScript Editor, con el que puede revisar sintaxis además que ofrece una serie de ejemplos, código y rutinas ya probado con el cual se facilita la programación de muchas cosas triviales.

Espero que como a mí, todo el que lea este comentario le sirva de ayuda y no se quede a esperar la solución.

domingo, 15 de noviembre de 2009

Estrenando red en casa


Me he comprado un router TP-LINK modelo TL-WR340G 54M Wireless Router debo confesar que lo adquirí a riesgo de que no trabajara de la manera como esperaba configurarlo, pero ¿cual es mi sorpresa? hace muchas cosas y más, de verdad que es muy completo en cuanto a funciones, muy fácil de configurar y se puede actualizar el firmware cosa que me llamo mucho la atención, el problema sería si diera conflictos al momento de actualizarlo lo cual espero que no.

Configurando este juguete nuevo y luego leyendo la documentación del fabricante, note que se puede utilizar como repetidor de señal wifi, cosa que por demás me pareció muy interesante, por si se quiere extender el alcance de nuestra señal.

Les comento los pasos que realicé para la configuración de mi nuevo juguete:

Primero seguí las instrucciones del manual y el mini-CD que trae, que después de solo unos escasos 5 minutos ya tenia funcionando el acceso a Internet.

Segundo, como es evidente; al ver los pasos de configuración, aun no tenia configurado el DHCP ni el DNS de mi red.

Tercero, para facilitarme mucho las cosas y porque me moría de ganas de tener en funcionamiento mi red, decidí usar el DHCP de mi ISP y un DNS dinámico gratis de Internet que pueden conseguir aquí, más adelante les comentaré como crear tu propio servidor DHCP y DNS para nuestra red y así tener un control mayor de quien se conecta a nuestra red y que es mejor para la administración de la misma.

Les recomiendo este dispositivo para hacer sus pequeñas redes caseras, y por que no de oficina, tiene muy buen sistema de seguridad wifi, nada que envidiarle a muchos router's económicos en el mercado.