<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2spanishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.nexoblogs.com/~d/styles/itemcontent.css"?><rss version="2.0">
<!-- Generado by OboLog XML-O-Matic Script -->
<channel>
	<title><![CDATA[Pixelovers]]></title>
	<link>http://www.pixelovers.com</link>
	<description>Diseño web basado en estándares, usabilidad, accesibilidad y otras disciplinas relacionadas con el desarrollo web.</description>
	<language>es-es</language>
	<pubDate>Fri, 12 Mar 2010 18:26:23 +0100</pubDate>
	<lastBuildDate>Fri, 12 Mar 2010 18:26:23 +0100</lastBuildDate>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<generator>OboLog XML-O-Matic Script</generator>
	<managingEditor>webmaster@obolog.com</managingEditor>
	<webMaster>webmaster@obolog.com</webMaster>
	<image><link>http://www.pixelovers.com</link><url>http://www.obolog.com/css/blogs/cobranding/nexoblogs/pixelovers/pixelovers-small.png</url><title>Pixelovers</title></image>
	<feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="pixelovers" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.pixelovers.com/index.xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Pixelovers</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fwww.pixelovers.com%2Findex.xml" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://www.pixelovers.com/index.xml" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fwww.pixelovers.com%2Findex.xml" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fwww.pixelovers.com%2Findex.xml" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fwww.pixelovers.com%2Findex.xml" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/content?lg=es&amp;url=http%3A%2F%2Fwww.pixelovers.com%2Findex.xml" src="http://eur.i1.yimg.com/eur.yimg.com/i/es/my/addto1.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.feedness.com/alta/http://www.pixelovers.com/index.xml" src="http://www.feedness.com/ayuda/wp-content/square_b_sh_feed.gif">Subscribe with Feedness</feedburner:feedFlare><item>
		<title>Libro manual jQuery UI 1.7</title>
		<link>http://www.pixelovers.com/libro-manual-jquery-ui-1-7-525355</link>
		<description>&lt;p&gt;&lt;a class="thickbox" title="Libro jQuery UI 1.7" href="http://static.obolog.net/multimedia/fotos/526000/525355/525355-224508.jpg"&gt;&lt;img style="float: right;" title="jQuery UI 1.7" src="http://static.obolog.net/multimedia/fotos/526000/525355/525355-224508_p.jpg" alt="jQuery UI 1.7" /&gt;&lt;/a&gt;Hace unos meses cay&amp;oacute; en mis manos este fant&amp;aacute;stico libro: &lt;a title="Libro jQuery UI 1.7" href="http://www.packtpub.com/user-interface-library-for-jquery-ui-1-7" target="_blank"&gt;jQuery UI 1.7&lt;/a&gt; de &lt;a title="Dan Wellman" href="http://www.danwellman.co.uk/" target="_blank"&gt;Dan Wellman&lt;/a&gt;. Y lo llevo usando casi a diario desde entonces puesto que estoy metido en un proyecto en el cual usamos casi toda la librer&amp;iacute;a (Dialog, Slider, Tabs, Sortable...). Al principio pens&amp;eacute; que no le dar&amp;iacute;a uso puesto que existen &lt;a title="Demos y Documentaci&amp;oacute;n de jQuery UI 1.7" href="http://jqueryui.com/demos/" target="_blank"&gt;demos y documentacion de jQuery UI&lt;/a&gt;, pero desafortunadamente no es tan buena como me esperaba.&lt;/p&gt;
&lt;p&gt;Creo que una de las partes que m&amp;aacute;s conflicto crea entre los usuarios del framework es la cantidad de clases que a&amp;ntilde;ade a los elementos involucrados. Y es cierto, a&amp;ntilde;ade muchas, pero todas ellas necesarias. Gracias a eso te permite controlar a tu gusto la interfaz. Ellos te proporcionan una serie de temas, los cuales puedes personalizar mediante el &lt;a title="jQuery UI ThemeRoller" href="http://jqueryui.com/themeroller/" target="_blank"&gt;jQuery UI ThemeRoller&lt;/a&gt;, pero hay casos en los que te quieres salir de la norma y dar, en un caso concreto, un estilo diferente. Conociendo bien el porqu&amp;eacute; de cada clases es muy f&amp;aacute;cil, y para este caso el libro me ha venido como anillo al dedo. He podido aprender, ya en el cap&amp;iacute;tulo 2, el CSS Framework, algo imprescindible para dotar a tu interzar la personalidad que buscabas.&lt;/p&gt;
&lt;p&gt;Por otro lado el libro me ha venido muy bien para entender paso a paso el funcionamiento de los widgets. Con lo que he podido crear mis propois plugins para automatizar ciertos procesos, como por ejemplo la creaci&amp;oacute;n de sliders, o paneles configurables mediante sortable.&lt;/p&gt;
&lt;p&gt;La verdad que siendo sincero, si piensas desarollar algo con jQuery UI 1.7 y quieres hacer bien, te recomeiendo este libro.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/libro-manual-jquery-ui-1-7-525355" title="Libro manual jQuery UI 1.7"&gt;Libro manual jQuery UI 1.7&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Lo4BRytCL_RPhJXei_w-LrZVMEs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lo4BRytCL_RPhJXei_w-LrZVMEs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Lo4BRytCL_RPhJXei_w-LrZVMEs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lo4BRytCL_RPhJXei_w-LrZVMEs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=haa8vfB0LQs:_Ucml81H_xM:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=haa8vfB0LQs:_Ucml81H_xM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=haa8vfB0LQs:_Ucml81H_xM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=haa8vfB0LQs:_Ucml81H_xM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>desarrollo web</category>
				<category>diseño de interfaces</category>
				<category>interfaces</category>
				<category>javascript</category>
				<category>jquery</category>
				<category>jquery ui</category>
				<comments>http://www.pixelovers.com/libro-manual-jquery-ui-1-7-525355#formulario</comments>
		<guid>http://www.pixelovers.com/libro-manual-jquery-ui-1-7-525355</guid>
		<pubDate>Sat, 27 Feb 2010 16:55:00 +0100</pubDate>
	</item>
	<item>
		<title>Javascript y jQuery: Consejos y Buenas Practicas (Parte II)</title>
		<link>http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-ii-521211</link>
		<description>&lt;p&gt;Hace unas semanas iniciamos una serie de 2 posts para hablar de lo que consideramos que son unas buenas practicas para desarrollar codigo Javascript con la libreria jQuery.&lt;/p&gt;
&lt;p&gt;&lt;img style="margin: 20px; float: right;" title="http://static.obolog.net/multimedia/fotos/309000/308801/308801-209198.jpg" src="http://static.obolog.net/multimedia/fotos/309000/308801/308801-209198_t.jpg" alt="http://static.obolog.net/multimedia/fotos/309000/308801/308801-209198.jpg" width="300" height="306" /&gt;&lt;/p&gt;
&lt;p&gt;Con este post cerramos la serie y profundizamos un poco m&amp;aacute;s en el tema&lt;/p&gt;
&lt;p&gt;En el &lt;a href="http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-i-308801"&gt;primer post de esta serie&lt;/a&gt; comentamos algunas generalidades que nos pueden servir de base a la hora de desarrollar un c&amp;oacute;digo JS eficiente. En este segundo post hablaremos de como solucionar de forma eficiente problemas concretos que nos solemos encontrar en nuestros desarrollos.&lt;/p&gt;
&lt;p&gt;Asi que, ahi vamos...&lt;/p&gt;&lt;h1&gt;Practicas eficientes&lt;/h1&gt;
&lt;ul&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Checkear la disponibilidad de un objeto antes de acceder a &amp;eacute;l.&lt;/strong&gt; Muchos de los errores en Javascript se deben a que se intenta acceder a elementos o m&amp;eacute;todos que no existen en un determinado momento del periodo de ejecuci&amp;oacute;n. Para solucionar esto basta con realizar un peque&amp;ntilde;a comprobaci&amp;oacute;n antes de utilizar dicho elemento o m&amp;eacute;todo.
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	if ( $('#signup').length ) {&lt;br /&gt;		$('#signup input').change ( function () {&lt;br /&gt;			alert ("Acabas de poner " + $(this).val() );&lt;br /&gt;		});&lt;br /&gt;	}&lt;br /&gt;					&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Evita el uso de variables globales.&lt;/strong&gt; A fin de evitar el uso de variables globales, podemos utilizar data, un m&amp;eacute;todo de jQuery que nos permite mantener relaciones entre valores y elementos DOM.
&lt;p&gt;Por ejemplo podemos guardar un dato en el objeto document de esta forma&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	$(document).data('id_country',3) ,&lt;br /&gt;					&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Y acceder al dato de esta leer el dato de esta otra&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	$(document).data('id_country')&lt;br /&gt;					&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aunque lo suyo realmente es aprovechar la terminologia de objetos y ubicar las variables en su contexto&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var mySite = {&lt;br /&gt;		general_1 : 100 ,&lt;br /&gt;		general_2 : 200,&lt;br /&gt;							&lt;br /&gt;		myObject1 : {&lt;br /&gt;							&lt;br /&gt;			local_1 : 500,&lt;br /&gt;			funcionLocal : function() {&lt;br /&gt;				var local_2 = 600;&lt;br /&gt;				console.log ("estoy en funcionLocal");&lt;br /&gt;				console.log ("local_1=" + mySite.myObject1.local_1);&lt;br /&gt;				console.log ("local_2=" + local_2);&lt;br /&gt;			}&lt;br /&gt;						&lt;br /&gt;		},&lt;br /&gt;&lt;br /&gt;		init : function() {&lt;br /&gt;			console.log ("estoy en init");&lt;br /&gt;			this.funcionalidad1();&lt;br /&gt;			this.myObject1.funcionLocal();&lt;br /&gt;		},&lt;br /&gt;						&lt;br /&gt;		funcionalidad1 : function() {&lt;br /&gt;			console.log ("estoy en funcionalidad1");&lt;br /&gt;			console.log ("general_1=" + this.general_1);&lt;br /&gt;			console.log ("general_2=" + this.general_2);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Definir siempre las variables con VAR &lt;/strong&gt;, incluso dentro de los FOR, de esta forma nos aseguramos que la variable tendr&amp;aacute; el ambito que le corresponda. Si no se pone var se toma la variable como global.
&lt;p&gt;Mala declaracion de variables para el FOR&lt;/p&gt;
&lt;pre style="background-color:#fceaea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var i=0; // Creates a global variable&lt;br /&gt;&lt;br /&gt;	function test() {&lt;br /&gt;	   for (i=0; i&amp;lt;10; i++) {&lt;br /&gt;		  // do something&lt;br /&gt;	   }&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	test();&lt;br /&gt;&lt;br /&gt;	alert(i); // The global variable i is now 10!&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Buenas declaraciones de variables para el FOR&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var i=0; // Creates a global variable&lt;br /&gt;&lt;br /&gt;	function test() {&lt;br /&gt;	   var i=0;&lt;br /&gt;	   for (i=0; i&amp;lt;10; i++) {&lt;br /&gt;			// do something&lt;br /&gt;	   }&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	function test2() {&lt;br /&gt;	   for (var i=0; i&amp;lt;10; i++) {&lt;br /&gt;			// do something else&lt;br /&gt;	   }&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	test();&lt;br /&gt;	test2();&lt;br /&gt;&lt;br /&gt;	alert(i); // The global variable i is still 0!&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Usa FOR en vez de EACH&lt;/strong&gt;. Por lo general las funciones nativas de Javascript son mas rapidas que las derivadas de librerias
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var array = new Array ();  &lt;br /&gt;	for (var i=0; i&amp;lt;10000; i++) {  &lt;br /&gt;		array[i] = 0;  &lt;br /&gt;	}  &lt;br /&gt;	&lt;br /&gt;	// Mas lento&lt;br /&gt;	$.each (array, function (i) {  &lt;br /&gt;		array[i] = i;  &lt;br /&gt;	});  &lt;br /&gt;&lt;br /&gt;	// Mas rapido&lt;br /&gt;	var l = array.length;  &lt;br /&gt;	for (var i=0; i&amp;lt;l; i++) {  &lt;br /&gt;		array[i] = i;  &lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Para concatenaciones largas de cadenas, mejor &lt;a href="http://www.w3schools.com/jsref/jsref_join.asp"&gt;JOIN()&lt;/a&gt; que &lt;a href="http://www.w3schools.com/jsref/jsref_concat_array.asp"&gt;CONCAT()&lt;/a&gt;&lt;/strong&gt;. JOIN devuelve texto y CONCAT devuelve un array.
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var array = [];  &lt;br /&gt;	for (var i=0; i&amp;lt;=1000; i++) {  &lt;br /&gt;		array[i] = '&amp;lt;li&amp;gt;'+i+'&amp;lt;/li&amp;gt;';  &lt;br /&gt;	}  &lt;br /&gt;&lt;br /&gt;	// JOIN devuelve texto&lt;br /&gt;	$('#list').html ( array.join (''));  &lt;br /&gt;&lt;br /&gt;	// CONCAT devuelve array&lt;br /&gt;	var array_concat = array.concat('');  &lt;br /&gt;&lt;br /&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Return FALSE&lt;/strong&gt; Si no devuelves FALSE en la funcion la pagina salta al top, por eso a la hora de capturar eventos conviene devolver FALSE al final para que haga lo que nosotros definimos y nada mas
&lt;p&gt;En vez de esto:&lt;/p&gt;
&lt;pre style="background-color:#fceaea;"&gt;			&lt;code&gt;&lt;br /&gt;	&lt;br /&gt;	$('#item').click (function () {&lt;br /&gt;		// stuff here&lt;br /&gt;	});&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mejor esto:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	$('#item').click (function () {&lt;br /&gt;		// stuff here&lt;br /&gt;		return false;&lt;br /&gt;	});&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Usar correctamente el tag SCRIPT&lt;/strong&gt;. El atributo LANGUAGE est&amp;aacute; deprecado en el tag &amp;lt;script&amp;gt;. La forma correcta de crear un bloque de c&amp;oacute;digo javascript es:
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	&amp;lt;script type="text/javascript &amp;gt;&lt;br /&gt;		// code JS here&lt;br /&gt;	&amp;lt;script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;La selecci&amp;oacute;n mas r&amp;aacute;pida es por ID&lt;/strong&gt;. Siempre el selector m&amp;aacute;s r&amp;aacute;pido y que menos iteraciones produce es la b&amp;uacute;squeda por un #id, ya que simplemente lanza un document.getElementById(), lo que al ser nativo nos asegura un tiempo de respuesta m&amp;iacute;nimo y un m&amp;iacute;nimo consumo de proceso.
&lt;p&gt;Por ejemplo, con este codigo:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	&amp;lt;div id="content"&amp;gt;&lt;br /&gt;		&amp;lt;form method="post" action="/"&amp;gt;&lt;br /&gt;			&amp;lt;h2&amp;gt;Traffic Light&amp;lt;/h2&amp;gt;&lt;br /&gt;				&amp;lt;ul id="traffic_light"&amp;gt;&lt;br /&gt;					&amp;lt;li&amp;gt;&amp;lt;input type="radio" name="light" value="red" /&amp;gt; Red&amp;lt;/li&amp;gt;&lt;br /&gt;					&amp;lt;li&amp;gt;&amp;lt;input type="radio" name="light" value="yellow" /&amp;gt; Yellow&amp;lt;/li&amp;gt;&lt;br /&gt;					&amp;lt;li&amp;gt;&amp;lt;input type="radio" name="light" value="green" /&amp;gt; Green&amp;lt;/li&amp;gt;&lt;br /&gt;				&amp;lt;/ul&amp;gt;&lt;br /&gt;				&amp;lt;input id="traffic_button" type="submit" value="Go" /&amp;gt;&lt;br /&gt;		&amp;lt;/form&amp;gt;&lt;br /&gt;	&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En vez de esto:&lt;/p&gt;
&lt;pre style="background-color:#fceaea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	// M&amp;aacute;s lento&lt;br /&gt;	var traffic_button = $('#content .button');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mejor esto:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	// M&amp;aacute;s r&amp;aacute;pido&lt;br /&gt;	var traffic_button = $('#traffic_button');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Para acceder a varios elementos, siempre que podamos debemos hacerlo partiendo de un #id, de esta forma nos aseguramos una iteraci&amp;oacute;n m&amp;aacute;s ajustada.:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var traffic_lights = $('#traffic_light input');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Usar tags delante de las clases&lt;/strong&gt;. Al hacer selecci&amp;oacute;n de clases con jQuery, es recomendable indicar el tag del elemento solicitado ya que al hacer iternamente uso de document.getElementsByTagName() para localizarlos acotamos previamente los elementos en los que buscar las clases solicitadas.
&lt;p&gt;Por ejemplo, para el HTML del punto anterior, si queremos seleccionar el elemento radio con, la opci&amp;oacute;n m&amp;aacute;s r&amp;aacute;pida ser&amp;iacute;a la siguiente:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;	&lt;br /&gt;	var active_light = $('#traffic_light input.on');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Usar la cach&amp;eacute; de objetos&lt;/strong&gt;. Coger el h&amp;aacute;bito de guardar una variable con el valor de un objeto jQuery nos evita realizar una serie de comprobaciones innecesarias y que en scripts pesados pueden suponer un aumento de rendimiento importante.
&lt;p&gt;Seleccion poco eficiente de elementos:&lt;/p&gt;
&lt;pre style="background-color:#fceaea;"&gt;			&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	$('#traffic_light input.on).bind('click', function(){...});&lt;br /&gt;	$('#traffic_light input.on).css('border', '3px dashed yellow');&lt;br /&gt;	$('#traffic_light input.on).css('background-color', 'orange');&lt;br /&gt;	$('#traffic_light input.on).fadeIn('slow');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Seleccion Eficiente de elementos:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var $active_light = $('#traffic_light input.on');&lt;br /&gt;	$active_light.bind('click', function(){...});&lt;br /&gt;	$active_light.css('border', '3px dashed yellow');&lt;br /&gt;	$active_light.css('background-color', 'orange');&lt;br /&gt;	$active_light.fadeIn('slow');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Crear Objeto Global con resultados jQuery.&lt;/strong&gt;. Si necesitamos utilizar una selecci&amp;oacute;n jQuery en diferentes funciones, se puede cachear en un objeto con &amp;aacute;mbito global.
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	// Define an object in the global scope (i.e. the window object)&lt;br /&gt;&lt;br /&gt;	window.$my = {&lt;br /&gt;&lt;br /&gt;              // Initialize all the queries you want to use more than once&lt;br /&gt;              head : $('head'),&lt;br /&gt;              traffic_light : $('#traffic_light'),&lt;br /&gt;              traffic_button : $('#traffic_button')&lt;br /&gt;	};&lt;br /&gt;&lt;br /&gt;	function do_something() {&lt;br /&gt;&lt;br /&gt;              // Now you can reference the stored results and manipulate them&lt;br /&gt;              var script = document.createElement('script');&lt;br /&gt;&lt;br /&gt;              $my.head.append(script);&lt;br /&gt;              // When working inside functions, continue to save jQuery results&lt;br /&gt;&lt;br /&gt;              // to your global container.&lt;br /&gt;              $my.cool_results = $('#some_ul li');&lt;br /&gt;              $my.other_results = $('#some_table td');&lt;br /&gt;&lt;br /&gt;              // Use the global functions as you would a normal jQuery result&lt;br /&gt;              $my.other_results.css('border-color', 'red');&lt;br /&gt;              $my.traffic_light.css('border-color', 'green');&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Aprovechar el encadenamiento&lt;/strong&gt;. El encadenamiento pese a producir un amasijo de c&amp;oacute;digo que no contribuye a mejorar la lectura del c&amp;oacute;digo hace que nuestro Javascript sea m&amp;aacute;s ligero y puede ayudar a mejorar el rendimiento de nuestros scripts.
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var $active_light = $('#traffic_light input.on');&lt;br /&gt;	&lt;br /&gt;	$active_light.bind('click', function(){...})&lt;br /&gt;		.css('border', '3px dashed yellow')&lt;br /&gt;		.css('background-color', 'orange')&lt;br /&gt;		.fadeIn('slow');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Usar subqueries siempre que se pueda&lt;/strong&gt;. Si debemos realizar varias b&amp;uacute;squedas sobre un elemento es altamente recomendable realizar un uso intensivo del m&amp;eacute;todo find() de jQuery para realizar las b&amp;uacute;squedas. Mejoraremos el tiempo de respuesta al evitarnos b&amp;uacute;squedas previas ya realizadas.
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var $traffic_light = $('#traffic_light'),&lt;br /&gt;	$active_light = traffic_light.find('input.on'),&lt;br /&gt;	$inactive_lights = $traffic_light.find('input.off');&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Limitar la manipulaci&amp;oacute;n directa del DOM&lt;/strong&gt;. La idea general es crear exactamente lo que necesitas en memoria y luego actualizar el DOM
&lt;p&gt;Si necesitas crear una lista de elementos, en vez de :&lt;/p&gt;
&lt;pre style="background-color:#fceaea;"&gt;			&lt;code&gt;&lt;br /&gt; &lt;br /&gt;	var top_100_list = [...], // assume this has 100 unique strings&lt;br /&gt;	$mylist = $('#mylist'); // jQuery selects our &amp;lt;ul&amp;gt; element&lt;br /&gt;&lt;br /&gt;	for (var i=0, l=top_100_list.length; i&amp;lt;l; i++) {&lt;br /&gt;		$mylist.append('&amp;lt;li&amp;gt;' + top_100_list[i] + '&amp;lt;/li&amp;gt;');&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Creamos la lista de elementos en un string antes de insertarlo en el DOM&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;	var top_100_list = [...], // assume this has 100 unique strings&lt;br /&gt;	$mylist = $('#mylist'), // jQuery selects our &amp;lt;ul&amp;gt; element&lt;br /&gt;	top_100_li = ""; // This will store our list items&lt;br /&gt;	&lt;br /&gt;	for (var i=0, l=top_100_list.length; i&amp;lt;l; i++) {&lt;br /&gt;		top_100_li += '&amp;lt;li&amp;gt;' + top_100_list[i] + '&amp;lt;/li&amp;gt;';&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	$mylist.html(top_100_li);&lt;br /&gt;&lt;br /&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Usar JSON&lt;/strong&gt;. Para guardar estructuras de datos o enviar/recibir estructuras de datos via AJAX mejor &lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt; que &lt;a href="http://www.w3.org/XML/"&gt;XML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y hasta aqui la segunda parte y el final de la serie de consejos y buenas practicas para desarrollo con Javascript y jQuery.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Que te han parecido los puntos aqui comentados? &amp;iquest;Algun punto que creas que falta en esta lista?.&lt;/p&gt;
&lt;h2&gt;Enlaces y m&amp;aacute;s&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.bobbyvandersluis.com/articles/javascript_good_practices/index.html"&gt;Ten good practices for writing JavaScript in 2005&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2008/09/16/jquery-examples-and-best-practices/"&gt;jQuery and JavaScript Coding: Examples and Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.anieto2k.com/2009/05/13/optimizando-el-rendimiento-de-nuestros-scritps-jquery/"&gt;Optimizando el rendimiento de nuestros scritps jQuery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.javascripttoolbox.com/bestpractices/"&gt;Javascript Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;Best Practices for Speeding Up Your Web Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.artzstudio.com/2009/04/jquery-performance-rules/"&gt;jQuery Performance Rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/"&gt;10 Ways to Instantly Increase Your jQuery Performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.anieto2k.com/2007/09/20/analizando-las-formas-de-optimizar-el-trabajo-con-dom-en-javascript/"&gt;Analizando las formas de optimizar el trabajo con DOM en Javascript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx"&gt;Improve your jQuery - 25 excellent tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-ii-521211" title="Javascript y jQuery: Consejos y Buenas Practicas (Parte II)"&gt;Javascript y jQuery: Consejos y Buenas Practicas (Parte II)&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/36Sj-ZC9mlXYZ_BUfYGOaZqcyOU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/36Sj-ZC9mlXYZ_BUfYGOaZqcyOU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/36Sj-ZC9mlXYZ_BUfYGOaZqcyOU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/36Sj-ZC9mlXYZ_BUfYGOaZqcyOU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=0urTCXxllrc:y5PkgLFVGFI:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=0urTCXxllrc:y5PkgLFVGFI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=0urTCXxllrc:y5PkgLFVGFI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=0urTCXxllrc:y5PkgLFVGFI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>juanmaguitar</author>
				<category>ajax</category>
				<category>buenas practicas</category>
				<category>codigo</category>
				<category>consejos</category>
				<category>desarrollo web</category>
				<category>eventos</category>
				<category>frameworks</category>
				<category>javascript</category>
				<category>jquery</category>
				<category>optimizacion</category>
				<comments>http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-ii-521211#formulario</comments>
		<guid>http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-ii-521211</guid>
		<pubDate>Sat, 20 Feb 2010 20:30:00 +0100</pubDate>
	</item>
	<item>
		<title>Enlaces de la semana (semana 5 de 2010)</title>
		<link>http://www.pixelovers.com/enlaces-semana-semana-5-2010-514523</link>
		<description>&lt;p&gt;Comenza febrero y con ello inauguramos una nueva secci&amp;oacute;n el en blog "Enlaces de la semana", en la que haremos un resumen de todos los enlaces que hemos ido poniendo en twitter (&lt;a title="Sigue a pixelovers en Twitter" href="http://twitter.com/pixelovers" target="_blank"&gt;@pixelovers&lt;/a&gt;) y en la p&amp;aacute;gina &lt;a title="Hazte Fan de Pixelovers en Facebook" href="http://www.facebook.com/pages/Pixelovers/249155987200" target="_blank"&gt;Pixelovers en Facebook&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Javascript&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;C&amp;oacute;digo &lt;strong&gt;Konami en  Javascript&lt;/strong&gt; - &lt;a rel="nofollow" href="http://bit.ly/a3Tm22" target="_blank"&gt;http://bit.ly/a3Tm22&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Rich-Text Editors&lt;/strong&gt; for 2010 and Beyond - &lt;a rel="nofollow" href="http://bit.ly/b4BOEf" target="_blank"&gt;http://bit.ly/b4BOEf&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;The &lt;strong&gt;jQuery  Cross-Domain Ajax Guide&lt;/strong&gt; - &lt;a rel="nofollow" href="http://bit.ly/aRfhU9" target="_blank"&gt;http://bit.ly/aRfhU9&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;10 funciones  imprescindibles en Javascript&lt;/strong&gt; - &lt;a rel="nofollow" href="http://bit.ly/9VSGg8" target="_blank"&gt;http://bit.ly/9VSGg8&lt;/a&gt; | No va a ser todo jQuery. Funciones muy &amp;uacute;tiles en Javascript nativo.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Hovertip&lt;/strong&gt;, plugin  de jQuery para tooltips - &lt;a rel="nofollow" href="http://bit.ly/cuFGl4" target="_blank"&gt;http://bit.ly/cuFGl4&lt;/a&gt; | El mas ligero y completo que hemos encontrado hasta la fecha.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CSS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Pure CSS bar  charts&lt;/strong&gt; as a simple API - &lt;a rel="nofollow" href="http://bit.ly/aHS4AQ" target="_blank"&gt;http://bit.ly/aHS4AQ&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;HTML&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Nuevos campos de  &lt;strong&gt;formulario en HTML5&lt;/strong&gt; - &lt;a rel="nofollow" href="http://bit.ly/9ACgbU" target="_blank"&gt;http://bit.ly/9ACgbU&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Dise&amp;ntilde;o&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;MagazineXpert&lt;/strong&gt;,  publicaci&amp;oacute;n para la comunidad hispanohablante de tecnolog&amp;iacute;as y  aplicaciones Adobe - &lt;a rel="nofollow" href="http://bit.ly/cXaZP5" target="_blank"&gt;http://bit.ly/cXaZP5&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;A Set Of &lt;strong&gt;User  Interface  Design Elements&lt;/strong&gt; (PSD) - &lt;a rel="nofollow" href="http://bit.ly/d2Lg1V" target="_blank"&gt;http://bit.ly/d2Lg1V&lt;/a&gt; | Control buttons, info boxes,  breadcrumbs, forms, scrollbars &amp;amp;  more.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Color Theory&lt;/strong&gt; for  Designers, Part 1: &lt;strong&gt;The Meaning  of Color &lt;/strong&gt;- &lt;a rel="nofollow" href="http://bit.ly/9ixnJb" target="_blank"&gt;http://bit.ly/9ixnJb&lt;/a&gt; | Smashing Magazine.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Color Theory&lt;/strong&gt; For  Designers, Part 2: &lt;strong&gt;Understanding  Concepts And Terminology&lt;/strong&gt; - &lt;a rel="nofollow" href="http://bit.ly/asn06E" target="_blank"&gt;http://bit.ly/asn06E&lt;/a&gt; | Smashing Magazine.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;100+ &lt;strong&gt;Seamless  Patterns&lt;/strong&gt; Great for Creating Website  Backgrounds - &lt;a rel="nofollow" href="http://bit.ly/a9JoCE" target="_blank"&gt;http://bit.ly/a9JoCE&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Beautiful Free  Vector Downloads &lt;strong&gt;Roundup&lt;/strong&gt; - &lt;a rel="nofollow" href="http://bit.ly/9jQ8o8" target="_blank"&gt;http://bit.ly/9jQ8o8&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Utilidades web&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Using&lt;strong&gt; firebug lite  on Google Chrome&lt;/strong&gt;. Originaly made by Firebug Team - &lt;a rel="nofollow" href="http://bit.ly/doKjxi" target="_blank"&gt;http://bit.ly/doKjxi&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;How to Use &lt;strong&gt;sIFR 3&lt;/strong&gt; -  &lt;a rel="nofollow" href="http://bit.ly/dlGflM" target="_blank"&gt;http://bit.ly/dlGflM&lt;/a&gt; | Video explicativo de este  sistema que te permite usar cualquier fuente en la web&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;Best Practices To  Develop Perfect &lt;strong&gt;Websites for iPhone and Mobile Devices&lt;/strong&gt; - &lt;a rel="nofollow" href="http://bit.ly/bFzPDd" target="_blank"&gt;http://bit.ly/bFzPDd&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Espero que os resulten interesantes y si quer&amp;eacute;is descubrir estos enaces antes siguenes en Twitter &lt;a title="Sigue a pixelovers en Twitter" href="http://twitter.com/pixelovers" target="_blank"&gt;@pixelovers&lt;/a&gt; y hazte fan de la p&amp;aacute;gina &lt;a title="Hazte Fan de Pixelovers en Facebook" href="http://www.facebook.com/pages/Pixelovers/249155987200" target="_blank"&gt;Pixelovers  en Facebook&lt;/a&gt;.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/enlaces-semana-semana-5-2010-514523" title="Enlaces de la semana (semana 5 de 2010)"&gt;Enlaces de la semana (semana 5 de 2010)&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3jIV-1FAB73BWeuJEDQvkBdKdAE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3jIV-1FAB73BWeuJEDQvkBdKdAE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3jIV-1FAB73BWeuJEDQvkBdKdAE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3jIV-1FAB73BWeuJEDQvkBdKdAE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=9zS9-doIguw:MnjiyBKsjU4:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=9zS9-doIguw:MnjiyBKsjU4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=9zS9-doIguw:MnjiyBKsjU4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=9zS9-doIguw:MnjiyBKsjU4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>diseño</category>
				<category>diseño de interfaces</category>
				<category>diseño gráfico</category>
				<category>diseño web</category>
				<category>enlaces</category>
				<category>javascript</category>
				<category>jquery</category>
				<comments>http://www.pixelovers.com/enlaces-semana-semana-5-2010-514523#formulario</comments>
		<guid>http://www.pixelovers.com/enlaces-semana-semana-5-2010-514523</guid>
		<pubDate>Sun, 07 Feb 2010 16:40:00 +0100</pubDate>
	</item>
	<item>
		<title>Nuevos campos de formulario en HTML5</title>
		<link>http://www.pixelovers.com/nuevos-campos-formulario-html5-500115</link>
		<description>&lt;p&gt;Leo en &lt;a title="Todo lo que necesitamos saber sobre los formularios HTML5" href="http://diveintohtml5.org/forms.html" target="_blank"&gt;anieto2k todo lo que necesitamos saber sobre los formularios HTML5&lt;/a&gt;, un art&amp;iacute;culo de Dive into HTML5 titlulado &lt;a title="A Form of Madness" lang="en_EN" hreflang="en_EN" href="http://diveintohtml5.org/forms.html" target="_blank"&gt;A Form of Madness&lt;/a&gt;. Habla de atributos y valores de atributos ya existentes, que abren un nuevo mundo alrededor de los formularios. Desafortunadamente no lo soportan casi ning&amp;uacute;n navegador, pero poco a poco todos van implement&amp;aacute;ndolo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Actualizaci&amp;oacute;n:&lt;/strong&gt; Como nos indica neiker, en Buffer Overflow encontramos una review en castellano sobre &lt;a title="HTML5: Novedades en los formularios" href="http://www.bufferoverflow.com.ar/html5-novedades-en-los-formularios/" target="_blank"&gt;HTML5: Novedades en los formularios&lt;/a&gt;.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/nuevos-campos-formulario-html5-500115" title="Nuevos campos de formulario en HTML5"&gt;Nuevos campos de formulario en HTML5&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wuWPKXiWFugSEDwXNj9FEafDCQk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wuWPKXiWFugSEDwXNj9FEafDCQk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wuWPKXiWFugSEDwXNj9FEafDCQk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wuWPKXiWFugSEDwXNj9FEafDCQk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=CjuIeOTv6xc:LZdCO3PRlMs:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=CjuIeOTv6xc:LZdCO3PRlMs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=CjuIeOTv6xc:LZdCO3PRlMs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=CjuIeOTv6xc:LZdCO3PRlMs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>desarrollo web</category>
				<category>formularios</category>
				<category>frontend</category>
				<category>html5</category>
				<category>maquetación</category>
				<comments>http://www.pixelovers.com/nuevos-campos-formulario-html5-500115#formulario</comments>
		<guid>http://www.pixelovers.com/nuevos-campos-formulario-html5-500115</guid>
		<pubDate>Mon, 01 Feb 2010 21:38:00 +0100</pubDate>
	</item>
	<item>
		<title>jQuery 1.4: 15 nuevas características que debes conocer</title>
		<link>http://www.pixelovers.com/jquery-1-4-15-nuevas-caracteristicas-debes-conocer-507107</link>
		<description>&lt;p&gt;Estamos preparando un an&amp;aacute;lisis de la nueva versi&amp;oacute;n jQuery 1.4. Pero mientras la probamos y estudiamos las nuevas funcionalidades, leo en &lt;a title="jQuery 1.4: 15 nuevas caracter&amp;iacute;sticas que debes conocer " href="http://www.webintenta.com/jquery-1-4-15-nuevas-caracteristicas-que-debes-conocer.html" target="_blank"&gt;Intenta&lt;/a&gt; un interesante art&amp;iacute;culo sobre &lt;a title="jQuery 1.4 Released: The 15 New Features you Must Know" lang="en_EN" rel="nofollow" hreflang="en_EN" href="http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/" target="_blank"&gt;jQuery 1.4 Released: The 15 New Features you Must Know&lt;/a&gt;. &amp;iquest;Conoces ya estas nuevas caracter&amp;iacute;sticas?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pasar atributos a &lt;strong&gt;jQuery&lt;/strong&gt;(...)&amp;nbsp; &amp;ndash; &lt;a title="jQuery() - jQuery API" href="http://api.jquery.com/jQuery/#jQuery2" target="_blank"&gt;jQuery&lt;/a&gt;( html, propiedades )&lt;/li&gt;
&lt;li&gt;&amp;iexcl;T&amp;oacute;do &lt;strong&gt;"hasta que"&lt;/strong&gt;!&amp;nbsp; &amp;ndash; .&lt;a title=".nextUntill() - jQuery API" href="http://api.jquery.com/nextUntil/" target="_blank"&gt;nextUntil&lt;/a&gt;([ selector ]), .&lt;a title=".prevUntil() - jQuery API" href="http://api.jquery.com/prevUntil/" target="_blank"&gt;prevUntil&lt;/a&gt;([ selector ]) y .&lt;a title=".parentsUntil() - jQuery API" href="http://api.jquery.com/parentsUntil/" target="_blank"&gt;parentsUntil&lt;/a&gt;([ selector ])&lt;/li&gt;
&lt;li&gt;Enlazar &lt;strong&gt;m&amp;uacute;ltiples&lt;/strong&gt; controladores de &lt;strong&gt;eventos&lt;/strong&gt; &amp;ndash; .&lt;a title=".bind() - jQuery API" href="http://api.jquery.com/bind/" target="_blank"&gt;bind&lt;/a&gt;( eventos )&lt;/li&gt;
&lt;li&gt;Per-property-easing (Facilitando por propiedad) &amp;ndash; .&lt;a title=".animate() - jQuery API" href="http://api.jquery.com/animate/#per-property-easing" target="_blank"&gt;animate&lt;/a&gt;(propiedades, opciones)&lt;/li&gt;
&lt;li&gt;&amp;iexcl;Nuevos &lt;strong&gt;eventos live&lt;/strong&gt;! &amp;ndash; .&lt;a title=".live() - jQuery API" href="http://api.jquery.com/live/" target="_blank"&gt;live&lt;/a&gt;("submit|change|focusin|focusout", controlador)&lt;/li&gt;
&lt;li&gt;Control del &lt;strong&gt;contexto&lt;/strong&gt; de una funci&amp;oacute;n &amp;ndash; &lt;a title="jQuery.proxy() - jQuery API" href="http://api.jquery.com/jQuery.proxy/" target="_blank"&gt;jQuery.proxy&lt;/a&gt;(funci&amp;oacute;n, contexto)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Demora&lt;/strong&gt; una cola de Animaci&amp;oacute;n &amp;ndash; .&lt;a title=".delay() - jQuery API" href="http://api.jquery.com/delay/" target="_blank"&gt;delay&lt;/a&gt;(duraci&amp;oacute;n, [ nombre de la cola ])&lt;/li&gt;
&lt;li&gt;Comprobar si un elemento &lt;strong&gt;tiene algo&lt;/strong&gt; &amp;ndash; .&lt;a title=".has() - jQuery API" href="http://api.jquery.com/has/" target="_blank"&gt;has&lt;/a&gt;(selector) y &lt;a title="jQuery.contains() - jQuery API" href="http://api.jquery.com/jQuery.contains/" target="_blank"&gt;jQuery.contains&lt;/a&gt;(contenedor, contenido)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desenvolver&lt;/strong&gt; elementos &amp;ndash; .&lt;a title=".unwrap() - jQuery API" href="http://api.jquery.com/unwrap/" target="_blank"&gt;unwrap&lt;/a&gt;()&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eliminar&lt;/strong&gt; elementos &lt;strong&gt;sin borrar datos&lt;/strong&gt; &amp;ndash; .&lt;a title=".detach() - jQuery API" href="http://api.jquery.com/detach/" target="_blank"&gt;detach&lt;/a&gt;([ selector ])&lt;/li&gt;
&lt;li&gt;Mejoras en &lt;strong&gt;index&lt;/strong&gt;(...) &amp;ndash; .&lt;a title=".index() - jQuery API" href="http://api.jquery.com/index/" target="_blank"&gt;index&lt;/a&gt;(selector)&lt;/li&gt;
&lt;li&gt;Los m&amp;eacute;todos de manipulaci&amp;oacute;n DOM aceptan "&lt;strong&gt;callbacks&lt;/strong&gt;":      
&lt;ul&gt;
&lt;li&gt;&lt;a title=".after() - jQuery API" href="http://api.jquery.com/after" target="_blank"&gt;after&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".before() - jQuery API" href="http://api.jquery.com/before" target="_blank"&gt;before&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".append() - jQuery API" href="http://api.jquery.com/append" target="_blank"&gt;append&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".prepend() - jQuery API" href="http://api.jquery.com/prepend" target="_blank"&gt;prepend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".addClass() - jQuery API" href="http://api.jquery.com/addClass" target="_blank"&gt;addClass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".toggleClass() - jQuery API" href="http://api.jquery.com/toggleClass" target="_blank"&gt;toggleClass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".removeClass() - jQuery API" href="http://api.jquery.com/removeClass" target="_blank"&gt;removeClass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".wrap() - jQuery API" href="http://api.jquery.com/wrap" target="_blank"&gt;wrap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".wrapAll() - jQuery API" href="http://api.jquery.com/wrapAll" target="_blank"&gt;wrapAll&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".wrapInner() - jQuery API" href="http://api.jquery.com/wrapInner" target="_blank"&gt;wrapInner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".val() - jQuery API" href="http://api.jquery.com/val" target="_blank"&gt;val&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".text() - jQuery API" href="http://api.jquery.com/text" target="_blank"&gt;text&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".replaceWith() - jQuery API" href="http://api.jquery.com/replaceWith" target="_blank"&gt;replaceWith&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".css() - jQuery API" href="http://api.jquery.com/css" target="_blank"&gt;css&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".attr() - jQuery API" href="http://api.jquery.com/attr" target="_blank"&gt;attr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title=".html() - jQuery API" href="http://api.jquery.com/html" target="_blank"&gt;html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Determinar el &lt;strong&gt;tipo del objeto&lt;/strong&gt; &amp;ndash; &lt;a title="jQuery.isPlainObject() - jQuery API" href="http://api.jquery.com/jQuery.isPlainObject/" target="_blank"&gt;jQuery.isPlainObject&lt;/a&gt;(objeto) y &lt;a title="jQuery.isEmptyObject() - jQuery API" href="http://api.jquery.com/jQuery.isEmptyObject/" target="_blank"&gt;jQuery.isEmptyObject&lt;/a&gt;(objeto)&lt;/li&gt;
&lt;li&gt;Mejoras en &lt;strong&gt;Closest&lt;/strong&gt;(...) &amp;ndash; .&lt;a title=".closest() - jQuery API" href="http://api.jquery.com/closest/" target="_blank"&gt;closest&lt;/a&gt;(selector, [ contexto ])&lt;/li&gt;
&lt;li&gt;Nuevos eventos! &lt;strong&gt;focusIn&lt;/strong&gt; y &lt;strong&gt;focusOut&lt;/strong&gt; &amp;ndash; .&lt;a title=".focusin() - jQuery API" href="http://api.jquery.com/focusin/" target="_blank"&gt;focusin&lt;/a&gt;(manejador) y .&lt;a title=".focusout() - jQuery API" href="http://api.jquery.com/focusout/" target="_blank"&gt;focusout&lt;/a&gt;(manejador)&lt;/li&gt;
&lt;/ol&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/jquery-1-4-15-nuevas-caracteristicas-debes-conocer-507107" title="jQuery 1.4: 15 nuevas características que debes conocer"&gt;jQuery 1.4: 15 nuevas características que debes conocer&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mvJfMJyIOozEaNRlz-U6XLCKN0M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mvJfMJyIOozEaNRlz-U6XLCKN0M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mvJfMJyIOozEaNRlz-U6XLCKN0M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mvJfMJyIOozEaNRlz-U6XLCKN0M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=pQaJJPOk-04:cEWGKcms0Uo:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=pQaJJPOk-04:cEWGKcms0Uo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=pQaJJPOk-04:cEWGKcms0Uo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=pQaJJPOk-04:cEWGKcms0Uo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>frameworks</category>
				<category>javascript</category>
				<category>jquery</category>
				<comments>http://www.pixelovers.com/jquery-1-4-15-nuevas-caracteristicas-debes-conocer-507107#formulario</comments>
		<guid>http://www.pixelovers.com/jquery-1-4-15-nuevas-caracteristicas-debes-conocer-507107</guid>
		<pubDate>Mon, 25 Jan 2010 15:30:00 +0100</pubDate>
	</item>
	<item>
		<title>Interfaces gráficas de usuario (plantillas de diseño)</title>
		<link>http://www.pixelovers.com/interfaces-graficas-usuario-plantillas-diseno-489880</link>
		<description>&lt;p&gt;Ahora que empieza un a&amp;ntilde;o nuevo es un buen momento para hacer nuevos prop&amp;oacute;sitos, y qu&amp;eacute; mejor que mejorar tus dise&amp;ntilde;os siguiendo una &lt;strong&gt;ret&amp;iacute;cula&lt;/strong&gt; o desarrollando para &lt;strong&gt;nuevos dispositivos&lt;/strong&gt;. Os traemos unas cuantas plantillas que pueden hacerte m&amp;aacute;s facil llevar a cabo este prop&amp;oacute;sito de a&amp;ntilde;o nuevo.&lt;/p&gt;
&lt;h2&gt;Navegadores de escritorio&lt;/h2&gt;
&lt;h3&gt;Ret&amp;iacute;cula de 960px&lt;/h3&gt;
&lt;p&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211092.jpg"&gt;&lt;img style="float: right;" title="960px Grid" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211092_p.jpg" alt="960px Grid" width="126" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Es una buena base para tus dise&amp;ntilde;os web puesto que es una medida muy versatil que te permite multiples divisiones en columnas de diferentes anchos. Adem&amp;aacute;s este ancho cabe perfectamente en los navegadores a una resoluci&amp;oacute;n de pantalla de 1024x768 px., que es la m&amp;aacute;s estandar actualmente, quit&amp;aacute;ndo bordes y barras de scroll.&lt;/p&gt;
&lt;p&gt;M&amp;aacute;s info | &lt;a title="Ir a 960px grid" hreflang="en_EN" href="http://www.designified.com/blog/article/41/960px-grid" target="_blank"&gt;Plantilla de ret&amp;iacute;cula de 960px&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a title="Descargar 960px Grid" href="http://www.designified.com/downloads/960_Grid.zip" target="_blank"&gt;Descargar 960px Grid&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Elementos del navegador web&lt;/h3&gt;
&lt;p&gt;Si quieres dotar a tus dise&amp;ntilde;os de algo m&amp;aacute;s de realismo puedes presentarlos incrustados en una ventana de navegador o a&amp;ntilde;adiendo elementos de formulario, como botones, inputs, barras de scroll, etc... Siendos sinceros la interfaz gr&amp;aacute;fica de Mac OS X es la m&amp;aacute;s bonita y apreciada por los dise&amp;ntilde;adores, pero de todas formas os dejamos las plantillas de los m&amp;aacute;s habituales.&lt;/p&gt;
&lt;h4&gt;Navegadores en Mac OS X&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211081.jpg"&gt;&lt;img class="fotobonita" style="float: right;" title="Ventana Safari en Mac OS X" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211081_p.jpg" alt="Ventana Safari en Mac OS X" width="200" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Safari&lt;/strong&gt;: &lt;a title="Ir a Mac OS X Safari Web Browser Elements" lang="en_EN" hreflang="en_EN" href="http://www.designerstoolbox.com/designresources/elements/mac/safari/" target="_blank"&gt;Mac OS X Safari Web Browser Elements&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar ventana de Safari en Mac OS X" href="http://www.designerstoolbox.com/downloads/ele_mac_safari_window_all.zip"&gt;Descargar ventanas de Safari en Mac OS X&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar elementos de formulario de Safari en Max OS X" href="http://www.designerstoolbox.com/downloads/ele_mac_safari_all.zip" target="_blank"&gt;Descargar elementos de formulario de Safari en Max OS X&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211080.jpg"&gt;&lt;img class="fotobonita" style="float: right;" title="Ventana Firefox en Mac OS X" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211080_p.jpg" alt="Ventana Firefox en Mac OS X" width="200" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Firefox&lt;/strong&gt;: &lt;a title="Ir a Mac OS X Firefox Web Browser Elements" lang="en_EN" hreflang="en_EN" href="http://www.designerstoolbox.com/designresources/elements/mac/firefox/" target="_blank"&gt;Mac OS X Firefox Web Browser Elements&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar ventana de Firefox sobre Mac OS X" href="http://www.designerstoolbox.com/downloads/ele_mac_firefox_window_all.zip"&gt;Descargar ventanas de Firefox en Mac OS X&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar elementos de formulario de Firefox en Max OS X" href="http://www.designerstoolbox.com/downloads/ele_mac_firefox_all.zip" target="_blank"&gt;Descargar elementos de formulario de Firefox en Max OS X&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Navegadores en Windows Vista&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211082.jpg"&gt;&lt;img class="fotobonita" style="float: right;" title="Ventana Explorer en Vista" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211082_p.jpg" alt="Ventana Explorer en Vista" width="200" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Internet Explorer&lt;/strong&gt;: &lt;a title="Ir a Windows Vista IE Web Browser Elements" lang="en_EN" xml:lang="en_EN" hreflang="en_EN" href="http://www.designerstoolbox.com/designresources/elements/vista/ie/" target="_blank"&gt;Windows Vista IE Web Browser Elements&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar ventana de Internet Explorer en Windows Vista" href="http://www.designerstoolbox.com/downloads/ele_winvista_ie_window_all.zip"&gt;Descargar ventanas de Internet Explorer en Windows Vista&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar elementos de formulario de Internet Explorer en Windows Vista" href="http://www.designerstoolbox.com/downloads/ele_winvista_ie_all.zip" target="_blank"&gt;Descargar elementos de formulario de Internet Explorer en Windows Vista&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211084.jpg"&gt;&lt;img class="fotobonita" style="float: right;" title="Ventana Firefox en Vista" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211084_p.jpg" alt="Ventana Firefox en Vista" width="200" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Firefox&lt;/strong&gt;: &lt;a title="Ir a Windows Vista Firefox Web Browser Elements" lang="en_EN" xml:lang="en_EN" hreflang="en_EN" href="http://www.designerstoolbox.com/designresources/elements/vista/firefox/" target="_blank"&gt;Windows Vista Firefox Web Browser Elements&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar ventana de Firefox sobre Windows Vista" href="http://www.designerstoolbox.com/downloads/ele_winvista_firefox_window_all.zip"&gt;Descargar ventanas de Firefox en Windows Vista&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar elementos de formulario de Firefox en Windows Vista" href="http://www.designerstoolbox.com/downloads/ele_winvista_firefox_all.zip" target="_blank"&gt;Descargar elementos de formulario de Firefox en Windows Vista&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Navegadores en Windows XP&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211083.jpg"&gt;&lt;img class="fotobonita" style="float: right;" title="Ventana Explorer en XP" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211083_p.jpg" alt="Ventana Explorer en XP" width="200" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Internet Explorer&lt;/strong&gt;: &lt;a title="Ir a Windows XP IE Web Browser Elements" lang="en_EN" xml:lang="en_EN" hreflang="en_EN" href="http://www.designerstoolbox.com/designresources/elements/xp/ie/" target="_blank"&gt;Windows XP IE Web Browser Elements&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar ventana de Internet Explorer en Windows XP" href="http://www.designerstoolbox.com/downloads/ele_winxp_ie_window_all.zip"&gt;Descargar ventanas de Internet Explorer en Windows XP&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar elementos de formulario de Internet Explorer en Windows XP" href="http://www.designerstoolbox.com/downloads/ele_winxp_ie_all.zip" target="_blank"&gt;Descargar elementos de formulario de Internet Explorer en Windows XP&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211085.jpg"&gt;&lt;img class="fotobonita" style="float: right;" title="Ventana Firefox en XP" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211085_p.jpg" alt="Ventana Firefox en XP" width="200" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Firefox&lt;/strong&gt;: &lt;a title="Ir a Windows XP Firefox Web Browser Elements" lang="en_EN" xml:lang="en_EN" hreflang="en_EN" href="http://www.designerstoolbox.com/designresources/elements/xp/firefox/" target="_blank"&gt;Windows XP Firefox Web Browser Elements&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar ventana de Firefox sobre Windows XP" href="http://www.designerstoolbox.com/downloads/ele_winxp_firefox_window_all.zip"&gt;Descargar ventanas de Firefox en Windows XP&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a title="Descargar elementos de formulario de Firefox en Windows XP" href="http://www.designerstoolbox.com/downloads/ele_winxp_firefox_all.zip" target="_blank"&gt;Descargar elementos de formulario de Firefox en Windows XP&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Dispositivos M&amp;oacute;viles&lt;/h2&gt;
&lt;p&gt;Cada vez es m&amp;aacute;s frecuente el uso de m&amp;oacute;viles para navegar por internet, por ello la necesidad de crear una &lt;strong&gt;versi&amp;oacute;n m&amp;oacute;vil de tu web&lt;/strong&gt; se est&amp;aacute; conviertiendo en algo indispensable. Debido a la multitud de dispositivos diferentes que existen tenemos la opci&amp;oacute;n de crear una web gen&amp;eacute;rica, o si le queremos &lt;strong&gt;dotar de valor a&amp;ntilde;adido&lt;/strong&gt; a nuestra web, podemos adaptar nuestro sitio a cada uno de los diferentes dispositivos.&lt;/p&gt;
&lt;h3&gt;Plantilla de la interfaz de iPhone&lt;/h3&gt;
&lt;p&gt;Nuestro compa&amp;ntilde;ero &lt;a title="Ver perfil de Albert Garc&amp;iacute;a" href="http://www.obolog.com/users/obokaman"&gt;Albert Garc&amp;iacute;a&lt;/a&gt;, ya nos habl&amp;oacute; sobre &lt;a title="Leer art&amp;iacute;culo Plantilla para photoshop del interfaz de iPhone" href="http://www.pixelovers.com/plantilla-photoshop-interfaz-iphone-121081"&gt;Plantilla para photoshop de la interfaz de iPhone&lt;/a&gt;. Y ahora os traemos el PSD del la &amp;uacute;ltima versi&amp;oacute;n del sistema operativo M&amp;oacute;vil de Apple, el iPhone OS 3.0, que viene con nuevos elementos gr&amp;aacute;ficos como:&lt;/p&gt;
&lt;p&gt;&lt;span id="result_box"&gt;&lt;span style="background-color: #ffffff;" title="&amp;bull; Map and map elements including curl"&gt;&amp;bull; Mapa y elementos del mapa, inluido el enrrollado&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #ffffff;" title="&amp;bull; Copy and paste elements"&gt;&amp;bull; &lt;/span&gt;&lt;/span&gt;&lt;span id="result_box"&gt;&lt;span style="background-color: #ffffff;" title="&amp;bull; Copy and paste elements"&gt;Elementos&lt;/span&gt;&lt;/span&gt;&lt;span id="result_box"&gt;&lt;span style="background-color: #ffffff;" title="&amp;bull; Copy and paste elements"&gt; para copiar y pegar&lt;br /&gt;&lt;/span&gt;&lt;span title="&amp;bull; Timeline bar editor"&gt;&amp;bull; Editor de barra de l&amp;iacute;nea de tiempo&lt;br /&gt;&lt;/span&gt;&lt;span title="&amp;bull; Horizontal iPhone"&gt;&amp;bull; iPhone Horizontal&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #ffffff;" title="&amp;bull; Horizontal Panels bars and keyboards"&gt;&amp;bull; Barras de paneles horizontales y teclados&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211137.jpg"&gt;&lt;img class="fotobonita" title="iPhone GUI 3.0" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211137_p.jpg" alt="iPhone GUI 3.0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;M&amp;aacute;s info | &lt;a title="More about iPhone GUI PSD 3.0" lang="en_EN" hreflang="en_EN" href="http://www.teehanlax.com/blog/2009/06/18/iphone-gui-psd-30/" target="_blank"&gt;iPhone GUI PSD 3.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a title="Descargar iPhone GUI PSD 3.0" href="http://teehanlax.com/downloads/iPhone_GUI.psd.zip" target="_blank"&gt;Descargar iPhone GUI PSD 3.0&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Plantilla de la interfaz de Andrid&lt;/h3&gt;
&lt;p&gt;Los chicos de &lt;a title="Go to Smashing Magazince" lang="en_EN" hreflang="en_EN" href="http://www.smashingmagazine.com/" target="_blank"&gt;Smashing Magazine&lt;/a&gt;, que recientemente han publicado &lt;a title="The Smashing Book" href="http://www.pixelovers.com/the-smashing-book-435026"&gt;The Smashing Book&lt;/a&gt;, nos dejan esta interfaz completita para su uso libre.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211134.jpg"&gt;&lt;img class="fotobonita" title="Android GUI" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211134_p.jpg" alt="Android GUI" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;M&amp;aacute;s info | &lt;a title="More about Android GUI PSD Vector Kit" lang="en_EN" hreflang="en_EN" href="http://www.smashingmagazine.com/2009/08/18/android-gui-psd-vector-kit/" target="_blank"&gt;Android GUI PSD Vector Kit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a title="Descargar Android GUI PSD Vector Kit" href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/android-gui-psd/android-gui-psd.zip" target="_blank"&gt;Descargar Android GUI PSD Vector Kit&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Plantilla de la interfaz de Palm Pre&lt;/h3&gt;
&lt;p&gt;La gente de &lt;a title="Go to teehan+lax" href="http://www.teehanlax.com/" target="_blank"&gt;teehan+lax&lt;/a&gt;, los que han desarrollado&amp;nbsp;iPhone GUI PSD 3.0., nos vuelve a sorprender con Palm Pre GUI PSD.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a class="thickbox" href="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211140.jpg"&gt;&lt;img title="Palm Pre GUI" src="http://static.obolog.net/multimedia/fotos/490000/489880/489880-211140_p.jpg" alt="Palm Pre GUI" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;M&amp;aacute;s info | &lt;a title="More about Palm Pre GUI PSD" lang="en_EN" hreflang="en_EN" href="http://www.teehanlax.com/blog/2009/07/08/palm-pre-gui-psd/" target="_blank"&gt;Palm Pre GUI PSD&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a title="Descargar Palm Pre GUI PSD Tipograf&amp;iacute;a Coconut" href="http://teehanlax.com/downloads/PalmPre_GUI_1_0_Coconut.psd.zip" target="_blank"&gt;Descargar Palm Pre GUI PSD (tipograf&amp;iacute;a Coconut)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a title="Descargar Palm Pre GUI PSD Tipograf&amp;iacute;a Avenir" href="http://teehanlax.com/downloads/PalmPre_GUI_1_0_Avenir.psd.zip" target="_blank"&gt;Descargar Palm Pre GUI PSD (tipograf&amp;iacute;a Avenir)&lt;/a&gt;.&lt;/p&gt;			&lt;p&gt;
			&lt;a href="http://www.pixelovers.com/fotos/interfaces-graficas-usuario-plantillas-diseno-489880" title="Fotos de Interfaces gráficas de usuario (plantillas de diseño)"&gt;Ver álbum de fotos&lt;/a&gt; |
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/interfaces-graficas-usuario-plantillas-diseno-489880" title="Interfaces gráficas de usuario (plantillas de diseño)"&gt;Interfaces gráficas de usuario (plantillas de diseño)&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ERb2qlhQVdnXqNcYb9TaPFEc3OA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ERb2qlhQVdnXqNcYb9TaPFEc3OA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ERb2qlhQVdnXqNcYb9TaPFEc3OA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ERb2qlhQVdnXqNcYb9TaPFEc3OA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=ydxSc7iQtp8:Pk2myEgbJ5w:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=ydxSc7iQtp8:Pk2myEgbJ5w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=ydxSc7iQtp8:Pk2myEgbJ5w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=ydxSc7iQtp8:Pk2myEgbJ5w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>diseño</category>
				<category>diseño de interfaces</category>
				<category>diseño web</category>
				<category>dispositivos móviles</category>
				<category>navegadores web</category>
				<comments>http://www.pixelovers.com/interfaces-graficas-usuario-plantillas-diseno-489880#formulario</comments>
		<guid>http://www.pixelovers.com/interfaces-graficas-usuario-plantillas-diseno-489880</guid>
		<pubDate>Mon, 11 Jan 2010 09:27:00 +0100</pubDate>
	</item>
	<item>
		<title>RMSForms, framework CSS para formularios</title>
		<link>http://www.pixelovers.com/rmsforms-framework-css-formularios-478263</link>
		<description>&lt;p&gt;&lt;img style="float: right;" title="Robert M. Sandy Jr." src="http://static.obolog.net/multimedia/fotos/479000/478263/478263-210167_t.jpg" alt="Robert M. Sandy Jr." width="65" height="65" /&gt;Si eres desarrollador web, seguro que alguna vez has maldecido cuando te ha tocado maquetar formularios. Y es totalmente normal, a veces se convierte en un quebradero de cabeza suplicio. &lt;a title="Robert M. Sandy Jr. website" lang="en_EN" hreflang="en_EN" href="http://www.rmsjr.com/" target="_blank"&gt;Robert M. Sandy Jr.&lt;/a&gt; ha pensado en ello y por eso a desarrollado &lt;a title="Read more about RMSForms" lang="en_EN" hreflang="en_EN" href="http://www.rmsjr.com/blog/web-design/rmsforms-a-flexible-tableless-css-forms-framework/" target="_blank"&gt;RMSForms&lt;/a&gt;, un framework CSS para ayudar a dar estilo a los molestos formularios. No solo se centra en las incoherencias de los navegadores, si no tambi&amp;eacute;n en conseguir una disposici&amp;oacute;n correcta tanto visualmente como sem&amp;aacute;nticamente. As&amp;iacute; que si tienes que hacer una web con muchos formularios, puedes plantearte utilizar esta hoja de estilo de menos de 100 l&amp;iacute;neas, sin comentarios, y un tama&amp;ntilde;o de 8Kb.&lt;/p&gt;
&lt;p&gt;Est&amp;aacute; basado en una estructura HTML muy simple:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="html"&gt;&amp;lt;fieldset&amp;gt;&lt;br /&gt;  &amp;lt;legend&amp;gt;&amp;lt;/legend&amp;gt;&lt;br /&gt;  &amp;lt;ul class="form [modifier]"&amp;gt;&lt;br /&gt;    &amp;lt;li&amp;gt;&amp;lt;label class="[label modifier]"&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;input/&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;  &amp;lt;/ul&amp;gt; &lt;br /&gt; &amp;lt;/fieldset&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Donde los modificadores est&amp;aacute;n compuestos por 3 letras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;H&lt;/strong&gt; = Bloque Horizonal&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V&lt;/strong&gt; = Bloque Vertical&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;I&lt;/strong&gt; = Inline&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y se pueden generar los siguientes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;vvv&lt;/strong&gt; &amp;ndash; Vertical  &amp;lt;li&amp;gt;, Vertical &amp;lt;label&amp;gt;,  Vertical campos de formulario&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;hvv&lt;/strong&gt; &amp;ndash; Horizontal  &amp;lt;li&amp;gt;,  Vertical &amp;lt;label&amp;gt;, Vertical campos de formulario&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;hii&lt;/strong&gt; &amp;ndash; Horizontal  &amp;lt;li&amp;gt;,  Inline &amp;lt;label&amp;gt;, Inline campos de formulario&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;hhh&lt;/strong&gt; &amp;ndash; Horizontal  &amp;lt;li&amp;gt;, Horizontal &amp;lt;label&amp;gt;, Horizontal campos de formulario&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vii&lt;/strong&gt; &amp;ndash; Vertical &amp;lt;li&amp;gt;, Inline &amp;lt;label&amp;gt;, Inline campos de formulario&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vhh&lt;/strong&gt; &amp;ndash; Vertical &amp;lt;li&amp;gt;, Horizontal &amp;lt;label&amp;gt;, Horizontal campos de formulario&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si quer&amp;eacute;is ver el resultado, aqu&amp;iacute; ten&amp;eacute;is un &lt;a title="Demo RMSForm" href="http://www.rmsjr.com/RMSforms/RMSforms-v0.5.html" target="_blank"&gt;ejemplo de RMSForm&lt;/a&gt;.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/rmsforms-framework-css-formularios-478263" title="RMSForms, framework CSS para formularios"&gt;RMSForms, framework CSS para formularios&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LuX3yFkg02VAIutv0p4mZu_3MKw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LuX3yFkg02VAIutv0p4mZu_3MKw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LuX3yFkg02VAIutv0p4mZu_3MKw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LuX3yFkg02VAIutv0p4mZu_3MKw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=4_zwmbrL76U:LaE_CTBfsCA:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=4_zwmbrL76U:LaE_CTBfsCA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=4_zwmbrL76U:LaE_CTBfsCA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=4_zwmbrL76U:LaE_CTBfsCA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>css</category>
				<category>desarrolladores</category>
				<category>desarrollo web</category>
				<category>diseño de interfaces</category>
				<category>frameworks</category>
				<comments>http://www.pixelovers.com/rmsforms-framework-css-formularios-478263#formulario</comments>
		<guid>http://www.pixelovers.com/rmsforms-framework-css-formularios-478263</guid>
		<pubDate>Thu, 07 Jan 2010 09:21:00 +0100</pubDate>
	</item>
	<item>
		<title>Crear un CSS inicial con PrimerCSS</title>
		<link>http://www.pixelovers.com/crear-css-inicial-primercss-477755</link>
		<description>&lt;p&gt;&lt;img style="float: right;" title="PrimerCSS" src="http://static.obolog.net/multimedia/fotos/478000/477755/477755-210065.jpg" alt="PrimerCSS" /&gt;Si te da miedo enfrentarte a una hoja de estilos en blanco, no sabes por donde empezar. &amp;iquest;Qu&amp;eacute;&amp;nbsp; elementos tienes en el HTML? &amp;iquest;Qu&amp;eacute; clases has usado? &amp;iquest;Qu&amp;eacute; identificadores empeaste? Y tambi&amp;eacute;n si no te quieres dejar ning&amp;uacute;n elemento de la p&amp;aacute;gina sin estilo una buena forma de empezar es con &lt;a title="P&amp;aacute;gina de PrimerCSS" href="http://primercss.com/"&gt;PrimerCSS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Personalmente le veo m&amp;aacute;s utilidad cuando quieres hacer una hoja de estilo para una web ya existent, m&amp;aacute;s que para empezar un proyecto. Por ejemplo es muy &amp;uacute;til para hacer una plantilla de Wordpress u otro CMS. Si te gustar&amp;iacute;a crearte tu propio CSS para &lt;a title="Ir a la p&amp;aacute;gina de Stylish - addon para Firefox" href="https://addons.mozilla.org/en-US/firefox/addon/2108"&gt;Stylish&lt;/a&gt; no te dejar&amp;iacute;as nada por dise&amp;ntilde;ar. &amp;iquest;Para qu&amp;eacute; utilizar&amp;iacute;as tu PrimerCSS? &amp;iquest;Le ves utilidad o prefieres ir sacando tu mismo los selectores?&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/crear-css-inicial-primercss-477755" title="Crear un CSS inicial con PrimerCSS"&gt;Crear un CSS inicial con PrimerCSS&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1EnrdMRu5hEx6hopnR9BAB6vdsI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1EnrdMRu5hEx6hopnR9BAB6vdsI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1EnrdMRu5hEx6hopnR9BAB6vdsI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1EnrdMRu5hEx6hopnR9BAB6vdsI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=4ISAWGZ5VTk:FiWQpDTzo0Q:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=4ISAWGZ5VTk:FiWQpDTzo0Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=4ISAWGZ5VTk:FiWQpDTzo0Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=4ISAWGZ5VTk:FiWQpDTzo0Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>css</category>
				<category>desarrollo web</category>
				<category>herramientas</category>
				<comments>http://www.pixelovers.com/crear-css-inicial-primercss-477755#formulario</comments>
		<guid>http://www.pixelovers.com/crear-css-inicial-primercss-477755</guid>
		<pubDate>Tue, 05 Jan 2010 10:22:00 +0100</pubDate>
	</item>
	<item>
		<title>Feliz 2010</title>
		<link>http://www.pixelovers.com/feliz-2010-477820</link>
		<description>&lt;p&gt;&lt;img title="Feliz 2010" src="http://static.obolog.net/multimedia/fotos/478000/477820/477820-210085.jpg" alt="Feliz 2010" width="616" height="411" /&gt;&lt;/p&gt;
&lt;p&gt;El a&amp;ntilde;o 2009 ha sido importante para pixelovers porque hemos consegudo formar un nuevo equipo de editores, &lt;a title="Ver perfil de Juanma Garrido" href="http://www.obolog.com/users/juanmaguitar"&gt;Juanma Garrido&lt;/a&gt; y &lt;a title="Ver perfil de Jorge del Casar" href="http://www.obolog.com/users/jorgecasar"&gt;Jorge del Casar&lt;/a&gt;, para poder devolverle la actividad al blog. Estamos seguros que 2010 ser&amp;aacute; un a&amp;ntilde;o rico en art&amp;iacute;culos de calidad y m&amp;aacute;s frecuencuentes.&lt;/p&gt;
&lt;p&gt;Si no lo has hecho ya, s&amp;iacute;guenos en Twitter (&lt;a title="Sigue a pixelovers en Twitter" href="http://twitter.com/pixelovers"&gt;@pixelovers&lt;/a&gt;) o suscr&amp;iacute;bete a nuestro &lt;a title="RSS de Pixelovers" href="http://www.pixelovers.com/index.xml"&gt;RSS&lt;/a&gt;, para estar al d&amp;iacute;a de todas las novedades de Pixelovers. Si quieres contactar con nosotros para propornernos nuevos prop&amp;oacute;sitos para el a&amp;ntilde;o 2010 puede hacerlo comentando esta entrada o mediante el &lt;a title="Contacta con nosotros" href="http://www.pixelovers.com/contacto"&gt;formulario de contacto&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;iexcl;Feliz 2010 a todos!&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/feliz-2010-477820" title="Feliz 2010"&gt;Feliz 2010&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/unRdw6t266M1L_9ajMMi4yzIYco/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/unRdw6t266M1L_9ajMMi4yzIYco/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/unRdw6t266M1L_9ajMMi4yzIYco/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/unRdw6t266M1L_9ajMMi4yzIYco/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=3x-9H5yJTa0:bKvZCjiUQM4:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=3x-9H5yJTa0:bKvZCjiUQM4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=3x-9H5yJTa0:bKvZCjiUQM4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=3x-9H5yJTa0:bKvZCjiUQM4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>año nuevo</category>
				<category>feliz 2010</category>
				<category>navidad</category>
				<comments>http://www.pixelovers.com/feliz-2010-477820#formulario</comments>
		<guid>http://www.pixelovers.com/feliz-2010-477820</guid>
		<pubDate>Fri, 01 Jan 2010 19:14:00 +0100</pubDate>
	</item>
	<item>
		<title>Geoposicionamiento web y la API de Google Maps V3</title>
		<link>http://www.pixelovers.com/geoposicionamiento-web-api-google-maps-v3-444732</link>
		<description>&lt;p&gt;El otro d&amp;iacute;a hablabamos de &lt;a title="Leer C&amp;oacute;mo geoposicionar un dispositivo con el navegador" href="http://www.pixelovers.com/geoposicionar-dispositivo-navegador-435853"&gt;C&amp;oacute;mo geoposicionar un dispositivo con el navegador&lt;/a&gt;, pero por si sola no podemos darle mucha utilidad, puesto que necesitamos ejecutar algo en el successCallback. Y aqu&amp;iacute; es donde aparece la nueva versi&amp;oacute;n de la &lt;a title="Leer la documentaci&amp;oacute;n de la API de Google Maps V3" href="http://code.google.com/apis/maps/documentation/v3/" target="_blank"&gt;API de Google Maps V3&lt;/a&gt;. La API Javascript es muy parecida a su antecesora, la versi&amp;oacute;n 2. Sin embargo ha cambiado mucho internamente, ya que ha sido &lt;strong&gt;dise&amp;ntilde;ada para cargar m&amp;aacute;s r&amp;aacute;pidamente&lt;/strong&gt;, especialmente en &lt;strong&gt;navegadores m&amp;oacute;viles&lt;/strong&gt;, como los dispositivos basados en Android y el iPhone&amp;trade;.&lt;/p&gt;
&lt;p&gt;Una caracteristica muy destacable de esta nueva versi&amp;oacute;n es que ha sido implementada usando un &lt;strong&gt;marco de trabajo MVC&lt;/strong&gt;. Tambi&amp;eacute;n cabe descatacar la &lt;strong&gt;desaparici&amp;oacute;n de API key&lt;/strong&gt;, lo cual elimina tr&amp;aacute;mites previos a la hora de implementar tu trabajo en diferentes dominios.&lt;/p&gt;
&lt;p&gt;Ponerlo en marcha es realmente f&amp;aacute;cil. S&amp;oacute;lo tienes que seguir estos &lt;strong&gt;5 sencillos pasos&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Incluir el c&amp;oacute;digo JavaScript&lt;/strong&gt; de la API de Google Maps usando la etiqueta &lt;em&gt;script&lt;/em&gt;
&lt;pre class="code"&gt;&lt;code class="html"&gt;&amp;lt;script&lt;br /&gt;   type="text/javascript"&lt;br /&gt;   src="http://maps.google.com/maps/api/js?sensor=set_to_true_or_false"&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Crear un elemento&lt;/strong&gt; div llamado "map_canvas" para contener el Mapa.
&lt;pre class="code"&gt;&lt;code class="html"&gt;&amp;lt;div id="map_canvas" style="width:100%; height:100%"&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Crear un objeto en JavaScript&lt;/strong&gt; para guardar una serie de propiedades del mapa.
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;var myOptions = {&lt;br /&gt;   zoom: 8,&lt;br /&gt;   center: latlng,&lt;br /&gt;   mapTypeId: google.maps.MapTypeId.ROADMAP&lt;br /&gt;};&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Escribir una funci&amp;oacute;n de JavaScript&lt;/strong&gt; para crear el objeto "mapa".
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;function initialize() {&lt;br /&gt;   var latlng = new google.maps.LatLng([latitud], [longitud]);&lt;br /&gt;   var map = new google.maps.Map(&lt;br /&gt;      document.getElementById("map_canvas"),&lt;br /&gt;      myOptions&lt;br /&gt;   );&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inicializar el objeto mapa&lt;/strong&gt; en la funci&amp;oacute;n &lt;em&gt;onload&lt;/em&gt; del &lt;em&gt;body&lt;/em&gt;.&lt;br /&gt;
&lt;pre class="code"&gt;&lt;code class="html"&gt;&amp;lt;body onload="initialize()"&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Nostros, en Pixelovers, hemos querido ir un poco m&amp;aacute;s lejos y hacer una prueba de integraci&amp;oacute;n con el &lt;a title="Leer el borrador de la especificaci&amp;oacute;n de la API de geoposicionamiento" hreflang="en_EN" href="http://dev.w3.org/geo/api/spec-source.html"&gt;borrador de la especificaci&amp;oacute;n de la API de Geoposicionamiento de la W3C&lt;/a&gt;. Como ya os dijimos la funci&amp;oacute;n successCallback necesitaba pintar los datos obtenidos en un mapa. Pues qu&amp;eacute; mejor hacerlo con la nueva API de Google Maps.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La demo consta de 2 partes&lt;/strong&gt;, una primera que pretende simplemente &lt;strong&gt;mostrar la posici&amp;oacute;n actual&lt;/strong&gt; y gestionar los posibles errores. Y otra segunda parte que pretende dar una &lt;strong&gt;utilidad pr&amp;aacute;ctica a ese resultado&lt;/strong&gt;. Por tanto, una vez geoposicionado, podr&amp;aacute;s filtrar una lista que aparece atendiendiendo al pa&amp;iacute;s donde te encuentras.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Solo se han usado para la demo los 3 pa&amp;iacute;ses con m&amp;aacute;s visitantes de Pixelovers, Espa&amp;ntilde;a, M&amp;eacute;xico y Argentina, al resto tambi&amp;eacute;n os apreciamos, pero si no, la demo ser&amp;iacute;a muy extensa.&lt;/p&gt;
&lt;p&gt;&lt;a class="demo" title="Ir a la demo del art&amp;iacute;culo" href="http://demo.pixelovers.com/geoposicionamiento-web-api-google-maps-v3-444732"&gt;Demo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;iquest;Qu&amp;eacute; te parece la nueva versi&amp;oacute;n de la API de Google Maps? &amp;iquest;Ya la has probado? Cuentanos qu&amp;eacute; te ha parecido.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/geoposicionamiento-web-api-google-maps-v3-444732" title="Geoposicionamiento web y la API de Google Maps V3"&gt;Geoposicionamiento web y la API de Google Maps V3&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WWGa7k7df88lrqSzjn6o721zwQc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WWGa7k7df88lrqSzjn6o721zwQc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WWGa7k7df88lrqSzjn6o721zwQc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WWGa7k7df88lrqSzjn6o721zwQc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=P4haExfq1XU:I_4wS5WQ-iQ:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=P4haExfq1XU:I_4wS5WQ-iQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=P4haExfq1XU:I_4wS5WQ-iQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=P4haExfq1XU:I_4wS5WQ-iQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>api</category>
				<category>geolocalización</category>
				<category>geoposicion</category>
				<category>google</category>
				<category>google maps</category>
				<category>javascript</category>
				<comments>http://www.pixelovers.com/geoposicionamiento-web-api-google-maps-v3-444732#formulario</comments>
		<guid>http://www.pixelovers.com/geoposicionamiento-web-api-google-maps-v3-444732</guid>
		<pubDate>Tue, 29 Dec 2009 10:24:00 +0100</pubDate>
	</item>
	<item>
		<title>Javascript y jQuery: Consejos y Buenas Practicas (Parte I)</title>
		<link>http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-i-308801</link>
		<description>&lt;p&gt;jQuery es una de las librerias mas utilizadas por los desarrolladores FrontEnd por su versatilidad y facilidad de uso. En Pixelovers somos autenticos fans de esta libreria.&lt;/p&gt;
&lt;p&gt;&lt;img style="margin: 20px; float: right;" title="http://static.obolog.net/multimedia/fotos/309000/308801/308801-209198.jpg" src="http://static.obolog.net/multimedia/fotos/309000/308801/308801-209198_t.jpg" alt="http://static.obolog.net/multimedia/fotos/309000/308801/308801-209198.jpg" width="300" height="306" /&gt;&lt;/p&gt;
&lt;p&gt;Es por esto que queremos compartir con vosotros lo que consideramos que son unas buenas practicas a la hora de programar codigo Javascript ayudandonos de la libreria jQuery.&lt;/p&gt;
&lt;p&gt;El objetivo de este compendio de buenas practicas es conseguir un codigo Javascript lo mas limpio, claro y eficiente posible.&lt;/p&gt;
&lt;p&gt;Los tips que aqui incluimos estan sacados de nuestra propia experiencia y de conclusiones interesantes que hemos ido encontrando por la red y que hemos acoplado a nuestro repertorio.&lt;/p&gt;
&lt;p&gt;Como son muchos los puntos tratados y para no cargar el post con demasiada informacion vamos a dividir este compendio en 2 partes.&lt;/p&gt;
&lt;p&gt;En esta primera parte hablaremos de normas generales a seguir que te ayudaran a crear un codigo mas claro y eficiente. En un segundo post hablaremos de como solucionar de forma eficiente problemas concretos que nos solemos encontrar en nuestros desarrollos.&lt;/p&gt;
&lt;p&gt;Y una vez dicho esto, vamos al lio...&lt;/p&gt;
&lt;h1&gt;Consideraciones Generales&lt;/h1&gt;
&lt;ul&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Aprenderse bien la librer&amp;iacute;a.&lt;/strong&gt; Para utilizar siempre la soluci&amp;oacute;n mas optimizada posible. No est&amp;aacute; de mas tener a mano una chuleta de jQuery como comentabamos en otro &lt;a href="http://www.pixelovers.com/chuleta-jquery-pdf-427924"&gt;post&lt;/a&gt; hace unas semanas o ir directamente a la &lt;a href="http://docs.jquery.com/" target="_blank"&gt;documentacion oficial de jQuery&lt;/a&gt; &lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Utilizar librerias consolidadas, versatiles, con soporte y con proyecto de futuro.&lt;/strong&gt; Por ejemplo jQuery como librer&amp;iacute;a principal y &lt;a href="http://flowplayer.org/tools/index.html" target="_blank"&gt;jQuery Tools&lt;/a&gt; y &lt;a href="http://jqueryui.com/" target="_blank"&gt;jQuery UI&lt;/a&gt; como liberias adicionales de efectos &lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Trabajar en archivos separados.&lt;/strong&gt; Mejor crear JS's diferentes para cada funcionalidad separable de nuestro site y luego utilizar algun sistema que junte todos estos JS's en uno final (comprimido y ofuscado)&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Javascript no intrusivo.&lt;/strong&gt; Nunca depender de JS en la medida de lo posible. Si est&amp;aacute; desactivado el javascript o falla, que la pagina muestre un aspecto normal. Javascript es una mejora, no un sistema de seguridad.&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Optimiza el codigo haciendo pruebas de rendimiento.&lt;/strong&gt; Con Firebug podemos medir el tiempo que tarda una funcion (o trozo de codigo) en ejecutarse:
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;
	console.time('native');  
	var l = array.length;
		for (var i=0;i&amp;lt;l; i++) {
        array[i] = i;  
	}  
	console.timeEnd('native');  
			&lt;/code&gt; 
		&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Comprimir el codigo al final.&lt;/strong&gt; Al comprimir el codigo el archivo JS que tendr&amp;aacute; que bajarse el usuario ser&amp;aacute; de menor tama&amp;ntilde;o, aunque hay que valorar el rendimiento final ya que por el contrario el navegador tendr&amp;aacute; que realizar el proceso adicional de descomprimir el codigo antes de ejecutarlo.Para comprimir el codigo disponemos de herramientas, tipo &lt;a href="http://yuilibrary.com/projects/yuicompressor/wiki" target="_blank"&gt;YUI Compressor&lt;/a&gt; aunque hay &lt;a href="http://www.cristalab.com/tips/comprimir-y-ofuscar-archivos-.js-de-javascript-c52395l/" target="_blank"&gt;muchas mas&lt;/a&gt;&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;El marcado semantico y accesible viene primero.&lt;/strong&gt; No adaptar el marcado para facilitar el JS sino que sea el JS el que se adapte al marcado. Con ID&amp;rsquo;s, herencia, y clases podemos acceder a cualquier elemento y asignarle funcionalidades
&lt;p&gt;Marcado horrible:&lt;/p&gt;
&lt;pre style="background-color:#fceaea;"&gt;			&lt;code&gt;
	&amp;lt;table&amp;gt;
	    &amp;lt;tr&amp;gt;
	    	&amp;lt;td onclick="doSomething();"&amp;gt;First Option&amp;lt;/td&amp;gt;
	        &amp;lt;td&amp;gt;First option description&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;td onclick="doSomething();"&amp;gt;Second Option&amp;lt;/td&amp;gt;
			&amp;lt;td&amp;gt;Second option description&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;		
	&amp;lt;/table&amp;gt;
	&lt;/code&gt;		&lt;/pre&gt;
&lt;p&gt;Marcado malo:&lt;/p&gt;
&lt;pre style="background-color:#fefbe4;"&gt;&lt;code&gt;	
        &amp;lt;dl&amp;gt;
		&amp;lt;dt onclick="doSomething();"&amp;gt;First Option&amp;lt;/dt&amp;gt;
		&amp;lt;dd&amp;gt;First option description&amp;lt;/dd&amp;gt;
		&amp;lt;dt onclick="doSomething();"&amp;gt;Second Option&amp;lt;/dt&amp;gt;
		&amp;lt;dd&amp;gt;Second option description&amp;lt;/dd&amp;gt;
	&amp;lt;/dl&amp;gt;
&lt;/code&gt;		&lt;/pre&gt;
&lt;p&gt;Buen marcado:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;
	&amp;lt;dl id="OptionList"&amp;gt;
	    &amp;lt;dt&amp;gt;First Option&amp;lt;/dt&amp;gt;
	    &amp;lt;dd&amp;gt;First option description&amp;lt;/dd&amp;gt;
	    &amp;lt;dt&amp;gt;Second Option&amp;lt;/dt&amp;gt;
	    &amp;lt;dd&amp;gt;Second option description&amp;lt;/dd&amp;gt;
	&amp;lt;/dl&amp;gt;
			&lt;/code&gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Encapsular lo maximo posible el codigo.&lt;/strong&gt; Esto significa agrupar todas las funciones comunes dentro de una funcion padre, asi acotamos el contexto de cada funcionalidad (objeto si hace falta)
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;
	var mySite = new Object();
	
	mySite = {
		
		var1 : 1,
		var2 : 2,
		valorCalculado,
		
		init : function() {
			// aqui hago varias cosas
			this.valorCalculado = "hola";
			this.funcionalidad1();
		},
		
		funcionalidad1 : function() {
			// aqui desarrollo una funcionalidad concreta
		
		}
	}
	
	// desde fuera (o desde otro objeto) puedo llamar a las funciones de este objecto
	mySite.funcionalidad1();
					
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt;Elimina consultas innecesarias&lt;/strong&gt;. Podemos ahorrarnos la llamada al $(document).ready() lanzando el &amp;lt;script&amp;gt; justo antes de cerrar el tag &amp;lt;/body&amp;gt; lo que nos asegura que todos los elementos que podemos necesitar est&amp;aacute;n ya cargados en el &amp;aacute;rbol DOM.
&lt;p&gt;Menos eficiente:&lt;/p&gt;
&lt;pre style="background-color:#fceaea;"&gt;			&lt;code&gt;
	$(document).ready(function(){
		mylib.article.init();
	});
			&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Mas eficiente:&lt;/p&gt;
&lt;pre style="background-color:#ecfcea;"&gt;			&lt;code&gt;
		&amp;lt;script type="text/javascript&amp;gt;
        	  mylib.article.init();
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
			&lt;/code&gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li style="margin-bottom:10px;"&gt;&lt;strong&gt; &amp;ldquo;Eval is evil&amp;rdquo;&lt;/strong&gt; Evitar el uso de eval. Problemas de seguridad. Mas info de por qu&amp;eacute; puede ser un problema &lt;a href="http://blogs.msdn.com/ericlippert/archive/2003/11/01/53329.aspx" target="_blank"&gt;aqui&lt;/a&gt;. Una posible alternativa al uso de EVAL puede ser &lt;a href="http://wiki.ecmascript.org/doku.php?id=es3.1:json_support" target="_blank"&gt;JSON.parse&lt;/a&gt; o &lt;a href="http://beebole.com/en/blog/general/sandbox-your-cross-domain-jsonp-to-improve-mashup-security/" target="_blank"&gt;JSONP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y hasta aqui la primera parte del asunto...&lt;/p&gt;
&lt;p&gt;&amp;iquest;Que te han parecido los puntos aqui comentados? &amp;iquest;Estas de acuerdo? &amp;iquest;Algun punto que creas que falta en esta lista?&lt;/p&gt;
&lt;h2&gt;Enlaces y m&amp;aacute;s&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://getfirebug.com/" target="_blank"&gt;Firebug&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://flowplayer.org/tools/index.html" target="_blank"&gt;jQuery Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jqueryui.com/" target="_blank"&gt;jQuery UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://yuilibrary.com/projects/yuicompressor/wiki" target="_blank"&gt;YUI Compressor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-i-308801" title="Javascript y jQuery: Consejos y Buenas Practicas (Parte I)"&gt;Javascript y jQuery: Consejos y Buenas Practicas (Parte I)&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HuB2yKA9lNd_MheTG01eL5VDm_w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HuB2yKA9lNd_MheTG01eL5VDm_w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HuB2yKA9lNd_MheTG01eL5VDm_w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HuB2yKA9lNd_MheTG01eL5VDm_w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=GvlGuFr2XTY:Op0OWpb3erk:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=GvlGuFr2XTY:Op0OWpb3erk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=GvlGuFr2XTY:Op0OWpb3erk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=GvlGuFr2XTY:Op0OWpb3erk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>juanmaguitar</author>
				<category>buenas practicas</category>
				<category>codigo</category>
				<category>consejos</category>
				<category>desarrollo web</category>
				<category>frameworks</category>
				<category>javascript</category>
				<category>jquery</category>
				<category>optimizacion</category>
				<comments>http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-i-308801#formulario</comments>
		<guid>http://www.pixelovers.com/javascript-jquery-consejos-buenas-practicas-parte-i-308801</guid>
		<pubDate>Fri, 25 Dec 2009 20:50:00 +0100</pubDate>
	</item>
	<item>
		<title>Cómo geoposicionar un dispositivo con el navegador</title>
		<link>http://www.pixelovers.com/geoposicionar-dispositivo-navegador-435853</link>
		<description>&lt;p&gt;&lt;img class="fotobonita" style="float: right;" title="Geoposicionamiento" src="http://static.obolog.net/multimedia/fotos/436000/435853/435853-206830_t.jpg" alt="Geoposicionamiento" /&gt;&lt;/p&gt;
&lt;p&gt;Hace unos d&amp;iacute;as, el 27 de noviembre de 2009, publicaron un nuevo borrador en el W3C titulado: &lt;a title="Read Geolocation API Specitication" lang="en_EN" hreflang="en_EN" href="http://dev.w3.org/geo/api/spec-source.html" target="_blank"&gt;Geolocation API Specification&lt;/a&gt;. Esta especificaci&amp;oacute;n define una API que proporciona secuencias de comandos de acceso a la informaci&amp;oacute;n de localizaci&amp;oacute;n geogr&amp;aacute;fica asociada con el dispositivo de alojamiento. &amp;iquest;Verdad que suena interesante?&lt;/p&gt;
&lt;p&gt;El objeto Geolocation lo podemos encontrar en la instancia navigator y debe implementar estos 3 m&amp;eacute;todos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;void&lt;/em&gt;&lt;strong&gt; getCurrentPosition&lt;/strong&gt; (successCallback, errorCallback, options): Cuando se llama, de inmediato regresa y, a continuaci&amp;oacute;n, de forma asincr&amp;oacute;nica intenta obtener la ubicaci&amp;oacute;n actual del dispositivo.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;long&lt;/em&gt;&lt;strong&gt; watchPosition&lt;/strong&gt; (successCallback, errorCallback, options): inmediatamente devuelve un valor &lt;em&gt;long&lt;/em&gt; que identifica un&amp;iacute;vocamente a una operaci&amp;oacute;n watch y, a continuaci&amp;oacute;n de forma asincr&amp;oacute;nica inicia la operaci&amp;oacute;n de watch. Esta operaci&amp;oacute;n sigue controlando la posici&amp;oacute;n del dispositivo e invocando la funci&amp;oacute;n callback adecuada cada vez que el dispositivo cambia de posici&amp;oacute;n. La operaci&amp;oacute;n contin&amp;uacute;a hasta que se llama al m&amp;eacute;todo clearWatch con el identificador correspondiente.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;void&lt;/em&gt; &lt;strong&gt;clearWatch&lt;/strong&gt; (watchId): el proceso identificado por el argumento watchId se interrumpe inmediatamente y dejan de invocarse los callbacks. Este identificador es el que devuelve la funci&amp;oacute;n watchPosition.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; &lt;em&gt;Estas funciones (&lt;/em&gt;getCurrentPosition y&amp;nbsp;watchPosition)&lt;em&gt; notificar&amp;aacute;n al usuario de nuestras intenciones y ser&amp;aacute; &amp;eacute;l qui&amp;eacute;n decida si permitir el acceso a esa informaci&amp;oacute;n o no. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img title="Firefox geoposicionamiento" src="http://static.obolog.net/multimedia/fotos/436000/435853/435853-206832.jpg" alt="Firefox geoposicionamiento" /&gt;&lt;/p&gt;
&lt;p&gt;Estas funciones se encuentran implementadas por un objeto llamdo &lt;strong&gt;Geolocation&lt;/strong&gt; que se pertenece a la interfaz NavigatorGeolocation y deber&amp;iacute;a implementarse por el objeto Navigator. As&amp;iacute; que, podemos acceder a la posici&amp;oacute;n actual del visitante mediante:&lt;/p&gt;
&lt;pre style="font-size: 3.55556px; line-height: 5.33333px;"&gt;&lt;code&gt;navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;iquest;Y qu&amp;eacute; significa: &lt;strong&gt;successCallback&lt;/strong&gt;, &lt;strong&gt;errorCallback&lt;/strong&gt;, &lt;strong&gt;options&lt;/strong&gt; y &lt;strong&gt;watchId&lt;/strong&gt;? Pues los dos primeros argumentos son obligatoriamente funciones y el tercero un objeto. En m&amp;aacute;s detalle tenemos:&lt;/p&gt;
&lt;h2&gt;successCallback&lt;/h2&gt;
&lt;p&gt;Funcion que recibe por par&amp;aacute;metro &lt;em&gt;Position&lt;/em&gt; &lt;strong&gt;position&lt;/strong&gt; que contiene los atributos &lt;em&gt;Coordinates&lt;/em&gt; &lt;strong&gt;coords&lt;/strong&gt; y &lt;em&gt;DOMTimeStamp&lt;/em&gt; &lt;strong&gt;timestamp&lt;/strong&gt;. El atributo coords contiene la siguiente informaci&amp;oacute;n:&lt;/p&gt;
&lt;h3 style="font-size: 11.2333px; line-height: 14.4px;"&gt;Position.Coordinates&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;latitude&lt;/strong&gt;: coordenadas geograficas&amp;nbsp; especificadas en grados.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;longitude&lt;/strong&gt;: coordenadas geograficas&amp;nbsp; especificadas en grados.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;altitude&lt;/strong&gt;: denota la altura especificada en metros.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;accuracy&lt;/strong&gt;: denota el nivel de precisi&amp;oacute;n de las coordenadas de latitud y longitud, en metros.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;altitudeAccuracy&lt;/strong&gt;: denota el nivel de precisi&amp;oacute;n de la altitud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;heading&lt;/strong&gt;: representa la direcci&amp;oacute;n del desplazamiento, tomado en grados en sentido horario desde el norte verdadero.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;speed&lt;/strong&gt;: indica la velocidad del dispositivo en metros por segundo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La altitud, la precisi&amp;oacute;n de la altitud, la direcci&amp;oacute;n y la velocidad pueden existir o no dependiendiendo del dispositivo y en caso de no exisitir devolver&amp;aacute;n null&lt;/p&gt;
&lt;h2&gt;errorCallback&lt;/h2&gt;
&lt;p&gt;Funci&amp;oacute;n que recibe por par&amp;aacute;metro &lt;em&gt;PositionError&lt;/em&gt; &lt;strong&gt;error&lt;/strong&gt; el cual contiene un &lt;em&gt;short&lt;/em&gt; &lt;strong&gt;code&lt;/strong&gt; y un &lt;em&gt;DOMString&lt;/em&gt; &lt;strong&gt;message&lt;/strong&gt;. El code puede tener un valor de 0 a 3 dependiendo de la causa, siendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UNKNOWN_ERROR = 0&lt;/li&gt;
&lt;li&gt;PERMISSION_DENIED = 1&lt;/li&gt;
&lt;li&gt;POSITION_UNAVAILABLE = 2&lt;/li&gt;
&lt;li&gt;TIMEOUT = 3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;options&lt;/h2&gt;
&lt;p&gt;Objeto que consta de los siguientes atributos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;boolean&lt;/em&gt; &lt;strong&gt;enableHighAccuracy&lt;/strong&gt;: proporciona un indicio de que la aplicaci&amp;oacute;n desea recibir los mejores resultados posibles. El valor por defecto es false.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;long&lt;/em&gt; &lt;strong&gt;timeout&lt;/strong&gt;: indica la duraci&amp;oacute;n m&amp;aacute;xima de tiempo (expresado en milisegundos) que se permite para pasar de la llamada a getCurrentPosition() o watchPosition() hasta que se invoca el successCallback correspondiente.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;long&lt;/em&gt; &lt;strong&gt;maximumAge&lt;/strong&gt;: indica que la aplicaci&amp;oacute;n est&amp;aacute; dispuesto a aceptar una posici&amp;oacute;n en cach&amp;eacute;, cuya edad no sea mayor que el tiempo especificado en milisegundos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;iquest;Qu&amp;eacute; opinas de que un dispositivo pueda informar de la posici&amp;oacute;n del mismo? &amp;iquest;Se te ocurre alguna aplicaci&amp;oacute;n, o ya le estas dando uso y quieres compartirlo?&lt;/p&gt;			&lt;p&gt;
			&lt;a href="http://www.pixelovers.com/fotos/geoposicionar-dispositivo-navegador-435853" title="Fotos de Cómo geoposicionar un dispositivo con el navegador"&gt;Ver álbum de fotos&lt;/a&gt; |
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/geoposicionar-dispositivo-navegador-435853" title="Cómo geoposicionar un dispositivo con el navegador"&gt;Cómo geoposicionar un dispositivo con el navegador&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4xzTiu1YLVufRLNOEENp1wKUOrk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4xzTiu1YLVufRLNOEENp1wKUOrk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4xzTiu1YLVufRLNOEENp1wKUOrk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4xzTiu1YLVufRLNOEENp1wKUOrk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=a3qQxkbOUfo:luD-Rq9uJIQ:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=a3qQxkbOUfo:luD-Rq9uJIQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=a3qQxkbOUfo:luD-Rq9uJIQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=a3qQxkbOUfo:luD-Rq9uJIQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>api</category>
				<category>geoposicionamiento</category>
				<category>javascript</category>
				<category>navegador</category>
				<comments>http://www.pixelovers.com/geoposicionar-dispositivo-navegador-435853#formulario</comments>
		<guid>http://www.pixelovers.com/geoposicionar-dispositivo-navegador-435853</guid>
		<pubDate>Tue, 22 Dec 2009 10:20:00 +0100</pubDate>
	</item>
	<item>
		<title>Chuleta de jQuery en PDF</title>
		<link>http://www.pixelovers.com/chuleta-jquery-pdf-427924</link>
		<description>&lt;p&gt;Siguiendo con los post relacionados con las chuletas, ya os presentamos la &lt;a title="Leer Chuleta de HTML5" href="http://www.pixelovers.com/chuleta-html5-pdf-420089"&gt;chuleta de HTML5&lt;/a&gt;, hoy toca una &lt;a title="Chuleta te jQuery 1.3" href="http://woork.blogspot.com/2009/09/jquery-visual-cheat-sheet.html" target="_blank"&gt;chuleta de jQuery 1.3&lt;/a&gt; en &lt;a title="Versi&amp;oacute;n PDF de la chuleta de jQuery 1.3" href="http://www.box.net/shared/as4xkezd6a" target="_blank"&gt;versi&amp;oacute;n PDF&lt;/a&gt;, gracias al trabajo de &lt;a title="Blog de Antonio Lupetti" href="http://woork.blogspot.com/" target="_blank"&gt;Antonio Lupetti&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Espero que con esta ayuda tengais un desarrollo m&amp;aacute;s &amp;aacute;gil y no os perd&amp;aacute;is detalle de los ejmplos que estamos incluyendo, como fue el caso de &lt;a title="Leer Namespace en eventos de jQuery" href="http://www.pixelovers.com/namespace-eventos-jquery-313039"&gt;Namespace en eventos de jQuery&lt;/a&gt;.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/chuleta-jquery-pdf-427924" title="Chuleta de jQuery en PDF"&gt;Chuleta de jQuery en PDF&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jp61pfT1WVBI6-YQnbCG3MVnoho/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jp61pfT1WVBI6-YQnbCG3MVnoho/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jp61pfT1WVBI6-YQnbCG3MVnoho/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jp61pfT1WVBI6-YQnbCG3MVnoho/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=Jbu0LcnCUds:hp3-sjhSaxs:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=Jbu0LcnCUds:hp3-sjhSaxs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=Jbu0LcnCUds:hp3-sjhSaxs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=Jbu0LcnCUds:hp3-sjhSaxs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>chuleta</category>
				<category>desarrolladores</category>
				<category>desarrollo web</category>
				<category>herramientas</category>
				<category>javascript</category>
				<category>jquery</category>
				<category>programación</category>
				<comments>http://www.pixelovers.com/chuleta-jquery-pdf-427924#formulario</comments>
		<guid>http://www.pixelovers.com/chuleta-jquery-pdf-427924</guid>
		<pubDate>Tue, 15 Dec 2009 10:00:00 +0100</pubDate>
	</item>
	<item>
		<title>Manifiesto “En defensa de los derechos fundamentales en internet”</title>
		<link>http://www.pixelovers.com/manifiesto-defensa-derechos-fundamentales-internet-443997</link>
		<description>&lt;p&gt;&lt;img style="float: right;" title="#manifiesto / Eneko, 20minutos.es" src="http://static.obolog.net/multimedia/fotos/444000/443997/443997-206868_t.jpg" alt="#manifiesto / Eneko, 20minutos.es" width="200" height="135" /&gt;Ante la inclusi&amp;oacute;n en el Anteproyecto de Ley de Econom&amp;iacute;a sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresi&amp;oacute;n, informaci&amp;oacute;n y el derecho de acceso a la cultura a trav&amp;eacute;s de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposici&amp;oacute;n al proyecto, y declaramos que:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos,&lt;/strong&gt; como el derecho a la privacidad, a la seguridad, a la presunci&amp;oacute;n de inocencia, a la tutela judicial efectiva y a la libertad de expresi&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La suspensi&amp;oacute;n de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia.&lt;/strong&gt; Este anteproyecto, en contra de lo establecido en el &lt;a title="Leer el art&amp;iacute;culo 20.5 de la Constituci&amp;oacute;n" href="http://narros.congreso.es/constitucion/constitucion/indice/sinopsis/sinopsis.jsp?art=20&amp;amp;tipo=2" target="_blank"&gt;art&amp;iacute;culo 20.5 de la Constituci&amp;oacute;n&lt;/a&gt;, pone en manos de un &amp;oacute;rgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos espa&amp;ntilde;oles el acceso a cualquier p&amp;aacute;gina web.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La nueva legislaci&amp;oacute;n crear&amp;aacute; inseguridad jur&amp;iacute;dica en todo el sector tecnol&amp;oacute;gico espa&amp;ntilde;ol,&lt;/strong&gt; perjudicando uno de los pocos campos de desarrollo y futuro de nuestra econom&amp;iacute;a, entorpeciendo la creaci&amp;oacute;n de empresas, introduciendo trabas a la libre competencia y ralentizando su proyecci&amp;oacute;n internacional.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La nueva legislaci&amp;oacute;n propuesta amenaza a los nuevos creadores y entorpece la creaci&amp;oacute;n cultural.&lt;/strong&gt; Con Internet y los sucesivos avances tecnol&amp;oacute;gicos se ha democratizado extraordinariamente la creaci&amp;oacute;n y emisi&amp;oacute;n de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas,&lt;/strong&gt; modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deber&amp;iacute;an buscar otro modelo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, cre&amp;iacute;bles y asequibles&lt;/strong&gt; y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Internet debe funcionar de forma libre y sin interferencias pol&amp;iacute;ticas&lt;/strong&gt; auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exigimos que el Gobierno garantice por ley la &lt;a title="Neutralidad de la Red en la Wikipedia" href="http://es.wikipedia.org/wiki/Neutralidad_de_red" target="_blank"&gt;neutralidad de la Red&lt;/a&gt;, en Espa&amp;ntilde;a&lt;/strong&gt; ante cualquier presi&amp;oacute;n que pueda producirse, como marco para el desarrollo de una econom&amp;iacute;a sostenible y realista de cara al futuro.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proponemos una verdadera reforma del derecho de propiedad intelectual&lt;/strong&gt; orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio p&amp;uacute;blico y limitar los abusos de las entidades gestoras.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate p&amp;uacute;blico y habiendo consultado previamente a todas las partes implicadas.&lt;/strong&gt; No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no org&amp;aacute;nica y que versa sobre otra materia.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Se ha publicado en multitud de sitios web. Si est&amp;aacute;s de acuerdo y quieres sumarte a &amp;eacute;l, dif&amp;uacute;ndelo por Internet.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Tambi&amp;eacute;n est&amp;aacute; &lt;a title="Ver el manifiesto en otros idiomas" href="http://wiki.manifiestointernet.org/wiki/P%C3%A1gina_Principal#Traducciones_a_otros_idiomas"&gt;disponible en otros idiomas&lt;/a&gt;, tales como Ingl&amp;eacute;s, Franc&amp;eacute;s, Portugu&amp;eacute;s-brasileiro, Catal&amp;aacute;n, Gallego, Asturiano, Euskera, Aaragon&amp;eacute;s, Sueco y Chino.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/manifiesto-defensa-derechos-fundamentales-internet-443997" title="Manifiesto “En defensa de los derechos fundamentales en internet”"&gt;Manifiesto “En defensa de los derechos fundamentales en internet”&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ugoPaA8ktBFcNSuGveMYemJ72t4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ugoPaA8ktBFcNSuGveMYemJ72t4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ugoPaA8ktBFcNSuGveMYemJ72t4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ugoPaA8ktBFcNSuGveMYemJ72t4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=NHi6m_wxjSQ:MOp1m5rcS74:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=NHi6m_wxjSQ:MOp1m5rcS74:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=NHi6m_wxjSQ:MOp1m5rcS74:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=NHi6m_wxjSQ:MOp1m5rcS74:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>cultura</category>
				<category>gobierno</category>
				<category>internet</category>
				<category>ley</category>
				<category>manifiesto</category>
				<comments>http://www.pixelovers.com/manifiesto-defensa-derechos-fundamentales-internet-443997#formulario</comments>
		<guid>http://www.pixelovers.com/manifiesto-defensa-derechos-fundamentales-internet-443997</guid>
		<pubDate>Sun, 13 Dec 2009 10:15:00 +0100</pubDate>
	</item>
	<item>
		<title>Namespace en eventos de jQuery</title>
		<link>http://www.pixelovers.com/namespace-eventos-jquery-313039</link>
		<description>&lt;p&gt;Namespace o espacio de nombre (espa&amp;ntilde;olizaci&amp;oacute;n que no se usa) es la &lt;strong&gt;contextualizaci&amp;oacute;n de una variable o m&amp;eacute;todo&lt;/strong&gt;, es decir, consiste en asociar un identificador a un grupo de variables y/o m&amp;eacute;todos.&amp;nbsp; En la vida real disponemos de muchos ejemplos, por ejemplo OboLog tiene el n&amp;uacute;mero de post 123, y Pixelover tambi&amp;eacute;n puede tener el post 123 porque ambos est&amp;aacute;n en namespaces diferentes, obolog y pixelover, respectivamente.&lt;/p&gt;
&lt;p&gt;Ahora que sabemos que significa, vamos a ver como se aplica esto a los eventos  en jQuery y luego veremos una aplicaci&amp;oacute;n pr&amp;aacute;ctica de los namespaced events. Todos sabemos como a&amp;ntilde;adir un manejador de evento (click, por ejemplo) a un elemento mediante el m&amp;eacute;todo &lt;a title="Evento bind de jQuery" lang="en_EN" hreflang="en_EN" href="http://docs.jquery.com/Events/bind"&gt;bind&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;$("a").&lt;strong&gt;bind&lt;/strong&gt;("click", function() { /* Code... */ });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ahora si queremos contextualizar ese evento click, que pertenezca a un grupo utilizamos el siguiente c&amp;oacute;digo:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;$("a").bind("click.&lt;strong&gt;namespace&lt;/strong&gt;", function() { /* Code... */ });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Esto funcionar&amp;aacute;, igual que el anterior ejemplo, en cada click que se haga a los elementos a, pero adem&amp;aacute;s podremos llamar &amp;uacute;nicamente a esta funci&amp;oacute;n mediante el metodo &lt;a title="Evento trigger de jQuery" lang="en_EN" hreflang="en_EN" href="http://docs.jquery.com/Events/trigger"&gt;trigger&lt;/a&gt; o desligar un grupo de funciones asociadas a un evento,&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;$("a").trigger("click.namespace");&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Con esto hemos lanzamos el evento click con el espacio de nombre "namespace" de los elementos a.&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;$("a").unbind(".namespace");&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Y con esto hemos desligado todos los tipos de eventos del espacio de nombre namespace, ya sean eventos click, dbclick, mousedown, mouseup, etc..&lt;/p&gt;
&lt;p&gt;&amp;iquest;Se te ocurre como podr&amp;iacute;as utlizar los espacios de nombre en los eventos? Aqu&amp;iacute; te dejo un &lt;strong&gt;ejemplo simple de namespaced events&lt;/strong&gt;. Consiste en un formulario que a&amp;ntilde;ade los valores que introduces en el campo "name" en una lista. La particularidad es que he dividido la tarea en 2 funciones, una para crear la lista y otra para a&amp;ntilde;adir elementos, la primera de ellas la bindeo antes que la segunda y la desvindeo al acabarse ella misma. De esta manera consigo que la primera vez se llame a ambas funciones y las sucesivas solamente a la segunda.&lt;/p&gt;
&lt;p&gt;HTML:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="html"&gt;&amp;lt;form action="" method="post" id="addName"&amp;gt;&lt;br /&gt;  &amp;lt;p&amp;gt;&lt;br /&gt;&amp;nbsp;   &amp;lt;label for="Name"&amp;gt;Nombre:&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;input type="text" name="name" value="" id="name"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;input type="submit" value="A&amp;ntilde;adir nombre"/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Javascript:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;//Bind Event for the first time&lt;br /&gt;$('#addName').bind('submit.first', function(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(this).after('&amp;lt;p&amp;gt;Lista de nombres:&amp;lt;/p&amp;gt;&amp;lt;ul id="listNames"&amp;gt;&amp;lt;/ul&amp;gt;').unbind('submit.first');&lt;br /&gt; });&lt;br /&gt;&lt;br /&gt;//Bind Event for ever&lt;br /&gt;$('#addName').bind("submit", function(){&lt;br /&gt;    if('' == this.name.value) return false;&lt;br /&gt;    $('#listNames').append('&amp;lt;li&amp;gt;' + this.name.value + '&amp;lt;/li&amp;gt;');&lt;br /&gt;    return false;&lt;br /&gt;});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ese es un ejemplo para ver el funcionamiento del namespacing, pero en este caso, ya que eliminamos el evento en la primera ejecuci&amp;oacute;n ser&amp;iacute;a m&amp;aacute;s &amp;uacute;til utilizar el atajo &lt;strong&gt;one&lt;/strong&gt;, quedando el primer evento de la siguiente manera:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="javascript"&gt;//Bind Event for the first time&lt;br /&gt;$('#addName').&lt;strong&gt;one&lt;/strong&gt;(function(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(this).after('&amp;lt;p&amp;gt;Lista de nombres:&amp;lt;/p&amp;gt;&amp;lt;ul id="listNames"&amp;gt;&amp;lt;/ul&amp;gt;');&lt;br /&gt; });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aqu&amp;iacute; pod&amp;eacute;is ver el funcionamiento del c&amp;oacute;digo expuesto anteriormente:&lt;/p&gt;
&lt;p&gt;&lt;a title="Demo namespace" href="http://demo.pixelovers.com/namespace-eventos-jquery-313039/"&gt;Demo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;iquest;Qu&amp;eacute; te aparecido? &amp;iquest;Te resulta &amp;uacute;til? Cu&amp;eacute;ntanos d&amp;oacute;nde y c&amp;oacute;mo lo has aplicado para que aprendamos todos trucos nuevos de jQuery.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/namespace-eventos-jquery-313039" title="Namespace en eventos de jQuery"&gt;Namespace en eventos de jQuery&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_6c691nwOVe6THy_amTvFzHiGyI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_6c691nwOVe6THy_amTvFzHiGyI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_6c691nwOVe6THy_amTvFzHiGyI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_6c691nwOVe6THy_amTvFzHiGyI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=yqw8g9Sz7RU:bhizzm2QZCc:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=yqw8g9Sz7RU:bhizzm2QZCc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=yqw8g9Sz7RU:bhizzm2QZCc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=yqw8g9Sz7RU:bhizzm2QZCc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>eventos</category>
				<category>javascript</category>
				<category>jquery</category>
				<comments>http://www.pixelovers.com/namespace-eventos-jquery-313039#formulario</comments>
		<guid>http://www.pixelovers.com/namespace-eventos-jquery-313039</guid>
		<pubDate>Thu, 10 Dec 2009 09:00:00 +0100</pubDate>
	</item>
	<item>
		<title>The Smashing Book</title>
		<link>http://www.pixelovers.com/the-smashing-book-435026</link>
		<description>&lt;p&gt;&lt;img class="fotobonita" style="float: right;" title="Libro de Smashing Magazine" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/the-smashing-book/book-3d-320px.jpg" alt="Libro de Smashing Magazine" width="320" height="318" /&gt;Ya por fin ha salido a la venta el &lt;a title="El libro de Smashing Magazine" href="http://www.smashingmagazine.com/2009/07/06/html-5-cheat-sheet-pdf/"&gt;libro de Smashing&lt;/a&gt;, en el que encontrar&amp;aacute;s&lt;span id="result_box"&gt;&lt;span style="background-color: #ffffff;" title="The Smashing Book is a printed book about best practices in modern Web design."&gt; las mejores pr&amp;aacute;cticas en dise&amp;ntilde;o Web moderno. Sus 313 p&amp;aacute;ginas est&amp;aacute;n llenas de &lt;/span&gt;&lt;/span&gt;consejos t&amp;eacute;cnicos y buenas pr&amp;aacute;cticas de &lt;strong&gt;codificaci&amp;oacute;n&lt;/strong&gt;, &lt;strong&gt;usabilidad y optimizaci&amp;oacute;n&lt;/strong&gt;, adn&amp;aacute;s podr&amp;aacute;s aprender a como crear &lt;strong&gt;interfaces de usuario&lt;/strong&gt; con &amp;eacute;xito y aplicar los &lt;strong&gt;principios de marketing&lt;/strong&gt; para aumentar las tasas de conversi&amp;oacute;n. Todo esto no ser&amp;iacute;a posible sin mostarte c&amp;oacute;mo obtener el m&amp;aacute;ximo provecho de la &lt;strong&gt;tipograf&amp;iacute;a&lt;/strong&gt;, &lt;strong&gt;color&lt;/strong&gt; y &lt;strong&gt;marca&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Un libro muy recomendable para los dise&amp;ntilde;adores web y desarrolladores de interfaces, que espero tener en mis manos muy pronto para poder contar de primera mano mis impresiones.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/the-smashing-book-435026" title="The Smashing Book"&gt;The Smashing Book&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fv8_0W9DmTP_GvNU5R_bOGLNJpk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fv8_0W9DmTP_GvNU5R_bOGLNJpk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fv8_0W9DmTP_GvNU5R_bOGLNJpk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fv8_0W9DmTP_GvNU5R_bOGLNJpk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=_0uP3AH8Ato:3Jfkv2AF8Tc:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=_0uP3AH8Ato:3Jfkv2AF8Tc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=_0uP3AH8Ato:3Jfkv2AF8Tc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=_0uP3AH8Ato:3Jfkv2AF8Tc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>color</category>
				<category>diseño</category>
				<category>diseño de interfaces</category>
				<category>diseño gráfico</category>
				<category>diseño web</category>
				<category>optimización</category>
				<category>tipografía</category>
				<category>usabilidad</category>
				<comments>http://www.pixelovers.com/the-smashing-book-435026#formulario</comments>
		<guid>http://www.pixelovers.com/the-smashing-book-435026</guid>
		<pubDate>Sun, 06 Dec 2009 11:00:00 +0100</pubDate>
	</item>
	<item>
		<title>Las mejores fuentes gratuitas de 2009</title>
		<link>http://www.pixelovers.com/mejores-fuentes-gratuitas-2009-405547</link>
		<description>&lt;p&gt;&lt;img style="float: right;" title="Junction" src="http://static.obolog.net/multimedia/fotos/406000/405547/405547-197844_t.jpg" alt="Junction" width="200" height="73" /&gt;Para los amantes de la tipograf&amp;iacute;a hoy os dejamos con las 12 &lt;a title="Ver la selecci&amp;oacute;n de las mejores fuentes gratuitas de 2009" href="http://webdesignledger.com/freebies/the-best-free-fonts-of-2009" target="_blank"&gt;mejores fuentes gratuitas de 2009&lt;/a&gt; seleccionadas por &lt;a title="Ver la p&amp;aacute;gina de Web Design Ledger en otra ventana" href="http://webdesignledger.com/" target="_blank"&gt;Web Ddesign Ledger&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Tu tipograf&amp;iacute;a favorita no est&amp;aacute; entre ellas? &amp;iquest;Quieres compartirla con nosotros?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;			&lt;p&gt;
			&lt;a href="http://www.pixelovers.com/fotos/mejores-fuentes-gratuitas-2009-405547" title="Fotos de Las mejores fuentes gratuitas de 2009"&gt;Ver álbum de fotos&lt;/a&gt; |
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/mejores-fuentes-gratuitas-2009-405547" title="Las mejores fuentes gratuitas de 2009"&gt;Las mejores fuentes gratuitas de 2009&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UgTEc4fs-NfP1rXdUr8reQROkUs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UgTEc4fs-NfP1rXdUr8reQROkUs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UgTEc4fs-NfP1rXdUr8reQROkUs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UgTEc4fs-NfP1rXdUr8reQROkUs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=A1-nsslkPgU:_46R7WgtBKI:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=A1-nsslkPgU:_46R7WgtBKI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=A1-nsslkPgU:_46R7WgtBKI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=A1-nsslkPgU:_46R7WgtBKI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>diseño</category>
				<category>diseño gráfico</category>
				<category>diseño web</category>
				<category>fuentes</category>
				<category>gratis</category>
				<category>tipografía</category>
				<comments>http://www.pixelovers.com/mejores-fuentes-gratuitas-2009-405547#formulario</comments>
		<guid>http://www.pixelovers.com/mejores-fuentes-gratuitas-2009-405547</guid>
		<pubDate>Tue, 01 Dec 2009 09:00:00 +0100</pubDate>
	</item>
	<item>
		<title>Chuleta de HTML5 en PDF</title>
		<link>http://www.pixelovers.com/chuleta-html5-pdf-420089</link>
		<description>&lt;p&gt;La semana pasada os hablamos de &lt;a title="Leer Reset CSS para HTML5" href="http://www.pixelovers.com/reset-css-html5-368475"&gt;Reset CSS para HTML5&lt;/a&gt; y esta semana os traemos una &lt;a title="Leer HTML 5 Cheat Sheet (PDF)" href="http://www.smashingmagazine.com/2009/07/06/html-5-cheat-sheet-pdf/" target="_blank"&gt;chuleta de HTMl5 publicada en Smashing Magazine&lt;/a&gt; en &lt;a title="PDF de HTML 5 Cheat Sheet" href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/html5-cheat-sheet/html5-cheat-sheet.pdf"&gt;versi&amp;oacute;n PDF&lt;/a&gt; para que podamos aprender las nuevas etiquetas e ir preparando nuestras webs y aplicaciones online y estar listos para cuando la mayor&amp;iacute;a de los navegadores lo soporten.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Qu&amp;eacute; os parece el HTML5? &amp;iquest;Ech&amp;aacute;is de menos alguna etiqueta que se deber&amp;iacute;a haber incluido? &amp;iquest;Tienes ya tu web preparada y quieres compartirla con nosotros?&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/chuleta-html5-pdf-420089" title="Chuleta de HTML5 en PDF"&gt;Chuleta de HTML5 en PDF&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yyWvUQqZfjCbv2WiC4AvAIfBD1s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yyWvUQqZfjCbv2WiC4AvAIfBD1s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yyWvUQqZfjCbv2WiC4AvAIfBD1s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yyWvUQqZfjCbv2WiC4AvAIfBD1s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=DAL7kFNskis:C0sVYhwOZPM:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=DAL7kFNskis:C0sVYhwOZPM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=DAL7kFNskis:C0sVYhwOZPM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=DAL7kFNskis:C0sVYhwOZPM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>desarrollo web</category>
				<category>etiquetado</category>
				<category>html5</category>
				<category>marcado</category>
				<comments>http://www.pixelovers.com/chuleta-html5-pdf-420089#formulario</comments>
		<guid>http://www.pixelovers.com/chuleta-html5-pdf-420089</guid>
		<pubDate>Tue, 24 Nov 2009 09:00:00 +0100</pubDate>
	</item>
	<item>
		<title>Reset CSS para HTML5</title>
		<link>http://www.pixelovers.com/reset-css-html5-368475</link>
		<description>&lt;p&gt;Ya os hablamos en &lt;a title="Leer CSS: Consejos y buenas pr&amp;aacute;cticas" href="http://www.pixelovers.com/css-consejos-buenas-practicas-11635"&gt;CSS: Consejos y buenas pr&amp;aacute;cticas&lt;/a&gt; sobre la importancia de &lt;strong&gt;resetear las propiedades CSS&lt;/strong&gt; para eliminar diferencias entre navegadores desde el principio. Pues ahora os traemos de la mano de &lt;a title="Leer HTML5 Reset Stylesheet" lang="en_EN" hreflang="en_EN" href="http://html5doctor.com/html-5-reset-stylesheet/"&gt;html5doctor.com&lt;/a&gt; un nuevo reset CSS adaptado a HTML5. Incluye las nuevas etiquetas y elimina las que ya no est&amp;aacute;n permitidas en este lenguaje de marcado.&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code class="css"&gt;&lt;br /&gt;/*&lt;br /&gt;html5doctor.com Reset Stylesheet&lt;br /&gt;v1.4&lt;br /&gt;2009-07-27&lt;br /&gt;Author: Richard Clark - http://richclarkdesign.com&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;html, body, div, span, object, iframe,&lt;br /&gt;h1, h2, h3, h4, h5, h6, p, blockquote, pre,&lt;br /&gt;abbr, address, cite, code,&lt;br /&gt;del, dfn, em, img, ins, kbd, q, samp,&lt;br /&gt;small, strong, sub, sup, var,&lt;br /&gt;b, i,&lt;br /&gt;dl, dt, dd, ol, ul, li,&lt;br /&gt;fieldset, form, label, legend,&lt;br /&gt;table, caption, tbody, tfoot, thead, tr, th, td,&lt;br /&gt;article, aside, dialog, figure, footer, header,&lt;br /&gt;hgroup, menu, nav, section,&lt;br /&gt;time, mark, audio, video {&lt;br /&gt;        margin:0;&lt;br /&gt;        padding:0;&lt;br /&gt;        border:0;&lt;br /&gt;        outline:0;&lt;br /&gt;        font-size:100%;&lt;br /&gt;        vertical-align:baseline;&lt;br /&gt;        background:transparent;&lt;br /&gt;}&lt;br /&gt;body {&lt;br /&gt;        line-height:1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;article, aside, dialog, figure, footer, header,&lt;br /&gt;hgroup, nav, section {&lt;br /&gt;        display:block;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;nav ul {&lt;br /&gt;        list-style:none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;blockquote, q {&lt;br /&gt;        quotes:none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;blockquote:before, blockquote:after,&lt;br /&gt;q:before, q:after {&lt;br /&gt;        content:'';&lt;br /&gt;        content:none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;a {&lt;br /&gt;        margin:0;&lt;br /&gt;        padding:0;&lt;br /&gt;        border:0;&lt;br /&gt;        font-size:100%;&lt;br /&gt;        vertical-align:baseline;&lt;br /&gt;        background:transparent;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ins {&lt;br /&gt;        background-color:#ff9;&lt;br /&gt;        color:#000;&lt;br /&gt;        text-decoration:none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;mark {&lt;br /&gt;        background-color:#ff9;&lt;br /&gt;        color:#000;&lt;br /&gt;        font-style:italic;&lt;br /&gt;        font-weight:bold;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;del {&lt;br /&gt;        text-decoration: line-through;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;abbr[title], dfn[title] {&lt;br /&gt;        border-bottom:1px dotted #000;&lt;br /&gt;        cursor:help;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;table {&lt;br /&gt;        border-collapse:collapse;&lt;br /&gt;        border-spacing:0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;hr {&lt;br /&gt;    display:block;&lt;br /&gt;    height:1px;&lt;br /&gt;    border:0;&lt;br /&gt;    border-top:1px solid #cccccc;&lt;br /&gt;    margin:1em 0;&lt;br /&gt;    padding:0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;input, select {&lt;br /&gt;        vertical-align:middle;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Puedes descargar el c&amp;oacute;digo del proyecto &lt;a title="Ir al proyecto html5resetcss en Google Code" href="http://code.google.com/p/html5resetcss/downloads/list"&gt;html5resetcss en google code&lt;/a&gt;.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/reset-css-html5-368475" title="Reset CSS para HTML5"&gt;Reset CSS para HTML5&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w-F3vp0rl5iRB-Y3X-Qzyd9LjfY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w-F3vp0rl5iRB-Y3X-Qzyd9LjfY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w-F3vp0rl5iRB-Y3X-Qzyd9LjfY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w-F3vp0rl5iRB-Y3X-Qzyd9LjfY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=cpmdkTjbSbo:r7u2Ak9-URw:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=cpmdkTjbSbo:r7u2Ak9-URw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=cpmdkTjbSbo:r7u2Ak9-URw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=cpmdkTjbSbo:r7u2Ak9-URw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>buenas prácticas</category>
				<category>consejos</category>
				<category>css</category>
				<category>estándares</category>
				<category>html</category>
				<category>html5</category>
				<comments>http://www.pixelovers.com/reset-css-html5-368475#formulario</comments>
		<guid>http://www.pixelovers.com/reset-css-html5-368475</guid>
		<pubDate>Tue, 17 Nov 2009 09:00:00 +0100</pubDate>
	</item>
	<item>
		<title>jQTouch - plugin de jQuery para desarrollo web para móviles</title>
		<link>http://www.pixelovers.com/jqtouch-plugin-jquery-desarrollo-web-moviles-368493</link>
		<description>&lt;p&gt;&lt;img style="float: right;" title="jQTouch" src="http://static.obolog.net/multimedia/fotos/369000/368493/368493-192027_t.jpg" alt="jQTouch" width="200" height="61" /&gt;&amp;iquest;Est&amp;aacute;s pensando en adaptar tu web al iPhone o al Android?, o quiz&amp;aacute; &amp;iquest;quieres desarrollar una aplicaci&amp;oacute;n web para dispositivos m&amp;oacute;viles? Pues esto te puede interesar. Se trata de un &lt;strong&gt;plugin de jQuery para desarrollo web m&amp;oacute;vil para iPhone&lt;/strong&gt;, iPod Touch y otros dispositivos con visi&amp;oacute;n de futuro.&lt;/p&gt;
&lt;p&gt;Este plugin te permite mediante una f&amp;aacute;cil configuraci&amp;oacute;n animaciones nativas de WebKit, precarga de im&amp;aacute;genes, eventos callback, plantillas flexibles y extensiones. Dispone de una &lt;a title="Leer documentaci&amp;oacute;n de jQTouch en Google Code" href="http://code.google.com/p/jqtouch/w/list"&gt;&amp;aacute;mplia documentaci&amp;oacute;n&lt;/a&gt; y &lt;a title="Ver ejemplos de jQTouch" href="http://www.jqtouch.com/preview/demos/main/"&gt;multiples ejemplos&lt;/a&gt;, por lo que no te costar&amp;aacute; poner en marcha la aplicaci&amp;oacute;n que tienes en mente.&lt;/p&gt;
&lt;p&gt;Puedes descargarlo del proyecto &lt;a title="Ir al proyecto jqtouch en Google Code" href="http://code.google.com/p/jqtouch/downloads/list"&gt;jQTouch en Google Code&lt;/a&gt;.&lt;/p&gt;			&lt;p&gt;
			Leer &lt;strong&gt;&lt;a href="http://www.pixelovers.com/jqtouch-plugin-jquery-desarrollo-web-moviles-368493" title="jQTouch - plugin de jQuery para desarrollo web para móviles"&gt;jQTouch - plugin de jQuery para desarrollo web para móviles&lt;/a&gt;&lt;/strong&gt; en &lt;a href="http://www.pixelovers.com" title="Diseño y desarrollo web"&gt;Pixelovers&lt;/a&gt;
			&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uJ1d-iFWwS8qjBNL4sIb3XOvJC0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uJ1d-iFWwS8qjBNL4sIb3XOvJC0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uJ1d-iFWwS8qjBNL4sIb3XOvJC0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uJ1d-iFWwS8qjBNL4sIb3XOvJC0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=-MasodVC8Pk:USVEwl_ckZ8:ecdYMiMMAMM"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=ecdYMiMMAMM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=-MasodVC8Pk:USVEwl_ckZ8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.nexoblogs.com/~ff/Pixelovers?a=-MasodVC8Pk:USVEwl_ckZ8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Pixelovers?i=-MasodVC8Pk:USVEwl_ckZ8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
		<author>jorgecasar</author>
				<category>desarrollo web</category>
				<category>javascript</category>
				<category>jquery</category>
				<category>móvil</category>
				<comments>http://www.pixelovers.com/jqtouch-plugin-jquery-desarrollo-web-moviles-368493#formulario</comments>
		<guid>http://www.pixelovers.com/jqtouch-plugin-jquery-desarrollo-web-moviles-368493</guid>
		<pubDate>Tue, 10 Nov 2009 09:00:00 +0100</pubDate>
	</item>
</channel>
</rss>
