<?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>El blog de Rodrigo Rega</title>
	<atom:link href="http://blog.rodrigorega.es/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rodrigorega.es</link>
	<description>blog personal de Rodrigo Rega</description>
	<lastBuildDate>Thu, 13 Oct 2011 12:17:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Cyanogen 7.1: Problemas WiFi en Motorola Defy</title>
		<link>http://blog.rodrigorega.es/cyanogen-7-1-problemas-wifi-en-motorola-defy/</link>
		<comments>http://blog.rodrigorega.es/cyanogen-7-1-problemas-wifi-en-motorola-defy/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 23:01:07 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[baseband]]></category>
		<category><![CDATA[cyanogen]]></category>
		<category><![CDATA[motorola defy]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=253</guid>
		<description><![CDATA[El pasado día 9 de Octubre de 2011 el smartphone Motorola Defy fue incluido definitivamente en el proyecto CyanogenMod. La versión 7.1 es la primera soportando Motorola Defy oficialmente. Tas replicar el procedimiento de la guía de instalación he conseguido ejecutar CyanogenMod 7.1 en mi Motorola Defy sin ningún contratiempo. La instalación la realicé a partir de la rom 3.4.2 131-003 Orange [...]]]></description>
			<content:encoded><![CDATA[<p>El pasado día 9 de Octubre de 2011 el smartphone <strong>Motorola Defy</strong> fue incluido definitivamente en el proyecto <a title="CyanogenMod" href="http://www.cyanogenmod.com/">CyanogenMod</a>. La versión 7.1 es la primera soportando Motorola Defy oficialmente.</p>
<div id="attachment_255" class="wp-caption aligncenter" style="width: 212px"><a href="http://blog.rodrigorega.es/cyanogen-7-1-problemas-wifi-en-motorola-defy/screenshot-1318457724213/" rel="attachment wp-att-255"><img class="size-full wp-image-255  " title="Captura detalles Motorola Defy con Cyanogen 7.1" src="http://blog.rodrigorega.es/wp-content/uploads/2011/10/screenshot-1318457724213.png" alt="Captura detalles Motorola Defy con Cyanogen 7.1" width="202" height="358" /></a><p class="wp-caption-text">Captura detalles Motorola Defy con Cyanogen 7.1</p></div>
<p>Tas replicar el procedimiento de la <a href="http://forum.cyanogenmod.com/topic/32469-cyanogenmod-7-for-the-motorola-defy-v710-9-oct-2011/">guía de instalación</a> he conseguido ejecutar <strong>CyanogenMod 7.1 en mi Motorola Defy</strong> sin ningún contratiempo. La instalación la realicé a partir de la rom <a href="http://forum.xda-developers.com/showthread.php?t=940238" rel="nofollow">3.4.2 131-003 Orange Deblur</a> rooteada (<a href="http://blog.rodrigorega.es/rootear-motorola-defy/">procedimiento que seguí para su rooteo</a>). Las primeras pruebas fueron satisfactorias, el sistema es estable y más fluido que con la anterior rom. Sin embargo salió a la luz un <strong>problema con la conexión WiFi</strong>. En condiciones de uso &#8220;estándar&#8221; la conexión funcionaba correctamente. Al hacer uso intensivo de la red WiFi, como por ejemplo en la sincronización de música a través de Spotify o llamadas vía Skype, la conexión se perdía. Para recuperar dicha conexión era necesario desactivar la comunicación WiFi en el móvil y reactivarla.</p>
<p>Tras consultar las fuentes habituales (<a href="http://forum.xda-developers.com/forumdisplay.php?f=852">xda-developers</a> y <a href="http://www.htcmania.com/forumdisplay.php?f=314">HTC manía</a>) parecía que dicho problema era algo aislado. De modo que si no es un problema de la rom, debería ser de algún tipo de parámetro personalizable. Tras repetir los wipes de cache, dalvik, SD, etc. el problema persistía por lo que se me ocurrió que podría ser que a mi anterior rom, la cual no era oficial, le hubiese cambiado también el firmware de radio, encargado de las comunicaciones inalámbricas móviles y WiFi. En ese punto recordé que <strong>Cyanogen 7.1</strong> incluye la utilidad <strong><em>Defy Baseband Switcher </em></strong>que permite cambiar la banda base de la radio. La banda base que tenía seleccionada por defecto era &#8220;<strong>Europa Central Hong Kong, Taiwan, Saudita, Francia, Nóridocos 3.4.x, Reino Unido 4.5.1-85</strong>&#8220;. Tras seleccionar &#8220;<strong>Europa Central RT_3.4.2-145</strong>&#8221; y reiniciar el sistema, pasé ha realizar una sincronización de música con Spotify y el problema de pérdida de conexión WiFi se había solucionado.</p>
<div id="attachment_256" class="wp-caption aligncenter" style="width: 212px"><a href="http://blog.rodrigorega.es/cyanogen-7-1-problemas-wifi-en-motorola-defy/screenshot-1318457763472/" rel="attachment wp-att-256"><img class="size-full wp-image-256  " title="Captura Baseband Switcher" src="http://blog.rodrigorega.es/wp-content/uploads/2011/10/screenshot-1318457763472.png" alt="Captura Baseband Switcher" width="202" height="358" /></a><p class="wp-caption-text">Captura Baseband Switcher</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/cyanogen-7-1-problemas-wifi-en-motorola-defy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rootear Motorola Defy</title>
		<link>http://blog.rodrigorega.es/rootear-motorola-defy/</link>
		<comments>http://blog.rodrigorega.es/rootear-motorola-defy/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 12:32:50 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[motorola defy]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[rootear]]></category>
		<category><![CDATA[superoneclick]]></category>
		<category><![CDATA[vodafone]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=241</guid>
		<description><![CDATA[El Motorola Defy que está comercializando Vodafone actualmente viene cargado de utilidades de Motorola que seguramente nunca utilizaré. Para deshacerme de ellas, hacer overclocking, underclocking, cambiar la ROM o  instalar algunas aplicaciones cómo Titanium Backup o AdFree necesito obtener acceso root en el sistema Android. Éstos son los pasos que he seguido para conseguir root [...]]]></description>
			<content:encoded><![CDATA[<p>El <strong>Motorola Defy</strong> que está comercializando Vodafone actualmente viene cargado de utilidades de Motorola que seguramente nunca utilizaré. Para deshacerme de ellas, hacer overclocking, underclocking, cambiar la ROM o  instalar algunas aplicaciones cómo <em>Titanium Backup</em> o <em>AdFree</em> necesito obtener acceso <strong>root</strong> en el sistema <strong>Android</strong>.</p>
<p><span id="more-241"></span></p>
<p>Éstos son los pasos que he seguido para conseguir <strong>root</strong> en <strong>Motorola Defy</strong> con Android 2.1 y firmware 2.51.1 (desde Windows 7 64bits):</p>
<ol>
<li>Descargar e instalar <a href="http://www.motorola.com/staticfiles/Support/Experiences/Global_Drivers/USB_Drivers_bit_4.8.0.exe">drivers motorola</a>.</li>
<li>En el teléfono activar<strong> Depuración USB</strong>: Acceder a: Menú-&gt;Ajustes-&gt;Aplicaciones-&gt;Desarrollo y activar &#8220;Deputación USB&#8221;.</li>
<li>Conectar teléfono por USB al PC. Seleccionar &#8220;<strong>Portal y herramientas</strong> &#8221; en el modo de conexión USB en el móvil. Se instalarán los drivers y se abrirá el portal motorola. Cerraremos todas las ventanas del portal motorola</li>
<li>El programa para el <strong>rooteo</strong> será <strong>SuperOneClick</strong>, el cual depende de <strong>Microsoft .NET Framework 2.0</strong>, por lo que se ha de instalar: <a href="http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5">versión 32 bits</a> | <a href="http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=b44a0000-acf8-4fa1-affb-40e78d788b00">versión 64 bits</a>.</li>
<li><a href="http://www.megaupload.com/?d=0GGUEBUI">Descargar SuperOneClick</a>, descomprimirlo y ejecutarlo cómo administrador haciendo click derecho encima de SuperOneClick.exe y seleccionando &#8220;<strong>Ejecutar como administrador</strong>&#8220;.</li>
<li>En SuperOneClick hacer click en el botón &#8220;Root&#8221;. Una vez finalice el proceso correctamente, cerrar SuperOneClick, desactivar Depuración USB y reiniciar el teléfono.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/rootear-motorola-defy/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>El servidor más rápido para sources.list</title>
		<link>http://blog.rodrigorega.es/el-servidor-mas-rapido-para-sources-list/</link>
		<comments>http://blog.rodrigorega.es/el-servidor-mas-rapido-para-sources-list/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 19:13:57 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[apt-spy]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[repositorio]]></category>
		<category><![CDATA[sources.list]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=234</guid>
		<description><![CDATA[Hasta hoy era usuario de netselect-apt para hacerme con el servidor (o repositorio) con mayor ancho de banda posible para las actualizaciones de paquetes de Debian. Digo hasta hoy ya que me encontré con que el repositorio que estaba usando (http://mirrors.nfsi.pt/debian/) dejó de funcionar. A raíz de eso me dispuse a ejecutar el &#8220;nectselect-apt -n [...]]]></description>
			<content:encoded><![CDATA[<p>Hasta hoy era usuario de <strong>netselect-apt</strong> para hacerme con el servidor (o <strong>repositorio</strong>) con mayor ancho de banda posible para las actualizaciones de paquetes de <strong>Debian</strong>. Digo hasta hoy ya que me encontré con que el repositorio que estaba usando (http://mirrors.nfsi.pt/debian/) dejó de funcionar. A raíz de eso me dispuse a ejecutar el &#8220;nectselect-apt -n unstable&#8221; de rigor pero el resultado no era el esperado. El <strong>sources.list</strong> generado contenía una línea sin especificar servidor:</p>
<blockquote><p>deb  unstable main contrib non-free</p></blockquote>
<p>Tras buscar unos minutos encontré la alternativa a  netselect-apt: <strong>apt-spy</strong>. Su funcionalidad prácticamente la misma, testea <strong>mirrors de Debian</strong> y genera un archivo <strong>sources.list</strong> con el servidor de mayor ancho de banda.</p>
<p><span id="more-234"></span></p>
<h2>Instalar apt-spy en Debian</h2>
<p>Tomar privilegios de administrador y actualizar el repositorios</p>
<pre class="brush:bash" style="padding-left: 30px;"># su - &amp;&amp; apt-get update</pre>
<p>Podríamos ver la descripción de la utilidad antes de instalarla:</p>
<pre class="brush:bash" style="padding-left: 30px;"># apt-cache show apt-spy</pre>
<p>Con lo que obtendríamos:</p>
<blockquote><p>&#8220;Maneja una lista de réplicas y comprueba el ancho de banda de cada una. Entonces, escribe un archivo /etc/apt/sources.list.d/apt-spy.list en base a las respuestas obtenidas.&#8221;</p></blockquote>
<p>Descargamos e instalamos los paquetes necesarios:</p>
<pre class="brush:bash" style="padding-left: 30px;"># apt-get install apt-spy
</pre>
<h2>Uso de apt-spy</h2>
<p>Una vez instalado sin problemas pasamos a ejecutar apt-spy:</p>
<pre class="brush:bash" style="padding-left: 30px;"># apt-spy -d unstable -a Europe -t 15</pre>
<p>Explicación del comando anterior:</p>
<ul>
<li>&#8220;-d unstable&#8221;: Se selecciona la rama de Debian de nuestro sistema. Puede ser: &#8220;stable&#8221;, &#8220;testing&#8221;, &#8220;unstable&#8221; o nombres de distribución.</li>
<li>&#8220;-a Europe&#8221;: Selección de área. Puede ser: &#8220;Africa&#8221;, &#8220;Asia&#8221;, &#8220;Europe&#8221;, &#8220;North-America&#8221;, &#8220;Oceania&#8221; y &#8220;South-America&#8221;. Éste parámetro es opcional.</li>
<li>&#8220;-t 15&#8243;: Número de segundos que se testeará cada servidor.</li>
</ul>
<p>Mostrará por cada servidor testeado la siguiente información:</p>
<blockquote><p>SERVER: ftp.es.debian.org<br />
Benchmarking FTP&#8230;<br />
Downloaded 5803185 bytes in 12.50 seconds<br />
Download speed: 453.26 kB/sec</p></blockquote>
<p>Al finalizar creará el /etc/apt/sources.list.d/apt-spy.list con el servidor escogido:</p>
<blockquote><p>Writing new sources.list file: /etc/apt/sources.list.d/apt-spy.list</p></blockquote>
<p>A continuación y para finalizar sería recomendable deshacernos del antiguo sources.list</p>
<pre class="brush:bash" style="padding-left: 30px;"># mv /etc/apt/sources.list /etc/apt/sources.list_pre-apt-spy</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/el-servidor-mas-rapido-para-sources-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar Debian sin lector de CD o DVD</title>
		<link>http://blog.rodrigorega.es/instalar-debian-sin-lector-de-cd-o-dvd/</link>
		<comments>http://blog.rodrigorega.es/instalar-debian-sin-lector-de-cd-o-dvd/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 17:03:21 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[pxe]]></category>
		<category><![CDATA[tftp]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=231</guid>
		<description><![CDATA[Hace un par de días compré un pequeño PC para usar de servidor (streaming de música, ssh tunneling, sftp&#8230;). El  sistema operativo que traía instalado era Ubuntu 9.10. Además de ser una versión &#8220;ya algo vieja&#8221; venía un tanto mal instalada (sin particiones, sin swap), por lo que la mejor opción era reinstalar el sistema [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días compré un pequeño PC para usar de servidor (streaming de música, ssh tunneling, sftp&#8230;). El  sistema operativo que traía instalado era Ubuntu 9.10. Además de ser una versión &#8220;ya algo vieja&#8221; venía un tanto mal instalada (sin particiones, sin swap), por lo que la mejor opción era reinstalar el sistema operativo. Por tradición me decidí a instalar Debian. El impedimento era que esta máquina no cuenta con lector de CD/DVD y descartando la opción de instalar por USB, me quedé con la opción más cómoda: Instalar a través de red local mediante PXE.</p>
<p>Si bien a priori la configuración de un servidor DHCP y TFTP necesarios para iniciar con PXE podría parecer engorrosa, gracias a <a href="http://crysol.org/es/node/1080">éste manual</a> conseguí realizar la instalación sin topar ninguna dificultad. He añadido a mi <a href="http://wiki.rodrigorega.es">wiki</a> un resumen del proceso modificando algún detalle (ver la <a href="http://wiki.rodrigorega.es/doku.php?id=debian">página de debian</a> en el wiki).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/instalar-debian-sin-lector-de-cd-o-dvd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wiki</title>
		<link>http://blog.rodrigorega.es/wiki/</link>
		<comments>http://blog.rodrigorega.es/wiki/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 22:09:18 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=225</guid>
		<description><![CDATA[He abierto un wiki que me servirá como repositorio de &#8220;chuletas&#8221;. En principio el contenido que tiene es sobre Linux pero no descarto seguir añadiendo otros apartados, como pueden ser otros sistemas operativos, PHP, seguridad, etc. Principalmente es para mi uso personal pero lo hago público por si le pudiese resultar útil a alguien en [...]]]></description>
			<content:encoded><![CDATA[<p>He abierto un <a title="wiki" href="http://wiki.rodrigorega.es">wiki</a> que me servirá como repositorio de &#8220;chuletas&#8221;. En principio el contenido que tiene es sobre Linux pero no descarto seguir añadiendo otros apartados, como pueden ser otros sistemas operativos, PHP, seguridad, etc.</p>
<p>Principalmente es para mi uso personal pero lo hago público por si le pudiese resultar útil a alguien en algún momento.</p>
<h3 style="text-align: center;"><a title="wiki" href="http://wiki.rodrigorega.es">Wiki de Rodrigo Rega</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/wiki/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Instalar VMware Server 2.0.2 con kernel 2.6.32</title>
		<link>http://blog.rodrigorega.es/instalar-vmware-server-2-0-2-con-kernel-2-6-32/</link>
		<comments>http://blog.rodrigorega.es/instalar-vmware-server-2-0-2-con-kernel-2-6-32/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 17:54:39 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[cursores]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[mount.ntfs-3g]]></category>
		<category><![CDATA[ntfs]]></category>
		<category><![CDATA[virtualizacion]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=194</guid>
		<description><![CDATA[La instalación de VMware Server 2.0.2 en Debian SID con kernel 2.6.32 cuenta con varios impedimentos que dificultan su puesta en marcha. Tras leer diversas fuentes de información he conseguido solventar todos estos problemas. A continuación listo las dificultades con las que me topé y cómo las he solucionado: Versión de gcc no concuerda con [...]]]></description>
			<content:encoded><![CDATA[<p>La instalación de <strong>VMware Server</strong> 2.0.2 en <strong>Debian</strong> SID con <strong>kernel 2.6.32</strong> cuenta con varios impedimentos que dificultan su puesta en marcha. Tras leer diversas fuentes de información he conseguido solventar todos estos problemas. A continuación listo las dificultades con las que me topé y cómo las he solucionado:</p>
<p><span id="more-194"></span></p>
<h2>Versión de gcc no concuerda con el kernel</h2>
<p>A la hora de compilar los<strong> módulos del kernel</strong>, el instalador detecta que la versión de <strong>gcc</strong> por defecto no es la misma con la que se compiló el kernel que que se está ejecutando:</p>
<blockquote><p>Your kernel was built with &#8220;gcc&#8221; version &#8220;4.3.4&#8243;, while you are trying to use<br />
&#8220;/usr/bin/gcc&#8221; version &#8220;4.4.4&#8243;. This configuration is not recommended and<br />
VMware Server may crash if you&#8217;ll continue. Please try to use exactly same<br />
compiler as one used for building your kernel. Do you want to go with compiler<br />
&#8220;/usr/bin/gcc&#8221; version &#8220;4.4.4&#8243; anyway?</p></blockquote>
<p>Para solucionar esto, hemos de indicar que para compilar los módulos usaremos la versión 4.3 de gcc, ya que es la que más concuerda con nuestro kernel. Cancelar el instalador (ctrl+z) de VMware y en la misma terminal se introduce lo siguiente y se vuelve a iniciar el instalador:</p>
<pre style="padding-left: 30px;" class="brush:bash">export CC="/usr/bin/gcc-4.3"</pre>
<h2>Error de compilación de módulos VMware</h2>
<p>Una vez comenzada la compilación de módulos harán presencia varios <strong>errores de compilación</strong>. Para superarlos es necesario aplicar una serie de parches, éste sería el proceso:</p>
<p>- Descarga de los parches:</p>
<pre style="padding-left: 30px;" class="brush:bash">su root
mkdir /root/dev
cd /root/dev
wget http://nerdbynature.de/bits/2.6.32-22/00-vmware-2.6.32_functional.diff.txt -O vmware-2.6.32_functional.diff
wget http://nerdbynature.de/bits/2.6.32-22/02-vmnet-include.diff.txt.gz
wget http://nerdbynature.de/bits/2.6.32-22/01-vmware-2.6.32_cosmetic.diff.txt -O 01-vmware-2.6.32_cosmetic.diff
wget http://nerdbynature.de/bits/2.6.32-22/vmware-config.pl.diff.txt -O vmware-config.pl.diff
wget http://nerdbynature.de/bits/2.6.32-22/patch-vmware_2.6.3x.sh.txt -O patch-vmware_2.6.3x.sh
gunzip 02-vmnet-include.diff.txt.gz</pre>
<p>- Editar el script de parcheado: patch-vmware_2.6.3x.sh<br />
- Modificar en él la línea 53 eliminando el primer &#8220;../&#8221; de la línea, de modo que quede:</p>
<blockquote><p>$DEBUG cd ../../../bin || exit 2&#8242;</p></blockquote>
<p>- Ejecutar el script de parcheado:</p>
<pre style="padding-left: 30px;" class="brush:bash">chmod u+x patch-vmware_2.6.3x.sh
./patch-vmware_2.6.3x.sh /ruta/a/vmware-server-distrib/lib/modules/source</pre>
<h2>No funcionan las teclas de los cursores</h2>
<p>Una vez instalado todo correctamente y ya con una máquina virtual ejecutándose pude comprobar que algunas teclas <strong>no funcionaban</strong>, por ejemplo los <strong>cursores</strong>. Para arreglar esto se debe crear un archivo &#8220;<strong>config</strong>&#8221; (en caso de que existiese se debe sobreescribir) dentro del directorio $HOME/.vmware/ de cada usuario que vaya a usar <strong>VMware</strong> con el siguiente contenido:</p>
<pre style="padding-left: 30px;" class="brush:plain">xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu</pre>
<p>Por último es recomendable reiniciar VMware:</p>
<pre style="padding-left: 30px;" class="brush:bash">/etc/init.d/vmware restart</pre>
<h2>mount.ntfs-3g usa el 100% de la CPU</h2>
<p>En caso de usar para nuestras máquinas virtuales una partición ntfs como medio de almacenamiento, nos encontraremos con que el proceso mount.ntfs-3g usa el 100% de la CPU haciendo que la máquina virutal VMware funcione exageradamente lenta. Para solucionarlo se debe añadir la siguiente línea al archivo de configuración general de VMware <strong>&#8220;/etc/vmware/config&#8221;</strong>:</p>
<pre style="padding-left: 30px;" class="brush:plain">mainMem.useNamedFile = "FALSE"</pre>
<p><span style="text-decoration: underline;">Fuentes</span>:</p>
<ul>
<li>http://communities.vmware.com/message/1568283#1568283</li>
<li>http://www.question-defense.com/2010/05/02/arrow-keys-not-working-in-vmware-server-2-0-guest</li>
<li>http://vmfaq.com/entry/25/</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/instalar-vmware-server-2-0-2-con-kernel-2-6-32/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Comprimir rar multipart en Linux</title>
		<link>http://blog.rodrigorega.es/comprimir-rar-multipart-en-linux/</link>
		<comments>http://blog.rodrigorega.es/comprimir-rar-multipart-en-linux/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 19:04:45 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[comprimir]]></category>
		<category><![CDATA[multipart]]></category>
		<category><![CDATA[rar]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=187</guid>
		<description><![CDATA[Una pequeña chuleta de cómo crear un archivo comprido rar multipart en una terminal Linux: rar a -r -s -v51200 mi_nuevo_archivo_multipart.rar "directorio_que_quiero_comprimir/" Los parámetros usados para comprimr el archivo rar en varias partes en Linux son los siguientes: a: Añadir archivos (comprimir). r: Añadir directorios recursivamente. s: Archivo sólido. Copia todos los archivos a uno [...]]]></description>
			<content:encoded><![CDATA[<p>Una pequeña chuleta de cómo crear un archivo comprido <strong>rar</strong> <strong>multipart</strong> en una terminal <strong>Linux</strong>:</p>
<pre class="brush:bash" style="padding-left: 30px;">rar a -r -s -v51200 mi_nuevo_archivo_multipart.rar "directorio_que_quiero_comprimir/"</pre>
<p>Los parámetros usados para <strong>comprimr el archivo rar en varias partes en Linux</strong> son los siguientes:</p>
<blockquote><p><strong>a:</strong> Añadir archivos (comprimir).</p>
<p><strong>r:</strong> Añadir directorios recursivamente.</p>
<p><strong>s:</strong> Archivo sólido. Copia todos los archivos a uno único antes de comprimir, aumentando así el ratio de compresión.</p>
<p><strong>v:</strong> Divide el archivo comprimido resultante en partes de 50 MB cada uno (expresado en KB).</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/comprimir-rar-multipart-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Indentar XML con PHP</title>
		<link>http://blog.rodrigorega.es/indentar-xml-con-php/</link>
		<comments>http://blog.rodrigorega.es/indentar-xml-con-php/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 13:09:38 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[funcion]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[simplexml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=177</guid>
		<description><![CDATA[Trabajar con archivos XML en PHP es realmente cómodo gracias a SimpleXML. Por desgracia los archivos .xml que genera no son &#8220;human-readable&#8221;. En el caso de necesitar consultar algún dato manualmente en el archivo .xml, nos encontraremos con que no cuenta con saltos de línea y por extensión está sin indentar. Para solucionar este problema [...]]]></description>
			<content:encoded><![CDATA[<p>Trabajar con archivos <a title="xml" href="http://es.wikipedia.org/wiki/XML">XML</a> en <a title="php" href="http://es.wikipedia.org/wiki/Php">PHP</a> es realmente cómodo gracias a <a href="http://php.net/manual/en/book.simplexml.php">SimpleXML</a>. Por desgracia los archivos .xml que genera no son &#8220;human-readable&#8221;. En el caso de necesitar consultar algún dato manualmente en el archivo .xml, nos encontraremos con que no cuenta con saltos de línea y por extensión está sin <strong>indentar</strong>.</p>
<p>Para solucionar este problema he usado esta pequeña función que se encarga de <strong>formatear un archivo XML</strong>.</p>
<pre class="brush:php" style="padding-left: 30px;">function formatXml($archivoXml) {
    $doc = new DOMDocument();
    $doc-&gt;preserveWhiteSpace = false;
    $doc-&gt;formatOutput = true;
    $doc-&gt;load($archivoXml);
    $doc-&gt;save($archivoXml);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/indentar-xml-con-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Crackear captchas sencillos</title>
		<link>http://blog.rodrigorega.es/crackear-captchas-sencillos/</link>
		<comments>http://blog.rodrigorega.es/crackear-captchas-sencillos/#comments</comments>
		<pubDate>Wed, 26 May 2010 02:35:58 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad informática]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[gocr]]></category>
		<category><![CDATA[ocr]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=146</guid>
		<description><![CDATA[Los captchas ﻿(Completely Automated Public Turing test to tell Computers and Humans Apart) están ampliamente extendidos hoy en día. Cualquier aplicación web con cierto nivel de seguridad que permita entrada de datos a usuarios no autentificados debería contar con un captcha para dificultar ataques de fuerza bruta. La mayoría de los captchas suelen ser visuales, [...]]]></description>
			<content:encoded><![CDATA[<p>Los captchas ﻿(Completely Automated Public Turing test to tell Computers and Humans Apart) están ampliamente extendidos hoy en día. Cualquier aplicación web con cierto nivel de seguridad que permita entrada de datos a usuarios no autentificados debería contar con un captcha para dificultar ataques de fuerza bruta. La mayoría de los captchas suelen ser visuales, en ellos se ha de escribir en un campo de texto los caracteres mostrados en una imagen. Pero el hecho de tener un captcha en una aplicación no significa que automáticamente estemos a salvo de ataques de fuerza bruta.</p>
<p>Un captcha visual débil resulta sencillo de romper gracias a programas de reconocimiento óptico de caracteres (OCR). Un captcha visual que resulte difícil de crackear debe contar con diferentes fuentes tipográficas, tamaños, colores, caracteres distorsionados y ruido en el fondo.</p>
<div id="attachment_148" class="wp-caption aligncenter" style="width: 234px"><a href="http://blog.rodrigorega.es/wp-content/uploads/2010/05/6a0120a85dcdae970b012877702aa5970c.png"><img class="size-full wp-image-148 " title="Ejemplo de un buen captcha" src="http://blog.rodrigorega.es/wp-content/uploads/2010/05/6a0120a85dcdae970b012877702aa5970c.png" alt="Ejemplo de un buen captcha" width="224" height="57" /></a><p class="wp-caption-text">Ejemplo de un buen captcha</p></div>
<p>En esta entrada me gustaría mostrar lo sencillo que resulta el crackeo de un captcha débil. Para ello voy a exponer un caso real, omitiendo la dirección de la página web en cuestión. Se trata de una página que permite a sus usuarios hacer pública cierta información en forma de código. Este proceso se realiza anonimamente y sin ningún tipo de autentificación,  tan sólo cuenta con el siguiente captcha:</p>
<div id="attachment_151" class="wp-caption aligncenter" style="width: 292px"><a href="http://blog.rodrigorega.es/wp-content/uploads/2010/05/captchadebil1.png"><img class="size-full wp-image-151" title="captcha debil que romperemos" src="http://blog.rodrigorega.es/wp-content/uploads/2010/05/captchadebil1.png" alt="captcha debil que romperemos" width="282" height="99" /></a><p class="wp-caption-text">captcha debil que romperemos</p></div>
<p>A simple vista se aprecia que el captcha no aporta gran seguridad gracias a sus caracteres perfectamente definidos.</p>
<h2>Ejemplo práctico de crackeo de captcha débil</h2>
<p>Para crackearlo usaremos el programa <a href="http://jocr.sourceforge.net/">GOCR</a>, el cual es open souce y en Linux se puede instalar desde las fuentes habituales.</p>
<p>Este programa requiere un &#8220;entrenamiento&#8221; previo para reconocer los caracteres, por lo que será lo que hemos de hacer en primer lugar:</p>
<pre style="padding-left: 30px;" class="brush:bash">mkdir ocrdb
gocr -d 2 -p ./ocrdb/ -m 256 -m 130 captcha.png</pre>
<p>La ruta ./ocrdb/ será en dónde se guardarán los datos que genere gocr a partir de su &#8220;entrenamiento&#8221;, este directorio lo tenemos que crear manualmente. &#8216;captcha.png&#8217; es el captcha que crackearemos. Al ejecutar este comando, nos encontraremos con lo siguiente:</p>
<div id="attachment_150" class="wp-caption aligncenter" style="width: 554px"><a href="http://blog.rodrigorega.es/wp-content/uploads/2010/05/gocr-entrenamiento.png"><img class="size-full wp-image-150" title="Entrenamiento de gocr" src="http://blog.rodrigorega.es/wp-content/uploads/2010/05/gocr-entrenamiento.png" alt="Entrenamiento de gocr" width="544" height="434" /></a><p class="wp-caption-text">Entrenamiento de gocr</p></div>
<p>En esta captura vemos como gocr nos pregunta por la primera letra, en este caso una &#8220;V&#8221;. La letra por la que nos pregunte en cada momento estará pintada con corchetes &#8216;#&#8217;, las demás con &#8216;O&#8217;. Al introducir la letra &#8220;V&#8221; continuará con las siguientes letras del captcha. Este proceso lo tendremos que repetir cuantas más veces mejor, hasta que gocr sea capaz de entender el captcha sin nuestra ayuda. Por lo que tendremos que ejecutar el comando bastantes veces, para agilizar el proceso podemos usar el siguiente script:</p>
<pre style="padding-left: 30px;" class="brush:bash">#!/bin/bash
while [ 1 ]; do
        wget -O captcha.png http:/servidor-ejemplo.com/captcha_gen.php ;
        gocr -d 2 -p ./ocrdb/ -m 256 -m 130 captcha.png ;
done</pre>
<p>Cuando gocr sea capaz de descifrar la mayoría de captchas por si mismo pulsamos ctrl+c para detener el script. Lo siguiente sería poner a prueba el programa:</p>
<pre style="padding-left: 30px;" class="brush:bash">gocr -p ./ocrdb/ -m 256 -m 2 captcha.png</pre>
<p>Este sería el método general para usar gocr, pero en el ejemplo que he propuesto es poco útil. Vamos a crear un script que se encargue del crackeo del captcha y del envío de nuestros códigos a la página con wget:</p>
<pre style="padding-left: 30px;" class="brush:bash">#!/bin/bash
# este será el código que se le enviará a la web
miCodigo='XPEYWZA-002'

# urls de la página. La general y la que recibe los datos por POST
url='http:/servidor-ejemplo.com'
postUrl='http:/servidor-ejemplo.com/add-code.php'

# rutas temporales de trabajo
dirActual=`pwd`
dirTrabajo='/tmp/captcha'

# si existe el directorio temporal lo borramos
if [ -d "$dirTrabajo" ]; then
        rm -Rf $dirTrabajo
fi
mkdir $dirTrabajo
cd $dirTrabajo

# hacemos una primera petición a la web guardando cookies
wget --save-cookies $dirTrabajo/cookies.txt --keep-session-cookies \
        -r $url

# renombrarmos el captcha, realizamos el OCR y eliminamos los espacios en blanco
mv captcha.php captcha.png
captchaResuelto=`gocr -p $dirActual/ocrdb/ -m 256 -m 2 captcha.png`
captchaResuelto=${captchaResuelto/ /}
echo 'CAPTCHA RESUELTO:' $captchaResuelto

# envíamos por POST el código a añadir y el resultado del captcha,
# teniendo en cuenta las cookies y datos de sesión
wget --post-data="add=$miCodigo&amp;captcha_code=$captchaResuelto" \
                --keep-session-cookies --load-cookies $dirTrabajo/cookies.txt \
                $postUrl
cd $dirActual</pre>
<p>Este script lo guardaremos el el mismo directorio en el que tenemos &#8220;ocrdb/&#8221;. Le podríamos añadir algunas comprobaciones de respuesta de la web, algún bucle para repetir el envío, ejecutarlo cada X tiempo vía crontab, etc. Pero eso se sale de las pretensiones de esta entrada.</p>
<p><em>Nota: Las urls de los scripts están mal formadas intencionadamente (http:/) para que el resaltador de código no las incluya como enlaces.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/crackear-captchas-sencillos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waiting for Xdebug session en Eclipse</title>
		<link>http://blog.rodrigorega.es/waiting-for-xdebug-session-en-eclipse/</link>
		<comments>http://blog.rodrigorega.es/waiting-for-xdebug-session-en-eclipse/#comments</comments>
		<pubDate>Mon, 24 May 2010 01:46:12 +0000</pubDate>
		<dc:creator>Rodrigo Rega</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://blog.rodrigorega.es/?p=136</guid>
		<description><![CDATA[Tras la instalación y configuración de Xdebug  para el IDE Eclipse PDT, me encontré que a la hora de lanzar el debug de una aplicación PHP el debug no se llevaba a cabo. El proceso permanecía en el 57% con el mensaje &#8220;﻿﻿Waiting for Xdebug session&#8220;. Dicho error es producido por la configuración por defecto [...]]]></description>
			<content:encoded><![CDATA[<p>Tras la instalación y configuración de Xdebug  para el IDE Eclipse PDT, me encontré que a la hora de lanzar el debug de una aplicación PHP el debug no se llevaba a cabo. El proceso permanecía en el 57% con el mensaje &#8220;<strong>﻿﻿Waiting for Xdebug session</strong>&#8220;.</p>
<p>Dicho error es producido por la configuración por defecto de java en Debian. Al comprobar los servicios a la escucha, el puerto 9000 (eclipse) está escuchando sobre ipv6:</p>
<pre class="brush:bash" style="padding-left: 30px;">netstat -anp -t tcp | grep 9000</pre>
<div>la salida de netstat nos devuelve:</div>
<blockquote><p><code><strong>tcp6</strong> 0 0 :::<strong>9000</strong> :::*  LISTEN  4390/java</code></p></blockquote>
<p>Para solucionar dicho problema será necesario  modificar el siguiente archivo:</p>
<blockquote><p><code>/etc/sysctl.d/bindv6only.conf</code></p></blockquote>
<p>Localizar la siguiente línea:</p>
<blockquote><p>﻿net.ipv6.bindv6only = 1</p></blockquote>
<p>sustituirla por esta que sigue:</p>
<blockquote><p>net.ipv6.bindv6only = 0</p></blockquote>
<p>a continuación ejecutar:</p>
<pre class="brush:bash" style="padding-left: 30px;">sysctl -p /etc/sysctl.d/bindv6only.conf</pre>
<p>por último reiniciar Eclipse. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rodrigorega.es/waiting-for-xdebug-session-en-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

