<?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>Siedrix &#187; Chrome</title>
	<atom:link href="http://siedrix.com/category/programacion/chrome/feed" rel="self" type="application/rss+xml" />
	<link>http://siedrix.com</link>
	<description>La vida como la vive un loki</description>
	<lastBuildDate>Fri, 27 Jan 2012 19:21:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Chrome buffer</title>
		<link>http://siedrix.com/chrome-buffer</link>
		<comments>http://siedrix.com/chrome-buffer#comments</comments>
		<pubDate>Fri, 27 Jan 2012 04:18:08 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1310</guid>
		<description><![CDATA[El martes en la noche, en un rato de ocio, creé una extensión de chrome relativamente sencilla y con un caso de uso relativamente particular. El caso de uso es que en mi trabajo requiero pasar datos de una página (datos o estilo) a otra página. Ya sea para pasar datos de producción a local ...]]></description>
			<content:encoded><![CDATA[<p>El martes en la noche, en un rato de ocio, creé una extensión de chrome relativamente sencilla y con un caso de uso relativamente particular.</p>
<p>El caso de uso es que en mi trabajo requiero pasar datos de una página (datos o estilo) a otra página. Ya sea para pasar datos de producción a local para resolver un bug, pasar información de un backup a un sitio que se rompió, etc.</p>
<p>Fuera de mi trabajo se me ocurre que podría usarlo para loggear request de ajax. Guardar el estado de datos en distintos momentos para checar que cambio y mejorar la idea de un bookmarklet para ejecutar javascript en un página.</p>
<p>Esto se puede realizar en 3 lugares, en Mongo, Ruby o Javascript. Dado que Mongo y Ruby son ambientes relativamente nuevos para mi y generalmente implican saltar de un server a otro, mover distintos archivos de lugar en distintas terminales y pasar archivos por SSH, decidí resolver el problema en Javascript.</p>
<p>Exiten distintas maneras de hacer esto, pero había una restricción más que me interesaba tener. Quería una función en la consola que siempre pudiera usar en cualquier página, así que la solución por la que opté fue una Chrome Extension, además tengo una background page que sirve como server y no requiere conexión a un server remoto o algo más instalado en mi computadora.</p>
<p>Las extensiones de Chrome generalmente no permiten acceder el contexto de la página, pero si el dom, por lo cual tuve que hacer un poco de JavascriptFu con estas lineas para tenerlo.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw2">var</span> s <span class="sy0">=</span> document.<span class="me1">createElement</span><span class="br0">&#40;</span><span class="st0">'script'</span><span class="br0">&#41;</span><span class="sy0">;</span>
s.<span class="me1">innerHTML</span> <span class="sy0">=</span> <span class="st0">'window.Buffer = '</span> <span class="sy0">+</span> Buffer.<span class="me1">toString</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">'; window.buffer = new Buffer();'</span><span class="sy0">;</span>
document.<span class="me1">body</span>.<span class="me1">appendChild</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Y un poco de guardar datos en el dom para ser leídos por la extensión y el browser. Al final del día quedó una primera versión que resulve mis problemas.</p>
<p>En cualquier momento puedo abrir la consola (F12), teclear buffer.store, pasarle una etiqueta con la que podré requerir el valor después y un objeto, pasar a otra página teclear buffer.fetch la etiqueta anterior y recibir el valor, ya sea en forma de callback o llamando buffer.lastFetch.</p>
<p>En caso de que alguien tenga un interés de usar la extensión da click <a href="https://github.com/Siedrix/Chrome-Buffer" target="_blank">aqui</a>, si tienes algún feature request puedes dejarlo en los comentarios y si tienes algo que desees que corrija agregalo en los issues de github.</p>
<p>Un par de conclusiones:<br />
1.- Me agrada mucho la idea de tener una serie de herramientas extra corriendo en mi consola, debido a la cantidad de tiempo que paso en el browser y lo omnipresente que es hoy en día. Me quede con ganas de implementar unas cuantas funciones sobre esta extensión, como salvar un objeto a un archivo o poderlo mandar por mail.</p>
<p>Tengo la idea de crear un chat service que corra dentro de la consola. Para lo cual debo de mejorar el formato en que corre el pasar objetos y eventos de un contexto a otro.</p>
<p>2.- Chrome decide que las extensiones corran en un contexto aislado por seguridad de los usuarios y por facilidad para los desarrolladores pero creo que en el lado de seguridad todavia no estan haciendo un gran trabajo.</p>
<p>Si de empezar esta extensión sabía lo fácil que era crear un key logger como parte de una extensión y ahora se que haciendo un proceso similar a lo realizado en esta extensión se puede robar cookies de manera sencilla.</p>
<p>Lo cual me da un poco de paranoia de tener extensiones instaladas ya que tienes mucho acceso y mucho poder sobre como pueden manipular el comportamiento del browser. Por lo cual requiero darle una hojeada al código o tener confianza en el author del código.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-posterous">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=61&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Chrome+buffer&amp;link=http://siedrix.com/chrome-buffer&amp;notes=El%20martes%20en%20la%20noche%2C%20en%20un%20rato%20de%20ocio%2C%20cre%C3%A9%20una%20extensi%C3%B3n%20de%20chrome%20relativamente%20sencilla%20y%20con%20un%20caso%20de%20uso%20relativamente%20particular.%0D%0A%0D%0AEl%20caso%20de%20uso%20es%20que%20en%20mi%20trabajo%20requiero%20pasar%20datos%20de%20una%20p%C3%A1gina%20%28datos%20o%20estilo%29%20a%20otra%20p%C3%A1gina.%20Ya%20sea%20para%20pasar%20datos%20de%20producci%C3%B3n%20a%20local%20p&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul><div style="clear: both;"></div><div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div style="clear: both;"></div></div>

]]></content:encoded>
			<wfw:commentRss>http://siedrix.com/chrome-buffer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chritter</title>
		<link>http://siedrix.com/chritter</link>
		<comments>http://siedrix.com/chritter#comments</comments>
		<pubDate>Wed, 19 May 2010 20:29:46 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=991</guid>
		<description><![CDATA[Como construir una extensión de Chrome/ Cliente de Twitter en 7 minutos 20 segundos.]]></description>
			<content:encoded><![CDATA[<p>Como parte de mi procrastinar por los videos de Google hoy que es el Google I/O, encontré este video de como construir un cliente de Twitter en &amp; minutos 20 segundos.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="540" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/e3McMaHvlBY&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="540" height="385" src="http://www.youtube.com/v/e3McMaHvlBY&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Extrañamente en esta pagina que es la original donde encontré el <a href="http://www.youtube.com/googledevelopers#p/c/CA101D6A85FE9D4B" target="_blank">video </a>no permite embederlo, tuve que encontrarlo como video normal. Curioseen los otros video, están muy buenos.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-posterous">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=61&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Chritter&amp;link=http://siedrix.com/chritter&amp;notes=Como%20construir%20una%20extensi%C3%B3n%20de%20Chrome%2F%20Cliente%20de%20Twitter%20en%207%20minutos%2020%20segundos.&amp;short_link=&amp;shortener=tinyurl&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul><div style="clear: both;"></div><div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div style="clear: both;"></div></div>

]]></content:encoded>
			<wfw:commentRss>http://siedrix.com/chritter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

