sábado, 17 de mayo de 2008

¿Es Ruby tan bueno como dicen?

Hace unos años pasé por la disyuntiva de elegir un nuevo lenguaje de programación y, como les pasará a unos cuantos, llegué a la definición entre python y ruby. En ese momento me decidí por python, ahora no recuerdo bien los motivos en detalle, pero hasta ahora no me arrepentí.

Hoy encontré este post (larguísimo) de por que ruby no es un buen lenguaje. Sinceramente, es la primera vez que leo algo escrito por este tipo, pero a menos que le haya puesto muy pocas ganas a la comparación (o al aprendizaje de ruby), ruby esta en problemas.

¿Es realmente ruby tan malo e inconsistente? Ya sabía que ruby no era muy bueno en cuanto a performance, pero e sorprende que maneje tan mal el soporte de unicode, y los metodos/funciones que hacen cosas similares con nombres diferentes, y peor aun los que hacen cosas diferentes con nombres similares...

Antes que lo lean, aclaro que al tipo le gusta python, y cada tanto manda algunos comentarios que no hacen más que meter ruido, pero mas allá de eso el post me parece muy bueno, y con muchos links a otros articulos relacionados, también interesantes.

Por supuesto, este post generó un montón de comentarios, críticas y también tenía algunos errores. La semana pasada publicó otro post con algunas correccciones y comentacios interesantes.

martes, 13 de mayo de 2008

Vulnerabilidad en openssh - como arreglarla

Aviso importante para los que usan Debian y sus derivados (entre ellos Ubuntu)!

Para el que todavía no se enteró, esta mañana se reportó una falla grave de seguridad en el OpenSSH para Debian y Ubuntu. Resumiendo, las claves generadas después del 2006 son potencialmente vulnerables dado que las función que genera números aleatorios en openssl era predecible.

Gracias a la velocidad de respuesta del software libre, ya están disponibles los paquetes de actualización para Debian y Ubuntu. Supongo que otras distribuciones pueden tener el mismo problema, pero no lo comprobé.

Para solucionar el problema de seguridad hay que seguir los siguientes pasos.

En primer lugar, actualicen sus sitemas:

$ sudo apt-get update
$ sudo apt-get upgrade

Con esto se arreglan los problemas de las futuras claves que se generen.

Para validar las claves actuales, los desarrolladores de Debian subieron un script para validar las claves personales y de host

$ wget -c http://security.debian.org/project/extra/dowkd/dowkd.pl.gz
$ gunzip dowkd.pl.gz
$ chmod u+x dowkd.pl
$ ./dowkd.pl user
$ ./dowkd.pl host hostname

Si al script le pasamos el argumento user, chequea las claves del usuario. Con el argumento host, se puede indicar un nombre de host al cual se le quiere hacer el testeo.

Si las claves fueron generadas con esta versión defectuosa del openssl, seguro el script va a dar algun mensaje diciendo que la clave es débil. En este caso hay que regenerar las claves del usuario y del host.

Para regenerar las claves de usuario:

$ ssh-keygen -t dsa -b

Para regenerar las claves del host:

$ sudo rm /etc/ssh/ssh_host_{dsa,rsa}_key*
$ sudo dpkg-reconfigure -plow openssh-server

Recuerden que deben limpiar el archivo ~/.ssh/known_hosts y volver a transmitir su clave pública a sus servidores, o es posible que no puedan volver a entrar ;)

sábado, 3 de mayo de 2008

Instalación de Hardy en la Macbook

Estuve probando la instalación de Ubuntu Hardy en modo 32 bits en la MacBook, ya que había encontrado algunos problemas con la paca wifi al actualizar la versión de 64 bits.

La instalación fue sorprendentemente rápida, en unos 25 minutos la máquina estaba instalada y corriendo con la versión de 32 bits, pero tuve los mismos problemas con la placa wifi. Tuve que compilar los módulos a mano, pero no se asusten que es algo muy simple, solo un par de comandos.

Por ahora parece que me quedo con los 32 bits. El consumo de memoria es un poco menor, y aparentemente debe haber alguna diferencia en los drives de video (placa intel) ya que el X levanta un poquito más rápido.

Más allá del problema de la placa wifi, cabe destacar lo fácil y rápido que es instalar Ubuntu. En menos de media hora tenés un sistema funcionando con un sistema operativo de última generación, en el idioma que hayas elegido, y con todas las aplicaciones que un usuario normal pueda necesitar: suite de oficina, un navegador como la gente, mensajería instantánea, reproductor de medios, etc, etc.