<?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</title>
	<atom:link href="http://siedrix.com/feed" rel="self" type="application/rss+xml" />
	<link>http://siedrix.com</link>
	<description>La vida como la vive un loki</description>
	<lastBuildDate>Fri, 23 Nov 2012 13:00:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Organizando el código de NodeJs con RequireJs</title>
		<link>http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs</link>
		<comments>http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs#comments</comments>
		<pubDate>Fri, 23 Nov 2012 13:00:19 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1327</guid>
		<description><![CDATA[Usando node con RequireJs permite generar aplicaciones grandes sin mucha complicación. Aprende como...]]></description>
			<content:encoded><![CDATA[<p>En node cada archivo es un contexto y la mayoría de las veces me perdía checando que tenía en cada archivo, que librerias necesitaba cargar y todo el código debía tener un module.exports al final asignando qué variables quería regresar. En poco tiempo todo se volvía un desmadre bastante complicado de organizar.</p>
<p>Me agrada mucho que cada archivo sea un contexto que no se tenga el problema que se tiene en el browser de variables locales, pero estructurar mis archivos era un problema. Después de un tiempo y checar varias librerías, me encontré bastante cómodo con <a href="http://requirejs.org/docs/node.html" target="_blank">RequireJs</a>.</p>
<p>La manera de usar RequireJs es bastante fácil. Primero necesitan instalarlo con</p>
<pre> > npm install requirejs</pre>
<p>Una vez que tengan esto en el root de su proyecto necesitará configurar RequireJs de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">requirejs.<span class="me1">config</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
    baseUrl<span class="sy0">:</span> <span class="st0">'modules'</span><span class="sy0">,</span>
    nodeRequire<span class="sy0">:</span> require
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Donde el base url es el folder donde tendrán todos los archivos de node.</p>
<p>Cuando generen un archivo dentro de este folder tendrán que encapsularlo de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">define<span class="br0">&#40;</span><span class="br0">&#91;</span><span class="st0">'models'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>models<span class="br0">&#41;</span><span class="br0">&#123;</span>
	<span class="co1">//Your code</span>
&nbsp;
	<span class="kw1">return</span> LoQueQuierenCompartirConElMundo<span class="sy0">;</span>	
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Usando la función define para definir un nuevo módulo de RequireJs, en un arreglo todas las dependencias que tendrán y una función que es el contexto donde crearan su módulo.</p>
<p>El resultado que tengan de la función es lo que se compartirá para ser usado por otros módulos de su aplicación y tendrán un contexto privado donde puedan generar lo que necesitan de manera sencilla. </p>
<p>Nota: Si sus módulos están dentro de varios folders necesitarán usar un string de la siguiente manera ‘PrimerFolder/SegondoFolder/NombreDelArchivo’.</p>
<p>Una vez que sus módulos estén definidos, para llamarlos usaran la función RequireJs de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">requirejs<span class="br0">&#40;</span><span class="br0">&#91;</span><span class="st0">'server'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>server<span class="br0">&#41;</span><span class="br0">&#123;</span>
	server.<span class="me1">listen</span><span class="br0">&#40;</span><span class="nu0">3000</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
	console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">'server running at http://localhost:3000'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Subí un ejemplo de un proyecto con RequireJs que tiene todo el código de este post a <a href="https://github.com/Siedrix/ejemplos/tree/master/requirejs" target="_blank">github</a> para crear una aplicación web con Express que muestra en la url ‘/’ todos los usuarios de una base de datos de couchdb, usando modelos con Resourceful.</p>
<p>Imagen por <a href="http://www.flickr.com/photos/scientificquilter/" target="_blank">Scientific Quilter</a></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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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=Organizando+el+c%C3%B3digo+de+NodeJs+con+RequireJs&amp;link=http://siedrix.com/organizando-el-codigo-de-nodejs-con-requirejs&amp;notes=Usando%20node%20con%20RequireJs%20permite%20generar%20aplicaciones%20grandes%20sin%20mucha%20complicaci%C3%B3n.%20Aprende%20como...&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/organizando-el-codigo-de-nodejs-con-requirejs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nodejs stack</title>
		<link>http://siedrix.com/nodejs-stack</link>
		<comments>http://siedrix.com/nodejs-stack#comments</comments>
		<pubDate>Mon, 19 Nov 2012 13:00:16 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1320</guid>
		<description><![CDATA[Una pequena descripcion de el stack de nodejs que utilizo mientras desarrollo y ponerlo en otra maquina.]]></description>
			<content:encoded><![CDATA[<p>En las últimas semanas he estado usando node-inspector y ha cambiado mi manera de usar node. El debugging se hace en las developer tools de chrome de manera casi tan completa como cuando desarrollo aplicaciones front end (Que son 8 horas diarias, 5 días a la semana).</p>
<p>Al lograr que pase esto he logrado dejar de depender de logs y poco a poco tener el mismo ambiente de desarrollo para el server y el browser, lo cual es una de las cosas más atractivas que promete Nodejs.</p>
<p>En los siguientes párrafos les enseñare como montar el ambiente de desarrollo que estoy usando actualmente. Se requieren usar tres librerías/herramientas de sistemas hechas en node: <a href="https://github.com/isaacs/node-supervisor" target="_blank">supervisor</a>, <a href="https://github.com/nodejitsu/forever" target="_blank">forever</a>, <a href="https://github.com/dannycoates/node-inspector" target="_blank">node-inspector</a>.</p>
<p>Empecemos con</p>
<pre>&gt; npm install -g node-inspector supervisor forever</pre>
<p>Al usar -g instalara estas librerías de manera global y no a nivel del proyecto.</p>
<p>La primera vez que usen node-inspector tendrán que reiniciar el proceso de node, para que apliquen los cambios que instala la librería.</p>
<pre>&gt; pgrep -l node
2345 node your/node/server.js

&gt; kill -s USR1 2345</pre>
<p>Nota: tendrán un número de proceso distinto</p>
<p>Ahora empecemos nuestra aplicación con:</p>
<pre>&gt; supervisor --debug app.js</pre>
<p>Con lo cual lograremos que monitore nuestros cambios y resetee el server cada vez. Después necesitamos iniciar el server de node-inspector y para ello usaremos forever, que nos permitirá que cuando node-inspector falle, se recupere de manera inmediata.</p>
<pre>&gt; which node-inspector
/usr/local/bin/node-inspector

&gt; forever /usr/local/bin/node-inspector --web-port=9999</pre>
<p>Solo necesitas abrir un tab en localhost:9000 y un tab con tu aplicación. Ahora en tu código puedes poner debugger en tu código y checar todo el stack como lo harías normalmente mientras desarrollas una aplicación con javascript.</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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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=Nodejs+stack&amp;link=http://siedrix.com/nodejs-stack&amp;notes=Una%20pequena%20descripcion%20de%20el%20stack%20de%20nodejs%20que%20utilizo%20mientras%20desarrollo%20y%20ponerlo%20en%20otra%20maquina.&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/nodejs-stack/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<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>Creando librerias que funcionen en Nodejs y el browser</title>
		<link>http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser</link>
		<comments>http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser#comments</comments>
		<pubDate>Thu, 05 Jan 2012 04:25:59 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1301</guid>
		<description><![CDATA[En las últimas semanas me he dado a la tarea de migrar un par de librerías que tenemos en la chamba a Node para tener el mismo estilo de programación en el browser como en Node. Estas 2 librerías son Neon y Tellurium. He descubierto que es un proceso sencillo y estaré buscando maneras de hacerlo más estético a como ...]]></description>
			<content:encoded><![CDATA[<p>En las últimas semanas me he dado a la tarea de migrar un par de librerías que tenemos en la chamba a Node para tener el mismo estilo de programación en el browser como en Node. Estas 2 librerías son <a title="Neon" href="https://github.com/azendal/neon" target="_blank">Neon</a> y <a href="https://github.com/Siedrix/tellurium" target="_blank">Tellurium</a>.</p>
<p>He descubierto que es un proceso sencillo y estaré buscando maneras de hacerlo más estético a como lo tengo ahora.</p>
<p>El primer paso para migrar una librería es incluir toda la librería en una función que sea invocada inmediatamente. Hay varios patrones para esto, chequen este <a href="http://benalman.com/news/2010/11/immediately-invoked-function-expression/" target="_blank">link</a> para más información sobre funciones invocadas inmediatamente.</p>
<p>Esto sucede para homogenizar el contexto global de los 2 ambientes. En el browser nos interesa trabajar con window y en node nos interesa trabajar con exports.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="br0">&#40;</span><span class="kw2">function</span> <span class="br0">&#40;</span>global<span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
<span class="br0">&#125;</span><span class="br0">&#40;</span><span class="kw1">typeof</span> window  <span class="sy0">===</span> <span class="st0">'undefined'</span> <span class="sy0">?</span> exports <span class="sy0">:</span> window<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>El siguiente paso implica cargar todas las dependencias que utilizaremos en nuestras librerías, en este caso tenemos que hacerlo de manera distinta en el browser que en node. Por lo cual preguntaremos si existe require para cargar librerias en node de la siguiente manera</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw1">typeof</span> require <span class="sy0">!==</span> <span class="st0">'undefined'</span></pre></div></div>

<p>Y en caso de no existir la función require, asumiremos que ya exiten las dependencias en nuestro browser. Como ejemplo está este código donde cargamos Neon en Tellurium</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw1">if</span><span class="br0">&#40;</span><span class="kw1">typeof</span> require <span class="sy0">!==</span> <span class="st0">'undefined'</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
    <span class="kw2">var</span> Neon <span class="sy0">=</span> require<span class="br0">&#40;</span><span class="st0">'./vendor/neon/neon.js'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw2">var</span> Module <span class="sy0">=</span> Neon.<span class="me1">Module</span><span class="sy0">;</span>
    <span class="kw2">var</span> <span class="kw2">Class</span> <span class="sy0">=</span> Neon.<span class="kw2">Class</span><span class="sy0">;</span>
    <span class="kw2">var</span> Interface <span class="sy0">=</span> Neon.<span class="me1">Interface</span><span class="sy0">;</span>
&nbsp;
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span>
    <span class="kw2">var</span> Module <span class="sy0">=</span> global.<span class="me1">Module</span><span class="sy0">;</span>
    <span class="kw2">var</span> <span class="kw2">Class</span> <span class="sy0">=</span> global.<span class="kw2">Class</span><span class="sy0">;</span>
    <span class="kw2">var</span> Interface <span class="sy0">=</span> global.<span class="me1">Interface</span><span class="sy0">;</span>    
<span class="br0">&#125;</span></pre></div></div>

<p>El último paso es exponer nuestra libería al ambiente global para que pueda ser usada por otros módulos.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">global.<span class="me1">Tellurium</span> <span class="sy0">=</span> Tellurium<span class="sy0">;</span></pre></div></div>

<p>Como parte de mis futuros experimentos para realizar esto, se incluye checar correr requirejs en node y probar cómo funciona. Para más información chequen este <a href="http://requirejs.org/docs/node.html" target="_blank">artículo</a>.</p>
<p>Les informaré como me va.</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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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=Creando+librerias+que+funcionen+en+Nodejs+y+el+browser&amp;link=http://siedrix.com/creando-librerias-que-funcionen-en-nodejs-y-el-browser&amp;notes=En%20las%C2%A0%C3%BAltimas%20semanas%20me%20he%20dado%C2%A0a%C2%A0la%20tarea%20de%20migrar%20un%20par%20de%20librer%C3%ADas%20que%20tenemos%20en%20la%20chamba%20a%20Node%20para%20tener%20el%20mismo%20estilo%20de%20programaci%C3%B3n%20en%20el%20browser%20como%20en%C2%A0Node.%20Estas%202%20librer%C3%ADas%20son%20Neon%20y%20Tellurium.%0D%0A%0D%0AHe%20descubierto%20que%20es%20un%20proceso%20sencillo%20y%20estar%C3%A9%C2%A0buscando%20maneras%20d&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/creando-librerias-que-funcionen-en-nodejs-y-el-browser/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como instalar Cloud9 en Ubuntu</title>
		<link>http://siedrix.com/como-instalar-cloud9-en-ubuntu</link>
		<comments>http://siedrix.com/como-instalar-cloud9-en-ubuntu#comments</comments>
		<pubDate>Wed, 21 Dec 2011 13:33:45 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1289</guid>
		<description><![CDATA[Un pequeno tutorial de como instalar Cloud9. ]]></description>
			<content:encoded><![CDATA[<p>Recientemente formateé a mi laptop para instalarle un disco de estado sólido, como parte de lo que implica, he tenido que reinstalar mi ambiente habitual de trabajo (xampp + ruby + node), instalar git + github y mi editor de texto preferido, últimamente he usado Sublime Text 2, pero en esta ocasión, decidí probar Cloud9 por segunda vez, ya que tiene muy buena interacción con Node y javascript en general. Entre sus bondades tiene JSLint por default.</p>
<p>Bien, primero instalamos node. La manera en que lo instalo es del repositirio de git, para que sea fácil de actualizar, aunque es más fácil instalarlo del tar.</p>
<blockquote><p>sudo apt-get install build-essential git-core curl libssl-dev<br />
git clone git://github.com/joyent/node<br />
git checkout v0.6.6<br />
./configure<br />
make<br />
sudo make install</p></blockquote>
<p>Pueden checar si ya tienen node corriendo</p>
<blockquote><p>node -v</p></blockquote>
<p>Recuerden que ahora node viene con NPM, por lo cual no necesitan instalarlo</p>
<blockquote><p>npm -v</p></blockquote>
<p>Para instalar Cloud9 necesitarán algunas dependencias más</p>
<blockquote><p>sudo apt-get install -y build-essential g++ curl libssl-dev apache2-utils git libxml2-dev libssl0.9.8</p></blockquote>
<p>El siguiente proceso es bajar el repositorio e inicializar los submodulos</p>
<blockquote><p>git clone git://github.com/ajaxorg/cloud9.git<br />
cd cloud9/<br />
git submodule update &#8211;init &#8211;recursive</p></blockquote>
<p>El siguiente punto es inicializarlo</p>
<blockquote><p>sudo bin/cloud9.sh -p 8080 -w /opt/lampp/htdocs/</p></blockquote>
<p>Por default corre en el puerto 3000, pero prefiero correrlo en el puerto 8080 por que el proyecto de la chamba corre en el 3000 por default y suelo correr mis módulos de node sobre lamp para probar que mis librerías corran tanto en el browser como en node.</p>
<p>Chequen <strong>bin/cloud9.sh &#8211;help</strong> para más opciones.</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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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=Como+instalar+Cloud9+en+Ubuntu&amp;link=http://siedrix.com/como-instalar-cloud9-en-ubuntu&amp;notes=Un%20pequeno%20tutorial%20de%20como%20instalar%20Cloud9.%20&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/como-instalar-cloud9-en-ubuntu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beer and Code#1</title>
		<link>http://siedrix.com/beer-and-code1</link>
		<comments>http://siedrix.com/beer-and-code1#comments</comments>
		<pubDate>Fri, 12 Aug 2011 05:20:14 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1276</guid>
		<description><![CDATA[Este escrito esta pensado para el blog del Hacker Garage, donde sera el evento, somo me gusta llevar un recopiliacion en este blog, para mas informacion chequen el blog del Hacker Garage. Gracias a <a href="http://www.twitter.com/RuyCer" target="_black">@RuyCer</a> y a <a href="http://www.twitter.com/CelesteNorth" target="_black">@CelesteNorth</a> por su ayuda a estructurarlo. Ve pláticas de gente fenomenal, escribe código y toma chela con tu ...]]></description>
			<content:encoded><![CDATA[<blockquote><p>Este escrito esta pensado para el blog del Hacker Garage, donde sera el evento, somo me gusta llevar un recopiliacion en este blog, para mas informacion chequen el blog del Hacker Garage. Gracias a <a href="http://www.twitter.com/RuyCer" target="_black">@RuyCer</a> y a <a href="http://www.twitter.com/CelesteNorth" target="_black">@CelesteNorth</a> por su ayuda a estructurarlo.</p></blockquote>
<p><strong>Ve pláticas de gente fenomenal, escribe código y toma chela con tu comunidad favorita.</strong></p>
<p>Hola! Soy Siedrix (Daniel Zavala) y he participado de varias comunidades técnicas del DF, como en organización del SuperHappyDevHouse, Hackspedition y otros eventos. También he participado de cerca con varias comunidades técnicas alrededor de México y en otras partes del mundo. En estas experiencias he oído muchas veces, de mucha gente diferente, la misma opinión:</p>
<blockquote><p>En México hay una gran comunidad y gran talento</p></blockquote>
<p>Creo que en México tenemos la dedicacion y el interés de hacer las cosas en grande. Creo también que a veces en México nos hace falta un pequeño empujón: un poco de guía en lo que queremos hacer,y hacer mas visible el gran trabajo que hemos venido realizando.</p>
<p>Hace un mes me mudé a Guadalajara, y durante este tiempo he visto muchos grupos haciendo cosas bastante interesantes. Me gustaría contribuir a los esfuerzos de los grupos que convergen en el HackerGarage, y me gustaría ayudar a generar un ambiente similar al del Hacker Dojo.</p>
<p>Para generar este ambiente que todos estamos tratando de logar de innovación, creatividad y comunidad, creo que la guía de grandes personas nos ayudaría a avanzar mas rápido. Por ejemplo, el Hacker Dojo las pláticas de personas como Rasmus Lerdorf, David Weekly, Progrium, Lee Felsenstein y muchos otros, han contribuido mucho al crecimiento de los miembros de aquella comunidad.</p>
<p>En el HackerGarage se realizan constatemente pláticas donde los miembros comparten su conocimiento. Y eso está muy, muy bien. Pero les propongo algo que complementa este esfuerzo: reunirnos en comunidad a ver la gran cantidad de contenido de calidad disponible en línea&#8211;presentaciones, cursos, seminarios&#8211;para generar un evento donde veamos al otro tipo de personas, y donde podamos platicar entre nosotros sus ideas. Platicar de tecnología, escribir código, tomar chela y esas cosas que los geeks necesitamos.</p>
<p>Esta es una idea que ya tenia pensada llevar acabo desde que vivía en el DF, pero la vida me llevó a moverme a Guadalajara, y me agrada ver que hay una comunidad igual de entusiasta con la puedo compartir este tipo de eventos. Ahora, despues de un periodo de adaptación creo que estoy listo para ayudar a la organizacion del HackerGarage y del SuperHappyDevHouse Guadalajara con los eventos que se organizan.</p>
<p>La primera sesión de Beer and Code será el próximo viernes 19 de agosto en el HackerGarage, buscando poner la siguiente plática en un proyector, programar un rato, platicar de tecnología con otros asistentes, tomar chela y relajar el estrés de la semana.</p>
<p><a href="http://www.infoq.com/presentations/Making-Apps-That-Dont-Suck">Making Apps That Dont Suck</a></p>
<p>La idea es empezar a organizar este tipo de eventos seguido, como algún día paso con los hackups en la Ciudad de México.</p>
<p>Daniel Zavala</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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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=Beer+and+Code%231&amp;link=http://siedrix.com/beer-and-code1&amp;notes=Este%20escrito%20esta%20pensado%20para%20el%20blog%20del%20Hacker%20Garage%2C%20donde%20sera%20el%20evento%2C%20somo%20me%20gusta%20llevar%20un%20recopiliacion%20en%20este%20blog%2C%20para%20mas%20informacion%20chequen%20el%20blog%20del%20Hacker%20Garage.%20Gracias%20a%20%40RuyCer%20y%20a%20%40CelesteNorth%20por%20su%20ayuda%20a%20estructurarlo.%0D%0A%0D%0AVe%20pl%C3%A1ticas%20de%20gente%20fenomenal%2C%20escribe%20c%C3&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/beer-and-code1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Segunda clase de Node.js</title>
		<link>http://siedrix.com/segunda-clase-de-nodejs</link>
		<comments>http://siedrix.com/segunda-clase-de-nodejs#comments</comments>
		<pubDate>Tue, 26 Apr 2011 06:07:59 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1268</guid>
		<description><![CDATA[El proximo Miercoles 27 a las 8pm en el hacker room tendremos la seguna clase de node donde trataremos de armar una pequeña web app donde usaremos web sockets y una base de datos sobre lo aprendido la vez pasada.]]></description>
			<content:encoded><![CDATA[<p>La cita es en el hacker room el próximo miércoles 27 de Abril a las 8pm para la plática con el interés de estar hasta las 10pm, tratare de estar desde las 6pm para ayudar con dudas de la clase pasada, instalar nodejs y tomar un chai.</p>
<p>Esta clase buscaremos hacer una pequeña web app que permita controlar que se muestra en un browser de manera remota por medio de web sockets. Estaré publicando la aplicación en DotCloud y espero que todos podamos usar la aplicación.</p>
<p>Temario:</p>
<ul>
<li>Generar un pequeño modulo que nos permita generar slides y que estas sean guardadas en una base de datos por presentación.</li>
<li>Que una página despliegue todas las slides.</li>
<li>Que en una página podamos cambiar el slide desplegado en todos los browsers que lo estén viendo.</li>
</ul>
<p>Para hacer esto usaremos:</p>
<ul>
<li>Persistencejs para manejo de información.</li>
<li>Socket.Io para usar Websockets</li>
<li>Y Express + Jade como web server</li>
</ul>
<p>Busque que la plática usara Persistance Js por que corre sobre MySql, en algún futuro me gustaría pasar a cosas como Redis o CouchDb.</p>
<p>Tratare de dar la plática en una hora, para tener de 9 a 10 para hackear un rato y agregar algunas funcionalidades extras a esta aplicación.</p>
<p>&nbsp;</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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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=Segunda+clase+de+Node.js&amp;link=http://siedrix.com/segunda-clase-de-nodejs&amp;notes=El%20proximo%20Miercoles%2027%20a%20las%208pm%20en%20el%20hacker%20room%20tendremos%20la%20seguna%20clase%20de%20node%20donde%20trataremos%20de%20armar%20una%20peque%C3%B1a%20web%20app%20donde%20usaremos%20web%20sockets%20y%20una%20base%20de%20datos%20sobre%20lo%20aprendido%20la%20vez%20pasada.&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/segunda-clase-de-nodejs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Materiales y resumen: Primera clase de Node.js</title>
		<link>http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs</link>
		<comments>http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs#comments</comments>
		<pubDate>Thu, 21 Apr 2011 21:21:05 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1256</guid>
		<description><![CDATA[En esta pagina encontraras los materiales de la primera clase de nodejs en el hacker room, tambien vota en el tema de la segunda platica.]]></description>
			<content:encoded><![CDATA[<p>El martes pasado fue la primera platica de nodejs en el hacker room y logramos muy buena convocatoria, fueron 20+ personas en vivo y unas cuantas mas en streaming. Al terminar la platica <a href="http://www.twitter.com/hugostevens" target="_black">@hugostevens</a> me regalo una caja de jugo por romper el record de personas en el hacker room, gracias por el apoyo.</p>
<p>Ademas <a href="http://www.twitter.com/nRikeDiaz" target="_black">@nRikeDiaz</a> comento en twitter &#8220;Yay, <a href="http://www.twitter.com/Siedrix" target="_black">@Siedrix</a> es más famoso que Duane Nickull, al menos en el Hacker Room <img src='http://siedrix.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .&#8221; y yo culpo a adobe por eso.</p>
<p>Me gustaria compartirles el video(no se grabaron las primeras 2 o 3 slides) y los materiales de la platica, dejen cualquier duda en los comentarios y tratare de resolverla.</p>
<ul>
<li>El video se encuentra en el <a href="http://www.ustream.tv/channel/hackerroom" target="_blank">ustream </a>del hackerroom, <a href="http://www.ustream.tv/recorded/14144658" target="_blank">link directo a la presentación</a>.</li>
<li>El codigo se encuentra en mi github, <a href="https://github.com/Siedrix/presentaciones/tree/master/node101toMVC" target="_blank">link directo al código</a>.</li>
<li>Las presentaciones se encuentran en <a href="http://siedrix.com/presentaciones/node101toMVC/" target="_blank">este link</a></li>
</ul>
<p>El próximo miércoles a las 8 de la noche tendremos la siguiente platica, había comentado que fuera sobre localstorage y como hacer <em>one page ajax aplications</em>, pero varias personas pidieron que continuaremos con Nodejs, por lo cual voten que desean de platica.</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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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=Materiales+y+resumen%3A+Primera+clase+de+Node.js&amp;link=http://siedrix.com/materiales-y-resumen-primera-clase-de-nodejs&amp;notes=En%20esta%20pagina%20encontraras%20los%20materiales%20de%20la%20primera%20clase%20de%20nodejs%20en%20el%20hacker%20room%2C%20tambien%20vota%20en%20el%20tema%20de%20la%20segunda%20platica.&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/materiales-y-resumen-primera-clase-de-nodejs/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Primera Clase de Node.js</title>
		<link>http://siedrix.com/primera-clase-de-node-js</link>
		<comments>http://siedrix.com/primera-clase-de-node-js#comments</comments>
		<pubDate>Wed, 13 Apr 2011 05:08:17 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1251</guid>
		<description><![CDATA[El próximo martes 19 de abril a las 6pm dare mi primera clase de Node.js en el Hacker Room, chequeen y voten por los posibles temas]]></description>
			<content:encoded><![CDATA[<p>Gracias a la insistencia de <a href="http://www.twitter.com/hugostevens" target="_black">@hugostevens</a> empezaré a dar unas cuantas clases en el <a href="http://hackerroom.mx/" target="_blank">HackerRoom</a>. La primera será el martes 19 de abril a las 6pm y el tema será <a href="http://nodejs.org/" target="_blank">Node.js</a>. Para serles franco, estoy un poco perdido con que tema impartir debido a que hay unas cuantas cosas interesantes que mostrar y depende mucho de la audiencia.<br />
El prerrequisito de la clase es llevar Node instalado en tu computadora. Yo daré la plática con una máquina virtual de Linux sobre mi Windows 7.<br />
Veo 3 grandes ramas para las pláticas sobre Node:</p>
<ul>
<li>Como hacer scripts para consola.</li>
<li>Ventajas para uso de cosas en tiempo real para complementar aplicaciones hechas en otros lenguajes.</li>
<li>Cómo montar un MVC eligiendo distintas librerías, ya que poco a poco ha logrado tener Web Frameworks bastante completos.</li>
</ul>
<p>Esto genera los siguientes temas en específico:</p>
<ul>
<li>Una pequeña aplicación de mensajería usando Web Sockets (<a href="http://socket.io/" target="_blank">Socket.io</a>) con Node sobre una aplicación en php.</li>
<li>Agregar un chat a cualquier página de Internet (con un par de scripts de Javascript usando <a href="http://faye.jcoglan.com/" target="_blank">Faye</a>).</li>
<li>Uso de un MVC con <a href="http://expressjs.com/" target="_blank">Express</a>, Jade, Stylus y Cradel (CouchDb, esto podría cambiarse por Mongose (MongoDb)).</li>
<li>Usar un script en terminal que permita observar un archivo de templates y parsearlo (Como hace SASS).</li>
</ul>
<p>Si prefieren podría dar una clase de Nodejs 101 antes de entrar a estos temas.</p>
<p>Voy a estar haciendo deployment de los ejemplos en <a href="https://www.dotcloud.com/manage" target="_blank">dotCloud</a> mientras lo vemos en la clase.</p>
<p>Les comparto esta lista para que comenten sobre los posibles temas y sugieran algunos otros a través de los comentarios. Pueden sugerir nuevos temas que les interesen, estaré cerrando la recepción de temas el Domingo 17 para poder tener tiempo de preparar los temas.</p>
<p>Como una plática secundaria el Martes 26 daré hablaré sobre localstorage donde mostrare ejemplos para hacer caching de Ajax request y uso de la base de datos que viene con WebKit. También estoy pensando dar una plática para usar SammyJs, y Templates. Estaré abriendo otro tema para votar al respecto.</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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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=Primera+Clase+de+Node.js&amp;link=http://siedrix.com/primera-clase-de-node-js&amp;notes=El%20pr%C3%B3ximo%20martes%2019%20de%20abril%20a%20las%206pm%20dare%20mi%20primera%20clase%20de%20Node.js%20en%20el%20Hacker%20Room%2C%20chequeen%20y%20voten%20por%20los%20posibles%20temas&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/primera-clase-de-node-js/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando el API de Noticias Hacker</title>
		<link>http://siedrix.com/usando-el-api-de-noticias-hacker</link>
		<comments>http://siedrix.com/usando-el-api-de-noticias-hacker#comments</comments>
		<pubDate>Tue, 22 Mar 2011 21:32:48 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Hacking Culture]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1243</guid>
		<description><![CDATA[En la ultima semana <a href="http://www.twitter.com/dfect" target="_black">@dfect</a> y yo hemos estado trabajando en el API de Noticias Hacker, les explico un poco de como usarlo. Quedo abierto a sus dudas y preguntas.]]></description>
			<content:encoded><![CDATA[<p>Desde la semana pasada <a href="http://www.twitter.com/DFect" target="_black">@DFect</a> y yo hemos estado trabajando para tener un API en <a href="http://www.noticiashacker.com/" target="_blank">Noticias Hacker</a>, lo cual ha sido una tarea interesante debido a que yo no sabía nada de Python antes de este proyecto. El API lo basamos en lo que tiene Reddit de <a href="http://code.reddit.com/wiki/API" target="_blank">API</a>.</p>
<p>El concepto es muy sencillo, está basado en que a todas las páginas les puedas agregar .json al final. Con esto, en vez de recibir la página en formato normal, recibes la información importante en <a href="http://www.json.org/" target="_blank">json</a>. Además si pasas un callback por get te regresa <a href="http://ajaxian.com/archives/jsonp-json-with-padding" target="_blank">jsonp </a>lo cual permite pedirla desde cualquier página de Internet por medio de Javascript.</p>
<p>Por el momento lo tenemos funcionando en la página principal (http://www.noticiashacker.com/), en la página de nuevo (/nuevo) y en la página donde se muestran los comentarios (/noticias/*). Si quisieran tener la portada en json podrían poner http://www.noticiashacker.com/.json y si desean llamarla desde Javascript en algún sitio pueden usar http://www.noticiashacker.com/.json?callback=? Lo estaremos extendiendo a distintas páginas del sitio.</p>
<p>Para utilizar de manera fácil y sencilla la funcionalidad de jsonp chequen la función <a href="http://api.jquery.com/jQuery.getJSON/" target="_blank">getJSON </a>de jquery y este ejemplo de código que les permite tener en consola la estructura de la portada de NH en su consola de Javascript en cualquier sitio que tenga jquery:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$.<span class="me1">getJSON</span><span class="br0">&#40;</span><span class="st0">'http://www.noticiashacker.com/.json?callback=?'</span><span class="sy0">,</span><span class="kw2">function</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span><span class="br0">&#123;</span>
     console.<span class="me1">log</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>En esta <a href="http://siedrix.com/getjson-y-aplicacion" target="_blank">página </a>tengo un blogpost dedicado únicamente a esta función.</p>
<p>Entonces ¿qué podemos hacer con esto? Podemos hacer widgets para WordPress, analizar la información, desarrollar un cliente para android y tantas cosas como nuestra imaginación le interese.</p>
<p>Lo primero que se me ocurrió hacer es hacer un pequeño script de php que se llama cada hora y guarda en una base de datos. Además agregar una página de Internet donde se pueden pedir la portada de NH en las últimas 24 horas. La pueden consultar en <a href="http://hack.org.mx/noticias-hacker/last.php">http://hack.org.mx/noticias-hacker/last.php</a> y si le agregan un callback tienen el mismo poder para llamarla desde una página de Internet (MetaAPI FTW!).</p>
<p>Es el equivalente a tener un archivo histórico de todo lo que sucede en Noticias Hacker para utilizarlo como deseemos.</p>
<p>Una vez realizado esto, decidí usar un poco de Javascript trickster y hacer un dashboard donde se presentara de manera entendible para un humano esta información. Agregue calcular diferenciales entre las posiciones, votos y comentarios de NH hora por hora. Lo pueden checar <a href="http://siedrix.com/experimentos/panel/#" target="_blank">aquí</a> y pueden ver el código en mi <a href="https://github.com/Siedrix/Panel-Noticias-Hacker" target="_blank">Github</a>.</p>
<p>Estos son los primeros pasos y las primeras señales de un API completo. Los siguientes pasos son agregar .json a los perfiles y conversaciones, eventualmente tener la posibilidad de compartir noticias y votar. Nuestra imaginación es el límite.</p>
<p>Quedo a su disposición para preguntas sobre el API. Dejen sus comentarios aquí o en <a href="http://www.twitter.com/Siedrix" target="_black">@Siedrix</a>.</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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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=Usando+el+API+de+Noticias+Hacker&amp;link=http://siedrix.com/usando-el-api-de-noticias-hacker&amp;notes=En%20la%20ultima%20semana%20%40dfect%20y%20yo%20hemos%20estado%20trabajando%20en%20el%20API%20de%20Noticias%20Hacker%2C%20les%20explico%20un%20poco%20de%20como%20usarlo.%20Quedo%20abierto%20a%20sus%20dudas%20y%20preguntas.&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/usando-el-api-de-noticias-hacker/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
