Archivado el Julio, 2009



Carlos A. García

Belleza

Autor: Carlos A. García. Archivado en General
27/Jul/2009  

La verdad es que nunca elijo los libros que voy a leer en vacaciones. Conozco a gente que los guarda, los reserva. Yo no, simplemente me llevo el que estoy leyendo en ese momento, o el último que me he comprado. Me he pasado la semana en una sombra de la playa, demasiado ocupado como para coger el ordenador. Los dos últimos libros que he leído tienen en común un mismo punto: la belleza existente en la descripción de las reglas que rigen el universo.

El primero de los libros es “Pasiones, piojos, dioses y matemáticas” (Desde que lo leí, tengo pendiente escribir un post sobre John von Neumann). En él, el autor nos habla con auténtica pasión de aquello que hace que una persona se pueda plantear dedicar su vida a las matemáticas. Los motivos son innumerables: pasión, deseo de trascender, curiosidad, … y siempre belleza. Es curioso ver como, al final, la vida de los matemáticos que convulsionaron al mundo (incluso en un sentido literal, si hablamos de la bomba atómica) no dista mucho de la de los grandes artistas de su tiempo. Encontramos mujeriegos, pendencieros, fabricantes de mitos … Supongo que no hará falta decir que también gente normal.

El segundo libro es una recopilación de artículos titulado “Fórmulas elegantes“. De él, como informático, he obtenido dos enseñanzas fundamentales: lo importante que fue Shannon y la importancia de la belleza en las matemáticas. Pauli, Heisenberg, Dirac, …. eran personas capaces de descartar una ecuación por no ser bella matamáticamente.

Uno nunca sabe quien le lee, pero en informática existe una frase fundamental: “si funciona, no lo toques“. Así que entenderéis mi sorpresa al ver que no estoy tan equivocado cuando busco soluciones elegantes, que sean fáciles de modificar y sencillas de entender. Sería muy pedante decir que me siento identificado … pero sí me parece una filosofía adecuada.

Tengo una teoría: uno siempre lee los periódicos y los libros que le van a dar la razón. Así que no me animo demasiado, sigo preparado para oir sentencias del tipo “déjalo, ese fallo no se va a dar nunca” o “es que siempre lo hemos hecho así”.

Carlos A. García

Error informático

Autor: Carlos A. García. Archivado en General
17/Jul/2009  

No es extraño leer titulares en la prensa como:
- La NASA afirma que un error informático terminó con la Mars Global Surveyor
- Los 40 Principales atribuye a un error informático la emisión de anuncios del PSOE
- Un error informático en la T-4 de Barajas provocó la pérdida de 20.000 maletas
- Un error informático impide restar puntos a los conductores sancionados

No, no me ha llevado horas recopilar esta información. Buscando “error informático” en Google, encontraréis de un vistazo todos los casos que os he propuesto. La pregunta es ¿Qué es un error informático? ¿Alguien tiene la respuesta? ¿Por qué cuando se produce un error informático los medios de comunicación no entrevistan a un experto que explique que ha podido pasar? Yo sigo sin entender como el procesador de textos de Ana Rosa Quintana, por ejemplo, mezcló dos libros sin que ella se diera cuenta.

Para ilustrar lo que quiero decir, podemos seguir el caso de la desgraciadísima muerte de Rayan (nadie puede ponerse en la piel del pobre hombre que pierde a su mujer y a su hijo). El responsable del hospital le echa la culpa a la enfermera, después se afirma que con un sistema informático adecuado nada de esto hubiera pasado. Lo último es que “[...] Los servicios jurídicos del órgano regulador de la enfermería estudian, además, interponer una posible querella contra el gerente del Hospital Gregorio Marañón, Antonio Barba, por vulnerar el derecho a la presunción de inocencia de la profesional [...]“. La enfermera es defendida por el órgano regulador correspondiente, pero ¿Que hubiera pasado si el sistema informático hubiera estado en funcionamiento? La muerte se habría producido por un error informático.

Le echamos la culpa al ordenador, y de paso al informático que lo ha programado, cuando el argumento es el contrario: ¿funcionaría la Mars Global Surveyor sin un sistema informático? ¿Podría gestionar sus anuncios los 40 Principales sin ordenadores? ¿Cuántas maletas se perderían sin el software de gestión? El viernes pasado renové mi carné de identidad. Pedí cita por internet, me tomaron la huella con un sistema óptico y me generaron mi documento en poco más de cinco minutos. Lo que antes te llevaba una mañana (con suerte) y la espera de un mes, ahora se puede hacer en menos de quince minutos. Propongo el día del “no error informático”. Es decir, desconectemos todos los ordenadores, y ya veremos a quien se le puede echar la culpa.

Carlos A. García

Enable intraunit inlining

Autor: Carlos A. García. Archivado en Oracle
15/Jul/2009  

Habilitar el pegado de código dentro de una misma unidad es uno de los puntos del examen de obtención del certificado OCP de desarrollador PL/SQL sobre Oracle 11g. Perdón por la traducción, pero no encuentro una mejor para “inlining”. Realmente no significa pegado, pero sí es la idea, el concepto que se encuentra tras esta técnica.
Es muy sencillo: el compilador de Oracle substituye las llamadas a los procedimientos y funciones internas al procedimiento por su código fuente.


  procedure A is
    procedure B is
    begin
      -- Código de B
    end B;
  begin
    B;
    -- Código de A
  end A;

Se transformaría en:


  procedure A is
  begin
    -- Código de B
    -- Código de A
  end A;

No podemos indicarle al compilador que haga este trabajo. Lo tenemos que hacer de forma indirecta, indicándole que el nivel de optimización debe ser elevado. Esto se puede hacer de varias maneras: modificando el nivel general de optimización o simplemente compilando el procedimiento que nos interesa con un nivel de optimización superior.
Es decir:

alter session set plsql_optimize_level = 3;
alter procedure A compile reuse settings;
ó
alter procedure A compile plsql_optimize_level = 3 reuse settings;

Si os interesa el tema, la verdad es que está perfectamente explicado en esta página web.