viernes, 19 de noviembre de 2010

¡Viva España!

No es que me haya dado un arranque patriótico ni nada por el estilo. Lo que pasa es que hoy toca un terrorífico capítulo protagonizado por nuestra querida amiga la eñe (ñ).

El mundo de las letras no es muy distinto del nuestro: hay letras grandes y pequeñas, que están hasta en la sopa y que no encuentras si no es en kilómetros, que se alían para sus chanchullos, y hasta las hay mudas. Por tanto no hay que extrañarse si decimos que también hay letras marginadas, exluídas e ignoradas.

En este grupo se encuentran, mayormente, todas las letras que no son utilizadas por el rey de los lenguajes, el de iu es ei, el inglish. Por tanto, para nosotros los españoles, tenemos la á, é, í, ó, ú y, sobre todo, la ñ. De España.

Y si hay un contexto en el que se maximiza la discriminación hacia estas letras, ese es el informático. Todos hemos sufrido alguna vez las consecuencias de ser fieles a nuestra rica lengua incluyendo en algún código acentos y eñes. Sería interesante cuantificar la cantidad de horas que se han empleado en este mundo en estudiar errores que finalmente eran causados por los denominados caracteres extraños, y daría para hablar de lo importante que es pararse a pensar antes de hacer las cosas (lo digo por los que crearon las primeras codificaciones), pero vamos a centrarnos.

En este post simplemente voy a exponer un nuevo caso, que además puede afectar incluso a aquellos pobres hombres que, como yo, ya han renunciado a utilizar su idioma en todo su esplendor y hace anyos que abdicaron.

Ubiquémonos. Estamos trabajando con la suite de BI Pentaho. Accedemos a la consola de usuario, y de ahí a la creación de un nuevo informe. Entre las fuentes de datos podemos ver las que la herramienta trae, pero nosotros queremos crear una nueva, así que pulsamos el botón Add. En el diálogo, damos un nombre, escribimos una consulta, previsualizamos, añadimos, damos un nombre a mostrar, y aceptamos como si nada. Y entonces...

¡Aparece el mensaje!


(There are either no Data Source(s) defined in the metadata, or you do not have permission to access any of the Data Source(s). Please create one or more Data Source(s) using the Metadata Editor and then publish them to the Pentaho Server. Or, use the Metadata Editor to give the appropiate user permission to access to the Data Source(s).)

Que en la lengua de Cervantes, y con la capacidad de síntesis de Pocholo, significa que no hay fuentes de datos. Tras ello, un nuevo mensaje.



(pentaho-ajax.js.pentahoResponse():TypeError:'null' is null or not an object)

Que no se puede traducir a ninguna lengua seria.

Y ahora nos encontramos con que en la lista de fuentes de datos no hay niente. Pourquoi??

Cerramos el reporte, volvemos a acceder para crear otro desde cero... y la misma historia. ¿¿¿Qué ha pasado con las fuentes de datos???

Pues realmente no ha pasado nada. Están ahí. El problema es que Pentaho sigue un curioso comportamiento. No tiene problema en escribir una eñe, pero le da la risa cuando tiene que leerla, y se queda tonto.

Cuando creamos una fuente de datos, Pentaho crea un fichero de dominio en la ruta %Pentaho_Base%/server/bi-server/pentaho-solutions/system/metadata/domains, con el nombre que le hayamos dado. En ese fichero, con formato xml, se define la fuente de datos: conexión, consulta, etc, etc, etc. Si accedemos a esa ruta, veremos que, efectivamente, hay un fichero de definición con el nombre que le dimos a nuestra fuente de datos. Pero si lo abrimos... ¡ahí está! ¡La repudiada eñe!. En la descripción del locale Pentaho ha puesto Español (España), con todas las letras. Y ahora no es capaz de procesar el fichero.

Así que la solución inmediata es tan simple como editar el fichero .domain y quitarle el tupé a la eñe. Sólo con eso podremos crear de nuevo un informe y tendremos tanto las fuentes de datos de Pentaho como la que nosotros hemos creado, y podremos seguir con el proceso.

Otra posible solución es mudarnos a Estados Unidos, o instalarnos un Sistema Operativo en inglés.

Este problema no es exclusivo de la creación de informes; se da exactamente igual al crear dashboards.

Pero bueno, no nos quejemos. Peor lo deben tener los chinos...

martes, 9 de noviembre de 2010

4F530E43505002EF

Ese críptico código es el que nos encontramos hace unos meses, junto con un mensaje de error no mucho más elocuente en el log de nuestro servidor de aplicaciones OAS 10.1.2.0.2.

Unexpected Signal : 11 occurred at PC=0xB7D49B2D 
Function=(null) 
Library=[...]/jdk/jre/lib/i386/server/libjvm.so 

NOTE: We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible reason and solutions. 

Heap at VM Abort: 
Heap 
def new generation total 3392K, used 1221K 
eden space 3072K, 33% used 
from space 320K, 63% used 
to space 320K, 0% used 
tenured generation total 29264K, used 18790K 
the space 29264K, 64% used 
compacting perm gen total 29184K, used 29050K 
the space 29184K, 99% used 

Elapsed Time = 1602 
# HotSpot Virtual Machine Error : 11 
# Error ID : 4F530E43505002EF 
# Please report this error at 
# http://java.sun.com/cgi-bin/bugreport.cgi 
# Java VM: Java HotSpot(TM) Server VM (1.4.2_06-b03 mixed mode) 
# An error report file has been saved as hs_err_pid20003.log. 
# Please refer to the file for further information. 
#

Cuando uno se encuentra con este tipo de errores sufre un repentino estado de ansiedad y se acuerda de aquel lejano día en que se decantó definitivamente por la informática como profesión.

Aunque en realidad el tema parece claro: ha habido un error de la máquina virutal de Java, ésta ha cascado irremediablemente, y tu aplicación se ha quedado tostada con el consiguiente cabreo del sufrido usuario.

Y en este caso, ¿podemos hacer algo aparte de largarle el problema a nuestro amigo Larry? (es lo que tiene comprar empresas, que te las llevas con lo bueno y lo malo).

Pues sí, podemos.

Lo que tenemos ante nosotros es la consecuencia de uno de los habituales bugs informáticos, que se resuelve con una actualización de versión de la JVM. Para este error concreto era necesario pasar de la 1.4.2_06-b03 a la 1.4.2_26_b07 (por contextualizar, se trata de una aplicación basada en ADF-UIX)

Para actualizar la JVM de una instancia de OAS ya instalada, lo que tenemos que hacer es seguir estos sencillos pasos.

- Instalar la nueva versión en la ruta .../oracle/product/10.1.2.0.2/midtier_1/j2ee/nombreInstancia/jdk.
- Modificar, a través del Enterprise Manager, la propiedad Ejecutable java de la instancia en cuestión, apuntando a la ruta 
.../oracle/product/10.1.2.0.2/midtier_1/j2ee/nombreInstancia/jdk/j2sdk1.4.2_26/bin/java, y aplicar los cambios.
- Ejecutar el comando opmnctl reload.
- Reiniciar la instancia desde el Enterprise Manager.

Y podemos seguir respirando tranquilos.

jueves, 28 de octubre de 2010

Este año termino la carrera

Esta es una frase que todo universitario pronuncia al menos una vez en su vida. Lo malo es que algunos se acostumbran a ella, le toman cariño, y dejan que le acompañe durante lustros. Algo que no tiene mucho sentido.

Está claro que uno no puede darle máxima validez a una frase como esa cuando viene de una persona con la edad habitual de los universitarios (entiéndase entre 18 y 23, aunque quizá lo habitual sea entre 20 y 30). En esa época de nuestra vida todos tenemos un ego super-desarrollado que nos impedirá asumir con modestia que al final necesitaremos una pequeña prórroga para terminar nuestros estudios.

En cualquier caso, una persona que emite esta frase durante un periodo superior a 9 meses demuestra una serie de cosas.

1 - Que tiene un escaso conocimiento de sus capacidades.
2 - Que no es consciente de sus circunstancias, y de como éstas afectan a su desempeño.
3 - Que no tiene la menor capacidad para "planificar".

Porque un tío que tras 5 años de carrera tiene por aprobar el 20% de los créditos, correspondientes precisamente a las asignaturas más duras, que afirma que va a terminar en un año más, no tiene ni idea de lo que está diciendo. Y más si resulta que esa misma persona ha decidido que, como ya le queda "poco" para terminar, puede asumir un trabajo a tiempo parcial para ir sacándose unos ahorrillos.

En estas circunstancias, cualquier persona que no cumpla los 3 puntos anteriores dirá que, en condiciones normales, este individuo necesitará al menos dos años más para terminar sus estudios.

Pero bueno, ¿¿y esto no es un pedazo de off-topic??

Pues no. Resulta que esos individuos de los que estoy hablando, transcurrido ese "último año", pasarán a formar parte de la plantilla de alguna empresa, y asumirán determinadas responsabilidades. Y entonces es cuando llegarán, como hemos hecho todos, como becarios en sus primeros días de trabajo, y ante la pregunta de su jefe, ¿cuánto crees que tardarás en hacer esto?, responderán sin cortarse un pelo: "dame un par de días". Y seis meses después, cuando su contrato-basura esté a punto de expirar, irán ilusionados a comunicar: "ya lo tengo!".

Es algo lógico, dado el ímpetu y la ilusión con que todos empezamos nuestra vida laboral; y sobre todo dado el desconocimiento que tenemos de la realidad de ese mundo. Dicho de otra forma, dada nuestra nula capacidad para Planificar.

Porque la tarea de planificar es ciertamente compleja. Casi me atrevería a decir que está al límite de lo imposible. Y es que cuando uno se enfrenta a la necesidad de predecir cuánto tiempo va a requerir para hacer algo tiene que controlar innumerables variables:

- ¿Qué es lo que tengo que hacer?
- No, en serio, ¿qué es lo que tengo que hacer? Quiero decir, ¿soy realmente consciente de ello? No basta con decir: tengo que hacer una aplicación Web para la gestión de usuarios de mi empresa. Hay que saber qué implica eso. ¿Montar un entorno de trabajo? ¿Seleccionar herramientas y frameworks de desarrollo? ¿Instalarlas? ¿Definir la funcionalidad? ¿Diseñar una base de datos? ¿Comunicar sistemas? ¿Hacer pruebas? ¿Documentar? ¿Reunirse con los usuarios? ¿Corregir errores?... y así hasta el infinito.
- ¿De qué recursos dispongo?
- ¿Cuáles son sus capacidades?
- ¿Coincidira mi desarrollo con la redacción de alguna oferta que entretenga al equipo?
- ¿Se irá la luz durante los trabajos? ¿cuántas veces? ¿qué cantidad del trabajo perderemos?
- ...

Y, en función de todo ello, la gran pregunta, ¿cuánto tardaré en hacerlo?.

No, en serio, ¿cuánto tardaré en hacerlo? Porque uno puede decir que en instalar un IDE se tardan 5 minutos. Pero se puede encontrar que la versión que necesita no es compatible con el driver del sistema, y necesitar una semana para enterarse de que tenía que cambiar una coma en un fichero de configuración para que todo funcione.

Al final la solución estándar es simple. Se coge el tiempo que se necesitó la última vez para hacer la tarea, t (si nunca se ha hecho, se estima con una función de relación directa al tamaño del nombre de la tarea), se multiplica por dos, y se le suman un par de semanas para documentar, d. Resultado: P = 2t + d.

¿Y qué pasa? Pues que nos encontramos con que al final g (el tiempo efectivamente empleado en el proyecto) se va acercando peligrosamente a P, hasta rebasarlo sin remedio y acabar doblándolo.

Menos mal que somos gente preparada para planificar, y conocemos las técnicas heurísticas. La próxima vez modificaremos el factor de corrección a 4, y todo resuelto.

miércoles, 27 de octubre de 2010

Taskbar Shuffle

Hoy he descubierto otra utilidad muy interesante, al menos para maniáticos incorregibles como yo.

La aplicación en cuestión es Taskbar Shuffle, y básicamente sirve para añadir a Windows XP la posibilidad de reordenar los elementos de la barra de tareas.

Para mí es un tema muy interesante, porque ya me he acostumbrado a tener un orden determinado en las aplicaciones con las que trabajo. Por ejemplo, lo primero que abro siempre es el correo, por lo que cuando quiero consultarlo me voy mecánicamente a la primera posición de la barra.

El problema lo tengo cuando al navegador de turno le da por ponerse gracioso y cerrar todas sus instancias (en lo que Explorer es especialista). Al volver a abrirlo el correo habrá perdido su lugar, y para que lo recuperase tendría que cerrar tooooodos los programas, y volver a abrirlos. Medida un tanto drástica para satisfacer una simple manía.

Pero ahora con este programita tengo la posibilidad de reordenar siempre que quiero los elementos, simplemente arrastrándolos. Además, también te permite cerrar un programa con el botón central del ratón, como se suele hacer con las pestañas de los navegadores, por ejemplo.

Así que ahí queda la recomendación para los que trabajen con muchos programas, y quieran tenerlos ordenaditos.

domingo, 3 de octubre de 2010

Lanzadores

Siempre he pensado que la analogía del escritorio está muy bien conseguida en los ordenadores. Todos tenemos en nuestro escritorio físico una serie de objetos: documentos, carpetas, el teléfono, un lapicero, el ordenador, un calendario, alguna planta... Y en mi opinión el estado del escritorio dice mucho de su dueño. Los hay perfectamente ordenados, con los documentos alineados y cada cosa en su sitio, y los hay que el simple hecho de verlos produce verdadero agobio.

Con el escritorio del ordenador sucede exactamente lo mismo. Siempre he sido partidario de tener el escritorio lo más libre posible. Encender el PC y encontrarse con 7 Words, 4 Excels, 6 carpetas, 3 PDFs, 25 txts... disgregados por la pantalla, es estresante. Y a este punto se llega porque no vemos el escritorio como lo que posiblemente debería ser: un lugar de paso para los elementos con los que se está trabajando.

En nuestro día a día pasan por nuestras manos decenas de folios; los sacamos de una carpeta, escribimos en ellos, los apilamos, los echamos a un lado, los recuperamos al rato... pero si somos medianamente organizados, al final del día los cogemos, y los devolvemos a su carpeta, archivador, armario, expediente, o lo que corresponda.

En el ordenador deberíamos trabajar de forma similar. El escritorio debería ser un espacio impoluto al comenzar nuestra jornada. Si tenemos que descargar un fichero de Internet para revisarlo, ver si nos interesa, usarlo sólo por un rato..., está bien ponerlo en el escritorio, pero lo que no es normal es que dos meses después siga ahí el instalador del Winrar, lleno de polvo.

Otro habitante habitual del escritorio es el acceso directo. Estamos acostumbrados a acceder a los programas que utilizamos con mayor frecuencia desde él, para evitar tener que navegar perdidos entre carpetas hasta encontrar sus ejecutables. Pero siguiendo la misma norma, el escritorio no es el lugar apropiado para ello.

Por eso recomiendo el uso de programas lanzadores. Estos programas permiten arrancar una aplicación en cualquier momento, utilizando únicamente el teclado. Suelen funcionar activándose mediante una pulsación de teclas como puede ser doble-ctrl, y ofrecen una entrada en la que podemos especificar el nombre del programa que queremos ejecutar. Así, sin necesidad si quiera de utilizar el ratón, podemos ir accediendo a las aplicaciones que nos interese.

Como ejemplos recomiendo Launchy y Google Desktop. El primero es específicamente una aplicación para lanzar programas, mientras que el segundo ofrece esta posibilidad entre muchas otras opciones.

Personalmente prefiero el Google Desktop porque no requiere ningún tipo de configuración, y te permite lanzar cualquier cosa de tu ordenador: programas, documentos, vídeos, páginas Web... aunque también utilicé Launchy durante un tiempo, y me fue muy bien.