Archive for 26 febrero 2010

h1

UnsupportedOperationException en array construido con Arrays.asList

26 febrero 2010

Si se intenta ejecutar un método add, remove, etc., sobre una lista construida mediante Arrays.asList se obtiene una UnsupportedOperationException. El motivo es que dicho método no crea una lista dinámica real (como sería un ArrayList) sino una vista para el array. Al seguir usando el mismo objeto que teníamos, por tanto, no se puede redimensionar.

La solución a este problema sería emplear un código como el siguiente para construir una lista dinámica real:

List lista = new ArrayList(Arrays.asList(array));

Fuente: Raja’s Weblog

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

Buscar texto en cualquier tipo de archivo en Windows XP

18 febrero 2010

La búsqueda por contenido incluida por defecto en Windows XP (no sé si en 7 es igual) apesta: solo permite buscar texto en archivos .txt, .doc, .xls y demás formatos de Microsoft. Si tienes una carpeta llena de archivos de código fuente puedes darte por muerto, salvo si lo configuras a mano.

Milagrosamente, por una vez la web de soporte de Microsoft sirve para algo 😮 Proporcionan dos métodos, el primero consistente en instalar una actualización, pero sigue manteniendo una lista de formatos limitada y el formato .po (utilizado en traducciones de gettext) no está reconocido, lo cual me fastidia bastante cuando estoy traduciendo una aplicación en Windows.

La segunda alternativa es configurar el sistema de búsqueda a costa de una penalización en el rendimiento que yo aún no he notado. Supongo que si eliges explorar todo el disco duro en lugar de una carpeta concreta será más agónico. Los pasos para ello son:

  1. Abrir la función de búsqueda, desde Inicio » Buscar o desde el botón Búsqueda en una vista de carpeta.
  2. Seleccionar Cambiar preferencias (la última opción) » Con Index Server (para búsquedas locales más rápidas) » Cambiar la configuración de Index Server (avanzada). No es necesario activar el Servicio de Index Server.
  3. En la barra de herramientas, hacemos clic en Mostrar u ocultar el árbol de la consola y, cuando se muestre el panel izquierdo, en Servicio de Index Server en equipo local (con el botón derecho) » Propiedades.
  4. En la pestaña Generación, marcamos la casilla Indizar archivos con extensiones desconocidas, cerramos el cuadro de diálogo y salimos de la consola. Cerramos la ventana actual del Explorador de Windows (es un poco cortito en temas de refresco 😛 ) y cuando la volvamos a abrir ya estará activada una búsqueda decente.

Fuente: Web de soporte de Microsoft

h1

Receta de galletas de mantequilla y chocolate

15 febrero 2010

Aunque casi sufro retrasos en pedidos por Internet siempre que ocurren los necesito para un regalo y, cómo no, para este San Valentín me faltó uno, así que tuve que lanzarme a por una alternativa un poco más casera y obesa, de la que solo pude aprovechar la mitad de la masa porque la otra mitad se quemó, snif xD Desde aquí, a toda esa gente que escribe recetas sin poner las cantidades exactas sino “una pizca”, “un cucharadita” y que tampoco indica la temperatura sino “horno medio”, ojalá os asen en horno medio y con una pizca de sal.

Volviendo a la receta, aquí va con datos exactos para los que somos de ciencias y n00bs.  Con estas cantidades salen algo más de dos docenas de galletas.

Ingredientes

  • 225 g. de mantequilla
  • 80 g. de azúcar blanco
  • 20 g. de azúcar avainillado
  • 50 g. de chocolate en polvo (vale Nesquik, no Colacao porque la textura es distinta)
  • 225 g. de harina
  • 5 g. de levadura (el equivalente a una cucharilla de postre)

Modo de preparación

Con la mantequilla a temperatura ambiente, batirla junto a los 100 g. de ambos azúcares combinados, hasta que la mezcla esté cremosa. Si tenemos problemas con que no termina de mezclarse y se nota la textura del azúcar podemos meterlo 10 segundos en el microondas (no más porque acabaremos con sopa de mantequilla).

Tamizar la harina con el chocolate en polvo y la levadura, e ir agregando poco a poco la mezcla a la mantequilla.

Precalentamos el horno a 170 ºC entre 5 y 10 minutos y mientras tanto enmantequillamos y enharinamos la bandeja para que no se pegue la masa.

Vamos haciendo bolitas con la masa (un diámetro de 2-3 centímetros para una galleta de tamaño medio-grande) y aplastándolas un poco con un tenedor, hasta dejarlas como de medio centímetro de grosor.

Las dejamos en el horno 10 minutos (yo las puse casi 15 porque la receta original recomendaba 20 y se pasaron un poco 😦 ) y, aunque nos parezca que pasado ese tiempo siguen blandurrias, las sacamos y las dejamos enfriar sin quitarlas de la bandeja. Una vez se enfríen también se habrán endurecido. Por si nos parecen un poco sosas a la vista podemos echarles un trocito de fruta (antes de meterlas al horno claro), azúcar glas…

Pues hale, todos a trabajar: ¡¡The kitchen, the kitchen, the kitchen’s on fire!!

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 ?

h1

Publicación de KDE SC 4.4 (y II)

10 febrero 2010

Tras comentar las principales novedades que incluye esta nueva versión del entorno de escritorio KDE, sigo con la lista asociada a las aplicaciones educativas, juegos y a la plataforma de desarrollo, que no he incluido en el post anterior porque considero que su ámbito de uso está más restringido y podrían no interesar a todo el mundo 🙂

Read the rest of this entry ?

h1

Publicación de KDE SC 4.4 (I)

10 febrero 2010

Si lo hice con el etiquetado, tenía que comentar forzosamente la publicación, ¿no? 🙂 Ayer de noche se liberó KDE SC 4.4 bajo el nombre en clave “Caikaku”. El anuncio oficial en español se puede leer aquí.

Por curiosidad, estuve buscando su significado y de paso encontré el de “Caizen”. En realidad, son dos palabras japonesas: kaizen se refiere a una mejora incremental o pequeña, y kaikaku a grandes cambios. ¿Cuáles son? A aquellos que les dé pereza leerse entera la guía visual (bastante más completa que el anuncio) se los doy resumidos y divididos por ámbito después del salto. Read the rest of this entry ?

h1

¡No estoy cegata!

9 febrero 2010

Tampoco es que tuviese ningún problema de visión últimamente, pero a través de Freak’s City descubrí una prueba de sensibilidad al color. Me he quedado bastante contenta con el resultado (a menor número mejor los distingues), para que luego digan que estar todo el día con el PC es malo 😛 Ahora solo me queda la duda de… ¡¿cómo demonios ha conseguido sacar alguien más de 43000 puntos?!

27 puntos en el test de ColorIQ

Hale, a tirar todos media hora con los cuadraditos xD

Editado: Tras ver cómo humillantemente todo el mundo sacaba menos de 20 puntos, decidí repetir la prueba en mi monitor de casa (el del trabajo es un poco suxante) y los resultados son bastantes mejores, ¡ea! Aunque también viene a confirmar que el cambio entre amarillo y verde es definitivamente mi punto débil.

h1

Encriptar la contraseña de conexión en hibernate.cfg.xml

5 febrero 2010

Por defecto, en el fichero de configuración de Hibernate se muestran en texto plano todos los datos de conexión, lo que evidentemente no resulta muy seguro en cuanto lo ponemos a disposición de los usuarios. Para encriptarlos de manera sencilla podemos utilizar la biblioteca Jasypt (Java Simplified Encryption), que también nos permite encriptar el contenido de la base de datos, aunque eso queda fuera del alcance de este post 🙂

En este caso, supongamos que solo vamos a encriptar la contraseña. Lo primero es generar este valor a partir de una clave mediante uno de los scripts BAT o SH que se incluyen en la distribución. Ejecutamos la orden encrypt.bat input=contraseña_a_encriptar password=clave_del_algoritmo y nos devolverá un resultado como el siguiente:

----ENVIRONMENT-----------------
Runtime: Sun Microsystems Inc. Java HotSpot(TM) Client VM 14.2-b01
----ARGUMENTS-------------------
input: mipass
password: foobar
----OUTPUT----------------------
j1BNruKrxJ9xy9u8e1GtBw==

El valor de salida será el que se escriba en el fichero hibernate.cfg.xml, pero antes nos quedan cosas por hacer. En el fichero donde esté mapeada la base de datos (en caso de usar anotaciones habrá que crear uno nuevo) incluimos la declaración del tipo del cifrador:

<hibernate-mapping>
      <typedef name="encrypted"
      class="org.jasypt.hibernate.type.EncryptedStringType">
            <param name="encryptorRegisteredName">
                  hibernateEncryptor</param>
      </typedef>
</hibernate-mapping>

En la clase donde se cree la SessionFactory de Hibernate (lo habitual es utilizar una llamada HibernateUtil) se asocia esta al cifrador antes declarado:

config = new AnnotationConfiguration().configure();

PBEStringEncryptor encryptor =
      new StandardPBEStringEncryptor();
// La clave se puede obtener consultar en web,
// en una variable del programa o de entorno...
encryptor.setPassword("foobar");
HibernatePBEEncryptorRegistry registry =
      HibernatePBEEncryptorRegistry.getInstance();

// Asignar el mismo nombre que en hibernate-mapping
registry.registerPBEStringEncryptor(
      "hibernateEncryptor", encryptor);

sessionFactory = config.buildSessionFactory();

Y ya es hora de tocar el fichero de configuración de Hibernate, añadiendo las siguientes líneas. Es importante escribir la contraseña encriptada entre paréntesis porque es el formato que utiliza Jasypt para diferenciar las cadenas encriptadas de las que viajan en plano.

<!-- Proveedor más simple de conexión encriptada,
también existe uno sobre C3P0 -->
<property name="connection.provider_class">
      org.jasypt.hibernate.connectionprovider.EncryptedPasswordDriverManagerConnectionProvider
</property>
<property name="connection.encryptor_registered_name">
      hibernateEncryptor
</property>
<property name="connection.password">
      ENC(j1BNruKrxJ9xy9u8e1GtBw==)
</property>

<!-- Fichero con el hibernate-mapping -->
<mapping resource="mapping.xml" />

Y con estos pocos pasos habremos mejorado un poquito la seguridad de nuestra aplicación 😀

h1

Etiquetado de KDE SC 4.4

5 febrero 2010

Este miércoles 3 se etiquetó la versión 4.4 de KDE SC para su publicación el próximo día 9, como se puede ver en la planificación oficial.

Para mí, como buena fanática de las pestañas y de agrupar ventanas, una de las novedades más reseñables me parecen las “ventanas en pestañas” (window tabbing en inglés), que permite agrupar varias ventanas en una sola, sean o no de la misma aplicación. La barra de título global contiene todas las de dichas ventanas, permitiendo suplir la carencia de pestañas en algunas aplicaciones (en Freetechie comentaban el uso con VirtualBox en la beta1), aunque ya no queden muchas 🙂

En cuanto a la i18n al español estoy bastante contenta. Empecé a colaborar con KDE-es justo antes de publicarse la versión 4.2, y para 4.4 hemos conseguido traducir el 100% de los paquetes principales para el día del lanzamiento, y más de un 97% si contamos todos (el porcentaje en el enlace probablemente varíe cuando se eliminen los experimentales). Precisamente las “ventanas en pestañas” fue una de las cosillas importantes que me tocaron traducir 😀

Ya que no he probado ninguna beta ni RC, tengo bastante curiosidad por probar las novedades de esta versión y me quedo tranquila pensando que, ahora que he migrado de Kubuntu a OpenSUSE la actualización será menos traumática. Aprovecho para recomendar el cambio a todos, yo lo hice en Año Nuevo (eh, no dejé de salir hasta las 9 de la mañana por eso 😛 ) y no me arrepiento en absoluto: la estabilidad del escritorio es mucho mayor, el centro de control de Yast le da 1000 vueltas a lo que incluye Kubuntu y no es tratada como una “distribución de segunda”, como ocurre en favor de Ubuntu.

Vista general del centro de control de YaST2

A algunos les parecerá un panel “windozer” pero, por mucho que me encante cacharrear con la consola, ya he llegado a la fase en la que agradezco que me faciliten la vida 😉