Archive for the ‘ NullPointerException ’ Category

Síndrome de Diógenes Digital

Samsung HD103UJ y raíles de montaje de Sharkoon

Me he cansado de tener que borrar cosas de los discos duros o de estar tostando soportes “canonizados”, así que he empezado a subir de orden de magnitud el almacenamiento de mi querido pepino servidor ubuntero, aun a costa de acabar experimentando la versión digital del Síndrome de Diógenes. Un bonito disco duro de Samsung de 1TB SATA.

Gracias al estupendo sistema de gestión de volúmenes lógicos de Linux LVM, ahora sólo la unidad lógica de datos tiene casi unos bonitos 1.3TB, dejando para el resto del sistema la décima parte, y aún queda espacio en el disco sin asignar.

Ha sido tan fácil como, una vez montado en su bahía, decirle al sistema operativo por línea de comando, y tras crear una partición en el disco nuevo del tipo “8e” (Linux LVM)

[code]sudo umount /dev/mapper/GrupoVolumenes-VolumenLogico
sudo lvm
lvm> pvcreate /dev/sd#Disco#Particion
lvm> vgextend GrupoVolumenes /dev/sd#Disco#Particion
lvm> lvextend -l+100%FREE GrupoVolumenes/VolumenLogico
lvm> exit
sudo e2fsck -f /dev/mapper/GrupoVolumenes-VolumenLogico
sudo resize2fs /dev/mapper/GrupoVolumenes-VolumenLogico
sudo mount -a[/code]

Eso sí, tarda un rato en expandir el sistema de ficheros ext3 por todos los distintos discos duros físicos.

Disco duro de Samsung HD103UJ de 1TB

En septiembre a por el segundo disco de un terabyte. Total, para algo quedan cuatro bahías libres y la fuente de alimentación es una Enermax sobredimensionada en su momento y quedan dos puertos más en la placa SATA, sin contar con los antiguos IDE con los viejos discos rebosantes de datos.

Cómo identificar claves privadas generadas por openSSL comprometidas

La gente de Ubuntu ha sacado un paquete llamado openssl-blacklist disponible como instalable desde sus repositorios de software que permite verificar si las claves privadas que tengamos generadas con openSSL están comprometidas o no por el fallo de implementación del generador de números aleatorios del paquete openssl distribuido por Debian y derivados.

Se instala directamente con apt, aptitude, synaptic o con dpkg y descargando el paquete:

[code]sudo apt-get update && sudo apt-get install openssl-blacklist[/code]

Su uso es muy sencillo, bastará con ejecutar el comando openssl-vulnkey. Toma como parámetros de entrada los ficheros con las claves privadas en formato PEM.

[code]sudo openssl-vulnkey /etc/apache2/ssl/apache.test.pem
COMPROMISED: 9c4d589707a08ed65508032b41a999a810173592 /etc/apache2/ssl/apache.test.pem[/code]

Lo que no me queda muy claro es qué pasa cuando tiene una “validez desconocida”…

[code]sudo openssl-vulnkey /etc/apache2/ssl/apache-ssl-key.pem
Key has unknown validity: /etc/apache2/ssl/apache-ssl-key.pem[/code]

Este pequeño comando complementa estupendamente al ssh-vulnkey que verifica en el formato con el que almacena las claves openSSH si alguna de las claves del servidor o los clietnes SSH está comprometida.

Para instalar el paquete en Debian, por ahora se puede descargar directamente desde http://xillion.org/openssl-blacklist/ el paquete y sus firmas digitales para verficarlo.

openSSL, Debian y la línea comentada de md_rand.c

Correción del fallo de la llamada al aleatorizador \"bueno\" de openSSL

El Error de openSSL en Debian subsanado dos años después

Menuda que se ha montado con el fallo detectado en el empaquetado del paquete openssl para distribuciones Debian y derivados, como Ubuntu. Al parecer tuvieron a bien comentar una inocente línea de código hace dos años que les daba unos errores molestos en código “no relacionado”, como bien comenta uno de los empaquetadores en el cambio en abril de 2006…

openssl (0.9.8a-9) unstable; urgency=low
[...]
* Don’t add uninitialised data to the random number generator. This stop
valgrind from giving error messages in unrelated code.
(Closes: #363516)

– Kurt Roeckx Thu, 6 Apr 2006 20:34:07 +0200

Esta cosa tan inocente consistía en comentar una llamada a una función de código que al parecer les daba un mensaje de error en alguna otra parte de código “no relacionado.” El caso es que justamente esta llamada es necesaria para que el proceso interno de generación de números aleatorios en la creación de claves asimétricas tipo RSA sea realmente aleatorio.

Leer mas

Difundiendo la palabra Ubuntu y sus CDs

Los cuatro CDs disponibles de Hardy Heron

Hoy me han llegado los distintos CDs de Ubuntu Hardy Heron 8.04 LTS a casa. Pedido especial para repartir por el trabajo y gentes varias. A evangelizar que se ha dicho…

Pedidos el 20 de abril, salieron de Canonical el 22 del mismo mes y hoy han llegado por correo ordinario en su sobre acolchado. Todos los CDs por supuesto y como siempre, gratuitos. A ver si otros hacen lo mismo…

Las versiones en formato ISO las descargué ya en su momento de los servidores de Ubuntu y sus réplicas, pero los CDs son vistosos para repartir a cualquiera que quiera conocer otro sistema operativo totalmente gratuito. Las live de la versión Desktop dan gusto, cogen todo el hardware de los últimos portátiles que he probado por el trabajo y se instala en un momento, y contar con las versiones Server para montar en dos minutos un servidor de ficheros, otro web o uno de correo es sencillamente una maravilla.

Lo dicho, a repartir CDs y con pegatinas de regalo incluidas.

¡Zona Hostil para Manazas!

Una divertida forma de advertir a los incautos usuarios de Firefox 3 de que están entrando en terrenos peligrosos. Si ponemos about:config en la barra de dirección para acceder a la configuración avanzada del navegador, nos mostrará esta adverencia.

¡Esto puede cancelar su garantía!

Parecido al huevo de pascua de about:robots también de Firefox 3. Y recordad que tienen un plan…

La hormona, osea, una encima, osea, metaboliza

A estas horas cagándome en todo IBM, su WebSphere y su manera de pegarse con Hibernate, solamente uno puede ponerse a ver vídeos del YouTube entre reinicio y reinicio del servidor…

[youtube]http://www.youtube.com/watch?v=GGcLnECnsXg[/youtube]

Ojo al detalle del pelo al final del vídeo.

Windows Error Reporting is lost in translation

windows_error_reporting.JPG

Hoy se me ha reiniciado de golpe y sin aviso el ordenador en el curro. Bueno sin aviso no. El LED del disco duro se puso a parpadear como un descosido. El caso es que tras la recuperación el bonito Windows Xp y su flamante sistema de informe de errores me mandó a una de las páginas de soporte de Microsoft. Realmente descriptiva. Sobre todo esa mezcla de traductor automático de la original en inglés.

La explicación del reinicio es bien sencilla,

Este mensaje ha aparecido porque un controlador de dispositivo instalado en el equipo provocó que el sistema operativo Windows se detuviese inesperadamente. Este tipo de error se conoce como “error de detención”. Ante un error de detención es necesario reiniciar el equipo.

Si no se quedó “detenido”, se reinició de forma unilateral. Bendito Eclipse que lo tenía todo guardado. No me hizo falta seguir con el “es necesario reiniciar el equipo…”

Leer mas

Mi primer bug aceptado

Cuando estaba haciendo mi Proyecto Fin de Carrera tuve problemas con la implementación de PEAR para PHP del protocolo SOAP para llamadas remotas. Dentro de los paquetes disponibles para PEAR existe uno aún en fase beta pero muy avanzado que permite implementar un cliente y un servidor compatible con el estándar SOAP. El problema en cuestión era que cuando usabas el transporte HTTP bajo SSL, vamos, HTTPS, la implementación se olvidaba de incluir la mitad de las cabeceras HTTP, entre ellas, las cookies, y por tanto era imposible mantener el estado de sesión entre una petición y la siguiente, ya que PHP usa, entre otras, cookies temporales con el identificador único de sesión.

El caso es que tocó mirar los fuentes del paquete SOAP en buscar del problema hasta que dí con el fallo y les mandé el problema a su sistema de seguimiento de fallos. La solución era sencilla y se podía hacer mientras tanto sin necesidad de tocar el código fuente del paquete.

Hoy por fin, casi un año después de abrir la incidencia la han cerrado enviando a su sistema de control de versiones el parche corrigiendo el problema. Han sido un poco lentos, pero es lo que tiene el desarrollo de open source, que si no hay recursos, va lento.

Creo que he subido un par de puntos en mi nivel de frikiclorianos.

SELECT * FROM cake WHERE 1

Hoy un poquito de mash-up de posts. Concretamente, dos errores de programación cuyas consecuencias son algo más que un pantallazo azul o una página web en blanco.

El primero de ellos, un error del programa que gestiona la impresión de texto en el plástico de un envase. Exige un poco de agudeza visual, pero canta en seguida que algo no debería salir así:

SQL Chocolate

Una bonita query o petición SQL al final de la lista de ingredientes, SELECT * FROM [Equipment Table] WHERE [Equipment Id] = 4. Visto en The Daily WTF.
Leer mas

De actualización en actualización, WordPress 2.0.7

Mientras el desarrollo de WordPress se va dirigiendo hacia su versión 2.1, de la que ya tenemos primeras betas, la gente responsable de este estupendo CMS ha lanzado hoy una nueva revisión de la rama 2.0. Concretamente, esta séptima revisión incorpora cambios menores y resuelve básicamente un problema con los feeds y PHP 5.2 y fallos de seguridad detectados.

El proceso de actualización desde la versión anterior, la 2.0.6 es prácticamente inmediato y no es necesario sobreescribir todos los ficheros distribuidos en la 2.0.7. De acuerdo con el blog de desarrollo, bastará para pasar de la 2.0.6 a la 2.0.7 sobreescribir los cinco ficheros modificados, a saber:

Leer mas