bueno, bueno...
Hace bastante que no añado ninguna entrada en el blog, no por que no haga interesante sino por que no estoy teniendo mucho tiempo para poder documentar aquellas cosas que hago.
La verdad es que de tanto en tanto apetece añadir algo para no dejar la costumbre de tener un pequeño lugar donde dejar o compartir tus trabajos. Es por esto que os dejo la primera parte de un curso de iniciación a java que he impartido esta semana.
Tengo que decir que es el primer curso que he dado, sin tener en cuenta las "pocas" presentaciones que haya tenido que hacer por temas de clase, mejor no comentar nada de ellas ajaja, y nada creo que puedo estar contento de mi mismo por como lo he llevado.
En resumen, a qui tenéis el PDF de la primera parte:
Primera parte Curso básico de Java
Nos vemos en futuras entradas ;=)
viernes, 16 de abril de 2010
sábado, 6 de febrero de 2010
Hibernate Tools para eclipse
Hola de nuevo.
Después de un tiempo metido en mi torre de babel estudiando como cualquiera he sacado un poco de tiempo para preparar un pequeño manual que hice para la empresa en la que estoy trabajando.
El manual trata de explicar como se puede instalar y utilizar el plugin de Hibernate para Eclipse. La verdad es que antes de que me solicitarán el manual desconocía por completo el potencial de este plugin, pero ahora debo decir que es de gran utilidad.
Para la gente que conoce del funcionamiento de Hibernate, aunque sea a un nivel muy básico (mi caso) se dará cuenta de lo sencillo que se hace la tarea de mapear tablas una vez se ha configurado correctamente el Plugin.
Lo principal de todo es que les sirva para agilizar el trabajo, ya que incluye ejemplos de los procedimientos mas básicos que se puedan realizar cuando se trabaja con Hibernate y ademas explica como realizar de manera mas sistemática estos procedimientos.
Bueno les dejo el tutorial en esta URL:
Tutorial Hibernate Tools
Espero que sea de ayuda.
Un saludo.
Después de un tiempo metido en mi torre de babel estudiando como cualquiera he sacado un poco de tiempo para preparar un pequeño manual que hice para la empresa en la que estoy trabajando.
El manual trata de explicar como se puede instalar y utilizar el plugin de Hibernate para Eclipse. La verdad es que antes de que me solicitarán el manual desconocía por completo el potencial de este plugin, pero ahora debo decir que es de gran utilidad.
Para la gente que conoce del funcionamiento de Hibernate, aunque sea a un nivel muy básico (mi caso) se dará cuenta de lo sencillo que se hace la tarea de mapear tablas una vez se ha configurado correctamente el Plugin.
Lo principal de todo es que les sirva para agilizar el trabajo, ya que incluye ejemplos de los procedimientos mas básicos que se puedan realizar cuando se trabaja con Hibernate y ademas explica como realizar de manera mas sistemática estos procedimientos.
Bueno les dejo el tutorial en esta URL:
Tutorial Hibernate Tools
Espero que sea de ayuda.
Un saludo.
jueves, 29 de octubre de 2009
Hace tiempo que estoy muy aburrido del contenido de la televisión, que decir de los super programas del famoseo que nos comemos todos los días sin comerlo ni veverlo. Por eso hoy leyendo algunas entradas de blogs he encontrado una solución al estilo recycling.
La idea es utilizar una vieja maquina como equipo reproductor, tanto de audio como de vídeo y además controlandolo todo con el dispositivo móvil. La verdad, vale la pena darle un vistazo al trabajo que ha realizado elJojo.
Super cancho
Montaje del sistema
Un saludo.
La idea es utilizar una vieja maquina como equipo reproductor, tanto de audio como de vídeo y además controlandolo todo con el dispositivo móvil. La verdad, vale la pena darle un vistazo al trabajo que ha realizado elJojo.
Super cancho
Montaje del sistema
Un saludo.
jueves, 22 de octubre de 2009
Lotus symphony la suite office de IBM
El tema de este nuevo post esta dirigido a la suite que tiene IBM para la ofimatica.
Hace unos días que he entrado en una empresa a ejercer como profesional y así colaborar en la reducción de paro, que ya va siendo hora que este holocausto del siglo XXI termine ya.
A lo que iba, después de una semana de haciendo ejercicios de prueba para conocer el entorno me toco hacer un poco de trabajo duro, como decirlo, pues documentar un apartado del proyecto en el que voy a trabajar. El documento que he tenido que editar era un .odt (formato del Open Office) y las alternativas que tenia para editarlo eran Open Office u Open Office, debido a que el Office XP no es compatible con el .odt .
Googleando un poco llegue a una web en la que comentaban la aparición de esta suite como alternativa, competitiva y gratuita, al Office de Microsoft, ya que todos hemos trasteado un poco con Open Office y sabemos que no es la crem de la crem.
Para empezar Lotus Symphony esta compuesta por un solo programa que utiliza las pestañas para abrir las hojas de texto, hojas de calculo, presentaciones o un navegador, sí!! un navegador que soporta java, javascript, videos del youtube y demás cosas. El uso de pestañas facilita tener todos los documentos juntos y además tener un acceso rápido a tu contenido.
La suite es muy fácil de utilizar, ademas de tener un entorno gráfico muy sencillo e intuitivo, cuando empiezas a trabajar con ella te das cuenta de lo simple que es utilizarla. En la parte superior encuentras las barras de tareas con los elementos mas comunes y además dispones de un panel en el que puedes consultar fácilmente opciones para modificar o mejorar tu trabajo, no tienes que perderte por infinitos menus buscando y buscando.
Permite abrir cualquier tipo de documento tanto de Office, de OpenOffice o del propio Lotus Symphony, garantizando la compatibilidad entre las diferentes extensions, incluyendo del Office 2007. El formato del Symphony esta avalado por la ODF (Open Document Format), este estándar de extensiones libre permite al usuario librarse de licencias y acuerdos. Dispones de la posibilidad de exportar a PDF o también de instalar complementos o aplicaciones que faciliten nuestro trabajo.
Por último, destacar que no tiene nada que envidiarle al Office, que es un software gratuito y multiplataforma, que mas se puede pedir.
Para descargar el soft lo único que hay que hacer es acceder a este enlace a IBM y con un registro previo elegir para que plataforma lo queremos.
Hasta nuevas entradas.
Hace unos días que he entrado en una empresa a ejercer como profesional y así colaborar en la reducción de paro, que ya va siendo hora que este holocausto del siglo XXI termine ya.
A lo que iba, después de una semana de haciendo ejercicios de prueba para conocer el entorno me toco hacer un poco de trabajo duro, como decirlo, pues documentar un apartado del proyecto en el que voy a trabajar. El documento que he tenido que editar era un .odt (formato del Open Office) y las alternativas que tenia para editarlo eran Open Office u Open Office, debido a que el Office XP no es compatible con el .odt .
Googleando un poco llegue a una web en la que comentaban la aparición de esta suite como alternativa, competitiva y gratuita, al Office de Microsoft, ya que todos hemos trasteado un poco con Open Office y sabemos que no es la crem de la crem.
Para empezar Lotus Symphony esta compuesta por un solo programa que utiliza las pestañas para abrir las hojas de texto, hojas de calculo, presentaciones o un navegador, sí!! un navegador que soporta java, javascript, videos del youtube y demás cosas. El uso de pestañas facilita tener todos los documentos juntos y además tener un acceso rápido a tu contenido.
La suite es muy fácil de utilizar, ademas de tener un entorno gráfico muy sencillo e intuitivo, cuando empiezas a trabajar con ella te das cuenta de lo simple que es utilizarla. En la parte superior encuentras las barras de tareas con los elementos mas comunes y además dispones de un panel en el que puedes consultar fácilmente opciones para modificar o mejorar tu trabajo, no tienes que perderte por infinitos menus buscando y buscando.
Permite abrir cualquier tipo de documento tanto de Office, de OpenOffice o del propio Lotus Symphony, garantizando la compatibilidad entre las diferentes extensions, incluyendo del Office 2007. El formato del Symphony esta avalado por la ODF (Open Document Format), este estándar de extensiones libre permite al usuario librarse de licencias y acuerdos. Dispones de la posibilidad de exportar a PDF o también de instalar complementos o aplicaciones que faciliten nuestro trabajo.
Por último, destacar que no tiene nada que envidiarle al Office, que es un software gratuito y multiplataforma, que mas se puede pedir.
Para descargar el soft lo único que hay que hacer es acceder a este enlace a IBM y con un registro previo elegir para que plataforma lo queremos.
Hasta nuevas entradas.
miércoles, 2 de septiembre de 2009
Runtime.exec con espacios en blanco para mysqldump
En esta entrada vamos a tratar un tema que me ha llevado varios días de cabeza. Les comento un poco para que se pongan en situación.
Estoy terminando una aplicación para la gestión de una clínica, es por eso junto con que era verano por lo que me he cogido un largo descanso con el blog, y de vuelta al cole me he encontrado con que necesitaba realizar copias de seguridad desde mi aplicación y a poder ser automáticamente, para que el cliente solo deba indicar la carpeta de destino. La aplicación la he realizado con Java y trabaja contra una base de datos MySQL, ya se que con el MySQLAdministrator es muy facil hacer copias pero los clientes solo quieren tener cosas practicas.
Googleando un poco pude comprobar que simplemente necesitaba ejecutar una serie de comandos junto con el PATH del fichero desde el metodo exec de Runtime:
--> Runtime().getRuntime().exec("mysqldump -h HOST -u ...-r PATH_FICHERO")
¿¿¿Cual ha sido mi sorpresa??? Pues cuando ya funcionaba correctamente y conseguía almacenar las copias de seguridad descubrí que si el directorio tenia espacios en blanco los comandos que recibia mysqldump se desordenaban después de la variable que contenía el PATH.
El problema reside en que el metodo exec(string) realiza una llamada a la clase StringTokenizer para obtener un vector con cada uno de los parametros, para ejecutar el metodo exec(nom_comando, vector_parametros[]). Este vector se compone de todas las palabras del String que esten separadas por espacios en blanco y por lo tanto si el PATH contiene alguno lo divide en dos partes como si la segunda fuera otro parámetro nuevo.
Despues de varios intentos intentando acertar como insertar los parámetros para que funcionase correctamente decidí implementar mi solución:
Primero, identificar que posición ocupa la variable que almacenara el PATH con posibles espacios. En mi caso ocupa el último lugar: dest.getCanonicalPath() (/home/pato_donald/copia seguridad)
String cnd = "mysqldump -h" + host + " -u" + user + " -P" + puerto + " -p" + pass + " -B base_datos" +"-r"+ dest.getCanonicalPath();
Segundo, convertir la cadena en un vector de tokens
StringTokenizer st = new StringTokenizer(cnd);
Tercero, realizar un bucle para que añada los tokens en el vector de Strings[] que debe recibir "exec".
int i=0;
while (st.hasMoreTokens()) {
coma[i]=st.nextToken() ;
System.out.println(coma[i] +" n:" + i);
i++;
}
Cuarto y final, modifica la posición del vector que debe contener el PATH con el espacio en blanco.
coma[7]= "-r"+ dest.getCanonicalPath();
String cnd = "mysqldump -h" + host + " -u" + user + " -P" + puerto + " -p" + pass + " -B base_datos" +"-r"+ dest.getCanonicalPath();
StringTokenizer st = new StringTokenizer(cnd);
String[] coma = new String[st.countTokens()+1];
int i=0;
while (st.hasMoreTokens()) {
coma[i]=st.nextToken() ;
System.out.println(coma[i] +" n:" + i);
i++;
}
coma[7]= "-r"+ dest.getCanonicalPath();
Process dumpProcess = Runtime.getRuntime().exec(coma);
Despues de ejecutar esto, el resultado del println sería:
mysqldump
-h127.0.0.1
-uUSER
-P3306
-pPASSWORD
-B
base_datos
-r/home/pato_donald/copias seguridad
Y la ejecución del metodo "exec" se realizaría correctamente sin la alteración de los paramteros.
Espero que les sirva de ayuda tanto como me ha servido a mí.
Un saludo ;)
Estoy terminando una aplicación para la gestión de una clínica, es por eso junto con que era verano por lo que me he cogido un largo descanso con el blog, y de vuelta al cole me he encontrado con que necesitaba realizar copias de seguridad desde mi aplicación y a poder ser automáticamente, para que el cliente solo deba indicar la carpeta de destino. La aplicación la he realizado con Java y trabaja contra una base de datos MySQL, ya se que con el MySQLAdministrator es muy facil hacer copias pero los clientes solo quieren tener cosas practicas.
Googleando un poco pude comprobar que simplemente necesitaba ejecutar una serie de comandos junto con el PATH del fichero desde el metodo exec de Runtime:
--> Runtime().getRuntime().exec("mysqldump -h HOST -u ...-r PATH_FICHERO")
¿¿¿Cual ha sido mi sorpresa??? Pues cuando ya funcionaba correctamente y conseguía almacenar las copias de seguridad descubrí que si el directorio tenia espacios en blanco los comandos que recibia mysqldump se desordenaban después de la variable que contenía el PATH.
El problema reside en que el metodo exec(string) realiza una llamada a la clase StringTokenizer para obtener un vector con cada uno de los parametros, para ejecutar el metodo exec(nom_comando, vector_parametros[]). Este vector se compone de todas las palabras del String que esten separadas por espacios en blanco y por lo tanto si el PATH contiene alguno lo divide en dos partes como si la segunda fuera otro parámetro nuevo.
Despues de varios intentos intentando acertar como insertar los parámetros para que funcionase correctamente decidí implementar mi solución:
Primero, identificar que posición ocupa la variable que almacenara el PATH con posibles espacios. En mi caso ocupa el último lugar: dest.getCanonicalPath() (/home/pato_donald/copia seguridad)
String cnd = "mysqldump -h" + host + " -u" + user + " -P" + puerto + " -p" + pass + " -B base_datos" +"-r"+ dest.getCanonicalPath();
Segundo, convertir la cadena en un vector de tokens
StringTokenizer st = new StringTokenizer(cnd);
Tercero, realizar un bucle para que añada los tokens en el vector de Strings[] que debe recibir "exec".
int i=0;
while (st.hasMoreTokens()) {
coma[i]=st.nextToken() ;
System.out.println(coma[i] +" n:" + i);
i++;
}
Cuarto y final, modifica la posición del vector que debe contener el PATH con el espacio en blanco.
coma[7]= "-r"+ dest.getCanonicalPath();
String cnd = "mysqldump -h" + host + " -u" + user + " -P" + puerto + " -p" + pass + " -B base_datos" +"-r"+ dest.getCanonicalPath();
StringTokenizer st = new StringTokenizer(cnd);
String[] coma = new String[st.countTokens()+1];
int i=0;
while (st.hasMoreTokens()) {
coma[i]=st.nextToken() ;
System.out.println(coma[i] +" n:" + i);
i++;
}
coma[7]= "-r"+ dest.getCanonicalPath();
Process dumpProcess = Runtime.getRuntime().exec(coma);
Despues de ejecutar esto, el resultado del println sería:
mysqldump
-h127.0.0.1
-uUSER
-P3306
-pPASSWORD
-B
base_datos
-r/home/pato_donald/copias seguridad
Y la ejecución del metodo "exec" se realizaría correctamente sin la alteración de los paramteros.
Espero que les sirva de ayuda tanto como me ha servido a mí.
Un saludo ;)
lunes, 8 de junio de 2009
Liberar modem Huawei E220
Salutaciones de nuevo a todo el personal.
Después de estar casi un mes y poco mas preparándome para los exámenes finales he conseguido un poco de tiempo para colgar un trabajito que me parece bastante interesante. Trata sobre la liberación del Modem USB Huawei E220.
En la actualidad sigue siendo bastante usado, yo adquirí uno el verano pasado, necesitaba tener internet en la playa como cualquier persona normal.
Pues bien, me propusieron un trabajo sobre tecnologías de red y como no se me ocurría que hacer decidí documentar todo el proceso de liberación de este módem, que también conlleva la eliminación del tope de velocidad (esto aun no lo he verificado, pero puedo decir que en los comentarios de los foros hay gente que si que lo ha notado bastante).
En este trabajo que les adjunto esta disponible una guía de como liberalizar el dispositivo junto con los programas que he necesitado para hacerlo. Prácticamente es una recopilación de toda la información que hay en diferentes paginas de la red, de las que he recopilado mi propia versión, junto con las configuraciones necesarias para las compañías mas importantes.
Como no, yo lo tengo liberalizado y en funcionamiento.
documentación
Espero que les sirva tanto como a mí.
Un saludete ;).
Después de estar casi un mes y poco mas preparándome para los exámenes finales he conseguido un poco de tiempo para colgar un trabajito que me parece bastante interesante. Trata sobre la liberación del Modem USB Huawei E220.
En la actualidad sigue siendo bastante usado, yo adquirí uno el verano pasado, necesitaba tener internet en la playa como cualquier persona normal.
Pues bien, me propusieron un trabajo sobre tecnologías de red y como no se me ocurría que hacer decidí documentar todo el proceso de liberación de este módem, que también conlleva la eliminación del tope de velocidad (esto aun no lo he verificado, pero puedo decir que en los comentarios de los foros hay gente que si que lo ha notado bastante).
En este trabajo que les adjunto esta disponible una guía de como liberalizar el dispositivo junto con los programas que he necesitado para hacerlo. Prácticamente es una recopilación de toda la información que hay en diferentes paginas de la red, de las que he recopilado mi propia versión, junto con las configuraciones necesarias para las compañías mas importantes.
Como no, yo lo tengo liberalizado y en funcionamiento.
documentación
Espero que les sirva tanto como a mí.
Un saludete ;).
sábado, 28 de marzo de 2009
Subversion con Netbeans en la maquina local
Saludos a tod@s de nuevo.
Ultimamente me he metido en un proyecto bastante complejo como para tener que ir realizando cambios constantemente. Lo primero que he comprobado es que no puedo estar haciendo copy paste de mi carpeta /src, por eso me he montado un servidor de subversion en local para poder satisfacer con tranquilidad todas las modificaciones que desee.
Por cierto, esta explicacion va dirigida a combinar SVN con Netbeans en una maquina local.
Lo primero que hay que hacer es instalar los paquetes necesarios:
#sudo aptitude install subversion subversion-tools
En muchas explicaciones que hay por la web observareis que se puede combinar el SVN con apache para tener un acceso vía web, yo no voy a entrar en esos terrenos pantanosos, mi acceso sera vía protocolo "file://" ya que voy a trabajar en mi maquina local.
Ahora nos creamos una carpeta que sera la encargada de almacenar todos nuestros repositorios, yo he elegido mi /home para almacenarla, gustos colores...
# mkdir /home/jose/SVN
Agregamos el directorio al SVN para que tenga constancia de que en esa carpeta se almacenarán los repositorios.
#svnadmin create $HOME/SVN
Es importante dejar claro que esta configuración simplemente esta realizada para un usario, ya que por eso lo he agregado a mi /home. En caso de tener que dar servicio a diferentes usuarios de la misma maquina se tendría que dar permisos de Lectura y Escritura para que puedan realizar los cambios necesarios sin ningún impedimento.
Vale, vale, hasta este punto todo iba por consola, que tampoco ha sigo mucho la verdad, ahora pasamos a la configuración del netbeans. Que prácticamente son dos cosillas.
Primero de todo arrancamos el netbeans. Una vez lo tenemos en marcha nos dirigimos hacia el menú "vesioning" --> "subversion" --> "checkout". Aparecerá un panel con una barra la cual se le tiene que agregar la dirección donde esta alojado el SVN. Como nosotros lo tenemos en local utilizaremos el protocolo "file://" + la direccion "/home/jose/SVN" = "file:///home/jose/SVN"

(lo podeis ver en la imagen 1).
Luego le damos a siguiente (Next), y encontraremos un formulario donde podemos indicar que repositorio queremos cargar, eso ya es cosa de vosotros cargar un repositorio o si no teneis ninguno como mínimo podéis indicar la que carpeta que almacenará la copia de las versiones que van a ser manipuladas.

Weno, weno, ahora ya solo falta crear un proyecto nuevo y importarlo al SVN. Para ello solo hay que seleccionar el proyecto, "versioning"--> "subversion" --> "importar into repositorio".
Hasta aquí llega mi explicación de hoy, espero que ahora tengas un mínimo de memoria y cuando realicéis algún cambio radical antes realicéis una copia de seguridad con SVN.
Ultimamente me he metido en un proyecto bastante complejo como para tener que ir realizando cambios constantemente. Lo primero que he comprobado es que no puedo estar haciendo copy paste de mi carpeta /src, por eso me he montado un servidor de subversion en local para poder satisfacer con tranquilidad todas las modificaciones que desee.
Por cierto, esta explicacion va dirigida a combinar SVN con Netbeans en una maquina local.
Lo primero que hay que hacer es instalar los paquetes necesarios:
#sudo aptitude install subversion subversion-tools
En muchas explicaciones que hay por la web observareis que se puede combinar el SVN con apache para tener un acceso vía web, yo no voy a entrar en esos terrenos pantanosos, mi acceso sera vía protocolo "file://" ya que voy a trabajar en mi maquina local.
Ahora nos creamos una carpeta que sera la encargada de almacenar todos nuestros repositorios, yo he elegido mi /home para almacenarla, gustos colores...
# mkdir /home/jose/SVN
Agregamos el directorio al SVN para que tenga constancia de que en esa carpeta se almacenarán los repositorios.
#svnadmin create $HOME/SVN
Es importante dejar claro que esta configuración simplemente esta realizada para un usario, ya que por eso lo he agregado a mi /home. En caso de tener que dar servicio a diferentes usuarios de la misma maquina se tendría que dar permisos de Lectura y Escritura para que puedan realizar los cambios necesarios sin ningún impedimento.
Vale, vale, hasta este punto todo iba por consola, que tampoco ha sigo mucho la verdad, ahora pasamos a la configuración del netbeans. Que prácticamente son dos cosillas.
Primero de todo arrancamos el netbeans. Una vez lo tenemos en marcha nos dirigimos hacia el menú "vesioning" --> "subversion" --> "checkout". Aparecerá un panel con una barra la cual se le tiene que agregar la dirección donde esta alojado el SVN. Como nosotros lo tenemos en local utilizaremos el protocolo "file://" + la direccion "/home/jose/SVN" = "file:///home/jose/SVN"

(lo podeis ver en la imagen 1).
Luego le damos a siguiente (Next), y encontraremos un formulario donde podemos indicar que repositorio queremos cargar, eso ya es cosa de vosotros cargar un repositorio o si no teneis ninguno como mínimo podéis indicar la que carpeta que almacenará la copia de las versiones que van a ser manipuladas.
Weno, weno, ahora ya solo falta crear un proyecto nuevo y importarlo al SVN. Para ello solo hay que seleccionar el proyecto, "versioning"--> "subversion" --> "importar into repositorio".
Hasta aquí llega mi explicación de hoy, espero que ahora tengas un mínimo de memoria y cuando realicéis algún cambio radical antes realicéis una copia de seguridad con SVN.
Suscribirse a:
Entradas (Atom)