jueves, 25 de octubre de 2007

Nuevo Ubuntu 7.10

Pues ale a bajarlo que solo son 700Mb y esta muy chulo :P


La forma de instalarse es igual que su predecesor.
Los efectos visuales se encuentran por donde se cambia el fondo de pantalla.
Como siempre, dependen de la calidad de la tarjeta de vídeo y se puede elegir entre (ninguno, normal o extra). En mi caso uso el modo normal.

A la hora de arrancar hay problemas, la pantalla aparece negra, no como antes que salía el logo de ubuntu y la barra que indicaba que iba cargando cosas. Ahora no empieza a cargar, o por lo menos no he tenido la paciencia de esperarme haber que ocurre, hasta que no entro a la terminal 1 (Ctrl+Alt+F1)

Es más lento. Viene con el kernel 2.6.22-14

I creo que no me queda nada más que contar.

Renombrar/ Cambiar extensiones a todos los archivos

Ejemplo. Cambiar los la extensión de los archios .JPEG a .jpg

Desde una terminal y situados en la carpeta...

$ for i in `ls *.JPEG`; do mv $i ${i:0:${#i}-5}.jpg; done

${#i} --- longitud del parámetro
${#i} - 5 --- longitud del parámetro menos 5, que corresponde a "punto"JPEG
${parámetro:offset:longitud}



O para eliminar las extensiones de tres dígitos y el punto (total 4 últimos dígitos):

$for i in `ls`; do mv $i ${i:0:${#i}-4}; done

Para más info: "man bash" , google, etc...

domingo, 14 de octubre de 2007

Fallo del disco duro

Windows me duró 2 años sin formatear. Linux 3 meses.
Pero ojo, que eso no les impida saltar al "fabuloso mundo del sofware libre", porque vale la pena. A veces ;)


Estas son las últimas líneas del comando dmesg:
...
[ 2790.328000] ata1: failed to recover some devices, retrying in 5 secs
[ 2795.332000] ata1: soft resetting port
[ 2795.496000] ata1.00: ata_hpa_resize 1: sectors = 117210240, hpa_sectors = 117210240
[ 2795.504000] ata1.00: ata_hpa_resize 1: sectors = 117210240, hpa_sectors = 117210240
[ 2795.504000] ata1.00: configured for UDMA/100
[ 2795.504000] ata1: EH complete
[ 2796.808000] SCSI device sda: 117210240 512-byte hdwr sectors (60012 MB)
[ 2796.816000] sda: Write Protect is off
[ 2796.816000] sda: Mode Sense: 00 3a 00 00
[ 2796.820000] SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
...


Tres o cuatro minutos después de guardar estas lineas aparecen mensajes tipo: I/O Error en el disco...
Al cabo de un tiempo (sin hacer nada, sólo alguna consulta tipo $ps ax) funciona el comando $ls pero no el comando $ls -l. Este último comando creo recordar que mostraba en la consola un mesaje que decía "I/O error core dumped", aunque no estoy muy seguro.

Para quien esté en el mismo caso les diré que mi disco duro hacía unos ruidos inusuales, como si leyera cada sector una y otra vez sin girar, es decir, el disco avanzaba y retrocedía un poco, avanzaba y retrocedía un poco,.... hasta que deja de hacer ruido y salen los mensajes. Algo así como "rac rac rac rac rac..." :)


Pienso que alguna actualización de Ubuntu tiene la culpa.
Ya me mosqueó al ver que por arte del espíritu santo mi disco Ultra ATA100 se transformó en un SCSI cuando puse el Ubuntu Feisy 7.04, y ahora esto.

Este fallo es la escusa perfecta para formatear y eliminar la partición de Guindow$.
Ahora tengo 59Gb de puro ubuntu :D

Por supuesto, nada más instalar me he desactivado:
  • "Evolution Alarm Notifier" porque no lo uso, principalmente.
  • "Update Notifier" El que avisa de las actualizaciones.
Esto se puede desactivar en Sistema-> Preferencias->Sesiones
Recuerdo que se actualizaron muchísimas cosas al principio de instalar (130Mb en Agosto) y unas cuantas cosas hasta la fecha (Octubre).
Se instaló hasta el kernel 2.6.16 pero creo que voy a pasar de las actualizaciones por si las moscas.

Ahora toca personalizar todo otra vez.

2 semanas depués puedo añadir que...

A los 5 minutos de escribir lo anterior el disco duro volvió a estropearse, engancharse,sacar mensajes de error, colgarse o como lo quieran decir. Me harté por unos instantes de Linux y de la madre que parió al put%&#$piiii portatil de los co%&/()piii.. así que en un momento de flaqueza me puse a instalar el Windows XP.
Durante la instalación, indico que formatee todo el disco usando NTFS (la lenta) y se tira toda la noche. Bueno, a la mañana siguiente veo que no se completó y aparecia un mensaje de error muy chulo que no recuerdo lo que decía.
Así que antes de tirar la toalla vuelvo a intentar lo mismo pero esta vez con la opción de formateo NTFS rápida.
El windows comienta a copiarse hasta llegar a un punto en que decía algo así como "no puedo copiar este archivo, si quieres puedes pasar de el, pero te aviso que no funcionaré bién ;)"

Conclusión: ALGO ESTABA ROTO :(

Antes de comprar un disco nuevo lo probé en otro portatil para asegurarme de que estaba "roto", porque imagina si el disco hubiese funcionado el problema estaría en el controlador o vete a saber....

Ahora tengo un disco nuevo de 100Gigas (casi ná)

Como curiosidad diré que el nuevo disco (Futjisu) tiene menos amperios que el viejo y eso no se si es bueno, malo o da igual :P

martes, 9 de octubre de 2007

pasar Todas las fotos al linux

Pasar una foto es fácil. Pasarlas todas depende del S.O.
En windows cada fabricante tiene su programita.
En linux, no hay nada para mi N70 ( o no lo he encontrado).

El siguiente tostón explica en palabras lo que hace el script que se encuentra más abajo. Si te aburres salta esto y aprovecha el tiempo ;)

A continuación un script que genera otro script con los comandos / órdenes para descargarse las fotos.
El motivo, es que he notado que si durante la "recogida de datos" hacía la llamada correspondiente para que recibir las fotos el programa no funcionaba, pero misteriosamente, si se ejecuta los comandos de recogida por separado la cosa funciona bien.

Las imagenes se alojan en E:\Images y en E:\Images\xxxxx\ en un N70 (xxxxx son carpetas formadas po el año seguido del mes). Esto puede cambiar en otro modelo, así que ojo durante el Copy Paste.

En el linux, colocaremos las imágenes en la carpeta $HOME/Fotos y mantendremos la misma jerarquía de imágenes y directorios que existe en el móvil.

También, y esto es lo más interesante, vamos a crear una base de datos donde se guardará la fecha de modificación de la imagen, así sólo nos descargaremos las imágenes nuevas cada vez que ejecutemos, o mejor dicho, sólo incluiremos en las llamadas de recogida de imágenes aquellas que sean nuevas y/o modificadas.

Como se ha dicho anteriormente, el siguiente script generará otro (prova.sh) que deberemos ejecutar para recoger las imágenes.

El script se basa en el uso del programa obexftp. Por supuesto, para más información está el google.

NOTA 1: Mis programas no son perfectos, y seguro que se pueden optimizar.
NOTA 2: La mac del bluetooth de mi movil es 00:17:4B:44:44:04 Se puede obtener con el comando:
$hcitool scan
NOTA 3: La Base de datos se guarda en el directorio $HOME/Fotos con el nombre "BD"
NOTA 4: El script "GENERADOR" y el "GENERADO" (prova.sh) debe tener permisos de ejecución. Esto se consigue con el comando $chmod u+x .

NOTA 5: IMPORTANTE por si el móvil no es un N70.
El archivo que se recibe con la opción -l (guión ele) del obexftp puede ser diferente
en cada móvil, así por ejemplo, una línea podría ser la siguiente:

file name="20072007916-001.jpg" size="331109" modified="20070803T110456Z" perm="RWD"

La forma de obtener los datos es con el awk y se usa como separador las comillas, así que el nombre se encuentra en la posición $2 y la fecha de modificación es lo que esta en amarillo (posición $6). Ojo por si el orden cambia, también por si el nombre del fichero no empieza con (file o la carpeta con (folder...

SCRIPT

#!/bin/bash


# $# número de parámetros
# $? resultado de la última operación
dirBD=${HOME}/Fotos/BD
touch $dirBD
IFS='
'
echo "#!/bin/bash" > prova.sh
echo "" >> prova.sh
echo "echo ASEGURANDO ESTRUCTURA DIRECTORIO BASE..." >> prova.sh
echo "mkdir ${HOME}/Fotos 2>/dev/null" >> prova.sh
echo "cd ${HOME}/Fotos" >> prova.sh
echo "echo ...Ok" >> prova.sh
echo "" >> prova.sh

function get_onlyfiles(){
sleep 1
#Parametro de la funcion $1
#capturamos sus archivos
lista=' '
for j in `obexftp -b 00:17:4B:44:42:04 -B 12 -c E:/Images/${1} -l`
do
name2=`echo $j | grep file`
if [ $? -eq 0 ]
then
#comprobar si el fichero no esta o ha sido modificado contra la BD
tupla1=`echo $j | awk 'BEGIN {FS="\""}{print $2 " "$6}'`
echo TEST GREP ${1}/$tupla1
cat $dirBD | grep ${1}/$tupla1
if [ $? -eq 1 ]
then
echo ${1}/$tupla1 >> $dirBD
nuevo=`echo $j | awk 'BEGIN {FS="\""}{print $2}'`
lista=$(echo $lista \"${nuevo}\")
fi
fi
done
if [ $lista != ' ' ]
then
echo ... Ficheros recogidos.
echo "#CARPETA e:Images/${1}" >> prova.sh
echo "mkdir ${HOME}/Fotos/$1 2>/dev/null" >> prova.sh
echo "cd ${HOME}/Fotos/$1" >> prova.sh
echo "obexftp -b 00:17:4B:44:42:04 -B 12 -c E:/Images/${1} -g $lista" >> prova.sh
echo "cd .." >> prova.sh
fi
}

lista0=' '
for i in `obexftp -b 00:17:4B:44:42:04 -B 12 -c E:/Images -l`;
do
folder=`echo $i | grep "<folder "`
if [ $? -eq 0 ]
then
folder=`echo $i | grep "<folder " | awk 'BEGIN {FS="\""}{print $2}'`
get_onlyfiles $folder
fi

name=`echo $i | grep file`
#GREP FILE && GReP JPG || GIF <--- PARA EVITAR LOS VIDEOS
if [ $? -eq 0 ]
then
#comprobar si el fichero no esta o ha sido modificado contra la BD
tupla0=`echo $i |awk 'BEGIN {FS="\""}{print $2 " "$6}'`
echo TUPLA0 $tupla0
echo CAT DIRDB
cat $dirBD
echo GREP:
echo $i | cat $dirBD | grep $tupla0
if [ $? -eq 1 ]
then
echo DENTRO IF
echo $tupla0 >> $dirBD
name=`echo $i | awk 'BEGIN {FS="\""}{print $2}'`
lista0=$(echo $lista0 \"${name}\")
fi

fi
done
if [ $lista0 != ' ' ]
then
echo "" >> prova.sh
echo "#CARPETA e:Images/" >> prova.sh
echo "cd ${HOME}/Fotos/" >> prova.sh
echo "obexftp -b 00:17:4B:44:42:04 -B 12 -c E:/Images/ -g $lista0" >> prova.sh
fi
echo "echo FIN"
echo FIN: AHORA EJECUTA prova.sh para empezar la recogida

miércoles, 3 de octubre de 2007

Despertador casero usando crontab -e

El propósito de la siguiente entrada es "programar" un despertador para que se active cada día a la hora que le digamos.
Esto puede ser una chorrada si uno se levanta todos los días a la misma hora, así que para es gente mejor un despertado en la mesita y listo.

Para despertarnos o hacer las pruebas se puede usar un archivo de audio o video (mp3,acc,mp3,avi,wav,....) de nuestra máquina. También sirve un archivo ".m3u" que contiene una lista de canciones/vídeos.

Otra posibilidad es descargarse de alguna web de radios el archivo "m3u" que reproduce la radio "en directo" y usarlo para no escuchar siempre las mismas canciones. Webs de ese tipo hay un montón (europafm.net, flaixfm.net,....)

Una vez conseguido el archivo, lo activaremos con nuestro reproductor favorito.
Vamos a la consola y ejecutamos "ps x" y localizamos el proceso y vemos como son sus parámetros.Por ejemplo, yo en mi ubuntu festy, al hacer doble clic en el archivo /opt/FLAIXfm.mp3.m3u se activa el "totem". El resultado del comando "ps x" es el siguiente:
.....
.....
6084 pts/1 Ss 0:00 bash
6980 pts/1 SLl 0:02 totem file:///opt/FLAIXfm.mp3.m3u
6992 pts/1 R+ 0:00 ps x


Podemos comprobar que funciona cerrando el totem y ejecutando el siguiente comando:

$totem file:///opt/FLAIXfm.mp3.m3u


Activación automática del comando

Para ello usaremos el comando crontab.
Con "crontab -l" se muestra la planificación actual.
Con "crontab -e" se abrirá un editor de texto para planificar las tareas, pero...
El editor que se abre por defecto en mi máquina es el "nano" (un lio de editor), así que se pueden hacer varias cosas: aguantarse, leer la ayuda "man crontab" para cambiar de editor o ver el final de esta xuleta.

El contenido del fichero quedará de la siguiente manera:

# minutos hora day_of_month month day_of_week command
# Despertador
#Lunes y Martes a las 7:30h
30 7 * * 1,2 DISPLAY=":0" totem file:///opt/FLAIXfm.mp3.m3u

#Miércoles y Jueves a las 9:00h
00 9 * * 3,4 DISPLAY=":0" totem file:///opt/FLAIXfm.mp3.m3u

#Viernes a las 10h
00 10 * * 5 DISPLAY=":0" totem file:///opt/FLAIXfm.mp3.m3u


Después se guarda y NO HACE FALTA reiniciar el crontab ni nada por el estilo.

Hay un parámetro del comando "totem" que es "--diplay=" pero no he podido averiguar como se usa.
Por las listas y/o foros de www.bulma.net me enteré de que si no indicabas el DISPLAY el crontab no sabia donde mostrar lo que son "aplicaciones gráficas". Una forma de hacerlo es poniendo delante del comando eso que hay puesto (DISPLAY=":0")


Versión Consola

Para quien no tenga o no le funcione el entorno gráfico siempre podrá usar el comando "play archivo_audio1,archivo_audio2,...