<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hiparco &#187; Prompt</title>
	<atom:link href="http://guimi.net/blogs/hiparco/category/prompt/feed/" rel="self" type="application/rss+xml" />
	<link>http://guimi.net/blogs/hiparco</link>
	<description>Recetas y trucos de GNU/Linux e informática en general</description>
	<lastBuildDate>Mon, 02 Apr 2012 11:53:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Descargar vídeos de la red (clive)</title>
		<link>http://guimi.net/blogs/hiparco/descargar-videos-de-la-red-clive/</link>
		<comments>http://guimi.net/blogs/hiparco/descargar-videos-de-la-red-clive/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 11:51:08 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=1017</guid>
		<description><![CDATA[Existe una pequeña herramienta muy cómoda para descargar vídeos de la red. Sirve en youtube, google video, last.fm, dailymotion, vimeo&#8230; Su uso es muy sencillo: $ clive http://www.youtube.com/watch?v=oHg5SJYRHA0 fetch http://www.youtube.com/watch?v=oHg5SJYRHA0 ...done. verify video link ...done. RickRollD.flv 100% 7.7M / 7.7M 57.1K/s 02m18s Hay más opciones, como &#8220;-f best&#8221; para descargar la versión con el formato [...]]]></description>
			<content:encoded><![CDATA[<p>Existe una pequeña herramienta muy cómoda para descargar vídeos de la red. Sirve en youtube, google video, last.fm, dailymotion, vimeo&#8230;</p>
<p>Su uso es muy sencillo:<br />
<font class="comando">$ clive http://www.youtube.com/watch?v=oHg5SJYRHA0</font></p>
<pre class="codigo">fetch http://www.youtube.com/watch?v=oHg5SJYRHA0 ...done.
verify video link ...done.
RickRollD.flv  100%   7.7M /  7.7M                              57.1K/s  02m18s
</pre>
<p>Hay más opciones, como &#8220;-f best&#8221; para descargar la versión con el formato de mejor calidad o si queremos descargar solo el audio podemos hacer:</p>
<pre class="comando">$ clive --exec="ffmpeg -i %i -acodec libvorbis %i.ogg;" http://www.youtube.com/watch?v=oHg5SJYRHA0
$ clive --exec="ffmpeg -i %i %i.mp3;" http://www.youtube.com/watch?v=oHg5SJYRHA0</pre>
<div class="keywords">Video, download, clive, youtube</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/descargar-videos-de-la-red-clive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN+SSH: Conectar con un servidor SVN mediante SSH</title>
		<link>http://guimi.net/blogs/hiparco/svnssh-conectar-con-un-servidor-svn-mediante-ssh/</link>
		<comments>http://guimi.net/blogs/hiparco/svnssh-conectar-con-un-servidor-svn-mediante-ssh/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 09:01:41 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Prompt]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=958</guid>
		<description><![CDATA[Hay bastantes articulillos sobre como conectar con un servidor SVN mediante SSH, utilizando la opción directa, que no nos permite usar claves de ssh (ssh keys), ni modificar el puerto de ssh, ni en definitiva usar toda la potencia de ssh. El sistema directo para configuraciones sencillas de ssh: $ svn co svn+ssh://servidor/proyecto Sin embargo [...]]]></description>
			<content:encoded><![CDATA[<p>Hay bastantes articulillos sobre como conectar con un servidor SVN mediante SSH, utilizando la opción directa, que no nos permite usar claves de ssh (ssh keys), ni modificar el puerto de ssh, ni en definitiva usar toda la potencia de ssh.<br />
El sistema directo para configuraciones sencillas de ssh:<br />
<font class="comando">$ svn co svn+ssh://servidor/proyecto</font></p>
<p>Sin embargo hay una forma casi igual de sencilla y mucho más potente, con dos sesiones, usando los <a href="http://guimi.net/blogs/hiparco/configuracion-de-ssh/">túneles SSH</a>.<br />
Primero, desde el cliente, hacemos un túnel ssh desde el puerto 3690 del servidor a nuestro puerto local 3690:<br />
<font class="comando">$ ssh usuario@servidor -p xxxx -i id_dsa_key_ssh -L 3690:localhost:3690</font></p>
<p>A partir de hay usamos svn como si estuviese instalado en local:<br />
<font class="comando">$ svn co svn://servidor/proyecto</font></p>
<p>Los túneles ssh son uno de los mejores inventos&#8230; se pueden usar para acceder &#8220;localmente&#8221; a cualquier servidor externo, de cualquier servicio (postgres, svn&#8230;) de forma segura y cómoda.</p>
<div class="keywords">svn, shh, tunel ssh, subversion</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/svnssh-conectar-con-un-servidor-svn-mediante-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expect: Scripts para procesos interactivos</title>
		<link>http://guimi.net/blogs/hiparco/expect-scripts-para-procesos-interactivos/</link>
		<comments>http://guimi.net/blogs/hiparco/expect-scripts-para-procesos-interactivos/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 09:48:52 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Prompt]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=941</guid>
		<description><![CDATA[Algunos procesos no pueden automatizarse simplemente con bash, porque requieren la interacción con el usuario, por ejemplo un login de ssh. En mi caso quería automatizar el montaje de comparticiones de Windows 2003, y aunque podía enviar la clave en el comando, esto queda grabado en los registros de sistema&#8230; no me gusta que se [...]]]></description>
			<content:encoded><![CDATA[<p>Algunos procesos no pueden automatizarse simplemente con bash, porque requieren la interacción con el usuario, por ejemplo un login de ssh.<br />
En mi caso quería automatizar el montaje de comparticiones de Windows 2003, y aunque podía enviar la clave en el comando, esto queda grabado en los registros de sistema&#8230; no me gusta que se registre mi clave:</p>
<pre class="codigo">
<font class="comentario">#!/bin/bash
#
# unidades_red 0.2 - GPL
# (c) 2007-05 Guimi
# http://guimi.net
#
# Ult mod: Guimi 2012-03
#

# Solicitamos la clave</font>
echo  -n "Introduzca su clave de red: "
<font class="comentario"># Tomamos nota del estado de stty</font>
oldmodes=`stty -g`
<font class="comentario"># Quitamos el echo para que no se muestre la clave</font>
stty -echo
<font class="comentario"># Leemos la clave</font>
read clave
<font class="comentario"># Volvemos a situar stty como estaba</font>
stty $oldmodes
<font class="comentario"># Generamos un salto de linea</font>
echo

<font class="comentario"># OJO: LA CLAVE SE REGISTRA</font>
sudo mount -t cifs //SERVIDOR/RECURSO /MONTAJE/ -o username=guimi,workgroup=MIRED,iocharset=utf8,file_mode=0777,dir_mode=0777,password=$clave
</pre>
<p>Una solución pasa por expect.<br />
<font class="comando"># aptitude install expect</font></p>
<pre class="codigo">
<font class="comentario">#!/usr/bin/expect -f
#
# unidades_red 0.3 - GPL
# (c) 2012-03 Guimi
# http://guimi.net
#
# Ult mod: Guimi 2012-03
#
# Tomamos el primer parametro como clave
#set clave [lrange $argv 0 0]

# Solicitamos la clave de red</font>
send_user "Introduzca su clave de red: "
stty -echo
expect_user -re "(.*)\n" {set clave $expect_out(1,string)}
stty echo
send_user "\n"

<font class="comentario"># Anulamos la salida por terminal</font>
log_user 0

<font class="comentario"># Conectamos las unidades de red</font>
spawn sudo mount -t cifs //SERVIDOR/RECURSO /MONTAJE/ -o username=guimi,workgroup=MIRED,iocharset=utf8,file_mode=0777,dir_mode=0777
expect "*assword:"; send "$clave\r"
expect eof

spawn sudo mount -t cifs //SERVIDOR/RECURSO2 /MONTAJE2/ -o username=guimi,workgroup=MIRED,iocharset=utf8,file_mode=0777,dir_mode=0777
expect "*assword:"; send "$clave\r"
expect eof
</pre>
<div class="keywords"><strong>expect, password</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/expect-scripts-para-procesos-interactivos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copia de sistemas, clonado de discos</title>
		<link>http://guimi.net/blogs/hiparco/copia-de-sistemas-clonado-de-discos/</link>
		<comments>http://guimi.net/blogs/hiparco/copia-de-sistemas-clonado-de-discos/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 14:09:18 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=904</guid>
		<description><![CDATA[Para copiar sistemas hay muchas herramientas disponibles: g4l, partimage, ntfsclone&#8230; y por supuesto el viejo y confiable tar. Veamos unas chuletas rápidas que pueden ayudarnos. Lógicamente hay que ajustar los nombres de los discos y las particiones. Copia del MBR y la tabla de particiones Para copiar el MBR y la tabla de particiones de [...]]]></description>
			<content:encoded><![CDATA[<p>Para copiar sistemas hay muchas herramientas disponibles: <a href="http://sourceforge.net/projects/g4l/">g4l</a>, <a href="http://www.partimage.org/Main_Page">partimage</a>, ntfsclone&#8230; y por supuesto el viejo y confiable tar.<br />
Veamos unas chuletas rápidas que pueden ayudarnos. Lógicamente hay que ajustar los nombres de los discos y las particiones.</p>
<p><strong>Copia del MBR y la tabla de particiones</strong><br />
Para copiar el MBR y la tabla de particiones de un disco usamos dd y sfdisk.<br />
MBR:<br />
<font class="comando"># dd if=/dev/sda of=sda.mbr count=1 bs=512</font><br />
Tabla de particiones<br />
<font class="comando"># sfdisk -d /dev/sda > sda.sf</font></p>
<p>Para recuperarlos.<br />
MBR:<br />
<font class="comando"># dd if=sda.mbr of=/dev/sda</font><br />
Tabla de particiones<br />
<font class="comando"># sfdisk /dev/sda < sda.sf</font></p>
<p><strong>Para clonar discos NTFS (Windows), usamos ntfsclone</strong><br />
Esta herramienta (ntfsclone) no permite volcar una imagen de una partición en otra partición más pequeña, aunque los datos quepan. En cambio volcar una partición pequeña en una más grande sí es posible.<br />
Por ello se recomienda que la partición original sea lo más pequeña posible. Lo más cómodo es instalar en una partición grande y después redimensionarla antes de hacer la imagen.<br />
<font class="comando"># ntfsclone -s -o &#8211; /dev/sda1 | gzip | split -b 1500m &#8211; sda1.ntfsclone.gz.</font></p>
<p>Para recuperar la partición usamos:<br />
<font class="comando"># cat sda1.ntfsclone.gz.aa sda1.ntfsclone.gz.ab | gunzip -c | ntfsclone &#8211;restore-image &#8211;overwrite /dev/sda1 -</font></p>
<p><strong>Para copiar datos de un sistema GNU/Linux a otro, mediante ssh+tar</strong><br />
Desde el equipo en el que vamos a volcar los datos (usamos p para preservar los permisos):<br />
<font class="comando">$ ssh IP_equipo_origen &#8220;tar cpf &#8211; /path_a_copiar&#8221; | tar xpf -</font></p>
<p>Si la red en que trabajamos es lenta (por ejemplo a través de internet) podemos comprimir los datos antes de enviarlos, podemos cambiar el directorio en que se copian los datos&#8230;:<br />
<font class="comando">$ ssh IP_equipo_origen &#8220;tar czpf &#8211; /path_a_copiar&#8221; | tar xzpf &#8211; -C /nuevo_path_base</font></p>
<p>También podríamos volcar los datos a un fichero:<br />
<font class="comando">$ ssh IP_equipo_origen &#8220;tar czpf &#8211; /path_a_copiar&#8221; | dd of=copia_datos.tar.gz</font><br />
O en el sentido contrario:<br />
<font class="comando">$ tar czpf &#8211; /path_a_copiar | ssh IP_equipo_destino &#8220;dd of=copia_datos.tar.gz&#8221;</font></p>
<p>Más opciones con<br />
<font class="comando">$ man tar<br />
$ man ssh</font></p>
<p><strong>Trabajar con imágenes de particiones</strong><br />
<font class="comando">$ partimage</font><br />
Sí, ya está, solo eso.<br />
Se pueden ver más opciones para evitar el asistente, como siempre mediante:<br />
<font class="comando">$ man partimage</font></p>
<div class="keywords"><b>tar, ssh, partimage, ntfsclone, dd, clonado, copia</b></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/copia-de-sistemas-clonado-de-discos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generar (diff) y aplicar (patch) parches</title>
		<link>http://guimi.net/blogs/hiparco/generar-diff-y-aplicar-patch-parches/</link>
		<comments>http://guimi.net/blogs/hiparco/generar-diff-y-aplicar-patch-parches/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 08:30:07 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Prompt]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=888</guid>
		<description><![CDATA[Hay manuales muy buenos sobre cómo generar parches&#8230; este no es uno de ellos, pero es una guía rápida para el 90% de casos. Para los ejemplos suponemos que tenemos ficheros originales en una carpeta &#8220;original&#8221; y ficheros modificados en una carpeta &#8220;new&#8221;. Trabajando con ficheros Primero veremos como parchear un único fichero. Usamos el [...]]]></description>
			<content:encoded><![CDATA[<p>Hay manuales muy buenos sobre cómo generar parches&#8230; este no es uno de ellos, pero es una guía rápida para el 90% de casos.</p>
<p>Para los ejemplos suponemos que tenemos ficheros originales en una carpeta &#8220;original&#8221; y ficheros modificados en una carpeta &#8220;new&#8221;.</p>
<p><strong>Trabajando con ficheros</strong><br />
Primero veremos como parchear un único fichero. Usamos el formato unificado (-u). Es el mejor pero &#8220;solo&#8221; sirve para entornos GNU, es decir todos los Linux y muchos UNIX.<br />
<font class="comando">diff -u original/foo.txt new/foo.txt > foo.patch</font></p>
<p>Podemos ver el parche generado con:<br />
<font class="comando">less foo.patch</font><br />
La sintaxis es (línea o rango de líneas)(orden)(línea o rango de líneas)<br />
Orden puede ser:<br />
c &#8211; change &#8211; sustituir unas líneas por otras<br />
a &#8211; add &#8211; añadir líneas<br />
d -delete &#8211; borrar líneas</p>
<p>Para aplicar el parche podemos hacer (nombre de fichero implícito en el parche):<br />
<font class="comando">patch < foo.patch</font><br />
O más seguro<br />
<font class="comando">patch bar.txt < foo.patch</font></p>
<p>Si queremos revertir un parche, porque detectamos que introduce un bug pero que el que corrige, por ejemplo, podemos hacer:<br />
<font class="comando">patch -R < foo.patch</font></p>
<p><strong>Trabajando con directorios</strong><br />
Si modificamos varios ficheros, trabajamos con los directorios.<br />
Generamos el parche con:<br />
<font class="comando">diff -rupN original/ new/ > codigo.patch</font></p>
<p>Lo aplicamos con:<br />
<font class="comando">patch -p1 < codigo.patch</font></p>
<p>Para más información, como siempre:<br />
<font class="comando">$ man diff<br />
$ man patch</font></p>
<p><strong>Trabajando con github.com</strong><br />
Los commits de Github pueden bajarse como parches añadiendo &#8220;.patch&#8221; al URL.<br />
Así bastaría con:<br />
<font class="comando">$ wget github.com/URL_COMMIT.patch<br />
$ patch -p1 < URL_COMMIT.patch</font></p>
<div class="keywords"><strong>diff, patch, parche</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/generar-diff-y-aplicar-patch-parches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comandos para limpiar la configuración de red en Windows</title>
		<link>http://guimi.net/blogs/hiparco/comandos-para-limpiar-la-configuracion-de-red-en-windows/</link>
		<comments>http://guimi.net/blogs/hiparco/comandos-para-limpiar-la-configuracion-de-red-en-windows/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 08:21:46 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=886</guid>
		<description><![CDATA[Si tenemos la desgracia de estar ante un Windows y la red da problemas extraños, además de reiniciar el equipo, o mejor apagarlo y arrancar un GNU/Linux, podemos lanzar los siguientes comandos: ﻿netsh netsh> winsock reset netsh> quit ntbstat -RR ipconfig /flushdns ipconfig /renew Windows, net, red]]></description>
			<content:encoded><![CDATA[<p>Si tenemos la desgracia de estar ante un Windows y la red da problemas extraños, además de reiniciar el equipo, o mejor apagarlo y arrancar un GNU/Linux, podemos lanzar los siguientes comandos:<br />
<font class="comando">﻿netsh</font></p>
<pre class="codigo">netsh> winsock reset
netsh> quit</pre>
<p><font class="comando">ntbstat -RR<br />
ipconfig /flushdns<br />
ipconfig /renew</font></p>
<div class="keywords">Windows, net, red</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/comandos-para-limpiar-la-configuracion-de-red-en-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Red con IP estática</title>
		<link>http://guimi.net/blogs/hiparco/red-con-ip-estatica/</link>
		<comments>http://guimi.net/blogs/hiparco/red-con-ip-estatica/#comments</comments>
		<pubDate>Tue, 17 May 2011 18:15:12 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=583</guid>
		<description><![CDATA[Cada día hay más automatismos&#8230; y ya casi se nos olvida como hacer las cosas por nosotros mismos. Para configurar una IP estática hacemos lo que indica el manual de Debian: Primero configuramos la interfaz (en el ejemplo eth0 con la IP 192.168.11.100). # vi /etc/network/interfaces allow-hotplug eth0 iface eth0 inet static address 192.168.11.100 netmask [...]]]></description>
			<content:encoded><![CDATA[<p>Cada día hay más automatismos&#8230; y ya casi se nos olvida como hacer las cosas por nosotros mismos.<br />
Para configurar una IP estática hacemos lo que indica el <a href="http://www.debian.org/doc/manuals/reference/ch05.en.html#_the_network_interface_with_the_static_ip">manual de Debian</a>:<br />
Primero configuramos la interfaz (en el ejemplo eth0 con la IP 192.168.11.100).<br />
<font class="comando"># vi /etc/network/interfaces</font><br />
<font class="codigo">allow-hotplug eth0<br />
iface eth0 inet static<br />
 address 192.168.11.100<br />
 netmask 255.255.255.0<br />
 broadcast 192.168.11.255<br />
 gateway 192.168.11.1<br />
 dns-domain lan<br />
 dns-nameservers 192.168.11.1<br />
</font> </p>
<p>Después los DNSs, si no está instalado resolvconf, basta con:<br />
<font class="comando"># vi /etc/resolv.conf</font><br />
<font class="codigo">domain localdomain<br />
search localdomain<br />
nameserver 192.168.1.1<br />
</font> </p>
<p>Si está instalado resolvconf (y ante la duda no está de más):<br />
<font class="comando"># vi /etc/resolvconf/resolv.conf.d/base</font><br />
<font class="codigo">nameserver 192.168.1.1<br />
</font> </p>
<p>Tumbamos y levantamos la interfaz&#8230;<br />
<font class="comando"># ifdown eth0<br />
# ifup eth0</font></p>
<p>¡Y ya está!</p>
<div class="keywords">static ip, ip estática, red estática</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/red-con-ip-estatica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para procesar fotos</title>
		<link>http://guimi.net/blogs/hiparco/script-para-procesar-fotos/</link>
		<comments>http://guimi.net/blogs/hiparco/script-para-procesar-fotos/#comments</comments>
		<pubDate>Tue, 03 May 2011 20:20:46 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Prompt]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=578</guid>
		<description><![CDATA[Tras varios apuntes sobre como trabajar con fotos, pongo aquí el script completo que yo utilizo: #!/bin/bash # # procesa_fotos.sh # Por Guimi 2009/08 - http://www.guimi.net # #################################### #### ERRORES E_NOPARAM=64 # Bad number of params ########################## # PARAMETROS DIR="./procesadas" mkdir $DIR echo "Renombrando videos..." # Los ficheros .mov son peliculas que tienen asociado #+ [...]]]></description>
			<content:encoded><![CDATA[<p>Tras varios apuntes sobre como <a href="http://guimi.net/blogs/hiparco/category/multimedia/">trabajar con fotos</a>, pongo aquí el script completo que yo utilizo:</p>
<pre class="codigo"><font class="comentario">#!/bin/bash
#
# procesa_fotos.sh
# Por Guimi 2009/08 - http://www.guimi.net
#

####################################
#### ERRORES</font>
E_NOPARAM=64        # Bad number of params

<font class="comentario">##########################
# PARAMETROS</font>
DIR="./procesadas"

mkdir $DIR

echo "Renombrando videos..."
<font class="comentario"># Los ficheros .mov son peliculas que tienen asociado
#+ un fichero .jpg con el mismo nombre</font>
for x in `ls *.mov 2> /dev/null`
do
	<font class="comentario"># Primero hemos de tomar el nombre sin la extension</font>
	longitud_fichero=${#x}
	longitud_nombre=$(($longitud_fichero-4))
	nombre_fichero=${x:0:$longitud_nombre}

	<font class="comentario"># Comprobamos si existe el mismo fichero con extension jpg
	# En algunas camaras se llama .thm pero NO tiene cabecera exif</font>
	if [ -f $nombre_fichero.jpg ]
	then
		<font class="comentario"># Tomamos la fecha, hora, minuto y segundo de la cabecera exif</font>
		momento=`exif -t 0x9003 -m $nombre_fichero.jpg`
		nuevo_nombre="${momento:0:4}${momento:5:2}${momento:8:2}-${momento:11:2}${momento:14:2}${momento:17:2}"

		<font class="comentario"># Renombramos el fichero mov</font>
		cp $x $DIR/$nuevo_nombre.mov
	fi
done

echo "Renombrando fotos..."
<font class="comentario"># Copiamos las fotos al directorio de trabajo</font>
cp *.jpg $DIR
<font class="comentario"># Nos movemos al directorio de trabajo</font>
cd $DIR
<font class="comentario"># Renombramos ficheros y los rotamos si es menester</font>
jhead -autorot -n%Y%m%d-%H%M%S *.jpg > /dev/null
<font class="comentario">#jhead -n%Y%m%d-%H%M%S *.jpg</font>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/script-para-procesar-fotos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir archivos Open XML (DOCX) a Open Document Format (ODF) y viceversa</title>
		<link>http://guimi.net/blogs/hiparco/convertir-archivos-open-xml-docx-a-open-document-format-odf-y-viceversa/</link>
		<comments>http://guimi.net/blogs/hiparco/convertir-archivos-open-xml-docx-a-open-document-format-odf-y-viceversa/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 10:49:34 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[Ofimática]]></category>
		<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=525</guid>
		<description><![CDATA[Antes o después nos encontramos con el momento desagradable en que nos envían un documento en el formato &#8220;Open XML&#8221;, un formato cerrado de Microsoft que utiliza a partir de Office 2007 (archivos docx, xlsx, pptx&#8230;). En este caso lo primero que hay que hacer es explicar al remitente que es mejor no utilizar esa [...]]]></description>
			<content:encoded><![CDATA[<p>Antes o después nos encontramos con el momento desagradable en que nos envían un documento en el formato &#8220;Open XML&#8221;, un formato cerrado de Microsoft que utiliza a partir de Office 2007 (archivos docx, xlsx, pptx&#8230;).</p>
<p>En este caso lo primero que hay que hacer es explicar al remitente que es mejor no utilizar esa engañifa y solicitarle de nuevo el documento en otro formato. Una opción es instalar <a href="http://sourceforge.net/projects/odf-converter/files/ODF%20Add-in%20for%20Office/">odf-converter</a> en Windows que permite a Microsoft Office guardar documentos en ODF.</p>
<p>Lo segundo, si lo primero falla, es convertir el documento al formato estándar y abierto ODF, mediante una herramienta en línea de comandos de <a href="http://go-oo.org/">Go-OO.org</a> basada siempre en <a href="http://odf-converter.sourceforge.net/">odf-converter</a> (la pista es de <a href="http://www.oooninja.com/2008/01/convert-openxml-docx-etc-in-linux-using.html">OOONinja</a>).</p>
<p>Para ello descargamos el fichero rpm desde el <a href="http://download.go-oo.org/tstnvl/odf-converter/RPMS/i586/">repositorio de go-oo.org</a>.<br />
<font class="comando">$ wget http://download.go-oo.org/tstnvl/odf-converter/RPMS/i586/odf-converter-3.0.5273-1.i586.rpm</font></p>
<p>Instalamos herramientas necesarias:<br />
<font class="comando">$ sudo aptitude install rpm libgif4</font></p>
<p>Extraemos los ficheros, bien mediante el gestor de archivadores (doble click sobre el rpm), bien mediante:<br />
<font class="comando">$ rpm2cpio odf-converter*rpm | cpio -ivd</font></p>
<p>Y copiamos los binarios:<br />
<font class="comando">$ sudo cp usr/lib/ooo-2.0/program/OdfConverter /usr/bin/odfconverter-2.0<br />
$ sudo cp usr/lib/ooo3/program/OdfConverter /usr/bin/odfconverter-3</font></p>
<p>El uso es muy sencillo. Por ejemplo para convertir un fichero XLSX hacemos:<br />
<font class="comando">$ odfconverter-2.0 fichero.xlsx</font><br />
Y nos genera (tarda un poco) <font class="comando">fichero.ods</font>.</p>
<p>También se puede utilizar para convertir ficheros ODF a DOCX, pero no veo el interés o beneficio. En un momento dado es mejor convertir al formato anterior de Microsoft (doc, xls, ppt&#8230;).</p>
<p><span class="keywords"><b>ODF, DOCX, Open XML, convertir</b></span></p>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/convertir-archivos-open-xml-docx-a-open-document-format-odf-y-viceversa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ordenar archivos en sistemas de ficheros FAT</title>
		<link>http://guimi.net/blogs/hiparco/ordena-archivos-en-sistemas-de-ficheros-fat/</link>
		<comments>http://guimi.net/blogs/hiparco/ordena-archivos-en-sistemas-de-ficheros-fat/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 08:56:52 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Prompt]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=491</guid>
		<description><![CDATA[El sistema de ficheros FAT es uno de lo más antiguos todavía en uso. Su actual popularidad se debe a que la mayoría de teléfonos móviles, lectores de MP3, cámaras de fotos, radios, etc. solo reconocen este sistema, por lo que las memorias USB, las tarjetas SD, MMC, etc. vienen formateadas con FAT. El problema [...]]]></description>
			<content:encoded><![CDATA[<p>El <a href="http://es.wikipedia.org/wiki/Tabla_de_Asignaci%C3%B3n_de_Archivos" class="wiki">sistema de ficheros FAT</a> es uno de lo más antiguos todavía en uso. Su actual popularidad se debe a que la mayoría de teléfonos móviles, lectores de MP3, cámaras de fotos, radios, etc. solo reconocen este sistema, por lo que las memorias USB, las tarjetas SD, MMC, etc. vienen formateadas con FAT.</p>
<p>El problema es que estos dispositivos no suelen ordenar los ficheros y directorios que encuentran, sino que muesrtan los archivos tal y como están grabados. Esto hace que muchas veces, tras pasar varias horas ordenando tu colección de música, molestándote en ponerles nombres tipo &#8220;01-titulo-artista.mp3&#8243; y demás, te encuentras con que el reproductor lista las canciones aleatoriamente.</p>
<p>Para evitar esto basta con &#8220;ordenar&#8221; los ficheros en el sistema FAT. En GNU/Linux, como es habitual, es muy sencillo hacerlo (el dispositivo debe estar desmontado):<br />
<font class="comando">sudo fatsort (dispositivo)</font></p>
<p>Para que esto funcione bien, primero hay que instalar fatsort, lo que a su vez tambien es muy sencillo:<br />
<font class="comando">sudo aptitude install fatsort</font><br />
Se puede obtener información sobre la patición con:<br />
<font class="comando">sudo fatsort -i (dispositivo)</font></p>
<div class="keywords"><b>FAT, sort, fatsort, ordenar ficheros, sort files</b></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/ordena-archivos-en-sistemas-de-ficheros-fat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

