lunes, 27 de julio de 2009

Aca voy a poner varios ejemplos de como recorrer vectores, arrays, o colecciones de datos como list, etc etc.....

Como recorrer un HashTable:

Hashtable a = getHashTable();

Enumeration e = a.keys();
Object obj;
while (e.hasMoreElements()) {
obj = e.nextElement();
System.out.println("clave "+ obj +": " + a.get(obj));
}


------------------------------------------------------------------------------------------

Como recorrer un MAP:


Map hm = new HashMap();
hm.put("1","Luis");
hm.put("2","Amaya");
hm.put("3","Julio");
Iterator it = hm.entrySet().iterator();
while (it.hasNext()) {
Map.Entry e = (Map.Entry)it.next();
System.out.println(e.getKey() + " " + e.getValue());

Como leer del puerto serie

Trabajando con J2ME tras un modem java de siemens, tenemos que leer por el puerto seria la inforamcion que nos mandaba un instrumento electrico, esta fue la manera que encontramos para poder leer efectivamente del puerto serie:

sbResult=new StringBuffer();

comando = desp.getNextCommand();

out.write(comando.getQuery("31").getBytes());
out.flush();

int inputChar;

do
{
inputChar= is.read();
if (inputChar!=-1)
sbResult.append((char) inputChar);
//miLog.INFO("de a uno:" + inputChar);
if(inputChar==3)
break;
}while (is.available()>0);

miLog.INFO( serviceName + " RESPUESTA : " + sbResult.toString());


Este metodo no me funciono del todo bien , ya que aveces se me corrian las lecturas, es por eso que haciendo pruebas lo cambie por el siguiente codigo.

do
{
inputChar= is.read();
if (inputChar!=-1)
sbResult.append((char) inputChar);
if(inputChar==3)
break;
// }while (is.available()>0);
}while (true);

miLog.INFO( serviceName + " RESPUESTA : " + sbResult.toString());


Despues de varias pruebas, tampoco pudimos hacer andar esta forma, finalmente encontramos esta forma que realmente no es muy linda, pero bueno ya estamos muy jugados con el tiempo, se probo y anda asi que asi quedo:



do
{

do
{
inputChar= is.read();
if (inputChar!=-1)
sbResult.append((char) inputChar);
if(inputChar==3)
break;
}while (is.available()>0);
if(inputChar==3)
break;
}while (true);

miLog.INFO( serviceName + " RESPUESTA DUCATI: " + sbResult.toString());

domingo, 5 de julio de 2009

Como instalar el entorno de GWT en eclipse.

Bueno en este caso voy a mostrar como instalar el enterno de GWT Standar en la pc y el plugin de eclipse.

Antes que nada una breve introduccion a que es GWT:

Gwt es un framework de google que sirve para hacer aplicaciones WEB con la tecnologia AJAX.
Basicamente la potencia y la gracia de gwt para la comunidad java es que, que todo el framework esta compuesto de librerias java (JAR) que sirven para programar aplicaicones web AJAX en codigo java, que luego va a ser compilado por el compilador de GWT a javascript.
Se programa bajo el entorno java, se debuggea en java y se hace todo lo que te imagines que se pueda hacer en java (obviamnete siempre programando con las librerias de GWT) y luego todo ese codigo java, se compila a un o varioas archivos .JS .HTML etc.... compilando todo codigo java a javascript en vez de a bytecode.
Es por eso que esta tecnologia se combina de una manera sorprendente y perfecta con el lenguaje java.

Basicamente eso es lo que es GWT bueno y cualquier cosa para mas info http://code.google.com/intl/es-AR/webtoolkit/

Bueno una vez echa la pequeña introduccion voy a pasar a explicar como se instala el framework GWT Standar de google.

Bueno la cosa es asi:

1 - En esta URL :
http://dl.google.com/eclipse/plugin/3.4

2 - Con ese url nos vamos al eclipse( por las dudas comento que estoy usando
el eclipse 3.4 ganymede), vamos al menu help->software updates y seleccionamos la
opcion Avaiable software y ahi en add site ponemelos el url que die en el punto 1.

3- Bueno ahi nos va a buscar todas las cosas para instalar via eclipse, y nos van a aparecer 3 cosas.
El jdk de google, el app engine de google, y el plugin para eclipse, bueno le damos click a todo y instalamos todos.
Una vez que esta todo instalado reinciamos el eclipse para que los cambios tomen efecto.

Bueno con eso ya estaria todo listo como para empezar a programar en GWT,
Fijate que para ver que todo este correctamente instalado en la barra de eclipse de arriba te tendrian que aparecer tres iconitos nuevos con los logos de google.

La proxima voy a poner como hacer una pequeña aplicacion con gwt standar.

NOTA IMPORTANTE: Si intentan istalar todas las herramientas en el nuevo eclipse galileo, no van a poder porque todavia la gente de goolge no adapto los plugins a esta nueva release de eclipse, asi que no se gasten en instalarla.

miércoles, 29 de abril de 2009

TIMEZONE en java

Bueno voy a explicar.. o a comentar masomenos la experiencia que tuve yo a la hora de encontrarme con el tema de los timezone y lo que yo entiendo por los timezone.

En primer lugar cabe destacar que el mundo tiene diferentes usos horarios.. todo parte del GMT-00 y luego se va moviendo para la derecha o para la izquierda restando o incremetando horas.
Es decir el GMT-00 que si no me equivoco seria londres, tiene una determinada hora supongamos en con las 6 pm.
en caso de movernos para el Oeste osea para Argentina por ejemplo ese gmt se va a ir restando es decir...
Argentina tiene un GMT-03 osea que se restarian 3 horas a el gmt-00 por lo cual si en el gmt-00 son las 6 pm, en argentina serian las 3 pm.

Llendo a lo relativo a JAVA.

la maquina virtual de java tiene seteada tambien una hora con su respectivo uso horario, que siempre toma la del sistema.

Osea si tenemos seteado el windows o linux, en argentina con una determinada hora y el huso horario america/buenos aires, vamos a tener seteada por defecto a la maquina virtual en gmt-03.

Entonces que pasa si estoy trabajando con una aplicacion, con la cual yo necesito manejarme con un uso horario distinto?
Por ejemplo quiero guardar en la BD siempre en GMT-0, porque se que despues esa BD va a ser accedida de distntos paises, que luego van a hacer las conversiones necesarias para pasar ese horario a su GMT correspondiente segun el pais.

Bueno en ese caso, entra en juego la clase de java TIMEZONE.
Que se usa de la siguiente manera.

//vamos a crear el timezone que queramos, en este caso queremos un timezone 00
TimeZone tz = TimeZone.getTimeZone("GMT-00");

//Voy a crear un objeto Calendar para poder manejar las fechas con un calendario y a este
//calendar en particular le voy a setear el timezone creado antes con gmt-0
Calendar cal = Calendar.getInstance(tz);

Bien hata aca todo barbaro, pero lo que nos fataria ahora seria formatear o representar
el horario de nuestra hora en gmt-00

Para eso hacemos lo siguiente.

// Obtengo un objeto DateFormat y le seteo tambien el gmt-0
DateFormat formater = DateFormat.getDateTimeInstance();
formater.setTimeZone(TimeZone.getTimeZone("GMT-0"));

Ya etamos en condiciones de imprimir la hora y fecha en gmt-0 o guardarla en la BD:

Imprimir:

System.out.println(formater.format( cal.getTime() );

Guardarlo en la BD

guardar(new Date( formater.format( cal.getTime())));


Una vez tuve un problema para guardar en la BD con el :
guardar(new Date( formater.format( cal.getTime())));

No se si sera porque el new Date esta deprecated o que, pero por las dudas para solucionar eso, se puede crear otro formater, y decirle en que formato se quiere la fecha ej:

SimpleDateFormat formater2 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

y despues en vez de poner esta linea:

guardar(new Date( formater.format( cal.getTime())));

utilizo esta:

guardar(formater2.parse( formater.format( cal.getTime())));





Bueno espero que se haya entendido!