25 may 2008

Vulnerabilidad en OpenSSL revela debilidades en el proceso de desarrollo OpenSource

Según un reporte de la consultora Gartner el 06 de mayo el SANS Institute estableció una "alerta amarilla" respecto de una vulnerabilidad en el protocolo SSL de algunas distribuciones Debian. El reporte mencionado se puede encontrar aquí.


En la sección de análisis de este documento se relata que la vulnerabilidad fue aparentemente introducida por desarrolladores de Debian y no por los desarrolladores de OpenSSL, en un intento de corregir un problema con la gestión de memoria resultando en una debilidad del generador de número aleatorios provocando que sea muy sencillo para un atacante descubrir las claves de encriptación.

Se indica también que los desarrolladores de Debian intentaron comunicarse con la comunidad de desarrolladores de OpenSSL, pero "los procesos de comunicación informales fueron evidentemente inadecuados en este caso". Menciona también que este hecho confirma el punto de vista de Garner sobre que "los procesos de comunicación en el desarrollo open source necesitan mejoras significativas".

Al parecer el caso es aún más grave puesto que, según menciona el informe, el código no solamente fue parcheado por los desarrolladores de Debian sino por otros fabricantes de software sin siquiera intentar comunicarse con los desarrolladores de los paquetes de base.

El documento finaliza con varias recomendaciones, todas ellas muy atendibles, sin embargo lo que llama la atención es la percepción sobre el proceso de desarrollo OpenSource y los problemas que acarrea la falta de un proceso de comunicaciones mejor establecido que evite que sucedan estos casos que ponen en riesgo a una notable cantidad de aplicaciones y usuarios.

Si bien es cierto el modelo de desarrollo OpenSource ha demostrado ser superior en muchos aspectos, no lo es menos que también tiene sus debilidades y justamente la comunicación entre los equipos de desarrollo y al interior de ellos mismos supone siempre un gran reto y un factor que incluso puede determinar el éxito o el fracaso del proyecto.

Algunos enlaces útiles: El reporte de Gartner, la descripción de la vulnerabilidad, otro artículo sobre el mismo tema, OpenSSL en Wikipedia, la página oficial de OpenSSL, un artículo sobre el proceso de desarrollo OpenSource.

17 may 2008

Nuevo habitante

Desde hace un par de días, este pequeño blog tiene el privilegio de pertenecer a Teh Ica Planet, una iniciativa que pretende reunir el trabajo de los bloggers técnicos de Ica en un solo lugar, lo cual me parece una excelente idea. Personalmente, me siento muy complacido de poder compartir este planeta con los más reconocidos bloggers del medio.

Esta noticia viene de la mano con un esfuerzo personal que me he impuesto por incrementar mi "frecuencia de posteo" que, como es público y notorio, no es aún muy significativa. Aprovecharemos como excusa que Mayo es el mes en que se celebra el Día de Internet para tratar de postear un poco más que de costumbre y así, de paso, contribuimos con el contenido de Teh Ica Planet.

Entonces, ya lo sabes, si vives en Ica y te interesan los tips, trucos, hacks, noticias o simplemente datos sobre temas técnicos puedes leerlos en Teh Ica Planet donde se encuentran los bloggers de la región reunidos y dispuestos a compartir.

10 may 2008

Internet Explorer en Linux

Acabo de instalar Internet Explorer 6 sobre Ubunty Gutsy (recién hoy actualizaré a Hardy Heron) y parece funcionar correctamente, al menos hasta donde lo he podido probar. Si no sabías que se podían instalar programas de Windows en Linux, pues te cuento que sí se puede para ello primero debes instalar Wine.

Wine es una implementación de la API de Windows para plataformas Unix y Linux, de modo tal que los programas para Windows corren sobre Wine sin modificaciones y una buena parte de ellos lo hace bien e incluso más rápido que en Windows.

Si ya sabías de Wine, probablemente te estarás preguntando y ¿para qué querríamos ejecutar IE cuando en Ubuntu tenemos Firefox por defecto?. Se me ocurren dos razones, una, para no tener que utilizar una segunda máquina o tener que reiniciar nuestra máquina en Windows cuando desarrollamos sitios web que deben ser comprobados con diversos navegadores y, dos, para quienes queremos utilizar Linux como sistema operativo de escritorio y estamos obligados a navegar hacia sitios web diseñados exclusivamente para IE, justamente es mi caso.

¿Cómo?

Para instalar una o más versiones de Internet Explorer sobre Linux utilizando Wine, existe una alternativa denominada IEs 4 Linux que brinda una forma sencilla de hacerse con las diferentes versiones del navegador de Microsoft sin mayor esfuerzo. Para ello se deben seguir unas sencillas instrucciones, básicamente: habilitar los repositorios universe, instalar Wine y luego instalar IEs4Linux.

Gracias a IEs4Linux podremos, luego de algunos minutos, ejecutar IE sobre Linux, en mi caso me bastó con instalar IE6, ahora lo puedo ejecutar tecleando:

.ies4linux/bin/ie6

Haciendo clic sobre la imagen se puede ver el resultado.


A tener en cuenta
  • La instalación de Wine toma algo de tiempo, dependerá sobre todo de tu ancho de banda.
  • Tuve que reiniciar la instalación de IEs4Linux más de 10 veces (sin exagerar) debido a que se cortaban las descargas (no me detuve a analizar el motivo) si te sucede lo mismo y das con el motivo de esto o mejor aún si sabes como evitar este inconveniente ponlo en los comentarios.
  • Puedes instalar hasta 3 versiones de IE 5, 5.5 y 6, la versión 7 esta en fase beta.
  • No utilices IE para navegar, para disfrutar de la web tenemos Firefox, también Opera y Safari.
  • Y, por supuesto, nunca esta demás darle una mirada a las notas legales.

22 abr 2008

Flisol 2008

Este sábado 26 de abril se realizará la 4ta edición del Festival Latinoamericano de Instalación de Software Libre - FLISOL 2008, un evento que se realiza en simultáneo en 16 países de Latinoamerica con múltiples sedes en cada país. Si bien es cierto Ica no será sede de este evento parece muy factible asistir a una de las dos sedes establecidas en Lima que son la Universidad de Ingeniería y la Universidad Tecnológica del Perú.

Si no sabes con precisión lo que es el software libre, o quieres conocer más de él, si has decidido instalar Linux pero no sabes cómo, entonces este evento es para ti. No te lo pierdas!

La temática principal del Flisol 2008 en Perú será "TIC's Educación y Software Libre" por lo que es una invitación especial, aunque no exclusiva, para los maestros de todo el Perú. Si eres estudiante de educación, maestro o ejerces como tal, inscríbete y participa. En este evento podrás apreciar cómo el software libre puede ayudarte a mejorar tu desempeño y el de tus alumnos utilizando tecnologías que no restringen tu libertad ni la de ellos.

12 abr 2008

Virtualización

Este es uno de los términos de moda al día de hoy en el mundo informático, aunque en realidad no se trata de una novedad absoluta. Lo que sí es novedad es la cantidad de opciones y la facilidad con la cual se puede implementar. Especialmente si nos referimos a virtualización nativa, existen muchos productos que con muy pocos conocimientos técnicos nos permiten instalar una máquina virtual sencilla.

Es decir que en este momento tenemos múltiples opciones para ejecutar un sistema operativo dentro de otro como podría ser windows - windows, windows - linux, linux - windows; solo por citar los ejemplos más populares.

Pero, antes que nada, ¿porqué se nos ocurriría ejecutar un sistema operativo(guest) dentro de otro (host)? Pues las razones y las ventajas de hacerlo son múltiples, aquí algunas de ellas:

1. Para aprender, en una máquina virtual puedo instalar el sistema operativo y las aplicaciones que se me ocurran, utilizarlos tanto como sea necesario y desecharlas cuando ya no me interesen. Todo ello sin tocar mi entorno habitual de trabajo ya que todo estará encapsulado en el sistema operativo virtualizado.

2. Para un programador, contar con máquinas virtuales para cada plataforma en la quiera desarrollar/probar/desplegar su trabajo es una bendición y todo puede estar un mismo hardware.

3. Para sistemas en producción, estar alojados en un sistema operativo virtualizado simplifica enormemente su administración/recuperación. Dado el caso de un fallo de hardware en un sistema no virtualizado, las dependencias hardware-software pueden ser difíciles de salvar sobre todo si se te malogra una placa madre que hace años esta descontinuada entonces tienes un quebradero de cabeza que una máquina virtual no te daría.

4. Para aprovechar mejor el hardware, existen muchos sistemas que subutilizan el hardware en el que estan alojados, esta situación implica un desperdicio de recursos principalmente procesamiento/almacenamiento/energía. Así que si movemos esos sistemas a los que les queda grande el hardware cada uno a una máquina virtual y las alojamos todas en un servidor potente, tenemos que ese hardware estará siendo utilizado más eficientemente. De paso, simplificamos la administración y el respaldo de los sistemas. A esto se le suele llamar consolidación.

Es cierto que no todo son ventajas cuando utilizamos virtualización nativa, pero en mi opinión las ventajas son muchas y, por lo tanto, es un tema considerar muy en serio.

Pues bien, el siguiente paso sería animarnos a instalar algún software de virtualización de los cuales existen muchos, para todas las plataformas y necesidades. Si se deciden a ello, no dejen de comentarme cómo les fue.

Finalmente, una aclaración y se refiere al término virtualización que en realidad se refiere a un rango muy amplio de aplicaciones, no necesaria ni exclusivamente a la virtualización nativa que es a lo que me he referido en este artículo. El enlace los puede llevar a Wikipedia donde tenemos una muy buena explicación del término. Hasta pronto.

20 mar 2008

Estar en la Universidad es una cosa de Google

Google Code University, es un sitio web donde podemos encontrar tutoriales, resúmenes y diapositivas sobre temas de programación, la mayor parte de ellos están organizados como cursos. El sitio no es super abundante en información pero los temas que estan disponibles hasta ahora son suficientemente variados e interesantes.

Por mi parte, leí el artículo de introducción a las bases de datos y MySQL de un tirón y me pareció entretenido, claro y conciso. También llegué a ver los primeros 30 minutos del video sobre Hilos en C++, una característica que se implementará en el estándar, y nuevamente lo encontré muy interesante y didáctico. Terminaré de verlo más tarde seguramente. El vídeo sobre nuevas características del C++ standard no estaba disponible, espero que esto se arregle pronto.

Más allá de mi interés por el lenguaje C++ seguramente le daré una mirada a los recursos sobre Python y Ajax, así que por lo menos para mi, el Google Code University empieza a ser un sitio interesante, si se dan una vuelta por ahí no dejen de contarme qué les pareció.

Los interesados en el orígen de esta iniciativa pueden leer siguiente artículo.

5 dic 2007

Apilando contenedores

Hola, tengo un problema sencillo de plantear y muy interesante para ser resuelto. Se trata de figurarnos que tenemos que operar una grúa de un puerto para apilar contenedores que luego serán cargados en sendos barcos. Pues bien, si cada contenedor esta marcado con una letra (A-Z) la cual indica el barco en el que será cargado, y además sabemos que los barcos arribarán en estricto orden alfabético, debemos determinar el mínimo número de pilas que se necesitan para cargar eficientemente los barcos.
Aclarando lo de "eficientemente" diremos que siempre será mejor que los contenedores se encuentren en la parte superior de las pilas para no tener que retirar otros contenedores de encima antes de cargarlos en su respectivo barco.
Listo, el reto esta planteado... se aceptan ideas!!