Friday, August 31, 2012

 “Nadie es perfecto: los errores de los cocineros se tapan con mayonesa, los errores de los albañiles se tapan con cemento, y los errores de los médicos se tapan con tierra.”

Aprovechando una de las noticias de este mes en donde se informa la corrección de los errores de Java 7 y el conocimiento de Oracle desde hacía varios meses de esto, es una perfecta oportunidad para traer a colación el tema de los fallos informáticos, independiente de que este error no haya tenido tan graves implicaciones como las tuvieron otras equivocaciones a lo largo de la historia.


Empezando a hacer un recuento de algunos los distintos fallos a lo largo de la historia, tenemos:
  • Sonda Espacial Mariner I, la cual fue destruida antes de abandonar la atmósfera y su trayectoria no era la indicada, esto debido a que los cálculos no fueron exactos, puesto que una fórmula matemática no fue correctamente transcrita a lenguaje informático.
  • Apagón del 2003 en EEUU, en donde un fallo en el software de control mandaba señales que hacían que las máquinas se colgaran y reiniciarán si una se colgaba, lo que implicó un bloqueo de más de 100 plantas eléctricas y varios hogares sin electricidad.
  • Acelerador médico Therac 25, donde nuevamente un error en la programación exponía a un paciente a una dosis letal de radiación, dejando como resultado varios muertos.
  • Ariane 5, que fue destruido después de 40 segundos de su lanzamiento, y esto como consecuencia de la reutilización de código de programación dejando un bug en una de las rutinas aritméticas en la computadora de vuelo, al convertir unos datos de formato 64 bits a formato 16 bits.
  • Mars Climate Observer, que se estrelló por un error en el cálculo de aterrizaje, debido a que en la programación se utilizó el sistema anglosajón en lugar del sistema métrico decimal.
  • Y2K, que dejo millones de perdidas de dinero, puesto que en el cambio de milenio los ordenadores no pudieron procesar los dígitos del año nuevo.

Estos son solo algunos de los muchos errores a lo largo de la historia, que más errores de tecnología se podría afirmar que son errores humanos, al no dar la suficiente atención a la solución del problema y vislumbrar todas las posibles consecuencias que podría generar algo mal realizado. Y aunque es claro que los sistemas a desarrollar son cada vez más complejos, esto no es una excusa para dejar al aire las responsabilidades que se deben tener en una solución informática y la importancia de seguir correctamente todas las etapas de solución de un problema y alta capacidad de abstracción que se debe tener en ellas. 



Y para terminar con la frase del comienzo: ¿Cómo se tapan los errores de los informáticos?

Sunday, August 12, 2012

Diseño informático




El diseñador industrial busca crear o modificar objetos para hacerlos útiles, prácticos o atractivos visualmente, con la intención de satisfacer las necesidades del ser humano, adaptando los objetos e ideas en su forma y en las funciones de éste, su concepto, su contexto y su escala, buscando lograr un producto final innovador y placentero para el cliente.

Para que el diseñador industrial llegue a ese producto final, debe realizar una completa investigación al empezar el proyecto sobre la idea o el objeto  que vaya ha desarrollar para poder extraer lo más relevante para concentrarse en ello y dedicarle mayor tiempo a esto.

De la misma manera, nosotros como ingenieros informáticos somos capaces de gestionar soluciones y servicios informáticos, integrados con los procesos de la organización y alineados con las estrategias corporativas o particulares, de modo que posibilite mejorar la productividad y la competitividad. Y para gestionar esas soluciones de igual manera como los diseñadores industriales realizan una excelente investigación para satisfacer a sus clientes, nosotros como informáticos debemos también extraer lo más relevante de lo que nuestro cliente requiera, a través de una gran análisis de lo que nos propone el cliente, para poder concentrarnos en ello y darle solución al "problema" que nos plantea.

Por último quiero dejarles como inquietud, qué podría relacionar las dos imágenes que están al inicio de este artículo, teniendo en cuenta el contenido del artículo.

Saturday, August 4, 2012

En busca de la independencia

Durante mi niñez mis padres siempre intentaron inculcarme el amor por mi país, por Colombia. Cada 20 de julio y cada 7 de agosto una de las primeras cosas que veía al levantarme eran los colores de la flamante bandera de Colombia. 

En retrospectiva, creo que nunca entendí la verdadera razón de aquel gesto. Siempre pensé que celebrábamos ser colombianos, haber nacido aquí. Tardé mucho tiempo en entender que la independencia siempre ha sido el verdadero motivo de esa celebración.

En un inicio pensaba que la independencia era algo dado, algo con lo que el mundo siempre había vivido... Claro que estaba muy lejos de comprender el verdadero significado del complicado concepto "Independencia".

Por fortuna, hoy, luego de algunos años, creo que por fin comienzo a entenderlo. La independencia es importante, y es más importante aún su celebración porque constantemente algo o alguien quiere arrebatártela.

Probablemente algunos de ustedes encuentren irrelevante esta introducción, sin embargo, desde mi punto de vista, nunca el concepto de independencia ha tenido tanto significado.
Recientemente, en un oportuno momento de procrastinación, encontré una interesante entrevista de Richard Stallman, en la que hace referencia a la importancia que tiene el software libre en la educación de una sociedad libre. Stallman, es el autor de varias licencias copyleft, incluyendo la GNU General Public License, la licencia más usada en el software libre. Aunque radicales y extremas, las opiniones de Richard siempre contienen una dolorosa verdad, o como en este caso, un doloroso mensaje: no es posible educar ingenieros libres si se les enseña con un software que no lo es.
No sé para ustedes, pero para mí, la simpleza y la lógica de este mensaje son irrefutables. Después de tanto tiempo ahora es un poco más claro para mí: la libertad o la independencia no siempre han estado con nosotros y por eso vale la pena celebrar la poca(?) que tenemos.

No temo en afirmar que hemos crecido acostumbrados a depender. Vivir en un estado de dependencia es fácil. Alguien hasta podría llegar a pensar que no vale la pena obtener la independencia, que no vale la pena ser libre. Alguna vez alguien me dijo que todo era más fácil de entender cuando se involucra el dinero. Por desgracia, hoy tendré que utilizar ese consejo materialista para demostrar la importancia de la independencia: ¿disfrutaría usted de la independencia económica, de no tener que depender de nadie en absoluto para ejecutar una decisión de compra? Encuentro muy difícil que alguien responda No a esta pregunta. Es inevitable preguntarse por qué alguien no quiere la independencia del software, la independencia en general.


No sé si usar el software libre es la manera más coherente de buscar la libertad económica, lo que sí sé es que ser libre no es fácil, es un duro camino en el que muchos floreros deben romperse y es por eso que quiero celebrar la independencia y los invito a hacerlo.

Por favor celebra y recuerda tu independencia, porque aunque nunca la tengamos completamente siempre podemos tener un poco más, y ese, creo, es el verdadero camino hacia la realización.


Pd: Este post fue escrito originalmente en Ubuntu 12.04, usando el editor gvim.