Linux

You are currently browsing the archive for the Linux category.

En un post anterior se explicaba como acceder a una base de datos desde OpenOffice, generar documentos con los datos obtenidos de la base de datos y cómo un documento obtenido así presentaba una numeración de página con saltos. Los saltos se deben a que el documento se entiende como un conjunto de documentos independientes puestos juntos, sin embargo, a veces esto no nos interesa y necesitamos resetear el contador de páginas para obtener una paginación normal. Para eso usaremos una macro en Basic.

Reseteo del número de página

Para restear ese cambio de numeración de página habría que ponerse en el principio del primer párrafo tras el salto de página que queremos cambiar. Nos metemos en “Formato”->”Párrafo…” y, en la pestaña “Flujo de texto” vemos que en el apartado salto hay marcado un salto de página y el recuadro de “Con estilo de página”, un estilo de página (normalmente “Predeterminado”) y “número de página” con un valor de 1. Si ponemos 0 en este valor ya no se produce el salto en la numeración de página.

Pero claro, esto esta muy bien si son pocos los documentos combinados. ¿Qué hacer si son muchos?

Macro para resetear el número de página

Tras mucho buscar encontré un macro para hacer esto en este hilo del foro de usuarios de OpenOffice. El macro ya adaptado para que funcione directamente es el siguiente:

Sub Main
Dim document As Object
document = ThisComponent
Dim oTextEnum As Object
Dim oTextElement As Object
Dim oTextPortionEnum As Object
Dim oTextPortion As Object
 
oTextEnum = document.Text.createEnumeration
 
While oTextEnum.hasMoreElements() REM iterate through paragraphs and tables
     oTextElement = oTextEnum.nextElement()
   If oTextElement.supportsService("com.sun.star.text.Paragraph") Then
      oTextPortionEnum = oTextElement.createEnumeration()
      While oTextPortionEnum.hasMoreElements()
         oTextPortion = oTextPortionEnum.nextElement()
         If oTextPortion.PageNumberOffset = 1 Then
            oTextPortion.PageNumberOffset = 0
         End If
      Wend
 
   End If
Wend
 
End Sub

Espero que a alguien le pueda servir y que no tenga que buscar tanto como yo una solución para algo que debería ser sencillo.

Tags: , , ,

OpenOffice dispone de un entorno de ejecución de macros. Para este entorno se pueden elegir distintos lenguajes como BeamShell, JavaScript, Python y una versión de Basic. Todos estos lenguajes parece que se acaban basando en un modelo de software denominado UNO. A UNO también se puede acceder desde otros lenguajes externos.

Para realizar alguna tarea repetitiva y tediosa decidí usar macros y dentro de estos macros me decanté por usar Basic ya que pensé que podría ser apropiado para las tareas sencillas que tenía que hacer. Por lo poco que he podido ir viendo hay más de una forma de hacer las cosas pero ninguna de ellas me ha parecido intuitiva ni evidente. La documentación que he encontrado me parece relativamente pobre y se echa mucho en falta una descripción más detallada de los métodos disponibles. Muchas veces la única forma de avanzar es por ensayo y error (al menos hay un pequeño debuger en la herramienta de edición de macros) y a veces se encuentran fallos bastante difíciles de explicar. Por lo que he visto, muchas veces la forma más fácil de encontrar algo es preguntando en el foro, esto puede ser un problema si tienes plazos.

En este punto es donde he notado dos detalles: a) la documentación sobre macros parece estar hecha por desarrolladores y para desarrolladores y b) después de todo el recorrido que lleva OpenOffice esta parte es claramente mejorable. Esto es lo que me lleva a pensar que quizás el estricto control de Sun retrasara el desarrollo de OpenOffice porque no es normal que en un programa tan usado y tan útil haya esas carencias tan evidentes (en este campo).

Algunos enlaces interesantes sobre macros:

Foros donde encontrar ayuda:

Tags: , ,

Una de los detalles más útiles de las últimas versiones de OpenOffice es que dispone de un gestor de base de datos. Este gestor se puede usar como interfaz sencilla entre un motor de bases de datos como PostgreSQL o MySQL y los otros programas de la suite. Al conectar y registrar una base de datos se puede acceder a las distintas tablas, vistas y consultas desde, por ejemplo, el writer. Esto nos permite insertar campos de las tablas en nuestros documentos e incluso crear distintos documentos con “datos personalizados”.

Conectar con una base de datos

Para conectar con una base de datos existente hay que un documento de “Base de datos” nuevo. Al principio se abrirá un asistente en el que elegiremos “conectar con una base de datos existente”. Aquí tenemos muchas interfaces para fuentes de datos a las que conectarnos: JDBC, Oracle JDBC, dBase, Texto (¡permite acceder incluso a datos en formato csv!), Hoja de cálculo, ODBC. En el caso de trabajar con un Mac incluso nos podemos conectar a la libreta de direcciones. Si lo tenemos instalado también aparecerá una interfaz nativa para conectarnos a bases de datos MySQL.

Con la interfaz nativa yo me he encontrado con el problema de no poder aislar la base de datos concreta que quiero usar de las demás a las que tengo acceso. Normalmente teniendo Java instalado una buena opción es instalar el controlador JDBC para MySQL o para el tipo de base de datos que vayamos a utilizar (por ejemplo PostgreSQL). Otra opción que también funciona, sobre todo si trabajamos con Windows, es instalar  y usar el controlador ODBC apropiado. Esta redundancia en los interfaces de conexión puede ser muy útil en el caso de que alguno de las interfaces no nos funcione.

En el caso de una base de datos MySQL podemos elegir la opción MySQL y después “conectar usando JDBC” (Si usamos directamente la opción JDBC la clase será: “com.mysql.jdbc.Driver”). Introducimos los parámetros para la conexión y el nombre de la base de datos y pulsamos “siguiente>>”. En la siguiente pantalla introducimos el nombre de usuario y la contraseña y probamos que la conexión funciona con el botón “Conexión de prueba”. La última pantalla tiene una de las opciones más interesantes que es la de registrar la base de datos en OpenOffice.org, esto nos permite después acceder a ella desde las otras aplicaciones (al contrario de lo que el nombre sugiere el registro no tiene nada que ver con mandar datos a OpenOffice.org).

Ya tenemos la base da datos registrada y, dependiendo de nuestros permisos, podemos manipularla o leerla desde el programa de gestión. Una limitación es que nos limitamos en cuanto a funcionalidad al mínimo común denominador entre todas las bases de datos, algo que es casi ineludible en un programa de uso general como este. Una de las cosas más interesante es que además podemos usar la base de datos desde otras aplicaciones si la hemos registrado.

Bases de datos desde writer

En writer podemos usar los valores almacenados en la base de datos. Podemos crear informes detallados con nuestro propio formato en el que sustituyamos algunas zonas por los datos de una tabla. Por ejemplo, si tuviéramos una tabla con datos de las facturas podríamos generar todas las facturas que queramos como documentos.

Los campos se introducen en “Insertar”->”Campos”->”Otros…” en la pestaña “Bases de datos” con la opción “Campos de combinación de correspondencia”. También se pueden insertar usando el botón “Fuentes de Datos” de la barra de herramientas y arrastrando el nombre de la columna de una tabla a su posición en el documento.

Si queremos obtener simplemente una combinación de fichas con los datos de una tabla habría que hacer lo siguiente:

Creamos nuestra plantilla e insertamos los campos a sustituir con uno de los dos métodos explicados anteriormente. Abrimos “Herramientas”->”Asistente para combinar correspondencia”. Aquí pasamos directamente al apartado 7 “Personalizar documento” pues se supone que ya tenemos todos los pasos anteriores hechos (incluida la inserción de los campos a sustituir). Después en el apartado 8 elegimos “Guardar documento combinado” y debajo “Guardar como documento único” y pulsamos “Guardar documentos”.

En mi versión de OpenOffice aparte de guardarse el documento con el nombre elegido también se crea un documento idéntico sin nombre que se mantiene abierto para editar y, el archivo abierto de la propia plantilla también cambia de nombre a veces (¿error o característica?). En este caso yo cierro y vuelvo a abrir el documento guardado para evitar confusiones.

El problema que aparece aquí es que el documento combinado presenta unos saltos de página especiales en los que se resetea el contador de páginas. Esto es muy útil cuando en realidad se trata de documentos separados dentro de un documento maestro contenedor, por ejemplo, un montón de cartas individuales dentro de un documento o diferentes facturas. Pero es un problema a la hora de hacer, por ejemplo, un documento general con fichas de datos, en el que se quiera mantener una numeración normal. En una próxima entrada veremos como solucionar esto.

Tags: ,

La suite ofimática OpenOffice es en la actualidad un digno competidor de Microsoft Office con la gran ventaja de ser software libre. Además se apoya en estándares abiertos que han sido aprobados por ISO (ISO/IEC 26300) sin ningún proceso sospechoso. El OpenDocument, aparte de generar menos dudas que el formato OOXML de Microsoft, puede ser manipulado en la práctica por varios programas como Google Docs o el propio Microsoft Office y, si se usa OpenOffice, el coste del software es nulo aparte de totalmente legal.

En los últimos tiempos han aparecido algunas dudas sobre el futuro de OpenOffice tras la adquisición de Sun, la empresa que promovía su desarrollo, por Oracle. Esto ha sido el detonante de la creación de la bifurcación denominada LibreOffice, una implementación que, por el momento, es prácticamente una copia de OpenOffice pero que posiblemente tenga mucho que decir en el futuro. Es posible que el control estricto que ejercía Sun sobre el desarrollo de OpenOffice y la obligación de ceder el Copyright a la hora de contribuir al proyecto frenaran su desarrollo.

OpenOffice es una gran herramienta que está en continuo desarrollo, la comunidad de usuarios parece muy involucrada y siempre dispuesta a ayudar. Las nuevas herramientas de bases de datos lo hacen cada vez más potente aunque se encuentran en sus primeras fases de desarrollo y no disponen de todas las características que se esperan aún. En próximas entradas voy a explicar como he solucionado algunos de los problemas que me he ido encontrando al usar OpenOffice.

Tags: ,

Lo primero que pensé cuando supe que iba a haber una versión nueva de KDE (yo por aquel entonces usaba KDE 3.4) usando las librerías Qt4 pensé: “que bien, la potencia de KDE combinada con las nuevas funcionalidades de Qt4”. Bastantes años ya después sigo esperando un KDE 4 que cumpla con aquel pensamiento.

No sé lo que pasó exactamente, cómo uno de los mejores escritorios que había en el momento llegó a quedarse tan atrás en cuanto a usabilidad. A día de hoy el escritorio de KDE ha cambiado de tal forma que es casi irreconocible con respecto al de KDE 3. Hay numerosos cambios en la forma de interactuar con el escritorio. El nuevo menú de inicio es posiblemente más funcional que el anterior pero no se por que razón siempre acabo más tiempo del necesario con el ratón sobre él con despliegues y repliegues automáticos en momentos en los que no los necesito. El navegador por defecto ahora es Dolphin, todavía no he encontrado una manera sencilla para volver a usar Konqueror por defecto. Con Konqueror era capaz de exprimir toda la potencia de KDE al usar los kio-slaves (pienso que una de las utilidades más potentes de KDE que lo ponen por encima de sus rivales) para acceder a todo tipo de recursos a la vez que, con el emulador de consola, manejaba los archivos manualmente. El panel de control ha aumentado en complejidad aunque los apartados están muy bien delimitados. También aparecen los plasmoides, Phonon, Nepomuk y alguna que otra mejora o tecnología novedosa. Sin embargo lo que más cambia a primera vista es el aspecto del escritorio.

El escritorio es ahora muy transparente, todo está suavizado y hay muchos efectos visuales. Esto, que puede ser muy bonito y llamativo en principio, se convierte en una pesadilla al usar equipos con recursos limitados o máquinas virtuales. Aunque los efectos visuales se pueden desactivar, el escritorio ya no es igual de llamativo y, sinceramente, se pierde un poco el sentido de tanta transparencia. Los nuevos iconos están muy elaborados, también los de los punteros del ratón. En el caso de los punteros del ratón se me ha hecho complicado poder elegir otros alternativos (que no sean solo un trivial cambio de color) que no se maten con el resto del escritorio, de hecho todavía no los he encontrado.

Por último, lo más desesperante de esta nueva versión son los fallos. Sí, aún a estas alturas sigue habiendo fallos que me recuerdan a los que había hace 10 años con las primeras versiones de KDE 2. Paneles que se abren y se cierran en un bucle infinito dependiendo de su posición en la pantalla, despliegues y repliegues automáticos indeseados de algún menú (quizás esto sea una característica en lugar de un fallo), paneles que fallan y desaparecen sin previo aviso. Todos estos fallos son los que hacen que aún no dé el salto a KDE 4 y me mantenga con KDE 3 y planteándome si pasarme a GNOME en un futuro. Los detalles que hacían potentísimo a KDE han quedado diluidos debajo de una maraña de accesorios visuales que hacen que el nuevo KDE parezca un producto de investigación de nuevas tecnologías (no depuradas) en lugar de una herramienta estable y fiable.

Quizás con su inclusión por defecto en la nueva versión de Debian se arreglen algunos de los problemas que le encuentro. En fin, le daré un numero de versión más de margen con la esperanza de no tener que cambiar a otro escritorio.

Tags: , ,

Es difícil pregonar las virtudes de Linux cuando uno se encuentra con comportamientos por defecto en las distribuciones del mismo tipo de los que le hicieron abandonar otro conocido sistema operativo. La última actualización de Ubuntu ha resultado en desastre total y la posible pérdida de un usuario.

Normalmente utilizo Linux para trabajar, específicamente Debian. En el fondo, aparte de una opción personal, es una obligación ya que muchos de los programas que uso solo están disponibles para sistemas UNIX y, en algunos casos, solo en Linux. Aún así trabajar habitualmente con un sistema estable que hace lo que quiero y que además tiene todas las ventajas del software libre es un placer. También sé que he dado con una distribución que es perfecta para eso, trabajar sin sorpresas. La famosa estabilidad de Debian en comparación con otras distribuciones y sistemas operativos se convierte en un requisito indispensable cuando se usa en tareas críticas. ¿Quién no recuerda los famosos pantallazos azules de la muerte en el momento menos oportuno? He pasado por muchas de las otras distribuciones de Linux y cada una ha tenido su momento, tienen sus virtudes y sus problemas. He de reconocer que la facilidad de instalación y de uso de Ubuntu junto con el soporte que le da su comunidad la hacen una distribución perfecta para adentrarse en el mundo de Linux. Pero…

Una amiga me pidió que le instalara un Linux porque tenía mucha curiosidad al verme trabajar con Linux y hacer ciertas tareas con facilidad. Me decidí a ayudarle a instalar Ubuntu 9.04. Solo le tuve que ayudar en la parte de las particiones. Pensé que sería una buena opción para empezar ya que es fácil de usar y detecta sin problemas todo el hardware con las opciones por defecto. Y así fue, todo funcionó bien al principio y hubo mucha alegría.

Hace poco apareció la nueva versión de Ubuntu, la versión 9.10. En el dialogo de actualización de la Ubuntu 9.04 aparece un rectángulo bien grande arriba en donde pregunta si se quiere actualizar a la versión 9.10. No sé de quién sería la idea, supongo que pretenden que todos los usuarios “disfruten” de las bondades del nuevo lanzamiento. La cuestión es que mi amiga pulso el botón creyendo que era una actualización normal. El programa se descargo varios cientos de Mb de paquetes y después tuvo al ordenador medio bloqueado (actualizando, claro) durante cerca de una hora. Y, para colmo, al finalizar aparece un cuadro de dialogo diciendo que la actualización no se había realizado correctamente y que el sistema había quedado en estado inestable.

El enfado fue tremendo. Ya sé que en el fondo ella le dio a la opción de actualizar la versión pero, ¿Es necesario que todo el mundo se actualice a la última versión del S.O.? ¿No os recuerda a otro Sistema Operativo? No sé a que viene esa opción de actualizar a la última versión en el cuadro de dialogo principal del gestor de actualizaciones. Al menos no entiendo que no informe sobre que quiere decir eso y las consecuencias que puede tener. Y, lo que es más importante, ¿Tiene esa actualización que fallar estrepitosamente? Me ahorro los comentarios pero creo que llevar a los usuarios de versión en versión y de fallo en fallo es un error que me sigue recordando a los cometidos por otro sistema operativo. También puede que esté equivocado y en realidad no sea un fallo sino una estrategia, al fin y al cabo a otros les ha ido muy bien esa forma de actuar antes.

Tags: , ,

En las versiones de Google Earth para linux puede aparecer un problema con las fuentes. En algunos casos las fuentes se ven muy pequeñas y con un aspecto pixelado. Se puede solucionar parcialmente el problema aumentando el tamaño de las fuentes. En este post intento mostrar un remedio que ha funcionado para mi Debian Etch y Google Earth 5.0.11337.1968 (beta) pero que podría funcionar para otras distribuciones también.

La versión 5 de Google Earth usa las librerías Qt4. Para evitar problemas con las dependencias incluyen las librerías con la aplicación y, de alguna manera, esto hace que las fuentes se vean mal. La solución que encontré en este post fue la siguiente:

  • Nos aseguramos de tener instaladas las librerias Qt4 y sus programas de configuración con aptitude, apt-get, synaptic, instalado a mano, compilándolas o de nuestra forma favorita.
  • Entramos en el directorio de instalación de Google Earth, que en mi caso es ~/.google-earth pero podría ser /usr/local/google-earth o alguno equivalente.
  • Editamos el archivo qt.conf que se encuentra allí y añadimos las siguientes líneas:
[Paths]
Documentation=/usr/share/doc
Libraries=/usr/lib
Plugins=/usr/lib/qt4/plugins/imageformats
Translations=/usr/share/qt4/translations
  • Ejecutamos qtconfig-qt4 y en la pestaña “Fonts” cambiamos la propiedad “Point Size” a un valor más grande, por ejemplo, 12.

Cuando volvamos a iniciar Google Earth seguiremos teniendo las fuentes con un aspecto pixelado (parece que no funciona el antialiasing) pero de un tamaño mayor que las hace más legibles.

Tags: , ,

Newer entries »