Geek & Roll » javascript

Aplicaciones grandes con Javascript

Cesar November 23rd, 2007 javascript, opinion, programacion 3 comentarios

Programar aplicaciones grandes (no triviales) con Javascript es un gran PITA. A aquellos que se dedican a hacer esto (por gusto, trabajo o masoquismo) ¿Cual es el principal problema de la dependencia de Javascript en las nuevas aplicaciones Web? ¿Que librería o framework prefieren (si es que usan una)? ¿Cual es la desventaja de otras tecnologías (GWT, Flash, Silverlight, Flex) frente a Javascript? y por último ¿Que debería tener el lenguaje para mejorar la experiencia del programador?

Gears of Google

Google ha lanzado su nuevo kit de desarrollo: Google Gears. Se trata de una extensión para el navegador la cuál le permite correr aplicaciones web en modo offline, efectivamente acercando aún más las aplicaciones web al escritorio. Hacer funcionales a las aplicaciones web sin conexión ha sido un problema del que mucho se ha hablado últimamente. Ya se han propuesto algunas soluciones y de hecho es una de las características anunciadas para Firefox 3.

Google Gears te ofrece una manera de guardar y servir recursos localmente, sin necesidad de conexión a Internet. También se puede hacer uso de una base de datos SQL para indexar los recursos, hacer búsquedas y otras monerías con SQL y por último te permite utilizar código javascript asíncrono para hacer esa “magia” que es AJAX. Google Gears se encuentra en fase beta como prácticamente todas las aplicaciones de Google.

¿Para qué queremos aplicaciones web que funcionen online? bueno, por ejemplo para usar gmail como cliente de correo “de escritorio” es decir, poder leer, organizar y escribir correo (aunque no enviarlo) aún sin conexión. Como nota muy personal, yo pienso que la tendencia de usar aplicaciones web de manera offline podría perder importancia cuando más y más aplicaciones de escritorio aprovechen todo el poder del hardware disponible y principalmente la aceleración gráfica, para hacer aplicaciones bonitas y muy funcionales con una interfaz innovadora. Lo que sí sería bastante interesante es ver servicios web populares (gmail, netvibes, last.fm, otros que no uso) crear aplicaciones de escritorio que aprovechen al máximo el hardware como dije anteriormente.

Haciendo peticiones asíncronas entre distintos dominios (cross-domain) utilizando GWT

Cesar February 27th, 2007 javascript, programacion 3 comentarios

(o como hacer que el modo hosted se lleve bien con php)

Nota
Este tutorial es centrado en Linux, pero no veo porque no pueda ser aplicado a GWT bajo Windows o OSX. Después de todo, ¡es Java! También es importante notar que esta solución es para hacer que el modo hosted trabaje con una instalación local de php. Si lo que quieres es utilizar APIs populares como Google Maps o Yahoo! Search entonces esto no es para ti. De hecho se puede hacer que funcione pero solamente serviría para modo hosted ya que cuando la aplicación es emplazada, se pierde el contenedor tomcat (donde sucede la magia).

Introducción
GWT incluye en sus propias clases la clase HTTPRequest. Esta clase se utiliza para hacer peticiones HTTP asíncronas al servidor de origen. La clase HTTPRequest tiene 4 métodos estáticos que manejan tanto peticiones GET y POST y todos los 4 métodos regresan false si la petición falla.

El escenario típico del uso de HTTPRequest es comunicarse con una API remota (como Google Maps o Yahoo! Search) o con tus propios scripts del lado del servidor (php, asp, jsp, etc). En cualquier caso, el usar el modo hosted de GWT para hacer llamadas asíncronas NO será algo facil a menos que tu petición sea dirigida al mismo dominio (otro puerto cuenta como un dominio distinto y por lo tanto localhost y localhost:8888 se encuentran en dominios distintos). Para obscurecer el horizonte aún más, el modo hosted de GWT corre un servidor tomcat embebido y por lo tanto si tienes algunos scripts php locales y quieres llamarlos utilizando HTTPRequest va a fallar, ya que el servidor de origen (el servidor que tiene el script que hace la petición) es tomcat corriendo en un puerto distinto de tu servidor php (típicamente apache en el puerto 80).

Yo creo que la solución presentada aquí es la mejor opción de entre otras alternativas, dado que solo modifica el servidor tomcat embebido en GWT y no el servidor que mantiene los scripts o el servidor de emplazamiento. Además, también es posible hacerlo sin la necesidad de modificar la URL pedida. Pero suficiente teoría, pasemos al código.
Leer el resto de este post.

Civilization Ajaxificado

Cesar February 26th, 2007 aplicaciones, javascript Haz un comentario

Listado en varios sitios especializados en videojuegos se encuentra “Vox Imperium“, un clon del juego Civilization. Lo realmente impresionante del asunto es que se encuentra hecho totalmente con JavaScript (AJAX).

Los bloggers de Ajaxian nos dicen que “te diviertas viendo el código fuente de la página principal del juego”.

Más aún, el primer torneo de Vox Imperium se encuentra abierto en estos momentos.

Debuggeando Código Generado por JavaScript

Axel February 26th, 2007 browsers, javascript, programacion, tips 3 comentarios

Al debuggear una página generada parcial o totalmente por javascript, como aquellas que llevan manipulación de elementos via DOM, y otras linduras por el estilo (no es sarcasmo, es que es lindo :P), muchas veces tenemos que hacerlo a prueba y error, pues el “mostrar código fuente” de los browsers no muestran los cambios en el documento hechos por JavaScript.

La solución: Internet Explorer y este script:

javascript:window.clipboardData.setData('Text', window.document.body.innerHTML)

¿Qué hacer? Al estar visualizando la página en el navegador, pegas esa linea decódigo en la barra de dirección y presionas enter.

El contenido de la página debe cambiar por un “true”. Si es así, la cosa ha funcionado, y el código generado está ahora en el portapapeles listo para pegarlo en tu editor favorito :)

De nada.

Posts recientes