<?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; Güimi</title>
	<atom:link href="http://guimi.net/blogs/hiparco/author/admin/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>(Des)Activar Ctrl+Alt+Backspace en Gnome</title>
		<link>http://guimi.net/blogs/hiparco/desactivar-ctrlaltbackspace-en-gnome/</link>
		<comments>http://guimi.net/blogs/hiparco/desactivar-ctrlaltbackspace-en-gnome/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 21:05:06 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=1010</guid>
		<description><![CDATA[Desde hace unas cuantas versiones, el escritorio Gnome no permite reiniciar el servidor X con la combinación Ctrl+Alt+Backspace. Para rehabilitarla hay que ir al menú &#8216;Sistema->Preferencias->Teclado&#8216; y una vez ahí en la pestaña &#8216;Distribuciones&#8217; seleccionar &#8216;Opciones&#8217;. La opción que buscamos es &#8216;Key sequence to kill the X server&#8216;: Gnome, kill, X server]]></description>
			<content:encoded><![CDATA[<p>Desde hace unas cuantas versiones, el escritorio Gnome no permite reiniciar el servidor X con la combinación Ctrl+Alt+Backspace.<br />
Para rehabilitarla hay que ir al menú &#8216;<strong>Sistema->Preferencias->Teclado</strong>&#8216; y una vez ahí en la pestaña &#8216;Distribuciones&#8217; seleccionar &#8216;Opciones&#8217;.</p>
<p>La opción que buscamos es &#8216;<strong>Key sequence to kill the X server</strong>&#8216;:<br />
<a href="http://guimi.net/blogs/hiparco/wp-content/2012/03/Gnome-Ctrl+Alt+Backspace.png"><img src="http://guimi.net/blogs/hiparco/wp-content/2012/03/Gnome-Ctrl+Alt+Backspace-300x230.png" alt="" title="Gnome-Ctrl+Alt+Backspace" width="300" height="230" class="alignnone size-medium wp-image-1012" /></a></p>
<div class="keywords">Gnome, kill, X server</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/desactivar-ctrlaltbackspace-en-gnome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Separador de miles en OpenERP</title>
		<link>http://guimi.net/blogs/hiparco/separador-de-miles-en-openerp/</link>
		<comments>http://guimi.net/blogs/hiparco/separador-de-miles-en-openerp/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 18:44:11 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=1003</guid>
		<description><![CDATA[Vamos a &#8216;Administración -> Traducciones -> Idiomas&#8216; y seleccionamos nuestro idioma (es_ES). En el formulario indicamos el separador de miles (.) y en formato de separador indicamos &#8220;[3]&#8220;. OpenERP, separador, miles]]></description>
			<content:encoded><![CDATA[<p>Vamos a &#8216;<strong>Administración -> Traducciones -> Idiomas</strong>&#8216; y seleccionamos nuestro idioma (es_ES). En el formulario indicamos el separador de miles (.) y en formato de separador indicamos &#8220;[3]&#8220;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_50.png" alt="OpenERP" /></p>
<div class="keywords">OpenERP, separador, miles</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/separador-de-miles-en-openerp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar remesas de la norma AEB 19 (CSB 19) en OpenERP</title>
		<link>http://guimi.net/blogs/hiparco/configurar-remesas-de-la-norma-aeb-19-csb-19-en-openerp/</link>
		<comments>http://guimi.net/blogs/hiparco/configurar-remesas-de-la-norma-aeb-19-csb-19-en-openerp/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 18:41:32 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=999</guid>
		<description><![CDATA[Para poder generar remesas según la norma AEB 19 (antes llamada CSB 19) primero debemos generar un &#8216;Modo de pago&#8217; desde &#8216;Contabilidad -> Configuración &#8211; > Varios -> Modos de pago&#8216;. Generamos un nuevo modo de pago para nuestra compañía y sobre nuestro CCC. Notas: El sufijo es un dato que da el banco. Si [...]]]></description>
			<content:encoded><![CDATA[<p>Para poder generar remesas según la norma AEB 19 (antes llamada CSB 19) primero debemos generar un &#8216;Modo de pago&#8217; desde &#8216;<strong>Contabilidad -> Configuración &#8211; > Varios -> Modos de pago</strong>&#8216;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_101.png" alt="OpenERP" /><br />
Generamos un nuevo modo de pago para nuestra compañía y sobre nuestro CCC.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_102.png" alt="OpenERP" /><br />
<strong>Notas:</strong> El sufijo es un dato que da el banco. Si no sabes cuál es, probablemente sea &#8217;000&#8242; (solo se dan más para empresas grandes y complejas, en cuyo caso ya lo sabrías ;-).</p>
<p>Una vez configurado el modo de pago ya podemos generar remesas desde &#8216;<strong>Contabilidad -> Pago -> Órdenes de cobro</strong>&#8216;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_103.png" alt="OpenERP" /><br />
Pulsamos sobre &#8216;Nuevo&#8217; y solo tenemos que indicar el modo de pago antes de poder &#8220;Seleccionar facturas a pagar/cobrar&#8221;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_104.png" alt="OpenERP" /></p>
<p>Para la norma 43 haremos lo mismo pero definiendo primero los conceptos bancarios.</p>
<div class="keywords">OpenERP, AEB19, CSB19, norma 19</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/configurar-remesas-de-la-norma-aeb-19-csb-19-en-openerp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Permitir cancelaciones en OpenERP</title>
		<link>http://guimi.net/blogs/hiparco/permitir-cancelaciones-en-openerp/</link>
		<comments>http://guimi.net/blogs/hiparco/permitir-cancelaciones-en-openerp/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 18:38:12 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=997</guid>
		<description><![CDATA[Por defecto OpenERP no deja cancelar una factura una vez validada. Es una buena política que los usuarios no puedan cancelar facturas. Recordemos que podemos preparar usuarios que realicen las facturas y las dejen en modo borrador y usuarios encargados de validar las facturas. Pero al final siempre es bueno que al menos uno de [...]]]></description>
			<content:encoded><![CDATA[<p>Por defecto OpenERP no deja cancelar una factura una vez validada. Es una buena política que los usuarios no puedan cancelar facturas. Recordemos que podemos preparar usuarios que realicen las facturas y las dejen en modo borrador y usuarios encargados de validar las facturas.<br />
Pero al final siempre es bueno que al menos uno de los usuarios que puede validar las facturas también pueda cancelarlas. Para ello instalamos el módulo &#8216;account_cancel&#8217;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_82.png" alt="OpenERP" /><br />
Se puede consultar <a href="http://guimi.net/blogs/hiparco/instalar-en-openerp-los-modulos-de-la-localizacion-espanola/">cómo instalar módulos en OpenERP</a>.</p>
<p>Vamos a &#8216;<strong>Contabilidad -> Configuración -> Contabilidad financiera -> Diarios -> Diarios</strong>&#8216; y en el diario de venta (SAJ: Sales Journal) marcamos &#8216;Permitir cancelación de asientos&#8217;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_82b.png" alt="OpenERP" /></p>
<div class="keywords">OpenERP, cancelar</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/permitir-cancelaciones-en-openerp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Renumerar asientos en OpenERP</title>
		<link>http://guimi.net/blogs/hiparco/renumerar-asientos-en-openerp/</link>
		<comments>http://guimi.net/blogs/hiparco/renumerar-asientos-en-openerp/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 10:22:13 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=987</guid>
		<description><![CDATA[La norma española (y probablemente la de otros países también) impone una serie de condicionantes en la numneración de los asientos que pueden hacer necesario renumerarlos. Esto es uno de los procesos habituales al cerrar un periodo (fin de mes, de trimestre, cierre de ejercicio&#8230;). Desde el menú de &#8216;Contabilidad -> Configuración -> Contabilidad financiera [...]]]></description>
			<content:encoded><![CDATA[<p>La norma española (y probablemente la de otros países también) impone una serie de condicionantes en la numneración de los asientos que pueden hacer necesario renumerarlos.<br />
Esto es uno de los procesos habituales al cerrar un periodo (fin de mes, de trimestre, cierre de ejercicio&#8230;).</p>
<p>Desde el menú de &#8216;Contabilidad -> Configuración -> Contabilidad financiera -> Diarios -> Diarios&#8217; seleccionamos un diario.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_39.png" alt="OpenERP" /></p>
<p>En la sección de &#8216;Atajos&#8217; encontramos el asistente &#8216;Renumerar asientos contables&#8217;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_41.png" alt="OpenERP" /></p>
<p>Lo lanzamos y seleccionamos los diarios y periodos a renumerar.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_46.png" alt="OpenERP" /></p>
<p>Cuando termina, el asistente nos avisa de que ha realizado la operación solicitada.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_47.png" alt="OpenERP" /></p>
<div class="keywords">OpenERP, renumerar, asientos</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/renumerar-asientos-en-openerp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Separar secuencias de facturas en OpenERP</title>
		<link>http://guimi.net/blogs/hiparco/separar-secuencias-de-facturas-en-openerp/</link>
		<comments>http://guimi.net/blogs/hiparco/separar-secuencias-de-facturas-en-openerp/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 10:13:16 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=982</guid>
		<description><![CDATA[Desde la versión 6.0 de OpenERP el contador de facturas y el de movimientos contables son el mismo. Esto hace que la numeración de las facturas no sea correlativo, lo cual va contra la norma española. Por ejemplo, creamos una factura (contador &#8217;1&#8242;), hacemos el pago (contador &#8217;2&#8242;), hacemos otra factura (contador &#8217;3&#8242;). Para solventar [...]]]></description>
			<content:encoded><![CDATA[<p>Desde la versión 6.0 de OpenERP el contador de facturas y el de movimientos contables son el mismo. Esto hace que la numeración de las facturas no sea correlativo, lo cual va contra la norma española.<br />
Por ejemplo, creamos una factura (contador &#8217;1&#8242;), hacemos el pago (contador &#8217;2&#8242;), hacemos otra factura (contador &#8217;3&#8242;).</p>
<p>Para solventar esto instalamos el módulo &#8216;nan_account_invoice_sequence&#8217; (<a href="http://guimi.net/blogs/hiparco/instalar-en-openerp-los-modulos-de-la-localizacion-espanola/">cómo instalar módulos en OpenERP</a>) que nos crea cuatro secuencias para facturas normales y facturas rectificativas de clientes y proveedores: account invoice in (facturas a clientes), account refund in (fac. rectificativas), account invoice out (facturas de proveedores), account refund out (fac. rectificativas).</p>
<p>Debemos ir a los diarios y asignar las nuevas secuencias desde el menú de &#8216;Contabilidad -> Configuración -> Contabilidad financiera -> Diarios -> Diarios&#8217;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_39.png" alt="OpenERP" /></p>
<p>Asignamos al diario &#8216;Purchase Journal&#8217; la secuencia &#8216;Account invoice out&#8217;.<br />
Asignamos al diario &#8216;Sales Journal&#8217; la secuencia &#8216;Account invoice in&#8217;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_41.png" alt="OpenERP" /></p>
<p>Si vamos a mantener el formato y la numeración de facturas utilizado hasta ahora (por ejemplo FAC/2012/0001), basta con indicar en la nueva secuencia el siguiente número de factura. Abrimos &#8216;Administración -> Configuración -> Secuencias -> Secuencias&#8217;.<br />
<img src="/blogs/hiparco/res/OpenERP/OpenERP_83.png" alt="OpenERP" /><br />
Es decir, si hemos emitido 20 facturas, indicamos que el siguiente número es el 21.<br />
Para que todo sea correcto, ejecutamos el asistente de <a href="/blogs/hiparco/renumerar-asientos-en-openerp/">renumerar asientos contables en OpenERP</a>. Con esto ya hemos terminado.</p>
<p>Si deseamos modificar la numeración de las facturas existentes, bien porque cambiamos el formato, bien porque la numeración no es correcta, en vez de lanzar la renumeración automática de asientos es preferible ir factura a factura y hacer: cancelar->borrador->validar->cancelar->borrador->validar (es decir cancelamos y validamos dos veces cada factura).<br />
<strong>ATENCIÓN</strong>: Esto tiene varios problemas. Primero, las facturas emitidas y enviadas a clientes, legalmente no pueden cambiar su número así como así. Segundo, las facturas ya pagadas habrán generado los correspondientes movimientos que también habrá que deshacer y rehacer.<br />
En general es mejor no modificar la numeración de las facturas una vez se han emitido en producción.</p>
<div class="keywords">OpenERP, secuencias, facturas</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/separar-secuencias-de-facturas-en-openerp/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>Solventar en OSCommerce eregi is deprecated</title>
		<link>http://guimi.net/blogs/hiparco/solventar-en-oscommerce-eregi-is-deprecated/</link>
		<comments>http://guimi.net/blogs/hiparco/solventar-en-oscommerce-eregi-is-deprecated/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 08:22:40 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=917</guid>
		<description><![CDATA[Si tienes OSCommerce y actualizas PHP, aparece el error &#8220;eregi is deprecated&#8221;. Para solventarlo vamos al foro de OSCommerce, donde tenemos los parches. Después siguiendo esta receta de cómo generar (diff) y aplicar (patch) parches, bajamos de github los parches, añadiendo &#8220;.patch&#8221; al URL y aplicar los parches. $ wget https://github.com/osCommerce/oscommerce2/commit/79c601a7b3ee87943b92a5e6d77ce02480b49ffe.patch $ wget https://github.com/osCommerce/oscommerce2/commit/88d550f392d86c02d2fe16d0b93f1de8aa6a6770.patch $ [...]]]></description>
			<content:encoded><![CDATA[<p>Si tienes OSCommerce y actualizas PHP, aparece el error &#8220;eregi is deprecated&#8221;.</p>
<p>Para solventarlo vamos al <a href="http://forums.oscommerce.com/topic/341737-function-ereg-replace-is-deprecated/page__p__1434612__hl__eregi%20deprecated__fromsearch__1&#entry1447311">foro de OSCommerce</a>, donde tenemos los parches.</p>
<p>Después siguiendo esta receta de cómo <a href="http://guimi.net/blogs/hiparco/generar-diff-y-aplicar-patch-parches/">generar (diff) y aplicar (patch) parches</a>, bajamos de github los parches, añadiendo &#8220;.patch&#8221; al URL y aplicar los parches.</p>
<pre class="comando">
$ wget https://github.com/osCommerce/oscommerce2/commit/79c601a7b3ee87943b92a5e6d77ce02480b49ffe.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/88d550f392d86c02d2fe16d0b93f1de8aa6a6770.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/1bfed2f6bf0e9c1c0ce4b160bce1e881cc6e6ef8.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/15101263fa27b523139b405f99b1613c71a8e2c1.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/bc2bcd9b1bd2148bf852409b3843543555bc01e2.patch
$ patch -p1 < 79c601a7b3ee87943b92a5e6d77ce02480b49ffe.patch</pre>
<pre class="codigo">
patching file catalog/admin/backup.php
patching file catalog/admin/cache.php
Hunk #1 succeeded at 91 with fuzz 2.
patching file catalog/admin/configuration.php
patching file catalog/admin/ext/modules/payment/sofortueberweisung/install.php
[...]
patching file catalog/admin/includes/functions/general.php
Hunk #1 FAILED at 939.
1 out of 1 hunk FAILED -- saving rejects to file catalog/admin/includes/functions/general.php.rej
[...]
patching file catalog/includes/modules/payment/paypal_express.php
Hunk #1 FAILED at 59.
1 out of 1 hunk FAILED -- saving rejects to file catalog/includes/modules/payment/paypal_express.php.rej
[...]
</pre>
<p>Si nos fijamos en esta parte de la salida:</p>
<pre class="codigo">
patching file catalog/admin/includes/functions/general.php
Hunk #1 FAILED at 939.
1 out of 1 hunk FAILED -- saving rejects to file catalog/admin/includes/functions/general.php.rej
</pre>
<p>Vemos que al parchear el fichero "<font class="comando">catalog/admin/includes/functions/general.php</font>" en la línea 939 ha habido un error.<br />
Tenemos más información en "<font class="comando">catalog/admin/includes/functions/general.php.rej</font>". Lo que hace patch en este casp es generar 3 ficheros:<br />
- general.php es el fichero original CON los cambios que SÍ ha aplicado.<br />
- general.php.orig es el fichero original.<br />
- general.php.rej contiene los cambios que NO ha aplicado.<br />
Así si el parche incluye varios cambios para un fichero puede ocurrir que unos cambios se apliquen y otros no.<br />
En este caso no queda más remedio que revisar el cambio no realizado a mano.</p>
<p>Puede ocurrir que el archivo a parchear no exista. En ese caso tendremos solo dos ficheros:<br />
- x.orig con 0 bytes, es copia del original. Como éste no existía, es un archivo en blanco.<br />
- x.rej los cambios que no se han aplicado.<br />
Basta con confirmar que es correcto que el fichero no exista. podría ocurrir que esté movido (revisar porqué), o que sea de un módulo del que no disponemos -lo habitual- (ignorar).</p>
<p>Igual con el resto de parches:</p>
<pre class="comando">
$ patch -p1 < 88d550f392d86c02d2fe16d0b93f1de8aa6a6770.patch
$ patch -p1 < 1bfed2f6bf0e9c1c0ce4b160bce1e881cc6e6ef8.patch
$ patch -p1 < 15101263fa27b523139b405f99b1613c71a8e2c1.patch
$ patch -p1 < bc2bcd9b1bd2148bf852409b3843543555bc01e2.patch
</pre>
<div class="keywords"><strong>OSCommerce, OSC, github, eregi deprecated, patch, </strong></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/solventar-en-oscommerce-eregi-is-deprecated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

