miércoles, 30 de mayo de 2012

Descomprimir zips encriptados en XFCE

Sorprendentemente en XFCE el descompresor integrado no parece tener la opción de tratar ficheros encriptados.
Como solución chapucera se puede usar la línea de comandos, por ejemplo, para ficheros zip hemos de usar el comando unzip. Este nos preguntará por la clave en caso de necesitarlo y luego hará su trabajo.

#unzip [fichero]

Obviamente es preciso instalar previamente el programa zip desde aptitude:

#su root
#[clave]
#aptitude install zip

La verdad es que creo que esto es un punto a mejorar.

=:)

jueves, 10 de mayo de 2012

Engauge, digitalización de graficas matemáticas y científicas

Os presento un programa de esos poco usados y menos conocidos, pero que si hace falta y no lo tienes pues eso, que fastidia. No he visto más programas como este libres, aunque si he visto un par de opciones comerciales que no he llegado a probar.
El caso es que si necesitamos los datos de una figura estadística o función matemática y tan solo disponemos de la figura en si, sin datos, este programa es la solución.
Su uso básico se resume en los siguientes pasos:

    1-Instalar desde synaptic.
    2-Crear entrada en el menu. En el caso de XFCE podéis mirar post anteriores a este respecto.
    3-Abrir el programa.


    4-El primer botón del menú principal es para importar una imagen, así que lo pulsamos y en el diálogo emergente importamos la figura a digitalizar.




    5-Ajustar el zoom para que la imagen se vea lo más claramente.



    6-Pulsamos el septimo botón, el que dice en su alt Axis point.

    7-Marcamos tres puntos de referencia para definir los ejes de referencia. Para cada uno dar su valor en la ventana emergente.

     8-Las cruces rojas marcarán los puntos y se unirán mediante una línea también roja. Es importante ser muy preciso en este punto pues la calidad de los datos dependerá de ello. Usad intensibamente el zoom.

    9-Pulsar el botón noveno, cuyo alt dice Curve point, e ir marcando los distintos puntos de la curva de interés. Quedarán marcados con cruces azules.

    10-Una vez marcados todos los puntos exportamos los datos pulsando el cuarto botón, cuyo alta dice Export file.


    11-Siempre es buena idea guardar el proyecto usando el tercer botón, cuyo alt dice obciamente Save.

    12-Los datos exportados están en formato csv, lo que viene a ser texto plano con los datos separados por punto y como y por filas. Con Gnuplot o LabPlot podremos hacer maravillas. Ortro día os hablaré de LabPlot.

    El programa tiene muchas más opciones y posibilidades por lo que os invito a dar rienda suelta a vuestra imaginación y sacarle todo su jugo.

    He de suponer que los programas comerciales existentes son más completos que este, pero os puedo asegurar que cumple su función perfectamente y un poco más.

    Bueno, espero os sea de utilidad.

    =:)


    PD: He usado como ejemplo de figura una grafica del siguiente artículo científico:  J. Chem. Phys. 104 (21), 1 June 1996. Espero que a esta revista y a sus autores no les importe. En caso contrario, por favor, avisadme y la retiraré. La he cogido por más por respeto a su trabajo que a la oportunidad.

    lunes, 16 de abril de 2012

    Scripts de compresión y descompresión recursiva

    Hola:

    Os dejo estos dos sencillos scripts que os permitirán comprimir de forma recursiva todos los ficheros que se correspondan con la máscara que pongáis como parámetro, dentro del directorio donde estéis. Os sustituirá los ficheros indicandos por uno comprimido.

    Al lío, para comprimir, crear un fichero que se llame por ejemplo compresion_rec.sh, con el contenido:

    #!/bin/bash
    # Script compresión recursiva
    # Arg.1: Máscara de ficheros a buscar recursivamente
    # Por Santiago-IMV-2012
    for a in `find . -name $1` ; do
      echo $a
      gzip $a
    done


    Se le da permisos de ejecución:
    #chmod +x compresion_rec.sh

    Y ya está. Lo colocamos en el directorio donde queremos hacer el trabajito y lo llamamos con un parámetro que contenga la máscara de los ficheros a comprimir.

    Para descomprimir  creamos el fichero descompresion_rec.sh con el siguiente contenido:

    #!/bin/bash
    # Script descompresión recursiva
    # Arg.1: Máscara de ficheros a buscar recursivamente
    # Por Santiago-IMV-2012
    for a in `find . -name $1.gz` ; do
      echo $a
      gunzip $a
    done


    De nuevo se le da permisos de ejecución:

    #chmod +x descompresion_rec.sh

    Bueno, espero os sea de utilidad.

    Por cierto, graciasa Santiago por su más que ayuda.

    =:)




    sábado, 31 de marzo de 2012

    Compartir directorios con Samba fácilmente

    Hola, como dice el título este pequeño post va de compartir directorios usando Samba fácilmente, sin configuraciones rocambolescas.

    Primero, en el ordenador que hará se servidor hemos de instalar una serie de paquetes, que son:
    samba, samba_common, samba_common_bin, smbclient, smbfs, y todas las dependiencias que nos salgan. Esto se hace desde synaptic o con la siguiente instrucción desde línea de comandos y como root:

    #aptitude install samba samba_common samba_common_bin smbclient smbfs

    Vamos a configurar el sistema de forma que podamos conectarnos a las unidades que marquemos com de red usando nuestro usuario, y en modo solo lectura.

    Desde línea de comando y como root hacemos lo siguiente:

    #cd /etc/samba
    #cp smb.cfg cmb.cfg.old

    #vi smb.cfg

    Ahora, pulsamos i para comenzar la insercción de texto y pegamos lo siguiente:

    #parametros basicos
    workgroup = WORKGROUP

    netbios name = mundo

    server string = Cosas compartidas del mundo

    hosts allow = 192.168.0. 127.

    security = user

    #Unidades de red
    [unidad_compartida_1]

    comment = unidad_compartida_1
    path = /ruta1
    writable = no
    public = no

    browseable = yes

    [unidad:compartida_2]
    comment = unidad_compartida_2

    path = /ruta2
    writable = no
    public = no
    browseable = yes

    Notas respecto a este fichero:
    -Este fichero es para dos carpetas compartidas.
    -Donde pone compartida_1 y compartida_2 ponemos el nombre de la unidad en la red.
    -Donde pone unidad_compartida_1 y 2, se ponen comentarios asociados a dichas uniades de red.
    -Donde pone /ruta1 y /ruta2 hay que poner la ruta interna de cada directorio compartido.
    -Writable, public y browseable nos indican si en la unidad se podrá escribir, si será pública o solo accesible para su dueño y si se mostrará la carpeta en una exploración de red. Poner esto al gusto.
    -netbios name: Apuntar el nombre que se pone pues erá el que nuestro ordenador muestre en la red.
    -workgroup: Nombre de nuestro grupo de trabajo.
    Salimos pulsando :wq

    Ahora hemos de crear otro fichero así que de nuevo desde la línea de comandos ponemos:

    #cd /etc/samba
    #vi lmhosts

    Pulsamos i e insertamos el siguiente contenido:

    127.0.0.1 localhost
    192.168.0.11 mundo


    Donde en la segunda línea se indica la dirección IP y el nombre de nuestro ordenador/servidor. El nombre es el que hemos indicado en el fichero anterior como netbios name.
    De nuevo pulsamos :wq para salir guardando.

    Ahora hay que añadir un usuario samba usando el siguiente comando:

    #smbpasswd usuario

    Donde en usuario pondremos el nombre de nuestro usuario en el sistema. Nos pedirá una clave para acceder al sistema vía samba. Puede o no ser igual a la que usamos en el sistema normalmente.

    Hecho esto reiniciamos el servicio samba para que se configure con los nuevos datos:

    #/etc/init.d/samba restart

    Ahora podemos irnos a otro ordenador para tratar de conectarnos a las carpetas compartidas que hemos configurado. Si es desde windows, en vuestras manos lo dejo. Si es desde gnome o KDE igualmente.

    Para conectarnos desde cualquier cliente linux necesitaremos al menos instalar una serie de paquetes, como no como root desde línea de comandos:

    #aptitude install samba_common samba_common_bin smbclient smbfs xsmbrowser

    Ahora, si desde la línea de comandos ponemos xsmbrowser, nos aparecerá una pantalla tal que así:
    Mi conexión a mundo la he declarado usando el botón inferior +Network y completando los datos que se me piden. Navegar desde este programa es bién sencillo, así como montar unidades de red, aunque para ello tendremos que haber abierto el programa como root.
    Para ver otras formas de conectarse a las unidades compartidas os recomiendo recurrir a San Google.

    Espero o sea de untilidad.

    =:)



    jueves, 29 de marzo de 2012

    Script para automatizar la eliminación de líneas en ficheros de texto

    Hola!

    Como continuación y basado en el script para sustitución masiba de texto, os propongo este otro, que también puede llegar a ser util.

    En particular sirve para eliminar la línea de texto exacta que se le indique dentro de los ficheros que se le indique (puede ponerse una máscara para seleccionar múltiples ficheros).

    Como siempre, copiar el siguiente texto en un fichero nuevo:

    #!/bin/bash
    # Script borrado de linea que se indique dentro de un conjunto de ficheros
    # Arg.1: texto a buscar
    # Arg.2: Ficheros donde borrar lineas, incluyendo comodines
    # Por IMV-2012

    b="/^"$1"$/d"
    echo $b
    shift 1
    c='.temp'
    for a in $*; do
    # echo $a
    cat $a | sed "$b" > $c
    cp $c $a
    done
    rm $c

    Se guarda con el nombre que consideréis oportuno, en mi caso he puesto borrado_linea.sh y se le da permiso de ejecución. Ésto se puede hacer desde el explorador->botón derecho->Propiedades->..... o desde línea de comandos:

    #chmod +x borrado_linea.sh

    Una ver terminado todo esto se llamaría de la siguiente forma:

    #borrado_linea.sh texto_exacto_de_linea mascara_de_ficheros

    Se mostrará en pantalla la instrucción que se usará para realizar esta acción y cambiará todos los ficheros que se correspondan con la máscara y que contengan una línea exacta a la indicada.

    El funcionamiento de este script se basa de nuevo en el uso del comando sed. Fuera del script la eliminación de líneas sería de la siguiente forma:

    #sed '/^linea$/d' ficheros

    Donde linea se sustituye por la línea exacta a buscar y fichero por el nombre del fichero donde queremos hacer el trabajo. El carácter ^ indica principio de línea y $ final de línea.

    Para más detalles de este comando os recomiendo le deis una vuelta al siguiente link El shell de linux, comando sed.

    Bueno, espero os sea de utilidad.

    =:)

    jueves, 16 de febrero de 2012

    Convertir de m4a a mp3

    Pues lo dicho en el título, aunque dado que el mérito de mío no tiene nada, os dejo el link donde dicen como hacerlo: http://www.togaware.com/linux/survivor/Convert_m4a.html

    Traducido y algo modificado viene a quedar así:

    Lo primero es instalar los paquetes necesarios, así que como root ejecutamos el siguiente comando:

    #aptitude -y install lame faad

    Para convertir desde m4a a mp3 se hace una conversión intermedia a wav, usando el comando faad:

    #faad -o abc.wav abc.m4a

    Posteriormente se convierte el fichero wad generado a mp3 usando el comando lame:

    #lame -h -b 192 abc.wav abc.mp3

    La opción -h sirve para que prodicir ficheros de alta calidad, y con -b se indica el birate de salida, en este caso 192.

    Con esto, para automatizarlo debidamente podemos hacer un script, al que llamaremos ma42mp3. Para ello con cualquier editor de texto plano creamos un nuevo fichero y pegamos en él el siguiente código:

    for i in *.m4a
    do
    faad -o - "$i" lame -h -b 192 - "${i%m4a}mp3"
    done

    Si os fijáis en el código, tan solo se ejecutan los dos comandos antes indicados unidos por un pipe y dentro de un bucle que hace que la conversión se realice una vez por cada fichero de tipo ma4 que exista en el directorio donde estemos trabajando. Con pocos cambios (Ver entradas anteriores) podremos hacer que convierta tan solo ficheros determinados mediante el uso de parámetros.

    Luego guardamos con el nombre antes indicado ma42mp3 donde consideremos oportuno, y desde le damos permiso de ejecución. Desde línea de comandos sería así:

    #chmod +x ma42mp3

    Obviamente hemos de estar en el mismo directorio donde esté el fichero.

    Ahora cogemos el fichero y lo colocamos donde estén los ficheros a convertir y hacemos doble click en él, o lo llamamos desde línea de comandos tal que así:

    #./ma42mp3

    Tras estar trabajando un ratillo por fichero, tendremos junto a cada fichero m4a su homólogo mp3.

    Espero os sea de utilidad.

    =:)

    viernes, 10 de febrero de 2012

    Trocear y pegar

    Hola!!

    Pues aveces es preciso partir un fichero en trozos, y desde línea de comandos esto es tan fácil como:

    #split -b XXXXXm fichero_entero.ext ficheros_trozo.

    Donde XXXX es el número de megas que queremos que ocupen los trozos. No borrar la m que hay tras las XXXX, pues con ella indicamos que el número previo es en megas. Tras el nombre de los ficheros_trozo ponemos un punto, pues split va añadiendo un sufijo secuencial a los trozos, y si el nombre que le damos termina en punto este sufijo quedará como extensión fácilmente comprensible.

    Para volver a unir nada más fácil:

    #cat ficheros_trozo.* > fichero_entero.ext

    Tanto split como cat tienen muchas más opciones y multiple aplicaciones, os invito a suriosear un poco.

    Espero os sea útil!!

    =:)