Con este sencillo codigo podemos cargar un script de visual basic, desde Java, puede ser util para ciertas migraciones de sistemas o para embeber codigo previo en aplicaciones Java.
Vamos que me ha parecido util, al menos.
Visual en Java:
String cmd;
cmd = "C:\\ruta\\de\\script\\VB\\Script.vbs";
//cmd = "C:/ruta/de/script/VB/Script.vbs";
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(cmd);
}catch(Exception ex) {
System.err.println("Error cargandoloading script: " + ex.toString());
}
lunes, 16 de agosto de 2010
domingo, 18 de julio de 2010
Android es una buena copia
El título es quiza, un poco ofensivo hacia el sistema operativo de moviles del gigante de los buscadores, Google, no prentedo que este post sea un ataque frontal, sino dar mi opinión discutible al respecto.
Seguro que ya se me ha visto el plumero, que voy a decir que Android es solo una copia del iOS de los de la manzana, pero no quiero decir eso, o al menos no solo eso.
Creo que Android aunque esta lleno de grandes ideas y una funcionalidad muy buena, es un intento de luchar contra un gran sistema operativo como es el de Apple, en mi humilde opinión, pese a las carencias del iOS tiene una gran ventaja a la hora de ser criticado, es que fue el primero en crear un sistema de navegación táctil que casi cualqiera es capaz de usar, es intuitivo y facil, a la par que un sistema agradable al uso y a la vista. Su gran ventaja es que ha simplifcado la forma de funcionar con un movil, llamar, colgar o escribir un SMS es tan facil como siempre has querido que sea y al mismo tiempo a juntado en un movil toda la funcionalidad on-line de terminales más potentes y avanzadas, incluso ha alcanzado en lo que a navegación se refiere a otros dispositivos portatiles como los UMPC (que sintiendolo mucho por lo que se los han comprado, para mi solo son un navegador de internet y un presentador de diapositivas muy caro)
En los últimos tiempos he escuchado mucho, quiza demasiado esta especie de lucha de calidad entre Android y iOS (que si este es mejor, que si este otro), pero a lo que me refiero con el título es que para mi Apple llego primero e hizo un gran producto y a posteriori y aprovechando la experienza de unos, Google lanza un SO que posiblemente aventaja en algunos aspectos a el primer iOS y copia en todo lo bueno (y por el camino copia algunas cosas que no me gustan), tengo que considerar que Android preparo antes la multitarea en sus dispositivos, o al menos era usable antes que en los IPhones.
Aunque para mi, el mayor copia-pega es la tienda on-line, es claramente la gallina de los huevos de oro, iTunes es un monstruo dificil de controlar (a nivel de usuario), lleno de posibilidades y opciones y los markets que han montado tanto Google, como Nokia o Sony, seguro que alguno más lo ha montado y no soy consciente, pero me parece que son meros intentos de aprovechar el tiron de la AppleStore, aunque seria de necios no admitir su tamaño y repercusion.
Seguro que las lineas de arriba, levantan algunas tensiones con los más enforecidos defensores del SO del robotito, pero no es mi intención ofender sino generar un debate, asi que ya sabeis si sentis que erro en algo, no dudeis en dar un poco de caña en los comentarios.
Todavia falta por ver, como fucniona el criticado Ihpone 4 en el mercado Español.
Seguro que ya se me ha visto el plumero, que voy a decir que Android es solo una copia del iOS de los de la manzana, pero no quiero decir eso, o al menos no solo eso.
Creo que Android aunque esta lleno de grandes ideas y una funcionalidad muy buena, es un intento de luchar contra un gran sistema operativo como es el de Apple, en mi humilde opinión, pese a las carencias del iOS tiene una gran ventaja a la hora de ser criticado, es que fue el primero en crear un sistema de navegación táctil que casi cualqiera es capaz de usar, es intuitivo y facil, a la par que un sistema agradable al uso y a la vista. Su gran ventaja es que ha simplifcado la forma de funcionar con un movil, llamar, colgar o escribir un SMS es tan facil como siempre has querido que sea y al mismo tiempo a juntado en un movil toda la funcionalidad on-line de terminales más potentes y avanzadas, incluso ha alcanzado en lo que a navegación se refiere a otros dispositivos portatiles como los UMPC (que sintiendolo mucho por lo que se los han comprado, para mi solo son un navegador de internet y un presentador de diapositivas muy caro)
En los últimos tiempos he escuchado mucho, quiza demasiado esta especie de lucha de calidad entre Android y iOS (que si este es mejor, que si este otro), pero a lo que me refiero con el título es que para mi Apple llego primero e hizo un gran producto y a posteriori y aprovechando la experienza de unos, Google lanza un SO que posiblemente aventaja en algunos aspectos a el primer iOS y copia en todo lo bueno (y por el camino copia algunas cosas que no me gustan), tengo que considerar que Android preparo antes la multitarea en sus dispositivos, o al menos era usable antes que en los IPhones.
Aunque para mi, el mayor copia-pega es la tienda on-line, es claramente la gallina de los huevos de oro, iTunes es un monstruo dificil de controlar (a nivel de usuario), lleno de posibilidades y opciones y los markets que han montado tanto Google, como Nokia o Sony, seguro que alguno más lo ha montado y no soy consciente, pero me parece que son meros intentos de aprovechar el tiron de la AppleStore, aunque seria de necios no admitir su tamaño y repercusion.
Seguro que las lineas de arriba, levantan algunas tensiones con los más enforecidos defensores del SO del robotito, pero no es mi intención ofender sino generar un debate, asi que ya sabeis si sentis que erro en algo, no dudeis en dar un poco de caña en los comentarios.
Todavia falta por ver, como fucniona el criticado Ihpone 4 en el mercado Español.
jueves, 24 de junio de 2010
Etiqueta logic de Struts en JSP
Después de un tiempo apartado del blog, trabajo y falta de tiempo libre que dedicar, creo que con el tiempo la cantidad de post irá bajando en el tiempo, aunque espero que aumente la calidad de los mismos.
Voy a volver con una entrada acerca de JSP o mejor dicho de Struts y la etiqueta logic:
Esta etiqueta sirve para realizar cláusulas de tipo “if”, se inserta el código dentro de la JSP, entre el código html, script o <%%>, el funcionamiento es sencillo, existen varios tipos de condiciones que se representan por etiquetas, equal, empty, notEmpty etc, puedes encontrarlas todas aquí.
También pueden crearse if-else de la siguiente manera, es quizá un poco curioso el sistema, pero útil, si la propiedad tiene el valor, se hace una acción y sino, se hace otra, el sino, es que la propiedad no sea igual al mismo valor que el anterior, quizá no sea muy ortodoxo, pero se consigue un if-else.
<logic:equal property="propiedad" value="valor">
Accion/es
</logic:equal>
<logic:notEqual property="propiedad" value="valor">
Accion/es
<l/ogic:notEqual>
Otra cláusula interesante de struts y JSP, es iterate, que sirve para recorrer Arrays dentro de la JSP.
<logic:iterate property="lista" indexId="indice">
Aquí dentro se recorre la lista con la id y donde podemos acceder a sus elementos con las properties
</logic:iterate>
Una de las más usadas (al menos por mi) es la cláusula logic:notEmpty que sirve para comprobar que no este vacío un valor, por ejemplo al recorrer una lista, esto es muy útil para no encontrarnos tablas descuadradas por falta de datos o diferentes problemas posibles asociados a gestionar un campo que puede estar vacío o ser nulo:
<logic:notEmpty property="valorDeLista">
Pintar el valorDeLista
</logic:notEmpty>
Bueno que como regreso para hacer los post un poco más largos, no está mal.
Voy a volver con una entrada acerca de JSP o mejor dicho de Struts y la etiqueta logic:
Esta etiqueta sirve para realizar cláusulas de tipo “if”, se inserta el código dentro de la JSP, entre el código html, script o <%%>, el funcionamiento es sencillo, existen varios tipos de condiciones que se representan por etiquetas, equal, empty, notEmpty etc, puedes encontrarlas todas aquí.
También pueden crearse if-else de la siguiente manera, es quizá un poco curioso el sistema, pero útil, si la propiedad tiene el valor, se hace una acción y sino, se hace otra, el sino, es que la propiedad no sea igual al mismo valor que el anterior, quizá no sea muy ortodoxo, pero se consigue un if-else.
<logic:equal property="propiedad" value="valor">
Accion/es
</logic:equal>
<logic:notEqual property="propiedad" value="valor">
Accion/es
<l/ogic:notEqual>
Otra cláusula interesante de struts y JSP, es iterate, que sirve para recorrer Arrays dentro de la JSP.
<logic:iterate property="lista" indexId="indice">
Aquí dentro se recorre la lista con la id y donde podemos acceder a sus elementos con las properties
</logic:iterate>
Una de las más usadas (al menos por mi) es la cláusula logic:notEmpty que sirve para comprobar que no este vacío un valor, por ejemplo al recorrer una lista, esto es muy útil para no encontrarnos tablas descuadradas por falta de datos o diferentes problemas posibles asociados a gestionar un campo que puede estar vacío o ser nulo:
<logic:notEmpty property="valorDeLista">
Pintar el valorDeLista
</logic:notEmpty>
Bueno que como regreso para hacer los post un poco más largos, no está mal.
sábado, 1 de mayo de 2010
Programación de mapas en Java
Los mapas, son una estructura de pares de atributo clave-valor, son muy útiles para el uso de información estructurada, y vamos a ver un par de ejemplos sencillos, y uno un poco más ocmplejo, donde podemos observar su funcionalidad y sus grandes ventajas.
Lo primero entender como funcionan, es decir, como se recuperan datos de un mapa y como se almacenan datos ne un mapa.
declarar:
Map<String, Objeto> mapa;
inicializar:
map = new TreeMap<String, Objeto>();
introducir datos:
mapa.put("clave",objeto);
Sacar datos:
mapa.get(clave);
Después ver como pueden sernos útiles como memoria cache de una base de detos, que podría ser un uso de los mapas.
Aqui, sería tan sencillo como alamcenar todos los datos de una consulta SQL, recorriendo el ResultSet, algo parecido a esto:
While(rs.next){
//Crear objeto de la consulta.
Objeto x = new Objeto(rs.getString(1), rs.getInt(2), rs.getString(3));
//Introducirlo en el mapa
mapa.put(x.id, x);
}
Así tendriamos almacenado todos los datos de la tabla que hubieramos consultado en el mapa, y para darselos a un cliente o interfaz, podríamos usar el mapa, en vez de consultas a la base de datos, lo que es más rápido que entar a la base de datos para cada cosa que se necesite.
Y por último estructuras complejas, como mapas de listas o mapas de mapas, esto va en honor a Ingeniería del Software.
Declarar:
Map<String, Map<String, Objeto>> DobleMapa;
Inicializar:
DobleMapa = new TreMap<String, Map<String, Objeto>>();
Para meter datos en un objeto de este tipo, hace falta pensar que necesitas introducir un mapa, en cada clave del mapa, lo que parece recursivo, pero no lo es, ejemplo teniendo en cuanta el mapa del anterior punto:
//el mapa introducido es el mapa sencillo de antes que tenia los datos de la base de datos.
DobleMapa.put("Clave", mapa);
De esta manera, tendriamos tantos mapas con información, como tablas hubieramos consultado con objetos del tipo que hayamos selecconado, y los tendriamos estructurados con claves diferentes para cada una de las tablas en las que están almacenados los datos.
Para otro post, mezclar, mapas, y bases de datos con Hibernate, para tener objetos java, que se consultan directamente ala base de daots y además estan almacenados en Mapas. Suena muy friki, pero a ver como queda.
Lo primero entender como funcionan, es decir, como se recuperan datos de un mapa y como se almacenan datos ne un mapa.
declarar:
Map<String, Objeto> mapa;
inicializar:
map = new TreeMap<String, Objeto>();
introducir datos:
mapa.put("clave",objeto);
Sacar datos:
mapa.get(clave);
Después ver como pueden sernos útiles como memoria cache de una base de detos, que podría ser un uso de los mapas.
Aqui, sería tan sencillo como alamcenar todos los datos de una consulta SQL, recorriendo el ResultSet, algo parecido a esto:
While(rs.next){
//Crear objeto de la consulta.
Objeto x = new Objeto(rs.getString(1), rs.getInt(2), rs.getString(3));
//Introducirlo en el mapa
mapa.put(x.id, x);
}
Así tendriamos almacenado todos los datos de la tabla que hubieramos consultado en el mapa, y para darselos a un cliente o interfaz, podríamos usar el mapa, en vez de consultas a la base de datos, lo que es más rápido que entar a la base de datos para cada cosa que se necesite.
Y por último estructuras complejas, como mapas de listas o mapas de mapas, esto va en honor a Ingeniería del Software.
Declarar:
Map<String, Map<String, Objeto>> DobleMapa;
Inicializar:
DobleMapa = new TreMap<String, Map<String, Objeto>>();
Para meter datos en un objeto de este tipo, hace falta pensar que necesitas introducir un mapa, en cada clave del mapa, lo que parece recursivo, pero no lo es, ejemplo teniendo en cuanta el mapa del anterior punto:
//el mapa introducido es el mapa sencillo de antes que tenia los datos de la base de datos.
DobleMapa.put("Clave", mapa);
De esta manera, tendriamos tantos mapas con información, como tablas hubieramos consultado con objetos del tipo que hayamos selecconado, y los tendriamos estructurados con claves diferentes para cada una de las tablas en las que están almacenados los datos.
Para otro post, mezclar, mapas, y bases de datos con Hibernate, para tener objetos java, que se consultan directamente ala base de daots y además estan almacenados en Mapas. Suena muy friki, pero a ver como queda.
martes, 27 de abril de 2010
3 Aplicaciones de Software Libre para recuperar datos perdidos
Diskgetor Aplicación para recuperar datos borrados del disco duro, ojo, no recupera datos de discos rotos o corruptos, solo los borrados, es decir, la aplicación lee los datos "desapuntados" por los indices de los discos duros, de tal forma que los ficheros que se borraron, todavía pueden ser legibles en el disco duro.
data recovery tools Quizá es una aplicación antigua, pero que puede dedicarse a buscar ficheros en diferentes formatos dentro del disco duro, una vez más solo recupera datos borrados del disco duro.
hdrecover Este si es un recuperador de discos duros dañados, se trata de una aplicación que puede retocar los sectores dañados de un disco duro, los resultados, que se pueden obtener, no son siempre perfectos y dependiendo del daño que pueda tener el disco duro, se podrá recuperar datos de discos duros que estaban rotos antes de empezar
data recovery tools Quizá es una aplicación antigua, pero que puede dedicarse a buscar ficheros en diferentes formatos dentro del disco duro, una vez más solo recupera datos borrados del disco duro.
hdrecover Este si es un recuperador de discos duros dañados, se trata de una aplicación que puede retocar los sectores dañados de un disco duro, los resultados, que se pueden obtener, no son siempre perfectos y dependiendo del daño que pueda tener el disco duro, se podrá recuperar datos de discos duros que estaban rotos antes de empezar
lunes, 26 de abril de 2010
Java Portable
Publico enlace a Java portable, como prometí, podeis encontrarlo aquí
La explicación de como instalarlo y como hacerlo funcionar está en la página que enlazo, y por todo aquello de no repetir todo lo alli publicado, pues no lo voy a traducir que está en inglés.
La idea básica es la misma que con el caso del compilador de C++ portable, instalarlo en un penDrive y supongo que para poder compilar java, habrá que incluirlo en una ruta sin espacios, para poder enlazar la variable de entorno y poder hacer java javac o jar en la consola de comandos para poder ejecutar o compilar el código o construir los jars executables. Está versión permite también ejecutar los jars creados en java.
Eso que ya era hora de actualziar de nuevo el blog con algo de contenido, que he estado muy alejado últimamente.
La explicación de como instalarlo y como hacerlo funcionar está en la página que enlazo, y por todo aquello de no repetir todo lo alli publicado, pues no lo voy a traducir que está en inglés.
La idea básica es la misma que con el caso del compilador de C++ portable, instalarlo en un penDrive y supongo que para poder compilar java, habrá que incluirlo en una ruta sin espacios, para poder enlazar la variable de entorno y poder hacer java javac o jar en la consola de comandos para poder ejecutar o compilar el código o construir los jars executables. Está versión permite también ejecutar los jars creados en java.
Eso que ya era hora de actualziar de nuevo el blog con algo de contenido, que he estado muy alejado últimamente.
sábado, 10 de abril de 2010
Ingeniería inversa con eclipse Java2UML
Pequeña entrada, para que no se me olvide esto de escribir en el blog, que llevo unos días, que no escribo nada, esto de las vacaciones...
Esta entrada va sobre como conseguir que Eclipse, ese IDE de Open Source, que se puede utilizar para desarrollar Java, nos haga todos los diagramas que podemos sacar del cogidogo Java en UML, diagrama de clases, y las relaciones entre ellos, como usan unos de otros, y sobre todo la herencia entre ellos, bien represenada, y tal, para ello, podemos hacer uso de dos páginas que en su momento a mi me dieron muchísima ayuda, y para no repetir todo lo que ya está allí alojado, dejo los enlaces.
Explicación paso a paso
El plugin
Ojo, para hacer funcionar el segundo plugin respetar las versiones de eclipse, debe ser la 3.2 enlace a la version
Entradas relacionadas de UML en este blog:
agregación vs composición
Clase asociativa
Esta entrada va sobre como conseguir que Eclipse, ese IDE de Open Source, que se puede utilizar para desarrollar Java, nos haga todos los diagramas que podemos sacar del cogidogo Java en UML, diagrama de clases, y las relaciones entre ellos, como usan unos de otros, y sobre todo la herencia entre ellos, bien represenada, y tal, para ello, podemos hacer uso de dos páginas que en su momento a mi me dieron muchísima ayuda, y para no repetir todo lo que ya está allí alojado, dejo los enlaces.
Explicación paso a paso
El plugin
Ojo, para hacer funcionar el segundo plugin respetar las versiones de eclipse, debe ser la 3.2 enlace a la version
Entradas relacionadas de UML en este blog:
agregación vs composición
Clase asociativa
Suscribirse a:
Entradas (Atom)