<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Dupermag &#187; javascript</title>
	<atom:link href="http://dupermag.com/category/programacion/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://dupermag.com</link>
	<description>Emprendimiento, Freelancing, Diseño, Desarrollo, y la Web 2.x. Por Armando Sosa</description>
	<lastBuildDate>Sat, 24 Dec 2011 20:16:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Necesitas saber CoffeeScript</title>
		<link>http://dupermag.com/2011/07/26/necesitas-saber-coffeescript/</link>
		<comments>http://dupermag.com/2011/07/26/necesitas-saber-coffeescript/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 17:17:09 +0000</pubDate>
		<dc:creator>Armando Sosa</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://dupermag.com/?p=1088</guid>
		<description><![CDATA[CoffeeScript es un peque&#241;o y bonito lenguaje de programaci&#243;n que compila en JavaScript creado por Jeremy Ashkenas, luego de leer este libro Si conoces bien JavaScript no te costar&#225; nada de trabajo aprender CoffeeScript y muy probablemente agradecer&#225;s lo elegante y simple de su sint&#225;xis, la cual se inspira mucho en Ruby o Python. Pero [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> es un peque&#241;o y bonito lenguaje de programaci&#243;n que <em>compila</em> en JavaScript creado por <a href="http://twitter.com/#!/jashkenas">Jeremy Ashkenas</a>, luego de leer <a href="http://createyourproglang.com/" title="create your own programming language">este libro</a></p>

	<p>Si conoces bien JavaScript no te costar&#225; nada de trabajo aprender CoffeeScript y muy probablemente agradecer&#225;s lo elegante y simple de su sint&#225;xis, la cual se inspira mucho en Ruby o Python. Pero CoffeeScript no se trata solo de quitar parentesis y corchetes a JavaScript, sino que el lenguaje incluye bondades como comprensiones y herencia pseudo-cl&#225;sica. Adem&#225;s de que el c&#243;digo generado est&#225; tan optimizado no es de sorprender que a menudo el JavaScript resultante es mucho m&#225;s eficiente que uno generado a pesar de seguir siendo bastante legible.</p>

	<p>Habr&#225; una inevitable y comprensible resistencia al cambio de parte de algunos desarrolladores, pero  la importancia de CoffeeScript es evidente para cualquiera que est&#233; prestando atenci&#243;n. Personalmente, empec&#233; a experimentar con CoffeeScript a finales del 2010 y ahora se ha vuelta una herramienta indispensable en mi workflow. </p>

	<p>Si los ejemplos en la documentaci&#243;n oficial no te bastan, el mejor recurso para aprender a entender CoffeeScript es el <a href="http://peepcode.com/products/coffeescript">excelente tutorial de PeepCode</a>.</p>


 ]]></content:encoded>
			<wfw:commentRss>http://dupermag.com/2011/07/26/necesitas-saber-coffeescript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>El nuevo Twitter y el misterio del hash bang</title>
		<link>http://dupermag.com/2010/10/12/el-nuevo-twitter-el-misterio-del-hash-bang/</link>
		<comments>http://dupermag.com/2010/10/12/el-nuevo-twitter-el-misterio-del-hash-bang/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 16:32:14 +0000</pubDate>
		<dc:creator>Armando Sosa</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Crawler]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://dupermag.com/?p=944</guid>
		<description><![CDATA[Una de las cosas que m&#225;s me llamaron de la atenci&#243;n cuando empec&#233; a probar el nuevo Twitter fue la curiosa sintaxis de sus urls, que comienzan con los simbolos #!, tambi&#233;n conocidos como hash-bang, Como ustedes seguramente saben, el nuevo Twitter es una aplicaci&#243;n ligera construida &#237;ntegramente con Javascript/HTML/CSS sobre la API misma de [...]]]></description>
			<content:encoded><![CDATA[	<p><div class="excerpt">Una de las cosas que m&#225;s me llamaron de la atenci&#243;n cuando empec&#233; a probar el nuevo Twitter fue la curiosa sintaxis de sus urls, que comienzan con los simbolos <q>#!</q>, tambi&#233;n conocidos como hash-bang,</div></p>

	<p><img src="http://dupermag.com/wp-content/uploads/2010/10/hashbang-newtwitter-620x159.png" alt="" title="hashbang-newtwitter" width="620" height="159" class="aligncenter size-large wp-image-945" /></p>

	<p><span id="more-944"></span></p>

	<p>Como ustedes seguramente saben, el nuevo Twitter es una aplicaci&#243;n <em>ligera</em> construida &#237;ntegramente con Javascript/HTML/CSS sobre la API misma de Twitter. En aplicaciones Ajax, es com&#250;n el uso del <em>hash</em> (lo que sigue del # en la url) para denotar estado y para preservar el uso de los botones atr&#225;s y adelante del navegador as&#237; como hacer links permanentes.</p>

	<p>&#201;ste uso del hash es m&#225;s o menos un hack, puesto que no fue dise&#241;ado para eso sino para enlazar secciones dentro de un documento (como <a href="#respond">este enlace a la forma de comentarios de este post</a>. Pero este nuevo uso, sin embargo, se ha vuelto tan popular que existen frameworks enteros desarrollados alrededor de esta idea, como <a href="http://code.quirkey.com/sammy/"> Sammy, que inspirado en Sinatra, usa el hash para simular rutas</a>.</p>

	<p>Rsuelto eso, a&#250;n quedaba el misterio uso del (!) <em>bang</em> (Nosotros le llamamos <em>signo de admiraci&#243;n</em>, lo cual es aburrido, asi que perdonen si uso el t&#233;rmino gringo). &#191;Qu&#233; ventaja tiene usar <em>twitter.com/#!/mentions</em> por sobre el m&#225;s cl&#225;sico <em>twitter.com/#mentions</em>? para averiguarlo, desempolv&#233; mi cuenta y <a href="http://www.quora.com/Twitter-com-2010-Redesign/Why-did-they-use-!-as-the-permalinks-in-the-new-Twitter">pregunt&#233; en Quora (requirer registro)</a>. </p>

	<p>Para mi sorpresa, <a href="http://twitter.com/#!/isaach">un empleado de Twitter</a> se tomo la molestia de resolver mi duda.</p>

	<p><blockquote><br />
Yo trabajo en Twitter. Este esquema fue elegido deliberadamente para estar alineado con la especificaci&#243;n de Google para indexar applicaciones web AJAX.<br />
</blockquote></p>

	<p>&#161;Problema resuelto! La especificaci&#243;n a la que se refiere&#8212;que yo noconoc&#237;a&#8212; es una especificaci&#243;n de Google para que las aplicaciones AJAX puedan ser indexadas por sus robots (alerta SEO).</p>

	<p><blockquote><br />
En corto, la soluci&#243;n funciona de esta manera: el crawler encuentra una URL AJAX bonita (esto es, una URL que contiene un fragmento #! en el hash). &#201;ste entonces hace una petici&#243;n por el contenido de esta URL a tu servidor en una manera un tanto distinta. Tu servidor web regresa el contenido en la forma de un <em>snapshot</em> HTML, que es entonces procesada por el <em>crawler</em>. El resultado de b&#250;squeda mostrar&#225; la URL original.<br />
</blockquote><br />
<a href="http://code.google.com/web/ajaxcrawling/docs/getting-started.html"><img src="http://dupermag.com/wp-content/uploads/2010/10/crawlerserver2-620x312.png" alt="Esquema de URLs AJAX indexables" title="crawlerserver2" width="620" height="312" class="aligncenter size-large wp-image-946" /></a></p>

	<p>La especificaci&#243;n completa est&#225; publicada en &#233;ste sitio: <a href="http://code.google.com/web/ajaxcrawling/docs/getting-started.html">Making AJAX Applications Crawlable</a></p>

	<p>Ahora espero que sepan algo que antes no sab&#237;an, porque como dicen, <a href="http://www.youtube.com/watch?v=pele5vptVgc">saber es la mitad de la batalla</a>.</p>


 ]]></content:encoded>
			<wfw:commentRss>http://dupermag.com/2010/10/12/el-nuevo-twitter-el-misterio-del-hash-bang/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pequeño tip para que las imágenes quepan en el viewport del iPhone</title>
		<link>http://dupermag.com/2009/12/17/redimensionar-imagenes-para-el-iphone/</link>
		<comments>http://dupermag.com/2009/12/17/redimensionar-imagenes-para-el-iphone/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 08:24:02 +0000</pubDate>
		<dc:creator>Armando Sosa</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[IPhone]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://dupermag.com/?p=660</guid>
		<description><![CDATA[Resulta que estoy haciendo una versi&#243;n especial para el iPhone de un proyecto &#8211; que les anunciar&#233; la pr&#243;xima semana&#8211; y me top&#233; con un problema: las im&#225;genes cuyas dimensiones exceden el ancho de la pantalla aparecen mochas y sin ninguna forma de hacer scroll. &#191;Les ha pasado? Est&#225;n de suerte, pues descubr&#237; una manera [...]]]></description>
			<content:encoded><![CDATA[	<p>Resulta que estoy haciendo una versi&#243;n especial para el iPhone de un proyecto &#8211; que les anunciar&#233; la pr&#243;xima semana&#8211; y me top&#233; con un problema: las im&#225;genes cuyas dimensiones exceden el ancho de la pantalla aparecen mochas y sin ninguna forma de hacer scroll. </p>

	<p>&#191;Les ha pasado? Est&#225;n de suerte, pues descubr&#237; una manera muy simple de solucionarlo con solo un poquito de jQuery.<br />
<span id="more-660"></span></p>

	<p>Primero, asumo que est&#225;n desplegando estilos exclusivamente para iPhone (y otros dispositivos m&#243;viles) m&#225;s o menos as&#237;:<br />
<script src="http://gist.github.com/258613.js?file=iphone.css"></script></p>

	<p>C&#243;mo ven, estoy aplicando una propiedad <code>max-width</code> de 300px (nota al margen: estoy utilizando <code>max-width</code> &#191;No es hermosa la vida cuando no hace falta pensar en Internet Explorer?) lo cual funciona bastante bien suponiendo que el dispositivo siempre este en modo vertical (mi forma favorita de navegar en el iPhone/iTouch) pero si por alguna raz&#243;n el usuario pone el aparato en formato horizontal, entonces el ancho de la pantalla pasa de 320px a 480px, donde nuestras im&#225;genes se ven demasiado peque&#241;as.</p>

	<p>Una cosa notable, sin embargo, es que cambiar de vista vertical a horizontal y viceversa lanza el evento <code>resize</code> del navegador, el cual podemos cachar desde javascript para redimensionar nuestras im&#225;genes.</p>

	<p>&#191;Existe la palabra &#8220;redimensionar&#8221;?</p>

	<p>Bueno, este es el peque&#241;o snippet de jQuery que yo utilic&#233; para <em>redimensionar</em> las im&#225;genes acorde al tama&#241;o del viewport. Espero que les sea de utilidad:<br />
<script src="http://gist.github.com/258613.js?file=iphone.js"></script></p>

	<p>N&#243;tese que lo que cambiamos con jQuery es la propiedad <code>max-width</code> y no <code>width</code>, as&#237; evitamos que, si la imagen ya es m&#225;s peque&#241;a que el viewport, &#233;sta se deforme.</p>

	<p>P.D. A&#250;n queda un problema que no se como solucionar: No es posible acercarte a las im&#225;genes haciendo el gesture de <em>pinch/zoom</em>. Si tienen la respuesta a este enigma y quieren compartirla, por favor haganlo.</p>



 ]]></content:encoded>
			<wfw:commentRss>http://dupermag.com/2009/12/17/redimensionar-imagenes-para-el-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: dupermag.com @ 2012-02-12 08:08:52 by W3 Total Cache -->
