Ajedrez - antoniomartel.com

Archivos por Mes: septiembre 2016

Oracle XE, Forms 6i y un viaje a Ecuador

Hace algún tiempo tuve que realizar una implantación de una aplicación desarrollada en Oracle Developer 6i (Forms y Reports) para un museo. Por razones económicas decidimos utilizar una licencia Oracle Express Edition 10g, pero al intentar arrancar la aplicación accedíamos a ver durante un instante la consola de Windows y se cerraba inmediatamente.

El proyecto se estaba pasando de las horas estimadas para resolverlo y ahora teníamos un problema con el que nadie en la empresa se había topado antes. Consultamos la página metalink de Oracle, foros y páginas sobre desarrollo con Oracle.

Finalmente, tras muchas búsquedas en Google obtuvimos la respuesta al problema en el foro de Oracle Users Group de Ecuador, exactamente en una entrada de Paola Pullas y los comentarios al mismo.

Parece ser que Oracle XE 10g necesita de un parche para funcionar con Developer 6i y además cambiar el juego de caracteres a UTF8. Les indico aquí los pasos que tuvimos que realizar.

Primero, pedirle al DBA responsable de la instalación de la base de se conectara a la base de datos XE como SYSDBA en el sqlplus y ejecutara las siguientes instrucciones para cambiar el juego de caracteres.

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
SHUTDOWN;
STARTUP RESTRICT;
SHUTDOWN;
STARTUP;

Posteriormente fue necesario ejecutar el siguiente parche de Oracle sobre la instalación de Oracle Developer: Parche 18 de Developer, Patch number 4948577.

Espero que esta entrada resuelva el problema a algún desarrollador. Seguro que aún quedan sistemas y aplicaciones que están usando esta configuración.

Totales en blanco en Oracle BI Discoverer

Otro post técnico. En este caso cómo resolver el problema de los totales en blanco en Oracle Business Intelligence Discoverer:

En algún trabajé como administrador de la EUL (capa de usuario final) con las herramientas de Discoverer y nos encontramos con un problema que nos trajo de cabeza durante unos días: Los totales de algunas columnas se mostraban en blanco a pesar de contener datos y solamente mostraban una cantidad cuando sumaban sólo un registro. Si había más se mostraban vacíos.


Es algo que aparentemente puede parecer un error o bug de esta herramienta pero resultó ser una decisión de diseño en la herramienta. Me explico:

Si tenemos dos carpetas relacionadas entre sí como maestro-detalle y en la carpeta maestra tenemos la cantidad o el número que vamos a sumar, tendremos un problema ya que la suma contará la cantidad del registro maestro tantas veces como elementos haya en el detalle, y probablemente no es esto lo que queremos.

Mejor verlo con un ejemplo. Si tenemos una carpeta maestra con los datos de guías turísticos en la que además indicamos cuál es la tarifa que cobra cada guía mensualmente:

Id.     Nombre Tarifa
1         Antonio    2000€
2        Juan          1000€
3        Marta        1500€

Si además tenemos una carpeta detalle en la que tenemos la relación de idiomas que habla cada guía, tendremos algo como esto:

Id.     Nombre     Tarifa Idioma
1         Antonio        2000€        Inglés
2         Juan              1000€        Inglés
2         Juan              1000€       Alemán
2         Juan              1000€       Sueco
3         Marta            1500€       Alemán

Si hacemos un ‘Summary‘ o ‘Total‘, la herramienta de Discoverer nos mostrará que Antonio cobra 2000€ al mes, Marta 1500€ y que Juan cobra “_____”. Es decir nos mostrará la casilla en blanco o vacía. Si mostrase un resultado nos daría 3000€, cantidad que no es la que realmente cobra Juan.

Tenemos algunas formas de resolver esto:

  1. Quizás la cantidad que estás sumando no deba ir en la carpeta detalle. Deberías revisar el diseño de la base de datos.
  2. Quizás la relación entre ambas carpeta deba ser de 1 a 1 y lo tienes puesto por error de 1 a muchos.
  3. Si todo lo anterior está correcto, hay una cosa más que puedes hacer: Decirle a Discoverer que sume la cantidad de todas formas, aquí están los pasos:
    1. Activar en las opciones del Discoverer Desktop la casilla ‘Show the sum of the values displayed in the contributing cells
    2. Establecer con valor 1 en lugar de 0 las propiedades AllowAggregationOverRepeatedValues yAggregationBehavior del fichero prefs.txt en el servidor de Discoverer en la ruta $ORACLE_HOMEDiscovererutil

Este último caso debemos tomarlo siendo conscientes de lo que supone. Aunque sea perfectamente válido para el caso que estás intentado resolver es posible que en otro informe que en el futuro esté colgado del mismo servidor, impidamos ver al administrador que hay un problema (fan trap) y se muestren totales con importes erróneos como el de la tarifa de Juan.

Upcoming book: Agile 101 – Practical Project Management

New book, new prezi. I have prepared for you a presentation of the upcoming book Agile 101. There you can find a short description of the chapters you can find inside.

Check it out on Prezi site or directly here:

Agile 101: Broken Windows Theory

In the late 1960s, a university professor carried out a psychological experiment. He left two identical cars in two different neighbourhoods. One in a poor, high-crime neighbourhood in the Bronx, New York. The other one in a rich, quiet area of Palo Alto, California. Shortly after it was abandoned, the car in the Bronx started to have all its parts stolen. First the radio, then the tires, the mirrors, and anything of value. Yet the car abandoned in California remained undamaged. The study did not end there. When the car in the rich neighbourhood had been intact for a week, the researchers broke one of its windows. This escalated quickly, and soon afterwards the effect was the same as it had been in the Bronx. Theft and vandalism swiftly reduced the car to its bare bones in both neighbourhoods. A car with broken windows sends out a message of disrepair and negligence. It spreads the notion that anything goes. Every new act of vandalism reinforced and broadcast the idea that nobody was taking care of that car. That nobody cared.

A similar idea can be seen in the training of health professionals. If a patient or an elderly person has a stain, or gets dirty somehow, that person should be cleaned. Even if it’s only a little spot. If patients stay in that state, they will be less careful themselves in keeping clean. They will tend to feel that it doesn’t matter anymore, it’s already dirty. So their general state of hygiene, self-esteem, and thus health level will start to decline.

The results of this psychological study are applicable in many situations of our daily lives: from the care of our home to the maintenance of our car. But they’re also applicable to our jobs. For example, if you’re a programmer or a project manager, and you allow for a new version to be deployed. But you haven’t had it sufficiently tested. Or if you leave that technical “debt” unpaid in the code now —because “we’re in a hurry.” You’d be broadcasting to the whole team the feeling that anything goes. That “it’s enough as it is” and that one can leave quality aside. Sooner or later the phone will ring with complaints from users. Soon we will see a lengthy queue of reported bugs in our queue.

When we apply this theory to software, it’s helpful to explain the term entropy. In physics, entropy is the level of disorder or randomness in a system. Say you see badly indented or commented code. Or a bad choice when naming a variable or some bad design. Fix it as soon as possible or schedule its correction for the near future. Take some sort of action to limit disorder or it will expand. It will create the feeling that any patch or quick fix is valid.

If some code (or thrown-together code) will make your system deteriorate quickly, impeccably written and designed software will have the opposite effect. It will make new programmers avoid breaking something so beautifully built. They will make an effort to put in place the best code they can write. Now you know: make your life and your project easier by fixing broken windows as soon as they appear.

You can find texts like this and many other about how to manage agile projects in my book Agile 101: Practical Project Management (available on Amazon).

Book on Scrum: Agile 101, Practical Project Management
Agile 101 – Practical Project Management

Translation by Begoña Martínez. You can also find her on her LinkedIn profile. Proofreading by David Nesbitt.

Promociones de Amazon: Kindle Flash y PublicaConKindle

Amazon quiere celebrar durante todo el mes de octubre el fenómeno de la autopublicación con una promoción especial en una selección de libros entre los que estará mi libro Certificación Professional Scrum Master.

Durante esta promoción, llamada #PublicaConKindle, el libro estará a la venta por sólo 0.99€ en lugar de los 2.99€ habituales. Amazon publicará pronto una página especial dedicada a este evento para promocionar la publicación independiente. Pondré el enlace por aquí cuando esté listo.

Habrán muchos otros libros en promoción durante todo octubre con esta promoción así que aprovechen ese mes para ver si está en oferta alguno de los libros que les gustaría comprar.

Mi primer libro, Gestión práctica de proyectos con Scrum, fue seleccionado de nuevo hace unos días para una promoción Kindle Flash. El 5 de noviembre este libro estará durante todo el día a tan sólo 1.49€. Avisaré también en este blog unos días antes por si te interesa comprar el libro en ese momento.

Aquí tienes los enlaces a mis dos libros en Amazon:

Amazon.com
Amazon.es
Amazon.com.mx
Amazon.com
Amazon.es
Amazon.com.mx

Suscríbete