Pasar datos de CSV a MySQL
Si queremos pasar datos de una aplicación a otra, el formato más estándar es CSV.
Así por ejemplo para pasar datos de una hoja de cálculo (OpenOffice Calc, Ms-Excell…) a MySQL podemos guardar la tabla como csv y después importarla en MySQL con los siguientes comandos:
# Primero hay que crear la tabla en la BBDD $ mysql -hSERVIDOR -uUSUARIO -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. [...] mysql> use BASE_DE_DATOS; Database changed # Indicar si los datos del fichero CSV están separados por coma, encerrados en comillas dobles o simples... mysql> load data infile 'FICHERO' into table TABLA fields terminated by ',' enclosed by '"'; Query OK, X rows affected, X warnings (0.02 sec) Records: X Deleted: X Skipped: X Warnings: X mysql> quit; Bye
Quizá interese este artículo indicando como pasar de Ms-Access a MySQL.
Poner imagen en GRUB
Si queremos que nuestro GRUB tenga una imagen de fondo basta con indicarlo en /boot/grub/menu.lst mediante:
# Splash Image splashimage=(hd0,0)/grub/imagen.xpm.gz # Sustituir hd0,0 según la partición en que se encuentre el archivo #+ También es habitual (hd0,0)/boot/grub/imagen.xpm.gz
La imagen debe ser tipo xpm, con una resolución de 640×480 y 14 colores, comprimida con gzip.
Con GIMP podemos indicar el número de colores de una imagen en “Imagen -> Modo -> Indexado”.
Postinstalación de Ubuntu 9.04 Jaunty Jackalope
Hay múltiples recetas de qué hacer tras instalar Ubuntu 9.04 Jaunty Jackalope (por ejemplo esta receta de “Cosas a hacer despues de instalar Ubuntu 9.04 Jaunty Jackalope“).
Hay que decir que ha día de hoy ya ha salido la nueva versión (Karmic Koala).
Tras consultar varias de esas guías para instalar Ubuntu a un amigo, me he quedado con esto:
sudo wget http://www.medibuntu.org/sources.list.d/jaunty.list --output-document=/etc/apt/sources.list.d/medibuntu.list sudo aptitude update && sudo aptitude install medibuntu-keyring && sudo aptitude update && sudo aptitude upgrade sudo aptitude install build-essential linux-headers-`uname -r` sudo aptitude install gparted scribus blender inkscape gthumb sudo aptitude install k3b kde-i18n-es k3b-i18n sudo aptitude install dia gftp sudo aptitude install gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-ffmpeg sudo aptitude install virtualbox-ose wine sudo aptitude install ubuntu-restricted-extras sudo aptitude install unrar rar p7zip-full unace unzip msttcorefonts sudo aptitude install libdvdcss2 libdvdread4 sudo aptitude install w32codecs non-free-codecs flashplugin-nonfree-extrasound
Después configuré Firefox y el explorador de archivos (Nautilus) para que se comportase más a mi gusto y en las propiedades de las imágenes indiqué “Abrir con” gthumb.
Firmar imágenes
Para firmar imágenes automáticamente podemos usar ImageMagick. Llamo firmar una imagen a incorporarle un marco con el autor y la licencia de la misma. Ejemplo de imagen firmada:

Primero generamos una imagen de firma, por ejemplo:
![]()
Después utilizamos el siguiente comando (el tamaño de bordes que muestro es el que utilizo para imágenes de 2448×3264):
$ convert imagen.jpg firma.png -background black -gravity South -bordercolor black -border 10 -append -border 10 -splice 0×10 imagen_firmada.jpg.
Si además queremos conservar la información de la cabecera exif podemos utilizar el comando jhead:
$ jhead -te imagen.jpg imagen_firmada.jpg.
Otro uso muy práctico de jhead lo vimos en el post “Renombrar fotos en base a la fecha de la cabecera Exif“.
Para agilizar la firma podemos hacer dos cosas básicas, una es crear un script como este (que nos firma todas las imágenes del directorio en que nos encontramos):
#!/bin/bash # # firma_imagenes.sh # Por Guimi 2009/08 - http://www.guimi.net # ########################## # ERRORES E_NOPARAM=64 # Numero de parametros incorrecto ########################## # PARAMETROS FIRMA="../cc-by-sa-guimi-70.png" DIR="./firmadas" TMP="tmp.$$" if [ $# -gt 1 ]; then echo "Use firma_imagenes [imagen_firma]" exit $E_NOPARAM else if [ $# -eq 1 ]; then FIRMA="$1" fi fi mkdir $DIR echo -n "Firmando fotos..." for x in `ls *.jpg` do echo -n "." convert $x $FIRMA -background black -gravity South -bordercolor black -border 10 -append -border 10 -splice 0x10 $TMP jhead -te $x $TMP > /dev/null mv $TMP $DIR/$x done echo ""
Otra opción muy comoda es configurar gThumb (el visor que recomiendo para gnome) para que permita firmar imágenes.
Para ello nos vamos a “Editar->Preferencias->Teclas rápidas” y en una de las casillas libres (la primera suele ser el 6) escribimos:
convert %f ~/firma.png -background black -gravity South -bordercolor black -border 10 -append -border 10 -splice 0×10 %n-firmada%e; jhead -te %f %n-cc-by-sa%e
A partir de ese momento mientras estamos viendo una imagen si pulsamos el 6 del teclado numérico nos generará una copia firmada.
Podemos ver otros usos de ImageMagick en un post llamado trabajar con imágenes desde el prompt.
Si tienes curiosidad por ver algunas de mis fotos puedes ver mi perfil en flickr o en mi perfil en picasa (me gusta más el servicio de flickr pero da más espacio picasa).
Servidores Windows
He publicado en versión web el monográfico sobre servidores windows que publiqué hace un tiempo en PDF (Servidores Windows en PDF):
Servidores Windows en HTML.

Incluye información sobre administración de windows, modelo de seguridad, directorio activo (active directory), políticas de grupo, sistema de archivos distribuido (DFS)…
En esta página están los diferentes monográficos y tutoriales sobre informática que voy publicando.
Cableado estructurado
He publicado en versión web el monográfico sobre cableado estructurado que publiqué hace un tiempo en PDF (Cableado estructurado en PDF):
Cableado estructurado en HTML.

Incluye información sobre tipos de cables, directrices para el tendido de cableado, instalación de cableado estructurado, verificación y comprobación, conexionado de cableado RJ45…
En esta página están los diferentes monográficos y tutoriales sobre informática que voy publicando.
Pitidos de la BIOS
Copiado de un documento que está repetido múltiples veces en internet sin conseguir saber cual es el autor original ni su licencia.
¿Qué ocurre desde que le damos al botón de encendido hasta que aparece nuestro sistema operativo cargando?
Cuando encendemos el ordenador, nuestra placa base hace una especie de escaneo a todo el sistema para comprobar si todo está en regla y continuar cargando. Los pasos son los siguientes:
1. Encendido, llega el voltaje a la placa base.
2. Seguidamente alimenta a los dispositivos de almacenamiento.
3. El microprocesador, resetea todos los contadores y registros para partir de 0.
4. Busca una dirección de BIOS para testear la máquina, y también busca el test (Comprobación de dispositivos conectados).
5. POST (Power On Self Test): Son un conjunto de rutinas y programas que chequean el hardware.
[Aquí es donde se producen los pitidos que indican el estado del ordenador]
6. La BIOS envía al microprocesador señales y asigna canales DMA y IRQ.
7. Inicializa la BIOS de la tarjeta gráfica.
8. Testeo y cuenta de memoria.
9. Habilita teclado LED’s y genera entradas.
10. Busca el sector de arranque.
11. Carga el boot manager y cede el control al sistema operativo.
Algunos pitidos habituales.
El modo que tiene la placa base de transmitir el estado del sistema es por medio de pitidos. Aquí tenemos algunos habituales:
* Ningún pitido: No hay suministro eléctrico (vamos que el cable está sin enchufar, el cable en sí falla, o la caja de suministro eléctrico está deteriorada, la cuestión es que no llega corriente) o también puede ser que el altavoz falle (lo podréis comprobar si a continuación funciona correctamente).
* Tono continuo: Error en el suministro eléctrico (llega mal la corriente, o la caja de suministro esta fastidiada, no hay más que cambiarla).
* Tonos cortos constantes: La placa madre está defectuosa, es decir, está rota, es de lo peor que nos puede ocurrir.
* Un tono largo: Error de memoria RAM, lo normal es que está mal puesta o que está fastidiada.
* Un tono largo y otro corto: Error el la placa base o en ROM Basic. Esto suele ocurrir mucho en placas base viejas, la gente las suele tirar.
* Un tono largo y dos cortos: Error en la tarjeta gráfica. Puede que el puerto falle, por lo que no habría más que cambiarla de puerto, pero también puede ser que la tarjeta gráfica sea defectuosa.
* Dos tonos largos y uno corto: Error en la sincronización de las imágenes. Seguramente problema de la gráfica.
* Dos tonos cortos: Error de la paridad de la memoria. Esto ocurre sobretodo en ordenadores viejos que llevaban la memoria de dos módulos en dos módulos. Esto significaría que uno de los módulos falla, o que no disponemos de un número par de módulos de memoria.
* Tres tonos cortos: Esto nos indica que hay un error en los primeros 64Kb de la memoria RAM.
* Cuatro tonos cortos: Error en el temporizador o contador.
* Cinco tonos cortos: Esto nos indica que el procesador o la tarjeta gráfica se encuentran bloqueados. Suele ocurrir con el sobrecalentamiento.
* Seis tonos cortos: Error en el teclado. Si ocurre esto yo probaría con otro teclado. Si aun así no funciona se trata del puerto receptor del teclado.
* Siete tonos cortos: Modo virtual de procesador AT activo.
* Ocho tonos cortos: Error en la escritura de la video RAM.
* Nueve tonos cortos: Error en la cuenta de la BIOS RAM.
Algunas veces suenan algunos de estos pitidos pero luego sigue funcionando con normalidad. En ese caso sería problema del detector de errores o del escaneo que nos hace al encender el ordenador.
Se puede encontrar más información sobre otros pitidos y sobre BIOS específicas en BIOSCentral.
Renombrar fotos en base a la fecha de la cabecera Exif
Para renombrar fotos poniéndoles la fecha en que se realizaron podemos usar el siguiente comando:
$ jhead -n%Y%m%d-%H%M%S *.jpg
p1020288.jpg --> 20090628-155508.jpg p1020289.jpg --> 20090628-155558.jpg
“jhead” sirve principalmente para modificar las cabeceras exif. Otro comando más sencillo es “exif“.
Cuadrar cierre y apertura de ejercicio en AbanQ
AbanQ es un ERP publicado como Software Libre que funciona bastante bien para PyMES.
Sin embargo cuando se intenta hacer un movimiento automático de cierra y apertura de ejercicio, a veces da un desagradable mensaje que dice que la contabilidad no cuadra -siendo que está perfectamente cuadrada-.
Esto ocurre porque algunas de las cuentas no tienen un código de balance asociado.
Para averiguar qué cuentas no tienen código de balance asociado basta hacer la siguiente consulta (por ejemplo usando pgAdmin III):
SELECT DISTINCT c.codcuenta, cb.codcuenta, cs.saldo FROM co_cuentascb cb RIGHT JOIN co_cuentas c ON cb.codcuenta = c.codcuenta LEFT JOIN co_subcuentas cs ON c.idcuenta = cs.idcuenta WHERE cb.codcuenta IS NULL AND cs.saldo <> 0
Consulta enviada por Alberto García al foro de AbanQ.
Una vez detectadas las cuentas sin código de balance asociado, hay que ir al Área Contable y Financiera (puede tener otro nombre similar) -> Principal. El botón “Códigos de balance 08″ nos abre el formulario con los diferentes códigos de balance. Eligiendo el más adecuado asociamos las cuentas a él.
Por ejemplo se puede ver que el programa asocia inicialmente el código de balance “PG-A-7-a” con el grupo de cuentas “62″, por lo que podremos asociar las cuentas 62x en ese mismo código de balance.
Una vez no queden cuentas sin código de balance asociado, el programa debe hacer correctamente el asiento de cierre y apertura (se recomienda tener ya creado el nuevo ejercicio para poder hacer esta apertura).
DNIe en GNU/Linux
Nota (Febrero de 2010): Una vez instalado un lector de DNI-e, también nos sirve para utilizar tarjetas criptográficas CardOs M4como las que utiliza por ejemplo la Comunidad Valenciana a través de la ACCV.
Actualizado a 30 de Noviembre de 2009
Ya está aquí el DNI electónico o DNIe. Y por supuesto se puede hacer funcionar en GNU/Linux, tanto para identificarse en webs como para firmar documentos todo con plena validez legal.

No hay que olvidar que el DNIe tiene sus limitaciones y pegas de seguridad. (Para los “paranoicos” se recomienda utilizar el DNIe únicamente desde sistemas de solo lectura como un CD con Knoppix).
Tampoco hay que olvidar que una firma “normal” es mucho más facil de falsificar que una firma electrónica, pese a que ninguna sea totalmente segura.
Las siguientes instrucciones se han probado en Debian Lenny y en Ubuntu Karmic Koala con un lector C3PO LTC31 (de venta en las oficinas de correos por 19,90 €), con un “miniLector Bit4id” del plan avanza2 (es un Advanced Card Systems ACR38-U pero con una caja blanca) y con un lector Omnikey 3021.

INSTALACIÓN DEL LECTOR
Descargamos los paquetes oficiales del DNIE y los instalamos junto con los paquetes de la distribución necesarios.
$ sudo aptitude install libccid libopenct1 pcscd pcsc-tools mozilla-opensc # En el caso de Debian Lenny $ tar xvf Debian_Lenny_opensc-dnie_1.4.6-2_i386.deb.tar # En el caso de Ubuntu Karmic Koala usamos los paquetes de Jaunty Jakalop $ tar xvf Ubuntu_Jaunty_opensc-dnie_1.4.6-2_i386.deb.tar libopensc2_0.11.7-7_i386.deb opensc-dnie_1.4.6-2_i386.deb opensc_0.11.7-7_i386.deb $ sudo dpkg -i libopensc2_0.11.7-7_i386.deb $ sudo dpkg -i opensc_0.11.7-7_i386.deb $ sudo dpkg -i opensc-dnie_1.4.6-2_i386.deb # En el caso de Ubuntu Karmic Koala bloqueamos los paquetes #+ para que no se actualicen, ya que los de la distribución son #+ más modernos pero el DNIe no funciona con ellos $ sudo aptitude hold opensc libopensc2
Nos indica que hemos de registrar el módulo PKCS#11 en iceweasel/firefox utilizando el enlace que nos crea en el menú principal del escritorio en “Oficina-> Registrar módulo DNIe PKCS#11“.
Indicamos que confiamos en la nueva Autoridad Certificadora (CA) para las tres posibilidades.
Podemos comprobar si el sistema reconoce correctamente el lector con el comando “pcsc_scan” y probando a introducir y sacar el DNIe (u otras tarjetas similares):
$ pcsc_scan PC/SC device scanner [...] Reader 0: ACS ACR 38U-CCID 00 00 Card state: Card inserted, [...] Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX DNI electronico (Spanish electronic ID card) http://www.dnielectronico.es Reader 0: ACS ACR 38U-CCID 00 00 Card state: Card removed,
Otras pruebas que podemos hacer son (estas con una tarjeta CardOs M4):
$ opensc-tool -l Readers known about: Nr. Driver Name 0 pcsc C3PO LTC31 (00426664) 00 00 $ opensc-tool -a Using reader with a card: C3PO LTC31 (00426664) 00 00 3b:f2:98:00:ff:c1:10:31:fe:55:c8:04:12 $ opensc-tool -n Using reader with a card: C3PO LTC31 (00426664) 00 00 CardOS M4
Para que funcione bien iceweasel/firefox y detecte el módulo sin problemas se recomienda reiniciar la sesión gráfica (no hace falta reiniciar el equipo).
USO Y DISFRUTE
Lo primero que hay que saber es que en el DNIe tenemos a nuestra disposición dos certificados, uno para identificarnos (certificado de autenticación) y otro para firmar (certificado de firma), lo que son los dos principales usos del DNIe.
También es importante saber que cada aplicación que utiliza el DNIe establece una “sesión” con el lector de tarjetas y que no puede haber dos sesiones abiertas a la vez. Es decir no podemos usar el DNIe en dos aplicaciones a la vez. Sin embargo muchas aplicaciones no indican adecuadamente esta circunstancia y simplemente parece que no funcionan.
Así por ejemplo si iniciamos sesión en iceweasel/firefox para acceder a una web, no podemos firmar un archivo pdf con sinadura hasta cerrar sesión. Y al revés, tras firmar un fichero con sinadura no nos deja validarnos con iceweasel.
Ante la duda basta con extraer y volver a introducir el DNIe en el lector para asegurarse que está disponible el acceso.
Un último recordatorio, si se introduce el PIN del DNIe erróneamente tres veces seguidas, éste se bloquea. Así que al hacer pruebas con los programas y sus configuraciones hay que tener cuidado. A mí se me bloqueó haciendo pruebas con Sinadura (para desbloquearlo hay que pasar 5 minutos por una comisaria), así que después cada vez que hacía una prueba con un programa si no funcionaba perfectamente iniciaba sesión en iceweasel/firefox.
Identificarse en sitios web con iceweasel/firefox
El DNIe se puede utilizar al navegar para identificarse en un sitio web. Así por ejemplo si nos identificamos en la web de la seguridad social podremos descargarnos al instante nuestra vida laboral.
Primero debemos asegurarnos que hemos registrado en iceweasel/firefox el módulo de DNIe PKCS#11 (usando el menú principal del escritorio en “Oficina-> Registrar módulo DNIe PKCS#11“).
En caso contrario podemos registrarlo a mano desde “Editar -> Preferencias -> Avanzado -> Cifrado -> Dispositivos de seguridad“. Seleccionamos “Cargar”, indicamos un nombre, por ejemplo “DNIe – OpenSC PKCS#11″, y la ruta del módulo “/usr/lib/opensc-pkcs11.so”.

Si la instalación ha sido correcta y tenemos el lector conectado con un DNIe introducido, nos habilitará la opción “Iniciar sesión” (¡bien!). Si iniciamos sesión nos pedirá el PIN, pero antes es mejor reiniciar el navegador para que nos pida instalar el certificado de la DGP (Dirección General de la Policia).
Comprobaciones
Podemos probar nuestro DNIe en el navegador en la página de verificación del portal oficial (el enlace para la verificación está al final de esa página).
Si todo ha ido bien el navegador nos pide nuestro PIN para iniciar sesión (si no lo hemos introducido antes):

Cuando conectamos con una web en la que debemos identificarnos nos pregunta cuál de los dos certificados (el de firma o el de autenticación) queremos utilizar. Para identificarnos usamos el de autenticación.

Si el navegador nos indica:
El otro extremo de la conexión SSL no puede verificar su certificado.
(Código de error: ssl_error_bad_cert_alert)
Es porque no hemos iniciado sesión correctamente (hemos fallado el PIN 3 veces, no lo hemos puesto, no está bien instalado el lector…).
Lo recomendado es “Iniciar sesión” en el navegador solo cuando se necesita y “Terminar sesión” lo antes posible. Si visitamos una página que requiere certificado sin haber iniciado sesión, el navegador nos solicitará el PIN automáticamente, pero para cerrar sesión hay que ir “a mano” a la opción “Dispositivos de seguridad” del menú.
Firmar archivos PDF con Sinadura
Otro uso interesante del DNIe es firmar un archivo PDF. Esta firma tiene plena validez legal. Es decir, hasta ahora había que hacer un documento, imprimirlo y después firmarlo a mano. Ahora podemos hacer un documento, guardarlo como PDF (por ejemplo con OpenOffice Writer) y después firmarlo con nuestro DNIe.
Hay que insistir en que tiene plena validez legal. Sirve para hacer contratos, compra ventas, reclamaciones…
Primero descargamos Sinadura, en mi caso he descargado la versión 2.0.0 para GNU/Linux de 32 bits.
Su instalación es muy sencilla, basta con hacer:
$ java -jar sinadura-2.0.0-unix32-installer.jar
y seguir el típico asistente de “siguiente”, “siguiente”, “siguiente”…
Para configurarlo vamos a “Sinadura -> Preferencias -> Certificados“, y elegir “Tarjeta Criptográfica“.
También recomiendo ir a “Sinadura -> Preferencias -> Firma” y seleccionar otra imagen ya que la que viene por omisión (el logo de Sinadura) apenas permite leer el texto insertado. Yo me he creado una imagen muy clarita del DNIe en grises.
Utilizamos el botón “Añadir documentos” para seleccionar el documento pdf a firmar, en mi caso “prueba.pdf” y pulsamos “Firmar“.

El programa carga el certificado (la primera vez tarda un poco, si se cuelga probablemente sea por el problema de las sesiones que comentabamos al principio) y después nos pide el PIN del DNIe.

Después elegimos el certificado a utilizar, en este caso el certificado de firma:

Nos solicita una confirmación:

Y ya está. Podemos verificar cualquier documento firmado también desde Sinadura. Primero lo seleccionamos y después utilizamos el botón “Validar”

Más posibilidades
Una de las posibilidades que la gente busca es firmar y/o cifrar correos electrónicos con el DNIe.
Hay que decir que técnicamente se puede pero que su validez legal es cuanto menos dudosa, y como lo que se busca con el DNIe es tener validez legal no es muy práctico. Siempre se puede enviar un correo-e “normal” con un pdf firmado como adjunto, por ejemplo un contrato.
Esto es porque técnicamente para firmar y/o cifrar basta con tener un par de claves pública/privada, pero el estándar internacional PKI requiere, para firmar un correo-e, que el certificado de la clave indique una dirección de correo-e, que será la única que se “certificará”. Sin embargo en el DNIe no se indica ninguna dirección de correo-e, por lo que no se puede utilizar las firmas del DNIe para este fin.
Lo más recomendado es firmar y cifrar con claves GPG, u obtener firmas de la FNMT, que sí están preparadas para este propósito.
En todo caso hay buenas y sencillas guías en internet sobre cómo conseguir, técnicamente, firmar correos-e con el DNIe (GMail+DNIe; Thunderbird+DNIe).
Para consultar otras posibilidades tenemos el oráculo, la página de Servicios Disponibles o la web Kriptopolis.
Sobre este tutorial
Hay bastantes guías en internet, pero en Julio de 2009 ninguna me daba buen resultado en Debian Lenny. Básicamente parecía que todo iba bien, excepto por el navegador (Iceweasel/Firefox) que “petaba” al introducir un DNIe en el lector. Al final encontré la solución en Guadalinex gracias a una pista de fontanon en univero emergya.
Tras publicar la primera versión de este tutorial con todos los pasos para que el lector funcione en Debian Lenny e indicando los problemas encontrados, se pusieron en contacto conmigo los fabricantes del lector C3PO LTC31 (ver los primeros comentarios a esta entrada) y descubrimos que el problema estaba en el empaquetado de las librerías de la DGT, cosa que a día de hoy (Septiembre de 2009) ya está solucionada.
Después he obtenido otro lector, he tenido problemas para firmar PDFs… y así e ido modificando y haciendo crecer este tutorial hasta llegar a esta versión (Noviembre 2009).
Así pues gracias a la gente de C3PO, de sinadura y a todos los que han puesto información en internet sobre como usar y configurar el DNIe.

