<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

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

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

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

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


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

]]></content:encoded>
			<wfw:commentRss>http://siedrix.com/chrome-buffer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por que no me gusta CoffeeScript</title>
		<link>http://siedrix.com/por-que-no-me-gusta-coffeescript</link>
		<comments>http://siedrix.com/por-que-no-me-gusta-coffeescript#comments</comments>
		<pubDate>Sun, 06 Mar 2011 16:10:44 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1228</guid>
		<description><![CDATA[Despues de un rato de experimentar con CoffeeScript estas son mis opiniones.]]></description>
			<content:encoded><![CDATA[<p>Ayer <a href="http://www.twitter.com/chillicoder" target="_black">@chillicoder</a> y <a href="http://www.twitter.com/mauropm" target="_black">@mauropm</a> tenian unos cuantos twetts sobre que CoffeeScript es bastante chido, y tiene unas cosas bastante agradables como:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">alert <span class="st0">&quot;I knew it!&quot;</span> <span class="kw1">if</span> elvis?</pre></div></div>

<p>Lo cual ejecuta la funcion alert si y solo si elvis existe. Es una sintaxis agradable y por lo cual en algun punto me intereso aprenderlo a usar.</p>
<p>Hay casos como agregar un callback al evento click en jQuery no cambia mucho la sintaxis. En CoffeeScript es:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">$<span class="br0">&#40;</span><span class="st0">'.account'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span>alert<span class="br0">&#40;</span><span class="st0">'account was click'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="javascript">$<span class="br0">&#40;</span><span class="st0">'.account'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  <span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">'account was click'</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>Sin embargo en la mayoría de los casos, lo que escribo es javascript asíncrono y en la mayoría de los casos uso funciones, para ser mas exacto, funciones como la siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="javacript">asyncSomething = function(x, callback) {
  x = x * getSomeAsyncvalue();
  return callback(x);
};</pre></div></div>

<p>y despues la ejecutamos en algun otro lado de la aplicacion de esta manera:</p>

<div class="wp_syntax"><div class="code"><pre class="javacript">asyncSomething(5, function(data) {
  return console.log(data);
});</pre></div></div>

<p>Son patrones normales de javascript, sobretodo cuando hacemos cosas que implican animaciones de eventos, emisores de eventos y ajax.<br />
En CoffeeScript se veria de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">asyncSomething = <span class="br0">&#40;</span>x, callback<span class="br0">&#41;</span> <span class="sy0">-&gt;</span> x = x<span class="sy0">*</span>getSomeAsyncvalue<span class="br0">&#40;</span><span class="br0">&#41;</span>; callback x;</pre></div></div>

<p>y en otro lado de mi aplicación la ejecutaremos de esta manera.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">asyncSomething<span class="br0">&#40;</span><span class="nu0">5</span>,<span class="br0">&#40;</span>data<span class="br0">&#41;</span> <span class="sy0">-&gt;</span> console.<span class="me1">log</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span><span class="br0">&#41;</span>;</pre></div></div>

<p>El (data) -&gt; console.log(data) al llamar mi funcion es algo que no me agrada, mas alla llamar un parametro despues de hacer esto es imposible. Entonces el siguiente ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">setTimeout<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
   DoSomething<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="br0">&#125;</span><span class="sy0">,</span><span class="nu0">1000</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>En CoffeeScript se veria como:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">setTimeout<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span>DoSomething<span class="br0">&#40;</span><span class="br0">&#41;</span>,<span class="nu0">1000</span><span class="br0">&#41;</span></pre></div></div>

<p>Lo cual primero que nada causa un error de parser y después el declarar <b>()-&gt;</b> en lugar de <b>function(){}</b> me causa un poco de dolor de cabeza, principalmente si agregas mas de una linea de código. Simplemente me agradan mis parentesis, mis llaves({) y me agrada la sintaxis de javascript.</p>
<p>Para empezar a checar CoffeeScript tienen muchos ejemplos en su <a href="http://jashkenas.github.com/coffee-script/" target="_blank">pagina</a>, donde todos los ejemplos tiene una opción de load donde pueden empezar a escribir su código y decidir si les gusta o no.</p>
<p>En mi caso, creo que hay algunos casos que la sintaxis es muy bonita, en algunos casos que la sintaxis no aporta mucho a lo que se hace en javascript y ,en muchos casos, solo complica la sintaxis. Espero sus opiniones de coffescript.</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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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=Por+que+no+me+gusta+CoffeeScript&amp;link=http://siedrix.com/por-que-no-me-gusta-coffeescript&amp;notes=Despues%20de%20un%20rato%20de%20experimentar%20con%20CoffeeScript%20estas%20son%20mis%20opiniones.&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/por-que-no-me-gusta-coffeescript/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>jQuery Divide o riesgos al aprender js</title>
		<link>http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js</link>
		<comments>http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js#comments</comments>
		<pubDate>Tue, 02 Nov 2010 13:00:59 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1181</guid>
		<description><![CDATA[En esta plática Rebecca Murphey nos habla de las necesidades y riesgos de aprender javascript de DOM centrica o atravez de copiar y pegar snipets de jQuery.]]></description>
			<content:encoded><![CDATA[<p>Javascript se ha pasado de ser un juguete, a ser una herramienta necesaria para el desarrollo web. Desarrolladores cada día tienen que aprender cosas más complejas del lenguaje y pese a que la mayoría de nosotros aprendemos usando jQuery o alguna otra librería y pegando plug ins, esta no puede ser la manera de que javascript se utilice y se difunda.</p>
<p>En esta plática Rebecca Murphey nos habla de las necesidades y riesgos de aprender javascript de esta manera.  Pasando por ejemplos de código hechos muy DOM céntricos hasta las grandes preguntas que los desarrolladores necesitemos responder para llevar el lenguaje al siguiente nivel.</p>
<p><embed src="http://blip.tv/play/hq0KgoiLOAI" type="application/x-shockwave-flash" width="480" height="300" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p>Espero que hayan disfrutado la platica y si algun dia quieren reunirse por un cafe y hablar de eso, me encantaria. Me pueden contactar por los comentarios del blog o por mi twitter <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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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=jQuery+Divide+o+riesgos+al+aprender+js&amp;link=http://siedrix.com/jquery-divide-o-riesgos-al-aprender-js&amp;notes=En%20esta%20pl%C3%A1tica%20Rebecca%20Murphey%20nos%20habla%20de%20las%20necesidades%20y%20riesgos%20de%20aprender%20javascript%20de%20DOM%20centrica%20o%20atravez%20de%20copiar%20y%20pegar%20snipets%20de%20jQuery.&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/jquery-divide-o-riesgos-al-aprender-js/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chat 101: con Node.js y Faye</title>
		<link>http://siedrix.com/chat-101-con-node-js-y-faye</link>
		<comments>http://siedrix.com/chat-101-con-node-js-y-faye#comments</comments>
		<pubDate>Mon, 18 Oct 2010 13:00:56 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1138</guid>
		<description><![CDATA[En el SHDHMC 16 mostre como hacer un chat muy basico con Node.js y Faye como Comet server, este es el codigo con una pequeña explicacion.]]></description>
			<content:encoded><![CDATA[<p>En el devhouse presente una lighting talk, explicando como crear un Comet server con <a href="http://nodejs.org">Node.js</a> y <a href="http://faye.jcoglan.com/">Faye</a>. Me gustaría explicar un poco el código y mostrar lo sencillo que es.</p>
<p>Estoy usando esta arquitectura para hacer un juego de pelean naval y el código es un poco mas complicado, pero esta es la base de como funciona. Pueden ver el ejemplo <a href="http://siedrix.com/shdh/">aqui</a>, pruebenlo con varias tabs.</p>
<p>Necesitaremos tener Node.js en un servidor que pueden checar como instalar <a href="http://siedrix.com/?p=1021" target="_blank">aquí</a>. Como librerías tendremos Faye(tanto en servidor y cliente) y jQuery (no es necesario, pero hacer la vida mas facil).</p>
<h2>Empezare con la parte de servidor.</h2>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw2">var</span> faye <span class="sy0">=</span> require<span class="br0">&#40;</span><span class="st0">'./lib/faye-node'</span><span class="br0">&#41;</span><span class="sy0">,</span>
	http <span class="sy0">=</span> require<span class="br0">&#40;</span><span class="st0">'http'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Con esto tendremos faye para el servidor de comet y http para nuestro servidor web. En node todos los archivos empiezan inicializando los módulos que se necesitan.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw2">var</span> bayeux <span class="sy0">=</span> <span class="kw2">new</span> faye.<span class="me1">NodeAdapter</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
  mount<span class="sy0">:</span>    <span class="st0">'/faye'</span><span class="sy0">,</span>
  timeout<span class="sy0">:</span>  <span class="nu0">45</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Esto inicializa el servidor de Comet, basado en el protocolo Bayeux, que es la base de pubsub donde cada usuario se podrá subscribir a un canal y tendremos la posibilidad de mandar mensajes a todos en el canal de manera sencilla.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw2">var</span> server <span class="sy0">=</span> http.<span class="me1">createServer</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>req<span class="sy0">,</span> res<span class="br0">&#41;</span><span class="br0">&#123;</span>
  res.<span class="me1">writeHead</span><span class="br0">&#40;</span><span class="nu0">200</span><span class="sy0">,</span> <span class="br0">&#123;</span><span class="st0">'Content-Type'</span><span class="sy0">:</span> <span class="st0">'text/plain'</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
  res.<span class="me1">end</span><span class="br0">&#40;</span><span class="st0">'Hello World<span class="es0">\n</span>'</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>Con esto inicializamos el servidor de http, este ejemplo es sacado del Hello World de Nodejs.org, esta parte nos preocupara por el momento.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">bayeux.<span class="me1">attach</span><span class="br0">&#40;</span>server<span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Con esto unimos nuestros 2 servidores, con lo cual el servidor de Comet vivirá en “/faye” y todos los demás request serán pasados al servidor de http.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">server.<span class="me1">listen</span><span class="br0">&#40;</span><span class="nu0">8080</span><span class="br0">&#41;</span><span class="sy0">;</span>
console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">'server up at port 8080'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Con esto inicializamos nuestros servidores y escucharan en el puerto 8080. Después necesitamos correr en terminal:</p>
<pre>iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
node app.js</pre>
<p>Con lo que abriremos el puerto 8080(solo se necesita hacer la primera vez) y después corremos node que imprimirá en la terminal</p>
<pre>server up at port 8080</pre>
<h2>En el lado del cliente necesitaremos tener un jquery y faye.</h2>

<div class="wp_syntax"><div class="code"><pre class="html">&lt;script src=&quot;jquery-1.4.2.js&quot;&gt;&lt;!--mce:0--&gt;&lt;/script&gt;
&lt;script src=&quot;faye-browser-min.js&quot;&gt;&lt;!--mce:1--&gt;&lt;/script&gt;</pre></div></div>

<p>Nuestro HTML tendrá un UL donde estarán llegando nuestros mensajes y un input box para escribiremos nuestros mensajes.</p>
<p>Después necesitaremos conectarnos al servidor de Comet con las siguientes linea:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	<span class="kw2">var</span> client <span class="sy0">=</span> <span class="kw2">new</span> Faye.<span class="me1">Client</span><span class="br0">&#40;</span><span class="st0">'http://184.106.230.29:8080/faye'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Nota: cambiar la url para su servidor, aunque pueden usar el mio para probar cosas si lo desean. Solo avisen.</p>
<p>Despues necesitamos especificar que hacer cuando llega nuestro mensaje, en este caso haremos un prepend a nuestro ul mensajes.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	client.<span class="me1">subscribe</span><span class="br0">&#40;</span><span class="st0">'/messages'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>message<span class="br0">&#41;</span> <span class="br0">&#123;</span>
		$<span class="br0">&#40;</span><span class="st0">'#messages'</span><span class="br0">&#41;</span>.<span class="me1">prepend</span><span class="br0">&#40;</span><span class="st0">'
	&lt;li&gt;'</span><span class="sy0">+</span>message.<span class="me1">text</span><span class="sy0">+</span><span class="st0">'&lt;/li&gt;
'</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>Lo único que falta es programar como hacer para publicar mensajes. Necesitaremos tener un boton para que al darle click lea nuestro input box, mande el mensaje</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	$<span class="br0">&#40;</span><span class="st0">'#publish'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		<span class="kw1">if</span><span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">'#text'</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			client.<span class="me1">publish</span><span class="br0">&#40;</span><span class="st0">'/messages'</span><span class="sy0">,</span> <span class="br0">&#123;</span>
			  text<span class="sy0">:</span> $<span class="br0">&#40;</span><span class="st0">'#text'</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
			<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
			$<span class="br0">&#40;</span><span class="st0">'#text'</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="st0">''</span><span class="br0">&#41;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>De paso validamos que el mensaje contenga texto. Esta es la versión mas básica de un chat que podemos hacer, espero que esto les sirva para empezar a usar Node y hacer aplicaciones con Faye.</p>
<p>Pueden descargarlo de <a href="http://siedrix.com/shdh/chat101.rar">aquí</a>.</p>
<p>Cualquier duda déjenla en los comentarios y tratare de resolverla.</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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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=Chat+101%3A+con+Node.js+y+Faye&amp;link=http://siedrix.com/chat-101-con-node-js-y-faye&amp;notes=En%20el%20SHDHMC%2016%20mostre%20como%20hacer%20un%20chat%20muy%20basico%20con%20Node.js%20y%20Faye%20como%20Comet%20server%2C%20este%20es%20el%20codigo%20con%20una%20peque%C3%B1a%20explicacion.&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/chat-101-con-node-js-y-faye/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Agregando historia a javascript</title>
		<link>http://siedrix.com/agregando-historia-a-javascript</link>
		<comments>http://siedrix.com/agregando-historia-a-javascript#comments</comments>
		<pubDate>Fri, 15 Oct 2010 22:00:29 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1120</guid>
		<description><![CDATA[Esta es una manera sencilla y rapida de agregar historia a todas las acciones que suceden con javascript usando Sammy.js.]]></description>
			<content:encoded><![CDATA[<p>Tenía una página que implica mucha información y varias maneras de filtrarlas, tenía que filtrarlas por tipo y subtipo. El problema es que cada vez que se salía de la página le perdía el drill down que se hacía. La solución fue muy sencilla con Sammy.js.<br />
Primero a todos mis botones en la página les cambie el javascript de:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span class="br0">&#40;</span><span class="st0">'#name'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	…some code…
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Hice el cambio a:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span class="br0">&#40;</span><span class="st0">'#name'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	location.<span class="me1">hash</span> <span class="sy0">=</span> <span class="st0">'#/type/name'</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Y después tengo a Sammy.js haciendo todas las funciones de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	<span class="kw2">var</span> app <span class="sy0">=</span> $.<span class="me1">sammy</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#/type/:query'</span><span class="sy0">,</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			…some code…
		<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#/subtype/:query'</span><span class="sy0">,</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			…some code…
		<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#/subclass/:query'</span><span class="sy0">,</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			…some code…
		<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#/search/:query'</span><span class="sy0">,</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			…some code…
		<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	app.<span class="me1">run</span><span class="br0">&#40;</span><span class="st0">'#/'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>El método probó ser muy eficiente, todavía tengo que trabajar un poco para evitar que cada palabra del search box entre al hash del url. En el momento no es perfecto, pero es pretty nice y bastante sencillo.<br />
Además ahora pueden compartir url con mucha información entre los usuarios sin necesidad de dar instrucciones de cómo encontrar la información.<br />
Espero que esto les sirva para hacer aplicaciones únicamente con Ajax de manera más sencilla.</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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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=Agregando+historia+a+javascript&amp;link=http://siedrix.com/agregando-historia-a-javascript&amp;notes=Esta%20es%20una%20manera%20sencilla%20y%20rapida%20de%20agregar%20historia%20a%20todas%20las%20acciones%20que%20suceden%20con%20javascript%20usando%20Sammy.js.&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/agregando-historia-a-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probando en javascript, primeros pasos</title>
		<link>http://siedrix.com/probando-en-javascript-primeros-pasos</link>
		<comments>http://siedrix.com/probando-en-javascript-primeros-pasos#comments</comments>
		<pubDate>Tue, 12 Oct 2010 06:18:50 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1082</guid>
		<description><![CDATA[He empezando a leer la documentacion de YUI test para hacer unit testing, todavia no lo empiezo a utilizar en mis proyectos; sin embargo, algo ya se me pego. Estos son mis primeros pasos de unit testing en js.]]></description>
			<content:encoded><![CDATA[<p>Hoy programando un feature en javascript, cada vez que hacia una prueba tenía que darle click a un link, esperar a que se cargaran unas marcas por ajax y después darle click a una. Lo cual implicaba refrescar la pagina un click, esperar y después otro click.</p>
<p>Esta operación es mecánica y poco necesaria que la haga un humano,  sobre todo si se requiere testear varias veces hasta lograr el resultado deseado. He estado leyendo un poco de unit testing en js y próximo proyecto lo empezare con YUI test que estoy aprendiendo.</p>
<p>Por el momento no tengo un framework de unit testing en el proyecto que esto a punto de terminar, pero por que no usar javascript para realizar los click necesarios.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	$<span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">'#related-marks li a'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	ajaxLoad <span class="sy0">=</span> setInterval<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		<span class="kw1">if</span><span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">'#comment23'</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">'type'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">'comment23 was clicker'</span><span class="br0">&#41;</span>
			$<span class="br0">&#40;</span><span class="st0">'#comment23'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
			clearInterval <span class="br0">&#40;</span> ajaxLoad <span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span><span class="sy0">,</span> <span class="nu0">100</span><span class="br0">&#41;</span></pre></div></div>

<p>Agregando estas líneas de código al final de mi javascript logro realizar todos los clicks de manera inmediata cada vez que se carga la pagina.</p>
<p>Probablemente esto a algunas personas que ya usen javascript les parezca trivial, pero creo que es un paso hacia adelante en el camino a convertirme en un js ninja.</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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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=Probando+en+javascript%2C+primeros+pasos&amp;link=http://siedrix.com/probando-en-javascript-primeros-pasos&amp;notes=He%20empezando%20a%20leer%20la%20documentacion%20de%20YUI%20test%20para%20hacer%20unit%20testing%2C%20todavia%20no%20lo%20empiezo%20a%20utilizar%20en%20mis%20proyectos%3B%20sin%20embargo%2C%20algo%20ya%20se%20me%20pego.%20Estos%20son%20mis%20primeros%20pasos%20de%20unit%20testing%20en%20js.&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/probando-en-javascript-primeros-pasos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como crear un bookmarklet</title>
		<link>http://siedrix.com/como-crear-un-bookmarklet</link>
		<comments>http://siedrix.com/como-crear-un-bookmarklet#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:00:50 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1064</guid>
		<description><![CDATA[He estado checando como hacer un bookmarklet para extrar contenido de una pagina, esto es lo que he aprendido de como hacer un bookmarklet.]]></description>
			<content:encoded><![CDATA[<p>Algo en lo que he estado trabajando es en generar un bookmarklet para robarme un poco de texto de la pagina y guardarlo para leer después. Para mi sorpresa hacer un bookmarklet es muy sencillo, lo único que se necesita es crear un link, declararlo como javascript y después explicar que es un bookmarklet para que el usuario lo arrastre a su barra de bookmarks.</p>
<p>Un bookmarklet empezara de esta manera:</p>

<div class="wp_syntax"><div class="code"><pre class="html">&lt;a href=&quot;javascript:(
function(){
	… Your code
})()&quot;&gt;Bookmarklet&lt;/a&gt;</pre></div></div>

<p>He estado trabajando para tener jQuery para manipular el dom u Raphael para poder agregar SVG a cualquier pagina, lo cual requiere cargar un script de manera asíncrona, aunque de la misma manera podría funcionar para Prototype, Mootools o cualquier otra librería de javascript. Lo cual requiere una función para cargar el script:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	<span class="kw2">function</span> getScript<span class="br0">&#40;</span>filename<span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw2">var</span> script <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>
		script.<span class="me1">setAttribute</span><span class="br0">&#40;</span><span class="st0">'type'</span><span class="sy0">,</span><span class="st0">'text/javascript'</span><span class="br0">&#41;</span><span class="sy0">;</span>
		script.<span class="me1">setAttribute</span><span class="br0">&#40;</span><span class="st0">'src'</span><span class="sy0">,</span> filename<span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">typeof</span> script<span class="sy0">!=</span><span class="st0">'undefined'</span><span class="br0">&#41;</span><span class="sy0">;</span>
		document.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'head'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">appendChild</span><span class="br0">&#40;</span>script<span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span></pre></div></div>

<p>Y una función para checar que este listo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	<span class="kw2">function</span> tryReady<span class="br0">&#40;</span>time_elapsed<span class="br0">&#41;</span><span class="br0">&#123;</span>
		<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">typeof</span> $ <span class="sy0">==</span> <span class="st0">'undefined'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span class="kw1">if</span> <span class="br0">&#40;</span>time_elapsed <span class="sy0">&amp;</span>lt<span class="sy0">;=</span> <span class="nu0">5000</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
				setTimeout<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>tryReady<span class="br0">&#40;</span>time_elapsed <span class="sy0">+</span> <span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span>console.<span class="me1">log</span><span class="br0">&#40;</span>time_elapsed<span class="br0">&#41;</span><span class="sy0">;</span><span class="br0">&#125;</span><span class="sy0">,</span> <span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
				<span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">'Timed out while loading jQuery.'</span><span class="br0">&#41;</span>
			<span class="br0">&#125;</span>
		<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
			getScript<span class="br0">&#40;</span><span class="st0">'http://localhost/dev/bookmarklet/bookmarklet.js'</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span></pre></div></div>

<p>Donde en el else, cargamos nuestro script donde esta el código de nuestro bookmarklet. Generalmente lo que tenemos que hacer es tener:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	getScript<span class="br0">&#40;</span><span class="st0">'http://code.jquery.com/jquery-latest.min.js'</span><span class="br0">&#41;</span><span class="sy0">;</span>
	tryReady<span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Pero en el caso de jQuery es bastante común, por lo cual podemos checar si lo tiene la pagina y después decidir si lo queremos cargar con la función:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">	$<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">jquery</span></pre></div></div>

<p>La cual nos permite checar también la versión, en caso de que necesitemos alguna función como delegate que aparece en jQuery 1.4</p>
<p>Espero que esto les permita hacer bookmarlets de manera sencilla y que agregarles funcionalidades a sus pagina de Internet.</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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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+crear+un+bookmarklet&amp;link=http://siedrix.com/como-crear-un-bookmarklet&amp;notes=He%20estado%20checando%20como%20hacer%20un%20bookmarklet%20para%20extrar%20contenido%20de%20una%20pagina%2C%20esto%20es%20lo%20que%20he%20aprendido%20de%20como%20hacer%20un%20bookmarklet.&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-crear-un-bookmarklet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sammy.js</title>
		<link>http://siedrix.com/sammy-js</link>
		<comments>http://siedrix.com/sammy-js#comments</comments>
		<pubDate>Mon, 27 Sep 2010 16:33:59 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=1032</guid>
		<description><![CDATA[Este domingo jugue con Sammy.js una libreria de jQuery para manejar Url dinamicas al estilo de Sinatra.]]></description>
			<content:encoded><![CDATA[<p>Este domingo lo he usando para dormir como oso polar, checar que pedo con un evento de programación y jugar con <a href="http://code.quirkey.com/sammy/" target="_blank">Sammy.js</a> que corre sobre jQuery. Tengo que decir que dormir fue mejor que jugar con una libreria de javascript, pero no por mucho.</p>
<p>La libreria hace una cosa, controlar el uso de url que llevan #y despues algo mas, lo cual es perfecto para cualquier aplicacion con Ajax. Esta inspirada en Sinatra o cosa que mas o menos entiendo por mi uso de Express en node.js lo cual lo hizo un poco mas facil, pero creo que no es necesario saber nada de eso para utilizar esto.</p>
<p>La libreria functiona en 3 partes:</p>
<ol>
<li>Definir que hacer en cada url, esto se hace definiendo el método del request, definiendo el url despues del # que tendras y una funcion de callback de la siguiente manera:

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#/redirect/:name'</span><span class="sy0">,</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	Some code...
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Se pueden usar url estáticas, usar : parámetros o definir regex para las url.</li>
<li>Definir que hacer en caso de cada evento.

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw1">this</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">'my-event-name'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="sy0">,</span>data<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    Some code..
<span class="br0">&#125;</span><span class="br0">&#41;</span></pre></div></div>

</li>
<li>Definir agregar que evento sucede en cada url.

<div class="wp_syntax"><div class="code"><pre class="javascript"><span class="kw1">this</span>.<span class="me1">trigger</span><span class="br0">&#40;</span><span class="st0">'my-event'</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

</li>
</ol>
<p>Tiene algunas funciones para usar Localstorage, Session, Variables Globales y Cookies, pero creo que eso es irrelevante, lo que me importo fue como manejar las url y eso lo hace muy bien. Creo que empezare a utilizarlo en mis aplicaciones, primero remplazando todas las url de static url a dinamic url y despues tener una manera amena de manejarlas.</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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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=Sammy.js&amp;link=http://siedrix.com/sammy-js&amp;notes=Este%20domingo%20jugue%20con%20Sammy.js%20una%20libreria%20de%20jQuery%20para%20manejar%20Url%20dinamicas%20al%20estilo%20de%20Sinatra.&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/sammy-js/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chritter</title>
		<link>http://siedrix.com/chritter</link>
		<comments>http://siedrix.com/chritter#comments</comments>
		<pubDate>Wed, 19 May 2010 20:29:46 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>

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


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

]]></content:encoded>
			<wfw:commentRss>http://siedrix.com/chritter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RaphaelJS</title>
		<link>http://siedrix.com/raphaeljs</link>
		<comments>http://siedrix.com/raphaeljs#comments</comments>
		<pubDate>Wed, 12 May 2010 00:10:16 +0000</pubDate>
		<dc:creator>Siedrix</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://siedrix.com/?p=937</guid>
		<description><![CDATA[Si estas buscando una libreria de javascript que permita manejar vectores y generar graficas de manera sencilla RaphaelJS es probablemente la mejor opción. ]]></description>
			<content:encoded><![CDATA[<p>Para todos aquellos que busquen una libreria de javascript que permita manejar vectores y generar graficas de manera sencilla <a href="http://raphaeljs.com/" target="_blank">RaphaelJS </a>es probablemente la mejor opción. Entre este sus mejoras se encuentra la una manera mucho menos geométrica de trazar figuras geométricas y es compatible con todos los browsers, incluyendo IE6.</p>
<p>Un <a href="http://pepsicozeitgeist.com/trends" target="_blank">ejemplo</a> de lo que podemos crear se encuentra en esta pequeña aplicación para visualizar información de SXSW jalando información de Twitter, Flickr y foursquare.</p>
<p>Tenemos un <a href="http://raphaeljs.com/scape/" target="_blank">pequeño laberinto</a> creado enteramente en JS, que es divertido hasta que nos damos cuenta que no tiene final.</p>
<p>Es posible pasar una imagen de vectores a muchos pequeños paths con lo cual podríamos eventualmente dejar de usar imágenes como suceden en este ejemplo donde dibujan un <a href="http://raphaeljs.com/tiger.html" target="_blank">tigre</a>. O si entran a sitio, el logo esta hecho de esta manera.</p>
<p>Cuenta con funciones como Rotate, Traslate y Scale para que podamos manipular la información que se encuentra dentro de nuestro canvas de manera muy sencilla, lo cual generalmente es un pain in the ass que implica pintar el canvas completo y mover el circulo cuando lo pintamos de nuevo, en este caso solo dice:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">c.<span class="me1">translate</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="sy0">,</span> <span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>y tienes un elemento 10 px a la derecha y hacia abajo. Recuerden que en los canvas el punto de referencia es la esquina superior derecha.</p>
<p>La manera que funciona para lograr que esto sea tan sencillo es que no usa canvas, usa SVG por lo cual cada elemento es creado como parte del DOM y esto puede hacer que le agreguemos eventos y manipularlo mucho más fácilmente.</p>
<p>Para todos los que estén buscando crear movimiento en la página y crear paginas dinámicas esto es una muy buena opción.</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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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=RaphaelJS&amp;link=http://siedrix.com/raphaeljs&amp;notes=Si%20estas%20buscando%20una%20libreria%20de%20javascript%20que%20permita%20manejar%20vectores%20y%20generar%20graficas%20de%20manera%20sencilla%20RaphaelJS%20es%20probablemente%20la%20mejor%20opci%C3%B3n.%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/raphaeljs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

