<?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>2E5E &#187; ibuddy</title>
	<atom:link href="http://11870.com/2e5e/tag/ibuddy/feed/" rel="self" type="application/rss+xml" />
	<link>http://11870.com/2e5e</link>
	<description>blog del equipo de tecnología de 11870.com</description>
	<lastBuildDate>Thu, 09 Feb 2012 09:44:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>pybuddy: hacking ambient devices (for fun &amp; profit)</title>
		<link>http://11870.com/2e5e/2008/11/21/pybuddy-hacking-ambient-devices/</link>
		<comments>http://11870.com/2e5e/2008/11/21/pybuddy-hacking-ambient-devices/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 11:22:06 +0000</pubDate>
		<dc:creator>peralta</dc:creator>
				<category><![CDATA[hacking]]></category>
		<category><![CDATA[ambient devices]]></category>
		<category><![CDATA[ibuddy]]></category>
		<category><![CDATA[pybuddy]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://2e5e.wordpress.com/?p=34</guid>
		<description><![CDATA[Aquellos que sigáis nuestro blog corporativo ya habréis visto a nuestro i-buddy tuneado. Ese post no tenía mucho detalle técnico, así que aquí vamos a dar alguna pista más. En realidad todo empezó en El corte inglés. Sí, en serio. Un buen amigo y geek, luna, y un servidor estaban echando un vistazo a la [...]]]></description>
			<content:encoded><![CDATA[<p>Aquellos que sigáis nuestro <a href="http://11870.com/blog/">blog corporativo</a> ya habréis visto a nuestro <a href="http://www.i-buddy.com/">i-buddy</a> <em>tuneado</em>. <a href="http://11870.com/blog/i-buddy-en-11870com/">Ese post</a> no tenía mucho detalle técnico, así que aquí vamos a dar alguna pista más.</p>
<p>En realidad todo empezó en El corte inglés. Sí, en serio. Un buen amigo y <em>geek</em>, <a href="http://socios.aditel.org/~luna/">luna</a>, y un servidor estaban echando un vistazo a la sección de informática cuando nos encontramos con el i-buddy. Y nos dijimos: seguro que se puede hacer algo, si alguien no lo ha hecho ya. Una semana más tarde, teníamos un juguete nuevo cada uno y un <a href="http://cuntography.com/blog/?p=17">código del que partir</a>. El fruto del cacharreo se llama <a href="http://code.google.com/p/pybuddy">pybuddy</a>: un demonio escrito en python que atiende a comandos enviados vía UDP por red.</p>
<p>Esto significa que una vez lanzado el demonio podemos controlar el buddy con comandos tal que así:</p>
<div style="border:1px solid #000;background:#999;color:#000;padding:1em;">
echo &#8220;DEMO&#8221; | nc -q0 -u localhost 8888
</div>
<p>En principio, <a href="http://code.google.com/p/pybuddy/wiki/Commands">todos los comandos</a> se han implementado con lo que el juego ahora viene de hacer combinaciones con ellos. Por ejemplo, en el <a href="http://www.vimeo.com/2178841">vídeo explicativo</a> usamos este archivo de comandos y lo lanzamos así:</p>
<div style="border:1px solid #000;background:#999;color:#000;padding:1em;">
cat commands | nc -q0 -u localhost 8888
</div>
<p>Como se puede ver, el <em>timing</em> fue perfecto ;)</p>
<p>En la oficina, de vez en cuando a alguien le dar por juguetear con el bicho que está enchufado a mi ordenador y recibe peticiones de cualquier ordenador de la red local, con lo que suele estar bastante agitado. Pero también lo tenemos recibiendo información importante de lo que ocurre en nuestras máquinas en producción, con el <em>script</em> que se curró Pablo en un momento: <a href="http://code.google.com/p/pybuddy/source/browse/trunk/contrib/access-log-client">access-log-client</a>.</p>
<p>El procedimiento de instalación no está documentado por ahora, pero es bastante sencillo:</p>
<ol>
<li>Hacemos un <a href="http://code.google.com/p/pybuddy/source/checkout">checkout del proyecto</a>: <tt>svn checkout http://pybuddy.googlecode.com/svn/trunk/ pybuddy-read-only</tt></li>
<li>Editamos el fichero de configuración <tt>pybuddy.cfg</tt>, si queremos cambiar alguno de los parámetros por defecto (tipo de buddy, usuario con el que correr, logging, etc).</li>
<li>Lanzamos el demonio, como <tt>root</tt> (luego cambiará de usuario según lo configurado): <tt>sudo src/pybuddy-daemon.py pybuddy.cfg</tt></li>
</ol>
<div style="border:1px solid #000;background:#999;color:#000;padding:1em;">
$ sudo src/pybuddy-daemon.py<br />
2008-11-21 12:15:07,662 INFO     Read config file: /usr/local/etc/pybuddy.cfg<br />
2008-11-21 12:15:07,662 INFO     Starting search&#8230;<br />
2008-11-21 12:15:07,808 INFO     ibuddy found! vend: 4400   prod: 1<br />
2008-11-21 12:15:07,808 INFO     endpoint<br />
2008-11-21 12:15:08,424 INFO     Starting daemon&#8230;<br />
$
</div>
<p>A partir de este momento, el buddy está listo para recibir comandos. A ver quién es el primero que se curra un plugin para <a href="http://www.pidgin.im">Pidgin</a>, <a href="http://www.gajim.org">gajim</a> o similar.</p>
<p>Happy hacking.</p>
]]></content:encoded>
			<wfw:commentRss>http://11870.com/2e5e/2008/11/21/pybuddy-hacking-ambient-devices/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>pybuddy: hacking ambient devices (for fun &amp; profit)</title>
		<link>http://11870.com/2e5e/2008/11/21/pybuddy-hacking-ambient-devices-2/</link>
		<comments>http://11870.com/2e5e/2008/11/21/pybuddy-hacking-ambient-devices-2/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 11:22:06 +0000</pubDate>
		<dc:creator>Juan Vicente Herrera</dc:creator>
				<category><![CDATA[hacking]]></category>
		<category><![CDATA[ambient devices]]></category>
		<category><![CDATA[ibuddy]]></category>
		<category><![CDATA[pybuddy]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://2e5e.wordpress.com/?p=34</guid>
		<description><![CDATA[Aquellos que sigáis nuestro blog corporativo ya habréis visto a nuestro i-buddy tuneado. Ese post no tenía mucho detalle técnico, así que aquí vamos a dar alguna pista más. En realidad todo empezó en El corte inglés. Sí, en serio. Un buen amigo y geek, luna, y un servidor estaban echando un vistazo a la [...]]]></description>
			<content:encoded><![CDATA[<p>Aquellos que sigáis nuestro <a href="http://11870.com/blog/">blog corporativo</a> ya habréis visto a nuestro <a href="http://www.i-buddy.com/">i-buddy</a> <em>tuneado</em>. <a href="http://11870.com/blog/i-buddy-en-11870com/">Ese post</a> no tenía mucho detalle técnico, así que aquí vamos a dar alguna pista más.</p>
<p>En realidad todo empezó en El corte inglés. Sí, en serio. Un buen amigo y <em>geek</em>, <a href="http://socios.aditel.org/~luna/">luna</a>, y un servidor estaban echando un vistazo a la sección de informática cuando nos encontramos con el i-buddy. Y nos dijimos: seguro que se puede hacer algo, si alguien no lo ha hecho ya. Una semana más tarde, teníamos un juguete nuevo cada uno y un <a href="http://cuntography.com/blog/?p=17">código del que partir</a>. El fruto del cacharreo se llama <a href="http://code.google.com/p/pybuddy">pybuddy</a>: un demonio escrito en python que atiende a comandos enviados vía UDP por red.</p>
<p>Esto significa que una vez lanzado el demonio podemos controlar el buddy con comandos tal que así:</p>
<div style="border:1px solid #000;background:#999;color:#000;padding:1em;">
echo &#8220;DEMO&#8221; | nc -q0 -u localhost 8888
</div>
<p>En principio, <a href="http://code.google.com/p/pybuddy/wiki/Commands">todos los comandos</a> se han implementado con lo que el juego ahora viene de hacer combinaciones con ellos. Por ejemplo, en el <a href="http://www.vimeo.com/2178841">vídeo explicativo</a> usamos este archivo de comandos y lo lanzamos así:</p>
<div style="border:1px solid #000;background:#999;color:#000;padding:1em;">
cat commands | nc -q0 -u localhost 8888
</div>
<p>Como se puede ver, el <em>timing</em> fue perfecto ;)</p>
<p>En la oficina, de vez en cuando a alguien le dar por juguetear con el bicho que está enchufado a mi ordenador y recibe peticiones de cualquier ordenador de la red local, con lo que suele estar bastante agitado. Pero también lo tenemos recibiendo información importante de lo que ocurre en nuestras máquinas en producción, con el <em>script</em> que se curró Pablo en un momento: <a href="http://code.google.com/p/pybuddy/source/browse/trunk/contrib/access-log-client">access-log-client</a>.</p>
<p>El procedimiento de instalación no está documentado por ahora, pero es bastante sencillo:</p>
<ol>
<li>Hacemos un <a href="http://code.google.com/p/pybuddy/source/checkout">checkout del proyecto</a>: <tt>svn checkout http://pybuddy.googlecode.com/svn/trunk/ pybuddy-read-only</tt></li>
<li>Editamos el fichero de configuración <tt>pybuddy.cfg</tt>, si queremos cambiar alguno de los parámetros por defecto (tipo de buddy, usuario con el que correr, logging, etc).</li>
<li>Lanzamos el demonio, como <tt>root</tt> (luego cambiará de usuario según lo configurado): <tt>sudo src/pybuddy-daemon.py pybuddy.cfg</tt></li>
</ol>
<div style="border:1px solid #000;background:#999;color:#000;padding:1em;">
$ sudo src/pybuddy-daemon.py<br />
2008-11-21 12:15:07,662 INFO     Read config file: /usr/local/etc/pybuddy.cfg<br />
2008-11-21 12:15:07,662 INFO     Starting search&#8230;<br />
2008-11-21 12:15:07,808 INFO     ibuddy found! vend: 4400   prod: 1<br />
2008-11-21 12:15:07,808 INFO     endpoint<br />
2008-11-21 12:15:08,424 INFO     Starting daemon&#8230;<br />
$
</div>
<p>A partir de este momento, el buddy está listo para recibir comandos. A ver quién es el primero que se curra un plugin para <a href="http://www.pidgin.im">Pidgin</a>, <a href="http://www.gajim.org">gajim</a> o similar.</p>
<p>Happy hacking.</p>
]]></content:encoded>
			<wfw:commentRss>http://11870.com/2e5e/2008/11/21/pybuddy-hacking-ambient-devices-2/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

