jueves, 7 de octubre de 2010

Elementos Sintácticos de Java

He incluído para descarga en mi sitio web una guía de la mayor parte los elementos sintácticos de Java que servirá de ayuda para quienes programan en otros lenguajes y quisieran aprender Java. El link de descarga es el siguiente:


Espero se aproveche.

Saludos!

lunes, 20 de septiembre de 2010

Editor Visual para GWT

Hace poco me enteré que google compró la empresa instantiations (link a la noticia), esta empresa era la dueña del único diseñador gráfico decente para GWT, el cual era un plugin de eclipse y además privativo (había que comprarlo para usarlo). Hace poquito me entero que google publicó estos plugins gratis para todos! (link a la noticia).
Yo estuve probando este editor visual y he llegado a varias conclusiones:

Primero que nada, el plugin es genial! Las interfaces web diseñadas visualmente, o sea arrastrando componentes y realizando todo un manejo visual, terminan en código clásico de GWT, o bien con UI Binder!! El código que se genera es bastante limpio y fácil de entender, podemos utilizar todos los controles disponibles en GWT directamente de forma visual, podemos realizar cambios en el código y éstos se reflejan en el modo visual.

Además de todo esto, permite agregar fácilmente los frameworks de extensión mas populares como GWT-EXT y XGWT.

Acá les dejo un par de screenshots:

Vista de código:
Vista WYSIWYG:
Si combinamos esto con la funcionalidad que nos daba el plugin de google, nos queda como gran conclusión de todo que eclipse es la plataforma ideal e indiscutible para hacer aplicaciones en GWT.

Saludos!

Mis Recordatorios

Ahora la aplicación "Mis Recordatorios" se encuenta abierta para todas aquellas personas que deseen utilizarla.

La url es http://misrecordatorios.appspot.com/

Saludos!

jueves, 19 de agosto de 2010

Acerca de los WebSockets

Websockets es una de las tecnologías más interesantes de HTML5, mediante esta tecnología se termina uno de los grandes problemas de las aplicaciones web la falta de estado! Un desarrollador a partir de ahora podrá crear conexiones persistentes con el servidor de aplicaciones y realizar toda clase de cosas convirtiendo a la página web en un cliente común y corriente!

Por ello el desarrollador web deberá comenzar a pensar de otra forma, perderá sentido pensar en "el tiempo de request", la sesión web con su famosa cookie, no mas arquitectura mvc (tal cual la conocemos ahora y la usamos en la web) en pocas palabras, una revolución total. Hoy podemos utilizar esta tecnología si disponemos de dos cosas:
  • Un browser compatible (como chrome o safari).
  • Un servidor compatible.
Existen varias implementaciones del protocolo websockets (aunque todavía está en desarrollo), como muchos se lo estarán esperando, si vas a probar esto en java, podrás usar mi framework "websockets4j" disponible para descarga en jar en websockets4j.googlecode.com.

Bueno, ahora sin mas preámbulos, a lo importante. Para conectarnos al servidor desde Javascript necesitamos conocer dos cosas:
  • La url de conexión.
  • El subprotocolo a utilizar. (opcional)
La url de conexión indica a que servidor nos conectaremos, y tiene la siguiente forma:
ws (o wss) ://:puerto/recurso.

Si utilizamos ws, la conexión será sobre un canal desencriptado, y si utilizamos wss la conexión será utilizando "Transport Layer Security" o TLS. (de momento mi framework de websockets no soporta wss).

El subprotocolo, es para ser utilizado por terceros, usualmente se utilizará con una librería de javascript y un servidor del mismo vendedor.

La conexión puede tener tres estados posibles: Connecting, Opened y Closed. El siguiente código muestra la interfaz de WebSocket.

interface WebSocket {
readonly attribute DOMString URL;

// ready state
const unsigned short CONNECTING = 0;
const unsigned short OPEN = 1;
const unsigned short CLOSED = 2;
readonly attribute unsigned short readyState;
readonly attribute unsigned long bufferedAmount;

// networking
attribute Function onopen;
attribute Function onmessage;
attribute Function onclose;
boolean send(in DOMString data);
void close();
};
WebSocket implements EventTarget;
Los mensajes al cliente serán recibidos por eventos, una función javascript será invocada cuando un mensaje llegue.

La trama tiene forma de caracteres unicode UTF-8 y se recibirá en forma de mensajes que pueden tener longitud variable.

Para realizar la conexión, basta con la siguiente línea Javascript:

var socket = new WebSocket("ws://some.host:10123/resource", [subprotocol]);

Una vez realizado esto, podemos setearle funciones para los cambios de estado:

socket.onopen = function() { alert("Opened!") };
socket.onmessage = function (e) { alert("Message: "+e.data); };
socket.onclose = function() { alert("Closed!") };
socket.onerror = function() { alert("Error!") };

Para enviar un mensaje, simplemente podremos utilizar la función "send" del socket.
Para cerrar la conexión, podremos utilizar la función "close" del socket.

Con esto concluyo esta guía sobre esta tecnología que va a cambiar a la web para siempre.

Saludos!