lunes, 17 de marzo de 2014

Hallowed be thy name

Como grandes aficionados al heavy metal que sois rápidamente habréis asociado el nombre de este artículo al de una canción del album 'The number of the beast' de Iron Maiden.

-Claro, claro...

No me voy a meter con vuestros gustos musicales salvo que os guste el reaggeton (que además de meterme os baneo de IA) sino utilizar este título para contaros una historia.

La traducción más acertada vendría a ser 'Maldito sea vuestro nombre' que como maldición no está mal y sirve para introducir un montón de otros exabruptos menos elegantes.

El caso es que estaba yo liado con mi amigo Essbase haciendo un cálculo de intercompañías en el que había de buscar la contrapartida de la misma. Para los nuevos en el lugar, una intercompañía es un gasto/ingreso realizado entre dos compañías de un mismo grupo. Por ejemplo, ante la venta de un vehículo entre ellas tendríamos lo siguiente:
-Compañía A, Intercompañía B, compra de vehículos, 10000€
-Compañía B, Intercompañía A, venta de vehículos, 10000€

Obviamente esas intercompañías tienen que cuadrar y una manera de hacerlo es comprobar que existe la contrapartida.

Las bases de datos multidimensionales en general y essbase en particular son terribles para la gestión de strings. Hacer un substring del nombre de un elemento y componerlo con prefijos o sufijos puede ser una película de terror del bueno... Que es lo que me pasó a mí.

Teniendo una serie de datos de intercompañía de ida tenía que comprobar si la intercompañía de vuelta cuadraba. Teniendo en cuenta que la nomenclatura era muy fácil (prefijar con ICP_ la compañía para tener la intercompañía y hacer un substring para lo contrario) y tras varias funciones y paréntesis creí haberlo conseguido.

Entonces lo ejecuté...

Y se quedó a medias.

-¡Hallowed be thy name!
-¿Cantas?
-Mismamente...

Por alguna extraña razón, essbase hacía unos casos y otros no y se dejaba por hacer todo lo que aparecía a continuación del cambalache de los strings.

-Esto me huele a bug...
-Debuggalo...
-...

Como el debug del essbase es inexistente, acabé buscando en el log por alguna pista, pero a partir de un punto simplemente dejaba de procesar.

Con las manos echadas a la cabeza y dispuestas a propiciar una prematura calvicie por estiramiento capilar fui haciendo pruebas hasta que se encendió la bombilla...

-¿Pero qué haces aquí a oscuras?
-Los vampiros programamos a oscuras
-Déjate de tonterías, anda...

Y no sé si sería la luz o qué, pero me di cuenta de que existía una intercompañía llamada ICP_none, que se usa precisamente cuando no es intercompañía, cuya conversión a sociedad era None...

-None es que no existe
-Digo que no existe None
-Pues eso
-No me estás entendiendo...

Y como no existía la sociedad None se producía una excepción que paraba el cálculo sin dejar huella alguna en ninguna parte... Bueno, sólo un desconcertante mensaje en la consola de que todo había ido bien...

-¡Me cago en su P... M....!
-¿Qué ha sido de Iron Maiden?
-¡Graaaaoorrr!

Perder el tiempo intentando arreglar un error cuando tienes un mensaje de error pase... Pero tener que darte cuenta que había un error sin mensaje...

-En la línea habitual, ¿no?
-Sí, si no sé por qué me sorprendo...

Arreglado el problema, el script de idea feliz funcionó como debía aunque dejando el sabor agridulce de que ciertas herramientas (caras) no permitan de forma nativa una mínima gestión y comparación de strings y deban dejárselo a extensiones externas en Java...

-¿Pero tú no sabes Java? Vaya informático de pacotilla que estás hecho...
-¿Te digo yo algo del Essbase?
-Touché...

La próxima vez que haya que hacer cálculos así ya sabéis cuál será mi respuesta si me preguntáis:

-¡Hallowed be thy name!

sábado, 15 de marzo de 2014

La tira aplicada: Calentamiento global

Hacía tiempo que no dibujaba ninguna tira (tengo unas cuantas pendientes a medias) pero cuesta encontrar un momento para hacerlas (la tira no la dibujo con el móvil...).

Permitidme pues el chiste fácil informático:

 

martes, 11 de marzo de 2014

Catalizador informático

Hubo una temporada en que los coches no tenían catalizador y entonces eran más contaminantes que ahora. El catalizador, químicamente hablando, es un componente cuya presencia acelera una reacción química pero que no se consume en dicha reacción.

En un ejemplo que se pueda entender rápidamente, el catalizador del coche, ese aparato situado en el tramo final del tubo de escape, permite hacer reaccionar más rápidamente los gases de escape con la atmósfera (mediante reacciones aceleradas de oxidación o reducción) de manera que en el momento de la expulsión son menos tóxicos que en el momento en que salen del motor.

-Pero si no tienes ni idea de mecánica...
-Ni de química... Y aquí ando hablando de catalizadores...

El contrario de un catalizador se llama inhibidor y como su nombre indica evita en la medida de su presencia que la reacción se produzca.

Introducidos estos conceptos químicos tan importantes los trasladamos, como es habitual, al mundo de la informática consultoril:

-Oye, que mañana lanzamos un proceso y necesito que estés.
-Para qué?
-Por si acaso...
-Pero me puedo conectar en remoto si pasa algo...
-Yo prefiero que estés aquí, que así seguro que no pasa nada...

Y así, por ciencia infusa, tu presencia en ese cliente hace que no pase nada malo, convirtiéndote en inhibidor de malos rollos o catalizador de eficiencia informática.

-Menos mal que estabas aquí porque si no no sé qué habríamos hecho...
-...

Y claro, después de pasarte el día en el cliente de turno para su tranquilidad de espíritu concentrado en atraer las buenas vibraciones de los dioses de la informática...

-Buen rollo, buen rollo, sql maja, base de datos bonita...

... pues resulta que llega la hora de la dolorosa... Y claro, el concepto de 'servicios informáticos' se antoja tan etéreo como la posibilidad de cobrar dicha factura por, visto lo visto, hacer rituales informáticos:

-Qué has puesto al final?
-Prevención de porsiacasos informáticos
-Hala, vaya burrada... Pon catálisis de best practices en entornos de tecnologías de la información...
-Ostras, tú sí que sabes...

Aunque luego lo piensas y sí que es cierto que en ocasiones no pasa nada cuando estás y cuando te vas se lía parda... Como si el servidor de turno te estuviera vigilando y te hace pensar en tu función de catalizador y en el presencialismo que a veces se pide en los proyectos.

Otras el hecho de que estés es suficiente para que todo pete y tengas una maratoniana jornada de marrones varios que catalizar.
-Menos mal que has venido...
-Claro, si no vengo te comes tú el marrón, no?
-Correcto. Hay que dar de comer al hambriento.
-...

En fin, tampoco me hagáis mucho caso que al final, como casi siempre, todo se debe a la casualidad... Y recordad que en esta profesión hay muchos ingenieros químicos reciclados que son los que más saben de catalizadores e inhibidores de marrones.

Catálisis para todos!

miércoles, 5 de marzo de 2014

Gafas antirreflectantes

Hace unos cuantos años que llevo gafas por mi astigmatismo. A pesar de ello el día que no llevo gafas me defiendo bastante bien pero si coincide que debo leer según qué comienzo a hacer muecas equiparables a las típicas del abuelo Cebolleta. La mayoría de veces veo mejor de lo que parece pero hay veces que tela...

Quitando el astigmatismo, mi vista es perfecta...

-¡Dang, dang, dang! ¡Campana y se acabó! ¡De acuerdo que tengas lo tuyo pero ésa es una verdad de Perogrullo!

Como decía antes de la interrupción de las tacañonas, sólo tengo astigmatismo simple, sin complicaciones de vista cansada o miopía como me aseguraban que tendría antes de los 30 por estar todo el día con el ordenador.

Y como me lo aseguraban tanto, una de las cosas que me recomendaron fue el uso de cristales (es un decir porque al final son polímeros plásticos) con baño antirreflectante. Estos cristales permiten que los fotones los atraviesen con mayor facilidad de manera que la visión es mejor que con cristales normales, especialmente delante de un ordenador.

Incluso se da el caso de tratar de adivinar qué está haciendo el compañero de delante según el reflejo de sus gafas, juego en que el uso de cristales antirreflectantes se considera trampa según la federación internacional.

Después de unos años de uso me acabé cargando las gafas y comencé a usar las de reserva (promoción Afflelou, you know) que no tienen antirreflectante.

No he notado más cansancio ocular o problemática de visión salvo en algún momento muy particular... Y uno de esos momentos fue el otro día.

Por una de aquellas casualidades de la vida (cambio de compañía telefónica) ahora tengo un Samsung Galaxy Note 3 que me permite una precisión increíble cuando hago dibujos en el tren (se dibujan todos los baches y meneos). Este por otro lado deseado aparatito viene con una característica que yo había desactivado en mi anterior S3 que se llama 'Smart Stay' y que se supone que hace que la pantalla permanezca activa mientras la miras.

Básicamente lo que hace es grabar con la cámara frontal y detectar caras con el software de reconocimiento facial. Mientras detecte una cara con los ojos abiertos se mantiene encendido.

Hasta que te pones tus gafas sin cristales antirreflectantes.

Yo estaba con la mosca detrás de la oreja del mal funcionamiento de esta funcionalidad hasta que puse la cámara frontal.

Después del susto inicial (soy el doble de Brad Pitt... El doble de gordo me refiero...) me percaté que el reflejo de la pantalla del móvil aparecía en los cristales de mis gafas y, por alguna razón, el software de reconocimiento de caras no reconoce ojos brillantes e iluminados.

-Mira, hemos salido todos con los ojos rojos en la foto
-Claro, somos demonios
-Aaaanda, por eso no me va el smart stay en el móvil, por los ojos rojos brillantes...
-Y por los cuernos, no te olvides
-Ya...

Claro que si me quito las gafas sí que me reconoce por la cara (me refería a reconocimiento facial... Y sí, gratis) y funcionalidades como Smart Stay o Smart Scroll funcionan adecuadamente.

¿Será que no lo habían previsto? ¿Debería venir el teléfono con descuento para lentillas o gafas antirreflectantes? ¿Podría hacerse una aplicación que modificara la visualización de la pantalla para poder verla bien sin gafas similar al ajuste para miopes de un microscopio o las leyes de la óptica lo impiden? ¿Se podría aplicar también a los portátiles? ¿Y a las personas?

-Hay personas que prefiero seguir sin ver...

En fin, igual es que somos muy exigentes con funcionalidades que igual están aún en periodo de mejora... O que tal vez habría que ponerle gafas al software de reconocimiento facial...

Seguiremos informando.