miércoles, septiembre 23, 2009

Solución: CUPS-PDF ya no imprime

Nota: Artículo de escasa relevancia para el lector casual.

Si después de varias actualizaciones el cups-pdf ya no les permite imprimir PDFs, el problema no es de la impresora, sino de una herramienta de seguridad que lo impide.

La solución:
Ejecutar en una consola el comando
sudo aa-complain cupsd

Vía: http://www.ubuntu-es.org/index.php?q=node/68426

domingo, septiembre 13, 2009

Leyendas urbanas de la informática 1: El posavasos roto

En un desborde de inspiración y aprovechando ciertos insólitos sucesos que han acontecido quiero inagurar una nueva sección llamada Leyendas urbanas de la informática.

Episodio 1) El Posavasos roto

Cuenta la leyenda, tal y como llegó a los oídos de este humilde transcriptor, que una señora, de situación económica poco acomodada, ganó un computador de última generación en un concurso.

Al poco tiempo de recibido el premio, la señora se dirige afligida al servicio técnico autorizado por la marca. "Vengo porqué el posavasos de mi computador se ha quebrado", manifestó muy afligida la señora. Con mucho asombro frente a la insólita declaración, uno de los técnicos se acerca y le consulta "Señora, con todo respeto, ¿me puede indicar cuál es el posavasos de su computador?". Obedientemente la señora se acerca a un computador, toma una taza vacía, presiona el botón de apertura de la unidad de CD-ROM y coloca la taza encima.

Haciendo un esfuerzo por resistir las carcajadas, los técnicos toman el equipo con "el posavasos roto", y le explican a la señora la verdadera utilidad de la unidad óptica.

Siendo una anécdota que pasaría a la historia como una leyenda urbana, obviamente no cobraron por la reparación.

jueves, septiembre 10, 2009

Eliminando registros duplicados en Postgres

Nota: Cero relevancia para el lector casual.

El problema:
Hay una tabla que a pesar de haber sido pensada para soportar registros con similar información, la práctica demostró que los registros eran exactamente los mismos y se deben eliminar los duplicados sin alterar la estructura de la tabla.

Posteriormente a solucionar el problema, lo recomendable es agregar un índice único que efectivamente sirva a nuestra necesidad.

Por cierto, la solución sólo aplica si la tabla tiene una columna que permite diferenciar 2 registros "similares", en mi caso esta es la columna fecha, que corresponde a la fecha en que se generó el registro ( now() ).

La solución:
  1. Hacerse una idea de cuantos registros están duplicados:
    SELECT identificador, COUNT(*) AS c
    FROM mitabla
    GROUP BY identificador
    HAVING COUNT(*) > 1
  2. Eliminar los registros duplicados:
    DELETE FROM mitabla
    WHERE fecha NOT IN
    (SELECT MIN(fecha)
    FROM mitabla
    GROUP BY identificador
    HAVING COUNT(*) >= 1)
Se debe tener en consideración que el proceso puede ser muy lento, todo dependerá de cuantos registros haya en la tabla.