Unison

11 de Abril de 2008

Normalmente llevo encima mi disco duro externo para disponer en todo momento de los últimos archivos con los que estoy trabajando y normalmente trabajo en 3 o 4 ordenadores diferentes.

La primera solución que busqué fue llevar una distribución Live en el disco duro y arrancarla para trabajar con ella pero la verdad es que sólo la uso cuando no me queda más remedio.

Si edito los documentos en mi disco duro externo y en otros equipos es muy complicado recordar donde se encuentra la copia más reciente y no es dificil cometer un error y perder la última revisión de algún archivo.

Pues aquí está unison y unison-gtk para hacernos fácil esta tarea. La primera es una herramienta para línea de comandos y la segunda es una interfaz gráfica para la primera. Permite definir un perfil de sincronización entre 2 directorios locales o remotos. Cada vez que la ejecutas, eliges el perfil y te sugiere los cambios que hay que hacer en ambos directorios basándose en los cambios que has cometido en los archivos.

Esta disponible en los repositorios de las principales distribuciones. No dudéis en probarla.

:wq

Corrección ortográfica Evolution

26 de Septiembre de 2007

De vez en cuando se me escapa alguna falta de ortografía en los correos electrónicos. Esto se va a acabar.

Mi gestor de correo habitual, Evolution, tiene la posibilidad de revisar la ortografía según vamos escribiendo pero para ello hay que instalar previamente los diccionarios de los idiomas en los que solemos escribir habitualmente.

El paquete que proporciona los diccionarios en debian se llama aspell, con aspell-es estaremos instalando el diccionario en castellano.

aptitude install aspell-es

Para activar la revisión ortográfica en Evolution 2.10 lo hacemos en Editar > Preferencias > Preferencias del editor > Ortografía.

Si no nos aparece la lista de diccionarios instalados y estamos usando Gnome como escritorio es porque nos falta el paquete gnome-spell.

aptitude install gnome-spell

:wq

Sysadmin Day

27 de Julio de 2007

El último viernes de Julio de cada año se celebra el día del administrador de sistemas.

Felicidades a todos a los que las máquinas los entienden más rápido que las personas.

Subsuelo inundado

Durante las vacaciones me autoregalé una lampara led usb (en una tienda de 1 pound en Nottingham) para teclear con el portátil de noche y creo que es un buen día para estrenarlo.

#!/bin/ssh
#The Unix Guru's View of Sex
unzip ; strip ; touch ; grep ; finger ; mount ; fsck ; more ; yes ; umount ; sleep

:wq

Debian codenames

1 de Julio de 2007

Muchos de vosotros ya sabréis la procedencia de los nombres de las versiones de la distribución Debian GNU/Linux. Cuando yo comencé a usar Linux como sistema operativo principal la versión estable de debian era la “potato”, aunque nunca llegué a instalarla porque por aquella época yo usaba Red Hat. La primera debian que instalé fue “woody” que fue versión estable hasta que “etch” la sustituyó. Yo suelo usar siempre en mi escritorio la versión inestable “sid” y actualmente la versión de pruebas (testing) se llama “lenny”. Pues bien, todos estos nombres de versiones han sido tomados de los personajes de la película de animación Toy Story.

Bruce Perens trabajó para Pixar y fue uno de los líderes de Debian y a partir de ahí surgieron los nombres de las versiones de debian.

Hasta hoy hemos tenido las siguientes versiones:

Debian 1.1 -> Buzz (Lightyear - juguete galáctico)
Debian 1.2 -> Rex (tiranosaurio)
Debian 1.3 -> Bo (Peep - pastora de porcelana)
Debian 2.0 -> Hamn (cerdito)
Debian 2.1 -> Slink (perro muelle)
Debian 2.2 -> Potato (mister potato)
Debian 3.0 -> Woody (vaquero)
Debian 3.1 -> Sarge (sargento de los muñequitos de plástico verdes)
Debian 4.0 -> Etch (pizarra telescketch)

Debian testing -> Lenny (binocular)
Debian unstable -> Sid (el vecino malo rompe juguetes, también signiufica Still In Development)

Se rumorea que el nombre de la siguiente versión lo elige la hija de de Ian y Debora.

Aún quedan muchos nombres de personajes sin utilizar. Larga vida a Debian.

:wq

Guadalinex v4 USB Live

7 de Junio de 2007

Introducción

Normalmente cuando tenemos que trabajar desde un ordenador que no es nuestro entorno de trabajo habitual necesitamos un periodo de adaptación para ser productivos.

La finalidad de este artículo es disponer de una distribución de Linux adaptada a nuestras necesidades para poder utilizarla en cualquier equipo que permita arrancar desde un dispositivo externo usb.

Ingredientes

  • Dispositivo de almacenamiento USB de al menos 1Gb de capacidad (recomendado 2Gb)
  • Distribución GNU/Linux instalada con las herramientas parted (gparted, qtparted), syslinux y mtools. (recomendado guadalinex, ubuntu o debian)
  • CDROM o imagen ISO de Guadalinex v4 Live

Advertencia

Al seguir los pasos de esta receta perderás todos los datos que contenga el dispositivo de almacenamiento USB que uses. Se utilizarán herramientas de particionado y los pasos que se muestren pueden diferir dependiendo de la configuración del equipo donde se realice. Al particionar pueden producirse pérdidas de datos de el/los disco/s duro/s del equipo por lo que recomiendo encarecidamente hacer copia de seguridad de los datos críticos antes de realizar los siguientes pasos, nunca está de más y seguro que llevas mucho tiempo sin hacer una :).

Pasos a seguir

La idea es usar el dispositivo de almacenamiento USB (a partir de ahora, pincho) como si se tratara de un CDLive pero con la característica de persistencia de datos. Para ello necesitaremos crear 2 particiones en el pincho usb: una para la distribución propiamente dicha y otra para almacenar nuestras preferencias y los datos con los que trabajemos.

Conectar el pincho usb al equipo

Iniciar la herramienta de particionado (# gparted) y seleccionar el correcto dispositivo USB, nuestro pincho.

Esquema de particionado del disco usb

En mi caso se trata de un disco duro externo usb de 100Gb al que le he dejado 2 Gb sin particionar al final.

Primero creamos una partición de al menos 700 Mb (800Mb en mi caso) formateada bajo FAT16 y con la marca de arranque activada.

Después creamos una partición con el resto de espacio disponible formateada bajo Ext2 con la etiqueta casper-rw y sin marca de arranque.

Una vez creadas las particiones tenemos que copiar parte del contenido del cd o la iso de Guadalinex v4 a la partición de arranque.

Suponiendo que tenemos la imagen iso en /ruta/de/guadalinex-v4.iso ejecutamos los siguientes comandos

$ mkdir /tmp/livecd
$ sudo mount -o loop /ruta/de/guadalinex-v4.iso /tmp/livecd

con los que montamos el contenido de la iso en el directorio /tmp/livecd.

Ahora tenemos que montar las particiones, podemos hacerlo simplemente desconectando y volviendo a conectar el pincho usb. Para ver el punto de montaje donde se han montado las particiones podemos volver a utilizar la herramienta de particionado y fijarnos en dicha información.

Si lo queremos hacer a mano podemos ejecutar los siguientes comandos

$ mkdir /tmp/liveusb
$ mount /dev/sdXX /tmp/liveusb

donde sdXX es el dispositivo de la partición fat16 de arranque.

Una vez montadas las particiones copiamos algunos de los archivos y directorios de la iso que montamos anteriormente a la partición de arranque del pincho usb.

$ cd /tmp/livecd
$ cp -rf casper disctree dists install pics pool preseed .disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico casper/vmlinuz casper/initrd.gz install/mt86plus /tmp/liveusb/

donde /tmp/liveusb es el punto de montaje de la partición de arranque del pincho usb y /tmp/livecd es donde tenemos montada la iso de guadalinex.

Ahora tenemos que crear en /tmp/liveusb un archivo llamado syslinux.cfg con el siguiente contenido:

DEFAULT persistent
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND  file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL persistent
  menu label ^Arrancar Guadalinex en modo persistente
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL live
  menu label ^Arrancar o instalar Guadalinex
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL xforcevesa
  menu label Arrancar Guadalinex en ^modo seguro
  kernel vmlinuz
  append  file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL check
  menu label ^Buscar defectos en la imagen de arranque
  kernel vmlinuz
  append  boot=casper integrity-check initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL memtest
  menu label ^Realizar test de memoria
  kernel mt86plus
  append -
LABEL hd
  menu label ^Arrancar desde el primer disco duro
  localboot 0x80
  append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt

Tan sólo nos queda hacer que nuestro pincho usb sea arrancable para lo cual vamos a desmontar la partición de arranque y vamos a utilizar el comando syslinux.

$ umount /tmp/liveusb
$ syslinux -f /dev/sdXX

donde sdXX es la partición formateada en fat16 con la marca de arranque.

Esto es todo, ahora tan solo tenemos que configurar la BIOS del equipo que queramos arrancar con nuestra Guadalinex v4 USBLive y conectarle el pincho usb antes de encenderlo.

Fuentes: Installing Ubuntu Linux on a usb pendrive.

:wq

Hoy he tenido la posibilidad de asistir a la final del primer concurso universitario de software libre.

El primer proyecto que se ha presentado ha sido webDevStudio de , un entorno integrado de desarrollo online basado en PHP y AJAX que aún encontrándose en un estado de producción temprana puede sernos de utilidad si tenemos que desarrollar algo rápido y no disponemos de una plataforma de trabajo.

El segundo proyecto presentado ha sido una interfaz gráfica para el programa de cálculo numérico Octave (similar a Matlab) llamada QtOctave. Seguro que será una herramienta ampliamente utilizada cuando el proyecto esté más maduro.

En tercer lugar hemos podido ver el funcionamiento de una herramienta para incrementar la seguridad de un servidor bajo Linux. Se trata de una implementación del método de apertura de puertos port-knocking llamada SharpKnocking basada en C# sobre el framework de Mono.

La última presentación del día, mi principal motivo de asistencia a este evento, fue conocer en persona a Mario Izquierdo (mariodebian) y a su proyecto de sistema operativo para clientes ligeros, TCOS, que es de una utilidad muy importante para reutilizar hardware relativamente antiguo.

TCOS

A nivel interno los clientes (ligeros) descargan a través de la red un mini sistema operativo GNU/Linux y lo cargan en memoria, a partir de ahí se conectan a un servidor desde el cual se ejecutan las aplicaciones que se muestran en los clientes.

Cuando termine los exámenes tengo que examinar en profundidad el código de esta aplicación para ver si puedo reutilizar los esfuerzos de Mario para mi PFC y si es posible colaborar de alguna forma en este interesante proyecto.

Tengo que dar desde estas líneas mi más sincera enhorabuena a los organizadores de este concurso por el buen hacer y el buen ambiente que se ha puesto de manifiesto en esta final, agradecer la posibilidad de conocer a gente tan interesante y animarlos a continuar con esta extraordinaria iniciativa para futuras ediciones a las que me comprometo públicamente a ayudar en la medida de lo posible.

:wq

Me hace falta escanear fotografías antigüas que sólo tengo en papel y tengo que adquirir algo para digitalizarlas. Actualmente puedo elegir entre un escáner o una impresora multifunción que lo incluya.

Las características interesantes de cada modelo aparecen reforzadas (negrita). Los precios son orientativos y han sido obtenidos de tiendas online españolas a precios de abril de 2.007

Escáneres

  • Canonscan Lide 25 (1200ppp x 2400ppp, usb1.1, ultrafino)
    Precio mínimo: 54 euros
  • Hewlett-Packard ScanJet 3800 (2400ppp x 4800ppp, usb2.0, diapositivas)
    Precio mínimo: 79 euros
  • Epson Perfection V10 (3200ppp x 9600 ppp, usb2.0, ultrafino)
    Precio mínimo: 80,90 euros

Impresoras multifunción de inyección

  • Brother DCP-115C (600ppp x 2400ppp, usb1.1, lector tarjetas)
    Cartuchos: Negro (LC900BK 19euros) Cian (LC900C 12 euros) Magenta (LC900M 12 euros) Amarillo (LC900Y 12 euros) 500 páginas.
    Precio mínimo: 64 euros + 55 euros la recarga (119 euros)
  • Brother DCP-130 (600ppp x 2400ppp, usb2.0, lector tarjetas, pantalla lcd)
    Cartuchos: Negro (LC1000BK 19euros) Cian (LC1000C 12 euros) Magenta (LC1000M 12 euros) Amarillo (LC1000Y 12 euros) 500 páginas.
    Precio mínimo: 74 euros + 55 euros la recarga (129 euros)
  • Canon PIXMA MP 160 (600ppp x 1200ppp, usb2.0)
    Cartuchos: Negro (PG-40 17 euros o PG-50 ) Tricolor (CL-41 21 euros o CL-51 29 euros) 195 páginas
    Precio mínimo 59 euros + 38 euros la recarga (97 euros)
  • Epson Stylus DX5000 (1200ppp x 2400ppp, usb2.0, lector tarjetas, sin cable usb)
    Cartuchos: Negro (T071140 10 euros) Cian (T071240 10 euros) Magenta (T071340 10 euros) Amarillo (T071440 10 euros) 235-415 páginas.
    Precio mínimo: 79 euros + 40 euros la recarga (119 euros)
  • HP Photosmart C3180 (1200ppp x 2400ppp, usb2.0, lector tarjetas, sin cable usb)
    Cartuchos: Negro (HP338 20 euros) Tricolor (HP343 21 euros) 450-260 páginas
    Precio mínimo: 54 euros + 41 euros la recarga (95 euros)

Después de estudiar el Coste Total de la Propiedad (incluyendo la primera recarga de tintas y el número de páginas por recarga) la ganadora es la impresora multifunción HP Photosmart C3180. Tan solo nos queda comprobar la compatibilidad con GNU/Linux.

Según openprinting.org la impresión está soportada por el driver hpijs. Para el resto de funcionalidades podemos usar HPLIP.

Bueno, parece que HP ha hecho los deberes para este modelo. A ver cuando da soporte a todas sus impresoras bajo GNU/Linux porque aún tengo quebraderos de cabeza con la HP Laserjet 1020 que tiene un soporte pésimo.

:wq

camrename

4 de Marzo de 2007

No me gustan nada los nombres que le ponen automáticamente las cámaras de fotos digitales a los archivos, además este nombre depende de la marca de la cámara.

Mi actual Sony Cibershot DSC-W50 nombra las fotografías con el patrón dscXXXXXX y mi difunta Canon Powershot A85 lo hacía de la siguiente forma img_XXXX. La Canon venía con un software de importación de fotografías para Windows bastante útil que comparaba las fotos que ibas a importar de la cámara con el directorio de tu equipo donde tuvieras todas tus fotos de forma que te avisaba cuando importabas algo que ya tenias y además te permitía organizar las fotografías en directorios descriptivos con la fecha en que tomaste la foto siguiendo el patrón AAAA_MM_DD.

Hasta ahora bajo GNU/Linux no conocía ningún software que te permitiera ordenar las fotografías a nivel de directorios. Por ejemplo F-Spot te permite categorizar y ver las fotografías por fechas pero de forma virtual, ya que en el disco siguen desordenadas.

Hoy he encontrado un script para shell llamado camrename que me ha hecho la vida más fácil. Este sencillo script te permite renombrar tus fotografías con el siguiente formato a partir de los datos EXIF de las mismas:

	Pyyyy.mm.dd-hh.mm.ss-seqn.jpg
	 ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^
	  |   |  |  |  |  |   |
	  |   |  |  |  |  |   +--- Image sequence number
	  |   |  |  |  |  |
	  |   |  |  |  |  +------- Seconds of image creation date/time
	  |   |  |  |  |
	  |   |  |  |  +---------- Minutes of image creation date/time
	  |   |  |  |
	  |   |  |  +------------- Hours of image creation date/time
	  |   |  |
	  |   |  +---------------- Day of month image created
	  |   |
	  |   +------------------- Month image created
	  |
	  +----------------------- Year image created

Con esto ya tengo todos los archivos bien renombrados. Cuando tenga ganas me pondré a retocar dicho script para que además me cree directorios con los días en los que tome las fotografías e incluya las correspondientes dentro.

Gracias a Geoff Kuenning por su conjunto de herramientas para manejar fotografías en GNU/Linux.

:wq

sudo

8 de Enero de 2007

Viñeta de humor sobre comando sudo

Nota: sudo (SUperuser DO) permite al usuario autorizado ejecutar un comando como superusuario o como otro usuario especificado en el archivo sudoers.

:wq

Webcam Benq DC1500 en Linux

14 de Diciembre de 2005

Bueno, este era uno de los dispositivos que se me resistian en GNU/Linux por ser vago pero esta tarde las décimas de fiebre del constipao que tengo me han hecho ponerme manos a la obra.

Después de un par de búsquedas en google me he topado con que existe un driver para el chip Sunplus que lleva mi camara. Podeis encontrar información aqui.

Lo primero que he hecho ha sido descargar la última versión de los controladores.

agoia:/home/antonio/descargas/# tar -xvzf spca5xx-20050419.tar.gz
agoia:/home/antonio/descargas/# cd spca5xx-20050419

Le echamos un vistazo a las instrucciones de instalación (less INSTALL) y nos damos cuenta de que nos hacen falta las fuentes del kernel para poder compilar el módulo de la cámara. Pues de camino actualizo al kernel 2.6.10 mi máquina:

agoia:~# apt-get install kernel-image-2.6.10-1-386 kernel-headers-2.6.10-1-386
agoia:~# lilo -v
agoia:~# sync
agoia:~# reboot

Ahora que hemos arrancado con el nuevo kernel ya estamos en disposicion de compilar el módulo.

agoia:/home/antonio/descargas/# cd spca5xx-20050419
agoia:/home/antonio/descargas/spcaview-20050419# make clean
agoia:/home/antonio/descargas/spcaview-20050419# make
agoia:/home/antonio/descargas/spcaview-20050419# make install

A mi me dio un error al hacer el make porque se me había olvidado instalar las librerias libsdl como bien dicen las instrucciones, cosa que resolví haciendo

agoia:/home/antonio/descargas/spcaview-20050419# apt-get install libsdl1.2-dev

y repitiendo los 3 pasos anteriores.

Bueno, ahora que ya tenemos compilado e instalado el modulo enchufamos la cámara en modo webcam al puerto usb y hacemos

agoia:~# lsmod | grep spca
spca5xx 277912 0
usbcore 107256 4 spca5xx,usbnet,uhci_hcd

y comprobamos que lo tenemos cargado.

Nos hace falta el programita spcaview que instalamos siquiendo las instrucciones que incluye sin problemas.

Para probar el funcionamiento hacemos

agoia:~# spcaview -t

si se nos abre una ventanita con la imagen de nuestra cámara de lujo, ya la tenemos lista para usarla con cualquier programita de videoconferencia como gnomemeeting.

A mi me dio un error que me decía que no se encontraba el dispositivo /dev/video0 que solucioné creando el dispositivo y cargando el modulo videodev.

agoia:~# modprobe videodev
agoia:~# mknod /dev/video0 c 81 0
agoia:~# chmod 666 /dev/video0
agoia:~# lsmod | grep spca
spca5xx 277912 0
videodev 9728 1 spca5xx
usbcore 107256 4 spca5xx,usbnet,uhci_hcd

Espero que le sirva de ayuda a los propietarios de una de estas camaritas.

Actualización

Hoy me ha dado por configurar la webcam en el portatil para ver si pruebo el futuro soporte de videoconferencia de gaim y vaya si ha cambiado el panorama desde la última vez que la instalé, ahora en mi debian sid sólo hay que hacer:

apt-get install spca5xx-source
m-a prepare
m-a a-i spca5xx
cd /usr/src
dpkg -i spca5xx-modules-2.6.12.6-05.deb

y al ejecutar el gnomemeeting veremos que la detecta a la primera. ¿Quien dijo que linux era complicado?

:wq