lunes, 9 de junio de 2008

Renombrar archivos que contienen espacios y/o saltos de linea en sus nombres.

En ocasiones es necesario renombrar archivos que en su nombre contienen espacios en blanco y/o saltos de linea y puede darse el caso de que no se interpreten bien por algunos comandos en Linux debido a esta situación. Por ejemplo, si se quisieran renombrar todos los archivos dentro de un directorio que terminan con la extensión .MP3 a .mp3 sin alterar el nombre de las canciones (sin importar si son letras mayúsculas o minúsculas) podríamos usar algo como:

Código:

$ for arch in *.MP3; do name=`echo "$arch" | cut -d. -f1`; mv "$arch" "${name}.mp3"; done

De esta forma procesamos todos los archivos en el directorio actual que coincidan con la extensión .MP3, guardamos la parte del nombre del archivo sin extensión dentro de la variable name y hacemos el renombrado.

Nota: Lo importante a tomar en cuenta en este ejemplo es el uso de "double-quotes" para encerrar el nombre de las variables ("$arch" y "${name}.mp3") ya que con esto evitamos que la shell interprete los nombres de los archivos como varias entradas en el caso que contengan espacios en blanco o caracteres de new-line dentro del nombre y trata a cada entrada como una sola. Imagino que es posible utilizar alguna aproximación distinta como el uso de find -print0 y xargs -0 ó xargs -i '{}' pero bueno, es bien sabido que en Linux hay mas de una forma de pelar a un gato =).


...

viernes, 22 de febrero de 2008

Links mas útilies con Snap Shots

Bueno, he estado buscando algo de información para hacer un poco mas vistoso mi Blog, entre las cosas que deseaba era poder hacer que los visitantes tuvieran una previsualización de ciertos links y, voilà!! encontré este post mostrando precisamente como.

He tomado alguno de los tips que Amanda Fazani escritora de www.bloggerbuster.com da, por ejemplo el evitar que ciertos links sean referenciados con Snap Shots ya que a veces no es lo deseado, por ejemplo, algunas imágenes que se muestran en mi blog y al dar clic muestran la imagen en tamaño real. Para esto basta con agregar el siguiente código class="snap_noshots" a las etiquetas A HREF que queramos de la siguiente forma:

<a href="http://www.blogger.com/alguna_imagen.gif" class="snap_noshots">
<img src="http://url_alguna_imagen.gif" />
</a>




...

I Robot - Luke Arm

Simplemente wow!!! vagando por ahí en uno de los sitios que ahora frecuento gracias a mis residencias encontré este video. Es un proyecto llamado DEKA del Departamento de Defensa de los EUA en el cual se hace investigación sobre una nueva generación de prótesis. Han desarrollado un brazo robot al que han nombrado Luke Arm haciendo referencia al personaje de Luke Skywalker de la saga de la Guerra de las Galaxias. Es verdaderamente impresionante y me hace recordar lo mucho que se trata este tema en el cine con películas como "Yo Robot", "Inteligencia Artificial", "El Hombre Bicentenario", "Matrix", etc., que hablan del tema en donde la fusión y la convivencia del hombre y la maquina es cada vez mayor hasta el punto en que ya no se sabe si el límite es la ciencia ficción.
  1. Un robot no debe dañar a un ser humano o, por su inacción, dejar que un ser humano sufra daño.
  2. Un robot debe obedecer las órdenes que le son dadas por un ser humano, excepto si estas órdenes entran en conflicto con la Primera Ley.
  3. Un robot debe proteger su propia existencia, hasta donde esta protección no entre en conflicto con la Primera o la Segunda Ley.
...

jueves, 20 de diciembre de 2007

Configuracion del Scanner Epson Stylus CX3900 en Slackware 12


Bueno, bueno mas vale tarde que nunca... apenas hace como 2 días configure mi scanner, es parte de una multifuncional EPSON STYLUS CX3900, la configuración de la impresora se puede ver en este post anterior pero ahora toca el scanner, bueno no hay mas que bajarse el rpm de la página de Avasys en mi caso fue el paquete iscan-2.10.0-1.c2.rpm, para instalarlo bajo Slack 12 procedí de la siguiente forma (tomando en cuenta el manual de Image Scan!):


# rpm -iUvh --nodeps iscan-2.10.0-1.c2.i386.rpm
# sane-find-scanner
# chmod 0666 /proc/bus/usb/002/006
# iscan

Eso es todo... sane-find-scanner muestra los parametros de nuestro scanner como el id del fabricante y del producto que en mi caso son:

found USB scanner (vendor=0x04b8 [EPSON], product=0x082f [USB MFP]) at libusb:2:6

Con esos datos cambiamos los permisos a 0666 correspondientes en mi caso a /proc/bus/usb/002/006 (esto varia dependiendo de en que puerto se conecta el scanner y es necesario hacerlo cada que se reinicia el sistema)

Y eso es todo. Como nota, no he podido usar el scanner como usuario no privilegiado, he consultado la FAQ de Avasys donde describen mi problema y la solución pero a mi no me ha dado resultado, tambien encontre una solución pero esta basada en hotplug y no se este en lo correcto pero creo que Slack 12 ya no lo usa y en cambio usa HAL, en fin...

...

Configuracion de la impresonra Epson Stylus CX3900 en Slackware 12

Bueno esta multifuncional (all-in-one) me ha dado algunos dolores de cabeza pero se que funciona bajo Linux... hace tiempo la logre configurar pero tras una reinstalación surgieron algunos problemas y lo pospuse.

De primera mano trate de instalarla por medio del las fuentes descargadas de Avasys pero no me fue posible y me di cuenta que la forma mas rápida de instalarla era por medio de los paquetes rpm que también se ofrecen. Después de descargar el paquete iscan-2.10.0-1.c2.i386.rpm que es el mas reciente a la fecha lo instale de la siguiente forma:
#rpm -iUvh --nodeps iscan-2.10.0-1.c2.i386.rpm
Install Message > Start /usr/share/pipslite/setup to change setup.
Install Message > Start /usr/bin/pipslite-install to make ppd file.
Esto instala los binarios necesarios así como el backend y los filtros necesarios, crea varios archivos necesarios como /etc/pipslite/ekpdrc y otros.

Ejecutamos el script /usr/share/pipslite/setup y rellenamos los datos que nos pide:

#/usr/share/pipslite/setup
Please select locale to use.
Select : en ja
(english) > en
En mi caso el segundo dato es /dev/usblp0 ya que ese es el dispositivo que se crea al conectar la impresora.
Please specify the connection of a printer.
(/dev/usb/lp0) > /dev/usblp0
Please specify the printer name when it is using by lpr.
(lite) > Epson
Setup is complete. Is it saved?
(Yes/no) > Yes
The following files were changed.
/etc/pipslite/ekpdrc
/etc/printcap

The following directories were created.
/var/spool/lpd/Epson

It saved. Setup is complete.
Start /usr/share/pipslite/setup to change setup.
Para el siguiente paso es necesario que la impresora este encendida y conectada a la computadora.
A continuacion se ejecuta /usr/bin/pipslite-install siendo root, pero ante es necesario permitir que root pueda ejecutar programas en las X, asi que como usuario no privilegiado se ejecuta:
$xhost +LOCAL:
#/usr/bin/pipslite-install
Esto crea el archivo .ppd que sirve como descriptor de la impresora. Despues de esto nos sersioraremos que el demonio ekpd que comunica la impresora este corriendo:
#/etc/rc.d/init.d/ekpd status
Dependiedo del resultado podemos dar un start para arrancar este demonio o seguir adelante. A continuación es necesario reiniciar CUPS:
#/etc/rc.d/rc.cups restart
Listo esto podemos dar de alta la impresora por medio de la interfaz web de CUPS o mediante el asistente en KDE. Yo preferí la interfaz web.
  1. Apuntamos el navegador web hacia http://localhost:631
  2. Accedemos a la sección administrativa [Administración] y damos clic en "Añadir impresora"
  3. Agregamos Nombre, Ubicación y Descripción: Epson, Casa, Epson Stylus CX3900, damos clic en "Siguiente"
  4. Nos pide el tipo de conexión, en mi caso selecciono "EPSON Inkjet Printer #1 (Photo Image Print System)", y doy clic en "Siguiente"
  5. Nos pide que seleccionemos la marca, seleccionamos "EPSON", damos clic en "Siguiente"
  6. Nos pide el controlador y aquí seleccionamos el botón [Examinar] para suministrar el archivo .ppd que esta en la ruta /usr/share/cups/model/ekscx3900.ppd, damos [Añadir Impresora] y listo, eso debe agregar la impresora. Damos clic en link [Impresoras] en la parte superior y debemos ver listada nuestra nueva impresora.
  7. A continuación configuramos las opciones de la impresora dando clic en [Cambiar opciones de impresora], yo en mi caso configure Media size: Letter, Quality: Plain papers - Normal, guardamos los cambios.
  8. Regresamos al Impresoras y ya podemos hacer un test para saber si nuestra impresora esta bien configurada.
Puede que no sea la forma correcta de configurarla pero tras varias configuraciones con opciones incorrectas este fue el procedimiento que resulto satisfactorio debido a que se instala una version del archivo .ppd no optimizado para nuestra impresora (/usr/share/cups/model/eklite.ppd) y puede producir resultados no deseados, Es necesario observar si surge algun problema que la URI sea "URI de la conexión: ekplp:/var/run/ekplp0" para que funcione ya que si algo como usb://XXX no funcionara.

Comentarios bienvenidos... el proximo post pondre que tal me va con el scanner que de antemano se debe funcionar por que ya lo he usado.

.

sábado, 8 de diciembre de 2007

Cuenta de del.icio.us

Hoy me he dado de alta en este sitio para tener un mejor control de mis bookmarks (Marcadores), me he dado cuenta que uso mucho los bookmarks y necesito de ellos mientras me encuentro en otras computadoras. No tiene mucho que estoy usando los Marcadores de Google pero no me terminan de convencer, usando los marcadores clásicos (en mi caso en Firefox), trato de ir organizándolos dentro de carpetas, no me son muy útiles todos en montón. La solución que encontré es usar etiquetas, tanto Google como del.icio.us las usan pero en el caso de Google creo que no es posible asignar las entradas de los marcadores a una etiqueta al momento de crear el bookmark al contrario del servicio de del.icio.us y su la integración con Firefox. Con el tiempo veré cual me resulta mas cómodo y útil.

martes, 27 de noviembre de 2007

Icono para Moto4Lin (icon)

Bueno pues hoy configuré el moto4lin en mi portatil y se veia muy feo el típico icono del engrane en el escritorio de KDE, me dispuse a buscar un icono bonito para esta aplicación pero la verdad es que no encontré, asi que manos a la obra =), un rato en el Gimp y listo ... no se nada de iconos y menos de cuestiones de diseño grafico pero bueno... lo posteo por si a alguien le parece bonito.