jueves, agosto 25, 2005
Un BUG con Historia
Quien, de los que trabaja en computación o relacionado al desarrollo de sistemas,
no ha escuchado la mítica frase “Este programa tiene un bug”, la cual representa
fielmente todos los problemas a los cuales nos vemos enfrentados día a día enel
que hacer informático.
De tanto escuchar sobre este famoso bug, me propuse averiguar acerca de su historia,
es así que llegué a una página que explica su origen, la cual paso a reproducir
para ustedes.
Historia del bug informático.
El término "bug" ha sido asociado a interferencias y mal funcionamiento desde
mucho tiempo antes de que existieran los ordenadores modernos, siendo Thomas
Edison uno de los primeros en acuñar este significado. Si bien fue una mujer,
Grace Murray Hopper, quién en 1945 documentó el primer "bug" informático. "bug",
traducido literalmente del inglés como "bicho", adquiere otro significado cuando
hablamos de informática. Esta otra acepción se refiere a elementos y circunstancias
en el software o hardware, involuntarios e indeseados, que provocan un malfuncionamiento.
A lo largo de los años este término se ha popularizado y hoy día se utiliza
comúnmente para referirse a los errores en los programas informáticos. La relación
con la seguridad informática es directa, ya que muchas de las vulnerabilidades
que día a día vemos están asociadas a "bugs".
Grace Murray Hopper (1906-1992), graduada en matemáticas y física por el Vassar
College, y doctora en matemáticas por la universidad de Yale, ha pasado a la
historia por ser una innovadora programadora durante las primeras generaciones
de ordenadores.
En 1943, durante la segunda guerra mundial, decidió incorporarse a la marina estadounidense. Fue destinada al laboratorio de cálculo Howard Aiken en la Universidad de Harvard, donde trabajó como programadora en el Mark I.
El 9 de septiembre de 1945 el grupo de trabajo de Aiken y Grace se encontraba en la sala del Mark II intentando averiguar porqué el ordenador no funcionaba adecuadamente. Tras un examen concienzudo lograron detectar que la culpable era una polilla de dos pulgadas que se había colado entre los contactos de unos de los relés del Mark II. Más tarde, Grace registraría el incidente en el cuaderno de bitácoras, pegó la polilla que causó el problema y anotó debajo la frase "First actual case of bug being found".
Foto de la anotación original del primer "bug":

A partir de entonces, cada vez que algún ordenador daba problemas ellos decían que tenía "bugs" (bichos o insectos). Años más tarde Grace también acuñaría el término "debug" para referirse a la depuración de programas.
Además de los fines militares, única razón de ser de los primeros ordenadores, cuentan que Grace fue de las primeras personas en buscar utilidades civiles a la informática. Entre sus muchos méritos destaca la creación del lenguaje Flowmatic, el desarrollo del primer compilador, o su trabajo en la primera versión del lenguaje COBOL. Grace continuó con sus avances en computación y tuvo numerosos reconocimientos a lo largo de su carrera. Entre otros, recibió el premio Hombre del Año en las Ciencias de Cómputos por la Data Processing Management Association. Fue la primera mujer nombrada Distinguished fellow of the British Computer Society, y la primera y única mujer almirante en la marina de los Estados Unidos hasta la fecha.
Link:Hispasec Sistemas
martes, agosto 23, 2005
Notable
Bien Paolo, mucho éxito.
Capitán Huiscapi
lunes, agosto 22, 2005
Menos Reality y más competencias que valgan la pena.

Mientras en nuestro país se pueden apreciar filas y filas de jóvenes que tienen la esperanza de quedar seleccionados para un Reality Show, en otras latitudes se pueden apreciar otro tipo de competencias, las que sin duda fortalecen los conocimientos técnicos de una juventud pujante y llena de desafíos.
Viendo un programa de CNN en el cable, sintonicé una competencia de programadores que se hace en Santa Clara CA USA, la cual se denomina TopCoder y es auspiciada por SUN. Aquí se agrupan cientos de personas que compiten en dos categorías, The Algorithm Competition y Component Design and Development Competition. Las pruebas se realizan en diversos lenguajes (Java, C++, C#, y Visual Basic) y consisten en optimizar códigos y desarrollar óptimos programas. Lo bueno de esta competencia, es que se puede participar Online y a medida que se avanza se hace necesario una prueba presencial.
La página de TopCoder cuenta además con oportunidades de trabajo para los mejor evaluados. Entre las empresas que ofrecen trabajo se pueden distinguir a YAHOO, Citigroup, Nacional Security Agency y VeriSing por mencionar algunas.
Este reality si que aporta, no como el otro, en el cual estás encerrado 3 meses en el campo con aporte cero a la sociedad.
Así no se puede.
HustlerByte.
miércoles, agosto 17, 2005
¿Es el programador un artista?
¿Por qué? porque a partir de un problema dado, es muy improbable que dos programadores 'pinten' el mismo código o programa. La forma y potencialidades del código generado será distinta también, dependiendo del talento del autor.
Sin embargo lo que vende (o lo que le compran) no es arte, es técnica+lógica+velocidad.
Aunque estoy de acuerdo con que la estructura jerárquica actual de empleo, que relega a los programadores a los niveles más bajos en la escala de recompensas económicas en un proceso de producción de software, hasta cierto punto creo que se trata de la consecuencia y no sólo de la causa.
¿La consecuencia de qué?
Del mínimo nivel de impecabilidad del trabajo. Cientos de líneas de programas son generados como copias o variaciones de otros programas, de dudoso origen y calidad. En fin, puedo enumerar una infinidad de malas prácticas que generan código deplorable.
¿Cómo mejorar?
Receta I.
0. asegúrese de conocer las leyes que gobiernan la informática. Básicamente los conceptos de flujo de un programa (secuencia, desvío, iteración) y patrones ('patterns') de diseño. Si no lo sabe, busque alguien competente en quien confíe que le pueda ayudar (si usted cree saber de lo que estoy hablando, lo más probable es que no sepa).
1. La forma de programar está relacionada con la forma de pensar, la forma de pensar está relacionada con la forma de hablar. Si no le entiende lo que habla, no le sirve.
2. Vea el código que hace. Pídale una explicación. Suponiendo que supera el punto 1, asegúrese de que la explicación sea sencilla y el código también. Los americanos hablan de la sigla KISS: keep it simple, stupid. Un código complicado puede ser síntoma de inteligencia o de confusión; usted no tiene tiempo de averiguar de cual de los dos se trata.
3. Cualquier evaluación de productividad hágala sobre código que funcione.
4. Si necesita entrevistar a algún programador candidato, pídale una explicación simple (ver puntos 1 y 2) sobre los siguientes tópicos:
4.1 Recursividad o recursión
4.2 Paso de parámetros (por valor y por referencia)
4.3 Diferencia entre Clase y Objeto (OOP)
4.4 Herencia (OOP)
Si no obtiene un 4/4, usted está corriendo un grave riesgo de obtener, en el mejor de los casos, un mamarracho que funciona.
Buena Suerte
Capitán Huiscapi
martes, agosto 16, 2005
Algo está mal.
Mucha gente habla de las nuevas estructuras que se adoptan al interior de las organizaciones. – Mire aquí no hay un jefe absoluto, nos organizamos en función de los objetivos. – Afirmaciones como esta me confunden, dado que a la hora de fijar los incentivos económicos volvemos inevitablemente a la estructura jerárquica, la que por lo demás, siempre ha existido y es la base de cualquier nueva estructura.
Este tipo de organización departamental está matando seriamente a los buenos programadores, los cuales al verse enfrentados a la estructura del departamento de informática, siempre están en antepenúltimo lugar, ya que debajo de ellos siempre están lo de soporte y operaciones, siendo los últimos la secretaria y el júnior.
Sin desmerecer la labor de los jerarcas de informática, para mi, la labor del programador siempre será la más importante de toda la cadena, ya que son las líneas de código las que le dirán al computador central como actuar. Se puede tener un buen o mal análisis, lo que siempre hará la diferencia será lo que digitó el programador.
Dada la ubicación jerárquica que ha alcanzado el programador, se ve obligado a comenzar una carrera de ascenso hacia analista o jefe de proyecto, abandonando lo que más le gusta,
Yo creo que se debe hacer algo, ya que esto no está bien. Se debe diseñar una nueva forma de nivelar la recompensa con estructura. Vuelvo a insistir, existen muy buenos programadores que no tiene ningún interés en ser analistas o jefes de proyectos, sólo quieren programar y ganar en función de sus excelentes programas, los cuales créanme, no se caen.
Para finalizar, me gustaría dejar en claro, que los programadores son y serán cada vez más, un activo preciado para la organización, los cuales deben ser tratados como tal. (Ojo, sólo los buenos, los malos se pueden retirar).
Nos vemos.
HustlerByte.
sábado, agosto 13, 2005
Que nunca te de julepe ser pulento entre tanto julero.
He tomado de nuestro nutrido vocabulario nacional, el título de este primer post, dado que refleja fielmente lo que quiero expresar.
Me tiene aburrido la mediocridad de algunos programadores que por algún avatar del destino, llegaron a sentarse frente a un teclado y comenzaron a codificar programas por un sueldo mensual. De hecho, esta acción fortuita, está ocasionando serios trastornos a los usuarios de estas aplicaciones, producto de los problemas que presentan por su mala y en algunos casos pésima programación.
Uno tiene que amar lo que hace, dado que eso nos llevará a perfeccionar nuestro quehacer diario, buscando la excelencia de la utilización del código fuente que estemos armando.
Por lo general en estos personajes, se pueden apreciar patrones que los identifican claramente, por ejemplo:
- Se saben sólo un 20% de las instrucciones del lenguaje que manejan, por lo tanto, para construir una acción que debería ser realizada con 5 líneas de código, ellos utilizan 100.
- No les gusta investigar sobre tecnología, prefieren el diario, el deporte o pornografía.
- No saben ni una pizca de inglés, por lo tanto cualquier página que sea desplegada en este idioma es cerrada más rápida que su despliegue.
- Se creen tecnológicos y vociferan que saben más que el resto.
Si en tu grupo tecnológico te encuentras con alguno de estos DEGRADADORES, dado que no se les puede llamar programadores, trata de explicarle que no continué en esta actividad, ya que le hace daño a los que realmente están preocupados de que esto de la tecnología funcione bien.
Aunque ustedes no lo crean, existen excelentes programadores en nuestro medio y fíjense que siempre son los más callados del grupo, por eso el título de este post pretende dar ánimo a estos calladitos, ya que por lo general, ni siquiera reclaman por un sueldo justo.
Estimados, “Que nunca nos de julepe, ser pulentos entre tanto julero”.
Nos vemos pronto.
HustlerByte