17 de septiembre de 2012. Pienso que desde que el cerebro humano nos ha dotado de la capacidad de representación del  mundo, "lo mágico", como representación de aquello maravilloso y sin explicación lógica, ejerce una  fuerza de atracción de la que pocos nos podemos librar. Desde los primeros momentos de nuestra  vida estamos a merced de una "papilla" de magia que nos llega por doquier: los cuentos de hadas,  los dibujos animados, las películas infantiles y no tan infantiles, el cine en general, los videojuegos,  ... Las matemáticas como modelo explicativo del universo en el que nos ha tocado vivir es víctima de  una creencia en la que se otorga cualidades extraordinarias a los números, pero aunque esta idea  esté presente, y con cierta razón, desde los clásicos griegos, hace ya tiempo que la numerología se  ha desmarcado de las matemáticas y persiste hoy día como "pseudociencia" siendo campo abonado para incautos que caen en el negocio del tarot, horóscopo y toda clase de "videntes". Aún  reconociendo cierto efecto mágico a números cuya función explicativa de las leyes del universo es  clave, como el número pi, phi, nº de euler, nº de avogadro, la relación áurea, etc, lo cierto es que el  concepto de "número mágico" puede aplicarse a cualquier número y a cualquier cosa. Como se  suele decir, "busque usted cualquier propiedad mágica, y la encontrará". En cuanto al mundo de la programación informática se refiere, posiblemente sea esta idea de  propiedad especial lo que confiere el nombre de "número mágico" a una forma de programar  potencialmente perniciosa. Recuerdo bien mi época de estudiante universitario en informática, que,  en alguna clase de programación, surgió para mí, por primera vez, este término: "LLámese número  mágico a la inserción directa en el código fuente de ese número". Veamos un ejemplo extremo (¿o no?), que facilita la comprensión del concepto. Supóngase que una empresa contrata a un trabajador autónomo con una tarifa de 90 euros/hora y  una carga de trabajo de 6 horas diarias durante 50 días. Al final del periodo contratado, una forma de calcular el coste del trabajo realizado sería: CosteTrabajo = 50 * 6 * 90 Pero con estos tres números de pueden realizar además variadas operaciones, por ejemplo, horas  trabajadas: HorasTrabajadas = 50 * 6 O también coste diario: CosteDiario = 90 * 6 A estos números, así utilizados se les ha llamado "número mágico" y el efecto pernicioso se puede  ver claramente cuando cambia el valor de la tarifa, o duración del contrato o la carga diaria de trabajo. Si los cálculos utilizados con estos números están muy repartidos por todo el código del programa,  la actualización del software puede ser muy tediosa y por supuesto costosa, en tiempo y en dinero.  ¿No se percibe aquí esa "magia", en este caso "magia negra" asociada al número en cuestión?. Ni qué decir tiene que los números mágicos en programación han de evitarse todo lo posible. Una  solución a nuestro ejemplo podría ser: Variable Declaration  Tarifa = 90  DuracionContrato = 50  TrabajoDiario = 6  CosteTrabajo = DuracionContrato * TrabajoDiario * Tarifa  HorasTrabajadas = DuracionContrato * TrabajoDiario  CosteDiario = Tarifa * TrabajoDiario   El coste de mantenimiento del software disminuye muchísimo. Por supuesto, por "número mágico"   no me refiero únicamente a números, el concepto se puede ampliar a todo tipo de datos, por  ejemplo, una cadena de caracteres. Pero seamos críticos y observemos la aplastante realidad de la vida cotidiana. Aunque muchas  personas hayamos obtenido titulación universitaria en informática, y tengamos en teoría una  formación depurada, incluyendo desde luego este concepto de número mágico, se puede ver código lleno de números mágicos. Que cada cual lo observe en su correspondiente lugar de trabajo, que a  no ser que exista un procedimiento que lo contemple explícitamente, este tipo de magia estará  presente en los programas corporativos. En cuanto a código público, pues tengan ustedes la  completa libertad de echar un ojo a manuales de ayuda oficiales, webs de divulgación de  programación y algún software libre. Algunos factores podrían estar detrás de la eterna presencia del fantasma del número mágico. 1. El programador no tiene formación adecuada. 2. Aún teniendo formación, el programador no tiene la experiencia suficiente para aplicar proactivamente lo aprendido. 3. La presión de tiempo por una entrega del producto puede hacer que se programe "como sea". 4. Se programa en un entorno cultural indisciplinado y caótico. 5. No existen referencias externas que induzcan a una programación adecuada en el entorno cultural (programadores de mayor  experiencia o normas corporativas). etc. Aunque seguramente no podremos eliminar por completo de nuestros códigos el número mágico, pienso que con no mucho esfuerzo  podremos conseguir software de mayor calidad y con efectos potenciales menos perniciosos. Quizás en un entorno cultural que premie la calidad podamos encontrar actividades que por un lado evite una programación descuidada y por otro lado detecte los descuidos en la  programación. Quizás sea un problema de voluntades. Proyecto de expresión y espacio para la tecnología, cultura, empresa, estética y humanidades en general Información legal  La eterna presencia del fantasma del número mágico.
ÚLTIMAS ENTRADAS INFORMÁTICA Las v’s de los datos (I). Volatilidad. Introducción a la programación para dispositivos móviles. La eterna presencia del fantasma del número mágico. Introducción Ver todas las entradas BUSINESS ADMINISTRATION La carrera profesional también se gestiona. Orientación al servicio informático: Una relación gana-gana. Cuadrante mágico para plataformas ETL y BI. Introducción Ver todas las entradas PSICOLOGÍA El miembro fantasma. Criterios diagnósticos. Psicología científica, básica y aplicada. Introducción Ver todas las entradas FOTOGRAFÍA Galería fotos de Córdoba. Introducción Ver todas las entradas AJEDREZ IX torneo media hora, ciudad Ávila. I open ciudad de Jaca. Torneos en Mislata - Valencia. Introducción Ver todas las entradas MERCADOS BURSÁTILES Elliot, Fibo y el 61,8%. 1 año del juego de las tres carteras. Señal TCM en Telefónica. Introducción Ver todas las entradas MISCELÁNEO RABASCO-MENDÍVIL recital piano cuatro manos. Ciclo de conferencias del CEC. Ética radical, la puerta de Texas y la tía Norica. Introducción Ver todas las entradas