<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">

<channel>
	<title>Con G de GNU</title>
	
	<link>http://www.congdegnu.es</link>
	<description>aptitude install freedom</description>
	<lastBuildDate>Mon, 21 Jun 2010 16:53:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>© </copyright>
		<managingEditor>congdegnu@gmail.com ()</managingEditor>
		<webMaster>congdegnu@gmail.com()</webMaster>
		<category />
		<itunes:keywords />
		<itunes:subtitle />
		<itunes:summary>aptitude install freedom</itunes:summary>
		<itunes:author />
		<itunes:category text="Society &amp; Culture" />
		<itunes:owner>
			<itunes:name />
			<itunes:email>congdegnu@gmail.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.congdegnu.es/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://www.congdegnu.es/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Con G de GNU</title>
			<link>http://www.congdegnu.es</link>
			<width>144</width>
			<height>144</height>
		</image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ConGDeGnu" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="congdegnu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Monta tu servidor ssh rápidamente</title>
		<link>http://www.congdegnu.es/2010/06/21/monta-tu-servidor-ssh-rapidamente/</link>
		<comments>http://www.congdegnu.es/2010/06/21/monta-tu-servidor-ssh-rapidamente/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 16:49:05 +0000</pubDate>
		<dc:creator>Maxpowel</dc:creator>
				<category><![CDATA[Guias y manuales]]></category>
		<category><![CDATA[clonezilla]]></category>
		<category><![CDATA[drbl]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.congdegnu.es/?p=1175</guid>
		<description><![CDATA[Buenas!
No es un espejismo no, estoy escribiendo algo en el blog! Bromas a parte, en post donde comento cómo usar clonezilla una persona pidió un manual de cómo montar un servidor ssh. Es tan sumamente sencillo que me daría rabia si esa persona no es capaz de automatizar todo el sistema de clonado de imágenes [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas!<br />
No es un espejismo no, estoy escribiendo algo en el blog! Bromas a parte, en post donde comento <a href="http://www.congdegnu.es/2009/02/20/clonando-con-drbl-y-clonezilla-usando-multicast/">cómo usar clonezilla</a> una persona pidió un manual de cómo montar un servidor ssh. Es tan sumamente sencillo que me daría rabia si esa persona no es capaz de automatizar todo el sistema de clonado de imágenes por algo tan nimio como es el preparar el servidor ssh.</p>
<p>Comienzo explicando los conceptos básicos sobre ssh en Linux.</p>
<h1><span id="more-1175"></span><strong>Descripción de SSH</strong></h1>
<p>Por decirlo de manera sencilla, SSH nos permite conectarnos a una máquina remota de manera segura. Además de cifrar el canal de comunicación es obligatoria la autenticación.<br />
Para esto hay dos maneras, una es mediante usuario y contraseña y la otra es mediante el uso de claves públicas y privadas.</p>
<p>Cuando queremos entrar con un usuario y contraseña usamos los usuarios del sistema. A nosotros nos da igual donde estén esos usuarios creados (archivos /etc/passwd, servidor LDAP&#8230;) de eso se encargará el sistema.</p>
<p>Cuando nos conectamos por SSH al servidor entramos con los permisos del usuario que hemos usado. Por ejemplo, si yo entro con el usuario &#8220;alvaro&#8221; (un usuario normal) mi home será /home/alvaro y sólo tendré permiso de escritura a ese directorio. Otro usuario como es root tiene acceso a todo el sistema. Por seguridad en muchos servidores el usuario root esté deshabilitado.</p>
<p>En resumidas cuentas, a efectos prácticos SSH es <strong>igual</strong> que usar el terminal de tu ordenador, pero esas órdenes se ejecutan en el servidor remoto.<br />
Veamos algun ejemplo.<br />
<a href="http://www.congdegnu.es/wp-content/uploads/2010/06/sshDesc.png"><img class="aligncenter size-full wp-image-1178" src="http://www.congdegnu.es/wp-content/uploads/2010/06/sshDesc.png" alt="Conexion ssh" /></a><br />
Al pricipio estoy en mi ordenador. Ejecutando el comando &#8220;whoami&#8221; vemos que el usuario soy y mi estoy en mi máquina. Nos podemos dar cuenta porque pone &#8220;alvaro@flanders&#8221; (flanders es el hostname de mi ordenador).<br />
Despues ejecutamos el comando ssh usuario@servidor. Nos conectaremos con el usuario &#8220;usuario&#8221; al servidor &#8220;servidor&#8221; y luego nos pregunta por la contraseña. Si introducimos la contraseña correcta entramos al servidor. Nos muestra un texto de bienvenida y vemos que ahora no pone &#8220;alvaro@flanders&#8221; sino que pone &#8220;server&#8221; (server es el hostname del servidor, muy original sí). También ejecutando el comando whoami vemos que el usuario ahora es root y no alvaro. Ahora todo lo que escriba en ese termina se ejecutará en el servidor con los permisos de root.</p>
<p>Ahora que ya sabemos un poco de qué va esto del SSH vamos a instalarlo</p>
<h1><strong>Instalación de SSH</strong></h1>
<p>Tan sencillo como instalar el paquete openssh-server<br />
<code>sudo aptitude install openssh-server</code></p>
<p><a href="http://www.congdegnu.es/wp-content/uploads/2010/06/sshDesc2.png"><img class="aligncenter size-full wp-image-1182" src="http://www.congdegnu.es/wp-content/uploads/2010/06/sshDesc2.png" alt="" /></a></p>
<p>Iniciamos el servicio ssh</p>
<p>/etc/init.d/ssh start</p>
<p>Y ya podemos conectarnos al servidor</p>
<p><a href="http://www.congdegnu.es/wp-content/uploads/2010/06/sshDesc3.png"><img class="aligncenter size-full wp-image-1184" src="http://www.congdegnu.es/wp-content/uploads/2010/06/sshDesc3.png" alt="" /></a>Hacemos la prueba y vemos que me he contectado sin problema. Si tienes más ordenadores en tu red local prueba a conectarte desde uno de ellos.<br />
Recuerda que los datos que debes usar son un usuario del servidor y el hostname (o dirección ip del servidor, por ejemplo</p>
<p>ssh usuario@192.168.1.110</p>
<p>Suponiendo que el usuario &#8220;usuario&#8221; existe en el servidor y que la dirección ip (local) de tu servidor es &#8220;192.168.1.110&#8243;.</p>
<p>Y ya está! Ha sido fácil verdad?</p>
<h1>Notas sobre ssh-server y clonezilla</h1>
<p>Como dije al principio, escribo este artículo a partir de <a href="../2009/02/20/clonando-con-drbl-y-clonezilla-usando-multicast/">este</a> y los datos por los que te pregunta son los siguientes:</p>
<p><div id="attachment_674" class="wp-caption aligncenter" style="width: 810px"><a href="http://www.congdegnu.es/wp-content/uploads/2009/02/retardo5.png"><img class="size-full wp-image-674" src="http://www.congdegnu.es/wp-content/uploads/2009/02/retardo5.png" alt="" width="800" height="600" /></a><p class="wp-caption-text">Esto la dirección de tu servidor SSH. Donde has instalado el SSH.</p></div></p>
<p style="text-align: center"><a href="http://www.congdegnu.es/wp-content/uploads/2009/02/retardo9.png"></a></p>
<p><div id="attachment_675" class="wp-caption aligncenter" style="width: 810px"><a href="http://www.congdegnu.es/wp-content/uploads/2009/02/retardo6.png"><img class="size-full wp-image-675" src="http://www.congdegnu.es/wp-content/uploads/2009/02/retardo6.png" alt="" width="800" height="600" /></a><p class="wp-caption-text">El usuario del servidor que usarás para conectarte a él (para almacenar la imagen del disco duro)</p></div></p>
<p><div id="attachment_677" class="wp-caption aligncenter" style="width: 810px"><a href="http://www.congdegnu.es/wp-content/uploads/2009/02/retardo8.png"><img class="size-full wp-image-677" src="http://www.congdegnu.es/wp-content/uploads/2009/02/retardo8.png" alt="" width="800" height="600" /></a><p class="wp-caption-text">El directorio del servidor donde se guardará la imagen del disco duro. Recuerda que el usuario que elegiste antes tiene que tener permisos de escritura en ese directorio del servidor.</p></div></p>
<p style="text-align: center">
<p style="text-align: left">Espero que se hayan podido solucionar todas las dudas respecto a este tema. Si no, puedes preguntar por lo que no te ha quedado claro por supuesto.</p>
<p style="text-align: left">
<p style="text-align: left">Un saludo!!</p>


<p>Entradas relacionadas:<ol><li><a href='http://www.congdegnu.es/2009/02/20/clonando-con-drbl-y-clonezilla-usando-multicast/' rel='bookmark' title='Permanent Link: Clonando con DRBL y Clonezilla (usando multicast!)'>Clonando con DRBL y Clonezilla (usando multicast!)</a> <small> Saludos, antes de nada disculparme por la tardanza y...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.congdegnu.es/2010/06/21/monta-tu-servidor-ssh-rapidamente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GPodcast 2.13 – microfonos con jquery en gnu/hurd</title>
		<link>http://www.congdegnu.es/2010/05/17/gpodcast-2-13-microfonos-con-jquery-en-gnuhurd/</link>
		<comments>http://www.congdegnu.es/2010/05/17/gpodcast-2-13-microfonos-con-jquery-en-gnuhurd/#comments</comments>
		<pubDate>Mon, 17 May 2010 19:39:43 +0000</pubDate>
		<dc:creator>DiCrEn</dc:creator>
				<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://www.congdegnu.es/?p=1169</guid>
		<description><![CDATA[
Volvemos&#8230; como podemos&#8230; y con un Nukeador de fondo.
Hablamos de:
- Hurd
- Jquery
- Microfonos
Promos:
- geocastaway
- Podcast caramelizado
Música:
Oh My Cat! por Sundayers


Entradas relacionadas:GPodcast 1.5 &#8211; 5 Son multitud  Ya tenemos aquí otro podcast, esta vez con dos...Gpodcast 1.3 &#8211; Pegatinaas  Ya estamos aquí! con un par de dias de...Gpodcast 1.2 &#8211; No quiero un mac [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Portada" src="http://www.congdegnu.es/portada2.png" alt="" width="386" height="386" /></p>
<p>Volvemos&#8230; como podemos&#8230; y con un <a href="http://twitter.com/nukeador">Nukeador</a> de fondo.</p>
<p><strong>Hablamos de</strong>:</p>
<p>- Hurd</p>
<p>- Jquery</p>
<p>- Microfonos</p>
<p><strong>Promos:</strong></p>
<p>- <a href="http://geocastaway.blogspot.com/">geocastaway</a></p>
<p>- <a href="http://podcastcaramelizado.blogspot.com/">Podcast caramelizado</a></p>
<p><strong>Música:</strong></p>
<div><a href="http://www.jamendo.com/es/track/537119">Oh My Cat!</a> por <a href="http://www.jamendo.com/es/artist/Sundayers_%282%29">Sundayers</a></div>


<p>Entradas relacionadas:<ol><li><a href='http://www.congdegnu.es/2009/04/13/gpodcast-15-5-son-multitud/' rel='bookmark' title='Permanent Link: GPodcast 1.5 &#8211; 5 Son multitud'>GPodcast 1.5 &#8211; 5 Son multitud</a> <small> Ya tenemos aquí otro podcast, esta vez con dos...</small></li><li><a href='http://www.congdegnu.es/2009/03/04/gpodcast-13-pegatinaas/' rel='bookmark' title='Permanent Link: Gpodcast 1.3 &#8211; Pegatinaas'>Gpodcast 1.3 &#8211; Pegatinaas</a> <small> Ya estamos aquí! con un par de dias de...</small></li><li><a href='http://www.congdegnu.es/2009/02/15/gpodcast-12-no-quiero-un-mac/' rel='bookmark' title='Permanent Link: Gpodcast 1.2 &#8211; No quiero un mac'>Gpodcast 1.2 &#8211; No quiero un mac</a> <small> Ya hemos vuelto, gpodcast 1.2, con numerosos bugs resueltos,...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.congdegnu.es/2010/05/17/gpodcast-2-13-microfonos-con-jquery-en-gnuhurd/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
			<enclosure url="http://blip.tv/file/get/Congdegnu-GPodcast213MicrofonosConJqueryEnGnuhurd813.mp3" length="53805322" type="audio/mpeg" />
<itunes:duration>1:14:00</itunes:duration>
		<itunes:subtitle>Volvemos... como podemos... y con un Nukeador de fondo.

Hablamos de:

- Hurd

- Jquery

- Microfonos

Promos:

- geocastaway

- Podcast caramelizado

Muacute;sica:
Oh My Cat! por Sundayers

Entradas relacionadas:GPodcast 1.5 #8211; 5 Son ..</itunes:subtitle>
		<itunes:summary>Volvemos... como podemos... y con un Nukeador de fondo.

Hablamos de:

- Hurd

- Jquery

- Microfonos

Promos:

- geocastaway

- Podcast caramelizado

Muacute;sica:
Oh My Cat! por Sundayers

Entradas relacionadas:GPodcast 1.5 #8211; 5 Son multitud  Ya tenemos aquiacute; otro podcast, esta vez con dos...Gpodcast 1.3 #8211; Pegatinaas  Ya estamos aquiacute;! con un par de dias de...Gpodcast 1.2 #8211; No quiero un mac  Ya hemos vuelto, gpodcast 1.2, con numerosos bugs resueltos,...</itunes:summary>
		<itunes:keywords>Podcast</itunes:keywords>
		<itunes:author>congdegnu@gmail.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>Qué, porqué y cómo del XMPP por BOSH</title>
		<link>http://www.congdegnu.es/2010/04/10/que-porque-como-xmpp/</link>
		<comments>http://www.congdegnu.es/2010/04/10/que-porque-como-xmpp/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 09:00:09 +0000</pubDate>
		<dc:creator>Maxpowel</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[binding]]></category>
		<category><![CDATA[bosh]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[mensajeria]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://www.congdegnu.es/?p=1164</guid>
		<description><![CDATA[Si estás leyendo esto seguro que alguna vez has utilizado un &#8220;chat&#8221;. Los encontramos de las maneras más variopintas, desde desde simples chats de dos personas (punto a punto se podría llamar), en páginas webs con decenas de personas, el ya bastante obsoletillo IRC, el malvado MSN Messenger&#8230;. alguno incluso habrá infectado a alguien con [...]]]></description>
			<content:encoded><![CDATA[<p>Si estás leyendo esto seguro que alguna vez has utilizado un &#8220;chat&#8221;. Los encontramos de las maneras más variopintas, desde desde simples chats de dos personas (punto a punto se podría llamar), en páginas webs con decenas de personas, el ya bastante obsoletillo IRC, el malvado MSN Messenger&#8230;. alguno incluso habrá infectado a alguien con un troyano el cual trae una herramienta de chat para hablar con tu víctima. Como ves, existen infinidad de herramientas y cada una con sus normas y sus características. Yo os voy a hablar del sistema definitivo, un sistema potente, estandar y sobre todo libre. Saludemos a XMPP.</p>
<p><span id="more-1164"></span></p>
<p>¿Qué es XMPP y por qué usar XMPP?</p>
<p>Es un protocolo. Como a muchos eso os dejará igual voy a tratar de explicar que es esto y te darás cuenta del por qué es necesario que sea libre.</p>
<p>En informática un protocolo son una serie de normas para que dos máquinas sean capaces de entenderse. Esto nos da la posibilidad de que dos (o más) máquinas (o programas dentro de una máquina) puedan compartir información, dialogar entre ellas, discutir y llegar a acuerdos, etc. Sí, las máquinas hablan entre ellas, y mucho. Son unas cotorras de tomo y lomo lo que pasa es que no nos damos cuenta. Nosotros sólo vemos el resultado de toda era &#8220;burocracia&#8221; entre máquinas. Aquellos que nos siguen desde hace bastante igual se acuerdan de la dramatización que hicimos sobre el protocolo DNS, pues esto es igual. Cuando dos máquinas conocen el protocolo son capaces de trabajar conjuntamente pero si una usa un protocolo extraño pues le costará encontrar otras máquinas con la que trabajar. Un símil entre protocolo y cerrado y abierto con la realidad sería el siguiente. Quieres aprender un idioma, vas a una academia donde te dan unas clases pero tienes la posibilidad de ir a la biblioteca pública y coger libros para aprenderlo mejor. También puedes buscar por internet e incluso preguntar a gente que gustosamente te ayudará (siempre y cuando no seas muy cansino claro <img src='http://www.congdegnu.es/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ). En resumidas cuentas, nadie te pondrá trabas a que aprendas ese idioma.</p>
<p>En cambio, si quieres aprender un idioma pero para conocerlo tienes que entrar en una secta y no hay ningún libro ni persona fuera de esa secta que habla sobre el idioma pues lo vas a tener bastante complicado. Esto equivale a un protocolo cerrado.</p>
<p>Quizá te ronda por la cabeza que ¿Quién en su sano juicio querría usar un protocolo cerrado? Pues en su sano juicio supongo que muy pocos pero el problema es que los usamos sin saberlo (la ignorancia, ese gran arma de los &#8220;poderosos&#8221;). Como estamos hablando de protocolos de mensajería instantánea os voy a poner un ejemplo de este tipo que seguro que conoces: MSN Messenger. Es un protocolo cerrado y sucio. También si te hablo de uno que usa XMPP igual te suena, GTalk. Podría iniciar un flame war diciendo lo malos que son los de Microsoft y lo bien que me caen los de Google pero eso ya para otro día.</p>
<p>Una duda que puede surgir es que si el protocolo de MSN Messenger es cerrado, ¿Cómo hay tantos programas libres ajenos a la secta que lo &#8220;entienden&#8221;? En informática esto se llama ingeniería inversa. Consiste en capturar mensajes y volver a enviarlo. observar qué pasa y al cabo de muchas horas ir comprendiendo cómo funciona. Un símil sería como irte a china sin saber nada de chino. Con el tiempo acabarás aprendiendo el idioma (que remedio) relacionando palabras que dicen con acciones que hacen luego. Nunca aprenderás chino como si te explicaran la gramática y todo eso, pero acabarás aprendiendo lo suficiente como para manejarte. Y con el ejemplo de la secta, como un día se le ocurra cambiar cosas del idioma nos han fastidiado. Nos toca volver a hacer todo el trabajo.</p>
<p>Requiere de mucho más tiempo comprender un protocolo de esos que hacer un programa que use el protocolo. De ahí que sea tan importante que el protocolo sea libre, que a nadie le gusta perder el tiempo.</p>
<p>Todo esto de poner facilidades para que los demás te entiendan puede llevar a otra cuestión. ¿Y si no quiero que nadie sepa lo que estoy comunicando? Por ejemplo, yo no quiero que sepan lo que hablo con la gente. Me alegra que me hagas esa pregunta <img src='http://www.congdegnu.es/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
Eso no forma parte del protocolo sino del canal. No voy a explicarlo porque no viene a cuento pero la solución es usar un canal seguro que en resumidas cuentas en cifrar la información. He de decir que el que un protocolo sea cerrado no es sinónimo (ni mucho menos) de seguridad. La información viaja intacta. Mientras el protocolo cerrado de microsoft es totalmente inseguro (ya que no va cifrado) el xmpp siendo libre es totalmente seguro ya que sí va cifrado. Esto lo demostramos un día cuando crackeamos nuestro wifi y sabíamos lo que hablaba por el messenger. Eso con xmpp no hubiera sido posible (cuantas referencias estoy haciendo hoy). Creo que han quedado explicados los puntos &#8220;Qué es&#8221; y &#8220;Por qué usarlo&#8221;. Pasemos a centrarnos en XMPP.</p>
<p>Cómo funciona XMPP</p>
<p>XMPP funciona a base de enviar XML. XML es una manera estándar de enviar información y que a día de hoy está hasta en la sopa aunque, de nuevo, no nos demos cuenta. Por ejemplo, el HTML (lo de las páginas web) es XML. Voy a explicar brevemente como va esto del XML (es realmente sencillo)<br />
<code><br />
&lt;cosa atributo1=valor1&gt;Cotenido&lt;/cosa&gt;<br />
</code><br />
la palabra &#8220;cosa&#8221; se denomina tag e indica el tipo de elemento que es. El resto de campos son bastantes intuitivos. Un ejemplo real de mensaje XMPP sería el siguiente<br />
<code><br />
&lt;message from="maxpowel@wixet.com" to="prueba@wixet.com"&gt;Ey tío que pasaaaa&lt;/message&gt;<br />
</code><br />
Sobra explicarlo pero esto envía un mensaje de maxpowel@wixet.com a prueba@wixet.com con el contenido &#8220;Ey tío que pasaaa&#8221;</p>
<p>En XMPP existen 3 tipos de elementos diferentes: message, presence e iq<br />
<strong>Message: </strong>Son los mensajes que se envían los usuarios entre sí.<br />
Presence: Los eventos de presencia de usuarios. Cuando se desconectan o conectan, cuando cambian de estado, de nombre&#8230;.<br />
Iq: Sirve para enviar comandos internos. Por ejemplo para iniciar una nueva conexión, informar de errores y cosas que no tienen nada que ver con los usuarios.</p>
<p>Pero antes de poder conectarte te tienes que conectar, verdad? Eso se hace al principio (qué listo) y en este proceso el cliente y el servidor negocian a través del protocolo cómo se sincronizarán, el cifrado que usarán y todas esas cosas.</p>
<p>En el título comentaba algo de BOSH. Eso de BOSH es una pasarela para poder establecer una conexión a un servidor XMPP desde HTTP. Esto es necesario por lo siguiente.<br />
XMPP es una conexión persistente. Se mantiene la conexión desde el principio hasta el final, y mientras se envían todos los mensajes que quieran.<br />
HTTP es una conexión de petición y respuesta. Esto es que tu te conectas y haces una petición. El servidor responde y se termina la conexión.</p>
<p>Con este método haces una petición y estas a la espera de que el servidor responda y en ese momento lanzas otra. Hay otro método (polling) que consiste en enviar muchas peticiones cortitas (cada medio segundo por ejemplo) pero personalmente prefiero la primera.<br />
Esta tarea requiere de una pequeña sincronización. Esta sincronización se hace mediante un numerito que le pasamos en cada petición y que se debe ir incrementando después de cada respuesta NO vacía, luego explico que es eso.</p>
<p>Siempre debemos tener una conexión abierta hacia el servidor. Podemos conectarnos al servidor de dos maneras:<br />
Enviando una petición nuestra (por ejemplo queremos enviar un mensaje a un contacto) o escuchando (nos quedamos escuchando al servidor hasta que nos diga algo).<br />
Sólo podemos tener dos conexiones abiertas y en caso de abrir una tercera o un numero de sincronización incrementado incorrectamente provocada que finalice la sesión (el servidor nos llama violadores y nos manda a paseo).<br />
Voy a explicar qué es un mensaje vacío y la relación que tiene con el número de sincronización. El numerito en cuestión se llama RID y debe ser generado de manera aleatoria. Es importante tener un buen algoritmo que genere un número lo más difícil posible de precedir ya que teniendo el RID junto al SID (un numero que identifica la conexión y se crea en ese momento) alguien podría hacerse pasar por nosotros ya que si envias un SID y un RID correcto la cosa va a funcionar (al ser por HTTP el servidor no tiene manera de conocer de dónde viene la petición). Describo un ejemplo.</p>
<p>Inicio sesión y estoy a la escucha de un mensaje del servidor. Estoy usando una conexión.<br />
Decido que a mi amigo &#8220;Prueba&#8221; quiero saludarle así que le escribo &#8220;Hola&#8221;. Esto genera un objeto message que se envía al servidor. En este instante estoy usando dos conexiones. Si se me ocurre enviar otra cosa el servidor nos cerrará sesión y adiós muy buenas. Lo que se debe hacer en este momento es cerrar la primera conexión, que devolverá un mensaje vacío. Entonces NO tenemos que incrementar el RID.<br />
Nuestro amigo Prueba nos responde diciendo &#8220;Eyyyy&#8221; y el servidor nos lo hace saber, creando un message y a través de la conexión creada nos lo envía. Como dije antes, en HTTP una vez recibida la respuesta se finaliza la conexión. En este momento debemos lanzar una petición para escuchar pero como sí recibimos un mensaje incrementamos el RID. Si no lo hacemos ya sabes lo que pasa. Remarco que mensaje no es lo mismo que message. Message es un tipo de mensaje como también lo es presence o iq.</p>
<p>Esa es la parte complicadilla. Conceptualmente no es complejo ni mucho menos pero crear un algoritmo pues ya tiene algo de tela. Si os interesa saber más hice un plugin jQuery (en javascript) y que en apenas 200 líneas es capaz de manejar ese protocolo y facilitar manejadores de eventos. Puedes ver un poco de documentación en <a href="http://blog.wixet.com/2010/04/documentacion-de-bliblioteca-xmpp-para-jquery"></p>
<p>La página oficial donde está todo documentado es http://xmpp.org/ pero está todo en inglés. Yo he intentado explicarlo en castellano, pues hay mucha gente que no se lleva muy bien con el inglés e igual esto ayuda.</p>


<p>Entradas relacionadas:<ol><li><a href='http://www.congdegnu.es/2009/01/29/como-configurar-google-talk-en-pidgin/' rel='bookmark' title='Permanent Link: Como configurar Google Talk en pidgin'>Como configurar Google Talk en pidgin</a> <small> Pidgin, para el que no lo conozca, es un...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.congdegnu.es/2010/04/10/que-porque-como-xmpp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GPodcast 2.12 – Jugando al starcraft 2 en ubuntu con xmmp bajo el solaris</title>
		<link>http://www.congdegnu.es/2010/04/09/gpodcast-2-12-jugando-al-starcraft-2-en-ubuntu-con-xmmp-bajo-el-solaris/</link>
		<comments>http://www.congdegnu.es/2010/04/09/gpodcast-2-12-jugando-al-starcraft-2-en-ubuntu-con-xmmp-bajo-el-solaris/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 16:57:37 +0000</pubDate>
		<dc:creator>DiCrEn</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[gpodcast]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[starcraft]]></category>
		<category><![CDATA[sun]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wixet]]></category>
		<category><![CDATA[xmmp]]></category>

		<guid isPermaLink="false">http://www.congdegnu.es/?p=1170</guid>
		<description><![CDATA[
Por fin volvemos a grabar, esta vez con un 50% mas de spam sobre wixet!El sonido es algo malo, además que esta vez no estamos juntos, si no que Álvaro graba por skype, pero al menos hemos vuelto!
Hablamos de:
- NVidia abandona el desarrollo del driver xf86-video-nv
- Solaris 10 ya no es gratuito
- Bimbo ya usa [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Portada" src="http://www.congdegnu.es/portada2.png" alt="" width="386" height="386" /></p>
<p>Por fin volvemos a grabar, esta vez con un 50% mas de spam sobre <a href="http://www.wixet.com">wixet</a>!El sonido es algo malo, además que esta vez no estamos juntos, si no que Álvaro graba por skype, pero al menos hemos vuelto!</p>
<p><strong>Hablamos de</strong>:</p>
<p>- <a href="http://www.vivalinux.com.ar/desktop/nvidia-mata-a-xf86-video-nv">NVidia abandona el desarrollo del driver xf86-video-nv</a></p>
<p>- <a href="http://www.vivalinux.com.ar/distros/opensolaris-2010.03-demorado">Solaris 10 ya no es gratuito</a></p>
<p>- Bimbo ya usa ubuntu!</p>
<p>- Probamos la beta del starcraft II</p>
<p>- El protocolo XMMP</p>
<p><strong>Promos:</strong></p>
<p>- <a href="http://gravina82.blogspot.com/">Gravina82</a></p>
<p>- <a href="http://esenciadepodcast.com/">Esencia de podcast</a></p>
<p>- <a href="http://maquinadeseries.blogspot.com/">La maquina de series</a></p>
<p>- <a href="http://buhardillapodcast.blogspot.com/">La Buhardilla 2.0</a></p>
<p><strong>Música:</strong></p>
<p><a href="http://www.jamendo.com/es/track/143782">Gold Fever</a> de <a href="http://www.jamendo.com/es/artist/The_Wind_Whistles">The Wind Whistles</a></p>


<p>Entradas relacionadas:<ol><li><a href='http://www.congdegnu.es/2009/02/07/ubuntu-vs-windows-7-fight/' rel='bookmark' title='Permanent Link: Ubuntu vs Windows 7. fight!'>Ubuntu vs Windows 7. fight!</a> <small>Hace unos días, en tuxradar, realizaron un analisis entre el...</small></li><li><a href='http://www.congdegnu.es/2009/02/20/ubuntu-kk/' rel='bookmark' title='Permanent Link: Ubuntu kk'>Ubuntu kk</a> <small>No, no estoy calificando a ubuntu como excremento el lenguaje...</small></li><li><a href='http://www.congdegnu.es/2009/03/23/gpodcast-14-bimbo-y-pizza/' rel='bookmark' title='Permanent Link: Gpodcast 1.4 &#8211; Bimbo y pizza'>Gpodcast 1.4 &#8211; Bimbo y pizza</a> <small> Volvemos &#8230; cada día con mas retraso, el 1.3...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.congdegnu.es/2010/04/09/gpodcast-2-12-jugando-al-starcraft-2-en-ubuntu-con-xmmp-bajo-el-solaris/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
			<enclosure url="http://blip.tv/file/get/Congdegnu-GPodcast212JugandoAlStarcraft2EnUbuntuConXmmpBajoEl595.mp3" length="54925994" type="audio/mpeg" />
<itunes:duration>1:16:00</itunes:duration>
		<itunes:subtitle>Por fin volvemos a grabar, esta vez con un 50% mas de spam sobre wixet!El sonido es algo malo, ademaacute;s que esta vez no estamos ...</itunes:subtitle>
		<itunes:summary>Por fin volvemos a grabar, esta vez con un 50% mas de spam sobre wixet!El sonido es algo malo, ademaacute;s que esta vez no estamos juntos, si no que Aacute;lvaro graba por skype, pero al menos hemos vuelto!

Hablamos de:

- NVidia abandona el desarrollo del driver xf86-video-nv

- Solaris 10 ya no es gratuito

- Bimbo ya usa ubuntu!

- Probamos la beta del starcraft II

- El protocolo XMMP

Promos:

- Gravina82

- Esencia de podcast

- La maquina de series

- La Buhardilla 2.0

Muacute;sica:

Gold Fever de The Wind Whistles

Entradas relacionadas:Ubuntu vs Windows 7. fight! Hace unos diacute;as, en tuxradar, realizaron un analisis entre el...Ubuntu kk No, no estoy calificando a ubuntu como excremento el lenguaje...Gpodcast 1.4 #8211; Bimbo y pizza  Volvemos #8230; cada diacute;a con mas retraso, el 1.3...</itunes:summary>
		<itunes:keywords>Podcast</itunes:keywords>
		<itunes:author>congdegnu@gmail.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>GPodcast 2.11 Aniversario Fail</title>
		<link>http://www.congdegnu.es/2010/02/27/gpodcast-2-11-aniversario-fail/</link>
		<comments>http://www.congdegnu.es/2010/02/27/gpodcast-2-11-aniversario-fail/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 16:30:07 +0000</pubDate>
		<dc:creator>DiCrEn</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[gpodcast]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.congdegnu.es/?p=1162</guid>
		<description><![CDATA[
En este gpodcast la segunda parte que grabamos fue brutal, invitados de lujo, música, los mejores chistes&#8230; pero lamentablemente se perdió y no hemos podido recuperarlo, a si que os traemos la primera parte, lo que pudimos recuperar. Lo sentimos mucho.
En este caso hablamos de el problema con los codecs en html5


Entradas relacionadas:Gpodcast 1.5 Epílogo [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Portada" src="http://www.congdegnu.es/portada2.png" alt="" width="386" height="386" /></p>
<p>En este gpodcast la segunda parte que grabamos fue brutal, invitados de lujo, música, los mejores chistes&#8230; pero lamentablemente se perdió y no hemos podido recuperarlo, a si que os traemos la primera parte, lo que pudimos recuperar. Lo sentimos mucho.</p>
<p>En este caso hablamos de el problema con los codecs en html5</p>


<p>Entradas relacionadas:<ol><li><a href='http://www.congdegnu.es/2009/04/14/gpodcast-15-epilogo-fin-de-temporada/' rel='bookmark' title='Permanent Link: Gpodcast 1.5 Epílogo &#8211; Fin de temporada'>Gpodcast 1.5 Epílogo &#8211; Fin de temporada</a> <small> No! no nos hemos vuelto locos, este podcast es...</small></li><li><a href='http://www.congdegnu.es/2009/04/06/gpodcast-especial-1/' rel='bookmark' title='Permanent Link: Gpodcast Especial #1'>Gpodcast Especial #1</a> <small> Tenemos un GPodcast especial, con solo dos secciones, pero...</small></li><li><a href='http://www.congdegnu.es/2009/10/20/gpodcast-2-8-gpodcast-en-vinagre/' rel='bookmark' title='Permanent Link: GPodcast 2.8 &#8211; &#8220;GPodcast en vinagre&#8221;'>GPodcast 2.8 &#8211; &#8220;GPodcast en vinagre&#8221;</a> <small> Casi un mes mas tarde del último GPodcast volvemos,...</small></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.congdegnu.es/2010/02/27/gpodcast-2-11-aniversario-fail/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
			<enclosure url="http://blip.tv/file/get/Congdegnu-GPodcast211AniversarioFail819.mp3" length="17286748" type="audio/mpeg" />
<itunes:duration>24:00</itunes:duration>
		<itunes:subtitle>En este gpodcast la segunda parte que grabamos fue brutal, invitados de lujo, muacute;sica, los mejores chistes... pero lamentablemente se perdioacute; y no hemos podido ...</itunes:subtitle>
		<itunes:summary>En este gpodcast la segunda parte que grabamos fue brutal, invitados de lujo, muacute;sica, los mejores chistes... pero lamentablemente se perdioacute; y no hemos podido recuperarlo, a si que os traemos la primera parte, lo que pudimos recuperar. Lo sentimos mucho.

En este caso hablamos de el problema con los codecs en html5

Entradas relacionadas:Gpodcast 1.5 Epiacute;logo #8211; Fin de temporada  No! no nos hemos vuelto locos, este podcast es...Gpodcast Especial #1  Tenemos un GPodcast especial, con solo dos secciones, pero...GPodcast 2.8 #8211; #8220;GPodcast en vinagre#8221;  Casi un mes mas tarde del uacute;ltimo GPodcast volvemos,...</itunes:summary>
		<itunes:keywords>Podcast</itunes:keywords>
		<itunes:author>congdegnu@gmail.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
	</channel>
</rss>
