<?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>alvarezp &#187; Linux</title>
	<atom:link href="http://blog.alvarezp.org/categorias/software-libre/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.alvarezp.org</link>
	<description>cat &#62;&#62; /dev/blog</description>
	<lastBuildDate>Thu, 02 Feb 2012 19:19:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Calibración del Touchpad en Linux y GNOME3</title>
		<link>http://blog.alvarezp.org/2012/01/25/calibracion-del-touchpad-en-linux/</link>
		<comments>http://blog.alvarezp.org/2012/01/25/calibracion-del-touchpad-en-linux/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 10:44:35 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Notas]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Queja]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1490</guid>
		<description><![CDATA[Ya comprendí a mi hermana cuando le instalé Debian. Utilizar un Touchpad en una laptop con Linux es una de las peores experiencias que he tenido con este sistema operativo.
El problema: estando escribiendo, cualquier rozón &#8212;a veces ni siquiera se necesita un rozón&#8212; provoca que el ratón se considere presionado en una ubicación diferente a [...]]]></description>
			<content:encoded><![CDATA[<p>Ya comprendí a mi hermana cuando le instalé <a href="http://es.wikipedia.org/wiki/Debian">Debian</a>. Utilizar un Touchpad en una laptop con Linux es una de las peores experiencias que he tenido con este sistema operativo.</p>
<p>El problema: estando escribiendo, cualquier rozón &mdash;a veces ni siquiera se necesita un rozón&mdash; provoca que el ratón se considere presionado en una ubicación diferente a la del cursor. Esto nos mueve súbitamente el cursor a la ubicación del puntero y quienes mecanografiamos debemos detener nuestra escritura para reubicar el cursor y continuar frustradamente (no sin antes corregir las consecuencias de lo ocurrido: salida de foco, tecleo en un lugar incorrecto, etc.).</p>
<p>Estoy usando una laptop <a href="http://www.samsung.com/us/computer/laptops/NP-R540-JA09US">Samsung NP-R540-JA09US</a>. Naturalmente, tan pronto como la recibí, le instalé Debian. A diferencia de la <a href="http://es.wikipedia.org/wiki/ThinkPad">IBM ThinkPad T42</a> la Samsung no tiene <a href="http://en.wikipedia.org/wiki/Pointing_stick">TrackPoint</a>. Mi hermana tenía instalado Debian 6.0 en una laptop HP Pavilion dv6700. Lo menciono porque, al ser diferente hardware, me resulta más fácil echarle la culpa al software. Yo estoy usando <a href="http://www.debian.org/releases/sid/index.es.html">Debian Sid</a>; no <a href="http://www.debian.org/releases/testing/">Wheezy</a>, sino Sid: dos versiones adelante de la estable. Lo que no puedo creer es que nadie más haya experimentado el mismo problema en todo este tiempo.</p>
<p>La mayoría de los linuxeros acostumbramos resolver nuestros propios problemas, así que a veces los desarrolladores no se enteran de la problemática que envuelve a los usuarios novatos y no-técnicos. <strong>Llamada de atención para los desarrolladores de GNOME.</strong></p>
<p>Al menos por default, en GNOME, las interfaces para ajustar los parámetros del Touchpad son muy pobres. El afán de hacer las interfaces amigables a veces llevan a los desarrolladores a la falacia de eliminar cosas que realmente son útiles, como los valores numéricos que resultan de un control tipo &#8220;slider&#8221; (de esos que son como para controlar el volumen, pero rectos). Esto hace que sea difícil tener valores de referencia para calibrar algo tan importante como el equivalente del ratón.</p>
<p>Por ejemplo, para la &#8220;detección de palma&#8221; tienen un slider cuyos extremos dicen algo así como &#8220;leve&#8221; y &#8220;fuerte&#8221;. Es un control que no tiene retroalimentación inmediata o visual, con valores sin sentido y sin disponer de una referencia comparativa.</p>
<p>Al usar Debian Sid, actualizar a una versión más reciente de software no es una opción, a menos que quiera arriesgar mi laptop con software experimental y con baja probabilidad de que el problema esté realmente resuelto.</p>
<p>Hecho el berrinche correspondiente, incluyo los pasos que seguí para reducir mi estrés con el uso del Touchpad.</p>
<h3>Habilitar de manera personalizada la desactivación del Touchpad mientras escribo</h3>
<p>Esta parte la hice bajo GNOME 3. Aunque GNOME Control Center trae una opción llamada &#8220;Deshabilitar el Touchpad mientras se escribe&#8221;, la realidad es que los parámetros de esta opción son extremadamente conservadores.</p>
<p>Lo que esta opción hace es cargar un programa llamado syndaemon, que monitoriza los eventos de teclado y desactiva el Touchpad mientras se detecta que el usuario está escribiendo. GNOME Control Center, en su versión 3.2.2, al menos en Debian Sid, deshabilita el Touchpad durante 2 segundos después del último teclazo, con el inconveniente de que ni siquiera permite el movimiento del puntero.</p>
<p>Para resolver esto, deshabilité dicha función, dejando que el touchpad siempre estuviera habilitado por default, pero yo cargué manualmente <code>syndaemon</code> desde un &#8220;Startup Application&#8221; (gnome-session-properties) con los siguientes parámetros:</p>
<pre class="code">syndaemon -i 0.8 -K -t -R -d</pre>
<p><strong>-i 0.8</strong>, que deshabilita el Touchpad por sólo 0.8 segundos después del último teclazo.<br />
<strong>-K</strong>, que no deshabilita el Touchpad si se usan combinaciones de teclas (como Ctrl+W). Esta opción ya la incluye GNOME.<br />
<strong>-t</strong>, que sólo deshabilita los taps y los scrolls. El puntero se sigue moviendo.<br />
<strong>-R</strong>, porque ya la incluía GNOME (usa XRecord).<br />
<strong>-d</strong>, porque ya la incluía GNOME (carga como demonio).</p>
<p>Con esto, espero menos de la mitad del tiempo para poder hacer un tap (y siempre dispongo de los botones de todos modos) y mientras puedo ir moviendo el puntero. Esto hace que el uso de la computadora sea mucho más fluido.</p>
<h3>Calibración de la detección de palma</h3>
<p>Esto lo hice a nivel X.org. A falta de parámetros reales para calibrar la palma, opté por usar el siguiente comando fuera de X11:</p>
<pre class="code">sudo evtest /dev/input/event6 | egrep 'WIDTH|PRESSURE'</pre>
<p>Esta instrucción (cambiando event6 por el valor que corresponda en tu laptop) permite ver los eventos que ocurren con el Touchpad, relevantes a la presión y el ancho del toque.</p>
<p>Después de comparar con algunos taps comunes, toques accidentales, mi palma, etc., decidí que después de una anchura de 7 y una presión de 70, se considere palma. Así, creé el archivo <code>/etc/X11/xorg.conf.d/synaptics</code> con las siguientes líneas:</p>
<pre class="code">
Section "InputClass"
	Identifier "Touchpad" #Requerido
	MatchIsTouchpad "yes" #Requerido
	Driver "synaptics" #Requerido

	Option	"PalmDetect"	"1"
	Option	"PalmMinWidth"	"5"
	Option	"PalmMinZ"	"70"
EndSection
</pre>
<p>Para ver los valores que actualmente tiene su driver de Synaptics (el Touchpad), se usa:</p>
<pre class="code">synclient</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2012/01/25/calibracion-del-touchpad-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>stail-notify.bash</title>
		<link>http://blog.alvarezp.org/2011/11/29/stail-notify-bash/</link>
		<comments>http://blog.alvarezp.org/2011/11/29/stail-notify-bash/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 04:42:28 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Net-admin]]></category>
		<category><![CDATA[Notas]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1465</guid>
		<description><![CDATA[El siguiente script hace que cada línea nueva que aparezca en un archivo remoto, salte en mi pantalla como notificación.
Con pocas modificaciones se puede hacer lo mismo para un archivo local.
Se puede colocar el comando en el arranque de sesión, pero se va a bloquear para pedir la contraseña. Se recomienda tener acceso al servidor [...]]]></description>
			<content:encoded><![CDATA[<p>El siguiente script hace que cada línea nueva que aparezca en un archivo remoto, salte en mi pantalla como notificación.</p>
<p>Con pocas modificaciones se puede hacer lo mismo para un archivo local.</p>
<p>Se puede colocar el comando en el arranque de sesión, pero se va a bloquear para pedir la contraseña. Se recomienda tener acceso al servidor remoto por medio de claves públicas para que el agente de SSH automáticamente pida la contrafrase en pantalla.</p>
<p>Puesto que tail -f nunca debería salirse, tal vez sería conveniente agregar una línea después del SSH que mande una alerta de que concluyó el tail -f o de que falló la conexión con el servidor. Tal vez se pueda hacer revisando el código de retorno, pero hay que ver qué ruido le provoca el tubo.</p>
<p>Se puede modificar para que también el icono y la severidad de la notificación sean distintas, pero en mi caso no es necesario.</p>
<p>El comando podría fallar si la cadena a mostrar contiene comillas.</p>
<pre class="code">
#!/bin/bash

# stail-notify.bash
# Escrito por Octavio Alvarez.
# Licencia: <a href="http://en.wikipedia.org/wiki/WTFPL">WTFPL</a>

[ $# -lt 3 ] &#038;&#038; {
	echo "usage: "`basename $0`" &lt;user@host> &lt;file-to-tail> &lt;alert-title>"
	exit
}

ssh $1 "tail -n 0 -f "$2 | while read M D T ELSE; do notify-send -t 5000 -i dialog-warning -u critical "$3" "$ELSE"; done
</pre>
<p>Para usarlo, lo ejecutan así:</p>
<pre class="code">stail-notify.bash alvarezp@192.168.2.100 /var/log/messages "Alerta de Syslog"</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/11/29/stail-notify-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dando la bienvenida a los usuarios de IRC con X-Chat 2.</title>
		<link>http://blog.alvarezp.org/2011/10/10/bienvenida-en-irc-con-x-chat-2/</link>
		<comments>http://blog.alvarezp.org/2011/10/10/bienvenida-en-irc-con-x-chat-2/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 01:42:37 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notas]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1451</guid>
		<description><![CDATA[Algunos usuarios, cuando entran a algún canal de charla (como el del Gultij) por IRC, saludan y preguntan si pueden ser ayudados. La gente que tiene más experiencia ya sabe lo que va a ocurrir:

USUARIO_NUEVO entra al canal de charla y, después de no percatarse de lo que dice el topic, dice «tengo una pregunta» [...]]]></description>
			<content:encoded><![CDATA[<p>Algunos usuarios, cuando entran a algún canal de charla (como el del <a href="http://gultij.org/irc">Gultij</a>) por IRC, saludan y preguntan si pueden ser ayudados. La gente que tiene más experiencia ya sabe lo que va a ocurrir:</p>
<ol>
<li>USUARIO_NUEVO entra al canal de charla y, después de <strong>no</strong> percatarse de lo que dice el <em>topic</em>, dice «tengo una pregunta» o «¿alguien me puede aydar?»</li>
<li>VOLUNTARIO_1 dice «¿cuál es tu pregunta?»</li>
<li>USUARIO_NUEVO le hace la pregunta específicamente a VOLUNTARIO_1.</li>
<li>Si VOLUNTARIO_1 no contesta en menos de 2 minutos USUARIO_NUEVO se siente ignorado y repite la pregunta. Además de que no es obligación del resto del mundo estar atento de sus reclamos, es posible que VOLUNTARIO_1 no sepa, pero sí VOLUNTARIO_2, VOLUNTARIO_3 o VOLUNTARIO_N, que no están en el canal en ese momento.</li>
<li>En ocasiones, cuando USUARIO_NUEVO no recibe respuesta, adopta una actitud donde VOLUNTARIO_1 está obligado a contestarle, como si fuera un servicio pagado de soporte.</li>
</ol>
<p>Por eso, en los canales de charla, el protocolo es simplemente entrar, hacer la pregunta y ser paciente, <strong>muy paciente</strong>.</p>
<p>Obviamente, no todos saben esto y no es su culpa. Siempre entrará gente pidiendo ayuda y, claro, hay que darles la bienvenida. Esto toma tiempo, desde 1) estar al pendiente del canal hasta 2) escribir el mensaje de guía a cada usuario para que escriba su pregunta, dando a entender que yo sólo le doy al bienvenida. Para reducir la parte 2, algunos canales tienen un bot al que se le da la instrucción de darle la bienvenida al &#8220;usuario nuevo&#8221;. Yo creo que esto sale contraproducente porque la automatización se revela al usuario.</p>
<p>Para facilitar la parte 2, he configurado en mi X-Chat 2 los siguientes comandos para que la gente reciba un mensaje de mi parte.</p>
<dl>
<dt>/adelante $nick</dt>
<dd>say %2: adelante, qué pregunta tienes? Tal vez alguien sepa.</dd>
<dt>/paciencia $nick</dt>
<dd>say %2, sugiero que esperes un rato. Si alguien te puede ayudar, puede ser que esté ocupado o haya salido un momento.</dd>
</dl>
<p>y sus equivalentes en inglés:</p>
<dl>
<dt>/goahead $nick</dt>
<dd>say %2, what question do you have? Go ahead and ask; someone around might know.</dd>
<dt>/patience $nick</dt>
<dd>say %2, I suggest you wait for a while. If someone can help you, he may be busy or out for a moment.</dd>
</dl>
<p>El de /patience es para cuando el usuario haya repetido su pregunta a escasos minutos.</p>
<p>Aún falta pulir los mensajes para que se vean más naturales pero que, a su vez, abarquen más casos.</p>
<p>De esta manera me facilito el guiar a un usuario nuevo cuyo saludo, con un poco de suerte, yo vea. Creo que sólo siendo amigables con los usuarios nuevos, es como percibirán un valor real en la famosa &#8220;comunidad&#8221;. Para aumentar la probabilidad de detectar un saludo, es posible hacer cosas como configurar el realzado de palabras como &#8220;buenas&#8221; u &#8220;hola&#8221;, pero esto es harina de otro costal (X-Chat está muy limitado en este aspecto, pero se pueden escribir plug-ins).</p>
<p>Obviamente, si alguien va a tomar esta sugerencia, ponga su propio mensaje a su propio estilo. Realmente sería feo entrar a un canal y ver que 5 usuarios diferentes me contesten exactamente con el mismo mensaje.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/10/10/bienvenida-en-irc-con-x-chat-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCharla: Podcast del Grupo de Usuarios de GNU/Linux de Tijuana</title>
		<link>http://blog.alvarezp.org/2011/09/28/opencharla-podcast-del-grupo-de-usuarios-de-gnulinux-de-tijuana/</link>
		<comments>http://blog.alvarezp.org/2011/09/28/opencharla-podcast-del-grupo-de-usuarios-de-gnulinux-de-tijuana/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 07:15:28 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Tijuana]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1421</guid>
		<description><![CDATA[OpenCharla
El Gultij tiene podcast! Después de varios meses de pláticas y pruebas, ya tenemos los primeros episodios de OpenCharla.
OpenCharla se distribuye en formato Ogg por ser un formato libre de patentes y regalías. No necesitas descargar nada para oirlo, pues en la página del podcast disponemos de un reproductor web basado en Flash para oírlo [...]]]></description>
			<content:encoded><![CDATA[<p style="font-size: 400%; font-weight: bold; text-align: center; padding: 20px; border: 3px solid black; border-radius: 5px"><a href="http://www.gultij.org/opencharla/">OpenCharla</a></p>
<p>El <a href="http://www.gultij.org/">Gultij</a> tiene <a href="http://www.gultij.org/opencharla/">podcast</a>! Después de varios meses de pláticas y pruebas, ya tenemos los primeros episodios de <a href="http://www.gultij.org/opencharla/">OpenCharla</a>.</p>
<p>OpenCharla se distribuye en formato Ogg por ser un formato libre de patentes y regalías. No necesitas descargar nada para oirlo, pues en la página del podcast disponemos de un reproductor web basado en Flash para oírlo en línea.</p>
<p>Sólo en caso de que quieras descargar el archivo será necesario que utilices un programa que lea archivos Ogg. <em>Dicen</em> que si instalas el <a href="http://xiph.org/dshow/downloads/">filtro de DirectShow para Ogg</a> lo vas a poder tocar en Windows con Media Player. En Linux seguramente ya lo soporta cualquier programa.</p>
<p>Bienvenidos los comentarios. Ah, aún no tenemos el RSS, pero pronto!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/09/28/opencharla-podcast-del-grupo-de-usuarios-de-gnulinux-de-tijuana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ciclo de conferencias CDTI, Tijuana</title>
		<link>http://blog.alvarezp.org/2011/08/11/ciclo-de-conferencias-cdti-tijuana/</link>
		<comments>http://blog.alvarezp.org/2011/08/11/ciclo-de-conferencias-cdti-tijuana/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 06:34:21 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Conferencias]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Tijuana]]></category>
		<category><![CDATA[mexico]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1413</guid>
		<description><![CDATA[CDTI: Comunidad + Desarrollo + Tecnología + Innovación

Los invito a asistir al ciclo de conferencias CDTI, en Centro de Gobierno (edificio blanco) en Tijuana, B. C. este sábado 13 de agosto de 2011.
Para saber más sobre CDTI y el evento, visiten la página del #cdti
]]></description>
			<content:encoded><![CDATA[<p>CDTI: Comunidad + Desarrollo + Tecnología + Innovación</p>
<p><img src="http://blog.alvarezp.org/wp-content/uploads/2011/08/cdti-logos.png" alt="cdti-logos" title="cdti-logos" width="810" height="218" class="aligncenter size-full wp-image-1414" style="max-width: 100%; height: auto" /></p>
<p>Los invito a asistir al ciclo de conferencias CDTI, en Centro de Gobierno (edificio blanco) en Tijuana, B. C. este sábado 13 de agosto de 2011.</p>
<p>Para saber más sobre CDTI y el evento, visiten la página del <a href="http://cdti.mx/">#cdti</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/08/11/ciclo-de-conferencias-cdti-tijuana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La falacia de que &#8220;la RAM está para ser usada&#8221;</title>
		<link>http://blog.alvarezp.org/2011/07/15/la-falacia-de-que-la-ram-esta-para-ser-usada/</link>
		<comments>http://blog.alvarezp.org/2011/07/15/la-falacia-de-que-la-ram-esta-para-ser-usada/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 08:12:55 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opera browser]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Queja]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1408</guid>
		<description><![CDATA[Parece que se ha vuelto popularizado un error de concepto en algunos foros de usuarios. Tal vez recuerdes esta frase:
La RAM está para ser usada.
Esta frase es cierta dentro de un contexto en particular. Se usa para permitir que el sistema operativo acelere disco a RAM tanto como sea posible, pues la RAM es significativamente [...]]]></description>
			<content:encoded><![CDATA[<p>Parece que se ha vuelto popularizado un error de concepto en algunos foros de usuarios. Tal vez recuerdes esta frase:</p>
<blockquote><p>La RAM está para ser usada.</p></blockquote>
<p>Esta frase es cierta <em>dentro de un contexto en particular</em>. Se usa para permitir que el sistema operativo acelere disco a RAM tanto como sea posible, pues la RAM es significativamente más rápida que los discos duros.</p>
<p>Sin embargo, dentro del contexto de una aplicación de usuario, en realidad es una falacia. Algunos usuarios (e incluso algunos desarrolladores) no saben mucho sobre el funcionamiento interno de su computadora y usan esta frase fuera de su contexto correcto. Lo peor es que algunas veces ni siquiera les importa el consumo de la RAM. No les importan los derrames de memoria o piensan que si ocurren sólo una vez, no pasa nada. O piensan que los lenguajes y plataformas con recolección de basura (garbage collectors) se encargarán mágicamente de todo. Sin darse cuenta, acaban usando la frase en cuestión como un equivalente de:</p>
<blockquote><p>La RAM está para ser <em>desperdiciada</em>.</p></blockquote>
<p>Hay algunas cuestiones que en realidad alimentan este modo de pensar, llevándolos a concluir que una aplicación realmente debería poner tanta información como sea posible en la RAM y que, tarde o temprano, el sistema operativo lo manejará eficientemente. Más aún, que no hacerlo es un sacrificio de rendimiento.</p>
<p>Consideremos lo siguiente (sobresimplificaré para efectos de facilidad de explicación, pero el modelo es bueno). Por una parte:</p>
<ul>
<li>Cuando una aplicación solicita RAM y el sistema operativo la <em>asigna</em>, esa memoria queda reservada para el uso <strong>exclusivo</strong> de la aplicación hasta que ésta la <em>libera</em>. Una aplicación no puede saber (y no debería) si otra requiere o solicita RAM.</li>
<li>Si la RAM física se llena y hay espacio de paginación (swap o paging) disponible en el sistema, el OS descargará algunas de las <em>páginas</em> menos usadas de la RAM hacia el espacio de paginación, sea una partición o un archivo. Cuando la RAM paginada se necesita nuevamente, se <em>intercambia</em> con otras páginas de RAM de las menos usadas. Ambas operaciones requieren de actividad en el disco duro. Eso es lo que hace a la paginación inherentemente lenta.</li>
<li>El sistema operativo siempre dejará libre algo (digamos, 50 MB) de RAM física sin usar para que haya disponible cuando necesite reaccionar a una emergencia de inestabilidad de sistema.</li>
</ul>
<p>Por otra parte:</p>
<ul>
<li>El sistema operativo usa memoria física para acelerar lecturas y escrituras a disco por medio de caché, de modo que cuando un sector de disco es leído múltiples veces, las subsecuentes se obtienen de la RAM, que es mucho más rápida.</li>
<li>El OS sólo acelerará lecturas/escrituras a disco hacia RAM física, pues sería inútil &#8220;acelerar&#8221; de disco a disco.</li>
<li>Cuando una aplicación solicita RAM, el OS liberará RAM usada para caché antes de asignarla al a aplicación solicitante. Esta operación no requiere actividad de disco si se están liberando lecturas aceleradas o escrituras ya fijadas; sin embargo, sí requiere de escribir en disco si necesita fijar escrituras aceleradas pendientes. Usualmente, el sistema operativo realiza esta fijación cuando la PC está en ocio, de modo que uno no lo nota y, cuando llega el momento, ya no hay escrituras pendientes por fijar.</li>
</ul>
<p>Por último:</p>
<ul>
<li>Linux reporta el &#8220;tamaño residente en RAM&#8221; para un proceso como &#8220;consumo de RAM física&#8221;. Si uno quiere medir el consumo de RAM por una aplicación, se debe hacer con la swap desactivada. Por favor indíquenme cómo Windows reporta la RAM consumida por un proceso.</li>
<li>Las escrituras a disco suelen ser más lentas que las lecturas.</li>
</ul>
<p>La realidad sobre esta falacia es &#8220;cierto, el sistema operativo se encargará de eso, pero se muere el caché de disco y se provoca la paginación, <strong>alentando todo el sistema, incluyendo la propia aplicación</strong>&#8220;. Entonces: sí, el sistema se encarga, pero en realidad está recuperándose del error del programador a costa de una degradación global e innecesaria de sistema y la potencial inestabilida que conlleva.</p>
<p>Analicemos dos escenarios tomados de mi propia experiencia. Repito: estoy sobresimplificando. Úsese esto como modelo.</p>
<h3>Caso 1: Un navegador acelera la red a disco en lugar de a RAM</h3>
<p>Tienes un sistema con 2 GB of RAM, de los cuales tienes 1 GB <em>libres</em> (como en &#8220;tal vez usados por el caché de disco pero ciertamente disponible para las aplicaciones&#8221;). Tú ejecutas un navegador que acelera los recursos de red a disco porque es más rápido que el Internet (pues es más rápido que el Internet) y usa unos 300 MB of RAM.</p>
<p>1000 &#8211; 300 &#8211; 50 = 650</p>
<p>Acabas con unos 650 MB of RAM para aceleración de disco por memoria caché y 50 MB de RAM física real.</p>
<p>Cuando un navegador necesita un recurso de red, intenta cargarlo de disco (pues lo está acelerando). Sin embargo, el disco queda acelerado en la RAM por el sistema operativo y las lecturas subsecuentes se realizan en RAM. La penalidad en rendimiento apenas se nota.</p>
<p>Si el navegador quiere acelerar una página visitada por primera vez, la guardará ne disco. El SO acelerará la lectura a RAM y la pospondrá hasta que el sistema esté ne ocio (cuando estás leyendo el contenido del sitio). La penalidad en rendimiento apenas se nota.</p>
<p>Cuando cualquier otro proceso lee de disco, la probabilidad de pegarle al caché es alta porque hay 650 MB de RAM disponibles par esto. Incluso si se le falla al caché, lo que se lee de disco se acelera en RAM para los accesos subsecuentes. reading.</p>
<p>Entonces, ejecutas una máquina virtual que requiere de 450 MB de RAM. Ocurre lo siguiente:</p>
<ul>
<li>El sistema operativo libera 450 MB de caché de disco. Parte de este requiere de escrituras, parte no. Esta operación es sólo tan lenta como la cantidad de escrituras requeridas para fijar las escrituras aceleradas, así que no es <em>tan</em> lento. Además, el usuario en cierto modo lo espera porque le pidió a la PC cargar la VM.</li>
<li>No hay paginación. No es necesario.</li>
<li>Finalmente se asignan los 450 MB a la VM.</li>
<li>La VM escribe a ese espacio físico de RAM asignado.</li>
</ul>
<p>Aún quedan 200 MB disponibles para caché de disco, que el SO procurará usar eficientemente.</p>
<p>Ahora, el navegador quiere cargar algo de su &#8220;cache de disco&#8221;. Hay una probabilidad, claro que mayor que 0, de pegarle al caché y que el SO sirva el dato directamente desde la RAM. Supongamos que no, que fue leída desde disco. El navegador aún está acelerando la navegación pues el disco local es más rápido que el Internet. Más aún, el SO acelerará este objeto en la RAM para sus accesos subsecuentes.</p>
<p>Claro: la VM continúa corriendo desde la RAM sin necesitar de ningún tipo de paginación (o hiperpaginación). El sistema responde perfectamente. El usuario sabe (o debería saber) que si quiere liberar memoria, debe cerrar la VM o el navegador.</p>
<h3>Caso 2: Un navegador usa más RAM que la que requiere, para su aceleración</h3>
<p>Tienes un sistema con 2 GB of RAM, de los cuales tienes 1 GB <em>libres</em> (como en &#8220;tal vez usados por el caché de disco pero ciertamente disponible para las aplicaciones&#8221;). Tú ejecutas un navegador que acelera los recursos de red a disco porque es más rápido que el Internet (pues es más rápido que el Internet) y usa unos 300 MB of RAM.</p>
<p>1000 &#8211; 600 &#8211; 50 = 350</p>
<p>Acabas con unos 350 MB of RAM para aceleración de disco y 50 MB de RAM física real.</p>
<p>Cuando el navegador necesita un recurso de red, trata de cargarlo desde su asignación de RAM, así que es muy rápido (aún así, tiene que leerlo primero de disco si no estaba previamente disponible en RAM).</p>
<p>Cuando cualquier otra aplicación lee de disco hay una baja probabilidad de pegarle al caché. En cualquier caso, la probabilidad general de que otra aplicación le pegue al caché es más baja, pues la memoria está exclusivamente asingada para el navegador. Esto incrementa significativamente la probabilidad de acceder a disco, lo que puede llevar a una alentar todo el sistema.</p>
<p>Minimizar el navegador <em>no</em> libera memoria para otras aplicaciones. la memoria aún está asignada para su uso exclusivo para éste.</p>
<p>Entonces, ejecutas una máquina virtual que requiere de 450 MB de RAM. Ocurre lo siguiente:</p>
<ul>
<li>El sistema operativo libera 350 MB de caché de disco. Parte de este requiere de escrituras, parte no. Esta operación es sólo tan lenta como la cantidad de escrituras requeridas para fijar las escrituras aceleradas, así que no es <em>tan</em> lento.</li>
<li>Determina los 100 MB menos usados de RAM y las mueve al espacio de paginación. Esta operación es lenta pues implica varias escrituras inevitables a disco.</li>
<li>Finalmente se asignan los 450 MB a la VM</li>
<li>La VM escribe a ese espacio físico de RAM asignado.</li>
</ul>
<p>El sistema ya no tiene caché de disco. Cuando otra aplicación necesita leer de disco, no le pegarán al inexistente caché y el SO tendrá que acceder físicamente al disco para servir esta petición. Esto es lento. Lo peor es que el acceso a disco no será acelerado para sus subsecuentes lecturas.</p>
<p>Ahora, el navegador quiere cargar algo desde su propia &#8220;caché de memoria&#8221; (que, por cierto, tal vez está paginada a disco). Puede pasar una de dos:</p>
<p>Si el recurso a extraer del caché de RAM de la aplicación está paginado en disco, el SO necesitará leerlo de vuelta. Puesto que los datos leídos ahora serán memoria &#8220;más reciente usada&#8221;, el SO podría intercambiarlos de disco contra algo de la RAM de la VM o de otra aplicación menos usada. Esta operación es lenta pues implica varias escrituras inevitables a disco. O:</p>
<p>Si el recurso aún está en la propia &#8220;caché de memoria&#8221; de la aplicación, será extraída como de rayo de la RAM. Sin embargo, la VM aún necesita su propia RAM para continuar al igual que las demás aplicaciones. Esto fuerza al sistema operativo a usar paginación nuevamente. Además, no hay RAM disponible para caché de disco y otras solicitudes de disco estarán continuamente siendo servidas desde disco sin la posibilidad de acelerar las subsecuentes hacia RAM. Esto genera una actividad constante a disco, alentando todo el sistema <strong>incluyendo al navegador</strong>. El &#8220;caché de memoria&#8221; de la aplicación no sirvió para nada.</p>
<p>Claro que la máquina virtual continúa corriendo y su RAM se necesita constantemente, así que la escritura a disco por paginación se vuelve una constante. El sistema operativo se alenta por lo que se llama <em>hiperpaginación</em>. En casos extremos, el sistema deja de responder, impidiendo al usuario de siquiera cerrar una de las dos aplicaciones para recuperarlo.</p>
<h3>Conclusiones</h3>
<p>Sí, la RAM está ahí para ser usada cuando se necesita, no para desperdiciarse. La RAM es un recurso limitado. Hay maneras de usar la RAM eficientemente. Por ejemplo, cargar los índices de un buzón de correo en RAM (sin cargar el contenido completo del buzón) puede, si se hace correctamente, acelerar significativamente la búsqueda de mensajes.</p>
<p>Sin embargo, acelerar disco a RAM puede que no sea una buena idea. La aceleración ya se hace por el SO, así que sólo se desperdicia una función eficiente del sistema operativo. A veces puede ser una buena idea, pero lo más probable, especialmente en aplicaciones de escritorio, es que no.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/07/15/la-falacia-de-que-la-ram-esta-para-ser-usada/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The &#8220;RAM is there to be used&#8221; fallacy</title>
		<link>http://blog.alvarezp.org/2011/07/14/the-ram-is-there-to-be-used-fallacy/</link>
		<comments>http://blog.alvarezp.org/2011/07/14/the-ram-is-there-to-be-used-fallacy/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 02:09:32 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opera browser]]></category>
		<category><![CDATA[Queja]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1403</guid>
		<description><![CDATA[There seems to be a common misconception around some user forums. Maybe you recall this phrase:
RAM is there to be used.
This phrase is true within a particular context. It is used to let the operating system cache as much disk as possible into RAM, as RAM is significantly faster than hard disks.
However, within the context [...]]]></description>
			<content:encoded><![CDATA[<p>There seems to be a common misconception around some user forums. Maybe you recall this phrase:</p>
<blockquote><p>RAM is there to be used.</p></blockquote>
<p>This phrase is true <em>within a particular context</em>. It is used to let the operating system cache as much disk as possible into RAM, as RAM is significantly faster than hard disks.</p>
<p>However, within the context of a user-space application it is actually a fallacy. Some users (and even some developers) don&#8217;t know much about the inner workings of their computers, and use this phrase outside of its proper context. What is worse, sometimes they don&#8217;t even care much about RAM consumption. They don&#8217;t care about memory leaks, or think that if memory leaking occurs only once, it&#8217;s fine. Or they think garbage-collected frameworks or languages will take care of everything by magic. Without knowing, they end up using the aforementioned phrase as the equivalent of:</p>
<blockquote><p>RAM is there to be <em>wasted</em>.</p></blockquote>
<p><span id="more-1403"></span><br />
There are some issues that may lead to actually feed this thought, leading them to think that an application actually should put as much information as needed in RAM, and that, sooner or later, &#8220;the OS will handle it efficiently&#8221;. Furthermore, that not doing this is just a performance sacrifice.</p>
<p>Consider the following (I&#8217;ll oversimplifying for the sake of easy explanation, but the model is true). On one hand:</p>
<ul>
<li>When an application requests for RAM and the OS <em>allocates</em> it, the memory is being reserved for its <strong>exclusive</strong> use until the application <em>frees</em> it. An application can not know (and should not know) if another application requires or requests RAM.</li>
<li>If physical RAM gets topped and there is swap space available in the system, the OS will move out some of the least used RAM <em>pages</em> out to swap space, be it a partition or a file. When the paged-out RAM in swap space is needed, it gets <em>swapped</em> with other least-used physical RAM pages. Both operations require hard disk activity. That&#8217;s what makes swapping inherently slow.</li>
<li>The operating system will always leave some (say, 50 MB) physical RAM unused, so it has RAM available to react to a system instability emergency.</li>
</ul>
<p>On the other hand:</p>
<ul>
<li>Operating systems use free physical memory to cache disk reads and writes, so when a disk sector is read multiple times, subsequent reads are read from RAM, which is much faster.</li>
<li>The OS will only cache disk reads/writes to free physical RAM, as it would be useless to &#8220;cache&#8221; disk to disk.</li>
<li>When an application requests for RAM, the OS will free RAM used by disk cache before allocating it to the requesting application. This operation doesn&#8217;t require disk activity if freeing up RAM-cached reads or flushed disk writes; however, it does require disk writes if freeing up unflushed RAM-buffered disk writes. Usually, the OS flushes cached disk writes when system is idle, so you don&#8217;t really notice it, and when the time comes, everything is already flushed.</li>
</ul>
<p>And last:</p>
<ul>
<li>Linux, report &#8220;resident RAM size&#8221; for a process as &#8220;physical RAM usage&#8221;. So if you measure your application RAM requirements, you should do it with your swap partitions disabled. Please enlighten me about how Windows reports RAM for a process.</li>
<li>Disk writes are usually slower than disk reads.</li>
</ul>
<p>The actual truth around this fallacy is &#8220;sure, the OS handles it, but you kill the disk cache and encourage memory swapping, <strong>slowing the whole system down, including your own application</strong>&#8220;. So yes, the system &#8220;takes care&#8221; of it, but it is actually recovering from the programmer&#8217;s mistake at the cost of overall, unnecessary, system slow down and potential instability.</p>
<p>So let&#8217;s analyze two scenarios taken out of my own experience. I repeat: I am oversimplifying. Use this as a model.</p>
<h3>Case 1: A browser caches on disk instead of RAM.</h3>
<p>You have a system with 2 GB of RAM, out of which you have 1 GB <em>free</em> (as in &#8220;maybe used by disk cache but surely available for applications&#8221;). You fire up a web browser that caches resources on disk (because it is faster than the Internet) and needs about 300 MB of RAM.</p>
<p>1000 &#8211; 300 &#8211; 50 = 650</p>
<p>You end up with about 650 MB of RAM for disk cache optimization and 50 MB of actual free physical RAM.</p>
<p>Whenever the browser needs a network resource it tries to load it up from disk. However, disk gets cached on RAM by the OS, so subsequent reads will be read out from RAM. Performance penalty it is barely noticeable.</p>
<p>If the browser wants to cache a newly-visited website, it will save it to disk. The OS will buffer the write to RAM so it will postpone it until the system is idle (when you are reading the website). Performance penalty it is barely noticeable.</p>
<p>Whenever another application reads from disk there is a high probability of hitting the cache because there is 650 MB of RAM available for this purpose. Even if missing the cache, whatever was read from disk will be cached in RAM for subsequent reading.</p>
<p>You, then, fire up a VM that requests 450 MB of RAM. The following occurs:</p>
<ul>
<li>The operating system frees up 450 MB of disk cache. Some of it requires writing, some not. This operation is only as slow as the disk-writes required for unflushed writes, so it&#8217;s not really <em>that</em> slow. Besides, the user somewhat expects it because he just commanded the PC to load up a VM.</li>
<li>There is no swapping at all. There is no need.</li>
<li>It finally allocates 450 MB to the VM.</li>
<li>The VM writes to that physical RAM allocated for it.</li>
</ul>
<p>There is still 200 MB available for disk caching, which the OS will try to efficiently use.</p>
<p>Now, the browser wants to load something from &#8220;disk cache&#8221;. There is some probability, higher than 0 of course, of hitting the cache and the OS serving the data directly from RAM. Let&#8217;s assume not: it was read from disk. The browser is still accelerating web surfing, as the local disk is still faster than the Internet. Furthermore, the OS will cache the object on RAM for subsequent access.</p>
<p>Of course, the VM continues running from RAM without ever needing of any kind of swapping or disk trashing. The system is fully responsive. The user knows (or should know) that if it wants to free up RAM it will close the VM or the browser.</p>
<h3>Case 2: A browser uses more RAM than it should, for caching.</h3>
<p>You have a system with 2 GB of RAM, out of which you have 1 GB <em>free</em> (as in &#8220;maybe used by disk cache but surely available for applications&#8221;). You fire up a web browser that could work really nice with 300 MB of RAM but instead caches everything up for the sake of speed and ends up using 600 MB of RAM.</p>
<p>1000 &#8211; 600 &#8211; 50 = 350</p>
<p>You end up with about 350 MB of RAM for disk cache optimization and 50 MB of actual free physical RAM.</p>
<p>Whenever the browser needs a network resource it loads it up from its own RAM allocation, so it is really fast. (It still has to load it first from disk if not previously available on RAM).</p>
<p>Whenever any other application reads from disk there is a lower probability of hitting the cache. In any case, the overall probability of the other applications of hitting the cache is lower, as memory is exclusively allocated for the web browser. This significantly increases the probability of accessing disk, which may lead to slow the whole system down.</p>
<p>Minimizing the browser <em>does not</em> free memory for other applications. Memory is still being allocated for exclusive use by it.</p>
<p>You, then, fire up a VM that requests for 450 MB of RAM. The following occurs:</p>
<ul>
<li>The operating system frees up 350 MB of disk cache. Some of it requires writing, some not. This operation is only as slow as the disk-writes required, so it&#8217;s not really that slow.</li>
<li>It determines the least used 100 MB of physical RAM and moves it out to swap space. This operation is slow, as it involves a lot of unavoidable on-the-fly disk writes.</li>
<li>It finally allocates 450 MB to the VM application.</li>
<li>The VM writes to that physical RAM allocated for it.</li>
</ul>
<p>The system has no memory for disk cache anymore. Whenever other applications need to read from disk, they will miss the cache and the OS will have to physically access the disk to serve the request. This is slow. What is worse, the disk access will not be cached for subsequent reading.</p>
<p>Now, the browser wants to load something from its own &#8220;RAM cache&#8221; (which, by the way, may probably be out in swap space, now). It may happen one of two things:</p>
<p>If the RAM cache resource is on swap space, the OS will need to read it back. Since that data will be now a &#8220;more recently used&#8221; memory page, the OS might swap RAM and disk with some contents of the VM or another least-used application. This operation is slow because it requires another lot of unavoidable on-the-fly disk writes. Or:</p>
<p>If the resource is still in the application own &#8220;RAM cache&#8221;, it will be retrieved flash-fast from RAM. However, the VM still needs its own RAM to continue, and so do all other applications. This forces the operating system to swap memory again. Also, there is no RAM available for disk cache, and other applications disk requests will still served continuously from disk without the possibility of RAM caching for subsequent access. This generates constant disk activity, slowing all the system, <strong>including the browser</strong>. The browser &#8220;extra RAM cache&#8221; did no good at all.</p>
<p>Of course, the VM continues running and its RAM will continuously be needed back, so disk writing becomes a constant. The whole system slows down by what is called <em>disk trashing</em>. In really bad cases, the system may become unresponsive, restricting the user from even being able to close one of the two applications to recover the system back.</p>
<h3>Conclusions</h3>
<p>Yes, RAM is there to be used when it is needed, not wasted. RAM is a limited resource. There are ways to use RAM efficiently. For instance, loading the indexes of a mailbox in RAM (but not the whole mailbox content), if done correctly, may significantly speed up mail searching.</p>
<p>However, caching disk to RAM might not be a good idea. The caching is already done by the OS, so it is just discarding an efficient OS function by an application. Sometimes it may be a good idea but most probably, particularly in desktop applications, it is not.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/07/14/the-ram-is-there-to-be-used-fallacy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gratis vs. libre: La compra de Skype por Microsoft</title>
		<link>http://blog.alvarezp.org/2011/05/13/gratis-vs-libre-la-compra-de-skype-por-microsoft/</link>
		<comments>http://blog.alvarezp.org/2011/05/13/gratis-vs-libre-la-compra-de-skype-por-microsoft/#comments</comments>
		<pubDate>Fri, 13 May 2011 07:24:39 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Ensayos]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1388</guid>
		<description><![CDATA[Cuando no se requiere de pago alguno para usar plenamente un programa se dice que es &#8220;gratuito&#8221;. Dos ejemplos son Skype y OpenOffice.org. Sin embargo, existe una diferencia radical entre ambos: las libertades legales que la licencia de OpenOffice.org garantiza. Por eso se le llama software &#8220;libre&#8221;.
OpenOffice.org es más que simplemente gratuito y más &#8212;incluso&#8212; [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1390" class="wp-caption alignleft" style="width: 310px"><a href="http://blog.alvarezp.org/wp-content/uploads/2011/05/skype-libreoffice.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2011/05/skype-libreoffice-300x271.png" alt="Gratis vs. Libre" title="Gratis vs. Libre" width="300" height="271" class="size-medium wp-image-1390" /></a><p class="wp-caption-text">Gratis vs. Libre</p></div>
<p>Cuando no se requiere de pago alguno para usar plenamente un programa se dice que es &#8220;gratuito&#8221;. Dos ejemplos son <a href="http://www.skype.com/">Skype</a> y <a href="http://www.openoffice.org/">OpenOffice.org</a>. Sin embargo, existe una diferencia radical entre ambos: las libertades legales que la <a href="http://www.openoffice.org/license.html">licencia de OpenOffice.org</a> garantiza. Por eso se le llama <a href="http://es.wikipedia.org/wiki/Software_libre">software &#8220;libre&#8221;</a>.</p>
<p>OpenOffice.org es más que simplemente gratuito y más &#8212;incluso&#8212; que simplemente &#8220;de código abierto&#8221;. Disponer del código fuente de un programa no implica la libertad legal de hacer públicas las mejoras.<br />
 <span id="more-1388"></span><br />
La diferencia entre ambos programas ha quedado de manifiesto comparando la <a href="http://www.informador.com.mx/tecnologia/2009/96803/6/oracle-pacta-la-compra-de-sun-microsystems.htm">adquisición de Sun Microsystems por Oracle</a> frente a la de <a href="http://www.informador.com.mx/economia/2011/291746/6/microsoft-compra-skype-quiere-competir-con-google.htm">Skype por Microsoft</a>.</p>
<p>Antes de ser adquirido, Skype proveía su producto en tres plataformas: Windows, Mac y Linux. El programa era <a href="http://es.wikipedia.org/wiki/Software_propietario">privativo</a> y el protocolo cerrado. Al Microsoft adquirir a Skype, el producto y el modelo de negocios de Microsoft habrán de ajustarse uno al otro. Aunque Microsoft expresó su intención de continuar el soporte para todas las plataformas, es obvio que esto puede cambiar si no le resulta conveniente. Además, como ha ocurrido en otros casos, la disponibilidad del programa para otras plataformas no implica la sincronía con las liberaciones para Windows. Lo cierto es que lo más barato para Microsoft es eliminar el soporte para las plataformas ajenas y mantenerlo sólo para la plataforma que mejor conoce. Lo puede hacer, pues con la compra de Skype se ha adueñado de sus derechos de autor.</p>
<p>Analicemos el escenario en que Microsoft decida terminar con el soporte para Mac y Linux de Skype. Cualquier alternativa sería subóptima en comparación con una implementación nativa:</p>
<ul>
<li><strong>Implementación un cliente alterno por terceros</strong>: Requiere de <a href="http://es.wikipedia.org/wiki/Ingeniería_inversa">ingeniería inversa</a> del protocolo, lo cual puede estar en contra del <a href="http://es.wikipedia.org/wiki/Licencia_de_software">EULA</a>. Además, los cambios en el protocolo podrían ser unilaterales, arbitrarios e incompatibles, lo que se convertiría en desconexiones para los usuarios del cliente alterno hasta la siguiente actualización del programa.</li>
<li><strong>Usar el cliente en un ambiente virtualizado</strong>: Requiere de un consumo extra y significativo de memoria. Además, requeriría de una licencia válida de Windows e implica el mantenimiento de actualizaciones, antivirus, etc.</li>
<li><strong>Usar el cliente sobre una capa de abstracción de Windows (<a href="http://www.winehq.org/">Wine</a>)</strong>: Sólo si Wine fuera perfecto sería viable el uso masivo del cliente nativo de Skype. Sin embargo, el efecto &#8220;burro con zanahoria&#8221; descrito en el primer punto se traslada al sistema operativo. Microsoft puede mejorar Windows realizando cambios unilaterales, arbitrarios y potencialmente incompatibles, lo que perjudicaría y comprometería el funcionamiento de Wine. La realidad es que Wine dista mucho de proveer la plena compatibilidad con Windows y, debido a la alta velocidad con la que cambian y surgen nuevos API, es un trabajo más arduo que alcanzable.</li>
</ul>
<p>En contraposición con lo anterior, antes de la adquisición de Sun Microsystems, OpenOffice.org era software libre bajo la <a href="http://www.viti.es/gnu/licenses/gpl.html">licencia GPLv3</a>. Cuando Oracle apagó el proyecto openSolaris, la comunidad de desarrollo de OpenOffice.org decidió reaccionar ante un posible cierre de OpenOffice.org: crearon <a href="http://www.documentfoundation.org/">The Document Foundation</a>. Con las garantías ofrecidas por la licencia libre de OpenOffice.org se <a href="http://es.wikipedia.org/wiki/Bifurcación_(desarrollo_de_software)">bifurcó</a> el código para formar <a href="http://www.libreoffice.org/">LibreOffice</a>. De esta forma, independientemente del proceder de Oracle con respecto a OpenOffice.org, sea que apagara el proyecto o lo comercializara como producto, la opción nativa sigue existiendo.</p>
<p>Por último, considerando que Skype es un cliente de red y dada su popularidad, bastaría con que Microsoft abriera y mantuviera libre el protocolo actualizado para que la comunidad hiciera un cliente compatible con la plataforma de su preferencia e, incluso, <a href="http://es.wikipedia.org/wiki/Multiplataforma">multiplataforma</a>. Al final, es más importante la especificación abierta y libre del protocolo que la del cliente.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/05/13/gratis-vs-libre-la-compra-de-skype-por-microsoft/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Superkb: entonces y ahora</title>
		<link>http://blog.alvarezp.org/2011/03/28/superkb-entonces-y-ahora/</link>
		<comments>http://blog.alvarezp.org/2011/03/28/superkb-entonces-y-ahora/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 01:34:57 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1381</guid>
		<description><![CDATA[Así es como superkb se veía en ese entonces, en la versión 0.10. Usaba directamente la librería Xlib que no tiene soporte para antialiasing. Entonces, el texto también lo pintaba con Xlib. Los íconos eran cargados y pintados con Imlib2. La versión 0.10 fue liberada en septiembre de 2006. No incluyo pantallazos más viejos pues [...]]]></description>
			<content:encoded><![CDATA[<p>Así es como superkb se veía en ese entonces, en la versión 0.10. Usaba directamente la librería Xlib que no tiene soporte para antialiasing. Entonces, el texto también lo pintaba con Xlib. Los íconos eran cargados y pintados con Imlib2. La versión 0.10 fue liberada en septiembre de 2006. No incluyo pantallazos más viejos pues los considero &#8220;demasiado experimentales&#8221;.<br />
<div id="attachment_1376" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-then.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-then-300x133.png" alt="Pantallazo de Superkb v0.10." title="Superkb, entonces!" width="300" height="133" class="size-medium wp-image-1376" /></a><p class="wp-caption-text">Pantallazo de Superkb v0.10.</p></div></p>
<p>Bueno, Superkb 0.22 fue liberado hace un par de semanas. Las teclas se pintan ahora usando gradientes. Esto, además de los múltiples modos de rendereo de las teclas que se introdujo en la 0.15 (Feb 2008) y el uso de la biblioteca Cairo en 0.20 (Nov 2009), han cambiado drásticamente la apariencia en general. Ayer corregí la presentación de caracteres UTF-8, que ahora me permiten usar flechas para las teclas de cursor y otras más. Este es el resultado:<br />
<div id="attachment_1377" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-now.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-now-300x114.png" alt="Superkb con el cambio más reciente para la versión 0.23." title="Superkb, now." width="300" height="114" class="size-medium wp-image-1377" /></a><p class="wp-caption-text">Superkb con el cambio más reciente para la versión 0.23.</p></div></p>
<p>También es una nota de agradecimiento a los usuarios que me han proveído con su retroalimentación tan útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/03/28/superkb-entonces-y-ahora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb: then and now</title>
		<link>http://blog.alvarezp.org/2011/03/28/superkb-then-and-now/</link>
		<comments>http://blog.alvarezp.org/2011/03/28/superkb-then-and-now/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 01:30:11 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1375</guid>
		<description><![CDATA[This is how Superkb used to look back then in the 0.10 version. It used direct calls to the Xlib library which doesn&#8217;t support antialiasing. Back then, text was also rendered using Xlib. The icons were loaded and painted using Imlib2. Version 0.10 was released on September, 2006. I didn&#8217;t include an even older screenshot [...]]]></description>
			<content:encoded><![CDATA[<p>This is how Superkb used to look back then in the 0.10 version. It used direct calls to the Xlib library which doesn&#8217;t support antialiasing. Back then, text was also rendered using Xlib. The icons were loaded and painted using Imlib2. Version 0.10 was released on September, 2006. I didn&#8217;t include an even older screenshot because I considered it to be &#8220;still too experimental&#8221;.<br />
<span id="more-1375"></span><br />
<div id="attachment_1376" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-then.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-then-300x133.png" alt="Superkb v0.10 screenshot." title="Superkb, back then!" width="300" height="133" class="size-medium wp-image-1376" /></a><p class="wp-caption-text">Superkb v0.10 screenshot.</p></div></p>
<p>So, Superkb 0.22 was released a couple of weeks ago. It featured a gradient-based rendering of the keys. This, in addition to the multiple key-rendering modes introduced in 0.15 (Feb 2008) and the use of the Cairo library in 0.20 (Nov 2009), have drastically changed the overall appearance. Yesterday I fixed the display of UTF-8 characters, which have allowed me to use arrows for the cursor keys and others. This is the result:<br />
<div id="attachment_1377" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-now.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2011/03/superkb-now-300x114.png" alt="Superkb with the most recent change for version 0.23." title="Superkb, now." width="300" height="114" class="size-medium wp-image-1377" /></a><p class="wp-caption-text">Superkb with the most recent change for version 0.23.</p></div></p>
<p>This is also a thank you note to the users that have provided me with their useful feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/03/28/superkb-then-and-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teclado Logitech K200, su falta de Super_R y Superkb</title>
		<link>http://blog.alvarezp.org/2011/03/26/teclado-logitech-k200-su-falta-de-super_r-y-superkb/</link>
		<comments>http://blog.alvarezp.org/2011/03/26/teclado-logitech-k200-su-falta-de-super_r-y-superkb/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 08:22:26 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1368</guid>
		<description><![CDATA[Pues como dice el título, recién me compré un teclado Logitech K200 porque el anterior ya estaba demasiado gastado.
En la fotografía se alcanza a distinguir a la derecha de la barra espaciadora que sólo hay tres teclas. Se trata de Alt, Menu y Ctrl. 
¿Y la tecla Super_R apá? Me di cuenta ya cuando tenía [...]]]></description>
			<content:encoded><![CDATA[<p>Pues como dice el título, recién me compré un teclado <a href="http://www.logitech.com/en-gb/for-business/products/keyboards/devices/7242">Logitech K200</a> porque el anterior ya estaba demasiado gastado.</p>
<div class="wp-caption aligncenter" style="width: 439px"><a href="http://www.logitech.com/en-gb/for-business/products/keyboards/devices/7242"><img alt="Teclado Logitech K200" src="http://blog.alvarezp.org/imagenes/k200/df.png" title="Teclado Logitech K200" width="429" height="257" /></a><p class="wp-caption-text">Teclado Logitech K200</p></div>
<p>En la fotografía se alcanza a distinguir a la derecha de la barra espaciadora que sólo hay tres teclas. Se trata de Alt, Menu y Ctrl. </p>
<p>¿Y la tecla Super_R apá? Me di cuenta ya cuando tenía el teclado instalado y funcionando.</p>
<p>Yo uso <a href="http://superkb.sourceforge.net/index.shtml.es">Superkb</a> para lanzar aplicaciones. Para mí, lanzar aplicaciones es una de las cosas que podrían hacerse con shortcuts y por eso reservo la tecla de Super para esto. La tecla Super_R es importante porque no puedo presionar la Super izquierda simultáneamente con F12 usando una sola mano. Esto se necesita cuando tienes una hamburguesa en la otra mano, jaja!</p>
<p>Pues bien, Superkb admite en <a href="http://superkb.org/wiki/index.php?title=Configuration_files">$HOME/.superkbrc</a> tiene dos líneas de configuración: <a href="http://superkb.org/wiki/index.php?title=SUPERKEY2_STRING">SUPERKEY2_STRING</a> y <a href="http://superkb.org/wiki/index.php?title=SUPERKEY_REPLAY">SUPERKEY_REPLAY</a>, con lo que quedará resuelto este pequeño problema.</p>
<p>&#8220;SUPERKEY2_STRING Menu&#8221; me permite indicar que la segunda tecla mágica a usar será Menu, y no Super_R.</p>
<p>&#8220;SUPERKEY_REPLAY 1&#8243; me permite indicar a Superkb que si la tecla se presiona antes de mostrar el teclado en pantalla y no se usó para lanzar nada, que le envíe el tecladazo a la aplicación que actualmente tiene el foco. De esta manera, puedo seguir contando con la tecla Menu para mostrar los menús contextuales en cualquiera que sea la aplicación en la que esté trabajando.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/03/26/teclado-logitech-k200-su-falta-de-super_r-y-superkb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Superkb 0.22 liberado!</title>
		<link>http://blog.alvarezp.org/2011/03/18/superkb-0-22-liberado/</link>
		<comments>http://blog.alvarezp.org/2011/03/18/superkb-0-22-liberado/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 23:58:41 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Superkb]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1358</guid>
		<description><![CDATA[¡Superkb 0.22 ha sido liberado! Esta es una liberación menor. ¿Quieres saber qué hay de nuevo? Échale un vistazo a la página de la versión 0.22 en el Wiki de Superkb.
Superkb es un lanzador de aplicaciones basado en atajos de teclado con pistas gráficas en pantalla. Está escrito en C usando Xlib con la ayuda [...]]]></description>
			<content:encoded><![CDATA[<p>¡Superkb 0.22 ha sido liberado! Esta es una liberación menor. ¿Quieres saber qué hay de nuevo? Échale un vistazo a la <a href="http://superkb.org/wiki/index.php?title=Superkb_0.22">página de la versión 0.22 en el Wiki de Superkb</a>.</p>
<p><a href="http://superkb.sourceforge.net/">Superkb</a> es un lanzador de aplicaciones basado en atajos de teclado con pistas gráficas en pantalla. Está escrito en C usando Xlib con la ayuda de Cairo graphics, Pango, Imlib2, Xinerama, etc. y con su código fuente manejado con Git.</p>
<div class="wp-caption aligncenter" style="width: 650px"><a href="http://blog.alvarezp.org/imagenes/superkb/shots/0.22/0.22-flatkey.png"><img title="Tus atajos de teclado pintados por Superkb 0.22" src="http://blog.alvarezp.org/imagenes/superkb/shots/0.22/0.22-flatkey-640-245.png" alt="Tus atajos de teclado pintados por Superkb 0.22" width="640" height="245" /></a><p class="wp-caption-text">Tus atajos de teclado pintados por Superkb 0.22</p></div>
<p>Algunas de las características de Superkb:</p>
<ul>
<li>Fácil de usar. Se selecciona una tecla mágica (por omisión Super) como la base de los lanzadores y basta con presionar Super+Tecla para ejecutar cualquier comando configurado o aplicación seleccionada.</li>
<li>No estorboso. Siendo basado en atajos no se necesita nada en pantalla. Al mantener presionada la tecla mágica mostrará en las pistas en pantalla y al soltarla desaparecen.</li>
<li>Soporte para diferentes geometrías del teclado según lo provea el servidor de X Window System.</li>
<li>Provee indicadores en pantalla sobre las acciones invocadas.</li>
<li>La configuración se escribe en un archivo. Instalar la misma configuración en otra computadora es tan simple como copiar el archivo.</li>
<li>La tecla mágica no se desperdicia. Se puede usar F8 como tecla mágica y al presionarla sin lanzar nada se envía a la aplicación que actualmente tiene el foco. Yo uso esto para la Thinkpad T42.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/03/18/superkb-0-22-liberado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb 0.22 released</title>
		<link>http://blog.alvarezp.org/2011/03/18/superkb-0-22-released/</link>
		<comments>http://blog.alvarezp.org/2011/03/18/superkb-0-22-released/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 23:50:56 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Superkb]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1351</guid>
		<description><![CDATA[Superkb 0.22 has been released! This is a minor release. Do you want to know what&#8217;s new? Take a look at the 0.22 page on the Superkb Wiki.
Superkb is a shortcut-based launcher with on-screen graphical hints. It is written in C using Xlib, with the help of Cairo graphics, Pango, Imlib2, Xinerama, etc. and the [...]]]></description>
			<content:encoded><![CDATA[<p>Superkb 0.22 has been released! This is a minor release. Do you want to know what&#8217;s new? Take a look at the <a href="http://superkb.org/wiki/index.php?title=Superkb_0.22">0.22 page on the Superkb Wiki</a>.</p>
<p><a href="http://superkb.sourceforge.net/">Superkb</a> is a shortcut-based launcher with on-screen graphical hints. It is written in C using Xlib, with the help of Cairo graphics, Pango, Imlib2, Xinerama, etc. and the source code is managed using Git.</p>
<p><span id="more-1351"></span><br />
<div class="wp-caption aligncenter" style="width: 650px"><a href="http://blog.alvarezp.org/imagenes/superkb/shots/0.22/0.22-flatkey.png"><img title="Your keyboard shortcuts painted by Superkb 0.22" src="http://blog.alvarezp.org/imagenes/superkb/shots/0.22/0.22-flatkey-640-245.png" alt="Your keyboard shortcuts painted by Superkb 0.22. Click to see the full image." width="640" height="245" /></a><p class="wp-caption-text">Your keyboard shortcuts painted by Superkb 0.22</p></div></p>
<p>Some of Superkb features:</p>
<ul>
<li>Easy to use. You select a hotkey (Super keys by default) as the base for your launchers and just hit Super+Key to execute whatever command you configured or launch whatever application you chose.</li>
<li>Non-obstructive. Being shortcut based, you don&#8217;t need anything on your screen. Holding the hotkey down will invoke the on-screen hints and releasing it will dismiss them.</li>
<li>Support for different keyboard geometries as provided by the underlying X server.</li>
<li>It provides on-screen feedback for whatever action you have launched.</li>
<li>Configuration is written on a file. You take the configuration with you to install it on your other computer as simple as copying a file.</li>
<li>The hotkey isn&#8217;t wasted. You can choose F8 (or any other) as your hotkey if you please and hitting it will still send it to the currently focused window. I use this for the Thinkpad T42 that has no Super keys.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2011/03/18/superkb-0-22-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux driver &#8212; ethX</title>
		<link>http://blog.alvarezp.org/2010/10/11/linux-driver-ethx/</link>
		<comments>http://blog.alvarezp.org/2010/10/11/linux-driver-ethx/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 21:21:08 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Net-admin]]></category>
		<category><![CDATA[Notas]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1334</guid>
		<description><![CDATA[$ ls -l /sys/class/net/*/device/driver
lrwxrwxrwx 1 root root 0 Oct 11 14:03 /sys/class/net/eth1/device/driver -> ../../../../bus/pci/drivers/skge
lrwxrwxrwx 1 root root 0 Oct 11 14:03 /sys/class/net/eth3/device/driver -> ../../../../bus/pci/drivers/8139too

Thanks to bldewolf. / Gracias a bldewolf.
]]></description>
			<content:encoded><![CDATA[<pre class="code">$ ls -l /sys/class/net/*/device/driver
lrwxrwxrwx 1 root root 0 Oct 11 14:03 /sys/class/net/eth1/device/driver -> ../../../../bus/pci/drivers/skge
lrwxrwxrwx 1 root root 0 Oct 11 14:03 /sys/class/net/eth3/device/driver -> ../../../../bus/pci/drivers/8139too
</pre>
<p>Thanks to bldewolf. / Gracias a bldewolf.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/10/11/linux-driver-ethx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diaspora, primera vista previa de la tecnología</title>
		<link>http://blog.alvarezp.org/2010/09/21/diaspora-primera-vista-previa-de-la-tecnologia/</link>
		<comments>http://blog.alvarezp.org/2010/09/21/diaspora-primera-vista-previa-de-la-tecnologia/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 05:33:45 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1310</guid>
		<description><![CDATA[Hoy estoy feliz. Tal vez ya oyeron algo sobre Diaspora, el proyecto dirigido a ser una red social como Facebook pero de código abierto y distribuída.
¿Por qué? Porque no confío en Facebook. Yo no conozco las instrucciones exactas en el software que gobierna el servicio. Siendo distribuida y de código abierto, confío en que miles [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora_large_new.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora_large_new-300x43.png" alt="diaspora_large_new" title="diaspora_large_new" width="300" height="43" class="aligncenter size-medium wp-image-1288" /></a></p>
<p>Hoy estoy feliz. Tal vez ya oyeron algo sobre <a href="http://www.joindiaspora.com/">Diaspora</a>, el proyecto dirigido a ser una <a href="http://es.wikipedia.org/wiki/Red_social">red social</a> como <a href="http://www.facebook.com/">Facebook</a> pero de <a href="http://es.wikipedia.org/wiki/C%C3%B3digo_abierto">código abierto</a> y <a href="http://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida">distribuída</a>.</p>
<p>¿Por qué? Porque no confío en Facebook. Yo no conozco las instrucciones exactas en el software que gobierna el servicio. Siendo distribuida y de código abierto, confío en que miles de usuarios y desarrolladores podrán ver y analizar el código, yo mismo incluído. Tendré la posibilidad de ver exactamente lo que el código dice si así lo deseo. Más aún, podré publicar mi información personal en mi propio servidor en lugar de en uno centralizado que no es de mi confianza. También significa que quienes confían más en mí que en Facebook tendrán una alternativa (y un administrador de sistemas a quien sí le importe).</p>
<p>(Oh, y personalmente, considero la actual falta de aplicaciones similares a Farmville como una buena oferta.)</p>
<p>Aún estamos hablando de subir información a Internet, de modo que no se puede tomar más a la ligera que publicar información personal diariamente en un periódico o en la televisión. Si publico una imagen la puedo quitar de mi servidor, pero tal vez no podría quitarla de otro servidor a donde ya se haya replicado.</p>
<p>Desde el momento en que escuché de este proyecto he estado esperando a meter las manos en la masa y probarlo yo mismo. Ese día finalmente llegó. El 15 de septiembre de 2010 el <a href="http://www.joindiaspora.com/people.html">equipo de desarrollo</a> liberó el código al público en <a href="http://github.com/diaspora/diaspora">su repositorio Git</a> hospedado en <a href="http://github.com/">Github</a>.</p>
<p>Encontré unas <a href="http://achton.net/2010/09/installing-diaspora-on-debian-linux/">instrucciones en inglés para instalar Diaspora en Debian</a> y decidí probarlas en mi caja Sid. Parece que ya no están completas (el código está cambiando rápidamente conforme avanza el desarrollo). Tuve algunos problemas iniciales, pero al final, con ayuda de la gente en #diaspora, trabajó suficientemente bien como para hacer este artículo.</p>
<p>Eventualmente logré que me mostrara esta pantalla:</p>
<p><a href="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-login.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-login-300x288.png" alt="diaspora screenshot: the login page." title="diaspora-login" width="300" height="288" class="size-medium wp-image-1292 aligncenter" /></a></p>
<p>El identificador de usuario tiene la forma <code>usuario@dominio.com</code>. Como se puede ver en la barra de direcciones de mi navegador, estoy accediendo a mi PC y no a un servidor cualquiera en Internet.</p>
<p>Después de algunas afinaciones logré intercambiar requisiciones de &#8220;amistad&#8221; con otra persona. Hecho esto, pudimos intercambiar mensajes bidireccionalmente.</p>
<p><a href="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-messages.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-messages-300x288.png" alt="Diaspora screenshot: last messages of my &quot;diaspora&quot; aspect." title="diaspora-messages" width="300" height="288" class="size-medium wp-image-1286 aligncenter" /></a></p>
<p>Diaspora tiene estas cosas llamadas &#8220;aspectos&#8221; que se entienden como los &#8220;aspectos de tu vida&#8221;. Los dos disponibles por defecto son &#8220;trabajo&#8221; y &#8220;familia&#8221;. Cuando añades a un amigo, los añades bajo uno (¿o tal vez más?) de estos aspectos.</p>
<p>Los mensajes se intercambian en tiempo real. Tan pronto como publiqué el mensaje se fue directo hacia my nuevo amigo en un servidor externo en Internet donde recibió ese mensaje y se mostró en su navegador sin siquiera tener que refrescar la página. Igual de vuelta: añadió un mensaje y yo lo vi en mi navegador.</p>
<p>El mensaje se fue cifrado sobre el alambre (lo cual es muy bueno). Después de decodificar, esto fue lo que obtuve:</p>
<pre class="code">{"aes_key":"Cl2Xtq/VO [... muchas letras ...] A9lSnqEYk=",
"ciphertext":"YT47xNE [... muchas letras ...] KbqlQNx+Y="}</pre>
<p>En mis pruebas yo no pude subir imágenes; por algún motivo fallaron. Los pantallazos de los desarrolladores muestran que las imágenes ya funcionan. Tal vez algo se rompió en los últimos días.</p>
<p>Básicamente, además de lo que indicaban las instrucciones, tuve que abrir los puertos de mi cortafuegos para hacerlo funcionar. Se necesita iniciar el servicio desde el script provisto en <code>./script/server</code>.</p>
<p>También, las instrucciones recomiendan usar directamente <code>build</code> pero esto no cargará el <em>websocket</em> en el puerto 8080. Tuve que aplicar un <code>PATH=$PATH:/var/lib/gems/1.8/bin</code> artificialmente para incluir ese directorio en las rutas de búsqueda para que <code>./script/server</code> pudiera llamar <code>build</code>.</p>
<p>MUY IMPORTANTE: Esta versión está en calidad de desarrollo (lo que básicamente se traduce a &#8220;mejor esfuerzo&#8221;) o como dicen en el repositorio Git, &#8220;pre-alpha&#8221;. Aún le falta mucho para ser usable de forma popular. <strong>Tiene</strong> problemas de seguridad conocidos (tu cuenta de diaspora puede ser adueñada remotamente); <strong>tiene</strong> fallas (la carga de imágenes está rota en algunas configuraciones); y puede ser que pierdas tus datos de diaspora, así de la nada (como en cualquier versión de desarrollo), particularmente después de alguna actualización que no salga bien. La recomendación actual es que NO SUBAS TU INFORMACIÓN IMPORTANTE todavía. Repito: es una liberación de desarrollo, una vista previa. Está en una etapa muy temprana. Hasta puedes llamarla &#8220;prototipo&#8221; si gustas pero acepta los riesgo según estén el día de hoy.</p>
<p>Si lo quieres probar por ti mismo, revisa el <a href="http://github.com/diaspora/diaspora/wiki/">Wiki de Diaspora</a>. Incluye información sobre servidores públicos, instalación, terminología que yo no leí y que pudo haber evitado desperdiciar tiempo valioso de la gente de #diaspora. Ahora es un buen momento para agradecerles.</p>
<p>Equipo de diaspora: ¡gran trabajo!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/09/21/diaspora-primera-vista-previa-de-la-tecnologia/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Diaspora, first Technology Preview</title>
		<link>http://blog.alvarezp.org/2010/09/21/diaspora-first-technology-preview/</link>
		<comments>http://blog.alvarezp.org/2010/09/21/diaspora-first-technology-preview/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 05:01:06 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1285</guid>
		<description><![CDATA[I&#8217;m so glad today. Some of you may have heard of Diaspora, the project aimed to be a social network like Facebook but open source and distributed.
Why? Because I don&#8217;t trust Facebook. I don&#8217;t know the exact instructions in the software that governs the service. Being distributed and open source, I trust that thousands of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora_large_new.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora_large_new-300x43.png" alt="diaspora_large_new" title="diaspora_large_new" width="300" height="43" class="aligncenter size-medium wp-image-1288" /></a></p>
<p>I&#8217;m so glad today. Some of you may have heard of <a href="http://www.joindiaspora.com/">Diaspora</a>, the project aimed to be a <a href="http://en.wikipedia.org/wiki/Social_network">social network</a> like <a href="http://www.facebook.com/">Facebook</a> but <a href="http://en.wikipedia.org/wiki/Open_source">open source</a> and <a href="http://en.wikipedia.org/wiki/Distributed_computing">distributed</a>.</p>
<p><span id="more-1285"></span>Why? Because I don&#8217;t trust Facebook. I don&#8217;t know the exact instructions in the software that governs the service. Being distributed and open source, I trust that thousands of users and developers will be able to view and analyze the code, myself included. I will be able to know exactly what the code says if so I wish. Furthermore, I will be able to post my personal information on my own server instead of a centralized, untrusted one. It also means that people that trust me more than Facebook would have an alternative (and a system administrator that actually cares).</p>
<p>(Oh, and personally, I consider the current lack of any similar-to-Farmville application to be a feature.)</p>
<p>We are still talking about posting information to the Internet, though, so it must not be taken any lighter than publishing any personal information daily on the newspaper or the TV. If I publish a picture, I can take it down from my server, but I may not be able to take it away from other servers into where it may have already been replicated.</p>
<p>Since the moment I heard of the project I&#8217;ve been waiting to get my hands on it and try it myself. That day finally arrived. On September 15th, 2010, the <a href="http://www.joindiaspora.com/people.html">development team</a> released the code to the public in <a href="http://github.com/diaspora/diaspora">their Git repository</a> hosted on <a href="http://github.com/">Github</a>.</p>
<p>I found some <a href="http://achton.net/2010/09/installing-diaspora-on-debian-linux/">instructions on installing Diaspora on Debian</a> and so I decided to try them on my Sid box. It looks those are not complete anymore (the code is rapidly changing as development continues). I had some initial problems, but at the end, with some help from the people at #diaspora, it worked good enough to make this blog post.</p>
<p>I eventually got to this login screen:</p>
<p><a href="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-login.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-login-300x288.png" alt="diaspora screenshot: the login page." title="diaspora-login" width="300" height="288" class="size-medium wp-image-1292 aligncenter" /></a></p>
<p>The user identification takes the form <code>user@domain.com</code>. As you can see on the browser address bar, I&#8217;m accessing my own PC, not some server on the Internet.</p>
<p>After some more tweaking I managed to exchange &#8220;friend&#8221; requests with another person. We exchanged messages bidirectionally:</p>
<p><a href="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-messages.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2010/09/diaspora-messages-300x288.png" alt="Diaspora screenshot: last messages of my &quot;diaspora&quot; aspect." title="diaspora-messages" width="300" height="288" class="size-medium wp-image-1286 aligncenter" /></a></p>
<p>Diaspora has these things called &#8220;aspects&#8221; which I understand as &#8220;aspect of your life&#8221;. The two available by default as of now are &#8220;work&#8221; and &#8220;family&#8221;. When you add a friend, you add them under one (maybe more?) of these aspects.</p>
<p>Message exchange was done in real time. As soon as I published a message, it got sent to my new friend in a third-party server and he got the message shown in his browser without reloading. Same way back: he added a message and I saw it.</p>
<p>The message went encrypted over the wire (which is very good). After some decoding, this is what I got:</p>
<pre class="code">{"aes_key":"Cl2Xtq/VO [... lots of characters ...] A9lSnqEYk=",
"ciphertext":"YT47xNE [... lots of characters ...] KbqlQNx+Y="}</pre>
<p>In my tests I was not able to upload images; they failed for some reason. Screenshots from the developers show pictures already working, though. Maybe they got broken sometime in the last couple of days.</p>
<p>Basically, in addition to what the instructions said, I had to open the ports on my firewall to make it work. You must start the server from the <code>./script/server</code> script provided.</p>
<p>Also, the instructions suggest you directly call <code>build</code> but this will not load the <em>websocket</em> at port 8080. I had to artifically do a <code>PATH=$PATH:/var/lib/gems/1.8/bin</code> to include that directory in the search path, so <code>./script/server</code> could call <code>build</code>.</p>
<p>VERY IMPORTANT: This version is in development quality (which basically translates to &#8220;best effort&#8221;), or as they say in the Git repo, &#8220;pre-alpha&#8221; quality. It is still a long way from being suitable for popular use. It <strong>has</strong> known security problems (your diaspora account can be remotely hijacked); it <strong>has</strong> bugs (image uploads are broken in some setups); and it you may lose diaspora data out of nothing (as with any development release), particularly if some upgrade goes wrong. The actual recommendation is DON&#8217;T POST YOUR IMPORTANT INFORMATION yet. I repeat: it is a development release; it is a preview. It is still in a very early development stage. Call it a prototype if you want, but be sure to accept the existing risks as of today.</p>
<p>If you want to try it yourself, check the <a href="http://github.com/diaspora/diaspora/wiki/Frequently-Asked-Questions">Diaspora Wiki</a> out. It includes information about public servers, installation, some terminology that I did not read and so I made some guys at #diaspora lose some of their valuable time. Now is a good moment to thank them for helping me out.</p>
<p>Diaspora team: great work!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/09/21/diaspora-first-technology-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Se pospone en Tijuana el Día Mundial del Software Libre 2010</title>
		<link>http://blog.alvarezp.org/2010/09/13/se-pospone-en-tijuana-el-dia-mundial-del-software-libre-2010/</link>
		<comments>http://blog.alvarezp.org/2010/09/13/se-pospone-en-tijuana-el-dia-mundial-del-software-libre-2010/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 02:08:40 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[SFD]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Tijuana]]></category>
		<category><![CDATA[mexico]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/2010/09/13/se-pospone-en-tijuana-el-dia-mundial-del-software-libre-2010/</guid>
		<description><![CDATA[A todos:
Por motivos de último minuto que están fuera de nuestro control, el evento del Día Mundial del Software Libre que habríamos de realizar en Tijuana el 18 de septiembre de 2010 se pospone.
Estaremos informando de la nueva fecha y lugar en este blog y en la página oficial del SFD: http://sfd.gultij.org/
Nuestra intención es posponerlo [...]]]></description>
			<content:encoded><![CDATA[<p>A todos:</p>
<p>Por motivos de último minuto que están fuera de nuestro control, el evento del Día Mundial del Software Libre que habríamos de realizar en Tijuana el 18 de septiembre de 2010 se pospone.</p>
<p>Estaremos informando de la nueva fecha y lugar en este blog y en la página oficial del SFD: <a href="http://sfd.gultij.org/">http://sfd.gultij.org/</a></p>
<p>Nuestra intención es posponerlo para principios de octubre, pero aún no es seguro.</p>
<p>Mucho agradeceré que hagan extensivo este anuncio para ayudarnos a evitarle a la gente una vuelta en vano a CECUT. De igual manera, será importantísimo que nos ayuden nuevamente cuando tengamos preparado el anuncio con la nueva fecha y lugar, para correr la voz lo más pronto posible a toda la gente.</p>
<p>El CECUT y el <a href="http://www.gultij.org/">GULTIJ</a> agradecen a todos su respuesta ante los preparativos del evento. Este tipo de circunstancias son las que hacen relucir la importancia de la participación de la comunidad. Aún cuando parece indirecta, ésta es tanto o más importante que la del Comité Organizador mismo.</p>
<p>Estamos haciendo todo lo posible por hacer los arreglos correspondientes para contar con un evento de gran calidad y que 2010 año no pase sin festejo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/09/13/se-pospone-en-tijuana-el-dia-mundial-del-software-libre-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Breve prueba de VNC Inversa, documentada</title>
		<link>http://blog.alvarezp.org/2010/08/14/breve-prueba-de-vnc-inversa-documentada/</link>
		<comments>http://blog.alvarezp.org/2010/08/14/breve-prueba-de-vnc-inversa-documentada/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 18:21:42 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Net-admin]]></category>
		<category><![CDATA[Notas]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1267</guid>
		<description><![CDATA[Esta es una nota rápida para documentar una prueba de conexion VNC inversa (Reverse VNC).
A diferencia de una conexión regular de VNC, en la cual te conectas a la PC a controlar, en una conexión inversa de VNC, la PC a controlar se conecta a ti. El control es en la misma dirección pero la [...]]]></description>
			<content:encoded><![CDATA[<p>Esta es una nota rápida para documentar una prueba de conexion VNC inversa (Reverse VNC).</p>
<p>A diferencia de una conexión regular de VNC, en la cual te conectas a la PC a controlar, en una conexión inversa de VNC, la PC a controlar se conecta a ti. El control es en la misma dirección pero la conexión está invertida.</p>
<p>El beneficio? No tener que preocuparse sobre el estado de red ni direcciones de la PC remota. Suele ser más fácil iniciar conexiones que recibirlas. Así, quien tiene mejor conocimiento de redes será el que escuche y el alma en pena será el iniciador. Esto mueve las preocupaciones de red al &#8220;escuchante&#8221; del socket, justo donde deben estar en este caso en particular. Además, con el estado actual de IPv4 lleno de NAT, el mal necesario, no habrá que preocuparnos sobre la configuración de NAT / port forward en el router remoto.</p>
<h3>Conformación de la prueba</h3>
<p>La prueba se conforma de mi estación de trabajo de escritorio corriendo Ubuntu y mi laptop corriendo Windows, ambas en el mismo dominio de broadcast de Ethernet. No se toca gateway alguno en la prueba.</p>
<p>Nota: la prueba se realizó con software en inglés, de la cual traduje al español. La traducción podría no ser exacta en comparación con la versión en español del software.</p>
<p>Las características de mi estación de trabajo:</p>
<ul>
<li>Sistema operativo: Ubuntu Lucid Lynx (10.04).</li>
<li>Paquete de VNC: xvnc4viewer 4.1.1+xorg4.3.0-37ubuntu2.</li>
<li>Rol: Computadora de control (cliente VNC). En un caso real aquí es donde yo estaría sentado y controlando computadoras remotas.</li>
<li>Dirección IP: 192.0.2.10 (esta dirección es falsa, para documentación según RFC 5735).
</li>
</ul>
<p>Características de la laptop:</p>
<ul>
<li>Sistema operativo: Microsoft Windows XP SP3.</li>
<li>Paquete VNC: TightVNC 1.3.10, instalado de la colección OpenDisc.</li>
<li>Rol: PC a ser controlada (servidor VNC). En la vida real, esta sería la PC que recibiría soporte técnico por mí..</li>
<li>Dirección IP: 192.0.2.20 (esta dirección es falsa, para documentación según RFC 5735).
</li>
</ul>
<h3>Pasos realizados para establecer la conexión</h3>
<p>En la estación de trabajo (el cliente VNC, computadora de control):</p>
<ul>
<li>Abrí una terminal</li>
<li>Ejecuté <code>vncviewer -listen</code></li>
<li>Se debe recibir un mensaje como &#8220;main: Listening on port 5500&#8243; (&#8221;escuchando en puerto 5500&#8243;)</li>
</ul>
<p>En la laptop (el servidor VNC, la computadora a ser controlada):</p>
<ul>
<li>Me fui a <em>Inicio » Todos los programas » TightVNC</em> y ejecuté <em>Lanzar Servicio de TightVNC</em></li>
<li>Si aparece la ventana <em>Propiedades</em>, deshabilitar &#8220;Aceptar conexiones&#8221; y hacer click en OK (sólo por seguridad).</li>
<li>Click derecho en el icono de Servidor TightVNC en la bandeja de sistema y escoger <em>Agregar nuevo cliente&#8230;</em></li>
<li>Ingresar la dirección IP de la estación de trabajo, en este ejemplo, <code>192.0.2.10</code> y hacer clic en OK o presionar Enter.</li>
</ul>
<h3>Notas</h3>
<ul>
<li>La prueba fue realizada con el Firewall de Windows habilitado. Podrías recibir un mensaje como <em>Para ayudar a proteger tu equipo, el Firewall de Windows bloqueó algunas de las características de este programa. | El administrador del equipo podría ayudar a desbloquear el siguiente programa: TightVNC Win32 Server</em> cuando al correr el Servidor TightVNC. Se le puede dar simplemente &#8220;Aceptar&#8221; puesto que esa PC será la que inicie y no la que escuche. Este mensaje se inhibe al deshabilitar <em>Aceptar conexiones</em> en la ventana <em>Propiedades</em> del Servidor TightVNC.
	</li>
<li>La prueba fue repetida usando una cuenta restringida de Windows con resultados satisfactorios. Esto te da gran flexibilidad. Podrías hasta hacer una versión portátil del servidor de TightVNC siguiendo el paso de las instrucciones en esse <a href="http://tinyapps.org/docs/vnc/">documento sobre VNC en el blog TinyApps.Org</a></li>
<li>Dependiendo del ancho de banda y latencia disponibles, podría ser necesario ajustar el servidor en la ventana de propiedades.</li>
<li>Noté una demora algo larga durante el primer intento de conexión, incluso llegando a fallar. En el segundo intento funcionó bien. Quiero suponer que tiene que ver con demoras de resolución de DNS y el caché, pero eso es mera especulación.</li>
</ul>
<p>Se aceptan comentarios. Si conoces instrucciones para este mismo escenario usando otra plataforma, publícalo en tu blog y enlázalo desde un comentario aquí, o escríbelo directamente en un comentario.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/08/14/breve-prueba-de-vnc-inversa-documentada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Reverse VNC test, documented</title>
		<link>http://blog.alvarezp.org/2010/08/13/quick-reverse-vnc-test-documented/</link>
		<comments>http://blog.alvarezp.org/2010/08/13/quick-reverse-vnc-test-documented/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 19:50:08 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Net-admin]]></category>
		<category><![CDATA[Notas]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1257</guid>
		<description><![CDATA[This is a quick note, documenting a quick successful test on Reverse VNC connections.
Unlike regular VNC connections, in which you connect to the controllable PC, in a Reverse VNC connection the controllable PC will connect to you. The control is in the same direction, but the connection is reversed.
What&#8217;s the benefit? Not having to worry [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick note, documenting a quick successful test on Reverse VNC connections.</p>
<p>Unlike regular VNC connections, in which you connect to the controllable PC, in a Reverse VNC connection the controllable PC will connect to you. The control is in the same direction, but the connection is reversed.</p>
<p>What&#8217;s the benefit? Not having to worry about the network status and addresses of the remote PC. It is usually easier to initiate connections than to receive. This lets the guy with better network understanding to be the listener and the poor soul to be the initiator. This will put the network worries near to the tech support guy, where it should be for this particular scenario. Also, as with the current state of IPv4, full of the evil but necessary NAT, you will not have to worry about router NAT / port forwarding configuration in the remote router.</p>
<h3>Test setup</h3>
<p>The test setup consisted on my desktop workstation running Ubuntu and my laptop running Windows, both on the same Ethernet broadcast domain. No gateway was involved in the test.</p>
<p>The desktop workstation had the following characteristics:</p>
<ul>
<li>Operating System: Ubuntu Lucid Lynx (10.04).</li>
<li>VNC package: xvnc4viewer 4.1.1+xorg4.3.0-37ubuntu2.</li>
<li>Role: Controlling computer (VNC client). In real life here is where I would sit and control other computers.</li>
<li>IP address: 192.0.2.10 (this is a fake, RFC 5735 documentation address).
</li>
</ul>
<p>The laptop had the following characteristics:</p>
<ul>
<li>Operating System: Microsoft Windows XP SP3.</li>
<li>VNC package: TightVNC 1.3.10, installed from the OpenDisc software collection.</li>
<li>Role: Controlled computer (VNC server). In real life this would be the PC receiving remote tech support from me.</li>
<li>IP address: 192.0.2.20 (this is a fake, RFC 5735 documentation address).</li>
</ul>
<h3>Steps performed to establish the connection</h3>
<p>On the desktop workstation (the VNC client, controlling computer):</p>
<ul>
<li>Opened a terminal</li>
<li>Ran <code>vncviewer -listen</code></li>
<li>You should get a message like &#8220;main: Listening on port 5500&#8243;</li>
</ul>
<p>On the laptop (the VNC server, controlled computer):</p>
<ul>
<li>Went to <em>Start » All Programs » TightVNC</em> and ran <em>Launch TightVNC Server</em></li>
<li>If the <em>Properties</em> window pops up, disable &#8220;Accept socket connections&#8221; and click OK (just for security reasons).</li>
<li>Right click on the system tray TightVNC Server icon and choose <em>Add New Client&#8230;</em></li>
<li>Enter the IP address of the desktop workstation, in this example, <code>192.0.2.10</code> and click OK or hit Enter.</li>
</ul>
<h3>Sidenotes</h3>
<ul>
<li>The test was done with the Windows Firewall enabled. You might get a message like <em>To help protect your computer, Windows Firewall blocked some of this program features. | The computer administrator may unblock this program for: TightVNC Win32 Server</em> when running the Tight VNC Server. You may safely click &#8220;OK&#8221; because you will initiate connections and not listen for a connection. This message gets inhibited by disabling <em>Accept socket connections</em> in the <em>Properties</em> window.</li>
<li>The test was repeated using a restricted Windows account, with a successful result. This gives you a lot of flexibility. You might even try making a portable TightVNC server by following the Step 2 from the instructions on this <a href="http://tinyapps.org/docs/vnc/">VNC document from the TinyApps.Org blog</a></li>
<li>Depending on the available bandwidth and latency, it might be necessary to tweak the server on the <em>Properties</em> window.</li>
<li>I noticed a somewhat long delay on the first connection attempt, in one case even leading to a connection failing. On the second try it worked fine. I would guess this has to do with DNS resolving delays and caching, but it&#8217;s just speculation.</li>
</ul>
<p>Comments welcome. If you have instructions for the same scenario on different platforms, post it on your blog and link it from a comment, or write it directly on a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/08/13/quick-reverse-vnc-test-documented/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sobre la conferencia &#8220;Estilos en OpenOffice.org&#8221; en CETYS Universidad, 2010</title>
		<link>http://blog.alvarezp.org/2010/04/13/sobre-la-conferencia-estilos-en-openoffice-org-en-cetys-universidad-2010/</link>
		<comments>http://blog.alvarezp.org/2010/04/13/sobre-la-conferencia-estilos-en-openoffice-org-en-cetys-universidad-2010/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 04:37:18 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Conferencias]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[SFD]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Tijuana]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1086</guid>
		<description><![CDATA[Actualización: Fotos del Gultij en CETYS Universidad, por Tonymoyoy.
A través del Grupo de Usuarios de Linux de Tijuana tuve la oportunidad de presentar la conferencia &#8220;Estilos en OpenOffice.org&#8221; en la 8ª Semana de Ingeniería en el CETYS Universidad. Quiero agradecer tanto al CETYS como al Gultij.
El grupo fue muy agradable a pesar de que la [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Actualización</strong>: <a href="http://tonymoyoy.blogsome.com/2010/04/14/fotos-del-gultij-en-cetys-universidad/">Fotos del Gultij en CETYS Universidad</a>, por <a href="http://tonymoyoy.blogsome.com/">Tonymoyoy</a>.</p>
<p>A través del <a href="http://www.gultij.org/">Grupo de Usuarios de Linux de Tijuana</a> tuve la oportunidad de presentar la conferencia &#8220;Estilos en OpenOffice.org&#8221; en la <a href="http://www.gultij.org/node/428">8ª Semana de Ingeniería</a> en el <a href="http://www.cetys.mx/">CETYS Universidad</a>. Quiero agradecer tanto al CETYS como al Gultij.</p>
<p>El grupo fue muy agradable a pesar de que la laptop amenazó con hacer berrinches. Los invitamos al Software Freedom Day 2010, donde se repetirá la conferencia. Insisto en que la utilidad de la conferencia sólo se puede medir con el tiempo que Uds. ahorren.</p>
<p>Más adelante se publicará información sobre el SFD 2010 en la página del GUL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/04/13/sobre-la-conferencia-estilos-en-openoffice-org-en-cetys-universidad-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

