sábado, 8 de diciembre de 2012

Cosas de gnuplot, ejemplo práctico 3D

Hola a todos y todas!

Bueno, hoy pondré un script que uso para crear una figura en 3D con el magnifico, aspero y expléndido Gnuplot, y luego comentaré los distintos comandos que lo componen. Ya sabéis, no hay nada como enseñar con el ejemplo.

Los datos a representar los podeís encontrar en el siguiente enlace: Datos
El script en este otro enlace: Script
La fuente de letra que usaremos: Fuente

Veamos ahora las distintas líneas del script, tras cada una va su explicación:

set term png size 640,520 enhanced font "./FreeSans.ttf,9"
Indicamos a gnuplot que como salida use el terminal de tipo fichero png, de tamaño 640x520, y se usarán las fuentes enriquecidas señaladas, ubicada en el mismo directorio donde estamos trabajando.

set output "figuras_3d_X.png"
Indicamos el nombre del fichero de salida.

set xlabel "X"
set ylabel "Y"

Indicamos las etiquetas de los ejes X e Y. Si quieres poner etiqueta al eje Z usa ylabel.

set title "Curva de potencial del sistema H2+H2\nGeometria X"
Definimos el título de la figura.

set zrange[:2.0]
set yrange[0:]

Definimos los rangos de los ejes Z e Y. En el caso del eje Z indicamos que el rango inferior será automático (no ponemos nada) y el superior 2.0. Para el Y, el inferior es 0 y el superior automático. Si quieres definir ambos extremos puedes poner set yrange[0:10], por ejemplo. Si quieres indicar el rango del eje X has de usar xrange.

set xtics -2.5,1,2.5
set ztics -7,2,2

Configuramos los tics de los ejes X y Z, indicando rango inferior, intervalo y rango superior.

set hidden3d
Hacemos que la curva sea opaca, vamos que no se vea a través de ella.

set ticslevel 0.6
Elevamos la figura sobre la base para poder verla bien sin que la figura la tape, ya que en ella vamos a pintar las curvas de nivel de la superficie.

set cntrparam levels incr -7.5,0.5,2.0
set contour base

Configuramos las curvas de nivel indicando el rango inferior, el incremento y el rango superior. En la siguiente instrucción activamos las curvas de nivel en la base de la figura. Se pueden representar dichas lineas en la superficie en si poniendo set contour surface, o en la base y la superficie indicando set contour both.

unset key
Desactivamos las leyendas.

set view 60,110
Rotamos la figura para verla mejor. El primer parámetro es el giro en el eje X y el segundo en el eje Z, eso según la ayuda en línea, pero tengo mis dudas, así que probad.

splot './x.out' u 7:8:9 w l
Instrucción que realiza el dibujo en sí. Indicamos el nombre del fichero entre comillas simples, las columnas de dicho fichero a usar (de la 7 a la 9) y como realizar el dibujo, en este caso con líneas (w l).

set term X11
Volvemos a dejar el terminal de salida tal como estaba, por eso de dejar cada cosa en su sitio.

Bueno, espero os sea de utilidad este ejemplo. Por cierto, el resultado final es:










viernes, 30 de noviembre de 2012

Cosas de texmaker

Pues eso, estoy haciendo cositas con texmaker, dándole algo de juego a latex y como a veces lo hago desde Windows y otras desde Linux, necesitataba un programa que funcionara en ambos y eso, ahí estaba texmaker.

Texmaker es un ide para escritura latex que usa herramientas externas para realizar la compilación de los ficheros tex. Eso quiere decir que es preciso instalar en el sistema los paquetes de compilación que vayamos a usar. En el caso de Linux basta que instalemos los paquetes:
  • biblatex
  • latex-maker
  • latex-color
  • texlive-base
  • texlive-doc-es
  • texlive-extra-utils
  • texlive-fonts-utils
  • texlive-fonts-extra
  • texlive-fonts-recommended
  • texlive-format-extra
  • texlive-latex-base
  • texlive-latex-base-doc
  • texlive-latex-extra
  • texlive-latex-extra-doc
  • texlive-latex-recommended
  • texlive-latex-recommended-doc
  • texlive-latex3
  • texlive-math-extra
  • texlive-pictures
  • texlive-science
  • lo que queráis añadir
  • todas las dependencias
Parece mucho , pero tal cual busqueis en Synaptic y marqueis lo que os interesa, se irán completando las competencias.

En el caso de windows recomiendo simplemente instalar el programa  latexMk  que sirve para lo mismo pero no es texmaker, eso si, lleva incluido todo lo que vamos a necesitar para compilar y demás.

Es interesante tener conexión a internet cuando vayamos a compilar documentos existentes pues texmaker se conectará a distintos servidores y se bajará los paquetes que falten en el sistema para realizar la compilación.

Es necesario revisar la configuración del programa para asegurarnos de que las rutas de los programas externos son las correctas.

Tan solo quedaría la instalación de un diccionario corrector. Texmaker puede usar un diccionario de OpenOffice o LibreOffice. La cosa es que os bajeis el fichero con extensión oxt y lo descomprimáis. No sabría deciros como está comprimido (xip, rar, etc), pero se que el sistema lo identificará y desde menu del botón derecho del ratón tendréis acceso a la opción de descompresión.

Una vez descomprimido lo colocáis donde no moleste (yo puse la carpeta como oculta dentro de mi home) y configuráis el texmaker para que lo use. Esta configuración viene detallada en aquí (por cierto, muchas gracias Lewatoto's blog).

Eso es todo.

Espero volver pronto con más cosillas y sobre todo que esto le sea de utilidad a alguien.

=:)


lunes, 27 de agosto de 2012

XFCE-MenuEdit: Agrupamiento de componentes jRadioButton

Para ubicarnos, XFCE-MenuEdit es un programa standalone hecho en java (usando Swing) cuya utilidad es gestionar el menu principal del entorno de ventanas XFCE en linux. Debería servir igualmente para la gestión de dicho menú en Gnome2, pero eso está por probar y ver.
Esta es la primera entrega en la que detallaré partes aisladas del programa XFCE-MenuEdit porque creo que tiene interés, porque se me olvida o porque me apetece.

En este caso comentaré brevemente como hacer para que una serie de componentes de tipo jRadioButton funcionen como una unidad de forma que al pulsar uno el resto pierdan su valor y viceversa.

El caso es que tras declarar todos los jRadioButton que vamos a tener juntitos y de darles todas sus propiedades, procedemos a añadirlos al objeto jPanel que los contendrá. Tras ello declararemos un objeto de tipo ButtonGroup al que posteriormente añadiremos uno a uno todos los objetos jRadioButto antes creados.

Con esto todo y un bizcocho, ya lo tenemos. El ejemplo, el procedimiento interno que crea el panel que contiene a los radios:

private JPanel getPnl_nuevo_tipo() {
  if (pnl_nuevo_tipo == null) {
   //Creacion de etiqueta

   lbl_nuevo_tipo = new JLabel();
   lbl_nuevo_tipo.setText(" Tipo:");
   lbl_nuevo_tipo.setPreferredSize(new Dimension(80, 16));
   //Creacion de panel

   pnl_nuevo_tipo = new JPanel();
   pnl_nuevo_tipo.setLayout(new BorderLayout());
   //Añadimos etiqueta

   pnl_nuevo_tipo.add(lbl_nuevo_tipo, BorderLayout.WEST);
   //Añadimos botones jRadioButton al panel

   //Estos se crean y configuran en los procimientos getRt_nuevo_tipo1() y getRt_nuevo_tipo2()
   pnl_nuevo_tipo.add(getRt_nuevo_tipo1(), BorderLayout.EAST);
   pnl_nuevo_tipo.add(getRt_nuevo_tipo2(), BorderLayout.CENTER);
   //Creacion de objeto ButtonGroup y añadido de jradios

   rt_group=new ButtonGroup();
   rt_group.add(rt_nuevo_tipo1);
   rt_group.add(rt_nuevo_tipo2);
  }
  return pnl_nuevo_tipo;
 }


 Bueno, para más detalles preguntar vía comentarios.

Espero poner pronto la primera beta del programa XFCE-MenuEdit para descargar y poner más entradas donde detalle diversas partes de su funcionamiento.

Espero sea de utilidad de alaguien.

=:)

miércoles, 22 de agosto de 2012

Latex: Gestión de bibliografía

 Hola!

Llevo un tiempo desaparecido, pero bueno, si no hay tiempo no ha tiempo. Pero pronto podré poner un alubión de cosas nuevas que estoy preparando.

Hoy tan solo pondré una referencia a un artículo que me ha ayudado mucho, a saber:  Apendiendo Latex: Bibliografía

Espero que al autor no le importe que le cite. Si así es que me lo comente y borro la entrada. En cualquier caso le agradezco su trabajo y buen hacer.

Aquí hago un copy/paste por si deja de estar operativa su página:

Aprendiendo LaTeX: Bibliografía

LaTeXlogoHola todos los que seguís el curso de LaTeX. Con el presente post inaguro una nueva serio del mismo, un poco más avanzada. Hoy voy a explicar como utilizar la bibliografía. Como en todo, no hay una única manera de hacerlo. Normalmente si se trata de una bibliografía corta y no estamos interesados en reutilizar los datos bibliográficos la elección habitual es escribirla “a mano” mediante el comando \thebibliography. Para utilizar datos bibliográficos reutilizables, largos o complejos es preferible emplear la utilidad BibTeX.
El manejo de la bibliografía es semejante al de las referencias, de lo cual ya hemos hablado. En ambos casos, cada registro bibliográfico tiene una etiqueta. Cuando, en una determinada posición del texto, queremos hacer referencia a un registro, hacemos uso del comando \cite{etiqueta}. LaTeX ya se encarga de colocar el número o referencia que corresponde a esa entrada y, en el apartado de bibliografía, coloca los datos de la entrada. En caso de que queramos escribir los datos pero no queremos poner una referencia en el texto, utilizamos \nocite{etiqueta}.

El entorno \thebibliography

\begin{thebibliography}{n}
  \bibitem{etiqueta}datos
  ...
\end{thebibliography}

donde etiqueta es la etiqueta que identifica la entrada y datos son los datos de la entrada. Por ejemplo:
\begin{thebibliography}{9}
  \bibitem{Knuth}D. E. Knuth, ``The TeXbook'', Addison--Wesley, 1984
\end{thebibliography}

BibTeX

BibTeX es un entorno más complejo para tratar bibliografía, pero es extremadamente útil y fácil de usar. Además, permite reutilizar los ficheros de bibliografía que escribamos para otros
proyectos.
En primer lugar, generamos un fichero al que pondremos un nombre con extensión .bib; por ejemplo mibiblio.bib. En nuestro caso podría contener lo siguiente:
@book{Knuth,
  author="Donald E. Knuth",
  title="The {T}e{X}book",
  publisher="Addison--Wesley",
  year=1984,
}

El campo @book nos indica qué tipo de registro es. Hay muchos: para libros, artículos, tesis, manuales, etc. Consulta la documentación de BibTeX para conocerlos. Knuth es la etiqueta que identifica el registro que luego citaremos con \cite. El resto del archivo está claro qué es. Puede sorprender el uso de {} en el título. Esto se debe a que BibTeX maneja automáticamente las mayúsculas y minúsculas: el la forma de indicarle que no debe modificar lo que va dentro, pues de lo contrario lo pondrá en letras minúsculas..
En el documento en el que queremos poner la bibliografía debemos incluir las siguientes líneas:
\bibliographystyle{estilo}
\bibliography{mibiblio.bib}

Donde estilo es el tipo de estilo que queremos para nuestra bibliografía. Hay varios estilos predefinidos (consulta el manual) y puedes crear los tuyos propios. Yo suelo utilizar el estilo plain que ordena las entradas alfabéticamente y las referencias son numéricas. en cuanto al comando \bibliography{mibiblio.bib} debemos colocarlo allí donde queramos insertar la bibliografía.
Vale ¿y ahora? Pues hay que compilar el documento: latex documento. Pero no sale la bibliografía. ¿Por qué? Porque en esta primera pasada LaTeX ha ido recogiendo las citas bibliográficas (los \cite y \nocite que has puesto) y los ha puesto en un fichero auxiliar. Ahora debes ejecutar bibtex documento (¡ojo! no bibtex mibiblio). Ahora BibTeX lee el fichero auxiliar y coge las entradas del fichero bibliográfico y genera ya el índice bibliográfico con las entradas utilizadas. Si ahora ejecutas de nuevo latex documento LaTeX se encontrará el índice bibligráfico ya generado y lo inserta donde toca. Esta secuencia de comandos solo debe ser repetida cada vez que cambies la bibliografía.

viernes, 22 de junio de 2012

XFCE truco: Generar entradas de menu rápidamente

Hola:

Os cuento una forma de crear entradas de menu rápidamente, a ver:
  • En el escritorio pulsar botón derecho del ratón y seleccionar Crear lanzador.
  • Completar los campos que aparecen en el formulario:


  • Guardar los datos e irse a un escritorio donde no haya ninguna ventana abierta. Allí pulsar F5 para que se actualice el escritorio y aparezca el icono del lanzador recién creado.
  • Si pulsamos sobre él con el botón derecho y seleccionamos la opción Abrir con Mousepad obtendremos esto:
  • La idea es modificar el contenido del apartado Categories de forma que sustituimos Aplication por Education;Math;Science; y demás categorías donde os interese aparezca este icono dentro del menú principal:
 

  • Abrir un terminal y logarse como root.
  • Mover el lanzador a la ruta /usr/share/applications/
 #mv /home/usuario/Desktop/lanzador.desktop /usr/share/applications
  • Refrescar menu:
#update-menu

Si esto último no funciona pues salir y entrar de la sesión para que se carguen las X de nuevo.




Espero os sea últil.


=:)

Planes de futuro

Hola:

Sin intención de abandonar este blog escribo esta pequeña entrada. Estoy liado ultimamente y no escribo prácticamente nada, pero todo llegará.

Estoy trabajando en un programa para editar el menú del entorno XFCE, pero mientras llega la primera versión beta intentaré ir poniendo cosillas útiles o de interés. Una vez lo publique crearé una página extra en este blog donde pondré todo lo relacionado con -él. Si alguien se anima y quiere ayudar en su desarrollo, bien venido será.

Tengo también la intención de escribir una serie de entradas sobre tras programas que uso habitualmente en mi trabajo con mi tesis como son: Octave, GNUPlot y LabPlot.

A todos ellos debo mucho y de todos ello tengo una buena montaña de trucos que iré desvelando en el futuro.

Con esto y un bizcocho, termino esta entrada tonta y me pongo a escribir un pequeño truco.

=:)

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!!

    =:)

    jueves, 26 de enero de 2012

    Office 2007 en Debian 6.0

    Os dejo este link donde lo explican muy clarito:

    Office 2007 en Debian 6.0

    O este otro:

    Office 2007 en Debian 6.0

    A ver si alguno os rula.

    Ampliación: Bueno, tras trastear me ha sido imposible instalar el Office 2007 por diversos motivos, entre ellos que la versiónestable de wine en los repositorios es la 1.0, y es necesaria la 1.2. Buscando y buscando se encuentra un repositorio con la 1.1, o la unestable en la web de wine, la 1.3. En cualquier caso no acaba de rular pues falla la instalación previa del MSI de windows, y sin el falla la instalación del Office. Bueno, cuando tenga más tiempo haré alguna prueba mas.
    Si alguno de vosotros encuentra solución, pues eso, que agradeceré la comparta conmigo.

    A ver quien tiene suerte!!

    domingo, 1 de enero de 2012

    Sencillo script para sustitución masiva de texto

    Hola! Feliz año!

    Aquí os dejo un sencillo script para realizar sustitución masiva de texto en muchos ficheros a la vez.
    La verdad es que con el comando sed se pueden hacer muchas más cosas, pero a mi con esto me vale y simplifica mucho mis cosillas. Como no se puede completar/complicar y hacerlo más efectivo, pero eso se lo dejo a quien tenga más necesidades que yo.
    A ver, abri un fichero en blanco, por ejemplo, desde la línea de comandos con el vi:

    #vi sustitucion_texto.sh

    Pulsar i para ponernos en modo inserción y pegar todo lo siguiente:

    #!/bin/bash
    # Script sustitución masiva de contenido de ficheros
    # Arg.1: texto a sustituir
    # Arg.2: texto sustituto
    # Arg.3: Ficheros donde sustituir, incluyendo comodines
    # Por IMV-2011

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

    Ahora guardar pulsado esc :wq intro.

    Ahora hay que darle permisos de ejecución al fichero:

    #chmod +x sustitucion_texto.sh

    Ya está listo. Funciona de la siguiente manera:

    #./sustitucion_texto.sh 'texto buscado' 'texto sustituto' ficheros

    Los dos primeros parámetros son el texto que se busca sustituir y su sustituto. Si contienen espacios es preciso que vayan entrecomillados. En la cadena de texto buscado se pueden usar caracteres especiales que nos ayudarán adefinir mejor nuestra búsqueda, por ejemplo ^ que indica principio de línea y $ que sería final de línea.
    El tercer parámetro es una expresión que nos devolverá la lista de ficheros donde hay que realizar las sustituciones. En ella se podrán usar los habituales comodines que nos ayudarán a que nos se nos escape nada nada.

    Bueno, eso es todo. Espero sea de utilidad a alguien y eso, que si alguien lo amplia o cambia que me avise.

    =:)