Archive for the ‘Software libre’ Category

h1

Chat de vídeo de Google Talk en OpenSUSE

28 septiembre 2010

Aunque Google ya proporciona un paquete RPM, supuestamente para dar soporte de manera sencilla a la videoconferencia en OpenSUSE, la realidad es que al final no es todo tan simple. El proceso inicial es el típico: la primera vez que intentemos iniciar el chat de voz/vídeo nos proporcionará un enlace desde el que descargar el paquete RPM. Sin embargo, cuando intentemos instalarlo avisará de que falta una dependencia libcrypto.so.10, que se encuentra dentro del paquete openssl.

Tras descargar este último (incluyendo también la versión de 32 bits si nuestro operativo es de 64), en lugar de instalar directamente el complemento de vídeo hay que crear dos enlaces simbólicos, porque a saber qué criterio de nombrado habrán utilizado en Google y por eso no encuentra la biblioteca que procede. Las órdenes son:

sudo ln -s /lib/libcrypto.so.1.0.0 /lib/libcrypto.so.10
sudo ln -s /lib/libssl.so.1.0.0 /lib/libssl.so.10

Ahora sí, podemos proceder a instalar el RPM, ignorando el error de dependencias que se muestre. Tras reiniciar el navegador ya deberíamos poder configurar los parámetros de la cámara 😀 Aviso de que a mí tampoco me funcionó a la primera, tuve que instalarlo primero en Chrome y después volver a probar desde Firefox. Tras este segundo intento ya funcionó sin problemas en ambos.

h1

Acceder como manager al Tomcat distribuido con Netbeans

25 marzo 2010

Entre las opciones de instalación de Netbeans se encuentra el servidor Tomcat, para el que configura un usuario administrador automáticamente (se puede ver junto a otros datos en Services » Servers » Apache Tomcat).

Si queremos añadir otro usuario un poco más fácil de recordar, ver las aplicaciones desplegadas, etc., debemos dirigirnos a nuestra carpeta persona » .netbeans en lugar de a la raíz de instalación global de Tomcat. Ningún cambio que hagamos en dicha raíz se reflejará si accedemos mediante la configuración por defecto de Netbeans.

Si queremos trabajar directamente sobre la instalación general de Tomcat, debemos añadir una nueva configuración de servidor en Services » Servers, y poner como carpeta base de Catalina la de dicha instalación.

h1

Incluir JAR propio en un repositorio Maven local

24 marzo 2010

Una de las principales ventajas de Maven es que gestiona las dependencias de los proyectos descargándolas a un repositorio local la primera vez que se necesiten. Sin embargo, posiblemente tengamos que incluir algunas a mano porque no estén disponibles en los repositorios “oficiales”, como me ocurrió con Qt Jambi (editado: hoy he descubierto que hay un repositorio independiente en Sourceforge para la versión Community). Después de dar vueltas buscando una solución, resultó estar en las FAQ de Maven 🙂

Para incluir un artefacto debemos ejecutar una orden donde indicar cuál es el archivo a subir, su groupId, artifactId, versión, tipo de empaquetado y si debe generar el POM (no veo ningún motivo para no hacerlo), utilizando una orden como la siguiente. Nota: Si tenemos el ejecutable de Maven en el PATH podemos colocarnos en la carpeta donde se encuentre el artefacto para no tener que escribir toda su ruta.

mvn install:install-file -Dfile=qtjambi-4.5.0_01.jar -DgroupId=qtjambi -DartifactId=qtjambi -Dversion=4.5.0_01 -Dpackaging=jar -DgeneratePom=true

En este caso concreto el groupId y el artifactId coinciden porque me pareció más coherente, ya que se trata del JAR principal para cualquier aplicación que utilice Qt Jambi. Si también fuésemos a incluir las distribuciones para Windows, Mac y Linux podríamos hacerlo dentro del mismo groupId pero con distinto artifactId, como en las siguientes órdenes:

mvn install:install-file -Dfile=qtjambi-win32-msvc2005-4.5.0_01.jar -DgroupId=qtjambi -DartifactId=qtjambi-win -Dversion=4.5.0_01 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=qtjambi-macosx-gcc-4.5.0_01.jar -DgroupId=qtjambi -DartifactId=qtjambi-mac -Dversion=4.5.0_01 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=qtjambi-linux32-gcc-4.5.0_01.jar -DgroupId=qtjambi -DartifactId=qtjambi-linux -Dversion=4.5.0_01 -Dpackaging=jar -DgeneratePom=true
Y con esto tenemos cuatro nuevos JAR en nuestro repositorio local, listos para ser utilizados desde cualquier proyecto Maven 😀

h1

Illegal mix of collations en procedimiento almacenado de MySQL

23 marzo 2010

En el trabajo he tenido que modificar el modelo de una base de datos MySQL para un proyecto ya casi terminado (benditos lusers que no saben cómo hacen lo que hacen), por lo que creé un par de procedimientos almacenados. En mi equipo funcionaban perfectamente, pero al probarlo en otro no hacía más que mostrar el error:

ERROR 1267 (HY000): Illegal mix of collations (utf8_spanish_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

El único punto del procedimiento donde podía ocurrir era en un where donde se comparaban dos longtext:

select id into errorid from errortecnico
where mensaje = errormensaje

Buscando y buscando encontré la inspiración en el blog de Pablo Viquez, un desarrollador de Costa Rica, con la única diferencia de que su problema ocurría con la codificación latin1.

La solución es convertir la parte del where que causa problemas a la collation (dentro de una codificación, la ordenación de caracteres) que nosotros usamos mediante la sentencia convert, que en mi caso quedaría tal que así:

select id into errorid from errortecnico where mensaje
= CONVERT(errormensaje using utf8) collate utf8_spanish_ci

Con esto, MySQL convertirá automáticamente el dato que interpretaba como utf8_general_ci a utf8_spanish_ci.

h1

Limitaciones de la API Criteria de Hibernate

19 marzo 2010

En el trabajo estoy utilizando la API Criteria para desarrollar un generador de informes, porque permite componer consultas dinámicamente sin tener que concatenar asquerosamente un montón de cadenas de texto. Por desgracia, aún tiene varias limitaciones que no están presentes si utilizamos HQL y que la deslucen un poco.

Lo peor de todo es que descubrirlas puede llevar bastante tiempo, así que por si Google indexa este post de manera que salga en alguna de las primeras entradas, al menos le habrá ahorrado tiempo a alguien xD Las limitaciones que he descubierto hasta ahora son:

  • Cruzar varias veces con la misma tabla (aunque a cada join se le asigne un alias distinto).
  • Restricciones/proyecciones con atributos multivaluados, representados mediante una CollectionOfElements. Para la versión 3.5.0 parece posible que al menos la primera parte del problema se solucione gracias a un parche.
h1

Crear un índice con enlaces en OpenOffice

23 febrero 2010

Aunque un índice normal ya facilita realizar búsquedas en un documento, si queremos acceder a un apartado en concreto es mucho mejor tener enlaces en sus entradas, que se activan con la combinación CTRL+clic. En un principio, el sistema que proporciona OpenOffice resulta más complejo que el de Microsoft Office (y con una interfaz nada intuitiva), pero también brinda más posibilidades de personalización.

Por el tamaño del tocho parece una tarea complicadísima pero es que la explico totalmente al detalle, en realidad son cuatro tonterías 🙂

Crear el índice

Para añadir un índice al documento, debemos utilizar la opción de menú Insertar » Índices » Índices. Uno de los valores en los que más hay que fijarse es el de Evaluar hasta nivel, porque serán los niveles del árbol de apartados que se nos muestren. Por ejemplo, si seleccionamos tres niveles se mostrarán las entradas 1, 1.1 y 1.1.1, pero no más allá. Según la complejidad del documento, 2-3 niveles suele ser lo más habitual.

Crear los enlaces

Podemos personalizar los enlaces en el cuadro de diálogo de creación del índice o, si lo preferimos, hacerlo después presionando el botón derecho del ratón sobre el índice y seleccionando la opción Editar índice/tabla del menú contextual.

En la pestaña Entradas el apartado que nos interesa es Estructura, donde se muestran cuatro pequeños botones: E#, E, T, #. Cada uno de ellos representa una parte de la línea que corresponde a cada entrada del índice (se puede ver en un cuadro emergente al pasar el ratón sobre ellos):

  • E# es el número de capítulo (1, 1.1, 1.1.1…)
  • E es el título del capítulo
  • T es la tabulación, es decir, los puntos que unen el título del capítulo con su número de página asociado
  • # es el número de página

Y entre cada uno se ve un recuadro en blanco. Podemos añadir un enlace a cualquier subconjunto de cada entrada: solo en el número y título de capítulo, solo en el número de página, en toda la línea, etc. Por comodidad, yo prefiero asociarlo a toda la línea. Para ello:

  1. Se selecciona el primer recuadro en blanco, antes de E#, y presionamos en botón Hiperenlace que se encuentra un poco más abajo. Debería aparecer un nuevo mini-botón antes de E# y, si pasamos el ratón sobre él, un cuadro emergente nos indicará que es el comienzo de un hiperenlace.
  2. Repetimos el proceso con el último recuadro en blanco, después de #. En este caso, la descripción es de final del hiperenlace.

De esta forma, seleccionando cada nivel del índice en la lista a la izquierda podemos aplicar un estilo de enlace distinto para cada uno, aunque sea un poco WTF. Como lo más coherente sería aplicar el mismo a todos, tenemos un fantástico botón Todo a la derecha de la barra de mini-botones. Si lo presionamos y después seleccionamos otro nivel distinto del actual, veremos cómo se han aplicado los cambios a todos ellos.

Fuente: Lista de discusión de OpenOffice en español

h1

Comunicarse con Windows Mobile en OpenSUSE usando SynCE

12 febrero 2010

El uso más habitual que le doy a mi PDA (con Windows Mobile) es ver vídeos en el camino al trabajo y, como ahora mismo solo tengo Windows instalado para jugar, una de las cosas que más pereza me da es tener que reiniciar para mover archivos del ordenador al móvil. La última vez que intenté comunicarla con Kubuntu 8.04 el resultado fue nulo pero ayer, tras instalar KDE SC 4.4, decidí probar también con esto y (por suerte) las cosas han cambiado 🙂

Para ello utilicé SynCE, que parece la alternativa más extendida para realizar esta tarea y además tiene una entrada dedicada exclusivamente a ella en la web de OpenSUSE.  El proceso completo, después del salto. Read the rest of this entry ?