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.

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.

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 ;)

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 ;).

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.

jueves, 26 de febrero de 2009

Visor de PDFs Foxit Reader

Saludos a tod@s!!
Por fin me he decantado por crear una nueva entrada en el post, ya que desde mis comienzos he visto como las obligaciones abarcaban todo mi tiempo de manera desproporcionada, impidiendo escribir un poco sobre aquello en que estoy trabajando.

Este post es mas que nada para recomendar un visor de PDFs que he encontrado por la red y que gracias a su rapidez he podido olvidarme del Okular que viene por defecto en el Kubuntu. Por cierto, debo decir que por fin he dado el salto y me he cambiado a GNU/Linux.

Simplemente voy a especificar dos cosas que son importantes en este visor de PDFs. La primera es que es muy, pero que muy rapido a la hora de abrir los archivos, segun he leido un 300% mas rapido que el de adobe y por lo que he visto garantizo esa rapidez. La segunda y mas importante es muy facil de utilizar, ya que su interface es muy simple. La simplicidad es un detalle que cuesta de encontrar, por lo menos para mis gustos.

Para instalarlo simplemente hay que descargarlo desde su web, agregarle permisos de ejecución
chmod +x FoxitReader10_Linux_enu_i386.sh
y ejecutar el script como root
sudo ./FoxitReader10_Linux_enu_i386.sh
. Por último debes especificar que la aplicacion por defecto de lectura de PDFs sea Foxit Reader, sino continuaras con tu viejo y lento visos.

Si no sois usuarios de Kubuntu / ubuntu podéis acceder a la web para buscar la version que se amolde a vuestro S.O..

Inicialmente fue creado para Windows, pero a dia de hoy se ha pasada a GNU Linux, sabia elección.

Y con esto me despido, espero poder agregar nueva información muy pronto.

sábado, 10 de enero de 2009

Leer del Puerto Serie con Windos Vista y Java

En esta primera entrada voy a hablarles de como leer del Puerto Serie utilizando el windows Vista y Java.
En un principio Java dispone de su libreria JavaComm para poder manipular el Puerto Serie, pero ¿que pasa cuando tienes que leer del Serie con un Windows Vista? Pues facil, esta libreria no da soporte a Windows y entonces tienes que buscarte la vida hasta que encuentres la libreria RXTX. Imagino que pueden haber muchas mas pero es la unica que he encontrado multiplataforma (Solaris, Linux, MacOS, Windows,.. ) y con licencia GPL 2.1. (Siempre intentare guiarme por proyectos GPL, aunque en esta ocasión he empezado utilizando el Vista por cuestiones de trabajo).

Lo primero que hay que hacer es descargarse los binarios necesarios de la propia WikiWeb. Una vez con el archivo, se descomprime y encontraremos una carpeta con las librerias para la utilización del puerto de cada plataforma, junto con RXTXcomm.jar que es el contenedor de la librería que se utilizara en el proyecto para jugar con el puerto.

Pasos a seguri:
  1. Agregar el fichero rxtxSerial.dll (esta en la carpeta Windows) en la carpeta donde se encuentren los binarios del JRE. En mi caso c:\archivos de programa\java\jre-version\bin
  2. Cargar en nuestro proyecto del Netbeans la librería con las funciones para manipular dicho puerto (RXTXcomm.jar). En el caso de que quisiéramos tener por defecto instalada esta librería, bastaria co agregar el archivo RXTXcomm.jar en el directorio jre-version\lib\ext.
Ahora ya solo falta crear el programa que andamos buscando, esa parte es al gusto del consumido.

Dos ultimos detalles bastante importantes.
Primero, una vez que tengamos el proyecto creado y compilado, tendremos que añadir el archivo rxtxSerial.dll al directorio raíz del proyecto, en el caso de utilizar NetBeans sería NombreProyecto\dist.
Segundo y último, si fuera necesario, para nuestra mejor comprensión, en la WikiWeb del proyecto hay disponibles unos ejemopos bastante utiles que ayudarán a superar esos primeros pasos que siempre cuestan tanto.





Iniciando la busqueda de la Luz en la Oscuridad

Saludos a tod@s.

Empiezo mi andadura en el mundo de los Blogs para intentar poner a disposición de la gente los conocimientos que puede llegar a conseguir, sean los que sean.

Mas que nada, espero que la información que pueda aportar en este blog pueda servir de ayuda, tal y como me han servido a mi tantos blogs como he visitado a lo largo de estos años.

Gracias por vuestra visita.