10 de noviembre de 2005

Los peores bugs de la historia

En este artículo, Simson Garfinkel hace una recopilación de algunos de los peores errores de software en la historia. Entre estos se encuentran errores que han causado la péridida de vidas, o que sus efectos han costado muchos millones de dlls.

Como dice el autor, los bugs del software han llegado para quedarse. Dado que el software es creado por personas, quienes están propensas a cometer errores, difícilmente los bugs del software podrán eliminarse por completo algún día. Sin embargo, también es cierto que el software ha causado mayores beneficios que los problemas que puedan causar los bugs en el mismo.

8 de noviembre de 2005

El super computador MareNostrum

En este sition, el mundo.es publica una serie de fotos de la computadora más potente de Europa, y la cuarta en el mundo hasta el momento, el MareNostrum, ubicada en Barcelona, España.

23 de septiembre de 2005

Spyware, ¿qué es y qué hace?

El termino spyware se comenzó a utilizar a finales de 1995, para denominar programas que hacían precisamente lo que su nombre sugiere, espiar a los usuarios de computadoras. Este tipo de programas han aprovechado el acelerado crecimiento de Internet para su proliferación, al grado de que según palabras de Steve Gibson, el creador del primer programa para detección y eliminación de spyware, los programas spyware “son el más reciente y mayor problema; una gran fuente de intranquilidad, preocupación, y frustración que cualquier usuario de PC haya enfrentado antes, y son potencialmente más dañinos que el peor de los virus de computadora” (CACM, 48(8): 37-39 p., accesible en http://portal.acm.org/). Incluso, Paul McFedries los considera como una pesadilla en su artículo publicado en la sección technical speaking del número de agosto de 2005 de la revista Spectrum de la IEEE (IEEESpectrum, 42(8):72 p., accesible en: http://www.spectrum.ieee.org/).

Pero en sí, ¿qué es un programa spyware y qué puede hacer? El termino spyware se utiliza para catalogar programas maliciosos que pueden tomar control parcial o interceptar el funcionamiento de una PC sin el consentimiento del usuario, y casi siempre sin su conocimiento. Estos programas trabajan para beneficio de terceras personas, por ejemplo para obtener información sobre los intereses de los usuarios, como las páginas que visitan en Internet. Sin embargo, existen otros que pueden obtener información personal del usuario, por lo que se han vuelto un serio problema de seguridad, sobre todo en este tiempo que el manejo de información sensible, como cuentas bancarias, números de tarjetas de crédito, etc., se utiliza cada vez con mayor frecuencia para hacer transacciones por Internet.

La diferencia de los programas spyware de los virus y gusanos, es que no se copian o replican a sí mismos. Por lo general se instalan como parte de otros programas que son instalados por los usuarios. Estos programas pueden ser aplicaciones comerciales, o aplicaciones distribuidas de manera “gratuita” por Internet, como sistemas para compartir archivos; por ejemplo música, etc. Algunos de estos programas dan la posibilidad a los usuarios de elegir no instalar los programas spyware, mientras que otros ni siquiera indican al usuario la existencia de spyware como parte de la instalación del programa. Y más aun, algunos obligan al usuario a mantener instalados los programas spyware para que la aplicación pueda seguir funcionando. Entre los programas más usados que contienen spyware se encuentran: Kazaa, EDonkey2000, DivX, Bonzi Buddy, AOL Instant Messenger, y Gator ente otros. Así que si piensa instalar alguno de estos, o algún otro programa que los contenga, piénselo bien antes de hacerlo.

Algunos de los programas considerados como spyware no constituyen un verdadero riesgo, debido a que sólo funcionan para dar recomendaciones al usuario sobre posibles artículos o sitios comerciales en Internet, tomando en cuenta las preferencias del usuario, por ejemplo, monitoreando que sitios visita, o qué artículos compra en ciertos sitios. Este tipo de spyware representa una molestia al estar navegando por Internet, ya que envían mensajes, o re-direccionan las páginas de búsqueda, consumen recursos que disminuyen el rendimiento del sistema haciendo que los programas funcionen más lentamente, etc. Debido a esto, muchos usuarios se han acostumbrado a que sus máquinas se encuentren infectadas. Por ejemplo, en un estudio realizado para investigar qué tanto sabían los usuarios sobre el spyware, se detectó que un 45.6 % de los participantes tenían conocimientos sobre la existencia de spyware en sus computadoras, pero sólo el 41.7% tomaba medidas para combatirlo. Quizá esto se deba a la falta de conocimiento por parte de los usuarios del riesgo potencial que estos sistemas pueden tener para la seguridad de su equipo y su privacidad. Existen programas spyware que pueden utilizar la computadora para realizar ataques a otros sistemas, o robar información sensible, como números de cuentas bancarias o tarjetas de crédito. Por ejemplo, algunos programas permiten que otras personas utilicen la computadora al estar conectada a Internet, para enviar correos o solicitudes de acceso a sitios específicos ocasionando que éstos dejen de funcionar. Otros exploran la computadora en busca de vulnerabilidades que puedan ser usadas por hackers para acceder al sistema y robar información.

Existen estudios que sugieren que más del 90% de las PCs conectadas a Internet se encuentran infectadas con algún tipo de spyware. Sin embargo, pocos usuarios toman medidas al respecto, quizá porque no están concientes del riesgo que estos programas implican para la seguridad de su privacidad. Por lo tanto, la primera acción que podemos tomar para iniciar a protegernos y combatir los programas spyware es darnos cuenta del riesgo que representan. Este artículo pretende servir para qué los usuarios comencemos a tomar este riesgo en cuenta. En los próximos hablaremos sobre como prevenirlos y combatirlos. Hasta la próxima entrega.

18 de agosto de 2005

La PC más famosa del mundo

En este artículo publicado en el Universal el día 18 de agosto de 2005, se habla de que la Comodore 64 ha sido la PC más famosa del mundo hasta el momento. Al leer este artículo recordé mis inicios en el mundo de las computadoras, ya que la primera que toqué e intenté progrmar fue precisamente una Comodore 64. Incluso, esta computadora todavía sigue funcionando y se encuentra guardada en casa de mis padres. Así que si hay por ahí un nostálgico que le gustaría contar con ella, así como con todos los dispositivos con que la equipó mi padre (lector de diskets, cassets, impresora a color, pluma digital, y software variado), y está dispuesto a pagar por ello, quizá podamos hacer negocios.

Para leer más sobre este artículo: "La PC más famosa del mundo"

4 de agosto de 2005

Spyware, ¿la nueva guerra en Internet?

Por lo general no nos preocupamos por los problemas hasta que los padecemos. Durante mucho tiempo me sentí seguro al navegar en Internet, pensé que tenía todo cubierto, mi antivirus corriendo correctamente, mi sistema operativo actualizado, y un buen control sobre los programas instalados en mi computadora. Por eso nunca me preocupé por tener algún virus o programa no deseado. Así estuve trabajando durante muchos meses, hasta que algo en mi sistema dejó de funcionar correctamente.

A finales del mes de Julio, me di cuenta de que mi computadora comenzó a fallar, algunos programas dejaron de funcionar, y otros lo hacían muy lentamente. Fue aquí que decidí investigar lo que podría estar pasando. Mi principal preocupación fue que mi máquina se hubiera infectado con un virus, así que decidí correr el antivirus, el cual no detectó nada. Después decidí acceder a varios antivirus en línea para ver si era algún virus nuevo que mi antivirus no detectaba, pero nada. Así que decidí correr programas de detección de spyware. Con esta revisión detecté algunos programas conocidos como adware y spyware, pero después de borrarlos el problema continuó. Tuve que solicitar la ayuda de un técnico, quien utilizó un programa especial. Así nos dimos cuenta de que había programas no deseados que podrían estar funcionando como spyware. Sin embargo, una vez borrados, el problema continuó. Lo peor, fue que seguí detectando señales que sugerían la existencia de algún programa dañino, sin embargo, no encontramos la forma de detectarlo para eliminarlo. Finalmente, la opción que consideramos más segura, fue formatear mi máquina para reinstalar por completo el sistema operativo, así como los programas que requería para trabajar. Gracias a que por experiencias pasadas tomé medidas para proteger mi información de estas situaciones, no perdí nada importante. Sin embargo, esto me dejó pensando en los problemas que pueden causar los programas no deseados en nuestras computadoras.

Los programas conocidos como spywares han tenido una evolución reciente que los ha convertido en una verdadera amenaza para quienes trabajan con sus equipos conectados a Internet. La problemática de estos programas es tal, que la revista Communications of the ACM, una de las más leídas a nivel internacional por profesionistas e investigadores en el área de ciencias de la computación, ha dedicado su edición de agosto de 2005, a tratar el tema del spyware, con artículos que reportan experiencias e investigaciones científicas al respecto (los resúmenes de estos artículos pueden verse en http://portal.acm.org/, ingresando a la revista CACM, volumen 48, número 8).

Debido a los problemas que los programas spyware pueden causar a los usuarios de Internet, he pensado en escribir una serie de blogs al respecto. En estos blogs hablaré sobre qué son estos programas, cuáles son sus características, qué daños pueden causar, y cómo podemos combatirlos, así como algunas medidas de seguridad para prevenirlos, o minimizar sus efectos. Hasta la próxima entrega.

12 de julio de 2005

¿Qué tipo de desarrolladores queremos formar?

Pensando un poco en mi post titulado "¿Qué tipo de desarrollador quieres ser?", me vinieron a la mente algunos recuerdos. La pasada semana del 20 al 24 de Junio, asistí a la semana MoProsoft organizada en la Ciudad de Mexicali, B.C., dónde se presentaron diversas pláticas y mesas de discusión relacionadas con el desarrollo de software en méxico, donde participaron personas de la industria, academia y gobierno. Así también, durante esta semana, tuvimos la fortuna de asistir al taller de MoProsoft impartido por su principal creadora: la Dra. Hanna Oktaba.

Dentro de las mesas de discusión, surgió un tema que ha sido de interés para la comunidad de ingeniería de software en México durante los últimos años, el cual se relaciona con la formación de recursos humanos en el área de ingeniería de software. Esto surgió de una inquietud expresada por los estudiantes que participaron en el evento, quienes se encuentran preocupados porque en las escuelas se les enseñan cosas que las empresas no requieren, y lo que las empresas requieren, no se les enseña. Creo que este es el clásico tema de la falta de entendimiento entre lo que es importante para la industria, y lo que es importante para la academia.

Un punto interesante que salió a discusión, se relacionaba directamente con el desarrollo de software, y en particular, con la programación. Los estudiantes se quejaron de que se les "enseñaban" muchos lenguajes de programación, pero no los que la industria requería; los empresarios se quejaban de qué los egresados no sabían programar; mientras que los académicos argumentaban que se trataba de formar a los alumnos, no capacitarlos en un lenguaje específico, o como programadores para cierto sector (esto puede dar para una amplia discusión sobre qué vamos a considerar como formación, y qué sobre capacitación; y más aun, qué parte le corresponde aportar a la academia, qué a la industria, y qué a los mismos estudiantes).

En mi experiencia personal, creo que todos tienen algo de razón en sus argumentos. Una licenciatura o ingeniería no es un curso de capacitación, sino de formación. Además, desde el punto de vista de la programación, un académico no se puede casar con un lenguaje de programación o tecnología específica, ya que esta cambia constantemente, y diferentes empresas pueden requerir diferentes tecnologías. Por lo tanto, el objetivo no es enseñar un lenguaje, sino enseñar a programar. Por ejemplo, durante mi carrera de Ingeniero en Sistemas Computacionales, me "enseñaron" a programar en Cobol, Pascal, y finalmente C (aunque aprendí a programar en C antes de que me dieran el curso, y con mayor profundidad que lo que pude haber aprendido en clase). Sin embargo, durante ese tiempo Cobol era un lenguaje prácticamente extinto, y con una lógica que difícilmente nos pudiera servir posteriormente para aprender otro. En fin, aun cuando llevé estos tres cursos de programación, creo que donde realmente aprendí a porgramar (diseñar e implementar estructuras de datos y algoritmos un poco complejos) fue en el curso de programación de sistemas donde debimos desarrollar un compilador, pasando por todas las faces (análisis de léxico, semántica, manejo de variables locales y globales, reutilización de variables temporales, generación de código intermedio, ensamblador, y finalmente executable). Cabe hacer mención que este aprendizaje fue principalmente autónomo, y con un lenguaje diferente a los que vi en clases (Delphi para ser exacto). Creo que la dificultad que implicaba el desarrollo completo de un compilador, fue lo que realmente me ayudó a aprender a programar, buscando la manera de implementar algoritmos y estructuras de datos para poder llevar a cabo las distintas etapas del compilador.

Lo anterior fue lo que me ayudó a empezar a trabajar como desarrollador al salir de la carrera, aún cuando debí utilizar un lenguaje que nunca había usado antes (FoxPro). Esto fue lo que me hizo ver que no importa mucho qué lenguaje se utilice en un aula mientras que realmente se enseñe a programar. Sin embargo, creo que la academia constantemente falla en este punto, dado que por el afán de que los estudiantes tengan un espectro más amplio, se pierde mucho tiempo enseñando diferentes lenguajes sin profundizar en ellos, es decir, sólo se desarrollan programas sencillos para ejemplificar el funcionamiento de la sintaxis y semántica del lenguaje, más no para resolver problemas por medio del diseño y desarrollo de algoritmos y estructuras de datos. Más aun, cada profesor trata de ver las cosas según su punto de vista particular, y no se conjugan los esfuerzos en pro del bien de los egresados.

Considero que por el bien de los futuros ingenieros de software, es necesario que los académicos empecemos a ponernos de acuerdo para encaminar los esfuerzos hacia un mismo destino, y no que cada quién trate de llevar agua a su molino. En el caso del desarrollo de software, tenemos que empezar a pensar en qué tipo de desarrolladores queremos formar.

7 de julio de 2005

Los roles del desarrollo de software

En una serie de artículos en la revista electrónica developer.com, Robert Bogue trata sobre los diferentes roles involucrados en el desarrollo de software, ininciando con su artículo: "Cracking the Code: Breaking Down the Software Development Roles". Creo que es una serie de artículos interesantes sobre todo para los que se hayan involucrados con el desarrollo de software.

¿Qué tipo de desarrollador quieres ser?

¿Cuál puede ser la clave para el éxito de un desarrollador de software?, ¿ser un todólogo, o un especialista?. Por lo general, cuando uno se dedica al desarrollo de software, su interés se centra en poder ser capaz de desarrollar cualquier tipo de aplicación. Sin embargo, como Robert Bogue lo trata en su artículo "The Many Faces of a Developer", quizá la clave para el éxito sea convertirse en un desarrollador especialista. Si consideramos el crecimiento acelerado dentro de la industria del software, tener claro este punto puede ser más que importante. Constantemente nacen nuevos métodos, técnicas y herramientas para desarrollar software, así como nuevos tipos de aplicaciones. Por lo tanto, pensar que podemos llegar a ser expertos en todo puede ser sólo un sueño guajiro. Esto nos lleva a pensar: ¿es conveniente seguir tratando de conocer todo por encima, o ser especialista en ciertos tipos de aplicaciones, herramientas de desarrollo, lenguajes, etc.?

26 de mayo de 2005

To blog or not to blog?

To blog or not to blog se ha convertido en una pregunta interesante. Prueba de esto es el número de resultados que puede ofrecer un motor de búsquedas a esta pregunta. Para comprobarlo introduzca la frase “to blog or not to blog” (con todo y comillas) en algún buscador de Internet. Al 12 de Mayo de 2005, Google regresó 35 200 resultados relacionados con esta frase. Pero qué quiere decir blogear (o blogging en inglés). O mejor dicho, qué es un blog.

El uso de espacios personales para expresar ideas en Internet, se incrementa y mejora constantemente. Anteriormente este tipo de espacios lo constituían las páginas o sitios Web personales. Sin embargo, en los últimos años se han creado nuevas formas de permitirnos contribuir al mundo y hacerle saber al resto de los mortales que existimos.

Un medio cuya aceptación ha crecido en los últimos años son las bitácoras personales, conocidas como weblogs, o blogs. La enciclopedia wiki, o Wikipedia, define un weblog como una aplicación Web que contienen artículos, o información que es agregada en forma periódica en una página Web determinada (http://en.wikipedia.org/wiki/Blog). Estos sitios pueden ser usados por individuos para manejar sus tareas diarias, expresar ideas y compartirlas con amigos, familiares, clientes, etc. Así también, se puede permitir la colaboración de otras personas creando blogs para compartir información entre un grupo de individuos con intereses comunes; por ejemplo, un blog organizacional donde se permita la colaboración de los clientes, proveedores y/o empleados.

El termino weblog fue creado en 1999 por John Barger, un escritor estadounidense, editor de uno de los primeros weblogs. A partir de entonces, cada vez más personas se fueron interesando y varios weblogs fueron desarrollados. Actualmente, los sistemas de blogs ofrecen diferentes características además de poder agregar información. Por ejemplo, permiten compartir imágenes, crear ligas a otros sitios, definir permisos de acceso para poder tener control de a quién se le permite leer, agregar o modificar la información, etc. Además de que la manera de presentar la información puede ser personalizada por los usuarios de forma relativamente sencilla, por lo que no se requiere conocer sobre programación para poder tener nuestro blog propio.

Entre las bondades de los blogs está el que permiten establecer contactos con personas que tengan aspectos en común; por ejemplo, intereses o pasatiempos, que hayan estudiado en la misma escuela, que vivan en la misma ciudad, etc. De esta manera una persona puede acceder a los blogs de aquellos a quienes les haya gustado la misma película, o que gusten de su mismo tipo de música.

Uno de los primeros servidores de blogs fue blogger, el cual fue adquirido por Google en 2004. Recientemente Microsoft ha desarrollado su propio sistema de blogs denominado Mi espacio o My space. Por su parte, Yahoo ha lanzado la versión Beta de Yahoo! 360 , que es un sistema que combina los blogs con otra serie de servicios. Otros proveedores de almacenamiento de blogs pueden ser encontrados en Yahoo, o en Google.

El interés por los blogs se encuentra en crecimiento, y cada vez más personas deciden crear el suyo propio. Para ver algunos ejemplos, es posible acceder a los blogs de los sitios mencionados, o si lo prefiere, a la sección de informática de la versión online del periódico el Imparcial donde constantemente se listan una serie de blogs al azar.

Así que sí alguna vez ha tenido la inquietud de tener su propio espacio a través del cual compartir sus intereses o experiencias con sus seres queridos, o si sólo desea que sus palabras no se las lleve el viento, sino que más bien queden para la posteridad navegando a través del ancho mar que es Internet, es hora de que se pregunte: to blog or not to bolg?

Por lo pronto, como usted lo está viendo en este momento, yo ya he iniciado el mio.

12 de mayo de 2005

Calafia Research Lab

Calafia Research Lab

Este es el blog del laboratorio Calafia, enfocado a la investigación en redes y sistemas. En este laboratorio se desarrolla investigación en áreas relacionadas con redes y protocolos de internet, sistemas colaborativos, cómputo movil y ubicuo, ingeniería de software y de procesos, e informática médica. Este blog contiene información sobre algunos de los trabajos realizados por los participantes de este laboratorio.

5 de abril de 2005

Una reflexión sobre el conocimiento

Todos vivían dentro de su propia esfera. En un principio, estas esferas eran chicas y obscuras. Con el tiempo, hubo quienes a pesar de la incomodidad de la falta de espacio, y de no poder ver por la falta de luz, comenzaron a sentirse cómodos viviendo así, ya que sentían que tenían pleno control y conocimiento de todo lo que los rodeaba. Sin embargo, hubo quienes se hicieron la pregunta de qué había más allá. Estos comenzaron a quitar pedazos de la esfera que los rodeaba, y con cada pedazo veían que su espacio se incrementaba y un poco de luz se asomaba, pero la esfera sólo crecía y crecía.

Con el tiempo, cada vez se hacía más difícil seguir buscando qué había fuera de la esfera, dado que cada pedazo que se quitaba, sólo dejaba ver que varios más se encontraban detrás. Algunos se fueron dando por vencidos y decidieron quedarse con lo que habían logrado. Sin embargo, otros siguen buscando encontrar que existe mas allá de la esfera que los rodea.

Este cuento representa mi visión del conocimiento. En esta analogía, me veo encerrado dentro de una esfera; todo a mi alrededor son preguntas; conforme voy eliminando estas preguntas con respuestas, veo que el espacio a mi alrededor crece, y la luz que logra entrar a través de esos pequeños bloques que voy eliminando me deja ver un poco mejor mi alrededor. Sin embargo, esa esfera que me encierra no desaparece, sino que al contrario, cada vez se hace más grande; con más preguntas por resolver.

Considero la vida como algo similar, hay quienes se conforman con tener un espacio conocido donde sentarse a esperar pasar la vida, y hacen suposiciones sobre lo que existe más allá de ese espacio. Otros necesitan de mayor movilidad, pero cuando la obtienen, dejan de buscar qué hay más allá. Finalmente, hay quienes buscan saber qué es lo que existe fuera de la esfera, así les tome la vida intentar averiguarlo. Estos últimos son quienes se han dado cuenta de que hay un mundo mucho mayor que ellos, y que cada respuesta solo genera más preguntas. Saben que viven en un mundo inacabado y en constante cambio, donde lo que fue en un día, podría no serlo en el siguiente.

No hay más que recordar la frase más conocida de uno de los más grandes filósofos que ha existido: "Yo sólo sé que no sé nada", usada por Sócrates para defenderse de sus acusadores.